[
  {
    "path": ".gitignore",
    "content": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\npip-wheel-metadata/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n.python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n\n# new\n.idea\n.DS_Store\n"
  },
  {
    "path": "2019/12-16-Github-Pull-requests-gocolly/Github-Pull-requests-gocolly.md",
    "content": "- 使用gocolly爬虫，想统计抓取情况发现不方便，所以自己修改colly.go写了一个方法Statistics\n    - https://github.com/gocolly/colly/issues/411\n- 参考\n    - [git学习--GitHub上如何进行PR(Pull Request)操作](https://blog.csdn.net/qq_33429968/article/details/62219783)    \n    \n- PR步骤\n```shell script\n#首先fork gocolly 到自己的GitHub\n\n# 然后clone到本地\n(.py3) pro:github play$ mkdir PR\n(.py3) pro:github play$ cd PR\n(.py3) pro:PR play$ git clone git@github.com:makelove/colly.git\nCloning into 'colly'...\nremote: Enumerating objects: 130, done.\nremote: Counting objects: 100% (130/130), done.\nremote: Compressing objects: 100% (97/97), done.\nremote: Total 1797 (delta 33), reused 52 (delta 8), pack-reused 1667\nReceiving objects: 100% (1797/1797), 8.16 MiB | 43.00 KiB/s, done.\nResolving deltas: 100% (955/955), done.\n(.py3) pro:PR play$\n(.py3) pro:PR play$ ls\n.     ..    colly\n(.py3) pro:PR play$ cd colly/\n\n#与 https://github.com/gocolly/colly 建立链接\n(.py3) pro:colly play$ git remote -v\norigin\tgit@github.com:makelove/colly.git (fetch)\norigin\tgit@github.com:makelove/colly.git (push)\n(.py3) pro:colly play$ git remote add upstream https://github.com/gocolly/colly.git\n(.py3) pro:colly play$ git remote -v\norigin\tgit@github.com:makelove/colly.git (fetch)\norigin\tgit@github.com:makelove/colly.git (push)\nupstream\thttps://github.com/gocolly/colly.git (fetch)\nupstream\thttps://github.com/gocolly/colly.git (push)\n\n#建立分支\n(.py3) pro:colly play$ git branch\n* master\n(.py3) pro:colly play$ git checkout -b  Statistics\nSwitched to a new branch 'Statistics'\n(.py3) pro:colly play$ git branch\n* Statistics\n  master\n#修改代码\n(.py3) pro:colly play$ sub .\n\n#提交代码\n(.py3) pro:colly play$ git status\nOn branch Statistics\nChanges not staged for commit:\n  (use \"git add <file>...\" to update what will be committed)\n  (use \"git checkout -- <file>...\" to discard changes in working directory)\n\n\tmodified:   colly.go\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\n(.py3) pro:colly play$ git add colly.go\n(.py3) pro:colly play$ git commit -m \"add Statistics function to colly.Collector\"\n[Statistics fe0f649] add Statistics function to colly.Collector\n 1 file changed, 12 insertions(+)\n(.py3) pro:colly play$ git status\nOn branch Statistics\nnothing to commit, working tree clean\n(.py3) pro:colly play$ git push\nfatal: The current branch Statistics has no upstream branch.\nTo push the current branch and set the remote as upstream, use\n\n    git push --set-upstream origin Statistics\n\n(.py3) pro:colly play$ git push --set-upstream origin Statistics\nEnumerating objects: 5, done.\nCounting objects: 100% (5/5), done.\nDelta compression using up to 4 threads\nCompressing objects: 100% (3/3), done.\nWriting objects: 100% (3/3), 466 bytes | 466.00 KiB/s, done.\nTotal 3 (delta 2), reused 0 (delta 0)\nremote: Resolving deltas: 100% (2/2), completed with 2 local objects.\nremote:\nremote: Create a pull request for 'Statistics' on GitHub by visiting:\nremote:      https://github.com/makelove/colly/pull/new/Statistics\nremote:\nTo github.com:makelove/colly.git\n * [new branch]      Statistics -> Statistics\nBranch 'Statistics' set up to track remote branch 'Statistics' from 'origin'.\n```    \n\n- 在https://github.com/makelove/colly/pulls 创建  Pull requests \n    - 检查代码\n    - 提交"
  },
  {
    "path": "2019/12-18-Caddy搭建Google镜像-反向代理/Caddy搭建Google镜像-反向代理.md",
    "content": "- 官网\n    - https://github.com/caddyserver/caddy\n    - 下载 https://caddyserver.com/v1/download\n- 视频 https://www.bilibili.com/video/av79726017/\n- 参考\n    - [caddy 搭建google 镜像,很容易](https://www.banwagongzw.com/33.html)\n    - 安装脚本\n        - https://github.com/ToyoDAdoubi/doubi/blob/master/caddy_install.sh\n\n- 视频\n    - [Caddy搭建Google镜像-反向代理](https://www.bilibili.com/video/av79726017/)\n\n- 配置\n    - 最后在Chrome浏览器安装扩展【[删除谷歌重定向](https://github.com/kodango/Remove-Google-Redirection)】\n        - Chrome 网上应用店 https://chrome.google.com/webstore/detail/dnhjklgpiifbofihffldllbcopkinlod\n```shell script\n(.py3) localhost:caddy_v1.0.4_linux_amd64 play$ cat Caddyfile\n:80 {\n gzip\n proxy / https://www.baidu.com\n}\n#执行\nsudo ./caddy -conf ./Caddyfile\n```    \n\n- 调试\n    - 镜像HTTPS网站\n        - ./caddy -host baidu.com -port 8080\n            - 可能SSL证书获取失败\n        \n## 还需要买一个服务器   \n- 国外\n    - [vultr](https://www.vultr.com/?ref=8349543) "
  },
  {
    "path": "2019/12-26-用docker模拟Nginx限制同一个爬虫ip的访问频率/用docker模拟Nginx限制同一个爬虫ip的访问频率.md",
    "content": "# 用docker模拟Nginx限制同一个爬虫ip的访问频率\n\n- Nginx配置\nhttps://blog.csdn.net/weixin_34341117/article/details/85848963\n使用golang的tollbooth模块代替\nhttps://github.com/didip/tollbooth\n\n- Docker\n\n1.启动busybox\ndocker run -it -p 84:4000 --volume /Users/play/CODE/GO/HTTP请求限流/tollbooth1:/go busybox\ncd /go/\n/go # ./demo3_linux\n网址\ncurl http://192.168.0.111:84/ip\n查看IP\ndocker exec -it container1 ip addr\n172.17.0.2\n\n2.启动代理\ndocker run -it -p 3129:3128 --name=squid3  datadog/squid\n测试\ncurl -x localhost:3129 http://172.17.0.2:4000/ip\n\n3.批量测试\n```shell script\n#!/bin/bash\n\nfor((i=1;i<=10;i++));\ndo\ncurl -x localhost:3129 http://172.17.0.2:4000/ip ;\necho \"\"\necho \"-------\"\ndone\n```\n\n4. Python测试\n```python\nimport requests\nfrom time import sleep\nurl='http://172.17.0.2:4000/ip'\nproxies = {\n  \"http\": \"http://localhost:3129\",\n  \"https\": \"http://localhost:3129\",\n}\nfor i in range(200):\n    rs=requests.get(url,proxies=proxies)\n    print(rs.status_code,rs.text)\n    if rs.status_code==429:\n        sleep(0.3)\n```"
  },
  {
    "path": "2019/12-29-Docker-OpenCV-golang-gocv/README.md",
    "content": "# 使用docker运行OpenCV+golang\n- 参考\n    - https://github.com/hybridgroup/gocv\n    - https://hub.docker.com/r/hybridgroup/gocv\n\n- 结论\n    - docker+gocv 可以作为服务器程序，在服务器上高速执行\n\n- 首先 pull docker\n    - docker pull hybridgroup/gocv\n    - 运行后\n        - 发现golang版本太低，不能执行代码，需要升级   \n    \n下载 go1.13.3.linux-amd64.tar.gz\nhttps://dl.google.com/go/go1.13.3.linux-amd64.tar.gz 不行\nhttps://studygolang.com/dl/golang/go1.13.3.linux-amd64.tar.gz\n\ndocker run -it  -v /Users/play/github/gocv:/gocv hybridgroup/gocv\n进入后，解压，即可\n```shell script\n    1  cd /gocv/\n    2  rm -rf /usr/local/go\n    3  tar -C /usr/local -xzf go1.13.3.linux-amd64.tar.gz\n    4  go version\n\n```\n退出\n```shell script\n(.py3) pro:~ play$ docker ps -a\nCONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES\nf2dc43cabe71        hybridgroup/gocv    \"/bin/bash\"         12 minutes ago      Exited (0) 2 seconds ago                       hopeful_lehmann\nec9d94cacbe1        pypy:3.6            \"pypy3\"             16 hours ago        Exited (0) 16 hours ago                        admiring_vaughan\n\n#将容器打包成一个新的镜像\n(.py3) pro:~ play$ docker commit  f2dc43cabe71 gocv:go1.13\nsha256:033be3d5044d7f84ff552255e0c7f3d1da7c92d3a462342d37799b3f02f519fa\n(.py3) pro:~ play$ docker image ls |grep gocv\ngocv \t\t\t\tgo1.13              033be3d5044d        16 seconds ago      1.5GB\nhybridgroup/gocv    latest              f236ffa190b7        7 weeks ago         1.14GB\n\n\n#测试\ndocker run -it  -v /Users/play/github/gocv:/gocv  gocv:go1.13\nroot@d7b692fdda37:/gocv/cmd/version# go run main.go\ngocv version: 0.21.0\nopencv lib version: 4.0.1\nroot@d7b692fdda37:/gocv/cmd/version# go version\ngo version go1.13.3 linux/amd64\n\n```\n\n- 执行脸部识别程序\n```shell script\nroot@d7b692fdda37:/gocv/cmd/facedetect# cd /gocv/cmd/facedetect-from-url/\nroot@d7b692fdda37:/gocv/cmd/facedetect-from-url# go build  -o facedetect main.go\nroot@d7b692fdda37:/gocv/cmd/facedetect-from-url# ll -h\ntotal 8.3M\ndrwxr-xr-x  4 root root  128 Jan  1 03:36 ./\ndrwxr-xr-x 30 root root  960 Dec  2 10:39 ../\n-rwxr-xr-x  1 root root 8.3M Jan  1 03:36 facedetect*\n-rw-r--r--  1 root root 1.9K Dec  2 11:04 main.go\nroot@d7b692fdda37:/gocv/cmd/facedetect-from-url# ./facedetect\nHow to run:\n\tfacedetect-from-url [image URL] [classifier XML file] [image file]\n\nroot@d7b692fdda37:/gocv/cmd/facedetect-from-url# ./facedetect https://raw.githubusercontent.com/hybridgroup/gocv/master/images/face.jpg  ../../data/haarcascade_frontalface_default.xml output2.jpg\n\n[./facedetect https://raw.githubusercontent.com/hybridgroup/gocv/master/images/face.jpg ../../data/haarcascade_frontalface_default.xml output2.jpg]\nGet(imageURL)\nfound 1 faces\nsaved to output2.jpg\n\nroot@d7b692fdda37:/gocv/cmd/facedetect-from-url# ll -h\ntotal 8.3M\ndrwxr-xr-x  5 root root  160 Jan  1 03:38 ./\ndrwxr-xr-x 31 root root  992 Jan  1 03:38 ../\n-rwxr-xr-x  1 root root 8.3M Jan  1 03:36 facedetect*\n-rw-r--r--  1 root root 1.9K Dec  2 11:04 main.go\n-rw-r--r--  1 root root  39K Jan  1 03:38 output2.jpg\n```\n\n\n- 大问题：不能编译跨平台程序，因为OpenCV\n    - 在Linux编译macOS程序\n```shell script\nroot@d7b692fdda37:/gocv/cmd/showimage# CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go\n# gocv.io/x/gocv\n/gocv/dnn_ext.go:9:28: undefined: Mat\n/gocv/dnn_ext.go:16:12: undefined: NewMatWithSize\n/gocv/dnn_ext.go:42:2: undefined: Resize\n/gocv/dnn_ext.go:42:38: undefined: InterpolationDefault\n/gocv/dnn_ext.go:45:3: undefined: CvtColor\n/gocv/dnn_ext.go:48:15: undefined: NewMat\n/gocv/dnn_ext.go:51:31: undefined: MatTypeCV32F\n\n```"
  },
  {
    "path": "2019/12-29-Docker-OpenCV-golang-gocv/facedetect-from-url/main.go",
    "content": "// What it does:\n//\n// This example uses the CascadeClassifier class to detect faces from url,\n// and draw a rectangle around each of them, before displaying them within a Window.\n//\n// How to run:\n//\n// facedetect-from-url [image URL] [classifier XML file] [image file]\n//\n// \t\tgo run ./cmd/facedetect-from-url/main.go https://raw.githubusercontent.com/hybridgroup/gocv/master/images/face.jpg data/haarcascade_frontalface_default.xml output.jpg\n//\n// +build example\n\npackage main\n\nimport (\n\t\"fmt\"\n\t\"image\"\n\t\"image/color\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\n\t\"gocv.io/x/gocv\"\n)\n\nfunc main() {\n\tif len(os.Args) < 4 {\n\t\tfmt.Println(\"How to run:\\n\\tfacedetect-from-url [image URL] [classifier XML file] [image file]\")\n\t\treturn\n\t}\n\n\t// parse args\n\timageURL := os.Args[1]\n\txmlFile := os.Args[2]\n\tsaveFile := os.Args[3]\n\tfmt.Println(os.Args)\n\n\t// color for the rect when faces detected\n\tblue := color.RGBA{0, 0, 255, 0}\n\n\t// load classifier to recognize faces\n\tclassifier := gocv.NewCascadeClassifier()\n\tdefer classifier.Close()\n\n\tif !classifier.Load(xmlFile) {\n\t\tfmt.Printf(\"Error reading cascade file: %v\\n\", xmlFile)\n\t\treturn\n\t}\n\n\t// get image from URL\n\tres, err := http.Get(imageURL)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tprintln(\"Get(imageURL)\")\n\n\tresByte, err := ioutil.ReadAll(res.Body)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\timg, err := gocv.IMDecode(resByte, 1)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\trects := classifier.DetectMultiScale(img)\n\tfmt.Printf(\"found %d faces\\n\", len(rects))\n\t// draw a rectangle around each face on the original image,\n\t// along with text identifing as \"Human\"\n\tfor _, r := range rects {\n\t\tgocv.Rectangle(&img, r, blue, 3)\n\n\t\tsize := gocv.GetTextSize(\"Human\", gocv.FontHersheyPlain, 1.2, 2)\n\t\tpt := image.Pt(r.Min.X+(r.Min.X/2)-(size.X/2), r.Min.Y-2)\n\t\tgocv.PutText(&img, \"Human\", pt, gocv.FontHersheyPlain, 1.2, blue, 2)\n\t}\n\tgocv.IMWrite(saveFile, img)\n\tfmt.Printf(\"saved to %s\\n\", saveFile)\n}\n"
  },
  {
    "path": "2019/12-30-Docker-Puppeteer抓取动态页面/README.md",
    "content": "# Docker+Puppeteer抓取动态页面\n- 视频 https://www.bilibili.com/video/av81253564/\n\n### 问题\n爬虫怎样抓取Js动态页面？例如电商网站的价格，销量\n\n## 常规解决方案\n安装firefox selenium python\n\n- 问题\n    - 1 安装麻烦，配置麻烦\n    - 2 本地配置好了，不方便部署到服务器\n    - 3 效率低下\n\n## 解决\nDocker+Puppeteer(Chrome headless node API) \n\n1. 自定义脚本\n    - https://hub.docker.com/r/alekzonder/puppeteer\n\n    - 下载\n        - docker pull alekzonder/puppeteer\n\n    - 运行\n        - docker run --shm-size 1G --rm -v /Users/play/Temp/puppeteer/docker-puppeteer-pdf.js:/app/index.js -v /Users/play/Temp/puppeteer:/puppeteer alekzonder/puppeteer:latest\n    - 查看PDF\n\n\n\n2. 渲染中间件-动态网页\n    - https://hub.docker.com/r/zenato/puppeteer-renderer\n    - 源代码 https://github.com/zenato/puppeteer-renderer\n\n- 运行\n    - docker run  -it --name renderer -p 8080:3000 zenato/puppeteer-renderer\n\n- 测试\n    - curl http://localhost:8080/?url=https://ip.cn/\n\n## Scrapy 爬虫 抓取Js动态页面\n- 参考  [scrapy如何在中间件修改请求url](https://blog.csdn.net/wang785994599/article/details/97887294)\n- 在middlewares.py编写中间件\n\n```\nfrom urllib.parse import quote\nclass Puppeteer(object):\n    @classmethod\n    def from_crawler(cls, crawler):\n        # This method is used by Scrapy to create your spiders.\n        s = cls(crawler)\n        # crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)\n        return s\n\n    def __init__(self, crawler):\n        self.host = 'http://localhost:8080/?url='\n\n    def process_request(self, request, spider):\n        request.meta['url'] = request.url\n        \n        url = self.host + quote(request.url)\n        request._set_url(url)\n        pass\n\n    def process_response(self, request, response, spider):\n        response._set_url(request.meta['url'])\n        return response\n\n    pass\n```\n\n- 在settings.py 加入\n\n```\nDOWNLOADER_MIDDLEWARES = {\n   'demo.middlewares.Puppeteer': 543,\n}\n```\n\n- 缺点\n    - 不能更改Puppeteer的UserAgent ？！！\n        - 只能修改index.js 源代码\n"
  },
  {
    "path": "2019/12-30-Docker-Puppeteer抓取动态页面/puppeteer/docker-puppeteer-pdf.js",
    "content": "/*\n\n运行\ndocker run --shm-size 1G --rm -v /Users/play/Temp/puppeteer/docker-puppeteer-pdf.js:/app/index.js -v /Users/play/Temp/puppeteer:/puppeteer alekzonder/puppeteer:latest\n\n*/\n\nconst puppeteer = require('puppeteer');\n\n(async () => {\n    const browser = await puppeteer.launch({\n        args: [\n            '--no-sandbox',\n            '--disable-setuid-sandbox'\n        ]\n    });\n  const page = await browser.newPage();\n  await page.goto('https://ip.cn/');\n  await page.waitFor(2000)\n  await page.pdf({path: '/puppeteer/example.pdf'});\n  await browser.close();\n})();"
  },
  {
    "path": "2019/12-31-Ubuntu-docker-puppeteer-刷B站视频播放量/README.md",
    "content": "\n# 12-31-Ubuntu-docker-puppeteer-刷B站视频播放量\n\n- 首先在Ubuntu服务器上安装docker.io\n\t- 参考 https://docs.docker.com/install/linux/docker-ce/ubuntu/\n\t- 先更新apt缓存\n\t\t- sudo apt-get update\n\t\n\t- 添加key\n\t- 添加repo\n\t- 更新apt缓存\n\t\t- sudo apt-get update\n\t- 安装\n\t\t- sudo apt-get install docker-ce docker-ce-cli containerd.io\n\t- 测试\n\t\t- sudo docker run hello-world\n\n- 拉取镜像\n\t- sudo docker pull alekzonder/puppeteer\n- 上传js脚本\n\t- docker-h5.js\n- 运行测试\n\t- sudo docker run --shm-size 1G --name bili -v /home/play/WORK/puppeteer/docker-h5.js:/app/index.js  alekzonder/puppeteer:latest\n\n- 服务器定时运行\n\t- sudo crontab -e\n\t\t- 3 */2 * * * docker start bili\n\t\t- 每隔2小时执行\n"
  },
  {
    "path": "2019/12-31-Ubuntu-docker-puppeteer-刷B站视频播放量/docker-h5.js",
    "content": "/**\n * Created by play on 2019/8/24.\n先安装node\n再运行\nnpm install -g puppeteer\n然后\nnode docker-h5.js\n\nDocker运行\ndocker rm bili\ndocker run --shm-size 1G --name bili -v /Users/play/CODE/B站刷视频/docker-h5.js:/app/index.js  alekzonder/puppeteer:latest\ndocker run --shm-size 1G --name bili -v /home/play/WORK/puppeteer/docker-h5.js:/app/index.js  alekzonder/puppeteer:latest\n\n */\nArray.prototype.shuffle = function () {\n    let m = this.length, i;\n    while (m) {\n        i = (Math.random() * m--) >>> 0;\n        [this[m], this[i]] = [this[i], this[m]]\n    }\n    return this;\n}\n\nconst puppeteer = require('puppeteer');\nconst main_url = 'https://space.bilibili.com/180948619/video'\nconst main_url2 = 'https://space.bilibili.com/180948619/video?page=2'\nconst main_url3 = 'https://space.bilibili.com/180948619/video?page=3'\n\nvar browser\nvar sel = '#bilibiliPlayer > div.bilibili-player-area.video-state-pause.video-control-show.video-state-blackside > div.bilibili-player-video-wrap > div.bilibili-player-video > video'\nsel ='div.player-box > div'\n// var sel2='div.bilibili-player-video'\nvar urls = []\n\nasync function on_response(response) {\n    // console.log('response url', response.url())\n    let url = response.url()\n\n    if (url.indexOf('arc/search') > 0) {\n        // let page2 = await browser.newPage();\n        // await page2.setViewport({width: 1280, height: 800})\n        // await page._client.send('Network.clearBrowserCookies')//TODO\n\n\n        console.log('response url:', url)\n        let text = await response.text()\n        // console.log(text);\n\n        let js = JSON.parse(text)\n        for (let vd of js[\"data\"][\"list\"][\"vlist\"]) {\n            // console.log(vd)\n\n            let url = 'https://www.bilibili.com/video/av' + vd[\"aid\"]\n            console.log(url)\n            urls.push(url)\n\n            console.log('---------')\n            continue\n        }\n    }\n}\n\nasync function run() {\n    //const browser = await puppeteer.launch();\n    browser = await puppeteer.launch({\n        // headless: false,\n        timeout: 20000,\n        DefaultArgs:'--mute-audio',\n        ignoreDefaultArgs: ['--enable-automation'],\n        // executablePath: '/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome',//可注销\n        //也可以改为你系统里Chrome的目录\n        args: [\n            '--no-sandbox',\n            '--disable-setuid-sandbox'\n        ]\n    });\n\n    const page = await browser.newPage();\n    page.on('response', on_response)\n    const client = await page.target().createCDPSession();\n\n    await page.setViewport({width: 1280, height: 800})\n    console.log(\"page.goto(main_url)\")\n    await page.goto(main_url)    \n    console.log(\"page.waitFor(10000)\")\n    await page.waitFor(10000)\n\n    // await page.goto(main_url2)//翻页\n    // await page.waitFor(15000)\n\n    // await page.goto(main_url3)//翻页\n    // await page.waitFor(10000)\n\n\n    // let url = 'https://www.bilibili.com/video/av56212181'\n\n\n    //urls.length > 20\n    urls=urls.slice(0,10)\n    urls.shuffle()\n    console.log('urls len:', urls.length)\n\n    await page.setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1');\n\n    for (let url of urls) {\n        \n        // let page2 = await browser.newPage();\n        // await page2.setViewport({width: 1280, height: 800})\n        try {\n            console.log(\"clearBrowserCookies\")\n            await client.send('Network.clearBrowserCookies');\n\n            await page.goto(url)\n            await page.waitFor(6000);\n            let title=await page.title()\n            console.log('open url:', url,title)\n            await page.click(sel)\n            console.log(\"page.click('video')\")\n\n            await page.waitFor(10000);\n            // await page.close()\n            // await page2.waitFor(6000);\n        } catch (err) {\n            console.log(err)\n        }\n\n    }\n\n\n    await page.waitFor(20000);\n\n    // setTimeout()\n\n\n    browser.close();\n    console.log(\"Finished\",new Date())\n}\n\nrun();\n"
  },
  {
    "path": "2020/1-19-TTS语音合成/README.md",
    "content": "## TTS 从文本到语音(TextToSpeech) 语音合成\n\n- 视频 [想要鬼畜素材，【TTS语音合成】来帮你，哈哈哈](https://www.bilibili.com/video/av84082965)\n- macos say\n使用文档\nman say\n\n- 命令行\n\t- say 'TTS是Text To Speech的缩写，即“从文本到语音”，是人机对话的一部分，让机器能够说话。'\n\n- 保存为文件\n\t- say 'TTS是Text To Speech的缩写，即“从文本到语音”，是人机对话的一部分，让机器能够说话。' -o tts.aiff\n\n- 转成mp3\n\t- brew install lame\n\t- lame -m m tts.aiff tts.mp3\n\n- 发音人\n【系统偏好设置】>>【辅助功能】>>【语音】\n\n\n2. 更好的发音系统，更多选择\n- 讯飞语音\nhttps://www.xfyun.cn/services/online_tts\n- 文档\nhttps://www.xfyun.cn/doc/tts/online_tts/API.html\n\ndemo代码写得很烂\n不方便使用，需要重写\n\n\n"
  },
  {
    "path": "2020/1-19-TTS语音合成/讯飞语音/config.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020-01-18 20:29\n# @File    : config.py\n\n\n\"\"\"\nconfig.py:\n\"\"\"\n\nAPPID = 'xxx'\nAPIKey = 'xxxxxx'\nAPISecret = 'xxxxxx'\n"
  },
  {
    "path": "2020/1-19-TTS语音合成/讯飞语音/tts_ws_python3_demo.py",
    "content": "# -*- coding:utf-8 -*-\r\n#\r\n# 播放  /Applications/VLC.app/Contents/MacOS/VLC --demux=rawaud --rawaud-channels 1 --rawaud-samplerate 16000  demo.pcm\r\n# 转换格式 ffmpeg -y -f s16be  -ar 16000 -acodec pcm_s16le -i  demo2.pcm demo22.mp3\r\n#   author: iflytek\r\n#\r\n#  本demo测试时运行的环境为：Windows + Python3.7\r\n#  本demo测试成功运行时所安装的第三方库及其版本如下：\r\n#   cffi==1.12.3\r\n#   gevent==1.4.0\r\n#   greenlet==0.4.15\r\n#   pycparser==2.19\r\n#   six==1.12.0\r\n#   websocket==0.2.1\r\n#   websocket-client==0.56.0\r\n#   合成小语种需要传输小语种文本、使用小语种发音人vcn、ent=mtts、tte=unicode以及修改文本编码方式\r\n#  错误码链接：https://www.xfyun.cn/document/error-code （code返回错误码时必看）\r\n# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\r\nimport websocket\r\nimport datetime\r\nimport hashlib\r\nimport base64\r\nimport hmac\r\nimport json\r\nfrom urllib.parse import urlencode\r\nimport time\r\nimport ssl\r\nfrom wsgiref.handlers import format_date_time\r\nfrom datetime import datetime\r\nfrom time import mktime\r\nimport _thread as thread\r\nimport os\r\nimport wave\r\n\r\nSTATUS_FIRST_FRAME = 0  # 第一帧的标识\r\nSTATUS_CONTINUE_FRAME = 1  # 中间帧标识\r\nSTATUS_LAST_FRAME = 2  # 最后一帧的标识\r\n\r\n\r\nclass Ws_Param(object):\r\n    # 初始化\r\n    def __init__(self, APPID, APIKey, APISecret, Text):\r\n        self.APPID = APPID\r\n        self.APIKey = APIKey\r\n        self.APISecret = APISecret\r\n        self.Text = Text\r\n\r\n        # 公共参数(common)\r\n        self.CommonArgs = {\"app_id\": self.APPID}\r\n        # 业务参数(business)，更多个性化参数可在官网查看\r\n        self.BusinessArgs = {\"aue\": \"raw\", \"auf\": \"audio/L16;rate=16000\", \"vcn\": \"xiaoxue\", \"tte\": \"utf8\", \"ent\": \"aisound\"}\r\n        self.Data = {\"status\": 2, \"text\": str(base64.b64encode(self.Text.encode('utf-8')), \"UTF8\")}\r\n        # 使用小语种须使用以下方式，此处的unicode指的是 utf16小端的编码方式，即\"UTF-16LE\"”\r\n        # self.Data = {\"status\": 2, \"text\": str(base64.b64encode(self.Text.encode('utf-16')), \"UTF8\")}\r\n\r\n        #\r\n        self.url = self.create_url()\r\n\r\n    # 生成url\r\n    def create_url(self):\r\n        url = 'wss://tts-api.xfyun.cn/v2/tts'\r\n        # 生成RFC1123格式的时间戳\r\n        now = datetime.now()\r\n        date = format_date_time(mktime(now.timetuple()))\r\n\r\n        # 拼接字符串\r\n        signature_origin = \"host: \" + \"ws-api.xfyun.cn\" + \"\\n\"\r\n        signature_origin += \"date: \" + date + \"\\n\"\r\n        signature_origin += \"GET \" + \"/v2/tts \" + \"HTTP/1.1\"\r\n        # 进行hmac-sha256进行加密\r\n        signature_sha = hmac.new(self.APISecret.encode('utf-8'), signature_origin.encode('utf-8'),\r\n                                 digestmod=hashlib.sha256).digest()\r\n        signature_sha = base64.b64encode(signature_sha).decode(encoding='utf-8')\r\n\r\n        authorization_origin = \"api_key=\\\"%s\\\", algorithm=\\\"%s\\\", headers=\\\"%s\\\", signature=\\\"%s\\\"\" % (\r\n            self.APIKey, \"hmac-sha256\", \"host date request-line\", signature_sha)\r\n        authorization = base64.b64encode(authorization_origin.encode('utf-8')).decode(encoding='utf-8')\r\n        # 将请求的鉴权参数组合为字典\r\n        v = {\r\n            \"authorization\": authorization,\r\n            \"date\": date,\r\n            \"host\": \"ws-api.xfyun.cn\"\r\n        }\r\n        # 拼接鉴权参数，生成url\r\n        url = url + '?' + urlencode(v)\r\n        print(\"date: \", date)\r\n        print(\"v: \", v)\r\n        # 此处打印出建立连接时候的url,参考本demo的时候可取消上方打印的注释，比对相同参数时生成的url与自己代码生成的url是否一致\r\n        print('websocket url :', url)\r\n        \r\n        return url\r\n\r\n\r\ndef on_message(ws, message):\r\n    try:\r\n        message = json.loads(message)\r\n        code = message[\"code\"]\r\n        sid = message[\"sid\"]\r\n        audio = message[\"data\"][\"audio\"]\r\n        audio = base64.b64decode(audio)\r\n        status = message[\"data\"][\"status\"]\r\n        # print(message)\r\n        if status == 2:\r\n            print(\"ws is closed\")\r\n            ws.close()\r\n        if code != 0:\r\n            errMsg = message[\"message\"]\r\n            print(\"sid:%s call error:%s code is:%s\" % (sid, errMsg, code))\r\n        else:\r\n\r\n            with open('./demo333.pcm', 'ab') as f:#用追加的模式写入语音\r\n                f.write(audio)\r\n\r\n\r\n    except Exception as e:\r\n        print(\"receive msg,but parse exception:\", e)\r\n\r\n\r\n# 收到websocket错误的处理\r\ndef on_error(ws, error):\r\n    print(\"### error:\", error)\r\n\r\n\r\n# 收到websocket关闭的处理\r\ndef on_close(ws):\r\n    print(\"### closed ###\")\r\n\r\n\r\n# 收到websocket连接建立的处理\r\ndef on_open(ws):\r\n    def run(*args):\r\n        # TODO while true\r\n        d = {\"common\": wsParam.CommonArgs,\r\n             \"business\": wsParam.BusinessArgs,\r\n             \"data\": wsParam.Data,\r\n             }\r\n        d = json.dumps(d)\r\n        print(d)\r\n        print(\"------>开始发送文本数据\")\r\n        ws.send(d)\r\n        if os.path.exists('./demo.pcm'):\r\n            os.remove('./demo.pcm')\r\n\r\n    thread.start_new_thread(run, ())\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    # 测试时候在此处正确填写相关信息即可运行\r\n    text = '苹果中国宣布iPad降价：最高降幅达500元'\r\n\r\n    from config import APIKey, APISecret, APPID\r\n    wsParam = Ws_Param(APPID=APPID,\r\n                       APIKey=APIKey,\r\n                       APISecret=APISecret,\r\n                       Text=text)  # \"这是一个语音合成示例\"\r\n    websocket.enableTrace(True)\r\n    wsUrl = wsParam.create_url()\r\n    print('wsUrl:', wsUrl)\r\n\r\n    ws = websocket.WebSocketApp(wsUrl, on_message=on_message, on_error=on_error, on_close=on_close)\r\n    ws.on_open = on_open\r\n    ws.run_forever(sslopt={\"cert_reqs\": ssl.CERT_NONE})\r\n"
  },
  {
    "path": "2020/1-19-TTS语音合成/讯飞语音/xf_service.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020-01-18 20:25\n# @File    : xf_service.py\n\n\n\"\"\"\nxf_service.py:\n\"\"\"\n\n# import websocket\nfrom websocket import create_connection\nimport datetime\nimport hashlib\nimport base64\nimport hmac\nimport json\nfrom urllib.parse import urlencode\nimport os\nfrom wsgiref.handlers import format_date_time\nfrom datetime import datetime\nfrom time import mktime\n\n\nclass XFtts(object):\n    # 初始化\n    def __init__(self, APPID, APIKey, APISecret, ):\n        self.APPID = APPID\n        self.APIKey = APIKey\n        self.APISecret = APISecret\n        # self.Text = Text\n\n        # 公共参数(common)\n        self.CommonArgs = {\"app_id\": self.APPID}\n        # 业务参数(business)，更多个性化参数可在官网查看\n        self.BusinessArgs = {\"aue\": \"raw\", \"auf\": \"audio/L16;rate=16000\", \"vcn\": \"xiaoxue\", \"tte\": \"utf8\", \"ent\": \"aisound\"}#TODO\n        # self.Data = {\"status\": 2, \"text\": str(base64.b64encode(self.Text.encode('utf-8')), \"UTF8\")}\n\n        # 使用小语种须使用以下方式，此处的unicode指的是 utf16小端的编码方式，即\"UTF-16LE\"”\n        # self.Data = {\"status\": 2, \"text\": str(base64.b64encode(self.Text.encode('utf-16')), \"UTF8\")}\n\n        #\n        self.url = self.create_url()\n\n    # 生成url\n    def create_url(self):\n        url = 'wss://tts-api.xfyun.cn/v2/tts'\n        # 生成RFC1123格式的时间戳\n        now = datetime.now()\n        date = format_date_time(mktime(now.timetuple()))\n\n        # 拼接字符串\n        signature_origin = \"host: \" + \"ws-api.xfyun.cn\" + \"\\n\"\n        signature_origin += \"date: \" + date + \"\\n\"\n        signature_origin += \"GET \" + \"/v2/tts \" + \"HTTP/1.1\"\n        # 进行hmac-sha256进行加密\n        signature_sha = hmac.new(self.APISecret.encode('utf-8'), signature_origin.encode('utf-8'),\n                                 digestmod=hashlib.sha256).digest()\n        signature_sha = base64.b64encode(signature_sha).decode(encoding='utf-8')\n\n        authorization_origin = \"api_key=\\\"%s\\\", algorithm=\\\"%s\\\", headers=\\\"%s\\\", signature=\\\"%s\\\"\" % (\n            self.APIKey, \"hmac-sha256\", \"host date request-line\", signature_sha)\n        authorization = base64.b64encode(authorization_origin.encode('utf-8')).decode(encoding='utf-8')\n        # 将请求的鉴权参数组合为字典\n        # authorization='YXBpX2tleT0iODc1YmQ5OGNmOTJmZTE0OGQxNDU5ODFiZjZmNGJhMGEiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0ia3RlelJoV2lMS2tvbW9rbXcxZDhvZ1Q5WE5Obld1ZWhqcjFWUVhleFZkTT0i'\n        v = {\n            \"authorization\": authorization,\n            \"date\": date,\n            \"host\": \"ws-api.xfyun.cn\"\n        }\n        # 拼接鉴权参数，生成url\n        url = url + '?' + urlencode(v)\n        # print(\"date: \", date)\n        # print(\"v: \", v)\n        # 此处打印出建立连接时候的url,参考本demo的时候可取消上方打印的注释，比对相同参数时生成的url与自己代码生成的url是否一致\n        # print('websocket url :', url)\n        # url='wss://tts-api.xfyun.cn/v2/tts?authorization=YXBpX2tleT0iODc1YmQ5OGNmOTJmZTE0OGQxNDU5ODFiZjZmNGJhMGEiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0iU0hnZ1lLa2c4Y0xUV25BdTNTNGkwak90YzhYNnM1WENrTFFIUHRLekc0VT0i&date=Sat,%2004%20Jan%202020%2004:19:03%20GMT&host=ws-api.xfyun.cn'\n        return url\n\n    def say(self, sentens,speaker='xiaoxue'):#发音人\n        print(sentens)\n        text = str(base64.b64encode(sentens.encode('utf-8')), \"UTF8\")\n        # print(text)\n        self.BusinessArgs['vcn']=speaker\n\n        Data = {\"status\": 2, \"text\": text}\n        d = {\"common\": self.CommonArgs,\n             \"business\": self.BusinessArgs,\n             \"data\": Data,\n             }#传参\n        dt = json.dumps(d)\n        print(d)\n        # if not ws.connected:\n        #     print('重新连接ws')\n        #     # uri = wsParam.create_url()\n        #     ws = create_connection(uri)\n        ws = create_connection(self.create_url())\n        ws.send(dt)\n        print('-' * 30)\n\n        print('接收信息')\n        audiosum = bytes()\n        while True:\n            message = ws.recv()\n            # print(message)\n            try:\n                message = json.loads(message)\n                code = message[\"code\"]\n                sid = message[\"sid\"]\n                audio = message[\"data\"][\"audio\"]\n                audio = base64.b64decode(audio)\n                status = message[\"data\"][\"status\"]\n\n                if status == 2:\n                    audiosum += audio\n\n                    print(\"ws is closed\")\n                    ws.close()\n\n                    # wav_path = f'./wav-{index}.wav'\n                    # wav_path = f'{dir}/{index}.wav'\n                    # with wave.open(wav_path, 'wb') as wavfile:\n                    #     wavfile.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))\n                    #     wavfile.writeframes(audiosum)  # TODO byteIO ？\n                    # print('写入 ', wav_path)\n                    # rsd[index] = {'sentens': sentens, 'file': wav_path}\n\n                    return audiosum\n                    # break\n\n                if code != 0:\n                    errMsg = message[\"message\"]\n                    print(\"sid:%s call error:%s code is:%s\" % (sid, errMsg, code))\n                else:\n                    audiosum += audio\n                    continue\n\n            except Exception as e:\n                print(\"receive msg,but parse exception:\", e)\n\n        pass\n\n\ndef tts_say_wave(wav_path,text):\n    import wave\n    from config import APIKey, APISecret, APPID\n    wsParam = XFtts(APPID=APPID,\n                    APIKey=APIKey,\n                    APISecret=APISecret, )\n    \n    audiosum = wsParam.say(text)\n    \n    # audiosum += audio\n    with wave.open(wav_path, 'wb') as wavfile:\n        wavfile.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))\n        wavfile.writeframes(audiosum)\n    print('写入 ', wav_path)\n\n    pass\n\n\ndef main():\n    wav_path = f'test1.wav'\n    text = '而除了靠免费盗版片获取流量，以广告等方式变现的途径外，更直接的盈利方式就是直接售卖盗版资源。2019年4月，媒体报道称河南公安机关已打击2个制作销售高清盗版电影的犯罪团伙，截止案发，这2个团伙共制作盗版影片320余部，初步估算非法获利700余万元。'\n    tts_say_wave(wav_path,text)\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2020/1-20-hacker-tools/README.md",
    "content": "## Docker黑客工具\n- 视频:[一行命令让你成为黑客高手！！！Docker黑客工具](https://www.bilibili.com/video/av84227396/)\n\n- https://hub.docker.com/r/veerendrav2/hacker-tools\n- 下载\n\t- docker pull veerendrav2/hacker-tools\n- 启动\n\t- \tdocker run -it --rm --net=host --privileged  veerendrav2/hacker-tools\n\n\t-  启动squid代理\n\t-  \tdocker run  -it --rm -p 3128:3128  datadog/squid\n\t-  docker exec -it 1bff576f3afc /bin/bash\n- 测试\n \t-   traceroute baidu.com\n\t-   ping 172.17.0.2\n\t-   nmap 172.17.0.2"
  },
  {
    "path": "2020/1-3-特朗普-推特-截图/README.md",
    "content": "# 特朗普-推特-截图\n\n- 首先要使用代理\n    - args: ['--proxy-server=127.0.0.1:8118'],\n- 然后page.goto(main_url)\n- 使用selector获取【推文】元素\n- 截图"
  },
  {
    "path": "2020/1-3-特朗普-推特-截图/twitter_screenshot1.js",
    "content": "/*\n\n要使用代理执行\n*/\nconst puppeteer = require('puppeteer');\nvar main_url='https://twitter.com/realDonaldTrump'\n\n\nasync function run() {\n    //const browser = await puppeteer.launch();\n    browser = await puppeteer.launch({\n        headless: false,\n        timeout: 20000,\n        DefaultArgs:'--mute-audio',\n        ignoreDefaultArgs: ['--enable-automation'],\n        executablePath: '/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome',//可注销\n        //也可以改为你系统里Chrome的目录\n\n        ignoreHTTPSErrors: true,\n        args: ['--proxy-server=127.0.0.1:8118'],\n    });\n\n    const page = await browser.newPage();\n        await page.setViewport({width: 1280, height: 1000})\n        await page.goto(main_url)\n    console.log('page.waitFor(10000)')\n    await page.waitFor(4000)\n\n// const element = await page.$(\"body\");\n//   await element.screenshot({\n//     path: \"screenshot.png\"\n//   });\n\n  // let elements=document.querySelectorAll('div > article')\n  console.log('kaishi截图')\n  let elements=await page.$$('#stream-items-id > li')\n  console.log('截图',elements.length)\n  for (var i = 0; i < elements.length; i++) {  \n        console.log(i);  \n        await elements[i].screenshot({\n    path: i+\"_screenshot.png\"\n  });\n\n        await page.waitFor(1000)\n    }  \n\n\n// elements.forEach(async function(element,index){\n//     console.log(index)\n//     await element.screenshot({\n//     path: index+\"_screenshot.png\"\n//   });\n// })\n    console.log('page.waitFor(2000);')\n    await page.waitFor(200000);\n\n    // setTimeout()\n\n\n    browser.close();\n}\n\nrun();"
  },
  {
    "path": "2020/10-9-weShare-ink-display/README.md",
    "content": "## 微雪-墨水屏-编程\n\n## 视频\n- [微雪墨水屏-Arduino编程，ESP32 支持WiFi和蓝牙](https://www.bilibili.com/video/BV1yz4y1C7Y8/)\n\n## 购买\n- 淘宝，运费6元\n    - [微雪 墨水屏裸屏驱动板 SPI接口 ESP32 ESP8266 支持WIFI/蓝牙](https://s.click.taobao.com/t?e=m%3D2%26s%3DLWwjUCPQv2QcQipKwQzePOeEDrYVVa64K7Vc7tFgwiHjf2vlNIV67trmiN9ZoeYrZW7hPg9HazilldgrEKAMDZqHHjUPN5fPvcXgLQcnSPhUUJCbLNYEnHJi6DFpZGNc%2Bht3wBcxEojg%2BvVPtZxVh1vzY1gj2%2FS51m%2FRykadurUYtE6uZJaO3HEqY%2Bakgpmw&scm=null&pvid=null&app_pvid=59590_11.88.32.203_568_1602231743720&ptl=floorId%3A17741&originalFloorId%3A17741&app_pvid%3A59590_11.88.32.203_568_1602231743720&union_lens=lensId%3APUB%401602231720%400b1a25df_d9d4_1750c73d849_2645%40026UvXKptoe9OnJOZeqXA9tB)\n        -  e-Paper ESP32 Driver Board\n    - [微雪 4.2寸墨水屏裸屏 电子纸 显示模块  红黑白三色 兼容树莓派4](https://s.click.taobao.com/t?e=m%3D2%26s%3Dgu%2FRd0bRTGkcQipKwQzePOeEDrYVVa64K7Vc7tFgwiHjf2vlNIV67ogRc0DrYpkvFfrEfJ4hp2qlldgrEKAMDZqHHjUPN5fPvcXgLQcnSPhUUJCbLNYEnHJi6DFpZGNc%2Bht3wBcxEojg%2BvVPtZxVh1vzY1gj2%2FS51m%2FRykadurUDBRIF6NDIT3EqY%2Bakgpmw&scm=null&pvid=null&app_pvid=59590_11.26.37.22_555_1602231877211&ptl=floorId%3A17741&originalFloorId%3A17741&app_pvid%3A59590_11.26.37.22_555_1602231877211&union_lens=lensId%3APUB%401602231873%400b14eca8_ae89_1750c763150_4d4c%40027HYB50teMJ7vU6A8SsikWj)\n\n- 资料\n    - https://www.waveshare.net/wiki/E-Paper_ESP32_Driver_Board\n        - 根据这个指南，安装软件和驱动\n        - 下载案例 E-Paper_ESP32_Driver_Board_Code\n    - 外国参考 https://www.hackster.io/vitorio/e-paper-name-tag-2d22cc\n- 步骤\n    - Windows 7 安装 Arduino IDE\n    - 在GitHub下载 [Arduino-ESP32 支持包](https://codeload.github.com/espressif/arduino-esp32/zip/master) 驱动，放在hardware文件夹，新建子文件夹\n    - 使用管理员权限打开cmd\n\n```\ncd C:\\Program Files (x86)\\Arduino\\hardware\\espressif\\esp32\\tools\nC:\\Program Files (x86)\\Arduino\\hardware\\espressif\\esp32\\tools>get.exe\nSystem: Windows, Info: Windows-7-6.1.7601-SP1\nPlatform: i686-mingw32\nDownloading xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip\nDone\nExtracting xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip\nDownloading esptool-2.6.1-windows.zip\nDone\nExtracting esptool-2.6.1-windows.zip\nDownloading mkspiffs-0.2.3-arduino-esp32-win32.zip\nDone\nExtracting mkspiffs-0.2.3-arduino-esp32-win32.zip\nRenaming mkspiffs-0.2.3-arduino-esp32-win32/ to mkspiffs\nDone\n```\n## WiFi案例\n- 然后打开ArduinoIDE\n    - 打开WiFi案例，编译，上传\n    - 编译完后，马上长按boot键\n    - 等上传完毕，松开\n    - 打开串口后台，波特率:115200\n    - 按下EN键，连接WiFi\n    - 串口显示IP\n    - 浏览器登录http://192.168.1.104/\n    - 上传图片\n        - 尺寸 4.2b ? c ?\n\n- 串口输出\n```\nets Jun  8 2016 00:22:57\n\nrst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)\nconfigsip: 0, SPIWP:0xee\nclk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00\nmode:DIO, clock div:1\nload:0x3fff0018,len:4\nload:0x3fff001c,len:1216\nho 0 tail 12 room 4\nload:0x40078000,len:10864\nload:0x40080400,len:6432\nentry 0x400806b8\n\n\nConnecting to Pro\n.\nWiFi connected\nServer started\n192.168.1.104\n\nOk!\n\n```\n\n## 蓝牙案例\n- 跟WiFi案例相同，编译上传固件\n    - 在案例文件夹里找到app-release.apk，上传到手机安装\n    - 手机蓝牙，连接电子纸驱动板\n    - 打开App，上传图片\n\n## macOS系统\n- 安装驱动很麻烦，不支持，不推荐使用macOS\n```\nI found that macOS High Sierra has blocked the SiLabs kernel extension.\n\nHere are steps to allow this extension:\n\nGo to \"System Preferences\" -> \"Security & Privacy\"\nIn the bottom of the window, you will see a message \"System software from developer \"SiLabs\" was blocked from loading.\"\nClick on \"Allow\" button\nRestart your Mac\nNow my device is listed as /dev/cu.SLAB_USBtoUART and everything work as expected.\n```\n\n## 售后\n- 微雪客服，技术支持工程师\n```\nEMAIL：2355742828@qq.com\n电话：0755-83040712\nQQ： 2355742828\n```"
  },
  {
    "path": "2020/11-25-use-Search-engine/README.md",
    "content": "# 怎样使用搜索引擎\n\n- 视频 [【实践】怎样使用搜索引擎？代替Google](https://www.bilibili.com/video/BV1UD4y1X7xm/)\n\n## 国内\n- 不要使用百度\n- 使用微软bing\n    - https://cn.bing.com/\n    - 能搜到大部分信息\n\n- 其他搜索引擎\n    - 平时我都不用\n    - 只能搜索到部分信息\n    - 搜狗\n        - 用来搜微信公众号\n    - 360\n        - 绑定在360浏览器，设置其他搜索引擎非常麻烦，让你放弃，老老实实使用360搜索\n\n## 国外\n- Google\n    - https://www.google.com/ 不能访问\n    - http://www.google.cn/\n        - 会调整到http://www.google.com.hk/webhp?hl=zh-CN&sourceid=cnhp\n            - 打不开\n        - 用来下载 Chome 和 Google Earth \n            - http://www.google.cn/chrome/\n            - http://www.google.cn/intl/zh-CN/earth/\n        - 翻译 https://translate.google.cn/?hl=zh-CN\n    - https://www.google.com.hk \n        - 打不开\n- https://duckduckgo.com/\n     - 打不开   \n\n## 代替 Google\n- 雅虎搜索\n- AOL搜索\n    - https://search.aol.com/\n- 俄罗斯\n    - https://yandex.com/\n- 捷克\n    - https://search.centrum.cz/\n    - 推荐使用这个，因为它使用Google的结果\n    - 有验证码\n\n## 搭建网站\n- https://github.com/makelove/whoogle-search\n    - 没有广告\n    - 没有跟踪/链接您的个人IP地址\n    - 易于安装/部署\n        - [Heroku快速部署](https://heroku.com/about)"
  },
  {
    "path": "2020/12-17-Azure-server-free/README.md",
    "content": "## 免费Azure服务器\n\n- 视频 [【亲测有效】申请微软Azure服务器免费12个月](https://www.bilibili.com/video/BV12p4y1q7t7/)\n\n- 参考\n    - [申请微软Azure服务免费12个月+$200 额度+永久免费(25+项服务)](https://www.daniao.org/7057.html)\n        - 首月送200美金，10T流量随意用\n        - vps免费资源为1G内存/40G空间/15G月流量，持续一年。\n        - 套路\n            - 需要试用完200美元或者过了30天后，必须升级即用即付后，才能享受12个月免费服务\n            - 免费12个月期间，如果产生扣费（比如流量超了）会在下个月账单中直接信用卡扣费。\n            - 免费12个月到期后，订阅不会停止，已开通的免费资源会直接产生扣费\n- 注册\n    - 活动 [通过 12 个月的免费服务开始使用](https://azure.microsoft.com/zh-cn/free/)\n    - 一张信用卡，验证卡的时候扣费1美刀！（VISA或者万事达，且没有激活过其他账号）\n- 创建虚拟机vps\n    - 选择配置的时候一定要选择标准 B1s这个配置\n        - 只有它才免费\n    - 创建用户时，建议使用 【ssh密钥】，到时登录不需要密码，很方便\n    - 创建完成后\n        - 【网络】添加【入站端口】\n    - 登录服务器\n        - ssh 【你的账号】@【你的IP】\n            - ssh ms@168.62.xxx.xxx\n- 翻墙\n    - Nginx反向代理\n    - Squid代理\n        - 用来做爬虫\n        - 参考 \n            - 搭建 https://www.linuxidc.com/Linux/2019-08/159960.htm\n            - squid搭建高匿名代理服务 https://www.jianshu.com/p/96c8f1f7fd17\n        - 测试\n            - curl -x 你的IP:3128 http://httpbin.org/ip\n    - SSR\n        - 比较复杂\n        - 微软发公告禁止翻墙\n    - ssh 隧道\n        - 最简单\n        - 先登录服务器 ssh -f -NC -D 2345 ms@168.62.xxx.xxx\n            - sock5代理，端口是2345\n            - 然后在Chrome浏览器的【Proxy SwitchyOmega】插件设置代理\n                - 代理协议是SOCKS5,IP是127.0.0.1，端口是2345\n            - 测试\n                - curl --socks5 localhost:2345 http://httpbin.org/ip\n\n- Python 虚拟环境\n    - sudo apt-get install python3-pip\n    - pip3 install virtualenv\n    - virtualenv  -p /usr/bin/python3.6 .py3\n    - 把source ~/.py3/bin/activate \n        - 加到~/.bashrc末尾\n        - 这样，每次登录服务器，就能自动使用Python 虚拟环境\n        \n- YouTube视频\n    - pip3 install youtube_dl\n    - sudo apt  install ffmpeg\n    - pip3 install python-ffmpeg-video-streaming\n    - 下载视频\n        - 从服务器到本机\n            - 使用Nginx\n                - sudo ln -s /home/ms/video/ /var/www/html/video\n                - 修改Nginx配置，添加【目录遍历】\n                    - 参考 https://blog.csdn.net/ddazz0621/article/details/85338671\n                - 打开 http://服务器IP/video/\n            - 可以使用ftp，比较慢\n            - 使用Flask ，比较快，1 m/s\n                - response=send_file(fp,as_attachment=True,attachment_filename=filename)\n    - 使用m3u8在线观看，hls流式播放\n        - https://github.com/newnewcoder/flask-hls-demo\n        - https://github.com/aminyazdanpanah/python-ffmpeg-video-streaming\n        - 问题，ts文件大，网速慢，体验差\n```\n(.py3) ms@f1:~/video$ youtube-dl https://www.youtube.com/watch?v=79aP7BhrbuI\n[youtube] 79aP7BhrbuI: Downloading webpage\n[youtube] 79aP7BhrbuI: Downloading MPD manifest\n[download] Destination: The world's top 10 ultimate travel experiences-79aP7BhrbuI.mp4\n[download] 100% of 29.18MiB in 00:01\n```\n- Google Earth Studio\n    - 翻墙后，配置Chrome浏览器的【Proxy SwitchyOmega】插件\n        - 打开 https://earth.google.com/studio/\n        - 需要申请，很快通过，当天\n        - 新建工程，然后调整视角，地点\n        - 渲染，它会自动导出高分辨率的图片到你的电脑\n            - 然后使用【视频剪辑软件】合并成视频\n                - 使用FFmpeg命令行\n                    - 参考 https://blog.csdn.net/wangshuainan/article/details/77914508\n                    - ffmpeg  -i  测试1_%03d.jpeg -vcodec libx264 -r 30  test.mp4\n                        - 【测试1】 为工程名称\n                        - 图片：测试1_441.jpeg\n                        - -r 30 帧率\n                        - -vcodec libx264 编码器\n                        - 视频[【测试】Google Earth Studio 样片，使用ffmpeg合成，无声](https://www.bilibili.com/video/BV1yp4y1q7Nw/)\n\n                - 使用moviepy\n                "
  },
  {
    "path": "2020/12-19-password-generator/README.md",
    "content": "## Python密码生成器\n\n- 视频 [Python密码生成器，轻松实现](https://www.bilibili.com/video/BV1sf4y1e7gk/)\n\n- 参考\n    - https://github.com/redacted/XKCD-password-generator\n    - https://pypi.org/project/random-password-generator/\n    - https://github.com/PyLamGR/PyVault\n\n- 代码\n    - [password.py](password.py)\n- 需求\n    - 1.很多网站App，新建账号时需要添加密码\n    - 2.简单密码不安全\n    - 3.在多个网站使用同一个密码，也不安全\n    - 4.创建密码后，使用Excel或密码管理器1password保存\n    - 5.Chrome浏览器自带密码管理"
  },
  {
    "path": "2020/12-19-password-generator/password.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/12/19 13:29\n# @File    : password.py\n\n\n\"\"\"\npassword.py:\npassword-generator\n快捷方式\nalias pw='python3 /Users/play/CODE/Python_Test/密码生成器/password.py'\n\"\"\"\n\nimport sys\nimport random, string\n\n\ndef 不重复(size=6, chars=string.ascii_letters + string.digits):\n    pw = ''\n    for _ in range(size):\n        x = random.choice(chars)\n        pw += x\n        chars = chars.replace(x, '')\n        pass\n    return pw\n\n\ndef random_string_generator(size=6, chars=string.ascii_letters + string.digits):\n    return ''.join(random.choice(chars) for _ in range(size))\n\n\ndef main(size):\n    # return random_string_generator(size)\n    return 不重复(size)\n    pass\n\n\nif __name__ == '__main__':\n    if len(sys.argv) > 1:\n        num = int(sys.argv[1])\n    else:\n        num = 8\n\n    if num > 62:\n        print('长度太大')\n    else:\n        rs = main(num)\n        print(rs)\n"
  },
  {
    "path": "2020/12-21-python-hosts/README.md",
    "content": "\n## 用来翻墙\n\n- 视频 [Python 工具库python-hosts的使用](https://www.bilibili.com/video/BV1y5411G7Kj/)\n- 代码\n    - [add-host-ip.py](add-host-ip.py)\n\n- 怎样修改域名+IP，打开国外网站更流畅？\n    - 查询 全球DNS\n        - https://www.gdnspc.com/\n        - 国内 https://www.ping.cn/dns\n            - [拨号API接口](https://www.ping.cn/api)\n    - 获取 服务器IP\n        - 把curl转成Python Requests代码\n            - https://curl.trillworks.com/\n    - 检查本地能否连接该IP\n        - [python requests toolbelt 工具带的使用](https://www.bilibili.com/video/BV1rh411Z73N/)\n    - 写入/etc/hosts\n    \n- 参考\n    - https://github.com/jonhadfield/python-hosts\n    - 解析/etc/hosts\n        - 可以添加或删除【 IP+domain】映射"
  },
  {
    "path": "2020/12-21-python-hosts/add-host-ip.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/12/21 11:56\n# @File    : add-host-ip.py\n\n\n\"\"\"\nadd-host-ip.py:\n自动添加/etc/hosts 域名绑定IP\n\"\"\"\n\nimport requests\n\n\ndef 查询全球DNS(host):\n    import requests\n\n\n    headers = {\n        'authority': 'www.gdnspc.com',\n        'sec-ch-ua': '\"Google Chrome\";v=\"87\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"87\"',\n        'accept': 'application/json, text/javascript, */*; q=0.01',\n        'dnt': '1',\n        'x-requested-with': 'XMLHttpRequest',\n        'sec-ch-ua-mobile': '?0',\n        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',\n        'sec-fetch-site': 'same-origin',\n        'sec-fetch-mode': 'cors',\n        'sec-fetch-dest': 'empty',\n        'referer': 'https://www.gdnspc.com/',\n        'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',\n        'cookie': '__cfduid=d7f182d3c5a68e71c2a9902c472e8a3631608433922; _ga=GA1.2.1900327867.1608433937; _gid=GA1.2.337357370.1608433937; __gads=ID=6af39aca34d98035-22caac9a43c50018:T=1608433936:RT=1608433936:S=ALNI_MaE5H6FI7G_xbl_V_rJex291IiUkw; PHPSESSID=468b4c4c7f252da4308788b995996134',\n    }\n\n\n    params = (\n            ('s', '162'),\n            ('t', 'A'),\n            ('q', 'raw.githubusercontent.com'),\n            ('k', 'AyaEUoRPnk5yximSDQFBow2FGoM91qP1'),\n            ('r', '1608534545-CFbFIYp4MCn78Beb'),\n        )\n\n    response = requests.get('https://www.gdnspc.com/api/checker', headers=headers, params=params)\n    js = response.json()\n    return js['result'][0]['record']\n\n    pass\ndef 查询全球DNS2(host):\n    headers = {\n        'authority': 'www.whatsmydns.net',\n        'sec-ch-ua': '\"Google Chrome\";v=\"87\", \" Not;A Brand\";v=\"99\", \"Chromium\";v=\"87\"',\n        'accept': 'application/json, text/plain, */*',\n        'dnt': '1',\n        'sec-ch-ua-mobile': '?0',\n        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',\n        'sec-fetch-site': 'same-origin',\n        'sec-fetch-mode': 'cors',\n        'sec-fetch-dest': 'empty',\n        'referer': 'https://www.whatsmydns.net/',\n        'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',\n        'cookie': '__cfduid=dd845ca2c0dae8ef04fade64da42aa53d1608433918; _ga=GA1.2.864067538.1608433921; _gid=GA1.2.1694506165.1608433921; __gads=ID=7c02c0ed2adccebb:T=1608527151:S=ALNI_MYn8MpuX26lqec-GtWHF_fWoSR1qA; _gat=1',\n    }\n\n    params = (\n        ('server', '343'),\n        ('type', 'A'),\n        ('query', host,),  # 'hide.me'\n    )\n\n    response = requests.get('https://www.whatsmydns.net/api/details', headers=headers, params=params)\n    js = response.json()\n    return js['data'][0]['response'][0] #js['result'][0]['record']\n\n    pass\n\n\nimport socket\n\n\ndef 检查本地能否连接该IP(ip, host):  # OK\n    from requests.exceptions import ConnectTimeout,ConnectionError\n    from requests_toolbelt.adapters import host_header_ssl\n    s = requests.Session()\n    s.mount('https://', host_header_ssl.HostHeaderSSLAdapter())\n\n    headers = {\n        \"Host\": host,\n        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',\n    }\n    # rs = s.get(\"https://\"+ip, headers={\"Host\": host})\n    try:\n        rs = s.get(f\"https://{ip}/\", headers=headers, timeout=4, verify=False,allow_redirects=False)\n        print(rs.status_code, rs.headers)\n\n    except ConnectTimeout as e:\n        return False\n    except Exception as e:\n        print(e)\n\n\n    return True\n\n    pass\n\n\ndef 检查本地能否连接该IP1(ip):\n    # import socket\n    # s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n    # try:\n    #     s.connect((ip, 80))\n    #     print(\"Port 80 reachable\")\n    # except socket.error as e:\n    #     print(\"Error on connect: %s\" % e)\n    # s.close()\n    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:\n        try:\n            s.connect((ip, 80))\n            print(\"Port 80 reachable\")\n            return True\n        except socket.error as e:\n            print(\"Error on connect: %s\" % e)\n            return False\n\n\ndef 检查本地能否连接该IP2(ip):\n    try:\n        socket.gethostbyaddr(ip)\n    except socket.herror:\n        print(u\"Unknown host 连接不上\")\n        return False\n    return True\n    pass\n\n\ndef main(url):\n    # 查询 全球DNS\n    # 获取 服务器IP\n    from urllib.parse import urlparse\n    host = urlparse(url).netloc\n    print('host:',host)\n    ip = 查询全球DNS(host)\n    # 检查本地能否连接该IP\n    print('检查本地能否连接该IP')\n    print('-'*40)\n    tf = 检查本地能否连接该IP(ip, host)\n    print('-'*40)\n    # ip='151.101.124.133'\n    # tf=True\n\n    # 写入/etc/hosts\n    if tf:\n        print('写入/etc/hosts')\n        # Root 用户\n        from python_hosts import Hosts, HostsEntry\n        hosts = Hosts(path='/etc/hosts')\n        new_entry = HostsEntry(entry_type='ipv4', address=ip, names=[host])\n        hosts.add([new_entry])\n        hosts.write()\n        pass\n    else:\n        print('该IP不能连接', ip)\n    pass\n\n\nif __name__ == '__main__':\n    import sys\n\n    if len(sys.argv) > 1:\n        url = sys.argv[1]\n        main(url)\n    else:\n        print('添加url')\n\n    # 检查本地能否连接该IP('8.7.198.46', 'google.com')\n    # 检查本地能否连接该IP('174.138.52.82', 'hide.me')\n    # 检查本地能否连接该IP('151.101.52.133', 'raw.githubusercontent.com')\n"
  },
  {
    "path": "2020/12-21-requests-toolbelt/README.md",
    "content": "## python requests toolbelt 工具带的使用\n\n- 视频 [python requests toolbelt 工具带的使用](https://www.bilibili.com/video/BV1rh411Z73N/)\n\n\n- 步骤\n    - 1.Request请求绑定 网卡IP\n    - 2.Request请求绑定 目标服务器IP\n\n\n\n- 参考\n    - https://stackoverflow.com/questions/28773033/python-requests-how-to-bind-to-different-source-ip-for-each-request\n    - https://github.com/psf/requests/issues/394\n    - 官方文档\n        - https://toolbelt.readthedocs.io/en/latest/user.html\n"
  },
  {
    "path": "2020/12-22-PyGithub/README.md",
    "content": "## Github API 的使用-PyGithub\n\n- 视频 [Github API 的使用-PyGithub](https://www.bilibili.com/video/BV1fh411Z777/)\n\n- 参考\n    - 第一个例子 [How to Use Github API in Python](https://www.thepythoncode.com/article/using-github-api-in-python)\n    - [PyGithub](https://github.com/PyGithub/PyGithub)\n        - [文档](https://pygithub.readthedocs.io/en/latest/introduction.html)\n        - [Examples例子代码](https://pygithub.readthedocs.io/en/latest/examples.html)\n\n    - [使用 Python3 编写 Github 自动周报生成器](https://www.jianshu.com/p/a0af604b3d97)\n    - 不错 [使用GitHub API和Python可以做的所有事情](https://towardsdatascience.com/all-the-things-you-can-do-with-github-api-and-python-f01790fca131) 要翻墙\n    - [Rate limit\n](https://docs.github.com/en/free-pro-team@latest/rest/reference/rate-limit)\n        - [创建个人token](https://github.com/settings/tokens)"
  },
  {
    "path": "2020/12-4-chrome-enable-network-request-blocking/README.md",
    "content": "\n## 创建Chrome扩展程序以阻止网站请求\n- 视频 [【经验】开发Chrome插件，浏览器禁止某些网络请求，更快加载国外的网站](https://www.bilibili.com/video/BV1TT4y1M72r/)  \n\n- 代码\n    - [Chrome Request Blocker Extension](https://github.com/clupasq/ChromeHttpRequestBlocker)\n    \n- 参考\n    - Chrome Dev tool  \n        - > opening the 3-dot-menu at the top right of the dev tools \n        - >> More tools \n        - >>> Request blocking\n    - https://stackoverflow.com/questions/18158297/blocking-request-in-chrome\n    - [BlockIt - Chrome extension to block requests](https://www.codeproject.com/Articles/1179350/BlockIt-Chrome-extension-to-block-requests)\n    - [创建一个简单的扩展程序以阻止网站](https://ops.tips/blog/extension-to-block-websites/)"
  },
  {
    "path": "2020/12-5-flask-ffmpeg-m3u8/README.md",
    "content": "## Python编程，Flask网站播放m3u8流媒体\n\n- 视频 [【Python编程】Flask网站播放m3u8流媒体](https://www.bilibili.com/video/BV15K4y1L7nF/)\n\n- 步骤\n    - FFmpeg切割视频，ts\n    - m3u8指向ts段文件\n    - 在浏览器端使用hls.js播放视频\n- 代码\n    - https://github.com/newnewcoder/flask-hls-demo\n    - https://github.com/aminyazdanpanah/python-ffmpeg-video-streaming\n        - 文档 https://video.aminyazdanpanah.com/python/start\n    - m3u8文件解析 https://github.com/globocom/m3u8\n- 加密m3u8\n    - Encryption(DRM)\n- 参考\n    - [使用FFmpeg作为HLS流服务器（第1部分）– HLS基础](https://www.martin-riedl.de/2018/08/24/using-ffmpeg-as-a-hls-streaming-server-part-1/)\n        - 第二部分 https://www.martin-riedl.de/2018/08/24/using-ffmpeg-as-a-hls-streaming-server-part-2/\n    - [m3u8下载](https://gist.github.com/primaryobjects/7423d7982656a31e72542f60d30f9d30)\n    \n- ffmpeg 切割视频，生成m3u8\n```shell script\nffmpeg  -i  input.mp4   \\\n   -c:v libx264 -crf 21 -preset veryfast \\\n    -c:a aac -b:a 128k -ac 2 \\\n    -f hls -hls_time 4 -hls_playlist_type event stream.m3u8\n\nffmpeg -i input.mp4  \\\n    -c:v libx264 -c:a aac -strict -2 -hls_time 20 -f hls output.m3u8\n```  "
  },
  {
    "path": "2020/2-1-WordCloud-武汉/README.md",
    "content": "- 视频:[怎样用Python制作【词云】？武汉-冠状病毒](https://www.bilibili.com/video/av86091936/)\n\n从【微博搜索】获取【热门微博】\n然后用【结巴分词】提取关键词\n使用Wordcloud制作词云\n\n关键点是中文字体路径\n否则显示不出来"
  },
  {
    "path": "2020/2-1-WordCloud-武汉/词云-Alice-英文.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# 参考 https://github.com/amueller/word_cloud/blob/master/examples/simple.py\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from wordcloud import WordCloud\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"text = open('/Users/play/Downloads/alice.txt').read()\\n\",\n    \"#https://github.com/amueller/word_cloud/blob/master/examples/alice.txt\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"145190\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"len(text)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"wordcloud = WordCloud( width=1000, height=860).generate(text)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(-0.5, 999.5, 859.5, -0.5)\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow(wordcloud, interpolation='bilinear')\\n\",\n    \"plt.axis(\\\"off\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# lower max_font_size\\n\",\n    \"wordcloud = WordCloud(max_font_size=40).generate(text)\\n\",\n    \"plt.figure()\\n\",\n    \"plt.imshow(wordcloud, interpolation=\\\"bilinear\\\")\\n\",\n    \"plt.axis(\\\"off\\\")\\n\",\n    \"plt.show()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "2020/2-1-WordCloud-武汉/词云wordcloud-中文.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"中文\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"微博搜索\\n\",\n    \"https://s.weibo.com/weibo?q=%E6%AD%A6%E6%B1%89&xsort=hot&suball=1&timescope=custom:2020-01-01:&Refer=g\\n\",\n    \"\\n\",\n    \"然后打开Console\\n\",\n    \"document.querySelectorAll('.content .txt').forEach(function(div){\\n\",\n    \"    console.log(div.innerText)\\n\",\n    \"    txtl.push(div.innerText)})\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"txt=''' 【捐了那么多东西怎么还缺？#记者探访武汉市红十字会# 】总台央广记者31日来到位于湖北省武汉市胜利街162号的武汉市红十字会。因红十字会已成为舆论焦点，采访时记者明显感受到现场工作人员的压力和对媒体的防备。记者始终没有在现场见到红十字会的工作人员，一位从其他部门抽调来的工作人员私下说，“ ​ \\n\",\n    \" \\n\",\n    \"                    【捐了那么多东西怎么还缺？#记者探访武汉市红十字会# 】总台央广记者31日来到位于湖北省武汉市胜利街162号的武汉市红十字会。因红十字会已成为舆论焦点，采访时记者明显感受到现场工作人员的压力和对媒体的防备。记者始终没有在现场见到红十字会的工作人员，一位从其他部门抽调来的工作人员私下说，“红十字会几十年没打大仗了，一打仗就有点乱。”  #总台记者探访武汉红十字会# 详情>>O捐了那么多东西怎么还缺？记者探访武汉市红十字会 \\n\",\n    \"                \\n\",\n    \" 【#9省物资直达武汉协和# 快递司机：水都不敢多喝，怕耽误时间】截至1日上午10时15分，北京、山东、黑龙江、湖南、海南、甘肃、四川、内蒙古、辽宁等9省（区、市）40个单位将援助物资直接运抵协和医院。包括医用口罩、医用手套、隔离衣、防护服、防护眼镜、一次性鞋套和工作帽等总计30多万件。 ​\\n\",\n    \" 【究竟是物资紧缺还是物资分配环节存在问题？看着揪心】网友@BigWayneWu ： 物资紧缺，大战当前，武汉协和医院西区的一线老师们没有条件创造条件也要上，泪目 ​\\n\",\n    \" 【#武汉小姐姐每天给医院做饭800份#】武汉盘龙城一家餐厅，专门为金银潭等医院的医护人员做盒饭。由于忙不过来，店主小姐姐还叫上父母兄妹齐上阵，每天能制作盒饭800-1000份。小姐姐说：“看到医护人员的朋友圈，很受不了，我想做这个事儿。”加话题#武汉日记#发微博，在昵称后点亮icon，一起为武 ​ \\n\",\n    \" \\n\",\n    \"                    【#武汉小姐姐每天给医院做饭800份#】武汉盘龙城一家餐厅，专门为金银潭等医院的医护人员做盒饭。由于忙不过来，店主小姐姐还叫上父母兄妹齐上阵，每天能制作盒饭800-1000份。小姐姐说：“看到医护人员的朋友圈，很受不了，我想做这个事儿。”加话题#武汉日记#发微博，在昵称后点亮icon，一起为武汉加油！（总台央视记者张竣 单泽）#央视记者武汉vlog# L央视新闻的微博视频 \\n\",\n    \"                \\n\",\n    \" 【终于！#武汉协和医院收到急需物资#】今天下午，武汉协和医院急需的一批医疗物资已经送到医生和护士手里。这批物资由武大和华科校友会联合捐赠，包括超过20万个医疗口罩，以及外罩和手套等个人防护装备。希望更多物资能尽快到达一线！（沈文敏） ​\\n\",\n    \" #共同战疫#【直播！总台#央视记者采访武汉协和医院#！】口罩等应急物资是否短缺？医院物资来源有哪些？发放有何标准？记者独家专访华中科技大学附属协和医院党委副书记孙晖，回应各方关切。看直播，关注！(总台央视记者王宇) 央视新闻的微博直播 . ​\\n\",\n    \" 【捐了那么多东西怎么还缺？#总台记者探访武汉红十字会#】记者看到，原来的展馆被临时征用为武汉市红十字会存放捐赠物资的仓库。展馆的一个角落被改造为办公室，有工作人员在登记造册，地上堆放着货物。武汉市常务副市长胡亚波说：“大量捐赠物资都是民用的。很多有用的东西，现在特别紧缺。一方面需要 ​ \\n\",\n    \" \\n\",\n    \"                    【捐了那么多东西怎么还缺？#总台记者探访武汉红十字会#】记者看到，原来的展馆被临时征用为武汉市红十字会存放捐赠物资的仓库。展馆的一个角落被改造为办公室，有工作人员在登记造册，地上堆放着货物。武汉市常务副市长胡亚波说：“大量捐赠物资都是民用的。很多有用的东西，现在特别紧缺。一方面需要的东西进不来，另一方面医护人员不需要的东西堆积如山。”详情↓ O捐了那么多东西怎么还缺？ 总台记者探访武汉市红十字会 \\n\",\n    \"                \\n\",\n    \" 【#滞留海外湖北籍同胞回国瞬间#】31日，两驾包机返回武汉，滞留海外的湖北籍同胞顺利回国。抵达机场那一刻，他们说：“回家，真好！”L人民日报的微博视频 ​\\n\",\n    \" #新型冠状病毒感染肺炎#【上海药物所、武汉病毒所联合发现中成药双黄连口服液可抑制新型冠状病毒】记者31日从中国科学院上海药物所获悉，该所和武汉病毒所联合研究初步发现，中成药双黄连口服液可抑制新型冠状病毒。此前，上海药物所启动由蒋华良院士牵头的抗新型冠状病毒感染肺炎药物研究应急攻关团队 ​ \\n\",\n    \" \\n\",\n    \"                    #新型冠状病毒感染肺炎#【上海药物所、武汉病毒所联合发现中成药双黄连口服液可抑制新型冠状病毒】记者31日从中国科学院上海药物所获悉，该所和武汉病毒所联合研究初步发现，中成药双黄连口服液可抑制新型冠状病毒。此前，上海药物所启动由蒋华良院士牵头的抗新型冠状病毒感染肺炎药物研究应急攻关团队，在前期SARS相关研究和药物发现成果基础上，聚焦针对该病毒的治疗候选新药筛选、评价和老药新用研究。双黄连口服液由金银花、黄芩、连翘三味中药组成。中医认为，这三味中药具有清热解毒、表里双清的作用。现代医学研究认为，双黄连口服液具有广谱抗病毒、抑菌、提高机体免疫功能的作用，是目前有效的广谱抗病毒药物之一。上海药物所长期从事抗病毒药物研究，2003年“非典”期间，上海药物所左建平团队率先证实双黄连口服液具有抗SARS冠状病毒作用,十余年来又陆续证实双黄连口服液对流感病毒（H7N9、H1N1、H5N1）、严重急性呼吸综合征冠状病毒、中东呼吸综合征冠状病毒具有明显的抗病毒效应。目前，双黄连口服液已在上海公共卫生临床中心、华中科技大学附属同济医院开展临床研究。（记者董瑞丰）（完） \\n\",\n    \"                \\n\",\n    \" 【上海药物所、武汉病毒所联合发现：#双黄连可抑制新型冠状病毒#】31日从中国科学院上海药物所获悉，该所和武汉病毒所联合研究初步发现，中成药#双黄连口服液可抑制新型冠状病毒#。此前，上海药物所启动由蒋华良院士牵头的抗新型冠状病毒感染肺炎药物研究应急攻关团队，在前期SARS相关研究和药物发现成 ​ \\n\",\n    \" \\n\",\n    \"                    【上海药物所、武汉病毒所联合发现：#双黄连可抑制新型冠状病毒#】31日从中国科学院上海药物所获悉，该所和武汉病毒所联合研究初步发现，中成药#双黄连口服液可抑制新型冠状病毒#。此前，上海药物所启动由蒋华良院士牵头的抗新型冠状病毒感染肺炎药物研究应急攻关团队，在前期SARS相关研究和药物发现成果基础上，聚焦针对该病毒的治疗候选新药筛选、评价和老药新用研究。双黄连口服液由金银花、黄芩、连翘三味中药组成。中医认为，这三味中药具有清热解毒、表里双清的作用。现代医学研究认为，双黄连口服液具有广谱抗病毒、抑菌、提高机体免疫功能的作用，是目前有效的广谱抗病毒药物之一。上海药物所长期从事抗病毒药物研究，2003年“非典”期间，上海药物所左建平团队率先证实双黄连口服液具有抗SARS冠状病毒作用,十余年来又陆续证实双黄连口服液对流感病毒（H7N9、H1N1、H5N1）、严重急性呼吸综合征冠状病毒、中东呼吸综合征冠状病毒具有明显的抗病毒效应。目前，双黄连口服液已在上海公共卫生临床中心、华中科技大学附属同济医院开展临床研究。（新华社） \\n\",\n    \"                \\n\",\n    \" 【湖北红十字会工作人员回应物资分配：#凭什么医院要分三六等级#】这位工作人员表示，捐赠物资是宏观调控，是一个从前到后的整体规划，有时候这个人多，有时候那个人多，不是很正常的现象吗？他们（武汉仁爱医院和天佑医院）也是医院，是中华人民共和国为人民群众看病、救命的医院，凭什么医院要分三六 ​ \\n\",\n    \" \\n\",\n    \"                    【湖北红十字会工作人员回应物资分配：#凭什么医院要分三六等级#】这位工作人员表示，捐赠物资是宏观调控，是一个从前到后的整体规划，有时候这个人多，有时候那个人多，不是很正常的现象吗？他们（武汉仁爱医院和天佑医院）也是医院，是中华人民共和国为人民群众看病、救命的医院，凭什么医院要分三六等级？凭什么不能给这些医院发口罩？都是医生都是人命，都在接受肺炎的病人，凭什么不能捐？#抗击肺疫最前线##武汉新型冠状病毒感染肺炎防控专题# O湖北省疫情防控指挥部：非定向捐赠物资分配方案由红十字会自行拟定 2北京·安贞西里二区 2北京·安贞西里二区 \\n\",\n    \"                \\n\",\n    \" 【正在直播：#探访武汉雷神山医院施工现场#】湖北武汉，雷神山医院进入建设倒计时。@人民日报 记者来到工地实地探访！戳直播↓↓ 人民日报的微博直播 . ​\\n\",\n    \" 【#捐了那么多东西为啥还缺#？记者实地探访武汉红十字会】爱心捐赠总量大可为何总是不够用？武汉市常务副市长胡亚波表示：①现场有些货物不是我们要的，有些货装得不规范；②医院一方面需要的东西进不来，另一方面医护人员不需要的东西堆积如山。医护人员不能用的口罩民众可以戴，后续会下发社区等；③ ​ \\n\",\n    \" \\n\",\n    \"                    【#捐了那么多东西为啥还缺#？记者实地探访武汉红十字会】爱心捐赠总量大可为何总是不够用？武汉市常务副市长胡亚波表示：①现场有些货物不是我们要的，有些货装得不规范；②医院一方面需要的东西进不来，另一方面医护人员不需要的东西堆积如山。医护人员不能用的口罩民众可以戴，后续会下发社区等；③科学调配是一个最复杂的系统工程，涉及到了方方面面，我们的力量还是不够。详戳↓↓L中国之声的微博视频 \\n\",\n    \"                \\n\",\n    \" 【#你好，明天#】武汉市委书记称：将责成慈善机构每三天发布捐赠物品去向。疫情仍在尖峰时刻，一线医护渴求物资，一只口罩可能就是一条命。物资调配必须遵循谁最急需、谁来使用的原则，绝不能耽搁拖延，更不能变糊涂账。歌手韩红说得好：一包方便面都可公示。公平高效调配捐赠物，以公开赢得公信。 ​\\n\",\n    \" 【武汉医生：1/4同事被感染 口罩不合格也按时进病房】“1月31日，最新通知下来了，由于医护人员减员情况严重，医院决定每个科室留5名医生倒班，每班6小时；这样的值班时长对于已连续奋战10天的医护人员来说危险系数很高↓↓医生称他连续10天没有离开医院，目前病房爆满，已经出现医护人员交叉感染 ​ \\n\",\n    \" \\n\",\n    \"                    【武汉医生：1/4同事被感染 口罩不合格也按时进病房】“1月31日，最新通知下来了，由于医护人员减员情况严重，医院决定每个科室留5名医生倒班，每班6小时；这样的值班时长对于已连续奋战10天的医护人员来说危险系数很高↓↓医生称他连续10天没有离开医院，目前病房爆满，已经出现医护人员交叉感染↓↓更多细节↓↓O武汉医生:1/4同事被感染 口罩不合格也要进病房 \\n\",\n    \"                \\n\",\n    \" 【武汉封城后，有些事只有外卖小哥知道】\\n\",\n    \"\\n\",\n    \"在现在武汉空空荡荡的城市街道上，外卖小哥和快递员是最繁忙的人。在这个特殊时期，他们也见证了世间百态：陌生市民为前线医生点大餐；一个顾客点了餐，备注鸡蛋要生的，因为家里没有余粮了；留在家中的猫咪产仔了，结果因为主人不在，新生的小猫宝宝都死了… ​ \\n\",\n    \" \\n\",\n    \"                    【武汉封城后，有些事只有外卖小哥知道】在现在武汉空空荡荡的城市街道上，外卖小哥和快递员是最繁忙的人。在这个特殊时期，他们也见证了世间百态：陌生市民为前线医生点大餐；一个顾客点了餐，备注鸡蛋要生的，因为家里没有余粮了；留在家中的猫咪产仔了，结果因为主人不在，新生的小猫宝宝都死了……为此，《Vista看天下》采访了这个春节一直奔波在武汉街头的几位外卖小哥和快递小哥……本文系Vista看天下APP独家稿件，未经允许请勿转载。 \\n\",\n    \"                \\n\",\n    \" 【武汉市委书记：我现在是一种内疚愧疚自责的心态】1月31日21：35，央视新闻频道《新闻1+1》，主持人白岩松将连线湖北省委副书记、武汉市委书记马国强，解读公众关心的疫情问题。\\n\",\n    \"武汉市市委书记马国强：我现在是一种内疚、愧疚、自责的心态，如果早采取严厉的管控措施，结果会比现在好，对全国各地的 ​ \\n\",\n    \" \\n\",\n    \"                    【武汉市委书记：我现在是一种内疚愧疚自责的心态】1月31日21：35，央视新闻频道《新闻1+1》，主持人白岩松将连线湖北省委副书记、武汉市委书记马国强，解读公众关心的疫情问题。武汉市市委书记马国强：我现在是一种内疚、愧疚、自责的心态，如果早采取严厉的管控措施，结果会比现在好，对全国各地的影响要小，也会让党中央、国务院少操心。（央视）#白岩松对话湖北省委副书记# L视频-新闻1+1：武汉市市委书记马国强-我现在是一种内疚愧疚自责的心态 \\n\",\n    \"                \\n\",\n    \" 【莆田系医院获赠1.8万个口罩遭质疑，涉事医院院长：我们真的需要】30日，湖北省红十字会官网公布了17项捐赠物资的使用情况，其中莆田系医院武汉仁爱医院收到1.8万个KN95口罩，而防疫一线医院武汉协和医院仅收到3000个口罩，这让武汉仁爱医院陷入舆论漩涡。\\n\",\n    \"对此，武汉仁爱医院院长熊怡祥回应：武汉是 ​ \\n\",\n    \" \\n\",\n    \"                    【莆田系医院获赠1.8万个口罩遭质疑，涉事医院院长：我们真的需要】30日，湖北省红十字会官网公布了17项捐赠物资的使用情况，其中莆田系医院武汉仁爱医院收到1.8万个KN95口罩，而防疫一线医院武汉协和医院仅收到3000个口罩，这让武汉仁爱医院陷入舆论漩涡。对此，武汉仁爱医院院长熊怡祥回应：武汉是疫区，医院是危险的地方，我们真的需要口罩，但我们买不到口罩。1月22日，我们向社会求口罩，可是没求来。1月24日，向武汉市红十字会求援，没结果。1月26日，再向湖北省红十字会求援。1月27日，湖北省红十字会给了我们1.8万个KN95口罩。对于公众的质疑，院长称：我们医院确实是莆田系医院，莆田系备受争议，但不是所有莆田系医院都是坏的，我们医院有20年历史了。 \\n\",\n    \"                \\n\",\n    \" 【泪目！妈妈#给上前线军医儿子录制鼓励视频#：“盼望你早日平安归来”】“儿子，当妈妈知道的时候，你已经踏上征途，面对疫情挺身而出责无旁贷。虽然有点担心，但是妈妈坚决支持你。”大年三十晚上，空军军医大学医生史庆辉接到驰援武汉的命令。而这天，他的母亲刚刚出院回家。白衣战士们，我们都在等 ​ \\n\",\n    \" \\n\",\n    \"                    【泪目！妈妈#给上前线军医儿子录制鼓励视频#：“盼望你早日平安归来”】“儿子，当妈妈知道的时候，你已经踏上征途，面对疫情挺身而出责无旁贷。虽然有点担心，但是妈妈坚决支持你。”大年三十晚上，空军军医大学医生史庆辉接到驰援武汉的命令。而这天，他的母亲刚刚出院回家。白衣战士们，我们都在等你平安归来！  L人民日报的微博视频 \\n\",\n    \"                \\n\",\n    \" #请勿抢购自行服用双黄连口服液#【投票：#你买双黄连口服液了吗#？】31日新华社记者从中国科学院上海药物所获悉，该所和武汉病毒所联合研究初步发现，中成药双黄连口服液可抑制新型冠状病毒。目前该发现仍是初步研究，该药已在上海公共卫生临床中心、华中科技大学附属同济医院开展临床研究，对病人如何 ​ \\n\",\n    \" \\n\",\n    \"                    #请勿抢购自行服用双黄连口服液#【投票：#你买双黄连口服液了吗#？】31日新华社记者从中国科学院上海药物所获悉，该所和武汉病毒所联合研究初步发现，中成药双黄连口服液可抑制新型冠状病毒。目前该发现仍是初步研究，该药已在上海公共卫生临床中心、华中科技大学附属同济医院开展临床研究，对病人如何有效还要做大量的实验。特别提醒：按照@世界卫生组织 ，到目前为止，还没有用于预防和治疗新型冠状病毒的药物。特定的治疗方法正在研究中，并将通过临床试验进行测试。 你买双黄连口服液了吗？ \\n\",\n    \"                \\n\",\n    \"undefined'''\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import jieba\\n\",\n    \"jieba.enable_parallel(4)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import jieba.analyse\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from wordcloud import WordCloud, ImageColorGenerator\\n\",\n    \"import matplotlib.pyplot as plt\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 27,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"seg_list = jieba.cut(txt, cut_all=True)\\n\",\n    \"liststr = \\\" \\\".join(seg_list)\\n\",\n    \"# liststr\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"总词数： 809\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"words = []\\n\",\n    \"for sen in txt.split():\\n\",\n    \"    words.extend(jieba.analyse.extract_tags(sen))\\n\",\n    \"print(\\\"总词数：\\\", len(words))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<wordcloud.wordcloud.WordCloud at 0x7f574b6a3e48>\"\n      ]\n     },\n     \"execution_count\": 42,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"wc=WordCloud(font_path=font_path, width=1000, height=860,)\\n\",\n    \"data=' '.join(words)\\n\",\n    \"wc.generate(data)\\n\",\n    \"wc.to_file('wc2.png')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 38,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/usr/share/fonts/truetype/wqy/wqy-microhei.ttc: WenQuanYi Micro Hei,文泉驛微米黑,文泉驿微米黑:style=Regular\\n\",\n      \"/usr/share/fonts/X11/misc/wenquanyi_13px.pcf: WenQuanYi Bitmap Song:style=Regular\\n\",\n      \"/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc: WenQuanYi Zen Hei,文泉驛正黑,文泉驿正黑:style=Regular\\n\",\n      \"/usr/share/fonts/X11/misc/wenquanyi_12pt.pcf: WenQuanYi Bitmap Song:style=Regular\\n\",\n      \"/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc: WenQuanYi Zen Hei Sharp,文泉驛點陣正黑,文泉驿点阵正黑:style=Regular\\n\",\n      \"/usr/share/fonts/X11/misc/wenquanyi_10pt.pcf: WenQuanYi Bitmap Song:style=Regular\\n\",\n      \"/usr/share/fonts/X11/misc/wenquanyi_9pt.pcf: WenQuanYi Bitmap Song:style=Regular\\n\",\n      \"/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf: Droid Sans Fallback:style=Regular\\n\",\n      \"/usr/share/fonts/X11/misc/wenquanyi_11pt.pcf: WenQuanYi Bitmap Song:style=Regular\\n\",\n      \"/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc: WenQuanYi Zen Hei Mono,文泉驛等寬正黑,文泉驿等宽正黑:style=Regular\\n\",\n      \"/usr/share/fonts/truetype/wqy/wqy-microhei.ttc: WenQuanYi Micro Hei Mono,文泉驛等寬微米黑,文泉驿等宽微米黑:style=Regular\\n\",\n      \"/usr/share/fonts/truetype/msyahei/ms-ya-hei.ttf: Microsoft YaHei,微软雅黑:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"!fc-list :lang=zh\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#fc-list :lang=zh\\n\",\n    \"font_path='/usr/share/fonts/truetype/msyahei/ms-ya-hei.ttf'\\n\",\n    \"wordcloud = WordCloud(font_path=font_path, width=1000, height=860,).generate(txt)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(-0.5, 999.5, 859.5, -0.5)\"\n      ]\n     },\n     \"execution_count\": 40,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<Figure size 432x288 with 1 Axes>\"\n      ]\n     },\n     \"metadata\": {\n      \"needs_background\": \"light\"\n     },\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"#不支持中文\\n\",\n    \"\\n\",\n    \"plt.imshow(wordcloud, interpolation='bilinear')\\n\",\n    \"plt.axis(\\\"off\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from matplotlib import font_manager\\n\",\n    \"# fname中选择一个你本机查询出来的字体 若没有中文字体则需要你本人手动安装\\n\",\n    \"font = font_manager.FontProperties(fname=\\\"/usr/share/fonts/truetype/msyahei/ms-ya-hei.ttf\\\")\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 25,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<Figure size 432x288 with 0 Axes>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imsave('wuhan.jpg',wordcloud)\\n\",\n    \"plt.savefig('wuhan2.png')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"\\u001b[0;31mSignature:\\u001b[0m\\n\",\n       \"\\u001b[0mplt\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mimshow\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mX\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mcmap\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mnorm\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0maspect\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0minterpolation\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0malpha\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mvmin\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mvmax\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0morigin\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mextent\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mshape\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;34m<\\u001b[0m\\u001b[0mdeprecated\\u001b[0m \\u001b[0mparameter\\u001b[0m\\u001b[0;34m>\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mfilternorm\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m1\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mfilterrad\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m4.0\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mimlim\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;34m<\\u001b[0m\\u001b[0mdeprecated\\u001b[0m \\u001b[0mparameter\\u001b[0m\\u001b[0;34m>\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mresample\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0murl\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0;34m*\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mdata\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0;34m**\\u001b[0m\\u001b[0mkwargs\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n       \"\\u001b[0;31mDocstring:\\u001b[0m\\n\",\n       \"Display an image, i.e. data on a 2D regular raster.\\n\",\n       \"\\n\",\n       \"Parameters\\n\",\n       \"----------\\n\",\n       \"X : array-like or PIL image\\n\",\n       \"    The image data. Supported array shapes are:\\n\",\n       \"\\n\",\n       \"    - (M, N): an image with scalar data. The data is visualized\\n\",\n       \"      using a colormap.\\n\",\n       \"    - (M, N, 3): an image with RGB values (0-1 float or 0-255 int).\\n\",\n       \"    - (M, N, 4): an image with RGBA values (0-1 float or 0-255 int),\\n\",\n       \"      i.e. including transparency.\\n\",\n       \"\\n\",\n       \"    The first two dimensions (M, N) define the rows and columns of\\n\",\n       \"    the image.\\n\",\n       \"\\n\",\n       \"    Out-of-range RGB(A) values are clipped.\\n\",\n       \"\\n\",\n       \"cmap : str or `~matplotlib.colors.Colormap`, optional\\n\",\n       \"    The Colormap instance or registered colormap name used to map\\n\",\n       \"    scalar data to colors. This parameter is ignored for RGB(A) data.\\n\",\n       \"    Defaults to :rc:`image.cmap`.\\n\",\n       \"\\n\",\n       \"norm : `~matplotlib.colors.Normalize`, optional\\n\",\n       \"    The `Normalize` instance used to scale scalar data to the [0, 1]\\n\",\n       \"    range before mapping to colors using *cmap*. By default, a linear\\n\",\n       \"    scaling mapping the lowest value to 0 and the highest to 1 is used.\\n\",\n       \"    This parameter is ignored for RGB(A) data.\\n\",\n       \"\\n\",\n       \"aspect : {'equal', 'auto'} or float, optional\\n\",\n       \"    Controls the aspect ratio of the axes. The aspect is of particular\\n\",\n       \"    relevance for images since it may distort the image, i.e. pixel\\n\",\n       \"    will not be square.\\n\",\n       \"\\n\",\n       \"    This parameter is a shortcut for explicitly calling\\n\",\n       \"    `.Axes.set_aspect`. See there for further details.\\n\",\n       \"\\n\",\n       \"    - 'equal': Ensures an aspect ratio of 1. Pixels will be square\\n\",\n       \"      (unless pixel sizes are explicitly made non-square in data\\n\",\n       \"      coordinates using *extent*).\\n\",\n       \"    - 'auto': The axes is kept fixed and the aspect is adjusted so\\n\",\n       \"      that the data fit in the axes. In general, this will result in\\n\",\n       \"      non-square pixels.\\n\",\n       \"\\n\",\n       \"    If not given, use :rc:`image.aspect` (default: 'equal').\\n\",\n       \"\\n\",\n       \"interpolation : str, optional\\n\",\n       \"    The interpolation method used. If *None*\\n\",\n       \"    :rc:`image.interpolation` is used, which defaults to 'nearest'.\\n\",\n       \"\\n\",\n       \"    Supported values are 'none', 'nearest', 'bilinear', 'bicubic',\\n\",\n       \"    'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser',\\n\",\n       \"    'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc',\\n\",\n       \"    'lanczos'.\\n\",\n       \"\\n\",\n       \"    If *interpolation* is 'none', then no interpolation is performed\\n\",\n       \"    on the Agg, ps, pdf and svg backends. Other backends will fall back\\n\",\n       \"    to 'nearest'. Note that most SVG renders perform interpolation at\\n\",\n       \"    rendering and that the default interpolation method they implement\\n\",\n       \"    may differ.\\n\",\n       \"\\n\",\n       \"    See\\n\",\n       \"    :doc:`/gallery/images_contours_and_fields/interpolation_methods`\\n\",\n       \"    for an overview of the supported interpolation methods.\\n\",\n       \"\\n\",\n       \"    Some interpolation methods require an additional radius parameter,\\n\",\n       \"    which can be set by *filterrad*. Additionally, the antigrain image\\n\",\n       \"    resize filter is controlled by the parameter *filternorm*.\\n\",\n       \"\\n\",\n       \"alpha : scalar, optional\\n\",\n       \"    The alpha blending value, between 0 (transparent) and 1 (opaque).\\n\",\n       \"    This parameter is ignored for RGBA input data.\\n\",\n       \"\\n\",\n       \"vmin, vmax : scalar, optional\\n\",\n       \"    When using scalar data and no explicit *norm*, *vmin* and *vmax*\\n\",\n       \"    define the data range that the colormap covers. By default,\\n\",\n       \"    the colormap covers the complete value range of the supplied\\n\",\n       \"    data. *vmin*, *vmax* are ignored if the *norm* parameter is used.\\n\",\n       \"\\n\",\n       \"origin : {'upper', 'lower'}, optional\\n\",\n       \"    Place the [0,0] index of the array in the upper left or lower left\\n\",\n       \"    corner of the axes. The convention 'upper' is typically used for\\n\",\n       \"    matrices and images.\\n\",\n       \"    If not given, :rc:`image.origin` is used, defaulting to 'upper'.\\n\",\n       \"\\n\",\n       \"    Note that the vertical axes points upward for 'lower'\\n\",\n       \"    but downward for 'upper'.\\n\",\n       \"\\n\",\n       \"    See the :doc:`/tutorials/intermediate/imshow_extent` tutorial for\\n\",\n       \"    examples and a more detailed description.\\n\",\n       \"\\n\",\n       \"extent : scalars (left, right, bottom, top), optional\\n\",\n       \"    The bounding box in data coordinates that the image will fill.\\n\",\n       \"    The image is stretched individually along x and y to fill the box.\\n\",\n       \"\\n\",\n       \"    The default extent is determined by the following conditions.\\n\",\n       \"    Pixels have unit size in data coordinates. Their centers are on\\n\",\n       \"    integer coordinates, and their center coordinates range from 0 to\\n\",\n       \"    columns-1 horizontally and from 0 to rows-1 vertically.\\n\",\n       \"\\n\",\n       \"    Note that the direction of the vertical axis and thus the default\\n\",\n       \"    values for top and bottom depend on *origin*:\\n\",\n       \"\\n\",\n       \"    - For ``origin == 'upper'`` the default is\\n\",\n       \"      ``(-0.5, numcols-0.5, numrows-0.5, -0.5)``.\\n\",\n       \"    - For ``origin == 'lower'`` the default is\\n\",\n       \"      ``(-0.5, numcols-0.5, -0.5, numrows-0.5)``.\\n\",\n       \"\\n\",\n       \"    See the :doc:`/tutorials/intermediate/imshow_extent` tutorial for\\n\",\n       \"    examples and a more detailed description.\\n\",\n       \"\\n\",\n       \"filternorm : bool, optional, default: True\\n\",\n       \"    A parameter for the antigrain image resize filter (see the\\n\",\n       \"    antigrain documentation).  If *filternorm* is set, the filter\\n\",\n       \"    normalizes integer values and corrects the rounding errors. It\\n\",\n       \"    doesn't do anything with the source floating point values, it\\n\",\n       \"    corrects only integers according to the rule of 1.0 which means\\n\",\n       \"    that any sum of pixel weights must be equal to 1.0.  So, the\\n\",\n       \"    filter function must produce a graph of the proper shape.\\n\",\n       \"\\n\",\n       \"filterrad : float > 0, optional, default: 4.0\\n\",\n       \"    The filter radius for filters that have a radius parameter, i.e.\\n\",\n       \"    when interpolation is one of: 'sinc', 'lanczos' or 'blackman'.\\n\",\n       \"\\n\",\n       \"resample : bool, optional\\n\",\n       \"    When *True*, use a full resampling method.  When *False*, only\\n\",\n       \"    resample when the output image is larger than the input image.\\n\",\n       \"\\n\",\n       \"url : str, optional\\n\",\n       \"    Set the url of the created `.AxesImage`. See `.Artist.set_url`.\\n\",\n       \"\\n\",\n       \"Returns\\n\",\n       \"-------\\n\",\n       \"image : `~matplotlib.image.AxesImage`\\n\",\n       \"\\n\",\n       \"Other Parameters\\n\",\n       \"----------------\\n\",\n       \"**kwargs : `~matplotlib.artist.Artist` properties\\n\",\n       \"    These parameters are passed on to the constructor of the\\n\",\n       \"    `.AxesImage` artist.\\n\",\n       \"\\n\",\n       \"See also\\n\",\n       \"--------\\n\",\n       \"matshow : Plot a matrix or an array as an image.\\n\",\n       \"\\n\",\n       \"Notes\\n\",\n       \"-----\\n\",\n       \"Unless *extent* is used, pixel centers will be located at integer\\n\",\n       \"coordinates. In other words: the origin will coincide with the center\\n\",\n       \"of pixel (0, 0).\\n\",\n       \"\\n\",\n       \"There are two common representations for RGB images with an alpha\\n\",\n       \"channel:\\n\",\n       \"\\n\",\n       \"-   Straight (unassociated) alpha: R, G, and B channels represent the\\n\",\n       \"    color of the pixel, disregarding its opacity.\\n\",\n       \"-   Premultiplied (associated) alpha: R, G, and B channels represent\\n\",\n       \"    the color of the pixel, adjusted for its opacity by multiplication.\\n\",\n       \"\\n\",\n       \"`~matplotlib.pyplot.imshow` expects RGB images adopting the straight\\n\",\n       \"(unassociated) alpha representation.\\n\",\n       \"\\n\",\n       \".. note::\\n\",\n       \"    In addition to the above described arguments, this function can take a\\n\",\n       \"    **data** keyword argument. If such a **data** argument is given, the\\n\",\n       \"    following arguments are replaced by **data[<arg>]**:\\n\",\n       \"\\n\",\n       \"    * All positional and all keyword arguments.\\n\",\n       \"\\n\",\n       \"    Objects passed as **data** must support item access (``data[<arg>]``) and\\n\",\n       \"    membership test (``<arg> in data``).\\n\",\n       \"\\u001b[0;31mFile:\\u001b[0m      /usr/local/lib/python3.7/dist-packages/matplotlib/pyplot.py\\n\",\n       \"\\u001b[0;31mType:\\u001b[0m      function\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"plt.imshow?\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['红十字会',\\n\",\n       \" '探访',\\n\",\n       \" '武汉市',\\n\",\n       \" '东西',\\n\",\n       \" '那么',\\n\",\n       \" '怎么',\\n\",\n       \" '记者',\\n\",\n       \" '抽调',\\n\",\n       \" '私下',\\n\",\n       \" '工作人员',\\n\",\n       \" '人员',\\n\",\n       \" '一位',\\n\",\n       \" '部门',\\n\",\n       \" '其他',\\n\",\n       \" '红十字会',\\n\",\n       \" '探访',\\n\",\n       \" '武汉市',\\n\",\n       \" '东西',\\n\",\n       \" '那么',\\n\",\n       \" '怎么',\\n\",\n       \" '记者',\\n\",\n       \" '武汉市',\\n\",\n       \" '央广',\\n\",\n       \" '31',\\n\",\n       \" '打大仗',\\n\",\n       \" '总台',\\n\",\n       \" '红十字会',\\n\",\n       \" '探访',\\n\",\n       \" '记者',\\n\",\n       \" '详情',\\n\",\n       \" '湖北省',\\n\",\n       \" '打仗',\\n\",\n       \" '胜利',\\n\",\n       \" '有点',\\n\",\n       \" '来到',\\n\",\n       \" '位于',\\n\",\n       \" '东西',\\n\",\n       \" '那么',\\n\",\n       \" '怎么',\\n\",\n       \" '湖北省委',\\n\",\n       \" '直播',\\n\",\n       \" '书记',\\n\",\n       \" '战疫',\\n\",\n       \" '岩松',\\n\",\n       \" '马国强',\\n\",\n       \" '白岩松',\\n\",\n       \" '关注',\\n\",\n       \" '连线',\\n\",\n       \" '独家',\\n\",\n       \" '疫情',\\n\",\n       \" '市委书记',\\n\",\n       \" '对话',\\n\",\n       \" '今晚',\\n\",\n       \" '武汉',\\n\",\n       \" '新闻',\\n\",\n       \" '共同',\\n\",\n       \" '一起',\\n\",\n       \" '继续',\\n\",\n       \" '微博',\\n\",\n       \" '直播',\\n\",\n       \" '央视',\\n\",\n       \" '新闻',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '物资',\\n\",\n       \" '急需',\\n\",\n       \" '医疗',\\n\",\n       \" '20',\\n\",\n       \" '沈文敏',\\n\",\n       \" '外罩',\\n\",\n       \" '今天下午',\\n\",\n       \" '口罩',\\n\",\n       \" '手套',\\n\",\n       \" '万个',\\n\",\n       \" '护士',\\n\",\n       \" '防护',\\n\",\n       \" '一线',\\n\",\n       \" '尽快',\\n\",\n       \" '送到',\\n\",\n       \" '收到',\\n\",\n       \" '到达',\\n\",\n       \" '一批',\\n\",\n       \" '医生',\\n\",\n       \" '武汉',\\n\",\n       \" '小姐姐',\\n\",\n       \" '800',\\n\",\n       \" '发微博',\\n\",\n       \" 'icon',\\n\",\n       \" '为武',\\n\",\n       \" '医院',\\n\",\n       \" '盒饭',\\n\",\n       \" '盘龙城',\\n\",\n       \" '昵称',\\n\",\n       \" '医护人员',\\n\",\n       \" '点亮',\\n\",\n       \" '日记',\\n\",\n       \" '餐厅',\\n\",\n       \" '受不了',\\n\",\n       \" '做饭',\\n\",\n       \" '金银',\\n\",\n       \" '话题',\\n\",\n       \" '事儿',\\n\",\n       \" '专门',\\n\",\n       \" '武汉',\\n\",\n       \" '小姐姐',\\n\",\n       \" '800',\\n\",\n       \" '单泽',\\n\",\n       \" 'vlog',\\n\",\n       \" '盘龙城',\\n\",\n       \" '餐厅',\\n\",\n       \" '央视',\\n\",\n       \" '做饭',\\n\",\n       \" '医院',\\n\",\n       \" '每天',\\n\",\n       \" '一家',\\n\",\n       \" '记者',\\n\",\n       \" '微博',\\n\",\n       \" '央视',\\n\",\n       \" '视频',\\n\",\n       \" '新闻',\\n\",\n       \" '环卫',\\n\",\n       \" '急转',\\n\",\n       \" '纸条',\\n\",\n       \" '日照',\\n\",\n       \" '武汉',\\n\",\n       \" '大众网',\\n\",\n       \" '白衣天使',\\n\",\n       \" '12000',\\n\",\n       \" '31',\\n\",\n       \" '东港',\\n\",\n       \" '留言',\\n\",\n       \" '加油',\\n\",\n       \" '头戴',\\n\",\n       \" '心意',\\n\",\n       \" '派出所',\\n\",\n       \" '大爷',\\n\",\n       \" '帽子',\\n\",\n       \" '转身',\\n\",\n       \" '一张',\\n\",\n       \" '山东',\\n\",\n       \" '环卫',\\n\",\n       \" '大众网',\\n\",\n       \" '12000',\\n\",\n       \" '东港',\\n\",\n       \" '急转',\\n\",\n       \" '留言',\\n\",\n       \" '纸条',\\n\",\n       \" '日照',\\n\",\n       \" '派出所',\\n\",\n       \" '大爷',\\n\",\n       \" '转身',\\n\",\n       \" '微博',\\n\",\n       \" '人民日报',\\n\",\n       \" '视频',\\n\",\n       \" '校友会',\\n\",\n       \" '北加州',\\n\",\n       \" '医用',\\n\",\n       \" '华科',\\n\",\n       \" '2.5',\\n\",\n       \" '20',\\n\",\n       \" '2.75',\\n\",\n       \" '4000',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '防护服',\\n\",\n       \" '口罩',\\n\",\n       \" '武大',\\n\",\n       \" '手套',\\n\",\n       \" '好消息',\\n\",\n       \" '捐赠',\\n\",\n       \" '汇报',\\n\",\n       \" '总算',\\n\",\n       \" '紧急',\\n\",\n       \" '医疗',\\n\",\n       \" '一批',\\n\",\n       \" '武汉',\\n\",\n       \" '医护',\\n\",\n       \" '关爱',\\n\",\n       \" '肺炎',\\n\",\n       \" '抗击',\\n\",\n       \" '31',\\n\",\n       \" '21',\\n\",\n       \" '10',\\n\",\n       \" '李文亮',\\n\",\n       \" '守护者',\\n\",\n       \" '第一笔',\\n\",\n       \" '后盾',\\n\",\n       \" '拨付',\\n\",\n       \" '肺炎',\\n\",\n       \" '基金会',\\n\",\n       \" '病毒',\\n\",\n       \" '防范',\\n\",\n       \" '试图',\\n\",\n       \" '客观',\\n\",\n       \" '新型',\\n\",\n       \" '提前',\\n\",\n       \" '贡献',\\n\",\n       \" '行动',\\n\",\n       \" '特征',\\n\",\n       \" '明确',\\n\",\n       \" '医护',\\n\",\n       \" '关爱',\\n\",\n       \" '肺炎',\\n\",\n       \" '抗击',\\n\",\n       \" '后盾',\\n\",\n       \" '守护者',\\n\",\n       \" '医护',\\n\",\n       \" '31',\\n\",\n       \" '行动',\\n\",\n       \" '疫情',\\n\",\n       \" '一线',\\n\",\n       \" '项目',\\n\",\n       \" '公益',\\n\",\n       \" '网友',\\n\",\n       \" '转自',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '某会',\\n\",\n       \" '惹怒',\\n\",\n       \" '置之不理',\\n\",\n       \" '医护人员',\\n\",\n       \" '求助',\\n\",\n       \" '捐赠',\\n\",\n       \" '绕过',\\n\",\n       \" '病毒',\\n\",\n       \" '聚集',\\n\",\n       \" '据说',\\n\",\n       \" '工作人员',\\n\",\n       \" '危险',\\n\",\n       \" '网上',\\n\",\n       \" '身上',\\n\",\n       \" '它们',\\n\",\n       \" '直接',\\n\",\n       \" '工作',\\n\",\n       \" '转自',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '置之不理',\\n\",\n       \" '医护人员',\\n\",\n       \" '绕过',\\n\",\n       \" '据说',\\n\",\n       \" '工作人员',\\n\",\n       \" '网友',\\n\",\n       \" '因为',\\n\",\n       \" '黎黎',\\n\",\n       \" 'Lily',\\n\",\n       \" '微博',\\n\",\n       \" '视频',\\n\",\n       \" '胡亚波',\\n\",\n       \" '总台',\\n\",\n       \" '红十字',\\n\",\n       \" '展馆',\\n\",\n       \" '红十字会',\\n\",\n       \" '探访',\\n\",\n       \" '东西',\\n\",\n       \" '征用',\\n\",\n       \" '紧缺',\\n\",\n       \" '武汉市',\\n\",\n       \" '记者',\\n\",\n       \" '民用',\\n\",\n       \" '捐赠',\\n\",\n       \" '有用',\\n\",\n       \" '物资',\\n\",\n       \" '武汉',\\n\",\n       \" '市长',\\n\",\n       \" '一方面',\\n\",\n       \" '临时',\\n\",\n       \" '原来',\\n\",\n       \" '总台',\\n\",\n       \" '红十字会',\\n\",\n       \" '探访',\\n\",\n       \" '东西',\\n\",\n       \" '那么',\\n\",\n       \" '怎么',\\n\",\n       \" '武汉',\\n\",\n       \" '记者',\\n\",\n       \" '总台',\\n\",\n       \" '红十字会',\\n\",\n       \" '探访',\\n\",\n       \" '武汉市',\\n\",\n       \" '记者',\\n\",\n       \" '医院',\\n\",\n       \" '分三六',\\n\",\n       \" '物资',\\n\",\n       \" '工作人员',\\n\",\n       \" '天佑',\\n\",\n       \" '红十字会',\\n\",\n       \" '救命',\\n\",\n       \" '看病',\\n\",\n       \" '捐赠',\\n\",\n       \" '宏观调控',\\n\",\n       \" '回应',\\n\",\n       \" '等级',\\n\",\n       \" '什么',\\n\",\n       \" '湖北',\\n\",\n       \" '中华人民共和国',\\n\",\n       \" '分配',\\n\",\n       \" '群众',\\n\",\n       \" '这位',\\n\",\n       \" '人民',\\n\",\n       \" '表示',\\n\",\n       \" '分三六',\\n\",\n       \" '红十字会',\\n\",\n       \" '拟定',\\n\",\n       \" '回应',\\n\",\n       \" '物资',\\n\",\n       \" '自行',\\n\",\n       \" '湖北',\\n\",\n       \" '工作人员',\\n\",\n       \" '分配',\\n\",\n       \" '医院',\\n\",\n       \" '什么',\\n\",\n       \" '安贞',\\n\",\n       \" '西里',\\n\",\n       \" '北京',\\n\",\n       \" '安贞',\\n\",\n       \" '西里',\\n\",\n       \" '北京',\\n\",\n       \" '冠状病毒',\\n\",\n       \" '新型',\\n\",\n       \" '药物',\\n\",\n       \" '肺炎',\\n\",\n       \" '感染',\\n\",\n       \" '蒋华良',\\n\",\n       \" '口服液',\\n\",\n       \" '可抑制',\\n\",\n       \" '攻关',\\n\",\n       \" '双黄连',\\n\",\n       \" '中成药',\\n\",\n       \" '上海',\\n\",\n       \" '牵头',\\n\",\n       \" '应急',\\n\",\n       \" '病毒',\\n\",\n       \" '院士',\\n\",\n       \" '团队',\\n\",\n       \" '武汉',\\n\",\n       \" '启动',\\n\",\n       \" '此前',\\n\",\n       \" '冠状病毒',\\n\",\n       \" '董瑞丰',\\n\",\n       \" '同济',\\n\",\n       \" '肺炎',\\n\",\n       \" '附属',\\n\",\n       \" '病毒',\\n\",\n       \" '临床',\\n\",\n       \" '新型',\\n\",\n       \" '感染',\\n\",\n       \" '武汉',\\n\",\n       \" '药物',\\n\",\n       \" '开展',\\n\",\n       \" '医院',\\n\",\n       \" '大学',\\n\",\n       \" '联合',\\n\",\n       \" '上海',\\n\",\n       \" '发现',\\n\",\n       \" '研究',\\n\",\n       \" '记者',\\n\",\n       \" '医用',\\n\",\n       \" '防护眼镜',\\n\",\n       \" '新空',\\n\",\n       \" '429',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '防护服',\\n\",\n       \" '直飞',\\n\",\n       \" '萧山',\\n\",\n       \" '协和',\\n\",\n       \" '口罩',\\n\",\n       \" '装满',\\n\",\n       \" '运载',\\n\",\n       \" '降落',\\n\",\n       \" '贝尔',\\n\",\n       \" '隶属于',\\n\",\n       \" '起飞',\\n\",\n       \" '一架',\\n\",\n       \" '通航',\\n\",\n       \" '直升机',\\n\",\n       \" '今晚',\\n\",\n       \" '新空',\\n\",\n       \" '429',\\n\",\n       \" '萧山',\\n\",\n       \" '加油',\\n\",\n       \" '贝尔',\\n\",\n       \" '隶属于',\\n\",\n       \" '一架',\\n\",\n       \" '通航',\\n\",\n       \" '直升机',\\n\",\n       \" '今晚',\\n\",\n       \" '杭州',\\n\",\n       \" '计划',\\n\",\n       \" '之间',\\n\",\n       \" '水族馆',\\n\",\n       \" '生物',\\n\",\n       \" '物语',\\n\",\n       \" '航空',\\n\",\n       \" '药物',\\n\",\n       \" '冠状病毒',\\n\",\n       \" '新型',\\n\",\n       \" '31',\\n\",\n       \" 'SARS',\\n\",\n       \" '可抑制',\\n\",\n       \" '攻关',\\n\",\n       \" '双黄连',\\n\",\n       \" '上海',\\n\",\n       \" '肺炎',\\n\",\n       \" '发现',\\n\",\n       \" '研究',\\n\",\n       \" '应急',\\n\",\n       \" '中国科学院',\\n\",\n       \" '病毒',\\n\",\n       \" '团队',\\n\",\n       \" '获悉',\\n\",\n       \" '感染',\\n\",\n       \" '武汉',\\n\",\n       \" '前期',\\n\",\n       \" '华中科技大学',\\n\",\n       \" '冠状',\\n\",\n       \" '可抑制',\\n\",\n       \" '同济',\\n\",\n       \" '双黄连',\\n\",\n       \" '附属',\\n\",\n       \" '病毒',\\n\",\n       \" '新华社',\\n\",\n       \" '临床',\\n\",\n       \" '新型',\\n\",\n       \" '武汉',\\n\",\n       \" '药物',\\n\",\n       \" '开展',\\n\",\n       \" '医院',\\n\",\n       \" '联合',\\n\",\n       \" '上海',\\n\",\n       \" '发现',\\n\",\n       \" '研究',\\n\",\n       \" '火神',\\n\",\n       \" '医院',\\n\",\n       \" '神山',\\n\",\n       \" '冠状病毒',\\n\",\n       \" '收治病人',\\n\",\n       \" '3.4',\\n\",\n       \" '肺炎',\\n\",\n       \" '建筑面积',\\n\",\n       \" '全力',\\n\",\n       \" '万平方米',\\n\",\n       \" '新型',\\n\",\n       \" '最新',\\n\",\n       \" '推进',\\n\",\n       \" '介绍',\\n\",\n       \" '正式',\\n\",\n       \" '分别',\\n\",\n       \" '正在',\\n\",\n       \" '情况',\\n\",\n       \" '目前',\\n\",\n       \" '冠状病毒',\\n\",\n       \" '肺炎',\\n\",\n       \" '疫情',\\n\",\n       \" '新型',\\n\",\n       \" '医院',\\n\",\n       \" '神山',\\n\",\n       \" '火神',\\n\",\n       \" '实时',\\n\",\n       \" '地图',\\n\",\n       \" '更新',\\n\",\n       \" '最新',\\n\",\n       \" '全国',\\n\",\n       \" '分别',\\n\",\n       \" '情况',\\n\",\n       \" '不该',\\n\",\n       \" '公众',\\n\",\n       \" '新冠',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '3000',\\n\",\n       \" '领走',\\n\",\n       \" '定点医院',\\n\",\n       \" '红十字会',\\n\",\n       \" '医护人员',\\n\",\n       \" '口罩',\\n\",\n       \" '肺炎',\\n\",\n       \" '列出',\\n\",\n       \" '日夜',\\n\",\n       \" '强迫',\\n\",\n       \" '防护',\\n\",\n       \" '舆论',\\n\",\n       \" '透明',\\n\",\n       \" '落实',\\n\",\n       \" '一线',\\n\",\n       \" '湖北',\\n\",\n       \" '不该',\\n\",\n       \" '公众',\\n\",\n       \" '##',\\n\",\n       \" '红十字会',\\n\",\n       \" '拨付',\\n\",\n       \" '口罩',\\n\",\n       \" '强迫',\\n\",\n       \" '第一批',\\n\",\n       \" '舆论',\\n\",\n       \" '透明',\\n\",\n       \" '落实',\\n\",\n       \" '湖北',\\n\",\n       \" '执行',\\n\",\n       \" '信息',\\n\",\n       \" '使用',\\n\",\n       \" '亿元',\\n\",\n       \" '资金',\\n\",\n       \" '情况',\\n\",\n       \" '红十字会',\\n\",\n       \" '慈善',\\n\",\n       \" '总会',\\n\",\n       \" '武汉',\\n\",\n       \" '物资供应',\\n\",\n       \" '菜农',\\n\",\n       \" '监工',\\n\",\n       \" '寿光',\\n\",\n       \" '亿多',\\n\",\n       \" '拨付',\\n\",\n       \" '捐款',\\n\",\n       \" '捐赠',\\n\",\n       \" '湖北省',\\n\",\n       \" '连夜',\\n\",\n       \" '回应',\\n\",\n       \" '定向',\\n\",\n       \" '质疑',\\n\",\n       \" '收到',\\n\",\n       \" '网友',\\n\",\n       \" '监督',\\n\",\n       \" '万余名',\\n\",\n       \" '物资供应',\\n\",\n       \" '监工',\\n\",\n       \" '医务',\\n\",\n       \" '红十字会',\\n\",\n       \" '求助',\\n\",\n       \" '奋战',\\n\",\n       \" '工作者',\\n\",\n       \" '湖北省',\\n\",\n       \" '回应',\\n\",\n       \" '武汉',\\n\",\n       \" '监督',\\n\",\n       \" '网络',\\n\",\n       \" '医院',\\n\",\n       \" '大家',\\n\",\n       \" '看到',\\n\",\n       \" '问题',\\n\",\n       \" '火神',\\n\",\n       \" '医院',\\n\",\n       \" '收治',\\n\",\n       \" '监工',\\n\",\n       \" '神山',\\n\",\n       \" '直播',\\n\",\n       \" '武汉市',\\n\",\n       \" '用来',\\n\",\n       \" '近日',\\n\",\n       \" '集中',\\n\",\n       \" '建设',\\n\",\n       \" '一起',\\n\",\n       \" '决定',\\n\",\n       \" '直播',\\n\",\n       \" '直击',\\n\",\n       \" '火神',\\n\",\n       \" '京报',\\n\",\n       \" '全天候',\\n\",\n       \" '加油',\\n\",\n       \" '武汉',\\n\",\n       \" '发起',\\n\",\n       \" '医院',\\n\",\n       \" '建设',\\n\",\n       \" '一起',\\n\",\n       \" '微博',\\n\",\n       \" '京报',\\n\",\n       \" '直播',\\n\",\n       \" '出院',\\n\",\n       \" '20',\\n\",\n       \" '金银',\\n\",\n       \" '武汉市',\\n\",\n       \" '医院',\\n\",\n       \" '患者',\\n\",\n       \" '冠状病毒',\\n\",\n       \" '72',\\n\",\n       \" '今天下午',\\n\",\n       \" '数最多',\\n\",\n       \" '肺炎',\\n\",\n       \" '确诊',\\n\",\n       \" '之声',\\n\",\n       \" '新型',\\n\",\n       \" '武汉',\\n\",\n       \" '湖北',\\n\",\n       \" '集体',\\n\",\n       \" '共有',\\n\",\n       \" '累计',\\n\",\n       \" '截至',\\n\",\n       \" '##',\\n\",\n       \" '投稿',\\n\",\n       \" '医护人员',\\n\",\n       \" '武汉市',\\n\",\n       \" '捐赠',\\n\",\n       \" '慈善',\\n\",\n       \" '疫情',\\n\",\n       \" '总会',\\n\",\n       \" '防护',\\n\",\n       \" '物资',\\n\",\n       \" '地图',\\n\",\n       \" '制作',\\n\",\n       \" '最新',\\n\",\n       \" '装备',\\n\",\n       \" '公告',\\n\",\n       \" '才能',\\n\",\n       \" '使用',\\n\",\n       \" '时候',\\n\",\n       \" '情况',\\n\",\n       \" '开始',\\n\",\n       \" '宋彩萍',\\n\",\n       \" '博拉',\\n\",\n       \" '武汉',\\n\",\n       \" '妈妈',\\n\",\n       \" '2015',\\n\",\n       \" '儿子',\\n\",\n       \" '再战',\\n\",\n       \" '军医',\\n\",\n       \" '驰援',\\n\",\n       \" '奔赴',\\n\",\n       \" '加油',\\n\",\n       \" '拥抱',\\n\",\n       \" '大大的',\\n\",\n       \" '出征',\\n\",\n       \" '抗击',\\n\",\n       \" '归来',\\n\",\n       \" '高出',\\n\",\n       \" '迎接',\\n\",\n       \" '一头',\\n\",\n       \" '湖北',\\n\",\n       \" '红十字会',\\n\",\n       \" '探访',\\n\",\n       \" '武汉市',\\n\",\n       \" '东西',\\n\",\n       \" '那么',\\n\",\n       \" '怎么',\\n\",\n       \" '记者',\\n\",\n       \" '红十字会',\\n\",\n       \" '工作人员',\\n\",\n       \" '武汉市',\\n\",\n       \" '记者',\\n\",\n       \" '现场',\\n\",\n       \" '央广',\\n\",\n       \" '31',\\n\",\n       \" '162',\\n\",\n       \" '总台',\\n\",\n       \" '抽调',\\n\",\n       \" '防备',\\n\",\n       \" '私下',\\n\",\n       \" '湖北省',\\n\",\n       \" '舆论',\\n\",\n       \" '感受',\\n\",\n       \" '焦点',\\n\",\n       \" '始终',\\n\",\n       \" '胜利',\\n\",\n       \" '采访',\\n\",\n       \" '见到',\\n\",\n       \" '红十字会',\\n\",\n       \" '探访',\\n\",\n       \" '武汉市',\\n\",\n       \" '东西',\\n\",\n       \" '那么',\\n\",\n       \" '怎么',\\n\",\n       \" '记者',\\n\",\n       \" '红十字会',\\n\",\n       \" '武汉市',\\n\",\n       \" '工作人员',\\n\",\n       \" '记者',\\n\",\n       \" '现场',\\n\",\n       \" '央广',\\n\",\n       \" '31',\\n\",\n       \" '162',\\n\",\n       \" '打大仗',\\n\",\n       \" '总台',\\n\",\n       \" '探访',\\n\",\n       \" '抽调',\\n\",\n       \" '详情',\\n\",\n       \" '防备',\\n\",\n       \" '私下',\\n\",\n       \" '湖北省',\\n\",\n       \" '舆论',\\n\",\n       \" '打仗',\\n\",\n       \" '几十年',\\n\",\n       \" '感受',\\n\",\n       \" '湖北省委',\\n\",\n       \" '直播',\\n\",\n       \" '书记',\\n\",\n       \" '战疫',\\n\",\n       \" '岩松',\\n\",\n       \" '马国强',\\n\",\n       \" '白岩松',\\n\",\n       \" '关注',\\n\",\n       \" '连线',\\n\",\n       \" '独家',\\n\",\n       \" '疫情',\\n\",\n       \" '市委书记',\\n\",\n       \" '对话',\\n\",\n       \" '今晚',\\n\",\n       \" '武汉',\\n\",\n       \" '新闻',\\n\",\n       \" '共同',\\n\",\n       \" '一起',\\n\",\n       \" '继续',\\n\",\n       \" '微博',\\n\",\n       \" '直播',\\n\",\n       \" '央视',\\n\",\n       \" '新闻',\\n\",\n       \" '物资',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '急需',\\n\",\n       \" '校友会',\\n\",\n       \" '医疗',\\n\",\n       \" '这批',\\n\",\n       \" '华科',\\n\",\n       \" '20',\\n\",\n       \" '沈文敏',\\n\",\n       \" '外罩',\\n\",\n       \" '今天下午',\\n\",\n       \" '口罩',\\n\",\n       \" '武大',\\n\",\n       \" '手套',\\n\",\n       \" '捐赠',\\n\",\n       \" '万个',\\n\",\n       \" '护士',\\n\",\n       \" '防护',\\n\",\n       \" '一线',\\n\",\n       \" '尽快',\\n\",\n       \" '小姐姐',\\n\",\n       \" '800',\\n\",\n       \" '盒饭',\\n\",\n       \" '武汉',\\n\",\n       \" '医护人员',\\n\",\n       \" '朋友圈',\\n\",\n       \" '1000',\\n\",\n       \" '发微博',\\n\",\n       \" 'icon',\\n\",\n       \" '为武',\\n\",\n       \" '医院',\\n\",\n       \" '每天',\\n\",\n       \" '盘龙城',\\n\",\n       \" '昵称',\\n\",\n       \" '忙不过来',\\n\",\n       \" '上阵',\\n\",\n       \" '点亮',\\n\",\n       \" '兄妹',\\n\",\n       \" '店主',\\n\",\n       \" '日记',\\n\",\n       \" '小姐姐',\\n\",\n       \" '武汉',\\n\",\n       \" '800',\\n\",\n       \" '盒饭',\\n\",\n       \" '医护人员',\\n\",\n       \" '朋友圈',\\n\",\n       \" '1000',\\n\",\n       \" '发微博',\\n\",\n       \" 'icon',\\n\",\n       \" '张竣',\\n\",\n       \" '医院',\\n\",\n       \" '每天',\\n\",\n       \" '盘龙城',\\n\",\n       \" '昵称',\\n\",\n       \" '总台',\\n\",\n       \" '忙不过来',\\n\",\n       \" '上阵',\\n\",\n       \" '点亮',\\n\",\n       \" '兄妹',\\n\",\n       \" '店主',\\n\",\n       \" '单泽',\\n\",\n       \" 'vlog',\\n\",\n       \" '央视',\\n\",\n       \" '武汉',\\n\",\n       \" '记者',\\n\",\n       \" '微博',\\n\",\n       \" '央视',\\n\",\n       \" '视频',\\n\",\n       \" '新闻',\\n\",\n       \" '环卫',\\n\",\n       \" '派出所',\\n\",\n       \" '东港',\\n\",\n       \" '急转',\\n\",\n       \" '纸包',\\n\",\n       \" '纸条',\\n\",\n       \" '日照',\\n\",\n       \" '大爷',\\n\",\n       \" '武汉',\\n\",\n       \" '大众网',\\n\",\n       \" '转身',\\n\",\n       \" '白衣天使',\\n\",\n       \" '12000',\\n\",\n       \" '31',\\n\",\n       \" '公安分局',\\n\",\n       \" '留言',\\n\",\n       \" '千元',\\n\",\n       \" '加油',\\n\",\n       \" '头戴',\\n\",\n       \" '心意',\\n\",\n       \" '环卫',\\n\",\n       \" '派出所',\\n\",\n       \" '东港',\\n\",\n       \" '急转',\\n\",\n       \" '纸包',\\n\",\n       \" '纸条',\\n\",\n       \" '日照',\\n\",\n       \" '大爷',\\n\",\n       \" '武汉',\\n\",\n       \" '大众网',\\n\",\n       \" '转身',\\n\",\n       \" '白衣天使',\\n\",\n       \" '12000',\\n\",\n       \" '31',\\n\",\n       \" '公安分局',\\n\",\n       \" '留言',\\n\",\n       \" '千元',\\n\",\n       \" '加油',\\n\",\n       \" '头戴',\\n\",\n       \" '心意',\\n\",\n       \" '微博',\\n\",\n       \" '人民日报',\\n\",\n       \" '视频',\\n\",\n       \" '校友会',\\n\",\n       \" '北加州',\\n\",\n       \" '医用',\\n\",\n       \" '华科',\\n\",\n       \" '2.5',\\n\",\n       \" '20',\\n\",\n       \" '2.75',\\n\",\n       \" '4000',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '防护服',\\n\",\n       \" '口罩',\\n\",\n       \" '武大',\\n\",\n       \" '手套',\\n\",\n       \" '好消息',\\n\",\n       \" '捐赠',\\n\",\n       \" '汇报',\\n\",\n       \" '总算',\\n\",\n       \" '紧急',\\n\",\n       \" '医疗',\\n\",\n       \" '一批',\\n\",\n       \" '武汉',\\n\",\n       \" '医护',\\n\",\n       \" '关爱',\\n\",\n       \" '肺炎',\\n\",\n       \" '抗击',\\n\",\n       \" '李文亮',\\n\",\n       \" '31',\\n\",\n       \" '21',\\n\",\n       \" '10',\\n\",\n       \" '守护者',\\n\",\n       \" '受益人',\\n\",\n       \" '支持',\\n\",\n       \" '第一笔',\\n\",\n       \" '中心医院',\\n\",\n       \" '后盾',\\n\",\n       \" '拨付',\\n\",\n       \" '武汉市',\\n\",\n       \" '肺炎',\\n\",\n       \" '基金会',\\n\",\n       \" '款项',\\n\",\n       \" '真相',\\n\",\n       \" '敢于',\\n\",\n       \" '病毒',\\n\",\n       \" '防范',\\n\",\n       \" '试图',\\n\",\n       \" '10',\\n\",\n       \" '医护',\\n\",\n       \" '关爱',\\n\",\n       \" '肺炎',\\n\",\n       \" '抗击',\\n\",\n       \" '李文亮',\\n\",\n       \" '氧气管',\\n\",\n       \" '工作',\\n\",\n       \" '31',\\n\",\n       \" '21',\\n\",\n       \" '10',\\n\",\n       \" '疾控',\\n\",\n       \" '守护者',\\n\",\n       \" '打字',\\n\",\n       \" '接诊',\\n\",\n       \" '受益人',\\n\",\n       \" '训诫',\\n\",\n       \" '支持',\\n\",\n       \" '第一笔',\\n\",\n       \" '中心医院',\\n\",\n       \" '获知',\\n\",\n       \" '广泛传播',\\n\",\n       \" '后盾',\\n\",\n       \" '拨付',\\n\",\n       \" '疑似',\\n\",\n       \" '曾光',\\n\",\n       \" '忧国忧民',\\n\",\n       \" '应该',\\n\",\n       \" '赞扬',\\n\",\n       \" '见解',\\n\",\n       \" '保护',\\n\",\n       \" '一定',\\n\",\n       \" '他们',\\n\",\n       \" '医护',\\n\",\n       \" '后盾',\\n\",\n       \" '守护者',\\n\",\n       \" '资助',\\n\",\n       \" '找寻到',\\n\",\n       \" '15',\\n\",\n       \" '共克',\\n\",\n       \" '行动',\\n\",\n       \" '时艰',\\n\",\n       \" '肺炎',\\n\",\n       \" '加油',\\n\",\n       \" '检疫',\\n\",\n       \" '基金会',\\n\",\n       \" '疫情',\\n\",\n       \" '护士',\\n\",\n       \" '坚实',\\n\",\n       \" '抗击',\\n\",\n       \" '一线',\\n\",\n       \" '程序',\\n\",\n       \" '医生',\\n\",\n       \" '公益',\\n\",\n       \" '11',\\n\",\n       \" '协和',\\n\",\n       \" '网友',\\n\",\n       \" '领用',\\n\",\n       \" '转自',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '某会',\\n\",\n       \" '惹怒',\\n\",\n       \" '我们',\\n\",\n       \" '置之不理',\\n\",\n       \" '医护人员',\\n\",\n       \" '求助',\\n\",\n       \" '要饭',\\n\",\n       \" '排在',\\n\",\n       \" '捐赠',\\n\",\n       \" '绕过',\\n\",\n       \" '病毒',\\n\",\n       \" '物资',\\n\",\n       \" '聚集',\\n\",\n       \" '据说',\\n\",\n       \" '工作人员',\\n\",\n       \" '12',\\n\",\n       \" '协和',\\n\",\n       \" '网友',\\n\",\n       \" '领用',\\n\",\n       \" '转自',\\n\",\n       \" '武汉协和医院',\\n\",\n       \" '某会',\\n\",\n       \" '惹怒',\\n\",\n       \" '我们',\\n\",\n       \" '置之不理',\\n\",\n       \" '医护人员',\\n\",\n       \" '求助',\\n\",\n       \" '要饭',\\n\",\n       \" '排在',\\n\",\n       \" '捐赠',\\n\",\n       \" '绕过',\\n\",\n       \" '病毒',\\n\",\n       \" '物资',\\n\",\n       \" '聚集',\\n\",\n       \" '据说',\\n\",\n       \" '工作人员',\\n\",\n       \" '黎黎',\\n\",\n       \" 'Lily',\\n\",\n       \" '微博',\\n\",\n       \" '视频',\\n\",\n       \" '13',\\n\",\n       \" '展馆',\\n\",\n       \" '红十字会',\\n\",\n       \" '武汉市',\\n\",\n       \" '捐赠',\\n\",\n       \" '物资',\\n\",\n       \" '胡亚波',\\n\",\n       \" '总台',\\n\",\n       \" '造册',\\n\",\n       \" '探访',\\n\",\n       \" '东西',\\n\",\n       \" '征用',\\n\",\n       \" '堆放',\\n\",\n       \" '紧缺',\\n\",\n       \" '常务副',\\n\",\n       \" '记者',\\n\",\n       \" '民用',\\n\",\n       \" '存放',\\n\",\n       \" '角落',\\n\",\n       \" '仓库',\\n\",\n       \" '有用',\\n\",\n       \" '14',\\n\",\n       \" '展馆',\\n\",\n       \" '红十字会',\\n\",\n       \" '东西',\\n\",\n       \" '武汉市',\\n\",\n       \" '捐赠',\\n\",\n       \" '物资',\\n\",\n       \" '胡亚波',\\n\",\n       \" '总台',\\n\",\n       \" '进不来',\\n\",\n       \" '造册',\\n\",\n       \" '探访',\\n\",\n       \" '堆积如山',\\n\",\n       \" '医护人员',\\n\",\n       \" '征用',\\n\",\n       \" '堆放',\\n\",\n       \" '紧缺',\\n\",\n       \" '常务副',\\n\",\n       \" '需要',\\n\",\n       \" '记者',\\n\",\n       \" '详情',\\n\",\n       \" '东西',\\n\",\n       \" ...]\"\n      ]\n     },\n     \"execution_count\": 31,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"words\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.3\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "2020/2-12-Elasticsearch-Chrome/README.md",
    "content": "- 视频 [使用Elasticsearch为Chrome插件增强搜索功能-中文分词](https://www.bilibili.com/video/av88390156/)\n\n- 参考\n    - [Elasticsearch通过docker安装及安装中文分词插件](https://blog.csdn.net/weixin_38229356/article/details/84574416)\n    - 官网 https://hub.docker.com/_/elasticsearch/?tab=description\n\nElasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能，\n但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性，从而让全文搜索变得简单。\n不过，Elasticsearch不仅仅是Lucene和全文搜索，我们还能这样去描述它：\n\n分布式的实时文件存储，每个字段都被索引并可被搜索\n分布式的实时分析搜索引擎\n可以扩展到上百台服务器，处理PB级结构化或非结构化数据\n\n- ES的存储结构\n```\n在ES中，存储结构主要有四种，与传统的关系型数据库对比如下：\nindex（Indices）相当于一个database\ntype相当于一个table\ndocument相当于一个row\nproperties（Fields）相当于一个column\n\nRelational DB -> Databases -> Tables -> Rows -> Columns\nElasticsearch -> Indices -> Types -> Documents -> Fields\n```\n\n\n\n- 下载\ndocker pull elasticsearch:6.5.0\n\n运行 启动ES\ndocker run -p 9200:9200 -it --name es_6_5 elasticsearch:6.5.0\n或，单节点模式\ndocker run -d --name es -p 9200:9200 -p 9300:9300 -e \"discovery.type=single-node\" docker.elastic.co/elasticsearch/elasticsearch:6.3.2\n\n\n进入镜像\ndocker exec -it es_6_5 /bin/bash\n\n- 安装中文分词插件\n[root@a31684a47a92 elasticsearch]# pwd\n/usr/share/elasticsearch\n[root@a31684a47a92 elasticsearch]# ls\nLICENSE.txt  NOTICE.txt  README.textile  bin  config  data  lib  logs  modules  plugins\n\n./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.0/elasticsearch-analysis-ik-6.5.0.zip\n\n加入跨域配置\nvi ./config/elasticsearch.yml \n```\nhttp.cors.enabled: true\nhttp.cors.allow-origin: \"*\"\n```\n这样 elasticsearch-head 插件才可以访问 Elasticsearch\n\n重启\ndocker restart es_6_5\n\n- python api\nhttps://elasticsearch-py.readthedocs.io/en/master/\n\n\n## 部署 ElasticSearch-Head\n3种方式\nhttps://hub.docker.com/r/mobz/elasticsearch-head\ndocker pull mobz/elasticsearch-head:5\ndocker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5\ndocker restart es_admin \n不好用\n使用Chrome插件\nhttps://github.com/mobz/elasticsearch-head\n\n\n## CURL \n- 参考 https://blog.csdn.net/u013063153/article/details/74108023\n创建索引\n建立索引库company，PUT和POST都可以：\ncurl -XPUT 'http://localhost:9200/company'\n索引库名称必须要全部小写，不能以下划线开头，也不能包含逗号\n\n创建索引，其中employee是type，1是document，-d是指定要传输的数据(遵循JSON格式)：\ncurl -H \"Content-Type: application/json\" -XPOST http://localhost:9200/company/employee/2 -d '{\n\"first_name\" : \"werl\",\n\"last_name\" : \"jkd\",\n\"age\" : 45,\n\"about\" : \"君士坦丁堡亦以其宏伟建筑而闻名。著名的建筑包括圣索菲亚大教堂、君士坦丁堡大皇宫、君士坦丁堡竞技场和黄金城门，大道与广场在其间星罗棋布。在1204年和1453年两次被劫掠之前，君士坦丁堡还保存着为数众多的艺术和文学作品。在被奥斯曼帝国攻克之时，该城已经逐渐破败，但在此后得到了迅速的复兴与发展，并于17世纪中叶再次成为当时世界第一大城市。\",\n\"interests\": [ \"sports\", \"tv\" ]\n}'\n\n\n"
  },
  {
    "path": "2020/2-12-Elasticsearch-Chrome/分词.md",
    "content": "\n- IK分词\n    - [Elasticsearch入门和查询语法分析（ik中文分词）](https://www.cnblogs.com/johnson108178/p/9295737.html)\n\n```\n(.py3) localhost:~ play$ curl -X GET \"localhost:9200/_analyze\" -H 'Content-Type: application/json' -d'{\n>   \"analyzer\" : \"ik_smart\",\n>   \"text\" : \"410年，日耳曼的西哥特人在领袖阿拉里克率领下，进入意大利，围攻罗马城，在城内奴隶的配合下 打开城门，掠夺而去\"\n> }'\n\n{\"tokens\":[{\"token\":\"410年\",\"start_offset\":0,\"end_offset\":4,\"type\":\"TYPE_CQUAN\",\"position\":0},{\"token\":\"日耳曼\",\"start_offset\":5,\"end_offset\":8,\"type\":\"CN_WORD\",\"position\":1},{\"token\":\"的\",\"start_offset\":8,\"end_offset\":9,\"type\":\"CN_CHAR\",\"position\":2},{\"token\":\"西\",\"start_offset\":9,\"end_offset\":10,\"type\":\"CN_CHAR\",\"position\":3},{\"token\":\"哥\",\"start_offset\":10,\"end_offset\":11,\"type\":\"CN_CHAR\",\"position\":4},{\"token\":\"特\",\"start_offset\":11,\"end_offset\":12,\"type\":\"CN_CHAR\",\"position\":5},{\"token\":\"人在\",\"start_offset\":12,\"end_offset\":14,\"type\":\"CN_WORD\",\"position\":6},{\"token\":\"领袖\",\"start_offset\":14,\"end_offset\":16,\"type\":\"CN_WORD\",\"position\":7},{\"token\":\"阿拉\",\"start_offset\":16,\"end_offset\":18,\"type\":\"CN_WORD\",\"position\":8},{\"token\":\"里\",\"start_offset\":18,\"end_offset\":19,\"type\":\"CN_CHAR\",\"position\":9},{\"token\":\"克\",\"start_offset\":19,\"end_offset\":20,\"type\":\"CN_CHAR\",\"position\":10},{\"token\":\"率领\",\"start_offset\":20,\"end_offset\":22,\"type\":\"CN_WORD\",\"position\":11},{\"token\":\"下\",\"start_offset\":22,\"end_offset\":23,\"type\":\"CN_CHAR\",\"position\":12},{\"token\":\"进入\",\"start_offset\":24,\"end_offset\":26,\"type\":\"CN_WORD\",\"position\":13},{\"token\":\"意大利\",\"start_offset\":26,\"end_offset\":29,\"type\":\"CN_WORD\",\"position\":14},{\"token\":\"围攻\",\"start_offset\":30,\"end_offset\":32,\"type\":\"CN_WORD\",\"position\":15},{\"token\":\"罗马\",\"start_offset\":32,\"end_offset\":34,\"type\":\"CN_WORD\",\"position\":16},{\"token\":\"城\",\"start_offset\":34,\"end_offset\":35,\"type\":\"CN_CHAR\",\"position\":17},{\"token\":\"在\",\"start_offset\":36,\"end_offset\":37,\"type\":\"CN_CHAR\",\"position\":18},{\"token\":\"城内\",\"start_offset\":37,\"end_offset\":39,\"type\":\"CN_WORD\",\"position\":19},{\"token\":\"奴隶\",\"start_offset\":39,\"end_offset\":41,\"type\":\"CN_WORD\",\"position\":20},{\"token\":\"的\",\"start_offset\":41,\"end_offset\":42,\"type\":\"CN_CHAR\",\"position\":21},{\"token\":\"配合\",\"start_offset\":42,\"end_offset\":44,\"type\":\"CN_WORD\",\"position\":22},{\"token\":\"下\",\"start_offset\":44,\"end_offset\":45,\"type\":\"CN_CHAR\",\"position\":23},{\"token\":\"打开\",\"start_offset\":45,\"end_offset\":47,\"type\":\"CN_WORD\",\"position\":24},{\"token\":\"城门\",\"start_offset\":47,\"end_offset\":49,\"type\":\"CN_WORD\",\"position\":25},{\"token\":\"掠夺\",\"start_offset\":50,\"end_offset\":52,\"type\":\"CN_WORD\",\"position\":26},{\"token\":\"而去\",\"start_offset\":52,\"end_offset\":54,\"type\":\"CN_WORD\",\"position\":27}]}\n```\n\n```\n(.py3) localhost:~ play$ curl -X GET \"localhost:9200/_analyze\" -H 'Content-Type: application/json' -d'{\n>   \"analyzer\" : \"ik_max_word\",\n>   \"text\" : \"410年，日耳曼的西哥特人在领袖阿拉里克率领下，进入意大利，围攻罗马城，在城内奴隶的配合下 打开城门，掠夺而去\"\n> }'\n\n{\"tokens\":[{\"token\":\"410\",\"start_offset\":0,\"end_offset\":3,\"type\":\"ARABIC\",\"position\":0},{\"token\":\"年\",\"start_offset\":3,\"end_offset\":4,\"type\":\"COUNT\",\"position\":1},{\"token\":\"日耳曼\",\"start_offset\":5,\"end_offset\":8,\"type\":\"CN_WORD\",\"position\":2},{\"token\":\"的\",\"start_offset\":8,\"end_offset\":9,\"type\":\"CN_CHAR\",\"position\":3},{\"token\":\"西\",\"start_offset\":9,\"end_offset\":10,\"type\":\"CN_CHAR\",\"position\":4},{\"token\":\"哥\",\"start_offset\":10,\"end_offset\":11,\"type\":\"CN_CHAR\",\"position\":5},{\"token\":\"特\",\"start_offset\":11,\"end_offset\":12,\"type\":\"CN_CHAR\",\"position\":6},{\"token\":\"人在\",\"start_offset\":12,\"end_offset\":14,\"type\":\"CN_WORD\",\"position\":7},{\"token\":\"领袖\",\"start_offset\":14,\"end_offset\":16,\"type\":\"CN_WORD\",\"position\":8},{\"token\":\"阿拉\",\"start_offset\":16,\"end_offset\":18,\"type\":\"CN_WORD\",\"position\":9},{\"token\":\"里\",\"start_offset\":18,\"end_offset\":19,\"type\":\"CN_CHAR\",\"position\":10},{\"token\":\"克\",\"start_offset\":19,\"end_offset\":20,\"type\":\"CN_CHAR\",\"position\":11},{\"token\":\"率领\",\"start_offset\":20,\"end_offset\":22,\"type\":\"CN_WORD\",\"position\":12},{\"token\":\"下\",\"start_offset\":22,\"end_offset\":23,\"type\":\"CN_CHAR\",\"position\":13},{\"token\":\"进入\",\"start_offset\":24,\"end_offset\":26,\"type\":\"CN_WORD\",\"position\":14},{\"token\":\"意大利\",\"start_offset\":26,\"end_offset\":29,\"type\":\"CN_WORD\",\"position\":15},{\"token\":\"围攻\",\"start_offset\":30,\"end_offset\":32,\"type\":\"CN_WORD\",\"position\":16},{\"token\":\"罗马\",\"start_offset\":32,\"end_offset\":34,\"type\":\"CN_WORD\",\"position\":17},{\"token\":\"城\",\"start_offset\":34,\"end_offset\":35,\"type\":\"CN_CHAR\",\"position\":18},{\"token\":\"在\",\"start_offset\":36,\"end_offset\":37,\"type\":\"CN_CHAR\",\"position\":19},{\"token\":\"城内\",\"start_offset\":37,\"end_offset\":39,\"type\":\"CN_WORD\",\"position\":20},{\"token\":\"奴隶\",\"start_offset\":39,\"end_offset\":41,\"type\":\"CN_WORD\",\"position\":21},{\"token\":\"的\",\"start_offset\":41,\"end_offset\":42,\"type\":\"CN_CHAR\",\"position\":22},{\"token\":\"配合\",\"start_offset\":42,\"end_offset\":44,\"type\":\"CN_WORD\",\"position\":23},{\"token\":\"下\",\"start_offset\":44,\"end_offset\":45,\"type\":\"CN_CHAR\",\"position\":24},{\"token\":\"打开\",\"start_offset\":45,\"end_offset\":47,\"type\":\"CN_WORD\",\"position\":25},{\"token\":\"开城\",\"start_offset\":46,\"end_offset\":48,\"type\":\"CN_WORD\",\"position\":26},{\"token\":\"城门\",\"start_offset\":47,\"end_offset\":49,\"type\":\"CN_WORD\",\"position\":27},{\"token\":\"掠夺\",\"start_offset\":50,\"end_offset\":52,\"type\":\"CN_WORD\",\"position\":28},{\"token\":\"而去\",\"start_offset\":52,\"end_offset\":54,\"type\":\"CN_WORD\",\"position\":29}]}(.py3) localhost:~ play$\n\n```\n"
  },
  {
    "path": "2020/2-13-微博实时抓取/README.md",
    "content": "# 微博实时抓取\n\n- 视频 [想第一时间看到爱豆的动态吗？快来学【微博实时抓取】吧](https://www.bilibili.com/video/av89008576/)\n\n- 参考 \n    - https://github.com/makelove/puppeteer-examples/blob/master/my02-%E5%BE%AE%E5%8D%9A-%E6%98%8E%E6%98%9F-%E5%AE%9E%E6%97%B6%E6%9B%B4%E6%96%B0/test1.js\n\n- 需求\n    - 实时抓取明星发的微博\n    - 追星，粉丝经济，眼球。第一时间看到明星的最新动态\n    \n    \n- 流程\n    - 用手机新注册一个微博账号\n    - 登陆\n    - 微博热门 https://d.weibo.com/\n    - 明星 https://d.weibo.com/102803_ctg1_4288_-_ctg1_4288\n    - 再进去，明星主页\n    - 实时监控明星的动态，更新列表\n"
  },
  {
    "path": "2020/2-17-Python-secrets/README.md",
    "content": "## Python的秘密\n\n- 视频 [Python的秘密，你知道吗？Python之禅](https://www.bilibili.com/video/av89586065/)\n\n- Python之禅 \n    - import this\n    - 英文\n    - 中文翻译\n```\nBeautiful is better than ugly.\n# 优美胜于丑陋（Python以编写优美的代码为目标）\nExplicit is better than implicit.\n# 明了胜于晦涩（优美的代码应当是明了的，命名规范，风格相似） \nSimple is better than complex.\n# 简洁胜于复杂（优美的代码应当是简洁的，不要有复杂的内部实现） \nComplex is better than complicated.\n# 复杂胜于凌乱（如果复杂不可避免，那代码间也不能有难懂的关系，要保持接口简洁）\nFlat is better than nested.\n# 扁平胜于嵌套（优美的代码应当是扁平的，不能有太多的嵌套） \nSparse is better than dense.\n# 间隔胜于紧凑（优美的代码有适当的间隔，不要奢望一行代码解决问题） \nReadability counts.\n# 可读性很重要（优美的代码是可读的） \nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\n# 即便假借特例的实用性之名，也不可违背这些规则（这些规则至高无上） \nErrors should never pass silently.\nUnless explicitly silenced.\n# 不要包容所有错误，除非你确定需要这样做（精准地捕获异常，不写except:pass风格的代码） \nIn the face of ambiguity, refuse the temptation to guess.\n# 当存在多种可能，不要尝试去猜测 \nThere should be one-- and preferably only one --obvious way to do it.\n# 而是尽量找一种，最好是唯一一种明显的解决方案（如果不确定，就用穷举法） \nAlthough that way may not be obvious at first unless you're Dutch.\n# 虽然这并不容易，因为你不是 Python 之父（这里的Dutch是指Guido）\nNow is better than never.\nAlthough never is often better than *right* now.\n# 做也许好过不做，但不假思索就动手还不如不做（动手之前要细思量）\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\n# 如果你无法向人描述你的方案，那肯定不是一个好方案；反之亦然（方案测评标准） \nNamespaces are one honking great idea -- let's do more of those!\n# 命名空间是一种绝妙的理念，我们应当多加利用（倡导与号召）\n```\n\n\n- Python的好处\n     - 天下武功，唯快不破\n     - 代码量少\n     - 生态系统完善\n     - 工具库齐全\n\n\n- 怎样生成随机加密串\n\n```\nimport string\nimport random\n\ndef random_string_generator(size=6, chars=string.ascii_uppercase + string.digits):\n    return ''.join(random.choice(chars) for _ in range(size))\n```\n\n```\nfrom uuid import uuid4\nstr(uuid4())\n```\n\n- 使用secrets模块生成secure token\n```\nimport secrets\n\n#生成适合于重置密码和难以想象的URL的安全令牌\nsecrets.token_bytes()\nsecrets.token_hex()\n\n#返回随机字节为nbytes的URL安全文本字符串。 文本以Base64编码，每个字节平均约为1.3个字符。 如果nbytes为None或未给出，则使用有效的默认值。\nsecrets.token_urlsafe()\n\n#减少攻击风险\nsecrets.compare_digest(\"e\",\"E\")\nFalse\n\ntokens使用多少字节\n\n为了抵御蛮力攻击和时序攻击，tokens需要具有足够的随机性。根据专家的说法，32字节(256位)的随机性足以抵御蛮力攻击。您应该根据您的要求选择字节大小。\n\n使用secrets.compare_digest(a,b)减少时序攻击\n\n为了降低时序攻击的风险，secrets模块具有compare_digest(a,b)功能。如果字符串a和b相等，则此函数返回True，否则返回False以降低计时攻击的风险。\n\n```\n\n- 参考\n    - [Python 的加密库入门](https://zhuanlan.zhihu.com/p/65168597)\n    - [HTTP对外接口API sign签名](https://www.cnblogs.com/yoyoketang/p/11742187.html)\n    - [Whats the simplest and safest method to generate a API KEY and SECRET in Python](https://stackoverflow.com/questions/34897740/whats-the-simplest-and-safest-method-to-generate-a-api-key-and-secret-in-python/48426397#48426397)"
  },
  {
    "path": "2020/2-18-Docker-Go-goProxy/README.md",
    "content": "- 视频 [本地开发环境不能用了？Docker帮你实现Go的独立编译环境](https://www.bilibili.com/video/av89812800/)\n\n- 本地开发环境损坏\n- 使用Docker作为Go工程的打包编译环境\n\n打开vscode\n\n- 启动Docker\n    - docker run -it --rm -p 8080:8080  -v  /Users/play/CODE/docker_go:/code  golang\n\n- 检测\n```\ngo version\ngo version go1.13.4 linux/amd64\n\ngo build server.go\ngo get github.com/emicklei/go-restful\n```\n\n- build报错\n```\nroot@b6c01e230bce:/code/spider# go build proxy_auto_drop.go\n/go/src/github.com/andybalholm/cascadia/selector.go:9:2: cannot find package \"golang.org/x/net/html\" in any of:\n    /usr/local/go/src/golang.org/x/net/html (from $GOROOT)\n    /go/src/golang.org/x/net/html (from $GOPATH)\n/go/src/github.com/antchfx/htmlquery/query.go:16:2: cannot find package \"golang.org/x/net/html/charset\" in any of:\n    /usr/local/go/src/golang.org/x/net/html/charset (from $GOROOT)\n    /go/src/golang.org/x/net/html/charset (from $GOPATH)\n/go/src/github.com/gocolly/colly/colly.go:48:2: cannot find package \"google.golang.org/appengine/urlfetch\" in any of:\n    /usr/local/go/src/google.golang.org/appengine/urlfetch (from $GOROOT)\n    /go/src/google.golang.org/appengine/urlfetch (from $GOPATH)\n```\n\n- 不能下载 golang.org 的代码，因为被墙\n```\nroot@b6c01e230bce:/code/spider# go get -v github.com/gocolly/colly\ngithub.com/gocolly/colly (download)\ngithub.com/PuerkitoBio/goquery (download)\ngithub.com/andybalholm/cascadia (download)\npackage golang.org/x/net/html: unrecognized import path \"golang.org/x/net/html\" (https fetch: Get https://golang.org/x/net/html?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)\ngithub.com/antchfx/htmlquery (download)\ngithub.com/antchfx/xpath (download)\ngithub.com/golang/groupcache (download)\n\npackage golang.org/x/net/html/charset: unrecognized import path \"golang.org/x/net/html/charset\" (https fetch: Get https://golang.org/x/net/html/charset?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)\ngithub.com/antchfx/xmlquery (download)\ngithub.com/gobwas/glob (download)\ngithub.com/kennygrant/sanitize (download)\ngithub.com/saintfish/chardet (download)\ngithub.com/temoto/robotstxt (download)\npackage google.golang.org/appengine/urlfetch: unrecognized import path \"google.golang.org/appengine/urlfetch\" (https fetch: Get https://google.golang.org/appengine/urlfetch?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)\n```\n\n- 文档说明不清楚 https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md\n    - 参考我的帖子 https://github.com/goproxy/goproxy.cn/issues/59\n\n- 解决\n```\nexport GO111MODULE=on\nexport GOPROXY=https://goproxy.cn\n```\n\n- 然后\n```\nroot@b6c01e230bce:/code/spider# go get -v github.com/gocolly/colly\ngo: finding github.com/gocolly/colly v1.2.0\ngo: downloading github.com/gocolly/colly v1.2.0\ngo: extracting github.com/gocolly/colly v1.2.0\ngo: finding google.golang.org/appengine v1.6.5\ngo: downloading google.golang.org/appengine v1.6.5\ngo: finding github.com/gobwas/glob v0.2.3\ngo: finding github.com/kennygrant/sanitize v1.2.4\ngo: finding github.com/saintfish/chardet latest\ngo: finding github.com/PuerkitoBio/goquery v1.5.1\ngo: downloading github.com/kennygrant/sanitize v1.2.4\ngo: finding golang.org/x/net latest\ngo: finding github.com/antchfx/xmlquery v1.2.3\ngo: finding github.com/temoto/robotstxt v1.1.1\ngo: finding github.com/antchfx/htmlquery v1.2.2\ngo: downloading github.com/antchfx/xmlquery v1.2.3\ngo: downloading github.com/temoto/robotstxt v1.1.1\ngo: downloading github.com/gobwas/glob v0.2.3\ngo: downloading golang.org/x/net v0.0.0-20200202094626-16171245cfb2\ngo: downloading github.com/antchfx/htmlquery v1.2.2\ngo: downloading github.com/PuerkitoBio/goquery v1.5.1\ngo: downloading github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca\ngo: extracting github.com/kennygrant/sanitize v1.2.4\ngo: extracting google.golang.org/appengine v1.6.5\ngo: extracting github.com/antchfx/xmlquery v1.2.3\ngo: extracting github.com/antchfx/htmlquery v1.2.2\ngo: extracting github.com/temoto/robotstxt v1.1.1\ngo: extracting github.com/gobwas/glob v0.2.3\ngo: extracting golang.org/x/net v0.0.0-20200202094626-16171245cfb2\ngo: extracting github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca\ngo: extracting github.com/PuerkitoBio/goquery v1.5.1\ngo: downloading github.com/andybalholm/cascadia v1.1.0\ngo: downloading golang.org/x/text v0.3.2\ngo: downloading github.com/golang/protobuf v1.3.1\ngo: extracting github.com/andybalholm/cascadia v1.1.0\ngo: finding github.com/antchfx/xpath v1.1.4\ngo: extracting github.com/golang/protobuf v1.3.1\ngo: finding github.com/golang/groupcache latest\ngo: downloading github.com/antchfx/xpath v1.1.4\ngo: downloading github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e\ngo: extracting github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e\ngo: extracting github.com/antchfx/xpath v1.1.4\ngo: extracting golang.org/x/text v0.3.2\ngo: finding github.com/andybalholm/cascadia v1.1.0\ngo: finding golang.org/x/text v0.3.2\ngo: finding github.com/golang/protobuf v1.3.1\ngolang.org/x/net/html/atom\ngolang.org/x/net/html\ngithub.com/antchfx/xpath\ngithub.com/golang/groupcache/lru\ngithub.com/andybalholm/cascadia\ngolang.org/x/text/encoding/internal/identifier\ngolang.org/x/text/transform\ngolang.org/x/text/encoding\ngolang.org/x/text/encoding/internal\ngithub.com/PuerkitoBio/goquery\ngolang.org/x/text/encoding/charmap\ngolang.org/x/text/encoding/japanese\ngolang.org/x/text/encoding/korean\ngolang.org/x/text/encoding/simplifiedchinese\ngolang.org/x/text/encoding/traditionalchinese\ngolang.org/x/text/internal/utf8internal\ngolang.org/x/text/runes\ngolang.org/x/text/internal/tag\ngolang.org/x/text/internal/language\ngolang.org/x/text/encoding/unicode\ngithub.com/gobwas/glob/util/runes\ngithub.com/gobwas/glob/util/strings\ngithub.com/gobwas/glob/match\ngolang.org/x/text/internal/language/compact\ngithub.com/gobwas/glob/syntax/lexer\ngolang.org/x/text/language\ngithub.com/gobwas/glob/syntax/ast\ngithub.com/gobwas/glob/compiler\ngithub.com/gobwas/glob/syntax\ngithub.com/gobwas/glob\ngithub.com/gocolly/colly/debug\ngolang.org/x/text/encoding/htmlindex\ngithub.com/gocolly/colly/storage\ngolang.org/x/net/html/charset\ngithub.com/kennygrant/sanitize\ngithub.com/antchfx/htmlquery\ngithub.com/antchfx/xmlquery\ngithub.com/saintfish/chardet\ngithub.com/temoto/robotstxt\ngithub.com/golang/protobuf/proto\ngolang.org/x/net/context\ngoogle.golang.org/appengine/internal/datastore\ngoogle.golang.org/appengine/internal/base\ngoogle.golang.org/appengine/internal/log\ngoogle.golang.org/appengine/internal/remote_api\ngoogle.golang.org/appengine/internal/urlfetch\ngoogle.golang.org/appengine/internal\ngoogle.golang.org/appengine/urlfetch\ngithub.com/gocolly/colly\n\n\nroot@b6c01e230bce:/code/spider# go build proxy_auto_drop.go\ngo: finding golang.org/x/net latest\ngo: finding github.com/saintfish/chardet latest\ngo: finding github.com/golang/groupcache latest\n\nroot@b6c01e230bce:/code/spider# ls -l\ntotal 14268\n-rwxr-xr-x 1 root root 14605898 Feb 18 02:07 proxy_auto_drop\n-rw-r--r-- 1 root root      514 Feb 18 02:01 proxy_auto_drop.go\n\nroot@b6c01e230bce:/code/spider# ./proxy_auto_drop\n2020/02/18 02:07:53 OnResponse\n2020/02/18 02:07:53 r.Request.ProxyURL\n2020/02/18 02:07:53 OnResponse Visited https://httpbin.org/ip\n2020/02/18 02:07:53 {\n  \"origin\": \"221.218.140.26\"\n}\n\n------------\n\n```"
  },
  {
    "path": "2020/2-18-Scrapy-auto-proxy/README.md",
    "content": "# Scrapy 爬虫自动调整IP代理\n- 视频 [Scrapy爬虫自动调整IP代理，避免失效](https://www.bilibili.com/video/av89959782/)\n- 问题\n    - IP代理失效\n    \n    \n## 启动Docker\n- 参考 https://github.com/makelove/Programer_Log/tree/master/2020/2-7-Docker-Nginx-antiClawer\n- 启动 http server\n```shell script\n(.py3) localhost:2-7-Docker-Nginx-antiClawer play$ go run server.go\nServer starting on port 8080\ncurl http://127.0.0.1:8080/\ncurl http://192.168.0.222:8080/\n\n```\n- 启动Nginx\n```shell script\n(.py3) localhost:2-7-Docker-Nginx-antiClawer play$ docker run -it --rm -p 80:80 -v `pwd`/nginx1.conf:/etc/nginx/nginx.conf:ro nginx\n\n172.17.0.1 - - [18/Feb/2020:11:44:54 +0000] \"GET /api HTTP/1.1\" 403 153 \"-\" \"curl/7.64.1\"\n172.17.0.1 - - [18/Feb/2020:11:45:28 +0000] \"GET /api HTTP/1.1\" 200 49 \"-\" \"iphone\"\n\n#测试\ncurl -A 'iphone'  http://192.168.0.222/api\n```\n\n- 启动 Squid 代理服务器\n```shell script\ndocker run -it --rm -p 3121:3128  datadog/squid\ndocker run -it --rm -p 3122:3128  datadog/squid\ndocker run -it --rm -p 3123:3128  datadog/squid\ndocker run -it --rm -p 3124:3128  datadog/squid\n```\n- 测试代理\n```shell script\ncurl -A 'iphone' -x 127.0.0.1:3121  http://192.168.0.222/api\ncurl -A 'iphone' -x 127.0.0.1:3121  http://httpbin.org/ip\n```\n- 启动Redis\n    - 必须 Redis 5.0.7 64 bit\n```shell script\ndocker run -it --rm -p 6379:6379  redis\n#测试\nredis-cli\n\n```\n\n- 编写Scrapy代码\n    - 使用2-6-Spider-Speed-test 的scrapy_demo代码\n    - 新建middlewares_proxy_redis.py\n    - 在settings.py加入DOWNLOADER_MIDDLEWARES\n        - 'scrapy_demo.middlewares_proxy_redis.redisProxy': 400,\n    - 把代理插入Redis服务器\n        - manage_proxy.py\n\n- 运行爬虫测试\n    -  scrapy crawl example -s CLOSESPIDER_ITEMCOUNT=1000\n    \n- 测试效果\n    - Nginx 配置，要正确\n        - limit_conn_zone $binary_remote_addr zone=perip:100k;\n        - limit_conn_zone $server_name zone=perserver:100k;\n    - 数值如果太大，就看不出效果"
  },
  {
    "path": "2020/2-18-Scrapy-auto-proxy/manage_proxy.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/2/18 20:20\n# @File    : manage_proxy.py\n\n\n\"\"\"\nmanage_proxy.py:\n\"\"\"\nimport redis\n\nr = redis.Redis(decode_responses=True)\nproxy_key = 'proxy'\nerror_proxy_key = 'error_proxy'\n\n\ndef main():\n    http_proxy = [\n        # 'http://127.0.0.1:3121',\n        # 'http://127.0.0.1:3122',\n        # 'http://127.0.0.1:3123',\n        # 'http://127.0.0.1:3124',\n\n        'http://172.17.0.4:3128',\n        'http://172.17.0.5:3128',\n        'http://172.17.0.6:3128',\n        'http://172.17.0.7:3128',\n    ]  #\n\n    init_value = 10000  # 1000000  # 1百万\n    for idx, ip in enumerate(http_proxy):\n        # r.zincrby(proxy_key, init_value, ip)\n        # r.zincrby(error_proxy_key, 0, ip)\n\n        r.zadd(proxy_key, {ip: init_value+idx})\n        r.zadd(error_proxy_key, {ip: 0})\n    print('插入完毕')\n    pass\n\n\ndef scan():\n    count = r.zcard(proxy_key)\n    print(proxy_key, count)\n    rs = r.zscan(proxy_key, count=count)  # 288\n    for ip, value in rs[1]:\n        print(ip, '\\t', value)\n    print('-' * 40)\n\n    # 错误\n    count = r.zcard(error_proxy_key)\n    print(error_proxy_key, count)\n    rs = r.zscan(error_proxy_key, count=count)\n    for ip, value in rs[1]:\n        print(ip, '\\t', value)\n        # break\n\n\nif __name__ == '__main__':\n    # main()\n    scan()\n"
  },
  {
    "path": "2020/2-19-JetBrains-Pycharm-破解/README.md",
    "content": "# JetBrains全家桶 破解\n\n- 视频  [JetBrains全家桶用不了？用VScode代替PyCharm](https://www.bilibili.com/video/av90073564/)\n\n- 常用 PyCharm 、GoLand、WebStorm、IntelliJ IDEA\n    - Clion、AppCode、Kotlin\n- 免费领取正版，不用破解\n    - 教育网后缀的email\n    - 开源项目 https://zhuanlan.zhihu.com/p/87370573\n\n- 怎样破解\n    - 不需要断网\n    - 不需要改host\n        - 0.0.0.0 account.jetbrains.com\n    - 把jetbrains-agent.jar放到pycharm的lib目录\n    - 启动pycharm，输入激活码\n    - 上面的步骤对JetBrains全家桶都有效。\n        - 本人测试了GoLand破解，没问题\n\n- 如果PyCharm 专业版不能激活，可以用【社区版】\n\n- 代替\n    - VScode\n        - 免费\n        - 功能齐全\n\n- VScode 调试程序\n- Python\n```\n        {\n            \"name\": \"pyLaunch\",\n            \"type\": \"python\",\n            \"request\": \"launch\",\n            \"mode\": \"auto\",\n            \"pythonPath\": \"${config:python.pythonPath}\",\n            \"program\": \"${file}\",\n            \"env\": {},\n            \"args\": []\n        }\n```\n\n- Go\n```\n        {\n            \"name\": \"goLaunch\",\n            \"type\": \"go\",\n            \"request\": \"launch\",\n            \"mode\": \"auto\",\n            \"program\": \"${fileDirname}\",\n            \"env\": {},\n            \"args\": []\n        }\n然后要创建mod文件\ngo mod init example.com/m\n```\n\n- 使用VScode编程Go语言\n    - 参考 https://github.com/makelove/Programer_Log/tree/master/2020/2-18-Docker-Go-goProxy\n    - 步骤\n        - 设置环境变量\n            - export GO111MODULE=on\n            - export GOPROXY=https://goproxy.cn\n        - 下载VScode的插件【Go for Visual Studio Code】\n            - 参考 https://github.com/microsoft/vscode-go\n        - 便可以自动import go 模块了\n    - 另外，你在命令行 go build main.go时，Go 会自动下载模块"
  },
  {
    "path": "2020/2-19-JetBrains-Pycharm-破解/demo/.vscode/launch.json",
    "content": "{\n    // 使用 IntelliSense 了解相关属性。 \n    // 悬停以查看现有属性的描述。\n    // 欲了解更多信息，请访问: https://go.microsoft.com/fwlink/?linkid=830387\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"go\",\n            \"type\": \"go\",\n            \"request\": \"launch\",\n            \"mode\": \"debug\",\n            \"program\": \"${file}\"\n        },\n        {\n            \"name\": \"Py\",\n            \"type\": \"python\",\n            \"request\": \"launch\",\n            \"program\": \"${file}\",\n            \"console\": \"integratedTerminal\"\n        }\n    ]\n}"
  },
  {
    "path": "2020/2-19-JetBrains-Pycharm-破解/demo/demo.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   demo.py\n@Time    :   2020/02/19 10:49:37\n@Author  :   play4fun\n@Desc    :   \n'''\n\ndef f1():\n    for i,x in enumerate(range(13,19)):\n        print(i,'\\t',x)\n    pass\n\nif __name__ == \"__main__\":\n    f1()"
  },
  {
    "path": "2020/2-19-JetBrains-Pycharm-破解/demo/go.mod",
    "content": "module example.com/m\n\ngo 1.13\n"
  },
  {
    "path": "2020/2-19-JetBrains-Pycharm-破解/demo/t1.go",
    "content": "/*\n@File    :   t1.go\n@Time    :   2020/02/18 17:36:24\n@Author  :   play4fun\n@Desc    :   d\n*/\n\npackage main\n\nimport \"fmt\"\n\nfunc main() {\n\tnumbers := [6]int{1, 2, 3, 5}\n\tfor i, x := range numbers {\n\t\tfmt.Printf(\"第 %d 位 x 的值 = %d\\n\", i, x)\n\t}\n}\n"
  },
  {
    "path": "2020/2-20-Python-Siri-语音朗读文章/Global-hotkeys.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/2/20 17:50\n# @File    : Global-hotkeys.py\n\n\n\"\"\"\nGlobal-hotkeys.py: 全局热键\n\n只支持一对热键\n\"\"\"\n\nfrom pynput import keyboard\n\n\ndef on_activate():\n    print('Global hotkey activated!')\n\n\ndef for_canonical(f):\n    return lambda k: f(listener.canonical(k))\n\n\nhotkey = keyboard.HotKey(\n    # keyboard.HotKey.parse('<ctrl>+<alt>+1'),\n    keyboard.HotKey.parse('<ctrl>+1'),\n    on_activate)\n\nwith keyboard.Listener(\n        on_press=for_canonical(hotkey.press),\n        on_release=for_canonical(hotkey.release)) as listener:\n    listener.join()\n\n\ndef main():\n    listener.start()\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2020/2-20-Python-Siri-语音朗读文章/README.md",
    "content": "# python-切换Siri的发音人-朗读文章\n\n- 视频 [Python-切换Siri的发音人-朗读文章，不需要手动切换发音人](https://www.bilibili.com/video/av90408293/)\n\n- 监控键盘，模拟键盘按下\n    - https://pypi.org/project/pyperclip/\n    - pip install pyperclip\n    - 需要【隐私】的监视权限\n    - 组合键？\n\n\n- 粘贴板\n    - https://pypi.org/project/pyperclip/\n    - pip install pyperclip\n```\nimport pyperclip\npyperclip.copy('The text to be copied to the clipboard.')\npyperclip.paste()\n```\n"
  },
  {
    "path": "2020/2-20-Python-Siri-语音朗读文章/copy-string-tts.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/2/20 18:00\n# @File    : copy-string-tts.py\n\n\n\"\"\"\ncopy-string-tts.py:\n\"\"\"\n\nfrom pynput import keyboard\nimport pyperclip as cp\nimport os\n\n\ndef get_listener(key, voice):\n    def on_activate():\n        print('Global hotkey activated!')\n\n        cpstr: str = cp.paste()\n        print(cpstr)\n        if cpstr.strip():\n            cmd = f'say -v {voice} \"{cpstr}\"'\n            print(cmd)\n            os.system(cmd)\n            pass\n\n    def for_canonical(f):\n        return lambda k: f(listener.canonical(k))\n\n    hotkey = keyboard.HotKey(\n        # keyboard.HotKey.parse('<ctrl>+<alt>+1'),\n        keyboard.HotKey.parse(key),\n        on_activate)\n\n    with keyboard.Listener(\n            on_press=for_canonical(hotkey.press),\n            on_release=for_canonical(hotkey.release)) as listener:\n        listener.join()\n    return listener\n\n\ndef main():\n    listener1 = get_listener('<ctrl>+1', \"Ting-Ting\")\n    listener1.start()\n\n    # listener2 = get_listener('<ctrl>+2', \"Mei-Jia\")\n    # listener2.start()#不行\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2020/2-20-Python-Siri-语音朗读文章/copy-string-tts2.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/2/20 18:14\n# @File    : copy-string-tts2.py\n\n\n\"\"\"\ncopy-string-tts2.py:\n支持多对热键\n\n运行后\n先选中文本\n按 ctrl+c 复制\n然后按照对应的热键\n\"\"\"\n\nfrom pynput import keyboard\nimport pyperclip as cp\nimport os\n\ndef say(voice):\n    cpstr: str = cp.paste()\n    print(cpstr)\n    print('-'*20)\n    if cpstr.strip():\n        cmd = f'say -v {voice} \"{cpstr}\"'\n        print(cmd)\n        os.system(cmd)\n        print('-'*40)\n        pass\n\ndef on_activate_1():\n    print('<ctrl>+1 pressed')\n    say(\"Ting-Ting\")\n\n\ndef on_activate_2():\n    print('<ctrl>+2 pressed')\n    say(\"Mei-Jia\")\ndef on_activate_3():\n    print('<ctrl>+3 pressed')\n    say(\"Sin-ji\")\n\ndef on_activate_4():\n    print('<ctrl>+4 pressed')\n    say(\"Allison\")\n\n\n\n\ndef main():\n    try:\n        with keyboard.GlobalHotKeys({\n                '<ctrl>+1': on_activate_1,\n                '<ctrl>+2': on_activate_2,\n                '<ctrl>+3': on_activate_3,\n                '<ctrl>+4': on_activate_4,\n            }) as h:\n                h.join()\n        h.start()\n    except KeyboardInterrupt as e:\n        print('KeyboardInterrupt',e)\n        return\n    except Exception as e:\n        print('Exception',e)\n        raise\n\n    \n    \n    # listener.start()\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2020/2-20-Python-Siri-语音朗读文章/keyboard_Listener1.py",
    "content": "# coding=utf-8\n\n'''\n\nhttps://pypi.org/project/keyboard/\n\n'''\n\nfrom pynput import keyboard\n\n\ndef on_press(key):\n    try:\n        print('alphanumeric key {0} pressed'.format(\n            key.char))\n    except AttributeError:\n        print('special key {0} pressed'.format(\n            key))\n\n\ndef on_release(key):\n    print('{0} released'.format(\n        key))\n    if key == keyboard.Key.esc:\n        # Stop listener\n        return False\n\n\n# Collect events until released\nwith keyboard.Listener(\n        on_press=on_press,\n        on_release=on_release) as listener:\n    listener.join()\n\n# ...or, in a non-blocking fashion:\n# listener = keyboard.Listener(\n#     on_press=on_press,\n#     on_release=on_release)\n\n\nlistener.start()\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/README.md",
    "content": "## Scrapy使用Puppeteer中间件抓取JS动态页面\n- 视频  [有瓶颈！Scrapy使用Puppeteer中间件抓取JS动态页面](https://www.bilibili.com/video/av91039863/)\n\n## 1. JS动态页面\n\n## 2. Go server\n- go run js_server.go\n- flask server\n\t- python3 js_server.py\n\n## 3. Scrapy爬虫，中间件\n- scrapy crawl example  -s CLOSESPIDER_ITEMCOUNT=1000\n\t- spider的parse函数要yield item\n\n## 4. 运行测试\n- 启动Docker\n    - 运行 Puppeteer\n        - docker run  -it --name renderer -p 8080:3000 zenato/puppeteer-renderer\n    - 测试\n        - curl http://localhost:8080/?url=http://192.168.0.222:8888/\n    - scrapy shell 'http://192.168.0.222:8888/'\n    - scrapy shell 'http://localhost:8080/?url=http://192.168.0.222:8888/'\n\n## 5. 压力测试 ab\n```\n测试工具Apache ab\nhttp://httpd.apache.org/docs/2.2/programs/ab.html\nab -q -c 50 -n 1000 http://192.168.0.222:8888/\n－n表示请求数，－c表示并发数\nGo:\nRequests per second:    7109.04 [#/sec] (mean)\nFlask:\nRequests per second:    293.62 [#/sec] (mean)\n\nab  -c 50 -n 1000 http://localhost:8080/?url=http://192.168.0.222:8888/\nab  -c 32 -n 200 http://localhost:8080/?url=http://192.168.0.222:8888/\nGo:\nRequests per second:    8.82 [#/sec] (mean)\nFlask:\nRequests per second:    8.27 [#/sec] (mean)\n```\n\n## 6. 优化 ？瓶颈 ！\n- 修改docker Puppeteer index.js\n    - express ?\n- 增大并发量\n- 同时打开多个Chrome窗口，占用更多的内存\n```\n(.py3) localhost:~ play$ docker ps\nCONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                    NAMES\nc7fb712736d3        zenato/puppeteer-renderer   \"/bin/sh -c 'npm run…\"   7 weeks ago         Up About an hour    0.0.0.0:8080->3000/tcp   renderer\n\n#进入docker镜像\n(.py3) localhost:~ play$ docker exec -it renderer /bin/bash\nroot@c7fb712736d3:/app# cat Dockerfile\nFROM zenato/puppeteer\n\nUSER root\n\nCOPY . /app\n\nRUN cd /app && npm install --quiet\n\nEXPOSE 3000\n\nWORKDIR /app\n\nCMD npm run start\nroot@c7fb712736d3:/app# ls -l\ntotal 144\n-rw-r--r--   1 root root    128 Dec 18 23:52 Dockerfile\n-rw-r--r--   1 root root   1091 Dec 18 23:52 LICENSE\n-rw-r--r--   1 root root   3293 Dec 18 23:52 README.md\ndrwxr-xr-x   3 root root   4096 Dec 18 23:52 middleware\ndrwxr-xr-x 266 root root  12288 Dec 18 23:58 node_modules\n-rw-r--r--   1 root root     23 Dec 18 23:52 now.json\n-rw-r--r--   1 root root 101140 Dec 18 23:58 package-lock.json\n-rw-r--r--   1 root root    737 Dec 18 23:52 package.json\ndrwxr-xr-x   2 root root   4096 Dec 18 23:52 src\ndrwxr-xr-x   2 root root   4096 Dec 18 23:52 test\nroot@c7fb712736d3:/app# ls src/\nindex.js  renderer.js\n\n#源代码\nroot@c7fb712736d3:/app# cat src/index.js\n'use strict'\n\nconst express = require('express')\nconst qs = require('qs')\nconst { URL } = require('url')\nconst contentDisposition = require('content-disposition')\nconst createRenderer = require('./renderer')\n\nconst port = process.env.PORT || 3000\n\nconst app = express()\n\nlet renderer = null\n\n// Configure.\napp.set('query parser', s => qs.parse(s, { allowDots: true }))\napp.disable('x-powered-by')\n\n// Render url.\napp.use(async (req, res, next) => {\n  console.log(req.query)\n  let { url, type, filename, ...options } = req.query\n\n  if (!url) {\n    return res.status(400).send('Search with url parameter. For eaxample, ?url=http://yourdomain')\n  }\n\n  if (!url.includes('://')) {\n    url = `http://${url}`\n  }\n\n  try {\n    switch (type) {\n      case 'pdf':\n        const urlObj = new URL(url)\n        if (!filename) {\n          filename = urlObj.hostname\n          if (urlObj.pathname !== '/') {\n            filename = urlObj.pathname.split('/').pop()\n            if (filename === '') filename = urlObj.pathname.replace(/\\//g, '')\n            const extDotPosition = filename.lastIndexOf('.')\n            if (extDotPosition > 0) filename = filename.substring(0, extDotPosition)\n          }\n        }\n        if(!filename.toLowerCase().endsWith('.pdf')) {\n          filename += '.pdf';\n        }\n        const pdf = await renderer.pdf(url, options)\n        res\n          .set({\n            'Content-Type': 'application/pdf',\n            'Content-Length': pdf.length,\n            'Content-Disposition': contentDisposition(filename),\n          })\n          .send(pdf)\n        break\n\n      case 'screenshot':\n        const { screenshotType, buffer } = await renderer.screenshot(url, options)\n        res\n          .set({\n            'Content-Type': `image/${screenshotType}`,\n            'Content-Length': buffer.length,\n          })\n          .send(buffer)\n        break\n\n      default:\n        const html = await renderer.render(url, options)\n        res.status(200).send(html)\n    }\n  } catch (e) {\n    next(e)\n  }\n})\n\n// Error page.\napp.use((err, req, res, next) => {\n  console.error(err)\n  res.status(500).send('Oops, An expected error seems to have occurred.')\n})\n\n// Create renderer and start server.\ncreateRenderer({\n  ignoreHTTPSErrors: !!process.env.IGNORE_HTTPS_ERRORS,\n})\n  .then(createdRenderer => {\n    renderer = createdRenderer\n    console.info('Initialized renderer.')\n\n    app.listen(port, () => {\n      console.info(`Listen port on ${port}.`)\n    })\n  })\n  .catch(e => {\n    console.error('Fail to initialze renderer.', e)\n  })\n\n// Terminate process\nprocess.on('SIGINT', () => {\n  process.exit(0)\n})\nroot@c7fb712736d3:/app#\n```\n\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/demo/demo/__init__.py",
    "content": ""
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/demo/demo/items.py",
    "content": "# -*- coding: utf-8 -*-\n\n# Define here the models for your scraped items\n#\n# See documentation in:\n# https://docs.scrapy.org/en/latest/topics/items.html\n\nimport scrapy\n\n\nclass DemoItem(scrapy.Item):\n    # define the fields for your item here like:\n    # name = scrapy.Field()\n    pass\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/demo/demo/middlewares.py",
    "content": "# -*- coding: utf-8 -*-\n\n# Define here the models for your spider middleware\n#\n# See documentation in:\n# https://docs.scrapy.org/en/latest/topics/spider-middleware.html\n\nfrom scrapy import signals\nfrom urllib.parse import quote\n\nclass Puppeteer(object):\n    @classmethod\n    def from_crawler(cls, crawler):\n        # This method is used by Scrapy to create your spiders.\n        s = cls(crawler)\n        # crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)\n        return s\n\n    def __init__(self, crawler):\n        self.host = 'http://localhost:8080/?url='\n\n    def process_request(self, request, spider):\n        request.meta['url'] = request.url\n        \n        url = self.host + quote(request.url)\n        request._set_url(url)\n        pass\n\n    def process_response(self, request, response, spider):\n        response._set_url(request.meta['url'])\n        return response\n\n    pass\n\nclass DemoSpiderMiddleware(object):\n    # Not all methods need to be defined. If a method is not defined,\n    # scrapy acts as if the spider middleware does not modify the\n    # passed objects.\n\n    @classmethod\n    def from_crawler(cls, crawler):\n        # This method is used by Scrapy to create your spiders.\n        s = cls()\n        crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)\n        return s\n\n    def process_spider_input(self, response, spider):\n        # Called for each response that goes through the spider\n        # middleware and into the spider.\n\n        # Should return None or raise an exception.\n        return None\n\n    def process_spider_output(self, response, result, spider):\n        # Called with the results returned from the Spider, after\n        # it has processed the response.\n\n        # Must return an iterable of Request, dict or Item objects.\n        for i in result:\n            yield i\n\n    def process_spider_exception(self, response, exception, spider):\n        # Called when a spider or process_spider_input() method\n        # (from other spider middleware) raises an exception.\n\n        # Should return either None or an iterable of Request, dict\n        # or Item objects.\n        pass\n\n    def process_start_requests(self, start_requests, spider):\n        # Called with the start requests of the spider, and works\n        # similarly to the process_spider_output() method, except\n        # that it doesn’t have a response associated.\n\n        # Must return only requests (not items).\n        for r in start_requests:\n            yield r\n\n    def spider_opened(self, spider):\n        spider.logger.info('Spider opened: %s' % spider.name)\n\n\nclass DemoDownloaderMiddleware(object):\n    # Not all methods need to be defined. If a method is not defined,\n    # scrapy acts as if the downloader middleware does not modify the\n    # passed objects.\n\n    @classmethod\n    def from_crawler(cls, crawler):\n        # This method is used by Scrapy to create your spiders.\n        s = cls()\n        crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)\n        return s\n\n    def process_request(self, request, spider):\n        # Called for each request that goes through the downloader\n        # middleware.\n\n        # Must either:\n        # - return None: continue processing this request\n        # - or return a Response object\n        # - or return a Request object\n        # - or raise IgnoreRequest: process_exception() methods of\n        #   installed downloader middleware will be called\n        return None\n\n    def process_response(self, request, response, spider):\n        # Called with the response returned from the downloader.\n\n        # Must either;\n        # - return a Response object\n        # - return a Request object\n        # - or raise IgnoreRequest\n        return response\n\n    def process_exception(self, request, exception, spider):\n        # Called when a download handler or a process_request()\n        # (from other downloader middleware) raises an exception.\n\n        # Must either:\n        # - return None: continue processing this exception\n        # - return a Response object: stops process_exception() chain\n        # - return a Request object: stops process_exception() chain\n        pass\n\n    def spider_opened(self, spider):\n        spider.logger.info('Spider opened: %s' % spider.name)\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/demo/demo/pipelines.py",
    "content": "# -*- coding: utf-8 -*-\n\n# Define your item pipelines here\n#\n# Don't forget to add your pipeline to the ITEM_PIPELINES setting\n# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html\n\n\nclass DemoPipeline(object):\n    def process_item(self, item, spider):\n        return item\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/demo/demo/settings.py",
    "content": "# -*- coding: utf-8 -*-\n\n# Scrapy settings for demo project\n#\n# For simplicity, this file contains only settings considered important or\n# commonly used. You can find more settings consulting the documentation:\n#\n#     https://docs.scrapy.org/en/latest/topics/settings.html\n#     https://docs.scrapy.org/en/latest/topics/downloader-middleware.html\n#     https://docs.scrapy.org/en/latest/topics/spider-middleware.html\n\nBOT_NAME = 'demo'\n\nSPIDER_MODULES = ['demo.spiders']\nNEWSPIDER_MODULE = 'demo.spiders'\n\n\n# Crawl responsibly by identifying yourself (and your website) on the user-agent\n#USER_AGENT = 'demo (+http://www.yourdomain.com)'\n\n# Obey robots.txt rules\nROBOTSTXT_OBEY = False\n\n# Configure maximum concurrent requests performed by Scrapy (default: 16)\nCONCURRENT_REQUESTS = 32\n\n# Configure a delay for requests for the same website (default: 0)\n# See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay\n# See also autothrottle settings and docs\n#DOWNLOAD_DELAY = 3\n# The download delay setting will honor only one of:\n#CONCURRENT_REQUESTS_PER_DOMAIN = 16\n#CONCURRENT_REQUESTS_PER_IP = 16\n\n# Disable cookies (enabled by default)\n#COOKIES_ENABLED = False\n\n# Disable Telnet Console (enabled by default)\n#TELNETCONSOLE_ENABLED = False\n\n# Override the default request headers:\n#DEFAULT_REQUEST_HEADERS = {\n#   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n#   'Accept-Language': 'en',\n#}\n\n# Enable or disable spider middlewares\n# See https://docs.scrapy.org/en/latest/topics/spider-middleware.html\n#SPIDER_MIDDLEWARES = {\n#    'demo.middlewares.DemoSpiderMiddleware': 543,\n#}\n\n# Enable or disable downloader middlewares\n# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html\nDOWNLOADER_MIDDLEWARES = {\n   'demo.middlewares.Puppeteer': 543,\n}\n\n# Enable or disable extensions\n# See https://docs.scrapy.org/en/latest/topics/extensions.html\n#EXTENSIONS = {\n#    'scrapy.extensions.telnet.TelnetConsole': None,\n#}\n\n# Configure item pipelines\n# See https://docs.scrapy.org/en/latest/topics/item-pipeline.html\n#ITEM_PIPELINES = {\n#    'demo.pipelines.DemoPipeline': 300,\n#}\n\n# Enable and configure the AutoThrottle extension (disabled by default)\n# See https://docs.scrapy.org/en/latest/topics/autothrottle.html\n#AUTOTHROTTLE_ENABLED = True\n# The initial download delay\n#AUTOTHROTTLE_START_DELAY = 5\n# The maximum download delay to be set in case of high latencies\n#AUTOTHROTTLE_MAX_DELAY = 60\n# The average number of requests Scrapy should be sending in parallel to\n# each remote server\n#AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0\n# Enable showing throttling stats for every response received:\n#AUTOTHROTTLE_DEBUG = False\n\n# Enable and configure HTTP caching (disabled by default)\n# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings\n#HTTPCACHE_ENABLED = True\n#HTTPCACHE_EXPIRATION_SECS = 0\n#HTTPCACHE_DIR = 'httpcache'\n#HTTPCACHE_IGNORE_HTTP_CODES = []\n#HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/demo/demo/spiders/__init__.py",
    "content": "# This package will contain the spiders of your Scrapy project\n#\n# Please refer to the documentation for information on how to create and manage\n# your spiders.\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/demo/demo/spiders/example.py",
    "content": "# -*- coding: utf-8 -*-\nimport scrapy\nfrom scrapy import Request\n\nclass ExampleSpider(scrapy.Spider):\n    name = 'example'\n    # allowed_domains = ['example.com']\n    start_urls = ['http://192.168.0.222:8888/']\n\n    def parse(self, response):\n        for a in response.xpath('//a'):\n            href=a.xpath('@href').extract_first()\n            text=a.xpath('text()').extract_first().strip()\n\n            print('网址:',href)\n            print('文本:',text)\n            print('-'*10)\n\n        for src in response.xpath('//img/@src').extract():\n            print('图片:', src)\n        \n        #TODO yield item\n        #scrapy crawl example  -s CLOSESPIDER_ITEMCOUNT=100\n        \n        # 重复访问\n        print('重复访问',response.url)\n        yield Request(url=response.url, callback=self.parse,dont_filter=True)\n        pass\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/demo/main.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/2/21 18:03\n# @File    : main.py\n\n\n\"\"\"\nmain.py: 在pycharm或vscode里单步调试\n\"\"\"\n\nfrom scrapy import cmdline\nfrom datetime import datetime\n\n# now = datetime.now().strftime('%Y-%m-%d_%H-%M')\n\ncmdline.execute(\"scrapy crawl example  -s CLOSESPIDER_ITEMCOUNT=1000\".split())\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/demo/scrapy.cfg",
    "content": "# Automatically created by: scrapy startproject\n#\n# For more information about the [deploy] section see:\n# https://scrapyd.readthedocs.io/en/latest/deploy.html\n\n[settings]\ndefault = demo.settings\n\n[deploy]\n#url = http://localhost:6800/\nproject = demo\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/docker-puppeteer-index.js",
    "content": "'use strict'\n\nconst express = require('express')\nconst qs = require('qs')\nconst { URL } = require('url')\nconst contentDisposition = require('content-disposition')\nconst createRenderer = require('./renderer')\n\nconst port = process.env.PORT || 3000\n\nconst app = express()\n\nlet renderer = null\n\n// Configure.\napp.set('query parser', s => qs.parse(s, { allowDots: true }))\napp.disable('x-powered-by')\n\n// Render url.\napp.use(async (req, res, next) => {\n  console.log(req.query)\n  let { url, type, filename, ...options } = req.query\n\n  if (!url) {\n    return res.status(400).send('Search with url parameter. For eaxample, ?url=http://yourdomain')\n  }\n\n  if (!url.includes('://')) {\n    url = `http://${url}`\n  }\n\n  try {\n    switch (type) {\n      case 'pdf':\n        const urlObj = new URL(url)\n        if (!filename) {\n          filename = urlObj.hostname\n          if (urlObj.pathname !== '/') {\n            filename = urlObj.pathname.split('/').pop()\n            if (filename === '') filename = urlObj.pathname.replace(/\\//g, '')\n            const extDotPosition = filename.lastIndexOf('.')\n            if (extDotPosition > 0) filename = filename.substring(0, extDotPosition)\n          }\n        }\n        if(!filename.toLowerCase().endsWith('.pdf')) {\n          filename += '.pdf';\n        }\n        const pdf = await renderer.pdf(url, options)\n        res\n          .set({\n            'Content-Type': 'application/pdf',\n            'Content-Length': pdf.length,\n            'Content-Disposition': contentDisposition(filename),\n          })\n          .send(pdf)\n        break\n\n      case 'screenshot':\n        const { screenshotType, buffer } = await renderer.screenshot(url, options)\n        res\n          .set({\n            'Content-Type': `image/${screenshotType}`,\n            'Content-Length': buffer.length,\n          })\n          .send(buffer)\n        break\n\n      default:\n        const html = await renderer.render(url, options)\n        res.status(200).send(html)\n    }\n  } catch (e) {\n    next(e)\n  }\n})\n\n// Error page.\napp.use((err, req, res, next) => {\n  console.error(err)\n  res.status(500).send('Oops, An expected error seems to have occurred.')\n})\n\n// Create renderer and start server.\ncreateRenderer({\n  ignoreHTTPSErrors: !!process.env.IGNORE_HTTPS_ERRORS,\n})\n  .then(createdRenderer => {\n    renderer = createdRenderer\n    console.info('Initialized renderer.')\n\n    app.listen(port, () => {\n      console.info(`Listen port on ${port}.`)\n    })\n  })\n  .catch(e => {\n    console.error('Fail to initialze renderer.', e)\n  })\n\n// Terminate process\nprocess.on('SIGINT', () => {\n  process.exit(0)\n})"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/index.html",
    "content": "<html>\n    <head>\n        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n        <title>{{.Title}}</title>\n       \n    </head>\n\n    <body>\n        <div>\n            <h1>{{.Title}}</h1>\n            <p>视频链接:\n                <a href=\"https://www.bilibili.com/video/av87182685/\" target=\"_blank\">\n                    Scrapy和Go爬虫速度比较，Go简直太快了！Python很难追上！\n                </a></p>\n            <!-- <img src=\"\"> -->\n            <div>\n                在这里用js动态添加a标签和img标签\n                <div id='link'>演示链接:</div>\n                演示图片:\n                <div id='image'></div>\n            </div>\n        </div>\n    </body>\n    \n    <script type=\"text/javascript\">\n        var aTag = document.createElement(\"a\");\n        aTag.innerHTML='我的GitHub网站'\n        aTag.setAttribute('href','https://github.com/makelove')\n        aTag.setAttribute('target','_blank')\n        var linkTag=document.getElementById('link')\n        linkTag.appendChild(aTag)\n\n        var imgTag = document.createElement(\"img\");\n        imgTag.setAttribute('src','http://books.toscrape.com/media/cache/2c/da/2cdad67c44b002e7ead0cc35693c0e8b.jpg')\n        imgTag.setAttribute('title','演示图片')\n        var imageTag=document.getElementById('image')\n        imageTag.innerHTML=imgTag.outerHTML\n    </script>\n</html>\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/js_server.go",
    "content": "/*\n@File    :   js_server.go\n@Time    :   2020/02/22 11:32:32\n@Author  :   play4fun\n@Desc    :   d\n*/\n\npackage main\n\nimport (\n\t\"fmt\"\n\t\"html/template\"\n\t\"net/http\"\n)\n\nfunc main() {\n\tfmt.Println(\"Open http://127.0.0.1:8888/\")\n\ttmpl := template.Must(template.ParseFiles(\"index.html\"))\n\n\tdata := struct {\n\t\tTitle string\n\t\t// Items []string\n\t}{\n\t\tTitle: \"Js动态页面演示\",\n\t\t// Items: []string{\n\t\t// \t\"My pictures\",\n\t\t// \t\"My dialog\",\n\t\t// },\n\t}\n\n\thttp.HandleFunc(\"/\", func(w http.ResponseWriter, r *http.Request) {\n\t\ttmpl.Execute(w, data)\n\t})\n\n\thttp.ListenAndServe(\"0.0.0.0:8888\", nil)\n}\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/js_server.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   js_server.py\n@Time    :   2020/02/23 09:53:30\n@Author  :   play4fun\n@Desc    :   https://www.w3cschool.cn/flask/flask_templates.html\n'''\n\nfrom flask import Flask, render_template\napp = Flask(__name__)\n\n\n@app.route('/', methods=[\"GET\"])\ndef index():\n    Title = \"Js动态页面演示\"\n    return render_template('index.html', Title=Title)\n\n\nif __name__ == '__main__':\n    app.run(host='0.0.0.0',port=8888,debug=True)\n"
  },
  {
    "path": "2020/2-22-Scrapy-Puppeteer-Js/templates/index.html",
    "content": "<html>\n    <head>\n        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n        <title>{{Title}}</title>\n       \n    </head>\n\n    <body>\n        <div>\n            <h1>{{Title}}</h1>\n            <p>视频链接:\n                <a href=\"https://www.bilibili.com/video/av87182685/\" target=\"_blank\">\n                    Scrapy和Go爬虫速度比较，Go简直太快了！Python很难追上！\n                </a></p>\n            <!-- <img src=\"\"> -->\n            <div>\n                在这里用js动态添加a标签和img标签\n                <div id='link'>演示链接:</div>\n                演示图片:\n                <div id='image'></div>\n            </div>\n        </div>\n    </body>\n    \n    <script type=\"text/javascript\">\n        var aTag = document.createElement(\"a\");\n        aTag.innerHTML='我的GitHub网站'\n        aTag.setAttribute('href','https://github.com/makelove')\n        aTag.setAttribute('target','_blank')\n        var linkTag=document.getElementById('link')\n        linkTag.appendChild(aTag)\n\n        var imgTag = document.createElement(\"img\");\n        imgTag.setAttribute('src','http://books.toscrape.com/media/cache/2c/da/2cdad67c44b002e7ead0cc35693c0e8b.jpg')\n        imgTag.setAttribute('title','演示图片')\n        var imageTag=document.getElementById('image')\n        imageTag.innerHTML=imgTag.outerHTML\n    </script>\n</html>\n"
  },
  {
    "path": "2020/2-23-压力测试-locust/README.md",
    "content": "# 2-23-压力测试-locust\n\n- 视频  [蝗虫来袭！你的服务器顶得住【压力测试】吗？locust](https://www.bilibili.com/video/av91066346/)\n\n- 参考 \n    - [locust是一个易于使用的，分布式的，用户负载测试工具](http://blog.timd.cn/python-locust/)\n- 常用的压力测试有\n    - Apache ab 命令行工具\n        - http://httpd.apache.org/docs/2.2/programs/ab.html\n    - Locust 蝗虫 https://locust.io/\n        - 案例文档 https://docs.locust.io/en/stable/quickstart.html\n        - 安装 pip3 install locust\n        - 好处是 可以编写Python程序，自定义测试流程。有后台界面\n\n- 测试\n    - ab －c表示并发数 －n表示请求数\n        - ab -c 50 -n 200 http://127.0.0.1:8080/  \n    -  Locust\n        - locust -f locust-get.py \n            - 打开浏览器 http://127.0.0.1:8089/\n        - 命令行运行\n            - locust -f locust-get.py --no-web -c 50 -r 200"
  },
  {
    "path": "2020/2-23-压力测试-locust/locust-get.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   locust-get.py\n@Time    :   2020/02/23 12:11:51\n@Author  :   play4fun\n@Desc    :   \n'''\n\n\n\nfrom locust import HttpLocust, TaskSet, task, Locust\n\n\n\ndef get(l):\n    uri = '/'\n    rs = l.client.get(uri)  \n\nclass UserTasks(TaskSet):\n    # 列出需要测试的任务形式一\n    tasks = [get]\n\n    # 列出需要测试的任务形式二\n    # @task\n    # def page404(self):\n    #     self.client.get(\"/does_not_exist\")\n\n\nclass WebsiteUser(HttpLocust):\n    host = \"http://127.0.0.1:8080/\"\n    min_wait = 2000\n    max_wait = 5000\n    task_set = UserTasks"
  },
  {
    "path": "2020/2-23-压力测试-locust/locust_file.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   locust_file.py\n@Time    :   2020/02/23 12:06:03\n@Author  :   play4fun\n@Desc    :   \n'''\n\nfrom locust import HttpLocust, TaskSet, between\n\ndef login(l):\n    l.client.post(\"/login\", {\"username\":\"ellen_key\", \"password\":\"education\"})\n\ndef logout(l):\n    l.client.post(\"/logout\", {\"username\":\"ellen_key\", \"password\":\"education\"})\n\ndef index(l):\n    l.client.get(\"/\")\n\ndef profile(l):\n    l.client.get(\"/profile\")\n\nclass UserBehavior(TaskSet):\n    tasks = {index: 2, profile: 1}"
  },
  {
    "path": "2020/2-23-压力测试-locust/server.go",
    "content": "/*\n\n对比 Python 和 Go 语言的每秒请求数\nhttps://www.oschina.net/translate/python-vs-go-requests-per-second\n\n\ncurl http://127.0.0.1:8080/\n\n压力测试\nab -q -c 50 -n 1000 http://127.0.0.1:8080/\n*/\n\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\n\t\"github.com/emicklei/go-restful\"\n)\n\nfunc main() {\n\tws := new(restful.WebService)\n\tws.Route(ws.GET(\"/\").To(hello))\n\trestful.Add(ws)\n\tfmt.Print(\"Server starting on port 8080\\n\")\n\tfmt.Print(\"open http://127.0.0.1:8080/\\n\")\n\thttp.ListenAndServe(\":8080\", nil)\n}\n\nfunc hello(req *restful.Request, resp *restful.Response) {\n\n\tb, _ := json.Marshal(article)\n\tio.WriteString(resp, string(b))\n}\n\ntype Article struct {\n\tName string\n\tBody string\n}\n\nvar article = Article{\"A Royal Baby\", \"A slow news week\"}\n"
  },
  {
    "path": "2020/2-24-Go-Module/README.md",
    "content": "# Go Module 包管理\n- 视频  [Go-Module包管理，怎样import子文件夹的变量或函数？](https://www.bilibili.com/video/av91313893/)\n\n- 参考\n    - [Go Modules 不完全教程](https://learnku.com/go/t/33859)\n    - [Break up go project into subfolders](https://stackoverflow.com/questions/23154898/break-up-go-project-into-subfolders)\n        - 很有用-GitHub 代码 https://github.com/J7mbo/go-subdirectories-with-modules\n    - GitHub\n        - https://github.com/jasonkeene/go-modules-demo\n        - 非常详细 https://github.com/go-modules-by-example/index\n\n- 总结\n    - 同一个文件夹内只能存在一个package，否则编译时会报错。\n        - go的package不局限于一个文件，可以由多个文件组成。\n    - 同一个文件夹内的所有文件，所有变量或函数可以互相调用，不分大小写，不得同名\n    - 子文件夹，也是不同的package ，也可互相导入\n    - go不要求package的名称和所在目录名相同，但是你最好保持相同，否则容易引起歧义。因为引入包的时候，go会使用子目录名作为包的路径，而你在代码中真正使用时，却要使用你package的名称。\n    - package与文件夹名相同\n\n- 与Python的区别\n    - Python通过文件名py来管理导入\n    - GO通过package来管理导入\n\n- demo 文件夹\n    - 创建模块\n        - go mod init a\n        - 生成go.mod\n    - 运行程序 go run .\n    - a.go\n        - package main\n        - 使用a2.go的变量，直接调用\n            - fmt.Println(\"a2.go abc2:\", abc2)\n        - 使用dir1/b.go的变量\n            - 变量名要大写\n            - import \"a/dir1\"\n            - fmt.Println(\"dir1/b.go bbb1:\", dir1.bbb1)\n    - a2.go\n        - package main\n            - 不能用其他包名 package xxx 会报错\n        - 变量 var abc2 = 2343\n    - dir1\n        - b.go\n            - 不需要创建模块go.mod\n            - package dir1\n            - 变量 var bbb1 = \"b.go bbb1\"\n                - 变量名要大写\n        - b2.go\n            - package dir1\n            - 函数名第一个字母，大写func T1() \n            - 使用dir2/d2.go的变量\n                - import \"a/dir2\"\n                - fmt.Println(\"dir2/d2.go ddd2:\", dir2.ddd2)\n    - dir2\n        - d2.go\n            - package dir2\n            - 变量 var ddd2 = \"d2.go ddd2\""
  },
  {
    "path": "2020/2-24-Go-Module/demo/a.go",
    "content": "/*\n@File    :   a.go\n@Time    :   2020/02/24 11:42:20\n@Author  :   play4fun\n@Desc    :   d\n*/\n\npackage main\n\nimport (\n\t\"a/dir1\"\n\t\"a/dir1/dir11\"\n\t\"fmt\"\n)\n\nfunc main() {\n\t//使用a2.go的变量，直接调用\n\tfmt.Println(\"a2.go abc2:\", abc2)\n\n\t// 使用dir1/b.go的变量\n\t// - import \"a/dir1\"\n\tfmt.Println(\"dir1/b.go bbb1:\", dir1.Bbb1)\n\t// 使用dir1/b2.go的函数\n\tdir1.T1()\n\n\t//使用子文件夹的子文件夹\n\tfmt.Println(\"a/dir1/dir11/b11.go B11:\", dir11.B11)\n\n}\n"
  },
  {
    "path": "2020/2-24-Go-Module/demo/a2.go",
    "content": "package main\n\nvar abc2 = 2343\n"
  },
  {
    "path": "2020/2-24-Go-Module/demo/dir1/b.go",
    "content": "package dir1\n\n// Bbb1 不是同一文件夹同一package引用它，要大写\nvar Bbb1 = \"b.go bbb1\"\n\n//int_fjdk 同一文件夹同一package引用它,可以小写\nvar int_fjdk = 234893\n"
  },
  {
    "path": "2020/2-24-Go-Module/demo/dir1/b2.go",
    "content": "package dir1\n\nimport (\n\t\"a/dir2d\"\n\t// \"a/fdjk\"\n\t\"fmt\"\n)\n\n//T1 备注，函数名第一个字母\nfunc T1() {\n\tfmt.Println(\"b2.go使用b.go:\", int_fjdk)\n\t// fmt.Println(\"fdjk:\", fdjk.Ddd2)\n\tfmt.Println(\"dir2/d2.go ddd2:\", dir2d.Ddd2)\n\n}\n"
  },
  {
    "path": "2020/2-24-Go-Module/demo/dir1/dir11/b11.go",
    "content": "package dir11\n\n// B11 不是同一文件夹同一package引用它，要大写\nvar B11 = \"b11.go B11\"\n"
  },
  {
    "path": "2020/2-24-Go-Module/demo/dir2d/d2.go",
    "content": "package dir2d\n\nvar Ddd2 = \"d2.go ddd2\"\n"
  },
  {
    "path": "2020/2-24-Go-Module/demo/dir2d/d21.go",
    "content": "package dir2d // fdjk\n//found packages dir2d (d2.go) and fdjk (d21.go) 在同一文件夹\n\nvar fj5dk = 324\n"
  },
  {
    "path": "2020/2-24-Go-Module/demo/go.mod",
    "content": "module a\n\ngo 1.13\n"
  },
  {
    "path": "2020/2-26-Go_Proxy_server/README.md",
    "content": "## 2-26-最简单的翻墙代理\n\n- 视频  \n    - 失效了。 [越狱？最简单的代理服务器Go，翻过防火墙](https://www.bilibili.com/video/av91817713/)\n    - 百度网盘\n        - 链接:https://pan.baidu.com/s/15qUFJKDMBDUl6ldlXh-zzQ  密码:jnxi\n    - 今日头条\n        - https://www.ixigua.com/home/1789618645372350/video/\n\n- 参考\n    - [chrome 67版本后无法拖拽离线安装CRX格式插件的解决方法](https://chromecj.com/utilities/2018-09/1525.html)\n    - [解决Chrome插件安装时程序包无效:\"CRX_HEADER_INVALID\"](https://blog.csdn.net/wst0717/article/details/88867047)\n\n- 单步调试\n    - curl -x 127.0.0.1:8081  http://httpbin.org/ip\n\n- 交叉编译 Linux\n    - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build .\n\n- 部署到服务器\n    - 端口\n    - 测试 curl -x 42.56.89.102:8081  https://httpbin.org/ip\n\n- host屏蔽域名 www.baidu.com\n    - 切换代理\n\n- 浏览器插件 https://proxy-switchyomega.com/\n    - 配置\n\n- 因为没有国外服务器，所以用【百度】来演示了。\n\n- 对代理进行【压力测试】？"
  },
  {
    "path": "2020/2-26-Go_Proxy_server/go.mod",
    "content": "module proxy_server\n\ngo 1.13\n"
  },
  {
    "path": "2020/2-26-Go_Proxy_server/proxy_server.go",
    "content": "/*\n@File    :   proxy_server1.go\n@Time    :   2020/02/24 20:55:11\n@Author  :   play4fun\n@Desc    :   d\n\n一个简单的Golang实现的HTTP Proxy\nhttps://www.flysnow.org/2016/12/24/golang-http-proxy.html\n使用HTTP／1.1协议中的CONNECT方法建立起来的隧道连接，实现的HTTP Proxy。\n这种代理的好处就是不用知道客户端请求的数据，只需要原封不动的转发就可以了，\n对于处理HTTPS的请求就非常方便了，不用解析他的内容，就可以实现代理。\n\n测试\ncurl -x 127.0.0.1:8081  http://httpbin.org/ip\ncurl -x 127.0.0.1:8081  https://httpbin.org/ip\n\ncurl -x 42.56.89.102:8081  https://httpbin.org/ip\n*/\n\npackage main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"net\"\n\t\"net/url\"\n\t\"strings\"\n)\n\nfunc main() {\n\tlog.SetFlags(log.LstdFlags | log.Lshortfile)\n\tl, err := net.Listen(\"tcp\", \":8081\") //监听端口\n\tif err != nil {\n\t\tlog.Panic(err)\n\t}\n\n\tfor {\n\t\tclient, err := l.Accept() //阻塞\n\n\t\tlog.Println(\"新请求\")\n\t\tif err != nil {\n\t\t\tlog.Panic(err)\n\t\t}\n\n\t\tgo handleClientRequest(client)\n\t}\n}\n\nfunc handleClientRequest(client net.Conn) {\n\tif client == nil {\n\t\treturn\n\t}\n\tdefer client.Close()\n\n\tvar b [1024]byte\n\tn, err := client.Read(b[:]) //读取请求\n\tif err != nil {\n\t\tlog.Println(err)\n\t\treturn\n\t}\n\n\t//解析请求参数\n\tvar method, host, address string\n\tfmt.Sscanf(string(b[:bytes.IndexByte(b[:], '\\n')]), \"%s%s\", &method, &host)\n\tlog.Println(\"Visit: \", host)\n\thostPortURL, err := url.Parse(host)\n\tif err != nil {\n\t\tlog.Println(err)\n\t\treturn\n\t}\n\n\tif hostPortURL.Opaque == \"443\" { //https访问\n\t\taddress = hostPortURL.Scheme + \":443\"\n\t} else { //http访问\n\t\tif strings.Index(hostPortURL.Host, \":\") == -1 { //host不带端口， 默认80\n\t\t\taddress = hostPortURL.Host + \":80\"\n\t\t} else {\n\t\t\taddress = hostPortURL.Host\n\t\t}\n\t}\n\n\t//获得了请求的host和port，就开始拨号吧\n\tserver, err := net.Dial(\"tcp\", address)\n\tif err != nil {\n\t\tlog.Println(err)\n\t\treturn\n\t}\n\tif method == \"CONNECT\" {\n\t\tfmt.Fprint(client, \"HTTP/1.1 200 Connection established\\r\\n\\r\\n\")\n\t} else {\n\t\tserver.Write(b[:n])\n\t}\n\t//进行转发\n\tgo io.Copy(server, client)\n\tio.Copy(client, server)\n}\n"
  },
  {
    "path": "2020/2-26-多点签到领积分/README.md",
    "content": "# 多点App签到领积分\n\n- 视频 [写Python自动【多点App签到领积分】，100积分兑换1元钱](https://www.bilibili.com/video/av91889395/)\n\n- 积分有什么用\n    - 下单的时候，使用积分兑换人民币\n\n- 抓包\n    - 签到\n    - 领取奖励\n    - 过滤 appapis\n\n\n- 编写Python程序\n    -  pbpaste |uncurl\n\n\n\n- 定时执行 每天10点1分 crontab \n    - 1 10 * * * /home/play/.py3/bin/python /home/play/WORK/checkIn.py > /home/play/WORK/checkIn.log"
  },
  {
    "path": "2020/2-26-多点签到领积分/demo1.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   demo1.py\n@Time    :   2020/02/26 15:57:31\n@Desc    :   \n'''\nimport requests\n\n\ndef main():\n    rs = requests.get(\"https://appapis.dmall.com/static/userIsCheckIn.jsonp?callback=jQuery22304504064425163671_1582705578650&venderId=1&_=1582705578651\",\n                      headers={\n                          \"Accept\": \"*/*\",\n                          \"Accept-Language\": \"zh-cn\",\n                          \"Host\": \"appapis.dmall.com\",\n                          \"Referer\": \"https://act.dmall.com/dac/signIn/index.html?dmShowTitleBar=false&dmfrom=wx&bounces=false&dmTransStatusBar=true\",\n                          \"User-Agent\": \"Mozilla/5.0 (iPod touch; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148Dmall/4.4.7\"\n                      },\n                      cookies={\n                          \"_utm_id\": \"42631642\",\n                          \"addr\": \"%E5%8C%97%E4%BA%AC%E5%B8%82%E6%B5%B7%E6%B7%80%E5%8C%BA%E4%B8%89%E7%BB%93%E4%B9%89%E9%BA%BB%E8%BE%A3%E9%BE%99%E8%99%BE%E9%94%A1%E7%BA%B8%E7%83%A7%E7%83%A4\",\n                          \"addrId\": \"\",\n                          \"appMode\": \"online\",\n                          \"appVersion\": \"4.4.7\",\n                          \"areaId\": \"110108\",\n                          \"bigdata\": \"\",\n                          \"businessCode\": \"2\",\n                          \"community\": \"%E4%B8%89%E7%BB%93%E4%B9%89%E9%BA%BB%E8%BE%A3%E9%BE%99%E8%99%BE%E9%94%A1%E7%BA%B8%E7%83%A7%E7%83%A4\",\n                          \"console_mode\": \"0\",\n                          \"data_seq\": \"4\",\n                          \"env\": \"app\",\n                          \"first_session_time\": \"1574310210261\",\n                          \"grayStoreId\": \"11480\",\n                          \"inited\": \"true\",\n                          \"lat\": \"40.043306\",\n                          \"lng\": \"116.185492\",\n                          \"platform\": \"IOS\",\n                          \"session_id\": \"66509D2F16AC414399D5FBF955E31E78\",\n                          \"storeGroupV4\": \"1-11480-1,2-11480-1,1-12672-86\",\n                          \"store_id\": \"11480\",\n                          \"tdc\": \"\",\n                          \"tempid\": \"C8AF4E0FA1D00002B22A17C019BDDDD0\",\n                          \"ticketName\": \"4484988D798A580F36FBF8455694C40250224A91CB8226F4B464582A6ADE8352947EA08F0657D8645D6D3041216E08E8E78F004AB9A14CAAC4BEACBC5C04C8990EF1D08CCA0B8B55295C1C8D938B8443377C2EECF18F2EC1A9871D44BBB01CA12135F3AC155D0B0E85A8F0C31A8FDAEFA297180361FBAEC03B90BE4AB177D191\",\n                          \"token\": \"12b731cd-27df-4ab5-b9c4-70bcf628b5fc\",\n                          \"updateTime\": \"1581561484000\",\n                          \"uuid\": \"ad5335126ca7762dd08ed9fafc49634de7834f51\",\n                          \"vender_id\": \"1\",\n                          \"web_session_count\": \"32\"\n                      },\n                      )\n    print(rs)\n    print(rs.headers)\n    print('-'*30)\n    print(\"Text\",rs.text)\n    pass\n\n\nif __name__ == \"__main__\":\n    main()\n    pass\n"
  },
  {
    "path": "2020/2-26-多点签到领积分/多点-签到-抓包.txt",
    "content": "多点\n签到\n\ncurl -H 'Host: appapis.dmall.com' -H 'Accept: */*' -H 'Cookie: first_session_time=1574310210261; web_session_count=1; addr=%E5%8C%97%E4%BA%AC%E5%B8%82%E6%B5%B7%E6%B7%80%E5%8C%BA%E7%99%BD%E5%AE%B6%E7%96%83%E5%B0%9A%E5%93%81%E5%9B%AD1%E5%8F%B7%E6%A5%BC; addrId=; appMode=online; appVersion=4.4.7; areaId=110108; bigdata=; businessCode=1; community=%E7%99%BD%E5%AE%B6%E7%96%83%E5%B0%9A%E5%93%81%E5%9B%AD1%E5%8F%B7%E6%A5%BC; env=app; lat=40.043246; lng=116.185641; platform=IOS; session_id=079C552208294D8C9CF5FC6B8604BEB5; storeGroupV4=1-11480-1,2-11480-1; store_id=11480; tdc=; tempid=C8AF4E0FA1D00002B22A17C019BDDDD0; ticketName=4484988D798A580F36FBF8455694C40250224A91CB8226F4B464582A6ADE8352947EA08F0657D8645D6D3041216E08E8E78F004AB9A14CAAC4BEACBC5C04C8990EF1D08CCA0B8B55295C1C8D938B8443377C2EECF18F2EC1A9871D44BBB01CA12135F3AC155D0B0E85A8F0C31A8FDAEFA297180361FBAEC03B90BE4AB177D191; token=12b731cd-27df-4ab5-b9c4-70bcf628b5fc; uuid=ad5335126ca7762dd08ed9fafc49634de7834f51; vender_id=1' -H 'User-Agent: Mozilla/5.0 (iPod touch; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148Dmall/4.4.7' -H 'Accept-Language: zh-cn' -H 'Referer: https://act.dmall.com/dac/signIn/index.html?dmShowTitleBar=false&dmfrom=wx&bounces=false&dmTransStatusBar=true' --compressed 'https://appapis.dmall.com/static/receiveReward.jsonp?callback=jQuery22308167890741502714_1574310205126&phone=17070258828&taskId=24354&isNew=1&_=1574310205134'\n\n\njQuery22308167890741502714_1574310205126(\n    {'result': {'code': '0000',\n  'data': {'rewardInfos': [\n      {'replenishSrc': 2,\n     'rewardCount': 2,\n     'rewardItemId': 24252,\n     'rewardName': '2积分',\n     \n     'rewardStatus': 4,\n     'rewardType': 2,\n     'rewardWay': 4,\n     'taskId': 24354},\n    {'batchId': 36369,\n     'replenishSrc': 2,\n     'rewardCount': 1,\n     'rewardItemId': 24253,\n     'rewardName': '0.1元话费券',\n     'rewardStatus': 4,\n     'rewardType': 1,\n     'rewardWay': 4,\n     'taskId': 24354}]},\n  'msg': '用户领取任务奖励成功'}}\n\n    )\n\n"
  },
  {
    "path": "2020/2-26-多点签到领积分/多点-领取奖励-抓包.txt",
    "content": "领取奖励\n\ncurl -H 'Host: appapis.dmall.com' -H 'Accept: */*' -H 'Cookie: first_session_time=1574310210261; web_session_count=1; addr=%E5%8C%97%E4%BA%AC%E5%B8%82%E6%B5%B7%E6%B7%80%E5%8C%BA%E7%99%BD%E5%AE%B6%E7%96%83%E5%B0%9A%E5%93%81%E5%9B%AD1%E5%8F%B7%E6%A5%BC; addrId=; appMode=online; appVersion=4.4.7; areaId=110108; bigdata=; businessCode=1; community=%E7%99%BD%E5%AE%B6%E7%96%83%E5%B0%9A%E5%93%81%E5%9B%AD1%E5%8F%B7%E6%A5%BC; env=app; lat=40.043246; lng=116.185641; platform=IOS; session_id=079C552208294D8C9CF5FC6B8604BEB5; storeGroupV4=1-11480-1,2-11480-1; store_id=11480; tdc=; tempid=C8AF4E0FA1D00002B22A17C019BDDDD0; ticketName=4484988D798A580F36FBF8455694C40250224A91CB8226F4B464582A6ADE8352947EA08F0657D8645D6D3041216E08E8E78F004AB9A14CAAC4BEACBC5C04C8990EF1D08CCA0B8B55295C1C8D938B8443377C2EECF18F2EC1A9871D44BBB01CA12135F3AC155D0B0E85A8F0C31A8FDAEFA297180361FBAEC03B90BE4AB177D191; token=12b731cd-27df-4ab5-b9c4-70bcf628b5fc; uuid=ad5335126ca7762dd08ed9fafc49634de7834f51; vender_id=1' -H 'User-Agent: Mozilla/5.0 (iPod touch; CPU iPhone OS 13_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148Dmall/4.4.7' -H 'Accept-Language: zh-cn' -H 'Referer: https://act.dmall.com/dac/signIn/index.html?dmShowTitleBar=false&dmfrom=wx&bounces=false&dmTransStatusBar=true' --compressed 'https://appapis.dmall.com/static/queryUserCheckInfo.jsonp?callback=jQuery22308167890741502714_1574310205126&isNew=1&phone=17070258828&apiVersion=4.4.7&platform=IOS&venderId=1&storeId=11480&addressId=&longitude=116.185641&latitude=40.043246&nowLongitude=&nowLatitude=&_=1574310205135'\n\n\njQuery22308167890741502714_1574310205126({'result':{\"code\":\"0000\",\"data\":{\"afterSignInImg\":\"common/c5bb5335-218c-4a04-9f8d-18f99dd9a74b\",\"beforSignInImg\":\"common/2818e420-650c-4712-b72a-a7a7cd9433be\",\"checkInCalendar\":[],\"checkInUserCount\":500067,\"currentCommonAddProgress\":[],\"currentMonthAddProgress\":[{\"activityId\":383,\"hidden\":false,\"progressBar\":1,\"requiredTimes\":15,\"rewardFinished\":false,\"rewards\":[{\"rewardCode\":\"33394\",\"rewardCount\":15,\"rewardItemId\":24258,\"rewardName\":\"15积分\",\"rewardType\":2,\"rewardWay\":4,\"taskId\":24359}],\"status\":1,\"taskId\":24359,\"type\":2,\"userId\":102173490},{\"activityId\":383,\"hidden\":false,\"progressBar\":1,\"requiredTimes\":20,\"rewardFinished\":false,\"rewards\":[{\"rewardCode\":\"33396\",\"rewardCount\":15,\"rewardItemId\":24259,\"rewardName\":\"15积分\",\"rewardType\":2,\"rewardWay\":4,\"taskId\":24360}],\"status\":1,\"taskId\":24360,\"type\":2,\"userId\":102173490},{\"activityId\":383,\"hidden\":false,\"progressBar\":1,\"requiredTimes\":30,\"rewardFinished\":false,\"rewards\":[{\"rewardCode\":\"33398\",\"rewardCount\":50,\"rewardItemId\":24260,\"rewardName\":\"50积分\",\"rewardType\":2,\"rewardWay\":4,\"taskId\":24361}],\"status\":1,\"taskId\":24361,\"type\":2,\"userId\":102173490}],\"currentMonthAddUpDays\":1,\"currentMonthContinueProgress\":[{\"activityId\":383,\"hidden\":false,\"progressBar\":1,\"requiredTimes\":1,\"rewardFinished\":true,\"rewards\":[{\"rewardCode\":\"33382\",\"rewardCount\":2,\"rewardItemId\":24252,\"rewardName\":\"2积分\",\"rewardType\":2,\"rewardWay\":4,\"taskId\":24354},{\"rewardCode\":\"33384\",\"rewardCount\":1,\"rewardItemId\":24253,\"rewardName\":\"0.1元话费券\",\"rewardType\":1,\"rewardWay\":4,\"taskId\":24354}],\"status\":3,\"taskId\":24354,\"type\":3,\"userId\":102173490},{\"activityId\":383,\"hidden\":false,\"progressBar\":1,\"requiredTimes\":3,\"rewardFinished\":false,\"rewards\":[{\"rewardCode\":\"33386\",\"rewardCount\":8,\"rewardItemId\":24254,\"rewardName\":\"8积分\",\"rewardType\":2,\"rewardWay\":4,\"taskId\":24356},{\"rewardCode\":\"33388\",\"rewardCount\":1,\"rewardItemId\":24255,\"rewardName\":\"0.3元话费券\",\"rewardType\":1,\"rewardWay\":4,\"taskId\":24356}],\"status\":1,\"taskId\":24356,\"type\":3,\"userId\":102173490},{\"activityId\":383,\"hidden\":false,\"progressBar\":1,\"requiredTimes\":7,\"rewardFinished\":false,\"rewards\":[{\"rewardCode\":\"33392\",\"rewardCount\":10,\"rewardItemId\":24257,\"rewardName\":\"10积分\",\"rewardType\":2,\"rewardWay\":4,\"taskId\":24358},{\"rewardCode\":\"33390\",\"rewardCount\":1,\"rewardItemId\":24256,\"rewardName\":\"1张补签卡\\t\",\"rewardType\":8,\"rewardWay\":4,\"taskId\":24358}],\"status\":1,\"taskId\":24358,\"type\":3,\"userId\":102173490}],\"currentMonthContinuousDays\":1,\"currentTime\":1574310218540,\"dailyRanking\":500002,\"firstTimeSignInProgress\":[],\"hasCheckIn\":true,\"image\":\"/userIcon/201904/67e25b4e-0546-4951-aa40-b4e79023958c\",\"notCurrentMonthAddProgress\":[],\"notCurrentMonthCommonAddProgress\":[],\"notCurrentMonthContinueProgress\":[],\"reCheckNum\":0,\"ruleUrl\":\"https://a.dmall.com/act/4QiMB0Iv6ZjRd.html\",\"score\":34,\"showCheckInManager\":true,\"signInBackgroundDefaultImg\":\"common/fa977ce6-b2de-45c2-a22c-59fde64b91ca\",\"signInManagerContext\":\"每天上午10点提醒，让您不错过每一个签到奖励！\",\"signInManagerTip\":\"（只有打开推送选项，才能启动该功能）\",\"signInManagerTitle\":\"签到小管家\",\"switchOn\":0,\"taskCenterUrl\":\"app://DMMyVIPPage?scrollToTask=true\",\"taskFinishUserCount\":510862,\"topSignAction\":[{\"imgUrl\":\"https://download.dmallcdn.com/837e350188034a319bfb65248a120c22.png\",\"name\":\"北京物美-230.png\",\"timestamp\":\"1574310206087\",\"url\":\"https://atlas.dmall.com/click?ext=aHR0cHM6Ly90LmRtYWxsLmNvbS8yeFZlYnc=&log=eyJhZGNyZWF0aXZlSWQiOiIxMzc0IiwiYWRjcmVhdGl2ZVR5cGUiOiIxIiwiYWRwbGFuSWQiOiIzMDYiLCJhZHVuaXRJZCI6IjEzNTciLCJhcGlWZXJzaW9uIjoiMS4wIiwiYXBwVmVyc2lvbiI6IkFUTC1EbWEtUzFMT3dMeTAiLCJsb2dJZCI6IjcyZjEwY2E3LWU0ZjQtNDJmZi05ZDhlLTMwMWM3YzQ2MmE3OCIsInByb2plY3QiOiJhdGxhc19yZXBvcnRfZGF0YSIsInN5c3RlbSI6ImF0bGFzLmRtYWxsLmNvbSJ9\"},{\"imgUrl\":\"https://download.dmallcdn.com/2f58a534684a440ca5c7bf0b2100dd85.png\",\"name\":\"常规.png\",\"timestamp\":\"1574310206087\",\"url\":\"https://atlas.dmall.com/click?ext=aHR0cHM6Ly9hLmRtYWxsLmNvbS9hY3QvelQwZTdqdUFGNUsuaHRtbD9ub3Bvcz0xJnRwYz1hXzE1Mjgx&log=eyJhZGNyZWF0aXZlSWQiOiIxNjI5IiwiYWRjcmVhdGl2ZVR5cGUiOiIxIiwiYWRwbGFuSWQiOiIzMDUiLCJhZHVuaXRJZCI6IjE2MjMiLCJhcGlWZXJzaW9uIjoiMS4wIiwiYXBwVmVyc2lvbiI6IkFUTC1EbWEtUFZURzhySmsiLCJsb2dJZCI6ImM5MmQxZWIzLTI0NzktNDM0Ny04MGNmLWRkZTZhODQ0MTI2OSIsInByb2plY3QiOiJhdGxhc19yZXBvcnRfZGF0YSIsInN5c3RlbSI6ImF0bGFzLmRtYWxsLmNvbSJ9\"},{\"imgUrl\":\"https://download.dmallcdn.com/6c80a18f94a440e8ac39323e5da27750.png\",\"name\":\"光大.png\",\"timestamp\":\"1574310206087\",\"url\":\"https://atlas.dmall.com/click?ext=aHR0cHM6Ly9hLmRtYWxsLmNvbS9hY3QvRnFKam9DWUs4VXhRcndXLmh0bWw=&log=eyJhZGNyZWF0aXZlSWQiOiI0NDEiLCJhZGNyZWF0aXZlVHlwZSI6IjEiLCJhZHBsYW5JZCI6IjIzNSIsImFkdW5pdElkIjoiNDI1IiwiYXBpVmVyc2lvbiI6IjEuMCIsImFwcFZlcnNpb24iOiJBVEwtRG1hLVlBeGEyY21rIiwibG9nSWQiOiJhNmU3ZGJiZi02MmE3LTQxZDctODMyNC05ODZkMzBmYTYwMGIiLCJwcm9qZWN0IjoiYXRsYXNfcmVwb3J0X2RhdGEiLCJzeXN0ZW0iOiJhdGxhcy5kbWFsbC5jb20ifQ==\"},{\"imgUrl\":\"https://download.dmallcdn.com/1b9685d5059049758219297294ceb6b6.png\",\"name\":\"124.png\",\"timestamp\":\"1574310206087\",\"url\":\"https://atlas.dmall.com/click?ext=aHR0cHM6Ly90LmRtYWxsLmNvbS96NUNORTk=&log=eyJhZGNyZWF0aXZlSWQiOiI5MzAiLCJhZGNyZWF0aXZlVHlwZSI6IjEiLCJhZHBsYW5JZCI6IjMwMyIsImFkdW5pdElkIjoiOTEzIiwiYXBpVmVyc2lvbiI6IjEuMCIsImFwcFZlcnNpb24iOiJBVEwtRG1hLVA0QkoyY0pnIiwibG9nSWQiOiJlYjRiNzYxNi0xYWU3LTQ1OWMtYjkxMi1mOGY2ZDkzYzRiZWIiLCJwcm9qZWN0IjoiYXRsYXNfcmVwb3J0X2RhdGEiLCJzeXN0ZW0iOiJhdGxhcy5kbWFsbC5jb20ifQ==\"}],\"userCheckInRecord\":[{\"checkInDate\":1574310206000,\"created\":1574310205000,\"ranking\":500002,\"reCheckInFlag\":-1,\"userId\":102173490}]},\"msg\":\"获取连续和累计签到数据成功\"}})"
  },
  {
    "path": "2020/2-29-Docker-WeChat/README.md",
    "content": "\n\n## 在Docker 运行 微信Windows版\n\n- 视频  [微信营销？在Docker运行微信Windows版，机器人自动回复淘口令](https://www.bilibili.com/video/av92594352)\n\n- 参考\n    - [DoChat-Dockerized WeChat (盒装微信) ](https://github.com/huan/docker-wechat)\n        - https://hub.docker.com/r/zixia/wechat\n        - docker pull zixia/wechat\n    - https://github.com/bestwu/docker-wechat\n        - 2019年10月17日[Linux 下 完美运行 wechat](https://www.kpromise.top/run-wechat-in-linux/)\n        - 本镜像基于深度操作系统 https://hub.docker.com/r/bestwu/wechat\n        - docker pull bestwu/wechat\n\n- 要求\n    - Ubuntu19.10，我使用VMware虚拟机\n    - 安装Docker\n        - sudo apt update && apt install docker.io\n    - 微信测试账号\n    - 新建DoChat和WeChatFiles文件夹\n    - 检查输出\n        -  sudo docker logs -f --tail 30 wechat\n\n```\nsudo docker run -d --name wechat --device /dev/snd \\\n    -v /tmp/.X11-unix:/tmp/.X11-unix \\\n    -v $HOME/WeChatFiles:/WeChatFiles \\\n    -e DISPLAY=unix$DISPLAY \\\n    -e XMODIFIERS=@im=fcitx \\\n    -e QT_IM_MODULE=fcitx \\\n    -e GTK_IM_MODULE=fcitx \\\n    -e AUDIO_GID=`getent group audio | cut -d: -f3` \\\n    -e GID=`id -g` \\\n    -e UID=`id -u` \\\n    bestwu/wechat\n```\n"
  },
  {
    "path": "2020/2-3-Chrome-extensions/README.md",
    "content": "- 视频： [谷歌浏览器插件开发-文章关键词高亮显示](https://www.bilibili.com/video/av86550145/)"
  },
  {
    "path": "2020/2-3-Chrome-extensions/content_scripts和background的消息传递.md",
    "content": "- 视频： \n\n\nhttps://blog.csdn.net/qq_35430000/article/details/79421544\n\n4.3. background\n后台（姑且这么翻译吧），是一个常驻的页面，它的生命周期是插件中所有类型页面中最长的，它随着浏览器的打开而打开，随着浏览器的关闭而关闭，所以通常把需要一直运行的、启动就运行的、全局的代码放在background里面。\nbackground的权限非常高，几乎可以调用所有的Chrome扩展API（除了devtools），而且它可以无限制跨域，也就是可以跨域访问任何网站而无需要求对方设置CORS。\n\n然后会生成一个.crx文件，要发布到Google应用商店的话需要先登录你的Google账号，然后花5个$注册为开发者，本人太穷，就懒得亲自验证了，有发布需求的自己去整吧。\n\n\n插件要实现一些ajax请求，都得通通搬到background里实现。\n\n\n- 消息传递 参考\n    - [Message Passing](https://developer.chrome.com/extensions/messaging)\n        - 长连接 Long-lived connections\n    - chrome.runtime.sendMessage的回调函数默认是同步的，而且超时后直接执行，返回undefined，如果要异步执行，必须在处理函数中return true\n        - https://blog.csdn.net/anjingshen/article/details/75579521"
  },
  {
    "path": "2020/2-3-Chrome-extensions/参考.md",
    "content": "- 参考文章\n    - 简单-[谷歌浏览器插件开发](https://blog.csdn.net/u012865381/article/details/78645215)\n    - 齐全详细 [Chrome插件(扩展)开发全攻略（干货）](https://blog.csdn.net/qq_35430000/article/details/79421544)\n        - 本文所有涉及到的大部分代码均在这个demo里面：https://github.com/sxei/chrome-plugin-demo\n    - [一篇文章教你顺利入门和开发chrome扩展程序（插件）](https://juejin.im/post/5c135a275188257284143418)\n    - [谷歌(Chrome)浏览器插件开发教程](https://www.jianshu.com/p/51c650f98d9c)\n\n- 开源插件\n    - 简悦 ( SimpRead ) - 让你瞬间进入沉浸式阅读的扩展 http://ksria.com/simpread\n        - https://github.com/Kenshin/simpread\n    - [双击单词高亮](https://github.com/qishibo/highlightCode\n)\n    - 1\n    \n- [基于Chrome插件实现支持CORS的本地开发代理](https://juejin.im/post/5b4c821c6fb9a04f9c43b700)\n\n- [Chrome插件fetch被CORB拦截](https://segmentfault.com/q/1010000018608266)\n\n- [Cross-Origin Read Blocking (CORB)](https://juejin.im/post/5cc2e3ecf265da03904c1e06)\n\n- [Flask: Ajax 设置Access-Control-Allow-Origin实现跨域访问；Ajax页面底部自动加载](https://blog.csdn.net/Kevin_QQ/article/details/51761654)\n\n- [How to avoid Cross-Origin Read Blocking(CORB) in a chrome web extension](https://stackoverflow.com/questions/54786635/how-to-avoid-cross-origin-read-blockingcorb-in-a-chrome-web-extension)\n\n- [HTML色彩表格工具](https://html-color-codes.info/chinese/)\n- [javascript 查找文本并高亮显示](https://www.cnblogs.com/joyho/articles/3510388.html)"
  },
  {
    "path": "2020/2-4-App-Store/怎样做一个像 【七麦数据】那样的网站.txt",
    "content": "怎样做一个像 【七麦数据】那样的网站？\nhttps://www.qimai.cn/\n\n- 视频: [怎样抓取AppStore数据？做一个【七麦数据】网站，赚广告费](https://www.bilibili.com/video/av86658720/)\n\n- 获取数据\n从App Store获取数据\niPhone越狱，抓包\n购买别人已经越狱好的iPhone\n\n抓包工具\nCharles\nFiddler\nWireshark\n\nApp Store的数据接口\nnode.js 模块\n1.榜单列表\n2.关键词\n关键词 流行度\n\n3.根据关键词搜索App，得到App列表\n4.App列表->获取App信息(关键词)，评分ratings\n5.根据关键词搜索App，刷广告列表。目的1：有哪些App投放了广告，目的2：自己投放的广告，有没有展示\n6.某App想投放广告，可以看一下自己的关键词有哪些App竞争对手，投放了多少广告\n7.广告后台，编写算法，App-关键词的关系，精准投放广告。赚取 广告费。用户搜索App时，会出现广告\n8.App趋势报告，排名，类别内排名\n\n不同国家\n\n\n爬虫架构\nscrapy+Redis+MongoDB\nIP代理，购买服务，或自己搭建Squid代理服务-阿里云每个服务器可以领取20个IP\n有瓶颈\n解决：\n    异步asyncio\n    Go语言,很快\n\n数据库\nMongoDB 数据很增长很快\n\n\n网站架构\nNginx+Tomcat+Spring+MySQL+缓存\n前端\nvue"
  },
  {
    "path": "2020/2-4-App-Store/苹果 接口 node-js.txt",
    "content": "苹果 接口 node.js \n苹果App store 抓取API\nhttps://github.com/facundoolano/app-store-scraper \n安装\nnpm install -g app-store-scraper\n\n(.py3) localhost:~ play$ npm install -g app-store-scraper\n+ app-store-scraper@0.16.2\nadded 93 packages from 164 contributors in 5.22s\n\n\nhttps://itunes.apple.com/lookup?id=962194608\n\n\n测试\n命令行输入node\nvar store = require('app-store-scraper');\nstore.app({id: 553834731}).then(console.log).catch(console.log);\n\nstore.list({\n  collection: store.collection.TOP_FREE_IPAD,\n  category: store.category.GAMES_ACTION,\n  num: 2\n}).then(console.log).catch(console.log);\n\nstore.search({\n  term: 'panda',\n  num: 2,\n  page: 3,\n  country : 'cn',\n  lang: 'lang'\n}).then(console.log).catch(console.log);\n\nstore.reviews({\n  appId: 'com.midasplayer.apps.candycrushsaga',\n  sort: store.sort.HELPFUL,\n  page: 2\n}).then(console.log).catch(console.log);\n\nstore.ratings({\n  appId: '962194608',\n}).then(console.log).catch(console.log);"
  },
  {
    "path": "2020/2-5-Go语言入门/README.md",
    "content": "## Go语言快速入门上手-资料参考\n\n- 视频: [最快的Go语言入门指南！！资料参考](https://www.bilibili.com/video/av86957359/)\n\n- 安装参考 https://www.jianshu.com/p/79bdd20c46cf\n\n- 设置环境变量 GOPROXY=\"https://goproxy.cn\"\n\n- 编译器IDE\n    - vscode  免费，要安装插件\n    - Goland  需要破解 https://www.jetbrains.com/go/\n    - Sublime 免费，不友好，没有代码提示\n\n- 学习资料\n    - [Go by Example 中文](https://books.studygolang.com/gobyexample/)\n        - https://gobyexample.com/\n        - 代码 https://github.com/mmcgrana/gobyexample\n    - 官方example\n        - https://github.com/golang/example/\n    - Go并发编程实战 https://github.com/gopcp/example.v2\n    - Go语言实战 https://github.com/goinaction/code"
  },
  {
    "path": "2020/2-5-TTS-Moviepy/README.md",
    "content": "\n- 视频: [营销号利器？讯飞语音合成TTS+Moivepy=自动合成视频](https://www.bilibili.com/video/av86838467/)"
  },
  {
    "path": "2020/2-5-TTS-Moviepy/TTS/Install.txt",
    "content": "\n安装\npip3 install websocket\npip3 install websocket_client\n"
  },
  {
    "path": "2020/2-5-TTS-Moviepy/TTS/config.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020-01-18 20:29\n# @File    : config.py\n\n\n\"\"\"\nconfig.py:\n\"\"\"\n\nAPPID = 'x'\nAPIKey = 'x'\nAPISecret = 'x'\n"
  },
  {
    "path": "2020/2-5-TTS-Moviepy/TTS/xf_service.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020-01-18 20:25\n# @File    : xf_service.py\n\n\n\"\"\"\nxf_service.py:\n\"\"\"\n\n# import websocket\nfrom websocket import create_connection\nimport datetime\nimport hashlib\nimport base64\nimport hmac\nimport json\nfrom urllib.parse import urlencode\nimport os\nfrom wsgiref.handlers import format_date_time\nfrom datetime import datetime\nfrom time import mktime\n\n\nclass XFtts(object):\n    # 初始化\n    def __init__(self, APPID, APIKey, APISecret, ):\n        self.APPID = APPID\n        self.APIKey = APIKey\n        self.APISecret = APISecret\n        # self.Text = Text\n\n        # 公共参数(common)\n        self.CommonArgs = {\"app_id\": self.APPID}\n        # 业务参数(business)，更多个性化参数可在官网查看\n        self.BusinessArgs = {\"aue\": \"raw\", \"auf\": \"audio/L16;rate=16000\", \"vcn\": \"xiaoxue\", \"tte\": \"utf8\", \"ent\": \"aisound\"}#TODO\n        # self.Data = {\"status\": 2, \"text\": str(base64.b64encode(self.Text.encode('utf-8')), \"UTF8\")}\n\n        # 使用小语种须使用以下方式，此处的unicode指的是 utf16小端的编码方式，即\"UTF-16LE\"”\n        # self.Data = {\"status\": 2, \"text\": str(base64.b64encode(self.Text.encode('utf-16')), \"UTF8\")}\n\n        #\n        self.url = self.create_url()\n\n    # 生成url\n    def create_url(self):\n        url = 'wss://tts-api.xfyun.cn/v2/tts'\n        # 生成RFC1123格式的时间戳\n        now = datetime.now()\n        date = format_date_time(mktime(now.timetuple()))\n\n        # 拼接字符串\n        signature_origin = \"host: \" + \"ws-api.xfyun.cn\" + \"\\n\"\n        signature_origin += \"date: \" + date + \"\\n\"\n        signature_origin += \"GET \" + \"/v2/tts \" + \"HTTP/1.1\"\n        # 进行hmac-sha256进行加密\n        signature_sha = hmac.new(self.APISecret.encode('utf-8'), signature_origin.encode('utf-8'),\n                                 digestmod=hashlib.sha256).digest()\n        signature_sha = base64.b64encode(signature_sha).decode(encoding='utf-8')\n\n        authorization_origin = \"api_key=\\\"%s\\\", algorithm=\\\"%s\\\", headers=\\\"%s\\\", signature=\\\"%s\\\"\" % (\n            self.APIKey, \"hmac-sha256\", \"host date request-line\", signature_sha)\n        authorization = base64.b64encode(authorization_origin.encode('utf-8')).decode(encoding='utf-8')\n        # 将请求的鉴权参数组合为字典\n        # authorization='YXBpX2tleT0iODc1YmQ5OGNmOTJmZTE0OGQxNDU5ODFiZjZmNGJhMGEiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0ia3RlelJoV2lMS2tvbW9rbXcxZDhvZ1Q5WE5Obld1ZWhqcjFWUVhleFZkTT0i'\n        v = {\n            \"authorization\": authorization,\n            \"date\": date,\n            \"host\": \"ws-api.xfyun.cn\"\n        }\n        # 拼接鉴权参数，生成url\n        url = url + '?' + urlencode(v)\n        # print(\"date: \", date)\n        # print(\"v: \", v)\n        # 此处打印出建立连接时候的url,参考本demo的时候可取消上方打印的注释，比对相同参数时生成的url与自己代码生成的url是否一致\n        # print('websocket url :', url)\n        # url='wss://tts-api.xfyun.cn/v2/tts?authorization=YXBpX2tleT0iODc1YmQ5OGNmOTJmZTE0OGQxNDU5ODFiZjZmNGJhMGEiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0iU0hnZ1lLa2c4Y0xUV25BdTNTNGkwak90YzhYNnM1WENrTFFIUHRLekc0VT0i&date=Sat,%2004%20Jan%202020%2004:19:03%20GMT&host=ws-api.xfyun.cn'\n        return url\n\n    def say(self, sentens,speaker='xiaoxue'):#发音人\n        print(sentens)\n        text = str(base64.b64encode(sentens.encode('utf-8')), \"UTF8\")\n        # print(text)\n        self.BusinessArgs['vcn']=speaker\n\n        Data = {\"status\": 2, \"text\": text}\n        d = {\"common\": self.CommonArgs,\n             \"business\": self.BusinessArgs,\n             \"data\": Data,\n             }#传参\n        dt = json.dumps(d)\n        print(d)\n        # if not ws.connected:\n        #     print('重新连接ws')\n        #     # uri = wsParam.create_url()\n        #     ws = create_connection(uri)\n        ws = create_connection(self.create_url())\n        ws.send(dt)\n        print('-' * 30)\n\n        print('接收信息')\n        audiosum = bytes()\n        while True:\n            message = ws.recv()\n            # print(message)\n            try:\n                message = json.loads(message)\n                code = message[\"code\"]\n                sid = message[\"sid\"]\n                audio = message[\"data\"][\"audio\"]\n                audio = base64.b64decode(audio)\n                status = message[\"data\"][\"status\"]\n\n                if status == 2:\n                    audiosum += audio\n\n                    print(\"ws is closed\")\n                    ws.close()\n\n                    # wav_path = f'./wav-{index}.wav'\n                    # wav_path = f'{dir}/{index}.wav'\n                    # with wave.open(wav_path, 'wb') as wavfile:\n                    #     wavfile.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))\n                    #     wavfile.writeframes(audiosum)  # TODO byteIO ？\n                    # print('写入 ', wav_path)\n                    # rsd[index] = {'sentens': sentens, 'file': wav_path}\n\n                    return audiosum\n                    # break\n\n                if code != 0:\n                    errMsg = message[\"message\"]\n                    print(\"sid:%s call error:%s code is:%s\" % (sid, errMsg, code))\n                else:\n                    audiosum += audio\n                    continue\n\n            except Exception as e:\n                print(\"receive msg,but parse exception:\", e)\n\n        pass\n\n\ndef tts_say_wave(wav_path,text):\n    import wave\n    from config import APIKey, APISecret, APPID\n    wsParam = XFtts(APPID=APPID,\n                    APIKey=APIKey,\n                    APISecret=APISecret, )\n    \n    audiosum = wsParam.say(text)\n    \n    # audiosum += audio\n    with wave.open(wav_path, 'wb') as wavfile:\n        wavfile.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))\n        wavfile.writeframes(audiosum)\n    print('写入 ', wav_path)\n\n    pass\n\n\ndef main():\n    wav_path = f'test1.wav'\n    text = '而除了靠免费盗版片获取流量，以广告等方式变现的途径外，更直接的盈利方式就是直接售卖盗版资源。2019年4月，媒体报道称河南公安机关已打击2个制作销售高清盗版电影的犯罪团伙，截止案发，这2个团伙共制作盗版影片320余部，初步估算非法获利700余万元。'\n    tts_say_wave(wav_path,text)\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2020/2-5-TTS-Moviepy/TTS/语音合成自动视频.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 讯飞语音合成TTS+Moivepy=自动合成视频\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 31,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from moviepy.editor import AudioFileClip,ImageClip,ImageSequenceClip,CompositeVideoClip,TextClip,concatenate_videoclips\\n\",\n    \"import os\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 41,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['黄鹤楼送孟浩然之广陵', '唐代:李白', '故人西辞黄鹤楼，', '烟花三月下扬州。', '孤帆远影碧空尽，', '唯见长江天际流。']\"\n      ]\n     },\n     \"execution_count\": 41,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"#https://so.gushiwen.org/search.aspx?value=%E9%BB%84%E9%B9%A4%E6%A5%BC\\n\",\n    \"txt='''黄鹤楼送孟浩然之广陵\\n\",\n    \"唐代:李白\\n\",\n    \"故人西辞黄鹤楼，\\n\",\n    \"烟花三月下扬州。\\n\",\n    \"孤帆远影碧空尽，\\n\",\n    \"唯见长江天际流。'''\\n\",\n    \"tl=txt.split('\\\\n')\\n\",\n    \"tl\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 33,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from xf_service import tts_say_wave\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 34,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"黄鹤楼送孟浩然之广陵\\n\",\n      \"{'common': {'app_id': '4f979d67'}, 'business': {'aue': 'raw', 'auf': 'audio/L16;rate=16000', 'vcn': 'xiaoxue', 'tte': 'utf8', 'ent': 'aisound'}, 'data': {'status': 2, 'text': '6buE6bmk5qW86YCB5a2f5rWp54S25LmL5bm/6Zm1'}}\\n\",\n      \"------------------------------\\n\",\n      \"接收信息\\n\",\n      \"ws is closed\\n\",\n      \"写入  wav/poem-0.wav\\n\",\n      \"唐代:李白\\n\",\n      \"{'common': {'app_id': '4f979d67'}, 'business': {'aue': 'raw', 'auf': 'audio/L16;rate=16000', 'vcn': 'xiaoxue', 'tte': 'utf8', 'ent': 'aisound'}, 'data': {'status': 2, 'text': '5ZSQ5LujOuadjueZvQ=='}}\\n\",\n      \"------------------------------\\n\",\n      \"接收信息\\n\",\n      \"ws is closed\\n\",\n      \"写入  wav/poem-1.wav\\n\",\n      \"故人西辞黄鹤楼，\\n\",\n      \"{'common': {'app_id': '4f979d67'}, 'business': {'aue': 'raw', 'auf': 'audio/L16;rate=16000', 'vcn': 'xiaoxue', 'tte': 'utf8', 'ent': 'aisound'}, 'data': {'status': 2, 'text': '5pWF5Lq66KW/6L6e6buE6bmk5qW877yM'}}\\n\",\n      \"------------------------------\\n\",\n      \"接收信息\\n\",\n      \"ws is closed\\n\",\n      \"写入  wav/poem-2.wav\\n\",\n      \"烟花三月下扬州。\\n\",\n      \"{'common': {'app_id': '4f979d67'}, 'business': {'aue': 'raw', 'auf': 'audio/L16;rate=16000', 'vcn': 'xiaoxue', 'tte': 'utf8', 'ent': 'aisound'}, 'data': {'status': 2, 'text': '54Of6Iqx5LiJ5pyI5LiL5oms5bee44CC'}}\\n\",\n      \"------------------------------\\n\",\n      \"接收信息\\n\",\n      \"ws is closed\\n\",\n      \"写入  wav/poem-3.wav\\n\",\n      \"孤帆远影碧空尽，\\n\",\n      \"{'common': {'app_id': '4f979d67'}, 'business': {'aue': 'raw', 'auf': 'audio/L16;rate=16000', 'vcn': 'xiaoxue', 'tte': 'utf8', 'ent': 'aisound'}, 'data': {'status': 2, 'text': '5a2k5biG6L+c5b2x56Kn56m65bC977yM'}}\\n\",\n      \"------------------------------\\n\",\n      \"接收信息\\n\",\n      \"ws is closed\\n\",\n      \"写入  wav/poem-4.wav\\n\",\n      \"唯见长江天际流。\\n\",\n      \"{'common': {'app_id': '4f979d67'}, 'business': {'aue': 'raw', 'auf': 'audio/L16;rate=16000', 'vcn': 'xiaoxue', 'tte': 'utf8', 'ent': 'aisound'}, 'data': {'status': 2, 'text': '5ZSv6KeB6ZW/5rGf5aSp6ZmF5rWB44CC'}}\\n\",\n      \"------------------------------\\n\",\n      \"接收信息\\n\",\n      \"ws is closed\\n\",\n      \"写入  wav/poem-5.wav\\n\",\n      \"[('wav/poem-0.wav', '黄鹤楼送孟浩然之广陵'), ('wav/poem-1.wav', '唐代:李白'), ('wav/poem-2.wav', '故人西辞黄鹤楼，'), ('wav/poem-3.wav', '烟花三月下扬州。'), ('wav/poem-4.wav', '孤帆远影碧空尽，'), ('wav/poem-5.wav', '唯见长江天际流。')]\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"#先TTS，生成语音文件\\n\",\n    \"poem_wav=[]\\n\",\n    \"for index,sens in enumerate(tl):\\n\",\n    \"    fp=f'wav/poem-{index}.wav'\\n\",\n    \"    tts_say_wave(fp,sens)\\n\",\n    \"    poem_wav.append((fp,sens))\\n\",\n    \"print(poem_wav)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"1.图片轮播\\n\",\n    \"2.音频合并，追加\\n\",\n    \"3.图片，音频合并\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 35,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"['images/242.jpg', 'images/241.jpg', 'images/243.jpg', 'images/240.jpg']\\n\",\n      \"['images/240.jpg', 'images/241.jpg', 'images/242.jpg', 'images/243.jpg']\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"images=[f'images/{img}' for img in os.listdir('images') if img.endswith('jpg') ]\\n\",\n    \"print(images)\\n\",\n    \"images=sorted(images)\\n\",\n    \"print(images)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 36,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"(6, 4)\"\n      ]\n     },\n     \"execution_count\": 36,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"len(tl),len(images)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 37,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"font='Microsoft-YaHei'\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 42,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"wav/poem-0.wav 黄鹤楼送孟浩然之广陵\\n\",\n      \"wav/poem-1.wav 唐代:李白\\n\",\n      \"wav/poem-2.wav 故人西辞黄鹤楼，\\n\",\n      \"wav/poem-3.wav 烟花三月下扬州。\\n\",\n      \"wav/poem-4.wav 孤帆远影碧空尽，\\n\",\n      \"wav/poem-5.wav 唯见长江天际流。\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"acList=[]\\n\",\n    \"for index,(fp,title) in enumerate(poem_wav):\\n\",\n    \"    print(fp,title)\\n\",\n    \"    #图片+字幕+声音\\n\",\n    \"    tc=TextClip(title, font=font, fontsize=30, color='white').set_pos(('center','bottom'))\\n\",\n    \"    ac=AudioFileClip(fp)\\n\",\n    \"    #每隔几个声音再更换相片\\n\",\n    \"    im=ImageClip(images[index%len(images)]).resize(height=576,width=720)\\n\",\n    \"    im2=im.set_audio(ac).set_duration(ac.duration)\\n\",\n    \"    cv=CompositeVideoClip([im2,tc])\\n\",\n    \"    cv2=cv.set_duration(im2.duration).resize(height=576,width=720)\\n\",\n    \"    \\n\",\n    \"    acList.append(cv2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 39,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[<moviepy.video.compositing.CompositeVideoClip.CompositeVideoClip at 0x7f62848e16d8>,\\n\",\n       \" <moviepy.video.compositing.CompositeVideoClip.CompositeVideoClip at 0x7f6284688198>,\\n\",\n       \" <moviepy.video.compositing.CompositeVideoClip.CompositeVideoClip at 0x7f628430dd30>,\\n\",\n       \" <moviepy.video.compositing.CompositeVideoClip.CompositeVideoClip at 0x7f62841746a0>,\\n\",\n       \" <moviepy.video.compositing.CompositeVideoClip.CompositeVideoClip at 0x7f62842f28d0>,\\n\",\n       \" <moviepy.video.compositing.CompositeVideoClip.CompositeVideoClip at 0x7f6284b1ef98>]\"\n      ]\n     },\n     \"execution_count\": 39,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"acList\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 40,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"chunk:  12%|█▏        | 32/278 [00:00<00:00, 318.93it/s, now=None]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Building video hhl.mp4.\\n\",\n      \"MoviePy - Writing audio in %s\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"t:   1%|          | 3/302 [00:00<00:10, 27.47it/s, now=None]       \"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MoviePy - Done.\\n\",\n      \"Moviepy - Writing video hhl.mp4\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                              \\r\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Done !\\n\",\n      \"Moviepy - video ready hhl.mp4\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"#合成视频\\n\",\n    \"final_video= concatenate_videoclips(acList,method=\\\"compose\\\")\\n\",\n    \"final_video.resize(height=576,width=720).write_videofile(\\\"hhl.mp4\\\",fps=24)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.3\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "2020/2-6-BT_Torrent/README.md",
    "content": "# BT下载Torrent \n\n- 视频: [程序员怎样BT下载？宅男不难](https://www.bilibili.com/video/av87059432/)\n\n- 3种编程方式\n    - Python\n    - Node.js\n    - Go\n\n- 平时我们都是使用迅雷-BitTorrent下载Torrent\n    - 程序员是怎样下载Torrent的？\n        - 可以搭建Aria2 离线下载服务\n\n\n## Python\n- https://github.com/makelove/True_Artificial_Intelligence/tree/master/Python/BT_libtorrent\n\n## Node.js\n- WebTorrent (torrents on the web) 在浏览器里BT下载\n    - 官网 https://webtorrent.io/\n    - 在线文件传输和BT下载 https://instant.io/\n    - GitHub代码 https://github.com/webtorrent/webtorrent\n\n## Go\n- https://github.com/anacrolix/torrent\n    - 完整功能的BitTorrent客户端\n    - 文档 https://godoc.org/github.com/anacrolix/torrent\n    - 案例\n        - 看cmd文件夹\n    - 操作\n        - 把BT种子转成磁链接\n        - 通过磁链接下载文件"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/README.md",
    "content": "# 爬虫速度比较\n\n- 视频：[Python和Go爬虫速度比较，Go简直太快了！Python很难追上！](https://www.bilibili.com/video/av87182685/)\n\n常用框架\n- Python\n    - Scrapy\n- Go\n    - gocolly\n\n- 网络服务\n    - 程序go HTTP Server\n    - 本地运行\n\n- 编写爬虫代码\n    - Scrapy\n    - gocolly\n\n\n- 速度比较\n    - 计算方法 item/minute\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/go_spider.go",
    "content": "/*\n@Time    : 2020/2/6 15:17\n@File    : go_spider.go\n\n*/\n\npackage main\nimport (\n\t\"github.com/gocolly/colly\"\n\t\"log\"\n\t\"fmt\"\n\t\"time\"\n)\n\nfunc main() {\n\tlog.Println(\"Start\")\n\tstart := time.Now()\n\tcounter:=0\n\n\tc:=colly.NewCollector(\n\t\tcolly.Async(true),\n\t\t)//异步\n\tc.AllowURLRevisit=true\n\n\tc.OnResponse(func(r *colly.Response) {\n\t\tfmt.Println(\"OnResponse Visited\", r.Request.URL)\n\t\tfmt.Println(string(r.Body[:]))\n\t\tcounter+=1\n\t})\n\n\turl := \"http://127.0.0.1:8080/\"\n\tfor a := 0; a < 400; a++ {\n\t\t//fmt.Println(a)\n\t\tc.Visit(url)\n\t}\n\tc.Wait()\n\n\n\tend := time.Now()\n\tdlt:=end.Sub(start)\n\tspeed:=float64(counter)/dlt.Minutes()\n\tfmt.Println(\"速度:\",speed,\" item/minute ,\",counter,dlt.Minutes())\n\t//速度: 149258.717455393  item/minute 995 0.0066662773\n\n}\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/README.md",
    "content": "运行\n\n```shell script\n(.py3) localhost:2-6-Spider-Speed-test play$ cd scrapy_demo/\n(.py3) localhost:scrapy_demo play$ ls\n.           ..          .DS_Store   .idea       README.md   scrapy.cfg  scrapy_demo\n\n(.py3) localhost:scrapy_demo play$ scrapy crawl example -s CLOSESPIDER_ITEMCOUNT=100\n2020-02-18 20:32:04 [scrapy.utils.log] INFO: Scrapy 1.7.3 started (bot: scrapy_demo)\n```"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/scrapy.cfg",
    "content": "# Automatically created by: scrapy startproject\n#\n# For more information about the [deploy] section see:\n# https://scrapyd.readthedocs.io/en/latest/deploy.html\n\n[settings]\ndefault = scrapy_demo.settings\n\n[deploy]\n#url = http://localhost:6800/\nproject = scrapy_demo\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/scrapy_demo/__init__.py",
    "content": ""
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/scrapy_demo/items.py",
    "content": "# -*- coding: utf-8 -*-\n\n# Define here the models for your scraped items\n#\n# See documentation in:\n# https://docs.scrapy.org/en/latest/topics/items.html\n\nimport scrapy\n\n\nclass ScrapyDemoItem(scrapy.Item):\n    # define the fields for your item here like:\n    json = scrapy.Field()\n    pass\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/scrapy_demo/middlewares.py",
    "content": "# -*- coding: utf-8 -*-\n\n# Define here the models for your spider middleware\n#\n# See documentation in:\n# https://docs.scrapy.org/en/latest/topics/spider-middleware.html\n\nfrom scrapy import signals\n\n\nclass ScrapyDemoSpiderMiddleware(object):\n    # Not all methods need to be defined. If a method is not defined,\n    # scrapy acts as if the spider middleware does not modify the\n    # passed objects.\n\n    @classmethod\n    def from_crawler(cls, crawler):\n        # This method is used by Scrapy to create your spiders.\n        s = cls()\n        crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)\n        return s\n\n    def process_spider_input(self, response, spider):\n        # Called for each response that goes through the spider\n        # middleware and into the spider.\n\n        # Should return None or raise an exception.\n        return None\n\n    def process_spider_output(self, response, result, spider):\n        # Called with the results returned from the Spider, after\n        # it has processed the response.\n\n        # Must return an iterable of Request, dict or Item objects.\n        for i in result:\n            yield i\n\n    def process_spider_exception(self, response, exception, spider):\n        # Called when a spider or process_spider_input() method\n        # (from other spider middleware) raises an exception.\n\n        # Should return either None or an iterable of Request, dict\n        # or Item objects.\n        pass\n\n    def process_start_requests(self, start_requests, spider):\n        # Called with the start requests of the spider, and works\n        # similarly to the process_spider_output() method, except\n        # that it doesn’t have a response associated.\n\n        # Must return only requests (not items).\n        for r in start_requests:\n            yield r\n\n    def spider_opened(self, spider):\n        spider.logger.info('Spider opened: %s' % spider.name)\n\n\nclass ScrapyDemoDownloaderMiddleware(object):\n    # Not all methods need to be defined. If a method is not defined,\n    # scrapy acts as if the downloader middleware does not modify the\n    # passed objects.\n\n    @classmethod\n    def from_crawler(cls, crawler):\n        # This method is used by Scrapy to create your spiders.\n        s = cls()\n        crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)\n        return s\n\n    def process_request(self, request, spider):\n        # Called for each request that goes through the downloader\n        # middleware.\n\n        # Must either:\n        # - return None: continue processing this request\n        # - or return a Response object\n        # - or return a Request object\n        # - or raise IgnoreRequest: process_exception() methods of\n        #   installed downloader middleware will be called\n        return None\n\n    def process_response(self, request, response, spider):\n        # Called with the response returned from the downloader.\n\n        # Must either;\n        # - return a Response object\n        # - return a Request object\n        # - or raise IgnoreRequest\n        return response\n\n    def process_exception(self, request, exception, spider):\n        # Called when a download handler or a process_request()\n        # (from other downloader middleware) raises an exception.\n\n        # Must either:\n        # - return None: continue processing this exception\n        # - return a Response object: stops process_exception() chain\n        # - return a Request object: stops process_exception() chain\n        pass\n\n    def spider_opened(self, spider):\n        spider.logger.info('Spider opened: %s' % spider.name)\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/scrapy_demo/middlewares_proxy_redis.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/2/18 20:10\n# @File    : middlewares_proxy_redis.py\n\n\n\"\"\"\nmiddlewares_proxy_redis.py:\n\n使用Redis来控制 获取代理\nRedis 5.0.7 (00000000/0) 64 bit\n\"\"\"\n\nimport traceback\nimport redis\nimport logging\n\nlogger = logging.getLogger(__name__)\n\n\nclass redisProxy(object):\n    @classmethod\n    def from_crawler(cls, crawler):\n        # This method is used by Scrapy to create your spiders.\n        s = cls(crawler)\n        # crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)\n\n        return s\n\n    def __init__(self, crawler):\n        self.red = redis.Redis(decode_responses=True)\n        self.proxy_key = 'proxy'\n        self.error_proxy_key = 'error_proxy'\n        pass\n\n    def process_request(self, request, spider):\n        rs = self.red.zpopmax(self.proxy_key)  # 取出\n        if len(rs) > 0:\n            ip, score = rs[0]\n            self.red.zincrby(self.proxy_key, score - 10, ip)  # 放回 score - 1\n            # print(self.red.zscan(key))\n\n            request.meta[\"proxy\"] = ip\n            logger.info(f'获得代理Redis {ip}\\t{score}')\n        else:\n            logger.error('没有获得代理Redis')\n            pass\n        pass\n\n    def process_response(self, request, response, spider):\n        proxy = request.meta.get('proxy', '')\n        logger.info(f'process_response 获得代理proxy{proxy}')  # TODO\n        if proxy:\n            if response.status != 200:\n                # logger.info(f'代理失效{request.meta}')\n                logger.error(f'代理失效response {response.status}')  # TODO 429\n\n                self.red.zincrby(self.proxy_key, 3, proxy)  # 放到队尾 3-10=-7\n                self.red.zincrby(self.error_proxy_key, -2, proxy)\n\n                if response.status == 429:\n                    self.red.zincrby(self.proxy_key, -100, proxy)  # 放到队尾 3-10=-7\n                    logger.error(f'放到队尾 -100 {proxy}')  # TODO 429\n\n            else:  # 正常情况\n                self.red.zincrby(self.proxy_key, 7, proxy)\n        else:\n            logger.error('process_response 不能获取meta代理')\n\n        return response\n        pass\n\n    def process_exception(self, request, exception, spider):\n        try:\n            logger.error('process_exception')\n            logger.error(request.meta)\n            logger.error(exception)\n            # TODO\n            proxy = request.meta.get('proxy', 'process_exception')\n            self.red.zincrby(self.proxy_key, -2, proxy)  # 放回 score - 1\n            self.red.zincrby(self.error_proxy_key, -2, proxy)\n            logger.info(f'process_exception 获得代理proxy{proxy}')  # TODO\n        except:\n            print(traceback.format_exc())\n        pass\n\n    pass\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/scrapy_demo/pipelines.py",
    "content": "# -*- coding: utf-8 -*-\n\n# Define your item pipelines here\n#\n# Don't forget to add your pipeline to the ITEM_PIPELINES setting\n# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html\n\n\nclass ScrapyDemoPipeline(object):\n    def process_item(self, item, spider):\n        return item\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/scrapy_demo/settings.py",
    "content": "# -*- coding: utf-8 -*-\n\n# Scrapy settings for scrapy_demo project\n#\n# For simplicity, this file contains only settings considered important or\n# commonly used. You can find more settings consulting the documentation:\n#\n#     https://docs.scrapy.org/en/latest/topics/settings.html\n#     https://docs.scrapy.org/en/latest/topics/downloader-middleware.html\n#     https://docs.scrapy.org/en/latest/topics/spider-middleware.html\n\nBOT_NAME = 'scrapy_demo'\n\nSPIDER_MODULES = ['scrapy_demo.spiders']\nNEWSPIDER_MODULE = 'scrapy_demo.spiders'\n\n\n# Crawl responsibly by identifying yourself (and your website) on the user-agent\n#USER_AGENT = 'scrapy_demo (+http://www.yourdomain.com)'\nUSER_AGENT = 'iphone'\n\n# Obey robots.txt rules\nROBOTSTXT_OBEY = False\n\n# Configure maximum concurrent requests performed by Scrapy (default: 16)\nCONCURRENT_REQUESTS = 200\n\n# Configure a delay for requests for the same website (default: 0)\n# See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay\n# See also autothrottle settings and docs\n#DOWNLOAD_DELAY = 3\n# The download delay setting will honor only one of:\nCONCURRENT_REQUESTS_PER_DOMAIN = 500\nCONCURRENT_REQUESTS_PER_IP = 500\n\n# Disable cookies (enabled by default)\n#COOKIES_ENABLED = False\n\n# Disable Telnet Console (enabled by default)\n#TELNETCONSOLE_ENABLED = False\n\n# Override the default request headers:\n#DEFAULT_REQUEST_HEADERS = {\n#   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n#   'Accept-Language': 'en',\n#}\n\n# Enable or disable spider middlewares\n# See https://docs.scrapy.org/en/latest/topics/spider-middleware.html\n#SPIDER_MIDDLEWARES = {\n#    'scrapy_demo.middlewares.ScrapyDemoSpiderMiddleware': 543,\n#}\n\n# Enable or disable downloader middlewares\n# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html\nDOWNLOADER_MIDDLEWARES = {\n   # 'scrapy_demo.middlewares.ScrapyDemoDownloaderMiddleware': 543,\n   'scrapy_demo.middlewares_proxy_redis.redisProxy': 400,\n\n}\n\n# Enable or disable extensions\n# See https://docs.scrapy.org/en/latest/topics/extensions.html\n#EXTENSIONS = {\n#    'scrapy.extensions.telnet.TelnetConsole': None,\n#}\n\n# Configure item pipelines\n# See https://docs.scrapy.org/en/latest/topics/item-pipeline.html\n#ITEM_PIPELINES = {\n#    'scrapy_demo.pipelines.ScrapyDemoPipeline': 300,\n#}\n\n# Enable and configure the AutoThrottle extension (disabled by default)\n# See https://docs.scrapy.org/en/latest/topics/autothrottle.html\n#AUTOTHROTTLE_ENABLED = True\n# The initial download delay\n#AUTOTHROTTLE_START_DELAY = 5\n# The maximum download delay to be set in case of high latencies\n#AUTOTHROTTLE_MAX_DELAY = 60\n# The average number of requests Scrapy should be sending in parallel to\n# each remote server\n#AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0\n# Enable showing throttling stats for every response received:\n#AUTOTHROTTLE_DEBUG = False\n\n# Enable and configure HTTP caching (disabled by default)\n# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings\n#HTTPCACHE_ENABLED = True\n#HTTPCACHE_EXPIRATION_SECS = 0\n#HTTPCACHE_DIR = 'httpcache'\n#HTTPCACHE_IGNORE_HTTP_CODES = []\n#HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/scrapy_demo/spiders/__init__.py",
    "content": "# This package will contain the spiders of your Scrapy project\n#\n# Please refer to the documentation for information on how to create and manage\n# your spiders.\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/scrapy_demo/scrapy_demo/spiders/example.py",
    "content": "# -*- coding: utf-8 -*-\n\n'''\nscrapy crawl example -s CLOSESPIDER_ITEMCOUNT=10000\n\n统计结果\n2020-02-06 20:48:55 [scrapy.extensions.logstats] INFO: Crawled 1581 pages (at 524 pages/min), scraped 1580 items (at 524 items/min)\n2020-02-06 20:49:55 [scrapy.extensions.logstats] INFO: Crawled 2104 pages (at 523 pages/min), scraped 2103 items (at 523 items/min)\n'''\nimport scrapy\nfrom scrapy import Request\nfrom scrapy_demo.items import ScrapyDemoItem\n\n\nclass ExampleSpider(scrapy.Spider):\n    name = 'example'\n    # allowed_domains = ['example.com']\n    # url='http://127.0.0.1:8080/'\n    url='http://192.168.0.222/api' # 项目2-18-Scrapy-auto-proxy\n    start_urls = [url]\n\n    def parse(self, response):\n        # print(response.body)\n        it=ScrapyDemoItem()\n        it['json']=response.body\n        yield it\n\n        yield Request(self.url,callback=self.parse,dont_filter=True)\n        pass\n"
  },
  {
    "path": "2020/2-6-Spider-Speed-test/server.go",
    "content": "/*\n\n对比 Python 和 Go 语言的每秒请求数\nhttps://www.oschina.net/translate/python-vs-go-requests-per-second\n\n\ncurl http://127.0.0.1:8080/\n\n压力测试\nab -q -c 50 -n 1000 http://127.0.0.1:8080/\n*/\n\npackage main\n\nimport (\n    \"encoding/json\"\n    \"fmt\"\n    \"github.com/emicklei/go-restful\"\n    \"io\"\n    \"net/http\"\n)\n\n\n\nfunc main() {\n    ws := new(restful.WebService)\n    ws.Route(ws.GET(\"/\").To(hello))\n    restful.Add(ws)\n    fmt.Print(\"Server starting on port 8080\\n\")\n     http.ListenAndServe(\":8080\", nil)\n}\n\nfunc hello(req *restful.Request, resp *restful.Response) {\n    \n    b, _ := json.Marshal(article)\n    io.WriteString(resp, string(b))\n}\n\ntype Article struct {\n    Name string\n    Body string\n}\nvar article = Article{\"A Royal Baby\", \"A slow news week\"}"
  },
  {
    "path": "2020/2-6-gocolly/README.md",
    "content": "## gocolly 爬虫 入门和案例\n\n- 视频：[想要九阴真经(经验总结)吗？gocolly爬虫-入门和案例](https://www.bilibili.com/video/av86986554/)\n\n- 参考\n    - https://github.com/gocolly/colly\n    - 官网 http://go-colly.org/\n    - 官网文档 http://go-colly.org/docs/\n\n- 安装\n    - go get -u github.com/gocolly/colly/v2/...\n\n- 案例\n    - 解析HTML\n        - CSS Selector\n        - 京东-商品列表\n    - 异步并发请求\n        - colly.Async(true),\n        - c.Wait()\n    - 使用多个Collector解析器\n        - detailCollector := c.Clone()\n        - context传参\n\n            var ctx=colly.NewContext()\n            ctx.Put(\"cc\", js.Cc) \n            c.Request(\"GET\", url, nil, ctx, header)\n\n    - 使用代理\n        - httpbin get.go\n        - 启动Squid代理服务器\n    - 分布式抓取，连接Redis\n        - 1"
  },
  {
    "path": "2020/2-7-Docker-Nginx-antiClawer/README.md",
    "content": "# Nginx反爬虫\n- 视频  [Nginx反爬虫-禁止UserAgent和IP，使用Docker和Go测试](https://www.bilibili.com/video/av87302823/)\n\n- 参考 \n    - https://blog.csdn.net/weixin_34341117/article/details/85848963\n    - agent_deny.conf https://blog.csdn.net/markchiu/article/details/52512106\n    - Nginx 服务器之速率限制 https://cloud.tencent.com/developer/news/35222\n    \n- 图书\n    - [《Python 3反爬虫原理与绕过实战》](https://book.douban.com/subject/34938311/)\n      \n\n- 启动Docker\n\n- 禁止某UserAgent\n    - curl访问\n\n- 限制同一个ip的访问频率\n    速率限制主要有2个主要指令，limit_req_zone和limit_req。\n\n\n- 运行\n    - 启动server\n        - go run server.go\n    - docker run -it --rm -p 80:80 -v /path/nginx1.conf:/etc/nginx/nginx.conf:ro nginx\n\n- 测试\n    - curl  http://192.168.0.222/api\n    - curl -A 'iphone'  http://192.168.0.222/api\n\n- 限制IP\n    - 之前 \n        - 速度: 9970.065281182719  item/minute , 314 0.03149427723333333\n    - 之后\n        - 速度: 2134.1611919528164  item/minute , 61 0.02858265825\n        - Nginx日志\n            - 2020/02/07 06:29:34 [error] 6#6: *422 limiting connections by zone \"perip\", client: 172.17.0.1, server: localhost, request: \"GET /api HTTP/1.1\", host: \"127.0.0.1\""
  },
  {
    "path": "2020/2-7-Docker-Nginx-antiClawer/deny_userAgent.conf",
    "content": "#https://blog.csdn.net/markchiu/article/details/52512106\n\n#禁止Scrapy等工具的抓取\nif ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {\n     return 403;\n}\n \n#禁止指定UA及UA为空的访问\nif ($http_user_agent ~ \"WinHttp|WebZIP|FetchURL|node-superagent|java/|FeedDemon|Jullo|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|Java|Feedly|Apache-HttpAsyncClient|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|BOT/0.1|YandexBot|FlightDeckReports|Linguee Bot|^$\" ) {\n     return 403;             \n}\n \n#禁止非GET|HEAD|POST方式的抓取\nif ($request_method !~ ^(GET|HEAD|POST)$) {\n    return 403;\n}\n"
  },
  {
    "path": "2020/2-7-Docker-Nginx-antiClawer/go_spider.go",
    "content": "/*\n@Time    : 2020/2/6 15:17\n@File    : go_spider.go\n\n*/\n\npackage main\nimport (\n\t\"github.com/gocolly/colly\"\n\t\"log\"\n\t\"fmt\"\n\t\"time\"\n)\n\nfunc main() {\n\tlog.Println(\"Start\")\n\tstart := time.Now()\n\tcounter:=0\n\n\tc:=colly.NewCollector(\n\t\tcolly.Async(true),\n\t\t)//异步\n\tc.AllowURLRevisit=true\n\n\tc.OnResponse(func(r *colly.Response) {\n\t\tfmt.Println(\"OnResponse Visited\", r.Request.URL)\n\t\tfmt.Println(string(r.Body[:]))\n\t\tcounter+=1\n\t})\n\n\turl := \"http://127.0.0.1/api\"\n\tfor a := 0; a < 10000; a++ {\n\t\t//fmt.Println(a)\n\t\tc.Visit(url)\n\t}\n\tc.Wait()\n\n\n\tend := time.Now()\n\tdlt:=end.Sub(start)\n\tspeed:=float64(counter)/dlt.Minutes()\n\tfmt.Println(\"速度:\",speed,\" item/minute ,\",counter,dlt.Minutes())\n\t//速度: 149258.717455393  item/minute 995 0.0066662773\n\n}\n"
  },
  {
    "path": "2020/2-7-Docker-Nginx-antiClawer/nginx1.conf",
    "content": "user  nginx;\nworker_processes  1;\n\nerror_log  /var/log/nginx/error.log warn;\npid        /var/run/nginx.pid;\n\n\nevents {\n    worker_connections  1024;\n}\n\n\nhttp {\n    #限制同一个ip的访问频率\n    limit_conn_zone $binary_remote_addr zone=perip:100k;\n    limit_conn_zone $server_name zone=perserver:100k;\n\nserver {\n    listen       80;\n    server_name  localhost;\n\n    location / {\n        root   /usr/share/nginx/html;\n        index  index.html index.htm;\n    }\n\n    location /api{\n        proxy_pass http://192.168.0.222:8080/;\n        # access_log \"logs/test.log\";\n    }\n\n\n    #禁止Scrapy等工具的抓取  \n    if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {  \n         return 403;  \n    }  \n\n    #限制同一个ip的访问频率\n    limit_conn perip 2;\n    limit_conn perserver 10;\n    limit_rate 512;\n   \n}\n\n}\n\n"
  },
  {
    "path": "2020/2-7-Docker-Nginx-antiClawer/server.go",
    "content": "/*\n\n对比 Python 和 Go 语言的每秒请求数\nhttps://www.oschina.net/translate/python-vs-go-requests-per-second\n\n\ngo run server.go\n\ncurl http://127.0.0.1:8080/\n\n压力测试\nab -q -c 50 -n 1000 http://127.0.0.1:8080/\n*/\n\npackage main\n\nimport (\n    \"encoding/json\"\n    \"fmt\"\n    \"github.com/emicklei/go-restful\"\n    \"io\"\n    \"net/http\"\n)\n\n\n\nfunc main() {\n    ws := new(restful.WebService)\n    ws.Route(ws.GET(\"/\").To(hello))\n    restful.Add(ws)\n    fmt.Print(\"Server starting on port 8080\\n\")\n    fmt.Println(\"curl http://127.0.0.1:8080/\")\n    fmt.Println(\"curl http://192.168.0.222:8080/\")\n     http.ListenAndServe(\":8080\", nil)\n}\n\nfunc hello(req *restful.Request, resp *restful.Response) {\n    \n    b, _ := json.Marshal(article)\n    io.WriteString(resp, string(b))\n}\n\ntype Article struct {\n    Name string\n    Body string\n}\nvar article = Article{\"A Royal Baby\", \"A slow news week\"}"
  },
  {
    "path": "2020/2-9-Chrome插件-全文检索/README.md",
    "content": "# Chrome插件-全文检索\n\n- 视频 [Chrome插件-全文检索，加强Chrome的搜索功能](https://www.bilibili.com/video/av87717829/)\n\n- 日常问题\n    - Chrome搜索功能太差了，历史记录+书签收藏夹，\n        - 只能搜索标题\n        - 按时间搜索，按网站搜索，按标签搜索\n\n两个\n- WorldBrain https://getmemex.com/\n    - 文档 [WorldBrain – 全文搜索你浏览过的「所有」网页](https://www.appinn.com/worldbrain-for-chrome/)\n- https://github.com/lengstrom/falcon\n\n- 缺点\n    - 只支持英文，不支持中文，没有分词\n\n- 安装\n    - Chrome 应用商店安装\n    - 通过源代码安装\n\n- 看源代码\n"
  },
  {
    "path": "2020/3-1-世界语言-翻译-Siri朗读/README.md",
    "content": "# 3-1-世界语言-翻译-Siri朗读\n\n\n- 视频  [鬼畜！把中文翻译到世界语言，然后用Siri朗读](https://www.bilibili.com/video/av92915931/)\n\n- 百度翻译api\n    - [通用翻译API接入文档](http://api.fanyi.baidu.com/doc/21)\n-  Python调用macOS Siri [Python Text to Speech in Macintosh](https://stackoverflow.com/questions/12758591/python-text-to-speech-in-macintosh)\n\n- 语言-发音人，映射\n    - https://stackoverflow.com/questions/29152617/nsspeechsynthesizer-voice-language-relations\n\n\n- 翻译请求限制\n\n\n- 结果\n\n```\n(.py3) localhost:3-1-世界语言-翻译-Siri朗读 play$ py macOS-siri-百度翻译-TTS.py\n请输入中文:你好 早上好，你吃饭了吗？\n你好 早上好，你吃饭了吗？\n普通话\n台湾\n香港\n英语 \t en \t com.apple.speech.synthesis.voice.Alex\nHello, good morning. Have you eaten yet?\n----------------------------------------\n俄语 \t ru \t com.apple.speech.synthesis.voice.milena\nКак ты поужинал?\n----------------------------------------\n阿拉伯 \t ara \t com.apple.speech.synthesis.voice.tarik\nمرحبا صباح الخير ، هل تناولت الطعام في ؟\n----------------------------------------\n匈牙利 \t hu \t com.apple.speech.synthesis.voice.mariska\nJó reggelt, ettél már valamit?\n----------------------------------------\n荷兰 \t nl \t com.apple.speech.synthesis.voice.ellen\nHallo, heb je al gegeten?\n----------------------------------------\n希腊 \t el \t com.apple.speech.synthesis.voice.melina\nΓεια σας, καλημέρα, έχετε φάει ακόμα;\n----------------------------------------\n丹麦 \t dan \t com.apple.speech.synthesis.voice.sara\nHej, godmorgen, har du spist endnu?\n----------------------------------------\n西班牙 \t spa \t com.apple.speech.synthesis.voice.Jorge\n¿Buenos días. Has comido?\n2020-03-01 20:58:46.947 python[17098:739108] NSSpeechSynthesizer: [NSSpeechSynthesizer setVoice:] - Voice identifier not found.\n----------------------------------------\n意大利 \t it \t com.apple.speech.synthesis.voice.alice\nCiao, buongiorno, hai gia'mangiato?\n----------------------------------------\n韩国 \t kor \t com.apple.speech.synthesis.voice.yuna\n안녕하세요. 좋은 아침 식사 하셨어요?\n----------------------------------------\n德国 \t de \t com.apple.speech.synthesis.voice.anna\nGuten Morgen, haben Sie schon gegessen?\n----------------------------------------\n波兰 \t pl \t com.apple.speech.synthesis.voice.zosia\nDzień dobry, czy już jadłeś?\n----------------------------------------\n葡萄牙 \t pt \t com.apple.speech.synthesis.voice.joana\nBom dia, você já comeu?\n----------------------------------------\n罗马尼亚 \t rom \t com.apple.speech.synthesis.voice.ioana\nBună dimineaţa, aţi mâncat deja?\n----------------------------------------\n斯洛伐克 \t slo \t com.apple.speech.synthesis.voice.laura\nDobro jutro, ste že jedli?\n----------------------------------------\n泰国 \t th \t com.apple.speech.synthesis.voice.kanya\nสวัสดีตอนเช้าคุณทานอาหารรึยัง\n----------------------------------------\n芬兰 \t fin \t com.apple.speech.synthesis.voice.satu\nHyvää huomenta, oletko jo syönyt?\n----------------------------------------\n法国 \t fra \t com.apple.speech.synthesis.voice.thomas\nBonjour, vous avez mangé?\n----------------------------------------\n捷克 \t cs \t com.apple.speech.synthesis.voice.zuzana\nDobrý den, už jste jedli?\n----------------------------------------\n瑞典 \t swe \t com.apple.speech.synthesis.voice.alva\nGod morgon, har du ätit än?\n----------------------------------------\n日语 \t jp \t com.apple.speech.synthesis.voice.kyoko\nすみません、おはようございます。食事は済みましたか？\n----------------------------------------\n(.py3) localhost:3-1-世界语言-翻译-Siri朗读 play$\n```\n\n\n```\n(.py3) localhost:~ play$ py /Users/play/github/Machine_Translation_Subtitles_Group/src/macOS-siri-百度翻译-TTS.py\n请输入中文:国际和平，让和平白鸽自由飞翔，带去安宁温馨；让美好橄榄枝四处蔓延，编织幸福世界；让和谐旗帜随风飘扬，传递快乐心语。祝愿世界和平，永无战争！\n\n普通话\n台湾\n香港\nen   com.apple.speech.synthesis.voice.Alex\nInternational peace, let peace dove fly freely, bring peace and warmth; let the olive branch spread everywhere, weave a happy world; let the harmonious flag fly with the wind, convey happy words. Wish the world peace and never war!\n----------------------------------------\nru   com.apple.speech.synthesis.voice.milena\nмеждународный мир, мир белых голубей, мир, свобода летать, мир и тепло, великолепные оливковые ветви, сплетая счастливый мир, и гармоничные флаги, развевающиеся по ветру, передают радость.Пусть мир во всем мире, никогда не будет войны!\n----------------------------------------\nara      com.apple.speech.synthesis.voice.tarik\nالسلام الدولي ، واسمحوا حمامة بيضاء سلمية تطير بحرية ، تأخذ راحة البال و الدفء ، واسمحوا جيدة غصين الزيتون تنتشر في جميع أنحاء العالم ، نسج السعادة ، اسمحوا الوئام راية ترفرف في مهب الريح ، تمرير سعيدالسلام في العالم ، لا حرب\n----------------------------------------\nhu   com.apple.speech.synthesis.voice.mariska\nA nemzetközi béke, hadd repüljön szabadon a békegalamb, hozzon békét és meleget; az olajág terjesszen mindenfelé, alakítson boldog világot; a harmonikus zászló repüljön a széllel, adjon boldog szavakat.Kívánj békét a világnak és soha ne háborúzz!\n----------------------------------------\nnl   com.apple.speech.synthesis.voice.ellen\nInternationale vrede, laat de vrede vrij vliegen, breng vrede en warmte; laat de olijftak zich overal verspreiden, weven een gelukkige wereld; laat de harmonieuze vlag met de wind vliegen, breng gelukkige woorden.Wens de wereld vrede en nooit oorlog!\n----------------------------------------\nel   com.apple.speech.synthesis.voice.melina\nΔιεθνής ειρήνη, ας πετάξει το περιστέρι της ειρήνης ελεύθερα, να φέρει ειρήνη και ζεστασιά, ας απλωθεί το κλαδί της ελιάς παντού, να υφαίνει έναν ευτυχισμένο κόσμο, ας πετάξει η αρμονική σημαία με τον άνεμο, να μεταφέρει χαρούμενα λόγια.Ευχήσου στον κόσμο ειρήνη και ποτέ πόλεμο!\n----------------------------------------\ndan      com.apple.speech.synthesis.voice.sara\nInternational fred, lad fredsdue flyve frit, bringe fred og varme, lad olivengrenen sprede sig overalt, væve en lykkelig verden, lad det harmoniske flag flyve med vinden, overbringe glade ord.Ønsk verden fred og aldrig krig!\n----------------------------------------\nspa      com.apple.speech.synthesis.voice.Jorge\nPaz internacional: que las palomas de la paz puedan volar libremente y llevar paz y tranquilidad; que las bellas ramas de olivo se extiendan por todas partes para tejer un mundo de felicidad; que las banderas de la armonía ondeen con el viento y transmitan la felicidad.¡Que el mundo sea pacífico y no haya guerra!\n2020-03-01 16:04:16.270 python[15212:642205] NSSpeechSynthesizer: [NSSpeechSynthesizer setVoice:] - Voice identifier not found.\n----------------------------------------\nit   com.apple.speech.synthesis.voice.alice\nLa pace internazionale, la colomba di pace vola liberamente, porta pace e calore; che il ramo d'ulivo si diffonda ovunque, tessa un mondo felice; che la bandiera armoniosa voli con il vento, trasmetta parole felici.Auguri al mondo pace e mai guerra!\n----------------------------------------\nkor      com.apple.speech.synthesis.voice.yuna\n평화 평화, 평화 비둘기 자유 비상, 평화 평화 평화 평화 평화 평화 평화 를 데리고 안녕 훈훈한 향기 를 전달 했 다.세계 평화를 기원하고 영원히 전쟁이 없기를 기원합니다!\n----------------------------------------\nde   com.apple.speech.synthesis.voice.anna\nInternationaler Frieden, lasst die Friedenstaube frei fliegen, bringt Frieden und Wärme; lasst den Olivenzweig sich überall ausbreiten, weben eine glückliche Welt; lasst die harmonische Flagge mit dem Wind wehen, überbringen glückliche Worte.Wünsch der Welt Frieden und niemals Krieg!\n----------------------------------------\npl   com.apple.speech.synthesis.voice.zosia\nMiędzynarodowy pokój, niech pokój gołąb swobodnie latać, przynieść pokój i ciepło; niech gałązka oliwna rozprzestrzenia się wszędzie, spleć szczęśliwy świat; niech harmonijna flag a powiewa z wiatrem, przekazać szczęśliwe słowa.Życz światu pokoju i nigdy wojny!\n----------------------------------------\npt   com.apple.speech.synthesis.voice.joana\nPaz internacional, que a pomba Da paz VOE livremente, traga Paz e calor; que o Ramo de Oliveira se espalhe por todo o lado, tecer um Mundo feliz; que a Bandeira harmoniosa VOE com o vento, transmita Palavras felizes.Deseje Paz Ao Mundo e Nunca guerra!\n----------------------------------------\nrom      com.apple.speech.synthesis.voice.ioana\nPacea internaţională, pacea să zboare liber, să aducă pace şi căldură; să se răspândească ramura de măslin peste tot, să ţesă o lume fericită; să zboare steagul armonios cu vântul, să transmită cuvinte fericite.Doresc pacea mondială și niciodată război!\n----------------------------------------\nslo      com.apple.speech.synthesis.voice.laura\nMednarodni mir, naj mirovna golobica prosto leti, naj prinese mir in toploto; naj se oljčna veja razširi povsod, naj splete srečen svet; naj harmonična zastava plapola z vetrom, naj posreduje srečne besede.Zaželi svetu mir in nikoli vojne!\n----------------------------------------\nth   com.apple.speech.synthesis.voice.kanya\nสันติภาพระหว่างประเทศให้นกพิราบสีขาวบินได้อย่างอิสระและนำความสงบสุขและความอบอุ่นให้กิ่งมะกอกที่ดีกระจายไปทั่วโลกมีความสุขให้ธงสามัคคีบินกับลมและถ่ายทอดความสุข ขอให้สันติภาพของโลกไม่มีสงคราม\n----------------------------------------\nfin      com.apple.speech.synthesis.voice.satu\nKansainvälinen rauha, syöksyköön rauha vapaasti, tuokoon rauhaa ja lämpöä, levittäköön oliivioksa kaikkialle, kutoon onnellista maailmaa, tehköön harmoninen lippu tuulen kanssa, välittäköön iloisia sanoja.Toivokaa rauhaa, älkääkä koskaan sotiko!\n----------------------------------------\nfra      com.apple.speech.synthesis.voice.thomas\nLa paix internationale, la liberté des colombes de la paix de voler et d 'emporter dans la paix et la douceur; la propagation des branches d' Olivier de la beauté et l 'édification d' un monde heureux; le drapeau de l 'harmonie flotte au vent et transmet des paroles de joie.Que la paix règne dans le monde, jamais la guerre!\n----------------------------------------\ncs   com.apple.speech.synthesis.voice.zuzana\nMezinárodní mír, a ť mír volně létá, ať přinese mír a teplo; ať se olivová větev rozšíří všude, tkají šťastný svět; ať harmonická vlajka vlaje s větrem, ať nesou šťastná slova.Přeji světu mír a nikdy válku!\n----------------------------------------\nswe      com.apple.speech.synthesis.voice.alva\nInternationell fred, låt fredsduvan flyga fritt, ge fred och värme; låt olivkvisten sprida sig överallt, väva en lycklig värld; låt den harmoniska flaggan flyga med vinden, förmedla glada ord.Önska världen fred och aldrig krig!\n----------------------------------------\njp   com.apple.speech.synthesis.voice.kyoko\n国際平和、平和のハトを自由に飛翔させ、安らぎと暖かさを持って行きます。美しいオリーブの枝があちこちに広がって、幸せな世界を作ります。調和の旗が風に翻り、楽しい心の言葉を伝えます。世界の平和を祈って、永遠に戦争がありません。\n----------------------------------------\n(.py3) localhost:~ play$ \n```\n"
  },
  {
    "path": "2020/3-1-世界语言-翻译-Siri朗读/baidu_translate_api.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2017/12/4 13:37\n# @Author  : play4fun\n# @File    : translate_api.py\n# @Software: PyCharm\n\n\"\"\"\ntranslate_api.py:\n语言列表\n源语言语种不确定时可设置为 auto，目标语言语种不可设置为 auto。\nhttp://api.fanyi.baidu.com/api/trans/product/apidoc\n\"\"\"\n# import httplib\n# import md5\nfrom hashlib import md5\n# import urllib\nfrom urllib.parse import quote, quote_plus\nimport random\nimport requests\nimport json\n\nfrom config import baidu_appid as appid\nfrom config import baidu_secretKey as secretKey\n\nmyurl = '/api/trans/vip/translate'  # https://fanyi-api.baidu.com/api/trans/vip/translate\nq = 'He could turn off all the power to the building'\nfromLang = 'en'\ntoLang = 'zh'\nsalt = random.randint(32768, 65536)\n\n\ndef translate(sub, froml=None, tol='zh'):\n    q = sub\n    if froml is None:\n        froml = 'auto'\n    # toLang=tol\n\n    sign = appid + q + str(salt) + secretKey\n    # m1 = md5.new()\n    m1 = md5()\n    m1.update(sign.encode('utf-8'))\n    sign = m1.hexdigest()\n    myurl = 'https://fanyi-api.baidu.com/api/trans/vip/translate'\n    myurl = myurl + '?appid=' + appid + '&q=' + quote_plus(q) + '&from=' + froml + '&to=' + tol + '&salt=' + str(salt) + '&sign=' + sign\n    # print(myurl)\n\n    #\n    rs = requests.get(myurl)\n    # print(rs.text)\n    js = json.loads(rs.text)\n    return js['trans_result'][0]['dst']\n\n\ndef test():\n    # sub = 'Zeker, we hebben de verantwoordelijkheid om voor onze blauwe planeet te zorgen.'\n    # rs = translate(sub, froml='nl')  # 荷兰\n    # sub = 'She must leave the safety of her marine world'\n    # 无法翻译多行？\n    sub = '''The best and the worst thing about love is that it cannot be expressed in words.   \"\\n\" When you truly love someone, it may be hard to \n    express those emotions through words. \"\\n\"    In fact, real love may make you feel weak in the knees and unable to speak.\n    '''\n    # 爱的最好和最坏之处在于它不能用语言表达。当你真的爱一个人时，可能很难用言语表达这些情感。事实上，真正的爱情可能会让你感到膝盖无力，无法说话。\n\n    sub = '早上好，你吃饭了吗'\n    rs = translate(sub, froml='zh', tol='en')  # 不支持 印度\n\n    print('翻译结果：', rs)\n\n\nif __name__ == '__main__':\n    test()\n"
  },
  {
    "path": "2020/3-1-世界语言-翻译-Siri朗读/config.py",
    "content": "# -*- coding: utf-8 -*-\n\n# @File    : config.py\n# @Software: PyCharm\n\n\"\"\"\nconfig.py:\n\"\"\"\n\n\n\nbaidu_appid = 'xxx'\nbaidu_secretKey = 'xxxx'"
  },
  {
    "path": "2020/3-1-世界语言-翻译-Siri朗读/macOS-siri-百度翻译-TTS.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/3/1 14:58\n# @File    : macOS-siri-百度翻译-TTS.py\n\n\n\"\"\"\nmacOS-siri-百度翻译-TTS.py:\n\n你好 早上好，你吃饭了吗？\n\n国际和平，让和平白鸽自由飞翔，带去安宁温馨；让美好橄榄枝四处蔓延，编织幸福世界；让和谐旗帜随风飘扬，传递快乐心语。祝愿世界和平，永无战争！\n\"\"\"\nimport time\nfrom AppKit import NSSpeechSynthesizer\nfrom baidu_translate_api import translate\n\nnssp = NSSpeechSynthesizer\nve = nssp.alloc().init()\n\n#来源 https://stackoverflow.com/questions/29152617/nsspeechsynthesizer-voice-language-relations\nvoices = {#注释掉的语言是百度翻译API不支持的\n    \"en\": (\"com.apple.speech.synthesis.voice.Alex\", '英语'),  # 英语\n    \"ru\": (\"com.apple.speech.synthesis.voice.milena\", '俄语'),  # 俄语\n    \"ara\": (\"com.apple.speech.synthesis.voice.tarik\", '阿拉伯'),  # 阿拉伯\n    \"hu\": (\"com.apple.speech.synthesis.voice.mariska\", '匈牙利'),  # 匈牙利\n    \"nl\": (\"com.apple.speech.synthesis.voice.ellen\", '荷兰'),  # 荷兰\n    \"el\": (\"com.apple.speech.synthesis.voice.melina\", '希腊'),  # 希腊\n    \"dan\": (\"com.apple.speech.synthesis.voice.sara\", '丹麦'),  # 丹麦\n    # \"he\": (\"com.apple.speech.synthesis.voice.carmit\",'以色列'),#以色列 希伯来语\n    # \"id\": (\"com.apple.speech.synthesis.voice.damayanti\",'印度尼西亚'),#印度尼西亚\n    \"spa\": (\"com.apple.speech.synthesis.voice.Jorge\", '西班牙'),  # 西班牙\n    \"it\": (\"com.apple.speech.synthesis.voice.alice\", '意大利'),  # 意大利\n    \"kor\": (\"com.apple.speech.synthesis.voice.yuna\", '韩国'),  # 韩国\n    \"de\": (\"com.apple.speech.synthesis.voice.anna\", '德国'),  # 德国\n    # \"no\": (\"com.apple.speech.synthesis.voice.nora\",'挪威'),#挪威\n    \"pl\": (\"com.apple.speech.synthesis.voice.zosia\", '波兰'),  # 波兰\n    \"pt\": (\"com.apple.speech.synthesis.voice.joana\", '葡萄牙'),  # 葡萄牙\n    \"rom\": (\"com.apple.speech.synthesis.voice.ioana\", '罗马尼亚'),  # 罗马尼亚\n    \"slo\": (\"com.apple.speech.synthesis.voice.laura\", '斯洛伐克'),  # 斯洛伐克，借用 斯洛文尼亚\n    \"th\": (\"com.apple.speech.synthesis.voice.kanya\", '泰国'),  # 泰国\n    # \"tr\": (\"com.apple.speech.synthesis.voice.yelda\",'土耳其'),#土耳其\n    \"fin\": (\"com.apple.speech.synthesis.voice.satu\", '芬兰'),  # 芬兰\n    \"fra\": (\"com.apple.speech.synthesis.voice.thomas\", '法国'),  # 法国\n    # \"hi\": (\"com.apple.speech.synthesis.voice.lekha\",'印度'),  # 印度-印地语\n    \"cs\": (\"com.apple.speech.synthesis.voice.zuzana\", '捷克'),  # 捷克\n    \"swe\": (\"com.apple.speech.synthesis.voice.alva\", '瑞典'),  # 瑞典\n    \"jp\": (\"com.apple.speech.synthesis.voice.kyoko\", '日语')  # 日语\n}\n\n\ndef say(voice, text):\n    # print(voice)\n    # print(text)\n    ve.setVoice_(voice)\n    ve.startSpeakingString_(text)\n\n    while not ve.isSpeaking():  # 等待发音\n        time.sleep(0.1)\n\n    while ve.isSpeaking():  # 等待结束\n        time.sleep(0.1)\n    # print('-' * 20)\n\n\ndef main():\n    text = input('请输入中文:')\n    # text = '早上好，你吃饭了吗'\n    print(text)\n    # sp = nssp.alloc().initWithVoice_()\n    # sp.startSpeakingString_(text)\n\n    # 普通话\n    print('普通话')\n    say('com.apple.speech.synthesis.voice.ting-ting', text)\n    # 台湾\n    print('台湾')\n    say('com.apple.speech.synthesis.voice.mei-jia', text)\n    # 香港\n    print('香港')\n    say('com.apple.speech.synthesis.voice.sin-ji', text)\n\n    # for\n    for lang, (voice, country) in voices.items():\n        print(country, '\\t', lang, '\\t', voice)\n        try:\n            transtr = translate(text, froml='zh', tol=lang)#翻译api可能限流\n        except Exception as e:\n            print('Exception',e)\n            continue\n            pass\n        \n        print(transtr)\n        say(voice, transtr)\n        print('-' * 40)\n        # time.sleep(0.5)\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2020/3-1-世界语言-翻译-Siri朗读/py-调用macos内置的语音听写功能.py",
    "content": "# coding=utf-8\n#Python Text to Speech in Macintosh\n#https://stackoverflow.com/questions/12758591/python-text-to-speech-in-macintosh\n#文本到语音 TTS\n\n\nfrom  AppKit import NSSpeechSynthesizer\nimport time\nimport sys\n\n\nif len(sys.argv) < 2:\n   text = raw_input('type text to speak> ')\nelse:\n   text = sys.argv[1]\n\nnssp = NSSpeechSynthesizer\n\nve = nssp.alloc().init()\n\nfor voice in nssp.availableVoices():\n   ve.setVoice_(voice)\n   print voice\n   ve.startSpeakingString_(text)\n\n   while not ve.isSpeaking():#等待发音\n      time.sleep(0.1)\n\n   while ve.isSpeaking():#等待结束\n      time.sleep(0.1)\n\n\n#来源 https://stackoverflow.com/questions/29152617/nsspeechsynthesizer-voice-language-relations\n voices = {\n  \"en\": \"com.apple.speech.synthesis.voice.Alex\",#英语\n  \"ru\": \"com.apple.speech.synthesis.voice.milena\",#俄语\n  \"ara\": \"com.apple.speech.synthesis.voice.tarik\",#阿拉伯\n  \"hu\": \"com.apple.speech.synthesis.voice.mariska\",#匈牙利\n  \"nl\": \"com.apple.speech.synthesis.voice.ellen\",#荷兰\n  \"el\": \"com.apple.speech.synthesis.voice.melina\",#希腊\n  \"dan\": \"com.apple.speech.synthesis.voice.sara\",#丹麦\n  # \"he\": \"com.apple.speech.synthesis.voice.carmit\",#以色列 希伯来语\n  # \"id\": \"com.apple.speech.synthesis.voice.damayanti\",#印度尼西亚\n  \"spa\": \"com.apple.speech.synthesis.voice.Jorge\",#西班牙\n  \"it\": \"com.apple.speech.synthesis.voice.alice\",#意大利\n  # \"zh\": \"com.apple.speech.synthesis.voice.ting-ting\",#中国\n  \"kor\": \"com.apple.speech.synthesis.voice.yuna\",#韩国\n  \"de\": \"com.apple.speech.synthesis.voice.anna\",#德国\n  # \"no\": \"com.apple.speech.synthesis.voice.nora\",#挪威\n  \"pl\": \"com.apple.speech.synthesis.voice.zosia\",#波兰\n  \"pt\": \"com.apple.speech.synthesis.voice.joana\",#葡萄牙\n  \"rom\": \"com.apple.speech.synthesis.voice.ioana\",#罗马尼亚\n  \"slo\": \"com.apple.speech.synthesis.voice.laura\",#斯洛伐克，借用 斯洛文尼亚\n  \"th\": \"com.apple.speech.synthesis.voice.kanya\",#泰国\n  # \"tr\": \"com.apple.speech.synthesis.voice.yelda\",#土耳其\n  \"fin\": \"com.apple.speech.synthesis.voice.satu\",#芬兰\n  \"fra\": \"com.apple.speech.synthesis.voice.thomas\",#法国\n  \"hi\": \"com.apple.speech.synthesis.voice.lekha\",#印度-印地语\n  \"cs\": \"com.apple.speech.synthesis.voice.zuzana\",#捷克\n  \"swe\": \"com.apple.speech.synthesis.voice.alva\",#瑞典\n\"jp\": \"com.apple.speech.synthesis.voice.kyoko\"#日语\n}"
  },
  {
    "path": "2020/3-10-nonebot_Coolq_Docker/README.md",
    "content": "# nonebot+酷Q+Docker\n\n- 视频 \n    - [Python编程实现【QQ 聊天机器人】nonebot+酷Q+Docker](https://www.bilibili.com/video/av95262479/)\n    - [【QQ+拼多多】返现程序，在服务器上Docker运行](https://www.bilibili.com/video/av95478130/)\n    - 群管理+定时发送 [nonebot和酷Q的计划任务和群消息管理](https://www.bilibili.com/video/av96010898/)\n\n- 参考\n    - https://github.com/richardchien/nonebot\n    - 文档 指南 https://nonebot.cqp.moe/guide/\n    - 术语表 https://nonebot.cqp.moe/glossary.html\n        - CQ 码 \n    - CoolQ HTTP API 插件  https://cqhttp.cc/docs/4.14/#/\n        - 使用Docker https://cqhttp.cc/docs/4.14/#/Docker\n        - GitHub https://github.com/richardchien/coolq-http-api\n            - 下载 https://github.com/richardchien/coolq-http-api/releases\n    - 酷Q 社区 https://cqp.cc/b/news\n        - [酷Q Air / Pro 功能对比](https://cqp.cc/t/23290)\n            - Air是免费版，不能发图片和语音\n            - Pro 收费，￥12/月\n\n- 安装\n    - pip install nonebot\n\n\n- Docker\n```\ndocker pull richardchien/cqhttp:latest\nmkdir coolq  # 用于存储 酷Q 的程序文件\ndocker run -ti  --name cqhttp-test \\\n             -v $(pwd)/coolq:/home/user/coolq \\\n             -p 9000:9000 \\\n             -p 5700:5700 \\\n             -e COOLQ_ACCOUNT=2262965903 \\\n             -e CQHTTP_POST_URL=http://127.0.0.1:8080 \\\n             -e CQHTTP_SERVE_DATA_FILES=yes \\\n             richardchien/cqhttp:latest\n             \n#之后\ndocker start cqhttp-test\ndocker logs -f cqhttp-test\ndocker stop cqhttp-test\n```\n然后访问 http://<你的IP>:9000/ \n进入 noVNC（默认密码 MAX8char ），登录 酷Q，即可开始使用\n（插件已自动启用，配置文件也根据启动命令的环境变量自动生成了）。\n一般情况下，你不太需要关注插件是如何存在于容器中的。\n\n- 更正 Docker启动项\n```\ndocker run -ti  --name cqhttp-test \\\n             -v $(pwd)/coolq:/home/user/coolq \\\n             -p 9000:9000 \\\n             -e COOLQ_ACCOUNT=2262965903 \\\n             -e CQHTTP_USE_WS_REVERSE=true \\\n             -e CQHTTP_WS_REVERSE_API_URL=ws://192.168.0.222:8080/ws/api/ \\\n             -e CQHTTP_WS_REVERSE_EVENT_URL=ws://192.168.0.222:8080/ws/event/ \\\n             richardchien/cqhttp:latest\n```\n\n配置文件位置\n- /Users/play/CODE/QQ/kuQ/coolq/app/io.github.richardchien.coolqhttpapi/config/2262965903.ini\n```\n[2262965903]\nws_reverse_api_url=ws://192.168.0.222:8080/ws/api/\nws_reverse_event_url=ws://192.168.0.222:8080/ws/event/\nuse_ws_reverse=yes\n```\n"
  },
  {
    "path": "2020/3-13-macOS-lock-screen/README.md",
    "content": "# macOS 倒计时 自动锁屏\n\n- 参考\n    - Ubuntu [A timer that automatically locks the screen to take a break away from the computer?](https://askubuntu.com/questions/696620/a-timer-that-automatically-locks-the-screen-to-take-a-break-away-from-the-comput)\n    - [Mac下添加定时任务](https://blog.csdn.net/lgt633744/article/details/45932035)\n    \n- 键盘快捷键 \n    - Command + Control + Q\n\n- lockscreen.py 比较迅速，马上就锁屏\n- suspend.py 会准备系统，退出当前账号\n\n\n- 添加到.bash_profile ，在命令行可以使用lock 短命令 执行，不需要输入很长的py路径\n```\n#锁屏\nalias lock='python3 /Users/play/CODE/Python_Test/macOS/lockscreen.py  '\nalias suspend='python3 /Users/play/CODE/Python_Test/macOS/suspend.py  '\n```\n\n- 添加到crontab定时任务,晚上23:31定时锁屏\n    - [在MAC OS X上如何启用crontab？](https://www.cnblogs.com/pcy0/p/how-to-enable-crontab-on-osx.html)\n```\ncrontab -e\n31 23 * * * /Users/play/.py3/bin/python3  /Users/play/CODE/Python_Test/macOS/lockscreen.py 0\n```\n- 检查\n```\nsudo launchctl list | grep cron\n15518\t0\tcom.vix.cron\n\ncat /System/Library/LaunchDaemons/com.vix.cron.plist\n\nsudo touch /etc/crontab\n```\n\n"
  },
  {
    "path": "2020/3-13-macOS-lock-screen/lockscreen.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   lockscreen.py\n@Time    :   2020/03/13 10:15:23\n@Author  :   play4fun\n@Desc    :   https://gist.github.com/pudquick/350ba6411df3be77d32a\n很快就锁屏了\n只是锁屏\n'''\nfrom time import sleep\nimport os,sys\nfrom ctypes import CDLL\n\ndef lock():\n    loginPF = CDLL('/System/Library/PrivateFrameworks/login.framework/Versions/Current/login')\n    result = loginPF.SACLockScreenImmediate()\n    print('锁屏:',result)#0\n    pass\n\nif __name__ == \"__main__\":\n    if len(sys.argv)==2:\n        minute=int(sys.argv[1])        \n    else:\n        print('lockscreen.py 分钟数')\n        minute=35\n    \n    print(f\"{minute}分钟后锁屏\")\n    sleep(minute*60)\n    lock()"
  },
  {
    "path": "2020/3-13-macOS-lock-screen/suspend.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   suspend.py\n@Time    :   2020/03/13 09:36:08\n@Author  :   play4fun\n@Desc    :   https://www.reddit.com/r/Python/comments/2rrb29/need_a_way_to_lock_and_unlock_macbook_screen_with/\n\n登录窗口\n退出当前账号\n可以休眠\n\n192.30.253.118 gist.github.com\n'''\n\nfrom time import sleep\nimport os,sys\n\ndef lock():\n    cmd='/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -suspend'\n    print(cmd)\n    os.system(cmd)\n    pass\n\nif __name__ == \"__main__\":\n    if len(sys.argv)==2:\n        minute=int(sys.argv[1])        \n    else:\n        print('suspend.py 分钟数')\n        minute=45\n    \n    print(f\"{minute}分钟后退出会话\")\n    sleep(minute*60)\n    lock()\n"
  },
  {
    "path": "2020/3-14-DNS查询/README.md",
    "content": "\n# DNS查询 nameserver\n- 视频 [DNS查询nameserver，用WireShark检查DNS报文，Python编程](https://www.bilibili.com/video/av96180822/)\n- 参考 \n    - [一个强大的基于 Go 的 DNS 库](https://zhengyinyong.com/post/go-dns-library/)\n\n- DNS设置\n    - cat /etc/resolv.conf\n\n- 打开 WireShark\n    - 过滤 dns\n    - DNS 报文格式\n    - 测试 \n        - dig @114.114.114.114 www.free-proxy.com\n\n- Python编程\n```\nimport socket\nhost='www.bilibili.com'\nsocket.gethostbyname(host)\n#'120.92.113.99'\n```\n- 指定 nameserver\n    - https://github.com/rthalley/dnspython/tree/master/examples\n```\nimport dns.resolver\nresolver = dns.resolver.Resolver(configure=False)\nresolver.nameservers = ['8.8.8.8']\nanswer = resolver.query('amazon.com', 'A')\nfor ans in answer.response.answer:\n    print(ans)\n    for rec in ans.items:\n        print('ip ',rec)\n```\n- Go 编程\n    - [一个强大的基于 Go 的 DNS 库](https://zhengyinyong.com/post/go-dns-library/)"
  },
  {
    "path": "2020/3-14-时间管理/README.md",
    "content": "# 时间管理\n- 视频 [时间管理！番茄工作法，Python编程倒计时，macOS自动锁屏](https://www.bilibili.com/video/av96158601/)\n\n- [番茄工作法](https://baike.baidu.com/item/%E7%95%AA%E8%8C%84%E5%B7%A5%E4%BD%9C%E6%B3%95/6353502)\n    - 使用番茄工作法，选择一个待完成的任务，将番茄时间设为25分钟，专注工作，中途不允许做任何与该任务无关的事，\n    - 直到番茄时钟响起，然后在纸上画一个X短暂休息一下（5分钟就行），每4个番茄时段多休息一会儿。\n\n- 手机App\n    - iPhone 倒计时\n    - Android 循环闹钟\n\n- Python程序\n    - [macOS 倒计时 自动锁屏](https://github.com/makelove/Programer_Log/tree/master/2020/3-13-macOS-lock-screen)\n\n- macOS App\n    - [Be Focused](https://apps.apple.com/cn/app/be-focused-%E5%B7%A5%E4%BD%9C%E5%92%8C%E5%AD%A6%E4%B9%A0%E7%9A%84%E8%AE%A1%E6%97%B6%E5%99%A8/id973134470?mt=12)\n- 魔方倒计时，京东购买\n    - [码仕 定时器](https://union-click.jd.com/jdc?e=&p=AyIGZRNYEwoVA1MSWCULFAVSGlodMlZYDUUEJVtXQhRZUAscSkIBR0RJHUlSSkkFSRxUVxZPRVJaRkFKSwlQWkxYW10LVlZqUlkSXRcFEwZdKy9tA2t7F1gLd2VSVRdFXkVbbgISATsZDiIGZRtaFAMWDlYfUhcyIgdWKw17AhMGVBpSHQcbBGUbWBwEFgJWE1gWMhIDXB5bEQIXAlETXhcyFQdcKwtJUllfCk1YFAcaN2USXRcFEwZdK1glMiIHZRhrV2xHBVRLDxRQE1QAGl4QUhAAXRtfFVYVBlVMWBADElVWTmsXAxMDXA%3D%3D)"
  },
  {
    "path": "2020/3-16-GitHub-Free/README.md",
    "content": "# Github 免费资源\n- https://github.com/search\n\n- 视频 [大宝藏！Github免费资源！免费电子书](https://www.bilibili.com/video/av96702294/)\n\n- 搜索 关键词，只要你的关键词 恰当，就能找到，很多意想不到的东西\n\n- 搜索 免费\n    - 免费 ssr\n        - [类酸酸乳订阅源聚合](https://github.com/nulastudio/Freedom)\n    - 免费 电子书\n        - [免费的计算机编程类中文书籍](https://github.com/justjavac/free-programming-books-zh_CN)\n    - 免费 API\n        - [统计了网上诸多的免费API，为您收集免费的接口服务，做一个api的搬运工](https://github.com/fangzesheng/free-api) \n    - 免费 代理\n    - 免费 电影\n        - [各大网站vip视频免费观看 等 Mac版。付费电影，VIP会员剧等，去广告播放。](https://github.com/iodefog/VipVideo)\n\n- 搜索 free\n    - 免费 英文电子书\n    - 免费 从入门到精通 教程\n    - 造轮子 [build-your-own-x](https://github.com/danistefanovic/build-your-own-x)\n\n- 免费 IP代理\n    - https://github.com/jiangxianli/ProxyIpLib\n        - 验证有效"
  },
  {
    "path": "2020/3-16-GitHub-Free/proxy_list1.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   proxy_list1.py\n@Time    :   2020/03/16 10:32:51\n@Author  :   play4fun\n@Desc    :   \n'''\n\nimport requests\nimport shelve\nfrom verify_proxy import verify\nfrom time import sleep\n\ndbp = 'proxy_list1'\n\n\ndef main():\n    pList = get_proxy()\n    # with shelve.open(dbp) as db:\n    #     # pList = db.get('pList', get_proxy())\n    #     pList = db.get('pList', [])\n    print('-' * 40)\n\n    proxy_list = [f'{d[\"protocol\"]}://{d[\"ip\"]}:{d[\"port\"]}' for d in pList]\n    rsl = map(verify, proxy_list)\n    rsl2 = filter(lambda x: x[0] is True, rsl)\n    rsl3 = sorted(rsl2, key=lambda x: x[2])\n\n    print('-' * 40)\n    print('合格代理:', len(rsl3))\n    print(rsl3)\n    with shelve.open(dbp) as db:  # 保存下来\n        db['verifyed'] = rsl3\n    pass\n\n\n\ndef get_proxy():\n    pList = []\n    for i in range(1, 11):\n        sleep(2)#并发限制\n        url = f'https://www.freeip.top/api/proxy_ips?country=%E4%B8%AD%E5%9B%BD&page={i}&order_by=validated_at&order_rule=DESC'\n        try:\n            rs = requests.get(url)\n            js = rs.json()\n        except Exception as e:\n            print(e)\n            continue\n\n        l1 = [d for d in js['data']['data'] if d['protocol'] == 'https']  # 只需要https代理\n        pList += l1\n\n        # break\n    with shelve.open(dbp) as db:\n        db['pList'] = pList\n        print('获取到https代理:', len(pList))\n    return pList\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2020/3-16-GitHub-Free/verify_proxy.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   verify_proxy.py\n@Time    :   2020/03/15 09:49:45\n@Author  :   play4fun\n@Desc    :   https://github.com/jiangxianli/ProxyIpLib\n\nhttps://www.freeip.top/?page=1&protocol=https\nhttps://144.76.214.154:1080\n'''\n\nimport requests\nfrom time import time\n\n\ndef verify(proxy: str):\n    print('-' * 20)\n\n    start = time()\n    proxies = {\"http\": proxy, \"https\": proxy}\n    url = 'https://httpbin.org/ip'\n    try:\n        rs = requests.get(url, proxies=proxies, verify=True, timeout=10)\n    except Exception as e:\n        print(e)\n        return False, proxy, 0\n    spendT = time() - start\n\n    # print(rs.text)\n    request_time = rs.elapsed.total_seconds()\n    print('花费时间', request_time, ':', spendT)\n    js = rs.json()\n    print(proxy, js['origin'])\n    if js['origin'] in proxy:\n        print('代理工作正常', True, proxy, request_time)\n        return True, proxy, request_time\n    return False, proxy, 0\n    pass\n\n\ndef main():\n    #  计算 花费的时间\n\n    # proxy='https://144.76.214.154:1080'#不支持https ，可能是蜜罐\n    proxy = 'https://121.237.149.238:3000'  # 延迟太长\n    proxy = 'https://180.183.51.135:8080'  # \n    proxy = 'https://128.199.184.93:8080'  #\n\n    rs = verify(proxy)\n    print(rs)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2020/3-16-企业微信/QYWX_APP/WXBizMsgCrypt.py",
    "content": "#!/usr/bin/env python\n#-*- encoding:utf-8 -*-\n\n\"\"\" 对企业微信发送给企业后台的消息加解密示例代码.\n@copyright: Copyright (c) 1998-2014 Tencent Inc.\n\n\"\"\"\n# ------------------------------------------------------------------------\n\nimport base64\nimport string\nimport random\nimport hashlib\nimport time\nfrom Crypto.Cipher import AES\nimport xml.etree.cElementTree as ET  \nimport sys\nimport ierror\n\nclass FormatException(Exception):\n    pass\n\ndef throw_exception(message, exception_class=FormatException):\n    \"\"\"my define raise exception function\"\"\"\n    raise exception_class(message)\n\ndef generateNonce(digits = 16):\n    \"\"\" 随机生成16位字符串\n    @return: 16位字符串\n    \"\"\" \n    rule = string.ascii_lowercase + string.digits\n    str = random.sample(rule, digits)\n    return \"\".join(str)\n\nclass SHA1:\n    \"\"\"计算企业微信的消息签名接口\"\"\"   \n    \n    def getSHA1(self, token, timestamp, nonce, encrypt):\n        \"\"\"用SHA1算法生成安全签名\n        @param token:  票据\n        @param timestamp: 时间戳\n        @param encrypt: 密文\n        @param nonce: 随机字符串\n        @return: 安全签名\n        \"\"\"\n        try:\n            sortlist = [token, timestamp, nonce, encrypt]\n            sortlist.sort()\n            sha = hashlib.sha1()\n            sha.update(\"\".join(sortlist).encode('utf-8'))\n            return  ierror.WXBizMsgCrypt_OK, sha.hexdigest()\n        except Exception as e:\n            print(e)\n            return  ierror.WXBizMsgCrypt_ComputeSignature_Error, None\n  \n\nclass XMLParse:\n    \"\"\"提供提取消息格式中的密文及生成回复消息格式的接口\"\"\"   \n     \n    # xml消息模板   \n    AES_TEXT_RESPONSE_TEMPLATE = '<xml>'+\\\n        '<Encrypt><![CDATA[%(msg_encrypt)s]]></Encrypt>'+\\\n        '<MsgSignature><![CDATA[%(msg_signaturet)s]]></MsgSignature>'+\\\n        '<TimeStamp>%(timestamp)s</TimeStamp>'+\\\n        '<Nonce><![CDATA[%(nonce)s]]></Nonce>'+\\\n    '</xml>'\n\n    def extract(self, xmltext):\n        \"\"\"提取出xml数据包中的加密消息 \n        @param xmltext: 待提取的xml字符串\n        @return: 提取出的加密消息字符串\n        \"\"\"\n        try:\n            xml_tree = ET.fromstring(xmltext)\n            encrypt  = xml_tree.find(\"Encrypt\")\n            return  ierror.WXBizMsgCrypt_OK, encrypt.text\n        except Exception as e:\n            print(e)\n            return  ierror.WXBizMsgCrypt_ParseXml_Error,None,None\n    \n    def generate(self, encrypt, signature, timestamp, nonce):\n        \"\"\"生成xml消息\n        @param encrypt: 加密后的消息密文\n        @param signature: 安全签名\n        @param timestamp: 时间戳\n        @param nonce: 随机字符串\n        @return: 生成的xml字符串\n        \"\"\"\n        resp_dict = {\n                    'msg_encrypt' : encrypt,\n                    'msg_signaturet': signature,\n                    'timestamp'    : timestamp,\n                    'nonce'        : nonce,\n                     }\n        resp_xml = self.AES_TEXT_RESPONSE_TEMPLATE % resp_dict\n        return resp_xml   \n    \nclass ResponseMessage():\n    # python dict 转换成特定格式的xml,下面是一些模板\n    \"\"\"\n        text_response = {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'text',\n            'content':'',\n        }\n        voice_response= {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'voice',\n            'media_id':''\n        }\n        image_response= {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'image',\n            'data':[\n                {'media_id':''}\n            ]\n        }\n        video_response= {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'video',\n            'media_id':'',\n            'title':'',\n            'description':'',\n        }\n        article_response= {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'news',\n            'data':[\n                {'title':'',\n                 'description':'',\n                 'pic_url':'',\n                 'url':'',\n                }\n            ]\n        }\n        \n    \"\"\"\n    BASIC_RESPONSE_FIELDS = '<ToUserName><![CDATA[%(to_user)s]]></ToUserName>'+\\\n       '<FromUserName><![CDATA[%(from_user)s]]></FromUserName>'+\\\n       '<CreateTime>%(timestamp)s</CreateTime>'+\\\n       '<MsgType><![CDATA[%(type)s]]></MsgType>'\n\n    TEXT_RESPONSE_FIELD = \"<Content><![CDATA[%(content)s]]></Content>\"\n    VOICE_RESPONSE_FIELD = \"<Voice><![CDATA[%(media_id)s]]></Voice>\"\n    IMAGE_RESPONSE_FIELD = \"<MediaId><![CDATA[%(media_id)s]]></MediaId>\"\n    VIDEO_RESPONSE_FIELD = '<Video>'+\\\n                       '<MediaId><![CDATA[%(media_id)s]]></MediaId>' +\\\n                       '<Title><![CDATA[%(title)s]]></Title>'+\\\n                       '<Description><![CDATA[%(description)s]]></Description>'+\\\n                   '</Video>'\n    ARTICLE_RESPONSE_FIELD = '<items>'+\\\n                       '<Title><![CDATA[%(title)s]]></Title>'+\\\n                       '<Description><![CDATA[%(description)s]]></Description>'+\\\n                       '<PicUrl><![CDATA[%(pic_url)s]]></PicUrl>' +\\\n                       '<Url><![CDATA[%(url)s]]></Url>'+\\\n                   '</items>'\n\n    def __init__(self,data_dict):\n        \n        if 'timestamp' not in data_dict:\n            data_dict['timestamp'] = str(int(time.time()))\n        self.data = data_dict\n\n    @property\n    def xml(self):\n        basic = self.BASIC_RESPONSE_FIELDS % self.data\n        # text message\n        if self.data['type'] == 'text':\n            return '<xml>' + basic + self.TEXT_RESPONSE_FIELD % self.data + '</xml>'\n        # image message\n        elif self.data['type'] == 'image':\n            tmp = ''\n            for d in self.data['data']:\n                tmp = tmp + self.IMAGE_RESPONSE_FIELD % d\n            return '<xml>' + basic + '<Image>' +tmp+ '</Image></xml>'\n        # voice message\n        elif self.data['type'] == 'voice':\n            return '<xml>' + basic + self.VOICE_RESPONSE_FIELD % self.data + '</xml>'\n        # video message\n        elif self.data['type'] == 'video':\n            return '<xml>' + basic + self.VIDEO_RESPONSE_FIELD % self.data + '</xml>'\n        # news message\n        elif self.data['type'] == 'news':\n            tmp = ''\n            for d in self.data['data']:\n                tmp = tmp + self.ARTICLE_RESPONSE_FIELD % d\n            count = \"<ArticleCount>\"+str(len(self.data['data']))+\"</ArticleCount>\"\n            return '<xml>' + basic + count + '<Articles>' +tmp+ '</Articles></xml>'\n        else:\n            return None\n\nclass PKCS7Encoder():\n    \"\"\"提供基于PKCS7算法的加解密接口\"\"\"  \n    \n    block_size = 32\n    def encode(self, text):\n        \"\"\" 对需要加密的明文进行填充补位\n        @param text: 需要进行填充补位操作的明文\n        @return: 补齐明文字符串\n        \"\"\"\n        text_length = len(text)\n        # 计算需要填充的位数\n        amount_to_pad = self.block_size - (text_length % self.block_size)\n        if amount_to_pad == 0:\n            amount_to_pad = self.block_size\n        # 获得补位所用的字符\n        pad = chr(amount_to_pad)\n        if type(text) == bytes:\n            return text + amount_to_pad * amount_to_pad.to_bytes(1,'big')\n        return text + pad * amount_to_pad\n    \n    def decode(self, decrypted):\n        \"\"\"删除解密后明文的补位字符\n        @param decrypted: 解密后的明文\n        @return: 删除补位字符后的明文\n        \"\"\"\n        pad = decrypted[-1]\n        if pad<1 or pad >32:\n            pad = 0\n        return decrypted[:-pad]\n    \n    \nclass Prpcrypt(object):\n    \"\"\"提供接收和推送给企业微信消息的加解密接口\"\"\"\n    \n    def __init__(self,key):\n\n        #self.key = base64.b64decode(key+\"=\")\n        self.key = key\n        # 设置加解密模式为AES的CBC模式   \n        self.mode = AES.MODE_CBC\n    \n            \n    def encrypt(self,text,receiveid):\n        \"\"\"对明文进行加密\n        @param text: 需要加密的明文\n        @return: 加密得到的字符串\n        \"\"\"      \n        # 16位随机字符串添加到明文开头\n\n        text_bytes = text.encode('utf8')\n        text = generateNonce().encode('utf8') + int.to_bytes(len(text_bytes),4,byteorder='big') + text_bytes + receiveid.encode('utf8')\n        # 使用自定义的填充方式对明文进行补位填充\n        pkcs7 = PKCS7Encoder()\n        text = pkcs7.encode(text)\n        # 加密    \n        cryptor = AES.new(self.key,self.mode,self.key[:16])\n        try:\n            ciphertext = cryptor.encrypt(text)\n            # 使用BASE64对加密后的字符串进行编码\n            return ierror.WXBizMsgCrypt_OK, base64.b64encode(ciphertext).decode('utf8')\n        except Exception as e:\n            print(e)\n            return  ierror.WXBizMsgCrypt_EncryptAES_Error,None\n    \n    def decrypt(self,text,receiveid):\n        \"\"\"对解密后的明文进行补位删除\n        @param text: 密文 \n        @return: 删除填充补位后的明文\n        \"\"\"\n        try:\n            cryptor = AES.new(self.key,self.mode,self.key[:16])\n            # 使用BASE64对密文进行解码，然后AES-CBC解密\n            plain_text  = cryptor.decrypt(base64.b64decode(text))\n\n        except Exception as e:\n            print(e)\n            return  ierror.WXBizMsgCrypt_DecryptAES_Error,None\n        try:\n            #pad = plain_text[-1]\n            # 去掉补位字符串 \n            pkcs7 = PKCS7Encoder()\n            plain_text = pkcs7.decode(plain_text)   \n            \n            xml_len = int.from_bytes(plain_text[16:20],byteorder='big')\n            xml_content = plain_text[20 : 20 + xml_len].decode('utf-8')\n            from_receiveid = plain_text[20 + xml_len:].decode('utf-8')\n        except Exception as e:\n            print(e)\n            return  ierror.WXBizMsgCrypt_IllegalBuffer,None\n        if  from_receiveid != receiveid:\n            return ierror.WXBizMsgCrypt_ValidateCorpid_Error,None\n        return 0,xml_content\n    \n    \n        \nclass WXBizMsgCrypt(object):\n    #构造函数\n    def __init__(self,sToken,sEncodingAESKey,sReceiveId):\n        try:\n            self.key = base64.b64decode(sEncodingAESKey+\"=\")  \n            assert len(self.key) == 32\n        except:\n            throw_exception(\"[error]: EncodingAESKey unvalid !\", FormatException) \n            # return ierror.WXBizMsgCrypt_IllegalAesKey,None\n        self.m_sToken = sToken\n        self.m_sReceiveId = sReceiveId\n\n\t\t #验证URL\n         #@param sMsgSignature: 签名串，对应URL参数的msg_signature\n         #@param sTimeStamp: 时间戳，对应URL参数的timestamp\n         #@param sNonce: 随机串，对应URL参数的nonce\n         #@param sEchoStr: 随机串，对应URL参数的echostr\n         #@param sReplyEchoStr: 解密之后的echostr，当return返回0时有效\n         #@return：成功0，失败返回对应的错误码\t\n\n    def VerifyURL(self, sMsgSignature, sTimeStamp, sNonce, sEchoStr):\n        sha1 = SHA1()\n        ret,signature = sha1.getSHA1(self.m_sToken, sTimeStamp, sNonce, sEchoStr)\n        if ret  != 0:\n            return ret, None \n        if not signature == sMsgSignature:\n            return ierror.WXBizMsgCrypt_ValidateSignature_Error, None\n\n        pc = Prpcrypt(self.key)\n        ret,sReplyEchoStr = pc.decrypt(sEchoStr,self.m_sReceiveId)\n        return ret,sReplyEchoStr\n\t\n    def EncryptMsg(self, sReplyMsg, sNonce, timestamp = None):\n        #将企业回复用户的消息加密打包\n        #@param sReplyMsg: 企业号待回复用户的消息，xml格式的字符串\n        #@param sTimeStamp: 时间戳，可以自己生成，也可以用URL参数的timestamp,如为None则自动用当前时间\n        #@param sNonce: 随机串，可以自己生成，也可以用URL参数的nonce\n        #sEncryptMsg: 加密后的可以直接回复用户的密文，包括msg_signature, timestamp, nonce, encrypt的xml格式的字符串,\n        #return：成功0，sEncryptMsg,失败返回对应的错误码None     \n        pc = Prpcrypt(self.key) \n        ret,encrypt = pc.encrypt(sReplyMsg, self.m_sReceiveId)\n        if ret != 0:\n            return ret,None\n        if timestamp is None:\n            timestamp = str(int(time.time()))\n        # 生成安全签名 \n        sha1 = SHA1()\n        ret,signature = sha1.getSHA1(self.m_sToken, timestamp, sNonce, encrypt)\n        if ret != 0: \n            return ret,None \n        xmlParse = XMLParse()  \n        return ret,xmlParse.generate(encrypt, signature, timestamp, sNonce)  \n\n    def DecryptMsg(self, sPostData, sMsgSignature, sTimeStamp, sNonce):\n        # 检验消息的真实性，并且获取解密后的明文\n        # @param sMsgSignature: 签名串，对应URL参数的msg_signature\n        # @param sTimeStamp: 时间戳，对应URL参数的timestamp\n        # @param sNonce: 随机串，对应URL参数的nonce\n        # @param sPostData: 密文，对应POST请求的数据\n        #  xml_content: 解密后的原文，当return返回0时有效\n        # @return: 成功0，失败返回对应的错误码\n         # 验证安全签名 \n        xmlParse = XMLParse()\n        ret,encrypt = xmlParse.extract(sPostData)\n        if ret != 0:\n            return ret, None\n        sha1 = SHA1() \n        ret,signature = sha1.getSHA1(self.m_sToken, sTimeStamp, sNonce, encrypt)\n        if ret != 0:\n            return ret, None \n        if not signature == sMsgSignature:\n            return ierror.WXBizMsgCrypt_ValidateSignature_Error, None\n        pc = Prpcrypt(self.key)\n        ret,xml_content = pc.decrypt(encrypt,self.m_sReceiveId)\n        return ret,xml_content \n"
  },
  {
    "path": "2020/3-16-企业微信/QYWX_APP/callback1.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/3/16 15:41\n# @File    : callback1.py\n\n\n\"\"\"\ncallback1.py:\n\"\"\"\nimport time\nfrom flask import Flask, request, jsonify\nimport xml.etree.cElementTree as ET\n\nfrom config import CorpID, Secret, Token, EncodingAESKey\nfrom WXBizMsgCrypt import WXBizMsgCrypt, ResponseMessage, generateNonce\n\napp = Flask(__name__)\nwxcpt = WXBizMsgCrypt(Token, EncodingAESKey, CorpID)\n\n\n@app.route('/')\ndef hello_world():\n    d = {'msg': 'Hello from Flask! play for fun!'}\n    return jsonify(d)\n\n\n@app.route('/weixin', methods=['GET'])\ndef weixin():\n    print('/weixin')\n\n    # 获取输入参数\n    if request.method == 'GET':\n        try:\n            args = request.args\n            print(args)\n            # print request.args.get('kw', \"\")\n            sVerifyMsgSig = request.args.get('msg_signature', \"\")\n            sVerifyTimeStamp = request.args.get('timestamp', \"\")\n            sVerifyNonce = request.args.get('nonce', \"\")\n            sVerifyEchoStr = request.args.get('echostr', \"\")\n\n            ret, sEchoStr = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp, sVerifyNonce, sVerifyEchoStr)\n            print(ret, sEchoStr)\n            if ret != 0:\n                print(\"ERR: VerifyURL ret: \" + str(ret))\n                return \"ERR: VerifyURL ret: \" + str(ret)\n\n            return sEchoStr\n\n        except ValueError as e:\n            print(\"ValueError\", e)\n            # abort(404)      # 返回 404\n            return \"NULL\"\n\n    return 'NULL'\n\n\n@app.route('/weixin', methods=['POST'])\ndef reply():\n    if request.method == 'POST':\n        data = request.data      \n        # data=b'<xml><ToUserName><![CDATA[wwefbaf556aed20639]]></ToUserName><Encrypt><![CDATA[bBEQ8PazeD7W/IQz61kBUNTGpl4Epv2OzER3NKOyMKHKddYtpXvzmuL8jMgMA6Tg5odxj+T8f+yYbC8bxubV2RbzKQaeJvgcbx8ekzCn1pLXOB+17kcZYD2Bf65FTjhtTdMrdTqBFH4yZTzY/Jf3C5PBz08U8TAxp/x+zmZmFZEGhbfFdWUC2OYhxyXV8aemoLBnkixJdMyP8zFXnlyPvk2WtRxOf+UJb/yX+SbIXwnUDPODj03lgPKSkZj6jpwLv/o6H3wLVifpFTqWwU5ICu5S/tJwO1acyL0yc2oEswZhB2ZdTFCrCGJCjWIT+9abkd9jseb0G9o4dBY/kLuTQhdZIJemofcl0HWUTGLnAPNSQ51sYvfLejz8IKIrQFai11YKrsImyQz5QXLZpe8YVkA+zpDb8SHfZkhKfxP5daM=]]></Encrypt><AgentID><![CDATA[1000003]]></AgentID></xml>'\n        #测试 curl -X POST 'http://127.0.0.1:5000/weixin?msg_signature=4e411db7d0507473882bb5718438364ab5a17bec&timestamp=1584351579&nonce=1584033068'\n        print(data)\n\n        encrypted_xml = data\n        sVerifyMsgSig = request.args.get('msg_signature')\n        sVerifyNonce = request.args.get('nonce')\n        sVerifyTimeStamp = request.args.get('timestamp')\n\n        ret, xml_content = wxcpt.DecryptMsg(encrypted_xml, sVerifyMsgSig, sVerifyTimeStamp, sVerifyNonce)\n        if ret != 0:\n            print(\"ERR: VerifyURL ret: \" + str(ret))\n            return \"ERR: VerifyURL ret: \" + str(ret)\n        #\n        type_fields = {\n            \"text\": [\"ToUserName\", \"FromUserName\", \"CreateTime\", \"MsgType\", \"Content\", \"MsgId\", \"AgentID\"],\n            \"image\": [\"ToUserName\", \"FromUserName\", \"CreateTime\", \"MsgType\", \"PicUrl\", \"MediaId\", \"MsgId\", \"AgentID\"],\n            \"voice\": [\"ToUserName\", \"FromUserName\", \"CreateTime\", \"MsgType\", \"Format\", \"MediaId\", \"MsgId\", \"AgentID\"],\n            \"video\": [\"ToUserName\", \"FromUserName\", \"CreateTime\", \"MsgType\", \"ThumbMediaId\", \"MediaId\", \"MsgId\", \"AgentID\"],\n            \"location\": [\"ToUserName\", \"FromUserName\", \"CreateTime\", \"MsgType\", \"Location_X\", \"Location_Y\", \"Scale\", \"Label\", \"MsgId\", \"AgentID\"],\n            \"link\": [\"ToUserName\", \"FromUserName\", \"CreateTime\", \"MsgType\", \"Title\", \"Description\", \"PicUrl\", \"MsgId\", \"AgentID\"]\n        }\n        xml_tree = ET.fromstring(xml_content)\n        type_name = xml_tree.find(\"MsgType\").text\n        msg = {}\n        for nodename in type_fields[type_name]:\n            msg[nodename] = xml_tree.find(nodename).text\n\n        # 示例，原文返回\n        print(msg)\n        message = msg\n\n        replystr = '收到:\\n' + message['Content']\n        resp_dict = {\n            'to_user': message['FromUserName'],\n            'from_user': message['ToUserName'],\n            'type': 'text',\n            'content': replystr,\n        }\n        xml_message = ResponseMessage(resp_dict).xml\n        nonce = generateNonce()\n        ret, returnMsg = wxcpt.EncryptMsg(xml_message, nonce)\n        if ret != 0:\n            print(\"ERR: VerifyURL ret: \" + str(ret))\n            return \"ERR: VerifyURL ret: \" + str(ret)\n        return returnMsg\n    return 'NULL'\n\n\nclass ResponseMessage():\n    # python dict 转换成特定格式的xml,下面是一些模板\n    \"\"\"\n        text_response = {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'text',\n            'content':'',\n        }\n        voice_response= {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'voice',\n            'media_id':''\n        }\n        image_response= {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'image',\n            'data':[\n                {'media_id':''}\n            ]\n        }\n        video_response= {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'video',\n            'media_id':'',\n            'title':'',\n            'description':'',\n        }\n        article_response= {\n            'to_user':'',\n            'from_user':'',\n            'timestamp':'',\n            'type':'news',\n            'data':[\n                {'title':'',\n                 'description':'',\n                 'pic_url':'',\n                 'url':'',\n                }\n            ]\n        }\n\n    \"\"\"\n    BASIC_RESPONSE_FIELDS = '<ToUserName><![CDATA[%(to_user)s]]></ToUserName>' + \\\n                            '<FromUserName><![CDATA[%(from_user)s]]></FromUserName>' + \\\n                            '<CreateTime>%(timestamp)s</CreateTime>' + \\\n                            '<MsgType><![CDATA[%(type)s]]></MsgType>'\n\n    TEXT_RESPONSE_FIELD = \"<Content><![CDATA[%(content)s]]></Content>\"\n    VOICE_RESPONSE_FIELD = \"<Voice><![CDATA[%(media_id)s]]></Voice>\"\n    IMAGE_RESPONSE_FIELD = \"<MediaId><![CDATA[%(media_id)s]]></MediaId>\"\n    VIDEO_RESPONSE_FIELD = '<Video>' + \\\n                           '<MediaId><![CDATA[%(media_id)s]]></MediaId>' + \\\n                           '<Title><![CDATA[%(title)s]]></Title>' + \\\n                           '<Description><![CDATA[%(description)s]]></Description>' + \\\n                           '</Video>'\n    ARTICLE_RESPONSE_FIELD = '<items>' + \\\n                             '<Title><![CDATA[%(title)s]]></Title>' + \\\n                             '<Description><![CDATA[%(description)s]]></Description>' + \\\n                             '<PicUrl><![CDATA[%(pic_url)s]]></PicUrl>' + \\\n                             '<Url><![CDATA[%(url)s]]></Url>' + \\\n                             '</items>'\n\n    def __init__(self, data_dict):\n\n        if 'timestamp' not in data_dict:\n            data_dict['timestamp'] = str(int(time.time()))\n        self.data = data_dict\n\n    @property\n    def xml(self):\n        basic = self.BASIC_RESPONSE_FIELDS % self.data\n        # text message\n        if self.data['type'] == 'text':\n            return '<xml>' + basic + self.TEXT_RESPONSE_FIELD % self.data + '</xml>'\n        # image message\n        elif self.data['type'] == 'image':\n            tmp = ''\n            for d in self.data['data']:\n                tmp = tmp + self.IMAGE_RESPONSE_FIELD % d\n            return '<xml>' + basic + '<Image>' + tmp + '</Image></xml>'\n        # voice message\n        elif self.data['type'] == 'voice':\n            return '<xml>' + basic + self.VOICE_RESPONSE_FIELD % self.data + '</xml>'\n        # video message\n        elif self.data['type'] == 'video':\n            return '<xml>' + basic + self.VIDEO_RESPONSE_FIELD % self.data + '</xml>'\n        # news message\n        elif self.data['type'] == 'news':\n            tmp = ''\n            for d in self.data['data']:\n                tmp = tmp + self.ARTICLE_RESPONSE_FIELD % d\n            count = \"<ArticleCount>\" + str(len(self.data['data'])) + \"</ArticleCount>\"\n            return '<xml>' + basic + count + '<Articles>' + tmp + '</Articles></xml>'\n        else:\n            return None\n\n\nif __name__ == '__main__':\n    app.run(debug=True)\n    # main()\n"
  },
  {
    "path": "2020/3-16-企业微信/QYWX_APP/config.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/3/16 15:49\n# @File    : config.py\n\n\n\"\"\"\nconfig.py:\n\"\"\"\n\n# 企业微信>应用管理>新建\nCorpID = 'wwefbaf556ae3d20639'\nSecret = 'fbeCSHwvc4xtCQmM8jQbgYiHBF0beW2BbuYEJhO5ULg'\nToken = '5gq5U7GBSOSI'\nEncodingAESKey = 'AiT1IIIrORt41FyHIGKnUoXPzFHAp8DmlpbAjDzdr4M'\n"
  },
  {
    "path": "2020/3-16-企业微信/QYWX_APP/ierror.py",
    "content": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n#########################################################################\n# Author: jonyqin\n# Created Time: Thu 11 Sep 2014 01:53:58 PM CST\n# File Name: ierror.py\n# Description:定义错误码含义 \n#########################################################################\nWXBizMsgCrypt_OK = 0\nWXBizMsgCrypt_ValidateSignature_Error = -40001\nWXBizMsgCrypt_ParseXml_Error = -40002\nWXBizMsgCrypt_ComputeSignature_Error = -40003\nWXBizMsgCrypt_IllegalAesKey = -40004\nWXBizMsgCrypt_ValidateCorpid_Error = -40005\nWXBizMsgCrypt_EncryptAES_Error = -40006\nWXBizMsgCrypt_DecryptAES_Error = -40007\nWXBizMsgCrypt_IllegalBuffer = -40008\nWXBizMsgCrypt_EncodeBase64_Error = -40009\nWXBizMsgCrypt_DecodeBase64_Error = -40010\nWXBizMsgCrypt_GenReturnXml_Error = -40011\n"
  },
  {
    "path": "2020/3-16-企业微信/QYWX_APP/安装.md",
    "content": "\n\npip3 install pycryptodome\n\n"
  },
  {
    "path": "2020/3-16-企业微信/README.md",
    "content": "# 企业微信 Python编程\n\n- 视频 [企业微信【群机器人】轻松上手，企业应用App接收和回复用户消息，Python编程](https://www.bilibili.com/video/av96809101/)\n\n\n- 群机器人\n    - 只能发送\n    - 不能接收 同事或用户的消息\n    - [群机器人配置说明](https://work.weixin.qq.com/api/doc/90000/90136/91770)\n    - Python库 https://github.com/MakDon/we-work-bot\n\n- 企业应用 新建App\n    - 文档\n        - [接收消息与事件](https://work.weixin.qq.com/api/doc/10514)\n        - [企业微信接口调试工具](https://work.weixin.qq.com/api/devtools/devtool.php)\n        - [加解密方案说明](https://work.weixin.qq.com/api/doc/90000/90139/90968)\n        - [加解密库下载与返回码](https://work.weixin.qq.com/api/doc/90000/90138/90307)\n\n    - 部署在服务器\n        - https://play4fun.pythonanywhere.com/\n    - 解密接口 python3\n        - https://github.com/sbzhu/weworkapi_python/tree/master/callback\n        - Django https://github.com/neo20/BizWxCryptor"
  },
  {
    "path": "2020/3-16-企业微信/bot1.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   bot1.py\n@Time    :   2020/03/15 11:21:27\n@Author  :   play4fun\n@Desc    :   https://github.com/MakDon/we-work-bot\n'''\nfrom weworkbot import Bot as wBot\ndef main():\n    url='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=2a599e1c-9ec7-4f64-ad18-cf7cdfdca8249'   \n\n    rs=wBot(url).set_text(\"hello from  Python3,使用vscode编辑\").send()\n    wBot(url).set_text('<font color=\"info\">markdown HTML文本，测试</font>', type='markdown').send()\n    print('发送成功？')\n    pass\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2020/3-17-Auto.js/Programer-Pay-Solution.md",
    "content": "\n# 个人开发者-支付方案\n\n- 视频 [Auto.js+ mitmproxy个人开发者-支付方案，没有营业执照也可以向客户收款，自动监听【收款小账本】小程序](https://www.bilibili.com/video/av97288306/)\n\n- 微信支付，付款码\n    - 用Auto.js批量生成 付款二维码,1000个\n- 发给用户\n    - 用户支付\n\n- mitmproxy 监听 【收款小账本】小程序\n    - 收款记录\n    - 自定义查询\n    - 近24小时\n- mitmproxy可以编写Python程序，自动监控网络流量\n    - 过滤域名 ~d httpbin\n    - 过滤域名 ~d pay\n\n## 最简单的方案\n- 生成固定金额的付款码\n- 用户下单\n- 付款码发给用户\n    - 同时生成一个 随机字符串 ，3位 X4y\n    - 让用户在付款时，把【随机字符串】输入【备注】\n        - 否则不退款\n    - 用户点击【已付款】按钮\n    - 服务器 通过mitmproxy监听【收款小账本】小程序的接口\n        - 更新 收款信息\n        - 对比【随机字符串】\n        - 给用户发货"
  },
  {
    "path": "2020/3-17-Auto.js/README.md",
    "content": "# Auto.js 不需要Root权限的JavaScript自动化软件\n- https://github.com/hyb1996/Auto.js\n- 文档 https://hyb1996.github.io/AutoJs-Docs/#/\n\n- 视频 [快速上手！Auto.js从入门到精通](https://www.bilibili.com/video/av96970457/)\n\n- 用途\n    - 薅羊毛\n    - 方便手机用户执行常用操作，签到\n\n- 不能下载，被下架\n    - https://github.com/hyb1996/Auto.js/issues/500\n    - 微信云盘\n        - 链接： https://share.weiyun.com/5HWiMTR （密码：awEw）\n        - Auto.js_V4.0.1 Beta.apk\n\n- 安装后\n    - 无障碍服务\n    - 悬浮窗\n    - 连接电脑 VSCode\n\n\n- VSCode 插件\n    - https://github.com/hyb1996/Auto.js-VSCode-Extension\n    - 手机连接电脑，远程开发\n\n\n\n\n\n- 案例-教程\n    - https://github.com/hyb1996/Auto.js/tree/master/app/src/main/assets/sample\n        - svn export https://github.com/hyb1996/Auto.js/trunk//app/src/main/assets/sample\n\n- 参考 \n    - [基于Auto.js的辅助工具项目 (蚂蚁森林) ](https://github.com/SuperMonster003/Auto.js_Projects/tree/Ant_Forest)\n    - [Auto.js脚本：蚂蚁森林收能量 星星球 京东金融签到 微信运动点赞等](https://github.com/e1399579/autojs)\n    - [[微信][支付宝]扫码支付 NO ROOT](https://www.autojs.org/topic/3117/%E5%BE%AE%E4%BF%A1-%E6%94%AF%E4%BB%98%E5%AE%9D-%E6%89%AB%E7%A0%81%E6%94%AF%E4%BB%98-no-root)\n    - [常用移动应用 Packagename 和 URL Scheme](https://www.zybuluo.com/jean/note/286981)\n    - [auto.js的使用以及薅羊毛插件示例](https://zhuanlan.zhihu.com/p/72319859)\n    - [Auto.js使用教程合辑](https://www.autojs.org/topic/2998/auto-js%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B%E5%90%88%E8%BE%91)\n\n\n"
  },
  {
    "path": "2020/3-17-Auto.js/微信/微信-收款码-输入金额-备注.js",
    "content": "auto();\n//微信Android版本:7.0.10\n//验证成功\n\n//日志输出\nfunction tLog(msg) {\n    toast(msg);\n    console.log(msg)\n}\n\n//进入【收款码】页面\n\ntoast(\"输入金额\");\n//点击成功\nsetScreenMetrics(1080, 2340);//屏幕截图，便能看到分辨率\nclick(322,1110);//控件的边界 bounds = (306,1102,458,1154)\n\nid(\"dm\").findOne().setText(\"21.58\")\n\n//不成功\n//添加收钱备注\nid(\"b2e\").findOne().click()//太快了\nsleep(3000)\ntLog(\"添加收钱备注 waitFor\");\nid(\"cdb\").waitFor()\nvar input1=id(\"cdb\").findOne()\ninput1.click()//先点击再输入\nsleep(2000)\ntoast('先点击再输入')\ninput1.setText(\"f5j2fr89HIWfx\")//不行\nsleep(3000)\nid(\"b49\").findOne().click()//确定，返回\n\n//点击，确定\nsleep(3000)\nid(\"b2f\").findOne().click()\n\ntoast(\"点击，确定\");\n\nsleep(3000)\n\n//保存收款码\n// bounds = (622,1227,812,1279)\nclick(700,1230);\n\n//监听toast日志\n\n"
  },
  {
    "path": "2020/3-17-Auto.js/微信/微信-收款码-输入金额-捕捉toast.js",
    "content": "auto();\n//微信Android版本:7.0.10\n//验证成功\n\n//监听toast日志\n//11:58:40.480/D: \n// Toast内容: 图片已保存至/storage/emulated/999/tencent/MicroMsg/WeiXin/mm_facetoface_collect_qrcode_1584503919894.png 文件夹 \n// 来自: 微信 \n// 包名: com.tencent.mm\n\nvar price = \"349.78\"\n\nevents.observeToast();\nevents.onToast(function (toast) {\n    var pkg = toast.getPackageName();\n    var txt = toast.getText()\n    log(\"Toast内容: \" + txt +\n        \" 来自: \" + getAppName(pkg) +\n        \" 包名: \" + pkg);\n    if (pkg === 'com.tencent.mm') {\n        //正则\n        var reg = new RegExp('\\/storage\\/emulated\\/999\\/tencent\\/MicroMsg\\/WeiXin\\/mm_facetoface_collect_qrcode_(\\\\d+).png');\n        var fp = txt.match(reg)[0]\n        log(fp)\n        //ls /storage/emulated/999\n        // ls: /storage/emulated/999: Permission denied\n\n        var new_fp = '/sdcard/Download/wechat-pay-qr/' + price + '.png'\n        //文件重命名\n        // sleep(1000)\n        files.copy(fp, new_fp);//可以复制，不能move\n        //只有最后一个文件被复制，为什么？\n        log('文件重命名:' + new_fp)\n    }\n});\n\n\n\n//进入【收款码】页面\n// className(\"android.widget.TextView\").text(\"二维码收款\").findOne().click() //不行\nfunction create(price) {\n    toast(\"输入金额\");\n    //点击成功\n    setScreenMetrics(1080, 2340);//屏幕截图，便能看到分辨率\n    click(322, 1110);//控件的边界 bounds = (306,1102,458,1154)\n\n    id(\"dm\").findOne().setText(price)\n    //点击，确定\n    id(\"b2f\").findOne().click()\n    toast(\"点击，确定\");\n\n    sleep(3000)\n\n    //保存收款码\n    // bounds = (622,1227,812,1279)\n    click(700, 1230);\n    sleep(3000)\n    //消除金额\n    toast('消除金额')\n    // id(\"b30\").findOne().click()//不行\n    // id(\"list\").findOne().children().forEach(child => {\n    //     var target = child.findOne(id(\"b30\"));\n    //     target.click();\n    // });\n    // bounds = (306,1227,458,1279) \n    click(400, 1240)\n    sleep(1000)\n\n\n    // back()\n}\nfor (i = 4512; i < 4516; i++) {\n    price=''+i/100\n    log('价格:',price);   \n    create(price) \n    sleep(2000)    \n}"
  },
  {
    "path": "2020/3-17-Auto.js/微信/微信-收款码-输入金额.js",
    "content": "//微信Android版本:7.0.10\n//验证成功\n\n//进入【收款码】页面\n\ntoast(\"输入金额\");\n//点击成功\nsetScreenMetrics(1080, 2340);//屏幕截图，便能看到分辨率\nclick(322,1110);//控件的边界 bounds = (306,1102,458,1154)\n\nid(\"dm\").findOne().setText(\"13.98\")\n//点击，确定\nid(\"b2f\").findOne().click()\ntoast(\"点击，确定\");\n\nsleep(3000)\n\n//保存收款码\n// bounds = (622,1227,812,1279)\nclick(700,1230);\n\n//监听toast日志\n\n"
  },
  {
    "path": "2020/3-17-Auto.js/微信/微信1.js",
    "content": "toast(\"启动App\");\n//启动微信\nlaunch(\"com.tencent.mm\");"
  },
  {
    "path": "2020/3-17-Auto.js/微信/收款码.js",
    "content": "//进入【收款码】页面\ntoast(\"付款\");\n\n//设置金额\n// id(\"list\").findOne().children().forEach(child => {\n//     var target = child.findOne(id(\"b2n\"));\n//     target.click();//不行\n// });\n\nvar getM = text(\"设置金额\");\nif (getM.exists()) {\n    toast(\"找到 收钱 text\");\n}else{\n    toast(\"找不到 收钱 text\");\n}\nsleep(1000)\nif (!getM.findOnce().click()){\n    toast(\"点击失败？\");\n}else{\n    toast(\"点击成功\");//不生效\n}\n\n//点击成功\nsetScreenMetrics(1080, 2340);\nclick(322,1110);//控件的边界 bounds = (306,1102,458,1154)\n"
  },
  {
    "path": "2020/3-17-Auto.js/打开QQ聊天.js",
    "content": "//https://hyb1996.github.io/AutoJs-Docs/#/app\n\n//先运行Auto.js \nvar qq = \"2262965903\";\napp.startActivity({ \n    action: \"android.intent.action.VIEW\", \n    data:\"mqq://im/chat?chat_type=wpa&version=1&src_type=web&uin=\" + qq, \n    packageName: \"com.tencent.mobileqq\", \n});\n\n// 打字，发送\n// ui.input.setText('73.57')\nid(\"input\").findOne().setText('晚上好啊，晚上好啊，晚上好啊1111')\ntoast(\"输入 文本\");//\nid(\"fun_btn\").findOne().click()//发送\n//OK 搞定"
  },
  {
    "path": "2020/3-18-Docker-PHP-dataoke/PHP/README.md",
    "content": "- 本地测试 \n\n## 修改hosts \n```\nvi /etc/hosts\n127.0.0.1 youhui.dark.net.cn\n```\n\n- 参考 php:fmp\n    - https://www.runoob.com/docker/docker-install-php.html\n\n## Docker\nhttps://hub.docker.com/_/php?tab=description\n下载\ndocker pull php:5.6-fpm\n\n## 大淘客cms\nhttps://www.dataoke.com/pmc/basic.html\n下载index.php文件并上传到您自己的服务器\nCMS：高效转链PID\n用户在cms购买时使用该PID为您转链\n更新授权\n\ndocker run -it --rm  -v \"$PWD\":/usr/src/myapp -w /usr/src/myapp php php phpinfo.php\n\n需要Nginx来配合\n\n## 启动PHP OK\ndocker run  --name  myphp-fpm -v \"$PWD\"/nginx/www:/www   php:5.6-fpm\n\n## 启动nginx\n```\ndocker run  -p 80:80 -it --rm \\\n    -v \"$PWD\"/nginx/www:/usr/share/nginx/html:ro \\\n    -v \"$PWD\"/nginx/conf/conf.d:/etc/nginx/conf.d:ro \\\n    --link myphp-fpm:php \\\n    nginx\n```\n\n## 浏览器打开\n- http://youhui.dark.net.cn/\n\n- demo网站 http://www.yangchun.so/\n"
  },
  {
    "path": "2020/3-18-Docker-PHP-dataoke/PHP/nginx/conf/conf.d/php.conf",
    "content": "server {\n    listen       80;\n    server_name  localhost;\n\n    location / {\n        root   /usr/share/nginx/html;\n        index  index.html index.htm index.php;\n    }\n\n    error_page   500 502 503 504  /50x.html;\n    location = /50x.html {\n        root   /usr/share/nginx/html;\n    }\n\n    location ~ \\.php$ {\n        fastcgi_pass   php:9000;\n        fastcgi_index  index.php;\n        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;\n        include        fastcgi_params;\n    }\n}"
  },
  {
    "path": "2020/3-18-Docker-PHP-dataoke/PHP/nginx/www/index.html",
    "content": "<html>\n    <head>\n        <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n        <title>hello 测试一下</title>\n    </head>\n    <body>\n        <h1>hi 测试一下</h1>\n        <div>\n            测试一下\n        </div>\n        <div>\n            测试一下，测试一下，测试一下\n        </div>\n    </body>\n</html>"
  },
  {
    "path": "2020/3-18-Docker-PHP-dataoke/PHP/nginx/www/index.php",
    "content": "<?php\n/*\n * 请勿使用windows下的记事本修改本文件。推荐使用 notepad++\n *  * 版本v2.8\n *  1.缓存支持https\n *\n *  * 版本v2.7\n *  1.优化自动选择最优服务api和增加api数量\n *\n *  版本v2.6\n *  1.自动选择最优服务api地址返回数据\n *  2.请求时添加压缩返回\n * 版本v2.5\n *  1.500页面优化\n *  2.数据请求增加重试,减少请求失败\n * 版本v2.4\n *  新增加cdn节点检测\n * 版本 v2.3\n *  1.500页面展示\n * 版本 v2.2\n *  1.增加mbstring检测\n *  2.错误显示\n *版本 v2.1\n *  1.增加cache检测\n *  2.增加显示debug信息限制\n *\n * 版本 v2.0\n *  1.documentUrl 做兼容解决部分用户二级目录报错\n *  2.增加debug信息方便为用户定位错误\n *\n * 版本 v1.1.0\n * 升级日志：\n *  1、添加自动更新\n *  2、修正缓存的BUG\n *  3、添加自动清理cache\n *  4、实现http code的转发\n *\n * 版本 v1.0.1\n * 升级日志：\n *  1、修正第一次无法打开，需要刷新才能打开的BUG\n *  2、添加对二级目录的支持\n *  3、添加对非index.php文件名的支持。\n *\n * */\n$appId = 'xxxx';  // 站点的APPID （请勿修改和泄漏）\n$appKey = 'xxxxxxxx';// 站点的APP KEY（请勿修改和泄漏）\n\n$proxyVersion = 16;\n$autoCleanCache = 100;\n\n//===============================================================================\n//===============================================================================\n//===============================================================================\n//================               请勿修改以下程序            ====================\n//===============================================================================\n//===============================================================================\n//===============================================================================\n\n$host = \"http://cms4.dataoke.com\";\n\n@date_default_timezone_set('Asia/Shanghai');\n$is_host_data = false;\ntry {\n    if (file_exists(dirname(__FILE__) . DIRECTORY_SEPARATOR . '/dtk.data')) {\n        $host_data = @file_get_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . '/dtk.data');\n        $host_data = @json_decode($host_data, true);\n        if (!empty($host_data['host']) && !empty($host_data['time'])&& $host_data['time'] > strtotime('-1 day')) {\n            $is_host_data = true;\n        }\n    }\n    if ($is_host_data == false) {\n        $host_data = array(\n            'http://cms1.dataoke.com' => 0,\n            'http://cms2.dataoke.com' => 0,\n            'http://cmsserver1.dataoke.com' => 0,\n            'http://cmsserver2.dataoke.com' => 0,\n        );\n        @file_put_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . '/dtk.data', @json_encode(array('host'=>$host_data,'time'=>time())));\n    }\n} catch (Exception $e) {\n\n}\n\n$test_env = strrpos(@$_SERVER['HTTP_USER_AGENT'], 'test') === false ? false : true;\n$requestMethod = strtoupper(@$_SERVER[\"REQUEST_METHOD\"]);\n\n$requestUrl = @$_SERVER[\"REQUEST_URI\"];\nif ($test_env) {\n    ini_set(\"display_errors\", \"On\");\n    error_reporting(E_ALL | E_STRICT);\n}else{\n    @ini_set(\"display_errors\", \"Off\");\n}\n\n\n$css_static = @date('Y-m-d');\n$html_500=<<<html\n<!DOCTYPE html>\n<html>\n    <head>\n        <meta charset=\"utf-8\">\n        <meta http-equiv=\"x-dns-prefetch-control\" content=\"on\"/>\n        <meta name=\"apple-mobile-web-app-capable\" content=\"yes\"/>\n        <meta content=\"telephone=no\" name=\"format-detection\"/>\n        <meta name=\"viewport\" content=\"width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no\"/>\n        <link href=\"https://cmsstatic.dataoke.com/error/error.css?v={$css_static}\" rel=\"stylesheet\">\n </head>\n\n<body>\n  <div class=\"error_main\">\n    <p class=\"img\"></p>\n    <p class=\"text\">咦？出错啦，请稍后再试～ </p>\n    <p class=\"botton\">\n      <a  onclick=\"window.location.reload();\" href=\"javascript:;\" class=\"botton_par\">点击刷新</a>\n    </p>\n  </div>\n</body>\n<script src=\"https://cmsstatic.dataoke.com/error/error.js?v={$css_static}\"></script>\n</html>\nhtml;\n\n//debug\nif ($test_env && isset($_GET['debug']) && $_GET['debug'] == 'php') {\n    header(\"Content-type: text/html; charset=utf-8\");\n    echo 'cms 版本：' . $proxyVersion . '<br>';\n    echo 'php 版本：' . PHP_VERSION . '<br>';\n    if (function_exists('curl_init')) {\n        echo 'curl 已经开启 ' . '<br>';\n    } else {\n        echo 'curl <span style=\"color: red\">未开启,请先开启curl扩展，否则无法运行,请联系您的空间或者服务器提供商</span>' . '<br>';\n    }\n    if (function_exists('mb_substr')) {\n        echo 'mbstring 已经开启 ' . '<br>';\n    } else {\n        echo 'mbstring <span style=\"color: red\">未开启,请先开启mbstring扩展，否则无法运行</span>' . '<br>';\n    }\n    $test_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'cache';\n    $test_file = $test_dir . '/test.txt';\n    if (!is_dir($test_dir)) {\n        @mkdir($test_dir);\n    }\n    @file_put_contents($test_file, 'test');\n    if (file_exists($test_file)) {\n        echo 'cache：有效<br>';\n    } else {\n        echo 'cache <span style=\"color: red\">无效,请设置读写修改权限</span>' . '<br>';\n    }\n    if(function_exists('gethostbyname')){\n        echo $host.'  --CDN 节点 ---'.gethostbyname(str_replace('http://','',$host)).'<br/>';\n        echo 'www.dataoke.com  --CDN 节点 ---'.gethostbyname(\"www.dataoke.com\");\n    }\n    exit;\n}\nif ($test_env && isset($_GET['debug']) && $_GET['debug'] == 'fast') {\n    var_dump($host_data);exit;\n}\n$cache = new CacheHelper();\n\nif (isset($_REQUEST['clean'])) {\n    $cache->clean();\n    header(\"Content-type: text/html; charset=utf-8\");\n    echo '已清除缓存';\n    exit;\n}\nif (mt_rand(0, $autoCleanCache) == 1) {\n    $cache->clean();\n}\n$key = md5($requestUrl . CacheHelper::isMobile().CacheHelper::isHttps() . CacheHelper::isIPad() . CacheHelper::isIPhone() . CacheHelper::isMicroMessenger().CacheHelper::isWeibo().CacheHelper::isSpider());\nif ($requestMethod == 'GET') {\n    if (!$test_env) {\n        $cacheData = $cache->Get($key);\n        if ($cacheData !== false && !empty($cacheData)) {\n            @header('Dtk-Cache-Check:2');\n            echo $cacheData;\n            exit;\n        }\n    }\n}\n\n$documentUrl = @$_SERVER[\"PHP_SELF\"];\nif (empty($documentUrl)) {\n    $documentUrl = @$_SERVER[\"SCRIPT_NAME\"];\n}\nif (empty($documentUrl)) {\n    $documentUrl = @$_SERVER[\"DOCUMENT_URI\"];\n}\nif (empty($documentUrl)) {\n    $documentUrl = $requestUrl;\n    $str_pos = strpos($requestUrl, '?');\n    if ($str_pos !== false) {\n        $documentUrl = substr($requestUrl, 0, $str_pos);\n    }\n}\nif(empty($documentUrl)){\n    $documentUrl='/index.php';\n}\n\nif (!function_exists('gzdecode')) {\n    if (file_exists('gzinflate')) {\n        function gzdecode($data)\n        {\n            return @gzinflate(substr($data, 10, -8));\n        }\n    }\n}\n\n$httpHelper = new HttpHelper($appId, $appKey, $proxyVersion, $documentUrl);\n$httpHelper->host_data = $host_data;\nif ($is_host_data) {\n    $fast_host = $httpHelper->getFastUrl();\n    if (!empty($fast_host)) {\n        $host = $fast_host;\n    }\n}\n$html = $httpHelper->getHtml($host, $requestUrl, $requestMethod == 'POST' ? @$_POST : array(), $requestMethod);\nif(function_exists('gzdecode')){\n    if(!empty($html)){\n        $new_html = @gzdecode($html);\n        if(!empty($new_html)){\n            $html = $new_html;\n        }\n    }\n}\nif (strpos($html, 'OR--server error') !== false) {\n    $html = '';\n}\nif ($requestMethod == 'GET' && $httpHelper->httpCode == 200 && !empty($html) && !$test_env) {\n    $cache_check = !empty($_COOKIE['cache_check']) ? $_COOKIE['cache_check'] : null;\n    $expire = empty($cache_check) ? 60 : 600;\n    @header('Dtk-Cache-Check-time:'.$expire);\n    $cache->Set($key, $html, $expire);\n}\nif (!empty($html)) {\n    echo $html;\n}else{\n    $duration = 3600+time();\n    @setcookie('cache_check', 1, $duration, '/');\n    echo $html_500;\n}\nexit;\n\n\nclass HttpHelper\n{\n    protected $appId;\n    protected $key;\n    protected $documentUrl;\n    protected $proxyVersion;\n    protected $upgradeUrl = \"http://www.dataoke.com/pmc/upgrade.html\";\n\n    public $host_data = array();\n    public $httpCode = 200;\n\n    public function __construct($appId, $key, $proxyVersion, $documentUrl)\n    {\n        $this->appId = $appId;\n        $this->key = $key;\n        $this->documentUrl = $documentUrl;\n        $this->proxyVersion = $proxyVersion;\n    }\n\n    /**\n     * @return int|string\n     */\n    public function getFastUrl()\n    {\n        $host_data = $this->host_data;\n        if (!empty($host_data['host'])) {\n            $temp_v = '';\n            $temp_k = '';\n\n            $first = 0;\n            foreach ($host_data['host'] as $k => $v) {\n\n                if ($first > 0) {\n                    if ($v <= $temp_v) {\n                        $temp_v = $v;\n                        $temp_k = $k;\n                    }\n                } else {\n                    $temp_v = $v;\n                    $temp_k = $k;\n                }\n\n                $first++;\n\n            }\n            return $temp_k;\n        }\n    }\n\n\n    /**域名转换ip\n     * @param $host\n     * @return bool\n     */\n    public  function hostToIp($host){\n        $ip = false;\n        $host_data = $this->host_data;\n        if (!empty($host_data['ip'][$host]) && !empty($host_data['ip_time'][$host]) && $host_data['ip_time'][$host] > time()) {\n            $ip = $host_data['ip'][$host];\n\n        } else {\n            $ip = $this->getIp($host);\n            if (!empty($ip)) {\n\n                $host_data['ip'][$host] = $ip;\n                $host_data['ip_time'][$host] = time() + 600;\n                $this->host_data = $host_data;\n                @file_put_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . '/dtk.data', @json_encode($host_data));\n            }\n\n\n        }\n\n\n        return $ip;\n    }\n\n    /**获取ip\n     * @param $host\n     * @return bool\n     */\n    public  function getIp($host,$re_try = false){\n        $output = '';\n        global $test_env;\n        try{\n\n            $host = str_replace('http://','',$host);\n\n            if (strlen($host) != (strpos($host, '.com') + 4)) {\n                $host = substr($host, 0, strpos($host, '.com') + 4);\n            }\n\n            if($re_try){\n                $url = 'http://39.106.70.132:80/d?dn=' . $host;\n                $header[] = 'Host: dighttpd.dataoke.com';\n            }else{\n                $url = 'http://crab.qingcdn.com/d?dn='.$host;\n            }\n            $ch = curl_init();\n            curl_setopt($ch, CURLOPT_TIMEOUT, 10);\n            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);\n            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\n            curl_setopt($ch, CURLOPT_HTTPGET, TRUE);\n            curl_setopt($ch, CURLOPT_URL, $url);\n            if(!empty($header)){\n\n                curl_setopt($ch, CURLOPT_HTTPHEADER, $header);\n\n            }\n            $output = curl_exec($ch);\n\n            $output = json_decode($output,true);\n        }catch (Exception $e){\n            if ($test_env){\n                var_dump($e->getMessage());\n            }\n\n        }\n\n        if ($test_env && isset($_GET['debug']) && $_GET['debug'] == 'getip') {\n\n            var_dump($output);\n            var_dump($url);\n\n        }\n        return   !empty($output['data'][$host]['ips']) ? $output['data'][$host]['ips'] : ($re_try?  false: $this->getIp($host,true)  );\n    }\n\n    /**\n     * @param $url\n     * @param $requestUrl\n     * @param array $param\n     * @param string $method\n     * @param bool $isAjax\n     * @param string $cookie\n     * @param string $refer\n     * @param null $userAgent\n     * @param bool $checkNewVersion\n     * @return string\n     */\n    public function getHtml($url, $requestUrl, $param = array(), $method = 'GET', $isAjax = null, $cookie = NULL, $refer = null, $userAgent = null, $checkNewVersion = true,$re_try = true)\n    {\n        $begin_time = @microtime(true);\n        if (strpos($requestUrl, 'auth') !== false) {\n            $url .= '/auth';\n        }\n        if($requestUrl=='/favicon.ico'){\n            exit;\n        }\n        $ch = curl_init();\n        curl_setopt($ch, CURLOPT_HEADER, 1);\n        empty($refer) && $refer = @$_SERVER['HTTP_REFERER'];\n        $ua = $userAgent;\n        empty($ua) && $ua = (!empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '-');\n        $curl_time = $re_try == true ? 5 : 40;\n        curl_setopt($ch, CURLOPT_TIMEOUT, $curl_time);\n        curl_setopt($ch, CURLOPT_USERAGENT, $ua);\n        curl_setopt($ch, CURLOPT_REFERER, $refer);\n        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);\n        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\n\n        $header = array(\n            'APPID: ' . $this->appId,\n            'APPKEY: ' . $this->key,\n            'PROXY-VERSION: ' . $this->proxyVersion,\n            'CMS-HOST: ' . @$_SERVER[\"HTTP_HOST\"],\n            'CMS-CONNECTION: ' . (!empty($_SERVER[\"HTTP_CONNECTION\"]) ? $_SERVER[\"HTTP_CONNECTION\"] : '-'),\n            'CMS-ACCEPT-ENCODING: ' . (!empty($_SERVER[\"HTTP_ACCEPT_ENCODING\"]) ? $_SERVER[\"HTTP_ACCEPT_ENCODING\"] : '-'),\n            'DOCUMENT-URL: ' . $this->documentUrl,\n            'REQUEST-URL: ' . $requestUrl,\n        );\n        $cdn_ip = $this->hostToIp($url);\n\n        if(strpos($ua,'Baidu')!==false||strpos($ua,'spider')!==false|| $ua=='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'){\n            $url = 'http://cms6.dataoke.com';\n            $cdn_ip = false;\n        }\n        $origin_url = $url;\n        if($cdn_ip!==false){\n            $url = str_replace('http://','',$url);\n            $check_url_show = false;\n            if (strpos($url, '/pmc/upgrade.html') !== false) {\n                $check_url_show = true;\n                $url = str_replace('/pmc/upgrade.html', '', $url);\n            }\n            $header[] = 'Host: ' . $url;\n            if ($check_url_show) {\n                $url = $cdn_ip[0] . '/pmc/upgrade.html';\n            } else {\n\n                $url = $cdn_ip[0];\n            }\n\n        }\n        if(function_exists('gzdecode')){\n            $header[] = 'Accept-Encoding: gzip, deflate';\n        }\n        //debug\n        global $test_env;\n        if ($test_env && isset($_GET['debug']) && $_GET['debug'] == 'header') {\n            echo 'CMS-HOST: ' . @$_SERVER[\"HTTP_HOST\"] . '<br>';\n            echo 'DOCUMENT-URL: ' . $this->documentUrl . '<br>';\n            echo 'REQUEST-URL: ' . $requestUrl . '<br>';\n            echo 'api-host-ip: ' . $url . '<br>';\n            echo 'api-host: ' . $origin_url . '<br>';\n            exit;\n        }\n        $_isAjax = false;\n        if ($isAjax) {\n            $_isAjax = true;\n        }\n        if (!$_isAjax && $isAjax === null) {\n            $_isAjax = $this->getIsAjaxRequest();\n        }\n        if ($_isAjax) {\n            $header[] = 'X-Requested-With: XMLHttpRequest';\n        }\n        $clientIp = $this->get_real_ip();\n        if (!empty($clientIp)) {\n            $header[] = 'CLIENT-IP: ' . $clientIp;\n            $header[] = 'CMS-CLIENT-IP: ' . $clientIp;\n            $header[] = 'X-FORWARDED-FOR: ' . $clientIp;\n        }\n        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);\n        if (empty($cookie)) {\n            $cookie = $_COOKIE;\n        }\n        if (is_array($cookie)) {\n            $str = '';\n            foreach ($cookie as $k => $v) {\n                $str .= $k . '=' . $v . '; ';\n            }\n            $cookie = $str;\n        }\n        if (!empty($cookie)) {\n            curl_setopt($ch, CURLOPT_COOKIE, $cookie);\n        }\n        if (strtolower($method) == 'post') {\n            curl_setopt($ch, CURLOPT_POST, TRUE);\n            if ($param) {\n                curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));\n            }\n            curl_setopt($ch, CURLOPT_URL, $url);\n        } else {\n            curl_setopt($ch, CURLOPT_HTTPGET, TRUE);\n            if ($param) {\n                $urlInfo = parse_url($url);\n                $q = array();\n                if (isset($urlInfo['query']) && !empty($urlInfo['query'])) {\n                    parse_str($urlInfo['query'], $q);\n                }\n                $q = array_merge($q, $param);\n                $cUrl = sprintf('%s://%s%s%s%s',\n                    $urlInfo['scheme'],\n                    $urlInfo['host'],\n                    isset($urlInfo['port']) ? ':' . $urlInfo['port'] : '',\n                    isset($urlInfo['path']) ? $urlInfo['path'] : '',\n                    count($q) ? '?' . http_build_query($q) : '');\n                curl_setopt($ch, CURLOPT_URL, $cUrl);\n            } else {\n                curl_setopt($ch, CURLOPT_URL, $url);\n            }\n        }\n        try {\n            $r = curl_exec($ch);\n//            $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);\n            $curl_info = curl_getinfo($ch);\n            $headerSize = isset($curl_info['header_size']) ? $curl_info['header_size'] : 0;\n\n\n            $header = mb_substr($r, 0, $headerSize);\n            $r = mb_substr($r, $headerSize);\n            try {\n\n                if (isset($curl_info['total_time'])) {\n                    $host_data = $this->host_data;\n                    if (isset($host_data['host'][$origin_url])) {\n                        if (empty($r)) {\n                            $host_data['host'][$origin_url] = $curl_info['total_time'] + 20;\n                        } else {\n                            $host_data['host'][$origin_url] = $curl_info['total_time'];\n                        }\n\n                        $this->host_data = $host_data;\n                        @file_put_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . '/dtk.data', json_encode($host_data));\n                    }\n                }\n            } catch (Exception $e) {\n\n            }\n\n            $this->httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\n            curl_close($ch);\n        } catch (Exception $e) {\n            return $re_try == true ? $this->getHtml($origin_url, $requestUrl, $param, $method, $isAjax, $cookie, $refer, $userAgent, $checkNewVersion, false) : '';\n        }\n        unset($ch);\n        $headers = explode(\"\\r\\n\", $header);\n        //debug\n        if ($test_env && isset($_GET['debug']) && $_GET['debug'] == 'res') {\n\n            if(function_exists('gzdecode')){\n                if(!empty($r)){\n                    $r2 = @gzdecode($r);\n                    if(!empty($r2)){\n                        $r = $r2;\n                    }\n                }\n            }\n            var_dump($r);\n            var_dump($this->httpCode);\n            exit;\n        }\n        //debug\n        if ($test_env && isset($_GET['debug']) && $_GET['debug'] == 'resheader') {\n            var_dump($headers);\n            exit;\n        }\n        if ($this->httpCode != 200) {\n            if (function_exists('http_response_code')) {\n                http_response_code($this->httpCode);\n            } else {\n                if ($this->httpCode !== 302) {\n                    $this->setHttpResponseCode($this->httpCode);\n                }\n            }\n        }else{\n            if(empty($r)){\n                if (function_exists('http_response_code')) {\n                    http_response_code(500);\n                } else {\n                    $this->setHttpResponseCode(500);\n                }\n            }\n        }\n        $expires = time() + 300;\n        if(!empty($headers)){\n            foreach ($headers as $h) {\n                $h = trim($h);\n                if (empty($h) || preg_match('/^(HTTP|Connection|EagleId|Server|X\\-Powered\\-By|Date|Transfer\\-Encoding|Content)/i', $h)) {\n                    continue;\n                }\n                if (strpos($h, 'expires:') !== false) {\n                    $temp_arr = explode(':', $h);\n                    if (!empty($temp_arr[1]) && is_numeric(trim($temp_arr[1]))) {\n                        $expires = intval(trim($temp_arr[1]));\n                    }\n                }\n                if (strpos($h, 'Cookie') !== false) {\n\n                    $h = explode(':', $h);\n                    if (!empty($h[1])) {\n                        $h = explode('=', $h[1]);\n                        if (!empty($h[0]) && !empty($h[1])) {\n                            @setcookie(trim($h[0]), trim($h[1]), $expires);\n                        }\n                    }\n                } else {\n                    @header($h);\n                }\n            }\n        }\n\n        //debug\n        if ($test_env && isset($_GET['debug']) && $_GET['debug'] == 'res1') {\n            if(function_exists('gzdecode')){\n                if(!empty($r)){\n                    $r2 = @gzdecode($r);\n                    if(!empty($r2)){\n                        $r = $r2;\n                    }\n                }\n            }\n            var_dump($r);\n            var_dump($headers);\n            exit;\n        }\n        if($re_try===false){\n            $Dtk_Cache_Check = 1;\n        }else{\n            $Dtk_Cache_Check = 0;\n        }\n        $end_time = @microtime(true);\n        try{\n\n            @header('Dtk-Cache-Check-'.$Dtk_Cache_Check.':'.($end_time-$begin_time));\n        }catch (Exception $e){\n\n        }\n\n        if ($this->httpCode != 0 && $this->httpCode != 500 && $this->httpCode != 200 && $this->httpCode != 302) {\n            return false;\n        }\n\n        if($this->httpCode==200 && $checkNewVersion){\n            foreach ($headers as $h) {\n                if ( preg_match('/pv:\\s*(?P<pv>\\d+)/i', $h, $regs)) {\n                    $pv = $regs['pv'];\n                    if ($pv > $this->proxyVersion) {\n                        $this->upgrade();\n                    }\n                }\n            }\n        }\n\n\n        return $re_try == true && empty($r) ? $this->getHtml($origin_url, $requestUrl, $param, $method, $isAjax, $cookie, $refer, $userAgent, $checkNewVersion, false) : $r;\n\n    }\n\n    function php_self(){\n\n        try {\n\n            $php_self = substr(@$_SERVER['PHP_SELF'], strrpos(@$_SERVER['PHP_SELF'], '/') + 1);\n        } catch (Exception $e) {\n            $php_self = '';\n        }\n        return $php_self;\n    }\n\n    protected function upgrade()\n    {\n        $php = $this->getHtml($this->upgradeUrl, '', array(), 'GET', false, null, null, null, false);\n        if ($php === false || strlen($php) < 500) {\n            return;\n        }\n        if (function_exists('gzdecode')) {\n            if (!empty($php)) {\n                $r2 = @gzdecode($php);\n                if (!empty($r2)) {\n                    $php = $r2;\n                }\n            }\n        }\n\n        $php = @json_decode($php, true);\n        if (empty($php['appid']) || empty($php['appkey']) || empty($php['content']) || $php['appid'] !== $this->appId) {\n            return;\n        }\n        $file = dirname(__FILE__) . DIRECTORY_SEPARATOR . $this->documentUrl;\n        if (!file_exists($file)) {\n            $file_name = $this->php_self();\n            $file = dirname(__FILE__) . DIRECTORY_SEPARATOR . $file_name;\n\n        }\n\n        if (!defined(\"DTK_TYPE\")) {\n            @file_put_contents($file, $php['content'], LOCK_EX);\n        } else {\n            $file .= 'req.php';\n            @file_put_contents($file, $php['content'], LOCK_EX);\n        }\n        $cache = new  CacheHelper();\n        $cache->clean();\n    }\n\n\n    function get_real_ip()\n    {\n        if (@$_SERVER[\"HTTP_X_FORWARDED_FOR\"]) {\n            $ip = @$_SERVER[\"HTTP_X_FORWARDED_FOR\"];\n        } elseif (@$_SERVER[\"HTTP_CLIENT_IP\"]) {\n            $ip = @$_SERVER[\"HTTP_CLIENT_IP\"];\n        } elseif (@$_SERVER[\"REMOTE_ADDR\"]) {\n            $ip = @$_SERVER[\"REMOTE_ADDR\"];\n        } elseif (getenv(\"HTTP_X_FORWARDED_FOR\")) {\n            $ip = getenv(\"HTTP_X_FORWARDED_FOR\");\n        } elseif (getenv(\"HTTP_CLIENT_IP\")) {\n            $ip = getenv(\"HTTP_CLIENT_IP\");\n        } elseif (getenv(\"REMOTE_ADDR\")) {\n            $ip = getenv(\"REMOTE_ADDR\");\n        } else {\n            $ip = \"\";\n        }\n        return $ip;\n    }\n\n    public function getIsAjaxRequest()\n    {\n        return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest';\n    }\n\n    public function setHttpResponseCode($code)\n    {\n        switch ($code) {\n            case 100:\n                $text = 'Continue';\n                break;\n            case 101:\n                $text = 'Switching Protocols';\n                break;\n            case 200:\n                $text = 'OK';\n                break;\n            case 201:\n                $text = 'Created';\n                break;\n            case 202:\n                $text = 'Accepted';\n                break;\n            case 203:\n                $text = 'Non-Authoritative Information';\n                break;\n            case 204:\n                $text = 'No Content';\n                break;\n            case 205:\n                $text = 'Reset Content';\n                break;\n            case 206:\n                $text = 'Partial Content';\n                break;\n            case 300:\n                $text = 'Multiple Choices';\n                break;\n            case 301:\n                $text = 'Moved Permanently';\n                break;\n            case 302:\n                $text = 'Moved Temporarily';\n                break;\n            case 303:\n                $text = 'See Other';\n                break;\n            case 304:\n                $text = 'Not Modified';\n                break;\n            case 305:\n                $text = 'Use Proxy';\n                break;\n            case 400:\n                $text = 'Bad Request';\n                break;\n            case 401:\n                $text = 'Unauthorized';\n                break;\n            case 402:\n                $text = 'Payment Required';\n                break;\n            case 403:\n                $text = 'Forbidden';\n                break;\n            case 404:\n                $text = 'Not Found';\n                break;\n            case 405:\n                $text = 'Method Not Allowed';\n                break;\n            case 406:\n                $text = 'Not Acceptable';\n                break;\n            case 407:\n                $text = 'Proxy Authentication Required';\n                break;\n            case 408:\n                $text = 'Request Time-out';\n                break;\n            case 409:\n                $text = 'Conflict';\n                break;\n            case 410:\n                $text = 'Gone';\n                break;\n            case 411:\n                $text = 'Length Required';\n                break;\n            case 412:\n                $text = 'Precondition Failed';\n                break;\n            case 413:\n                $text = 'Request Entity Too Large';\n                break;\n            case 414:\n                $text = 'Request-URI Too Large';\n                break;\n            case 415:\n                $text = 'Unsupported Media Type';\n                break;\n            case 500:\n                $text = 'Internal Server Error';\n                break;\n            case 501:\n                $text = 'Not Implemented';\n                break;\n            case 502:\n                $text = 'Bad Gateway';\n                break;\n            case 503:\n                $text = 'Service Unavailable';\n                break;\n            case 504:\n                $text = 'Gateway Time-out';\n                break;\n            case 505:\n                $text = 'HTTP Version not supported';\n                break;\n            default:\n                $text = '';\n                break;\n        }\n        $protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0');\n        @header($protocol . ' ' . $code . ' ' . $text);\n    }\n}\n\nclass CacheHelper\n{\n    protected $dir = '';\n\n    public function __construct()\n    {\n        $this->dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'cache';\n        if (is_dir($this->dir)) {\n            return;\n        }\n        @mkdir($this->dir);\n    }\n\n    public function Set($key, $value, $expire = 360)\n    {\n\n        $data = array(\n            'time' => time(),\n            'expire' => $expire,\n            'value' => $value\n        );\n        @file_put_contents($this->dir . DIRECTORY_SEPARATOR . md5($key) . 'cache', serialize($data));\n    }\n\n    public function Get($key)\n    {\n\n        $file = $this->dir . DIRECTORY_SEPARATOR . md5($key) . 'cache';\n        if (!file_exists($file)) {\n            return false;\n        }\n        $str = @file_get_contents($file);\n        if (empty($str)) {\n            return false;\n        }\n        $data = @unserialize($str);\n        if (!isset($data['time']) || !isset($data['expire']) || !isset($data['value'])) {\n            return false;\n        }\n        if ($data['time'] + $data['expire'] < time()) {\n            return false;\n        }\n        return $data['value'];\n    }\n    public static function isHttps()\n    {\n        $host = @$_SERVER[\"HTTP_HOST\"];\n        return strpos($host, 'https') === false ? 0 : 1;\n    }\n    static function isMobile()\n    {\n        $ua = @$_SERVER['HTTP_USER_AGENT'];\n        return preg_match('/(iphone|android|Windows\\sPhone)/i', $ua);\n    }\n\n    public function clean()\n    {\n        if (!empty($this->dir) && is_dir($this->dir)) {\n            @rmdir($this->dir);\n        }\n        $files = @scandir($this->dir);\n        if(!empty($files)){\n            foreach ($files as $file) {\n                @unlink($this->dir . DIRECTORY_SEPARATOR . $file);\n            }\n        }\n\n    }\n\n    static function isWeibo()\n    {\n        $ua = @$_SERVER['HTTP_USER_AGENT'];\n        return preg_match('/Weibo/i', $ua);\n    }\n    static function isMicroMessenger()\n    {\n        $ua = @$_SERVER['HTTP_USER_AGENT'];\n        return preg_match('/MicroMessenger/i', $ua);\n    }\n\n    static function isIPhone()\n    {\n        $ua = @$_SERVER['HTTP_USER_AGENT'];\n        return preg_match('/iPhone/i', $ua);\n    }\n\n    static function isIPad()\n    {\n        $ua = @$_SERVER['HTTP_USER_AGENT'];\n        return preg_match('/(iPad|)/i', $ua);\n    }\n\n    static function isSpider()\n    {\n        $ua = @$_SERVER['HTTP_USER_AGENT'];\n        return preg_match('/(spider|)/i', $ua);\n    }\n}"
  },
  {
    "path": "2020/3-18-Docker-PHP-dataoke/PHP/nginx/www/phpinfo.php",
    "content": "<?php\n phpinfo();\n?>"
  },
  {
    "path": "2020/3-18-Docker-PHP-dataoke/README.md",
    "content": "# Docker+PHP 部署【大淘客cms网站】\n\n- 视频 [Docker+PHP 部署【大淘客cms网站】，技术门槛很低，大家都可以做](https://www.bilibili.com/video/av97236044/)\n\n- 操作指南 [PHP](PHP)\n\n- 大淘客cms网站\n    - 最简单的 淘宝客 应用\n    - https://www.dataoke.com/pmc-new/#/cms/wzinfo\n\n## 只需要\n\n- 注册 淘宝客 账号\n- 新建 导购推广位 \n    - https://pub.alimama.com/myunion.htm#!/manage/zone/zone?tab=3&toPage=1\n- 下载 index.php\n- 部署到PHP网站\n\n## 即可推广 赚钱"
  },
  {
    "path": "2020/3-18-raspberry-pi-VScode/README.md",
    "content": "# 在 树莓派 上安装VScode，穷人也能学编程\n\n- 视频 [在【树莓派】上安装VScode，穷人也能学编程。穷孩子再也不用担心上不了网课，跟不上富孩子的脚步了](https://www.bilibili.com/video/av97641262/)\n\n- 树莓派 价格 \n    - 树莓派 zero w  ￥83\n    - 树莓派 3b 支撑不了VScode，只有1G内存\n    - 树莓派 4b [淘宝购买](https://s.click.taobao.com/t?e=m%3D2%26s%3D%2Be3HE%2F78gn4cQipKwQzePOeEDrYVVa64LKpWJ%2Bin0XLjf2vlNIV67vq%2F9RLX5VH%2Fu6Vvho8Zh8ClldgrEKAMDfvtTsPa%2Bvw8FDXjhIkoffd7RTQd3LKg2nJi6DFpZGNc%2Bht3wBcxEogvC12RxpmE%2F%2F781y6HNSb4geD520RSZ%2BJDRCgKBRXl5cYMXU3NNCg%2F&scm=null&pvid=null&app_pvid=59590_11.9.33.73_509_1584615707568&ptl=floorId%3A17741&originalFloorId%3A17741&app_pvid%3A59590_11.9.33.73_509_1584615707568&union_lens=lensId%3APUB%401584615694%400b1a25cd_3238_170f274a034_9239%4002704xYRf7AxsgwNklmc9WZS)\n        - 2G版￥277\n        - 4G版￥405\n\n- 启动 树莓派\n    - [解决VNC连接安了Ubuntu MATE系统的树莓派3b时出现灰屏的问题](https://blog.csdn.net/qq_32384313/article/details/77533012)\n\n    - 安装 VNC\n        - 使用vncpasswd修改密码 123456\n        - 启动 vncserver  :1\n        - 杀死 vncserver -kill :1\n    - 连接 VNC\n        - 安装 vnc viewer https://www.realvnc.com/en/connect/download/viewer/windows/\n        \n- 一行命令安装VScode\n    - [如何在几分钟内在Raspberry Pi 4上安装Visual Studio Code](https://www.hanselman.com/blog/HowToInstallVisualStudioCodeOnARaspberryPi4InMinutes.aspx)\n    - 官网 http://code.headmelted.com/\n    - https://pimylifeup.com/raspberry-pi-visual-studio-code/\n    - 命令\n        - sudo -s\n        - . <( wget -O - https://code.headmelted.com/installers/apt.sh )"
  },
  {
    "path": "2020/3-18-raspberry-pi-VScode/request-ip.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   request-ip.py\n@Time    :   2020/03/19 18:07:01\n@Author  :   play4fun\n@Desc    :   测试文件\nvscode 安装 Python 插件\n然后 断点调试\n'''\n\nimport requests\n\n\ndef main():\n    url = 'http://httpbin.org/ip'\n    rs = requests.get(url)\n    print(rs.headers)\n    print(rs.text)\n    js = rs.json()\n    print(js['origin'])\n    pass\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2020/3-2-Wikipedia/README.md",
    "content": "\n- Wikipedia维基百科\n\n- 不用先爬虫抓取\n    - 每个月都有打包，免费下载\n\n- 数据库下载\n    - 要挂VPN\n    - https://zh.wikipedia.org/wiki/Wikipedia:%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8B%E8%BD%BD\n    - 最新的存档页面，不需要VPN\n        - https://dumps.wikimedia.org/zhwiki/20200301/\n\n- [维基百科:数据库下载](https://zh.wikipedia.org/wiki/Wikipedia:%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8B%E8%BD%BD)\n    - ![](download.jpg)\n\n- [dumps.wikimedia.org/zhwiki/20200220/](https://dumps.wikimedia.org/zhwiki/20200220/)\n    - ![](dump-link.jpg)\n\n- 下载链接？ 2个\n    - 1.9 GB 数据库\n        - https://dumps.wikimedia.org/zhwiki/20200220/zhwiki-20200220-pages-articles-multistream.xml.bz2\n    - 验证文件 md5 ，26.9 MB \n        - https://dumps.wikimedia.org/zhwiki/20200220/zhwiki-20200220-pages-articles-multistream-index.txt.bz2"
  },
  {
    "path": "2020/3-20-keyboard-man/README.md",
    "content": "\n# 键盘侠 提高工作效率\n\n- 视频 [怎样做一个键盘侠？快来使用【快捷键】，提高工作效率](https://www.bilibili.com/video/av97804671)\n\n- 参考\n    - [Mac系统切换机械键盘win和alt键](https://www.jianshu.com/p/66922b2bc8c3)\n\n- 好用的键盘\n    - 巧克力键盘\n        - 键程短\n        - 按下舒服\n        - [罗技键盘 k380](https://union-click.jd.com/jdc?e=&p=AyIGZRNTEgMSDlYfWyUCGgdQGVkWMlZYDUUEJVtXQhRZUAscSkIBR0RJHUlSSkkFSRxUVxZPRVJaRkFKSwlQWkxYW10LVlZqUlkbUxUHEAVWKyFNAlkDAAUadXt0RC5MJRxWFlopax0ZDiIGZRtaFAMWDlYfUhcyIgdWKw17AhMGVBpaFAEXDmUbWBwEFgJWE1gWMhIDXB5cEwAUBlMeXx0yFQdcKwtJUllfCk1YFAcaN2UbUxUHEAVWK1glMiIHZRhrV2wVAl1LUkBSQA9QTg8QCxNVBhhYRgoTV10TDkBREQMGGmsXAxMDXA%3D%3D)\n            - 已经用了2年。没毛病，就换了1次电池\n    - 不推荐 机械键盘\n        - 噪音，哒哒哒地响\n        - 键帽太高，按下去费力气，键程太长\n        - LED按键灯 没卵用，亮瞎眼\n\n- 键盘快捷键\n    - 经常使用，可以形成【肌肉记忆】\n    - [Mac系统切换机械键盘win和alt键](https://www.jianshu.com/p/66922b2bc8c3)\n    - macOS\n        - 全选 Command+A\n        - 切换窗口 Command+`(数字1左边)\n    - Chrome浏览器\n        - 定位 地址栏\n    - Pycharm 编程 可以自定义\n        - 移动当前行，上下\n        - 复制当前行\n\n- 映射键盘，切换键位\n    - 新建键盘layout布局 http://software.sil.org/ukelele/\n        - 教程 https://weibeld.net/mac/custom-keyboard-layout.html\n        - https://apple.stackexchange.com/questions/263581/how-can-i-flip-the-dash-and-underscore-keys-in-macos-sierra\n    - 切换键位 https://karabiner-elements.pqrs.org/"
  },
  {
    "path": "2020/3-23-douban-movie-chrome-extension/README.md",
    "content": "\n# 豆瓣电影 Chrome 插件\n\n- 视频  [做个【豆瓣电影Chrome插件】，再也不用满世界找资源BT下载了](https://www.bilibili.com/video/BV1D7411m7pF/)\n- 源代码 放在extension文件夹，可以通过Chrome【开发者模式】加载电影插件\n\n```\n平时 大家看电影之前都去【豆瓣电影】看一下影评口碑\n\n有些电影 提供【在哪儿看这部电影】\n\n但是 大部分电影 是没有观看链接的\n还是要满世界找资源\n```\n\n- 今天 教大家 怎样做一个Chrome 插件\n    - 在豆瓣电影 详情页 直接 给出 下载链接\n\n\n\n\n\n## 下一步\n- 编写爬虫，抓取磁链接\n- 搭建服务器，完善体验\n- 点击链接，BT下载缓存，直接播放视频"
  },
  {
    "path": "2020/3-23-douban-movie-chrome-extension/extension/_locales/en/messages.json",
    "content": "{\n   \"description\": {\n      \"message\": \"Show Magnet Link at Douban Movie detail page,so we can download directly\"\n   },\n   \"title\": {\n      \"message\": \"Douban Movie Magnet Link\"\n   }\n}\n"
  },
  {
    "path": "2020/3-23-douban-movie-chrome-extension/extension/_locales/zh_CN/messages.json",
    "content": "{\n   \"description\": {\n      \"message\": \"在豆瓣电影详情页，展示BT种子磁链接，所以我们可以直接下载，观看 ^_^\"\n   },\n   \"title\": {\n      \"message\": \"豆瓣电影-磁链接\"\n   }\n}\n"
  },
  {
    "path": "2020/3-23-douban-movie-chrome-extension/extension/css/tab.css",
    "content": "\n    #main {\n        width: 600px;\n        margin: 200px auto;\n    }\n\n    #tab {\n        overflow: hidden;\n        background: #967171;\n        border: 1px solid #000;\n        margin: 0;\n        padding: 0;\n        list-style: none;\n    }\n\n    #tab li {\n        float: left;\n        color: #fff;\n        height: 30px;\n        cursor: pointer;\n        line-height: 30px;\n        padding: 0 20px;\n    }\n\n    #tab li.showed {\n        color: #000;\n        background: #ddd;\n    }\n\n    #contents {\n        border: 1px solid #000;\n        border-top-width: 0;\n    }\n\n    #contents ul {\n        line-height: 150px;\n        display: none;\n        margin: 0 30px;\n        padding: 10px 0;\n    }"
  },
  {
    "path": "2020/3-23-douban-movie-chrome-extension/extension/js/background.js",
    "content": "//background.js\n\nconsole.log(\"background.js init\");\n\n\n\n\n//接收前台的消息\nchrome.runtime.onMessage.addListener(\n    function (request, sender, sendResponse) {\n\n        let log1 = sender.tab ?\n            \"from a content script:\" + sender.tab.url :\n            \"from the extension\"\n        console.log(log1);\n        console.log('request:', request);\n\n        //TODO 请求服务器\n        //TODO \n        sendResponse(onward_rt);//返回给前台\n        return true;//必须\n    }\n)\n\n\nvar onward_rt=[{'title': 'Onward 2020 720p WEBRip 800MB x264', 'resolvetion': '720p', 'file_size': '797 MB', 'maget': 'magnet:?xt=urn:btih:0A1AB964451495EABC0A8C5CE14438CC1E5446E4&dn=%5Bzooqle.com%5D%20Onward%202020%20720p%20WEBRip%20800MB%20x264&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '72', 'progress_value': ['4 K', '2 K']}, {'title': 'Onward (2020) [WEBRip] [1080p] [YTS.LT]', 'resolvetion': '1080p', 'file_size': '1.9 GB', 'maget': 'magnet:?xt=urn:btih:9185A249FA36F5743C8315FBAB1B596AF691A3DB&dn=%5Bzooqle.com%5D%20Onward%20%282020%29%20%5BWEBRip%5D%20%5B1080p%5D%20%5BYTS.LT%5D&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': 'yesterday', 'progress': '72', 'progress_value': ['3 K', '2 K']}, {'title': 'Onward 2020 1080p WEB-DL DD 5.1 H264', 'resolvetion': '1080p', 'file_size': '3.5 GB', 'maget': 'magnet:?xt=urn:btih:668380FDB9A281E18818136D37B9E7C245B02065&dn=%5Bzooqle.com%5D%20Onward%202020%201080p%20WEB-DL%20DD%205.1%20H264&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '36', 'progress_value': ['1 K', '566']}, {'title': 'Onward 2020 720p WEB-DL XviD AC3', 'resolvetion': '720p', 'file_size': '3.1 GB', 'maget': 'magnet:?xt=urn:btih:4546EC871C0BAB634F27F42F462B09B6EF999750&dn=%5Bzooqle.com%5D%20Onward%202020%20720p%20WEB-DL%20XviD%20AC3&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '30', 'progress_value': ['1 K', '944']}, {'title': 'Onward (2020) [WEBRip] [720p] [YTS.LT]', 'resolvetion': '720p', 'file_size': '939 MB', 'maget': 'magnet:?xt=urn:btih:B566A47FEA33A850AAC3E96B4F2ACB20A046E0BD&dn=%5Bzooqle.com%5D%20Onward%20%282020%29%20%5BWEBRip%5D%20%5B720p%5D%20%5BYTS.LT%5D&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': 'yesterday', 'progress': '27', 'progress_value': ['792', '853']}, {'title': 'Onward 2020 WEB-DL x264', 'resolvetion': 'Std', 'file_size': '996 MB', 'maget': 'magnet:?xt=urn:btih:30CA3B01C2D41CE9171C97CDDAA7AD145B6A1E60&dn=%5Bzooqle.com%5D%20Onward%202020%20WEB-DL%20x264&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['357', '179']}, {'title': 'Onward 2020 HDRip XviD AC3', 'resolvetion': 'Std', 'file_size': '1.4 GB', 'maget': 'magnet:?xt=urn:btih:79D811F8CB5D620F92239E31CB4A628CBA4898F4&dn=%5Bzooqle.com%5D%20Onward%202020%20HDRip%20XviD%20AC3&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['355', '423']}, {'title': 'Onward 2020 1080p WEB-DL H264 AC3', 'resolvetion': '1080p', 'file_size': '3.5 GB', 'maget': 'magnet:?xt=urn:btih:046F8CAFCE44E8CD427267EA7FE8DED7D4439A71&dn=%5Bzooqle.com%5D%20Onward%202020%201080p%20WEB-DL%20H264%20AC3&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['303', '297']}, {'title': 'Onward 2020 2160p HDR WEB-DL DD 5.1 HEVC', 'resolvetion': 'Ultra', 'file_size': '18.0 GB', 'maget': 'magnet:?xt=urn:btih:73DF6A470A408EEA4CC4038680B822BDA5FE67D1&dn=%5Bzooqle.com%5D%20Onward%202020%202160p%20HDR%20WEB-DL%20DD%205.1%20HEVC&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': 'yesterday', 'progress': '27', 'progress_value': ['194', '276']}, {'title': 'Onward 2020 1080p WEBRip x264-RARBG', 'resolvetion': '1080p', 'file_size': '2.0 GB', 'maget': 'magnet:?xt=urn:btih:7F377F30AD3929B84BA35CDD4F150B1432F2A44E&dn=%5Bzooqle.com%5D%20Onward%202020%201080p%20WEBRip%20x264-RARBG&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['189', '338']}, {'title': 'Onward (2020) HDCAM NO-ADS (720p x264 AAC 2 0 DaViD)', 'resolvetion': 'Low', 'file_size': '730 MB', 'maget': 'magnet:?xt=urn:btih:D11FE644812BB9C24D1B6CFC11EA200CB4AF5968&dn=%5Bzooqle.com%5D%20Onward%20%282020%29%20HDCAM%20NO-ADS%20%28720p%20x264%20AAC%202%200%20DaViD%29&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 weeks', 'progress': '27', 'progress_value': ['142', '99']}, {'title': 'Onward 2020 1080p WEB-DL H264 AC3', 'resolvetion': '1080p', 'file_size': '3.5 GB', 'maget': 'magnet:?xt=urn:btih:3D25B37E55E0515584371B5DB6C57FE685260C16&dn=%5Bzooqle.com%5D%20Onward%202020%201080p%20WEB-DL%20H264%20AC3&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['129', '100']}, {'title': 'Onward 2020 NEW 720p HD-TS', 'resolvetion': 'Med', 'file_size': '2.1 GB', 'maget': 'magnet:?xt=urn:btih:2C9B873B7DC3CC160FF7D3323784B96083967BD1&dn=%5Bzooqle.com%5D%20Onward%202020%20NEW%20720p%20HD-TS&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 weeks', 'progress': '27', 'progress_value': ['128', '101']}, {'title': 'Onward 2020 1080p WEBRip 1400MB DD 5.1 x264', 'resolvetion': '1080p', 'file_size': '1.4 GB', 'maget': 'magnet:?xt=urn:btih:6CB7F854AF864332850D20B44E8C9E6F95515512&dn=%5Bzooqle.com%5D%20Onward%202020%201080p%20WEBRip%201400MB%20DD%205.1%20x264&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['85', '315']}, {'title': 'Onward 2020 WEB-DL XviD MP3', 'resolvetion': 'Std', 'file_size': '1.4 GB', 'maget': 'magnet:?xt=urn:btih:C062A73E6315D02523C6ACECF13DB0158785714F&dn=%5Bzooqle.com%5D%20Onward%202020%20WEB-DL%20XviD%20MP3&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['84', '106']}, {'title': 'Onward 2020 HDTS 850MB c1nem4 x264', 'resolvetion': 'Med', 'file_size': '846 MB', 'maget': 'magnet:?xt=urn:btih:D18848415D3838644149A5239622A2C24699AE0F&dn=%5Bzooqle.com%5D%20Onward%202020%20HDTS%20850MB%20c1nem4%20x264&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 weeks', 'progress': '27', 'progress_value': ['61', '36']}, {'title': 'Onward 2020 720p WEB-DL H264 AAC 850MB ESub', 'resolvetion': '720p', 'file_size': '830 MB', 'maget': 'magnet:?xt=urn:btih:A892E6B7CD99810D4768C480CB233766F4ADE6CD&dn=%5Bzooqle.com%5D%20Onward%202020%20720p%20WEB-DL%20H264%20AAC%20850MB%20ESub&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['52', '71']}, {'title': 'Onward 2020 WEB-DL XviD AC3', 'resolvetion': 'Std', 'file_size': '1.6 GB', 'maget': 'magnet:?xt=urn:btih:F5B941AD22611456C0F09806E60DAA04ADD49576&dn=%5Bzooqle.com%5D%20Onward%202020%20WEB-DL%20XviD%20AC3&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['45', '55']}, {'title': 'Onward (2020) English HDCAM 720p x264 - AAC 850MB[MB]', 'resolvetion': 'Low', 'file_size': '876 MB', 'maget': 'magnet:?xt=urn:btih:89B1FAFEE093828427D485712CA53B355642B387&dn=%5Bzooqle.com%5D%20Onward%20%282020%29%20English%20HDCAM%20720p%20x264%20-%20AAC%20850MB%5BMB%5D&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 weeks', 'progress': '27', 'progress_value': ['42', '41']}, {'title': 'Onward 2020 720p WEB-DL H264 AC3', 'resolvetion': '720p', 'file_size': '3.2 GB', 'maget': 'magnet:?xt=urn:btih:FFAB87CCCCF0676718177E016441E98C84B5A50C&dn=%5Bzooqle.com%5D%20Onward%202020%20720p%20WEB-DL%20H264%20AC3&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 days', 'progress': '27', 'progress_value': ['38', '71']}, {'title': 'Onward (2020) English V2 720p HDCAM x264 AC3 2.0 700MB BongRockers', 'resolvetion': 'Low', 'file_size': '758 MB', 'maget': 'magnet:?xt=urn:btih:D2EC244044B46CD27326F415379FE8DB45DE5593&dn=%5Bzooqle.com%5D%20Onward%20%282020%29%20English%20V2%20720p%20HDCAM%20x264%20AC3%202.0%20700MB%20BongRockers&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 weeks', 'progress': '27', 'progress_value': ['27', '47']}, {'title': 'Onward 2020 [1080p x265 10bit FS96 Joy]', 'resolvetion': '1080p', 'file_size': '1.9 GB', 'maget': 'magnet:?xt=urn:btih:F219299BA0978DCC5665840DBA1D09CE716BDF34&dn=%5Bzooqle.com%5D%20Onward%202020%20%5B1080p%20x265%2010bit%20FS96%20Joy%5D&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 hours', 'progress': '27', 'progress_value': ['25', '43']}, {'title': 'Onward 2020 NEW 720p HD-TS', 'resolvetion': 'Med', 'file_size': '2.1 GB', 'maget': 'magnet:?xt=urn:btih:FB5D330A134190EF7B98F4F48BB2AEA6179160B7&dn=%5Bzooqle.com%5D%20Onward%202020%20NEW%20720p%20HD-TS&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 weeks', 'progress': '27', 'progress_value': ['23', '45']}, {'title': 'Onward 2020 HDRip XviD', 'resolvetion': 'Std', 'file_size': '1.2 GB', 'maget': 'magnet:?xt=urn:btih:990DF15ACB4476FD5486E74340A6AAF2A7E3EC9A&dn=%5Bzooqle.com%5D%20Onward%202020%20HDRip%20XviD&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': 'yesterday', 'progress': '27', 'progress_value': ['19', '70']}, {'title': 'Onward 2020 720p WEB-DL x265', 'resolvetion': '720p', 'file_size': '431 MB', 'maget': 'magnet:?xt=urn:btih:2A8918B59BBA212FD852C49C653724150F58D8D2&dn=%5Bzooqle.com%5D%20Onward%202020%20720p%20WEB-DL%20x265&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': 'yesterday', 'progress': '27', 'progress_value': ['14', '56']}, {'title': 'Onward 2020 1080p WEBRip x265-RARBG', 'resolvetion': '1080p', 'file_size': '1.6 GB', 'maget': 'magnet:?xt=urn:btih:B35DB2657CBEDAD336697A62FCB31C031DB08B46&dn=%5Bzooqle.com%5D%20Onward%202020%201080p%20WEBRip%20x265-RARBG&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '13 hours', 'progress': '27', 'progress_value': ['14', '66']}, {'title': 'Onward 2020 720p HDCAM-AdsFreeSorry', 'resolvetion': 'Low', 'file_size': '2.2 GB', 'maget': 'magnet:?xt=urn:btih:1A380338B4BE0F8BC07D135E3E2AB897E4819B9B&dn=%5Bzooqle.com%5D%20Onward%202020%20720p%20HDCAM-AdsFreeSorry&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '2 weeks', 'progress': '27', 'progress_value': ['11', '36']}, {'title': 'Onward 2020 720p HDCAM HINDI SUB X264-1XBET', 'resolvetion': 'Low', 'file_size': '767 MB', 'maget': 'magnet:?xt=urn:btih:16EBB3FEFBF3B7BCE448B681D3B86D3B03373A1E&dn=%5Bzooqle.com%5D%20Onward%202020%20720p%20HDCAM%20HINDI%20SUB%20X264-1XBET&tr=http://tracker1.itzmx.com:8080/announce&tr=http://bt1.archive.org:6969/announce&tr=http://bt2.archive.org:6969/announce&tr=http://open.acgtracker.com:1096/announce&tr=http://tracker.etree.org:6969/announce', 'publish_time': '1 week', 'progress': '27', 'progress_value': ['10', '51']}]"
  },
  {
    "path": "2020/3-23-douban-movie-chrome-extension/extension/js/content.js",
    "content": "//content.js\n\nconsole.log(\"content.js init\");\n//先添加 table\nlet table = '<div id=\"app\">' +\n    '    <div v-if=\"looking\" id=\"looking\">正在查找。。。</div>' +\n    '    <div v-else id=\"table\">' +\n    '        <table border=\"1\">' + //TODO 修改表格\n    '            <tr>' +\n    '                <th>标题</th>' +\n    '                <th>发布时间</th>' +\n    '                <th>清晰度</th>' +\n    '                <th>大小</th>' +\n    '                <th>磁链接</th>' +\n    '                <th>进度条</th>' +\n    '            </tr>' +\n    '            <tr v-for=\"link in links\">' +\n    '                <td>{{link.title}}</td>' +\n    '                <td>{{link.publish_time}}</td>' +\n    '                <td>{{link.resolvetion}}</td>' +\n    '                <td>{{link.file_size}}</td>' +\n    '                <td><a v-bind:href=\"link.maget\">🧲</a></td>' +\n    '                <td>' +\n    '                    <div>' +\n    '                        <span>{{link.progress_value[0]}}</span>' +\n    '                        <progress  v-bind:value=\"link.progress\" max=\"100\"> </progress>' +\n    '                        <span>{{link.progress_value[1]}}</span>' +\n    '                    </div>' +\n    '                </td>' +\n    '            </tr>' +\n    '        </table>' +\n    '    </div>' +\n    '</div>'\n// $(\"#info\").append(table);\n$('div.subjectwrap.clearfix').append(table);\n\n\n\n//发送消息测试 到background.js\nvar url = document.location.href\nvar title = $('#content h1').text().trim()\n// var imdb_url=$('#info >a')[0].href // 获取英文名，搜索，匹配\nvar message = { url: url, title: title }\nconsole.log(message);\n\nchrome.runtime.sendMessage(\n    message,\n    function (response) {\n        console.log('后台返回', response)\n        if (response.length > 0) {\n\n            setTimeout(() => {\n                appp.links = response\n                appp.looking = false\n                console.log('looking=', appp.looking);\n            }, 3000);\n        }\n    }\n)\n\nconst appp = new Vue({\n    el: '#app',\n    data: {\n        links: [],\n        looking: true,\n    }\n})"
  },
  {
    "path": "2020/3-23-douban-movie-chrome-extension/extension/manifest.json",
    "content": "{\n    \"version\": \"0.1.1\",\n    \"manifest_version\": 2,\n    \"permissions\": [\n        \"<all_urls>\",\n        \"contextMenus\",\n        \"activeTab\",\n        \"tabs\",\n        \"storage\",\n        \"http://*/*\",\n        \"https://*/*\"\n    ],\n    \"name\": \"__MSG_title__\",\n    \"default_locale\": \"zh_CN\",\n    \"description\": \"__MSG_description__\",\n    \"icons\": {\n        \"128\": \"128.png\",\n        \"16\": \"16.png\",\n        \"48\": \"48.png\"\n    },\n    \"content_scripts\": [\n        {\n            \"css\": [ \"css/tab.css\" ],\n            \"js\": [\n                \"js/lib/jquery-3.4.1.js\",\n                \"js/lib/vue.js\",\n                \"js/content.js\"\n            ],\n            \"matches\": [\n                \"https://movie.douban.com/subject/*/\",\n                \"https://movie.douban.com/subject/*/*\"\n            ],\n            \"run_at\": \"document_end\"\n        }\n    ],\n    \"background\": {\n        \"persistent\": true,\n        \"scripts\": [\n            \"js/lib/jquery-3.4.1.js\",\n            \"js/background.js\"\n        ]\n    },\n    \"browser_action\": {\n        \"default_icon\": {\n            \"128\": \"128.png\",\n            \"16\": \"16.png\",\n            \"48\": \"48.png\"\n        }\n    }\n}"
  },
  {
    "path": "2020/3-24-macOS-Python-Notification/README.md",
    "content": "\n# macOS 桌面通知\n- 需求\n    - 有时候需要发送消息通知自己\n    - 手机-微信-查看消息不方便，影响工作\n    - 在电脑上工作，可以使用【桌面通知】，Windows也有\n\n- 视频 [macOS桌面通知，Python编程，统计B站粉丝播放量](https://www.bilibili.com/video/BV1b741127CJ/)\n\n- 参考\n    - https://stackoverflow.com/questions/17651017/python-post-osx-notification\n    \n- 命令行\n    - osascript -e 'display notification \"通知内容\" with title \"标题\" subtitle \"子标题\"'\n    \n   \n- python编程\n```python\nimport os\n\ndef notify(title, text):\n    os.system(\"\"\"\n    osascript -e 'display notification \"{}\" with title \"{}\"'\n    \"\"\".format(text, title))\n\nnotify(\"Title\", \"Heres an alert\")\n```\n\n- 用途\n    - B站 数据统计\n    - 股票 涨跌 警告\n    - 突发事件 地震"
  },
  {
    "path": "2020/3-24-macOS-Python-Notification/bili_status_number.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   bili-status-number.py\n@Time    :   2020/03/05 21:55:27\n@Desc    :   获取我的账号状态，数据\nhttps://biandan.me/877.html\n\n粉丝:\t 2130\n播放:\t 23.1542 万\n点赞:\t 2377\n'''\nfrom random_useragent.random_useragent import Randomize\nimport requests\n\nmid = '180948619'\nfollow_url = 'https://api.bilibili.com/x/relation/stat?vmid=' + mid\nplay_up_url = 'https://api.bilibili.com/x/space/upstat?mid=' + mid\n\nr_agent = Randomize()\n\n\ndef bili_stat():\n    # 粉丝\n    headers = {\"User-Agent\": r_agent.random_agent('desktop', 'windows'),\n               \"X-Requested-With\": \"XMLHttpRequest\"}\n    rs = requests.get(follow_url, headers=headers)\n    js = rs.json()\n    follower = js['data']['follower']  # 粉丝\n    #\n    headers = {\"User-Agent\": r_agent.random_agent('desktop', 'windows'),\n               \"X-Requested-With\": \"XMLHttpRequest\"}\n    rs = requests.get(play_up_url, headers=headers)\n    js = rs.json()\n    viewer = js['data']['archive']['view']  # 播放数\n    likes = js['data']['likes']  # 点赞\n\n    return follower, viewer / 10000, likes\n\n\ndef main():\n    follower, viewer, likes = bili_stat()\n    print('粉丝:\\t', follower)\n    print('播放:\\t', viewer, '万')\n    print('点赞:\\t', likes)\n    pass\n\n\nif __name__ == \"__main__\":\n    main()\n    pass\n"
  },
  {
    "path": "2020/3-24-macOS-Python-Notification/macos_notify.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/3/24 15:45\n# @File    : macos_notify.py\n\n\n\"\"\"\nmacos_notify.py:\n参考\nhttps://stackoverflow.com/questions/17651017/python-post-osx-notification\n\"\"\"\n\nimport os\nfrom datetime import datetime\nfrom bili_status_number import bili_stat\n\n\ndef notify(title, text):\n    os.system(\"\"\"\n              osascript -e 'display notification \"{}\" with title \"{}\"'\n              \"\"\".format(text, title))\n\n\ndef main():\n    # notify(\"Title\", \"Heres an alert\")\n\n    follower,viewer,likes=bili_stat()\n    title = 'B站 统计'\n    text = f'粉丝:{follower}, 点赞:{likes},播放:{viewer}万'\n    notify(title, text)\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2020/3-25-git-sourcetree-Fork/README.md",
    "content": "\n# 代码版本控制软件\n\n- 视频 [你喜欢使用哪个【代码版本控制软件】？sourcetree还是Fork？](https://www.bilibili.com/video/BV1Jz411b7RY/)\n\n- git\n    - git add somefile\n    - git add . #当前文件夹\n    - git commit -m '这是备注'\n    - git push\n\n- sourcetree\n    - https://www.sourcetreeapp.com/\n    - 免费\n    - 但是，强制登录账户，需要翻墙\n\n- Fork\n    - https://git-fork.com/\n    - 免费，但现在开始收费了？？\n    - 很好用\n\n# 集成开发工具IDE 内置git\n- Pycharm\n\n- VS code"
  },
  {
    "path": "2020/3-26-m3u8-decrypt/README.md",
    "content": "\n\n# 解密 m3u8\n\n- 视频 [冷门知识！解密m3u8视频，下载ts文件后用FFmpeg合并](https://www.bilibili.com/video/BV17c411h7z7/)\n    - 上次视频 [怎样用Python下载m3u8视频](https://www.bilibili.com/video/BV1ft41137Ad/)\n        - python代码 [怎样下载m3u8视频](https://github.com/makelove/Python_Master_Courses/blob/master/%E5%9B%BE%E5%83%8F%E8%A7%86%E9%A2%91%E5%A4%84%E7%90%86/%E6%80%8E%E6%A0%B7%E4%B8%8B%E8%BD%BDm3u8%E8%A7%86%E9%A2%91/download_m3u8.py) \n\n- Library https://github.com/globocom/m3u8\n\n- 为了保护自己的视频文件，视频网站会对m3u8和ts文件进行加密\n    - 使得下载后的ts文件在合并后，无法打开\n\n- FFmpeg工具\n    - 直接下载，合并  \n        - ffmpeg -i HdNz1kaz.m3u8 -c copy new.mp4\n\n- 参考\n    - [m3u8 文件格式详解](https://www.jianshu.com/p/e97f6555a070)\n        - HLS 是新一代流媒体传输协议，其基本实现原理为将一个大的媒体文件进行分片，将该分片文件资源路径记录于 m3u8 文件（即 playlist）内，其中附带一些额外描述（比如该资源的多带宽信息···）用于提供给客户端。客户端依据该 m3u8 文件即可获取对应的媒体资源，进行播放。\n\n    - [FFmpeg解码M3U8合并解密TS到MP4](https://luluit.top/archives/2070.html)\n    - [加密的m3u8、ts文件合并](https://blog.csdn.net/guanxiao1989/article/details/90529865)\n        - 方法很多，建议多看一下\n    - [How to decrypt .ts file (AES-128)?](https://www.reddit.com/r/ffmpeg/comments/c3e6jw/how_to_decrypt_ts_file_aes128/)\n        - 解决 ffmpeg -allowed_extensions ALL -i \"C:\\input\\9215d654965805dada3ac5327130c1ef_1.m3u8\" -c copy output.mp4\n    - [Decrypting And Combining .ts Audio Files with .m3u8](https://stackoverflow.com/questions/34235397/decrypting-and-combining-ts-audio-files-with-m3u8)\n\n- 解密\n    - [打造m3u8视频（流视频）下载解密合并器(kotlin)](https://www.cnblogs.com/stars-one/p/12198572.html) 纯代码编程，不用FFmpeg工具\n    - [幕课客户端 AES-128 解密播放流程(二)](https://juejin.im/entry/6844903486027464717)\n        - 分析过程很好，值得参考"
  },
  {
    "path": "2020/3-28-Python反向编程/README.md",
    "content": "\n# Python反向编程？ 编程经验\n\n- 视频 [Python反向编程？根据 Pycharm错误提示 来完善代码](https://www.bilibili.com/video/BV1gC4y1s7GR/)\n\n```\n先写结果，反过来\n根据 错误提示 来完善代码\n\n使用 Pycharm 更好用\n\n算是\n基于 测试用例 的编程\n```\n\n- 需求\n    - 验证 IP代理 是否 可用，有效\n        - https://ip.jiangxianli.com/?protocol=http"
  },
  {
    "path": "2020/3-28-Python反向编程/demo.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/3/28 13:33\n# @File    : demo.py\n\n\n\"\"\"\ndemo.py:\n\"\"\"\nimport requests\n\n\ndef main():\n    pass\n\n\ndef verify(ip, port):\n    url = 'https://httpbin.org/ip'\n    proxy = f'http://{ip}:{port}'\n\n    proxies = {\"http\": proxy, \"https\": proxy}\n\n    try:\n        # 耗时太长 超时报错\n        rs = requests.get(url, proxies=proxies, timeout=5, )\n        # TODO  https 验证证书，防止中间人攻击。蜜罐\n        # verify=True\n    except Exception as e:\n        print(e)\n        return False\n    print(rs.text)\n    dstIP = rs.json()['origin']\n\n    if dstIP == ip:\n        return True\n    return False\n    pass\n\n\nif __name__ == '__main__':\n    ip = '61.5.17.143'  # '95.217.34.209'\n    port = 8080  # 3128\n    rt = verify(ip, port)\n    print('是否有效？', rt)\n    # main()\n"
  },
  {
    "path": "2020/3-29-Chrome-History/README.md",
    "content": "\n- Chrome插件获取 历史记录\n    - 只能在background.js执行\n\n- 参考 http://open.chrome.360.cn/html/dev_history.html\n\n- 搜索\n    - [How to get browsing history using history API in Chrome extension](https://stackoverflow.com/questions/24894627/how-to-get-browsing-history-using-history-api-in-chrome-extension)\n```\nchrome.history.search({ text: 'guancha.cn', maxResults: 10 }, function (data) {\n    data.forEach(function (page) {\n        console.log('history.search:', page);\n        // {\n        //     id: \"269\"\n        //     lastVisitTime: 1585457248915.656\n        //     title: \"观察者网-中国关怀 全球视野\"\n        //     typedCount: 0\n        //     url: \"https://www.guancha.cn/\"\n        //     visitCount: 6\n        // }\n    })\n})\n```\n\n- https://stackoverflow.com/questions/19616204/chrome-history-getvisits-not-listing-all-urls\n```\nchrome.history.getVisits({ \"url\": url }, function (visitItems) {\n    console.log('getVisits:', visitItems);\n\n    // [//列表\n    //     {\n    //         id: \"537\"\n    //         referringVisitId: \"0\"\n    //         transition: \"link\"\n    //         visitId: \"1001\"\n    //         visitTime: 1585457341497.29\n    //     }\n    // ]\n\n})\n```\n"
  },
  {
    "path": "2020/3-30-程序员-邮件订阅/README.md",
    "content": "\n# 邮件订阅 newsletter Subscribe\n- 视频 [程序员-邮件订阅，自动接收各种最新资讯，技术趋势，比别人懂多一点](https://www.bilibili.com/video/BV1k64y1M7es/)\n- 目的\n    - 了解最新资讯，教程，技术趋势\n    - 学习英语\n    - 开阔视野\n\n- Python\n    - Python周报 https://www.pythonweekly.com/\n    - https://importpython.com/newsletter/\n    - https://realpython.com/newsletter/\n- OpenCV\n    - https://www.pyimagesearch.com/newsletter/\n    - https://www.learnopencv.com/\n        - https://opencv.org/courses/\n- 慕课 公开课\n    - TED https://www.ted.com/newsletter\n    - https://www.coursera.org/\n    - https://www.udacity.com/\n- 人工智能\n    - https://www.kaggle.com/\n    - 人工智能-周报 http://aiweekly.co/\n- 众筹\n    - https://www.kickstarter.com/\n    - https://www.indiegogo.com/\n- 创业孵化器 yc\n    - https://www.ycombinator.com/subscribe/\n    - Hacker News https://news.ycombinator.com/\n- 美版知乎 Quora Digest 简报\n    - https://www.quora.com/\n- 科技新闻\n    - https://www.engadget.com/"
  },
  {
    "path": "2020/3-31-python-smart-device/README.md",
    "content": "\n# python编程 控制智能硬件\n- 视频 [python编程-控制智能硬件，4个插座可以实现很多功能，智能家居终于实现了](https://www.bilibili.com/video/BV1up4y1C7mv/)\n\n- 智能硬件\n    - [鸿雁（HONYAR）智能wifi插座 每位独立定时开关 远程手机遥控 插排/插线板/拖线板 计量型](https://union-click.jd.com/jdc?e=&p=AyIGZRprFwcQAlYTXCVGTV8LRGtMR1dGFxBFC1pXUwkEBwpZRxgHRQcLREJEAQUcTVZUGAVJHk1cTQkTSxhBekcLVx5ZEAEaAGUcGVJrFk4jQjlMfHFsIFAPcABwHQV7VxkyEzdVGloUBhsEURJZJTISBGVNNRUDEwZWGFkTBRY3VRhSEwYXBF0YWCUCFg5RHFkUAxQBURpdJQUSDmVLB0VJSlgDGFoQCiI3Vx5ZEAEaAGUYayUyEjdWKxl7VRNUVk9SEAoSVQdMXkUAE1QASwwXBBtXBxgIHQZGUAYrWRQDFg4%3D)\n        - ￥119 \n        - 手机App 控制，定时。统计电量\n        - 型号 IHC8342B \n\n- 之前尝试通过WireShark【抓包】来获取 控制接口，但是没有找到\n    - WireShark 过滤\n```shell script\nip.src == 192.168.0.101\nip.dst == 192.168.0.107\nip.dst == 255.255.255.255\n```\n- 突然发现 有 Python api\n    - https://github.com/mjg59/python-broadlink\n        - 杭州博联智能科技股份有限公司 http://www.broadlink.com.cn\n    - 安装\n        - git clone https://github.com/mjg59/python-broadlink.git\n        - cd python-broadlink\n        - virtualenv -p /usr/local/bin/python3 ~/.smart\n        - source ~/.smart/bin/activate\n        - pip install -r requirements.txt\n        - python3 setup.py install\n- 参考代码\n    - [博联MP系列智能插排设备连接及控制方法，如MP1、MP2等](https://www.domoticz.cn/forum/viewtopic.php?f=33&t=22&sid=3cc9783df8f361e02b039be216c0d6ba)\n        - 代码 有 bug\n        - 修改后 [broadlink1.py](broadlink1.py)\n    - UDP编程\n        - [Raw socket programming in python (Linux)](https://www.binarytides.com/raw-socket-programming-in-python-linux/)\n      \n\n- 增加 使用场景 \n    - 回家\n        - 加湿器\n        - 热水器，洗澡\n        - 电灯\n    - 起床\n        - 拉开窗帘\n    - 睡觉\n        - 定时关闭 电灯\n        - 关上窗帘"
  },
  {
    "path": "2020/3-31-python-smart-device/broadlink1.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/3/31 10:53\n# @File    : broadlink1.py\n\n\n\"\"\"\nbroadlink1.py:\nhttps://www.domoticz.cn/forum/viewtopic.php?f=33&t=22&sid=3cc9783df8f361e02b039be216c0d6ba\n\n在无线路由器中找到\nBroadLink_OEM-T1-1e-0d-8e\nIP：192.168.0.107 | MAC：78-0f-77-1e-0d-8e | 2.4G无线连接\n\n\"\"\"\n\n\ndef main2():\n    import broadlink\n    import sys\n\n    device_ip = '192.168.0.107'  # \"博联设备IP\"\n    device_port = 80\n\n    device_mac = '780f771e0d8e'  # \"博联设备mac地址\"\n    # mac地址例子：\"B443xxxxD329\"，\n\n    # device_type = \"broadlink.mp1\"\n    device_type = 0x4EF7  # Honyar oem mp1\n    # 在 broadlink.__init__.py gendevice() 函数中找到\n\n    socket = str(sys.argv[1])\n    # socket = 's1'\n    action = str(sys.argv[2])\n    # action = 'on'\n\n    device = broadlink.mp1(host=(device_ip, device_port), mac=bytearray.fromhex(device_mac), devtype=device_type)\n\n    rs=device.auth()\n    print('认证:',rs)\n    # device.host\n\n    status = device.check_power()#获取 插排 通电状态\n    print('状态:', status)  # {'s1': False, 's2': False, 's3': True, 's4': False}\n\n    if action == \"on\":\n        if socket == \"s1\":\n            device.set_power(1, True)\n        elif socket == \"s2\":\n            device.set_power(2, True)\n        elif socket == \"s3\":\n            device.set_power(3, True)\n        elif socket == \"s4\":\n            device.set_power(4, True)\n    elif action == \"off\":\n        if socket == \"s1\":\n            device.set_power(1, False)\n        elif socket == \"s2\":\n            device.set_power(2, False)\n        elif socket == \"s3\":\n            device.set_power(3, False)\n        elif socket == \"s4\":\n            device.set_power(4, False)\n        elif action == \"status\":\n            print(\"on\" if device.check_power()[socket] else \"off\")\n    pass\n\n\ndef main():\n    import broadlink\n    myssid = 'myssid'\n    mynetworkpass = 'mynetworkpass'\n    broadlink.setup(myssid, mynetworkpass, 3)  # 没用\n    pass\n\n\nif __name__ == '__main__':\n    main2()\n"
  },
  {
    "path": "2020/3-31-python-smart-device/广播1.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/3/30 22:24\n# @File    : 广播1.py\n\n\n\"\"\"\n广播1.py:\n\nhttps://stackoverflow.com/questions/12607516/python-udp-broadcast-not-sending\n\n\n\n\n\"\"\"\nfrom socket import *\n\ncs = socket(AF_INET, SOCK_DGRAM)\ncs.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)\ncs.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)\n\n\ndef main():\n    # cs.sendto(b'This is a testThis is a testThis is a testThis is a test', ('255.255.255.255', 80))\n    # cs.sendto(b'000000000000000008000000e40732270d011e0300000000c0a800669cfb000095c30000000006000000000000000000', ('255.255.255.255', 80))\n    # cs.sendto(b\"..............2'...........f....................\", ('255.255.255.255', 80))\n    data=\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x08\\x00\\x00\\x00\\xe4\\x07\\x32\\x27\" \\\n         \"\\x0d\\x01\\x1e\\x03\\x00\\x00\\x00\\x00\\xc0\\xa8\\x00\\x66\\x9c\\xfb\\x00\\x00\" \\\n         \"\\x95\\xc3\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"\n    cs.sendto(data, ('255.255.255.255', 80))\n    print('发送 智能插排')\n    pass\n\n\ndef main2():\n    cs.sendto(b'This is a test', ('255.255.255.255', 8080))\n    print('发送完毕')\n    pass\n\ndef main3():\n    data=b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x08\\x00\\x00\\x00\\xe4\\x07\\x15\\x0f\\x02\\x02\\x1f\\x03\\x00\\x00\\x00\\x00\\xc0\\xa8\\x00fx\\xe5\\x00\\x00\\x1d\\xc3\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'\n    data=b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x08\\x00\\x00\\x00\\xe4\\x07\\x06\\x12\\x02\\x02\\x1f\\x03\\x00\\x00\\x00\\x00\\xc0\\xa8\\x00f\\x1a\\xe2\\x00\\x00\\xb0\\xc2\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'\n    data=b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x08\\x00\\x00\\x00\\xe4\\x07\\t\\x12\\x02\\x02\\x1f\\x03\\x00\\x00\\x00\\x00\\xc0\\xa8\\x00f\\x1a\\xe2\\x00\\x00\\xb3\\xc2\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'\n    data=b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x08\\x00\\x00\\x00\\xe4\\x07\\x39\\x27\\x0d\\x01\\x1e\\x03\\x00\\x00\\x00\\x00\\xc0\\xa8\\x00\\x66\\x9c\\xfb\\x00\\x00\\x9c\\xc3\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"\n    data=b\"\\xff\\xff\\xff\\xff\\xff\\xff\\x98\\x46\\x0a\\xc7\\xe6\\x39\\x08\\x00\\x45\\x00\\x00\\x4c\\x86\\x85\\x00\\x00\\x40\\x11\\x33\\x0f\\xc0\\xa8\\x00\\x65\\xff\\xff\\xff\\xff\\xe9\\x13\\x00\\x50\\x00\\x38\\x5d\\x2a\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x08\\x00\\x00\\x00\\xe4\\x07\\x2e\\x1c\\x02\\x02\\x1f\\x03\\x00\\x00\\x00\\x00\\xc0\\xa8\\x00\\x65\\x13\\xe9\\x00\\x00\\xe1\\xc2\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"\n    cs.sendto(data, ('255.255.255.255', 80))\n    print('发送完毕3')\n    pass\n\ndef main4():\n    data=b\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x08\\x00\\x00\\x00\\xe4\\x07\\x28\\x1c\\x02\\x02\\x1f\\x03\\x00\\x00\\x00\\x00\\xc0\\xa8\\x00\\x65\\x13\\xe9\\x00\\x00\\xdb\\xc2\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\"\n    cs.sendto(data, ('224.0.0.251', 80))\n    print('发送完毕')\n    pass\n\nif __name__ == '__main__':\n    main3()\n"
  },
  {
    "path": "2020/3-31-python-smart-device/监听1.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2020/3/31 10:09\n# @File    : 监听1.py\n\n\n\"\"\"\n监听1.py:\n\n找不出来 智能插排的传送方式\n\n插排在路由器显示为\nBroadLink_OEM\n项目合作 - 杭州博联智能科技股份有限公司 - BroadLink\nhttp://www.broadlink.com.cn/cooperation.html\n\n\n也可以\nnc -ul 127.0.0.1 5005\n\"\"\"\nfrom socket import *\n\n# HOST = '192.168.0.222'\nHOST = ''  # 广播地址 255.255.255.255\n\n# HOST = '224.0.0.251'\n# 组播地址 224.0.0.251:5353\n# mDNS-client : 客户端(组播请求), 带缓存(过期时间)\n# mDNS-server : 服务器(组播/单播响应)\n\nPORT = 80\n\ns = socket(AF_INET, SOCK_DGRAM)\ns.bind((HOST, PORT))\n\n\ndef main():\n    print('开始监听')\n    while True:\n        data, address = s.recvfrom(1024)\n        print(data)\n        print(address)\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2020/3-4-WireShark-https-Decrypt/README.md",
    "content": "\n- WireShark 抓包 解密 https\n    - 演示，淘宝直播，博物馆云春游，抓取视频回放网址\n\n- 视频  [云春游？WireShark抓包，解密https，跟踪互联网7层协议](https://www.bilibili.com/video/av93598800/)\n- 参考\n    - [通过 wireshark 抓包了解直播流媒体RTMP协议基本过程](https://blog.csdn.net/tanningzhong/article/details/92987585)\n    - [Wireshark 抓包理解 HTTPS 请求流程（2） - TLS/SSL 握手](https://ukscott.blogspot.com/2019/03/wireshark-https-2-tlsssl.html)\n    - [针对自己的移动端App，可以在客户端调用OpenSSL握手的过程中使用如下代码将ClientRandom和MasterKey导出](https://zhuanlan.zhihu.com/p/64947416)\n\n- 下载\n    - 版本 2.6.1 不需要最新的\n    - https://www.wireshark.org/download.html\n        - Go Spelunking。Past releases can be found by browsing the all-versions directories under each platform directory. \n        - 旧版本 ftp://ftp.uni-kl.de/pub/wireshark/osx/all-versions/\n\n- 运行\n    - 需要启用【无线网卡】，即使有【有线网卡】，否则不显示网卡接口\n\n- 电脑开启【WiFi热点】，把流量分享给手机\n    - 参考 [Mac端WireShark抓移动端包](https://www.jianshu.com/p/82bcdb1decf7)\n    - WireShark监控无线网卡\n    - curl  https://httpbin.org/ip\n    - curl  http://httpbin.org/ip\n        - ip.src == 52.44.66.161\n        - ip.dst == 3.214.162.152\n        - 服务器IP会改变\n\n- 解码HTTPS\n    - 参考 \n        - [Mac中wireshark如何抓取HTTPS流量？](https://www.cnblogs.com/rainmote/p/8320369.html)\n        - [【技术流】Wireshark对HTTPS数据的解密\n网易云信](https://zhuanlan.zhihu.com/p/36669377)\n    - 从Chrome浏览器导出 SSLKEYLOGFILE\n        - [MacOS 下 Wireshark 抓取 Chrome HTTPS](https://segmentfault.com/a/1190000021142289)\n        - sudo /Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --ssl-key-log-file=/Users/`whoami`/sslkeylog.log\n    - Chromium\n        - /usr/local/lib/node_modules/puppeteer/.local-chromium/mac-674921/chrome-mac/Chromium.app/Contents/MacOS/Chromium  --ssl-key-log-file=/Users/play/sslkeylog22.log\n    - 配置WireShark\n        - 打开【Preferences】\n            - 选择 Protocols\n            - 选择 SSL (最新版本选择TLS)\n                - (Pre)-Master-Secret 添加sslkeylog文件\n\n- 本机IP\n    - ifconfig |grep 192\n        - inet 192.168.0.222 netmask 0xffffff00 broadcast 192.168.0.255\n\n- 抓包手机流量，iPhone。使用mitmproxy\n    - 参考 [Wireshark and SSL/TLS Master Secrets](https://docs.mitmproxy.org/stable/howto-wireshark-tls/)\n    - 因为Charles无法导出SSLKEYLOGFILE\n    - 手机WiFi代理设置，192.168.0.222  端口 8080\n    - iPhone上要安装mitmproxy的ssl证书，提前装好\n    - ping httpbin.org\n        - 服务器IP 52.44.66.161\n\n    - 启动mitmproxy\n        - SSLKEYLOGFILE=\"~/.mitmproxy/sslkeylogfile.txt\" mitmproxy\n    - 启动 WireShark，监听有线网卡\n    - curl -k -x 127.0.0.1:8080 https://httpbin.org/ip\n- 启动手机\n    - 打开浏览器 \n        - http://httpbin.org/ip\n        - https://httpbin.org/ip\n- WireShark过滤\n    - 参考 \n        - [wireshark过滤规则及使用方法](https://blog.csdn.net/wojiaopanpan/article/details/69944970)\n        - [Wireshark 跟踪TCP流](https://blog.csdn.net/bcbobo21cn/article/details/91349077)\n    - dns\n    - http\n        - http contains \"ip\"\n    - ssl\n    - http2\n    - tcp.port==443 \n    - 网络层协议，Apply as Filter\n        - ip.host == \"192.168.0.222\"\n        - ip.src == 192.168.0.222\n        - ip.dst == 52.44.66.161\n    - Follow\n        - Follow TCP Stream\n        - Follow SSL Stream\n\n\n- 淘宝直播 m3u8文件，视频流\n    - 微博 https://weibo.com/1855335174/IwzGdF4mZ\n    - 参考 \n        - [使用Wireshark抓取淘宝直播回放源地址并下载](https://www.jianshu.com/p/8333d90dc83e)\n        - [WireShark提取天猫魔盒请求链接](https://blog.csdn.net/zengraoli/article/details/104085906)\n    - 布达拉宫直播回放地址 https://h5.m.taobao.com/taolive/video.html?id=254225007624&type=473&livetype=replay&screenOrientation=landscape&vrType=0&livesource=anchorInfo\n    - DNS livenging.alicdn.com\n        - Queries\n            - livenging.alicdn.com: type A, class IN\n        - Answers\n            - livenging.alicdn.com.danuoyi.alicdn.com: type A, class IN, addr 202.108.249.186\n            - livenging.alicdn.com.danuoyi.alicdn.com: type A, class IN, addr 202.108.249.185\n        - 然后 过滤\n            - ip.dst == 202.108.249.185\n            - ip.dst == 202.108.249.186\n    - 找不到 m3u8文件\n        - http contains \".m3u8\"\n\n"
  },
  {
    "path": "2020/3-5-Python-Request-https-with-proxy/README.md",
    "content": "# https请求安全性，验证证书\n\n\n- 启动 mitmproxy\n    - 测试 \n        - curl -k -x 127.0.0.1:8080 https://httpbin.org/ip\n        - -k 表示 不检查https证书，不添加则请求失败\n\n- Python\n```\nimport requests\nurl='https://httpbin.org/ip'\nproxy='http://127.0.0.1:8080'\nproxies = {\n    'http': proxy,\n    'https': proxy,\n}\nrs = requests.get(url, proxies=proxies)\n#报错 certificate verify failed\n\nrs = requests.get(url)\nrs.text\n#正常\n\n#取消证书验证\nrs = requests.get(url, proxies=proxies,verify=False)\nrs.text\n#只会报警\nInsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n  InsecureRequestWarning)\n```\n"
  },
  {
    "path": "2020/3-5-Python-Request-https-with-proxy/verify_https.go",
    "content": "/*\n@File    :   verify_https.go\n@Time    :   2020/03/07 09:38:20\n@Author  :   play4fun\n@Desc    :   同样的逻辑，用Go语言实现\n*/\n\npackage main\n\nimport (\n\t\"crypto/tls\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n)\n\nfunc main() {\n\turl2 := \"https://httpbin.org/ip\" // 小心同名 \"net/url\"\n\tproxy := \"http://127.0.0.1:8080\" //mitmproxy\n\t// proxy := \"http://42.56.89.102:6159\" //代理服务器Squid,OK\n\n\turli := url.URL{}\n\turlproxy, _ := urli.Parse(proxy)\n\tc := http.Client{\n\t\tTransport: &http.Transport{\n\t\t\tProxy:           http.ProxyURL(urlproxy),               //设置代理\n\t\t\tTLSClientConfig: &tls.Config{InsecureSkipVerify: true}, //跳过证书验证\n\t\t},\n\t}\n\tif resp, err := c.Get(url2); err != nil {\n\t\tlog.Fatalln(err)\n\t\t//2020/03/07 09:45:58 Get https://httpbin.org/ip: x509: certificate signed by unknown authority\n\t\t//exit status 1\n\t} else {\n\t\tdefer resp.Body.Close()\n\t\tbody, _ := ioutil.ReadAll(resp.Body)\n\t\tfmt.Printf(\"%s\\n\", body)\n\t}\n}\n"
  },
  {
    "path": "2020/3-5-Python-Request-https-with-proxy/verify_https.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   verify_https.py\n@Time    :   2020/03/05 16:23:06\n@Author  :   play4fun\n@Desc    :   https请求安全性，验证证书\n'''\n\nimport requests\ndef main():\n    \n    url='https://httpbin.org/ip'\n    proxy='http://127.0.0.1:8080'\n    proxies = {\n        'http': proxy,\n        'https': proxy,\n    }\n    try:\n        rs = requests.get(url, proxies=proxies)\n        print(rs.text)\n        #报错 certificate verify failed\n    except Exception as e:\n        print(e)\n    print('-'*30)\n\n    rs = requests.get(url)\n    print('正常:',rs.text)\n    #正常\n    print('-'*30)\n\n    #取消证书验证\n    rs = requests.get(url, proxies=proxies,verify=False)\n    print(rs.text)\n    pass\n\nif __name__ == \"__main__\":\n    main()\n    pass"
  },
  {
    "path": "2020/3-5-Ubuntu-install-Wine-run-Windows/README.md",
    "content": "# Ubuntu安装Wine-执行Windows程序\n\n- 参考\n    - https://www.winehq.org/\n    - 安装指南Ubuntu https://wiki.winehq.org/Ubuntu_zhcn\n    - http://ubuntuhandbook.org/index.php/2019/12/install-wine-4-21-ubuntu-19-10/\n    - 其他\n        - https://wiki.ubuntu.com.cn/Wine\n        - [Linux下通过Wine安装微信](https://zhuanlan.zhihu.com/p/76331687)\n\n- 视频 [Ubuntu安装Wine-在Linux执行Windows程序](https://www.bilibili.com/video/av93953401/)\n\n- 步骤\n```\nsudo dpkg --add-architecture i386\nwget -nc https://dl.winehq.org/wine-builds/winehq.key\nsudo apt-key add winehq.key\nsudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ eoan main'\nsudo add-apt-repository ppa:cybermax-dexter/sdl2-backport\n不要安装开发版\nsudo apt install --install-recommends winehq-devel\n安装稳定版\nsudo apt install --install-recommends winehq-stable\n\n\nwine --version\nwine-5.3\n```\n- 卸载\n    - sudo apt remove --install-recommends winehq-devel\n\n\n- wine 第一次运行\n    - /home/play/.wine\n\n    - 安装.net Wine Mono安装器\n    -  Gecko安装器 HTML\n    \n\n- 安装微信 https://pc.weixin.qq.com/\n"
  },
  {
    "path": "2020/3-6-macOS创建输入法/README.md",
    "content": "# 很简单！macOS创建自己的输入法\n\n- 视频 [很简单！macOS创建自己的输入法](https://www.bilibili.com/video/av94162883/)\n\n- 参考\n    - [在 Mac 上创建和使用您自己的输入法](https://support.apple.com/zh-cn/guide/mac-help/mchlp2866/mac)\n    - [GitHub粤语拼音](https://github.com/ache051/mac_cantonese)\n\n- 步骤\n    - 使用macOS的【文本编辑】新建一个【文本文档】\n        - 请选取“格式”>“制作纯文本”。\n        - 使用 Unicode (UTF-16) 编码存储文件，并使用诸如“.inputplugin”的扩展名。\n        - 按照【规范】填写 输入法的键和对应的中文\n        - 双击 该文件\n        - 打开【系统偏好设置】，键盘，输入法，进行添加\n        - 搞定\n\n\n- 优化\n    - 输入法的键和对应的中文，可以通过一些词库进行更新\n\n- 缺点\n    - 不能像其他输入法那样，在输入的同时展示候选单词\n        - 必须输入按键后，再按下空格键，才能展示候选单词\n        - 我还没找到怎样进一步设置的攻略。。。\n\n- 安装文件，系统路径\n```\n#用户路径\n(.py3) localhost:~ play$ ll ~/Library/Input\\ Methods/\ntotal 8\ndrwx------+  4 play  staff   128B  3  6 16:44 ./\ndrwx------@ 81 play  staff   2.5K  2 15 23:02 ../\n-rw-------   1 play  staff     0B  6 12  2019 .localized\n-rw-r--r--@  1 play  staff   456B  3  6 16:42 bili_utf16.inputplugin\n\n#系统路径\n(.py3) localhost:~ play$ ll /Library/Input\\ Methods/\ntotal 0\ndrwxr-xr-x   3 root  wheel    96B  3  6 16:11 ./\ndrwxr-xr-x  68 root  wheel   2.1K  3  3 21:15 ../\ndrwxrwxr-x   3 root  staff    96B 11  6 12:31 SogouInput.app/\n\n#搜狗输入法\n(.py3) localhost:~ play$ ll /Library/Input\\ Methods/SogouInput.app/Contents/\ntotal 4120\ndrwxrwxr-x   19 play  staff   608B  3  6 09:50 ./\ndrwxrwxr-x    3 root  staff    96B 11  6 12:31 ../\ndrwxrwxr-x    4 play  staff   128B 11  6 12:17 Frameworks/\n-rwxrwxr--    1 play  staff   3.6K  3  6  2022 Info.plist*\ndrwxrwxr-x    3 play  staff    96B 11  6 12:17 MacOS/\n-rwxrwxr--    1 play  staff     8B  3  6  2022 PkgInfo*\ndrwxrwxr-x  173 play  staff   5.4K 11  6 12:17 Resources/\ndrwxrwxr-x    3 play  staff    96B 11  6 12:17 SGAssistPanel.app/\ndrwxrwxr-x    3 play  staff    96B 11  6 12:17 SGEmojiPanelTool.app/\ndrwxrwxr-x    3 play  staff    96B 11  6 12:17 SGInputStatPanel.app/\ndrwxrwxr-x    3 play  staff    96B 11  6 12:17 SGPicFaceTool.app/\n-rwxrwxr--    1 play  staff   137K  3  6  2022 SogouHelper*\ndrwxrwxr-x    3 play  staff    96B 11  6 12:17 SogouPreference.app/\n-rwxrwxr--    1 play  staff   132K  3  6  2022 SogouProcessInfo*\n-rwxrwxr--    1 play  staff   1.5M  3  6  2022 SogouServices*\ndrwxrwxr-x    3 play  staff    96B 11  6 12:17 SogouTaskManager.app/\n-rwxrwxr--    1 play  staff   199K  3  6  2022 SogouXdelta*\ndrwxrwxr-x    3 play  staff    96B 11  6 12:17 _CodeSignature/\n-rw-r--r--    1 play  staff   643B  3  6 09:50 updateOrder.plist\n```\n"
  },
  {
    "path": "2020/3-7-web-proxy/README.md",
    "content": "# Python编程获取【在线网页代理】地址\n\n- 视频 [先收藏！！Python编程获取【在线网页代理】的重定向地址](https://www.bilibili.com/video/av94486958/)\n\n- 在线ping服务 https://pingtool.org/\n\n## 在线网页代理\n- https://www.free-proxy.com/\n- https://weboproxy.com/\n    - 更好用\n\n\n## 测试地址\n- BBC 行星地球2\n    - https://www.bbc.co.uk/programmes/p02544td\n    - https://www.bbc.co.uk/programmes/b006mywy/episodes/guide\n\n- Reddit是个社交新闻站点，口号：提前于新闻发声，来自互联网的声音\n    - https://www.reddit.com/r/python\n    - https://www.reddit.com/r/java\n\n\n## 修改/etc/hosts\n```\n192.99.70.154 weboproxy.com\n192.99.70.154 ca.weboproxy.com\n\n148.72.168.34 www.free-proxy.com\n147.135.44.178 us3.free-proxy.com\n199.127.60.210 us6.free-proxy.com\n```"
  },
  {
    "path": "2020/3-7-web-proxy/demo1.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   demo1.py\n@Time    :   2020/03/07 19:34:52\n@Author  :   play4fun\n@Desc    :   \n'''\nfrom urllib.parse import quote_plus\nimport json\nimport requests\nhost='https://ca.weboproxy.com/index.php'\n\ndef main():\n    target_url='https://www.reddit.com/r/python'\n    # d={'url':target_url}\n    # data=json.dumps(d)\n    data='url='+quote_plus(target_url)\n    print(data)\n    rs=requests.post(\"https://ca.weboproxy.com/index.php\",\n        # data=data,#'url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fcoronavirus',\n        allow_redirects=False,\n        data=data,\n        headers={\n            \"Accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n            \"Accept-Language\": \"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7\",\n            # \"Cache-Control\": \"max-age=0\",\n            \"Connection\": \"keep-alive\",\n            \"Content-Type\": \"application/x-www-form-urlencoded\",\n            # \"DNT\": \"1\",\n            \"Origin\": \"https://weboproxy.com\",\n            \"Referer\": \"https://weboproxy.com/\",\n            # \"Sec-Fetch-Dest\": \"document\",\n            # \"Sec-Fetch-Mode\": \"navigate\",\n            # \"Sec-Fetch-Site\": \"same-site\",\n            # \"Sec-Fetch-User\": \"?1\",\n            # \"Upgrade-Insecure-Requests\": \"1\",\n            \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36\"\n        },\n        # cookies={\n        #     \"_ga\": \"GA1.2.1357799465.1583580644\",\n        #     \"_gat_gtag_UA_139843171_1\": \"1\",\n        #     \"_gid\": \"GA1.2.509039750.1583580644\"\n        # },\n    )\n    print(rs.text)\n    print('-'*40)\n    print(rs.headers)\n    print('-'*40)\n    print(rs.headers['Location'])\n    print('-'*40)\n    print(rs.url)\n    pass\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2020/3-7-web-proxy/demo2.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   demo2.py\n@Time    :   2020/03/07 20:32:21\n@Author  :   play4fun\n@Desc    :   \n'''\nimport requests\nfrom urllib.parse import quote_plus\n\ndef main():\n    url='https://www.reddit.com/r/java'\n    quote_url=quote_plus(url)\n    print(quote_url)\n\n    rs=requests.post(\"https://ca.weboproxy.com/index.php\",\n    # data='url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fpython',\n    data='url='+quote_url,\n    allow_redirects=False,#禁止重定向\n    headers={\n        \"Accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\n        \"Accept-Language\": \"zh-CN,zh;q=0.9\",\n        \"Cache-Control\": \"max-age=0\",\n        \"Connection\": \"keep-alive\",\n        \"Content-Type\": \"application/x-www-form-urlencoded\",\n        \"Origin\": \"https://weboproxy.com\",\n        \"Referer\": \"https://weboproxy.com/\",\n        # \"Sec-Fetch-Dest\": \"document\",\n        # \"Sec-Fetch-Mode\": \"navigate\",\n        # \"Sec-Fetch-Site\": \"same-site\",\n        # \"Sec-Fetch-User\": \"?1\",\n        # \"Upgrade-Insecure-Requests\": \"1\",\n        \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36\"\n        },\n        cookies={},\n    )\n    print(rs.text)\n    print('-'*40)\n    print(rs.headers)\n    print('-'*40)\n    print(rs.headers['Location'])\n    pass\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2020/3-9-DNS-server/README.md",
    "content": "## 编程实现DNS服务器 - 用来翻墙？\n\n- 视频  [编程实现DNS服务器，Python+Go。代码很简单！](https://www.bilibili.com/video/av94972898/)\n    - 上个视频  [先收藏！！Python编程获取【在线网页代理】的重定向地址](https://www.bilibili.com/video/av94486958/)\n\n- 参考\n    - [How to write a DNS server in Go](https://jameshfisher.com/2017/08/04/golang-dns-server/)\n        - 使用到的Go库 https://github.com/miekg/dns\n            - Go DNS example https://github.com/miekg/exdns\n    - 完整的程序 [如何在Go编程语言中编写自己的DNS代理？](https://www.smartspate.com/write-dns-proxy-go-programming-language/)\n        - 目的是：屏蔽广告\n        - 代码 https://github.com/GoWebProd/goDNS\n            - 也是使用上面的dns库\n            - 问题 \n                - 黑名单找不到 https://raw.githubusercontent.com/GoWebProd/openvpn-adBlock/master/list/black.list \n                - 使用Google DNS 8.8.8.8 在中国不能用\n    - Python DNS 库 \n        - https://github.com/rthalley/dnspython\n        - http://www.dnspython.org/\n            - dnspython是用于DNS的实用程序，/etc/hosts因此未使用。\n            - 对于简单的正向DNS查找，最好使用socket.gethostbyname()\n        - 文章 [python3之DNS处理模块dnspython](https://blog.csdn.net/xwl145/article/details/81746497) 详细 \n\n- DNS记录类型\n```\nA记录，将主机名转换成IP地址；\nMX记录，邮件交换记录，定义邮件服务器的域名；\nCNAME记录，指别名记录，实现域名间的映射；\nNS记录，标记区域的域名服务器及授权子域；\nPTR记录，反向解析，与A记录相反，将IP转换成主机名；\nSOA记录，SOA标记，一个起始授权区的定义。\n```\n\n- 我写的DNS 服务地址\n    - https://play4fun.pythonanywhere.com/\n    - https://play4fun.pythonanywhere.com/dns?domain=www.free-proxy.com\n\n- 把mini_dns_server 设置为系统DNS服务器\n    - 实现某些网站翻墙，例如在线网站代理\n        - 不是所有的国外网站都能翻\n\n- 测试\n    - https://weboproxy.com/\n    - https://www.free-proxy.com/\n- 目标网站\n    - https://www.reddit.com/r/golang\n"
  },
  {
    "path": "2020/3-9-DNS-server/dns_flask.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   dns_flask.py\n@Time    :   2020/03/09 16:36:03\n@Author  :   play4fun\n@Desc    :   \n\n'''\n\nfrom flask import Flask, request, jsonify\nimport socket\napp = Flask(__name__)\n\n\n@app.route('/', methods=['GET'])\ndef hello_world():\n    d = {\n        'msg': '/dns?domain=xxx.xx'\n    }\n    return jsonify(d)\n    pass\n\n\n@app.route('/dns', methods=['GET'])\ndef dns():\n    domain = request.args.get('domain', \"\")\n    rt = {}\n    rt['domain'] = domain\n    ip = ''\n    if domain:\n        try:\n            ip = socket.gethostbyname(domain)            \n        except Exception as e:\n            print(e)\n            rt['error'] = str(e)\n            pass\n    rt['ip'] = ip\n    return jsonify(rt)\n    pass\n\n\nif __name__ == '__main__':\n    app.run(debug=True)\n"
  },
  {
    "path": "2020/3-9-DNS-server/mini_dns_server.go",
    "content": "/*\n@File    :   mini_dns_server.go\n@Time    :   2020/03/08 20:17:26\n@Author  :   play4fun\n@Desc    :   https://jameshfisher.com/2017/08/04/golang-dns-server/\n\n测试\ngo run mini_dns_server.go\ndig @127.0.0.1 www.free-proxy.com\n\n设置为系统DNS ，运行正常\n\n本地缓存 OK\n\n下一步\nGitHub gfw list\n\n\n*/\n\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net\"\n\t\"net/http\"\n\t\"strconv\"\n\n\t\"github.com/miekg/dns\"\n)\n\nvar domainsToAddresses map[string]string = map[string]string{\n\t// \"google.com.\":         \"172.217.9.206\",\n\t// \"jameshfisher.com.\":   \"104.198.14.52\",\n\t// \"www.free-proxy.com.\": \"148.72.168.34\",\n\t// \"us1.free-proxy.com.\": \"148.72.168.34\",\n\t// \"us2.free-proxy.com.\": \"148.72.169.80\",\n}\n\ntype handler struct{}\n\nfunc (this *handler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {\n\tmsg := dns.Msg{}\n\tmsg.SetReply(r)\n\tswitch r.Question[0].Qtype {\n\tcase dns.TypeA:\n\t\tmsg.Authoritative = true\n\t\tdomain := msg.Question[0].Name\n\n\t\taddress, ok := domainsToAddresses[domain] //获取DNS\n\t\tif !ok {                                  //本地没有\n\t\t\t//查询网上\n\t\t\turl2 := \"https://play4fun.pythonanywhere.com/dns?domain=\" + domain\n\t\t\tres, _ := http.Get(url2)\n\t\t\tresp, _ := ioutil.ReadAll(res.Body)\n\t\t\t// fmt.Println(resp)\n\t\t\tfmt.Printf(\"%s\", resp)\n\t\t\ttype DIP struct {\n\t\t\t\tDomain string\n\t\t\t\tIP     string\n\t\t\t}\n\t\t\tvar dip DIP\n\t\t\terr := json.Unmarshal(resp, &dip)\n\t\t\tif err != nil {\n\t\t\t\tfmt.Println(\"error:\", err)\n\t\t\t}\n\t\t\tdomainsToAddresses[domain] = dip.IP\n\t\t\taddress = dip.IP\n\t\t}\n\n\t\tlog.Println(\"domain:\\t\", domain, address, ok)\n\t\t//生成回复\n\t\tmsg.Answer = append(msg.Answer, &dns.A{\n\t\t\tHdr: dns.RR_Header{Name: domain, Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 60},\n\t\t\tA:   net.ParseIP(address),\n\t\t})\n\t}\n\tfmt.Println(\"---------\")\n\tw.WriteMsg(&msg) //回复\n}\n\nfunc main() {\n\n\tsrv := &dns.Server{Addr: \":\" + strconv.Itoa(53), Net: \"udp\"}\n\tsrv.Handler = &handler{}\n\n\tif err := srv.ListenAndServe(); err != nil {\n\t\tlog.Fatalf(\"Failed to set udp listener %s\\n\", err.Error())\n\t}\n\n\t// fmt.Println(\"---------\")\n\t// c := make(chan os.Signal, 1)\n\t// signal.Notify(c, os.Interrupt, os.Kill)\n\t// s := <-c\n\t// fmt.Println(\"Got signal:\", s)\n\n\t// //打印map\n\t// for domain := range domainsToAddresses {\n\t// \tfmt.Println(domainsToAddresses[domain], \" :\\t\", domain)\n\t// }\n}\n"
  },
  {
    "path": "2020/4-1-mitmproxy-抖音/README.md",
    "content": "\n# 抖音 抓包 并存到 数据库\n- 视频 [mitmproxy-抖音抓包，并把短视频链接存到MongoDB数据库](https://www.bilibili.com/video/BV1ae411x78w)\n\n- 搜索接口\n    - https://search-lf.amemv.com/aweme/v1/general/search/single/?version_code=10.4.0&js_sdk_version=1.55.0.3&app_name=aweme&vid=70A898D5-73F9-429E-857C-41789EF2CD25&app_version=10.4.0&device_id=69337363324&channel=App%20Store&mcc_mnc=&aid=1128&screen_width=640&openudid=708a9ae21c955c1e94c739033b9a2002e4aa9153&cdid=7A55D456-9D79-46A5-B641-ACA8506D7780&os_api=18&ac=WIFI&os_version=13.4&device_platform=iphone&build_number=104012&iid=109605200207&device_type=iPod9,1&is_vcd=1&idfa=7327A25C-725B-48D7-9132-153B648500E3&client_width=320&keyword=%E5%AE%9D%E9%AA%8F730&disable_synthesis=0&sort_type=0&is_filter_search=0&count=12&mac_address=02%3A00%3A00%3A00%3A00%3A00&single_filter_aladdin=0&is_pull_refresh=0&epidemic_card_type=2&multi_mod=0&query_correct_type=1&search_id=202004011125360100080681420D933E6C&offset=92&search_source=search_sug&dynamic_type=1&publish_time=0&hot_search=0\n    - 关键词很重要\n\n- mitmproxy 编写插件\n    - 启动 mitmweb -s addon1.py\n    - 过滤 ~u aweme\\/v1\\/general\\/search\\/single\n    - [使用 mitmproxy + python 做拦截代理](https://www.cnblogs.com/grandlulu/p/9525417.html)\n    - 代码例子 https://github.com/mitmproxy/mitmproxy/tree/master/mitmproxy/addons\n    - https://docs.mitmproxy.org/stable/addons-overview/\n\n\n- 破解 抖音 协议 接口\n    - GitHub\n    - 以后再研究\n    - 不知道行不行 [抖音协议中的加解密算法实现](https://github.com/usualwyy/aweme-algorithm)\n\n- 参考\n    - [Android逆向之旅—Android中分析某音短视频的数据请求加密协议(IDA动态调试SO)第一篇](http://www.520monkey.com/archives/1066)\n    \n\n\n- 问题\n    - 难度大，\n    - 经常改变，不稳定\n    - 使用别人破解的接口，要收费   \n    - 现在抖音升级特别频繁，老版本的限制越来越多，以前的签名算法，要么已经过期，要么就不返回数据，要么就是经常封 IP，造成接口和代码要经常改动，维护代理 IP 的成本也高 \n    - 视频要马上下载，不然过期失效\n\n- 替代方案\n    - 笨方法 auto.js 自动点击，输入关键词，搜索\n        - 关键词很重要\n        - 旅游，景点 热门\n        - 网红\n\n\n\n"
  },
  {
    "path": "2020/4-10-MCN-papi酱/README.md",
    "content": "\n# 网红MCN papi酱\n\n- 视频 [什么是MCN?papi酱成立的papitube签约了多少网红？](https://www.bilibili.com/video/BV1MA411b7YX/)\n    - 指南 [怎样建立一个MCN](https://www.bilibili.com/video/BV1tt4y1U7kf/) Youtube视频\n\n- 什么是MCN？\n    - MCN（Multi-Channel Network）是舶来品，是一种多频道网络的产品形态，将PGC内容联合起来，在资本的有力支持下，保障内容的持续输出，从而最终实现商业的稳定变现。\n        - https://baike.baidu.com/item/MCN/3551331\n        - PGC 专业化生产内容 https://baike.baidu.com/item/PGC/16859378\n\n- papi酱\n    - https://baike.baidu.com/item/papi%E9%85%B1/19324554\n    - 2015年10月，她开始利用变音器发布原创短视频内容\n\n    - 泰洋川禾集团拥有业内领先的短视频MCN机构——papi tube，由CEO杨铭和papi酱共同创立于2016年6月10日。\n        - https://www.mttop.cn/pages/bolggerMcn/index.html\n\n        - 成立三年来，papitube签约并孵化了包括@Bigger研究所、@网不红萌叔Joey、@滇西小哥、@玲爷、@爆胎草莓粥等在内的170余位优秀短视频创作者，涵盖美食、美妆、搞笑、生活方式、生活评测、母婴、萌宠、文化等垂直领域，全网粉丝量近4亿，短视频累计播放量逾1000亿次。\n\n    - papi酱 （注册商标）https://baike.baidu.com/item/papi%E9%85%B1/22223449\n\n\n- papi酱公司提供的工作，想不想天天看到网红？\n    - 工作地点:北京市朝阳区\n    - 泰洋川禾 Boss直聘\n        - https://www.zhipin.com/gongsi/131ed72dc81dff7633V43d6-.html?ka=company-intro\n\n        - 爬虫开发工程师 15-25K\n            - 北京3-5年本科\n            - https://www.zhipin.com/job_detail/09ffb8df208d6bb603193N-0EVQ~.html\n"
  },
  {
    "path": "2020/4-10-MCN-papi酱/analysis.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   analysis.py\n@Time    :   2020/04/10 09:11:05\n@Desc    :   \n'''\n\nimport requests\n# from scrapy.http import HtmlResponse\n\n\ndef get网红(idx):\n    rs = requests.get(f\"https://mt.mttop.cn/miniprogram/blogger/{idx}\",\n                      headers={\n                          \"Accept\": \"application/json, text/javascript, */*; q=0.01\",\n                          \"Accept-Language\": \"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7\",\n                          \"Connection\": \"keep-alive\",\n                          \"Content-Type\": \"application/json;charset=UTF-8\",\n                          \"DNT\": \"1\",\n                          \"Origin\": \"https://www.mttop.cn\",\n                          \"Referer\": \"https://www.mttop.cn/pages/bolggerMcn/index.html\",\n                          \"Sec-Fetch-Dest\": \"empty\",\n                          \"Sec-Fetch-Mode\": \"cors\",\n                          \"Sec-Fetch-Site\": \"same-site\",\n                          \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36\"\n                      },\n                      cookies={},\n                      )\n    js=rs.json()\n    count=js['data']['allPlatformFansCount'] if js['data']['allPlatformFansCount'] else 0\n    return count,js['data']['bloggerNickName'],js['data']['bloggerCalendarRemark']\n    pass\n\n\ndef main():\n    url = 'https://mt.mttop.cn/miniprogram/blogger/list'\n    rs = requests.post(\"https://mt.mttop.cn/miniprogram/blogger/list\",\n                       data='{}',\n                       headers={\n                           \"Accept\": \"application/json, text/javascript, */*; q=0.01\",\n                           \"Accept-Language\": \"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7\",\n                           \"Connection\": \"keep-alive\",\n                           \"Content-Type\": \"application/json;charset=UTF-8\",\n                           \"DNT\": \"1\",\n                           \"Origin\": \"https://www.mttop.cn\",\n                           \"Referer\": \"https://www.mttop.cn/pages/bolggerMcn/index.html\",\n                           \"Sec-Fetch-Dest\": \"empty\",\n                           \"Sec-Fetch-Mode\": \"cors\",\n                           \"Sec-Fetch-Site\": \"same-site\",\n                           \"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36\"\n                       },\n                       cookies={},\n                       )\n    js = rs.json()\n    # 签约了多少个网红\n    print('签约了多少个网红:', len(js['data']))#187\n    for d in js['data']:\n        print(d['bloggerId'], d['bloggerNickName'])\n        print(d['bloggerIntroduction'])\n        print('-'*10)\n    # 获取所有网红详情\n    rtl=[]\n    for d in js['data']:\n        print(d['bloggerId'], d['bloggerNickName'])\n        rtl.append(get网红(d['bloggerId']))\n    #清理none\n    rtl3=[]\n    for fc,name,desc in rtl:\n        if not fc:\n            fc=0\n        rtl3.append((fc,name,desc))\n    #按【全网播放量】排序    \n    rtl2=sorted(rtl,key=lambda x: x[0])#顺序\n    rtl2=sorted(rtl,key=lambda x: -x[0])#倒序 从大到小\n    for fc,name,desc in rtl2[:20]:\n        print(fc,name,desc)\n        print('-'*20)\n    pass\n\n\ndef main2():\n    # url='https://www.mttop.cn/pages/bolggerMcn/index.html'\n    # rs=requests.get(url)\n    # html=HtmlResponse(url=url,status=rs.status_code,body=rs.content)\n    # html.xpath()\n    pass\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2020/4-2-今日头条-原创视频-收益/README.md",
    "content": "\n# 今日头条 制作视频 收益\n- 看看别人是怎样的收益\n\n- 视频 [看看别人的今日头条-视频收益，心动了吗？鼓励大家走【原创视频】的制作路线](https://www.bilibili.com/video/BV1at4y1m7VX/)\n\n- 视频是按照播放次数计算收益的。\n    - 一般来说，非粉丝观看，一万次播放是3元钱；\n    - 如果是粉丝观看产生的播放，一万次是几百元不等。\n    - 现在很多原创账号，一万次粉丝的播放在600元左右。\n\n- 今日头条的收益是按照播放量和阅读量计算的，\n    - 图文阅读量一万=3块钱左右，\n    - 视频一万=4块钱左右，\n    - 只有头条号原创视频价格最高，一万播放大概20元，\n\n### 鼓励大家走头条号原创视频的制作路线。\n\n```\n#复制HTML\nhtml='''html'''\nimport re\npa='([\\d\\.]+.?)次观看'\npa='([\\d\\.]+.?)播放'\nrs=re.findall(pa,html)\nrs2=[]\nfor num in rs:\n    if num[-1]=='万':\n        rs2.append(float(num[:-1])*10000)\n    else:\n        rs2.append(float(num))\n\nsm=sum(rs2)\nsm\nsm/10000*3\nsm/10000*600*13.5\n```"
  },
  {
    "path": "2020/4-23-moviepy-GIF/README.md",
    "content": "\n# 使用moviepy制作 GIF动画\n\n- 视频 [不需要视频剪辑软件，使用moviepy制作GIF动画，Python编程](https://www.bilibili.com/video/BV1hK4y1k7Qn/)\n\n- 步骤\n    - 准备图片\n        - 使用iPhone拍摄\n        - 导出图片\n    - 启动Docker moviepy\n        - 启动 jupyter-lab --no-browser --ip=0.0.0.0 --allow-root\n        - 打开浏览器 http://127.0.0.1:8888/?token=2da26d501d4b8cfae9a97543c60edd97be0422d974a2469d\n\n    - Python编程，新建jupyter Notebook\n        - 图片序列 ImageSequenceClip\n        - 分辨率\n        - 帧数\n    - 输出GIF或mp4"
  },
  {
    "path": "2020/4-23-moviepy-GIF/跳绳-GIF动画.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# 跳绳，图片，制作GIF动画\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"pygame 1.9.6\\n\",\n      \"Hello from the pygame community. https://www.pygame.org/contribute.html\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from moviepy.editor import ImageSequenceClip\\n\",\n    \"import os\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"['t1/IMG_1248.JPG',\\n\",\n       \" 't1/IMG_1250.JPG',\\n\",\n       \" 't1/IMG_1251.JPG',\\n\",\n       \" 't1/IMG_1252.JPG',\\n\",\n       \" 't1/IMG_1253.JPG',\\n\",\n       \" 't1/IMG_1254.JPG',\\n\",\n       \" 't1/IMG_1255.JPG',\\n\",\n       \" 't1/IMG_1256.JPG',\\n\",\n       \" 't1/IMG_1257.JPG',\\n\",\n       \" 't1/IMG_1258.JPG',\\n\",\n       \" 't1/IMG_1259.JPG',\\n\",\n       \" 't1/IMG_1260.JPG',\\n\",\n       \" 't1/IMG_1261.JPG',\\n\",\n       \" 't1/IMG_1262.JPG',\\n\",\n       \" 't1/IMG_1263.JPG',\\n\",\n       \" 't1/IMG_1264.JPG',\\n\",\n       \" 't1/IMG_1265.JPG',\\n\",\n       \" 't1/IMG_1266.JPG',\\n\",\n       \" 't1/IMG_1267.JPG',\\n\",\n       \" 't1/IMG_1268.JPG',\\n\",\n       \" 't1/IMG_1269.JPG',\\n\",\n       \" 't1/IMG_1270.JPG',\\n\",\n       \" 't1/IMG_1271.JPG',\\n\",\n       \" 't1/IMG_1272.JPG',\\n\",\n       \" 't1/IMG_1273.JPG',\\n\",\n       \" 't1/IMG_1274.JPG',\\n\",\n       \" 't1/IMG_1275.JPG',\\n\",\n       \" 't1/IMG_1276.JPG',\\n\",\n       \" 't1/IMG_1277.JPG']\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"#导入图片\\n\",\n    \"images=[f't1/{img}' for img in os.listdir('t1') if img.endswith('JPG')]\\n\",\n    \"images=sorted(images)\\n\",\n    \"images_list=images\\n\",\n    \"images_list\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"29\"\n      ]\n     },\n     \"execution_count\": 3,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"len(images_list)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#把图片导入 序列\\n\",\n    \"clip = ImageSequenceClip(images_list, fps=25)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"t:   0%|          | 0/31 [00:00<?, ?it/s, now=None]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MoviePy - Building file jump1.gif with imageio.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                            \\r\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clip.write_gif('jump1.gif')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"t:   0%|          | 0/30 [00:00<?, ?it/s, now=None]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MoviePy - Building file jump3.gif with imageio.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                            \\r\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clip.resize((200,150)).write_gif('jump3.gif')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"t:   0%|          | 0/25 [00:00<?, ?it/s, now=None]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"MoviePy - Building file jump2.gif with imageio.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                            \\r\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clip.set_fps(20).resize((200,150)).write_gif('jump2.gif')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"t:   0%|          | 0/25 [00:00<?, ?it/s, now=None]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Building video jump1.mp4.\\n\",\n      \"Moviepy - Writing video jump1.mp4\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                            \"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Done !\\n\",\n      \"Moviepy - video ready jump1.mp4\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\r\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clip.set_fps(20).resize((150,200)).write_videofile('jump1.mp4')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"t:   0%|          | 0/19 [00:00<?, ?it/s, now=None]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Building video jump2.mp4.\\n\",\n      \"Moviepy - Writing video jump2.mp4\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                            \"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Done !\\n\",\n      \"Moviepy - video ready jump2.mp4\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\r\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clip.set_fps(15).resize((225,300)).write_videofile('jump2.mp4')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"t:   0%|          | 0/13 [00:00<?, ?it/s, now=None]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Building video jump3.mp4.\\n\",\n      \"Moviepy - Writing video jump3.mp4\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                            \"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Done !\\n\",\n      \"Moviepy - video ready jump3.mp4\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\r\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clip.set_fps(10).resize((225,300)).write_videofile('jump3.mp4')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"ename\": \"TypeError\",\n     \"evalue\": \"unsupported operand type(s) for +: 'ImageSequenceClip' and 'ImageSequenceClip'\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mTypeError\\u001b[0m                                 Traceback (most recent call last)\",\n      \"\\u001b[0;32m<ipython-input-16-077baecd5e51>\\u001b[0m in \\u001b[0;36m<module>\\u001b[0;34m\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0mclips\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0mclip\\u001b[0m\\u001b[0;34m+\\u001b[0m\\u001b[0mclip\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n      \"\\u001b[0;31mTypeError\\u001b[0m: unsupported operand type(s) for +: 'ImageSequenceClip' and 'ImageSequenceClip'\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clips=clip+clip\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"clip2 = ImageSequenceClip(images_list*3, fps=30)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"t:   0%|          | 0/90 [00:00<?, ?it/s, now=None]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Building video jump4.mp4.\\n\",\n      \"Moviepy - Writing video jump4.mp4\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                            \\r\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Done !\\n\",\n      \"Moviepy - video ready jump4.mp4\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clip2.resize((225,300)).write_videofile('jump4.mp4')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"t:   0%|          | 0/90 [00:00<?, ?it/s, now=None]\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Building video jump5.mp4.\\n\",\n      \"Moviepy - Writing video jump5.mp4\\n\",\n      \"\\n\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"                                                            \\r\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Moviepy - Done !\\n\",\n      \"Moviepy - video ready jump5.mp4\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"clip2.resize((720,576)).write_videofile('jump5.mp4')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.3\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "2020/4-23-程小奔python/README.md",
    "content": "\n# 程小奔 智能小车 python编程\n- 官网 https://www.makeblock.com/cn/steam-kits/codey-rocky\n\n- 视频 [买了2年积灰了！程小奔 智能小车 python编程](https://www.bilibili.com/video/BV1o54y197nh/)\n\n- 下载mblock编程环境 https://www.mblock.cc/zh-cn/\n    - 安装\n    - USB连接 程小奔\n        - 开机\n    - 连接成功后，设置>>固件更新 23.01.013\n- 编写代码\n    - 拖拉代码块\n    - 点击</>符号，转换成python代码\n    - 修改，上传到程小奔\n    - 执行，放到平地上\n\n- 参考\n    - [开始使用python](http://docs.makeblock.com/codeyrocky/zh/tutorials/use-python.html)\n    - [Python API文档](http://docs.makeblock.com/codeyrocky/zh/python-api/python-api.html)"
  },
  {
    "path": "2020/4-23-程小奔python/检测物体.py",
    "content": "# generated by mBlock5 for codey & rocky\n# codes make you happy\nimport codey, event, time, rocky\n\n@event.start\ndef on_start():\n    codey.display.show_image(\"00003c7e7e3c000000003c7e7e3c0000\")\n    codey.speaker.play_melody('laugh.wav')\n\n@event.button_a_pressed\ndef on_button_a_pressed():\n    codey.speaker.play_melody('hello.wav')\n    while True:\n        rocky.forward(50)\n        if rocky.color_ir_sensor.is_obstacle_ahead():\n            codey.speaker.play_melody('wrong.wav', True)\n            rocky.backward(50, 1, straight = True)\n            rocky.turn_left_by_degree(90)\n            rocky.forward(50, 2, straight = True)\n\n@event.button_b_pressed\ndef on_button_b_pressed1():\n    rocky.stop()\n    codey.speaker.play_melody('sigh.wav', True)\n    codey.stop_all_scripts()\n\n@event.button_c_pressed\ndef on_button_c_pressed2():\n    codey.display.show_image(\"000c18181c0c000000000c1c18180c00\")\n    codey.speaker.play_melody('hello.wav', True)\n    codey.display.show_image(\"000207070f0e080000080e0f07070200\")\n\n"
  },
  {
    "path": "2020/4-29-GoPro-MAX/README.md",
    "content": "\n# GoPro MAX 全景运动相机 购买 使用 测评\n- 《穷人评测》第一集\n\n- 视频 [GoPro MAX 全景运动相机 购买 使用 测评，《穷人评测》第一集 ](https://www.bilibili.com/video/BV1mf4y1S78S/)\n\n- 参考\n    - 官网 https://gopro.com/zh/cn/\n    - 手册 https://zh.gopro.com/help/productmanuals\n    - 软件\n        - iPhone安装App \n            - GoPro\n            - Quik\n        - Macbook 安装  \n            - [GoPro 播放器](https://community.gopro.com/t5/zh-cn/GoPro-25773-25918-22120/ta-p/472246?profile.language=zh-CN)\n                - 在使用 GoPro MAX 拍摄了所有素材后，现在可以将 360 度影像转换为可供编辑和分析的精美传统视频和照片。\n                - 使用“调整画面”可尝试无数种视图，通过点击关键帧选择理想镜头，即刻创建视图之间电影级的转场效果。\n                - 然后，转换并导出传统的 .mp4 文件，通过自己喜欢的编辑程序播放或在社交媒体上分享。\n                - 在电脑上播放不流畅\n                    - 升级电脑\n            - [Quik | 桌面版](https://gopro.com/zh/cn/shop/softwareandapp/quik-%7C-%E6%A1%8C%E9%9D%A2%E7%89%88/Quik-Desktop.html)\n                - 使用 Quik，您可以无比轻松地存取、编辑和欣赏您的 GoPro 照片和视频。只需点击几下，即可自动导入1您的影像并制成搭配同步配乐的精彩视频\n    - GoPro大奖 https://gopro.com/zh/cn/awards \n        - 拍到好作品，参赛拿奖金！\n\n\n- GoPro MAX 特点\n    - 拍摄 360度 全景相片和视频\n    - Max HyperSmooth 超强防抖\n    - 6个内置麦克风\n    - 坚固耐用 + 5米防水\n    - 一机三用\n        - 全景相机\n        - GoPro Hero 8 black 运动相机\n        - 自拍相机 VLog\n        - == Insta360 ONE X运动全景相机 + DJI 大疆 Osmo Action 灵眸运动相机\n\n- 售后，保护\n    - 特别注意，前后2个摄像头的镜头，划花了，不保修的！\n        - 平时不使用的时候，用保护罩盖起来\n        - 一些危险场景，使用透明罩\n\n- 购买\n    - 注意【价格保护】，购买后可能促销降价，例如我买了闪迪TF卡，2天后降价20元\n    - 京东 [GoPro MAX 全景运动相机 Vlog数码摄像机 水下潜水户外骑行滑雪直播相机 增强防抖 裸机防水](https://item.jd.com/100004982557.html) \n        - ￥3998，免息分期24期，每月166.66元\n        - 墨西哥生产\n    - 竞品\n        - [Insta360 ONE X运动全景相机摄像机 5.7K高清运动防抖户外直播](https://item.jd.com/100000696258.html)\n        - [DJI 大疆 Osmo Action 灵眸运动相机 双彩屏 超强增稳 超清画质 裸机防水 vlog摄像机](https://item.jd.com/100003394837.html) \n            - 前后双彩屏\n    - 配件\n        - TF卡  [闪迪（SanDisk）64GB TF（MicroSD）存储卡 U3 C10 A2 V30 4K 至尊极速移动版内存卡 读速160MB/s 写速60MB/s](https://item.jd.com/2217746.html)\n            - ￥109\n        - 自拍杆等配件 [SURWEO For GoPro配件hero8/7/6/5/4大疆运动相机套装小蚁相机转接配件套装 特价B](https://item.jd.com/27524547841.html)\n            - 塑料味\n        - 电池,先不买\n            - 使用充电宝给相机充电，可以继续进行拍摄录视频\n            - 官方套装\n                - [GoPro MAX 360全景相机 原装正品双充充电器 快速充电锂电池 MAX 原装双充（含一充一电）](https://item.jd.com/62541068027.html)\n                    - 京东价 ￥548 , 比较贵\n            - 全解码电池，淘宝\n                - [劲码 gopro max电池 GoPro MAX全景运动相机360度防水防抖直播高清VLOG摄像机电池大容量非原装充电器配件](https://detail.tmall.com/item.htm?id=610674348281)\n                    - 便宜，实用，两电一充才￥209,用优惠券￥199\n            - [Ulanzi GM-2适用GoPro Max运动相机电池盖可充电侧边仓盖全金属兔笼GoPro Max侧盖外接vlog套装摄影支架配件](https://detail.tmall.com/item.htm?id=610151652238)\n                - 全金属材质 不挡充电口 拆装简单 使用方便\n                - ￥54\n                - 我买了这个，可以边充电边摄影\n                    - 不要频繁拆盖换电池，更方便\n\n        - 补光灯\n            - [VL49 迷你led补光灯便携小型摄影灯手机vlog视频拍摄多功能外拍灯户外直播拍照自拍手持单反相机摄像机影室灯\n2000mAh大容量 持久续航 轻巧便携 多灯拼接](https://detail.tmall.com/item.htm?id=608816739769) \n                - ¥ 79\n        - 防水壳 \n            - [适用于gopro max防水壳 gopro max360全景运动相机配件水下镜头潜水保护壳 gopro max防水壳](https://item.jd.com/66602490801.html)\n                - ￥308\n\n\n- 开箱上手\n    - 防伪，二手东\n        - 扫描二维码\n        - [英迈电子商贸上海](http://www.trustim.cn/)\n            - 识别码 2019045206610644\n            - 你所查询的数码已在2020年04月27日18时48分查询过，谨防假冒，请联系你的销售网点，谢谢使用！\n    - 充电\n        - 看手册，5V1A\n        - 使用 Supercharger，单独购买\n        - 使用电脑USB充电\n        - 充电宝\n    - 手机App连接\n\n- 剪辑\n    - 锚点\n    - 调整视角\n    - 剪切，去掉不想要的片段\n    - 导出mp4，分享到社交平台，朋友圈\n\n- 全景相片，上传 平台\n    - YouTube\n        - 需要翻墙，上传流量过大！\n    - https://720yun.com/\n        - 相片demo https://720yun.com/t/davks927spb\n        - 全景视频 https://720yun.com/v2/e47z0e7tnr5\n            - 可以自由切换视角，默认是视频开始的方向\n                - 因为我上楼梯后转弯，到后面一直是显示我。\n                - 在这个平台，没法设置不同时间点的视角\n\n\n- 直播\n    - [视频直播使用入门](https://community.gopro.com/t5/zh-cn/35270-39057-30452-25773-20351-29992-20837-38376/ta-p/400413?profile.language=zh-CN)\n        - 不能使用【全景模式】，只能使用【Hero模式】\n        - 支持国内平台\n        - YouTube直播\n    - B站\n        - 选择 【直播分类】\n        - 使用第三方软件开播的用户点击开始直播后获取rtmp地址和推流码。\n        - rtmp地址: rtmp://bvc.live-send.acg.tv/live-bvc/\n        - 直播码: ?streamname=live_180958619_2148315&key=27db078641ff8zffa42b07a0f1bd8761\n        - 复制到手机 GoPro App:\n            - rtmp://bvc.live-send.acg.tv/live-bvc/?streamname=live_180958619_2148315&key=27db078641ff8zffa42b07a0f1bd8761\n    - 如何使用我的手机个人热点进行视频直播？ \n        - 购买手机流量套餐\n        - 手机打开-个人热点\n        - GoPro App 连接热点\n        - 设置直播"
  },
  {
    "path": "2020/4-3-Jupiter-Notebook-插入HTML视频/README.md",
    "content": "\n## Jupiter-Notebook-插入HTML视频\n\n- 参考\n    - [How can I play a local video in my IPython notebook?](https://stackoverflow.com/questions/18019477/how-can-i-play-a-local-video-in-my-ipython-notebook)\n\n- 打开 [html_video.ipynb](html_video.ipynb)\n    - 在命令行执行 jupyter-lab\n    - 然后 打开 浏览器，加载 html_video.ipynb"
  },
  {
    "path": "2020/4-3-Jupiter-Notebook-插入HTML视频/html_video.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## 插入 HTML 视频\\n\",\n    \"- 在命令行执行 jupyter-lab\\n\",\n    \"- 然后 打开 浏览器，加载 html_video.ipynb\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>本地视频</div>\\n\",\n       \"<video width=\\\"320\\\" height=\\\"240\\\" controls>\\n\",\n       \"  <source src=\\\"banma.mp4\\\" type=\\\"video/mp4\\\">\\n\",\n       \"</video>\\n\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"%%HTML\\n\",\n    \"<div>本地视频</div>\\n\",\n    \"<video width=\\\"320\\\" height=\\\"240\\\" controls>\\n\",\n    \"  <source src=\\\"banma.mp4\\\" type=\\\"video/mp4\\\">\\n\",\n    \"</video>\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<iframe  width=\\\"100%\\\" height=\\\"500\\\"  src=\\\"//player.bilibili.com/player.html?aid=625016090&bvid=BV1at4y1m7VX&cid=173067736&page=1\\\" scrolling=\\\"no\\\" border=\\\"0\\\" frameborder=\\\"no\\\" framespacing=\\\"0\\\" allowfullscreen=\\\"true\\\"> </iframe>\\n\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"%%HTML\\n\",\n    \"<div>B站视频</div>\\n\",\n    \"<iframe  width=\\\"100%\\\" height=\\\"500\\\"  src=\\\"//player.bilibili.com/player.html?aid=625016090&bvid=BV1at4y1m7VX&cid=173067736&page=1\\\" scrolling=\\\"no\\\" border=\\\"0\\\" frameborder=\\\"no\\\" framespacing=\\\"0\\\" allowfullscreen=\\\"true\\\"> </iframe>\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<video class=\\\"\\\" autoplay=\\\"\\\" tabindex=\\\"2\\\" mediatype=\\\"video\\\" src=\\\"blob:https://www.ixigua.com/5f9b5f44-7140-46d6-a35b-62799ffac161\\\" style=\\\"position: absolute; top: 0px; left: 0px;\\\"></video>\\n\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"%%HTML\\n\",\n    \"<div>西瓜视频，不支持</div>\\n\",\n    \"<video class=\\\"\\\" autoplay=\\\"\\\" tabindex=\\\"2\\\" mediatype=\\\"video\\\" src=\\\"blob:https://www.ixigua.com/5f9b5f44-7140-46d6-a35b-62799ffac161\\\" style=\\\"position: absolute; top: 0px; left: 0px;\\\"></video>\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>腾讯视频</div>\\n\",\n       \"<iframe width=\\\"100%\\\" height=\\\"500\\\"  frameborder=\\\"0\\\" src=\\\"https://v.qq.com/txp/iframe/player.html?vid=g0942dvc5wb\\\" allowFullScreen=\\\"true\\\"></iframe>\\n\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"%%HTML\\n\",\n    \"<div>腾讯视频，有广告</div>\\n\",\n    \"<iframe width=\\\"100%\\\" height=\\\"500\\\"  frameborder=\\\"0\\\" src=\\\"https://v.qq.com/txp/iframe/player.html?vid=g0942dvc5wb\\\" allowFullScreen=\\\"true\\\"></iframe>\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 22,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<div>优酷视频，可以。站外播放，没有广告？</div>\\n\",\n       \"\\n\",\n       \"<iframe width=\\\"100%\\\" height=\\\"500\\\"  src='https://player.youku.com/embed/XNDQyNTk0NTg0MA==' frameborder=0 'allowfullscreen'></iframe>\\n\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"%%HTML\\n\",\n    \"<div>优酷视频，可以。站外播放，没有广告？</div>\\n\",\n    \"\\n\",\n    \"<iframe width=\\\"100%\\\" height=\\\"500\\\"  src='https://player.youku.com/embed/XNDQyNTk0NTg0MA==' frameborder=0 'allowfullscreen'></iframe>\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.4\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "2020/4-8-instagram/README.md",
    "content": "\n# Instagram 爬虫\n\n- 视频 [想看漂亮小姐姐吗？Instagram爬虫，Python编程](https://www.bilibili.com/video/BV1sg4y187rh)\n\n- 参考\n    - GitHub\n        - 搜索 https://github.com/search?l=Python&o=desc&q=instagram&s=stars&type=Repositories\n        - 机器人 [Instagram Bot - Tool for automated Instagram interactions](https://github.com/timgrossmann/InstaPy)\n        - 爬虫 [Instagram Scraper](https://github.com/rarcega/instagram-scraper)\n\n- 观察网页，api\n    - 俄罗斯美女 https://www.instagram.com/sabinaskerova/\n        - 查看网页源代码，查找 _sharedData\n        - 打开DevTool，Network面板，过滤 graphql/query\n\n- 使用 Instagram Scraper 爬虫\n    - 安装pip install instagram-scraper\n    - 私人账号，必须是她的粉丝\n        - `instagram-scraper <username> -u <your username> -p <your password> `    \n    - instagram-scraper sabinaskerova --maximum 10 --proxies '{\"http\": \"http://127.0.0.1:8118\", \"https\": \"http://127.0.0.1:8118\" }'\n    - instagram-scraper stationcdrkelly --maximum 10 \n        - 美国宇航员 https://www.instagram.com/stationcdrkelly/\n\n\n"
  },
  {
    "path": "2020/5-4-movie-调查犯罪是我们的职业/Crime est notre affaire.subs.cn.srt",
    "content": "1个\n00:02:03,807 --> 00:02:07,807\n 总结一下:谨慎与天才\n 贝雷斯福德结婚了..\n\n2\n00:02:09,327 --> 00:02:11,886\n ..他们有一个女儿，..\n\n3\n00:02:11,887 --> 00:02:14,887\n ..两个可爱的孙子，..\n\n4\n00:02:15,127 --> 00:02:18,127\n ..他们会幸福地生活\n 从此以后。\n\n5\n00:02:18,367 --> 00:02:21,367\n 事情还没有结果\n 我期望的方式！\n\n6\n00:02:22,407 --> 00:02:25,407\n 非常深刻，但并非新鲜事物。\n\n7\n00:02:29,327 --> 00:02:32,327\n 好无聊。\n 我好无聊。\n\n8\n00:02:33,527 --> 00:02:36,527\n 我在一个深沉的黑暗穹顶中。\n\n9\n00:02:36,647 --> 00:02:39,647\n 你把我活埋了。\n\n10\n00:02:39,687 --> 00:02:42,086\n 当他们打开我的棺材时，..\n\n11\n00:02:42,087 --> 00:02:45,087\n ..他们会看到划痕\n 在盖子上..\n\n12\n00:02:45,367 --> 00:02:48,246\n 我把手指放在哪里\n 到树桩上\n\n13\n00:02:48,247 --> 00:02:50,766\n ..战斗出去。\n -你怎么了？\n\n14\n00:02:50,767 --> 00:02:53,767\n 哦，什么都没有！\n 什么都没发生，仅此而已。\n\n15\n00:02:54,647 --> 00:02:57,647\n 我不能再忍受了\n 这种单调乏味的存在。\n\n16\n00:02:57,687 --> 00:03:00,687\n 我想你是\n 完全满足？\n\n17\n00:03:00,927 --> 00:03:02,766\n 贝雷斯福德上校..\n\n18岁\n00:03:02,767 --> 00:03:05,767\n ..前负责人\n 特勤局\n\n19\n00:03:05,847 --> 00:03:08,847\n ..神秘的人，\n 不可能完成的任务...\n\n20\n00:03:09,367 --> 00:03:12,006\n 你不疼了吗\n 兴奋吗？\n\n21\n00:03:12,007 --> 00:03:14,886\n 为了浪漫的冒险？\n\n22\n00:03:14,887 --> 00:03:16,726\n 想象一下激动。\n\n23\n00:03:16,727 --> 00:03:20,727\n ..听到敲门声，\n 去打开它..\n\n24\n00:03:20,730 --> 00:03:23,287\n ..看到一个死人交错进来！\n\n25\n00:03:24,607 --> 00:03:26,726\n 如果他死了，他不会\n 令人st目结舌。\n\n26\n00:03:26,727 --> 00:03:29,727\n 但是是的，他们总是错开\n 在他们死之前\n\n27\n00:03:30,447 --> 00:03:33,447\n 然后他们跌倒了\n 莫名其妙的单词，如:..\n\n28\n00:03:34,367 --> 00:03:37,367\n 斑点豹子...\n 啊...！''\n\n29\n00:03:38,567 --> 00:03:40,966\n 我不认为我喜欢死人\n 谁错了。\n\n30\n00:03:40,967 --> 00:03:43,967\n 哦，那将是在车轮上用餐！\n\n31\n00:04:02,000 --> 00:04:04,000\n你在做什么 ？\n\n32\n00:04:04,500 --> 00:04:06,500\n你能闻到些什么吗？\n\n33\n00:04:06,750 --> 00:04:09,000\n<不，没有。\n\n34\n00:04:09,500 --> 00:04:11,500\n你闻不到那种气味吗？\n\n35\n00:04:11,600 --> 00:04:13,500\n<有什么气味？\n-不确定...\n\n36\n00:04:13,750 --> 00:04:16,500\n晚年。\n\n37\n00:04:16,750 --> 00:04:19,500\n<老年？\n-是的。老年。\n\n38\n00:04:20,047 --> 00:04:23,600\n 非常感谢你。\n -<不-不...\n\n39\n00:04:23,727 --> 00:04:26,000\n 不是你，是我。\n\n40\n00:04:26,087 --> 00:04:30,087\n 有一段时间了，我已经老了\n 爬到我身上。\n\n41\n00:04:31,527 --> 00:04:33,006\n 我，我什么都没有。\n\n42\n00:04:33,007 --> 00:04:36,007\n 你什么都没有没有任何感觉。\n -<完成后..\n\n43\n00:04:36,327 --> 00:04:40,327\n ..使动词“感觉”结合起来...\n -<但是我们不老！\n\n44\n00:04:42,607 --> 00:04:45,326\n 不老 ？我们不是退休人员吗？\n\n45\n00:05:03,007 --> 00:05:06,007\n 当您退休时，它毁了\n 我的生活。\n\n46\n00:05:06,327 --> 00:05:10,727\n 是您想休假。\n -要放假-恰到好处。\n\n47\n00:05:11,207 --> 00:05:14,207\n 无论如何，\n 别理我\n\n48\n00:05:14,687 --> 00:05:16,606\n 乔治怎么样？\n\n49\n00:05:16,607 --> 00:05:19,607\n 我正在燃烧枯叶。\n 还要别的吗？\n\n50\n00:05:19,687 --> 00:05:21,446\n 没关系。\n\n51\n00:05:21,447 --> 00:05:24,947\n 我不相信我已经看过\n 你以前喜欢这样\n\n52\n00:05:25,247 --> 00:05:28,247\n 一直在搅拌\n 在我心中很长一段时间。\n\n53\n00:05:28,367 --> 00:05:31,367\n 为什么不买新帽子呢？\n -我已经有很多！\n\n54\n00:05:31,767 --> 00:05:34,206\n 那如果你有40点呢\n\n55\n00:05:34,207 --> 00:05:35,966\n ..另一个可能会成功。\n 我们走吧。\n\n56\n00:05:35,967 --> 00:05:38,967\n 我有44个；和所有的帽子\n 彼此相似。\n\n57\n00:05:39,847 --> 00:05:42,847\n 即使有微妙之处\n 他们之间的差异。\n\n58\n00:05:43,527 --> 00:05:46,527\n 我会喜欢的东西\n 激动发生在我们身上。\n\n59\n00:05:47,647 --> 00:05:50,126\n 这对我们俩都很好。\n\n60\n00:05:50,127 --> 00:05:52,966\n 如果只是仙女\n 会出现...\n\n61\n00:07:01,967 --> 00:07:04,526\n 导体...\n\n62\n00:07:06,967 --> 00:07:08,166\n 怎么了 ？\n\n63\n00:07:08,167 --> 00:07:11,167\n 一个女人被勒死\n 在超越我们的火车上。\n\n64\n00:07:13,007 --> 00:07:14,446\n 我都看了\n\n65岁\n00:07:14,447 --> 00:07:17,366\n 完全冷静地告诉我\n 你看到了什么\n\n66\n00:07:17,367 --> 00:07:20,086\n 我睡着了...\n\n67\n00:07:20,087 --> 00:07:22,406\n 另一列火车超越了我们。\n\n68\n00:07:22,407 --> 00:07:25,407\n 我看到一个男人的后背\n -勒死一个女人。\n\n69\n00:07:26,487 --> 00:07:29,487\n 勒死一个女人？\n -是的\n\n70\n00:07:30,087 --> 00:07:33,087\n 就像书中一样\n 您正在阅读 ？\n\n71\n00:07:33,247 --> 00:07:35,326\n 一模一样 ！\n\n72\n00:07:35,327 --> 00:07:38,126\n 好吧...\n\n73\n00:07:38,127 --> 00:07:42,027\n 鲁迪，你看到什么了吗\n 4:50快递有异样吗？\n\n74\n00:07:42,247 --> 00:07:43,446\n 没有为什么 ？\n\n75\n00:07:43,447 --> 00:07:45,126\n 没事，算了。\n\n76\n00:07:45,127 --> 00:07:48,127\n 我想知道\n 你打算做。\n\n77\n00:07:48,247 --> 00:07:51,246\n 我不是警察。\n 但是，如果它能让您放心，..\n\n78\n00:07:51,247 --> 00:07:54,206\n ..我会找出来\n 事件报告。\n\n79\n00:07:54,207 --> 00:07:56,086\n 有事吗\n\n80\n00:07:56,087 --> 00:07:59,087\n 这是犯罪！\n\n81\n00:08:17,207 --> 00:08:19,486\n 巴贝特姨妈！\n\n82\n00:08:19,487 --> 00:08:23,487\n 谨慎一点\n 我见证了犯罪！\n\n83\n00:08:24,367 --> 00:08:27,367\n 犯罪？\n -是的，犯罪！\n\n84\n00:08:30,727 --> 00:08:32,526\n 不，不，不是东西！\n\n85\n00:08:32,527 --> 00:08:34,086\n 没有提到尸体。\n\n86\n00:08:34,087 --> 00:08:37,086\n 你不相信我发明了它吗？\n - 当然不是 ！\n\n87\n00:08:37,087 --> 00:08:38,446\n 你让我感觉更好。\n\n88\n00:08:38,447 --> 00:08:40,886\n 那个指挥\n 他不相信我。\n\n89\n00:08:40,887 --> 00:08:43,686\n 但是我给他一个清晰的\n 我所看到的陈述。\n\n90\n00:08:43,687 --> 00:08:46,526\n 普通攻击者\n 会逃跑..\n\n91\n00:08:46,527 --> 00:08:48,606\n ..并离开了身体。\n\n92\n00:08:48,607 --> 00:08:51,607\n 因此，它是有预谋的，\n 或激情犯罪...\n\n93\n00:08:52,487 --> 00:08:55,487\n 嫉妒，愤怒-和那个男人\n 勒死...\n\n94\n00:08:56,927 --> 00:08:59,927\n 但是我看不到\n 他对身体做了什么。\n\n95\n00:09:00,327 --> 00:09:03,327\n 啊！他把它从窗户扔了。\n\n96\n00:09:06,367 --> 00:09:09,367\n 他把它藏在手提箱里。\n\n97\n00:09:09,447 --> 00:09:12,447\n 什么样的杀手四处走动\n 放在手提箱里的尸体？\n\n98\n00:09:13,967 --> 00:09:16,046\n 这将被注意到。\n\n99\n00:09:16,047 --> 00:09:17,886\n 再来一条路？\n\n100\n00:09:17,887 --> 00:09:20,887\n 就我而言\n 他把它从窗户扔了。\n\n101\n00:09:21,527 --> 00:09:24,527\n <或尸体错开！\n\n102\n00:09:26,647 --> 00:09:28,886\n 你的刺客很魁梧？\n -<是的。\n\n103\n00:09:28,887 --> 00:09:31,486\n <至少对我来说是如此。\n\n104\n00:09:31,487 --> 00:09:34,487\n <足够大，主要是棕色。\n\n105\n00:09:34,687 --> 00:09:36,606\n 我只看到他的背影。\n\n106\n00:09:38,247 --> 00:09:40,366\n 和不幸的受害者一样。\n 啊！\n\n107\n00:09:42,127 --> 00:09:44,286\n 她戴着红色手套！\n\n108\n00:09:44,287 --> 00:09:47,246\n <这...太可怕了。\n -<你一定有..\n\n109\n00:09:47,247 --> 00:09:50,247\n ..做梦，或目击\n 国内纠纷\n\n110\n00:09:50,327 --> 00:09:53,327\n ..比您想象的要悲惨。\n\n111\n00:09:53,687 --> 00:09:57,687\n 少悲惨？！这是犯罪！\n 我亲眼看到了它。\n\n112\n00:09:58,327 --> 00:10:00,926\n <我很失望！\n 您的Belisaire是..\n\n113\n00:10:00,927 --> 00:10:03,927\n ..像其他人一样。\n 他不相信我。\n\n114\n00:10:04,887 --> 00:10:07,887\n 这发生在某处\n 超越Andelieux？\n\n115\n00:10:08,287 --> 00:10:09,446\n 是。\n\n116\n00:10:09,447 --> 00:10:12,947\n 我记得那个地方。\n 有一条曲线..\n\n117\n00:10:13,087 --> 00:10:14,806\n ..那使我震惊。\n\n118\n00:10:14,807 --> 00:10:17,807\n 我们的火车经过了\n Andelieux的车站\n\n119\n00:10:18,207 --> 00:10:21,207\n 十分钟后。\n Belisaire，您到了！\n\n120\n00:10:21,527 --> 00:10:24,527\n <我需要绝对\n 内心的平静..\n\n121\n00:10:24,607 --> 00:10:26,046\n ..我在国外旅行期间。\n\n122\n00:10:26,047 --> 00:10:29,047\n <您要去哪里狩猎，\n 这次 ？ -在圭亚那。\n\n123\n00:10:29,407 --> 00:10:3​​2,407\n Zigoeunus Thomasus\n 蛾。男性\n\n124\n00:10:3​​2,567 --> 00:10:3​​5,567\n 这是最优雅的飞蛾\n 在亚马逊地区...\n\n125\n00:10:57,167 --> 00:10:59,366\n <为什么要熨烫苏格兰短裙？\n\n126\n00:10:59,367 --> 00:11:01,526\n 我在格拉斯哥的聚会。\n\n127\n00:11:01,527 --> 00:11:04,366\n 你知道吗，\n 椭圆蓟。\n\n128\n00:11:04,367 --> 00:11:06,886\n 你忘了我要走吗\n 后天？\n\n129\n00:11:06,887 --> 00:11:09,887\n 那你就必须全身心投入\n 熨烫褶皱。\n\n130\n00:11:11,487 --> 00:11:13,206\n 你在做什么 ？\n\n131\n00:11:13,207 --> 00:11:16,207\n 废话\n 巴贝特姨妈的“罪行”！\n\n132\n00:11:16,527 --> 00:11:19,527\n 你忘了\n 犯罪是我们的责任。\n\n133\n00:11:20,327 --> 00:11:23,327\n 很明显你阿姨\n 弄错了\n\n134\n00:11:24,087 --> 00:11:27,086\n 理查德专员\n 到处搜寻。\n\n135\n00:11:27,087 --> 00:11:30,087\n 火车，车站，医院，\n 太平间。没有身体的迹象。\n\n136\n00:11:30,767 --> 00:11:33,767\n 没有人报告失踪。\n\n137\n00:11:36,847 --> 00:11:38,366\n 超车的火车..\n\n138\n00:11:38,367 --> 00:11:41,367\n ..贝贝特一定是\n 4:50\n\n139\n00:11:41,687 --> 00:11:43,926\n ..在Aigrefonds停下。\n\n140\n00:11:43,927 --> 00:11:46,646\n 然后，铁路轨道\n\n141\n00:11:46,647 --> 00:11:49,647\n ..跟随县境\n 一段距离...\n\n142\n00:11:50,927 --> 00:11:53,927\n 但是之后，\n 实际上有一条曲线。\n\n143\n00:11:54,287 --> 00:11:55,406\n 然后 ？\n\n144\n00:11:55,407 --> 00:11:58,286\n 刺客扔了\n 窗外的身体。\n\n145\n00:11:58,287 --> 00:12:00,046\n <坦白地说，那就是你\n 希望发生！\n\n146\n00:12:00,047 --> 00:12:03,047\n 帮凶，\n 隐藏在灌木丛中\n\n147\n00:12:03,367 --> 00:12:06,367\n ..捆绑受害者\n 进入他的黑色货车。\n\n148\n00:12:06,607 --> 00:12:09,607\n ..并倾倒一切\n 进入湖中。\n\n149\n00:12:09,847 --> 00:12:12,166\n 周围没有湖。\n\n150\n00:12:12,167 --> 00:12:15,167\n 您相信只有看到的东西，\n 我可怜的人。\n\n151\n00:12:15,247 --> 00:12:18,247\n 这就是为什么\n 你常常被误入歧途。\n\n152\n00:12:31,967 --> 00:12:34,967\n ``我记得那个地方。\n 有一条曲线..\n\n153\n00:12:35,367 --> 00:12:37,286\n ''..那让我震惊\n\n154\n00:12:37,287 --> 00:12:40,287\n ``我们的火车经过了\n Andelieux的车站。''\n\n155\n00:13:01,007 --> 00:13:03,486\n <我相信我已经找到了。\n\n156\n00:13:03,487 --> 00:13:06,487\n 靠近曲线，有\n 酷儿属性，孤立。\n\n157\n00:13:07,727 --> 00:13:10,446\n 处置身体的理想选择。\n\n158\n00:13:10,447 --> 00:13:11,766\n 这是一种痴迷。\n\n159\n00:13:11,767 --> 00:13:14,686\n 我有一个直觉\n 巴贝特是对的。\n\n160\n00:13:14,687 --> 00:13:16,366\n 不要跟我谈论直觉。\n\n161\n00:13:16,367 --> 00:13:19,326\n 她没有想象力\n 发明这样的故事。\n\n162\n00:13:19,327 --> 00:13:22,327\n 然后也许是幻觉。\n\n163\n00:13:22,407 --> 00:13:24,606\n 巴贝特姨妈的脑袋还好。\n\n164\n00:13:24,607 --> 00:13:27,486\n 她是世界权威\n 在蝴蝶上。\n\n165\n00:13:27,487 --> 00:13:30,487\n 她没有发明它们。\n 她抓住了它们并命名。\n\n166\n00:13:31,367 --> 00:13:34,367\n 她想与\n 杀手，我会帮助她的。\n\n167\n00:13:34,887 --> 00:13:37,887\n 一个人不追杀人\n 像蝴蝶一样\n\n168\n00:13:38,167 --> 00:13:42,167\n 不，是一样的一个人困住他们\n 和-松散-固定他们。\n\n169\n00:13:42,847 --> 00:13:45,406\n ``Shlack''！我不明白\n\n170\n00:13:45,407 --> 00:13:48,407\n 那是因为你不听！\n\n171\n00:13:51,087 --> 00:13:54,087\n 与您度过愉快的时光\n 椭圆蓟的朋友。\n\n172\n00:13:54,807 --> 00:13:57,807\n 我们不会喝水。\n 毫无疑问！\n\n173\n00:13:59,767 --> 00:14:02,767\n 再见一路平安 ！\n\n174\n00:14:25,007 --> 00:14:26,366\n 看苏格兰人！\n\n175\n00:14:26,367 --> 00:14:29,367\n 他们什么都不穿\n 在他们的短裙下，你知道。\n\n176\n00:14:34,487 --> 00:14:37,487\n 我如何做到这一点？\n\n177\n00:14:44,247 --> 00:14:45,846\n 我们可以帮您吗？\n\n178\n00:15:05,647 --> 00:15:07,046\n 你的帽子\n\n179\n00:15:50,167 --> 00:15:51,206\n 不知道是谁\n\n180\n00:15:51,207 --> 00:15:54,207\n ..那个女孩可能是？\n -她可能是新来的女仆。\n\n181\n00:15:55,327 --> 00:15:57,006\n ..up在“ LaValléeaux Loups”。\n\n182\n00:15:57,007 --> 00:16:00,007\n 他们都没有持续很长时间。\n\n183\n00:16:00,047 --> 00:16:03,047\n <老人夏庞帝\n 看到这一点。\n\n184\n00:16:05,767 --> 00:16:07,806\n <那个可怜的姑娘...\n\n185\n00:16:07,807 --> 00:16:09,886\n 所有的雪都在那里。\n\n186\n00:16:09,887 --> 00:16:12,887\n ..她不会坐公共汽车。\n\n187\n00:16:18,887 --> 00:16:21,887\n 今天不会有公车。\n 我可以带你去哪里吗？\n\n188\n00:16:27,327 --> 00:16:29,606\n 你在那里真幸运！\n\n189\n00:16:29,607 --> 00:16:32,607\n 我相信他们会拥有所有\n 让我当场冻结。\n\n190\n00:16:39,727 --> 00:16:41,486\n 你的座位加热了吗？\n\n191\n00:16:41,487 --> 00:16:43,566\n 不，不，这是您感觉到的马达。\n\n192\n00:16:43,567 --> 00:16:46,126\n 他们都是那个地方的狗。\n\n193\n00:16:46,127 --> 00:16:48,246\n 像我的老板一样\n 夏潘捷先生。\n\n194\n00:16:48,247 --> 00:16:49,566\n 他是狗吗？\n - 一只老鼠 ！\n\n195\n00:16:49,567 --> 00:16:52,567\n 丰富得令人难以置信，但\n 你永远不会知道的，老鼠！\n\n196\n00:16:53,167 --> 00:16:56,167\n 总是在走廊里\n 等着凝视我！\n\n197\n00:16:57,847 --> 00:17:00,006\n 你知道，凝视着……\n\n198\n00:17:00,007 --> 00:17:02,646\n 凝视，如何？\n 我不能告诉你\n\n199\n00:17:02,647 --> 00:17:04,326\n 他向我的脊椎发出寒战。\n\n200\n00:17:04,327 --> 00:17:07,327\n 事实是，老人夏潘捷\n 吓到大家了\n\n201\n00:17:08,567 --> 00:17:10,686\n 你在房子里做什么\n 这个老人呢？\n\n202\n00:17:10,687 --> 00:17:14,687\n 一切。洗碗碟，\n 打扫灰尘，购物，铺床。\n\n203\n00:17:15,307 --> 00:17:18,607\n 靠你自己 ？\n 不，有女士。克莱林\n\n204\n00:17:18,847 --> 00:17:21,446\n 但是这个地方很大\n 它真的需要一支军队。\n\n205\n00:17:21,447 --> 00:17:23,366\n 他一个人住吗？\n\n206\n00:17:23,367 --> 00:17:26,366\n 不，和他可怜的女儿\n 和一个园丁。\n\n207\n00:17:26,367 --> 00:17:28,086\n 最糟糕的是厨房。\n\n208\n00:17:28,087 --> 00:17:31,087\n 有点像\n 走出中世纪。\n\n209\n00:17:31,767 --> 00:17:33,606\n 你去那儿很久了吗？\n\n210\n00:17:33,607 --> 00:17:36,607\n 七个星期。我不想\n 待一会儿。\n\n211\n00:18:54,927 --> 00:18:57,927\n 进来吧。\n 我将拿来小姐。\n\n212\n00:19:04,207 --> 00:19:06,206\n 新的国内来了。\n\n213\n00:19:06,207 --> 00:19:09,207\n <送她到我的办公室。\n -很好，小姐。\n\n214\n00:19:11,727 --> 00:19:13,806\n 来吧，她现在见。\n\n215\n00:19:13,807 --> 00:19:16,807\n 您今年是第13位。\n 迷信？\n\n216\n00:19:42,767 --> 00:19:45,366\n 你好，\n 我是Emma Charpentier。\n\n217\n00:19:45,367 --> 00:19:47,446\n 你是个好厨师吗？\n\n218\n00:19:47,447 --> 00:19:50,447\n 你有参考吗？\n 不，没有\n\n219\n00:19:50,607 --> 00:19:52,286\n 那是很不寻常的。\n\n220\n00:19:52,287 --> 00:19:55,126\n 在大多数情况下，\n 它们没有什么价值。\n\n221\n00:19:55,127 --> 00:19:58,127\n 他们从不说\n 为什么一个人离开一个地方。\n\n222\n00:20:00,287 --> 00:20:04,287\n 非常真实你哪一天\n 喜欢休息吗？\n\n223\n00:20:04,407 --> 00:20:09,407\n 我很灵活。以来\n 我亲爱的丈夫之死...\n\n224\n00:20:10,767 --> 00:20:13,767\n 我的时间是我自己的。\n\n225\n00:20:13,967 --> 00:20:16,967\n 很好。\n 让我告诉你你的房间。\n\n226\n00:20:23,567 --> 00:20:25,606\n 我不仅需要厨房女仆。\n\n227\n00:20:25,607 --> 00:20:28,607\n 嗯克莱林不是每天都在这里。\n\n228\n00:20:28,767 --> 00:20:31,767\n 我的祖父，他建造了\n 屋。太棒了\n\n229\n00:20:32,447 --> 00:20:35,447\n 但是非常严格。\n 损坏是我父亲造成的。\n\n230\n00:20:35,527 --> 00:20:38,686\n ..有点生气。他拒绝\n 让任何人修理它。\n\n231\n00:20:38,687 --> 00:20:41,687\n 我父亲是一个很难的人。\n\n232\n00:20:42,247 --> 00:20:45,247\n 他一直在关注费用，\n 可能会很困难\n\n233\n00:20:47,407 --> 00:20:49,126\n - 我习惯于..\n\n234\n00:20:49,127 --> 00:20:51,086\n ..老年人的习惯。\n\n235\n00:20:51,087 --> 00:20:53,726\n 首先，事情将会是\n 简单。我们四个人。\n\n236\n00:20:53,727 --> 00:20:56,646\n 我自己，我的外nie女在度假，\n 她的同学，然后...\n\n237\n00:20:56,647 --> 00:20:57,486\n 艾玛！\n\n238\n00:20:57,587 --> 00:21:01,987\n ..我的父亲。但是我的兄弟们\n 即将圣诞节。\n\n239\n00:21:02,207 --> 00:21:05,207\n 艾玛！\n\n240\n00:21:05,847 --> 00:21:08,847\n 这些圣诞节费用。\n 你想让我破产吗？\n\n241\n00:21:09,887 --> 00:21:12,366\n 那是谁啊\n\n242\n00:21:12,367 --> 00:21:15,367\n 新厨房女佣\n 我跟你谈过\n\n243\n00:21:15,887 --> 00:21:18,887\n 来来 ！\n 我们来看你，过来！\n\n244\n00:21:20,487 --> 00:21:24,487\n 你叫什么名字，小家伙？\n 保诚贝雷斯福德。\n\n245\n00:21:27,447 --> 00:21:29,126\n 她的手臂很好。\n\n246\n00:21:29,127 --> 00:21:32,127\n 好吧...\n\n247\n00:21:34,367 --> 00:21:37,367\n 记住两件事:\n 我讨厌浪费\n\n248\n00:21:38,607 --> 00:21:41,607\n ..一个乡绅是\n 不一定丰富。\n\n249\n00:21:41,687 --> 00:21:44,687\n 我住在这里是因为我想\n 不是因为我有能力。\n\n250\n00:21:46,127 --> 00:21:48,606\n 现在，走吧 ！\n 不要再打扰我了。\n\n251\n00:21:48,607 --> 00:21:53,607\n 别忘了一个好鳕鱼\n 和大菱形一样好。\n\n252\n00:21:55,687 --> 00:21:58,086\n 对不起。\n\n253\n00:21:58,087 --> 00:22:00,046\n 艾玛！\n\n254\n00:22:00,047 --> 00:22:01,766\n 过来，艾玛！\n\n255\n00:22:01,767 --> 00:22:03,486\n 劳驾。\n\n256\n00:22:03,487 --> 00:22:06,487\n 我必须去。你的房间是\n 在顶部-在左侧\n\n257\n00:22:06,767 --> 00:22:08,486\n 钥匙在门上。\n\n258\n00:22:08,487 --> 00:22:11,487\n 我自己的孩子\n 成了我的敌人！\n\n259\n00:22:14,207 --> 00:22:17,207\n <告诉那个白痴医生\n 最后一种药..\n\n260\n00:22:18,647 --> 00:22:19,806\n <..一点都不好！\n\n261\n00:22:19,807 --> 00:22:22,807\n <您确定吗？\n -<当然可以！\n\n262\n00:22:59,367 --> 00:23:02,367\n 谁在那儿 ？\n\n263\n00:23:25,207 --> 00:23:28,207\n 你一定是侄女...\n 的Mlle。夏蓬蒂\n\n264\n00:23:28,327 --> 00:23:31,327\n 是的，我是Alexie Charpentier。\n\n265\n00:23:32,687 --> 00:23:35,687\n 而你，你是玛丽·波平斯！\n -啊！欢乐满人间 ！\n\n266\n00:23:36,127 --> 00:23:39,127\n 你不是我的女仆\n 为我的祖父工作。\n\n267\n00:23:39,807 --> 00:23:43,807\n 你不是我侄女的主意\n 的Mlle。夏蓬蒂\n\n268\n00:23:44,367 --> 00:23:47,367\n 嗯克莱林在等你\n 在厨房。\n\n269\n00:23:47,387 --> 00:23:49,406\n 那让我改变\n 我会在那里。\n\n270\n00:23:49,407 --> 00:23:52,086\n 我会等你降落。\n\n271\n00:23:52,087 --> 00:23:53,006\n 艾玛！\n\n272\n00:23:53,007 --> 00:23:57,007\n 他总是向我姨妈喊。\n 然而，她是唯一爱他的人。\n\n273\n00:23:57,727 --> 00:24:00,727\n 别人不爱他吗？\n -他们就像秃鹰。\n\n274\n00:24:01,327 --> 00:24:03,126\n 他们在等他死。\n\n275\n00:24:03,127 --> 00:24:05,846\n 秃are是谁？\n -我叔叔\n\n276\n00:24:05,847 --> 00:24:10,847\n 拉斐尔叔叔。他很奇怪。\n 一位银行家和一名赌徒。\n\n277\n00:24:11,507 --> 00:24:14,086\n 他和妻子一起住在里昂。\n\n278\n00:24:14,087 --> 00:24:17,046\n 他只喜欢钱和毒品。\n\n279\n00:24:17,047 --> 00:24:19,126\n 奥古斯丁叔叔住\n 在一个岛上。\n\n280\n00:24:19,127 --> 00:24:22,127\n 他放弃了雕刻\n 花时间打猎。\n\n281\n00:24:23,527 --> 00:24:25,926\n 他杀死的越多，\n 他越喜欢它。\n\n282\n00:24:25,927 --> 00:24:28,846\n 谁来照顾你？\n - 我的父亲。\n\n283\n00:24:28,847 --> 00:24:31,486\n 我妈妈死了。\n 一家人都考虑他。\n\n284\n00:24:31,487 --> 00:24:34,046\n ..失败。他们叫他\n 弗雷德里克的闲逛\n\n285\n00:24:34,047 --> 00:24:36,966\n 但是我不在乎。\n 他是一位优秀的吉他手。\n\n286\n00:24:36,967 --> 00:24:37,926\n 就在那儿。\n\n287\n00:24:37,927 --> 00:24:40,927\n 还有爱德蒙叔叔，\n 在战争中丧生的人。\n\n288\n00:24:41,327 --> 00:24:44,327\n 我们快到了，来吧。\n\n289\n00:24:50,807 --> 00:24:52,886\n 她已经喝醉了。\n\n290\n00:24:52,887 --> 00:24:54,646\n 一条小路，..\n\n291\n00:24:54,647 --> 00:24:57,647\n ..Mme。克莱林？\n -天气照旧，有帮助。\n\n292\n00:24:58,447 --> 00:25:00,566\n 我一直在等你。\n\n293\n00:25:00,567 --> 00:25:02,846\n 我会给你看\n 东西在哪里。\n\n294\n00:25:02,847 --> 00:25:04,966\n 不会花一点时间。\n\n295\n00:25:04,967 --> 00:25:07,967\n 在盘ull里，有\n 午餐所需的一切。\n\n296\n00:25:12,127 --> 00:25:14,566\n 炉子烧得很好。\n 我点燃了\n\n297\n00:25:14,567 --> 00:25:17,206\n ..今天早上。\n 您需要保持它的状态。\n\n298\n00:25:17,207 --> 00:25:19,526\n 屋子里可能会变冷。\n\n299\n00:25:19,527 --> 00:25:22,006\n 我煮了咖啡。\n\n300\n00:25:22,007 --> 00:25:24,006\n 所以，你在那里。\n 再见 ！\n\n301\n00:25:24,007 --> 00:25:26,326\n 保重，爷爷讨厌。\n\n302\n00:25:26,327 --> 00:25:30,327\n ..晚饭。\n 午餐是中午，夫人。罂粟花。\n\n303\n00:26:16,327 --> 00:26:20,327\n 来吧，\n 不然我们会迟到的！\n\n304\n00:26:34,027 --> 00:26:36,946\n <现在谁在想象事情？\n -<爸爸，你夸张了。\n\n305\n00:26:36,947 --> 00:26:40,526\n <我知道我在说什么。\n 我的病，两个星期前..\n\n306\n00:26:40,527 --> 00:26:43,206\n ..你的兄弟有\n 与此有关。\n\n307\n00:26:43,207 --> 00:26:44,806\n 接下来您会提出什么建议？\n\n308\n00:26:44,807 --> 00:26:47,646\n <只是消化不良。\n\n309\n00:26:47,647 --> 00:26:49,846\n <现在坐下来让自己平静。\n\n310\n00:26:49,847 --> 00:26:52,326\n <您和我谈论消化不良！\n\n311\n00:26:52,327 --> 00:26:55,327\n 甚至是您珍贵的拉加德博士\n 很可疑\n\n312\n00:26:56,047 --> 00:26:59,047\n 但是你忘记了一件事。\n\n313\n00:26:59,247 --> 00:27:02,247\n 失败总是死在最后。\n\n314\n00:27:09,127 --> 00:27:10,966\n 愚蠢的服务生不工作。\n\n315\n00:27:10,967 --> 00:27:12,486\n 铅的重量下降了。\n\n316\n00:27:12,487 --> 00:27:15,166\n 可以修理吗？\n -我不这么认为。\n\n317\n00:27:15,167 --> 00:27:18,167\n 让我们来帮助您。有\n 到中午只有30秒。\n\n318\n00:27:19,447 --> 00:27:22,447\n 嗯罂粟花，\n 瓦莱丽，我最好的朋友。\n\n319\n00:27:22,527 --> 00:27:25,527\n 着迷。\n 走开我会跟着\n\n320\n00:27:53,967 --> 00:27:56,967\n 这很好，汤。\n\n321\n00:27:59,807 --> 00:28:02,807\n 很好\n 真的很好，汤。\n\n322\n00:28:53,447 --> 00:28:56,447\n ``弯曲的曲线...''\n\n323\n00:28:56,487 --> 00:28:58,886\n 是啊\n <Prudence Beresford！\n\n324\n00:28:58,887 --> 00:29:01,887\n 终于！你在哪 ？\n\n325\n00:29:02,207 --> 00:29:04,686\n 自己弄清楚...\n\n326\n00:29:04,687 --> 00:29:05,646\n 你在哪 ？\n\n327\n00:29:05,647 --> 00:29:08,647\n 你还没有发射自己\n 进入那个荒谬的奥秘。\n\n328\n00:29:09,127 --> 00:29:11,806\n ..铁路谋杀案？\n\n329\n00:29:11,807 --> 00:29:15,207\n 我突然发现\n 对雪鞋的热情。\n\n330\n00:29:15,647 --> 00:29:17,526\n 我正在练习。\n\n331\n00:29:17,527 --> 00:29:20,527\n <什么？\n -是的，我从来不敢承认。\n\n332\n00:29:21,487 --> 00:29:24,126\n ..但是我梦dream以求...\n\n333\n00:29:24,127 --> 00:29:27,127\n ..独自一人在雪中行走，\n 穿着雪鞋。\n\n334\n00:29:28,927 --> 00:29:30,126\n 你什么时候回来 ？\n\n335\n00:29:30,127 --> 00:29:32,046\n 我会回来的...\n\n336\n00:29:32,047 --> 00:29:34,486\n 我会回来的...\n 我不知道。\n\n337\n00:29:34,487 --> 00:29:36,526\n 5天内完成\n 是圣诞节！\n\n338\n00:29:36,527 --> 00:29:39,527\n 玛丽·克里斯汀和她的家人\n 将与我们一起度过。\n\n339\n00:29:40,647 --> 00:29:41,926\n 已经是圣诞节了吗？\n\n340\n00:29:41,927 --> 00:29:44,526\n 但是，是的 ！\n 每年一次。\n\n341\n00:29:44,527 --> 00:29:47,527\n 我怎么会忘记？\n\n342\n00:29:48,327 --> 00:29:52,327\n 圣诞节，另一个机会\n 享受孙子们！\n\n343\n00:30:34,687 --> 00:30:37,166\n 你们自己很开心。\n\n344\n00:30:37,167 --> 00:30:40,167\n 我们要去博物馆了。\n - 博物馆 ？\n\n345\n00:30:40,327 --> 00:30:43,327\n 红房子，祖父在哪里\n 保留他的宝藏。\n\n346\n00:30:43,847 --> 00:30:46,526\n 它在那边的岩石之外。\n\n347\n00:30:46,527 --> 00:30:47,846\n 来吧，通过这里！\n\n348\n00:31:19,047 --> 00:31:22,047\n 这条路。\n\n349\n00:31:24,047 --> 00:31:27,047\n <哦！这里很冷！\n\n350\n00:32:04,000 --> 00:32:07,000\n 记得锁起来\n 因为野猪。\n\n351\n00:32:23,000 --> 00:32:26,000\n 您不可以在这里。\n 这是乡绅的博物馆。\n\n352\n00:33:15,000 --> 00:33:16,500\n 坐!!\n\n353\n00:34:55,000 --> 00:34:57,700\n *这是的应答电话\n Babette Boutiti。\n\n354\n00:34:58,000 --> 00:35:00,200\n *我在寻找蝴蝶\n 圭亚那\n\n355\n00:35:00,207 --> 00:35:02,806\n *留言后\n “流行”。\n\n356\n00:35:02,807 --> 00:35:03,886\n * Pop！\n\n357\n00:35:03,887 --> 00:35:06,887\n 巴贝特姨妈\n 我刚发现..\n\n358\n00:35:07,727 --> 00:35:10,686\n ..身体\n 被勒死的女人的画像。\n\n359\n00:35:10,687 --> 00:35:13,687\n ..穿着皮大衣，\n  一个红色的手套。\n\n360\n00:35:13,847 --> 00:35:16,086\n ..在一个大石棺中。\n\n361\n00:35:16,087 --> 00:35:19,087\n 你在这。我会告诉\n 你回来的时候会更多。\n\n362\n00:35:19,487 --> 00:35:22,487\n 好，仅此而已。\n\n363\n00:35:40,167 --> 00:35:42,126\n Belisaire！\n\n364\n00:35:42,927 --> 00:35:45,406\n 烂草皮！\n\n365\n00:35:47,687 --> 00:35:49,606\n 现在还在圣诞节吗？\n\n366\n00:36:13,967 --> 00:36:16,967\n 我从没见过那个女人\n 之前，我确定。\n\n367\n00:36:17,487 --> 00:36:20,487\n 你还好吗 ？\n 你看起来很苍白，艾玛。\n\n368\n00:36:21,687 --> 00:36:23,886\n 会过去的。\n 我很好，谢谢。\n\n369\n00:36:23,887 --> 00:36:25,966\n 我们到了。\n 现在慢慢呼吸。\n\n370\n00:36:25,967 --> 00:36:27,606\n 非常感谢您的到来，\n 弗朗索瓦\n\n371\n00:36:27,607 --> 00:36:30,086\n 每当你需要我的时候。\n\n372\n00:36:30,087 --> 00:36:31,886\n 慢慢呼吸。\n\n373\n00:36:31,887 --> 00:36:33,526\n <布莱奇检查员..\n\n374\n00:36:33,527 --> 00:36:36,326\n ..拉加德博士。\n - 你好。\n\n375\n00:36:36,327 --> 00:36:38,126\n 医生。\n\n376\n00:36:38,127 --> 00:36:40,566\n 太不可思议了 ！\n\n377\n00:36:40,567 --> 00:36:43,567\n 石棺来自\n 18王朝！\n\n378\n00:36:44,207 --> 00:36:47,207\n 我买了它\n 50多年前！\n\n379\n00:36:48,047 --> 00:36:50,046\n 现在是碎片！\n\n380\n00:36:50,047 --> 00:36:54,047\n 都是因为一个愚蠢的生物\n 决定在里面被杀！\n\n381\n00:36:54,607 --> 00:36:56,046\n 令人震惊。\n\n382\n00:36:58,607 --> 00:37:01,086\n M. Charpentier，\n 回到城堡。\n\n383\n00:37:01,087 --> 00:37:03,766\n 给他威士忌，\n 我待会儿见。\n\n384\n00:37:08,047 --> 00:37:10,166\n 我很多老年患者\n\n385\n00:37:10,167 --> 00:37:13,167\n ..播放无效\n 压迫他们的亲戚。\n\n386\n00:37:14,007 --> 00:37:17,006\n 督察\n 谁发现了尸体？\n\n387\n00:37:17,007 --> 00:37:19,366\n 新员工。\n\n388\n00:37:19,367 --> 00:37:22,046\n 您去了“博物馆”。\n\n389\n00:37:22,047 --> 00:37:25,047\n ..然后将盖子从\n 石棺。\n\n390\n00:37:25,887 --> 00:37:27,006\n 是。\n\n391\n00:37:27,007 --> 00:37:30,007\n 是什么原因 ？\n -我在找尸体。\n\n392\n00:37:31,407 --> 00:37:34,407\n 身体 ？所以你知道那里\n 有一个吗？\n\n393\n00:37:35,687 --> 00:37:38,687\n 当然是。\n -再说吧。\n\n394\n00:37:40,967 --> 00:37:45,967\n 一切始于巴贝特姨妈\n 在她去狩猎蝴蝶之前...\n\n395\n00:38:10,807 --> 00:38:13,807\n 我不能告诉你。\n 石死了！\n\n396\n00:38:14,047 --> 00:38:17,047\n 那让我...\n\n397\n00:38:19,547 --> 00:38:24,000\n 您希望我将其吞下吗？\n -您可以检查。\n\n398\n00:38:24,247 --> 00:38:27,947\n 我姨妈向\n 安德列厄铁路当局。\n\n399\n00:38:28,967 --> 00:38:30,806\n 请问您的名字？\n\n400\n00:38:30,907 --> 00:38:33,807\n 嗯贝雷斯福德。\n 寡妇贝雷斯福德。\n\n401\n00:38:35,847 --> 00:38:38,847\n 也许您与\n 贝雷斯福德上校？\n\n402\n00:38:39,407 --> 00:38:42,407\n 这是一个通用名称。\n 这个地区有很多。\n\n403\n00:38:43,327 --> 00:38:46,327\n 对不起，我想得到\n 回去工作。\n\n404\n00:38:47,887 --> 00:38:50,887\n 对不起，我应该有\n 公认的女士贝雷斯福德。\n\n405\n00:38:51,607 --> 00:38:54,566\n 但是我看到她\n 在很短的时间内。\n\n406\n00:38:54,567 --> 00:38:56,366\n 她说她在那里\n 练习使用雪鞋！\n\n407\n00:38:56,367 --> 00:38:58,366\n 我给她雪鞋\n 就看你！\n\n408\n00:38:58,367 --> 00:39:01,367\n 你说什么\n - 没有。自言自语。\n\n409\n00:39:02,207 --> 00:39:06,707\n 她必须停止这场闹剧！\n -她可能对我们有帮助。\n\n410\n00:39:07,567 --> 00:39:12,567\n 如果你陪我，你会\n 必须使用其他名称。\n\n411\n00:39:13,087 --> 00:39:14,846\n 又为什么呢？\n\n412\n00:39:14,947 --> 00:39:16,447\n 为了保护她\n 那里发生了谋杀案。\n\n413\n00:39:16,807 --> 00:39:18,806\n 我忘了告诉你\n\n414\n00:39:19,207 --> 00:39:21,566\n 嗯审慎度过\n 自己当寡妇\n\n415\n00:39:22,887 --> 00:39:25,087\n 嗯审慎，寡妇？！\n\n416\n00:39:25,767 --> 00:39:29,367\n 哈哈哈！\n 看中她的那个想法！\n\n417\n00:39:30,047 --> 00:39:32,766\n 足够。\n 我建议我们在室内聊天。\n\n418\n00:39:33,267 --> 00:39:36,267\n 死亡发生在什么时候？\n -病理学家说2周前。\n\n419\n00:39:36,367 --> 00:39:39,367\n 但是，根据你阿姨的说法\n 她于11月28日被杀。\n\n420\n00:39:40,047 --> 00:39:44,447\n ..在Morgan-Bellefond\n 快速列车。\n\n421\n00:39:45,007 --> 00:39:48,807\n 然后将尸体拖到\n 并隐藏在石棺中。\n\n422\n00:39:49,007 --> 00:39:52,007\n 但是导致杀手的原因\n 打开石棺？\n\n423\n00:39:53,447 --> 00:39:55,486\n ``你只相信什么\n 你看。''\n\n424\n00:39:55,487 --> 00:39:58,006\n ``这就是为什么你是\n 经常误入歧途。''\n\n425\n00:39:58,007 --> 00:40:00,046\n ''动用你的想象力。''\n\n426\n00:40:00,047 --> 00:40:03,047\n 没有任何证据\n 夏邦人参与其中。\n\n427\n00:40:04,407 --> 00:40:08,407\n “除了我发现了尸体\n 在他们的财产上。''\n\n428\n00:40:11,927 --> 00:40:13,326\n <上校？\n\n429\n00:40:13,327 --> 00:40:16,327\n 上校上校\n -是的...正如我所说的...\n\n430\n00:40:18,487 --> 00:40:21,487\n 我在听你\n 您对它们了解多少？\n\n431\n00:40:22,047 --> 00:40:27,047\n 你会遇到他们的。他们是\n 全部在城堡...\n\n432\n00:40:35,067 --> 00:40:38,367\n 恋人吵架了\n 不好而且你在那里！\n\n433\n00:40:39,007 --> 00:40:41,446\n 我会跟\n 布拉瓦切督察。\n\n434\n00:40:42,047 --> 00:40:43,000\n -Blache，\n 先生\n\n435\n00:40:43,687 --> 00:40:46,687\n 我不会告诉布拉瓦什\n 我们见过这个女人。\n\n436\n00:40:47,087 --> 00:40:49,366\n 你们都会说相同的话。\n\n437\n00:40:49,367 --> 00:40:51,086\n 你确定吗，父亲？\n\n438\n00:40:51,087 --> 00:40:54,087\n 也许她是拉斐尔的一员\n 小朋友。\n\n439\n00:40:56,487 --> 00:40:59,487\n 那是个玩笑，那就是！\n\n440\n00:41:03,887 --> 00:41:06,887\n 那一定是拉加德博士。\n 让他进来。\n\n441\n00:41:09,607 --> 00:41:12,607\n 还在寻找\n 青春的源泉，父亲？\n\n442\n00:41:15,007 --> 00:41:17,246\n 不好笑，奥古斯丁。\n\n443\n00:41:17,247 --> 00:41:19,366\n 靠我，父亲。\n\n444\n00:41:19,367 --> 00:41:22,206\n 我会比所有人都持久。\n\n445\n00:41:22,207 --> 00:41:25,207\n ..只是为了保护我的财产\n 从掠夺性的掌握。\n\n446\n00:41:30,667 --> 00:41:31,926\n 警察..\n\n447\n00:41:31,927 --> 00:41:34,766\n ..将很快在这里\n 去问你\n\n448\n00:41:34,767 --> 00:41:37,767\n 你最好准备\n 你的辩解！\n\n449\n00:41:45,607 --> 00:41:48,607\n 你为什么打开\n 石棺？\n\n450\n00:41:49,527 --> 00:41:52,527\n 我看到了封面\n 最近被解除了。\n\n451\n00:41:52,607 --> 00:41:54,926\n 我被好奇心克服了。\n\n452\n00:41:54,927 --> 00:41:57,927\n 我一直\n 沮丧的考古学家。\n\n453\n00:41:58,767 --> 00:42:00,966\n 您还能告诉我们什么？\n\n454\n00:42:00,967 --> 00:42:04,967\n 我当时是怎么说...\n 通过气味克服。\n\n455\n00:42:05,327 --> 00:42:08,327\n 那令人恶心的死亡气味。\n\n456\n00:42:08,407 --> 00:42:11,407\n 就这样。我不希望\n 进入细节。\n\n457\n00:42:13,927 --> 00:42:17,927\n 是不是很恐怖？那\n 可怜的女人来这里死亡。\n\n458\n00:42:18,487 --> 00:42:21,086\n <算了。\n 我们不认识她。\n\n459\n00:42:21,087 --> 00:42:24,087\n 她是偶然来的。\n - 你怎么知道的 ？\n\n460\n00:42:24,687 --> 00:42:27,086\n 如果真的是偶然的话\n 为什么艾玛..\n\n461\n00:42:27,087 --> 00:42:29,766\n ..这么麻烦吗？\n -<你为什么感到惊讶..\n\n462\n00:42:29,767 --> 00:42:31,686\n ..谋杀应\n 麻烦她了吗？\n\n463\n00:42:31,687 --> 00:42:33,406\n 他像艺术家一样思考。\n\n464\n00:42:33,407 --> 00:42:36,407\n 你为什么总是刺人\n 好像它们是动物？\n\n465\n00:42:39,807 --> 00:42:41,206\n 足够了 ！\n\n466\n00:42:41,207 --> 00:42:42,846\n 现在不是时候\n 争吵！\n\n467\n00:42:42,847 --> 00:42:45,847\n <警方相信犯罪\n 于11月28日举行。\n\n468\n00:42:47,047 --> 00:42:50,047\n <他们怎么这么快学到的？\n -<不是19世纪。\n\n469\n00:42:51,927 --> 00:42:53,726\n <没什么可吹牛的。\n\n470\n00:42:53,727 --> 00:42:56,727\n <28日星期五。那是\n 那天爱玛邀请我们来这里。\n\n471\n00:42:57,367 --> 00:43:00,367\n <那又怎样呢？\n -<那天晚上，我们都在这里。\n\n472\n00:43:01,127 --> 00:43:03,766\n <然后？\n -<它将引起警察的注意。\n\n473\n00:43:03,767 --> 00:43:05,846\n <理论如何？\n 恋人的争吵？\n\n474\n00:43:05,847 --> 00:43:08,847\n <不是第一次帕帕博物馆\n 被用作聚会场所。\n\n475\n00:43:09,207 --> 00:43:12,207\n <恋人在爸爸的聚会\n 博物馆 ？！\n\n476\n00:43:12,527 --> 00:43:15,527\n 我在想象中有一个问题。\n\n477\n00:43:15,727 --> 00:43:18,727\n ..就像一个内部\n 冬季的冰川。\n\n478\n00:43:24,927 --> 00:43:26,726\n 你女儿很可爱。\n\n479\n00:43:26,727 --> 00:43:29,727\n 她和她的朋友是\n 对这种罪行感到兴奋。\n\n480\n00:43:29,847 --> 00:43:31,846\n 这是他们的年龄。\n\n481\n00:43:31,847 --> 00:43:34,847\n 爸爸，检查员在这里\n 与另一位先生。\n\n482\n00:43:36,927 --> 00:43:39,927\n 我们的新员工，女士。贝雷斯福德，\n 最近到了。\n\n483\n00:43:41,447 --> 00:43:44,086\n 我想寡妇贝雷斯福德？\n\n484\n00:43:48,407 --> 00:43:51,086\n 对不起，\n 我感冒了。\n\n485\n00:43:51,087 --> 00:43:53,966\n 我们需要您参加\n 警察局。\n\n486\n00:43:55,407 --> 00:44:02,407\n 我的一名官员将陪伴\n 你，如果你足够好。\n\n487\n00:44:02,527 --> 00:44:05,727\n 问我，我的名字是\n 上校雪鞋！\n\n488\n00:44:05,807 --> 00:44:07,886\n 好，我们首先要..\n\n489\n00:44:07,887 --> 00:44:09,486\n ..讯问你的兄弟。\n\n490\n00:44:09,487 --> 00:44:11,086\n 你在浪费时间\n 检查员\n\n491\n00:44:11,087 --> 00:44:14,087\n 如果那个女人曾经留下来\n 在这里，我还是我父亲\n\n492\n00:44:15,567 --> 00:44:17,006\n ..会认出她的。\n\n493\n00:44:17,007 --> 00:44:20,007\n <一切似乎都在暗示..\n\n494\n00:44:20,887 --> 00:44:23,887\n <..那个受害者不是\n 从这里来。\n\n495\n00:44:24,007 --> 00:44:27,007\n <她是一个陌生人。\n -俄罗斯人？\n\n496\n00:44:27,527 --> 00:44:30,527\n <女生，这不是\n 耳边的对话。\n\n497\n00:44:31,287 --> 00:44:34,287\n 嗯贝雷斯福德，进行\n 楼上的先生们。\n\n498\n00:44:35,727 --> 00:44:37,606\n 很好。\n\n499\n00:44:37,607 --> 00:44:39,686\n 我要去见父亲。\n\n500\n00:44:39,687 --> 00:44:42,687\n 先生们，\n 我会指出路的。\n\n501\n00:44:48,367 --> 00:44:50,726\n 所以，我死了，对吗？\n\n502\n00:44:53,807 --> 00:44:55,966\n 弗朗索瓦！\n\n503\n00:44:55,967 --> 00:45:02,467\n 你父亲身体状况很好。\n 谋杀使他兴奋了。\n\n504\n00:45:14,767 --> 00:45:17,767\n 是什么事，艾玛？\n\n505\n00:45:19,647 --> 00:45:21,286\n 怎么了 ？\n\n506\n00:45:21,287 --> 00:45:24,046\n 我认为有罪犯\n 在家庭中。\n\n507\n00:45:24,047 --> 00:45:26,846\n 为什么你这么想 ？\n\n508\n00:45:26,847 --> 00:45:29,126\n 因为Martina，..\n\n509\n00:45:29,127 --> 00:45:32,127\n ..我的兄弟埃德蒙的妻子，\n 谁该来这里的\n\n510\n00:45:32,807 --> 00:45:35,807\n 是的，有什么消息吗？\n -不，就是这样。\n\n511\n00:45:36,407 --> 00:45:39,407\n 警察认为\n 受害者来自东方。\n\n512\n00:45:40,007 --> 00:45:43,007\n 你以为死去的女人\n 可能是马丁娜？ -是的\n\n513\n00:45:43,407 --> 00:45:46,407\n 我很害怕告诉\n 警察对此。\n\n514\n00:45:49,327 --> 00:45:54,327\n 你和兄弟们说话了吗？\n 不，我无法判断他们的反应。\n\n515\n00:45:56,167 --> 00:45:58,326\n 艾玛\n 我认识你。\n\n516\n00:45:58,327 --> 00:46:02,000\n 如果你不说恐惧\n 你会让自己恶心。\n\n517\n00:46:02,007 --> 00:46:05,007\n 那我应该去警察局吗？\n -是的\n\n518\n00:46:06,687 --> 00:46:08,687\n 先生们，\n 这条路。\n\n519\n00:46:08,807 --> 00:46:10,206\n 我可以把你的外套给我吗？\n\n520\n00:46:10,207 --> 00:46:12,326\n 从来没有询问。\n\n521\n00:46:12,327 --> 00:46:14,846\n 谢谢夫人。\n -我留下。\n\n522\n00:46:14,850 --> 00:46:17,847\n 你将离开，\n 夫人。\n\n523\n00:46:17,900 --> 00:46:19,166\n 你臭！\n\n524\n00:46:19,167 --> 00:46:22,086\n 没有我，你什么都不是。\n\n525\n00:46:22,547 --> 00:46:25,047\n 没有 ！没事！\n\n526\n00:46:34,527 --> 00:46:38,527\n 片刻，让我想一想。\n 你什么时候到达 ？\n\n527\n00:46:39,887 --> 00:46:42,887\n 三周前\n 去见我父亲\n\n528\n00:46:44,747 --> 00:46:47,247\n 你住这里吗？\n -是的，我在巴黎呆了时间。\n\n529\n00:46:47,927 --> 00:46:50,927\n 我在这里住了两天\n 在十一月底。\n\n530\n00:46:53,327 --> 00:46:57,327\n <她被杀死的时候是什么？\n -<11月底。\n\n531\n00:47:00,687 --> 00:47:02,786\n 你结婚了 ？\n 你妻子..\n\n532\n00:47:02,787 --> 00:47:04,786\n ..不在这里吗？\n\n533\n00:47:05,687 --> 00:47:07,000\n 她讨厌法国的冬天。\n\n534\n00:47:07,027 --> 00:47:08,046\n <你经常来这里吗？\n\n535\n00:47:08,647 --> 00:47:10,466\n <不时\n 去见我姐姐\n\n536\n00:47:10,767 --> 00:47:14,567\n 上一次是什么时候？\n - 三个星期前。\n\n537\n00:47:14,627 --> 00:47:16,646\n 11月底？\n\n538\n00:47:16,847 --> 00:47:18,847\n 是的，11月底。\n\n539\n00:47:20,007 --> 00:47:22,507\n 你如何相处\n 你父亲\n\n540\n00:47:22,967 --> 00:47:26,267\n 他的孩子都没有上\n 和我爸。\n\n541\n00:47:26,867 --> 00:47:29,867\n 甚至Emma都有问题。\n 他真是个skin子。\n\n542\n00:47:29,947 --> 00:47:32,647\n 这是我祖父的错。\n\n543\n00:47:35,047 --> 00:47:36,726\n 为什么呢\n\n544\n00:47:37,327 --> 00:47:39,927\n 他讨厌爸爸，并把他的\n 报仇\n\n545\n00:47:40,367 --> 00:47:43,367\n 艾玛，我的兄弟和我分享\n 财产的所有权。\n\n546\n00:47:43,567 --> 00:47:46,286\n 他只保留权利\n 住这里\n\n547\n00:47:46,287 --> 00:47:50,287\n 他什么都不能卖，决定\n 任何事情，都会使他发疯！\n\n548\n00:47:52,067 --> 00:47:55,867\n 你经常来这里吗？\n -有时和我的女儿。\n\n549\n00:47:55,887 --> 00:47:59,887\n <你们为什么都聚集\n 11月底在这里？\n\n550\n00:48:00,127 --> 00:48:02,827\n 没有理由。这只是\n 一个家庭聚会。\n\n551\n00:48:04,007 --> 00:48:05,507\n 每个人都讨厌彼此的地方\n\n552\n00:48:06,867 --> 00:48:10,367\n 警察没有进入我家\n 问一家之主！\n\n553\n00:48:12,247 --> 00:48:13,606\n 谁是这里的负责人？\n\n554\n00:48:15,007 --> 00:48:16,000\n <回答我！\n\n555\n00:48:16,027 --> 00:48:18,286\n <回答我！\n\n556\n00:48:20,247 --> 00:48:22,447\n <您是，但我们想要\n 避免累你。\n\n557\n00:48:23,207 --> 00:48:24,926\n 拉加德博士\n\n558\n00:48:24,927 --> 00:48:26,206\n ..说过...\n -他如果我听他的话..\n\n559\n00:48:26,207 --> 00:48:28,126\n ..我永远也不会起床。\n\n560\n00:48:29,127 --> 00:48:34,127\n 他签的处方\n 给我消化了三个星期！\n\n561\n00:48:34,247 --> 00:48:36,406\n 他差点..\n\n562\n00:48:36,407 --> 00:48:37,966\n ..毒死了我！\n\n563\n00:48:37,967 --> 00:48:40,967\n 我必须承认那是什么时候\n 我们还有老厨师。\n\n564\n00:48:41,487 --> 00:48:44,487\n 这个新的，现在在这里，\n 她是珍珠！\n\n565\n00:48:44,967 --> 00:48:48,967\n 圆润的..像泡芙！\n\n566\n00:48:49,047 --> 00:48:52,047\n <像泡芙一样圆润？\n -嘘！\n\n567\n00:48:52,167 --> 00:48:55,867\n 你没注意到吗？\n -还没到那儿。\n\n568\n00:48:56,207 --> 00:48:57,206\n 好吧...\n\n569\n00:48:57,207 --> 00:48:59,406\n 你的假设是什么\n 关于这种情况？\n\n570\n00:48:59,407 --> 00:49:02,407\n 谈论还为时过早\n 关于假设，..\n\n571\n00:49:02,927 --> 00:49:05,927\n ..尤其是因为我们不\n 还不知道那个女人是谁\n\n572\n00:49:06,247 --> 00:49:09,247\n 看来是个陌生人。\n\n573\n00:49:10,887 --> 00:49:13,866\n 也许是我儿子的征服\n 奥古斯丁。\n\n574\n00:49:14,067 --> 00:49:15,526\n 他说他没有\n 认出她。\n\n575\n00:49:15,627 --> 00:49:18,126\n 那没什么。\n 这让他很紧张。\n\n576\n00:49:18,127 --> 00:49:21,127\n 我儿子都是胆小鬼\n 和骗子，..\n\n577\n00:49:21,927 --> 00:49:24,927\n ..一群秃are\n 等待我的死亡。\n\n578\n00:49:26,967 --> 00:49:29,967\n 我开始病得很重。\n 艾玛！\n\n579\n00:49:30,007 --> 00:49:32,006\n 我必须躺下。\n\n580\n00:49:36,967 --> 00:49:39,467\n 他没有太多的爱\n 为他的孩子们！\n\n581\n00:49:40,767 --> 00:49:44,367\n 他没有原谅他们\n 取消了他的继承权。\n\n582\n00:49:45,687 --> 00:49:48,687\n 上校\n\n583\n00:50:00,007 --> 00:50:01,607\n 那是什么 ？\n\n584\n00:50:26,087 --> 00:50:29,587\n Belisaire，\n 不要白痴！\n\n585\n00:50:29,687 --> 00:50:31,486\n 我什么都没看见！\n\n586\n00:50:32,887 --> 00:50:34,206\n 来吧，打开靴子！\n\n587\n00:50:34,407 --> 00:50:37,407\n 我死了。死人不能\n 为他的寡妇打开靴子。\n\n588\n00:50:38,007 --> 00:50:40,566\n 我说是出于刺激\n 此刻，我在开玩笑。\n\n589\n00:50:41,167 --> 00:50:43,567\n 你说的事实使\n 除了开玩笑。\n\n590\n00:50:43,927 --> 00:50:46,427\n 好吧，我说了。现在\n 打开靴子！ Belisaire！\n\n591\n00:50:48,227 --> 00:50:50,827\n 即将成为w夫\n Belisaire！\n\n592\n00:50:51,747 --> 00:50:55,247\n 来吧 ！\n 哦，这不可能发生！\n\n593\n00:50:56,007 --> 00:50:57,126\n Belisaire ...\n\n594\n00:50:57,127 --> 00:51:00,127\n 你被冒犯了，因为我曾经\n 对。就这么简单。\n\n595\n00:51:06,487 --> 00:51:09,487\n Belisaire，够了，\n 让我出去。\n\n596\n00:51:15,087 --> 00:51:16,766\n 让我出去 ！\n\n597\n00:51:18,807 --> 00:51:19,946\n 发生了什么 ？\n\n598\n00:51:20,247 --> 00:51:23,447\n 斑豹！\n\n599\n00:51:23,887 --> 00:51:24,866\n Belisaire？\n\n600\n00:51:26,367 --> 00:51:28,367\n 你找到了尸体\n 完成了你的任务\n\n\n601\n00:51:28,767 --> 00:51:30,766\n 现在，您可以回家了。\n\n602\n00:51:31,000 --> 00:51:32,726\n 为什么呢\n\n603\n00:51:32,727 --> 00:51:35,000\n 我厌倦了见我的妻子\n 伪装成厨房女仆！\n\n604\n00:51:35,167 --> 00:51:36,926\n 至于你的其他活动，\n 我握住我的舌头。\n\n605\n00:51:36,927 --> 00:51:39,927\n 总是为别人做饭，\n 但永远不会对我\n\n606\n00:51:40,000 --> 00:51:44,300\n 你忘了我的盐鸡。\n -那是十年前。\n\n607\n00:51:46,000 --> 00:51:49,500\n 而且，最重要的是，我必须\n 重复-圣诞节在这里。\n\n608\n00:51:50,000 --> 00:51:53,900\n 孩子们想听\n 钟声。\n\n609\n00:51:54,000 --> 00:51:55,900\n 来自瑞士这边\n 毫无疑问。\n\n610\n00:51:56,100 --> 00:51:58,700\n 我想看看\n 验尸照片。\n\n611\n00:52:00,600 --> 00:52:03,100\n 这是一个舞者。\n -赦免？\n\n612\n00:52:03,250 --> 00:52:05,750\n 受害人是一名舞者。\n 看她的脚。\n\n613\n00:52:06,100 --> 00:52:10,000\n 看看舞者是否认识到\n 她，但不是古典。\n\n614\n00:52:10,250 --> 00:52:12,500\n 为什么不古典？\n\n615\n00:52:12,750 --> 00:52:15,600\n 古典舞者的脚\n 会表现出更多的惩罚。\n\n616\n00:52:15,800 --> 00:52:19,300\n 令人印象深刻，福尔摩斯。\n -小学，亲爱的沃森。\n\n617\n00:52:21,000 --> 00:52:23,700\n 现在，毫无疑问\n 我被解雇了。\n\n618\n00:52:23,800 --> 00:52:26,700\n 也不远离幻想的人\n 谁聚集在你周围。\n\n619\n00:52:26,800 --> 00:52:29,500\n 喔！你吃醋 ？\n\n620\n00:52:31,500 --> 00:52:33,000\n 我认为那太好了！\n\n621\n00:52:35,000 --> 00:52:37,750\n 现在好了，\n 我亲爱的贝雷斯福德上校，...\n\n622\n00:52:37,800 --> 00:52:41,000\n ..虽然这很令人愉快，\n 我必须回到我的厨房。\n\n623\n00:52:44,000 --> 00:52:46,000\n 你忘记了一件事:\n\n624\n00:52:46,450 --> 00:52:50,000\n 找到了尸体\n 你处境艰难。\n\n625\n00:52:51,000 --> 00:52:54,250\n 你是我的第一嫌疑犯。\n 我必须关押你。\n\n626\n00:52:56,200 --> 00:52:58,750\n 我会通知您的雇主。\n\n627\n00:52:59,000 --> 00:53:00,750\n 拘留期间\n 晚上？\n\n628\n00:53:01,200 --> 00:53:03,700\n 是。但不在警察牢房中。\n\n629\n00:53:04,100 --> 00:53:08,100\n 你总是屈服于诱惑！\n\n630\n00:53:09,000 --> 00:53:11,500\n 尤其是在嫉妒驱使下。\n\n631\n00:53:56,200 --> 00:53:57,800\n 啊，你来了。\n\n632\n00:53:58,000 --> 00:54:01,400\n 您免于警察拘留吗？\n 它怎么样 ？\n\n633\n00:54:02,000 --> 00:54:06,200\n 很好但是我从来没有\n 以为我会被这样拘留。\n\n634\n00:54:08,000 --> 00:54:10,300\n 这是什么地方 ？\n -我的老作坊。\n\n635\n00:54:30,000 --> 00:54:32,500\n 一切还没有完成\n 在这里两年。\n\n636\n00:54:33,000 --> 00:54:35,000\n 你放弃了\n 只是一时兴起？\n\n637\n00:54:35,300 --> 00:54:38,500\n 不，我觉得有必要看\n 一些地中海的光芒。\n\n638\n00:54:44,000 --> 00:54:45,750\n 你会等我吗？\n\n639\n00:54:46,367 --> 00:54:49,367\n 这次是什么？\n\n640\n00:54:56,327 --> 00:54:59,327\n <我必须和你谈谈。\n -<你听到什么了吗？\n\n641\n00:54:59,807 --> 00:55:02,807\n <我认为受害者\n 可能是马丁娜。\n\n642\n00:55:03,927 --> 00:55:06,927\n 马丁娜（Martina）？\n -她的电报太奇怪了。\n\n643\n00:55:07,407 --> 00:55:09,966\n 她已经写完了\n 她来了。\n\n644\n00:55:10,067 --> 00:55:13,367\n 我应该告诉警察。\n -和他们无关。\n\n645\n00:55:15,287 --> 00:55:17,887\n <我很担心。\n 我不知道该怎么办。\n\n646\n00:55:18,007 --> 00:55:21,007\n 没话说没做什么。\n\n647\n00:55:30,367 --> 00:55:32,367\n 有人告诉我你很喜欢\n 为绘画女性。\n\n648\n00:55:32,927 --> 00:55:36,927\n 不，我不画女人\n 我获得它们。\n\n649\n00:55:38,367 --> 00:55:42,367\n 我画的是大海。\n 石头，光。\n\n650\n00:55:44,047 --> 00:55:45,747\n 但不是人。\n -不，不是人。\n\n651\n00:55:47,447 --> 00:55:49,847\n 他们太复杂了。\n -嗯...\n\n652\n00:55:51,687 --> 00:55:54,687\n 我不明白为什么\n 像你这样的女人在这里\n\n653\n00:55:55,447 --> 00:55:57,406\n 你想让我说什么 ？\n\n654\n00:55:57,407 --> 00:55:59,526\n 什么也没说。\n\n655\n00:55:59,527 --> 00:56:01,246\n 这么多的偏见，\n 对于一个艺术家！\n\n656\n00:56:01,247 --> 00:56:04,247\n 你喜欢铺床吗\n 在厨房工作？\n\n657\n00:56:05,087 --> 00:56:07,887\n 足够好。烹饪\n 需要想象力。\n\n658\n00:56:07,888 --> 00:56:11,287\n ..其余的都满足\n 我对订单的品味。\n\n659\n00:56:13,047 --> 00:56:16,047\n 我想画\n 你的肖像，有一天。\n\n660\n00:56:22,227 --> 00:56:26,706\n 她在这里 ！间谍！\n 抓住她 ！\n\n661\n00:56:26,767 --> 00:56:28,767\n 一个间谍！\n\n662\n00:56:28,807 --> 00:56:31,726\n 把她绑在杆子上！\n 肮脏的间谍！快点！\n\n663\n00:56:32,407 --> 00:56:35,407\n 间谍！\n\n664\n00:56:56,127 --> 00:56:58,127\n 瞄准心脏！\n\n665\n00:56:58,727 --> 00:57:01,526\n 死 ！死了，你这bit子！\n\n666\n00:57:02,567 --> 00:57:03,726\n 目标 ！\n\n667\n00:57:05,727 --> 00:57:07,446\n 火 ！\n\n668\n00:57:25,447 --> 00:57:27,447\n 谢谢你的到来。\n\n669\n00:57:31,807 --> 00:57:34,726\n 打扰一下，我很感动...\n\n670\n00:57:34,727 --> 00:57:38,727\n 因为我还没进来\n 自从埃德蒙德（Edmond）死后。\n\n671\n00:57:40,927 --> 00:57:44,927\n 他写信给我\n 就在他去世之前。\n\n672\n00:57:45,007 --> 00:57:48,407\n 他遇到了一个俄罗斯女人，\n 马蒂娜他们要结婚了。\n\n673\n00:57:49,807 --> 00:57:54,807\n 我才知道他的死\n 收到信后\n\n674\n00:57:54,887 --> 00:57:57,766\n 我不知道变成了什么\n 这个玛蒂娜酒。\n\n675\n00:57:57,767 --> 00:58:00,767\n 我只知道她的名字\n 我忘了她\n\n676\n00:58:02,527 --> 00:58:05,527\n 但是，几周前，我\n 收到里昂的来信。\n\n677\n00:58:06,847 --> 00:58:09,847\n ..签名马丁娜·夏彭蒂埃。\n\n678\n00:58:12,447 --> 00:58:15,847\n ''...我希望这封信能\n 不要让你难过\n\n679\n00:58:16,447 --> 00:58:19,447\n ``我什至不知道埃德蒙德\n 告诉你我们的婚姻。\n\n680\n00:58:20,287 --> 00:58:23,287\n ``他死后我找到了\n 写给你太难了。\n\n681\n00:58:23,927 --> 00:58:26,927\n ``我重建了生活，但是\n 我的情况已经改变。\n\n682\n00:58:27,807 --> 00:58:30,807\n ''我正在给你写信\n 因为我儿子\n\n683\n00:58:31,047 --> 00:58:36,347\n ``他是你兄弟的孩子。\n 我没有办法抚养他。\n\n684\n00:58:36,567 --> 00:58:39,406\n ``我花了几个星期\n 在法国。\n\n685\n00:58:39,407 --> 00:58:42,407\n ``我们可以见面吗？我不\n 想让你痛苦。''\n\n686\n00:58:44,047 --> 00:58:46,926\n 我非常爱埃德蒙。\n\n687\n00:58:46,927 --> 00:58:51,927\n 他是我最喜欢的兄弟。\n 然后，他有了儿子的想法...\n\n688\n00:58:52,287 --> 00:58:55,287\n 我邀请这个女人来我们\n 房子，到11月底。\n\n689\n00:58:55,727 --> 00:58:58,727\n 这样她可以见到家人吗？\n - 恩，那就对了。\n\n690\n00:58:59,167 --> 00:59:01,846\n 我只想要他们\n 去见她\n\n691\n00:59:01,847 --> 00:59:04,847\n 奥古斯丁没有\n 认真的\n\n692\n00:59:05,287 --> 00:59:07,286\n 拉斐尔非常怀疑。\n\n693\n00:59:07,287 --> 00:59:10,287\n 弗雷德里克（Frederick）是唯一的\n 和我一起去相信它。\n\n694\n00:59:10,527 --> 00:59:12,806\n 那怎么了？\n\n695\n00:59:15,007 --> 00:59:17,807\n 期待她的那天，\n 我收到电报。\n\n696\n00:59:18,007 --> 00:59:20,607\n ''抱歉。问题。\n 必须离开...''\n\n697\n00:59:20,767 --> 00:59:22,726\n 然后，仅此而已。\n\n698\n00:59:22,727 --> 00:59:25,727\n 所以，当你告诉我\n 这个女人..\n\n699\n00:59:25,967 --> 00:59:28,926\n 我以为是外国人\n\n700\n00:59:28,927 --> 00:59:31,126\n ..也许是她。\n\n701\n00:59:31,127 --> 00:59:33,046\n 从那时起，\n 使我着迷。\n\n702\n00:59:34,047 --> 00:59:35,946\n 关于陌生人，..\n\n703\n00:59:35,947 --> 00:59:38,647\n ..你怎么看的\n 嗯贝雷斯福德？\n\n704\n00:59:39,207 --> 00:59:40,886\n 审慎？\n\n705\n00:59:40,888 --> 00:59:43,887\n 我没有想她\n 你有吗\n\n706\n00:59:44,927 --> 00:59:49,927\n <她是一个有效率的女人\n 当然是高度聪明的\n\n707\n00:59:49,947 --> 00:59:51,446\n 和你的兄弟们？\n\n708\n00:59:51,448 --> 00:59:53,886\n 你爸爸\n\n709\n00:59:54,090 --> 00:59:58,087\n 他们全都一心一意。\n 她把所有的一切都迷住了。\n\n710\n00:59:58,207 --> 01:00:01,007\n 天哪，我会勒死她！\n - 对不起 ？\n\n711\n01:00:02,607 --> 01:00:04,607\n <哦，什么都没有。不要折磨\n 你自己我们会尽快..\n\n712\n01:00:04,608 --> 01:00:07,287\n ..解决这件事。\n 你跟我说话是对的。\n\n713\n01:00:16,527 --> 01:00:18,846\n 你会怎样做 ？\n\n714\n01:00:18,847 --> 01:00:20,606\n 检查行踪\n 三兄弟\n\n715\n01:00:20,707 --> 01:00:23,807\n ..并遍历整个\n 房子用细齿梳子。\n\n716\n01:00:25,087 --> 01:00:27,887\n 我有一个想法\n 她可能是一个舞蹈家...\n\n717\n01:00:28,007 --> 01:00:29,886\n 这是我的主意，Belisaire！\n\n718\n01:00:29,887 --> 01:00:33,287\n 公平地说，Prudence拥有\n 在舞者中问的想法。\n\n719\n01:00:33,387 --> 01:00:36,206\n ..找到解决方案。\n\n720\n01:00:36,307 --> 01:00:39,566\n 分发受害者的照片。\n\n721\n01:00:59,807 --> 01:01:04,807\n 跳吧！你在这里不对。\n 出来！\n\n722\n01:01:12,447 --> 01:01:15,446\n 姐姐玛格丽特·布朗！\n\n723\n01:01:17,007 --> 01:01:20,007\n 从情报\n 服务到这里！\n\n724\n01:01:28,087 --> 01:01:30,487\n 可以是任何人。\n\n725\n01:01:32,087 --> 01:01:35,887\n 您的一位舞者还没有\n 突然消失了吗？\n\n726\n01:01:38,247 --> 01:01:41,247\n 上校，这里的女孩来\n 随风而去\n\n727\n01:01:42,287 --> 01:01:47,287\n 他们之一离开了吗？\n 11月底左右？\n\n728\n01:01:47,587 --> 01:01:51,287\n 安娜·卡列宁（Anna Karenine）。\n -俄罗斯人？\n\n729\n01:01:51,527 --> 01:01:54,527\n 是的，也许是波兰人。\n 这是外国军团\n\n730\n01:01:57,407 --> 01:01:59,786\n 安娜·卡列宁（Anna Karenine）。她离开这里\n 在十一月底。\n\n731\n01:02:01,247 --> 01:02:04,247\n 她说她想成为\n 与丈夫和解。\n\n732\n01:02:04,447 --> 01:02:06,986\n 她去见他了\n 在该国的某个地方。\n\n733\n01:02:07,287 --> 01:02:10,287\n 她和你一起工作\n 多久 ？\n\n734\n01:02:11,247 --> 01:02:14,247\n 差不多六个星期了。\n 只是一个普通的女孩。\n\n735\n01:02:14,747 --> 01:02:17,206\n 她说她要继续\n 和英国人一起航行。\n\n736\n01:02:17,207 --> 01:02:19,926\n 在任何情况下，\n 这只是一个故事。\n\n737\n01:02:19,927 --> 01:02:22,886\n 我认为她是波兰人。\n\n738\n01:02:22,890 --> 01:02:24,887\n 和天主教徒:\n 她从未错过过弥撒。\n\n739\n01:02:24,888 --> 01:02:26,806\n 这就是重点。\n\n740\n01:02:26,807 --> 01:02:28,566\n 只有波兰人仍然相信。\n\n741\n01:02:28,567 --> 01:02:30,526\n 她仍然是个骗子。\n\n742\n01:02:30,527 --> 01:02:31,946\n 我不同意\n\n743\n01:02:38,687 --> 01:02:41,687\n 其他警察\n 天想问你。\n\n744\n01:02:41,767 --> 01:02:42,996\n 原谅？\n\n745\n01:02:43,527 --> 01:02:45,966\n 他们想问问你！\n\n746\n01:02:47,527 --> 01:02:48,666\n 请原谅我。\n\n747\n01:02:48,767 --> 01:02:50,867\n 你的橙汁是\n 在厨房。\n\n748\n01:02:53,007 --> 01:02:55,526\n 你从哪里得到的女士。贝雷斯福德？\n 来自代理商？\n\n749\n01:02:55,527 --> 01:02:58,527\n 号前女佣的朋友\n 告诉她..\n\n750\n01:02:58,807 --> 01:03:01,646\n ..我们有一个自由的地方。\n -<所以，你订婚了..\n\n751\n01:03:01,647 --> 01:03:03,926\n ..一个刚到的陌生人..\n\n752\n01:03:03,927 --> 01:03:06,646\n ..在挖尸之前！\n\n753\n01:03:06,647 --> 01:03:09,647\n 你为什么不停止采摘\n 在你姐姐身上？\n\n754\n01:03:10,527 --> 01:03:13,166\n <看这里，医生，\n 你的脸颊很好。\n\n755\n01:03:13,167 --> 01:03:16,167\n ..你是那个告诉\n 艾玛与警察交谈。\n\n756\n01:03:18,927 --> 01:03:22,127\n 别那么侮辱\n -现在警察在抓我们。\n\n757\n01:03:22,147 --> 01:03:25,047\n <他们认为我们有责任\n 因为马丁娜的失踪。\n\n758\n01:03:26,127 --> 01:03:27,806\n <如果她是死去的女人...\n\n759\n01:03:27,807 --> 01:03:29,526\n 我去看望你父亲。\n\n760\n01:03:29,527 --> 01:03:33,827\n 蛋糕很好吃。\n -女士贝雷斯福德烤了它。\n\n761\n01:03:34,207 --> 01:03:37,207\n 食谱数\n 我记得了！\n\n762\n01:03:37,767 --> 01:03:40,486\n 就像滑雪，\n 一个永远不会忘记的人。\n\n763\n01:03:40,487 --> 01:03:42,726\n 我怀疑这将有助于\n 推进调查。\n\n764\n01:03:43,327 --> 01:03:46,327\n 但是你忘记了\n 一件事\n\n765\n01:03:47,767 --> 01:03:50,766\n 哦，是吗？那是什么 ？\n - 我的生日。\n\n766\n01:03:50,767 --> 01:03:54,767\n 我不知道该怎么想\n 这是您第一次忘记。\n\n767\n01:03:54,847 --> 01:03:56,826\n 是22号吗？\n\n768\n01:03:56,827 --> 01:03:59,327\n 12月22日，\n Belisaire Beresford的出生。\n\n769\n01:03:59,927 --> 01:04:02,927\n 噢，天哪！\n\n770\n01:04:06,487 --> 01:04:09,487\n 你要陪我\n 到警察局警察局\n\n771\n01:04:09,667 --> 01:04:12,467\n 很好，先生。\n 我去买外套。\n\n772\n01:04:14,167 --> 01:04:18,167\n 有什么消息吗，雪鞋先生？\n -耐心，耐心。\n\n773\n01:04:19,227 --> 01:04:20,886\n 小家伙很迷人。\n -非常\n\n774\n01:04:20,887 --> 01:04:23,387\n 我要制造\n 给他们一些错误的线索。\n\n775\n01:04:24,087 --> 01:04:26,087\n 我不明白\n -我会留下纸条，像..\n\n776\n01:04:26,127 --> 01:04:29,127\n 马丁娜，如果你想生活，\n 远离城堡。''\n\n777\n01:04:31,927 --> 01:04:33,086\n 为什么要这么做 ？\n\n778\n01:04:33,187 --> 01:04:37,087\n 可怜的东西，他们鼬\n 周围，​​空手而归。\n\n779\n01:04:38,067 --> 01:04:38,846\n 一个线索会..\n\n780\n01:04:38,847 --> 01:04:40,766\n ..将他们置于危险之中。\n\n781\n01:04:41,567 --> 01:04:44,567\n 你确实认识一个杀人犯\n 也许在里面？\n\n782\n01:04:47,327 --> 01:04:51,327\n 先生，这是Huguette，\n 玛格丽特·布朗（Margaret Brown）的舞者之一。\n\n783\n01:04:51,647 --> 01:04:54,566\n 我已经收到了\n 安娜\n\n784\n01:04:54,567 --> 01:04:56,566\n 安娜·卡列宁（Anna Karenine）？\n -*来自圣巴特。\n\n785\n01:04:57,267 --> 01:04:58,766\n 她什么时候发布的？\n\n786\n01:04:58,867 --> 01:05:01,767\n 日期戳...等等...\n\n787\n01:05:01,927 --> 01:05:04,927\n 12月14日或17日，\n 这不是很清楚。\n\n788\n01:05:06,247 --> 01:05:09,547\n 12月17日？\n -*关于英国人，这是真的。\n\n789\n01:05:12,047 --> 01:05:14,446\n 退出Anna Karenine。\n\n790\n01:05:14,547 --> 01:05:17,047\n 一位舞者收到了一张卡片\n 来自西印度群岛的她。\n\n791\n01:05:18,327 --> 01:05:21,327\n 所以，我们回到\n 玛蒂娜（Martina Charpentier）。\n\n792\n01:05:21,687 --> 01:05:23,687\n 没有出现的寡妇。\n\n793\n01:05:24,047 --> 01:05:27,406\n 一切都指向\n 夏邦儿童\n\n794\n01:05:27,407 --> 01:05:30,186\n ..决定不分割他们的\n 遗产..\n\n795\n01:05:30,187 --> 01:05:32,726\n ..与新的继承人。\n\n796\n01:05:32,727 --> 01:05:36,727\n 让我们找出其中的一个\n 从犯罪中获利最多。\n\n797\n01:05:37,327 --> 01:05:40,327\n 只要老汉\n 生活，没有人会受益。\n\n798\n01:05:42,607 --> 01:05:45,346\n 我想知道拉加德博士\n 曾经怀疑..\n\n799\n01:05:45,547 --> 01:05:48,847\n ..有人试图\n 杀死老人？\n\n800\n01:05:49,887 --> 01:05:52,387\n 他的症状与\n 砷中毒。\n\n\n801\n01:05:52,807 --> 01:05:55,207\n 我们知道很多人\n 对...感兴趣\n\n802\n01:05:55,727 --> 01:05:57,686\n 我们该怎么说...\n\n803\n01:05:57,687 --> 01:05:59,846\n 加快他的灭亡。\n\n804\n01:06:00,847 --> 01:06:03,847\n 嗯...但是中毒者\n 他失败后..\n\n805\n01:06:04,047 --> 01:06:07,047\n ..将增加剂量。\n 但是他没有。\n\n806\n01:06:07,327 --> 01:06:10,327\n 是的，那没有道理。\n 很好奇！\n\n807\n01:06:10,527 --> 01:06:15,527\n 你去过他们的医生\n 多久 ？\n\n808\n01:06:16,567 --> 01:06:18,567\n Charpentier先生是我的第一个\n 我抵达后有耐心..\n\n809\n01:06:18,967 --> 01:06:20,846\n ..继我妻子去世之后。\n\n810\n01:06:34,127 --> 01:06:35,886\n 有什么事吗\n\n811\n01:06:36,287 --> 01:06:38,487\n 我是唯一一个没有\n 阿里比。那让我担心。\n\n812\n01:06:39,047 --> 01:06:42,047\n 拉斐尔有能力提供\n 详细的时间表。\n\n813\n01:06:43,487 --> 01:06:45,746\n 奥古斯丁当然是\n 和一个女孩。\n\n814\n01:06:46,447 --> 01:06:47,866\n 你为什么说“当然”？\n\n815\n01:06:48,167 --> 01:06:50,567\n 他是个女人\n 你没注意到吗？\n\n816\n01:06:51,107 --> 01:06:54,807\n 在他的气质之下\n 艺术家，他没有感情。\n\n817\n01:06:55,087 --> 01:06:59,087\n 除了艾玛，他不喜欢别人。\n -那天你在做什么？\n\n818\n01:07:00,367 --> 01:07:03,766\n 我日子的流逝\n 没兴趣\n\n819\n01:07:03,767 --> 01:07:05,846\n <有什么价值\n 还记得吗？\n\n820\n01:07:05,847 --> 01:07:08,526\n 在我看来你应该\n 试图记住。\n\n821\n01:07:09,527 --> 01:07:11,527\n 我不太喜欢回头。\n\n822\n01:07:20,207 --> 01:07:22,806\n 很高兴你在这里。\n\n823\n01:07:23,407 --> 01:07:26,107\n 你开朗，快乐。\n 你总是在唱歌。\n\n824\n01:07:26,807 --> 01:07:28,806\n 特别是当我做饭的时候。\n\n825\n01:07:29,307 --> 01:07:31,126\n 膳食就像植物。\n\n826\n01:07:31,427 --> 01:07:34,127\n 他们唱一首歌更好。\n\n827\n01:07:35,267 --> 01:07:38,267\n 对我来说，做饭比较\n 像爵士乐。\n\n828\n01:07:40,847 --> 01:07:44,847\n 牛肉串，你在那里\n 将生肉和熟肉混合在一起..\n\n829\n01:07:44,907 --> 01:07:48,646\n ..就像是张口\n 小号。\n\n830\n01:07:48,767 --> 01:07:51,086\n 沸腾的方式！\n\n831\n01:07:53,087 --> 01:07:55,787\n 至于牡蛎，\n the道者告诉我们，..\n\n832\n01:07:55,887 --> 01:07:59,487\n ..他们就像第一个\n 基督徒被狮子吃了..\n\n833\n01:08:01,807 --> 01:08:03,166\n ..只有一张遗嘱才行！\n\n834\n01:08:04,167 --> 01:08:07,166\n 你使厨房变得活跃起来。\n 你让我想起了我的妻子。\n\n835\n01:08:07,267 --> 01:08:10,667\n 她到处散布欢乐，\n 没被我父亲吓倒。\n\n836\n01:08:12,547 --> 01:08:14,547\n 其实她相处得很好\n 和他一起。\n\n837\n01:08:16,047 --> 01:08:17,766\n 但是不是吗？\n\n838\n01:08:17,767 --> 01:08:20,486\n 他沉迷于金钱。\n\n839\n01:08:20,487 --> 01:08:23,487\n 他坐在一堆金子上\n 不能碰它。\n\n840\n01:08:35,527 --> 01:08:37,527\n 神的名字！他们甚至跑\n 在你的脚之间。\n\n841\n01:08:40,927 --> 01:08:43,927\n 你喜欢打猎吗？\n -不，只有杀人。\n\n842\n01:08:45,327 --> 01:08:46,726\n 您一直在跑步。\n -是的...\n\n843\n01:08:46,727 --> 01:08:48,727\n 你的脸颊红了\n 我非常喜欢那个。\n\n844\n01:08:53,527 --> 01:08:56,527\n 什么 ？夫人更喜欢\n 年长的男人，也许？\n\n845\n01:08:57,407 --> 01:09:01,407\n 你弟弟是\n 不错。劳驾。\n\n846\n01:09:18,287 --> 01:09:20,887\n 雪靴上校，\n 我们找到了一个线索。\n\n847\n01:09:23,847 --> 01:09:26,847\n 这证明了玛蒂娜\n 来这里\n\n848\n01:09:26,927 --> 01:09:29,727\n 证明她是女人\n 在石棺中，不是吗？\n\n849\n01:09:30,347 --> 01:09:32,766\n 这是可能的。\n 您在哪里找到的？\n\n850\n01:09:33,767 --> 01:09:35,767\n 在洗衣房里。我们穿了\n 手套，用于指纹。\n\n851\n01:09:36,727 --> 01:09:37,886\n 你做得很好。\n\n852\n01:09:38,487 --> 01:09:39,946\n 记住要放松手指。\n\n853\n01:09:40,087 --> 01:09:44,087\n 您需要按一下\n 手指，但不会那么痛。\n\n854\n01:09:45,247 --> 01:09:47,006\n 先生雪靴...\n\n855\n01:09:50,087 --> 01:09:52,046\n 轻轻的。\n\n856\n01:09:58,047 --> 01:10:01,047\n 不碰\n 其他手指。\n\n857\n01:10:06,047 --> 01:10:09,547\n 我来看你姐姐\n 但首先我有一个问题。\n\n858\n01:10:09,787 --> 01:10:12,606\n ..问夫人。\n\n859\n01:10:12,608 --> 01:10:14,286\n 我在路上\n\n860\n01:10:14,287 --> 01:10:17,287\n 但是我们稍后再继续。\n 你有真正的潜力。\n\n861\n01:10:22,267 --> 01:10:24,767\n 看起来不要这么反对。\n\n862\n01:10:25,527 --> 01:10:28,927\n我有权学习吉他，即使是一个好男人。\n\n\n863\n01:10:3​​3,287 --> 01:10:3​​5,887\n伪造的杰作，\n 我给你戴顶帽子！\n\n\n864\n01:10:3​​6,447 --> 01:10:3​​9,447\n但是情况已经\n 如此复杂。\n\n\n865\n01:10:40,287 --> 01:10:42,287\n我没看过这个信封\n 你在哪里找到它 ？\n\n866\n01:10:44,207 --> 01:10:46,207\n 你没有写这个吗？\n - 但不是。\n\n867\n01:10:48,447 --> 01:10:50,286\n 我不明白\n\n868\n01:10:51,287 --> 01:10:52,766\n 你认得\n 这个信封？\n\n869\n01:10:52,767 --> 01:10:54,726\n 是。\n 这是我发的信。\n\n870\n01:10:55,727 --> 01:10:56,846\n 您已经找到Martina吗？\n\n871\n01:10:57,847 --> 01:10:59,847\n 在这里找到这个信封。\n\n872\n01:11:05,567 --> 01:11:08,567\n 你以为那个女人\n 石棺真的是..玛蒂娜？\n\n873\n01:11:10,887 --> 01:11:13,206\n 似乎有可能。\n\n874\n01:11:16,167 --> 01:11:18,867\n 好像你是\n 离开我们。\n\n875\n01:11:19,007 --> 01:11:20,907\n 你的讯问\n 完成了吗？\n\n876\n01:11:21,087 --> 01:11:23,966\n 是。暂时。\n\n877\n01:11:37,127 --> 01:11:39,486\n 他发现了一些东西，\n 那个。\n\n878\n01:11:39,487 --> 01:11:41,766\n 他在嗅什么\n 为？\n\n879\n01:11:42,367 --> 01:11:44,766\n 为什么向他介绍马丁娜（Martina）？\n\n880\n01:11:45,767 --> 01:11:47,406\n 是。洗脏的亚麻布\n 像那样。\n\n881\n01:11:47,407 --> 01:11:49,326\n 你应该感谢我\n 其实。\n\n882\n01:11:49,327 --> 01:11:50,566\n 又为什么呢？\n\n883\n01:11:50,567 --> 01:11:53,567\n 警察会找到它\n 如果没有人讲话，则很可疑。\n\n884\n01:11:53,607 --> 01:11:56,486\n ..现在死去的女人似乎\n 真的是马丁娜。\n\n885年\n01:11:57,187 --> 01:11:58,946\n 现在怎么办 ？\n\n886\n01:11:59,247 --> 01:12:01,247\n 安装陈旧。\n\n887\n01:12:40,127 --> 01:12:42,627\n 我永远都不会想\n 它的你。\n\n888\n01:12:45,087 --> 01:12:47,787\n 你想毁了我吗？\n\n889\n01:12:49,247 --> 01:12:52,247\n 让自己放心，夏彭捷先生，\n 它几乎不会花你什么。\n\n890\n01:12:53,007 --> 01:12:57,007\n 您称什么为“无”？\n 命名价格！命名吧！\n\n891\n01:13:02,247 --> 01:13:04,286\n 真的吗 ？！\n\n892\n01:13:05,947 --> 01:13:08,206\n 你不是在说\n 软肥皂给我？\n\n893\n01:13:09,207 --> 01:13:11,766\n 我发誓。在十字架上\n 木头，铁十字架。\n\n894\n01:13:13,367 --> 01:13:15,766\n 喔！你是怎么做到的 ？\n\n895\n01:13:15,767 --> 01:13:17,926\n 你是天使，珍珠！\n\n896\n01:13:17,940 --> 01:13:18,940\n 童话 ！\n -哦！\n\n897\n01:13:19,500 --> 01:13:20,000\n 喔！请 ！\n\n898\n01:13:21,000 --> 01:13:23,200\n 你闻到大蒜的香气！\n 真是个女人！\n\n899\n01:13:23,700 --> 01:13:27,500\n 好腰！什么臀部！\n 真胸！\n\n900\n01:13:35,000 --> 01:13:36,600\n 嗯贝雷斯福德，...\n\n901\n01:13:36,650 --> 01:13:38,900\n 今天晚上\n 你会和我们一起吃饭。\n\n902\n01:13:41,000 --> 01:13:42,300\n 它又消失了！\n\n903\n01:13:42,800 --> 01:13:45,500\n 你会坐在我旁边。\n\n904\n01:13:58,000 --> 01:14:00,500\n 你看起来或行为不像\n 国内，女士贝雷斯福德。\n\n905\n01:14:02,000 --> 01:14:04,500\n 你是谁 ？\n 你从哪里来的 ？\n\n906\n01:14:05,500 --> 01:14:07,600\n 你发现尸体\n 在您抵达时\n\n907\n01:14:07,680 --> 01:14:09,700\n 警察抱住了我们\n\n908\n01:14:10,000 --> 01:14:12,400\n <我一直在看\n 你亲密。\n\n909\n01:14:13,000 --> 01:14:14,400\n 我将继续这样做。\n\n910\n01:15:20,000 --> 01:15:21,500\n 但是你在那里做什么？\n\n911\n01:15:22,000 --> 01:15:23,800\n 我想给你一个惊喜\n 它出了错。\n\n912\n01:15:24,487 --> 01:15:25,726\n 给我一点光。\n\n913\n01:15:26,127 --> 01:15:28,127\n 是。稍等一会。\n\n914\n01:15:33,287 --> 01:15:35,287\n 我不想错过\n 我们的圣诞节传统。\n\n915\n01:15:35,727 --> 01:15:37,326\n 我伤害了你！\n\n916\n01:15:37,327 --> 01:15:39,186\n 香槟在哪里？\n 啊！\n\n917\n01:15:42,247 --> 01:15:44,447\n 贝雷斯福德上校！\n 嗯...\n\n918\n01:15:51,007 --> 01:15:53,606\n 有些事实不能统一起来。\n\n919\n01:15:54,407 --> 01:15:55,966\n 那是什么，Prudence？\n\n920\n01:15:56,167 --> 01:15:59,167\n 1，信封寄给\n 在这里找到了玛蒂娜。\n\n921\n01:16:00,187 --> 01:16:02,487\n 2，我们发现的玛蒂娜酒是\n 大约20岁。\n\n922\n01:16:03,767 --> 01:16:06,767\n 3，身体有\n 舞者的脚。\n\n923\n01:16:10,047 --> 01:16:12,647\n 我们的舞者在西方\n 印度人和她的英国人。\n\n924\n01:16:13,247 --> 01:16:15,847\n 我们得到了一个错误的线索，\n 然后我们就跑了！\n\n925\n01:16:18,167 --> 01:16:19,886\n <小姐谨慎！\n\n926\n01:16:20,487 --> 01:16:22,887\n 是的，我要来了，我要来了！\n\n927\n01:16:30,927 --> 01:16:32,006\n 圣诞快乐，亲爱的。\n\n928\n01:16:32,307 --> 01:16:34,307\n 给予小小的拥抱\n 给我的。\n\n929\n01:16:35,327 --> 01:16:38,327\n 你愿意帮我吗？\n\n930\n01:16:39,327 --> 01:16:41,727\n 谢谢。\n 我看起来怎么样 ？\n\n931\n01:16:42,407 --> 01:16:47,407\n 现在，您可以像\n 当你进来时偷偷地\n\n932\n01:17:01,267 --> 01:17:03,867\n 宝石非常适合您，\n 我亲爱的女士。贝雷斯福德。\n\n933\n01:17:05,927 --> 01:17:07,966\n 亲爱的女士贝雷斯福德。\n -哦，不再了！\n\n934\n01:17:14,687 --> 01:17:16,287\n 看起来像母亲的胸针。\n\n935\n01:17:16,467 --> 01:17:17,806\n 你说得对，实际上。\n\n936\n01:17:17,907 --> 01:17:19,786\n 它确实很像，是的。\n\n937年\n01:17:19,987 --> 01:17:20,926\n 我想知道 ！\n\n938\n01:17:21,527 --> 01:17:24,527\n 劳驾。\n\n939\n01:17:26,007 --> 01:17:29,007\n 劳驾。紧急情况\n 我必须离开你。\n\n940\n01:17:31,687 --> 01:17:33,366\n 真可惜，我会陪你的。\n - 谢谢。\n\n941\n01:17:34,367 --> 01:17:36,746\n 这很好，汤。\n\n942\n01:17:37,447 --> 01:17:40,447\n 啊，主菜！\n 围裙！...\n\n943\n01:17:43,407 --> 01:17:46,407\n 你的手提箱准备好了吗？\n 还没有睡衣。\n\n944\n01:17:47,247 --> 01:17:49,246\n 你妈妈几点钟\n 明天到这里吗？\n\n945\n01:17:50,000 --> 01:17:50,700\n 在十点整。\n\n946\n01:17:51,407 --> 01:17:53,407\n <我很高兴能去\n 在Sils Maria滑雪！\n\n947\n01:17:55,127 --> 01:17:56,646\n <哦，真是一团糟！\n\n948\n01:17:57,647 --> 01:17:59,326\n <我会想念你的，女士。罂粟花。\n\n949\n01:18:00,327 --> 01:18:02,506\n <你会去那儿吗\n 你的假期？\n\n950\n01:18:11,447 --> 01:18:14,447\n 瓦莱丽（Valerie）有什么问题？\n - 我不知道。\n\n951\n01:18:15,727 --> 01:18:18,406\n 您在哪里感到难过？\n -在我的肚子里。\n\n952\n01:18:19,407 --> 01:18:20,907\n 感觉不对。\n\n953\n01:18:23,367 --> 01:18:24,767\n 怎么了 ？\n\n954\n01:18:25,407 --> 01:18:27,046\n 去躺下\n\n955\n01:18:29,047 --> 01:18:30,166\n 这是什么 ？\n 我会得到帮助。\n\n956\n01:18:30,167 --> 01:18:31,126\n 我病了 ！\n\n957年\n01:18:31,127 --> 01:18:34,127\n 躺下，我会回来的。\n\n958\n01:18:40,287 --> 01:18:41,286\n 嗯Charpentier ..\n\n959\n01:18:41,288 --> 01:18:41,887\n ..小孩子生病了。\n\n960\n01:18:44,127 --> 01:18:45,727\n 你不舒服吗\n 没有。\n\n961\n01:18:47,807 --> 01:18:48,766\n 我...我会回来的\n\n962\n01:19:17,887 --> 01:19:21,887\n 他们都摆脱了麻烦。\n 我们必须确定发生了什么。\n\n963\n01:19:22,647 --> 01:19:24,647\n 您是唯一一个不受影响的人。\n 都吃了吗\n\n964\n01:19:24,687 --> 01:19:26,687\n 是的，除了Yule原木之外，\n 我从来不喜欢它。\n\n965\n01:19:26,727 --> 01:19:29,727\n 我没喝酒\n 任何香槟。\n\n966\n01:19:32,687 --> 01:19:34,406\n 还有什么吗？\n\n967\n01:19:34,407 --> 01:19:37,407\n 不，他们什么也没留下。\n 他们甚至吮吸骨头。\n\n968\n01:19:39,007 --> 01:19:42,007\n 除了蜜饯\n 和cap子的尸体，..\n\n969\n01:19:43,327 --> 01:19:46,327\n ..没有什么剩下。\n 我也洗碗了。\n\n970\n01:19:48,567 --> 01:19:52,567\n 天哪 ！\n 你认为这是砷吗？\n\n971\n01:19:53,967 --> 01:19:55,966\n 你怎么知道的 ？\n\n972\n01:19:55,967 --> 01:19:58,967\n 是的，很有机会\n 这是。\n\n973\n01:19:59,727 --> 01:20:03,727\n 杀手可能在其中\n 假装生病。\n\n974\n01:20:04,767 --> 01:20:08,767\n 你能告诉我区别吗\n 真正的病假之间？\n\n975\n01:20:09,887 --> 01:20:12,086\n 我不这样认为，不。\n\n976\n01:20:15,407 --> 01:20:18,407\n 我叫护士。她\n 应该在八点钟到这里。\n\n977\n01:20:19,447 --> 01:20:21,546\n 我会为\n 他们每个人。\n\n978\n01:20:21,547 --> 01:20:23,246\n 我会回来的\n 看看他们怎么样。\n\n979\n01:20:23,847 --> 01:20:25,446\n 我不在的时候\n 睁大你的眼睛。\n\n980\n01:20:26,447 --> 01:20:29,447\n 尤其是艾玛。\n  -是的，请指望我。\n\n981\n01:20:34,647 --> 01:20:36,647\n 我从来没有想过我必须\n 在圣诞节那天工作！\n\n982\n01:20:37,447 --> 01:20:39,566\n 是Mlle。艾玛\n 我很抱歉。\n\n983\n01:20:40,567 --> 01:20:42,867\n 我对夫人说贝雷斯福德那个\n 龙虾一文不值。\n\n984\n01:20:43,007 --> 01:20:46,007\n 但是她回答:“不，\n 龙虾很新鲜。''\n\n985\n01:20:47,367 --> 01:20:51,367\n 谁能说\n 污染物被扔到海里。\n\n986\n01:20:53,567 --> 01:20:55,567\n 在任何情况下，\n 我不会吃的\n\n987\n01:20:57,167 --> 01:20:59,167\n 他们全部\n 本来可以。\n\n988\n01:21:14,047 --> 01:21:16,047\n 我是女士瓦卢瓦\n 瓦莱丽的母亲。\n\n989\n01:21:17,087 --> 01:21:18,726\n 你来找她吗？\n\n990\n01:21:18,727 --> 01:21:21,727\n 我不会让你的女儿\n 再来这里。\n\n991\n01:21:21,747 --> 01:21:24,047\n 嗯瓦卢瓦，我带你\n 到瓦莱丽。\n\n992\n01:21:25,207 --> 01:21:28,007\n 这房子遭受了\n 一顿食物中毒..\n\n993\n01:21:28,187 --> 01:21:29,246\n ..但Valerie表现不错。\n\n994\n01:21:31,247 --> 01:21:34,247\n 她和阿历克斯都准备好了\n 离开。跟着我。\n\n995\n01:21:40,127 --> 01:21:41,406\n 啊！我的小女孩！\n\n996\n01:21:42,407 --> 01:21:43,846\n 你怎么了 ？\n\n997\n01:21:46,607 --> 01:21:49,607\n 我必须告诉你。阿列克谢的\n 爸爸有一个兄弟\n\n998\n01:21:50,567 --> 01:21:53,567\n ..谁死了，\n 和他的妻子\n\n999\n01:22:00,527 --> 01:22:02,927\n 让艾玛（Emma）送走护士，\n 她的指控会毁了我！\n\n1000\n01:22:03,087 --> 01:22:05,566\n 那意味着我会\n 照顾自己\n\n1001\n01:22:05,567 --> 01:22:08,406\n 我无处不在\n 与此同时。\n\n1002\n01:22:09,407 --> 01:22:11,046\n 艾玛为什么不能帮助您？\n\n1003\n01:22:12,047 --> 01:22:13,506\n 她被限制在床上。\n\n1004\n01:22:13,407 --> 01:22:15,126\n 还有其他？\n - 相同。\n\n1005\n01:22:15,127 --> 01:22:19,127\n 但是他们都做得很好。\n 他们正在休息。\n\n1006\n01:22:20,047 --> 01:22:22,047\n 那是什么 ？\n -一些肉汤和饼干。\n\n1007\n01:22:22,127 --> 01:22:26,127\n 把它拿开。我要肉。\n\n1008\n01:22:27,047 --> 01:22:29,006\n 医生禁止\n 此刻。\n\n1009\n01:22:29,007 --> 01:22:32,007\n 医生是个屁，我很好。\n 把肉给我！\n\n1010\n01:22:46,207 --> 01:22:47,646\n 我可以看看阿列克谢的父亲吗？\n\n1011\n01:22:48,647 --> 01:22:49,566\n 不幸，\n 他病了...\n\n1012\n01:22:49,567 --> 01:22:53,567\n 我女儿告诉我有关\n 石棺的女人。\n\n1013\n01:22:53,847 --> 01:22:55,846\n 我必须跟某人说话\n 在家庭中。\n\n1014\n01:22:56,847 --> 01:22:58,366\n 我会问Mlle。艾玛\n\n1015\n01:22:59,367 --> 01:23:01,367\n 告诉她那是关于\n 玛蒂娜（Martina Petrovna）。\n\n1016\n01:23:02,887 --> 01:23:04,166\n 马丁娜·彼得罗夫娜（Martina Petrovna）？\n\n1017\n01:23:04,167 --> 01:23:07,167\n 您听说过玛蒂娜吗？\n\n1018\n01:23:08,247 --> 01:23:11,247\n 她可能是女人\n 在石棺中发现。\n\n1019\n01:23:12,487 --> 01:23:15,487\n 那是不可能的。\n - 为何如此 ？\n\n1020\n01:23:16,487 --> 01:23:18,487\n 因为我是Martina Petrovna。\n\n1021\n01:23:27,727 --> 01:23:30,727\n 我在大马士革遇到了埃德蒙。\n\n1022\n01:23:34,127 --> 01:23:38,127\n 我们在一起有一段时间了\n 但是后来分裂了。\n\n1023\n01:23:50,047 --> 01:23:52,047\n 我被送到贝尔格莱德。\n\n1024\n01:23:53,167 --> 01:23:56,167\n 在那里我遇到了瓦莱丽的父亲，\n 谁被张贴在那里。\n\n1025\n01:23:58,207 --> 01:23:59,207\n 法国人，例如埃德蒙。\n\n1026\n01:24:04,767 --> 01:24:06,467\n 你懂...\n\n1027\n01:24:06,807 --> 01:24:09,007\n 我从来没有忘记你\n 兄弟，还有...\n\n1028\n01:24:12,007 --> 01:24:13,426\n 当我得知\n 在寄宿学校，..\n\n1029\n01:24:13,427 --> 01:24:15,927\n 我女儿已经成为\n 你侄女的朋友，..\n\n1030\n01:24:18,387 --> 01:24:21,687\n ..你不知道我有多少\n 被这个巧合感动了。\n\n1031\n01:24:23,247 --> 01:24:25,166\n 我什至想到写信给你。\n\n1032\n01:24:26,167 --> 01:24:29,167\n 然后，我对自己说:\n 激发过去有什么好处？\n\n1033\n01:24:31,287 --> 01:24:33,787\n 但是当我女儿告诉我\n 关于这里发现的尸体，..\n\n1034\n01:24:33,847 --> 01:24:38,847\n ..我想警告你。\n - 非常感谢。\n\n1035\n01:24:41,847 --> 01:24:43,126\n 她是如此迷人。\n\n1036\n01:24:43,127 --> 01:24:45,206\n 那是谁给我写的\n 用她的名字吗？\n\n1037\n01:24:46,207 --> 01:24:50,207\n 一些骗子，然后谁支持\n 远离他的欺骗。\n\n1038\n01:24:53,287 --> 01:24:54,826\n 它是什么，\n 嗯贝雷斯福德？\n\n1039\n01:24:54,827 --> 01:24:57,046\n 是..你的兄弟奥古斯丁。\n\n1040\n01:24:57,047 --> 01:24:59,747\n 那奥古斯丁呢？\n 我以为他的状况\n\n1041\n01:25:02,687 --> 01:25:04,446\n 我哥哥死了..\n\n1042\n01:25:04,447 --> 01:25:06,366\n ..我读对了吗？\n\n1043\n01:25:07,367 --> 01:25:09,767\n 我以为他更坚强。\n 显然我错了。\n\n1044\n01:25:09,768 --> 01:25:11,886\n 你似乎并不难过。\n\n1045\n01:25:11,887 --> 01:25:13,606\n 死者的眼泪\n 不，谢谢 ！\n\n1046\n01:25:13,607 --> 01:25:17,607\n 你太感伤了。\n 你可能会变得讨厌。\n\n1047\n01:25:23,087 --> 01:25:26,087\n 我听到什么？\n 奥古斯丁已经呼吸了他的最后一口？\n\n1048\n01:25:28,287 --> 01:25:30,126\n M. Charpentier，\n 请回到你的床上。\n\n1049\n01:25:30,127 --> 01:25:33,127\n 没必要，\n 我从来没有感觉好过。\n\n1050\n01:25:33,207 --> 01:25:36,207\n 那么，是真的吗？\n 他真的死了吗？\n\n1051\n01:25:38,727 --> 01:25:40,646\n 最厉害的那个\n 渴望继承。\n\n1052\n01:25:40,647 --> 01:25:42,846\n 对于艺术家来说，是如此的多！\n 一下来，二去！\n\n1053\n01:25:42,847 --> 01:25:44,886\n 你怎么能这么说呢 ？\n\n1054\n01:25:44,887 --> 01:25:47,887\n 你看\n 我将它们全部埋葬！\n\n1055\n01:25:48,487 --> 01:25:51,487\n 不幸永远不会孤单。\n\n1056\n01:25:51,727 --> 01:25:53,727\n 现在我可以说出来了\n 告诉你这些美女！\n\n1057\n01:25:54,727 --> 01:25:58,727\n 你想听吗？\n -不\n\n1058\n01:26:07,447 --> 01:26:09,447\n 这是什么 ？\n 你现在在抽烟吗？\n\n1059\n01:26:12,487 --> 01:26:15,487\n 这些人，比利时人，\n 他们就像狼。\n\n1060\n01:26:18,527 --> 01:26:20,527\n 不，不是狼，\n 狼。\n\n1061\n01:26:50,307 --> 01:26:52,686\n 很抱歉听到你的兄弟。\n - 好的。\n\n1062\n01:26:52,687 --> 01:26:54,866\n 夫人在家吗\n -她在等你。\n\n1063\n01:26:55,847 --> 01:26:58,046\n <上帝！\n 卡门培尔奶酪和一切？\n\n1064\n01:27:00,247 --> 01:27:03,247\n 拉斐尔\n 你看起来简直可怕！\n\n1065\n01:27:03,647 --> 01:27:06,606\n 你...真好\n 出去逗自己吗？\n\n1066\n01:27:06,607 --> 01:27:09,607\n 绝对每个人都在\n 现在的毛里求斯。天哪！\n\n1067\n01:27:09,707 --> 01:27:11,786\n 但是你已经花了\n 一个月。\n\n1068\n01:27:11,787 --> 01:27:13,766\n 当然不是吗？一个月？\n -是的\n\n1069\n01:27:13,767 --> 01:27:15,767\n 哦，正如您所说！\n 天哪！\n\n1070\n01:27:27,727 --> 01:27:29,727\n 钱很紧，\n 至少目前。\n\n1071\n01:27:35,127 --> 01:27:40,127\n 在纽约，我迷上了\n 这个疯狂的女人叫Hermeline。\n\n1072\n01:27:40,927 --> 01:27:43,227\n 她告诉整张桌子\n 他们发现了..\n\n1073\n01:27:43,237 --> 01:27:46,247\n ..女人的身体\n Vallée-aux-Loups，...\n\n1074\n01:27:46,257 --> 01:27:49,206\n 太尴尬了。\n\n1075\n01:27:49,707 --> 01:27:51,926\n 但这是真的。\n\n1076\n01:27:51,927 --> 01:27:54,927\n 真！\n 她是谁，这个女人？\n\n1077\n01:27:55,167 --> 01:27:57,146\n 来自东方的女人\n 显然。\n\n1078\n01:27:58,047 --> 01:27:59,046\n 来自东方的女人！\n\n1079\n01:27:59,147 --> 01:28:02,047\n 天哪！\n 我感觉不太好。\n\n1080\n01:28:02,347 --> 01:28:04,246\n 这不会让我离开床。\n\n1081\n01:28:05,647 --> 01:28:09,247\n 我也是。\n 我完全处于落后状态。\n\n1082\n01:28:17,807 --> 01:28:20,086\n 我差点忘了...\n\n1083\n01:28:20,087 --> 01:28:22,286\n 这个给你。\n\n1084\n01:28:22,287 --> 01:28:24,646\n 你带我回来\n 一个礼物 ？\n\n1085\n01:28:24,647 --> 01:28:27,647\n 不，今天下午到了\n 由Chronopost。\n\n1086\n01:28:31,847 --> 01:28:33,866\n ''继续治疗\n 三天。\n\n1087\n01:28:33,867 --> 01:28:35,846\n 晚上两片\n 睡前。''\n\n1088\n01:28:36,847 --> 01:28:40,547\n 拉加德叫我停下来。\n -您一定有误会。\n\n1089\n01:28:41,807 --> 01:28:43,807\n 在任何情况下，\n 它不会对您造成任何伤害。\n\n1090\n01:28:45,247 --> 01:28:47,247\n 你是对的，\n 它不会造成任何伤害。\n\n1091\n01:29:26,527 --> 01:29:29,527\n 拉斐尔，天哪，我在冻结！\n\n1092\n01:29:54,767 --> 01:29:57,286\n 我怀疑奥古斯丁，\n 他死了\n\n1093\n01:29:58,287 --> 01:30:00,287\n 我怀疑拉斐尔\n 他死了\n\n1094\n01:30:00,807 --> 01:30:03,407\n 我不敢说我​​怀疑\n 弗雷德里克，这可能会杀死他。\n\n1095\n01:30:05,407 --> 01:30:07,407\n 至于艾玛...\n\n1096\n01:30:08,927 --> 01:30:12,806\n 不，让我们回到\n 舞者的踪迹。\n\n1097\n01:30:12,807 --> 01:30:14,086\n 从这种情况开始\n\n1098\n01:30:14,087 --> 01:30:16,087\n ..我们专注于\n 玛蒂娜·夏蓬蒂尔\n\n1099\n01:30:17,407 --> 01:30:20,126\n ..因为假信件\n 我们被展示了..\n\n1100\n01:30:20,127 --> 01:30:22,766\n ..让我们承认\n 头低下头。\n\n1101\n01:30:27,527 --> 01:30:30,527\n 我们必须找到身份\n 这个安娜·卡列宁（Anna Karenine）。\n\n1102\n01:30:31,407 --> 01:30:33,407\n 我相信那会带领我们\n 给杀手\n\n1103\n01:30:34,567 --> 01:30:36,567\n 谋杀与\n 夏朋蒂家族\n\n1104\n01:30:36,568 --> 01:30:40,247\n ..但不妨碍\n 到目前为止，我们已经考虑过。\n\n1105\n01:30:40,767 --> 01:30:42,526\n 你不这样认为吗？\n\n1106\n01:30:43,527 --> 01:30:45,206\n 我什么都不懂\n 你说的\n\n1107\n01:30:46,207 --> 01:30:47,766\n 呃，好吧。我，我有一个计划。\n\n1108\n01:30:47,767 --> 01:30:50,767\n 是的，先生，我有一个计划。\n\n1109\n01:30:52,367 --> 01:30:53,706\n 但我不认为我会告诉\n 你是什​​么。\n\n1110\n01:30:57,567 --> 01:31:00,567\n 哦，那好吧。\n 它涉及巴贝特姨妈。\n\n1111\n01:31:02,087 --> 01:31:04,006\n 和巴贝特姨妈在一起？\n -是的，和她在一起。\n\n1112\n01:31:08,327 --> 01:31:10,606\n <这是极限！\n\n1113\n01:31:10,607 --> 01:31:14,607\n 首先，你不相信我，\n 让我生气\n\n1114\n01:31:14,687 --> 01:31:16,687\n 现在，你要我做\n 令人尴尬的事情。\n\n1115\n01:31:16,688 --> 01:31:20,047\n 我为什么要去喝茶\n 和陌生人在一起，和..\n\n1116\n01:31:20,067 --> 01:31:23,726\n ..然后假装感到不适？\n\n1117\n01:31:24,727 --> 01:31:25,706\n 我告诉你，我不喜欢它！\n\n1118\n01:31:25,707 --> 01:31:28,886\n 我讨厌这种玩笑。\n\n1119\n01:31:28,887 --> 01:31:30,566\n 这不是关于喜剧，\n 但是关于谋杀\n\n1120\n01:31:30,567 --> 01:31:35,527\n 谨慎只要求您\n 按照她的指示。\n\n1121\n01:31:37,367 --> 01:31:39,367\n 巴贝特姨妈！\n 不行\n\n1122\n01:31:41,967 --> 01:31:47,967\n 那好吧，如果我了解了\n 她的指示..\n\n1123\n01:31:47,977 --> 01:31:51,727\n ..我从事愉快\n 与这些太太的对话...\n\n1124\n01:32:00,647 --> 01:32:02,486\n 突然...\n\n1125\n01:32:02,487 --> 01:32:04,487\n 突然，\n 我有一个小问题。\n\n1126\n01:32:06,007 --> 01:32:09,007\n 我用一些借口，呃，\n 我会发明一些东西..\n\n1127\n01:32:09,087 --> 01:32:11,687\n ..为了离开房间。\n\n1128\n01:32:13,847 --> 01:32:16,847\n 然后 ？\n -你回到房间。\n\n1129\n01:32:18,007 --> 01:32:20,007\n 我什么时候回来？\n -在信号。\n\n1130\n01:32:20,447 --> 01:32:23,447\n 啊，会有信号吗？\n -嗯...\n\n1131\n01:32:26,347 --> 01:32:28,647\n 我可以给他们看\n 我的Zigoeunus？\n\n1132\n01:32:32,047 --> 01:32:34,546\n ''Zigoeunus Thomasus蛾，\n\n1133\n01:32:34,647 --> 01:32:38,447\n ''..North Sinnamary，法文\n 圭亚那，2007年12月28日''\n\n1134\n01:32:39,087 --> 01:32:41,687\n 是男的\n 美丽，不是吗？\n\n1135\n01:32:42,127 --> 01:32:44,727\n 这是亮点\n 我整个职业生涯\n\n1136\n01:32:45,327 --> 01:32:47,546\n 男性只活着\n 几个小时。\n\n1137\n01:32:47,647 --> 01:32:51,447\n 拥有后立即\n “满足”女性，..\n\n1138\n01:32:51,447 --> 01:32:52,826\n ..他死了。\n\n1139\n01:32:55,767 --> 01:32:58,767\n 这就是为什么他如此稀有\n 而且很难捕获。\n\n1140\n01:32:58,807 --> 01:33:02,807\n 但是有几个\n 技术:纠察线，..\n\n1141\n01:33:02,887 --> 01:33:04,886\n ..之字形追逐。\n\n1142\n01:33:04,888 --> 01:33:06,566\n 保持。\n\n1143\n01:33:07,067 --> 01:33:10,567\n 他们是反复无常的生物\n 对香水敏感:..\n\n1144\n01:33:10,847 --> 01:33:13,446\n ..广patch香，\n 金银花...\n\n1145\n01:33:13,447 --> 01:33:15,486\n 香奈儿5号...\n\n1146\n01:33:15,487 --> 01:33:18,487\n 最重要的是\n 渔获物是给猎人的。\n\n1147\n01:33:19,407 --> 01:33:22,407\n ..隐瞒他的影子。\n\n1148\n01:33:23,527 --> 01:33:25,606\n 但是我讲的太多了...\n\n1149\n01:33:25,607 --> 01:33:29,607\n 我没有告诉你什么\n 您拥有一个美好的家！\n\n1150\n01:33:30,707 --> 01:33:32,566\n 现在有事。\n\n1151\n01:33:33,567 --> 01:33:36,567\n 哦，真好吃！\n 在多士的红鱼。\n\n1152\n01:33:37,767 --> 01:33:39,726\n 改变饮食\n 在亚马逊！\n\n1153\n01:33:40,727 --> 01:33:42,246\n 您可能会这样说！\n\n1154\n01:33:42,247 --> 01:33:44,747\n 但是，这就是蚂蚁的头脑\n 还不错\n\n1155\n01:33:47,567 --> 01:33:50,567\n 他们愉快地破裂\n 在牙齿上。\n\n1156\n01:33:51,727 --> 01:33:53,086\n 而且非常经济。\n\n1157\n01:33:53,087 --> 01:33:54,246\n 你有食谱吗？\n\n1158\n01:33:54,247 --> 01:33:55,646\n 现在。\n\n1159\n01:33:56,647 --> 01:33:58,966\n 嗯！这个好吃。\n\n1160\n01:33:58,967 --> 01:34:01,067\n 您想要新鲜的空气吗？\n - 反之。\n\n1161\n01:34:01,167 --> 01:34:03,846\n 你看起来很苍白！\n\n1162\n01:34:03,847 --> 01:34:07,647\n 对不起。我必须原谅\n 我自己片刻。\n\n1163\n01:34:08,267 --> 01:34:10,886\n 它在哪里 ？\n\n1164\n01:34:10,887 --> 01:34:12,287\n 通过那里。\n\n1165\n01:34:23,207 --> 01:34:25,207\n 谢谢弗朗索瓦，\n 来。\n\n1166\n01:34:31,647 --> 01:34:33,686\n 你看起来好多了。\n 你回来了..\n\n1167\n01:34:33,687 --> 01:34:35,966\n ..您的一些颜色。\n\n1168\n01:34:42,847 --> 01:34:44,726\n 这是怎么了？\n\n1169\n01:34:46,727 --> 01:34:48,727\n 保持冷静。\n -阻塞我的喉咙！\n\n1170\n01:34:50,047 --> 01:34:53,047\n 让我看一看。\n 张开嘴。\n\n1171\n01:34:54,047 --> 01:34:56,726\n 你冷静一下。\n 转向我。\n\n1172\n01:34:56,727 --> 01:34:58,366\n 倾斜你的头。\n\n1173\n01:35:02,967 --> 01:35:04,166\n 是他 ！\n\n1174\n01:35:04,167 --> 01:35:06,766\n 火车上的男人！\n\n1175\n01:35:07,687 --> 01:35:09,286\n 不，不。\n 别说了。\n\n1176\n01:35:09,887 --> 01:35:10,886\n 你没想到\n\n1177\n01:35:10,887 --> 01:35:13,387\n 目击者看见你\n 勒死那个女人。\n\n1178\n01:35:14,447 --> 01:35:17,447\n 我的姑姑Babette Boutiti，\n 见到你。\n\n1179\n01:35:18,687 --> 01:35:20,446\n 她在火车上。\n\n1180\n01:35:20,447 --> 01:35:22,126\n ..那在你自己旁边跑。\n\n1181\n01:35:22,127 --> 01:35:24,686\n 突然，她看到了...\n\n1182\n01:35:35,207 --> 01:35:37,006\n 嗯贝雷斯福德，\n 我知道你去过\n\n1183\n01:35:37,007 --> 01:35:39,886\n ..最近工作过度，\n 但现在，..\n\n1184\n01:35:39,887 --> 01:35:41,926\n ..你一定要精神错乱。\n - 一点都不 ！\n\n1185\n01:35:42,927 --> 01:35:44,926\n 我为什么要angle死一个女人\n 我不知道吗？\n\n1186\n01:35:44,927 --> 01:35:47,406\n 不明？\n\n1187\n01:35:49,587 --> 01:35:51,587\n 相反，这个女人\n\n1188\n01:35:51,588 --> 01:35:53,946\n ..你非常了解。\n\n1189\n01:35:54,447 --> 01:35:56,926\n 她是你的妻子。\n\n1190\n01:36:11,287 --> 01:36:13,587\n 他想嫁给你\n 但是他已经结婚了\n\n1191\n01:36:15,167 --> 01:36:17,667\n ..致安娜·斯特拉文斯卡（Anna Stravinska）\n 作为安娜·卡列宁（Anna Karenine）。\n\n1192\n01:36:18,327 --> 01:36:21,327\n 一名舞者\n 谁拒绝了他离婚\n\n1193\n01:36:24,067 --> 01:36:26,086\n 我以为他是个ower夫。\n\n1194\n01:36:26,187 --> 01:36:28,766\n 我想\n 你是寡妇\n\n1195\n01:36:28,768 --> 01:36:31,767\n 不是寡妇，不是家政，\n 不是厨师\n\n1196\n01:36:31,769 --> 01:36:33,126\n 这是我最后的服务。\n\n1197\n01:36:34,127 --> 01:36:36,127\n 艾玛，你跟他谈过\n 埃德蒙？\n\n1198\n01:36:38,287 --> 01:36:40,246\n 那时是\n 他有个主意。\n\n1199\n01:36:41,247 --> 01:36:44,926\n 他给你写了一封信，\n 并签署了“马丁娜”\n\n1200\n01:36:44,927 --> 01:36:47,927\n ..杀死了他的妻子，并隐藏了\n 石棺中的身体..\n\n1201\n01:36:48,407 --> 01:36:51,246\n ..而且，由于那封信，\n 我们被误入歧途，..\n\n1202\n01:36:51,247 --> 01:36:55,247\n ..身体被识别\n 和马丁娜一样。\n\n1203\n01:37:08,127 --> 01:37:10,127\n <因此，一家人\n 与谋杀有牵连，..\n\n1204\n01:37:10,167 --> 01:37:14,167\n ..他准备\n 他的下一步。\n\n1205\n01:37:18,647 --> 01:37:20,947\n <他计划杀死你所有的人\n 兄弟，并入罪。\n\n1206\n01:37:20,948 --> 01:37:23,826\n ..剩下的那个人...\n\n1207\n01:37:23,827 --> 01:37:25,826\n ..你的父亲。\n\n1208\n01:37:25,927 --> 01:37:28,877\n 这样你会很富有\n 等他嫁给你的时候\n\n1209\n01:37:28,887 --> 01:37:31,887\n 如果是我死了\n 圣诞之夜，他的计划。\n\n1210\n01:37:31,886 --> 01:37:34,127\n ..会崩溃了。\n 但是我太坚强了。\n\n1211\n01:37:34,247 --> 01:37:36,286\n 他给了你一点剂量\n 砷。\n\n1212\n01:37:36,287 --> 01:37:40,266\n 足以给你\n 胃痛。\n\n1213\n01:37:40,967 --> 01:37:43,806\n <第二天，护士，\n 不知道，..\n\n1214\n01:37:43,807 --> 01:37:46,807\n ..让奥古斯丁致命\n 剂量由医生准备。\n\n1215\n01:37:48,808 --> 01:37:51,407\n 那就只需要\n 寄给拉斐尔剂量\n\n1216\n01:37:52,527 --> 01:37:53,806\n 真是个混蛋！\n -<您应该感谢他！\n\n1217\n01:37:53,807 --> 01:37:55,086\n 你欠他感激之情。\n\n1218\n01:37:55,087 --> 01:37:59,086\n 他带给我的只是麻烦。\n\n1219\n01:37:59,087 --> 01:38:01,246\n 一块石棺...\n\n1220\n01:38:01,247 --> 01:38:02,966\n 还有其余的！\n\n1221\n01:38:02,967 --> 01:38:05,967\n 你，你的财富有\n 坦白说加倍！\n\n1222\n01:38:14,367 --> 01:38:17,367\n 他们爱他们的钱，\n 这个家庭。\n\n1223\n01:38:33,207 --> 01:38:35,526\n 我避免过圣诞节\n 跟家人在一起 ！\n\n1224\n01:38:43,647 --> 01:38:45,726\n 他们还在他们这里。\n\n1225\n01:38:46,727 --> 01:38:48,846\n 他们说他们要走了！\n\n1226\n01:38:48,847 --> 01:38:50,847\n 也许他们决定留下来\n 新年\n\n1227\n01:38:57,327 --> 01:39:00,206\n 现在有十个吗？\n\n1228\n01:39:00,207 --> 01:39:02,226\n 不，只有两个。\n\n1229\n01:39:07,287 --> 01:39:09,287\n 还有两个可以进入这一行？\n\n1230\n01:39:09,407 --> 01:39:12,407\n 巴贝特姨妈不知道\n 她有多幸运。\n\n1231\n01:39:13,607 --> 01:39:15,607\n 只是蝴蝶\n 住在帐篷里\n\n1232\n01:39:15,617 --> 01:39:17,626\n 在野外露营！\n\n1233\n01:39:45,007 --> 01:39:47,007\n 我干了！\n\n1234\n01:40:36,167 --> 01:40:38,167\n Belisaire，醒。\n\n1235\n01:40:39,647 --> 01:40:41,886\n 张开你的眼睛。\n\n1236\n01:40:42,887 --> 01:40:44,887\n 告诉我你所看到的。\n\n1237\n01:40:46,607 --> 01:40:50,207\n 数百万\n 星。\n\n1238\n01:40:51,007 --> 01:40:53,007\n 您如何看待它们？\n\n1239\n01:40:54,087 --> 01:40:56,087\n 那有几百万\n 星系..\n\n1240\n01:40:56,687 --> 01:40:59,406\n 以及数十亿个行星。\n\n1241\n01:41:02,407 --> 01:41:05,407\n 土星是狮子座的一部分。\n\n1242\n01:41:08,367 --> 01:41:11,367\n 时间到了\n 大约..\n\n1243\n01:41:11,647 --> 01:41:13,286\n ..三点一刻。\n\n1244\n01:41:15,287 --> 01:41:18,287\n 那应该是美好的一天\n 明天。\n\n1245\n01:41:21,887 --> 01:41:26,885\n 我看到上帝是\n 无所不能..\n\n1246\n01:41:26,887 --> 01:41:29,887\n ..而我们很小\n 在宇宙中微不足道。\n\n1247\n01:41:32,567 --> 01:41:34,567\n 还有你，Prudence，\n 你看到了什么 ？\n\n1248\n01:41:36,047 --> 01:41:39,747\n 我可怜的Belisaire，我明白了\n 你是一个适当的机智者！\n\n1249\n01:41:40,087 --> 01:41:42,087\n 我，\n 我看到我们终于有空了。\n\n1250\n01:44:05,807 --> 01:44:10,093\n 英文字幕 :\n 大卫·布雷克（2015）\n\n1251\n01:44:10,094 --> 01:44:10,095\n"
  },
  {
    "path": "2020/5-4-movie-调查犯罪是我们的职业/Crime est notre affaire.subs.eng.srt",
    "content": "1\n00:02:03,807 --> 00:02:07,807\n To summarise: Prudence and Belisaire\n Beresford are married,..\n\n2\n00:02:09,327 --> 00:02:11,886\n ..they have one daughter,..\n\n3\n00:02:11,887 --> 00:02:14,887\n ..two adorable grandchildren,..\n\n4\n00:02:15,127 --> 00:02:18,127\n ..and they will live happily\n ever after.\n\n5\n00:02:18,367 --> 00:02:21,367\n Things have not turned out\n the way I expected !\n\n6\n00:02:22,407 --> 00:02:25,407\n Very profound, but hardly new.\n\n7\n00:02:29,327 --> 00:02:32,327\n I am bored.\n I am so very bored.\n\n8\n00:02:33,527 --> 00:02:36,527\n I am in a deep, dark vault.\n\n9\n00:02:36,647 --> 00:02:39,647\n You have buried me alive.\n\n10\n00:02:39,687 --> 00:02:42,086\n When they open my coffin,..\n\n11\n00:02:42,087 --> 00:02:45,087\n ..they will see the scratches\n on the lid..\n\n12\n00:02:45,367 --> 00:02:48,246\n where I wore my fingers down\n to stumps..\n\n13\n00:02:48,247 --> 00:02:50,766\n ..fighting to get out.\n - What's the matter with you ?\n\n14\n00:02:50,767 --> 00:02:53,767\n Oh, nothing !\n Nothing happens, that's all.\n\n15\n00:02:54,647 --> 00:02:57,647\n I can't take any more of\n this humdrum existence.\n\n16\n00:02:57,687 --> 00:03:00,687\n And I suppose you are\n fully content ?\n\n17\n00:03:00,927 --> 00:03:02,766\n Colonel Beresford,..\n\n18\n00:03:02,767 --> 00:03:05,767\n ..former head of\n the Secret Service,..\n\n19\n00:03:05,847 --> 00:03:08,847\n ..man of mystery,\n of missions impossible...\n\n20\n00:03:09,367 --> 00:03:12,006\n Don't you ache anymore\n for excitement ?\n\n21\n00:03:12,007 --> 00:03:14,886\n For romantic adventure ?\n\n22\n00:03:14,887 --> 00:03:16,726\n Imagine the thrill..\n\n23\n00:03:16,727 --> 00:03:20,727\n ..of hearing a knock at the door,\n to go to open it..\n\n24\n00:03:20,730 --> 00:03:23,287\n ..and see a dead man stagger in !\n\n25\n00:03:24,607 --> 00:03:26,726\n If he was dead, he wouldn't\n be staggering.\n\n26\n00:03:26,727 --> 00:03:29,727\n But yes, they always stagger\n before they die.\n\n27\n00:03:30,447 --> 00:03:33,447\n Then they fall - uttering\n enigmatic words, like :..\n\n28\n00:03:34,367 --> 00:03:37,367\n ..''The Spotted Leopard...\n Argh... !''\n\n29\n00:03:38,567 --> 00:03:40,966\n I don't think I like dead men\n who stagger about.\n\n30\n00:03:40,967 --> 00:03:43,967\n Oh, that'll be Meals on Wheels !\n\n31\n00:04:02,000 --> 00:04:04,000\nWhat are you doing ?\n\n32\n00:04:04,500 --> 00:04:06,500\nCan you smell something ?\n\n33\n00:04:06,750 --> 00:04:09,000\n< No, nothing.\n\n34\n00:04:09,500 --> 00:04:11,500\nCan't you smell that odour ?\n\n35\n00:04:11,600 --> 00:04:13,500\n< An odour - of what ?\n- Of... I'm not sure...\n\n36\n00:04:13,750 --> 00:04:16,500\nOf old age.\n\n37\n00:04:16,750 --> 00:04:19,500\n< Old age ?\n- Yes, exactly that. Old age.\n\n38\n00:04:20,047 --> 00:04:23,600\n Thank you very much.\n -< No - no...\n\n39\n00:04:23,727 --> 00:04:26,000\n It isn't you, it's me.\n\n40\n00:04:26,087 --> 00:04:30,087\n For some time, I've felt old age\n creeping up on me.\n\n41\n00:04:31,527 --> 00:04:33,006\n Me, I feel nothing.\n\n42\n00:04:33,007 --> 00:04:36,007\n You feel nothing. One feels nothing.\n -< When you've quite finished..\n\n43\n00:04:36,327 --> 00:04:40,327\n ..conjugating the verb \"to feel\"...\n -< But we're not old !\n\n44\n00:04:42,607 --> 00:04:45,326\n Not old ?  Aren't we pensioners ?\n\n45\n00:05:03,007 --> 00:05:06,007\n When you retired, it ruined\n my life.\n\n46\n00:05:06,327 --> 00:05:10,727\n It was you who wanted a vacation.\n - To take holidays - precisely.\n\n47\n00:05:11,207 --> 00:05:14,207\n Anyway,\n don't take any notice of me.\n\n48\n00:05:14,687 --> 00:05:16,606\n How are things, George ?\n\n49\n00:05:16,607 --> 00:05:19,607\n I'm burning the dead leaves.\n Anything else?\n\n50\n00:05:19,687 --> 00:05:21,446\n That's fine.\n\n51\n00:05:21,447 --> 00:05:24,947\n I don't believe I've seen\n you like this before.\n\n52\n00:05:25,247 --> 00:05:28,247\n It's been churning around\n in my mind for a long time.\n\n53\n00:05:28,367 --> 00:05:31,367\n Why not buy a new hat ?\n - I already have lots !\n\n54\n00:05:31,767 --> 00:05:34,206\n So what if you have 40,..\n\n55\n00:05:34,207 --> 00:05:35,966\n ..another might do the trick.\n Let's go.\n\n56\n00:05:35,967 --> 00:05:38,967\n I have 44; and the hats all\n resemble each other.\n\n57\n00:05:39,847 --> 00:05:42,847\n Even though there are subtle\n differences between them.\n\n58\n00:05:43,527 --> 00:05:46,527\n I would love something\n exciting to happen to us.\n\n59\n00:05:47,647 --> 00:05:50,126\n It would us both good.\n\n60\n00:05:50,127 --> 00:05:52,966\n If only a fairy-godmother\n would appear...\n\n61\n00:07:01,967 --> 00:07:04,526\n Conductor...\n\n62\n00:07:06,967 --> 00:07:08,166\n What is wrong ?\n\n63\n00:07:08,167 --> 00:07:11,167\n A woman was being strangled\n in the train that overtook us.\n\n64\n00:07:13,007 --> 00:07:14,446\n I saw it all.\n\n65\n00:07:14,447 --> 00:07:17,366\n Tell me calmly exactly\n what you saw.\n\n66\n00:07:17,367 --> 00:07:20,086\n I was asleep...\n\n67\n00:07:20,087 --> 00:07:22,406\n The other train overtook us...\n\n68\n00:07:22,407 --> 00:07:25,407\n And I saw the back of a man\n - strangling a woman.\n\n69\n00:07:26,487 --> 00:07:29,487\n Strangling a woman ?\n - Yes.\n\n70\n00:07:30,087 --> 00:07:33,087\n Like in the book\n you are reading ?\n\n71\n00:07:33,247 --> 00:07:35,326\n Exactly the same !\n\n72\n00:07:35,327 --> 00:07:38,126\n Well, then...\n\n73\n00:07:38,127 --> 00:07:42,027\n Rudi, did you see anything\n strange on the 4:50 express ?\n\n74\n00:07:42,247 --> 00:07:43,446\n No, why ?\n\n75\n00:07:43,447 --> 00:07:45,126\n Nothing, forget it.\n\n76\n00:07:45,127 --> 00:07:48,127\n I would like to know what\n you intend to do.\n\n77\n00:07:48,247 --> 00:07:51,246\n I am not a policeman.\n But, if it will reassure you,..\n\n78\n00:07:51,247 --> 00:07:54,206\n ..I will make out\n an incident report.\n\n79\n00:07:54,207 --> 00:07:56,086\n An incident ?\n\n80\n00:07:56,087 --> 00:07:59,087\n It was a crime !\n\n81\n00:08:17,207 --> 00:08:19,486\n Aunt Babette !\n\n82\n00:08:19,487 --> 00:08:23,487\n Prudence,\n I have been witness to a crime !\n\n83\n00:08:24,367 --> 00:08:27,367\n A crime ?\n - Yes, a crime !\n\n84\n00:08:30,727 --> 00:08:32,526\n No, no, not a thing !\n\n85\n00:08:32,527 --> 00:08:34,086\n No mention of a corpse.\n\n86\n00:08:34,087 --> 00:08:37,086\n You don't believe I invented it ?\n - Of course not !\n\n87\n00:08:37,087 --> 00:08:38,446\n You make me feel better.\n\n88\n00:08:38,447 --> 00:08:40,886\n That conductor,\n he didn't believe me.\n\n89\n00:08:40,887 --> 00:08:43,686\n But I gave him a clear\n statement of what I saw.\n\n90\n00:08:43,687 --> 00:08:46,526\n An ordinary attacker\n would have fled..\n\n91\n00:08:46,527 --> 00:08:48,606\n ..and left the body.\n\n92\n00:08:48,607 --> 00:08:51,607\n So, it was premeditated,\n or a crime of passion...\n\n93\n00:08:52,487 --> 00:08:55,487\n Jealousy, anger - and the man\n strangles...\n\n94\n00:08:56,927 --> 00:08:59,927\n But I don't see\n what he did with the body.\n\n95\n00:09:00,327 --> 00:09:03,327\n Ah ! He threw it from the window.\n\n96\n00:09:06,367 --> 00:09:09,367\n He hid it in a suitcase.\n\n97\n00:09:09,447 --> 00:09:12,447\n What sort of killer walks around\n with a body in a suitcase ?\n\n98\n00:09:13,967 --> 00:09:16,046\n It would be noticed.\n\n99\n00:09:16,047 --> 00:09:17,886\n One more, for the road ?\n\n100\n00:09:17,887 --> 00:09:20,887\n As far as I'm concerned,\n he threw it from the window.\n\n101\n00:09:21,527 --> 00:09:24,527\n < Or the corpse staggered off !\n\n102\n00:09:26,647 --> 00:09:28,886\n Your assassin was burly ?\n -< Yes.\n\n103\n00:09:28,887 --> 00:09:31,486\n < At least it seemed so to me.\n\n104\n00:09:31,487 --> 00:09:34,487\n < Big enough, mainly brown.\n\n105\n00:09:34,687 --> 00:09:36,606\n I only saw his back.\n\n106\n00:09:38,247 --> 00:09:40,366\n And the unfortunate victim, so.\n Argh !\n\n107\n00:09:42,127 --> 00:09:44,286\n She wore red gloves !\n\n108\n00:09:44,287 --> 00:09:47,246\n < It... was horrible.\n -< You must have..\n\n109\n00:09:47,247 --> 00:09:50,247\n ..dreamt it, or witnessed\n a domestic dispute..\n\n110\n00:09:50,327 --> 00:09:53,327\n ..less tragic than you imagined.\n\n111\n00:09:53,687 --> 00:09:57,687\n Less tragic ?! It was a crime !\n I saw it with my own eyes.\n\n112\n00:09:58,327 --> 00:10:00,926\n < I am disappointed !\n Your Belisaire is..\n\n113\n00:10:00,927 --> 00:10:03,927\n ..like the rest of them.\n He doesn't believe me.\n\n114\n00:10:04,887 --> 00:10:07,887\n And this happened somewhere\n beyond Andelieux ?\n\n115\n00:10:08,287 --> 00:10:09,446\n Yes.\n\n116\n00:10:09,447 --> 00:10:12,947\n I remember the place.\n There was a curve..\n\n117\n00:10:13,087 --> 00:10:14,806\n ..that rocked me in my seat.\n\n118\n00:10:14,807 --> 00:10:17,807\n And our train went through\n the station at Andelieux..\n\n119\n00:10:18,207 --> 00:10:21,207\n ..ten minutes later.\n There you are, Belisaire !\n\n120\n00:10:21,527 --> 00:10:24,527\n < I shall need absolute\n peace of mind..\n\n121\n00:10:24,607 --> 00:10:26,046\n ..during my trip abroad.\n\n122\n00:10:26,047 --> 00:10:29,047\n < Where are you going to hunt,\n this time ?  - In Guiana.\n\n123\n00:10:29,407 --> 00:10:32,407\n The Zigoeunus Thomasus\n moth. The male.\n\n124\n00:10:32,567 --> 00:10:35,567\n It is the most graceful moth\n within the Amazon region...\n\n125\n00:10:57,167 --> 00:10:59,366\n < Why are you ironing your kilt ?\n\n126\n00:10:59,367 --> 00:11:01,526\n For my reunion in Glasgow.\n\n127\n00:11:01,527 --> 00:11:04,366\n You know, the Society of\n the Oval Thistle.\n\n128\n00:11:04,367 --> 00:11:06,886\n Have you forgotten I'm leaving\n the day after tomorrow ?\n\n129\n00:11:06,887 --> 00:11:09,887\n Then you must devote yourself\n to ironing your pleats.\n\n130\n00:11:11,487 --> 00:11:13,206\n What are you doing ?\n\n131\n00:11:13,207 --> 00:11:16,207\n Drop this nonsense of\n Aunt Babette's ''crime'' !\n\n132\n00:11:16,527 --> 00:11:19,527\n You've forgotten that\n crime is our business.\n\n133\n00:11:20,327 --> 00:11:23,327\n It is obvious that your aunt\n was mistaken.\n\n134\n00:11:24,087 --> 00:11:27,086\n Commissioner Richard\n searched everywhere.\n\n135\n00:11:27,087 --> 00:11:30,087\n Trains, stations, hospitals,\n morgues. No sign of a body.\n\n136\n00:11:30,767 --> 00:11:33,767\n No-one reported missing.\n\n137\n00:11:36,847 --> 00:11:38,366\n The train that overtook..\n\n138\n00:11:38,367 --> 00:11:41,367\n ..Babette's must have been\n the 4:50..\n\n139\n00:11:41,687 --> 00:11:43,926\n ..that stops at Aigrefonds.\n\n140\n00:11:43,927 --> 00:11:46,646\n Then, the railway track..\n\n141\n00:11:46,647 --> 00:11:49,647\n ..follows the county boundary\n for some distance...\n\n142\n00:11:50,927 --> 00:11:53,927\n But then,\n there actually is a curve.\n\n143\n00:11:54,287 --> 00:11:55,406\n And then ?\n\n144\n00:11:55,407 --> 00:11:58,286\n The assassin threw\n the body out the window.\n\n145\n00:11:58,287 --> 00:12:00,046\n < Frankly, that's what you\n want to have happened !\n\n146\n00:12:00,047 --> 00:12:03,047\n An accomplice,\n hidden in the thicket..\n\n147\n00:12:03,367 --> 00:12:06,367\n ..bundles the victim\n into his black van..\n\n148\n00:12:06,607 --> 00:12:09,607\n ..and dumps everything\n into the lake.\n\n149\n00:12:09,847 --> 00:12:12,166\n There is no lake around there.\n\n150\n00:12:12,167 --> 00:12:15,167\n You believe only what you can see,\n my poor man.\n\n151\n00:12:15,247 --> 00:12:18,247\n That is why\n you are led astray so often.\n\n152\n00:12:31,967 --> 00:12:34,967\n ''I remember the place.\n There was a curve..\n\n153\n00:12:35,367 --> 00:12:37,286\n ''..that rocked me in my seat.\n\n154\n00:12:37,287 --> 00:12:40,287\n ''And our train went through\n the station at Andelieux.''\n\n155\n00:13:01,007 --> 00:13:03,486\n < I believe I've found it.\n\n156\n00:13:03,487 --> 00:13:06,487\n Close to the curve, there is\n a queer property, isolated.\n\n157\n00:13:07,727 --> 00:13:10,446\n Ideal for disposing of a body.\n\n158\n00:13:10,447 --> 00:13:11,766\n This is an obsession.\n\n159\n00:13:11,767 --> 00:13:14,686\n I have an intuition that\n Babette was right.\n\n160\n00:13:14,687 --> 00:13:16,366\n Don't talk to me about intuition.\n\n161\n00:13:16,367 --> 00:13:19,326\n She doesn't have the imagination\n to invent such a story.\n\n162\n00:13:19,327 --> 00:13:22,327\n Then perhaps it was a hallucination.\n\n163\n00:13:22,407 --> 00:13:24,606\n Aunt Babette is alright in the head.\n\n164\n00:13:24,607 --> 00:13:27,486\n She is a world authority\n on butterflies.\n\n165\n00:13:27,487 --> 00:13:30,487\n She doesn't invent them.\n She catches them, and names them.\n\n166\n00:13:31,367 --> 00:13:34,367\n She wants to do the same with\n the killer, and I will help her.\n\n167\n00:13:34,887 --> 00:13:37,887\n One doesn't hunt a killer\n like a butterfly.\n\n168\n00:13:38,167 --> 00:13:42,167\n No. It's the same. One traps them\n and - shlack - one pins them.\n\n169\n00:13:42,847 --> 00:13:45,406\n ''Shlack'' ! I don't understand.\n\n170\n00:13:45,407 --> 00:13:48,407\n That's because you don't listen !\n\n171\n00:13:51,087 --> 00:13:54,087\n Have a good time with your\n friends of the Oval Thistle.\n\n172\n00:13:54,807 --> 00:13:57,807\n We won't be drinking water.\n Have no doubt !\n\n173\n00:13:59,767 --> 00:14:02,767\n Bye. Have a safe trip !\n\n174\n00:14:25,007 --> 00:14:26,366\n Look at the Scotsman !\n\n175\n00:14:26,367 --> 00:14:29,367\n They don't wear anything\n under their kilts, you know.\n\n176\n00:14:34,487 --> 00:14:37,487\n How did I manage to do this ?\n\n177\n00:14:44,247 --> 00:14:45,846\n Can we help you ?\n\n178\n00:15:05,647 --> 00:15:07,046\n Your hat.\n\n179\n00:15:50,167 --> 00:15:51,206\n I wonder who..\n\n180\n00:15:51,207 --> 00:15:54,207\n ..that girl might be ?\n - She could be the new maid..\n\n181\n00:15:55,327 --> 00:15:57,006\n ..up at ''La Vallée aux Loups''.\n\n182\n00:15:57,007 --> 00:16:00,007\n None of them last very long.\n\n183\n00:16:00,047 --> 00:16:03,047\n < Old Man Charpentier\n sees to that.\n\n184\n00:16:05,767 --> 00:16:07,806\n < That poor girl...\n\n185\n00:16:07,807 --> 00:16:09,886\n With all the snow out there..\n\n186\n00:16:09,887 --> 00:16:12,887\n ..she won't be catching a bus.\n\n187\n00:16:18,887 --> 00:16:21,887\n There won't be a bus today.\n Can I take you somewhere ?\n\n188\n00:16:27,327 --> 00:16:29,606\n What luck you were there !\n\n189\n00:16:29,607 --> 00:16:32,607\n I am sure they would have all\n left me to freeze on the spot.\n\n190\n00:16:39,727 --> 00:16:41,486\n Your seats are heated ?\n\n191\n00:16:41,487 --> 00:16:43,566\n No-no, it's the motor you feel.\n\n192\n00:16:43,567 --> 00:16:46,126\n They are all dogs in that place.\n\n193\n00:16:46,127 --> 00:16:48,246\n Like my employer,\n M. Charpentier.\n\n194\n00:16:48,247 --> 00:16:49,566\n He's a dog ?\n - A rat !\n\n195\n00:16:49,567 --> 00:16:52,567\n Rich beyond belief, but\n you'd never know it, the rat !\n\n196\n00:16:53,167 --> 00:16:56,167\n Always in the corridors,\n waiting to stare at me !\n\n197\n00:16:57,847 --> 00:17:00,006\n You know, staring...\n\n198\n00:17:00,007 --> 00:17:02,646\n Staring, how ?\n I can't tell you.\n\n199\n00:17:02,647 --> 00:17:04,326\n He sends shivers down my spine.\n\n200\n00:17:04,327 --> 00:17:07,327\n Fact is, Old Man Charpentier\n frightens everyone.\n\n201\n00:17:08,567 --> 00:17:10,686\n What do you do in the house\n of this old man ?\n\n202\n00:17:10,687 --> 00:17:14,687\n Everything.  Washing-up,\n dusting, shopping, making beds.\n\n203\n00:17:15,307 --> 00:17:18,607\n All by yourself ?\n No, there is Mme. Clairin.\n\n204\n00:17:18,847 --> 00:17:21,446\n But the place is so large,\n it really needs an army.\n\n205\n00:17:21,447 --> 00:17:23,366\n Does he live there alone ?\n\n206\n00:17:23,367 --> 00:17:26,366\n No, with his poor daughter\n and a gardener.\n\n207\n00:17:26,367 --> 00:17:28,086\n The worst thing is the kitchen.\n\n208\n00:17:28,087 --> 00:17:31,087\n It's like something\n out of the Middle Ages.\n\n209\n00:17:31,767 --> 00:17:33,606\n You've been there a long time ?\n\n210\n00:17:33,607 --> 00:17:36,607\n Seven weeks. I don't want to\n stay a moment longer.\n\n211\n00:18:54,927 --> 00:18:57,927\n Come in.\n I will fetch Mademoiselle.\n\n212\n00:19:04,207 --> 00:19:06,206\n The new domestic is here.\n\n213\n00:19:06,207 --> 00:19:09,207\n < Send her into my office.\n - Very well, Mademoiselle.\n\n214\n00:19:11,727 --> 00:19:13,806\n Come, she will see you now.\n\n215\n00:19:13,807 --> 00:19:16,807\n You are the 13th this year.\n Superstitious ?\n\n216\n00:19:42,767 --> 00:19:45,366\n Bonjour,\n I am Emma Charpentier.\n\n217\n00:19:45,367 --> 00:19:47,446\n You are a good cook ?\n\n218\n00:19:47,447 --> 00:19:50,447\n You have references ?\n No, none.\n\n219\n00:19:50,607 --> 00:19:52,286\n That is quite unusual.\n\n220\n00:19:52,287 --> 00:19:55,126\n For the most part,\n they are of little value.\n\n221\n00:19:55,127 --> 00:19:58,127\n They never say\n why one left a place.\n\n222\n00:20:00,287 --> 00:20:04,287\n Very true. What day would you\n prefer as a rest day ?\n\n223\n00:20:04,407 --> 00:20:09,407\n I am very flexible. Since\n the death of my dear husband...\n\n224\n00:20:10,767 --> 00:20:13,767\n My time is my own.\n\n225\n00:20:13,967 --> 00:20:16,967\n Very well.\n Let me show you your room.\n\n226\n00:20:23,567 --> 00:20:25,606\n I need more than a kitchen maid.\n\n227\n00:20:25,607 --> 00:20:28,607\n Mme. Clairin isn't here every day.\n\n228\n00:20:28,767 --> 00:20:31,767\n My grandfather, he built the\n house. A fantastic man.\n\n229\n00:20:32,447 --> 00:20:35,447\n But very strict.\n The damage was done by my father..\n\n230\n00:20:35,527 --> 00:20:38,686\n ..in a fit of anger. He refuses\n to let anyone repair it.\n\n231\n00:20:38,687 --> 00:20:41,687\n My father is a difficult man.\n\n232\n00:20:42,247 --> 00:20:45,247\n He keeps a close eye on expenses,\n and can be... difficult.\n\n233\n00:20:47,407 --> 00:20:49,126\n - I am used to..\n\n234\n00:20:49,127 --> 00:20:51,086\n ..the habits of the elderly.\n\n235\n00:20:51,087 --> 00:20:53,726\n To begin with, things will be\n easy. There are four of us.\n\n236\n00:20:53,727 --> 00:20:56,646\n Myself, my niece on vacation,\n her schoolfriend, and...\n\n237\n00:20:56,647 --> 00:20:57,486\n Emma !\n\n238\n00:20:57,587 --> 00:21:01,987\n ..my father. But my brothers\n will be arriving for Christmas.\n\n239\n00:21:02,207 --> 00:21:05,207\n Emma !\n\n240\n00:21:05,847 --> 00:21:08,847\n These costings for Christmas.\n You wish to bankrupt me ?\n\n241\n00:21:09,887 --> 00:21:12,366\n Who is that, over there ?\n\n242\n00:21:12,367 --> 00:21:15,367\n The new kitchen maid\n I spoke to you about.\n\n243\n00:21:15,887 --> 00:21:18,887\n Come, come !\n Let's see you, come here !\n\n244\n00:21:20,487 --> 00:21:24,487\n What is your name, little one ?\n Prudence Beresford.\n\n245\n00:21:27,447 --> 00:21:29,126\n She's got good arms.\n\n246\n00:21:29,127 --> 00:21:32,127\n Well then...\n\n247\n00:21:34,367 --> 00:21:37,367\n Remember two things :\n I abhor waste..\n\n248\n00:21:38,607 --> 00:21:41,607\n ..and a squire is\n not necessarily rich.\n\n249\n00:21:41,687 --> 00:21:44,687\n I live here because I want to,\n not because I have the means.\n\n250\n00:21:46,127 --> 00:21:48,606\n Now go !\n Don't bother me further.\n\n251\n00:21:48,607 --> 00:21:53,607\n Don't forget that a good cod\n does as well as a turbot.\n\n252\n00:21:55,687 --> 00:21:58,086\n I am sorry.\n\n253\n00:21:58,087 --> 00:22:00,046\n Emma !\n\n254\n00:22:00,047 --> 00:22:01,766\n Come here, Emma !\n\n255\n00:22:01,767 --> 00:22:03,486\n Excuse me.\n\n256\n00:22:03,487 --> 00:22:06,487\n I must go. Your room is\n at the top - on the left.\n\n257\n00:22:06,767 --> 00:22:08,486\n The key is in the door.\n\n258\n00:22:08,487 --> 00:22:11,487\n My own children\n have become my enemies !\n\n259\n00:22:14,207 --> 00:22:17,207\n < Tell that idiot of a doctor\n that last medicine..\n\n260\n00:22:18,647 --> 00:22:19,806\n < ..is no good at all !\n\n261\n00:22:19,807 --> 00:22:22,807\n < Are you sure ?\n -< Of course !\n\n262\n00:22:59,367 --> 00:23:02,367\n Who is there ?\n\n263\n00:23:25,207 --> 00:23:28,207\n You must be the niece...\n of Mlle. Charpentier.\n\n264\n00:23:28,327 --> 00:23:31,327\n Yes, I am Alexie Charpentier.\n\n265\n00:23:32,687 --> 00:23:35,687\n And you, you are Mary Poppins !\n - Ah ! Mary Poppins !\n\n266\n00:23:36,127 --> 00:23:39,127\n You aren't my idea of a maid\n working for my grandfather.\n\n267\n00:23:39,807 --> 00:23:43,807\n You aren't my idea of the niece\n of Mlle. Charpentier.\n\n268\n00:23:44,367 --> 00:23:47,367\n Mme. Clairin is waiting for you\n in the kitchen.\n\n269\n00:23:47,387 --> 00:23:49,406\n Then let me change,\n and I'll be right there.\n\n270\n00:23:49,407 --> 00:23:52,086\n I'll wait for you on the landing.\n\n271\n00:23:52,087 --> 00:23:53,006\n Emma !\n\n272\n00:23:53,007 --> 00:23:57,007\n Always he shouts after my aunt.\n Yet she's the only one who loves him.\n\n273\n00:23:57,727 --> 00:24:00,727\n Don't the others love him ?\n - They are like vultures.\n\n274\n00:24:01,327 --> 00:24:03,126\n They are waiting for him to die.\n\n275\n00:24:03,127 --> 00:24:05,846\n Who are the vultures ?\n - My uncles.\n\n276\n00:24:05,847 --> 00:24:10,847\n Uncle Raphael. He is weird.\n A banker, and a gambler.\n\n277\n00:24:11,507 --> 00:24:14,086\n He lives in Lyon, with his wife.\n\n278\n00:24:14,087 --> 00:24:17,046\n He likes only money and drugs.\n\n279\n00:24:17,047 --> 00:24:19,126\n Uncle Augustin lives\n on an island.\n\n280\n00:24:19,127 --> 00:24:22,127\n He has abandoned sculpting\n to spend his time hunting.\n\n281\n00:24:23,527 --> 00:24:25,926\n The more he kills,\n the better he likes it.\n\n282\n00:24:25,927 --> 00:24:28,846\n And who looks after you ?\n - My father.\n\n283\n00:24:28,847 --> 00:24:31,486\n My mother is dead.\n The family consider him..\n\n284\n00:24:31,487 --> 00:24:34,046\n ..a failure. They call him\n ''Frederick the layabout''\n\n285\n00:24:34,047 --> 00:24:36,966\n But I don't care.\n He is a good guitarist.\n\n286\n00:24:36,967 --> 00:24:37,926\n It's through there.\n\n287\n00:24:37,927 --> 00:24:40,927\n And there was Uncle Edmond,\n who died in the War.\n\n288\n00:24:41,327 --> 00:24:44,327\n We're nearly there, come along.\n\n289\n00:24:50,807 --> 00:24:52,886\n She's already had a tipple.\n\n290\n00:24:52,887 --> 00:24:54,646\n A little one for the road,..\n\n291\n00:24:54,647 --> 00:24:57,647\n ..Mme. Clairin ?\n - Weather as it is, it helps.\n\n292\n00:24:58,447 --> 00:25:00,566\n I've been waiting for you.\n\n293\n00:25:00,567 --> 00:25:02,846\n I'll show you\n where the things are.\n\n294\n00:25:02,847 --> 00:25:04,966\n It won't take a moment.\n\n295\n00:25:04,967 --> 00:25:07,967\n In the scullery, there is\n everything you need for lunch.\n\n296\n00:25:12,127 --> 00:25:14,566\n The stove is burning well.\n I lit it..\n\n297\n00:25:14,567 --> 00:25:17,206\n ..this morning.\n You need to keep it stoked up.\n\n298\n00:25:17,207 --> 00:25:19,526\n It can get cold in the house.\n\n299\n00:25:19,527 --> 00:25:22,006\n I have made some coffee.\n\n300\n00:25:22,007 --> 00:25:24,006\n So, there you are.\n Goodbye !\n\n301\n00:25:24,007 --> 00:25:26,326\n Take care, grandfather hates..\n\n302\n00:25:26,327 --> 00:25:30,327\n ..getting his meals late.\n Lunch is at noon, Mme. Poppins.\n\n303\n00:26:16,327 --> 00:26:20,327\n Come on,\n or we'll be late !\n\n304\n00:26:34,027 --> 00:26:36,946\n < Now who's imagining things ?\n -< Papa, you exaggerate.\n\n305\n00:26:36,947 --> 00:26:40,526\n < I know what I'm talking about.\n My sickness, two weeks ago,..\n\n306\n00:26:40,527 --> 00:26:43,206\n ..your brothers had\n something to do with that.\n\n307\n00:26:43,207 --> 00:26:44,806\n What will you suggest next ?\n\n308\n00:26:44,807 --> 00:26:47,646\n < It was only indigestion.\n\n309\n00:26:47,647 --> 00:26:49,846\n < Now sit back and calm yourself.\n\n310\n00:26:49,847 --> 00:26:52,326\n < You talk to me about indigestion !\n\n311\n00:26:52,327 --> 00:26:55,327\n Even your precious Dr. Lagarde\n was suspicious.\n\n312\n00:26:56,047 --> 00:26:59,047\n But you forget one thing.\n\n313\n00:26:59,247 --> 00:27:02,247\n Misers always die last.\n\n314\n00:27:09,127 --> 00:27:10,966\n The dumb waiter doesn't work.\n\n315\n00:27:10,967 --> 00:27:12,486\n The lead weights have fallen off.\n\n316\n00:27:12,487 --> 00:27:15,166\n Can it be repaired ?\n - I don't think so.\n\n317\n00:27:15,167 --> 00:27:18,167\n Let us help you. There are\n only 30 seconds to midday.\n\n318\n00:27:19,447 --> 00:27:22,447\n Mme. Poppins,\n Valerie, my best friend.\n\n319\n00:27:22,527 --> 00:27:25,527\n Enchanted.\n Away you go. I'll follow.\n\n320\n00:27:53,967 --> 00:27:56,967\n This is good, the soup.\n\n321\n00:27:59,807 --> 00:28:02,807\n It is good,\n really good, the soup.\n\n322\n00:28:53,447 --> 00:28:56,447\n ''A sharp curve...''\n\n323\n00:28:56,487 --> 00:28:58,886\n Yes ?\n < Prudence Beresford !\n\n324\n00:28:58,887 --> 00:29:01,887\n Finally ! Where are you ?\n\n325\n00:29:02,207 --> 00:29:04,686\n Figure it out for yourself...\n\n326\n00:29:04,687 --> 00:29:05,646\n Where are you ?\n\n327\n00:29:05,647 --> 00:29:08,647\n You haven't launched yourself\n into that ridiculous mystery..\n\n328\n00:29:09,127 --> 00:29:11,806\n ..of the railway murder ?\n\n329\n00:29:11,807 --> 00:29:15,207\n I have discovered a sudden\n passion for snow-shoes.\n\n330\n00:29:15,647 --> 00:29:17,526\n I am practising on them.\n\n331\n00:29:17,527 --> 00:29:20,527\n < What ?\n - Yes, I've never dared confess,..\n\n332\n00:29:21,487 --> 00:29:24,126\n ..but I have long dreamed of...\n\n333\n00:29:24,127 --> 00:29:27,127\n ..walking alone in the snow,\n wearing snow-shoes.\n\n334\n00:29:28,927 --> 00:29:30,126\n When are you coming back ?\n\n335\n00:29:30,127 --> 00:29:32,046\n I'll be back...\n\n336\n00:29:32,047 --> 00:29:34,486\n I'll be back...\n I don't know.\n\n337\n00:29:34,487 --> 00:29:36,526\n Make it within 5 days,\n it's Christmas !\n\n338\n00:29:36,527 --> 00:29:39,527\n Marie-Christine and her family\n will be spending it with us.\n\n339\n00:29:40,647 --> 00:29:41,926\n Is it Christmas already ?\n\n340\n00:29:41,927 --> 00:29:44,526\n But yes !\n It comes round once a year.\n\n341\n00:29:44,527 --> 00:29:47,527\n How could I forget ?\n\n342\n00:29:48,327 --> 00:29:52,327\n Christmas, another chance to\n enjoy the grandchildren !\n\n343\n00:30:34,687 --> 00:30:37,166\n You are enjoying yourselves.\n\n344\n00:30:37,167 --> 00:30:40,167\n We are off to the museum.\n - The museum ?\n\n345\n00:30:40,327 --> 00:30:43,327\n The red house, where grandfather\n keeps his treasures.\n\n346\n00:30:43,847 --> 00:30:46,526\n It's beyond the rock over there.\n\n347\n00:30:46,527 --> 00:30:47,846\n Come on, it's through here !\n\n348\n00:31:19,047 --> 00:31:22,047\n This way.\n\n349\n00:31:24,047 --> 00:31:27,047\n < Oh ! It's freezing in here !\n\n350\n00:32:04,000 --> 00:32:07,000\n Remember to lock up,\n because of the wild boar.\n\n351\n00:32:23,000 --> 00:32:26,000\n You are not allowed here.\n This is the squire's museum.\n\n352\n00:33:15,000 --> 00:33:16,500\n Sit !!\n\n353\n00:34:55,000 --> 00:34:57,700\n *This is the answerphone of\n Babette Boutiti.\n\n354\n00:34:58,000 --> 00:35:00,200\n *I am hunting butterflies in\n Guiana.\n\n355\n00:35:00,207 --> 00:35:02,806\n *Leave your message after\n the ''pop''.\n\n356\n00:35:02,807 --> 00:35:03,886\n *Pop !\n\n357\n00:35:03,887 --> 00:35:06,887\n Aunt Babette,\n I have just discovered..\n\n358\n00:35:07,727 --> 00:35:10,686\n ..the body\n of a strangled woman..\n\n359\n00:35:10,687 --> 00:35:13,687\n ..wearing a fur coat, with\n  a red glove..\n\n360\n00:35:13,847 --> 00:35:16,086\n ..in a large sarcophagus.\n\n361\n00:35:16,087 --> 00:35:19,087\n There you are.  I will tell\n you more when you return.\n\n362\n00:35:19,487 --> 00:35:22,487\n Good, that's all for now.\n\n363\n00:35:40,167 --> 00:35:42,126\n Belisaire !\n\n364\n00:35:42,927 --> 00:35:45,406\n Rotten sod !\n\n365\n00:35:47,687 --> 00:35:49,606\n Is it still Christmas ?\n\n366\n00:36:13,967 --> 00:36:16,967\n I've never seen that woman\n before, I'm certain.\n\n367\n00:36:17,487 --> 00:36:20,487\n Are you alright ?\n You look very pale, Emma.\n\n368\n00:36:21,687 --> 00:36:23,886\n It will pass.\n I'm okay, thank you.\n\n369\n00:36:23,887 --> 00:36:25,966\n There we are.\n Now breathe slowly.\n\n370\n00:36:25,967 --> 00:36:27,606\n Thank you for being here,\n Francois.\n\n371\n00:36:27,607 --> 00:36:30,086\n Whenever you need me.\n\n372\n00:36:30,087 --> 00:36:31,886\n Breathe slowly.\n\n373\n00:36:31,887 --> 00:36:33,526\n < Inspector Blache,..\n\n374\n00:36:33,527 --> 00:36:36,326\n ..Dr Lagarde.\n - Hello.\n\n375\n00:36:36,327 --> 00:36:38,126\n Doctor.\n\n376\n00:36:38,127 --> 00:36:40,566\n This is unbelievable !\n\n377\n00:36:40,567 --> 00:36:43,567\n The sarcophagus is from\n the 18th dynasty !\n\n378\n00:36:44,207 --> 00:36:47,207\n I bought it\n more than 50 years ago !\n\n379\n00:36:48,047 --> 00:36:50,046\n Now it's in pieces !\n\n380\n00:36:50,047 --> 00:36:54,047\n All because a stupid creature\n decided to be killed inside !\n\n381\n00:36:54,607 --> 00:36:56,046\n It is appalling.\n\n382\n00:36:58,607 --> 00:37:01,086\n M. Charpentier,\n go back to the chateau.\n\n383\n00:37:01,087 --> 00:37:03,766\n Give him a whisky,\n I will meet with you later.\n\n384\n00:37:08,047 --> 00:37:10,166\n Many of my elderly patients..\n\n385\n00:37:10,167 --> 00:37:13,167\n ..play the invalid\n to oppress their relatives.\n\n386\n00:37:14,007 --> 00:37:17,006\n Inspector,\n who discovered the body ?\n\n387\n00:37:17,007 --> 00:37:19,366\n The new employee.\n\n388\n00:37:19,367 --> 00:37:22,046\n You went to the ''museum''..\n\n389\n00:37:22,047 --> 00:37:25,047\n ..and forced the lid off the\n sarcophagus.\n\n390\n00:37:25,887 --> 00:37:27,006\n Yes.\n\n391\n00:37:27,007 --> 00:37:30,007\n For what reason ?\n - I was looking for a body.\n\n392\n00:37:31,407 --> 00:37:34,407\n A body ? So you knew there\n was one there ?\n\n393\n00:37:35,687 --> 00:37:38,687\n Yes, of course.\n - Furthermore, I will explain.\n\n394\n00:37:40,967 --> 00:37:45,967\n It all started with Aunt Babette\n before she left to hunt butterflies...\n\n395\n00:38:10,807 --> 00:38:13,807\n I cannot tell you.\n Stone dead !\n\n396\n00:38:14,047 --> 00:38:17,047\n And that made me...\n\n397\n00:38:19,547 --> 00:38:24,000\n You expect me to swallow that ?\n - You can check.\n\n398\n00:38:24,247 --> 00:38:27,947\n My aunt made a statement to the\n railway authorities in Andelieux.\n\n399\n00:38:28,967 --> 00:38:30,806\n Your name, if you please ?\n\n400\n00:38:30,907 --> 00:38:33,807\n Mme. Beresford.\n The Widow Beresford.\n\n401\n00:38:35,847 --> 00:38:38,847\n Perhaps you are related to\n Colonel Beresford ?\n\n402\n00:38:39,407 --> 00:38:42,407\n It is a common name.\n There are plenty in this region.\n\n403\n00:38:43,327 --> 00:38:46,327\n Excuse me, I would like to get\n back to work.\n\n404\n00:38:47,887 --> 00:38:50,887\n I'm sorry, I should have\n recognised Mme. Beresford.\n\n405\n00:38:51,607 --> 00:38:54,566\n But I saw her\n for a very short time.\n\n406\n00:38:54,567 --> 00:38:56,366\n She said she was there to\n practise using snow-shoes !\n\n407\n00:38:56,367 --> 00:38:58,366\n I'll give her snow-shoes,\n just you see !\n\n408\n00:38:58,367 --> 00:39:01,367\n What'd you say ?\n - Nothing. Speaking to myself.\n\n409\n00:39:02,207 --> 00:39:06,707\n She must stop this farce !\n - She could be of help to us.\n\n410\n00:39:07,567 --> 00:39:12,567\n If you accompany me, you'll\n have to use another name.\n\n411\n00:39:13,087 --> 00:39:14,846\n And why ?\n\n412\n00:39:14,947 --> 00:39:16,447\n To protect her.\n There has been a murder there.\n\n413\n00:39:16,807 --> 00:39:18,806\n And I forgot to tell you...\n\n414\n00:39:19,207 --> 00:39:21,566\n Mme. Prudence is passing\n herself off as a widow.\n\n415\n00:39:22,887 --> 00:39:25,087\n Mme. Prudence, a widow ?!\n\n416\n00:39:25,767 --> 00:39:29,367\n Ha-ha-ha !\n Fancy her thinking of that one !\n\n417\n00:39:30,047 --> 00:39:32,766\n Enough.\n I suggest we talk indoors.\n\n418\n00:39:33,267 --> 00:39:36,267\n The death happened when ?\n - Pathologist says 2 weeks ago.\n\n419\n00:39:36,367 --> 00:39:39,367\n But, according to your aunt,\n she was killed on 28 November..\n\n420\n00:39:40,047 --> 00:39:44,447\n ..on the Morgan-Bellefond\n express train.\n\n421\n00:39:45,007 --> 00:39:48,807\n Then the corpse was dragged to\n and hidden in the sarcophagus.\n\n422\n00:39:49,007 --> 00:39:52,007\n But what led the killer\n to open the sarcophagus ?\n\n423\n00:39:53,447 --> 00:39:55,486\n ''You believe only what\n you see.''\n\n424\n00:39:55,487 --> 00:39:58,006\n ''That is why you are\n led astray so often.''\n\n425\n00:39:58,007 --> 00:40:00,046\n ''Use your imagination.''\n\n426\n00:40:00,047 --> 00:40:03,047\n There is no evidence any of\n the Charpentiers are involved.\n\n427\n00:40:04,407 --> 00:40:08,407\n \"Except that I found the body\n on their property.''\n\n428\n00:40:11,927 --> 00:40:13,326\n < Colonel ?\n\n429\n00:40:13,327 --> 00:40:16,327\n Colonel, Colonel...\n - Yes... as I was saying...\n\n430\n00:40:18,487 --> 00:40:21,487\n I was listening to you.\n What do you know about them ?\n\n431\n00:40:22,047 --> 00:40:27,047\n You will meet them. They are\n all at the chateau...\n\n432\n00:40:35,067 --> 00:40:38,367\n A lovers' quarrel turned out\n badly. And there you are !\n\n433\n00:40:39,007 --> 00:40:41,446\n I will speak to\n Inspector Blavache.\n\n434\n00:40:42,047 --> 00:40:43,000\n - Blache,\n Monsieur.\n\n435\n00:40:43,687 --> 00:40:46,687\n I will tell Blavache none of\n us have ever seen this woman.\n\n436\n00:40:47,087 --> 00:40:49,366\n And you will all say the same.\n\n437\n00:40:49,367 --> 00:40:51,086\n Are you sure, father ?\n\n438\n00:40:51,087 --> 00:40:54,087\n Perhaps she was one of Raphael's\n little friends.\n\n439\n00:40:56,487 --> 00:40:59,487\n That's some joke, that is !\n\n440\n00:41:03,887 --> 00:41:06,887\n That must be Dr Lagarde.\n Let him in.\n\n441\n00:41:09,607 --> 00:41:12,607\n Still looking for\n the fountain of youth, father ?\n\n442\n00:41:15,007 --> 00:41:17,246\n That isn't funny, Augustin.\n\n443\n00:41:17,247 --> 00:41:19,366\n Lean on me, father.\n\n444\n00:41:19,367 --> 00:41:22,206\n I will outlast all of you..\n\n445\n00:41:22,207 --> 00:41:25,207\n ..just to protect my property\n from your predatory grasp.\n\n446\n00:41:30,667 --> 00:41:31,926\n The police..\n\n447\n00:41:31,927 --> 00:41:34,766\n ..will soon be here\n to interrogate you.\n\n448\n00:41:34,767 --> 00:41:37,767\n You'd better prepare\n your alibis !\n\n449\n00:41:45,607 --> 00:41:48,607\n Why did you open\n the sarcophagus ?\n\n450\n00:41:49,527 --> 00:41:52,527\n I saw the cover\n had been lifted recently.\n\n451\n00:41:52,607 --> 00:41:54,926\n I was overcome with curiosity.\n\n452\n00:41:54,927 --> 00:41:57,927\n I have always been\n a frustrated archaeologist.\n\n453\n00:41:58,767 --> 00:42:00,966\n What more can you tell us ?\n\n454\n00:42:00,967 --> 00:42:04,967\n I was, how shall I say,...\n overcome by the smell.\n\n455\n00:42:05,327 --> 00:42:08,327\n That sickly smell of death.\n\n456\n00:42:08,407 --> 00:42:11,407\n That's all. I don't wish\n to go into details.\n\n457\n00:42:13,927 --> 00:42:17,927\n Isn't it horrifying ?! That\n poor woman coming here to die.\n\n458\n00:42:18,487 --> 00:42:21,086\n < Forget it.\n We didn't know her.\n\n459\n00:42:21,087 --> 00:42:24,087\n She came here by chance.\n - How do you know ?\n\n460\n00:42:24,687 --> 00:42:27,086\n If it really was by chance,\n why is Emma..\n\n461\n00:42:27,087 --> 00:42:29,766\n ..so troubled ?\n -< Why are you surprised..\n\n462\n00:42:29,767 --> 00:42:31,686\n ..that a murder should\n trouble her ?\n\n463\n00:42:31,687 --> 00:42:33,406\n He thinks like an artist.\n\n464\n00:42:33,407 --> 00:42:36,407\n Why do you always prod people\n as if they were animals ?\n\n465\n00:42:39,807 --> 00:42:41,206\n That is enough !\n\n466\n00:42:41,207 --> 00:42:42,846\n This is not the time\n for bickering!\n\n467\n00:42:42,847 --> 00:42:45,847\n < The police believe the crime\n took place on 28 November.\n\n468\n00:42:47,047 --> 00:42:50,047\n < How did they learn that so fast ?\n -< It's not the 19th Century.\n\n469\n00:42:51,927 --> 00:42:53,726\n < That's not much to brag about.\n\n470\n00:42:53,727 --> 00:42:56,727\n < Friday the 28th. It was the\n day Emma invited us here.\n\n471\n00:42:57,367 --> 00:43:00,367\n < So what ?\n -< By that night, we were all here.\n\n472\n00:43:01,127 --> 00:43:03,766\n < And ?\n -< It will interest the police.\n\n473\n00:43:03,767 --> 00:43:05,846\n < What about the theory\n of a lovers' quarrel ?\n\n474\n00:43:05,847 --> 00:43:08,847\n < Not the 1st time Papa's museum\n was used as a meeting place.\n\n475\n00:43:09,207 --> 00:43:12,207\n < Lovers meeting in Papa's\n museum ?!\n\n476\n00:43:12,527 --> 00:43:15,527\n I have a problem imagining that..\n\n477\n00:43:15,727 --> 00:43:18,727\n ..it's like the inside of a\n glacier during Winter.\n\n478\n00:43:24,927 --> 00:43:26,726\n Your daughter is lovely.\n\n479\n00:43:26,727 --> 00:43:29,727\n She, and her friend, are\n are excited by this crime.\n\n480\n00:43:29,847 --> 00:43:31,846\n It's their age.\n\n481\n00:43:31,847 --> 00:43:34,847\n Papa, the Inspector is here\n with another gentleman.\n\n482\n00:43:36,927 --> 00:43:39,927\n Our new employee, Mme. Beresford,\n recently arrived.\n\n483\n00:43:41,447 --> 00:43:44,086\n The Widow Beresford, I presume ?\n\n484\n00:43:48,407 --> 00:43:51,086\n Pardon me,\n I have a terrible cold.\n\n485\n00:43:51,087 --> 00:43:53,966\n We need you to attend the\n police station.\n\n486\n00:43:55,407 --> 00:44:02,407\n One of my officers will accompany\n you, if you are well enough.\n\n487\n00:44:02,527 --> 00:44:05,727\n Ask for me, my name is\n ''Colonel Snowshoe'' !\n\n488\n00:44:05,807 --> 00:44:07,886\n Good, we would first like..\n\n489\n00:44:07,887 --> 00:44:09,486\n ..to interrogate your brothers.\n\n490\n00:44:09,487 --> 00:44:11,086\n You are wasting your time,\n Inspector.\n\n491\n00:44:11,087 --> 00:44:14,087\n If that woman had ever stayed\n here, my father or I..\n\n492\n00:44:15,567 --> 00:44:17,006\n ..would have recognised her.\n\n493\n00:44:17,007 --> 00:44:20,007\n < Everything seems to suggest..\n\n494\n00:44:20,887 --> 00:44:23,887\n <..that the victim was not\n from around here.\n\n495\n00:44:24,007 --> 00:44:27,007\n < She was a stranger.\n - A Russian ?\n\n496\n00:44:27,527 --> 00:44:30,527\n < Girls, this is not a\n conversation for your ears.\n\n497\n00:44:31,287 --> 00:44:34,287\n Mme. Beresford, conduct the\n gentlemen upstairs.\n\n498\n00:44:35,727 --> 00:44:37,606\n Very well.\n\n499\n00:44:37,607 --> 00:44:39,686\n I am going to see my father.\n\n500\n00:44:39,687 --> 00:44:42,687\n Gentlemen,\n I will show the way.\n\n501\n00:44:48,367 --> 00:44:50,726\n So, I am dead, am I?\n\n502\n00:44:53,807 --> 00:44:55,966\n Francois !\n\n503\n00:44:55,967 --> 00:45:02,467\n Your father is in good form.\n The murder has envigorated him.\n\n504\n00:45:14,767 --> 00:45:17,767\n What is it, Emma ?\n\n505\n00:45:19,647 --> 00:45:21,286\n What is wrong ?\n\n506\n00:45:21,287 --> 00:45:24,046\n I think there is a criminal\n in the family.\n\n507\n00:45:24,047 --> 00:45:26,846\n Why do you think that ?\n\n508\n00:45:26,847 --> 00:45:29,126\n Because of Martina,..\n\n509\n00:45:29,127 --> 00:45:32,127\n ..my brother Edmond's wife,\n who was meant to come here.\n\n510\n00:45:32,807 --> 00:45:35,807\n Ah yes, is there any news ?\n - No, that's just it.\n\n511\n00:45:36,407 --> 00:45:39,407\n The police think that the\n victim comes from the East.\n\n512\n00:45:40,007 --> 00:45:43,007\n And you think the dead woman\n might be Martina ? - Yes.\n\n513\n00:45:43,407 --> 00:45:46,407\n I am frightened of telling\n the police about this.\n\n514\n00:45:49,327 --> 00:45:54,327\n Have you spoken to your brothers ?\n No, I can't judge their reaction.\n\n515\n00:45:56,167 --> 00:45:58,326\n Emma,\n I know you.\n\n516\n00:45:58,327 --> 00:46:02,000\n If you don't speak of your fears,\n you will make yourself sick.\n\n517\n00:46:02,007 --> 00:46:05,007\n Then I should go to the police ?\n - Yes.\n\n518\n00:46:06,687 --> 00:46:08,687\n Gentlemen,\n this way.\n\n519\n00:46:08,807 --> 00:46:10,206\n May I take your coat ?\n\n520\n00:46:10,207 --> 00:46:12,326\n Never during an enquiry.\n\n521\n00:46:12,327 --> 00:46:14,846\n Thank you, madam.\n - I shall stay.\n\n522\n00:46:14,850 --> 00:46:17,847\n You will leave,\n madam.\n\n523\n00:46:17,900 --> 00:46:19,166\n You stinker !\n\n524\n00:46:19,167 --> 00:46:22,086\n Without me, you are nothing.\n\n525\n00:46:22,547 --> 00:46:25,047\n Nothing ! Nothing at all !\n\n526\n00:46:34,527 --> 00:46:38,527\n A moment, let me think.\n When did you arrive ?\n\n527\n00:46:39,887 --> 00:46:42,887\n A little over three weeks ago\n to see my father.\n\n528\n00:46:44,747 --> 00:46:47,247\n You live away from here ?\n - Yes, I spend my time in Paris.\n\n529\n00:46:47,927 --> 00:46:50,927\n I stayed here for two days,\n at the end of November.\n\n530\n00:46:53,327 --> 00:46:57,327\n < She was killed, when ?\n -< End of November.\n\n531\n00:47:00,687 --> 00:47:02,786\n You are married ?\n Your wife..\n\n532\n00:47:02,787 --> 00:47:04,786\n ..is not here with you ?\n\n533\n00:47:05,687 --> 00:47:07,000\n She hates Winter in France.\n\n534\n00:47:07,027 --> 00:47:08,046\n < Do you come here often ?\n\n535\n00:47:08,647 --> 00:47:10,466\n < From time to time,\n to see my sister.\n\n536\n00:47:10,767 --> 00:47:14,567\n The last time, when was that ?\n - Three weeks ago.\n\n537\n00:47:14,627 --> 00:47:16,646\n The end of November ?\n\n538\n00:47:16,847 --> 00:47:18,847\n Yes, end of November.\n\n539\n00:47:20,007 --> 00:47:22,507\n How do you get on with\n your father ?\n\n540\n00:47:22,967 --> 00:47:26,267\n None of his children get on\n with my father.\n\n541\n00:47:26,867 --> 00:47:29,867\n Even Emma has problems.\n He is such a skinflint.\n\n542\n00:47:29,947 --> 00:47:32,647\n It was my grandfather's fault.\n\n543\n00:47:35,047 --> 00:47:36,726\n Why ?\n\n544\n00:47:37,327 --> 00:47:39,927\n He hated Papa, and took his\n revenge in his Will.\n\n545\n00:47:40,367 --> 00:47:43,367\n Emma, my brothers and I share\n ownership of the fortune.\n\n546\n00:47:43,567 --> 00:47:46,286\n He only retains the right\n to live here.\n\n547\n00:47:46,287 --> 00:47:50,287\n He cannot sell anything, decide\n anything, and it drives him crazy !\n\n548\n00:47:52,067 --> 00:47:55,867\n You come here often ?\n - Sometimes, with my daughter.\n\n549\n00:47:55,887 --> 00:47:59,887\n < Why were you all gathered\n here at the end of November ?\n\n550\n00:48:00,127 --> 00:48:02,827\n No reason. It was just\n a family get-together.\n\n551\n00:48:04,007 --> 00:48:05,507\n Where everyone hates each other...\n\n552\n00:48:06,867 --> 00:48:10,367\n Police enter my house without\n asking the head of family !\n\n553\n00:48:12,247 --> 00:48:13,606\n Who is the head here ?\n\n554\n00:48:15,007 --> 00:48:16,000\n < Answer me !\n\n555\n00:48:16,027 --> 00:48:18,286\n < Answer me !\n\n556\n00:48:20,247 --> 00:48:22,447\n < You are, but we wanted\n to avoid tiring you.\n\n557\n00:48:23,207 --> 00:48:24,926\n Dr Lagarde..\n\n558\n00:48:24,927 --> 00:48:26,206\n ..said...\n - Him. If I listened to him,..\n\n559\n00:48:26,207 --> 00:48:28,126\n ..I would never get out of bed.\n\n560\n00:48:29,127 --> 00:48:34,127\n The prescription he signed,\n gave me indigestion for 3 weeks !\n\n561\n00:48:34,247 --> 00:48:36,406\n He almost..\n\n562\n00:48:36,407 --> 00:48:37,966\n ..poisoned me !\n\n563\n00:48:37,967 --> 00:48:40,967\n I must admit that was when\n we still had the old cook.\n\n564\n00:48:41,487 --> 00:48:44,487\n This new one, here now,\n she is a pearl !\n\n565\n00:48:44,967 --> 00:48:48,967\n Well rounded.. like an eclair !\n\n566\n00:48:49,047 --> 00:48:52,047\n < Rounded like an eclair ?\n - Ssh !\n\n567\n00:48:52,167 --> 00:48:55,867\n Haven't you noticed ?\n - I haven't got that near.\n\n568\n00:48:56,207 --> 00:48:57,206\n Well, then...\n\n569\n00:48:57,207 --> 00:48:59,406\n What are your assumptions\n about this case ?\n\n570\n00:48:59,407 --> 00:49:02,407\n It's a little early to talk\n about assumptions,..\n\n571\n00:49:02,927 --> 00:49:05,927\n ..especially since we don't\n yet know who the woman was.\n\n572\n00:49:06,247 --> 00:49:09,247\n A stranger, it seems.\n\n573\n00:49:10,887 --> 00:49:13,866\n Perhaps a conquest of my son,\n Augustin.\n\n574\n00:49:14,067 --> 00:49:15,526\n He says he didn't\n recognise her.\n\n575\n00:49:15,627 --> 00:49:18,126\n That means nothing.\n It's got him jittery.\n\n576\n00:49:18,127 --> 00:49:21,127\n My sons are all cowards,\n and liars,..\n\n577\n00:49:21,927 --> 00:49:24,927\n ..a bunch of vultures who are\n waiting for my death.\n\n578\n00:49:26,967 --> 00:49:29,967\n I'm starting to feel very ill.\n Emma !\n\n579\n00:49:30,007 --> 00:49:32,006\n I must have a lie-down.\n\n580\n00:49:36,967 --> 00:49:39,467\n He doesn't feel much love\n for his children !\n\n581\n00:49:40,767 --> 00:49:44,367\n He hasn't forgiven them\n for disinheriting him.\n\n582\n00:49:45,687 --> 00:49:48,687\n Au revoir, Colonel.\n\n583\n00:50:00,007 --> 00:50:01,607\n What is that ?\n\n584\n00:50:26,087 --> 00:50:29,587\n Belisaire,\n don't be an idiot !\n\n585\n00:50:29,687 --> 00:50:31,486\n I didn't see anything !\n\n586\n00:50:32,887 --> 00:50:34,206\n Come on, open the boot !\n\n587\n00:50:34,407 --> 00:50:37,407\n I am dead. A dead man can't\n open boots for his widow.\n\n588\n00:50:38,007 --> 00:50:40,566\n I said it on the spur of\n the moment, I was joking.\n\n589\n00:50:41,167 --> 00:50:43,567\n The fact you said it makes\n it other than a joke.\n\n590\n00:50:43,927 --> 00:50:46,427\n Alright, I said it. Now\n open the boot ! Belisaire !\n\n591\n00:50:48,227 --> 00:50:50,827\n The soon-to-be widower\n Belisaire !\n\n592\n00:50:51,747 --> 00:50:55,247\n Come on !\n Oh, this can't be happening !\n\n593\n00:50:56,007 --> 00:50:57,126\n Belisaire...\n\n594\n00:50:57,127 --> 00:51:00,127\n You are offended because I was\n right. It's as simple as that.\n\n595\n00:51:06,487 --> 00:51:09,487\n Belisaire, enough is enough,\n let me out.\n\n596\n00:51:15,087 --> 00:51:16,766\n Let me out !\n\n597\n00:51:18,807 --> 00:51:19,946\n What has happened ?\n\n598\n00:51:20,247 --> 00:51:23,447\n The Spotted Leopard !\n\n599\n00:51:23,887 --> 00:51:24,866\n Belisaire ?\n\n600\n00:51:26,367 --> 00:51:28,367\n You found the body,\n and completed your mission.\n\n601\n00:51:28,767 --> 00:51:30,766\n Now, you can return home.\n\n602\n00:51:31,000 --> 00:51:32,726\n Why ?\n\n603\n00:51:32,727 --> 00:51:35,000\n I'm tired of seeing my wife\n disguised as a kitchen maid !\n\n604\n00:51:35,167 --> 00:51:36,926\n As to your other activities,\n I hold my tongue.\n\n605\n00:51:36,927 --> 00:51:39,927\n Always cooking for others,\n but never for me.\n\n606\n00:51:40,000 --> 00:51:44,300\n You forget my chicken in salt.\n - That was ten years ago.\n\n607\n00:51:46,000 --> 00:51:49,500\n And, most important, I must\n repeat - Christmas is here..\n\n608\n00:51:50,000 --> 00:51:53,900\n The children want to hear the\n chiming of the bells.\n\n609\n00:51:54,000 --> 00:51:55,900\n Comes from their Swiss side,\n without a doubt.\n\n610\n00:51:56,100 --> 00:51:58,700\n I'd like to take a look at\n the autopsy photos.\n\n611\n00:52:00,600 --> 00:52:03,100\n This is a dancer.\n - Pardon ?\n\n612\n00:52:03,250 --> 00:52:05,750\n The victim was a dancer.\n Look at her feet.\n\n613\n00:52:06,100 --> 00:52:10,000\n See if any dancers recognise\n her, but not classical.\n\n614\n00:52:10,250 --> 00:52:12,500\n Why not classical ?\n\n615\n00:52:12,750 --> 00:52:15,600\n A classical dancer's feet\n would show more punishment.\n\n616\n00:52:15,800 --> 00:52:19,300\n Impressive, Holmes.\n - Elementary, my dear Watson.\n\n617\n00:52:21,000 --> 00:52:23,700\n Now, there is no question of\n me being taken off the case.\n\n618\n00:52:23,800 --> 00:52:26,700\n Nor away from the fancy men\n who gather round you.\n\n619\n00:52:26,800 --> 00:52:29,500\n Oh ! You are jealous ?\n\n620\n00:52:31,500 --> 00:52:33,000\n I think that's sweet !\n\n621\n00:52:35,000 --> 00:52:37,750\n Well, now,\n my dear Colonel Beresford,...\n\n622\n00:52:37,800 --> 00:52:41,000\n ..while this was delightful,\n I must return to my kitchen.\n\n623\n00:52:44,000 --> 00:52:46,000\n You forget one thing :..\n\n624\n00:52:46,450 --> 00:52:50,000\n having found the body puts\n you in a difficult position.\n\n625\n00:52:51,000 --> 00:52:54,250\n You are my number one suspect.\n I must hold you in custody.\n\n626\n00:52:56,200 --> 00:52:58,750\n I will notify your employer.\n\n627\n00:52:59,000 --> 00:53:00,750\n In custody - throughout\n the night ?\n\n628\n00:53:01,200 --> 00:53:03,700\n Yes. But not in a police cell.\n\n629\n00:53:04,100 --> 00:53:08,100\n You always yield to temptation !\n\n630\n00:53:09,000 --> 00:53:11,500\n Especially when driven by envy.\n\n631\n00:53:56,200 --> 00:53:57,800\n Ah, there you are.\n\n632\n00:53:58,000 --> 00:54:01,400\n You free from police custody ?\n How was it ?\n\n633\n00:54:02,000 --> 00:54:06,200\n It was fine. But I never\n thought I'd be held like that.\n\n634\n00:54:08,000 --> 00:54:10,300\n What is this place ?\n - My old workshop.\n\n635\n00:54:30,000 --> 00:54:32,500\n Nothing has been finished\n here for two years.\n\n636\n00:54:33,000 --> 00:54:35,000\n You abandoned it\n just on a whim ?\n\n637\n00:54:35,300 --> 00:54:38,500\n No. I felt the need to see\n some Mediterranean light.\n\n638\n00:54:44,000 --> 00:54:45,750\n You will wait for me ?\n\n639\n00:54:46,367 --> 00:54:49,367\n What is it this time ?\n\n640\n00:54:56,327 --> 00:54:59,327\n < I must talk with you.\n -< Have you heard anything ?\n\n641\n00:54:59,807 --> 00:55:02,807\n < I think that the victim\n might be Martina.\n\n642\n00:55:03,927 --> 00:55:06,927\n Martina ?\n - Her telegram was so weird.\n\n643\n00:55:07,407 --> 00:55:09,966\n After she'd already written\n that she was coming.\n\n644\n00:55:10,067 --> 00:55:13,367\n I should tell the police.\n - It's nothing to do with them.\n\n645\n00:55:15,287 --> 00:55:17,887\n < I am worried.\n I don't know what to do.\n\n646\n00:55:18,007 --> 00:55:21,007\n Just say nothing. Do nothing.\n\n647\n00:55:30,367 --> 00:55:32,367\n I was told you have a fondness\n for painting women.\n\n648\n00:55:32,927 --> 00:55:36,927\n No. I don't paint women,\n I acquire them.\n\n649\n00:55:38,367 --> 00:55:42,367\n It is the sea I paint.\n The stones, the light.\n\n650\n00:55:44,047 --> 00:55:45,747\n But not people.\n - No, not people.\n\n651\n00:55:47,447 --> 00:55:49,847\n They are too complicated.\n - Mm...\n\n652\n00:55:51,687 --> 00:55:54,687\n I don't understand why\n a woman like you is here.\n\n653\n00:55:55,447 --> 00:55:57,406\n What do you want me to say ?\n\n654\n00:55:57,407 --> 00:55:59,526\n Say nothing at all.\n\n655\n00:55:59,527 --> 00:56:01,246\n So many prejudices,\n for an artist !\n\n656\n00:56:01,247 --> 00:56:04,247\n Do you like making beds,\n working in the kitchen ?\n\n657\n00:56:05,087 --> 00:56:07,887\n Well enough. Cooking\n requires imagination..\n\n658\n00:56:07,888 --> 00:56:11,287\n ..and the rest of it satisfies\n my taste for order.\n\n659\n00:56:13,047 --> 00:56:16,047\n I would like to paint\n your portrait, one day.\n\n660\n00:56:22,227 --> 00:56:26,706\n There she is ! A spy !\n Grab her !\n\n661\n00:56:26,767 --> 00:56:28,767\n A SPY !\n\n662\n00:56:28,807 --> 00:56:31,726\n Tie her to the pole !\n Dirty spy ! Quickly !\n\n663\n00:56:32,407 --> 00:56:35,407\n SPY !\n\n664\n00:56:56,127 --> 00:56:58,127\n Aim for the heart !\n\n665\n00:56:58,727 --> 00:57:01,526\n Die ! Die, you bitch !\n\n666\n00:57:02,567 --> 00:57:03,726\n Aim !\n\n667\n00:57:05,727 --> 00:57:07,446\n Fire !\n\n668\n00:57:25,447 --> 00:57:27,447\n Thank you for coming.\n\n669\n00:57:31,807 --> 00:57:34,726\n Excuse me, I am moved...\n\n670\n00:57:34,727 --> 00:57:38,727\n because I haven't entered here\n since the death of Edmond.\n\n671\n00:57:40,927 --> 00:57:44,927\n He wrote to me,\n just before his death.\n\n672\n00:57:45,007 --> 00:57:48,407\n He had met a Russian woman,\n Martina. They were getting married.\n\n673\n00:57:49,807 --> 00:57:54,807\n I learnt of his death just\n after receiving the letter.\n\n674\n00:57:54,887 --> 00:57:57,766\n I didn't know what became\n of this Martina.\n\n675\n00:57:57,767 --> 00:58:00,767\n I only knew her first name,\n and I forgot about her.\n\n676\n00:58:02,527 --> 00:58:05,527\n But, a few weeks ago, I\n received a letter from Lyon..\n\n677\n00:58:06,847 --> 00:58:09,847\n ..signed Martina Charpentier.\n\n678\n00:58:12,447 --> 00:58:15,847\n ''... I hope this letter does\n not distress you.\n\n679\n00:58:16,447 --> 00:58:19,447\n ''I don't even know if Edmond\n told you of our marriage.\n\n680\n00:58:20,287 --> 00:58:23,287\n ''After his death, I found it\n too hard to write to you.\n\n681\n00:58:23,927 --> 00:58:26,927\n ''I have rebuilt my life, but\n my situation has changed.\n\n682\n00:58:27,807 --> 00:58:30,807\n ''I am writing to you\n because of my son.\n\n683\n00:58:31,047 --> 00:58:36,347\n ''He is your brother's child.\n I don't have the means to raise him.\n\n684\n00:58:36,567 --> 00:58:39,406\n ''I am spending a few weeks\n in France.\n\n685\n00:58:39,407 --> 00:58:42,407\n ''May we meet up ? I don't\n want to cause you pain.''\n\n686\n00:58:44,047 --> 00:58:46,926\n I loved Edmond very much.\n\n687\n00:58:46,927 --> 00:58:51,927\n He was my favourite brother.\n Then, the idea he had a son...\n\n688\n00:58:52,287 --> 00:58:55,287\n I invited this woman to our\n house, for the end of November.\n\n689\n00:58:55,727 --> 00:58:58,727\n So she could meet the family ?\n - Yes, that's right.\n\n690\n00:58:59,167 --> 00:59:01,846\n I just wanted them all\n to meet her.\n\n691\n00:59:01,847 --> 00:59:04,847\n Augustin didn't take\n the matter seriously.\n\n692\n00:59:05,287 --> 00:59:07,286\n Raphael was very sceptical.\n\n693\n00:59:07,287 --> 00:59:10,287\n Frederick was the only one\n to believe it, with me.\n\n694\n00:59:10,527 --> 00:59:12,806\n Then what happened ?\n\n695\n00:59:15,007 --> 00:59:17,807\n The day when she was expected,\n I received a telegram.\n\n696\n00:59:18,007 --> 00:59:20,607\n ''Sorry. Problems.\n Have to leave...''\n\n697\n00:59:20,767 --> 00:59:22,726\n And then, nothing more.\n\n698\n00:59:22,727 --> 00:59:25,727\n So, when you told me\n this woman..\n\n699\n00:59:25,967 --> 00:59:28,926\n ..was foreign, I thought..\n\n700\n00:59:28,927 --> 00:59:31,126\n ..that perhaps it was her.\n\n701\n00:59:31,127 --> 00:59:33,046\n And, since then, the thought\n has obsessed me.\n\n702\n00:59:34,047 --> 00:59:35,946\n With regard to strangers,..\n\n703\n00:59:35,947 --> 00:59:38,647\n ..what do you make of this\n Mme. Beresford ?\n\n704\n00:59:39,207 --> 00:59:40,886\n Prudence ?\n\n705\n00:59:40,888 --> 00:59:43,887\n I've not given her any thought,\n have you ?\n\n706\n00:59:44,927 --> 00:59:49,927\n < She is an efficient woman\n and certainly highly intelligent.\n\n707\n00:59:49,947 --> 00:59:51,446\n And your brothers ?\n\n708\n00:59:51,448 --> 00:59:53,886\n Your father ?\n\n709\n00:59:54,090 --> 00:59:58,087\n They are all of one mind.\n She has bewitched them all.\n\n710\n00:59:58,207 --> 01:00:01,007\n My God, I will strangle her !\n - Pardon me ?\n\n711\n01:00:02,607 --> 01:00:04,607\n < Oh, nothing. Don't torment\n yourself. We will soon..\n\n712\n01:00:04,608 --> 01:00:07,287\n ..clear this matter up.\n You were right to talk to me.\n\n713\n01:00:16,527 --> 01:00:18,846\n What are you going to do ?\n\n714\n01:00:18,847 --> 01:00:20,606\n Check the whereabouts of\n the three brothers..\n\n715\n01:00:20,707 --> 01:00:23,807\n ..and go through the entire\n house with a fine tooth comb.\n\n716\n01:00:25,087 --> 01:00:27,887\n I have an idea that\n she might be a dancer...\n\n717\n01:00:28,007 --> 01:00:29,886\n It was my idea, Belisaire !\n\n718\n01:00:29,887 --> 01:00:33,287\n To be fair, Prudence had the\n idea of asking among dancers..\n\n719\n01:00:33,387 --> 01:00:36,206\n ..to find the solution.\n\n720\n01:00:36,307 --> 01:00:39,566\n Distribute photos of the victim.\n\n721\n01:00:59,807 --> 01:01:04,807\n Hop it ! You've no right here.\n Out !\n\n722\n01:01:12,447 --> 01:01:15,446\n Lieut. Margaret Brown !\n\n723\n01:01:17,007 --> 01:01:20,007\n From the intelligence\n service to here !\n\n724\n01:01:28,087 --> 01:01:30,487\n This could be anyone.\n\n725\n01:01:32,087 --> 01:01:35,887\n One of your dancers hasn't\n suddenly disappeared ?\n\n726\n01:01:38,247 --> 01:01:41,247\n Colonel, the girls here come\n and go like the wind.\n\n727\n01:01:42,287 --> 01:01:47,287\n Did one of them leave...\n around the end of November ?\n\n728\n01:01:47,587 --> 01:01:51,287\n Anna Karenine.\n - A Russian ?\n\n729\n01:01:51,527 --> 01:01:54,527\n Yes, maybe Polish.\n Here, it's the Foreign Legion.\n\n730\n01:01:57,407 --> 01:01:59,786\n Anna Karenine. She left here\n at the end of November.\n\n731\n01:02:01,247 --> 01:02:04,247\n She said she wanted to be\n reconciled with her husband.\n\n732\n01:02:04,447 --> 01:02:06,986\n She went to meet with him\n somewhere in the country.\n\n733\n01:02:07,287 --> 01:02:10,287\n She worked with you,\n how long ?\n\n734\n01:02:11,247 --> 01:02:14,247\n Six weeks, almost.\n Just an ordinary girl.\n\n735\n01:02:14,747 --> 01:02:17,206\n She said she was going on a\n cruise with an Englishman.\n\n736\n01:02:17,207 --> 01:02:19,926\n In any event,\n it was just a story.\n\n737\n01:02:19,927 --> 01:02:22,886\n I think she was Polish.\n\n738\n01:02:22,890 --> 01:02:24,887\n And Catholic :\n she never missed Mass.\n\n739\n01:02:24,888 --> 01:02:26,806\n That's a point.\n\n740\n01:02:26,807 --> 01:02:28,566\n Only the Polish still believe.\n\n741\n01:02:28,567 --> 01:02:30,526\n She was still a liar.\n\n742\n01:02:30,527 --> 01:02:31,946\n I don't agree.\n\n743\n01:02:38,687 --> 01:02:41,687\n The policemen from the other\n day want to interrogate you.\n\n744\n01:02:41,767 --> 01:02:42,996\n Pardon ?\n\n745\n01:02:43,527 --> 01:02:45,966\n THEY WANT TO INTERROGATE YOU !\n\n746\n01:02:47,527 --> 01:02:48,666\n Please excuse me.\n\n747\n01:02:48,767 --> 01:02:50,867\n Your orange juice is\n in the kitchen.\n\n748\n01:02:53,007 --> 01:02:55,526\n Where did you get Mme. Beresford ?\n From an agency ?\n\n749\n01:02:55,527 --> 01:02:58,527\n No. A friend of a former maid\n told her..\n\n750\n01:02:58,807 --> 01:03:01,646\n ..that we had a place free.\n -< So, you engaged..\n\n751\n01:03:01,647 --> 01:03:03,926\n ..a stranger who barely arrived..\n\n752\n01:03:03,927 --> 01:03:06,646\n ..before digging up a corpse !\n\n753\n01:03:06,647 --> 01:03:09,647\n Why don't you stop picking\n on your sister ?\n\n754\n01:03:10,527 --> 01:03:13,166\n < Look here, medical man,\n you've got a fine cheek..\n\n755\n01:03:13,167 --> 01:03:16,167\n ..you're the one who told\n Emma to talk to the police.\n\n756\n01:03:18,927 --> 01:03:22,127\n Don't be so insulting.\n - Now the police are holding us.\n\n757\n01:03:22,147 --> 01:03:25,047\n < They think we are responsible\n for Martina's disappearance.\n\n758\n01:03:26,127 --> 01:03:27,806\n < If she is the dead woman...\n\n759\n01:03:27,807 --> 01:03:29,526\n I'm going to see your father.\n\n760\n01:03:29,527 --> 01:03:33,827\n The cake was delicious.\n - Mme. Beresford baked it.\n\n761\n01:03:34,207 --> 01:03:37,207\n The number of recipes\n I have remembered !\n\n762\n01:03:37,767 --> 01:03:40,486\n It's like skiing,\n one never forgets.\n\n763\n01:03:40,487 --> 01:03:42,726\n I doubt this will help to\n advance the investigation.\n\n764\n01:03:43,327 --> 01:03:46,327\n But you have forgotten\n one fundamental thing.\n\n765\n01:03:47,767 --> 01:03:50,766\n Oh yes ? What's that ?\n - My birthday.\n\n766\n01:03:50,767 --> 01:03:54,767\n I don't know what to think.\n It's the 1st time you've forgotten.\n\n767\n01:03:54,847 --> 01:03:56,826\n Is it the 22nd ?\n\n768\n01:03:56,827 --> 01:03:59,327\n The 22nd of December, the\n birth of Belisaire Beresford.\n\n769\n01:03:59,927 --> 01:04:02,927\n Oh sweet Jesus !\n\n770\n01:04:06,487 --> 01:04:09,487\n You will have to accompany me\n to the police station, madam.\n\n771\n01:04:09,667 --> 01:04:12,467\n Very well, monsieur.\n I will get my coat.\n\n772\n01:04:14,167 --> 01:04:18,167\n Any news, M. Snowshoe ?\n - Patience, patience.\n\n773\n01:04:19,227 --> 01:04:20,886\n The little ones are charming.\n - Very.\n\n774\n01:04:20,887 --> 01:04:23,387\n I want to manufacture\n a few false clues for them.\n\n775\n01:04:24,087 --> 01:04:26,087\n I don't understand.\n - I will leave a note, like..\n\n776\n01:04:26,127 --> 01:04:29,127\n ..''Martina, if you wish to live,\n stay away from the chateau.''\n\n777\n01:04:31,927 --> 01:04:33,086\n Why would you do that ?\n\n778\n01:04:33,187 --> 01:04:37,087\n The poor things, they ferret\n around and remain empty-handed.\n\n779\n01:04:38,067 --> 01:04:38,846\n A clue would..\n\n780\n01:04:38,847 --> 01:04:40,766\n ..place them in danger.\n\n781\n01:04:41,567 --> 01:04:44,567\n You do realise a murderer\n is perhaps in there ?\n\n782\n01:04:47,327 --> 01:04:51,327\n Monsieur, this is Huguette,\n one of Margaret Brown's dancers.\n\n783\n01:04:51,647 --> 01:04:54,566\n I have received a card from\n Anna.\n\n784\n01:04:54,567 --> 01:04:56,566\n Anna Karenine ?\n -*From Saint-Barth'.\n\n785\n01:04:57,267 --> 01:04:58,766\n When did she post it ?\n\n786\n01:04:58,867 --> 01:05:01,767\n The date-stamp... Wait...\n\n787\n01:05:01,927 --> 01:05:04,927\n 14 or 17 December,\n it's not very clear.\n\n788\n01:05:06,247 --> 01:05:09,547\n 17 December ?\n -*It was true about the Englishman.\n\n789\n01:05:12,047 --> 01:05:14,446\n Exit Anna Karenine.\n\n790\n01:05:14,547 --> 01:05:17,047\n A dancer has received a card\n from her in the West Indies.\n\n791\n01:05:18,327 --> 01:05:21,327\n So, we come back to\n Martina Charpentier.\n\n792\n01:05:21,687 --> 01:05:23,687\n The widow who didn't show up.\n\n793\n01:05:24,047 --> 01:05:27,406\n Everything points to the\n Charpentier children..\n\n794\n01:05:27,407 --> 01:05:30,186\n ..deciding not to split their\n inheritance..\n\n795\n01:05:30,187 --> 01:05:32,726\n ..with the new heir.\n\n796\n01:05:32,727 --> 01:05:36,727\n Let's find out which of them\n profits most from the crime.\n\n797\n01:05:37,327 --> 01:05:40,327\n As long as Old Man Charpentier\n lives, no-one will benefit.\n\n798\n01:05:42,607 --> 01:05:45,346\n I wonder if Dr. Lagarde \n ever suspected..\n\n799\n01:05:45,547 --> 01:05:48,847\n ..that someone attempted to\n kill the old man ?\n\n800\n01:05:49,887 --> 01:05:52,387\n His symptoms were the same as\n poisoning with arsenic.\n\n801\n01:05:52,807 --> 01:05:55,207\n We know that a number of people\n would be interested in...\n\n802\n01:05:55,727 --> 01:05:57,686\n What shall we say...\n\n803\n01:05:57,687 --> 01:05:59,846\n Hastening his demise.\n\n804\n01:06:00,847 --> 01:06:03,847\n Mm... But the poisoner,\n after he had failed,..\n\n805\n01:06:04,047 --> 01:06:07,047\n ..would have increased the dose.\n But he didn't.\n\n806\n01:06:07,327 --> 01:06:10,327\n Yes, that doesn't make sense.\n Curious !\n\n807\n01:06:10,527 --> 01:06:15,527\n You've been their doctor,\n how long ?\n\n808\n01:06:16,567 --> 01:06:18,567\n M. Charpentier was my first\n patient after my arrival,..\n\n809\n01:06:18,967 --> 01:06:20,846\n ..following the death of my wife.\n\n810\n01:06:34,127 --> 01:06:35,886\n Is something wrong ?\n\n811\n01:06:36,287 --> 01:06:38,487\n I'm the only one without an\n alibi. That worries me.\n\n812\n01:06:39,047 --> 01:06:42,047\n Raphael was able to provide\n a detailed timetable.\n\n813\n01:06:43,487 --> 01:06:45,746\n Augustin was, of course,\n with a girl.\n\n814\n01:06:46,447 --> 01:06:47,866\n Why do you say ''of course'' ?\n\n815\n01:06:48,167 --> 01:06:50,567\n He is a womaniser,\n haven't you noticed ?\n\n816\n01:06:51,107 --> 01:06:54,807\n Beneath his air of being an\n artist, he has no feelings.\n\n817\n01:06:55,087 --> 01:06:59,087\n Apart from Emma, he doesn't like people.\n - What were you doing, that day ?\n\n818\n01:07:00,367 --> 01:07:03,766\n The passage of my days\n don't interest me any.\n\n819\n01:07:03,767 --> 01:07:05,846\n < What is there worth\n remembering ?\n\n820\n01:07:05,847 --> 01:07:08,526\n It seems to me you should\n try to remember.\n\n821\n01:07:09,527 --> 01:07:11,527\n I don't much like looking back.\n\n822\n01:07:20,207 --> 01:07:22,806\n It is good having you here.\n\n823\n01:07:23,407 --> 01:07:26,107\n You are cheerful, joyful.\n You are always singing.\n\n824\n01:07:26,807 --> 01:07:28,806\n Especially when I am cooking.\n\n825\n01:07:29,307 --> 01:07:31,126\n Meals are like plants.\n\n826\n01:07:31,427 --> 01:07:34,127\n They are better with a song.\n\n827\n01:07:35,267 --> 01:07:38,267\n For me, cooking is rather\n like jazz.\n\n828\n01:07:40,847 --> 01:07:44,847\n Beef on a string, where you\n mix raw and cooked meat,..\n\n829\n01:07:44,907 --> 01:07:48,646\n ..is rather like mouthing\n a trumpet.\n\n830\n01:07:48,767 --> 01:07:51,086\n The way it boils !\n\n831\n01:07:53,087 --> 01:07:55,787\n As for oysters,\n as the Martyr tells us,..\n\n832\n01:07:55,887 --> 01:07:59,487\n ..they are like the first\n Christians, eaten by lions,..\n\n833\n01:08:01,807 --> 01:08:03,166\n ..only a requiem will do !\n\n834\n01:08:04,167 --> 01:08:07,166\n You enliven the kitchen.\n You remind me of my wife.\n\n835\n01:08:07,267 --> 01:08:10,667\n She spread joy everywhere, and\n was not intimidated by my father.\n\n836\n01:08:12,547 --> 01:08:14,547\n In fact, she got on well\n with him.\n\n837\n01:08:16,047 --> 01:08:17,766\n But not you ?\n\n838\n01:08:17,767 --> 01:08:20,486\n He is obsessed with money.\n\n839\n01:08:20,487 --> 01:08:23,487\n He is sitting on a pile of gold\n without being able to touch it.\n\n840\n01:08:35,527 --> 01:08:37,527\n Name of God ! They even run\n between your feet.\n\n841\n01:08:40,927 --> 01:08:43,927\n Do you enjoy hunting ?\n - No, only killing.\n\n842\n01:08:45,327 --> 01:08:46,726\n You've been running.\n - Yes...\n\n843\n01:08:46,727 --> 01:08:48,727\n You have red cheeks,\n I like that a lot.\n\n844\n01:08:53,527 --> 01:08:56,527\n What ? Madam prefers\n older men, perhaps ?\n\n845\n01:08:57,407 --> 01:09:01,407\n Your younger brothers are\n not bad. Excuse me.\n\n846\n01:09:18,287 --> 01:09:20,887\n Colonel Snowshoe,\n we have found a clue.\n\n847\n01:09:23,847 --> 01:09:26,847\n It is proof that Martina\n was coming here.\n\n848\n01:09:26,927 --> 01:09:29,727\n That proves she was the woman\n in the sarcophagus, doesn't it ?\n\n849\n01:09:30,347 --> 01:09:32,766\n It's possible.\n Where did you find this ?\n\n850\n01:09:33,767 --> 01:09:35,767\n In the laundry room. We wore\n gloves, for the fingerprints.\n\n851\n01:09:36,727 --> 01:09:37,886\n You have done well.\n\n852\n01:09:38,487 --> 01:09:39,946\n Remember to relax your fingers.\n\n853\n01:09:40,087 --> 01:09:44,087\n You need to press the tip of\n your finger, but not so it hurts.\n\n854\n01:09:45,247 --> 01:09:47,006\n Monsieur Snowshoe...\n\n855\n01:09:50,087 --> 01:09:52,046\n Softly.\n\n856\n01:09:58,047 --> 01:10:01,047\n Without touching\n the other fingers.\n\n857\n01:10:06,047 --> 01:10:09,547\n I have come to see your sister,\n but first I have a question..\n\n858\n01:10:09,787 --> 01:10:12,606\n ..to ask madam.\n\n859\n01:10:12,608 --> 01:10:14,286\n I am in the way.\n\n860\n01:10:14,287 --> 01:10:17,287\n But we'll resume later.\n You have real potential.\n\n861\n01:10:22,267 --> 01:10:24,767\n Don't look so disapproving.\n\n862\n01:10:25,527 --> 01:10:28,927\n I have the right to learn the\n guitar, even with a nice man.\n\n863\n01:10:33,287 --> 01:10:35,887\n A masterpiece of forgery,\n I tip my hat to you !\n\n864\n01:10:36,447 --> 01:10:39,447\n But the situation is already\n complicated enough as it is.\n\n865\n01:10:40,287 --> 01:10:42,287\n I have never seen this envelope,\n where did you find it ?\n\n866\n01:10:44,207 --> 01:10:46,207\n You didn't write this ?\n - But, no.\n\n867\n01:10:48,447 --> 01:10:50,286\n I don't understand.\n\n868\n01:10:51,287 --> 01:10:52,766\n Do you recognise\n this envelope ?\n\n869\n01:10:52,767 --> 01:10:54,726\n Yes.\n It's the letter that I sent.\n\n870\n01:10:55,727 --> 01:10:56,846\n You have found Martina ?\n\n871\n01:10:57,847 --> 01:10:59,847\n This envelope was found here.\n\n872\n01:11:05,567 --> 01:11:08,567\n You think the woman in the\n sarcophagus really is.. Martina ?\n\n873\n01:11:10,887 --> 01:11:13,206\n It seems probable.\n\n874\n01:11:16,167 --> 01:11:18,867\n It looks as if you are\n leaving us.\n\n875\n01:11:19,007 --> 01:11:20,907\n Are your interrogations\n finished ?\n\n876\n01:11:21,087 --> 01:11:23,966\n Yes. For the moment.\n\n877\n01:11:37,127 --> 01:11:39,486\n He has found out something,\n that one.\n\n878\n01:11:39,487 --> 01:11:41,766\n What was he sniffing\n around for ?\n\n879\n01:11:42,367 --> 01:11:44,766\n Why tell him about Martina ?\n\n880\n01:11:45,767 --> 01:11:47,406\n Yes. Washing our dirty linen\n like that.\n\n881\n01:11:47,407 --> 01:11:49,326\n You should be thanking me,\n actually.\n\n882\n01:11:49,327 --> 01:11:50,566\n And why ?\n\n883\n01:11:50,567 --> 01:11:53,567\n The police would find it\n suspicious if no-one spoke..\n\n884\n01:11:53,607 --> 01:11:56,486\n ..now the dead woman seems\n really to be Martina.\n\n885\n01:11:57,187 --> 01:11:58,946\n What now ?\n\n886\n01:11:59,247 --> 01:12:01,247\n The installation is antiquated.\n\n887\n01:12:40,127 --> 01:12:42,627\n I would never have thought\n it of you.\n\n888\n01:12:45,087 --> 01:12:47,787\n You are trying to ruin me ?\n\n889\n01:12:49,247 --> 01:12:52,247\n Reassure yourself, M. Charpentier,\n it will cost you almost nothing.\n\n890\n01:12:53,007 --> 01:12:57,007\n What do you call ''nothing'' ?\n Name the price ! Name it !\n\n891\n01:13:02,247 --> 01:13:04,286\n Is that true ?!\n\n892\n01:13:05,947 --> 01:13:08,206\n You're not saying it just\n to soft-soap me ?\n\n893\n01:13:09,207 --> 01:13:11,766\n I swear it. On a cross of\n wood, a cross of iron.\n\n894\n01:13:13,367 --> 01:13:15,766\n Oh ! How did you do it ?\n\n895\n01:13:15,767 --> 01:13:17,926\n You are an angel, a pearl !\n\n896\n01:13:17,940 --> 01:13:18,940\n A fairy !\n - Oh !\n\n897\n01:13:19,500 --> 01:13:20,000\n Oh ! Please !\n\n898\n01:13:21,000 --> 01:13:23,200\n You smell of good garlic !\n What a woman !\n\n899\n01:13:23,700 --> 01:13:27,500\n What a waist ! What hips !\n What a chest !\n\n900\n01:13:35,000 --> 01:13:36,600\n Mme. Beresford,...\n\n901\n01:13:36,650 --> 01:13:38,900\n This evening,\n you will dine with us.\n\n902\n01:13:41,000 --> 01:13:42,300\n It's gone again !\n\n903\n01:13:42,800 --> 01:13:45,500\n You will sit next to me.\n\n904\n01:13:58,000 --> 01:14:00,500\n You do not look or act like a\n domestic, Mme. Beresford.\n\n905\n01:14:02,000 --> 01:14:04,500\n Who are you ?\n Where do you come from ?\n\n906\n01:14:05,500 --> 01:14:07,600\n You discover a dead body\n on your arrival..\n\n907\n01:14:07,680 --> 01:14:09,700\n and the police hold us.\n\n908\n01:14:10,000 --> 01:14:12,400\n < I have been watching\n you closely.\n\n909\n01:14:13,000 --> 01:14:14,400\n And I will continue to do so.\n\n910\n01:15:20,000 --> 01:15:21,500\n But what were you doing there ?\n\n911\n01:15:22,000 --> 01:15:23,800\n I wanted to surprise you,\n and it went wrong.\n\n912\n01:15:24,487 --> 01:15:25,726\n Give me some light.\n\n913\n01:15:26,127 --> 01:15:28,127\n Yes. Wait a bit.\n\n914\n01:15:33,287 --> 01:15:35,287\n I didn't want to miss\n our Christmas tradition.\n\n915\n01:15:35,727 --> 01:15:37,326\n I have hurt you !\n\n916\n01:15:37,327 --> 01:15:39,186\n Where is it, the champagne ?\n Ah !\n\n917\n01:15:42,247 --> 01:15:44,447\n Colonel Beresford !\n Mm...\n\n918\n01:15:51,007 --> 01:15:53,606\n Some facts don't hold together.\n\n919\n01:15:54,407 --> 01:15:55,966\n What's that, Prudence ?\n\n920\n01:15:56,167 --> 01:15:59,167\n 1, the envelope addressed to\n Martina was found here.\n\n921\n01:16:00,187 --> 01:16:02,487\n 2, the Martina we found was\n about 20 years old.\n\n922\n01:16:03,767 --> 01:16:06,767\n And 3, the body has the\n feet of a dancer.\n\n923\n01:16:10,047 --> 01:16:12,647\n And our dancer is in the West\n Indies with her Englishman.\n\n924\n01:16:13,247 --> 01:16:15,847\n We were given a false clue,\n and we ran with it !\n\n925\n01:16:18,167 --> 01:16:19,886\n < Mademoiselle Prudence !\n\n926\n01:16:20,487 --> 01:16:22,887\n Yes, I'm coming, I'm coming !\n\n927\n01:16:30,927 --> 01:16:32,006\n Merry Christmas, my dear.\n\n928\n01:16:32,307 --> 01:16:34,307\n Give big hugs to the little\n ones for me.\n\n929\n01:16:35,327 --> 01:16:38,327\n Will you do me up ?\n\n930\n01:16:39,327 --> 01:16:41,727\n Thank you.\n How do I look ?\n\n931\n01:16:42,407 --> 01:16:47,407\n Now you can creep out as\n secretly as you came in.\n\n932\n01:17:01,267 --> 01:17:03,867\n The jewel suits you so well,\n my dear Mme. Beresford.\n\n933\n01:17:05,927 --> 01:17:07,966\n Dear Mme. Beresford.\n - Oh, not again !\n\n934\n01:17:14,687 --> 01:17:16,287\n It looks like Mother's brooch.\n\n935\n01:17:16,467 --> 01:17:17,806\n You're right, actually.\n\n936\n01:17:17,907 --> 01:17:19,786\n It does resemble it, yes.\n\n937\n01:17:19,987 --> 01:17:20,926\n I wonder !\n\n938\n01:17:21,527 --> 01:17:24,527\n Excuse me.\n\n939\n01:17:26,007 --> 01:17:29,007\n Excuse me. An urgent case,\n I must leave you.\n\n940\n01:17:31,687 --> 01:17:33,366\n A shame, I will accompany you.\n - Thank you.\n\n941\n01:17:34,367 --> 01:17:36,746\n This is good, the soup.\n\n942\n01:17:37,447 --> 01:17:40,447\n Ah, main course !\n The capon !...\n\n943\n01:17:43,407 --> 01:17:46,407\n Are your suitcases ready ?\n Not the pyjamas yet.\n\n944\n01:17:47,247 --> 01:17:49,246\n What time is your mother\n getting here tomorrow ?\n\n945\n01:17:50,000 --> 01:17:50,700\n At ten o'clock.\n\n946\n01:17:51,407 --> 01:17:53,407\n <I'm so excited to be going\n skiing at Sils Maria !\n\n947\n01:17:55,127 --> 01:17:56,646\n < Oh, what a mess !\n\n948\n01:17:57,647 --> 01:17:59,326\n < I will miss you, Mme. Poppins.\n\n949\n01:18:00,327 --> 01:18:02,506\n < Will you go there for\n your holiday ?\n\n950\n01:18:11,447 --> 01:18:14,447\n What is wrong, Valerie ?\n - I don't know.\n\n951\n01:18:15,727 --> 01:18:18,406\n Where do you feel bad ?\n - In my stomach.\n\n952\n01:18:19,407 --> 01:18:20,907\n It doesn't feel right.\n\n953\n01:18:23,367 --> 01:18:24,767\n What is happening ?\n\n954\n01:18:25,407 --> 01:18:27,046\n Go and lay down.\n\n955\n01:18:29,047 --> 01:18:30,166\n What is this ?\n I will get help.\n\n956\n01:18:30,167 --> 01:18:31,126\n I am sick !\n\n957\n01:18:31,127 --> 01:18:34,127\n Lay down, I'll be back.\n\n958\n01:18:40,287 --> 01:18:41,286\n Mlle. Charpentier,..\n\n959\n01:18:41,288 --> 01:18:41,887\n ..the little ones are sick.\n\n960\n01:18:44,127 --> 01:18:45,727\n Are you not well ?\n No.\n\n961\n01:18:47,807 --> 01:18:48,766\n I... I'll be back.\n\n962\n01:19:17,887 --> 01:19:21,887\n They are all out of trouble.\n We must identify what happened.\n\n963\n01:19:22,647 --> 01:19:24,647\n You are the only one unaffected.\n Did you eat everything ?\n\n964\n01:19:24,687 --> 01:19:26,687\n Yes, apart from the Yule log,\n I've never liked it.\n\n965\n01:19:26,727 --> 01:19:29,727\n I didn't drink\n any of the champagne.\n\n966\n01:19:32,687 --> 01:19:34,406\n Is there anything left ?\n\n967\n01:19:34,407 --> 01:19:37,407\n No, they left nothing.\n They even sucked the bones.\n\n968\n01:19:39,007 --> 01:19:42,007\n Apart from the candied fruits\n and the carcase of the capon,..\n\n969\n01:19:43,327 --> 01:19:46,327\n ..there is nothing left.\n I also washed the dishes.\n\n970\n01:19:48,567 --> 01:19:52,567\n My God !\n Do you think it's arsenic ?\n\n971\n01:19:53,967 --> 01:19:55,966\n How do you know ?\n\n972\n01:19:55,967 --> 01:19:58,967\n Yes, there's a good chance\n that it is.\n\n973\n01:19:59,727 --> 01:20:03,727\n The killer may be among them,\n pretending to be sick.\n\n974\n01:20:04,767 --> 01:20:08,767\n Could you tell the difference\n between true sickness and fake ?\n\n975\n01:20:09,887 --> 01:20:12,086\n I don't think so, no.\n\n976\n01:20:15,407 --> 01:20:18,407\n I'll call for a nurse. She\n should be here by 8 o'clock.\n\n977\n01:20:19,447 --> 01:20:21,546\n I will prepare something for\n each of them.\n\n978\n01:20:21,547 --> 01:20:23,246\n I will be back\n to see how they are.\n\n979\n01:20:23,847 --> 01:20:25,446\n While I'm away,\n keep your eyes open.\n\n980\n01:20:26,447 --> 01:20:29,447\n Especially on Emma.\n  - Yes, count on me.\n\n981\n01:20:34,647 --> 01:20:36,647\n I never thought I'd have to\n work on Christmas Day !\n\n982\n01:20:37,447 --> 01:20:39,566\n It's Mlle. Emma\n I feel sorry for.\n\n983\n01:20:40,567 --> 01:20:42,867\n I said to Mme. Beresford that\n the lobsters were worthless.\n\n984\n01:20:43,007 --> 01:20:46,007\n But she replied : ''No,\n the lobsters are very fresh.''\n\n985\n01:20:47,367 --> 01:20:51,367\n Who can say, with all the\n pollutants thrown in the sea.\n\n986\n01:20:53,567 --> 01:20:55,567\n In any case,\n I wouldn't eat them.\n\n987\n01:20:57,167 --> 01:20:59,167\n All of them\n could have been taken.\n\n988\n01:21:14,047 --> 01:21:16,047\n I am Mme. Valois,\n the mother of Valerie.\n\n989\n01:21:17,087 --> 01:21:18,726\n You've come to collect her ?\n\n990\n01:21:18,727 --> 01:21:21,727\n I wouldn't let your daughter\n come here any more.\n\n991\n01:21:21,747 --> 01:21:24,047\n Mme. Valois, I will take you\n to Valerie.\n\n992\n01:21:25,207 --> 01:21:28,007\n The house has suffered from\n a bout of food poisoning..\n\n993\n01:21:28,187 --> 01:21:29,246\n ..but Valerie is doing well.\n\n994\n01:21:31,247 --> 01:21:34,247\n Both she and Alexie are ready\n to leave. Follow me.\n\n995\n01:21:40,127 --> 01:21:41,406\n Ah ! My little girl !\n\n996\n01:21:42,407 --> 01:21:43,846\n What happened to you ?\n\n997\n01:21:46,607 --> 01:21:49,607\n I must tell you. Alexie's\n papa had a brother..\n\n998\n01:21:50,567 --> 01:21:53,567\n ..who is dead,\n and his wife...\n\n999\n01:22:00,527 --> 01:22:02,927\n Get Emma to send the nurse away,\n her charges will ruin me !\n\n1000\n01:22:03,087 --> 01:22:05,566\n That would mean I would have\n to take care of you myself.\n\n1001\n01:22:05,567 --> 01:22:08,406\n And I cannot be everywhere\n at the same time.\n\n1002\n01:22:09,407 --> 01:22:11,046\n Why can't Emma help you ?\n\n1003\n01:22:12,047 --> 01:22:13,506\n She is confined to her bed.\n\n1004\n01:22:13,407 --> 01:22:15,126\n And the others ?\n - The same.\n\n1005\n01:22:15,127 --> 01:22:19,127\n But they are all doing well.\n They are resting.\n\n1006\n01:22:20,047 --> 01:22:22,047\n What is that ?\n - Some bouillon and biscuits.\n\n1007\n01:22:22,127 --> 01:22:26,127\n Take it away. I want meat.\n\n1008\n01:22:27,047 --> 01:22:29,006\n The doctor has forbidden that\n for the moment.\n\n1009\n01:22:29,007 --> 01:22:32,007\n The doctor is an ass, I am well.\n Bring me meat !\n\n1010\n01:22:46,207 --> 01:22:47,646\n May I see Alexie's father ?\n\n1011\n01:22:48,647 --> 01:22:49,566\n Unfortunately,\n he is sick...\n\n1012\n01:22:49,567 --> 01:22:53,567\n My daughter told me about the\n woman in the sarcophagus.\n\n1013\n01:22:53,847 --> 01:22:55,846\n I have to speak to someone\n in the family.\n\n1014\n01:22:56,847 --> 01:22:58,366\n I will ask Mlle. Emma.\n\n1015\n01:22:59,367 --> 01:23:01,367\n Tell her that it's about\n Martina Petrovna.\n\n1016\n01:23:02,887 --> 01:23:04,166\n Martina Petrovna ?\n\n1017\n01:23:04,167 --> 01:23:07,167\n You have heard of Martina ?\n\n1018\n01:23:08,247 --> 01:23:11,247\n It's likely she is the woman\n found in the sarcophagus.\n\n1019\n01:23:12,487 --> 01:23:15,487\n That just isn't possible.\n - How so ?\n\n1020\n01:23:16,487 --> 01:23:18,487\n Because I am Martina Petrovna.\n\n1021\n01:23:27,727 --> 01:23:30,727\n I met Edmond in Damascus.\n\n1022\n01:23:34,127 --> 01:23:38,127\n We were together for a while,\n But then came the split-up.\n\n1023\n01:23:50,047 --> 01:23:52,047\n I was sent to Belgrade.\n\n1024\n01:23:53,167 --> 01:23:56,167\n There I met Valerie's father,\n who was posted down there.\n\n1025\n01:23:58,207 --> 01:23:59,207\n A Frenchman, like Edmond.\n\n1026\n01:24:04,767 --> 01:24:06,467\n You know...\n\n1027\n01:24:06,807 --> 01:24:09,007\n I have never forgotten your\n brother, and...\n\n1028\n01:24:12,007 --> 01:24:13,426\n When I learnt that,\n at boarding school,..\n\n1029\n01:24:13,427 --> 01:24:15,927\n ..my daughter had become\n friends with your niece,..\n\n1030\n01:24:18,387 --> 01:24:21,687\n ..you cannot know how much I\n was moved by this coincidence.\n\n1031\n01:24:23,247 --> 01:24:25,166\n I even thought of writing to you.\n\n1032\n01:24:26,167 --> 01:24:29,167\n And then, I said to myself,\n what good to stir up the past ?\n\n1033\n01:24:31,287 --> 01:24:33,787\n But when my daughter told me\n about the body found here,..\n\n1034\n01:24:33,847 --> 01:24:38,847\n ..I wanted to warn you.\n - Thank you so much.\n\n1035\n01:24:41,847 --> 01:24:43,126\n She is so charming.\n\n1036\n01:24:43,127 --> 01:24:45,206\n So, who was it wrote to me\n using her name ?\n\n1037\n01:24:46,207 --> 01:24:50,207\n Some crook, who then backed\n away from his deception.\n\n1038\n01:24:53,287 --> 01:24:54,826\n What is it,\n Mme. Beresford ?\n\n1039\n01:24:54,827 --> 01:24:57,046\n It is.. your brother, Augustin.\n\n1040\n01:24:57,047 --> 01:24:59,747\n What about Augustin ?\n I thought his condition...\n\n1041\n01:25:02,687 --> 01:25:04,446\n My brother is dead,..\n\n1042\n01:25:04,447 --> 01:25:06,366\n ..do I read you right ?\n\n1043\n01:25:07,367 --> 01:25:09,767\n I thought he was stronger.\n Clearly I was wrong.\n\n1044\n01:25:09,768 --> 01:25:11,886\n You don't seem very upset.\n\n1045\n01:25:11,887 --> 01:25:13,606\n Tears for the dead,\n no thank you !\n\n1046\n01:25:13,607 --> 01:25:17,607\n You are much too sentimental.\n You could become irksome.\n\n1047\n01:25:23,087 --> 01:25:26,087\n What's this I hear ?\n Augustin has breathed his last ?\n\n1048\n01:25:28,287 --> 01:25:30,126\n M. Charpentier,\n please return to your bed.\n\n1049\n01:25:30,127 --> 01:25:33,127\n No need,\n I have never felt better.\n\n1050\n01:25:33,207 --> 01:25:36,207\n So, is it true ?\n Is he really dead ?\n\n1051\n01:25:38,727 --> 01:25:40,646\n The one who was the most\n anxious to inherit.\n\n1052\n01:25:40,647 --> 01:25:42,846\n So much for the artist !\n One down, two to go !\n\n1053\n01:25:42,847 --> 01:25:44,886\n How can you say that ?\n\n1054\n01:25:44,887 --> 01:25:47,887\n Just you see,\n I will bury them all !\n\n1055\n01:25:48,487 --> 01:25:51,487\n Misfortune never comes alone.\n\n1056\n01:25:51,727 --> 01:25:53,727\n Now I can speak out, and\n tell you about these beauties !\n\n1057\n01:25:54,727 --> 01:25:58,727\n Do you want to hear ?\n - No.\n\n1058\n01:26:07,447 --> 01:26:09,447\n What is this ?\n Are you smoking, now ?\n\n1059\n01:26:12,487 --> 01:26:15,487\n These people, Belisaire,\n they are like wolves.\n\n1060\n01:26:18,527 --> 01:26:20,527\n No, not wolves,\n jackals.\n\n1061\n01:26:50,307 --> 01:26:52,686\n Sorry to hear of your brother.\n - Alright.\n\n1062\n01:26:52,687 --> 01:26:54,866\n Madame is home ?\n - She is waiting for you.\n\n1063\n01:26:55,847 --> 01:26:58,046\n < God !\n Camembert and everything ?\n\n1064\n01:27:00,247 --> 01:27:03,247\n Raphael,\n you look utterly dreadful !\n\n1065\n01:27:03,647 --> 01:27:06,606\n You... look resplendent.\n Been out amusing yourself ?\n\n1066\n01:27:06,607 --> 01:27:09,607\n Absolutely everyone is in \n Mauritius now. God !\n\n1067\n01:27:09,707 --> 01:27:11,786\n But you've already spent\n a month there.\n\n1068\n01:27:11,787 --> 01:27:13,766\n Surely not ? A whole month ?\n - Yes.\n\n1069\n01:27:13,767 --> 01:27:15,767\n Oh well, as you say !\n God !\n\n1070\n01:27:27,727 --> 01:27:29,727\n And money is rather tight,\n for the present at least.\n\n1071\n01:27:35,127 --> 01:27:40,127\n In New York, I fell in with\n this crazy woman called Hermeline.\n\n1072\n01:27:40,927 --> 01:27:43,227\n She told the entire table that\n they had found..\n\n1073\n01:27:43,237 --> 01:27:46,247\n ..the body of a woman at\n Vallée-aux-Loups,...\n\n1074\n01:27:46,257 --> 01:27:49,206\n It was just so embarrassing.\n\n1075\n01:27:49,707 --> 01:27:51,926\n But it is true.\n\n1076\n01:27:51,927 --> 01:27:54,927\n Really!\n Who was she, this woman ?\n\n1077\n01:27:55,167 --> 01:27:57,146\n A woman from the East,\n apparently.\n\n1078\n01:27:58,047 --> 01:27:59,046\n A woman from the East !\n\n1079\n01:27:59,147 --> 01:28:02,047\n God !\n I don't feel so good.\n\n1080\n01:28:02,347 --> 01:28:04,246\n It won't keep me from my bed.\n\n1081\n01:28:05,647 --> 01:28:09,247\n Me too.\n I am completely jet-lagged.\n\n1082\n01:28:17,807 --> 01:28:20,086\n I almost forgot...\n\n1083\n01:28:20,087 --> 01:28:22,286\n This is for you.\n\n1084\n01:28:22,287 --> 01:28:24,646\n You have brought me back\n a gift ?\n\n1085\n01:28:24,647 --> 01:28:27,647\n No, it arrived this afternoon\n by Chronopost.\n\n1086\n01:28:31,847 --> 01:28:33,866\n ''Continue the treatment for\n three days.\n\n1087\n01:28:33,867 --> 01:28:35,846\n ''Two tablets in the evening\n before bed.''\n\n1088\n01:28:36,847 --> 01:28:40,547\n Lagarde told me to stop.\n - You must have misunderstood.\n\n1089\n01:28:41,807 --> 01:28:43,807\n In any case,\n it can't do you any harm.\n\n1090\n01:28:45,247 --> 01:28:47,247\n You're right,\n it can't do any harm.\n\n1091\n01:29:26,527 --> 01:29:29,527\n Raphael, God, I'm freezing !\n\n1092\n01:29:54,767 --> 01:29:57,286\n I suspected Augustin,\n and he is dead.\n\n1093\n01:29:58,287 --> 01:30:00,287\n I suspected Raphael,\n and he is dead.\n\n1094\n01:30:00,807 --> 01:30:03,407\n I dare not say I suspect\n Frederic, it might kill him.\n\n1095\n01:30:05,407 --> 01:30:07,407\n As for Emma...\n\n1096\n01:30:08,927 --> 01:30:12,806\n No, let's get back on the\n track of the dancer.\n\n1097\n01:30:12,807 --> 01:30:14,086\n From the start of this case,..\n\n1098\n01:30:14,087 --> 01:30:16,087\n ..we concentrated on\n Martina Charpentier,..\n\n1099\n01:30:17,407 --> 01:30:20,126\n ..because of the faked letter\n we were shown,..\n\n1100\n01:30:20,127 --> 01:30:22,766\n ..let's admit it,\n with heads bowed in shame.\n\n1101\n01:30:27,527 --> 01:30:30,527\n We must find the identity\n of this Anna Karenine.\n\n1102\n01:30:31,407 --> 01:30:33,407\n I believe that will lead us\n to the killer.\n\n1103\n01:30:34,567 --> 01:30:36,567\n The murder is linked to the\n Charpentier family..\n\n1104\n01:30:36,568 --> 01:30:40,247\n ..but not in the way\n we've considered so far.\n\n1105\n01:30:40,767 --> 01:30:42,526\n Don't you think so ?\n\n1106\n01:30:43,527 --> 01:30:45,206\n I understood nothing\n that you said.\n\n1107\n01:30:46,207 --> 01:30:47,766\n Ah well. Me, I have a plan.\n\n1108\n01:30:47,767 --> 01:30:50,767\n Yes sir, I have a plan.\n\n1109\n01:30:52,367 --> 01:30:53,706\n But I don't think I'll tell\n you what it is.\n\n1110\n01:30:57,567 --> 01:31:00,567\n Well, okay.\n It involves Aunt Babette.\n\n1111\n01:31:02,087 --> 01:31:04,006\n With Aunt Babette ?\n - Yes, with her.\n\n1112\n01:31:08,327 --> 01:31:10,606\n < This is the limit !\n\n1113\n01:31:10,607 --> 01:31:14,607\n First, you don't believe me,\n and take me for mad.\n\n1114\n01:31:14,687 --> 01:31:16,687\n Now, you ask me to do\n something embarrassing.\n\n1115\n01:31:16,688 --> 01:31:20,047\n Why should I go and take tea\n with strangers, and..\n\n1116\n01:31:20,067 --> 01:31:23,726\n ..then pretend to feel ill ?\n\n1117\n01:31:24,727 --> 01:31:25,706\n I tell you, I don't like it !\n\n1118\n01:31:25,707 --> 01:31:28,886\n I detest this sort of joke.\n\n1119\n01:31:28,887 --> 01:31:30,566\n This is not about comedy,\n but about murder.\n\n1120\n01:31:30,567 --> 01:31:35,527\n Prudence just asks you to\n follow her instructions.\n\n1121\n01:31:37,367 --> 01:31:39,367\n Aunt Babette !\n No !\n\n1122\n01:31:41,967 --> 01:31:47,967\n Well then, if I've understood\n her instructions,..\n\n1123\n01:31:47,977 --> 01:31:51,727\n ..I engage in a pleasant\n conversation with these toffs...\n\n1124\n01:32:00,647 --> 01:32:02,486\n And suddenly...\n\n1125\n01:32:02,487 --> 01:32:04,487\n Suddenly,\n I have a small problem.\n\n1126\n01:32:06,007 --> 01:32:09,007\n I use some pretext, er,\n I'll invent something,..\n\n1127\n01:32:09,087 --> 01:32:11,687\n ..in order to leave the room.\n\n1128\n01:32:13,847 --> 01:32:16,847\n And then ?\n - You return to the room.\n\n1129\n01:32:18,007 --> 01:32:20,007\n I return, when ?\n - At the signal.\n\n1130\n01:32:20,447 --> 01:32:23,447\n Ah, there'll be a signal ?\n - Mm...\n\n1131\n01:32:26,347 --> 01:32:28,647\n And I can show them\n my Zigoeunus ?\n\n1132\n01:32:32,047 --> 01:32:34,546\n ''Zigoeunus Thomasus moth,\n\n1133\n01:32:34,647 --> 01:32:38,447\n ''..North Sinnamary, French\n Guiana, 28 December 2007''\n\n1134\n01:32:39,087 --> 01:32:41,687\n It is a male.\n Beautiful, isn't he ?\n\n1135\n01:32:42,127 --> 01:32:44,727\n It is the highlight\n of my entire career.\n\n1136\n01:32:45,327 --> 01:32:47,546\n The male lives only\n for a few hours.\n\n1137\n01:32:47,647 --> 01:32:51,447\n Immediately after having\n ''met'' the female,..\n\n1138\n01:32:51,447 --> 01:32:52,826\n ..he dies.\n\n1139\n01:32:55,767 --> 01:32:58,767\n That is why he is so rare\n and difficult to capture.\n\n1140\n01:32:58,807 --> 01:33:02,807\n But there are several\n techniques : the picket line,..\n\n1141\n01:33:02,887 --> 01:33:04,886\n ..the zigzag chase.\n\n1142\n01:33:04,888 --> 01:33:06,566\n Keep it up.\n\n1143\n01:33:07,067 --> 01:33:10,567\n They are capricious creatures,\n sensitive to fragrances :..\n\n1144\n01:33:10,847 --> 01:33:13,446\n ..the patchouli,\n the honeysuckle...\n\n1145\n01:33:13,447 --> 01:33:15,486\n Chanel number 5...\n\n1146\n01:33:15,487 --> 01:33:18,487\n The most important thing for\n the catch is for the hunter..\n\n1147\n01:33:19,407 --> 01:33:22,407\n ..to conceal his shadow.\n\n1148\n01:33:23,527 --> 01:33:25,606\n But I am talking too much...\n\n1149\n01:33:25,607 --> 01:33:29,607\n And I'm not telling you what\n a wonderful home you have !\n\n1150\n01:33:30,707 --> 01:33:32,566\n Something for now.\n\n1151\n01:33:33,567 --> 01:33:36,567\n Oh, how delicious !\n Red mullet on toast.\n\n1152\n01:33:37,767 --> 01:33:39,726\n Quite a change to your diet\n in the Amazon !\n\n1153\n01:33:40,727 --> 01:33:42,246\n You might say so !\n\n1154\n01:33:42,247 --> 01:33:44,747\n But, that said, ants in pate\n are not so bad.\n\n1155\n01:33:47,567 --> 01:33:50,567\n They crack pleasantly\n on the tooth.\n\n1156\n01:33:51,727 --> 01:33:53,086\n And it's very economic.\n\n1157\n01:33:53,087 --> 01:33:54,246\n Do you have the recipe ?\n\n1158\n01:33:54,247 --> 01:33:55,646\n Now.\n\n1159\n01:33:56,647 --> 01:33:58,966\n Mm ! This is delicious.\n\n1160\n01:33:58,967 --> 01:34:01,067\n Would you like some fresh air ?\n - On the contrary.\n\n1161\n01:34:01,167 --> 01:34:03,846\n You look very pale !\n\n1162\n01:34:03,847 --> 01:34:07,647\n I am sorry. I must excuse\n myself for a few moments.\n\n1163\n01:34:08,267 --> 01:34:10,886\n Where is it ?\n\n1164\n01:34:10,887 --> 01:34:12,287\n Through there.\n\n1165\n01:34:23,207 --> 01:34:25,207\n Thank you, Francois,\n for coming.\n\n1166\n01:34:31,647 --> 01:34:33,686\n You look much better.\n You have got back..\n\n1167\n01:34:33,687 --> 01:34:35,966\n ..some of your colour.\n\n1168\n01:34:42,847 --> 01:34:44,726\n What is wrong here ?\n\n1169\n01:34:46,727 --> 01:34:48,727\n Stay calm.\n - Blockage in my throat !\n\n1170\n01:34:50,047 --> 01:34:53,047\n Let me take a look.\n Open your mouth.\n\n1171\n01:34:54,047 --> 01:34:56,726\n Calm yourself.\n Turn towards me.\n\n1172\n01:34:56,727 --> 01:34:58,366\n Tilt your head.\n\n1173\n01:35:02,967 --> 01:35:04,166\n It's him !\n\n1174\n01:35:04,167 --> 01:35:06,766\n The man on the train !\n\n1175\n01:35:07,687 --> 01:35:09,286\n No, no.\n Say nothing more.\n\n1176\n01:35:09,887 --> 01:35:10,886\n You didn't think..\n\n1177\n01:35:10,887 --> 01:35:13,387\n ..that a witness saw you\n strangle that woman.\n\n1178\n01:35:14,447 --> 01:35:17,447\n My aunt, Babette Boutiti,\n saw you.\n\n1179\n01:35:18,687 --> 01:35:20,446\n She was on the train..\n\n1180\n01:35:20,447 --> 01:35:22,126\n ..that ran beside your own.\n\n1181\n01:35:22,127 --> 01:35:24,686\n Suddenly, she saw...\n\n1182\n01:35:35,207 --> 01:35:37,006\n Mme. Beresford,\n I know you have been..\n\n1183\n01:35:37,007 --> 01:35:39,886\n ..overworked recently,\n but now,..\n\n1184\n01:35:39,887 --> 01:35:41,926\n ..you must be delirious.\n - No, not at all !\n\n1185\n01:35:42,927 --> 01:35:44,926\n Why would I strangle a woman\n unknown to me ?\n\n1186\n01:35:44,927 --> 01:35:47,406\n Unknown ?\n\n1187\n01:35:49,587 --> 01:35:51,587\n This woman, on the contrary,..\n\n1188\n01:35:51,588 --> 01:35:53,946\n ..you knew very well.\n\n1189\n01:35:54,447 --> 01:35:56,926\n She was your wife.\n\n1190\n01:36:11,287 --> 01:36:13,587\n He wanted to marry you,\n but he was already married..\n\n1191\n01:36:15,167 --> 01:36:17,667\n ..to Anna Stravinska, known \n as Anna Karenine.\n\n1192\n01:36:18,327 --> 01:36:21,327\n A dancer\n who refused him a divorce.\n\n1193\n01:36:24,067 --> 01:36:26,086\n I thought he was a widower.\n\n1194\n01:36:26,187 --> 01:36:28,766\n And I thought\n you were a widow.\n\n1195\n01:36:28,768 --> 01:36:31,767\n Not a widow, not a domestic,\n not a cook.\n\n1196\n01:36:31,769 --> 01:36:33,126\n And this is my last service.\n\n1197\n01:36:34,127 --> 01:36:36,127\n Emma, you talked to him about\n Edmond ?\n\n1198\n01:36:38,287 --> 01:36:40,246\n And that was when\n he got an idea.\n\n1199\n01:36:41,247 --> 01:36:44,926\n He wrote to you a letter,\n and signed it ''Martina'',..\n\n1200\n01:36:44,927 --> 01:36:47,927\n ..killed his wife, and hid the\n body in the sarcophagus,..\n\n1201\n01:36:48,407 --> 01:36:51,246\n ..and, thanks to that letter,\n we were led astray,..\n\n1202\n01:36:51,247 --> 01:36:55,247\n ..and the body was identified\n as that of Martina.\n\n1203\n01:37:08,127 --> 01:37:10,127\n < And so, the family was\n implicated in the murder,..\n\n1204\n01:37:10,167 --> 01:37:14,167\n ..while he prepared for\n his next step.\n\n1205\n01:37:18,647 --> 01:37:20,947\n < He planned to kill all your\n brothers, and incriminate..\n\n1206\n01:37:20,948 --> 01:37:23,826\n ..the one who remained :..\n\n1207\n01:37:23,827 --> 01:37:25,826\n ..your father.\n\n1208\n01:37:25,927 --> 01:37:28,877\n So that you would be very rich\n by the time he married you.\n\n1209\n01:37:28,887 --> 01:37:31,887\n If it had been me who died on\n Christmas night, his plan..\n\n1210\n01:37:31,886 --> 01:37:34,127\n ..would have fallen apart.\n But I was too strong.\n\n1211\n01:37:34,247 --> 01:37:36,286\n He gave you a small dose\n of arsenic.\n\n1212\n01:37:36,287 --> 01:37:40,266\n Just enough to give you\n stomach pains.\n\n1213\n01:37:40,967 --> 01:37:43,806\n < The next day, the nurse,\n without knowing it,..\n\n1214\n01:37:43,807 --> 01:37:46,807\n ..gave Augustin the fatal\n dosage prepared by the doctor.\n\n1215\n01:37:48,808 --> 01:37:51,407\n Then it was only necessary\n to send Raphael his dosage..\n\n1216\n01:37:52,527 --> 01:37:53,806\n What a bastard !\n -< You should thank him !\n\n1217\n01:37:53,807 --> 01:37:55,086\n You owe him a debt of gratitude.\n\n1218\n01:37:55,087 --> 01:37:59,086\n All he brought me was trouble.\n\n1219\n01:37:59,087 --> 01:38:01,246\n A sarcophagus in pieces...\n\n1220\n01:38:01,247 --> 01:38:02,966\n And all the rest !\n\n1221\n01:38:02,967 --> 01:38:05,967\n You, your fortune has\n frankly doubled !\n\n1222\n01:38:14,367 --> 01:38:17,367\n They love their money,\n this family.\n\n1223\n01:38:33,207 --> 01:38:35,526\n I have avoided Christmas\n with the family !\n\n1224\n01:38:43,647 --> 01:38:45,726\n They are they still here.\n\n1225\n01:38:46,727 --> 01:38:48,846\n They said they were leaving !\n\n1226\n01:38:48,847 --> 01:38:50,847\n Perhaps they decided to stay\n for New Year's.\n\n1227\n01:38:57,327 --> 01:39:00,206\n Are there now ten of them ?\n\n1228\n01:39:00,207 --> 01:39:02,226\n No, just the two.\n\n1229\n01:39:07,287 --> 01:39:09,287\n And two can make this row ?\n\n1230\n01:39:09,407 --> 01:39:12,407\n Aunt Babette doesn't know\n how lucky she is.\n\n1231\n01:39:13,607 --> 01:39:15,607\n Nothing but butterflies,\n while living in a tent.\n\n1232\n01:39:15,617 --> 01:39:17,626\n Camping in the wild !\n\n1233\n01:39:45,007 --> 01:39:47,007\n I am parched !\n\n1234\n01:40:36,167 --> 01:40:38,167\n Belisaire, wake up.\n\n1235\n01:40:39,647 --> 01:40:41,886\n Open your eyes.\n\n1236\n01:40:42,887 --> 01:40:44,887\n And tell me what you see.\n\n1237\n01:40:46,607 --> 01:40:50,207\n Millions and millions\n of stars.\n\n1238\n01:40:51,007 --> 01:40:53,007\n And what do you make of them ?\n\n1239\n01:40:54,087 --> 01:40:56,087\n That there are millions\n of galaxies..\n\n1240\n01:40:56,687 --> 01:40:59,406\n ..and billions of planets.\n\n1241\n01:41:02,407 --> 01:41:05,407\n That Saturn is part of Leo.\n\n1242\n01:41:08,367 --> 01:41:11,367\n That the time is\n approximately..\n\n1243\n01:41:11,647 --> 01:41:13,286\n ..a quarter past three.\n\n1244\n01:41:15,287 --> 01:41:18,287\n That it should be a nice day\n tomorrow.\n\n1245\n01:41:21,887 --> 01:41:26,885\n I see that God is\n all-powerful..\n\n1246\n01:41:26,887 --> 01:41:29,887\n ..and that we are small and\n insignificant in the Universe.\n\n1247\n01:41:32,567 --> 01:41:34,567\n And you, Prudence,\n what do you see ?\n\n1248\n01:41:36,047 --> 01:41:39,747\n My poor Belisaire, I see\n you are a proper nitwit !\n\n1249\n01:41:40,087 --> 01:41:42,087\n Me,\n I see that we are finally free.\n\n1250\n01:44:05,807 --> 01:44:10,093\n English subtitles :\n David Blake (2015)\n\n1251\n01:44:10,094 --> 01:44:10,095\n\n"
  },
  {
    "path": "2020/5-4-movie-调查犯罪是我们的职业/README.md",
    "content": "\n# 阿加莎：调查犯罪是我们的职业-法语\n\n- 豆瓣 [调查犯罪是我们的职业 Le crime est notre affaire (2008)](https://movie.douban.com/subject/3101742/)\n    - 法式幽默\n    - 女主角，很淑女好看\n\n- 剧情\n\n```\n侦探夫妇的姨妈在火车上见到对向火车上有男人正在掐死一个女人\n报警没人信\n女侦探调查火车旁的一个家族有问题，便潜入做厨师\n期间发生很多诡异的事情，不少人中毒或被杀\n最后，女侦探假装噎着，引凶手去救她\n姨妈看到凶手的背影，被确认是他\n```\n\n- 花絮\n\n```\n片尾，两人去露营，模仿了《福尔摩斯》的笑话\n福尔摩斯和华生在山坡上搭帐篷露营！\n入夜，福尔摩斯醒来，用肘部弄醒华生：华生你看！天上有什么？\n华生：一弯明月！\n福尔摩斯：这意味着什么？\n华生思索片刻然后：嗯，月色不错，没有星星，明天应该是阴天！\n\n福尔摩斯：笨蛋！我们的帐篷被偷了！\n```\n\n- 下载\n    - 搜索，国外平台\n    - 声音是法语，字幕却是英文\n    - 百度网盘，联系我。链接: https://pan.baidu.com/s/1Scygxfogu4T99naRdiAQJQ  \n- 字幕\n    - 英文 https://www.opensubtitles.com/en/subtitles/le-crime-est-notre-affaire\n    - 用【谷歌翻译】转成中文"
  },
  {
    "path": "2020/6-17-Bird-Sound-crawl/README.md",
    "content": "\n# 观鸟App抓包，并下载鸟声音频\n\n- 视频  ??\n\n- 参考\n    - iOS App ：鸟类百科\n        - 康奈尔大学 鸟类观察 https://www.birds.cornell.edu/home\n            - 鸟类资料是存放在大学的服务器上，所以国内下载缓慢 download.ams.birds.cornell.edu\n    - 国内网站，没有音频。[鸟类_百问中文](http://www.baiven.com/q/18/218/)\n\n- 步骤\n    - 启动 mitmweb\n        - 过滤域名 ~d bird.snowyevening.com | ~d download.ams.birds.cornell.edu\n    - 手机设置WiFi代理\n    - 启动App，抓包\n    - 推荐列表\n        - POST http://bird.snowyevening.com:8008/api/recommendlist\n            - {\"applan\":\"zh-Hans\",\"appvision\":\"3.2.4\",\"page\":0}\n    - 热门列表\n        - POST http://bird.snowyevening.com:8008/api/hotranklist\n    - 详情\n        - POST http://bird.snowyevening.com:8008/api/birddetail\n            - {    \"applan\": \"zh-Hans\",    \"appvision\": \"3.2.4\",    \"birdId\": \"27016\" }\n- 下载热门列表的鸟类，音频\n    - download_sound.py\n    - TODO 下一步，把全部鸟类的声音都下载下来\n- 使用代理插件，更快地听到鸟类声音，不用等很久\n    - mitmweb -s sound_proxy.py\n"
  },
  {
    "path": "2020/6-17-Bird-Sound-crawl/data.py",
    "content": "# -*- coding: utf-8 -*-\n\nhotranklist={'msg': 'success',\n 'code': '200',\n 'result': [{'id': 14941,\n   'cnname': '山麻雀',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/85205531/',\n   'maindesc': '山麻雀（英文名：Russet Sparrow，学名：Passer cinnamomeus），是雀形目雀科雀属的鸟类。又名红雀、赭麻雀、黄雀、山只只。属杂食性鸟类，主要以植物性食物和昆虫为食。在中国分布比较广。因平时栖息于山地而得名。中国见于秦岭以南地区。在分布区北部山地繁殖，秋季南迁越冬。体形近似麻雀。体长约14厘米。中国鹀类中的三道眉草鹀，也常被称为“山麻雀”。',\n   'viewcount': 6685,\n   'likecount': 90},\n  {'id': 14127,\n   'cnname': '虎皮鹦鹉',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/21349071/',\n   'maindesc': '虎皮鹦鹉（学名：Melopsittacus undulatus，英文名：Budgerigar）是鹦鹉科虎皮鹦鹉属的鸟类，又名娇凤。属小型攀禽品种，原产于澳大利亚的内陆地区，野生的虎皮鹦鹉栖息于林缘、草地等处。结群活动。以植物种子等为食。繁殖期为6至次年1月。营巢于树洞中。每窝产卵4-8枚。孵化期为18天。性情活泼且易于驯养，在中国是大众最喜欢的宠物鸟之一，野生种群系国家二级保护动物。',\n   'viewcount': 5395,\n   'likecount': 184},\n  {'id': 15317,\n   'cnname': '家八哥',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/98174391/',\n   'maindesc': '家八哥（英文名：Common Myna，学名：Acridotheres tristis），是雀形目椋鸟科八哥属的鸟类。英文名直译为普通八哥。无冠羽，眼周裸露皮肤黄色。原产于印度，但如今已被引进到世界各地（美洲、澳大利亚等），主要是为了降低农作区害虫的族群数量，但由于它们要和其他种类竞争产卵的所在，又会杀害小鸟，破坏鸟蛋，以及驱逐小型哺乳动物，因此在引进的同时，也降低了当地的生物多样性。',\n   'viewcount': 4370,\n   'likecount': 52},\n  {'id': 15282,\n   'cnname': '灰椋鸟',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/98370411/',\n   'maindesc': '灰椋鸟（英文名：White-cheeked Starling，学名：Spodiopsar cineraceus），是雀形目椋鸟科丝光椋鸟属的鸟类。英文名直译为白颊椋鸟，俗名有杜丽雀、高粱头、管莲子、假画眉、竹雀。是适应能力非常强的鸟。因为它除喙与足呈橙红色外，全身都是灰褐色，所以叫它灰椋鸟。体长约23－25厘米，通体主要为灰褐色，头部上黑而两侧白，尾部亦白色，嘴和脚为橙色。',\n   'viewcount': 3978,\n   'likecount': 63},\n  {'id': 15488,\n   'cnname': '珠颈斑鸠',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/31595281/',\n   'maindesc': '珠颈斑鸠（英文名：Spotted Dove，学名：Streptopelia chinensis），是鸽形目鸠鸽科珠颈斑鸠属的鸟类。又名鸪雕、鸪鸟、中斑、花斑鸠、花脖斑鸠、珍珠鸠、斑颈鸠、珠颈鸽、斑甲。比鸽子略小，颈部有黑白色的珠花图案，脚红色，体长约30cm。单独或成对出现，它们是温驯的鸟类。斑鸠是常见留鸟，叫声为轻柔悦耳的“咕咕咕”，清晨、黄昏、白天都可以听到珠颈斑鸠的反复鸣叫。是分布在南亚、东南亚地区以及中国南方广大地区的一种常见的斑鸠。',\n   'viewcount': 3821,\n   'likecount': 146},\n  {'id': 13898,\n   'cnname': '山斑鸠',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/92553441/',\n   'maindesc': '山斑鸠（英文名：Oriental Turtle-Dove，学名：Streptopelia orientalis），是鸽形目鸠鸽科斑鸠属的鸟类。也叫山鸠、金背鸠、金背斑鸠、麒麟斑、麒麟鸠、雉鸠、棕背斑鸠、东方斑鸠、绿斑鸠、山鸽子、花翼、大花鸽、大花斑。上体具深色扇贝状羽缘，颈侧具黑白色条纹形成的图案，亚成鸟无此图案。包括两个亚种。山斑鸠分别分布在西伯利亚中部和中亚地区，冬天大部分种群会迁徙；成对或单独活动，与珠颈斑鸠在食性、活动区域、夜间栖息环境等方面基本相似。在中国，山斑鸠分布在北自黑龙江、新疆，南至西藏南部、海南的广大地区。',\n   'viewcount': 3101,\n   'likecount': 49},\n  {'id': 15286,\n   'cnname': '乌鸫',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/63371531/',\n   'maindesc': '乌鸫（英文名：Eurasian Blackbird，学名：Turdus merula），是雀形目鸫科鸫属的鸟类。原乌鸫（学名：Turdus merula，英文名: Eurasian Blackbird）分为三种：<p>\\u3000乌鸫(Turdus merula，Eurasian Blackbird)<p>\\u3000乌鸫(Turdus mandarinus，Chinese Blackbird）<p>\\u3000藏鸫(Turdus maximus，Tibetan Blackbird)<p>乌鸫虽继承英文名称，但乌鸫仅见于新疆与青海，与乌鸫相比雄鸟的黄色眼圈更为明显，雌鸟的斑纹也有一定差异。',\n   'viewcount': 3092,\n   'likecount': 70},\n  {'id': 13851,\n   'cnname': '喜鹊',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/62259711/',\n   'maindesc': '喜鹊（英文名：Eurasian Magpie，学名：Pica pica），是雀形目鸦科鹊属的鸟类。据中国鸟类名录6.0，分布于新疆、西藏西部和呼伦贝尔的Pica pica更名为喜鹊。喜鹊是典型的黑白色鸟类，体形很大，羽毛大部为黑色，肩腹部为白色。喜鹊比较凶悍，不畏惧猛禽，常常驱赶进入其领地的鸟类包括猛禽，集群围攻欺负其他鸟儿。喜鹊多生活在人类聚居地区，喜食谷物、昆虫。喜鹊叫声婉转，在中国民间将喜鹊作为吉祥的象征，牛郎织女鹊桥相会的传说及画鹊兆喜的风俗在民间都颇为流行。喜鹊智商很高，根据维基百科所述，喜鹊是目前唯一通过了镜子测试（弄明白镜子里的那个像就是自己）的非哺乳动物。',\n   'viewcount': 2759,\n   'likecount': 87},\n  {'id': 14893,\n   'cnname': '白头鹎',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/99711671/',\n   'maindesc': '白头鹎（英文名：Light-vented Bulbul，学名：Pycnonotus sinensis），是雀形目鹎科鹎属的鸟类。俗名白头翁、白头婆，英文名直译为淡臀鹎、中国鹎。是中国南方非常常见的雀鸟，体长约19厘米，头顶黑色，眉和枕羽呈白色，双翼橄榄绿色。老鸟的枕羽更洁白，所以又叫“白头翁”，幼鸟头橄榄色。数量丰富。性活泼、不甚畏人。杂食性，既食动物性食物，也吃植物性食物，以果树的浆果和种子为主食，并时常飞入果园偷吃果实。秋冬季节，白头鹎在进入繁殖期后会聚集在树林上喧叫，常常引起人们的注意。这种群聚的现象，到春季时就消失了。',\n   'viewcount': 2724,\n   'likecount': 143},\n  {'id': 15275,\n   'cnname': '八哥',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/147526591/',\n   'maindesc': '八哥（英文名：Crested Myna，学名：Acridotheres cristatellus），是雀形目椋鸟科八哥属的鸟类。俗名普通八哥、鸲鹆了哥、鹦鹆、寒皋、鸜鹆、驾鸰、加令、凤头八哥。冠羽突出，全身黑色，翅有白斑，飞行时展开双翅可看到八字形的白斑。八哥是中国南方常见的鸟类。自陕西南部至长江以南各省，以及台湾和海南省均有分布。此外，八哥为雀形目椋鸟科八哥属鸟类的通称，主要分布于亚洲，中国有八哥、林八哥、白领八哥、灰背八哥、家八哥等。',\n   'viewcount': 2680,\n   'likecount': 72},\n  {'id': 27201,\n   'cnname': '小嘴乌鸦',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/128407791/',\n   'maindesc': '小嘴乌鸦（英文名：Carrion Crow，学名：Corvus corone），是雀形目鸦科鸦属的鸟类。上背和下体灰色，余部黑色。冠小嘴乌鸦从小嘴乌鸦（Corvus corone）中分出的种（Knos et al.，2002；Dickinson，2003）。广泛分布于欧洲，在中国分布于新疆西部。',\n   'viewcount': 2370,\n   'likecount': 22},\n  {'id': 27259,\n   'cnname': '画眉',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/135932411/',\n   'maindesc': '画眉（英文名：Chinese Hwamei，学名：Garrulax canorus），是雀形目噪鹛科噪鹛属的鸟类。分布于台湾。',\n   'viewcount': 2178,\n   'likecount': 53},\n  {'id': 15415,\n   'cnname': '夜鹭',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/32861471/',\n   'maindesc': '夜鹭（英文名：Black-crowned Night-Heron，学名：Nycticorax nycticorax），是鹈形目鹭科夜鹭属的鸟类。水鸟，又名水洼子、灰洼子、星鸦、灰洼子、苍鳽、星鳽、夜鹰（浙江）、夜鹤、夜游鹤（海南）。数量丰富，是很常见的水鸟。头顶、后颈、枕、羽冠及背部黑色，枕部具2-3根狭白色冠羽；下体白色；翅及尾羽灰色。注意夜鹭亚成鸟全身棕色，具有纵纹和点斑，和成鸟羽色差异非常大，模样相近绿鹭。',\n   'viewcount': 2070,\n   'likecount': 60},\n  {'id': 17850,\n   'cnname': '鹊鸲',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/166748771/',\n   'maindesc': '鹊鸲（英文名：Oriental Magpie-Robin，学名：Copsychus saularis），是雀形目鹟科鹊鸲属的鸟类。又名猪屎渣、吱渣、信鸟或四喜。分布于中国华南地区及长江以南一带。典型的黑白色鸟类。鹊鸲雄鸟上半部为黑色，在翼处有白斑，下体前黑后白，时常竖起尾巴，把尾翼扭向前方，在地上则常以弹跳方式前进。雌鸟上体灰色。鹊鸲与喜鹊相似，但体形细小得多。鹊鸲性格活泼好动，觅食时常摆尾，不分四季晨昏，在高兴时会在树枝或大厦外墙鸣唱。',\n   'viewcount': 2009,\n   'likecount': 87},\n  {'id': 13964,\n   'cnname': '麻雀',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/63038961/',\n   'maindesc': '麻雀（英文名：Eurasian Tree Sparrow，学名：Passer montanus），是雀形目雀科雀属的鸟类。又叫树麻雀（英文名：Tree Sparrow），俗名霍雀、瓦雀、琉雀、家雀、老家贼、只只、嘉宾、照夜、麻谷、南麻雀、禾雀、宾雀，亦叫北国鸟（个别地方方言又称呼为：家雀、户巴拉）。雌雄同色，显著特征为黑色喉部、白色脸颊上具黑斑、栗色头部。喜群居，种群生命力极强。是中国最常见、分布最广的鸟类，亚种分化极多，广布于中国全境，也广布于欧亚大陆。中国产5种麻雀，其中树麻雀就是我们通常所说的麻雀，其他种类如山麻雀、家麻雀比树麻雀少见，生活环境也有所区别。',\n   'viewcount': 1776,\n   'likecount': 64},\n  {'id': 13813,\n   'cnname': '大杜鹃',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/55599051/',\n   'maindesc': '大杜鹃（英文名：Common Cuckoo，学名：Cuculus canorus），是鹃形目杜鹃科杜鹃属的鸟类。俗名布谷鸟、郭公、布谷、喀咕。分布于北极圈以外的欧洲、非洲、亚洲，包括中国大陆的中国等地，多栖息于山地及平原的树上以及居民点附近。该物种的模式产地在瑞典。中国有“望帝春心托杜鹃”的神话故事。具有巢寄生的繁殖特点。叫声为两个音节“布谷”或“布谷-布谷”。',\n   'viewcount': 1715,\n   'likecount': 42},\n  {'id': 13899,\n   'cnname': '棕背伯劳',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/94956501/',\n   'maindesc': '棕背伯劳（英文名：Long-tailed Shrike，学名：Lanius schach），是雀形目伯劳科伯劳属的鸟类。俗称桂来姆、黄伯劳，英文名直译为长尾伯劳。棕背伯劳特征是粗黑的贯眼纹或顶冠、黑翅、尾长尾黑，上体偏灰，下体偏棕。普遍分布于我国东部沿海及南部，包括台湾、海南等省，是一种很常见的留鸟。伯劳性凶猛，嘴爪均强健有力，善于捕食昆虫、鸟类及其他动物，甚至能击杀比它自己还大的鸟，如鹧鸪之类。90年代在中国江西发现的黑伯劳，被认为是棕背伯劳的黑色型，不足以列为独立鸟种。',\n   'viewcount': 1644,\n   'likecount': 66},\n  {'id': 27314,\n   'cnname': '灰喜鹊',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/98785381/',\n   'maindesc': '灰喜鹊（英文名：Azure-winged Magpie，学名：Cyanopica cyanus），是雀形目鸦科灰喜鹊属的鸟类。又名山喜鹊、蓝鹊、蓝膀香鹊、长尾鹊、鸢喜鹊、长尾巴郎。顶冠黑色，两翼及尾天蓝色，余部灰色。灰喜鹊在中国分布较广泛，是常见的鸦类，体型比喜鹊小，性吵嚷，结群栖于开阔松林及阔叶林、公园甚至城镇。飞行时振翼快，作长距离的无声滑翔。在树上、地面及树干上取食，食物为果实、昆虫及动物尸体。该物种是国家三有保护鸟类，安徽省的省鸟。',\n   'viewcount': 1596,\n   'likecount': 51},\n  {'id': 13800,\n   'cnname': '白胸翡翠',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/43773481/',\n   'maindesc': '白胸翡翠（英文名：White-throated Kingfisher，学名：Halcyon smyrnensis），是佛法僧目翠鸟科翡翠属的鸟类。也叫白喉翡翠。嘴赤红，头颈和腹部栗色，胸部白色。是一种分布在亚洲南部和西部的翡翠。同大多数猎翠鸟一样，完全是肉食性。白胸翡翠在软石面掘洞为巢，多离水道甚远，繁殖期为4-6月。',\n   'viewcount': 1557,\n   'likecount': 16},\n  {'id': 14589,\n   'cnname': '费氏牡丹鹦鹉',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/63736361/',\n   'maindesc': '费氏牡丹鹦鹉费氏牡丹鹦鹉（学名：Agapornis fischeri，英文名：Fischer’s Lovebird）是鹦鹉科牡丹鹦鹉属的鸟类，又叫牡丹鹦鹉、费氏情侣鹦鹉、费氏爱情鸟。是七彩缤纷的小鹦，国内现有9个品种，为较珍贵的人工繁育鸟。常见的品种有琉璃腰牡丹鹦鹉(棕头牡丹鹦鹉)、黄领黑牡丹鹦鹉(黑头牡丹鹦鹉)、金红桃牡丹鹦鹉(桃脸黄牡丹鹦鹉)、小樱哥牡丹鹦鹉(桃脸绿牡丹鹦鹉)及蓝牡丹鹦鹉等品种。牡丹鹦鹉性情凶猛，以强欺弱，发情雌鸟更为突出，叫声大而杂，有时噪声扰人，还可向其他鸟进攻，这时若将雌鸟与雄鸟配对繁育则鸣声锐减，性情好转，所以饲养牡丹鹦鹉以成对为佳。经人工培养还有多种色系的品种：如黄、白、钴蓝、紫、灰、银、乳白及杂纹等。平均寿命约10–15年。分布于非洲中南部地区坦桑尼亚以北，维多利亚湖附近之草原，是近危物种。',\n   'viewcount': 1545,\n   'likecount': 47}]}\n\nrecommendlist={'msg': 'success',\n 'code': '200',\n 'result': [{'id': 27016,\n   'cnname': '台湾斑翅鹛',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/59337771/',\n   'maindesc': '台湾斑翅鹛（英文名：Taiwan Barwing，学名：Actinodura morrisoniana），是雀形目噪鹛科斑翅鹛属的鸟类。台湾特有种。体型略大的褐色鹛。羽冠蓬松，头侧深栗，上背及腰灰，喉红栗。背中部红褐，胸橄榄褐而具浅色纵纹。腹部及臀棕褐。翼及尾具黑色横斑，尾端白色。',\n   'viewcount': 14,\n   'likecount': 0,\n   'rId': 0},\n  {'id': 27018,\n   'cnname': '灰头斑翅鹛',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/130835201/',\n   'maindesc': '灰头斑翅鹛（英文名：Streaked Barwing，学名：Actinodura souliei），是雀形目噪鹛科斑翅鹛属的鸟类。体大(22厘米)而羽冠蓬松的鹛。体羽多鳞斑。眼先及脸颊前部黑色。冠羽和耳覆羽浅灰。头侧深栗，喉红栗。上背、背、腰、腹及臀部的羽毛黑色，羽缘黄褐而成矛状纹。翼及尾栗色而带细小的黑色横斑。分布于云南、四川。',\n   'viewcount': 12,\n   'likecount': 0,\n   'rId': 0},\n  {'id': 27019,\n   'cnname': '纹头斑翅鹛',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/144464161/',\n   'maindesc': '纹头斑翅鹛（英文名：Hoary-throated Barwing，学名：Actinodura nipalensis），是雀形目噪鹛科斑翅鹛属的鸟类。中等体型(21厘米)的深褐色鹛。两翼及长尾具黑色细小横斑。与其他斑翅鹛的区别在带羽冠的头部多具皮黄色细纵纹。头侧灰色，眼圈狭窄而偏白，髭纹黑色。尾具黑色的端带。下体浅褐灰，至腹部成红棕色。',\n   'viewcount': 5,\n   'likecount': 0,\n   'rId': 0},\n  {'id': 27013,\n   'cnname': '长尾奇鹛',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/80071011/',\n   'maindesc': '长尾奇鹛（英文名：Long-tailed Sibia，学名：Heterophasia picaoides），是雀形目噪鹛科奇鹛属的鸟类。体大的灰色及白色树栖型奇鹛。尾甚长而尖。体羽暗灰。分布于尼泊尔、锡金、不丹、印度、孟加拉、缅甸、老挝、泰国、越南、马来半岛、印度尼西亚以及中国大陆的云南等地，多见于海拔915-2440米间的山脚地带以及常绿阔叶林或山坡阔叶林。该物种的模式产地在尼泊尔。',\n   'viewcount': 76,\n   'likecount': 1,\n   'rId': 0},\n  {'id': 27014,\n   'cnname': '灰奇鹛',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/40080841/',\n   'maindesc': '灰奇鹛（英文名：Gray Sibia，学名：Heterophasia gracilis），是雀形目噪鹛科奇鹛属的鸟类。顶冠及头侧深灰，脸近黑，喉及胸偏白。分布于印度、缅甸以及中国大陆的云南等地，多生活于山坡、村边的小阔叶树上、在海拔较高的地区以及常在松树的顶端活动。栖于山坡阔叶林间。结小群活动。以昆虫和植物种子为食。该物种的模式产地在印度阿萨姆邦。该物种已被列入国家林业局2000年8月1日发布的《国家保护的有益的或者有重要经济、科学研究价值的陆生野生动物名录》。',\n   'viewcount': 12,\n   'likecount': 0,\n   'rId': 0},\n  {'id': 27015,\n   'cnname': '褐脸雀鹛',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/94385771/',\n   'maindesc': '褐脸雀鹛（英文名：Brown-cheeked Fulvetta，学名：Alcippe poioicephala），是雀形目幽鹛科雀鹛属的鸟类。体大(16厘米)的褐色雀鹛。顶冠及颈背灰色，具黑色的长眉纹，下体皮黄色。与灰眶雀鹛及白眶雀鹛的区别为脸颊暖褐色，无白色眼圈且体型较大。',\n   'viewcount': 19,\n   'likecount': 0,\n   'rId': 0},\n  {'id': 27010,\n   'cnname': '白眉歌鸫',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/81164131/',\n   'maindesc': '白眉歌鸫（英文名：Redwing，学名：Turdus iliacus），是雀形目鸫科鸫属的鸟类。是原住于欧洲及亚洲的一种鸫，比相关的欧歌鸫较为细小。它们最特别的是两侧及翼底呈红色，眼睛上有奶白色斑纹，故以“白眉”为名。白眉歌鸫在中国境内比较罕见，偶有越冬鸟至新疆西北部的阿尔泰山，是土耳其的国鸟。',\n   'viewcount': 256,\n   'likecount': 4,\n   'rId': 0},\n  {'id': 27011,\n   'cnname': '田鸫',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/58813401/',\n   'maindesc': '田鸫（英文名：Fieldfare，学名：Turdus pilaris），是雀形目鸫科鸫属的鸟类。体型略大(26厘米)的鸫。灰色的头及腰部与栗褐色的背部成对比，下体白，胸及两胁满布黑色纵纹.',\n   'viewcount': 79,\n   'likecount': 2,\n   'rId': 0},\n  {'id': 27012,\n   'cnname': '丽色奇鹛',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/142723601/',\n   'maindesc': '丽色奇鹛（英文名：Beautiful Sibia，学名：Heterophasia pulchella），是雀形目噪鹛科奇鹛属的鸟类。是海拔迁徙的候鸟，分布于印度、缅甸和中国大陆。该物种的保护状况被评为无危。丽色奇鹛的平均体重约为41.0克。栖息地为亚热带或热带的湿润山地林。该物种的模式产地在印度。',\n   'viewcount': 28,\n   'likecount': 2,\n   'rId': 0},\n  {'id': 27007,\n   'cnname': '黑冠黄鹎',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/85684431/',\n   'maindesc': '黑冠黄鹎（英文名：Black-crested Bulbul，学名：Rubigula flaviventris），是雀形目鹎科鹎属的鸟类。',\n   'viewcount': 87,\n   'likecount': 3,\n   'rId': 0},\n  {'id': 27008,\n   'cnname': '锈腹短翅鸫',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/118184891/',\n   'maindesc': '锈腹短翅鸫（英文名：Rusty-bellied Shortwing，学名：Brachypteryx hyperythra），是雀形目鹟科短翅鸫属的鸟类。是体长约13厘米的短翅鸫。特征为上体蓝灰，下体深铁锈色。细小的眉纹白色（部分被掩盖），眼先黑色。雌鸟：上体橄榄褐色，下体浅铁锈色，腹中心白色。甚不惧人。栖居林下密丛。分布于印度、锡金以及中国大陆的云南等地，一般生活于地面、见于以栎树为主的常绿阔叶林以及喜在密林下木、灌木丛或竹丛间活动。',\n   'viewcount': 29,\n   'likecount': 2,\n   'rId': 0},\n  {'id': 27009,\n   'cnname': '白喉短翅鸫',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/79864741/',\n   'maindesc': '白喉短翅鸫（英文名：Lesser Shortwing，学名：Brachypteryx leucophris），是雀形目鹟科短翅鸫属的鸟类。一种体甚小而腿长的短翅鸫，约13厘米长，外形和画眉鸟相似。它是一种杂食性卵生鸟类，性羞怯。',\n   'viewcount': 62,\n   'likecount': 5,\n   'rId': 0},\n  {'id': 27004,\n   'cnname': '白喉冠鹎',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/142725291/',\n   'maindesc': '白喉冠鹎（英文名：White-throated Bulbul，学名：Alophoixus flaveolus），是雀形目鹎科冠鹎属的鸟类。体型略大(22厘米)而具羽冠的褐色鹎。白色的喉膨起，下体黄色。似白喉冠鹎但较鲜亮，上体褐色较重，腹部为鲜亮的柠檬黄色。',\n   'viewcount': 107,\n   'likecount': 3,\n   'rId': 0},\n  {'id': 27005,\n   'cnname': '白颊鹎',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/96056311/',\n   'maindesc': '白颊鹎（英文名：Himalayan Bulbul，学名：Pycnonotus leucogenys），是雀形目鹎科鹎属的鸟类。中等体型，是鹎科的一种鸣禽。分布在阿富汗、不丹、印度、塔吉克斯坦及沙特阿拉伯等地区。白颊鹎雏鸟若与人一起生活，则会变得对人类友善。是巴林的国鸟。',\n   'viewcount': 378,\n   'likecount': 12,\n   'rId': 0},\n  {'id': 27006,\n   'cnname': '黑头鹎',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/143687661/',\n   'maindesc': '黑头鹎（英文名：Black-headed Bulbul，学名：Brachypodius atriceps），是雀形目鹎科鹎属的鸟类。分布于印度、孟加拉、中南半岛、印度尼西亚、菲律宾以及中国大陆的云南等地，多见于乔木枝头。该物种的模式产地在印度尼西亚苏门答腊。',\n   'viewcount': 426,\n   'likecount': 8,\n   'rId': 0},\n  {'id': 26997,\n   'cnname': '白冠攀雀',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/44930351/',\n   'maindesc': '白冠攀雀（英文名：White-crowned Penduline-Tit，学名：Remiz coronatus），是雀形目攀雀科攀雀属的鸟类。小型鸟类。分布于中亚至中国西北及俄罗斯东南部。一般栖息于近水的苇丛和柳、桦、杨等阔叶树间。主要以昆虫为食，也吃植物的叶，花，芽，花粉和汁液。捕获猎物的方式和一般的山雀相同。冬季结群，通常比其他攀雀更喜栖于树上。',\n   'viewcount': 54,\n   'likecount': 5,\n   'rId': 0},\n  {'id': 26998,\n   'cnname': '金冠树八哥',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/89715231/',\n   'maindesc': '金冠树八哥（英文名：Golden-crested Myna，学名：Ampeliceps coronatus），是雀形目椋鸟科金冠树八哥属的鸟类。分布于印度、缅甸、泰国以及中国大陆的云南、广东等地。该物种的模式产地在缅甸德林达依省。',\n   'viewcount': 136,\n   'likecount': 2,\n   'rId': 0},\n  {'id': 27000,\n   'cnname': '黄眉林雀',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/44576741/',\n   'maindesc': '黄眉林雀（英文名：Yellow-browed Tit，学名：Sylviparus modestus），是雀形目山雀科黄眉林雀属的鸟类。体小(10厘米)而异型的山雀。外形似柳莺或啄花鸟。体羽大致橄榄色，羽冠短，狭窄的黄色眼圈，浅黄色短眉纹有时被覆盖；腿甚显粗壮。与火冠雀的区别在具冠羽而腰部无浅色反差。该物种的模式产地在尼泊尔。',\n   'viewcount': 72,\n   'likecount': 3,\n   'rId': 0},\n  {'id': 26994,\n   'cnname': '双辫八色鸫',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/32073311/',\n   'maindesc': '双辫八色鸫（英文名：Eared Pitta，学名：Hydrornis phayrei），是雀形目八色鸫科蓝八色鸫属的鸟类。分布于中国西南部及东南亚。为世界濒危物种其中一种，是联合国《濒危野生动物名录》其中之一。',\n   'viewcount': 74,\n   'likecount': 3,\n   'rId': 0},\n  {'id': 26995,\n   'cnname': '栗头八色鸫',\n   'coveraddress': 'https://download.ams.birds.cornell.edu/api/v1/asset/142168811/',\n   'maindesc': '栗头八色鸫（英文名：Rusty-naped Pitta，学名：Hydrornis oatesi），是雀形目八色鸫科蓝八色鸫属的鸟类。体型圆胖，尾短，腿长，常在森林底层或低植被中找食无脊椎动物。叫声简单哀婉。头部栗褐色；前额、两颊、颈侧、喉至上胸渲染粉红色；上体、尾表暗绿，腰沾蓝色，上背栗褐色。下体茶黄，肛周呈棕白色。上嘴黑色，下嘴黄褐色；眼虹膜棕红或红褐色；跗蹠灰白色或角褐色。主要栖息在海拔1800米以下的热带、亚热带的常绿阔叶林中，单个或成对在林下阴湿处活动觅食，喜在夜间鸣叫。主要以昆虫为食，也兼吃种子和果实。分布于中南半岛，中国的东南沿海地区和太平洋诸岛屿。',\n   'viewcount': 26,\n   'likecount': 2,\n   'rId': 0}]}"
  },
  {
    "path": "2020/6-17-Bird-Sound-crawl/download_sound.py",
    "content": "# -*- coding: utf-8 -*-\n'''\n要全部下载\n'''\n\nfrom urllib.request import urlretrieve\nimport os\n# from data import hotranklist as soundList\nfrom data import recommendlist as soundList\nimport requests\nbdurl='http://bird.snowyevening.com:8008/api/birddetail'\n\nheaders={\n    'Content-Type':'application/json;charset=UTF-8',\n    'User-Agent':'LDBird/3.2.4 (iPod touch; iOS 13.4; Scale/2.00)',\n}\ndef createfiles(filepathname):\n    try:\n        os.makedirs(filepathname)\n    except Exception as err:\n        print(str(filepathname) + \"已经存在！\")\n\n\ndef cbk(a,b,c):  \n    '''''回调函数 \n    @a:已经下载的数据块 \n    @b:数据块的大小 \n    @c:远程文件的大小 \n    '''  \n    per=100.0*a*b/c  \n    if per>100:  \n        per=100  \n    # print('%.2f%%' % per)\n    print('\\r %.2f%%' % per,end=\"\")\n\n\ndef main():\n    for it in soundList['result']:#[5:]:\n        print(it['id'])\n        dt={\n            \"applan\": \"zh-Hans\",\n            \"appvision\": \"3.2.4\",\n            \"birdId\": f\"{it['id']}\"\n        }\n        rs=requests.post(headers=headers,url=bdurl,json=dt)\n        # print(rs.text)\n        js=rs.json()\n        sound=js['result']['soundList'][1]#只下载第一个音频\n        mp3address=sound['mp3address']\n        # fn=f\"sounds/{mp3address.split('/')[-2]}.mp3\"\n        fn=f\"sounds/{mp3address.replace('https://','').replace('http://','')}\"\n        print(fn)\n        #如果不存在\n        pn='/'.join(fn.split('/')[:-1])\n        createfiles(pn)\n\n        urlretrieve(mp3address,fn,cbk)\n        print()#空行\n        print('下载完毕',mp3address)\n        print('-'*30)\n\n        # break\n    pass\n\nif __name__ == \"__main__\":\n    main()\n    pass"
  },
  {
    "path": "2020/6-17-Bird-Sound-crawl/sound_proxy.py",
    "content": "# -*- coding: utf-8 -*-\n\n\n\"\"\"\nsound_proxy.py:\n\n执行\nmitmweb -s sound_proxy.py\n\"\"\"\n\nfrom mitmproxy import ctx\nfrom mitmproxy.http import HTTPFlow\nfrom mitmproxy import http\nimport  json\n\nheaders={\n    'Content-Type':'audio/mpeg'\n}\n\nclass sound:\n    def request(self, flow: HTTPFlow):\n        print(flow.request.host,'\\t',flow.request.path)\n        # return\n        # 判断网址\n        if 'download.ams.birds.cornell.edu' in flow.request.host and 'audio' in flow.request.path:#过滤网址\n            #返回mp3 response\n            fp=f'sounds/{flow.request.host}/{flow.request.path[1:]}'\n            print('返回mp3 response',fp)\n            with open(fp,'rb') as f:\n                sd=f.read()\n            #response\n            flow.response = http.HTTPResponse.make(      status_code=  200,headers=headers, content=sd,        )\n            print('mp3文件大小',len(sd))\n            pass\n\n\naddons = [\n    sound()\n]"
  },
  {
    "path": "2020/6-17-EXIF-GPS/README.md",
    "content": "# 读取相片的EXIF，并添加GPS坐标\n\n- 视频\n    - [寻找黄河源头！读取相片的EXIF信息，并添加GPS坐标](https://www.bilibili.com/video/BV1n54y1B77V/)\n\n- 软件App\n    - 奥维互动地图\n\n- 参考\n    - 微博 https://weibo.com/2612164690/FmfjLFtH3\n    - [长江、黄河、澜沧江源头地理位置重新认定](http://blog.sina.com.cn/s/blog_70f293fb0101b66r.html)\n    - [gpsphoto文档](https://pypi.org/project/gpsphoto/)\n\n- 需求\n    - 黄河源头GPS坐标\n    - 看到很多视频纪录片，很多人去膜拜黄河源头国家地理标志\n        - 自己也想过去膜拜一下\n        - 可是哪些视频总是不说清楚路线图，怎样行车才能到达\n        - 便自己在网上搜集资料\n\n- 步骤\n    - 黄河源头国家地理坐标 北纬35°01'10.4\"N  东经95°59'24.2\"E \n    - 转换成小数格式 35.019564,95.990063\n    - 在奥维互动地图输入坐标，即可看到源头位置\n    - 两湖一碑，牛头碑 坐标点 东经97.492676, 34.908458\n\n- 安装\n    - pip3 install gpsphoto\n\n\n- 在iPad上显示\n    - 相片App\n        - 上划相片，显示地点\n        - 显示附近的相片\n        - 在地图App上显示\n\n- 在【奥维互动地图】上点击，获取坐标"
  },
  {
    "path": "2020/6-17-EXIF-GPS/exif-gps.py",
    "content": "# -*- coding: utf-8 -*-\n\nfrom GPSPhoto import gpsphoto\n#读取GPS信息\nphoto = gpsphoto.GPSPhoto('黄河源头.jpg')\nphoto.getGPSData()\n'''\n{'Latitude': 35.019564,\n 'Longitude': 95.990063,\n 'Altitude': 0,\n 'UTC-Time': '18:58:14',\n 'Date': '05/31/2020'}\n'''\n\n#写入GPS坐标\nphoto = gpsphoto.GPSPhoto('牛头碑.jpg')\ninfo = gpsphoto.GPSInfo((34.908458,97.492676))\nphoto.modGPSData(info, 'new_photo.jpg')\n#把new_photo.jpg转到iPad上查看地图"
  },
  {
    "path": "2020/6-22-iPad-Draw-on-Map/README.md",
    "content": "# iPad，在地图上绘画\n\n- 视频 [使用iPad，在地图上绘画，自驾游路线图，路标](https://www.bilibili.com/video/BV1Mv411B7zS/)\n\n- 准备\n    - iPad Pencil ，最好有它\n    - 安装App:\n        - MapDraw\n        - 奥维互动地图\n\n### 1. MapDraw\n可以直接在地图上绘画\n有导出功能，右下角显示MapDraw商标\n优点\n地图可以放大缩小，可以跳转到别的省区\n演示功能很好\n\n问题:\n只有行政地图，卫星地图很不清晰\n绘画功能比较简单，图标，线条，文字都要自己画出来\n绘画后撤销功能比较差，只有reset重置功能\n\n### 2. 奥维互动地图\n不能在地图上直接绘画\n有一些专业绘制地图的功能，不适用\n各种地图很丰富，行政地图，卫星地图，3D地图，可以随意切换角度\n\n调整后视角后，截图\n\n### 3. 绘画软件\nExplain Everything\n概念画板\n\n- 3.1 概念画板\n专业绘画\n但没有【添加文字】【添加图标】功能\n\n- 3.2 Explain Everything\n很好用，是恰当的工具\n首先导入地图截图\n使用画笔功能，切换颜色，在地图画线或其他\n使用文字功能，在某些地图添加备注\n完成，导出图片"
  },
  {
    "path": "2020/7-30-PDF-decrypt/README.md",
    "content": "\n## 解密PDF\n\n- 参考\n    - PyPDF2 1.26.0 https://pypi.org/project/PyPDF2/\n    - [深入学习Python解析并解密PDF文件内容的方法](https://www.cnblogs.com/wj-1314/p/9649837.html)\n    - [用Python暴力破解PDF密码](https://zhuanlan.zhihu.com/p/61969807)\n        - [github文档](https://github.com/weidylan/Office_Automation_by_Using_Python/blob/master/Exp8.Decode%20the%20password%20for%20PDFs/Example.8.Decode_the_password_for_PDFs(%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3PDF%E5%AF%86%E7%A0%81).ipynb)\n    - Go语言 解码PDF\n        - [unipdf-examples](https://github.com/unidoc/unipdf-examples/blob/v3/security/pdf_unlock.go)\n        - 运行 go run pdf_unlock.go PyPDF2-output.pdf  secret go-out.pdf\n            - 要购买证书 To get rid of the watermark - Please get a license on https://unidoc.io\n\n\n- 安装\n    - pip install PyPDF2\n\n"
  },
  {
    "path": "2020/7-30-PDF-decrypt/pdf_decrypt.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   pdf_decrypt.py\n@Time    :   2020/07/30 16:48:24\n@Author  :   play4fun\n@Desc    :   \n'''\n\ndef t1():\n    #读取PDF文档\n    import PyPDF2\n    PDFfile='/Users/play/Downloads/UM_HERO_CS_REVA_WEB.pdf'\n    pdf_obj=open(PDFfile,'rb')\n    pdf_reader=PyPDF2.PdfFileReader(pdf_obj)\n    pdf_reader.isEncrypted#False 没有加密\n\ndef 加密():\n    from PyPDF2 import PdfFileWriter, PdfFileReader\n\n    output = PdfFileWriter()\n    p1=pdf_reader.getPage(2)#添加页面\n    output.addPage(p1)\n    p1=pdf_reader.getPage(4)\n    output.addPage(p1)\n    p1=pdf_reader.getPage(6)\n    output.addPage(p1)\n\n    password = \"secret\"\n    output.encrypt(password)#加密\n\n    outputStream = open(\"PyPDF2-output.pdf\", \"wb\")\n    output.write(outputStream)#写入新文档\n    outputStream.close()\n    pass\ndef 解密():\n    from PyPDF2 import PdfFileReader\n    am = open(\"PyPDF2-output.pdf\", \"rb\")\n    rd1 = PdfFileReader(am, strict=False)\n    rd1.isEncrypted #True\n    ter = PdfFileWriter() #新建\n\n    rs=rd1.decrypt('secret')#解密\n    rs# 1\n    ter.appendPagesFromReader(rd1)\n    ter.write(open('decrypted_filename.pdf', 'wb'))\n    pass\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2020/7-30-PDF-decrypt/pdf_unlock.go",
    "content": "/*\n * Unlocks PDF files, tries to decrypt encrypted documents with the given password,\n * if that fails it tries an empty password as best effort.\n *\n * Run as: go run pdf_unlock.go input.pdf <password> output.pdf\n */\n\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\tpdf \"github.com/unidoc/unipdf/v3/model\"\n)\n\nfunc main() {\n\tif len(os.Args) < 4 {\n\t\tfmt.Printf(\"Usage: go run pdf_unlock.go input.pdf <password> output.pdf\\n\")\n\t\tos.Exit(1)\n\t}\n\n\tinputPath := os.Args[1]\n\tpassword := os.Args[2]\n\toutputPath := os.Args[3]\n\n\terr := unlockPdf(inputPath, outputPath, password)\n\tif err != nil {\n\t\tfmt.Printf(\"Error: %v\\n\", err)\n\t\tos.Exit(1)\n\t}\n\n\tfmt.Printf(\"Complete, see output file: %s\\n\", outputPath)\n}\n\nfunc unlockPdf(inputPath string, outputPath string, password string) error {\n\tpdfWriter := pdf.NewPdfWriter()\n\n\tf, err := os.Open(inputPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer f.Close()\n\n\tpdfReader, err := pdf.NewPdfReader(f)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tisEncrypted, err := pdfReader.IsEncrypted()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Try decrypting both with given password and an empty one if that fails.\n\tif isEncrypted {\n\t\tauth, err := pdfReader.Decrypt([]byte(password))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !auth {\n\t\t\treturn fmt.Errorf(\"Wrong password\")\n\t\t}\n\t}\n\n\tnumPages, err := pdfReader.GetNumPages()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor i := 0; i < numPages; i++ {\n\t\tpageNum := i + 1\n\n\t\tpage, err := pdfReader.GetPage(pageNum)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\terr = pdfWriter.AddPage(page)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfWrite, err := os.Create(outputPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer fWrite.Close()\n\n\terr = pdfWriter.Write(fWrite)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "2021/1-19-macOS-Window-On-Top/README.md",
    "content": "\n## 如何让你的窗口“AlwaysOnTop” 总是置顶\n\n- 视频 [【经验】macos窗口置顶 AfloatX  2021](https://www.bilibili.com/video/BV12t4y1z7Vi/)\n\n- 参考\n    - [【Mac效率】如何让你的窗口“AlwaysOnTop”](https://www.jianshu.com/p/2563250da71d)\n        - Afloat过期，5年没更新 https://github.com/rwu823/afloat\n            - 对新系统无效\n        - 要关闭SIP\n    - https://apple.stackexchange.com/questions/327541/always-on-top-window-on-macos\n        - AfloatX（用于Catalina）：https://github.com/jslegendre/AfloatX\n        - MacForge 是macOS的开源插件管理器。它使您可以发现，安装和管理插件，以改善macOS的用户体验，而无需手动克隆/构建或复制文件。 https://github.com/MacEnhance/MacForge\n            - 要关闭SIP\n            - 下载 https://www.macenhance.com/macforge\n- 其他方法\n    - 购买一个大屏显示器，屏幕空间大，放下更多窗口\n        - 2个显示器一起工作\n        - 最好是21:9宽屏"
  },
  {
    "path": "2021/1-24-desert-forest-destroyed/README.md",
    "content": "\n## 敦煌阳关国营林场，万亩沙漠防护林被毁\n\n- 自制视频 ？ \n    - B站 该视频内容涉及不适宜内容，不予审核通过。\n        - 申诉，回复：您好 小伙伴 这边帮您核实了 您的稿件内容整体导向不良不适宜进行展示哦\n    - 今日头条 \n        - [【挖掘】敦煌阳关国营林场，万亩沙漠防护林被毁](https://www.ixigua.com/6921180907504140803)\n        - 能看到吗？\n        - 我的账号 [全境旅行](https://www.ixigua.com/home/1789618645372350)\n    - 百度网盘\n        - 链接: https://pan.baidu.com/s/1aHd0l0LW-ZtQTQHH8EZTbQ 提取码: h3xx 复制这段内容后打开百度网盘手机App，操作更方便哦\n\n- 结论\n    - 从媒体报道来看，阳关林场被毁一个重要原因是当地为了种植葡萄，这暴露了以牺牲生态环境为代价换取一时经济发展的短视行为。\n    - 由此而言，牢固树立“绿水青山就是金山银山”的生态文明理念，也是当地亟需补上的一堂课。\n\n- 官方报道\n    - [敦煌防沙林场被毁已于2020年12月16日开庭](https://www.bilibili.com/video/BV1M5411J7Z3/)\n    - 新华社 [“剃光头”式砍伐触目惊心！万亩沙漠防护林被毁，敦煌防沙最后屏障几近消失](https://www.bilibili.com/video/BV1wv411s7tC)\n    - 澎湃新闻 直播 [“剃光头式砍伐”直击敦煌国营林场万亩沙漠防护林被破坏现场](https://www.bilibili.com/video/BV1Ff4y1C7Vm)\n    \n- [央视网搜索](https://search.cctv.com)\n    - 搜索关键词，按时间排序，最新发布\n        - 阳关林场\n        - 敦煌\n        - 沙漠防护林\n        - 阳关 葡萄\n    - [人民网评：万亩沙漠防护林被毁，必须一查到底！](https://news.cctv.com/2021/01/22/ARTIaycK6cdqNq9Lo1pHBnrf210122.shtml)\n    - [“下乡财神”常永义：一个农大教授的葡萄情结](http://sannong.cntv.cn/2015/09/23/ARTI1442994355480236.shtml)\n    - [《中国影像方志》 第366集 甘肃敦煌篇](https://tv.cctv.com/2019/10/07/VIDE3q9t8QzHPKmMeda7Pmp3191007.shtml)\n    - [CCTV-2财经频道  生财有道节目，敦煌红地球葡萄](https://tv.cctv.com/2018/11/30/VIDEnCgxOcREUMx85Xhcs8S0181130.shtml)\n        - 来源：央视网2018年11月30日 19:23\n    - [《生财有道》 20171106 咱们家乡有特产（秋收系列）——西出阳关看丰收 葡萄又甜又赚钱](https://tv.cctv.com/2017/11/06/VIDEgcnbefPLX51CH1XvsBa6171106.shtml)\n        - 来源：央视网2017年11月06日 21:34\n"
  },
  {
    "path": "2021/1-27-server-psutil/README.md",
    "content": "\n## 监控服务器，并向钉钉报警\n\n- 视频 [【编程】监控服务器，并向钉钉报警，Python  psutil DingtalkChatbot crontab](https://www.bilibili.com/video/BV1Yv411s73w/)\n\n- 推荐图书\n    - [Python自动化运维：技术与最佳实践](https://union-click.jd.com/jdc?e=&p=AyIGZRhfHQARDlMTWRUyEgZUGF8RAxQBVRNZHQIiQwpDBUoyS0IQWhkeHAxBFQQAQB1AWQkFGk1dRFkRdQtUWgxxAV4pVEBkRAtfGhtASEM7Qw4ZAhMGVh9fFAQUB10ZUxUVRUQLR1dHQ1AQAlgFSQ5ARhcrW09SVno0YBN3QBFVBxM7EUVVDlRGKxkOIgZlG1oUAxYOVh9SFzIiB1IrGnsCEwNSGF0UAyIGZRtcFQIbD1AfXRIAEg5lHFscMkJbBVADSlQRBlATayUyETdlK1slASJFO09aQgRCAgZLCBBQGgIGTw9GB0dUXR1fF1YVB1QTXBILIgVUGl8c)\n    - [Python自动化运维快速入门](https://union-click.jd.com/jdc?e=&p=AyIGZRhYFQcQBFQTWRMyEgZUGFwUBxYCVRhTEAsiQwpDBUoyS0IQWhkeHAxBFQQAQB1AWQkFGk1dRFkRdQtUWgxxAV4pVEBkRAtfGhtASEM7Qw4ZAhMGVhxaEAYXB1YTXhwVRUQLR1dHQ1AQAlgFSQ5ARhcrIRBBSVojXQR1XRVPCEEuD39xbApBKxkOIgZlG1oUAxYOVh9SFzIiB1IrGnsCEwVRE1McByIGZRtcFQIbD1AcWhUAGwdlHFscMkJbBVADSlQRBlATayUyETdlK1slASJFO09aQgRCAgZLCBBQGgIGTw9GB0dUXR1fF1YVB1QTXBILIgVUGl8c)\n\n- psutil https://pypi.org/project/psutil/\n    - 安装\n        - pip install psutil\n    - 硬盘\n        - disk = psutil.disk_usage('/')\n    - 内存\n        - mem = psutil.virtual_memory()\n    - CPU\n        - cpup = psutil.cpu_percent(interval=10)\n    - IP\n        - psutil.net_if_addrs()\n\n- 钉钉 https://github.com/zhuifengshen/DingtalkChatbot\n    - 新建 群聊\n    - 新建 机器人\n        - webhook\n            - https://oapi.dingtalk.com/robot/send?access_token=xx\n        - 密钥 可以重置\n            - xx\n    - api\n\n- 服务器部署\n    - 多台服务器，部署麻烦\n        - Python跨平台打包 pyinstaller\n        - 使用 docker \n        - golang 语言\n        \n    - 安装Python3\n        - CentOS\n            - yum  install python36u-pip\n        - Ubuntu \n            - apt-get install python3.6\n        - pip install virtualenv \n        - 找出python3的位置\n            - which python3\n                - /usr/bin/python3.6\n    - 虚拟环境\n        - virtualenv -p /usr/bin/python3.6 ~/py36\n        - 激活虚拟环境 source ~/py36/bin/activate\n        - 安装 lib\n            - pip install psutil\n            - pip install DingtalkChatbot\n        - 测试 \n            - which python3\n            - /home/work/py36/bin/python3 /home/work/python/server_report.py\n            \n    - crontab 定时执行 [一文精通 crontab从入门到出坑](https://zhuanlan.zhihu.com/p/58719487)\n        - crontab -e\n        - 每隔20分钟执行\n            - */20 * * * * /home/work/py36/bin/python3 /home/work/python/server_report.py\n        - 早上9.00固定发送钉钉消息\n            - * 9 * * * /home/work/py36/bin/python3 /home/work/python/server_report.py"
  },
  {
    "path": "2021/1-27-server-psutil/server_report.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2021/1/27 10:33\n# @File    : t1.py\n\n\n\"\"\"\nt1.py:\n\"\"\"\nimport psutil\n\n\ndef cpu_percent():\n    rt = ''\n\n    # psutil.net_if_addrs()\n    d = psutil.net_if_addrs()\n    ip = ''\n    for itf, l in d.items():\n        # print(itf)\n        for x in l:\n            print(x,x.netmask)\n            # print(x.netmask)\n            # if x.netmask=='255.255.255.0':#网段掩码\n            #     print('\\t',x.address)\n            if x.address.startswith('192.'):  # TODO 修改ip\n                print('\\tIP:', x.address)\n                ip = x.address\n                break\n            # if isinstance():\n            #\n\n    mem = psutil.virtual_memory()\n    if mem.percent >= 70:\n        rt += f'内存-百分比：{mem.percent}\\n'\n        # psutil.net_if_stats()\n\n    disk = psutil.disk_usage('/')\n    if disk.percent >= 70:\n        rt += f'硬盘-百分比：{disk.percent}\\n'\n\n    # cpu_count=psutil.cpu_count()\n    # for i in range(cpc):\n    #     print(f'CPU {i} : {psutil.cpu_percent(i)}')\n\n    # s1 = f'CPU 10秒统计: {psutil.cpu_percent(interval=10)}'\n    # print(s1)\n    # s2 = f'{cpu_count}个CPU 10秒统计 : {psutil.cpu_percent(interval=10, percpu=True)}'\n    # print(s2)\n\n    cpup = psutil.cpu_percent(interval=10)\n    if cpup >= 10:\n        rt += f'CPU 10秒统计：{cpup}\\n'\n\n    # rt = f'''服务器 {ip}\n    # 硬盘-百分比：{disk}\n    # 内存-百分比：{mem.percent}\n    # {s1}\n    # {s2}\n    #\n    # '''\n    if rt != '':\n        rt = f'统计：\\n服务器 {ip}\\n' + rt\n    return rt\n    pass\n\n\ndef main():\n    from dingtalkchatbot.chatbot import DingtalkChatbot\n\n    # WebHook地址\n    webhook ='https://oapi.dingtalk.com/robot/send?access_token=xx'\n    secret ='xx'\n\n    # 初始化机器人小丁\n    xiaoding = DingtalkChatbot(webhook, secret=secret)  # 方式二：勾选“加签”选项时使用（v1.5以上新功能）\n\n    # Text消息@所有人\n    msg = cpu_percent()\n    if msg == '':\n        print('服务器正常，不发消息')\n        return\n\n    # msg = '统计：\\n' + cpu\n    print(msg)\n    rs = xiaoding.send_text(msg=msg, is_at_all=False, at_dingtalk_ids=['xx'])  # TODO @某人\n    print('发送完毕', rs)\n    pass\n\n\nif __name__ == '__main__':\n    main()\n    # cpu_percent()\n"
  },
  {
    "path": "2021/1-31-scapy-graph-svg/Graphviz/dot/test.dot",
    "content": "digraph G {\n   rankdir=LR;\n   a -> b;\n   b -> c;\n   subgraph x{\n       rank=same;\n       b->d;\n   }\n   subgraph y{\n       //rank = same;\n       d->e;\n   }\n   subgraph z{\n     rank=same;\n     c->e;\n   }\n \n}"
  },
  {
    "path": "2021/1-31-scapy-graph-svg/Graphviz/生成动态路由轨迹图.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# 生成动态路由轨迹图\\n\",\n    \"\\n\",\n    \"图书\\n\",\n    \"\\n\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from scapy.all import traceroute\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# target=['cn.bing.com','bing.com']\\n\",\n    \"target=['www.apple.com.cn',]\\n\",\n    \"dport = [80,443] #扫描的端口列表\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Begin emission:\\n\",\n      \"Finished sending 60 packets.\\n\",\n      \"\\n\",\n      \"Received 62 packets, got 60 answers, remaining 0 packets\\n\",\n      \"   115.152.251.162:tcp443 115.152.251.162:tcp80 \\n\",\n      \"1  172.17.0.1      11     172.17.0.1      11    \\n\",\n      \"2  115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"3  115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"4  115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"5  115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"6  115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"7  115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"8  115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"9  115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"10 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"11 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"12 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"13 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"14 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"15 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"16 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"17 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"18 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"19 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"20 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"21 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"22 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"23 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"24 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"25 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"26 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"27 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"28 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"29 115.152.251.162 SA     115.152.251.162 SA    \\n\",\n      \"30 115.152.251.162 SA     115.152.251.162 SA    \\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"res,unans = traceroute(target,dport=dport,retry=-2) #启动路由跟踪 \"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"res.graph(target=\\\"> test-app4.svg\\\") #生成svg矢量图形\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"\\u001b[0;31mSignature:\\u001b[0m\\n\",\n       \"\\u001b[0mtraceroute\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mtarget\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mdport\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m80\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mminttl\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m1\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mmaxttl\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m30\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0msport\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;34m<\\u001b[0m\\u001b[0mRandShort\\u001b[0m\\u001b[0;34m>\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0ml4\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mfilter\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mtimeout\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;36m2\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0mverbose\\u001b[0m\\u001b[0;34m=\\u001b[0m\\u001b[0;32mNone\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m    \\u001b[0;34m**\\u001b[0m\\u001b[0mkargs\\u001b[0m\\u001b[0;34m,\\u001b[0m\\u001b[0;34m\\u001b[0m\\n\",\n       \"\\u001b[0;34m\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\",\n       \"\\u001b[0;31mDocstring:\\u001b[0m\\n\",\n       \"Instant TCP traceroute\\n\",\n       \"\\n\",\n       \":param target:  hostnames or IP addresses\\n\",\n       \":param dport:   TCP destination port (default is 80)\\n\",\n       \":param minttl:  minimum TTL (default is 1)\\n\",\n       \":param maxttl:  maximum TTL (default is 30)\\n\",\n       \":param sport:   TCP source port (default is random)\\n\",\n       \":param l4:      use a Scapy packet instead of TCP\\n\",\n       \":param filter:  BPF filter applied to received packets\\n\",\n       \":param timeout: time to wait for answers (default is 2s)\\n\",\n       \":param verbose: detailed output\\n\",\n       \":return: an TracerouteResult, and a list of unanswered packets\\n\",\n       \"\\u001b[0;31mFile:\\u001b[0m      /usr/local/lib/python3.7/dist-packages/scapy/layers/inet.py\\n\",\n       \"\\u001b[0;31mType:\\u001b[0m      function\\n\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"traceroute?\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"<Unanswered: TCP:0 UDP:0 ICMP:0 Other:0>\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"unans\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"ename\": \"TypeError\",\n     \"evalue\": \"plot() missing 1 required positional argument: 'f'\",\n     \"output_type\": \"error\",\n     \"traceback\": [\n      \"\\u001b[0;31m---------------------------------------------------------------------------\\u001b[0m\",\n      \"\\u001b[0;31mTypeError\\u001b[0m                                 Traceback (most recent call last)\",\n      \"\\u001b[0;32m<ipython-input-13-a9798138f1b2>\\u001b[0m in \\u001b[0;36m<module>\\u001b[0;34m\\u001b[0m\\n\\u001b[0;32m----> 1\\u001b[0;31m \\u001b[0mres\\u001b[0m\\u001b[0;34m.\\u001b[0m\\u001b[0mplot\\u001b[0m\\u001b[0;34m(\\u001b[0m\\u001b[0;34m)\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0;34m\\u001b[0m\\u001b[0m\\n\\u001b[0m\",\n      \"\\u001b[0;31mTypeError\\u001b[0m: plot() missing 1 required positional argument: 'f'\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"res.plot()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.7.3\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 4\n}\n"
  },
  {
    "path": "2021/1-31-scapy-graph-svg/README.md",
    "content": "\n# scapy生成动态路由轨迹图\n\n- 视频 [【编程】scapy生成动态路由轨迹图 Python docker Ubuntu graphviz](https://www.bilibili.com/video/BV15r4y1K7wj/)\n\n- [Python自动化运维：技术与最佳实践](https://union-click.jd.com/jdc?e=&p=AyIGZRhfHQARDlMTWRUyEgZUGF8RAxQBVRNZHQIiQwpDBUoyS0IQWhkeHAxBFQQAQB1AWQkFGk1dRFkRdQtUWgxxAV4pVEBkRAtfGhtASEM7Qw4ZAhMGVh9fFAQUB10ZUxUVRUQLR1dHQ1AQAlgFSQ5ARhcrW09SVno0YBN3QBFVBxM7EUVVDlRGKxkOIgZlG1oUAxYOVh9SFzIiB1IrGnsCEwNSGF0UAyIGZRtcFQIbD1AfXRIAEg5lHFscMkJbBVADSlQRBlATayUyETdlK1slASJFO09aQgRCAgZLCBBQGgIGTw9GB0dUXR1fF1YVB1QTXBILIgVUGl8c) \n    - 第3章 3.3\n  \n- 步骤\n    - 启动docker\n        - https://hub.docker.com/r/play4fun/moviepy_chinese_font\n        - 更新apt源，sources.list\n        - 安装\n            - apt-get install graphviz\n            - pip3 install scapy\n            \n- 代码\n    - [DOT + graphviz 轻松画图](https://www.cnblogs.com/alenoscar/p/6064737.html)\n    - [ubuntu下安装Graphviz](https://blog.csdn.net/caiandyong/article/details/44408831)\n    "
  },
  {
    "path": "2021/1-4-bilibili_api/README.md",
    "content": "## bilibili_api\n\n- 视频 [【编程】哔哩哔哩的各种API，Python](https://www.bilibili.com/video/BV1Q64y1Z7LD/)\n\n## 获取最新代码\n- git clone -b develop https://github.com/Passkou/bilibili_api.git\n    - cd bilibili_api/\n    - python setup.py install\n    \n- pip\n    - https://pypi.org/project/bilibili-api/\n    - 要先更新Python到3.8以上\n    - pip install bilibili-api==3.1.6   \n        - 不是最新代码\n    \n- 文档\n    - 快速开始 https://github.com/Passkou/bilibili_api#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B\n    - 网页搜索 https://github.com/Passkou/bilibili_api/blob/develop/docs/%E6%A8%A1%E5%9D%97/bilibili_api.md#web_search\n    - 新增上传视频接口  https://github.com/Passkou/bilibili_api/issues/45"
  },
  {
    "path": "2021/1-5-github-markdown-html/README.md",
    "content": "\n## 把repo仓库的Markdown转成HTML\n\n- 视频 ?\n    - 上个视频 [【编程】Github API 的使用-PyGithub](https://www.bilibili.com/video/BV1fh411Z777/)\n    \n- markdown\n    - 不错 https://www.devdungeon.com/content/convert-markdown-html-python\n    - [Python下将Markdown转为HTML](https://www.jianshu.com/p/0eff6cba1b7f)\n    - [Python Markdown Extensions](https://www.dj-bauer.de/python-markdown-extensions-en.html)\n    \n```\nimport markdown\n\nmarkdown.markdownFromFile(\n    input='input.md',\n    output='output.html',\n    encoding='utf8',\n)\n```    "
  },
  {
    "path": "2021/1-5-github-markdown-html/repo_markdown_html1.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2021/1/5 00:20\n# @File    : repo_markdown_html1.py\n\n\n\"\"\"\nrepo_markdown_html1.py:\n\"\"\"\nfrom github import Github\nfrom pprint import pprint\nfrom config import token\nimport codecs, markdown\n\ng = Github(token)\n\n\ndef main():\n    repo = g.get_repo(\"makelove/Programer_Log\")\n    for content in repo.get_contents(''):\n        print('-' * 4, content.name)\n        if content.name.endswith('.md'):\n            # break\n            html = markdown.markdown(content.decoded_content.decode())\n            # 创建文件夹\n            fp22 = 'repo_html/' + content.name + '.html'\n            with codecs.open(fp22, mode=\"wb\", encoding=\"utf-8\") as output_file:\n                output_file.write(html)\n                print('markdown html', fp22)\n            pass\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2021/2-23-great-code/README.md",
    "content": "\n## 怎样 编写出 高质量代码 ？\n\n- 视频 [【编程】怎样 编写Python【高质量代码】？推荐2本图书](https://www.bilibili.com/video/BV1Jb4y1R7C7/)\n\n- 我的建议\n    - 添加注释 笔记 \n    - 合理规划 代码结构\n        - 函数\n        - 模块，类\n        - 数据结构\n    - 优雅的代码\n        - 看别人是怎么写代码的\n        - 看下面2本 图书\n\n    \n    \n- 图书\n    - [《编写高质量代码：改善Python程序的91个建议》](https://union-click.jd.com/jdc?e=&p=AyIGZRprFQIbA1McXB0yVlgNRQQlW1dCFFlQCxxKQgFHRE5XDVULR0UVAhsDUxxcHR1LQglGaxFRbFEnfCxDYWlfBnAwFFxVdxRmHWUOHjdUK1sUAxMDXBhfHAAiN1Uca0NsEgZUGloUBxMDVitaJQIVB1AaXxcHGwFTHVglBRIOZUsHRUlKWAMYWhAKIjdlGGslMhI3VisZewIWUgcZXUBSQgMHSV4TVkJUVh1aRwEUVVdMDBJQRlUBK1kUAxYO)\n    - [《Effective Python：编写高质量Python代码的59个有效方法》](https://union-click.jd.com/jdc?e=&p=AyIGZRtSFAcRAVQZWBUyEgZUGFsdBRMHUBxdHQAiQwpDBUoyS0IQWhkeHAxfEE8HCllHGAdFBwsCEwZWG1MSAxICUh1TFx1LQglGa1VnEm49XzlPYFcEAxkwZl5FXTVHBmUOHjdUK1sUAxMDXBhfHAAiN1Uca1RsEgZUGV0SBRQ3VCtbEgIXBlEZXxcCFgFTK1wVCyJXCUsQTV1EBFQeUyUyIgRlK2sVMhE3F3VbEVdABVNOC0UGQFVQHQ9FUREBVElYE1AQUAIcCUFQRjdXGloRCw%3D%3D)"
  },
  {
    "path": "2021/2-24-movie-cut/README.md",
    "content": "\n## 剪映 App的使用体验\n\n- 视频 [【经验】剪映 App的使用体验，怎样剪辑视频？](https://www.bilibili.com/video/BV18r4y1N7Ye/)\n\n- 官网\n    - https://lv.ulikecam.com/\n\n- 支持多平台 \n    - iOS iPhone手机\n    - Android 安卓\n    - macOS 苹果电脑系统\n    - Windows \n\n- 文本\n    - 添加字幕，经常用\n    - 识别字幕，识别视频里的对话\n        - 支持英文\n    - 识别歌词\n\n- 素材库\n    - 导入 黑白场，用来分割片段，添加字幕\n\n- 音频\n    - 导入mp3，在软件自带的素材库找不到\n    - 使用 音效素材，收音不理想\n\n- 剪辑理念\n    - 看一遍所有的素材，打上备注\n        - 构思一个大概方案\n            - 哪些主题，段落\n            - 使用哪些素材\n            - 就像【写作文】一样\n    - 导入素材进行剪辑\n        - 剪取合适的片段，去掉不合格的片段\n        - 插入黑白场，区分段落\n        - 打上字幕，帮助自己理清思路\n    - 音频\n        - 一般保留原声\n        - 收音不好，使用其他音效代替\n        - 加入音乐\n    - 检查\n    - 导出\n        - 一般是1080p 30帧\n        - 如果导出效果变差\n            - 提高到 2k 60帧\n    - 提醒 观众 点赞关注收藏\n        - 片头\n        - 片尾\n\n- 拍摄设备\n    - GoPro Max 全景相机\n        - 摩托车骑行log，挂在头盔下巴\n    - 红米Note 7 Pro 手机\n        - 手持，随手拍，双手持稳定一点\n    - 大疆无人机，航拍\n    - 佳能70D单反，远距离拍摄\n        - 镜头伸缩，构图\n        - 对焦，从模糊到清晰\n"
  },
  {
    "path": "2021/2-28-GitHub-short-link/README.md",
    "content": "\n\n## 使用【GitHub Page】制作【短链接平台】\n\n- 视频 \n    - [【编程】使用【GitHub Page】制作 【短链接服务】，免费！Python](https://www.bilibili.com/video/BV1Tf4y147HD/)\n    - [【编程】GitHub Pages免费图床，淘宝客，淘口令二维码，Python](https://www.bilibili.com/video/BV1iV411v7oL/)\n\n- 免费\n    - 唯一的成本是域名，每年要续费\n    - 域名的长度要尽可能地短，例如t.cn \n        - 减少短链接长度\n- 我的网站链接\n    - 重定向\n        - https://dark.net.cn/sl/t1.htm\n    - 二维码\n        - https://dark.net.cn/qr/tk3.png\n\n- 参考\n    - [Create a new file in the repository](https://pygithub.readthedocs.io/en/latest/examples/Repository.html#create-a-new-file-in-the-repository)\n    - [HTML页面跳转（重定向）的五种方法](https://blog.csdn.net/guoshenglong11/article/details/22306721)\n    - [HTML 5 meta 标签](https://www.w3school.com.cn/html5/html5_meta.asp)\n    - 运行代码 https://www.w3school.com.cn/tiy/t.asp?f=html_redirect\n\n- 现有的平台\n    - 都不能用了\n    - 2019年的文章 [有哪些靠谱的短链接服务？主流大平台短链接优劣对比分析](https://blog.csdn.net/daiwoyigebing/article/details/103280941)\n    - 唯一好用的是微博短链接t.cn\n        - 之前的api都关闭了，不能使用。\n        - 有人破解了，可以购买\n        - 登录微博，发条微博，找出里面的短链接\n            - 模拟浏览器操作\n- 怎样赚钱？\n    - 在跳转之前，显示淘宝广告，自己的转链\n        - https://dark.net.cn/sl/redirect.htm\n        \n- 免费图床\n    - 读入文件，然后使用repo.create_file上传\n    - 淘宝客，淘口令二维码\n        - 使用 [qrcode](https://github.com/lincolnloop/python-qrcode),再传到byteIO\n    \n```python\n    with open(entry, 'rb') as input_file:\n        data = input_file.read()\n    if entry.endswith('.png'):\n        data = base64.b64encode(data)\n```"
  },
  {
    "path": "2021/2-28-GitHub-short-link/push_qrcode1.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2021/3/1 12:17\n# @File    : push_qrcode1.py\n\n\n\"\"\"\npush_qrcode1.py:\n\"\"\"\n\nimport base64\nimport qrcode\nfrom github import Github\nfrom config import token\n\ng = Github(token)\n# repo = g.get_repo(\"MartinHeinz/python-project-blueprint\")\nrepo = g.get_repo(\"makelove/makelove.github.io\")\n\n\ndef QRCode(text):\n    qr = qrcode.QRCode(\n        version=1,\n        error_correction=qrcode.constants.ERROR_CORRECT_L,\n        box_size=10,\n        border=2,\n    )\n    # data = '8👈￥V0RPcyl5PTI￥ https://m.tb.cn/h.4lGcAwM  兔笼全景外壳gopro max配件gopromax麦克风拓展固定支架冷靴边框'\n    # text='￥V0RPcyl5PTI￥兔笼全景外壳gopro max配件gopromax麦克风拓展固定支架冷靴边框'\n    qr.add_data(text)\n    qr.make(fit=True)\n\n    img = qr.make_image(fill_color=\"black\", back_color=\"white\")\n    # img.save('tkl-标题.png')\n    # data = img.get_image()\n    import io\n    img_byte_arr = io.BytesIO()\n    img.save(img_byte_arr, format='PNG')\n    data = img_byte_arr.getvalue()\n    return data\n\n\ndef main(text, path=None):\n\n    data = QRCode(text)\n    # content = base64.b64encode(data)#不需要\n    # path = \"qr/tk2.png\"  # TODO 存储起来，与原始URL映射\n    # rs = repo.create_file(path=path, message=\"tkl\", content=data, branch=\"master\")\n\n    if path is None:\n        path = \"qr/tk3.png\"  # TODO 存储起来，与原始URL映射\n        rs = repo.create_file(path=path, message=\"test\", content=data, branch=\"master\")\n    else:\n        contents = repo.get_contents(path)\n        rs = repo.update_file(contents.path, message=\"update_file\", content=data, sha=contents.sha, branch=\"master\")\n\n    print('结果：', rs)#{'commit': Commit(sha=\"6821ebd50c434a2061b34b2904d56135a5809838\"), 'content': ContentFile(path=\"qr/tk2.png\")}\n    turl = 'https://dark.net.cn/' + path  # https://dark.net.cn/qr/tk2.png\n    print('目标URL：', turl)\n    pass\n\n\nif __name__ == '__main__':\n    text = '￥V0RPcyl5PTI￥兔笼全景外壳gopro max配件gopromax麦克风拓展固定支架冷靴边框'\n    text = '啊GGHCcyrdkcR哈罗德 RODE VideoMic NTG麦克风相机枪式锂电手机录音麦笔记本话筒'\n    # main(text)\n\n    # text = '￥uZCLcyr1dhz￥高钙乳酪棒 儿童零食芝士棒健康营养120g'\n    text = '9👈，RpUacyrUwru信 正品INTEX探险者二人充气船两人充气艇橡皮划艇2人冲锋独木舟加厚'\n    path = \"qr/tk3.png\"\n    main(text,path)\n"
  },
  {
    "path": "2021/2-28-GitHub-short-link/short_link1.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2021/2/28 16:29\n# @File    : short_link1.py\n\n\n\"\"\"\nshort_link1.py:\n\n效果\nhttps://dark.net.cn/sl/redirect.htm\nhttps://dark.net.cn/sl/t1.htm\n\"\"\"\nimport sys\nimport base64\nfrom github import Github\nfrom config import token\n\ng = Github(token)\n# repo = g.get_repo(\"MartinHeinz/python-project-blueprint\")\nrepo = g.get_repo(\"makelove/makelove.github.io\")\n\n\ndef main(url, path=None):\n    # git\n\n#     content = f'''<head>\n# <meta http-equiv=\"refresh\" content=\"0;url={url}\">\n# </head>'''\n\n    #添加广告\n    content = f'''<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<meta http-equiv=\"refresh\" content=\"0;url={url}\"> \n</head>'''\n\n    if path is None:\n        path = \"sl/t1.htm\"  # TODO 存储起来，与原始URL映射\n        rs = repo.create_file(path=path, message=\"test\", content=content, branch=\"master\")\n    else:\n        contents = repo.get_contents(path)\n        rs = repo.update_file(contents.path, message=\"update_file\", content=content, sha=contents.sha, branch=\"master\")\n    print('结果：', rs)\n    turl = 'https://dark.net.cn/' + path\n    print('目标URL：', turl)\n\n    # rs['commit'].sha\n    # cmt=repo.get_commit(rs['commit'].sha)\n\n    # sha = data[\"pull_request\"][\"head\"][\"sha\"]\n    # repo.get_commit(sha=sha).create_status(\n    #     state=\"pending\",\n    #     target_url=\"https://FooCI.com\",\n    #     description=\"FooCI is building\",\n    #     context=\"ci/FooCI\"\n    # )\n    pass\n\n\nif __name__ == '__main__':\n    # url=sys.argv[1]\n    url = 'https://m.tb.cn/h.4lGcAwM'  # 60天\n    # 长连接\n    # main(url)\n\n\n    #\n    url = 'https://m.tb.cn/h.4P4mv6C?sm=2cc4c6'\n    path = \"sl/t1.htm\"  # TODO 存储起来，与原始URL映射\n    main(url, path)\n"
  },
  {
    "path": "2021/3-13-chrome-book/README.md",
    "content": "\n\n## Chrome扩展开发\n- 视频 [【编程】轻松上手Chrome扩展开发，JavaScript json CSS](https://www.bilibili.com/video/BV1w5411P75n/)\n\n- 建议\n    - 大家要研究技术的时候，建议先去看图书\n        - 因为图书集中了作者的所有经验，而网上的文章都是碎片化的,不完整\n        - 看图书可以一览全景,图书汇集了所有的经验，取自己需要的\n\n- 图书\n    - 《Chrome扩展及应用开发》https://book.douban.com/subject/25980975/\n        - 代码 https://github.com/sneezry/chrome_extensions_and_apps_programming \n        - 修改后的代码仓库 https://github.com/makelove/bookChromeExtensions\n\n    - 《Programming Chrome Apps》 英文\n        - http://product.dangdang.com/1460304694.html \n\n- 参考\n    - ch5 网络请求\n        - [Chrome Extension 的 webRequest模块的解读](https://www.cnblogs.com/devcjq/articles/4232029.html)"
  },
  {
    "path": "2021/3-15-wallpaper/README.md",
    "content": "\n ## 跨平台，设置桌面壁纸墙纸\n\n- 视频 [【编程】跨平台，设置桌面壁纸，Python，Go语言。win10，macOS](https://www.bilibili.com/video/BV1Ph411X7z9/)\n\n - 语言\n    - Python win10 dll\n    - Go 生成可执行文件，跨平台\n    \n- 参考\n    - 必应壁纸\n        - https://cn.bing.com/\n    - [五行Python代码自动换你的电脑桌面壁纸（内附源码和exe）](https://cloud.tencent.com/developer/article/1661753)\n        - [SystemParametersInfo参数](https://blog.csdn.net/theplayerwuliang/article/details/6049934)\n    - Go\n        - 使用的库 https://github.com/reujab/wallpaper"
  },
  {
    "path": "2021/3-15-wallpaper/壁纸/README.MD",
    "content": "\n\n- golang 设置 墙纸 win10\n    - https://blog.csdn.net/singleyellow/article/details/83714790\n    - https://blog.csdn.net/CodyGuo/article/details/73013557\n    \n    \n- Windows 下执行wp2.exe 每次将会更换墙纸\n\n- 编译\n    - go build -v -o wp_macos wp2.go\n    - CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -v -o wp_win10.exe wp2.go"
  },
  {
    "path": "2021/3-15-wallpaper/壁纸/goWP.go",
    "content": "// https://blog.csdn.net/singleyellow/article/details/83714790\n// 不是go语言\n#include <stdio.h>\n#include <Windows.h>\n\nint main()\n{\n\t// 壁纸格式给jpg也行，不像有些地方说的非要是bmp\n\tDWORD l_dwReturn=SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0,\n\t\"C:\\\\Users\\\\work\\\\Downloads\\\\wp1.jpg\" ,\n\tSPIF_UPDATEINIFILE);\n\tDWORD l_dwError=GetLastError();\n\treturn 0;\n}\n"
  },
  {
    "path": "2021/3-15-wallpaper/壁纸/wp1.go",
    "content": "//简单测试\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/reujab/wallpaper\"\n)\n\nfunc main() {\n\tbackground, err := wallpaper.Get()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(\"当前Current wallpaper:\", background)\n//     wallpaper.SetFromFile(\"/Users/play/Downloads/桂林旅游GuiLin819/IMG_20200819_130920.jpg\")//本地图片\n\n\t//wallpaper.SetFromURL(\"https://cn.bing.com/th?id=OHR.Comma_ZH-CN3584865247_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp\")//网络图片 OK\n\twallpaper.SetFromURL(\"https://api.ixiaowai.cn/gqapi/gqapi.php\")//OK\n\tfmt.Println(\"设置完毕\")\n}"
  },
  {
    "path": "2021/3-15-wallpaper/壁纸/wp1.py",
    "content": "# -*- coding:utf-8 -*-\n'''\n# @FileName  :wp1.py\n# @Time      :2021/3/4 10:27\n# @Author    :play4fun\n#\nhttps://cloud.tencent.com/developer/article/1661753\n五行Python代码自动换你的电脑桌面壁纸（内附源码和exe）\n\nhttps://blog.csdn.net/theplayerwuliang/article/details/6049934\n设置桌面背景墙纸，SystemParametersInfo(20, True, 图片路径, 1)\n\n具体文档\nhttps://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfow\n\nAPI\n返回json\nhttps://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1\n努沙杜瓦海岸与防波堤，印度尼西亚巴厘岛 (© Dkart/Getty Images)\n\n返回XML\nhttps://cn.bing.com/HPImageArchive.aspx?idx=0&n=1\n图片地址\nhttps://cn.bing.com/th?id=OHR.Comma_ZH-CN3584865247_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp\n'''\n\nimport requests\nimport ctypes\nimport os\n\n\ndef main():\n    path = os.getcwd()\n    print(path)\n    # return\n\n    # ctypes.windll.user32.SystemParametersInfoW(20, 0, r'C:\\Users\\work\\Downloads\\th.jfif'\n    # , 0)  # 设置桌面,可以\n\n    url = 'https://area.sinaapp.com/bingImg/'\n    rs = requests.get(url)\n    print('壁纸地址：', rs.url)\n    fp = f'{path}/bingImg.jpg'\n    with open(fp, 'wb') as f:\n        f.write(rs.content)\n    ctypes.windll.user32.SystemParametersInfoW(20, 0, fp, 0)\n\n    pass\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2021/3-15-wallpaper/壁纸/wp2.go",
    "content": "// 数种动漫和风景壁纸随机API，你值得拥有！\n// https://cloud.tencent.com/developer/article/1617028\n\npackage main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\n\t\"github.com/levigross/grequests\"\n\t\"github.com/reujab/wallpaper\"\n)\n\nfunc getWp() string { //获取壁纸图片地址\n\tro := &grequests.RequestOptions{\n\t\t// Params: map[string]string{\"Hello\": \"Goodbye\"},\n\t\tRedirectLimit:      -1,\n\t\tInsecureSkipVerify: true,\n\t}\n\tresp, err := grequests.Get(\"https://api.ixiaowai.cn/gqapi/gqapi.php\", ro)\n\tif err != nil {\n\t\tlog.Fatalln(\"Unable to make request: \", err)\n\t}\n\turl := resp.Header[\"Location\"][0]\n\treturn url\n}\n\nfunc main() {\n\n\tbackground, err := wallpaper.Get()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(\"当前Current wallpaper:\", background)\n\turl := getWp()\n\tfmt.Println(\"墙纸:\", url)\n\twallpaper.SetFromURL(url) //OK\n\tfmt.Println(\"设置完毕\")\n}\n"
  },
  {
    "path": "2021/3-17-VMagicMirror/README.md",
    "content": "\n\n## 怎样制作自己的虚拟偶像\n\n- 视频 [【轻松搞定】怎样制作自己的虚拟偶像？VMagicMirror，开源免费！](https://www.bilibili.com/video/BV1BZ4y1w7iw/)\n\n- 修改/etc/hosts\n```\n185.199.111.153 malaybaku.github.io\n104.18.31.199 accounts.pixiv.net\n104.18.31.199 oauth.secure.pixiv.net\n```\n\n- 参考\n    - 官网 https://malaybaku.github.io/VMagicMirror/en/index\n        - GitHub源代码 https://github.com/malaybaku/VMagicMirror\n    - 下载 https://malaybaku.github.io/VMagicMirror/en/download\n        - BOOTH 网站需要注册\n        - 解压到硬盘，点击VMagicMirror.exe运行\n            - 2个窗口，不要关闭\n- 使用 https://malaybaku.github.io/VMagicMirror/en/get_started\n    - 设置语言为英文\n    - 在VRoid Hub中使用模型，需要验证签约\n        - 拿到一个授权代码，输入\n        - 在模型窗口选择模型，下载\n    - 嘴唇与麦克风同步 LipSync口型同步\n        - 一开始正常，后来就不同步了，奇怪！\n    - 摄像头，头部跟踪\n    - 手部追踪 ？？要买Leap Motion\n    - 言语到运动 Word To Motion 控制面部表情的功能\n        - 使用键盘的数字键，切换不同表情动作\n    - PPT幻灯片演示 \n        - 选中Presentation-like hand移动VRM的右手，就好像他/她正在演示中一样。\n    - 窗口透明\n        - 默认是绿幕\n    - 外部跟踪器 Ex.Tracker \n        - 文档 https://malaybaku.github.io/VMagicMirror/en/docs/external_tracker\n        - 支持Face ID的iPhone App ： iFacialMocap\n    - 直播 https://malaybaku.github.io/VMagicMirror/en/tips/virtual_camera\n        - 安装OBS Studio\n            - 创建一个新来源，选择Game Capture游戏捕获\n            - 选择Mode到Capture Specific Window。\n            - 单击右侧的Window，然后选择[VMagicMirror.exe]: VMagicMirror。\n            - 检查Allow Transparancy。\n            - 调整位置，缩放"
  },
  {
    "path": "2021/3-19-Chrome-tabs/README.md",
    "content": "\n\n## Chrome标签组功能\n\n- 视频 [【编程】Chrome标签组，把后台打开的页面合并一组](https://www.bilibili.com/video/BV1g64y1D7yE/)\n\n- 需求\n    - 把后台打开的页面合并一组\n        - 平时经常搜索一些东西\n        - 习惯打开多个网页，再慢慢看\n\n- 参考\n    - API文档 \n        - [chrome.tabs](https://developer.chrome.com/docs/extensions/reference/tabs/)\n        - [chrome.tabGroups](https://developer.chrome.com/docs/extensions/reference/tabGroups/)\n\n- 代码\n    - https://github.com/SibiAkkash/TabGroups-shortcuts\n"
  },
  {
    "path": "2021/3-19-Chrome-tabs/TabGroups-shortcuts/README.md",
    "content": "# TabGroups-shortcuts\nKeyboard shortcuts for tabGroups in Chrome\n\n\n- 源代码 https://github.com/SibiAkkash/TabGroups-shortcuts\n    - 在它的基础上，添加功能\n        - 按住Ctrl键打开后台链接，标签自动分组"
  },
  {
    "path": "2021/3-19-Chrome-tabs/TabGroups-shortcuts/background.js",
    "content": "const CREATE_NEW_GROUP = \"create_new_group_with_current_tab\";\nconst ADD_TO_GROUP = \"add_to_group\";\n\nchrome.runtime.onInstalled.addListener(() =>\n\tconsole.log(\"installed extension\")\n);\n\nchrome.commands.onCommand.addListener((command) => {\n\tif (command === CREATE_NEW_GROUP) {\n\t\tcreateNewGroup();\n\t} else if (command === ADD_TO_GROUP) {\n\t\taddToGroup();\n\t}\n});\n\nconst createNewGroup = () => {\n\tconsole.log(\"creating new group...\");\n\tchrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {\n\t\tconsole.log(tabs);\n\t\tconst { id } = tabs[0];\n\t\t// create new group and add current tab to it\n\t\tchrome.tabs.group({ tabIds: id }, (groupId) =>\n\t\t\tconsole.log(`tab was added to group: ${groupId}`)\n\t\t);\n\t});\n};\n\nconst addToGroup = () => {\n\tconsole.log(\"get groups\");\n\t// get all tab groups\n\tchrome.tabGroups.query((queryInfo = {}), (groups) => {\n\t\tconsole.log(groups);\n\t});\n};\n\n// \"_execute_action\": {\n//   \"suggested_key\": {\n//     \"default\": \"Ctrl+Q\",\n//     \"mac\": \"MacCtrl+Q\"\n//   },\n//   \"description\": \"Opens hello.html\"\n// },\n\n\n// new\nchrome.tabs.onCreated.addListener(function (tab) {\n\tconsole.log('新建:', tab);\n\t// pendingUrl: \"chrome://newtab/\"\n\tif (tab.pendingUrl != \"chrome://newtab/\") {//在后台打开，按Ctrl键点击链接\n\n\t\t////新建组后，再打开第二个标签\n\t\tchrome.tabs.get(tab.openerTabId, function (tab2) {\n\t\t\tif (tab2.groupId == -1) {//如果上个标签没有加入组\n\t\t\t\tchrome.tabs.group({ tabIds: tab.openerTabId }, (groupId) => {\n\t\t\t\t\tconsole.log(`新建组，tab was added to group: ${groupId}`)//TODO 怎样获取groupId\n\t\t\t\t});\n\t\t\t\t//把新标签 加到 新组里\n\t\t\t\tchrome.tabs.get(tab.openerTabId, function (tab2) {\n\t\t\t\t\tchrome.tabs.group({ tabIds: tab.id, groupId: tab2.groupId }, (groupId) =>\n\t\t\t\t\t\tconsole.log(`后台打开的tab${tab.id} was added to group: ${groupId}`)\n\t\t\t\t\t);\n\t\t\t\t})\n\n\t\t\t}\n\t\t});\n\n\n\t}\n\n})\n\nchrome.tabs.onActivated.addListener(function (activeInfo) {\n\tconsole.log('活跃Active:', activeInfo);\n\tconsole.log('Tab ' + activeInfo.tabId + ' in window ' + activeInfo.windowId + ' is active Now.');\n})"
  },
  {
    "path": "2021/3-19-Chrome-tabs/TabGroups-shortcuts/hello.html",
    "content": "<html>\n  <body>\n    Hello exf\n  </body>\n</html>"
  },
  {
    "path": "2021/3-19-Chrome-tabs/TabGroups-shortcuts/manifest.json",
    "content": "{\n  \"name\": \"Tabgroups-shortcuts\",\n  \"version\": \"1.0\",\n  \"manifest_version\": 3,\n  \"action\": {\n    \"default_popup\": \"hello.html\",\n    \"default-icon\": {\n      \"16\": \"/images/get_started16.png\",\n      \"32\": \"/images/get_started32.png\",\n      \"48\": \"/images/get_started48.png\",\n      \"128\": \"/images/get_started128.png\"\n    }\n  },\n  \"permissions\": [\n    \"activeTab\",\n    \"tabs\",\n    \"tabGroups\"\n  ],\n  \"commands\": {\n    \"create_new_group_with_current_tab\": {\n      \"suggested_key\": {\n        \"default\": \"Ctrl+Y\",\n        \"mac\": \"MacCtrl+Y\"\n      },\n      \"description\": \"test command\"\n    },\n    \"add_to_group\": {\n      \"suggested_key\": {\n        \"default\": \"Ctrl+B\",\n        \"mac\": \"MacCtrl+B\"\n      },\n      \"description\": \"adds active tab to existing group\"\n    }\n  },\n  \"background\": {\n    \"service_worker\": \"background.js\"\n  }\n}"
  },
  {
    "path": "2021/3-21-subtitle-rejust/README.md",
    "content": "\n\n## srt字幕调整，延时32秒\n\n\n- 参考\n\t- https://github.com/cdown/srt\n\t    - 好用\n\t\t- 文档 http://srt.readthedocs.org/en/latest/api.html\n\t\t\n- 步骤\n    - 下载电影《扎克·施奈德版正义联盟(Zack Snyder's Justice League) (2021)》 https://github.com/makelove/Programer_Log/issues/5\n    - 从字幕网站下载字幕，发现字幕版本不对应。字幕提前了32秒\n    - 电影自带英文字幕，使用FFmpeg把字幕剥离 sub1.srt\n        - ffmpeg.exe -i 'Zack.Snyders.Justice.League.2021.REPACK.720p.HDRip.1200MB.x264-GalaxyRG.mkv' -map 0:s:0 sub1.srt\n    - 对比中文字幕和英文字幕，同一句话的时间，确定相差了多长时间\n    - 编写python代码，jl1.py"
  },
  {
    "path": "2021/3-21-subtitle-rejust/cn2.srt",
    "content": "1\r\n00:00:18,030 --> 00:00:21,540\r\n时代华纳旗下\r\n\r\n2\r\n00:00:24,140 --> 00:00:33,640\r\nACCESS 集团\r\n\r\n3\r\n00:01:27,640 --> 00:01:31,640\r\n华纳兄弟影业 出品\r\n\r\n4\r\n00:01:33,640 --> 00:01:37,740\r\n联合出品\r\n及 沙丘娱乐\r\nACCESS集团\r\n\r\n5\r\n00:02:17,540 --> 00:02:21,640\r\n亚特拉斯娱乐 /\r\nSTONE QUARRY 出品\r\n\r\n6\r\n00:02:24,740 --> 00:02:28,680\r\n扎克·施奈德 影业\r\n\r\n7\r\n00:02:35,810 --> 00:02:39,830\r\n扎克·施奈德版\r\n正义联盟\r\n\r\n8\r\n00:06:13,080 --> 00:06:14,590\r\n向女王警示\r\n\r\n9\r\n00:09:00,430 --> 00:09:04,710\r\n第一章\r\n\r\n10\r\n00:09:02,010 --> 00:09:04,710\r\n“别指望了，蝙蝠侠”\r\n\r\n11\r\n00:09:05,260 --> 00:09:08,130\r\n布鲁斯·韦恩\r\n\r\n12\r\n00:09:08,300 --> 00:09:09,930\r\n布鲁斯·韦恩\r\n\r\n13\r\n00:09:11,420 --> 00:09:14,190\r\n直升机因暴风雨已六天无法降落\r\n\r\n14\r\n00:09:14,590 --> 00:09:15,480\r\n他是从哪来的\r\n\r\n15\r\n00:09:15,850 --> 00:09:17,480\r\n他说他爬山过来的\r\n\r\n16\r\n00:09:17,890 --> 00:09:18,980\r\n不可能\r\n\r\n17\r\n00:09:27,950 --> 00:09:29,360\r\n有话快说\r\n\r\n18\r\n00:09:30,700 --> 00:09:35,200\r\n有个陌生人从大海来到这村庄\r\n\r\n19\r\n00:09:35,370 --> 00:09:38,120\r\n在村民饥寒交迫的严冬到来\r\n\r\n20\r\n00:09:38,290 --> 00:09:40,500\r\n并带来渔获\r\n\r\n21\r\n00:09:40,670 --> 00:09:42,290\r\n他乘着大潮而来\r\n\r\n22\r\n00:09:42,460 --> 00:09:43,710\r\n昨晚的大潮\r\n\r\n23\r\n00:09:50,260 --> 00:09:52,550\r\n你也亲眼看见\r\n\r\n24\r\n00:09:52,720 --> 00:09:54,470\r\n渔港结冰\r\n\r\n25\r\n00:09:54,640 --> 00:09:56,640\r\n四个月没有船只进港\r\n\r\n26\r\n00:09:57,810 --> 00:10:01,850\r\n这个陌生人不是乘船而来\r\n\r\n27\r\n00:10:08,820 --> 00:10:12,450\r\n来自远方的敌人即将来袭\r\n\r\n28\r\n00:10:13,740 --> 00:10:15,410\r\n我需要战士\r\n\r\n29\r\n00:10:15,580 --> 00:10:19,120\r\n对付这个陌生人 还有像他的其他人\r\n\r\n30\r\n00:10:19,290 --> 00:10:22,790\r\n我要成立一个捍卫地球的联盟\r\n\r\n31\r\n00:10:23,710 --> 00:10:26,630\r\n我必须见到这个人\r\n\r\n32\r\n00:10:27,800 --> 00:10:30,090\r\n如果真有这个人\r\n\r\n33\r\n00:10:30,260 --> 00:10:32,340\r\n他会把你的话传给他\r\n\r\n34\r\n00:10:32,510 --> 00:10:33,720\r\n五千美元\r\n\r\n35\r\n00:10:33,890 --> 00:10:38,350\r\n我给你两万五 让我和他说话 到外面说去\r\n\r\n36\r\n00:10:50,690 --> 00:10:55,070\r\n这只狗竟敢把我们当成小孩子\r\n\r\n37\r\n00:10:55,910 --> 00:10:59,540\r\n什么来自大海的神奇人物\r\n\r\n38\r\n00:10:59,700 --> 00:11:02,410\r\n我们很穷 但并不蠢\r\n\r\n39\r\n00:11:02,710 --> 00:11:04,420\r\n滚出去\r\n\r\n40\r\n00:11:05,540 --> 00:11:06,790\r\n抱歉\r\n\r\n41\r\n00:11:07,210 --> 00:11:08,750\r\n办不到\r\n\r\n42\r\n00:11:09,000 --> 00:11:11,130\r\n我们说完话我就走\r\n\r\n43\r\n00:11:15,930 --> 00:11:17,350\r\n他叫你\"滚出去\"\r\n\r\n44\r\n00:11:18,120 --> 00:11:20,330\r\n办不到\r\n\r\n45\r\n00:11:36,370 --> 00:11:38,240\r\n亚瑟·库瑞\r\n\r\n46\r\n00:11:38,410 --> 00:11:41,160\r\n也被称为大海保护者\r\n\r\n47\r\n00:11:41,870 --> 00:11:43,500\r\n海王\r\n\r\n48\r\n00:11:49,210 --> 00:11:50,920\r\n让我搞清楚\r\n\r\n49\r\n00:11:51,090 --> 00:11:54,590\r\n你打扮成蝙蝠真正的蝙蝠\r\n\r\n50\r\n00:11:54,760 --> 00:11:56,430\r\n我在哥谭市打拼了20年\r\n\r\n51\r\n00:11:56,590 --> 00:11:58,430\r\n那个鸟地方\r\n\r\n52\r\n00:11:58,600 --> 00:12:00,390\r\n决战时刻 我们会需要你\r\n\r\n53\r\n00:12:00,560 --> 00:12:02,310\r\n-别指望了 蝙蝠侠 -为什么\r\n\r\n54\r\n00:12:03,230 --> 00:12:05,060\r\n我不喜欢你跑来挖我的隐私\r\n\r\n55\r\n00:12:05,230 --> 00:12:07,770\r\n干涉我的生活 我只想独自一个人\r\n\r\n56\r\n00:12:07,940 --> 00:12:08,940\r\n所以你才这么做\r\n\r\n57\r\n00:12:09,110 --> 00:12:11,190\r\n在这鸟不生蛋的地方帮助这些人\r\n\r\n58\r\n00:12:11,360 --> 00:12:14,820\r\n我读过你的故事 你以为没人知道你的善行\r\n\r\n59\r\n00:12:14,990 --> 00:12:16,450\r\n你会加入我们\r\n\r\n60\r\n00:12:16,610 --> 00:12:18,320\r\n\"强者是孤独的\"\r\n\r\n61\r\n00:12:18,490 --> 00:12:19,740\r\n没听过这句话吗\r\n\r\n62\r\n00:12:20,200 --> 00:12:21,580\r\n你听过超人吗\r\n\r\n63\r\n00:12:21,740 --> 00:12:23,290\r\n他和我并肩作战时死去\r\n\r\n64\r\n00:12:24,660 --> 00:12:26,040\r\n这正是我的意思\r\n\r\n65\r\n00:12:26,210 --> 00:12:29,630\r\n他相信团结力量大 这是我们欠他的\r\n\r\n66\r\n00:12:30,250 --> 00:12:32,500\r\n我谁也不欠\r\n\r\n67\r\n00:12:40,180 --> 00:12:42,060\r\n打扮成一只蝙蝠\r\n\r\n68\r\n00:12:42,930 --> 00:12:44,770\r\n你疯了 布鲁斯·韦恩\r\n\r\n69\r\n00:14:13,310 --> 00:14:14,520\r\n过去 小灰\r\n\r\n70\r\n00:14:31,330 --> 00:14:36,340\r\n克拉克·乔瑟夫·肯特\r\n\r\n71\r\n00:14:46,320 --> 00:14:50,730\r\n法拍屋出售\r\n\r\n72\r\n00:15:10,450 --> 00:15:13,500\r\n天啊 韦恩少爷 这里好冷\r\n\r\n73\r\n00:15:13,670 --> 00:15:18,000\r\n也许我们可以赶上下一波牙买加的大潮\r\n\r\n74\r\n00:15:18,170 --> 00:15:20,420\r\n也许斐济一 两个超人类\r\n\r\n75\r\n00:15:20,590 --> 00:15:22,220\r\n哥斯达黎加天气也不错\r\n\r\n76\r\n00:15:22,380 --> 00:15:23,800\r\n我找到他了\r\n\r\n77\r\n00:15:26,680 --> 00:15:28,140\r\n他拒绝了\r\n\r\n78\r\n00:15:29,140 --> 00:15:31,230\r\n你连一个新兵都没招到\r\n\r\n79\r\n00:15:33,690 --> 00:15:36,440\r\n也许一个成天窝在洞穴的人\r\n\r\n80\r\n00:15:36,610 --> 00:15:40,110\r\n不适合当招募者\r\n\r\n81\r\n00:15:59,800 --> 00:16:01,550\r\n十块钱\r\n\r\n82\r\n00:16:21,860 --> 00:16:25,740\r\n星球日报 每日报导星球事务\r\n\r\n83\r\n00:16:29,330 --> 00:16:30,740\r\n曼哈顿银行诚征建筑师\r\n\r\n84\r\n00:16:31,500 --> 00:16:34,120\r\n大都会警局\r\n\r\n85\r\n00:16:39,750 --> 00:16:40,710\r\n早安 莱恩小姐\r\n\r\n86\r\n00:16:40,880 --> 00:16:42,170\r\n你好 杰瑞\r\n\r\n87\r\n00:16:45,090 --> 00:16:46,340\r\n你每天都来 对吧\r\n\r\n88\r\n00:16:47,800 --> 00:16:49,760\r\n我喜欢这里\r\n\r\n89\r\n00:18:35,580 --> 00:18:36,580\r\n站住\r\n\r\n90\r\n00:18:38,080 --> 00:18:39,080\r\n快上\r\n\r\n91\r\n00:18:49,840 --> 00:18:51,260\r\n快走 快走\r\n\r\n92\r\n00:18:57,560 --> 00:18:59,640\r\n-别开枪 -快走\r\n\r\n93\r\n00:19:00,310 --> 00:19:01,810\r\n给我过去\r\n\r\n94\r\n00:19:15,990 --> 00:19:17,950\r\n让他们靠墙站好\r\n\r\n95\r\n00:19:18,120 --> 00:19:19,660\r\n叫他们闭嘴\r\n\r\n96\r\n00:19:21,000 --> 00:19:23,290\r\n-安静 -闭嘴\r\n\r\n97\r\n00:19:23,460 --> 00:19:24,830\r\n叫他们闭嘴\r\n\r\n98\r\n00:19:27,960 --> 00:19:30,460\r\n我们很快就会发表声明\r\n\r\n99\r\n00:19:30,630 --> 00:19:32,470\r\n在那之前 谁敢乱来\r\n\r\n100\r\n00:19:32,630 --> 00:19:34,590\r\n就会害死一大堆小孩\r\n\r\n101\r\n00:19:49,650 --> 00:19:51,190\r\n要射杀他吗\r\n\r\n102\r\n00:19:51,360 --> 00:19:52,950\r\n别开枪\r\n\r\n103\r\n00:19:54,530 --> 00:19:55,570\r\n里面有小孩\r\n\r\n104\r\n00:19:57,530 --> 00:19:59,280\r\n他不是虚张声势 长官\r\n\r\n105\r\n00:19:59,450 --> 00:20:01,660\r\n圣布丽姬中学今天有校外教学\r\n\r\n106\r\n00:20:25,690 --> 00:20:26,520\r\n安静\r\n\r\n107\r\n00:20:26,690 --> 00:20:27,560\r\n闭嘴\r\n\r\n108\r\n00:20:32,650 --> 00:20:34,950\r\n让现代世界崩塌\r\n\r\n109\r\n00:20:35,110 --> 00:20:36,660\r\n回到黑暗时代\r\n\r\n110\r\n00:20:42,080 --> 00:20:43,160\r\n闭嘴\r\n\r\n111\r\n00:20:45,120 --> 00:20:47,790\r\n我叫你们闭嘴\r\n\r\n112\r\n00:21:01,970 --> 00:21:03,640\r\n你是谁\r\n\r\n113\r\n00:21:03,810 --> 00:21:06,640\r\n真言套索会迫使你说实话\r\n\r\n114\r\n00:21:07,390 --> 00:21:08,940\r\n你们是什么人\r\n\r\n115\r\n00:21:09,560 --> 00:21:12,570\r\n我们是一群反动恐怖份子\r\n\r\n116\r\n00:21:12,730 --> 00:21:14,360\r\n要让欧洲倒退到…\r\n\r\n117\r\n00:21:14,530 --> 00:21:16,780\r\n-一千年前 -无聊 为何挟持人质\r\n\r\n118\r\n00:21:16,950 --> 00:21:18,530\r\n我们没有任何要求\r\n\r\n119\r\n00:21:18,700 --> 00:21:20,200\r\n只是在动手之前拖延警察\r\n\r\n120\r\n00:21:20,450 --> 00:21:21,780\r\n你们想做什么\r\n\r\n121\r\n00:21:22,530 --> 00:21:26,120\r\n你太迟了 已经开始倒数计时\r\n\r\n122\r\n00:21:26,290 --> 00:21:29,750\r\n再过几分钟 四个街区…\r\n\r\n123\r\n00:21:30,880 --> 00:21:33,090\r\n全世界都会看到\r\n\r\n124\r\n00:23:13,690 --> 00:23:14,520\r\n不\r\n\r\n125\r\n00:23:14,690 --> 00:23:16,730\r\n就像屠宰场里的羔羊\r\n\r\n126\r\n00:24:06,110 --> 00:24:07,200\r\n我不敢相信\r\n\r\n127\r\n00:24:07,740 --> 00:24:08,660\r\n相信吧\r\n\r\n128\r\n00:24:44,320 --> 00:24:47,070\r\n大家没事吧你没事吧\r\n\r\n129\r\n00:24:47,320 --> 00:24:49,320\r\n很好 没事了\r\n\r\n130\r\n00:24:49,660 --> 00:24:51,740\r\n没事了 你们可以站起来了\r\n\r\n131\r\n00:24:51,910 --> 00:24:53,000\r\n一切都没事\r\n\r\n132\r\n00:24:53,370 --> 00:24:54,790\r\n结束了 你还好吧\r\n\r\n133\r\n00:24:55,330 --> 00:24:57,460\r\n-没事吧 -很好\r\n\r\n134\r\n00:25:03,130 --> 00:25:04,420\r\n你没事吧 公主\r\n\r\n135\r\n00:25:07,890 --> 00:25:09,680\r\n我有一天能像你一样吗\r\n\r\n136\r\n00:25:11,850 --> 00:25:14,430\r\n你想成为什么样的人都可以\r\n\r\n137\r\n00:25:16,350 --> 00:25:18,730\r\n来吧 走吧\r\n\r\n138\r\n00:26:01,520 --> 00:26:02,730\r\n今天有任何变化吗\r\n\r\n139\r\n00:26:02,900 --> 00:26:04,360\r\n没有 女王\r\n\r\n140\r\n00:26:06,070 --> 00:26:07,690\r\n母盒苏醒了\r\n\r\n141\r\n00:26:08,150 --> 00:26:10,030\r\n但什么也没发生\r\n\r\n142\r\n00:26:11,240 --> 00:26:13,280\r\n它从始纪元…\r\n\r\n143\r\n00:26:13,450 --> 00:26:15,410\r\n就沉睡了数千年\r\n\r\n144\r\n00:26:15,580 --> 00:26:16,910\r\n现在为何苏醒\r\n\r\n145\r\n00:26:24,800 --> 00:26:27,970\r\n这是它出现裂缝后第一次静下来\r\n\r\n146\r\n00:26:28,130 --> 00:26:30,800\r\n也许它又继续沉睡\r\n\r\n147\r\n00:26:34,890 --> 00:26:36,600\r\n邪恶永不沉睡\r\n\r\n148\r\n00:26:37,520 --> 00:26:38,930\r\n只会伺机而待\r\n\r\n149\r\n00:26:40,940 --> 00:26:42,900\r\n有什么要来了\r\n\r\n150\r\n00:26:48,150 --> 00:26:49,650\r\n准备迎敌\r\n\r\n151\r\n00:27:15,140 --> 00:27:17,510\r\n亚马逊女战士 各就各位\r\n\r\n152\r\n00:27:17,890 --> 00:27:19,180\r\n预备\r\n\r\n153\r\n00:27:44,420 --> 00:27:46,420\r\n守护者\r\n\r\n154\r\n00:27:48,090 --> 00:27:52,340\r\n他们无法保护十万个世界\r\n\r\n155\r\n00:27:52,840 --> 00:27:54,340\r\n永远都会失败\r\n\r\n156\r\n00:27:56,300 --> 00:28:00,970\r\n我是来让你们见识伟大的黑暗\r\n\r\n157\r\n00:28:01,140 --> 00:28:04,060\r\n我将沉浸在你们的恐惧中\r\n\r\n158\r\n00:28:05,560 --> 00:28:08,020\r\n天堂岛的女儿\r\n\r\n159\r\n00:28:09,360 --> 00:28:10,940\r\n让他看到你们的恐惧\r\n\r\n160\r\n00:28:11,110 --> 00:28:13,530\r\n我们无畏无惧\r\n\r\n161\r\n00:28:32,800 --> 00:28:34,420\r\n召集军团\r\n\r\n162\r\n00:28:35,340 --> 00:28:36,510\r\n跟她去\r\n\r\n163\r\n00:28:36,680 --> 00:28:37,800\r\n你必须封住山洞\r\n\r\n164\r\n00:28:37,970 --> 00:28:38,800\r\n快去\r\n\r\n165\r\n00:28:39,260 --> 00:28:40,390\r\n菲莉普斯\r\n\r\n166\r\n00:29:07,120 --> 00:29:08,210\r\n不\r\n\r\n167\r\n00:29:29,310 --> 00:29:30,480\r\n伊琵欧妮\r\n\r\n168\r\n00:29:32,400 --> 00:29:34,490\r\n让我们光荣战死 这是对的\r\n\r\n169\r\n00:29:37,450 --> 00:29:38,780\r\n封住大门\r\n\r\n170\r\n00:29:44,040 --> 00:29:46,660\r\n拿起大锤\r\n\r\n171\r\n00:29:58,880 --> 00:30:00,680\r\n快封住它\r\n\r\n172\r\n00:31:35,400 --> 00:31:37,070\r\n用生命守护它\r\n\r\n173\r\n00:31:37,230 --> 00:31:39,030\r\n-遵命 我的女王 -让它保持移动\r\n\r\n174\r\n00:34:25,070 --> 00:34:26,610\r\n拿到了 快走\r\n\r\n175\r\n00:34:49,510 --> 00:34:53,720\r\n高贵的女王 你为何抗拒\r\n\r\n176\r\n00:34:56,770 --> 00:34:58,520\r\n你救不了她\r\n\r\n177\r\n00:34:58,680 --> 00:35:01,140\r\n你救不了任何人\r\n\r\n178\r\n00:35:04,650 --> 00:35:08,070\r\n伟大的黑暗即将降临\r\n\r\n179\r\n00:35:08,860 --> 00:35:10,200\r\n亚马逊女战士\r\n\r\n180\r\n00:35:20,790 --> 00:35:23,460\r\n是的 我们会找到其他的\r\n\r\n181\r\n00:35:25,340 --> 00:35:26,670\r\n拉弓\r\n\r\n182\r\n00:35:30,010 --> 00:35:31,510\r\n放箭\r\n\r\n183\r\n00:36:29,230 --> 00:36:31,320\r\n他回到了他的宇宙\r\n\r\n184\r\n00:36:31,490 --> 00:36:32,320\r\n不\r\n\r\n185\r\n00:36:34,910 --> 00:36:37,280\r\n他去了人类的世界\r\n\r\n186\r\n00:36:37,450 --> 00:36:39,580\r\n寻找另外两个母盒\r\n\r\n187\r\n00:36:40,790 --> 00:36:43,120\r\n我们必须点燃古老的警示烽火\r\n\r\n188\r\n00:36:44,000 --> 00:36:47,460\r\n烽火五千年未曾燃烧\r\n\r\n189\r\n00:36:47,630 --> 00:36:49,170\r\n人类不会知道它的意义\r\n\r\n190\r\n00:36:50,000 --> 00:36:51,380\r\n人类不会知道\r\n\r\n191\r\n00:36:53,130 --> 00:36:54,550\r\n她会知道\r\n\r\n192\r\n00:37:00,210 --> 00:37:05,490\r\n第二章\r\n\r\n193\r\n00:37:02,850 --> 00:37:05,490\r\n英雄时代\r\n\r\n194\r\n00:37:25,290 --> 00:37:27,920\r\n这里是有毒的\r\n\r\n195\r\n00:37:28,080 --> 00:37:29,790\r\n很好\r\n\r\n196\r\n00:37:50,730 --> 00:37:51,940\r\n去吧\r\n\r\n197\r\n00:37:52,110 --> 00:37:54,110\r\n跟着母盒的气味\r\n\r\n198\r\n00:37:54,280 --> 00:37:55,820\r\n找到另外两个\r\n\r\n199\r\n00:37:55,990 --> 00:37:59,870\r\n一旦找到它们 就能形成三位一体\r\n\r\n200\r\n00:38:00,030 --> 00:38:02,780\r\n这个世界将加入其他世界\r\n\r\n201\r\n00:38:04,700 --> 00:38:06,710\r\n他会很高兴\r\n\r\n202\r\n00:38:06,870 --> 00:38:09,790\r\n再次看到我的价值\r\n\r\n203\r\n00:38:14,380 --> 00:38:16,970\r\n有酒类专卖店那小鬼的消息吗\r\n\r\n204\r\n00:38:17,130 --> 00:38:18,550\r\n可能有\r\n\r\n205\r\n00:38:19,340 --> 00:38:20,510\r\n\"可能有\"\r\n\r\n206\r\n00:38:21,720 --> 00:38:24,260\r\n每听一次这句话\r\n\r\n207\r\n00:38:24,430 --> 00:38:27,060\r\n就会让我更受不了你\r\n\r\n208\r\n00:38:30,020 --> 00:38:32,730\r\n脸部辨识可能找到匹配\r\n\r\n209\r\n00:38:32,900 --> 00:38:34,730\r\n搞消失的那小子\r\n\r\n210\r\n00:38:35,360 --> 00:38:40,070\r\n中城的巴里·艾伦先生\r\n\r\n211\r\n00:38:40,240 --> 00:38:43,160\r\n也许又是误判 你得给我多点时间\r\n\r\n212\r\n00:38:43,330 --> 00:38:45,540\r\n-才能确认 -我们没有时间了\r\n\r\n213\r\n00:38:47,250 --> 00:38:49,000\r\n韦恩少爷\r\n\r\n214\r\n00:38:49,160 --> 00:38:52,670\r\n你一直在拼命地创建这个团队\r\n\r\n215\r\n00:38:52,840 --> 00:38:54,670\r\n但却找不到任何队友\r\n\r\n216\r\n00:38:54,840 --> 00:38:56,960\r\n我找到一个 是两个 包括戴安娜\r\n\r\n217\r\n00:38:57,130 --> 00:39:01,090\r\n就因为莱克斯·卢瑟说 地球会受到攻击\r\n\r\n218\r\n00:39:01,260 --> 00:39:03,260\r\n这跟莱克斯·卢瑟无关\r\n\r\n219\r\n00:39:03,430 --> 00:39:04,640\r\n这跟他有关\r\n\r\n220\r\n00:39:04,930 --> 00:39:08,230\r\n我在他的坟上向他承诺\r\n\r\n221\r\n00:39:09,100 --> 00:39:12,230\r\n我花了很多时间试图造成分裂\r\n\r\n222\r\n00:39:12,400 --> 00:39:15,190\r\n现在必须团结一心才能拯救地球\r\n\r\n223\r\n00:39:15,980 --> 00:39:18,570\r\n卢瑟的警告已经过了一段时间\r\n\r\n224\r\n00:39:18,820 --> 00:39:21,950\r\n没有攻击 没有野蛮人冲进大门\r\n\r\n225\r\n00:39:23,200 --> 00:39:25,830\r\n也许这些野蛮人不走大门\r\n\r\n226\r\n00:39:26,700 --> 00:39:28,370\r\n也许他们已经来了\r\n\r\n227\r\n00:39:32,370 --> 00:39:34,130\r\n继续找 还有什么线索\r\n\r\n228\r\n00:40:13,120 --> 00:40:14,670\r\n实验室是你的了 霍华德\r\n\r\n229\r\n00:40:14,830 --> 00:40:16,420\r\n11点半\r\n\r\n230\r\n00:40:16,590 --> 00:40:17,920\r\n今晚很早嘛 塞拉斯\r\n\r\n231\r\n00:40:18,090 --> 00:40:20,170\r\n是啊 我提早下班\r\n\r\n232\r\n00:40:20,840 --> 00:40:21,970\r\n替我向你家人问好\r\n\r\n233\r\n00:40:57,330 --> 00:40:58,920\r\n搞什么…\r\n\r\n234\r\n00:41:02,840 --> 00:41:04,010\r\n天啊\r\n\r\n235\r\n00:42:17,250 --> 00:42:19,080\r\n阿提密斯之箭\r\n\r\n236\r\n00:42:20,170 --> 00:42:22,710\r\n它将射到人类世界\r\n\r\n237\r\n00:42:32,350 --> 00:42:33,640\r\n天空火炬\r\n\r\n238\r\n00:42:33,810 --> 00:42:35,350\r\n英雄烽火\r\n\r\n239\r\n00:42:35,520 --> 00:42:37,230\r\n驱散黑暗\r\n\r\n240\r\n00:42:37,390 --> 00:42:40,650\r\n如昔日一般熊熊燃烧\r\n\r\n241\r\n00:42:42,230 --> 00:42:45,690\r\n让她看到历史曙光出现之前的黑暗\r\n\r\n242\r\n00:42:46,190 --> 00:42:49,780\r\n警告我女儿战争已经来临\r\n\r\n243\r\n00:42:51,160 --> 00:42:52,870\r\n并且保护她\r\n\r\n244\r\n00:43:17,600 --> 00:43:19,890\r\n回到我身边 戴安娜\r\n\r\n245\r\n00:43:58,520 --> 00:44:01,140\r\n你这周末做什么了 戴安娜\r\n\r\n246\r\n00:44:01,480 --> 00:44:03,810\r\n没做什么特别的\r\n\r\n247\r\n00:44:04,810 --> 00:44:06,900\r\n你每次都这么说\r\n\r\n248\r\n00:44:07,520 --> 00:44:10,030\r\n没办法 我的生活很无趣\r\n\r\n249\r\n00:44:10,190 --> 00:44:13,660\r\n你一走出去就好像消失一样\r\n\r\n250\r\n00:44:18,540 --> 00:44:19,540\r\n又来了\r\n\r\n251\r\n00:44:19,700 --> 00:44:21,580\r\n-什么事 -又怎么了\r\n\r\n252\r\n00:44:21,960 --> 00:44:25,080\r\n预算缩减 盗墓者\r\n\r\n253\r\n00:44:25,250 --> 00:44:27,750\r\n现在又加了一条\"纵火者\"\r\n\r\n254\r\n00:44:29,630 --> 00:44:32,260\r\n记者在克里特岛连线报导\r\n\r\n255\r\n00:44:32,420 --> 00:44:36,970\r\n我身后的大篝火熊熊燃烧\r\n\r\n256\r\n00:44:37,140 --> 00:44:39,260\r\n大火燃烧了一整晚\r\n\r\n257\r\n00:44:39,430 --> 00:44:43,230\r\n现在已经是早上 我们至少在八公里以外\r\n\r\n258\r\n00:44:43,390 --> 00:44:46,730\r\n但还是能看到它在燃烧\r\n\r\n259\r\n00:44:46,900 --> 00:44:49,940\r\n当地居民和政府当局都感到诧异\r\n\r\n260\r\n00:44:50,110 --> 00:44:54,610\r\n这座历史遗迹亚马逊神殿居然起火\r\n\r\n261\r\n00:44:54,780 --> 00:44:56,280\r\n-当地居民和政府当局… -敌人入侵\r\n\r\n262\r\n00:44:56,450 --> 00:44:58,740\r\n…不知道火势起因\r\n\r\n263\r\n00:45:07,880 --> 00:45:08,920\r\n瑞恩\r\n\r\n264\r\n00:45:09,090 --> 00:45:10,460\r\n-你好 博士 -那个…\r\n\r\n265\r\n00:45:10,630 --> 00:45:12,460\r\n电子激光没有损坏\r\n\r\n266\r\n00:45:12,760 --> 00:45:14,800\r\n-塞拉斯·斯通博士 -是的\r\n\r\n267\r\n00:45:14,970 --> 00:45:16,050\r\n-蔡瑞恩 -是的\r\n\r\n268\r\n00:45:17,510 --> 00:45:19,260\r\n这是谁干的 他们有没有偷走什么\r\n\r\n269\r\n00:45:19,430 --> 00:45:21,470\r\n-他们偷走了一切 -那个呢\r\n\r\n270\r\n00:45:21,640 --> 00:45:24,060\r\n那没被偷走 对吧 斯通博士\r\n\r\n271\r\n00:45:25,020 --> 00:45:27,350\r\n对 那之前就被移走了\r\n\r\n272\r\n00:45:27,940 --> 00:45:31,780\r\n6-1-9-8-2号物件 国防部档案馆\r\n\r\n273\r\n00:45:32,820 --> 00:45:33,740\r\n那是什么\r\n\r\n274\r\n00:45:34,150 --> 00:45:35,070\r\n我也不知道\r\n\r\n275\r\n00:45:35,240 --> 00:45:36,160\r\n你不知道\r\n\r\n276\r\n00:45:36,320 --> 00:45:38,570\r\n没错 所以我才在研究它\r\n\r\n277\r\n00:45:38,740 --> 00:45:40,240\r\n你是什么官阶\r\n\r\n278\r\n00:45:40,660 --> 00:45:42,660\r\n瑞恩 麻烦你了\r\n\r\n279\r\n00:45:42,830 --> 00:45:44,160\r\n-没问题 -谢了\r\n\r\n280\r\n00:45:44,330 --> 00:45:45,160\r\n平民\r\n\r\n281\r\n00:45:45,500 --> 00:45:48,210\r\n星辰实验室是私人承包商 我们为国防部工作\r\n\r\n282\r\n00:45:48,380 --> 00:45:50,960\r\n为他们提供异常科学的建议\r\n\r\n283\r\n00:45:51,500 --> 00:45:52,340\r\n\"异常科学\"\r\n\r\n284\r\n00:45:53,010 --> 00:45:54,840\r\n外星科技\r\n\r\n285\r\n00:46:01,930 --> 00:46:04,020\r\n比如说\r\n\r\n286\r\n00:46:04,180 --> 00:46:05,730\r\n超人飞船\r\n\r\n287\r\n00:46:14,230 --> 00:46:16,950\r\n昨晚有八个人没离开实验室\r\n\r\n288\r\n00:46:17,320 --> 00:46:20,370\r\n清洁工 警卫和几名研究科学家\r\n\r\n289\r\n00:46:20,820 --> 00:46:21,740\r\n他们被绑架了\r\n\r\n290\r\n00:46:23,120 --> 00:46:24,120\r\n你确定\r\n\r\n291\r\n00:46:24,290 --> 00:46:26,830\r\n有位目击证人 他逃过一劫\r\n\r\n292\r\n00:46:27,000 --> 00:46:30,130\r\n他正在隔离区协助绘制嫌犯肖像画\r\n\r\n293\r\n00:46:33,130 --> 00:46:37,470\r\n知道那会是谁或是什么东西吗\r\n\r\n294\r\n00:46:57,610 --> 00:46:59,660\r\n母盒在这里不安全\r\n\r\n295\r\n00:47:02,160 --> 00:47:03,620\r\n维克多\r\n\r\n296\r\n00:47:03,830 --> 00:47:06,080\r\n他们闯进实验室找它\r\n\r\n297\r\n00:47:06,250 --> 00:47:10,670\r\n有些人被某种怪物抓走\r\n\r\n298\r\n00:47:13,420 --> 00:47:15,380\r\n你对怪物很了解…\r\n\r\n299\r\n00:47:16,000 --> 00:47:17,420\r\n对吧\r\n\r\n300\r\n00:47:23,800 --> 00:47:25,930\r\n尤其是怎么制造它们\r\n\r\n301\r\n00:50:26,530 --> 00:50:30,160\r\n求救…求救…\r\n\r\n302\r\n00:50:30,950 --> 00:50:34,040\r\n船身受损 我快沉下去了\r\n\r\n303\r\n00:50:40,380 --> 00:50:42,340\r\n求救\r\n\r\n304\r\n00:50:42,540 --> 00:50:44,590\r\n有人吗\r\n\r\n305\r\n00:51:24,920 --> 00:51:26,260\r\n威士忌\r\n\r\n306\r\n00:51:35,350 --> 00:51:37,930\r\n下次叫他要敬畏暴风雨\r\n\r\n307\r\n00:51:47,280 --> 00:51:48,110\r\n他请客\r\n\r\n308\r\n00:54:16,340 --> 00:54:18,430\r\n本应是国王的男人\r\n\r\n309\r\n00:54:18,590 --> 00:54:21,760\r\n人类父亲和海洋女王的儿子\r\n\r\n310\r\n00:54:22,640 --> 00:54:24,390\r\n我浪费了多少时间\r\n\r\n311\r\n00:54:24,560 --> 00:54:27,600\r\n试图遵守我向你母亲做的承诺\r\n\r\n312\r\n00:54:29,730 --> 00:54:30,940\r\n说完了吗 老头\r\n\r\n313\r\n00:54:31,110 --> 00:54:33,570\r\n虽然你居无定所\r\n\r\n314\r\n00:54:33,730 --> 00:54:36,490\r\n但还是一直回来这里\r\n\r\n315\r\n00:54:38,450 --> 00:54:40,410\r\n我喜欢这里 很安静\r\n\r\n316\r\n00:54:40,570 --> 00:54:42,370\r\n这是你继承的王国\r\n\r\n317\r\n00:54:42,530 --> 00:54:44,660\r\n你应当是亚特兰蒂斯国王\r\n\r\n318\r\n00:54:45,790 --> 00:54:46,910\r\n我们的同胞受苦受难\r\n\r\n319\r\n00:54:47,080 --> 00:54:49,040\r\n你的同胞\r\n\r\n320\r\n00:54:49,210 --> 00:54:52,750\r\n一个卑鄙残忍 迷信无知的种族\r\n\r\n321\r\n00:54:52,920 --> 00:54:54,130\r\n地表有什么不同吗\r\n\r\n322\r\n00:54:55,210 --> 00:54:57,260\r\n没人说我是地表之王\r\n\r\n323\r\n00:54:58,340 --> 00:55:00,050\r\n你想要什么 维科\r\n\r\n324\r\n00:55:00,640 --> 00:55:03,510\r\n要塞附近的守卫不断消失不见\r\n\r\n325\r\n00:55:03,680 --> 00:55:05,100\r\n来自天上的掠夺者\r\n\r\n326\r\n00:55:05,270 --> 00:55:06,480\r\n去跟欧姆国王说啊\r\n\r\n327\r\n00:55:06,640 --> 00:55:08,060\r\n-你弟弟 -表弟\r\n\r\n328\r\n00:55:08,230 --> 00:55:11,230\r\n他想煽动和陆地人类的战争\r\n\r\n329\r\n00:55:11,610 --> 00:55:13,020\r\n他说谎\r\n\r\n330\r\n00:55:14,480 --> 00:55:18,490\r\n掠夺者来自黑暗之境 他们在寻找它\r\n\r\n331\r\n00:55:19,320 --> 00:55:22,660\r\n我们守护的母盒并不安全\r\n\r\n332\r\n00:55:23,660 --> 00:55:27,660\r\n前往亚特兰蒂斯要塞 保护母盒\r\n\r\n333\r\n00:55:28,660 --> 00:55:29,870\r\n时候到了\r\n\r\n334\r\n00:55:32,000 --> 00:55:34,000\r\n把你母亲的三叉戟拿去\r\n\r\n335\r\n00:55:45,180 --> 00:55:48,850\r\n你不能永远弃世界而不顾 亚瑟\r\n\r\n336\r\n00:55:49,770 --> 00:55:52,860\r\n不管是地表或海底\r\n\r\n337\r\n00:56:21,970 --> 00:56:23,550\r\n狄萨德\r\n\r\n338\r\n00:56:23,720 --> 00:56:27,680\r\n狄萨德 我呼叫你\r\n\r\n339\r\n00:56:36,730 --> 00:56:40,900\r\n荒原狼 你开始征服这世界了吗\r\n\r\n340\r\n00:56:42,030 --> 00:56:44,410\r\n这个世界是分裂的\r\n\r\n341\r\n00:56:45,200 --> 00:56:46,700\r\n他们是原始物种\r\n\r\n342\r\n00:56:46,870 --> 00:56:49,200\r\n未进化并与彼此战争\r\n\r\n343\r\n00:56:49,370 --> 00:56:52,210\r\n歧见太深无法团结一心\r\n\r\n344\r\n00:56:52,370 --> 00:56:56,630\r\n必须像其他的世界一样 剥夺他们的自由意志\r\n\r\n345\r\n00:56:56,790 --> 00:57:00,920\r\n并以服膺他的光荣信念…\r\n\r\n346\r\n00:57:01,090 --> 00:57:02,800\r\n获得赦免\r\n\r\n347\r\n00:57:03,590 --> 00:57:05,510\r\n母盒呢\r\n\r\n348\r\n00:57:06,090 --> 00:57:09,010\r\n我找到其中一个\r\n\r\n349\r\n00:57:09,180 --> 00:57:11,640\r\n苏醒后呼唤我的那一个\r\n\r\n350\r\n00:57:11,810 --> 00:57:13,310\r\n另外两个仍然沉睡\r\n\r\n351\r\n00:57:13,480 --> 00:57:17,310\r\n但天启魔感应到它们\r\n\r\n352\r\n00:57:17,480 --> 00:57:18,940\r\n它们飞来飞去\r\n\r\n353\r\n00:57:19,110 --> 00:57:22,690\r\n到处搜索 并抓走带有母盒气味的囚犯\r\n\r\n354\r\n00:57:22,860 --> 00:57:27,780\r\n我则以他之名创建一座要塞\r\n\r\n355\r\n00:57:28,330 --> 00:57:30,200\r\n很好\r\n\r\n356\r\n00:57:31,290 --> 00:57:33,960\r\n强大的荒原狼\r\n\r\n357\r\n00:57:35,460 --> 00:57:39,840\r\n你本来可以与伟大的他平起平坐\r\n\r\n358\r\n00:57:41,760 --> 00:57:46,340\r\n但却因自大而被放逐\r\n\r\n359\r\n00:57:47,510 --> 00:57:48,890\r\n狄萨德\r\n\r\n360\r\n00:57:49,970 --> 00:57:52,350\r\n我跪倒在你面前\r\n\r\n361\r\n00:57:53,100 --> 00:57:54,890\r\n让我向他求情\r\n\r\n362\r\n00:57:55,060 --> 00:57:56,980\r\n当我以他之名夺下这世界\r\n\r\n363\r\n00:57:57,150 --> 00:57:59,940\r\n能否请他让我回家\r\n\r\n364\r\n00:58:00,110 --> 00:58:02,530\r\n你背叛了他\r\n\r\n365\r\n00:58:03,940 --> 00:58:05,450\r\n你自己的家人\r\n\r\n366\r\n00:58:05,610 --> 00:58:07,820\r\n我看到我犯的错误\r\n\r\n367\r\n00:58:07,990 --> 00:58:10,580\r\n我屠杀企图争夺他王位的人\r\n\r\n368\r\n00:58:10,740 --> 00:58:15,870\r\n你还欠他五万个世界\r\n\r\n369\r\n00:58:16,960 --> 00:58:18,790\r\n当你还清了债\r\n\r\n370\r\n00:58:19,250 --> 00:58:21,500\r\n他就会聆听你的恳求\r\n\r\n371\r\n00:58:24,420 --> 00:58:27,470\r\n母盒将被寻获并合而为一\r\n\r\n372\r\n00:58:28,430 --> 00:58:30,550\r\n这里没有保护者\r\n\r\n373\r\n00:58:30,720 --> 00:58:34,140\r\n没有绿光战警 没有氪星人\r\n\r\n374\r\n00:58:34,310 --> 00:58:37,940\r\n这世界将会像其他的一样沦陷\r\n\r\n375\r\n00:58:38,980 --> 00:58:40,730\r\n为了达克赛德\r\n\r\n376\r\n00:58:43,940 --> 00:58:46,150\r\n为了达克赛德\r\n\r\n377\r\n00:59:07,420 --> 00:59:11,010\r\n我花了几百万元安装保全系统\r\n\r\n378\r\n00:59:11,180 --> 00:59:12,470\r\n钱花得很值得\r\n\r\n379\r\n00:59:12,970 --> 00:59:15,350\r\n我几乎花了一分钟才解除\r\n\r\n380\r\n00:59:16,890 --> 00:59:18,230\r\n你好\r\n\r\n381\r\n00:59:20,060 --> 00:59:20,900\r\n新玩具\r\n\r\n382\r\n00:59:21,810 --> 00:59:23,980\r\n原型军队运输机\r\n\r\n383\r\n00:59:26,280 --> 00:59:29,320\r\n我曾相识的一个人会很想开开看\r\n\r\n384\r\n00:59:29,950 --> 00:59:32,910\r\n韦恩航天最顶尖的人才 都无法让它飞起来\r\n\r\n385\r\n00:59:33,990 --> 00:59:35,580\r\n但是你能\r\n\r\n386\r\n00:59:35,740 --> 00:59:37,410\r\n我别无选择\r\n\r\n387\r\n00:59:37,580 --> 00:59:40,330\r\n我需要更远的航程和更大的货舱\r\n\r\n388\r\n00:59:40,500 --> 00:59:42,080\r\n我认为一场攻击即将来袭\r\n\r\n389\r\n00:59:42,500 --> 00:59:44,250\r\n你错了 布鲁斯\r\n\r\n390\r\n00:59:45,050 --> 00:59:47,010\r\n它已经来袭了\r\n\r\n391\r\n00:59:47,800 --> 00:59:52,340\r\n据我所知 他们来自另一个宇宙\r\n\r\n392\r\n00:59:52,510 --> 00:59:54,850\r\n为一个黑暗力量效忠\r\n\r\n393\r\n00:59:55,010 --> 00:59:56,720\r\n一个古老的力量\r\n\r\n394\r\n00:59:56,890 --> 00:59:58,310\r\n他们想要什么\r\n\r\n395\r\n00:59:59,140 --> 01:00:01,480\r\n入侵地球 征服世界\r\n\r\n396\r\n01:00:02,600 --> 01:00:06,860\r\n他们很久以前曾经来过\r\n\r\n397\r\n01:00:11,990 --> 01:00:14,410\r\n一支庞大的舰队出现在天空\r\n\r\n398\r\n01:00:14,580 --> 01:00:17,200\r\n消灭所有胆敢反抗的势力\r\n\r\n399\r\n01:00:17,370 --> 01:00:21,460\r\n入侵者的首领是达克赛德\r\n\r\n400\r\n01:00:21,620 --> 01:00:25,880\r\n这名字在每个宇宙都受到诅咒和畏惧\r\n\r\n401\r\n01:00:26,750 --> 01:00:30,590\r\n地球的守护者 和达克赛德展开一场大战\r\n\r\n402\r\n01:00:30,760 --> 01:00:33,260\r\n旧神族 人类\r\n\r\n403\r\n01:00:33,840 --> 01:00:36,970\r\n被迫迁至海底之前的亚特兰蒂斯族\r\n\r\n404\r\n01:00:39,310 --> 01:00:43,270\r\n遭背叛及被困禁之前的亚马逊族\r\n\r\n405\r\n01:00:43,440 --> 01:00:45,810\r\n以及来自星空的守护者\r\n\r\n406\r\n01:00:45,980 --> 01:00:49,570\r\n他们的历史教导他们 不能相信彼此\r\n\r\n407\r\n01:00:49,740 --> 01:00:51,900\r\n不能奢望创建联盟\r\n\r\n408\r\n01:00:52,070 --> 01:00:54,070\r\n而是各自奋战\r\n\r\n409\r\n01:01:43,120 --> 01:01:45,830\r\n当达克赛德在地球发动战争\r\n\r\n410\r\n01:01:46,000 --> 01:01:47,420\r\n他发现一个秘密\r\n\r\n411\r\n01:01:47,580 --> 01:01:51,340\r\n隐藏在无垠太空的一股力量\r\n\r\n412\r\n01:01:51,510 --> 01:01:53,010\r\n他召唤暗黑秘士\r\n\r\n413\r\n01:01:53,170 --> 01:01:56,300\r\n他们崇拜并控制三个物体\r\n\r\n414\r\n01:01:56,470 --> 01:01:57,510\r\n母盒\r\n\r\n415\r\n01:01:57,850 --> 01:01:59,260\r\n等等\r\n\r\n416\r\n01:01:59,430 --> 01:02:00,430\r\n\"母盒\"\r\n\r\n417\r\n01:02:00,600 --> 01:02:03,140\r\n坚不可摧 活生生的机器\r\n\r\n418\r\n01:02:03,850 --> 01:02:08,770\r\n使用先进无比的科技打造 看起来简直就像巫术\r\n\r\n419\r\n01:02:08,940 --> 01:02:11,570\r\n若要征服世界 三个母盒必须同步化\r\n\r\n420\r\n01:02:11,730 --> 01:02:14,990\r\n合而为一后形成三位一体\r\n\r\n421\r\n01:02:15,150 --> 01:02:18,200\r\n三位一体以烈火净化星球\r\n\r\n422\r\n01:02:18,370 --> 01:02:21,950\r\n将它转换成另一个敌人世界\r\n\r\n423\r\n01:02:22,120 --> 01:02:25,620\r\n幸存者都成为达克赛德的仆役\r\n\r\n424\r\n01:02:25,790 --> 01:02:28,710\r\n活着 但毫无生机\r\n\r\n425\r\n01:02:28,920 --> 01:02:30,250\r\n天启魔\r\n\r\n426\r\n01:02:31,460 --> 01:02:33,550\r\n亚马逊女战士\r\n\r\n427\r\n01:02:39,430 --> 01:02:41,140\r\n冲啊\r\n\r\n428\r\n01:03:10,460 --> 01:03:12,960\r\n但在三位一体同步化之前\r\n\r\n429\r\n01:03:13,130 --> 01:03:16,510\r\n地球的守护者组成统一阵线展开反击\r\n\r\n430\r\n01:03:17,090 --> 01:03:20,090\r\n亚马逊人和亚特兰蒂斯人并肩作战\r\n\r\n431\r\n01:03:20,260 --> 01:03:24,770\r\n宙斯及他儿子阿瑞斯 和来自星空的守护者联手出击\r\n\r\n432\r\n01:03:25,770 --> 01:03:30,440\r\n一群黄金时代英雄为了捍卫地球 同心协力捍卫了地球的生命\r\n\r\n433\r\n01:05:27,100 --> 01:05:29,890\r\n他们做到其他世界做不到的事\r\n\r\n434\r\n01:05:30,060 --> 01:05:32,230\r\n将敌人送回星空\r\n\r\n435\r\n01:05:34,770 --> 01:05:38,020\r\n三个母盒从未合而为一\r\n\r\n436\r\n01:05:38,610 --> 01:05:41,780\r\n也从未形成三位一体\r\n\r\n437\r\n01:05:41,940 --> 01:05:44,150\r\n但在敌人撤退之时\r\n\r\n438\r\n01:05:44,780 --> 01:05:47,910\r\n母盒被留在地球\r\n\r\n439\r\n01:05:48,080 --> 01:05:51,790\r\n它们的力量变弱 就像失去主人的恶犬\r\n\r\n440\r\n01:05:53,620 --> 01:05:55,210\r\n开始沉睡\r\n\r\n441\r\n01:05:55,370 --> 01:05:57,840\r\n等待他们的回归\r\n\r\n442\r\n01:05:58,000 --> 01:06:00,340\r\n母盒从敌人的视野中消失\r\n\r\n443\r\n01:06:00,500 --> 01:06:03,670\r\n隐匿在一兆个世界之中\r\n\r\n444\r\n01:06:20,570 --> 01:06:23,740\r\n地球的守护者立下誓言\r\n\r\n445\r\n01:06:24,110 --> 01:06:27,360\r\n人类 亚特兰蒂斯族及亚马逊族\r\n\r\n446\r\n01:06:27,530 --> 01:06:31,410\r\n根据他们文化的惯例及仪式\r\n\r\n447\r\n01:06:31,580 --> 01:06:35,080\r\n各自封存并守卫 其中一个沉睡的母盒\r\n\r\n448\r\n01:06:35,250 --> 01:06:39,710\r\n以防母盒日后再次苏醒 向天启星发出信号\r\n\r\n449\r\n01:06:39,880 --> 01:06:41,630\r\n呼唤敌人回来并企图征服\r\n\r\n450\r\n01:06:41,800 --> 01:06:45,590\r\n达克赛德唯一落败而逃的世界\r\n\r\n451\r\n01:08:01,540 --> 01:08:04,210\r\n有什么唤醒了我的族人守卫的母盒\r\n\r\n452\r\n01:08:04,920 --> 01:08:06,960\r\n它向暗黑之处呼唤\r\n\r\n453\r\n01:08:07,130 --> 01:08:09,550\r\n引来达克赛德手下的一名征服者\r\n\r\n454\r\n01:08:10,470 --> 01:08:12,340\r\n敌人已经来袭\r\n\r\n455\r\n01:08:12,850 --> 01:08:14,510\r\n如果是真的 他在哪里\r\n\r\n456\r\n01:08:14,680 --> 01:08:16,770\r\n他会到处寻找另外两个母盒\r\n\r\n457\r\n01:08:16,930 --> 01:08:19,890\r\n得到三个母盒并准备好之前 他仍在藏匿\r\n\r\n458\r\n01:08:20,060 --> 01:08:23,900\r\n我们必须准备迎敌 你 我和其他人\r\n\r\n459\r\n01:08:24,650 --> 01:08:27,480\r\n他们说英雄时代不会再来临\r\n\r\n460\r\n01:08:27,650 --> 01:08:28,900\r\n会来的\r\n\r\n461\r\n01:08:29,240 --> 01:08:30,950\r\n必须的\r\n\r\n462\r\n01:08:32,700 --> 01:08:36,200\r\n其他人 他们在哪里\r\n\r\n463\r\n01:08:41,290 --> 01:08:46,550\r\n第三章\r\n\r\n464\r\n01:08:42,930 --> 01:08:46,550\r\n挚爱的母亲，挚爱的儿子\r\n\r\n465\r\n01:08:48,260 --> 01:08:50,130\r\n冷藏配送\r\n\r\n466\r\n01:08:50,130 --> 01:08:53,840\r\n中城\r\n\r\n467\r\n01:08:53,840 --> 01:08:57,470\r\n前方减速\r\n\r\n468\r\n01:08:58,220 --> 01:09:00,890\r\n我迟到了吗 我大迟到了\r\n\r\n469\r\n01:09:00,260 --> 01:09:02,060\r\n中城狗狗托儿所\r\n\r\n470\r\n01:09:02,230 --> 01:09:03,350\r\n你好啊 小家伙\r\n\r\n471\r\n01:09:04,190 --> 01:09:05,020\r\n不行\r\n\r\n472\r\n01:09:06,110 --> 01:09:07,690\r\n好吧 晚点见\r\n\r\n473\r\n01:09:08,570 --> 01:09:10,490\r\n真是拍谢\r\n\r\n474\r\n01:09:10,900 --> 01:09:12,150\r\n我迟到了\r\n\r\n475\r\n01:09:17,660 --> 01:09:18,700\r\n-你是… -我…\r\n\r\n476\r\n01:09:18,870 --> 01:09:21,120\r\n抱歉我大迟到了 不是故意的\r\n\r\n477\r\n01:09:21,290 --> 01:09:22,790\r\n我是我 我来了 很抱歉迟到了\r\n\r\n478\r\n01:09:22,960 --> 01:09:25,130\r\n因为公车没来 后来来了\r\n\r\n479\r\n01:09:25,290 --> 01:09:27,590\r\n不过有个阿婆一直在找硬币\r\n\r\n480\r\n01:09:27,750 --> 01:09:28,880\r\n五分 一分 五分 一分\r\n\r\n481\r\n01:09:29,050 --> 01:09:30,800\r\n真是够了 让阿婆上车吧\r\n\r\n482\r\n01:09:30,960 --> 01:09:31,970\r\n她都107岁了\r\n\r\n483\r\n01:09:32,130 --> 01:09:33,800\r\n不会再活多久了\r\n\r\n484\r\n01:09:33,970 --> 01:09:35,010\r\n履历\r\n\r\n485\r\n01:09:35,640 --> 01:09:36,470\r\n履历\r\n\r\n486\r\n01:09:39,720 --> 01:09:40,810\r\n拜托\r\n\r\n487\r\n01:09:44,140 --> 01:09:45,230\r\n拜托\r\n\r\n488\r\n01:09:45,400 --> 01:09:46,940\r\n那是法文来着\r\n\r\n489\r\n01:09:47,110 --> 01:09:50,150\r\n\"履历\"是过去分词…\r\n\r\n490\r\n01:09:55,990 --> 01:09:57,070\r\n这可不妙\r\n\r\n491\r\n01:09:57,530 --> 01:10:00,740\r\n我的口袋有什么 \"有只吃纸的怪物\"\r\n\r\n492\r\n01:10:09,630 --> 01:10:12,710\r\n拜托 我们应该是朋友啊\r\n\r\n493\r\n01:10:19,300 --> 01:10:20,310\r\n好了\r\n\r\n494\r\n01:10:29,310 --> 01:10:31,730\r\n中城大学 我念刑事司法系\r\n\r\n495\r\n01:10:31,900 --> 01:10:34,150\r\n你说你有遛狗的经验\r\n\r\n496\r\n01:13:14,610 --> 01:13:16,650\r\n天啊 希望大家都没事\r\n\r\n497\r\n01:13:16,820 --> 01:13:21,530\r\n瞧 照顾狗狗遇到事情 我一定会随身携带肉类零食\r\n\r\n498\r\n01:13:21,700 --> 01:13:22,950\r\n能让狗狗安静下来\r\n\r\n499\r\n01:13:23,110 --> 01:13:24,990\r\n你永远不知道会发生什么事\r\n\r\n500\r\n01:13:25,160 --> 01:13:26,870\r\n我是说 天啊\r\n\r\n501\r\n01:13:27,030 --> 01:13:29,580\r\n是不是星期一开工吗\r\n\r\n502\r\n01:14:07,910 --> 01:14:10,580\r\n你一定靠近过母盒\r\n\r\n503\r\n01:14:11,790 --> 01:14:13,790\r\n身上有它的气味\r\n\r\n504\r\n01:14:14,370 --> 01:14:15,620\r\n它在哪里\r\n\r\n505\r\n01:14:16,040 --> 01:14:18,920\r\n亚特兰蒂斯族的儿女绝不会告诉你\r\n\r\n506\r\n01:14:34,520 --> 01:14:37,350\r\n我们的族人看守了母盒数千年\r\n\r\n507\r\n01:14:43,530 --> 01:14:46,160\r\n我不会背叛自己的族人\r\n\r\n508\r\n01:14:57,710 --> 01:15:00,210\r\n你已经背叛了\r\n\r\n509\r\n01:16:00,560 --> 01:16:02,770\r\n这是在地球最深的海沟拍到的\r\n\r\n510\r\n01:16:03,360 --> 01:16:05,440\r\n他一定是亚特兰蒂斯人\r\n\r\n511\r\n01:16:05,610 --> 01:16:06,740\r\n能够呼吸海水\r\n\r\n512\r\n01:16:06,900 --> 01:16:08,570\r\n我跟他说话时他呼吸空气\r\n\r\n513\r\n01:16:08,740 --> 01:16:10,530\r\n那他就是混血儿\r\n\r\n514\r\n01:16:10,700 --> 01:16:12,570\r\n他说他会和我们一起作战\r\n\r\n515\r\n01:16:12,740 --> 01:16:14,080\r\n或多或少吧\r\n\r\n516\r\n01:16:15,450 --> 01:16:17,540\r\n或多还是或少\r\n\r\n517\r\n01:16:17,960 --> 01:16:18,960\r\n大概是或少吧\r\n\r\n518\r\n01:16:19,120 --> 01:16:20,920\r\n-他说不 -没错\r\n\r\n519\r\n01:16:21,670 --> 01:16:23,090\r\n亚特兰蒂斯人很难搞\r\n\r\n520\r\n01:16:24,000 --> 01:16:26,760\r\n我的族人曾和他们打仗\r\n\r\n521\r\n01:16:27,880 --> 01:16:29,970\r\n我不确定我们能相信他\r\n\r\n522\r\n01:16:30,130 --> 01:16:31,180\r\n戴安娜 如果我们要合作\r\n\r\n523\r\n01:16:31,340 --> 01:16:33,680\r\n你就得打开心房 接受我们不能…\r\n\r\n524\r\n01:16:33,850 --> 01:16:34,720\r\n你知道的\r\n\r\n525\r\n01:16:34,890 --> 01:16:36,560\r\n-抱歉 没关系 -对不起 我的错\r\n\r\n526\r\n01:16:36,720 --> 01:16:37,770\r\n没关系\r\n\r\n527\r\n01:16:37,930 --> 01:16:39,180\r\n-让我们… -难免的\r\n\r\n528\r\n01:16:39,350 --> 01:16:40,230\r\n所以…\r\n\r\n529\r\n01:16:40,390 --> 01:16:42,440\r\n这是第三个人\r\n\r\n530\r\n01:16:42,600 --> 01:16:45,020\r\n消失了1/30秒\r\n\r\n531\r\n01:16:45,190 --> 01:16:46,690\r\n一格的影片 看到吗\r\n\r\n532\r\n01:16:46,860 --> 01:16:49,490\r\n中城的巴里·艾伦\r\n\r\n533\r\n01:16:49,650 --> 01:16:50,490\r\n你去找他\r\n\r\n534\r\n01:16:50,650 --> 01:16:52,360\r\n我去找第四个人\r\n\r\n535\r\n01:16:52,530 --> 01:16:55,660\r\n有机与生化机械电子身体器官\r\n\r\n536\r\n01:16:58,200 --> 01:17:00,210\r\n他是个钢骨生化人\r\n\r\n537\r\n01:17:18,350 --> 01:17:19,180\r\n斯通\r\n\r\n538\r\n01:17:19,350 --> 01:17:21,310\r\n-预备 -就位\r\n\r\n539\r\n01:17:22,350 --> 01:17:24,770\r\n大声尖叫\r\n\r\n540\r\n01:17:36,830 --> 01:17:37,830\r\n3\r\n\r\n541\r\n01:17:38,200 --> 01:17:39,750\r\n80\r\n\r\n542\r\n01:17:40,830 --> 01:17:42,920\r\n预备…上吧\r\n\r\n543\r\n01:17:56,180 --> 01:17:58,430\r\n你儿子也许是美式足球校队队长\r\n\r\n544\r\n01:17:58,600 --> 01:18:01,600\r\n也是个天才 斯通太太\r\n\r\n545\r\n01:18:01,770 --> 01:18:03,850\r\n斯通博士\r\n\r\n546\r\n01:18:06,400 --> 01:18:08,400\r\n但不代表他能骇入校方系统\r\n\r\n547\r\n01:18:08,570 --> 01:18:10,400\r\n窜改他同学的成绩\r\n\r\n548\r\n01:18:11,360 --> 01:18:14,700\r\n莎拉一家人今年失去了房子\r\n\r\n549\r\n01:18:15,280 --> 01:18:17,700\r\n那孩子怎么可能及格\r\n\r\n550\r\n01:18:19,280 --> 01:18:22,330\r\n维克多是出于好心才会帮助她\r\n\r\n551\r\n01:18:22,500 --> 01:18:24,540\r\n你又做了什么来帮助她\r\n\r\n552\r\n01:18:39,470 --> 01:18:42,400\r\n哥谭市 威斯康星州\r\n\r\n553\r\n01:19:48,670 --> 01:19:51,590\r\n-你爸… -妈 别说了\r\n\r\n554\r\n01:19:53,170 --> 01:19:55,920\r\n他得在实验室加班\r\n\r\n555\r\n01:19:56,090 --> 01:19:59,130\r\n他天天都加班\r\n\r\n556\r\n01:20:01,720 --> 01:20:02,720\r\n他很想来的\r\n\r\n557\r\n01:20:03,260 --> 01:20:04,890\r\n你老是这么说\r\n\r\n558\r\n01:20:05,350 --> 01:20:06,930\r\n妈 别再替他找借口了\r\n\r\n559\r\n01:20:07,100 --> 01:20:10,060\r\n你跟他一样忙 但还是会挪出时间\r\n\r\n560\r\n01:20:10,600 --> 01:20:13,190\r\n他只是不会表达 但是…\r\n\r\n561\r\n01:20:13,860 --> 01:20:15,690\r\n我知道他以你为傲\r\n\r\n562\r\n01:20:16,240 --> 01:20:18,200\r\n我们都是 维克多\r\n\r\n563\r\n01:20:22,200 --> 01:20:25,290\r\n以你现在的成就\r\n\r\n564\r\n01:20:25,450 --> 01:20:28,210\r\n我等不及想看到未来的你\r\n\r\n565\r\n01:20:33,540 --> 01:20:35,250\r\n斯通博士 很遗憾\r\n\r\n566\r\n01:20:36,340 --> 01:20:38,130\r\n你太太没能活下来\r\n\r\n567\r\n01:20:39,800 --> 01:20:41,890\r\n你儿子恐怕也不会\r\n\r\n568\r\n01:20:56,070 --> 01:20:57,730\r\n我不会让你死\r\n\r\n569\r\n01:21:00,700 --> 01:21:02,240\r\n我绝不容许\r\n\r\n570\r\n01:21:08,540 --> 01:21:10,290\r\n我绝不容许\r\n\r\n571\r\n01:21:13,750 --> 01:21:14,750\r\n维克多\r\n\r\n572\r\n01:21:16,130 --> 01:21:18,880\r\n维克多 你不必窝在这里\r\n\r\n573\r\n01:21:19,720 --> 01:21:22,470\r\n你还有大好的人生\r\n\r\n574\r\n01:21:23,140 --> 01:21:26,510\r\n你妈会希望你拥有那样的人生\r\n\r\n575\r\n01:21:29,060 --> 01:21:30,600\r\n如果你当时在的话…\r\n\r\n576\r\n01:21:31,980 --> 01:21:33,850\r\n妈就还会活着\r\n\r\n577\r\n01:21:36,690 --> 01:21:38,610\r\n好吧 听着\r\n\r\n578\r\n01:21:39,990 --> 01:21:44,030\r\n你不必给我第二次机会 但是要给自己再一次机会\r\n\r\n579\r\n01:21:46,070 --> 01:21:49,120\r\n如果你不想看着我\r\n\r\n580\r\n01:21:50,830 --> 01:21:52,460\r\n那就试着听我说\r\n\r\n581\r\n01:22:21,190 --> 01:22:23,200\r\n你现在的能力 维克多\r\n\r\n582\r\n01:22:24,030 --> 01:22:27,570\r\n超强力量只是冰山一角\r\n\r\n583\r\n01:22:27,740 --> 01:22:30,290\r\n你拥有无穷潜力\r\n\r\n584\r\n01:23:00,360 --> 01:23:05,240\r\n在一和零的数位世界 你是绝对的霸主\r\n\r\n585\r\n01:23:05,400 --> 01:23:07,990\r\n没有防火墙能阻止你\r\n\r\n586\r\n01:23:08,160 --> 01:23:10,450\r\n没有你破解不了的密码\r\n\r\n587\r\n01:23:10,620 --> 01:23:13,370\r\n一切都任你摆布\r\n\r\n588\r\n01:23:13,540 --> 01:23:15,910\r\n从电厂电网到电信设备\r\n\r\n589\r\n01:23:16,080 --> 01:23:18,130\r\n每个人的生活都受到\r\n\r\n590\r\n01:23:18,290 --> 01:23:21,250\r\n复杂的数位网络操控支配\r\n\r\n591\r\n01:23:21,420 --> 01:23:25,510\r\n你却能轻而易举掌控它\r\n\r\n592\r\n01:23:35,850 --> 01:23:40,360\r\n全世界的命运掌握在你手中\r\n\r\n593\r\n01:23:48,160 --> 01:23:53,200\r\n你只要动个念头 就能发射所有的核弹\r\n\r\n594\r\n01:24:04,000 --> 01:24:07,170\r\n全球复杂的金融体系\r\n\r\n595\r\n01:24:07,340 --> 01:24:11,800\r\n对你来说就像玩具一样能轻易玩弄\r\n\r\n596\r\n01:24:45,840 --> 01:24:49,590\r\n问题是…不 挑战是…\r\n\r\n597\r\n01:24:50,470 --> 01:24:52,930\r\n不去这么做\r\n\r\n598\r\n01:24:53,800 --> 01:24:55,680\r\n不去滥用这能力\r\n\r\n599\r\n01:24:55,850 --> 01:24:57,850\r\n不去监视每个人\r\n\r\n600\r\n01:24:59,890 --> 01:25:02,190\r\n这个重责大任的沉重负担\r\n\r\n601\r\n01:25:02,350 --> 01:25:05,650\r\n将塑造你成为什么样的人\r\n\r\n602\r\n01:25:37,260 --> 01:25:38,350\r\n许个愿\r\n\r\n603\r\n01:25:39,600 --> 01:25:40,640\r\n再吹一次\r\n\r\n604\r\n01:25:41,600 --> 01:25:43,980\r\n很好 像外婆挥手问好\r\n\r\n605\r\n01:25:44,150 --> 01:25:45,310\r\n你好 外婆\r\n\r\n606\r\n01:26:38,670 --> 01:26:41,040\r\n余额不足\r\n\r\n607\r\n01:26:41,200 --> 01:26:44,960\r\n恭喜\r\n您赢得十万美元奖金\r\n\r\n608\r\n01:26:45,540 --> 01:26:46,710\r\n什么\r\n\r\n609\r\n01:26:48,710 --> 01:26:50,340\r\n天啊 天啊\r\n\r\n610\r\n01:26:51,590 --> 01:26:52,970\r\n我的天啊\r\n\r\n611\r\n01:26:53,130 --> 01:26:54,880\r\n天啊 天啊\r\n\r\n612\r\n01:27:00,220 --> 01:27:01,600\r\n维克多\r\n\r\n613\r\n01:27:03,230 --> 01:27:06,600\r\n这是我身为一名科学家 做出来的推断\r\n\r\n614\r\n01:27:07,770 --> 01:27:09,940\r\n也是我一直以来跟你说话的方式\r\n\r\n615\r\n01:27:10,650 --> 01:27:11,650\r\n现在…\r\n\r\n616\r\n01:27:14,030 --> 01:27:17,700\r\n让我说出内心话 不是身为一个科学家\r\n\r\n617\r\n01:27:18,240 --> 01:27:19,450\r\n而是身为一个父亲\r\n\r\n618\r\n01:27:34,050 --> 01:27:34,920\r\n喂\r\n\r\n619\r\n01:27:36,180 --> 01:27:37,720\r\n喂 你\r\n\r\n620\r\n01:27:53,690 --> 01:27:56,530\r\n因为你没有发挥潜力\r\n\r\n621\r\n01:27:57,200 --> 01:28:00,240\r\n一直在原地打转\r\n\r\n622\r\n01:28:00,410 --> 01:28:02,580\r\n你打三份没出路的工\r\n\r\n623\r\n01:28:02,740 --> 01:28:05,370\r\n还要打第四份工 你哪来的时间\r\n\r\n624\r\n01:28:05,540 --> 01:28:06,660\r\n我会挪出时间\r\n\r\n625\r\n01:28:06,830 --> 01:28:07,960\r\n-只要再打一份工 -巴里\r\n\r\n626\r\n01:28:08,120 --> 01:28:09,750\r\n-就能自己付学费 -你不能\r\n\r\n627\r\n01:28:09,920 --> 01:28:12,630\r\n-我说到做到 -别再折磨自己了\r\n\r\n628\r\n01:28:12,790 --> 01:28:14,460\r\n我不想再谈这件事\r\n\r\n629\r\n01:28:14,630 --> 01:28:15,710\r\n拜托 我们有十分钟\r\n\r\n630\r\n01:28:15,880 --> 01:28:16,800\r\n这全是为了付…\r\n\r\n631\r\n01:28:16,970 --> 01:28:18,760\r\n-刑事司法系的学费 -对啊\r\n\r\n632\r\n01:28:18,930 --> 01:28:19,930\r\n为了什么\r\n\r\n633\r\n01:28:20,090 --> 01:28:23,310\r\n那还用问 我正在跟我爸讲话\r\n\r\n634\r\n01:28:23,470 --> 01:28:26,270\r\n他因为杀死我妈坐牢 其实是被冤枉的\r\n\r\n635\r\n01:28:26,430 --> 01:28:28,390\r\n我怎么会对刑事司法感兴趣\r\n\r\n636\r\n01:28:28,560 --> 01:28:30,100\r\n我不记得了\r\n\r\n637\r\n01:28:30,270 --> 01:28:31,190\r\n真是的\r\n\r\n638\r\n01:28:31,360 --> 01:28:33,900\r\n我注定要选择走这条路 爸\r\n\r\n639\r\n01:28:34,900 --> 01:28:35,980\r\n把手给我 儿子\r\n\r\n640\r\n01:28:42,280 --> 01:28:44,830\r\n我要你听好 巴里\r\n\r\n641\r\n01:28:44,990 --> 01:28:48,500\r\n我要你听好 我是认真的\r\n\r\n642\r\n01:28:54,460 --> 01:28:56,340\r\n我要你放弃那一切\r\n\r\n643\r\n01:28:59,340 --> 01:29:02,390\r\n我也要你别再来看我\r\n\r\n644\r\n01:29:04,760 --> 01:29:07,770\r\n我拖累了你的人生\r\n\r\n645\r\n01:29:13,190 --> 01:29:14,310\r\n好吧\r\n\r\n646\r\n01:29:15,230 --> 01:29:18,360\r\n别再跟我这么说\r\n\r\n647\r\n01:29:18,780 --> 01:29:20,030\r\n求求你\r\n\r\n648\r\n01:29:20,200 --> 01:29:23,320\r\n你知道对我来说怎样才是最好吗\r\n\r\n649\r\n01:29:23,490 --> 01:29:28,290\r\n我儿子不白白浪费生命\r\n\r\n650\r\n01:29:29,710 --> 01:29:32,880\r\n你想做什么都行 你聪明绝顶\r\n\r\n651\r\n01:29:35,420 --> 01:29:38,210\r\n你是精英中的精英\r\n\r\n652\r\n01:29:40,050 --> 01:29:44,760\r\n我不能坐在这儿 看着你在中城盲目地奔走\r\n\r\n653\r\n01:29:44,930 --> 01:29:46,680\r\n就为了一个…\r\n\r\n654\r\n01:29:46,850 --> 01:29:50,020\r\n哪儿都不能去的老头子\r\n\r\n655\r\n01:29:50,180 --> 01:29:51,520\r\n-爸 并不是这样 -时间到了\r\n\r\n656\r\n01:29:51,690 --> 01:29:52,690\r\n并不是这样\r\n\r\n657\r\n01:29:52,850 --> 01:29:54,350\r\n走吧 艾伦 艾伦\r\n\r\n658\r\n01:29:54,520 --> 01:29:56,190\r\n我要你创造自己的未来\r\n\r\n659\r\n01:29:56,360 --> 01:29:58,030\r\n别活在过去 创造自己的未来\r\n\r\n660\r\n01:29:58,190 --> 01:29:59,820\r\n开门\r\n\r\n661\r\n01:29:59,990 --> 01:30:00,820\r\n棒呆了\r\n\r\n662\r\n01:30:04,990 --> 01:30:07,120\r\n\"别活在过去 创造自己的未来\"\r\n\r\n663\r\n01:30:07,280 --> 01:30:08,830\r\n可以了 开门\r\n\r\n664\r\n01:31:01,510 --> 01:31:04,170\r\n巴里·艾伦 我是布鲁斯·韦恩\r\n\r\n665\r\n01:31:05,010 --> 01:31:08,970\r\n你这么说似乎可以解释 为什么有个陌生人闯进我家\r\n\r\n666\r\n01:31:09,140 --> 01:31:11,930\r\n摸黑坐在我第二喜欢的椅子\r\n\r\n667\r\n01:31:14,020 --> 01:31:15,810\r\n请你解释一下\r\n\r\n668\r\n01:31:19,940 --> 01:31:22,650\r\n这家伙长得跟我一模一样\r\n\r\n669\r\n01:31:22,820 --> 01:31:25,530\r\n但绝对不是我\r\n\r\n670\r\n01:31:26,660 --> 01:31:28,530\r\n这个人…我不认识\r\n\r\n671\r\n01:31:28,700 --> 01:31:30,530\r\n披头散发的嬉皮\r\n\r\n672\r\n01:31:30,700 --> 01:31:33,450\r\n很帅的一个犹太青年\r\n\r\n673\r\n01:31:35,000 --> 01:31:36,960\r\n谁喝牛奶啊 我才不喝牛奶\r\n\r\n674\r\n01:31:37,750 --> 01:31:39,290\r\n我知道你有超能力\r\n\r\n675\r\n01:31:39,460 --> 01:31:41,300\r\n只是不知道是什么\r\n\r\n676\r\n01:31:41,710 --> 01:31:42,710\r\n我的专长包括\r\n\r\n677\r\n01:31:42,880 --> 01:31:45,630\r\n拉中提琴 网页设计\r\n\r\n678\r\n01:31:45,800 --> 01:31:48,590\r\n我也擅长手语 大猩猩手语\r\n\r\n679\r\n01:31:48,760 --> 01:31:52,100\r\n硅胶石英砂材料\r\n\r\n680\r\n01:31:52,510 --> 01:31:54,600\r\n耐磨耐热\r\n\r\n681\r\n01:31:54,770 --> 01:31:56,640\r\n是啊 我是冰舞竞技选手\r\n\r\n682\r\n01:31:56,810 --> 01:32:00,400\r\n这是用来避免 航天飞机重返大气层燃烧的材料\r\n\r\n683\r\n01:32:00,560 --> 01:32:03,070\r\n冰舞的竞争真的很激烈\r\n\r\n684\r\n01:32:04,440 --> 01:32:08,530\r\n我不知道你是谁 不管你找的是谁\r\n\r\n685\r\n01:32:08,700 --> 01:32:09,700\r\n都不是我\r\n\r\n686\r\n01:32:51,530 --> 01:32:53,120\r\n你是蝙蝠侠\r\n\r\n687\r\n01:32:53,530 --> 01:32:55,290\r\n所以你很快\r\n\r\n688\r\n01:32:56,580 --> 01:32:58,120\r\n这么说感觉太平凡了\r\n\r\n689\r\n01:32:58,290 --> 01:33:00,040\r\n我在组织一个团队\r\n\r\n690\r\n01:33:00,210 --> 01:33:02,290\r\n寻找拥有特殊能力的人\r\n\r\n691\r\n01:33:02,460 --> 01:33:03,960\r\n我相信敌人即将来袭\r\n\r\n692\r\n01:33:04,130 --> 01:33:06,210\r\n你不用多说 我参一脚\r\n\r\n693\r\n01:33:07,260 --> 01:33:08,340\r\n真的吗\r\n\r\n694\r\n01:33:08,720 --> 01:33:09,760\r\n就这么简单\r\n\r\n695\r\n01:33:09,930 --> 01:33:11,050\r\n是啊\r\n\r\n696\r\n01:33:13,010 --> 01:33:15,100\r\n我需要朋友\r\n\r\n697\r\n01:33:15,600 --> 01:33:18,560\r\n太好了\r\n\r\n698\r\n01:33:19,100 --> 01:33:20,850\r\n我能留着吗\r\n\r\n699\r\n01:33:21,480 --> 01:33:25,070\r\n那就像是一层三次元现实 似乎能够操控时空\r\n\r\n700\r\n01:33:25,230 --> 01:33:26,440\r\n我称之为神速力\r\n\r\n701\r\n01:33:26,610 --> 01:33:28,440\r\n害我燃烧大量的卡路里\r\n\r\n702\r\n01:33:28,610 --> 01:33:31,240\r\n所以我是零食的黑洞\r\n\r\n703\r\n01:33:31,410 --> 01:33:33,240\r\n我是\"零\"洞\r\n\r\n704\r\n01:33:34,120 --> 01:33:36,950\r\n这个特殊战斗团队有几个人\r\n\r\n705\r\n01:33:37,120 --> 01:33:39,040\r\n-三个 包括你 -三个\r\n\r\n706\r\n01:33:39,200 --> 01:33:41,080\r\n对抗什么\r\n\r\n707\r\n01:33:41,960 --> 01:33:43,420\r\n上飞机再告诉你\r\n\r\n708\r\n01:33:44,040 --> 01:33:45,250\r\n飞机\r\n\r\n709\r\n01:33:45,920 --> 01:33:47,670\r\n你的超能力是什么来着\r\n\r\n710\r\n01:33:47,840 --> 01:33:49,550\r\n我超有钱\r\n\r\n711\r\n01:34:12,650 --> 01:34:14,450\r\n普林斯小姐 让我来\r\n\r\n712\r\n01:34:14,620 --> 01:34:16,620\r\n没关系 我自己来\r\n\r\n713\r\n01:34:17,910 --> 01:34:19,290\r\n你想要喝吗\r\n\r\n714\r\n01:34:19,450 --> 01:34:20,750\r\n不 谢了\r\n\r\n715\r\n01:34:22,120 --> 01:34:24,120\r\n你得先倒水进去\r\n\r\n716\r\n01:34:24,830 --> 01:34:27,840\r\n-当然了 -才不会把茶叶烫熟\r\n\r\n717\r\n01:34:30,760 --> 01:34:32,300\r\n-很好 -太好了\r\n\r\n718\r\n01:34:32,470 --> 01:34:34,430\r\n茶叶应该够多了\r\n\r\n719\r\n01:34:34,590 --> 01:34:35,970\r\n好吧\r\n\r\n720\r\n01:34:37,100 --> 01:34:38,600\r\n你确定不来一杯\r\n\r\n721\r\n01:34:38,760 --> 01:34:42,020\r\n不 谢了 你得再让茶叶浸泡一下\r\n\r\n722\r\n01:34:42,770 --> 01:34:45,560\r\n我会的 一定会\r\n\r\n723\r\n01:34:46,980 --> 01:34:48,070\r\n你在打造什么\r\n\r\n724\r\n01:34:48,230 --> 01:34:49,570\r\n这是一只手套\r\n\r\n725\r\n01:34:50,150 --> 01:34:53,780\r\n布满高分子太阳能奈米电池\r\n\r\n726\r\n01:34:54,450 --> 01:34:56,160\r\n来 让我秀给你看\r\n\r\n727\r\n01:34:56,660 --> 01:34:59,660\r\n这是从氪星侦察舰上借来的\r\n\r\n728\r\n01:35:01,250 --> 01:35:02,700\r\n也许你应该…\r\n\r\n729\r\n01:35:02,870 --> 01:35:05,330\r\n-挪过去一点 谢谢 -没问题\r\n\r\n730\r\n01:35:12,880 --> 01:35:15,340\r\n现在看看效果如何\r\n\r\n731\r\n01:35:15,880 --> 01:35:17,260\r\n好了\r\n\r\n732\r\n01:35:17,930 --> 01:35:19,560\r\n还不错喔\r\n\r\n733\r\n01:35:19,720 --> 01:35:22,140\r\n捕捉并消散能量的手套\r\n\r\n734\r\n01:35:22,310 --> 01:35:23,810\r\n这是韦恩少爷的点子\r\n\r\n735\r\n01:35:24,100 --> 01:35:26,350\r\n也许你也应该打造一条套索\r\n\r\n736\r\n01:35:26,520 --> 01:35:28,270\r\n当然是黑色的罗\r\n\r\n737\r\n01:35:36,110 --> 01:35:39,070\r\n好吧 维克多斯通\r\n\r\n738\r\n01:35:39,150 --> 01:35:43,540\r\n搜寻维克多·斯通\r\n\r\n739\r\n01:35:55,340 --> 01:35:57,340\r\n有点不对劲\r\n\r\n740\r\n01:36:01,590 --> 01:36:03,270\r\n在这里见面 现在\r\n\r\n741\r\n01:36:09,150 --> 01:36:11,570\r\n看来你有个约会 普林斯小姐\r\n\r\n742\r\n01:37:08,620 --> 01:37:11,710\r\n你为什么找我 戴安娜\r\n\r\n743\r\n01:37:11,880 --> 01:37:13,130\r\n你知道我是谁\r\n\r\n744\r\n01:37:13,290 --> 01:37:15,630\r\n我知道的远远超乎你想像\r\n\r\n745\r\n01:37:15,800 --> 01:37:18,380\r\n那也许你已经知道我需要你的帮助\r\n\r\n746\r\n01:37:19,050 --> 01:37:20,050\r\n全世界都需要\r\n\r\n747\r\n01:37:21,430 --> 01:37:23,140\r\n去他的全世界\r\n\r\n748\r\n01:37:24,760 --> 01:37:27,140\r\n你很显然经历了很多\r\n\r\n749\r\n01:37:28,390 --> 01:37:30,890\r\n我完全无法想像\r\n\r\n750\r\n01:37:31,600 --> 01:37:34,980\r\n但不管你发生什么事 现在都拥有超能力\r\n\r\n751\r\n01:37:35,230 --> 01:37:36,940\r\n超能力\r\n\r\n752\r\n01:37:37,110 --> 01:37:39,280\r\n这看起来像是超能力吗\r\n\r\n753\r\n01:37:39,440 --> 01:37:40,610\r\n我们需要你 维克多\r\n\r\n754\r\n01:37:41,280 --> 01:37:42,870\r\n也许你也需要我们\r\n\r\n755\r\n01:37:43,030 --> 01:37:44,700\r\n我不需要任何人\r\n\r\n756\r\n01:37:46,910 --> 01:37:47,950\r\n不再需要了\r\n\r\n757\r\n01:37:48,120 --> 01:37:50,620\r\n我以前也一直这么告诉自己\r\n\r\n758\r\n01:37:57,460 --> 01:38:00,170\r\n我曾经失去一个深爱的人\r\n\r\n759\r\n01:38:03,050 --> 01:38:07,850\r\n把自己封闭起来\r\n\r\n760\r\n01:38:09,480 --> 01:38:12,190\r\n但我得学会再次敞开心房\r\n\r\n761\r\n01:38:14,900 --> 01:38:18,320\r\n老实说 我仍在努力中\r\n\r\n762\r\n01:38:18,480 --> 01:38:21,700\r\n既然你要求见我\r\n\r\n763\r\n01:38:22,570 --> 01:38:25,320\r\n你也在努力\r\n\r\n764\r\n01:38:52,100 --> 01:38:57,440\r\n挚爱的儿子\r\n维克多·斯通 1994-2015\r\n\r\n765\r\n01:38:54,850 --> 01:38:57,440\r\n挚爱的母亲\r\n爱莲诺·斯通 1973-2015\r\n\r\n766\r\n01:39:37,020 --> 01:39:40,690\r\n超人飞船上的金属样本被你说中了\r\n\r\n767\r\n01:39:40,860 --> 01:39:43,990\r\n我们用电子激光向它轰射X光\r\n\r\n768\r\n01:39:44,400 --> 01:39:45,860\r\n看看发生了什么事\r\n\r\n769\r\n01:39:54,870 --> 01:39:56,790\r\n克氏350万度\r\n\r\n770\r\n01:39:56,960 --> 01:39:59,920\r\n金属的内核变得过热\r\n\r\n771\r\n01:40:00,090 --> 01:40:02,420\r\n形成又热又密的物质\r\n\r\n772\r\n01:40:05,720 --> 01:40:08,510\r\n这是地球上最火热的东西\r\n\r\n773\r\n01:40:08,680 --> 01:40:10,600\r\n跟我对毕业舞会舞伴说的话一样\r\n\r\n774\r\n01:40:10,970 --> 01:40:12,510\r\n但她还是甩了我\r\n\r\n775\r\n01:40:12,970 --> 01:40:13,890\r\n是啊\r\n\r\n776\r\n01:40:18,060 --> 01:40:18,900\r\n喂 博士\r\n\r\n777\r\n01:40:19,230 --> 01:40:23,690\r\n你认为蝙蝠侠和犯罪调查部 找的东西有关联吗\r\n\r\n778\r\n01:40:24,740 --> 01:40:27,860\r\n6-1-9-8-2号物件\r\n\r\n779\r\n01:40:29,030 --> 01:40:30,120\r\n不\r\n\r\n780\r\n01:40:31,120 --> 01:40:32,330\r\n我不这么认为\r\n\r\n781\r\n01:41:07,150 --> 01:41:09,240\r\n维克多\r\n\r\n782\r\n01:41:26,380 --> 01:41:28,300\r\n好了 走吧\r\n\r\n783\r\n01:41:29,630 --> 01:41:31,140\r\n-高登局长 -来吧\r\n\r\n784\r\n01:41:32,180 --> 01:41:33,100\r\n给你的留言\r\n\r\n785\r\n01:41:37,810 --> 01:41:40,390\r\n不用看也知道今天是满月\r\n\r\n786\r\n01:41:40,560 --> 01:41:43,400\r\n哥谭市一半的疯子都出来了\r\n\r\n787\r\n01:41:43,560 --> 01:41:45,730\r\n他们都说看到怪物飞过港口\r\n\r\n788\r\n01:41:45,900 --> 01:41:49,650\r\n你是对的 老妈 金牌警校军 念牙医学院有什么不好\r\n\r\n789\r\n01:41:52,740 --> 01:41:55,030\r\n\"遭到飞行吸血鬼攻击\"\r\n\r\n790\r\n01:41:56,030 --> 01:41:59,000\r\n\"看起来像是一口尖牙的巨大蝙蝠\"\r\n\r\n791\r\n01:41:59,160 --> 01:42:00,960\r\n有一个相关的线索\r\n\r\n792\r\n01:42:01,120 --> 01:42:04,710\r\n实验室绑架案的嫌犯肖像素描\r\n\r\n793\r\n01:42:04,880 --> 01:42:07,420\r\n-看起来像… -我知道像什么\r\n\r\n794\r\n01:42:08,630 --> 01:42:11,090\r\n拜托 你觉得他在这里打击犯罪20年\r\n\r\n795\r\n01:42:11,260 --> 01:42:13,930\r\n然后跑去大都会绑架八个人\r\n\r\n796\r\n01:42:14,970 --> 01:42:16,050\r\n我今晚会找他谈谈\r\n\r\n797\r\n01:42:16,220 --> 01:42:17,760\r\n怎么找他\r\n\r\n798\r\n01:42:17,930 --> 01:42:19,390\r\n你说呢\r\n\r\n799\r\n01:42:37,660 --> 01:42:38,870\r\n塞拉斯\r\n\r\n800\r\n01:42:46,630 --> 01:42:48,800\r\n-天啊 -钢骨在哪里\r\n\r\n801\r\n01:42:48,960 --> 01:42:50,130\r\n他叫维克多\r\n\r\n802\r\n01:42:50,920 --> 01:42:53,680\r\n我们见过面 说过话\r\n\r\n803\r\n01:42:54,640 --> 01:42:56,050\r\n给他点时间\r\n\r\n804\r\n01:42:56,850 --> 01:42:58,810\r\n你一定是巴里 我是戴安娜\r\n\r\n805\r\n01:42:58,970 --> 01:43:02,730\r\n你好 巴里 我是戴安娜 那不太对 好极了\r\n\r\n806\r\n01:43:02,890 --> 01:43:03,890\r\n就只有我们\r\n\r\n807\r\n01:43:04,060 --> 01:43:05,020\r\n没错 就只有我们\r\n\r\n808\r\n01:43:06,360 --> 01:43:09,400\r\n酷啊 那是蝙蝠信号 那是在…\r\n\r\n809\r\n01:43:09,570 --> 01:43:11,650\r\n抱歉 那是在呼叫你\r\n\r\n810\r\n01:43:11,820 --> 01:43:13,030\r\n意思是我们得出动了\r\n\r\n811\r\n01:43:13,200 --> 01:43:16,240\r\n-对 是这意思没错 -酷毙了\r\n\r\n812\r\n01:44:14,340 --> 01:44:17,800\r\n湄拉指挥官 我告诉海王 外围守卫被掳走\r\n\r\n813\r\n01:44:18,010 --> 01:44:19,550\r\n他不会派出援兵\r\n\r\n814\r\n01:44:19,720 --> 01:44:22,350\r\n他说所有的士兵 都必须前往叛军地区支持\r\n\r\n815\r\n01:44:22,510 --> 01:44:25,230\r\n他不但残忍而且短视\r\n\r\n816\r\n01:44:26,940 --> 01:44:28,520\r\n好吧 带着剩下的人马\r\n\r\n817\r\n01:44:28,690 --> 01:44:30,860\r\n在母盒周围形成方阵\r\n\r\n818\r\n01:46:10,290 --> 01:46:12,330\r\n你逃不了的\r\n\r\n819\r\n01:46:13,080 --> 01:46:15,040\r\n我并不想逃\r\n\r\n820\r\n01:48:17,620 --> 01:48:19,500\r\n维科跟我说你会来\r\n\r\n821\r\n01:48:20,000 --> 01:48:22,710\r\n备受爱戴的亚特兰娜女王的长子\r\n\r\n822\r\n01:48:25,340 --> 01:48:26,630\r\n等一下\r\n\r\n823\r\n01:48:28,640 --> 01:48:29,720\r\n拜托了\r\n\r\n824\r\n01:48:33,310 --> 01:48:34,640\r\n我认识她\r\n\r\n825\r\n01:48:36,940 --> 01:48:38,520\r\n你至少认识她\r\n\r\n826\r\n01:48:39,400 --> 01:48:40,980\r\n我父母死于战争\r\n\r\n827\r\n01:48:42,900 --> 01:48:44,110\r\n她收容了我\r\n\r\n828\r\n01:48:44,490 --> 01:48:45,740\r\n还真是个圣人\r\n\r\n829\r\n01:48:46,450 --> 01:48:48,570\r\n你胆敢讽刺亚特兰娜女王\r\n\r\n830\r\n01:48:48,740 --> 01:48:51,370\r\n你的女王把我丢在我父亲家门口\r\n\r\n831\r\n01:48:51,530 --> 01:48:53,120\r\n从此把我忘得一干二净\r\n\r\n832\r\n01:48:53,290 --> 01:48:55,500\r\n你母亲是为了救你才离开\r\n\r\n833\r\n01:48:56,620 --> 01:48:59,080\r\n你无法想像她有多心痛\r\n\r\n834\r\n01:49:00,670 --> 01:49:02,710\r\n她也付出惨痛代价\r\n\r\n835\r\n01:49:03,960 --> 01:49:06,130\r\n但你现在不是脆弱的小孩\r\n\r\n836\r\n01:49:08,550 --> 01:49:10,140\r\n那本是她的责任\r\n\r\n837\r\n01:49:10,300 --> 01:49:13,470\r\n跟着那怪物到陆地 然后阻止他\r\n\r\n838\r\n01:49:14,060 --> 01:49:15,140\r\n现在\r\n\r\n839\r\n01:49:16,430 --> 01:49:17,770\r\n是你的责任\r\n\r\n840\r\n01:50:22,120 --> 01:50:23,580\r\n太好了\r\n\r\n841\r\n01:50:46,520 --> 01:50:47,900\r\n荒原狼\r\n\r\n842\r\n01:50:48,070 --> 01:50:49,990\r\n告诉我你知道了什么\r\n\r\n843\r\n01:50:50,150 --> 01:50:52,780\r\n找到两个苏醒的母盒\r\n\r\n844\r\n01:50:52,950 --> 01:50:55,910\r\n结合两个母盒的力量\r\n\r\n845\r\n01:50:56,070 --> 01:50:59,080\r\n我完成了要塞的防御系统\r\n\r\n846\r\n01:50:59,240 --> 01:51:01,660\r\n第三个母盒在哪里\r\n\r\n847\r\n01:51:01,830 --> 01:51:05,960\r\n天启魔感应到它 正在寻找它\r\n\r\n848\r\n01:51:06,130 --> 01:51:07,130\r\n它们抓来了囚犯\r\n\r\n849\r\n01:51:07,290 --> 01:51:09,380\r\n他们带有它的气味\r\n\r\n850\r\n01:51:10,130 --> 01:51:11,170\r\n去吧\r\n\r\n851\r\n01:51:12,010 --> 01:51:13,930\r\n去审问囚犯\r\n\r\n852\r\n01:51:14,720 --> 01:51:16,600\r\n找到第三个母盒\r\n\r\n853\r\n01:51:18,140 --> 01:51:20,310\r\n他们会乖乖告诉我\r\n\r\n854\r\n01:51:21,560 --> 01:51:24,060\r\n不然我就来硬的\r\n\r\n855\r\n01:51:29,730 --> 01:51:34,950\r\n第四章\r\n\r\n856\r\n01:51:31,330 --> 01:51:34,950\r\n“改造机器”\r\n\r\n857\r\n01:52:07,400 --> 01:52:08,980\r\n你们有多少人\r\n\r\n858\r\n01:52:09,820 --> 01:52:10,940\r\n还不够多\r\n\r\n859\r\n01:52:13,030 --> 01:52:15,280\r\n哥谭市各地有数十名目击者\r\n\r\n860\r\n01:52:15,450 --> 01:52:18,160\r\n他们的描述符合大都会绑架案的嫌犯\r\n\r\n861\r\n01:52:18,740 --> 01:52:19,780\r\n天启魔\r\n\r\n862\r\n01:52:20,410 --> 01:52:21,660\r\n好吧\r\n\r\n863\r\n01:52:21,830 --> 01:52:24,160\r\n天启魔一定闻到母盒的气味\r\n\r\n864\r\n01:52:24,410 --> 01:52:25,410\r\n在实验室的那个\r\n\r\n865\r\n01:52:25,580 --> 01:52:27,920\r\n它们把人抓走 拷问母盒下落\r\n\r\n866\r\n01:52:28,080 --> 01:52:29,790\r\n-那八个人可能还活着 -九个人\r\n\r\n867\r\n01:52:32,340 --> 01:52:34,840\r\n星辰实验室的主任今晚被绑走\r\n\r\n868\r\n01:52:40,050 --> 01:52:42,600\r\n好吧 另一个科学家\r\n\r\n869\r\n01:52:42,760 --> 01:52:44,060\r\n我们要怎么找到他\r\n\r\n870\r\n01:52:44,220 --> 01:52:45,890\r\n附近一定有它们的巢穴\r\n\r\n871\r\n01:52:46,060 --> 01:52:50,150\r\n我在大都会和哥谭市地图上做记号\r\n\r\n872\r\n01:52:50,310 --> 01:52:52,440\r\n看不出任何模式\r\n\r\n873\r\n01:52:52,610 --> 01:52:53,900\r\n地图上的路线没有交集\r\n\r\n874\r\n01:52:54,070 --> 01:52:55,400\r\n在陆地上没有\r\n\r\n875\r\n01:52:56,110 --> 01:52:58,160\r\n这是在两座城市之间的史崔克岛\r\n\r\n876\r\n01:52:58,320 --> 01:53:00,740\r\n这些是通风口 全都通往1929年\r\n\r\n877\r\n01:53:00,910 --> 01:53:03,290\r\n废弃的大都会工程隧道\r\n\r\n878\r\n01:53:03,450 --> 01:53:05,040\r\n巢穴可能在那里\r\n\r\n879\r\n01:53:06,370 --> 01:53:07,750\r\n他要跟我们一起去吗\r\n\r\n880\r\n01:53:07,920 --> 01:53:09,250\r\n因为你的车子坐不下\r\n\r\n881\r\n01:53:09,790 --> 01:53:11,210\r\n我有更大的玩意儿\r\n\r\n882\r\n01:53:12,540 --> 01:53:14,170\r\n你真的觉得…\r\n\r\n883\r\n01:53:15,510 --> 01:53:19,050\r\n他们就这样闪人了吗\r\n\r\n884\r\n01:53:20,260 --> 01:53:21,600\r\n太没礼貌了\r\n\r\n885\r\n01:53:56,630 --> 01:54:00,130\r\n星辰实验室\r\n\r\n886\r\n01:54:00,300 --> 01:54:02,390\r\n很接近了\r\n\r\n887\r\n01:54:02,550 --> 01:54:04,560\r\n敌人的气味\r\n\r\n888\r\n01:54:05,260 --> 01:54:06,430\r\n虚无\r\n\r\n889\r\n01:54:07,020 --> 01:54:08,560\r\n黑暗\r\n\r\n890\r\n01:54:09,310 --> 01:54:10,270\r\n死亡\r\n\r\n891\r\n01:54:10,690 --> 01:54:12,940\r\n-我们在哪里 阿尔弗雷德 -史崔克岛\r\n\r\n892\r\n01:54:13,110 --> 01:54:17,650\r\n你们应该就在隧道通风塔的正下方\r\n\r\n893\r\n01:54:18,240 --> 01:54:21,660\r\n往左看 应该有一道阶梯通往机械室\r\n\r\n894\r\n01:54:21,860 --> 01:54:24,410\r\n红外线热影像显示有一群人\r\n\r\n895\r\n01:54:24,580 --> 01:54:25,490\r\n就是那里\r\n\r\n896\r\n01:54:25,870 --> 01:54:26,870\r\n走吧\r\n\r\n897\r\n01:54:40,880 --> 01:54:41,720\r\n好吧\r\n\r\n898\r\n01:54:41,930 --> 01:54:43,800\r\n有任何计划吗\r\n\r\n899\r\n01:54:45,350 --> 01:54:46,640\r\n你们两个\r\n\r\n900\r\n01:54:46,810 --> 01:54:47,970\r\n别单打独斗\r\n\r\n901\r\n01:54:48,770 --> 01:54:50,020\r\n我们要联手出击\r\n\r\n902\r\n01:54:58,980 --> 01:55:00,820\r\n我听说过你\r\n\r\n903\r\n01:55:02,610 --> 01:55:03,780\r\n没想到你是真的\r\n\r\n904\r\n01:55:04,240 --> 01:55:05,780\r\n有用的时候我就是真的\r\n\r\n905\r\n01:55:16,040 --> 01:55:20,170\r\n我受够了你们的沉默 快告诉我 母盒在哪里\r\n\r\n906\r\n01:55:26,970 --> 01:55:29,180\r\n求求你 我们有家人\r\n\r\n907\r\n01:55:29,350 --> 01:55:31,430\r\n那你们就有弱点\r\n\r\n908\r\n01:55:31,600 --> 01:55:33,060\r\n荒原狼\r\n\r\n909\r\n01:55:33,230 --> 01:55:37,400\r\n好吧 我猜…那就是坏蛋\r\n\r\n910\r\n01:55:37,560 --> 01:55:38,610\r\n猜对了\r\n\r\n911\r\n01:55:39,150 --> 01:55:42,610\r\n我现在真的超想念超人\r\n\r\n912\r\n01:55:42,780 --> 01:55:44,950\r\n绕到另一边\r\n\r\n913\r\n01:55:45,110 --> 01:55:47,120\r\n把它们团团围住展开突袭\r\n\r\n914\r\n01:55:51,660 --> 01:55:53,250\r\n你接近过一个母盒\r\n\r\n915\r\n01:55:53,710 --> 01:55:55,420\r\n身上有它的气味\r\n\r\n916\r\n01:55:55,580 --> 01:55:57,040\r\n我不知道你在说什么\r\n\r\n917\r\n01:55:57,210 --> 01:55:59,040\r\n-它在哪里 -放过他\r\n\r\n918\r\n01:55:59,210 --> 01:56:01,460\r\n他不知道\r\n\r\n919\r\n01:56:05,050 --> 01:56:06,840\r\n等等 求求你\r\n\r\n920\r\n01:56:12,020 --> 01:56:15,140\r\n你也带着气味 但是更强烈\r\n\r\n921\r\n01:56:15,520 --> 01:56:17,650\r\n我死也不会告诉你\r\n\r\n922\r\n01:56:17,810 --> 01:56:19,650\r\n不告诉我就会死\r\n\r\n923\r\n01:56:20,070 --> 01:56:21,070\r\n不\r\n\r\n924\r\n01:56:30,410 --> 01:56:31,450\r\n维克多\r\n\r\n925\r\n01:56:31,620 --> 01:56:32,910\r\n杀了他们\r\n\r\n926\r\n01:56:37,370 --> 01:56:38,540\r\n亚马逊女战士\r\n\r\n927\r\n01:56:38,960 --> 01:56:41,460\r\n但不像你的姐妹\r\n\r\n928\r\n01:56:41,630 --> 01:56:42,880\r\n你更强大\r\n\r\n929\r\n01:57:13,830 --> 01:57:15,450\r\n亚马逊女战士\r\n\r\n930\r\n01:57:18,500 --> 01:57:19,880\r\n住手\r\n\r\n931\r\n01:57:20,250 --> 01:57:22,460\r\n这一个是我的\r\n\r\n932\r\n01:57:24,420 --> 01:57:26,840\r\n我不属于任何人\r\n\r\n933\r\n01:57:40,850 --> 01:57:42,900\r\n大伙儿 这不是联手出击\r\n\r\n934\r\n01:57:49,910 --> 01:57:51,070\r\n把这些人救出去\r\n\r\n935\r\n01:57:51,240 --> 01:57:52,910\r\n我会让这些怪物跟着我\r\n\r\n936\r\n01:58:03,340 --> 01:58:04,750\r\n大伙儿 快啊\r\n\r\n937\r\n01:58:13,510 --> 01:58:15,010\r\n再快一点\r\n\r\n938\r\n01:58:17,390 --> 01:58:18,770\r\n-没事吧 -没事\r\n\r\n939\r\n01:58:18,930 --> 01:58:21,350\r\n我会搞定 动作快点\r\n\r\n940\r\n01:58:23,400 --> 01:58:24,400\r\n这里\r\n\r\n941\r\n01:59:00,730 --> 01:59:02,140\r\n能量正在消散\r\n\r\n942\r\n01:59:02,310 --> 01:59:03,810\r\n我的手套很有用\r\n\r\n943\r\n01:59:05,060 --> 01:59:07,360\r\n晚点再庆祝 阿尔弗雷德 我需要夜蝠战机\r\n\r\n944\r\n01:59:07,520 --> 01:59:09,150\r\n我以为你不会开口\r\n\r\n945\r\n01:59:09,740 --> 01:59:11,860\r\n马上赶去 启动遥控模式\r\n\r\n946\r\n01:59:42,020 --> 01:59:43,020\r\n谢了 阿尔弗雷德\r\n\r\n947\r\n01:59:43,190 --> 01:59:44,600\r\n不客气\r\n\r\n948\r\n02:00:07,330 --> 02:00:08,290\r\n惨了\r\n\r\n949\r\n02:00:16,300 --> 02:00:17,760\r\n他们安全了 回去隧道\r\n\r\n950\r\n02:00:17,930 --> 02:00:21,010\r\n隧道 好 外星人 坏蛋 耍剑的女士\r\n\r\n951\r\n02:00:32,820 --> 02:00:34,190\r\n轮到我\r\n\r\n952\r\n02:01:56,570 --> 02:01:58,070\r\n系统全面故障\r\n\r\n953\r\n02:01:58,240 --> 02:02:00,660\r\n你没事吧 韦恩少爷\r\n\r\n954\r\n02:02:00,820 --> 02:02:01,820\r\n你没事吧\r\n\r\n955\r\n02:02:12,540 --> 02:02:16,050\r\n你身上流着旧神族的血液\r\n\r\n956\r\n02:02:30,520 --> 02:02:31,350\r\n你没事吧\r\n\r\n957\r\n02:02:33,360 --> 02:02:34,980\r\n我不确定你会来\r\n\r\n958\r\n02:02:36,020 --> 02:02:37,320\r\n你是我父亲\r\n\r\n959\r\n02:02:40,820 --> 02:02:41,820\r\n快去吧\r\n\r\n960\r\n02:02:55,460 --> 02:02:56,460\r\n不要\r\n\r\n961\r\n02:03:41,970 --> 02:03:44,300\r\n放轻松 阿尔弗雷德 我来接手\r\n\r\n962\r\n02:03:46,510 --> 02:03:47,720\r\n我认识你吗\r\n\r\n963\r\n02:04:18,630 --> 02:04:19,880\r\n我们在哪里的下面\r\n\r\n964\r\n02:04:20,630 --> 02:04:21,920\r\n哥谭港\r\n\r\n965\r\n02:05:00,630 --> 02:05:01,920\r\n那是谁\r\n\r\n966\r\n02:05:27,240 --> 02:05:28,410\r\n快点\r\n\r\n967\r\n02:05:33,540 --> 02:05:34,750\r\n戴安娜 快上来\r\n\r\n968\r\n02:06:36,640 --> 02:06:38,140\r\n是什么\r\n\r\n969\r\n02:06:45,940 --> 02:06:47,360\r\n让我看\r\n\r\n970\r\n02:07:26,520 --> 02:07:28,150\r\n它在这里\r\n\r\n971\r\n02:07:28,900 --> 02:07:31,860\r\n在这个世界\r\n\r\n972\r\n02:08:05,770 --> 02:08:08,730\r\n你可能感染了外星微生物 必须接受隔离\r\n\r\n973\r\n02:08:08,900 --> 02:08:10,570\r\n美国政府的规定要求…\r\n\r\n974\r\n02:08:10,730 --> 02:08:13,530\r\n我知道规定 是我写的\r\n\r\n975\r\n02:08:18,080 --> 02:08:19,410\r\n它召唤了他\r\n\r\n976\r\n02:08:19,580 --> 02:08:21,120\r\n母盒\r\n\r\n977\r\n02:08:21,290 --> 02:08:22,660\r\n他抢走的那个\r\n\r\n978\r\n02:08:23,000 --> 02:08:26,040\r\n他有两个了 他从亚特兰蒂斯抢走母盒\r\n\r\n979\r\n02:08:26,210 --> 02:08:28,500\r\n现在只需要人类遗失的母盒\r\n\r\n980\r\n02:08:28,670 --> 02:08:29,840\r\n他可能已经拿到手了\r\n\r\n981\r\n02:08:33,510 --> 02:08:34,930\r\n他没有拿到手\r\n\r\n982\r\n02:08:38,140 --> 02:08:39,300\r\n在我这里\r\n\r\n983\r\n02:08:49,860 --> 02:08:51,940\r\n你完成征服行动了吗\r\n\r\n984\r\n02:08:52,110 --> 02:08:53,360\r\n还没有 狄萨德\r\n\r\n985\r\n02:08:53,530 --> 02:08:55,780\r\n那你为何召唤我\r\n\r\n986\r\n02:08:55,950 --> 02:08:57,610\r\n我带来消息\r\n\r\n987\r\n02:08:57,780 --> 02:09:00,700\r\n强大的达克赛德登上王位之前\r\n\r\n988\r\n02:09:00,870 --> 02:09:05,370\r\n他在全宇宙搜寻终极武器\r\n\r\n989\r\n02:09:06,000 --> 02:09:08,170\r\n反生命方程序\r\n\r\n990\r\n02:09:08,330 --> 02:09:13,010\r\n掌控多重宇宙中 所有生命与自由意志的关键\r\n\r\n991\r\n02:09:13,170 --> 02:09:16,180\r\n他发现它被藏在一个原始星球上 但在他还没…\r\n\r\n992\r\n02:09:16,340 --> 02:09:19,220\r\n大家都知道你背叛了他\r\n\r\n993\r\n02:09:19,390 --> 02:09:21,890\r\n我找到了那个原始星球\r\n\r\n994\r\n02:09:22,060 --> 02:09:24,100\r\n胆敢反击的世界\r\n\r\n995\r\n02:09:24,270 --> 02:09:26,140\r\n就是地球\r\n\r\n996\r\n02:09:26,310 --> 02:09:28,520\r\n反生命方程序被刻在…\r\n\r\n997\r\n02:09:28,690 --> 02:09:32,570\r\n这个世界的地表\r\n\r\n998\r\n02:09:36,240 --> 02:09:37,650\r\n你确定\r\n\r\n999\r\n02:09:37,820 --> 02:09:38,860\r\n我看到了\r\n\r\n1000\r\n02:09:39,030 --> 02:09:42,450\r\n我亲眼看到了\r\n\r\n1001\r\n02:10:25,790 --> 02:10:27,370\r\n主人\r\n\r\n1002\r\n02:10:28,910 --> 02:10:32,460\r\n荒原狼\r\n\r\n1003\r\n02:10:33,130 --> 02:10:36,210\r\n主人 我只是你谦卑的仆人\r\n\r\n1004\r\n02:10:37,210 --> 02:10:40,050\r\n你真的找到它了\r\n\r\n1005\r\n02:10:40,220 --> 02:10:42,390\r\n是的 霸主\r\n\r\n1006\r\n02:10:43,140 --> 02:10:46,100\r\n失落的世界就是地球\r\n\r\n1007\r\n02:10:46,270 --> 02:10:49,270\r\n反生命方程序就在这里\r\n\r\n1008\r\n02:10:50,600 --> 02:10:53,940\r\n你若想寻求救赎 那就找到第三个母盒\r\n\r\n1009\r\n02:10:54,110 --> 02:10:57,070\r\n合而为一形成三位一体 当这世界化为焦土\r\n\r\n1010\r\n02:10:57,230 --> 02:11:00,450\r\n我就会来拿我的大奖\r\n\r\n1011\r\n02:11:01,410 --> 02:11:03,620\r\n你会来地球\r\n\r\n1012\r\n02:11:04,660 --> 02:11:08,910\r\n我已经把十万个世界化为尘土\r\n\r\n1013\r\n02:11:09,080 --> 02:11:10,580\r\n寻找反生命方程序\r\n\r\n1014\r\n02:11:10,750 --> 02:11:13,960\r\n寻找抢走我荣耀之人\r\n\r\n1015\r\n02:11:14,130 --> 02:11:19,880\r\n我将踏着他们的骨骸 沐浴在反生命方程序的荣光中\r\n\r\n1016\r\n02:11:20,050 --> 02:11:22,760\r\n所有的生命\r\n\r\n1017\r\n02:11:22,930 --> 02:11:26,430\r\n都将是我的\r\n\r\n1018\r\n02:11:29,810 --> 02:11:33,730\r\n一定会的 主人\r\n\r\n1019\r\n02:11:37,940 --> 02:11:39,610\r\n酷爆了\r\n\r\n1020\r\n02:11:39,780 --> 02:11:42,320\r\n从外面看 这只是一栋废弃建筑物\r\n\r\n1021\r\n02:11:46,070 --> 02:11:47,830\r\n它想要飞行\r\n\r\n1022\r\n02:11:49,040 --> 02:11:50,910\r\n你和机器说话\r\n\r\n1023\r\n02:11:51,210 --> 02:11:53,210\r\n我和人工智能说话\r\n\r\n1024\r\n02:11:53,370 --> 02:11:56,250\r\n这个说她因为软体问题不能飞\r\n\r\n1025\r\n02:11:56,420 --> 02:11:58,380\r\n不过我很快就能修好\r\n\r\n1026\r\n02:12:08,140 --> 02:12:10,350\r\n我的数据流中有个黑点\r\n\r\n1027\r\n02:12:10,680 --> 02:12:12,940\r\n我能感应到另外两个母盒\r\n\r\n1028\r\n02:12:13,100 --> 02:12:14,940\r\n我知道它们苏醒了\r\n\r\n1029\r\n02:12:15,100 --> 02:12:16,610\r\n但是看不见它们在哪里\r\n\r\n1030\r\n02:12:16,770 --> 02:12:18,770\r\n知道敌方基地在哪里才能攻击\r\n\r\n1031\r\n02:12:18,940 --> 02:12:21,190\r\n就算我们知道\r\n\r\n1032\r\n02:12:21,360 --> 02:12:24,200\r\n也没有比荒原狼更强大的生物\r\n\r\n1033\r\n02:12:26,410 --> 02:12:27,780\r\n也许有一个\r\n\r\n1034\r\n02:12:28,160 --> 02:12:29,540\r\n超人\r\n\r\n1035\r\n02:12:30,450 --> 02:12:34,500\r\n只要第三个母盒在沉睡 他们就看不到它 只能感应到它\r\n\r\n1036\r\n02:12:34,670 --> 02:12:36,710\r\n我们得不断移动才不会被发现\r\n\r\n1037\r\n02:12:36,880 --> 02:12:40,050\r\n不 这只是延缓失败的策略 不是获胜的战略\r\n\r\n1038\r\n02:12:40,670 --> 02:12:42,670\r\n难道火焰喷射器不流行了吗\r\n\r\n1039\r\n02:12:43,550 --> 02:12:44,630\r\n为何不直接烧毁它\r\n\r\n1040\r\n02:12:44,800 --> 02:12:46,890\r\n烈火也无法摧毁母盒\r\n\r\n1041\r\n02:12:47,050 --> 02:12:48,800\r\n它们是一种未知的物质\r\n\r\n1042\r\n02:12:48,970 --> 02:12:52,430\r\n喜欢热能 会吸收它 保存在它们的核心\r\n\r\n1043\r\n02:12:52,600 --> 02:12:54,730\r\n你很了解这些盒子嘛\r\n\r\n1044\r\n02:12:55,310 --> 02:12:56,560\r\n非常可疑\r\n\r\n1045\r\n02:12:56,730 --> 02:12:58,440\r\n你在哪里找到母盒\r\n\r\n1046\r\n02:12:59,400 --> 02:13:00,820\r\n你在怀疑我吗\r\n\r\n1047\r\n02:13:01,110 --> 02:13:02,610\r\n我就是怀疑你\r\n\r\n1048\r\n02:13:03,190 --> 02:13:05,070\r\n我们怎么知道你不是他们的奸细\r\n\r\n1049\r\n02:13:06,950 --> 02:13:08,620\r\n说来话长\r\n\r\n1050\r\n02:13:09,070 --> 02:13:10,990\r\n你赶着要去哪儿吗\r\n\r\n1051\r\n02:13:18,380 --> 02:13:22,210\r\n纳粹在二战结束前找到母盒\r\n\r\n1052\r\n02:13:22,380 --> 02:13:25,420\r\n它被埋在一座义大利修道院底下\r\n\r\n1053\r\n02:13:25,590 --> 02:13:27,970\r\n被送去给希特勒的路上 遭到盟军拦截\r\n\r\n1054\r\n02:13:28,140 --> 02:13:30,350\r\n1944年被带回了美国\r\n\r\n1055\r\n02:13:30,930 --> 02:13:34,480\r\n6-1-9-8-2号未知物件\r\n\r\n1056\r\n02:13:35,350 --> 02:13:38,810\r\n它被丢在五角大厦档案室七十年\r\n\r\n1057\r\n02:13:39,350 --> 02:13:42,570\r\n直到国防部开始研究超人飞船\r\n\r\n1058\r\n02:13:44,110 --> 02:13:47,610\r\n星辰实验室的一位研究员 发现超人飞船和…\r\n\r\n1059\r\n02:13:48,910 --> 02:13:50,450\r\n6-1-9-8-2号物件有关联\r\n\r\n1060\r\n02:13:51,330 --> 02:13:54,160\r\n他了解到它们都是外星科技\r\n\r\n1061\r\n02:13:54,830 --> 02:13:56,410\r\n不同的文明\r\n\r\n1062\r\n02:13:57,000 --> 02:13:59,120\r\n类似的属性\r\n\r\n1063\r\n02:14:00,460 --> 02:14:03,210\r\n虽然母盒已经沉睡了几千年\r\n\r\n1064\r\n02:14:03,880 --> 02:14:06,720\r\n那位研究员想出 一个可以唤醒它的理论\r\n\r\n1065\r\n02:14:07,340 --> 02:14:09,090\r\n也真的唤醒了它\r\n\r\n1066\r\n02:14:11,550 --> 02:14:12,390\r\n后来…\r\n\r\n1067\r\n02:14:14,520 --> 02:14:16,430\r\n我出了车祸 本来应该死去\r\n\r\n1068\r\n02:14:17,770 --> 02:14:20,980\r\n但是出于绝望或是疯狂\r\n\r\n1069\r\n02:14:21,150 --> 02:14:23,480\r\n那位研究员驾驭了母盒的力量\r\n\r\n1070\r\n02:14:39,670 --> 02:14:41,750\r\n释放了一种他无法…\r\n\r\n1071\r\n02:14:41,920 --> 02:14:44,590\r\n完全理解的外星科技\r\n\r\n1072\r\n02:14:44,750 --> 02:14:47,130\r\n他利用那股力量让我活下来\r\n\r\n1073\r\n02:14:50,720 --> 02:14:52,300\r\n活着…\r\n\r\n1074\r\n02:14:52,850 --> 02:14:54,810\r\n但变成了这样\r\n\r\n1075\r\n02:14:57,600 --> 02:14:59,890\r\n母盒继续沉睡\r\n\r\n1076\r\n02:15:00,810 --> 02:15:02,480\r\n他也没有物归原处\r\n\r\n1077\r\n02:15:05,110 --> 02:15:07,150\r\n那位研究员就是塞拉斯·斯通\r\n\r\n1078\r\n02:15:08,860 --> 02:15:10,530\r\n我的父亲\r\n\r\n1079\r\n02:15:13,820 --> 02:15:15,490\r\n等等\r\n\r\n1080\r\n02:15:15,660 --> 02:15:19,040\r\n你父亲用一个母盒救了你一命\r\n\r\n1081\r\n02:15:19,200 --> 02:15:21,420\r\n它们不是变态杀人机器吗\r\n\r\n1082\r\n02:15:21,580 --> 02:15:23,960\r\n它们是改造机器\r\n\r\n1083\r\n02:15:24,130 --> 02:15:26,800\r\n母盒没有救人或杀人…\r\n\r\n1084\r\n02:15:27,210 --> 02:15:29,300\r\n活着或死亡的概念\r\n\r\n1085\r\n02:15:29,460 --> 02:15:31,720\r\n它们按照主人的意愿重新排列物质\r\n\r\n1086\r\n02:15:31,880 --> 02:15:33,470\r\n使其再生 恢复原状\r\n\r\n1087\r\n02:15:33,640 --> 02:15:35,050\r\n恢复原状\r\n\r\n1088\r\n02:15:35,220 --> 02:15:38,640\r\n母盒拥有恢复粒子相互作用的力量\r\n\r\n1089\r\n02:15:38,810 --> 02:15:41,890\r\n你是说任何物质的粒子 都不能被创造或毁灭\r\n\r\n1090\r\n02:15:42,060 --> 02:15:44,060\r\n它们的相互作用只会转变\r\n\r\n1091\r\n02:15:44,230 --> 02:15:46,980\r\n烧掉一栋房子 粒子仍然存在\r\n\r\n1092\r\n02:15:47,150 --> 02:15:49,610\r\n房子的粒子变成灰烬的粒子\r\n\r\n1093\r\n02:15:49,780 --> 02:15:53,820\r\n任何人只要有火柴 都能把一栋房子化成灰烬\r\n\r\n1094\r\n02:15:55,870 --> 02:15:57,620\r\n但是一个母盒\r\n\r\n1095\r\n02:15:57,780 --> 02:16:00,000\r\n能够把灰烬变回一栋房子\r\n\r\n1096\r\n02:16:06,000 --> 02:16:08,500\r\n我知道我们都在想同样的事\r\n\r\n1097\r\n02:16:09,960 --> 02:16:12,470\r\n谁要说我才不说\r\n\r\n1098\r\n02:16:39,740 --> 02:16:40,830\r\n谁啊\r\n\r\n1099\r\n02:16:41,540 --> 02:16:42,750\r\n玛莎\r\n\r\n1100\r\n02:17:01,100 --> 02:17:06,100\r\n我去了星球日报 终于拿回克拉克的东西\r\n\r\n1101\r\n02:17:07,600 --> 02:17:10,900\r\n不知道为什么 现在无处可放\r\n\r\n1102\r\n02:17:13,690 --> 02:17:15,320\r\n我失去了农场\r\n\r\n1103\r\n02:17:16,950 --> 02:17:19,070\r\n我迟缴房贷好一阵子了\r\n\r\n1104\r\n02:17:20,450 --> 02:17:24,330\r\n老实说 那房子我一个人住太大了\r\n\r\n1105\r\n02:17:24,870 --> 02:17:27,670\r\n你知道我随时都欢迎你来住\r\n\r\n1106\r\n02:17:27,830 --> 02:17:29,790\r\n只要你需要的话\r\n\r\n1107\r\n02:17:31,000 --> 02:17:33,630\r\n谢谢你 露易丝 你真好心\r\n\r\n1108\r\n02:17:35,300 --> 02:17:37,380\r\n但我找到一个小地方 我一个人住刚好\r\n\r\n1109\r\n02:17:37,550 --> 02:17:39,010\r\n就在餐馆旁边\r\n\r\n1110\r\n02:17:39,640 --> 02:17:41,010\r\n我不是来求助的\r\n\r\n1111\r\n02:17:42,180 --> 02:17:44,060\r\n我来是因为…\r\n\r\n1112\r\n02:17:44,890 --> 02:17:47,310\r\n我见到派瑞先生 他跟我说…\r\n\r\n1113\r\n02:17:48,770 --> 02:17:51,690\r\n克拉克死后你就没去上班了\r\n\r\n1114\r\n02:17:56,490 --> 02:17:58,110\r\n我办不到\r\n\r\n1115\r\n02:18:05,000 --> 02:18:07,330\r\n全世界都在哀悼\r\n\r\n1116\r\n02:18:08,960 --> 02:18:11,380\r\n为了一个象征悲伤\r\n\r\n1117\r\n02:18:11,540 --> 02:18:15,340\r\n我走到哪儿都看到那个\"S\"\r\n\r\n1118\r\n02:18:16,470 --> 02:18:18,470\r\n也听到人们在说什么\r\n\r\n1119\r\n02:18:18,630 --> 02:18:20,470\r\n好像他们都认识他\r\n\r\n1120\r\n02:18:21,680 --> 02:18:23,930\r\n但是他们不认识克拉克\r\n\r\n1121\r\n02:18:25,470 --> 02:18:27,810\r\n我不能拦住他们\r\n\r\n1122\r\n02:18:27,980 --> 02:18:29,350\r\n看着他们跟他们说\r\n\r\n1123\r\n02:18:29,520 --> 02:18:32,270\r\n我为我儿子感到多么骄傲\r\n\r\n1124\r\n02:18:34,270 --> 02:18:36,780\r\n只有你知道\r\n\r\n1125\r\n02:18:36,940 --> 02:18:39,360\r\n也只有你能体会\r\n\r\n1126\r\n02:18:40,700 --> 02:18:43,660\r\n悲伤加上秘密的负担\r\n\r\n1127\r\n02:18:46,830 --> 02:18:50,120\r\n我大老远跑来是因为我想…\r\n\r\n1128\r\n02:18:50,290 --> 02:18:52,290\r\n因为我想来见你\r\n\r\n1129\r\n02:18:53,540 --> 02:18:55,500\r\n告诉你\r\n\r\n1130\r\n02:18:55,670 --> 02:18:57,510\r\n我能体会\r\n\r\n1131\r\n02:18:59,470 --> 02:19:00,510\r\n我…\r\n\r\n1132\r\n02:19:01,800 --> 02:19:05,350\r\n永远都不会像爱你儿子那样爱任何人\r\n\r\n1133\r\n02:19:09,100 --> 02:19:11,100\r\n我也很想念他\r\n\r\n1134\r\n02:19:12,270 --> 02:19:14,480\r\n我好想他啊\r\n\r\n1135\r\n02:19:21,200 --> 02:19:22,870\r\n我也是 亲爱的\r\n\r\n1136\r\n02:19:27,450 --> 02:19:32,330\r\n玛莎 你有任何需要我都会帮忙\r\n\r\n1137\r\n02:19:35,920 --> 02:19:38,510\r\n你可以帮我一个忙 亲爱的\r\n\r\n1138\r\n02:19:40,920 --> 02:19:43,180\r\n继续过活吧\r\n\r\n1139\r\n02:20:23,180 --> 02:20:26,010\r\n这世界也需要你 露易丝\r\n\r\n1140\r\n02:20:29,810 --> 02:20:30,970\r\n他人都死了\r\n\r\n1141\r\n02:20:31,310 --> 02:20:33,060\r\n母盒让维克多死而复生\r\n\r\n1142\r\n02:20:33,230 --> 02:20:34,770\r\n维克多并没有死\r\n\r\n1143\r\n02:20:34,940 --> 02:20:36,690\r\n生命不是一就是零\r\n\r\n1144\r\n02:20:36,860 --> 02:20:39,780\r\n不是生就是死 不能两者都是\r\n\r\n1145\r\n02:20:39,940 --> 02:20:41,610\r\n你能操作母盒吗 维克多\r\n\r\n1146\r\n02:20:41,780 --> 02:20:42,650\r\n当然了\r\n\r\n1147\r\n02:20:43,070 --> 02:20:45,490\r\n但我们不够了解氪星生物学\r\n\r\n1148\r\n02:20:45,660 --> 02:20:47,490\r\n谁知道会发生什么事\r\n\r\n1149\r\n02:20:49,830 --> 02:20:50,950\r\n好吧 不过…\r\n\r\n1150\r\n02:20:51,120 --> 02:20:54,750\r\n我们总得试试 对吧 我们得试试看\r\n\r\n1151\r\n02:20:55,370 --> 02:20:56,460\r\n还有什么好顾忌的\r\n\r\n1152\r\n02:20:56,630 --> 02:20:59,170\r\n必须唤醒母盒才能尝试\r\n\r\n1153\r\n02:20:59,340 --> 02:21:00,800\r\n它一旦苏醒\r\n\r\n1154\r\n02:21:00,960 --> 02:21:03,340\r\n敌人就会看到 然后闯进来\r\n\r\n1155\r\n02:21:03,510 --> 02:21:06,050\r\n完成三位一体 世界末日来临\r\n\r\n1156\r\n02:21:06,220 --> 02:21:08,600\r\n我们会把整个地球…\r\n\r\n1157\r\n02:21:08,760 --> 02:21:10,600\r\n拱手让给想灭绝人类的外星人 这真是好消息\r\n\r\n1158\r\n02:21:10,760 --> 02:21:13,390\r\n就算超人能回来\r\n\r\n1159\r\n02:21:13,560 --> 02:21:15,440\r\n谁敢说他就能打败他们\r\n\r\n1160\r\n02:21:15,600 --> 02:21:17,480\r\n母盒这么说\r\n\r\n1161\r\n02:21:17,770 --> 02:21:21,020\r\n维克多的父亲 一年多前启动一个母盒\r\n\r\n1162\r\n02:21:21,190 --> 02:21:22,940\r\n当时超人还活着\r\n\r\n1163\r\n02:21:23,110 --> 02:21:26,530\r\n它没召唤荒原狼 没有母盒召唤他 直到…\r\n\r\n1164\r\n02:21:26,700 --> 02:21:28,780\r\n直到超人死后\r\n\r\n1165\r\n02:21:28,950 --> 02:21:31,370\r\n直到超人死后\r\n\r\n1166\r\n02:21:31,540 --> 02:21:34,080\r\n-因为他们怕他 -没错\r\n\r\n1167\r\n02:21:34,660 --> 02:21:36,460\r\n他们怕他\r\n\r\n1168\r\n02:21:39,380 --> 02:21:41,170\r\n这是唯一的办法\r\n\r\n1169\r\n02:21:42,840 --> 02:21:46,590\r\n这团队有六个人 不是五个人 没有他就没有我们\r\n\r\n1170\r\n02:21:56,650 --> 02:22:01,790\r\n第五章\r\n\r\n1171\r\n02:21:58,180 --> 02:22:01,790\r\n国王人马\r\n\r\n1172\r\n02:22:02,980 --> 02:22:04,940\r\n又完成了一项遗愿清单任务\r\n\r\n1173\r\n02:22:05,110 --> 02:22:08,910\r\n把超人从坟墓里挖出来 搞定\r\n\r\n1174\r\n02:22:09,320 --> 02:22:10,780\r\n克拉克·乔瑟夫·肯特\r\n\r\n1175\r\n02:22:10,950 --> 02:22:13,370\r\n你知道我们能在一奈秒内搞定 对吧\r\n\r\n1176\r\n02:22:14,080 --> 02:22:15,450\r\n没错\r\n\r\n1177\r\n02:22:23,000 --> 02:22:24,630\r\n他是我的偶像\r\n\r\n1178\r\n02:22:27,260 --> 02:22:28,470\r\n好吧\r\n\r\n1179\r\n02:22:32,100 --> 02:22:35,140\r\n亚马逊人和亚特兰蒂斯人并肩作战\r\n\r\n1180\r\n02:22:35,310 --> 02:22:36,560\r\n半亚特兰蒂斯人\r\n\r\n1181\r\n02:22:38,440 --> 02:22:41,190\r\n我们的族人有几千年没说过话了\r\n\r\n1182\r\n02:22:41,860 --> 02:22:44,730\r\n不知道 我和我的族人不亲\r\n\r\n1183\r\n02:22:45,940 --> 02:22:48,650\r\n我跟亚马逊人一样讨厌亚特兰蒂斯人\r\n\r\n1184\r\n02:22:48,820 --> 02:22:50,860\r\n互相仇恨真的很没必要\r\n\r\n1185\r\n02:22:53,990 --> 02:22:55,330\r\n是啊\r\n\r\n1186\r\n02:22:56,620 --> 02:22:58,210\r\n不 谢了\r\n\r\n1187\r\n02:23:02,750 --> 02:23:05,710\r\n我父亲告诉我亚特兰蒂斯有句老话\r\n\r\n1188\r\n02:23:07,460 --> 02:23:09,760\r\n\"只要从黑暗中拿回什么\r\n\r\n1189\r\n02:23:09,930 --> 02:23:12,550\r\n\"-就一定要… -就一定要付出代价\"\r\n\r\n1190\r\n02:23:14,810 --> 02:23:16,390\r\n我们也会这么说\r\n\r\n1191\r\n02:23:19,020 --> 02:23:20,350\r\n真没想到\r\n\r\n1192\r\n02:23:20,850 --> 02:23:22,730\r\n神奇女侠\r\n\r\n1193\r\n02:23:24,270 --> 02:23:28,070\r\n你觉得怎样 她会不会喜欢一个小鲜肉\r\n\r\n1194\r\n02:23:28,440 --> 02:23:31,030\r\n她都五千岁了 巴里\r\n\r\n1195\r\n02:23:32,910 --> 02:23:34,740\r\n每个男人都是小鲜肉\r\n\r\n1196\r\n02:23:36,740 --> 02:23:37,580\r\n天啊\r\n\r\n1197\r\n02:23:39,330 --> 02:23:41,040\r\n真是的\r\n\r\n1198\r\n02:23:44,380 --> 02:23:46,000\r\n该死\r\n\r\n1199\r\n02:23:47,380 --> 02:23:48,380\r\n运气怎么样\r\n\r\n1200\r\n02:23:48,550 --> 02:23:49,630\r\n如果你说的\"运气\"是指…\r\n\r\n1201\r\n02:23:49,800 --> 02:23:52,890\r\n\"今天能不能让它飞起来的运气\"\r\n\r\n1202\r\n02:23:53,050 --> 02:23:55,050\r\n那就没有\r\n\r\n1203\r\n02:23:55,930 --> 02:23:57,470\r\n没关系\r\n\r\n1204\r\n02:23:57,640 --> 02:23:59,350\r\n无所谓 我们只要把尸体\r\n\r\n1205\r\n02:23:59,520 --> 02:24:01,770\r\n放进氪星飞船 它基本上是一台有机电脑\r\n\r\n1206\r\n02:24:01,940 --> 02:24:03,940\r\n可以直接和母盒讲话\r\n\r\n1207\r\n02:24:04,100 --> 02:24:06,570\r\n什么 就像它跟莱克斯·卢瑟讲话\r\n\r\n1208\r\n02:24:06,730 --> 02:24:07,770\r\n差不多吧\r\n\r\n1209\r\n02:24:07,940 --> 02:24:11,780\r\n还会出什么差错\r\n\r\n1210\r\n02:24:18,410 --> 02:24:19,910\r\n韦恩少爷\r\n\r\n1211\r\n02:24:22,000 --> 02:24:23,210\r\n你成功了\r\n\r\n1212\r\n02:24:23,580 --> 02:24:26,880\r\n你组成了团队 一起打这场仗\r\n\r\n1213\r\n02:24:27,170 --> 02:24:29,380\r\n你实现了承诺\r\n\r\n1214\r\n02:24:30,460 --> 02:24:33,880\r\n但是想让超人死而复生 我是说…\r\n\r\n1215\r\n02:24:34,510 --> 02:24:36,350\r\n你的罪恶感超过了理性\r\n\r\n1216\r\n02:24:37,550 --> 02:24:39,680\r\n再多的国王人马都办不到\r\n\r\n1217\r\n02:24:39,850 --> 02:24:42,940\r\n阿尔弗雷德 我这次完全凭靠信念\r\n\r\n1218\r\n02:24:43,100 --> 02:24:44,940\r\n而不是理性\r\n\r\n1219\r\n02:24:45,730 --> 02:24:49,940\r\n但如果你开始玩弄这个母盒\r\n\r\n1220\r\n02:24:50,110 --> 02:24:52,190\r\n可能会是一切的终结\r\n\r\n1221\r\n02:24:52,360 --> 02:24:54,240\r\n你怎么知道你的团队够强大\r\n\r\n1222\r\n02:24:55,490 --> 02:24:57,830\r\n制伏不了冲过来的公牛\r\n\r\n1223\r\n02:24:57,990 --> 02:24:59,700\r\n就不要挥舞红色披风\r\n\r\n1224\r\n02:24:59,870 --> 02:25:01,450\r\n是这个红色披风就可以\r\n\r\n1225\r\n02:25:01,620 --> 02:25:03,790\r\n红色披风会冲回去\r\n\r\n1226\r\n02:25:18,510 --> 02:25:19,680\r\n好吧\r\n\r\n1227\r\n02:25:26,650 --> 02:25:29,020\r\n你是对的 斯通博士 检验报告是阴性\r\n\r\n1228\r\n02:25:29,190 --> 02:25:30,820\r\n大家都没事 包括你在内\r\n\r\n1229\r\n02:25:30,980 --> 02:25:33,570\r\n但为了安全起见 我们扫遍了整间实验室\r\n\r\n1230\r\n02:25:33,740 --> 02:25:35,490\r\n谢谢你 汤玛斯 所以我可以走了吗\r\n\r\n1231\r\n02:25:35,650 --> 02:25:36,490\r\n当然了\r\n\r\n1232\r\n02:25:40,490 --> 02:25:41,790\r\n-谢了 -大家听好\r\n\r\n1233\r\n02:25:41,950 --> 02:25:44,410\r\n你们都没事了 收拾你们的东西\r\n\r\n1234\r\n02:25:44,580 --> 02:25:46,120\r\n如果需要更多医疗照顾…\r\n\r\n1235\r\n02:25:46,290 --> 02:25:49,960\r\n亚瑟 我问你 哪个比较低调 选项\"A\"\r\n\r\n1236\r\n02:25:50,130 --> 02:25:51,380\r\n-绝对不是\"A\" -好吧\r\n\r\n1237\r\n02:25:51,550 --> 02:25:54,670\r\n或是…\"B\"\r\n\r\n1238\r\n02:25:56,300 --> 02:25:57,550\r\n我再看看选项\"Ａ\"\r\n\r\n1239\r\n02:26:03,180 --> 02:26:06,310\r\n好了 该换装了\r\n\r\n1240\r\n02:26:08,440 --> 02:26:10,400\r\n我一直都穿着\r\n\r\n1241\r\n02:26:37,720 --> 02:26:38,550\r\n识别证\r\n\r\n1242\r\n02:26:38,800 --> 02:26:39,970\r\n识别证\r\n\r\n1243\r\n02:26:43,140 --> 02:26:44,260\r\n遵命\r\n\r\n1244\r\n02:26:46,600 --> 02:26:47,810\r\n\"遵命\"\r\n\r\n1245\r\n02:26:49,770 --> 02:26:51,900\r\n星辰实验室人事档案\r\n\r\n1246\r\n02:27:03,860 --> 02:27:05,490\r\n卫斯理·罗伊\r\n宪兵 允许通行\r\n\r\n1247\r\n02:27:11,040 --> 02:27:12,380\r\n可以了\r\n\r\n1248\r\n02:27:12,540 --> 02:27:14,630\r\n\"可以\" 可以了\r\n\r\n1249\r\n02:27:21,590 --> 02:27:22,680\r\n博士\r\n\r\n1250\r\n02:27:22,850 --> 02:27:24,050\r\n他们放你出来了\r\n\r\n1251\r\n02:27:24,220 --> 02:27:25,510\r\n是啊 他们终于肯听我讲道理\r\n\r\n1252\r\n02:27:25,680 --> 02:27:27,930\r\n现在让我们看看电子激光\r\n\r\n1253\r\n02:27:28,100 --> 02:27:29,100\r\n有什么进展\r\n\r\n1254\r\n02:27:29,270 --> 02:27:31,600\r\n我们有了真正的进展 让我给你看\r\n\r\n1255\r\n02:27:46,700 --> 02:27:49,200\r\n维克多 清空这地方\r\n\r\n1256\r\n02:27:49,540 --> 02:27:50,790\r\n没问题\r\n\r\n1257\r\n02:27:55,000 --> 02:27:57,130\r\n红色警戒 受到污染\r\n\r\n1258\r\n02:27:56,530 --> 02:27:58,460\r\n生化威胁\r\n\r\n1259\r\n02:27:58,630 --> 02:28:01,090\r\n全体人员立刻疏散\r\n\r\n1260\r\n02:28:02,130 --> 02:28:03,300\r\n生化威胁红色警戒\r\n\r\n1261\r\n02:28:03,470 --> 02:28:05,850\r\n感应器侦测到外星微生物\r\n\r\n1262\r\n02:28:06,010 --> 02:28:08,640\r\n外星微生物不可能\r\n\r\n1263\r\n02:28:08,810 --> 02:28:09,810\r\n一定是虚惊一场\r\n\r\n1264\r\n02:28:09,980 --> 02:28:12,350\r\n各位 关闭实验室 尽快离开\r\n\r\n1265\r\n02:28:12,520 --> 02:28:13,560\r\n-刚刚才扫过一遍 -走吧\r\n\r\n1266\r\n02:28:13,730 --> 02:28:15,900\r\n-一定有人误触警报 -走吧 博士\r\n\r\n1267\r\n02:28:16,060 --> 02:28:17,650\r\n-想想看 -全员撤离\r\n\r\n1268\r\n02:28:17,820 --> 02:28:20,070\r\n听好 等等 该死\r\n\r\n1269\r\n02:28:20,240 --> 02:28:22,990\r\n保持冷静 前往最近出口\r\n\r\n1270\r\n02:28:29,450 --> 02:28:31,160\r\n注意 全体人员\r\n\r\n1271\r\n02:28:31,330 --> 02:28:34,120\r\n快点 大家都出去 快点\r\n\r\n1272\r\n02:28:34,290 --> 02:28:35,920\r\n快走 快啊\r\n\r\n1273\r\n02:28:36,080 --> 02:28:37,590\r\n大家都出去 快点\r\n\r\n1274\r\n02:28:55,980 --> 02:28:57,950\r\n生化威胁\r\n\r\n1275\r\n02:28:57,950 --> 02:28:58,520\r\n安全\r\n\r\n1276\r\n02:28:58,610 --> 02:28:59,610\r\n搞定\r\n\r\n1277\r\n02:28:59,780 --> 02:29:00,610\r\n搞定了\r\n\r\n1278\r\n02:29:00,980 --> 02:29:03,650\r\n这是塞拉斯·斯通博士 收到吗\r\n\r\n1279\r\n02:29:03,820 --> 02:29:06,280\r\n-请说 -这是假警报\r\n\r\n1280\r\n02:29:06,450 --> 02:29:09,620\r\n有人骇入系统 我们得…\r\n\r\n1281\r\n02:29:18,960 --> 02:29:20,380\r\n维克多\r\n\r\n1282\r\n02:29:22,130 --> 02:29:24,300\r\n斯通博士 你在吗 我没收到\r\n\r\n1283\r\n02:29:25,340 --> 02:29:26,340\r\n我搞错了\r\n\r\n1284\r\n02:29:26,510 --> 02:29:27,720\r\n警报是真的\r\n\r\n1285\r\n02:29:27,890 --> 02:29:29,470\r\n大家都出去 任何人 我重复\r\n\r\n1286\r\n02:29:29,640 --> 02:29:32,390\r\n没有我的允许 任何人都不准回来\r\n\r\n1287\r\n02:29:32,560 --> 02:29:33,810\r\n收到了\r\n\r\n1288\r\n02:29:44,070 --> 02:29:45,490\r\n大家都出来\r\n\r\n1289\r\n02:29:45,820 --> 02:29:46,820\r\n快点 快点\r\n\r\n1290\r\n02:29:51,240 --> 02:29:52,620\r\n-大家都安全出来了 -应该吧\r\n\r\n1291\r\n02:29:52,790 --> 02:29:53,620\r\n-每一个人 -对\r\n\r\n1292\r\n02:30:26,950 --> 02:30:28,200\r\n这里\r\n\r\n1293\r\n02:30:38,790 --> 02:30:40,750\r\n它知道他来了\r\n\r\n1294\r\n02:30:42,630 --> 02:30:43,920\r\n超紧张的\r\n\r\n1295\r\n02:30:48,380 --> 02:30:50,260\r\n太惊人了\r\n\r\n1296\r\n02:30:51,090 --> 02:30:52,300\r\n太疯狂了\r\n\r\n1297\r\n02:30:52,470 --> 02:30:54,350\r\n什么 现在才说疯狂\r\n\r\n1298\r\n02:30:54,520 --> 02:30:56,890\r\n你们这群疯子最好知道自己在干嘛\r\n\r\n1299\r\n02:32:04,250 --> 02:32:08,260\r\n露易丝·莱恩\r\n星球日报记者\r\n\r\n1300\r\n02:32:12,630 --> 02:32:16,050\r\n验孕棒\r\n\r\n1301\r\n02:33:22,870 --> 02:33:24,710\r\n系统即将上线\r\n\r\n1302\r\n02:33:28,250 --> 02:33:31,880\r\n欢迎 维克多 您想接手掌控吗\r\n\r\n1303\r\n02:33:32,050 --> 02:33:32,880\r\n我进去了\r\n\r\n1304\r\n02:33:42,310 --> 02:33:44,520\r\n这艘飞船说母盒有敌意\r\n\r\n1305\r\n02:33:44,690 --> 02:33:46,350\r\n我可以取消安全协定\r\n\r\n1306\r\n02:33:46,520 --> 02:33:48,150\r\n但是没时间修复卢瑟对主电容器\r\n\r\n1307\r\n02:33:48,310 --> 02:33:50,610\r\n造成的所有的电力损害\r\n\r\n1308\r\n02:33:50,770 --> 02:33:51,940\r\n说白话\r\n\r\n1309\r\n02:33:52,110 --> 02:33:54,150\r\n电流不够 无法唤醒母盒\r\n\r\n1310\r\n02:33:55,110 --> 02:33:56,530\r\n我可能有办法\r\n\r\n1311\r\n02:33:58,870 --> 02:34:00,780\r\n我也许可以启动它\r\n\r\n1312\r\n02:34:00,950 --> 02:34:01,990\r\n我不喜欢打破这规则\r\n\r\n1313\r\n02:34:02,160 --> 02:34:04,080\r\n但是当我接近光速 我…\r\n\r\n1314\r\n02:34:04,250 --> 02:34:05,750\r\n听着 时间会发生疯狂的事\r\n\r\n1315\r\n02:34:05,910 --> 02:34:08,500\r\n但要是我成功了 就能制造巨大的电力\r\n\r\n1316\r\n02:34:08,670 --> 02:34:10,420\r\n我可以往回跑 只要距离够远\r\n\r\n1317\r\n02:34:10,590 --> 02:34:12,750\r\n就能传导大量电流\r\n\r\n1318\r\n02:34:12,920 --> 02:34:15,260\r\n也许可以唤醒母盒 如果…\r\n\r\n1319\r\n02:34:15,670 --> 02:34:17,260\r\n还是要这么做的话\r\n\r\n1320\r\n02:34:17,430 --> 02:34:18,840\r\n没错 开始吧\r\n\r\n1321\r\n02:34:23,680 --> 02:34:24,890\r\n你好 莱恩小姐\r\n\r\n1322\r\n02:34:25,060 --> 02:34:25,890\r\n早安\r\n\r\n1323\r\n02:34:26,060 --> 02:34:27,310\r\n我以为你不会来了\r\n\r\n1324\r\n02:34:28,600 --> 02:34:29,940\r\n最后一次\r\n\r\n1325\r\n02:34:32,480 --> 02:34:34,070\r\n封锁线 请勿跨越\r\n\r\n1326\r\n02:34:47,080 --> 02:34:50,460\r\n我看到发动机 这一定是终点线\r\n\r\n1327\r\n02:34:50,960 --> 02:34:52,040\r\n我就位了\r\n\r\n1328\r\n02:34:54,920 --> 02:34:57,010\r\n准备开始投放程序\r\n\r\n1329\r\n02:34:57,470 --> 02:34:59,090\r\n母盒准备好了\r\n\r\n1330\r\n02:35:18,610 --> 02:35:20,450\r\n这艘飞船在求我不要唤醒母盒\r\n\r\n1331\r\n02:35:20,610 --> 02:35:22,410\r\n-这是无法逆转的程序 -它很害怕\r\n\r\n1332\r\n02:35:22,570 --> 02:35:23,660\r\n它知道荒原狼会来找它\r\n\r\n1333\r\n02:35:23,830 --> 02:35:25,580\r\n我们知道了 继续吧\r\n\r\n1334\r\n02:35:25,910 --> 02:35:28,370\r\n我强烈建议不要启动\r\n\r\n1335\r\n02:35:28,540 --> 02:35:30,080\r\n巴里 我要开始倒数了\r\n\r\n1336\r\n02:35:30,250 --> 02:35:31,960\r\n这是无法逆转的程序\r\n\r\n1337\r\n02:35:32,210 --> 02:35:33,170\r\n-五 -五\r\n\r\n1338\r\n02:35:33,250 --> 02:35:34,090\r\n五\r\n\r\n1339\r\n02:35:34,250 --> 02:35:35,380\r\n-天启星有敌意 -馊主意\r\n\r\n1340\r\n02:35:35,550 --> 02:35:36,510\r\n并不是 继续吧\r\n\r\n1341\r\n02:35:36,800 --> 02:35:37,630\r\n四\r\n\r\n1342\r\n02:35:37,800 --> 02:35:38,970\r\n-四 -四\r\n\r\n1343\r\n02:35:39,130 --> 02:35:40,840\r\n-我强烈建议不要启动 -我们得立刻中止\r\n\r\n1344\r\n02:35:41,010 --> 02:35:41,970\r\n快动手\r\n\r\n1345\r\n02:35:42,300 --> 02:35:43,300\r\n-三 -三\r\n\r\n1346\r\n02:35:43,470 --> 02:35:44,390\r\n三\r\n\r\n1347\r\n02:35:44,560 --> 02:35:46,470\r\n-二 -二\r\n\r\n1348\r\n02:35:46,640 --> 02:35:48,390\r\n-二 -这是无法逆转的程序\r\n\r\n1349\r\n02:35:48,680 --> 02:35:49,640\r\n-一 -一\r\n\r\n1350\r\n02:35:50,690 --> 02:35:53,480\r\n-一 -这是无法逆转的程序\r\n\r\n1351\r\n02:37:13,900 --> 02:37:17,860\r\n正义联盟\r\n\r\n1352\r\n02:37:22,400 --> 02:37:23,990\r\n-维克多 -不\r\n\r\n1353\r\n02:37:25,030 --> 02:37:25,860\r\n上\r\n\r\n1354\r\n02:38:56,580 --> 02:38:59,630\r\n未来已经在现在扎根\r\n\r\n1355\r\n02:39:00,170 --> 02:39:01,210\r\n快趴下\r\n\r\n1356\r\n02:40:17,330 --> 02:40:22,330\r\n你若在寻找他的纪念碑 看看你周围\r\n\r\n1357\r\n02:40:45,310 --> 02:40:46,860\r\n他活过来了\r\n\r\n1358\r\n02:41:13,880 --> 02:41:16,600\r\n不太对劲 他在扫描我们\r\n\r\n1359\r\n02:41:18,720 --> 02:41:20,140\r\n什么\r\n\r\n1360\r\n02:41:35,320 --> 02:41:36,160\r\n维克多\r\n\r\n1361\r\n02:41:37,450 --> 02:41:38,450\r\n维克多\r\n\r\n1362\r\n02:41:40,740 --> 02:41:42,290\r\n-该死 -你在干嘛\r\n\r\n1363\r\n02:41:42,750 --> 02:41:44,290\r\n是我的自动防御系统\r\n\r\n1364\r\n02:41:44,460 --> 02:41:45,500\r\n它感应到危险\r\n\r\n1365\r\n02:41:45,670 --> 02:41:46,830\r\n维克多 住手\r\n\r\n1366\r\n02:41:47,000 --> 02:41:48,840\r\n-我无法控制 -住手\r\n\r\n1367\r\n02:42:01,270 --> 02:42:02,430\r\n卡尔·艾尔 不要\r\n\r\n1368\r\n02:42:10,820 --> 02:42:12,780\r\n他头脑不清楚 不知道自己是谁\r\n\r\n1369\r\n02:42:19,950 --> 02:42:22,580\r\n亚瑟 我们得制伏他\r\n\r\n1370\r\n02:42:53,150 --> 02:42:56,780\r\n卡尔·艾尔 最后的氪星之子\r\n\r\n1371\r\n02:42:57,860 --> 02:43:00,070\r\n回想你是谁\r\n\r\n1372\r\n02:43:01,700 --> 02:43:03,120\r\n告诉我你是谁\r\n\r\n1373\r\n02:44:37,920 --> 02:44:38,760\r\n快逃\r\n\r\n1374\r\n02:44:48,180 --> 02:44:49,810\r\n你最好闪边\r\n\r\n1375\r\n02:44:53,100 --> 02:44:54,100\r\n-没事吗 -没事\r\n\r\n1376\r\n02:44:54,270 --> 02:44:56,730\r\n起来 去找掩护 快去\r\n\r\n1377\r\n02:45:49,160 --> 02:45:51,200\r\n别逼我这么做\r\n\r\n1378\r\n02:46:23,900 --> 02:46:25,030\r\n克拉克\r\n\r\n1379\r\n02:46:26,110 --> 02:46:27,280\r\n克拉克 不\r\n\r\n1380\r\n02:46:38,880 --> 02:46:39,840\r\n克拉克\r\n\r\n1381\r\n02:46:40,250 --> 02:46:41,420\r\n不\r\n\r\n1382\r\n02:46:42,250 --> 02:46:44,010\r\n这世界需要你\r\n\r\n1383\r\n02:46:49,300 --> 02:46:50,220\r\n克拉克\r\n\r\n1384\r\n02:46:50,600 --> 02:46:51,850\r\n克拉克\r\n\r\n1385\r\n02:46:52,180 --> 02:46:53,970\r\n别开枪\r\n\r\n1386\r\n02:46:55,560 --> 02:46:56,690\r\n克拉克\r\n\r\n1387\r\n02:47:00,060 --> 02:47:01,440\r\n求求你\r\n\r\n1388\r\n02:47:35,680 --> 02:47:36,810\r\n求求你\r\n\r\n1389\r\n02:47:48,030 --> 02:47:49,200\r\n求求你\r\n\r\n1390\r\n02:47:49,950 --> 02:47:51,740\r\n走吧\r\n\r\n1391\r\n02:47:52,200 --> 02:47:53,200\r\n没错\r\n\r\n1392\r\n02:47:54,080 --> 02:47:55,370\r\n我们走吧\r\n\r\n1393\r\n02:48:27,940 --> 02:48:30,280\r\n真是拍谢\r\n\r\n1394\r\n02:48:39,500 --> 02:48:40,410\r\n找掩护\r\n\r\n1395\r\n02:48:40,580 --> 02:48:43,080\r\n-他来了 -母盒\r\n\r\n1396\r\n02:48:43,250 --> 02:48:44,290\r\n它在哪里\r\n\r\n1397\r\n02:48:55,010 --> 02:48:56,220\r\n快点\r\n\r\n1398\r\n02:48:57,140 --> 02:48:58,430\r\n快点\r\n\r\n1399\r\n02:49:23,960 --> 02:49:27,000\r\n注意 实验室受到入侵\r\n\r\n1400\r\n02:49:27,590 --> 02:49:29,760\r\n第四区 第三层\r\n\r\n1401\r\n02:49:29,920 --> 02:49:32,720\r\n立刻执行封锁程序\r\n\r\n1402\r\n02:50:01,290 --> 02:50:02,870\r\n把母盒给我\r\n\r\n1403\r\n02:50:16,050 --> 02:50:17,470\r\n不 不\r\n\r\n1404\r\n02:50:20,010 --> 02:50:21,720\r\n爸 等等 不要\r\n\r\n1405\r\n02:51:02,060 --> 02:51:04,930\r\n末日即将开始\r\n\r\n1406\r\n02:51:10,690 --> 02:51:11,980\r\n维克多\r\n\r\n1407\r\n02:51:14,530 --> 02:51:17,650\r\n维克多 你没事吧 站起来\r\n\r\n1408\r\n02:51:23,660 --> 02:51:24,830\r\n维克多\r\n\r\n1409\r\n02:51:25,950 --> 02:51:27,410\r\n他死了\r\n\r\n1410\r\n02:51:27,580 --> 02:51:28,580\r\n什么\r\n\r\n1411\r\n02:51:29,670 --> 02:51:30,880\r\n我父亲\r\n\r\n1412\r\n02:51:32,340 --> 02:51:35,300\r\n我没能救他 我没办法\r\n\r\n1413\r\n02:51:36,090 --> 02:51:37,380\r\n天啊\r\n\r\n1414\r\n02:51:44,310 --> 02:51:46,390\r\n他父亲是因我们而死\r\n\r\n1415\r\n02:51:46,560 --> 02:51:48,020\r\n我就说唤醒母盒是个馊主意\r\n\r\n1416\r\n02:51:48,190 --> 02:51:49,770\r\n这不是个馊主意\r\n\r\n1417\r\n02:51:49,940 --> 02:51:52,270\r\n我们需要超人 现在仍然需要\r\n\r\n1418\r\n02:51:52,440 --> 02:51:54,730\r\n不管是什么回来了 那不是超人\r\n\r\n1419\r\n02:51:54,900 --> 02:51:57,900\r\n也许是他的躯体和超能力 但那不是他\r\n\r\n1420\r\n02:51:58,070 --> 02:51:59,700\r\n那是他\r\n\r\n1421\r\n02:51:59,860 --> 02:52:01,990\r\n他认得露易丝·莱恩\r\n\r\n1422\r\n02:52:02,370 --> 02:52:04,280\r\n-谁 -他挚爱的女人\r\n\r\n1423\r\n02:52:04,660 --> 02:52:06,660\r\n-他记得她 -才怪\r\n\r\n1424\r\n02:52:07,200 --> 02:52:08,960\r\n他会去找她是因为她不怕他\r\n\r\n1425\r\n02:52:09,120 --> 02:52:10,540\r\n这叫做直觉 戴安娜\r\n\r\n1426\r\n02:52:17,970 --> 02:52:19,800\r\n等等 荒原狼去了哪儿\r\n\r\n1427\r\n02:52:19,970 --> 02:52:23,300\r\n他回去基地组装三个母盒\r\n\r\n1428\r\n02:52:23,470 --> 02:52:25,560\r\n我们不知道他的基地在哪里 或是还要多久…\r\n\r\n1429\r\n02:52:25,720 --> 02:52:26,560\r\n几个小时\r\n\r\n1430\r\n02:52:26,720 --> 02:52:28,390\r\n盒子一旦同步 形成三位一体\r\n\r\n1431\r\n02:52:28,560 --> 02:52:30,810\r\n我们不能及时阻止他 地球就完了\r\n\r\n1432\r\n02:52:31,730 --> 02:52:33,400\r\n这不像你\r\n\r\n1433\r\n02:52:35,940 --> 02:52:37,440\r\n他早就知道\r\n\r\n1434\r\n02:52:37,730 --> 02:52:39,320\r\n他早就知道了\r\n\r\n1435\r\n02:52:39,490 --> 02:52:40,900\r\n他不是想要摧毁那个母盒\r\n\r\n1436\r\n02:52:41,320 --> 02:52:43,240\r\n而是想要让它过热\r\n\r\n1437\r\n02:52:43,410 --> 02:52:46,080\r\n让核心变成核反应炉以外 地球上最热的东西\r\n\r\n1438\r\n02:52:46,240 --> 02:52:48,290\r\n-那么热的东西一定会… -热源影像系统\r\n\r\n1439\r\n02:52:48,450 --> 02:52:50,660\r\n一定会破表\r\n\r\n1440\r\n02:52:50,830 --> 02:52:54,210\r\n你父亲为了标记母盒牺牲自己\r\n\r\n1441\r\n02:52:54,380 --> 02:52:56,250\r\n我们得回我的实验室使用卫星\r\n\r\n1442\r\n02:52:56,420 --> 02:52:58,420\r\n扫描地球哪里有热异常\r\n\r\n1443\r\n02:52:58,590 --> 02:52:59,720\r\n我已经在扫描了\r\n\r\n1444\r\n02:52:59,880 --> 02:53:01,880\r\n什么 你有一颗卫星\r\n\r\n1445\r\n02:53:02,050 --> 02:53:03,010\r\n我有六颗\r\n\r\n1446\r\n02:53:03,680 --> 02:53:04,600\r\n是喔\r\n\r\n1447\r\n02:53:06,390 --> 02:53:08,390\r\n咱们去找那个混帐东西\r\n\r\n1448\r\n02:53:14,190 --> 02:53:19,480\r\n第六章\r\n\r\n1449\r\n02:53:15,930 --> 02:53:19,480\r\n“更黑暗的东西”\r\n\r\n1450\r\n02:53:29,280 --> 02:53:32,790\r\n法拍屋出售\r\n\r\n1451\r\n02:53:32,960 --> 02:53:35,040\r\n你把我带来这里\r\n\r\n1452\r\n02:53:35,210 --> 02:53:36,380\r\n你记得\r\n\r\n1453\r\n02:53:37,290 --> 02:53:38,920\r\n这是我的家\r\n\r\n1454\r\n02:53:40,840 --> 02:53:42,050\r\n你说话了\r\n\r\n1455\r\n02:53:46,090 --> 02:53:47,970\r\n我之前没有吗\r\n\r\n1456\r\n02:54:21,960 --> 02:54:24,510\r\n你母亲迟缴了房贷\r\n\r\n1457\r\n02:54:26,010 --> 02:54:28,010\r\n没有告诉任何人\r\n\r\n1458\r\n02:54:29,680 --> 02:54:31,430\r\n我不明白\r\n\r\n1459\r\n02:54:34,520 --> 02:54:36,940\r\n她的自尊心很强 克拉克\r\n\r\n1460\r\n02:54:40,070 --> 02:54:41,440\r\n穿上去\r\n\r\n1461\r\n02:54:56,370 --> 02:54:58,040\r\n她很喜欢这里\r\n\r\n1462\r\n02:55:08,840 --> 02:55:10,470\r\n我也是\r\n\r\n1463\r\n02:55:12,470 --> 02:55:13,890\r\n我也是\r\n\r\n1464\r\n02:55:41,000 --> 02:55:42,630\r\n这太酷了\r\n\r\n1465\r\n02:55:42,790 --> 02:55:44,300\r\n我带了一些朋友来\r\n\r\n1466\r\n02:55:50,840 --> 02:55:53,430\r\n天啊 太棒了\r\n\r\n1467\r\n02:55:53,600 --> 02:55:56,100\r\n大伙儿 这是阿尔弗雷德 我替他工作\r\n\r\n1468\r\n02:55:56,270 --> 02:55:58,480\r\n-阿尔弗雷德 -你好 女士\r\n\r\n1469\r\n02:56:04,940 --> 02:56:06,820\r\n这里真的很酷 阿尔弗雷德\r\n\r\n1470\r\n02:56:09,610 --> 02:56:12,030\r\n我去泡茶\r\n\r\n1471\r\n02:56:12,200 --> 02:56:13,200\r\n太好了\r\n\r\n1472\r\n02:56:13,370 --> 02:56:15,200\r\n不知道哪里有这么多杯子\r\n\r\n1473\r\n02:56:18,120 --> 02:56:20,960\r\n那就是母盒 就在那里\r\n\r\n1474\r\n02:56:21,120 --> 02:56:22,920\r\n显示可见光谱\r\n\r\n1475\r\n02:56:25,800 --> 02:56:26,630\r\n普扎诺夫\r\n\r\n1476\r\n02:56:27,210 --> 02:56:30,050\r\n离莫斯科不远的鬼城\r\n\r\n1477\r\n02:56:30,220 --> 02:56:32,890\r\n三十年前发生核事故后被废弃\r\n\r\n1478\r\n02:56:33,050 --> 02:56:34,260\r\n就连军队也不进去\r\n\r\n1479\r\n02:56:34,430 --> 02:56:35,720\r\n是啊 辐射性一定强到\r\n\r\n1480\r\n02:56:35,890 --> 02:56:38,060\r\n你的脖子会长出另一只脚\r\n\r\n1481\r\n02:56:38,230 --> 02:56:39,060\r\n不再是这样了\r\n\r\n1482\r\n02:56:39,230 --> 02:56:41,400\r\n他收集了辐射 用来创建他的基地\r\n\r\n1483\r\n02:56:41,560 --> 02:56:42,400\r\n放大\r\n\r\n1484\r\n02:56:46,400 --> 02:56:47,780\r\n他到底在盖什么\r\n\r\n1485\r\n02:56:47,940 --> 02:56:49,190\r\n三位一体在里面\r\n\r\n1486\r\n02:56:49,360 --> 02:56:50,780\r\n我们要从上面进攻\r\n\r\n1487\r\n02:56:50,950 --> 02:56:53,530\r\n炸药无法分开母盒\r\n\r\n1488\r\n02:56:53,700 --> 02:56:55,530\r\n只会强化它们的联系\r\n\r\n1489\r\n02:56:55,700 --> 02:56:56,830\r\n什么 我们不能炸掉它\r\n\r\n1490\r\n02:56:56,990 --> 02:56:58,450\r\n不能从外面\r\n\r\n1491\r\n02:57:00,040 --> 02:57:02,420\r\n我想插入合而为一的母盒\r\n\r\n1492\r\n02:57:03,130 --> 02:57:04,540\r\n和它融为一体\r\n\r\n1493\r\n02:57:04,710 --> 02:57:07,250\r\n从内部削弱它的连结 就能够再把它拆成三个\r\n\r\n1494\r\n02:57:07,420 --> 02:57:09,630\r\n不行 你不知道你会面对什么\r\n\r\n1495\r\n02:57:09,800 --> 02:57:13,340\r\n你得一个人融入三位一体\r\n\r\n1496\r\n02:57:13,510 --> 02:57:15,850\r\n这三个母盒结合起来足以毁天灭地\r\n\r\n1497\r\n02:57:16,010 --> 02:57:17,430\r\n它们存在了十亿年\r\n\r\n1498\r\n02:57:17,600 --> 02:57:19,730\r\n绝对会钻进你脑袋 找到你的弱点\r\n\r\n1499\r\n02:57:19,890 --> 02:57:22,060\r\n和你的恐惧 并用来摧毁你\r\n\r\n1500\r\n02:57:22,230 --> 02:57:24,230\r\n只要让我进去 替我争取时间\r\n\r\n1501\r\n02:57:24,480 --> 02:57:25,650\r\n你可能会死 维克多\r\n\r\n1502\r\n02:57:25,810 --> 02:57:28,110\r\n我不这样做 我们都会死\r\n\r\n1503\r\n02:57:32,860 --> 02:57:34,620\r\n我失去了一切\r\n\r\n1504\r\n02:57:40,000 --> 02:57:41,960\r\n你不是要我使用这些超能力吗\r\n\r\n1505\r\n02:57:45,040 --> 02:57:46,540\r\n我就要这么做\r\n\r\n1506\r\n02:57:46,710 --> 02:57:48,590\r\n好吧 所以…\r\n\r\n1507\r\n02:57:49,300 --> 02:57:52,550\r\n维克多想和末日母盒 合而为一拯救世界\r\n\r\n1508\r\n02:57:52,760 --> 02:57:54,930\r\n那就让他这么做吧\r\n\r\n1509\r\n02:57:55,260 --> 02:57:58,060\r\n但要让他这么做就得攻击基地\r\n\r\n1510\r\n02:57:58,220 --> 02:58:00,430\r\n深入地狱向魔鬼与他的军团…\r\n\r\n1511\r\n02:58:00,600 --> 02:58:01,640\r\n正式开战\r\n\r\n1512\r\n02:58:01,810 --> 02:58:04,060\r\n这家伙在他摧毁的星球上\r\n\r\n1513\r\n02:58:04,230 --> 02:58:08,190\r\n大概打过成千上万个超级英雄 对吧\r\n\r\n1514\r\n02:58:08,360 --> 02:58:09,860\r\n我们得假设他都赢了\r\n\r\n1515\r\n02:58:10,030 --> 02:58:13,150\r\n我才不管他在多少个地狱 打过多少恶魔\r\n\r\n1516\r\n02:58:13,320 --> 02:58:16,820\r\n他没打过我们 团结一致的我们\r\n\r\n1517\r\n02:59:07,290 --> 02:59:08,920\r\n我猜你说\"愿意\"\r\n\r\n1518\r\n02:59:09,540 --> 02:59:10,380\r\n什么\r\n\r\n1519\r\n02:59:13,840 --> 02:59:15,090\r\n那只婚戒\r\n\r\n1520\r\n02:59:18,800 --> 02:59:20,350\r\n你真的回来了\r\n\r\n1521\r\n02:59:53,840 --> 02:59:56,050\r\n我得到第二次机会\r\n\r\n1522\r\n02:59:58,340 --> 03:00:00,800\r\n绝对不会白白浪费\r\n\r\n1523\r\n03:00:59,070 --> 03:01:00,240\r\n真的是你吗\r\n\r\n1524\r\n03:01:00,400 --> 03:01:02,110\r\n真的是我 妈\r\n\r\n1525\r\n03:01:20,130 --> 03:01:22,180\r\n听好 妈\r\n\r\n1526\r\n03:01:23,760 --> 03:01:25,800\r\n他们让我回来一定有原因\r\n\r\n1527\r\n03:01:27,560 --> 03:01:29,100\r\n我得知道为什么\r\n\r\n1528\r\n03:01:49,240 --> 03:01:50,660\r\n维克多怎么样\r\n\r\n1529\r\n03:01:55,040 --> 03:01:57,790\r\n你也知道 他想独处一下\r\n\r\n1530\r\n03:01:59,380 --> 03:02:02,550\r\n我们要求一个刚失去父亲的孩子…\r\n\r\n1531\r\n03:02:02,720 --> 03:02:05,510\r\n对抗全宇宙最强大的机器\r\n\r\n1532\r\n03:02:07,350 --> 03:02:08,850\r\n这不公平\r\n\r\n1533\r\n03:02:10,600 --> 03:02:12,230\r\n我以为你不在乎\r\n\r\n1534\r\n03:02:13,640 --> 03:02:15,150\r\n我从来没这么说过\r\n\r\n1535\r\n03:02:28,080 --> 03:02:29,490\r\n怎么了\r\n\r\n1536\r\n03:02:33,410 --> 03:02:38,420\r\n我做过一个梦 不晓得 几乎就像一种预感\r\n\r\n1537\r\n03:02:39,380 --> 03:02:42,170\r\n那是世界末日\r\n\r\n1538\r\n03:02:42,340 --> 03:02:45,180\r\n巴里·艾伦就在这里\r\n\r\n1539\r\n03:02:45,340 --> 03:02:49,220\r\n他跟我说 \"露易丝·莱恩才是关键\"\r\n\r\n1540\r\n03:02:51,890 --> 03:02:55,100\r\n对超人来说…她是\r\n\r\n1541\r\n03:02:56,150 --> 03:02:57,770\r\n每个人都有心爱的人\r\n\r\n1542\r\n03:02:58,400 --> 03:03:00,270\r\n我想不只是这样\r\n\r\n1543\r\n03:03:01,150 --> 03:03:03,030\r\n这是更黑暗的东西\r\n\r\n1544\r\n03:03:07,200 --> 03:03:08,200\r\n韦恩少爷\r\n\r\n1545\r\n03:03:08,370 --> 03:03:09,870\r\n韦恩少爷\r\n\r\n1546\r\n03:03:10,700 --> 03:03:12,370\r\n你得来看看\r\n\r\n1547\r\n03:03:35,640 --> 03:03:37,350\r\n你修好了\r\n\r\n1548\r\n03:03:37,520 --> 03:03:39,230\r\n它想要飞行\r\n\r\n1549\r\n03:03:40,480 --> 03:03:41,820\r\n飞行是它的本能\r\n\r\n1550\r\n03:03:41,980 --> 03:03:43,280\r\n也是你的\r\n\r\n1551\r\n03:03:50,070 --> 03:03:52,030\r\n他会来的 阿尔弗雷德 我知道\r\n\r\n1552\r\n03:03:52,200 --> 03:03:53,830\r\n你为何这么肯定\r\n\r\n1553\r\n03:03:54,580 --> 03:03:57,160\r\n信念 阿尔弗雷德 信念\r\n\r\n1554\r\n03:04:19,270 --> 03:04:20,850\r\n终于\r\n\r\n1555\r\n03:04:22,690 --> 03:04:25,400\r\n准备迎接他的到来\r\n\r\n1556\r\n03:04:27,240 --> 03:04:31,370\r\n我即将得到救赎\r\n\r\n1557\r\n03:04:39,250 --> 03:04:40,710\r\n合而为一\r\n\r\n1558\r\n03:04:45,880 --> 03:04:48,380\r\n同步化\r\n\r\n1559\r\n03:05:32,720 --> 03:05:35,640\r\n卫星显示他打造了一个防御圆顶\r\n\r\n1560\r\n03:05:35,800 --> 03:05:36,970\r\n这是个设计缺陷\r\n\r\n1561\r\n03:05:37,140 --> 03:05:39,390\r\n把塔台射倒 圆顶就会崩垮\r\n\r\n1562\r\n03:05:39,560 --> 03:05:41,560\r\n敌人不会料到我们正面攻击\r\n\r\n1563\r\n03:05:41,730 --> 03:05:45,230\r\n是啊 因为他没想到 有人会这么疯狂\r\n\r\n1564\r\n03:05:46,230 --> 03:05:47,520\r\n布鲁斯是对的\r\n\r\n1565\r\n03:05:47,690 --> 03:05:49,280\r\n我们必须摧毁防御圆顶\r\n\r\n1566\r\n03:05:49,440 --> 03:05:51,740\r\n在它们同步化之前找到母盒\r\n\r\n1567\r\n03:05:51,900 --> 03:05:53,610\r\n要是圆顶没被摧毁呢\r\n\r\n1568\r\n03:05:53,780 --> 03:05:54,780\r\n它一定会被摧毁\r\n\r\n1569\r\n03:05:54,950 --> 03:05:56,580\r\n维克多一旦融入三位一体\r\n\r\n1570\r\n03:05:57,080 --> 03:06:00,330\r\n有巴里的协助 他就能突破母盒的防御\r\n\r\n1571\r\n03:06:00,500 --> 03:06:01,960\r\n提醒我 我该怎么做\r\n\r\n1572\r\n03:06:02,120 --> 03:06:03,750\r\n用爱的力量\r\n\r\n1573\r\n03:06:03,920 --> 03:06:06,540\r\n-巴里 -我得造成能量大爆发\r\n\r\n1574\r\n03:06:06,710 --> 03:06:07,710\r\n很好\r\n\r\n1575\r\n03:06:07,880 --> 03:06:09,760\r\n你得比以前跑得更快\r\n\r\n1576\r\n03:06:09,920 --> 03:06:12,470\r\n才能产生这么大的电流\r\n\r\n1577\r\n03:06:12,630 --> 03:06:14,640\r\n然后直接碰触维克多的身体\r\n\r\n1578\r\n03:06:14,970 --> 03:06:17,850\r\n那股能量应该能让他进入母盒\r\n\r\n1579\r\n03:06:18,010 --> 03:06:19,890\r\n维克多 之后就靠你了\r\n\r\n1580\r\n03:06:20,060 --> 03:06:22,810\r\n在它同步化之前把它扯开\r\n\r\n1581\r\n03:06:24,390 --> 03:06:26,520\r\n我们终于有了计划\r\n\r\n1582\r\n03:06:27,060 --> 03:06:28,770\r\n我们有了计划\r\n\r\n1583\r\n03:06:44,120 --> 03:06:46,170\r\n艾尔之家的标记代表希望\r\n\r\n1584\r\n03:06:46,330 --> 03:06:48,500\r\n这希望包含了一个基本的信念\r\n\r\n1585\r\n03:06:48,670 --> 03:06:52,380\r\n那就是每个人都有行善的潜力\r\n\r\n1586\r\n03:06:52,550 --> 03:06:53,380\r\n克拉克\r\n\r\n1587\r\n03:06:53,550 --> 03:06:54,840\r\n那就是你能带给他们的\r\n\r\n1588\r\n03:06:55,010 --> 03:06:56,970\r\n你被送来这里是有原因的\r\n\r\n1589\r\n03:06:57,140 --> 03:07:01,010\r\n你将给地球的人类 一个努力达到的理想\r\n\r\n1590\r\n03:07:01,680 --> 03:07:03,520\r\n就算你必须穷尽一生\r\n\r\n1591\r\n03:07:03,680 --> 03:07:07,440\r\n也得尽全力找到你来这里的原因\r\n\r\n1592\r\n03:07:07,600 --> 03:07:10,230\r\n他们会犯错 也会失败\r\n\r\n1593\r\n03:07:10,400 --> 03:07:11,730\r\n但你必须做出选择\r\n\r\n1594\r\n03:07:12,530 --> 03:07:14,950\r\n他们将与你一起迎向阳光\r\n\r\n1595\r\n03:07:15,110 --> 03:07:19,070\r\n你必须选择是否要 骄傲地站在全人类面前\r\n\r\n1596\r\n03:07:19,240 --> 03:07:22,410\r\n你将帮助他们完成奇迹\r\n\r\n1597\r\n03:07:39,550 --> 03:07:44,060\r\n氪星所有的希望和梦想 都寄托在你身上\r\n\r\n1598\r\n03:07:44,220 --> 03:07:46,480\r\n我真为你感到骄傲 儿子\r\n\r\n1599\r\n03:07:47,810 --> 03:07:49,860\r\n你母亲和我都很爱你\r\n\r\n1600\r\n03:07:50,520 --> 03:07:54,070\r\n你母亲和我都知道你会改变世界\r\n\r\n1601\r\n03:07:55,360 --> 03:07:57,200\r\n你的心受到考验\r\n\r\n1602\r\n03:07:58,490 --> 03:08:00,450\r\n我知道这很难 克拉克\r\n\r\n1603\r\n03:08:01,200 --> 03:08:04,120\r\n但你给了他们的世界一个希望\r\n\r\n1604\r\n03:08:04,290 --> 03:08:06,960\r\n你必须让他们看到你是谁\r\n\r\n1605\r\n03:08:07,660 --> 03:08:09,370\r\n爱他们吧 卡尔·艾尔\r\n\r\n1606\r\n03:08:10,000 --> 03:08:12,130\r\n就像我们爱你一样\r\n\r\n1607\r\n03:08:14,590 --> 03:08:15,710\r\n飞吧 儿子\r\n\r\n1608\r\n03:08:16,760 --> 03:08:17,970\r\n是时候了\r\n\r\n1609\r\n03:09:21,740 --> 03:09:24,870\r\n我要把塔台射倒 破坏力场圆顶\r\n\r\n1610\r\n03:09:25,030 --> 03:09:26,160\r\n不管你们看到什么\r\n\r\n1611\r\n03:09:27,490 --> 03:09:29,450\r\n都要按照计划\r\n\r\n1612\r\n03:09:31,330 --> 03:09:33,250\r\n这就是我把你们聚在一起的原因\r\n\r\n1613\r\n03:10:13,330 --> 03:10:15,080\r\n布鲁斯 撤退 你不会成功的\r\n\r\n1614\r\n03:10:18,880 --> 03:10:20,920\r\n只要敲大声一点\r\n\r\n1615\r\n03:10:45,910 --> 03:10:47,490\r\n杀了他\r\n\r\n1616\r\n03:10:47,660 --> 03:10:50,410\r\n快去捍卫三位一体\r\n\r\n1617\r\n03:10:55,710 --> 03:10:56,630\r\n惨了\r\n\r\n1618\r\n03:11:16,940 --> 03:11:17,860\r\n塔台倒了\r\n\r\n1619\r\n03:11:19,480 --> 03:11:20,900\r\n收到吗\r\n\r\n1620\r\n03:11:21,530 --> 03:11:22,650\r\n收到了\r\n\r\n1621\r\n03:11:23,740 --> 03:11:25,110\r\n你没事吗\r\n\r\n1622\r\n03:11:26,360 --> 03:11:28,950\r\n布鲁斯\r\n\r\n1623\r\n03:11:29,240 --> 03:11:30,120\r\n快去反应炉\r\n\r\n1624\r\n03:11:30,280 --> 03:11:32,790\r\n我会尽量把这些怪物引开来\r\n\r\n1625\r\n03:11:32,950 --> 03:11:33,790\r\n那是什么意思\r\n\r\n1626\r\n03:11:36,790 --> 03:11:38,790\r\n别担心我 快去找到母盒\r\n\r\n1627\r\n03:11:41,460 --> 03:11:42,630\r\n它们来了\r\n\r\n1628\r\n03:11:43,010 --> 03:11:43,920\r\n布鲁斯\r\n\r\n1629\r\n03:11:46,840 --> 03:11:48,140\r\n失去讯号\r\n\r\n1630\r\n03:11:49,850 --> 03:11:51,100\r\n上吧\r\n\r\n1631\r\n03:12:30,010 --> 03:12:31,850\r\n跟我来呀 你们这群臭虫\r\n\r\n1632\r\n03:13:51,800 --> 03:13:52,970\r\n严重受损\r\n\r\n1633\r\n03:14:32,970 --> 03:14:34,220\r\n你真的发疯了\r\n\r\n1634\r\n03:15:01,120 --> 03:15:02,250\r\n不客气\r\n\r\n1635\r\n03:15:02,410 --> 03:15:03,710\r\n厉害 兄弟\r\n\r\n1636\r\n03:16:36,800 --> 03:16:38,430\r\n放心 我们能搞定\r\n\r\n1637\r\n03:16:38,590 --> 03:16:39,970\r\n你去做该做的事\r\n\r\n1638\r\n03:17:35,770 --> 03:17:37,280\r\n我猜你就是阿尔弗雷德\r\n\r\n1639\r\n03:17:39,150 --> 03:17:40,450\r\n肯特少爷\r\n\r\n1640\r\n03:17:42,490 --> 03:17:43,990\r\n他说你会来\r\n\r\n1641\r\n03:17:45,700 --> 03:17:49,120\r\n希望你没有来得太晚\r\n\r\n1642\r\n03:17:59,970 --> 03:18:01,050\r\n喂\r\n\r\n1643\r\n03:18:10,350 --> 03:18:11,690\r\n记得我吗\r\n\r\n1644\r\n03:18:14,230 --> 03:18:15,650\r\n第二回合\r\n\r\n1645\r\n03:18:16,360 --> 03:18:17,520\r\n好啊\r\n\r\n1646\r\n03:18:39,050 --> 03:18:40,420\r\n上吧\r\n\r\n1647\r\n03:18:41,380 --> 03:18:43,680\r\n告诉我 亚马逊女战士\r\n\r\n1648\r\n03:18:43,840 --> 03:18:47,140\r\n你为何抛弃自己的姐妹\r\n\r\n1649\r\n03:18:48,060 --> 03:18:50,470\r\n跑来跟这些卑微的生物\r\n\r\n1650\r\n03:18:50,640 --> 03:18:53,940\r\n混在一起\r\n\r\n1651\r\n03:18:54,140 --> 03:18:56,980\r\n你没能赶去保护她们被我屠杀\r\n\r\n1652\r\n03:18:57,230 --> 03:18:59,440\r\n可悲的是 你本来可以的\r\n\r\n1653\r\n03:19:40,230 --> 03:19:41,940\r\n巴里 我就位了\r\n\r\n1654\r\n03:20:00,710 --> 03:20:03,420\r\n好 我来产生电流\r\n\r\n1655\r\n03:20:04,050 --> 03:20:05,130\r\n你来倒数\r\n\r\n1656\r\n03:20:06,300 --> 03:20:07,550\r\n等我倒数到一\r\n\r\n1657\r\n03:20:08,220 --> 03:20:10,180\r\n三 二…\r\n\r\n1658\r\n03:20:13,350 --> 03:20:14,730\r\n放开我\r\n\r\n1659\r\n03:20:15,230 --> 03:20:16,560\r\n维克多\r\n\r\n1660\r\n03:20:52,640 --> 03:20:54,180\r\n维克多\r\n\r\n1661\r\n03:20:58,020 --> 03:21:00,520\r\n我看着你的小岛燃烧\r\n\r\n1662\r\n03:21:00,690 --> 03:21:04,150\r\n你的姐妹哀求我饶她们一命\r\n\r\n1663\r\n03:21:04,320 --> 03:21:06,570\r\n你母亲也一样\r\n\r\n1664\r\n03:21:06,940 --> 03:21:07,950\r\n骗子\r\n\r\n1665\r\n03:21:33,680 --> 03:21:35,680\r\n我撑不住了\r\n\r\n1666\r\n03:21:36,560 --> 03:21:37,560\r\n维克多\r\n\r\n1667\r\n03:21:59,790 --> 03:22:02,000\r\n维克多 我撑不住了\r\n\r\n1668\r\n03:22:08,670 --> 03:22:10,920\r\n为了达克赛德\r\n\r\n1669\r\n03:22:14,890 --> 03:22:17,260\r\n没什么用\r\n\r\n1670\r\n03:23:01,770 --> 03:23:02,890\r\n好吧\r\n\r\n1671\r\n03:23:03,060 --> 03:23:04,650\r\n卡尔·艾尔\r\n\r\n1672\r\n03:23:43,180 --> 03:23:45,390\r\n巴里 我连上了母盒\r\n\r\n1673\r\n03:23:45,560 --> 03:23:47,520\r\n我需要电流才能进去\r\n\r\n1674\r\n03:24:09,590 --> 03:24:10,590\r\n巴里\r\n\r\n1675\r\n03:24:11,500 --> 03:24:13,170\r\n巴里 你没事吧\r\n\r\n1676\r\n03:24:14,800 --> 03:24:15,630\r\n巴里\r\n\r\n1677\r\n03:24:15,800 --> 03:24:19,390\r\n我没力了 我得喘口气\r\n\r\n1678\r\n03:24:36,490 --> 03:24:39,320\r\n巴里 你在哪里 它快要同步化了\r\n\r\n1679\r\n03:24:39,570 --> 03:24:41,330\r\n好吧 好吧\r\n\r\n1680\r\n03:24:42,160 --> 03:24:44,330\r\n喔买尬 快点愈合 巴里\r\n\r\n1681\r\n03:24:44,500 --> 03:24:46,160\r\n愈合啊\r\n\r\n1682\r\n03:25:12,020 --> 03:25:13,570\r\n巴里\r\n\r\n1683\r\n03:25:26,500 --> 03:25:28,210\r\n太迟了\r\n\r\n1684\r\n03:25:29,540 --> 03:25:30,960\r\n噢 不\r\n\r\n1685\r\n03:25:35,170 --> 03:25:36,840\r\n他来了\r\n\r\n1686\r\n03:26:06,330 --> 03:26:07,160\r\n好吧\r\n\r\n1687\r\n03:26:07,330 --> 03:26:09,910\r\n我得超越光速 跑得比光速更快\r\n\r\n1688\r\n03:26:10,080 --> 03:26:13,330\r\n你得打破规则 巴里 现在就得这么做\r\n\r\n1689\r\n03:26:26,390 --> 03:26:28,100\r\n爸…\r\n\r\n1690\r\n03:26:31,940 --> 03:26:34,270\r\n不管发生什么事 我都要你知道\r\n\r\n1691\r\n03:26:36,980 --> 03:26:38,980\r\n你儿子也是一个英雄 爸\r\n\r\n1692\r\n03:26:42,200 --> 03:26:44,110\r\n精英中的精英\r\n\r\n1693\r\n03:27:39,550 --> 03:27:42,090\r\n创造自己的未来\r\n\r\n1694\r\n03:27:48,550 --> 03:27:50,510\r\n也创造自己的过去\r\n\r\n1695\r\n03:27:55,100 --> 03:27:58,650\r\n一切都没事了\r\n\r\n1696\r\n03:28:28,640 --> 03:28:30,350\r\n斯通 哥谭市立大学\r\n\r\n1697\r\n03:28:35,020 --> 03:28:37,600\r\n哥谭市\r\n\r\n1698\r\n03:28:45,690 --> 03:28:47,860\r\n我们一直在等着你 维克多\r\n\r\n1699\r\n03:28:48,990 --> 03:28:51,070\r\n我破碎的儿子\r\n\r\n1700\r\n03:28:53,490 --> 03:28:55,500\r\n你不会再孤单了\r\n\r\n1701\r\n03:28:55,660 --> 03:28:57,330\r\n我们会再全家团圆\r\n\r\n1702\r\n03:29:05,170 --> 03:29:07,260\r\n我们可以像以前一样\r\n\r\n1703\r\n03:29:11,600 --> 03:29:13,720\r\n让你恢复原状\r\n\r\n1704\r\n03:29:25,570 --> 03:29:27,320\r\n我并没有破碎\r\n\r\n1705\r\n03:29:37,040 --> 03:29:38,910\r\n我也并不孤单\r\n\r\n1706\r\n03:29:55,720 --> 03:29:56,720\r\n超人\r\n\r\n1707\r\n03:31:27,400 --> 03:31:29,360\r\n我跟你说过\r\n\r\n1708\r\n03:31:30,940 --> 03:31:33,570\r\n荒原狼会失败\r\n\r\n1709\r\n03:31:34,530 --> 03:31:38,200\r\n没错 你是说过\r\n\r\n1710\r\n03:31:38,870 --> 03:31:43,370\r\n我的主人 母盒被摧毁了\r\n\r\n1711\r\n03:31:44,250 --> 03:31:48,000\r\n你要怎么得到你的大奖\r\n\r\n1712\r\n03:31:48,250 --> 03:31:51,670\r\n找到了反生命方程序 狄萨德\r\n\r\n1713\r\n03:31:51,840 --> 03:31:56,510\r\n我们会不择手段得到它\r\n\r\n1714\r\n03:31:59,680 --> 03:32:01,180\r\n准备出动舰队\r\n\r\n1715\r\n03:32:02,100 --> 03:32:04,520\r\n我们要用老方法\r\n\r\n1716\r\n03:34:07,080 --> 03:34:12,270\r\n后记\r\n\r\n1717\r\n03:34:08,690 --> 03:34:12,270\r\n再为人父\r\n\r\n1718\r\n03:34:28,870 --> 03:34:31,000\r\n这又是你父亲\r\n\r\n1719\r\n03:34:38,300 --> 03:34:42,630\r\n现在 让我说出内心话 不是身为一个科学家\r\n\r\n1720\r\n03:34:42,800 --> 03:34:44,470\r\n而是身为一个父亲\r\n\r\n1721\r\n03:34:45,680 --> 03:34:47,720\r\n让我再为人父\r\n\r\n1722\r\n03:34:50,270 --> 03:34:53,690\r\n我把你带到这世界 又把你带回来\r\n\r\n1723\r\n03:34:53,850 --> 03:34:57,480\r\n你无法想像我有多为你感到骄傲\r\n\r\n1724\r\n03:34:58,030 --> 03:34:59,690\r\n一直都是如此\r\n\r\n1725\r\n03:35:01,820 --> 03:35:06,700\r\n我浪费了这么多年没有陪你 也犯了太多错没有改过\r\n\r\n1726\r\n03:35:09,160 --> 03:35:11,040\r\n一切都会崩裂 维克多\r\n\r\n1727\r\n03:35:11,620 --> 03:35:13,870\r\n一切都会改变\r\n\r\n1728\r\n03:35:24,550 --> 03:35:26,640\r\n我得去见我父亲\r\n\r\n1729\r\n03:36:02,210 --> 03:36:04,050\r\n这世界伤痕累累\r\n\r\n1730\r\n03:36:04,220 --> 03:36:05,300\r\n支离破碎\r\n\r\n1731\r\n03:36:05,470 --> 03:36:07,260\r\n无法改变\r\n\r\n1732\r\n03:36:08,050 --> 03:36:11,140\r\n飞船是你的了 小子 你是老大\r\n\r\n1733\r\n03:36:13,430 --> 03:36:16,600\r\n\"蔡瑞恩 纳米科技总监\"\r\n\r\n1734\r\n03:36:16,770 --> 03:36:18,270\r\n那是你的专长\r\n\r\n1735\r\n03:36:18,940 --> 03:36:20,360\r\n没错\r\n\r\n1736\r\n03:36:20,940 --> 03:36:22,530\r\n那是我的专长\r\n\r\n1737\r\n03:36:27,570 --> 03:36:32,910\r\n但世界不能在过去修复 只有在未来才能\r\n\r\n1738\r\n03:36:34,790 --> 03:36:38,670\r\n未来与现在\r\n\r\n1739\r\n03:36:38,830 --> 03:36:41,800\r\n至少要有30 45公尺\r\n\r\n1740\r\n03:36:42,380 --> 03:36:43,710\r\n至少\r\n\r\n1741\r\n03:36:44,840 --> 03:36:46,470\r\n一张大圆桌\r\n\r\n1742\r\n03:36:46,630 --> 03:36:48,800\r\n六张椅子 就在那里\r\n\r\n1743\r\n03:36:49,930 --> 03:36:51,560\r\n但还能坐更多人\r\n\r\n1744\r\n03:36:53,970 --> 03:36:55,600\r\n还能坐更多人\r\n\r\n1745\r\n03:36:56,600 --> 03:36:58,350\r\n老天保佑我们\r\n\r\n1746\r\n03:37:00,150 --> 03:37:02,150\r\n现在就是你\r\n\r\n1747\r\n03:37:05,860 --> 03:37:07,240\r\n什么\r\n\r\n1748\r\n03:37:07,400 --> 03:37:10,200\r\n这是刑事实验室最烂的工作\r\n\r\n1749\r\n03:37:10,370 --> 03:37:12,740\r\n不过我入门了\r\n\r\n1750\r\n03:37:12,910 --> 03:37:14,500\r\n这是\"真正\"的工作\r\n\r\n1751\r\n03:37:15,290 --> 03:37:16,410\r\n\"真正的\"\r\n\r\n1752\r\n03:37:20,630 --> 03:37:22,670\r\n你入门了\r\n\r\n1753\r\n03:37:25,010 --> 03:37:26,130\r\n大家不都是这么说吗\r\n\r\n1754\r\n03:37:26,300 --> 03:37:28,220\r\n你入门了\r\n\r\n1755\r\n03:37:28,380 --> 03:37:30,680\r\n是啊 大家都是这么说\r\n\r\n1756\r\n03:37:30,840 --> 03:37:32,260\r\n他入门了\r\n\r\n1757\r\n03:37:32,550 --> 03:37:35,020\r\n-那是我的乖儿子 -噢 天啊\r\n\r\n1758\r\n03:37:35,220 --> 03:37:36,560\r\n我什么都没教他\r\n\r\n1759\r\n03:37:36,730 --> 03:37:38,770\r\n-爸 你会再被喷辣椒水 -好样的\r\n\r\n1760\r\n03:37:42,270 --> 03:37:43,980\r\n你的前途无量\r\n\r\n1761\r\n03:37:46,110 --> 03:37:47,360\r\n谢了 爸\r\n\r\n1762\r\n03:37:47,740 --> 03:37:48,570\r\n现在\r\n\r\n1763\r\n03:37:48,740 --> 03:37:51,820\r\n现在是你崛起的时刻 维克多\r\n\r\n1764\r\n03:37:52,120 --> 03:37:55,080\r\n光是说声\"谢谢你\"并不够\r\n\r\n1765\r\n03:37:55,240 --> 03:37:58,620\r\n我只是弥补一个错误而已\r\n\r\n1766\r\n03:38:09,050 --> 03:38:11,510\r\n你怎么向银行把房子要回来的\r\n\r\n1767\r\n03:38:11,970 --> 03:38:13,970\r\n我买下了银行\r\n\r\n1768\r\n03:38:16,390 --> 03:38:18,680\r\n对了 恭喜了\r\n\r\n1769\r\n03:38:19,020 --> 03:38:20,950\r\n坚持下去 勇往直前\r\n\r\n1770\r\n03:38:20,600 --> 03:38:21,900\r\n挚爱的父亲\r\n塞拉斯·斯通 1969-2017\r\n\r\n1771\r\n03:38:20,950 --> 03:38:24,440\r\n当一个我未曾当过的英雄\r\n\r\n1772\r\n03:38:26,280 --> 03:38:28,570\r\n在勇士之中占有一席之地\r\n\r\n1773\r\n03:38:28,740 --> 03:38:33,660\r\n从前 现在与未来\r\n\r\n1774\r\n03:39:06,320 --> 03:39:09,230\r\n你该挺身而出了\r\n\r\n1775\r\n03:39:12,990 --> 03:39:14,490\r\n勇敢奋战\r\n\r\n1776\r\n03:39:17,120 --> 03:39:18,540\r\n努力发掘\r\n\r\n1777\r\n03:39:23,290 --> 03:39:25,380\r\n愈合与爱\r\n\r\n1778\r\n03:39:28,960 --> 03:39:30,010\r\n赢得胜利\r\n\r\n1779\r\n03:39:56,620 --> 03:39:58,200\r\n关键时刻…\r\n\r\n1780\r\n03:39:58,490 --> 03:39:59,870\r\n就是现在\r\n\r\n1781\r\n03:40:09,040 --> 03:40:10,300\r\n准备好了吗\r\n\r\n1782\r\n03:40:10,460 --> 03:40:11,760\r\n来吧 史蒂芬\r\n\r\n1783\r\n03:40:15,380 --> 03:40:16,680\r\n继续走吧\r\n\r\n1784\r\n03:40:18,600 --> 03:40:19,720\r\n走吧\r\n\r\n1785\r\n03:40:21,520 --> 03:40:23,270\r\n来吧 卢瑟 走吧\r\n\r\n1786\r\n03:40:26,940 --> 03:40:28,060\r\n卢瑟\r\n\r\n1787\r\n03:40:33,070 --> 03:40:34,070\r\n打开二号牢房 卡尔\r\n\r\n1788\r\n03:40:43,250 --> 03:40:44,540\r\n卢瑟\r\n\r\n1789\r\n03:40:49,590 --> 03:40:52,800\r\n别闹了 卢瑟 不然我要进去教训你\r\n\r\n1790\r\n03:41:20,190 --> 03:41:22,410\r\n阿卡姆 哥谭市\r\n\r\n1791\r\n03:41:27,480 --> 03:41:30,130\r\n阿卡姆精神病院\r\n\r\n1792\r\n03:42:22,050 --> 03:42:23,350\r\n他来了\r\n\r\n1793\r\n03:42:24,100 --> 03:42:25,350\r\n欢迎上船\r\n\r\n1794\r\n03:42:25,510 --> 03:42:27,310\r\n来一杯顶级香槟\r\n\r\n1795\r\n03:42:27,470 --> 03:42:29,350\r\n我只是在庆祝神的回归\r\n\r\n1796\r\n03:42:29,520 --> 03:42:31,810\r\n从地底回到天空\r\n\r\n1797\r\n03:42:32,190 --> 03:42:34,440\r\n听说你脑筋秀逗了\r\n\r\n1798\r\n03:42:35,110 --> 03:42:36,320\r\n本来是 谢谢你\r\n\r\n1799\r\n03:42:36,480 --> 03:42:40,780\r\n直到阿卡汉的良医 让我的头脑再度清晰\r\n\r\n1800\r\n03:42:40,950 --> 03:42:44,240\r\n你自愿免费干掉蝙蝠侠\r\n\r\n1801\r\n03:42:44,410 --> 03:42:45,910\r\n为什么这么好心\r\n\r\n1802\r\n03:42:46,660 --> 03:42:47,740\r\n这是私人恩怨\r\n\r\n1803\r\n03:42:48,410 --> 03:42:51,210\r\n让我猜 以眼还眼\r\n\r\n1804\r\n03:42:53,290 --> 03:42:55,000\r\n你说你有我要的东西\r\n\r\n1805\r\n03:42:55,170 --> 03:42:56,590\r\n你最好别浪费我的时间\r\n\r\n1806\r\n03:42:57,000 --> 03:43:00,670\r\n我哪敢惹你呀 威尔森先生\r\n\r\n1807\r\n03:43:00,840 --> 03:43:04,430\r\n我有更重要的事要做 所以得好好活着\r\n\r\n1808\r\n03:43:05,390 --> 03:43:08,850\r\n但如果你想找到蝙蝠侠\r\n\r\n1809\r\n03:43:09,020 --> 03:43:12,100\r\n有件事可以帮你大忙\r\n\r\n1810\r\n03:43:13,440 --> 03:43:17,570\r\n他的名字是布鲁斯·韦恩\r\n\r\n1811\r\n03:43:21,650 --> 03:43:23,200\r\n现在想一想\r\n\r\n1812\r\n03:43:25,530 --> 03:43:27,450\r\n这件事的确值得庆祝\r\n\r\n1813\r\n03:43:28,580 --> 03:43:30,000\r\n好样的\r\n\r\n1814\r\n03:44:34,310 --> 03:44:35,520\r\n安全\r\n\r\n1815\r\n03:44:41,020 --> 03:44:42,530\r\n还有多远\r\n\r\n1816\r\n03:44:43,780 --> 03:44:44,990\r\n就快到了\r\n\r\n1817\r\n03:44:47,240 --> 03:44:48,780\r\n我们得快点\r\n\r\n1818\r\n03:44:48,950 --> 03:44:50,450\r\n不能在外面待太久\r\n\r\n1819\r\n03:44:50,620 --> 03:44:52,240\r\n他会来找我们\r\n\r\n1820\r\n03:44:55,210 --> 03:44:56,830\r\n让他来\r\n\r\n1821\r\n03:44:57,330 --> 03:44:58,960\r\n让那个混蛋来吧\r\n\r\n1822\r\n03:45:00,420 --> 03:45:04,210\r\n他杀了亚瑟 我要一刀捅死他\r\n\r\n1823\r\n03:45:05,010 --> 03:45:06,930\r\n我要让他付出代价\r\n\r\n1824\r\n03:45:08,640 --> 03:45:10,930\r\n我知道你的感受 湄拉\r\n\r\n1825\r\n03:45:11,430 --> 03:45:13,930\r\n你一点都不知道\r\n\r\n1826\r\n03:45:14,430 --> 03:45:18,560\r\n但我们得按照计划才有机会成功\r\n\r\n1827\r\n03:45:26,490 --> 03:45:29,910\r\n你曾经爱过谁\r\n\r\n1828\r\n03:45:44,050 --> 03:45:47,220\r\n你错了 小美人鱼\r\n\r\n1829\r\n03:45:50,970 --> 03:45:54,390\r\n他很了解失去挚爱的感受\r\n\r\n1830\r\n03:45:56,350 --> 03:45:58,600\r\n就像是…\r\n\r\n1831\r\n03:45:59,940 --> 03:46:01,310\r\n一个父亲\r\n\r\n1832\r\n03:46:02,770 --> 03:46:04,110\r\n和一个母亲\r\n\r\n1833\r\n03:46:05,110 --> 03:46:08,150\r\n你说下一句话前最好小心一点\r\n\r\n1834\r\n03:46:09,820 --> 03:46:11,820\r\n或是一个养子\r\n\r\n1835\r\n03:46:15,580 --> 03:46:17,200\r\n对不对…\r\n\r\n1836\r\n03:46:18,750 --> 03:46:20,210\r\n蝙蝠侠\r\n\r\n1837\r\n03:46:23,460 --> 03:46:26,670\r\n也许那只臭美人鱼是对的\r\n\r\n1838\r\n03:46:28,510 --> 03:46:32,800\r\n你对死亡麻木之前 还有多少人会死在你怀里\r\n\r\n1839\r\n03:46:34,390 --> 03:46:36,270\r\n你说话一点都不小心\r\n\r\n1840\r\n03:46:37,520 --> 03:46:40,640\r\n你还要看着多少死人的眼睛\r\n\r\n1841\r\n03:46:41,350 --> 03:46:43,730\r\n才会彻底心死\r\n\r\n1842\r\n03:46:44,270 --> 03:46:47,940\r\n我已经心死了很久\r\n\r\n1843\r\n03:46:48,110 --> 03:46:50,030\r\n但就连我也有忍耐极限\r\n\r\n1844\r\n03:46:50,200 --> 03:46:51,910\r\n你敢跨过那极限 我发誓会…\r\n\r\n1845\r\n03:46:52,070 --> 03:46:54,370\r\n你会怎样 布鲁斯杀了我\r\n\r\n1846\r\n03:46:55,080 --> 03:46:56,870\r\n你不会杀我\r\n\r\n1847\r\n03:46:57,740 --> 03:46:59,710\r\n我是你最好的朋友\r\n\r\n1848\r\n03:47:00,210 --> 03:47:04,250\r\n而且 谁会摸你的蛋蛋\r\n\r\n1849\r\n03:47:06,250 --> 03:47:07,630\r\n反正呢\r\n\r\n1850\r\n03:47:08,920 --> 03:47:10,470\r\n你需要我\r\n\r\n1851\r\n03:47:11,510 --> 03:47:13,010\r\n你…\r\n\r\n1852\r\n03:47:13,550 --> 03:47:19,180\r\n让她死以后造成的这个世界 需要我帮你恢复原状\r\n\r\n1853\r\n03:47:21,770 --> 03:47:23,020\r\n可怜的露易丝\r\n\r\n1854\r\n03:47:23,810 --> 03:47:26,610\r\n她受尽了折磨\r\n\r\n1855\r\n03:47:32,490 --> 03:47:33,950\r\n我常常在想\r\n\r\n1856\r\n03:47:34,910 --> 03:47:39,040\r\n你在多少个平行时空毁灭世界 老实说…\r\n\r\n1857\r\n03:47:40,200 --> 03:47:44,370\r\n都是因为你没种让自己死\r\n\r\n1858\r\n03:47:48,960 --> 03:47:52,760\r\n所以我还是一样比你更成熟\r\n\r\n1859\r\n03:47:56,600 --> 03:47:58,060\r\n停战吧\r\n\r\n1860\r\n03:47:58,890 --> 03:48:00,180\r\n布鲁斯\r\n\r\n1861\r\n03:48:02,940 --> 03:48:07,020\r\n只要你有这张牌 我们就停战\r\n\r\n1862\r\n03:48:10,070 --> 03:48:13,280\r\n但你只要把它撕成一半 我就很乐意跟你谈谈\r\n\r\n1863\r\n03:48:13,450 --> 03:48:16,450\r\n你为什么要派那个神奇小子\r\n\r\n1864\r\n03:48:18,200 --> 03:48:20,040\r\n去做一个男人的工作\r\n\r\n1865\r\n03:48:23,460 --> 03:48:25,250\r\n真的很好笑\r\n\r\n1866\r\n03:48:25,420 --> 03:48:28,460\r\n你竟然敢说有多少人死在我怀里\r\n\r\n1867\r\n03:48:28,630 --> 03:48:30,340\r\n当我把哈莉·奎茵抱在怀里\r\n\r\n1868\r\n03:48:30,500 --> 03:48:32,970\r\n她满身是血 奄奄一息时\r\n\r\n1869\r\n03:48:33,130 --> 03:48:36,680\r\n她用最后一口气哀求我\r\n\r\n1870\r\n03:48:36,840 --> 03:48:39,100\r\n当我杀你的时候\r\n\r\n1871\r\n03:48:39,260 --> 03:48:42,680\r\n别搞错 我一定会他妈的杀了你\r\n\r\n1872\r\n03:48:42,850 --> 03:48:44,690\r\n她要我慢慢来\r\n\r\n1873\r\n03:48:45,890 --> 03:48:47,860\r\n我会信守这个承诺\r\n\r\n1874\r\n03:49:19,640 --> 03:49:21,220\r\n你真会演戏\r\n\r\n1875\r\n03:49:25,520 --> 03:49:27,100\r\n差点就唬住我了\r\n\r\n1876\r\n03:49:46,580 --> 03:49:47,660\r\n我们要躲在哪里\r\n\r\n1877\r\n03:49:47,830 --> 03:49:50,080\r\n他永远不会料到的地方\r\n\r\n1878\r\n03:49:50,540 --> 03:49:53,460\r\n还是觉得带着他是个好主意吗\r\n\r\n1879\r\n03:49:54,550 --> 03:49:56,090\r\n你觉得呢\r\n\r\n1880\r\n03:50:02,180 --> 03:50:03,180\r\n他找到我们了\r\n\r\n1881\r\n03:51:32,350 --> 03:51:33,810\r\n我能帮你吗\r\n\r\n1882\r\n03:51:35,190 --> 03:51:38,690\r\n你一定知道达克赛德不会放过地球\r\n\r\n1883\r\n03:51:38,860 --> 03:51:41,860\r\n反生命方程序就在这里\r\n\r\n1884\r\n03:51:42,030 --> 03:51:44,820\r\n我们得赶在他之前找到它\r\n\r\n1885\r\n03:51:44,990 --> 03:51:46,700\r\n决战时刻即将到来\r\n\r\n1886\r\n03:51:46,990 --> 03:51:48,740\r\n我是来帮忙的\r\n\r\n1887\r\n03:51:48,910 --> 03:51:51,160\r\n抱歉 你是哪位\r\n\r\n1888\r\n03:51:51,330 --> 03:51:56,420\r\n我有很多名字和很多形体 就像你一样…\r\n\r\n1889\r\n03:51:57,040 --> 03:51:59,670\r\n我发现自己要对这世界负责\r\n\r\n1890\r\n03:51:59,840 --> 03:52:02,300\r\n我也该为它而战了\r\n\r\n1891\r\n03:52:05,840 --> 03:52:07,970\r\n我们是需要帮助\r\n\r\n1892\r\n03:52:08,180 --> 03:52:11,390\r\n所以很高兴你来了\r\n\r\n1893\r\n03:52:12,640 --> 03:52:14,810\r\n我没想过会看到地球的守护者\r\n\r\n1894\r\n03:52:14,980 --> 03:52:17,150\r\n会团结一致 并肩作战\r\n\r\n1895\r\n03:52:18,150 --> 03:52:20,530\r\n没有你就不会发生 布鲁斯\r\n\r\n1896\r\n03:52:21,990 --> 03:52:24,360\r\n你父母会为你感到骄傲\r\n\r\n1897\r\n03:52:25,740 --> 03:52:26,910\r\n希望如此\r\n\r\n1898\r\n03:52:32,960 --> 03:52:35,920\r\n我会保持联系\r\n\r\n1899\r\n03:52:36,960 --> 03:52:41,000\r\n对了 有些人叫我…\r\n\r\n1900\r\n03:52:41,170 --> 03:52:43,470\r\n火星猎人\r\n\r\n1901\r\n03:52:51,180 --> 03:52:53,520\r\n我猜我会再见到你\r\n\r\n1902\r\n03:53:23,960 --> 03:53:30,060\r\n献给秋\r\n\r\n"
  },
  {
    "path": "2021/3-21-subtitle-rejust/jl1.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2021/3/21 13:01\n# @File    : jl1.py\n\n\n\"\"\"\njl1.py:\n正义联盟\n\"\"\"\n\nimport srt\nfrom datetime import timedelta\n\n# fp='/Users/play/Downloads/简体.srt'\nfp = '/Users/play/Downloads/cn2.srt'  # 转换格式 UTF-8编码\nfp3 = '/Users/play/Downloads/调整后.srt'\nwith open(fp) as f:\n    txt = f.read()\n# with open(fp,'rb') as f:#注意文件格式，Little-endian UTF-16 Unicode text, with CRLF line terminators\n#     txt=f.read()\n\nsubtitle_generator = srt.parse(txt)\nsubtitles = list(subtitle_generator)\nprint(subtitles[10])\n\nsubs = []\nfor sub in subtitles:  # 延时30秒\n    sub.start = sub.start + timedelta(seconds=32)\n    sub.end = sub.end + timedelta(seconds=32)\n    subs.append(sub)\n\nft = srt.compose(subs, reindex=False)  # 问题 https://github.com/cdown/srt/issues/62\nprint(ft[:20])\nwith open(fp3, 'wb') as f:\n    f.write(ft.encode())\n    # f.write(srt.compose(subs).encode())\n    print(fp3)\n\n\ndef main():\n    pass\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "2021/3-21-subtitle-rejust/从网站下载的简体.srt",
    "content": "1\r\n00:00:18,030 --> 00:00:21,540\r\n时代华纳旗下\r\n\r\n2\r\n00:00:24,140 --> 00:00:33,640\r\nACCESS 集团\r\n\r\n3\r\n00:01:27,640 --> 00:01:31,640\r\n华纳兄弟影业 出品\r\n\r\n4\r\n00:01:33,640 --> 00:01:37,740\r\n联合出品\r\n及 沙丘娱乐\r\nACCESS集团\r\n\r\n5\r\n00:02:17,540 --> 00:02:21,640\r\n亚特拉斯娱乐 /\r\nSTONE QUARRY 出品\r\n\r\n6\r\n00:02:24,740 --> 00:02:28,680\r\n扎克·施奈德 影业\r\n\r\n7\r\n00:02:35,810 --> 00:02:39,830\r\n扎克·施奈德版\r\n正义联盟\r\n\r\n8\r\n00:06:13,080 --> 00:06:14,590\r\n向女王警示\r\n\r\n9\r\n00:09:00,430 --> 00:09:04,710\r\n第一章\r\n\r\n10\r\n00:09:02,010 --> 00:09:04,710\r\n“别指望了，蝙蝠侠”\r\n\r\n11\r\n00:09:05,260 --> 00:09:08,130\r\n布鲁斯·韦恩\r\n\r\n12\r\n00:09:08,300 --> 00:09:09,930\r\n布鲁斯·韦恩\r\n\r\n13\r\n00:09:11,420 --> 00:09:14,190\r\n直升机因暴风雨已六天无法降落\r\n\r\n14\r\n00:09:14,590 --> 00:09:15,480\r\n他是从哪来的\r\n\r\n15\r\n00:09:15,850 --> 00:09:17,480\r\n他说他爬山过来的\r\n\r\n16\r\n00:09:17,890 --> 00:09:18,980\r\n不可能\r\n\r\n17\r\n00:09:27,950 --> 00:09:29,360\r\n有话快说\r\n\r\n18\r\n00:09:30,700 --> 00:09:35,200\r\n有个陌生人从大海来到这村庄\r\n\r\n19\r\n00:09:35,370 --> 00:09:38,120\r\n在村民饥寒交迫的严冬到来\r\n\r\n20\r\n00:09:38,290 --> 00:09:40,500\r\n并带来渔获\r\n\r\n21\r\n00:09:40,670 --> 00:09:42,290\r\n他乘着大潮而来\r\n\r\n22\r\n00:09:42,460 --> 00:09:43,710\r\n昨晚的大潮\r\n\r\n23\r\n00:09:50,260 --> 00:09:52,550\r\n你也亲眼看见\r\n\r\n24\r\n00:09:52,720 --> 00:09:54,470\r\n渔港结冰\r\n\r\n25\r\n00:09:54,640 --> 00:09:56,640\r\n四个月没有船只进港\r\n\r\n26\r\n00:09:57,810 --> 00:10:01,850\r\n这个陌生人不是乘船而来\r\n\r\n27\r\n00:10:08,820 --> 00:10:12,450\r\n来自远方的敌人即将来袭\r\n\r\n28\r\n00:10:13,740 --> 00:10:15,410\r\n我需要战士\r\n\r\n29\r\n00:10:15,580 --> 00:10:19,120\r\n对付这个陌生人 还有像他的其他人\r\n\r\n30\r\n00:10:19,290 --> 00:10:22,790\r\n我要成立一个捍卫地球的联盟\r\n\r\n31\r\n00:10:23,710 --> 00:10:26,630\r\n我必须见到这个人\r\n\r\n32\r\n00:10:27,800 --> 00:10:30,090\r\n如果真有这个人\r\n\r\n33\r\n00:10:30,260 --> 00:10:32,340\r\n他会把你的话传给他\r\n\r\n34\r\n00:10:32,510 --> 00:10:33,720\r\n五千美元\r\n\r\n35\r\n00:10:33,890 --> 00:10:38,350\r\n我给你两万五 让我和他说话 到外面说去\r\n\r\n36\r\n00:10:50,690 --> 00:10:55,070\r\n这只狗竟敢把我们当成小孩子\r\n\r\n37\r\n00:10:55,910 --> 00:10:59,540\r\n什么来自大海的神奇人物\r\n\r\n38\r\n00:10:59,700 --> 00:11:02,410\r\n我们很穷 但并不蠢\r\n\r\n39\r\n00:11:02,710 --> 00:11:04,420\r\n滚出去\r\n\r\n40\r\n00:11:05,540 --> 00:11:06,790\r\n抱歉\r\n\r\n41\r\n00:11:07,210 --> 00:11:08,750\r\n办不到\r\n\r\n42\r\n00:11:09,000 --> 00:11:11,130\r\n我们说完话我就走\r\n\r\n43\r\n00:11:15,930 --> 00:11:17,350\r\n他叫你\"滚出去\"\r\n\r\n44\r\n00:11:18,120 --> 00:11:20,330\r\n办不到\r\n\r\n45\r\n00:11:36,370 --> 00:11:38,240\r\n亚瑟·库瑞\r\n\r\n46\r\n00:11:38,410 --> 00:11:41,160\r\n也被称为大海保护者\r\n\r\n47\r\n00:11:41,870 --> 00:11:43,500\r\n海王\r\n\r\n48\r\n00:11:49,210 --> 00:11:50,920\r\n让我搞清楚\r\n\r\n49\r\n00:11:51,090 --> 00:11:54,590\r\n你打扮成蝙蝠真正的蝙蝠\r\n\r\n50\r\n00:11:54,760 --> 00:11:56,430\r\n我在哥谭市打拼了20年\r\n\r\n51\r\n00:11:56,590 --> 00:11:58,430\r\n那个鸟地方\r\n\r\n52\r\n00:11:58,600 --> 00:12:00,390\r\n决战时刻 我们会需要你\r\n\r\n53\r\n00:12:00,560 --> 00:12:02,310\r\n-别指望了 蝙蝠侠 -为什么\r\n\r\n54\r\n00:12:03,230 --> 00:12:05,060\r\n我不喜欢你跑来挖我的隐私\r\n\r\n55\r\n00:12:05,230 --> 00:12:07,770\r\n干涉我的生活 我只想独自一个人\r\n\r\n56\r\n00:12:07,940 --> 00:12:08,940\r\n所以你才这么做\r\n\r\n57\r\n00:12:09,110 --> 00:12:11,190\r\n在这鸟不生蛋的地方帮助这些人\r\n\r\n58\r\n00:12:11,360 --> 00:12:14,820\r\n我读过你的故事 你以为没人知道你的善行\r\n\r\n59\r\n00:12:14,990 --> 00:12:16,450\r\n你会加入我们\r\n\r\n60\r\n00:12:16,610 --> 00:12:18,320\r\n\"强者是孤独的\"\r\n\r\n61\r\n00:12:18,490 --> 00:12:19,740\r\n没听过这句话吗\r\n\r\n62\r\n00:12:20,200 --> 00:12:21,580\r\n你听过超人吗\r\n\r\n63\r\n00:12:21,740 --> 00:12:23,290\r\n他和我并肩作战时死去\r\n\r\n64\r\n00:12:24,660 --> 00:12:26,040\r\n这正是我的意思\r\n\r\n65\r\n00:12:26,210 --> 00:12:29,630\r\n他相信团结力量大 这是我们欠他的\r\n\r\n66\r\n00:12:30,250 --> 00:12:32,500\r\n我谁也不欠\r\n\r\n67\r\n00:12:40,180 --> 00:12:42,060\r\n打扮成一只蝙蝠\r\n\r\n68\r\n00:12:42,930 --> 00:12:44,770\r\n你疯了 布鲁斯·韦恩\r\n\r\n69\r\n00:14:13,310 --> 00:14:14,520\r\n过去 小灰\r\n\r\n70\r\n00:14:31,330 --> 00:14:36,340\r\n克拉克·乔瑟夫·肯特\r\n\r\n71\r\n00:14:46,320 --> 00:14:50,730\r\n法拍屋出售\r\n\r\n72\r\n00:15:10,450 --> 00:15:13,500\r\n天啊 韦恩少爷 这里好冷\r\n\r\n73\r\n00:15:13,670 --> 00:15:18,000\r\n也许我们可以赶上下一波牙买加的大潮\r\n\r\n74\r\n00:15:18,170 --> 00:15:20,420\r\n也许斐济一 两个超人类\r\n\r\n75\r\n00:15:20,590 --> 00:15:22,220\r\n哥斯达黎加天气也不错\r\n\r\n76\r\n00:15:22,380 --> 00:15:23,800\r\n我找到他了\r\n\r\n77\r\n00:15:26,680 --> 00:15:28,140\r\n他拒绝了\r\n\r\n78\r\n00:15:29,140 --> 00:15:31,230\r\n你连一个新兵都没招到\r\n\r\n79\r\n00:15:33,690 --> 00:15:36,440\r\n也许一个成天窝在洞穴的人\r\n\r\n80\r\n00:15:36,610 --> 00:15:40,110\r\n不适合当招募者\r\n\r\n81\r\n00:15:59,800 --> 00:16:01,550\r\n十块钱\r\n\r\n82\r\n00:16:21,860 --> 00:16:25,740\r\n星球日报 每日报导星球事务\r\n\r\n83\r\n00:16:29,330 --> 00:16:30,740\r\n曼哈顿银行诚征建筑师\r\n\r\n84\r\n00:16:31,500 --> 00:16:34,120\r\n大都会警局\r\n\r\n85\r\n00:16:39,750 --> 00:16:40,710\r\n早安 莱恩小姐\r\n\r\n86\r\n00:16:40,880 --> 00:16:42,170\r\n你好 杰瑞\r\n\r\n87\r\n00:16:45,090 --> 00:16:46,340\r\n你每天都来 对吧\r\n\r\n88\r\n00:16:47,800 --> 00:16:49,760\r\n我喜欢这里\r\n\r\n89\r\n00:18:35,580 --> 00:18:36,580\r\n站住\r\n\r\n90\r\n00:18:38,080 --> 00:18:39,080\r\n快上\r\n\r\n91\r\n00:18:49,840 --> 00:18:51,260\r\n快走 快走\r\n\r\n92\r\n00:18:57,560 --> 00:18:59,640\r\n-别开枪 -快走\r\n\r\n93\r\n00:19:00,310 --> 00:19:01,810\r\n给我过去\r\n\r\n94\r\n00:19:15,990 --> 00:19:17,950\r\n让他们靠墙站好\r\n\r\n95\r\n00:19:18,120 --> 00:19:19,660\r\n叫他们闭嘴\r\n\r\n96\r\n00:19:21,000 --> 00:19:23,290\r\n-安静 -闭嘴\r\n\r\n97\r\n00:19:23,460 --> 00:19:24,830\r\n叫他们闭嘴\r\n\r\n98\r\n00:19:27,960 --> 00:19:30,460\r\n我们很快就会发表声明\r\n\r\n99\r\n00:19:30,630 --> 00:19:32,470\r\n在那之前 谁敢乱来\r\n\r\n100\r\n00:19:32,630 --> 00:19:34,590\r\n就会害死一大堆小孩\r\n\r\n101\r\n00:19:49,650 --> 00:19:51,190\r\n要射杀他吗\r\n\r\n102\r\n00:19:51,360 --> 00:19:52,950\r\n别开枪\r\n\r\n103\r\n00:19:54,530 --> 00:19:55,570\r\n里面有小孩\r\n\r\n104\r\n00:19:57,530 --> 00:19:59,280\r\n他不是虚张声势 长官\r\n\r\n105\r\n00:19:59,450 --> 00:20:01,660\r\n圣布丽姬中学今天有校外教学\r\n\r\n106\r\n00:20:25,690 --> 00:20:26,520\r\n安静\r\n\r\n107\r\n00:20:26,690 --> 00:20:27,560\r\n闭嘴\r\n\r\n108\r\n00:20:32,650 --> 00:20:34,950\r\n让现代世界崩塌\r\n\r\n109\r\n00:20:35,110 --> 00:20:36,660\r\n回到黑暗时代\r\n\r\n110\r\n00:20:42,080 --> 00:20:43,160\r\n闭嘴\r\n\r\n111\r\n00:20:45,120 --> 00:20:47,790\r\n我叫你们闭嘴\r\n\r\n112\r\n00:21:01,970 --> 00:21:03,640\r\n你是谁\r\n\r\n113\r\n00:21:03,810 --> 00:21:06,640\r\n真言套索会迫使你说实话\r\n\r\n114\r\n00:21:07,390 --> 00:21:08,940\r\n你们是什么人\r\n\r\n115\r\n00:21:09,560 --> 00:21:12,570\r\n我们是一群反动恐怖份子\r\n\r\n116\r\n00:21:12,730 --> 00:21:14,360\r\n要让欧洲倒退到…\r\n\r\n117\r\n00:21:14,530 --> 00:21:16,780\r\n-一千年前 -无聊 为何挟持人质\r\n\r\n118\r\n00:21:16,950 --> 00:21:18,530\r\n我们没有任何要求\r\n\r\n119\r\n00:21:18,700 --> 00:21:20,200\r\n只是在动手之前拖延警察\r\n\r\n120\r\n00:21:20,450 --> 00:21:21,780\r\n你们想做什么\r\n\r\n121\r\n00:21:22,530 --> 00:21:26,120\r\n你太迟了 已经开始倒数计时\r\n\r\n122\r\n00:21:26,290 --> 00:21:29,750\r\n再过几分钟 四个街区…\r\n\r\n123\r\n00:21:30,880 --> 00:21:33,090\r\n全世界都会看到\r\n\r\n124\r\n00:23:13,690 --> 00:23:14,520\r\n不\r\n\r\n125\r\n00:23:14,690 --> 00:23:16,730\r\n就像屠宰场里的羔羊\r\n\r\n126\r\n00:24:06,110 --> 00:24:07,200\r\n我不敢相信\r\n\r\n127\r\n00:24:07,740 --> 00:24:08,660\r\n相信吧\r\n\r\n128\r\n00:24:44,320 --> 00:24:47,070\r\n大家没事吧你没事吧\r\n\r\n129\r\n00:24:47,320 --> 00:24:49,320\r\n很好 没事了\r\n\r\n130\r\n00:24:49,660 --> 00:24:51,740\r\n没事了 你们可以站起来了\r\n\r\n131\r\n00:24:51,910 --> 00:24:53,000\r\n一切都没事\r\n\r\n132\r\n00:24:53,370 --> 00:24:54,790\r\n结束了 你还好吧\r\n\r\n133\r\n00:24:55,330 --> 00:24:57,460\r\n-没事吧 -很好\r\n\r\n134\r\n00:25:03,130 --> 00:25:04,420\r\n你没事吧 公主\r\n\r\n135\r\n00:25:07,890 --> 00:25:09,680\r\n我有一天能像你一样吗\r\n\r\n136\r\n00:25:11,850 --> 00:25:14,430\r\n你想成为什么样的人都可以\r\n\r\n137\r\n00:25:16,350 --> 00:25:18,730\r\n来吧 走吧\r\n\r\n138\r\n00:26:01,520 --> 00:26:02,730\r\n今天有任何变化吗\r\n\r\n139\r\n00:26:02,900 --> 00:26:04,360\r\n没有 女王\r\n\r\n140\r\n00:26:06,070 --> 00:26:07,690\r\n母盒苏醒了\r\n\r\n141\r\n00:26:08,150 --> 00:26:10,030\r\n但什么也没发生\r\n\r\n142\r\n00:26:11,240 --> 00:26:13,280\r\n它从始纪元…\r\n\r\n143\r\n00:26:13,450 --> 00:26:15,410\r\n就沉睡了数千年\r\n\r\n144\r\n00:26:15,580 --> 00:26:16,910\r\n现在为何苏醒\r\n\r\n145\r\n00:26:24,800 --> 00:26:27,970\r\n这是它出现裂缝后第一次静下来\r\n\r\n146\r\n00:26:28,130 --> 00:26:30,800\r\n也许它又继续沉睡\r\n\r\n147\r\n00:26:34,890 --> 00:26:36,600\r\n邪恶永不沉睡\r\n\r\n148\r\n00:26:37,520 --> 00:26:38,930\r\n只会伺机而待\r\n\r\n149\r\n00:26:40,940 --> 00:26:42,900\r\n有什么要来了\r\n\r\n150\r\n00:26:48,150 --> 00:26:49,650\r\n准备迎敌\r\n\r\n151\r\n00:27:15,140 --> 00:27:17,510\r\n亚马逊女战士 各就各位\r\n\r\n152\r\n00:27:17,890 --> 00:27:19,180\r\n预备\r\n\r\n153\r\n00:27:44,420 --> 00:27:46,420\r\n守护者\r\n\r\n154\r\n00:27:48,090 --> 00:27:52,340\r\n他们无法保护十万个世界\r\n\r\n155\r\n00:27:52,840 --> 00:27:54,340\r\n永远都会失败\r\n\r\n156\r\n00:27:56,300 --> 00:28:00,970\r\n我是来让你们见识伟大的黑暗\r\n\r\n157\r\n00:28:01,140 --> 00:28:04,060\r\n我将沉浸在你们的恐惧中\r\n\r\n158\r\n00:28:05,560 --> 00:28:08,020\r\n天堂岛的女儿\r\n\r\n159\r\n00:28:09,360 --> 00:28:10,940\r\n让他看到你们的恐惧\r\n\r\n160\r\n00:28:11,110 --> 00:28:13,530\r\n我们无畏无惧\r\n\r\n161\r\n00:28:32,800 --> 00:28:34,420\r\n召集军团\r\n\r\n162\r\n00:28:35,340 --> 00:28:36,510\r\n跟她去\r\n\r\n163\r\n00:28:36,680 --> 00:28:37,800\r\n你必须封住山洞\r\n\r\n164\r\n00:28:37,970 --> 00:28:38,800\r\n快去\r\n\r\n165\r\n00:28:39,260 --> 00:28:40,390\r\n菲莉普斯\r\n\r\n166\r\n00:29:07,120 --> 00:29:08,210\r\n不\r\n\r\n167\r\n00:29:29,310 --> 00:29:30,480\r\n伊琵欧妮\r\n\r\n168\r\n00:29:32,400 --> 00:29:34,490\r\n让我们光荣战死 这是对的\r\n\r\n169\r\n00:29:37,450 --> 00:29:38,780\r\n封住大门\r\n\r\n170\r\n00:29:44,040 --> 00:29:46,660\r\n拿起大锤\r\n\r\n171\r\n00:29:58,880 --> 00:30:00,680\r\n快封住它\r\n\r\n172\r\n00:31:35,400 --> 00:31:37,070\r\n用生命守护它\r\n\r\n173\r\n00:31:37,230 --> 00:31:39,030\r\n-遵命 我的女王 -让它保持移动\r\n\r\n174\r\n00:34:25,070 --> 00:34:26,610\r\n拿到了 快走\r\n\r\n175\r\n00:34:49,510 --> 00:34:53,720\r\n高贵的女王 你为何抗拒\r\n\r\n176\r\n00:34:56,770 --> 00:34:58,520\r\n你救不了她\r\n\r\n177\r\n00:34:58,680 --> 00:35:01,140\r\n你救不了任何人\r\n\r\n178\r\n00:35:04,650 --> 00:35:08,070\r\n伟大的黑暗即将降临\r\n\r\n179\r\n00:35:08,860 --> 00:35:10,200\r\n亚马逊女战士\r\n\r\n180\r\n00:35:20,790 --> 00:35:23,460\r\n是的 我们会找到其他的\r\n\r\n181\r\n00:35:25,340 --> 00:35:26,670\r\n拉弓\r\n\r\n182\r\n00:35:30,010 --> 00:35:31,510\r\n放箭\r\n\r\n183\r\n00:36:29,230 --> 00:36:31,320\r\n他回到了他的宇宙\r\n\r\n184\r\n00:36:31,490 --> 00:36:32,320\r\n不\r\n\r\n185\r\n00:36:34,910 --> 00:36:37,280\r\n他去了人类的世界\r\n\r\n186\r\n00:36:37,450 --> 00:36:39,580\r\n寻找另外两个母盒\r\n\r\n187\r\n00:36:40,790 --> 00:36:43,120\r\n我们必须点燃古老的警示烽火\r\n\r\n188\r\n00:36:44,000 --> 00:36:47,460\r\n烽火五千年未曾燃烧\r\n\r\n189\r\n00:36:47,630 --> 00:36:49,170\r\n人类不会知道它的意义\r\n\r\n190\r\n00:36:50,000 --> 00:36:51,380\r\n人类不会知道\r\n\r\n191\r\n00:36:53,130 --> 00:36:54,550\r\n她会知道\r\n\r\n192\r\n00:37:00,210 --> 00:37:05,490\r\n第二章\r\n\r\n193\r\n00:37:02,850 --> 00:37:05,490\r\n英雄时代\r\n\r\n194\r\n00:37:25,290 --> 00:37:27,920\r\n这里是有毒的\r\n\r\n195\r\n00:37:28,080 --> 00:37:29,790\r\n很好\r\n\r\n196\r\n00:37:50,730 --> 00:37:51,940\r\n去吧\r\n\r\n197\r\n00:37:52,110 --> 00:37:54,110\r\n跟着母盒的气味\r\n\r\n198\r\n00:37:54,280 --> 00:37:55,820\r\n找到另外两个\r\n\r\n199\r\n00:37:55,990 --> 00:37:59,870\r\n一旦找到它们 就能形成三位一体\r\n\r\n200\r\n00:38:00,030 --> 00:38:02,780\r\n这个世界将加入其他世界\r\n\r\n201\r\n00:38:04,700 --> 00:38:06,710\r\n他会很高兴\r\n\r\n202\r\n00:38:06,870 --> 00:38:09,790\r\n再次看到我的价值\r\n\r\n203\r\n00:38:14,380 --> 00:38:16,970\r\n有酒类专卖店那小鬼的消息吗\r\n\r\n204\r\n00:38:17,130 --> 00:38:18,550\r\n可能有\r\n\r\n205\r\n00:38:19,340 --> 00:38:20,510\r\n\"可能有\"\r\n\r\n206\r\n00:38:21,720 --> 00:38:24,260\r\n每听一次这句话\r\n\r\n207\r\n00:38:24,430 --> 00:38:27,060\r\n就会让我更受不了你\r\n\r\n208\r\n00:38:30,020 --> 00:38:32,730\r\n脸部辨识可能找到匹配\r\n\r\n209\r\n00:38:32,900 --> 00:38:34,730\r\n搞消失的那小子\r\n\r\n210\r\n00:38:35,360 --> 00:38:40,070\r\n中城的巴里·艾伦先生\r\n\r\n211\r\n00:38:40,240 --> 00:38:43,160\r\n也许又是误判 你得给我多点时间\r\n\r\n212\r\n00:38:43,330 --> 00:38:45,540\r\n-才能确认 -我们没有时间了\r\n\r\n213\r\n00:38:47,250 --> 00:38:49,000\r\n韦恩少爷\r\n\r\n214\r\n00:38:49,160 --> 00:38:52,670\r\n你一直在拼命地创建这个团队\r\n\r\n215\r\n00:38:52,840 --> 00:38:54,670\r\n但却找不到任何队友\r\n\r\n216\r\n00:38:54,840 --> 00:38:56,960\r\n我找到一个 是两个 包括戴安娜\r\n\r\n217\r\n00:38:57,130 --> 00:39:01,090\r\n就因为莱克斯·卢瑟说 地球会受到攻击\r\n\r\n218\r\n00:39:01,260 --> 00:39:03,260\r\n这跟莱克斯·卢瑟无关\r\n\r\n219\r\n00:39:03,430 --> 00:39:04,640\r\n这跟他有关\r\n\r\n220\r\n00:39:04,930 --> 00:39:08,230\r\n我在他的坟上向他承诺\r\n\r\n221\r\n00:39:09,100 --> 00:39:12,230\r\n我花了很多时间试图造成分裂\r\n\r\n222\r\n00:39:12,400 --> 00:39:15,190\r\n现在必须团结一心才能拯救地球\r\n\r\n223\r\n00:39:15,980 --> 00:39:18,570\r\n卢瑟的警告已经过了一段时间\r\n\r\n224\r\n00:39:18,820 --> 00:39:21,950\r\n没有攻击 没有野蛮人冲进大门\r\n\r\n225\r\n00:39:23,200 --> 00:39:25,830\r\n也许这些野蛮人不走大门\r\n\r\n226\r\n00:39:26,700 --> 00:39:28,370\r\n也许他们已经来了\r\n\r\n227\r\n00:39:32,370 --> 00:39:34,130\r\n继续找 还有什么线索\r\n\r\n228\r\n00:40:13,120 --> 00:40:14,670\r\n实验室是你的了 霍华德\r\n\r\n229\r\n00:40:14,830 --> 00:40:16,420\r\n11点半\r\n\r\n230\r\n00:40:16,590 --> 00:40:17,920\r\n今晚很早嘛 塞拉斯\r\n\r\n231\r\n00:40:18,090 --> 00:40:20,170\r\n是啊 我提早下班\r\n\r\n232\r\n00:40:20,840 --> 00:40:21,970\r\n替我向你家人问好\r\n\r\n233\r\n00:40:57,330 --> 00:40:58,920\r\n搞什么…\r\n\r\n234\r\n00:41:02,840 --> 00:41:04,010\r\n天啊\r\n\r\n235\r\n00:42:17,250 --> 00:42:19,080\r\n阿提密斯之箭\r\n\r\n236\r\n00:42:20,170 --> 00:42:22,710\r\n它将射到人类世界\r\n\r\n237\r\n00:42:32,350 --> 00:42:33,640\r\n天空火炬\r\n\r\n238\r\n00:42:33,810 --> 00:42:35,350\r\n英雄烽火\r\n\r\n239\r\n00:42:35,520 --> 00:42:37,230\r\n驱散黑暗\r\n\r\n240\r\n00:42:37,390 --> 00:42:40,650\r\n如昔日一般熊熊燃烧\r\n\r\n241\r\n00:42:42,230 --> 00:42:45,690\r\n让她看到历史曙光出现之前的黑暗\r\n\r\n242\r\n00:42:46,190 --> 00:42:49,780\r\n警告我女儿战争已经来临\r\n\r\n243\r\n00:42:51,160 --> 00:42:52,870\r\n并且保护她\r\n\r\n244\r\n00:43:17,600 --> 00:43:19,890\r\n回到我身边 戴安娜\r\n\r\n245\r\n00:43:58,520 --> 00:44:01,140\r\n你这周末做什么了 戴安娜\r\n\r\n246\r\n00:44:01,480 --> 00:44:03,810\r\n没做什么特别的\r\n\r\n247\r\n00:44:04,810 --> 00:44:06,900\r\n你每次都这么说\r\n\r\n248\r\n00:44:07,520 --> 00:44:10,030\r\n没办法 我的生活很无趣\r\n\r\n249\r\n00:44:10,190 --> 00:44:13,660\r\n你一走出去就好像消失一样\r\n\r\n250\r\n00:44:18,540 --> 00:44:19,540\r\n又来了\r\n\r\n251\r\n00:44:19,700 --> 00:44:21,580\r\n-什么事 -又怎么了\r\n\r\n252\r\n00:44:21,960 --> 00:44:25,080\r\n预算缩减 盗墓者\r\n\r\n253\r\n00:44:25,250 --> 00:44:27,750\r\n现在又加了一条\"纵火者\"\r\n\r\n254\r\n00:44:29,630 --> 00:44:32,260\r\n记者在克里特岛连线报导\r\n\r\n255\r\n00:44:32,420 --> 00:44:36,970\r\n我身后的大篝火熊熊燃烧\r\n\r\n256\r\n00:44:37,140 --> 00:44:39,260\r\n大火燃烧了一整晚\r\n\r\n257\r\n00:44:39,430 --> 00:44:43,230\r\n现在已经是早上 我们至少在八公里以外\r\n\r\n258\r\n00:44:43,390 --> 00:44:46,730\r\n但还是能看到它在燃烧\r\n\r\n259\r\n00:44:46,900 --> 00:44:49,940\r\n当地居民和政府当局都感到诧异\r\n\r\n260\r\n00:44:50,110 --> 00:44:54,610\r\n这座历史遗迹亚马逊神殿居然起火\r\n\r\n261\r\n00:44:54,780 --> 00:44:56,280\r\n-当地居民和政府当局… -敌人入侵\r\n\r\n262\r\n00:44:56,450 --> 00:44:58,740\r\n…不知道火势起因\r\n\r\n263\r\n00:45:07,880 --> 00:45:08,920\r\n瑞恩\r\n\r\n264\r\n00:45:09,090 --> 00:45:10,460\r\n-你好 博士 -那个…\r\n\r\n265\r\n00:45:10,630 --> 00:45:12,460\r\n电子激光没有损坏\r\n\r\n266\r\n00:45:12,760 --> 00:45:14,800\r\n-塞拉斯·斯通博士 -是的\r\n\r\n267\r\n00:45:14,970 --> 00:45:16,050\r\n-蔡瑞恩 -是的\r\n\r\n268\r\n00:45:17,510 --> 00:45:19,260\r\n这是谁干的 他们有没有偷走什么\r\n\r\n269\r\n00:45:19,430 --> 00:45:21,470\r\n-他们偷走了一切 -那个呢\r\n\r\n270\r\n00:45:21,640 --> 00:45:24,060\r\n那没被偷走 对吧 斯通博士\r\n\r\n271\r\n00:45:25,020 --> 00:45:27,350\r\n对 那之前就被移走了\r\n\r\n272\r\n00:45:27,940 --> 00:45:31,780\r\n6-1-9-8-2号物件 国防部档案馆\r\n\r\n273\r\n00:45:32,820 --> 00:45:33,740\r\n那是什么\r\n\r\n274\r\n00:45:34,150 --> 00:45:35,070\r\n我也不知道\r\n\r\n275\r\n00:45:35,240 --> 00:45:36,160\r\n你不知道\r\n\r\n276\r\n00:45:36,320 --> 00:45:38,570\r\n没错 所以我才在研究它\r\n\r\n277\r\n00:45:38,740 --> 00:45:40,240\r\n你是什么官阶\r\n\r\n278\r\n00:45:40,660 --> 00:45:42,660\r\n瑞恩 麻烦你了\r\n\r\n279\r\n00:45:42,830 --> 00:45:44,160\r\n-没问题 -谢了\r\n\r\n280\r\n00:45:44,330 --> 00:45:45,160\r\n平民\r\n\r\n281\r\n00:45:45,500 --> 00:45:48,210\r\n星辰实验室是私人承包商 我们为国防部工作\r\n\r\n282\r\n00:45:48,380 --> 00:45:50,960\r\n为他们提供异常科学的建议\r\n\r\n283\r\n00:45:51,500 --> 00:45:52,340\r\n\"异常科学\"\r\n\r\n284\r\n00:45:53,010 --> 00:45:54,840\r\n外星科技\r\n\r\n285\r\n00:46:01,930 --> 00:46:04,020\r\n比如说\r\n\r\n286\r\n00:46:04,180 --> 00:46:05,730\r\n超人飞船\r\n\r\n287\r\n00:46:14,230 --> 00:46:16,950\r\n昨晚有八个人没离开实验室\r\n\r\n288\r\n00:46:17,320 --> 00:46:20,370\r\n清洁工 警卫和几名研究科学家\r\n\r\n289\r\n00:46:20,820 --> 00:46:21,740\r\n他们被绑架了\r\n\r\n290\r\n00:46:23,120 --> 00:46:24,120\r\n你确定\r\n\r\n291\r\n00:46:24,290 --> 00:46:26,830\r\n有位目击证人 他逃过一劫\r\n\r\n292\r\n00:46:27,000 --> 00:46:30,130\r\n他正在隔离区协助绘制嫌犯肖像画\r\n\r\n293\r\n00:46:33,130 --> 00:46:37,470\r\n知道那会是谁或是什么东西吗\r\n\r\n294\r\n00:46:57,610 --> 00:46:59,660\r\n母盒在这里不安全\r\n\r\n295\r\n00:47:02,160 --> 00:47:03,620\r\n维克多\r\n\r\n296\r\n00:47:03,830 --> 00:47:06,080\r\n他们闯进实验室找它\r\n\r\n297\r\n00:47:06,250 --> 00:47:10,670\r\n有些人被某种怪物抓走\r\n\r\n298\r\n00:47:13,420 --> 00:47:15,380\r\n你对怪物很了解…\r\n\r\n299\r\n00:47:16,000 --> 00:47:17,420\r\n对吧\r\n\r\n300\r\n00:47:23,800 --> 00:47:25,930\r\n尤其是怎么制造它们\r\n\r\n301\r\n00:50:26,530 --> 00:50:30,160\r\n求救…求救…\r\n\r\n302\r\n00:50:30,950 --> 00:50:34,040\r\n船身受损 我快沉下去了\r\n\r\n303\r\n00:50:40,380 --> 00:50:42,340\r\n求救\r\n\r\n304\r\n00:50:42,540 --> 00:50:44,590\r\n有人吗\r\n\r\n305\r\n00:51:24,920 --> 00:51:26,260\r\n威士忌\r\n\r\n306\r\n00:51:35,350 --> 00:51:37,930\r\n下次叫他要敬畏暴风雨\r\n\r\n307\r\n00:51:47,280 --> 00:51:48,110\r\n他请客\r\n\r\n308\r\n00:54:16,340 --> 00:54:18,430\r\n本应是国王的男人\r\n\r\n309\r\n00:54:18,590 --> 00:54:21,760\r\n人类父亲和海洋女王的儿子\r\n\r\n310\r\n00:54:22,640 --> 00:54:24,390\r\n我浪费了多少时间\r\n\r\n311\r\n00:54:24,560 --> 00:54:27,600\r\n试图遵守我向你母亲做的承诺\r\n\r\n312\r\n00:54:29,730 --> 00:54:30,940\r\n说完了吗 老头\r\n\r\n313\r\n00:54:31,110 --> 00:54:33,570\r\n虽然你居无定所\r\n\r\n314\r\n00:54:33,730 --> 00:54:36,490\r\n但还是一直回来这里\r\n\r\n315\r\n00:54:38,450 --> 00:54:40,410\r\n我喜欢这里 很安静\r\n\r\n316\r\n00:54:40,570 --> 00:54:42,370\r\n这是你继承的王国\r\n\r\n317\r\n00:54:42,530 --> 00:54:44,660\r\n你应当是亚特兰蒂斯国王\r\n\r\n318\r\n00:54:45,790 --> 00:54:46,910\r\n我们的同胞受苦受难\r\n\r\n319\r\n00:54:47,080 --> 00:54:49,040\r\n你的同胞\r\n\r\n320\r\n00:54:49,210 --> 00:54:52,750\r\n一个卑鄙残忍 迷信无知的种族\r\n\r\n321\r\n00:54:52,920 --> 00:54:54,130\r\n地表有什么不同吗\r\n\r\n322\r\n00:54:55,210 --> 00:54:57,260\r\n没人说我是地表之王\r\n\r\n323\r\n00:54:58,340 --> 00:55:00,050\r\n你想要什么 维科\r\n\r\n324\r\n00:55:00,640 --> 00:55:03,510\r\n要塞附近的守卫不断消失不见\r\n\r\n325\r\n00:55:03,680 --> 00:55:05,100\r\n来自天上的掠夺者\r\n\r\n326\r\n00:55:05,270 --> 00:55:06,480\r\n去跟欧姆国王说啊\r\n\r\n327\r\n00:55:06,640 --> 00:55:08,060\r\n-你弟弟 -表弟\r\n\r\n328\r\n00:55:08,230 --> 00:55:11,230\r\n他想煽动和陆地人类的战争\r\n\r\n329\r\n00:55:11,610 --> 00:55:13,020\r\n他说谎\r\n\r\n330\r\n00:55:14,480 --> 00:55:18,490\r\n掠夺者来自黑暗之境 他们在寻找它\r\n\r\n331\r\n00:55:19,320 --> 00:55:22,660\r\n我们守护的母盒并不安全\r\n\r\n332\r\n00:55:23,660 --> 00:55:27,660\r\n前往亚特兰蒂斯要塞 保护母盒\r\n\r\n333\r\n00:55:28,660 --> 00:55:29,870\r\n时候到了\r\n\r\n334\r\n00:55:32,000 --> 00:55:34,000\r\n把你母亲的三叉戟拿去\r\n\r\n335\r\n00:55:45,180 --> 00:55:48,850\r\n你不能永远弃世界而不顾 亚瑟\r\n\r\n336\r\n00:55:49,770 --> 00:55:52,860\r\n不管是地表或海底\r\n\r\n337\r\n00:56:21,970 --> 00:56:23,550\r\n狄萨德\r\n\r\n338\r\n00:56:23,720 --> 00:56:27,680\r\n狄萨德 我呼叫你\r\n\r\n339\r\n00:56:36,730 --> 00:56:40,900\r\n荒原狼 你开始征服这世界了吗\r\n\r\n340\r\n00:56:42,030 --> 00:56:44,410\r\n这个世界是分裂的\r\n\r\n341\r\n00:56:45,200 --> 00:56:46,700\r\n他们是原始物种\r\n\r\n342\r\n00:56:46,870 --> 00:56:49,200\r\n未进化并与彼此战争\r\n\r\n343\r\n00:56:49,370 --> 00:56:52,210\r\n歧见太深无法团结一心\r\n\r\n344\r\n00:56:52,370 --> 00:56:56,630\r\n必须像其他的世界一样 剥夺他们的自由意志\r\n\r\n345\r\n00:56:56,790 --> 00:57:00,920\r\n并以服膺他的光荣信念…\r\n\r\n346\r\n00:57:01,090 --> 00:57:02,800\r\n获得赦免\r\n\r\n347\r\n00:57:03,590 --> 00:57:05,510\r\n母盒呢\r\n\r\n348\r\n00:57:06,090 --> 00:57:09,010\r\n我找到其中一个\r\n\r\n349\r\n00:57:09,180 --> 00:57:11,640\r\n苏醒后呼唤我的那一个\r\n\r\n350\r\n00:57:11,810 --> 00:57:13,310\r\n另外两个仍然沉睡\r\n\r\n351\r\n00:57:13,480 --> 00:57:17,310\r\n但天启魔感应到它们\r\n\r\n352\r\n00:57:17,480 --> 00:57:18,940\r\n它们飞来飞去\r\n\r\n353\r\n00:57:19,110 --> 00:57:22,690\r\n到处搜索 并抓走带有母盒气味的囚犯\r\n\r\n354\r\n00:57:22,860 --> 00:57:27,780\r\n我则以他之名创建一座要塞\r\n\r\n355\r\n00:57:28,330 --> 00:57:30,200\r\n很好\r\n\r\n356\r\n00:57:31,290 --> 00:57:33,960\r\n强大的荒原狼\r\n\r\n357\r\n00:57:35,460 --> 00:57:39,840\r\n你本来可以与伟大的他平起平坐\r\n\r\n358\r\n00:57:41,760 --> 00:57:46,340\r\n但却因自大而被放逐\r\n\r\n359\r\n00:57:47,510 --> 00:57:48,890\r\n狄萨德\r\n\r\n360\r\n00:57:49,970 --> 00:57:52,350\r\n我跪倒在你面前\r\n\r\n361\r\n00:57:53,100 --> 00:57:54,890\r\n让我向他求情\r\n\r\n362\r\n00:57:55,060 --> 00:57:56,980\r\n当我以他之名夺下这世界\r\n\r\n363\r\n00:57:57,150 --> 00:57:59,940\r\n能否请他让我回家\r\n\r\n364\r\n00:58:00,110 --> 00:58:02,530\r\n你背叛了他\r\n\r\n365\r\n00:58:03,940 --> 00:58:05,450\r\n你自己的家人\r\n\r\n366\r\n00:58:05,610 --> 00:58:07,820\r\n我看到我犯的错误\r\n\r\n367\r\n00:58:07,990 --> 00:58:10,580\r\n我屠杀企图争夺他王位的人\r\n\r\n368\r\n00:58:10,740 --> 00:58:15,870\r\n你还欠他五万个世界\r\n\r\n369\r\n00:58:16,960 --> 00:58:18,790\r\n当你还清了债\r\n\r\n370\r\n00:58:19,250 --> 00:58:21,500\r\n他就会聆听你的恳求\r\n\r\n371\r\n00:58:24,420 --> 00:58:27,470\r\n母盒将被寻获并合而为一\r\n\r\n372\r\n00:58:28,430 --> 00:58:30,550\r\n这里没有保护者\r\n\r\n373\r\n00:58:30,720 --> 00:58:34,140\r\n没有绿光战警 没有氪星人\r\n\r\n374\r\n00:58:34,310 --> 00:58:37,940\r\n这世界将会像其他的一样沦陷\r\n\r\n375\r\n00:58:38,980 --> 00:58:40,730\r\n为了达克赛德\r\n\r\n376\r\n00:58:43,940 --> 00:58:46,150\r\n为了达克赛德\r\n\r\n377\r\n00:59:07,420 --> 00:59:11,010\r\n我花了几百万元安装保全系统\r\n\r\n378\r\n00:59:11,180 --> 00:59:12,470\r\n钱花得很值得\r\n\r\n379\r\n00:59:12,970 --> 00:59:15,350\r\n我几乎花了一分钟才解除\r\n\r\n380\r\n00:59:16,890 --> 00:59:18,230\r\n你好\r\n\r\n381\r\n00:59:20,060 --> 00:59:20,900\r\n新玩具\r\n\r\n382\r\n00:59:21,810 --> 00:59:23,980\r\n原型军队运输机\r\n\r\n383\r\n00:59:26,280 --> 00:59:29,320\r\n我曾相识的一个人会很想开开看\r\n\r\n384\r\n00:59:29,950 --> 00:59:32,910\r\n韦恩航天最顶尖的人才 都无法让它飞起来\r\n\r\n385\r\n00:59:33,990 --> 00:59:35,580\r\n但是你能\r\n\r\n386\r\n00:59:35,740 --> 00:59:37,410\r\n我别无选择\r\n\r\n387\r\n00:59:37,580 --> 00:59:40,330\r\n我需要更远的航程和更大的货舱\r\n\r\n388\r\n00:59:40,500 --> 00:59:42,080\r\n我认为一场攻击即将来袭\r\n\r\n389\r\n00:59:42,500 --> 00:59:44,250\r\n你错了 布鲁斯\r\n\r\n390\r\n00:59:45,050 --> 00:59:47,010\r\n它已经来袭了\r\n\r\n391\r\n00:59:47,800 --> 00:59:52,340\r\n据我所知 他们来自另一个宇宙\r\n\r\n392\r\n00:59:52,510 --> 00:59:54,850\r\n为一个黑暗力量效忠\r\n\r\n393\r\n00:59:55,010 --> 00:59:56,720\r\n一个古老的力量\r\n\r\n394\r\n00:59:56,890 --> 00:59:58,310\r\n他们想要什么\r\n\r\n395\r\n00:59:59,140 --> 01:00:01,480\r\n入侵地球 征服世界\r\n\r\n396\r\n01:00:02,600 --> 01:00:06,860\r\n他们很久以前曾经来过\r\n\r\n397\r\n01:00:11,990 --> 01:00:14,410\r\n一支庞大的舰队出现在天空\r\n\r\n398\r\n01:00:14,580 --> 01:00:17,200\r\n消灭所有胆敢反抗的势力\r\n\r\n399\r\n01:00:17,370 --> 01:00:21,460\r\n入侵者的首领是达克赛德\r\n\r\n400\r\n01:00:21,620 --> 01:00:25,880\r\n这名字在每个宇宙都受到诅咒和畏惧\r\n\r\n401\r\n01:00:26,750 --> 01:00:30,590\r\n地球的守护者 和达克赛德展开一场大战\r\n\r\n402\r\n01:00:30,760 --> 01:00:33,260\r\n旧神族 人类\r\n\r\n403\r\n01:00:33,840 --> 01:00:36,970\r\n被迫迁至海底之前的亚特兰蒂斯族\r\n\r\n404\r\n01:00:39,310 --> 01:00:43,270\r\n遭背叛及被困禁之前的亚马逊族\r\n\r\n405\r\n01:00:43,440 --> 01:00:45,810\r\n以及来自星空的守护者\r\n\r\n406\r\n01:00:45,980 --> 01:00:49,570\r\n他们的历史教导他们 不能相信彼此\r\n\r\n407\r\n01:00:49,740 --> 01:00:51,900\r\n不能奢望创建联盟\r\n\r\n408\r\n01:00:52,070 --> 01:00:54,070\r\n而是各自奋战\r\n\r\n409\r\n01:01:43,120 --> 01:01:45,830\r\n当达克赛德在地球发动战争\r\n\r\n410\r\n01:01:46,000 --> 01:01:47,420\r\n他发现一个秘密\r\n\r\n411\r\n01:01:47,580 --> 01:01:51,340\r\n隐藏在无垠太空的一股力量\r\n\r\n412\r\n01:01:51,510 --> 01:01:53,010\r\n他召唤暗黑秘士\r\n\r\n413\r\n01:01:53,170 --> 01:01:56,300\r\n他们崇拜并控制三个物体\r\n\r\n414\r\n01:01:56,470 --> 01:01:57,510\r\n母盒\r\n\r\n415\r\n01:01:57,850 --> 01:01:59,260\r\n等等\r\n\r\n416\r\n01:01:59,430 --> 01:02:00,430\r\n\"母盒\"\r\n\r\n417\r\n01:02:00,600 --> 01:02:03,140\r\n坚不可摧 活生生的机器\r\n\r\n418\r\n01:02:03,850 --> 01:02:08,770\r\n使用先进无比的科技打造 看起来简直就像巫术\r\n\r\n419\r\n01:02:08,940 --> 01:02:11,570\r\n若要征服世界 三个母盒必须同步化\r\n\r\n420\r\n01:02:11,730 --> 01:02:14,990\r\n合而为一后形成三位一体\r\n\r\n421\r\n01:02:15,150 --> 01:02:18,200\r\n三位一体以烈火净化星球\r\n\r\n422\r\n01:02:18,370 --> 01:02:21,950\r\n将它转换成另一个敌人世界\r\n\r\n423\r\n01:02:22,120 --> 01:02:25,620\r\n幸存者都成为达克赛德的仆役\r\n\r\n424\r\n01:02:25,790 --> 01:02:28,710\r\n活着 但毫无生机\r\n\r\n425\r\n01:02:28,920 --> 01:02:30,250\r\n天启魔\r\n\r\n426\r\n01:02:31,460 --> 01:02:33,550\r\n亚马逊女战士\r\n\r\n427\r\n01:02:39,430 --> 01:02:41,140\r\n冲啊\r\n\r\n428\r\n01:03:10,460 --> 01:03:12,960\r\n但在三位一体同步化之前\r\n\r\n429\r\n01:03:13,130 --> 01:03:16,510\r\n地球的守护者组成统一阵线展开反击\r\n\r\n430\r\n01:03:17,090 --> 01:03:20,090\r\n亚马逊人和亚特兰蒂斯人并肩作战\r\n\r\n431\r\n01:03:20,260 --> 01:03:24,770\r\n宙斯及他儿子阿瑞斯 和来自星空的守护者联手出击\r\n\r\n432\r\n01:03:25,770 --> 01:03:30,440\r\n一群黄金时代英雄为了捍卫地球 同心协力捍卫了地球的生命\r\n\r\n433\r\n01:05:27,100 --> 01:05:29,890\r\n他们做到其他世界做不到的事\r\n\r\n434\r\n01:05:30,060 --> 01:05:32,230\r\n将敌人送回星空\r\n\r\n435\r\n01:05:34,770 --> 01:05:38,020\r\n三个母盒从未合而为一\r\n\r\n436\r\n01:05:38,610 --> 01:05:41,780\r\n也从未形成三位一体\r\n\r\n437\r\n01:05:41,940 --> 01:05:44,150\r\n但在敌人撤退之时\r\n\r\n438\r\n01:05:44,780 --> 01:05:47,910\r\n母盒被留在地球\r\n\r\n439\r\n01:05:48,080 --> 01:05:51,790\r\n它们的力量变弱 就像失去主人的恶犬\r\n\r\n440\r\n01:05:53,620 --> 01:05:55,210\r\n开始沉睡\r\n\r\n441\r\n01:05:55,370 --> 01:05:57,840\r\n等待他们的回归\r\n\r\n442\r\n01:05:58,000 --> 01:06:00,340\r\n母盒从敌人的视野中消失\r\n\r\n443\r\n01:06:00,500 --> 01:06:03,670\r\n隐匿在一兆个世界之中\r\n\r\n444\r\n01:06:20,570 --> 01:06:23,740\r\n地球的守护者立下誓言\r\n\r\n445\r\n01:06:24,110 --> 01:06:27,360\r\n人类 亚特兰蒂斯族及亚马逊族\r\n\r\n446\r\n01:06:27,530 --> 01:06:31,410\r\n根据他们文化的惯例及仪式\r\n\r\n447\r\n01:06:31,580 --> 01:06:35,080\r\n各自封存并守卫 其中一个沉睡的母盒\r\n\r\n448\r\n01:06:35,250 --> 01:06:39,710\r\n以防母盒日后再次苏醒 向天启星发出信号\r\n\r\n449\r\n01:06:39,880 --> 01:06:41,630\r\n呼唤敌人回来并企图征服\r\n\r\n450\r\n01:06:41,800 --> 01:06:45,590\r\n达克赛德唯一落败而逃的世界\r\n\r\n451\r\n01:08:01,540 --> 01:08:04,210\r\n有什么唤醒了我的族人守卫的母盒\r\n\r\n452\r\n01:08:04,920 --> 01:08:06,960\r\n它向暗黑之处呼唤\r\n\r\n453\r\n01:08:07,130 --> 01:08:09,550\r\n引来达克赛德手下的一名征服者\r\n\r\n454\r\n01:08:10,470 --> 01:08:12,340\r\n敌人已经来袭\r\n\r\n455\r\n01:08:12,850 --> 01:08:14,510\r\n如果是真的 他在哪里\r\n\r\n456\r\n01:08:14,680 --> 01:08:16,770\r\n他会到处寻找另外两个母盒\r\n\r\n457\r\n01:08:16,930 --> 01:08:19,890\r\n得到三个母盒并准备好之前 他仍在藏匿\r\n\r\n458\r\n01:08:20,060 --> 01:08:23,900\r\n我们必须准备迎敌 你 我和其他人\r\n\r\n459\r\n01:08:24,650 --> 01:08:27,480\r\n他们说英雄时代不会再来临\r\n\r\n460\r\n01:08:27,650 --> 01:08:28,900\r\n会来的\r\n\r\n461\r\n01:08:29,240 --> 01:08:30,950\r\n必须的\r\n\r\n462\r\n01:08:32,700 --> 01:08:36,200\r\n其他人 他们在哪里\r\n\r\n463\r\n01:08:41,290 --> 01:08:46,550\r\n第三章\r\n\r\n464\r\n01:08:42,930 --> 01:08:46,550\r\n挚爱的母亲，挚爱的儿子\r\n\r\n465\r\n01:08:48,260 --> 01:08:50,130\r\n冷藏配送\r\n\r\n466\r\n01:08:50,130 --> 01:08:53,840\r\n中城\r\n\r\n467\r\n01:08:53,840 --> 01:08:57,470\r\n前方减速\r\n\r\n468\r\n01:08:58,220 --> 01:09:00,890\r\n我迟到了吗 我大迟到了\r\n\r\n469\r\n01:09:00,260 --> 01:09:02,060\r\n中城狗狗托儿所\r\n\r\n470\r\n01:09:02,230 --> 01:09:03,350\r\n你好啊 小家伙\r\n\r\n471\r\n01:09:04,190 --> 01:09:05,020\r\n不行\r\n\r\n472\r\n01:09:06,110 --> 01:09:07,690\r\n好吧 晚点见\r\n\r\n473\r\n01:09:08,570 --> 01:09:10,490\r\n真是拍谢\r\n\r\n474\r\n01:09:10,900 --> 01:09:12,150\r\n我迟到了\r\n\r\n475\r\n01:09:17,660 --> 01:09:18,700\r\n-你是… -我…\r\n\r\n476\r\n01:09:18,870 --> 01:09:21,120\r\n抱歉我大迟到了 不是故意的\r\n\r\n477\r\n01:09:21,290 --> 01:09:22,790\r\n我是我 我来了 很抱歉迟到了\r\n\r\n478\r\n01:09:22,960 --> 01:09:25,130\r\n因为公车没来 后来来了\r\n\r\n479\r\n01:09:25,290 --> 01:09:27,590\r\n不过有个阿婆一直在找硬币\r\n\r\n480\r\n01:09:27,750 --> 01:09:28,880\r\n五分 一分 五分 一分\r\n\r\n481\r\n01:09:29,050 --> 01:09:30,800\r\n真是够了 让阿婆上车吧\r\n\r\n482\r\n01:09:30,960 --> 01:09:31,970\r\n她都107岁了\r\n\r\n483\r\n01:09:32,130 --> 01:09:33,800\r\n不会再活多久了\r\n\r\n484\r\n01:09:33,970 --> 01:09:35,010\r\n履历\r\n\r\n485\r\n01:09:35,640 --> 01:09:36,470\r\n履历\r\n\r\n486\r\n01:09:39,720 --> 01:09:40,810\r\n拜托\r\n\r\n487\r\n01:09:44,140 --> 01:09:45,230\r\n拜托\r\n\r\n488\r\n01:09:45,400 --> 01:09:46,940\r\n那是法文来着\r\n\r\n489\r\n01:09:47,110 --> 01:09:50,150\r\n\"履历\"是过去分词…\r\n\r\n490\r\n01:09:55,990 --> 01:09:57,070\r\n这可不妙\r\n\r\n491\r\n01:09:57,530 --> 01:10:00,740\r\n我的口袋有什么 \"有只吃纸的怪物\"\r\n\r\n492\r\n01:10:09,630 --> 01:10:12,710\r\n拜托 我们应该是朋友啊\r\n\r\n493\r\n01:10:19,300 --> 01:10:20,310\r\n好了\r\n\r\n494\r\n01:10:29,310 --> 01:10:31,730\r\n中城大学 我念刑事司法系\r\n\r\n495\r\n01:10:31,900 --> 01:10:34,150\r\n你说你有遛狗的经验\r\n\r\n496\r\n01:13:14,610 --> 01:13:16,650\r\n天啊 希望大家都没事\r\n\r\n497\r\n01:13:16,820 --> 01:13:21,530\r\n瞧 照顾狗狗遇到事情 我一定会随身携带肉类零食\r\n\r\n498\r\n01:13:21,700 --> 01:13:22,950\r\n能让狗狗安静下来\r\n\r\n499\r\n01:13:23,110 --> 01:13:24,990\r\n你永远不知道会发生什么事\r\n\r\n500\r\n01:13:25,160 --> 01:13:26,870\r\n我是说 天啊\r\n\r\n501\r\n01:13:27,030 --> 01:13:29,580\r\n是不是星期一开工吗\r\n\r\n502\r\n01:14:07,910 --> 01:14:10,580\r\n你一定靠近过母盒\r\n\r\n503\r\n01:14:11,790 --> 01:14:13,790\r\n身上有它的气味\r\n\r\n504\r\n01:14:14,370 --> 01:14:15,620\r\n它在哪里\r\n\r\n505\r\n01:14:16,040 --> 01:14:18,920\r\n亚特兰蒂斯族的儿女绝不会告诉你\r\n\r\n506\r\n01:14:34,520 --> 01:14:37,350\r\n我们的族人看守了母盒数千年\r\n\r\n507\r\n01:14:43,530 --> 01:14:46,160\r\n我不会背叛自己的族人\r\n\r\n508\r\n01:14:57,710 --> 01:15:00,210\r\n你已经背叛了\r\n\r\n509\r\n01:16:00,560 --> 01:16:02,770\r\n这是在地球最深的海沟拍到的\r\n\r\n510\r\n01:16:03,360 --> 01:16:05,440\r\n他一定是亚特兰蒂斯人\r\n\r\n511\r\n01:16:05,610 --> 01:16:06,740\r\n能够呼吸海水\r\n\r\n512\r\n01:16:06,900 --> 01:16:08,570\r\n我跟他说话时他呼吸空气\r\n\r\n513\r\n01:16:08,740 --> 01:16:10,530\r\n那他就是混血儿\r\n\r\n514\r\n01:16:10,700 --> 01:16:12,570\r\n他说他会和我们一起作战\r\n\r\n515\r\n01:16:12,740 --> 01:16:14,080\r\n或多或少吧\r\n\r\n516\r\n01:16:15,450 --> 01:16:17,540\r\n或多还是或少\r\n\r\n517\r\n01:16:17,960 --> 01:16:18,960\r\n大概是或少吧\r\n\r\n518\r\n01:16:19,120 --> 01:16:20,920\r\n-他说不 -没错\r\n\r\n519\r\n01:16:21,670 --> 01:16:23,090\r\n亚特兰蒂斯人很难搞\r\n\r\n520\r\n01:16:24,000 --> 01:16:26,760\r\n我的族人曾和他们打仗\r\n\r\n521\r\n01:16:27,880 --> 01:16:29,970\r\n我不确定我们能相信他\r\n\r\n522\r\n01:16:30,130 --> 01:16:31,180\r\n戴安娜 如果我们要合作\r\n\r\n523\r\n01:16:31,340 --> 01:16:33,680\r\n你就得打开心房 接受我们不能…\r\n\r\n524\r\n01:16:33,850 --> 01:16:34,720\r\n你知道的\r\n\r\n525\r\n01:16:34,890 --> 01:16:36,560\r\n-抱歉 没关系 -对不起 我的错\r\n\r\n526\r\n01:16:36,720 --> 01:16:37,770\r\n没关系\r\n\r\n527\r\n01:16:37,930 --> 01:16:39,180\r\n-让我们… -难免的\r\n\r\n528\r\n01:16:39,350 --> 01:16:40,230\r\n所以…\r\n\r\n529\r\n01:16:40,390 --> 01:16:42,440\r\n这是第三个人\r\n\r\n530\r\n01:16:42,600 --> 01:16:45,020\r\n消失了1/30秒\r\n\r\n531\r\n01:16:45,190 --> 01:16:46,690\r\n一格的影片 看到吗\r\n\r\n532\r\n01:16:46,860 --> 01:16:49,490\r\n中城的巴里·艾伦\r\n\r\n533\r\n01:16:49,650 --> 01:16:50,490\r\n你去找他\r\n\r\n534\r\n01:16:50,650 --> 01:16:52,360\r\n我去找第四个人\r\n\r\n535\r\n01:16:52,530 --> 01:16:55,660\r\n有机与生化机械电子身体器官\r\n\r\n536\r\n01:16:58,200 --> 01:17:00,210\r\n他是个钢骨生化人\r\n\r\n537\r\n01:17:18,350 --> 01:17:19,180\r\n斯通\r\n\r\n538\r\n01:17:19,350 --> 01:17:21,310\r\n-预备 -就位\r\n\r\n539\r\n01:17:22,350 --> 01:17:24,770\r\n大声尖叫\r\n\r\n540\r\n01:17:36,830 --> 01:17:37,830\r\n3\r\n\r\n541\r\n01:17:38,200 --> 01:17:39,750\r\n80\r\n\r\n542\r\n01:17:40,830 --> 01:17:42,920\r\n预备…上吧\r\n\r\n543\r\n01:17:56,180 --> 01:17:58,430\r\n你儿子也许是美式足球校队队长\r\n\r\n544\r\n01:17:58,600 --> 01:18:01,600\r\n也是个天才 斯通太太\r\n\r\n545\r\n01:18:01,770 --> 01:18:03,850\r\n斯通博士\r\n\r\n546\r\n01:18:06,400 --> 01:18:08,400\r\n但不代表他能骇入校方系统\r\n\r\n547\r\n01:18:08,570 --> 01:18:10,400\r\n窜改他同学的成绩\r\n\r\n548\r\n01:18:11,360 --> 01:18:14,700\r\n莎拉一家人今年失去了房子\r\n\r\n549\r\n01:18:15,280 --> 01:18:17,700\r\n那孩子怎么可能及格\r\n\r\n550\r\n01:18:19,280 --> 01:18:22,330\r\n维克多是出于好心才会帮助她\r\n\r\n551\r\n01:18:22,500 --> 01:18:24,540\r\n你又做了什么来帮助她\r\n\r\n552\r\n01:18:39,470 --> 01:18:42,400\r\n哥谭市 威斯康星州\r\n\r\n553\r\n01:19:48,670 --> 01:19:51,590\r\n-你爸… -妈 别说了\r\n\r\n554\r\n01:19:53,170 --> 01:19:55,920\r\n他得在实验室加班\r\n\r\n555\r\n01:19:56,090 --> 01:19:59,130\r\n他天天都加班\r\n\r\n556\r\n01:20:01,720 --> 01:20:02,720\r\n他很想来的\r\n\r\n557\r\n01:20:03,260 --> 01:20:04,890\r\n你老是这么说\r\n\r\n558\r\n01:20:05,350 --> 01:20:06,930\r\n妈 别再替他找借口了\r\n\r\n559\r\n01:20:07,100 --> 01:20:10,060\r\n你跟他一样忙 但还是会挪出时间\r\n\r\n560\r\n01:20:10,600 --> 01:20:13,190\r\n他只是不会表达 但是…\r\n\r\n561\r\n01:20:13,860 --> 01:20:15,690\r\n我知道他以你为傲\r\n\r\n562\r\n01:20:16,240 --> 01:20:18,200\r\n我们都是 维克多\r\n\r\n563\r\n01:20:22,200 --> 01:20:25,290\r\n以你现在的成就\r\n\r\n564\r\n01:20:25,450 --> 01:20:28,210\r\n我等不及想看到未来的你\r\n\r\n565\r\n01:20:33,540 --> 01:20:35,250\r\n斯通博士 很遗憾\r\n\r\n566\r\n01:20:36,340 --> 01:20:38,130\r\n你太太没能活下来\r\n\r\n567\r\n01:20:39,800 --> 01:20:41,890\r\n你儿子恐怕也不会\r\n\r\n568\r\n01:20:56,070 --> 01:20:57,730\r\n我不会让你死\r\n\r\n569\r\n01:21:00,700 --> 01:21:02,240\r\n我绝不容许\r\n\r\n570\r\n01:21:08,540 --> 01:21:10,290\r\n我绝不容许\r\n\r\n571\r\n01:21:13,750 --> 01:21:14,750\r\n维克多\r\n\r\n572\r\n01:21:16,130 --> 01:21:18,880\r\n维克多 你不必窝在这里\r\n\r\n573\r\n01:21:19,720 --> 01:21:22,470\r\n你还有大好的人生\r\n\r\n574\r\n01:21:23,140 --> 01:21:26,510\r\n你妈会希望你拥有那样的人生\r\n\r\n575\r\n01:21:29,060 --> 01:21:30,600\r\n如果你当时在的话…\r\n\r\n576\r\n01:21:31,980 --> 01:21:33,850\r\n妈就还会活着\r\n\r\n577\r\n01:21:36,690 --> 01:21:38,610\r\n好吧 听着\r\n\r\n578\r\n01:21:39,990 --> 01:21:44,030\r\n你不必给我第二次机会 但是要给自己再一次机会\r\n\r\n579\r\n01:21:46,070 --> 01:21:49,120\r\n如果你不想看着我\r\n\r\n580\r\n01:21:50,830 --> 01:21:52,460\r\n那就试着听我说\r\n\r\n581\r\n01:22:21,190 --> 01:22:23,200\r\n你现在的能力 维克多\r\n\r\n582\r\n01:22:24,030 --> 01:22:27,570\r\n超强力量只是冰山一角\r\n\r\n583\r\n01:22:27,740 --> 01:22:30,290\r\n你拥有无穷潜力\r\n\r\n584\r\n01:23:00,360 --> 01:23:05,240\r\n在一和零的数位世界 你是绝对的霸主\r\n\r\n585\r\n01:23:05,400 --> 01:23:07,990\r\n没有防火墙能阻止你\r\n\r\n586\r\n01:23:08,160 --> 01:23:10,450\r\n没有你破解不了的密码\r\n\r\n587\r\n01:23:10,620 --> 01:23:13,370\r\n一切都任你摆布\r\n\r\n588\r\n01:23:13,540 --> 01:23:15,910\r\n从电厂电网到电信设备\r\n\r\n589\r\n01:23:16,080 --> 01:23:18,130\r\n每个人的生活都受到\r\n\r\n590\r\n01:23:18,290 --> 01:23:21,250\r\n复杂的数位网络操控支配\r\n\r\n591\r\n01:23:21,420 --> 01:23:25,510\r\n你却能轻而易举掌控它\r\n\r\n592\r\n01:23:35,850 --> 01:23:40,360\r\n全世界的命运掌握在你手中\r\n\r\n593\r\n01:23:48,160 --> 01:23:53,200\r\n你只要动个念头 就能发射所有的核弹\r\n\r\n594\r\n01:24:04,000 --> 01:24:07,170\r\n全球复杂的金融体系\r\n\r\n595\r\n01:24:07,340 --> 01:24:11,800\r\n对你来说就像玩具一样能轻易玩弄\r\n\r\n596\r\n01:24:45,840 --> 01:24:49,590\r\n问题是…不 挑战是…\r\n\r\n597\r\n01:24:50,470 --> 01:24:52,930\r\n不去这么做\r\n\r\n598\r\n01:24:53,800 --> 01:24:55,680\r\n不去滥用这能力\r\n\r\n599\r\n01:24:55,850 --> 01:24:57,850\r\n不去监视每个人\r\n\r\n600\r\n01:24:59,890 --> 01:25:02,190\r\n这个重责大任的沉重负担\r\n\r\n601\r\n01:25:02,350 --> 01:25:05,650\r\n将塑造你成为什么样的人\r\n\r\n602\r\n01:25:37,260 --> 01:25:38,350\r\n许个愿\r\n\r\n603\r\n01:25:39,600 --> 01:25:40,640\r\n再吹一次\r\n\r\n604\r\n01:25:41,600 --> 01:25:43,980\r\n很好 像外婆挥手问好\r\n\r\n605\r\n01:25:44,150 --> 01:25:45,310\r\n你好 外婆\r\n\r\n606\r\n01:26:38,670 --> 01:26:41,040\r\n余额不足\r\n\r\n607\r\n01:26:41,200 --> 01:26:44,960\r\n恭喜\r\n您赢得十万美元奖金\r\n\r\n608\r\n01:26:45,540 --> 01:26:46,710\r\n什么\r\n\r\n609\r\n01:26:48,710 --> 01:26:50,340\r\n天啊 天啊\r\n\r\n610\r\n01:26:51,590 --> 01:26:52,970\r\n我的天啊\r\n\r\n611\r\n01:26:53,130 --> 01:26:54,880\r\n天啊 天啊\r\n\r\n612\r\n01:27:00,220 --> 01:27:01,600\r\n维克多\r\n\r\n613\r\n01:27:03,230 --> 01:27:06,600\r\n这是我身为一名科学家 做出来的推断\r\n\r\n614\r\n01:27:07,770 --> 01:27:09,940\r\n也是我一直以来跟你说话的方式\r\n\r\n615\r\n01:27:10,650 --> 01:27:11,650\r\n现在…\r\n\r\n616\r\n01:27:14,030 --> 01:27:17,700\r\n让我说出内心话 不是身为一个科学家\r\n\r\n617\r\n01:27:18,240 --> 01:27:19,450\r\n而是身为一个父亲\r\n\r\n618\r\n01:27:34,050 --> 01:27:34,920\r\n喂\r\n\r\n619\r\n01:27:36,180 --> 01:27:37,720\r\n喂 你\r\n\r\n620\r\n01:27:53,690 --> 01:27:56,530\r\n因为你没有发挥潜力\r\n\r\n621\r\n01:27:57,200 --> 01:28:00,240\r\n一直在原地打转\r\n\r\n622\r\n01:28:00,410 --> 01:28:02,580\r\n你打三份没出路的工\r\n\r\n623\r\n01:28:02,740 --> 01:28:05,370\r\n还要打第四份工 你哪来的时间\r\n\r\n624\r\n01:28:05,540 --> 01:28:06,660\r\n我会挪出时间\r\n\r\n625\r\n01:28:06,830 --> 01:28:07,960\r\n-只要再打一份工 -巴里\r\n\r\n626\r\n01:28:08,120 --> 01:28:09,750\r\n-就能自己付学费 -你不能\r\n\r\n627\r\n01:28:09,920 --> 01:28:12,630\r\n-我说到做到 -别再折磨自己了\r\n\r\n628\r\n01:28:12,790 --> 01:28:14,460\r\n我不想再谈这件事\r\n\r\n629\r\n01:28:14,630 --> 01:28:15,710\r\n拜托 我们有十分钟\r\n\r\n630\r\n01:28:15,880 --> 01:28:16,800\r\n这全是为了付…\r\n\r\n631\r\n01:28:16,970 --> 01:28:18,760\r\n-刑事司法系的学费 -对啊\r\n\r\n632\r\n01:28:18,930 --> 01:28:19,930\r\n为了什么\r\n\r\n633\r\n01:28:20,090 --> 01:28:23,310\r\n那还用问 我正在跟我爸讲话\r\n\r\n634\r\n01:28:23,470 --> 01:28:26,270\r\n他因为杀死我妈坐牢 其实是被冤枉的\r\n\r\n635\r\n01:28:26,430 --> 01:28:28,390\r\n我怎么会对刑事司法感兴趣\r\n\r\n636\r\n01:28:28,560 --> 01:28:30,100\r\n我不记得了\r\n\r\n637\r\n01:28:30,270 --> 01:28:31,190\r\n真是的\r\n\r\n638\r\n01:28:31,360 --> 01:28:33,900\r\n我注定要选择走这条路 爸\r\n\r\n639\r\n01:28:34,900 --> 01:28:35,980\r\n把手给我 儿子\r\n\r\n640\r\n01:28:42,280 --> 01:28:44,830\r\n我要你听好 巴里\r\n\r\n641\r\n01:28:44,990 --> 01:28:48,500\r\n我要你听好 我是认真的\r\n\r\n642\r\n01:28:54,460 --> 01:28:56,340\r\n我要你放弃那一切\r\n\r\n643\r\n01:28:59,340 --> 01:29:02,390\r\n我也要你别再来看我\r\n\r\n644\r\n01:29:04,760 --> 01:29:07,770\r\n我拖累了你的人生\r\n\r\n645\r\n01:29:13,190 --> 01:29:14,310\r\n好吧\r\n\r\n646\r\n01:29:15,230 --> 01:29:18,360\r\n别再跟我这么说\r\n\r\n647\r\n01:29:18,780 --> 01:29:20,030\r\n求求你\r\n\r\n648\r\n01:29:20,200 --> 01:29:23,320\r\n你知道对我来说怎样才是最好吗\r\n\r\n649\r\n01:29:23,490 --> 01:29:28,290\r\n我儿子不白白浪费生命\r\n\r\n650\r\n01:29:29,710 --> 01:29:32,880\r\n你想做什么都行 你聪明绝顶\r\n\r\n651\r\n01:29:35,420 --> 01:29:38,210\r\n你是精英中的精英\r\n\r\n652\r\n01:29:40,050 --> 01:29:44,760\r\n我不能坐在这儿 看着你在中城盲目地奔走\r\n\r\n653\r\n01:29:44,930 --> 01:29:46,680\r\n就为了一个…\r\n\r\n654\r\n01:29:46,850 --> 01:29:50,020\r\n哪儿都不能去的老头子\r\n\r\n655\r\n01:29:50,180 --> 01:29:51,520\r\n-爸 并不是这样 -时间到了\r\n\r\n656\r\n01:29:51,690 --> 01:29:52,690\r\n并不是这样\r\n\r\n657\r\n01:29:52,850 --> 01:29:54,350\r\n走吧 艾伦 艾伦\r\n\r\n658\r\n01:29:54,520 --> 01:29:56,190\r\n我要你创造自己的未来\r\n\r\n659\r\n01:29:56,360 --> 01:29:58,030\r\n别活在过去 创造自己的未来\r\n\r\n660\r\n01:29:58,190 --> 01:29:59,820\r\n开门\r\n\r\n661\r\n01:29:59,990 --> 01:30:00,820\r\n棒呆了\r\n\r\n662\r\n01:30:04,990 --> 01:30:07,120\r\n\"别活在过去 创造自己的未来\"\r\n\r\n663\r\n01:30:07,280 --> 01:30:08,830\r\n可以了 开门\r\n\r\n664\r\n01:31:01,510 --> 01:31:04,170\r\n巴里·艾伦 我是布鲁斯·韦恩\r\n\r\n665\r\n01:31:05,010 --> 01:31:08,970\r\n你这么说似乎可以解释 为什么有个陌生人闯进我家\r\n\r\n666\r\n01:31:09,140 --> 01:31:11,930\r\n摸黑坐在我第二喜欢的椅子\r\n\r\n667\r\n01:31:14,020 --> 01:31:15,810\r\n请你解释一下\r\n\r\n668\r\n01:31:19,940 --> 01:31:22,650\r\n这家伙长得跟我一模一样\r\n\r\n669\r\n01:31:22,820 --> 01:31:25,530\r\n但绝对不是我\r\n\r\n670\r\n01:31:26,660 --> 01:31:28,530\r\n这个人…我不认识\r\n\r\n671\r\n01:31:28,700 --> 01:31:30,530\r\n披头散发的嬉皮\r\n\r\n672\r\n01:31:30,700 --> 01:31:33,450\r\n很帅的一个犹太青年\r\n\r\n673\r\n01:31:35,000 --> 01:31:36,960\r\n谁喝牛奶啊 我才不喝牛奶\r\n\r\n674\r\n01:31:37,750 --> 01:31:39,290\r\n我知道你有超能力\r\n\r\n675\r\n01:31:39,460 --> 01:31:41,300\r\n只是不知道是什么\r\n\r\n676\r\n01:31:41,710 --> 01:31:42,710\r\n我的专长包括\r\n\r\n677\r\n01:31:42,880 --> 01:31:45,630\r\n拉中提琴 网页设计\r\n\r\n678\r\n01:31:45,800 --> 01:31:48,590\r\n我也擅长手语 大猩猩手语\r\n\r\n679\r\n01:31:48,760 --> 01:31:52,100\r\n硅胶石英砂材料\r\n\r\n680\r\n01:31:52,510 --> 01:31:54,600\r\n耐磨耐热\r\n\r\n681\r\n01:31:54,770 --> 01:31:56,640\r\n是啊 我是冰舞竞技选手\r\n\r\n682\r\n01:31:56,810 --> 01:32:00,400\r\n这是用来避免 航天飞机重返大气层燃烧的材料\r\n\r\n683\r\n01:32:00,560 --> 01:32:03,070\r\n冰舞的竞争真的很激烈\r\n\r\n684\r\n01:32:04,440 --> 01:32:08,530\r\n我不知道你是谁 不管你找的是谁\r\n\r\n685\r\n01:32:08,700 --> 01:32:09,700\r\n都不是我\r\n\r\n686\r\n01:32:51,530 --> 01:32:53,120\r\n你是蝙蝠侠\r\n\r\n687\r\n01:32:53,530 --> 01:32:55,290\r\n所以你很快\r\n\r\n688\r\n01:32:56,580 --> 01:32:58,120\r\n这么说感觉太平凡了\r\n\r\n689\r\n01:32:58,290 --> 01:33:00,040\r\n我在组织一个团队\r\n\r\n690\r\n01:33:00,210 --> 01:33:02,290\r\n寻找拥有特殊能力的人\r\n\r\n691\r\n01:33:02,460 --> 01:33:03,960\r\n我相信敌人即将来袭\r\n\r\n692\r\n01:33:04,130 --> 01:33:06,210\r\n你不用多说 我参一脚\r\n\r\n693\r\n01:33:07,260 --> 01:33:08,340\r\n真的吗\r\n\r\n694\r\n01:33:08,720 --> 01:33:09,760\r\n就这么简单\r\n\r\n695\r\n01:33:09,930 --> 01:33:11,050\r\n是啊\r\n\r\n696\r\n01:33:13,010 --> 01:33:15,100\r\n我需要朋友\r\n\r\n697\r\n01:33:15,600 --> 01:33:18,560\r\n太好了\r\n\r\n698\r\n01:33:19,100 --> 01:33:20,850\r\n我能留着吗\r\n\r\n699\r\n01:33:21,480 --> 01:33:25,070\r\n那就像是一层三次元现实 似乎能够操控时空\r\n\r\n700\r\n01:33:25,230 --> 01:33:26,440\r\n我称之为神速力\r\n\r\n701\r\n01:33:26,610 --> 01:33:28,440\r\n害我燃烧大量的卡路里\r\n\r\n702\r\n01:33:28,610 --> 01:33:31,240\r\n所以我是零食的黑洞\r\n\r\n703\r\n01:33:31,410 --> 01:33:33,240\r\n我是\"零\"洞\r\n\r\n704\r\n01:33:34,120 --> 01:33:36,950\r\n这个特殊战斗团队有几个人\r\n\r\n705\r\n01:33:37,120 --> 01:33:39,040\r\n-三个 包括你 -三个\r\n\r\n706\r\n01:33:39,200 --> 01:33:41,080\r\n对抗什么\r\n\r\n707\r\n01:33:41,960 --> 01:33:43,420\r\n上飞机再告诉你\r\n\r\n708\r\n01:33:44,040 --> 01:33:45,250\r\n飞机\r\n\r\n709\r\n01:33:45,920 --> 01:33:47,670\r\n你的超能力是什么来着\r\n\r\n710\r\n01:33:47,840 --> 01:33:49,550\r\n我超有钱\r\n\r\n711\r\n01:34:12,650 --> 01:34:14,450\r\n普林斯小姐 让我来\r\n\r\n712\r\n01:34:14,620 --> 01:34:16,620\r\n没关系 我自己来\r\n\r\n713\r\n01:34:17,910 --> 01:34:19,290\r\n你想要喝吗\r\n\r\n714\r\n01:34:19,450 --> 01:34:20,750\r\n不 谢了\r\n\r\n715\r\n01:34:22,120 --> 01:34:24,120\r\n你得先倒水进去\r\n\r\n716\r\n01:34:24,830 --> 01:34:27,840\r\n-当然了 -才不会把茶叶烫熟\r\n\r\n717\r\n01:34:30,760 --> 01:34:32,300\r\n-很好 -太好了\r\n\r\n718\r\n01:34:32,470 --> 01:34:34,430\r\n茶叶应该够多了\r\n\r\n719\r\n01:34:34,590 --> 01:34:35,970\r\n好吧\r\n\r\n720\r\n01:34:37,100 --> 01:34:38,600\r\n你确定不来一杯\r\n\r\n721\r\n01:34:38,760 --> 01:34:42,020\r\n不 谢了 你得再让茶叶浸泡一下\r\n\r\n722\r\n01:34:42,770 --> 01:34:45,560\r\n我会的 一定会\r\n\r\n723\r\n01:34:46,980 --> 01:34:48,070\r\n你在打造什么\r\n\r\n724\r\n01:34:48,230 --> 01:34:49,570\r\n这是一只手套\r\n\r\n725\r\n01:34:50,150 --> 01:34:53,780\r\n布满高分子太阳能奈米电池\r\n\r\n726\r\n01:34:54,450 --> 01:34:56,160\r\n来 让我秀给你看\r\n\r\n727\r\n01:34:56,660 --> 01:34:59,660\r\n这是从氪星侦察舰上借来的\r\n\r\n728\r\n01:35:01,250 --> 01:35:02,700\r\n也许你应该…\r\n\r\n729\r\n01:35:02,870 --> 01:35:05,330\r\n-挪过去一点 谢谢 -没问题\r\n\r\n730\r\n01:35:12,880 --> 01:35:15,340\r\n现在看看效果如何\r\n\r\n731\r\n01:35:15,880 --> 01:35:17,260\r\n好了\r\n\r\n732\r\n01:35:17,930 --> 01:35:19,560\r\n还不错喔\r\n\r\n733\r\n01:35:19,720 --> 01:35:22,140\r\n捕捉并消散能量的手套\r\n\r\n734\r\n01:35:22,310 --> 01:35:23,810\r\n这是韦恩少爷的点子\r\n\r\n735\r\n01:35:24,100 --> 01:35:26,350\r\n也许你也应该打造一条套索\r\n\r\n736\r\n01:35:26,520 --> 01:35:28,270\r\n当然是黑色的罗\r\n\r\n737\r\n01:35:36,110 --> 01:35:39,070\r\n好吧 维克多斯通\r\n\r\n738\r\n01:35:39,150 --> 01:35:43,540\r\n搜寻维克多·斯通\r\n\r\n739\r\n01:35:55,340 --> 01:35:57,340\r\n有点不对劲\r\n\r\n740\r\n01:36:01,590 --> 01:36:03,270\r\n在这里见面 现在\r\n\r\n741\r\n01:36:09,150 --> 01:36:11,570\r\n看来你有个约会 普林斯小姐\r\n\r\n742\r\n01:37:08,620 --> 01:37:11,710\r\n你为什么找我 戴安娜\r\n\r\n743\r\n01:37:11,880 --> 01:37:13,130\r\n你知道我是谁\r\n\r\n744\r\n01:37:13,290 --> 01:37:15,630\r\n我知道的远远超乎你想像\r\n\r\n745\r\n01:37:15,800 --> 01:37:18,380\r\n那也许你已经知道我需要你的帮助\r\n\r\n746\r\n01:37:19,050 --> 01:37:20,050\r\n全世界都需要\r\n\r\n747\r\n01:37:21,430 --> 01:37:23,140\r\n去他的全世界\r\n\r\n748\r\n01:37:24,760 --> 01:37:27,140\r\n你很显然经历了很多\r\n\r\n749\r\n01:37:28,390 --> 01:37:30,890\r\n我完全无法想像\r\n\r\n750\r\n01:37:31,600 --> 01:37:34,980\r\n但不管你发生什么事 现在都拥有超能力\r\n\r\n751\r\n01:37:35,230 --> 01:37:36,940\r\n超能力\r\n\r\n752\r\n01:37:37,110 --> 01:37:39,280\r\n这看起来像是超能力吗\r\n\r\n753\r\n01:37:39,440 --> 01:37:40,610\r\n我们需要你 维克多\r\n\r\n754\r\n01:37:41,280 --> 01:37:42,870\r\n也许你也需要我们\r\n\r\n755\r\n01:37:43,030 --> 01:37:44,700\r\n我不需要任何人\r\n\r\n756\r\n01:37:46,910 --> 01:37:47,950\r\n不再需要了\r\n\r\n757\r\n01:37:48,120 --> 01:37:50,620\r\n我以前也一直这么告诉自己\r\n\r\n758\r\n01:37:57,460 --> 01:38:00,170\r\n我曾经失去一个深爱的人\r\n\r\n759\r\n01:38:03,050 --> 01:38:07,850\r\n把自己封闭起来\r\n\r\n760\r\n01:38:09,480 --> 01:38:12,190\r\n但我得学会再次敞开心房\r\n\r\n761\r\n01:38:14,900 --> 01:38:18,320\r\n老实说 我仍在努力中\r\n\r\n762\r\n01:38:18,480 --> 01:38:21,700\r\n既然你要求见我\r\n\r\n763\r\n01:38:22,570 --> 01:38:25,320\r\n你也在努力\r\n\r\n764\r\n01:38:52,100 --> 01:38:57,440\r\n挚爱的儿子\r\n维克多·斯通 1994-2015\r\n\r\n765\r\n01:38:54,850 --> 01:38:57,440\r\n挚爱的母亲\r\n爱莲诺·斯通 1973-2015\r\n\r\n766\r\n01:39:37,020 --> 01:39:40,690\r\n超人飞船上的金属样本被你说中了\r\n\r\n767\r\n01:39:40,860 --> 01:39:43,990\r\n我们用电子激光向它轰射X光\r\n\r\n768\r\n01:39:44,400 --> 01:39:45,860\r\n看看发生了什么事\r\n\r\n769\r\n01:39:54,870 --> 01:39:56,790\r\n克氏350万度\r\n\r\n770\r\n01:39:56,960 --> 01:39:59,920\r\n金属的内核变得过热\r\n\r\n771\r\n01:40:00,090 --> 01:40:02,420\r\n形成又热又密的物质\r\n\r\n772\r\n01:40:05,720 --> 01:40:08,510\r\n这是地球上最火热的东西\r\n\r\n773\r\n01:40:08,680 --> 01:40:10,600\r\n跟我对毕业舞会舞伴说的话一样\r\n\r\n774\r\n01:40:10,970 --> 01:40:12,510\r\n但她还是甩了我\r\n\r\n775\r\n01:40:12,970 --> 01:40:13,890\r\n是啊\r\n\r\n776\r\n01:40:18,060 --> 01:40:18,900\r\n喂 博士\r\n\r\n777\r\n01:40:19,230 --> 01:40:23,690\r\n你认为蝙蝠侠和犯罪调查部 找的东西有关联吗\r\n\r\n778\r\n01:40:24,740 --> 01:40:27,860\r\n6-1-9-8-2号物件\r\n\r\n779\r\n01:40:29,030 --> 01:40:30,120\r\n不\r\n\r\n780\r\n01:40:31,120 --> 01:40:32,330\r\n我不这么认为\r\n\r\n781\r\n01:41:07,150 --> 01:41:09,240\r\n维克多\r\n\r\n782\r\n01:41:26,380 --> 01:41:28,300\r\n好了 走吧\r\n\r\n783\r\n01:41:29,630 --> 01:41:31,140\r\n-高登局长 -来吧\r\n\r\n784\r\n01:41:32,180 --> 01:41:33,100\r\n给你的留言\r\n\r\n785\r\n01:41:37,810 --> 01:41:40,390\r\n不用看也知道今天是满月\r\n\r\n786\r\n01:41:40,560 --> 01:41:43,400\r\n哥谭市一半的疯子都出来了\r\n\r\n787\r\n01:41:43,560 --> 01:41:45,730\r\n他们都说看到怪物飞过港口\r\n\r\n788\r\n01:41:45,900 --> 01:41:49,650\r\n你是对的 老妈 金牌警校军 念牙医学院有什么不好\r\n\r\n789\r\n01:41:52,740 --> 01:41:55,030\r\n\"遭到飞行吸血鬼攻击\"\r\n\r\n790\r\n01:41:56,030 --> 01:41:59,000\r\n\"看起来像是一口尖牙的巨大蝙蝠\"\r\n\r\n791\r\n01:41:59,160 --> 01:42:00,960\r\n有一个相关的线索\r\n\r\n792\r\n01:42:01,120 --> 01:42:04,710\r\n实验室绑架案的嫌犯肖像素描\r\n\r\n793\r\n01:42:04,880 --> 01:42:07,420\r\n-看起来像… -我知道像什么\r\n\r\n794\r\n01:42:08,630 --> 01:42:11,090\r\n拜托 你觉得他在这里打击犯罪20年\r\n\r\n795\r\n01:42:11,260 --> 01:42:13,930\r\n然后跑去大都会绑架八个人\r\n\r\n796\r\n01:42:14,970 --> 01:42:16,050\r\n我今晚会找他谈谈\r\n\r\n797\r\n01:42:16,220 --> 01:42:17,760\r\n怎么找他\r\n\r\n798\r\n01:42:17,930 --> 01:42:19,390\r\n你说呢\r\n\r\n799\r\n01:42:37,660 --> 01:42:38,870\r\n塞拉斯\r\n\r\n800\r\n01:42:46,630 --> 01:42:48,800\r\n-天啊 -钢骨在哪里\r\n\r\n801\r\n01:42:48,960 --> 01:42:50,130\r\n他叫维克多\r\n\r\n802\r\n01:42:50,920 --> 01:42:53,680\r\n我们见过面 说过话\r\n\r\n803\r\n01:42:54,640 --> 01:42:56,050\r\n给他点时间\r\n\r\n804\r\n01:42:56,850 --> 01:42:58,810\r\n你一定是巴里 我是戴安娜\r\n\r\n805\r\n01:42:58,970 --> 01:43:02,730\r\n你好 巴里 我是戴安娜 那不太对 好极了\r\n\r\n806\r\n01:43:02,890 --> 01:43:03,890\r\n就只有我们\r\n\r\n807\r\n01:43:04,060 --> 01:43:05,020\r\n没错 就只有我们\r\n\r\n808\r\n01:43:06,360 --> 01:43:09,400\r\n酷啊 那是蝙蝠信号 那是在…\r\n\r\n809\r\n01:43:09,570 --> 01:43:11,650\r\n抱歉 那是在呼叫你\r\n\r\n810\r\n01:43:11,820 --> 01:43:13,030\r\n意思是我们得出动了\r\n\r\n811\r\n01:43:13,200 --> 01:43:16,240\r\n-对 是这意思没错 -酷毙了\r\n\r\n812\r\n01:44:14,340 --> 01:44:17,800\r\n湄拉指挥官 我告诉海王 外围守卫被掳走\r\n\r\n813\r\n01:44:18,010 --> 01:44:19,550\r\n他不会派出援兵\r\n\r\n814\r\n01:44:19,720 --> 01:44:22,350\r\n他说所有的士兵 都必须前往叛军地区支持\r\n\r\n815\r\n01:44:22,510 --> 01:44:25,230\r\n他不但残忍而且短视\r\n\r\n816\r\n01:44:26,940 --> 01:44:28,520\r\n好吧 带着剩下的人马\r\n\r\n817\r\n01:44:28,690 --> 01:44:30,860\r\n在母盒周围形成方阵\r\n\r\n818\r\n01:46:10,290 --> 01:46:12,330\r\n你逃不了的\r\n\r\n819\r\n01:46:13,080 --> 01:46:15,040\r\n我并不想逃\r\n\r\n820\r\n01:48:17,620 --> 01:48:19,500\r\n维科跟我说你会来\r\n\r\n821\r\n01:48:20,000 --> 01:48:22,710\r\n备受爱戴的亚特兰娜女王的长子\r\n\r\n822\r\n01:48:25,340 --> 01:48:26,630\r\n等一下\r\n\r\n823\r\n01:48:28,640 --> 01:48:29,720\r\n拜托了\r\n\r\n824\r\n01:48:33,310 --> 01:48:34,640\r\n我认识她\r\n\r\n825\r\n01:48:36,940 --> 01:48:38,520\r\n你至少认识她\r\n\r\n826\r\n01:48:39,400 --> 01:48:40,980\r\n我父母死于战争\r\n\r\n827\r\n01:48:42,900 --> 01:48:44,110\r\n她收容了我\r\n\r\n828\r\n01:48:44,490 --> 01:48:45,740\r\n还真是个圣人\r\n\r\n829\r\n01:48:46,450 --> 01:48:48,570\r\n你胆敢讽刺亚特兰娜女王\r\n\r\n830\r\n01:48:48,740 --> 01:48:51,370\r\n你的女王把我丢在我父亲家门口\r\n\r\n831\r\n01:48:51,530 --> 01:48:53,120\r\n从此把我忘得一干二净\r\n\r\n832\r\n01:48:53,290 --> 01:48:55,500\r\n你母亲是为了救你才离开\r\n\r\n833\r\n01:48:56,620 --> 01:48:59,080\r\n你无法想像她有多心痛\r\n\r\n834\r\n01:49:00,670 --> 01:49:02,710\r\n她也付出惨痛代价\r\n\r\n835\r\n01:49:03,960 --> 01:49:06,130\r\n但你现在不是脆弱的小孩\r\n\r\n836\r\n01:49:08,550 --> 01:49:10,140\r\n那本是她的责任\r\n\r\n837\r\n01:49:10,300 --> 01:49:13,470\r\n跟着那怪物到陆地 然后阻止他\r\n\r\n838\r\n01:49:14,060 --> 01:49:15,140\r\n现在\r\n\r\n839\r\n01:49:16,430 --> 01:49:17,770\r\n是你的责任\r\n\r\n840\r\n01:50:22,120 --> 01:50:23,580\r\n太好了\r\n\r\n841\r\n01:50:46,520 --> 01:50:47,900\r\n荒原狼\r\n\r\n842\r\n01:50:48,070 --> 01:50:49,990\r\n告诉我你知道了什么\r\n\r\n843\r\n01:50:50,150 --> 01:50:52,780\r\n找到两个苏醒的母盒\r\n\r\n844\r\n01:50:52,950 --> 01:50:55,910\r\n结合两个母盒的力量\r\n\r\n845\r\n01:50:56,070 --> 01:50:59,080\r\n我完成了要塞的防御系统\r\n\r\n846\r\n01:50:59,240 --> 01:51:01,660\r\n第三个母盒在哪里\r\n\r\n847\r\n01:51:01,830 --> 01:51:05,960\r\n天启魔感应到它 正在寻找它\r\n\r\n848\r\n01:51:06,130 --> 01:51:07,130\r\n它们抓来了囚犯\r\n\r\n849\r\n01:51:07,290 --> 01:51:09,380\r\n他们带有它的气味\r\n\r\n850\r\n01:51:10,130 --> 01:51:11,170\r\n去吧\r\n\r\n851\r\n01:51:12,010 --> 01:51:13,930\r\n去审问囚犯\r\n\r\n852\r\n01:51:14,720 --> 01:51:16,600\r\n找到第三个母盒\r\n\r\n853\r\n01:51:18,140 --> 01:51:20,310\r\n他们会乖乖告诉我\r\n\r\n854\r\n01:51:21,560 --> 01:51:24,060\r\n不然我就来硬的\r\n\r\n855\r\n01:51:29,730 --> 01:51:34,950\r\n第四章\r\n\r\n856\r\n01:51:31,330 --> 01:51:34,950\r\n“改造机器”\r\n\r\n857\r\n01:52:07,400 --> 01:52:08,980\r\n你们有多少人\r\n\r\n858\r\n01:52:09,820 --> 01:52:10,940\r\n还不够多\r\n\r\n859\r\n01:52:13,030 --> 01:52:15,280\r\n哥谭市各地有数十名目击者\r\n\r\n860\r\n01:52:15,450 --> 01:52:18,160\r\n他们的描述符合大都会绑架案的嫌犯\r\n\r\n861\r\n01:52:18,740 --> 01:52:19,780\r\n天启魔\r\n\r\n862\r\n01:52:20,410 --> 01:52:21,660\r\n好吧\r\n\r\n863\r\n01:52:21,830 --> 01:52:24,160\r\n天启魔一定闻到母盒的气味\r\n\r\n864\r\n01:52:24,410 --> 01:52:25,410\r\n在实验室的那个\r\n\r\n865\r\n01:52:25,580 --> 01:52:27,920\r\n它们把人抓走 拷问母盒下落\r\n\r\n866\r\n01:52:28,080 --> 01:52:29,790\r\n-那八个人可能还活着 -九个人\r\n\r\n867\r\n01:52:32,340 --> 01:52:34,840\r\n星辰实验室的主任今晚被绑走\r\n\r\n868\r\n01:52:40,050 --> 01:52:42,600\r\n好吧 另一个科学家\r\n\r\n869\r\n01:52:42,760 --> 01:52:44,060\r\n我们要怎么找到他\r\n\r\n870\r\n01:52:44,220 --> 01:52:45,890\r\n附近一定有它们的巢穴\r\n\r\n871\r\n01:52:46,060 --> 01:52:50,150\r\n我在大都会和哥谭市地图上做记号\r\n\r\n872\r\n01:52:50,310 --> 01:52:52,440\r\n看不出任何模式\r\n\r\n873\r\n01:52:52,610 --> 01:52:53,900\r\n地图上的路线没有交集\r\n\r\n874\r\n01:52:54,070 --> 01:52:55,400\r\n在陆地上没有\r\n\r\n875\r\n01:52:56,110 --> 01:52:58,160\r\n这是在两座城市之间的史崔克岛\r\n\r\n876\r\n01:52:58,320 --> 01:53:00,740\r\n这些是通风口 全都通往1929年\r\n\r\n877\r\n01:53:00,910 --> 01:53:03,290\r\n废弃的大都会工程隧道\r\n\r\n878\r\n01:53:03,450 --> 01:53:05,040\r\n巢穴可能在那里\r\n\r\n879\r\n01:53:06,370 --> 01:53:07,750\r\n他要跟我们一起去吗\r\n\r\n880\r\n01:53:07,920 --> 01:53:09,250\r\n因为你的车子坐不下\r\n\r\n881\r\n01:53:09,790 --> 01:53:11,210\r\n我有更大的玩意儿\r\n\r\n882\r\n01:53:12,540 --> 01:53:14,170\r\n你真的觉得…\r\n\r\n883\r\n01:53:15,510 --> 01:53:19,050\r\n他们就这样闪人了吗\r\n\r\n884\r\n01:53:20,260 --> 01:53:21,600\r\n太没礼貌了\r\n\r\n885\r\n01:53:56,630 --> 01:54:00,130\r\n星辰实验室\r\n\r\n886\r\n01:54:00,300 --> 01:54:02,390\r\n很接近了\r\n\r\n887\r\n01:54:02,550 --> 01:54:04,560\r\n敌人的气味\r\n\r\n888\r\n01:54:05,260 --> 01:54:06,430\r\n虚无\r\n\r\n889\r\n01:54:07,020 --> 01:54:08,560\r\n黑暗\r\n\r\n890\r\n01:54:09,310 --> 01:54:10,270\r\n死亡\r\n\r\n891\r\n01:54:10,690 --> 01:54:12,940\r\n-我们在哪里 阿尔弗雷德 -史崔克岛\r\n\r\n892\r\n01:54:13,110 --> 01:54:17,650\r\n你们应该就在隧道通风塔的正下方\r\n\r\n893\r\n01:54:18,240 --> 01:54:21,660\r\n往左看 应该有一道阶梯通往机械室\r\n\r\n894\r\n01:54:21,860 --> 01:54:24,410\r\n红外线热影像显示有一群人\r\n\r\n895\r\n01:54:24,580 --> 01:54:25,490\r\n就是那里\r\n\r\n896\r\n01:54:25,870 --> 01:54:26,870\r\n走吧\r\n\r\n897\r\n01:54:40,880 --> 01:54:41,720\r\n好吧\r\n\r\n898\r\n01:54:41,930 --> 01:54:43,800\r\n有任何计划吗\r\n\r\n899\r\n01:54:45,350 --> 01:54:46,640\r\n你们两个\r\n\r\n900\r\n01:54:46,810 --> 01:54:47,970\r\n别单打独斗\r\n\r\n901\r\n01:54:48,770 --> 01:54:50,020\r\n我们要联手出击\r\n\r\n902\r\n01:54:58,980 --> 01:55:00,820\r\n我听说过你\r\n\r\n903\r\n01:55:02,610 --> 01:55:03,780\r\n没想到你是真的\r\n\r\n904\r\n01:55:04,240 --> 01:55:05,780\r\n有用的时候我就是真的\r\n\r\n905\r\n01:55:16,040 --> 01:55:20,170\r\n我受够了你们的沉默 快告诉我 母盒在哪里\r\n\r\n906\r\n01:55:26,970 --> 01:55:29,180\r\n求求你 我们有家人\r\n\r\n907\r\n01:55:29,350 --> 01:55:31,430\r\n那你们就有弱点\r\n\r\n908\r\n01:55:31,600 --> 01:55:33,060\r\n荒原狼\r\n\r\n909\r\n01:55:33,230 --> 01:55:37,400\r\n好吧 我猜…那就是坏蛋\r\n\r\n910\r\n01:55:37,560 --> 01:55:38,610\r\n猜对了\r\n\r\n911\r\n01:55:39,150 --> 01:55:42,610\r\n我现在真的超想念超人\r\n\r\n912\r\n01:55:42,780 --> 01:55:44,950\r\n绕到另一边\r\n\r\n913\r\n01:55:45,110 --> 01:55:47,120\r\n把它们团团围住展开突袭\r\n\r\n914\r\n01:55:51,660 --> 01:55:53,250\r\n你接近过一个母盒\r\n\r\n915\r\n01:55:53,710 --> 01:55:55,420\r\n身上有它的气味\r\n\r\n916\r\n01:55:55,580 --> 01:55:57,040\r\n我不知道你在说什么\r\n\r\n917\r\n01:55:57,210 --> 01:55:59,040\r\n-它在哪里 -放过他\r\n\r\n918\r\n01:55:59,210 --> 01:56:01,460\r\n他不知道\r\n\r\n919\r\n01:56:05,050 --> 01:56:06,840\r\n等等 求求你\r\n\r\n920\r\n01:56:12,020 --> 01:56:15,140\r\n你也带着气味 但是更强烈\r\n\r\n921\r\n01:56:15,520 --> 01:56:17,650\r\n我死也不会告诉你\r\n\r\n922\r\n01:56:17,810 --> 01:56:19,650\r\n不告诉我就会死\r\n\r\n923\r\n01:56:20,070 --> 01:56:21,070\r\n不\r\n\r\n924\r\n01:56:30,410 --> 01:56:31,450\r\n维克多\r\n\r\n925\r\n01:56:31,620 --> 01:56:32,910\r\n杀了他们\r\n\r\n926\r\n01:56:37,370 --> 01:56:38,540\r\n亚马逊女战士\r\n\r\n927\r\n01:56:38,960 --> 01:56:41,460\r\n但不像你的姐妹\r\n\r\n928\r\n01:56:41,630 --> 01:56:42,880\r\n你更强大\r\n\r\n929\r\n01:57:13,830 --> 01:57:15,450\r\n亚马逊女战士\r\n\r\n930\r\n01:57:18,500 --> 01:57:19,880\r\n住手\r\n\r\n931\r\n01:57:20,250 --> 01:57:22,460\r\n这一个是我的\r\n\r\n932\r\n01:57:24,420 --> 01:57:26,840\r\n我不属于任何人\r\n\r\n933\r\n01:57:40,850 --> 01:57:42,900\r\n大伙儿 这不是联手出击\r\n\r\n934\r\n01:57:49,910 --> 01:57:51,070\r\n把这些人救出去\r\n\r\n935\r\n01:57:51,240 --> 01:57:52,910\r\n我会让这些怪物跟着我\r\n\r\n936\r\n01:58:03,340 --> 01:58:04,750\r\n大伙儿 快啊\r\n\r\n937\r\n01:58:13,510 --> 01:58:15,010\r\n再快一点\r\n\r\n938\r\n01:58:17,390 --> 01:58:18,770\r\n-没事吧 -没事\r\n\r\n939\r\n01:58:18,930 --> 01:58:21,350\r\n我会搞定 动作快点\r\n\r\n940\r\n01:58:23,400 --> 01:58:24,400\r\n这里\r\n\r\n941\r\n01:59:00,730 --> 01:59:02,140\r\n能量正在消散\r\n\r\n942\r\n01:59:02,310 --> 01:59:03,810\r\n我的手套很有用\r\n\r\n943\r\n01:59:05,060 --> 01:59:07,360\r\n晚点再庆祝 阿尔弗雷德 我需要夜蝠战机\r\n\r\n944\r\n01:59:07,520 --> 01:59:09,150\r\n我以为你不会开口\r\n\r\n945\r\n01:59:09,740 --> 01:59:11,860\r\n马上赶去 启动遥控模式\r\n\r\n946\r\n01:59:42,020 --> 01:59:43,020\r\n谢了 阿尔弗雷德\r\n\r\n947\r\n01:59:43,190 --> 01:59:44,600\r\n不客气\r\n\r\n948\r\n02:00:07,330 --> 02:00:08,290\r\n惨了\r\n\r\n949\r\n02:00:16,300 --> 02:00:17,760\r\n他们安全了 回去隧道\r\n\r\n950\r\n02:00:17,930 --> 02:00:21,010\r\n隧道 好 外星人 坏蛋 耍剑的女士\r\n\r\n951\r\n02:00:32,820 --> 02:00:34,190\r\n轮到我\r\n\r\n952\r\n02:01:56,570 --> 02:01:58,070\r\n系统全面故障\r\n\r\n953\r\n02:01:58,240 --> 02:02:00,660\r\n你没事吧 韦恩少爷\r\n\r\n954\r\n02:02:00,820 --> 02:02:01,820\r\n你没事吧\r\n\r\n955\r\n02:02:12,540 --> 02:02:16,050\r\n你身上流着旧神族的血液\r\n\r\n956\r\n02:02:30,520 --> 02:02:31,350\r\n你没事吧\r\n\r\n957\r\n02:02:33,360 --> 02:02:34,980\r\n我不确定你会来\r\n\r\n958\r\n02:02:36,020 --> 02:02:37,320\r\n你是我父亲\r\n\r\n959\r\n02:02:40,820 --> 02:02:41,820\r\n快去吧\r\n\r\n960\r\n02:02:55,460 --> 02:02:56,460\r\n不要\r\n\r\n961\r\n02:03:41,970 --> 02:03:44,300\r\n放轻松 阿尔弗雷德 我来接手\r\n\r\n962\r\n02:03:46,510 --> 02:03:47,720\r\n我认识你吗\r\n\r\n963\r\n02:04:18,630 --> 02:04:19,880\r\n我们在哪里的下面\r\n\r\n964\r\n02:04:20,630 --> 02:04:21,920\r\n哥谭港\r\n\r\n965\r\n02:05:00,630 --> 02:05:01,920\r\n那是谁\r\n\r\n966\r\n02:05:27,240 --> 02:05:28,410\r\n快点\r\n\r\n967\r\n02:05:33,540 --> 02:05:34,750\r\n戴安娜 快上来\r\n\r\n968\r\n02:06:36,640 --> 02:06:38,140\r\n是什么\r\n\r\n969\r\n02:06:45,940 --> 02:06:47,360\r\n让我看\r\n\r\n970\r\n02:07:26,520 --> 02:07:28,150\r\n它在这里\r\n\r\n971\r\n02:07:28,900 --> 02:07:31,860\r\n在这个世界\r\n\r\n972\r\n02:08:05,770 --> 02:08:08,730\r\n你可能感染了外星微生物 必须接受隔离\r\n\r\n973\r\n02:08:08,900 --> 02:08:10,570\r\n美国政府的规定要求…\r\n\r\n974\r\n02:08:10,730 --> 02:08:13,530\r\n我知道规定 是我写的\r\n\r\n975\r\n02:08:18,080 --> 02:08:19,410\r\n它召唤了他\r\n\r\n976\r\n02:08:19,580 --> 02:08:21,120\r\n母盒\r\n\r\n977\r\n02:08:21,290 --> 02:08:22,660\r\n他抢走的那个\r\n\r\n978\r\n02:08:23,000 --> 02:08:26,040\r\n他有两个了 他从亚特兰蒂斯抢走母盒\r\n\r\n979\r\n02:08:26,210 --> 02:08:28,500\r\n现在只需要人类遗失的母盒\r\n\r\n980\r\n02:08:28,670 --> 02:08:29,840\r\n他可能已经拿到手了\r\n\r\n981\r\n02:08:33,510 --> 02:08:34,930\r\n他没有拿到手\r\n\r\n982\r\n02:08:38,140 --> 02:08:39,300\r\n在我这里\r\n\r\n983\r\n02:08:49,860 --> 02:08:51,940\r\n你完成征服行动了吗\r\n\r\n984\r\n02:08:52,110 --> 02:08:53,360\r\n还没有 狄萨德\r\n\r\n985\r\n02:08:53,530 --> 02:08:55,780\r\n那你为何召唤我\r\n\r\n986\r\n02:08:55,950 --> 02:08:57,610\r\n我带来消息\r\n\r\n987\r\n02:08:57,780 --> 02:09:00,700\r\n强大的达克赛德登上王位之前\r\n\r\n988\r\n02:09:00,870 --> 02:09:05,370\r\n他在全宇宙搜寻终极武器\r\n\r\n989\r\n02:09:06,000 --> 02:09:08,170\r\n反生命方程序\r\n\r\n990\r\n02:09:08,330 --> 02:09:13,010\r\n掌控多重宇宙中 所有生命与自由意志的关键\r\n\r\n991\r\n02:09:13,170 --> 02:09:16,180\r\n他发现它被藏在一个原始星球上 但在他还没…\r\n\r\n992\r\n02:09:16,340 --> 02:09:19,220\r\n大家都知道你背叛了他\r\n\r\n993\r\n02:09:19,390 --> 02:09:21,890\r\n我找到了那个原始星球\r\n\r\n994\r\n02:09:22,060 --> 02:09:24,100\r\n胆敢反击的世界\r\n\r\n995\r\n02:09:24,270 --> 02:09:26,140\r\n就是地球\r\n\r\n996\r\n02:09:26,310 --> 02:09:28,520\r\n反生命方程序被刻在…\r\n\r\n997\r\n02:09:28,690 --> 02:09:32,570\r\n这个世界的地表\r\n\r\n998\r\n02:09:36,240 --> 02:09:37,650\r\n你确定\r\n\r\n999\r\n02:09:37,820 --> 02:09:38,860\r\n我看到了\r\n\r\n1000\r\n02:09:39,030 --> 02:09:42,450\r\n我亲眼看到了\r\n\r\n1001\r\n02:10:25,790 --> 02:10:27,370\r\n主人\r\n\r\n1002\r\n02:10:28,910 --> 02:10:32,460\r\n荒原狼\r\n\r\n1003\r\n02:10:33,130 --> 02:10:36,210\r\n主人 我只是你谦卑的仆人\r\n\r\n1004\r\n02:10:37,210 --> 02:10:40,050\r\n你真的找到它了\r\n\r\n1005\r\n02:10:40,220 --> 02:10:42,390\r\n是的 霸主\r\n\r\n1006\r\n02:10:43,140 --> 02:10:46,100\r\n失落的世界就是地球\r\n\r\n1007\r\n02:10:46,270 --> 02:10:49,270\r\n反生命方程序就在这里\r\n\r\n1008\r\n02:10:50,600 --> 02:10:53,940\r\n你若想寻求救赎 那就找到第三个母盒\r\n\r\n1009\r\n02:10:54,110 --> 02:10:57,070\r\n合而为一形成三位一体 当这世界化为焦土\r\n\r\n1010\r\n02:10:57,230 --> 02:11:00,450\r\n我就会来拿我的大奖\r\n\r\n1011\r\n02:11:01,410 --> 02:11:03,620\r\n你会来地球\r\n\r\n1012\r\n02:11:04,660 --> 02:11:08,910\r\n我已经把十万个世界化为尘土\r\n\r\n1013\r\n02:11:09,080 --> 02:11:10,580\r\n寻找反生命方程序\r\n\r\n1014\r\n02:11:10,750 --> 02:11:13,960\r\n寻找抢走我荣耀之人\r\n\r\n1015\r\n02:11:14,130 --> 02:11:19,880\r\n我将踏着他们的骨骸 沐浴在反生命方程序的荣光中\r\n\r\n1016\r\n02:11:20,050 --> 02:11:22,760\r\n所有的生命\r\n\r\n1017\r\n02:11:22,930 --> 02:11:26,430\r\n都将是我的\r\n\r\n1018\r\n02:11:29,810 --> 02:11:33,730\r\n一定会的 主人\r\n\r\n1019\r\n02:11:37,940 --> 02:11:39,610\r\n酷爆了\r\n\r\n1020\r\n02:11:39,780 --> 02:11:42,320\r\n从外面看 这只是一栋废弃建筑物\r\n\r\n1021\r\n02:11:46,070 --> 02:11:47,830\r\n它想要飞行\r\n\r\n1022\r\n02:11:49,040 --> 02:11:50,910\r\n你和机器说话\r\n\r\n1023\r\n02:11:51,210 --> 02:11:53,210\r\n我和人工智能说话\r\n\r\n1024\r\n02:11:53,370 --> 02:11:56,250\r\n这个说她因为软体问题不能飞\r\n\r\n1025\r\n02:11:56,420 --> 02:11:58,380\r\n不过我很快就能修好\r\n\r\n1026\r\n02:12:08,140 --> 02:12:10,350\r\n我的数据流中有个黑点\r\n\r\n1027\r\n02:12:10,680 --> 02:12:12,940\r\n我能感应到另外两个母盒\r\n\r\n1028\r\n02:12:13,100 --> 02:12:14,940\r\n我知道它们苏醒了\r\n\r\n1029\r\n02:12:15,100 --> 02:12:16,610\r\n但是看不见它们在哪里\r\n\r\n1030\r\n02:12:16,770 --> 02:12:18,770\r\n知道敌方基地在哪里才能攻击\r\n\r\n1031\r\n02:12:18,940 --> 02:12:21,190\r\n就算我们知道\r\n\r\n1032\r\n02:12:21,360 --> 02:12:24,200\r\n也没有比荒原狼更强大的生物\r\n\r\n1033\r\n02:12:26,410 --> 02:12:27,780\r\n也许有一个\r\n\r\n1034\r\n02:12:28,160 --> 02:12:29,540\r\n超人\r\n\r\n1035\r\n02:12:30,450 --> 02:12:34,500\r\n只要第三个母盒在沉睡 他们就看不到它 只能感应到它\r\n\r\n1036\r\n02:12:34,670 --> 02:12:36,710\r\n我们得不断移动才不会被发现\r\n\r\n1037\r\n02:12:36,880 --> 02:12:40,050\r\n不 这只是延缓失败的策略 不是获胜的战略\r\n\r\n1038\r\n02:12:40,670 --> 02:12:42,670\r\n难道火焰喷射器不流行了吗\r\n\r\n1039\r\n02:12:43,550 --> 02:12:44,630\r\n为何不直接烧毁它\r\n\r\n1040\r\n02:12:44,800 --> 02:12:46,890\r\n烈火也无法摧毁母盒\r\n\r\n1041\r\n02:12:47,050 --> 02:12:48,800\r\n它们是一种未知的物质\r\n\r\n1042\r\n02:12:48,970 --> 02:12:52,430\r\n喜欢热能 会吸收它 保存在它们的核心\r\n\r\n1043\r\n02:12:52,600 --> 02:12:54,730\r\n你很了解这些盒子嘛\r\n\r\n1044\r\n02:12:55,310 --> 02:12:56,560\r\n非常可疑\r\n\r\n1045\r\n02:12:56,730 --> 02:12:58,440\r\n你在哪里找到母盒\r\n\r\n1046\r\n02:12:59,400 --> 02:13:00,820\r\n你在怀疑我吗\r\n\r\n1047\r\n02:13:01,110 --> 02:13:02,610\r\n我就是怀疑你\r\n\r\n1048\r\n02:13:03,190 --> 02:13:05,070\r\n我们怎么知道你不是他们的奸细\r\n\r\n1049\r\n02:13:06,950 --> 02:13:08,620\r\n说来话长\r\n\r\n1050\r\n02:13:09,070 --> 02:13:10,990\r\n你赶着要去哪儿吗\r\n\r\n1051\r\n02:13:18,380 --> 02:13:22,210\r\n纳粹在二战结束前找到母盒\r\n\r\n1052\r\n02:13:22,380 --> 02:13:25,420\r\n它被埋在一座义大利修道院底下\r\n\r\n1053\r\n02:13:25,590 --> 02:13:27,970\r\n被送去给希特勒的路上 遭到盟军拦截\r\n\r\n1054\r\n02:13:28,140 --> 02:13:30,350\r\n1944年被带回了美国\r\n\r\n1055\r\n02:13:30,930 --> 02:13:34,480\r\n6-1-9-8-2号未知物件\r\n\r\n1056\r\n02:13:35,350 --> 02:13:38,810\r\n它被丢在五角大厦档案室七十年\r\n\r\n1057\r\n02:13:39,350 --> 02:13:42,570\r\n直到国防部开始研究超人飞船\r\n\r\n1058\r\n02:13:44,110 --> 02:13:47,610\r\n星辰实验室的一位研究员 发现超人飞船和…\r\n\r\n1059\r\n02:13:48,910 --> 02:13:50,450\r\n6-1-9-8-2号物件有关联\r\n\r\n1060\r\n02:13:51,330 --> 02:13:54,160\r\n他了解到它们都是外星科技\r\n\r\n1061\r\n02:13:54,830 --> 02:13:56,410\r\n不同的文明\r\n\r\n1062\r\n02:13:57,000 --> 02:13:59,120\r\n类似的属性\r\n\r\n1063\r\n02:14:00,460 --> 02:14:03,210\r\n虽然母盒已经沉睡了几千年\r\n\r\n1064\r\n02:14:03,880 --> 02:14:06,720\r\n那位研究员想出 一个可以唤醒它的理论\r\n\r\n1065\r\n02:14:07,340 --> 02:14:09,090\r\n也真的唤醒了它\r\n\r\n1066\r\n02:14:11,550 --> 02:14:12,390\r\n后来…\r\n\r\n1067\r\n02:14:14,520 --> 02:14:16,430\r\n我出了车祸 本来应该死去\r\n\r\n1068\r\n02:14:17,770 --> 02:14:20,980\r\n但是出于绝望或是疯狂\r\n\r\n1069\r\n02:14:21,150 --> 02:14:23,480\r\n那位研究员驾驭了母盒的力量\r\n\r\n1070\r\n02:14:39,670 --> 02:14:41,750\r\n释放了一种他无法…\r\n\r\n1071\r\n02:14:41,920 --> 02:14:44,590\r\n完全理解的外星科技\r\n\r\n1072\r\n02:14:44,750 --> 02:14:47,130\r\n他利用那股力量让我活下来\r\n\r\n1073\r\n02:14:50,720 --> 02:14:52,300\r\n活着…\r\n\r\n1074\r\n02:14:52,850 --> 02:14:54,810\r\n但变成了这样\r\n\r\n1075\r\n02:14:57,600 --> 02:14:59,890\r\n母盒继续沉睡\r\n\r\n1076\r\n02:15:00,810 --> 02:15:02,480\r\n他也没有物归原处\r\n\r\n1077\r\n02:15:05,110 --> 02:15:07,150\r\n那位研究员就是塞拉斯·斯通\r\n\r\n1078\r\n02:15:08,860 --> 02:15:10,530\r\n我的父亲\r\n\r\n1079\r\n02:15:13,820 --> 02:15:15,490\r\n等等\r\n\r\n1080\r\n02:15:15,660 --> 02:15:19,040\r\n你父亲用一个母盒救了你一命\r\n\r\n1081\r\n02:15:19,200 --> 02:15:21,420\r\n它们不是变态杀人机器吗\r\n\r\n1082\r\n02:15:21,580 --> 02:15:23,960\r\n它们是改造机器\r\n\r\n1083\r\n02:15:24,130 --> 02:15:26,800\r\n母盒没有救人或杀人…\r\n\r\n1084\r\n02:15:27,210 --> 02:15:29,300\r\n活着或死亡的概念\r\n\r\n1085\r\n02:15:29,460 --> 02:15:31,720\r\n它们按照主人的意愿重新排列物质\r\n\r\n1086\r\n02:15:31,880 --> 02:15:33,470\r\n使其再生 恢复原状\r\n\r\n1087\r\n02:15:33,640 --> 02:15:35,050\r\n恢复原状\r\n\r\n1088\r\n02:15:35,220 --> 02:15:38,640\r\n母盒拥有恢复粒子相互作用的力量\r\n\r\n1089\r\n02:15:38,810 --> 02:15:41,890\r\n你是说任何物质的粒子 都不能被创造或毁灭\r\n\r\n1090\r\n02:15:42,060 --> 02:15:44,060\r\n它们的相互作用只会转变\r\n\r\n1091\r\n02:15:44,230 --> 02:15:46,980\r\n烧掉一栋房子 粒子仍然存在\r\n\r\n1092\r\n02:15:47,150 --> 02:15:49,610\r\n房子的粒子变成灰烬的粒子\r\n\r\n1093\r\n02:15:49,780 --> 02:15:53,820\r\n任何人只要有火柴 都能把一栋房子化成灰烬\r\n\r\n1094\r\n02:15:55,870 --> 02:15:57,620\r\n但是一个母盒\r\n\r\n1095\r\n02:15:57,780 --> 02:16:00,000\r\n能够把灰烬变回一栋房子\r\n\r\n1096\r\n02:16:06,000 --> 02:16:08,500\r\n我知道我们都在想同样的事\r\n\r\n1097\r\n02:16:09,960 --> 02:16:12,470\r\n谁要说我才不说\r\n\r\n1098\r\n02:16:39,740 --> 02:16:40,830\r\n谁啊\r\n\r\n1099\r\n02:16:41,540 --> 02:16:42,750\r\n玛莎\r\n\r\n1100\r\n02:17:01,100 --> 02:17:06,100\r\n我去了星球日报 终于拿回克拉克的东西\r\n\r\n1101\r\n02:17:07,600 --> 02:17:10,900\r\n不知道为什么 现在无处可放\r\n\r\n1102\r\n02:17:13,690 --> 02:17:15,320\r\n我失去了农场\r\n\r\n1103\r\n02:17:16,950 --> 02:17:19,070\r\n我迟缴房贷好一阵子了\r\n\r\n1104\r\n02:17:20,450 --> 02:17:24,330\r\n老实说 那房子我一个人住太大了\r\n\r\n1105\r\n02:17:24,870 --> 02:17:27,670\r\n你知道我随时都欢迎你来住\r\n\r\n1106\r\n02:17:27,830 --> 02:17:29,790\r\n只要你需要的话\r\n\r\n1107\r\n02:17:31,000 --> 02:17:33,630\r\n谢谢你 露易丝 你真好心\r\n\r\n1108\r\n02:17:35,300 --> 02:17:37,380\r\n但我找到一个小地方 我一个人住刚好\r\n\r\n1109\r\n02:17:37,550 --> 02:17:39,010\r\n就在餐馆旁边\r\n\r\n1110\r\n02:17:39,640 --> 02:17:41,010\r\n我不是来求助的\r\n\r\n1111\r\n02:17:42,180 --> 02:17:44,060\r\n我来是因为…\r\n\r\n1112\r\n02:17:44,890 --> 02:17:47,310\r\n我见到派瑞先生 他跟我说…\r\n\r\n1113\r\n02:17:48,770 --> 02:17:51,690\r\n克拉克死后你就没去上班了\r\n\r\n1114\r\n02:17:56,490 --> 02:17:58,110\r\n我办不到\r\n\r\n1115\r\n02:18:05,000 --> 02:18:07,330\r\n全世界都在哀悼\r\n\r\n1116\r\n02:18:08,960 --> 02:18:11,380\r\n为了一个象征悲伤\r\n\r\n1117\r\n02:18:11,540 --> 02:18:15,340\r\n我走到哪儿都看到那个\"S\"\r\n\r\n1118\r\n02:18:16,470 --> 02:18:18,470\r\n也听到人们在说什么\r\n\r\n1119\r\n02:18:18,630 --> 02:18:20,470\r\n好像他们都认识他\r\n\r\n1120\r\n02:18:21,680 --> 02:18:23,930\r\n但是他们不认识克拉克\r\n\r\n1121\r\n02:18:25,470 --> 02:18:27,810\r\n我不能拦住他们\r\n\r\n1122\r\n02:18:27,980 --> 02:18:29,350\r\n看着他们跟他们说\r\n\r\n1123\r\n02:18:29,520 --> 02:18:32,270\r\n我为我儿子感到多么骄傲\r\n\r\n1124\r\n02:18:34,270 --> 02:18:36,780\r\n只有你知道\r\n\r\n1125\r\n02:18:36,940 --> 02:18:39,360\r\n也只有你能体会\r\n\r\n1126\r\n02:18:40,700 --> 02:18:43,660\r\n悲伤加上秘密的负担\r\n\r\n1127\r\n02:18:46,830 --> 02:18:50,120\r\n我大老远跑来是因为我想…\r\n\r\n1128\r\n02:18:50,290 --> 02:18:52,290\r\n因为我想来见你\r\n\r\n1129\r\n02:18:53,540 --> 02:18:55,500\r\n告诉你\r\n\r\n1130\r\n02:18:55,670 --> 02:18:57,510\r\n我能体会\r\n\r\n1131\r\n02:18:59,470 --> 02:19:00,510\r\n我…\r\n\r\n1132\r\n02:19:01,800 --> 02:19:05,350\r\n永远都不会像爱你儿子那样爱任何人\r\n\r\n1133\r\n02:19:09,100 --> 02:19:11,100\r\n我也很想念他\r\n\r\n1134\r\n02:19:12,270 --> 02:19:14,480\r\n我好想他啊\r\n\r\n1135\r\n02:19:21,200 --> 02:19:22,870\r\n我也是 亲爱的\r\n\r\n1136\r\n02:19:27,450 --> 02:19:32,330\r\n玛莎 你有任何需要我都会帮忙\r\n\r\n1137\r\n02:19:35,920 --> 02:19:38,510\r\n你可以帮我一个忙 亲爱的\r\n\r\n1138\r\n02:19:40,920 --> 02:19:43,180\r\n继续过活吧\r\n\r\n1139\r\n02:20:23,180 --> 02:20:26,010\r\n这世界也需要你 露易丝\r\n\r\n1140\r\n02:20:29,810 --> 02:20:30,970\r\n他人都死了\r\n\r\n1141\r\n02:20:31,310 --> 02:20:33,060\r\n母盒让维克多死而复生\r\n\r\n1142\r\n02:20:33,230 --> 02:20:34,770\r\n维克多并没有死\r\n\r\n1143\r\n02:20:34,940 --> 02:20:36,690\r\n生命不是一就是零\r\n\r\n1144\r\n02:20:36,860 --> 02:20:39,780\r\n不是生就是死 不能两者都是\r\n\r\n1145\r\n02:20:39,940 --> 02:20:41,610\r\n你能操作母盒吗 维克多\r\n\r\n1146\r\n02:20:41,780 --> 02:20:42,650\r\n当然了\r\n\r\n1147\r\n02:20:43,070 --> 02:20:45,490\r\n但我们不够了解氪星生物学\r\n\r\n1148\r\n02:20:45,660 --> 02:20:47,490\r\n谁知道会发生什么事\r\n\r\n1149\r\n02:20:49,830 --> 02:20:50,950\r\n好吧 不过…\r\n\r\n1150\r\n02:20:51,120 --> 02:20:54,750\r\n我们总得试试 对吧 我们得试试看\r\n\r\n1151\r\n02:20:55,370 --> 02:20:56,460\r\n还有什么好顾忌的\r\n\r\n1152\r\n02:20:56,630 --> 02:20:59,170\r\n必须唤醒母盒才能尝试\r\n\r\n1153\r\n02:20:59,340 --> 02:21:00,800\r\n它一旦苏醒\r\n\r\n1154\r\n02:21:00,960 --> 02:21:03,340\r\n敌人就会看到 然后闯进来\r\n\r\n1155\r\n02:21:03,510 --> 02:21:06,050\r\n完成三位一体 世界末日来临\r\n\r\n1156\r\n02:21:06,220 --> 02:21:08,600\r\n我们会把整个地球…\r\n\r\n1157\r\n02:21:08,760 --> 02:21:10,600\r\n拱手让给想灭绝人类的外星人 这真是好消息\r\n\r\n1158\r\n02:21:10,760 --> 02:21:13,390\r\n就算超人能回来\r\n\r\n1159\r\n02:21:13,560 --> 02:21:15,440\r\n谁敢说他就能打败他们\r\n\r\n1160\r\n02:21:15,600 --> 02:21:17,480\r\n母盒这么说\r\n\r\n1161\r\n02:21:17,770 --> 02:21:21,020\r\n维克多的父亲 一年多前启动一个母盒\r\n\r\n1162\r\n02:21:21,190 --> 02:21:22,940\r\n当时超人还活着\r\n\r\n1163\r\n02:21:23,110 --> 02:21:26,530\r\n它没召唤荒原狼 没有母盒召唤他 直到…\r\n\r\n1164\r\n02:21:26,700 --> 02:21:28,780\r\n直到超人死后\r\n\r\n1165\r\n02:21:28,950 --> 02:21:31,370\r\n直到超人死后\r\n\r\n1166\r\n02:21:31,540 --> 02:21:34,080\r\n-因为他们怕他 -没错\r\n\r\n1167\r\n02:21:34,660 --> 02:21:36,460\r\n他们怕他\r\n\r\n1168\r\n02:21:39,380 --> 02:21:41,170\r\n这是唯一的办法\r\n\r\n1169\r\n02:21:42,840 --> 02:21:46,590\r\n这团队有六个人 不是五个人 没有他就没有我们\r\n\r\n1170\r\n02:21:56,650 --> 02:22:01,790\r\n第五章\r\n\r\n1171\r\n02:21:58,180 --> 02:22:01,790\r\n国王人马\r\n\r\n1172\r\n02:22:02,980 --> 02:22:04,940\r\n又完成了一项遗愿清单任务\r\n\r\n1173\r\n02:22:05,110 --> 02:22:08,910\r\n把超人从坟墓里挖出来 搞定\r\n\r\n1174\r\n02:22:09,320 --> 02:22:10,780\r\n克拉克·乔瑟夫·肯特\r\n\r\n1175\r\n02:22:10,950 --> 02:22:13,370\r\n你知道我们能在一奈秒内搞定 对吧\r\n\r\n1176\r\n02:22:14,080 --> 02:22:15,450\r\n没错\r\n\r\n1177\r\n02:22:23,000 --> 02:22:24,630\r\n他是我的偶像\r\n\r\n1178\r\n02:22:27,260 --> 02:22:28,470\r\n好吧\r\n\r\n1179\r\n02:22:32,100 --> 02:22:35,140\r\n亚马逊人和亚特兰蒂斯人并肩作战\r\n\r\n1180\r\n02:22:35,310 --> 02:22:36,560\r\n半亚特兰蒂斯人\r\n\r\n1181\r\n02:22:38,440 --> 02:22:41,190\r\n我们的族人有几千年没说过话了\r\n\r\n1182\r\n02:22:41,860 --> 02:22:44,730\r\n不知道 我和我的族人不亲\r\n\r\n1183\r\n02:22:45,940 --> 02:22:48,650\r\n我跟亚马逊人一样讨厌亚特兰蒂斯人\r\n\r\n1184\r\n02:22:48,820 --> 02:22:50,860\r\n互相仇恨真的很没必要\r\n\r\n1185\r\n02:22:53,990 --> 02:22:55,330\r\n是啊\r\n\r\n1186\r\n02:22:56,620 --> 02:22:58,210\r\n不 谢了\r\n\r\n1187\r\n02:23:02,750 --> 02:23:05,710\r\n我父亲告诉我亚特兰蒂斯有句老话\r\n\r\n1188\r\n02:23:07,460 --> 02:23:09,760\r\n\"只要从黑暗中拿回什么\r\n\r\n1189\r\n02:23:09,930 --> 02:23:12,550\r\n\"-就一定要… -就一定要付出代价\"\r\n\r\n1190\r\n02:23:14,810 --> 02:23:16,390\r\n我们也会这么说\r\n\r\n1191\r\n02:23:19,020 --> 02:23:20,350\r\n真没想到\r\n\r\n1192\r\n02:23:20,850 --> 02:23:22,730\r\n神奇女侠\r\n\r\n1193\r\n02:23:24,270 --> 02:23:28,070\r\n你觉得怎样 她会不会喜欢一个小鲜肉\r\n\r\n1194\r\n02:23:28,440 --> 02:23:31,030\r\n她都五千岁了 巴里\r\n\r\n1195\r\n02:23:32,910 --> 02:23:34,740\r\n每个男人都是小鲜肉\r\n\r\n1196\r\n02:23:36,740 --> 02:23:37,580\r\n天啊\r\n\r\n1197\r\n02:23:39,330 --> 02:23:41,040\r\n真是的\r\n\r\n1198\r\n02:23:44,380 --> 02:23:46,000\r\n该死\r\n\r\n1199\r\n02:23:47,380 --> 02:23:48,380\r\n运气怎么样\r\n\r\n1200\r\n02:23:48,550 --> 02:23:49,630\r\n如果你说的\"运气\"是指…\r\n\r\n1201\r\n02:23:49,800 --> 02:23:52,890\r\n\"今天能不能让它飞起来的运气\"\r\n\r\n1202\r\n02:23:53,050 --> 02:23:55,050\r\n那就没有\r\n\r\n1203\r\n02:23:55,930 --> 02:23:57,470\r\n没关系\r\n\r\n1204\r\n02:23:57,640 --> 02:23:59,350\r\n无所谓 我们只要把尸体\r\n\r\n1205\r\n02:23:59,520 --> 02:24:01,770\r\n放进氪星飞船 它基本上是一台有机电脑\r\n\r\n1206\r\n02:24:01,940 --> 02:24:03,940\r\n可以直接和母盒讲话\r\n\r\n1207\r\n02:24:04,100 --> 02:24:06,570\r\n什么 就像它跟莱克斯·卢瑟讲话\r\n\r\n1208\r\n02:24:06,730 --> 02:24:07,770\r\n差不多吧\r\n\r\n1209\r\n02:24:07,940 --> 02:24:11,780\r\n还会出什么差错\r\n\r\n1210\r\n02:24:18,410 --> 02:24:19,910\r\n韦恩少爷\r\n\r\n1211\r\n02:24:22,000 --> 02:24:23,210\r\n你成功了\r\n\r\n1212\r\n02:24:23,580 --> 02:24:26,880\r\n你组成了团队 一起打这场仗\r\n\r\n1213\r\n02:24:27,170 --> 02:24:29,380\r\n你实现了承诺\r\n\r\n1214\r\n02:24:30,460 --> 02:24:33,880\r\n但是想让超人死而复生 我是说…\r\n\r\n1215\r\n02:24:34,510 --> 02:24:36,350\r\n你的罪恶感超过了理性\r\n\r\n1216\r\n02:24:37,550 --> 02:24:39,680\r\n再多的国王人马都办不到\r\n\r\n1217\r\n02:24:39,850 --> 02:24:42,940\r\n阿尔弗雷德 我这次完全凭靠信念\r\n\r\n1218\r\n02:24:43,100 --> 02:24:44,940\r\n而不是理性\r\n\r\n1219\r\n02:24:45,730 --> 02:24:49,940\r\n但如果你开始玩弄这个母盒\r\n\r\n1220\r\n02:24:50,110 --> 02:24:52,190\r\n可能会是一切的终结\r\n\r\n1221\r\n02:24:52,360 --> 02:24:54,240\r\n你怎么知道你的团队够强大\r\n\r\n1222\r\n02:24:55,490 --> 02:24:57,830\r\n制伏不了冲过来的公牛\r\n\r\n1223\r\n02:24:57,990 --> 02:24:59,700\r\n就不要挥舞红色披风\r\n\r\n1224\r\n02:24:59,870 --> 02:25:01,450\r\n是这个红色披风就可以\r\n\r\n1225\r\n02:25:01,620 --> 02:25:03,790\r\n红色披风会冲回去\r\n\r\n1226\r\n02:25:18,510 --> 02:25:19,680\r\n好吧\r\n\r\n1227\r\n02:25:26,650 --> 02:25:29,020\r\n你是对的 斯通博士 检验报告是阴性\r\n\r\n1228\r\n02:25:29,190 --> 02:25:30,820\r\n大家都没事 包括你在内\r\n\r\n1229\r\n02:25:30,980 --> 02:25:33,570\r\n但为了安全起见 我们扫遍了整间实验室\r\n\r\n1230\r\n02:25:33,740 --> 02:25:35,490\r\n谢谢你 汤玛斯 所以我可以走了吗\r\n\r\n1231\r\n02:25:35,650 --> 02:25:36,490\r\n当然了\r\n\r\n1232\r\n02:25:40,490 --> 02:25:41,790\r\n-谢了 -大家听好\r\n\r\n1233\r\n02:25:41,950 --> 02:25:44,410\r\n你们都没事了 收拾你们的东西\r\n\r\n1234\r\n02:25:44,580 --> 02:25:46,120\r\n如果需要更多医疗照顾…\r\n\r\n1235\r\n02:25:46,290 --> 02:25:49,960\r\n亚瑟 我问你 哪个比较低调 选项\"A\"\r\n\r\n1236\r\n02:25:50,130 --> 02:25:51,380\r\n-绝对不是\"A\" -好吧\r\n\r\n1237\r\n02:25:51,550 --> 02:25:54,670\r\n或是…\"B\"\r\n\r\n1238\r\n02:25:56,300 --> 02:25:57,550\r\n我再看看选项\"Ａ\"\r\n\r\n1239\r\n02:26:03,180 --> 02:26:06,310\r\n好了 该换装了\r\n\r\n1240\r\n02:26:08,440 --> 02:26:10,400\r\n我一直都穿着\r\n\r\n1241\r\n02:26:37,720 --> 02:26:38,550\r\n识别证\r\n\r\n1242\r\n02:26:38,800 --> 02:26:39,970\r\n识别证\r\n\r\n1243\r\n02:26:43,140 --> 02:26:44,260\r\n遵命\r\n\r\n1244\r\n02:26:46,600 --> 02:26:47,810\r\n\"遵命\"\r\n\r\n1245\r\n02:26:49,770 --> 02:26:51,900\r\n星辰实验室人事档案\r\n\r\n1246\r\n02:27:03,860 --> 02:27:05,490\r\n卫斯理·罗伊\r\n宪兵 允许通行\r\n\r\n1247\r\n02:27:11,040 --> 02:27:12,380\r\n可以了\r\n\r\n1248\r\n02:27:12,540 --> 02:27:14,630\r\n\"可以\" 可以了\r\n\r\n1249\r\n02:27:21,590 --> 02:27:22,680\r\n博士\r\n\r\n1250\r\n02:27:22,850 --> 02:27:24,050\r\n他们放你出来了\r\n\r\n1251\r\n02:27:24,220 --> 02:27:25,510\r\n是啊 他们终于肯听我讲道理\r\n\r\n1252\r\n02:27:25,680 --> 02:27:27,930\r\n现在让我们看看电子激光\r\n\r\n1253\r\n02:27:28,100 --> 02:27:29,100\r\n有什么进展\r\n\r\n1254\r\n02:27:29,270 --> 02:27:31,600\r\n我们有了真正的进展 让我给你看\r\n\r\n1255\r\n02:27:46,700 --> 02:27:49,200\r\n维克多 清空这地方\r\n\r\n1256\r\n02:27:49,540 --> 02:27:50,790\r\n没问题\r\n\r\n1257\r\n02:27:55,000 --> 02:27:57,130\r\n红色警戒 受到污染\r\n\r\n1258\r\n02:27:56,530 --> 02:27:58,460\r\n生化威胁\r\n\r\n1259\r\n02:27:58,630 --> 02:28:01,090\r\n全体人员立刻疏散\r\n\r\n1260\r\n02:28:02,130 --> 02:28:03,300\r\n生化威胁红色警戒\r\n\r\n1261\r\n02:28:03,470 --> 02:28:05,850\r\n感应器侦测到外星微生物\r\n\r\n1262\r\n02:28:06,010 --> 02:28:08,640\r\n外星微生物不可能\r\n\r\n1263\r\n02:28:08,810 --> 02:28:09,810\r\n一定是虚惊一场\r\n\r\n1264\r\n02:28:09,980 --> 02:28:12,350\r\n各位 关闭实验室 尽快离开\r\n\r\n1265\r\n02:28:12,520 --> 02:28:13,560\r\n-刚刚才扫过一遍 -走吧\r\n\r\n1266\r\n02:28:13,730 --> 02:28:15,900\r\n-一定有人误触警报 -走吧 博士\r\n\r\n1267\r\n02:28:16,060 --> 02:28:17,650\r\n-想想看 -全员撤离\r\n\r\n1268\r\n02:28:17,820 --> 02:28:20,070\r\n听好 等等 该死\r\n\r\n1269\r\n02:28:20,240 --> 02:28:22,990\r\n保持冷静 前往最近出口\r\n\r\n1270\r\n02:28:29,450 --> 02:28:31,160\r\n注意 全体人员\r\n\r\n1271\r\n02:28:31,330 --> 02:28:34,120\r\n快点 大家都出去 快点\r\n\r\n1272\r\n02:28:34,290 --> 02:28:35,920\r\n快走 快啊\r\n\r\n1273\r\n02:28:36,080 --> 02:28:37,590\r\n大家都出去 快点\r\n\r\n1274\r\n02:28:55,980 --> 02:28:57,950\r\n生化威胁\r\n\r\n1275\r\n02:28:57,950 --> 02:28:58,520\r\n安全\r\n\r\n1276\r\n02:28:58,610 --> 02:28:59,610\r\n搞定\r\n\r\n1277\r\n02:28:59,780 --> 02:29:00,610\r\n搞定了\r\n\r\n1278\r\n02:29:00,980 --> 02:29:03,650\r\n这是塞拉斯·斯通博士 收到吗\r\n\r\n1279\r\n02:29:03,820 --> 02:29:06,280\r\n-请说 -这是假警报\r\n\r\n1280\r\n02:29:06,450 --> 02:29:09,620\r\n有人骇入系统 我们得…\r\n\r\n1281\r\n02:29:18,960 --> 02:29:20,380\r\n维克多\r\n\r\n1282\r\n02:29:22,130 --> 02:29:24,300\r\n斯通博士 你在吗 我没收到\r\n\r\n1283\r\n02:29:25,340 --> 02:29:26,340\r\n我搞错了\r\n\r\n1284\r\n02:29:26,510 --> 02:29:27,720\r\n警报是真的\r\n\r\n1285\r\n02:29:27,890 --> 02:29:29,470\r\n大家都出去 任何人 我重复\r\n\r\n1286\r\n02:29:29,640 --> 02:29:32,390\r\n没有我的允许 任何人都不准回来\r\n\r\n1287\r\n02:29:32,560 --> 02:29:33,810\r\n收到了\r\n\r\n1288\r\n02:29:44,070 --> 02:29:45,490\r\n大家都出来\r\n\r\n1289\r\n02:29:45,820 --> 02:29:46,820\r\n快点 快点\r\n\r\n1290\r\n02:29:51,240 --> 02:29:52,620\r\n-大家都安全出来了 -应该吧\r\n\r\n1291\r\n02:29:52,790 --> 02:29:53,620\r\n-每一个人 -对\r\n\r\n1292\r\n02:30:26,950 --> 02:30:28,200\r\n这里\r\n\r\n1293\r\n02:30:38,790 --> 02:30:40,750\r\n它知道他来了\r\n\r\n1294\r\n02:30:42,630 --> 02:30:43,920\r\n超紧张的\r\n\r\n1295\r\n02:30:48,380 --> 02:30:50,260\r\n太惊人了\r\n\r\n1296\r\n02:30:51,090 --> 02:30:52,300\r\n太疯狂了\r\n\r\n1297\r\n02:30:52,470 --> 02:30:54,350\r\n什么 现在才说疯狂\r\n\r\n1298\r\n02:30:54,520 --> 02:30:56,890\r\n你们这群疯子最好知道自己在干嘛\r\n\r\n1299\r\n02:32:04,250 --> 02:32:08,260\r\n露易丝·莱恩\r\n星球日报记者\r\n\r\n1300\r\n02:32:12,630 --> 02:32:16,050\r\n验孕棒\r\n\r\n1301\r\n02:33:22,870 --> 02:33:24,710\r\n系统即将上线\r\n\r\n1302\r\n02:33:28,250 --> 02:33:31,880\r\n欢迎 维克多 您想接手掌控吗\r\n\r\n1303\r\n02:33:32,050 --> 02:33:32,880\r\n我进去了\r\n\r\n1304\r\n02:33:42,310 --> 02:33:44,520\r\n这艘飞船说母盒有敌意\r\n\r\n1305\r\n02:33:44,690 --> 02:33:46,350\r\n我可以取消安全协定\r\n\r\n1306\r\n02:33:46,520 --> 02:33:48,150\r\n但是没时间修复卢瑟对主电容器\r\n\r\n1307\r\n02:33:48,310 --> 02:33:50,610\r\n造成的所有的电力损害\r\n\r\n1308\r\n02:33:50,770 --> 02:33:51,940\r\n说白话\r\n\r\n1309\r\n02:33:52,110 --> 02:33:54,150\r\n电流不够 无法唤醒母盒\r\n\r\n1310\r\n02:33:55,110 --> 02:33:56,530\r\n我可能有办法\r\n\r\n1311\r\n02:33:58,870 --> 02:34:00,780\r\n我也许可以启动它\r\n\r\n1312\r\n02:34:00,950 --> 02:34:01,990\r\n我不喜欢打破这规则\r\n\r\n1313\r\n02:34:02,160 --> 02:34:04,080\r\n但是当我接近光速 我…\r\n\r\n1314\r\n02:34:04,250 --> 02:34:05,750\r\n听着 时间会发生疯狂的事\r\n\r\n1315\r\n02:34:05,910 --> 02:34:08,500\r\n但要是我成功了 就能制造巨大的电力\r\n\r\n1316\r\n02:34:08,670 --> 02:34:10,420\r\n我可以往回跑 只要距离够远\r\n\r\n1317\r\n02:34:10,590 --> 02:34:12,750\r\n就能传导大量电流\r\n\r\n1318\r\n02:34:12,920 --> 02:34:15,260\r\n也许可以唤醒母盒 如果…\r\n\r\n1319\r\n02:34:15,670 --> 02:34:17,260\r\n还是要这么做的话\r\n\r\n1320\r\n02:34:17,430 --> 02:34:18,840\r\n没错 开始吧\r\n\r\n1321\r\n02:34:23,680 --> 02:34:24,890\r\n你好 莱恩小姐\r\n\r\n1322\r\n02:34:25,060 --> 02:34:25,890\r\n早安\r\n\r\n1323\r\n02:34:26,060 --> 02:34:27,310\r\n我以为你不会来了\r\n\r\n1324\r\n02:34:28,600 --> 02:34:29,940\r\n最后一次\r\n\r\n1325\r\n02:34:32,480 --> 02:34:34,070\r\n封锁线 请勿跨越\r\n\r\n1326\r\n02:34:47,080 --> 02:34:50,460\r\n我看到发动机 这一定是终点线\r\n\r\n1327\r\n02:34:50,960 --> 02:34:52,040\r\n我就位了\r\n\r\n1328\r\n02:34:54,920 --> 02:34:57,010\r\n准备开始投放程序\r\n\r\n1329\r\n02:34:57,470 --> 02:34:59,090\r\n母盒准备好了\r\n\r\n1330\r\n02:35:18,610 --> 02:35:20,450\r\n这艘飞船在求我不要唤醒母盒\r\n\r\n1331\r\n02:35:20,610 --> 02:35:22,410\r\n-这是无法逆转的程序 -它很害怕\r\n\r\n1332\r\n02:35:22,570 --> 02:35:23,660\r\n它知道荒原狼会来找它\r\n\r\n1333\r\n02:35:23,830 --> 02:35:25,580\r\n我们知道了 继续吧\r\n\r\n1334\r\n02:35:25,910 --> 02:35:28,370\r\n我强烈建议不要启动\r\n\r\n1335\r\n02:35:28,540 --> 02:35:30,080\r\n巴里 我要开始倒数了\r\n\r\n1336\r\n02:35:30,250 --> 02:35:31,960\r\n这是无法逆转的程序\r\n\r\n1337\r\n02:35:32,210 --> 02:35:33,170\r\n-五 -五\r\n\r\n1338\r\n02:35:33,250 --> 02:35:34,090\r\n五\r\n\r\n1339\r\n02:35:34,250 --> 02:35:35,380\r\n-天启星有敌意 -馊主意\r\n\r\n1340\r\n02:35:35,550 --> 02:35:36,510\r\n并不是 继续吧\r\n\r\n1341\r\n02:35:36,800 --> 02:35:37,630\r\n四\r\n\r\n1342\r\n02:35:37,800 --> 02:35:38,970\r\n-四 -四\r\n\r\n1343\r\n02:35:39,130 --> 02:35:40,840\r\n-我强烈建议不要启动 -我们得立刻中止\r\n\r\n1344\r\n02:35:41,010 --> 02:35:41,970\r\n快动手\r\n\r\n1345\r\n02:35:42,300 --> 02:35:43,300\r\n-三 -三\r\n\r\n1346\r\n02:35:43,470 --> 02:35:44,390\r\n三\r\n\r\n1347\r\n02:35:44,560 --> 02:35:46,470\r\n-二 -二\r\n\r\n1348\r\n02:35:46,640 --> 02:35:48,390\r\n-二 -这是无法逆转的程序\r\n\r\n1349\r\n02:35:48,680 --> 02:35:49,640\r\n-一 -一\r\n\r\n1350\r\n02:35:50,690 --> 02:35:53,480\r\n-一 -这是无法逆转的程序\r\n\r\n1351\r\n02:37:13,900 --> 02:37:17,860\r\n正义联盟\r\n\r\n1352\r\n02:37:22,400 --> 02:37:23,990\r\n-维克多 -不\r\n\r\n1353\r\n02:37:25,030 --> 02:37:25,860\r\n上\r\n\r\n1354\r\n02:38:56,580 --> 02:38:59,630\r\n未来已经在现在扎根\r\n\r\n1355\r\n02:39:00,170 --> 02:39:01,210\r\n快趴下\r\n\r\n1356\r\n02:40:17,330 --> 02:40:22,330\r\n你若在寻找他的纪念碑 看看你周围\r\n\r\n1357\r\n02:40:45,310 --> 02:40:46,860\r\n他活过来了\r\n\r\n1358\r\n02:41:13,880 --> 02:41:16,600\r\n不太对劲 他在扫描我们\r\n\r\n1359\r\n02:41:18,720 --> 02:41:20,140\r\n什么\r\n\r\n1360\r\n02:41:35,320 --> 02:41:36,160\r\n维克多\r\n\r\n1361\r\n02:41:37,450 --> 02:41:38,450\r\n维克多\r\n\r\n1362\r\n02:41:40,740 --> 02:41:42,290\r\n-该死 -你在干嘛\r\n\r\n1363\r\n02:41:42,750 --> 02:41:44,290\r\n是我的自动防御系统\r\n\r\n1364\r\n02:41:44,460 --> 02:41:45,500\r\n它感应到危险\r\n\r\n1365\r\n02:41:45,670 --> 02:41:46,830\r\n维克多 住手\r\n\r\n1366\r\n02:41:47,000 --> 02:41:48,840\r\n-我无法控制 -住手\r\n\r\n1367\r\n02:42:01,270 --> 02:42:02,430\r\n卡尔·艾尔 不要\r\n\r\n1368\r\n02:42:10,820 --> 02:42:12,780\r\n他头脑不清楚 不知道自己是谁\r\n\r\n1369\r\n02:42:19,950 --> 02:42:22,580\r\n亚瑟 我们得制伏他\r\n\r\n1370\r\n02:42:53,150 --> 02:42:56,780\r\n卡尔·艾尔 最后的氪星之子\r\n\r\n1371\r\n02:42:57,860 --> 02:43:00,070\r\n回想你是谁\r\n\r\n1372\r\n02:43:01,700 --> 02:43:03,120\r\n告诉我你是谁\r\n\r\n1373\r\n02:44:37,920 --> 02:44:38,760\r\n快逃\r\n\r\n1374\r\n02:44:48,180 --> 02:44:49,810\r\n你最好闪边\r\n\r\n1375\r\n02:44:53,100 --> 02:44:54,100\r\n-没事吗 -没事\r\n\r\n1376\r\n02:44:54,270 --> 02:44:56,730\r\n起来 去找掩护 快去\r\n\r\n1377\r\n02:45:49,160 --> 02:45:51,200\r\n别逼我这么做\r\n\r\n1378\r\n02:46:23,900 --> 02:46:25,030\r\n克拉克\r\n\r\n1379\r\n02:46:26,110 --> 02:46:27,280\r\n克拉克 不\r\n\r\n1380\r\n02:46:38,880 --> 02:46:39,840\r\n克拉克\r\n\r\n1381\r\n02:46:40,250 --> 02:46:41,420\r\n不\r\n\r\n1382\r\n02:46:42,250 --> 02:46:44,010\r\n这世界需要你\r\n\r\n1383\r\n02:46:49,300 --> 02:46:50,220\r\n克拉克\r\n\r\n1384\r\n02:46:50,600 --> 02:46:51,850\r\n克拉克\r\n\r\n1385\r\n02:46:52,180 --> 02:46:53,970\r\n别开枪\r\n\r\n1386\r\n02:46:55,560 --> 02:46:56,690\r\n克拉克\r\n\r\n1387\r\n02:47:00,060 --> 02:47:01,440\r\n求求你\r\n\r\n1388\r\n02:47:35,680 --> 02:47:36,810\r\n求求你\r\n\r\n1389\r\n02:47:48,030 --> 02:47:49,200\r\n求求你\r\n\r\n1390\r\n02:47:49,950 --> 02:47:51,740\r\n走吧\r\n\r\n1391\r\n02:47:52,200 --> 02:47:53,200\r\n没错\r\n\r\n1392\r\n02:47:54,080 --> 02:47:55,370\r\n我们走吧\r\n\r\n1393\r\n02:48:27,940 --> 02:48:30,280\r\n真是拍谢\r\n\r\n1394\r\n02:48:39,500 --> 02:48:40,410\r\n找掩护\r\n\r\n1395\r\n02:48:40,580 --> 02:48:43,080\r\n-他来了 -母盒\r\n\r\n1396\r\n02:48:43,250 --> 02:48:44,290\r\n它在哪里\r\n\r\n1397\r\n02:48:55,010 --> 02:48:56,220\r\n快点\r\n\r\n1398\r\n02:48:57,140 --> 02:48:58,430\r\n快点\r\n\r\n1399\r\n02:49:23,960 --> 02:49:27,000\r\n注意 实验室受到入侵\r\n\r\n1400\r\n02:49:27,590 --> 02:49:29,760\r\n第四区 第三层\r\n\r\n1401\r\n02:49:29,920 --> 02:49:32,720\r\n立刻执行封锁程序\r\n\r\n1402\r\n02:50:01,290 --> 02:50:02,870\r\n把母盒给我\r\n\r\n1403\r\n02:50:16,050 --> 02:50:17,470\r\n不 不\r\n\r\n1404\r\n02:50:20,010 --> 02:50:21,720\r\n爸 等等 不要\r\n\r\n1405\r\n02:51:02,060 --> 02:51:04,930\r\n末日即将开始\r\n\r\n1406\r\n02:51:10,690 --> 02:51:11,980\r\n维克多\r\n\r\n1407\r\n02:51:14,530 --> 02:51:17,650\r\n维克多 你没事吧 站起来\r\n\r\n1408\r\n02:51:23,660 --> 02:51:24,830\r\n维克多\r\n\r\n1409\r\n02:51:25,950 --> 02:51:27,410\r\n他死了\r\n\r\n1410\r\n02:51:27,580 --> 02:51:28,580\r\n什么\r\n\r\n1411\r\n02:51:29,670 --> 02:51:30,880\r\n我父亲\r\n\r\n1412\r\n02:51:32,340 --> 02:51:35,300\r\n我没能救他 我没办法\r\n\r\n1413\r\n02:51:36,090 --> 02:51:37,380\r\n天啊\r\n\r\n1414\r\n02:51:44,310 --> 02:51:46,390\r\n他父亲是因我们而死\r\n\r\n1415\r\n02:51:46,560 --> 02:51:48,020\r\n我就说唤醒母盒是个馊主意\r\n\r\n1416\r\n02:51:48,190 --> 02:51:49,770\r\n这不是个馊主意\r\n\r\n1417\r\n02:51:49,940 --> 02:51:52,270\r\n我们需要超人 现在仍然需要\r\n\r\n1418\r\n02:51:52,440 --> 02:51:54,730\r\n不管是什么回来了 那不是超人\r\n\r\n1419\r\n02:51:54,900 --> 02:51:57,900\r\n也许是他的躯体和超能力 但那不是他\r\n\r\n1420\r\n02:51:58,070 --> 02:51:59,700\r\n那是他\r\n\r\n1421\r\n02:51:59,860 --> 02:52:01,990\r\n他认得露易丝·莱恩\r\n\r\n1422\r\n02:52:02,370 --> 02:52:04,280\r\n-谁 -他挚爱的女人\r\n\r\n1423\r\n02:52:04,660 --> 02:52:06,660\r\n-他记得她 -才怪\r\n\r\n1424\r\n02:52:07,200 --> 02:52:08,960\r\n他会去找她是因为她不怕他\r\n\r\n1425\r\n02:52:09,120 --> 02:52:10,540\r\n这叫做直觉 戴安娜\r\n\r\n1426\r\n02:52:17,970 --> 02:52:19,800\r\n等等 荒原狼去了哪儿\r\n\r\n1427\r\n02:52:19,970 --> 02:52:23,300\r\n他回去基地组装三个母盒\r\n\r\n1428\r\n02:52:23,470 --> 02:52:25,560\r\n我们不知道他的基地在哪里 或是还要多久…\r\n\r\n1429\r\n02:52:25,720 --> 02:52:26,560\r\n几个小时\r\n\r\n1430\r\n02:52:26,720 --> 02:52:28,390\r\n盒子一旦同步 形成三位一体\r\n\r\n1431\r\n02:52:28,560 --> 02:52:30,810\r\n我们不能及时阻止他 地球就完了\r\n\r\n1432\r\n02:52:31,730 --> 02:52:33,400\r\n这不像你\r\n\r\n1433\r\n02:52:35,940 --> 02:52:37,440\r\n他早就知道\r\n\r\n1434\r\n02:52:37,730 --> 02:52:39,320\r\n他早就知道了\r\n\r\n1435\r\n02:52:39,490 --> 02:52:40,900\r\n他不是想要摧毁那个母盒\r\n\r\n1436\r\n02:52:41,320 --> 02:52:43,240\r\n而是想要让它过热\r\n\r\n1437\r\n02:52:43,410 --> 02:52:46,080\r\n让核心变成核反应炉以外 地球上最热的东西\r\n\r\n1438\r\n02:52:46,240 --> 02:52:48,290\r\n-那么热的东西一定会… -热源影像系统\r\n\r\n1439\r\n02:52:48,450 --> 02:52:50,660\r\n一定会破表\r\n\r\n1440\r\n02:52:50,830 --> 02:52:54,210\r\n你父亲为了标记母盒牺牲自己\r\n\r\n1441\r\n02:52:54,380 --> 02:52:56,250\r\n我们得回我的实验室使用卫星\r\n\r\n1442\r\n02:52:56,420 --> 02:52:58,420\r\n扫描地球哪里有热异常\r\n\r\n1443\r\n02:52:58,590 --> 02:52:59,720\r\n我已经在扫描了\r\n\r\n1444\r\n02:52:59,880 --> 02:53:01,880\r\n什么 你有一颗卫星\r\n\r\n1445\r\n02:53:02,050 --> 02:53:03,010\r\n我有六颗\r\n\r\n1446\r\n02:53:03,680 --> 02:53:04,600\r\n是喔\r\n\r\n1447\r\n02:53:06,390 --> 02:53:08,390\r\n咱们去找那个混帐东西\r\n\r\n1448\r\n02:53:14,190 --> 02:53:19,480\r\n第六章\r\n\r\n1449\r\n02:53:15,930 --> 02:53:19,480\r\n“更黑暗的东西”\r\n\r\n1450\r\n02:53:29,280 --> 02:53:32,790\r\n法拍屋出售\r\n\r\n1451\r\n02:53:32,960 --> 02:53:35,040\r\n你把我带来这里\r\n\r\n1452\r\n02:53:35,210 --> 02:53:36,380\r\n你记得\r\n\r\n1453\r\n02:53:37,290 --> 02:53:38,920\r\n这是我的家\r\n\r\n1454\r\n02:53:40,840 --> 02:53:42,050\r\n你说话了\r\n\r\n1455\r\n02:53:46,090 --> 02:53:47,970\r\n我之前没有吗\r\n\r\n1456\r\n02:54:21,960 --> 02:54:24,510\r\n你母亲迟缴了房贷\r\n\r\n1457\r\n02:54:26,010 --> 02:54:28,010\r\n没有告诉任何人\r\n\r\n1458\r\n02:54:29,680 --> 02:54:31,430\r\n我不明白\r\n\r\n1459\r\n02:54:34,520 --> 02:54:36,940\r\n她的自尊心很强 克拉克\r\n\r\n1460\r\n02:54:40,070 --> 02:54:41,440\r\n穿上去\r\n\r\n1461\r\n02:54:56,370 --> 02:54:58,040\r\n她很喜欢这里\r\n\r\n1462\r\n02:55:08,840 --> 02:55:10,470\r\n我也是\r\n\r\n1463\r\n02:55:12,470 --> 02:55:13,890\r\n我也是\r\n\r\n1464\r\n02:55:41,000 --> 02:55:42,630\r\n这太酷了\r\n\r\n1465\r\n02:55:42,790 --> 02:55:44,300\r\n我带了一些朋友来\r\n\r\n1466\r\n02:55:50,840 --> 02:55:53,430\r\n天啊 太棒了\r\n\r\n1467\r\n02:55:53,600 --> 02:55:56,100\r\n大伙儿 这是阿尔弗雷德 我替他工作\r\n\r\n1468\r\n02:55:56,270 --> 02:55:58,480\r\n-阿尔弗雷德 -你好 女士\r\n\r\n1469\r\n02:56:04,940 --> 02:56:06,820\r\n这里真的很酷 阿尔弗雷德\r\n\r\n1470\r\n02:56:09,610 --> 02:56:12,030\r\n我去泡茶\r\n\r\n1471\r\n02:56:12,200 --> 02:56:13,200\r\n太好了\r\n\r\n1472\r\n02:56:13,370 --> 02:56:15,200\r\n不知道哪里有这么多杯子\r\n\r\n1473\r\n02:56:18,120 --> 02:56:20,960\r\n那就是母盒 就在那里\r\n\r\n1474\r\n02:56:21,120 --> 02:56:22,920\r\n显示可见光谱\r\n\r\n1475\r\n02:56:25,800 --> 02:56:26,630\r\n普扎诺夫\r\n\r\n1476\r\n02:56:27,210 --> 02:56:30,050\r\n离莫斯科不远的鬼城\r\n\r\n1477\r\n02:56:30,220 --> 02:56:32,890\r\n三十年前发生核事故后被废弃\r\n\r\n1478\r\n02:56:33,050 --> 02:56:34,260\r\n就连军队也不进去\r\n\r\n1479\r\n02:56:34,430 --> 02:56:35,720\r\n是啊 辐射性一定强到\r\n\r\n1480\r\n02:56:35,890 --> 02:56:38,060\r\n你的脖子会长出另一只脚\r\n\r\n1481\r\n02:56:38,230 --> 02:56:39,060\r\n不再是这样了\r\n\r\n1482\r\n02:56:39,230 --> 02:56:41,400\r\n他收集了辐射 用来创建他的基地\r\n\r\n1483\r\n02:56:41,560 --> 02:56:42,400\r\n放大\r\n\r\n1484\r\n02:56:46,400 --> 02:56:47,780\r\n他到底在盖什么\r\n\r\n1485\r\n02:56:47,940 --> 02:56:49,190\r\n三位一体在里面\r\n\r\n1486\r\n02:56:49,360 --> 02:56:50,780\r\n我们要从上面进攻\r\n\r\n1487\r\n02:56:50,950 --> 02:56:53,530\r\n炸药无法分开母盒\r\n\r\n1488\r\n02:56:53,700 --> 02:56:55,530\r\n只会强化它们的联系\r\n\r\n1489\r\n02:56:55,700 --> 02:56:56,830\r\n什么 我们不能炸掉它\r\n\r\n1490\r\n02:56:56,990 --> 02:56:58,450\r\n不能从外面\r\n\r\n1491\r\n02:57:00,040 --> 02:57:02,420\r\n我想插入合而为一的母盒\r\n\r\n1492\r\n02:57:03,130 --> 02:57:04,540\r\n和它融为一体\r\n\r\n1493\r\n02:57:04,710 --> 02:57:07,250\r\n从内部削弱它的连结 就能够再把它拆成三个\r\n\r\n1494\r\n02:57:07,420 --> 02:57:09,630\r\n不行 你不知道你会面对什么\r\n\r\n1495\r\n02:57:09,800 --> 02:57:13,340\r\n你得一个人融入三位一体\r\n\r\n1496\r\n02:57:13,510 --> 02:57:15,850\r\n这三个母盒结合起来足以毁天灭地\r\n\r\n1497\r\n02:57:16,010 --> 02:57:17,430\r\n它们存在了十亿年\r\n\r\n1498\r\n02:57:17,600 --> 02:57:19,730\r\n绝对会钻进你脑袋 找到你的弱点\r\n\r\n1499\r\n02:57:19,890 --> 02:57:22,060\r\n和你的恐惧 并用来摧毁你\r\n\r\n1500\r\n02:57:22,230 --> 02:57:24,230\r\n只要让我进去 替我争取时间\r\n\r\n1501\r\n02:57:24,480 --> 02:57:25,650\r\n你可能会死 维克多\r\n\r\n1502\r\n02:57:25,810 --> 02:57:28,110\r\n我不这样做 我们都会死\r\n\r\n1503\r\n02:57:32,860 --> 02:57:34,620\r\n我失去了一切\r\n\r\n1504\r\n02:57:40,000 --> 02:57:41,960\r\n你不是要我使用这些超能力吗\r\n\r\n1505\r\n02:57:45,040 --> 02:57:46,540\r\n我就要这么做\r\n\r\n1506\r\n02:57:46,710 --> 02:57:48,590\r\n好吧 所以…\r\n\r\n1507\r\n02:57:49,300 --> 02:57:52,550\r\n维克多想和末日母盒 合而为一拯救世界\r\n\r\n1508\r\n02:57:52,760 --> 02:57:54,930\r\n那就让他这么做吧\r\n\r\n1509\r\n02:57:55,260 --> 02:57:58,060\r\n但要让他这么做就得攻击基地\r\n\r\n1510\r\n02:57:58,220 --> 02:58:00,430\r\n深入地狱向魔鬼与他的军团…\r\n\r\n1511\r\n02:58:00,600 --> 02:58:01,640\r\n正式开战\r\n\r\n1512\r\n02:58:01,810 --> 02:58:04,060\r\n这家伙在他摧毁的星球上\r\n\r\n1513\r\n02:58:04,230 --> 02:58:08,190\r\n大概打过成千上万个超级英雄 对吧\r\n\r\n1514\r\n02:58:08,360 --> 02:58:09,860\r\n我们得假设他都赢了\r\n\r\n1515\r\n02:58:10,030 --> 02:58:13,150\r\n我才不管他在多少个地狱 打过多少恶魔\r\n\r\n1516\r\n02:58:13,320 --> 02:58:16,820\r\n他没打过我们 团结一致的我们\r\n\r\n1517\r\n02:59:07,290 --> 02:59:08,920\r\n我猜你说\"愿意\"\r\n\r\n1518\r\n02:59:09,540 --> 02:59:10,380\r\n什么\r\n\r\n1519\r\n02:59:13,840 --> 02:59:15,090\r\n那只婚戒\r\n\r\n1520\r\n02:59:18,800 --> 02:59:20,350\r\n你真的回来了\r\n\r\n1521\r\n02:59:53,840 --> 02:59:56,050\r\n我得到第二次机会\r\n\r\n1522\r\n02:59:58,340 --> 03:00:00,800\r\n绝对不会白白浪费\r\n\r\n1523\r\n03:00:59,070 --> 03:01:00,240\r\n真的是你吗\r\n\r\n1524\r\n03:01:00,400 --> 03:01:02,110\r\n真的是我 妈\r\n\r\n1525\r\n03:01:20,130 --> 03:01:22,180\r\n听好 妈\r\n\r\n1526\r\n03:01:23,760 --> 03:01:25,800\r\n他们让我回来一定有原因\r\n\r\n1527\r\n03:01:27,560 --> 03:01:29,100\r\n我得知道为什么\r\n\r\n1528\r\n03:01:49,240 --> 03:01:50,660\r\n维克多怎么样\r\n\r\n1529\r\n03:01:55,040 --> 03:01:57,790\r\n你也知道 他想独处一下\r\n\r\n1530\r\n03:01:59,380 --> 03:02:02,550\r\n我们要求一个刚失去父亲的孩子…\r\n\r\n1531\r\n03:02:02,720 --> 03:02:05,510\r\n对抗全宇宙最强大的机器\r\n\r\n1532\r\n03:02:07,350 --> 03:02:08,850\r\n这不公平\r\n\r\n1533\r\n03:02:10,600 --> 03:02:12,230\r\n我以为你不在乎\r\n\r\n1534\r\n03:02:13,640 --> 03:02:15,150\r\n我从来没这么说过\r\n\r\n1535\r\n03:02:28,080 --> 03:02:29,490\r\n怎么了\r\n\r\n1536\r\n03:02:33,410 --> 03:02:38,420\r\n我做过一个梦 不晓得 几乎就像一种预感\r\n\r\n1537\r\n03:02:39,380 --> 03:02:42,170\r\n那是世界末日\r\n\r\n1538\r\n03:02:42,340 --> 03:02:45,180\r\n巴里·艾伦就在这里\r\n\r\n1539\r\n03:02:45,340 --> 03:02:49,220\r\n他跟我说 \"露易丝·莱恩才是关键\"\r\n\r\n1540\r\n03:02:51,890 --> 03:02:55,100\r\n对超人来说…她是\r\n\r\n1541\r\n03:02:56,150 --> 03:02:57,770\r\n每个人都有心爱的人\r\n\r\n1542\r\n03:02:58,400 --> 03:03:00,270\r\n我想不只是这样\r\n\r\n1543\r\n03:03:01,150 --> 03:03:03,030\r\n这是更黑暗的东西\r\n\r\n1544\r\n03:03:07,200 --> 03:03:08,200\r\n韦恩少爷\r\n\r\n1545\r\n03:03:08,370 --> 03:03:09,870\r\n韦恩少爷\r\n\r\n1546\r\n03:03:10,700 --> 03:03:12,370\r\n你得来看看\r\n\r\n1547\r\n03:03:35,640 --> 03:03:37,350\r\n你修好了\r\n\r\n1548\r\n03:03:37,520 --> 03:03:39,230\r\n它想要飞行\r\n\r\n1549\r\n03:03:40,480 --> 03:03:41,820\r\n飞行是它的本能\r\n\r\n1550\r\n03:03:41,980 --> 03:03:43,280\r\n也是你的\r\n\r\n1551\r\n03:03:50,070 --> 03:03:52,030\r\n他会来的 阿尔弗雷德 我知道\r\n\r\n1552\r\n03:03:52,200 --> 03:03:53,830\r\n你为何这么肯定\r\n\r\n1553\r\n03:03:54,580 --> 03:03:57,160\r\n信念 阿尔弗雷德 信念\r\n\r\n1554\r\n03:04:19,270 --> 03:04:20,850\r\n终于\r\n\r\n1555\r\n03:04:22,690 --> 03:04:25,400\r\n准备迎接他的到来\r\n\r\n1556\r\n03:04:27,240 --> 03:04:31,370\r\n我即将得到救赎\r\n\r\n1557\r\n03:04:39,250 --> 03:04:40,710\r\n合而为一\r\n\r\n1558\r\n03:04:45,880 --> 03:04:48,380\r\n同步化\r\n\r\n1559\r\n03:05:32,720 --> 03:05:35,640\r\n卫星显示他打造了一个防御圆顶\r\n\r\n1560\r\n03:05:35,800 --> 03:05:36,970\r\n这是个设计缺陷\r\n\r\n1561\r\n03:05:37,140 --> 03:05:39,390\r\n把塔台射倒 圆顶就会崩垮\r\n\r\n1562\r\n03:05:39,560 --> 03:05:41,560\r\n敌人不会料到我们正面攻击\r\n\r\n1563\r\n03:05:41,730 --> 03:05:45,230\r\n是啊 因为他没想到 有人会这么疯狂\r\n\r\n1564\r\n03:05:46,230 --> 03:05:47,520\r\n布鲁斯是对的\r\n\r\n1565\r\n03:05:47,690 --> 03:05:49,280\r\n我们必须摧毁防御圆顶\r\n\r\n1566\r\n03:05:49,440 --> 03:05:51,740\r\n在它们同步化之前找到母盒\r\n\r\n1567\r\n03:05:51,900 --> 03:05:53,610\r\n要是圆顶没被摧毁呢\r\n\r\n1568\r\n03:05:53,780 --> 03:05:54,780\r\n它一定会被摧毁\r\n\r\n1569\r\n03:05:54,950 --> 03:05:56,580\r\n维克多一旦融入三位一体\r\n\r\n1570\r\n03:05:57,080 --> 03:06:00,330\r\n有巴里的协助 他就能突破母盒的防御\r\n\r\n1571\r\n03:06:00,500 --> 03:06:01,960\r\n提醒我 我该怎么做\r\n\r\n1572\r\n03:06:02,120 --> 03:06:03,750\r\n用爱的力量\r\n\r\n1573\r\n03:06:03,920 --> 03:06:06,540\r\n-巴里 -我得造成能量大爆发\r\n\r\n1574\r\n03:06:06,710 --> 03:06:07,710\r\n很好\r\n\r\n1575\r\n03:06:07,880 --> 03:06:09,760\r\n你得比以前跑得更快\r\n\r\n1576\r\n03:06:09,920 --> 03:06:12,470\r\n才能产生这么大的电流\r\n\r\n1577\r\n03:06:12,630 --> 03:06:14,640\r\n然后直接碰触维克多的身体\r\n\r\n1578\r\n03:06:14,970 --> 03:06:17,850\r\n那股能量应该能让他进入母盒\r\n\r\n1579\r\n03:06:18,010 --> 03:06:19,890\r\n维克多 之后就靠你了\r\n\r\n1580\r\n03:06:20,060 --> 03:06:22,810\r\n在它同步化之前把它扯开\r\n\r\n1581\r\n03:06:24,390 --> 03:06:26,520\r\n我们终于有了计划\r\n\r\n1582\r\n03:06:27,060 --> 03:06:28,770\r\n我们有了计划\r\n\r\n1583\r\n03:06:44,120 --> 03:06:46,170\r\n艾尔之家的标记代表希望\r\n\r\n1584\r\n03:06:46,330 --> 03:06:48,500\r\n这希望包含了一个基本的信念\r\n\r\n1585\r\n03:06:48,670 --> 03:06:52,380\r\n那就是每个人都有行善的潜力\r\n\r\n1586\r\n03:06:52,550 --> 03:06:53,380\r\n克拉克\r\n\r\n1587\r\n03:06:53,550 --> 03:06:54,840\r\n那就是你能带给他们的\r\n\r\n1588\r\n03:06:55,010 --> 03:06:56,970\r\n你被送来这里是有原因的\r\n\r\n1589\r\n03:06:57,140 --> 03:07:01,010\r\n你将给地球的人类 一个努力达到的理想\r\n\r\n1590\r\n03:07:01,680 --> 03:07:03,520\r\n就算你必须穷尽一生\r\n\r\n1591\r\n03:07:03,680 --> 03:07:07,440\r\n也得尽全力找到你来这里的原因\r\n\r\n1592\r\n03:07:07,600 --> 03:07:10,230\r\n他们会犯错 也会失败\r\n\r\n1593\r\n03:07:10,400 --> 03:07:11,730\r\n但你必须做出选择\r\n\r\n1594\r\n03:07:12,530 --> 03:07:14,950\r\n他们将与你一起迎向阳光\r\n\r\n1595\r\n03:07:15,110 --> 03:07:19,070\r\n你必须选择是否要 骄傲地站在全人类面前\r\n\r\n1596\r\n03:07:19,240 --> 03:07:22,410\r\n你将帮助他们完成奇迹\r\n\r\n1597\r\n03:07:39,550 --> 03:07:44,060\r\n氪星所有的希望和梦想 都寄托在你身上\r\n\r\n1598\r\n03:07:44,220 --> 03:07:46,480\r\n我真为你感到骄傲 儿子\r\n\r\n1599\r\n03:07:47,810 --> 03:07:49,860\r\n你母亲和我都很爱你\r\n\r\n1600\r\n03:07:50,520 --> 03:07:54,070\r\n你母亲和我都知道你会改变世界\r\n\r\n1601\r\n03:07:55,360 --> 03:07:57,200\r\n你的心受到考验\r\n\r\n1602\r\n03:07:58,490 --> 03:08:00,450\r\n我知道这很难 克拉克\r\n\r\n1603\r\n03:08:01,200 --> 03:08:04,120\r\n但你给了他们的世界一个希望\r\n\r\n1604\r\n03:08:04,290 --> 03:08:06,960\r\n你必须让他们看到你是谁\r\n\r\n1605\r\n03:08:07,660 --> 03:08:09,370\r\n爱他们吧 卡尔·艾尔\r\n\r\n1606\r\n03:08:10,000 --> 03:08:12,130\r\n就像我们爱你一样\r\n\r\n1607\r\n03:08:14,590 --> 03:08:15,710\r\n飞吧 儿子\r\n\r\n1608\r\n03:08:16,760 --> 03:08:17,970\r\n是时候了\r\n\r\n1609\r\n03:09:21,740 --> 03:09:24,870\r\n我要把塔台射倒 破坏力场圆顶\r\n\r\n1610\r\n03:09:25,030 --> 03:09:26,160\r\n不管你们看到什么\r\n\r\n1611\r\n03:09:27,490 --> 03:09:29,450\r\n都要按照计划\r\n\r\n1612\r\n03:09:31,330 --> 03:09:33,250\r\n这就是我把你们聚在一起的原因\r\n\r\n1613\r\n03:10:13,330 --> 03:10:15,080\r\n布鲁斯 撤退 你不会成功的\r\n\r\n1614\r\n03:10:18,880 --> 03:10:20,920\r\n只要敲大声一点\r\n\r\n1615\r\n03:10:45,910 --> 03:10:47,490\r\n杀了他\r\n\r\n1616\r\n03:10:47,660 --> 03:10:50,410\r\n快去捍卫三位一体\r\n\r\n1617\r\n03:10:55,710 --> 03:10:56,630\r\n惨了\r\n\r\n1618\r\n03:11:16,940 --> 03:11:17,860\r\n塔台倒了\r\n\r\n1619\r\n03:11:19,480 --> 03:11:20,900\r\n收到吗\r\n\r\n1620\r\n03:11:21,530 --> 03:11:22,650\r\n收到了\r\n\r\n1621\r\n03:11:23,740 --> 03:11:25,110\r\n你没事吗\r\n\r\n1622\r\n03:11:26,360 --> 03:11:28,950\r\n布鲁斯\r\n\r\n1623\r\n03:11:29,240 --> 03:11:30,120\r\n快去反应炉\r\n\r\n1624\r\n03:11:30,280 --> 03:11:32,790\r\n我会尽量把这些怪物引开来\r\n\r\n1625\r\n03:11:32,950 --> 03:11:33,790\r\n那是什么意思\r\n\r\n1626\r\n03:11:36,790 --> 03:11:38,790\r\n别担心我 快去找到母盒\r\n\r\n1627\r\n03:11:41,460 --> 03:11:42,630\r\n它们来了\r\n\r\n1628\r\n03:11:43,010 --> 03:11:43,920\r\n布鲁斯\r\n\r\n1629\r\n03:11:46,840 --> 03:11:48,140\r\n失去讯号\r\n\r\n1630\r\n03:11:49,850 --> 03:11:51,100\r\n上吧\r\n\r\n1631\r\n03:12:30,010 --> 03:12:31,850\r\n跟我来呀 你们这群臭虫\r\n\r\n1632\r\n03:13:51,800 --> 03:13:52,970\r\n严重受损\r\n\r\n1633\r\n03:14:32,970 --> 03:14:34,220\r\n你真的发疯了\r\n\r\n1634\r\n03:15:01,120 --> 03:15:02,250\r\n不客气\r\n\r\n1635\r\n03:15:02,410 --> 03:15:03,710\r\n厉害 兄弟\r\n\r\n1636\r\n03:16:36,800 --> 03:16:38,430\r\n放心 我们能搞定\r\n\r\n1637\r\n03:16:38,590 --> 03:16:39,970\r\n你去做该做的事\r\n\r\n1638\r\n03:17:35,770 --> 03:17:37,280\r\n我猜你就是阿尔弗雷德\r\n\r\n1639\r\n03:17:39,150 --> 03:17:40,450\r\n肯特少爷\r\n\r\n1640\r\n03:17:42,490 --> 03:17:43,990\r\n他说你会来\r\n\r\n1641\r\n03:17:45,700 --> 03:17:49,120\r\n希望你没有来得太晚\r\n\r\n1642\r\n03:17:59,970 --> 03:18:01,050\r\n喂\r\n\r\n1643\r\n03:18:10,350 --> 03:18:11,690\r\n记得我吗\r\n\r\n1644\r\n03:18:14,230 --> 03:18:15,650\r\n第二回合\r\n\r\n1645\r\n03:18:16,360 --> 03:18:17,520\r\n好啊\r\n\r\n1646\r\n03:18:39,050 --> 03:18:40,420\r\n上吧\r\n\r\n1647\r\n03:18:41,380 --> 03:18:43,680\r\n告诉我 亚马逊女战士\r\n\r\n1648\r\n03:18:43,840 --> 03:18:47,140\r\n你为何抛弃自己的姐妹\r\n\r\n1649\r\n03:18:48,060 --> 03:18:50,470\r\n跑来跟这些卑微的生物\r\n\r\n1650\r\n03:18:50,640 --> 03:18:53,940\r\n混在一起\r\n\r\n1651\r\n03:18:54,140 --> 03:18:56,980\r\n你没能赶去保护她们被我屠杀\r\n\r\n1652\r\n03:18:57,230 --> 03:18:59,440\r\n可悲的是 你本来可以的\r\n\r\n1653\r\n03:19:40,230 --> 03:19:41,940\r\n巴里 我就位了\r\n\r\n1654\r\n03:20:00,710 --> 03:20:03,420\r\n好 我来产生电流\r\n\r\n1655\r\n03:20:04,050 --> 03:20:05,130\r\n你来倒数\r\n\r\n1656\r\n03:20:06,300 --> 03:20:07,550\r\n等我倒数到一\r\n\r\n1657\r\n03:20:08,220 --> 03:20:10,180\r\n三 二…\r\n\r\n1658\r\n03:20:13,350 --> 03:20:14,730\r\n放开我\r\n\r\n1659\r\n03:20:15,230 --> 03:20:16,560\r\n维克多\r\n\r\n1660\r\n03:20:52,640 --> 03:20:54,180\r\n维克多\r\n\r\n1661\r\n03:20:58,020 --> 03:21:00,520\r\n我看着你的小岛燃烧\r\n\r\n1662\r\n03:21:00,690 --> 03:21:04,150\r\n你的姐妹哀求我饶她们一命\r\n\r\n1663\r\n03:21:04,320 --> 03:21:06,570\r\n你母亲也一样\r\n\r\n1664\r\n03:21:06,940 --> 03:21:07,950\r\n骗子\r\n\r\n1665\r\n03:21:33,680 --> 03:21:35,680\r\n我撑不住了\r\n\r\n1666\r\n03:21:36,560 --> 03:21:37,560\r\n维克多\r\n\r\n1667\r\n03:21:59,790 --> 03:22:02,000\r\n维克多 我撑不住了\r\n\r\n1668\r\n03:22:08,670 --> 03:22:10,920\r\n为了达克赛德\r\n\r\n1669\r\n03:22:14,890 --> 03:22:17,260\r\n没什么用\r\n\r\n1670\r\n03:23:01,770 --> 03:23:02,890\r\n好吧\r\n\r\n1671\r\n03:23:03,060 --> 03:23:04,650\r\n卡尔·艾尔\r\n\r\n1672\r\n03:23:43,180 --> 03:23:45,390\r\n巴里 我连上了母盒\r\n\r\n1673\r\n03:23:45,560 --> 03:23:47,520\r\n我需要电流才能进去\r\n\r\n1674\r\n03:24:09,590 --> 03:24:10,590\r\n巴里\r\n\r\n1675\r\n03:24:11,500 --> 03:24:13,170\r\n巴里 你没事吧\r\n\r\n1676\r\n03:24:14,800 --> 03:24:15,630\r\n巴里\r\n\r\n1677\r\n03:24:15,800 --> 03:24:19,390\r\n我没力了 我得喘口气\r\n\r\n1678\r\n03:24:36,490 --> 03:24:39,320\r\n巴里 你在哪里 它快要同步化了\r\n\r\n1679\r\n03:24:39,570 --> 03:24:41,330\r\n好吧 好吧\r\n\r\n1680\r\n03:24:42,160 --> 03:24:44,330\r\n喔买尬 快点愈合 巴里\r\n\r\n1681\r\n03:24:44,500 --> 03:24:46,160\r\n愈合啊\r\n\r\n1682\r\n03:25:12,020 --> 03:25:13,570\r\n巴里\r\n\r\n1683\r\n03:25:26,500 --> 03:25:28,210\r\n太迟了\r\n\r\n1684\r\n03:25:29,540 --> 03:25:30,960\r\n噢 不\r\n\r\n1685\r\n03:25:35,170 --> 03:25:36,840\r\n他来了\r\n\r\n1686\r\n03:26:06,330 --> 03:26:07,160\r\n好吧\r\n\r\n1687\r\n03:26:07,330 --> 03:26:09,910\r\n我得超越光速 跑得比光速更快\r\n\r\n1688\r\n03:26:10,080 --> 03:26:13,330\r\n你得打破规则 巴里 现在就得这么做\r\n\r\n1689\r\n03:26:26,390 --> 03:26:28,100\r\n爸…\r\n\r\n1690\r\n03:26:31,940 --> 03:26:34,270\r\n不管发生什么事 我都要你知道\r\n\r\n1691\r\n03:26:36,980 --> 03:26:38,980\r\n你儿子也是一个英雄 爸\r\n\r\n1692\r\n03:26:42,200 --> 03:26:44,110\r\n精英中的精英\r\n\r\n1693\r\n03:27:39,550 --> 03:27:42,090\r\n创造自己的未来\r\n\r\n1694\r\n03:27:48,550 --> 03:27:50,510\r\n也创造自己的过去\r\n\r\n1695\r\n03:27:55,100 --> 03:27:58,650\r\n一切都没事了\r\n\r\n1696\r\n03:28:28,640 --> 03:28:30,350\r\n斯通 哥谭市立大学\r\n\r\n1697\r\n03:28:35,020 --> 03:28:37,600\r\n哥谭市\r\n\r\n1698\r\n03:28:45,690 --> 03:28:47,860\r\n我们一直在等着你 维克多\r\n\r\n1699\r\n03:28:48,990 --> 03:28:51,070\r\n我破碎的儿子\r\n\r\n1700\r\n03:28:53,490 --> 03:28:55,500\r\n你不会再孤单了\r\n\r\n1701\r\n03:28:55,660 --> 03:28:57,330\r\n我们会再全家团圆\r\n\r\n1702\r\n03:29:05,170 --> 03:29:07,260\r\n我们可以像以前一样\r\n\r\n1703\r\n03:29:11,600 --> 03:29:13,720\r\n让你恢复原状\r\n\r\n1704\r\n03:29:25,570 --> 03:29:27,320\r\n我并没有破碎\r\n\r\n1705\r\n03:29:37,040 --> 03:29:38,910\r\n我也并不孤单\r\n\r\n1706\r\n03:29:55,720 --> 03:29:56,720\r\n超人\r\n\r\n1707\r\n03:31:27,400 --> 03:31:29,360\r\n我跟你说过\r\n\r\n1708\r\n03:31:30,940 --> 03:31:33,570\r\n荒原狼会失败\r\n\r\n1709\r\n03:31:34,530 --> 03:31:38,200\r\n没错 你是说过\r\n\r\n1710\r\n03:31:38,870 --> 03:31:43,370\r\n我的主人 母盒被摧毁了\r\n\r\n1711\r\n03:31:44,250 --> 03:31:48,000\r\n你要怎么得到你的大奖\r\n\r\n1712\r\n03:31:48,250 --> 03:31:51,670\r\n找到了反生命方程序 狄萨德\r\n\r\n1713\r\n03:31:51,840 --> 03:31:56,510\r\n我们会不择手段得到它\r\n\r\n1714\r\n03:31:59,680 --> 03:32:01,180\r\n准备出动舰队\r\n\r\n1715\r\n03:32:02,100 --> 03:32:04,520\r\n我们要用老方法\r\n\r\n1716\r\n03:34:07,080 --> 03:34:12,270\r\n后记\r\n\r\n1717\r\n03:34:08,690 --> 03:34:12,270\r\n再为人父\r\n\r\n1718\r\n03:34:28,870 --> 03:34:31,000\r\n这又是你父亲\r\n\r\n1719\r\n03:34:38,300 --> 03:34:42,630\r\n现在 让我说出内心话 不是身为一个科学家\r\n\r\n1720\r\n03:34:42,800 --> 03:34:44,470\r\n而是身为一个父亲\r\n\r\n1721\r\n03:34:45,680 --> 03:34:47,720\r\n让我再为人父\r\n\r\n1722\r\n03:34:50,270 --> 03:34:53,690\r\n我把你带到这世界 又把你带回来\r\n\r\n1723\r\n03:34:53,850 --> 03:34:57,480\r\n你无法想像我有多为你感到骄傲\r\n\r\n1724\r\n03:34:58,030 --> 03:34:59,690\r\n一直都是如此\r\n\r\n1725\r\n03:35:01,820 --> 03:35:06,700\r\n我浪费了这么多年没有陪你 也犯了太多错没有改过\r\n\r\n1726\r\n03:35:09,160 --> 03:35:11,040\r\n一切都会崩裂 维克多\r\n\r\n1727\r\n03:35:11,620 --> 03:35:13,870\r\n一切都会改变\r\n\r\n1728\r\n03:35:24,550 --> 03:35:26,640\r\n我得去见我父亲\r\n\r\n1729\r\n03:36:02,210 --> 03:36:04,050\r\n这世界伤痕累累\r\n\r\n1730\r\n03:36:04,220 --> 03:36:05,300\r\n支离破碎\r\n\r\n1731\r\n03:36:05,470 --> 03:36:07,260\r\n无法改变\r\n\r\n1732\r\n03:36:08,050 --> 03:36:11,140\r\n飞船是你的了 小子 你是老大\r\n\r\n1733\r\n03:36:13,430 --> 03:36:16,600\r\n\"蔡瑞恩 纳米科技总监\"\r\n\r\n1734\r\n03:36:16,770 --> 03:36:18,270\r\n那是你的专长\r\n\r\n1735\r\n03:36:18,940 --> 03:36:20,360\r\n没错\r\n\r\n1736\r\n03:36:20,940 --> 03:36:22,530\r\n那是我的专长\r\n\r\n1737\r\n03:36:27,570 --> 03:36:32,910\r\n但世界不能在过去修复 只有在未来才能\r\n\r\n1738\r\n03:36:34,790 --> 03:36:38,670\r\n未来与现在\r\n\r\n1739\r\n03:36:38,830 --> 03:36:41,800\r\n至少要有30 45公尺\r\n\r\n1740\r\n03:36:42,380 --> 03:36:43,710\r\n至少\r\n\r\n1741\r\n03:36:44,840 --> 03:36:46,470\r\n一张大圆桌\r\n\r\n1742\r\n03:36:46,630 --> 03:36:48,800\r\n六张椅子 就在那里\r\n\r\n1743\r\n03:36:49,930 --> 03:36:51,560\r\n但还能坐更多人\r\n\r\n1744\r\n03:36:53,970 --> 03:36:55,600\r\n还能坐更多人\r\n\r\n1745\r\n03:36:56,600 --> 03:36:58,350\r\n老天保佑我们\r\n\r\n1746\r\n03:37:00,150 --> 03:37:02,150\r\n现在就是你\r\n\r\n1747\r\n03:37:05,860 --> 03:37:07,240\r\n什么\r\n\r\n1748\r\n03:37:07,400 --> 03:37:10,200\r\n这是刑事实验室最烂的工作\r\n\r\n1749\r\n03:37:10,370 --> 03:37:12,740\r\n不过我入门了\r\n\r\n1750\r\n03:37:12,910 --> 03:37:14,500\r\n这是\"真正\"的工作\r\n\r\n1751\r\n03:37:15,290 --> 03:37:16,410\r\n\"真正的\"\r\n\r\n1752\r\n03:37:20,630 --> 03:37:22,670\r\n你入门了\r\n\r\n1753\r\n03:37:25,010 --> 03:37:26,130\r\n大家不都是这么说吗\r\n\r\n1754\r\n03:37:26,300 --> 03:37:28,220\r\n你入门了\r\n\r\n1755\r\n03:37:28,380 --> 03:37:30,680\r\n是啊 大家都是这么说\r\n\r\n1756\r\n03:37:30,840 --> 03:37:32,260\r\n他入门了\r\n\r\n1757\r\n03:37:32,550 --> 03:37:35,020\r\n-那是我的乖儿子 -噢 天啊\r\n\r\n1758\r\n03:37:35,220 --> 03:37:36,560\r\n我什么都没教他\r\n\r\n1759\r\n03:37:36,730 --> 03:37:38,770\r\n-爸 你会再被喷辣椒水 -好样的\r\n\r\n1760\r\n03:37:42,270 --> 03:37:43,980\r\n你的前途无量\r\n\r\n1761\r\n03:37:46,110 --> 03:37:47,360\r\n谢了 爸\r\n\r\n1762\r\n03:37:47,740 --> 03:37:48,570\r\n现在\r\n\r\n1763\r\n03:37:48,740 --> 03:37:51,820\r\n现在是你崛起的时刻 维克多\r\n\r\n1764\r\n03:37:52,120 --> 03:37:55,080\r\n光是说声\"谢谢你\"并不够\r\n\r\n1765\r\n03:37:55,240 --> 03:37:58,620\r\n我只是弥补一个错误而已\r\n\r\n1766\r\n03:38:09,050 --> 03:38:11,510\r\n你怎么向银行把房子要回来的\r\n\r\n1767\r\n03:38:11,970 --> 03:38:13,970\r\n我买下了银行\r\n\r\n1768\r\n03:38:16,390 --> 03:38:18,680\r\n对了 恭喜了\r\n\r\n1769\r\n03:38:19,020 --> 03:38:20,950\r\n坚持下去 勇往直前\r\n\r\n1770\r\n03:38:20,600 --> 03:38:21,900\r\n挚爱的父亲\r\n塞拉斯·斯通 1969-2017\r\n\r\n1771\r\n03:38:20,950 --> 03:38:24,440\r\n当一个我未曾当过的英雄\r\n\r\n1772\r\n03:38:26,280 --> 03:38:28,570\r\n在勇士之中占有一席之地\r\n\r\n1773\r\n03:38:28,740 --> 03:38:33,660\r\n从前 现在与未来\r\n\r\n1774\r\n03:39:06,320 --> 03:39:09,230\r\n你该挺身而出了\r\n\r\n1775\r\n03:39:12,990 --> 03:39:14,490\r\n勇敢奋战\r\n\r\n1776\r\n03:39:17,120 --> 03:39:18,540\r\n努力发掘\r\n\r\n1777\r\n03:39:23,290 --> 03:39:25,380\r\n愈合与爱\r\n\r\n1778\r\n03:39:28,960 --> 03:39:30,010\r\n赢得胜利\r\n\r\n1779\r\n03:39:56,620 --> 03:39:58,200\r\n关键时刻…\r\n\r\n1780\r\n03:39:58,490 --> 03:39:59,870\r\n就是现在\r\n\r\n1781\r\n03:40:09,040 --> 03:40:10,300\r\n准备好了吗\r\n\r\n1782\r\n03:40:10,460 --> 03:40:11,760\r\n来吧 史蒂芬\r\n\r\n1783\r\n03:40:15,380 --> 03:40:16,680\r\n继续走吧\r\n\r\n1784\r\n03:40:18,600 --> 03:40:19,720\r\n走吧\r\n\r\n1785\r\n03:40:21,520 --> 03:40:23,270\r\n来吧 卢瑟 走吧\r\n\r\n1786\r\n03:40:26,940 --> 03:40:28,060\r\n卢瑟\r\n\r\n1787\r\n03:40:33,070 --> 03:40:34,070\r\n打开二号牢房 卡尔\r\n\r\n1788\r\n03:40:43,250 --> 03:40:44,540\r\n卢瑟\r\n\r\n1789\r\n03:40:49,590 --> 03:40:52,800\r\n别闹了 卢瑟 不然我要进去教训你\r\n\r\n1790\r\n03:41:20,190 --> 03:41:22,410\r\n阿卡姆 哥谭市\r\n\r\n1791\r\n03:41:27,480 --> 03:41:30,130\r\n阿卡姆精神病院\r\n\r\n1792\r\n03:42:22,050 --> 03:42:23,350\r\n他来了\r\n\r\n1793\r\n03:42:24,100 --> 03:42:25,350\r\n欢迎上船\r\n\r\n1794\r\n03:42:25,510 --> 03:42:27,310\r\n来一杯顶级香槟\r\n\r\n1795\r\n03:42:27,470 --> 03:42:29,350\r\n我只是在庆祝神的回归\r\n\r\n1796\r\n03:42:29,520 --> 03:42:31,810\r\n从地底回到天空\r\n\r\n1797\r\n03:42:32,190 --> 03:42:34,440\r\n听说你脑筋秀逗了\r\n\r\n1798\r\n03:42:35,110 --> 03:42:36,320\r\n本来是 谢谢你\r\n\r\n1799\r\n03:42:36,480 --> 03:42:40,780\r\n直到阿卡汉的良医 让我的头脑再度清晰\r\n\r\n1800\r\n03:42:40,950 --> 03:42:44,240\r\n你自愿免费干掉蝙蝠侠\r\n\r\n1801\r\n03:42:44,410 --> 03:42:45,910\r\n为什么这么好心\r\n\r\n1802\r\n03:42:46,660 --> 03:42:47,740\r\n这是私人恩怨\r\n\r\n1803\r\n03:42:48,410 --> 03:42:51,210\r\n让我猜 以眼还眼\r\n\r\n1804\r\n03:42:53,290 --> 03:42:55,000\r\n你说你有我要的东西\r\n\r\n1805\r\n03:42:55,170 --> 03:42:56,590\r\n你最好别浪费我的时间\r\n\r\n1806\r\n03:42:57,000 --> 03:43:00,670\r\n我哪敢惹你呀 威尔森先生\r\n\r\n1807\r\n03:43:00,840 --> 03:43:04,430\r\n我有更重要的事要做 所以得好好活着\r\n\r\n1808\r\n03:43:05,390 --> 03:43:08,850\r\n但如果你想找到蝙蝠侠\r\n\r\n1809\r\n03:43:09,020 --> 03:43:12,100\r\n有件事可以帮你大忙\r\n\r\n1810\r\n03:43:13,440 --> 03:43:17,570\r\n他的名字是布鲁斯·韦恩\r\n\r\n1811\r\n03:43:21,650 --> 03:43:23,200\r\n现在想一想\r\n\r\n1812\r\n03:43:25,530 --> 03:43:27,450\r\n这件事的确值得庆祝\r\n\r\n1813\r\n03:43:28,580 --> 03:43:30,000\r\n好样的\r\n\r\n1814\r\n03:44:34,310 --> 03:44:35,520\r\n安全\r\n\r\n1815\r\n03:44:41,020 --> 03:44:42,530\r\n还有多远\r\n\r\n1816\r\n03:44:43,780 --> 03:44:44,990\r\n就快到了\r\n\r\n1817\r\n03:44:47,240 --> 03:44:48,780\r\n我们得快点\r\n\r\n1818\r\n03:44:48,950 --> 03:44:50,450\r\n不能在外面待太久\r\n\r\n1819\r\n03:44:50,620 --> 03:44:52,240\r\n他会来找我们\r\n\r\n1820\r\n03:44:55,210 --> 03:44:56,830\r\n让他来\r\n\r\n1821\r\n03:44:57,330 --> 03:44:58,960\r\n让那个混蛋来吧\r\n\r\n1822\r\n03:45:00,420 --> 03:45:04,210\r\n他杀了亚瑟 我要一刀捅死他\r\n\r\n1823\r\n03:45:05,010 --> 03:45:06,930\r\n我要让他付出代价\r\n\r\n1824\r\n03:45:08,640 --> 03:45:10,930\r\n我知道你的感受 湄拉\r\n\r\n1825\r\n03:45:11,430 --> 03:45:13,930\r\n你一点都不知道\r\n\r\n1826\r\n03:45:14,430 --> 03:45:18,560\r\n但我们得按照计划才有机会成功\r\n\r\n1827\r\n03:45:26,490 --> 03:45:29,910\r\n你曾经爱过谁\r\n\r\n1828\r\n03:45:44,050 --> 03:45:47,220\r\n你错了 小美人鱼\r\n\r\n1829\r\n03:45:50,970 --> 03:45:54,390\r\n他很了解失去挚爱的感受\r\n\r\n1830\r\n03:45:56,350 --> 03:45:58,600\r\n就像是…\r\n\r\n1831\r\n03:45:59,940 --> 03:46:01,310\r\n一个父亲\r\n\r\n1832\r\n03:46:02,770 --> 03:46:04,110\r\n和一个母亲\r\n\r\n1833\r\n03:46:05,110 --> 03:46:08,150\r\n你说下一句话前最好小心一点\r\n\r\n1834\r\n03:46:09,820 --> 03:46:11,820\r\n或是一个养子\r\n\r\n1835\r\n03:46:15,580 --> 03:46:17,200\r\n对不对…\r\n\r\n1836\r\n03:46:18,750 --> 03:46:20,210\r\n蝙蝠侠\r\n\r\n1837\r\n03:46:23,460 --> 03:46:26,670\r\n也许那只臭美人鱼是对的\r\n\r\n1838\r\n03:46:28,510 --> 03:46:32,800\r\n你对死亡麻木之前 还有多少人会死在你怀里\r\n\r\n1839\r\n03:46:34,390 --> 03:46:36,270\r\n你说话一点都不小心\r\n\r\n1840\r\n03:46:37,520 --> 03:46:40,640\r\n你还要看着多少死人的眼睛\r\n\r\n1841\r\n03:46:41,350 --> 03:46:43,730\r\n才会彻底心死\r\n\r\n1842\r\n03:46:44,270 --> 03:46:47,940\r\n我已经心死了很久\r\n\r\n1843\r\n03:46:48,110 --> 03:46:50,030\r\n但就连我也有忍耐极限\r\n\r\n1844\r\n03:46:50,200 --> 03:46:51,910\r\n你敢跨过那极限 我发誓会…\r\n\r\n1845\r\n03:46:52,070 --> 03:46:54,370\r\n你会怎样 布鲁斯杀了我\r\n\r\n1846\r\n03:46:55,080 --> 03:46:56,870\r\n你不会杀我\r\n\r\n1847\r\n03:46:57,740 --> 03:46:59,710\r\n我是你最好的朋友\r\n\r\n1848\r\n03:47:00,210 --> 03:47:04,250\r\n而且 谁会摸你的蛋蛋\r\n\r\n1849\r\n03:47:06,250 --> 03:47:07,630\r\n反正呢\r\n\r\n1850\r\n03:47:08,920 --> 03:47:10,470\r\n你需要我\r\n\r\n1851\r\n03:47:11,510 --> 03:47:13,010\r\n你…\r\n\r\n1852\r\n03:47:13,550 --> 03:47:19,180\r\n让她死以后造成的这个世界 需要我帮你恢复原状\r\n\r\n1853\r\n03:47:21,770 --> 03:47:23,020\r\n可怜的露易丝\r\n\r\n1854\r\n03:47:23,810 --> 03:47:26,610\r\n她受尽了折磨\r\n\r\n1855\r\n03:47:32,490 --> 03:47:33,950\r\n我常常在想\r\n\r\n1856\r\n03:47:34,910 --> 03:47:39,040\r\n你在多少个平行时空毁灭世界 老实说…\r\n\r\n1857\r\n03:47:40,200 --> 03:47:44,370\r\n都是因为你没种让自己死\r\n\r\n1858\r\n03:47:48,960 --> 03:47:52,760\r\n所以我还是一样比你更成熟\r\n\r\n1859\r\n03:47:56,600 --> 03:47:58,060\r\n停战吧\r\n\r\n1860\r\n03:47:58,890 --> 03:48:00,180\r\n布鲁斯\r\n\r\n1861\r\n03:48:02,940 --> 03:48:07,020\r\n只要你有这张牌 我们就停战\r\n\r\n1862\r\n03:48:10,070 --> 03:48:13,280\r\n但你只要把它撕成一半 我就很乐意跟你谈谈\r\n\r\n1863\r\n03:48:13,450 --> 03:48:16,450\r\n你为什么要派那个神奇小子\r\n\r\n1864\r\n03:48:18,200 --> 03:48:20,040\r\n去做一个男人的工作\r\n\r\n1865\r\n03:48:23,460 --> 03:48:25,250\r\n真的很好笑\r\n\r\n1866\r\n03:48:25,420 --> 03:48:28,460\r\n你竟然敢说有多少人死在我怀里\r\n\r\n1867\r\n03:48:28,630 --> 03:48:30,340\r\n当我把哈莉·奎茵抱在怀里\r\n\r\n1868\r\n03:48:30,500 --> 03:48:32,970\r\n她满身是血 奄奄一息时\r\n\r\n1869\r\n03:48:33,130 --> 03:48:36,680\r\n她用最后一口气哀求我\r\n\r\n1870\r\n03:48:36,840 --> 03:48:39,100\r\n当我杀你的时候\r\n\r\n1871\r\n03:48:39,260 --> 03:48:42,680\r\n别搞错 我一定会他妈的杀了你\r\n\r\n1872\r\n03:48:42,850 --> 03:48:44,690\r\n她要我慢慢来\r\n\r\n1873\r\n03:48:45,890 --> 03:48:47,860\r\n我会信守这个承诺\r\n\r\n1874\r\n03:49:19,640 --> 03:49:21,220\r\n你真会演戏\r\n\r\n1875\r\n03:49:25,520 --> 03:49:27,100\r\n差点就唬住我了\r\n\r\n1876\r\n03:49:46,580 --> 03:49:47,660\r\n我们要躲在哪里\r\n\r\n1877\r\n03:49:47,830 --> 03:49:50,080\r\n他永远不会料到的地方\r\n\r\n1878\r\n03:49:50,540 --> 03:49:53,460\r\n还是觉得带着他是个好主意吗\r\n\r\n1879\r\n03:49:54,550 --> 03:49:56,090\r\n你觉得呢\r\n\r\n1880\r\n03:50:02,180 --> 03:50:03,180\r\n他找到我们了\r\n\r\n1881\r\n03:51:32,350 --> 03:51:33,810\r\n我能帮你吗\r\n\r\n1882\r\n03:51:35,190 --> 03:51:38,690\r\n你一定知道达克赛德不会放过地球\r\n\r\n1883\r\n03:51:38,860 --> 03:51:41,860\r\n反生命方程序就在这里\r\n\r\n1884\r\n03:51:42,030 --> 03:51:44,820\r\n我们得赶在他之前找到它\r\n\r\n1885\r\n03:51:44,990 --> 03:51:46,700\r\n决战时刻即将到来\r\n\r\n1886\r\n03:51:46,990 --> 03:51:48,740\r\n我是来帮忙的\r\n\r\n1887\r\n03:51:48,910 --> 03:51:51,160\r\n抱歉 你是哪位\r\n\r\n1888\r\n03:51:51,330 --> 03:51:56,420\r\n我有很多名字和很多形体 就像你一样…\r\n\r\n1889\r\n03:51:57,040 --> 03:51:59,670\r\n我发现自己要对这世界负责\r\n\r\n1890\r\n03:51:59,840 --> 03:52:02,300\r\n我也该为它而战了\r\n\r\n1891\r\n03:52:05,840 --> 03:52:07,970\r\n我们是需要帮助\r\n\r\n1892\r\n03:52:08,180 --> 03:52:11,390\r\n所以很高兴你来了\r\n\r\n1893\r\n03:52:12,640 --> 03:52:14,810\r\n我没想过会看到地球的守护者\r\n\r\n1894\r\n03:52:14,980 --> 03:52:17,150\r\n会团结一致 并肩作战\r\n\r\n1895\r\n03:52:18,150 --> 03:52:20,530\r\n没有你就不会发生 布鲁斯\r\n\r\n1896\r\n03:52:21,990 --> 03:52:24,360\r\n你父母会为你感到骄傲\r\n\r\n1897\r\n03:52:25,740 --> 03:52:26,910\r\n希望如此\r\n\r\n1898\r\n03:52:32,960 --> 03:52:35,920\r\n我会保持联系\r\n\r\n1899\r\n03:52:36,960 --> 03:52:41,000\r\n对了 有些人叫我…\r\n\r\n1900\r\n03:52:41,170 --> 03:52:43,470\r\n火星猎人\r\n\r\n1901\r\n03:52:51,180 --> 03:52:53,520\r\n我猜我会再见到你\r\n\r\n1902\r\n03:53:23,960 --> 03:53:30,060\r\n献给秋\r\n\r\n"
  },
  {
    "path": "2021/3-21-subtitle-rejust/从视频分离的字幕.srt",
    "content": "1\n00:00:00,046 --> 00:00:04,424\nBut before you see\nJustice League I wanted to say\n\n2\n00:00:04,425 --> 00:00:09,054\na huge thank you to all of the\nfans that made this possible.\n\n3\n00:00:09,055 --> 00:00:13,225\nYour amazing and generous\nsupport for AFSP,\n\n4\n00:00:13,226 --> 00:00:18,480\n...your incredible passion for\nthis vision that you're about\n\n5\n00:00:18,481 --> 00:00:20,984\nto get a chance to see and\nthat you made happen.\n\n6\n00:00:21,109 --> 00:00:26,697\nSo on behalf of myself and\nDebbie, thank you so much\n\n7\n00:00:26,698 --> 00:00:30,326\nand check it out,\nit's streaming now.\n\n8\n00:06:45,076 --> 00:06:46,702\nAlert the queen.\n\n9\n00:07:06,472 --> 00:07:07,682\nHyah!\n\n10\n00:09:37,289 --> 00:09:40,251\nBruce Vayne.\n\n11\n00:09:40,334 --> 00:09:42,002\nBruce Wayne.\n\n12\n00:09:59,812 --> 00:10:01,355\nTalk.\n\n13\n00:10:02,648 --> 00:10:04,275\nI believe there is a stranger.\n\n14\n00:10:04,358 --> 00:10:07,069\nComes to this village\nfrom the sea.\n\n15\n00:10:07,153 --> 00:10:10,239\nHe comes in the winter\nwhen the people are hungry.\n\n16\n00:10:10,322 --> 00:10:12,533\nHe brings fish.\n\n17\n00:10:12,658 --> 00:10:14,368\nHe comes on the king tide.\n\n18\n00:10:14,493 --> 00:10:15,578\nThat was last night.\n\n19\n00:10:22,126 --> 00:10:24,587\nYou have eyes, so see.\n\n20\n00:10:24,628 --> 00:10:26,297\nIcebergs in the harbor.\n\n21\n00:10:26,422 --> 00:10:29,425\nIt's four months since\nthe last ship got through.\n\n22\n00:10:29,508 --> 00:10:33,971\nWell, this stranger\ndoesn't come by ship.\n\n23\n00:10:40,519 --> 00:10:44,440\nThere are enemies\ncoming from far away.\n\n24\n00:10:45,649 --> 00:10:47,276\nI need warriors.\n\n25\n00:10:47,318 --> 00:10:51,030\nThis stranger, others like him.\n\n26\n00:10:51,155 --> 00:10:55,367\nI'm building an alliance\nto defend ourselves.\n\n27\n00:10:55,493 --> 00:10:58,788\nIt's very important\nthat I see this man.\n\n28\n00:10:59,747 --> 00:11:01,957\nIf this stranger exists,\n\n29\n00:11:02,082 --> 00:11:04,376\nhe'll give him your message.\n\n30\n00:11:04,502 --> 00:11:05,711\n$5,000 American.\n\n31\n00:11:05,836 --> 00:11:07,463\nLook, I'll give you $25,000\n\n32\n00:11:07,505 --> 00:11:10,674\nto talk to this man\nright now, outside.\n\n33\n00:11:22,436 --> 00:11:27,691\nHow dare this dog\nspeak to us like children.\n\n34\n00:11:27,858 --> 00:11:31,529\nOoh, magical man from the sea.\n\n35\n00:11:31,695 --> 00:11:34,573\nWe are poor, not stupid.\n\n36\n00:11:34,698 --> 00:11:36,408\nGet out.\n\n37\n00:11:37,576 --> 00:11:38,994\nI'm sorry.\n\n38\n00:11:39,036 --> 00:11:40,829\nCan't do that.\n\n39\n00:11:40,913 --> 00:11:43,207\nI'll leave after we've spoken.\n\n40\n00:11:47,878 --> 00:11:49,338\nHe said, \"Get out.\"\n\n41\n00:12:08,399 --> 00:12:10,150\nArthur Curry.\n\n42\n00:12:10,276 --> 00:12:13,237\nAlso known as\nProtector of the Oceans.\n\n43\n00:12:13,821 --> 00:12:15,489\nThe Aquaman.\n\n44\n00:12:21,078 --> 00:12:22,705\nSo, let me get this straight.\n\n45\n00:12:22,746 --> 00:12:26,584\nYou do it dressed like a bat?\nLike an actual bat?\n\n46\n00:12:26,750 --> 00:12:28,502\nWorked for 20 years in Gotham.\n\n47\n00:12:28,627 --> 00:12:30,254\nOh, that shithole.\n\n48\n00:12:30,421 --> 00:12:32,256\nWhen the fight comes,\nwe'll need you.\n\n49\n00:12:32,381 --> 00:12:34,800\n- Don't count on it, Batman.\n- Why not?\n\n50\n00:12:34,925 --> 00:12:37,011\n'Cause I don't like you coming here,\ndigging into my business\n\n51\n00:12:37,136 --> 00:12:39,763\nand getting into my life.\nI want to be left alone.\n\n52\n00:12:39,889 --> 00:12:41,473\nIs that why you do this?\n\n53\n00:12:41,599 --> 00:12:43,100\nWhy you help these people out\nhere in the middle of nowhere?\n\n54\n00:12:43,225 --> 00:12:44,435\nI've read the stories.\n\n55\n00:12:44,560 --> 00:12:46,812\nYour good deeds\nyou think no one sees.\n\n56\n00:12:46,937 --> 00:12:48,314\nYou'll join us.\n\n57\n00:12:48,439 --> 00:12:50,441\n\"Strong man\nis strongest alone.\"\n\n58\n00:12:50,524 --> 00:12:51,984\nYou ever heard that?\n\n59\n00:12:52,109 --> 00:12:53,569\nYou ever hear of Superman?\n\n60\n00:12:53,694 --> 00:12:55,321\nHe died fighting next to me.\n\n61\n00:12:56,614 --> 00:12:57,948\nMy point exactly.\n\n62\n00:12:58,115 --> 00:13:00,409\nHe believed\nwe were stronger together.\n\n63\n00:13:00,492 --> 00:13:02,036\nWe owe it to him.\n\n64\n00:13:02,161 --> 00:13:04,496\nI don't owe anyone anything.\n\n65\n00:13:12,046 --> 00:13:14,798\nDressed like a bat.\n\n66\n00:13:14,882 --> 00:13:16,925\nYou're out of your mind,\nBruce Wayne.\n\n67\n00:14:45,222 --> 00:14:46,557\nMove over, Dusty.\n\n68\n00:15:42,321 --> 00:15:45,407\nMy God, Master Wayne,\nbut this is cold.\n\n69\n00:15:45,449 --> 00:15:49,995\nMaybe we can catch\nthe next king tide in Jamaica?\n\n70\n00:15:50,120 --> 00:15:52,331\nMight be\na metahuman or two in Fiji.\n\n71\n00:15:52,456 --> 00:15:54,124\nCosta Rica's nice.\n\n72\n00:15:54,291 --> 00:15:55,793\nI found him.\n\n73\n00:15:58,712 --> 00:16:00,798\nHe said no.\n\n74\n00:16:00,881 --> 00:16:03,300\nSo the draft stands\nat naught for two?\n\n75\n00:16:05,511 --> 00:16:08,305\nMaybe a man who broods\nin a cave for a living\n\n76\n00:16:08,472 --> 00:16:12,184\nisn't cut out to be\na recruiter. Hmm?\n\n77\n00:16:31,829 --> 00:16:33,539\nThat's $10, please.\n\n78\n00:16:38,210 --> 00:16:42,881\n<i>Let us go now</i>\n\n79\n00:16:43,006 --> 00:16:50,139\n<i>My darling companion</i>\n\n80\n00:16:57,020 --> 00:17:01,358\n<i>Set out for the</i>\n\n81\n00:17:02,693 --> 00:17:09,700\n<i>Distant skies...</i>\n\n82\n00:17:11,785 --> 00:17:12,786\nGood morning, Miss Lane.\n\n83\n00:17:12,911 --> 00:17:14,288\nJerry, hi.\n\n84\n00:17:15,038 --> 00:17:16,957\nWow.\n\n85\n00:17:17,082 --> 00:17:18,417\nYou don't miss a day, do you?\n\n86\n00:17:19,835 --> 00:17:21,712\nLike it here.\n\n87\n00:17:27,467 --> 00:17:34,600\n<i>They told us our gods\nwould outlive us</i>\n\n88\n00:17:34,725 --> 00:17:40,772\n<i>They told us our dreams\nwould outlive us</i>\n\n89\n00:17:43,108 --> 00:17:49,573\n<i>They told us our gods\nwould outlive us</i>\n\n90\n00:17:50,949 --> 00:17:56,914\n<i>But they lied</i>\n\n91\n00:19:07,234 --> 00:19:08,318\nExcuse me.\n\n92\n00:19:09,611 --> 00:19:10,988\nMove!\n\n93\n00:19:21,665 --> 00:19:23,375\nMove it! Move it!\n\n94\n00:19:29,423 --> 00:19:32,134\n- No, mate, don't shoot!\n- Move, move!\n\n95\n00:19:32,217 --> 00:19:33,844\nGet the fuck over there!\n\n96\n00:19:35,846 --> 00:19:37,472\nMove! All of ya!\n\n97\n00:19:47,816 --> 00:19:49,985\nLine them up along the wall.\n\n98\n00:19:50,068 --> 00:19:52,696\nKeep them quiet.\n\n99\n00:19:52,821 --> 00:19:55,282\n- Keep quiet!\n- Shut up! Shut up!\n\n100\n00:19:55,407 --> 00:19:56,867\nShut them up too!\n\n101\n00:19:59,745 --> 00:20:02,414\nWe'll be making\na statement shortly.\n\n102\n00:20:02,539 --> 00:20:04,416\nUntil then,\nif I see any movement,\n\n103\n00:20:04,541 --> 00:20:06,668\nyou'll have a lot of dead kids\non your hands.\n\n104\n00:20:21,558 --> 00:20:23,185\nShould I take him?\n\n105\n00:20:23,268 --> 00:20:24,936\nHold your fire.\n\n106\n00:20:26,396 --> 00:20:27,606\nThey've got kids in there.\n\n107\n00:20:29,441 --> 00:20:31,276\nYeah, he's not bluffing, chief.\n\n108\n00:20:31,401 --> 00:20:33,695\nSt. Brigid's had\na school trip today.\n\n109\n00:20:57,636 --> 00:20:59,429\nQuiet! Shut up!\n\n110\n00:21:04,518 --> 00:21:06,978\nDown with the modern world.\n\n111\n00:21:07,104 --> 00:21:08,688\nBack to the Dark Ages.\n\n112\n00:21:14,111 --> 00:21:15,070\nQuiet!\n\n113\n00:21:16,947 --> 00:21:19,783\nI said shut your fucking mouth.\n\n114\n00:21:32,754 --> 00:21:35,590\nWho are you?\n\n115\n00:21:35,632 --> 00:21:38,677\nThe Lasso of Hestia compels\nyou to reveal the truth.\n\n116\n00:21:39,302 --> 00:21:41,179\nNow, who are you?\n\n117\n00:21:41,304 --> 00:21:44,516\nWe're a small group\nof reactionary terrorists\n\n118\n00:21:44,641 --> 00:21:46,101\nwho wanna turn back\nthe clock in Europe\n\n119\n00:21:46,226 --> 00:21:48,645\n- a thousand years.\n- Boring. Why the hostages?\n\n120\n00:21:48,812 --> 00:21:50,313\nWe have no demands.\n\n121\n00:21:50,397 --> 00:21:52,315\nWe're just stalling the police\nwhile we do it.\n\n122\n00:21:52,399 --> 00:21:53,859\nWhile you do what?\n\n123\n00:21:53,984 --> 00:21:57,988\nYou're too late.\nThe countdown's already begun.\n\n124\n00:21:58,071 --> 00:22:01,616\nIn a few minutes,\nfour city blocks...\n\n125\n00:22:02,909 --> 00:22:05,996\n...while the world watches.\n\n126\n00:23:45,595 --> 00:23:46,763\nNo!\n\n127\n00:23:46,888 --> 00:23:48,807\nLike lambs to the slaughter.\n\n128\n00:24:37,397 --> 00:24:39,482\nI don't believe it.\n\n129\n00:24:39,607 --> 00:24:40,775\nBelieve it.\n\n130\n00:25:16,102 --> 00:25:19,230\nIs everyone all right?\nAre you okay?\n\n131\n00:25:19,356 --> 00:25:21,316\nGood. It's okay.\n\n132\n00:25:21,358 --> 00:25:23,693\nIt's okay. It's over.\nYou can stand up.\n\n133\n00:25:23,818 --> 00:25:25,028\nIt's all good.\n\n134\n00:25:25,195 --> 00:25:27,238\nIt's over now.\nAre you okay?\n\n135\n00:25:27,364 --> 00:25:29,407\nYou okay? Good.\n\n136\n00:25:34,996 --> 00:25:36,373\nAre you okay, princess?\n\n137\n00:25:39,751 --> 00:25:41,753\nCan I be like you someday?\n\n138\n00:25:43,755 --> 00:25:46,383\nYou can be anything\nyou want to be.\n\n139\n00:25:48,385 --> 00:25:50,804\nCome on. Let's go.\n\n140\n00:26:33,513 --> 00:26:34,722\nAny changes today?\n\n141\n00:26:34,764 --> 00:26:36,349\nNo, my Queen.\n\n142\n00:26:37,976 --> 00:26:39,894\nThe Mother Box has awoken,\n\n143\n00:26:39,978 --> 00:26:42,981\nyet nothing has happened.\n\n144\n00:26:43,106 --> 00:26:45,358\nIt has slept\nfor thousands of years\n\n145\n00:26:45,483 --> 00:26:47,444\nsince the First Age.\n\n146\n00:26:47,569 --> 00:26:48,945\nWhy did it wake at all?\n\n147\n00:26:56,536 --> 00:26:58,580\nThis is the first time\nit's gone quiet\n\n148\n00:26:58,663 --> 00:26:59,914\nsince the crack appeared.\n\n149\n00:26:59,956 --> 00:27:02,876\nMaybe it's going back to sleep.\n\n150\n00:27:06,838 --> 00:27:08,757\nEvil does not sleep.\n\n151\n00:27:09,507 --> 00:27:11,468\nIt waits.\n\n152\n00:27:12,844 --> 00:27:14,971\nSomething is coming.\n\n153\n00:27:20,018 --> 00:27:21,519\nPrepare for battle!\n\n154\n00:27:47,378 --> 00:27:49,714\nAmazons, on your marks!\n\n155\n00:27:49,839 --> 00:27:51,216\nReady!\n\n156\n00:28:16,449 --> 00:28:18,409\nDefenders.\n\n157\n00:28:19,994 --> 00:28:24,666\nThey have failed 100,000 worlds.\n\n158\n00:28:24,749 --> 00:28:26,334\nThey always fail.\n\n159\n00:28:28,169 --> 00:28:32,924\nI've come to enlighten you\nto the great darkness.\n\n160\n00:28:33,049 --> 00:28:36,094\nI will bathe in your fear.\n\n161\n00:28:37,595 --> 00:28:40,098\nDaughters of Themyscira,\n\n162\n00:28:41,224 --> 00:28:42,850\nshow him your fear!\n\n163\n00:28:42,976 --> 00:28:45,478\nWe have no fear!\n\n164\n00:29:04,789 --> 00:29:06,416\nGather the legions!\n\n165\n00:29:07,417 --> 00:29:08,543\nGo with her!\n\n166\n00:29:08,626 --> 00:29:09,919\nYou must seal the cage!\n\n167\n00:29:10,086 --> 00:29:12,380\n- Go!\n- Phillipus!\n\n168\n00:29:38,990 --> 00:29:40,283\nNo!\n\n169\n00:29:52,795 --> 00:29:54,005\nBehind you!\n\n170\n00:29:57,800 --> 00:29:59,177\nAhhh!\n\n171\n00:30:01,387 --> 00:30:02,472\nEpione.\n\n172\n00:30:04,265 --> 00:30:06,476\nHonor us. It's right.\n\n173\n00:30:09,479 --> 00:30:10,688\nSeal it.\n\n174\n00:30:15,985 --> 00:30:18,613\nReady the hammers!\n\n175\n00:30:30,875 --> 00:30:32,961\nSeal it now!\n\n176\n00:32:07,305 --> 00:32:08,848\nGuard it with your life.\n\n177\n00:32:08,973 --> 00:32:10,933\n- Yes, my Queen.\n- Keep it moving.\n\n178\n00:32:11,017 --> 00:32:12,477\nHyah! Hyah!\n\n179\n00:33:35,601 --> 00:33:37,603\nHyah!\n\n180\n00:34:57,058 --> 00:34:58,643\nGot it! Go!\n\n181\n00:34:59,769 --> 00:35:01,062\nHyah!\n\n182\n00:35:21,374 --> 00:35:25,711\nOh, noble Queen.\nWhy do you fight?\n\n183\n00:35:28,631 --> 00:35:30,466\nYou can't save her.\n\n184\n00:35:30,549 --> 00:35:33,302\nYou can't save any of them.\n\n185\n00:35:36,472 --> 00:35:40,601\nThe great darkness begins.\n\n186\n00:35:40,643 --> 00:35:42,436\nAmazons!\n\n187\n00:35:52,655 --> 00:35:55,491\nYes, we will find the others.\n\n188\n00:35:57,285 --> 00:35:59,829\nDraw!\n\n189\n00:36:01,998 --> 00:36:03,332\nLoose!\n\n190\n00:37:01,223 --> 00:37:03,184\nHe's gone back to his universe.\n\n191\n00:37:03,267 --> 00:37:04,435\nNo.\n\n192\n00:37:06,771 --> 00:37:09,273\nHe's gone to the lands of men\n\n193\n00:37:09,398 --> 00:37:12,568\nto find the other two boxes.\n\n194\n00:37:12,651 --> 00:37:15,738\nWe have to light\nthe ancient warning fire.\n\n195\n00:37:15,821 --> 00:37:19,408\nThe fire has not burned\nfor 5,000 years.\n\n196\n00:37:19,533 --> 00:37:21,077\nMen won't know what it means.\n\n197\n00:37:21,994 --> 00:37:23,496\nMen won't.\n\n198\n00:37:25,122 --> 00:37:26,624\nShe will.\n\n199\n00:37:57,279 --> 00:37:59,949\nIt's toxic.\n\n200\n00:38:00,116 --> 00:38:01,826\nThat's good.\n\n201\n00:38:22,805 --> 00:38:23,764\nGo!\n\n202\n00:38:23,889 --> 00:38:26,142\nFollow the scent\nof the Mother Boxes.\n\n203\n00:38:26,267 --> 00:38:27,726\nFind the missing two.\n\n204\n00:38:27,852 --> 00:38:31,772\nOnce they are found,\nThe Unity will be formed.\n\n205\n00:38:31,856 --> 00:38:34,817\nThis world will join the others.\n\n206\n00:38:36,569 --> 00:38:38,654\nHe will be pleased.\n\n207\n00:38:38,737 --> 00:38:41,824\nHe will see my worth again.\n\n208\n00:38:44,410 --> 00:38:46,036\nHey.\n\n209\n00:38:46,162 --> 00:38:49,039\nAnything on that kid\nfrom the liquor store?\n\n210\n00:38:49,165 --> 00:38:50,666\nPossibly.\n\n211\n00:38:51,333 --> 00:38:53,502\n\"Possibly.\"\n\n212\n00:38:53,627 --> 00:38:56,046\nIf I had a dollar\nfor every \"possibly.\"\n\n213\n00:38:56,172 --> 00:38:59,049\nYeah, it would make you\neven more insufferable.\n\n214\n00:39:01,886 --> 00:39:04,680\nFacial scan might have\ngot a hit on him,\n\n215\n00:39:04,763 --> 00:39:07,016\nour disappearing man.\n\n216\n00:39:07,141 --> 00:39:11,896\nOne Mr. Barry Allen\nfrom Central City.\n\n217\n00:39:12,021 --> 00:39:13,522\nMight be another false positive,\n\n218\n00:39:13,647 --> 00:39:14,982\nyou'll have to give me\na little time\n\n219\n00:39:15,065 --> 00:39:17,651\n- to confirm.\n- We don't have any more time.\n\n220\n00:39:19,195 --> 00:39:20,821\nMaster Wayne,\n\n221\n00:39:20,946 --> 00:39:23,407\nyou've been working\nas if there's no tomorrow\n\n222\n00:39:23,532 --> 00:39:24,617\nto build this team\n\n223\n00:39:24,742 --> 00:39:26,619\nof people you can't even find.\n\n224\n00:39:26,744 --> 00:39:28,871\nI found one.\nI found two, including Diana.\n\n225\n00:39:28,954 --> 00:39:30,998\nJust because Lex Luthor says\n\n226\n00:39:31,081 --> 00:39:32,958\nthe planet's\nin danger of attack?\n\n227\n00:39:33,083 --> 00:39:35,252\nThis has nothing\nto do with Lex Luthor.\n\n228\n00:39:35,377 --> 00:39:36,712\nIt has to do with him.\n\n229\n00:39:36,795 --> 00:39:40,841\nI made a promise to him\non his grave.\n\n230\n00:39:40,925 --> 00:39:44,053\nI spent a lot of time\ntrying to divide us.\n\n231\n00:39:44,178 --> 00:39:47,723\nI need to bring us together\nand make this right.\n\n232\n00:39:47,848 --> 00:39:50,559\nWell, it's been some time\nsince Luthor's warning.\n\n233\n00:39:50,726 --> 00:39:54,897\nNo attacks.\nNo barbarians at the gate.\n\n234\n00:39:55,022 --> 00:39:58,526\nMaybe these barbarians\ndon't use a gate.\n\n235\n00:39:58,609 --> 00:40:00,277\nMaybe they're already here.\n\n236\n00:40:04,156 --> 00:40:06,075\nKeep looking.\nWhat else do you have?\n\n237\n00:40:44,989 --> 00:40:46,573\nLab's all yours, Howard.\n\n238\n00:40:46,699 --> 00:40:48,450\n11:30.\n\n239\n00:40:48,534 --> 00:40:50,035\nEarly night for you, Silas.\n\n240\n00:40:50,160 --> 00:40:52,621\nYes, early night.\n\n241\n00:40:52,746 --> 00:40:53,956\nTell your family I said hello.\n\n242\n00:41:29,366 --> 00:41:30,993\nWhat the...\n\n243\n00:41:34,705 --> 00:41:35,831\nJesus.\n\n244\n00:42:49,113 --> 00:42:51,907\nThe Arrow of Artemis.\n\n245\n00:42:52,032 --> 00:42:54,785\nIt will reach the lands of men.\n\n246\n00:43:04,336 --> 00:43:05,587\nSky torch,\n\n247\n00:43:05,754 --> 00:43:07,423\nhero beacon,\n\n248\n00:43:07,506 --> 00:43:09,049\nscatter the darkness.\n\n249\n00:43:09,174 --> 00:43:12,761\nBurn as you burned\nin days before.\n\n250\n00:43:14,096 --> 00:43:17,933\nShow her the darkness before\nthe daylight of history.\n\n251\n00:43:18,058 --> 00:43:21,895\nWarn my daughter\nthat war has come\n\n252\n00:43:23,230 --> 00:43:24,940\nand protect her.\n\n253\n00:43:49,548 --> 00:43:51,967\nReturn to me, Diana.\n\n254\n00:44:30,339 --> 00:44:31,861\nWhat did you do\n\n255\n00:44:31,862 --> 00:44:33,383\nthis weekend, Diana?\n\n256\n00:44:33,509 --> 00:44:35,469\nNothing very interesting.\n\n257\n00:44:35,594 --> 00:44:38,263\nThat's all you ever tell us.\n\n258\n00:44:38,388 --> 00:44:41,767\nWhat can I do?\nI'm not that exciting.\n\n259\n00:44:41,892 --> 00:44:46,063\nYou might as well disappear\nwhen you walk out of here.\n\n260\n00:44:50,567 --> 00:44:51,568\nAgain?\n\n261\n00:44:51,693 --> 00:44:53,779\n- What is it?\n- Now what?\n\n262\n00:44:53,904 --> 00:44:57,032\nBudget cuts, tomb raiders.\n\n263\n00:44:57,115 --> 00:44:59,868\nNow add to the list \"arson.\"\n\n264\n00:45:01,411 --> 00:45:03,163\nYes, good morning\n\n265\n00:45:03,288 --> 00:45:04,748\nFrom the isle of Crete.\n\n266\n00:45:04,873 --> 00:45:06,375\nAs you can see behind me,\n\n267\n00:45:06,458 --> 00:45:08,710\nan enormous bonfire is burning.\n\n268\n00:45:08,836 --> 00:45:11,171\nThis fire has been burning\nthrough the night.\n\n269\n00:45:11,255 --> 00:45:12,589\nWe're now into the morning\n\n270\n00:45:12,714 --> 00:45:15,092\nand we are\nat least five miles away.\n\n271\n00:45:15,217 --> 00:45:18,512\nAnd we can still\nsee it burning as we speak.\n\n272\n00:45:18,595 --> 00:45:21,890\nThis has baffled locals and\ngovernment authorities alike\n\n273\n00:45:22,015 --> 00:45:23,850\nhere at this historical site\n\n274\n00:45:23,934 --> 00:45:26,395\nof the so-called shrine\nof the Amazons.\n\n275\n00:45:26,562 --> 00:45:28,355\nNow, locals and government\nofficials are baffled as to\n\n276\n00:45:28,438 --> 00:45:30,857\n- what may have caused this.\n- Invasion.\n\n277\n00:45:39,783 --> 00:45:40,909\nRyan.\n\n278\n00:45:41,034 --> 00:45:42,286\n- Hiya, Doc.\n- Is the...\n\n279\n00:45:42,411 --> 00:45:44,413\nNo damage to the electron-laser.\n\n280\n00:45:44,538 --> 00:45:46,790\n- Uh, Dr. Silas Stone?\n- Yeah.\n\n281\n00:45:46,915 --> 00:45:48,750\n- Ryan Choi?\n- That's us.\n\n282\n00:45:48,876 --> 00:45:51,086\nUm, who did this?\nDid they steal anything?\n\n283\n00:45:51,211 --> 00:45:52,713\nThey took whatever was in here.\n\n284\n00:45:52,754 --> 00:45:56,842\nThat? Oh, that wasn't stolen.\nWas it, Dr. Stone?\n\n285\n00:45:56,967 --> 00:45:59,595\nNo. That was misplaced\na while ago.\n\n286\n00:45:59,678 --> 00:46:03,724\nObject 6-1-9-8-2. Department\nof Defense Archives.\n\n287\n00:46:03,765 --> 00:46:05,934\n- Mmm-hmm.\n- What was it?\n\n288\n00:46:06,059 --> 00:46:07,019\nI don't know.\n\n289\n00:46:07,144 --> 00:46:08,437\nYou don't know?\n\n290\n00:46:08,604 --> 00:46:10,606\nI don't know, which was why\nI was studying it.\n\n291\n00:46:10,731 --> 00:46:12,357\nWhat's your rank, Doctor?\n\n292\n00:46:12,482 --> 00:46:14,651\nRyan, would you, uh,\ndo the honors?\n\n293\n00:46:14,776 --> 00:46:16,278\n- Sure. Okay.\n- Thanks.\n\n294\n00:46:16,403 --> 00:46:18,906\nCivilian. STARLABS\nis a private contractor.\n\n295\n00:46:18,989 --> 00:46:20,115\nWe work for the DoD.\n\n296\n00:46:20,240 --> 00:46:23,076\nWe advise them on xeno-science.\n\n297\n00:46:23,160 --> 00:46:24,828\n\"Xeno-science\"?\n\n298\n00:46:24,953 --> 00:46:26,955\nAlien technology.\n\n299\n00:46:33,879 --> 00:46:35,923\nFor example,\n\n300\n00:46:36,048 --> 00:46:37,674\nthe Superman ship.\n\n301\n00:46:46,016 --> 00:46:47,309\nEight people\n\n302\n00:46:47,392 --> 00:46:49,102\nnever signed out\nof the lab last night, Doctor.\n\n303\n00:46:49,144 --> 00:46:50,354\nCleaning staff, guards,\n\n304\n00:46:50,479 --> 00:46:52,648\na few of\nyour research scientists.\n\n305\n00:46:52,731 --> 00:46:53,690\nThey were abducted.\n\n306\n00:46:54,983 --> 00:46:56,109\nAre you sure?\n\n307\n00:46:56,234 --> 00:46:58,612\nWitness saw it all.\nHe escaped.\n\n308\n00:46:58,695 --> 00:47:02,199\nHe's here in quarantine now,\nworking on an ID sketch.\n\n309\n00:47:05,035 --> 00:47:09,498\nAny idea who\nor what that might be?\n\n310\n00:47:29,434 --> 00:47:31,603\nThe box isn't safe here.\n\n311\n00:47:34,064 --> 00:47:35,524\nVictor,\n\n312\n00:47:35,607 --> 00:47:37,818\nthey came looking for it\nat the lab.\n\n313\n00:47:37,901 --> 00:47:42,656\nPeople were taken by some kind\nof monster or something.\n\n314\n00:47:45,283 --> 00:47:47,369\nYou know a lot about monsters,\n\n315\n00:47:47,953 --> 00:47:49,454\ndon't you?\n\n316\n00:47:55,752 --> 00:47:58,547\nEspecially how to make 'em.\n\n317\n00:50:58,393 --> 00:51:02,272\nMayday! Mayday, mayday!\n\n318\n00:51:03,773 --> 00:51:07,235\nMy hull is breached.\nI'm going down.\n\n319\n00:51:12,282 --> 00:51:14,326\nMayday!\n\n320\n00:51:14,451 --> 00:51:16,620\nIs there anybody out there?\n\n321\n00:51:21,917 --> 00:51:22,959\nAhh!\n\n322\n00:51:56,952 --> 00:51:58,119\nWhiskey.\n\n323\n00:52:07,087 --> 00:52:09,881\nTell him to respect\nthe storm next time.\n\n324\n00:52:19,099 --> 00:52:20,267\nIt's on him.\n\n325\n00:52:42,497 --> 00:52:46,042\n<i>The starry heavens above me</i>\n\n326\n00:52:48,753 --> 00:52:52,048\n<i>The mortal law within</i>\n\n327\n00:52:55,301 --> 00:52:58,388\n<i>So the world appears</i>\n\n328\n00:53:01,141 --> 00:53:04,686\n<i>Through this mist of tears</i>\n\n329\n00:53:07,439 --> 00:53:10,400\n<i>There is a kingdom</i>\n\n330\n00:53:10,525 --> 00:53:13,486\n<i>There is a king</i>\n\n331\n00:53:13,570 --> 00:53:16,239\n<i>And he lives without</i>\n\n332\n00:53:16,364 --> 00:53:19,367\n<i>And he lives within</i>\n\n333\n00:53:19,492 --> 00:53:22,537\n<i>There is a kingdom</i>\n\n334\n00:53:22,662 --> 00:53:25,582\n<i>There is a king</i>\n\n335\n00:53:25,707 --> 00:53:28,668\n<i>There is a king</i>\n\n336\n00:53:28,752 --> 00:53:32,047\n<i>And he is everything</i>\n\n337\n00:54:48,331 --> 00:54:50,208\nKing who would be man.\n\n338\n00:54:50,333 --> 00:54:53,795\nSon of a human father\nand Queen of the Seas.\n\n339\n00:54:54,546 --> 00:54:56,131\nAll the time I've wasted\n\n340\n00:54:56,297 --> 00:54:59,676\ntrying to keep the promise\nI made to your mother.\n\n341\n00:55:01,636 --> 00:55:02,971\nAre you finished, old man?\n\n342\n00:55:03,054 --> 00:55:05,473\nYou never sleep\nin the same place twice,\n\n343\n00:55:05,640 --> 00:55:08,560\nyet you keep coming back here.\n\n344\n00:55:10,395 --> 00:55:12,355\nI like it. It's quiet.\n\n345\n00:55:12,480 --> 00:55:14,357\nIt's your inheritance.\n\n346\n00:55:14,482 --> 00:55:16,693\nYou're the rightful king\nof Atlantis.\n\n347\n00:55:17,694 --> 00:55:18,987\nOur people suffer.\n\n348\n00:55:19,112 --> 00:55:20,905\nYour people.\n\n349\n00:55:21,030 --> 00:55:24,659\nA brutal, petty,\nsuperstitious race.\n\n350\n00:55:24,784 --> 00:55:26,953\nIs the surface any different?\n\n351\n00:55:27,036 --> 00:55:29,205\nNobody calls me\nKing of the Surface.\n\n352\n00:55:30,331 --> 00:55:32,459\nWhat do you want, Vulko?\n\n353\n00:55:32,542 --> 00:55:33,793\nGuards near the stronghold\n\n354\n00:55:33,835 --> 00:55:35,503\nhave been disappearing.\n\n355\n00:55:35,587 --> 00:55:37,130\nSnatchers from above.\n\n356\n00:55:37,213 --> 00:55:38,464\nTalk to King Orm.\n\n357\n00:55:38,548 --> 00:55:39,966\n- Your brother?\n- Half-brother.\n\n358\n00:55:40,049 --> 00:55:43,428\nHe's trying to fan the flames\nof war with the surface.\n\n359\n00:55:43,553 --> 00:55:46,139\nHe lies.\n\n360\n00:55:46,222 --> 00:55:48,475\nThe snatchers have come\nfrom the dark place.\n\n361\n00:55:48,558 --> 00:55:51,019\nThey're looking for it.\n\n362\n00:55:51,102 --> 00:55:55,482\nThe Mother Box\nour people guard is not safe.\n\n363\n00:55:55,565 --> 00:55:58,067\nGo to the stronghold\nof Atlantis.\n\n364\n00:55:58,193 --> 00:55:59,694\nProtect the box.\n\n365\n00:56:00,570 --> 00:56:01,863\nThe time has come.\n\n366\n00:56:03,865 --> 00:56:05,992\nTake up your mother's trident.\n\n367\n00:56:17,003 --> 00:56:20,882\nYou can't turn your back\non the world forever, Arthur.\n\n368\n00:56:21,674 --> 00:56:24,677\nAbove or below.\n\n369\n00:56:53,831 --> 00:56:55,542\nDeSaad.\n\n370\n00:56:55,583 --> 00:56:59,754\nDeSaad! I call to thee.\n\n371\n00:57:08,596 --> 00:57:13,768\nSteppenwolf,\nhave you begun the conquest?\n\n372\n00:57:13,893 --> 00:57:16,938\nThis world is divided.\n\n373\n00:57:17,021 --> 00:57:18,606\nThey are a primitive species.\n\n374\n00:57:18,773 --> 00:57:21,234\nUnevolved and at war\nwith one another.\n\n375\n00:57:21,317 --> 00:57:24,070\nToo separate to be one.\n\n376\n00:57:24,112 --> 00:57:26,614\nTheir free will\nmust be ripped from them,\n\n377\n00:57:26,698 --> 00:57:28,616\nlike the other worlds.\n\n378\n00:57:28,700 --> 00:57:32,996\nGiven absolution\nin one glorious belief,\n\n379\n00:57:33,121 --> 00:57:34,872\nto serve him.\n\n380\n00:57:35,498 --> 00:57:37,792\nThe Mother Boxes?\n\n381\n00:57:37,959 --> 00:57:40,920\nI have found one of the three.\n\n382\n00:57:41,004 --> 00:57:43,589\nThe one that woke\nand called to me.\n\n383\n00:57:43,673 --> 00:57:45,133\nThe other two still sleep,\n\n384\n00:57:45,258 --> 00:57:49,345\nbut the parademons\nfeel their presence.\n\n385\n00:57:49,470 --> 00:57:50,930\nThey fly,\n\n386\n00:57:51,014 --> 00:57:54,434\nthey search, they take\nprisoners who carry the scent,\n\n387\n00:57:54,517 --> 00:57:59,814\nwhile I build a stronghold\nin the name of his glory.\n\n388\n00:58:00,315 --> 00:58:02,191\nYes.\n\n389\n00:58:03,318 --> 00:58:07,155\nMighty Steppenwolf,\n\n390\n00:58:07,238 --> 00:58:11,909\nwho might have sat here\nby the side of the great one.\n\n391\n00:58:13,703 --> 00:58:18,291\nBut undone by his self-pride.\n\n392\n00:58:19,500 --> 00:58:20,960\nDeSaad...\n\n393\n00:58:21,878 --> 00:58:24,839\nI fall before you.\n\n394\n00:58:24,964 --> 00:58:26,841\nLet me make a plea to him\n\n395\n00:58:26,924 --> 00:58:28,843\nthat I may come home\n\n396\n00:58:29,010 --> 00:58:32,055\nafter I take this world\nin his name.\n\n397\n00:58:32,180 --> 00:58:34,682\nYou betrayed him.\n\n398\n00:58:35,850 --> 00:58:37,477\nYour own family.\n\n399\n00:58:37,560 --> 00:58:39,771\nI saw my mistake.\n\n400\n00:58:39,896 --> 00:58:42,357\nI slaughtered those\nwho sought his throne.\n\n401\n00:58:42,482 --> 00:58:47,904\nYou still owe the great one\n50,000 more worlds.\n\n402\n00:58:48,863 --> 00:58:50,990\nHe will hear your plea\n\n403\n00:58:51,032 --> 00:58:53,409\nwhen you pay your debt.\n\n404\n00:58:56,245 --> 00:58:59,415\nThe Mother Boxes\nwill be found and united.\n\n405\n00:59:00,416 --> 00:59:02,502\nNo protectors here.\n\n406\n00:59:02,627 --> 00:59:06,005\nNo Lanterns, no Kryptonian.\n\n407\n00:59:06,089 --> 00:59:10,009\nThis world will fall,\nlike all the others.\n\n408\n00:59:10,885 --> 00:59:12,845\nFor Darkseid.\n\n409\n00:59:15,848 --> 00:59:18,184\nFor Darkseid.\n\n410\n00:59:39,247 --> 00:59:41,165\nYou know,\nI paid millions of dollars\n\n411\n00:59:41,290 --> 00:59:42,917\nfor this building's security.\n\n412\n00:59:43,042 --> 00:59:44,752\nYou got your money's worth.\n\n413\n00:59:44,877 --> 00:59:47,338\nTook me almost a minute\nto disable it.\n\n414\n00:59:48,798 --> 00:59:50,216\nHi there.\n\n415\n00:59:51,801 --> 00:59:52,969\nA new toy?\n\n416\n00:59:53,761 --> 00:59:56,013\nPrototype troop carrier.\n\n417\n00:59:57,598 --> 00:59:59,058\nI once knew a man\n\n418\n00:59:59,100 --> 01:00:01,727\nwho would have loved to fly it.\n\n419\n01:00:01,811 --> 01:00:03,604\nThe best minds\nat Wayne Aerospace\n\n420\n01:00:03,771 --> 01:00:04,981\ncouldn't make it fly.\n\n421\n01:00:05,898 --> 01:00:07,567\nBut you can?\n\n422\n01:00:07,650 --> 01:00:09,277\nI have no choice.\n\n423\n01:00:09,360 --> 01:00:12,196\nI need more range\nand I need more cargo.\n\n424\n01:00:12,321 --> 01:00:14,407\nI think\nthere's an attack coming.\n\n425\n01:00:14,490 --> 01:00:16,284\nNot coming, Bruce.\n\n426\n01:00:16,951 --> 01:00:19,620\nIt's already here.\n\n427\n01:00:19,745 --> 01:00:21,414\nFrom what I've learned,\n\n428\n01:00:21,456 --> 01:00:24,417\nthey are things\nfrom another universe.\n\n429\n01:00:24,459 --> 01:00:26,794\nThey serve a dark power.\n\n430\n01:00:26,919 --> 01:00:28,713\nAn old power.\n\n431\n01:00:28,838 --> 01:00:30,131\nWhat do they want?\n\n432\n01:00:30,214 --> 01:00:34,302\nTo invade.\nTo conquer.\n\n433\n01:00:34,385 --> 01:00:38,931\nThey came here once before,\nlong ago.\n\n434\n01:00:43,895 --> 01:00:46,272\nA great armada\nappeared in the sky,\n\n435\n01:00:46,355 --> 01:00:48,858\nlaying waste\nto all who opposed it.\n\n436\n01:00:48,983 --> 01:00:53,321\nThe leader of the invaders\nwas a being called Darkseid.\n\n437\n01:00:53,404 --> 01:00:58,409\nA name cursed and feared\nin every universe.\n\n438\n01:00:58,534 --> 01:01:02,622\nDarkseid was met in battle\nby Earth's defenders.\n\n439\n01:01:02,663 --> 01:01:05,458\nThe old gods, men...\n\n440\n01:01:05,541 --> 01:01:09,003\nAtlanteans before\ntheir descent into the sea...\n\n441\n01:01:11,172 --> 01:01:15,176\nAmazons before their betrayal\nand enslavement\n\n442\n01:01:15,259 --> 01:01:17,803\nand guardians from the stars.\n\n443\n01:01:17,887 --> 01:01:19,805\n- Their histories\n- had taught them\n\n444\n01:01:19,889 --> 01:01:21,599\nNot to trust each other,\n\n445\n01:01:21,724 --> 01:01:23,810\nnot to hope for an alliance.\n\n446\n01:01:23,935 --> 01:01:26,145\nTo fight apart.\n\n447\n01:02:14,777 --> 01:02:17,822\nAs Darkseid waged war on Earth,\n\n448\n01:02:17,947 --> 01:02:19,282\nhe found a secret there.\n\n449\n01:02:19,407 --> 01:02:23,202\nA power hidden\nin the infinity of space.\n\n450\n01:02:23,286 --> 01:02:24,787\nHe called forth mystics\n\n451\n01:02:24,912 --> 01:02:28,207\nwho worshipped and controlled\nthree objects...\n\n452\n01:02:28,291 --> 01:02:29,709\nthe Mother Boxes.\n\n453\n01:02:29,792 --> 01:02:31,377\nWait, wait, wait.\n\n454\n01:02:31,460 --> 01:02:32,253\n\"Mother Boxes\"?\n\n455\n01:02:32,420 --> 01:02:35,506\nIndestructible living machines,\n\n456\n01:02:35,631 --> 01:02:38,467\nmade from a science so advanced,\n\n457\n01:02:38,593 --> 01:02:40,595\nit looks like sorcery.\n\n458\n01:02:40,678 --> 01:02:42,055\nTo conquer, three boxes\n\n459\n01:02:42,056 --> 01:02:43,431\nhave to synchronize\n\n460\n01:02:43,514 --> 01:02:46,726\nand join together\ninto The Unity.\n\n461\n01:02:46,809 --> 01:02:49,937\nThe Unity cleanses\na planet with fire,\n\n462\n01:02:50,021 --> 01:02:53,733\ntransforming it into a copy\nof the enemy's world.\n\n463\n01:02:53,816 --> 01:02:57,653\nAll who live\nbecome servants of Darkseid.\n\n464\n01:02:57,778 --> 01:03:00,740\nAlive but drained of life.\n\n465\n01:03:00,823 --> 01:03:02,325\nParademons.\n\n466\n01:03:03,367 --> 01:03:05,536\nAmazons!\n\n467\n01:03:11,459 --> 01:03:13,002\nWith me!\n\n468\n01:03:42,323 --> 01:03:44,950\nBut before The Unity\ncould synchronize,\n\n469\n01:03:45,034 --> 01:03:46,994\nthe defenders of Earth attacked\n\n470\n01:03:47,161 --> 01:03:48,871\nand fought as one.\n\n471\n01:03:48,996 --> 01:03:52,041\nAmazons alongside Atlanteans.\n\n472\n01:03:52,166 --> 01:03:53,668\nZeus and his son Ares\n\n473\n01:03:53,793 --> 01:03:57,463\nalongside the guardians\nfrom the sky.\n\n474\n01:03:57,546 --> 01:04:00,800\nA golden Age of Heroes\nfighting together\n\n475\n01:04:00,925 --> 01:04:02,468\nto defend life on Earth.\n\n476\n01:05:58,834 --> 01:06:01,670\nThey did what no world\nhad ever done.\n\n477\n01:06:01,796 --> 01:06:04,131\nSent the enemies\nback into the stars.\n\n478\n01:06:06,550 --> 01:06:10,304\nThe three Mother Boxes\nnever synchronized.\n\n479\n01:06:10,471 --> 01:06:12,140\n-The Unity never came to pass.\n\n480\n01:06:13,933 --> 01:06:16,477\nBut, in their retreat,\n\n481\n01:06:16,602 --> 01:06:19,688\nthe boxes were left behind\non Earth.\n\n482\n01:06:19,814 --> 01:06:23,776\nThey grew weak.\nDogs without masters\n\n483\n01:06:25,653 --> 01:06:27,154\nfalling asleep,\n\n484\n01:06:27,279 --> 01:06:29,657\nawaiting their return.\n\n485\n01:06:29,782 --> 01:06:32,284\nFading from the view\nof the enemy,\n\n486\n01:06:32,326 --> 01:06:35,663\nanonymous\namong a trillion worlds.\n\n487\n01:06:52,429 --> 01:06:55,975\nThe defenders of Earth\nmade a vow.\n\n488\n01:06:56,016 --> 01:06:59,311\nMen, Atlanteans, and Amazons.\n\n489\n01:06:59,353 --> 01:07:01,230\nEach would enshrine and guard\n\n490\n01:07:01,355 --> 01:07:03,149\none of the three\nsleeping Mother Boxes\n\n491\n01:07:03,232 --> 01:07:07,027\naccording to the rites\nand rituals of their culture\n\n492\n01:07:07,194 --> 01:07:09,697\nin case a box\nshould ever wake again\n\n493\n01:07:09,864 --> 01:07:11,740\nto call out\nto the planet Apokolips\n\n494\n01:07:11,866 --> 01:07:13,534\nto return and conquer\n\n495\n01:07:13,617 --> 01:07:17,621\nthe only world\nDarkseid had ever lost.\n\n496\n01:08:33,447 --> 01:08:36,575\nSomething woke the box\nmy people guard.\n\n497\n01:08:36,700 --> 01:08:38,744\nIt called out\nto the dark place...\n\n498\n01:08:38,869 --> 01:08:41,580\nto one of Darkseid's conquerors.\n\n499\n01:08:42,331 --> 01:08:44,583\nThe enemy is here.\n\n500\n01:08:44,667 --> 01:08:46,418\nIf he's here, where is he?\n\n501\n01:08:46,502 --> 01:08:48,629\nHe'll be searching\nfor the other two boxes.\n\n502\n01:08:48,754 --> 01:08:51,757\nHiding until he has all three.\nUntil he's ready.\n\n503\n01:08:51,840 --> 01:08:56,220\nThen we have to be ready.\nYou, me, the others.\n\n504\n01:08:56,345 --> 01:08:59,431\nThey said the Age of Heroes\nwould never come again.\n\n505\n01:08:59,473 --> 01:09:01,100\nNo, it will.\n\n506\n01:09:01,183 --> 01:09:02,935\nIt has to.\n\n507\n01:09:04,561 --> 01:09:08,315\nThe others.\nWhere are they?\n\n508\n01:09:30,212 --> 01:09:31,171\nAm I late?\n\n509\n01:09:31,338 --> 01:09:33,841\nNo, I'm so late.\nI'm very late.\n\n510\n01:09:33,924 --> 01:09:35,426\nOh, hey, buddy. Hey.\n\n511\n01:09:35,551 --> 01:09:37,302\nOh. No.\n\n512\n01:09:37,386 --> 01:09:40,347\nOkay, bye. Okay.\n\n513\n01:09:40,472 --> 01:09:42,850\nI'm so sorry.\n\n514\n01:09:42,933 --> 01:09:44,310\nI'm late.\n\n515\n01:09:49,565 --> 01:09:50,983\n- Are you, uh...\n- I'm...\n\n516\n01:09:51,066 --> 01:09:52,943\nI'm so sorry I'm so late.\nI didn't mean to be so late.\n\n517\n01:09:53,068 --> 01:09:54,653\nI'm me and I'm here\nand I'm so sorry I'm late.\n\n518\n01:09:54,737 --> 01:09:56,030\nEssentially,\nthe bus didn't come,\n\n519\n01:09:56,196 --> 01:09:57,323\nthen the bus did come,\n\n520\n01:09:57,406 --> 01:09:58,365\nbut then there was\nthis old woman\n\n521\n01:09:58,490 --> 01:09:59,658\ncounting change for the fare,\n\n522\n01:09:59,742 --> 01:10:01,076\nlike, nickel, penny,\nnickel, penny.\n\n523\n01:10:01,201 --> 01:10:02,870\nLike, jeez Louise,\nlet this woman on the bus.\n\n524\n01:10:02,995 --> 01:10:04,121\nShe's 107 years old,\n\n525\n01:10:04,288 --> 01:10:05,831\nthese are some of her\nlast few moments of life.\n\n526\n01:10:05,956 --> 01:10:07,249\nResume.\n\n527\n01:10:07,374 --> 01:10:08,375\nResume.\n\n528\n01:10:11,545 --> 01:10:13,547\nCome on.\n\n529\n01:10:16,091 --> 01:10:17,176\nCome on.\n\n530\n01:10:17,301 --> 01:10:18,844\nFrom the French, of course.\n\n531\n01:10:18,886 --> 01:10:22,056\n\"Resume,\" I believe,\nis a past participle of...\n\n532\n01:10:27,478 --> 01:10:29,146\nUh, wow. That's no good.\n\n533\n01:10:29,271 --> 01:10:30,898\nIt's like, what lives\nin my pocket, right?\n\n534\n01:10:31,023 --> 01:10:33,859\n\"Paper monster hungry.\"\nUh...\n\n535\n01:10:41,867 --> 01:10:44,745\nCome on. Supposed to be\nfriends now.\n\n536\n01:10:50,834 --> 01:10:52,419\nYes.\n\n537\n01:11:01,095 --> 01:11:03,597\nCentral City College,\nI'm a criminal justice major.\n\n538\n01:11:03,764 --> 01:11:04,973\nYou said you had experience\n\n539\n01:11:05,099 --> 01:11:06,100\nwalking dogs.\n\n540\n01:11:55,482 --> 01:11:58,110\n<i>Long afloat</i>\n\n541\n01:11:58,986 --> 01:12:02,698\n<i>On shipless oceans</i>\n\n542\n01:12:03,991 --> 01:12:12,166\n<i>I did all my best to smile</i>\n\n543\n01:12:12,249 --> 01:12:18,881\n<i>'Til your singing eyes\nand fingers</i>\n\n544\n01:12:19,840 --> 01:12:25,929\n<i>Drew me loving to your isle</i>\n\n545\n01:12:27,848 --> 01:12:34,771\n<i>Did I dream\nyou dreamed about me?</i>\n\n546\n01:12:34,897 --> 01:12:42,070\n<i>Were you here\nwhen I was forced out?</i>\n\n547\n01:12:42,196 --> 01:12:48,827\n<i>Now my foolish boat\nis leaning</i>\n\n548\n01:12:48,911 --> 01:12:56,043\n<i>Broken lovelorn\non your rocks</i>\n\n549\n01:12:57,836 --> 01:13:04,051\n<i>Here I am\nHere I am</i>\n\n550\n01:13:05,928 --> 01:13:13,060\n<i>Waiting to hold you</i>\n\n551\n01:13:46,552 --> 01:13:48,595\nOh, gosh,\nI hope everyone's okay.\n\n552\n01:13:48,720 --> 01:13:51,390\nSee, in times of crisis,\nfor dog work,\n\n553\n01:13:51,473 --> 01:13:53,475\nI always bring a meat snack.\n\n554\n01:13:53,600 --> 01:13:55,310\n'Cause it makes them feel calm.\n\n555\n01:13:55,435 --> 01:13:57,229\n'Cause you never know what's going\nto happen in this city.\n\n556\n01:13:57,312 --> 01:13:58,772\nI mean, oh, my gosh.\n\n557\n01:13:58,897 --> 01:14:01,692\nRight? I start on Monday?\n\n558\n01:14:39,813 --> 01:14:42,649\nYou have been near a Mother Box.\n\n559\n01:14:43,692 --> 01:14:46,278\nThe scent is on you.\n\n560\n01:14:46,320 --> 01:14:47,779\nWhere is it?\n\n561\n01:14:47,863 --> 01:14:51,491\nNo son or daughter of Atlantis\nwill ever tell you.\n\n562\n01:15:06,298 --> 01:15:07,966\nOur people have guarded\nthe Mother Box\n\n563\n01:15:08,050 --> 01:15:09,343\nfor thousands of years.\n\n564\n01:15:15,265 --> 01:15:18,185\nI will never betray\nmy own people.\n\n565\n01:15:29,655 --> 01:15:32,199\nYou already have.\n\n566\n01:16:32,342 --> 01:16:33,802\nThis was taken in\n\n567\n01:16:33,803 --> 01:16:35,262\nthe deepest trench on Earth.\n\n568\n01:16:35,387 --> 01:16:37,472\nHe must be an Atlantean.\n\n569\n01:16:37,597 --> 01:16:38,974\nA water-breather.\n\n570\n01:16:39,099 --> 01:16:40,600\nHe was breathing air\nwhen I talked to him.\n\n571\n01:16:40,684 --> 01:16:42,561\nMixed-blood, then.\n\n572\n01:16:42,644 --> 01:16:44,563\nHe said he'll fight with us?\n\n573\n01:16:44,646 --> 01:16:46,106\nMore or less.\n\n574\n01:16:47,441 --> 01:16:49,776\nMore more or more less?\n\n575\n01:16:49,860 --> 01:16:50,902\nProbably more less.\n\n576\n01:16:50,986 --> 01:16:53,071\n- He said no?\n- He said no.\n\n577\n01:16:53,155 --> 01:16:55,782\nAtlanteans can be tricky.\n\n578\n01:16:55,907 --> 01:16:58,827\nMy people went to war\nwith them once.\n\n579\n01:16:59,828 --> 01:17:01,788\nI'm not sure we can trust him.\n\n580\n01:17:01,913 --> 01:17:03,039\nDiana, if we're gonna do this,\n\n581\n01:17:03,165 --> 01:17:04,166\nyou're gonna need to be open\n\n582\n01:17:04,291 --> 01:17:05,625\nto more things that we didn't...\n\n583\n01:17:05,792 --> 01:17:06,960\nyou know...\n\n584\n01:17:07,043 --> 01:17:08,336\n- I'm sorry. That's okay.\n- Sorry. My fault.\n\n585\n01:17:08,462 --> 01:17:09,754\nDon't worry about it.\n\n586\n01:17:09,796 --> 01:17:11,047\n- Let's...\n- It happens.\n\n587\n01:17:11,173 --> 01:17:12,591\nSo...\n\n588\n01:17:12,632 --> 01:17:14,301\nThis is the third person.\n\n589\n01:17:14,384 --> 01:17:16,970\nDisappears for 1/30\nof a second here.\n\n590\n01:17:17,053 --> 01:17:18,680\nOne frame of video, see?\n\n591\n01:17:18,805 --> 01:17:21,475\nBarry Allen. Central City.\n\n592\n01:17:21,558 --> 01:17:22,517\nGo to him.\n\n593\n01:17:22,642 --> 01:17:24,186\nI'll work on number four.\n\n594\n01:17:24,311 --> 01:17:27,606\nOrganic and biomechatronic\nbody parts.\n\n595\n01:17:30,025 --> 01:17:32,235\nHe's a cyborg.\n\n596\n01:17:51,171 --> 01:17:53,340\n- Ready!\n- Break!\n\n597\n01:18:08,730 --> 01:18:10,190\nThree...\n\n598\n01:18:10,273 --> 01:18:11,858\neighty...\n\n599\n01:18:12,776 --> 01:18:15,028\nset... go!\n\n600\n01:18:27,874 --> 01:18:30,252\nYour son may be captain\nof the football team\n\n601\n01:18:30,377 --> 01:18:33,630\nand a certified genius,\nMrs. Stone...\n\n602\n01:18:33,755 --> 01:18:35,924\nDr. Stone.\n\n603\n01:18:38,218 --> 01:18:40,220\n...but that doesn't mean\nhe can hack into our system\n\n604\n01:18:40,387 --> 01:18:43,098\nto change his friend's grades.\n\n605\n01:18:43,223 --> 01:18:47,060\nSarah's family\nlost their house this year.\n\n606\n01:18:47,143 --> 01:18:49,855\nHow could that child\npass her classes?\n\n607\n01:18:51,147 --> 01:18:54,234\nVictor helped her\n'cause he's got a good heart.\n\n608\n01:18:54,317 --> 01:18:56,486\nWhat did you do to help her?\n\n609\n01:20:20,487 --> 01:20:23,573\n- Your father...\n- Mom, Mom, don't.\n\n610\n01:20:25,075 --> 01:20:27,869\nHe got held up at the lab.\n\n611\n01:20:27,994 --> 01:20:31,206\nOkay. He always does.\n\n612\n01:20:33,708 --> 01:20:35,001\nHe wanted to be here.\n\n613\n01:20:35,168 --> 01:20:37,128\nYou always say that.\n\n614\n01:20:37,212 --> 01:20:38,797\nMa, you gotta stop\nmaking excuses for him.\n\n615\n01:20:38,838 --> 01:20:41,675\nYou're just as busy as he is,\nbut you still make the time.\n\n616\n01:20:41,841 --> 01:20:45,720\nHe just has difficulty\nshowing it, but...\n\n617\n01:20:45,845 --> 01:20:48,014\nI know he's proud of you.\n\n618\n01:20:48,139 --> 01:20:50,725\nWe both are, Victor.\n\n619\n01:20:50,850 --> 01:20:54,020\nHey, hey, hey.\n\n620\n01:20:54,104 --> 01:20:57,190\nWith everything I know\nyou can do today,\n\n621\n01:20:57,315 --> 01:21:00,068\nI can't wait to see\nwhat you're gonna be tomorrow.\n\n622\n01:21:05,365 --> 01:21:07,283\n- Dr. Stone,\n- I'm sorry,\n\n623\n01:21:08,201 --> 01:21:10,203\nYour wife didn't survive.\n\n624\n01:21:11,538 --> 01:21:14,040\nI'm afraid\nyour son won't either.\n\n625\n01:21:27,971 --> 01:21:29,681\nI won't let you die.\n\n626\n01:21:32,726 --> 01:21:34,310\nI won't allow it.\n\n627\n01:21:40,567 --> 01:21:42,360\nI won't allow it.\n\n628\n01:21:45,780 --> 01:21:46,740\nVictor.\n\n629\n01:21:48,074 --> 01:21:51,411\nVictor, you're not\nstuck in here.\n\n630\n01:21:51,536 --> 01:21:54,706\nYou still have a life\nahead of you.\n\n631\n01:21:54,831 --> 01:21:58,543\nYour mother would have\nwanted you to live that life.\n\n632\n01:22:00,962 --> 01:22:02,589\nIf you were there,\n\n633\n01:22:03,923 --> 01:22:05,800\nMom would still be alive.\n\n634\n01:22:08,720 --> 01:22:10,597\nAll right, look,\n\n635\n01:22:11,765 --> 01:22:14,267\nyou don't have to give me\na second chance,\n\n636\n01:22:14,350 --> 01:22:16,144\nbut give yourself one.\n\n637\n01:22:17,979 --> 01:22:21,232\nIf you can't stand\nlooking at me,\n\n638\n01:22:22,776 --> 01:22:24,486\ntry listening.\n\n639\n01:22:54,267 --> 01:22:55,642\nWhat you can do now, Victor.\n\n640\n01:22:55,809 --> 01:22:59,479\nYour physical strength is\njust the tip of the iceberg.\n\n641\n01:22:59,562 --> 01:23:02,357\nThe tip of the tip.\n\n642\n01:23:32,053 --> 01:23:34,347\nIn the world of ones and zeroes,\n\n643\n01:23:34,430 --> 01:23:37,141\nyou are the absolute master.\n\n644\n01:23:37,267 --> 01:23:40,019\nNo firewall can stop you.\n\n645\n01:23:40,103 --> 01:23:42,355\nNo encryption can defy you.\n\n646\n01:23:42,480 --> 01:23:45,066\nWe're all at your mercy, Vic.\n\n647\n01:23:45,191 --> 01:23:47,735\nFrom our power grids\nto our telecommunications,\n\n648\n01:23:47,861 --> 01:23:49,904\neveryone's lives are controlled\n\n649\n01:23:50,029 --> 01:23:51,531\nand dominated\n\n650\n01:23:51,532 --> 01:23:53,032\nby complex digital networks\n\n651\n01:23:53,116 --> 01:23:57,537\nthat will bend\nwithout effort to your will.\n\n652\n01:24:07,672 --> 01:24:09,340\nThe fate of the world\n\n653\n01:24:09,424 --> 01:24:12,427\nwill literally\nrest in your hands.\n\n654\n01:24:20,101 --> 01:24:22,228\nIts entire nuclear arsenal,\n\n655\n01:24:22,312 --> 01:24:25,315\nyou could launch with a thought.\n\n656\n01:24:35,783 --> 01:24:37,368\nThe world's monetary systems\n\n657\n01:24:37,452 --> 01:24:38,953\nand its complex interactions\n\n658\n01:24:39,078 --> 01:24:42,040\nwill seem as easy\nto manipulate for you\n\n659\n01:24:42,123 --> 01:24:43,791\nas a child's plaything.\n\n660\n01:25:17,659 --> 01:25:21,621\nThe question...\nNo, the challenge\n\n661\n01:25:22,372 --> 01:25:25,500\nwon't be doing it.\n\n662\n01:25:25,625 --> 01:25:27,752\nIt will be not doing.\n\n663\n01:25:27,835 --> 01:25:29,837\nNot seeing.\n\n664\n01:25:31,714 --> 01:25:33,967\nIt is the burden\nof this responsibility\n\n665\n01:25:34,092 --> 01:25:37,679\nthat will define you\nand who you choose to be.\n\n666\n01:26:09,168 --> 01:26:10,253\nNow, make a wish.\n\n667\n01:26:11,504 --> 01:26:13,381\nOne more time.\n\n668\n01:26:13,506 --> 01:26:16,009\nGood job. Wave to Grandma!\n\n669\n01:26:16,134 --> 01:26:17,427\nHi, Grandma!\n\n670\n01:27:17,403 --> 01:27:18,696\nWhat?\n\n671\n01:27:20,615 --> 01:27:22,450\nOh, my God!\nOh, my God!\n\n672\n01:27:23,493 --> 01:27:25,036\nOh, my God.\n\n673\n01:27:25,078 --> 01:27:26,871\nOh, my God. Oh, my God!\n\n674\n01:27:32,168 --> 01:27:34,879\nVictor...\n\n675\n01:27:34,962 --> 01:27:39,550\nVictor, these are the words\nand deductions of a scientist.\n\n676\n01:27:39,592 --> 01:27:41,928\nThat's how I've been\nspeaking to you.\n\n677\n01:27:42,553 --> 01:27:45,556\nNow,\n\n678\n01:27:45,640 --> 01:27:50,103\nlet me speak to you\nfrom my heart, not as a scientist,\n\n679\n01:27:50,228 --> 01:27:51,562\nas a father.\n\n680\n01:28:05,868 --> 01:28:06,953\nHey.\n\n681\n01:28:08,162 --> 01:28:09,747\nHey, you!\n\n682\n01:28:25,388 --> 01:28:27,140\nBecause you are\n\n683\n01:28:27,141 --> 01:28:28,891\nholding yourself back.\n\n684\n01:28:29,016 --> 01:28:32,061\nYou're going in circles, man.\n\n685\n01:28:32,186 --> 01:28:34,522\nHolding down\nthree dead-end jobs,\n\n686\n01:28:34,647 --> 01:28:35,773\ngoing on four.\n\n687\n01:28:35,857 --> 01:28:37,316\nWhere do you even find the time?\n\n688\n01:28:37,483 --> 01:28:38,651\nI make the time.\n\n689\n01:28:38,776 --> 01:28:40,069\n- I just need one more gig...\n- Barry.\n\n690\n01:28:40,194 --> 01:28:41,154\n...then I'm gonna pay\nfor my own tuition.\n\n691\n01:28:41,237 --> 01:28:42,280\nYou can't.\n\n692\n01:28:42,405 --> 01:28:43,698\nLike I always said I would.\n\n693\n01:28:43,823 --> 01:28:45,158\nYou cannot keep\ndoing this to yourself.\n\n694\n01:28:45,324 --> 01:28:46,951\nOkay. I really don't wanna\ntalk about this again.\n\n695\n01:28:47,034 --> 01:28:48,453\n- Please, we have 10 minutes.\n- And this is all to pay\n\n696\n01:28:48,536 --> 01:28:49,745\nfor a criminal justice degree,\nhuh?\n\n697\n01:28:49,871 --> 01:28:50,872\nYeah.\n\n698\n01:28:50,997 --> 01:28:52,039\nFor what?\n\n699\n01:28:52,165 --> 01:28:55,084\nHuh, let's see.\nAs I talk to my father,\n\n700\n01:28:55,209 --> 01:28:56,836\nwho's still in prison\nfor the murder\n\n701\n01:28:56,919 --> 01:28:58,337\nof my mother,\nwhich he didn't commit.\n\n702\n01:28:58,463 --> 01:29:00,381\nYeah, how did I get interested\nin criminal justice?\n\n703\n01:29:00,506 --> 01:29:02,133\nI can't remember.\n\n704\n01:29:02,216 --> 01:29:03,509\nOh, boy.\n\n705\n01:29:03,593 --> 01:29:05,928\nThis path has clearly\nchosen me, Dad.\n\n706\n01:29:06,762 --> 01:29:08,014\nGive me your hand, man.\n\n707\n01:29:13,352 --> 01:29:16,689\nI want you\nto listen to me, Barry.\n\n708\n01:29:16,856 --> 01:29:20,610\nI want you to listen to me,\nbecause I mean this.\n\n709\n01:29:26,365 --> 01:29:28,493\nI want you to give all that up.\n\n710\n01:29:31,120 --> 01:29:34,498\nAnd I want you to stop\ncoming to see me.\n\n711\n01:29:36,667 --> 01:29:39,837\nI am a drag on your life.\n\n712\n01:29:45,218 --> 01:29:46,886\nOkay. Um...\n\n713\n01:29:47,053 --> 01:29:50,515\nPlease don't ever\nsay that to me again.\n\n714\n01:29:50,640 --> 01:29:51,849\nPlease.\n\n715\n01:29:51,974 --> 01:29:53,517\nHey, you know what\ncriminal justice\n\n716\n01:29:53,601 --> 01:29:55,353\nwould be for me?\n\n717\n01:29:55,436 --> 01:30:00,233\nMy son not wasting his life.\n\n718\n01:30:01,567 --> 01:30:03,402\nYou can be\nwhatever you wanna be.\n\n719\n01:30:03,486 --> 01:30:04,904\nYou're brilliant, man.\n\n720\n01:30:07,406 --> 01:30:10,201\nAbsolute best of the best.\n\n721\n01:30:11,702 --> 01:30:16,707\nI can't sit here and watch you\nrun in place in Central City\n\n722\n01:30:16,791 --> 01:30:18,626\nfor some old dude\n\n723\n01:30:18,751 --> 01:30:21,921\nwho's not going anywhere.\n\n724\n01:30:22,004 --> 01:30:23,464\n- Dad, that's not true.\n- It's time.\n\n725\n01:30:23,589 --> 01:30:24,799\nThat's not true.\n\n726\n01:30:24,924 --> 01:30:26,384\nLet's go, Allen. Allen!\n\n727\n01:30:26,467 --> 01:30:28,052\nI want you\nto make your own future.\n\n728\n01:30:28,094 --> 01:30:30,096\nYou're living in the past.\nMake your own future.\n\n729\n01:30:30,221 --> 01:30:31,556\nOpen gate.\n\n730\n01:30:31,639 --> 01:30:33,140\nGreat.\n\n731\n01:30:36,644 --> 01:30:38,938\n\"You're living in the past.\nMake your own future, Barry.\"\n\n732\n01:30:39,105 --> 01:30:40,648\nClear.\nClose the gate.\n\n733\n01:31:33,492 --> 01:31:36,787\nBarry Allen. Bruce Wayne.\n\n734\n01:31:36,871 --> 01:31:38,372\nYou said that like it explains\n\n735\n01:31:38,497 --> 01:31:40,833\nwhy there's a total stranger\nin my place\n\n736\n01:31:41,000 --> 01:31:44,086\nsitting in the dark,\nin my second favorite chair.\n\n737\n01:31:45,880 --> 01:31:47,882\nTell me about this.\n\n738\n01:31:51,844 --> 01:31:54,638\nThis is a person\nwho looks exactly like me,\n\n739\n01:31:54,722 --> 01:31:57,683\nbut who is definitely not me.\n\n740\n01:31:58,601 --> 01:32:00,478\nSomebody... I don't know.\n\n741\n01:32:00,603 --> 01:32:02,480\nHippie, long hair.\n\n742\n01:32:02,605 --> 01:32:05,399\nVery attractive Jewish boy.\n\n743\n01:32:06,901 --> 01:32:09,570\nWho drinks milk,\nI don't drink milk.\n\n744\n01:32:09,695 --> 01:32:11,155\nI know you have abilities.\n\n745\n01:32:11,197 --> 01:32:13,491\nI just don't know what they are.\n\n746\n01:32:13,616 --> 01:32:14,659\nMy special skills\n\n747\n01:32:14,742 --> 01:32:17,411\ninclude viola, web design,\n\n748\n01:32:17,536 --> 01:32:20,373\nfluent in sign language,\ngorilla sign language.\n\n749\n01:32:20,498 --> 01:32:24,210\nSilica-based sand quartz fabric.\n\n750\n01:32:24,293 --> 01:32:26,545\nAbrasion resistant,\nheat resistant.\n\n751\n01:32:26,712 --> 01:32:28,589\nUh, yeah, I do\ncompetitive ice dancing.\n\n752\n01:32:28,714 --> 01:32:30,341\nIt's what they use\non the space shuttle\n\n753\n01:32:30,466 --> 01:32:32,176\nto prevent it from\nburning up on re-entry.\n\n754\n01:32:32,301 --> 01:32:35,054\nI do very competitive\nice dancing.\n\n755\n01:32:36,263 --> 01:32:38,182\nLook, man.\nI don't know who you are,\n\n756\n01:32:38,265 --> 01:32:40,559\nbut whoever you're looking for,\n\n757\n01:32:40,643 --> 01:32:41,811\nit's not me.\n\n758\n01:33:23,477 --> 01:33:25,396\nYou're the Batman?\n\n759\n01:33:25,479 --> 01:33:28,274\nSo, you're fast.\n\n760\n01:33:28,357 --> 01:33:30,025\nThat feels\nlike an oversimplification.\n\n761\n01:33:30,151 --> 01:33:31,944\nI'm putting together a team.\n\n762\n01:33:32,069 --> 01:33:34,113\nPeople with special abilities.\n\n763\n01:33:34,280 --> 01:33:35,906\nYou see,\nI believe enemies are coming.\n\n764\n01:33:35,948 --> 01:33:38,200\nStop right there. I'm in.\n\n765\n01:33:39,285 --> 01:33:40,578\nYou are?\n\n766\n01:33:40,661 --> 01:33:41,745\nJust like that?\n\n767\n01:33:41,829 --> 01:33:43,122\nYeah.\n\n768\n01:33:44,915 --> 01:33:47,460\nI need friends.\n\n769\n01:33:47,585 --> 01:33:50,838\nGreat. Great.\n\n770\n01:33:50,963 --> 01:33:53,174\nCan I keep this?\n\n771\n01:33:53,299 --> 01:33:55,134\nIt's like this layer\nof dimensional reality,\n\n772\n01:33:55,217 --> 01:33:56,927\nand it seems\nto manipulate space-time.\n\n773\n01:33:57,052 --> 01:33:58,471\nI call it the Speed Force.\n\n774\n01:33:58,596 --> 01:34:00,306\nCauses me to burn a tremendous\namount of calories\n\n775\n01:34:00,389 --> 01:34:03,267\nso I am just a black hole\nof snacks.\n\n776\n01:34:03,392 --> 01:34:05,853\nI am a snack hole.\n\n777\n01:34:05,978 --> 01:34:08,856\nHow many people are\non this special fight team?\n\n778\n01:34:08,981 --> 01:34:10,941\n- Three, including you.\n- Three?\n\n779\n01:34:11,025 --> 01:34:13,778\nAgainst what?\n\n780\n01:34:13,861 --> 01:34:15,404\nI'll tell you on the plane.\n\n781\n01:34:15,946 --> 01:34:17,740\nPlane?\n\n782\n01:34:17,865 --> 01:34:19,617\nWhat are your superpowers again?\n\n783\n01:34:19,742 --> 01:34:21,494\nI'm rich.\n\n784\n01:34:44,350 --> 01:34:46,310\nOh, Miss Prince, let me do that.\n\n785\n01:34:46,393 --> 01:34:49,355\nNo, that's okay.\nI can do it myself.\n\n786\n01:34:49,522 --> 01:34:51,315\nWould you like to have some?\n\n787\n01:34:51,440 --> 01:34:52,858\nUh, no, thank you.\n\n788\n01:34:54,026 --> 01:34:56,487\nIf you put the water in first.\n\n789\n01:34:56,529 --> 01:34:59,949\n- Of course.\n- So we don't scald the tea.\n\n790\n01:35:02,743 --> 01:35:04,161\n- Yes.\n- Great.\n\n791\n01:35:04,245 --> 01:35:06,497\nNo, that's probably enough tea.\n\n792\n01:35:06,580 --> 01:35:08,874\nAll right.\n\n793\n01:35:08,999 --> 01:35:10,376\nAre you sure you don't\nwanna have some?\n\n794\n01:35:10,543 --> 01:35:14,588\nI won't, thank you.\nAnd then leave it to mash.\n\n795\n01:35:14,713 --> 01:35:17,716\nI will.\nI will, definitely will.\n\n796\n01:35:17,800 --> 01:35:20,010\nUh... What are you working on?\n\n797\n01:35:20,094 --> 01:35:21,929\nIt's a gauntlet\n\n798\n01:35:22,054 --> 01:35:25,850\nlined with specialized\npolymer solar cells.\n\n799\n01:35:25,933 --> 01:35:28,352\n- Wow.\n- Here, let me show you.\n\n800\n01:35:28,394 --> 01:35:31,605\nWe borrowed this from\nthe Kryptonian scout ship.\n\n801\n01:35:33,107 --> 01:35:34,525\nOh, maybe you should, uh...\n\n802\n01:35:34,608 --> 01:35:36,235\na fraction.\nThank you, thank you.\n\n803\n01:35:36,318 --> 01:35:37,361\nOf course.\n\n804\n01:35:42,533 --> 01:35:44,118\nAh.\n\n805\n01:35:44,243 --> 01:35:47,246\nAh, now, let's see how that did.\n\n806\n01:35:47,329 --> 01:35:49,748\nHa! Yes.\n\n807\n01:35:49,873 --> 01:35:51,417\nNot to be sneezed at.\n\n808\n01:35:51,500 --> 01:35:54,044\nA gauntlet that captures\nand dissipates energy.\n\n809\n01:35:54,128 --> 01:35:55,921\nIt's Master Wayne's idea.\n\n810\n01:35:56,005 --> 01:35:58,257\nMaybe you should work\non a lasso, too?\n\n811\n01:35:58,340 --> 01:36:01,218\n- In black, of course.\n- Oh.\n\n812\n01:36:07,975 --> 01:36:11,145\nAll right. Victor Stone.\n\n813\n01:36:27,202 --> 01:36:29,663\nSomething is not working.\n\n814\n01:36:29,788 --> 01:36:31,457\nMmm.\n\n815\n01:36:41,050 --> 01:36:43,510\nLooks like you have a date,\nMiss Prince.\n\n816\n01:37:40,401 --> 01:37:43,737\nWhy are you looking\nfor me, Diana?\n\n817\n01:37:43,862 --> 01:37:45,155\nYou know who I am.\n\n818\n01:37:45,239 --> 01:37:47,491\nI know more than you\ncan possibly imagine.\n\n819\n01:37:47,574 --> 01:37:50,828\nThen maybe you already know\nI need your help.\n\n820\n01:37:50,953 --> 01:37:52,162\nThe world does.\n\n821\n01:37:53,247 --> 01:37:55,207\nFuck the world.\n\n822\n01:37:56,583 --> 01:37:59,211\nYou've obviously\nbeen through a great deal.\n\n823\n01:38:00,254 --> 01:38:03,340\nI can't begin to imagine what.\n\n824\n01:38:03,382 --> 01:38:07,011\nBut whatever happened to you,\nyou have gifts now.\n\n825\n01:38:07,094 --> 01:38:08,929\nGifts?\n\n826\n01:38:09,054 --> 01:38:11,223\nWhat part of this\nlooks like a gift to you?\n\n827\n01:38:11,306 --> 01:38:13,058\nWe need you, Victor.\n\n828\n01:38:13,183 --> 01:38:14,893\nAnd maybe you need us.\n\n829\n01:38:14,977 --> 01:38:16,687\nI don't need anyone.\n\n830\n01:38:18,897 --> 01:38:20,065\nNot anymore.\n\n831\n01:38:20,149 --> 01:38:22,609\nI told myself the same\nfor a long time.\n\n832\n01:38:29,283 --> 01:38:32,244\nI lost someone I loved once.\n\n833\n01:38:34,997 --> 01:38:39,752\nI shut myself off from everyone.\n\n834\n01:38:41,336 --> 01:38:44,256\nBut I had to learn\nto open back up again.\n\n835\n01:38:46,675 --> 01:38:50,262\nThe truth is,\nI'm still working on it.\n\n836\n01:38:50,345 --> 01:38:54,308\nAnd if you asked to meet me...\n\n837\n01:38:54,433 --> 01:38:57,352\nyou're working on it, too.\n\n838\n01:40:08,757 --> 01:40:10,968\nYou were right\nabout the metal sample\n\n839\n01:40:11,009 --> 01:40:12,553\nfrom the Superman ship.\n\n840\n01:40:12,678 --> 01:40:16,140\nWhen we bombard it with X-rays\nfrom the electron-laser,\n\n841\n01:40:16,265 --> 01:40:17,850\nlook what happens.\n\n842\n01:40:26,900 --> 01:40:28,652\n3.5 million kelvin.\n\n843\n01:40:28,694 --> 01:40:31,947\nThe inner core of the metal\nbecomes superheated.\n\n844\n01:40:32,072 --> 01:40:34,491\nHot, dense matter.\n\n845\n01:40:37,578 --> 01:40:40,414\nYou're looking at\nthe hottest thing on Earth.\n\n846\n01:40:40,539 --> 01:40:42,875\nExact words I said\nto my prom date.\n\n847\n01:40:42,958 --> 01:40:44,585\nShe dumped me anyway.\n\n848\n01:40:44,710 --> 01:40:45,836\nYeah.\n\n849\n01:40:50,048 --> 01:40:51,174\nHey, Doc,\n\n850\n01:40:51,258 --> 01:40:52,843\ndo you think Batman is connected\n\n851\n01:40:52,885 --> 01:40:55,679\nto the object\nthe CID is looking for?\n\n852\n01:40:56,597 --> 01:40:59,850\nYou know, 6-1-9-8-2?\n\n853\n01:41:01,018 --> 01:41:02,227\nNo...\n\n854\n01:41:03,061 --> 01:41:04,396\nI don't.\n\n855\n01:41:39,139 --> 01:41:41,350\nOh, Victor.\n\n856\n01:41:58,325 --> 01:42:00,410\nAll right! Let's go!\n\n857\n01:42:01,495 --> 01:42:02,829\nCommissioner Gordon?\n\n858\n01:42:02,955 --> 01:42:03,997\nCome on!\n\n859\n01:42:04,122 --> 01:42:05,290\nYour messages.\n\n860\n01:42:05,415 --> 01:42:06,875\nHey, hey!\n\n861\n01:42:09,628 --> 01:42:12,130\nDon't have to see the sky\nto know it's a full moon.\n\n862\n01:42:12,256 --> 01:42:15,342\nHalf of Gotham's reality-challenged\ncommunity showed up.\n\n863\n01:42:15,467 --> 01:42:17,636\nSay they saw flying monsters\nby the harbor.\n\n864\n01:42:17,719 --> 01:42:19,721\nYou were right, Ma.\nPolice Academy.\n\n865\n01:42:19,846 --> 01:42:21,682\nWhat's wrong with dental school?\n\n866\n01:42:24,601 --> 01:42:27,688\n\"Attacked by\na flying vampire.\"\n\n867\n01:42:27,813 --> 01:42:31,024\n\"Looked like a giant bat\nwith huge fangs.\"\n\n868\n01:42:31,149 --> 01:42:32,818\nOn a possibly related note,\n\n869\n01:42:32,901 --> 01:42:35,320\nsketch of the suspect\nin the abductions\n\n870\n01:42:35,445 --> 01:42:36,947\nat the lab across the harbor.\n\n871\n01:42:37,030 --> 01:42:40,158\n- Looks like...\n- I know what it looks like, Crispus.\n\n872\n01:42:40,325 --> 01:42:42,911\nCome on, you think he fights\ncriminals for 20 years here\n\n873\n01:42:43,036 --> 01:42:45,914\nand then he goes to Metropolis\nand kidnaps eight people?\n\n874\n01:42:46,999 --> 01:42:48,083\nI'll talk to him tonight.\n\n875\n01:42:48,208 --> 01:42:49,793\nHow, Jim?\n\n876\n01:42:49,918 --> 01:42:51,503\nHow do you think?\n\n877\n01:43:09,563 --> 01:43:10,981\nSilas?\n\n878\n01:43:11,106 --> 01:43:12,315\nHey, hey.\n\n879\n01:43:12,399 --> 01:43:13,859\nHey, hey!\n\n880\n01:43:18,321 --> 01:43:20,866\n- Oh, my goodness.\n- Where's the cyborg?\n\n881\n01:43:20,991 --> 01:43:22,034\nHis name is Victor.\n\n882\n01:43:22,951 --> 01:43:25,704\nWe met, spoke.\n\n883\n01:43:26,538 --> 01:43:28,540\nGive him time.\n\n884\n01:43:28,707 --> 01:43:30,709\nYou must be Barry. I'm Diana.\n\n885\n01:43:30,792 --> 01:43:34,588\nHi, Barry. I'm Diana.\nThat's not right. Great.\n\n886\n01:43:34,713 --> 01:43:37,049\n- So, this is us.\n- Yeah, this is us.\n\n887\n01:43:37,174 --> 01:43:38,508\nOh!\n\n888\n01:43:38,592 --> 01:43:41,386\nAwesome! It's the Bat-Signal.\nThat's your...\n\n889\n01:43:41,470 --> 01:43:43,555\n- Oh, sorry.\n- That's your signal.\n\n890\n01:43:43,680 --> 01:43:45,140\nThat means we have to go now.\n\n891\n01:43:45,265 --> 01:43:48,977\n- Yeah, that's what that means.\n- It's so cool.\n\n892\n01:44:46,118 --> 01:44:47,869\nCommander Mera, I told the king\n\n893\n01:44:47,994 --> 01:44:49,746\nthe perimeter guards were taken.\n\n894\n01:44:49,830 --> 01:44:51,373\nHe won't send reinforcements.\n\n895\n01:44:51,498 --> 01:44:54,084\nHe says all the reserves are\nneeded in the rebel regions.\n\n896\n01:44:54,209 --> 01:44:58,672\nHe's as shortsighted\nas he is cruel.\n\n897\n01:44:58,797 --> 01:45:00,465\nAll right, take what men\nwe have left\n\n898\n01:45:00,590 --> 01:45:02,300\nand form a phalanx\naround the Mother Box.\n\n899\n01:46:42,234 --> 01:46:44,236\nYou can't escape.\n\n900\n01:46:45,111 --> 01:46:47,072\nI'm not trying to.\n\n901\n01:48:49,402 --> 01:48:51,738\nVulko told me you would come.\n\n902\n01:48:51,863 --> 01:48:54,783\nThe firstborn\nof beloved Queen Atlanna.\n\n903\n01:48:57,369 --> 01:48:58,703\nWait.\n\n904\n01:49:00,580 --> 01:49:01,790\nPlease.\n\n905\n01:49:05,335 --> 01:49:06,753\nI knew her.\n\n906\n01:49:08,797 --> 01:49:11,091\nWell, that makes one of us.\n\n907\n01:49:11,216 --> 01:49:13,051\nMy parents died in the wars.\n\n908\n01:49:14,761 --> 01:49:16,346\nShe took me in.\n\n909\n01:49:16,429 --> 01:49:18,098\nWhat a saint.\n\n910\n01:49:18,223 --> 01:49:20,350\nYou dare speak\nof Queen Atlanna that way?\n\n911\n01:49:20,433 --> 01:49:23,186\nYour queen left me\non my father's doorstep\n\n912\n01:49:23,269 --> 01:49:25,021\nand never gave me\nanother thought.\n\n913\n01:49:25,063 --> 01:49:28,274\nYour mother left you\nto save your life.\n\n914\n01:49:28,400 --> 01:49:31,111\nYou cannot imagine\nhow it hurt her.\n\n915\n01:49:32,570 --> 01:49:34,781\nWhat it cost her.\n\n916\n01:49:35,824 --> 01:49:38,159\nBut you're not\na defenseless child now.\n\n917\n01:49:40,328 --> 01:49:42,038\nIt would have been\nher responsibility\n\n918\n01:49:42,080 --> 01:49:45,417\nto follow that monster\nto the surface and stop him.\n\n919\n01:49:46,084 --> 01:49:47,168\nNow,\n\n920\n01:49:48,461 --> 01:49:49,879\nit's yours.\n\n921\n01:50:54,152 --> 01:50:55,487\nYes.\n\n922\n01:51:18,551 --> 01:51:19,802\nSteppenwolf,\n\n923\n01:51:19,928 --> 01:51:21,888\ntell me what you've learned.\n\n924\n01:51:22,013 --> 01:51:24,516\nTwo boxes found and awake.\n\n925\n01:51:24,682 --> 01:51:27,685\nWith the combined power\nof the two Mother Boxes,\n\n926\n01:51:27,769 --> 01:51:31,022\nI've been able to finish\nthe stronghold's defenses.\n\n927\n01:51:31,105 --> 01:51:33,650\nWhere is the third Mother Box?\n\n928\n01:51:33,733 --> 01:51:36,152\nThe parademons\nsense its presence\n\n929\n01:51:36,194 --> 01:51:37,904\nand search for the third.\n\n930\n01:51:38,029 --> 01:51:39,030\nThey have taken prisoners\n\n931\n01:51:39,155 --> 01:51:41,366\nwho carry its scent.\n\n932\n01:51:42,200 --> 01:51:43,827\nGo.\n\n933\n01:51:43,910 --> 01:51:46,037\nInterrogate the prisoners.\n\n934\n01:51:46,704 --> 01:51:48,540\nFind the third.\n\n935\n01:51:50,041 --> 01:51:52,335\nThey will tell me\nwhat they know,\n\n936\n01:51:53,378 --> 01:51:56,130\nor I will rip it from them.\n\n937\n01:52:39,257 --> 01:52:41,050\nHow many of you are there?\n\n938\n01:52:41,801 --> 01:52:43,052\nNot enough.\n\n939\n01:52:44,762 --> 01:52:47,181\nDozens of witnesses\nall over Gotham.\n\n940\n01:52:47,307 --> 01:52:48,683\nDescription matches the suspect\n\n941\n01:52:48,808 --> 01:52:50,602\nin the Metropolis abductions.\n\n942\n01:52:50,727 --> 01:52:51,895\nParademons.\n\n943\n01:52:52,437 --> 01:52:53,771\nOkay.\n\n944\n01:52:53,938 --> 01:52:56,149\nThe demons must have caught\nthe scent of a Mother Box.\n\n945\n01:52:56,274 --> 01:52:57,650\nAt the lab.\n\n946\n01:52:57,775 --> 01:52:59,903\nThey carried people away\nto find out what they know.\n\n947\n01:52:59,986 --> 01:53:01,070\nSo the eight may still be alive.\n\n948\n01:53:01,112 --> 01:53:02,113\nNine.\n\n949\n01:53:02,238 --> 01:53:04,115\nOh.\n\n950\n01:53:04,198 --> 01:53:06,951\nThe head of STARLABS\nwas taken tonight.\n\n951\n01:53:11,956 --> 01:53:14,626\nWow, okay.\nSo, another scientist.\n\n952\n01:53:14,751 --> 01:53:16,002\nSo, how do we find him?\n\n953\n01:53:16,127 --> 01:53:17,670\nThere must be a nest nearby.\n\n954\n01:53:17,795 --> 01:53:22,091\nI plotted all the sightings\nin Metropolis, Gotham.\n\n955\n01:53:22,175 --> 01:53:24,302\nNo discernable pattern\nI can see.\n\n956\n01:53:24,427 --> 01:53:25,887\nThe lines on the map\ndon't converge.\n\n957\n01:53:26,012 --> 01:53:27,305\nOn land.\n\n958\n01:53:27,430 --> 01:53:28,848\nThese lead back\nto Stryker's Island,\n\n959\n01:53:28,973 --> 01:53:30,099\nbetween the two cities.\n\n960\n01:53:30,183 --> 01:53:31,267\nThese are air vents.\n\n961\n01:53:31,392 --> 01:53:32,852\nThey all lead down to the tunnel\n\n962\n01:53:32,977 --> 01:53:35,146\nto a Metropolis project\nthat was abandoned in '29.\n\n963\n01:53:35,313 --> 01:53:37,482\nThe nest could be there.\n\n964\n01:53:37,607 --> 01:53:39,567\nUh, is he coming with us now,\n\n965\n01:53:39,692 --> 01:53:41,653\nbecause we're not all\ngonna fit in your car.\n\n966\n01:53:41,778 --> 01:53:43,237\nI have something bigger.\n\n967\n01:53:44,364 --> 01:53:47,241\nDo you really think that...\n\n968\n01:53:47,367 --> 01:53:50,954\nOh, wow, they just...\nThey really just vanish, huh?\n\n969\n01:53:50,995 --> 01:53:53,581\nOh. That's rude.\n\n970\n01:54:32,203 --> 01:54:34,247\nWe're close.\n\n971\n01:54:34,372 --> 01:54:36,541\nThe scent of the enemy.\n\n972\n01:54:37,166 --> 01:54:38,418\nOf absence.\n\n973\n01:54:38,918 --> 01:54:40,545\nDarkness.\n\n974\n01:54:41,170 --> 01:54:42,547\nDeath.\n\n975\n01:54:42,714 --> 01:54:43,756\nWhere are we, Alfred?\n\n976\n01:54:43,881 --> 01:54:45,049\nStryker's Island.\n\n977\n01:54:45,133 --> 01:54:47,176\nYou should be directly under\n\n978\n01:54:47,260 --> 01:54:50,054\nthe venting tower\nfor the tunnel.\n\n979\n01:54:50,138 --> 01:54:51,514\nNow look to your left,\n\n980\n01:54:51,597 --> 01:54:53,558\nyou'll see a staircase\nto the machine room.\n\n981\n01:54:53,641 --> 01:54:56,227\nThermal scan shows\na cluster of people there.\n\n982\n01:54:56,352 --> 01:54:57,687\nThat's it.\n\n983\n01:54:57,812 --> 01:54:59,188\nLet's go.\n\n984\n01:55:12,994 --> 01:55:15,747\nRight.\nIs there... Is there a plan?\n\n985\n01:55:17,248 --> 01:55:18,499\nEither of you?\n\n986\n01:55:18,624 --> 01:55:20,668\nDon't engage alone.\n\n987\n01:55:20,793 --> 01:55:22,086\nWe do this together.\n\n988\n01:55:30,970 --> 01:55:32,764\nI heard about you.\n\n989\n01:55:34,474 --> 01:55:36,058\nDidn't think you were real.\n\n990\n01:55:36,142 --> 01:55:37,727\nI'm real when it's useful.\n\n991\n01:55:47,820 --> 01:55:49,572\nI grow tired of your silence.\n\n992\n01:55:49,697 --> 01:55:52,074\nNow tell me,\nwhere is the Mother Box?\n\n993\n01:55:58,956 --> 01:56:01,125\nPlease. We have families.\n\n994\n01:56:01,250 --> 01:56:03,503\nThen you have weakness.\n\n995\n01:56:03,628 --> 01:56:05,004\nSteppenwolf.\n\n996\n01:56:05,129 --> 01:56:09,467\nOkay, I'm guessing\nthat's the bad guy.\n\n997\n01:56:09,634 --> 01:56:10,802\nGood guess.\n\n998\n01:56:10,927 --> 01:56:14,680\nI'm really, really missing\nSuperman right now.\n\n999\n01:56:14,806 --> 01:56:16,766\nCircle to the other side.\n\n1000\n01:56:16,849 --> 01:56:19,227\nWe'll surround them\nand surprise him.\n\n1001\n01:56:23,523 --> 01:56:25,650\nYou have been near a Mother Box.\n\n1002\n01:56:25,733 --> 01:56:27,318\nThe scent is on you.\n\n1003\n01:56:27,443 --> 01:56:28,986\nI don't know\nwhat you're talking about.\n\n1004\n01:56:29,153 --> 01:56:30,988\n- Where is it?\n- Leave him alone!\n\n1005\n01:56:31,155 --> 01:56:33,491\nHe... He doesn't know.\n\n1006\n01:56:37,036 --> 01:56:38,830\nWait, please, please!\n\n1007\n01:56:44,252 --> 01:56:47,296\nYou carry\nthe scent, too. But stronger.\n\n1008\n01:56:47,380 --> 01:56:49,674\nI will die before I tell you.\n\n1009\n01:56:49,841 --> 01:56:51,884\nYou'll die if you don't.\n\n1010\n01:56:52,009 --> 01:56:53,177\nNo!\n\n1011\n01:57:02,270 --> 01:57:03,354\nVictor.\n\n1012\n01:57:03,479 --> 01:57:04,856\nKill them both.\n\n1013\n01:57:08,359 --> 01:57:10,820\nAh, Amazon.\n\n1014\n01:57:10,903 --> 01:57:13,573\nBut not like your sisters.\n\n1015\n01:57:13,698 --> 01:57:14,824\nStronger.\n\n1016\n01:57:45,855 --> 01:57:48,190\nAmazon.\n\n1017\n01:57:50,568 --> 01:57:52,069\nHold!\n\n1018\n01:57:52,195 --> 01:57:54,488\nThis one will be mine.\n\n1019\n01:57:56,324 --> 01:57:58,826\nI belong to no one.\n\n1020\n01:58:12,632 --> 01:58:14,842\nGuys, this is not together.\n\n1021\n01:58:21,682 --> 01:58:23,100\nHelp get those people\nout of here.\n\n1022\n01:58:23,226 --> 01:58:25,394\nI'll make sure these things\nfollow me.\n\n1023\n01:58:35,279 --> 01:58:36,781\nEverybody, move!\n\n1024\n01:58:45,414 --> 01:58:46,958\nA little quicker.\n\n1025\n01:58:49,293 --> 01:58:50,586\n- Are you good?\n- Yeah.\n\n1026\n01:58:50,711 --> 01:58:53,464\nI've got this. Keep moving.\n\n1027\n01:58:55,299 --> 01:58:56,258\nThis way.\n\n1028\n01:59:32,586 --> 01:59:34,171\nThe energy is dissipating.\n\n1029\n01:59:34,255 --> 01:59:36,757\nMy gauntlet worked!\n\n1030\n01:59:36,882 --> 01:59:39,343\nCelebrate later, Alfred.\nI need the Nightcrawler.\n\n1031\n01:59:39,427 --> 01:59:41,512\nThought you'd never ask.\n\n1032\n01:59:41,595 --> 01:59:43,848\nCrawler's on the way.\nInitiating remote mode.\n\n1033\n02:00:14,045 --> 02:00:15,004\nThank you, Alfred.\n\n1034\n02:00:15,129 --> 02:00:16,380\nDon't mention it.\n\n1035\n02:00:39,236 --> 02:00:40,404\nNo!\n\n1036\n02:00:43,949 --> 02:00:44,950\nWhew.\n\n1037\n02:00:48,079 --> 02:00:49,663\nThey're safe.\nGet back to the tunnel.\n\n1038\n02:00:49,789 --> 02:00:53,125\nTunnel. Right.\nAliens, bad guy, sword lady.\n\n1039\n02:01:04,887 --> 02:01:06,097\nMy turn.\n\n1040\n02:02:28,262 --> 02:02:29,930\nCatastrophic failure\nof all systems.\n\n1041\n02:02:30,055 --> 02:02:32,600\nAre you all right, Master Wayne?\n\n1042\n02:02:32,725 --> 02:02:33,851\nAre you all right?\n\n1043\n02:02:44,236 --> 02:02:48,032\nYou have the blood\nof the old gods in you.\n\n1044\n02:03:02,296 --> 02:03:03,506\nYou okay?\n\n1045\n02:03:04,006 --> 02:03:05,216\nMm.\n\n1046\n02:03:05,341 --> 02:03:07,009\nWasn't sure you'd come.\n\n1047\n02:03:08,052 --> 02:03:09,261\nYou're my father.\n\n1048\n02:03:12,890 --> 02:03:13,891\nGo.\n\n1049\n02:03:27,404 --> 02:03:28,572\nNo!\n\n1050\n02:04:13,826 --> 02:04:16,287\nRelax, Alfred.\nI'll take it from here.\n\n1051\n02:04:17,788 --> 02:04:19,790\nUh, do I know you?\n\n1052\n02:04:50,571 --> 02:04:51,905\nWhat are we under, right now?\n\n1053\n02:04:52,573 --> 02:04:53,949\nGotham Harbor.\n\n1054\n02:05:32,571 --> 02:05:33,947\nWho is that?\n\n1055\n02:05:59,223 --> 02:06:00,391\nCome on.\n\n1056\n02:06:05,521 --> 02:06:06,814\nDiana, get on!\n\n1057\n02:07:08,625 --> 02:07:10,169\nWhat is it?\n\n1058\n02:07:17,801 --> 02:07:19,344\nShow me.\n\n1059\n02:07:58,550 --> 02:08:00,177\nIt is here.\n\n1060\n02:08:00,844 --> 02:08:03,972\nOn this world.\n\n1061\n02:08:37,714 --> 02:08:39,007\nSir, you're gonna\nbe in quarantine\n\n1062\n02:08:39,132 --> 02:08:40,509\nfor possible alien microbes.\n\n1063\n02:08:40,592 --> 02:08:42,386\nU.S. government protocols\nrequire that...\n\n1064\n02:08:42,511 --> 02:08:45,514\nI know the requirements.\nI wrote them.\n\n1065\n02:08:49,977 --> 02:08:51,478\nIt called to him.\n\n1066\n02:08:51,603 --> 02:08:53,021\nThe Mother Box.\n\n1067\n02:08:53,105 --> 02:08:54,606\nThe one he already has.\n\n1068\n02:08:54,731 --> 02:08:57,943\nHe has two. He took\nthe Mother Box from Atlantis.\n\n1069\n02:08:58,068 --> 02:09:00,571\nAll he needs now\nis the lost Box of Men.\n\n1070\n02:09:00,654 --> 02:09:01,947\nIf he doesn't already have it.\n\n1071\n02:09:05,492 --> 02:09:07,035\nHe doesn't have it.\n\n1072\n02:09:10,038 --> 02:09:11,331\nI do.\n\n1073\n02:09:21,758 --> 02:09:23,886\nHave you finished the conquest?\n\n1074\n02:09:23,969 --> 02:09:25,220\nNot yet, DeSaad.\n\n1075\n02:09:25,304 --> 02:09:27,764\nThen why do you summon me?\n\n1076\n02:09:27,890 --> 02:09:29,391\nI bring news.\n\n1077\n02:09:29,516 --> 02:09:32,519\nBefore mighty Darkseid\ncame to the throne,\n\n1078\n02:09:32,644 --> 02:09:37,816\nhe searched the universe\nfor the ultimate weapon.\n\n1079\n02:09:37,941 --> 02:09:40,068\nThe Anti-Life Equation.\n\n1080\n02:09:40,152 --> 02:09:42,237\nThe key to controlling all life\n\n1081\n02:09:42,279 --> 02:09:44,781\nand all will\nthroughout the multiverse.\n\n1082\n02:09:44,865 --> 02:09:48,118\nHe found it hidden on a primitive planet,\nbut before...\n\n1083\n02:09:48,201 --> 02:09:51,079\nThe story of the defiance\nis well-known.\n\n1084\n02:09:51,204 --> 02:09:53,874\nI have found\nthe primitive planet.\n\n1085\n02:09:53,999 --> 02:09:56,001\nThe world that fought back.\n\n1086\n02:09:56,126 --> 02:09:58,086\nIt is Earth.\n\n1087\n02:09:58,128 --> 02:10:00,380\nThe Anti-Life Equation is carved\n\n1088\n02:10:00,505 --> 02:10:04,551\ninto the surface\nof this very world.\n\n1089\n02:10:08,138 --> 02:10:09,681\nAre you certain?\n\n1090\n02:10:09,806 --> 02:10:10,849\nI have seen it.\n\n1091\n02:10:10,974 --> 02:10:14,186\nI have looked with my own eyes.\n\n1092\n02:10:15,937 --> 02:10:16,939\nAnti-Life.\n\n1093\n02:10:57,729 --> 02:10:59,398\nMy lord.\n\n1094\n02:11:00,857 --> 02:11:04,736\nOh, Steppenwolf.\n\n1095\n02:11:04,861 --> 02:11:09,032\nMy lord, I am\nbut your humble servant.\n\n1096\n02:11:09,116 --> 02:11:11,994\nCan it be true\nthat you have found it?\n\n1097\n02:11:12,077 --> 02:11:14,913\nI have, great one.\n\n1098\n02:11:15,038 --> 02:11:17,999\nThe lost world is Earth.\n\n1099\n02:11:18,125 --> 02:11:22,337\nAnti-Life is here.\n\n1100\n02:11:22,379 --> 02:11:25,716\nIf it is redemption you seek,\nfind the third box,\n\n1101\n02:11:25,841 --> 02:11:29,011\nsynchronize The Unity, and\nwhen this world is scorched,\n\n1102\n02:11:29,094 --> 02:11:32,472\nI will come for my great prize.\n\n1103\n02:11:33,223 --> 02:11:36,393\nYou will come to Earth?\n\n1104\n02:11:36,476 --> 02:11:40,897\nI have turned\n100,000 worlds to dust\n\n1105\n02:11:41,022 --> 02:11:42,441\nlooking for Anti-Life.\n\n1106\n02:11:42,566 --> 02:11:45,944\nLooking for those\nwho robbed me of my glory.\n\n1107\n02:11:46,069 --> 02:11:49,239\nI will stride across their bones\n\n1108\n02:11:49,322 --> 02:11:51,908\nand bask in the glow\nof Anti-Life.\n\n1109\n02:11:51,992 --> 02:11:54,786\nAnd all of existence\n\n1110\n02:11:54,911 --> 02:11:58,206\nshall be mine.\n\n1111\n02:12:01,752 --> 02:12:05,714\nIt shall be so, my master.\n\n1112\n02:12:09,926 --> 02:12:11,553\nSo cool.\n\n1113\n02:12:11,636 --> 02:12:14,598\nFrom the outside, it looks like\nthis building was abandoned.\n\n1114\n02:12:18,018 --> 02:12:19,770\nIt wants to fly.\n\n1115\n02:12:20,979 --> 02:12:22,981\nYou talk to machines?\n\n1116\n02:12:23,106 --> 02:12:25,150\nI speak to intelligence.\n\n1117\n02:12:25,275 --> 02:12:26,443\nThis one's saying she can't fly\n\n1118\n02:12:26,526 --> 02:12:28,153\nbecause of a software issue,\n\n1119\n02:12:28,278 --> 02:12:30,405\nbut I could fix it\nwith a little time.\n\n1120\n02:12:39,873 --> 02:12:42,417\nThere's a dark spot\nin my data stream.\n\n1121\n02:12:42,501 --> 02:12:44,961\nI could feel\nthe other two boxes.\n\n1122\n02:12:45,045 --> 02:12:46,922\nI know they're awake,\n\n1123\n02:12:47,005 --> 02:12:48,548\nbut I can't see where they are.\n\n1124\n02:12:48,673 --> 02:12:50,801\nWell, we can't attack unless\nwe know where the base is.\n\n1125\n02:12:50,926 --> 02:12:52,969\nEven if we knew,\n\n1126\n02:12:53,053 --> 02:12:56,306\nI've never seen a being\nas strong as Steppenwolf.\n\n1127\n02:12:58,308 --> 02:12:59,684\nMaybe one.\n\n1128\n02:12:59,810 --> 02:13:02,229\nHmm, Superman.\n\n1129\n02:13:02,354 --> 02:13:04,022\nAs long as\nthe third box is asleep,\n\n1130\n02:13:04,147 --> 02:13:06,399\nthey can't see it,\nonly sense it.\n\n1131\n02:13:06,525 --> 02:13:08,777\nWe need to keep moving\nso they can't catch up.\n\n1132\n02:13:08,860 --> 02:13:10,278\nNo. That's just a strategy\n\n1133\n02:13:10,403 --> 02:13:12,364\nto lose more slowly, not to win.\n\n1134\n02:13:12,489 --> 02:13:15,325\nRemind me, are flamethrowers\nnot a thing?\n\n1135\n02:13:15,408 --> 02:13:16,493\nWhy don't we just destroy it?\n\n1136\n02:13:16,618 --> 02:13:18,703\nFire doesn't destroy the boxes.\n\n1137\n02:13:18,829 --> 02:13:20,747\nThey're an unknown form\nof matter.\n\n1138\n02:13:20,872 --> 02:13:22,123\nOh, they love heat.\n\n1139\n02:13:22,165 --> 02:13:24,334\nThey absorb it,\nhold it in their cores.\n\n1140\n02:13:24,459 --> 02:13:27,128\nWell, you know\na lot about these boxes.\n\n1141\n02:13:27,170 --> 02:13:28,463\nMakes you think.\n\n1142\n02:13:28,547 --> 02:13:31,174\nWhere'd you find the box,\nVictor?\n\n1143\n02:13:31,299 --> 02:13:32,968\nAre you trying to say something?\n\n1144\n02:13:33,051 --> 02:13:34,803\nOh, I'm saying it.\n\n1145\n02:13:34,886 --> 02:13:37,180\nHow do we know you're not\nworking for them?\n\n1146\n02:13:38,890 --> 02:13:40,934\nIt's a long story.\n\n1147\n02:13:41,059 --> 02:13:42,894\nYou got somewhere else to be?\n\n1148\n02:13:50,277 --> 02:13:51,736\nThe Nazis found the box\n\n1149\n02:13:51,862 --> 02:13:54,197\nat the end\nof the Second World War,\n\n1150\n02:13:54,281 --> 02:13:57,367\nburied under\nan Italian monastery.\n\n1151\n02:13:57,450 --> 02:13:59,786\nThe Allies intercepted it\non its way to Hitler.\n\n1152\n02:13:59,911 --> 02:14:02,831\nThey brought it back\nto the States in '44.\n\n1153\n02:14:02,873 --> 02:14:07,168\nUnknown object 6-1-9-8-2.\n\n1154\n02:14:07,210 --> 02:14:09,087\nIt collected dust\nin the Pentagon archives\n\n1155\n02:14:09,212 --> 02:14:10,964\nfor 70 years\n\n1156\n02:14:11,089 --> 02:14:14,593\ntill DoD began to study\nthe Superman ship.\n\n1157\n02:14:15,886 --> 02:14:18,388\nA researcher at STARLABS\nmade a connection\n\n1158\n02:14:18,471 --> 02:14:19,639\nbetween the ship...\n\n1159\n02:14:20,891 --> 02:14:22,893\nand 6-1-9-8-2.\n\n1160\n02:14:23,059 --> 02:14:26,730\nHe understood they were\nboth alien technologies.\n\n1161\n02:14:26,855 --> 02:14:28,899\nDifferent civilizations,\n\n1162\n02:14:28,982 --> 02:14:32,027\nsimilar properties.\n\n1163\n02:14:32,110 --> 02:14:35,530\nAnd though the box had slept\nfor thousands of years,\n\n1164\n02:14:35,655 --> 02:14:39,117\nthe researcher formulated\na theory on how to awaken it.\n\n1165\n02:14:39,242 --> 02:14:41,244\nAnd so did.\n\n1166\n02:14:43,288 --> 02:14:44,456\nThen...\n\n1167\n02:14:46,416 --> 02:14:49,461\nI had an accident\nthat should've killed me.\n\n1168\n02:14:49,586 --> 02:14:52,797\nBut in an act of desperation\nor madness,\n\n1169\n02:14:52,923 --> 02:14:55,508\nthe researcher harnessed\nthe power of the Mother Box.\n\n1170\n02:15:11,483 --> 02:15:13,568\nHe unleashed an alien technology\n\n1171\n02:15:13,693 --> 02:15:16,488\nhe didn't fully understand.\n\n1172\n02:15:16,613 --> 02:15:19,282\nHe used that power\nto keep me alive.\n\n1173\n02:15:22,786 --> 02:15:24,579\nAlive...\n\n1174\n02:15:24,621 --> 02:15:26,790\nbut turned into this.\n\n1175\n02:15:29,459 --> 02:15:31,878\nThe box went back to sleep\n\n1176\n02:15:32,629 --> 02:15:34,547\nand he never returned it.\n\n1177\n02:15:36,883 --> 02:15:39,302\nThat researcher was Silas Stone.\n\n1178\n02:15:40,887 --> 02:15:42,555\nMy father.\n\n1179\n02:15:45,809 --> 02:15:47,435\nWait,\n\n1180\n02:15:47,519 --> 02:15:50,814\nyour father saved your life\nwith one of these things?\n\n1181\n02:15:50,981 --> 02:15:53,316\nAren't they\npsycho murder machines?\n\n1182\n02:15:53,483 --> 02:15:55,777\nThey're change machines.\n\n1183\n02:15:55,860 --> 02:15:59,030\nThe boxes don't think in terms\nof healing or killing,\n\n1184\n02:15:59,155 --> 02:16:01,074\nalive or dead.\n\n1185\n02:16:01,199 --> 02:16:03,618\nThey rearrange matter\nat the will of their masters,\n\n1186\n02:16:03,660 --> 02:16:05,412\nregenerate, reinstate.\n\n1187\n02:16:05,537 --> 02:16:06,955\nReinstate?\n\n1188\n02:16:07,080 --> 02:16:08,498\nA box has the power\n\n1189\n02:16:08,581 --> 02:16:10,500\nto reinstate anterior\nparticle relationships.\n\n1190\n02:16:10,667 --> 02:16:12,502\nSo, you mean in the way\nthat particles of matter\n\n1191\n02:16:12,627 --> 02:16:13,753\ncan't be created or destroyed,\n\n1192\n02:16:13,878 --> 02:16:15,880\ntheir relations just transform.\n\n1193\n02:16:16,006 --> 02:16:18,842\nBurn down a house,\nthe particles still exist.\n\n1194\n02:16:18,925 --> 02:16:21,511\nParticles of house\nbecome particles of smoke.\n\n1195\n02:16:21,636 --> 02:16:25,849\nAnybody with a match\ncan turn a house to smoke.\n\n1196\n02:16:27,726 --> 02:16:29,477\nBut a Mother Box...\n\n1197\n02:16:29,602 --> 02:16:31,980\n...turns smoke\nback into a house.\n\n1198\n02:16:37,819 --> 02:16:40,572\nI know we're all thinking\nthe same thing right now.\n\n1199\n02:16:41,740 --> 02:16:44,534\nWho's gonna say it?\nI'm not gonna say it.\n\n1200\n02:17:11,561 --> 02:17:12,854\nWho is it?\n\n1201\n02:17:13,438 --> 02:17:14,731\nMartha.\n\n1202\n02:17:19,402 --> 02:17:20,737\nHi.\n\n1203\n02:17:22,489 --> 02:17:23,948\nHi.\n\n1204\n02:17:32,916 --> 02:17:34,501\nI went to the Daily Planet\n\n1205\n02:17:34,626 --> 02:17:38,088\nto finally pick up\nClark's things.\n\n1206\n02:17:39,506 --> 02:17:42,926\nI don't know why,\nnowhere to put them now.\n\n1207\n02:17:45,595 --> 02:17:47,430\nI lost the farm.\n\n1208\n02:17:48,765 --> 02:17:51,017\nI'd been behind on\nthe payments for a while.\n\n1209\n02:17:52,352 --> 02:17:53,728\nTruth is, the house is too big\n\n1210\n02:17:53,853 --> 02:17:56,564\nfor me to live in\nby myself anyway.\n\n1211\n02:17:56,689 --> 02:17:59,609\nWell, you know you're welcome\nto stay here any time\n\n1212\n02:17:59,692 --> 02:18:01,820\nfor as long as you need.\n\n1213\n02:18:02,779 --> 02:18:05,698\nThank you, Lois.\nThat's very kind.\n\n1214\n02:18:07,075 --> 02:18:09,369\nBut I've found a little place\nthat suits me just fine,\n\n1215\n02:18:09,494 --> 02:18:11,454\nright by the diner.\n\n1216\n02:18:11,538 --> 02:18:12,956\nI'm not here for help.\n\n1217\n02:18:14,124 --> 02:18:16,626\nI'm here because\n\n1218\n02:18:16,751 --> 02:18:19,462\nwhen I saw Mr. Perry,\nhe told me that\n\n1219\n02:18:20,672 --> 02:18:23,758\nyou haven't been to work\nsince Clark died.\n\n1220\n02:18:28,430 --> 02:18:30,098\nI can't.\n\n1221\n02:18:36,855 --> 02:18:39,524\nThe whole world is mourning.\n\n1222\n02:18:40,817 --> 02:18:43,111\nGrieving over a symbol.\n\n1223\n02:18:43,236 --> 02:18:47,490\nEverywhere I go, everywhere\nI look, I see that \"S.\"\n\n1224\n02:18:48,408 --> 02:18:50,451\nI hear what people say.\n\n1225\n02:18:50,535 --> 02:18:52,537\nThey talk like they knew him.\n\n1226\n02:18:53,538 --> 02:18:55,957\nBut they didn't know Clark.\n\n1227\n02:18:57,417 --> 02:18:59,711\nAnd I can't stop them\n\n1228\n02:18:59,836 --> 02:19:04,215\nand look at them and tell them\nhow proud I am of my son.\n\n1229\n02:19:06,259 --> 02:19:08,678\nYou're the only one who knows.\n\n1230\n02:19:08,803 --> 02:19:11,514\nWho feels what I do.\n\n1231\n02:19:12,557 --> 02:19:15,727\nBurdened by a secret\non top of grief.\n\n1232\n02:19:18,688 --> 02:19:22,192\nI came all this way\nbecause I wanted...\n\n1233\n02:19:22,275 --> 02:19:24,235\nbecause I wanted to see you.\n\n1234\n02:19:25,487 --> 02:19:27,488\nTell you...\n\n1235\n02:19:27,530 --> 02:19:29,616\nI understand.\n\n1236\n02:19:31,367 --> 02:19:33,328\nI...\n\n1237\n02:19:33,453 --> 02:19:37,498\nwill never love anybody\nthe way that I love your son.\n\n1238\n02:19:41,127 --> 02:19:43,087\nAnd I just miss him.\n\n1239\n02:19:44,255 --> 02:19:46,674\nI miss him so much.\n\n1240\n02:19:53,223 --> 02:19:54,891\nSo do I, sweetheart.\n\n1241\n02:19:59,354 --> 02:20:04,234\nMartha, you know if there's\nanything you need, I'm here.\n\n1242\n02:20:07,737 --> 02:20:10,615\nThere is something\nyou can do for me, honey.\n\n1243\n02:20:12,784 --> 02:20:15,161\nCome back to the living.\n\n1244\n02:20:54,951 --> 02:20:58,037\nThe world needs you, too, Lois.\n\n1245\n02:21:01,666 --> 02:21:03,001\nThe dead are dead.\n\n1246\n02:21:03,126 --> 02:21:05,128\nThe box brought Victor back.\n\n1247\n02:21:05,253 --> 02:21:06,713\nVictor wasn't dead.\n\n1248\n02:21:06,838 --> 02:21:08,631\nLife is either one or zero.\n\n1249\n02:21:08,756 --> 02:21:11,718\nIt's to be or not to be.\nNot both.\n\n1250\n02:21:11,843 --> 02:21:13,469\nCan you operate this box,\nVictor?\n\n1251\n02:21:13,594 --> 02:21:14,887\nOf course.\n\n1252\n02:21:15,013 --> 02:21:17,307\nBut we don't know enough\nabout Kryptonian biology.\n\n1253\n02:21:17,390 --> 02:21:19,642\nThere's no telling\nwhat's gonna happen.\n\n1254\n02:21:21,227 --> 02:21:22,812\nOkay, but...\n\n1255\n02:21:22,979 --> 02:21:27,275\nI mean, we have to try.\nDon't we? We have to try.\n\n1256\n02:21:27,317 --> 02:21:28,610\nWhat do we have to lose?\n\n1257\n02:21:28,735 --> 02:21:31,195\nWe cannot try\nunless we activate the box.\n\n1258\n02:21:31,321 --> 02:21:32,739\nAs soon as it wakes up...\n\n1259\n02:21:32,864 --> 02:21:35,325\n...the enemy sees it, comes,\n\n1260\n02:21:35,491 --> 02:21:37,952\nactivates The Unity.\nThe end.\n\n1261\n02:21:38,036 --> 02:21:40,371\nSo, what we have to lose\nis the entire planet\n\n1262\n02:21:40,496 --> 02:21:42,665\nto a bunch of genocidal aliens.\nThat's good to know.\n\n1263\n02:21:42,790 --> 02:21:45,168\nEven if Superman could return,\n\n1264\n02:21:45,335 --> 02:21:47,462\nwho's to say\nthat he could defeat them?\n\n1265\n02:21:47,545 --> 02:21:49,547\nThe Mother Box did.\n\n1266\n02:21:49,672 --> 02:21:51,841\nVictor's father\nactivated a Mother Box\n\n1267\n02:21:51,966 --> 02:21:54,802\nmore than a year ago\nwhen Superman was still alive.\n\n1268\n02:21:54,927 --> 02:21:56,846\nDidn't call out to Steppenwolf.\n\n1269\n02:21:56,929 --> 02:21:58,514\nNone of the boxes did.\nNot until...\n\n1270\n02:21:58,639 --> 02:22:00,683\nNot until Superman died.\n\n1271\n02:22:00,850 --> 02:22:03,144\nNot until Superman died.\n\n1272\n02:22:03,269 --> 02:22:05,229\nIt's like they were\nafraid of him?\n\n1273\n02:22:05,355 --> 02:22:08,358\nYes, they were afraid of him.\n\n1274\n02:22:11,402 --> 02:22:13,196\nThis is the only way.\n\n1275\n02:22:14,530 --> 02:22:18,701\nThere are six, not five.\nThere is no us without him.\n\n1276\n02:22:34,884 --> 02:22:36,886\nCross this one off\nthe bucket list.\n\n1277\n02:22:36,969 --> 02:22:40,973\nExhume Superman\nfrom the grave. Check.\n\n1278\n02:22:42,642 --> 02:22:45,353\nYou know we could do this\nin a nanosecond, right?\n\n1279\n02:22:46,104 --> 02:22:47,397\nWe could.\n\n1280\n02:22:54,904 --> 02:22:56,739\nHe was my hero.\n\n1281\n02:22:59,283 --> 02:23:00,410\nAll right.\n\n1282\n02:23:03,955 --> 02:23:07,208\nAn Amazon\nworking with an Atlantean.\n\n1283\n02:23:07,291 --> 02:23:08,459\nHalf-Atlantean.\n\n1284\n02:23:10,253 --> 02:23:13,464\nHow many thousands of years\nsince our people spoke?\n\n1285\n02:23:13,589 --> 02:23:17,719\nI don't know.\nI'm not exactly close to mine.\n\n1286\n02:23:17,802 --> 02:23:20,638\nI hate Atlanteans as much\nas you Amazons do.\n\n1287\n02:23:20,763 --> 02:23:22,932\nHate is useless.\n\n1288\n02:23:26,102 --> 02:23:27,270\nYep.\n\n1289\n02:23:28,604 --> 02:23:30,231\nNo, thank you.\n\n1290\n02:23:34,652 --> 02:23:35,778\nYou know, my father told me\n\n1291\n02:23:35,903 --> 02:23:37,822\nthere's a saying in Atlantis...\n\n1292\n02:23:39,282 --> 02:23:41,576\n\"None are taken back\nfrom the darkness.\n\n1293\n02:23:41,659 --> 02:23:42,869\n\"Not without...\"\n\n1294\n02:23:42,994 --> 02:23:44,495\n\"Not without\ngiving one up in return.\"\n\n1295\n02:23:46,747 --> 02:23:48,332\nWe say the same thing.\n\n1296\n02:23:50,918 --> 02:23:52,670\nHow about that?\n\n1297\n02:23:52,795 --> 02:23:54,839\nWonder Woman.\n\n1298\n02:23:55,965 --> 02:23:57,258\nWhat do you think, man?\n\n1299\n02:23:57,341 --> 02:24:00,136\nYou think she'd ever\ngo for a younger guy?\n\n1300\n02:24:00,261 --> 02:24:03,097\nShe's 5,000 years old, Barry.\n\n1301\n02:24:04,807 --> 02:24:06,851\nEvery guy's a younger guy.\n\n1302\n02:24:08,644 --> 02:24:09,729\nJesus.\n\n1303\n02:24:11,314 --> 02:24:13,107\nOh, Christ.\n\n1304\n02:24:15,359 --> 02:24:18,070\nOh, bloody...\n\n1305\n02:24:19,363 --> 02:24:20,448\nAny luck?\n\n1306\n02:24:20,490 --> 02:24:21,866\nIf by \"luck\" you mean\n\n1307\n02:24:21,991 --> 02:24:24,785\n\"chance in hell\nwe'll get it flying today,\"\n\n1308\n02:24:24,911 --> 02:24:27,121\nthen, no. No luck.\n\n1309\n02:24:27,872 --> 02:24:29,332\nIt's okay.\n\n1310\n02:24:29,415 --> 02:24:31,375\nIt doesn't matter.\nWe're just gonna take the body\n\n1311\n02:24:31,501 --> 02:24:32,627\nto the Kryptonian ship.\n\n1312\n02:24:32,752 --> 02:24:34,003\nIt's basically\nan organic computer.\n\n1313\n02:24:34,128 --> 02:24:35,838\nIt can talk directly\nto the Mother Box.\n\n1314\n02:24:36,005 --> 02:24:38,591\nWhat? The way it talked\nto Lex Luthor?\n\n1315\n02:24:38,716 --> 02:24:39,967\nSomething like that.\n\n1316\n02:24:40,092 --> 02:24:43,888\nHuh.\nWhat could possibly go wrong?\n\n1317\n02:24:50,394 --> 02:24:52,021\nMaster Wayne...\n\n1318\n02:24:53,898 --> 02:24:55,274\nyou did it!\n\n1319\n02:24:55,399 --> 02:24:58,945\nYou put the team together\nto fight this war.\n\n1320\n02:24:59,070 --> 02:25:02,156\nYou've fulfilled your promise.\n\n1321\n02:25:02,240 --> 02:25:06,160\nBut to try to do that...\nI mean...\n\n1322\n02:25:06,285 --> 02:25:09,205\nyour guilt's\novercome your reason.\n\n1323\n02:25:09,372 --> 02:25:11,499\nNot all the king's horses\nnor all the king's men...\n\n1324\n02:25:11,541 --> 02:25:14,877\nAlfred, for once,\nI'm operating strictly on faith,\n\n1325\n02:25:15,002 --> 02:25:17,380\nnot on reason.\n\n1326\n02:25:17,505 --> 02:25:21,843\nBut if you start playing with\nthis little box of tricks,\n\n1327\n02:25:21,968 --> 02:25:24,095\nI mean, it could be\nthe end of everything.\n\n1328\n02:25:24,220 --> 02:25:27,181\nHow do you know\nyour team's strong enough?\n\n1329\n02:25:27,265 --> 02:25:29,809\nIf you can't bring down\nthe charging bull,\n\n1330\n02:25:29,934 --> 02:25:31,727\nthen don't wave\nthe red cape at it.\n\n1331\n02:25:31,811 --> 02:25:33,521\nYou do when it's this red cape.\n\n1332\n02:25:33,604 --> 02:25:35,898\nThis red cape charges back.\n\n1333\n02:25:50,538 --> 02:25:51,622\nOkay.\n\n1334\n02:25:58,462 --> 02:26:00,965\nYou were right, Dr. Stone.\nThe tests came back negative.\n\n1335\n02:26:01,090 --> 02:26:02,592\nEveryone's clear, including you.\n\n1336\n02:26:02,758 --> 02:26:05,428\nJust to be on the safe side,\nwe swept the entire facility.\n\n1337\n02:26:05,511 --> 02:26:07,430\nWell, thank you, Thomas.\nThat means I'm free to go?\n\n1338\n02:26:07,513 --> 02:26:08,472\nAbsolutely.\n\n1339\n02:26:12,310 --> 02:26:13,561\n- Thanks.\n- Listen up, everyone.\n\n1340\n02:26:13,644 --> 02:26:16,272\nYou're all clear.\nSo, gather your things.\n\n1341\n02:26:16,397 --> 02:26:17,940\nIf you need\nmore medical attention...\n\n1342\n02:26:18,024 --> 02:26:21,944\nArthur, yes, your opinion.\nLess preposterous. Option \"A\"?\n\n1343\n02:26:22,028 --> 02:26:23,446\n- Definitely not \"A.\"\n- Okay.\n\n1344\n02:26:23,571 --> 02:26:26,616\nOr... \"B\"?\n\n1345\n02:26:28,159 --> 02:26:29,535\nLet me see \"A\" again?\n\n1346\n02:26:35,041 --> 02:26:38,336\nRight. We should get dressed.\n\n1347\n02:26:40,296 --> 02:26:42,423\nI'm always dressed.\n\n1348\n02:27:09,575 --> 02:27:10,660\nID?\n\n1349\n02:27:10,785 --> 02:27:12,078\nID.\n\n1350\n02:27:15,039 --> 02:27:16,332\nAye, aye.\n\n1351\n02:27:18,584 --> 02:27:19,960\n\"Aye, aye\"?\n\n1352\n02:27:42,984 --> 02:27:44,235\nOkay.\n\n1353\n02:27:44,360 --> 02:27:46,570\n\"Okay\"? Oh, gee, okay!\n\n1354\n02:27:53,619 --> 02:27:54,537\nDoc!\n\n1355\n02:27:54,620 --> 02:27:56,080\nThey let you out of quarantine.\n\n1356\n02:27:56,205 --> 02:27:57,623\nYeah, I finally got them\nto listen to reason.\n\n1357\n02:27:57,748 --> 02:27:59,875\nNow, let's take a look and see\nwhat progress we've made\n\n1358\n02:28:00,001 --> 02:28:01,293\nwith the electron-laser.\n\n1359\n02:28:01,419 --> 02:28:03,546\nWe've made some real progress.\nLet me show you.\n\n1360\n02:28:18,519 --> 02:28:21,480\nVictor, clear this place out.\n\n1361\n02:28:21,605 --> 02:28:22,940\nDone.\n\n1362\n02:28:26,736 --> 02:28:29,447\nCode Red.\nContamination breach.\n\n1363\n02:28:29,572 --> 02:28:32,783\nAll personnel\nevacuate immediately.\n\n1364\n02:28:32,908 --> 02:28:35,202\nBio red five.\n\n1365\n02:28:35,286 --> 02:28:37,663\nThe sensor's picking up\na microbe of alien origin.\n\n1366\n02:28:37,788 --> 02:28:40,708\nA microbe of alien origin?\nThat doesn't make any sense.\n\n1367\n02:28:40,791 --> 02:28:42,042\nIt's gotta be a false alarm.\n\n1368\n02:28:42,168 --> 02:28:44,211\nAll right, people,\nshut it down. Let's go.\n\n1369\n02:28:44,253 --> 02:28:45,629\n- Ryan, we just had it swept.\n- We have to go, Doc.\n\n1370\n02:28:45,755 --> 02:28:47,089\nThink about it.\nIt's gotta be a false alarm.\n\n1371\n02:28:47,214 --> 02:28:48,549\n- Let's go, Doc.\n- Think about it.\n\n1372\n02:28:48,632 --> 02:28:49,717\nFull base evacuation!\nEveryone out!\n\n1373\n02:28:49,759 --> 02:28:51,844\nLook, wait! Wait! Shit!\n\n1374\n02:28:51,969 --> 02:28:54,930\nRemain calm and\nproceed to the nearest exit.\n\n1375\n02:29:01,312 --> 02:29:03,105\nAttention, all personnel.\n\n1376\n02:29:03,230 --> 02:29:06,108\nGo! Go! Everybody out!\nCome on! Move!\n\n1377\n02:29:06,192 --> 02:29:07,943\nMove! Come on! Go, go!\n\n1378\n02:29:08,027 --> 02:29:09,612\nEverybody out! Go!\n\n1379\n02:29:29,799 --> 02:29:32,593\nYes! Gotcha!\n\n1380\n02:29:32,718 --> 02:29:35,513\nPost Commander, this is\nDr. Silas Stone, do you read?\n\n1381\n02:29:35,638 --> 02:29:38,015\n- Go ahead, Dr. Stone.\n- This is a false alarm.\n\n1382\n02:29:38,140 --> 02:29:40,935\nSomeone has hacked into\nthe system. We must alert...\n\n1383\n02:29:50,903 --> 02:29:52,404\nVictor.\n\n1384\n02:29:53,864 --> 02:29:56,367\nDr. Stone, you there?\nI don't copy.\n\n1385\n02:29:57,201 --> 02:29:58,285\nI was mistaken.\n\n1386\n02:29:58,369 --> 02:29:59,578\nThe alarm's legit.\n\n1387\n02:29:59,703 --> 02:30:01,372\nEverybody out.\nAnd nobody, I repeat,\n\n1388\n02:30:01,497 --> 02:30:04,291\nnobody comes back inside\nwithout my say-so.\n\n1389\n02:30:04,375 --> 02:30:05,751\nRoger that, sir.\n\n1390\n02:30:15,845 --> 02:30:17,513\nGet the civilians out!\n\n1391\n02:30:17,638 --> 02:30:18,806\nLet's go! Let's go!\n\n1392\n02:30:23,185 --> 02:30:24,353\n- Everybody got out okay?\n- I think so.\n\n1393\n02:30:24,478 --> 02:30:25,646\n- Everybody?\n- Yes.\n\n1394\n02:30:58,929 --> 02:31:00,306\nThis way.\n\n1395\n02:31:10,816 --> 02:31:13,569\nIt knows he's here.\n\n1396\n02:31:13,736 --> 02:31:15,863\nOoh, that's intense.\n\n1397\n02:31:20,242 --> 02:31:22,369\nThis is amazing.\n\n1398\n02:31:23,078 --> 02:31:24,246\nThis is crazy.\n\n1399\n02:31:24,371 --> 02:31:26,290\nOh, what? Now it's crazy?\n\n1400\n02:31:26,415 --> 02:31:28,876\nYou two lunatics\nbetter know what you're doing.\n\n1401\n02:33:54,730 --> 02:33:56,732\nSystems coming online.\n\n1402\n02:33:59,485 --> 02:34:01,779\nWelcome, Victor.\n\n1403\n02:34:01,904 --> 02:34:03,822\nWould you like\nto assume command?\n\n1404\n02:34:03,947 --> 02:34:04,907\nI'm in.\n\n1405\n02:34:14,083 --> 02:34:16,418\nThe ship says\nthe Mother Box is hostile.\n\n1406\n02:34:16,585 --> 02:34:18,128\nI can override\nthe security protocols,\n\n1407\n02:34:18,253 --> 02:34:19,963\nbut there's no time to repair\nall the electrical damage\n\n1408\n02:34:20,089 --> 02:34:21,465\nthat Luthor's\npower surges caused\n\n1409\n02:34:21,590 --> 02:34:22,716\nto the primary capacitors.\n\n1410\n02:34:22,800 --> 02:34:23,759\nEnglish.\n\n1411\n02:34:23,926 --> 02:34:26,428\nThere's not enough charge\nto wake the box.\n\n1412\n02:34:26,553 --> 02:34:28,597\nI might be able to do it.\n\n1413\n02:34:30,724 --> 02:34:32,684\nI mean, I might be able\nto jump-start it.\n\n1414\n02:34:32,810 --> 02:34:34,061\nI don't like to break this rule,\n\n1415\n02:34:34,144 --> 02:34:35,938\nbut when I approach\nthe speed of light, I...\n\n1416\n02:34:36,021 --> 02:34:37,606\nLook, crazy things\nhappen to time,\n\n1417\n02:34:37,773 --> 02:34:40,275\nbut if I do it, I create\nmassive electrical power.\n\n1418\n02:34:40,359 --> 02:34:42,152\nI could backtrack,\nif I can get enough distance,\n\n1419\n02:34:42,277 --> 02:34:44,613\nI can conduct a significant\nelectrical current.\n\n1420\n02:34:44,780 --> 02:34:47,449\nI might be able to wake\nthe box, if that's...\n\n1421\n02:34:47,574 --> 02:34:49,243\nstill what we want?\n\n1422\n02:34:49,326 --> 02:34:50,828\nIt is. Do it.\n\n1423\n02:34:55,582 --> 02:34:56,917\nHey, Miss Lane.\n\n1424\n02:34:57,000 --> 02:34:57,793\nMorning.\n\n1425\n02:34:57,960 --> 02:34:59,461\nI didn't think you were coming.\n\n1426\n02:35:00,379 --> 02:35:01,964\nOne last time.\n\n1427\n02:35:18,897 --> 02:35:22,651\nI see engines, so this must be\nthe end of the line. So I'm...\n\n1428\n02:35:22,818 --> 02:35:23,986\nI'm in position.\n\n1429\n02:35:26,738 --> 02:35:29,324\n- Ready to initiate\n- drop sequence.\n\n1430\n02:35:29,408 --> 02:35:31,034\nThe Mother Box is ready.\n\n1431\n02:35:50,220 --> 02:35:52,139\nThe ship's begging me\nnot to wake the box.\n\n1432\n02:35:52,222 --> 02:35:54,141\n- This action\n- is irreversible.\n\n1433\n02:35:54,224 --> 02:35:55,559\nIt's afraid. It knows\nSteppenwolf will come for it.\n\n1434\n02:35:55,684 --> 02:35:57,478\nWe know that already.\nContinue.\n\n1435\n02:35:57,561 --> 02:36:00,189\nI strongly advise\nagainst activation.\n\n1436\n02:36:00,272 --> 02:36:01,940\nBarry, I'm initiating\nthe countdown.\n\n1437\n02:36:02,065 --> 02:36:03,692\n- This action\n- is irreversible.\n\n1438\n02:36:03,859 --> 02:36:04,985\n- Five...\n- Five...\n\n1439\n02:36:05,068 --> 02:36:06,487\n- Five...\n- Apokoliptian technology\n\n1440\n02:36:06,570 --> 02:36:07,613\n- is hostile.\n- This is a bad idea.\n\n1441\n02:36:07,738 --> 02:36:08,447\nNo, it isn't.\nKeep going.\n\n1442\n02:36:08,572 --> 02:36:09,531\nFour...\n\n1443\n02:36:09,698 --> 02:36:11,158\n- Four...\n- Four...\n\n1444\n02:36:11,283 --> 02:36:12,701\nI strongly advise\nagainst activation.\n\n1445\n02:36:12,826 --> 02:36:14,036\n- We need to abort, now.\n- Just do it.\n\n1446\n02:36:14,203 --> 02:36:15,329\n- Three...\n- Three...\n\n1447\n02:36:15,412 --> 02:36:16,413\nThree...\n\n1448\n02:36:16,538 --> 02:36:18,248\n- Two...\n- Two...\n\n1449\n02:36:18,373 --> 02:36:20,292\n- Two...\n- This course is irreversible.\n\n1450\n02:36:20,417 --> 02:36:21,710\n- One.\n- One.\n\n1451\n02:36:22,544 --> 02:36:23,962\nOne.\n\n1452\n02:36:24,087 --> 02:36:25,380\n- This action\n- is irreversible.\n\n1453\n02:37:54,386 --> 02:37:55,971\n- Victor?\n- No.\n\n1454\n02:37:56,972 --> 02:37:57,931\nGo?\n\n1455\n02:39:28,438 --> 02:39:31,191\n- The future\n- has taken root in the present.\n\n1456\n02:39:31,316 --> 02:39:33,193\nGet down!\n\n1457\n02:41:17,380 --> 02:41:18,965\nHe's back.\n\n1458\n02:41:45,617 --> 02:41:48,537\nSomething's wrong.\nHe's scanning us.\n\n1459\n02:41:50,705 --> 02:41:52,165\nWhat?\n\n1460\n02:42:07,055 --> 02:42:08,223\nVictor?\n\n1461\n02:42:09,432 --> 02:42:10,433\nVictor?\n\n1462\n02:42:12,727 --> 02:42:14,604\n- Shit.\n- What are you doing?\n\n1463\n02:42:14,729 --> 02:42:16,356\nIt's my auto-defense system.\n\n1464\n02:42:16,439 --> 02:42:17,566\nIt senses danger.\n\n1465\n02:42:17,649 --> 02:42:18,900\nVictor, no! Victor!\n\n1466\n02:42:19,025 --> 02:42:20,944\n- I can't control it.\n- Don't!\n\n1467\n02:42:33,123 --> 02:42:34,416\nKal-El, no!\n\n1468\n02:42:42,591 --> 02:42:44,885\nHe's confused.\nHe doesn't know who he is.\n\n1469\n02:42:51,891 --> 02:42:54,561\nArthur, we need to restrain him.\n\n1470\n02:43:25,008 --> 02:43:28,928\nKal-El,\nthe last Son of Krypton...\n\n1471\n02:43:29,846 --> 02:43:32,140\nremember who you are.\n\n1472\n02:43:33,683 --> 02:43:34,934\nTell me who you...\n\n1473\n02:45:09,904 --> 02:45:13,074\nLet's go!\n\n1474\n02:45:20,081 --> 02:45:21,541\nYou should probably move.\n\n1475\n02:45:25,044 --> 02:45:26,212\n- You all right?\n- Yeah.\n\n1476\n02:45:26,296 --> 02:45:29,090\nGet up.\nTake cover back there. Go.\n\n1477\n02:46:21,059 --> 02:46:23,269\nPlease don't make me do this.\n\n1478\n02:46:55,844 --> 02:46:57,178\nClark.\n\n1479\n02:46:58,054 --> 02:46:59,347\nClark, no.\n\n1480\n02:47:10,859 --> 02:47:12,068\nClark.\n\n1481\n02:47:12,193 --> 02:47:14,028\nNo.\n\n1482\n02:47:14,195 --> 02:47:15,905\nThis world needs you.\n\n1483\n02:47:21,160 --> 02:47:22,495\nClark.\n\n1484\n02:47:22,620 --> 02:47:23,705\nClark.\n\n1485\n02:47:23,788 --> 02:47:25,874\nWhoa! Hold your fire!\nHold your fire!\n\n1486\n02:47:27,375 --> 02:47:28,668\nClark.\n\n1487\n02:47:32,046 --> 02:47:33,506\nPlease.\n\n1488\n02:48:07,749 --> 02:48:08,791\nPlease.\n\n1489\n02:48:19,969 --> 02:48:21,262\nPlease.\n\n1490\n02:48:21,930 --> 02:48:24,057\nJust go.\n\n1491\n02:48:24,140 --> 02:48:25,308\nYeah.\n\n1492\n02:48:26,017 --> 02:48:27,435\nLet's go.\n\n1493\n02:48:59,968 --> 02:49:02,136\nI'm so sorry.\n\n1494\n02:49:11,354 --> 02:49:12,438\nTake cover!\n\n1495\n02:49:12,480 --> 02:49:15,108\n- He's coming.\n- The Mother Box.\n\n1496\n02:49:15,149 --> 02:49:16,401\nWhere is it?\n\n1497\n02:49:26,953 --> 02:49:28,288\nCome on.\n\n1498\n02:49:29,038 --> 02:49:30,873\nCome on.\n\n1499\n02:49:55,565 --> 02:49:59,318\nAttention,\nsecurity breach detected.\n\n1500\n02:49:59,444 --> 02:50:01,654\nSector Four, Level Three.\n\n1501\n02:50:01,738 --> 02:50:04,741\nImplement lockdown\nprocedures immediately.\n\n1502\n02:50:33,227 --> 02:50:34,854\nGive me the Mother Box.\n\n1503\n02:50:48,076 --> 02:50:49,577\nNo, no, no.\n\n1504\n02:50:52,038 --> 02:50:53,748\nDad, wait! Don't!\n\n1505\n02:51:34,038 --> 02:51:36,958\nSo begins the end.\n\n1506\n02:51:42,547 --> 02:51:43,965\nVictor?\n\n1507\n02:51:46,259 --> 02:51:49,720\nVic... Whoa, Victor.\nAre you okay, man? Come on.\n\n1508\n02:51:55,518 --> 02:51:56,853\nVictor?\n\n1509\n02:51:58,020 --> 02:51:59,397\nHe's dead.\n\n1510\n02:51:59,522 --> 02:52:00,648\nWhat?\n\n1511\n02:52:01,566 --> 02:52:02,900\nMy father.\n\n1512\n02:52:04,318 --> 02:52:07,780\nI didn't save him. I couldn't.\n\n1513\n02:52:07,864 --> 02:52:09,490\nOh, my God.\n\n1514\n02:52:16,080 --> 02:52:18,124\nHis father's dead 'cause of us.\n\n1515\n02:52:18,249 --> 02:52:20,042\nI told you waking that box\nwas a bad idea.\n\n1516\n02:52:20,168 --> 02:52:21,627\nIt wasn't a bad idea.\n\n1517\n02:52:21,752 --> 02:52:24,088\nWe needed Superman.\nWe still do.\n\n1518\n02:52:24,213 --> 02:52:26,674\nWell, whatever\nreturned, it isn't Superman.\n\n1519\n02:52:26,757 --> 02:52:30,011\nHis body and powers, maybe.\nBut it ain't him.\n\n1520\n02:52:30,094 --> 02:52:31,637\nIt is him.\n\n1521\n02:52:31,679 --> 02:52:34,182\nHe recognized Lois Lane.\n\n1522\n02:52:34,348 --> 02:52:36,476\n- Who?\n- The woman he loves.\n\n1523\n02:52:36,559 --> 02:52:38,853\n- He remembers her.\n- Nah.\n\n1524\n02:52:39,020 --> 02:52:40,855\nHe went to her 'cause\nshe wasn't afraid of him.\n\n1525\n02:52:40,938 --> 02:52:42,648\nIt's called instinct, Diana.\n\n1526\n02:52:49,822 --> 02:52:51,699\nWait, where did Steppenwolf go?\n\n1527\n02:52:51,824 --> 02:52:53,451\nHe's gone back to his base\n\n1528\n02:52:53,576 --> 02:52:55,119\nto assemble the three boxes.\n\n1529\n02:52:55,244 --> 02:52:56,704\nAnd we don't know\nwhere his base is.\n\n1530\n02:52:56,871 --> 02:52:58,539\n- Or how long until...\n- Hours.\n\n1531\n02:52:58,623 --> 02:53:00,208\nThe boxes synchronize,\nUnity forms,\n\n1532\n02:53:00,291 --> 02:53:03,544\nwe don't get there in time\nto stop it, the planet dies.\n\n1533\n02:53:03,628 --> 02:53:05,838\nThis is not your...\n\n1534\n02:53:08,007 --> 02:53:09,508\nHe knew.\n\n1535\n02:53:09,592 --> 02:53:11,135\nHe knew, he knew, he knew.\n\n1536\n02:53:11,260 --> 02:53:13,221\nHe wasn't trying\nto destroy the box...\n\n1537\n02:53:13,304 --> 02:53:15,264\nhe was trying to superheat it.\n\n1538\n02:53:15,389 --> 02:53:16,641\nHe made the core\nthe hottest thing\n\n1539\n02:53:16,766 --> 02:53:17,892\non Earth outside\nof a nuclear reactor.\n\n1540\n02:53:18,017 --> 02:53:19,018\nNow, anything that hot\nwould have to...\n\n1541\n02:53:19,101 --> 02:53:20,311\nBlink off the charts\n\n1542\n02:53:20,436 --> 02:53:22,563\non a thermal imaging system.\n\n1543\n02:53:22,730 --> 02:53:26,025\nYour father sacrificed himself\nto mark that box.\n\n1544\n02:53:26,108 --> 02:53:28,069\nWe have to get back to my lab\nand use the satellite\n\n1545\n02:53:28,194 --> 02:53:30,363\nto scan the Earth\nfor thermal anomalies.\n\n1546\n02:53:30,488 --> 02:53:31,864\nI'm already on it.\n\n1547\n02:53:31,948 --> 02:53:33,950\nI'm sorry.\nYou have a satellite?\n\n1548\n02:53:34,075 --> 02:53:35,368\nI have six.\n\n1549\n02:53:35,451 --> 02:53:36,702\nRight.\n\n1550\n02:53:38,120 --> 02:53:40,540\nLet's go find\nthe son of a bitch.\n\n1551\n02:54:04,814 --> 02:54:07,066\nYou brought us here.\n\n1552\n02:54:07,191 --> 02:54:08,317\nYou remembered.\n\n1553\n02:54:09,277 --> 02:54:10,945\nThis is home.\n\n1554\n02:54:12,697 --> 02:54:14,073\nYou spoke.\n\n1555\n02:54:18,119 --> 02:54:19,996\nDid I not before?\n\n1556\n02:54:53,863 --> 02:54:56,657\nYour mother got behind\non the payments.\n\n1557\n02:54:57,867 --> 02:55:00,036\nShe never told anyone.\n\n1558\n02:55:01,579 --> 02:55:03,372\nI don't understand.\n\n1559\n02:55:06,500 --> 02:55:09,003\nShe's a proud woman, Clark.\n\n1560\n02:55:12,131 --> 02:55:13,382\nHere.\n\n1561\n02:55:28,397 --> 02:55:30,066\nShe loved it here.\n\n1562\n02:55:40,743 --> 02:55:42,411\nSo did I.\n\n1563\n02:55:44,413 --> 02:55:45,956\nSo did I.\n\n1564\n02:56:11,524 --> 02:56:12,775\nWow!\n\n1565\n02:56:12,900 --> 02:56:14,568\nThis is awesome.\n\n1566\n02:56:14,735 --> 02:56:16,278\nBrought some friends.\n\n1567\n02:56:22,785 --> 02:56:25,246\nOh, gosh, yes! Yes!\n\n1568\n02:56:25,371 --> 02:56:27,998\nEveryone, this is Alfred.\nI work for him.\n\n1569\n02:56:28,124 --> 02:56:30,418\n- Alfred.\n- Good day, ma'am.\n\n1570\n02:56:31,710 --> 02:56:33,879\nOh...\n\n1571\n02:56:36,841 --> 02:56:38,926\nIt's badass, Alfred.\n\n1572\n02:56:41,595 --> 02:56:44,140\nWell, I'll put on the tea.\n\n1573\n02:56:44,265 --> 02:56:45,391\nGreat.\n\n1574\n02:56:45,516 --> 02:56:47,226\nI don't know where\nwe're gonna find the cups.\n\n1575\n02:56:49,937 --> 02:56:52,898\nThere's the\nMother Box, right there.\n\n1576\n02:56:52,940 --> 02:56:54,984\nGo to visible spectrum.\n\n1577\n02:56:56,819 --> 02:56:58,946\nPozharnov.\n\n1578\n02:56:59,071 --> 02:57:01,949\nGhost city not far from Moscow.\n\n1579\n02:57:02,074 --> 02:57:03,325\nIt's been abandoned since\n\n1580\n02:57:03,451 --> 02:57:04,827\nthe nuclear accident there\n30 years ago.\n\n1581\n02:57:04,952 --> 02:57:06,245\nNot even the army goes in.\n\n1582\n02:57:06,328 --> 02:57:07,746\nRight, it's probably\nso radioactive\n\n1583\n02:57:07,872 --> 02:57:09,915\nthat you grow an extra foot\noutta your neck.\n\n1584\n02:57:09,957 --> 02:57:11,375\nNot anymore.\n\n1585\n02:57:11,500 --> 02:57:13,252\nHe's harvested the radiation\nto build his base.\n\n1586\n02:57:13,335 --> 02:57:14,378\nZoom.\n\n1587\n02:57:18,215 --> 02:57:19,758\nWhat the hell is he building?\n\n1588\n02:57:19,842 --> 02:57:21,302\nThe Unity's in there.\n\n1589\n02:57:21,385 --> 02:57:22,762\nWe'll attack from above.\n\n1590\n02:57:22,845 --> 02:57:25,556\nExplosives won't\nseparate the boxes,\n\n1591\n02:57:25,681 --> 02:57:27,308\nonly strengthen their bond.\n\n1592\n02:57:27,475 --> 02:57:28,809\nWhat?\nSo we can't blow it up?\n\n1593\n02:57:28,893 --> 02:57:30,436\nNot from the outside.\n\n1594\n02:57:31,937 --> 02:57:34,857\nI want to plug into\nThe Unity, one-on-one.\n\n1595\n02:57:34,982 --> 02:57:36,358\nFuse with it.\n\n1596\n02:57:36,484 --> 02:57:37,818\nWeaken its bond from the inside\n\n1597\n02:57:37,985 --> 02:57:39,236\nso we can break it back\ninto three.\n\n1598\n02:57:39,361 --> 02:57:41,447\nNo, you don't know\nwhat you'd be up against.\n\n1599\n02:57:41,489 --> 02:57:45,201\nYou'd have to stream\ninto The Unity by yourself.\n\n1600\n02:57:45,326 --> 02:57:47,828\nThese boxes together\nare world destroyers.\n\n1601\n02:57:47,912 --> 02:57:49,288\nA billion years old.\n\n1602\n02:57:49,371 --> 02:57:51,457\nThey'll get inside you\nand find your weaknesses\n\n1603\n02:57:51,582 --> 02:57:54,001\nand your fears,\nand use them to destroy you.\n\n1604\n02:57:54,084 --> 02:57:56,337\nJust get me in and get me time.\n\n1605\n02:57:56,504 --> 02:57:57,630\nYou could die, Victor.\n\n1606\n02:57:57,713 --> 02:58:00,174\nIf I don't, we all die.\nPeriod.\n\n1607\n02:58:04,762 --> 02:58:06,555\nI got nothing left.\n\n1608\n02:58:11,852 --> 02:58:14,021\nYou wanted me\nto use these gifts, right?\n\n1609\n02:58:16,941 --> 02:58:18,526\nThat's what I'm gonna do.\n\n1610\n02:58:18,692 --> 02:58:21,028\nOkay. So...\n\n1611\n02:58:21,153 --> 02:58:22,821\nif Victor wants\nto try to save the world\n\n1612\n02:58:22,863 --> 02:58:24,406\nby fusing with the doom boxes,\n\n1613\n02:58:24,532 --> 02:58:27,034\nI say we put him\nin the doom boxes.\n\n1614\n02:58:27,117 --> 02:58:29,995\nBut getting him in\nmeans attacking that base.\n\n1615\n02:58:30,037 --> 02:58:32,498\nFighting the devil and his army\n\n1616\n02:58:32,581 --> 02:58:33,833\nin hell.\n\n1617\n02:58:33,958 --> 02:58:36,001\nI mean,\nthis guy's probably fought\n\n1618\n02:58:36,085 --> 02:58:38,337\nhundreds of thousands\nof other superbeings\n\n1619\n02:58:38,420 --> 02:58:40,089\non the other planets\nhe's destroyed, right?\n\n1620\n02:58:40,214 --> 02:58:41,841\nAnd we have to assume he's won.\n\n1621\n02:58:41,882 --> 02:58:43,634\nI don't care\nhow many demons he's fought\n\n1622\n02:58:43,759 --> 02:58:45,052\nin how many hells...\n\n1623\n02:58:45,177 --> 02:58:48,889\nhe's never fought us.\nNot us united.\n\n1624\n02:59:39,148 --> 02:59:40,816\nTake that as a \"yes.\"\n\n1625\n02:59:40,941 --> 02:59:42,401\nWhat?\n\n1626\n02:59:45,821 --> 02:59:47,114\nThe ring.\n\n1627\n02:59:50,784 --> 02:59:52,369\nYou're really back.\n\n1628\n03:00:25,819 --> 03:00:28,155\nI have a second chance, Lo.\n\n1629\n03:00:30,199 --> 03:00:32,951\nAnd I am not gonna waste it.\n\n1630\n03:01:30,968 --> 03:01:32,177\nAre you really you?\n\n1631\n03:01:32,261 --> 03:01:34,680\nI'm really me, Ma.\n\n1632\n03:01:52,072 --> 03:01:54,241\nListen, Ma.\n\n1633\n03:01:55,576 --> 03:01:57,745\nThey wanted me back\nfor a reason.\n\n1634\n03:01:59,413 --> 03:02:01,206\nI need to find out why.\n\n1635\n03:02:21,143 --> 03:02:22,644\nHow's Victor doing?\n\n1636\n03:02:26,940 --> 03:02:29,777\nYou know,\nwanted to be by himself.\n\n1637\n03:02:31,278 --> 03:02:34,406\nWe're asking a kid\nwho just lost his father\n\n1638\n03:02:34,490 --> 03:02:36,075\nto go up against\nthe most powerful machines\n\n1639\n03:02:36,158 --> 03:02:37,534\nin the universe.\n\n1640\n03:02:39,244 --> 03:02:40,788\nIt's not fair.\n\n1641\n03:02:42,456 --> 03:02:44,291\nI thought you didn't care?\n\n1642\n03:02:45,667 --> 03:02:47,252\nI never said that.\n\n1643\n03:03:00,015 --> 03:03:01,517\nWhat is it?\n\n1644\n03:03:03,143 --> 03:03:05,187\nUh...\n\n1645\n03:03:05,312 --> 03:03:08,398\nI had a dream,\nlike, I don't know,\n\n1646\n03:03:08,524 --> 03:03:11,110\nalmost like a premonition.\n\n1647\n03:03:11,235 --> 03:03:14,112\nIt was the end of the world\n\n1648\n03:03:14,196 --> 03:03:17,115\nand Barry Allen was right here\n\n1649\n03:03:17,199 --> 03:03:21,328\nand he said to me,\n\"Lois Lane is the key.\"\n\n1650\n03:03:23,872 --> 03:03:27,209\nShe is... to Superman.\n\n1651\n03:03:28,085 --> 03:03:30,129\nEvery heart has one.\n\n1652\n03:03:30,254 --> 03:03:32,339\nI think it's something more.\n\n1653\n03:03:33,048 --> 03:03:35,175\nSomething darker.\n\n1654\n03:03:39,138 --> 03:03:40,139\nMaster Wayne.\n\n1655\n03:03:40,222 --> 03:03:42,391\nMaster Wayne!\n\n1656\n03:03:42,516 --> 03:03:44,434\nYou need to see this.\n\n1657\n03:04:07,708 --> 03:04:09,293\nYou fixed it.\n\n1658\n03:04:09,418 --> 03:04:11,336\nIt wanted to fly.\n\n1659\n03:04:12,379 --> 03:04:13,881\nFlight is its nature.\n\n1660\n03:04:13,964 --> 03:04:15,382\nYours, too.\n\n1661\n03:04:21,847 --> 03:04:24,016\nHe'll be here, Alfred,\nI know it.\n\n1662\n03:04:24,099 --> 03:04:26,351\nWhat makes you so sure?\n\n1663\n03:04:26,393 --> 03:04:29,271\nFaith, Alfred. Faith.\n\n1664\n03:04:51,210 --> 03:04:52,836\nAt last.\n\n1665\n03:04:54,546 --> 03:04:57,466\nPrepare for his arrival.\n\n1666\n03:04:59,176 --> 03:05:03,430\nMy redemption is nigh.\n\n1667\n03:05:11,146 --> 03:05:12,731\nUnite.\n\n1668\n03:05:17,903 --> 03:05:20,447\nSynchronize.\n\n1669\n03:06:04,533 --> 03:06:05,993\nThe satellites revealed\n\n1670\n03:06:06,076 --> 03:06:07,494\nhe's created a defensive dome.\n\n1671\n03:06:07,661 --> 03:06:08,870\nIt's a design flaw.\n\n1672\n03:06:08,996 --> 03:06:11,164\nTake out the tower,\nthe dome will fall.\n\n1673\n03:06:11,248 --> 03:06:13,458\nThe enemy never anticipated\na frontal assault.\n\n1674\n03:06:13,542 --> 03:06:15,127\nRight, probably\n'cause he didn't think\n\n1675\n03:06:15,210 --> 03:06:17,337\nanyone would be that nuts.\n\n1676\n03:06:18,171 --> 03:06:19,464\nBruce is right.\n\n1677\n03:06:19,506 --> 03:06:21,008\nWe've got to destroy\nthe defensive dome\n\n1678\n03:06:21,174 --> 03:06:23,635\nso we can reach The Unity\nbefore it synchronizes.\n\n1679\n03:06:23,719 --> 03:06:25,512\nWhat if the dome's\nnot destroyed?\n\n1680\n03:06:25,637 --> 03:06:27,014\nIt'll be destroyed.\n\n1681\n03:06:27,097 --> 03:06:28,974\nOnce Victor\nis linked with The Unity\n\n1682\n03:06:29,057 --> 03:06:30,309\nwith Barry's help,\n\n1683\n03:06:30,434 --> 03:06:32,310\nhe'll break through\nThe Unity's defenses.\n\n1684\n03:06:32,394 --> 03:06:34,021\nRemind me, how's that again?\n\n1685\n03:06:34,104 --> 03:06:35,522\nUh, with the power of love.\n\n1686\n03:06:35,689 --> 03:06:38,650\n- Barry.\n- With a catastrophic energy surge.\n\n1687\n03:06:38,734 --> 03:06:39,985\nGood.\n\n1688\n03:06:40,152 --> 03:06:41,862\nYou'll have to run faster\nthan you've ever attempted\n\n1689\n03:06:41,945 --> 03:06:44,364\nto generate\na charge of that size.\n\n1690\n03:06:44,531 --> 03:06:46,700\nAnd then you make\nphysical contact with Victor.\n\n1691\n03:06:46,783 --> 03:06:49,661\nThat force should propel him\ninside The Unity.\n\n1692\n03:06:49,786 --> 03:06:51,747\nAnd, Victor, it's all up to you.\n\n1693\n03:06:51,872 --> 03:06:55,083\nTake it apart from the inside\nbefore it synchronizes.\n\n1694\n03:06:55,208 --> 03:06:58,920\nWhew. We actually\nfinally have a plan.\n\n1695\n03:06:59,046 --> 03:07:00,797\nWe have a plan.\n\n1696\n03:07:15,896 --> 03:07:17,981\nThe symbol\nof the house of El means hope.\n\n1697\n03:07:18,106 --> 03:07:20,233\nEmbodied within that hope\nis the fundamental belief\n\n1698\n03:07:20,359 --> 03:07:22,361\nin the potential of every\n\n1699\n03:07:22,362 --> 03:07:24,362\nperson to be a force for good.\n\n1700\n03:07:24,446 --> 03:07:25,864\nClark...\n\n1701\n03:07:25,947 --> 03:07:27,574\nThat's what you can bring them.\n\n1702\n03:07:27,699 --> 03:07:29,076\n...you were\nsent here for a reason.\n\n1703\n03:07:29,242 --> 03:07:30,827\nYou will give\nthe people of Earth\n\n1704\n03:07:30,952 --> 03:07:32,996\nan ideal to strive towards.\n\n1705\n03:07:33,121 --> 03:07:34,247\nAnd even if it takes you\n\n1706\n03:07:34,414 --> 03:07:36,041\nthe rest of your life,\n\n1707\n03:07:36,124 --> 03:07:37,668\nyou owe it to yourself to\n\n1708\n03:07:37,669 --> 03:07:39,211\nfind out what that reason is.\n\n1709\n03:07:39,294 --> 03:07:42,047\nThey will stumble,\nthey will fall.\n\n1710\n03:07:42,130 --> 03:07:44,091\n- You're gonna\n- have to make a choice.\n\n1711\n03:07:44,257 --> 03:07:46,760\n- They will join you\n- in the sun, Kal.\n\n1712\n03:07:46,927 --> 03:07:48,762\nA choice\nof whether to stand proud\n\n1713\n03:07:48,929 --> 03:07:50,889\nin front of the human race\nor not.\n\n1714\n03:07:50,972 --> 03:07:54,518\nYou will help them\naccomplish wonders.\n\n1715\n03:08:11,284 --> 03:08:15,914\nAll the hopes and dreams\nof Krypton live in you now.\n\n1716\n03:08:15,956 --> 03:08:19,584\nI'm so proud of you, son.\n\n1717\n03:08:19,626 --> 03:08:22,337\nYour mother and I loved you.\n\n1718\n03:08:22,462 --> 03:08:23,797\nYour mother and I knew\n\n1719\n03:08:23,880 --> 03:08:26,049\nyou would change the world.\n\n1720\n03:08:27,342 --> 03:08:30,095\nYour heart was tested.\n\n1721\n03:08:30,178 --> 03:08:32,889\nI know it's been hard, Clark.\n\n1722\n03:08:33,014 --> 03:08:35,976\nBut you gave hope\nto their world.\n\n1723\n03:08:36,059 --> 03:08:39,437\nYou need\nto show them who you are.\n\n1724\n03:08:39,521 --> 03:08:41,690\nLove them, Kal.\n\n1725\n03:08:41,815 --> 03:08:44,109\nThe way we loved you.\n\n1726\n03:08:46,528 --> 03:08:47,779\nFly, son.\n\n1727\n03:08:48,655 --> 03:08:49,990\nIt's time.\n\n1728\n03:09:53,637 --> 03:09:54,930\nI'm gonna take out that tower\n\n1729\n03:09:55,055 --> 03:09:56,973\nand knock down that shield dome.\n\n1730\n03:09:57,098 --> 03:09:58,141\nWhatever you see,\n\n1731\n03:09:59,434 --> 03:10:01,561\nstick to the plan.\n\n1732\n03:10:03,063 --> 03:10:05,232\nIt's why I brought you together.\n\n1733\n03:10:45,105 --> 03:10:47,107\nBruce, pull back.\nYou're not gonna make it.\n\n1734\n03:10:49,985 --> 03:10:52,946\nJust have to knock\na little louder.\n\n1735\n03:11:18,013 --> 03:11:19,472\nKill him!\n\n1736\n03:11:19,597 --> 03:11:22,350\nGet to the carriage.\nDefend The Unity.\n\n1737\n03:11:27,314 --> 03:11:28,606\nOh, shit.\n\n1738\n03:11:48,543 --> 03:11:49,919\nThe tower's down.\n\n1739\n03:11:51,463 --> 03:11:53,381\nDo you read me?\n\n1740\n03:11:53,506 --> 03:11:54,758\nUh, yeah, loud and clear.\n\n1741\n03:11:55,675 --> 03:11:57,135\nAre you okay?\n\n1742\n03:11:58,345 --> 03:12:01,181\nBruce? Bruce?\n\n1743\n03:12:01,264 --> 03:12:02,140\nGet to the reactor.\n\n1744\n03:12:02,223 --> 03:12:03,725\nI'll lure as many\nof these monsters\n\n1745\n03:12:03,850 --> 03:12:05,852\n- away from you as I can.\n- What does that mean?\n\n1746\n03:12:08,730 --> 03:12:10,690\nDon't worry about me.\nGet to The Unity.\n\n1747\n03:12:13,443 --> 03:12:14,527\nThey're here.\n\n1748\n03:12:14,611 --> 03:12:15,862\nBruce?\n\n1749\n03:12:18,698 --> 03:12:20,158\nComm went dead.\n\n1750\n03:12:21,743 --> 03:12:23,119\nLet's go.\n\n1751\n03:13:01,908 --> 03:13:03,910\nCome on, follow me,\nyou damn insects.\n\n1752\n03:14:23,531 --> 03:14:25,033\nCritical damage.\n\n1753\n03:15:04,906 --> 03:15:06,241\nYou really are outta your mind.\n\n1754\n03:15:33,017 --> 03:15:34,352\nYou're welcome.\n\n1755\n03:15:34,435 --> 03:15:35,979\nMy man.\n\n1756\n03:17:08,738 --> 03:17:10,490\nYeah, we got this.\n\n1757\n03:17:10,615 --> 03:17:11,824\nYou go do your thing.\n\n1758\n03:18:07,755 --> 03:18:09,340\nI'm assuming you're Alfred.\n\n1759\n03:18:11,092 --> 03:18:12,468\nMaster Kent.\n\n1760\n03:18:14,303 --> 03:18:16,097\nHe said you'd come.\n\n1761\n03:18:17,473 --> 03:18:21,227\nNow, let's hope\nyou're not too late.\n\n1762\n03:18:31,946 --> 03:18:34,323\nHey!\n\n1763\n03:18:42,248 --> 03:18:43,666\nRemember me?\n\n1764\n03:18:46,127 --> 03:18:47,628\nRound two?\n\n1765\n03:18:48,254 --> 03:18:49,547\nHell yeah.\n\n1766\n03:19:10,985 --> 03:19:12,445\nShall we?\n\n1767\n03:19:13,279 --> 03:19:15,531\nTell me, Amazon,\n\n1768\n03:19:15,656 --> 03:19:19,702\nwhy did you\nabandon your own sisters\n\n1769\n03:19:19,827 --> 03:19:22,413\nonly to cast your lot\nwith these creatures\n\n1770\n03:19:22,497 --> 03:19:25,958\nclinging to their puny lives?\n\n1771\n03:19:26,084 --> 03:19:29,045\nYou weren't there\nto protect them from me.\n\n1772\n03:19:29,170 --> 03:19:31,088\nAnd, sadly, you could have.\n\n1773\n03:20:12,171 --> 03:20:13,881\nBarry, I'm in position.\n\n1774\n03:20:32,567 --> 03:20:35,903\nOkay.\nI built the charge.\n\n1775\n03:20:36,028 --> 03:20:36,988\nYou call it.\n\n1776\n03:20:38,197 --> 03:20:40,032\nBarry, on one.\n\n1777\n03:20:40,157 --> 03:20:42,368\nThree, two...\n\n1778\n03:20:45,246 --> 03:20:46,998\nGet the hell off me!\n\n1779\n03:20:47,123 --> 03:20:48,583\nVictor!\n\n1780\n03:21:24,660 --> 03:21:26,287\nVictor!\n\n1781\n03:21:29,999 --> 03:21:32,376\nI watched your island burn,\n\n1782\n03:21:32,501 --> 03:21:36,088\nyour sisters\nbegging for their lives.\n\n1783\n03:21:36,255 --> 03:21:38,841\nAs did your mother.\n\n1784\n03:21:38,966 --> 03:21:39,926\nLiar.\n\n1785\n03:22:05,534 --> 03:22:07,703\nI can't maintain this!\n\n1786\n03:22:08,454 --> 03:22:09,622\nVictor!\n\n1787\n03:22:31,644 --> 03:22:33,980\nVictor, I can't hold this!\n\n1788\n03:22:40,486 --> 03:22:42,905\nFor Darkseid.\n\n1789\n03:22:46,909 --> 03:22:49,370\nNot impressed.\n\n1790\n03:23:33,789 --> 03:23:34,957\nAll right.\n\n1791\n03:23:35,082 --> 03:23:36,709\nKal-El.\n\n1792\n03:24:14,955 --> 03:24:17,374\nBarry, I'm connected\nto The Unity.\n\n1793\n03:24:17,416 --> 03:24:19,585\nI need the charge to get inside.\n\n1794\n03:24:41,440 --> 03:24:42,650\nBarry?\n\n1795\n03:24:43,442 --> 03:24:45,236\nBarry, are you okay?\n\n1796\n03:24:46,654 --> 03:24:47,738\nBarry!\n\n1797\n03:24:47,863 --> 03:24:49,031\nI got the wind\nknocked out of me.\n\n1798\n03:24:49,156 --> 03:24:51,909\nNeed a few seconds, that's all!\n\n1799\n03:25:08,801 --> 03:25:11,345\nBarry, where are you?\nIt's almost synchronized!\n\n1800\n03:25:11,470 --> 03:25:13,472\nOkay, okay.\n\n1801\n03:25:13,597 --> 03:25:16,308\nOh, my God. Gotta heal, Barry.\n\n1802\n03:25:16,434 --> 03:25:18,144\nHeal. Heal.\n\n1803\n03:25:44,003 --> 03:25:45,671\nBarry!\n\n1804\n03:25:58,434 --> 03:26:00,186\nIt's too late.\n\n1805\n03:26:01,437 --> 03:26:02,980\nOh, no.\n\n1806\n03:26:07,193 --> 03:26:08,861\nHe's here!\n\n1807\n03:26:38,265 --> 03:26:39,516\nOkay.\n\n1808\n03:26:39,642 --> 03:26:40,684\nJust gotta go faster\nthan the speed of light.\n\n1809\n03:26:40,768 --> 03:26:41,852\nFar beyond the speed of light.\n\n1810\n03:26:41,894 --> 03:26:43,062\nYou gotta break the rule, Barry,\n\n1811\n03:26:43,229 --> 03:26:45,272\nand you gotta do it now.\n\n1812\n03:26:58,369 --> 03:27:00,079\nDad...\n\n1813\n03:27:03,791 --> 03:27:06,252\nwhatever happens,\nI want you to know\n\n1814\n03:27:08,837 --> 03:27:11,006\nyour kid was one of them, Dad.\n\n1815\n03:27:13,968 --> 03:27:16,095\nOne of the best of the best.\n\n1816\n03:28:11,525 --> 03:28:14,111\nMake your own future.\n\n1817\n03:28:20,534 --> 03:28:22,661\nMake your own past.\n\n1818\n03:28:26,915 --> 03:28:30,753\nIt's all right now.\n\n1819\n03:29:17,591 --> 03:29:19,927\nWe've been waiting\nfor you, Victor.\n\n1820\n03:29:20,886 --> 03:29:23,097\nMy broken boy.\n\n1821\n03:29:25,265 --> 03:29:27,518\nYou don't have to be\nalone anymore.\n\n1822\n03:29:27,559 --> 03:29:29,311\nWe'll be together again.\n\n1823\n03:29:36,985 --> 03:29:39,238\nWe can put it back, Vic.\n\n1824\n03:29:43,575 --> 03:29:45,828\nMake you whole again.\n\n1825\n03:29:57,548 --> 03:29:59,299\nI'm not broken.\n\n1826\n03:30:08,934 --> 03:30:10,978\nAnd I'm not alone.\n\n1827\n03:30:27,661 --> 03:30:28,829\nSuperman!\n\n1828\n03:31:59,419 --> 03:32:01,380\nI told you\n\n1829\n03:32:02,881 --> 03:32:05,551\nSteppenwolf would fail.\n\n1830\n03:32:06,552 --> 03:32:10,222\nYes. Yes, you did.\n\n1831\n03:32:10,806 --> 03:32:12,099\nMy master,\n\n1832\n03:32:12,224 --> 03:32:16,019\nnow that the Mother Boxes\nhave been destroyed,\n\n1833\n03:32:16,061 --> 03:32:20,023\nhow will you retrieve\nyour great prize?\n\n1834\n03:32:20,107 --> 03:32:23,443\nAnti-Life is found, DeSaad.\n\n1835\n03:32:23,569 --> 03:32:28,490\nAnd we will stop\nat nothing to possess it.\n\n1836\n03:32:31,618 --> 03:32:33,245\nReady the armada.\n\n1837\n03:32:33,996 --> 03:32:36,498\nWe will use the old ways.\n\n1838\n03:35:00,600 --> 03:35:03,103\nYour father twice over.\n\n1839\n03:35:10,193 --> 03:35:12,738\nNow, let me speak to you\nfrom my heart,\n\n1840\n03:35:12,821 --> 03:35:14,698\nnot as a scientist,\n\n1841\n03:35:14,740 --> 03:35:16,324\nas a father.\n\n1842\n03:35:16,450 --> 03:35:19,703\nYour father twice over.\n\n1843\n03:35:21,955 --> 03:35:25,542\nI brought you into the world\nand back to it.\n\n1844\n03:35:25,625 --> 03:35:29,880\nYou can't imagine how proud\nI am of who you are.\n\n1845\n03:35:29,963 --> 03:35:31,673\nHave always been.\n\n1846\n03:35:33,633 --> 03:35:35,093\nSo many years with you I wasted.\n\n1847\n03:35:35,177 --> 03:35:38,680\nSo many wrongs\nI've left un-righted.\n\n1848\n03:35:41,099 --> 03:35:43,310\nEverything breaks, Victor.\n\n1849\n03:35:43,435 --> 03:35:45,812\nEverything changes.\n\n1850\n03:35:56,406 --> 03:35:58,617\nI gotta go see my father.\n\n1851\n03:36:34,152 --> 03:36:36,029\nThe world is hurt.\n\n1852\n03:36:36,154 --> 03:36:37,239\nBroken.\n\n1853\n03:36:37,364 --> 03:36:39,699\nUnexchangeable.\n\n1854\n03:36:39,825 --> 03:36:41,701\nShip's all yours now, kid.\n\n1855\n03:36:41,827 --> 03:36:43,245\nYou're the boss.\n\n1856\n03:36:45,330 --> 03:36:48,625\n\"Ryan Choi,\nDirector of Nanotechnology.\"\n\n1857\n03:36:48,750 --> 03:36:50,335\nThat's your thing.\n\n1858\n03:36:50,919 --> 03:36:52,796\nUh, yep.\n\n1859\n03:36:52,879 --> 03:36:54,548\nThat's my thing.\n\n1860\n03:36:59,427 --> 03:37:03,682\nBut the world's\nnot fixed in the past,\n\n1861\n03:37:03,765 --> 03:37:04,850\nonly the future.\n\n1862\n03:37:06,601 --> 03:37:10,480\nThe not yet. The now.\n\n1863\n03:37:10,605 --> 03:37:14,150\nWow.\nMust be 100, 150 feet.\n\n1864\n03:37:14,234 --> 03:37:15,694\nMust be.\n\n1865\n03:37:16,862 --> 03:37:18,363\nBig round table.\n\n1866\n03:37:18,488 --> 03:37:20,782\nSix chairs, right there.\n\n1867\n03:37:21,908 --> 03:37:23,577\nBut room for more.\n\n1868\n03:37:25,912 --> 03:37:27,622\nBut room for more.\n\n1869\n03:37:28,665 --> 03:37:30,250\nGod help us.\n\n1870\n03:37:32,085 --> 03:37:34,254\nThe now is you.\n\n1871\n03:37:37,883 --> 03:37:39,175\nWhat?\n\n1872\n03:37:39,384 --> 03:37:42,178\nIt's actually the worst job\nyou can get in a crime lab.\n\n1873\n03:37:42,220 --> 03:37:44,764\nBut, uh, my foot's in the door.\n\n1874\n03:37:44,890 --> 03:37:46,558\nThis is like a \"job\" job?\n\n1875\n03:37:47,225 --> 03:37:48,476\n\"Job\" job.\n\n1876\n03:37:52,063 --> 03:37:54,691\nYour foot's in the door.\n\n1877\n03:37:56,985 --> 03:37:58,069\nIsn't that a thing people say?\n\n1878\n03:37:58,236 --> 03:38:00,196\nYour foot's in the door.\n\n1879\n03:38:00,280 --> 03:38:02,574\nYeah, that's something\npeople say, man.\n\n1880\n03:38:02,657 --> 03:38:04,284\nHis foot's in the door!\n\n1881\n03:38:04,409 --> 03:38:07,078\n- That's my boy, right there!\n- Oh, gosh. Oh, gosh.\n\n1882\n03:38:07,162 --> 03:38:08,455\nTaught him nothing he knows.\n\n1883\n03:38:08,580 --> 03:38:09,706\n- Yes!\n- Dad, you're gonna\n\n1884\n03:38:09,789 --> 03:38:10,790\nget maced again.\n\n1885\n03:38:14,169 --> 03:38:16,046\nNo stopping you now.\n\n1886\n03:38:18,089 --> 03:38:19,299\nThanks, Dad.\n\n1887\n03:38:19,424 --> 03:38:20,675\nNow.\n\n1888\n03:38:20,800 --> 03:38:23,762\nNow's your time, Victor,\nto rise.\n\n1889\n03:38:23,887 --> 03:38:26,890\n\"Thank you\" is not enough\nfor what you did.\n\n1890\n03:38:26,973 --> 03:38:30,644\nI just undid a mistake,\nthat's all.\n\n1891\n03:38:40,820 --> 03:38:43,865\nHow did you get the house\nback from the bank?\n\n1892\n03:38:43,990 --> 03:38:45,951\nI bought the bank.\n\n1893\n03:38:48,328 --> 03:38:50,914\nCongratulations, by the way.\n\n1894\n03:38:50,997 --> 03:38:52,582\nDo this. Be this.\n\n1895\n03:38:52,707 --> 03:38:57,921\nThe man I never was.\nThe hero you are.\n\n1896\n03:38:57,963 --> 03:39:00,298\nTake your place\namong the brave ones.\n\n1897\n03:39:00,382 --> 03:39:05,679\nThe ones that were, that are,\nthat are yet to be.\n\n1898\n03:39:38,253 --> 03:39:41,339\nIt's time you stand,\n\n1899\n03:39:45,010 --> 03:39:46,553\nfight,\n\n1900\n03:39:49,097 --> 03:39:50,598\ndiscover,\n\n1901\n03:39:55,186 --> 03:39:57,480\nheal, love,\n\n1902\n03:40:00,984 --> 03:40:01,985\nwin.\n\n1903\n03:40:28,470 --> 03:40:30,305\nThe time\n\n1904\n03:40:30,430 --> 03:40:31,890\nis now.\n\n1905\n03:40:41,066 --> 03:40:42,275\nReady?\n\n1906\n03:40:42,400 --> 03:40:43,526\nCome on, Stevens.\n\n1907\n03:40:47,280 --> 03:40:48,740\nAll right, let's keep it moving.\n\n1908\n03:40:50,492 --> 03:40:51,743\nKeep going.\n\n1909\n03:40:53,411 --> 03:40:55,413\nCome on, Luthor. Let's go.\n\n1910\n03:40:58,958 --> 03:41:00,043\nLuthor.\n\n1911\n03:41:04,881 --> 03:41:06,049\nOpen up two, Carl, please.\n\n1912\n03:41:15,183 --> 03:41:16,601\nLuthor.\n\n1913\n03:41:21,481 --> 03:41:22,899\nAll right,\nstop jerking around, Luthor,\n\n1914\n03:41:23,024 --> 03:41:24,818\nor I'm gonna\nhave to come in there.\n\n1915\n03:42:53,364 --> 03:42:55,491\nAh, there he is.\n\n1916\n03:42:56,075 --> 03:42:57,368\nWelcome aboard.\n\n1917\n03:42:57,452 --> 03:42:59,120\nCare for a glass\nof Gout de Diamants?\n\n1918\n03:42:59,245 --> 03:43:01,164\nI was just celebrating\nGod's return.\n\n1919\n03:43:01,206 --> 03:43:03,708\nOut of the ground\nand back up into the sky.\n\n1920\n03:43:03,791 --> 03:43:06,461\nI heard you were\na few clowns short of a circus.\n\n1921\n03:43:06,586 --> 03:43:08,129\nI was, thank you,\n\n1922\n03:43:08,254 --> 03:43:10,506\nuntil the good doctors\nat Arkham helped me\n\n1923\n03:43:10,590 --> 03:43:12,717\nfind some much needed clarity.\n\n1924\n03:43:12,800 --> 03:43:15,136\nNow, you volunteered\nto destroy the bat\n\n1925\n03:43:15,261 --> 03:43:16,221\nfree of charge.\n\n1926\n03:43:16,387 --> 03:43:18,181\nWhy the pro bono work?\n\n1927\n03:43:18,223 --> 03:43:20,016\nIt's personal.\n\n1928\n03:43:20,141 --> 03:43:23,186\nAh, let me guess,\nan eye for an eye?\n\n1929\n03:43:25,104 --> 03:43:26,898\nYou said you had something\nI'd want?\n\n1930\n03:43:26,981 --> 03:43:28,524\nYou'd better not be\nwasting my time.\n\n1931\n03:43:28,566 --> 03:43:30,693\nOoh. And endure\nyour wrath, Mr. Wilson?\n\n1932\n03:43:30,777 --> 03:43:32,612\nNo, I wouldn't think of it.\n\n1933\n03:43:32,737 --> 03:43:33,947\nUh, I have too much to live for.\n\n1934\n03:43:34,072 --> 03:43:37,200\nAnd more important things to do.\n\n1935\n03:43:37,325 --> 03:43:40,703\nBut if you want the Batman,\n\n1936\n03:43:40,828 --> 03:43:44,082\nhere is something\nthat can help you.\n\n1937\n03:43:45,416 --> 03:43:49,671\nHis name is Bruce Wayne.\n\n1938\n03:43:52,674 --> 03:43:55,176\nHmm. On second thought,\n\n1939\n03:43:57,303 --> 03:43:59,597\nwe do have something\nto celebrate.\n\n1940\n03:44:00,473 --> 03:44:02,016\nGood boy.\n\n1941\n03:45:06,331 --> 03:45:07,665\nClear.\n\n1942\n03:45:12,837 --> 03:45:14,672\nHow much further?\n\n1943\n03:45:15,715 --> 03:45:17,008\nWe're almost there.\n\n1944\n03:45:19,010 --> 03:45:20,720\nWell, we need to hurry.\n\n1945\n03:45:20,845 --> 03:45:22,472\nWe can't be out in the open\nmuch longer.\n\n1946\n03:45:22,555 --> 03:45:24,223\nHe'll come for us.\n\n1947\n03:45:27,060 --> 03:45:29,187\nLet him come.\n\n1948\n03:45:29,354 --> 03:45:31,022\nLet the bastard come.\n\n1949\n03:45:32,190 --> 03:45:34,442\nI'll stab this through his heart\n\n1950\n03:45:34,567 --> 03:45:36,736\nfor what he did to Arthur.\n\n1951\n03:45:36,861 --> 03:45:38,988\nI want to make him pay.\n\n1952\n03:45:40,365 --> 03:45:43,326\nI understand how you feel, Mera.\n\n1953\n03:45:43,409 --> 03:45:46,079\nYou have no idea how I feel.\n\n1954\n03:45:46,204 --> 03:45:48,039\nBut we have to stick to the plan\n\n1955\n03:45:48,206 --> 03:45:50,583\nto have any chance\nto make this right.\n\n1956\n03:45:58,466 --> 03:46:01,969\nWho have you ever loved?\n\n1957\n03:46:15,942 --> 03:46:19,237\nAu contraire,\nmy little fish stick.\n\n1958\n03:46:22,865 --> 03:46:24,534\nHe knows exactly what it's like\n\n1959\n03:46:24,575 --> 03:46:26,369\nto lose someone he loves.\n\n1960\n03:46:28,329 --> 03:46:30,748\nYou know, like, uh,\n\n1961\n03:46:31,791 --> 03:46:33,292\na father,\n\n1962\n03:46:34,710 --> 03:46:36,879\nlike a mother.\n\n1963\n03:46:36,963 --> 03:46:40,174\nBe very careful\nwith the next thing you say.\n\n1964\n03:46:41,759 --> 03:46:43,928\nLike an adopted son.\n\n1965\n03:46:47,557 --> 03:46:49,225\nIsn't that right,\n\n1966\n03:46:50,643 --> 03:46:52,228\nBatman?\n\n1967\n03:46:55,440 --> 03:46:56,774\nMaybe, in a way,\n\n1968\n03:46:56,858 --> 03:46:58,776\nthat smelly\nold flounder is right.\n\n1969\n03:47:00,319 --> 03:47:03,072\nBecause how many\ncan die in your arms\n\n1970\n03:47:03,156 --> 03:47:04,907\nbefore you grow numb to death?\n\n1971\n03:47:06,409 --> 03:47:09,162\nThat's not very careful.\n\n1972\n03:47:09,287 --> 03:47:13,082\nAnd how many dead eyes\ncan you look into\n\n1973\n03:47:13,124 --> 03:47:16,002\nbefore you die inside yourself?\n\n1974\n03:47:16,127 --> 03:47:19,839\nI've been dead inside\na long time,\n\n1975\n03:47:19,964 --> 03:47:21,924\nbut even I have a limit.\n\n1976\n03:47:22,008 --> 03:47:23,843\nAnd if you cross that line,\nI swear to God, I will...\n\n1977\n03:47:23,968 --> 03:47:26,846\nBefore what, Bruce? Kill me?\n\n1978\n03:47:26,971 --> 03:47:28,973\nYou won't kill me.\n\n1979\n03:47:29,682 --> 03:47:31,767\nI'm your best friend.\n\n1980\n03:47:31,851 --> 03:47:36,272\nBesides, who's gonna give you\na reach-around?\n\n1981\n03:47:38,316 --> 03:47:39,775\nAnyway,\n\n1982\n03:47:40,860 --> 03:47:42,445\nyou need me.\n\n1983\n03:47:43,488 --> 03:47:45,239\nYou\n\n1984\n03:47:45,364 --> 03:47:48,201\nneed me to help you\nundo this world\n\n1985\n03:47:48,326 --> 03:47:51,204\nyou created by letting her die.\n\n1986\n03:47:53,706 --> 03:47:55,666\nPoor Lois.\n\n1987\n03:47:55,750 --> 03:47:58,544\nHow she suffered so!\n\n1988\n03:48:04,509 --> 03:48:06,677\nI often wonder\n\n1989\n03:48:06,844 --> 03:48:08,638\nhow many alternate timelines\n\n1990\n03:48:08,763 --> 03:48:11,098\ndo you destroy\nthe world because...\n\n1991\n03:48:12,016 --> 03:48:13,643\nfrankly, you don't have\n\n1992\n03:48:13,768 --> 03:48:16,354\nthe cojones to die yourself.\n\n1993\n03:48:17,355 --> 03:48:18,898\nHmm?\n\n1994\n03:48:20,858 --> 03:48:22,026\nSo, as usual,\n\n1995\n03:48:22,151 --> 03:48:24,862\nI'll be the bigger man.\n\n1996\n03:48:28,533 --> 03:48:30,117\nA truce,\n\n1997\n03:48:30,826 --> 03:48:32,537\nBruce.\n\n1998\n03:48:34,872 --> 03:48:39,085\nAs long as you\nhave this card, a truce.\n\n1999\n03:48:41,963 --> 03:48:42,964\nBut all you have to do\n\n2000\n03:48:43,089 --> 03:48:44,173\nis tear it in half\n\n2001\n03:48:44,298 --> 03:48:45,716\nand I'm happy\nto discuss with you\n\n2002\n03:48:45,842 --> 03:48:48,427\nin any way you like,\nwhy you sent the Boy Wonder\n\n2003\n03:48:50,096 --> 03:48:52,098\nto do a man's job?\n\n2004\n03:48:55,476 --> 03:48:57,144\nYou know, it's funny\n\n2005\n03:48:57,270 --> 03:48:58,729\nthat you would talk about people\n\n2006\n03:48:58,813 --> 03:49:00,314\nwho died in my arms\n\n2007\n03:49:00,439 --> 03:49:02,191\nbecause when I held Harley Quinn\n\n2008\n03:49:02,275 --> 03:49:04,861\nand she was bleeding and dying,\n\n2009\n03:49:04,986 --> 03:49:08,698\nshe begged me\nwith her last breath\n\n2010\n03:49:08,739 --> 03:49:11,033\nthat when I killed you,\n\n2011\n03:49:11,117 --> 03:49:14,704\nand make no mistake,\nI will fucking kill you...\n\n2012\n03:49:14,787 --> 03:49:16,622\nthat I'd do it slow.\n\n2013\n03:49:17,832 --> 03:49:19,959\nI'm gonna honor that promise.\n\n2014\n03:49:50,448 --> 03:49:53,284\nOh. You're good.\n\n2015\n03:49:57,496 --> 03:49:59,165\nYou almost had me.\n\n2016\n03:50:18,392 --> 03:50:19,644\nWhere are we holing up?\n\n2017\n03:50:19,810 --> 03:50:22,271\nSomewhere he'll never suspect.\n\n2018\n03:50:22,313 --> 03:50:25,274\nStill think it was a good idea\nbringing him along?\n\n2019\n03:50:25,358 --> 03:50:28,152\nWhat do you think?\n\n2020\n03:50:34,075 --> 03:50:35,242\nHe's found us.\n\n2021\n03:52:04,248 --> 03:52:06,792\nCan I help you?\n\n2022\n03:52:06,917 --> 03:52:10,546\nI'm sure you know Darkseid\nis not finished with Earth.\n\n2023\n03:52:10,588 --> 03:52:13,674\nThe Anti-Life Equation\nis here somewhere.\n\n2024\n03:52:13,799 --> 03:52:16,802\nWe have to find it\nbefore he does.\n\n2025\n03:52:16,927 --> 03:52:18,804\nThere's a war coming.\n\n2026\n03:52:18,929 --> 03:52:20,765\nAnd I'm here to help.\n\n2027\n03:52:20,890 --> 03:52:23,100\nI'm sorry, who are you again?\n\n2028\n03:52:23,225 --> 03:52:25,352\nI've gone by many names\n\n2029\n03:52:25,478 --> 03:52:28,689\nand taken many forms.\nAnd like you,\n\n2030\n03:52:28,814 --> 03:52:31,484\nI've realized I have\na stake in this world\n\n2031\n03:52:31,609 --> 03:52:34,361\nand it's time\nI started fighting for it.\n\n2032\n03:52:34,945 --> 03:52:36,280\nOh.\n\n2033\n03:52:37,656 --> 03:52:39,950\nWell, we could\ndefinitely use the help.\n\n2034\n03:52:40,117 --> 03:52:43,454\nSo, glad you're here.\n\n2035\n03:52:44,455 --> 03:52:45,581\nYou know, I never thought\n\n2036\n03:52:45,623 --> 03:52:46,832\nI'd see the defenders of Earth\n\n2037\n03:52:46,957 --> 03:52:49,794\nunited and fighting as one.\n\n2038\n03:52:49,877 --> 03:52:52,546\nIt wouldn't have happened\nwithout you, Bruce.\n\n2039\n03:52:53,756 --> 03:52:56,425\nYour mother and father\nwould be proud.\n\n2040\n03:52:57,718 --> 03:52:58,844\nI hope so.\n\n2041\n03:53:04,934 --> 03:53:07,853\nWell, I'll be in touch.\n\n2042\n03:53:08,896 --> 03:53:12,983\nOh, and some have called me\n\n2043\n03:53:13,109 --> 03:53:15,486\nthe Martian Manhunter.\n\n2044\n03:53:23,077 --> 03:53:25,538\nI guess I'll see you around.\n\n2045\n03:57:07,885 --> 03:57:12,681\n<i>I've heard there was\na secret chord</i>\n\n2046\n03:57:12,765 --> 03:57:17,311\n<i>That David played\nand it pleased the lord</i>\n\n2047\n03:57:17,436 --> 03:57:23,025\n<i>But you don't really care\nfor music, do you?</i>\n\n2048\n03:57:25,652 --> 03:57:29,198\n<i>It goes like this\nThe fourth, the fifth</i>\n\n2049\n03:57:29,281 --> 03:57:33,243\n<i>The minor fall\nThe major lift</i>\n\n2050\n03:57:33,327 --> 03:57:41,210\n<i>The baffled king\ncomposing hallelujah</i>\n\n2051\n03:57:41,293 --> 03:57:45,214\n<i>Hallelujah</i>\n\n2052\n03:57:45,297 --> 03:57:47,508\n<i>Hallelujah</i>\n\n2053\n03:57:48,759 --> 03:57:52,679\n<i>Hallelujah</i>\n\n2054\n03:57:52,805 --> 03:57:58,811\n<i>Hallelujah</i>\n\n2055\n03:58:00,521 --> 03:58:05,067\n<i>Well your faith was strong\nbut you needed proof</i>\n\n2056\n03:58:05,109 --> 03:58:08,654\n<i>You saw her bathing\non the roof</i>\n\n2057\n03:58:08,779 --> 03:58:11,323\n<i>Her beauty and the moonlight</i>\n\n2058\n03:58:11,324 --> 03:58:13,867\n<i>overthrew you</i>\n\n2059\n03:58:16,286 --> 03:58:19,790\n<i>She tied you\nto her kitchen chair</i>\n\n2060\n03:58:19,957 --> 03:58:23,919\n<i>She broke your throne\nand she cut your hair</i>\n\n2061\n03:58:24,002 --> 03:58:31,009\n<i>And from your lips\nshe drew the hallelujah</i>\n\n2062\n03:58:31,135 --> 03:58:34,096\n<i>Hallelujah</i>\n\n2063\n03:58:35,013 --> 03:58:37,641\n<i>Hallelujah</i>\n\n2064\n03:58:38,642 --> 03:58:42,271\n<i>Hallelujah</i>\n\n2065\n03:58:42,354 --> 03:58:47,734\n<i>Hallelujah</i>\n\n2066\n03:58:50,779 --> 03:58:54,992\n<i>Hey baby\nI've been here before</i>\n\n2067\n03:58:55,117 --> 03:58:59,163\n<i>I've seen this room\nand I've walked this floor</i>\n\n2068\n03:58:59,329 --> 03:59:04,168\n<i>I used to live alone\nbefore I knew you</i>\n\n2069\n03:59:07,171 --> 03:59:10,841\n<i>But I've seen your flag\non the marble arch</i>\n\n2070\n03:59:10,966 --> 03:59:14,511\n<i>And love is not\na victory march</i>\n\n2071\n03:59:14,636 --> 03:59:21,894\n<i>It's a cold and\nit is a broken hallelujah</i>\n\n2072\n03:59:22,561 --> 03:59:26,315\n<i>Hallelujah</i>\n\n2073\n03:59:26,440 --> 03:59:29,067\n<i>Hallelujah</i>\n\n2074\n03:59:30,360 --> 03:59:34,323\n<i>Hallelujah</i>\n\n2075\n03:59:34,406 --> 03:59:40,162\n<i>Hallelujah</i>\n\n2076\n03:59:43,415 --> 03:59:48,045\n<i>Well there was a time\nwhen you let me know</i>\n\n2077\n03:59:48,128 --> 03:59:52,716\n<i>What's really going\non below</i>\n\n2078\n03:59:52,883 --> 03:59:58,180\n<i>Now you never show\nthat to me, do you?</i>\n\n2079\n04:00:01,058 --> 04:00:04,394\n<i>Remember\nwhen i moved in you</i>\n\n2080\n04:00:04,478 --> 04:00:08,357\n<i>And the holy ghost\nwas moving too</i>\n\n2081\n04:00:08,398 --> 04:00:15,572\n<i>And every breath\nwe drew was hallelujah</i>\n\n2082\n04:00:16,406 --> 04:00:20,118\n<i>Hallelujah</i>\n\n2083\n04:00:20,244 --> 04:00:22,746\n<i>Hallelujah</i>\n\n2084\n04:00:24,248 --> 04:00:27,709\n<i>Hallelujah</i>\n\n2085\n04:00:27,793 --> 04:00:34,925\n<i>Hallelujah</i>\n\n2086\n04:00:49,773 --> 04:00:54,778\n<i>Well, maybe there is\na god above</i>\n\n2087\n04:00:57,072 --> 04:01:02,160\n<i>But all I have\never learned from love</i>\n\n2088\n04:01:03,537 --> 04:01:06,748\n<i>Was how to shoot somebody</i>\n\n2089\n04:01:07,791 --> 04:01:13,088\n<i>Who outdrew you</i>\n\n2090\n04:01:13,130 --> 04:01:17,426\n<i>It's not a cry\nthat you hear at night</i>\n\n2091\n04:01:17,509 --> 04:01:21,847\n<i>And it is not somebody\nwho's seen the light</i>\n\n2092\n04:01:21,972 --> 04:01:23,807\n<i>It's a cold</i>\n\n2093\n04:01:23,890 --> 04:01:31,273\n<i>And it is\na broken hallelujah</i>\n\n2094\n04:01:31,356 --> 04:01:34,443\n<i>Hallelujah</i>\n\n2095\n04:01:34,526 --> 04:01:37,195\n<i>Hallelujah</i>\n\n2096\n04:01:37,863 --> 04:01:41,450\n<i>Hallelujah</i>\n\n2097\n04:01:41,533 --> 04:01:48,206\n<i>Hallelujah</i>\n\n2098\n04:01:48,332 --> 04:01:50,917\n<i>Hallelujah</i>\n\n2099\n04:01:51,043 --> 04:01:54,713\n<i>Hallelujah</i>\n\n2100\n04:01:56,506 --> 04:01:58,759\n<i>Hallelujah</i>\n\n2101\n04:02:00,218 --> 04:02:07,184\n<i>Hallelujah</i>\n\n"
  },
  {
    "path": "2021/3-21-subtitle-rejust/调整后.srt",
    "content": "1\n00:00:50,030 --> 00:00:53,540\n时代华纳旗下\n\n2\n00:00:56,140 --> 00:01:05,640\nACCESS 集团\n\n3\n00:01:59,640 --> 00:02:03,640\n华纳兄弟影业 出品\n\n4\n00:02:05,640 --> 00:02:09,740\n联合出品\n及 沙丘娱乐\nACCESS集团\n\n5\n00:02:49,540 --> 00:02:53,640\n亚特拉斯娱乐 /\nSTONE QUARRY 出品\n\n6\n00:02:56,740 --> 00:03:00,680\n扎克·施奈德 影业\n\n7\n00:03:07,810 --> 00:03:11,830\n扎克·施奈德版\n正义联盟\n\n8\n00:06:45,080 --> 00:06:46,590\n向女王警示\n\n9\n00:09:32,430 --> 00:09:36,710\n第一章\n\n10\n00:09:34,010 --> 00:09:36,710\n“别指望了，蝙蝠侠”\n\n11\n00:09:37,260 --> 00:09:40,130\n布鲁斯·韦恩\n\n12\n00:09:40,300 --> 00:09:41,930\n布鲁斯·韦恩\n\n13\n00:09:43,420 --> 00:09:46,190\n直升机因暴风雨已六天无法降落\n\n14\n00:09:46,590 --> 00:09:47,480\n他是从哪来的\n\n15\n00:09:47,850 --> 00:09:49,480\n他说他爬山过来的\n\n16\n00:09:49,890 --> 00:09:50,980\n不可能\n\n17\n00:09:59,950 --> 00:10:01,360\n有话快说\n\n18\n00:10:02,700 --> 00:10:07,200\n有个陌生人从大海来到这村庄\n\n19\n00:10:07,370 --> 00:10:10,120\n在村民饥寒交迫的严冬到来\n\n20\n00:10:10,290 --> 00:10:12,500\n并带来渔获\n\n21\n00:10:12,670 --> 00:10:14,290\n他乘着大潮而来\n\n22\n00:10:14,460 --> 00:10:15,710\n昨晚的大潮\n\n23\n00:10:22,260 --> 00:10:24,550\n你也亲眼看见\n\n24\n00:10:24,720 --> 00:10:26,470\n渔港结冰\n\n25\n00:10:26,640 --> 00:10:28,640\n四个月没有船只进港\n\n26\n00:10:29,810 --> 00:10:33,850\n这个陌生人不是乘船而来\n\n27\n00:10:40,820 --> 00:10:44,450\n来自远方的敌人即将来袭\n\n28\n00:10:45,740 --> 00:10:47,410\n我需要战士\n\n29\n00:10:47,580 --> 00:10:51,120\n对付这个陌生人 还有像他的其他人\n\n30\n00:10:51,290 --> 00:10:54,790\n我要成立一个捍卫地球的联盟\n\n31\n00:10:55,710 --> 00:10:58,630\n我必须见到这个人\n\n32\n00:10:59,800 --> 00:11:02,090\n如果真有这个人\n\n33\n00:11:02,260 --> 00:11:04,340\n他会把你的话传给他\n\n34\n00:11:04,510 --> 00:11:05,720\n五千美元\n\n35\n00:11:05,890 --> 00:11:10,350\n我给你两万五 让我和他说话 到外面说去\n\n36\n00:11:22,690 --> 00:11:27,070\n这只狗竟敢把我们当成小孩子\n\n37\n00:11:27,910 --> 00:11:31,540\n什么来自大海的神奇人物\n\n38\n00:11:31,700 --> 00:11:34,410\n我们很穷 但并不蠢\n\n39\n00:11:34,710 --> 00:11:36,420\n滚出去\n\n40\n00:11:37,540 --> 00:11:38,790\n抱歉\n\n41\n00:11:39,210 --> 00:11:40,750\n办不到\n\n42\n00:11:41,000 --> 00:11:43,130\n我们说完话我就走\n\n43\n00:11:47,930 --> 00:11:49,350\n他叫你\"滚出去\"\n\n44\n00:11:50,120 --> 00:11:52,330\n办不到\n\n45\n00:12:08,370 --> 00:12:10,240\n亚瑟·库瑞\n\n46\n00:12:10,410 --> 00:12:13,160\n也被称为大海保护者\n\n47\n00:12:13,870 --> 00:12:15,500\n海王\n\n48\n00:12:21,210 --> 00:12:22,920\n让我搞清楚\n\n49\n00:12:23,090 --> 00:12:26,590\n你打扮成蝙蝠真正的蝙蝠\n\n50\n00:12:26,760 --> 00:12:28,430\n我在哥谭市打拼了20年\n\n51\n00:12:28,590 --> 00:12:30,430\n那个鸟地方\n\n52\n00:12:30,600 --> 00:12:32,390\n决战时刻 我们会需要你\n\n53\n00:12:32,560 --> 00:12:34,310\n-别指望了 蝙蝠侠 -为什么\n\n54\n00:12:35,230 --> 00:12:37,060\n我不喜欢你跑来挖我的隐私\n\n55\n00:12:37,230 --> 00:12:39,770\n干涉我的生活 我只想独自一个人\n\n56\n00:12:39,940 --> 00:12:40,940\n所以你才这么做\n\n57\n00:12:41,110 --> 00:12:43,190\n在这鸟不生蛋的地方帮助这些人\n\n58\n00:12:43,360 --> 00:12:46,820\n我读过你的故事 你以为没人知道你的善行\n\n59\n00:12:46,990 --> 00:12:48,450\n你会加入我们\n\n60\n00:12:48,610 --> 00:12:50,320\n\"强者是孤独的\"\n\n61\n00:12:50,490 --> 00:12:51,740\n没听过这句话吗\n\n62\n00:12:52,200 --> 00:12:53,580\n你听过超人吗\n\n63\n00:12:53,740 --> 00:12:55,290\n他和我并肩作战时死去\n\n64\n00:12:56,660 --> 00:12:58,040\n这正是我的意思\n\n65\n00:12:58,210 --> 00:13:01,630\n他相信团结力量大 这是我们欠他的\n\n66\n00:13:02,250 --> 00:13:04,500\n我谁也不欠\n\n67\n00:13:12,180 --> 00:13:14,060\n打扮成一只蝙蝠\n\n68\n00:13:14,930 --> 00:13:16,770\n你疯了 布鲁斯·韦恩\n\n69\n00:14:45,310 --> 00:14:46,520\n过去 小灰\n\n70\n00:15:03,330 --> 00:15:08,340\n克拉克·乔瑟夫·肯特\n\n71\n00:15:18,320 --> 00:15:22,730\n法拍屋出售\n\n72\n00:15:42,450 --> 00:15:45,500\n天啊 韦恩少爷 这里好冷\n\n73\n00:15:45,670 --> 00:15:50,000\n也许我们可以赶上下一波牙买加的大潮\n\n74\n00:15:50,170 --> 00:15:52,420\n也许斐济一 两个超人类\n\n75\n00:15:52,590 --> 00:15:54,220\n哥斯达黎加天气也不错\n\n76\n00:15:54,380 --> 00:15:55,800\n我找到他了\n\n77\n00:15:58,680 --> 00:16:00,140\n他拒绝了\n\n78\n00:16:01,140 --> 00:16:03,230\n你连一个新兵都没招到\n\n79\n00:16:05,690 --> 00:16:08,440\n也许一个成天窝在洞穴的人\n\n80\n00:16:08,610 --> 00:16:12,110\n不适合当招募者\n\n81\n00:16:31,800 --> 00:16:33,550\n十块钱\n\n82\n00:16:53,860 --> 00:16:57,740\n星球日报 每日报导星球事务\n\n83\n00:17:01,330 --> 00:17:02,740\n曼哈顿银行诚征建筑师\n\n84\n00:17:03,500 --> 00:17:06,120\n大都会警局\n\n85\n00:17:11,750 --> 00:17:12,710\n早安 莱恩小姐\n\n86\n00:17:12,880 --> 00:17:14,170\n你好 杰瑞\n\n87\n00:17:17,090 --> 00:17:18,340\n你每天都来 对吧\n\n88\n00:17:19,800 --> 00:17:21,760\n我喜欢这里\n\n89\n00:19:07,580 --> 00:19:08,580\n站住\n\n90\n00:19:10,080 --> 00:19:11,080\n快上\n\n91\n00:19:21,840 --> 00:19:23,260\n快走 快走\n\n92\n00:19:29,560 --> 00:19:31,640\n-别开枪 -快走\n\n93\n00:19:32,310 --> 00:19:33,810\n给我过去\n\n94\n00:19:47,990 --> 00:19:49,950\n让他们靠墙站好\n\n95\n00:19:50,120 --> 00:19:51,660\n叫他们闭嘴\n\n96\n00:19:53,000 --> 00:19:55,290\n-安静 -闭嘴\n\n97\n00:19:55,460 --> 00:19:56,830\n叫他们闭嘴\n\n98\n00:19:59,960 --> 00:20:02,460\n我们很快就会发表声明\n\n99\n00:20:02,630 --> 00:20:04,470\n在那之前 谁敢乱来\n\n100\n00:20:04,630 --> 00:20:06,590\n就会害死一大堆小孩\n\n101\n00:20:21,650 --> 00:20:23,190\n要射杀他吗\n\n102\n00:20:23,360 --> 00:20:24,950\n别开枪\n\n103\n00:20:26,530 --> 00:20:27,570\n里面有小孩\n\n104\n00:20:29,530 --> 00:20:31,280\n他不是虚张声势 长官\n\n105\n00:20:31,450 --> 00:20:33,660\n圣布丽姬中学今天有校外教学\n\n106\n00:20:57,690 --> 00:20:58,520\n安静\n\n107\n00:20:58,690 --> 00:20:59,560\n闭嘴\n\n108\n00:21:04,650 --> 00:21:06,950\n让现代世界崩塌\n\n109\n00:21:07,110 --> 00:21:08,660\n回到黑暗时代\n\n110\n00:21:14,080 --> 00:21:15,160\n闭嘴\n\n111\n00:21:17,120 --> 00:21:19,790\n我叫你们闭嘴\n\n112\n00:21:33,970 --> 00:21:35,640\n你是谁\n\n113\n00:21:35,810 --> 00:21:38,640\n真言套索会迫使你说实话\n\n114\n00:21:39,390 --> 00:21:40,940\n你们是什么人\n\n115\n00:21:41,560 --> 00:21:44,570\n我们是一群反动恐怖份子\n\n116\n00:21:44,730 --> 00:21:46,360\n要让欧洲倒退到…\n\n117\n00:21:46,530 --> 00:21:48,780\n-一千年前 -无聊 为何挟持人质\n\n118\n00:21:48,950 --> 00:21:50,530\n我们没有任何要求\n\n119\n00:21:50,700 --> 00:21:52,200\n只是在动手之前拖延警察\n\n120\n00:21:52,450 --> 00:21:53,780\n你们想做什么\n\n121\n00:21:54,530 --> 00:21:58,120\n你太迟了 已经开始倒数计时\n\n122\n00:21:58,290 --> 00:22:01,750\n再过几分钟 四个街区…\n\n123\n00:22:02,880 --> 00:22:05,090\n全世界都会看到\n\n124\n00:23:45,690 --> 00:23:46,520\n不\n\n125\n00:23:46,690 --> 00:23:48,730\n就像屠宰场里的羔羊\n\n126\n00:24:38,110 --> 00:24:39,200\n我不敢相信\n\n127\n00:24:39,740 --> 00:24:40,660\n相信吧\n\n128\n00:25:16,320 --> 00:25:19,070\n大家没事吧你没事吧\n\n129\n00:25:19,320 --> 00:25:21,320\n很好 没事了\n\n130\n00:25:21,660 --> 00:25:23,740\n没事了 你们可以站起来了\n\n131\n00:25:23,910 --> 00:25:25,000\n一切都没事\n\n132\n00:25:25,370 --> 00:25:26,790\n结束了 你还好吧\n\n133\n00:25:27,330 --> 00:25:29,460\n-没事吧 -很好\n\n134\n00:25:35,130 --> 00:25:36,420\n你没事吧 公主\n\n135\n00:25:39,890 --> 00:25:41,680\n我有一天能像你一样吗\n\n136\n00:25:43,850 --> 00:25:46,430\n你想成为什么样的人都可以\n\n137\n00:25:48,350 --> 00:25:50,730\n来吧 走吧\n\n138\n00:26:33,520 --> 00:26:34,730\n今天有任何变化吗\n\n139\n00:26:34,900 --> 00:26:36,360\n没有 女王\n\n140\n00:26:38,070 --> 00:26:39,690\n母盒苏醒了\n\n141\n00:26:40,150 --> 00:26:42,030\n但什么也没发生\n\n142\n00:26:43,240 --> 00:26:45,280\n它从始纪元…\n\n143\n00:26:45,450 --> 00:26:47,410\n就沉睡了数千年\n\n144\n00:26:47,580 --> 00:26:48,910\n现在为何苏醒\n\n145\n00:26:56,800 --> 00:26:59,970\n这是它出现裂缝后第一次静下来\n\n146\n00:27:00,130 --> 00:27:02,800\n也许它又继续沉睡\n\n147\n00:27:06,890 --> 00:27:08,600\n邪恶永不沉睡\n\n148\n00:27:09,520 --> 00:27:10,930\n只会伺机而待\n\n149\n00:27:12,940 --> 00:27:14,900\n有什么要来了\n\n150\n00:27:20,150 --> 00:27:21,650\n准备迎敌\n\n151\n00:27:47,140 --> 00:27:49,510\n亚马逊女战士 各就各位\n\n152\n00:27:49,890 --> 00:27:51,180\n预备\n\n153\n00:28:16,420 --> 00:28:18,420\n守护者\n\n154\n00:28:20,090 --> 00:28:24,340\n他们无法保护十万个世界\n\n155\n00:28:24,840 --> 00:28:26,340\n永远都会失败\n\n156\n00:28:28,300 --> 00:28:32,970\n我是来让你们见识伟大的黑暗\n\n157\n00:28:33,140 --> 00:28:36,060\n我将沉浸在你们的恐惧中\n\n158\n00:28:37,560 --> 00:28:40,020\n天堂岛的女儿\n\n159\n00:28:41,360 --> 00:28:42,940\n让他看到你们的恐惧\n\n160\n00:28:43,110 --> 00:28:45,530\n我们无畏无惧\n\n161\n00:29:04,800 --> 00:29:06,420\n召集军团\n\n162\n00:29:07,340 --> 00:29:08,510\n跟她去\n\n163\n00:29:08,680 --> 00:29:09,800\n你必须封住山洞\n\n164\n00:29:09,970 --> 00:29:10,800\n快去\n\n165\n00:29:11,260 --> 00:29:12,390\n菲莉普斯\n\n166\n00:29:39,120 --> 00:29:40,210\n不\n\n167\n00:30:01,310 --> 00:30:02,480\n伊琵欧妮\n\n168\n00:30:04,400 --> 00:30:06,490\n让我们光荣战死 这是对的\n\n169\n00:30:09,450 --> 00:30:10,780\n封住大门\n\n170\n00:30:16,040 --> 00:30:18,660\n拿起大锤\n\n171\n00:30:30,880 --> 00:30:32,680\n快封住它\n\n172\n00:32:07,400 --> 00:32:09,070\n用生命守护它\n\n173\n00:32:09,230 --> 00:32:11,030\n-遵命 我的女王 -让它保持移动\n\n174\n00:34:57,070 --> 00:34:58,610\n拿到了 快走\n\n175\n00:35:21,510 --> 00:35:25,720\n高贵的女王 你为何抗拒\n\n176\n00:35:28,770 --> 00:35:30,520\n你救不了她\n\n177\n00:35:30,680 --> 00:35:33,140\n你救不了任何人\n\n178\n00:35:36,650 --> 00:35:40,070\n伟大的黑暗即将降临\n\n179\n00:35:40,860 --> 00:35:42,200\n亚马逊女战士\n\n180\n00:35:52,790 --> 00:35:55,460\n是的 我们会找到其他的\n\n181\n00:35:57,340 --> 00:35:58,670\n拉弓\n\n182\n00:36:02,010 --> 00:36:03,510\n放箭\n\n183\n00:37:01,230 --> 00:37:03,320\n他回到了他的宇宙\n\n184\n00:37:03,490 --> 00:37:04,320\n不\n\n185\n00:37:06,910 --> 00:37:09,280\n他去了人类的世界\n\n186\n00:37:09,450 --> 00:37:11,580\n寻找另外两个母盒\n\n187\n00:37:12,790 --> 00:37:15,120\n我们必须点燃古老的警示烽火\n\n188\n00:37:16,000 --> 00:37:19,460\n烽火五千年未曾燃烧\n\n189\n00:37:19,630 --> 00:37:21,170\n人类不会知道它的意义\n\n190\n00:37:22,000 --> 00:37:23,380\n人类不会知道\n\n191\n00:37:25,130 --> 00:37:26,550\n她会知道\n\n192\n00:37:32,210 --> 00:37:37,490\n第二章\n\n193\n00:37:34,850 --> 00:37:37,490\n英雄时代\n\n194\n00:37:57,290 --> 00:37:59,920\n这里是有毒的\n\n195\n00:38:00,080 --> 00:38:01,790\n很好\n\n196\n00:38:22,730 --> 00:38:23,940\n去吧\n\n197\n00:38:24,110 --> 00:38:26,110\n跟着母盒的气味\n\n198\n00:38:26,280 --> 00:38:27,820\n找到另外两个\n\n199\n00:38:27,990 --> 00:38:31,870\n一旦找到它们 就能形成三位一体\n\n200\n00:38:32,030 --> 00:38:34,780\n这个世界将加入其他世界\n\n201\n00:38:36,700 --> 00:38:38,710\n他会很高兴\n\n202\n00:38:38,870 --> 00:38:41,790\n再次看到我的价值\n\n203\n00:38:46,380 --> 00:38:48,970\n有酒类专卖店那小鬼的消息吗\n\n204\n00:38:49,130 --> 00:38:50,550\n可能有\n\n205\n00:38:51,340 --> 00:38:52,510\n\"可能有\"\n\n206\n00:38:53,720 --> 00:38:56,260\n每听一次这句话\n\n207\n00:38:56,430 --> 00:38:59,060\n就会让我更受不了你\n\n208\n00:39:02,020 --> 00:39:04,730\n脸部辨识可能找到匹配\n\n209\n00:39:04,900 --> 00:39:06,730\n搞消失的那小子\n\n210\n00:39:07,360 --> 00:39:12,070\n中城的巴里·艾伦先生\n\n211\n00:39:12,240 --> 00:39:15,160\n也许又是误判 你得给我多点时间\n\n212\n00:39:15,330 --> 00:39:17,540\n-才能确认 -我们没有时间了\n\n213\n00:39:19,250 --> 00:39:21,000\n韦恩少爷\n\n214\n00:39:21,160 --> 00:39:24,670\n你一直在拼命地创建这个团队\n\n215\n00:39:24,840 --> 00:39:26,670\n但却找不到任何队友\n\n216\n00:39:26,840 --> 00:39:28,960\n我找到一个 是两个 包括戴安娜\n\n217\n00:39:29,130 --> 00:39:33,090\n就因为莱克斯·卢瑟说 地球会受到攻击\n\n218\n00:39:33,260 --> 00:39:35,260\n这跟莱克斯·卢瑟无关\n\n219\n00:39:35,430 --> 00:39:36,640\n这跟他有关\n\n220\n00:39:36,930 --> 00:39:40,230\n我在他的坟上向他承诺\n\n221\n00:39:41,100 --> 00:39:44,230\n我花了很多时间试图造成分裂\n\n222\n00:39:44,400 --> 00:39:47,190\n现在必须团结一心才能拯救地球\n\n223\n00:39:47,980 --> 00:39:50,570\n卢瑟的警告已经过了一段时间\n\n224\n00:39:50,820 --> 00:39:53,950\n没有攻击 没有野蛮人冲进大门\n\n225\n00:39:55,200 --> 00:39:57,830\n也许这些野蛮人不走大门\n\n226\n00:39:58,700 --> 00:40:00,370\n也许他们已经来了\n\n227\n00:40:04,370 --> 00:40:06,130\n继续找 还有什么线索\n\n228\n00:40:45,120 --> 00:40:46,670\n实验室是你的了 霍华德\n\n229\n00:40:46,830 --> 00:40:48,420\n11点半\n\n230\n00:40:48,590 --> 00:40:49,920\n今晚很早嘛 塞拉斯\n\n231\n00:40:50,090 --> 00:40:52,170\n是啊 我提早下班\n\n232\n00:40:52,840 --> 00:40:53,970\n替我向你家人问好\n\n233\n00:41:29,330 --> 00:41:30,920\n搞什么…\n\n234\n00:41:34,840 --> 00:41:36,010\n天啊\n\n235\n00:42:49,250 --> 00:42:51,080\n阿提密斯之箭\n\n236\n00:42:52,170 --> 00:42:54,710\n它将射到人类世界\n\n237\n00:43:04,350 --> 00:43:05,640\n天空火炬\n\n238\n00:43:05,810 --> 00:43:07,350\n英雄烽火\n\n239\n00:43:07,520 --> 00:43:09,230\n驱散黑暗\n\n240\n00:43:09,390 --> 00:43:12,650\n如昔日一般熊熊燃烧\n\n241\n00:43:14,230 --> 00:43:17,690\n让她看到历史曙光出现之前的黑暗\n\n242\n00:43:18,190 --> 00:43:21,780\n警告我女儿战争已经来临\n\n243\n00:43:23,160 --> 00:43:24,870\n并且保护她\n\n244\n00:43:49,600 --> 00:43:51,890\n回到我身边 戴安娜\n\n245\n00:44:30,520 --> 00:44:33,140\n你这周末做什么了 戴安娜\n\n246\n00:44:33,480 --> 00:44:35,810\n没做什么特别的\n\n247\n00:44:36,810 --> 00:44:38,900\n你每次都这么说\n\n248\n00:44:39,520 --> 00:44:42,030\n没办法 我的生活很无趣\n\n249\n00:44:42,190 --> 00:44:45,660\n你一走出去就好像消失一样\n\n250\n00:44:50,540 --> 00:44:51,540\n又来了\n\n251\n00:44:51,700 --> 00:44:53,580\n-什么事 -又怎么了\n\n252\n00:44:53,960 --> 00:44:57,080\n预算缩减 盗墓者\n\n253\n00:44:57,250 --> 00:44:59,750\n现在又加了一条\"纵火者\"\n\n254\n00:45:01,630 --> 00:45:04,260\n记者在克里特岛连线报导\n\n255\n00:45:04,420 --> 00:45:08,970\n我身后的大篝火熊熊燃烧\n\n256\n00:45:09,140 --> 00:45:11,260\n大火燃烧了一整晚\n\n257\n00:45:11,430 --> 00:45:15,230\n现在已经是早上 我们至少在八公里以外\n\n258\n00:45:15,390 --> 00:45:18,730\n但还是能看到它在燃烧\n\n259\n00:45:18,900 --> 00:45:21,940\n当地居民和政府当局都感到诧异\n\n260\n00:45:22,110 --> 00:45:26,610\n这座历史遗迹亚马逊神殿居然起火\n\n261\n00:45:26,780 --> 00:45:28,280\n-当地居民和政府当局… -敌人入侵\n\n262\n00:45:28,450 --> 00:45:30,740\n…不知道火势起因\n\n263\n00:45:39,880 --> 00:45:40,920\n瑞恩\n\n264\n00:45:41,090 --> 00:45:42,460\n-你好 博士 -那个…\n\n265\n00:45:42,630 --> 00:45:44,460\n电子激光没有损坏\n\n266\n00:45:44,760 --> 00:45:46,800\n-塞拉斯·斯通博士 -是的\n\n267\n00:45:46,970 --> 00:45:48,050\n-蔡瑞恩 -是的\n\n268\n00:45:49,510 --> 00:45:51,260\n这是谁干的 他们有没有偷走什么\n\n269\n00:45:51,430 --> 00:45:53,470\n-他们偷走了一切 -那个呢\n\n270\n00:45:53,640 --> 00:45:56,060\n那没被偷走 对吧 斯通博士\n\n271\n00:45:57,020 --> 00:45:59,350\n对 那之前就被移走了\n\n272\n00:45:59,940 --> 00:46:03,780\n6-1-9-8-2号物件 国防部档案馆\n\n273\n00:46:04,820 --> 00:46:05,740\n那是什么\n\n274\n00:46:06,150 --> 00:46:07,070\n我也不知道\n\n275\n00:46:07,240 --> 00:46:08,160\n你不知道\n\n276\n00:46:08,320 --> 00:46:10,570\n没错 所以我才在研究它\n\n277\n00:46:10,740 --> 00:46:12,240\n你是什么官阶\n\n278\n00:46:12,660 --> 00:46:14,660\n瑞恩 麻烦你了\n\n279\n00:46:14,830 --> 00:46:16,160\n-没问题 -谢了\n\n280\n00:46:16,330 --> 00:46:17,160\n平民\n\n281\n00:46:17,500 --> 00:46:20,210\n星辰实验室是私人承包商 我们为国防部工作\n\n282\n00:46:20,380 --> 00:46:22,960\n为他们提供异常科学的建议\n\n283\n00:46:23,500 --> 00:46:24,340\n\"异常科学\"\n\n284\n00:46:25,010 --> 00:46:26,840\n外星科技\n\n285\n00:46:33,930 --> 00:46:36,020\n比如说\n\n286\n00:46:36,180 --> 00:46:37,730\n超人飞船\n\n287\n00:46:46,230 --> 00:46:48,950\n昨晚有八个人没离开实验室\n\n288\n00:46:49,320 --> 00:46:52,370\n清洁工 警卫和几名研究科学家\n\n289\n00:46:52,820 --> 00:46:53,740\n他们被绑架了\n\n290\n00:46:55,120 --> 00:46:56,120\n你确定\n\n291\n00:46:56,290 --> 00:46:58,830\n有位目击证人 他逃过一劫\n\n292\n00:46:59,000 --> 00:47:02,130\n他正在隔离区协助绘制嫌犯肖像画\n\n293\n00:47:05,130 --> 00:47:09,470\n知道那会是谁或是什么东西吗\n\n294\n00:47:29,610 --> 00:47:31,660\n母盒在这里不安全\n\n295\n00:47:34,160 --> 00:47:35,620\n维克多\n\n296\n00:47:35,830 --> 00:47:38,080\n他们闯进实验室找它\n\n297\n00:47:38,250 --> 00:47:42,670\n有些人被某种怪物抓走\n\n298\n00:47:45,420 --> 00:47:47,380\n你对怪物很了解…\n\n299\n00:47:48,000 --> 00:47:49,420\n对吧\n\n300\n00:47:55,800 --> 00:47:57,930\n尤其是怎么制造它们\n\n301\n00:50:58,530 --> 00:51:02,160\n求救…求救…\n\n302\n00:51:02,950 --> 00:51:06,040\n船身受损 我快沉下去了\n\n303\n00:51:12,380 --> 00:51:14,340\n求救\n\n304\n00:51:14,540 --> 00:51:16,590\n有人吗\n\n305\n00:51:56,920 --> 00:51:58,260\n威士忌\n\n306\n00:52:07,350 --> 00:52:09,930\n下次叫他要敬畏暴风雨\n\n307\n00:52:19,280 --> 00:52:20,110\n他请客\n\n308\n00:54:48,340 --> 00:54:50,430\n本应是国王的男人\n\n309\n00:54:50,590 --> 00:54:53,760\n人类父亲和海洋女王的儿子\n\n310\n00:54:54,640 --> 00:54:56,390\n我浪费了多少时间\n\n311\n00:54:56,560 --> 00:54:59,600\n试图遵守我向你母亲做的承诺\n\n312\n00:55:01,730 --> 00:55:02,940\n说完了吗 老头\n\n313\n00:55:03,110 --> 00:55:05,570\n虽然你居无定所\n\n314\n00:55:05,730 --> 00:55:08,490\n但还是一直回来这里\n\n315\n00:55:10,450 --> 00:55:12,410\n我喜欢这里 很安静\n\n316\n00:55:12,570 --> 00:55:14,370\n这是你继承的王国\n\n317\n00:55:14,530 --> 00:55:16,660\n你应当是亚特兰蒂斯国王\n\n318\n00:55:17,790 --> 00:55:18,910\n我们的同胞受苦受难\n\n319\n00:55:19,080 --> 00:55:21,040\n你的同胞\n\n320\n00:55:21,210 --> 00:55:24,750\n一个卑鄙残忍 迷信无知的种族\n\n321\n00:55:24,920 --> 00:55:26,130\n地表有什么不同吗\n\n322\n00:55:27,210 --> 00:55:29,260\n没人说我是地表之王\n\n323\n00:55:30,340 --> 00:55:32,050\n你想要什么 维科\n\n324\n00:55:32,640 --> 00:55:35,510\n要塞附近的守卫不断消失不见\n\n325\n00:55:35,680 --> 00:55:37,100\n来自天上的掠夺者\n\n326\n00:55:37,270 --> 00:55:38,480\n去跟欧姆国王说啊\n\n327\n00:55:38,640 --> 00:55:40,060\n-你弟弟 -表弟\n\n328\n00:55:40,230 --> 00:55:43,230\n他想煽动和陆地人类的战争\n\n329\n00:55:43,610 --> 00:55:45,020\n他说谎\n\n330\n00:55:46,480 --> 00:55:50,490\n掠夺者来自黑暗之境 他们在寻找它\n\n331\n00:55:51,320 --> 00:55:54,660\n我们守护的母盒并不安全\n\n332\n00:55:55,660 --> 00:55:59,660\n前往亚特兰蒂斯要塞 保护母盒\n\n333\n00:56:00,660 --> 00:56:01,870\n时候到了\n\n334\n00:56:04,000 --> 00:56:06,000\n把你母亲的三叉戟拿去\n\n335\n00:56:17,180 --> 00:56:20,850\n你不能永远弃世界而不顾 亚瑟\n\n336\n00:56:21,770 --> 00:56:24,860\n不管是地表或海底\n\n337\n00:56:53,970 --> 00:56:55,550\n狄萨德\n\n338\n00:56:55,720 --> 00:56:59,680\n狄萨德 我呼叫你\n\n339\n00:57:08,730 --> 00:57:12,900\n荒原狼 你开始征服这世界了吗\n\n340\n00:57:14,030 --> 00:57:16,410\n这个世界是分裂的\n\n341\n00:57:17,200 --> 00:57:18,700\n他们是原始物种\n\n342\n00:57:18,870 --> 00:57:21,200\n未进化并与彼此战争\n\n343\n00:57:21,370 --> 00:57:24,210\n歧见太深无法团结一心\n\n344\n00:57:24,370 --> 00:57:28,630\n必须像其他的世界一样 剥夺他们的自由意志\n\n345\n00:57:28,790 --> 00:57:32,920\n并以服膺他的光荣信念…\n\n346\n00:57:33,090 --> 00:57:34,800\n获得赦免\n\n347\n00:57:35,590 --> 00:57:37,510\n母盒呢\n\n348\n00:57:38,090 --> 00:57:41,010\n我找到其中一个\n\n349\n00:57:41,180 --> 00:57:43,640\n苏醒后呼唤我的那一个\n\n350\n00:57:43,810 --> 00:57:45,310\n另外两个仍然沉睡\n\n351\n00:57:45,480 --> 00:57:49,310\n但天启魔感应到它们\n\n352\n00:57:49,480 --> 00:57:50,940\n它们飞来飞去\n\n353\n00:57:51,110 --> 00:57:54,690\n到处搜索 并抓走带有母盒气味的囚犯\n\n354\n00:57:54,860 --> 00:57:59,780\n我则以他之名创建一座要塞\n\n355\n00:58:00,330 --> 00:58:02,200\n很好\n\n356\n00:58:03,290 --> 00:58:05,960\n强大的荒原狼\n\n357\n00:58:07,460 --> 00:58:11,840\n你本来可以与伟大的他平起平坐\n\n358\n00:58:13,760 --> 00:58:18,340\n但却因自大而被放逐\n\n359\n00:58:19,510 --> 00:58:20,890\n狄萨德\n\n360\n00:58:21,970 --> 00:58:24,350\n我跪倒在你面前\n\n361\n00:58:25,100 --> 00:58:26,890\n让我向他求情\n\n362\n00:58:27,060 --> 00:58:28,980\n当我以他之名夺下这世界\n\n363\n00:58:29,150 --> 00:58:31,940\n能否请他让我回家\n\n364\n00:58:32,110 --> 00:58:34,530\n你背叛了他\n\n365\n00:58:35,940 --> 00:58:37,450\n你自己的家人\n\n366\n00:58:37,610 --> 00:58:39,820\n我看到我犯的错误\n\n367\n00:58:39,990 --> 00:58:42,580\n我屠杀企图争夺他王位的人\n\n368\n00:58:42,740 --> 00:58:47,870\n你还欠他五万个世界\n\n369\n00:58:48,960 --> 00:58:50,790\n当你还清了债\n\n370\n00:58:51,250 --> 00:58:53,500\n他就会聆听你的恳求\n\n371\n00:58:56,420 --> 00:58:59,470\n母盒将被寻获并合而为一\n\n372\n00:59:00,430 --> 00:59:02,550\n这里没有保护者\n\n373\n00:59:02,720 --> 00:59:06,140\n没有绿光战警 没有氪星人\n\n374\n00:59:06,310 --> 00:59:09,940\n这世界将会像其他的一样沦陷\n\n375\n00:59:10,980 --> 00:59:12,730\n为了达克赛德\n\n376\n00:59:15,940 --> 00:59:18,150\n为了达克赛德\n\n377\n00:59:39,420 --> 00:59:43,010\n我花了几百万元安装保全系统\n\n378\n00:59:43,180 --> 00:59:44,470\n钱花得很值得\n\n379\n00:59:44,970 --> 00:59:47,350\n我几乎花了一分钟才解除\n\n380\n00:59:48,890 --> 00:59:50,230\n你好\n\n381\n00:59:52,060 --> 00:59:52,900\n新玩具\n\n382\n00:59:53,810 --> 00:59:55,980\n原型军队运输机\n\n383\n00:59:58,280 --> 01:00:01,320\n我曾相识的一个人会很想开开看\n\n384\n01:00:01,950 --> 01:00:04,910\n韦恩航天最顶尖的人才 都无法让它飞起来\n\n385\n01:00:05,990 --> 01:00:07,580\n但是你能\n\n386\n01:00:07,740 --> 01:00:09,410\n我别无选择\n\n387\n01:00:09,580 --> 01:00:12,330\n我需要更远的航程和更大的货舱\n\n388\n01:00:12,500 --> 01:00:14,080\n我认为一场攻击即将来袭\n\n389\n01:00:14,500 --> 01:00:16,250\n你错了 布鲁斯\n\n390\n01:00:17,050 --> 01:00:19,010\n它已经来袭了\n\n391\n01:00:19,800 --> 01:00:24,340\n据我所知 他们来自另一个宇宙\n\n392\n01:00:24,510 --> 01:00:26,850\n为一个黑暗力量效忠\n\n393\n01:00:27,010 --> 01:00:28,720\n一个古老的力量\n\n394\n01:00:28,890 --> 01:00:30,310\n他们想要什么\n\n395\n01:00:31,140 --> 01:00:33,480\n入侵地球 征服世界\n\n396\n01:00:34,600 --> 01:00:38,860\n他们很久以前曾经来过\n\n397\n01:00:43,990 --> 01:00:46,410\n一支庞大的舰队出现在天空\n\n398\n01:00:46,580 --> 01:00:49,200\n消灭所有胆敢反抗的势力\n\n399\n01:00:49,370 --> 01:00:53,460\n入侵者的首领是达克赛德\n\n400\n01:00:53,620 --> 01:00:57,880\n这名字在每个宇宙都受到诅咒和畏惧\n\n401\n01:00:58,750 --> 01:01:02,590\n地球的守护者 和达克赛德展开一场大战\n\n402\n01:01:02,760 --> 01:01:05,260\n旧神族 人类\n\n403\n01:01:05,840 --> 01:01:08,970\n被迫迁至海底之前的亚特兰蒂斯族\n\n404\n01:01:11,310 --> 01:01:15,270\n遭背叛及被困禁之前的亚马逊族\n\n405\n01:01:15,440 --> 01:01:17,810\n以及来自星空的守护者\n\n406\n01:01:17,980 --> 01:01:21,570\n他们的历史教导他们 不能相信彼此\n\n407\n01:01:21,740 --> 01:01:23,900\n不能奢望创建联盟\n\n408\n01:01:24,070 --> 01:01:26,070\n而是各自奋战\n\n409\n01:02:15,120 --> 01:02:17,830\n当达克赛德在地球发动战争\n\n410\n01:02:18,000 --> 01:02:19,420\n他发现一个秘密\n\n411\n01:02:19,580 --> 01:02:23,340\n隐藏在无垠太空的一股力量\n\n412\n01:02:23,510 --> 01:02:25,010\n他召唤暗黑秘士\n\n413\n01:02:25,170 --> 01:02:28,300\n他们崇拜并控制三个物体\n\n414\n01:02:28,470 --> 01:02:29,510\n母盒\n\n415\n01:02:29,850 --> 01:02:31,260\n等等\n\n416\n01:02:31,430 --> 01:02:32,430\n\"母盒\"\n\n417\n01:02:32,600 --> 01:02:35,140\n坚不可摧 活生生的机器\n\n418\n01:02:35,850 --> 01:02:40,770\n使用先进无比的科技打造 看起来简直就像巫术\n\n419\n01:02:40,940 --> 01:02:43,570\n若要征服世界 三个母盒必须同步化\n\n420\n01:02:43,730 --> 01:02:46,990\n合而为一后形成三位一体\n\n421\n01:02:47,150 --> 01:02:50,200\n三位一体以烈火净化星球\n\n422\n01:02:50,370 --> 01:02:53,950\n将它转换成另一个敌人世界\n\n423\n01:02:54,120 --> 01:02:57,620\n幸存者都成为达克赛德的仆役\n\n424\n01:02:57,790 --> 01:03:00,710\n活着 但毫无生机\n\n425\n01:03:00,920 --> 01:03:02,250\n天启魔\n\n426\n01:03:03,460 --> 01:03:05,550\n亚马逊女战士\n\n427\n01:03:11,430 --> 01:03:13,140\n冲啊\n\n428\n01:03:42,460 --> 01:03:44,960\n但在三位一体同步化之前\n\n429\n01:03:45,130 --> 01:03:48,510\n地球的守护者组成统一阵线展开反击\n\n430\n01:03:49,090 --> 01:03:52,090\n亚马逊人和亚特兰蒂斯人并肩作战\n\n431\n01:03:52,260 --> 01:03:56,770\n宙斯及他儿子阿瑞斯 和来自星空的守护者联手出击\n\n432\n01:03:57,770 --> 01:04:02,440\n一群黄金时代英雄为了捍卫地球 同心协力捍卫了地球的生命\n\n433\n01:05:59,100 --> 01:06:01,890\n他们做到其他世界做不到的事\n\n434\n01:06:02,060 --> 01:06:04,230\n将敌人送回星空\n\n435\n01:06:06,770 --> 01:06:10,020\n三个母盒从未合而为一\n\n436\n01:06:10,610 --> 01:06:13,780\n也从未形成三位一体\n\n437\n01:06:13,940 --> 01:06:16,150\n但在敌人撤退之时\n\n438\n01:06:16,780 --> 01:06:19,910\n母盒被留在地球\n\n439\n01:06:20,080 --> 01:06:23,790\n它们的力量变弱 就像失去主人的恶犬\n\n440\n01:06:25,620 --> 01:06:27,210\n开始沉睡\n\n441\n01:06:27,370 --> 01:06:29,840\n等待他们的回归\n\n442\n01:06:30,000 --> 01:06:32,340\n母盒从敌人的视野中消失\n\n443\n01:06:32,500 --> 01:06:35,670\n隐匿在一兆个世界之中\n\n444\n01:06:52,570 --> 01:06:55,740\n地球的守护者立下誓言\n\n445\n01:06:56,110 --> 01:06:59,360\n人类 亚特兰蒂斯族及亚马逊族\n\n446\n01:06:59,530 --> 01:07:03,410\n根据他们文化的惯例及仪式\n\n447\n01:07:03,580 --> 01:07:07,080\n各自封存并守卫 其中一个沉睡的母盒\n\n448\n01:07:07,250 --> 01:07:11,710\n以防母盒日后再次苏醒 向天启星发出信号\n\n449\n01:07:11,880 --> 01:07:13,630\n呼唤敌人回来并企图征服\n\n450\n01:07:13,800 --> 01:07:17,590\n达克赛德唯一落败而逃的世界\n\n451\n01:08:33,540 --> 01:08:36,210\n有什么唤醒了我的族人守卫的母盒\n\n452\n01:08:36,920 --> 01:08:38,960\n它向暗黑之处呼唤\n\n453\n01:08:39,130 --> 01:08:41,550\n引来达克赛德手下的一名征服者\n\n454\n01:08:42,470 --> 01:08:44,340\n敌人已经来袭\n\n455\n01:08:44,850 --> 01:08:46,510\n如果是真的 他在哪里\n\n456\n01:08:46,680 --> 01:08:48,770\n他会到处寻找另外两个母盒\n\n457\n01:08:48,930 --> 01:08:51,890\n得到三个母盒并准备好之前 他仍在藏匿\n\n458\n01:08:52,060 --> 01:08:55,900\n我们必须准备迎敌 你 我和其他人\n\n459\n01:08:56,650 --> 01:08:59,480\n他们说英雄时代不会再来临\n\n460\n01:08:59,650 --> 01:09:00,900\n会来的\n\n461\n01:09:01,240 --> 01:09:02,950\n必须的\n\n462\n01:09:04,700 --> 01:09:08,200\n其他人 他们在哪里\n\n463\n01:09:13,290 --> 01:09:18,550\n第三章\n\n464\n01:09:14,930 --> 01:09:18,550\n挚爱的母亲，挚爱的儿子\n\n465\n01:09:20,260 --> 01:09:22,130\n冷藏配送\n\n466\n01:09:22,130 --> 01:09:25,840\n中城\n\n467\n01:09:25,840 --> 01:09:29,470\n前方减速\n\n468\n01:09:30,220 --> 01:09:32,890\n我迟到了吗 我大迟到了\n\n469\n01:09:32,260 --> 01:09:34,060\n中城狗狗托儿所\n\n470\n01:09:34,230 --> 01:09:35,350\n你好啊 小家伙\n\n471\n01:09:36,190 --> 01:09:37,020\n不行\n\n472\n01:09:38,110 --> 01:09:39,690\n好吧 晚点见\n\n473\n01:09:40,570 --> 01:09:42,490\n真是拍谢\n\n474\n01:09:42,900 --> 01:09:44,150\n我迟到了\n\n475\n01:09:49,660 --> 01:09:50,700\n-你是… -我…\n\n476\n01:09:50,870 --> 01:09:53,120\n抱歉我大迟到了 不是故意的\n\n477\n01:09:53,290 --> 01:09:54,790\n我是我 我来了 很抱歉迟到了\n\n478\n01:09:54,960 --> 01:09:57,130\n因为公车没来 后来来了\n\n479\n01:09:57,290 --> 01:09:59,590\n不过有个阿婆一直在找硬币\n\n480\n01:09:59,750 --> 01:10:00,880\n五分 一分 五分 一分\n\n481\n01:10:01,050 --> 01:10:02,800\n真是够了 让阿婆上车吧\n\n482\n01:10:02,960 --> 01:10:03,970\n她都107岁了\n\n483\n01:10:04,130 --> 01:10:05,800\n不会再活多久了\n\n484\n01:10:05,970 --> 01:10:07,010\n履历\n\n485\n01:10:07,640 --> 01:10:08,470\n履历\n\n486\n01:10:11,720 --> 01:10:12,810\n拜托\n\n487\n01:10:16,140 --> 01:10:17,230\n拜托\n\n488\n01:10:17,400 --> 01:10:18,940\n那是法文来着\n\n489\n01:10:19,110 --> 01:10:22,150\n\"履历\"是过去分词…\n\n490\n01:10:27,990 --> 01:10:29,070\n这可不妙\n\n491\n01:10:29,530 --> 01:10:32,740\n我的口袋有什么 \"有只吃纸的怪物\"\n\n492\n01:10:41,630 --> 01:10:44,710\n拜托 我们应该是朋友啊\n\n493\n01:10:51,300 --> 01:10:52,310\n好了\n\n494\n01:11:01,310 --> 01:11:03,730\n中城大学 我念刑事司法系\n\n495\n01:11:03,900 --> 01:11:06,150\n你说你有遛狗的经验\n\n496\n01:13:46,610 --> 01:13:48,650\n天啊 希望大家都没事\n\n497\n01:13:48,820 --> 01:13:53,530\n瞧 照顾狗狗遇到事情 我一定会随身携带肉类零食\n\n498\n01:13:53,700 --> 01:13:54,950\n能让狗狗安静下来\n\n499\n01:13:55,110 --> 01:13:56,990\n你永远不知道会发生什么事\n\n500\n01:13:57,160 --> 01:13:58,870\n我是说 天啊\n\n501\n01:13:59,030 --> 01:14:01,580\n是不是星期一开工吗\n\n502\n01:14:39,910 --> 01:14:42,580\n你一定靠近过母盒\n\n503\n01:14:43,790 --> 01:14:45,790\n身上有它的气味\n\n504\n01:14:46,370 --> 01:14:47,620\n它在哪里\n\n505\n01:14:48,040 --> 01:14:50,920\n亚特兰蒂斯族的儿女绝不会告诉你\n\n506\n01:15:06,520 --> 01:15:09,350\n我们的族人看守了母盒数千年\n\n507\n01:15:15,530 --> 01:15:18,160\n我不会背叛自己的族人\n\n508\n01:15:29,710 --> 01:15:32,210\n你已经背叛了\n\n509\n01:16:32,560 --> 01:16:34,770\n这是在地球最深的海沟拍到的\n\n510\n01:16:35,360 --> 01:16:37,440\n他一定是亚特兰蒂斯人\n\n511\n01:16:37,610 --> 01:16:38,740\n能够呼吸海水\n\n512\n01:16:38,900 --> 01:16:40,570\n我跟他说话时他呼吸空气\n\n513\n01:16:40,740 --> 01:16:42,530\n那他就是混血儿\n\n514\n01:16:42,700 --> 01:16:44,570\n他说他会和我们一起作战\n\n515\n01:16:44,740 --> 01:16:46,080\n或多或少吧\n\n516\n01:16:47,450 --> 01:16:49,540\n或多还是或少\n\n517\n01:16:49,960 --> 01:16:50,960\n大概是或少吧\n\n518\n01:16:51,120 --> 01:16:52,920\n-他说不 -没错\n\n519\n01:16:53,670 --> 01:16:55,090\n亚特兰蒂斯人很难搞\n\n520\n01:16:56,000 --> 01:16:58,760\n我的族人曾和他们打仗\n\n521\n01:16:59,880 --> 01:17:01,970\n我不确定我们能相信他\n\n522\n01:17:02,130 --> 01:17:03,180\n戴安娜 如果我们要合作\n\n523\n01:17:03,340 --> 01:17:05,680\n你就得打开心房 接受我们不能…\n\n524\n01:17:05,850 --> 01:17:06,720\n你知道的\n\n525\n01:17:06,890 --> 01:17:08,560\n-抱歉 没关系 -对不起 我的错\n\n526\n01:17:08,720 --> 01:17:09,770\n没关系\n\n527\n01:17:09,930 --> 01:17:11,180\n-让我们… -难免的\n\n528\n01:17:11,350 --> 01:17:12,230\n所以…\n\n529\n01:17:12,390 --> 01:17:14,440\n这是第三个人\n\n530\n01:17:14,600 --> 01:17:17,020\n消失了1/30秒\n\n531\n01:17:17,190 --> 01:17:18,690\n一格的影片 看到吗\n\n532\n01:17:18,860 --> 01:17:21,490\n中城的巴里·艾伦\n\n533\n01:17:21,650 --> 01:17:22,490\n你去找他\n\n534\n01:17:22,650 --> 01:17:24,360\n我去找第四个人\n\n535\n01:17:24,530 --> 01:17:27,660\n有机与生化机械电子身体器官\n\n536\n01:17:30,200 --> 01:17:32,210\n他是个钢骨生化人\n\n537\n01:17:50,350 --> 01:17:51,180\n斯通\n\n538\n01:17:51,350 --> 01:17:53,310\n-预备 -就位\n\n539\n01:17:54,350 --> 01:17:56,770\n大声尖叫\n\n540\n01:18:08,830 --> 01:18:09,830\n3\n\n541\n01:18:10,200 --> 01:18:11,750\n80\n\n542\n01:18:12,830 --> 01:18:14,920\n预备…上吧\n\n543\n01:18:28,180 --> 01:18:30,430\n你儿子也许是美式足球校队队长\n\n544\n01:18:30,600 --> 01:18:33,600\n也是个天才 斯通太太\n\n545\n01:18:33,770 --> 01:18:35,850\n斯通博士\n\n546\n01:18:38,400 --> 01:18:40,400\n但不代表他能骇入校方系统\n\n547\n01:18:40,570 --> 01:18:42,400\n窜改他同学的成绩\n\n548\n01:18:43,360 --> 01:18:46,700\n莎拉一家人今年失去了房子\n\n549\n01:18:47,280 --> 01:18:49,700\n那孩子怎么可能及格\n\n550\n01:18:51,280 --> 01:18:54,330\n维克多是出于好心才会帮助她\n\n551\n01:18:54,500 --> 01:18:56,540\n你又做了什么来帮助她\n\n552\n01:19:11,470 --> 01:19:14,400\n哥谭市 威斯康星州\n\n553\n01:20:20,670 --> 01:20:23,590\n-你爸… -妈 别说了\n\n554\n01:20:25,170 --> 01:20:27,920\n他得在实验室加班\n\n555\n01:20:28,090 --> 01:20:31,130\n他天天都加班\n\n556\n01:20:33,720 --> 01:20:34,720\n他很想来的\n\n557\n01:20:35,260 --> 01:20:36,890\n你老是这么说\n\n558\n01:20:37,350 --> 01:20:38,930\n妈 别再替他找借口了\n\n559\n01:20:39,100 --> 01:20:42,060\n你跟他一样忙 但还是会挪出时间\n\n560\n01:20:42,600 --> 01:20:45,190\n他只是不会表达 但是…\n\n561\n01:20:45,860 --> 01:20:47,690\n我知道他以你为傲\n\n562\n01:20:48,240 --> 01:20:50,200\n我们都是 维克多\n\n563\n01:20:54,200 --> 01:20:57,290\n以你现在的成就\n\n564\n01:20:57,450 --> 01:21:00,210\n我等不及想看到未来的你\n\n565\n01:21:05,540 --> 01:21:07,250\n斯通博士 很遗憾\n\n566\n01:21:08,340 --> 01:21:10,130\n你太太没能活下来\n\n567\n01:21:11,800 --> 01:21:13,890\n你儿子恐怕也不会\n\n568\n01:21:28,070 --> 01:21:29,730\n我不会让你死\n\n569\n01:21:32,700 --> 01:21:34,240\n我绝不容许\n\n570\n01:21:40,540 --> 01:21:42,290\n我绝不容许\n\n571\n01:21:45,750 --> 01:21:46,750\n维克多\n\n572\n01:21:48,130 --> 01:21:50,880\n维克多 你不必窝在这里\n\n573\n01:21:51,720 --> 01:21:54,470\n你还有大好的人生\n\n574\n01:21:55,140 --> 01:21:58,510\n你妈会希望你拥有那样的人生\n\n575\n01:22:01,060 --> 01:22:02,600\n如果你当时在的话…\n\n576\n01:22:03,980 --> 01:22:05,850\n妈就还会活着\n\n577\n01:22:08,690 --> 01:22:10,610\n好吧 听着\n\n578\n01:22:11,990 --> 01:22:16,030\n你不必给我第二次机会 但是要给自己再一次机会\n\n579\n01:22:18,070 --> 01:22:21,120\n如果你不想看着我\n\n580\n01:22:22,830 --> 01:22:24,460\n那就试着听我说\n\n581\n01:22:53,190 --> 01:22:55,200\n你现在的能力 维克多\n\n582\n01:22:56,030 --> 01:22:59,570\n超强力量只是冰山一角\n\n583\n01:22:59,740 --> 01:23:02,290\n你拥有无穷潜力\n\n584\n01:23:32,360 --> 01:23:37,240\n在一和零的数位世界 你是绝对的霸主\n\n585\n01:23:37,400 --> 01:23:39,990\n没有防火墙能阻止你\n\n586\n01:23:40,160 --> 01:23:42,450\n没有你破解不了的密码\n\n587\n01:23:42,620 --> 01:23:45,370\n一切都任你摆布\n\n588\n01:23:45,540 --> 01:23:47,910\n从电厂电网到电信设备\n\n589\n01:23:48,080 --> 01:23:50,130\n每个人的生活都受到\n\n590\n01:23:50,290 --> 01:23:53,250\n复杂的数位网络操控支配\n\n591\n01:23:53,420 --> 01:23:57,510\n你却能轻而易举掌控它\n\n592\n01:24:07,850 --> 01:24:12,360\n全世界的命运掌握在你手中\n\n593\n01:24:20,160 --> 01:24:25,200\n你只要动个念头 就能发射所有的核弹\n\n594\n01:24:36,000 --> 01:24:39,170\n全球复杂的金融体系\n\n595\n01:24:39,340 --> 01:24:43,800\n对你来说就像玩具一样能轻易玩弄\n\n596\n01:25:17,840 --> 01:25:21,590\n问题是…不 挑战是…\n\n597\n01:25:22,470 --> 01:25:24,930\n不去这么做\n\n598\n01:25:25,800 --> 01:25:27,680\n不去滥用这能力\n\n599\n01:25:27,850 --> 01:25:29,850\n不去监视每个人\n\n600\n01:25:31,890 --> 01:25:34,190\n这个重责大任的沉重负担\n\n601\n01:25:34,350 --> 01:25:37,650\n将塑造你成为什么样的人\n\n602\n01:26:09,260 --> 01:26:10,350\n许个愿\n\n603\n01:26:11,600 --> 01:26:12,640\n再吹一次\n\n604\n01:26:13,600 --> 01:26:15,980\n很好 像外婆挥手问好\n\n605\n01:26:16,150 --> 01:26:17,310\n你好 外婆\n\n606\n01:27:10,670 --> 01:27:13,040\n余额不足\n\n607\n01:27:13,200 --> 01:27:16,960\n恭喜\n您赢得十万美元奖金\n\n608\n01:27:17,540 --> 01:27:18,710\n什么\n\n609\n01:27:20,710 --> 01:27:22,340\n天啊 天啊\n\n610\n01:27:23,590 --> 01:27:24,970\n我的天啊\n\n611\n01:27:25,130 --> 01:27:26,880\n天啊 天啊\n\n612\n01:27:32,220 --> 01:27:33,600\n维克多\n\n613\n01:27:35,230 --> 01:27:38,600\n这是我身为一名科学家 做出来的推断\n\n614\n01:27:39,770 --> 01:27:41,940\n也是我一直以来跟你说话的方式\n\n615\n01:27:42,650 --> 01:27:43,650\n现在…\n\n616\n01:27:46,030 --> 01:27:49,700\n让我说出内心话 不是身为一个科学家\n\n617\n01:27:50,240 --> 01:27:51,450\n而是身为一个父亲\n\n618\n01:28:06,050 --> 01:28:06,920\n喂\n\n619\n01:28:08,180 --> 01:28:09,720\n喂 你\n\n620\n01:28:25,690 --> 01:28:28,530\n因为你没有发挥潜力\n\n621\n01:28:29,200 --> 01:28:32,240\n一直在原地打转\n\n622\n01:28:32,410 --> 01:28:34,580\n你打三份没出路的工\n\n623\n01:28:34,740 --> 01:28:37,370\n还要打第四份工 你哪来的时间\n\n624\n01:28:37,540 --> 01:28:38,660\n我会挪出时间\n\n625\n01:28:38,830 --> 01:28:39,960\n-只要再打一份工 -巴里\n\n626\n01:28:40,120 --> 01:28:41,750\n-就能自己付学费 -你不能\n\n627\n01:28:41,920 --> 01:28:44,630\n-我说到做到 -别再折磨自己了\n\n628\n01:28:44,790 --> 01:28:46,460\n我不想再谈这件事\n\n629\n01:28:46,630 --> 01:28:47,710\n拜托 我们有十分钟\n\n630\n01:28:47,880 --> 01:28:48,800\n这全是为了付…\n\n631\n01:28:48,970 --> 01:28:50,760\n-刑事司法系的学费 -对啊\n\n632\n01:28:50,930 --> 01:28:51,930\n为了什么\n\n633\n01:28:52,090 --> 01:28:55,310\n那还用问 我正在跟我爸讲话\n\n634\n01:28:55,470 --> 01:28:58,270\n他因为杀死我妈坐牢 其实是被冤枉的\n\n635\n01:28:58,430 --> 01:29:00,390\n我怎么会对刑事司法感兴趣\n\n636\n01:29:00,560 --> 01:29:02,100\n我不记得了\n\n637\n01:29:02,270 --> 01:29:03,190\n真是的\n\n638\n01:29:03,360 --> 01:29:05,900\n我注定要选择走这条路 爸\n\n639\n01:29:06,900 --> 01:29:07,980\n把手给我 儿子\n\n640\n01:29:14,280 --> 01:29:16,830\n我要你听好 巴里\n\n641\n01:29:16,990 --> 01:29:20,500\n我要你听好 我是认真的\n\n642\n01:29:26,460 --> 01:29:28,340\n我要你放弃那一切\n\n643\n01:29:31,340 --> 01:29:34,390\n我也要你别再来看我\n\n644\n01:29:36,760 --> 01:29:39,770\n我拖累了你的人生\n\n645\n01:29:45,190 --> 01:29:46,310\n好吧\n\n646\n01:29:47,230 --> 01:29:50,360\n别再跟我这么说\n\n647\n01:29:50,780 --> 01:29:52,030\n求求你\n\n648\n01:29:52,200 --> 01:29:55,320\n你知道对我来说怎样才是最好吗\n\n649\n01:29:55,490 --> 01:30:00,290\n我儿子不白白浪费生命\n\n650\n01:30:01,710 --> 01:30:04,880\n你想做什么都行 你聪明绝顶\n\n651\n01:30:07,420 --> 01:30:10,210\n你是精英中的精英\n\n652\n01:30:12,050 --> 01:30:16,760\n我不能坐在这儿 看着你在中城盲目地奔走\n\n653\n01:30:16,930 --> 01:30:18,680\n就为了一个…\n\n654\n01:30:18,850 --> 01:30:22,020\n哪儿都不能去的老头子\n\n655\n01:30:22,180 --> 01:30:23,520\n-爸 并不是这样 -时间到了\n\n656\n01:30:23,690 --> 01:30:24,690\n并不是这样\n\n657\n01:30:24,850 --> 01:30:26,350\n走吧 艾伦 艾伦\n\n658\n01:30:26,520 --> 01:30:28,190\n我要你创造自己的未来\n\n659\n01:30:28,360 --> 01:30:30,030\n别活在过去 创造自己的未来\n\n660\n01:30:30,190 --> 01:30:31,820\n开门\n\n661\n01:30:31,990 --> 01:30:32,820\n棒呆了\n\n662\n01:30:36,990 --> 01:30:39,120\n\"别活在过去 创造自己的未来\"\n\n663\n01:30:39,280 --> 01:30:40,830\n可以了 开门\n\n664\n01:31:33,510 --> 01:31:36,170\n巴里·艾伦 我是布鲁斯·韦恩\n\n665\n01:31:37,010 --> 01:31:40,970\n你这么说似乎可以解释 为什么有个陌生人闯进我家\n\n666\n01:31:41,140 --> 01:31:43,930\n摸黑坐在我第二喜欢的椅子\n\n667\n01:31:46,020 --> 01:31:47,810\n请你解释一下\n\n668\n01:31:51,940 --> 01:31:54,650\n这家伙长得跟我一模一样\n\n669\n01:31:54,820 --> 01:31:57,530\n但绝对不是我\n\n670\n01:31:58,660 --> 01:32:00,530\n这个人…我不认识\n\n671\n01:32:00,700 --> 01:32:02,530\n披头散发的嬉皮\n\n672\n01:32:02,700 --> 01:32:05,450\n很帅的一个犹太青年\n\n673\n01:32:07,000 --> 01:32:08,960\n谁喝牛奶啊 我才不喝牛奶\n\n674\n01:32:09,750 --> 01:32:11,290\n我知道你有超能力\n\n675\n01:32:11,460 --> 01:32:13,300\n只是不知道是什么\n\n676\n01:32:13,710 --> 01:32:14,710\n我的专长包括\n\n677\n01:32:14,880 --> 01:32:17,630\n拉中提琴 网页设计\n\n678\n01:32:17,800 --> 01:32:20,590\n我也擅长手语 大猩猩手语\n\n679\n01:32:20,760 --> 01:32:24,100\n硅胶石英砂材料\n\n680\n01:32:24,510 --> 01:32:26,600\n耐磨耐热\n\n681\n01:32:26,770 --> 01:32:28,640\n是啊 我是冰舞竞技选手\n\n682\n01:32:28,810 --> 01:32:32,400\n这是用来避免 航天飞机重返大气层燃烧的材料\n\n683\n01:32:32,560 --> 01:32:35,070\n冰舞的竞争真的很激烈\n\n684\n01:32:36,440 --> 01:32:40,530\n我不知道你是谁 不管你找的是谁\n\n685\n01:32:40,700 --> 01:32:41,700\n都不是我\n\n686\n01:33:23,530 --> 01:33:25,120\n你是蝙蝠侠\n\n687\n01:33:25,530 --> 01:33:27,290\n所以你很快\n\n688\n01:33:28,580 --> 01:33:30,120\n这么说感觉太平凡了\n\n689\n01:33:30,290 --> 01:33:32,040\n我在组织一个团队\n\n690\n01:33:32,210 --> 01:33:34,290\n寻找拥有特殊能力的人\n\n691\n01:33:34,460 --> 01:33:35,960\n我相信敌人即将来袭\n\n692\n01:33:36,130 --> 01:33:38,210\n你不用多说 我参一脚\n\n693\n01:33:39,260 --> 01:33:40,340\n真的吗\n\n694\n01:33:40,720 --> 01:33:41,760\n就这么简单\n\n695\n01:33:41,930 --> 01:33:43,050\n是啊\n\n696\n01:33:45,010 --> 01:33:47,100\n我需要朋友\n\n697\n01:33:47,600 --> 01:33:50,560\n太好了\n\n698\n01:33:51,100 --> 01:33:52,850\n我能留着吗\n\n699\n01:33:53,480 --> 01:33:57,070\n那就像是一层三次元现实 似乎能够操控时空\n\n700\n01:33:57,230 --> 01:33:58,440\n我称之为神速力\n\n701\n01:33:58,610 --> 01:34:00,440\n害我燃烧大量的卡路里\n\n702\n01:34:00,610 --> 01:34:03,240\n所以我是零食的黑洞\n\n703\n01:34:03,410 --> 01:34:05,240\n我是\"零\"洞\n\n704\n01:34:06,120 --> 01:34:08,950\n这个特殊战斗团队有几个人\n\n705\n01:34:09,120 --> 01:34:11,040\n-三个 包括你 -三个\n\n706\n01:34:11,200 --> 01:34:13,080\n对抗什么\n\n707\n01:34:13,960 --> 01:34:15,420\n上飞机再告诉你\n\n708\n01:34:16,040 --> 01:34:17,250\n飞机\n\n709\n01:34:17,920 --> 01:34:19,670\n你的超能力是什么来着\n\n710\n01:34:19,840 --> 01:34:21,550\n我超有钱\n\n711\n01:34:44,650 --> 01:34:46,450\n普林斯小姐 让我来\n\n712\n01:34:46,620 --> 01:34:48,620\n没关系 我自己来\n\n713\n01:34:49,910 --> 01:34:51,290\n你想要喝吗\n\n714\n01:34:51,450 --> 01:34:52,750\n不 谢了\n\n715\n01:34:54,120 --> 01:34:56,120\n你得先倒水进去\n\n716\n01:34:56,830 --> 01:34:59,840\n-当然了 -才不会把茶叶烫熟\n\n717\n01:35:02,760 --> 01:35:04,300\n-很好 -太好了\n\n718\n01:35:04,470 --> 01:35:06,430\n茶叶应该够多了\n\n719\n01:35:06,590 --> 01:35:07,970\n好吧\n\n720\n01:35:09,100 --> 01:35:10,600\n你确定不来一杯\n\n721\n01:35:10,760 --> 01:35:14,020\n不 谢了 你得再让茶叶浸泡一下\n\n722\n01:35:14,770 --> 01:35:17,560\n我会的 一定会\n\n723\n01:35:18,980 --> 01:35:20,070\n你在打造什么\n\n724\n01:35:20,230 --> 01:35:21,570\n这是一只手套\n\n725\n01:35:22,150 --> 01:35:25,780\n布满高分子太阳能奈米电池\n\n726\n01:35:26,450 --> 01:35:28,160\n来 让我秀给你看\n\n727\n01:35:28,660 --> 01:35:31,660\n这是从氪星侦察舰上借来的\n\n728\n01:35:33,250 --> 01:35:34,700\n也许你应该…\n\n729\n01:35:34,870 --> 01:35:37,330\n-挪过去一点 谢谢 -没问题\n\n730\n01:35:44,880 --> 01:35:47,340\n现在看看效果如何\n\n731\n01:35:47,880 --> 01:35:49,260\n好了\n\n732\n01:35:49,930 --> 01:35:51,560\n还不错喔\n\n733\n01:35:51,720 --> 01:35:54,140\n捕捉并消散能量的手套\n\n734\n01:35:54,310 --> 01:35:55,810\n这是韦恩少爷的点子\n\n735\n01:35:56,100 --> 01:35:58,350\n也许你也应该打造一条套索\n\n736\n01:35:58,520 --> 01:36:00,270\n当然是黑色的罗\n\n737\n01:36:08,110 --> 01:36:11,070\n好吧 维克多斯通\n\n738\n01:36:11,150 --> 01:36:15,540\n搜寻维克多·斯通\n\n739\n01:36:27,340 --> 01:36:29,340\n有点不对劲\n\n740\n01:36:33,590 --> 01:36:35,270\n在这里见面 现在\n\n741\n01:36:41,150 --> 01:36:43,570\n看来你有个约会 普林斯小姐\n\n742\n01:37:40,620 --> 01:37:43,710\n你为什么找我 戴安娜\n\n743\n01:37:43,880 --> 01:37:45,130\n你知道我是谁\n\n744\n01:37:45,290 --> 01:37:47,630\n我知道的远远超乎你想像\n\n745\n01:37:47,800 --> 01:37:50,380\n那也许你已经知道我需要你的帮助\n\n746\n01:37:51,050 --> 01:37:52,050\n全世界都需要\n\n747\n01:37:53,430 --> 01:37:55,140\n去他的全世界\n\n748\n01:37:56,760 --> 01:37:59,140\n你很显然经历了很多\n\n749\n01:38:00,390 --> 01:38:02,890\n我完全无法想像\n\n750\n01:38:03,600 --> 01:38:06,980\n但不管你发生什么事 现在都拥有超能力\n\n751\n01:38:07,230 --> 01:38:08,940\n超能力\n\n752\n01:38:09,110 --> 01:38:11,280\n这看起来像是超能力吗\n\n753\n01:38:11,440 --> 01:38:12,610\n我们需要你 维克多\n\n754\n01:38:13,280 --> 01:38:14,870\n也许你也需要我们\n\n755\n01:38:15,030 --> 01:38:16,700\n我不需要任何人\n\n756\n01:38:18,910 --> 01:38:19,950\n不再需要了\n\n757\n01:38:20,120 --> 01:38:22,620\n我以前也一直这么告诉自己\n\n758\n01:38:29,460 --> 01:38:32,170\n我曾经失去一个深爱的人\n\n759\n01:38:35,050 --> 01:38:39,850\n把自己封闭起来\n\n760\n01:38:41,480 --> 01:38:44,190\n但我得学会再次敞开心房\n\n761\n01:38:46,900 --> 01:38:50,320\n老实说 我仍在努力中\n\n762\n01:38:50,480 --> 01:38:53,700\n既然你要求见我\n\n763\n01:38:54,570 --> 01:38:57,320\n你也在努力\n\n764\n01:39:24,100 --> 01:39:29,440\n挚爱的儿子\n维克多·斯通 1994-2015\n\n765\n01:39:26,850 --> 01:39:29,440\n挚爱的母亲\n爱莲诺·斯通 1973-2015\n\n766\n01:40:09,020 --> 01:40:12,690\n超人飞船上的金属样本被你说中了\n\n767\n01:40:12,860 --> 01:40:15,990\n我们用电子激光向它轰射X光\n\n768\n01:40:16,400 --> 01:40:17,860\n看看发生了什么事\n\n769\n01:40:26,870 --> 01:40:28,790\n克氏350万度\n\n770\n01:40:28,960 --> 01:40:31,920\n金属的内核变得过热\n\n771\n01:40:32,090 --> 01:40:34,420\n形成又热又密的物质\n\n772\n01:40:37,720 --> 01:40:40,510\n这是地球上最火热的东西\n\n773\n01:40:40,680 --> 01:40:42,600\n跟我对毕业舞会舞伴说的话一样\n\n774\n01:40:42,970 --> 01:40:44,510\n但她还是甩了我\n\n775\n01:40:44,970 --> 01:40:45,890\n是啊\n\n776\n01:40:50,060 --> 01:40:50,900\n喂 博士\n\n777\n01:40:51,230 --> 01:40:55,690\n你认为蝙蝠侠和犯罪调查部 找的东西有关联吗\n\n778\n01:40:56,740 --> 01:40:59,860\n6-1-9-8-2号物件\n\n779\n01:41:01,030 --> 01:41:02,120\n不\n\n780\n01:41:03,120 --> 01:41:04,330\n我不这么认为\n\n781\n01:41:39,150 --> 01:41:41,240\n维克多\n\n782\n01:41:58,380 --> 01:42:00,300\n好了 走吧\n\n783\n01:42:01,630 --> 01:42:03,140\n-高登局长 -来吧\n\n784\n01:42:04,180 --> 01:42:05,100\n给你的留言\n\n785\n01:42:09,810 --> 01:42:12,390\n不用看也知道今天是满月\n\n786\n01:42:12,560 --> 01:42:15,400\n哥谭市一半的疯子都出来了\n\n787\n01:42:15,560 --> 01:42:17,730\n他们都说看到怪物飞过港口\n\n788\n01:42:17,900 --> 01:42:21,650\n你是对的 老妈 金牌警校军 念牙医学院有什么不好\n\n789\n01:42:24,740 --> 01:42:27,030\n\"遭到飞行吸血鬼攻击\"\n\n790\n01:42:28,030 --> 01:42:31,000\n\"看起来像是一口尖牙的巨大蝙蝠\"\n\n791\n01:42:31,160 --> 01:42:32,960\n有一个相关的线索\n\n792\n01:42:33,120 --> 01:42:36,710\n实验室绑架案的嫌犯肖像素描\n\n793\n01:42:36,880 --> 01:42:39,420\n-看起来像… -我知道像什么\n\n794\n01:42:40,630 --> 01:42:43,090\n拜托 你觉得他在这里打击犯罪20年\n\n795\n01:42:43,260 --> 01:42:45,930\n然后跑去大都会绑架八个人\n\n796\n01:42:46,970 --> 01:42:48,050\n我今晚会找他谈谈\n\n797\n01:42:48,220 --> 01:42:49,760\n怎么找他\n\n798\n01:42:49,930 --> 01:42:51,390\n你说呢\n\n799\n01:43:09,660 --> 01:43:10,870\n塞拉斯\n\n800\n01:43:18,630 --> 01:43:20,800\n-天啊 -钢骨在哪里\n\n801\n01:43:20,960 --> 01:43:22,130\n他叫维克多\n\n802\n01:43:22,920 --> 01:43:25,680\n我们见过面 说过话\n\n803\n01:43:26,640 --> 01:43:28,050\n给他点时间\n\n804\n01:43:28,850 --> 01:43:30,810\n你一定是巴里 我是戴安娜\n\n805\n01:43:30,970 --> 01:43:34,730\n你好 巴里 我是戴安娜 那不太对 好极了\n\n806\n01:43:34,890 --> 01:43:35,890\n就只有我们\n\n807\n01:43:36,060 --> 01:43:37,020\n没错 就只有我们\n\n808\n01:43:38,360 --> 01:43:41,400\n酷啊 那是蝙蝠信号 那是在…\n\n809\n01:43:41,570 --> 01:43:43,650\n抱歉 那是在呼叫你\n\n810\n01:43:43,820 --> 01:43:45,030\n意思是我们得出动了\n\n811\n01:43:45,200 --> 01:43:48,240\n-对 是这意思没错 -酷毙了\n\n812\n01:44:46,340 --> 01:44:49,800\n湄拉指挥官 我告诉海王 外围守卫被掳走\n\n813\n01:44:50,010 --> 01:44:51,550\n他不会派出援兵\n\n814\n01:44:51,720 --> 01:44:54,350\n他说所有的士兵 都必须前往叛军地区支持\n\n815\n01:44:54,510 --> 01:44:57,230\n他不但残忍而且短视\n\n816\n01:44:58,940 --> 01:45:00,520\n好吧 带着剩下的人马\n\n817\n01:45:00,690 --> 01:45:02,860\n在母盒周围形成方阵\n\n818\n01:46:42,290 --> 01:46:44,330\n你逃不了的\n\n819\n01:46:45,080 --> 01:46:47,040\n我并不想逃\n\n820\n01:48:49,620 --> 01:48:51,500\n维科跟我说你会来\n\n821\n01:48:52,000 --> 01:48:54,710\n备受爱戴的亚特兰娜女王的长子\n\n822\n01:48:57,340 --> 01:48:58,630\n等一下\n\n823\n01:49:00,640 --> 01:49:01,720\n拜托了\n\n824\n01:49:05,310 --> 01:49:06,640\n我认识她\n\n825\n01:49:08,940 --> 01:49:10,520\n你至少认识她\n\n826\n01:49:11,400 --> 01:49:12,980\n我父母死于战争\n\n827\n01:49:14,900 --> 01:49:16,110\n她收容了我\n\n828\n01:49:16,490 --> 01:49:17,740\n还真是个圣人\n\n829\n01:49:18,450 --> 01:49:20,570\n你胆敢讽刺亚特兰娜女王\n\n830\n01:49:20,740 --> 01:49:23,370\n你的女王把我丢在我父亲家门口\n\n831\n01:49:23,530 --> 01:49:25,120\n从此把我忘得一干二净\n\n832\n01:49:25,290 --> 01:49:27,500\n你母亲是为了救你才离开\n\n833\n01:49:28,620 --> 01:49:31,080\n你无法想像她有多心痛\n\n834\n01:49:32,670 --> 01:49:34,710\n她也付出惨痛代价\n\n835\n01:49:35,960 --> 01:49:38,130\n但你现在不是脆弱的小孩\n\n836\n01:49:40,550 --> 01:49:42,140\n那本是她的责任\n\n837\n01:49:42,300 --> 01:49:45,470\n跟着那怪物到陆地 然后阻止他\n\n838\n01:49:46,060 --> 01:49:47,140\n现在\n\n839\n01:49:48,430 --> 01:49:49,770\n是你的责任\n\n840\n01:50:54,120 --> 01:50:55,580\n太好了\n\n841\n01:51:18,520 --> 01:51:19,900\n荒原狼\n\n842\n01:51:20,070 --> 01:51:21,990\n告诉我你知道了什么\n\n843\n01:51:22,150 --> 01:51:24,780\n找到两个苏醒的母盒\n\n844\n01:51:24,950 --> 01:51:27,910\n结合两个母盒的力量\n\n845\n01:51:28,070 --> 01:51:31,080\n我完成了要塞的防御系统\n\n846\n01:51:31,240 --> 01:51:33,660\n第三个母盒在哪里\n\n847\n01:51:33,830 --> 01:51:37,960\n天启魔感应到它 正在寻找它\n\n848\n01:51:38,130 --> 01:51:39,130\n它们抓来了囚犯\n\n849\n01:51:39,290 --> 01:51:41,380\n他们带有它的气味\n\n850\n01:51:42,130 --> 01:51:43,170\n去吧\n\n851\n01:51:44,010 --> 01:51:45,930\n去审问囚犯\n\n852\n01:51:46,720 --> 01:51:48,600\n找到第三个母盒\n\n853\n01:51:50,140 --> 01:51:52,310\n他们会乖乖告诉我\n\n854\n01:51:53,560 --> 01:51:56,060\n不然我就来硬的\n\n855\n01:52:01,730 --> 01:52:06,950\n第四章\n\n856\n01:52:03,330 --> 01:52:06,950\n“改造机器”\n\n857\n01:52:39,400 --> 01:52:40,980\n你们有多少人\n\n858\n01:52:41,820 --> 01:52:42,940\n还不够多\n\n859\n01:52:45,030 --> 01:52:47,280\n哥谭市各地有数十名目击者\n\n860\n01:52:47,450 --> 01:52:50,160\n他们的描述符合大都会绑架案的嫌犯\n\n861\n01:52:50,740 --> 01:52:51,780\n天启魔\n\n862\n01:52:52,410 --> 01:52:53,660\n好吧\n\n863\n01:52:53,830 --> 01:52:56,160\n天启魔一定闻到母盒的气味\n\n864\n01:52:56,410 --> 01:52:57,410\n在实验室的那个\n\n865\n01:52:57,580 --> 01:52:59,920\n它们把人抓走 拷问母盒下落\n\n866\n01:53:00,080 --> 01:53:01,790\n-那八个人可能还活着 -九个人\n\n867\n01:53:04,340 --> 01:53:06,840\n星辰实验室的主任今晚被绑走\n\n868\n01:53:12,050 --> 01:53:14,600\n好吧 另一个科学家\n\n869\n01:53:14,760 --> 01:53:16,060\n我们要怎么找到他\n\n870\n01:53:16,220 --> 01:53:17,890\n附近一定有它们的巢穴\n\n871\n01:53:18,060 --> 01:53:22,150\n我在大都会和哥谭市地图上做记号\n\n872\n01:53:22,310 --> 01:53:24,440\n看不出任何模式\n\n873\n01:53:24,610 --> 01:53:25,900\n地图上的路线没有交集\n\n874\n01:53:26,070 --> 01:53:27,400\n在陆地上没有\n\n875\n01:53:28,110 --> 01:53:30,160\n这是在两座城市之间的史崔克岛\n\n876\n01:53:30,320 --> 01:53:32,740\n这些是通风口 全都通往1929年\n\n877\n01:53:32,910 --> 01:53:35,290\n废弃的大都会工程隧道\n\n878\n01:53:35,450 --> 01:53:37,040\n巢穴可能在那里\n\n879\n01:53:38,370 --> 01:53:39,750\n他要跟我们一起去吗\n\n880\n01:53:39,920 --> 01:53:41,250\n因为你的车子坐不下\n\n881\n01:53:41,790 --> 01:53:43,210\n我有更大的玩意儿\n\n882\n01:53:44,540 --> 01:53:46,170\n你真的觉得…\n\n883\n01:53:47,510 --> 01:53:51,050\n他们就这样闪人了吗\n\n884\n01:53:52,260 --> 01:53:53,600\n太没礼貌了\n\n885\n01:54:28,630 --> 01:54:32,130\n星辰实验室\n\n886\n01:54:32,300 --> 01:54:34,390\n很接近了\n\n887\n01:54:34,550 --> 01:54:36,560\n敌人的气味\n\n888\n01:54:37,260 --> 01:54:38,430\n虚无\n\n889\n01:54:39,020 --> 01:54:40,560\n黑暗\n\n890\n01:54:41,310 --> 01:54:42,270\n死亡\n\n891\n01:54:42,690 --> 01:54:44,940\n-我们在哪里 阿尔弗雷德 -史崔克岛\n\n892\n01:54:45,110 --> 01:54:49,650\n你们应该就在隧道通风塔的正下方\n\n893\n01:54:50,240 --> 01:54:53,660\n往左看 应该有一道阶梯通往机械室\n\n894\n01:54:53,860 --> 01:54:56,410\n红外线热影像显示有一群人\n\n895\n01:54:56,580 --> 01:54:57,490\n就是那里\n\n896\n01:54:57,870 --> 01:54:58,870\n走吧\n\n897\n01:55:12,880 --> 01:55:13,720\n好吧\n\n898\n01:55:13,930 --> 01:55:15,800\n有任何计划吗\n\n899\n01:55:17,350 --> 01:55:18,640\n你们两个\n\n900\n01:55:18,810 --> 01:55:19,970\n别单打独斗\n\n901\n01:55:20,770 --> 01:55:22,020\n我们要联手出击\n\n902\n01:55:30,980 --> 01:55:32,820\n我听说过你\n\n903\n01:55:34,610 --> 01:55:35,780\n没想到你是真的\n\n904\n01:55:36,240 --> 01:55:37,780\n有用的时候我就是真的\n\n905\n01:55:48,040 --> 01:55:52,170\n我受够了你们的沉默 快告诉我 母盒在哪里\n\n906\n01:55:58,970 --> 01:56:01,180\n求求你 我们有家人\n\n907\n01:56:01,350 --> 01:56:03,430\n那你们就有弱点\n\n908\n01:56:03,600 --> 01:56:05,060\n荒原狼\n\n909\n01:56:05,230 --> 01:56:09,400\n好吧 我猜…那就是坏蛋\n\n910\n01:56:09,560 --> 01:56:10,610\n猜对了\n\n911\n01:56:11,150 --> 01:56:14,610\n我现在真的超想念超人\n\n912\n01:56:14,780 --> 01:56:16,950\n绕到另一边\n\n913\n01:56:17,110 --> 01:56:19,120\n把它们团团围住展开突袭\n\n914\n01:56:23,660 --> 01:56:25,250\n你接近过一个母盒\n\n915\n01:56:25,710 --> 01:56:27,420\n身上有它的气味\n\n916\n01:56:27,580 --> 01:56:29,040\n我不知道你在说什么\n\n917\n01:56:29,210 --> 01:56:31,040\n-它在哪里 -放过他\n\n918\n01:56:31,210 --> 01:56:33,460\n他不知道\n\n919\n01:56:37,050 --> 01:56:38,840\n等等 求求你\n\n920\n01:56:44,020 --> 01:56:47,140\n你也带着气味 但是更强烈\n\n921\n01:56:47,520 --> 01:56:49,650\n我死也不会告诉你\n\n922\n01:56:49,810 --> 01:56:51,650\n不告诉我就会死\n\n923\n01:56:52,070 --> 01:56:53,070\n不\n\n924\n01:57:02,410 --> 01:57:03,450\n维克多\n\n925\n01:57:03,620 --> 01:57:04,910\n杀了他们\n\n926\n01:57:09,370 --> 01:57:10,540\n亚马逊女战士\n\n927\n01:57:10,960 --> 01:57:13,460\n但不像你的姐妹\n\n928\n01:57:13,630 --> 01:57:14,880\n你更强大\n\n929\n01:57:45,830 --> 01:57:47,450\n亚马逊女战士\n\n930\n01:57:50,500 --> 01:57:51,880\n住手\n\n931\n01:57:52,250 --> 01:57:54,460\n这一个是我的\n\n932\n01:57:56,420 --> 01:57:58,840\n我不属于任何人\n\n933\n01:58:12,850 --> 01:58:14,900\n大伙儿 这不是联手出击\n\n934\n01:58:21,910 --> 01:58:23,070\n把这些人救出去\n\n935\n01:58:23,240 --> 01:58:24,910\n我会让这些怪物跟着我\n\n936\n01:58:35,340 --> 01:58:36,750\n大伙儿 快啊\n\n937\n01:58:45,510 --> 01:58:47,010\n再快一点\n\n938\n01:58:49,390 --> 01:58:50,770\n-没事吧 -没事\n\n939\n01:58:50,930 --> 01:58:53,350\n我会搞定 动作快点\n\n940\n01:58:55,400 --> 01:58:56,400\n这里\n\n941\n01:59:32,730 --> 01:59:34,140\n能量正在消散\n\n942\n01:59:34,310 --> 01:59:35,810\n我的手套很有用\n\n943\n01:59:37,060 --> 01:59:39,360\n晚点再庆祝 阿尔弗雷德 我需要夜蝠战机\n\n944\n01:59:39,520 --> 01:59:41,150\n我以为你不会开口\n\n945\n01:59:41,740 --> 01:59:43,860\n马上赶去 启动遥控模式\n\n946\n02:00:14,020 --> 02:00:15,020\n谢了 阿尔弗雷德\n\n947\n02:00:15,190 --> 02:00:16,600\n不客气\n\n948\n02:00:39,330 --> 02:00:40,290\n惨了\n\n949\n02:00:48,300 --> 02:00:49,760\n他们安全了 回去隧道\n\n950\n02:00:49,930 --> 02:00:53,010\n隧道 好 外星人 坏蛋 耍剑的女士\n\n951\n02:01:04,820 --> 02:01:06,190\n轮到我\n\n952\n02:02:28,570 --> 02:02:30,070\n系统全面故障\n\n953\n02:02:30,240 --> 02:02:32,660\n你没事吧 韦恩少爷\n\n954\n02:02:32,820 --> 02:02:33,820\n你没事吧\n\n955\n02:02:44,540 --> 02:02:48,050\n你身上流着旧神族的血液\n\n956\n02:03:02,520 --> 02:03:03,350\n你没事吧\n\n957\n02:03:05,360 --> 02:03:06,980\n我不确定你会来\n\n958\n02:03:08,020 --> 02:03:09,320\n你是我父亲\n\n959\n02:03:12,820 --> 02:03:13,820\n快去吧\n\n960\n02:03:27,460 --> 02:03:28,460\n不要\n\n961\n02:04:13,970 --> 02:04:16,300\n放轻松 阿尔弗雷德 我来接手\n\n962\n02:04:18,510 --> 02:04:19,720\n我认识你吗\n\n963\n02:04:50,630 --> 02:04:51,880\n我们在哪里的下面\n\n964\n02:04:52,630 --> 02:04:53,920\n哥谭港\n\n965\n02:05:32,630 --> 02:05:33,920\n那是谁\n\n966\n02:05:59,240 --> 02:06:00,410\n快点\n\n967\n02:06:05,540 --> 02:06:06,750\n戴安娜 快上来\n\n968\n02:07:08,640 --> 02:07:10,140\n是什么\n\n969\n02:07:17,940 --> 02:07:19,360\n让我看\n\n970\n02:07:58,520 --> 02:08:00,150\n它在这里\n\n971\n02:08:00,900 --> 02:08:03,860\n在这个世界\n\n972\n02:08:37,770 --> 02:08:40,730\n你可能感染了外星微生物 必须接受隔离\n\n973\n02:08:40,900 --> 02:08:42,570\n美国政府的规定要求…\n\n974\n02:08:42,730 --> 02:08:45,530\n我知道规定 是我写的\n\n975\n02:08:50,080 --> 02:08:51,410\n它召唤了他\n\n976\n02:08:51,580 --> 02:08:53,120\n母盒\n\n977\n02:08:53,290 --> 02:08:54,660\n他抢走的那个\n\n978\n02:08:55,000 --> 02:08:58,040\n他有两个了 他从亚特兰蒂斯抢走母盒\n\n979\n02:08:58,210 --> 02:09:00,500\n现在只需要人类遗失的母盒\n\n980\n02:09:00,670 --> 02:09:01,840\n他可能已经拿到手了\n\n981\n02:09:05,510 --> 02:09:06,930\n他没有拿到手\n\n982\n02:09:10,140 --> 02:09:11,300\n在我这里\n\n983\n02:09:21,860 --> 02:09:23,940\n你完成征服行动了吗\n\n984\n02:09:24,110 --> 02:09:25,360\n还没有 狄萨德\n\n985\n02:09:25,530 --> 02:09:27,780\n那你为何召唤我\n\n986\n02:09:27,950 --> 02:09:29,610\n我带来消息\n\n987\n02:09:29,780 --> 02:09:32,700\n强大的达克赛德登上王位之前\n\n988\n02:09:32,870 --> 02:09:37,370\n他在全宇宙搜寻终极武器\n\n989\n02:09:38,000 --> 02:09:40,170\n反生命方程序\n\n990\n02:09:40,330 --> 02:09:45,010\n掌控多重宇宙中 所有生命与自由意志的关键\n\n991\n02:09:45,170 --> 02:09:48,180\n他发现它被藏在一个原始星球上 但在他还没…\n\n992\n02:09:48,340 --> 02:09:51,220\n大家都知道你背叛了他\n\n993\n02:09:51,390 --> 02:09:53,890\n我找到了那个原始星球\n\n994\n02:09:54,060 --> 02:09:56,100\n胆敢反击的世界\n\n995\n02:09:56,270 --> 02:09:58,140\n就是地球\n\n996\n02:09:58,310 --> 02:10:00,520\n反生命方程序被刻在…\n\n997\n02:10:00,690 --> 02:10:04,570\n这个世界的地表\n\n998\n02:10:08,240 --> 02:10:09,650\n你确定\n\n999\n02:10:09,820 --> 02:10:10,860\n我看到了\n\n1000\n02:10:11,030 --> 02:10:14,450\n我亲眼看到了\n\n1001\n02:10:57,790 --> 02:10:59,370\n主人\n\n1002\n02:11:00,910 --> 02:11:04,460\n荒原狼\n\n1003\n02:11:05,130 --> 02:11:08,210\n主人 我只是你谦卑的仆人\n\n1004\n02:11:09,210 --> 02:11:12,050\n你真的找到它了\n\n1005\n02:11:12,220 --> 02:11:14,390\n是的 霸主\n\n1006\n02:11:15,140 --> 02:11:18,100\n失落的世界就是地球\n\n1007\n02:11:18,270 --> 02:11:21,270\n反生命方程序就在这里\n\n1008\n02:11:22,600 --> 02:11:25,940\n你若想寻求救赎 那就找到第三个母盒\n\n1009\n02:11:26,110 --> 02:11:29,070\n合而为一形成三位一体 当这世界化为焦土\n\n1010\n02:11:29,230 --> 02:11:32,450\n我就会来拿我的大奖\n\n1011\n02:11:33,410 --> 02:11:35,620\n你会来地球\n\n1012\n02:11:36,660 --> 02:11:40,910\n我已经把十万个世界化为尘土\n\n1013\n02:11:41,080 --> 02:11:42,580\n寻找反生命方程序\n\n1014\n02:11:42,750 --> 02:11:45,960\n寻找抢走我荣耀之人\n\n1015\n02:11:46,130 --> 02:11:51,880\n我将踏着他们的骨骸 沐浴在反生命方程序的荣光中\n\n1016\n02:11:52,050 --> 02:11:54,760\n所有的生命\n\n1017\n02:11:54,930 --> 02:11:58,430\n都将是我的\n\n1018\n02:12:01,810 --> 02:12:05,730\n一定会的 主人\n\n1019\n02:12:09,940 --> 02:12:11,610\n酷爆了\n\n1020\n02:12:11,780 --> 02:12:14,320\n从外面看 这只是一栋废弃建筑物\n\n1021\n02:12:18,070 --> 02:12:19,830\n它想要飞行\n\n1022\n02:12:21,040 --> 02:12:22,910\n你和机器说话\n\n1023\n02:12:23,210 --> 02:12:25,210\n我和人工智能说话\n\n1024\n02:12:25,370 --> 02:12:28,250\n这个说她因为软体问题不能飞\n\n1025\n02:12:28,420 --> 02:12:30,380\n不过我很快就能修好\n\n1026\n02:12:40,140 --> 02:12:42,350\n我的数据流中有个黑点\n\n1027\n02:12:42,680 --> 02:12:44,940\n我能感应到另外两个母盒\n\n1028\n02:12:45,100 --> 02:12:46,940\n我知道它们苏醒了\n\n1029\n02:12:47,100 --> 02:12:48,610\n但是看不见它们在哪里\n\n1030\n02:12:48,770 --> 02:12:50,770\n知道敌方基地在哪里才能攻击\n\n1031\n02:12:50,940 --> 02:12:53,190\n就算我们知道\n\n1032\n02:12:53,360 --> 02:12:56,200\n也没有比荒原狼更强大的生物\n\n1033\n02:12:58,410 --> 02:12:59,780\n也许有一个\n\n1034\n02:13:00,160 --> 02:13:01,540\n超人\n\n1035\n02:13:02,450 --> 02:13:06,500\n只要第三个母盒在沉睡 他们就看不到它 只能感应到它\n\n1036\n02:13:06,670 --> 02:13:08,710\n我们得不断移动才不会被发现\n\n1037\n02:13:08,880 --> 02:13:12,050\n不 这只是延缓失败的策略 不是获胜的战略\n\n1038\n02:13:12,670 --> 02:13:14,670\n难道火焰喷射器不流行了吗\n\n1039\n02:13:15,550 --> 02:13:16,630\n为何不直接烧毁它\n\n1040\n02:13:16,800 --> 02:13:18,890\n烈火也无法摧毁母盒\n\n1041\n02:13:19,050 --> 02:13:20,800\n它们是一种未知的物质\n\n1042\n02:13:20,970 --> 02:13:24,430\n喜欢热能 会吸收它 保存在它们的核心\n\n1043\n02:13:24,600 --> 02:13:26,730\n你很了解这些盒子嘛\n\n1044\n02:13:27,310 --> 02:13:28,560\n非常可疑\n\n1045\n02:13:28,730 --> 02:13:30,440\n你在哪里找到母盒\n\n1046\n02:13:31,400 --> 02:13:32,820\n你在怀疑我吗\n\n1047\n02:13:33,110 --> 02:13:34,610\n我就是怀疑你\n\n1048\n02:13:35,190 --> 02:13:37,070\n我们怎么知道你不是他们的奸细\n\n1049\n02:13:38,950 --> 02:13:40,620\n说来话长\n\n1050\n02:13:41,070 --> 02:13:42,990\n你赶着要去哪儿吗\n\n1051\n02:13:50,380 --> 02:13:54,210\n纳粹在二战结束前找到母盒\n\n1052\n02:13:54,380 --> 02:13:57,420\n它被埋在一座义大利修道院底下\n\n1053\n02:13:57,590 --> 02:13:59,970\n被送去给希特勒的路上 遭到盟军拦截\n\n1054\n02:14:00,140 --> 02:14:02,350\n1944年被带回了美国\n\n1055\n02:14:02,930 --> 02:14:06,480\n6-1-9-8-2号未知物件\n\n1056\n02:14:07,350 --> 02:14:10,810\n它被丢在五角大厦档案室七十年\n\n1057\n02:14:11,350 --> 02:14:14,570\n直到国防部开始研究超人飞船\n\n1058\n02:14:16,110 --> 02:14:19,610\n星辰实验室的一位研究员 发现超人飞船和…\n\n1059\n02:14:20,910 --> 02:14:22,450\n6-1-9-8-2号物件有关联\n\n1060\n02:14:23,330 --> 02:14:26,160\n他了解到它们都是外星科技\n\n1061\n02:14:26,830 --> 02:14:28,410\n不同的文明\n\n1062\n02:14:29,000 --> 02:14:31,120\n类似的属性\n\n1063\n02:14:32,460 --> 02:14:35,210\n虽然母盒已经沉睡了几千年\n\n1064\n02:14:35,880 --> 02:14:38,720\n那位研究员想出 一个可以唤醒它的理论\n\n1065\n02:14:39,340 --> 02:14:41,090\n也真的唤醒了它\n\n1066\n02:14:43,550 --> 02:14:44,390\n后来…\n\n1067\n02:14:46,520 --> 02:14:48,430\n我出了车祸 本来应该死去\n\n1068\n02:14:49,770 --> 02:14:52,980\n但是出于绝望或是疯狂\n\n1069\n02:14:53,150 --> 02:14:55,480\n那位研究员驾驭了母盒的力量\n\n1070\n02:15:11,670 --> 02:15:13,750\n释放了一种他无法…\n\n1071\n02:15:13,920 --> 02:15:16,590\n完全理解的外星科技\n\n1072\n02:15:16,750 --> 02:15:19,130\n他利用那股力量让我活下来\n\n1073\n02:15:22,720 --> 02:15:24,300\n活着…\n\n1074\n02:15:24,850 --> 02:15:26,810\n但变成了这样\n\n1075\n02:15:29,600 --> 02:15:31,890\n母盒继续沉睡\n\n1076\n02:15:32,810 --> 02:15:34,480\n他也没有物归原处\n\n1077\n02:15:37,110 --> 02:15:39,150\n那位研究员就是塞拉斯·斯通\n\n1078\n02:15:40,860 --> 02:15:42,530\n我的父亲\n\n1079\n02:15:45,820 --> 02:15:47,490\n等等\n\n1080\n02:15:47,660 --> 02:15:51,040\n你父亲用一个母盒救了你一命\n\n1081\n02:15:51,200 --> 02:15:53,420\n它们不是变态杀人机器吗\n\n1082\n02:15:53,580 --> 02:15:55,960\n它们是改造机器\n\n1083\n02:15:56,130 --> 02:15:58,800\n母盒没有救人或杀人…\n\n1084\n02:15:59,210 --> 02:16:01,300\n活着或死亡的概念\n\n1085\n02:16:01,460 --> 02:16:03,720\n它们按照主人的意愿重新排列物质\n\n1086\n02:16:03,880 --> 02:16:05,470\n使其再生 恢复原状\n\n1087\n02:16:05,640 --> 02:16:07,050\n恢复原状\n\n1088\n02:16:07,220 --> 02:16:10,640\n母盒拥有恢复粒子相互作用的力量\n\n1089\n02:16:10,810 --> 02:16:13,890\n你是说任何物质的粒子 都不能被创造或毁灭\n\n1090\n02:16:14,060 --> 02:16:16,060\n它们的相互作用只会转变\n\n1091\n02:16:16,230 --> 02:16:18,980\n烧掉一栋房子 粒子仍然存在\n\n1092\n02:16:19,150 --> 02:16:21,610\n房子的粒子变成灰烬的粒子\n\n1093\n02:16:21,780 --> 02:16:25,820\n任何人只要有火柴 都能把一栋房子化成灰烬\n\n1094\n02:16:27,870 --> 02:16:29,620\n但是一个母盒\n\n1095\n02:16:29,780 --> 02:16:32,000\n能够把灰烬变回一栋房子\n\n1096\n02:16:38,000 --> 02:16:40,500\n我知道我们都在想同样的事\n\n1097\n02:16:41,960 --> 02:16:44,470\n谁要说我才不说\n\n1098\n02:17:11,740 --> 02:17:12,830\n谁啊\n\n1099\n02:17:13,540 --> 02:17:14,750\n玛莎\n\n1100\n02:17:33,100 --> 02:17:38,100\n我去了星球日报 终于拿回克拉克的东西\n\n1101\n02:17:39,600 --> 02:17:42,900\n不知道为什么 现在无处可放\n\n1102\n02:17:45,690 --> 02:17:47,320\n我失去了农场\n\n1103\n02:17:48,950 --> 02:17:51,070\n我迟缴房贷好一阵子了\n\n1104\n02:17:52,450 --> 02:17:56,330\n老实说 那房子我一个人住太大了\n\n1105\n02:17:56,870 --> 02:17:59,670\n你知道我随时都欢迎你来住\n\n1106\n02:17:59,830 --> 02:18:01,790\n只要你需要的话\n\n1107\n02:18:03,000 --> 02:18:05,630\n谢谢你 露易丝 你真好心\n\n1108\n02:18:07,300 --> 02:18:09,380\n但我找到一个小地方 我一个人住刚好\n\n1109\n02:18:09,550 --> 02:18:11,010\n就在餐馆旁边\n\n1110\n02:18:11,640 --> 02:18:13,010\n我不是来求助的\n\n1111\n02:18:14,180 --> 02:18:16,060\n我来是因为…\n\n1112\n02:18:16,890 --> 02:18:19,310\n我见到派瑞先生 他跟我说…\n\n1113\n02:18:20,770 --> 02:18:23,690\n克拉克死后你就没去上班了\n\n1114\n02:18:28,490 --> 02:18:30,110\n我办不到\n\n1115\n02:18:37,000 --> 02:18:39,330\n全世界都在哀悼\n\n1116\n02:18:40,960 --> 02:18:43,380\n为了一个象征悲伤\n\n1117\n02:18:43,540 --> 02:18:47,340\n我走到哪儿都看到那个\"S\"\n\n1118\n02:18:48,470 --> 02:18:50,470\n也听到人们在说什么\n\n1119\n02:18:50,630 --> 02:18:52,470\n好像他们都认识他\n\n1120\n02:18:53,680 --> 02:18:55,930\n但是他们不认识克拉克\n\n1121\n02:18:57,470 --> 02:18:59,810\n我不能拦住他们\n\n1122\n02:18:59,980 --> 02:19:01,350\n看着他们跟他们说\n\n1123\n02:19:01,520 --> 02:19:04,270\n我为我儿子感到多么骄傲\n\n1124\n02:19:06,270 --> 02:19:08,780\n只有你知道\n\n1125\n02:19:08,940 --> 02:19:11,360\n也只有你能体会\n\n1126\n02:19:12,700 --> 02:19:15,660\n悲伤加上秘密的负担\n\n1127\n02:19:18,830 --> 02:19:22,120\n我大老远跑来是因为我想…\n\n1128\n02:19:22,290 --> 02:19:24,290\n因为我想来见你\n\n1129\n02:19:25,540 --> 02:19:27,500\n告诉你\n\n1130\n02:19:27,670 --> 02:19:29,510\n我能体会\n\n1131\n02:19:31,470 --> 02:19:32,510\n我…\n\n1132\n02:19:33,800 --> 02:19:37,350\n永远都不会像爱你儿子那样爱任何人\n\n1133\n02:19:41,100 --> 02:19:43,100\n我也很想念他\n\n1134\n02:19:44,270 --> 02:19:46,480\n我好想他啊\n\n1135\n02:19:53,200 --> 02:19:54,870\n我也是 亲爱的\n\n1136\n02:19:59,450 --> 02:20:04,330\n玛莎 你有任何需要我都会帮忙\n\n1137\n02:20:07,920 --> 02:20:10,510\n你可以帮我一个忙 亲爱的\n\n1138\n02:20:12,920 --> 02:20:15,180\n继续过活吧\n\n1139\n02:20:55,180 --> 02:20:58,010\n这世界也需要你 露易丝\n\n1140\n02:21:01,810 --> 02:21:02,970\n他人都死了\n\n1141\n02:21:03,310 --> 02:21:05,060\n母盒让维克多死而复生\n\n1142\n02:21:05,230 --> 02:21:06,770\n维克多并没有死\n\n1143\n02:21:06,940 --> 02:21:08,690\n生命不是一就是零\n\n1144\n02:21:08,860 --> 02:21:11,780\n不是生就是死 不能两者都是\n\n1145\n02:21:11,940 --> 02:21:13,610\n你能操作母盒吗 维克多\n\n1146\n02:21:13,780 --> 02:21:14,650\n当然了\n\n1147\n02:21:15,070 --> 02:21:17,490\n但我们不够了解氪星生物学\n\n1148\n02:21:17,660 --> 02:21:19,490\n谁知道会发生什么事\n\n1149\n02:21:21,830 --> 02:21:22,950\n好吧 不过…\n\n1150\n02:21:23,120 --> 02:21:26,750\n我们总得试试 对吧 我们得试试看\n\n1151\n02:21:27,370 --> 02:21:28,460\n还有什么好顾忌的\n\n1152\n02:21:28,630 --> 02:21:31,170\n必须唤醒母盒才能尝试\n\n1153\n02:21:31,340 --> 02:21:32,800\n它一旦苏醒\n\n1154\n02:21:32,960 --> 02:21:35,340\n敌人就会看到 然后闯进来\n\n1155\n02:21:35,510 --> 02:21:38,050\n完成三位一体 世界末日来临\n\n1156\n02:21:38,220 --> 02:21:40,600\n我们会把整个地球…\n\n1157\n02:21:40,760 --> 02:21:42,600\n拱手让给想灭绝人类的外星人 这真是好消息\n\n1158\n02:21:42,760 --> 02:21:45,390\n就算超人能回来\n\n1159\n02:21:45,560 --> 02:21:47,440\n谁敢说他就能打败他们\n\n1160\n02:21:47,600 --> 02:21:49,480\n母盒这么说\n\n1161\n02:21:49,770 --> 02:21:53,020\n维克多的父亲 一年多前启动一个母盒\n\n1162\n02:21:53,190 --> 02:21:54,940\n当时超人还活着\n\n1163\n02:21:55,110 --> 02:21:58,530\n它没召唤荒原狼 没有母盒召唤他 直到…\n\n1164\n02:21:58,700 --> 02:22:00,780\n直到超人死后\n\n1165\n02:22:00,950 --> 02:22:03,370\n直到超人死后\n\n1166\n02:22:03,540 --> 02:22:06,080\n-因为他们怕他 -没错\n\n1167\n02:22:06,660 --> 02:22:08,460\n他们怕他\n\n1168\n02:22:11,380 --> 02:22:13,170\n这是唯一的办法\n\n1169\n02:22:14,840 --> 02:22:18,590\n这团队有六个人 不是五个人 没有他就没有我们\n\n1170\n02:22:28,650 --> 02:22:33,790\n第五章\n\n1171\n02:22:30,180 --> 02:22:33,790\n国王人马\n\n1172\n02:22:34,980 --> 02:22:36,940\n又完成了一项遗愿清单任务\n\n1173\n02:22:37,110 --> 02:22:40,910\n把超人从坟墓里挖出来 搞定\n\n1174\n02:22:41,320 --> 02:22:42,780\n克拉克·乔瑟夫·肯特\n\n1175\n02:22:42,950 --> 02:22:45,370\n你知道我们能在一奈秒内搞定 对吧\n\n1176\n02:22:46,080 --> 02:22:47,450\n没错\n\n1177\n02:22:55,000 --> 02:22:56,630\n他是我的偶像\n\n1178\n02:22:59,260 --> 02:23:00,470\n好吧\n\n1179\n02:23:04,100 --> 02:23:07,140\n亚马逊人和亚特兰蒂斯人并肩作战\n\n1180\n02:23:07,310 --> 02:23:08,560\n半亚特兰蒂斯人\n\n1181\n02:23:10,440 --> 02:23:13,190\n我们的族人有几千年没说过话了\n\n1182\n02:23:13,860 --> 02:23:16,730\n不知道 我和我的族人不亲\n\n1183\n02:23:17,940 --> 02:23:20,650\n我跟亚马逊人一样讨厌亚特兰蒂斯人\n\n1184\n02:23:20,820 --> 02:23:22,860\n互相仇恨真的很没必要\n\n1185\n02:23:25,990 --> 02:23:27,330\n是啊\n\n1186\n02:23:28,620 --> 02:23:30,210\n不 谢了\n\n1187\n02:23:34,750 --> 02:23:37,710\n我父亲告诉我亚特兰蒂斯有句老话\n\n1188\n02:23:39,460 --> 02:23:41,760\n\"只要从黑暗中拿回什么\n\n1189\n02:23:41,930 --> 02:23:44,550\n\"-就一定要… -就一定要付出代价\"\n\n1190\n02:23:46,810 --> 02:23:48,390\n我们也会这么说\n\n1191\n02:23:51,020 --> 02:23:52,350\n真没想到\n\n1192\n02:23:52,850 --> 02:23:54,730\n神奇女侠\n\n1193\n02:23:56,270 --> 02:24:00,070\n你觉得怎样 她会不会喜欢一个小鲜肉\n\n1194\n02:24:00,440 --> 02:24:03,030\n她都五千岁了 巴里\n\n1195\n02:24:04,910 --> 02:24:06,740\n每个男人都是小鲜肉\n\n1196\n02:24:08,740 --> 02:24:09,580\n天啊\n\n1197\n02:24:11,330 --> 02:24:13,040\n真是的\n\n1198\n02:24:16,380 --> 02:24:18,000\n该死\n\n1199\n02:24:19,380 --> 02:24:20,380\n运气怎么样\n\n1200\n02:24:20,550 --> 02:24:21,630\n如果你说的\"运气\"是指…\n\n1201\n02:24:21,800 --> 02:24:24,890\n\"今天能不能让它飞起来的运气\"\n\n1202\n02:24:25,050 --> 02:24:27,050\n那就没有\n\n1203\n02:24:27,930 --> 02:24:29,470\n没关系\n\n1204\n02:24:29,640 --> 02:24:31,350\n无所谓 我们只要把尸体\n\n1205\n02:24:31,520 --> 02:24:33,770\n放进氪星飞船 它基本上是一台有机电脑\n\n1206\n02:24:33,940 --> 02:24:35,940\n可以直接和母盒讲话\n\n1207\n02:24:36,100 --> 02:24:38,570\n什么 就像它跟莱克斯·卢瑟讲话\n\n1208\n02:24:38,730 --> 02:24:39,770\n差不多吧\n\n1209\n02:24:39,940 --> 02:24:43,780\n还会出什么差错\n\n1210\n02:24:50,410 --> 02:24:51,910\n韦恩少爷\n\n1211\n02:24:54,000 --> 02:24:55,210\n你成功了\n\n1212\n02:24:55,580 --> 02:24:58,880\n你组成了团队 一起打这场仗\n\n1213\n02:24:59,170 --> 02:25:01,380\n你实现了承诺\n\n1214\n02:25:02,460 --> 02:25:05,880\n但是想让超人死而复生 我是说…\n\n1215\n02:25:06,510 --> 02:25:08,350\n你的罪恶感超过了理性\n\n1216\n02:25:09,550 --> 02:25:11,680\n再多的国王人马都办不到\n\n1217\n02:25:11,850 --> 02:25:14,940\n阿尔弗雷德 我这次完全凭靠信念\n\n1218\n02:25:15,100 --> 02:25:16,940\n而不是理性\n\n1219\n02:25:17,730 --> 02:25:21,940\n但如果你开始玩弄这个母盒\n\n1220\n02:25:22,110 --> 02:25:24,190\n可能会是一切的终结\n\n1221\n02:25:24,360 --> 02:25:26,240\n你怎么知道你的团队够强大\n\n1222\n02:25:27,490 --> 02:25:29,830\n制伏不了冲过来的公牛\n\n1223\n02:25:29,990 --> 02:25:31,700\n就不要挥舞红色披风\n\n1224\n02:25:31,870 --> 02:25:33,450\n是这个红色披风就可以\n\n1225\n02:25:33,620 --> 02:25:35,790\n红色披风会冲回去\n\n1226\n02:25:50,510 --> 02:25:51,680\n好吧\n\n1227\n02:25:58,650 --> 02:26:01,020\n你是对的 斯通博士 检验报告是阴性\n\n1228\n02:26:01,190 --> 02:26:02,820\n大家都没事 包括你在内\n\n1229\n02:26:02,980 --> 02:26:05,570\n但为了安全起见 我们扫遍了整间实验室\n\n1230\n02:26:05,740 --> 02:26:07,490\n谢谢你 汤玛斯 所以我可以走了吗\n\n1231\n02:26:07,650 --> 02:26:08,490\n当然了\n\n1232\n02:26:12,490 --> 02:26:13,790\n-谢了 -大家听好\n\n1233\n02:26:13,950 --> 02:26:16,410\n你们都没事了 收拾你们的东西\n\n1234\n02:26:16,580 --> 02:26:18,120\n如果需要更多医疗照顾…\n\n1235\n02:26:18,290 --> 02:26:21,960\n亚瑟 我问你 哪个比较低调 选项\"A\"\n\n1236\n02:26:22,130 --> 02:26:23,380\n-绝对不是\"A\" -好吧\n\n1237\n02:26:23,550 --> 02:26:26,670\n或是…\"B\"\n\n1238\n02:26:28,300 --> 02:26:29,550\n我再看看选项\"Ａ\"\n\n1239\n02:26:35,180 --> 02:26:38,310\n好了 该换装了\n\n1240\n02:26:40,440 --> 02:26:42,400\n我一直都穿着\n\n1241\n02:27:09,720 --> 02:27:10,550\n识别证\n\n1242\n02:27:10,800 --> 02:27:11,970\n识别证\n\n1243\n02:27:15,140 --> 02:27:16,260\n遵命\n\n1244\n02:27:18,600 --> 02:27:19,810\n\"遵命\"\n\n1245\n02:27:21,770 --> 02:27:23,900\n星辰实验室人事档案\n\n1246\n02:27:35,860 --> 02:27:37,490\n卫斯理·罗伊\n宪兵 允许通行\n\n1247\n02:27:43,040 --> 02:27:44,380\n可以了\n\n1248\n02:27:44,540 --> 02:27:46,630\n\"可以\" 可以了\n\n1249\n02:27:53,590 --> 02:27:54,680\n博士\n\n1250\n02:27:54,850 --> 02:27:56,050\n他们放你出来了\n\n1251\n02:27:56,220 --> 02:27:57,510\n是啊 他们终于肯听我讲道理\n\n1252\n02:27:57,680 --> 02:27:59,930\n现在让我们看看电子激光\n\n1253\n02:28:00,100 --> 02:28:01,100\n有什么进展\n\n1254\n02:28:01,270 --> 02:28:03,600\n我们有了真正的进展 让我给你看\n\n1255\n02:28:18,700 --> 02:28:21,200\n维克多 清空这地方\n\n1256\n02:28:21,540 --> 02:28:22,790\n没问题\n\n1257\n02:28:27,000 --> 02:28:29,130\n红色警戒 受到污染\n\n1258\n02:28:28,530 --> 02:28:30,460\n生化威胁\n\n1259\n02:28:30,630 --> 02:28:33,090\n全体人员立刻疏散\n\n1260\n02:28:34,130 --> 02:28:35,300\n生化威胁红色警戒\n\n1261\n02:28:35,470 --> 02:28:37,850\n感应器侦测到外星微生物\n\n1262\n02:28:38,010 --> 02:28:40,640\n外星微生物不可能\n\n1263\n02:28:40,810 --> 02:28:41,810\n一定是虚惊一场\n\n1264\n02:28:41,980 --> 02:28:44,350\n各位 关闭实验室 尽快离开\n\n1265\n02:28:44,520 --> 02:28:45,560\n-刚刚才扫过一遍 -走吧\n\n1266\n02:28:45,730 --> 02:28:47,900\n-一定有人误触警报 -走吧 博士\n\n1267\n02:28:48,060 --> 02:28:49,650\n-想想看 -全员撤离\n\n1268\n02:28:49,820 --> 02:28:52,070\n听好 等等 该死\n\n1269\n02:28:52,240 --> 02:28:54,990\n保持冷静 前往最近出口\n\n1270\n02:29:01,450 --> 02:29:03,160\n注意 全体人员\n\n1271\n02:29:03,330 --> 02:29:06,120\n快点 大家都出去 快点\n\n1272\n02:29:06,290 --> 02:29:07,920\n快走 快啊\n\n1273\n02:29:08,080 --> 02:29:09,590\n大家都出去 快点\n\n1274\n02:29:27,980 --> 02:29:29,950\n生化威胁\n\n1275\n02:29:29,950 --> 02:29:30,520\n安全\n\n1276\n02:29:30,610 --> 02:29:31,610\n搞定\n\n1277\n02:29:31,780 --> 02:29:32,610\n搞定了\n\n1278\n02:29:32,980 --> 02:29:35,650\n这是塞拉斯·斯通博士 收到吗\n\n1279\n02:29:35,820 --> 02:29:38,280\n-请说 -这是假警报\n\n1280\n02:29:38,450 --> 02:29:41,620\n有人骇入系统 我们得…\n\n1281\n02:29:50,960 --> 02:29:52,380\n维克多\n\n1282\n02:29:54,130 --> 02:29:56,300\n斯通博士 你在吗 我没收到\n\n1283\n02:29:57,340 --> 02:29:58,340\n我搞错了\n\n1284\n02:29:58,510 --> 02:29:59,720\n警报是真的\n\n1285\n02:29:59,890 --> 02:30:01,470\n大家都出去 任何人 我重复\n\n1286\n02:30:01,640 --> 02:30:04,390\n没有我的允许 任何人都不准回来\n\n1287\n02:30:04,560 --> 02:30:05,810\n收到了\n\n1288\n02:30:16,070 --> 02:30:17,490\n大家都出来\n\n1289\n02:30:17,820 --> 02:30:18,820\n快点 快点\n\n1290\n02:30:23,240 --> 02:30:24,620\n-大家都安全出来了 -应该吧\n\n1291\n02:30:24,790 --> 02:30:25,620\n-每一个人 -对\n\n1292\n02:30:58,950 --> 02:31:00,200\n这里\n\n1293\n02:31:10,790 --> 02:31:12,750\n它知道他来了\n\n1294\n02:31:14,630 --> 02:31:15,920\n超紧张的\n\n1295\n02:31:20,380 --> 02:31:22,260\n太惊人了\n\n1296\n02:31:23,090 --> 02:31:24,300\n太疯狂了\n\n1297\n02:31:24,470 --> 02:31:26,350\n什么 现在才说疯狂\n\n1298\n02:31:26,520 --> 02:31:28,890\n你们这群疯子最好知道自己在干嘛\n\n1299\n02:32:36,250 --> 02:32:40,260\n露易丝·莱恩\n星球日报记者\n\n1300\n02:32:44,630 --> 02:32:48,050\n验孕棒\n\n1301\n02:33:54,870 --> 02:33:56,710\n系统即将上线\n\n1302\n02:34:00,250 --> 02:34:03,880\n欢迎 维克多 您想接手掌控吗\n\n1303\n02:34:04,050 --> 02:34:04,880\n我进去了\n\n1304\n02:34:14,310 --> 02:34:16,520\n这艘飞船说母盒有敌意\n\n1305\n02:34:16,690 --> 02:34:18,350\n我可以取消安全协定\n\n1306\n02:34:18,520 --> 02:34:20,150\n但是没时间修复卢瑟对主电容器\n\n1307\n02:34:20,310 --> 02:34:22,610\n造成的所有的电力损害\n\n1308\n02:34:22,770 --> 02:34:23,940\n说白话\n\n1309\n02:34:24,110 --> 02:34:26,150\n电流不够 无法唤醒母盒\n\n1310\n02:34:27,110 --> 02:34:28,530\n我可能有办法\n\n1311\n02:34:30,870 --> 02:34:32,780\n我也许可以启动它\n\n1312\n02:34:32,950 --> 02:34:33,990\n我不喜欢打破这规则\n\n1313\n02:34:34,160 --> 02:34:36,080\n但是当我接近光速 我…\n\n1314\n02:34:36,250 --> 02:34:37,750\n听着 时间会发生疯狂的事\n\n1315\n02:34:37,910 --> 02:34:40,500\n但要是我成功了 就能制造巨大的电力\n\n1316\n02:34:40,670 --> 02:34:42,420\n我可以往回跑 只要距离够远\n\n1317\n02:34:42,590 --> 02:34:44,750\n就能传导大量电流\n\n1318\n02:34:44,920 --> 02:34:47,260\n也许可以唤醒母盒 如果…\n\n1319\n02:34:47,670 --> 02:34:49,260\n还是要这么做的话\n\n1320\n02:34:49,430 --> 02:34:50,840\n没错 开始吧\n\n1321\n02:34:55,680 --> 02:34:56,890\n你好 莱恩小姐\n\n1322\n02:34:57,060 --> 02:34:57,890\n早安\n\n1323\n02:34:58,060 --> 02:34:59,310\n我以为你不会来了\n\n1324\n02:35:00,600 --> 02:35:01,940\n最后一次\n\n1325\n02:35:04,480 --> 02:35:06,070\n封锁线 请勿跨越\n\n1326\n02:35:19,080 --> 02:35:22,460\n我看到发动机 这一定是终点线\n\n1327\n02:35:22,960 --> 02:35:24,040\n我就位了\n\n1328\n02:35:26,920 --> 02:35:29,010\n准备开始投放程序\n\n1329\n02:35:29,470 --> 02:35:31,090\n母盒准备好了\n\n1330\n02:35:50,610 --> 02:35:52,450\n这艘飞船在求我不要唤醒母盒\n\n1331\n02:35:52,610 --> 02:35:54,410\n-这是无法逆转的程序 -它很害怕\n\n1332\n02:35:54,570 --> 02:35:55,660\n它知道荒原狼会来找它\n\n1333\n02:35:55,830 --> 02:35:57,580\n我们知道了 继续吧\n\n1334\n02:35:57,910 --> 02:36:00,370\n我强烈建议不要启动\n\n1335\n02:36:00,540 --> 02:36:02,080\n巴里 我要开始倒数了\n\n1336\n02:36:02,250 --> 02:36:03,960\n这是无法逆转的程序\n\n1337\n02:36:04,210 --> 02:36:05,170\n-五 -五\n\n1338\n02:36:05,250 --> 02:36:06,090\n五\n\n1339\n02:36:06,250 --> 02:36:07,380\n-天启星有敌意 -馊主意\n\n1340\n02:36:07,550 --> 02:36:08,510\n并不是 继续吧\n\n1341\n02:36:08,800 --> 02:36:09,630\n四\n\n1342\n02:36:09,800 --> 02:36:10,970\n-四 -四\n\n1343\n02:36:11,130 --> 02:36:12,840\n-我强烈建议不要启动 -我们得立刻中止\n\n1344\n02:36:13,010 --> 02:36:13,970\n快动手\n\n1345\n02:36:14,300 --> 02:36:15,300\n-三 -三\n\n1346\n02:36:15,470 --> 02:36:16,390\n三\n\n1347\n02:36:16,560 --> 02:36:18,470\n-二 -二\n\n1348\n02:36:18,640 --> 02:36:20,390\n-二 -这是无法逆转的程序\n\n1349\n02:36:20,680 --> 02:36:21,640\n-一 -一\n\n1350\n02:36:22,690 --> 02:36:25,480\n-一 -这是无法逆转的程序\n\n1351\n02:37:45,900 --> 02:37:49,860\n正义联盟\n\n1352\n02:37:54,400 --> 02:37:55,990\n-维克多 -不\n\n1353\n02:37:57,030 --> 02:37:57,860\n上\n\n1354\n02:39:28,580 --> 02:39:31,630\n未来已经在现在扎根\n\n1355\n02:39:32,170 --> 02:39:33,210\n快趴下\n\n1356\n02:40:49,330 --> 02:40:54,330\n你若在寻找他的纪念碑 看看你周围\n\n1357\n02:41:17,310 --> 02:41:18,860\n他活过来了\n\n1358\n02:41:45,880 --> 02:41:48,600\n不太对劲 他在扫描我们\n\n1359\n02:41:50,720 --> 02:41:52,140\n什么\n\n1360\n02:42:07,320 --> 02:42:08,160\n维克多\n\n1361\n02:42:09,450 --> 02:42:10,450\n维克多\n\n1362\n02:42:12,740 --> 02:42:14,290\n-该死 -你在干嘛\n\n1363\n02:42:14,750 --> 02:42:16,290\n是我的自动防御系统\n\n1364\n02:42:16,460 --> 02:42:17,500\n它感应到危险\n\n1365\n02:42:17,670 --> 02:42:18,830\n维克多 住手\n\n1366\n02:42:19,000 --> 02:42:20,840\n-我无法控制 -住手\n\n1367\n02:42:33,270 --> 02:42:34,430\n卡尔·艾尔 不要\n\n1368\n02:42:42,820 --> 02:42:44,780\n他头脑不清楚 不知道自己是谁\n\n1369\n02:42:51,950 --> 02:42:54,580\n亚瑟 我们得制伏他\n\n1370\n02:43:25,150 --> 02:43:28,780\n卡尔·艾尔 最后的氪星之子\n\n1371\n02:43:29,860 --> 02:43:32,070\n回想你是谁\n\n1372\n02:43:33,700 --> 02:43:35,120\n告诉我你是谁\n\n1373\n02:45:09,920 --> 02:45:10,760\n快逃\n\n1374\n02:45:20,180 --> 02:45:21,810\n你最好闪边\n\n1375\n02:45:25,100 --> 02:45:26,100\n-没事吗 -没事\n\n1376\n02:45:26,270 --> 02:45:28,730\n起来 去找掩护 快去\n\n1377\n02:46:21,160 --> 02:46:23,200\n别逼我这么做\n\n1378\n02:46:55,900 --> 02:46:57,030\n克拉克\n\n1379\n02:46:58,110 --> 02:46:59,280\n克拉克 不\n\n1380\n02:47:10,880 --> 02:47:11,840\n克拉克\n\n1381\n02:47:12,250 --> 02:47:13,420\n不\n\n1382\n02:47:14,250 --> 02:47:16,010\n这世界需要你\n\n1383\n02:47:21,300 --> 02:47:22,220\n克拉克\n\n1384\n02:47:22,600 --> 02:47:23,850\n克拉克\n\n1385\n02:47:24,180 --> 02:47:25,970\n别开枪\n\n1386\n02:47:27,560 --> 02:47:28,690\n克拉克\n\n1387\n02:47:32,060 --> 02:47:33,440\n求求你\n\n1388\n02:48:07,680 --> 02:48:08,810\n求求你\n\n1389\n02:48:20,030 --> 02:48:21,200\n求求你\n\n1390\n02:48:21,950 --> 02:48:23,740\n走吧\n\n1391\n02:48:24,200 --> 02:48:25,200\n没错\n\n1392\n02:48:26,080 --> 02:48:27,370\n我们走吧\n\n1393\n02:48:59,940 --> 02:49:02,280\n真是拍谢\n\n1394\n02:49:11,500 --> 02:49:12,410\n找掩护\n\n1395\n02:49:12,580 --> 02:49:15,080\n-他来了 -母盒\n\n1396\n02:49:15,250 --> 02:49:16,290\n它在哪里\n\n1397\n02:49:27,010 --> 02:49:28,220\n快点\n\n1398\n02:49:29,140 --> 02:49:30,430\n快点\n\n1399\n02:49:55,960 --> 02:49:59,000\n注意 实验室受到入侵\n\n1400\n02:49:59,590 --> 02:50:01,760\n第四区 第三层\n\n1401\n02:50:01,920 --> 02:50:04,720\n立刻执行封锁程序\n\n1402\n02:50:33,290 --> 02:50:34,870\n把母盒给我\n\n1403\n02:50:48,050 --> 02:50:49,470\n不 不\n\n1404\n02:50:52,010 --> 02:50:53,720\n爸 等等 不要\n\n1405\n02:51:34,060 --> 02:51:36,930\n末日即将开始\n\n1406\n02:51:42,690 --> 02:51:43,980\n维克多\n\n1407\n02:51:46,530 --> 02:51:49,650\n维克多 你没事吧 站起来\n\n1408\n02:51:55,660 --> 02:51:56,830\n维克多\n\n1409\n02:51:57,950 --> 02:51:59,410\n他死了\n\n1410\n02:51:59,580 --> 02:52:00,580\n什么\n\n1411\n02:52:01,670 --> 02:52:02,880\n我父亲\n\n1412\n02:52:04,340 --> 02:52:07,300\n我没能救他 我没办法\n\n1413\n02:52:08,090 --> 02:52:09,380\n天啊\n\n1414\n02:52:16,310 --> 02:52:18,390\n他父亲是因我们而死\n\n1415\n02:52:18,560 --> 02:52:20,020\n我就说唤醒母盒是个馊主意\n\n1416\n02:52:20,190 --> 02:52:21,770\n这不是个馊主意\n\n1417\n02:52:21,940 --> 02:52:24,270\n我们需要超人 现在仍然需要\n\n1418\n02:52:24,440 --> 02:52:26,730\n不管是什么回来了 那不是超人\n\n1419\n02:52:26,900 --> 02:52:29,900\n也许是他的躯体和超能力 但那不是他\n\n1420\n02:52:30,070 --> 02:52:31,700\n那是他\n\n1421\n02:52:31,860 --> 02:52:33,990\n他认得露易丝·莱恩\n\n1422\n02:52:34,370 --> 02:52:36,280\n-谁 -他挚爱的女人\n\n1423\n02:52:36,660 --> 02:52:38,660\n-他记得她 -才怪\n\n1424\n02:52:39,200 --> 02:52:40,960\n他会去找她是因为她不怕他\n\n1425\n02:52:41,120 --> 02:52:42,540\n这叫做直觉 戴安娜\n\n1426\n02:52:49,970 --> 02:52:51,800\n等等 荒原狼去了哪儿\n\n1427\n02:52:51,970 --> 02:52:55,300\n他回去基地组装三个母盒\n\n1428\n02:52:55,470 --> 02:52:57,560\n我们不知道他的基地在哪里 或是还要多久…\n\n1429\n02:52:57,720 --> 02:52:58,560\n几个小时\n\n1430\n02:52:58,720 --> 02:53:00,390\n盒子一旦同步 形成三位一体\n\n1431\n02:53:00,560 --> 02:53:02,810\n我们不能及时阻止他 地球就完了\n\n1432\n02:53:03,730 --> 02:53:05,400\n这不像你\n\n1433\n02:53:07,940 --> 02:53:09,440\n他早就知道\n\n1434\n02:53:09,730 --> 02:53:11,320\n他早就知道了\n\n1435\n02:53:11,490 --> 02:53:12,900\n他不是想要摧毁那个母盒\n\n1436\n02:53:13,320 --> 02:53:15,240\n而是想要让它过热\n\n1437\n02:53:15,410 --> 02:53:18,080\n让核心变成核反应炉以外 地球上最热的东西\n\n1438\n02:53:18,240 --> 02:53:20,290\n-那么热的东西一定会… -热源影像系统\n\n1439\n02:53:20,450 --> 02:53:22,660\n一定会破表\n\n1440\n02:53:22,830 --> 02:53:26,210\n你父亲为了标记母盒牺牲自己\n\n1441\n02:53:26,380 --> 02:53:28,250\n我们得回我的实验室使用卫星\n\n1442\n02:53:28,420 --> 02:53:30,420\n扫描地球哪里有热异常\n\n1443\n02:53:30,590 --> 02:53:31,720\n我已经在扫描了\n\n1444\n02:53:31,880 --> 02:53:33,880\n什么 你有一颗卫星\n\n1445\n02:53:34,050 --> 02:53:35,010\n我有六颗\n\n1446\n02:53:35,680 --> 02:53:36,600\n是喔\n\n1447\n02:53:38,390 --> 02:53:40,390\n咱们去找那个混帐东西\n\n1448\n02:53:46,190 --> 02:53:51,480\n第六章\n\n1449\n02:53:47,930 --> 02:53:51,480\n“更黑暗的东西”\n\n1450\n02:54:01,280 --> 02:54:04,790\n法拍屋出售\n\n1451\n02:54:04,960 --> 02:54:07,040\n你把我带来这里\n\n1452\n02:54:07,210 --> 02:54:08,380\n你记得\n\n1453\n02:54:09,290 --> 02:54:10,920\n这是我的家\n\n1454\n02:54:12,840 --> 02:54:14,050\n你说话了\n\n1455\n02:54:18,090 --> 02:54:19,970\n我之前没有吗\n\n1456\n02:54:53,960 --> 02:54:56,510\n你母亲迟缴了房贷\n\n1457\n02:54:58,010 --> 02:55:00,010\n没有告诉任何人\n\n1458\n02:55:01,680 --> 02:55:03,430\n我不明白\n\n1459\n02:55:06,520 --> 02:55:08,940\n她的自尊心很强 克拉克\n\n1460\n02:55:12,070 --> 02:55:13,440\n穿上去\n\n1461\n02:55:28,370 --> 02:55:30,040\n她很喜欢这里\n\n1462\n02:55:40,840 --> 02:55:42,470\n我也是\n\n1463\n02:55:44,470 --> 02:55:45,890\n我也是\n\n1464\n02:56:13,000 --> 02:56:14,630\n这太酷了\n\n1465\n02:56:14,790 --> 02:56:16,300\n我带了一些朋友来\n\n1466\n02:56:22,840 --> 02:56:25,430\n天啊 太棒了\n\n1467\n02:56:25,600 --> 02:56:28,100\n大伙儿 这是阿尔弗雷德 我替他工作\n\n1468\n02:56:28,270 --> 02:56:30,480\n-阿尔弗雷德 -你好 女士\n\n1469\n02:56:36,940 --> 02:56:38,820\n这里真的很酷 阿尔弗雷德\n\n1470\n02:56:41,610 --> 02:56:44,030\n我去泡茶\n\n1471\n02:56:44,200 --> 02:56:45,200\n太好了\n\n1472\n02:56:45,370 --> 02:56:47,200\n不知道哪里有这么多杯子\n\n1473\n02:56:50,120 --> 02:56:52,960\n那就是母盒 就在那里\n\n1474\n02:56:53,120 --> 02:56:54,920\n显示可见光谱\n\n1475\n02:56:57,800 --> 02:56:58,630\n普扎诺夫\n\n1476\n02:56:59,210 --> 02:57:02,050\n离莫斯科不远的鬼城\n\n1477\n02:57:02,220 --> 02:57:04,890\n三十年前发生核事故后被废弃\n\n1478\n02:57:05,050 --> 02:57:06,260\n就连军队也不进去\n\n1479\n02:57:06,430 --> 02:57:07,720\n是啊 辐射性一定强到\n\n1480\n02:57:07,890 --> 02:57:10,060\n你的脖子会长出另一只脚\n\n1481\n02:57:10,230 --> 02:57:11,060\n不再是这样了\n\n1482\n02:57:11,230 --> 02:57:13,400\n他收集了辐射 用来创建他的基地\n\n1483\n02:57:13,560 --> 02:57:14,400\n放大\n\n1484\n02:57:18,400 --> 02:57:19,780\n他到底在盖什么\n\n1485\n02:57:19,940 --> 02:57:21,190\n三位一体在里面\n\n1486\n02:57:21,360 --> 02:57:22,780\n我们要从上面进攻\n\n1487\n02:57:22,950 --> 02:57:25,530\n炸药无法分开母盒\n\n1488\n02:57:25,700 --> 02:57:27,530\n只会强化它们的联系\n\n1489\n02:57:27,700 --> 02:57:28,830\n什么 我们不能炸掉它\n\n1490\n02:57:28,990 --> 02:57:30,450\n不能从外面\n\n1491\n02:57:32,040 --> 02:57:34,420\n我想插入合而为一的母盒\n\n1492\n02:57:35,130 --> 02:57:36,540\n和它融为一体\n\n1493\n02:57:36,710 --> 02:57:39,250\n从内部削弱它的连结 就能够再把它拆成三个\n\n1494\n02:57:39,420 --> 02:57:41,630\n不行 你不知道你会面对什么\n\n1495\n02:57:41,800 --> 02:57:45,340\n你得一个人融入三位一体\n\n1496\n02:57:45,510 --> 02:57:47,850\n这三个母盒结合起来足以毁天灭地\n\n1497\n02:57:48,010 --> 02:57:49,430\n它们存在了十亿年\n\n1498\n02:57:49,600 --> 02:57:51,730\n绝对会钻进你脑袋 找到你的弱点\n\n1499\n02:57:51,890 --> 02:57:54,060\n和你的恐惧 并用来摧毁你\n\n1500\n02:57:54,230 --> 02:57:56,230\n只要让我进去 替我争取时间\n\n1501\n02:57:56,480 --> 02:57:57,650\n你可能会死 维克多\n\n1502\n02:57:57,810 --> 02:58:00,110\n我不这样做 我们都会死\n\n1503\n02:58:04,860 --> 02:58:06,620\n我失去了一切\n\n1504\n02:58:12,000 --> 02:58:13,960\n你不是要我使用这些超能力吗\n\n1505\n02:58:17,040 --> 02:58:18,540\n我就要这么做\n\n1506\n02:58:18,710 --> 02:58:20,590\n好吧 所以…\n\n1507\n02:58:21,300 --> 02:58:24,550\n维克多想和末日母盒 合而为一拯救世界\n\n1508\n02:58:24,760 --> 02:58:26,930\n那就让他这么做吧\n\n1509\n02:58:27,260 --> 02:58:30,060\n但要让他这么做就得攻击基地\n\n1510\n02:58:30,220 --> 02:58:32,430\n深入地狱向魔鬼与他的军团…\n\n1511\n02:58:32,600 --> 02:58:33,640\n正式开战\n\n1512\n02:58:33,810 --> 02:58:36,060\n这家伙在他摧毁的星球上\n\n1513\n02:58:36,230 --> 02:58:40,190\n大概打过成千上万个超级英雄 对吧\n\n1514\n02:58:40,360 --> 02:58:41,860\n我们得假设他都赢了\n\n1515\n02:58:42,030 --> 02:58:45,150\n我才不管他在多少个地狱 打过多少恶魔\n\n1516\n02:58:45,320 --> 02:58:48,820\n他没打过我们 团结一致的我们\n\n1517\n02:59:39,290 --> 02:59:40,920\n我猜你说\"愿意\"\n\n1518\n02:59:41,540 --> 02:59:42,380\n什么\n\n1519\n02:59:45,840 --> 02:59:47,090\n那只婚戒\n\n1520\n02:59:50,800 --> 02:59:52,350\n你真的回来了\n\n1521\n03:00:25,840 --> 03:00:28,050\n我得到第二次机会\n\n1522\n03:00:30,340 --> 03:00:32,800\n绝对不会白白浪费\n\n1523\n03:01:31,070 --> 03:01:32,240\n真的是你吗\n\n1524\n03:01:32,400 --> 03:01:34,110\n真的是我 妈\n\n1525\n03:01:52,130 --> 03:01:54,180\n听好 妈\n\n1526\n03:01:55,760 --> 03:01:57,800\n他们让我回来一定有原因\n\n1527\n03:01:59,560 --> 03:02:01,100\n我得知道为什么\n\n1528\n03:02:21,240 --> 03:02:22,660\n维克多怎么样\n\n1529\n03:02:27,040 --> 03:02:29,790\n你也知道 他想独处一下\n\n1530\n03:02:31,380 --> 03:02:34,550\n我们要求一个刚失去父亲的孩子…\n\n1531\n03:02:34,720 --> 03:02:37,510\n对抗全宇宙最强大的机器\n\n1532\n03:02:39,350 --> 03:02:40,850\n这不公平\n\n1533\n03:02:42,600 --> 03:02:44,230\n我以为你不在乎\n\n1534\n03:02:45,640 --> 03:02:47,150\n我从来没这么说过\n\n1535\n03:03:00,080 --> 03:03:01,490\n怎么了\n\n1536\n03:03:05,410 --> 03:03:10,420\n我做过一个梦 不晓得 几乎就像一种预感\n\n1537\n03:03:11,380 --> 03:03:14,170\n那是世界末日\n\n1538\n03:03:14,340 --> 03:03:17,180\n巴里·艾伦就在这里\n\n1539\n03:03:17,340 --> 03:03:21,220\n他跟我说 \"露易丝·莱恩才是关键\"\n\n1540\n03:03:23,890 --> 03:03:27,100\n对超人来说…她是\n\n1541\n03:03:28,150 --> 03:03:29,770\n每个人都有心爱的人\n\n1542\n03:03:30,400 --> 03:03:32,270\n我想不只是这样\n\n1543\n03:03:33,150 --> 03:03:35,030\n这是更黑暗的东西\n\n1544\n03:03:39,200 --> 03:03:40,200\n韦恩少爷\n\n1545\n03:03:40,370 --> 03:03:41,870\n韦恩少爷\n\n1546\n03:03:42,700 --> 03:03:44,370\n你得来看看\n\n1547\n03:04:07,640 --> 03:04:09,350\n你修好了\n\n1548\n03:04:09,520 --> 03:04:11,230\n它想要飞行\n\n1549\n03:04:12,480 --> 03:04:13,820\n飞行是它的本能\n\n1550\n03:04:13,980 --> 03:04:15,280\n也是你的\n\n1551\n03:04:22,070 --> 03:04:24,030\n他会来的 阿尔弗雷德 我知道\n\n1552\n03:04:24,200 --> 03:04:25,830\n你为何这么肯定\n\n1553\n03:04:26,580 --> 03:04:29,160\n信念 阿尔弗雷德 信念\n\n1554\n03:04:51,270 --> 03:04:52,850\n终于\n\n1555\n03:04:54,690 --> 03:04:57,400\n准备迎接他的到来\n\n1556\n03:04:59,240 --> 03:05:03,370\n我即将得到救赎\n\n1557\n03:05:11,250 --> 03:05:12,710\n合而为一\n\n1558\n03:05:17,880 --> 03:05:20,380\n同步化\n\n1559\n03:06:04,720 --> 03:06:07,640\n卫星显示他打造了一个防御圆顶\n\n1560\n03:06:07,800 --> 03:06:08,970\n这是个设计缺陷\n\n1561\n03:06:09,140 --> 03:06:11,390\n把塔台射倒 圆顶就会崩垮\n\n1562\n03:06:11,560 --> 03:06:13,560\n敌人不会料到我们正面攻击\n\n1563\n03:06:13,730 --> 03:06:17,230\n是啊 因为他没想到 有人会这么疯狂\n\n1564\n03:06:18,230 --> 03:06:19,520\n布鲁斯是对的\n\n1565\n03:06:19,690 --> 03:06:21,280\n我们必须摧毁防御圆顶\n\n1566\n03:06:21,440 --> 03:06:23,740\n在它们同步化之前找到母盒\n\n1567\n03:06:23,900 --> 03:06:25,610\n要是圆顶没被摧毁呢\n\n1568\n03:06:25,780 --> 03:06:26,780\n它一定会被摧毁\n\n1569\n03:06:26,950 --> 03:06:28,580\n维克多一旦融入三位一体\n\n1570\n03:06:29,080 --> 03:06:32,330\n有巴里的协助 他就能突破母盒的防御\n\n1571\n03:06:32,500 --> 03:06:33,960\n提醒我 我该怎么做\n\n1572\n03:06:34,120 --> 03:06:35,750\n用爱的力量\n\n1573\n03:06:35,920 --> 03:06:38,540\n-巴里 -我得造成能量大爆发\n\n1574\n03:06:38,710 --> 03:06:39,710\n很好\n\n1575\n03:06:39,880 --> 03:06:41,760\n你得比以前跑得更快\n\n1576\n03:06:41,920 --> 03:06:44,470\n才能产生这么大的电流\n\n1577\n03:06:44,630 --> 03:06:46,640\n然后直接碰触维克多的身体\n\n1578\n03:06:46,970 --> 03:06:49,850\n那股能量应该能让他进入母盒\n\n1579\n03:06:50,010 --> 03:06:51,890\n维克多 之后就靠你了\n\n1580\n03:06:52,060 --> 03:06:54,810\n在它同步化之前把它扯开\n\n1581\n03:06:56,390 --> 03:06:58,520\n我们终于有了计划\n\n1582\n03:06:59,060 --> 03:07:00,770\n我们有了计划\n\n1583\n03:07:16,120 --> 03:07:18,170\n艾尔之家的标记代表希望\n\n1584\n03:07:18,330 --> 03:07:20,500\n这希望包含了一个基本的信念\n\n1585\n03:07:20,670 --> 03:07:24,380\n那就是每个人都有行善的潜力\n\n1586\n03:07:24,550 --> 03:07:25,380\n克拉克\n\n1587\n03:07:25,550 --> 03:07:26,840\n那就是你能带给他们的\n\n1588\n03:07:27,010 --> 03:07:28,970\n你被送来这里是有原因的\n\n1589\n03:07:29,140 --> 03:07:33,010\n你将给地球的人类 一个努力达到的理想\n\n1590\n03:07:33,680 --> 03:07:35,520\n就算你必须穷尽一生\n\n1591\n03:07:35,680 --> 03:07:39,440\n也得尽全力找到你来这里的原因\n\n1592\n03:07:39,600 --> 03:07:42,230\n他们会犯错 也会失败\n\n1593\n03:07:42,400 --> 03:07:43,730\n但你必须做出选择\n\n1594\n03:07:44,530 --> 03:07:46,950\n他们将与你一起迎向阳光\n\n1595\n03:07:47,110 --> 03:07:51,070\n你必须选择是否要 骄傲地站在全人类面前\n\n1596\n03:07:51,240 --> 03:07:54,410\n你将帮助他们完成奇迹\n\n1597\n03:08:11,550 --> 03:08:16,060\n氪星所有的希望和梦想 都寄托在你身上\n\n1598\n03:08:16,220 --> 03:08:18,480\n我真为你感到骄傲 儿子\n\n1599\n03:08:19,810 --> 03:08:21,860\n你母亲和我都很爱你\n\n1600\n03:08:22,520 --> 03:08:26,070\n你母亲和我都知道你会改变世界\n\n1601\n03:08:27,360 --> 03:08:29,200\n你的心受到考验\n\n1602\n03:08:30,490 --> 03:08:32,450\n我知道这很难 克拉克\n\n1603\n03:08:33,200 --> 03:08:36,120\n但你给了他们的世界一个希望\n\n1604\n03:08:36,290 --> 03:08:38,960\n你必须让他们看到你是谁\n\n1605\n03:08:39,660 --> 03:08:41,370\n爱他们吧 卡尔·艾尔\n\n1606\n03:08:42,000 --> 03:08:44,130\n就像我们爱你一样\n\n1607\n03:08:46,590 --> 03:08:47,710\n飞吧 儿子\n\n1608\n03:08:48,760 --> 03:08:49,970\n是时候了\n\n1609\n03:09:53,740 --> 03:09:56,870\n我要把塔台射倒 破坏力场圆顶\n\n1610\n03:09:57,030 --> 03:09:58,160\n不管你们看到什么\n\n1611\n03:09:59,490 --> 03:10:01,450\n都要按照计划\n\n1612\n03:10:03,330 --> 03:10:05,250\n这就是我把你们聚在一起的原因\n\n1613\n03:10:45,330 --> 03:10:47,080\n布鲁斯 撤退 你不会成功的\n\n1614\n03:10:50,880 --> 03:10:52,920\n只要敲大声一点\n\n1615\n03:11:17,910 --> 03:11:19,490\n杀了他\n\n1616\n03:11:19,660 --> 03:11:22,410\n快去捍卫三位一体\n\n1617\n03:11:27,710 --> 03:11:28,630\n惨了\n\n1618\n03:11:48,940 --> 03:11:49,860\n塔台倒了\n\n1619\n03:11:51,480 --> 03:11:52,900\n收到吗\n\n1620\n03:11:53,530 --> 03:11:54,650\n收到了\n\n1621\n03:11:55,740 --> 03:11:57,110\n你没事吗\n\n1622\n03:11:58,360 --> 03:12:00,950\n布鲁斯\n\n1623\n03:12:01,240 --> 03:12:02,120\n快去反应炉\n\n1624\n03:12:02,280 --> 03:12:04,790\n我会尽量把这些怪物引开来\n\n1625\n03:12:04,950 --> 03:12:05,790\n那是什么意思\n\n1626\n03:12:08,790 --> 03:12:10,790\n别担心我 快去找到母盒\n\n1627\n03:12:13,460 --> 03:12:14,630\n它们来了\n\n1628\n03:12:15,010 --> 03:12:15,920\n布鲁斯\n\n1629\n03:12:18,840 --> 03:12:20,140\n失去讯号\n\n1630\n03:12:21,850 --> 03:12:23,100\n上吧\n\n1631\n03:13:02,010 --> 03:13:03,850\n跟我来呀 你们这群臭虫\n\n1632\n03:14:23,800 --> 03:14:24,970\n严重受损\n\n1633\n03:15:04,970 --> 03:15:06,220\n你真的发疯了\n\n1634\n03:15:33,120 --> 03:15:34,250\n不客气\n\n1635\n03:15:34,410 --> 03:15:35,710\n厉害 兄弟\n\n1636\n03:17:08,800 --> 03:17:10,430\n放心 我们能搞定\n\n1637\n03:17:10,590 --> 03:17:11,970\n你去做该做的事\n\n1638\n03:18:07,770 --> 03:18:09,280\n我猜你就是阿尔弗雷德\n\n1639\n03:18:11,150 --> 03:18:12,450\n肯特少爷\n\n1640\n03:18:14,490 --> 03:18:15,990\n他说你会来\n\n1641\n03:18:17,700 --> 03:18:21,120\n希望你没有来得太晚\n\n1642\n03:18:31,970 --> 03:18:33,050\n喂\n\n1643\n03:18:42,350 --> 03:18:43,690\n记得我吗\n\n1644\n03:18:46,230 --> 03:18:47,650\n第二回合\n\n1645\n03:18:48,360 --> 03:18:49,520\n好啊\n\n1646\n03:19:11,050 --> 03:19:12,420\n上吧\n\n1647\n03:19:13,380 --> 03:19:15,680\n告诉我 亚马逊女战士\n\n1648\n03:19:15,840 --> 03:19:19,140\n你为何抛弃自己的姐妹\n\n1649\n03:19:20,060 --> 03:19:22,470\n跑来跟这些卑微的生物\n\n1650\n03:19:22,640 --> 03:19:25,940\n混在一起\n\n1651\n03:19:26,140 --> 03:19:28,980\n你没能赶去保护她们被我屠杀\n\n1652\n03:19:29,230 --> 03:19:31,440\n可悲的是 你本来可以的\n\n1653\n03:20:12,230 --> 03:20:13,940\n巴里 我就位了\n\n1654\n03:20:32,710 --> 03:20:35,420\n好 我来产生电流\n\n1655\n03:20:36,050 --> 03:20:37,130\n你来倒数\n\n1656\n03:20:38,300 --> 03:20:39,550\n等我倒数到一\n\n1657\n03:20:40,220 --> 03:20:42,180\n三 二…\n\n1658\n03:20:45,350 --> 03:20:46,730\n放开我\n\n1659\n03:20:47,230 --> 03:20:48,560\n维克多\n\n1660\n03:21:24,640 --> 03:21:26,180\n维克多\n\n1661\n03:21:30,020 --> 03:21:32,520\n我看着你的小岛燃烧\n\n1662\n03:21:32,690 --> 03:21:36,150\n你的姐妹哀求我饶她们一命\n\n1663\n03:21:36,320 --> 03:21:38,570\n你母亲也一样\n\n1664\n03:21:38,940 --> 03:21:39,950\n骗子\n\n1665\n03:22:05,680 --> 03:22:07,680\n我撑不住了\n\n1666\n03:22:08,560 --> 03:22:09,560\n维克多\n\n1667\n03:22:31,790 --> 03:22:34,000\n维克多 我撑不住了\n\n1668\n03:22:40,670 --> 03:22:42,920\n为了达克赛德\n\n1669\n03:22:46,890 --> 03:22:49,260\n没什么用\n\n1670\n03:23:33,770 --> 03:23:34,890\n好吧\n\n1671\n03:23:35,060 --> 03:23:36,650\n卡尔·艾尔\n\n1672\n03:24:15,180 --> 03:24:17,390\n巴里 我连上了母盒\n\n1673\n03:24:17,560 --> 03:24:19,520\n我需要电流才能进去\n\n1674\n03:24:41,590 --> 03:24:42,590\n巴里\n\n1675\n03:24:43,500 --> 03:24:45,170\n巴里 你没事吧\n\n1676\n03:24:46,800 --> 03:24:47,630\n巴里\n\n1677\n03:24:47,800 --> 03:24:51,390\n我没力了 我得喘口气\n\n1678\n03:25:08,490 --> 03:25:11,320\n巴里 你在哪里 它快要同步化了\n\n1679\n03:25:11,570 --> 03:25:13,330\n好吧 好吧\n\n1680\n03:25:14,160 --> 03:25:16,330\n喔买尬 快点愈合 巴里\n\n1681\n03:25:16,500 --> 03:25:18,160\n愈合啊\n\n1682\n03:25:44,020 --> 03:25:45,570\n巴里\n\n1683\n03:25:58,500 --> 03:26:00,210\n太迟了\n\n1684\n03:26:01,540 --> 03:26:02,960\n噢 不\n\n1685\n03:26:07,170 --> 03:26:08,840\n他来了\n\n1686\n03:26:38,330 --> 03:26:39,160\n好吧\n\n1687\n03:26:39,330 --> 03:26:41,910\n我得超越光速 跑得比光速更快\n\n1688\n03:26:42,080 --> 03:26:45,330\n你得打破规则 巴里 现在就得这么做\n\n1689\n03:26:58,390 --> 03:27:00,100\n爸…\n\n1690\n03:27:03,940 --> 03:27:06,270\n不管发生什么事 我都要你知道\n\n1691\n03:27:08,980 --> 03:27:10,980\n你儿子也是一个英雄 爸\n\n1692\n03:27:14,200 --> 03:27:16,110\n精英中的精英\n\n1693\n03:28:11,550 --> 03:28:14,090\n创造自己的未来\n\n1694\n03:28:20,550 --> 03:28:22,510\n也创造自己的过去\n\n1695\n03:28:27,100 --> 03:28:30,650\n一切都没事了\n\n1696\n03:29:00,640 --> 03:29:02,350\n斯通 哥谭市立大学\n\n1697\n03:29:07,020 --> 03:29:09,600\n哥谭市\n\n1698\n03:29:17,690 --> 03:29:19,860\n我们一直在等着你 维克多\n\n1699\n03:29:20,990 --> 03:29:23,070\n我破碎的儿子\n\n1700\n03:29:25,490 --> 03:29:27,500\n你不会再孤单了\n\n1701\n03:29:27,660 --> 03:29:29,330\n我们会再全家团圆\n\n1702\n03:29:37,170 --> 03:29:39,260\n我们可以像以前一样\n\n1703\n03:29:43,600 --> 03:29:45,720\n让你恢复原状\n\n1704\n03:29:57,570 --> 03:29:59,320\n我并没有破碎\n\n1705\n03:30:09,040 --> 03:30:10,910\n我也并不孤单\n\n1706\n03:30:27,720 --> 03:30:28,720\n超人\n\n1707\n03:31:59,400 --> 03:32:01,360\n我跟你说过\n\n1708\n03:32:02,940 --> 03:32:05,570\n荒原狼会失败\n\n1709\n03:32:06,530 --> 03:32:10,200\n没错 你是说过\n\n1710\n03:32:10,870 --> 03:32:15,370\n我的主人 母盒被摧毁了\n\n1711\n03:32:16,250 --> 03:32:20,000\n你要怎么得到你的大奖\n\n1712\n03:32:20,250 --> 03:32:23,670\n找到了反生命方程序 狄萨德\n\n1713\n03:32:23,840 --> 03:32:28,510\n我们会不择手段得到它\n\n1714\n03:32:31,680 --> 03:32:33,180\n准备出动舰队\n\n1715\n03:32:34,100 --> 03:32:36,520\n我们要用老方法\n\n1716\n03:34:39,080 --> 03:34:44,270\n后记\n\n1717\n03:34:40,690 --> 03:34:44,270\n再为人父\n\n1718\n03:35:00,870 --> 03:35:03,000\n这又是你父亲\n\n1719\n03:35:10,300 --> 03:35:14,630\n现在 让我说出内心话 不是身为一个科学家\n\n1720\n03:35:14,800 --> 03:35:16,470\n而是身为一个父亲\n\n1721\n03:35:17,680 --> 03:35:19,720\n让我再为人父\n\n1722\n03:35:22,270 --> 03:35:25,690\n我把你带到这世界 又把你带回来\n\n1723\n03:35:25,850 --> 03:35:29,480\n你无法想像我有多为你感到骄傲\n\n1724\n03:35:30,030 --> 03:35:31,690\n一直都是如此\n\n1725\n03:35:33,820 --> 03:35:38,700\n我浪费了这么多年没有陪你 也犯了太多错没有改过\n\n1726\n03:35:41,160 --> 03:35:43,040\n一切都会崩裂 维克多\n\n1727\n03:35:43,620 --> 03:35:45,870\n一切都会改变\n\n1728\n03:35:56,550 --> 03:35:58,640\n我得去见我父亲\n\n1729\n03:36:34,210 --> 03:36:36,050\n这世界伤痕累累\n\n1730\n03:36:36,220 --> 03:36:37,300\n支离破碎\n\n1731\n03:36:37,470 --> 03:36:39,260\n无法改变\n\n1732\n03:36:40,050 --> 03:36:43,140\n飞船是你的了 小子 你是老大\n\n1733\n03:36:45,430 --> 03:36:48,600\n\"蔡瑞恩 纳米科技总监\"\n\n1734\n03:36:48,770 --> 03:36:50,270\n那是你的专长\n\n1735\n03:36:50,940 --> 03:36:52,360\n没错\n\n1736\n03:36:52,940 --> 03:36:54,530\n那是我的专长\n\n1737\n03:36:59,570 --> 03:37:04,910\n但世界不能在过去修复 只有在未来才能\n\n1738\n03:37:06,790 --> 03:37:10,670\n未来与现在\n\n1739\n03:37:10,830 --> 03:37:13,800\n至少要有30 45公尺\n\n1740\n03:37:14,380 --> 03:37:15,710\n至少\n\n1741\n03:37:16,840 --> 03:37:18,470\n一张大圆桌\n\n1742\n03:37:18,630 --> 03:37:20,800\n六张椅子 就在那里\n\n1743\n03:37:21,930 --> 03:37:23,560\n但还能坐更多人\n\n1744\n03:37:25,970 --> 03:37:27,600\n还能坐更多人\n\n1745\n03:37:28,600 --> 03:37:30,350\n老天保佑我们\n\n1746\n03:37:32,150 --> 03:37:34,150\n现在就是你\n\n1747\n03:37:37,860 --> 03:37:39,240\n什么\n\n1748\n03:37:39,400 --> 03:37:42,200\n这是刑事实验室最烂的工作\n\n1749\n03:37:42,370 --> 03:37:44,740\n不过我入门了\n\n1750\n03:37:44,910 --> 03:37:46,500\n这是\"真正\"的工作\n\n1751\n03:37:47,290 --> 03:37:48,410\n\"真正的\"\n\n1752\n03:37:52,630 --> 03:37:54,670\n你入门了\n\n1753\n03:37:57,010 --> 03:37:58,130\n大家不都是这么说吗\n\n1754\n03:37:58,300 --> 03:38:00,220\n你入门了\n\n1755\n03:38:00,380 --> 03:38:02,680\n是啊 大家都是这么说\n\n1756\n03:38:02,840 --> 03:38:04,260\n他入门了\n\n1757\n03:38:04,550 --> 03:38:07,020\n-那是我的乖儿子 -噢 天啊\n\n1758\n03:38:07,220 --> 03:38:08,560\n我什么都没教他\n\n1759\n03:38:08,730 --> 03:38:10,770\n-爸 你会再被喷辣椒水 -好样的\n\n1760\n03:38:14,270 --> 03:38:15,980\n你的前途无量\n\n1761\n03:38:18,110 --> 03:38:19,360\n谢了 爸\n\n1762\n03:38:19,740 --> 03:38:20,570\n现在\n\n1763\n03:38:20,740 --> 03:38:23,820\n现在是你崛起的时刻 维克多\n\n1764\n03:38:24,120 --> 03:38:27,080\n光是说声\"谢谢你\"并不够\n\n1765\n03:38:27,240 --> 03:38:30,620\n我只是弥补一个错误而已\n\n1766\n03:38:41,050 --> 03:38:43,510\n你怎么向银行把房子要回来的\n\n1767\n03:38:43,970 --> 03:38:45,970\n我买下了银行\n\n1768\n03:38:48,390 --> 03:38:50,680\n对了 恭喜了\n\n1769\n03:38:51,020 --> 03:38:52,950\n坚持下去 勇往直前\n\n1770\n03:38:52,600 --> 03:38:53,900\n挚爱的父亲\n塞拉斯·斯通 1969-2017\n\n1771\n03:38:52,950 --> 03:38:56,440\n当一个我未曾当过的英雄\n\n1772\n03:38:58,280 --> 03:39:00,570\n在勇士之中占有一席之地\n\n1773\n03:39:00,740 --> 03:39:05,660\n从前 现在与未来\n\n1774\n03:39:38,320 --> 03:39:41,230\n你该挺身而出了\n\n1775\n03:39:44,990 --> 03:39:46,490\n勇敢奋战\n\n1776\n03:39:49,120 --> 03:39:50,540\n努力发掘\n\n1777\n03:39:55,290 --> 03:39:57,380\n愈合与爱\n\n1778\n03:40:00,960 --> 03:40:02,010\n赢得胜利\n\n1779\n03:40:28,620 --> 03:40:30,200\n关键时刻…\n\n1780\n03:40:30,490 --> 03:40:31,870\n就是现在\n\n1781\n03:40:41,040 --> 03:40:42,300\n准备好了吗\n\n1782\n03:40:42,460 --> 03:40:43,760\n来吧 史蒂芬\n\n1783\n03:40:47,380 --> 03:40:48,680\n继续走吧\n\n1784\n03:40:50,600 --> 03:40:51,720\n走吧\n\n1785\n03:40:53,520 --> 03:40:55,270\n来吧 卢瑟 走吧\n\n1786\n03:40:58,940 --> 03:41:00,060\n卢瑟\n\n1787\n03:41:05,070 --> 03:41:06,070\n打开二号牢房 卡尔\n\n1788\n03:41:15,250 --> 03:41:16,540\n卢瑟\n\n1789\n03:41:21,590 --> 03:41:24,800\n别闹了 卢瑟 不然我要进去教训你\n\n1790\n03:41:52,190 --> 03:41:54,410\n阿卡姆 哥谭市\n\n1791\n03:41:59,480 --> 03:42:02,130\n阿卡姆精神病院\n\n1792\n03:42:54,050 --> 03:42:55,350\n他来了\n\n1793\n03:42:56,100 --> 03:42:57,350\n欢迎上船\n\n1794\n03:42:57,510 --> 03:42:59,310\n来一杯顶级香槟\n\n1795\n03:42:59,470 --> 03:43:01,350\n我只是在庆祝神的回归\n\n1796\n03:43:01,520 --> 03:43:03,810\n从地底回到天空\n\n1797\n03:43:04,190 --> 03:43:06,440\n听说你脑筋秀逗了\n\n1798\n03:43:07,110 --> 03:43:08,320\n本来是 谢谢你\n\n1799\n03:43:08,480 --> 03:43:12,780\n直到阿卡汉的良医 让我的头脑再度清晰\n\n1800\n03:43:12,950 --> 03:43:16,240\n你自愿免费干掉蝙蝠侠\n\n1801\n03:43:16,410 --> 03:43:17,910\n为什么这么好心\n\n1802\n03:43:18,660 --> 03:43:19,740\n这是私人恩怨\n\n1803\n03:43:20,410 --> 03:43:23,210\n让我猜 以眼还眼\n\n1804\n03:43:25,290 --> 03:43:27,000\n你说你有我要的东西\n\n1805\n03:43:27,170 --> 03:43:28,590\n你最好别浪费我的时间\n\n1806\n03:43:29,000 --> 03:43:32,670\n我哪敢惹你呀 威尔森先生\n\n1807\n03:43:32,840 --> 03:43:36,430\n我有更重要的事要做 所以得好好活着\n\n1808\n03:43:37,390 --> 03:43:40,850\n但如果你想找到蝙蝠侠\n\n1809\n03:43:41,020 --> 03:43:44,100\n有件事可以帮你大忙\n\n1810\n03:43:45,440 --> 03:43:49,570\n他的名字是布鲁斯·韦恩\n\n1811\n03:43:53,650 --> 03:43:55,200\n现在想一想\n\n1812\n03:43:57,530 --> 03:43:59,450\n这件事的确值得庆祝\n\n1813\n03:44:00,580 --> 03:44:02,000\n好样的\n\n1814\n03:45:06,310 --> 03:45:07,520\n安全\n\n1815\n03:45:13,020 --> 03:45:14,530\n还有多远\n\n1816\n03:45:15,780 --> 03:45:16,990\n就快到了\n\n1817\n03:45:19,240 --> 03:45:20,780\n我们得快点\n\n1818\n03:45:20,950 --> 03:45:22,450\n不能在外面待太久\n\n1819\n03:45:22,620 --> 03:45:24,240\n他会来找我们\n\n1820\n03:45:27,210 --> 03:45:28,830\n让他来\n\n1821\n03:45:29,330 --> 03:45:30,960\n让那个混蛋来吧\n\n1822\n03:45:32,420 --> 03:45:36,210\n他杀了亚瑟 我要一刀捅死他\n\n1823\n03:45:37,010 --> 03:45:38,930\n我要让他付出代价\n\n1824\n03:45:40,640 --> 03:45:42,930\n我知道你的感受 湄拉\n\n1825\n03:45:43,430 --> 03:45:45,930\n你一点都不知道\n\n1826\n03:45:46,430 --> 03:45:50,560\n但我们得按照计划才有机会成功\n\n1827\n03:45:58,490 --> 03:46:01,910\n你曾经爱过谁\n\n1828\n03:46:16,050 --> 03:46:19,220\n你错了 小美人鱼\n\n1829\n03:46:22,970 --> 03:46:26,390\n他很了解失去挚爱的感受\n\n1830\n03:46:28,350 --> 03:46:30,600\n就像是…\n\n1831\n03:46:31,940 --> 03:46:33,310\n一个父亲\n\n1832\n03:46:34,770 --> 03:46:36,110\n和一个母亲\n\n1833\n03:46:37,110 --> 03:46:40,150\n你说下一句话前最好小心一点\n\n1834\n03:46:41,820 --> 03:46:43,820\n或是一个养子\n\n1835\n03:46:47,580 --> 03:46:49,200\n对不对…\n\n1836\n03:46:50,750 --> 03:46:52,210\n蝙蝠侠\n\n1837\n03:46:55,460 --> 03:46:58,670\n也许那只臭美人鱼是对的\n\n1838\n03:47:00,510 --> 03:47:04,800\n你对死亡麻木之前 还有多少人会死在你怀里\n\n1839\n03:47:06,390 --> 03:47:08,270\n你说话一点都不小心\n\n1840\n03:47:09,520 --> 03:47:12,640\n你还要看着多少死人的眼睛\n\n1841\n03:47:13,350 --> 03:47:15,730\n才会彻底心死\n\n1842\n03:47:16,270 --> 03:47:19,940\n我已经心死了很久\n\n1843\n03:47:20,110 --> 03:47:22,030\n但就连我也有忍耐极限\n\n1844\n03:47:22,200 --> 03:47:23,910\n你敢跨过那极限 我发誓会…\n\n1845\n03:47:24,070 --> 03:47:26,370\n你会怎样 布鲁斯杀了我\n\n1846\n03:47:27,080 --> 03:47:28,870\n你不会杀我\n\n1847\n03:47:29,740 --> 03:47:31,710\n我是你最好的朋友\n\n1848\n03:47:32,210 --> 03:47:36,250\n而且 谁会摸你的蛋蛋\n\n1849\n03:47:38,250 --> 03:47:39,630\n反正呢\n\n1850\n03:47:40,920 --> 03:47:42,470\n你需要我\n\n1851\n03:47:43,510 --> 03:47:45,010\n你…\n\n1852\n03:47:45,550 --> 03:47:51,180\n让她死以后造成的这个世界 需要我帮你恢复原状\n\n1853\n03:47:53,770 --> 03:47:55,020\n可怜的露易丝\n\n1854\n03:47:55,810 --> 03:47:58,610\n她受尽了折磨\n\n1855\n03:48:04,490 --> 03:48:05,950\n我常常在想\n\n1856\n03:48:06,910 --> 03:48:11,040\n你在多少个平行时空毁灭世界 老实说…\n\n1857\n03:48:12,200 --> 03:48:16,370\n都是因为你没种让自己死\n\n1858\n03:48:20,960 --> 03:48:24,760\n所以我还是一样比你更成熟\n\n1859\n03:48:28,600 --> 03:48:30,060\n停战吧\n\n1860\n03:48:30,890 --> 03:48:32,180\n布鲁斯\n\n1861\n03:48:34,940 --> 03:48:39,020\n只要你有这张牌 我们就停战\n\n1862\n03:48:42,070 --> 03:48:45,280\n但你只要把它撕成一半 我就很乐意跟你谈谈\n\n1863\n03:48:45,450 --> 03:48:48,450\n你为什么要派那个神奇小子\n\n1864\n03:48:50,200 --> 03:48:52,040\n去做一个男人的工作\n\n1865\n03:48:55,460 --> 03:48:57,250\n真的很好笑\n\n1866\n03:48:57,420 --> 03:49:00,460\n你竟然敢说有多少人死在我怀里\n\n1867\n03:49:00,630 --> 03:49:02,340\n当我把哈莉·奎茵抱在怀里\n\n1868\n03:49:02,500 --> 03:49:04,970\n她满身是血 奄奄一息时\n\n1869\n03:49:05,130 --> 03:49:08,680\n她用最后一口气哀求我\n\n1870\n03:49:08,840 --> 03:49:11,100\n当我杀你的时候\n\n1871\n03:49:11,260 --> 03:49:14,680\n别搞错 我一定会他妈的杀了你\n\n1872\n03:49:14,850 --> 03:49:16,690\n她要我慢慢来\n\n1873\n03:49:17,890 --> 03:49:19,860\n我会信守这个承诺\n\n1874\n03:49:51,640 --> 03:49:53,220\n你真会演戏\n\n1875\n03:49:57,520 --> 03:49:59,100\n差点就唬住我了\n\n1876\n03:50:18,580 --> 03:50:19,660\n我们要躲在哪里\n\n1877\n03:50:19,830 --> 03:50:22,080\n他永远不会料到的地方\n\n1878\n03:50:22,540 --> 03:50:25,460\n还是觉得带着他是个好主意吗\n\n1879\n03:50:26,550 --> 03:50:28,090\n你觉得呢\n\n1880\n03:50:34,180 --> 03:50:35,180\n他找到我们了\n\n1881\n03:52:04,350 --> 03:52:05,810\n我能帮你吗\n\n1882\n03:52:07,190 --> 03:52:10,690\n你一定知道达克赛德不会放过地球\n\n1883\n03:52:10,860 --> 03:52:13,860\n反生命方程序就在这里\n\n1884\n03:52:14,030 --> 03:52:16,820\n我们得赶在他之前找到它\n\n1885\n03:52:16,990 --> 03:52:18,700\n决战时刻即将到来\n\n1886\n03:52:18,990 --> 03:52:20,740\n我是来帮忙的\n\n1887\n03:52:20,910 --> 03:52:23,160\n抱歉 你是哪位\n\n1888\n03:52:23,330 --> 03:52:28,420\n我有很多名字和很多形体 就像你一样…\n\n1889\n03:52:29,040 --> 03:52:31,670\n我发现自己要对这世界负责\n\n1890\n03:52:31,840 --> 03:52:34,300\n我也该为它而战了\n\n1891\n03:52:37,840 --> 03:52:39,970\n我们是需要帮助\n\n1892\n03:52:40,180 --> 03:52:43,390\n所以很高兴你来了\n\n1893\n03:52:44,640 --> 03:52:46,810\n我没想过会看到地球的守护者\n\n1894\n03:52:46,980 --> 03:52:49,150\n会团结一致 并肩作战\n\n1895\n03:52:50,150 --> 03:52:52,530\n没有你就不会发生 布鲁斯\n\n1896\n03:52:53,990 --> 03:52:56,360\n你父母会为你感到骄傲\n\n1897\n03:52:57,740 --> 03:52:58,910\n希望如此\n\n1898\n03:53:04,960 --> 03:53:07,920\n我会保持联系\n\n1899\n03:53:08,960 --> 03:53:13,000\n对了 有些人叫我…\n\n1900\n03:53:13,170 --> 03:53:15,470\n火星猎人\n\n1901\n03:53:23,180 --> 03:53:25,520\n我猜我会再见到你\n\n1902\n03:53:55,960 --> 03:54:02,060\n献给秋\n\n"
  },
  {
    "path": "2021/3-7-m3u8-chrome/README.md",
    "content": "## 怎样下载加密的优酷视频\n- 需要输入密码才能观看\n\n- 视频  [【编程】Chrome插件m3u8下载视频，Python，JS](https://www.bilibili.com/video/BV1QN411Q7eJ/)\n\n- 方法\n    - 1.使用you-get https://github.com/soimort/you-get\n        - you-get -P 214325  https://v.youku.com/v_show/id_XNTExMTkxNzUwMA==.html\n    - 2.使用m3u8 Python程序\n        - https://github.com/makelove/Programer_Log/tree/master/2020/3-26-m3u8-decrypt\n    - 3.使用m3u8-downloader，然后用FFmpeg合并\n        - https://github.com/yangwk/m3u8-downloader"
  },
  {
    "path": "2021/3-7-m3u8-chrome/ffmpeg1.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   ffmpeg1.py\n@Time    :   2021/03/06 23:52:55\n@Author  :   play4fun\n@Desc    :   使用m3u8-downloader下载ts片段后，使用FFmpeg合并视频\n'''\n\nimport os\ndef main():\n    fl=sorted(os.listdir('.'))\n    txt=''\n    for f in fl:    \n        print(f\"file '{f}'\")\n        if f.endswith('mp4'):\n            txt+=f\"file '{f}'\\n\"\n    with open('filelist.txt','w') as f:\n        f.write(txt)\n\n    cmd='ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4'\n    print(cmd)\n    os.system(cmd)\n    pass\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2021/3-7-m3u8-chrome/youku1.py",
    "content": "# -*- coding: utf-8 -*-\n# @Time    : 2021/3/5 01:06\n# @File    : youku1.py\n\n\n\"\"\"\nyouku1.py:\n\"\"\"\n\nimport sys\nimport requests\nfrom urllib.request import urlretrieve\nimport m3u8\nfrom random import randint\nfrom os import system\nimport os\n\n\ndef main(url):\n    m = m3u8.load(url)\n\n    print('开始下载 ts列表...')\n    for idx,sm in enumerate(m.segments):\n        url2 = sm.absolute_uri\n        print(url2)\n        urlretrieve(url2, f'v{idx}.ts')\n    print('下载完毕')\n\n    # 合并ts片段，存为与文件夹同名的ts文件\n    print('开始合并文件:')\n    fn = input('输入文件名:')\n    fn = f\"{randint(1000, 9999)}\" if fn == '' else fn\n    fn = fn + '.mp4'\n\n    with open(fn, 'wb') as f:\n        for idx,sm in enumerate(m.segments):\n            # file_path = os.path.join(directory, f'{n}.ts')\n            with open(f'v{idx}.ts', 'rb') as g:\n                f.write(g.read())\n    print('合并文件完毕。。。')\n\n    #\n    cmds = f'/Applications/IINA.app/Contents/MacOS/iina-cli ' + fn\n    input(f'打开？{cmds}')  # TODO\n    system(cmds)\n\n    pass\n\n\ndef merge_file():\n    l1 = [int(f[:-3]) for f in os.listdir() if f.endswith('.ts')]\n    l1 = sorted(l1)\n\n    fn = f\"{randint(1000, 9999)}\"\n    fn = fn + '.mp4'\n    with open(fn, 'wb') as f:\n        for fp in l1:\n            print(fp, f\"{fp}.ts\")\n            with open(f\"{fp}.ts\", 'rb') as g:\n                f.write(g.read())\n    print('合并文件完毕。。。')\n\n\ndef main2(url):\n    # 获取m3u8\n    resp = requests.get(url)\n    # print(resp.text)\n    '''\n    #EXTM3U\n#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=460800, RESOLUTION=480x270\n/asp/hls/450/0303000a/3/default/1eb4c564098544008dc19416eb7990f2/450.m3u8\n#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=870400, RESOLUTION=640x360\n/asp/hls/850/0303000a/3/default/1eb4c564098544008dc19416eb7990f2/850.m3u8\n#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=1228800, RESOLUTION=1280x720\n/asp/hls/1200/0303000a/3/default/1eb4c564098544008dc19416eb7990f2/1200.m3u8\n#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=2048000, RESOLUTION=1280x720\n/asp/hls/2000/0303000a/3/default/1eb4c564098544008dc19416eb7990f2/2000.m3u8\n    '''\n    m3u8s = []  # 列表\n    for sp in resp.text.split('#'):\n        sp2 = sp.split('\\n')\n        sp2 = [x for x in sp2 if x != '']\n        # print(len(sp2))\n\n    pass\n\n\nif __name__ == '__main__':\n\n    if len(sys.argv) == 2:\n        url = sys.argv[1]\n\n        main(url)\n        # merge_file()\n    else:\n        print('python download_m3u8.py m3u8_url')"
  },
  {
    "path": "2021/5-30-SMS-api/README.md",
    "content": "\n# 接收短信验证码\n\n- 视频\n    - [【推荐】怎样在电脑上接收短信？绿芽-短信转发微信-介绍](https://www.bilibili.com/video/BV1wh411e7rv/)\n    - [【编程】编写puppeteer机器人自动登录网站，绿芽-短信转发微信-回调api](https://www.bilibili.com/video/BV1yv411V7XB/)\n\n## 需求\n- 网站登录，需要手机验证码\n    - 例如 拼多多 login\n\n```\n绿芽“短信转发微信”软件\n可以将备用手机中的短信息自动转发到用户的微信上。\n本软件主要应用于以下用户场景：\n１、国外旅居或临时出国的用户，希望身在国外时，也能方便的收取到重要的手机短信息（如临时登录网银等处理个人业务等）。\n２、同时拥有多张不同用途的手机卡，某些手机卡并不随身携带在身边，但又希望能需要时方便的收取到手机上的短信息。\n３、需要将短信息同时转发给多人（团队）以方便信息沟通或业务处理的情况。\n４、其它需要将手机短信与微信贯通的情况。\n```\n- 官网 https://www.lvyatech.com/hp/products.jsp\n- 小米 安装 \n    - https://app.mi.com/details?id=com.lvyatech.wxapp.smstowx&ref=search\n\n## 微信，扫二维码，关注公众号\n```\n恭喜！Xiaomi Redmi Note 7 {代码140582940} 已订阅成功！此后的新短信，将会自动转发到现在这个微信上。\n\n 短信转发到微信不会产生短信费啦！快发一条短信试试吧？\n\n 绿芽是工信部、公安部双备案的正规平台哦，请放心使用吧！\n鲁ICP备16006100号\n鲁公网安备 37020302371321号\n\n 另外，绿芽平台是无人值守的全自动平台，全年无休哦！所有业务您都可以自助办理的。\n\n 如需人工客服，欢迎联系：\n微信客服：lvyapay\nQQ客服：3455203506\n```\n\n## 软件设置\n- 只接收【验证码类短信】\n- 权限设置\n    - 发送短信\n    - 读取短信\n        - 通知类短信\n    - 获取手机信息\n        - 始终允许\n        - 不能设置【空白通行证】，会获取不到卡槽编号，导致不能关联对应的手机号\n    - 常驻通知\n    - 省电策略为无限制\n\n## 接收短信\n```\n155041。【拼多多】您正在登录拼多多，验证码是155041。请于5分钟内完成验证，若非本人操作，请忽略本短信。\n→时间：21-5-25 11:37\n→来自：106551951134188859\n\n→转发自：Xiaomi Redmi Note 7 {代码140582940}\n```\n\n## 费用\n```\n第三方转发是付费的，65元/年，不限量。\n或100元/一万次转发\n测试接口 https://www.tianapi.com/gethttp/ \n```\n\n## 回调api\n- 本手机是红米Note 7 Pro，双卡双待\n- 问题\n    - 不能直接获取手机号\n        - 通过【设备ID】+【卡槽编号】匹配-手机号\n            - 例如 18612345678 安装在卡槽2\n            - 接收到回调,js[\"dId\"],js[\"slt\"]\n\n```json\n{\"bd\":\"【拼多多】您正在登录拼多多，验证码是237435。请于5分钟内完成验证，若非本人操作，请忽略本短信。\",\n\"ph\":\"10693022345860828\",\n\"tm\":\"1621920486662\",\n\"slt\":\"1\",\n\"dId\":\"140582940\"}\n```\n\n- 回调地址\n    - https://play4fun.pythonanywhere.com/sms"
  },
  {
    "path": "2021/5-30-SMS-api/sms_server.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   sms_server.py\n@Time    :   2021/05/25 12:26:42\n@Author  :   HG\n@Desc    :   \n'''\n\nimport re\nimport json\nfrom flask import Flask, request, jsonify\nfrom urllib.parse import unquote, quote\n\napp = Flask(__name__)\n\nsmsD = dict()  # TODO 持久化\n\n\n@app.route('/get_verify', methods=['GET'])\ndef get_verify():\n    '''\n    请求验证码\n    http://192.168.4.237:8097/get_verify?phone=\n    http://192.168.4.14:8097/get_verify\n    https://play4fun.pythonanywhere.com/get_verify?phone=6505551212\n\n    更新\n    https://play4fun.pythonanywhere.com/get_verify?dID=140582940&slt=1\n    https://play4fun.pythonanywhere.com/get_verify?dID=140582940&slt=1&source=拼多多\n    http://0.0.0.0:8097/get_verify?dID=140582940&slt=1&source=拼多多\n    http://0.0.0.0:8097/get_verify?dID=140582940&slt=1\n    '''\n    rt = {\n        'status': 404  # 找不到\n    }\n    p = request.args.get('dID', \"\")\n    slt = request.args.get('slt', \"\")\n    source = request.args.get('source', \"\")\n    if p:\n        # print(smsD)\n        # ph = f\"{p}-{slt}-{source}\"\n        ph = p+'-'+slt  # +'-'+source\n        # print(ph)\n        if ph in smsD:\n            rt['status'] = 200\n            rt['data'] = smsD[ph]\n\n    return jsonify(rt)\n    pass\n\n\n@app.route('/sms', methods=['GET'])  # , 'POST'\ndef sms():\n    '''\n    http://192.168.4.237:8097/sms?\n    https://play4fun.pythonanywhere.com/sms\n\n    测试\n    js={\n            \"bd\":\"【拼多多】您正在登录拼多多，验证码是790892。请于5分钟内完成验证，若非本人操作，请忽略本短信。\",\n            \"ph\":\"106551951134188852\",\n            \"tm\":\"1621923596617\",\n            \"slt\":\"1\",\n            \"dId\":\"140582940\"\n        }\n    p=quote(json.dumps(js))\n    url='https://play4fun.pythonanywhere.com/sms?p='+p\n    url='http://0.0.0.0:8097/sms?p='+p\n    curl url\n    '''\n    # print('args: ', request.args)\n    # print('form: ', request.form)\n    rt = {\n        'status': 404\n    }\n\n    p = request.args.get('p', \"\")\n    print('paramer:', p)\n    if p:\n        js = json.loads(unquote(p))\n        '''\n        {\n            \"bd\":\"【拼多多】您正在登录拼多多，验证码是790892。请于5分钟内完成验证，若非本人操作，请忽略本短信。\",\n            \"ph\":\"106551951134188852\",\n            \"tm\":\"1621923596617\",\n            \"slt\":\"1\",\n            \"dId\":\"140582940\"\n        }\n        '''\n        # print(js)\n        # dId：发出端设备ID；slt：发出端卡槽号； ph ：短信号码；bd：短信内容；tm：短信时间戳\n        # print('短信号码', js['ph'])\n        # print('短信内容', js['bd'])\n        # print('时间戳', js['tm'])\n        ''' 日志\n        2021-05-25 05:15:15 短信号码 6505551212\n        2021-05-25 05:15:15 短信内容 lvya test 02\n        2021-05-25 05:15:15 时间戳 1576215934956\n        '''\n\n        content = js['bd']  # 正则\n        rs = re.findall('【(.*)】', content)  # 哪个网站\n        source = rs[0]\n        rs = re.findall(r'\\d{4,6}', content)  # 验证码\n        vfCode = rs[0]\n        # ph = f\"{js['dId']}-{js['slt']}-{source}\"\n        ph = js['dId']+'-'+js['slt']  # +'-'+source\n        sd = {\n            'timestamp': int(js['tm']),\n            'content': content,\n            'source': source,\n            'vfCode': vfCode,\n        }\n        smsD[ph] = sd\n        # print(sd)\n        # rt['status'] = 200\n        return 'OK'  # 他们要求\n\n    return jsonify(rt)\n    pass\n\n\n@app.route('/', methods=['GET'])  # , 'POST'\ndef index():\n    rt = {\n        'status': 200\n    }\n    return jsonify(rt)\n    pass\n\n\nif __name__ == \"__main__\":\n    app.run(debug=True, host='0.0.0.0', port=8097)\n"
  },
  {
    "path": "2021/5-30-puppeteer-REPL/README.md",
    "content": "\n# 在命令行使用REPL执行puppeteer爬虫和抓包\n\n- 视频 B站 [【编程】在命令行使用REPL执行Puppeteer爬虫和抓包，调试代码](https://www.bilibili.com/video/BV1Nq4y1j71W/)\n## 什么是REPL ?\n- Python\n    - [为什么解释器的交互模式又叫 REPL](https://zhuanlan.zhihu.com/p/107266796)\n    - Read Eval Print Loop\n        - Read，读取用户输入\n        - Eval， 执行输入内容\n        - Print，打印输出结果\n        - Loop， 不断循环以上步骤\n\n- Node.js\n\n## puppeteer 和 REPL\n- 参考\n    - [puppeteer 调试工具——puppeteer-debug](https://zhuanlan.zhihu.com/p/34970878)\n        - 不好用，没有更新？\n        - 最近研究了下用 puppeteer 写爬虫，很好很强大。唯一不太满意的地方就是调试起来有点麻（dan）烦（teng），每调试一步都要重启\n    - [puppeteer-extra-plugin-repl](https://www.npmjs.com/package/puppeteer-extra-plugin-repl?activeTab=readme)\n        - 好用\n        - npm i -g puppeteer-extra-plugin-repl\n    - [Feature request: REPL in puppeteer](https://github.com/puppeteer/puppeteer/issues/3391)\n        - 最好用\n        - 请看 DEMO.JS"
  },
  {
    "path": "2021/5-30-puppeteer-REPL/在命令行里REPL/DEMO.JS",
    "content": "/**\n* @File    :   DEMO.JS\n* @Time    :   2021/05/09 18:33:02\n* @Author  :   HG\n* @Desc    :\n参考\n\n没用？\nhttps://shuaiber.medium.com/interactive-puppeteer-setup-822f5ed2a874\n\n可行 Feature request: REPL in puppeteer #3391\nhttps://github.com/puppeteer/puppeteer/issues/3391\n*/\n\n\n\nlet browser\nlet page\nasync function run(params) {//不行\n    browser = await puppeteer.launch({\n        args: [\"--no-sandbox\"],\n        headless: false\n    })\n    page = await browser.newPage()\n    await page.goto(\"https://www.google.com\")\n}\n\n//从这里开始\n//在命令行里REPL \nconst conf = {\n    headless: false,\n    executablePath: '/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome',\n    ignoreDefaultArgs: ['--enable-automation'],\n    defaultViewport: {\n        width: 1300,\n        height: 900\n    },\n    slowMo: 30\n}\npptr = require('puppeteer');\npptr.launch(conf).then(b => global.browser = b); // to assign to global variable\nconst ps = await browser.pages();\nbrowser.pages().then(p => global.page = p[0]); //当前窗口\n// browser.newPage().then(p => global.page = p);\n\n// 没有意义 没效果\nawait page.setJavaScriptEnabled(false);\nlet gotoURL = 'http://mobile.pinduoduo.com/goods.html?goods_id=218055778729'\npage.goto(gotoURL).then(res => console.log(res.url()))\n\npage.goto('https://www.bing.com/').then(res => console.log(res.url()))\npage.waitForSelector('#sb_form_q').then(hdl => { hdl.click(); global.hdl = hdl })\nhdl.type('love')\n// page.waitForSelector('#sb_go_par').then(hd => { hd.click() }).then()\n// page.waitForSelector('#sb_go_par').then(hd => console.log(res.url()))\npage.$('#sb_go_par').then(hd => { hd.click() }).then(console.log('OK ?'))//可以了\n// page.click('#sb_go_par')\n"
  },
  {
    "path": "2021/5-30-puppeteer-REPL/在命令行里REPL/debug.js",
    "content": "/**\n* @File    :   debug.js\n* @Time    :   2021/05/09 18:40:56\n* @Author  :   HG\n* @Desc    :\npuppeteer 调试工具—— puppeteer-debug\nhttps://zhuanlan.zhihu.com/p/34970878\nnpm i -g puppeteer-debug\n\n还可以使用\nVS Code 的断点调试\n\n*/\n\nconst conf = {\n    headless: false,\n    executablePath: '/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome',\n    ignoreDefaultArgs: ['--enable-automation'],\n    defaultViewport: {\n        width: 1300,\n        height: 900\n    },\n    slowMo: 30\n}\nconst puppeteer = require('puppeteer-debug')//不好\n// let page//不行\nasync function run() {\n    const browser = await puppeteer.launch(conf)\n    let page = await browser.newPage()\n    // this.page = page //不行\n    // global.page = page//不行\n    // await puppeteer.debug() // or: await puppeteer.debug({ browser, page, ... }), pass initial context to REPL.\n    await page.goto('https://www.bing.com/')\n    await page.waitForTimeout(2000)\n    // let producttype = (await page.$('#idProductType')) || \"\";\n    let producttype = (await page.waitForSelector('#idProductType')) || \"\"; //不行\n    console.log('producttype:', producttype, '|', typeof producttype2);\n    // let producttype2 = (await page.$('#sb_form_q')) || \"\";\n    let producttype2 = (await page.waitForSelector('#sb_form_q')) || \"\";\n    console.log('producttype:', typeof producttype2);\n\n    await puppeteer.debug({ browser, page })// 可以\n    await browser.close()\n    page.goto('https://www.bing.com/')\n    page.waitForSelector('#sb_form_q').then(hdl => { hdl.click(); hdl.type('love') })\n}\nrun()"
  },
  {
    "path": "2021/5-30-puppeteer-REPL/在命令行里REPL/puppeteer-extra-plugin-repl.js",
    "content": "/**\n* @File    :   puppeteer-extra-plugin-repl.js\n* @Time    :   2021/05/09 19:08:11\n* @Author  :   HG\n* @Desc    :   更好\nhttps://www.npmjs.com/package/puppeteer-extra-plugin-repl?activeTab=readme\n\nnpm i -g puppeteer-extra-plugin-repl\n\n*/\n\nconst puppeteer = require('puppeteer-extra')\npuppeteer.use(require('puppeteer-extra-plugin-repl')())\n\npuppeteer.launch({ headless: true }).then(async browser => {\n    const page = await browser.newPage()\n    await page.goto('https://example.com')\n\n    // Start an interactive REPL here with the `page` instance.\n    await page.repl()\n    // Afterwards start REPL with the `browser` instance.\n    await browser.repl()\n\n    await browser.close()\n})"
  },
  {
    "path": "2021/6-19-list-groupby/README.md",
    "content": "\n# python list groupby\n- python 列表 排序+分组\n    - 需求： 按字段排序，然后分组\n- 视频 [【编程】一行代码！Python 列表 排序+分组 sorted groupby Counter](https://www.bilibili.com/video/BV1LM4y1g7Vu/)\n\n- 参考\n    - [B站搜索](https://search.bilibili.com/all?keyword=python%20list%20groupby&from_source=web_search)\n    - [Python list列表groupby分组用法](https://blog.csdn.net/xiaoc100200/article/details/111402566)\n        - 注意: 分组之前应先使用分组字段先排好序"
  },
  {
    "path": "2021/6-19-list-groupby/groupby.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   groupby.py\n@Time    :   2021/06/19 09:38:40\n@Author  :   GH\n@Desc    :   https://blog.csdn.net/xiaoc100200/article/details/111402566\npython 列表 排序+分组\n需求： 按字段排序，然后分组\n'''\n\nfrom itertools import groupby\n# from collections import Counter# 统计\n\nuser_list = [\n    {\"uid\": 1, \"sex\": \"男\", \"age\": 10},\n    {\"uid\": 3, \"sex\": \"男\", \"age\": 20},\n    {\"uid\": 4, \"sex\": \"女\", \"age\": 20},\n    {\"uid\": 4, \"sex\": \"女\", \"age\": 31},\n    {\"uid\": 2, \"sex\": \"男\", \"age\": 10}\n]\nuser_sort = sorted(user_list, key=lambda x: (x[\"sex\"], x[\"age\"]))  # 必须排序\n[{'uid': 4, 'sex': '女', 'age': 20},\n {'uid': 4, 'sex': '女', 'age': 31},\n {'uid': 1, 'sex': '男', 'age': 10},\n {'uid': 2, 'sex': '男', 'age': 10},\n {'uid': 3, 'sex': '男', 'age': 20}]\n\n# 手写代码\noutD = {}\nfor d in user_list:\n    tl = outD.get(d['sex'], [])\n    tl.append(d)\n    outD[d['sex']] = tl\n# print(outD)\nfor k, v in outD.items():\n    print(k, ':', v)\n\n# 使用系统库\n# 一行代码\nuser_group = groupby(user_sort, key=lambda x: (x[\"sex\"], x[\"age\"]))\nfor key, group in user_group:\n    print(key, list(group))\n\n# ('女', 20) [{'uid': 4, 'sex': '女', 'age': 20}]\n# ('女', 31) [{'uid': 4, 'sex': '女', 'age': 31}]\n# ('男', 10) [{'uid': 1, 'sex': '男', 'age': 10}, {'uid': 2, 'sex': '男', 'age': 10}]\n# ('男', 20) [{'uid': 3, 'sex': '男', 'age': 20}]\n\nprint('-'*30)\n\n\ndef g(x):  # 自定义分组key\n    if (x['age'] > 0) and (x['age'] <= 10):\n        return 'small'  # 儿童\n    elif (x['age'] > 10) and (x['age'] <= 20):\n        return 'mid'  # 少年\n    else:\n        return 'max'  # 大人\n\n\nuser_group = groupby(user_sort, key=g)\nfor key, group in user_group:\n    print(key, list(group))\n\n# mid[{'uid': 4, 'sex': '女', 'age': 20}]\n# max[{'uid': 4, 'sex': '女', 'age': 31}]\n# small[{'uid': 1, 'sex': '男', 'age': 10}, {'uid': 2, 'sex': '男', 'age': 10}]\n# mid[{'uid': 3, 'sex': '男', 'age': 20}]\n"
  },
  {
    "path": "2021/7-11-Flask-Pydantic/README.md",
    "content": "\n## Flask-Pydantic Flask使用Pydantic\n\n- 视频 [【编程】Flask使用Pydantic进行数据校验，Python fastapi](https://www.bilibili.com/video/bv16f4y1L7Rm)\n\n- 安装\n    - https://pypi.org/project/Flask-Pydantic/\n    - pip install Flask-Pydantic\n    - 源代码 https://github.com/bauerji/flask_pydantic\n\n- 参考\n    - [如何评价最近爆红的FastAPI？](https://www.zhihu.com/question/424133076)\n    - [请不要把 Flask 和 FastAPI 放到一起比较](https://zhuanlan.zhihu.com/p/369591096)\n        - [用它5分钟以后，我放弃用了四年的 Flask](https://juejin.cn/post/6844904051327369224)\n\n- 注意\n    - @validate() 接口参数字段，必须是body，或 query\n    - 否则报错"
  },
  {
    "path": "2021/7-11-Flask-Pydantic/fastapi_pydantic1.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   fastapi_pydantic1.py\n@Time    :   2021/07/11 11:02:05\n@Author  :   GH\n@Desc    :   \n参考\nhttps://juejin.cn/post/6844904051327369224\n\n运行\nuvicorn fastapi_pydantic1:app  --port 5000\n'''\n\nfrom fastapi import FastAPI\nfrom pydantic import BaseModel\n\napp = FastAPI()\n\n\nclass People(BaseModel):\n    name: str\n    age: int\n    # address: str\n    # salary: float\n\n\n@app.post('/insert')\ndef insert(people: People):\n    age_after_10_years = people.age + 10\n    msg = f'此人名字叫做：{people.name}，十年后此人年龄：{age_after_10_years}'\n    return {'success': True, 'msg': msg}\n"
  },
  {
    "path": "2021/7-11-Flask-Pydantic/flask_pydantic1.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   flask_pydantic1.py\n@Time    :   2021/07/11 10:53:01\n@Author  :   GH\n@Desc    :   \n\n命令行\ncurl -v -H \"Content-Type: application/json\" -XPOST http://localhost:5000/insert -d '{\n\"name\" : \"werl\",\n\"age\" : 5\n}'\n# 把age改为字符串 报错\ncurl -v -H \"Content-Type: application/json\" -XPOST http://localhost:5000/insert -d '{\n\"name\" : \"werl\",\n\"age\" : \"5\"\n}'\n\n# 使用pydantic\ncurl -v -H \"Content-Type: application/json\" -XPOST \"http://localhost:5000/insert?name=fjks&age=35\" -d '{\n\"name\" : \"werl\",\n\"age\" : \"5\"\n}'\n\n'''\n\nfrom flask import Flask, request\nfrom pydantic import BaseModel\nfrom flask_pydantic import validate\n\napp = Flask(\"__main__\")\n\n\nclass QueryModel(BaseModel):\n    name: str\n    age: int\n\n\nclass People(BaseModel):\n    name: str\n    age: int\n    # address: str\n    # salary: float\n\n\n@app.route('/insert', methods=['POST'])\n@validate(body=People)\ndef insert(body: People, query: QueryModel):\n    print('body:', body)  # body: name='werl' age=5\n    print('query:',  query)  # query: name='fjks' age=35\n    age_after_10_years = body.age + 10\n    msg = f'此人名叫：{body.name}，10年后，此人年龄：{age_after_10_years}'\n    return {'success': True, 'msg': msg}\n\n\n@app.route('/insert0', methods=['POST'])\ndef insert0():\n    info = request.json\n    name = info['name']\n    age = info['age']\n    age_after_10_years = age + 10\n    msg = f'此人名叫：{name}，10年后，此人年龄：{age_after_10_years}'\n    return {'success': True, 'msg': msg}\n\n\n@app.route('/insert2', methods=['POST'])\ndef insert2():\n    info = request.json\n    name = info.get('name', '')\n    if not name:\n        return {'success': False, 'msg': 'name 参数不可省略，不可为空！'}\n    age = info.get('age', 0)\n    if not isinstance(age, int):\n        return {'success': False, 'msg': 'age参数不是数字！'}\n    age_after_10_years = age + 10\n    msg = f'此人名叫：{name}，10年后，此人年龄：{age_after_10_years}'\n    return {'success': True, 'msg': msg}\n\n\ndef main():\n    pass\n\n\nif __name__ == \"__main__\":\n    app.run(debug=True)\n"
  },
  {
    "path": "2021/7-25-Lorca/README.MD",
    "content": "\n- 视频 [【编程】Lorca-Go语言-跨平台-桌面应用开发框架-比Electron好用，在 Go + HTML5 中构建跨平台的现代桌面应用程序](https://www.bilibili.com/video/BV1Tg411779a/)\n\n## 什么是Lorca？\nGo语言的桌面应用开发框架\n\n- 对比Electron\n    - Go语言，执行效率快。二进制程序\n        - Node.js 需要V8引擎 Chome\n    - 结构简单\n    - 代码加密，很难破解\n        - 还可以加壳\n        - Electron可以混扰代码，增加阅读难度，但是代码可以恢复，只要花点时间 assr\n    - 打包方便，一个文件搞定\n        - 文件很小，不到10M\n        - Electron即使是最小应用，也有100M\n            - Electron会打包 node_modules\n    - 跨平台方便\n    - 唯一的问题\n        - Lorca依赖Chrome浏览器，需要在系统里提前安装\n\n- 特征\n    - 带有非常简单的 API 的纯 Go 库（无 cgo）\n    - 小应用程序大小（通常 5-10MB）\n    - 两全其美 - HTML/CSS 的全部力量使您的 UI 看起来不错，结合 Go 性能和易于开发\n    - 公开 Go 函数/方法并从 JavaScript 调用它们\n    - 从 Go 调用任意 JavaScript 代码\n    - 两种语言的 UI 和主应用程序之间的异步流（async/await 和 Goroutines）\n    - 支持从本地 Web 服务器或通过数据 URL 加载 Web UI\n    - 支持在无头模式下使用 UI 测试您的应用\n    - 支持多个应用程序窗口\n    - 支持包装和品牌（例如自定义应用程序图标）。可以使用 GOOS 和 GOARCH 变量在一台机器上完成所有三个操作系统的打包。\n- 此外，设计限制：\n    - 需要安装 Chrome/Chromium >= 70。\n    - 尚无法控制 Chrome 窗口（例如，您无法移除边框、使其透明、控制位置或大小）。\n    - 没有窗口菜单（托盘菜单和本机操作系统对话框仍然可以通过 3rd-party 库）\n\n\n\n网址 ？\nhttps://github.com/zserge/lorca/tree/master/examples\nhttps://github.com/zserge/lorca/tree/master/examples/counter\n\n\n错误\ngo run main.go \nbuild command-line-arguments: cannot load embed: malformed module path \"embed\": missing dot in first path element\n\n需要安装 Go 1.16 RC1 才能运行它。\n\n运行\ngo1.16 mod init counter\ngo1.16 get github.com/zserge/lorca\ngo1.16 run main.go \n\nchmod -R  777  Example.app/\ngo1.16 build -o Example.app/Contents/MacOS/lorca-example\n编译Windows CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go1.16 build -v -o counter_win10 main.go "
  },
  {
    "path": "2021/7-25-Lorca/examples/counter/Example.app/Contents/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleExecutable</key>\n\t<string>lorca-example</string>\n\t<key>CFBundleIconFile</key>\n\t<string>icon.icns</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>com.zserge.lorca.example</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "2021/7-25-Lorca/examples/counter/build-linux.sh",
    "content": "#!/bin/sh\n\nAPP=lorca-example\nAPPDIR=${APP}_1.0.0\n\nmkdir -p $APPDIR/usr/bin\nmkdir -p $APPDIR/usr/share/applications\nmkdir -p $APPDIR/usr/share/icons/hicolor/1024x1024/apps\nmkdir -p $APPDIR/usr/share/icons/hicolor/256x256/apps\nmkdir -p $APPDIR/DEBIAN\n\ngo build -o $APPDIR/usr/bin/$APP\n\ncp icons/icon.png $APPDIR/usr/share/icons/hicolor/1024x1024/apps/${APP}.png\ncp icons/icon.png $APPDIR/usr/share/icons/hicolor/256x256/apps/${APP}.png\n\ncat > $APPDIR/usr/share/applications/${APP}.desktop << EOF\n[Desktop Entry]\nVersion=1.0\nType=Application\nName=$APP\nExec=$APP\nIcon=$APP\nTerminal=false\nStartupWMClass=Lorca\nEOF\n\ncat > $APPDIR/DEBIAN/control << EOF\nPackage: ${APP}\nVersion: 1.0-0\nSection: base\nPriority: optional\nArchitecture: amd64\nMaintainer: Serge Zaitsev <zaitsev.serge@gmail.com>\nDescription: Example for Lorca GUI toolkit\nEOF\n\ndpkg-deb --build $APPDIR\n"
  },
  {
    "path": "2021/7-25-Lorca/examples/counter/build-macos.sh",
    "content": "#!/bin/sh\n\nAPP=\"Example.app\"\nmkdir -p $APP/Contents/{MacOS,Resources}\ngo1.16 build -o $APP/Contents/MacOS/lorca-example\ncat > $APP/Contents/Info.plist << EOF\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleExecutable</key>\n\t<string>lorca-example</string>\n\t<key>CFBundleIconFile</key>\n\t<string>icon.icns</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>com.zserge.lorca.example</string>\n</dict>\n</plist>\nEOF\ncp icons/icon.icns $APP/Contents/Resources/icon.icns\nfind $APP\n"
  },
  {
    "path": "2021/7-25-Lorca/examples/counter/build-windows.bat",
    "content": "@echo off\ngo generate\ngo build -ldflags \"-H windowsgui\" -o lorca-example.exe\n"
  },
  {
    "path": "2021/7-25-Lorca/examples/counter/go.mod",
    "content": "module counter\n\ngo 1.16\n\nrequire github.com/zserge/lorca v0.1.10 // indirect\n"
  },
  {
    "path": "2021/7-25-Lorca/examples/counter/go.sum",
    "content": "github.com/zserge/lorca v0.1.9 h1:vbDdkqdp2/rmeg8GlyCewY2X8Z+b0s7BqWyIQL/gakc=\ngithub.com/zserge/lorca v0.1.9/go.mod h1:bVmnIbIRlOcoV285KIRSe4bUABKi7R7384Ycuum6e4A=\ngithub.com/zserge/lorca v0.1.10 h1:f/xBJ3D3ipcVRCcvN8XqZnpoKcOXV8I4vwqlFyw7ruc=\ngithub.com/zserge/lorca v0.1.10/go.mod h1:bVmnIbIRlOcoV285KIRSe4bUABKi7R7384Ycuum6e4A=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/net v0.0.0-20200222125558-5a598a2470a0 h1:MsuvTghUPjX762sGLnGsxC3HM0B5r83wEtYcYR8/vRs=\ngolang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\n"
  },
  {
    "path": "2021/7-25-Lorca/examples/counter/main.go",
    "content": "/**\n* @File    :   main.go\n* @Time    :   2021/07/22 11:51:17\n* @Author  :   GH\n* @Desc    :   \n*/\n\n\n\npackage main\n\nimport (\n\t\"embed\"\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"os/signal\"\n\t\"runtime\"\n\t\"sync\"\n\n\t\"github.com/zserge/lorca\"\n)\n\n//go:embed www\nvar fs embed.FS\n\n// Go types that are bound to the UI must be thread-safe, because each binding\n// is executed in its own goroutine. In this simple case we may use atomic\n// operations, but for more complex cases one should use proper synchronization.\ntype counter struct {\n\tsync.Mutex\n\tcount int\n}\n\nfunc (c *counter) Add(n int) {\n\tc.Lock()\n\tdefer c.Unlock()\n\tc.count = c.count + n\n}\n\nfunc (c *counter) Value() int {\n\tc.Lock()\n\tdefer c.Unlock()\n\treturn c.count\n}\n\nfunc main() {\n\targs := []string{}\n\tif runtime.GOOS == \"linux\" {\n\t\targs = append(args, \"--class=Lorca\")\n\t}\n\tui, err := lorca.New(\"\", \"\", 480, 320, args...)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer ui.Close()\n\n\t// A simple way to know when UI is ready (uses body.onload event in JS)\n\tui.Bind(\"start\", func() {\n\t\tlog.Println(\"UI is ready\")\n\t})\n\n\t// Create and bind Go object to the UI\n\tc := &counter{}\n\tui.Bind(\"counterAdd\", c.Add)\n\tui.Bind(\"counterValue\", c.Value)\n\n\t// Load HTML.\n\t// You may also use `data:text/html,<base64>` approach to load initial HTML,\n\t// e.g: ui.Load(\"data:text/html,\" + url.PathEscape(html))\n\n\tln, err := net.Listen(\"tcp\", \"127.0.0.1:0\")\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer ln.Close()\n\tgo http.Serve(ln, http.FileServer(http.FS(fs)))\n\tui.Load(fmt.Sprintf(\"http://%s/www\", ln.Addr()))\n\n\t// You may use console.log to debug your JS code, it will be printed via\n\t// log.Println(). Also exceptions are printed in a similar manner.\n\tui.Eval(`\n\t\tconsole.log(\"Hello, world!\");\n\t\tconsole.log('Multiple values:', [1, false, {\"x\":5}]);\n\t`)\n\n\t// Wait until the interrupt signal arrives or browser window is closed\n\tsigc := make(chan os.Signal)\n\tsignal.Notify(sigc, os.Interrupt)\n\tselect {\n\tcase <-sigc:\n\tcase <-ui.Done():\n\t}\n\n\tlog.Println(\"exiting...\")\n}\n"
  },
  {
    "path": "2021/7-25-Lorca/examples/counter/www/index.html",
    "content": "<!doctype html>\n<html>\n\t<head>\n\t\t<title>Counter</title>\n\t\t<link rel=\"shortcut icon\" href=\"favicon.png\">\n\t\t<style>\n\t\t* { margin: 0; padding: 0; box-sizing: border-box; user-select: none; }\n\t\tbody { height: 100vh; display: flex; align-items: center; justify-content: center; background-color: #f1c40f; font-family: 'Helvetika Neue', Arial, sans-serif; font-size: 28px; }\n\t\t.counter-container { display: flex; flex-direction: column; align-items: center; }\n\t\t.counter { text-transform: uppercase; color: #fff; font-weight: bold; font-size: 3rem; }\n\t\t.btn-row { display: flex; align-items: center; margin: 1rem; }\n\t\t.btn { cursor: pointer; min-width: 4em; padding: 1em; border-radius: 5px; text-align: center; margin: 0 1rem; box-shadow: 0 6px #8b5e00; color: white; background-color: #E4B702; position: relative; font-weight: bold; }\n\t\t.btn:hover { box-shadow: 0 4px #8b5e00; top: 2px; }\n\t\t.btn:active{ box-shadow: 0 1px #8b5e00; top: 5px; }\n\t\t</style>\n\t</head>\n\t<body onload=start()>\n\t\t<!-- UI layout -->\n\t\t<div class=\"counter-container\">\n\t\t\t<div class=\"counter\"></div>\n\t\t\t<div class=\"btn-row\">\n\t\t\t\t<div class=\"btn btn-incr\">+1</div>\n\t\t\t\t<div class=\"btn btn-decr\">-1</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- Connect UI actions to Go functions -->\n\t\t<script>\n\t\t\tconst counter = document.querySelector('.counter');\n\t\t\tconst btnIncr = document.querySelector('.btn-incr');\n\t\t\tconst btnDecr = document.querySelector('.btn-decr');\n\n\t\t\t// We use async/await because Go functions are asynchronous\n\t\t\tconst render = async () => {\n\t\t\t\tcounter.innerText = `Count: ${await window.counterValue()}`;\n\t\t\t};\n\n\t\t\tbtnIncr.addEventListener('click', async () => {\n\t\t\t\tawait counterAdd(1); // Call Go function\n\t\t\t\trender();\n\t\t\t});\n\n\t\t\tbtnDecr.addEventListener('click', async () => {\n\t\t\t\tawait counterAdd(-1); // Call Go function\n\t\t\t\trender();\n\t\t\t});\n\n\t\t\trender();\n\t\t</script>\n\t</body>\n</html>\n"
  },
  {
    "path": "2021/7-25-Lorca/examples/hello/main.go",
    "content": "/**\n* @File    :   main.go\n* @Time    :   2021/07/22 14:20:03\n* @Author  :   GH\n* @Desc    :  \n\n编译windows\nCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -v -o hello_win10 main.go \n\n*/\n\n\npackage main\n\nimport (\n\t\"log\"\n\t\"net/url\"\n\n\t\"github.com/zserge/lorca\"\n)\n\nfunc main() {\n\t// Create UI with basic HTML passed via data URI\n\tui, err := lorca.New(\"data:text/html,\"+url.PathEscape(`\n\t<html>\n\t\t<head><title>Hello</title></head>\n\t\t<body><h1>Hello, world!</h1></body>\n\t</html>\n\t`), \"\", 480, 320)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer ui.Close()\n\n\tui.Bind(\"addUp\", func(a, b int) int { return a + b })\n\t// let x=await addUp(34534342,23748374823)\n\n\t// Wait until UI window is closed\n\t<-ui.Done()\n}\n"
  },
  {
    "path": "2021/7-25-Lorca/examples/stopwatch/main.go",
    "content": "/**\n* @File    :   main.go\n* @Time    :   2021/07/22 14:58:21\n* @Author  :   GH\n* @Desc    :   \n\n编译windows\nCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -v -o stopwatch_win10 main.go \n\n*/\n\n\npackage main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/url\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/zserge/lorca\"\n)\n\nfunc main() {\n\tui, err := lorca.New(\"计时器\", \"\", 480, 320)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tdefer ui.Close()\n\n\t// Data model: number of ticks\n\tticks := uint32(0)\n\t// Channel to connect UI events with the background ticking goroutine\n\ttogglec := make(chan bool)\n\t// Bind Go functions to JS\n\tui.Bind(\"toggle\", func() { togglec <- true })\n\tui.Bind(\"reset\", func() {\n\t\tatomic.StoreUint32(&ticks, 0)\n\t\tui.Eval(`document.querySelector('.timer').innerText = '0'`)\n\t\tui.Eval(`console.log(\"reset ....\")`)// 打印日志\n\t})\n\n\t// Load HTML after Go functions are bound to JS\n\tui.Load(\"data:text/html,\" + url.PathEscape(`\n\t<html>\n\t\t<body>\n\t\t\t<!-- toggle() and reset() are Go functions wrapped into JS -->\n\t\t\t<div class=\"timer\" onclick=\"toggle()\"></div>\n\t\t\t<button onclick=\"reset()\">Reset</button>\n\t\t</body>\n\t</html>\n\t`))\n\n\t// Start ticker goroutine\n\tgo func() {\n\t\tt := time.NewTicker(100 * time.Millisecond)\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-t.C: // Every 100ms increate number of ticks and update UI\n\t\t\t\tui.Eval(fmt.Sprintf(`document.querySelector('.timer').innerText = 0.1*%d`,\n\t\t\t\t\tatomic.AddUint32(&ticks, 1)))\n\t\t\tcase <-togglec: // If paused - wait for another toggle event to unpause\n\t\t\t\t<-togglec\n\t\t\t}\n\t\t}\n\t}()\n\t<-ui.Done()\n}\n"
  },
  {
    "path": "2021/7-4-diskcache/README.md",
    "content": "\n# diskcache本地缓存持久化\n\n- 视频 [【编程】Python ： diskcache 本地缓存持久化，一行代码](https://www.bilibili.com/video/BV1dv411H77k/)\n\n- 缓存考虑\n    - Redis 数据库\n    - memcache\n\n- 临时缓存\n    - lru_cache 服务器使用\n        - from functools import lru_cache\n\n- 推荐使用\n    - [diskcache](https://pypi.org/project/diskcache/)\n\n\n- 教程\n    - 安装 https://pypi.org/project/diskcache/ \n    - 教程 http://www.grantjenks.com/docs/diskcache/tutorial.html\n    - 问题 https://stackoverflow.com/questions/16463582/memoize-to-disk-python-persistent-memoization\n\n"
  },
  {
    "path": "2021/7-4-diskcache/diskcache1.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   diskcache1.py\n@Time    :   2021/07/04 12:47:38\n@Author  :   GH\n@Desc    :   \n'''\nimport requests\nfrom functools import lru_cache\n\nfrom diskcache import Cache\ncache = Cache('cachedir')\n\n\n# @lru_cache()  # Flask 服务器使用，才行\n@cache.memoize()\ndef get_ip(a):  # 需要很多计算，计算一次就可以了\n    print('不使用缓存')\n    url = 'https://httpbin.org/ip'\n    rs = requests.get(url)\n    print('get IP:', rs.text)\n\n    return rs.json()['origin']\n\n\ndef main():\n    ip = get_ip(a=1)\n    print(ip)\n    pass\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "2021/8-1-deta-fastapi/README.md",
    "content": "\n- 视频 ？？\n\n- 文档\n    - 部署到Deta[Deploy FastAPI on Deta](https://fastapi.tiangolo.com/zh/deployment/deta/)\n    - 开始启动[Getting Started](https://docs.deta.sh/docs/micros/getting_started/)\n\n- 安装\n```bash\n(.py39) pro:~ play$ curl -fsSL https://get.deta.dev/cli.sh | sh\n########################################################################################## 100.0%\nArchive:  /Users/play/.deta/bin/deta.zip\n  inflating: deta\n  inflating: ._deta\nDeta was installed successfully to /Users/play/.deta/bin/deta\nRun 'deta --help' in a new shell to get started\n```\n- 登录\n```bash\n(.py39) pro:~ play$ /Users/play/.deta/bin/deta login\nPlease, log in from the web page. Waiting..\nhttps://web.deta.sh/cli/52934\nLogged in successfully.\n```\n- 新建\n```bash\n(.py39) pro:app play$ /Users/play/.deta/bin/deta new\nSuccessfully created a new micro\n{\n\t\"name\": \"app\",\n\t\"runtime\": \"python3.7\",\n\t\"endpoint\": \"https://zba3nl.deta.dev\",\n\t\"visor\": \"enabled\",\n\t\"http_auth\": \"disabled\"\n}\nAdding dependencies...\nCollecting fastapi\n  Downloading https://files.pythonhosted.org/packages/52/be/2a26007dc86c51e87d70021f6c1b3442726c5918fe57d27927badf687122/fastapi-0.67.0-py3-none-any.whl (51kB)\nCollecting starlette==0.14.2\n  Downloading https://files.pythonhosted.org/packages/15/34/db1890f442a1cd3a2c761f4109a0eb4e63503218d70a8c8e97faa09a5500/starlette-0.14.2-py3-none-any.whl (60kB)\nCollecting pydantic!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<2.0.0,>=1.6.2\n  Downloading https://files.pythonhosted.org/packages/9f/f2/2d5425efe57f6c4e06cbe5e587c1fd16929dcf0eb90bd4d3d1e1c97d1151/pydantic-1.8.2-cp37-cp37m-manylinux2014_x86_64.whl (10.1MB)\nCollecting typing-extensions>=3.7.4.3\n  Downloading https://files.pythonhosted.org/packages/2e/35/6c4fff5ab443b57116cb1aad46421fb719bed2825664e8fe77d66d99bcbc/typing_extensions-3.10.0.0-py3-none-any.whl\nInstalling collected packages: starlette, typing-extensions, pydantic, fastapi\nSuccessfully installed fastapi-0.67.0 pydantic-1.8.2 starlette-0.14.2 typing-extensions-3.10.0.0\n```\n- 更新\n```\n\n```\n\n## 数据库\n\n## 文件存储"
  },
  {
    "path": "2021/8-15-Marp-ppt/README.MD",
    "content": "---\nmarp: true\n---\n\n# <!-- fit -->  Marp：用 Markdown「写」PPT 的新选择\n- Marp\n    - Markdown --> PPT\n\n---\n# 需求\n- 制作视频之前，写文案\n    - 工作量少，简单\n        - 不想写一堆代码\n    - 翻页效果，即可。\n        - 有动画更好\n- 简洁，清晰明了\n    - 不想做得花里胡哨\n- 视频 [【新技能】Marp 使用 Markdown 制作 PPT ， 电脑不用安装PowerPoint](https://www.bilibili.com/video/BV17v411T7wH/)\n---\n- 参考\n    - [Marp：用 Markdown「写」PPT 的新选择](https://sspai.com/post/55718)\n        - 前往 VSCode 的网站 下载并安装 VSCode 本体，\n        - 然后在左侧的插件栏中搜索并安装 Marp for VS Code。\n        - 为了获得更好的 Markdown 编辑体验，大家不妨再安装一个叫做 Markdown All in One 的插件，然后就可以开始愉快地使用 Marp 了。\n    - 使用 Markdown 预览功能，确认无误后，再导出\n    - toggle打开或关闭特效\n        - marp: true\n    - 缺点，没有动画特效\n- Demo\n    - https://yhatt-marp-cli-example.netlify.app/#1\n        - 代码 https://github.com/yhatt/marp-cli-example\n\n# reveal.js 官网 https://revealjs.com/\n---\n编辑完成后，通过编辑器右上角的 Marp 图标按钮就可以调出 Export slide deck 命令并导出幻灯片了。Marp 插件目前支持导出 HTML 和 PDF 格式，另外可以将首页导出为 PNG 或 JPEG 格式的图片。\n\n需要注意的是，目前导出 PDF 或者图片时需要依赖 Chromium 内核的浏览器。最终的导出效果与预览时看到的相同。\n\n---\n# 1号标题123\n## 2号标题1234\n- 1 测试\n    - 2\n    - 3\n    \n# reveal.js\n\n---\n\n## 2号标题 1235\n- 4 测试\n    - 2\n    - 3"
  },
  {
    "path": "2021/8-15-Marp-ppt/README.html",
    "content": "<!DOCTYPE html><html lang=\"zh-CN\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,height=device-height,initial-scale=1.0\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"><meta property=\"og:type\" content=\"website\"><meta name=\"twitter:card\" content=\"summary\"><style>@media screen{body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover{opacity:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active{opacity:.6}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTQwIDcwSDIwVjUwbTIwIDBMMjAgNzBtNDAtNDBoMjB2MjBtLTIwIDAgMjAtMjAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTIwIDUwaDIwdjIwbS0yMCAwIDIwLTIwbTQwIDBINjBWMzBtMjAgMEw2MCA1MCIvPjwvc3ZnPg==\")}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDo1cHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yMCA2MGgtNWE1IDUgMCAwIDEtNS01VjIwYTUgNSAwIDAgMSA1LTVoNjBhNSA1IDAgMCAxIDUgNXY1TTMwIDg1aDYwIi8+PHJlY3QgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiLz48cmVjdCBjbGFzcz0iYSIgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1Ii8+PHBhdGggY2xhc3M9ImEiIGQ9Ik00MCA1MGg0ME00MCA2MGgzMCIvPjwvc3ZnPg==\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{-webkit-animation-name:__bespoke_marp__!important;animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=\"\"] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{bottom:0;left:0;position:absolute;right:0;top:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=\"\"] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=\"\"] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:transparent}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template-areas:\"current next\" \"current note\" \"info    note\";grid-template-columns:2fr 1fr;grid-template-rows:minmax(140px,1fr) 2fr 3em;height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:transparent;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{word-wrap:break-word;box-sizing:border-box;font-size:1.1em;height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;scrollbar-color:hsla(0,0%,93%,.5) transparent;scrollbar-width:thin;white-space:pre-wrap;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:transparent}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:hsla(0,0%,93%,.5);border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>div#p>svg>foreignObject>section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center}div#p>svg>foreignObject>section:after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#p>svg>foreignObject>section:not([data-marpit-pagination]):after{display:none}/* Normalization */div#p>svg>foreignObject>section h1{font-size:2em;margin:0.67em 0}div#p>svg>foreignObject>section video::-webkit-media-controls{will-change:transform}@page{size:1280px 720px;margin:0}@media print{body,html{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#p>svg>foreignObject>section{page-break-before:always;break-before:page}div#p>svg>foreignObject>section,div#p>svg>foreignObject>section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;transition:none!important}div#p>svg[data-marpit-svg]{display:block;height:100vh;width:100vw}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{display:block;height:auto;width:100%}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{position:static}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{content:\"\"}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{position:relative}}div#p>svg>foreignObject>section [data-marp-fitting-svg-content]{display:table;white-space:nowrap;width:-webkit-max-content;width:-moz-max-content;width:max-content}div#p>svg>foreignObject>section [data-marp-fitting-svg-content-wrap]{white-space:pre}div#p>svg>foreignObject>section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}\n/*!\n * Marp default theme.\n *\n * @theme default\n * @author Yuki Hattori\n *\n * @auto-scaling true\n * @size 4:3 960px 720px\n */div#p>svg>foreignObject>section .octicon{fill:currentColor;display:inline-block;vertical-align:text-bottom}div#p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#p>svg>foreignObject>section .anchor:focus{outline:none}div#p>svg>foreignObject>section h1 .octicon-link,div#p>svg>foreignObject>section h2 .octicon-link,div#p>svg>foreignObject>section h3 .octicon-link,div#p>svg>foreignObject>section h4 .octicon-link,div#p>svg>foreignObject>section h5 .octicon-link,div#p>svg>foreignObject>section h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}div#p>svg>foreignObject>section h1:hover .anchor,div#p>svg>foreignObject>section h2:hover .anchor,div#p>svg>foreignObject>section h3:hover .anchor,div#p>svg>foreignObject>section h4:hover .anchor,div#p>svg>foreignObject>section h5:hover .anchor,div#p>svg>foreignObject>section h6:hover .anchor{text-decoration:none}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link{visibility:visible}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link:before{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'/%3E%3C/svg%3E\");content:\" \";display:inline-block;height:16px;width:16px}div#p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5}div#p>svg>foreignObject>section{--marpit-root-font-size:16px}div#p>svg>foreignObject>section details{display:block}div#p>svg>foreignObject>section summary{display:list-item}div#p>svg>foreignObject>section a{background-color:initial}div#p>svg>foreignObject>section a:active,div#p>svg>foreignObject>section a:hover{outline-width:0}div#p>svg>foreignObject>section strong{font-weight:inherit;font-weight:bolder}div#p>svg>foreignObject>section h1{margin:.67em 0}div#p>svg>foreignObject>section img{border-style:none}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section kbd,div#p>svg>foreignObject>section pre{font-family:monospace,monospace;font-size:1em}div#p>svg>foreignObject>section hr{box-sizing:initial;overflow:visible}div#p>svg>foreignObject>section input{font:inherit;margin:0;overflow:visible}div#p>svg>foreignObject>section [type=checkbox]{padding:0}div#p>svg>foreignObject>section *,div#p>svg>foreignObject>section [type=checkbox]{box-sizing:border-box}div#p>svg>foreignObject>section input{font-family:inherit;font-size:inherit;line-height:inherit}div#p>svg>foreignObject>section a{color:#0366d6;text-decoration:none}div#p>svg>foreignObject>section a:hover{text-decoration:underline}div#p>svg>foreignObject>section strong{font-weight:600}div#p>svg>foreignObject>section hr{background:transparent;border-bottom:1px solid #dfe2e5;height:0;margin:15px 0;overflow:hidden}div#p>svg>foreignObject>section hr:after,div#p>svg>foreignObject>section hr:before{content:\"\";display:table}div#p>svg>foreignObject>section hr:after{clear:both}div#p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0}div#p>svg>foreignObject>section td,div#p>svg>foreignObject>section th{padding:0}div#p>svg>foreignObject>section details summary{cursor:pointer}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section h1{font-size:32px}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{font-weight:600}div#p>svg>foreignObject>section h2{font-size:24px}div#p>svg>foreignObject>section h3{font-size:20px}div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4{font-weight:600}div#p>svg>foreignObject>section h4{font-size:16px}div#p>svg>foreignObject>section h5{font-size:14px}div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600}div#p>svg>foreignObject>section h6{font-size:12px}div#p>svg>foreignObject>section p{margin-bottom:10px;margin-top:0}div#p>svg>foreignObject>section blockquote{margin:0}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{margin-bottom:0;margin-top:0;padding-left:0}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#p>svg>foreignObject>section ol ol ol,div#p>svg>foreignObject>section ol ul ol,div#p>svg>foreignObject>section ul ol ol,div#p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#p>svg>foreignObject>section dd{margin-left:0}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}div#p>svg>foreignObject>section pre{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section input::-webkit-inner-spin-button,div#p>svg>foreignObject>section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#p>svg>foreignObject>section :checked+.radio-label{border-color:#0366d6;position:relative;z-index:1}div#p>svg>foreignObject>section .border{border:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .border-0{border:0!important}div#p>svg>foreignObject>section .border-bottom{border-bottom:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .rounded-1{border-radius:3px!important}div#p>svg>foreignObject>section .bg-white{background-color:#fff!important}div#p>svg>foreignObject>section .bg-gray-light{background-color:#fafbfc!important}div#p>svg>foreignObject>section .text-gray-light{color:#6a737d!important}div#p>svg>foreignObject>section .pl-3,div#p>svg>foreignObject>section .px-3{padding-left:16px!important}div#p>svg>foreignObject>section .px-3{padding-right:16px!important}div#p>svg>foreignObject>section .f6{font-size:12px!important}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.f6{--marpit-root-font-size:12px!important}div#p>svg>foreignObject>section .lh-condensed{line-height:1.25!important}div#p>svg>foreignObject>section .text-bold{font-weight:600!important}div#p>svg>foreignObject>section .pl-c{color:#6a737d}div#p>svg>foreignObject>section .pl-c1,div#p>svg>foreignObject>section .pl-s .pl-v{color:#005cc5}div#p>svg>foreignObject>section .pl-e,div#p>svg>foreignObject>section .pl-en{color:#6f42c1}div#p>svg>foreignObject>section .pl-s .pl-s1,div#p>svg>foreignObject>section .pl-smi{color:#24292e}div#p>svg>foreignObject>section .pl-ent{color:#22863a}div#p>svg>foreignObject>section .pl-k{color:#d73a49}div#p>svg>foreignObject>section .pl-pds,div#p>svg>foreignObject>section .pl-s,div#p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#p>svg>foreignObject>section .pl-sr,div#p>svg>foreignObject>section .pl-sr .pl-cce,div#p>svg>foreignObject>section .pl-sr .pl-sra,div#p>svg>foreignObject>section .pl-sr .pl-sre{color:#032f62}div#p>svg>foreignObject>section .pl-smw,div#p>svg>foreignObject>section .pl-v{color:#e36209}div#p>svg>foreignObject>section .pl-bu{color:#b31d28}div#p>svg>foreignObject>section .pl-ii{background-color:#b31d28;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2{background-color:#d73a49;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2:before{content:\"^M\"}div#p>svg>foreignObject>section .pl-sr .pl-cce{color:#22863a;font-weight:700}div#p>svg>foreignObject>section .pl-ml{color:#735c0f}div#p>svg>foreignObject>section .pl-mh,div#p>svg>foreignObject>section .pl-mh .pl-en,div#p>svg>foreignObject>section .pl-ms{color:#005cc5;font-weight:700}div#p>svg>foreignObject>section .pl-mi{color:#24292e;font-style:italic}div#p>svg>foreignObject>section .pl-mb{color:#24292e;font-weight:700}div#p>svg>foreignObject>section .pl-md{background-color:#ffeef0;color:#b31d28}div#p>svg>foreignObject>section .pl-mi1{background-color:#f0fff4;color:#22863a}div#p>svg>foreignObject>section .pl-mc{background-color:#ffebda;color:#e36209}div#p>svg>foreignObject>section .pl-mi2{background-color:#005cc5;color:#f6f8fa}div#p>svg>foreignObject>section .pl-mdr{color:#6f42c1;font-weight:700}div#p>svg>foreignObject>section .pl-ba{color:#586069}div#p>svg>foreignObject>section .pl-sg{color:#959da5}div#p>svg>foreignObject>section .pl-corl{color:#032f62;text-decoration:underline}div#p>svg>foreignObject>section .mb-0{margin-bottom:0!important}div#p>svg>foreignObject>section .my-2{margin-bottom:8px!important;margin-top:8px!important}div#p>svg>foreignObject>section .pl-0{padding-left:0!important}div#p>svg>foreignObject>section .py-0{padding-bottom:0!important;padding-top:0!important}div#p>svg>foreignObject>section .pl-1{padding-left:4px!important}div#p>svg>foreignObject>section .pl-2{padding-left:8px!important}div#p>svg>foreignObject>section .py-2{padding-bottom:8px!important;padding-top:8px!important}div#p>svg>foreignObject>section .pl-3{padding-left:16px!important}div#p>svg>foreignObject>section .pl-4{padding-left:24px!important}div#p>svg>foreignObject>section .pl-5{padding-left:32px!important}div#p>svg>foreignObject>section .pl-6{padding-left:40px!important}div#p>svg>foreignObject>section .pl-7{padding-left:48px!important}div#p>svg>foreignObject>section .pl-8{padding-left:64px!important}div#p>svg>foreignObject>section .pl-9{padding-left:80px!important}div#p>svg>foreignObject>section .pl-10{padding-left:96px!important}div#p>svg>foreignObject>section .pl-11{padding-left:112px!important}div#p>svg>foreignObject>section .pl-12{padding-left:128px!important}div#p>svg>foreignObject>section hr{border-bottom-color:#eee}div#p>svg>foreignObject>section kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da;color:#444d56;display:inline-block;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}div#p>svg>foreignObject>section:after,div#p>svg>foreignObject>section:before{\n  /* content:\"\"; */display:table}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-bottom:16px;margin-top:0}div#p>svg>foreignObject>section hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}div#p>svg>foreignObject>section blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}div#p>svg>foreignObject>section h1{font-size:2em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}div#p>svg>foreignObject>section h2{font-size:1.5em}div#p>svg>foreignObject>section h3{font-size:1.25em}div#p>svg>foreignObject>section h4{font-size:1em}div#p>svg>foreignObject>section h5{font-size:.875em}div#p>svg>foreignObject>section h6{color:#6a737d;font-size:.85em}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section li{word-wrap:break-all}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}div#p>svg>foreignObject>section dl dd{margin-bottom:16px;padding:0 16px}div#p>svg>foreignObject>section table{display:block;overflow:auto;width:100%}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{border:1px solid #dfe2e5;padding:6px 13px}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #c6cbd1}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section img{background-color:#fff;box-sizing:initial;max-width:100%}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section code{background-color:rgba(27,31,35,.05);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}div#p>svg>foreignObject>section pre{word-wrap:normal}div#p>svg>foreignObject>section pre>code{background:transparent;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}div#p>svg>foreignObject>section pre code{word-wrap:normal;background-color:initial;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}div#p>svg>foreignObject>section .commit-tease-sha{color:#444d56;display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:90%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.commit-tease-sha{--marpit-root-font-size:90%}div#p>svg>foreignObject>section .full-commit .btn-outline:not(:disabled):hover{border-color:#005cc5;color:#005cc5}div#p>svg>foreignObject>section .blob-wrapper{overflow-x:auto;overflow-y:hidden}div#p>svg>foreignObject>section .blob-wrapper-embedded{max-height:240px;overflow-y:auto}div#p>svg>foreignObject>section .blob-num{color:rgba(27,31,35,.3);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px;min-width:50px;padding-left:10px;padding-right:10px;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;width:1%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-num{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .blob-num:hover{color:rgba(27,31,35,.6)}div#p>svg>foreignObject>section .blob-num:before{content:attr(data-line-number)}div#p>svg>foreignObject>section .blob-code{line-height:20px;padding-left:10px;padding-right:10px;position:relative;vertical-align:top}div#p>svg>foreignObject>section .blob-code-inner{word-wrap:normal;color:#24292e;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;overflow:visible;white-space:pre}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-code-inner{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .pl-token.active,div#p>svg>foreignObject>section .pl-token:hover{background:#ffea7f;cursor:pointer}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"1\"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"2\"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"3\"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"4\"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"5\"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"6\"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"7\"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"8\"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"9\"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"10\"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"11\"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"12\"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .hljs{background:#fff;color:#333;display:block;overflow-x:auto;padding:.5em}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{background-color:#eaffea;color:#55a532}div#p>svg>foreignObject>section .hljs-deletion{background-color:#ffecec;color:#bd2c00}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{color:#48c;font-weight:inherit}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{color:hsla(0,0%,40%,.75);font-size:18px;left:30px;margin:0;position:absolute}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-direction:column;flex-wrap:nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{bottom:21px;color:#777;font-size:24px;padding:0;position:absolute;right:30px}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentColor}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class=\"bespoke-marp-osc\"><button data-bespoke-marp-osc=\"prev\" tabindex=\"-1\" title=\"Previous slide\">Previous slide</button><span data-bespoke-marp-osc=\"page\"></span><button data-bespoke-marp-osc=\"next\" tabindex=\"-1\" title=\"Next slide\">Next slide</button><button data-bespoke-marp-osc=\"fullscreen\" tabindex=\"-1\" title=\"Toggle fullscreen (f)\">Toggle fullscreen</button><button data-bespoke-marp-osc=\"presenter\" tabindex=\"-1\" title=\"Open presenter view (p)\">Open presenter view</button></div><div id=\"p\"><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"1\">\n<h1><svg data-marp-fitting=\"svg\"><foreignObject><span data-marp-fitting-svg-content>  Marp：用 Markdown「写」PPT 的新选择</span></foreignObject></svg></h1>\n<ul>\n<li>Marp\n<ul>\n<li>Markdown --&gt; PPT</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"2\">\n<h1>需求</h1>\n<ul>\n<li>制作视频之前，写文案\n<ul>\n<li>工作量少，简单\n<ul>\n<li>不想写一堆代码</li>\n</ul>\n</li>\n<li>翻页效果，即可。\n<ul>\n<li>有动画更好</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>简洁，清晰明了\n<ul>\n<li>不想做得花里胡哨</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"3\">\n<ul>\n<li>参考\n<ul>\n<li><a href=\"https://sspai.com/post/55718\">Marp：用 Markdown「写」PPT 的新选择</a>\n<ul>\n<li>前往 VSCode 的网站 下载并安装 VSCode 本体，</li>\n<li>然后在左侧的插件栏中搜索并安装 Marp for VS Code。</li>\n<li>为了获得更好的 Markdown 编辑体验，大家不妨再安装一个叫做 Markdown All in One 的插件，然后就可以开始愉快地使用 Marp 了。</li>\n</ul>\n</li>\n<li>使用 Markdown 预览功能，确认无误后，再导出</li>\n<li>toggle打开或关闭特效\n<ul>\n<li>marp: true</li>\n</ul>\n</li>\n<li>缺点，没有动画特效</li>\n</ul>\n</li>\n</ul>\n<h1>reveal.js</h1>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"4\">\n<p>编辑完成后，通过编辑器右上角的 Marp 图标按钮就可以调出 Export slide deck 命令并导出幻灯片了。Marp 插件目前支持导出 HTML 和 PDF 格式，另外可以将首页导出为 PNG 或 JPEG 格式的图片。</p>\n<p>需要注意的是，目前导出 PDF 或者图片时需要依赖 Chromium 内核的浏览器。最终的导出效果与预览时看到的相同。</p>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"5\">\n<h1>1号标题123</h1>\n<h2>2号标题1234</h2>\n<ul>\n<li>1 测试\n<ul>\n<li>2</li>\n<li>3</li>\n</ul>\n</li>\n</ul>\n<h1>reveal.js</h1>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"6\">\n<h2>2号标题 1235</h2>\n<ul>\n<li>4 测试\n<ul>\n<li>2</li>\n<li>3</li>\n</ul>\n</li>\n</ul>\n</section>\n<script>!function(){\"use strict\";const t=\"marpitSVGPolyfill:setZoomFactor,\",e=Symbol();let r,o;function n(n){const i=\"object\"==typeof n&&n.target||document,a=\"object\"==typeof n?n.zoom:n;window[e]||(Object.defineProperty(window,e,{configurable:!0,value:!0}),window.addEventListener(\"message\",(({data:e,origin:r})=>{if(r===window.origin)try{if(e&&\"string\"==typeof e&&e.startsWith(t)){const[,t]=e.split(\",\"),r=Number.parseFloat(t);Number.isNaN(r)||(o=r)}}catch(t){console.error(t)}})));let l=!1;Array.from(i.querySelectorAll(\"svg[data-marpit-svg]\"),(t=>{var e,n,i,s;t.style.transform||(t.style.transform=\"translateZ(0)\");const c=a||o||t.currentScale||1;r!==c&&(r=c,l=c);const d=t.getBoundingClientRect(),{length:u}=t.children;for(let r=0;r<u;r+=1){const o=t.children[r],a=o.getScreenCTM();if(a){const t=null!==(n=null===(e=o.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==n?n:0,r=null!==(s=null===(i=o.y)||void 0===i?void 0:i.baseVal.value)&&void 0!==s?s:0,l=o.firstElementChild,{style:u}=l;u.transformOrigin||(u.transformOrigin=`${-t}px ${-r}px`),u.transform=`scale(${c}) matrix(${a.a}, ${a.b}, ${a.c}, ${a.d}, ${a.e-d.left}, ${a.f-d.top}) translateZ(0.0001px)`}}})),!1!==l&&Array.from(i.querySelectorAll(\"iframe\"),(({contentWindow:e})=>{null==e||e.postMessage(`${t}${l}`,\"null\"===window.origin?\"*\":window.origin)}))}r=1,o=void 0;const i=(t,e,r)=>{if(t.getAttribute(e)!==r)return t.setAttribute(e,r),!0};function a({once:t=!1,target:e=document}={}){const r=\"Apple Computer, Inc.\"===navigator.vendor?[n]:[];let o=!t;const a=()=>{for(const t of r)t({target:e});!function(t=document){Array.from(t.querySelectorAll('svg[data-marp-fitting=\"svg\"]'),(t=>{var e;const r=t.firstChild,o=r.firstChild,{scrollWidth:n,scrollHeight:a}=o;let l,s=1;if(t.hasAttribute(\"data-marp-fitting-code\")&&(l=null===(e=t.parentElement)||void 0===e?void 0:e.parentElement),t.hasAttribute(\"data-marp-fitting-math\")&&(l=t.parentElement),l){const t=getComputedStyle(l),e=Math.ceil(l.clientWidth-parseFloat(t.paddingLeft||\"0\")-parseFloat(t.paddingRight||\"0\"));e&&(s=e)}const c=Math.max(n,s),d=Math.max(a,1),u=`0 0 ${c} ${d}`;i(r,\"width\",`${c}`),i(r,\"height\",`${d}`),i(t,\"preserveAspectRatio\",getComputedStyle(t).getPropertyValue(\"--preserve-aspect-ratio\")||\"xMinYMin meet\"),i(t,\"viewBox\",u)&&t.classList.toggle(\"__reflow__\")}))}(e),o&&window.requestAnimationFrame(a)};return a(),()=>{o=!1}}const l=Symbol(),s=document.currentScript;((t=document)=>{if(\"undefined\"==typeof window)throw new Error(\"Marp Core's browser script is valid only in browser context.\");if(t[l])return t[l];const e=a({target:t}),r=()=>{e(),delete t[l]};Object.defineProperty(t,l,{configurable:!0,value:r})})(s?s.getRootNode():document)}();\n</script></foreignObject></svg></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@1.2.0/lib/bespoke.js.LICENSE.txt */\n!function(){\"use strict\";var e=function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),a=[].filter.call(\"string\"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return\"SCRIPT\"!==e.nodeName})),s={},i=function(e,t){return(t=t||{}).index=a.indexOf(e),t.slide=e,t},o=function(e,t){s[e]=(s[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(s[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){a[e]&&(n&&l(\"deactivate\",i(n,t)),n=a[e],l(\"activate\",i(n,t)))},d=function(e,t){var r=a.indexOf(n)+e;l(e>0?\"next\":\"prev\",i(n,t))&&c(r,t)},u={off:o,on:function(e,t){return(s[e]||(s[e]=[])).push(t),o.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return a.indexOf(n);l(\"slide\",i(a[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:a,destroy:function(e){l(\"destroy\",i(n,e)),s={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u};function t(e){e.parent.classList.add(\"bespoke-marp-parent\"),e.slides.forEach((e=>e.classList.add(\"bespoke-marp-slide\"))),e.on(\"activate\",(t=>{const n=t.slide,r=!n.classList.contains(\"bespoke-marp-active\");e.slides.forEach((e=>{e.classList.remove(\"bespoke-marp-active\"),e.setAttribute(\"aria-hidden\",\"true\")})),n.classList.add(\"bespoke-marp-active\"),n.removeAttribute(\"aria-hidden\"),r&&(n.classList.add(\"bespoke-marp-active-ready\"),document.body.clientHeight,n.classList.remove(\"bespoke-marp-active-ready\"))}))}function n(e){let t=0,n=0;Object.defineProperty(e,\"fragments\",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll(\"[data-marpit-fragment]\")]))});const r=r=>void 0!==e.fragments[t][n+r],a=(r,a)=>{t=r,n=a,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const s=t<r||t===r&&n<=a;e.setAttribute(\"data-bespoke-marp-fragment\",s?\"active\":\"inactive\"),t===r&&n===a?e.setAttribute(\"data-bespoke-marp-current-fragment\",\"current\"):e.removeAttribute(\"data-bespoke-marp-current-fragment\")}))})),e.fragmentIndex=a;const s={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:a};e.fire(\"fragment\",s)};e.on(\"next\",(({fragment:s=!0})=>{if(s){if(r(1))return a(t,n+1),!1;const s=t+1;e.fragments[s]&&a(s,0)}else{const r=e.fragments[t].length;if(n+1<r)return a(t,r-1),!1;const s=e.fragments[t+1];s&&a(t+1,s.length-1)}})),e.on(\"prev\",(({fragment:s=!0})=>{if(r(-1)&&s)return a(t,n-1),!1;const i=t-1;e.fragments[i]&&a(i,e.fragments[i].length-1)})),e.on(\"slide\",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const a=e.fragments[t];if(a){const{length:e}=a;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}a(t,r)})),a(0,0)}var r,a={exports:{}};r=a,function(){var e=\"undefined\"!=typeof window&&void 0!==window.document?window.document:{},t=r.exports,n=function(){for(var t,n=[[\"requestFullscreen\",\"exitFullscreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fullscreenchange\",\"fullscreenerror\"],[\"webkitRequestFullscreen\",\"webkitExitFullscreen\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"webkitRequestFullScreen\",\"webkitCancelFullScreen\",\"webkitCurrentFullScreenElement\",\"webkitCancelFullScreen\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"mozRequestFullScreen\",\"mozCancelFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozfullscreenchange\",\"mozfullscreenerror\"],[\"msRequestFullscreen\",\"msExitFullscreen\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"MSFullscreenChange\",\"MSFullscreenError\"]],r=0,a=n.length,s={};r<a;r++)if((t=n[r])&&t[1]in e){for(r=0;r<t.length;r++)s[n[0][r]]=t[r];return s}return!1}(),a={change:n.fullscreenchange,error:n.fullscreenerror},s={request:function(t,r){return new Promise(function(a,s){var i=function(){this.off(\"change\",i),a()}.bind(this);this.on(\"change\",i);var o=(t=t||e.documentElement)[n.requestFullscreen](r);o instanceof Promise&&o.then(i).catch(s)}.bind(this))},exit:function(){return new Promise(function(t,r){if(this.isFullscreen){var a=function(){this.off(\"change\",a),t()}.bind(this);this.on(\"change\",a);var s=e[n.exitFullscreen]();s instanceof Promise&&s.then(a).catch(r)}else t()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on(\"change\",e)},onerror:function(e){this.on(\"error\",e)},on:function(t,n){var r=a[t];r&&e.addEventListener(r,n,!1)},off:function(t,n){var r=a[t];r&&e.removeEventListener(r,n,!1)},raw:n};n?(Object.defineProperties(s,{isFullscreen:{get:function(){return Boolean(e[n.fullscreenElement])}},element:{enumerable:!0,get:function(){return e[n.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(e[n.fullscreenEnabled])}}}),t?r.exports=s:window.screenfull=s):t?r.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}();var s=a.exports;function i(e){e.fullscreen=()=>{s.isEnabled&&s.toggle(document.body)},document.addEventListener(\"keydown\",(t=>{\"f\"!==t.key&&\"F11\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!s.isEnabled||(e.fullscreen(),t.preventDefault())}))}function o(e=2e3){return t=>{let n;function r(){n&&clearTimeout(n),n=setTimeout((()=>{t.parent.classList.add(\"bespoke-marp-inactive\"),t.fire(\"marp-inactive\")}),e),t.parent.classList.contains(\"bespoke-marp-inactive\")&&(t.parent.classList.remove(\"bespoke-marp-inactive\"),t.fire(\"marp-active\"))}document.addEventListener(\"mousedown\",r),document.addEventListener(\"mousemove\",r),document.addEventListener(\"touchend\",r),setTimeout(r,0)}}const l=[\"AUDIO\",\"BUTTON\",\"INPUT\",\"SELECT\",\"TEXTAREA\",\"VIDEO\"];function c(e){e.parent.addEventListener(\"keydown\",(e=>{if(!e.target)return;const t=e.target;(l.includes(t.nodeName)||\"true\"===t.contentEditable)&&e.stopPropagation()}))}function d(e){window.addEventListener(\"load\",(()=>{for(const t of e.slides){const e=t.querySelector(\"[data-marp-fitting]\")?\"\":\"hideable\";t.setAttribute(\"data-bespoke-marp-load\",e)}}))}var u;function f({interval:e=250}={}){return t=>{document.addEventListener(\"keydown\",(e=>{if(\" \"===e.key&&e.shiftKey)t.prev();else if(\"ArrowLeft\"===e.key||\"ArrowUp\"===e.key||\"PageUp\"===e.key)t.prev({fragment:!e.shiftKey});else if(\" \"!==e.key||e.shiftKey)if(\"ArrowRight\"===e.key||\"ArrowDown\"===e.key||\"PageDown\"===e.key)t.next({fragment:!e.shiftKey});else if(\"End\"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if(\"Home\"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()}));let n,r,a=0;t.parent.addEventListener(\"wheel\",(s=>{let i=!1;const o=(e,t)=>{e&&(i=i||function(e,t){return function(e,t){const n=t===u.X?\"Width\":\"Height\";return e[`client${n}`]<e[`scroll${n}`]}(e,t)&&function(e,t){const{overflow:n}=e,r=e[`overflow${t}`];return\"auto\"===n||\"scroll\"===n||\"auto\"===r||\"scroll\"===r}(getComputedStyle(e),t)}(e,t)),(null==e?void 0:e.parentElement)&&o(e.parentElement,t)};if(0!==s.deltaX&&o(s.target,u.X),0!==s.deltaY&&o(s.target,u.Y),i)return;s.preventDefault();const l=Math.sqrt(Math.pow(s.deltaX,2)+Math.pow(s.deltaY,2));if(void 0!==s.wheelDelta){if(void 0===s.webkitForce&&Math.abs(s.wheelDelta)<40)return;if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<4)return}else if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<12)return;r&&clearTimeout(r),r=setTimeout((()=>{n=0}),e);const c=Date.now()-a<e,d=l<=n;if(n=l,c||d)return;let f;(s.deltaX>0||s.deltaY>0)&&(f=\"next\"),(s.deltaX<0||s.deltaY<0)&&(f=\"prev\"),f&&(t[f](),a=Date.now())}))}}!function(e){e.X=\"X\",e.Y=\"Y\"}(u||(u={}));const p=(...e)=>history.replaceState(...e),m=\"data-bespoke-view\",g=\"presenter\",h=\"next\",v=[\"\",g,h],b=(e,{protocol:t,host:n,pathname:r,hash:a}=location)=>{const s=e.toString();return`${t}//${n}${r}${s?\"?\":\"\"}${s}${a}`},w=()=>{const e=document.body.getAttribute(m);if(v.includes(e))return e;throw new Error(\"View mode is not assigned.\")},y=e=>new URLSearchParams(location.search).get(e),k=(e,t={})=>{var n;const r=Object.assign({location:location,setter:p},t),a=new URLSearchParams(r.location.search);for(const t of Object.keys(e)){const n=e[t];\"string\"==typeof n?a.set(t,n):a.delete(t)}try{r.setter(Object.assign({},null!==(n=window.history.state)&&void 0!==n?n:{}),\"\",b(a,r.location))}catch(e){console.error(e)}},E={available:(()=>{try{return localStorage.setItem(\"bespoke-marp\",\"bespoke-marp\"),localStorage.removeItem(\"bespoke-marp\"),!0}catch(e){return console.warn(\"Warning: Using localStorage is restricted in the current host so some features may not work.\"),!1}})(),get:e=>{try{return localStorage.getItem(e)}catch(e){return null}},set:(e,t)=>{try{return localStorage.setItem(e,t),!0}catch(e){return!1}},remove:e=>{try{return localStorage.removeItem(e),!0}catch(e){return!1}}};function x(e=\".bespoke-marp-osc\"){const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[data-bespoke-marp-osc=${JSON.stringify(e)}]`).forEach(n)};return s.isEnabled||n(\"fullscreen\",(e=>e.style.display=\"none\")),E.available||n(\"presenter\",(e=>{e.disabled=!0,e.title=\"Presenter view is disabled due to restricted localStorage.\"})),e=>{t.addEventListener(\"click\",(t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;switch(n&&t.target.blur(),n){case\"next\":e.next({fragment:!t.shiftKey});break;case\"prev\":e.prev({fragment:!t.shiftKey});break;case\"fullscreen\":\"function\"==typeof e.fullscreen&&s.isEnabled&&e.fullscreen();break;case\"presenter\":e.openPresenterView()}}})),e.parent.appendChild(t),e.on(\"activate\",(({index:t})=>{n(\"page\",(n=>n.textContent=`Page ${t+1} of ${e.slides.length}`))})),e.on(\"fragment\",(({index:t,fragments:r,fragmentIndex:a})=>{n(\"prev\",(e=>e.disabled=0===t&&0===a)),n(\"next\",(n=>n.disabled=t===e.slides.length-1&&a===r.length-1))})),e.on(\"marp-active\",(()=>t.removeAttribute(\"aria-hidden\"))),e.on(\"marp-inactive\",(()=>t.setAttribute(\"aria-hidden\",\"true\"))),s.isEnabled&&s.onchange((()=>n(\"fullscreen\",(e=>e.classList.toggle(\"exit\",s.isEnabled&&s.isFullscreen)))))}}function L(e){window.addEventListener(\"message\",(t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(\":\");if(\"navigate\"===n){const[t,n]=r.split(\",\");let a=Number.parseInt(t,10),s=Number.parseInt(n,10)+1;s>=e.fragments[a].length&&(a+=1,s=0),e.slide(a,{fragment:s})}}))}function S(e){if(!(e=>e.syncKey&&\"string\"==typeof e.syncKey)(e))throw new Error(\"The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.\");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:M},presenterUrl:{enumerable:!0,get:I}}),E.available&&document.addEventListener(\"keydown\",(t=>{\"p\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())}))}function M(){const e=Math.max(Math.floor(.85*window.innerWidth),640),t=Math.max(Math.floor(.85*window.innerHeight),360);return window.open(this.presenterUrl,`bespoke-marp-presenter-${this.syncKey}`,`width=${e},height=${t},menubar=no,toolbar=no`)}function I(){const e=new URLSearchParams(location.search);return e.set(\"view\",\"presenter\"),e.set(\"sync\",this.syncKey),b(e)}var P=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];let O=e=>String(e).replace(/[&<>\"']/g,(e=>`&${F[e]};`)),F={\"&\":\"amp\",\"<\":\"lt\",\">\":\"gt\",'\"':\"quot\",\"'\":\"apos\"},$=\"dangerouslySetInnerHTML\",A={className:\"class\",htmlFor:\"for\"},T={};function q(e,t){let n=[],r=\"\";t=t||{};for(let e=arguments.length;e-- >2;)n.push(arguments[e]);if(\"function\"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+=\"<\"+e,t)for(let e in t)!1!==t[e]&&null!=t[e]&&e!==$&&(r+=` ${A[e]?A[e]:O(e)}=\"${O(t[e])}\"`);r+=\">\"}if(-1===P.indexOf(e)){if(t[$])r+=t[$].__html;else for(;n.length;){let e=n.pop();if(e)if(e.pop)for(let t=e.length;t--;)n.push(e[t]);else r+=!0===T[e]?e:O(e)}r+=e?`</${e}>`:\"\"}return T[r]=!0,r}const K=({children:e})=>q(null,null,...e),N=\"bespoke-marp-presenter-container\",C=\"bespoke-marp-presenter-next\",D=\"bespoke-marp-presenter-next-container\",j=\"bespoke-marp-presenter-note-container\",X=\"bespoke-marp-presenter-info-container\",R=\"bespoke-marp-presenter-info-page\",U=\"bespoke-marp-presenter-info-page-text\",B=\"bespoke-marp-presenter-info-page-prev\",V=\"bespoke-marp-presenter-info-page-next\",Y=\"bespoke-marp-presenter-info-time\",H=\"bespoke-marp-presenter-info-timer\";function z(e){const{title:t}=document;document.title=\"[Presenter view]\"+(t?` - ${t}`:\"\");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement(\"div\");return t.className=N,t.appendChild(e),t.insertAdjacentHTML(\"beforeend\",q(K,null,q(\"div\",{class:D},q(\"iframe\",{class:C,src:\"?view=next\"})),q(\"div\",{class:j}),q(\"div\",{class:X},q(\"div\",{class:R},q(\"button\",{class:B,tabindex:\"-1\",title:\"Previous\"},\"Previous\"),q(\"span\",{class:U}),q(\"button\",{class:V,tabindex:\"-1\",title:\"Next\"},\"Next\")),q(\"time\",{class:Y,title:\"Current time\"}),q(\"div\",{class:H})))),t})(e.parent)),(e=>{r(D).addEventListener(\"click\",(()=>e.next()));const t=r(C),n=(a=t,(e,t)=>{var n;return null===(n=a.contentWindow)||void 0===n?void 0:n.postMessage(`navigate:${e},${t}`,\"null\"===window.origin?\"*\":window.origin)});var a;t.addEventListener(\"load\",(()=>{r(D).classList.add(\"active\"),n(e.slide(),e.fragmentIndex),e.on(\"fragment\",(({index:e,fragmentIndex:t})=>n(e,t)))}));const s=document.querySelectorAll(\".bespoke-marp-note\");s.forEach((e=>{e.addEventListener(\"keydown\",(e=>e.stopPropagation())),r(j).appendChild(e)})),e.on(\"activate\",(()=>s.forEach((t=>t.classList.toggle(\"active\",t.dataset.index==e.slide()))))),e.on(\"activate\",(({index:t})=>{r(U).textContent=`${t+1} / ${e.slides.length}`}));const i=r(B),o=r(V);i.addEventListener(\"click\",(t=>{i.blur(),e.prev({fragment:!t.shiftKey})})),o.addEventListener(\"click\",(t=>{o.blur(),e.next({fragment:!t.shiftKey})})),e.on(\"fragment\",(({index:t,fragments:n,fragmentIndex:r})=>{i.disabled=0===t&&0===r,o.disabled=t===e.slides.length-1&&r===n.length-1}));const l=()=>r(Y).textContent=(new Date).toLocaleTimeString();l(),setInterval(l,250)})(e)}function _(e){const t=w();return t===h&&e.appendChild(document.createElement(\"span\")),{\"\":S,[g]:z,[h]:L}[t]}function J(e){e.on(\"activate\",(t=>{document.querySelectorAll(\".bespoke-progress-parent > .bespoke-progress-bar\").forEach((n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+\"%\"}))}))}const W=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t};function G(e={}){const t=Object.assign({history:!0},e);return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},a=(t={fragment:!0})=>{((t,n)=>{const{fragments:r,slides:a}=e,s=Math.max(0,Math.min(t,a.length-1)),i=Math.max(0,Math.min(n||0,r[s].length-1));s===e.slide()&&i===e.fragmentIndex||e.slide(s,{fragment:i})})((W(location.hash.slice(1))||1)-1,t.fragment?W(y(\"f\")||\"\"):null)};e.on(\"fragment\",(({index:e,fragmentIndex:r})=>{n||k({f:0===r||r.toString()},{location:Object.assign(Object.assign({},location),{hash:`#${e+1}`}),setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})})),setTimeout((()=>{a(),window.addEventListener(\"hashchange\",(()=>r((()=>{a({fragment:!1}),k({f:void 0})})))),window.addEventListener(\"popstate\",(()=>{n||r((()=>a()))})),n=!1}),0)}}function Q(e={}){var t;const n=e.key||(null===(t=window.history.state)||void 0===t?void 0:t.marpBespokeSyncKey)||Math.random().toString(36).slice(2),r=`bespoke-marp-sync-${n}`;var a;a={marpBespokeSyncKey:n},k({},{setter:(e,...t)=>p(Object.assign(Object.assign({},e),a),...t)});const s=()=>{const e=E.get(r);return e?JSON.parse(e):Object.create(null)},i=e=>{const t=s(),n=Object.assign(Object.assign({},t),e(t));return E.set(r,JSON.stringify(n)),n},o=()=>{window.removeEventListener(\"pageshow\",o),i((e=>({reference:(e.reference||0)+1})))};return e=>{o(),Object.defineProperty(e,\"syncKey\",{value:n,enumerable:!0});let t=!0;setTimeout((()=>{e.on(\"fragment\",(e=>{t&&i((()=>({index:e.index,fragmentIndex:e.fragmentIndex})))}))}),0),window.addEventListener(\"storage\",(n=>{if(n.key===r&&n.oldValue&&n.newValue){const r=JSON.parse(n.oldValue),a=JSON.parse(n.newValue);if(r.index!==a.index||r.fragmentIndex!==a.fragmentIndex)try{t=!1,e.slide(a.index,{fragment:a.fragmentIndex})}finally{t=!0}}}));const a=()=>{const{reference:e}=s();void 0===e||e<=1?E.remove(r):i((()=>({reference:e-1})))};window.addEventListener(\"pagehide\",(e=>{e.persisted&&window.addEventListener(\"pageshow\",o),a()})),e.on(\"destroy\",a)}}function Z({slope:e=Math.tan(-35*Math.PI/180),swipeThreshold:t=30}={}){return n=>{let r;const a=n.parent,s=e=>{const t=a.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};a.addEventListener(\"touchstart\",(e=>{r=1===e.touches.length?s(e.touches[0]):void 0}),{passive:!0}),a.addEventListener(\"touchmove\",(e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=s(e.touches[0]),n=t.x-r.x,a=t.y-r.y;r.delta=Math.sqrt(Math.pow(Math.abs(n),2)+Math.pow(Math.abs(a),2)),r.radian=Math.atan2(n,a)}else r=void 0})),a.addEventListener(\"touchend\",(a=>{if(r){if(r.delta&&r.delta>=t&&r.radian){let t=r.radian-e;t=(t+Math.PI)%(2*Math.PI)-Math.PI,n[t<0?\"next\":\"prev\"](),a.stopPropagation()}r=void 0}}),{passive:!0})}}function ee(e,t,n,r){return new(n||(n=Promise))((function(a,s){function i(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,o)}l((r=r.apply(e,t||[])).next())}))}let te;const ne=()=>(void 0===te&&(te=\"wakeLock\"in navigator&&navigator.wakeLock),te),re=()=>ee(void 0,void 0,void 0,(function*(){const e=ne();if(e)try{return yield e.request(\"screen\")}catch(e){console.warn(e)}return null}));function ae(){return ee(this,void 0,void 0,(function*(){if(!ne())return;let e;const t=()=>{e&&\"visible\"===document.visibilityState&&re()};return document.addEventListener(\"visibilitychange\",t),document.addEventListener(\"fullscreenchange\",t),e=yield re(),e}))}!function(r=document.getElementById(\"p\")){document.body.setAttribute(m,(()=>{const e=y(\"view\");return e===h||e===g?e:\"\"})());const a=(e=>{const t=y(e);return k({[e]:void 0}),t})(\"sync\")||void 0,s=!1,l=!0;e(r,((...e)=>{const t=v.findIndex((e=>w()===e));if(t<0)throw new Error(\"Invalid view\");return e.map((([e,n])=>e[t]&&n)).filter((e=>e))})([[l,l,s],Q({key:a})],[[l,l,l],_(r)],[[l,l,s],c],[[l,l,l],t],[[l,s,s],o()],[[l,l,l],d],[[l,l,l],G({history:!1})],[[l,l,s],f()],[[l,l,s],i],[[l,s,s],J],[[l,l,s],Z()],[[l,s,s],x()],[[l,l,l],n],[[l,l,s],ae]))}()}();</script></body></html>"
  },
  {
    "path": "2021/8-15-Marp-ppt/demo-完成.html",
    "content": "<!DOCTYPE html><html lang=\"zh-CN\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,height=device-height,initial-scale=1.0\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"><meta property=\"og:type\" content=\"website\"><meta name=\"twitter:card\" content=\"summary\"><style>@media screen{body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover{opacity:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active{opacity:.6}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTQwIDcwSDIwVjUwbTIwIDBMMjAgNzBtNDAtNDBoMjB2MjBtLTIwIDAgMjAtMjAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTIwIDUwaDIwdjIwbS0yMCAwIDIwLTIwbTQwIDBINjBWMzBtMjAgMEw2MCA1MCIvPjwvc3ZnPg==\")}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDo1cHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yMCA2MGgtNWE1IDUgMCAwIDEtNS01VjIwYTUgNSAwIDAgMSA1LTVoNjBhNSA1IDAgMCAxIDUgNXY1TTMwIDg1aDYwIi8+PHJlY3QgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiLz48cmVjdCBjbGFzcz0iYSIgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1Ii8+PHBhdGggY2xhc3M9ImEiIGQ9Ik00MCA1MGg0ME00MCA2MGgzMCIvPjwvc3ZnPg==\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{-webkit-animation-name:__bespoke_marp__!important;animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=\"\"] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{bottom:0;left:0;position:absolute;right:0;top:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=\"\"] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=\"\"] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:transparent}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template-areas:\"current next\" \"current note\" \"info    note\";grid-template-columns:2fr 1fr;grid-template-rows:minmax(140px,1fr) 2fr 3em;height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:transparent;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{word-wrap:break-word;box-sizing:border-box;font-size:1.1em;height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;scrollbar-color:hsla(0,0%,93%,.5) transparent;scrollbar-width:thin;white-space:pre-wrap;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:transparent}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:hsla(0,0%,93%,.5);border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>div#p>svg>foreignObject>section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center}div#p>svg>foreignObject>section:after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#p>svg>foreignObject>section:not([data-marpit-pagination]):after{display:none}/* Normalization */div#p>svg>foreignObject>section h1{font-size:2em;margin:0.67em 0}div#p>svg>foreignObject>section video::-webkit-media-controls{will-change:transform}@page{size:1280px 720px;margin:0}@media print{body,html{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#p>svg>foreignObject>section{page-break-before:always;break-before:page}div#p>svg>foreignObject>section,div#p>svg>foreignObject>section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;transition:none!important}div#p>svg[data-marpit-svg]{display:block;height:100vh;width:100vw}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{display:block;height:auto;width:100%}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{position:static}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{content:\"\"}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{position:relative}}div#p>svg>foreignObject>section [data-marp-fitting-svg-content]{display:table;white-space:nowrap;width:-webkit-max-content;width:-moz-max-content;width:max-content}div#p>svg>foreignObject>section [data-marp-fitting-svg-content-wrap]{white-space:pre}div#p>svg>foreignObject>section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}\n/*!\n * Marp default theme.\n *\n * @theme default\n * @author Yuki Hattori\n *\n * @auto-scaling true\n * @size 4:3 960px 720px\n */div#p>svg>foreignObject>section .octicon{fill:currentColor;display:inline-block;vertical-align:text-bottom}div#p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#p>svg>foreignObject>section .anchor:focus{outline:none}div#p>svg>foreignObject>section h1 .octicon-link,div#p>svg>foreignObject>section h2 .octicon-link,div#p>svg>foreignObject>section h3 .octicon-link,div#p>svg>foreignObject>section h4 .octicon-link,div#p>svg>foreignObject>section h5 .octicon-link,div#p>svg>foreignObject>section h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}div#p>svg>foreignObject>section h1:hover .anchor,div#p>svg>foreignObject>section h2:hover .anchor,div#p>svg>foreignObject>section h3:hover .anchor,div#p>svg>foreignObject>section h4:hover .anchor,div#p>svg>foreignObject>section h5:hover .anchor,div#p>svg>foreignObject>section h6:hover .anchor{text-decoration:none}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link{visibility:visible}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link:before{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'/%3E%3C/svg%3E\");content:\" \";display:inline-block;height:16px;width:16px}div#p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5}div#p>svg>foreignObject>section{--marpit-root-font-size:16px}div#p>svg>foreignObject>section details{display:block}div#p>svg>foreignObject>section summary{display:list-item}div#p>svg>foreignObject>section a{background-color:initial}div#p>svg>foreignObject>section a:active,div#p>svg>foreignObject>section a:hover{outline-width:0}div#p>svg>foreignObject>section strong{font-weight:inherit;font-weight:bolder}div#p>svg>foreignObject>section h1{margin:.67em 0}div#p>svg>foreignObject>section img{border-style:none}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section kbd,div#p>svg>foreignObject>section pre{font-family:monospace,monospace;font-size:1em}div#p>svg>foreignObject>section hr{box-sizing:initial;overflow:visible}div#p>svg>foreignObject>section input{font:inherit;margin:0;overflow:visible}div#p>svg>foreignObject>section [type=checkbox]{padding:0}div#p>svg>foreignObject>section *,div#p>svg>foreignObject>section [type=checkbox]{box-sizing:border-box}div#p>svg>foreignObject>section input{font-family:inherit;font-size:inherit;line-height:inherit}div#p>svg>foreignObject>section a{color:#0366d6;text-decoration:none}div#p>svg>foreignObject>section a:hover{text-decoration:underline}div#p>svg>foreignObject>section strong{font-weight:600}div#p>svg>foreignObject>section hr{background:transparent;border-bottom:1px solid #dfe2e5;height:0;margin:15px 0;overflow:hidden}div#p>svg>foreignObject>section hr:after,div#p>svg>foreignObject>section hr:before{content:\"\";display:table}div#p>svg>foreignObject>section hr:after{clear:both}div#p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0}div#p>svg>foreignObject>section td,div#p>svg>foreignObject>section th{padding:0}div#p>svg>foreignObject>section details summary{cursor:pointer}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section h1{font-size:32px}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{font-weight:600}div#p>svg>foreignObject>section h2{font-size:24px}div#p>svg>foreignObject>section h3{font-size:20px}div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4{font-weight:600}div#p>svg>foreignObject>section h4{font-size:16px}div#p>svg>foreignObject>section h5{font-size:14px}div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600}div#p>svg>foreignObject>section h6{font-size:12px}div#p>svg>foreignObject>section p{margin-bottom:10px;margin-top:0}div#p>svg>foreignObject>section blockquote{margin:0}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{margin-bottom:0;margin-top:0;padding-left:0}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#p>svg>foreignObject>section ol ol ol,div#p>svg>foreignObject>section ol ul ol,div#p>svg>foreignObject>section ul ol ol,div#p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#p>svg>foreignObject>section dd{margin-left:0}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}div#p>svg>foreignObject>section pre{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section input::-webkit-inner-spin-button,div#p>svg>foreignObject>section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#p>svg>foreignObject>section :checked+.radio-label{border-color:#0366d6;position:relative;z-index:1}div#p>svg>foreignObject>section .border{border:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .border-0{border:0!important}div#p>svg>foreignObject>section .border-bottom{border-bottom:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .rounded-1{border-radius:3px!important}div#p>svg>foreignObject>section .bg-white{background-color:#fff!important}div#p>svg>foreignObject>section .bg-gray-light{background-color:#fafbfc!important}div#p>svg>foreignObject>section .text-gray-light{color:#6a737d!important}div#p>svg>foreignObject>section .pl-3,div#p>svg>foreignObject>section .px-3{padding-left:16px!important}div#p>svg>foreignObject>section .px-3{padding-right:16px!important}div#p>svg>foreignObject>section .f6{font-size:12px!important}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.f6{--marpit-root-font-size:12px!important}div#p>svg>foreignObject>section .lh-condensed{line-height:1.25!important}div#p>svg>foreignObject>section .text-bold{font-weight:600!important}div#p>svg>foreignObject>section .pl-c{color:#6a737d}div#p>svg>foreignObject>section .pl-c1,div#p>svg>foreignObject>section .pl-s .pl-v{color:#005cc5}div#p>svg>foreignObject>section .pl-e,div#p>svg>foreignObject>section .pl-en{color:#6f42c1}div#p>svg>foreignObject>section .pl-s .pl-s1,div#p>svg>foreignObject>section .pl-smi{color:#24292e}div#p>svg>foreignObject>section .pl-ent{color:#22863a}div#p>svg>foreignObject>section .pl-k{color:#d73a49}div#p>svg>foreignObject>section .pl-pds,div#p>svg>foreignObject>section .pl-s,div#p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#p>svg>foreignObject>section .pl-sr,div#p>svg>foreignObject>section .pl-sr .pl-cce,div#p>svg>foreignObject>section .pl-sr .pl-sra,div#p>svg>foreignObject>section .pl-sr .pl-sre{color:#032f62}div#p>svg>foreignObject>section .pl-smw,div#p>svg>foreignObject>section .pl-v{color:#e36209}div#p>svg>foreignObject>section .pl-bu{color:#b31d28}div#p>svg>foreignObject>section .pl-ii{background-color:#b31d28;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2{background-color:#d73a49;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2:before{content:\"^M\"}div#p>svg>foreignObject>section .pl-sr .pl-cce{color:#22863a;font-weight:700}div#p>svg>foreignObject>section .pl-ml{color:#735c0f}div#p>svg>foreignObject>section .pl-mh,div#p>svg>foreignObject>section .pl-mh .pl-en,div#p>svg>foreignObject>section .pl-ms{color:#005cc5;font-weight:700}div#p>svg>foreignObject>section .pl-mi{color:#24292e;font-style:italic}div#p>svg>foreignObject>section .pl-mb{color:#24292e;font-weight:700}div#p>svg>foreignObject>section .pl-md{background-color:#ffeef0;color:#b31d28}div#p>svg>foreignObject>section .pl-mi1{background-color:#f0fff4;color:#22863a}div#p>svg>foreignObject>section .pl-mc{background-color:#ffebda;color:#e36209}div#p>svg>foreignObject>section .pl-mi2{background-color:#005cc5;color:#f6f8fa}div#p>svg>foreignObject>section .pl-mdr{color:#6f42c1;font-weight:700}div#p>svg>foreignObject>section .pl-ba{color:#586069}div#p>svg>foreignObject>section .pl-sg{color:#959da5}div#p>svg>foreignObject>section .pl-corl{color:#032f62;text-decoration:underline}div#p>svg>foreignObject>section .mb-0{margin-bottom:0!important}div#p>svg>foreignObject>section .my-2{margin-bottom:8px!important;margin-top:8px!important}div#p>svg>foreignObject>section .pl-0{padding-left:0!important}div#p>svg>foreignObject>section .py-0{padding-bottom:0!important;padding-top:0!important}div#p>svg>foreignObject>section .pl-1{padding-left:4px!important}div#p>svg>foreignObject>section .pl-2{padding-left:8px!important}div#p>svg>foreignObject>section .py-2{padding-bottom:8px!important;padding-top:8px!important}div#p>svg>foreignObject>section .pl-3{padding-left:16px!important}div#p>svg>foreignObject>section .pl-4{padding-left:24px!important}div#p>svg>foreignObject>section .pl-5{padding-left:32px!important}div#p>svg>foreignObject>section .pl-6{padding-left:40px!important}div#p>svg>foreignObject>section .pl-7{padding-left:48px!important}div#p>svg>foreignObject>section .pl-8{padding-left:64px!important}div#p>svg>foreignObject>section .pl-9{padding-left:80px!important}div#p>svg>foreignObject>section .pl-10{padding-left:96px!important}div#p>svg>foreignObject>section .pl-11{padding-left:112px!important}div#p>svg>foreignObject>section .pl-12{padding-left:128px!important}div#p>svg>foreignObject>section hr{border-bottom-color:#eee}div#p>svg>foreignObject>section kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da;color:#444d56;display:inline-block;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}div#p>svg>foreignObject>section:after,div#p>svg>foreignObject>section:before{\n  /* content:\"\"; */display:table}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-bottom:16px;margin-top:0}div#p>svg>foreignObject>section hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}div#p>svg>foreignObject>section blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}div#p>svg>foreignObject>section h1{font-size:2em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}div#p>svg>foreignObject>section h2{font-size:1.5em}div#p>svg>foreignObject>section h3{font-size:1.25em}div#p>svg>foreignObject>section h4{font-size:1em}div#p>svg>foreignObject>section h5{font-size:.875em}div#p>svg>foreignObject>section h6{color:#6a737d;font-size:.85em}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section li{word-wrap:break-all}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}div#p>svg>foreignObject>section dl dd{margin-bottom:16px;padding:0 16px}div#p>svg>foreignObject>section table{display:block;overflow:auto;width:100%}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{border:1px solid #dfe2e5;padding:6px 13px}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #c6cbd1}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section img{background-color:#fff;box-sizing:initial;max-width:100%}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section code{background-color:rgba(27,31,35,.05);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}div#p>svg>foreignObject>section pre{word-wrap:normal}div#p>svg>foreignObject>section pre>code{background:transparent;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}div#p>svg>foreignObject>section pre code{word-wrap:normal;background-color:initial;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}div#p>svg>foreignObject>section .commit-tease-sha{color:#444d56;display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:90%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.commit-tease-sha{--marpit-root-font-size:90%}div#p>svg>foreignObject>section .full-commit .btn-outline:not(:disabled):hover{border-color:#005cc5;color:#005cc5}div#p>svg>foreignObject>section .blob-wrapper{overflow-x:auto;overflow-y:hidden}div#p>svg>foreignObject>section .blob-wrapper-embedded{max-height:240px;overflow-y:auto}div#p>svg>foreignObject>section .blob-num{color:rgba(27,31,35,.3);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px;min-width:50px;padding-left:10px;padding-right:10px;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;width:1%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-num{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .blob-num:hover{color:rgba(27,31,35,.6)}div#p>svg>foreignObject>section .blob-num:before{content:attr(data-line-number)}div#p>svg>foreignObject>section .blob-code{line-height:20px;padding-left:10px;padding-right:10px;position:relative;vertical-align:top}div#p>svg>foreignObject>section .blob-code-inner{word-wrap:normal;color:#24292e;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;overflow:visible;white-space:pre}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-code-inner{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .pl-token.active,div#p>svg>foreignObject>section .pl-token:hover{background:#ffea7f;cursor:pointer}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"1\"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"2\"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"3\"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"4\"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"5\"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"6\"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"7\"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"8\"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"9\"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"10\"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"11\"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"12\"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .hljs{background:#fff;color:#333;display:block;overflow-x:auto;padding:.5em}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{background-color:#eaffea;color:#55a532}div#p>svg>foreignObject>section .hljs-deletion{background-color:#ffecec;color:#bd2c00}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{color:#48c;font-weight:inherit}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{color:hsla(0,0%,40%,.75);font-size:18px;left:30px;margin:0;position:absolute}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-direction:column;flex-wrap:nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{bottom:21px;color:#777;font-size:24px;padding:0;position:absolute;right:30px}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentColor}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class=\"bespoke-marp-osc\"><button data-bespoke-marp-osc=\"prev\" tabindex=\"-1\" title=\"Previous slide\">Previous slide</button><span data-bespoke-marp-osc=\"page\"></span><button data-bespoke-marp-osc=\"next\" tabindex=\"-1\" title=\"Next slide\">Next slide</button><button data-bespoke-marp-osc=\"fullscreen\" tabindex=\"-1\" title=\"Toggle fullscreen (f)\">Toggle fullscreen</button><button data-bespoke-marp-osc=\"presenter\" tabindex=\"-1\" title=\"Open presenter view (p)\">Open presenter view</button></div><div id=\"p\"><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"1\">\n<h1>程序员的996，每天工作安排</h1>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"2\">\n<h2>上午</h2>\n<ul>\n<li>\n<p>9:00</p>\n<ul>\n<li>上班打卡，企业微信</li>\n<li>开早会</li>\n</ul>\n</li>\n<li>\n<p>9:15</p>\n<ul>\n<li>敏捷开发管理系统</li>\n<li>领取工作内容</li>\n</ul>\n</li>\n<li>\n<p>9:30</p>\n<ul>\n<li>开始工作</li>\n<li>和产品经理沟通，battle 打嘴仗</li>\n</ul>\n</li>\n<li>\n<p>10:00</p>\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n<li>\n<p>11:00</p>\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"3\">\n<h2>中午</h2>\n<ul>\n<li>11:55\n<ul>\n<li>提前去食堂，避免排队</li>\n</ul>\n</li>\n<li>12:30\n<ul>\n<li>吃完</li>\n<li>回公司吹牛</li>\n</ul>\n</li>\n<li>13:00--&gt;14:00\n<ul>\n<li>叹空调，睡午觉</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"4\">\n<h2>下午</h2>\n<ul>\n<li>14:00\n<ul>\n<li>闹钟吵醒，洗脸上班</li>\n</ul>\n</li>\n<li>16:00\n<ul>\n<li>非常困倦</li>\n<li>摸鱼</li>\n</ul>\n</li>\n<li>18:00\n<ul>\n<li>准点离开公司</li>\n<li>吃饭</li>\n<li>散步</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"5\">\n<h2>晚上</h2>\n<ul>\n<li>19:00\n<ul>\n<li>加班</li>\n</ul>\n</li>\n<li>20:45\n<ul>\n<li>敏捷开发管理系统\n<ul>\n<li>提交工作进度</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>21:00\n<ul>\n<li>下班打卡，企业微信</li>\n<li>准点离开公司</li>\n</ul>\n</li>\n</ul>\n</section>\n<script>!function(){\"use strict\";const t=\"marpitSVGPolyfill:setZoomFactor,\",e=Symbol();let r,o;function n(n){const i=\"object\"==typeof n&&n.target||document,a=\"object\"==typeof n?n.zoom:n;window[e]||(Object.defineProperty(window,e,{configurable:!0,value:!0}),window.addEventListener(\"message\",(({data:e,origin:r})=>{if(r===window.origin)try{if(e&&\"string\"==typeof e&&e.startsWith(t)){const[,t]=e.split(\",\"),r=Number.parseFloat(t);Number.isNaN(r)||(o=r)}}catch(t){console.error(t)}})));let l=!1;Array.from(i.querySelectorAll(\"svg[data-marpit-svg]\"),(t=>{var e,n,i,s;t.style.transform||(t.style.transform=\"translateZ(0)\");const c=a||o||t.currentScale||1;r!==c&&(r=c,l=c);const d=t.getBoundingClientRect(),{length:u}=t.children;for(let r=0;r<u;r+=1){const o=t.children[r],a=o.getScreenCTM();if(a){const t=null!==(n=null===(e=o.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==n?n:0,r=null!==(s=null===(i=o.y)||void 0===i?void 0:i.baseVal.value)&&void 0!==s?s:0,l=o.firstElementChild,{style:u}=l;u.transformOrigin||(u.transformOrigin=`${-t}px ${-r}px`),u.transform=`scale(${c}) matrix(${a.a}, ${a.b}, ${a.c}, ${a.d}, ${a.e-d.left}, ${a.f-d.top}) translateZ(0.0001px)`}}})),!1!==l&&Array.from(i.querySelectorAll(\"iframe\"),(({contentWindow:e})=>{null==e||e.postMessage(`${t}${l}`,\"null\"===window.origin?\"*\":window.origin)}))}r=1,o=void 0;const i=(t,e,r)=>{if(t.getAttribute(e)!==r)return t.setAttribute(e,r),!0};function a({once:t=!1,target:e=document}={}){const r=\"Apple Computer, Inc.\"===navigator.vendor?[n]:[];let o=!t;const a=()=>{for(const t of r)t({target:e});!function(t=document){Array.from(t.querySelectorAll('svg[data-marp-fitting=\"svg\"]'),(t=>{var e;const r=t.firstChild,o=r.firstChild,{scrollWidth:n,scrollHeight:a}=o;let l,s=1;if(t.hasAttribute(\"data-marp-fitting-code\")&&(l=null===(e=t.parentElement)||void 0===e?void 0:e.parentElement),t.hasAttribute(\"data-marp-fitting-math\")&&(l=t.parentElement),l){const t=getComputedStyle(l),e=Math.ceil(l.clientWidth-parseFloat(t.paddingLeft||\"0\")-parseFloat(t.paddingRight||\"0\"));e&&(s=e)}const c=Math.max(n,s),d=Math.max(a,1),u=`0 0 ${c} ${d}`;i(r,\"width\",`${c}`),i(r,\"height\",`${d}`),i(t,\"preserveAspectRatio\",getComputedStyle(t).getPropertyValue(\"--preserve-aspect-ratio\")||\"xMinYMin meet\"),i(t,\"viewBox\",u)&&t.classList.toggle(\"__reflow__\")}))}(e),o&&window.requestAnimationFrame(a)};return a(),()=>{o=!1}}const l=Symbol(),s=document.currentScript;((t=document)=>{if(\"undefined\"==typeof window)throw new Error(\"Marp Core's browser script is valid only in browser context.\");if(t[l])return t[l];const e=a({target:t}),r=()=>{e(),delete t[l]};Object.defineProperty(t,l,{configurable:!0,value:r})})(s?s.getRootNode():document)}();\n</script></foreignObject></svg></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@1.2.0/lib/bespoke.js.LICENSE.txt */\n!function(){\"use strict\";var e=function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),a=[].filter.call(\"string\"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return\"SCRIPT\"!==e.nodeName})),s={},i=function(e,t){return(t=t||{}).index=a.indexOf(e),t.slide=e,t},o=function(e,t){s[e]=(s[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(s[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){a[e]&&(n&&l(\"deactivate\",i(n,t)),n=a[e],l(\"activate\",i(n,t)))},d=function(e,t){var r=a.indexOf(n)+e;l(e>0?\"next\":\"prev\",i(n,t))&&c(r,t)},u={off:o,on:function(e,t){return(s[e]||(s[e]=[])).push(t),o.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return a.indexOf(n);l(\"slide\",i(a[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:a,destroy:function(e){l(\"destroy\",i(n,e)),s={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u};function t(e){e.parent.classList.add(\"bespoke-marp-parent\"),e.slides.forEach((e=>e.classList.add(\"bespoke-marp-slide\"))),e.on(\"activate\",(t=>{const n=t.slide,r=!n.classList.contains(\"bespoke-marp-active\");e.slides.forEach((e=>{e.classList.remove(\"bespoke-marp-active\"),e.setAttribute(\"aria-hidden\",\"true\")})),n.classList.add(\"bespoke-marp-active\"),n.removeAttribute(\"aria-hidden\"),r&&(n.classList.add(\"bespoke-marp-active-ready\"),document.body.clientHeight,n.classList.remove(\"bespoke-marp-active-ready\"))}))}function n(e){let t=0,n=0;Object.defineProperty(e,\"fragments\",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll(\"[data-marpit-fragment]\")]))});const r=r=>void 0!==e.fragments[t][n+r],a=(r,a)=>{t=r,n=a,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const s=t<r||t===r&&n<=a;e.setAttribute(\"data-bespoke-marp-fragment\",s?\"active\":\"inactive\"),t===r&&n===a?e.setAttribute(\"data-bespoke-marp-current-fragment\",\"current\"):e.removeAttribute(\"data-bespoke-marp-current-fragment\")}))})),e.fragmentIndex=a;const s={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:a};e.fire(\"fragment\",s)};e.on(\"next\",(({fragment:s=!0})=>{if(s){if(r(1))return a(t,n+1),!1;const s=t+1;e.fragments[s]&&a(s,0)}else{const r=e.fragments[t].length;if(n+1<r)return a(t,r-1),!1;const s=e.fragments[t+1];s&&a(t+1,s.length-1)}})),e.on(\"prev\",(({fragment:s=!0})=>{if(r(-1)&&s)return a(t,n-1),!1;const i=t-1;e.fragments[i]&&a(i,e.fragments[i].length-1)})),e.on(\"slide\",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const a=e.fragments[t];if(a){const{length:e}=a;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}a(t,r)})),a(0,0)}var r,a={exports:{}};r=a,function(){var e=\"undefined\"!=typeof window&&void 0!==window.document?window.document:{},t=r.exports,n=function(){for(var t,n=[[\"requestFullscreen\",\"exitFullscreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fullscreenchange\",\"fullscreenerror\"],[\"webkitRequestFullscreen\",\"webkitExitFullscreen\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"webkitRequestFullScreen\",\"webkitCancelFullScreen\",\"webkitCurrentFullScreenElement\",\"webkitCancelFullScreen\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"mozRequestFullScreen\",\"mozCancelFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozfullscreenchange\",\"mozfullscreenerror\"],[\"msRequestFullscreen\",\"msExitFullscreen\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"MSFullscreenChange\",\"MSFullscreenError\"]],r=0,a=n.length,s={};r<a;r++)if((t=n[r])&&t[1]in e){for(r=0;r<t.length;r++)s[n[0][r]]=t[r];return s}return!1}(),a={change:n.fullscreenchange,error:n.fullscreenerror},s={request:function(t,r){return new Promise(function(a,s){var i=function(){this.off(\"change\",i),a()}.bind(this);this.on(\"change\",i);var o=(t=t||e.documentElement)[n.requestFullscreen](r);o instanceof Promise&&o.then(i).catch(s)}.bind(this))},exit:function(){return new Promise(function(t,r){if(this.isFullscreen){var a=function(){this.off(\"change\",a),t()}.bind(this);this.on(\"change\",a);var s=e[n.exitFullscreen]();s instanceof Promise&&s.then(a).catch(r)}else t()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on(\"change\",e)},onerror:function(e){this.on(\"error\",e)},on:function(t,n){var r=a[t];r&&e.addEventListener(r,n,!1)},off:function(t,n){var r=a[t];r&&e.removeEventListener(r,n,!1)},raw:n};n?(Object.defineProperties(s,{isFullscreen:{get:function(){return Boolean(e[n.fullscreenElement])}},element:{enumerable:!0,get:function(){return e[n.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(e[n.fullscreenEnabled])}}}),t?r.exports=s:window.screenfull=s):t?r.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}();var s=a.exports;function i(e){e.fullscreen=()=>{s.isEnabled&&s.toggle(document.body)},document.addEventListener(\"keydown\",(t=>{\"f\"!==t.key&&\"F11\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!s.isEnabled||(e.fullscreen(),t.preventDefault())}))}function o(e=2e3){return t=>{let n;function r(){n&&clearTimeout(n),n=setTimeout((()=>{t.parent.classList.add(\"bespoke-marp-inactive\"),t.fire(\"marp-inactive\")}),e),t.parent.classList.contains(\"bespoke-marp-inactive\")&&(t.parent.classList.remove(\"bespoke-marp-inactive\"),t.fire(\"marp-active\"))}document.addEventListener(\"mousedown\",r),document.addEventListener(\"mousemove\",r),document.addEventListener(\"touchend\",r),setTimeout(r,0)}}const l=[\"AUDIO\",\"BUTTON\",\"INPUT\",\"SELECT\",\"TEXTAREA\",\"VIDEO\"];function c(e){e.parent.addEventListener(\"keydown\",(e=>{if(!e.target)return;const t=e.target;(l.includes(t.nodeName)||\"true\"===t.contentEditable)&&e.stopPropagation()}))}function d(e){window.addEventListener(\"load\",(()=>{for(const t of e.slides){const e=t.querySelector(\"[data-marp-fitting]\")?\"\":\"hideable\";t.setAttribute(\"data-bespoke-marp-load\",e)}}))}var u;function f({interval:e=250}={}){return t=>{document.addEventListener(\"keydown\",(e=>{if(\" \"===e.key&&e.shiftKey)t.prev();else if(\"ArrowLeft\"===e.key||\"ArrowUp\"===e.key||\"PageUp\"===e.key)t.prev({fragment:!e.shiftKey});else if(\" \"!==e.key||e.shiftKey)if(\"ArrowRight\"===e.key||\"ArrowDown\"===e.key||\"PageDown\"===e.key)t.next({fragment:!e.shiftKey});else if(\"End\"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if(\"Home\"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()}));let n,r,a=0;t.parent.addEventListener(\"wheel\",(s=>{let i=!1;const o=(e,t)=>{e&&(i=i||function(e,t){return function(e,t){const n=t===u.X?\"Width\":\"Height\";return e[`client${n}`]<e[`scroll${n}`]}(e,t)&&function(e,t){const{overflow:n}=e,r=e[`overflow${t}`];return\"auto\"===n||\"scroll\"===n||\"auto\"===r||\"scroll\"===r}(getComputedStyle(e),t)}(e,t)),(null==e?void 0:e.parentElement)&&o(e.parentElement,t)};if(0!==s.deltaX&&o(s.target,u.X),0!==s.deltaY&&o(s.target,u.Y),i)return;s.preventDefault();const l=Math.sqrt(Math.pow(s.deltaX,2)+Math.pow(s.deltaY,2));if(void 0!==s.wheelDelta){if(void 0===s.webkitForce&&Math.abs(s.wheelDelta)<40)return;if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<4)return}else if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<12)return;r&&clearTimeout(r),r=setTimeout((()=>{n=0}),e);const c=Date.now()-a<e,d=l<=n;if(n=l,c||d)return;let f;(s.deltaX>0||s.deltaY>0)&&(f=\"next\"),(s.deltaX<0||s.deltaY<0)&&(f=\"prev\"),f&&(t[f](),a=Date.now())}))}}!function(e){e.X=\"X\",e.Y=\"Y\"}(u||(u={}));const p=(...e)=>history.replaceState(...e),m=\"data-bespoke-view\",g=\"presenter\",h=\"next\",v=[\"\",g,h],b=(e,{protocol:t,host:n,pathname:r,hash:a}=location)=>{const s=e.toString();return`${t}//${n}${r}${s?\"?\":\"\"}${s}${a}`},w=()=>{const e=document.body.getAttribute(m);if(v.includes(e))return e;throw new Error(\"View mode is not assigned.\")},y=e=>new URLSearchParams(location.search).get(e),k=(e,t={})=>{var n;const r=Object.assign({location:location,setter:p},t),a=new URLSearchParams(r.location.search);for(const t of Object.keys(e)){const n=e[t];\"string\"==typeof n?a.set(t,n):a.delete(t)}try{r.setter(Object.assign({},null!==(n=window.history.state)&&void 0!==n?n:{}),\"\",b(a,r.location))}catch(e){console.error(e)}},E={available:(()=>{try{return localStorage.setItem(\"bespoke-marp\",\"bespoke-marp\"),localStorage.removeItem(\"bespoke-marp\"),!0}catch(e){return console.warn(\"Warning: Using localStorage is restricted in the current host so some features may not work.\"),!1}})(),get:e=>{try{return localStorage.getItem(e)}catch(e){return null}},set:(e,t)=>{try{return localStorage.setItem(e,t),!0}catch(e){return!1}},remove:e=>{try{return localStorage.removeItem(e),!0}catch(e){return!1}}};function x(e=\".bespoke-marp-osc\"){const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[data-bespoke-marp-osc=${JSON.stringify(e)}]`).forEach(n)};return s.isEnabled||n(\"fullscreen\",(e=>e.style.display=\"none\")),E.available||n(\"presenter\",(e=>{e.disabled=!0,e.title=\"Presenter view is disabled due to restricted localStorage.\"})),e=>{t.addEventListener(\"click\",(t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;switch(n&&t.target.blur(),n){case\"next\":e.next({fragment:!t.shiftKey});break;case\"prev\":e.prev({fragment:!t.shiftKey});break;case\"fullscreen\":\"function\"==typeof e.fullscreen&&s.isEnabled&&e.fullscreen();break;case\"presenter\":e.openPresenterView()}}})),e.parent.appendChild(t),e.on(\"activate\",(({index:t})=>{n(\"page\",(n=>n.textContent=`Page ${t+1} of ${e.slides.length}`))})),e.on(\"fragment\",(({index:t,fragments:r,fragmentIndex:a})=>{n(\"prev\",(e=>e.disabled=0===t&&0===a)),n(\"next\",(n=>n.disabled=t===e.slides.length-1&&a===r.length-1))})),e.on(\"marp-active\",(()=>t.removeAttribute(\"aria-hidden\"))),e.on(\"marp-inactive\",(()=>t.setAttribute(\"aria-hidden\",\"true\"))),s.isEnabled&&s.onchange((()=>n(\"fullscreen\",(e=>e.classList.toggle(\"exit\",s.isEnabled&&s.isFullscreen)))))}}function L(e){window.addEventListener(\"message\",(t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(\":\");if(\"navigate\"===n){const[t,n]=r.split(\",\");let a=Number.parseInt(t,10),s=Number.parseInt(n,10)+1;s>=e.fragments[a].length&&(a+=1,s=0),e.slide(a,{fragment:s})}}))}function S(e){if(!(e=>e.syncKey&&\"string\"==typeof e.syncKey)(e))throw new Error(\"The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.\");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:M},presenterUrl:{enumerable:!0,get:I}}),E.available&&document.addEventListener(\"keydown\",(t=>{\"p\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())}))}function M(){const e=Math.max(Math.floor(.85*window.innerWidth),640),t=Math.max(Math.floor(.85*window.innerHeight),360);return window.open(this.presenterUrl,`bespoke-marp-presenter-${this.syncKey}`,`width=${e},height=${t},menubar=no,toolbar=no`)}function I(){const e=new URLSearchParams(location.search);return e.set(\"view\",\"presenter\"),e.set(\"sync\",this.syncKey),b(e)}var P=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];let O=e=>String(e).replace(/[&<>\"']/g,(e=>`&${F[e]};`)),F={\"&\":\"amp\",\"<\":\"lt\",\">\":\"gt\",'\"':\"quot\",\"'\":\"apos\"},$=\"dangerouslySetInnerHTML\",A={className:\"class\",htmlFor:\"for\"},T={};function q(e,t){let n=[],r=\"\";t=t||{};for(let e=arguments.length;e-- >2;)n.push(arguments[e]);if(\"function\"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+=\"<\"+e,t)for(let e in t)!1!==t[e]&&null!=t[e]&&e!==$&&(r+=` ${A[e]?A[e]:O(e)}=\"${O(t[e])}\"`);r+=\">\"}if(-1===P.indexOf(e)){if(t[$])r+=t[$].__html;else for(;n.length;){let e=n.pop();if(e)if(e.pop)for(let t=e.length;t--;)n.push(e[t]);else r+=!0===T[e]?e:O(e)}r+=e?`</${e}>`:\"\"}return T[r]=!0,r}const K=({children:e})=>q(null,null,...e),N=\"bespoke-marp-presenter-container\",C=\"bespoke-marp-presenter-next\",D=\"bespoke-marp-presenter-next-container\",j=\"bespoke-marp-presenter-note-container\",X=\"bespoke-marp-presenter-info-container\",R=\"bespoke-marp-presenter-info-page\",U=\"bespoke-marp-presenter-info-page-text\",B=\"bespoke-marp-presenter-info-page-prev\",V=\"bespoke-marp-presenter-info-page-next\",Y=\"bespoke-marp-presenter-info-time\",H=\"bespoke-marp-presenter-info-timer\";function z(e){const{title:t}=document;document.title=\"[Presenter view]\"+(t?` - ${t}`:\"\");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement(\"div\");return t.className=N,t.appendChild(e),t.insertAdjacentHTML(\"beforeend\",q(K,null,q(\"div\",{class:D},q(\"iframe\",{class:C,src:\"?view=next\"})),q(\"div\",{class:j}),q(\"div\",{class:X},q(\"div\",{class:R},q(\"button\",{class:B,tabindex:\"-1\",title:\"Previous\"},\"Previous\"),q(\"span\",{class:U}),q(\"button\",{class:V,tabindex:\"-1\",title:\"Next\"},\"Next\")),q(\"time\",{class:Y,title:\"Current time\"}),q(\"div\",{class:H})))),t})(e.parent)),(e=>{r(D).addEventListener(\"click\",(()=>e.next()));const t=r(C),n=(a=t,(e,t)=>{var n;return null===(n=a.contentWindow)||void 0===n?void 0:n.postMessage(`navigate:${e},${t}`,\"null\"===window.origin?\"*\":window.origin)});var a;t.addEventListener(\"load\",(()=>{r(D).classList.add(\"active\"),n(e.slide(),e.fragmentIndex),e.on(\"fragment\",(({index:e,fragmentIndex:t})=>n(e,t)))}));const s=document.querySelectorAll(\".bespoke-marp-note\");s.forEach((e=>{e.addEventListener(\"keydown\",(e=>e.stopPropagation())),r(j).appendChild(e)})),e.on(\"activate\",(()=>s.forEach((t=>t.classList.toggle(\"active\",t.dataset.index==e.slide()))))),e.on(\"activate\",(({index:t})=>{r(U).textContent=`${t+1} / ${e.slides.length}`}));const i=r(B),o=r(V);i.addEventListener(\"click\",(t=>{i.blur(),e.prev({fragment:!t.shiftKey})})),o.addEventListener(\"click\",(t=>{o.blur(),e.next({fragment:!t.shiftKey})})),e.on(\"fragment\",(({index:t,fragments:n,fragmentIndex:r})=>{i.disabled=0===t&&0===r,o.disabled=t===e.slides.length-1&&r===n.length-1}));const l=()=>r(Y).textContent=(new Date).toLocaleTimeString();l(),setInterval(l,250)})(e)}function _(e){const t=w();return t===h&&e.appendChild(document.createElement(\"span\")),{\"\":S,[g]:z,[h]:L}[t]}function J(e){e.on(\"activate\",(t=>{document.querySelectorAll(\".bespoke-progress-parent > .bespoke-progress-bar\").forEach((n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+\"%\"}))}))}const W=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t};function G(e={}){const t=Object.assign({history:!0},e);return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},a=(t={fragment:!0})=>{((t,n)=>{const{fragments:r,slides:a}=e,s=Math.max(0,Math.min(t,a.length-1)),i=Math.max(0,Math.min(n||0,r[s].length-1));s===e.slide()&&i===e.fragmentIndex||e.slide(s,{fragment:i})})((W(location.hash.slice(1))||1)-1,t.fragment?W(y(\"f\")||\"\"):null)};e.on(\"fragment\",(({index:e,fragmentIndex:r})=>{n||k({f:0===r||r.toString()},{location:Object.assign(Object.assign({},location),{hash:`#${e+1}`}),setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})})),setTimeout((()=>{a(),window.addEventListener(\"hashchange\",(()=>r((()=>{a({fragment:!1}),k({f:void 0})})))),window.addEventListener(\"popstate\",(()=>{n||r((()=>a()))})),n=!1}),0)}}function Q(e={}){var t;const n=e.key||(null===(t=window.history.state)||void 0===t?void 0:t.marpBespokeSyncKey)||Math.random().toString(36).slice(2),r=`bespoke-marp-sync-${n}`;var a;a={marpBespokeSyncKey:n},k({},{setter:(e,...t)=>p(Object.assign(Object.assign({},e),a),...t)});const s=()=>{const e=E.get(r);return e?JSON.parse(e):Object.create(null)},i=e=>{const t=s(),n=Object.assign(Object.assign({},t),e(t));return E.set(r,JSON.stringify(n)),n},o=()=>{window.removeEventListener(\"pageshow\",o),i((e=>({reference:(e.reference||0)+1})))};return e=>{o(),Object.defineProperty(e,\"syncKey\",{value:n,enumerable:!0});let t=!0;setTimeout((()=>{e.on(\"fragment\",(e=>{t&&i((()=>({index:e.index,fragmentIndex:e.fragmentIndex})))}))}),0),window.addEventListener(\"storage\",(n=>{if(n.key===r&&n.oldValue&&n.newValue){const r=JSON.parse(n.oldValue),a=JSON.parse(n.newValue);if(r.index!==a.index||r.fragmentIndex!==a.fragmentIndex)try{t=!1,e.slide(a.index,{fragment:a.fragmentIndex})}finally{t=!0}}}));const a=()=>{const{reference:e}=s();void 0===e||e<=1?E.remove(r):i((()=>({reference:e-1})))};window.addEventListener(\"pagehide\",(e=>{e.persisted&&window.addEventListener(\"pageshow\",o),a()})),e.on(\"destroy\",a)}}function Z({slope:e=Math.tan(-35*Math.PI/180),swipeThreshold:t=30}={}){return n=>{let r;const a=n.parent,s=e=>{const t=a.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};a.addEventListener(\"touchstart\",(e=>{r=1===e.touches.length?s(e.touches[0]):void 0}),{passive:!0}),a.addEventListener(\"touchmove\",(e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=s(e.touches[0]),n=t.x-r.x,a=t.y-r.y;r.delta=Math.sqrt(Math.pow(Math.abs(n),2)+Math.pow(Math.abs(a),2)),r.radian=Math.atan2(n,a)}else r=void 0})),a.addEventListener(\"touchend\",(a=>{if(r){if(r.delta&&r.delta>=t&&r.radian){let t=r.radian-e;t=(t+Math.PI)%(2*Math.PI)-Math.PI,n[t<0?\"next\":\"prev\"](),a.stopPropagation()}r=void 0}}),{passive:!0})}}function ee(e,t,n,r){return new(n||(n=Promise))((function(a,s){function i(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,o)}l((r=r.apply(e,t||[])).next())}))}let te;const ne=()=>(void 0===te&&(te=\"wakeLock\"in navigator&&navigator.wakeLock),te),re=()=>ee(void 0,void 0,void 0,(function*(){const e=ne();if(e)try{return yield e.request(\"screen\")}catch(e){console.warn(e)}return null}));function ae(){return ee(this,void 0,void 0,(function*(){if(!ne())return;let e;const t=()=>{e&&\"visible\"===document.visibilityState&&re()};return document.addEventListener(\"visibilitychange\",t),document.addEventListener(\"fullscreenchange\",t),e=yield re(),e}))}!function(r=document.getElementById(\"p\")){document.body.setAttribute(m,(()=>{const e=y(\"view\");return e===h||e===g?e:\"\"})());const a=(e=>{const t=y(e);return k({[e]:void 0}),t})(\"sync\")||void 0,s=!1,l=!0;e(r,((...e)=>{const t=v.findIndex((e=>w()===e));if(t<0)throw new Error(\"Invalid view\");return e.map((([e,n])=>e[t]&&n)).filter((e=>e))})([[l,l,s],Q({key:a})],[[l,l,l],_(r)],[[l,l,s],c],[[l,l,l],t],[[l,s,s],o()],[[l,l,l],d],[[l,l,l],G({history:!1})],[[l,l,s],f()],[[l,l,s],i],[[l,s,s],J],[[l,l,s],Z()],[[l,s,s],x()],[[l,l,l],n],[[l,l,s],ae]))}()}();</script></body></html>"
  },
  {
    "path": "2021/8-15-Marp-ppt/demo-完成.md",
    "content": "---\nmarp: true\n---\n\n# <!-- fit --> 程序员的996，每天工作安排\n\n---\n<!-- fit -->\n<!--_backgroundColor: green -->\n# 上午\n- 9:00\n    - 上班打卡，企业微信\n    - 开早会\n- 9:15\n    - 敏捷开发管理系统\n    - 领取工作内容\n---\n- 9:30\n    - 开始工作\n    - 和产品经理沟通，battle 打嘴仗\n![](IMG_20210806_092900.jpg)\n---\n<!--_backgroundColor: green -->\n- 10:00\n    - 摸鱼时间\n    - 上厕所\n    - 刷微博\n- 11:00\n    - 摸鱼时间\n    - 上厕所\n    - 刷微博\n---\n<!--_backgroundColor: orange -->\n## 中午\n- 11:55\n    - 提前去食堂，避免排队\n    ![11](IMG_20210715_122251.jpg)\n---\n<!--_backgroundColor: pink -->\n- 12:30\n    - 吃完\n    - 回公司吹牛\n- 13:00-->14:00\n    - 叹空调，睡午觉\n---\n<!--_backgroundColor: red -->\n# 下午\n- 14:00\n    - 闹钟吵醒，洗脸上班\n- 16:00\n    - 非常困倦\n    - 摸鱼\n- 18:00\n    - 准点离开公司\n    - 吃饭\n    - 散步\n---\n<!--_backgroundColor: pink -->\n# 晚上\n- 19:00\n    - 加班\n- 20:45\n    - 敏捷开发管理系统\n        - 提交工作进度\n- 21:00\n    - 下班打卡，企业微信\n    - 准点离开公司"
  },
  {
    "path": "2021/8-15-Marp-ppt/demo-完成2.html",
    "content": "<!DOCTYPE html><html lang=\"zh-CN\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,height=device-height,initial-scale=1.0\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"><meta property=\"og:type\" content=\"website\"><meta name=\"twitter:card\" content=\"summary\"><style>@media screen{body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover{opacity:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active{opacity:.6}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTQwIDcwSDIwVjUwbTIwIDBMMjAgNzBtNDAtNDBoMjB2MjBtLTIwIDAgMjAtMjAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTIwIDUwaDIwdjIwbS0yMCAwIDIwLTIwbTQwIDBINjBWMzBtMjAgMEw2MCA1MCIvPjwvc3ZnPg==\")}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDo1cHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yMCA2MGgtNWE1IDUgMCAwIDEtNS01VjIwYTUgNSAwIDAgMSA1LTVoNjBhNSA1IDAgMCAxIDUgNXY1TTMwIDg1aDYwIi8+PHJlY3QgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiLz48cmVjdCBjbGFzcz0iYSIgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1Ii8+PHBhdGggY2xhc3M9ImEiIGQ9Ik00MCA1MGg0ME00MCA2MGgzMCIvPjwvc3ZnPg==\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{-webkit-animation-name:__bespoke_marp__!important;animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=\"\"] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{bottom:0;left:0;position:absolute;right:0;top:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=\"\"] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=\"\"] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:transparent}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template-areas:\"current next\" \"current note\" \"info    note\";grid-template-columns:2fr 1fr;grid-template-rows:minmax(140px,1fr) 2fr 3em;height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:transparent;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{word-wrap:break-word;box-sizing:border-box;font-size:1.1em;height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;scrollbar-color:hsla(0,0%,93%,.5) transparent;scrollbar-width:thin;white-space:pre-wrap;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:transparent}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:hsla(0,0%,93%,.5);border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>div#p>svg>foreignObject>section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center}div#p>svg>foreignObject>section:after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#p>svg>foreignObject>section:not([data-marpit-pagination]):after{display:none}/* Normalization */div#p>svg>foreignObject>section h1{font-size:2em;margin:0.67em 0}div#p>svg>foreignObject>section video::-webkit-media-controls{will-change:transform}@page{size:1280px 720px;margin:0}@media print{body,html{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#p>svg>foreignObject>section{page-break-before:always;break-before:page}div#p>svg>foreignObject>section,div#p>svg>foreignObject>section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;transition:none!important}div#p>svg[data-marpit-svg]{display:block;height:100vh;width:100vw}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{display:block;height:auto;width:100%}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{position:static}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{content:\"\"}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{position:relative}}div#p>svg>foreignObject>section [data-marp-fitting-svg-content]{display:table;white-space:nowrap;width:-webkit-max-content;width:-moz-max-content;width:max-content}div#p>svg>foreignObject>section [data-marp-fitting-svg-content-wrap]{white-space:pre}div#p>svg>foreignObject>section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}\n/*!\n * Marp default theme.\n *\n * @theme default\n * @author Yuki Hattori\n *\n * @auto-scaling true\n * @size 4:3 960px 720px\n */div#p>svg>foreignObject>section .octicon{fill:currentColor;display:inline-block;vertical-align:text-bottom}div#p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#p>svg>foreignObject>section .anchor:focus{outline:none}div#p>svg>foreignObject>section h1 .octicon-link,div#p>svg>foreignObject>section h2 .octicon-link,div#p>svg>foreignObject>section h3 .octicon-link,div#p>svg>foreignObject>section h4 .octicon-link,div#p>svg>foreignObject>section h5 .octicon-link,div#p>svg>foreignObject>section h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}div#p>svg>foreignObject>section h1:hover .anchor,div#p>svg>foreignObject>section h2:hover .anchor,div#p>svg>foreignObject>section h3:hover .anchor,div#p>svg>foreignObject>section h4:hover .anchor,div#p>svg>foreignObject>section h5:hover .anchor,div#p>svg>foreignObject>section h6:hover .anchor{text-decoration:none}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link{visibility:visible}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link:before{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'/%3E%3C/svg%3E\");content:\" \";display:inline-block;height:16px;width:16px}div#p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5}div#p>svg>foreignObject>section{--marpit-root-font-size:16px}div#p>svg>foreignObject>section details{display:block}div#p>svg>foreignObject>section summary{display:list-item}div#p>svg>foreignObject>section a{background-color:initial}div#p>svg>foreignObject>section a:active,div#p>svg>foreignObject>section a:hover{outline-width:0}div#p>svg>foreignObject>section strong{font-weight:inherit;font-weight:bolder}div#p>svg>foreignObject>section h1{margin:.67em 0}div#p>svg>foreignObject>section img{border-style:none}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section kbd,div#p>svg>foreignObject>section pre{font-family:monospace,monospace;font-size:1em}div#p>svg>foreignObject>section hr{box-sizing:initial;overflow:visible}div#p>svg>foreignObject>section input{font:inherit;margin:0;overflow:visible}div#p>svg>foreignObject>section [type=checkbox]{padding:0}div#p>svg>foreignObject>section *,div#p>svg>foreignObject>section [type=checkbox]{box-sizing:border-box}div#p>svg>foreignObject>section input{font-family:inherit;font-size:inherit;line-height:inherit}div#p>svg>foreignObject>section a{color:#0366d6;text-decoration:none}div#p>svg>foreignObject>section a:hover{text-decoration:underline}div#p>svg>foreignObject>section strong{font-weight:600}div#p>svg>foreignObject>section hr{background:transparent;border-bottom:1px solid #dfe2e5;height:0;margin:15px 0;overflow:hidden}div#p>svg>foreignObject>section hr:after,div#p>svg>foreignObject>section hr:before{content:\"\";display:table}div#p>svg>foreignObject>section hr:after{clear:both}div#p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0}div#p>svg>foreignObject>section td,div#p>svg>foreignObject>section th{padding:0}div#p>svg>foreignObject>section details summary{cursor:pointer}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section h1{font-size:32px}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{font-weight:600}div#p>svg>foreignObject>section h2{font-size:24px}div#p>svg>foreignObject>section h3{font-size:20px}div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4{font-weight:600}div#p>svg>foreignObject>section h4{font-size:16px}div#p>svg>foreignObject>section h5{font-size:14px}div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600}div#p>svg>foreignObject>section h6{font-size:12px}div#p>svg>foreignObject>section p{margin-bottom:10px;margin-top:0}div#p>svg>foreignObject>section blockquote{margin:0}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{margin-bottom:0;margin-top:0;padding-left:0}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#p>svg>foreignObject>section ol ol ol,div#p>svg>foreignObject>section ol ul ol,div#p>svg>foreignObject>section ul ol ol,div#p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#p>svg>foreignObject>section dd{margin-left:0}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}div#p>svg>foreignObject>section pre{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section input::-webkit-inner-spin-button,div#p>svg>foreignObject>section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#p>svg>foreignObject>section :checked+.radio-label{border-color:#0366d6;position:relative;z-index:1}div#p>svg>foreignObject>section .border{border:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .border-0{border:0!important}div#p>svg>foreignObject>section .border-bottom{border-bottom:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .rounded-1{border-radius:3px!important}div#p>svg>foreignObject>section .bg-white{background-color:#fff!important}div#p>svg>foreignObject>section .bg-gray-light{background-color:#fafbfc!important}div#p>svg>foreignObject>section .text-gray-light{color:#6a737d!important}div#p>svg>foreignObject>section .pl-3,div#p>svg>foreignObject>section .px-3{padding-left:16px!important}div#p>svg>foreignObject>section .px-3{padding-right:16px!important}div#p>svg>foreignObject>section .f6{font-size:12px!important}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.f6{--marpit-root-font-size:12px!important}div#p>svg>foreignObject>section .lh-condensed{line-height:1.25!important}div#p>svg>foreignObject>section .text-bold{font-weight:600!important}div#p>svg>foreignObject>section .pl-c{color:#6a737d}div#p>svg>foreignObject>section .pl-c1,div#p>svg>foreignObject>section .pl-s .pl-v{color:#005cc5}div#p>svg>foreignObject>section .pl-e,div#p>svg>foreignObject>section .pl-en{color:#6f42c1}div#p>svg>foreignObject>section .pl-s .pl-s1,div#p>svg>foreignObject>section .pl-smi{color:#24292e}div#p>svg>foreignObject>section .pl-ent{color:#22863a}div#p>svg>foreignObject>section .pl-k{color:#d73a49}div#p>svg>foreignObject>section .pl-pds,div#p>svg>foreignObject>section .pl-s,div#p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#p>svg>foreignObject>section .pl-sr,div#p>svg>foreignObject>section .pl-sr .pl-cce,div#p>svg>foreignObject>section .pl-sr .pl-sra,div#p>svg>foreignObject>section .pl-sr .pl-sre{color:#032f62}div#p>svg>foreignObject>section .pl-smw,div#p>svg>foreignObject>section .pl-v{color:#e36209}div#p>svg>foreignObject>section .pl-bu{color:#b31d28}div#p>svg>foreignObject>section .pl-ii{background-color:#b31d28;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2{background-color:#d73a49;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2:before{content:\"^M\"}div#p>svg>foreignObject>section .pl-sr .pl-cce{color:#22863a;font-weight:700}div#p>svg>foreignObject>section .pl-ml{color:#735c0f}div#p>svg>foreignObject>section .pl-mh,div#p>svg>foreignObject>section .pl-mh .pl-en,div#p>svg>foreignObject>section .pl-ms{color:#005cc5;font-weight:700}div#p>svg>foreignObject>section .pl-mi{color:#24292e;font-style:italic}div#p>svg>foreignObject>section .pl-mb{color:#24292e;font-weight:700}div#p>svg>foreignObject>section .pl-md{background-color:#ffeef0;color:#b31d28}div#p>svg>foreignObject>section .pl-mi1{background-color:#f0fff4;color:#22863a}div#p>svg>foreignObject>section .pl-mc{background-color:#ffebda;color:#e36209}div#p>svg>foreignObject>section .pl-mi2{background-color:#005cc5;color:#f6f8fa}div#p>svg>foreignObject>section .pl-mdr{color:#6f42c1;font-weight:700}div#p>svg>foreignObject>section .pl-ba{color:#586069}div#p>svg>foreignObject>section .pl-sg{color:#959da5}div#p>svg>foreignObject>section .pl-corl{color:#032f62;text-decoration:underline}div#p>svg>foreignObject>section .mb-0{margin-bottom:0!important}div#p>svg>foreignObject>section .my-2{margin-bottom:8px!important;margin-top:8px!important}div#p>svg>foreignObject>section .pl-0{padding-left:0!important}div#p>svg>foreignObject>section .py-0{padding-bottom:0!important;padding-top:0!important}div#p>svg>foreignObject>section .pl-1{padding-left:4px!important}div#p>svg>foreignObject>section .pl-2{padding-left:8px!important}div#p>svg>foreignObject>section .py-2{padding-bottom:8px!important;padding-top:8px!important}div#p>svg>foreignObject>section .pl-3{padding-left:16px!important}div#p>svg>foreignObject>section .pl-4{padding-left:24px!important}div#p>svg>foreignObject>section .pl-5{padding-left:32px!important}div#p>svg>foreignObject>section .pl-6{padding-left:40px!important}div#p>svg>foreignObject>section .pl-7{padding-left:48px!important}div#p>svg>foreignObject>section .pl-8{padding-left:64px!important}div#p>svg>foreignObject>section .pl-9{padding-left:80px!important}div#p>svg>foreignObject>section .pl-10{padding-left:96px!important}div#p>svg>foreignObject>section .pl-11{padding-left:112px!important}div#p>svg>foreignObject>section .pl-12{padding-left:128px!important}div#p>svg>foreignObject>section hr{border-bottom-color:#eee}div#p>svg>foreignObject>section kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da;color:#444d56;display:inline-block;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}div#p>svg>foreignObject>section:after,div#p>svg>foreignObject>section:before{\n  /* content:\"\"; */display:table}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-bottom:16px;margin-top:0}div#p>svg>foreignObject>section hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}div#p>svg>foreignObject>section blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}div#p>svg>foreignObject>section h1{font-size:2em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}div#p>svg>foreignObject>section h2{font-size:1.5em}div#p>svg>foreignObject>section h3{font-size:1.25em}div#p>svg>foreignObject>section h4{font-size:1em}div#p>svg>foreignObject>section h5{font-size:.875em}div#p>svg>foreignObject>section h6{color:#6a737d;font-size:.85em}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section li{word-wrap:break-all}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}div#p>svg>foreignObject>section dl dd{margin-bottom:16px;padding:0 16px}div#p>svg>foreignObject>section table{display:block;overflow:auto;width:100%}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{border:1px solid #dfe2e5;padding:6px 13px}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #c6cbd1}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section img{background-color:#fff;box-sizing:initial;max-width:100%}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section code{background-color:rgba(27,31,35,.05);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}div#p>svg>foreignObject>section pre{word-wrap:normal}div#p>svg>foreignObject>section pre>code{background:transparent;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}div#p>svg>foreignObject>section pre code{word-wrap:normal;background-color:initial;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}div#p>svg>foreignObject>section .commit-tease-sha{color:#444d56;display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:90%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.commit-tease-sha{--marpit-root-font-size:90%}div#p>svg>foreignObject>section .full-commit .btn-outline:not(:disabled):hover{border-color:#005cc5;color:#005cc5}div#p>svg>foreignObject>section .blob-wrapper{overflow-x:auto;overflow-y:hidden}div#p>svg>foreignObject>section .blob-wrapper-embedded{max-height:240px;overflow-y:auto}div#p>svg>foreignObject>section .blob-num{color:rgba(27,31,35,.3);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px;min-width:50px;padding-left:10px;padding-right:10px;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;width:1%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-num{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .blob-num:hover{color:rgba(27,31,35,.6)}div#p>svg>foreignObject>section .blob-num:before{content:attr(data-line-number)}div#p>svg>foreignObject>section .blob-code{line-height:20px;padding-left:10px;padding-right:10px;position:relative;vertical-align:top}div#p>svg>foreignObject>section .blob-code-inner{word-wrap:normal;color:#24292e;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;overflow:visible;white-space:pre}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-code-inner{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .pl-token.active,div#p>svg>foreignObject>section .pl-token:hover{background:#ffea7f;cursor:pointer}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"1\"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"2\"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"3\"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"4\"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"5\"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"6\"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"7\"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"8\"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"9\"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"10\"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"11\"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"12\"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .hljs{background:#fff;color:#333;display:block;overflow-x:auto;padding:.5em}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{background-color:#eaffea;color:#55a532}div#p>svg>foreignObject>section .hljs-deletion{background-color:#ffecec;color:#bd2c00}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{color:#48c;font-weight:inherit}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{color:hsla(0,0%,40%,.75);font-size:18px;left:30px;margin:0;position:absolute}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-direction:column;flex-wrap:nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{bottom:21px;color:#777;font-size:24px;padding:0;position:absolute;right:30px}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentColor}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class=\"bespoke-marp-osc\"><button data-bespoke-marp-osc=\"prev\" tabindex=\"-1\" title=\"Previous slide\">Previous slide</button><span data-bespoke-marp-osc=\"page\"></span><button data-bespoke-marp-osc=\"next\" tabindex=\"-1\" title=\"Next slide\">Next slide</button><button data-bespoke-marp-osc=\"fullscreen\" tabindex=\"-1\" title=\"Toggle fullscreen (f)\">Toggle fullscreen</button><button data-bespoke-marp-osc=\"presenter\" tabindex=\"-1\" title=\"Open presenter view (p)\">Open presenter view</button></div><div id=\"p\"><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"1\">\n<h1>程序员的996，每天工作安排</h1>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"2\">\n<h2>上午</h2>\n<ul>\n<li>\n<p>9:00</p>\n<ul>\n<li>上班打卡，企业微信</li>\n<li>开早会</li>\n</ul>\n</li>\n<li>\n<p>9:15</p>\n<ul>\n<li>敏捷开发管理系统</li>\n<li>领取工作内容</li>\n</ul>\n</li>\n<li>\n<p>9:30</p>\n<ul>\n<li>开始工作</li>\n<li>和产品经理沟通，battle 打嘴仗</li>\n</ul>\n</li>\n<li>\n<p>10:00</p>\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n<li>\n<p>11:00</p>\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"3\">\n<h2>中午</h2>\n<ul>\n<li>11:55\n<ul>\n<li>提前去食堂，避免排队</li>\n</ul>\n</li>\n<li>12:30\n<ul>\n<li>吃完</li>\n<li>回公司吹牛</li>\n</ul>\n</li>\n<li>13:00--&gt;14:00\n<ul>\n<li>叹空调，睡午觉</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"4\">\n<h2>下午</h2>\n<ul>\n<li>14:00\n<ul>\n<li>闹钟吵醒，洗脸上班</li>\n</ul>\n</li>\n<li>16:00\n<ul>\n<li>非常困倦</li>\n<li>摸鱼</li>\n</ul>\n</li>\n<li>18:00\n<ul>\n<li>准点离开公司</li>\n<li>吃饭</li>\n<li>散步</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"5\">\n<h2>晚上</h2>\n<ul>\n<li>19:00\n<ul>\n<li>加班</li>\n</ul>\n</li>\n<li>20:45\n<ul>\n<li>敏捷开发管理系统\n<ul>\n<li>提交工作进度</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>21:00\n<ul>\n<li>下班打卡，企业微信</li>\n<li>准点离开公司</li>\n</ul>\n</li>\n</ul>\n</section>\n<script>!function(){\"use strict\";const t=\"marpitSVGPolyfill:setZoomFactor,\",e=Symbol();let r,o;function n(n){const i=\"object\"==typeof n&&n.target||document,a=\"object\"==typeof n?n.zoom:n;window[e]||(Object.defineProperty(window,e,{configurable:!0,value:!0}),window.addEventListener(\"message\",(({data:e,origin:r})=>{if(r===window.origin)try{if(e&&\"string\"==typeof e&&e.startsWith(t)){const[,t]=e.split(\",\"),r=Number.parseFloat(t);Number.isNaN(r)||(o=r)}}catch(t){console.error(t)}})));let l=!1;Array.from(i.querySelectorAll(\"svg[data-marpit-svg]\"),(t=>{var e,n,i,s;t.style.transform||(t.style.transform=\"translateZ(0)\");const c=a||o||t.currentScale||1;r!==c&&(r=c,l=c);const d=t.getBoundingClientRect(),{length:u}=t.children;for(let r=0;r<u;r+=1){const o=t.children[r],a=o.getScreenCTM();if(a){const t=null!==(n=null===(e=o.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==n?n:0,r=null!==(s=null===(i=o.y)||void 0===i?void 0:i.baseVal.value)&&void 0!==s?s:0,l=o.firstElementChild,{style:u}=l;u.transformOrigin||(u.transformOrigin=`${-t}px ${-r}px`),u.transform=`scale(${c}) matrix(${a.a}, ${a.b}, ${a.c}, ${a.d}, ${a.e-d.left}, ${a.f-d.top}) translateZ(0.0001px)`}}})),!1!==l&&Array.from(i.querySelectorAll(\"iframe\"),(({contentWindow:e})=>{null==e||e.postMessage(`${t}${l}`,\"null\"===window.origin?\"*\":window.origin)}))}r=1,o=void 0;const i=(t,e,r)=>{if(t.getAttribute(e)!==r)return t.setAttribute(e,r),!0};function a({once:t=!1,target:e=document}={}){const r=\"Apple Computer, Inc.\"===navigator.vendor?[n]:[];let o=!t;const a=()=>{for(const t of r)t({target:e});!function(t=document){Array.from(t.querySelectorAll('svg[data-marp-fitting=\"svg\"]'),(t=>{var e;const r=t.firstChild,o=r.firstChild,{scrollWidth:n,scrollHeight:a}=o;let l,s=1;if(t.hasAttribute(\"data-marp-fitting-code\")&&(l=null===(e=t.parentElement)||void 0===e?void 0:e.parentElement),t.hasAttribute(\"data-marp-fitting-math\")&&(l=t.parentElement),l){const t=getComputedStyle(l),e=Math.ceil(l.clientWidth-parseFloat(t.paddingLeft||\"0\")-parseFloat(t.paddingRight||\"0\"));e&&(s=e)}const c=Math.max(n,s),d=Math.max(a,1),u=`0 0 ${c} ${d}`;i(r,\"width\",`${c}`),i(r,\"height\",`${d}`),i(t,\"preserveAspectRatio\",getComputedStyle(t).getPropertyValue(\"--preserve-aspect-ratio\")||\"xMinYMin meet\"),i(t,\"viewBox\",u)&&t.classList.toggle(\"__reflow__\")}))}(e),o&&window.requestAnimationFrame(a)};return a(),()=>{o=!1}}const l=Symbol(),s=document.currentScript;((t=document)=>{if(\"undefined\"==typeof window)throw new Error(\"Marp Core's browser script is valid only in browser context.\");if(t[l])return t[l];const e=a({target:t}),r=()=>{e(),delete t[l]};Object.defineProperty(t,l,{configurable:!0,value:r})})(s?s.getRootNode():document)}();\n</script></foreignObject></svg></div><div class=\"bespoke-marp-note\" data-index=\"0\" tabindex=\"0\"><p>$backgroundColor: orange</p></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@1.2.0/lib/bespoke.js.LICENSE.txt */\n!function(){\"use strict\";var e=function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),a=[].filter.call(\"string\"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return\"SCRIPT\"!==e.nodeName})),s={},i=function(e,t){return(t=t||{}).index=a.indexOf(e),t.slide=e,t},o=function(e,t){s[e]=(s[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(s[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){a[e]&&(n&&l(\"deactivate\",i(n,t)),n=a[e],l(\"activate\",i(n,t)))},d=function(e,t){var r=a.indexOf(n)+e;l(e>0?\"next\":\"prev\",i(n,t))&&c(r,t)},u={off:o,on:function(e,t){return(s[e]||(s[e]=[])).push(t),o.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return a.indexOf(n);l(\"slide\",i(a[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:a,destroy:function(e){l(\"destroy\",i(n,e)),s={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u};function t(e){e.parent.classList.add(\"bespoke-marp-parent\"),e.slides.forEach((e=>e.classList.add(\"bespoke-marp-slide\"))),e.on(\"activate\",(t=>{const n=t.slide,r=!n.classList.contains(\"bespoke-marp-active\");e.slides.forEach((e=>{e.classList.remove(\"bespoke-marp-active\"),e.setAttribute(\"aria-hidden\",\"true\")})),n.classList.add(\"bespoke-marp-active\"),n.removeAttribute(\"aria-hidden\"),r&&(n.classList.add(\"bespoke-marp-active-ready\"),document.body.clientHeight,n.classList.remove(\"bespoke-marp-active-ready\"))}))}function n(e){let t=0,n=0;Object.defineProperty(e,\"fragments\",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll(\"[data-marpit-fragment]\")]))});const r=r=>void 0!==e.fragments[t][n+r],a=(r,a)=>{t=r,n=a,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const s=t<r||t===r&&n<=a;e.setAttribute(\"data-bespoke-marp-fragment\",s?\"active\":\"inactive\"),t===r&&n===a?e.setAttribute(\"data-bespoke-marp-current-fragment\",\"current\"):e.removeAttribute(\"data-bespoke-marp-current-fragment\")}))})),e.fragmentIndex=a;const s={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:a};e.fire(\"fragment\",s)};e.on(\"next\",(({fragment:s=!0})=>{if(s){if(r(1))return a(t,n+1),!1;const s=t+1;e.fragments[s]&&a(s,0)}else{const r=e.fragments[t].length;if(n+1<r)return a(t,r-1),!1;const s=e.fragments[t+1];s&&a(t+1,s.length-1)}})),e.on(\"prev\",(({fragment:s=!0})=>{if(r(-1)&&s)return a(t,n-1),!1;const i=t-1;e.fragments[i]&&a(i,e.fragments[i].length-1)})),e.on(\"slide\",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const a=e.fragments[t];if(a){const{length:e}=a;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}a(t,r)})),a(0,0)}var r,a={exports:{}};r=a,function(){var e=\"undefined\"!=typeof window&&void 0!==window.document?window.document:{},t=r.exports,n=function(){for(var t,n=[[\"requestFullscreen\",\"exitFullscreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fullscreenchange\",\"fullscreenerror\"],[\"webkitRequestFullscreen\",\"webkitExitFullscreen\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"webkitRequestFullScreen\",\"webkitCancelFullScreen\",\"webkitCurrentFullScreenElement\",\"webkitCancelFullScreen\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"mozRequestFullScreen\",\"mozCancelFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozfullscreenchange\",\"mozfullscreenerror\"],[\"msRequestFullscreen\",\"msExitFullscreen\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"MSFullscreenChange\",\"MSFullscreenError\"]],r=0,a=n.length,s={};r<a;r++)if((t=n[r])&&t[1]in e){for(r=0;r<t.length;r++)s[n[0][r]]=t[r];return s}return!1}(),a={change:n.fullscreenchange,error:n.fullscreenerror},s={request:function(t,r){return new Promise(function(a,s){var i=function(){this.off(\"change\",i),a()}.bind(this);this.on(\"change\",i);var o=(t=t||e.documentElement)[n.requestFullscreen](r);o instanceof Promise&&o.then(i).catch(s)}.bind(this))},exit:function(){return new Promise(function(t,r){if(this.isFullscreen){var a=function(){this.off(\"change\",a),t()}.bind(this);this.on(\"change\",a);var s=e[n.exitFullscreen]();s instanceof Promise&&s.then(a).catch(r)}else t()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on(\"change\",e)},onerror:function(e){this.on(\"error\",e)},on:function(t,n){var r=a[t];r&&e.addEventListener(r,n,!1)},off:function(t,n){var r=a[t];r&&e.removeEventListener(r,n,!1)},raw:n};n?(Object.defineProperties(s,{isFullscreen:{get:function(){return Boolean(e[n.fullscreenElement])}},element:{enumerable:!0,get:function(){return e[n.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(e[n.fullscreenEnabled])}}}),t?r.exports=s:window.screenfull=s):t?r.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}();var s=a.exports;function i(e){e.fullscreen=()=>{s.isEnabled&&s.toggle(document.body)},document.addEventListener(\"keydown\",(t=>{\"f\"!==t.key&&\"F11\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!s.isEnabled||(e.fullscreen(),t.preventDefault())}))}function o(e=2e3){return t=>{let n;function r(){n&&clearTimeout(n),n=setTimeout((()=>{t.parent.classList.add(\"bespoke-marp-inactive\"),t.fire(\"marp-inactive\")}),e),t.parent.classList.contains(\"bespoke-marp-inactive\")&&(t.parent.classList.remove(\"bespoke-marp-inactive\"),t.fire(\"marp-active\"))}document.addEventListener(\"mousedown\",r),document.addEventListener(\"mousemove\",r),document.addEventListener(\"touchend\",r),setTimeout(r,0)}}const l=[\"AUDIO\",\"BUTTON\",\"INPUT\",\"SELECT\",\"TEXTAREA\",\"VIDEO\"];function c(e){e.parent.addEventListener(\"keydown\",(e=>{if(!e.target)return;const t=e.target;(l.includes(t.nodeName)||\"true\"===t.contentEditable)&&e.stopPropagation()}))}function d(e){window.addEventListener(\"load\",(()=>{for(const t of e.slides){const e=t.querySelector(\"[data-marp-fitting]\")?\"\":\"hideable\";t.setAttribute(\"data-bespoke-marp-load\",e)}}))}var u;function f({interval:e=250}={}){return t=>{document.addEventListener(\"keydown\",(e=>{if(\" \"===e.key&&e.shiftKey)t.prev();else if(\"ArrowLeft\"===e.key||\"ArrowUp\"===e.key||\"PageUp\"===e.key)t.prev({fragment:!e.shiftKey});else if(\" \"!==e.key||e.shiftKey)if(\"ArrowRight\"===e.key||\"ArrowDown\"===e.key||\"PageDown\"===e.key)t.next({fragment:!e.shiftKey});else if(\"End\"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if(\"Home\"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()}));let n,r,a=0;t.parent.addEventListener(\"wheel\",(s=>{let i=!1;const o=(e,t)=>{e&&(i=i||function(e,t){return function(e,t){const n=t===u.X?\"Width\":\"Height\";return e[`client${n}`]<e[`scroll${n}`]}(e,t)&&function(e,t){const{overflow:n}=e,r=e[`overflow${t}`];return\"auto\"===n||\"scroll\"===n||\"auto\"===r||\"scroll\"===r}(getComputedStyle(e),t)}(e,t)),(null==e?void 0:e.parentElement)&&o(e.parentElement,t)};if(0!==s.deltaX&&o(s.target,u.X),0!==s.deltaY&&o(s.target,u.Y),i)return;s.preventDefault();const l=Math.sqrt(Math.pow(s.deltaX,2)+Math.pow(s.deltaY,2));if(void 0!==s.wheelDelta){if(void 0===s.webkitForce&&Math.abs(s.wheelDelta)<40)return;if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<4)return}else if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<12)return;r&&clearTimeout(r),r=setTimeout((()=>{n=0}),e);const c=Date.now()-a<e,d=l<=n;if(n=l,c||d)return;let f;(s.deltaX>0||s.deltaY>0)&&(f=\"next\"),(s.deltaX<0||s.deltaY<0)&&(f=\"prev\"),f&&(t[f](),a=Date.now())}))}}!function(e){e.X=\"X\",e.Y=\"Y\"}(u||(u={}));const p=(...e)=>history.replaceState(...e),m=\"data-bespoke-view\",g=\"presenter\",h=\"next\",v=[\"\",g,h],b=(e,{protocol:t,host:n,pathname:r,hash:a}=location)=>{const s=e.toString();return`${t}//${n}${r}${s?\"?\":\"\"}${s}${a}`},w=()=>{const e=document.body.getAttribute(m);if(v.includes(e))return e;throw new Error(\"View mode is not assigned.\")},y=e=>new URLSearchParams(location.search).get(e),k=(e,t={})=>{var n;const r=Object.assign({location:location,setter:p},t),a=new URLSearchParams(r.location.search);for(const t of Object.keys(e)){const n=e[t];\"string\"==typeof n?a.set(t,n):a.delete(t)}try{r.setter(Object.assign({},null!==(n=window.history.state)&&void 0!==n?n:{}),\"\",b(a,r.location))}catch(e){console.error(e)}},E={available:(()=>{try{return localStorage.setItem(\"bespoke-marp\",\"bespoke-marp\"),localStorage.removeItem(\"bespoke-marp\"),!0}catch(e){return console.warn(\"Warning: Using localStorage is restricted in the current host so some features may not work.\"),!1}})(),get:e=>{try{return localStorage.getItem(e)}catch(e){return null}},set:(e,t)=>{try{return localStorage.setItem(e,t),!0}catch(e){return!1}},remove:e=>{try{return localStorage.removeItem(e),!0}catch(e){return!1}}};function x(e=\".bespoke-marp-osc\"){const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[data-bespoke-marp-osc=${JSON.stringify(e)}]`).forEach(n)};return s.isEnabled||n(\"fullscreen\",(e=>e.style.display=\"none\")),E.available||n(\"presenter\",(e=>{e.disabled=!0,e.title=\"Presenter view is disabled due to restricted localStorage.\"})),e=>{t.addEventListener(\"click\",(t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;switch(n&&t.target.blur(),n){case\"next\":e.next({fragment:!t.shiftKey});break;case\"prev\":e.prev({fragment:!t.shiftKey});break;case\"fullscreen\":\"function\"==typeof e.fullscreen&&s.isEnabled&&e.fullscreen();break;case\"presenter\":e.openPresenterView()}}})),e.parent.appendChild(t),e.on(\"activate\",(({index:t})=>{n(\"page\",(n=>n.textContent=`Page ${t+1} of ${e.slides.length}`))})),e.on(\"fragment\",(({index:t,fragments:r,fragmentIndex:a})=>{n(\"prev\",(e=>e.disabled=0===t&&0===a)),n(\"next\",(n=>n.disabled=t===e.slides.length-1&&a===r.length-1))})),e.on(\"marp-active\",(()=>t.removeAttribute(\"aria-hidden\"))),e.on(\"marp-inactive\",(()=>t.setAttribute(\"aria-hidden\",\"true\"))),s.isEnabled&&s.onchange((()=>n(\"fullscreen\",(e=>e.classList.toggle(\"exit\",s.isEnabled&&s.isFullscreen)))))}}function L(e){window.addEventListener(\"message\",(t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(\":\");if(\"navigate\"===n){const[t,n]=r.split(\",\");let a=Number.parseInt(t,10),s=Number.parseInt(n,10)+1;s>=e.fragments[a].length&&(a+=1,s=0),e.slide(a,{fragment:s})}}))}function S(e){if(!(e=>e.syncKey&&\"string\"==typeof e.syncKey)(e))throw new Error(\"The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.\");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:M},presenterUrl:{enumerable:!0,get:I}}),E.available&&document.addEventListener(\"keydown\",(t=>{\"p\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())}))}function M(){const e=Math.max(Math.floor(.85*window.innerWidth),640),t=Math.max(Math.floor(.85*window.innerHeight),360);return window.open(this.presenterUrl,`bespoke-marp-presenter-${this.syncKey}`,`width=${e},height=${t},menubar=no,toolbar=no`)}function I(){const e=new URLSearchParams(location.search);return e.set(\"view\",\"presenter\"),e.set(\"sync\",this.syncKey),b(e)}var P=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];let O=e=>String(e).replace(/[&<>\"']/g,(e=>`&${F[e]};`)),F={\"&\":\"amp\",\"<\":\"lt\",\">\":\"gt\",'\"':\"quot\",\"'\":\"apos\"},$=\"dangerouslySetInnerHTML\",A={className:\"class\",htmlFor:\"for\"},T={};function q(e,t){let n=[],r=\"\";t=t||{};for(let e=arguments.length;e-- >2;)n.push(arguments[e]);if(\"function\"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+=\"<\"+e,t)for(let e in t)!1!==t[e]&&null!=t[e]&&e!==$&&(r+=` ${A[e]?A[e]:O(e)}=\"${O(t[e])}\"`);r+=\">\"}if(-1===P.indexOf(e)){if(t[$])r+=t[$].__html;else for(;n.length;){let e=n.pop();if(e)if(e.pop)for(let t=e.length;t--;)n.push(e[t]);else r+=!0===T[e]?e:O(e)}r+=e?`</${e}>`:\"\"}return T[r]=!0,r}const K=({children:e})=>q(null,null,...e),N=\"bespoke-marp-presenter-container\",C=\"bespoke-marp-presenter-next\",D=\"bespoke-marp-presenter-next-container\",j=\"bespoke-marp-presenter-note-container\",X=\"bespoke-marp-presenter-info-container\",R=\"bespoke-marp-presenter-info-page\",U=\"bespoke-marp-presenter-info-page-text\",B=\"bespoke-marp-presenter-info-page-prev\",V=\"bespoke-marp-presenter-info-page-next\",Y=\"bespoke-marp-presenter-info-time\",H=\"bespoke-marp-presenter-info-timer\";function z(e){const{title:t}=document;document.title=\"[Presenter view]\"+(t?` - ${t}`:\"\");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement(\"div\");return t.className=N,t.appendChild(e),t.insertAdjacentHTML(\"beforeend\",q(K,null,q(\"div\",{class:D},q(\"iframe\",{class:C,src:\"?view=next\"})),q(\"div\",{class:j}),q(\"div\",{class:X},q(\"div\",{class:R},q(\"button\",{class:B,tabindex:\"-1\",title:\"Previous\"},\"Previous\"),q(\"span\",{class:U}),q(\"button\",{class:V,tabindex:\"-1\",title:\"Next\"},\"Next\")),q(\"time\",{class:Y,title:\"Current time\"}),q(\"div\",{class:H})))),t})(e.parent)),(e=>{r(D).addEventListener(\"click\",(()=>e.next()));const t=r(C),n=(a=t,(e,t)=>{var n;return null===(n=a.contentWindow)||void 0===n?void 0:n.postMessage(`navigate:${e},${t}`,\"null\"===window.origin?\"*\":window.origin)});var a;t.addEventListener(\"load\",(()=>{r(D).classList.add(\"active\"),n(e.slide(),e.fragmentIndex),e.on(\"fragment\",(({index:e,fragmentIndex:t})=>n(e,t)))}));const s=document.querySelectorAll(\".bespoke-marp-note\");s.forEach((e=>{e.addEventListener(\"keydown\",(e=>e.stopPropagation())),r(j).appendChild(e)})),e.on(\"activate\",(()=>s.forEach((t=>t.classList.toggle(\"active\",t.dataset.index==e.slide()))))),e.on(\"activate\",(({index:t})=>{r(U).textContent=`${t+1} / ${e.slides.length}`}));const i=r(B),o=r(V);i.addEventListener(\"click\",(t=>{i.blur(),e.prev({fragment:!t.shiftKey})})),o.addEventListener(\"click\",(t=>{o.blur(),e.next({fragment:!t.shiftKey})})),e.on(\"fragment\",(({index:t,fragments:n,fragmentIndex:r})=>{i.disabled=0===t&&0===r,o.disabled=t===e.slides.length-1&&r===n.length-1}));const l=()=>r(Y).textContent=(new Date).toLocaleTimeString();l(),setInterval(l,250)})(e)}function _(e){const t=w();return t===h&&e.appendChild(document.createElement(\"span\")),{\"\":S,[g]:z,[h]:L}[t]}function J(e){e.on(\"activate\",(t=>{document.querySelectorAll(\".bespoke-progress-parent > .bespoke-progress-bar\").forEach((n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+\"%\"}))}))}const W=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t};function G(e={}){const t=Object.assign({history:!0},e);return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},a=(t={fragment:!0})=>{((t,n)=>{const{fragments:r,slides:a}=e,s=Math.max(0,Math.min(t,a.length-1)),i=Math.max(0,Math.min(n||0,r[s].length-1));s===e.slide()&&i===e.fragmentIndex||e.slide(s,{fragment:i})})((W(location.hash.slice(1))||1)-1,t.fragment?W(y(\"f\")||\"\"):null)};e.on(\"fragment\",(({index:e,fragmentIndex:r})=>{n||k({f:0===r||r.toString()},{location:Object.assign(Object.assign({},location),{hash:`#${e+1}`}),setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})})),setTimeout((()=>{a(),window.addEventListener(\"hashchange\",(()=>r((()=>{a({fragment:!1}),k({f:void 0})})))),window.addEventListener(\"popstate\",(()=>{n||r((()=>a()))})),n=!1}),0)}}function Q(e={}){var t;const n=e.key||(null===(t=window.history.state)||void 0===t?void 0:t.marpBespokeSyncKey)||Math.random().toString(36).slice(2),r=`bespoke-marp-sync-${n}`;var a;a={marpBespokeSyncKey:n},k({},{setter:(e,...t)=>p(Object.assign(Object.assign({},e),a),...t)});const s=()=>{const e=E.get(r);return e?JSON.parse(e):Object.create(null)},i=e=>{const t=s(),n=Object.assign(Object.assign({},t),e(t));return E.set(r,JSON.stringify(n)),n},o=()=>{window.removeEventListener(\"pageshow\",o),i((e=>({reference:(e.reference||0)+1})))};return e=>{o(),Object.defineProperty(e,\"syncKey\",{value:n,enumerable:!0});let t=!0;setTimeout((()=>{e.on(\"fragment\",(e=>{t&&i((()=>({index:e.index,fragmentIndex:e.fragmentIndex})))}))}),0),window.addEventListener(\"storage\",(n=>{if(n.key===r&&n.oldValue&&n.newValue){const r=JSON.parse(n.oldValue),a=JSON.parse(n.newValue);if(r.index!==a.index||r.fragmentIndex!==a.fragmentIndex)try{t=!1,e.slide(a.index,{fragment:a.fragmentIndex})}finally{t=!0}}}));const a=()=>{const{reference:e}=s();void 0===e||e<=1?E.remove(r):i((()=>({reference:e-1})))};window.addEventListener(\"pagehide\",(e=>{e.persisted&&window.addEventListener(\"pageshow\",o),a()})),e.on(\"destroy\",a)}}function Z({slope:e=Math.tan(-35*Math.PI/180),swipeThreshold:t=30}={}){return n=>{let r;const a=n.parent,s=e=>{const t=a.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};a.addEventListener(\"touchstart\",(e=>{r=1===e.touches.length?s(e.touches[0]):void 0}),{passive:!0}),a.addEventListener(\"touchmove\",(e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=s(e.touches[0]),n=t.x-r.x,a=t.y-r.y;r.delta=Math.sqrt(Math.pow(Math.abs(n),2)+Math.pow(Math.abs(a),2)),r.radian=Math.atan2(n,a)}else r=void 0})),a.addEventListener(\"touchend\",(a=>{if(r){if(r.delta&&r.delta>=t&&r.radian){let t=r.radian-e;t=(t+Math.PI)%(2*Math.PI)-Math.PI,n[t<0?\"next\":\"prev\"](),a.stopPropagation()}r=void 0}}),{passive:!0})}}function ee(e,t,n,r){return new(n||(n=Promise))((function(a,s){function i(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,o)}l((r=r.apply(e,t||[])).next())}))}let te;const ne=()=>(void 0===te&&(te=\"wakeLock\"in navigator&&navigator.wakeLock),te),re=()=>ee(void 0,void 0,void 0,(function*(){const e=ne();if(e)try{return yield e.request(\"screen\")}catch(e){console.warn(e)}return null}));function ae(){return ee(this,void 0,void 0,(function*(){if(!ne())return;let e;const t=()=>{e&&\"visible\"===document.visibilityState&&re()};return document.addEventListener(\"visibilitychange\",t),document.addEventListener(\"fullscreenchange\",t),e=yield re(),e}))}!function(r=document.getElementById(\"p\")){document.body.setAttribute(m,(()=>{const e=y(\"view\");return e===h||e===g?e:\"\"})());const a=(e=>{const t=y(e);return k({[e]:void 0}),t})(\"sync\")||void 0,s=!1,l=!0;e(r,((...e)=>{const t=v.findIndex((e=>w()===e));if(t<0)throw new Error(\"Invalid view\");return e.map((([e,n])=>e[t]&&n)).filter((e=>e))})([[l,l,s],Q({key:a})],[[l,l,l],_(r)],[[l,l,s],c],[[l,l,l],t],[[l,s,s],o()],[[l,l,l],d],[[l,l,l],G({history:!1})],[[l,l,s],f()],[[l,l,s],i],[[l,s,s],J],[[l,l,s],Z()],[[l,s,s],x()],[[l,l,l],n],[[l,l,s],ae]))}()}();</script></body></html>"
  },
  {
    "path": "2021/8-15-Marp-ppt/demo-完成3.html",
    "content": "<!DOCTYPE html><html lang=\"zh-CN\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,height=device-height,initial-scale=1.0\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"><meta property=\"og:type\" content=\"website\"><meta name=\"twitter:card\" content=\"summary\"><style>@media screen{body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover{opacity:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active{opacity:.6}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTQwIDcwSDIwVjUwbTIwIDBMMjAgNzBtNDAtNDBoMjB2MjBtLTIwIDAgMjAtMjAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTIwIDUwaDIwdjIwbS0yMCAwIDIwLTIwbTQwIDBINjBWMzBtMjAgMEw2MCA1MCIvPjwvc3ZnPg==\")}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDo1cHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yMCA2MGgtNWE1IDUgMCAwIDEtNS01VjIwYTUgNSAwIDAgMSA1LTVoNjBhNSA1IDAgMCAxIDUgNXY1TTMwIDg1aDYwIi8+PHJlY3QgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiLz48cmVjdCBjbGFzcz0iYSIgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1Ii8+PHBhdGggY2xhc3M9ImEiIGQ9Ik00MCA1MGg0ME00MCA2MGgzMCIvPjwvc3ZnPg==\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{-webkit-animation-name:__bespoke_marp__!important;animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=\"\"] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{bottom:0;left:0;position:absolute;right:0;top:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=\"\"] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=\"\"] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:transparent}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template-areas:\"current next\" \"current note\" \"info    note\";grid-template-columns:2fr 1fr;grid-template-rows:minmax(140px,1fr) 2fr 3em;height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:transparent;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{word-wrap:break-word;box-sizing:border-box;font-size:1.1em;height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;scrollbar-color:hsla(0,0%,93%,.5) transparent;scrollbar-width:thin;white-space:pre-wrap;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:transparent}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:hsla(0,0%,93%,.5);border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>div#p>svg>foreignObject>section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center}div#p>svg>foreignObject>section:after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#p>svg>foreignObject>section:not([data-marpit-pagination]):after{display:none}/* Normalization */div#p>svg>foreignObject>section h1{font-size:2em;margin:0.67em 0}div#p>svg>foreignObject>section video::-webkit-media-controls{will-change:transform}@page{size:1280px 720px;margin:0}@media print{body,html{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#p>svg>foreignObject>section{page-break-before:always;break-before:page}div#p>svg>foreignObject>section,div#p>svg>foreignObject>section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;transition:none!important}div#p>svg[data-marpit-svg]{display:block;height:100vh;width:100vw}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{display:block;height:auto;width:100%}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{position:static}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{content:\"\"}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{position:relative}}div#p>svg>foreignObject>section [data-marp-fitting-svg-content]{display:table;white-space:nowrap;width:-webkit-max-content;width:-moz-max-content;width:max-content}div#p>svg>foreignObject>section [data-marp-fitting-svg-content-wrap]{white-space:pre}div#p>svg>foreignObject>section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}\n/*!\n * Marp default theme.\n *\n * @theme default\n * @author Yuki Hattori\n *\n * @auto-scaling true\n * @size 4:3 960px 720px\n */div#p>svg>foreignObject>section .octicon{fill:currentColor;display:inline-block;vertical-align:text-bottom}div#p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#p>svg>foreignObject>section .anchor:focus{outline:none}div#p>svg>foreignObject>section h1 .octicon-link,div#p>svg>foreignObject>section h2 .octicon-link,div#p>svg>foreignObject>section h3 .octicon-link,div#p>svg>foreignObject>section h4 .octicon-link,div#p>svg>foreignObject>section h5 .octicon-link,div#p>svg>foreignObject>section h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}div#p>svg>foreignObject>section h1:hover .anchor,div#p>svg>foreignObject>section h2:hover .anchor,div#p>svg>foreignObject>section h3:hover .anchor,div#p>svg>foreignObject>section h4:hover .anchor,div#p>svg>foreignObject>section h5:hover .anchor,div#p>svg>foreignObject>section h6:hover .anchor{text-decoration:none}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link{visibility:visible}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link:before{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'/%3E%3C/svg%3E\");content:\" \";display:inline-block;height:16px;width:16px}div#p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5}div#p>svg>foreignObject>section{--marpit-root-font-size:16px}div#p>svg>foreignObject>section details{display:block}div#p>svg>foreignObject>section summary{display:list-item}div#p>svg>foreignObject>section a{background-color:initial}div#p>svg>foreignObject>section a:active,div#p>svg>foreignObject>section a:hover{outline-width:0}div#p>svg>foreignObject>section strong{font-weight:inherit;font-weight:bolder}div#p>svg>foreignObject>section h1{margin:.67em 0}div#p>svg>foreignObject>section img{border-style:none}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section kbd,div#p>svg>foreignObject>section pre{font-family:monospace,monospace;font-size:1em}div#p>svg>foreignObject>section hr{box-sizing:initial;overflow:visible}div#p>svg>foreignObject>section input{font:inherit;margin:0;overflow:visible}div#p>svg>foreignObject>section [type=checkbox]{padding:0}div#p>svg>foreignObject>section *,div#p>svg>foreignObject>section [type=checkbox]{box-sizing:border-box}div#p>svg>foreignObject>section input{font-family:inherit;font-size:inherit;line-height:inherit}div#p>svg>foreignObject>section a{color:#0366d6;text-decoration:none}div#p>svg>foreignObject>section a:hover{text-decoration:underline}div#p>svg>foreignObject>section strong{font-weight:600}div#p>svg>foreignObject>section hr{background:transparent;border-bottom:1px solid #dfe2e5;height:0;margin:15px 0;overflow:hidden}div#p>svg>foreignObject>section hr:after,div#p>svg>foreignObject>section hr:before{content:\"\";display:table}div#p>svg>foreignObject>section hr:after{clear:both}div#p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0}div#p>svg>foreignObject>section td,div#p>svg>foreignObject>section th{padding:0}div#p>svg>foreignObject>section details summary{cursor:pointer}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section h1{font-size:32px}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{font-weight:600}div#p>svg>foreignObject>section h2{font-size:24px}div#p>svg>foreignObject>section h3{font-size:20px}div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4{font-weight:600}div#p>svg>foreignObject>section h4{font-size:16px}div#p>svg>foreignObject>section h5{font-size:14px}div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600}div#p>svg>foreignObject>section h6{font-size:12px}div#p>svg>foreignObject>section p{margin-bottom:10px;margin-top:0}div#p>svg>foreignObject>section blockquote{margin:0}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{margin-bottom:0;margin-top:0;padding-left:0}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#p>svg>foreignObject>section ol ol ol,div#p>svg>foreignObject>section ol ul ol,div#p>svg>foreignObject>section ul ol ol,div#p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#p>svg>foreignObject>section dd{margin-left:0}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}div#p>svg>foreignObject>section pre{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section input::-webkit-inner-spin-button,div#p>svg>foreignObject>section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#p>svg>foreignObject>section :checked+.radio-label{border-color:#0366d6;position:relative;z-index:1}div#p>svg>foreignObject>section .border{border:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .border-0{border:0!important}div#p>svg>foreignObject>section .border-bottom{border-bottom:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .rounded-1{border-radius:3px!important}div#p>svg>foreignObject>section .bg-white{background-color:#fff!important}div#p>svg>foreignObject>section .bg-gray-light{background-color:#fafbfc!important}div#p>svg>foreignObject>section .text-gray-light{color:#6a737d!important}div#p>svg>foreignObject>section .pl-3,div#p>svg>foreignObject>section .px-3{padding-left:16px!important}div#p>svg>foreignObject>section .px-3{padding-right:16px!important}div#p>svg>foreignObject>section .f6{font-size:12px!important}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.f6{--marpit-root-font-size:12px!important}div#p>svg>foreignObject>section .lh-condensed{line-height:1.25!important}div#p>svg>foreignObject>section .text-bold{font-weight:600!important}div#p>svg>foreignObject>section .pl-c{color:#6a737d}div#p>svg>foreignObject>section .pl-c1,div#p>svg>foreignObject>section .pl-s .pl-v{color:#005cc5}div#p>svg>foreignObject>section .pl-e,div#p>svg>foreignObject>section .pl-en{color:#6f42c1}div#p>svg>foreignObject>section .pl-s .pl-s1,div#p>svg>foreignObject>section .pl-smi{color:#24292e}div#p>svg>foreignObject>section .pl-ent{color:#22863a}div#p>svg>foreignObject>section .pl-k{color:#d73a49}div#p>svg>foreignObject>section .pl-pds,div#p>svg>foreignObject>section .pl-s,div#p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#p>svg>foreignObject>section .pl-sr,div#p>svg>foreignObject>section .pl-sr .pl-cce,div#p>svg>foreignObject>section .pl-sr .pl-sra,div#p>svg>foreignObject>section .pl-sr .pl-sre{color:#032f62}div#p>svg>foreignObject>section .pl-smw,div#p>svg>foreignObject>section .pl-v{color:#e36209}div#p>svg>foreignObject>section .pl-bu{color:#b31d28}div#p>svg>foreignObject>section .pl-ii{background-color:#b31d28;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2{background-color:#d73a49;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2:before{content:\"^M\"}div#p>svg>foreignObject>section .pl-sr .pl-cce{color:#22863a;font-weight:700}div#p>svg>foreignObject>section .pl-ml{color:#735c0f}div#p>svg>foreignObject>section .pl-mh,div#p>svg>foreignObject>section .pl-mh .pl-en,div#p>svg>foreignObject>section .pl-ms{color:#005cc5;font-weight:700}div#p>svg>foreignObject>section .pl-mi{color:#24292e;font-style:italic}div#p>svg>foreignObject>section .pl-mb{color:#24292e;font-weight:700}div#p>svg>foreignObject>section .pl-md{background-color:#ffeef0;color:#b31d28}div#p>svg>foreignObject>section .pl-mi1{background-color:#f0fff4;color:#22863a}div#p>svg>foreignObject>section .pl-mc{background-color:#ffebda;color:#e36209}div#p>svg>foreignObject>section .pl-mi2{background-color:#005cc5;color:#f6f8fa}div#p>svg>foreignObject>section .pl-mdr{color:#6f42c1;font-weight:700}div#p>svg>foreignObject>section .pl-ba{color:#586069}div#p>svg>foreignObject>section .pl-sg{color:#959da5}div#p>svg>foreignObject>section .pl-corl{color:#032f62;text-decoration:underline}div#p>svg>foreignObject>section .mb-0{margin-bottom:0!important}div#p>svg>foreignObject>section .my-2{margin-bottom:8px!important;margin-top:8px!important}div#p>svg>foreignObject>section .pl-0{padding-left:0!important}div#p>svg>foreignObject>section .py-0{padding-bottom:0!important;padding-top:0!important}div#p>svg>foreignObject>section .pl-1{padding-left:4px!important}div#p>svg>foreignObject>section .pl-2{padding-left:8px!important}div#p>svg>foreignObject>section .py-2{padding-bottom:8px!important;padding-top:8px!important}div#p>svg>foreignObject>section .pl-3{padding-left:16px!important}div#p>svg>foreignObject>section .pl-4{padding-left:24px!important}div#p>svg>foreignObject>section .pl-5{padding-left:32px!important}div#p>svg>foreignObject>section .pl-6{padding-left:40px!important}div#p>svg>foreignObject>section .pl-7{padding-left:48px!important}div#p>svg>foreignObject>section .pl-8{padding-left:64px!important}div#p>svg>foreignObject>section .pl-9{padding-left:80px!important}div#p>svg>foreignObject>section .pl-10{padding-left:96px!important}div#p>svg>foreignObject>section .pl-11{padding-left:112px!important}div#p>svg>foreignObject>section .pl-12{padding-left:128px!important}div#p>svg>foreignObject>section hr{border-bottom-color:#eee}div#p>svg>foreignObject>section kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da;color:#444d56;display:inline-block;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}div#p>svg>foreignObject>section:after,div#p>svg>foreignObject>section:before{\n  /* content:\"\"; */display:table}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-bottom:16px;margin-top:0}div#p>svg>foreignObject>section hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}div#p>svg>foreignObject>section blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}div#p>svg>foreignObject>section h1{font-size:2em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}div#p>svg>foreignObject>section h2{font-size:1.5em}div#p>svg>foreignObject>section h3{font-size:1.25em}div#p>svg>foreignObject>section h4{font-size:1em}div#p>svg>foreignObject>section h5{font-size:.875em}div#p>svg>foreignObject>section h6{color:#6a737d;font-size:.85em}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section li{word-wrap:break-all}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}div#p>svg>foreignObject>section dl dd{margin-bottom:16px;padding:0 16px}div#p>svg>foreignObject>section table{display:block;overflow:auto;width:100%}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{border:1px solid #dfe2e5;padding:6px 13px}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #c6cbd1}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section img{background-color:#fff;box-sizing:initial;max-width:100%}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section code{background-color:rgba(27,31,35,.05);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}div#p>svg>foreignObject>section pre{word-wrap:normal}div#p>svg>foreignObject>section pre>code{background:transparent;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}div#p>svg>foreignObject>section pre code{word-wrap:normal;background-color:initial;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}div#p>svg>foreignObject>section .commit-tease-sha{color:#444d56;display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:90%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.commit-tease-sha{--marpit-root-font-size:90%}div#p>svg>foreignObject>section .full-commit .btn-outline:not(:disabled):hover{border-color:#005cc5;color:#005cc5}div#p>svg>foreignObject>section .blob-wrapper{overflow-x:auto;overflow-y:hidden}div#p>svg>foreignObject>section .blob-wrapper-embedded{max-height:240px;overflow-y:auto}div#p>svg>foreignObject>section .blob-num{color:rgba(27,31,35,.3);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px;min-width:50px;padding-left:10px;padding-right:10px;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;width:1%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-num{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .blob-num:hover{color:rgba(27,31,35,.6)}div#p>svg>foreignObject>section .blob-num:before{content:attr(data-line-number)}div#p>svg>foreignObject>section .blob-code{line-height:20px;padding-left:10px;padding-right:10px;position:relative;vertical-align:top}div#p>svg>foreignObject>section .blob-code-inner{word-wrap:normal;color:#24292e;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;overflow:visible;white-space:pre}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-code-inner{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .pl-token.active,div#p>svg>foreignObject>section .pl-token:hover{background:#ffea7f;cursor:pointer}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"1\"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"2\"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"3\"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"4\"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"5\"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"6\"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"7\"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"8\"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"9\"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"10\"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"11\"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"12\"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .hljs{background:#fff;color:#333;display:block;overflow-x:auto;padding:.5em}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{background-color:#eaffea;color:#55a532}div#p>svg>foreignObject>section .hljs-deletion{background-color:#ffecec;color:#bd2c00}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{color:#48c;font-weight:inherit}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{color:hsla(0,0%,40%,.75);font-size:18px;left:30px;margin:0;position:absolute}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-direction:column;flex-wrap:nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{bottom:21px;color:#777;font-size:24px;padding:0;position:absolute;right:30px}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentColor}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class=\"bespoke-marp-osc\"><button data-bespoke-marp-osc=\"prev\" tabindex=\"-1\" title=\"Previous slide\">Previous slide</button><span data-bespoke-marp-osc=\"page\"></span><button data-bespoke-marp-osc=\"next\" tabindex=\"-1\" title=\"Next slide\">Next slide</button><button data-bespoke-marp-osc=\"fullscreen\" tabindex=\"-1\" title=\"Toggle fullscreen (f)\">Toggle fullscreen</button><button data-bespoke-marp-osc=\"presenter\" tabindex=\"-1\" title=\"Open presenter view (p)\">Open presenter view</button></div><div id=\"p\"><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"1\">\n<h1>程序员的996，每天工作安排</h1>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"2\" data-background-color=\"green\" style=\"--background-color:green;background-color:green;background-image:none;\">\n<h2>上午</h2>\n<ul>\n<li>\n<p>9:00</p>\n<ul>\n<li>上班打卡，企业微信</li>\n<li>开早会</li>\n</ul>\n</li>\n<li>\n<p>9:15</p>\n<ul>\n<li>敏捷开发管理系统</li>\n<li>领取工作内容</li>\n</ul>\n</li>\n<li>\n<p>9:30</p>\n<ul>\n<li>开始工作</li>\n<li>和产品经理沟通，battle 打嘴仗</li>\n</ul>\n</li>\n<li>\n<p>10:00</p>\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n<li>\n<p>11:00</p>\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"3\" data-background-color=\"orange\" style=\"--background-color:orange;background-color:orange;background-image:none;\">\n<h2>中午</h2>\n<ul>\n<li>11:55\n<ul>\n<li>提前去食堂，避免排队</li>\n</ul>\n</li>\n<li>12:30\n<ul>\n<li>吃完</li>\n<li>回公司吹牛</li>\n</ul>\n</li>\n<li>13:00--&gt;14:00\n<ul>\n<li>叹空调，睡午觉</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"4\" data-background-color=\"red\" style=\"--background-color:red;background-color:red;background-image:none;\">\n<h2>下午</h2>\n<ul>\n<li>14:00\n<ul>\n<li>闹钟吵醒，洗脸上班</li>\n</ul>\n</li>\n<li>16:00\n<ul>\n<li>非常困倦</li>\n<li>摸鱼</li>\n</ul>\n</li>\n<li>18:00\n<ul>\n<li>准点离开公司</li>\n<li>吃饭</li>\n<li>散步</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"5\" data-background-color=\"blue\" style=\"--background-color:blue;background-color:blue;background-image:none;\">\n<h2>晚上</h2>\n<ul>\n<li>19:00\n<ul>\n<li>加班</li>\n</ul>\n</li>\n<li>20:45\n<ul>\n<li>敏捷开发管理系统\n<ul>\n<li>提交工作进度</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>21:00\n<ul>\n<li>下班打卡，企业微信</li>\n<li>准点离开公司</li>\n</ul>\n</li>\n</ul>\n</section>\n<script>!function(){\"use strict\";const t=\"marpitSVGPolyfill:setZoomFactor,\",e=Symbol();let r,o;function n(n){const i=\"object\"==typeof n&&n.target||document,a=\"object\"==typeof n?n.zoom:n;window[e]||(Object.defineProperty(window,e,{configurable:!0,value:!0}),window.addEventListener(\"message\",(({data:e,origin:r})=>{if(r===window.origin)try{if(e&&\"string\"==typeof e&&e.startsWith(t)){const[,t]=e.split(\",\"),r=Number.parseFloat(t);Number.isNaN(r)||(o=r)}}catch(t){console.error(t)}})));let l=!1;Array.from(i.querySelectorAll(\"svg[data-marpit-svg]\"),(t=>{var e,n,i,s;t.style.transform||(t.style.transform=\"translateZ(0)\");const c=a||o||t.currentScale||1;r!==c&&(r=c,l=c);const d=t.getBoundingClientRect(),{length:u}=t.children;for(let r=0;r<u;r+=1){const o=t.children[r],a=o.getScreenCTM();if(a){const t=null!==(n=null===(e=o.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==n?n:0,r=null!==(s=null===(i=o.y)||void 0===i?void 0:i.baseVal.value)&&void 0!==s?s:0,l=o.firstElementChild,{style:u}=l;u.transformOrigin||(u.transformOrigin=`${-t}px ${-r}px`),u.transform=`scale(${c}) matrix(${a.a}, ${a.b}, ${a.c}, ${a.d}, ${a.e-d.left}, ${a.f-d.top}) translateZ(0.0001px)`}}})),!1!==l&&Array.from(i.querySelectorAll(\"iframe\"),(({contentWindow:e})=>{null==e||e.postMessage(`${t}${l}`,\"null\"===window.origin?\"*\":window.origin)}))}r=1,o=void 0;const i=(t,e,r)=>{if(t.getAttribute(e)!==r)return t.setAttribute(e,r),!0};function a({once:t=!1,target:e=document}={}){const r=\"Apple Computer, Inc.\"===navigator.vendor?[n]:[];let o=!t;const a=()=>{for(const t of r)t({target:e});!function(t=document){Array.from(t.querySelectorAll('svg[data-marp-fitting=\"svg\"]'),(t=>{var e;const r=t.firstChild,o=r.firstChild,{scrollWidth:n,scrollHeight:a}=o;let l,s=1;if(t.hasAttribute(\"data-marp-fitting-code\")&&(l=null===(e=t.parentElement)||void 0===e?void 0:e.parentElement),t.hasAttribute(\"data-marp-fitting-math\")&&(l=t.parentElement),l){const t=getComputedStyle(l),e=Math.ceil(l.clientWidth-parseFloat(t.paddingLeft||\"0\")-parseFloat(t.paddingRight||\"0\"));e&&(s=e)}const c=Math.max(n,s),d=Math.max(a,1),u=`0 0 ${c} ${d}`;i(r,\"width\",`${c}`),i(r,\"height\",`${d}`),i(t,\"preserveAspectRatio\",getComputedStyle(t).getPropertyValue(\"--preserve-aspect-ratio\")||\"xMinYMin meet\"),i(t,\"viewBox\",u)&&t.classList.toggle(\"__reflow__\")}))}(e),o&&window.requestAnimationFrame(a)};return a(),()=>{o=!1}}const l=Symbol(),s=document.currentScript;((t=document)=>{if(\"undefined\"==typeof window)throw new Error(\"Marp Core's browser script is valid only in browser context.\");if(t[l])return t[l];const e=a({target:t}),r=()=>{e(),delete t[l]};Object.defineProperty(t,l,{configurable:!0,value:r})})(s?s.getRootNode():document)}();\n</script></foreignObject></svg></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@1.2.0/lib/bespoke.js.LICENSE.txt */\n!function(){\"use strict\";var e=function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),a=[].filter.call(\"string\"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return\"SCRIPT\"!==e.nodeName})),s={},i=function(e,t){return(t=t||{}).index=a.indexOf(e),t.slide=e,t},o=function(e,t){s[e]=(s[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(s[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){a[e]&&(n&&l(\"deactivate\",i(n,t)),n=a[e],l(\"activate\",i(n,t)))},d=function(e,t){var r=a.indexOf(n)+e;l(e>0?\"next\":\"prev\",i(n,t))&&c(r,t)},u={off:o,on:function(e,t){return(s[e]||(s[e]=[])).push(t),o.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return a.indexOf(n);l(\"slide\",i(a[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:a,destroy:function(e){l(\"destroy\",i(n,e)),s={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u};function t(e){e.parent.classList.add(\"bespoke-marp-parent\"),e.slides.forEach((e=>e.classList.add(\"bespoke-marp-slide\"))),e.on(\"activate\",(t=>{const n=t.slide,r=!n.classList.contains(\"bespoke-marp-active\");e.slides.forEach((e=>{e.classList.remove(\"bespoke-marp-active\"),e.setAttribute(\"aria-hidden\",\"true\")})),n.classList.add(\"bespoke-marp-active\"),n.removeAttribute(\"aria-hidden\"),r&&(n.classList.add(\"bespoke-marp-active-ready\"),document.body.clientHeight,n.classList.remove(\"bespoke-marp-active-ready\"))}))}function n(e){let t=0,n=0;Object.defineProperty(e,\"fragments\",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll(\"[data-marpit-fragment]\")]))});const r=r=>void 0!==e.fragments[t][n+r],a=(r,a)=>{t=r,n=a,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const s=t<r||t===r&&n<=a;e.setAttribute(\"data-bespoke-marp-fragment\",s?\"active\":\"inactive\"),t===r&&n===a?e.setAttribute(\"data-bespoke-marp-current-fragment\",\"current\"):e.removeAttribute(\"data-bespoke-marp-current-fragment\")}))})),e.fragmentIndex=a;const s={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:a};e.fire(\"fragment\",s)};e.on(\"next\",(({fragment:s=!0})=>{if(s){if(r(1))return a(t,n+1),!1;const s=t+1;e.fragments[s]&&a(s,0)}else{const r=e.fragments[t].length;if(n+1<r)return a(t,r-1),!1;const s=e.fragments[t+1];s&&a(t+1,s.length-1)}})),e.on(\"prev\",(({fragment:s=!0})=>{if(r(-1)&&s)return a(t,n-1),!1;const i=t-1;e.fragments[i]&&a(i,e.fragments[i].length-1)})),e.on(\"slide\",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const a=e.fragments[t];if(a){const{length:e}=a;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}a(t,r)})),a(0,0)}var r,a={exports:{}};r=a,function(){var e=\"undefined\"!=typeof window&&void 0!==window.document?window.document:{},t=r.exports,n=function(){for(var t,n=[[\"requestFullscreen\",\"exitFullscreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fullscreenchange\",\"fullscreenerror\"],[\"webkitRequestFullscreen\",\"webkitExitFullscreen\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"webkitRequestFullScreen\",\"webkitCancelFullScreen\",\"webkitCurrentFullScreenElement\",\"webkitCancelFullScreen\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"mozRequestFullScreen\",\"mozCancelFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozfullscreenchange\",\"mozfullscreenerror\"],[\"msRequestFullscreen\",\"msExitFullscreen\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"MSFullscreenChange\",\"MSFullscreenError\"]],r=0,a=n.length,s={};r<a;r++)if((t=n[r])&&t[1]in e){for(r=0;r<t.length;r++)s[n[0][r]]=t[r];return s}return!1}(),a={change:n.fullscreenchange,error:n.fullscreenerror},s={request:function(t,r){return new Promise(function(a,s){var i=function(){this.off(\"change\",i),a()}.bind(this);this.on(\"change\",i);var o=(t=t||e.documentElement)[n.requestFullscreen](r);o instanceof Promise&&o.then(i).catch(s)}.bind(this))},exit:function(){return new Promise(function(t,r){if(this.isFullscreen){var a=function(){this.off(\"change\",a),t()}.bind(this);this.on(\"change\",a);var s=e[n.exitFullscreen]();s instanceof Promise&&s.then(a).catch(r)}else t()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on(\"change\",e)},onerror:function(e){this.on(\"error\",e)},on:function(t,n){var r=a[t];r&&e.addEventListener(r,n,!1)},off:function(t,n){var r=a[t];r&&e.removeEventListener(r,n,!1)},raw:n};n?(Object.defineProperties(s,{isFullscreen:{get:function(){return Boolean(e[n.fullscreenElement])}},element:{enumerable:!0,get:function(){return e[n.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(e[n.fullscreenEnabled])}}}),t?r.exports=s:window.screenfull=s):t?r.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}();var s=a.exports;function i(e){e.fullscreen=()=>{s.isEnabled&&s.toggle(document.body)},document.addEventListener(\"keydown\",(t=>{\"f\"!==t.key&&\"F11\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!s.isEnabled||(e.fullscreen(),t.preventDefault())}))}function o(e=2e3){return t=>{let n;function r(){n&&clearTimeout(n),n=setTimeout((()=>{t.parent.classList.add(\"bespoke-marp-inactive\"),t.fire(\"marp-inactive\")}),e),t.parent.classList.contains(\"bespoke-marp-inactive\")&&(t.parent.classList.remove(\"bespoke-marp-inactive\"),t.fire(\"marp-active\"))}document.addEventListener(\"mousedown\",r),document.addEventListener(\"mousemove\",r),document.addEventListener(\"touchend\",r),setTimeout(r,0)}}const l=[\"AUDIO\",\"BUTTON\",\"INPUT\",\"SELECT\",\"TEXTAREA\",\"VIDEO\"];function c(e){e.parent.addEventListener(\"keydown\",(e=>{if(!e.target)return;const t=e.target;(l.includes(t.nodeName)||\"true\"===t.contentEditable)&&e.stopPropagation()}))}function d(e){window.addEventListener(\"load\",(()=>{for(const t of e.slides){const e=t.querySelector(\"[data-marp-fitting]\")?\"\":\"hideable\";t.setAttribute(\"data-bespoke-marp-load\",e)}}))}var u;function f({interval:e=250}={}){return t=>{document.addEventListener(\"keydown\",(e=>{if(\" \"===e.key&&e.shiftKey)t.prev();else if(\"ArrowLeft\"===e.key||\"ArrowUp\"===e.key||\"PageUp\"===e.key)t.prev({fragment:!e.shiftKey});else if(\" \"!==e.key||e.shiftKey)if(\"ArrowRight\"===e.key||\"ArrowDown\"===e.key||\"PageDown\"===e.key)t.next({fragment:!e.shiftKey});else if(\"End\"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if(\"Home\"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()}));let n,r,a=0;t.parent.addEventListener(\"wheel\",(s=>{let i=!1;const o=(e,t)=>{e&&(i=i||function(e,t){return function(e,t){const n=t===u.X?\"Width\":\"Height\";return e[`client${n}`]<e[`scroll${n}`]}(e,t)&&function(e,t){const{overflow:n}=e,r=e[`overflow${t}`];return\"auto\"===n||\"scroll\"===n||\"auto\"===r||\"scroll\"===r}(getComputedStyle(e),t)}(e,t)),(null==e?void 0:e.parentElement)&&o(e.parentElement,t)};if(0!==s.deltaX&&o(s.target,u.X),0!==s.deltaY&&o(s.target,u.Y),i)return;s.preventDefault();const l=Math.sqrt(Math.pow(s.deltaX,2)+Math.pow(s.deltaY,2));if(void 0!==s.wheelDelta){if(void 0===s.webkitForce&&Math.abs(s.wheelDelta)<40)return;if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<4)return}else if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<12)return;r&&clearTimeout(r),r=setTimeout((()=>{n=0}),e);const c=Date.now()-a<e,d=l<=n;if(n=l,c||d)return;let f;(s.deltaX>0||s.deltaY>0)&&(f=\"next\"),(s.deltaX<0||s.deltaY<0)&&(f=\"prev\"),f&&(t[f](),a=Date.now())}))}}!function(e){e.X=\"X\",e.Y=\"Y\"}(u||(u={}));const p=(...e)=>history.replaceState(...e),m=\"data-bespoke-view\",g=\"presenter\",h=\"next\",v=[\"\",g,h],b=(e,{protocol:t,host:n,pathname:r,hash:a}=location)=>{const s=e.toString();return`${t}//${n}${r}${s?\"?\":\"\"}${s}${a}`},w=()=>{const e=document.body.getAttribute(m);if(v.includes(e))return e;throw new Error(\"View mode is not assigned.\")},y=e=>new URLSearchParams(location.search).get(e),k=(e,t={})=>{var n;const r=Object.assign({location:location,setter:p},t),a=new URLSearchParams(r.location.search);for(const t of Object.keys(e)){const n=e[t];\"string\"==typeof n?a.set(t,n):a.delete(t)}try{r.setter(Object.assign({},null!==(n=window.history.state)&&void 0!==n?n:{}),\"\",b(a,r.location))}catch(e){console.error(e)}},E={available:(()=>{try{return localStorage.setItem(\"bespoke-marp\",\"bespoke-marp\"),localStorage.removeItem(\"bespoke-marp\"),!0}catch(e){return console.warn(\"Warning: Using localStorage is restricted in the current host so some features may not work.\"),!1}})(),get:e=>{try{return localStorage.getItem(e)}catch(e){return null}},set:(e,t)=>{try{return localStorage.setItem(e,t),!0}catch(e){return!1}},remove:e=>{try{return localStorage.removeItem(e),!0}catch(e){return!1}}};function x(e=\".bespoke-marp-osc\"){const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[data-bespoke-marp-osc=${JSON.stringify(e)}]`).forEach(n)};return s.isEnabled||n(\"fullscreen\",(e=>e.style.display=\"none\")),E.available||n(\"presenter\",(e=>{e.disabled=!0,e.title=\"Presenter view is disabled due to restricted localStorage.\"})),e=>{t.addEventListener(\"click\",(t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;switch(n&&t.target.blur(),n){case\"next\":e.next({fragment:!t.shiftKey});break;case\"prev\":e.prev({fragment:!t.shiftKey});break;case\"fullscreen\":\"function\"==typeof e.fullscreen&&s.isEnabled&&e.fullscreen();break;case\"presenter\":e.openPresenterView()}}})),e.parent.appendChild(t),e.on(\"activate\",(({index:t})=>{n(\"page\",(n=>n.textContent=`Page ${t+1} of ${e.slides.length}`))})),e.on(\"fragment\",(({index:t,fragments:r,fragmentIndex:a})=>{n(\"prev\",(e=>e.disabled=0===t&&0===a)),n(\"next\",(n=>n.disabled=t===e.slides.length-1&&a===r.length-1))})),e.on(\"marp-active\",(()=>t.removeAttribute(\"aria-hidden\"))),e.on(\"marp-inactive\",(()=>t.setAttribute(\"aria-hidden\",\"true\"))),s.isEnabled&&s.onchange((()=>n(\"fullscreen\",(e=>e.classList.toggle(\"exit\",s.isEnabled&&s.isFullscreen)))))}}function L(e){window.addEventListener(\"message\",(t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(\":\");if(\"navigate\"===n){const[t,n]=r.split(\",\");let a=Number.parseInt(t,10),s=Number.parseInt(n,10)+1;s>=e.fragments[a].length&&(a+=1,s=0),e.slide(a,{fragment:s})}}))}function S(e){if(!(e=>e.syncKey&&\"string\"==typeof e.syncKey)(e))throw new Error(\"The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.\");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:M},presenterUrl:{enumerable:!0,get:I}}),E.available&&document.addEventListener(\"keydown\",(t=>{\"p\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())}))}function M(){const e=Math.max(Math.floor(.85*window.innerWidth),640),t=Math.max(Math.floor(.85*window.innerHeight),360);return window.open(this.presenterUrl,`bespoke-marp-presenter-${this.syncKey}`,`width=${e},height=${t},menubar=no,toolbar=no`)}function I(){const e=new URLSearchParams(location.search);return e.set(\"view\",\"presenter\"),e.set(\"sync\",this.syncKey),b(e)}var P=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];let O=e=>String(e).replace(/[&<>\"']/g,(e=>`&${F[e]};`)),F={\"&\":\"amp\",\"<\":\"lt\",\">\":\"gt\",'\"':\"quot\",\"'\":\"apos\"},$=\"dangerouslySetInnerHTML\",A={className:\"class\",htmlFor:\"for\"},T={};function q(e,t){let n=[],r=\"\";t=t||{};for(let e=arguments.length;e-- >2;)n.push(arguments[e]);if(\"function\"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+=\"<\"+e,t)for(let e in t)!1!==t[e]&&null!=t[e]&&e!==$&&(r+=` ${A[e]?A[e]:O(e)}=\"${O(t[e])}\"`);r+=\">\"}if(-1===P.indexOf(e)){if(t[$])r+=t[$].__html;else for(;n.length;){let e=n.pop();if(e)if(e.pop)for(let t=e.length;t--;)n.push(e[t]);else r+=!0===T[e]?e:O(e)}r+=e?`</${e}>`:\"\"}return T[r]=!0,r}const K=({children:e})=>q(null,null,...e),N=\"bespoke-marp-presenter-container\",C=\"bespoke-marp-presenter-next\",D=\"bespoke-marp-presenter-next-container\",j=\"bespoke-marp-presenter-note-container\",X=\"bespoke-marp-presenter-info-container\",R=\"bespoke-marp-presenter-info-page\",U=\"bespoke-marp-presenter-info-page-text\",B=\"bespoke-marp-presenter-info-page-prev\",V=\"bespoke-marp-presenter-info-page-next\",Y=\"bespoke-marp-presenter-info-time\",H=\"bespoke-marp-presenter-info-timer\";function z(e){const{title:t}=document;document.title=\"[Presenter view]\"+(t?` - ${t}`:\"\");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement(\"div\");return t.className=N,t.appendChild(e),t.insertAdjacentHTML(\"beforeend\",q(K,null,q(\"div\",{class:D},q(\"iframe\",{class:C,src:\"?view=next\"})),q(\"div\",{class:j}),q(\"div\",{class:X},q(\"div\",{class:R},q(\"button\",{class:B,tabindex:\"-1\",title:\"Previous\"},\"Previous\"),q(\"span\",{class:U}),q(\"button\",{class:V,tabindex:\"-1\",title:\"Next\"},\"Next\")),q(\"time\",{class:Y,title:\"Current time\"}),q(\"div\",{class:H})))),t})(e.parent)),(e=>{r(D).addEventListener(\"click\",(()=>e.next()));const t=r(C),n=(a=t,(e,t)=>{var n;return null===(n=a.contentWindow)||void 0===n?void 0:n.postMessage(`navigate:${e},${t}`,\"null\"===window.origin?\"*\":window.origin)});var a;t.addEventListener(\"load\",(()=>{r(D).classList.add(\"active\"),n(e.slide(),e.fragmentIndex),e.on(\"fragment\",(({index:e,fragmentIndex:t})=>n(e,t)))}));const s=document.querySelectorAll(\".bespoke-marp-note\");s.forEach((e=>{e.addEventListener(\"keydown\",(e=>e.stopPropagation())),r(j).appendChild(e)})),e.on(\"activate\",(()=>s.forEach((t=>t.classList.toggle(\"active\",t.dataset.index==e.slide()))))),e.on(\"activate\",(({index:t})=>{r(U).textContent=`${t+1} / ${e.slides.length}`}));const i=r(B),o=r(V);i.addEventListener(\"click\",(t=>{i.blur(),e.prev({fragment:!t.shiftKey})})),o.addEventListener(\"click\",(t=>{o.blur(),e.next({fragment:!t.shiftKey})})),e.on(\"fragment\",(({index:t,fragments:n,fragmentIndex:r})=>{i.disabled=0===t&&0===r,o.disabled=t===e.slides.length-1&&r===n.length-1}));const l=()=>r(Y).textContent=(new Date).toLocaleTimeString();l(),setInterval(l,250)})(e)}function _(e){const t=w();return t===h&&e.appendChild(document.createElement(\"span\")),{\"\":S,[g]:z,[h]:L}[t]}function J(e){e.on(\"activate\",(t=>{document.querySelectorAll(\".bespoke-progress-parent > .bespoke-progress-bar\").forEach((n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+\"%\"}))}))}const W=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t};function G(e={}){const t=Object.assign({history:!0},e);return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},a=(t={fragment:!0})=>{((t,n)=>{const{fragments:r,slides:a}=e,s=Math.max(0,Math.min(t,a.length-1)),i=Math.max(0,Math.min(n||0,r[s].length-1));s===e.slide()&&i===e.fragmentIndex||e.slide(s,{fragment:i})})((W(location.hash.slice(1))||1)-1,t.fragment?W(y(\"f\")||\"\"):null)};e.on(\"fragment\",(({index:e,fragmentIndex:r})=>{n||k({f:0===r||r.toString()},{location:Object.assign(Object.assign({},location),{hash:`#${e+1}`}),setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})})),setTimeout((()=>{a(),window.addEventListener(\"hashchange\",(()=>r((()=>{a({fragment:!1}),k({f:void 0})})))),window.addEventListener(\"popstate\",(()=>{n||r((()=>a()))})),n=!1}),0)}}function Q(e={}){var t;const n=e.key||(null===(t=window.history.state)||void 0===t?void 0:t.marpBespokeSyncKey)||Math.random().toString(36).slice(2),r=`bespoke-marp-sync-${n}`;var a;a={marpBespokeSyncKey:n},k({},{setter:(e,...t)=>p(Object.assign(Object.assign({},e),a),...t)});const s=()=>{const e=E.get(r);return e?JSON.parse(e):Object.create(null)},i=e=>{const t=s(),n=Object.assign(Object.assign({},t),e(t));return E.set(r,JSON.stringify(n)),n},o=()=>{window.removeEventListener(\"pageshow\",o),i((e=>({reference:(e.reference||0)+1})))};return e=>{o(),Object.defineProperty(e,\"syncKey\",{value:n,enumerable:!0});let t=!0;setTimeout((()=>{e.on(\"fragment\",(e=>{t&&i((()=>({index:e.index,fragmentIndex:e.fragmentIndex})))}))}),0),window.addEventListener(\"storage\",(n=>{if(n.key===r&&n.oldValue&&n.newValue){const r=JSON.parse(n.oldValue),a=JSON.parse(n.newValue);if(r.index!==a.index||r.fragmentIndex!==a.fragmentIndex)try{t=!1,e.slide(a.index,{fragment:a.fragmentIndex})}finally{t=!0}}}));const a=()=>{const{reference:e}=s();void 0===e||e<=1?E.remove(r):i((()=>({reference:e-1})))};window.addEventListener(\"pagehide\",(e=>{e.persisted&&window.addEventListener(\"pageshow\",o),a()})),e.on(\"destroy\",a)}}function Z({slope:e=Math.tan(-35*Math.PI/180),swipeThreshold:t=30}={}){return n=>{let r;const a=n.parent,s=e=>{const t=a.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};a.addEventListener(\"touchstart\",(e=>{r=1===e.touches.length?s(e.touches[0]):void 0}),{passive:!0}),a.addEventListener(\"touchmove\",(e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=s(e.touches[0]),n=t.x-r.x,a=t.y-r.y;r.delta=Math.sqrt(Math.pow(Math.abs(n),2)+Math.pow(Math.abs(a),2)),r.radian=Math.atan2(n,a)}else r=void 0})),a.addEventListener(\"touchend\",(a=>{if(r){if(r.delta&&r.delta>=t&&r.radian){let t=r.radian-e;t=(t+Math.PI)%(2*Math.PI)-Math.PI,n[t<0?\"next\":\"prev\"](),a.stopPropagation()}r=void 0}}),{passive:!0})}}function ee(e,t,n,r){return new(n||(n=Promise))((function(a,s){function i(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,o)}l((r=r.apply(e,t||[])).next())}))}let te;const ne=()=>(void 0===te&&(te=\"wakeLock\"in navigator&&navigator.wakeLock),te),re=()=>ee(void 0,void 0,void 0,(function*(){const e=ne();if(e)try{return yield e.request(\"screen\")}catch(e){console.warn(e)}return null}));function ae(){return ee(this,void 0,void 0,(function*(){if(!ne())return;let e;const t=()=>{e&&\"visible\"===document.visibilityState&&re()};return document.addEventListener(\"visibilitychange\",t),document.addEventListener(\"fullscreenchange\",t),e=yield re(),e}))}!function(r=document.getElementById(\"p\")){document.body.setAttribute(m,(()=>{const e=y(\"view\");return e===h||e===g?e:\"\"})());const a=(e=>{const t=y(e);return k({[e]:void 0}),t})(\"sync\")||void 0,s=!1,l=!0;e(r,((...e)=>{const t=v.findIndex((e=>w()===e));if(t<0)throw new Error(\"Invalid view\");return e.map((([e,n])=>e[t]&&n)).filter((e=>e))})([[l,l,s],Q({key:a})],[[l,l,l],_(r)],[[l,l,s],c],[[l,l,l],t],[[l,s,s],o()],[[l,l,l],d],[[l,l,l],G({history:!1})],[[l,l,s],f()],[[l,l,s],i],[[l,s,s],J],[[l,l,s],Z()],[[l,s,s],x()],[[l,l,l],n],[[l,l,s],ae]))}()}();</script></body></html>"
  },
  {
    "path": "2021/8-15-Marp-ppt/demo-完成4.html",
    "content": "<!DOCTYPE html><html lang=\"zh-CN\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,height=device-height,initial-scale=1.0\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"><meta property=\"og:type\" content=\"website\"><meta name=\"twitter:card\" content=\"summary\"><style>@media screen{body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover{opacity:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active{opacity:.6}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTQwIDcwSDIwVjUwbTIwIDBMMjAgNzBtNDAtNDBoMjB2MjBtLTIwIDAgMjAtMjAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTIwIDUwaDIwdjIwbS0yMCAwIDIwLTIwbTQwIDBINjBWMzBtMjAgMEw2MCA1MCIvPjwvc3ZnPg==\")}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDo1cHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yMCA2MGgtNWE1IDUgMCAwIDEtNS01VjIwYTUgNSAwIDAgMSA1LTVoNjBhNSA1IDAgMCAxIDUgNXY1TTMwIDg1aDYwIi8+PHJlY3QgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiLz48cmVjdCBjbGFzcz0iYSIgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1Ii8+PHBhdGggY2xhc3M9ImEiIGQ9Ik00MCA1MGg0ME00MCA2MGgzMCIvPjwvc3ZnPg==\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{-webkit-animation-name:__bespoke_marp__!important;animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=\"\"] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{bottom:0;left:0;position:absolute;right:0;top:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=\"\"] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=\"\"] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:transparent}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template-areas:\"current next\" \"current note\" \"info    note\";grid-template-columns:2fr 1fr;grid-template-rows:minmax(140px,1fr) 2fr 3em;height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:transparent;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{word-wrap:break-word;box-sizing:border-box;font-size:1.1em;height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;scrollbar-color:hsla(0,0%,93%,.5) transparent;scrollbar-width:thin;white-space:pre-wrap;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:transparent}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:hsla(0,0%,93%,.5);border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>div#p>svg>foreignObject>section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center}div#p>svg>foreignObject>section:after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#p>svg>foreignObject>section:not([data-marpit-pagination]):after{display:none}/* Normalization */div#p>svg>foreignObject>section h1{font-size:2em;margin:0.67em 0}div#p>svg>foreignObject>section video::-webkit-media-controls{will-change:transform}@page{size:1280px 720px;margin:0}@media print{body,html{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#p>svg>foreignObject>section{page-break-before:always;break-before:page}div#p>svg>foreignObject>section,div#p>svg>foreignObject>section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;transition:none!important}div#p>svg[data-marpit-svg]{display:block;height:100vh;width:100vw}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{display:block;height:auto;width:100%}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{position:static}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{content:\"\"}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{position:relative}}div#p>svg>foreignObject>section [data-marp-fitting-svg-content]{display:table;white-space:nowrap;width:-webkit-max-content;width:-moz-max-content;width:max-content}div#p>svg>foreignObject>section [data-marp-fitting-svg-content-wrap]{white-space:pre}div#p>svg>foreignObject>section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}\n/*!\n * Marp default theme.\n *\n * @theme default\n * @author Yuki Hattori\n *\n * @auto-scaling true\n * @size 4:3 960px 720px\n */div#p>svg>foreignObject>section .octicon{fill:currentColor;display:inline-block;vertical-align:text-bottom}div#p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#p>svg>foreignObject>section .anchor:focus{outline:none}div#p>svg>foreignObject>section h1 .octicon-link,div#p>svg>foreignObject>section h2 .octicon-link,div#p>svg>foreignObject>section h3 .octicon-link,div#p>svg>foreignObject>section h4 .octicon-link,div#p>svg>foreignObject>section h5 .octicon-link,div#p>svg>foreignObject>section h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}div#p>svg>foreignObject>section h1:hover .anchor,div#p>svg>foreignObject>section h2:hover .anchor,div#p>svg>foreignObject>section h3:hover .anchor,div#p>svg>foreignObject>section h4:hover .anchor,div#p>svg>foreignObject>section h5:hover .anchor,div#p>svg>foreignObject>section h6:hover .anchor{text-decoration:none}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link{visibility:visible}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link:before{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'/%3E%3C/svg%3E\");content:\" \";display:inline-block;height:16px;width:16px}div#p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5}div#p>svg>foreignObject>section{--marpit-root-font-size:16px}div#p>svg>foreignObject>section details{display:block}div#p>svg>foreignObject>section summary{display:list-item}div#p>svg>foreignObject>section a{background-color:initial}div#p>svg>foreignObject>section a:active,div#p>svg>foreignObject>section a:hover{outline-width:0}div#p>svg>foreignObject>section strong{font-weight:inherit;font-weight:bolder}div#p>svg>foreignObject>section h1{margin:.67em 0}div#p>svg>foreignObject>section img{border-style:none}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section kbd,div#p>svg>foreignObject>section pre{font-family:monospace,monospace;font-size:1em}div#p>svg>foreignObject>section hr{box-sizing:initial;overflow:visible}div#p>svg>foreignObject>section input{font:inherit;margin:0;overflow:visible}div#p>svg>foreignObject>section [type=checkbox]{padding:0}div#p>svg>foreignObject>section *,div#p>svg>foreignObject>section [type=checkbox]{box-sizing:border-box}div#p>svg>foreignObject>section input{font-family:inherit;font-size:inherit;line-height:inherit}div#p>svg>foreignObject>section a{color:#0366d6;text-decoration:none}div#p>svg>foreignObject>section a:hover{text-decoration:underline}div#p>svg>foreignObject>section strong{font-weight:600}div#p>svg>foreignObject>section hr{background:transparent;border-bottom:1px solid #dfe2e5;height:0;margin:15px 0;overflow:hidden}div#p>svg>foreignObject>section hr:after,div#p>svg>foreignObject>section hr:before{content:\"\";display:table}div#p>svg>foreignObject>section hr:after{clear:both}div#p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0}div#p>svg>foreignObject>section td,div#p>svg>foreignObject>section th{padding:0}div#p>svg>foreignObject>section details summary{cursor:pointer}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section h1{font-size:32px}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{font-weight:600}div#p>svg>foreignObject>section h2{font-size:24px}div#p>svg>foreignObject>section h3{font-size:20px}div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4{font-weight:600}div#p>svg>foreignObject>section h4{font-size:16px}div#p>svg>foreignObject>section h5{font-size:14px}div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600}div#p>svg>foreignObject>section h6{font-size:12px}div#p>svg>foreignObject>section p{margin-bottom:10px;margin-top:0}div#p>svg>foreignObject>section blockquote{margin:0}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{margin-bottom:0;margin-top:0;padding-left:0}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#p>svg>foreignObject>section ol ol ol,div#p>svg>foreignObject>section ol ul ol,div#p>svg>foreignObject>section ul ol ol,div#p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#p>svg>foreignObject>section dd{margin-left:0}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}div#p>svg>foreignObject>section pre{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section input::-webkit-inner-spin-button,div#p>svg>foreignObject>section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#p>svg>foreignObject>section :checked+.radio-label{border-color:#0366d6;position:relative;z-index:1}div#p>svg>foreignObject>section .border{border:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .border-0{border:0!important}div#p>svg>foreignObject>section .border-bottom{border-bottom:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .rounded-1{border-radius:3px!important}div#p>svg>foreignObject>section .bg-white{background-color:#fff!important}div#p>svg>foreignObject>section .bg-gray-light{background-color:#fafbfc!important}div#p>svg>foreignObject>section .text-gray-light{color:#6a737d!important}div#p>svg>foreignObject>section .pl-3,div#p>svg>foreignObject>section .px-3{padding-left:16px!important}div#p>svg>foreignObject>section .px-3{padding-right:16px!important}div#p>svg>foreignObject>section .f6{font-size:12px!important}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.f6{--marpit-root-font-size:12px!important}div#p>svg>foreignObject>section .lh-condensed{line-height:1.25!important}div#p>svg>foreignObject>section .text-bold{font-weight:600!important}div#p>svg>foreignObject>section .pl-c{color:#6a737d}div#p>svg>foreignObject>section .pl-c1,div#p>svg>foreignObject>section .pl-s .pl-v{color:#005cc5}div#p>svg>foreignObject>section .pl-e,div#p>svg>foreignObject>section .pl-en{color:#6f42c1}div#p>svg>foreignObject>section .pl-s .pl-s1,div#p>svg>foreignObject>section .pl-smi{color:#24292e}div#p>svg>foreignObject>section .pl-ent{color:#22863a}div#p>svg>foreignObject>section .pl-k{color:#d73a49}div#p>svg>foreignObject>section .pl-pds,div#p>svg>foreignObject>section .pl-s,div#p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#p>svg>foreignObject>section .pl-sr,div#p>svg>foreignObject>section .pl-sr .pl-cce,div#p>svg>foreignObject>section .pl-sr .pl-sra,div#p>svg>foreignObject>section .pl-sr .pl-sre{color:#032f62}div#p>svg>foreignObject>section .pl-smw,div#p>svg>foreignObject>section .pl-v{color:#e36209}div#p>svg>foreignObject>section .pl-bu{color:#b31d28}div#p>svg>foreignObject>section .pl-ii{background-color:#b31d28;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2{background-color:#d73a49;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2:before{content:\"^M\"}div#p>svg>foreignObject>section .pl-sr .pl-cce{color:#22863a;font-weight:700}div#p>svg>foreignObject>section .pl-ml{color:#735c0f}div#p>svg>foreignObject>section .pl-mh,div#p>svg>foreignObject>section .pl-mh .pl-en,div#p>svg>foreignObject>section .pl-ms{color:#005cc5;font-weight:700}div#p>svg>foreignObject>section .pl-mi{color:#24292e;font-style:italic}div#p>svg>foreignObject>section .pl-mb{color:#24292e;font-weight:700}div#p>svg>foreignObject>section .pl-md{background-color:#ffeef0;color:#b31d28}div#p>svg>foreignObject>section .pl-mi1{background-color:#f0fff4;color:#22863a}div#p>svg>foreignObject>section .pl-mc{background-color:#ffebda;color:#e36209}div#p>svg>foreignObject>section .pl-mi2{background-color:#005cc5;color:#f6f8fa}div#p>svg>foreignObject>section .pl-mdr{color:#6f42c1;font-weight:700}div#p>svg>foreignObject>section .pl-ba{color:#586069}div#p>svg>foreignObject>section .pl-sg{color:#959da5}div#p>svg>foreignObject>section .pl-corl{color:#032f62;text-decoration:underline}div#p>svg>foreignObject>section .mb-0{margin-bottom:0!important}div#p>svg>foreignObject>section .my-2{margin-bottom:8px!important;margin-top:8px!important}div#p>svg>foreignObject>section .pl-0{padding-left:0!important}div#p>svg>foreignObject>section .py-0{padding-bottom:0!important;padding-top:0!important}div#p>svg>foreignObject>section .pl-1{padding-left:4px!important}div#p>svg>foreignObject>section .pl-2{padding-left:8px!important}div#p>svg>foreignObject>section .py-2{padding-bottom:8px!important;padding-top:8px!important}div#p>svg>foreignObject>section .pl-3{padding-left:16px!important}div#p>svg>foreignObject>section .pl-4{padding-left:24px!important}div#p>svg>foreignObject>section .pl-5{padding-left:32px!important}div#p>svg>foreignObject>section .pl-6{padding-left:40px!important}div#p>svg>foreignObject>section .pl-7{padding-left:48px!important}div#p>svg>foreignObject>section .pl-8{padding-left:64px!important}div#p>svg>foreignObject>section .pl-9{padding-left:80px!important}div#p>svg>foreignObject>section .pl-10{padding-left:96px!important}div#p>svg>foreignObject>section .pl-11{padding-left:112px!important}div#p>svg>foreignObject>section .pl-12{padding-left:128px!important}div#p>svg>foreignObject>section hr{border-bottom-color:#eee}div#p>svg>foreignObject>section kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da;color:#444d56;display:inline-block;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}div#p>svg>foreignObject>section:after,div#p>svg>foreignObject>section:before{\n  /* content:\"\"; */display:table}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-bottom:16px;margin-top:0}div#p>svg>foreignObject>section hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}div#p>svg>foreignObject>section blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}div#p>svg>foreignObject>section h1{font-size:2em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}div#p>svg>foreignObject>section h2{font-size:1.5em}div#p>svg>foreignObject>section h3{font-size:1.25em}div#p>svg>foreignObject>section h4{font-size:1em}div#p>svg>foreignObject>section h5{font-size:.875em}div#p>svg>foreignObject>section h6{color:#6a737d;font-size:.85em}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section li{word-wrap:break-all}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}div#p>svg>foreignObject>section dl dd{margin-bottom:16px;padding:0 16px}div#p>svg>foreignObject>section table{display:block;overflow:auto;width:100%}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{border:1px solid #dfe2e5;padding:6px 13px}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #c6cbd1}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section img{background-color:#fff;box-sizing:initial;max-width:100%}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section code{background-color:rgba(27,31,35,.05);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}div#p>svg>foreignObject>section pre{word-wrap:normal}div#p>svg>foreignObject>section pre>code{background:transparent;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}div#p>svg>foreignObject>section pre code{word-wrap:normal;background-color:initial;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}div#p>svg>foreignObject>section .commit-tease-sha{color:#444d56;display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:90%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.commit-tease-sha{--marpit-root-font-size:90%}div#p>svg>foreignObject>section .full-commit .btn-outline:not(:disabled):hover{border-color:#005cc5;color:#005cc5}div#p>svg>foreignObject>section .blob-wrapper{overflow-x:auto;overflow-y:hidden}div#p>svg>foreignObject>section .blob-wrapper-embedded{max-height:240px;overflow-y:auto}div#p>svg>foreignObject>section .blob-num{color:rgba(27,31,35,.3);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px;min-width:50px;padding-left:10px;padding-right:10px;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;width:1%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-num{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .blob-num:hover{color:rgba(27,31,35,.6)}div#p>svg>foreignObject>section .blob-num:before{content:attr(data-line-number)}div#p>svg>foreignObject>section .blob-code{line-height:20px;padding-left:10px;padding-right:10px;position:relative;vertical-align:top}div#p>svg>foreignObject>section .blob-code-inner{word-wrap:normal;color:#24292e;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;overflow:visible;white-space:pre}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-code-inner{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .pl-token.active,div#p>svg>foreignObject>section .pl-token:hover{background:#ffea7f;cursor:pointer}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"1\"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"2\"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"3\"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"4\"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"5\"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"6\"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"7\"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"8\"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"9\"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"10\"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"11\"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"12\"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .hljs{background:#fff;color:#333;display:block;overflow-x:auto;padding:.5em}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{background-color:#eaffea;color:#55a532}div#p>svg>foreignObject>section .hljs-deletion{background-color:#ffecec;color:#bd2c00}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{color:#48c;font-weight:inherit}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{color:hsla(0,0%,40%,.75);font-size:18px;left:30px;margin:0;position:absolute}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-direction:column;flex-wrap:nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{bottom:21px;color:#777;font-size:24px;padding:0;position:absolute;right:30px}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentColor}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class=\"bespoke-marp-osc\"><button data-bespoke-marp-osc=\"prev\" tabindex=\"-1\" title=\"Previous slide\">Previous slide</button><span data-bespoke-marp-osc=\"page\"></span><button data-bespoke-marp-osc=\"next\" tabindex=\"-1\" title=\"Next slide\">Next slide</button><button data-bespoke-marp-osc=\"fullscreen\" tabindex=\"-1\" title=\"Toggle fullscreen (f)\">Toggle fullscreen</button><button data-bespoke-marp-osc=\"presenter\" tabindex=\"-1\" title=\"Open presenter view (p)\">Open presenter view</button></div><div id=\"p\"><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"1\">\n<h1><svg data-marp-fitting=\"svg\"><foreignObject><span data-marp-fitting-svg-content> 程序员的996，每天工作安排</span></foreignObject></svg></h1>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"2\" data-background-color=\"green\" style=\"--background-color:green;background-color:green;background-image:none;\">\n<h2>上午</h2>\n<ul>\n<li>\n<p>9:00</p>\n<ul>\n<li>上班打卡，企业微信</li>\n<li>开早会</li>\n</ul>\n</li>\n<li>\n<p>9:15</p>\n<ul>\n<li>敏捷开发管理系统</li>\n<li>领取工作内容</li>\n</ul>\n</li>\n<li>\n<p>9:30</p>\n<ul>\n<li>开始工作</li>\n<li>和产品经理沟通，battle 打嘴仗</li>\n</ul>\n</li>\n<li>\n<p>10:00</p>\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n<li>\n<p>11:00</p>\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"3\" data-background-color=\"orange\" style=\"--background-color:orange;background-color:orange;background-image:none;\">\n<h2><svg data-marp-fitting=\"svg\"><foreignObject><span data-marp-fitting-svg-content> 中午</span></foreignObject></svg></h2>\n<ul>\n<li>11:55\n<ul>\n<li>提前去食堂，避免排队</li>\n</ul>\n</li>\n<li>12:30\n<ul>\n<li>吃完</li>\n<li>回公司吹牛</li>\n</ul>\n</li>\n<li>13:00--&gt;14:00\n<ul>\n<li>叹空调，睡午觉</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"4\" data-background-color=\"red\" style=\"--background-color:red;background-color:red;background-image:none;\">\n<h2><svg data-marp-fitting=\"svg\"><foreignObject><span data-marp-fitting-svg-content> 下午</span></foreignObject></svg></h2>\n<ul>\n<li>14:00\n<ul>\n<li>闹钟吵醒，洗脸上班</li>\n</ul>\n</li>\n<li>16:00\n<ul>\n<li>非常困倦</li>\n<li>摸鱼</li>\n</ul>\n</li>\n<li>18:00\n<ul>\n<li>准点离开公司</li>\n<li>吃饭</li>\n<li>散步</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"5\" data-background-color=\"pink\" style=\"--background-color:pink;background-color:pink;background-image:none;\">\n<h2><svg data-marp-fitting=\"svg\"><foreignObject><span data-marp-fitting-svg-content> 晚上</span></foreignObject></svg></h2>\n<ul>\n<li>19:00\n<ul>\n<li>加班</li>\n</ul>\n</li>\n<li>20:45\n<ul>\n<li>敏捷开发管理系统\n<ul>\n<li>提交工作进度</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>21:00\n<ul>\n<li>下班打卡，企业微信</li>\n<li>准点离开公司</li>\n</ul>\n</li>\n</ul>\n</section>\n<script>!function(){\"use strict\";const t=\"marpitSVGPolyfill:setZoomFactor,\",e=Symbol();let r,o;function n(n){const i=\"object\"==typeof n&&n.target||document,a=\"object\"==typeof n?n.zoom:n;window[e]||(Object.defineProperty(window,e,{configurable:!0,value:!0}),window.addEventListener(\"message\",(({data:e,origin:r})=>{if(r===window.origin)try{if(e&&\"string\"==typeof e&&e.startsWith(t)){const[,t]=e.split(\",\"),r=Number.parseFloat(t);Number.isNaN(r)||(o=r)}}catch(t){console.error(t)}})));let l=!1;Array.from(i.querySelectorAll(\"svg[data-marpit-svg]\"),(t=>{var e,n,i,s;t.style.transform||(t.style.transform=\"translateZ(0)\");const c=a||o||t.currentScale||1;r!==c&&(r=c,l=c);const d=t.getBoundingClientRect(),{length:u}=t.children;for(let r=0;r<u;r+=1){const o=t.children[r],a=o.getScreenCTM();if(a){const t=null!==(n=null===(e=o.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==n?n:0,r=null!==(s=null===(i=o.y)||void 0===i?void 0:i.baseVal.value)&&void 0!==s?s:0,l=o.firstElementChild,{style:u}=l;u.transformOrigin||(u.transformOrigin=`${-t}px ${-r}px`),u.transform=`scale(${c}) matrix(${a.a}, ${a.b}, ${a.c}, ${a.d}, ${a.e-d.left}, ${a.f-d.top}) translateZ(0.0001px)`}}})),!1!==l&&Array.from(i.querySelectorAll(\"iframe\"),(({contentWindow:e})=>{null==e||e.postMessage(`${t}${l}`,\"null\"===window.origin?\"*\":window.origin)}))}r=1,o=void 0;const i=(t,e,r)=>{if(t.getAttribute(e)!==r)return t.setAttribute(e,r),!0};function a({once:t=!1,target:e=document}={}){const r=\"Apple Computer, Inc.\"===navigator.vendor?[n]:[];let o=!t;const a=()=>{for(const t of r)t({target:e});!function(t=document){Array.from(t.querySelectorAll('svg[data-marp-fitting=\"svg\"]'),(t=>{var e;const r=t.firstChild,o=r.firstChild,{scrollWidth:n,scrollHeight:a}=o;let l,s=1;if(t.hasAttribute(\"data-marp-fitting-code\")&&(l=null===(e=t.parentElement)||void 0===e?void 0:e.parentElement),t.hasAttribute(\"data-marp-fitting-math\")&&(l=t.parentElement),l){const t=getComputedStyle(l),e=Math.ceil(l.clientWidth-parseFloat(t.paddingLeft||\"0\")-parseFloat(t.paddingRight||\"0\"));e&&(s=e)}const c=Math.max(n,s),d=Math.max(a,1),u=`0 0 ${c} ${d}`;i(r,\"width\",`${c}`),i(r,\"height\",`${d}`),i(t,\"preserveAspectRatio\",getComputedStyle(t).getPropertyValue(\"--preserve-aspect-ratio\")||\"xMinYMin meet\"),i(t,\"viewBox\",u)&&t.classList.toggle(\"__reflow__\")}))}(e),o&&window.requestAnimationFrame(a)};return a(),()=>{o=!1}}const l=Symbol(),s=document.currentScript;((t=document)=>{if(\"undefined\"==typeof window)throw new Error(\"Marp Core's browser script is valid only in browser context.\");if(t[l])return t[l];const e=a({target:t}),r=()=>{e(),delete t[l]};Object.defineProperty(t,l,{configurable:!0,value:r})})(s?s.getRootNode():document)}();\n</script></foreignObject></svg></div><div class=\"bespoke-marp-note\" data-index=\"0\" tabindex=\"0\"><p>fit</p></div><div class=\"bespoke-marp-note\" data-index=\"1\" tabindex=\"0\"><p>fit</p></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@1.2.0/lib/bespoke.js.LICENSE.txt */\n!function(){\"use strict\";var e=function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),a=[].filter.call(\"string\"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return\"SCRIPT\"!==e.nodeName})),s={},i=function(e,t){return(t=t||{}).index=a.indexOf(e),t.slide=e,t},o=function(e,t){s[e]=(s[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(s[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){a[e]&&(n&&l(\"deactivate\",i(n,t)),n=a[e],l(\"activate\",i(n,t)))},d=function(e,t){var r=a.indexOf(n)+e;l(e>0?\"next\":\"prev\",i(n,t))&&c(r,t)},u={off:o,on:function(e,t){return(s[e]||(s[e]=[])).push(t),o.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return a.indexOf(n);l(\"slide\",i(a[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:a,destroy:function(e){l(\"destroy\",i(n,e)),s={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u};function t(e){e.parent.classList.add(\"bespoke-marp-parent\"),e.slides.forEach((e=>e.classList.add(\"bespoke-marp-slide\"))),e.on(\"activate\",(t=>{const n=t.slide,r=!n.classList.contains(\"bespoke-marp-active\");e.slides.forEach((e=>{e.classList.remove(\"bespoke-marp-active\"),e.setAttribute(\"aria-hidden\",\"true\")})),n.classList.add(\"bespoke-marp-active\"),n.removeAttribute(\"aria-hidden\"),r&&(n.classList.add(\"bespoke-marp-active-ready\"),document.body.clientHeight,n.classList.remove(\"bespoke-marp-active-ready\"))}))}function n(e){let t=0,n=0;Object.defineProperty(e,\"fragments\",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll(\"[data-marpit-fragment]\")]))});const r=r=>void 0!==e.fragments[t][n+r],a=(r,a)=>{t=r,n=a,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const s=t<r||t===r&&n<=a;e.setAttribute(\"data-bespoke-marp-fragment\",s?\"active\":\"inactive\"),t===r&&n===a?e.setAttribute(\"data-bespoke-marp-current-fragment\",\"current\"):e.removeAttribute(\"data-bespoke-marp-current-fragment\")}))})),e.fragmentIndex=a;const s={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:a};e.fire(\"fragment\",s)};e.on(\"next\",(({fragment:s=!0})=>{if(s){if(r(1))return a(t,n+1),!1;const s=t+1;e.fragments[s]&&a(s,0)}else{const r=e.fragments[t].length;if(n+1<r)return a(t,r-1),!1;const s=e.fragments[t+1];s&&a(t+1,s.length-1)}})),e.on(\"prev\",(({fragment:s=!0})=>{if(r(-1)&&s)return a(t,n-1),!1;const i=t-1;e.fragments[i]&&a(i,e.fragments[i].length-1)})),e.on(\"slide\",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const a=e.fragments[t];if(a){const{length:e}=a;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}a(t,r)})),a(0,0)}var r,a={exports:{}};r=a,function(){var e=\"undefined\"!=typeof window&&void 0!==window.document?window.document:{},t=r.exports,n=function(){for(var t,n=[[\"requestFullscreen\",\"exitFullscreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fullscreenchange\",\"fullscreenerror\"],[\"webkitRequestFullscreen\",\"webkitExitFullscreen\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"webkitRequestFullScreen\",\"webkitCancelFullScreen\",\"webkitCurrentFullScreenElement\",\"webkitCancelFullScreen\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"mozRequestFullScreen\",\"mozCancelFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozfullscreenchange\",\"mozfullscreenerror\"],[\"msRequestFullscreen\",\"msExitFullscreen\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"MSFullscreenChange\",\"MSFullscreenError\"]],r=0,a=n.length,s={};r<a;r++)if((t=n[r])&&t[1]in e){for(r=0;r<t.length;r++)s[n[0][r]]=t[r];return s}return!1}(),a={change:n.fullscreenchange,error:n.fullscreenerror},s={request:function(t,r){return new Promise(function(a,s){var i=function(){this.off(\"change\",i),a()}.bind(this);this.on(\"change\",i);var o=(t=t||e.documentElement)[n.requestFullscreen](r);o instanceof Promise&&o.then(i).catch(s)}.bind(this))},exit:function(){return new Promise(function(t,r){if(this.isFullscreen){var a=function(){this.off(\"change\",a),t()}.bind(this);this.on(\"change\",a);var s=e[n.exitFullscreen]();s instanceof Promise&&s.then(a).catch(r)}else t()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on(\"change\",e)},onerror:function(e){this.on(\"error\",e)},on:function(t,n){var r=a[t];r&&e.addEventListener(r,n,!1)},off:function(t,n){var r=a[t];r&&e.removeEventListener(r,n,!1)},raw:n};n?(Object.defineProperties(s,{isFullscreen:{get:function(){return Boolean(e[n.fullscreenElement])}},element:{enumerable:!0,get:function(){return e[n.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(e[n.fullscreenEnabled])}}}),t?r.exports=s:window.screenfull=s):t?r.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}();var s=a.exports;function i(e){e.fullscreen=()=>{s.isEnabled&&s.toggle(document.body)},document.addEventListener(\"keydown\",(t=>{\"f\"!==t.key&&\"F11\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!s.isEnabled||(e.fullscreen(),t.preventDefault())}))}function o(e=2e3){return t=>{let n;function r(){n&&clearTimeout(n),n=setTimeout((()=>{t.parent.classList.add(\"bespoke-marp-inactive\"),t.fire(\"marp-inactive\")}),e),t.parent.classList.contains(\"bespoke-marp-inactive\")&&(t.parent.classList.remove(\"bespoke-marp-inactive\"),t.fire(\"marp-active\"))}document.addEventListener(\"mousedown\",r),document.addEventListener(\"mousemove\",r),document.addEventListener(\"touchend\",r),setTimeout(r,0)}}const l=[\"AUDIO\",\"BUTTON\",\"INPUT\",\"SELECT\",\"TEXTAREA\",\"VIDEO\"];function c(e){e.parent.addEventListener(\"keydown\",(e=>{if(!e.target)return;const t=e.target;(l.includes(t.nodeName)||\"true\"===t.contentEditable)&&e.stopPropagation()}))}function d(e){window.addEventListener(\"load\",(()=>{for(const t of e.slides){const e=t.querySelector(\"[data-marp-fitting]\")?\"\":\"hideable\";t.setAttribute(\"data-bespoke-marp-load\",e)}}))}var u;function f({interval:e=250}={}){return t=>{document.addEventListener(\"keydown\",(e=>{if(\" \"===e.key&&e.shiftKey)t.prev();else if(\"ArrowLeft\"===e.key||\"ArrowUp\"===e.key||\"PageUp\"===e.key)t.prev({fragment:!e.shiftKey});else if(\" \"!==e.key||e.shiftKey)if(\"ArrowRight\"===e.key||\"ArrowDown\"===e.key||\"PageDown\"===e.key)t.next({fragment:!e.shiftKey});else if(\"End\"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if(\"Home\"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()}));let n,r,a=0;t.parent.addEventListener(\"wheel\",(s=>{let i=!1;const o=(e,t)=>{e&&(i=i||function(e,t){return function(e,t){const n=t===u.X?\"Width\":\"Height\";return e[`client${n}`]<e[`scroll${n}`]}(e,t)&&function(e,t){const{overflow:n}=e,r=e[`overflow${t}`];return\"auto\"===n||\"scroll\"===n||\"auto\"===r||\"scroll\"===r}(getComputedStyle(e),t)}(e,t)),(null==e?void 0:e.parentElement)&&o(e.parentElement,t)};if(0!==s.deltaX&&o(s.target,u.X),0!==s.deltaY&&o(s.target,u.Y),i)return;s.preventDefault();const l=Math.sqrt(Math.pow(s.deltaX,2)+Math.pow(s.deltaY,2));if(void 0!==s.wheelDelta){if(void 0===s.webkitForce&&Math.abs(s.wheelDelta)<40)return;if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<4)return}else if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<12)return;r&&clearTimeout(r),r=setTimeout((()=>{n=0}),e);const c=Date.now()-a<e,d=l<=n;if(n=l,c||d)return;let f;(s.deltaX>0||s.deltaY>0)&&(f=\"next\"),(s.deltaX<0||s.deltaY<0)&&(f=\"prev\"),f&&(t[f](),a=Date.now())}))}}!function(e){e.X=\"X\",e.Y=\"Y\"}(u||(u={}));const p=(...e)=>history.replaceState(...e),m=\"data-bespoke-view\",g=\"presenter\",h=\"next\",v=[\"\",g,h],b=(e,{protocol:t,host:n,pathname:r,hash:a}=location)=>{const s=e.toString();return`${t}//${n}${r}${s?\"?\":\"\"}${s}${a}`},w=()=>{const e=document.body.getAttribute(m);if(v.includes(e))return e;throw new Error(\"View mode is not assigned.\")},y=e=>new URLSearchParams(location.search).get(e),k=(e,t={})=>{var n;const r=Object.assign({location:location,setter:p},t),a=new URLSearchParams(r.location.search);for(const t of Object.keys(e)){const n=e[t];\"string\"==typeof n?a.set(t,n):a.delete(t)}try{r.setter(Object.assign({},null!==(n=window.history.state)&&void 0!==n?n:{}),\"\",b(a,r.location))}catch(e){console.error(e)}},E={available:(()=>{try{return localStorage.setItem(\"bespoke-marp\",\"bespoke-marp\"),localStorage.removeItem(\"bespoke-marp\"),!0}catch(e){return console.warn(\"Warning: Using localStorage is restricted in the current host so some features may not work.\"),!1}})(),get:e=>{try{return localStorage.getItem(e)}catch(e){return null}},set:(e,t)=>{try{return localStorage.setItem(e,t),!0}catch(e){return!1}},remove:e=>{try{return localStorage.removeItem(e),!0}catch(e){return!1}}};function x(e=\".bespoke-marp-osc\"){const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[data-bespoke-marp-osc=${JSON.stringify(e)}]`).forEach(n)};return s.isEnabled||n(\"fullscreen\",(e=>e.style.display=\"none\")),E.available||n(\"presenter\",(e=>{e.disabled=!0,e.title=\"Presenter view is disabled due to restricted localStorage.\"})),e=>{t.addEventListener(\"click\",(t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;switch(n&&t.target.blur(),n){case\"next\":e.next({fragment:!t.shiftKey});break;case\"prev\":e.prev({fragment:!t.shiftKey});break;case\"fullscreen\":\"function\"==typeof e.fullscreen&&s.isEnabled&&e.fullscreen();break;case\"presenter\":e.openPresenterView()}}})),e.parent.appendChild(t),e.on(\"activate\",(({index:t})=>{n(\"page\",(n=>n.textContent=`Page ${t+1} of ${e.slides.length}`))})),e.on(\"fragment\",(({index:t,fragments:r,fragmentIndex:a})=>{n(\"prev\",(e=>e.disabled=0===t&&0===a)),n(\"next\",(n=>n.disabled=t===e.slides.length-1&&a===r.length-1))})),e.on(\"marp-active\",(()=>t.removeAttribute(\"aria-hidden\"))),e.on(\"marp-inactive\",(()=>t.setAttribute(\"aria-hidden\",\"true\"))),s.isEnabled&&s.onchange((()=>n(\"fullscreen\",(e=>e.classList.toggle(\"exit\",s.isEnabled&&s.isFullscreen)))))}}function L(e){window.addEventListener(\"message\",(t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(\":\");if(\"navigate\"===n){const[t,n]=r.split(\",\");let a=Number.parseInt(t,10),s=Number.parseInt(n,10)+1;s>=e.fragments[a].length&&(a+=1,s=0),e.slide(a,{fragment:s})}}))}function S(e){if(!(e=>e.syncKey&&\"string\"==typeof e.syncKey)(e))throw new Error(\"The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.\");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:M},presenterUrl:{enumerable:!0,get:I}}),E.available&&document.addEventListener(\"keydown\",(t=>{\"p\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())}))}function M(){const e=Math.max(Math.floor(.85*window.innerWidth),640),t=Math.max(Math.floor(.85*window.innerHeight),360);return window.open(this.presenterUrl,`bespoke-marp-presenter-${this.syncKey}`,`width=${e},height=${t},menubar=no,toolbar=no`)}function I(){const e=new URLSearchParams(location.search);return e.set(\"view\",\"presenter\"),e.set(\"sync\",this.syncKey),b(e)}var P=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];let O=e=>String(e).replace(/[&<>\"']/g,(e=>`&${F[e]};`)),F={\"&\":\"amp\",\"<\":\"lt\",\">\":\"gt\",'\"':\"quot\",\"'\":\"apos\"},$=\"dangerouslySetInnerHTML\",A={className:\"class\",htmlFor:\"for\"},T={};function q(e,t){let n=[],r=\"\";t=t||{};for(let e=arguments.length;e-- >2;)n.push(arguments[e]);if(\"function\"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+=\"<\"+e,t)for(let e in t)!1!==t[e]&&null!=t[e]&&e!==$&&(r+=` ${A[e]?A[e]:O(e)}=\"${O(t[e])}\"`);r+=\">\"}if(-1===P.indexOf(e)){if(t[$])r+=t[$].__html;else for(;n.length;){let e=n.pop();if(e)if(e.pop)for(let t=e.length;t--;)n.push(e[t]);else r+=!0===T[e]?e:O(e)}r+=e?`</${e}>`:\"\"}return T[r]=!0,r}const K=({children:e})=>q(null,null,...e),N=\"bespoke-marp-presenter-container\",C=\"bespoke-marp-presenter-next\",D=\"bespoke-marp-presenter-next-container\",j=\"bespoke-marp-presenter-note-container\",X=\"bespoke-marp-presenter-info-container\",R=\"bespoke-marp-presenter-info-page\",U=\"bespoke-marp-presenter-info-page-text\",B=\"bespoke-marp-presenter-info-page-prev\",V=\"bespoke-marp-presenter-info-page-next\",Y=\"bespoke-marp-presenter-info-time\",H=\"bespoke-marp-presenter-info-timer\";function z(e){const{title:t}=document;document.title=\"[Presenter view]\"+(t?` - ${t}`:\"\");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement(\"div\");return t.className=N,t.appendChild(e),t.insertAdjacentHTML(\"beforeend\",q(K,null,q(\"div\",{class:D},q(\"iframe\",{class:C,src:\"?view=next\"})),q(\"div\",{class:j}),q(\"div\",{class:X},q(\"div\",{class:R},q(\"button\",{class:B,tabindex:\"-1\",title:\"Previous\"},\"Previous\"),q(\"span\",{class:U}),q(\"button\",{class:V,tabindex:\"-1\",title:\"Next\"},\"Next\")),q(\"time\",{class:Y,title:\"Current time\"}),q(\"div\",{class:H})))),t})(e.parent)),(e=>{r(D).addEventListener(\"click\",(()=>e.next()));const t=r(C),n=(a=t,(e,t)=>{var n;return null===(n=a.contentWindow)||void 0===n?void 0:n.postMessage(`navigate:${e},${t}`,\"null\"===window.origin?\"*\":window.origin)});var a;t.addEventListener(\"load\",(()=>{r(D).classList.add(\"active\"),n(e.slide(),e.fragmentIndex),e.on(\"fragment\",(({index:e,fragmentIndex:t})=>n(e,t)))}));const s=document.querySelectorAll(\".bespoke-marp-note\");s.forEach((e=>{e.addEventListener(\"keydown\",(e=>e.stopPropagation())),r(j).appendChild(e)})),e.on(\"activate\",(()=>s.forEach((t=>t.classList.toggle(\"active\",t.dataset.index==e.slide()))))),e.on(\"activate\",(({index:t})=>{r(U).textContent=`${t+1} / ${e.slides.length}`}));const i=r(B),o=r(V);i.addEventListener(\"click\",(t=>{i.blur(),e.prev({fragment:!t.shiftKey})})),o.addEventListener(\"click\",(t=>{o.blur(),e.next({fragment:!t.shiftKey})})),e.on(\"fragment\",(({index:t,fragments:n,fragmentIndex:r})=>{i.disabled=0===t&&0===r,o.disabled=t===e.slides.length-1&&r===n.length-1}));const l=()=>r(Y).textContent=(new Date).toLocaleTimeString();l(),setInterval(l,250)})(e)}function _(e){const t=w();return t===h&&e.appendChild(document.createElement(\"span\")),{\"\":S,[g]:z,[h]:L}[t]}function J(e){e.on(\"activate\",(t=>{document.querySelectorAll(\".bespoke-progress-parent > .bespoke-progress-bar\").forEach((n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+\"%\"}))}))}const W=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t};function G(e={}){const t=Object.assign({history:!0},e);return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},a=(t={fragment:!0})=>{((t,n)=>{const{fragments:r,slides:a}=e,s=Math.max(0,Math.min(t,a.length-1)),i=Math.max(0,Math.min(n||0,r[s].length-1));s===e.slide()&&i===e.fragmentIndex||e.slide(s,{fragment:i})})((W(location.hash.slice(1))||1)-1,t.fragment?W(y(\"f\")||\"\"):null)};e.on(\"fragment\",(({index:e,fragmentIndex:r})=>{n||k({f:0===r||r.toString()},{location:Object.assign(Object.assign({},location),{hash:`#${e+1}`}),setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})})),setTimeout((()=>{a(),window.addEventListener(\"hashchange\",(()=>r((()=>{a({fragment:!1}),k({f:void 0})})))),window.addEventListener(\"popstate\",(()=>{n||r((()=>a()))})),n=!1}),0)}}function Q(e={}){var t;const n=e.key||(null===(t=window.history.state)||void 0===t?void 0:t.marpBespokeSyncKey)||Math.random().toString(36).slice(2),r=`bespoke-marp-sync-${n}`;var a;a={marpBespokeSyncKey:n},k({},{setter:(e,...t)=>p(Object.assign(Object.assign({},e),a),...t)});const s=()=>{const e=E.get(r);return e?JSON.parse(e):Object.create(null)},i=e=>{const t=s(),n=Object.assign(Object.assign({},t),e(t));return E.set(r,JSON.stringify(n)),n},o=()=>{window.removeEventListener(\"pageshow\",o),i((e=>({reference:(e.reference||0)+1})))};return e=>{o(),Object.defineProperty(e,\"syncKey\",{value:n,enumerable:!0});let t=!0;setTimeout((()=>{e.on(\"fragment\",(e=>{t&&i((()=>({index:e.index,fragmentIndex:e.fragmentIndex})))}))}),0),window.addEventListener(\"storage\",(n=>{if(n.key===r&&n.oldValue&&n.newValue){const r=JSON.parse(n.oldValue),a=JSON.parse(n.newValue);if(r.index!==a.index||r.fragmentIndex!==a.fragmentIndex)try{t=!1,e.slide(a.index,{fragment:a.fragmentIndex})}finally{t=!0}}}));const a=()=>{const{reference:e}=s();void 0===e||e<=1?E.remove(r):i((()=>({reference:e-1})))};window.addEventListener(\"pagehide\",(e=>{e.persisted&&window.addEventListener(\"pageshow\",o),a()})),e.on(\"destroy\",a)}}function Z({slope:e=Math.tan(-35*Math.PI/180),swipeThreshold:t=30}={}){return n=>{let r;const a=n.parent,s=e=>{const t=a.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};a.addEventListener(\"touchstart\",(e=>{r=1===e.touches.length?s(e.touches[0]):void 0}),{passive:!0}),a.addEventListener(\"touchmove\",(e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=s(e.touches[0]),n=t.x-r.x,a=t.y-r.y;r.delta=Math.sqrt(Math.pow(Math.abs(n),2)+Math.pow(Math.abs(a),2)),r.radian=Math.atan2(n,a)}else r=void 0})),a.addEventListener(\"touchend\",(a=>{if(r){if(r.delta&&r.delta>=t&&r.radian){let t=r.radian-e;t=(t+Math.PI)%(2*Math.PI)-Math.PI,n[t<0?\"next\":\"prev\"](),a.stopPropagation()}r=void 0}}),{passive:!0})}}function ee(e,t,n,r){return new(n||(n=Promise))((function(a,s){function i(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,o)}l((r=r.apply(e,t||[])).next())}))}let te;const ne=()=>(void 0===te&&(te=\"wakeLock\"in navigator&&navigator.wakeLock),te),re=()=>ee(void 0,void 0,void 0,(function*(){const e=ne();if(e)try{return yield e.request(\"screen\")}catch(e){console.warn(e)}return null}));function ae(){return ee(this,void 0,void 0,(function*(){if(!ne())return;let e;const t=()=>{e&&\"visible\"===document.visibilityState&&re()};return document.addEventListener(\"visibilitychange\",t),document.addEventListener(\"fullscreenchange\",t),e=yield re(),e}))}!function(r=document.getElementById(\"p\")){document.body.setAttribute(m,(()=>{const e=y(\"view\");return e===h||e===g?e:\"\"})());const a=(e=>{const t=y(e);return k({[e]:void 0}),t})(\"sync\")||void 0,s=!1,l=!0;e(r,((...e)=>{const t=v.findIndex((e=>w()===e));if(t<0)throw new Error(\"Invalid view\");return e.map((([e,n])=>e[t]&&n)).filter((e=>e))})([[l,l,s],Q({key:a})],[[l,l,l],_(r)],[[l,l,s],c],[[l,l,l],t],[[l,s,s],o()],[[l,l,l],d],[[l,l,l],G({history:!1})],[[l,l,s],f()],[[l,l,s],i],[[l,s,s],J],[[l,l,s],Z()],[[l,s,s],x()],[[l,l,l],n],[[l,l,s],ae]))}()}();</script></body></html>"
  },
  {
    "path": "2021/8-15-Marp-ppt/demo-完成5.html",
    "content": "<!DOCTYPE html><html lang=\"zh-CN\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,height=device-height,initial-scale=1.0\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"><meta property=\"og:type\" content=\"website\"><meta name=\"twitter:card\" content=\"summary\"><style>@media screen{body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover{opacity:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active{opacity:.6}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTQwIDcwSDIwVjUwbTIwIDBMMjAgNzBtNDAtNDBoMjB2MjBtLTIwIDAgMjAtMjAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTIwIDUwaDIwdjIwbS0yMCAwIDIwLTIwbTQwIDBINjBWMzBtMjAgMEw2MCA1MCIvPjwvc3ZnPg==\")}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDo1cHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yMCA2MGgtNWE1IDUgMCAwIDEtNS01VjIwYTUgNSAwIDAgMSA1LTVoNjBhNSA1IDAgMCAxIDUgNXY1TTMwIDg1aDYwIi8+PHJlY3QgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiLz48cmVjdCBjbGFzcz0iYSIgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1Ii8+PHBhdGggY2xhc3M9ImEiIGQ9Ik00MCA1MGg0ME00MCA2MGgzMCIvPjwvc3ZnPg==\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{-webkit-animation-name:__bespoke_marp__!important;animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=\"\"] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{bottom:0;left:0;position:absolute;right:0;top:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=\"\"] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=\"\"] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:transparent}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template-areas:\"current next\" \"current note\" \"info    note\";grid-template-columns:2fr 1fr;grid-template-rows:minmax(140px,1fr) 2fr 3em;height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:transparent;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{word-wrap:break-word;box-sizing:border-box;font-size:1.1em;height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;scrollbar-color:hsla(0,0%,93%,.5) transparent;scrollbar-width:thin;white-space:pre-wrap;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:transparent}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:hsla(0,0%,93%,.5);border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>div#p>svg>foreignObject>section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center}div#p>svg>foreignObject>section:after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#p>svg>foreignObject>section:not([data-marpit-pagination]):after{display:none}/* Normalization */div#p>svg>foreignObject>section h1{font-size:2em;margin:0.67em 0}div#p>svg>foreignObject>section video::-webkit-media-controls{will-change:transform}@page{size:1280px 720px;margin:0}@media print{body,html{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#p>svg>foreignObject>section{page-break-before:always;break-before:page}div#p>svg>foreignObject>section,div#p>svg>foreignObject>section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;transition:none!important}div#p>svg[data-marpit-svg]{display:block;height:100vh;width:100vw}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{display:block;height:auto;width:100%}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{position:static}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{content:\"\"}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{position:relative}}div#p>svg>foreignObject>section [data-marp-fitting-svg-content]{display:table;white-space:nowrap;width:-webkit-max-content;width:-moz-max-content;width:max-content}div#p>svg>foreignObject>section [data-marp-fitting-svg-content-wrap]{white-space:pre}div#p>svg>foreignObject>section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}\n/*!\n * Marp default theme.\n *\n * @theme default\n * @author Yuki Hattori\n *\n * @auto-scaling true\n * @size 4:3 960px 720px\n */div#p>svg>foreignObject>section .octicon{fill:currentColor;display:inline-block;vertical-align:text-bottom}div#p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#p>svg>foreignObject>section .anchor:focus{outline:none}div#p>svg>foreignObject>section h1 .octicon-link,div#p>svg>foreignObject>section h2 .octicon-link,div#p>svg>foreignObject>section h3 .octicon-link,div#p>svg>foreignObject>section h4 .octicon-link,div#p>svg>foreignObject>section h5 .octicon-link,div#p>svg>foreignObject>section h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}div#p>svg>foreignObject>section h1:hover .anchor,div#p>svg>foreignObject>section h2:hover .anchor,div#p>svg>foreignObject>section h3:hover .anchor,div#p>svg>foreignObject>section h4:hover .anchor,div#p>svg>foreignObject>section h5:hover .anchor,div#p>svg>foreignObject>section h6:hover .anchor{text-decoration:none}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link{visibility:visible}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link:before{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'/%3E%3C/svg%3E\");content:\" \";display:inline-block;height:16px;width:16px}div#p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5}div#p>svg>foreignObject>section{--marpit-root-font-size:16px}div#p>svg>foreignObject>section details{display:block}div#p>svg>foreignObject>section summary{display:list-item}div#p>svg>foreignObject>section a{background-color:initial}div#p>svg>foreignObject>section a:active,div#p>svg>foreignObject>section a:hover{outline-width:0}div#p>svg>foreignObject>section strong{font-weight:inherit;font-weight:bolder}div#p>svg>foreignObject>section h1{margin:.67em 0}div#p>svg>foreignObject>section img{border-style:none}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section kbd,div#p>svg>foreignObject>section pre{font-family:monospace,monospace;font-size:1em}div#p>svg>foreignObject>section hr{box-sizing:initial;overflow:visible}div#p>svg>foreignObject>section input{font:inherit;margin:0;overflow:visible}div#p>svg>foreignObject>section [type=checkbox]{padding:0}div#p>svg>foreignObject>section *,div#p>svg>foreignObject>section [type=checkbox]{box-sizing:border-box}div#p>svg>foreignObject>section input{font-family:inherit;font-size:inherit;line-height:inherit}div#p>svg>foreignObject>section a{color:#0366d6;text-decoration:none}div#p>svg>foreignObject>section a:hover{text-decoration:underline}div#p>svg>foreignObject>section strong{font-weight:600}div#p>svg>foreignObject>section hr{background:transparent;border-bottom:1px solid #dfe2e5;height:0;margin:15px 0;overflow:hidden}div#p>svg>foreignObject>section hr:after,div#p>svg>foreignObject>section hr:before{content:\"\";display:table}div#p>svg>foreignObject>section hr:after{clear:both}div#p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0}div#p>svg>foreignObject>section td,div#p>svg>foreignObject>section th{padding:0}div#p>svg>foreignObject>section details summary{cursor:pointer}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section h1{font-size:32px}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{font-weight:600}div#p>svg>foreignObject>section h2{font-size:24px}div#p>svg>foreignObject>section h3{font-size:20px}div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4{font-weight:600}div#p>svg>foreignObject>section h4{font-size:16px}div#p>svg>foreignObject>section h5{font-size:14px}div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600}div#p>svg>foreignObject>section h6{font-size:12px}div#p>svg>foreignObject>section p{margin-bottom:10px;margin-top:0}div#p>svg>foreignObject>section blockquote{margin:0}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{margin-bottom:0;margin-top:0;padding-left:0}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#p>svg>foreignObject>section ol ol ol,div#p>svg>foreignObject>section ol ul ol,div#p>svg>foreignObject>section ul ol ol,div#p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#p>svg>foreignObject>section dd{margin-left:0}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}div#p>svg>foreignObject>section pre{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section input::-webkit-inner-spin-button,div#p>svg>foreignObject>section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#p>svg>foreignObject>section :checked+.radio-label{border-color:#0366d6;position:relative;z-index:1}div#p>svg>foreignObject>section .border{border:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .border-0{border:0!important}div#p>svg>foreignObject>section .border-bottom{border-bottom:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .rounded-1{border-radius:3px!important}div#p>svg>foreignObject>section .bg-white{background-color:#fff!important}div#p>svg>foreignObject>section .bg-gray-light{background-color:#fafbfc!important}div#p>svg>foreignObject>section .text-gray-light{color:#6a737d!important}div#p>svg>foreignObject>section .pl-3,div#p>svg>foreignObject>section .px-3{padding-left:16px!important}div#p>svg>foreignObject>section .px-3{padding-right:16px!important}div#p>svg>foreignObject>section .f6{font-size:12px!important}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.f6{--marpit-root-font-size:12px!important}div#p>svg>foreignObject>section .lh-condensed{line-height:1.25!important}div#p>svg>foreignObject>section .text-bold{font-weight:600!important}div#p>svg>foreignObject>section .pl-c{color:#6a737d}div#p>svg>foreignObject>section .pl-c1,div#p>svg>foreignObject>section .pl-s .pl-v{color:#005cc5}div#p>svg>foreignObject>section .pl-e,div#p>svg>foreignObject>section .pl-en{color:#6f42c1}div#p>svg>foreignObject>section .pl-s .pl-s1,div#p>svg>foreignObject>section .pl-smi{color:#24292e}div#p>svg>foreignObject>section .pl-ent{color:#22863a}div#p>svg>foreignObject>section .pl-k{color:#d73a49}div#p>svg>foreignObject>section .pl-pds,div#p>svg>foreignObject>section .pl-s,div#p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#p>svg>foreignObject>section .pl-sr,div#p>svg>foreignObject>section .pl-sr .pl-cce,div#p>svg>foreignObject>section .pl-sr .pl-sra,div#p>svg>foreignObject>section .pl-sr .pl-sre{color:#032f62}div#p>svg>foreignObject>section .pl-smw,div#p>svg>foreignObject>section .pl-v{color:#e36209}div#p>svg>foreignObject>section .pl-bu{color:#b31d28}div#p>svg>foreignObject>section .pl-ii{background-color:#b31d28;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2{background-color:#d73a49;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2:before{content:\"^M\"}div#p>svg>foreignObject>section .pl-sr .pl-cce{color:#22863a;font-weight:700}div#p>svg>foreignObject>section .pl-ml{color:#735c0f}div#p>svg>foreignObject>section .pl-mh,div#p>svg>foreignObject>section .pl-mh .pl-en,div#p>svg>foreignObject>section .pl-ms{color:#005cc5;font-weight:700}div#p>svg>foreignObject>section .pl-mi{color:#24292e;font-style:italic}div#p>svg>foreignObject>section .pl-mb{color:#24292e;font-weight:700}div#p>svg>foreignObject>section .pl-md{background-color:#ffeef0;color:#b31d28}div#p>svg>foreignObject>section .pl-mi1{background-color:#f0fff4;color:#22863a}div#p>svg>foreignObject>section .pl-mc{background-color:#ffebda;color:#e36209}div#p>svg>foreignObject>section .pl-mi2{background-color:#005cc5;color:#f6f8fa}div#p>svg>foreignObject>section .pl-mdr{color:#6f42c1;font-weight:700}div#p>svg>foreignObject>section .pl-ba{color:#586069}div#p>svg>foreignObject>section .pl-sg{color:#959da5}div#p>svg>foreignObject>section .pl-corl{color:#032f62;text-decoration:underline}div#p>svg>foreignObject>section .mb-0{margin-bottom:0!important}div#p>svg>foreignObject>section .my-2{margin-bottom:8px!important;margin-top:8px!important}div#p>svg>foreignObject>section .pl-0{padding-left:0!important}div#p>svg>foreignObject>section .py-0{padding-bottom:0!important;padding-top:0!important}div#p>svg>foreignObject>section .pl-1{padding-left:4px!important}div#p>svg>foreignObject>section .pl-2{padding-left:8px!important}div#p>svg>foreignObject>section .py-2{padding-bottom:8px!important;padding-top:8px!important}div#p>svg>foreignObject>section .pl-3{padding-left:16px!important}div#p>svg>foreignObject>section .pl-4{padding-left:24px!important}div#p>svg>foreignObject>section .pl-5{padding-left:32px!important}div#p>svg>foreignObject>section .pl-6{padding-left:40px!important}div#p>svg>foreignObject>section .pl-7{padding-left:48px!important}div#p>svg>foreignObject>section .pl-8{padding-left:64px!important}div#p>svg>foreignObject>section .pl-9{padding-left:80px!important}div#p>svg>foreignObject>section .pl-10{padding-left:96px!important}div#p>svg>foreignObject>section .pl-11{padding-left:112px!important}div#p>svg>foreignObject>section .pl-12{padding-left:128px!important}div#p>svg>foreignObject>section hr{border-bottom-color:#eee}div#p>svg>foreignObject>section kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da;color:#444d56;display:inline-block;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}div#p>svg>foreignObject>section:after,div#p>svg>foreignObject>section:before{\n  /* content:\"\"; */display:table}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-bottom:16px;margin-top:0}div#p>svg>foreignObject>section hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}div#p>svg>foreignObject>section blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}div#p>svg>foreignObject>section h1{font-size:2em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}div#p>svg>foreignObject>section h2{font-size:1.5em}div#p>svg>foreignObject>section h3{font-size:1.25em}div#p>svg>foreignObject>section h4{font-size:1em}div#p>svg>foreignObject>section h5{font-size:.875em}div#p>svg>foreignObject>section h6{color:#6a737d;font-size:.85em}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section li{word-wrap:break-all}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}div#p>svg>foreignObject>section dl dd{margin-bottom:16px;padding:0 16px}div#p>svg>foreignObject>section table{display:block;overflow:auto;width:100%}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{border:1px solid #dfe2e5;padding:6px 13px}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #c6cbd1}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section img{background-color:#fff;box-sizing:initial;max-width:100%}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section code{background-color:rgba(27,31,35,.05);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}div#p>svg>foreignObject>section pre{word-wrap:normal}div#p>svg>foreignObject>section pre>code{background:transparent;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}div#p>svg>foreignObject>section pre code{word-wrap:normal;background-color:initial;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}div#p>svg>foreignObject>section .commit-tease-sha{color:#444d56;display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:90%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.commit-tease-sha{--marpit-root-font-size:90%}div#p>svg>foreignObject>section .full-commit .btn-outline:not(:disabled):hover{border-color:#005cc5;color:#005cc5}div#p>svg>foreignObject>section .blob-wrapper{overflow-x:auto;overflow-y:hidden}div#p>svg>foreignObject>section .blob-wrapper-embedded{max-height:240px;overflow-y:auto}div#p>svg>foreignObject>section .blob-num{color:rgba(27,31,35,.3);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px;min-width:50px;padding-left:10px;padding-right:10px;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;width:1%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-num{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .blob-num:hover{color:rgba(27,31,35,.6)}div#p>svg>foreignObject>section .blob-num:before{content:attr(data-line-number)}div#p>svg>foreignObject>section .blob-code{line-height:20px;padding-left:10px;padding-right:10px;position:relative;vertical-align:top}div#p>svg>foreignObject>section .blob-code-inner{word-wrap:normal;color:#24292e;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;overflow:visible;white-space:pre}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-code-inner{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .pl-token.active,div#p>svg>foreignObject>section .pl-token:hover{background:#ffea7f;cursor:pointer}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"1\"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"2\"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"3\"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"4\"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"5\"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"6\"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"7\"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"8\"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"9\"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"10\"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"11\"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"12\"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .hljs{background:#fff;color:#333;display:block;overflow-x:auto;padding:.5em}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{background-color:#eaffea;color:#55a532}div#p>svg>foreignObject>section .hljs-deletion{background-color:#ffecec;color:#bd2c00}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{color:#48c;font-weight:inherit}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{color:hsla(0,0%,40%,.75);font-size:18px;left:30px;margin:0;position:absolute}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-direction:column;flex-wrap:nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{bottom:21px;color:#777;font-size:24px;padding:0;position:absolute;right:30px}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentColor}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class=\"bespoke-marp-osc\"><button data-bespoke-marp-osc=\"prev\" tabindex=\"-1\" title=\"Previous slide\">Previous slide</button><span data-bespoke-marp-osc=\"page\"></span><button data-bespoke-marp-osc=\"next\" tabindex=\"-1\" title=\"Next slide\">Next slide</button><button data-bespoke-marp-osc=\"fullscreen\" tabindex=\"-1\" title=\"Toggle fullscreen (f)\">Toggle fullscreen</button><button data-bespoke-marp-osc=\"presenter\" tabindex=\"-1\" title=\"Open presenter view (p)\">Open presenter view</button></div><div id=\"p\"><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"1\">\n<h1><svg data-marp-fitting=\"svg\"><foreignObject><span data-marp-fitting-svg-content> 程序员的996，每天工作安排</span></foreignObject></svg></h1>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"2\" data-background-color=\"green\" style=\"--background-color:green;background-color:green;background-image:none;\">\n<h1>上午</h1>\n<ul>\n<li>9:00\n<ul>\n<li>上班打卡，企业微信</li>\n<li>开早会</li>\n</ul>\n</li>\n<li>9:15\n<ul>\n<li>敏捷开发管理系统</li>\n<li>领取工作内容</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"3\">\n<ul>\n<li>9:30\n<ul>\n<li>开始工作</li>\n<li>和产品经理沟通，battle 打嘴仗<br />\n<img src=\"IMG_20210806_092900.jpg\" alt=\"\" /></li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"4\" data-background-color=\"green\" style=\"--background-color:green;background-color:green;background-image:none;\">\n<ul>\n<li>10:00\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n<li>11:00\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"5\" data-background-color=\"orange\" style=\"--background-color:orange;background-color:orange;background-image:none;\">\n<h2>中午</h2>\n<ul>\n<li>11:55\n<ul>\n<li>提前去食堂，避免排队<br />\n<img src=\"IMG_20210715_122251.jpg\" alt=\"11\" /></li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"6\" data-background-color=\"pink\" style=\"--background-color:pink;background-color:pink;background-image:none;\">\n<ul>\n<li>12:30\n<ul>\n<li>吃完</li>\n<li>回公司吹牛</li>\n</ul>\n</li>\n<li>13:00--&gt;14:00\n<ul>\n<li>叹空调，睡午觉</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"7\" data-background-color=\"red\" style=\"--background-color:red;background-color:red;background-image:none;\">\n<h1>下午</h1>\n<ul>\n<li>14:00\n<ul>\n<li>闹钟吵醒，洗脸上班</li>\n</ul>\n</li>\n<li>16:00\n<ul>\n<li>非常困倦</li>\n<li>摸鱼</li>\n</ul>\n</li>\n<li>18:00\n<ul>\n<li>准点离开公司</li>\n<li>吃饭</li>\n<li>散步</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"8\" data-background-color=\"pink\" style=\"--background-color:pink;background-color:pink;background-image:none;\">\n<h1>晚上</h1>\n<ul>\n<li>19:00\n<ul>\n<li>加班</li>\n</ul>\n</li>\n<li>20:45\n<ul>\n<li>敏捷开发管理系统\n<ul>\n<li>提交工作进度</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>21:00\n<ul>\n<li>下班打卡，企业微信</li>\n<li>准点离开公司</li>\n</ul>\n</li>\n</ul>\n</section>\n<script>!function(){\"use strict\";const t=\"marpitSVGPolyfill:setZoomFactor,\",e=Symbol();let r,o;function n(n){const i=\"object\"==typeof n&&n.target||document,a=\"object\"==typeof n?n.zoom:n;window[e]||(Object.defineProperty(window,e,{configurable:!0,value:!0}),window.addEventListener(\"message\",(({data:e,origin:r})=>{if(r===window.origin)try{if(e&&\"string\"==typeof e&&e.startsWith(t)){const[,t]=e.split(\",\"),r=Number.parseFloat(t);Number.isNaN(r)||(o=r)}}catch(t){console.error(t)}})));let l=!1;Array.from(i.querySelectorAll(\"svg[data-marpit-svg]\"),(t=>{var e,n,i,s;t.style.transform||(t.style.transform=\"translateZ(0)\");const c=a||o||t.currentScale||1;r!==c&&(r=c,l=c);const d=t.getBoundingClientRect(),{length:u}=t.children;for(let r=0;r<u;r+=1){const o=t.children[r],a=o.getScreenCTM();if(a){const t=null!==(n=null===(e=o.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==n?n:0,r=null!==(s=null===(i=o.y)||void 0===i?void 0:i.baseVal.value)&&void 0!==s?s:0,l=o.firstElementChild,{style:u}=l;u.transformOrigin||(u.transformOrigin=`${-t}px ${-r}px`),u.transform=`scale(${c}) matrix(${a.a}, ${a.b}, ${a.c}, ${a.d}, ${a.e-d.left}, ${a.f-d.top}) translateZ(0.0001px)`}}})),!1!==l&&Array.from(i.querySelectorAll(\"iframe\"),(({contentWindow:e})=>{null==e||e.postMessage(`${t}${l}`,\"null\"===window.origin?\"*\":window.origin)}))}r=1,o=void 0;const i=(t,e,r)=>{if(t.getAttribute(e)!==r)return t.setAttribute(e,r),!0};function a({once:t=!1,target:e=document}={}){const r=\"Apple Computer, Inc.\"===navigator.vendor?[n]:[];let o=!t;const a=()=>{for(const t of r)t({target:e});!function(t=document){Array.from(t.querySelectorAll('svg[data-marp-fitting=\"svg\"]'),(t=>{var e;const r=t.firstChild,o=r.firstChild,{scrollWidth:n,scrollHeight:a}=o;let l,s=1;if(t.hasAttribute(\"data-marp-fitting-code\")&&(l=null===(e=t.parentElement)||void 0===e?void 0:e.parentElement),t.hasAttribute(\"data-marp-fitting-math\")&&(l=t.parentElement),l){const t=getComputedStyle(l),e=Math.ceil(l.clientWidth-parseFloat(t.paddingLeft||\"0\")-parseFloat(t.paddingRight||\"0\"));e&&(s=e)}const c=Math.max(n,s),d=Math.max(a,1),u=`0 0 ${c} ${d}`;i(r,\"width\",`${c}`),i(r,\"height\",`${d}`),i(t,\"preserveAspectRatio\",getComputedStyle(t).getPropertyValue(\"--preserve-aspect-ratio\")||\"xMinYMin meet\"),i(t,\"viewBox\",u)&&t.classList.toggle(\"__reflow__\")}))}(e),o&&window.requestAnimationFrame(a)};return a(),()=>{o=!1}}const l=Symbol(),s=document.currentScript;((t=document)=>{if(\"undefined\"==typeof window)throw new Error(\"Marp Core's browser script is valid only in browser context.\");if(t[l])return t[l];const e=a({target:t}),r=()=>{e(),delete t[l]};Object.defineProperty(t,l,{configurable:!0,value:r})})(s?s.getRootNode():document)}();\n</script></foreignObject></svg></div><div class=\"bespoke-marp-note\" data-index=\"0\" tabindex=\"0\"><p>fit</p></div><div class=\"bespoke-marp-note\" data-index=\"1\" tabindex=\"0\"><p>fit</p></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@1.2.0/lib/bespoke.js.LICENSE.txt */\n!function(){\"use strict\";var e=function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),a=[].filter.call(\"string\"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return\"SCRIPT\"!==e.nodeName})),s={},i=function(e,t){return(t=t||{}).index=a.indexOf(e),t.slide=e,t},o=function(e,t){s[e]=(s[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(s[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){a[e]&&(n&&l(\"deactivate\",i(n,t)),n=a[e],l(\"activate\",i(n,t)))},d=function(e,t){var r=a.indexOf(n)+e;l(e>0?\"next\":\"prev\",i(n,t))&&c(r,t)},u={off:o,on:function(e,t){return(s[e]||(s[e]=[])).push(t),o.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return a.indexOf(n);l(\"slide\",i(a[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:a,destroy:function(e){l(\"destroy\",i(n,e)),s={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u};function t(e){e.parent.classList.add(\"bespoke-marp-parent\"),e.slides.forEach((e=>e.classList.add(\"bespoke-marp-slide\"))),e.on(\"activate\",(t=>{const n=t.slide,r=!n.classList.contains(\"bespoke-marp-active\");e.slides.forEach((e=>{e.classList.remove(\"bespoke-marp-active\"),e.setAttribute(\"aria-hidden\",\"true\")})),n.classList.add(\"bespoke-marp-active\"),n.removeAttribute(\"aria-hidden\"),r&&(n.classList.add(\"bespoke-marp-active-ready\"),document.body.clientHeight,n.classList.remove(\"bespoke-marp-active-ready\"))}))}function n(e){let t=0,n=0;Object.defineProperty(e,\"fragments\",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll(\"[data-marpit-fragment]\")]))});const r=r=>void 0!==e.fragments[t][n+r],a=(r,a)=>{t=r,n=a,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const s=t<r||t===r&&n<=a;e.setAttribute(\"data-bespoke-marp-fragment\",s?\"active\":\"inactive\"),t===r&&n===a?e.setAttribute(\"data-bespoke-marp-current-fragment\",\"current\"):e.removeAttribute(\"data-bespoke-marp-current-fragment\")}))})),e.fragmentIndex=a;const s={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:a};e.fire(\"fragment\",s)};e.on(\"next\",(({fragment:s=!0})=>{if(s){if(r(1))return a(t,n+1),!1;const s=t+1;e.fragments[s]&&a(s,0)}else{const r=e.fragments[t].length;if(n+1<r)return a(t,r-1),!1;const s=e.fragments[t+1];s&&a(t+1,s.length-1)}})),e.on(\"prev\",(({fragment:s=!0})=>{if(r(-1)&&s)return a(t,n-1),!1;const i=t-1;e.fragments[i]&&a(i,e.fragments[i].length-1)})),e.on(\"slide\",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const a=e.fragments[t];if(a){const{length:e}=a;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}a(t,r)})),a(0,0)}var r,a={exports:{}};r=a,function(){var e=\"undefined\"!=typeof window&&void 0!==window.document?window.document:{},t=r.exports,n=function(){for(var t,n=[[\"requestFullscreen\",\"exitFullscreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fullscreenchange\",\"fullscreenerror\"],[\"webkitRequestFullscreen\",\"webkitExitFullscreen\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"webkitRequestFullScreen\",\"webkitCancelFullScreen\",\"webkitCurrentFullScreenElement\",\"webkitCancelFullScreen\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"mozRequestFullScreen\",\"mozCancelFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozfullscreenchange\",\"mozfullscreenerror\"],[\"msRequestFullscreen\",\"msExitFullscreen\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"MSFullscreenChange\",\"MSFullscreenError\"]],r=0,a=n.length,s={};r<a;r++)if((t=n[r])&&t[1]in e){for(r=0;r<t.length;r++)s[n[0][r]]=t[r];return s}return!1}(),a={change:n.fullscreenchange,error:n.fullscreenerror},s={request:function(t,r){return new Promise(function(a,s){var i=function(){this.off(\"change\",i),a()}.bind(this);this.on(\"change\",i);var o=(t=t||e.documentElement)[n.requestFullscreen](r);o instanceof Promise&&o.then(i).catch(s)}.bind(this))},exit:function(){return new Promise(function(t,r){if(this.isFullscreen){var a=function(){this.off(\"change\",a),t()}.bind(this);this.on(\"change\",a);var s=e[n.exitFullscreen]();s instanceof Promise&&s.then(a).catch(r)}else t()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on(\"change\",e)},onerror:function(e){this.on(\"error\",e)},on:function(t,n){var r=a[t];r&&e.addEventListener(r,n,!1)},off:function(t,n){var r=a[t];r&&e.removeEventListener(r,n,!1)},raw:n};n?(Object.defineProperties(s,{isFullscreen:{get:function(){return Boolean(e[n.fullscreenElement])}},element:{enumerable:!0,get:function(){return e[n.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(e[n.fullscreenEnabled])}}}),t?r.exports=s:window.screenfull=s):t?r.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}();var s=a.exports;function i(e){e.fullscreen=()=>{s.isEnabled&&s.toggle(document.body)},document.addEventListener(\"keydown\",(t=>{\"f\"!==t.key&&\"F11\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!s.isEnabled||(e.fullscreen(),t.preventDefault())}))}function o(e=2e3){return t=>{let n;function r(){n&&clearTimeout(n),n=setTimeout((()=>{t.parent.classList.add(\"bespoke-marp-inactive\"),t.fire(\"marp-inactive\")}),e),t.parent.classList.contains(\"bespoke-marp-inactive\")&&(t.parent.classList.remove(\"bespoke-marp-inactive\"),t.fire(\"marp-active\"))}document.addEventListener(\"mousedown\",r),document.addEventListener(\"mousemove\",r),document.addEventListener(\"touchend\",r),setTimeout(r,0)}}const l=[\"AUDIO\",\"BUTTON\",\"INPUT\",\"SELECT\",\"TEXTAREA\",\"VIDEO\"];function c(e){e.parent.addEventListener(\"keydown\",(e=>{if(!e.target)return;const t=e.target;(l.includes(t.nodeName)||\"true\"===t.contentEditable)&&e.stopPropagation()}))}function d(e){window.addEventListener(\"load\",(()=>{for(const t of e.slides){const e=t.querySelector(\"[data-marp-fitting]\")?\"\":\"hideable\";t.setAttribute(\"data-bespoke-marp-load\",e)}}))}var u;function f({interval:e=250}={}){return t=>{document.addEventListener(\"keydown\",(e=>{if(\" \"===e.key&&e.shiftKey)t.prev();else if(\"ArrowLeft\"===e.key||\"ArrowUp\"===e.key||\"PageUp\"===e.key)t.prev({fragment:!e.shiftKey});else if(\" \"!==e.key||e.shiftKey)if(\"ArrowRight\"===e.key||\"ArrowDown\"===e.key||\"PageDown\"===e.key)t.next({fragment:!e.shiftKey});else if(\"End\"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if(\"Home\"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()}));let n,r,a=0;t.parent.addEventListener(\"wheel\",(s=>{let i=!1;const o=(e,t)=>{e&&(i=i||function(e,t){return function(e,t){const n=t===u.X?\"Width\":\"Height\";return e[`client${n}`]<e[`scroll${n}`]}(e,t)&&function(e,t){const{overflow:n}=e,r=e[`overflow${t}`];return\"auto\"===n||\"scroll\"===n||\"auto\"===r||\"scroll\"===r}(getComputedStyle(e),t)}(e,t)),(null==e?void 0:e.parentElement)&&o(e.parentElement,t)};if(0!==s.deltaX&&o(s.target,u.X),0!==s.deltaY&&o(s.target,u.Y),i)return;s.preventDefault();const l=Math.sqrt(Math.pow(s.deltaX,2)+Math.pow(s.deltaY,2));if(void 0!==s.wheelDelta){if(void 0===s.webkitForce&&Math.abs(s.wheelDelta)<40)return;if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<4)return}else if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<12)return;r&&clearTimeout(r),r=setTimeout((()=>{n=0}),e);const c=Date.now()-a<e,d=l<=n;if(n=l,c||d)return;let f;(s.deltaX>0||s.deltaY>0)&&(f=\"next\"),(s.deltaX<0||s.deltaY<0)&&(f=\"prev\"),f&&(t[f](),a=Date.now())}))}}!function(e){e.X=\"X\",e.Y=\"Y\"}(u||(u={}));const p=(...e)=>history.replaceState(...e),m=\"data-bespoke-view\",g=\"presenter\",h=\"next\",v=[\"\",g,h],b=(e,{protocol:t,host:n,pathname:r,hash:a}=location)=>{const s=e.toString();return`${t}//${n}${r}${s?\"?\":\"\"}${s}${a}`},w=()=>{const e=document.body.getAttribute(m);if(v.includes(e))return e;throw new Error(\"View mode is not assigned.\")},y=e=>new URLSearchParams(location.search).get(e),k=(e,t={})=>{var n;const r=Object.assign({location:location,setter:p},t),a=new URLSearchParams(r.location.search);for(const t of Object.keys(e)){const n=e[t];\"string\"==typeof n?a.set(t,n):a.delete(t)}try{r.setter(Object.assign({},null!==(n=window.history.state)&&void 0!==n?n:{}),\"\",b(a,r.location))}catch(e){console.error(e)}},E={available:(()=>{try{return localStorage.setItem(\"bespoke-marp\",\"bespoke-marp\"),localStorage.removeItem(\"bespoke-marp\"),!0}catch(e){return console.warn(\"Warning: Using localStorage is restricted in the current host so some features may not work.\"),!1}})(),get:e=>{try{return localStorage.getItem(e)}catch(e){return null}},set:(e,t)=>{try{return localStorage.setItem(e,t),!0}catch(e){return!1}},remove:e=>{try{return localStorage.removeItem(e),!0}catch(e){return!1}}};function x(e=\".bespoke-marp-osc\"){const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[data-bespoke-marp-osc=${JSON.stringify(e)}]`).forEach(n)};return s.isEnabled||n(\"fullscreen\",(e=>e.style.display=\"none\")),E.available||n(\"presenter\",(e=>{e.disabled=!0,e.title=\"Presenter view is disabled due to restricted localStorage.\"})),e=>{t.addEventListener(\"click\",(t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;switch(n&&t.target.blur(),n){case\"next\":e.next({fragment:!t.shiftKey});break;case\"prev\":e.prev({fragment:!t.shiftKey});break;case\"fullscreen\":\"function\"==typeof e.fullscreen&&s.isEnabled&&e.fullscreen();break;case\"presenter\":e.openPresenterView()}}})),e.parent.appendChild(t),e.on(\"activate\",(({index:t})=>{n(\"page\",(n=>n.textContent=`Page ${t+1} of ${e.slides.length}`))})),e.on(\"fragment\",(({index:t,fragments:r,fragmentIndex:a})=>{n(\"prev\",(e=>e.disabled=0===t&&0===a)),n(\"next\",(n=>n.disabled=t===e.slides.length-1&&a===r.length-1))})),e.on(\"marp-active\",(()=>t.removeAttribute(\"aria-hidden\"))),e.on(\"marp-inactive\",(()=>t.setAttribute(\"aria-hidden\",\"true\"))),s.isEnabled&&s.onchange((()=>n(\"fullscreen\",(e=>e.classList.toggle(\"exit\",s.isEnabled&&s.isFullscreen)))))}}function L(e){window.addEventListener(\"message\",(t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(\":\");if(\"navigate\"===n){const[t,n]=r.split(\",\");let a=Number.parseInt(t,10),s=Number.parseInt(n,10)+1;s>=e.fragments[a].length&&(a+=1,s=0),e.slide(a,{fragment:s})}}))}function S(e){if(!(e=>e.syncKey&&\"string\"==typeof e.syncKey)(e))throw new Error(\"The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.\");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:M},presenterUrl:{enumerable:!0,get:I}}),E.available&&document.addEventListener(\"keydown\",(t=>{\"p\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())}))}function M(){const e=Math.max(Math.floor(.85*window.innerWidth),640),t=Math.max(Math.floor(.85*window.innerHeight),360);return window.open(this.presenterUrl,`bespoke-marp-presenter-${this.syncKey}`,`width=${e},height=${t},menubar=no,toolbar=no`)}function I(){const e=new URLSearchParams(location.search);return e.set(\"view\",\"presenter\"),e.set(\"sync\",this.syncKey),b(e)}var P=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];let O=e=>String(e).replace(/[&<>\"']/g,(e=>`&${F[e]};`)),F={\"&\":\"amp\",\"<\":\"lt\",\">\":\"gt\",'\"':\"quot\",\"'\":\"apos\"},$=\"dangerouslySetInnerHTML\",A={className:\"class\",htmlFor:\"for\"},T={};function q(e,t){let n=[],r=\"\";t=t||{};for(let e=arguments.length;e-- >2;)n.push(arguments[e]);if(\"function\"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+=\"<\"+e,t)for(let e in t)!1!==t[e]&&null!=t[e]&&e!==$&&(r+=` ${A[e]?A[e]:O(e)}=\"${O(t[e])}\"`);r+=\">\"}if(-1===P.indexOf(e)){if(t[$])r+=t[$].__html;else for(;n.length;){let e=n.pop();if(e)if(e.pop)for(let t=e.length;t--;)n.push(e[t]);else r+=!0===T[e]?e:O(e)}r+=e?`</${e}>`:\"\"}return T[r]=!0,r}const K=({children:e})=>q(null,null,...e),N=\"bespoke-marp-presenter-container\",C=\"bespoke-marp-presenter-next\",D=\"bespoke-marp-presenter-next-container\",j=\"bespoke-marp-presenter-note-container\",X=\"bespoke-marp-presenter-info-container\",R=\"bespoke-marp-presenter-info-page\",U=\"bespoke-marp-presenter-info-page-text\",B=\"bespoke-marp-presenter-info-page-prev\",V=\"bespoke-marp-presenter-info-page-next\",Y=\"bespoke-marp-presenter-info-time\",H=\"bespoke-marp-presenter-info-timer\";function z(e){const{title:t}=document;document.title=\"[Presenter view]\"+(t?` - ${t}`:\"\");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement(\"div\");return t.className=N,t.appendChild(e),t.insertAdjacentHTML(\"beforeend\",q(K,null,q(\"div\",{class:D},q(\"iframe\",{class:C,src:\"?view=next\"})),q(\"div\",{class:j}),q(\"div\",{class:X},q(\"div\",{class:R},q(\"button\",{class:B,tabindex:\"-1\",title:\"Previous\"},\"Previous\"),q(\"span\",{class:U}),q(\"button\",{class:V,tabindex:\"-1\",title:\"Next\"},\"Next\")),q(\"time\",{class:Y,title:\"Current time\"}),q(\"div\",{class:H})))),t})(e.parent)),(e=>{r(D).addEventListener(\"click\",(()=>e.next()));const t=r(C),n=(a=t,(e,t)=>{var n;return null===(n=a.contentWindow)||void 0===n?void 0:n.postMessage(`navigate:${e},${t}`,\"null\"===window.origin?\"*\":window.origin)});var a;t.addEventListener(\"load\",(()=>{r(D).classList.add(\"active\"),n(e.slide(),e.fragmentIndex),e.on(\"fragment\",(({index:e,fragmentIndex:t})=>n(e,t)))}));const s=document.querySelectorAll(\".bespoke-marp-note\");s.forEach((e=>{e.addEventListener(\"keydown\",(e=>e.stopPropagation())),r(j).appendChild(e)})),e.on(\"activate\",(()=>s.forEach((t=>t.classList.toggle(\"active\",t.dataset.index==e.slide()))))),e.on(\"activate\",(({index:t})=>{r(U).textContent=`${t+1} / ${e.slides.length}`}));const i=r(B),o=r(V);i.addEventListener(\"click\",(t=>{i.blur(),e.prev({fragment:!t.shiftKey})})),o.addEventListener(\"click\",(t=>{o.blur(),e.next({fragment:!t.shiftKey})})),e.on(\"fragment\",(({index:t,fragments:n,fragmentIndex:r})=>{i.disabled=0===t&&0===r,o.disabled=t===e.slides.length-1&&r===n.length-1}));const l=()=>r(Y).textContent=(new Date).toLocaleTimeString();l(),setInterval(l,250)})(e)}function _(e){const t=w();return t===h&&e.appendChild(document.createElement(\"span\")),{\"\":S,[g]:z,[h]:L}[t]}function J(e){e.on(\"activate\",(t=>{document.querySelectorAll(\".bespoke-progress-parent > .bespoke-progress-bar\").forEach((n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+\"%\"}))}))}const W=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t};function G(e={}){const t=Object.assign({history:!0},e);return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},a=(t={fragment:!0})=>{((t,n)=>{const{fragments:r,slides:a}=e,s=Math.max(0,Math.min(t,a.length-1)),i=Math.max(0,Math.min(n||0,r[s].length-1));s===e.slide()&&i===e.fragmentIndex||e.slide(s,{fragment:i})})((W(location.hash.slice(1))||1)-1,t.fragment?W(y(\"f\")||\"\"):null)};e.on(\"fragment\",(({index:e,fragmentIndex:r})=>{n||k({f:0===r||r.toString()},{location:Object.assign(Object.assign({},location),{hash:`#${e+1}`}),setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})})),setTimeout((()=>{a(),window.addEventListener(\"hashchange\",(()=>r((()=>{a({fragment:!1}),k({f:void 0})})))),window.addEventListener(\"popstate\",(()=>{n||r((()=>a()))})),n=!1}),0)}}function Q(e={}){var t;const n=e.key||(null===(t=window.history.state)||void 0===t?void 0:t.marpBespokeSyncKey)||Math.random().toString(36).slice(2),r=`bespoke-marp-sync-${n}`;var a;a={marpBespokeSyncKey:n},k({},{setter:(e,...t)=>p(Object.assign(Object.assign({},e),a),...t)});const s=()=>{const e=E.get(r);return e?JSON.parse(e):Object.create(null)},i=e=>{const t=s(),n=Object.assign(Object.assign({},t),e(t));return E.set(r,JSON.stringify(n)),n},o=()=>{window.removeEventListener(\"pageshow\",o),i((e=>({reference:(e.reference||0)+1})))};return e=>{o(),Object.defineProperty(e,\"syncKey\",{value:n,enumerable:!0});let t=!0;setTimeout((()=>{e.on(\"fragment\",(e=>{t&&i((()=>({index:e.index,fragmentIndex:e.fragmentIndex})))}))}),0),window.addEventListener(\"storage\",(n=>{if(n.key===r&&n.oldValue&&n.newValue){const r=JSON.parse(n.oldValue),a=JSON.parse(n.newValue);if(r.index!==a.index||r.fragmentIndex!==a.fragmentIndex)try{t=!1,e.slide(a.index,{fragment:a.fragmentIndex})}finally{t=!0}}}));const a=()=>{const{reference:e}=s();void 0===e||e<=1?E.remove(r):i((()=>({reference:e-1})))};window.addEventListener(\"pagehide\",(e=>{e.persisted&&window.addEventListener(\"pageshow\",o),a()})),e.on(\"destroy\",a)}}function Z({slope:e=Math.tan(-35*Math.PI/180),swipeThreshold:t=30}={}){return n=>{let r;const a=n.parent,s=e=>{const t=a.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};a.addEventListener(\"touchstart\",(e=>{r=1===e.touches.length?s(e.touches[0]):void 0}),{passive:!0}),a.addEventListener(\"touchmove\",(e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=s(e.touches[0]),n=t.x-r.x,a=t.y-r.y;r.delta=Math.sqrt(Math.pow(Math.abs(n),2)+Math.pow(Math.abs(a),2)),r.radian=Math.atan2(n,a)}else r=void 0})),a.addEventListener(\"touchend\",(a=>{if(r){if(r.delta&&r.delta>=t&&r.radian){let t=r.radian-e;t=(t+Math.PI)%(2*Math.PI)-Math.PI,n[t<0?\"next\":\"prev\"](),a.stopPropagation()}r=void 0}}),{passive:!0})}}function ee(e,t,n,r){return new(n||(n=Promise))((function(a,s){function i(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,o)}l((r=r.apply(e,t||[])).next())}))}let te;const ne=()=>(void 0===te&&(te=\"wakeLock\"in navigator&&navigator.wakeLock),te),re=()=>ee(void 0,void 0,void 0,(function*(){const e=ne();if(e)try{return yield e.request(\"screen\")}catch(e){console.warn(e)}return null}));function ae(){return ee(this,void 0,void 0,(function*(){if(!ne())return;let e;const t=()=>{e&&\"visible\"===document.visibilityState&&re()};return document.addEventListener(\"visibilitychange\",t),document.addEventListener(\"fullscreenchange\",t),e=yield re(),e}))}!function(r=document.getElementById(\"p\")){document.body.setAttribute(m,(()=>{const e=y(\"view\");return e===h||e===g?e:\"\"})());const a=(e=>{const t=y(e);return k({[e]:void 0}),t})(\"sync\")||void 0,s=!1,l=!0;e(r,((...e)=>{const t=v.findIndex((e=>w()===e));if(t<0)throw new Error(\"Invalid view\");return e.map((([e,n])=>e[t]&&n)).filter((e=>e))})([[l,l,s],Q({key:a})],[[l,l,l],_(r)],[[l,l,s],c],[[l,l,l],t],[[l,s,s],o()],[[l,l,l],d],[[l,l,l],G({history:!1})],[[l,l,s],f()],[[l,l,s],i],[[l,s,s],J],[[l,l,s],Z()],[[l,s,s],x()],[[l,l,l],n],[[l,l,s],ae]))}()}();</script></body></html>"
  },
  {
    "path": "2021/8-15-Marp-ppt/demo-完成6.html",
    "content": "<!DOCTYPE html><html lang=\"zh-CN\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,height=device-height,initial-scale=1.0\"><meta name=\"apple-mobile-web-app-capable\" content=\"yes\"><meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"><meta property=\"og:type\" content=\"website\"><meta name=\"twitter:card\" content=\"summary\"><style>@media screen{body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0;color:inherit;cursor:pointer;font-size:inherit;opacity:.8;outline:none;padding:0;transition:opacity .2s linear}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:disabled,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:disabled{cursor:not-allowed;opacity:.15!important}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover{opacity:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:active,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:active{opacity:.6}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button:hover:not(:disabled),body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button:hover:not(:disabled){transition:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-prev{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNjggOTAgMjggNTBsNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button.bespoke-marp-presenter-info-page-next{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJtMzIgOTAgNDAtNDAtNDAtNDAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTQwIDcwSDIwVjUwbTIwIDBMMjAgNzBtNDAtNDBoMjB2MjBtLTIwIDAgMjAtMjAiLz48L3N2Zz4=\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button.exit[data-bespoke-marp-osc=fullscreen]{background-image:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NXB4fTwvc3R5bGU+PC9kZWZzPjxyZWN0IGNsYXNzPSJhIiB4PSIxMCIgeT0iMjAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI2MCIgcng9IjUuNjciLz48cGF0aCBjbGFzcz0iYSIgZD0iTTIwIDUwaDIwdjIwbS0yMCAwIDIwLTIwbTQwIDBINjBWMzBtMjAgMEw2MCA1MCIvPjwvc3ZnPg==\")}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter]{background:transparent url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48ZGVmcz48c3R5bGU+LmF7ZmlsbDpub25lO3N0cm9rZTojZmZmO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS13aWR0aDo1cHh9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9ImEiIGQ9Ik0yMCA2MGgtNWE1IDUgMCAwIDEtNS01VjIwYTUgNSAwIDAgMSA1LTVoNjBhNSA1IDAgMCAxIDUgNXY1TTMwIDg1aDYwIi8+PHJlY3QgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiLz48cmVjdCBjbGFzcz0iYSIgeD0iMzAiIHk9IjM1IiB3aWR0aD0iNjAiIGhlaWdodD0iNDAiIHJ4PSI1Ii8+PHBhdGggY2xhc3M9ImEiIGQ9Ik00MCA1MGg0ME00MCA2MGgzMCIvPjwvc3ZnPg==\") no-repeat 50%;background-size:contain;overflow:hidden;text-indent:100%;white-space:nowrap}}.bespoke-marp-note,.bespoke-marp-osc,.bespoke-progress-parent{display:none;transition:none}@media screen{body,html{height:100%;margin:0}body{background:#000;overflow:hidden}svg.bespoke-marp-slide{content-visibility:hidden;opacity:0;pointer-events:none;z-index:-1}svg.bespoke-marp-slide.bespoke-marp-active{content-visibility:visible;opacity:1;pointer-events:auto;z-index:0}svg.bespoke-marp-slide.bespoke-marp-active.bespoke-marp-active-ready *{-webkit-animation-name:__bespoke_marp__!important;animation-name:__bespoke_marp__!important}@supports not (content-visibility:hidden){svg.bespoke-marp-slide[data-bespoke-marp-load=hideable]{display:none}svg.bespoke-marp-slide[data-bespoke-marp-load=hideable].bespoke-marp-active{display:block}}[data-bespoke-marp-fragment=inactive]{visibility:hidden}body[data-bespoke-view=\"\"] .bespoke-marp-parent,body[data-bespoke-view=next] .bespoke-marp-parent{bottom:0;left:0;position:absolute;right:0;top:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc{background:rgba(0,0,0,.65);border-radius:7px;bottom:50px;color:#fff;display:block;font-family:Helvetica,Arial,sans-serif;font-size:16px;left:50%;line-height:0;opacity:1;padding:12px;position:absolute;touch-action:manipulation;transform:translateX(-50%);transition:opacity .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;will-change:transform;z-index:1}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>*,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>*{margin-left:6px}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>:first-child,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>:first-child{margin-left:0}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span,body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span{opacity:.8}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>span[data-bespoke-marp-osc=page]{display:inline-block;min-width:140px;text-align:center}body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=\"\"] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=fullscreen],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=next],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=presenter],body[data-bespoke-view=next] .bespoke-marp-parent>.bespoke-marp-osc>button[data-bespoke-marp-osc=prev]{height:32px;line-height:32px;width:32px}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive{cursor:none}body[data-bespoke-view=\"\"] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc,body[data-bespoke-view=next] .bespoke-marp-parent.bespoke-marp-inactive>.bespoke-marp-osc{opacity:0;pointer-events:none}body[data-bespoke-view=\"\"] svg.bespoke-marp-slide,body[data-bespoke-view=next] svg.bespoke-marp-slide{height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent{background:#222;display:flex;height:5px;width:100%}body[data-bespoke-view=\"\"] .bespoke-progress-parent+.bespoke-marp-parent{top:5px}body[data-bespoke-view=\"\"] .bespoke-progress-parent .bespoke-progress-bar{background:#0288d1;flex:0 0 0;transition:flex-basis .2s cubic-bezier(0,1,1,1)}body[data-bespoke-view=next]{background:transparent}body[data-bespoke-view=presenter]{background:#161616}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container{display:grid;font-family:Helvetica,Arial,sans-serif;grid-template-areas:\"current next\" \"current note\" \"info    note\";grid-template-columns:2fr 1fr;grid-template-rows:minmax(140px,1fr) 2fr 3em;height:100%;left:0;position:absolute;top:0;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent{grid-area:current;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide{height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-parent svg.bespoke-marp-slide.bespoke-marp-active{filter:drop-shadow(0 3px 10px rgba(0,0,0,.5))}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container{background:#222;cursor:pointer;display:none;grid-area:next;overflow:hidden;position:relative}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-next-container iframe.bespoke-marp-presenter-next{background:transparent;border:0;display:block;filter:drop-shadow(0 3px 10px rgba(0,0,0,.5));height:calc(100% - 40px);left:20px;pointer-events:none;position:absolute;top:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container{background:#222;color:#eee;grid-area:note}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note{word-wrap:break-word;box-sizing:border-box;font-size:1.1em;height:calc(100% - 40px);margin:20px;overflow:auto;padding-right:3px;scrollbar-color:hsla(0,0%,93%,.5) transparent;scrollbar-width:thin;white-space:pre-wrap;width:calc(100% - 40px)}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar{width:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-track{background:transparent}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note::-webkit-scrollbar-thumb{background:hsla(0,0%,93%,.5);border-radius:6px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note:empty{pointer-events:none}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note.active{display:block}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:first-child{margin-top:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-note-container .bespoke-marp-note p:last-child{margin-bottom:0}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container{align-items:center;box-sizing:border-box;color:#eee;display:flex;flex-wrap:nowrap;grid-area:info;justify-content:center;padding:0 10px}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time,body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{box-sizing:border-box;display:block;padding:0 10px;white-space:nowrap;width:100%}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container button{height:1.5em;line-height:1.5em;width:1.5em}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page{order:2;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-page .bespoke-marp-presenter-info-page-text{display:inline-block;min-width:120px;text-align:center}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-time{color:#999;order:1;text-align:left}body[data-bespoke-view=presenter] .bespoke-marp-presenter-container .bespoke-marp-presenter-info-container .bespoke-marp-presenter-info-timer{color:#999;order:3;text-align:right}}@media print{.bespoke-marp-presenter-info-container,.bespoke-marp-presenter-next-container,.bespoke-marp-presenter-note-container{display:none}}</style><style>div#p>svg>foreignObject>section{width:1280px;height:720px;box-sizing:border-box;overflow:hidden;position:relative;scroll-snap-align:center center}div#p>svg>foreignObject>section:after{bottom:0;content:attr(data-marpit-pagination);padding:inherit;pointer-events:none;position:absolute;right:0}div#p>svg>foreignObject>section:not([data-marpit-pagination]):after{display:none}/* Normalization */div#p>svg>foreignObject>section h1{font-size:2em;margin:0.67em 0}div#p>svg>foreignObject>section video::-webkit-media-controls{will-change:transform}@page{size:1280px 720px;margin:0}@media print{body,html{background-color:#fff;margin:0;page-break-inside:avoid;break-inside:avoid-page}div#p>svg>foreignObject>section{page-break-before:always;break-before:page}div#p>svg>foreignObject>section,div#p>svg>foreignObject>section *{-webkit-print-color-adjust:exact!important;animation-delay:0s!important;animation-duration:0s!important;color-adjust:exact!important;transition:none!important}div#p>svg[data-marpit-svg]{display:block;height:100vh;width:100vw}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{display:block;height:auto;width:100%}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{position:static}}div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{content:\"\"}@supports (-ms-ime-align:auto){div#p>svg>foreignObject>section svg[data-marp-fitting=svg].__reflow__{position:relative}}div#p>svg>foreignObject>section [data-marp-fitting-svg-content]{display:table;white-space:nowrap;width:-webkit-max-content;width:-moz-max-content;width:max-content}div#p>svg>foreignObject>section [data-marp-fitting-svg-content-wrap]{white-space:pre}div#p>svg>foreignObject>section img[data-marp-twemoji]{background:transparent;height:1em;margin:0 .05em 0 .1em;vertical-align:-.1em;width:1em}\n/*!\n * Marp default theme.\n *\n * @theme default\n * @author Yuki Hattori\n *\n * @auto-scaling true\n * @size 4:3 960px 720px\n */div#p>svg>foreignObject>section .octicon{fill:currentColor;display:inline-block;vertical-align:text-bottom}div#p>svg>foreignObject>section .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}div#p>svg>foreignObject>section .anchor:focus{outline:none}div#p>svg>foreignObject>section h1 .octicon-link,div#p>svg>foreignObject>section h2 .octicon-link,div#p>svg>foreignObject>section h3 .octicon-link,div#p>svg>foreignObject>section h4 .octicon-link,div#p>svg>foreignObject>section h5 .octicon-link,div#p>svg>foreignObject>section h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}div#p>svg>foreignObject>section h1:hover .anchor,div#p>svg>foreignObject>section h2:hover .anchor,div#p>svg>foreignObject>section h3:hover .anchor,div#p>svg>foreignObject>section h4:hover .anchor,div#p>svg>foreignObject>section h5:hover .anchor,div#p>svg>foreignObject>section h6:hover .anchor{text-decoration:none}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link{visibility:visible}div#p>svg>foreignObject>section h1:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h2:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h3:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h4:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h5:hover .anchor .octicon-link:before,div#p>svg>foreignObject>section h6:hover .anchor .octicon-link:before{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' aria-hidden='true'%3E%3Cpath fill-rule='evenodd' d='M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z'/%3E%3C/svg%3E\");content:\" \";display:inline-block;height:16px;width:16px}div#p>svg>foreignObject>section{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5}div#p>svg>foreignObject>section{--marpit-root-font-size:16px}div#p>svg>foreignObject>section details{display:block}div#p>svg>foreignObject>section summary{display:list-item}div#p>svg>foreignObject>section a{background-color:initial}div#p>svg>foreignObject>section a:active,div#p>svg>foreignObject>section a:hover{outline-width:0}div#p>svg>foreignObject>section strong{font-weight:inherit;font-weight:bolder}div#p>svg>foreignObject>section h1{margin:.67em 0}div#p>svg>foreignObject>section img{border-style:none}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section kbd,div#p>svg>foreignObject>section pre{font-family:monospace,monospace;font-size:1em}div#p>svg>foreignObject>section hr{box-sizing:initial;overflow:visible}div#p>svg>foreignObject>section input{font:inherit;margin:0;overflow:visible}div#p>svg>foreignObject>section [type=checkbox]{padding:0}div#p>svg>foreignObject>section *,div#p>svg>foreignObject>section [type=checkbox]{box-sizing:border-box}div#p>svg>foreignObject>section input{font-family:inherit;font-size:inherit;line-height:inherit}div#p>svg>foreignObject>section a{color:#0366d6;text-decoration:none}div#p>svg>foreignObject>section a:hover{text-decoration:underline}div#p>svg>foreignObject>section strong{font-weight:600}div#p>svg>foreignObject>section hr{background:transparent;border-bottom:1px solid #dfe2e5;height:0;margin:15px 0;overflow:hidden}div#p>svg>foreignObject>section hr:after,div#p>svg>foreignObject>section hr:before{content:\"\";display:table}div#p>svg>foreignObject>section hr:after{clear:both}div#p>svg>foreignObject>section table{border-collapse:collapse;border-spacing:0}div#p>svg>foreignObject>section td,div#p>svg>foreignObject>section th{padding:0}div#p>svg>foreignObject>section details summary{cursor:pointer}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section h1{font-size:32px}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{font-weight:600}div#p>svg>foreignObject>section h2{font-size:24px}div#p>svg>foreignObject>section h3{font-size:20px}div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4{font-weight:600}div#p>svg>foreignObject>section h4{font-size:16px}div#p>svg>foreignObject>section h5{font-size:14px}div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600}div#p>svg>foreignObject>section h6{font-size:12px}div#p>svg>foreignObject>section p{margin-bottom:10px;margin-top:0}div#p>svg>foreignObject>section blockquote{margin:0}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{margin-bottom:0;margin-top:0;padding-left:0}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ul ol{list-style-type:lower-roman}div#p>svg>foreignObject>section ol ol ol,div#p>svg>foreignObject>section ol ul ol,div#p>svg>foreignObject>section ul ol ol,div#p>svg>foreignObject>section ul ul ol{list-style-type:lower-alpha}div#p>svg>foreignObject>section dd{margin-left:0}div#p>svg>foreignObject>section code,div#p>svg>foreignObject>section pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}div#p>svg>foreignObject>section pre{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section input::-webkit-inner-spin-button,div#p>svg>foreignObject>section input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}div#p>svg>foreignObject>section :checked+.radio-label{border-color:#0366d6;position:relative;z-index:1}div#p>svg>foreignObject>section .border{border:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .border-0{border:0!important}div#p>svg>foreignObject>section .border-bottom{border-bottom:1px solid #e1e4e8!important}div#p>svg>foreignObject>section .rounded-1{border-radius:3px!important}div#p>svg>foreignObject>section .bg-white{background-color:#fff!important}div#p>svg>foreignObject>section .bg-gray-light{background-color:#fafbfc!important}div#p>svg>foreignObject>section .text-gray-light{color:#6a737d!important}div#p>svg>foreignObject>section .pl-3,div#p>svg>foreignObject>section .px-3{padding-left:16px!important}div#p>svg>foreignObject>section .px-3{padding-right:16px!important}div#p>svg>foreignObject>section .f6{font-size:12px!important}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.f6{--marpit-root-font-size:12px!important}div#p>svg>foreignObject>section .lh-condensed{line-height:1.25!important}div#p>svg>foreignObject>section .text-bold{font-weight:600!important}div#p>svg>foreignObject>section .pl-c{color:#6a737d}div#p>svg>foreignObject>section .pl-c1,div#p>svg>foreignObject>section .pl-s .pl-v{color:#005cc5}div#p>svg>foreignObject>section .pl-e,div#p>svg>foreignObject>section .pl-en{color:#6f42c1}div#p>svg>foreignObject>section .pl-s .pl-s1,div#p>svg>foreignObject>section .pl-smi{color:#24292e}div#p>svg>foreignObject>section .pl-ent{color:#22863a}div#p>svg>foreignObject>section .pl-k{color:#d73a49}div#p>svg>foreignObject>section .pl-pds,div#p>svg>foreignObject>section .pl-s,div#p>svg>foreignObject>section .pl-s .pl-pse .pl-s1,div#p>svg>foreignObject>section .pl-sr,div#p>svg>foreignObject>section .pl-sr .pl-cce,div#p>svg>foreignObject>section .pl-sr .pl-sra,div#p>svg>foreignObject>section .pl-sr .pl-sre{color:#032f62}div#p>svg>foreignObject>section .pl-smw,div#p>svg>foreignObject>section .pl-v{color:#e36209}div#p>svg>foreignObject>section .pl-bu{color:#b31d28}div#p>svg>foreignObject>section .pl-ii{background-color:#b31d28;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2{background-color:#d73a49;color:#fafbfc}div#p>svg>foreignObject>section .pl-c2:before{content:\"^M\"}div#p>svg>foreignObject>section .pl-sr .pl-cce{color:#22863a;font-weight:700}div#p>svg>foreignObject>section .pl-ml{color:#735c0f}div#p>svg>foreignObject>section .pl-mh,div#p>svg>foreignObject>section .pl-mh .pl-en,div#p>svg>foreignObject>section .pl-ms{color:#005cc5;font-weight:700}div#p>svg>foreignObject>section .pl-mi{color:#24292e;font-style:italic}div#p>svg>foreignObject>section .pl-mb{color:#24292e;font-weight:700}div#p>svg>foreignObject>section .pl-md{background-color:#ffeef0;color:#b31d28}div#p>svg>foreignObject>section .pl-mi1{background-color:#f0fff4;color:#22863a}div#p>svg>foreignObject>section .pl-mc{background-color:#ffebda;color:#e36209}div#p>svg>foreignObject>section .pl-mi2{background-color:#005cc5;color:#f6f8fa}div#p>svg>foreignObject>section .pl-mdr{color:#6f42c1;font-weight:700}div#p>svg>foreignObject>section .pl-ba{color:#586069}div#p>svg>foreignObject>section .pl-sg{color:#959da5}div#p>svg>foreignObject>section .pl-corl{color:#032f62;text-decoration:underline}div#p>svg>foreignObject>section .mb-0{margin-bottom:0!important}div#p>svg>foreignObject>section .my-2{margin-bottom:8px!important;margin-top:8px!important}div#p>svg>foreignObject>section .pl-0{padding-left:0!important}div#p>svg>foreignObject>section .py-0{padding-bottom:0!important;padding-top:0!important}div#p>svg>foreignObject>section .pl-1{padding-left:4px!important}div#p>svg>foreignObject>section .pl-2{padding-left:8px!important}div#p>svg>foreignObject>section .py-2{padding-bottom:8px!important;padding-top:8px!important}div#p>svg>foreignObject>section .pl-3{padding-left:16px!important}div#p>svg>foreignObject>section .pl-4{padding-left:24px!important}div#p>svg>foreignObject>section .pl-5{padding-left:32px!important}div#p>svg>foreignObject>section .pl-6{padding-left:40px!important}div#p>svg>foreignObject>section .pl-7{padding-left:48px!important}div#p>svg>foreignObject>section .pl-8{padding-left:64px!important}div#p>svg>foreignObject>section .pl-9{padding-left:80px!important}div#p>svg>foreignObject>section .pl-10{padding-left:96px!important}div#p>svg>foreignObject>section .pl-11{padding-left:112px!important}div#p>svg>foreignObject>section .pl-12{padding-left:128px!important}div#p>svg>foreignObject>section hr{border-bottom-color:#eee}div#p>svg>foreignObject>section kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-radius:3px;box-shadow:inset 0 -1px 0 #d1d5da;color:#444d56;display:inline-block;font:11px SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}div#p>svg>foreignObject>section:after,div#p>svg>foreignObject>section:before{\n  /* content:\"\"; */display:table}div#p>svg>foreignObject>section:after{clear:both}div#p>svg>foreignObject>section>:first-child{margin-top:0!important}div#p>svg>foreignObject>section>:last-child{margin-bottom:0!important}div#p>svg>foreignObject>section a:not([href]){color:inherit;text-decoration:none}div#p>svg>foreignObject>section blockquote,div#p>svg>foreignObject>section details,div#p>svg>foreignObject>section dl,div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section p,div#p>svg>foreignObject>section pre,div#p>svg>foreignObject>section table,div#p>svg>foreignObject>section ul{margin-bottom:16px;margin-top:0}div#p>svg>foreignObject>section hr{background-color:#e1e4e8;border:0;height:.25em;margin:24px 0;padding:0}div#p>svg>foreignObject>section blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;padding:0 1em}div#p>svg>foreignObject>section blockquote>:first-child{margin-top:0}div#p>svg>foreignObject>section blockquote>:last-child{margin-bottom:0}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2,div#p>svg>foreignObject>section h3,div#p>svg>foreignObject>section h4,div#p>svg>foreignObject>section h5,div#p>svg>foreignObject>section h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}div#p>svg>foreignObject>section h1{font-size:2em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:1px solid #eaecef;padding-bottom:.3em}div#p>svg>foreignObject>section h2{font-size:1.5em}div#p>svg>foreignObject>section h3{font-size:1.25em}div#p>svg>foreignObject>section h4{font-size:1em}div#p>svg>foreignObject>section h5{font-size:.875em}div#p>svg>foreignObject>section h6{color:#6a737d;font-size:.85em}div#p>svg>foreignObject>section ol,div#p>svg>foreignObject>section ul{padding-left:2em}div#p>svg>foreignObject>section ol ol,div#p>svg>foreignObject>section ol ul,div#p>svg>foreignObject>section ul ol,div#p>svg>foreignObject>section ul ul{margin-bottom:0;margin-top:0}div#p>svg>foreignObject>section li{word-wrap:break-all}div#p>svg>foreignObject>section li>p{margin-top:16px}div#p>svg>foreignObject>section li+li{margin-top:.25em}div#p>svg>foreignObject>section dl{padding:0}div#p>svg>foreignObject>section dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}div#p>svg>foreignObject>section dl dd{margin-bottom:16px;padding:0 16px}div#p>svg>foreignObject>section table{display:block;overflow:auto;width:100%}div#p>svg>foreignObject>section table th{font-weight:600}div#p>svg>foreignObject>section table td,div#p>svg>foreignObject>section table th{border:1px solid #dfe2e5;padding:6px 13px}div#p>svg>foreignObject>section table tr{background-color:#fff;border-top:1px solid #c6cbd1}div#p>svg>foreignObject>section table tr:nth-child(2n){background-color:#f6f8fa}div#p>svg>foreignObject>section img{background-color:#fff;box-sizing:initial;max-width:100%}div#p>svg>foreignObject>section img[align=right]{padding-left:20px}div#p>svg>foreignObject>section img[align=left]{padding-right:20px}div#p>svg>foreignObject>section code{background-color:rgba(27,31,35,.05);border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}div#p>svg>foreignObject>section pre{word-wrap:normal}div#p>svg>foreignObject>section pre>code{background:transparent;border:0;font-size:100%;margin:0;padding:0;white-space:pre;word-break:normal}div#p>svg>foreignObject>section .highlight{margin-bottom:16px}div#p>svg>foreignObject>section .highlight pre{margin-bottom:0;word-break:normal}div#p>svg>foreignObject>section pre{background-color:#f6f8fa;border-radius:3px;font-size:85%;line-height:1.45;overflow:auto;padding:16px}div#p>svg>foreignObject>section pre code{word-wrap:normal;background-color:initial;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}div#p>svg>foreignObject>section .commit-tease-sha{color:#444d56;display:inline-block;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:90%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.commit-tease-sha{--marpit-root-font-size:90%}div#p>svg>foreignObject>section .full-commit .btn-outline:not(:disabled):hover{border-color:#005cc5;color:#005cc5}div#p>svg>foreignObject>section .blob-wrapper{overflow-x:auto;overflow-y:hidden}div#p>svg>foreignObject>section .blob-wrapper-embedded{max-height:240px;overflow-y:auto}div#p>svg>foreignObject>section .blob-num{color:rgba(27,31,35,.3);cursor:pointer;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:20px;min-width:50px;padding-left:10px;padding-right:10px;text-align:right;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;white-space:nowrap;width:1%}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-num{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .blob-num:hover{color:rgba(27,31,35,.6)}div#p>svg>foreignObject>section .blob-num:before{content:attr(data-line-number)}div#p>svg>foreignObject>section .blob-code{line-height:20px;padding-left:10px;padding-right:10px;position:relative;vertical-align:top}div#p>svg>foreignObject>section .blob-code-inner{word-wrap:normal;color:#24292e;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;overflow:visible;white-space:pre}div#p>svg>foreignObject>section div#p>svg>foreignObject>section section.blob-code-inner{--marpit-root-font-size:12px}div#p>svg>foreignObject>section .pl-token.active,div#p>svg>foreignObject>section .pl-token:hover{background:#ffea7f;cursor:pointer}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"1\"]{-moz-tab-size:1;-o-tab-size:1;tab-size:1}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"2\"]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"3\"]{-moz-tab-size:3;-o-tab-size:3;tab-size:3}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"4\"]{-moz-tab-size:4;-o-tab-size:4;tab-size:4}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"5\"]{-moz-tab-size:5;-o-tab-size:5;tab-size:5}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"6\"]{-moz-tab-size:6;-o-tab-size:6;tab-size:6}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"7\"]{-moz-tab-size:7;-o-tab-size:7;tab-size:7}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"8\"]{-moz-tab-size:8;-o-tab-size:8;tab-size:8}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"9\"]{-moz-tab-size:9;-o-tab-size:9;tab-size:9}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"10\"]{-moz-tab-size:10;-o-tab-size:10;tab-size:10}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"11\"]{-moz-tab-size:11;-o-tab-size:11;tab-size:11}div#p>svg>foreignObject>section .tab-size[data-tab-size=\"12\"]{-moz-tab-size:12;-o-tab-size:12;tab-size:12}div#p>svg>foreignObject>section .task-list-item{list-style-type:none}div#p>svg>foreignObject>section .task-list-item+.task-list-item{margin-top:3px}div#p>svg>foreignObject>section .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}div#p>svg>foreignObject>section .hljs{background:#fff;color:#333;display:block;overflow-x:auto;padding:.5em}div#p>svg>foreignObject>section .hljs-comment,div#p>svg>foreignObject>section .hljs-meta{color:#969896}div#p>svg>foreignObject>section .hljs-emphasis,div#p>svg>foreignObject>section .hljs-quote,div#p>svg>foreignObject>section .hljs-strong,div#p>svg>foreignObject>section .hljs-template-variable,div#p>svg>foreignObject>section .hljs-variable{color:#df5000}div#p>svg>foreignObject>section .hljs-keyword,div#p>svg>foreignObject>section .hljs-selector-tag,div#p>svg>foreignObject>section .hljs-type{color:#d73a49}div#p>svg>foreignObject>section .hljs-attribute,div#p>svg>foreignObject>section .hljs-bullet,div#p>svg>foreignObject>section .hljs-literal,div#p>svg>foreignObject>section .hljs-symbol{color:#0086b3}div#p>svg>foreignObject>section .hljs-name,div#p>svg>foreignObject>section .hljs-section{color:#63a35c}div#p>svg>foreignObject>section .hljs-tag{color:#333}div#p>svg>foreignObject>section .hljs-attr,div#p>svg>foreignObject>section .hljs-selector-attr,div#p>svg>foreignObject>section .hljs-selector-class,div#p>svg>foreignObject>section .hljs-selector-id,div#p>svg>foreignObject>section .hljs-selector-pseudo,div#p>svg>foreignObject>section .hljs-title{color:#6f42c1}div#p>svg>foreignObject>section .hljs-addition{background-color:#eaffea;color:#55a532}div#p>svg>foreignObject>section .hljs-deletion{background-color:#ffecec;color:#bd2c00}div#p>svg>foreignObject>section .hljs-link{text-decoration:underline}div#p>svg>foreignObject>section .hljs-number{color:#005cc5}div#p>svg>foreignObject>section .hljs-string{color:#032f62}div#p>svg>foreignObject>section svg[data-marp-fitting=svg]{max-height:563px}div#p>svg>foreignObject>section h1{color:#246;font-size:1.6em}div#p>svg>foreignObject>section h1,div#p>svg>foreignObject>section h2{border-bottom:none}div#p>svg>foreignObject>section h2{font-size:1.3em}div#p>svg>foreignObject>section h3{font-size:1.1em}div#p>svg>foreignObject>section h4{font-size:1.05em}div#p>svg>foreignObject>section h5{font-size:1em}div#p>svg>foreignObject>section h6{font-size:.9em}div#p>svg>foreignObject>section h1 strong,div#p>svg>foreignObject>section h2 strong,div#p>svg>foreignObject>section h3 strong,div#p>svg>foreignObject>section h4 strong,div#p>svg>foreignObject>section h5 strong,div#p>svg>foreignObject>section h6 strong{color:#48c;font-weight:inherit}div#p>svg>foreignObject>section hr{height:0;padding-top:.25em}div#p>svg>foreignObject>section pre{border:1px solid #999;line-height:1.15;overflow:visible}div#p>svg>foreignObject>section pre code svg[data-marp-fitting=svg]{max-height:529px}div#p>svg>foreignObject>section footer,div#p>svg>foreignObject>section header{color:hsla(0,0%,40%,.75);font-size:18px;left:30px;margin:0;position:absolute}div#p>svg>foreignObject>section header{top:21px}div#p>svg>foreignObject>section footer{bottom:21px}div#p>svg>foreignObject>section{align-items:stretch;background:#fff;display:flex;flex-direction:column;flex-wrap:nowrap;font-size:29px;height:720px;justify-content:center;padding:78.5px;width:1280px}div#p>svg>foreignObject>section{--marpit-root-font-size:29px}div#p>svg>foreignObject>section>:last-child,div#p>svg>foreignObject>section[data-footer]>:nth-last-child(2){margin-bottom:0}div#p>svg>foreignObject>section>:first-child,div#p>svg>foreignObject>section>header:first-child+*{margin-top:0}div#p>svg>foreignObject>section:after{bottom:21px;color:#777;font-size:24px;padding:0;position:absolute;right:30px}div#p>svg>foreignObject>section:after{--marpit-root-font-size:24px}div#p>svg>foreignObject>section.invert{background-color:#222;color:#e6eaf0}div#p>svg>foreignObject>section.invert:after{color:#999}div#p>svg>foreignObject>section.invert img{background-color:transparent}div#p>svg>foreignObject>section.invert a{color:#50b3ff}div#p>svg>foreignObject>section.invert h1{color:#a3c5e7}div#p>svg>foreignObject>section.invert h2,div#p>svg>foreignObject>section.invert h3,div#p>svg>foreignObject>section.invert h4,div#p>svg>foreignObject>section.invert h5{color:#ebeff5}div#p>svg>foreignObject>section.invert blockquote,div#p>svg>foreignObject>section.invert h6{border-color:#3d3f43;color:#939699}div#p>svg>foreignObject>section.invert h1 strong,div#p>svg>foreignObject>section.invert h2 strong,div#p>svg>foreignObject>section.invert h3 strong,div#p>svg>foreignObject>section.invert h4 strong,div#p>svg>foreignObject>section.invert h5 strong,div#p>svg>foreignObject>section.invert h6 strong{color:#7bf}div#p>svg>foreignObject>section.invert hr{background-color:#3d3f43}div#p>svg>foreignObject>section.invert footer,div#p>svg>foreignObject>section.invert header{color:hsla(0,0%,60%,.75)}div#p>svg>foreignObject>section.invert code,div#p>svg>foreignObject>section.invert kbd{background-color:#111}div#p>svg>foreignObject>section.invert kbd{border-color:#666;box-shadow:inset 0 -1px 0 #555;color:#e6eaf0}div#p>svg>foreignObject>section.invert table tr{background-color:#12181d;border-color:#60657b}div#p>svg>foreignObject>section.invert table tr:nth-child(2n){background-color:#1b2024}div#p>svg>foreignObject>section.invert table td,div#p>svg>foreignObject>section.invert table th{border-color:#5b5e61}div#p>svg>foreignObject>section.invert pre{background-color:#0a0e12;border-color:#777}div#p>svg>foreignObject>section.invert pre code{background-color:transparent}div#p>svg>foreignObject>section[data-color] h1,div#p>svg>foreignObject>section[data-color] h2,div#p>svg>foreignObject>section[data-color] h3,div#p>svg>foreignObject>section[data-color] h4,div#p>svg>foreignObject>section[data-color] h5,div#p>svg>foreignObject>section[data-color] h6{color:currentColor}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]{columns:initial!important;display:block!important;padding:0!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=background]:before,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:after,div#p>svg>foreignObject>section[data-marpit-advanced-background=content]:before{display:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]{all:initial;display:flex;flex-direction:row;height:100%;overflow:hidden;width:100%}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container][data-marpit-advanced-background-direction=vertical]{flex-direction:column}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split]>div[data-marpit-advanced-background-container]{width:var(--marpit-advanced-background-split,50%)}div#p>svg>foreignObject>section[data-marpit-advanced-background=background][data-marpit-advanced-background-split=right]>div[data-marpit-advanced-background-container]{margin-left:calc(100% - var(--marpit-advanced-background-split, 50%))}div#p>svg>foreignObject>section[data-marpit-advanced-background=background]>div[data-marpit-advanced-background-container]>figure{all:initial;background-position:center;background-repeat:no-repeat;background-size:cover;flex:auto;margin:0}div#p>svg>foreignObject>section[data-marpit-advanced-background=content],div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo]{background:transparent!important}div#p>svg>foreignObject>section[data-marpit-advanced-background=pseudo],div#p>svg[data-marpit-svg]>foreignObject[data-marpit-advanced-background=pseudo]{pointer-events:none!important}div#p>svg>foreignObject>section[data-marpit-advanced-background-split]{width:100%;height:100%}</style></head><body><div class=\"bespoke-marp-osc\"><button data-bespoke-marp-osc=\"prev\" tabindex=\"-1\" title=\"Previous slide\">Previous slide</button><span data-bespoke-marp-osc=\"page\"></span><button data-bespoke-marp-osc=\"next\" tabindex=\"-1\" title=\"Next slide\">Next slide</button><button data-bespoke-marp-osc=\"fullscreen\" tabindex=\"-1\" title=\"Toggle fullscreen (f)\">Toggle fullscreen</button><button data-bespoke-marp-osc=\"presenter\" tabindex=\"-1\" title=\"Open presenter view (p)\">Open presenter view</button></div><div id=\"p\"><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"1\">\n<h1><svg data-marp-fitting=\"svg\"><foreignObject><span data-marp-fitting-svg-content> 程序员的996，每天工作安排</span></foreignObject></svg></h1>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"2\" data-background-color=\"green\" style=\"--background-color:green;background-color:green;background-image:none;\">\n<h1>上午</h1>\n<ul>\n<li>9:00\n<ul>\n<li>上班打卡，企业微信</li>\n<li>开早会</li>\n</ul>\n</li>\n<li>9:15\n<ul>\n<li>敏捷开发管理系统</li>\n<li>领取工作内容</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"3\">\n<ul>\n<li>9:30\n<ul>\n<li>开始工作</li>\n<li>和产品经理沟通，battle 打嘴仗<br />\n<img src=\"IMG_20210806_092900.jpg\" alt=\"\" /></li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"4\" data-background-color=\"green\" style=\"--background-color:green;background-color:green;background-image:none;\">\n<ul>\n<li>10:00\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n<li>11:00\n<ul>\n<li>摸鱼时间</li>\n<li>上厕所</li>\n<li>刷微博</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"5\" data-background-color=\"orange\" style=\"--background-color:orange;background-color:orange;background-image:none;\">\n<h2>中午</h2>\n<ul>\n<li>11:55\n<ul>\n<li>提前去食堂，避免排队<br />\n<img src=\"IMG_20210715_122251.jpg\" alt=\"11\" /></li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"6\" data-background-color=\"pink\" style=\"--background-color:pink;background-color:pink;background-image:none;\">\n<ul>\n<li>12:30\n<ul>\n<li>吃完</li>\n<li>回公司吹牛</li>\n</ul>\n</li>\n<li>13:00--&gt;14:00\n<ul>\n<li>叹空调，睡午觉</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"7\" data-background-color=\"red\" style=\"--background-color:red;background-color:red;background-image:none;\">\n<h1>下午</h1>\n<ul>\n<li>14:00\n<ul>\n<li>闹钟吵醒，洗脸上班</li>\n</ul>\n</li>\n<li>16:00\n<ul>\n<li>非常困倦</li>\n<li>摸鱼</li>\n</ul>\n</li>\n<li>18:00\n<ul>\n<li>准点离开公司</li>\n<li>吃饭</li>\n<li>散步</li>\n</ul>\n</li>\n</ul>\n</section>\n</foreignObject></svg><svg data-marpit-svg=\"\" viewBox=\"0 0 1280 720\"><foreignObject width=\"1280\" height=\"720\"><section id=\"8\" data-background-color=\"pink\" style=\"--background-color:pink;background-color:pink;background-image:none;\">\n<h1>晚上</h1>\n<ul>\n<li>19:00\n<ul>\n<li>加班</li>\n</ul>\n</li>\n<li>20:45\n<ul>\n<li>敏捷开发管理系统\n<ul>\n<li>提交工作进度</li>\n</ul>\n</li>\n</ul>\n</li>\n<li>21:00\n<ul>\n<li>下班打卡，企业微信</li>\n<li>准点离开公司</li>\n</ul>\n</li>\n</ul>\n</section>\n<script>!function(){\"use strict\";const t=\"marpitSVGPolyfill:setZoomFactor,\",e=Symbol();let r,o;function n(n){const i=\"object\"==typeof n&&n.target||document,a=\"object\"==typeof n?n.zoom:n;window[e]||(Object.defineProperty(window,e,{configurable:!0,value:!0}),window.addEventListener(\"message\",(({data:e,origin:r})=>{if(r===window.origin)try{if(e&&\"string\"==typeof e&&e.startsWith(t)){const[,t]=e.split(\",\"),r=Number.parseFloat(t);Number.isNaN(r)||(o=r)}}catch(t){console.error(t)}})));let l=!1;Array.from(i.querySelectorAll(\"svg[data-marpit-svg]\"),(t=>{var e,n,i,s;t.style.transform||(t.style.transform=\"translateZ(0)\");const c=a||o||t.currentScale||1;r!==c&&(r=c,l=c);const d=t.getBoundingClientRect(),{length:u}=t.children;for(let r=0;r<u;r+=1){const o=t.children[r],a=o.getScreenCTM();if(a){const t=null!==(n=null===(e=o.x)||void 0===e?void 0:e.baseVal.value)&&void 0!==n?n:0,r=null!==(s=null===(i=o.y)||void 0===i?void 0:i.baseVal.value)&&void 0!==s?s:0,l=o.firstElementChild,{style:u}=l;u.transformOrigin||(u.transformOrigin=`${-t}px ${-r}px`),u.transform=`scale(${c}) matrix(${a.a}, ${a.b}, ${a.c}, ${a.d}, ${a.e-d.left}, ${a.f-d.top}) translateZ(0.0001px)`}}})),!1!==l&&Array.from(i.querySelectorAll(\"iframe\"),(({contentWindow:e})=>{null==e||e.postMessage(`${t}${l}`,\"null\"===window.origin?\"*\":window.origin)}))}r=1,o=void 0;const i=(t,e,r)=>{if(t.getAttribute(e)!==r)return t.setAttribute(e,r),!0};function a({once:t=!1,target:e=document}={}){const r=\"Apple Computer, Inc.\"===navigator.vendor?[n]:[];let o=!t;const a=()=>{for(const t of r)t({target:e});!function(t=document){Array.from(t.querySelectorAll('svg[data-marp-fitting=\"svg\"]'),(t=>{var e;const r=t.firstChild,o=r.firstChild,{scrollWidth:n,scrollHeight:a}=o;let l,s=1;if(t.hasAttribute(\"data-marp-fitting-code\")&&(l=null===(e=t.parentElement)||void 0===e?void 0:e.parentElement),t.hasAttribute(\"data-marp-fitting-math\")&&(l=t.parentElement),l){const t=getComputedStyle(l),e=Math.ceil(l.clientWidth-parseFloat(t.paddingLeft||\"0\")-parseFloat(t.paddingRight||\"0\"));e&&(s=e)}const c=Math.max(n,s),d=Math.max(a,1),u=`0 0 ${c} ${d}`;i(r,\"width\",`${c}`),i(r,\"height\",`${d}`),i(t,\"preserveAspectRatio\",getComputedStyle(t).getPropertyValue(\"--preserve-aspect-ratio\")||\"xMinYMin meet\"),i(t,\"viewBox\",u)&&t.classList.toggle(\"__reflow__\")}))}(e),o&&window.requestAnimationFrame(a)};return a(),()=>{o=!1}}const l=Symbol(),s=document.currentScript;((t=document)=>{if(\"undefined\"==typeof window)throw new Error(\"Marp Core's browser script is valid only in browser context.\");if(t[l])return t[l];const e=a({target:t}),r=()=>{e(),delete t[l]};Object.defineProperty(t,l,{configurable:!0,value:r})})(s?s.getRootNode():document)}();\n</script></foreignObject></svg></div><div class=\"bespoke-marp-note\" data-index=\"1\" tabindex=\"0\"><p>fit</p></div><script>/*!! License: https://unpkg.com/@marp-team/marp-cli@1.2.0/lib/bespoke.js.LICENSE.txt */\n!function(){\"use strict\";var e=function(e,t){var n,r=1===(e.parent||e).nodeType?e.parent||e:document.querySelector(e.parent||e),a=[].filter.call(\"string\"==typeof e.slides?r.querySelectorAll(e.slides):e.slides||r.children,(function(e){return\"SCRIPT\"!==e.nodeName})),s={},i=function(e,t){return(t=t||{}).index=a.indexOf(e),t.slide=e,t},o=function(e,t){s[e]=(s[e]||[]).filter((function(e){return e!==t}))},l=function(e,t){return(s[e]||[]).reduce((function(e,n){return e&&!1!==n(t)}),!0)},c=function(e,t){a[e]&&(n&&l(\"deactivate\",i(n,t)),n=a[e],l(\"activate\",i(n,t)))},d=function(e,t){var r=a.indexOf(n)+e;l(e>0?\"next\":\"prev\",i(n,t))&&c(r,t)},u={off:o,on:function(e,t){return(s[e]||(s[e]=[])).push(t),o.bind(null,e,t)},fire:l,slide:function(e,t){if(!arguments.length)return a.indexOf(n);l(\"slide\",i(a[e],t))&&c(e,t)},next:d.bind(null,1),prev:d.bind(null,-1),parent:r,slides:a,destroy:function(e){l(\"destroy\",i(n,e)),s={}}};return(t||[]).forEach((function(e){e(u)})),n||c(0),u};function t(e){e.parent.classList.add(\"bespoke-marp-parent\"),e.slides.forEach((e=>e.classList.add(\"bespoke-marp-slide\"))),e.on(\"activate\",(t=>{const n=t.slide,r=!n.classList.contains(\"bespoke-marp-active\");e.slides.forEach((e=>{e.classList.remove(\"bespoke-marp-active\"),e.setAttribute(\"aria-hidden\",\"true\")})),n.classList.add(\"bespoke-marp-active\"),n.removeAttribute(\"aria-hidden\"),r&&(n.classList.add(\"bespoke-marp-active-ready\"),document.body.clientHeight,n.classList.remove(\"bespoke-marp-active-ready\"))}))}function n(e){let t=0,n=0;Object.defineProperty(e,\"fragments\",{enumerable:!0,value:e.slides.map((e=>[null,...e.querySelectorAll(\"[data-marpit-fragment]\")]))});const r=r=>void 0!==e.fragments[t][n+r],a=(r,a)=>{t=r,n=a,e.fragments.forEach(((e,t)=>{e.forEach(((e,n)=>{if(null==e)return;const s=t<r||t===r&&n<=a;e.setAttribute(\"data-bespoke-marp-fragment\",s?\"active\":\"inactive\"),t===r&&n===a?e.setAttribute(\"data-bespoke-marp-current-fragment\",\"current\"):e.removeAttribute(\"data-bespoke-marp-current-fragment\")}))})),e.fragmentIndex=a;const s={slide:e.slides[r],index:r,fragments:e.fragments[r],fragmentIndex:a};e.fire(\"fragment\",s)};e.on(\"next\",(({fragment:s=!0})=>{if(s){if(r(1))return a(t,n+1),!1;const s=t+1;e.fragments[s]&&a(s,0)}else{const r=e.fragments[t].length;if(n+1<r)return a(t,r-1),!1;const s=e.fragments[t+1];s&&a(t+1,s.length-1)}})),e.on(\"prev\",(({fragment:s=!0})=>{if(r(-1)&&s)return a(t,n-1),!1;const i=t-1;e.fragments[i]&&a(i,e.fragments[i].length-1)})),e.on(\"slide\",(({index:t,fragment:n})=>{let r=0;if(void 0!==n){const a=e.fragments[t];if(a){const{length:e}=a;r=-1===n?e-1:Math.min(Math.max(n,0),e-1)}}a(t,r)})),a(0,0)}var r,a={exports:{}};r=a,function(){var e=\"undefined\"!=typeof window&&void 0!==window.document?window.document:{},t=r.exports,n=function(){for(var t,n=[[\"requestFullscreen\",\"exitFullscreen\",\"fullscreenElement\",\"fullscreenEnabled\",\"fullscreenchange\",\"fullscreenerror\"],[\"webkitRequestFullscreen\",\"webkitExitFullscreen\",\"webkitFullscreenElement\",\"webkitFullscreenEnabled\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"webkitRequestFullScreen\",\"webkitCancelFullScreen\",\"webkitCurrentFullScreenElement\",\"webkitCancelFullScreen\",\"webkitfullscreenchange\",\"webkitfullscreenerror\"],[\"mozRequestFullScreen\",\"mozCancelFullScreen\",\"mozFullScreenElement\",\"mozFullScreenEnabled\",\"mozfullscreenchange\",\"mozfullscreenerror\"],[\"msRequestFullscreen\",\"msExitFullscreen\",\"msFullscreenElement\",\"msFullscreenEnabled\",\"MSFullscreenChange\",\"MSFullscreenError\"]],r=0,a=n.length,s={};r<a;r++)if((t=n[r])&&t[1]in e){for(r=0;r<t.length;r++)s[n[0][r]]=t[r];return s}return!1}(),a={change:n.fullscreenchange,error:n.fullscreenerror},s={request:function(t,r){return new Promise(function(a,s){var i=function(){this.off(\"change\",i),a()}.bind(this);this.on(\"change\",i);var o=(t=t||e.documentElement)[n.requestFullscreen](r);o instanceof Promise&&o.then(i).catch(s)}.bind(this))},exit:function(){return new Promise(function(t,r){if(this.isFullscreen){var a=function(){this.off(\"change\",a),t()}.bind(this);this.on(\"change\",a);var s=e[n.exitFullscreen]();s instanceof Promise&&s.then(a).catch(r)}else t()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on(\"change\",e)},onerror:function(e){this.on(\"error\",e)},on:function(t,n){var r=a[t];r&&e.addEventListener(r,n,!1)},off:function(t,n){var r=a[t];r&&e.removeEventListener(r,n,!1)},raw:n};n?(Object.defineProperties(s,{isFullscreen:{get:function(){return Boolean(e[n.fullscreenElement])}},element:{enumerable:!0,get:function(){return e[n.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(e[n.fullscreenEnabled])}}}),t?r.exports=s:window.screenfull=s):t?r.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}();var s=a.exports;function i(e){e.fullscreen=()=>{s.isEnabled&&s.toggle(document.body)},document.addEventListener(\"keydown\",(t=>{\"f\"!==t.key&&\"F11\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||!s.isEnabled||(e.fullscreen(),t.preventDefault())}))}function o(e=2e3){return t=>{let n;function r(){n&&clearTimeout(n),n=setTimeout((()=>{t.parent.classList.add(\"bespoke-marp-inactive\"),t.fire(\"marp-inactive\")}),e),t.parent.classList.contains(\"bespoke-marp-inactive\")&&(t.parent.classList.remove(\"bespoke-marp-inactive\"),t.fire(\"marp-active\"))}document.addEventListener(\"mousedown\",r),document.addEventListener(\"mousemove\",r),document.addEventListener(\"touchend\",r),setTimeout(r,0)}}const l=[\"AUDIO\",\"BUTTON\",\"INPUT\",\"SELECT\",\"TEXTAREA\",\"VIDEO\"];function c(e){e.parent.addEventListener(\"keydown\",(e=>{if(!e.target)return;const t=e.target;(l.includes(t.nodeName)||\"true\"===t.contentEditable)&&e.stopPropagation()}))}function d(e){window.addEventListener(\"load\",(()=>{for(const t of e.slides){const e=t.querySelector(\"[data-marp-fitting]\")?\"\":\"hideable\";t.setAttribute(\"data-bespoke-marp-load\",e)}}))}var u;function f({interval:e=250}={}){return t=>{document.addEventListener(\"keydown\",(e=>{if(\" \"===e.key&&e.shiftKey)t.prev();else if(\"ArrowLeft\"===e.key||\"ArrowUp\"===e.key||\"PageUp\"===e.key)t.prev({fragment:!e.shiftKey});else if(\" \"!==e.key||e.shiftKey)if(\"ArrowRight\"===e.key||\"ArrowDown\"===e.key||\"PageDown\"===e.key)t.next({fragment:!e.shiftKey});else if(\"End\"===e.key)t.slide(t.slides.length-1,{fragment:-1});else{if(\"Home\"!==e.key)return;t.slide(0)}else t.next();e.preventDefault()}));let n,r,a=0;t.parent.addEventListener(\"wheel\",(s=>{let i=!1;const o=(e,t)=>{e&&(i=i||function(e,t){return function(e,t){const n=t===u.X?\"Width\":\"Height\";return e[`client${n}`]<e[`scroll${n}`]}(e,t)&&function(e,t){const{overflow:n}=e,r=e[`overflow${t}`];return\"auto\"===n||\"scroll\"===n||\"auto\"===r||\"scroll\"===r}(getComputedStyle(e),t)}(e,t)),(null==e?void 0:e.parentElement)&&o(e.parentElement,t)};if(0!==s.deltaX&&o(s.target,u.X),0!==s.deltaY&&o(s.target,u.Y),i)return;s.preventDefault();const l=Math.sqrt(Math.pow(s.deltaX,2)+Math.pow(s.deltaY,2));if(void 0!==s.wheelDelta){if(void 0===s.webkitForce&&Math.abs(s.wheelDelta)<40)return;if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<4)return}else if(s.deltaMode===s.DOM_DELTA_PIXEL&&l<12)return;r&&clearTimeout(r),r=setTimeout((()=>{n=0}),e);const c=Date.now()-a<e,d=l<=n;if(n=l,c||d)return;let f;(s.deltaX>0||s.deltaY>0)&&(f=\"next\"),(s.deltaX<0||s.deltaY<0)&&(f=\"prev\"),f&&(t[f](),a=Date.now())}))}}!function(e){e.X=\"X\",e.Y=\"Y\"}(u||(u={}));const p=(...e)=>history.replaceState(...e),m=\"data-bespoke-view\",g=\"presenter\",h=\"next\",v=[\"\",g,h],b=(e,{protocol:t,host:n,pathname:r,hash:a}=location)=>{const s=e.toString();return`${t}//${n}${r}${s?\"?\":\"\"}${s}${a}`},w=()=>{const e=document.body.getAttribute(m);if(v.includes(e))return e;throw new Error(\"View mode is not assigned.\")},y=e=>new URLSearchParams(location.search).get(e),k=(e,t={})=>{var n;const r=Object.assign({location:location,setter:p},t),a=new URLSearchParams(r.location.search);for(const t of Object.keys(e)){const n=e[t];\"string\"==typeof n?a.set(t,n):a.delete(t)}try{r.setter(Object.assign({},null!==(n=window.history.state)&&void 0!==n?n:{}),\"\",b(a,r.location))}catch(e){console.error(e)}},E={available:(()=>{try{return localStorage.setItem(\"bespoke-marp\",\"bespoke-marp\"),localStorage.removeItem(\"bespoke-marp\"),!0}catch(e){return console.warn(\"Warning: Using localStorage is restricted in the current host so some features may not work.\"),!1}})(),get:e=>{try{return localStorage.getItem(e)}catch(e){return null}},set:(e,t)=>{try{return localStorage.setItem(e,t),!0}catch(e){return!1}},remove:e=>{try{return localStorage.removeItem(e),!0}catch(e){return!1}}};function x(e=\".bespoke-marp-osc\"){const t=document.querySelector(e);if(!t)return()=>{};const n=(e,n)=>{t.querySelectorAll(`[data-bespoke-marp-osc=${JSON.stringify(e)}]`).forEach(n)};return s.isEnabled||n(\"fullscreen\",(e=>e.style.display=\"none\")),E.available||n(\"presenter\",(e=>{e.disabled=!0,e.title=\"Presenter view is disabled due to restricted localStorage.\"})),e=>{t.addEventListener(\"click\",(t=>{if(t.target instanceof HTMLElement){const{bespokeMarpOsc:n}=t.target.dataset;switch(n&&t.target.blur(),n){case\"next\":e.next({fragment:!t.shiftKey});break;case\"prev\":e.prev({fragment:!t.shiftKey});break;case\"fullscreen\":\"function\"==typeof e.fullscreen&&s.isEnabled&&e.fullscreen();break;case\"presenter\":e.openPresenterView()}}})),e.parent.appendChild(t),e.on(\"activate\",(({index:t})=>{n(\"page\",(n=>n.textContent=`Page ${t+1} of ${e.slides.length}`))})),e.on(\"fragment\",(({index:t,fragments:r,fragmentIndex:a})=>{n(\"prev\",(e=>e.disabled=0===t&&0===a)),n(\"next\",(n=>n.disabled=t===e.slides.length-1&&a===r.length-1))})),e.on(\"marp-active\",(()=>t.removeAttribute(\"aria-hidden\"))),e.on(\"marp-inactive\",(()=>t.setAttribute(\"aria-hidden\",\"true\"))),s.isEnabled&&s.onchange((()=>n(\"fullscreen\",(e=>e.classList.toggle(\"exit\",s.isEnabled&&s.isFullscreen)))))}}function L(e){window.addEventListener(\"message\",(t=>{if(t.origin!==window.origin)return;const[n,r]=t.data.split(\":\");if(\"navigate\"===n){const[t,n]=r.split(\",\");let a=Number.parseInt(t,10),s=Number.parseInt(n,10)+1;s>=e.fragments[a].length&&(a+=1,s=0),e.slide(a,{fragment:s})}}))}function S(e){if(!(e=>e.syncKey&&\"string\"==typeof e.syncKey)(e))throw new Error(\"The current instance of Bespoke.js is invalid for Marp bespoke presenter plugin.\");Object.defineProperties(e,{openPresenterView:{enumerable:!0,value:M},presenterUrl:{enumerable:!0,get:I}}),E.available&&document.addEventListener(\"keydown\",(t=>{\"p\"!==t.key||t.altKey||t.ctrlKey||t.metaKey||(t.preventDefault(),e.openPresenterView())}))}function M(){const e=Math.max(Math.floor(.85*window.innerWidth),640),t=Math.max(Math.floor(.85*window.innerHeight),360);return window.open(this.presenterUrl,`bespoke-marp-presenter-${this.syncKey}`,`width=${e},height=${t},menubar=no,toolbar=no`)}function I(){const e=new URLSearchParams(location.search);return e.set(\"view\",\"presenter\"),e.set(\"sync\",this.syncKey),b(e)}var P=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"];let O=e=>String(e).replace(/[&<>\"']/g,(e=>`&${F[e]};`)),F={\"&\":\"amp\",\"<\":\"lt\",\">\":\"gt\",'\"':\"quot\",\"'\":\"apos\"},$=\"dangerouslySetInnerHTML\",A={className:\"class\",htmlFor:\"for\"},T={};function q(e,t){let n=[],r=\"\";t=t||{};for(let e=arguments.length;e-- >2;)n.push(arguments[e]);if(\"function\"==typeof e)return t.children=n.reverse(),e(t);if(e){if(r+=\"<\"+e,t)for(let e in t)!1!==t[e]&&null!=t[e]&&e!==$&&(r+=` ${A[e]?A[e]:O(e)}=\"${O(t[e])}\"`);r+=\">\"}if(-1===P.indexOf(e)){if(t[$])r+=t[$].__html;else for(;n.length;){let e=n.pop();if(e)if(e.pop)for(let t=e.length;t--;)n.push(e[t]);else r+=!0===T[e]?e:O(e)}r+=e?`</${e}>`:\"\"}return T[r]=!0,r}const K=({children:e})=>q(null,null,...e),N=\"bespoke-marp-presenter-container\",C=\"bespoke-marp-presenter-next\",D=\"bespoke-marp-presenter-next-container\",j=\"bespoke-marp-presenter-note-container\",X=\"bespoke-marp-presenter-info-container\",R=\"bespoke-marp-presenter-info-page\",U=\"bespoke-marp-presenter-info-page-text\",B=\"bespoke-marp-presenter-info-page-prev\",V=\"bespoke-marp-presenter-info-page-next\",Y=\"bespoke-marp-presenter-info-time\",H=\"bespoke-marp-presenter-info-timer\";function z(e){const{title:t}=document;document.title=\"[Presenter view]\"+(t?` - ${t}`:\"\");const n={},r=e=>(n[e]=n[e]||document.querySelector(`.${e}`),n[e]);document.body.appendChild((e=>{const t=document.createElement(\"div\");return t.className=N,t.appendChild(e),t.insertAdjacentHTML(\"beforeend\",q(K,null,q(\"div\",{class:D},q(\"iframe\",{class:C,src:\"?view=next\"})),q(\"div\",{class:j}),q(\"div\",{class:X},q(\"div\",{class:R},q(\"button\",{class:B,tabindex:\"-1\",title:\"Previous\"},\"Previous\"),q(\"span\",{class:U}),q(\"button\",{class:V,tabindex:\"-1\",title:\"Next\"},\"Next\")),q(\"time\",{class:Y,title:\"Current time\"}),q(\"div\",{class:H})))),t})(e.parent)),(e=>{r(D).addEventListener(\"click\",(()=>e.next()));const t=r(C),n=(a=t,(e,t)=>{var n;return null===(n=a.contentWindow)||void 0===n?void 0:n.postMessage(`navigate:${e},${t}`,\"null\"===window.origin?\"*\":window.origin)});var a;t.addEventListener(\"load\",(()=>{r(D).classList.add(\"active\"),n(e.slide(),e.fragmentIndex),e.on(\"fragment\",(({index:e,fragmentIndex:t})=>n(e,t)))}));const s=document.querySelectorAll(\".bespoke-marp-note\");s.forEach((e=>{e.addEventListener(\"keydown\",(e=>e.stopPropagation())),r(j).appendChild(e)})),e.on(\"activate\",(()=>s.forEach((t=>t.classList.toggle(\"active\",t.dataset.index==e.slide()))))),e.on(\"activate\",(({index:t})=>{r(U).textContent=`${t+1} / ${e.slides.length}`}));const i=r(B),o=r(V);i.addEventListener(\"click\",(t=>{i.blur(),e.prev({fragment:!t.shiftKey})})),o.addEventListener(\"click\",(t=>{o.blur(),e.next({fragment:!t.shiftKey})})),e.on(\"fragment\",(({index:t,fragments:n,fragmentIndex:r})=>{i.disabled=0===t&&0===r,o.disabled=t===e.slides.length-1&&r===n.length-1}));const l=()=>r(Y).textContent=(new Date).toLocaleTimeString();l(),setInterval(l,250)})(e)}function _(e){const t=w();return t===h&&e.appendChild(document.createElement(\"span\")),{\"\":S,[g]:z,[h]:L}[t]}function J(e){e.on(\"activate\",(t=>{document.querySelectorAll(\".bespoke-progress-parent > .bespoke-progress-bar\").forEach((n=>{n.style.flexBasis=100*t.index/(e.slides.length-1)+\"%\"}))}))}const W=e=>{const t=Number.parseInt(e,10);return Number.isNaN(t)?null:t};function G(e={}){const t=Object.assign({history:!0},e);return e=>{let n=!0;const r=e=>{const t=n;try{return n=!0,e()}finally{n=t}},a=(t={fragment:!0})=>{((t,n)=>{const{fragments:r,slides:a}=e,s=Math.max(0,Math.min(t,a.length-1)),i=Math.max(0,Math.min(n||0,r[s].length-1));s===e.slide()&&i===e.fragmentIndex||e.slide(s,{fragment:i})})((W(location.hash.slice(1))||1)-1,t.fragment?W(y(\"f\")||\"\"):null)};e.on(\"fragment\",(({index:e,fragmentIndex:r})=>{n||k({f:0===r||r.toString()},{location:Object.assign(Object.assign({},location),{hash:`#${e+1}`}),setter:(...e)=>t.history?history.pushState(...e):history.replaceState(...e)})})),setTimeout((()=>{a(),window.addEventListener(\"hashchange\",(()=>r((()=>{a({fragment:!1}),k({f:void 0})})))),window.addEventListener(\"popstate\",(()=>{n||r((()=>a()))})),n=!1}),0)}}function Q(e={}){var t;const n=e.key||(null===(t=window.history.state)||void 0===t?void 0:t.marpBespokeSyncKey)||Math.random().toString(36).slice(2),r=`bespoke-marp-sync-${n}`;var a;a={marpBespokeSyncKey:n},k({},{setter:(e,...t)=>p(Object.assign(Object.assign({},e),a),...t)});const s=()=>{const e=E.get(r);return e?JSON.parse(e):Object.create(null)},i=e=>{const t=s(),n=Object.assign(Object.assign({},t),e(t));return E.set(r,JSON.stringify(n)),n},o=()=>{window.removeEventListener(\"pageshow\",o),i((e=>({reference:(e.reference||0)+1})))};return e=>{o(),Object.defineProperty(e,\"syncKey\",{value:n,enumerable:!0});let t=!0;setTimeout((()=>{e.on(\"fragment\",(e=>{t&&i((()=>({index:e.index,fragmentIndex:e.fragmentIndex})))}))}),0),window.addEventListener(\"storage\",(n=>{if(n.key===r&&n.oldValue&&n.newValue){const r=JSON.parse(n.oldValue),a=JSON.parse(n.newValue);if(r.index!==a.index||r.fragmentIndex!==a.fragmentIndex)try{t=!1,e.slide(a.index,{fragment:a.fragmentIndex})}finally{t=!0}}}));const a=()=>{const{reference:e}=s();void 0===e||e<=1?E.remove(r):i((()=>({reference:e-1})))};window.addEventListener(\"pagehide\",(e=>{e.persisted&&window.addEventListener(\"pageshow\",o),a()})),e.on(\"destroy\",a)}}function Z({slope:e=Math.tan(-35*Math.PI/180),swipeThreshold:t=30}={}){return n=>{let r;const a=n.parent,s=e=>{const t=a.getBoundingClientRect();return{x:e.pageX-(t.left+t.right)/2,y:e.pageY-(t.top+t.bottom)/2}};a.addEventListener(\"touchstart\",(e=>{r=1===e.touches.length?s(e.touches[0]):void 0}),{passive:!0}),a.addEventListener(\"touchmove\",(e=>{if(r)if(1===e.touches.length){e.preventDefault();const t=s(e.touches[0]),n=t.x-r.x,a=t.y-r.y;r.delta=Math.sqrt(Math.pow(Math.abs(n),2)+Math.pow(Math.abs(a),2)),r.radian=Math.atan2(n,a)}else r=void 0})),a.addEventListener(\"touchend\",(a=>{if(r){if(r.delta&&r.delta>=t&&r.radian){let t=r.radian-e;t=(t+Math.PI)%(2*Math.PI)-Math.PI,n[t<0?\"next\":\"prev\"](),a.stopPropagation()}r=void 0}}),{passive:!0})}}function ee(e,t,n,r){return new(n||(n=Promise))((function(a,s){function i(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,o)}l((r=r.apply(e,t||[])).next())}))}let te;const ne=()=>(void 0===te&&(te=\"wakeLock\"in navigator&&navigator.wakeLock),te),re=()=>ee(void 0,void 0,void 0,(function*(){const e=ne();if(e)try{return yield e.request(\"screen\")}catch(e){console.warn(e)}return null}));function ae(){return ee(this,void 0,void 0,(function*(){if(!ne())return;let e;const t=()=>{e&&\"visible\"===document.visibilityState&&re()};return document.addEventListener(\"visibilitychange\",t),document.addEventListener(\"fullscreenchange\",t),e=yield re(),e}))}!function(r=document.getElementById(\"p\")){document.body.setAttribute(m,(()=>{const e=y(\"view\");return e===h||e===g?e:\"\"})());const a=(e=>{const t=y(e);return k({[e]:void 0}),t})(\"sync\")||void 0,s=!1,l=!0;e(r,((...e)=>{const t=v.findIndex((e=>w()===e));if(t<0)throw new Error(\"Invalid view\");return e.map((([e,n])=>e[t]&&n)).filter((e=>e))})([[l,l,s],Q({key:a})],[[l,l,l],_(r)],[[l,l,s],c],[[l,l,l],t],[[l,s,s],o()],[[l,l,l],d],[[l,l,l],G({history:!1})],[[l,l,s],f()],[[l,l,s],i],[[l,s,s],J],[[l,l,s],Z()],[[l,s,s],x()],[[l,l,l],n],[[l,l,s],ae]))}()}();</script></body></html>"
  },
  {
    "path": "2021/8-15-Marp-ppt/demo.md",
    "content": "\n# 程序员的996，每天工作安排\n## 上午\n- 9:00\n    - 上班打卡，企业微信\n    - 开早会\n- 9:15\n    - 敏捷开发管理系统\n    - 领取工作内容\n- 9:30\n    - 开始工作\n    - 和产品经理沟通，battle 打嘴仗\n    \n- 10:00\n    - 摸鱼时间\n    - 上厕所\n    - 刷微博\n- 11:00\n    - 摸鱼时间\n    - 上厕所\n    - 刷微博\n\n## 中午\n- 11:55\n    - 提前去食堂，避免排队\n- 12:20\n    - 吃完\n    - 回公司吹牛\n- 13:00-->14:00\n    - 叹空调，睡午觉\n\n## 下午\n- 14:00\n    - 闹钟吵醒，洗脸上班\n- 16:00\n    - 非常困倦\n    - 摸鱼\n- 18:00\n    - 准点离开公司\n    - 吃饭\n    - 散步\n\n## 晚上\n- 19:00\n    - 加班\n- 20:45\n    - 敏捷开发管理系统\n        - 提交工作进度\n- 21:00\n    - 下班打卡，企业微信\n    - 准点离开公司"
  },
  {
    "path": "2021/9-3-Deta-Base/BaseDemo/config.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   config.py\n@Time    :   2021/09/03 09:47:46\n@Author  :   GH\n@Desc    :   \n'''\n\nproject_key = \"xxx\"\n"
  },
  {
    "path": "2021/9-3-Deta-Base/BaseDemo/main.py",
    "content": "# -*- encoding: utf-8 -*-\n'''\n@File    :   main.py\n@Time    :   2021/08/01 16:26:39\n@Author  :   GH\n@Desc    :   \n\n执行 \nuvicorn main:app\n\n'''\nfrom typing import Optional\nfrom fastapi.params import Body\nfrom pydantic import BaseModel\nfrom fastapi import FastAPI\nfrom deta import Deta\nfrom config import project_key\n\ndeta = Deta(project_key)\ndb = deta.Base(\"baseItem\")\n\napp = FastAPI()\n\n\nclass Item(BaseModel):\n    key: Optional[str] = None\n    name: Optional[str] = None\n    age: Optional[int] = None\n\n\n@app.get(\"/\")\ndef read_root():\n    return {\"Hello\": \"World, great day! 数据库NoSQL\"}\n\n\n@app.put(\"/items/\")\ndef put_item(item: Item):\n    print(\"item_id:\", item)\n    # TODO 存入数据库\n    del item.key\n    rs = db.put(item.dict())\n    return {\"item\": item, 'put': rs}\n\n\n@app.get(\"/items/{key}\")\ndef read_item(key: str):  # 1orwum5g2grm\n    print(\"item_id:\", key)\n    rs = db.get(key)\n    return {\"item\": rs}\n\n\n@app.put(\"/items/update\")\ndef update_item(item: Item):\n\n    # rs = db.update({'age': item.age, 'name': item.name}, key=item.key)\n    rs = db.put(item.dict())  # 直接更新\n\n    return {\"update\": rs}\n\n\n@app.delete(\"/items/{key}\")\ndef delete_item(key: str):\n    rs = db.delete(key)\n    return {\"delete\": rs}\n"
  },
  {
    "path": "2021/9-3-Deta-Base/BaseDemo/requirements.txt",
    "content": "fastapi\n"
  },
  {
    "path": "2021/9-3-Deta-Base/README.md",
    "content": "\n\n\n## Deta.sh 免费数据库NoSQL ： Base\n\n\n- 文档\n    - https://docs.deta.sh/docs/base/sdk/\n\n- 视频 ？"
  },
  {
    "path": "README.md",
    "content": "# [Programer_Log 我的程序员日志](https://github.com/makelove/Programer_Log)\n\n\n- 有问题，请写到issue里面\n    - 加我微信WeChat: sexy8dream\n\n- 因为raw.githubusercontent.com被墙了，你们会看到图片挂了\n    - 加入/etc/hosts\n        - 151.101.156.133 raw.githubusercontent.com\n            - India印度服务器\n- 下载download\n    - Download ZIP\n    - git\n        - git clone https://github.com/makelove/Programer_Log.git\n        - 更新 git fetch origin master  \n\n- Donate点赞打赏，助人为乐^_^\n    - <img src=\"wechat_donate.jpg\" width = \"200\" height = \"261\" alt=\"wechat_donate\"  />\n\n\n- 重要列表\n    - [越狱？最简单的代理服务器Go，翻墙，Chrome插件](2020/2-26-Go_Proxy_server)\n        - 在国外服务器Azure测试了，不能直接使用，需要加密算法，。很容易被识别,被拦截\n            - curl -x 168.62.xxx.xxx:8081 https://httpbin.org/ip\n                - 正常返回IP\n            - curl -x 168.62.xxx.xxx:8081 https://kh.google.com\n                - curl: (56) Recv failure: Connection reset by peer"
  }
]