惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AI
AI
T
Tailwind CSS Blog
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
P
Proofpoint News Feed
D
Docker
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
云风的 BLOG
云风的 BLOG
有赞技术团队
有赞技术团队
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
酷 壳 – CoolShell
酷 壳 – CoolShell
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
博客园 - Franky
The GitHub Blog
The GitHub Blog
月光博客
月光博客
小众软件
小众软件
Martin Fowler
Martin Fowler
P
Palo Alto Networks Blog
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
T
Threat Research - Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
K
Kaspersky official blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Securelist
Spread Privacy
Spread Privacy
博客园 - 聂微东
B
Blog
The Hacker News
The Hacker News
Simon Willison's Weblog
Simon Willison's Weblog
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
P
Privacy International News Feed
腾讯CDC
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threatpost
T
Tenable Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Heimdal Security Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
告别爱优腾,0成本打造云上影音库|新人报道 - 少数派
2023-03-14 · via 少数派

Q1: 介绍一下我自己

我呢就是一个苦逼的又穷苦的学生党,目前在华科读物理博士,喜欢在苦逼的科研生活中倒腾一些科技玩意儿。

Q2:你目前正在主力使用的设备有哪些?

丐中丐256+16G M1 Mac mini,1T+64G M1 Max MBP,再加上一块亏出翔的18年的iPad Pro。最近把我的mini变成了一个mini的服务器,拉满了,插了3块硬盘,一块1T SSD、一块2T、一块4THDD。

Q3:哪些 App 对你的工作 / 学习 / 生活最重要?

  1. 工作:Python,Matlab,VSCode,iTerm2,NeoVim
  2. 学习:Zotero,MarginNote3,GoodNotes3,Notability
  3. 生活:微信,Infuse,天气App

Q4:在你订阅的付费服务当中哪一些是不可或缺的?

机场


接下来让我们进入正题!

在这篇文章中我想简要介绍一下如何0成本的打造一个能够随时随地访问的云上NAS,直接秒杀爱优腾,没有高昂的费用,无需购买任何东西,简直就是穷苦学生的福星。

网盘神器AList

接下来讲讲我们的主角AList,他其实本身是一个网盘管理工具,方便人们把众多的网盘整合起来一起管理。AList 的安装和使用可谓是有手就行了,并且支持多平台,macOS,Windows 和 Linux 都能流畅运行,具体的安装和教程官网都记载的很详细了,我就不在这里多做介绍了。

AList最牛的是他能够让你批量的管理你的网盘,并且,别人通过你搭建的AList访问这些资源时,并不占用你的带宽,而是他们和网盘直接链接,你的AList只是作为一个转发。

AList官方文档

内网穿透CPolar

那么在安装好AList并且挂载了满满的网盘资源之后,如何能够让自己的小伙伴们也能访问呢,我们不需要购买昂贵的服务器,也不需要公网IP,只需要做一个内网穿透即可,把AList监听的端口暴露给公网以供访问就OK了。

cpolar是一个易用的内网穿透工具,我们这里就主要是通过它来把我们的 AList 暴露在公网上,来实现随地访问。

CPolar官网

cpolar的安装也是有手就行,直接照着官方文档来就行。

在安装并启用了cpolar之后,到浏览器输入127.0.0.1:9200访问cpolar的web-ui

cpolar web-ui

用你注册的账号密码登陆后,按照下图操作创建一个http隧道来暴露AList端口,5244为AList的默认监听端口,如果你自定义了就把他换成你自定义的端口。

创建好之后就能够在状态里的在线隧道列表中看到刚刚创建的隧道了,接下来只用记录下公网地址就能随地的登陆和享受了😎

在线隧道列表

WebDAV

AList的在线播放器能够播放绝大部分的视频,但是对于一些4K,杜比或者HDR的视频,在线播放器还是难以满足,这时就需要一个支持WebDAV的播放器,例如Mac端的Infuse,Win的PotPlayer,iOS和Android的nPlayer。挂载也很简单,以infuse为例

Infuse WebDAV

之后就可以随处随地安心享受了,enjoy!

放几张我自己搭的

网站
Infuse

AList的美化代码也贴一下,主要是参考的B站安稳大神的视频

放在AList管理中设置的全局选项内

header

h<!-- 改自B站美化教程https://www.bilibili.com/video/BV1Wg41187Bf/?spm_id_from=333.788&vd_source=056118101dc003c0df303e05a9e6a3e2 -->
<!--Alist V3建议添加的,已经默认添加了,如果你的没有建议加上-->
<script src="https://polyfill.io/v3/polyfill.min.js?features=String.prototype.replaceAll"></script>

<!--引入字体,全局字体使用-->
<link
  rel="stylesheet"
  href="https://npm.elemecdn.com/lxgw-wenkai-webfont@1.1.0/lxgwwenkai-regular.css"
/>

<!-- Font6,自定义底部使用和看板娘使用的图标和字体文件-->
<link
  type="text/css"
  rel="stylesheet"
  href="https://npm.elemecdn.com/font6pro@6.0.1/css/fontawesome.min.css"
  media="all"
/>
<link
  href="https://npm.elemecdn.com/font6pro@6.0.1/css/all.min.css"
  rel="stylesheet"
/>

<!--音乐播放器所用的文件-->
<!-- require APlayer -->
<link
  rel="stylesheet"
  href="https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.css"
/>
<script src="https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.js"></script>
<!-- require MetingJS -->
<script src="https://npm.elemecdn.com/meting@2.0.1/dist/Meting.min.js"></script>

<style>
  /* 去除通知栏 右上角 X */
  .notify-render .hope-close-button {
    display: none;
  }

  /* 
            樱花:https://www.dmoe.cc
            夏沫:https://cdn.seovx.com
            搏天:https://api.btstu.cn/doc/sjbz.php
            姬长信:https://github.com/insoxin/API
            小歪:https://api.ixiaowai.cn/
            保罗:https://api.paugram.com
            墨天逸:https://api.mtyqx.cn
            岁月小筑:https://img.xjh.me
            东方Project:https://img.paulzzh.com
        */
  /*白天背景图*/
  .hope-ui-light {
    background-image: url("https://api.ixiaowai.cn/api/api.php") !important;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position-x: center;
  }

  /*夜间背景图*/
  .hope-ui-dark {
    background-image: url(https://api.ixiaowai.cn/api/api.php) !important;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position-x: center;
  }

  /*主列表夜间模式透明,50%这数值是控制透明度大小的*/
  .obj-box.hope-stack.hope-c-dhzjXW.hope-c-PJLV.hope-c-PJLV-iigjoxS-css {
    background-color: rgb(0 0 0 / 50%) !important;
  }

  /*readme夜间模式透明,50%这数值是控制透明度大小的*/
  .hope-c-PJLV.hope-c-PJLV-iiuDLME-css {
    background-color: rgb(0 0 0 / 50%) !important;
  }

  /*主列表透明*/
  .obj-box.hope-stack.hope-c-dhzjXW.hope-c-PJLV.hope-c-PJLV-igScBhH-css {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }

  /*readme透明*/
  .hope-c-PJLV.hope-c-PJLV-ikSuVsl-css {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }

  /*顶部右上角切换按钮透明*/
  .hope-c-ivMHWx-hZistB-cv.hope-icon-button {
    background-color: rgba(255, 255, 255, 0.3) !important;
  }

  /*右下角侧边栏按钮透明*/
  .hope-c-PJLV-ijgzmFG-css {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }

  /*白天模式代码块透明*/
  .hope-ui-light pre {
    background-color: rgba(255, 255, 255, 0.1) !important;
  }

  /*夜间模式代码块透明*/
  .hope-ui-dark pre {
    background-color: rgba(255, 255, 255, 0) !important;
  }

  /*底部CSS,.APP .tanle这三个一起的*/
  dibu {
    border-top: 0px;
    position: absolute;
    bottom: 0;
    width: 100%;
    margin: 0px;
    padding: 0px;
  }

  .App {
    min-height: 85vh;
  }

  .table {
    margin: auto;
  }

  /*去掉底部*/
  .footer {
    display: none !important;
  }

  /*全局字体*/
  * {
    font-family: LXGW WenKai;
  }

  * {
    font-weight: bold;
  }

  body {
    font-family: LXGW WenKai;
  }

  /*渐变背景CSS*/
  #canvas-basic {
    position: fixed;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -999;
  }
</style>

<!--看板娘 -自定义大小,隐藏对话框和对话框高度-->
<style type="text/css">
  #waifu #live2d {
    height: 350px !important;
    width: 350px !important;
  }

  #waifu-tips {
    top: -60px;
    /*display:none !important;隐藏对话框*/
  }
</style>
<!--看板娘加载指定模型-->
<script>
  localStorage.setItem("modelId", "17");
  localStorage.setItem("modelTexturesId", "2");
</script>

<!--自己选左右-->
<script src="https://api.itggg.cn/live2dnew/left/index.js"></script>

Body

<!-- 来自B站美化教程 https://www.bilibili.com/video/BV1Wg41187Bf/?spm_id_from=333.788&vd_source=056118101dc003c0df303e05a9e6a3e2 -->
<!--延迟加载-->
<!--如果要写自定义内容建议都加到这个延迟加载的范围内-->
<div id="customize" style="display: none">
  <div>
    <!--音乐播放器-->
    <!--  <meting-js fixed="true" autoplay="true" theme="#409EFF" list-folded="true" auto="https://music.163.com/#/playlist?id=7289498727"></meting-js> -->
    <!-- <br /> -->
    <center class="dibu">
      <div style="line-height: 20px; font-size: 9pt; font-weight: bold">
        <span>
          "
          <span
            style="color: rgb(13, 109, 252); font-weight: bold"
            id="hitokoto"
          >
            <a href="#" id="hitokoto_text">
              "人生最大的遗憾,就是在最无能为力的时候遇到一个想要保护一生的人."
            </a>
          </span>
          "
        </span>
        <p style="margin-left: 10rem; font-size: 8pt">
          <small> —— Dr.QYQ </small>
        </p>
      </div>

      <div style="font-size: 13px; font-weight: bold">
        <span class="nav-item">
          <a class="nav-link" href="qyqstc@gmail.com" target="_blank">
            <i
              class="fa-duotone fa-envelope-open"
              style="color: #409eff"
              aria-hidden="true"
            >
            </i>
            邮箱 |
          </a>
        </span>
        <span class="nav-item">
          <a class="nav-link" href="qyqsdtc.github.io" target="_blank">
            <i class="fas fa-edit" style="color: #409eff" aria-hidden="true">
            </i>
            博客 |
          </a>
        </span>
        <!--后台入口-->
        <span class="nav-item">
          <a class="nav-link" href="/@manage" target="_blank">
            <i
              class="fa-solid fa-folder-gear"
              style="color: #409eff"
              aria-hidden="true"
            >
            </i>
            管理 |
          </a>
        </span>
        <span class="nav-item">
          <a class="nav-link" href="/@login" target="_blank">
            <i
              class="fa-solid fa-folder-gear"
              style="color: #409eff"
              aria-hidden="true"
            >
            </i>
            登陆 |
          </a>
        </span>
        <!--版权,请尊重作者-->
        <span class="nav-item">
          <a
            class="nav-link"
            href="https://github.com/Xhofe/alist"
            target="_blank"
          >
            <i
              class="fa-solid fa-copyright"
              style="color: #409eff"
              aria-hidden="true"
            >
            </i>
            Alist
          </a>
        </span>
        <br />
      </div>
    </center>
    <br />
    <br />
  </div>

  <!--一言API-->
  <script
    src="https://v1.hitokoto.cn/?encode=js&select=%23hitokoto"
    defer
  ></script>
  <!--延迟加载范围到这里结束-->
</div>
<!--延迟加载配套使用JS-->
<script>
  let interval = setInterval(() => {
    if (document.querySelector(".footer")) {
      document.querySelector("#customize").style.display = "";
      clearInterval(interval);
    }
  }, 200);
</script>

<!-- 渐变背景初始化,如果要使用渐变背景把下面的那一行注释去掉即可-->
<!-- 下面的几行都是渐变的一套,自定义头部内还有一个关联的自定义CSS -->
<!--<canvas id="canvas-basic"></canvas> -->
<script src="https://npm.elemecdn.com/granim@2.0.0/dist/granim.min.js"></script>
<script>
  var granimInstance = new Granim({
    element: "#canvas-basic",
    direction: "left-right",
    isPausedWhenNotInView: true,
    states: {
      "default-state": {
        gradients: [
          ["#a18cd1", "#fbc2eb"],
          ["#fff1eb", "#ace0f9"],
          ["#d4fc79", "#96e6a1"],
          ["#a1c4fd", "#c2e9fb"],
          ["#a8edea", "#fed6e3"],
          ["#9890e3", "#b1f4cf"],
          ["#a1c4fd", "#c2e9fb"],
          ["#fff1eb", "#ace0f9"],
        ],
      },
    },
  });
</script>

<!-- 网页鼠标点击特效 - 爱心 -->
<script type="text/javascript">
  !(function (e, t, a) {
    function r() {
      for (var e = 0; e < s.length; e++)
        s[e].alpha <= 0
          ? (t.body.removeChild(s[e].el), s.splice(e, 1))
          : (s[e].y--,
            (s[e].scale += 0.004),
            (s[e].alpha -= 0.013),
            (s[e].el.style.cssText =
              "left:" +
              s[e].x +
              "px;top:" +
              s[e].y +
              "px;opacity:" +
              s[e].alpha +
              ";transform:scale(" +
              s[e].scale +
              "," +
              s[e].scale +
              ") rotate(45deg);background:" +
              s[e].color +
              ";z-index:99999"));
      requestAnimationFrame(r);
    }
    function n() {
      var t = "function" == typeof e.onclick && e.onclick;
      e.onclick = function (e) {
        t && t(), o(e);
      };
    }

    function o(e) {
      var a = t.createElement("div");
      (a.className = "heart"),
        s.push({
          el: a,
          x: e.clientX - 5,
          y: e.clientY - 5,
          scale: 1,
          alpha: 1,
          color: c(),
        }),
        t.body.appendChild(a);
    }

    function i(e) {
      var a = t.createElement("style");
      a.type = "text/css";
      try {
        a.appendChild(t.createTextNode(e));
      } catch (t) {
        a.styleSheet.cssText = e;
      }
      t.getElementsByTagName("head")[0].appendChild(a);
    }

    function c() {
      return (
        "rgb(" +
        ~~(255 * Math.random()) +
        "," +
        ~~(255 * Math.random()) +
        "," +
        ~~(255 * Math.random()) +
        ")"
      );
    }
    var s = [];
    (e.requestAnimationFrame =
      e.requestAnimationFrame ||
      e.webkitRequestAnimationFrame ||
      e.mozRequestAnimationFrame ||
      e.oRequestAnimationFrame ||
      e.msRequestAnimationFrame ||
      function (e) {
        setTimeout(e, 1e3 / 60);
      }),
      i(
        ".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"
      ),
      n(),
      r();
  })(window, document);
</script>