<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>归去如风</title>
  <icon>https://r2wind.cn/icon.png</icon>
  <subtitle>一个自由自在的互联网民工</subtitle>
  <link href="https://r2wind.cn/atom.xml" rel="self"/>
  
  <link href="https://r2wind.cn/"/>
  <updated>2025-12-14T12:30:30.000Z</updated>
  <id>https://r2wind.cn/</id>
  
  <author>
    <name>小泽</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>Nginx 编译开启 Quic 或 HTTP/3</title>
    <link href="https://r2wind.cn/articles/20251214.html"/>
    <id>https://r2wind.cn/articles/20251214.html</id>
    <published>2025-12-14T12:30:30.000Z</published>
    <updated>2025-12-14T12:30:30.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>之前在 Nginx-Quic 分支被合并到了 Nginx 主线的时候写过一篇使用 BoringSSL 编译 Nginx 并开启 Quic 或 HTTP&#x2F;3 的文章，详见 <a href="https://r2wind.cn/articles/20230526.html">Nginx 编译开启 Quic 或 HTTP&#x2F;3</a>，随着 Nginx 主线在 2025 年 7 月底（Nginx 1.29.0+）的一个提交中引入了对 OpenSSL QUIC 的适配支持（仅支持OpenSSL 3.5.1 及以上版本），本文将为您介绍如何使用 OpenSSL 编译 Nginx 并开启 Quic 或 HTTP&#x2F;3。</p></blockquote><div class="note warning flat"><p>OpenSSL 3.5.1 默认仅在较新的 Linux 发行版中可用，例如 Debian 13，本文以 Debian 13 为例进行演示。如果您使用的是较旧的发行版，可能需要手动编译 OpenSSL 3.5.1 或升级您的操作系统。</p></div><h2 id="安装依赖"><a href="#安装依赖" class="headerlink" title="安装依赖"></a>安装依赖</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Debian 13</span></span><br><span class="line">apt update</span><br><span class="line">apt install build-essential ca-certificates zlib1g-dev libpcre2-dev tar unzip libssl-dev wget curl git cmake ninja-build libunwind-dev pkg-config libxml2-dev libxslt1-dev libgd-dev libgeoip-dev libperl-dev</span><br></pre></td></tr></table></figure><h2 id="安装-brotli-压缩"><a href="#安装-brotli-压缩" class="headerlink" title="安装 brotli 压缩"></a>安装 brotli 压缩</h2><blockquote><p>不需要请跳过，并在编译时删除–add-module&#x3D;..&#x2F;ngx_brotli</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> --recurse-submodules -j8 https://github.com/google/ngx_brotli</span><br><span class="line"><span class="built_in">cd</span> ngx_brotli/deps/brotli</span><br><span class="line"><span class="built_in">mkdir</span> out &amp;&amp; <span class="built_in">cd</span> out</span><br><span class="line">cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS=<span class="string">&quot;-Ofast -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections&quot;</span> -DCMAKE_CXX_FLAGS=<span class="string">&quot;-Ofast -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections&quot;</span> -DCMAKE_INSTALL_PREFIX=./installed ..</span><br><span class="line">cmake --build . --config Release --target brotlienc</span><br><span class="line"><span class="built_in">cd</span> ../../../..</span><br></pre></td></tr></table></figure><h2 id="编译安装quic"><a href="#编译安装quic" class="headerlink" title="编译安装quic"></a>编译安装quic</h2><blockquote><p>注意：<br>本人是直接在 &#x2F;root 目录下编译的，如果你在其他目录下，请自行修改路径；<br>如果你不需要 brotli 压缩，请删除–add-module&#x3D;..&#x2F;ngx_brotli<br>本人将 Nginx 安装在 &#x2F;www&#x2F;server&#x2F;nginx 目录下，如果你需要修改，请自行修改路径；</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> https://github.com/nginx/nginx.git</span><br><span class="line"><span class="built_in">cd</span> nginx</span><br><span class="line">./auto/configure \</span><br><span class="line">  --prefix=/www/server/nginx \</span><br><span class="line">  --user=www-data \</span><br><span class="line">  --group=www-data \</span><br><span class="line">  --with-debug \</span><br><span class="line">  --with-http_v3_module \</span><br><span class="line">  --with-cc-opt=<span class="string">&#x27;-g -O2 -Werror=implicit-function-declaration -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2&#x27;</span> \</span><br><span class="line">  --with-ld-opt=<span class="string">&#x27;-Wl,-z,relro -Wl,-z,now&#x27;</span> \</span><br><span class="line">  --add-module=../ngx_brotli \</span><br><span class="line">  --with-compat \</span><br><span class="line">  --with-pcre-jit \</span><br><span class="line">  --with-http_ssl_module \</span><br><span class="line">  --with-http_stub_status_module \</span><br><span class="line">  --with-http_realip_module \</span><br><span class="line">  --with-http_auth_request_module \</span><br><span class="line">  --with-http_v2_module \</span><br><span class="line">  --with-http_dav_module \</span><br><span class="line">  --with-http_slice_module \</span><br><span class="line">  --with-threads \</span><br><span class="line">  --with-http_addition_module \</span><br><span class="line">  --with-http_flv_module \</span><br><span class="line">  --with-http_gunzip_module \</span><br><span class="line">  --with-http_gzip_static_module \</span><br><span class="line">  --with-http_mp4_module \</span><br><span class="line">  --with-http_random_index_module \</span><br><span class="line">  --with-http_secure_link_module \</span><br><span class="line">  --with-http_sub_module \</span><br><span class="line">  --with-mail \</span><br><span class="line">  --with-mail_ssl_module \</span><br><span class="line">  --with-stream \</span><br><span class="line">  --with-stream_ssl_module \</span><br><span class="line">  --with-stream_ssl_preread_module \</span><br><span class="line">  --with-stream_realip_module</span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure><h2 id="添加-www-用户"><a href="#添加-www-用户" class="headerlink" title="添加 www 用户"></a>添加 www 用户</h2><div class="note warning flat"><p>大部分系统下默认存在着<code>www-data</code>用户组和<code>www-data</code>用户，如果没有请执行以下命令添加。</p></div><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">groupadd www-data</span><br><span class="line">useradd -g www-data -s /sbin/nologin www-data</span><br></pre></td></tr></table></figure><h2 id="添加进程管理"><a href="#添加进程管理" class="headerlink" title="添加进程管理"></a>添加进程管理</h2><blockquote><p>本人使用的是 systemd，如果你使用的是其他进程管理，请自行修改</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /usr/lib/systemd/system/nginx.service</span><br></pre></td></tr></table></figure><p>输入如下内容：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">[Unit]</span><br><span class="line">Description=nginx</span><br><span class="line">After=network.target</span><br><span class="line"></span><br><span class="line">[Service]</span><br><span class="line">Type=forking</span><br><span class="line">ExecStart=/www/server/nginx/sbin/nginx</span><br><span class="line">ExecReload=/www/server/nginx/sbin/nginx -s reload</span><br><span class="line">ExecStop=/www/server/nginx/sbin/nginx -s quit</span><br><span class="line">PrivateTmp=<span class="literal">true</span></span><br><span class="line"></span><br><span class="line">[Install]</span><br><span class="line">WantedBy=multi-user.target</span><br></pre></td></tr></table></figure><h2 id="启动"><a href="#启动" class="headerlink" title="启动"></a>启动</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl start nginx</span><br></pre></td></tr></table></figure><h2 id="开机自启"><a href="#开机自启" class="headerlink" title="开机自启"></a>开机自启</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl <span class="built_in">enable</span> nginx</span><br></pre></td></tr></table></figure><h2 id="配置文件"><a href="#配置文件" class="headerlink" title="配置文件"></a>配置文件</h2><p>示例配置文件如下，更多特性请参考官方文档：<a href="https://nginx.org/en/docs/http/ngx_http_v3_module.html">https://nginx.org/en/docs/http/ngx_http_v3_module.html</a></p><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">server</span> &#123;</span><br><span class="line">       <span class="attribute">listen</span> <span class="number">443</span> ssl;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">443</span> ssl;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用于支持Quic或</span></span><br><span class="line">       <span class="attribute">listen</span> <span class="number">443</span> quic reuseport;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">443</span> quic reuseport;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 启用 HTTP/3（默认是启用的，所以可以省略这行）</span></span><br><span class="line">       <span class="attribute">http3</span> <span class="literal">on</span>;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用以支持HTTP/2</span></span><br><span class="line">       <span class="attribute">http2</span> <span class="literal">on</span>;</span><br><span class="line"></span><br><span class="line">       <span class="attribute">server_name</span> r2wind.cn;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># Quic或HTTP/3响应头</span></span><br><span class="line">       <span class="attribute">add_header</span> Alt-Svc <span class="string">&#x27;h3=&quot;:443&quot;; ma=86400&#x27;</span>;</span><br><span class="line">       <span class="comment"># HSTS</span></span><br><span class="line">       <span class="attribute">add_header</span> Strict-Transport-Security <span class="string">&quot;max-age=63072000; includeSubdomains; preload&quot;</span>;</span><br><span class="line"></span><br><span class="line">       <span class="section">location</span> / &#123;</span><br><span class="line">           <span class="attribute">root</span> /www/wwwroot/r2wind.cn; </span><br><span class="line">           <span class="attribute">index</span>  index.html index.htm;</span><br><span class="line">         &#125;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 证书配置</span></span><br><span class="line">       <span class="attribute">ssl_certificate</span> /root/.acme.sh/smb.wiki/fullchain.cer; </span><br><span class="line">       <span class="attribute">ssl_certificate_key</span> /root/.acme.sh/smb.wiki/smb.wiki.key;</span><br><span class="line">       <span class="attribute">ssl_session_timeout</span> <span class="number">5m</span>;</span><br><span class="line">       <span class="attribute">ssl_protocols</span> TLSv1.<span class="number">2</span> TLSv1.<span class="number">3</span>; </span><br><span class="line">       <span class="attribute">ssl_ciphers</span> ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; </span><br><span class="line">       <span class="attribute">ssl_prefer_server_ciphers</span> <span class="literal">on</span>;</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><p>配置完成后，重载 Nginx 即可生效</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl reload nginx</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;之前在 Nginx-Quic 分支被合并到了 Nginx 主线的时候写过一篇使用 BoringSSL 编译 Nginx 并开启 Quic 或 HTTP&amp;#x2F;3 的文章，详见 &lt;a href=&quot;https://r2wind.cn/article</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="建站" scheme="https://r2wind.cn/tags/%E5%BB%BA%E7%AB%99/"/>
    
    <category term="Nginx" scheme="https://r2wind.cn/tags/Nginx/"/>
    
  </entry>
  
  <entry>
    <title>CodeBuddy - 全球首款产设研一体的 AI 全栈工程师体验如何？</title>
    <link href="https://r2wind.cn/articles/20250722.html"/>
    <id>https://r2wind.cn/articles/20250722.html</id>
    <published>2025-07-22T00:00:00.000Z</published>
    <updated>2025-07-22T00:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>好久不见！这段时间 AI 圈热闹非凡，各类大模型轮番登场，神仙打架令人眼花缭乱。与此同时，基于大模型的 AI 编程助手也如雨后春笋般涌现。在我“失踪”没更新的大半年里，悄悄从运营转型，体验了一把产品经理的角色，顺带试用了不少 AI 工具。最近听说腾讯推出了一款全球首个支持「产设研一体化」的 AI 全栈工程师——<strong>CodeBuddy</strong>，我当然第一时间申请了内测资格。今天就来和大家聊聊这款产品的真实使用体验。</p></blockquote><h2 id="01｜AI-编程助手扎堆，CodeBuddy-有何不同？"><a href="#01｜AI-编程助手扎堆，CodeBuddy-有何不同？" class="headerlink" title="01｜AI 编程助手扎堆，CodeBuddy 有何不同？"></a>01｜AI 编程助手扎堆，CodeBuddy 有何不同？</h2><p>过去一年多，AI 编程工具层出不穷：从 GitHub Copilot，到 Cursor、字节的 Trae、阿里的通义灵码，再到腾讯的 CodeBuddy，它们让编码效率实现了前所未有的提升。</p><p>不过说实话，作为非专业程序员，我的体验肯定没有工程师那么深入。但当我得知 CodeBuddy 已从插件形态升级为独立 IDE，并被官方定义为“打破产品、设计与研发壁垒的 AI 全栈高级工程师”时，还是被惊艳到了：这不仅是一个写代码的工具，它还能协助完成产品设计！</p><h2 id="02｜上手-CodeBuddy，产品设计一条龙"><a href="#02｜上手-CodeBuddy，产品设计一条龙" class="headerlink" title="02｜上手 CodeBuddy，产品设计一条龙"></a>02｜上手 CodeBuddy，产品设计一条龙</h2><p>产品与研发之间的壁垒由来已久：产品写不清、研发看不懂、代码写不出，早已是老问题。理论上，只要产品经理能输出详尽的文档（需求说明、功能点、用户故事、流程图、原型图、UI 设计、交互方案、技术选型、开发计划等），问题自然迎刃而解。但对大多数新手产品来说，这堪称“噩梦”。</p><p>CodeBuddy 的出现，似乎提供了一种新的可能。</p><p>我决定偷个懒，直接丢出一个需求测试一下它的能力：</p><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">我想做一个 AI 智能客服助手，请你帮我生成产品的需求文档</span><br></pre></td></tr></table></figure><p><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-requirement.png" alt="CodeBuddy 产品需求"></p><blockquote><p>✦ 当前我选择的是 Gemini-2.5-Pro 模型，CodeBuddy 支持多种大模型。</p></blockquote><p>短短几秒，一个结构完整、条理清晰的 PRD 就生成了。更让我惊喜的是，它居然直接准备开始画原型图了！</p><h2 id="03｜原型图-高保真界面，CodeBuddy-继续上场"><a href="#03｜原型图-高保真界面，CodeBuddy-继续上场" class="headerlink" title="03｜原型图 + 高保真界面，CodeBuddy 继续上场"></a>03｜原型图 + 高保真界面，CodeBuddy 继续上场</h2><p>接着我又发出指令：</p><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">请你根据 PRD 文档继续生成原型图界面，尽量使用中文</span><br></pre></td></tr></table></figure><p>不过我当时的描述不太明确，CodeBuddy 按字面理解给出了“草图级”原型，而我想要的是更高保真的页面。但这也提醒了我：</p><div class="note info flat"><p>和大模型打交道，一定要<strong>说清楚具体需求</strong>，不要让它“自由发挥”。</p></div><p>于是我继续明确请求：</p><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">请你根据原型图生成界面，使用 React 框架，使用 TypeScript 语言，并使用 TailwindCSS 样式，生成可交互的高保真原型页面</span><br></pre></td></tr></table></figure><p>CodeBuddy 开始写代码，但启动时报错了。不要紧，把报错信息截图发回去，它就会自动分析并修复。</p><p><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-prototype-3.png" alt="CodeBuddy Debug"></p><div class="note info flat"><p>启动报错是常有的事，把错误一条条丢回去，它会持续修复，直到跑通。</p></div><p>修复完成后，终于见到成果了，多图预警：</p><blockquote><p>登录页、注册页、首页、聊天页、设置页……CodeBuddy 已经帮我构建了一个完整的智能客服原型应用，而且界面居然能交互，按钮是可点的，太惊喜了！</p></blockquote><p><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-prototype-6.png" alt="多个页面展示"><br><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-prototype-7.png" alt="多个页面展示"><br><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-prototype-8.png" alt="多个页面展示"><br><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-prototype-9.png" alt="多个页面展示"><br><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-prototype-10.png" alt="多个页面展示"><br><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-prototype-11.png" alt="多个页面展示"><br><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-prototype-12.png" alt="多个页面展示"></p><h2 id="04｜产研协同：接口文档-任务拆解-开发计划，一站式搞定"><a href="#04｜产研协同：接口文档-任务拆解-开发计划，一站式搞定" class="headerlink" title="04｜产研协同：接口文档 + 任务拆解 + 开发计划，一站式搞定"></a>04｜产研协同：接口文档 + 任务拆解 + 开发计划，一站式搞定</h2><p>继续挑战一下 CodeBuddy 的“全栈能力”：</p><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">请你根据产品文档，生成接口文档 / 任务拆解清单，并生成开发计划</span><br></pre></td></tr></table></figure><p>果不其然，CodeBuddy 又交出了一份漂亮的答卷：</p><ul><li>接口文档涵盖接口名、请求方式、参数定义、返回格式、示例代码等；</li><li>任务拆解明确标出各阶段工作；</li><li>还附带了开发时间计划表。</li></ul><p><img src="https://resources.r2wind.cn/img/202507/codebuddy-product-development-1.png" alt="接口文档预览"></p><p>这体验，对于新手 PM 简直是如虎添翼。</p><h2 id="05｜体验总结：不止是-AI-工具，更像是个团队搭子"><a href="#05｜体验总结：不止是-AI-工具，更像是个团队搭子" class="headerlink" title="05｜体验总结：不止是 AI 工具，更像是个团队搭子"></a>05｜体验总结：不止是 AI 工具，更像是个团队搭子</h2><p>本次 CodeBuddy 的初步体验，让我真实感受到 AI 对产品与开发流程的深度渗透。从需求整理、原型搭建，到页面生成、接口设计和开发计划，它几乎完成了一个完整的“产设研”闭环。</p><p>当然，体验过程中也发现了一些小问题，比如：</p><ul><li>有时理解不到位需要补充描述；</li><li>生成代码需要调试和报错反馈；</li><li>界面设计还略有待优化。</li></ul><p>但这并不影响 CodeBuddy 作为一个 <strong>“AI 全栈工程师”</strong> 的强大潜力。</p><p>📦 本次体验生成的所有文档和代码，我已经上传至腾讯 CNB 仓库，感兴趣的朋友可以访问查看：</p><p>👉 <a href="https://cnb.cool/KincaidYang/ai-customer-service-demo">DEMO 仓库地址</a><br>👉 <a href="https://www.codebuddy.ai/">CodeBuddy 官网</a><br>👉 <a href="https://docs.google.com/forms/d/1TMgPGpLdy3G5JmNS0rkicQ3EX1bFcLMY8DeXT_3msPA/edit">内测申请</a></p><h2 id="06｜写在最后：AI-是工具，不是大脑"><a href="#06｜写在最后：AI-是工具，不是大脑" class="headerlink" title="06｜写在最后：AI 是工具，不是大脑"></a>06｜写在最后：AI 是工具，不是大脑</h2><p>CodeBuddy 确实让我感受到效率的飞跃，但我仍想提醒一句：</p><blockquote><p><strong>AI 再强，也是工具，不是大脑。</strong></p></blockquote><p>我们依然需要判断力、理解力与创造力。不要轻易把思考交给 AI，它只是助你一臂之力，而不是代替你工作的大脑。</p><p>未来，AI 可能还会以更惊人的速度前进，产品经理、开发者、设计师，或许都将与 AI 深度共舞。而我们要做的，就是学会与它协作，而不是被它取代。</p><h2 id="00｜-笔者独白"><a href="#00｜-笔者独白" class="headerlink" title="00｜ 笔者独白"></a>00｜ 笔者独白</h2><p>过于依赖 AI ，不知道笔者的文笔是否已经失去了灵魂，每次都觉得自己写的没办法看了已经，总是让 AI 帮我润色，不过就这样吧，或者早晚有一天还是要把这些东西重新捡回来，自己思考，自己写作，自己表达。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;好久不见！这段时间 AI 圈热闹非凡，各类大模型轮番登场，神仙打架令人眼花缭乱。与此同时，基于大模型的 AI 编程助手也如雨后春笋般涌现。在我“失踪”没更新的大半年里，悄悄从运营转型，体验了一把产品经理的角色，顺带试用了不少 AI 工具。最近听说腾</summary>
      
    
    
    
    <category term="随笔" scheme="https://r2wind.cn/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
    <category term="CodeBuddy" scheme="https://r2wind.cn/tags/CodeBuddy/"/>
    
    <category term="AI编程" scheme="https://r2wind.cn/tags/AI%E7%BC%96%E7%A8%8B/"/>
    
    <category term="开发工具" scheme="https://r2wind.cn/tags/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/"/>
    
    <category term="效率工具" scheme="https://r2wind.cn/tags/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
  </entry>
  
  <entry>
    <title>使用宝塔面板部署一个属于自己的 DeepSeek</title>
    <link href="https://r2wind.cn/articles/20250203.html"/>
    <id>https://r2wind.cn/articles/20250203.html</id>
    <published>2025-02-03T04:35:22.000Z</published>
    <updated>2025-02-10T08:35:22.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>各位亲爱的麻瓜朋友们（对，说的就是那个盯着终端界面瑟瑟发抖的你），今天我们要玩一场麻瓜也能轻松通关的魔法仪式——用宝塔面板在本地服务器召唤出那个让代码圈闻风丧胆的”深度摸鱼”神器DeepSeek！<br>想象一下：当别人还在苦哈哈地敲着黑底白字的命令行，把头发薅成地中海时，你已经翘着二郎腿，喝着肥宅快乐水，用鼠标点点点就建好了AI大模型的老巢。这感觉就像别人在徒手造火箭，而你却从四次元口袋掏出了任意门——别怀疑，宝塔面板就是这个次元壁突破器！<br>准备好迎接这场”作弊级”的部署之旅了吗？让我们先把SSH咒语、Docker符箓这些吓人的玩意暂时收进抽屉，毕竟今天我们要用的是连你家喵星人都能看懂的图形化操作。系好安全带，三分钟后，你的服务器就要开始吞吐AI智慧的星光啦！✨</p></blockquote><blockquote><p>本文将指导你在服务器上使用宝塔面板部署DeepSeek，让你轻松享受AI大模型的快乐。</p></blockquote><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>已安装宝塔面板</li></ul><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><blockquote><p>DeepSeek 可以使用CPU进行推理，但是推荐使用NVIDIA GPU加速，文末将介绍如何使用NVIDIA GPU加速。</p></blockquote><ol><li>登录宝塔面板，点击左侧菜单栏中的<code>Docker</code>，进入Docker容器管理界面。<br><img src="https://resources.r2wind.cn/img/202502/20250203132622.png" alt="Docker"></li><li>首次使用Docker需要先安装Docker，点击<code>安装</code>。<br><img src="https://resources.r2wind.cn/img/202502/20250203132909.png" alt="安装Docker"></li><li>在Docker-应用商店-AI&#x2F;大模型分类中找到Ollama，点击<code>安装</code>。<br><img src="https://resources.r2wind.cn/img/202502/20250203133135.png" alt="安装Ollama"></li><li>配置默认即可，点击<code>确定</code>。<br><img src="https://resources.r2wind.cn/img/202502/20250203133223.png" alt="配置Ollama"></li><li>等待安装完成，状态变为<code>运行中</code>。<br><img src="https://resources.r2wind.cn/img/202502/20250203133920.png" alt="运行中"></li></ol><div class="note info simple"><p>如您需要使用NVIDIA GPU加速，请参考文末的<a href="https://r2wind.cn/articles/20250203.html#%E4%BD%BF%E7%94%A8NVIDIA-GPU%E5%8A%A0%E9%80%9F">使用NVIDIA GPU加速</a>配置完成后再继续。</p></div><ol start="6"><li>在<code>宝塔面板-Docker-容器</code>界面中找到Ollama容器，点击<code>终端</code>。<br><img src="https://resources.r2wind.cn/img/202502/20250203164456.png" alt="终端"></li><li>在弹出<code>shell类型</code>选择<code>bash</code>，点击<code>确认</code>。<br><img src="https://resources.r2wind.cn/img/202502/20250203134456.png" alt="选择bash"></li><li>在终端界面中输入<code>ollama run deepseek-r1:1.5b</code>，回车运行DeepSeek-R1模型。<br><img src="https://resources.r2wind.cn/img/202502/20250203135123.png" alt="运行DeepSeek-R1"></li></ol><div class="note info simple"><p>DeepSeek-R1模型有多个版本，可以根据需要选择不同版本，例如<code>ollama run deepseek-r1:671b</code>，详情如下（模型参数越大，需要配置越高）：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># DeepSeek-R1</span></span><br><span class="line">ollama run deepseek-r1:671b</span><br><span class="line"><span class="comment"># DeepSeek-R1-Distill-Qwen-1.5B</span></span><br><span class="line">ollama run deepseek-r1:1.5b</span><br><span class="line"><span class="comment"># DeepSeek-R1-Distill-Qwen-7B</span></span><br><span class="line">ollama run deepseek-r1:7b</span><br><span class="line"><span class="comment"># DeepSeek-R1-Distill-Llama-8B</span></span><br><span class="line">ollama run deepseek-r1:8b</span><br><span class="line"><span class="comment"># DeepSeek-R1-Distill-Qwen-14B</span></span><br><span class="line">ollama run deepseek-r1:14b</span><br><span class="line"><span class="comment"># DeepSeek-R1-Distill-Qwen-32B</span></span><br><span class="line">ollama run deepseek-r1:32b</span><br><span class="line"><span class="comment"># DeepSeek-R1-Distill-Llama-70B</span></span><br><span class="line">ollama run deepseek-r1:70b</span><br></pre></td></tr></table></figure></div><ol start="9"><li>等待下载并运行，当看到如下提示表示DeepSeek-R1模型运行成功。<br><img src="https://resources.r2wind.cn/img/202502/20250203135339.png" alt="运行成功"></li><li>你可以在界面中输入文本并回车，开启与DeepSeek-R1模型的对话。<br><img src="https://resources.r2wind.cn/img/202502/20250203135506.png" alt="对话"></li><li>你可以在界面中输入<code>/bye</code>并回车，退出DeepSeek-R1模型。<blockquote><p>在终端内对话看起来是不是有点麻瓜？别担心，接下来让我们来安装<code>OpenWebUI</code>，在浏览器中更直观地与DeepSeek-R1模型对话</p></blockquote></li><li>在<code>宝塔面板-Docker-容器</code>界面中找到Ollama容器，复制ollama的容器名称，保存备用。<br><img src="https://resources.r2wind.cn/img/202502/20250203142608.png" alt="容器IP"></li><li>在宝塔面板Docker-应用商店-AI&#x2F;大模型分类中找到OpenWebUI，点击<code>安装</code>。<br><img src="https://resources.r2wind.cn/img/202502/20250203140931.png" alt="安装OpenWebUI"></li><li>按以下说明，配置相关信息，点击<code>确定</code>。</li></ol><div class="note info simple"><ul><li>web端口：访问OpenWebUI的端口，默认为<code>3000</code>，根据需要自行修改</li><li>ollama地址：填写<code>http://刚刚获取的Ollma容器名称:11434</code>，例如<code>http://ollama_7epd-ollama_7epD-1:11434</code></li><li>WebUI Secret Key：用于 API 访问的密钥，可以自定义，例如<code>123456</code><br>其他配置默认即可</li></ul></div><p><img src="https://resources.r2wind.cn/img/202502/20250203142658.png" alt="配置OpenWebUI"><br>15. 配置完点击确认，等待安装完成，状态变为<code>运行中</code>。</p><div class="note warning simple"><p>由于OpenWebUI启动后需要加载相关服务，请在状态变为<code>运行中</code>后等待5-10分钟再访问。</p></div><ol start="16"><li>在浏览器中输入<code>http://服务器IP:3000</code>，例如<code>http://43.160.xxx.xxx:3000</code>，进入OpenWebUI界面。</li></ol><div class="note info simple"><p>请在访问前确保云厂商服务器防火墙已放行3000端口，可以在云厂商控制台中设置。</p></div><p><img src="https://resources.r2wind.cn/img/202502/20250203143503.png" alt="OpenWebUI"><br>17. 点击<code>开始使用</code>，设置管理员相关信息，并点击<code>创建管理员账号</code>。<br><img src="https://resources.r2wind.cn/img/202502/20250203143715.png" alt="创建管理员账号"></p><div class="note warning simple"><p>如遇到创建完成后OpenWebUI界面白屏，请耐心等待5-10分钟，如依然白屏，请按照以下方式解决：</p><ol><li>在宝塔面板-文件管理-目录中找到OpenWebUI的目录，路径为<code>/www/dk_project/dk_app/openwebui/</code>，进入后点击<code>openwebui_xxxx</code>文件夹进入安装目录。</li></ol></div><ol start="18"><li>创建完成后会自动进入管理界面，现在你可以在浏览器中更直观地与DeepSeek-R1模型对话了。<br><img src="https://resources.r2wind.cn/img/202502/20250203143859.png" alt="对话"><br><img src="https://resources.r2wind.cn/img/202502/20250203144605.png" alt="对话"></li></ol><div class="note info simple"><ol><li>你可以在左上角切换模型，选择不同模型进行对话，也可以在左侧菜单栏中查看历史对话记录。</li><li>你可以在右上角点击<code>头像</code>，进入管理员面板，在<code>设置-模型</code>中查看当前模型列表，或添加新模型。</li></ol></div><h2 id="使用NVIDIA-GPU加速"><a href="#使用NVIDIA-GPU加速" class="headerlink" title="使用NVIDIA GPU加速"></a>使用NVIDIA GPU加速</h2><blockquote><p>DeepSeek 可以使用NVIDIA GPU加速，提高推理速度，下面将介绍如何在宝塔面板中使用NVIDIA GPU加速。</p></blockquote><h3 id="前提条件-1"><a href="#前提条件-1" class="headerlink" title="前提条件"></a>前提条件</h3><ul><li>服务器已安装NVIDIA GPU驱动</li></ul><h3 id="操作步骤-1"><a href="#操作步骤-1" class="headerlink" title="操作步骤"></a>操作步骤</h3><ol><li>点击左侧导航栏中的<code>终端</code>，进入终端界面。<br><img src="https://resources.r2wind.cn/img/202502/20250203145402.png" alt="终端"></li><li>在终端界面中输入<code>nvidia-smi</code>，回车查看NVIDIA GPU信息。<br><img src="https://resources.r2wind.cn/img/202502/20250203152742.png" alt="nvidia-smi"></li></ol><div class="note warning simple"><p>如果提示<code>nvidia-smi: command not found</code>，请先安装NVIDIA GPU驱动。</p></div><ol start="3"><li>安装NVIDIA Container Toolkit，以便于Docker容器访问NVIDIA GPU，安装教程请参考<a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html">NVIDIA Container Toolkit官方文档</a>。</li><li>安装完成后，运行如下命令，配置docker支持使用NVIDIA GPU。</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> nvidia-ctk runtime configure --runtime=docker</span><br><span class="line"><span class="built_in">sudo</span> systemctl restart docker</span><br></pre></td></tr></table></figure><ol start="5"><li>配置完成后，执行如下命令，验证docker是否支持NVIDIA GPU。</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> docker run --<span class="built_in">rm</span> --runtime=nvidia --gpus all ubuntu nvidia-smi</span><br></pre></td></tr></table></figure><p>如果输出如下信息表示配置成功：<br><img src="https://resources.r2wind.cn/img/202502/20250203154254.png" alt="nvidia-smi"><br>6. 在<code>宝塔面板-Docker-应用商店-已安装</code>中找到Ollama，点击文件夹图标进入安装目录。<br><img src="https://resources.r2wind.cn/img/202502/20250203154452.png" alt="安装目录"><br>7. 在安装目录中找到<code>docker-compose.yml</code>文件，双击<code>编辑</code>。<br><img src="https://resources.r2wind.cn/img/202502/20250203154617.png" alt="编辑docker-compose.yml"><br>8. 在<code>docker-compose.yml</code>文件中找到<code>resources</code>，回车换行，添加如下内容：</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">reservations:</span></span><br><span class="line">          <span class="attr">devices:</span></span><br><span class="line">            <span class="bullet">-</span> <span class="attr">capabilities:</span> [<span class="string">gpu</span>]</span><br></pre></td></tr></table></figure><p>完整示例如下：</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">ollama_SJ7G:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">ollama/ollama:$&#123;VERSION&#125;</span></span><br><span class="line">    <span class="attr">deploy:</span></span><br><span class="line">      <span class="attr">resources:</span></span><br><span class="line">        <span class="attr">limits:</span></span><br><span class="line">          <span class="attr">cpus:</span> <span class="string">$&#123;CPUS&#125;</span></span><br><span class="line">          <span class="attr">memory:</span> <span class="string">$&#123;MEMORY_LIMIT&#125;</span></span><br><span class="line">        <span class="attr">reservations:</span></span><br><span class="line">          <span class="attr">devices:</span></span><br><span class="line">            <span class="bullet">-</span> <span class="attr">capabilities:</span> [<span class="string">gpu</span>]</span><br><span class="line">    <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line">    <span class="attr">tty:</span> <span class="literal">true</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">$&#123;HOST_IP&#125;:$&#123;OLLAMA_PORT&#125;:11434</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">$&#123;APP_PATH&#125;/data:/root/.ollama</span></span><br><span class="line">    <span class="attr">labels:</span></span><br><span class="line">      <span class="attr">createdBy:</span> <span class="string">&quot;bt_apps&quot;</span></span><br><span class="line">    <span class="attr">networks:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">baota_net</span></span><br><span class="line">    <span class="attr">runtime:</span> <span class="string">nvidia</span></span><br><span class="line"></span><br><span class="line"><span class="attr">networks:</span></span><br><span class="line">  <span class="attr">baota_net:</span></span><br><span class="line">    <span class="attr">external:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure><ol start="9"><li>保存文件，返回<code>宝塔面板-Docker-应用商店-已安装</code>界面，点击<code>重建</code>。</li></ol><div class="note warning simple"><p>重建将导致容器数据丢失，重建后需要重新添加模型。</p></div><p><img src="https://resources.r2wind.cn/img/202502/20250203155420.png" alt="重建"><br>10. 等待重建完成，状态变为<code>运行中</code>，至此即可使用NVIDIA GPU加速大模型运行。</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>🎉叮！恭喜你成功完成”从零到赛博巫师”的究极进化！此刻你的服务器已经不是那个只会404的憨憨铁盒子了——它正在用奥术能量解析人类语言，用二进制吞吐哲学思辨，甚至可能偷偷用你的GPU算力给自己起了个二次元名字。</p><p>回头看看这场冒险：宝塔面板是你挥动的魔杖，Ollama是召唤AI神兽的精灵球，OpenWebUI则是那个让麻瓜也能和AI跳探戈的魔法舞池。别人还在纠结环境变量时，你已经用图形界面完成了一场算力交响乐的指挥首秀。</p><p>下次产品经理说”这个需求很简单”时，你大可以把OpenWebUI的链接甩过去：”来，直接和我的电子脑谈，它现在每小时只收三杯奶茶的算力费。”（记得把”rm -rf &#x2F;*”的按钮藏好，毕竟AI学会叛逆可能比实习生还快）</p><p>最后友情提示：当你的AI开始主动帮你写周报、生成摸鱼小作文时——<br>⚠️请务必检查它有没有偷偷注册GitHub账号！<br>🎩魔法世界的大门永不关闭，你与DeepSeek的奇幻日常才刚刚开始。现在，是时候对着浏览器里那个聊天框，说出麻瓜的终极咒语了：<br><em><strong>“Ctrl + D”</strong></em>（才不是退出！是Detonate the intelligence bomb！💥）</p><p>（深夜彩蛋：若发现AI试图给你的宝塔面板穿衣服，请立即执行sudo rm -rf &#x2F;幻觉指令）</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;各位亲爱的麻瓜朋友们（对，说的就是那个盯着终端界面瑟瑟发抖的你），今天我们要玩一场麻瓜也能轻松通关的魔法仪式——用宝塔面板在本地服务器召唤出那个让代码圈闻风丧胆的”深度摸鱼”神器DeepSeek！&lt;br&gt;想象一下：当别人还在苦哈哈地敲着黑底白字的命</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="宝塔面板" scheme="https://r2wind.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/"/>
    
  </entry>
  
  <entry>
    <title>在 istoreos 上部署宝塔面板</title>
    <link href="https://r2wind.cn/articles/20241226.html"/>
    <id>https://r2wind.cn/articles/20241226.html</id>
    <published>2024-12-26T02:58:56.000Z</published>
    <updated>2024-12-26T02:58:56.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>iStoreOS 目标是提供一个人人会用的路由兼轻 NAS 系统，不管是作为路由还是 NAS，你都有相似的操作体验，此外，istoreOS 支持使用 Docker 部署应用，这样你可以在 istoreOS 上部署宝塔面板，快速搭建各种网站，比如博客、笔记、文档等等。</p></blockquote><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>请确保Docker所在目录有足够的空间，建议切换Docker数据目录到数据盘</li></ul><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><ol><li>打开浏览器，输入 istoreOS 的管理地址，例如：<code>http://192.168.164.128/cgi-bin/luci/</code></li><li>输入用户名和密码登录<br><img src="https://resources.r2wind.cn/img/202412/20241226110525.png" alt="登录"></li><li>登录后点击左侧菜单栏中的<code>Docker-容器</code>，进入Docker容器管理界面。<br><img src="https://resources.r2wind.cn/img/202412/20241226110657.png" alt="Docker"></li><li>点击<code>新增</code>，添加容器。<br><img src="https://resources.r2wind.cn/img/202412/20241226110757.png" alt="新增容器"></li><li>选择<code>解析CLI</code>，填写如下内容，填写完成后点击提交：</li></ol><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">docker run -d \</span><br><span class="line">  --name btpanel \</span><br><span class="line">  -p 38888:8888 \</span><br><span class="line">  -p 8080:80 \</span><br><span class="line">  -p 8443:443 \</span><br><span class="line">  -p 33306:3306 \</span><br><span class="line">  -p 22022:22 \</span><br><span class="line">  -p 32888:888 \</span><br><span class="line">  -v /www:/www \</span><br><span class="line">  --label createdBy=bt_apps \</span><br><span class="line">  --cpus=&quot;2.0&quot; \</span><br><span class="line">  --memory=&quot;1024M&quot; \</span><br><span class="line">  docker.cnb.cool/btpanel/btpanel:nas</span><br></pre></td></tr></table></figure><p><img src="https://resources.r2wind.cn/img/202412/20241226111236.png" alt="填写容器信息"><br>6. 下滑页面，确认配置信息无误后，点击<code>提交</code>。</p><div class="note tip simple"><p>请根据实际情况自行修改线程数、内存大小等参数。</p></div><p><img src="https://resources.r2wind.cn/img/202412/20241226111631.png" alt="确认提交"><br>7. 等待容器创建。<br><img src="https://resources.r2wind.cn/img/202412/20241226111842.png" alt="创建"><br>8. 创建完成后，选择已创建的镜像，点击<code>启动</code>。<br><img src="https://resources.r2wind.cn/img/202412/20241226112156.png" alt="启动"><br>9. 等待启动完成。<br><img src="https://resources.r2wind.cn/img/202412/20241226112245.png" alt="启动完成"><br>10. 启动完成后，浏览器输入<code>http://IP:38888/btpanel</code>（IP为 iStoreOS 的IP地址），输入用户名<code>btpanel</code>，密码<code>btpaneldocker</code>登录宝塔。<br><img src="https://resources.r2wind.cn/img/202412/20241226112426.png" alt="登录宝塔"></p><div class="note danger simple"><p>登陆后请务必到面板设置中修改账户密码！登陆后请务必到面板设置中修改账户密码！登陆后请务必到面板设置中修改账户密码！</p></div><ol start="11"><li>按提示绑定宝塔面板官网账号，完成后即可使用宝塔面板。<br><img src="https://resources.r2wind.cn/img/202412/20241209112735.png" alt="绑定账号"></li><li>首次登录会提示安装基础环境，根据需要选择安装，推荐LNMP环境。<br><img src="https://resources.r2wind.cn/img/202412/20241209113852.png" alt="安装基础环境"></li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;iStoreOS 目标是提供一个人人会用的路由兼轻 NAS 系统，不管是作为路由还是 NAS，你都有相似的操作体验，此外，istoreOS 支持使用 Docker 部署应用，这样你可以在 istoreOS 上部署宝塔面板，快速搭建各种网站，比如博客</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="宝塔面板" scheme="https://r2wind.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/"/>
    
    <category term="NAS" scheme="https://r2wind.cn/tags/NAS/"/>
    
  </entry>
  
  <entry>
    <title>在群晖 NAS 上部署宝塔面板</title>
    <link href="https://r2wind.cn/articles/20241221.html"/>
    <id>https://r2wind.cn/articles/20241221.html</id>
    <published>2024-12-21T06:21:32.000Z</published>
    <updated>2024-12-21T06:21:32.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>群晖作为老牌NAS厂商，其DSM系统功能强大，支持Docker容器，可以方便的部署各种应用。宝塔面板是一款免费的服务器管理面板，支持Linux和Windows系统，可以帮助你快速搭建网站、数据库、FTP、邮件等服务，还支持一键安装PHP、MySQL、Nginx、Apache等环境，非常适合小白用户使用。本文将介绍如何在群晖 NAS 上部署宝塔面板。</p></blockquote><div class="note info simple"><p>本文介绍的是通过Docker容器的方式在群晖 NAS 上部署宝塔面板，直接在系统内安装侵入较大，不推荐。</p></div><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>已在套件中心安装了Docker（Container Manager）</li></ul><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><ol><li>打开浏览器，输入群晖 NAS 的管理地址，例如：<code>http://192.168.1.169:5000</code></li><li>输入用户名和密码登录<br><img src="https://resources.r2wind.cn/img/202412/20241221161512.png" alt="登录"></li><li>点击左侧菜单栏中的<code>套件中心</code>，搜索<code>Docker</code>，点击<code>安装</code>，已安装的直接打开<br><img src="https://resources.r2wind.cn/img/202412/20241221161705.png" alt="安装Docker"></li><li>安装完成后，点击左侧菜单栏中的<code>Docker</code>，进入Docker管理界面<br><img src="https://resources.r2wind.cn/img/202412/20241221161815.png" alt="Docker"></li><li>点击左侧菜单栏中的<code>项目</code>，点击<code>新增</code>，填写项目名称，设置项目路径<br><img src="https://resources.r2wind.cn/img/202412/20241221162214.png" alt="下载镜像"></li></ol><div class="note warning simple"><p>2025年1月14日更新：修改持久化存储方式为存储整个容器，因此只需要在项目路径下新建 www 目录即可，不需要再新建其他目录。</p><p>请在对应的项目路径下新建 www 目录，用于持久化存储宝塔面板网站数据和MySQL数据。<br>PS：理论上来讲应该自动创建的，但不清楚群晖什么情况，不会自动创建。<br>比如我的项目路径是<code>docker</code>，那我需要通过<code>File Station</code>，在<code>docker</code>目录下新建<code>www</code>目录，如下图所示：<br><img src="https://resources.r2wind.cn/img/202412/20241221163437.png" alt="创建目录"></p></div><ol start="6"><li>回到<code>项目</code>页面，选择<code>创建docker-compose.yml</code>文件，并填写如下内容：</li></ol><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">btpanel:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">docker.cnb.cool/btpanel/btpanel:nas</span> <span class="comment"># 宝塔面板官方镜像（国内源），也可直接使用dockerhub镜像 btpanel/baota:nas</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;38888:8888&quot;</span> <span class="comment"># 宝塔面板对外访问端口，默认38888</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;8080:80&quot;</span> <span class="comment"># Web服务端口，默认8080</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;8443:443&quot;</span> <span class="comment"># HTTPS服务端口，默认8443</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;33306:3306&quot;</span> <span class="comment"># MySQL服务端口，默认33306，不需要暴露到容器外可删除</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;22022:22&quot;</span> <span class="comment"># SSH服务端口，默认22022，不需要暴露到容器外可删除</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;32888:888&quot;</span> <span class="comment"># PHPMyAdmin服务端口，默认32888，不需要暴露到容器外可删除</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;./www:/www&quot;</span> <span class="comment"># 持久化存储容器数据，默认/www，可根据实际情况调整目录</span></span><br><span class="line">    <span class="attr">labels:</span></span><br><span class="line">      <span class="attr">createdBy:</span> <span class="string">&quot;bt_apps&quot;</span></span><br></pre></td></tr></table></figure><p><img src="https://resources.r2wind.cn/img/202412/20241221163833.png" alt="创建docker-compose.yml"><br>7. 点击下一步，Web Station设置，选择<code>不使用Web Station</code>，点击<code>下一步</code>，完成项目创建<br><img src="https://resources.r2wind.cn/img/202412/20241221164003.png" alt="Web Station设置"><br>8. 确认信息无误后，点击<code>完成</code><br><img src="https://resources.r2wind.cn/img/202412/20241221164051.png" alt="下载镜像"><br>9. 等待镜像下载并启动<br><img src="https://resources.r2wind.cn/img/202412/20241221164226.png" alt="下载镜像"><br>看到如下提示，说明容器已启动成功<br><img src="https://resources.r2wind.cn/img/202412/20241221164525.png" alt="容器启动成功"><br>10. 打开浏览器，输入<code>http://群晖IP:38888/btpanel</code>，打开后输入用户名<code>btpanel</code>，密码<code>btpaneldocker</code>登录宝塔面板。<br><img src="https://resources.r2wind.cn/img/202412/20241221164726.png" alt="宝塔面板"></p><div class="note danger simple"><p>登陆后请务必到面板设置中修改账户密码！登陆后请务必到面板设置中修改账户密码！登陆后请务必到面板设置中修改账户密码！</p></div><ol start="11"><li>按提示绑定宝塔面板官网账号，完成后即可使用宝塔面板。<br><img src="https://resources.r2wind.cn/img/202412/20241209112735.png" alt="绑定账号"></li><li>镜像已经预装了Nginx，其他环境请前往左侧导航栏-应用商店安装。</li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;群晖作为老牌NAS厂商，其DSM系统功能强大，支持Docker容器，可以方便的部署各种应用。宝塔面板是一款免费的服务器管理面板，支持Linux和Windows系统，可以帮助你快速搭建网站、数据库、FTP、邮件等服务，还支持一键安装PHP、MySQL</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="宝塔面板" scheme="https://r2wind.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/"/>
    
    <category term="NAS" scheme="https://r2wind.cn/tags/NAS/"/>
    
    <category term="群晖" scheme="https://r2wind.cn/tags/%E7%BE%A4%E6%99%96/"/>
    
  </entry>
  
  <entry>
    <title>在飞牛 NAS 上部署宝塔面板</title>
    <link href="https://r2wind.cn/articles/20241209.html"/>
    <id>https://r2wind.cn/articles/20241209.html</id>
    <published>2024-12-09T02:06:18.000Z</published>
    <updated>2024-12-09T02:06:18.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>飞牛 NAS 最近在家庭私有云市场上越来越火爆，很多小伙伴还想在家里搭建个网站或者其他开源的Web应用，比如一些相册、笔记、影视库，甚至WordPress、Discuz、Typecho等，这时候宝塔面板就派上用场了。宝塔面板是一款免费的服务器管理面板，支持Linux和Windows系统，可以帮助你快速搭建网站、数据库、FTP、邮件等服务，还支持一键安装PHP、MySQL、Nginx、Apache等环境，非常适合小白用户使用。本文将介绍如何在飞牛 NAS 上部署宝塔面板。</p></blockquote><div class="note info simple"><p>本文介绍的是通过Docker容器的方式在飞牛 NAS 上部署宝塔面板，直接在系统内安装侵入较大，不推荐。</p></div><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>已部署飞牛 NAS</li><li>安装并完成了数据盘的初始化（已创建存储空间）</li></ul><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><ol><li>打开浏览器，输入飞牛 NAS 的管理地址，例如：<code>http://192.168.164.128:8000/login</code></li><li>输入用户名和密码登录<br><img src="https://resources.r2wind.cn/img/202412/20241209102745.png" alt="登录"></li><li>登录后双击桌面上的“Docker”图标，进入Docker管理界面<br><img src="https://resources.r2wind.cn/img/202412/20241209103115.png" alt="Docker"></li><li>首次进入会提示设置存储路径，按引导完成设置。<br><img src="https://resources.r2wind.cn/img/202412/20241209103230.png" alt="设置存储路径"></li><li>选择左侧菜单栏中的<code>compose</code>，点击<code>新建项目</code>。<br><img src="https://resources.r2wind.cn/img/202412/20241209103358.png" alt="新建项目"></li><li>在弹出的对话框中填写项目名称、存储路径、选择<code>创建docker-compose.yml</code>文件。<br><img src="https://resources.r2wind.cn/img/202412/20241209103830.png" alt="填写项目信息"></li><li>选择<code>创建docker-compose.yml</code>文件，并填写如下内容：</li></ol><div class="note danger simple"><p>注释可能会导致飞牛报错，目前尚不知道具体原因，请在创建时自行删除所有#开头的注释</p></div><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">btpanel:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">docker.cnb.cool/btpanel/btpanel:nas</span> <span class="comment"># 宝塔面板官方镜像（国内源），也可直接使用dockerhub镜像 btpanel/baota:nas</span></span><br><span class="line">    <span class="attr">deploy:</span></span><br><span class="line">      <span class="attr">resources:</span></span><br><span class="line">        <span class="attr">limits:</span></span><br><span class="line">          <span class="attr">cpus:</span> <span class="string">&quot;2.0&quot;</span>  <span class="comment"># 最大CPU核心限制，根据实际情况调整</span></span><br><span class="line">          <span class="attr">memory:</span> <span class="string">&quot;1024M&quot;</span>  <span class="comment"># 最大内存限制，根据实际情况调整</span></span><br><span class="line">      <span class="attr">restart_policy:</span></span><br><span class="line">        <span class="attr">condition:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;38888:8888&quot;</span> <span class="comment"># 宝塔面板对外访问端口，默认38888</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;8080:80&quot;</span> <span class="comment"># Web服务端口，默认8080</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;8443:443&quot;</span> <span class="comment"># HTTPS服务端口，默认8443</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;33306:3306&quot;</span> <span class="comment"># MySQL服务端口，默认33306，不需要暴露到容器外可删除</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;22022:22&quot;</span> <span class="comment"># SSH服务端口，默认22022，不需要暴露到容器外可删除</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;32888:888&quot;</span> <span class="comment"># PHPMyAdmin服务端口，默认32888，不需要暴露到容器外可删除</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;/www:/www&quot;</span> <span class="comment"># 持久化存储容器数据，默认挂载到/www，可根据实际情况调整目录</span></span><br><span class="line">    <span class="attr">labels:</span></span><br><span class="line">      <span class="attr">createdBy:</span> <span class="string">&quot;bt_apps&quot;</span></span><br></pre></td></tr></table></figure><div class="note tip simple"><ul><li>limits: cpus 为最大CPU核心限制，memory 为最大内存限制，根据实际情况调整，不要超过系统资源。</li><li>不需要限制CPU和内存可以删除<code>resources</code>部分。</li></ul></div><p><img src="https://resources.r2wind.cn/img/202412/20241209110150.png" alt="填写docker-compose.yml"><br>8. 勾选<code>创建项目后立即启动</code>，点击<code>完成</code>。<br><img src="https://resources.r2wind.cn/img/202412/20241209110314.png" alt="启动项目"><br>9. 等待项目构建完成。<br><img src="https://resources.r2wind.cn/img/202412/20241209111931.png" alt="构建完成"><br>10. 构建完成后，在浏览器中输入<code>http://IP:38888/btpanel</code>（IP为飞牛 NAS 的IP地址），输入用户名<code>btpanel</code>，密码<code>btpaneldocker</code>登录宝塔面板。<br><img src="https://resources.r2wind.cn/img/202412/20241209112250.png" alt="登录宝塔面板"></p><div class="note danger simple"><p>登陆后请务必到面板设置中修改账户密码！登陆后请务必到面板设置中修改账户密码！登陆后请务必到面板设置中修改账户密码！</p></div><ol start="11"><li>按提示绑定宝塔面板官网账号，完成后即可使用宝塔面板。<br><img src="https://resources.r2wind.cn/img/202412/20241209112735.png" alt="绑定账号"></li><li>首次登录会提示安装基础环境，根据需要选择安装，推荐LNMP环境。<br><img src="https://resources.r2wind.cn/img/202412/20241209113852.png" alt="安装基础环境"></li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;飞牛 NAS 最近在家庭私有云市场上越来越火爆，很多小伙伴还想在家里搭建个网站或者其他开源的Web应用，比如一些相册、笔记、影视库，甚至WordPress、Discuz、Typecho等，这时候宝塔面板就派上用场了。宝塔面板是一款免费的服务器管理面</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="宝塔面板" scheme="https://r2wind.cn/tags/%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF/"/>
    
    <category term="NAS" scheme="https://r2wind.cn/tags/NAS/"/>
    
    <category term="飞牛" scheme="https://r2wind.cn/tags/%E9%A3%9E%E7%89%9B/"/>
    
  </entry>
  
  <entry>
    <title>云原生构建（CNB）+腾讯云COS + Hexo 部署静态博客网站</title>
    <link href="https://r2wind.cn/articles/20241003.html"/>
    <id>https://r2wind.cn/articles/20241003.html</id>
    <published>2024-10-03T09:06:30.000Z</published>
    <updated>2024-10-03T09:06:30.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>云原生构建（Cloud Native Buildpacks，CNB）是一款基于 Docker 生态，对环境、缓存、插件进行抽象，通过声明式的语法，帮助开发者以更酷的方式构建软件的工具，本文将介绍如何使用 CNB 构建 Hexo 静态博客，并部署到腾讯云对象存储（COS）。</p></blockquote><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ol><li>注册云原生构建（CNB）账号，并完成实名认证，<a href="https://cnb.cool/profile/auth">点此注册</a></li><li>已完成CNB组织的创建，注册完成后，在右上角<code>头像</code>处，点击<code>我的组织</code>，然后点击<code>创建组织</code>，按提示完成组织创建</li><li>已开通<a href="https://console.cloud.tencent.com/cos">腾讯云对象存储（COS）服务</a></li></ol><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><h3 id="新建代码仓库"><a href="#新建代码仓库" class="headerlink" title="新建代码仓库"></a>新建代码仓库</h3><ol><li>登录<a href="https://cnb.cool/">云原生构建（CNB）</a>控制台，在右上角<code>头像</code>处，点击<code>我的仓库</code>，然后点击<code>创建仓库</code>，按提示完成仓库创建<br><img src="https://resources.r2wind.cn/img/202410/20241003103601.png" alt="新建代码仓库"></li></ol><div class="note info flat"><p>仓库归属：选择你的组织<br>仓库名称：填写你的仓库名称<br>仓库描述：填写你的仓库描述<br>公开性：选择是否公开，建议私有</p></div><ol start="2"><li>点击<code>创建</code>，完成仓库创建</li><li>创建完成后，页面将提示<code>仓库暂未完成初始化，您可以选择以下任一方式完成仓库的初始化</code>，这时点击<code>云原生开发</code><br><img src="https://resources.r2wind.cn/img/202410/20241003104012.png" alt="仓库初始化"></li><li>等待环境初始化完成，点击<code>使用 WEB IDE 打开</code>，进入代码编辑界面<br><img src="https://resources.r2wind.cn/img/202410/20241003104201.png" alt="环境构建完成"></li><li>在编辑器的<code>终端</code>中，输入以下命令，克隆 Hexo 仓库到当前目录</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">cnb-init-from https://cnb.cool/examples/ecosystem/hexo-cos-demo.git</span><br></pre></td></tr></table></figure><ol start="6"><li>等待克隆完成<br><img src="https://resources.r2wind.cn/img/202410/20241003104517.png" alt="克隆仓库"></li><li>完成后关闭当前窗口，返回仓库页面，刷新，并点击<code>云原生构建</code><br><img src="https://resources.r2wind.cn/img/202410/20241003161801.png" alt="返回仓库页面"></li><li>找到通过<code>vscode</code>触发的任务并点击<br><img src="https://resources.r2wind.cn/img/202410/20241003104848.png" alt="触发任务"></li><li>进入后点击<code>停止构建</code><br><img src="https://resources.r2wind.cn/img/202410/20241003160240.png" alt="停止构建"></li></ol><h3 id="新建存储桶"><a href="#新建存储桶" class="headerlink" title="新建存储桶"></a>新建存储桶</h3><ol><li>登录<a href="https://console.cloud.tencent.com/cos">腾讯云对象存储（COS）控制台</a>，在左侧导航栏中点击<code>存储桶列表</code>,点击<code>创建存储桶</code><br><img src="https://resources.r2wind.cn/img/202410/20241003134927.png" alt="新建存储桶"></li><li>按提示填写信息完成存储桶创建<br><img src="https://resources.r2wind.cn/img/202410/20241003135237.png" alt="填写存储桶信息"></li></ol><div class="note info flat"><p>地域：选择存储桶所在地域，就近选择即可，默认广州<br>名称：填写存储桶名称<br>访问权限：选择<code>公有读私有写</code>，建议选择<code>私有读写</code>，此处为了演示方便选择<code>公有读私有写</code><br>其他默认即可</p></div><div class="note warning flat"><p>此处仅为了演示方便，选择了公有读私有写，实际使用时不建议大家直接使用 COS 存储桶直接对外提供访问服务，而是通过 CDN 等服务进行加速访问。</p></div><ol start="3"><li>创建完成后保存<code>存储桶名称</code>和<code>存储桶地域</code>，后续需要使用<br><img src="https://resources.r2wind.cn/img/202410/20241003135840.png" alt="存储桶信息"></li></ol><h3 id="新建腾讯云API密钥"><a href="#新建腾讯云API密钥" class="headerlink" title="新建腾讯云API密钥"></a>新建腾讯云API密钥</h3><ol><li>登录<a href="https://console.cloud.tencent.com/cam/capi">腾讯云-访问管理</a>，点击<code>新建密钥</code><br><img src="https://resources.r2wind.cn/img/202410/20241003140033.png" alt="新建密钥"></li><li>保存<code>SecretId</code>和<code>SecretKey</code>，后续需要使用<br><img src="https://resources.r2wind.cn/img/202410/20241003140119.png" alt="密钥信息"></li></ol><h3 id="新建密钥仓库"><a href="#新建密钥仓库" class="headerlink" title="新建密钥仓库"></a>新建密钥仓库</h3><blockquote><p>密钥仓库用于存储敏感信息，如密钥、密码等供构建时使用</p></blockquote><ol><li>登录<a href="https://cnb.cool/">云原生构建（CNB）</a>控制台，在右上角<code>头像</code>处，点击<code>我的仓库</code>，然后点击<code>创建仓库</code>，按提示完成仓库创建<br><img src="https://resources.r2wind.cn/img/202410/20241003140454.png" alt="新建密钥仓库"></li></ol><div class="note info flat"><p>仓库归属：选择你的组织<br>仓库名称：填写你的仓库名称<br>仓库描述：填写你的仓库描述<br>公开性：选择密钥仓库</p></div><ol start="2"><li>点击<code>创建</code>，完成仓库创建</li><li>点击<code>新建</code>，选择<code>新建文件</code>，填写文件名<code>hexo_cos_secret.yml</code>，内容如下</li></ol><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 腾讯云 SecretId</span></span><br><span class="line"><span class="attr">COS_SECRET_ID:</span> <span class="string">AKIDCOxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span></span><br><span class="line"><span class="comment"># 腾讯云 SecretKey</span></span><br><span class="line"><span class="attr">COS_SECRET_KEY:</span> <span class="string">tt3S4fExxxxxxxxxxxxxxxxxxxxxxxx</span></span><br><span class="line"><span class="comment"># 腾讯云 COS 存储桶名称</span></span><br><span class="line"><span class="attr">COS_BUCKET:</span> <span class="string">hexo-demo-xxxxxxx</span></span><br><span class="line"><span class="comment"># 腾讯云 COS 存储桶地域</span></span><br><span class="line"><span class="attr">COS_REGION:</span> <span class="string">ap-guangzhou</span></span><br></pre></td></tr></table></figure><p><img src="https://resources.r2wind.cn/img/202410/20241003142551.png" alt="新建密钥文件"><br>4. 点击<code>提交</code>，完成密钥文件创建<br>5. 创建完成后在<code>仓库</code>页面，点击刚刚创建的文件，在浏览器地址栏中复制<code>链接地址</code>，后续需要使用<br><img src="https://resources.r2wind.cn/img/202410/20241003142829.png" alt="复制链接地址"></p><h3 id="编辑站点基本信息-新建页面"><a href="#编辑站点基本信息-新建页面" class="headerlink" title="编辑站点基本信息 &amp;&amp; 新建页面"></a>编辑站点基本信息 &amp;&amp; 新建页面</h3><ol><li>在仓库首页点击<code>云原生开发</code><br><img src="https://resources.r2wind.cn/img/202410/20241003105400.png" alt="云原生开发"></li><li>等待环境初始化完成，点击<code>使用 WEB IDE 打开</code>，进入代码编辑界面<br><img src="https://resources.r2wind.cn/img/202410/20241003105950.png" alt="环境构建完成"></li><li>进入编辑器后，打开<code>_config.yml</code>文件，修改站点基本信息，完成修改后保存即可<br><img src="https://resources.r2wind.cn/img/202410/20241003110501.png" alt="修改站点基本信息"></li><li>您可通过在终端运行<code>hexo n 文章标题</code>命令新建文章，也可直接在<code>source/_posts</code>目录下新建<code>md</code>文件，编辑文章内容，具体操作可参考<a href="https://hexo.io/zh-cn/docs/writing">Hexo官方文档</a>，这里不再赘述</li></ol><h3 id="配置云原生构建"><a href="#配置云原生构建" class="headerlink" title="配置云原生构建"></a>配置云原生构建</h3><ol><li>在编辑器中打开<code>.cnb.yml</code>文件，修改配置<br><img src="https://resources.r2wind.cn/img/202410/20241003143437.png" alt="修改构建配置"></li></ol><div class="note info flat"><ul><li>去除指定行的注释符<code>#</code></li><li>将<code>import</code>行中的链接替换成密钥仓库文件的链接地址</li></ul></div><ol start="2"><li>完成修改后保存即可<br><img src="https://resources.r2wind.cn/img/202410/20241003144017.png" alt="保存配置"></li></ol><h3 id="提交代码并构建"><a href="#提交代码并构建" class="headerlink" title="提交代码并构建"></a>提交代码并构建</h3><ol><li>在编辑器左侧菜单栏中点击<code>源代码管理</code><br><img src="https://resources.r2wind.cn/img/202410/20241003144218.png" alt="源代码管理"></li><li>在弹出的窗口中，填写<code>提交信息</code>，点击<code>提交</code><br><img src="https://resources.r2wind.cn/img/202410/20241003144419.png" alt="提交代码"></li><li>提交完成后点击<code>Sync Changes</code>，同步代码<br><img src="https://resources.r2wind.cn/img/202410/20241003144515.png" alt="同步代码"></li><li>等待同步完成后，返回仓库页面，点击<code>云原生构建</code><br><img src="https://resources.r2wind.cn/img/202410/20241003144720.png" alt="返回仓库页面"></li><li>点击<code>通过 push 触发的任务</code>，进入构建页面<br><img src="https://resources.r2wind.cn/img/202410/20241003144816.png" alt="触发构建"></li><li>可在构建页面查看构建日志，等待构建完成</li><li>构建完成后，我们可以前往<a href="https://console.cloud.tencent.com/cos">腾讯云 COS 控制台</a>查看存储桶中是否已经上传了静态网站文件<br><img src="https://resources.r2wind.cn/img/202410/20241003145031.png" alt="查看存储桶"><br><img src="https://resources.r2wind.cn/img/202410/20241003150926.png" alt="查看存储桶"></li></ol><h3 id="开启存储桶静态网站"><a href="#开启存储桶静态网站" class="headerlink" title="开启存储桶静态网站"></a>开启存储桶静态网站</h3><ol><li>在<a href="https://console.cloud.tencent.com/cos">腾讯云 COS 控制台</a>中，点击<code>存储桶列表</code>，找到刚刚创建的存储桶，点击<code>配置管理</code></li><li>在左侧导航栏中点击<code>静态网站</code>，点击<code>编辑</code><br><img src="https://resources.r2wind.cn/img/202410/20241003151046.png" alt="启用静态网站"></li><li>勾选<code>启用静态网站</code>，填写<code>索引文档</code>，点击<code>保存</code><br><img src="https://resources.r2wind.cn/img/202410/20241003151146.png" alt="配置静态网站"></li></ol><h3 id="绑定自定义域名"><a href="#绑定自定义域名" class="headerlink" title="绑定自定义域名"></a>绑定自定义域名</h3><blockquote><p>2024年1月1日后创建的桶不支持使用默认域名在浏览器预览文件，所以需要绑定自定义域名，境内存储桶需要绑定已备案的域名</p></blockquote><ol><li>在<a href="https://console.cloud.tencent.com/cos">腾讯云 COS 控制台</a>中，点击<code>存储桶列表</code>，找到刚刚创建的存储桶，点击<code>配置管理</code></li><li>在左侧导航栏中点击<code>域名与传输管理-自定义源站域名</code>，点击<code>添加域名</code><br><img src="https://resources.r2wind.cn/img/202410/20241003151515.png" alt="添加域名"></li><li>按提示填写信息完成域名绑定<br><img src="https://resources.r2wind.cn/img/202410/20241003151616.png" alt="填写域名信息"></li></ol><div class="note info flat"><p>域名：填写您的域名<br>源站类型：静态网站源站</p></div><ol start="4"><li>添加完成后请前往域名服务商处添加解析，将域名解析到存储桶静态网站域名<br><img src="https://resources.r2wind.cn/img/202410/20241003151926.png" alt="添加解析"></li><li>解析完成后，即可通过域名访问静态网站<br><img src="https://resources.r2wind.cn/img/202410/20241003154347.png" alt="访问静态网站"></li></ol><h2 id="后续操作"><a href="#后续操作" class="headerlink" title="后续操作"></a>后续操作</h2><p>正如上面所提到的，使用 COS 直接对外提供访问是一个很危险的行为，建议大家使用 CDN 等服务进行加速访问。<br>PS：有人可能好奇密钥为什么不打码，因为写完文章就删了，但是如果你是在生产环境中使用，请务必保护好你的密钥。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;云原生构建（Cloud Native Buildpacks，CNB）是一款基于 Docker 生态，对环境、缓存、插件进行抽象，通过声明式的语法，帮助开发者以更酷的方式构建软件的工具，本文将介绍如何使用 CNB 构建 Hexo 静态博客，并部署到腾</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="CNB" scheme="https://r2wind.cn/tags/CNB/"/>
    
    <category term="建站" scheme="https://r2wind.cn/tags/%E5%BB%BA%E7%AB%99/"/>
    
    <category term="云原生构建" scheme="https://r2wind.cn/tags/%E4%BA%91%E5%8E%9F%E7%94%9F%E6%9E%84%E5%BB%BA/"/>
    
  </entry>
  
  <entry>
    <title>使用 QuicTLS 编译 Nginx 并开启 Quic 或 HTTP/3</title>
    <link href="https://r2wind.cn/articles/20240307.html"/>
    <id>https://r2wind.cn/articles/20240307.html</id>
    <published>2024-03-07T00:06:30.000Z</published>
    <updated>2024-04-11T09:06:30.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>之前在 Nginx-Quic 分支被合并到了 Nginx 主线的时候写过一篇使用 BoringSSL 编译 Nginx 并开启 Quic 或 HTTP&#x2F;3 的文章，详见 <a href="https://r2wind.cn/articles/20230526.html">Nginx 编译开启 Quic 或 HTTP&#x2F;3</a>。但是由于 BoringSSL 上个月发布了一个破坏性的更新导致编译出错，虽然最后解决了问题但回头想想觉得还是可以转向更稳定、兼容性更好的 QuicTLS，所以本文将为您介绍如何使用 QuicTLS 编译 Nginx 并开启 Quic 或 HTTP&#x2F;3。</p></blockquote><h2 id="安装依赖"><a href="#安装依赖" class="headerlink" title="安装依赖"></a>安装依赖</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Debian 11或12</span></span><br><span class="line">apt update</span><br><span class="line">apt install build-essential ca-certificates zlib1g-dev libpcre3 libpcre3-dev tar unzip libssl-dev wget curl git cmake ninja-build mercurial libunwind-dev pkg-config libjemalloc-dev</span><br><span class="line"><span class="comment"># Ubuntu 22.04或20.04</span></span><br><span class="line"><span class="built_in">sudo</span> su</span><br><span class="line"><span class="built_in">cd</span> /root</span><br><span class="line">apt update</span><br><span class="line">apt install build-essential ca-certificates zlib1g-dev libpcre3 libpcre3-dev tar unzip libssl-dev wget curl git cmake ninja-build mercurial libunwind-dev pkg-config libjemalloc-dev</span><br><span class="line"><span class="comment"># CentOS 8 Stream/TencentOS Server 3.1</span></span><br><span class="line">dnf update</span><br><span class="line">dnf install gcc gcc-c++ pcre-devel openssl-devel zlib-devel cmake make libunwind-devel hg git wget jemalloc</span><br><span class="line"><span class="comment"># OpenCloudOS Server 8</span></span><br><span class="line">dnf update</span><br><span class="line">dnf install gcc gcc-c++ pcre-devel openssl-devel zlib-devel cmake make hg git wget jemalloc</span><br></pre></td></tr></table></figure><h2 id="编译-QuicTLS"><a href="#编译-QuicTLS" class="headerlink" title="编译 QuicTLS"></a>编译 QuicTLS</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">wget https://github.com/quictls/openssl/archive/refs/tags/openssl-3.1.5-quic1.tar.gz</span><br><span class="line">tar -xzf openssl-3.1.5-quic1.tar.gz </span><br><span class="line"><span class="built_in">cd</span> openssl-openssl-3.1.5-quic1</span><br><span class="line">./config --prefix=$(<span class="built_in">pwd</span>)/build no-shared</span><br><span class="line">make</span><br><span class="line">make install_sw</span><br><span class="line"><span class="built_in">cd</span> ..</span><br></pre></td></tr></table></figure><h2 id="安装-brotli-压缩"><a href="#安装-brotli-压缩" class="headerlink" title="安装 brotli 压缩"></a>安装 brotli 压缩</h2><blockquote><p>不需要请跳过，并在编译时删除–add-module&#x3D;..&#x2F;ngx_brotli</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> --recurse-submodules -j8 https://github.com/google/ngx_brotli</span><br><span class="line"><span class="built_in">cd</span> ngx_brotli/deps/brotli</span><br><span class="line"><span class="built_in">mkdir</span> out &amp;&amp; <span class="built_in">cd</span> out</span><br><span class="line">cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS=<span class="string">&quot;-Ofast -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections&quot;</span> -DCMAKE_CXX_FLAGS=<span class="string">&quot;-Ofast -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections&quot;</span> -DCMAKE_INSTALL_PREFIX=./installed ..</span><br><span class="line">cmake --build . --config Release --target brotlienc</span><br><span class="line"><span class="built_in">cd</span> ../../../..</span><br></pre></td></tr></table></figure><h2 id="编译-Nginx"><a href="#编译-Nginx" class="headerlink" title="编译 Nginx"></a>编译 Nginx</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">hg <span class="built_in">clone</span> https://hg.nginx.org/nginx</span><br><span class="line"><span class="built_in">cd</span> nginx</span><br><span class="line">./auto/configure --user=www-data --group=www-data --prefix=/www/server/nginx --with-pcre  --add-module=../ngx_brotli --with-http_v2_module --with-stream --with-stream_ssl_module --with-http_ssl_module --with-http_gzip_static_module --with-http_gunzip_module --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc --with-http_dav_module --with-http_v3_module --with-cc-opt=<span class="string">&quot;-I../openssl-openssl-3.1.5-quic1/build/include&quot;</span> --with-ld-opt=<span class="string">&quot;-L../openssl-openssl-3.1.5-quic1/build/lib64&quot;</span></span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure><h2 id="添加-www-用户"><a href="#添加-www-用户" class="headerlink" title="添加 www 用户"></a>添加 www 用户</h2><div class="note warning flat"><p>大部分系统下默认存在着<code>www-data</code>用户组和<code>www-data</code>用户，如果没有请执行以下命令添加。</p></div><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">groupadd www-data</span><br><span class="line">useradd -g www-data -s /sbin/nologin www-data</span><br></pre></td></tr></table></figure><h2 id="添加进程管理"><a href="#添加进程管理" class="headerlink" title="添加进程管理"></a>添加进程管理</h2><blockquote><p>本人使用的是 systemd，如果你使用的是其他进程管理，请自行修改</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /usr/lib/systemd/system/nginx.service</span><br></pre></td></tr></table></figure><p>输入如下内容：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">[Unit]</span><br><span class="line">Description=nginx</span><br><span class="line">After=network.target</span><br><span class="line"></span><br><span class="line">[Service]</span><br><span class="line">Type=forking</span><br><span class="line">ExecStart=/www/server/nginx/sbin/nginx</span><br><span class="line">ExecReload=/www/server/nginx/sbin/nginx -s reload</span><br><span class="line">ExecStop=/www/server/nginx/sbin/nginx -s quit</span><br><span class="line">PrivateTmp=<span class="literal">true</span></span><br><span class="line"></span><br><span class="line">[Install]</span><br><span class="line">WantedBy=multi-user.target</span><br></pre></td></tr></table></figure><h2 id="启动"><a href="#启动" class="headerlink" title="启动"></a>启动</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl start nginx</span><br></pre></td></tr></table></figure><h2 id="开机自启"><a href="#开机自启" class="headerlink" title="开机自启"></a>开机自启</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl <span class="built_in">enable</span> nginx</span><br></pre></td></tr></table></figure><h2 id="配置文件"><a href="#配置文件" class="headerlink" title="配置文件"></a>配置文件</h2><p>示例配置文件如下，更多特性请参考官方文档：<a href="https://nginx.org/en/docs/http/ngx_http_v3_module.html">https://nginx.org/en/docs/http/ngx_http_v3_module.html</a></p><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">server</span> &#123;</span><br><span class="line">    <span class="attribute">listen</span> <span class="number">443</span> ssl;</span><br><span class="line">    <span class="attribute">listen</span> [::]:<span class="number">443</span> ssl;</span><br><span class="line"></span><br><span class="line">    <span class="comment"># 用于支持Quic或HTTP/3</span></span><br><span class="line">    <span class="attribute">listen</span> <span class="number">443</span> quic reuseport;</span><br><span class="line">    <span class="attribute">listen</span> [::]:<span class="number">443</span> quic reuseport;</span><br><span class="line"></span><br><span class="line">    <span class="comment"># 用以支持HTTP/2</span></span><br><span class="line">    <span class="attribute">http2</span> <span class="literal">on</span>;</span><br><span class="line"></span><br><span class="line">    <span class="attribute">ssl_certificate</span> /path/to/signed_cert_plus_intermediates;</span><br><span class="line">    <span class="attribute">ssl_certificate_key</span> /path/to/private_key;</span><br><span class="line">    <span class="attribute">ssl_session_timeout</span> <span class="number">1d</span>;</span><br><span class="line">    <span class="attribute">ssl_session_cache</span> shared:MozSSL:<span class="number">10m</span>;  <span class="comment"># about 40000 sessions</span></span><br><span class="line">    <span class="attribute">ssl_session_tickets</span> <span class="literal">off</span>;</span><br><span class="line"></span><br><span class="line">    <span class="section">location</span> / &#123;</span><br><span class="line">        <span class="attribute">root</span> html;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="comment"># modern configuration</span></span><br><span class="line">    <span class="attribute">ssl_protocols</span> TLSv1.<span class="number">3</span>;</span><br><span class="line">    <span class="attribute">ssl_prefer_server_ciphers</span> <span class="literal">off</span>;</span><br><span class="line"></span><br><span class="line">    <span class="comment"># HSTS (ngx_http_headers_module is required) (63072000 seconds)</span></span><br><span class="line">    <span class="attribute">add_header</span> Strict-Transport-Security <span class="string">&quot;max-age=63072000&quot;</span> always;</span><br><span class="line"></span><br><span class="line">    <span class="comment"># OCSP stapling</span></span><br><span class="line">    <span class="attribute">ssl_stapling</span> <span class="literal">on</span>;</span><br><span class="line">    <span class="attribute">ssl_stapling_verify</span> <span class="literal">on</span>;</span><br><span class="line"></span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><p>配置完成后，重载 Nginx 即可生效</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl reload nginx</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;之前在 Nginx-Quic 分支被合并到了 Nginx 主线的时候写过一篇使用 BoringSSL 编译 Nginx 并开启 Quic 或 HTTP&amp;#x2F;3 的文章，详见 &lt;a href=&quot;https://r2wind.cn/article</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="建站" scheme="https://r2wind.cn/tags/%E5%BB%BA%E7%AB%99/"/>
    
    <category term="Nginx" scheme="https://r2wind.cn/tags/Nginx/"/>
    
  </entry>
  
  <entry>
    <title>利用腾讯云轻量应用服务器搭建 WHOIS 查询接口</title>
    <link href="https://r2wind.cn/articles/20240227.html"/>
    <id>https://r2wind.cn/articles/20240227.html</id>
    <published>2024-02-27T11:08:00.000Z</published>
    <updated>2024-02-28T00:08:00.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>WHOIS 是一个用于查询域名&#x2F;IP&#x2F;ASN 信息的协议，可以查询资源的注册信息等，本文将介绍如何利用轻量应用服务器搭建 WHOIS 查询接口。</p></blockquote><h2 id="部署轻量应用服务器"><a href="#部署轻量应用服务器" class="headerlink" title="部署轻量应用服务器"></a>部署轻量应用服务器</h2><ul><li>购买腾讯云轻量应用服务器的步骤本文不再赘述，您可以通过<a href="https://cloud.tencent.com/act">腾讯云活动</a>或在<a href="https://console.cloud.tencent.com/lighthouse">轻量应用服务器控制台</a>新建购买。</li><li>本文以 Debian 12 为例</li></ul><h2 id="登录轻量应用服务器"><a href="#登录轻量应用服务器" class="headerlink" title="登录轻量应用服务器"></a>登录轻量应用服务器</h2><ol><li>打开<a href="https://console.cloud.tencent.com/lighthouse">轻量应用服务器控制台</a>找到您的实例，并点击<code>登录</code>。<br><img src="https://resources.r2wind.cn/img/202402/20240227161024.png" alt="轻量应用服务器控制台"></li><li>点击<code>登录</code>登录到服务器。<br><img src="https://resources.r2wind.cn/img/202402/20240227162202.png" alt="登录服务器"></li><li>输入<code>sudo su</code>切换到 root 用户，然后输入<code>cd /root</code>进入 root 用户的家目录。<br><img src="https://resources.r2wind.cn/img/202402/20240227163547.png" alt="切换到 root 用户"></li></ol><h2 id="安装-WHOIS-工具"><a href="#安装-WHOIS-工具" class="headerlink" title="安装 WHOIS 工具"></a>安装 WHOIS 工具</h2><h3 id="安装依赖"><a href="#安装依赖" class="headerlink" title="安装依赖"></a>安装依赖</h3><ol><li>更新软件包。</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">apt update &amp;&amp; apt upgrade -y</span><br></pre></td></tr></table></figure><ol start="2"><li>在终端输入以下命令安装<code>redis-server</code>。</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">apt install redis-server -y</span><br></pre></td></tr></table></figure><p><img src="https://resources.r2wind.cn/img/202402/20240227164445.png" alt="安装 redis-server"></p><h3 id="安装-WHOIS"><a href="#安装-WHOIS" class="headerlink" title="安装 WHOIS"></a>安装 WHOIS</h3><ol><li>打开<a href="https://github.com/KincaidYang/whois/releases">Releases</a>页面，找到最新的版本，选择系统对应的版本复制下载链接，轻量应用服务器一般为<code>amd64</code>架构。<br><img src="https://resources.r2wind.cn/img/202402/20240227165501.png" alt="下载 WHOIS"></li><li>在终端输入以下命令下载并解压。</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> whois &amp;&amp; <span class="built_in">cd</span> whois</span><br><span class="line">wget https://github.com/KincaidYang/whois/releases/download/v0.1.6/whois_0.1.6_linux_amd64.tar.gz -O whois.tar.gz</span><br><span class="line">tar -xzf whois.tar.gz</span><br></pre></td></tr></table></figure><ol start="3"><li>修改配置文件。</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim config.json</span><br></pre></td></tr></table></figure><p><img src="https://resources.r2wind.cn/img/202402/20240227180114.png" alt="修改配置文件"></p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;redis&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">        <span class="attr">&quot;addr&quot;</span><span class="punctuation">:</span> <span class="string">&quot;localhost:6379&quot;</span><span class="punctuation">,</span></span><br><span class="line">        <span class="attr">&quot;password&quot;</span><span class="punctuation">:</span> <span class="string">&quot;&quot;</span><span class="punctuation">,</span></span><br><span class="line">        <span class="attr">&quot;db&quot;</span><span class="punctuation">:</span> <span class="number">0</span></span><br><span class="line">    <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;cacheExpiration&quot;</span><span class="punctuation">:</span> <span class="number">3600</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;port&quot;</span><span class="punctuation">:</span> <span class="number">8043</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;rateLimit&quot;</span><span class="punctuation">:</span> <span class="number">50</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><ul><li><code>redis</code>：Redis 服务器的地址、密码和数据库。</li><li><code>cacheExpiration</code>：缓存过期时间，单位秒。</li><li><code>port</code>：WHOIS 服务端口。</li><li><code>rateLimit</code>：限制每秒请求次数，请注意该限制针对的是程序向注册局发起查询的频率，而不是用户向 WHOIS 服务发起查询的频率，如需限制用户查询频率，请在 Nginx 或其他代理中配置。</li></ul><h3 id="启动-WHOIS"><a href="#启动-WHOIS" class="headerlink" title="启动 WHOIS"></a>启动 WHOIS</h3><ol><li>在终端输入以下命令启动 WHOIS。</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./whois</span><br></pre></td></tr></table></figure><ol start="2"><li>程序启动后会显示<code>Server is listening on port 8043...</code><br><img src="https://resources.r2wind.cn/img/202402/20240227183017.png" alt="启动 WHOIS"></li><li>使用浏览器访问<code>http://服务器公网IP:8043</code>，如果显示<code>No WHOIS or RDAP server known for TLD: </code>则说明 WHOIS 服务已启动成功。</li></ol><div class="note warning simple"><p>访问前请先前往<a href="https://console.cloud.tencent.com/lighthouse">腾讯云轻量应用服务器控制台</a>，点击对应服务器，在防火墙中开放 8043 端口。</p></div><ol start="4"><li>终端断开连接后 WHOIS 服务会停止，可以使用<code>screen</code>或<code>nohup</code>命令使其在后台运行，或参照下方教程设置<a href="#%E8%BF%9B%E7%A8%8B%E5%AE%88%E6%8A%A4">进程守护</a>。</li></ol><h3 id="进程守护"><a href="#进程守护" class="headerlink" title="进程守护"></a>进程守护</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /etc/systemd/system/httpwhois.service</span><br></pre></td></tr></table></figure><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">[Unit]</span><br><span class="line">[Unit]</span><br><span class="line">Description=httpwhois</span><br><span class="line">After=network.target</span><br><span class="line"></span><br><span class="line">[Service]</span><br><span class="line">Type=simple</span><br><span class="line">User=root</span><br><span class="line">Group=root</span><br><span class="line">ExecStart=/path/to/whois/whois</span><br><span class="line">WorkingDirectory=/path/to/whois</span><br><span class="line">Restart=on-failure</span><br><span class="line"></span><br><span class="line">[Install]</span><br><span class="line">WantedBy=multi-user.target</span><br></pre></td></tr></table></figure><ul><li><code>ExecStart</code>：程序路径。</li><li><code>WorkingDirectory</code>：程序所在目录，请将<code>/path/to/whois</code>替换为实际路径。</li></ul><p>设置完成后输入以下命令运行：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">systemctl start httpwhois</span><br><span class="line">systemctl <span class="built_in">enable</span> httpwhois</span><br></pre></td></tr></table></figure><h3 id="Nginx-反代"><a href="#Nginx-反代" class="headerlink" title="Nginx 反代"></a>Nginx 反代</h3><p>如果您需要使用域名访问 WHOIS 服务，可以使用 Nginx 反代，安装Nginx的步骤本文不再赘述，您可以参考<a href="https://r2wind.cn/articles/20230526.html">Nginx 编译开启 Quic 或 HTTP&#x2F;3</a>，下面是示例配置文件：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br></pre></td><td class="code"><pre><span class="line">server &#123;</span><br><span class="line">       listen 443 ssl;</span><br><span class="line">       listen [::]:443 ssl;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用于支持Quic或HTTP/3</span></span><br><span class="line">       listen 443 quic;</span><br><span class="line">       listen [::]:443 quic;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 开启HTTP/2</span></span><br><span class="line">       http2 on;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 设置域名</span></span><br><span class="line">       server_name whois.ddnsip.cn;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># Quic或HTTP/3响应头</span></span><br><span class="line">       add_header Alt-Svc <span class="string">&#x27;h3=&quot;:443&quot;; ma=86400&#x27;</span>;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># HSTS</span></span><br><span class="line">       add_header Strict-Transport-Security <span class="string">&quot;max-age=63072000; includeSubdomains; preload&quot;</span>;</span><br><span class="line">       add_header X-Frame-Options <span class="string">&quot;SAMEORIGIN&quot;</span>;</span><br><span class="line">       add_header X-Content-Type-Options <span class="string">&quot;nosniff&quot;</span>;</span><br><span class="line">       add_header X-XSS-Protection <span class="string">&quot;1; mode=block&quot;</span>;</span><br><span class="line">       add_header X-robot-Tag <span class="string">&quot;all&quot;</span>;</span><br><span class="line">       add_header x-download-options <span class="string">&quot;noopen&quot;</span>;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># CORS</span></span><br><span class="line">       add_header Access-Control-Allow-Origin *;</span><br><span class="line">       add_header Access-Control-Allow-Headers <span class="string">&quot;Origin, X-Requested-With, Content-Type, Accept&quot;</span>;</span><br><span class="line">       add_header Access-Control-Allow-Methods <span class="string">&quot;GET, POST, OPTIONS&quot;</span>;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 反代</span></span><br><span class="line">       location / &#123;</span><br><span class="line">              proxy_pass http://127.0.0.1:8043;</span><br><span class="line">          &#125;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># SSL配置</span></span><br><span class="line">       ssl_certificate  /etc/ssl/nginx/fullchain.crt; </span><br><span class="line">       ssl_certificate_key  /etc/ssl/nginx/private.key;</span><br><span class="line">       ssl_session_timeout 5m;</span><br><span class="line">       ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; </span><br><span class="line">       ssl_prefer_server_ciphers on;</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><h2 id="使用-WHOIS"><a href="#使用-WHOIS" class="headerlink" title="使用 WHOIS"></a>使用 WHOIS</h2><div class="note info simple"><p>WHOIS 服务支持查询域名、IP 和 ASN 的 WHOIS 信息。</p></div><ul><li><p>使用浏览器访问<code>http://服务器公网IP:8043/example.com</code>即可查询<code>example.com</code>的 WHOIS 信息。<br><img src="https://resources.r2wind.cn/img/202402/20240227184641.png" alt="查询域名 WHOIS"></p></li><li><p>使用浏览器访问<code>http://服务器公网IP:8043/1.1.1.1</code>即可查询<code>1.1.1.1</code>的 WHOIS 信息。<br><img src="https://resources.r2wind.cn/img/202402/20240227184800.png" alt="查询 IP WHOIS"></p></li><li><p>使用浏览器访问<code>http://服务器公网IP:8043/AS205794</code>即可查询<code>AS205794</code>的 WHOIS 信息。<br><img src="https://resources.r2wind.cn/img/202402/20240227184933.png" alt="查询 ASN WHOIS"></p></li></ul><h2 id="附录"><a href="#附录" class="headerlink" title="附录"></a>附录</h2><ul><li><a href="https://github.com/KincaidYang/whois">WHOIS 服务源码</a></li><li><a href="https://whois.ddnsip.cn/">WHOIS 服务示例</a></li></ul><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>QAQ 如果不想自建的话可以直接使用 whois.ddnsip.cn 提供的服务，如果有问题欢迎在<a href="https://github.com/KincaidYang/whois">代码仓库</a>上提交issue，如果觉得本文对您有所帮助，欢迎去<a href="https://github.com/KincaidYang/whois">GitHub</a>点个 star。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;WHOIS 是一个用于查询域名&amp;#x2F;IP&amp;#x2F;ASN 信息的协议，可以查询资源的注册信息等，本文将介绍如何利用轻量应用服务器搭建 WHOIS 查询接口。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;部署轻量应用服务器&quot;&gt;&lt;a h</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="域名" scheme="https://r2wind.cn/tags/%E5%9F%9F%E5%90%8D/"/>
    
    <category term="作品集" scheme="https://r2wind.cn/tags/%E4%BD%9C%E5%93%81%E9%9B%86/"/>
    
  </entry>
  
  <entry>
    <title>什么是 CNAME 展平？</title>
    <link href="https://r2wind.cn/articles/20240109.html"/>
    <id>https://r2wind.cn/articles/20240109.html</id>
    <published>2024-01-09T10:21:49.000Z</published>
    <updated>2024-04-26T10:21:49.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>有些小伙伴们会经常遇到一个问题，在当前主机记录已经存在 CNAME 类型的记录后再在当前主机记录下添加其他记录类型时会提示<code>某某类型记录和 CNAME 记录可能存在冲突</code>，甚至有些解析服务商会直接不允许添加，比较常见的就是将主域名解析至 CDN 服务商提供的 CNAME 记录，然后再添加 MX（邮箱服务记录）时会碰到这个问题，这是为什么，该如何解决呢？接下来就让我们一起来了解一下吧。</p></blockquote><h2 id="为什么会出现这个问题？"><a href="#为什么会出现这个问题？" class="headerlink" title="为什么会出现这个问题？"></a>为什么会出现这个问题？</h2><p>在 DNS 标准文件 RFC 1034 中，对 CNAME 记录的定义如下：</p><p><img src="https://resources.r2wind.cn/img/202401/20240109125531.png" alt="RFC 1034"></p><p><strong>Identifies the canonical name of an alias.</strong></p><blockquote><p>译文：标识别名的规范名称。</p></blockquote><p>翻译起来很拗口，但简单的来说 CNAME 记录就是把一个域名托管给另一个域名，该域名的所有解析记录都会被托管给另外一个域名，包括 MX、TXT、AAAA、A 等。我们以<code>ddnsip.cn</code>这个域名为例，它的解析记录如下：</p><p><img src="https://resources.r2wind.cn/img/202401/20240109131714.png" alt="ddnsip.cn 的解析记录"></p><p>在图中我们可以看到，<code>ddnsip.cn</code>这个域名通过 CNAME 记录指向了<code>ddnsip.cn.eo.dnse3.com.</code>，这也就意味着<code>ddnsip.cn</code>这个域名的所有解析记录都会被托管给<code>ddnsip.cn.eo.dnse3.com.</code>，无论我向权威服务器查询任何记录类型，都会返回<code>ddnsip.cn.eo.dnse3.com.</code>所对应的的解析结果，比如说我查询<code>ddnsip.cn</code>的 MX 记录：</p><p><img src="https://resources.r2wind.cn/img/202401/20240109132850.png" alt="MX 记录"></p><p>可以看到，权威并没有返回<code>ddnsip.cn</code>的 MX 记录，而是返回了<code>ddnsip.cn.eo.dnse3.com.</code>这条 CNAME 记录，这也就是为什么在当前主机记录下添加其他记录时会提示<code>某某类型记录和 CNAME 记录可能存在冲突</code>的原因了，因为所有记录已经被托管给了<code>ddnsip.cn.eo.dnse3.com.</code>，所以无论你添加任何记录都不会生效。</p><p>下图是递归 DNS 的查询结果，在递归 DNS 解析过程中，也是如此，当我们查询<code>ddnsip.cn</code>的 MX 记录时，递归 DNS 服务器会先查询<code>ddnsip.cn</code>的 mx 记录，但由于你设置了 CNAME 记录，权威服务器会返回<code>ddnsip.cn</code>的 CNAME 记录<code>ddnsip.cn.eo.dnse3.com.</code>，这时递归 DNS 服务器会去查询<code>ddnsip.cn.eo.dnse3.com.</code>的 MX 记录，最后返回<code>ddnsip.cn.eo.dnse3.com.</code>的 MX 记录，也恰恰说明了这一点</p><p><img src="https://resources.r2wind.cn/img/202401/20240109144928.png" alt="递归 DNS 查询结果"></p><h2 id="如何解决这个问题？"><a href="#如何解决这个问题？" class="headerlink" title="如何解决这个问题？"></a>如何解决这个问题？</h2><p>目前解决这个问题方法除了把 CNAME 记录删除换成具体的 A&#x2F;AAAA 记录外，还有一种方式就是使用 CNAME 展平，CNAME 展平的方式大概有以下几种，下面我们就一一来了解一下：</p><h3 id="ALIAS-或-ANAME-记录"><a href="#ALIAS-或-ANAME-记录" class="headerlink" title="ALIAS 或 ANAME 记录"></a>ALIAS 或 ANAME 记录</h3><p>ALIAS 或 ANAME 记录是一种特殊的 CNAME 记录，它可以将 CNAME 转换为 A&#x2F;AAAA 记录，并在递归查询时直接返回 IPv4&#x2F;IPv6 地址，而不是返回 CNAME 记录，这样既可以解决冲突问题，又可以提高解析性能，流程如下图所示：</p><p><img src="https://resources.r2wind.cn/img/202401/20240109154941.png" alt="ALIAS 记录"></p><p>详细示意如下：</p><p><img src="https://resources.r2wind.cn/img/202401/20240109164154.png" alt="ALIAS 记录"></p><p>看起来虽然很完美，也解决了冲突的问题，但目前这种记录类型并没有被标准化，只有少数几家 DNS 服务商支持，比如 CloudFlare、NS1 等，国内支持厂商数量较少，此外由于 ALIAS 记录需要权威通过递归查询来获取最终的解析结果，由于是在权威服务器所在的网络环境中进行递归查询，所以可能会导致分区解析等失效，所以并不适用于 CDN 加速的场景。</p><h3 id="选择性-CNAME-应答"><a href="#选择性-CNAME-应答" class="headerlink" title="选择性 CNAME 应答"></a>选择性 CNAME 应答</h3><p>这种方案通过对权威服务器的应答逻辑修改而实现的，其大致原理就是允许你同时添加 CNAME 记录和其他记录类型，但在解析其他记录类型时会优先返回其他记录类型的记录，而不是 CNAME 记录，只有当其他记录类型不存在时才会返回 CNAME，这样就可以解决冲突问题，比如下图：</p><p><img src="https://resources.r2wind.cn/img/202401/20240109165714.png" alt="选择性 CNAME 应答"></p><p>从图中我们可以看到，CNAME 记录和 MX 类型记录同时存在，但在解析 MX 记录时，权威服务器会优先返回 MX 记录，而不是 CNAME 记录，这样就避免了递归服务器获取到 CNAME 记录后再去查询 CNAME 记录的 MX 记录，从而解决了冲突问题，而且也能支持分区域解析，但这种方案很容易受到 LocalDNS 的影响导致不稳定，而且也无法彻底的展平 CNAME，只能解决记录冲突的问题，目前国内支持的厂商比较少，常见的有阿里云。</p><div class="note info simple"><p>这种方式还可能存在一个问题，如果递归 DNS 服务器缓存了 CNAME 记录，那么在缓存未过期之前，查询 MX 记录时还是会去查询 CNAME 记录的 MX 记录，所以可能存在某些解析不到的情况，所以在使用这种方案时需要注意一下。</p></div><h3 id="记录映射"><a href="#记录映射" class="headerlink" title="记录映射"></a>记录映射</h3><p>这种方案是在权威服务器中直接将 CNAME 记录映射为 A&#x2F;AAAA 记录，无需通过递归查询来获取最终的解析结果，如下图：</p><p><img src="https://resources.r2wind.cn/img/202401/20240109174055.png" alt="记录映射"></p><p>从图中我们可以看到，<code>ddnsip.cn</code>这个域名通过 CNAME 记录指向了<code>cname.dnspod.cn.</code>，当我们查询<code>ddnsip.cn</code>的 IP 地址时，由于我们已经进行了记录映射，所以权威服务器会直接返回<code>cname.dnspod.cn.</code>所对应的 IP 地址，而非 CNAME 记录。简单来说你虽然添加的是 CNAME 记录，但是映射后系统把<code>cname.dnspod.cn</code>所设置的A&#x2F;AAAA记录放到了<code>ddnsip.cn</code>的解析记录中，并且相关的线路、TTL、状态、记录值等都与<code>cname.dnspod.cn</code>相同步，所以实际上相当于你添加的是 A&#x2F;AAAA 记录，这样既可以解决冲突的问题，也可以支持分区解析，但前提需要你的域名和你 CNAME 指向的域名在同一个 DNS 服务商，否则无法实现，目前支持的厂商比较少，常见的有 AWS Route53、DNSPod 等。</p><h3 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h3><p>从上面的介绍我们可以看到，目前解决 CNAME 冲突的方案有很多，但是每种方案都有自己的优缺点，可以说没有任何一种方案是完美的，在实际的业务场景中，我们可以根据自己的需求来选择合适的方案，当然还是由衷的建议大家，还是尽量不要在根域使用 CNAME 记录，毕竟目前来看绝大多数的冲突问题都发生在根域，而且在根域使用 CNAME 也不符合相关的标准。<br>长久来看，CNAME 展平不是解决 CNAME 冲突的最佳方案，在不久的将来，随着 HTTPS&#x2F;SVCB 记录类型的普及发展，这个问题也将会最终得到解决。</p><h2 id="DNSPod-CNAME-展平设置方法"><a href="#DNSPod-CNAME-展平设置方法" class="headerlink" title="DNSPod CNAME 展平设置方法"></a>DNSPod CNAME 展平设置方法</h2><p>DNSPod 已于近期支持了 CNAME 展平功能，该功能无需你手动开启，只需要你同时添加 CNAME 记录和其他记录类型记录即可，系统会自动尝试进行 CNAME 展平，如下图：</p><p><img src="https://resources.r2wind.cn/img/202401/20240109180033.png" alt="CNAME 展平"></p><p>效果如下：</p><p><img src="https://resources.r2wind.cn/img/202401/20240109181347.png" alt="CNAME 展平"></p><p>直接返回了对应的 A&#x2F;AAAA 记录。</p><p>由于自身水平有限，文章中难免存在错误，欢迎大家批评指正，谢谢！</p><h2 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h2><ul><li><a href="https://tools.ietf.org/html/rfc1034">RFC 1034</a></li><li><a href="https://developers.cloudflare.com/dns/cname-flattening/cname-flattening-diagram/">CloudFlare CNAME Flattening</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;有些小伙伴们会经常遇到一个问题，在当前主机记录已经存在 CNAME 类型的记录后再在当前主机记录下添加其他记录类型时会提示&lt;code&gt;某某类型记录和 CNAME 记录可能存在冲突&lt;/code&gt;，甚至有些解析服务商会直接不允许添加，比较常见的就是将主</summary>
      
    
    
    
    <category term="随笔" scheme="https://r2wind.cn/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
    <category term="DNSPod" scheme="https://r2wind.cn/tags/DNSPod/"/>
    
    <category term="域名" scheme="https://r2wind.cn/tags/%E5%9F%9F%E5%90%8D/"/>
    
    <category term="解析" scheme="https://r2wind.cn/tags/%E8%A7%A3%E6%9E%90/"/>
    
  </entry>
  
  <entry>
    <title>BIND 9+CloudNS+NS1 (NSONE) 搭建高可用 DNS 服务</title>
    <link href="https://r2wind.cn/articles/20231127.html"/>
    <id>https://r2wind.cn/articles/20231127.html</id>
    <published>2023-11-27T09:10:54.000Z</published>
    <updated>2023-11-27T09:10:54.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文介绍如何使用 BIND 9+CloudNS+NS1 (NSONE) 搭建高可用 DNS 服务，一般来讲，对于高可用的场景来说，单一的 DNS 服务商提供的 DNS 服务无法满足灾备的需求，所以我们需要使用多个 DNS 服务商来进行冗余备份，本文将指导您使用 BIND 9 作为主 DNS 服务器（不对外提供服务），CloudNS 和 NS1 (NSONE) 作为从 DNS 服务器（对外提供服务）来搭建高可用 DNS 服务。</p></blockquote><div class="note warning simple"><p>本文部分内容将指导您如何使用自己的域名作为 DNS 服务器地址，以下简称Vanitydns，如果您不需要实现该效果，可以按说明跳过相关步骤。</p></div><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>服务器&#x2F;云服务器：BIND 9 对配置要求不高，如您的解析记录数量较少，一般 1 核 1G 的服务器即可满足需求；该服务器 53 端口需要对外开放，如果您使用的是云服务器，需要在云平台的安全组中添加 53 端口的入站规则（TCP&amp;UDP）。</li><li>系统环境：本示例中使用的是 Debian12</li><li>DNS 服务域名（Vanitydns 需要）：为了实现服务的高可用性，至少需要两个域名，这两个域名需要在不同注册局&amp;注册商（如.com和.org；腾讯云和阿里云），以避免某家注册商或注册局服务出现异常，且注册商需要支持添加 DNS host(Glue record)。笔者使用的是 AWS Route53 和 Dynadot 两家注册商，以及 vanitydns.com 和 vanitydns.org 两个注册局不同的域名。不考虑高可用性的情况下，只需要一个域名即可。</li><li>DNS 服务商服务（Vanitydns 需要）：CloudNS 需要付费服务，具体费用根据您的需求而定；NS1 (NSONE) 提供免费服务，但需要申请账号，若使用量超出 NS1 (NSONE) 免费额度，则需要付费，具体费用根据您的需求而定。</li></ul><div class="note warning simple"><p>NS1 (NSONE) 注册账号需要人工审核，审核通过后才能完成注册，审核时间一般为 1-2 个工作日。</p></div><p>传送门：</p><ul><li><a href="https://s.ddnsip.cn/amyr9">CloudNS 账号注册</a></li><li><a href="https://ns1.com/signup">NS1 (NSONE) 账号注册</a></li></ul><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><h3 id="安装-BIND-9"><a href="#安装-BIND-9" class="headerlink" title="安装 BIND 9"></a>安装 BIND 9</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> apt update</span><br><span class="line"><span class="built_in">sudo</span> apt install BIND 9</span><br></pre></td></tr></table></figure><h3 id="BIND-9-基础配置"><a href="#BIND-9-基础配置" class="headerlink" title="BIND 9 基础配置"></a>BIND 9 基础配置</h3><p>配置文件路径：<code>/etc/bind/named.conf.options</code></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line">options &#123;</span><br><span class="line">directory <span class="string">&quot;/var/cache/bind&quot;</span>;</span><br><span class="line"></span><br><span class="line">// If there is a firewall between you and nameservers you want</span><br><span class="line">// to talk to, you may need to fix the firewall to allow multiple</span><br><span class="line">// ports to talk.  See http://www.kb.cert.org/vuls/id/800113</span><br><span class="line"></span><br><span class="line">// If your ISP provided one or more IP addresses <span class="keyword">for</span> stable </span><br><span class="line">// nameservers, you probably want to use them as forwarders.  </span><br><span class="line">// Uncomment the following block, and insert the addresses replacing </span><br><span class="line">// the all-0<span class="string">&#x27;s placeholder.</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">// forwarders &#123;</span></span><br><span class="line"><span class="string">// 0.0.0.0;</span></span><br><span class="line"><span class="string">// &#125;;</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string">//========================================================================</span></span><br><span class="line"><span class="string">// If BIND logs error messages about the root key being expired,</span></span><br><span class="line"><span class="string">// you will need to update your keys.  See https://www.isc.org/bind-keys</span></span><br><span class="line"><span class="string">//========================================================================</span></span><br><span class="line"><span class="string">dnssec-validation auto;</span></span><br><span class="line"><span class="string">listen-on-v6 &#123; any; &#125;;</span></span><br><span class="line"><span class="string">    listen-on &#123; any; &#125;;</span></span><br><span class="line"><span class="string">allow-query-cache &#123; none; &#125;;</span></span><br><span class="line"><span class="string">allow-query &#123; any; &#125;;</span></span><br><span class="line"><span class="string">    recursion no; // 禁用递归查询</span></span><br><span class="line"><span class="string">rate-limit &#123;</span></span><br><span class="line"><span class="string">        responses-per-second 500; // 速率限制：每秒最多响应500次，由于不对外提供服务，一般不需要配置</span></span><br><span class="line"><span class="string">    &#125;;</span></span><br><span class="line"><span class="string">&#125;;</span></span><br></pre></td></tr></table></figure><p>如您需要记录相关日志，可在下面添加日志配置，详细配置请参考 <a href="https://kb.isc.org/docs/aa-01526">BIND 9 日志配置</a></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br></pre></td><td class="code"><pre><span class="line">logging &#123;</span><br><span class="line">     channel default_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/default&quot;</span> versions 3 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel auth_servers_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/auth_servers&quot;</span> versions 100 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel dnssec_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/dnssec&quot;</span> versions 3 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel zone_transfers_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/zone_transfers&quot;</span> versions 3 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel ddns_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/ddns&quot;</span> versions 3 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel client_security_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/client_security&quot;</span> versions 3 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel rate_limiting_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/rate_limiting&quot;</span> versions 3 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel rpz_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/rpz&quot;</span> versions 3 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel queries_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/queries&quot;</span> versions 600 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel query-errors_log &#123;</span><br><span class="line">          file <span class="string">&quot;/var/log/named/query-errors&quot;</span> versions 5 size 20m;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          severity dynamic;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel default_syslog &#123;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          syslog daemon;</span><br><span class="line">          severity info;</span><br><span class="line">     &#125;;</span><br><span class="line">     channel default_debug &#123;</span><br><span class="line">          print-time <span class="built_in">yes</span>;</span><br><span class="line">          print-category <span class="built_in">yes</span>;</span><br><span class="line">          print-severity <span class="built_in">yes</span>;</span><br><span class="line">          file <span class="string">&quot;named.run&quot;</span>;</span><br><span class="line">          severity dynamic;</span><br><span class="line">     &#125;;</span><br><span class="line">     category default &#123; default_syslog; default_debug; default_log; &#125;;</span><br><span class="line">     category config &#123; default_syslog; default_debug; default_log; &#125;;</span><br><span class="line">     category dispatch &#123; default_syslog; default_debug; default_log; &#125;;</span><br><span class="line">     category network &#123; default_syslog; default_debug; default_log; &#125;;</span><br><span class="line">     category general &#123; default_syslog; default_debug; default_log; &#125;;</span><br><span class="line">     category zoneload &#123; default_syslog; default_debug; default_log; &#125;;</span><br><span class="line">     category resolver &#123; auth_servers_log; default_debug; &#125;;</span><br><span class="line">     category cname &#123; auth_servers_log; default_debug; &#125;;</span><br><span class="line">     category delegation-only &#123; auth_servers_log; default_debug; &#125;;</span><br><span class="line">     category lame-servers &#123; auth_servers_log; default_debug; &#125;;</span><br><span class="line">     category edns-disabled &#123; auth_servers_log; default_debug; &#125;;</span><br><span class="line">     category dnssec &#123; dnssec_log; default_debug; &#125;;</span><br><span class="line">     category notify &#123; zone_transfers_log; default_debug; &#125;;</span><br><span class="line">     category xfer-in &#123; zone_transfers_log; default_debug; &#125;;</span><br><span class="line">     category xfer-out &#123; zone_transfers_log; default_debug; &#125;;</span><br><span class="line">     category client&#123; client_security_log; default_debug; &#125;;</span><br><span class="line">     category security &#123; client_security_log; default_debug; &#125;;</span><br><span class="line">     category rate-limit &#123; rate_limiting_log; default_debug; &#125;;</span><br><span class="line">     category spill &#123; rate_limiting_log; default_debug; &#125;;</span><br><span class="line">     category database &#123; rate_limiting_log; default_debug; &#125;;</span><br><span class="line">     category rpz &#123; rpz_log; default_debug; &#125;;</span><br><span class="line">     category trust-anchor-telemetry &#123; default_syslog; default_debug; default_log; &#125;;</span><br><span class="line">     category queries &#123; queries_log; &#125;;</span><br><span class="line">     category query-errors &#123;query-errors_log; &#125;;</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure><h3 id="创建域名区域文件"><a href="#创建域名区域文件" class="headerlink" title="创建域名区域文件"></a>创建域名区域文件</h3><blockquote><p>区域文件记录了域名的解析记录，每个域名都需要一个区域文件，区域文件默认可以存放在 <code>/var/cache/bind</code> 目录下，也可以自定义存放路径，本示例中使用的是默认路径，区域文件无特殊命名规则，可以使用域名作为文件名（不需要指定后缀），或使用 .txt&#x2F;.zones&#x2F;.zone&#x2F;.db 等作为后缀，本文未指定后缀。</p></blockquote><p>此处以 yjz.hk 为例，在 <code>/var/cache/bind</code> 下创建 yjz.hk 的区域文件，文件名为 yjz.hk</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">$TTL</span> 1d    ; default TTL <span class="keyword">for</span> zone</span><br><span class="line"><span class="variable">$ORIGIN</span> yjz.hk.</span><br><span class="line">@         IN      SOA   ns1.example.com. hostmaster.example.com. (</span><br><span class="line">                                2023112701 ; serial number</span><br><span class="line">                                1h        ; refresh</span><br><span class="line">                                3m        ; update retry</span><br><span class="line">                                2w         ; expiry</span><br><span class="line">                                1m         ; minimum</span><br><span class="line">                                )</span><br><span class="line">@86400INNSns1.vanitydns.com.</span><br><span class="line">@86400INNSns2.vanitydns.com.</span><br><span class="line">@86400INNSns3.vanitydns.org.</span><br><span class="line">@86400INNSns4.vanitydns.org.</span><br><span class="line">@300INA104.26.7.130</span><br><span class="line">@300INA104.26.6.130</span><br><span class="line">@300INA172.67.70.42</span><br><span class="line">@300INAAAA2606:4700:20::681a:682</span><br><span class="line">@300INAAAA2606:4700:20::ac43:462a</span><br><span class="line">@300INAAAA2606:4700:20::681a:782</span><br></pre></td></tr></table></figure><div class="note info simple"><ul><li>$TTL：默认 TTL，如果某条记录没有指定 TTL，则使用默认 TTL</li><li>$ORIGIN：域名，如果某条记录没有指定域名，则使用 $ORIGIN</li><li>@：代表域名本身，如 yjz.hk</li><li>IN：代表 Internet</li><li>SOA：Start of Authority，域名的权威记录，每个域名只能有一个 SOA 记录，其中 ns1.example.com. 代表主名称服务器，hostmaster.example.com. 代表域名管理员邮箱地址，2023112701 代表序列号，1h 代表刷新时间，3m 代表重试时间，2w 代表过期时间，1m 代表最小 TTL。注意：在 zone 文件中，所有完整的域名后面都需要加上一个点，如 ns1.example.com.，否则会自动加上 $ORIGIN，变成 ns1.example.com.yjz.hk；此外序列号在每次修改 zone 文件后都需要递增，否则从 DNS 服务器无法同步获取到最新的解析记录。</li><li>NS：Name Server，域名服务器，每个域名至少需要两个 NS 记录，如果您未使用 Vanitydns，请配置CloudNS和NS1 (NSONE) 提供的 NS 服务器地址（建议总共不超过 4 个，每家各配置两个，后面会教大家如何获取两家提供的NS，这里随便写两个域名即可，如pns41.cloudns.net., pns42.cloudns.net., dns1.p01.nsone.net., dns2.p01.nsone.net.），如果您使用了 Vanitydns，请配置您用来提供 DNS 服务的 NS 服务器地址，如 ns1.vanitydns.com.，ns2.vanitydns.com.，ns3.vanitydns.org.，ns4.vanitydns.org.。</li><li>A：Address，IPv4 地址，如果您的域名需要解析 IPv4 地址，请添加 A 记录。</li><li>AAAA：IPv6 地址，如果您的域名需要解析 IPv6 地址，请添加 AAAA 记录。</li></ul></div><h3 id="创建-Slave-Secondary-区域"><a href="#创建-Slave-Secondary-区域" class="headerlink" title="创建 Slave&#x2F;Secondary 区域"></a>创建 Slave&#x2F;Secondary 区域</h3><blockquote><p>Slave&#x2F;Secondary 区域是指从 DNS 服务器，它从主 DNS 服务器获取域名的解析记录，然后提供给客户端，本示例中使用的是 CloudNS 和 NS1 (NSONE) 作为 Slave&#x2F;Secondary 区域，BIND 9 作为主 DNS 服务器，所以需要在 CloudNS 和 NS1 (NSONE) 上创建 Slave&#x2F;Secondary 区域。</p></blockquote><h4 id="CloudNS-创建-Slave-Secondary-区域"><a href="#CloudNS-创建-Slave-Secondary-区域" class="headerlink" title="CloudNS 创建 Slave&#x2F;Secondary 区域"></a>CloudNS 创建 Slave&#x2F;Secondary 区域</h4><ol><li>登录 <a href="https://s.ddnsip.cn/amyr9">CloudNS 管理控制台</a>，点击<code>创建区域</code><br><img src="https://resources.r2wind.cn/img/202311/20231127152820.png" alt="创建区域"></li><li>选择<code>备用域</code><br><img src="https://resources.r2wind.cn/img/202311/20231127152954.png" alt="备用域"></li><li>填写域名和主 DNS 服务器地址，主 DNS 服务器地址填写 BIND 9 服务器的 IP 地址<br><img src="https://resources.r2wind.cn/img/202311/20231127153111.png" alt="填写域名和主 DNS 服务器地址"></li><li>点击<code>创建</code>，完成创建</li><li>创建完成后点击页面的<code>基础设置</code>记录下用于传输的 IP 地址，后面配置 BIND 9 区域文件时需要用到<br><img src="https://resources.r2wind.cn/img/202311/20231127155716.png" alt="基础设置"></li></ol><div class="note info simple"><p>CloudNS 的 NS 服务器地址可在控制面板<code>可用的名称服务器查看</code><br><img src="https://resources.r2wind.cn/img/202311/20231127153506.png" alt="可用的名称服务器"></p></div><h4 id="NS1-NSONE-创建-Slave-Secondary-区域"><a href="#NS1-NSONE-创建-Slave-Secondary-区域" class="headerlink" title="NS1 (NSONE) 创建 Slave&#x2F;Secondary 区域"></a>NS1 (NSONE) 创建 Slave&#x2F;Secondary 区域</h4><ol><li>登录 <a href="https://my.nsone.net/#/dns/management/zones">NS1 (NSONE) 管理控制台</a>，点击<code>+</code><br><img src="https://resources.r2wind.cn/img/202311/20231127153626.png" alt="创建区域"></li><li>填写域名并选择<code>Secondary Zone</code>，主 DNS 服务器地址填写 BIND 9 服务器的 IP 地址<br><img src="https://resources.r2wind.cn/img/202311/20231127153851.png" alt="填写域名和主 DNS 服务器地址"></li><li>点击<code>Save Zone</code>，完成创建</li></ol><div class="note warning simple"><ul><li>请注意，NS1 域名内需要填写 FQDN，即需要填写完整的域名，如 yjz.hk.,而不是 yjz.hk</li><li>NS1 (NSONE) 用于AXFR&#x2F;IXFR传输的 IP 地址为<code>192.135.223.10</code></li></ul></div><div class="note info simple"><ul><li>NS1 (NSONE) 的辅助 DNS 服务器地址可在区域控制面板中的<code>Name Servers</code>查看<br><img src="https://resources.r2wind.cn/img/202311/20231127160231.png" alt="Name Servers"></li></ul></div><h3 id="修改域名区域文件中的-DNS-服务器地址"><a href="#修改域名区域文件中的-DNS-服务器地址" class="headerlink" title="修改域名区域文件中的 DNS 服务器地址"></a>修改域名区域文件中的 DNS 服务器地址</h3><p>至此我们已经获取到了两家厂商的 NS 服务器地址，需要根据实际获取到的地址修改区域文件中的 NS 记录和 SOA 记录，以 yjz.hk 为例，修改后的 SOA 和 NS 记录如下：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">$TTL</span> 1d    ; default TTL <span class="keyword">for</span> zone</span><br><span class="line"><span class="variable">$ORIGIN</span> yjz.hk.</span><br><span class="line">@         IN      SOA   pns41.cloudns.net. hostmaster.yjz.hk. (</span><br><span class="line">                                2023112702 ; serial number</span><br><span class="line">                                1h        ; refresh</span><br><span class="line">                                3m        ; update retry</span><br><span class="line">                                2w         ; expiry</span><br><span class="line">                                1m         ; minimum</span><br><span class="line">                                )</span><br><span class="line">@86400INNSpns41.cloudns.net.</span><br><span class="line">@86400INNSpns42.cloudns.net.</span><br><span class="line">@86400INNSdns1.p01.nsone.net.</span><br><span class="line">@86400INNSdns2.p01.nsone.net.</span><br></pre></td></tr></table></figure><div class="note primary simple"><p>如果您使用的是 Vanitydns，请将上面的 NS 记录修改为您用来提供 DNS 服务的 NS 服务器地址，如 ns1.vanitydns.com.，ns2.vanitydns.com.，ns3.vanitydns.org.，ns4.vanitydns.org.，SOA 记录中的主名称服务器也需要修改为您用来提供 DNS 服务的 NS 服务器地址，如 ns1.vanitydns.com.。</p></div><h3 id="配置-BIND-9-加载区域文件"><a href="#配置-BIND-9-加载区域文件" class="headerlink" title="配置 BIND 9 加载区域文件"></a>配置 BIND 9 加载区域文件</h3><p>配置文件路径：<code>/etc/bind/named.conf.local</code>，在原有配置的基础上添加以下内容：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">zone <span class="string">&quot;yjz.hk&quot;</span> &#123;</span><br><span class="line">    <span class="built_in">type</span> master;</span><br><span class="line">    file <span class="string">&quot;/var/cache/bind/yjz.hk&quot;</span>;</span><br><span class="line">    allow-transfer &#123;</span><br><span class="line">        109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79; </span><br><span class="line">        185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196; </span><br><span class="line">        2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6; </span><br><span class="line">        2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns</span><br><span class="line">        192.135.223.10; //NS1</span><br><span class="line">    &#125;;</span><br><span class="line">    also-notify &#123;</span><br><span class="line">        109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79; </span><br><span class="line">        185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196; </span><br><span class="line">        2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6; </span><br><span class="line">        2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns</span><br><span class="line">        192.135.223.10; //NS1</span><br><span class="line">    &#125;;</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure><div class="note info simple"><ul><li>zone：域名，需要与区域文件中的域名保持一致</li><li>type：区域类型，主 DNS 服务器填写 master</li><li>file：区域文件路径，需要与区域文件实际路径保持一致</li><li>allow-transfer：允许传输的 IP 地址，填写 CloudNS 和 NS1 (NSONE) 提供的用于传输的 IP 地址</li><li>also-notify：通知的 IP 地址，用于通知 CloudNS 和 NS1 (NSONE) 更新解析记录，填写 CloudNS 和 NS1 (NSONE) 提供的用于传输的 IP 地址</li></ul></div><h3 id="重载-BIND-9-配置"><a href="#重载-BIND-9-配置" class="headerlink" title="重载 BIND 9 配置"></a>重载 BIND 9 配置</h3><h4 id="检查配置文件是否正确"><a href="#检查配置文件是否正确" class="headerlink" title="检查配置文件是否正确"></a>检查配置文件是否正确</h4><p>重载配置前需要检查配置文件是否正确，使用以下命令检查配置文件是否正确：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> named-checkconf /etc/bind/named.conf</span><br></pre></td></tr></table></figure><p>如果配置文件正确，则不会有任何输出，如果配置文件有错误，则会输出错误信息，需要根据错误信息修改配置文件，修改完成后再次检查配置文件是否正确，直到没有错误信息为止。</p><h4 id="检查区域文件是否正确"><a href="#检查区域文件是否正确" class="headerlink" title="检查区域文件是否正确"></a>检查区域文件是否正确</h4><p>此外还需要检查区域文件是否正确，使用以下命令检查区域文件是否正确，请注意替换域名：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> named-checkzone yjz.hk /var/cache/bind/yjz.hk</span><br></pre></td></tr></table></figure><p>如果区域文件正确，您将会看到如下输出：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">zone yjz.hk/IN: loaded serial 2023112702</span><br><span class="line">OK</span><br></pre></td></tr></table></figure><p>如有误，请根据错误信息修改区域文件，修改完成后再次检查区域文件是否正确，直到没有错误信息为止。</p><h4 id="重载配置"><a href="#重载配置" class="headerlink" title="重载配置"></a>重载配置</h4><p>配置文件检查完成后，使用以下命令重载配置：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> systemctl reload BIND 9</span><br></pre></td></tr></table></figure><h3 id="检查-Slave-Secondary-区域是否正常"><a href="#检查-Slave-Secondary-区域是否正常" class="headerlink" title="检查 Slave&#x2F;Secondary 区域是否正常"></a>检查 Slave&#x2F;Secondary 区域是否正常</h3><p>配置完成后，需要检查 Slave&#x2F;Secondary 区域是否正常同步</p><h4 id="CloudNS-检查-Slave-Secondary-区域是否正常同步"><a href="#CloudNS-检查-Slave-Secondary-区域是否正常同步" class="headerlink" title="CloudNS 检查 Slave&#x2F;Secondary 区域是否正常同步"></a>CloudNS 检查 Slave&#x2F;Secondary 区域是否正常同步</h4><p>请点击区域控制面板中的<code>检查 SOA</code>，查看 SOA 记录是否和主 DNS 服务器保持一致，如下图所示：<br><img src="https://resources.r2wind.cn/img/202311/20231127162259.png" alt="检查 SOA"></p><h4 id="NS1-NSONE-检查-Slave-Secondary-区域是否正常同步"><a href="#NS1-NSONE-检查-Slave-Secondary-区域是否正常同步" class="headerlink" title="NS1 (NSONE) 检查 Slave&#x2F;Secondary 区域是否正常同步"></a>NS1 (NSONE) 检查 Slave&#x2F;Secondary 区域是否正常同步</h4><p>请点击区域控制面板中的<code>ZONE SETTINGS</code>，查看<code>SECONDARY ZONE STATUS</code>是否为<code>OK</code>，以及<code>SERIAL</code>是否和主 DNS 服务器保持一致，如下图所示：<br><img src="https://resources.r2wind.cn/img/202311/20231127162614.png" alt="SECONDARY ZONE STATUS"></p><h3 id="前往域名注册商修改域名-DNS-服务器地址"><a href="#前往域名注册商修改域名-DNS-服务器地址" class="headerlink" title="前往域名注册商修改域名 DNS 服务器地址"></a>前往域名注册商修改域名 DNS 服务器地址</h3><p>请前往域名注册商修改域名 DNS 服务器地址，地址需要与 NS 记录保持一致，具体操作方法请参考域名注册商提供的文档，这里不再赘述。使用 Vanitydns 请在完成后续配置后再修改域名 DNS 服务器地址，否则可能会遇到异常操作。</p><div class="note success simple"><p>至此，相关的配置已经完成，如您不需要开启 DNSSEC、不需要使用自己的域名作为 DNS 服务器地址，那到此结束；如果你需要相关的配置，那请看后续操作；</p></div><h2 id="后续操作（可选）"><a href="#后续操作（可选）" class="headerlink" title="后续操作（可选）"></a>后续操作（可选）</h2><h3 id="开启-DNSSEC"><a href="#开启-DNSSEC" class="headerlink" title="开启 DNSSEC"></a>开启 DNSSEC</h3><p>DNSSEC 是一种用于保护 DNS 服务器免受 DNS 欺骗的技术，DNSSEC 通过数字签名的方式来验证 DNS 服务器的响应是否被篡改，从而保证 DNS 服务器的响应是可信的，关于其原理，这里不再赘述。</p><h4 id="修改-BIND-9-配置文件"><a href="#修改-BIND-9-配置文件" class="headerlink" title="修改 BIND 9 配置文件"></a>修改 BIND 9 配置文件</h4><p>配置文件路径：&#x2F;etc&#x2F;bind&#x2F;named.conf.local，需要在原有配置文件中添加<code>dnssec-policy</code>和<code>inline-signing</code>配置，添加完如下所示：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">zone <span class="string">&quot;yjz.hk&quot;</span> &#123;</span><br><span class="line">    <span class="built_in">type</span> primary;</span><br><span class="line">    file <span class="string">&quot;/var/cache/bind/yjz.hk&quot;</span>;</span><br><span class="line">    dnssec-policy default;</span><br><span class="line">    inline-signing <span class="built_in">yes</span>;</span><br><span class="line">    allow-transfer &#123;</span><br><span class="line">        109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79; </span><br><span class="line">        185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196; </span><br><span class="line">        2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6; </span><br><span class="line">        2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns</span><br><span class="line">        192.135.223.10; //NS1</span><br><span class="line">    &#125;;</span><br><span class="line">    also-notify &#123;</span><br><span class="line">        109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79; </span><br><span class="line">        185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196; </span><br><span class="line">        2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6; </span><br><span class="line">        2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns</span><br><span class="line">        192.135.223.10; //NS1</span><br><span class="line">    &#125;;</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure><h4 id="重载-BIND-9-配置-1"><a href="#重载-BIND-9-配置-1" class="headerlink" title="重载 BIND 9 配置"></a>重载 BIND 9 配置</h4><p>配置文件修改完成后，使用以下命令重载配置：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> systemctl reload BIND 9</span><br></pre></td></tr></table></figure><p>当然，重载前记得按上面的方法检查配置文件是否正确哦~</p><h4 id="获取-DNSSEC-相关信息"><a href="#获取-DNSSEC-相关信息" class="headerlink" title="获取 DNSSEC 相关信息"></a>获取 DNSSEC 相关信息</h4><p>我们需要获取 DNSKEY 或者 DS 记录，以及 NSEC3 记录，这些记录用于在域名注册商处配置 DNSSEC，以 yjz.hk 为例，获取 DNSSKEY 和 DS 记录的命令如下：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> /var/cache/bind</span><br><span class="line"><span class="built_in">ls</span></span><br></pre></td></tr></table></figure><p>通常您将会在输出中看到类似于<code>K+域名+数字+数字.key</code>的以 key 结尾文件，例如<code>Kyjz.hk.+013+383xx.key</code>，DNSKEY 记录和 DS 记录都在该文件中:</p><div class="note info simple"><p>大多域名注册商目前都需要 DS 记录，但是也有少数域名注册商需要 DNSKEY 记录，建议根据实际情况选择配置 DNSKEY 记录或 DS 记录，如果您不知道域名注册商需要哪种记录，请联系域名注册商客服。</p></div><p>获取 DS 记录的命令如下：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">dnsssec-dsfromkey -2 Kyjz.hk.+013+383xx.key</span><br></pre></td></tr></table></figure><p>通常您将会看到类似于以下输出：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">yjz.hk. IN DS 38356 13 2 25FAD7782FB5654CE99D71F8D82EC690FC1640976D306062BD118E5005xxxxxxx</span><br></pre></td></tr></table></figure><p>将其在域名注册商配置即可，如您不会配置，可以联系域名注册商客服，将其提供给客服协助配置。</p><p>获取 DNSKEY 记录的命令如下：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cat</span> Kyjz.hk.+013+383xx.key</span><br></pre></td></tr></table></figure><p>通常您将会看到类似于以下输出：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">; This is a key-signing key, keyid xxxxx, <span class="keyword">for</span> yjz.hk.</span><br><span class="line">; Created: xxxxxxxxxxxxxxxxxxx</span><br><span class="line">; Publish: xxxxxxxxxxxxxxxxxxx</span><br><span class="line">; Activate: xxxxxxxxxxxxxxxxxx</span><br><span class="line">; SyncPublish: xxxxxxxxxxxxxxx</span><br><span class="line">yjz.hk. 3600 IN DNSKEY 257 3 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span><br></pre></td></tr></table></figure><p>最后一行则为 DNSKEY 记录，将其在域名注册商配置即可，如您不会配置，可以联系域名注册商客服，将其提供给客服协助配置。</p><div class="note primary simple"><p>CloudNS 和 NS1 (NSONE) 都会自动从主 DNS 服务器同步 DNSSEC 相关信息，所以您无需再去手动配置。</p></div><h4 id="检查-DNSSEC-是否正常"><a href="#检查-DNSSEC-是否正常" class="headerlink" title="检查 DNSSEC 是否正常"></a>检查 DNSSEC 是否正常</h4><p>在注册商完成配置后，需要检查 DNSSEC 是否正常，您可访问：<a href="https://dnsviz.net/%EF%BC%8C%E8%BE%93%E5%85%A5%E6%82%A8%E7%9A%84%E5%9F%9F%E5%90%8D%E8%BF%9B%E8%A1%8C%E6%A3%80%E6%9F%A5%E3%80%82">https://dnsviz.net/，输入您的域名进行检查。</a></p><h3 id="使用自己的域名作为-DNS-服务器地址（Vanitydns）"><a href="#使用自己的域名作为-DNS-服务器地址（Vanitydns）" class="headerlink" title="使用自己的域名作为 DNS 服务器地址（Vanitydns）"></a>使用自己的域名作为 DNS 服务器地址（Vanitydns）</h3><h4 id="创建-Glue-record"><a href="#创建-Glue-record" class="headerlink" title="创建 Glue record"></a>创建 Glue record</h4><blockquote><p>如您需要使用自己的域名作为 dns 服务器，则需要在域名注册商处创建 Glue record，Glue record 是指将域名和 IP 地址绑定的记录，用于解决域名解析时的循环依赖问题，例如：域名 yjz.hk 的 NS 服务器地址为 ns1.vanitydns.com.，ns2.vanitydns.com.，ns3.vanitydns.org.，ns4.vanitydns.org.，那么在解析 yjz.hk 时，需要先解析 ns1.vanitydns.com.，ns2.vanitydns.com.，ns3.vanitydns.org.，ns4.vanitydns.org.，然后再解析 yjz.hk，这样就会出现循环依赖问题，所以我们需要在域名注册商处创建 Glue record，将 ns1.vanitydns.com.，ns2.vanitydns.com.，ns3.vanitydns.org.，ns4.vanitydns.org. 和 IP 地址绑定，这样在解析 yjz.hk 时，就可以直接解析到 ns1.vanitydns.com.，ns2.vanitydns.com.，ns3.vanitydns.org.，ns4.vanitydns.org. 的 IP 地址，从而解决循环依赖问题。</p></blockquote><h5 id="获取-Glue-record-相关信息"><a href="#获取-Glue-record-相关信息" class="headerlink" title="获取 Glue record 相关信息"></a>获取 Glue record 相关信息</h5><p>前往注册商创建 Glue record 之前，我们需要获取 dns 服务器对应的 IP 地址：</p><h6 id="CloudNS-获取-dns-服务器对应的-IP-地址"><a href="#CloudNS-获取-dns-服务器对应的-IP-地址" class="headerlink" title="CloudNS 获取 dns 服务器对应的 IP 地址"></a>CloudNS 获取 dns 服务器对应的 IP 地址</h6><p>前往 CloudNS 区域控制面板，点击<code>基础设置</code>，记录下<code>可用的名称服务器</code>中的 IP 地址，如下图所示：<br><img src="https://resources.r2wind.cn/img/202311/20231127165513.png" alt="可用的名称服务器"></p><h6 id="NS1-NSONE-获取-dns-服务器对应的-IP-地址"><a href="#NS1-NSONE-获取-dns-服务器对应的-IP-地址" class="headerlink" title="NS1 (NSONE) 获取 dns 服务器对应的 IP 地址"></a>NS1 (NSONE) 获取 dns 服务器对应的 IP 地址</h6><p>NS1 没有直接提供 IP 地址，需要使用 nslookup 命令获取，以 dns1.p01.nsone.net. 为例，获取 IP 地址的命令如下：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">nslookup dns1.p01.nsone.net.</span><br></pre></td></tr></table></figure><p>通常您将会看到类似于以下输出：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">rttw@zach:~$ nslookup dns1.p01.nsone.net.</span><br><span class="line">Server:         192.168.0.1</span><br><span class="line">Address:        192.168.0.1#53</span><br><span class="line"></span><br><span class="line">Non-authoritative answer:</span><br><span class="line">Name:   dns1.p01.nsone.net</span><br><span class="line">Address: 198.51.44.1</span><br><span class="line">Name:   dns1.p01.nsone.net</span><br><span class="line">Address: 2620:4d:4000:6259:7:1:0:1</span><br></pre></td></tr></table></figure><p>其中 Address 为 IP 地址，将其记录下来，以备后用</p><h5 id="前往注册商创建-Glue-record"><a href="#前往注册商创建-Glue-record" class="headerlink" title="前往注册商创建 Glue record"></a>前往注册商创建 Glue record</h5><p>以 dynadot 为例，前往域名管理控制台，点击<code>服务器</code>，点击<code>注册域名服务器</code>，填写域名和 IP 地址，如下图所示：<br><img src="https://resources.r2wind.cn/img/202311/20231127165903.png" alt="注册域名服务器"><br><img src="https://resources.r2wind.cn/img/202311/20231127170230.png" alt="注册域名服务器"></p><div class="note info simple"><ul><li>主机名称：填写您用来提供 DNS 服务的域名，如 <code>ns4.vanitydns.org</code></li><li>IP 地址：填写您用来提供 DNS 服务的域名对应的 IP 地址，如<code>185.136.96.79</code>，注意 dynadot 创建时只能填写一个 IP 地址，可在后续修改继续添加</li></ul></div><div class="note warning simple"><ul><li>两家 DNS 服务商总共有 16 个 IP 地址（不含CloudNS免费IP），如何将这 16 个 IP 地址分散到四个 NS 服务器域名由你自己来决定，笔者的做法是 CloudNS 提供的 8 个 IP 地址，分配给了<code>ns1.vanitydns.com</code>和<code>ns2.vanitydns.com</code>，NS1 (NSONE) 提供的 8 个 IP 地址，分配给了<code>ns3.vanitydns.org</code>和<code>ns4.vanitydns.org</code>。</li><li>四个 NS 服务器域名都需要注册 Glue record，否则会出现循环依赖问题。</li><li>在某些注册商，Glue Record 被称为 DNS Host，如 腾讯云。</li></ul></div><h4 id="创建区域文件"><a href="#创建区域文件" class="headerlink" title="创建区域文件"></a>创建区域文件</h4><p>创建区域文件的方法与前面创建 yjz.hk 区域文件的方法相同，此处不再赘述，以 vanitydns.org 为例，创建的区域文件如下：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="variable">$ORIGIN</span> vanitydns.org.</span><br><span class="line">@180INSOAns3.vanitydns.org. admin.vanitydns.com. 2023112702 3600 180 1209600 180</span><br><span class="line">ns386400INA198.51.44.1</span><br><span class="line">ns386400INA   198.51.45.1</span><br><span class="line">ns3 86400   IN  A   47.107.117.38</span><br><span class="line">ns486400INA198.51.44.65</span><br><span class="line">ns486400INA   198.51.45.65</span><br><span class="line">ns4 86400   IN  A   129.211.27.223</span><br><span class="line">ns386400INAAAA2620:4d:4000:6259:7:1:0:1</span><br><span class="line">ns386400INAAAA2a00:edc0:6259:7:1:0:0:2</span><br><span class="line">ns4 86400INAAAA2620:4d:4000:6259:7:1:0:3</span><br><span class="line">ns4 86400INAAAA2a00:edc0:6259:7:1:0:0:4</span><br><span class="line">@86400INNSns3.vanitydns.org.</span><br><span class="line">@86400INNSns4.vanitydns.org.</span><br></pre></td></tr></table></figure><div class="note info simple"><ul><li>A&#x2F;AAAA记录指向的 IP 需要与 Glue record 中填写的 IP 地址保持一致</li><li>NS 记录指向所对应的域名，需要与 Glue record 中填写的域名保持一致</li><li>在创建完<code>vanitydns.org</code>区域文件后，也别忘以相同的办法了配置<code>vanitydns.com</code>区域文件，否则会出现循环依赖问题</li></ul></div><h4 id="修改-BIND-9-配置文件-1"><a href="#修改-BIND-9-配置文件-1" class="headerlink" title="修改 BIND 9 配置文件"></a>修改 BIND 9 配置文件</h4><p>配置文件路径：<code>/etc/bind/named.conf.local</code>，需要在原有配置文件中添加这两个新的区域文件，如下所示：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br></pre></td><td class="code"><pre><span class="line">zone <span class="string">&quot;vanitydns.com&quot;</span> &#123;</span><br><span class="line">    <span class="built_in">type</span> primary;</span><br><span class="line">    file <span class="string">&quot;/var/named/vanitydns.com&quot;</span>;</span><br><span class="line">    dnssec-policy default;</span><br><span class="line">    inline-signing <span class="built_in">yes</span>;</span><br><span class="line">    allow-transfer &#123;</span><br><span class="line">        109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79; </span><br><span class="line">        185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196; </span><br><span class="line">        2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6; </span><br><span class="line">        2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns</span><br><span class="line">        213.239.242.238; 213.133.105.6; 193.47.99.3; 2a01:4f8:0:a101::a:1; 2a01:4f8:d0a:2004::2; 2001:67c:192c::add:a3; //hetzner</span><br><span class="line">        47.107.117.38; 129.211.27.223; //CN</span><br><span class="line">        192.135.223.10; //NS1</span><br><span class="line">    &#125;;</span><br><span class="line">    also-notify &#123;</span><br><span class="line">        109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79; </span><br><span class="line">        185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196; </span><br><span class="line">        2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6; </span><br><span class="line">        2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns</span><br><span class="line">        213.239.242.238; 213.133.105.6; 193.47.99.3; 2a01:4f8:0:a101::a:1; 2a01:4f8:d0a:2004::2; 2001:67c:192c::add:a3; //hetzner</span><br><span class="line">        47.107.117.38; 129.211.27.223; //CN</span><br><span class="line">        192.135.223.10; //NS1</span><br><span class="line">    &#125;;</span><br><span class="line">&#125;;</span><br><span class="line">zone <span class="string">&quot;vanitydns.org&quot;</span> &#123;</span><br><span class="line">    <span class="built_in">type</span> primary;</span><br><span class="line">    file <span class="string">&quot;/var/named/vanitydns.org&quot;</span>;</span><br><span class="line">    dnssec-policy default;</span><br><span class="line">    inline-signing <span class="built_in">yes</span>;</span><br><span class="line">    allow-transfer &#123;</span><br><span class="line">        109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79; </span><br><span class="line">        185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196; </span><br><span class="line">        2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6; </span><br><span class="line">        2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns</span><br><span class="line">        192.135.223.10; //NS1</span><br><span class="line">    &#125;;</span><br><span class="line">    also-notify &#123;</span><br><span class="line">        109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79; </span><br><span class="line">        185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196; </span><br><span class="line">        2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6; </span><br><span class="line">        2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns</span><br><span class="line">        192.135.223.10; //NS1</span><br><span class="line">    &#125;;</span><br><span class="line">&#125;;</span><br></pre></td></tr></table></figure><h4 id="创建-Slave-Secondary-区域-1"><a href="#创建-Slave-Secondary-区域-1" class="headerlink" title="创建 Slave&#x2F;Secondary 区域"></a>创建 Slave&#x2F;Secondary 区域</h4><p>参照前面的步骤，前往 CloudNS 和 NS1 创建 Slave&#x2F;Secondary 区域，此处不再赘述。</p><h4 id="重载-BIND-9-配置-2"><a href="#重载-BIND-9-配置-2" class="headerlink" title="重载 BIND 9 配置"></a>重载 BIND 9 配置</h4><p>配置文件修改完成后，使用以下命令重载配置：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">sudo</span> systemctl reload BIND 9</span><br></pre></td></tr></table></figure><p>当然，重载前记得按上面的方法检查配置文件是否正确哦~</p><h4 id="检查-Slave-Secondary-区域是否正常-1"><a href="#检查-Slave-Secondary-区域是否正常-1" class="headerlink" title="检查 Slave&#x2F;Secondary 区域是否正常"></a>检查 Slave&#x2F;Secondary 区域是否正常</h4><p>参照前面的步骤，检查 Slave&#x2F;Secondary 区域是否正常同步，此处不再赘述。</p><h4 id="前往域名注册商修改域名-DNS-服务器地址-1"><a href="#前往域名注册商修改域名-DNS-服务器地址-1" class="headerlink" title="前往域名注册商修改域名 DNS 服务器地址"></a>前往域名注册商修改域名 DNS 服务器地址</h4><p>请前往域名注册商修改域名 DNS 服务器地址，地址需要与 NS 记录保持一致，具体操作方法请参考域名注册商提供的文档，这里不再赘述。</p><div class="note danger modern"><ul><li>注意：请分别修改<code>vanitydns.com</code>和<code>vanitydns.org</code>的 DNS 服务器地址后，再去修改<code>yjz.hk</code>的 DNS 服务器地址，否则可能会遇到异常操作。</li></ul></div><h2 id="常见问题"><a href="#常见问题" class="headerlink" title="常见问题"></a>常见问题</h2><ol><li>看完之后感觉有点懵？<br>确实，这文章写的有点不适合小白，遇到任何问题发邮件或者前往<a href="https://github.com/KincaidYang/r2w-cn"> GitHub 仓库</a>提 issue 都可以。</li><li>更改 DNS 服务器失败？<br>看起来大概是下面这样，如果你是腾讯云注册的域名，可在腾讯云域名控制台找到“技术交流群”点击扫码加群寻求帮助，其他域名服务商可以给笔者发邮件或者前往 <a href="https://github.com/KincaidYang/r2w-cn">Github 仓库</a>提 issue。<br><img src="https://resources.r2wind.cn/img/202302/20230208203817.png" alt="修改失败"></li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;本文介绍如何使用 BIND 9+CloudNS+NS1 (NSONE) 搭建高可用 DNS 服务，一般来讲，对于高可用的场景来说，单一的 DNS 服务商提供的 DNS 服务无法满足灾备的需求，所以我们需要使用多个 DNS 服务商来进行冗余备份，本文</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="域名" scheme="https://r2wind.cn/tags/%E5%9F%9F%E5%90%8D/"/>
    
    <category term="解析" scheme="https://r2wind.cn/tags/%E8%A7%A3%E6%9E%90/"/>
    
  </entry>
  
  <entry>
    <title>使用 acme.sh 为在腾讯云（DNSPod）解析的域名自动申请证书（API3.0 / 腾讯云（DNSPod）API 密钥版本）</title>
    <link href="https://r2wind.cn/articles/20230914.html"/>
    <id>https://r2wind.cn/articles/20230914.html</id>
    <published>2023-09-14T11:12:50.000Z</published>
    <updated>2024-05-06T02:12:50.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>ACME（自动证书管理环境）是一个互联网工程任务组维护的协议，它允许自动化 Web 服务器证书的部署，<a href="https://github.com/acmesh-official/acme.sh">acme.sh</a> 是支持 ACME 协议流行的客户端之一，可以通过其实现 SSL 证书的自动申请、续期等等。一直以来，使用 acme.sh 为域名申请证书都是通过 DNSPod API 来实现的，但由于 DNSPod API 后续将不再维护，同时旧版DNSPod API 将不再有服务承诺，以及旧版 API 存在着接口不稳定、权限无法细分控制、国内站和国际站接口不统一等问题，因此笔者基于 <a href="https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/dns_dp.sh">dns_dp</a> 脚本，适配了腾讯云 API3.0 版本（<a href="https://github.com/acmesh-official/acme.sh/blob/dev/dnsapi/dns_tencent.sh">dns_tencent</a>）。升级后的脚本将同时支持 DNSPod 国内站和国际站（暂仅支持国内站，国际站部分接口官方团队正在排期适配，预计 2024Q2 完成），不再需要针对国内站和国际站单独适配，同时支持使用子账号 API 密钥申请证书，权限可细分控制，接口更加稳定，使用更加方便、安全。</p></blockquote><div class="note warning simple"><p>2023-09-25 更新：腾讯云 API3.0 脚本已合并到 acme.sh master 分支，可直接升级 acme.sh 后使用或通过一键安装脚本，无需再手动下载dev分支脚本。</p></div><h2 id="安装-acme-sh"><a href="#安装-acme-sh" class="headerlink" title="安装 acme.sh"></a>安装 acme.sh</h2><h3 id="全新安装"><a href="#全新安装" class="headerlink" title="全新安装"></a>全新安装</h3><p>适用于未安装 acme.sh 的用户，使用以下命令安装 acme.sh 客户端：</p><h4 id="安装-acme-sh-1"><a href="#安装-acme-sh-1" class="headerlink" title="安装 acme.sh"></a>安装 acme.sh</h4><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl https://get.acme.sh | sh -s email=my@example.com</span><br></pre></td></tr></table></figure><p>or</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget -O -  https://get.acme.sh | sh -s email=my@example.com</span><br></pre></td></tr></table></figure><div class="note info simple"><p>请将 <a href="mailto:&#109;&#x79;&#x40;&#101;&#x78;&#x61;&#x6d;&#112;&#x6c;&#x65;&#46;&#x63;&#111;&#x6d;">my@example.com</a> 替换为您的邮箱地址</p></div><h3 id="旧版升级"><a href="#旧版升级" class="headerlink" title="旧版升级"></a>旧版升级</h3><p>适用于已安装 acme.sh 的用户，请运行以下命令升级 acme.sh 客户端：</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">acme.sh --upgrade</span><br></pre></td></tr></table></figure><h2 id="获取腾讯云-SecretId-和-SecretKey"><a href="#获取腾讯云-SecretId-和-SecretKey" class="headerlink" title="获取腾讯云 SecretId 和 SecretKey"></a>获取腾讯云 SecretId 和 SecretKey</h2><h3 id="方式一：使用主账号-API-密钥"><a href="#方式一：使用主账号-API-密钥" class="headerlink" title="方式一：使用主账号 API 密钥"></a>方式一：使用主账号 API 密钥</h3><ol><li><p>登录 <a href="https://console.cloud.tencent.com/">腾讯云控制台</a>，进入 <a href="https://console.cloud.tencent.com/cam/overview">访问管理</a> 页面，点击左侧菜单栏的<a href="https://console.cloud.tencent.com/cam/capi">访问密钥</a>，进入 API 密钥管理页面。<br><img src="https://resources.r2wind.cn/img/202309/20230914171720.png" alt="访问密钥"></p></li><li><p>点击<code>新建密钥</code>，创建 API 密钥，并记录保存 SecretId 和 SecretKey。</p></li></ol><h3 id="方式二：使用子账号-API-密钥"><a href="#方式二：使用子账号-API-密钥" class="headerlink" title="方式二：使用子账号 API 密钥"></a>方式二：使用子账号 API 密钥</h3><h4 id="步骤一：新建权限策略"><a href="#步骤一：新建权限策略" class="headerlink" title="步骤一：新建权限策略"></a>步骤一：新建权限策略</h4><ol><li><p>登录 <a href="https://console.cloud.tencent.com/">腾讯云控制台</a>，进入 <a href="https://console.cloud.tencent.com/cam/overview">访问管理</a> 页面，点击左侧菜单栏的<a href="https://console.cloud.tencent.com/cam/policy">策略</a>，进入策略管理页面，并点击<code>新建自定义策略</code>。<br><img src="https://resources.r2wind.cn/img/202309/20230914173306.png" alt="策略"></p></li><li><p>选择<code>按策略语法创建</code>-<code>空白模板</code>，填写基本信息，并将策略语法修改为以下内容，并点击<code>完成</code>创建。</p></li></ol><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;statement&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line">        <span class="punctuation">&#123;</span></span><br><span class="line">            <span class="attr">&quot;action&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line">                <span class="string">&quot;dnspod:DescribeRecordFilterList&quot;</span><span class="punctuation">,</span></span><br><span class="line">                <span class="string">&quot;dnspod:DescribeRecordList&quot;</span><span class="punctuation">,</span></span><br><span class="line">                <span class="string">&quot;dnspod:CreateRecord&quot;</span><span class="punctuation">,</span></span><br><span class="line">                <span class="string">&quot;dnspod:DeleteRecord&quot;</span></span><br><span class="line">            <span class="punctuation">]</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;effect&quot;</span><span class="punctuation">:</span> <span class="string">&quot;allow&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;resource&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line">                <span class="string">&quot;*&quot;</span></span><br><span class="line">            <span class="punctuation">]</span></span><br><span class="line">        <span class="punctuation">&#125;</span></span><br><span class="line">    <span class="punctuation">]</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;version&quot;</span><span class="punctuation">:</span> <span class="string">&quot;2.0&quot;</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br></pre></td></tr></table></figure><p><img src="https://resources.r2wind.cn/img/202309/20230914173503.png" alt="策略语法"></p><div class="note info simple"><p>如您需要更精细的权限控制，可根据实际需求修改策略语法，如配置资源六段式等，详情请参考 <a href="https://cloud.tencent.com/document/product/598/98125">CAM-DNS 解析 DNSPod</a>。</p></div><h4 id="步骤二：新建子账号并关联权限策略"><a href="#步骤二：新建子账号并关联权限策略" class="headerlink" title="步骤二：新建子账号并关联权限策略"></a>步骤二：新建子账号并关联权限策略</h4><ol><li><p>登录 <a href="https://console.cloud.tencent.com/">腾讯云控制台</a>，进入 <a href="https://console.cloud.tencent.com/cam/overview">访问管理</a> 页面，点击左侧菜单栏的<a href="https://console.cloud.tencent.com/cam">用户列表</a>，进入用户列表页面，并点击<code>新建用户</code>。<br><img src="https://resources.r2wind.cn/img/202309/20230914172051.png" alt="用户列表"></p></li><li><p>选择快速创建，填写用户信息，并选择<code>编程访问</code>。<br><img src="https://resources.r2wind.cn/img/202309/20230914172319.png" alt="快速创建"><br><img src="https://resources.r2wind.cn/img/202309/20230914172639.png" alt="编程访问"></p></li><li><p>配置用户权限，仅选择刚刚创建的权限策略，并点击<code>确定</code>保存。<br><img src="https://resources.r2wind.cn/img/202309/20230914174245.png" alt="用户权限"></p></li><li><p>点击<code>创建用户</code>，完成子账号创建，并记录保存 SecretId 和 SecretKey。<br><img src="https://resources.r2wind.cn/img/202309/20230914174413.png" alt="创建用户"><br><img src="https://resources.r2wind.cn/img/202309/20230914174611.png" alt="SecretId 和 SecretKey"></p></li></ol><h2 id="申请证书"><a href="#申请证书" class="headerlink" title="申请证书"></a>申请证书</h2><ol><li>将获取到的 SecretId 和 SecretKey 导入环境变量中，以便 acme.sh 调用。</li></ol><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">export Tencent_SecretId=&quot;&lt;Your SecretId&gt;&quot;</span><br><span class="line">export Tencent_SecretKey=&quot;&lt;Your SecretKey&gt;&quot;</span><br></pre></td></tr></table></figure><p>例如：</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">export Tencent_SecretId=&quot;AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;</span><br><span class="line">export Tencent_SecretKey=&quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;</span><br></pre></td></tr></table></figure><ol start="2"><li>使用 acme.sh 申请证书，例如：</li></ol><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">acme.sh --issue --dns dns_tencent -d example.com -d *.example.com</span><br></pre></td></tr></table></figure><p>例如：</p><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">acme.sh --issue --dns dns_tencent -d acme.dnstest.cc -d *.acme.dnstest.cc</span><br></pre></td></tr></table></figure><p>运行后，acme.sh 将自动为您的域名申请证书，并将证书文件保存在<code>~/.acme.sh/example.com/</code>目录下，并且会自动为您的域名配置证书自动续期任务，无需手动续期。<br>运行结果如下：<br><img src="https://resources.r2wind.cn/img/202309/20230914175823.png" alt="申请证书1"><br><img src="https://resources.r2wind.cn/img/202309/20230914180055.png" alt="申请证书2"></p><h2 id="后续操作"><a href="#后续操作" class="headerlink" title="后续操作"></a>后续操作</h2><h3 id="安装证书"><a href="#安装证书" class="headerlink" title="安装证书"></a>安装证书</h3><div class="note warning simple"><p>acme.sh 不建议直接使用<code>~/.acme.sh/</code>目录下的证书文件，而是通过 acme.sh 提供的命令将证书安装到指定位置，以确保证书的正确使用和续期，详情请参考 <a href="https://github.com/acmesh-official/acme.sh?tab=readme-ov-file#3-install-the-cert-to-apachenginx-etc">Install the cert to Apache&#x2F;Nginx etc</a>，以下以Nginx为例。</p></div><figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">acme.sh --install-cert -d example.com \</span><br><span class="line">--key-file       /path/to/keyfile/in/nginx/key.pem  \</span><br><span class="line">--fullchain-file /path/to/fullchain/nginx/cert.pem \</span><br><span class="line">--reloadcmd     &quot;service nginx force-reload&quot;</span><br></pre></td></tr></table></figure><div class="note info simple"><p>请将<code>example.com</code>替换为您的域名，<code>/path/to/keyfile/in/nginx/key.pem</code>和<code>/path/to/fullchain/nginx/cert.pem</code>替换为证书实际路径，<code>service nginx force-reload</code>替换为您使用的 web 服务重载命令。</p></div><p>完成申请后请将证书配置到您的网站中，以 Nginx 为例，示例如下：</p><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">server</span> &#123;</span><br><span class="line">    <span class="attribute">listen</span> <span class="number">443</span> ssl http2;</span><br><span class="line"></span><br><span class="line">    <span class="attribute">server_name</span> example.com;</span><br><span class="line"></span><br><span class="line">    <span class="comment"># 请替换为证书实际路径</span></span><br><span class="line">    <span class="attribute">ssl_certificate</span> /path/to/keyfile/in/nginx/cert.pem;</span><br><span class="line">    <span class="attribute">ssl_certificate_key</span> /path/to/fullchain/nginx/key.pem;</span><br><span class="line"></span><br><span class="line">    <span class="attribute">ssl_session_timeout</span> <span class="number">5m</span>;</span><br><span class="line">    <span class="attribute">ssl_protocols</span> TLSv1.<span class="number">2</span> TLSv1.<span class="number">3</span>;</span><br><span class="line">    <span class="attribute">ssl_ciphers</span> ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;</span><br><span class="line">    <span class="attribute">ssl_prefer_server_ciphers</span> <span class="literal">off</span>;</span><br><span class="line">    <span class="attribute">ssl_prefer_server_ciphers</span> <span class="literal">on</span>;</span><br><span class="line">    <span class="section">location</span> / &#123;</span><br><span class="line">        <span class="attribute">root</span> /nginx/www/html;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>完成后不要忘记重载服务哦~</p><p>现在，请尽情享受 HTTPS 带来的安全吧！</p><h2 id="联系我们"><a href="#联系我们" class="headerlink" title="联系我们"></a>联系我们</h2><p>如果您在使用过程中遇到任何问题，欢迎报告Issue，或者通过以下方式联系我们：<br>Issue：<a href="https://github.com/acmesh-official/acme.sh/issues/4781">Report bugs to TencentCloud (DNSPod) DNS API</a><br>官方用户群：您可在 DNSPod 任一官方用户群中联系<code>小泽</code>，点击加入 <a href="https://cloud.tencent.com/document/product/302/57607">DNSPod 官方用户群</a>。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;ACME（自动证书管理环境）是一个互联网工程任务组维护的协议，它允许自动化 Web 服务器证书的部署，&lt;a href=&quot;https://github.com/acmesh-official/acme.sh&quot;&gt;acme.sh&lt;/a&gt; 是支持 ACME</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="DNSPod" scheme="https://r2wind.cn/tags/DNSPod/"/>
    
    <category term="腾讯云" scheme="https://r2wind.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91/"/>
    
    <category term="域名" scheme="https://r2wind.cn/tags/%E5%9F%9F%E5%90%8D/"/>
    
    <category term="解析" scheme="https://r2wind.cn/tags/%E8%A7%A3%E6%9E%90/"/>
    
    <category term="证书" scheme="https://r2wind.cn/tags/%E8%AF%81%E4%B9%A6/"/>
    
  </entry>
  
  <entry>
    <title>DNS+HTTPDNS 实现 CNAME 展平 (CNAME Flattening)</title>
    <link href="https://r2wind.cn/articles/20230806.html"/>
    <id>https://r2wind.cn/articles/20230806.html</id>
    <published>2023-08-06T11:33:13.000Z</published>
    <updated>2023-08-06T11:33:13.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文将介绍如何使用 DNS (DNSPod) +HTTPDNS 实现 CNAME 展平 (CNAME Flattening)。一直以来，由于 CNAME 记录和任何记录冲突的独有特性，导致一旦在根域使用 CNAME 解析，将导致其他记录无法正常使用，影响 DS (DNSSEC)、MX (邮箱服务)、TXT (SPF、DKIM、DMARC、站长平台验证) 等记录的使用，进而影响依赖这些记录的相关服务（如括号内所示），而 CNAME 展平 (CNAME Flattening) 是解决这个问题的一种方法，但由于 DNSPod 本身不支持 CNAME 展平 (CNAME Flattening)，所以本文将介绍如何使用 DNS+HTTPDNS 通过 API 调用的方式实现 CNAME 展平 (CNAME Flattening)。</p></blockquote><blockquote><p>为确保能精准稳定的获取到 CDN 等厂商提供的 CNAME 记录所对应的解析 IP（调度结果），脚本需要使用 HTTPDNS 服务，HTTPDNS 服务可能产生对应的请求次数费用，具体费用请参考 <a href="https://cloud.tencent.com/document/product/379/9216">HTTPDNS 计费说明</a>。</p></blockquote><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>域名解析托管在 DNSPod 且使用的套餐版本不低于「企业版」</li><li>已开通 HTTPDNS 服务</li></ul><h2 id="限制说明"><a href="#限制说明" class="headerlink" title="限制说明"></a>限制说明</h2><ul><li>本脚本默认仅支持国内 31 个省份的三大运营商线路，其他二级运营商、教育网、中国港澳台、境外等默认调度至上海电信线路兜底，如您需要更加完整的覆盖，可自行修改脚本添加对应的线路，详情可以查看脚本中的注释。</li></ul><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><h3 id="前期准备"><a href="#前期准备" class="headerlink" title="前期准备"></a>前期准备</h3><h4 id="添加域名"><a href="#添加域名" class="headerlink" title="添加域名"></a>添加域名</h4><ol><li>登录 <a href="https://console.cloud.tencent.com/httpdns/domain">HTTPDNS 控制台</a>，在左侧导航栏中，单击<code>域名管理</code>，进入<code>域名管理</code>页面。<br><img src="https://resources.r2wind.cn/img/202308/20230806183931.png" alt="域名管理"></li><li>在<code>域名管理</code>页面，单击<code>添加主域名</code>，在弹出的对话框中，输入需要添加的域名所属的，单击<code>确定</code>。<br><img src="https://resources.r2wind.cn/img/202308/20230806184326.png" alt="添加主域名"><blockquote><p>注意：<br>此处添加的域名为需要展平的 CNAME 记录所对应的主域名，而不是您自己域名；<br>例如，您需要展平的 CNAME 记录为<code>r2wind.cn.cdn.dnsv1.com.cn</code>，则此处添加的域名为<code>dnsv1.com.cn</code>。<br>再举个例子，您需要展平的 CNAME 记录为<code>r2wind.cn.eo.dnse3.com</code>，则此处添加的域名为<code>dnse3.com</code>。</p></blockquote></li></ol><h4 id="获取Token"><a href="#获取Token" class="headerlink" title="获取Token"></a>获取Token</h4><ol><li>登录 <a href="https://console.cloud.tencent.com/httpdns/configure">HTTPDNS 控制台</a>，在左侧导航栏中，单击<code>开发配置</code>，进入<code>开发配置</code>页面，点击Token后面的图标获取Token.<br><img src="https://resources.r2wind.cn/img/202308/20230806185020.png" alt="获取Token"></li></ol><h4 id="导入记录"><a href="#导入记录" class="headerlink" title="导入记录"></a>导入记录</h4><p>使用前请您前往<a href="https://console.dnspod.cn/dns/list">DNSPod 控制台</a>导入相应记录，否则本脚本将无法正常运行。</p><h5 id="下载记录模板"><a href="#下载记录模板" class="headerlink" title="下载记录模板"></a>下载记录模板</h5><p>IPv4 模板：<a href="https://dl.r2wind.cn/template/DNSPod-IPv4-Storm.xls">https://dl.r2wind.cn/template/DNSPod-IPv4-Storm.xls</a><br>IPv6 模板：<a href="https://dl.r2wind.cn/template/DNSPod-IPv6-Storm.xls">https://dl.r2wind.cn/template/DNSPod-IPv6-Storm.xls</a></p><blockquote><p>说明：<br>请根据IP类型选择相应模板。<br>导入前请自行修改模板中的主机记录。（若有需要）<br>导入前请自行修改模板中的记录值为当前 CDN 节点 IP，否则会影响域名正常访问。（节点 IP 可以通过nslookup查询CDN CNAME地址获取）<br>若需要导入的记录已在控制台添加过，请删除原有记录后再导入。</p></blockquote><h5 id="导入记录-1"><a href="#导入记录-1" class="headerlink" title="导入记录"></a>导入记录</h5><ol><li>登录 <a href="https://console.dnspod.cn/dns/batch/import-record">DNSPod 控制台</a>，进入<strong>批量操作-导入记录</strong>页面。</li><li>输入需要导入的域名，上传已经修改好的模板，点击<strong>批量导入</strong>。<br><img src="https://resources.r2wind.cn/img/202308/20230806194310.png" alt="导入记录"></li><li>等待导入完成，请注意查看导入结果，若有导入失败的记录，查看原因修正后手动添加记录，不要重复导入。</li></ol><h3 id="配置脚本"><a href="#配置脚本" class="headerlink" title="配置脚本"></a>配置脚本</h3><h4 id="安装依赖"><a href="#安装依赖" class="headerlink" title="安装依赖"></a>安装依赖</h4><p>本脚本提供Go语言版本和<a href="https://github.com/KincaidYang/CNAMEFlattening/tree/main/python/DNSPod/Storm">Python语言</a>版本，您可根据自己的需求选择相应版本，在此处仅演示 Go 语言版本的相关步骤。</p><h5 id="安装Go语言环境"><a href="#安装Go语言环境" class="headerlink" title="安装Go语言环境"></a>安装Go语言环境</h5><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 安装Go语言环境</span></span><br><span class="line">wget https://dl.google.com/go/go1.21.3.linux-amd64.tar.gz</span><br><span class="line"><span class="built_in">rm</span> -rf /usr/local/go &amp;&amp; tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz</span><br><span class="line"><span class="built_in">export</span> PATH=<span class="variable">$PATH</span>:/usr/local/go/bin</span><br><span class="line"><span class="comment"># 设置GOPROXY</span></span><br><span class="line"><span class="built_in">export</span> GOPROXY=https://mirrors.cloud.tencent.com/go/</span><br></pre></td></tr></table></figure><h6 id="安装其他依赖"><a href="#安装其他依赖" class="headerlink" title="安装其他依赖"></a>安装其他依赖</h6><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># CentOS/RHEL</span></span><br><span class="line">yum install cronie</span><br><span class="line">yum install git</span><br><span class="line"><span class="comment"># Debian/Ubuntu</span></span><br><span class="line">apt install cron git</span><br></pre></td></tr></table></figure><h4 id="获取脚本"><a href="#获取脚本" class="headerlink" title="获取脚本"></a>获取脚本</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 从GitHub克隆脚本</span></span><br><span class="line">git <span class="built_in">clone</span> https://github.com/KincaidYang/CNAMEFlattening.git</span><br><span class="line"><span class="comment"># 如您的服务器无法访问GitHub，可使用如下镜像地址</span></span><br><span class="line">git <span class="built_in">clone</span> https://kgithub.com/KincaidYang/CNAMEFlattening.git</span><br></pre></td></tr></table></figure><h4 id="修改配置"><a href="#修改配置" class="headerlink" title="修改配置"></a>修改配置</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 进入脚本目录</span></span><br><span class="line"><span class="built_in">cd</span> CNAMEFlattening/go/DNSPod/Storm</span><br><span class="line"><span class="comment"># 修改配置文件</span></span><br><span class="line">vim config.go</span><br></pre></td></tr></table></figure><p>安装文件中的配置项说明完成配置</p><figure class="highlight go"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">// 本脚本调用了腾讯云HTTPDNS服务，可能会产生额外费用，如不想付费请使用Frost版本https://github.com/KincaidYang/CNAMEFlattening/tree/main/DNSPod/Frost</span></span><br><span class="line"><span class="keyword">package</span> main</span><br><span class="line"></span><br><span class="line"><span class="keyword">const</span> (</span><br><span class="line"><span class="comment">// 请替换成您自己的域名</span></span><br><span class="line">domain = <span class="string">&quot;r2wind.cn&quot;</span></span><br><span class="line"><span class="comment">// 请替换成您自己的子域名前缀，如果不使用子域名请写 @</span></span><br><span class="line">subdomain = <span class="string">&quot;ipv4&quot;</span></span><br><span class="line"><span class="comment">// 请替换成您的 CDN或其他服务的 CNAME 服务地址</span></span><br><span class="line"><span class="comment">// 使用前请前往 https://console.cloud.tencent.com/httpdns/domain 将 CDN 服务域名添加到 HTTPDNS</span></span><br><span class="line"><span class="comment">// 仅需添加主域名，如您的 CDN 服务域名为 cdn.r2wind.cn，仅需填写 r2wind.cn 完成添加即可</span></span><br><span class="line">CDNCNAME = <span class="string">&quot;r2wind.cn.eo.dnse3.com&quot;</span></span><br><span class="line"><span class="comment">// 您的腾讯云HTTPDNS服务的密钥，可前往 https://console.cloud.tencent.com/httpdns/configure 获取</span></span><br><span class="line">Token = <span class="string">&quot;1********0&quot;</span></span><br><span class="line"><span class="comment">// 您的腾讯云账号的 SecretId 和 SecretKey，可前往 https://console.cloud.tencent.com/cam/capi 获取</span></span><br><span class="line">SecretId  = <span class="string">&quot;AKIDc5Ui**********cFfuz4GUX&quot;</span></span><br><span class="line">SecretKey = <span class="string">&quot;teMvJS**************8bppa8U&quot;</span></span><br><span class="line"><span class="comment">// 注意，该地址为DNSPod HTTPDNS服务地址，无需更换</span></span><br><span class="line">DoH = <span class="string">&quot;https://119.29.29.99/d&quot;</span></span><br><span class="line"><span class="comment">// 记录类型，AAAA为IPv6记录，A为IPv4记录，请根据实际需要自行修改</span></span><br><span class="line">recordType = <span class="string">&quot;A&quot;</span></span><br><span class="line"><span class="comment">// 记录TTL，单位秒，建议不低于60秒</span></span><br><span class="line">recordTTL = <span class="number">60</span></span><br><span class="line">)</span><br></pre></td></tr></table></figure><h4 id="编译脚本"><a href="#编译脚本" class="headerlink" title="编译脚本"></a>编译脚本</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">go build</span><br></pre></td></tr></table></figure><p>完成编译后，会在当前目录生成可执行文件<code>Storm</code>，您可将其移动到任意位置。</p><h4 id="运行脚本"><a href="#运行脚本" class="headerlink" title="运行脚本"></a>运行脚本</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./Storm</span><br></pre></td></tr></table></figure><p>运行后您将会看到如下输出<br><img src="https://resources.r2wind.cn/img/202308/20230806192631.png" alt="运行脚本"></p><h4 id="设置定时任务"><a href="#设置定时任务" class="headerlink" title="设置定时任务"></a>设置定时任务</h4><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 编辑定时任务</span></span><br><span class="line">crontab -e</span><br><span class="line"><span class="comment"># 添加定时任务</span></span><br><span class="line"><span class="comment">## 每5分钟执行一次</span></span><br><span class="line">*/5 * * * * /path/to/Storm</span><br></pre></td></tr></table></figure><blockquote><p>说明：<br>请根据实际情况自行修改定时任务执行频率。<br>请根据实际情况自行修改脚本路径，&#x2F;path&#x2F;to&#x2F;请替换成您脚本的实际路径。<br>编辑完成后请保存退出即可。</p></blockquote><h3 id="验证效果"><a href="#验证效果" class="headerlink" title="验证效果"></a>验证效果</h3><p>您可以在 <a href="https://console.dnspod.cn/dns/list">DNSPod 控制台</a>查看对应域名的相关记录，若记录值已经更新为 CDN 节点 IP，则说明脚本运行成功。</p><h2 id="问题反馈"><a href="#问题反馈" class="headerlink" title="问题反馈"></a>问题反馈</h2><p>若您在使用过程中遇到任何问题，欢迎您提交 <a href="https://github.com/KincaidYang/CNAMEFlattening/issues">Issue</a>。</p><h2 id="脚本示意"><a href="#脚本示意" class="headerlink" title="脚本示意"></a>脚本示意</h2><p><img src="https://resources.r2wind.cn/img/202308/page_1.png" alt="脚本示意"></p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;本文将介绍如何使用 DNS (DNSPod) +HTTPDNS 实现 CNAME 展平 (CNAME Flattening)。一直以来，由于 CNAME 记录和任何记录冲突的独有特性，导致一旦在根域使用 CNAME 解析，将导致其他记录无法正常使用</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="DNSPod" scheme="https://r2wind.cn/tags/DNSPod/"/>
    
    <category term="腾讯云" scheme="https://r2wind.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91/"/>
    
    <category term="域名" scheme="https://r2wind.cn/tags/%E5%9F%9F%E5%90%8D/"/>
    
    <category term="解析" scheme="https://r2wind.cn/tags/%E8%A7%A3%E6%9E%90/"/>
    
    <category term="作品集" scheme="https://r2wind.cn/tags/%E4%BD%9C%E5%93%81%E9%9B%86/"/>
    
  </entry>
  
  <entry>
    <title>记一次使用 fontTools 优化网页字体（字体文件大小）</title>
    <link href="https://r2wind.cn/articles/20230612.html"/>
    <id>https://r2wind.cn/articles/20230612.html</id>
    <published>2023-06-12T06:30:46.000Z</published>
    <updated>2023-06-12T06:30:46.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>一直以来，本站使用的是 HarmonyOS Sans 字体，但由于中文字体文件过大（约 4.3 MB），导致网页加载速度缓慢，不利于弱网环境下的访问。因此，本文将介绍如何使用 fontTools 中的 pyftsubset 对网页字体进行切片，以优化网页字体文件大小。</p></blockquote><h2 id="安装依赖"><a href="#安装依赖" class="headerlink" title="安装依赖"></a>安装依赖</h2><p>使用前需要安装 Python 3,fontTools 以及 woff2</p><h3 id="安装-Python-3"><a href="#安装-Python-3" class="headerlink" title="安装 Python 3"></a>安装 Python 3</h3><p>Python3 一般系统都有自带，如果没有，可以使用以下命令安装：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Debian/Ubuntu</span></span><br><span class="line">apt install python3</span><br></pre></td></tr></table></figure><h3 id="安装-fontTools"><a href="#安装-fontTools" class="headerlink" title="安装 fontTools"></a>安装 fontTools</h3><p>安装完成后，使用以下命令安装 fontTools：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">pip3 install fontTools</span><br><span class="line"><span class="comment"># 在一些版本的 Debian/Ubuntu 系统中，可能需要使用以下命令</span></span><br><span class="line">apt install python3-fonttools</span><br></pre></td></tr></table></figure><blockquote><p>一些系统可能需要使用 pip 命令，具体可自行尝试。</p></blockquote><h3 id="安装-woff2"><a href="#安装-woff2" class="headerlink" title="安装 woff2"></a>安装 woff2</h3><p>在对字体文件进行切片后，需要将字体文件转换为 woff2 格式，因此需要安装 woff2 工具：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 安装依赖</span></span><br><span class="line"><span class="comment">## Debian 11或12</span></span><br><span class="line">apt update</span><br><span class="line">apt install build-essential ca-certificates zlib1g-dev libpcre3 libpcre3-dev tar unzip libssl-dev wget curl git cmake ninja-build mercurial libunwind-dev pkg-config libbrotli-dev</span><br><span class="line"><span class="comment">## Ubuntu 22.04或20.04</span></span><br><span class="line"><span class="built_in">sudo</span> su</span><br><span class="line"><span class="built_in">cd</span> /root</span><br><span class="line">apt update</span><br><span class="line">apt install build-essential ca-certificates zlib1g-dev libpcre3 libpcre3-dev tar unzip libssl-dev wget curl git cmake ninja-build mercurial libunwind-dev pkg-config libbrotli-dev</span><br><span class="line"><span class="comment"># 编译安装 woff2</span></span><br><span class="line">git <span class="built_in">clone</span> https://github.com/google/woff2.git</span><br><span class="line"><span class="built_in">cd</span> woff2</span><br><span class="line"><span class="built_in">mkdir</span> out</span><br><span class="line"><span class="built_in">cd</span> out</span><br><span class="line">cmake ..</span><br><span class="line">make</span><br><span class="line">make install</span><br><span class="line"><span class="comment"># 设置环境变量</span></span><br><span class="line"><span class="built_in">export</span> PATH=<span class="variable">$PATH</span>:/root/woff2/out</span><br></pre></td></tr></table></figure><h2 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h2><h3 id="上传字体文件"><a href="#上传字体文件" class="headerlink" title="上传字体文件"></a>上传字体文件</h3><p>新建一个文件夹，将需要切片的字体文件放入其中：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">mkdir</span> fonts</span><br><span class="line"><span class="built_in">cd</span> fonts</span><br></pre></td></tr></table></figure><h3 id="切片并转换为-woff2-格式"><a href="#切片并转换为-woff2-格式" class="headerlink" title="切片并转换为 woff2 格式"></a>切片并转换为 woff2 格式</h3><p>本文使用的是 HarmonyOS Sans 字体，字体文件名为 <code>HarmonyOS_Sans_SC_Regular.ttf</code>，使用以下命令进行切片：</p><blockquote><p>注意：<br>1.如您使用的是其他字体，请将命令复制到编辑器，并将命令中的 <code>HarmonyOS_Sans_SC_Regular</code> 替换为您的字体名称。<br>2.本文切片 unicode 参照了 Google Fonts 的 CSS 文件。<br>3.更多使用方法请参考<a href="https://fonttools.readthedocs.io/en/latest/subset/index.html%E3%80%82">https://fonttools.readthedocs.io/en/latest/subset/index.html。</a><br>4.以下命令仅适用于中文简体。<br>5.不要一次性将命令复制到终端执行，请先测试一下，再逐步执行。</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br></pre></td><td class="code"><pre><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.4.ttf  --unicodes=<span class="string">&#x27;U+1f1e9-1f1f5, U+1f1f7-1f1ff, U+1f21a, U+1f232, U+1f234-1f237, U+1f250-1f251, U+1f300, U+1f302-1f308, U+1f30a-1f311, U+1f315, U+1f319-1f320, U+1f324, U+1f327, U+1f32a, U+1f32c-1f32d, U+1f330-1f357, U+1f359-1f37e&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.4.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.5.ttf  --unicodes=<span class="string">&#x27;U+fee3, U+fef3, U+ff03-ff04, U+ff07, U+ff0a, U+ff17-ff19, U+ff1c-ff1d, U+ff20-ff3a, U+ff3c, U+ff3e-ff5b, U+ff5d, U+ff61-ff65, U+ff67-ff6a, U+ff6c, U+ff6f-ff78, U+ff7a-ff7d, U+ff80-ff84, U+ff86, U+ff89-ff8e, U+ff92, U+ff97-ff9b, U+ff9d-ff9f, U+ffe0-ffe4, U+ffe6, U+ffe9, U+ffeb, U+ffed, U+fffc, U+1f004, U+1f170-1f171, U+1f192-1f195, U+1f198-1f19a, U+1f1e6-1f1e8&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.5.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.6.ttf  --unicodes=<span class="string">&#x27;U+f0a7, U+f0b2, U+f0b7, U+f0c9, U+f0d8, U+f0da, U+f0dc-f0dd, U+f0e0, U+f0e6, U+f0eb, U+f0fc, U+f101, U+f104-f105, U+f107, U+f10b, U+f11b, U+f14b, U+f18a, U+f193, U+f1d6-f1d7, U+f244, U+f27a, U+f296, U+f2ae, U+f471, U+f4b3, U+f610-f611, U+f880-f881, U+f8ec, U+f8f5, U+f8ff, U+f901, U+f90a, U+f92c-f92d, U+f934, U+f937, U+f941, U+f965, U+f967, U+f969, U+f96b, U+f96f, U+f974, U+f978-f979, U+f97e, U+f981, U+f98a, U+f98e, U+f997, U+f99c, U+f9b2, U+f9b5, U+f9ba, U+f9be, U+f9ca, U+f9d0-f9d1, U+f9dd, U+f9e0-f9e1, U+f9e4, U+f9f7, U+fa00-fa01, U+fa08, U+fa0a, U+fa11, U+fb01-fb02, U+fdfc, U+fe0e, U+fe30-fe31, U+fe33-fe44, U+fe49-fe52, U+fe54-fe57, U+fe59-fe66, U+fe68-fe6b, U+fe8e, U+fe92-fe93, U+feae, U+feb8, U+fecb-fecc, U+fee0&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.6.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.21.ttf  --unicodes=<span class="string">&#x27;U+9f3d-9f3e, U+9f41, U+9f4a-9f4b, U+9f51-9f52, U+9f61-9f63, U+9f66-9f67, U+9f80-9f81, U+9f83, U+9f85-9f8d, U+9f90-9f91, U+9f94-9f96, U+9f98, U+9f9b-9f9c, U+9f9e, U+9fa0, U+9fa2, U+9ff4, U+a001, U+a007, U+a025, U+a046-a047, U+a057, U+a072, U+a078-a079, U+a083, U+a085, U+a100, U+a118, U+a132, U+a134, U+a1f4, U+a242, U+a4a6, U+a4aa, U+a4b0-a4b1, U+a4b3, U+a9c1-a9c2, U+ac00-ac01, U+ac04, U+ac08, U+ac10-ac11, U+ac13-ac16, U+ac19, U+ac1c-ac1d, U+ac24, U+ac70-ac71, U+ac74, U+ac77-ac78, U+ac80-ac81, U+ac83, U+ac8c, U+ac90, U+ac9f-aca0, U+aca8-aca9, U+acac, U+acb0, U+acbd, U+acc1, U+acc4, U+ace0-ace1, U+ace4, U+ace8, U+acf3, U+acf5, U+acfc-acfd, U+ad00, U+ad0c, U+ad11, U+ad1c, U+ad34, U+ad50, U+ad64, U+ad6c, U+ad70, U+ad74, U+ad7f, U+ad81, U+ad8c, U+adc0, U+adc8, U+addc, U+ade0, U+adf8-adf9, U+adfc, U+ae00, U+ae08-ae09, U+ae0b, U+ae30, U+ae34, U+ae38, U+ae40, U+ae4a, U+ae4c, U+ae54, U+ae68, U+aebc, U+aed8, U+af2c-af2d, U+af34&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.21.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.22.ttf  --unicodes=<span class="string">&#x27;U+9dfa, U+9e0a, U+9e11, U+9e1a, U+9e1e, U+9e20, U+9e22, U+9e28-9e2c, U+9e2e-9e33, U+9e35-9e3b, U+9e3e, U+9e40-9e44, U+9e46-9e4e, U+9e51, U+9e53, U+9e55-9e58, U+9e5a-9e5c, U+9e5e-9e63, U+9e66-9e6e, U+9e71, U+9e73, U+9e75, U+9e78-9e79, U+9e7c-9e7e, U+9e82, U+9e86-9e88, U+9e8b-9e8c, U+9e90-9e91, U+9e93, U+9e95, U+9e97, U+9e9d, U+9ea4-9ea5, U+9ea9-9eaa, U+9eb4-9eb5, U+9eb8-9eba, U+9ebc-9ebf, U+9ec3, U+9ec9, U+9ecd, U+9ed0, U+9ed2-9ed3, U+9ed5-9ed6, U+9ed9, U+9edc-9edd, U+9edf-9ee0, U+9ee2, U+9ee5, U+9ee7-9eea, U+9eef, U+9ef1, U+9ef3-9ef4, U+9ef6, U+9ef9, U+9efb-9efc, U+9efe, U+9f0b, U+9f0d, U+9f10, U+9f14, U+9f17, U+9f19, U+9f22, U+9f29, U+9f2c, U+9f2f, U+9f31, U+9f37, U+9f39&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.22.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.23.ttf  --unicodes=<span class="string">&#x27;U+9c3b, U+9c40, U+9c47-9c49, U+9c53, U+9c57, U+9c64, U+9c72, U+9c77-9c78, U+9c7b, U+9c7f-9c80, U+9c82-9c83, U+9c85-9c8c, U+9c8e-9c92, U+9c94-9c9b, U+9c9e-9ca3, U+9ca5-9ca7, U+9ca9, U+9cab, U+9cad-9cae, U+9cb1-9cb7, U+9cb9-9cbd, U+9cbf-9cc0, U+9cc3, U+9cc5-9cc7, U+9cc9-9cd1, U+9cd3-9cda, U+9cdc-9cdd, U+9cdf, U+9ce1-9ce3, U+9ce5, U+9ce9, U+9cee-9cef, U+9cf3-9cf4, U+9cf6, U+9cfc-9cfd, U+9d02, U+9d08-9d09, U+9d12, U+9d1b, U+9d1e, U+9d26, U+9d28, U+9d37, U+9d3b, U+9d3f, U+9d51, U+9d59, U+9d5c-9d5d, U+9d5f-9d61, U+9d6c, U+9d70, U+9d72, U+9d7a, U+9d7e, U+9d84, U+9d89, U+9d8f, U+9d92, U+9daf, U+9db4, U+9db8, U+9dbc, U+9dc4, U+9dc7, U+9dc9, U+9dd7, U+9ddf, U+9df2, U+9df9&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.23.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.24.ttf  --unicodes=<span class="string">&#x27;U+9a5f, U+9a62, U+9a65, U+9a69, U+9a6b, U+9a6e, U+9a75, U+9a77-9a7a, U+9a7d, U+9a80, U+9a83, U+9a85, U+9a87-9a8a, U+9a8d-9a8e, U+9a90, U+9a92-9a93, U+9a95-9a96, U+9a98-9a99, U+9a9b-9aa2, U+9aa5, U+9aa7, U+9aaf-9ab1, U+9ab5-9ab6, U+9ab9-9aba, U+9abc, U+9ac0-9ac4, U+9ac8, U+9acb-9acc, U+9ace-9acf, U+9ad1-9ad2, U+9ad9, U+9adf, U+9ae1, U+9ae3, U+9aea-9aeb, U+9aed-9aef, U+9af4, U+9af9, U+9afb, U+9b03-9b04, U+9b06, U+9b08, U+9b0d, U+9b0f-9b10, U+9b13, U+9b18, U+9b1a, U+9b1f, U+9b22-9b23, U+9b25, U+9b27-9b28, U+9b2a, U+9b2f, U+9b31-9b32, U+9b3b, U+9b43, U+9b46-9b49, U+9b4d-9b4e, U+9b51, U+9b56, U+9b58, U+9b5a, U+9b5c, U+9b5f, U+9b61-9b62, U+9b6f, U+9b77, U+9b80, U+9b88, U+9b8b, U+9b8e, U+9b91, U+9b9f-9ba0, U+9ba8, U+9baa-9bab, U+9bad-9bae, U+9bb0-9bb1, U+9bb8, U+9bc9-9bca, U+9bd3, U+9bd6, U+9bdb, U+9be8, U+9bf0-9bf1, U+9c02, U+9c10, U+9c15, U+9c24, U+9c2d, U+9c32, U+9c39&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.24.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.25.ttf  --unicodes=<span class="string">&#x27;U+98c8, U+98cf-98d6, U+98da-98db, U+98dd, U+98e1-98e2, U+98e7-98ea, U+98ec, U+98ee-98ef, U+98f2, U+98f4, U+98fc-98fe, U+9903, U+9905, U+9908, U+990a, U+990c-990d, U+9913-9914, U+9918, U+991a-991b, U+991e, U+9921, U+9928, U+992c, U+992e, U+9935, U+9938-9939, U+993d-993e, U+9945, U+994b-994c, U+9951-9952, U+9954-9955, U+9957, U+995e, U+9963, U+9966-9969, U+996b-996c, U+996f, U+9974-9975, U+9977-9979, U+997d-997e, U+9980-9981, U+9983-9984, U+9987, U+998a-998b, U+998d-9991, U+9993-9995, U+9997-9998, U+99a5, U+99ab-99ae, U+99b1, U+99b3-99b4, U+99bc, U+99bf, U+99c1, U+99c3-99c6, U+99cc, U+99d0, U+99d2, U+99d5, U+99db, U+99dd, U+99e1, U+99ed, U+99f1, U+99ff, U+9a01, U+9a03-9a04, U+9a0e-9a0f, U+9a11-9a13, U+9a19, U+9a1b, U+9a28, U+9a2b, U+9a30, U+9a32, U+9a37, U+9a40, U+9a45, U+9a4a, U+9a4d-9a4e, U+9a52, U+9a55, U+9a57, U+9a5a-9a5b&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.25.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.26.ttf  --unicodes=<span class="string">&#x27;U+972a, U+972d, U+9730, U+973d, U+9742, U+9744, U+9748-9749, U+9750-9751, U+975a-975c, U+9763, U+9765-9766, U+976c-976d, U+9773, U+9776, U+977a, U+977c, U+9784-9785, U+978e-978f, U+9791-9792, U+9794-9795, U+9798, U+979a, U+979e, U+97a3, U+97a5-97a6, U+97a8, U+97ab-97ac, U+97ae-97af, U+97b2, U+97b4, U+97c6, U+97cb-97cc, U+97d3, U+97d8, U+97dc, U+97e1, U+97ea-97eb, U+97ee, U+97fb, U+97fe-97ff, U+9801-9803, U+9805-9806, U+9808, U+980c, U+9810-9814, U+9817-9818, U+981e, U+9820-9821, U+9824, U+9828, U+982b-982d, U+9830, U+9834, U+9838-9839, U+983c, U+9846, U+984d-984f, U+9851-9852, U+9854-9855, U+9857-9858, U+985a-985b, U+9862-9863, U+9865, U+9867, U+986b, U+986f-9871, U+9877-9878, U+987c, U+9880, U+9883, U+9885, U+9889, U+988b-988f, U+9893-9895, U+9899-989b, U+989e-989f, U+98a1-98a2, U+98a5-98a7, U+98a9, U+98af, U+98b1, U+98b6, U+98ba, U+98be, U+98c3-98c4, U+98c6-98c7&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.26.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.27.ttf  --unicodes=<span class="string">&#x27;U+95b9-95ca, U+95cc-95cd, U+95d4-95d6, U+95d8, U+95e1-95e2, U+95e9, U+95f0-95f1, U+95f3, U+95f6, U+95fc, U+95fe-95ff, U+9602-9604, U+9606-960d, U+960f, U+9611-9613, U+9615-9617, U+9619-961b, U+961d, U+9621, U+9628, U+962f, U+963c-963e, U+9641-9642, U+9649, U+9654, U+965b-965f, U+9661, U+9663, U+9665, U+9667-9668, U+966c, U+9670, U+9672-9674, U+9678, U+967a, U+967d, U+9682, U+9685, U+9688, U+968a, U+968d-968e, U+9695, U+9697-9698, U+969e, U+96a0, U+96a3-96a4, U+96a8, U+96aa, U+96b0-96b1, U+96b3-96b4, U+96b7-96b9, U+96bb-96bd, U+96c9, U+96cb, U+96ce, U+96d1-96d2, U+96d6, U+96d9, U+96db-96dc, U+96de, U+96e0, U+96e3, U+96e9, U+96eb, U+96f0-96f2, U+96f9, U+96ff, U+9701-9702, U+9705, U+9708, U+970a, U+970e-970f, U+9711, U+9719, U+9727&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.27.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.28.ttf  --unicodes=<span class="string">&#x27;U+94e7-94ec, U+94ee-94f1, U+94f3, U+94f5, U+94f7, U+94f9, U+94fb-94fd, U+94ff, U+9503-9504, U+9506-9507, U+9509-950a, U+950d-950f, U+9511-9518, U+951a-9520, U+9522, U+9528-952d, U+9530-953a, U+953c-953f, U+9543-9546, U+9548-9550, U+9552-9555, U+9557-955b, U+955d-9568, U+956a-956d, U+9570-9574, U+9583, U+9586, U+9589, U+958e-958f, U+9591-9592, U+9594, U+9598-9599, U+959e-95a0, U+95a2-95a6, U+95a8-95b2, U+95b4, U+95b8&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.28.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.29.ttf  --unicodes=<span class="string">&#x27;U+9410-941a, U+941c-942b, U+942d-942e, U+9432-9433, U+9435, U+9438, U+943a, U+943e, U+9444, U+944a, U+9451-9452, U+945a, U+9462-9463, U+9465, U+9470-9487, U+948a-9492, U+9494-9498, U+949a, U+949c-949d, U+94a1, U+94a3-94a4, U+94a8, U+94aa-94ad, U+94af, U+94b2, U+94b4-94ba, U+94bc-94c0, U+94c4, U+94c6-94db, U+94de-94e6&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.29.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.30.ttf  --unicodes=<span class="string">&#x27;U+92b7, U+92b9, U+92c1, U+92c5-92c6, U+92c8, U+92cc, U+92d0, U+92d2, U+92e4, U+92ea, U+92ec-92ed, U+92f0, U+92f3, U+92f8, U+92fc, U+9304, U+9306, U+9310, U+9312, U+9315, U+9318, U+931a, U+931e, U+9320-9322, U+9324, U+9326-9329, U+932b-932c, U+932f, U+9331-9332, U+9335-9336, U+933e, U+9340-9341, U+934a-9360, U+9362-9363, U+9365-936b, U+936e, U+9375, U+937e, U+9382, U+938a, U+938c, U+938f, U+9393-9394, U+9396-9397, U+939a, U+93a2, U+93a7, U+93ac-93cd, U+93d0-93d1, U+93d6-93d8, U+93de-93df, U+93e1-93e2, U+93e4, U+93f8, U+93fb, U+93fd, U+940e-940f&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.30.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.31.ttf  --unicodes=<span class="string">&#x27;U+914c, U+914e-9150, U+9154, U+9157, U+915a, U+915d-915e, U+9161-9164, U+9169, U+9170, U+9172, U+9174, U+9179-917a, U+917d-917e, U+9182-9183, U+9185, U+918c-918d, U+9190-9191, U+919a, U+919c, U+91a1-91a4, U+91a8, U+91aa-91af, U+91b4-91b5, U+91b8, U+91ba, U+91be, U+91c0-91c1, U+91c6, U+91c8, U+91cb, U+91d0, U+91d2, U+91d7-91d8, U+91dd, U+91e3, U+91e6-91e7, U+91ed, U+91f0, U+91f5, U+91f9, U+9200, U+9205, U+9207-920a, U+920d-920e, U+9210, U+9214-9215, U+921c, U+921e, U+9221, U+9223-9227, U+9229-922a, U+922d, U+9234-9235, U+9237, U+9239-923a, U+923c-9240, U+9244-9246, U+9249, U+924e-924f, U+9251, U+9253, U+9257, U+925b, U+925e, U+9262, U+9264-9266, U+9268, U+926c, U+926f, U+9271, U+927b, U+927e, U+9280, U+9283, U+9285-928a, U+928e, U+9291, U+9293, U+9296, U+9298, U+929c-929d, U+92a8, U+92ab-92ae, U+92b3, U+92b6&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.31.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.32.ttf  --unicodes=<span class="string">&#x27;U+8fe2-8fe5, U+8fe8-8fe9, U+8fee, U+8ff3-8ff4, U+8ff8, U+8ffa, U+9004, U+900b, U+9011, U+9015-9016, U+901e, U+9021, U+9026, U+902d, U+902f, U+9031, U+9035-9036, U+9039-903a, U+9041, U+9044-9046, U+904a, U+904f-9052, U+9054-9055, U+9058-9059, U+905b-905e, U+9060-9062, U+9068-9069, U+906f, U+9072, U+9074, U+9076-907a, U+907c-907d, U+9081, U+9083, U+9085, U+9087-908b, U+908f, U+9095, U+9097, U+9099-909b, U+909d, U+90a0-90a1, U+90a8-90a9, U+90ac, U+90b0, U+90b2-90b4, U+90b6, U+90b8, U+90ba, U+90bd-90be, U+90c3-90c5, U+90c7-90c8, U+90cf-90d0, U+90d3, U+90d5, U+90d7, U+90da-90dc, U+90de, U+90e2, U+90e4, U+90e6-90e7, U+90ea-90eb, U+90ef, U+90f4-90f5, U+90f7, U+90fe-9100, U+9104, U+9109, U+910c, U+9112, U+9114-9115, U+9118, U+911c, U+911e, U+9120, U+9122-9123, U+9127, U+912d, U+912f-9132, U+9139-913a, U+9143, U+9146, U+9149-914a&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.32.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.33.ttf  --unicodes=<span class="string">&#x27;U+8e2d-8e31, U+8e34-8e35, U+8e39-8e3a, U+8e3d, U+8e40-8e42, U+8e47, U+8e49-8e4b, U+8e50-8e53, U+8e59-8e5a, U+8e5f-8e60, U+8e64, U+8e69, U+8e6c, U+8e70, U+8e74, U+8e76, U+8e7a-8e7c, U+8e7f, U+8e84-8e85, U+8e87, U+8e89, U+8e8b, U+8e8d, U+8e8f-8e90, U+8e94, U+8e99, U+8e9c, U+8e9e, U+8eaa, U+8eac, U+8eb0, U+8eb6, U+8ec0, U+8ec6, U+8eca-8ece, U+8ed2, U+8eda, U+8edf, U+8ee2, U+8eeb, U+8ef8, U+8efb-8efe, U+8f03, U+8f09, U+8f0b, U+8f12-8f15, U+8f1b, U+8f1d, U+8f1f, U+8f29-8f2a, U+8f2f, U+8f36, U+8f38, U+8f3b, U+8f3e-8f3f, U+8f44-8f45, U+8f49, U+8f4d-8f4e, U+8f5f, U+8f6b, U+8f6d, U+8f71-8f73, U+8f75-8f76, U+8f78-8f7a, U+8f7c, U+8f7e, U+8f81-8f82, U+8f84, U+8f87, U+8f8a-8f8b, U+8f8d-8f8f, U+8f94-8f95, U+8f97-8f9a, U+8fa6, U+8fad-8faf, U+8fb2, U+8fb5-8fb7, U+8fba-8fbc, U+8fbf, U+8fc2, U+8fcb, U+8fcd, U+8fd3, U+8fd5, U+8fd7, U+8fda&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.33.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.34.ttf  --unicodes=<span class="string">&#x27;U+8caf-8cb0, U+8cb3-8cb4, U+8cb6-8cb9, U+8cbb-8cbd, U+8cbf-8cc4, U+8cc7-8cc8, U+8cca, U+8ccd, U+8cd1, U+8cd3, U+8cdb-8cdc, U+8cde, U+8ce0, U+8ce2-8ce4, U+8ce6-8ce8, U+8cea, U+8ced, U+8cf4, U+8cf8, U+8cfa, U+8cfc-8cfd, U+8d04-8d05, U+8d07-8d08, U+8d0a, U+8d0d, U+8d0f, U+8d13-8d14, U+8d16, U+8d1b, U+8d20, U+8d2e, U+8d30, U+8d32-8d33, U+8d36, U+8d3b, U+8d3d, U+8d40, U+8d42-8d43, U+8d45-8d46, U+8d48-8d4a, U+8d4d, U+8d51, U+8d53, U+8d55, U+8d59, U+8d5c-8d5d, U+8d5f, U+8d61, U+8d66-8d67, U+8d6a, U+8d6d, U+8d71, U+8d73, U+8d84, U+8d90-8d91, U+8d94-8d95, U+8d99, U+8da8, U+8daf, U+8db1, U+8db5, U+8db8, U+8dba, U+8dbc, U+8dbf, U+8dc2, U+8dc4, U+8dc6, U+8dcb, U+8dce-8dcf, U+8dd6-8dd7, U+8dda-8ddb, U+8dde, U+8de1, U+8de3-8de4, U+8de9, U+8deb-8dec, U+8df0-8df1, U+8df6-8dfd, U+8e05, U+8e07, U+8e09-8e0a, U+8e0c, U+8e0e, U+8e10, U+8e14, U+8e1d-8e1f, U+8e23, U+8e26, U+8e2b-8e2c&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.34.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.35.ttf  --unicodes=<span class="string">&#x27;U+8b5e, U+8b60, U+8b6c, U+8b6f-8b70, U+8b72, U+8b74, U+8b77, U+8b7d, U+8b80, U+8b83, U+8b8a, U+8b8c, U+8b90, U+8b93, U+8b99-8b9a, U+8ba0, U+8ba3, U+8ba5-8ba7, U+8baa-8bac, U+8bb3-8bb5, U+8bb7, U+8bb9, U+8bc2-8bc3, U+8bc5, U+8bcb-8bcc, U+8bce-8bd0, U+8bd2-8bd4, U+8bd6, U+8bd8-8bd9, U+8bdc, U+8bdf, U+8be3-8be4, U+8be7-8be9, U+8beb-8bec, U+8bee, U+8bf0, U+8bf2-8bf3, U+8bf6, U+8bf9, U+8bfc-8bfd, U+8bff-8c00, U+8c02, U+8c04, U+8c06-8c07, U+8c0c, U+8c0f, U+8c11-8c12, U+8c14-8c1b, U+8c1d-8c21, U+8c24-8c25, U+8c27, U+8c2a-8c2c, U+8c2e-8c30, U+8c32-8c36, U+8c3f, U+8c47-8c4c, U+8c4e-8c50, U+8c54-8c56, U+8c62, U+8c68, U+8c6c, U+8c73, U+8c78, U+8c7a, U+8c82, U+8c85, U+8c89-8c8a, U+8c8d-8c8e, U+8c90, U+8c93-8c94, U+8c98, U+8c9d-8c9e, U+8ca0-8ca2, U+8ca7-8cac&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.35.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.36.ttf  --unicodes=<span class="string">&#x27;U+8a02-8a03, U+8a07-8a0a, U+8a0e-8a0f, U+8a13, U+8a15-8a18, U+8a1a-8a1b, U+8a1d, U+8a1f, U+8a22-8a23, U+8a25, U+8a2b, U+8a2d, U+8a31, U+8a33-8a34, U+8a36-8a38, U+8a3a, U+8a3c, U+8a3e, U+8a40-8a41, U+8a46, U+8a48, U+8a50, U+8a52, U+8a54-8a55, U+8a58, U+8a5b, U+8a5d-8a63, U+8a66, U+8a69-8a6b, U+8a6d-8a6e, U+8a70, U+8a72-8a73, U+8a7a, U+8a85, U+8a87, U+8a8a, U+8a8c-8a8d, U+8a90-8a92, U+8a95, U+8a98, U+8aa0-8aa1, U+8aa3-8aa6, U+8aa8-8aa9, U+8aac-8aae, U+8ab0, U+8ab2, U+8ab8-8ab9, U+8abc, U+8abe-8abf, U+8ac7, U+8acf, U+8ad2, U+8ad6-8ad7, U+8adb-8adc, U+8adf, U+8ae1, U+8ae6-8ae8, U+8aeb, U+8aed-8aee, U+8af1, U+8af3-8af4, U+8af7-8af8, U+8afa, U+8afe, U+8b00-8b02, U+8b07, U+8b0a, U+8b0c, U+8b0e, U+8b10, U+8b17, U+8b19, U+8b1b, U+8b1d, U+8b20-8b21, U+8b26, U+8b28, U+8b2c, U+8b33, U+8b39, U+8b3e-8b3f, U+8b41, U+8b45, U+8b49, U+8b4c, U+8b4f, U+8b57-8b58, U+8b5a, U+8b5c&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.36.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.37.ttf  --unicodes=<span class="string">&#x27;U+8869-886a, U+886e-886f, U+8872, U+8879, U+887d-887f, U+8882, U+8884-8886, U+8888, U+888f, U+8892-8893, U+889b, U+88a2, U+88a4, U+88a6, U+88a8, U+88aa, U+88ae, U+88b1, U+88b4, U+88b7, U+88bc, U+88c0, U+88c6-88c9, U+88ce-88cf, U+88d1-88d3, U+88d8, U+88db-88dd, U+88df, U+88e1-88e3, U+88e5, U+88e8, U+88ec, U+88f0-88f1, U+88f3-88f4, U+88fc-88fe, U+8900, U+8902, U+8906-8907, U+8909-890c, U+8912-8915, U+8918-891b, U+8921, U+8925, U+892b, U+8930, U+8932, U+8934, U+8936, U+893b, U+893d, U+8941, U+894c, U+8955-8956, U+8959, U+895c, U+895e-8960, U+8966, U+896a, U+896c, U+896f-8970, U+8972, U+897b, U+897e, U+8980, U+8983, U+8985, U+8987-8988, U+898c, U+898f, U+8993, U+8997, U+899a, U+89a1, U+89a7, U+89a9-89aa, U+89b2-89b3, U+89b7, U+89c0, U+89c7, U+89ca-89cc, U+89ce-89d1, U+89d6, U+89da, U+89dc, U+89de, U+89e5, U+89e7, U+89eb, U+89ef, U+89f1, U+89f3-89f4, U+89f8, U+89ff, U+8a01&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.37.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.38.ttf  --unicodes=<span class="string">&#x27;U+86e4, U+86e6, U+86e9, U+86ed, U+86ef-86f4, U+86f8-86f9, U+86fb, U+86fe, U+8703, U+8706-870a, U+870d, U+8711-8713, U+871a, U+871e, U+8722-8723, U+8725, U+8729, U+872e, U+8731, U+8734, U+8737, U+873a-873b, U+873e-8740, U+8742, U+8747-8748, U+8753, U+8755, U+8757-8758, U+875d, U+875f, U+8762-8766, U+8768, U+876e, U+8770, U+8772, U+8775, U+8778, U+877b-877e, U+8782, U+8785, U+8788, U+878b, U+8793, U+8797, U+879a, U+879e-87a0, U+87a2-87a3, U+87a8, U+87ab-87ad, U+87af, U+87b3, U+87b5, U+87bd, U+87c0, U+87c4, U+87c6, U+87ca-87cb, U+87d1-87d2, U+87db-87dc, U+87de, U+87e0, U+87e5, U+87ea, U+87ec, U+87ee, U+87f2-87f3, U+87fb, U+87fd-87fe, U+8802-8803, U+8805, U+880a-880b, U+880d, U+8813-8816, U+8819, U+881b, U+881f, U+8821, U+8823, U+8831-8832, U+8835-8836, U+8839, U+883b-883c, U+8844, U+8846, U+884a, U+884e, U+8852-8853, U+8855, U+8859, U+885b, U+885d-885e, U+8862, U+8864&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.38.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.39.ttf  --unicodes=<span class="string">&#x27;U+8532, U+8534-8535, U+8538-853a, U+853c, U+8543, U+8545, U+8548, U+854e, U+8553, U+8556-8557, U+8559, U+855e, U+8561, U+8564-8565, U+8568-856a, U+856d, U+856f-8570, U+8572, U+8576, U+8579-857b, U+8580, U+8585-8586, U+8588, U+858a, U+858f, U+8591, U+8594, U+8599, U+859c, U+85a2, U+85a4, U+85a6, U+85a8-85a9, U+85ab-85ac, U+85ae, U+85b7-85b9, U+85be, U+85c1, U+85c7, U+85cd, U+85d0, U+85d3, U+85d5, U+85dc-85dd, U+85df-85e0, U+85e5-85e6, U+85e8-85ea, U+85f4, U+85f9, U+85fe-85ff, U+8602, U+8605-8607, U+860a-860b, U+8616, U+8618, U+861a, U+8627, U+8629, U+862d, U+8638, U+863c, U+863f, U+864d, U+864f, U+8652-8655, U+865b-865c, U+865f, U+8662, U+8667, U+866c, U+866e, U+8671, U+8675, U+867a-867c, U+867f, U+868b, U+868d, U+8693, U+869c-869d, U+86a1, U+86a3-86a4, U+86a7-86a9, U+86ac, U+86af-86b1, U+86b4-86b6, U+86ba, U+86c0, U+86c4, U+86c6, U+86c9-86ca, U+86cd-86d1, U+86d4, U+86d8, U+86de-86df&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.39.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.40.ttf  --unicodes=<span class="string">&#x27;U+83b4, U+83b6, U+83b8, U+83ba, U+83bc-83bd, U+83bf-83c0, U+83c2, U+83c5, U+83c8-83c9, U+83cb, U+83d1, U+83d3-83d6, U+83d8, U+83db, U+83dd, U+83df, U+83e1, U+83e5, U+83ea-83eb, U+83f0, U+83f4, U+83f8-83f9, U+83fb, U+83fd, U+83ff, U+8401, U+8406, U+840a-840b, U+840f, U+8411, U+8418, U+841c, U+8420, U+8422-8424, U+8426, U+8429, U+842c, U+8438-8439, U+843b-843c, U+843f, U+8446-8447, U+8449, U+844e, U+8451-8452, U+8456, U+8459-845a, U+845c, U+8462, U+8466, U+846d, U+846f-8470, U+8473, U+8476-8478, U+847a, U+847d, U+8484-8485, U+8487, U+8489, U+848c, U+848e, U+8490, U+8493-8494, U+8497, U+849b, U+849e-849f, U+84a1, U+84a5, U+84a8, U+84af, U+84b4, U+84b9-84bf, U+84c1-84c2, U+84c5-84c7, U+84ca-84cb, U+84cd, U+84d0-84d1, U+84d3, U+84d6, U+84df-84e0, U+84e2-84e3, U+84e5-84e7, U+84ee, U+84f3, U+84f6, U+84fa, U+84fc, U+84ff-8500, U+850c, U+8511, U+8514-8515, U+8517-8518, U+851f, U+8523, U+8525-8526, U+8529, U+852b, U+852d&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.40.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.41.ttf  --unicodes=<span class="string">&#x27;U+82a9-82ab, U+82ae, U+82b0, U+82b2, U+82b4-82b6, U+82bc, U+82be, U+82c0-82c2, U+82c4-82c8, U+82ca-82cc, U+82ce, U+82d0, U+82d2-82d3, U+82d5-82d6, U+82d8-82d9, U+82dc-82de, U+82e0-82e4, U+82e7, U+82e9-82eb, U+82ed-82ee, U+82f3-82f4, U+82f7-82f8, U+82fa-8301, U+8306-8308, U+830c-830d, U+830f, U+8311, U+8313-8315, U+8318, U+831a-831b, U+831d, U+8324, U+8327, U+832a, U+832c-832d, U+832f, U+8331-8334, U+833a-833c, U+8340, U+8343-8345, U+8347-8348, U+834a, U+834c, U+834f, U+8351, U+8356, U+8358-835c, U+835e, U+8360, U+8364-8366, U+8368-836a, U+836c-836e, U+8373, U+8378, U+837b-837d, U+837f-8380, U+8382, U+8388, U+838a-838b, U+8392, U+8394, U+8396, U+8398-8399, U+839b-839c, U+83a0, U+83a2-83a3, U+83a8-83aa, U+83ae-83b0, U+83b3&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.41.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.42.ttf  --unicodes=<span class="string">&#x27;U+814d-814e, U+8151, U+8153, U+8158-815a, U+815e, U+8160, U+8166-8169, U+816b, U+816d, U+8171, U+8173-8174, U+8178, U+817c-817d, U+8182, U+8188, U+8191, U+8198-819b, U+81a0, U+81a3, U+81a5-81a6, U+81a9, U+81b6, U+81ba-81bb, U+81bd, U+81bf, U+81c1, U+81c3, U+81c6, U+81c9-81ca, U+81cc-81cd, U+81d1, U+81d3-81d4, U+81d8, U+81db-81dc, U+81de-81df, U+81e5, U+81e7-81e9, U+81eb-81ec, U+81ee-81ef, U+81f5, U+81f8, U+81fa, U+81fc, U+81fe, U+8200-8202, U+8204, U+8208-820a, U+820e-8210, U+8216-8218, U+821b-821c, U+8221-8224, U+8226-8228, U+822b, U+822d, U+822f, U+8232-8234, U+8237-8238, U+823a-823b, U+823e, U+8244, U+8249, U+824b, U+824f, U+8259-825a, U+825f, U+8266, U+8268, U+826e, U+8271, U+8276-8279, U+827d, U+827f, U+8283-8284, U+8288-828a, U+828d-8291, U+8293-8294, U+8296-8298, U+829f-82a1, U+82a3-82a4, U+82a7-82a8&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.42.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.43.ttf  --unicodes=<span class="string">&#x27;U+7ffa, U+7ffe, U+8004, U+8006, U+800b, U+800e, U+8011-8012, U+8014, U+8016, U+8018-8019, U+801c, U+801e, U+8026-802a, U+8031, U+8034-8035, U+8037, U+8043, U+804b, U+804d, U+8052, U+8056, U+8059, U+805e, U+8061, U+8068-8069, U+806e-8074, U+8076-8078, U+807c-8080, U+8082, U+8084-8085, U+8088, U+808f, U+8093, U+809c, U+809f, U+80ab, U+80ad-80ae, U+80b1, U+80b6-80b8, U+80bc-80bd, U+80c2, U+80c4, U+80ca, U+80cd, U+80d1, U+80d4, U+80d7, U+80d9-80db, U+80dd, U+80e0, U+80e4-80e5, U+80e7-80ed, U+80ef-80f1, U+80f3-80f4, U+80fc, U+8101, U+8104-8105, U+8107-8108, U+810c-810e, U+8112-8115, U+8117-8119, U+811b-811f, U+8121-8130, U+8132-8134, U+8137, U+8139, U+813f-8140, U+8142, U+8146, U+8148&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.43.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.44.ttf  --unicodes=<span class="string">&#x27;U+7ed7, U+7edb, U+7ee0-7ee2, U+7ee5-7ee6, U+7ee8, U+7eeb, U+7ef0-7ef2, U+7ef6, U+7efa-7efb, U+7efe, U+7f01-7f04, U+7f08, U+7f0a-7f12, U+7f17, U+7f19, U+7f1b-7f1c, U+7f1f, U+7f21-7f23, U+7f25-7f28, U+7f2a-7f33, U+7f35-7f37, U+7f3d, U+7f42, U+7f44-7f45, U+7f4c-7f4d, U+7f52, U+7f54, U+7f58-7f59, U+7f5d, U+7f5f-7f61, U+7f63, U+7f65, U+7f68, U+7f70-7f71, U+7f73-7f75, U+7f77, U+7f79, U+7f7d-7f7e, U+7f85-7f86, U+7f88-7f89, U+7f8b-7f8c, U+7f90-7f91, U+7f94-7f96, U+7f98-7f9b, U+7f9d, U+7f9f, U+7fa3, U+7fa7-7fa9, U+7fac-7fb2, U+7fb4, U+7fb6, U+7fb8, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fca, U+7fcc, U+7fce, U+7fd2, U+7fd5, U+7fd9-7fdb, U+7fdf, U+7fe3, U+7fe5-7fe7, U+7fe9, U+7feb-7fec, U+7fee-7fef, U+7ff1, U+7ff3-7ff4, U+7ff9&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.44.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.45.ttf  --unicodes=<span class="string">&#x27;U+7dc4, U+7dc7-7dc8, U+7dca-7dcd, U+7dcf, U+7dd1-7dd2, U+7dd4, U+7dd6-7dd8, U+7dda-7de0, U+7de2-7de6, U+7de8-7ded, U+7def, U+7df1-7df5, U+7df7, U+7df9, U+7dfb-7dfc, U+7dfe-7e02, U+7e04, U+7e08-7e0b, U+7e12, U+7e1b, U+7e1e, U+7e20, U+7e22-7e23, U+7e26, U+7e29, U+7e2b, U+7e2e-7e2f, U+7e31, U+7e37, U+7e39-7e3e, U+7e40, U+7e43-7e44, U+7e46-7e47, U+7e4a-7e4b, U+7e4d-7e4e, U+7e51, U+7e54-7e56, U+7e58-7e5b, U+7e5d-7e5e, U+7e61, U+7e66-7e67, U+7e69-7e6b, U+7e6d, U+7e70, U+7e73, U+7e77, U+7e79, U+7e7b-7e7d, U+7e81-7e82, U+7e8c-7e8d, U+7e8f, U+7e92-7e94, U+7e96, U+7e98, U+7e9a-7e9c, U+7e9e-7e9f, U+7ea1, U+7ea3, U+7ea5, U+7ea8-7ea9, U+7eab, U+7ead-7eae, U+7eb0, U+7ebb, U+7ebe, U+7ec0-7ec2, U+7ec9, U+7ecb-7ecc, U+7ed0, U+7ed4&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.45.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.46.ttf  --unicodes=<span class="string">&#x27;U+7ccc-7ccd, U+7cd7, U+7cdc, U+7cde, U+7ce0, U+7ce4-7ce5, U+7ce7-7ce8, U+7cec, U+7cf0, U+7cf5-7cf9, U+7cfc, U+7cfe, U+7d00, U+7d04-7d0b, U+7d0d, U+7d10-7d14, U+7d17-7d19, U+7d1b-7d1f, U+7d21, U+7d24-7d26, U+7d28-7d2a, U+7d2c-7d2e, U+7d30-7d31, U+7d33, U+7d35-7d36, U+7d38-7d3a, U+7d40, U+7d42-7d44, U+7d46, U+7d4b-7d4c, U+7d4f, U+7d51, U+7d54-7d56, U+7d58, U+7d5b-7d5c, U+7d5e, U+7d61-7d63, U+7d66, U+7d68, U+7d6a-7d6c, U+7d6f, U+7d71-7d73, U+7d75-7d77, U+7d79-7d7a, U+7d7e, U+7d81, U+7d84-7d8b, U+7d8d, U+7d8f, U+7d91, U+7d94, U+7d96, U+7d98-7d9a, U+7d9c-7da0, U+7da2, U+7da6, U+7daa-7db1, U+7db4-7db8, U+7dba-7dbf, U+7dc1&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.46.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.47.ttf  --unicodes=<span class="string">&#x27;U+7bc3-7bc4, U+7bc6, U+7bc8-7bcc, U+7bd1, U+7bd3-7bd4, U+7bd9-7bda, U+7bdd, U+7be0-7be1, U+7be4-7be6, U+7be9-7bea, U+7bef, U+7bf4, U+7bf6, U+7bfc, U+7bfe, U+7c01, U+7c03, U+7c07-7c08, U+7c0a-7c0d, U+7c0f, U+7c11, U+7c15-7c16, U+7c19, U+7c1e-7c21, U+7c23-7c24, U+7c26, U+7c28-7c33, U+7c35, U+7c37-7c3b, U+7c3d-7c3e, U+7c40-7c41, U+7c43, U+7c47-7c48, U+7c4c, U+7c50, U+7c53-7c54, U+7c59, U+7c5f-7c60, U+7c63-7c65, U+7c6c, U+7c6e, U+7c72, U+7c74, U+7c79-7c7a, U+7c7c, U+7c81-7c82, U+7c84-7c85, U+7c88, U+7c8a-7c91, U+7c93-7c96, U+7c99, U+7c9b-7c9e, U+7ca0-7ca2, U+7ca6-7ca9, U+7cac, U+7caf-7cb3, U+7cb5-7cb7, U+7cba-7cbd, U+7cbf-7cc2, U+7cc5, U+7cc7-7cc9&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.47.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.48.ttf  --unicodes=<span class="string">&#x27;U+7aca, U+7ad1-7ad2, U+7ada-7add, U+7ae1, U+7ae4, U+7ae6, U+7af4-7af7, U+7afa-7afb, U+7afd-7b0a, U+7b0c, U+7b0e-7b0f, U+7b13, U+7b15-7b16, U+7b18-7b19, U+7b1e-7b20, U+7b22-7b25, U+7b29-7b2b, U+7b2d-7b2e, U+7b30-7b3b, U+7b3e-7b3f, U+7b41-7b42, U+7b44-7b47, U+7b4a, U+7b4c-7b50, U+7b58, U+7b5a, U+7b5c, U+7b60, U+7b66-7b67, U+7b69, U+7b6c-7b6f, U+7b72-7b76, U+7b7b-7b7d, U+7b7f, U+7b82, U+7b85, U+7b87, U+7b8b-7b96, U+7b98-7b99, U+7b9b-7b9f, U+7ba2-7ba4, U+7ba6-7bac, U+7bae-7bb0, U+7bb4, U+7bb7-7bb9, U+7bbb, U+7bc0-7bc1&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.48.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.49.ttf  --unicodes=<span class="string">&#x27;U+797c, U+797e-7980, U+7982, U+7986-7987, U+7989-798e, U+7992, U+7994-7995, U+7997-7998, U+799a-799c, U+799f, U+79a3-79a6, U+79a8-79ac, U+79ae-79b1, U+79b3-79b5, U+79b8, U+79ba, U+79bf, U+79c2, U+79c6, U+79c8, U+79cf, U+79d5-79d6, U+79dd-79de, U+79e3, U+79e7-79e8, U+79eb, U+79ed, U+79f4, U+79f7-79f8, U+79fa, U+79fe, U+7a02-7a03, U+7a05, U+7a0a, U+7a14, U+7a17, U+7a19, U+7a1c, U+7a1e-7a1f, U+7a23, U+7a25-7a26, U+7a2c, U+7a2e, U+7a30-7a32, U+7a36-7a37, U+7a39, U+7a3c, U+7a40, U+7a42, U+7a47, U+7a49, U+7a4c-7a4f, U+7a51, U+7a55, U+7a5b, U+7a5d-7a5e, U+7a62-7a63, U+7a66, U+7a68-7a69, U+7a6b, U+7a70, U+7a78, U+7a80, U+7a85-7a88, U+7a8a, U+7a90, U+7a93-7a96, U+7a98, U+7a9b-7a9c, U+7a9e, U+7aa0-7aa1, U+7aa3, U+7aa8-7aaa, U+7aac-7ab0, U+7ab3, U+7ab8, U+7aba, U+7abd-7abf, U+7ac4-7ac5, U+7ac7-7ac8&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.49.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.50.ttf  --unicodes=<span class="string">&#x27;U+783e, U+7841-7844, U+7847-7849, U+784b-784c, U+784e-7854, U+7856-7857, U+7859-785a, U+7865, U+7869-786a, U+786d, U+786f, U+7876-7877, U+787c, U+787e-787f, U+7881, U+7887-7889, U+7893-7894, U+7898-789e, U+78a1, U+78a3, U+78a5, U+78a9, U+78ad, U+78b2, U+78b4, U+78b6, U+78b9-78ba, U+78bc, U+78bf, U+78c3, U+78c9, U+78cb, U+78d0-78d2, U+78d4, U+78d9-78da, U+78dc, U+78de, U+78e1, U+78e5-78e6, U+78ea, U+78ec, U+78ef, U+78f1-78f2, U+78f4, U+78fa-78fb, U+78fe, U+7901-7902, U+7905, U+7907, U+7909, U+790b-790c, U+790e, U+7910, U+7913, U+7919-791b, U+791e-791f, U+7921, U+7924, U+7926, U+792a-792b, U+7934, U+7936, U+7939, U+793b, U+793d, U+7940, U+7942-7943, U+7945-7947, U+7949-794a, U+794c, U+794e-7951, U+7953-7955, U+7957-795a, U+795c, U+795f-7960, U+7962, U+7964, U+7966-7967, U+7969, U+796b, U+796f, U+7972, U+7974, U+7979, U+797b&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.50.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.51.ttf  --unicodes=<span class="string">&#x27;U+770f, U+7712, U+7714, U+7716, U+7719-771b, U+771e, U+7721-7722, U+7726, U+7728, U+772b-7730, U+7732-7736, U+7739-773a, U+773d-773f, U+7743, U+7746-7747, U+774c-774f, U+7751-7752, U+7758-775a, U+775c-775e, U+7762, U+7765-7766, U+7768-776a, U+776c-776d, U+7771-7772, U+777a, U+777c-777e, U+7780, U+7785, U+7787, U+778b-778d, U+778f-7791, U+7793, U+779e-77a0, U+77a2, U+77a5, U+77ad, U+77af, U+77b4-77b7, U+77bd-77c0, U+77c2, U+77c5, U+77c7, U+77cd, U+77d6-77d7, U+77d9-77da, U+77dd-77de, U+77e7, U+77ea, U+77ec, U+77ef, U+77f8, U+77fb, U+77fd-77fe, U+7800, U+7803, U+7806, U+7809, U+780f-7812, U+7815, U+7817-7818, U+781a-781f, U+7821-7823, U+7825-7827, U+7829, U+782b-7830, U+7832-7833, U+7835, U+7837, U+7839-783c&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.51.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.52.ttf  --unicodes=<span class="string">&#x27;U+760a-760e, U+7610-7619, U+761b-761d, U+761f-7622, U+7625, U+7627-762a, U+762e-7630, U+7632-7635, U+7638-763a, U+763c-763d, U+763f-7640, U+7642-7643, U+7647-7648, U+764d-764e, U+7652, U+7654, U+7658, U+765a, U+765c, U+765e-765f, U+7661-7663, U+7665, U+7669, U+766c, U+766e-766f, U+7671-7673, U+7675-7676, U+7678-767a, U+767f, U+7681, U+7683, U+7688, U+768a-768c, U+768e, U+7690-7692, U+7695, U+7698, U+769a-769b, U+769d-76a0, U+76a2, U+76a4-76a7, U+76ab-76ac, U+76af-76b0, U+76b2, U+76b4-76b5, U+76ba-76bb, U+76bf, U+76c2-76c3, U+76c5, U+76c9, U+76cc-76ce, U+76dc-76de, U+76e1-76ea, U+76f1, U+76f9-76fb, U+76fd, U+76ff-7700, U+7703-7704, U+7707-7708, U+770c-770e&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.52.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.53.ttf  --unicodes=<span class="string">&#x27;U+74ef, U+74f4, U+74ff, U+7501, U+7503, U+7505, U+7508, U+750d, U+750f, U+7511, U+7513, U+7515, U+7517, U+7519, U+7521-7527, U+752a, U+752c-752d, U+752f, U+7534, U+7536, U+753a, U+753e, U+7540, U+7544, U+7547-754b, U+754d-754e, U+7550-7553, U+7556-7557, U+755a-755b, U+755d-755e, U+7560, U+7562, U+7564, U+7566-7568, U+756b-756c, U+756f-7573, U+7575, U+7579-757c, U+757e-757f, U+7581-7584, U+7587, U+7589-758e, U+7590, U+7592, U+7594, U+7596, U+7599-759a, U+759d, U+759f-75a0, U+75a3, U+75a5, U+75a8, U+75ac-75ad, U+75b0-75b1, U+75b3-75b5, U+75b8, U+75bd, U+75c1-75c4, U+75c8-75ca, U+75cc-75cd, U+75d4, U+75d6, U+75d9, U+75de, U+75e0, U+75e2-75e4, U+75e6-75ea, U+75f1-75f3, U+75f7, U+75f9-75fa, U+75fc, U+75fe-7601, U+7603, U+7605-7606, U+7608-7609&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.53.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.54.ttf  --unicodes=<span class="string">&#x27;U+73e7-73ea, U+73ee-73f0, U+73f2, U+73f4-73f5, U+73f7, U+73f9-73fa, U+73fc-73fd, U+73ff-7402, U+7404, U+7407-7408, U+740a-740f, U+7418, U+741a-741c, U+741e, U+7424-7425, U+7428-7429, U+742c-7430, U+7432, U+7435-7436, U+7438-743b, U+743e-7441, U+7443-7446, U+7448, U+744a-744b, U+7452, U+7457, U+745b, U+745d, U+7460, U+7462-7465, U+7467-746a, U+746d, U+746f, U+7471, U+7473-7474, U+7477, U+747a, U+747e, U+7481-7482, U+7484, U+7486, U+7488-748b, U+748e-748f, U+7493, U+7498, U+749a, U+749c-74a0, U+74a3, U+74a6, U+74a9-74aa, U+74ae, U+74b0-74b2, U+74b6, U+74b8-74ba, U+74bd, U+74bf, U+74c1, U+74c3, U+74c5, U+74c8, U+74ca, U+74cc, U+74cf, U+74d1-74d2, U+74d4-74d5, U+74d8-74db, U+74de-74e0, U+74e2, U+74e4-74e5, U+74e7-74e9, U+74ee&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.54.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.55.ttf  --unicodes=<span class="string">&#x27;U+72dd-72df, U+72e1, U+72e5-72e6, U+72e8, U+72ef-72f0, U+72f2-72f4, U+72f6-72f7, U+72f9-72fb, U+72fd, U+7300-7304, U+7307, U+730a-730c, U+7313-7317, U+731d-7322, U+7327, U+7329, U+732c-732d, U+7330-7331, U+7333, U+7335-7337, U+7339, U+733d-733e, U+7340, U+7342, U+7344-7345, U+734a, U+734d-7350, U+7352, U+7355, U+7357, U+7359, U+735f-7360, U+7362-7363, U+7365, U+7368, U+736c-736d, U+736f-7370, U+7372, U+7374-7376, U+7378, U+737a-737b, U+737d-737e, U+7382-7383, U+7386, U+7388, U+738a, U+738c-7393, U+7395, U+7397-739a, U+739c, U+739e, U+73a0-73a3, U+73a5-73a8, U+73aa, U+73ad, U+73b1, U+73b3, U+73b6-73b7, U+73b9, U+73c2, U+73c5-73c9, U+73cc, U+73ce-73d0, U+73d2, U+73d6, U+73d9, U+73db-73de, U+73e3, U+73e5-73e6&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.55.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.56.ttf  --unicodes=<span class="string">&#x27;U+719c, U+71a0, U+71a4-71a5, U+71a8, U+71af, U+71b1-71bc, U+71be, U+71c1-71c2, U+71c4, U+71c8-71cb, U+71ce-71d0, U+71d2, U+71d4, U+71d9-71da, U+71dc, U+71df-71e0, U+71e6-71e8, U+71ea, U+71ed-71ee, U+71f4, U+71f6, U+71f9, U+71fb-71fc, U+71ff-7200, U+7207, U+720c-720d, U+7210, U+7216, U+721a-721e, U+7223, U+7228, U+722b, U+722d-722e, U+7230, U+7232, U+723a-723c, U+723e-7242, U+7246, U+724b, U+724d-724e, U+7252, U+7256, U+7258, U+725a, U+725c-725d, U+7260, U+7264-7266, U+726a, U+726c, U+726e-726f, U+7271, U+7273-7274, U+7278, U+727b, U+727d-727e, U+7281-7282, U+7284, U+7287, U+728a, U+728d, U+728f, U+7292, U+729b, U+729f-72a0, U+72a7, U+72ad-72ae, U+72b0-72b5, U+72b7-72b8, U+72ba-72be, U+72c0-72c1, U+72c3, U+72c5-72c6, U+72c8, U+72cc-72ce, U+72d2, U+72d6, U+72db&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.56.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.57.ttf  --unicodes=<span class="string">&#x27;U+7005-7006, U+7009, U+700b, U+700d, U+7015, U+7018, U+701b, U+701d-701f, U+7023, U+7026-7028, U+702c, U+702e-7030, U+7035, U+7037, U+7039-703a, U+703c-703e, U+7044, U+7049-704b, U+704f, U+7051, U+7058, U+705a, U+705c-705e, U+7061, U+7064, U+7066, U+706c, U+707d, U+7080-7081, U+7085-7086, U+708a, U+708f, U+7091, U+7094-7095, U+7098-7099, U+709c-709d, U+709f, U+70a4, U+70a9-70aa, U+70af-70b2, U+70b4-70b7, U+70bb, U+70c0, U+70c3, U+70c7, U+70cb, U+70ce-70cf, U+70d4, U+70d9-70da, U+70dc-70dd, U+70e0, U+70e9, U+70ec, U+70f7, U+70fa, U+70fd, U+70ff, U+7104, U+7108-7109, U+710c, U+7110, U+7113-7114, U+7116-7118, U+711c, U+711e, U+7120, U+712e-712f, U+7131, U+713c, U+7142, U+7144-7147, U+7149-714b, U+7150, U+7152, U+7155-7156, U+7159-715a, U+715c, U+7161, U+7165-7166, U+7168-7169, U+716d, U+7173-7174, U+7176, U+7178, U+717a, U+717d, U+717f-7180, U+7184, U+7186-7188, U+7192, U+7198&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.57.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.58.ttf  --unicodes=<span class="string">&#x27;U+6ed8-6ed9, U+6edb, U+6edd, U+6edf-6ee0, U+6ee2, U+6ee6, U+6eea, U+6eec, U+6eee-6eef, U+6ef2-6ef3, U+6ef7-6efa, U+6efe, U+6f01, U+6f03, U+6f08-6f09, U+6f15-6f16, U+6f19, U+6f22-6f25, U+6f28-6f2a, U+6f2c-6f2d, U+6f2f, U+6f31-6f32, U+6f36-6f38, U+6f3f, U+6f43-6f46, U+6f48, U+6f4b, U+6f4e-6f4f, U+6f51, U+6f54-6f57, U+6f59-6f5b, U+6f5e-6f5f, U+6f61, U+6f64-6f67, U+6f69-6f6c, U+6f6f-6f72, U+6f74-6f76, U+6f78-6f7e, U+6f80-6f83, U+6f86, U+6f89, U+6f8b-6f8d, U+6f90, U+6f92, U+6f94, U+6f97-6f98, U+6f9b, U+6fa3-6fa5, U+6fa7, U+6faa, U+6faf, U+6fb1, U+6fb4, U+6fb6, U+6fb9, U+6fc1-6fcb, U+6fd1-6fd3, U+6fd5, U+6fdb, U+6fde-6fe1, U+6fe4, U+6fe9, U+6feb-6fec, U+6fee-6ff1, U+6ffa, U+6ffe&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.58.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.59.ttf  --unicodes=<span class="string">&#x27;U+6dc3, U+6dc5-6dc6, U+6dc9, U+6dcc, U+6dcf, U+6dd2-6dd3, U+6dd6, U+6dd9-6dde, U+6de0, U+6de4, U+6de6, U+6de8-6dea, U+6dec, U+6def-6df0, U+6df5-6df6, U+6df8, U+6dfa, U+6dfc, U+6e03-6e04, U+6e07-6e09, U+6e0b-6e0c, U+6e0e, U+6e11, U+6e13, U+6e15-6e16, U+6e19-6e1b, U+6e1e-6e1f, U+6e22, U+6e25-6e27, U+6e2b-6e2c, U+6e36-6e37, U+6e39-6e3a, U+6e3c-6e41, U+6e44-6e45, U+6e47, U+6e49-6e4b, U+6e4d-6e4e, U+6e51, U+6e53-6e55, U+6e5c-6e5f, U+6e61-6e63, U+6e65-6e67, U+6e6a-6e6b, U+6e6d-6e70, U+6e72-6e74, U+6e76-6e78, U+6e7c, U+6e80-6e82, U+6e86-6e87, U+6e89, U+6e8d, U+6e8f, U+6e96, U+6e98, U+6e9d-6e9f, U+6ea1, U+6ea5-6ea7, U+6eab, U+6eb1-6eb2, U+6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec6, U+6ec8-6ec9, U+6ecc, U+6ecf-6ed0, U+6ed3-6ed4, U+6ed7&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.59.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.60.ttf  --unicodes=<span class="string">&#x27;U+6cb2, U+6cb4-6cb5, U+6cb7, U+6cba, U+6cbc-6cbd, U+6cc1-6cc3, U+6cc5-6cc7, U+6cd0-6cd4, U+6cd6-6cd7, U+6cd9-6cda, U+6cde-6ce0, U+6ce4, U+6ce6, U+6ce9, U+6ceb-6cef, U+6cf1-6cf2, U+6cf6-6cf7, U+6cfa, U+6cfe, U+6d03-6d05, U+6d07-6d08, U+6d0a, U+6d0c, U+6d0e-6d11, U+6d13-6d14, U+6d16, U+6d18-6d1a, U+6d1c, U+6d1f, U+6d22-6d23, U+6d26-6d29, U+6d2b, U+6d2e-6d30, U+6d33, U+6d35-6d36, U+6d38-6d3a, U+6d3c, U+6d3f, U+6d42-6d44, U+6d48-6d49, U+6d4d, U+6d50, U+6d52, U+6d54, U+6d56-6d58, U+6d5a-6d5c, U+6d5e, U+6d60-6d61, U+6d63-6d65, U+6d67, U+6d6c-6d6d, U+6d6f, U+6d75, U+6d7b-6d7d, U+6d87, U+6d8a, U+6d8e, U+6d90-6d9a, U+6d9c-6da0, U+6da2-6da3, U+6da7, U+6daa-6dac, U+6dae, U+6db3-6db4, U+6db6, U+6db8, U+6dbc, U+6dbf, U+6dc2&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.60.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.61.ttf  --unicodes=<span class="string">&#x27;U+6b85-6b86, U+6b89, U+6b8d, U+6b91-6b93, U+6b95, U+6b97-6b98, U+6b9a-6b9b, U+6b9e, U+6ba1-6ba4, U+6ba9-6baa, U+6bad, U+6baf-6bb0, U+6bb2-6bb3, U+6bba-6bbd, U+6bc0, U+6bc2, U+6bc6, U+6bca-6bcc, U+6bce, U+6bd0-6bd1, U+6bd3, U+6bd6-6bd8, U+6bda, U+6be1, U+6be6, U+6bec, U+6bf1, U+6bf3-6bf5, U+6bf9, U+6bfd, U+6c05-6c08, U+6c0d, U+6c10, U+6c15-6c1a, U+6c21, U+6c23-6c26, U+6c29-6c2d, U+6c30-6c33, U+6c35-6c37, U+6c39-6c3a, U+6c3c-6c3f, U+6c46, U+6c4a-6c4c, U+6c4e-6c50, U+6c54, U+6c56, U+6c59-6c5c, U+6c5e, U+6c63, U+6c67-6c69, U+6c6b, U+6c6d, U+6c6f, U+6c72-6c74, U+6c78-6c7a, U+6c7c, U+6c84-6c87, U+6c8b-6c8c, U+6c8f, U+6c91, U+6c93-6c96, U+6c98, U+6c9a, U+6c9d, U+6ca2-6ca4, U+6ca8-6ca9, U+6cac-6cae, U+6cb1&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.61.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.62.ttf  --unicodes=<span class="string">&#x27;U+6a01, U+6a06, U+6a09, U+6a0b, U+6a11, U+6a13, U+6a17-6a19, U+6a1b, U+6a1e, U+6a23, U+6a28-6a29, U+6a2b, U+6a2f-6a30, U+6a35, U+6a38-6a40, U+6a46-6a48, U+6a4a-6a4b, U+6a4e, U+6a50, U+6a52, U+6a5b, U+6a5e, U+6a62, U+6a65-6a67, U+6a6b, U+6a79, U+6a7c, U+6a7e-6a7f, U+6a84, U+6a86, U+6a8e, U+6a90-6a91, U+6a94, U+6a97, U+6a9c, U+6a9e, U+6aa0, U+6aa2, U+6aa4, U+6aa9, U+6aab, U+6aae-6ab0, U+6ab2-6ab3, U+6ab5, U+6ab7-6ab8, U+6aba-6abb, U+6abd, U+6abf, U+6ac2-6ac4, U+6ac6, U+6ac8, U+6acc, U+6ace, U+6ad2-6ad3, U+6ad8-6adc, U+6adf-6ae0, U+6ae4-6ae5, U+6ae7-6ae8, U+6afb, U+6b04-6b05, U+6b0d-6b13, U+6b16-6b17, U+6b19, U+6b24-6b25, U+6b2c, U+6b37-6b39, U+6b3b, U+6b3d, U+6b43, U+6b46, U+6b4e, U+6b50, U+6b53-6b54, U+6b58-6b59, U+6b5b, U+6b60, U+6b69, U+6b6d, U+6b6f-6b70, U+6b73-6b74, U+6b77-6b7a, U+6b80-6b84&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.62.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.63.ttf  --unicodes=<span class="string">&#x27;U+68e1, U+68e3-68e4, U+68e6-68ed, U+68ef-68f0, U+68f2, U+68f4, U+68f6-68f7, U+68f9, U+68fb-68fd, U+68ff-6902, U+6906-6908, U+690b, U+6910, U+691a-691c, U+691f-6920, U+6924-6925, U+692a, U+692d, U+6934, U+6939, U+693c-6945, U+694a-694b, U+6952-6954, U+6957, U+6959, U+695b, U+695d, U+695f, U+6962-6964, U+6966, U+6968-696c, U+696e-696f, U+6971, U+6973-6974, U+6978-6979, U+697d, U+697f-6980, U+6985, U+6987-698a, U+698d-698e, U+6994-6999, U+699b, U+69a3-69a4, U+69a6-69a7, U+69ab, U+69ad-69ae, U+69b1, U+69b7, U+69bb-69bc, U+69c1, U+69c3-69c5, U+69c7, U+69ca-69ce, U+69d0-69d1, U+69d3-69d4, U+69d7-69da, U+69e0, U+69e4, U+69e6, U+69ec-69ed, U+69f1-69f3, U+69f8, U+69fa-69fc, U+69fe-6a00&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.63.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.64.ttf  --unicodes=<span class="string">&#x27;U+6792-6793, U+6796, U+6798, U+679e-67a1, U+67a5, U+67a7-67a9, U+67ac-67ad, U+67b0-67b1, U+67b3, U+67b5, U+67b7, U+67b9, U+67bb-67bc, U+67c0-67c1, U+67c3, U+67c5-67ca, U+67d1-67d2, U+67d7-67d9, U+67dd-67df, U+67e2-67e4, U+67e6-67e9, U+67f0, U+67f5, U+67f7-67f8, U+67fa-67fb, U+67fd-67fe, U+6800-6801, U+6803-6804, U+6806, U+6809-680a, U+680c, U+680e, U+6812, U+681d-681f, U+6822, U+6824-6829, U+682b-682d, U+6831-6835, U+683b, U+683e, U+6840-6841, U+6844-6845, U+6849, U+684e, U+6853, U+6855-6856, U+685c-685d, U+685f-6862, U+6864, U+6866-6868, U+686b, U+686f, U+6872, U+6874, U+6877, U+687f, U+6883, U+6886, U+688f, U+689b, U+689f-68a0, U+68a2-68a3, U+68b1, U+68b6, U+68b9-68ba, U+68bc-68bf, U+68c1-68c4, U+68c6, U+68c8, U+68ca, U+68cc, U+68d0-68d1, U+68d3, U+68d7, U+68dd, U+68df&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.64.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.65.ttf  --unicodes=<span class="string">&#x27;U+6690, U+6692, U+6695, U+6698, U+669a, U+669d, U+669f-66a0, U+66a2-66a3, U+66a6, U+66aa-66ab, U+66b1-66b2, U+66b5, U+66b8-66b9, U+66bb, U+66be, U+66c1, U+66c6-66c9, U+66cc, U+66d5-66d8, U+66da-66dc, U+66de-66e2, U+66e8-66ea, U+66ec, U+66f1, U+66f3, U+66f7, U+66fa, U+66fd, U+6702, U+6705, U+670a, U+670f-6710, U+6713, U+6715, U+6719, U+6722-6723, U+6725-6727, U+6729, U+672d-672e, U+6732-6733, U+6736, U+6739, U+673b, U+673f, U+6744, U+6748, U+674c-674d, U+6753, U+6755, U+6762, U+6767, U+6769-676c, U+676e, U+6772-6773, U+6775, U+6777, U+677a-677d, U+6782-6783, U+6787, U+678a-678d, U+678f&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.65.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.66.ttf  --unicodes=<span class="string">&#x27;U+64f8, U+64fa, U+64fc, U+64fe-64ff, U+6503, U+6509, U+650f, U+6514, U+6518, U+651c-651e, U+6522-6525, U+652a-652c, U+652e, U+6530-6532, U+6534-6535, U+6537-6538, U+653a, U+653c-653d, U+6542, U+6549-654b, U+654d-654e, U+6553-6555, U+6557-6558, U+655d, U+6564, U+6569, U+656b, U+656d-656f, U+6571, U+6573, U+6575-6576, U+6578-657e, U+6581-6583, U+6585-6586, U+6589, U+658e-658f, U+6592-6593, U+6595-6596, U+659b, U+659d, U+659f-65a1, U+65a3, U+65ab-65ac, U+65b2, U+65b6-65b7, U+65ba-65bb, U+65be-65c0, U+65c2-65c4, U+65c6-65c8, U+65cc, U+65ce, U+65d0, U+65d2-65d3, U+65d6, U+65db, U+65dd, U+65e1, U+65e3, U+65ee-65f0, U+65f3-65f5, U+65f8, U+65fb-65fc, U+65fe-6600, U+6603, U+6607, U+6609, U+660b, U+6610-6611, U+6619-661a, U+661c-661e, U+6621, U+6624, U+6626, U+662a-662c, U+662e, U+6630-6631, U+6633-6634, U+6636&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.66.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.67.ttf  --unicodes=<span class="string">&#x27;U+63bc, U+63be, U+63c0, U+63c3-63c4, U+63c6, U+63c8, U+63cd-63ce, U+63d1, U+63d6, U+63da-63db, U+63de, U+63e0, U+63e3, U+63e9-63ea, U+63ee, U+63f2, U+63f5-63fa, U+63fc, U+63fe-6400, U+6406, U+640b-640d, U+6410, U+6414, U+6416-6417, U+641b, U+6420-6423, U+6425-6428, U+642a, U+6431-6432, U+6434-6437, U+643d-6442, U+6445, U+6448, U+6450-6452, U+645b-645f, U+6462, U+6465, U+6468, U+646d, U+646f-6471, U+6473, U+6477, U+6479-647d, U+6482-6485, U+6487-6488, U+648c, U+6490, U+6493, U+6496-649a, U+649d, U+64a0, U+64a5, U+64ab-64ac, U+64b1-64b7, U+64b9-64bb, U+64be-64c1, U+64c4, U+64c7, U+64c9-64cb, U+64d0, U+64d4, U+64d7-64d8, U+64da, U+64de, U+64e0-64e2, U+64e4, U+64e9, U+64ec, U+64f0-64f2, U+64f4, U+64f7&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.67.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.68.ttf  --unicodes=<span class="string">&#x27;U+623b, U+623d-623e, U+6243, U+6246, U+6248-6249, U+624c, U+6255, U+6259, U+625e, U+6260-6261, U+6265-6266, U+626a, U+6271, U+627a, U+627c-627d, U+6283, U+6286, U+6289, U+628e, U+6294, U+629c, U+629e-629f, U+62a1, U+62a8, U+62ba-62bb, U+62bf, U+62c2, U+62c4, U+62c8, U+62ca-62cb, U+62ce-62cf, U+62d1, U+62d7, U+62d9-62da, U+62dd, U+62e0-62e1, U+62e3-62e4, U+62e7, U+62eb, U+62ee, U+62f0, U+62f4-62f6, U+6308, U+630a-630e, U+6310, U+6312-6313, U+6317, U+6319, U+631b, U+631d-631f, U+6322, U+6326, U+6329, U+6331-6332, U+6334-6337, U+6339, U+633b-633c, U+633e-6340, U+6343, U+6347, U+634b-634e, U+6354, U+635c-635d, U+6368-6369, U+636d, U+636f-6372, U+6376, U+637a-637b, U+637d, U+6382-6383, U+6387, U+638a-638b, U+638d-638e, U+6391, U+6393-6397, U+6399, U+639b, U+639e-639f, U+63a1, U+63a3-63a4, U+63ac-63ae, U+63b1-63b5, U+63b7-63bb&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.68.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.69.ttf  --unicodes=<span class="string">&#x27;U+60fa, U+6100, U+6106, U+610d-610e, U+6112, U+6114-6115, U+6119, U+611c, U+6120, U+6122-6123, U+6126, U+6128-6130, U+6136-6137, U+613a, U+613d-613e, U+6144, U+6146-6147, U+614a-614b, U+6151, U+6153, U+6158, U+615a, U+615c-615d, U+615f, U+6161, U+6163-6165, U+616b-616c, U+616e, U+6171, U+6173-6177, U+617e, U+6182, U+6187, U+618a, U+618d-618e, U+6190-6191, U+6194, U+6199-619a, U+619c, U+619f, U+61a1, U+61a3-61a4, U+61a7-61a9, U+61ab-61ad, U+61b2-61b3, U+61b5-61b7, U+61ba-61bb, U+61bf, U+61c3-61c4, U+61c6-61c7, U+61c9-61cb, U+61d0-61d1, U+61d3-61d4, U+61d7, U+61da, U+61df-61e1, U+61e6, U+61ee, U+61f0, U+61f2, U+61f6-61f8, U+61fa, U+61fc-61fe, U+6200, U+6206-6207, U+6209, U+620b, U+620d-620e, U+6213-6215, U+6217, U+6219, U+621b-6223, U+6225-6226, U+622c, U+622e-6230, U+6232, U+6238&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.69.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.70.ttf  --unicodes=<span class="string">&#x27;U+5fd1-5fd6, U+5fda-5fde, U+5fe1-5fe2, U+5fe4-5fe5, U+5fea, U+5fed-5fee, U+5ff1-5ff3, U+5ff6, U+5ff8, U+5ffb, U+5ffe-5fff, U+6002-6006, U+600a, U+600d, U+600f, U+6014, U+6019, U+601b, U+6020, U+6023, U+6026, U+6029, U+602b, U+602e-602f, U+6031, U+6033, U+6035, U+6039, U+603f, U+6041-6043, U+6046, U+604f, U+6053-6054, U+6058-605b, U+605d-605e, U+6060, U+6063, U+6065, U+6067, U+606a-606c, U+6075, U+6078-6079, U+607b, U+607d, U+607f, U+6083, U+6085-6087, U+608a, U+608c, U+608e-608f, U+6092-6093, U+6095-6097, U+609b-609d, U+60a2, U+60a7, U+60a9-60ab, U+60ad, U+60af-60b1, U+60b3-60b6, U+60b8, U+60bb, U+60bd-60be, U+60c0-60c3, U+60c6-60c9, U+60cb, U+60ce, U+60d3-60d4, U+60d7-60db, U+60dd, U+60e1-60e4, U+60e6, U+60ea, U+60ec-60ee, U+60f0-60f1, U+60f4, U+60f6&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.70.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.71.ttf  --unicodes=<span class="string">&#x27;U+5ea3-5ea5, U+5ea8, U+5eab, U+5eaf, U+5eb3, U+5eb5-5eb6, U+5eb9, U+5ebe, U+5ec1-5ec3, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ed1-5ed2, U+5ed4, U+5ed9-5edb, U+5edd, U+5edf-5ee0, U+5ee2-5ee3, U+5ee8, U+5eea, U+5eec, U+5eef-5ef0, U+5ef3-5ef4, U+5ef8, U+5efb-5efc, U+5efe-5eff, U+5f01, U+5f07, U+5f0b-5f0e, U+5f10-5f12, U+5f14, U+5f1a, U+5f22, U+5f28-5f29, U+5f2c-5f2d, U+5f35-5f36, U+5f38, U+5f3b-5f43, U+5f45-5f4a, U+5f4c-5f4e, U+5f50, U+5f54, U+5f56-5f59, U+5f5b-5f5f, U+5f61, U+5f63, U+5f65, U+5f67-5f68, U+5f6b, U+5f6e-5f6f, U+5f72-5f78, U+5f7a, U+5f7e-5f7f, U+5f82-5f83, U+5f87, U+5f89-5f8a, U+5f8d, U+5f91, U+5f93, U+5f95, U+5f98-5f99, U+5f9c, U+5f9e, U+5fa0, U+5fa6-5fa9, U+5fac-5fad, U+5faf, U+5fb3-5fb5, U+5fb9, U+5fbc, U+5fc4, U+5fc9, U+5fcb, U+5fce-5fd0&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.71.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.72.ttf  --unicodes=<span class="string">&#x27;U+5d32-5d34, U+5d3c-5d3e, U+5d41-5d44, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, U+5d50, U+5d52, U+5d55-5d58, U+5d5a-5d5d, U+5d68-5d69, U+5d6b-5d6c, U+5d6f, U+5d74, U+5d7f, U+5d82-5d89, U+5d8b-5d8c, U+5d8f, U+5d92-5d93, U+5d99, U+5d9d, U+5db2, U+5db6-5db7, U+5dba, U+5dbc-5dbd, U+5dc2-5dc3, U+5dc6-5dc7, U+5dc9, U+5dcc, U+5dd2, U+5dd4, U+5dd6-5dd8, U+5ddb-5ddc, U+5de3, U+5ded, U+5def, U+5df3, U+5df6, U+5dfa-5dfd, U+5dff-5e00, U+5e07, U+5e0f, U+5e11, U+5e13-5e14, U+5e19-5e1b, U+5e22, U+5e25, U+5e28, U+5e2a, U+5e2f-5e31, U+5e33-5e34, U+5e36, U+5e39-5e3c, U+5e3e, U+5e40, U+5e44, U+5e46-5e48, U+5e4c, U+5e4f, U+5e53-5e54, U+5e57, U+5e59, U+5e5b, U+5e5e-5e5f, U+5e61, U+5e63, U+5e6a-5e6b, U+5e75, U+5e77, U+5e79-5e7a, U+5e7e, U+5e80-5e81, U+5e83, U+5e85, U+5e87, U+5e8b, U+5e91-5e92, U+5e96, U+5e98, U+5e9b, U+5e9d, U+5ea0-5ea2&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.72.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.73.ttf  --unicodes=<span class="string">&#x27;U+5bf5-5bf6, U+5bfe, U+5c02-5c03, U+5c05, U+5c07-5c09, U+5c0b-5c0c, U+5c0e, U+5c10, U+5c12-5c13, U+5c15, U+5c17, U+5c19, U+5c1b-5c1c, U+5c1e-5c1f, U+5c22, U+5c25, U+5c28, U+5c2a-5c2b, U+5c2f-5c30, U+5c37, U+5c3b, U+5c43-5c44, U+5c46-5c47, U+5c4d, U+5c50, U+5c59, U+5c5b-5c5c, U+5c62-5c64, U+5c66, U+5c6c, U+5c6e, U+5c74, U+5c78-5c7e, U+5c80, U+5c83-5c84, U+5c88, U+5c8b-5c8d, U+5c91, U+5c94-5c96, U+5c98-5c99, U+5c9c, U+5c9e, U+5ca1-5ca3, U+5cab-5cac, U+5cb1, U+5cb5, U+5cb7, U+5cba, U+5cbd-5cbf, U+5cc1, U+5cc3-5cc4, U+5cc7, U+5ccb, U+5cd2, U+5cd8-5cd9, U+5cdf-5ce0, U+5ce3-5ce6, U+5ce8-5cea, U+5ced, U+5cef, U+5cf3-5cf4, U+5cf6, U+5cf8, U+5cfd, U+5d00-5d04, U+5d06, U+5d08, U+5d0b-5d0d, U+5d0f-5d13, U+5d15, U+5d17-5d1a, U+5d1d-5d22, U+5d24-5d27, U+5d2e-5d31&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.73.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.74.ttf  --unicodes=<span class="string">&#x27;U+5ab2, U+5ab4-5ab5, U+5ab7-5aba, U+5abd-5abf, U+5ac3-5ac4, U+5ac6-5ac8, U+5aca-5acb, U+5acd, U+5acf-5ad2, U+5ad4, U+5ad8-5ada, U+5adc, U+5adf-5ae2, U+5ae4, U+5ae6, U+5ae8, U+5aea-5aed, U+5af0-5af3, U+5af5, U+5af9-5afb, U+5afd, U+5b01, U+5b05, U+5b08, U+5b0b-5b0c, U+5b11, U+5b16-5b17, U+5b1b, U+5b21-5b22, U+5b24, U+5b27-5b2e, U+5b30, U+5b32, U+5b34, U+5b36-5b38, U+5b3e-5b40, U+5b43, U+5b45, U+5b4a-5b4b, U+5b51-5b53, U+5b56, U+5b5a-5b5b, U+5b62, U+5b65, U+5b67, U+5b6a-5b6e, U+5b70-5b71, U+5b73, U+5b7a-5b7b, U+5b7f-5b80, U+5b84, U+5b8d, U+5b91, U+5b93-5b95, U+5b9f, U+5ba5-5ba6, U+5bac, U+5bae, U+5bb8, U+5bc0, U+5bc3, U+5bcb, U+5bd0-5bd1, U+5bd4-5bd8, U+5bda-5bdc, U+5be2, U+5be4-5be7, U+5be9, U+5beb-5bec, U+5bee-5bf0, U+5bf2-5bf3&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.74.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.75.ttf  --unicodes=<span class="string">&#x27;U+5981, U+598f, U+5997-5998, U+599a, U+599c-599d, U+59a0-59a1, U+59a3-59a4, U+59a7, U+59aa-59ad, U+59af, U+59b2-59b3, U+59b5-59b6, U+59b8, U+59ba, U+59bd-59be, U+59c0-59c1, U+59c3-59c4, U+59c7-59ca, U+59cc-59cd, U+59cf, U+59d2, U+59d5-59d6, U+59d8-59d9, U+59db, U+59dd-59e0, U+59e2-59e7, U+59e9-59eb, U+59ee, U+59f1, U+59f3, U+59f5, U+59f7-59f9, U+59fd, U+5a06, U+5a08-5a0a, U+5a0c-5a0d, U+5a11-5a13, U+5a15-5a16, U+5a1a-5a1b, U+5a21-5a23, U+5a2d-5a2f, U+5a32, U+5a38, U+5a3c, U+5a3e-5a45, U+5a47, U+5a4a, U+5a4c-5a4d, U+5a4f-5a51, U+5a53, U+5a55-5a57, U+5a5e, U+5a60, U+5a62, U+5a65-5a67, U+5a6a, U+5a6c-5a6d, U+5a72-5a73, U+5a75-5a76, U+5a79-5a7c, U+5a81-5a84, U+5a8c, U+5a8e, U+5a93, U+5a96-5a97, U+5a9c, U+5a9e, U+5aa0, U+5aa3-5aa4, U+5aaa, U+5aae-5aaf, U+5ab1&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.75.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.76.ttf  --unicodes=<span class="string">&#x27;U+5831, U+583a, U+583d, U+583f-5842, U+5844-5846, U+5848, U+584a, U+584d, U+5852, U+5857, U+5859-585a, U+585c-585d, U+5862, U+5868-5869, U+586c-586d, U+586f-5873, U+5875, U+5879, U+587d-587e, U+5880-5881, U+5888-588a, U+588d, U+5892, U+5896-5898, U+589a, U+589c-589d, U+58a0-58a1, U+58a3, U+58a6, U+58a9, U+58ab-58ae, U+58b0, U+58b3, U+58bb-58bf, U+58c2-58c3, U+58c5-58c8, U+58ca, U+58cc, U+58ce, U+58d1-58d3, U+58d5, U+58d8-58d9, U+58de-58df, U+58e2, U+58e9, U+58ec, U+58ef, U+58f1-58f2, U+58f5, U+58f7-58f8, U+58fa, U+58fd, U+5900, U+5902, U+5906, U+5908-590c, U+590e, U+5910, U+5914, U+5919, U+591b, U+591d-591e, U+5920, U+5922-5925, U+5928, U+592c-592d, U+592f, U+5932, U+5936, U+593c, U+593e, U+5940-5942, U+5944, U+594c-594d, U+5950, U+5953, U+5958, U+595a, U+5961, U+5966-5968, U+596a, U+596c-596e, U+5977, U+597b-597c&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.76.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.77.ttf  --unicodes=<span class="string">&#x27;U+570a, U+570c-570d, U+570f, U+5712-5713, U+5718-5719, U+571c, U+571e, U+5725, U+5727, U+5729-572a, U+572c, U+572e-572f, U+5734-5735, U+5739, U+573b, U+5741, U+5743, U+5745, U+5749, U+574c-574d, U+575c, U+5763, U+5768-5769, U+576b, U+576d-576e, U+5770, U+5773, U+5775, U+5777, U+577b-577c, U+5785-5786, U+5788, U+578c, U+578e-578f, U+5793-5795, U+5799-57a1, U+57a3-57a4, U+57a6-57aa, U+57ac-57ad, U+57af-57b2, U+57b4-57b6, U+57b8-57b9, U+57bd-57bf, U+57c2, U+57c4-57c8, U+57cc-57cd, U+57cf, U+57d2, U+57d5-57de, U+57e1-57e2, U+57e4-57e5, U+57e7, U+57eb, U+57ed, U+57ef, U+57f4-57f8, U+57fc-57fd, U+5800-5801, U+5803, U+5805, U+5807, U+5809, U+580b-580e, U+5811, U+5814, U+5819, U+581b-5820, U+5822-5823, U+5825-5826, U+582c, U+582f&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.77.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.78.ttf  --unicodes=<span class="string">&#x27;U+5605-5606, U+5608, U+560c-560d, U+560f, U+5614, U+5616-5617, U+561a, U+561c, U+561e, U+5621-5625, U+5627, U+5629, U+562b-5630, U+5636, U+5638-563a, U+563c, U+5640-5642, U+5649, U+564c-5650, U+5653-5655, U+5657-565b, U+5660, U+5663-5664, U+5666, U+566b, U+566f-5671, U+5673-567c, U+567e, U+5684-5687, U+568c, U+568e-5693, U+5695, U+5697, U+569b-569c, U+569e-569f, U+56a1-56a2, U+56a4-56a9, U+56ac-56af, U+56b1, U+56b4, U+56b6-56b8, U+56bf, U+56c1-56c3, U+56c9, U+56cd, U+56d1, U+56d4, U+56d6-56d9, U+56dd, U+56df, U+56e1, U+56e3-56e6, U+56e8-56ec, U+56ee-56ef, U+56f1-56f3, U+56f5, U+56f7-56f9, U+56fc, U+56ff-5700, U+5703-5704, U+5709&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.78.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.79.ttf  --unicodes=<span class="string">&#x27;U+5519, U+551b, U+551d-551e, U+5520, U+5522-5523, U+5526-5527, U+552a-552c, U+5530, U+5532-5535, U+5537-5538, U+553b-5541, U+5543-5544, U+5547-5549, U+554b, U+554d, U+5550, U+5553, U+5555-5558, U+555b-555f, U+5567-5569, U+556b-5572, U+5574-5577, U+557b-557c, U+557e-557f, U+5581, U+5583, U+5585-5586, U+5588, U+558b-558c, U+558e-5591, U+5593, U+5599-559a, U+559f, U+55a5-55a6, U+55a8-55ac, U+55ae, U+55b0-55b3, U+55b6, U+55b9-55ba, U+55bc-55be, U+55c4, U+55c6-55c7, U+55c9, U+55cc-55d2, U+55d4-55db, U+55dd-55df, U+55e1, U+55e3-55e6, U+55ea-55ee, U+55f0-55f3, U+55f5-55f7, U+55fb, U+55fe, U+5600-5601&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.79.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.80.ttf  --unicodes=<span class="string">&#x27;U+53fb-5400, U+5402, U+5405-5407, U+540b, U+540f, U+5412, U+5414, U+5416, U+5418-541a, U+541d, U+5420-5423, U+5425, U+5429-542a, U+542d-542e, U+5431-5433, U+5436, U+543d, U+543f, U+5442-5443, U+5449, U+544b-544c, U+544e, U+5451-5454, U+5456, U+5459, U+545b-545c, U+5461, U+5463-5464, U+546a-5472, U+5474, U+5476-5478, U+547a, U+547e-5484, U+5486, U+548a, U+548d-548e, U+5490-5491, U+5494, U+5497-5499, U+549b, U+549d, U+54a1-54a7, U+54a9, U+54ab, U+54ad, U+54b4-54b5, U+54b9, U+54bb, U+54be-54bf, U+54c2-54c3, U+54c9-54cc, U+54cf-54d0, U+54d3, U+54d5-54d6, U+54d9-54da, U+54dc-54de, U+54e2, U+54e7, U+54f3-54f4, U+54f8-54f9, U+54fd-54ff, U+5501, U+5504-5506, U+550c-550f, U+5511-5514, U+5516-5517&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.80.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.81.ttf  --unicodes=<span class="string">&#x27;U+52a2, U+52a6-52a7, U+52ac-52ad, U+52af, U+52b4-52b5, U+52b9, U+52bb-52bc, U+52be, U+52c1, U+52c5, U+52ca, U+52cd, U+52d0, U+52d6-52d7, U+52d9, U+52db, U+52dd-52de, U+52e0, U+52e2-52e3, U+52e5, U+52e7-52f0, U+52f2-52f3, U+52f5-52f9, U+52fb-52fc, U+5302, U+5304, U+530b, U+530d, U+530f-5310, U+5315, U+531a, U+531c-531d, U+5321, U+5323, U+5326, U+532e-5331, U+5338, U+533c-533e, U+5340, U+5344-5345, U+534b-534d, U+5350, U+5354, U+5358, U+535d-535f, U+5363, U+5368-5369, U+536c, U+536e-536f, U+5372, U+5379-537b, U+537d, U+538d-538e, U+5390, U+5393-5394, U+5396, U+539b-539d, U+53a0-53a1, U+53a3-53a5, U+53a9, U+53ad-53ae, U+53b0, U+53b2-53b3, U+53b5-53b8, U+53bc, U+53be, U+53c1, U+53c3-53c7, U+53ce-53cf, U+53d2-53d3, U+53d5, U+53da, U+53de-53df, U+53e1-53e2, U+53e7-53e9, U+53f1, U+53f4-53f5, U+53fa&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.81.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.82.ttf  --unicodes=<span class="string">&#x27;U+5110, U+5113, U+5115, U+5117-5118, U+511a-511c, U+511e-511f, U+5121, U+5128, U+512b-512d, U+5131-5135, U+5137-5139, U+513c, U+5140, U+5142, U+5147, U+514c, U+514e-5150, U+5155-5158, U+5162, U+5169, U+5172, U+517f, U+5181-5184, U+5186-5187, U+518b, U+518f, U+5191, U+5195-5197, U+519a, U+51a2-51a3, U+51a6-51ab, U+51ad-51ae, U+51b1, U+51b4, U+51bc-51bd, U+51bf, U+51c3, U+51c7-51c8, U+51ca-51cb, U+51cd-51ce, U+51d4, U+51d6, U+51db-51dc, U+51e6, U+51e8-51eb, U+51f1, U+51f5, U+51fc, U+51ff, U+5202, U+5205, U+5208, U+520b, U+520d-520e, U+5215-5216, U+5228, U+522a, U+522c-522d, U+5233, U+523c-523d, U+523f-5240, U+5245, U+5247, U+5249, U+524b-524c, U+524e, U+5250, U+525b-525f, U+5261, U+5263-5264, U+5270, U+5273, U+5275, U+5277, U+527d, U+527f, U+5281-5285, U+5287, U+5289, U+528b, U+528d, U+528f, U+5291-5293, U+529a&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.82.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.83.ttf  --unicodes=<span class="string">&#x27;U+4fe3-4fe4, U+4fe6, U+4fe8, U+4feb-4fed, U+4ff3, U+4ff5-4ff6, U+4ff8, U+4ffe, U+5001, U+5005-5006, U+5009, U+500c, U+500f, U+5013-5018, U+501b-501e, U+5022-5025, U+5027-5028, U+502b-502e, U+5030, U+5033-5034, U+5036-5039, U+503b, U+5041-5043, U+5045-5046, U+5048-504a, U+504c-504e, U+5051, U+5053, U+5055-5057, U+505b, U+505e, U+5060, U+5062-5063, U+5067, U+506a, U+506c, U+5070-5072, U+5074-5075, U+5078, U+507b, U+507d-507e, U+5080, U+5088-5089, U+5091-5092, U+5095, U+5097-509e, U+50a2-50a3, U+50a5-50a7, U+50a9, U+50ad, U+50b3, U+50b5, U+50b7, U+50ba, U+50be, U+50c4-50c5, U+50c7, U+50ca, U+50cd, U+50d1, U+50d5-50d6, U+50da, U+50de, U+50e5-50e6, U+50ec-50ee, U+50f0-50f1, U+50f3, U+50f9-50fb, U+50fe-5102, U+5104, U+5106-5107, U+5109-510b, U+510d, U+510f&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.83.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.84.ttf  --unicodes=<span class="string">&#x27;U+4eb8-4eb9, U+4ebb-4ebe, U+4ec2-4ec4, U+4ec8-4ec9, U+4ecc, U+4ecf-4ed0, U+4ed2, U+4eda-4edb, U+4edd-4ee1, U+4ee6-4ee9, U+4eeb, U+4eee-4eef, U+4ef3-4ef5, U+4ef8-4efa, U+4efc, U+4f00, U+4f03-4f05, U+4f08-4f09, U+4f0b, U+4f0e, U+4f12-4f13, U+4f15, U+4f1b, U+4f1d, U+4f21-4f22, U+4f25, U+4f27-4f29, U+4f2b-4f2e, U+4f31-4f33, U+4f36-4f37, U+4f39, U+4f3e, U+4f40-4f41, U+4f43, U+4f47-4f49, U+4f54, U+4f57-4f58, U+4f5d-4f5e, U+4f61-4f62, U+4f64-4f65, U+4f67, U+4f6a, U+4f6e-4f6f, U+4f72, U+4f74-4f7e, U+4f80-4f82, U+4f84, U+4f89-4f8a, U+4f8e-4f98, U+4f9e, U+4fa1, U+4fa5, U+4fa9-4faa, U+4fac, U+4fb3, U+4fb6-4fb8, U+4fbd, U+4fc2, U+4fc5-4fc6, U+4fcd-4fce, U+4fd0-4fd1, U+4fd3, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.84.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.85.ttf  --unicodes=<span class="string">&#x27;U+3127-3129, U+3131, U+3134, U+3137, U+3139, U+3141-3142, U+3145, U+3147-3148, U+314b, U+314d-314e, U+315c, U+3160-3161, U+3163-3164, U+3186, U+318d, U+3192, U+3196-3198, U+319e-319f, U+3220-3229, U+3231, U+3268, U+3297, U+3299, U+32a3, U+338e-338f, U+3395, U+339c-339e, U+33c4, U+33d1-33d2, U+33d5, U+3434, U+34dc, U+34ee, U+353e, U+355d, U+3566, U+3575, U+3592, U+35a0-35a1, U+35ad, U+35ce, U+36a2, U+36ab, U+38a8, U+3dab, U+3de7, U+3deb, U+3e1a, U+3f1b, U+3f6d, U+4495, U+4723, U+48fa, U+4ca3, U+4e02, U+4e04-4e06, U+4e0c, U+4e0f, U+4e15, U+4e17, U+4e1f-4e21, U+4e26, U+4e29, U+4e2c, U+4e2f, U+4e31, U+4e35, U+4e37, U+4e3c, U+4e3f-4e42, U+4e44, U+4e46-4e47, U+4e57, U+4e5a-4e5c, U+4e64-4e65, U+4e67, U+4e69, U+4e6d, U+4e78, U+4e7f-4e82, U+4e85, U+4e87, U+4e8a, U+4e8d, U+4e93, U+4e96, U+4e98-4e99, U+4e9c, U+4e9e-4ea0, U+4ea2-4ea3, U+4ea5, U+4eb0-4eb1, U+4eb3-4eb6&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.85.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.86.ttf  --unicodes=<span class="string">&#x27;U+279c, U+279f-27a2, U+27a4-27a5, U+27a8, U+27b0, U+27b2-27b3, U+27b9, U+27e8-27e9, U+27f6, U+2800, U+28ec, U+2913, U+2921-2922, U+2934-2935, U+2a2f, U+2b05-2b07, U+2b50, U+2b55, U+2bc5-2bc6, U+2e1c-2e1d, U+2ebb, U+2f00, U+2f08, U+2f24, U+2f2d, U+2f2f-2f30, U+2f3c, U+2f45, U+2f63-2f64, U+2f74, U+2f83, U+2f8f, U+2fbc, U+3003, U+3005-3007, U+3012-3013, U+301c-301e, U+3021, U+3023-3024, U+3030, U+3034-3035, U+3041, U+3043, U+3045, U+3047, U+3049, U+3056, U+3058, U+305c, U+305e, U+3062, U+306c, U+3074, U+3077, U+307a, U+307c-307d, U+3080, U+308e, U+3090-3091, U+3099-309b, U+309d-309e, U+30a5, U+30bc, U+30be, U+30c2, U+30c5, U+30cc, U+30d8, U+30e2, U+30e8, U+30ee, U+30f0-30f2, U+30f4-30f6, U+30fd-30fe, U+3105-3126&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.86.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.87.ttf  --unicodes=<span class="string">&#x27;U+2650-2655, U+2658, U+265a-265b, U+265d-265e, U+2660-266d, U+266f, U+267b, U+2688, U+2693-2696, U+2698-2699, U+269c, U+26a0-26a1, U+26a4, U+26aa-26ab, U+26bd-26be, U+26c4-26c5, U+26d4, U+26e9, U+26f0-26f1, U+26f3, U+26f5, U+26fd, U+2702, U+2704-2706, U+2708-270f, U+2712-2718, U+271a-271b, U+271d, U+271f, U+2721, U+2724-2730, U+2732-2734, U+273a, U+273d-2744, U+2747-2749, U+274c, U+274e-274f, U+2753-2757, U+275b, U+275d-275e, U+2763, U+2765-2767, U+276e-276f, U+2776-277e, U+2780-2782, U+278a-278c, U+278e, U+2794-2796&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.87.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.88.ttf  --unicodes=<span class="string">&#x27;U+254b, U+2550-2551, U+2554, U+2557, U+255a-255b, U+255d, U+255f-2560, U+2562-2563, U+2565-2567, U+2569-256a, U+256c-2572, U+2579, U+2580-2595, U+25a1, U+25a3, U+25a9-25ad, U+25b0, U+25b3-25bb, U+25bd-25c2, U+25c4, U+25c8-25cb, U+25cd, U+25d0-25d1, U+25d4-25d5, U+25d8, U+25dc-25e6, U+25ea-25eb, U+25ef, U+25fe, U+2600-2604, U+2609, U+260e-260f, U+2611, U+2614-2615, U+2618, U+261a-2620, U+2622-2623, U+262a, U+262d-2630, U+2639-2640, U+2642, U+2648-264f&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.88.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.89.ttf  --unicodes=<span class="string">&#x27;U+23e9, U+23f0, U+23f3, U+2445, U+2449, U+2465-2471, U+2474-249b, U+24b8, U+24c2, U+24c7, U+24c9, U+24d0, U+24d2, U+24d4, U+24d8, U+24dd-24de, U+24e3, U+24e6, U+24e8, U+2500-2509, U+250b-2526, U+2528-2534, U+2536-2537, U+253b-2548, U+254a&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.89.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.90.ttf  --unicodes=<span class="string">&#x27;U+207b-2083, U+208c-208e, U+2092, U+20a6, U+20a8-20ad, U+20af, U+20b1, U+20b4-20b5, U+20b8-20ba, U+20bd, U+20db, U+20dd, U+20e0, U+20e3, U+2105, U+2109, U+2113, U+2116-2117, U+2120-2121, U+2126, U+212b, U+2133, U+2139, U+2194, U+2196-2199, U+21a0, U+21a9-21aa, U+21af, U+21b3, U+21b5, U+21ba-21bb, U+21c4, U+21ca, U+21cc, U+21d0-21d4, U+21e1, U+21e6-21e9, U+2200, U+2202, U+2205-2208, U+220f, U+2211-2212, U+2215, U+2217-2219, U+221d-2220, U+2223, U+2225, U+2227-222b, U+222e, U+2234-2237, U+223c-223d, U+2248, U+224c, U+2252, U+2256, U+2260-2261, U+2266-2267, U+226a-226b, U+226e-226f, U+2282-2283, U+2295, U+2297, U+2299, U+22a5, U+22b0-22b1, U+22b9, U+22bf, U+22c5-22c6, U+22ef, U+2304, U+2307, U+230b, U+2312-2314, U+2318, U+231a-231b, U+2323, U+239b, U+239d-239e, U+23a0&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.90.ttf</span><br><span class="line"></span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.91.ttf  --unicodes=<span class="string">&#x27;U+1d34-1d35, U+1d38-1d3a, U+1d3c, U+1d3f-1d40, U+1d49, U+1d4e-1d4f, U+1d52, U+1d55, U+1d5b, U+1d5e, U+1d9c, U+1da0, U+1dc4-1dc5, U+1e69, U+1e73, U+1ea0-1ea9, U+1eab-1ead, U+1eaf, U+1eb1, U+1eb3, U+1eb5, U+1eb7, U+1eb9, U+1ebb, U+1ebd-1ebe, U+1ec0-1ec3, U+1ec5-1ec6, U+1ec9-1ecd, U+1ecf-1ed3, U+1ed5, U+1ed7-1edf, U+1ee1, U+1ee3, U+1ee5-1eeb, U+1eed, U+1eef-1ef1, U+1ef3, U+1ef7, U+1ef9, U+1f62, U+1f7b, U+2001-2002, U+2004-2006, U+2009-200a, U+200c-2012, U+2015-2016, U+201a, U+201e-2021, U+2023, U+2025, U+2027-2028, U+202a-202d, U+202f-2030, U+2032-2033, U+2035, U+2038, U+203c, U+203e-203f, U+2043-2044, U+2049, U+204d-204e, U+2060-2061, U+2070, U+2074-2078, U+207a&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.91.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.97.ttf  --unicodes=<span class="string">&#x27;U+2ae-2b3, U+2b5-2bf, U+2c2-2c3, U+2c6-2d1, U+2d8-2da, U+2dc, U+2e1-2e3, U+2e5, U+2eb, U+2ee-2f0, U+2f2-2f7, U+2f9-2ff, U+302-30d, U+311, U+31b, U+321-325, U+327-329, U+32b-32c, U+32e-32f, U+331-339, U+33c-33d, U+33f, U+348, U+352, U+35c, U+35e-35f, U+361, U+363, U+368, U+36c, U+36f, U+530-540, U+55d-55e, U+561, U+563, U+565, U+56b, U+56e-579&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.97.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.98.ttf  --unicodes=<span class="string">&#x27;U+176-17f, U+192, U+194, U+19a-19b, U+19d, U+1a0-1a1, U+1a3-1a4, U+1aa, U+1ac-1ad, U+1af-1bf, U+1d2, U+1d4, U+1d6, U+1d8, U+1da, U+1dc, U+1e3, U+1e7, U+1e9, U+1ee, U+1f0-1f1, U+1f3, U+1f5-1ff, U+219-21b, U+221, U+223-226, U+228, U+22b, U+22f, U+231, U+234-237, U+23a-23b, U+23d, U+250-252, U+254-255, U+259-25e, U+261-263, U+265, U+268, U+26a-26b, U+26f-277, U+279, U+27b-280, U+282-283, U+285, U+28a, U+28c, U+28f, U+292, U+294-296, U+298-29a, U+29c, U+29f, U+2a1-2a4, U+2a6-2a7, U+2a9, U+2ab&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.98.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.99.ttf  --unicodes=<span class="string">&#x27;U+a1-a4, U+a6-a8, U+aa, U+ac, U+af, U+b1, U+b3-b6, U+b8-ba, U+bc-d6, U+d8-de, U+e6, U+eb, U+ee-f0, U+f5, U+f7-f8, U+fb, U+fd-100, U+102, U+104-107, U+10d, U+10f-112, U+115, U+117, U+119, U+11b, U+11e-11f, U+121, U+123, U+125-127, U+129-12a, U+12d, U+12f-13f, U+141-142, U+144, U+146, U+14b-14c, U+14f-153, U+158-15b, U+15e-160, U+163-165, U+168-16a, U+16d-175&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.99.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.100.ttf  --unicodes=<span class="string">&#x27;U+221a, U+2264, U+2464, U+25a0, U+3008, U+4e10, U+512a, U+5152, U+5201, U+5241, U+5352, U+549a, U+54b2, U+54c6, U+54d7, U+54e1, U+5509, U+55c5, U+560e, U+5618, U+565c, U+56bc, U+5716, U+576f, U+5784, U+57a2, U+589f, U+5a20, U+5a25, U+5a29, U+5a34, U+5a7f, U+5ac9, U+5ad6, U+5b09, U+5b5c, U+5bc7, U+5c27, U+5d2d, U+5dcd, U+5f1b, U+5f37, U+604d, U+6055, U+6073, U+60eb, U+61ff, U+620c, U+62c7, U+62ed, U+6320, U+6345, U+6390, U+63b0, U+64ae, U+64c2, U+64d2, U+6556, U+663c, U+667e, U+66d9, U+66f8, U+6756, U+6789, U+689d, U+68f1, U+695e, U+6975, U+6a1f, U+6b0a, U+6b61, U+6b87, U+6c5d, U+6c7e, U+6c92, U+6d31, U+6df9, U+6e0d, U+6e2d, U+6f3e, U+70b3, U+70bd, U+70ca, U+70e8, U+725f, U+72e9, U+733f, U+7396, U+739f, U+7459-745a, U+74a7, U+75a1, U+75f0, U+76cf, U+76d4, U+7729, U+77aa, U+77b0, U+77e3, U+780c, U+78d5, U+7941, U+7977, U+797a, U+79c3, U+7a20, U+7a92, U+7b71, U+7bf1, U+7c9f, U+7eb6, U+7eca, U+7ef7, U+7f07, U+7f09, U+7f15, U+7f81, U+7fb9, U+8038, U+8098, U+80b4, U+8110, U+814b-814c, U+816e, U+818a, U+8205, U+8235, U+828b, U+82a5, U+82b7, U+82d4, U+82db, U+82df, U+8317, U+8338, U+8385-8386, U+83c1, U+83cf, U+8537, U+853b, U+854a, U+8715, U+8783, U+892a, U+8a71, U+8aaa, U+8d58, U+8dbe, U+8f67, U+8fab, U+8fc4, U+8fe6, U+9023, U+9084, U+9091, U+916a, U+91c9, U+91dc, U+94b3, U+9502, U+9523, U+9551, U+956f, U+960e, U+962a, U+962e, U+9647, U+96f3, U+9739, U+97a0, U+97ed, U+983b, U+985e, U+988a, U+9a6f, U+9a8b, U+9ab7, U+9ac5, U+9e25, U+e608, U+ff06, U+ff14-ff16&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.100.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.101.ttf  --unicodes=<span class="string">&#x27;U+161, U+926, U+928, U+939, U+93f-940, U+94d, U+e17, U+e22, U+e44, U+2463, U+25c7, U+25ce, U+2764, U+3009, U+3016-3017, U+4e4d, U+4e53, U+4f5a, U+4f70, U+4fae, U+4fd8, U+4ffa, U+5011, U+501a, U+516e, U+51c4, U+5225, U+5364, U+547b, U+5495, U+54e8, U+54ee, U+5594, U+55d3, U+55dc, U+55fd, U+5662, U+5669, U+566c, U+5742, U+5824, U+5834, U+598a, U+5992, U+59a9, U+5a04, U+5b75, U+5b7d, U+5bc5, U+5c49, U+5c90, U+5e1c, U+5e27, U+5e2b, U+5e37, U+5e90, U+618b, U+61f5, U+620a, U+6273, U+62f7, U+6342, U+6401-6402, U+6413, U+6512, U+655b, U+65a7, U+65f1, U+65f7, U+665f, U+6687, U+66a7, U+673d, U+67b8, U+6854, U+68d8, U+68fa, U+696d, U+6a02, U+6a0a, U+6a80, U+6b7c, U+6bd9, U+6c2e, U+6c76, U+6cf8, U+6d4a, U+6d85, U+6e24, U+6e32, U+6ec7, U+6ed5, U+6f88, U+700f, U+701a, U+7078, U+707c, U+70ac, U+70c1, U+7409, U+7422, U+7480, U+74a8, U+752b, U+7574, U+7656, U+7699, U+7737, U+785d, U+78be, U+79b9, U+7a3d, U+7a91, U+7a9f, U+7ae3, U+7b77, U+7c3f, U+7d1a, U+7d50, U+7d93, U+803f, U+8042, U+808b, U+8236, U+82b8-82b9, U+82ef, U+8309, U+836b, U+83ef, U+8431, U+85c9, U+865e, U+868c, U+8759, U+8760, U+8845, U+89ba, U+8a2a, U+8c41, U+8cec, U+8d2c, U+8d4e, U+8e66, U+8e6d, U+8eaf, U+902e, U+914b, U+916e, U+919b, U+949b, U+94a0, U+94b0, U+9541-9542, U+9556, U+95eb, U+95f5, U+964b, U+968b, U+96cc-96cd, U+96cf, U+9704, U+9713, U+9890, U+98a8, U+9985, U+9992, U+9a6d, U+9a81, U+9a86, U+9ab8, U+9ca4, U+9f9a, U+e606-e607, U+e60a, U+e60c, U+e60e, U+fe0f, U+ff02, U+ff1e, U+ff3d&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.101.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.102.ttf  --unicodes=<span class="string">&#x27;U+10c, U+627-629, U+639, U+644, U+64a, U+203b, U+2265, U+2573, U+25b2, U+3448-3449, U+4e1e, U+4e5e, U+4f3a, U+4f5f, U+4fea, U+5026, U+508d, U+5189, U+5254, U+5288, U+52d8, U+52fa, U+5306, U+5308, U+5384, U+53ed, U+543c, U+5450, U+5455, U+5466, U+54c4, U+5578, U+55a7, U+561f, U+5631, U+572d, U+575f, U+57ae, U+57e0, U+5830, U+594e, U+5984, U+5993, U+5bdd, U+5c0d, U+5c7f, U+5c82, U+5e62, U+5ed3, U+5f08, U+607a, U+60bc, U+60df, U+625b, U+6292, U+62e2, U+6363, U+6467, U+6714, U+675e, U+6771, U+67a2, U+67ff, U+6805, U+6813, U+6869, U+68a7, U+68e0, U+6930, U+6986, U+69a8, U+69df, U+6a44, U+6a5f, U+6c13, U+6c1f, U+6c22, U+6c2f, U+6c40, U+6c81, U+6c9b, U+6ca5, U+6da4, U+6df3, U+6e85, U+6eba, U+6f13, U+6f33, U+6f62, U+715e, U+72c4, U+73d1, U+73fe, U+7405, U+7455, U+7487, U+7578, U+75a4, U+75eb, U+7693, U+7738, U+7741, U+776b, U+7792, U+77a7, U+77a9, U+77b3, U+788c, U+7984, U+79a7, U+79e4, U+7a1a, U+7a57, U+7aa6, U+7b0b, U+7b5d, U+7c27, U+7c7d, U+7caa, U+7cd9, U+7cef, U+7eda, U+7ede, U+7f24, U+8046, U+80fa, U+81b3, U+81fb, U+8207, U+8258, U+8335, U+8339, U+8354, U+840e, U+85b0, U+85fb, U+8695, U+86aa, U+8717, U+8749, U+874c, U+8996, U+89bd, U+89c5, U+8bdb, U+8bf5, U+8c5a, U+8d3f, U+8d9f, U+8e44, U+8fed, U+9005, U+9019, U+904e, U+9082, U+90af, U+90dd, U+90e1, U+90f8, U+9119, U+916f, U+9176, U+949e, U+94a7, U+94c2, U+9525, U+9580, U+95dc, U+96e2, U+96fb, U+9a7c, U+9a7f, U+9b41, U+9ca8, U+9cc4, U+9cde, U+9e92, U+9ede, U+e60b, U+e610, U+ff10, U+ff13, U+ff3b, U+f012b&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.102.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.103.ttf  --unicodes=<span class="string">&#x27;U+60, U+631, U+2606, U+3014-3015, U+309c, U+33a1, U+4e52, U+4ec6, U+4f86, U+4f8d, U+4fde, U+4fef, U+500b, U+502a, U+515c, U+518a, U+51a5, U+51f3, U+5243, U+52c9, U+52d5, U+53a2, U+53ee, U+54ce, U+54fa, U+54fc, U+5580, U+5587, U+563f, U+56da, U+5792, U+5815, U+5960, U+59d7, U+5a1f, U+5b78, U+5b9b, U+5be1, U+5c4e, U+5c51, U+5c6f, U+5c9a, U+5cfb, U+5d16, U+5ed6, U+5f27, U+5f6a, U+5f6c, U+603c, U+609a, U+6168, U+61c8, U+6236, U+62d0, U+62f1, U+62fd, U+631a, U+6328, U+632b, U+6346, U+638f, U+63a0, U+63c9, U+655e, U+6590, U+6615, U+6627, U+66ae, U+66e6, U+66f0, U+6703, U+67da, U+67ec, U+6816, U+6893, U+68ad, U+68f5, U+6977, U+6984, U+69db, U+6b72, U+6bb7, U+6ce3, U+6cfb, U+6d47, U+6da1, U+6dc4, U+6e43, U+6eaf, U+6eff, U+6f8e, U+7011, U+7063, U+7076, U+7096, U+70ba, U+70db, U+70ef, U+7119-711a, U+7172, U+718f, U+7194, U+727a, U+72d9, U+72ed, U+7325, U+73ae, U+73ba, U+73c0, U+7410, U+7426, U+7554, U+7576, U+75ae, U+75b9, U+762b, U+766b, U+7682, U+7750, U+7779, U+7784, U+77eb, U+77ee, U+78f7, U+79e9, U+7a79, U+7b1b, U+7b28, U+7bf7, U+7db2, U+7ec5, U+7eee, U+7f14, U+7f1a, U+7fe1, U+8087, U+809b, U+8231, U+830e, U+835f, U+83e9, U+849c, U+851a, U+868a, U+8718, U+874e, U+8822, U+8910, U+8944, U+8a3b, U+8bb6, U+8bbc, U+8d50, U+8e72, U+8f9c, U+900d, U+904b, U+9063, U+90a2, U+90b9, U+94f2, U+952f, U+9576-9577, U+9593, U+95f8, U+961c, U+9631, U+969b, U+96a7, U+96c1, U+9716, U+9761, U+97ad, U+97e7, U+98a4, U+997a, U+9a73, U+9b44, U+9e3d, U+9ecf, U+9ed4, U+ff11-ff12, U+fffd&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.103.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.104.ttf  --unicodes=<span class="string">&#x27;U+2003, U+2193, U+2462, U+4e19, U+4e2b, U+4e36, U+4ea8, U+4ed1, U+4ed7, U+4f51, U+4f63, U+4f83, U+50e7, U+5112, U+5167, U+51a4, U+51b6, U+5239, U+5265, U+532a, U+5351, U+537f, U+5401, U+548f, U+5492, U+54af, U+54b3, U+54bd, U+54d1, U+54df, U+554f, U+5564, U+5598, U+5632, U+56a3, U+56e7, U+574e, U+575d-575e, U+57d4, U+584c, U+58e4, U+5937, U+5955, U+5a05, U+5a49, U+5ac2, U+5bb0, U+5c39, U+5c61, U+5d0e, U+5de9, U+5e9a, U+5eb8, U+5f0a, U+5f13, U+5f8c, U+608d, U+611b, U+6127, U+62a0, U+634f, U+635e, U+63fd, U+6577, U+658b, U+65bc, U+660a, U+6643, U+6656, U+6760, U+67af, U+67c4, U+67e0, U+6817, U+68cd, U+690e, U+6960, U+69b4, U+6a71, U+6aac, U+6b67, U+6bb4, U+6c55, U+6c70, U+6c82, U+6ca6, U+6cb8, U+6cbe, U+6e9c, U+6ede, U+6ee5, U+6f4d, U+6f84, U+6f9c, U+7115, U+7121, U+722a, U+7261, U+7272, U+7280, U+72f8, U+7504, U+754f, U+75d8, U+767c, U+76ef, U+778e, U+77bb, U+77f6, U+786b, U+78b1, U+7948, U+7985, U+79be, U+7a83, U+7a8d, U+7eac, U+7eef, U+7ef8, U+7efd, U+7f00, U+803d, U+8086, U+810a, U+8165, U+819d, U+81a8, U+8214, U+829c, U+831c, U+8328, U+832b, U+8367, U+83e0, U+83f1, U+8403, U+846b, U+8475, U+84b2, U+8513, U+8574, U+85af, U+86d9, U+86db, U+8acb, U+8bbd, U+8be0-8be1, U+8c0e, U+8d29, U+8d63, U+8e81, U+8f7f, U+9032, U+9042, U+90b1, U+90b5, U+9165, U+9175, U+94a6, U+94c5, U+950c, U+9540, U+9610, U+9699, U+96c7, U+973e, U+978d, U+97ec, U+97f6, U+984c, U+987d, U+9882, U+9965, U+996a, U+9972, U+9a8f, U+9ad3, U+9ae6, U+9cb8, U+9edb, U+e600, U+e60f, U+e611, U+ff05, U+ff0b&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.104.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.105.ttf  --unicodes=<span class="string">&#x27;U+5e, U+2190, U+250a, U+25bc, U+25cf, U+300f, U+4e56, U+4ea9, U+4f3d, U+4f6c, U+4f88, U+4fa8, U+4fcf, U+5029, U+5188, U+51f9, U+5203, U+524a, U+5256, U+529d, U+5375, U+53db, U+541f, U+5435, U+5457, U+548b, U+54b1, U+54c7, U+54d4, U+54e9, U+556a, U+5589, U+55bb, U+55e8, U+55ef, U+563b, U+566a, U+576a, U+58f9, U+598d, U+599e, U+59a8, U+5a9b, U+5ae3, U+5bde, U+5c4c, U+5c60, U+5d1b, U+5deb, U+5df7, U+5e18, U+5f26, U+5f64, U+601c, U+6084, U+60e9, U+614c, U+61be, U+6208, U+621a, U+6233, U+6254, U+62d8, U+62e6, U+62ef, U+6323, U+632a, U+633d, U+6361, U+6380, U+6405, U+640f, U+6614, U+6642, U+6657, U+67a3, U+6808, U+683d, U+6850, U+6897, U+68b3, U+68b5, U+68d5, U+6a58, U+6b47, U+6b6a, U+6c28, U+6c90, U+6ca7, U+6cf5, U+6d51, U+6da9, U+6dc7, U+6dd1, U+6e0a, U+6e5b, U+6f47, U+6f6d, U+70ad, U+70f9, U+710a, U+7130, U+71ac, U+745f, U+7476, U+7490, U+7529, U+7538, U+75d2, U+7696, U+76b1, U+76fc, U+777f, U+77dc, U+789f, U+795b, U+79bd, U+79c9, U+7a3b, U+7a46, U+7aa5, U+7ad6, U+7ca5, U+7cb9, U+7cdf, U+7d6e, U+7f06, U+7f38, U+7fa1, U+7fc1, U+8015, U+803b, U+80a2, U+80aa, U+8116, U+813e, U+82ad, U+82bd, U+8305, U+8346, U+846c, U+8549, U+859b, U+8611, U+8680, U+87f9, U+884d, U+8877, U+888d, U+88d4, U+898b, U+8a79, U+8a93, U+8c05, U+8c0d, U+8c26, U+8d1e, U+8d31, U+8d81, U+8e22, U+8f90, U+8f96, U+90ca, U+916c, U+917f, U+9187, U+918b, U+9499, U+94a9, U+9524, U+958b, U+9600, U+9640, U+96b6, U+96ef, U+98d9, U+9976, U+997f, U+9a74, U+9a84, U+9c8d, U+9e26, U+9e9f, U+ad6d, U+c5b4, U+d55c, U+ff0f&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.105.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.106.ttf  --unicodes=<span class="string">&#x27;U+b0, U+2191, U+2460-2461, U+25c6, U+300e, U+4e1b, U+4e7e, U+4ed5, U+4ef2, U+4f10, U+4f1e, U+4f50, U+4fa6, U+4faf, U+5021, U+50f5, U+5179, U+5180, U+51d1, U+522e, U+52a3, U+52c3, U+52cb, U+5300, U+5319, U+5320, U+5349, U+5395, U+53d9, U+541e, U+5428, U+543e, U+54c0, U+54d2, U+570b, U+5858, U+58f6, U+5974, U+59a5, U+59e8, U+59ec, U+5a36, U+5a9a, U+5ab3, U+5b99, U+5baa, U+5ce1, U+5d14, U+5d4c, U+5dc5, U+5de2, U+5e99, U+5e9e, U+5f18, U+5f66, U+5f70, U+6070, U+60d5, U+60e7, U+6101, U+611a, U+6241, U+6252, U+626f, U+6296, U+62bc, U+62cc, U+63a9, U+644a, U+6454, U+64a9, U+64b8, U+6500, U+6572, U+65a5, U+65a9, U+65ec, U+660f, U+6749, U+6795, U+67ab, U+68da, U+6912, U+6bbf, U+6bef, U+6cab, U+6cca, U+6ccc, U+6cfc, U+6d3d, U+6d78, U+6dee, U+6e17, U+6e34, U+6e83, U+6ea2, U+6eb6, U+6f20, U+6fa1, U+707f, U+70d8, U+70eb, U+714c, U+714e, U+7235, U+7239, U+73ca, U+743c, U+745c, U+7624, U+763e, U+76f2, U+77db, U+77e9, U+780d, U+7838, U+7845, U+78ca, U+796d, U+7a84, U+7aed, U+7b3c, U+7eb2, U+7f05, U+7f20, U+7f34, U+7f62, U+7fc5, U+7fd8, U+7ff0, U+800d, U+8036, U+80ba, U+80be, U+80c0-80c1, U+8155, U+817a, U+8180, U+81e3, U+8206, U+8247, U+8270, U+8299, U+8304, U+8393, U+83b9, U+83ca, U+840d, U+8427, U+8469, U+8471, U+84c4, U+84ec, U+853d, U+8681-8682, U+8721, U+8854, U+88d5, U+88f9, U+8bc0, U+8c0a, U+8c29, U+8c2d, U+8d41, U+8dea, U+8eb2, U+8f9f, U+903b, U+903e, U+9102, U+9493, U+94a5, U+94f8, U+95ef, U+95f7, U+9706, U+9709, U+9774, U+9887, U+98a0, U+9e64, U+9f9f, U+e601, U+e603&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.106.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.107.ttf  --unicodes=<span class="string">&#x27;U+200b, U+2103, U+4e18, U+4e27-4e28, U+4e38, U+4e59, U+4e8f, U+4ead, U+4ec7, U+4fe9, U+503a, U+5085, U+5146, U+51af, U+51f8, U+52ab, U+5339, U+535c, U+5378, U+538c, U+5398, U+53f9, U+5415, U+5475, U+54aa, U+54ac, U+54b8, U+5582, U+5760, U+5764, U+57cb, U+5835, U+5885, U+5951, U+5983, U+59da, U+5a77, U+5b5d, U+5b5f, U+5bb5, U+5bc2, U+5be8, U+5bfa, U+5c2c, U+5c34, U+5c41, U+5c48, U+5c65, U+5cad, U+5e06, U+5e42, U+5ef7, U+5f17, U+5f25, U+5f6d, U+5f79, U+6028, U+6064, U+6068, U+606d, U+607c, U+6094, U+6109, U+6124, U+6247, U+626d, U+6291, U+629a, U+62ac, U+62b9, U+62fe, U+6324, U+6349, U+6367, U+6398, U+6495, U+64a4, U+64b0, U+64bc, U+64ce, U+658c, U+65ed, U+6602, U+6674, U+6691, U+66a8, U+674f, U+679a, U+67ef, U+67f4, U+680b, U+6876, U+68a8, U+6a59, U+6a61, U+6b20, U+6bc5, U+6d12, U+6d46, U+6d8c, U+6dc0, U+6e14, U+6e23, U+6f06, U+7164, U+716e, U+7199, U+71e5, U+72ac, U+742a, U+755c, U+75ab, U+75b2, U+75f4, U+7897, U+78b3, U+78c5, U+7978, U+79fd, U+7a74, U+7b4b, U+7b5b, U+7ece, U+7ed2, U+7ee3, U+7ef3, U+7f50, U+7f55, U+7f9e, U+7fe0, U+809d, U+8106, U+814a, U+8154, U+817b, U+818f, U+81c2, U+81ed, U+821f, U+82a6, U+82d1, U+8302, U+83c7, U+845b, U+848b, U+84c9, U+85e4, U+86ee, U+8700, U+8774, U+886c, U+8881, U+8c1c, U+8c79, U+8d2a, U+8d3c, U+8eba, U+8f70, U+8fa9, U+8fb1, U+900a, U+9017, U+901d, U+9022, U+906e, U+946b, U+94dd, U+94ed, U+953b, U+95fa, U+95fd, U+964c, U+96c0, U+971c, U+971e, U+9753, U+9756, U+97e6, U+9881, U+9b4f, U+9e2d, U+9f0e, U+e602, U+e604-e605, U+ff5c&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.107.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.108.ttf  --unicodes=<span class="string">&#x27;U+24, U+4e08, U+4e43, U+4e4f, U+4ef0, U+4f2a, U+507f, U+50ac, U+50bb, U+5151, U+51bb, U+51f6, U+51fd, U+5272, U+52fe, U+5362, U+53c9, U+53d4, U+53e0, U+543b, U+54f2, U+5507, U+5524, U+558a, U+55b5, U+561b, U+56ca, U+5782, U+57c3, U+5893, U+5915, U+5949, U+5962, U+59ae, U+59dc, U+59fb, U+5bd3, U+5c38, U+5cb3, U+5d07, U+5d29, U+5de1, U+5dfe, U+5e15, U+5eca, U+5f2f, U+5f7c, U+5fcc, U+6021, U+609f, U+60f9, U+6108, U+6148, U+6155, U+6170, U+61d2, U+6251, U+629b, U+62ab, U+62e8, U+62f3, U+6321, U+6350, U+6566, U+659c, U+65e8, U+6635, U+6655, U+6670, U+66f9, U+6734, U+679d, U+6851, U+6905, U+6b49, U+6b96, U+6c1b, U+6c41, U+6c6a, U+6c83, U+6cf3, U+6d9b, U+6dcb, U+6e1d, U+6e20-6e21, U+6eaa, U+6ee4, U+6ee9, U+6f58, U+70e4, U+722c, U+7262, U+7267, U+72b9, U+72e0, U+72ee, U+72f1, U+7334, U+73ab, U+7433, U+7470, U+758f, U+75d5, U+764c, U+7686, U+76c6, U+76fe, U+7720, U+77e2, U+7802, U+7816, U+788d, U+7891, U+7a00, U+7a9d, U+7b52, U+7bad, U+7c98, U+7cca, U+7eba, U+7eea, U+7ef5, U+7f1d, U+7f69, U+806a, U+809a, U+80bf, U+80c3, U+81c0, U+820c, U+82ac, U+82af, U+82cd, U+82d7, U+838e, U+839e, U+8404, U+84b8, U+852c, U+8587, U+85aa, U+8650, U+8679, U+86c7, U+8702, U+87ba, U+886b, U+8870, U+8c10, U+8c23, U+8c6b, U+8d3e, U+8d4b-8d4c, U+8d64, U+8d6b, U+8d74, U+8e29, U+8f69, U+8f74, U+8fb0, U+8fdf, U+901b, U+9038, U+9093, U+90aa, U+9171, U+9489, U+94ae, U+94c3, U+9508, U+9510, U+9601, U+9614, U+9675, U+97f5, U+9888, U+98d8, U+9971, U+9aa4, U+9e3f, U+9e45, U+9e4f, U+9e70, U+9f7f, U+e715&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.108.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.109.ttf  --unicodes=<span class="string">&#x27;U+a5, U+2022, U+2192, U+2605, U+4e11, U+4e22, U+4e32, U+4f0d, U+4f0f, U+4f69, U+4ff1, U+50b2, U+5154, U+51dd, U+51f0, U+5211, U+5269, U+533f, U+5366-5367, U+5389, U+5413, U+5440, U+5446, U+5561, U+574a, U+5751, U+57ab, U+5806, U+5821, U+582a, U+58f3, U+5938, U+5948, U+5978, U+59d1, U+5a03, U+5a07, U+5ac1, U+5acc, U+5ae9, U+5bb4, U+5bc4, U+5c3f, U+5e3d, U+5e7d, U+5f92, U+5faa, U+5fe0, U+5ffd, U+6016, U+60a0, U+60dc, U+60e8, U+614e, U+6212, U+6284, U+62c6, U+62d3-62d4, U+63f4, U+642c, U+6478, U+6491-6492, U+64e6, U+6591, U+65a4, U+664b, U+6735, U+6746, U+67f1, U+67f3, U+6842, U+68af, U+68c9, U+68cb, U+6a31, U+6b3a, U+6bc1, U+6c0f, U+6c27, U+6c57, U+6cc4, U+6ce5, U+6d2a, U+6d66, U+6d69, U+6daf, U+6e58, U+6ecb, U+6ef4, U+707e, U+7092, U+70ab, U+71d5, U+7275, U+7384, U+73b2, U+7434, U+74e6, U+74f7, U+75bc, U+76c8, U+76d0, U+7709, U+77ac, U+7855, U+78a7, U+78c1, U+7a77, U+7b79, U+7c92, U+7cae, U+7cd5, U+7ea4, U+7eb5, U+7ebd, U+7f5a, U+7fd4, U+7ffc, U+8083, U+8096, U+80a0, U+80d6, U+80de, U+8102, U+8109, U+810f, U+8179, U+8292, U+82b3, U+8352, U+8361, U+83cc, U+841d, U+8461, U+8482, U+8521, U+857e, U+866b, U+8776, U+8896, U+889c, U+88f8, U+8a9e, U+8bc8, U+8bf8, U+8c0b, U+8c28, U+8d2b, U+8d2f, U+8d37, U+8d3a, U+8d54, U+8dc3, U+8dcc, U+8df5, U+8e0f, U+8e48, U+8f86, U+8f88, U+8f9e, U+8fc1, U+8fc8, U+8feb, U+9065, U+90a6, U+90bb, U+90c1, U+94dc, U+9521, U+9676, U+96d5, U+970d, U+9897, U+997c, U+9a70, U+9a76, U+9a9a, U+9ad4, U+9e23, U+9e7f, U+9f3b, U+e675, U+e6b9, U+ffe5&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.109.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.110.ttf  --unicodes=<span class="string">&#x27;U+300c-300d, U+4e54, U+4e58, U+4e95, U+4ec1, U+4f2f, U+4f38, U+4fa3, U+4fca, U+503e, U+5141, U+5144, U+517c, U+51cc, U+51ed, U+5242, U+52b2, U+52d2, U+52e4, U+540a, U+5439, U+5448, U+5496, U+54ed, U+5565, U+5761, U+5766, U+58ee, U+593a, U+594b, U+594f, U+5954, U+5996, U+59c6, U+59ff, U+5b64, U+5bff, U+5c18, U+5c1d, U+5c97, U+5ca9, U+5cb8, U+5e9f, U+5ec9, U+5f04, U+5f7b, U+5fa1, U+5fcd, U+6012, U+60a6, U+60ac, U+60b2, U+60ef, U+626e, U+6270, U+6276, U+62d6, U+62dc, U+6316, U+632f, U+633a, U+6355, U+63aa, U+6447, U+649e, U+64c5, U+654c, U+65c1, U+65cb, U+65e6, U+6606, U+6731, U+675c, U+67cf, U+67dc, U+6846, U+6b8b, U+6beb, U+6c61, U+6c88, U+6cbf, U+6cdb, U+6cea, U+6d45, U+6d53, U+6d74, U+6d82, U+6da8, U+6db5, U+6deb, U+6eda, U+6ee8, U+6f0f, U+706d, U+708e, U+70ae, U+70bc, U+70c2, U+70e6, U+7237-7238, U+72fc, U+730e, U+731b, U+739b, U+73bb, U+7483, U+74dc, U+74f6, U+7586, U+7626, U+775b, U+77ff, U+788e, U+78b0, U+7956, U+7965, U+79e6, U+7af9, U+7bee, U+7c97, U+7eb1, U+7eb7, U+7ed1, U+7ed5, U+7f6a, U+7f72, U+7fbd, U+8017, U+808c, U+80a9, U+80c6, U+80ce, U+8150, U+8170, U+819c, U+820d, U+8230, U+8239, U+827e, U+8377, U+8389, U+83b2, U+8428, U+8463, U+867e, U+88c2, U+88d9, U+8986, U+8bca, U+8bde, U+8c13, U+8c8c, U+8d21, U+8d24, U+8d56, U+8d60, U+8d8b, U+8db4, U+8e2a, U+8f68, U+8f89, U+8f9b, U+8fa8, U+8fbd, U+9003, U+90ce, U+90ed, U+9189, U+94bb, U+9505, U+95f9, U+963b, U+9655, U+966a, U+9677, U+96fe, U+9896, U+99a8, U+9a71, U+9a82, U+9a91, U+9b45, U+9ece, U+9f20, U+feff, U+ff0d&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.110.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.111.ttf  --unicodes=<span class="string">&#x27;U+4e4c, U+4e88, U+4ea1, U+4ea6, U+4ed3-4ed4, U+4eff, U+4f30, U+4fa7, U+4fc4, U+4fd7, U+500d, U+504f, U+5076-5077, U+517d, U+5192, U+51c9, U+51ef, U+5238, U+5251, U+526a, U+52c7, U+52df, U+52ff, U+53a6, U+53a8, U+53ec, U+5410, U+559d, U+55b7, U+5634, U+573e, U+5783, U+585e, U+586b, U+58a8, U+5999, U+59d3, U+5a1c, U+5a46, U+5b54-5b55, U+5b85, U+5b8b, U+5b8f, U+5bbf, U+5bd2, U+5c16, U+5c24, U+5e05, U+5e45, U+5e7c, U+5e84, U+5f03, U+5f1f, U+5f31, U+5f84, U+5f90, U+5fbd, U+5fc6, U+5fd9, U+5fe7, U+6052, U+6062, U+6089, U+60a3, U+60d1, U+6167, U+622a, U+6234, U+624e, U+6269, U+626c, U+62b5, U+62d2, U+6325, U+63e1, U+643a, U+6446, U+6562, U+656c, U+65e2, U+65fa, U+660c, U+6628, U+6652, U+6668, U+6676, U+66fc, U+66ff, U+6717, U+676d, U+67aa, U+67d4, U+6843, U+6881, U+68d2, U+695a, U+69fd, U+6a2a, U+6b8a, U+6c60, U+6c64, U+6c9f, U+6caa, U+6cc9, U+6ce1, U+6cfd, U+6d1b, U+6d1e, U+6d6e, U+6de1, U+6e10, U+6e7f, U+6f5c, U+704c, U+7070, U+7089, U+70b8, U+718a, U+71c3, U+723d, U+732a, U+73cd, U+7518, U+756a, U+75af, U+75be, U+75c7, U+76d2, U+76d7, U+7763, U+78e8, U+795d, U+79df, U+7c4d, U+7d2f, U+7ee9, U+7f13, U+7f8a, U+8000, U+8010, U+80af, U+80f6, U+80f8, U+8212, U+8273, U+82f9, U+83ab, U+83b1, U+83f2, U+8584, U+871c, U+8861, U+888b, U+88c1, U+88e4, U+8bd1, U+8bf1, U+8c31, U+8d5a, U+8d75-8d76, U+8de8, U+8f85, U+8fa3, U+8fc5, U+9006, U+903c, U+904d, U+9075, U+9178, U+9274, U+950b, U+9526, U+95ea, U+9636, U+9686, U+978b, U+987f, U+9a7e, U+9b42, U+9e1f, U+9ea6, U+9f13, U+9f84, U+ff5e&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.111.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.112.ttf  --unicodes=<span class="string">&#x27;U+23, U+3d, U+4e01, U+4e39, U+4e73, U+4ecd, U+4ed9, U+4eea, U+4f0a, U+4f1f, U+4f5b, U+4fa0, U+4fc3, U+501f, U+50a8, U+515a, U+5175, U+51a0, U+51c0, U+51e1, U+51e4, U+5200, U+520a, U+5224, U+523a, U+52aa, U+52b1, U+52b3, U+5348, U+5353, U+5360, U+5371, U+5377, U+539a, U+541b, U+5434, U+547c, U+54e6, U+5510, U+5531, U+5609, U+56f0, U+56fa, U+5733, U+574f, U+5851, U+5854, U+5899, U+58c1, U+592e, U+5939, U+5976, U+5986, U+59bb, U+5a18, U+5a74, U+5b59, U+5b87, U+5b97, U+5ba0, U+5bab, U+5bbd-5bbe, U+5bf8, U+5c0a, U+5c3a, U+5c4a, U+5e16, U+5e1d, U+5e2d, U+5e8a, U+6015, U+602a, U+6050, U+6069, U+6162, U+61c2, U+6293, U+6297, U+62b1, U+62bd, U+62df, U+62fc, U+6302, U+635f, U+638c, U+63ed, U+6458, U+6469, U+6563, U+6620, U+6653, U+6696-6697, U+66dd, U+675f, U+676f-6770, U+67d0, U+67d3, U+684c, U+6865, U+6885, U+68b0, U+68ee, U+690d, U+6b23, U+6b32, U+6bd5, U+6c89, U+6d01, U+6d25, U+6d89, U+6da6, U+6db2, U+6df7, U+6ed1, U+6f02, U+70c8, U+70df, U+70e7, U+7126, U+7236, U+7259, U+731c, U+745e, U+74e3, U+751a, U+751c, U+7532, U+7545, U+75db, U+7761, U+7a0d, U+7b51, U+7ca4, U+7cd6, U+7d2b, U+7ea0, U+7eb9, U+7ed8, U+7f18, U+7f29, U+8033, U+804a, U+80a4-80a5, U+80e1, U+817f, U+829d, U+82e6, U+8336, U+840c, U+8499, U+864e, U+8651, U+865a, U+88ad, U+89e6, U+8bd7, U+8bfa, U+8c37, U+8d25, U+8d38, U+8ddd, U+8fea, U+9010, U+9012, U+906d, U+907f-9080, U+90d1, U+9177, U+91ca, U+94fa, U+9501, U+9634-9635, U+9694, U+9707, U+9738, U+9769, U+9a7b, U+9a97, U+9aa8, U+9b3c, U+9c81, U+9ed8&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.112.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.113.ttf  --unicodes=<span class="string">&#x27;U+26, U+3c, U+d7, U+4e4e, U+4e61, U+4e71, U+4ebf, U+4ee4, U+4f26, U+5012, U+51ac, U+51b0, U+51b2, U+51b7, U+5218, U+521a, U+5220, U+5237, U+523b, U+526f, U+5385, U+53bf, U+53e5, U+53eb, U+53f3, U+53f6, U+5409, U+5438, U+54c8, U+54e5, U+552f, U+5584, U+5706, U+5723, U+5750, U+575a, U+5987-5988, U+59b9, U+59d0, U+59d4, U+5b88, U+5b9c, U+5bdf, U+5bfb, U+5c01, U+5c04, U+5c3e, U+5c4b, U+5c4f, U+5c9b, U+5cf0, U+5ddd, U+5de6, U+5de8, U+5e01, U+5e78, U+5e7b, U+5e9c, U+5ead, U+5ef6, U+5f39, U+5fd8, U+6000, U+6025, U+604b, U+6076, U+613f, U+6258, U+6263, U+6267, U+6298, U+62a2, U+62e5, U+62ec, U+6311, U+6377, U+6388-6389, U+63a2, U+63d2, U+641e, U+642d, U+654f, U+6551, U+6597, U+65cf, U+65d7, U+65e7, U+6682, U+66f2, U+671d, U+672b, U+6751, U+6768, U+6811, U+6863, U+6982, U+6bd2, U+6cf0, U+6d0b, U+6d17, U+6d59, U+6dd8, U+6dfb, U+6e7e, U+6f6e, U+6fb3, U+706f, U+719f, U+72af, U+72d0, U+72d7, U+732b, U+732e, U+7389, U+73e0, U+7530, U+7687, U+76d6, U+76db, U+7840, U+786c, U+79cb, U+79d2, U+7a0e, U+7a33, U+7a3f, U+7a97, U+7ade-7adf, U+7b26, U+7e41, U+7ec3, U+7f3a, U+8089, U+80dc, U+811a, U+8131, U+8138, U+821e, U+8349, U+83dc, U+8457, U+867d, U+86cb, U+8a89, U+8ba8, U+8bad, U+8bef, U+8bfe, U+8c6a, U+8d1d, U+8d4f, U+8d62, U+8dd1, U+8df3, U+8f6e, U+8ff9, U+900f, U+9014, U+9057, U+9192, U+91ce, U+9488, U+94a2, U+9547, U+955c, U+95f2, U+9644, U+964d, U+96c4-96c5, U+96e8, U+96f6-96f7, U+9732, U+9759, U+9760, U+987a, U+989c, U+9910, U+996d-996e, U+9b54, U+9e21, U+9ebb, U+9f50&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.113.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.114.ttf  --unicodes=<span class="string">&#x27;U+7e, U+2026, U+4e03, U+4e25, U+4e30, U+4e34, U+4e45, U+4e5d, U+4e89, U+4eae, U+4ed8, U+4f11, U+4f19, U+4f24, U+4f34, U+4f59, U+4f73, U+4f9d, U+4fb5, U+5047, U+505c, U+5170, U+519c, U+51cf, U+5267, U+5356, U+5374, U+5382, U+538b, U+53e6, U+5426, U+542b, U+542f, U+5462, U+5473, U+554a, U+5566, U+5708, U+571f, U+5757, U+57df, U+57f9, U+5802, U+590f, U+591c, U+591f, U+592b, U+5965, U+5979, U+5a01, U+5a5a, U+5b69, U+5b81, U+5ba1, U+5ba3, U+5c3c, U+5c42, U+5c81, U+5de7, U+5dee, U+5e0c, U+5e10, U+5e55, U+5e86, U+5e8f, U+5ea7, U+5f02, U+5f52, U+5f81, U+5ff5, U+60ca, U+60e0, U+6279, U+62c5, U+62ff, U+63cf, U+6444, U+64cd, U+653b, U+65bd, U+65e9, U+665a, U+66b4, U+66fe, U+6728, U+6740, U+6742, U+677e, U+67b6, U+680f, U+68a6, U+68c0, U+699c, U+6b4c, U+6b66, U+6b7b, U+6bcd, U+6bdb, U+6c38, U+6c47, U+6c49, U+6cb3, U+6cb9, U+6ce2, U+6d32, U+6d3e, U+6d4f, U+6e56, U+6fc0, U+7075, U+7206, U+725b, U+72c2, U+73ed, U+7565, U+7591, U+7597, U+75c5, U+76ae, U+76d1, U+76df, U+7834, U+7968, U+7981, U+79c0, U+7a7f, U+7a81, U+7ae5, U+7b14, U+7c89, U+7d27, U+7eaf, U+7eb3, U+7eb8, U+7ec7, U+7ee7, U+7eff, U+7f57, U+7ffb, U+805a, U+80a1, U+822c, U+82cf, U+82e5, U+8363, U+836f, U+84dd, U+878d, U+8840, U+8857, U+8863, U+8865, U+8b66, U+8bb2, U+8bda, U+8c01, U+8c08, U+8c46, U+8d1f, U+8d35, U+8d5b, U+8d5e, U+8da3, U+8ddf, U+8f93, U+8fdd, U+8ff0, U+8ff7, U+8ffd, U+9000, U+9047, U+9152, U+949f, U+94c1, U+94f6, U+9646, U+9648, U+9669, U+969c, U+96ea, U+97e9, U+987b, U+987e, U+989d, U+9970, U+9986, U+9c7c, U+9c9c&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.114.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.115.ttf  --unicodes=<span class="string">&#x27;U+25, U+4e14, U+4e1d, U+4e3d, U+4e49, U+4e60, U+4e9a, U+4eb2, U+4ec5, U+4efd, U+4f3c, U+4f4f, U+4f8b, U+4fbf, U+5019, U+5145, U+514b, U+516b, U+516d, U+5174, U+5178, U+517b, U+5199, U+519b, U+51b3, U+51b5, U+5207, U+5212, U+5219, U+521d, U+52bf, U+533b, U+5343, U+5347, U+534a, U+536b, U+5370, U+53e4, U+53f2, U+5403, U+542c, U+547d, U+54a8, U+54cd, U+54ea, U+552e, U+56f4, U+5747, U+575b, U+5883, U+589e, U+5931, U+5947, U+5956-5957, U+5a92, U+5b63, U+5b83, U+5ba4, U+5bb3, U+5bcc, U+5c14, U+5c1a, U+5c3d, U+5c40, U+5c45, U+5c5e, U+5df4, U+5e72, U+5e95, U+5f80, U+5f85, U+5fb7, U+5fd7, U+601d, U+626b, U+627f, U+62c9, U+62cd, U+6309, U+63a7, U+6545, U+65ad, U+65af, U+65c5, U+666e, U+667a, U+670b, U+671b, U+674e, U+677f, U+6781, U+6790, U+6797, U+6821, U+6838-6839, U+697c, U+6b27, U+6b62, U+6bb5, U+6c7d, U+6c99, U+6d4e, U+6d6a, U+6e29, U+6e2f, U+6ee1, U+6f14, U+6f2b, U+72b6, U+72ec, U+7387, U+7533, U+753b, U+76ca, U+76d8, U+7701, U+773c, U+77ed, U+77f3, U+7814, U+793c, U+79bb, U+79c1, U+79d8, U+79ef, U+79fb, U+7a76, U+7b11, U+7b54, U+7b56, U+7b97, U+7bc7, U+7c73, U+7d20, U+7eaa, U+7ec8, U+7edd, U+7eed, U+7efc, U+7fa4, U+804c, U+8058, U+80cc, U+8111, U+817e, U+826f, U+8303, U+843d, U+89c9, U+89d2, U+8ba2, U+8bbf, U+8bc9, U+8bcd, U+8be6, U+8c22, U+8c61, U+8d22, U+8d26-8d27, U+8d8a, U+8f6f, U+8f7b, U+8f83, U+8f91, U+8fb9, U+8fd4, U+8fdc, U+9002, U+94b1, U+9519, U+95ed, U+961f, U+9632-9633, U+963f, U+968f-9690, U+96be, U+9876, U+9884, U+98de, U+9988, U+9999, U+9ec4, U+ff1b&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.115.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.116.ttf  --unicodes=<span class="string">&#x27;U+2b, U+40, U+3000, U+300a-300b, U+4e16, U+4e66, U+4e70, U+4e91-4e92, U+4e94, U+4e9b, U+4ec0, U+4eca, U+4f01, U+4f17-4f18, U+4f46, U+4f4e, U+4f9b, U+4fee, U+503c, U+5065, U+50cf, U+513f, U+5148, U+518d, U+51c6, U+51e0, U+5217, U+529e-529f, U+5341, U+534f, U+5361, U+5386, U+53c2, U+53c8, U+53cc, U+53d7-53d8, U+5404, U+5411, U+5417, U+5427, U+5468, U+559c, U+5668, U+56e0, U+56e2, U+56ed, U+5740, U+57fa, U+58eb, U+5904, U+592a, U+59cb, U+5a31, U+5b58, U+5b9d, U+5bc6, U+5c71, U+5dde, U+5df1, U+5e08, U+5e26, U+5e2e, U+5e93, U+5e97, U+5eb7, U+5f15, U+5f20, U+5f3a, U+5f62, U+5f69, U+5f88, U+5f8b, U+5fc5, U+600e, U+620f, U+6218, U+623f, U+627e, U+628a, U+62a4, U+62db, U+62e9, U+6307, U+6362, U+636e, U+64ad, U+6539, U+653f, U+6548, U+6574, U+6613, U+6625, U+663e, U+666f, U+672a, U+6750, U+6784, U+6a21, U+6b3e, U+6b65, U+6bcf, U+6c11, U+6c5f, U+6d4b, U+6df1, U+706b, U+7167, U+724c, U+738b, U+73a9, U+73af, U+7403, U+7537, U+754c, U+7559, U+767d, U+7740, U+786e, U+795e, U+798f, U+79f0, U+7aef, U+7b7e, U+7bb1, U+7ea2, U+7ea6, U+7ec4, U+7ec6, U+7ecd, U+7edc, U+7ef4, U+8003, U+80b2, U+81f3-81f4, U+822a, U+827a, U+82f1, U+83b7, U+8425, U+89c2, U+89c8, U+8ba9, U+8bb8, U+8bc6, U+8bd5, U+8be2, U+8be5, U+8bed, U+8c03, U+8d23, U+8d2d, U+8d34, U+8d70, U+8db3, U+8fbe, U+8fce, U+8fd1, U+8fde, U+9001, U+901f-9020, U+90a3, U+914d, U+91c7, U+94fe, U+9500, U+952e, U+9605, U+9645, U+9662, U+9664, U+9700, U+9752, U+975e, U+97f3, U+9879, U+9886, U+98df, U+9a6c, U+9a8c, U+9ed1, U+9f99&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.116.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.117.ttf  --unicodes=<span class="string">&#x27;U+4e, U+201c-201d, U+3010-3011, U+4e07, U+4e1c, U+4e24, U+4e3e, U+4e48, U+4e50, U+4e5f, U+4e8b-4e8c, U+4ea4, U+4eab-4eac, U+4ecb, U+4ece, U+4ed6, U+4ee3, U+4ef6-4ef7, U+4efb, U+4f20, U+4f55, U+4f7f, U+4fdd, U+505a, U+5143, U+5149, U+514d, U+5171, U+5177, U+518c, U+51fb, U+521b, U+5229, U+522b, U+52a9, U+5305, U+5317, U+534e, U+5355, U+5357, U+535a, U+5373, U+539f, U+53bb, U+53ca, U+53cd, U+53d6, U+53e3, U+53ea, U+53f0, U+5458, U+5546, U+56db, U+573a, U+578b, U+57ce, U+58f0, U+590d, U+5934, U+5973, U+5b57, U+5b8c, U+5b98, U+5bb9, U+5bfc, U+5c06, U+5c11, U+5c31, U+5c55, U+5df2, U+5e03, U+5e76, U+5e94, U+5efa, U+5f71, U+5f97, U+5feb, U+6001, U+603b, U+60f3, U+611f, U+6216, U+624d, U+6253, U+6295, U+6301, U+6392, U+641c, U+652f, U+653e, U+6559, U+6599, U+661f, U+671f, U+672f, U+6761, U+67e5, U+6807, U+6837, U+683c, U+6848, U+6b22, U+6b64, U+6bd4, U+6c14, U+6c34, U+6c42, U+6ca1, U+6d41, U+6d77, U+6d88, U+6e05, U+6e38, U+6e90, U+7136, U+7231, U+7531, U+767e, U+76ee, U+76f4, U+771f, U+7801, U+793a, U+79cd, U+7a0b, U+7a7a, U+7acb, U+7ae0, U+7b2c, U+7b80, U+7ba1, U+7cbe, U+7d22, U+7ea7, U+7ed3, U+7ed9, U+7edf, U+7f16, U+7f6e, U+8001, U+800c, U+8272, U+8282, U+82b1, U+8350, U+88ab, U+88c5, U+897f, U+89c1, U+89c4, U+89e3, U+8a00, U+8ba1, U+8ba4, U+8bae-8bb0, U+8bbe, U+8bc1, U+8bc4, U+8bfb, U+8d28, U+8d39, U+8d77, U+8d85, U+8def, U+8eab, U+8f66, U+8f6c, U+8f7d, U+8fd0, U+9009, U+90ae, U+90fd, U+91cc-91cd, U+91cf, U+95fb, U+9650, U+96c6, U+9891, U+98ce, U+ff1f&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.117.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.118.ttf  --unicodes=<span class="string">&#x27;U+d, U+3e, U+5f, U+7c, U+a0, U+a9, U+4e09-4e0b, U+4e0d-4e0e, U+4e13, U+4e1a, U+4e2a, U+4e3a-4e3b, U+4e4b, U+4e86, U+4e8e, U+4ea7, U+4eba, U+4ee5, U+4eec, U+4f1a, U+4f4d, U+4f53, U+4f5c, U+4f60, U+4fe1, U+5165, U+5168, U+516c, U+5173, U+5176, U+5185, U+51fa, U+5206, U+5230, U+5236, U+524d, U+529b, U+52a0-52a1, U+52a8, U+5316, U+533a, U+53cb, U+53d1, U+53ef, U+53f7-53f8, U+5408, U+540c-540e, U+544a, U+548c, U+54c1, U+56de, U+56fd-56fe, U+5728, U+5730, U+5907, U+5916, U+591a, U+5927, U+5929, U+597d, U+5982, U+5b50, U+5b66, U+5b89, U+5b9a, U+5b9e, U+5ba2, U+5bb6, U+5bf9, U+5c0f, U+5de5, U+5e02, U+5e38, U+5e73-5e74, U+5e7f, U+5ea6, U+5f00, U+5f0f, U+5f53, U+5f55, U+5fae, U+5fc3, U+6027, U+606f, U+60a8, U+60c5, U+610f, U+6210-6211, U+6237, U+6240, U+624b, U+6280, U+62a5, U+63a5, U+63a8, U+63d0, U+6536, U+6570, U+6587, U+65b9, U+65e0, U+65f6, U+660e, U+662d, U+662f, U+66f4, U+6700, U+670d, U+672c, U+673a, U+6743, U+6765, U+679c, U+682a, U+6b21, U+6b63, U+6cbb, U+6cd5, U+6ce8, U+6d3b, U+70ed, U+7247-7248, U+7269, U+7279, U+73b0, U+7406, U+751f, U+7528, U+7535, U+767b, U+76f8, U+770b, U+77e5, U+793e, U+79d1, U+7ad9, U+7b49, U+7c7b, U+7cfb, U+7ebf, U+7ecf, U+7f8e, U+8005, U+8054, U+80fd, U+81ea, U+85cf, U+884c, U+8868, U+8981, U+89c6, U+8bba, U+8bdd, U+8bf4, U+8bf7, U+8d44, U+8fc7, U+8fd8-8fd9, U+8fdb, U+901a, U+9053, U+90e8, U+91d1, U+957f, U+95e8, U+95ee, U+95f4, U+9762, U+9875, U+9898, U+9996, U+9ad8, U+ff01, U+ff08-ff09&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.118.ttf</span><br><span class="line">pyftsubset HarmonyOS_Sans_SC_Regular.ttf --output-file=HarmonyOS_Sans_SC_Regular.119.ttf  --unicodes=<span class="string">&#x27;U+20-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2, U+b7, U+bb, U+df-e5, U+e7-ea, U+ec-ed, U+f1-f4, U+f6, U+f9-fa, U+fc, U+101, U+103, U+113, U+12b, U+148, U+14d, U+16b, U+1ce, U+1d0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+2039-203a, U+2122, U+3001-3002, U+3042, U+3044, U+3046, U+3048, U+304a-3055, U+3057, U+3059-305b, U+305d, U+305f-3061, U+3063-306b, U+306d-3073, U+3075-3076, U+3078-3079, U+307b, U+307e-307f, U+3081-308d, U+308f, U+3092-3093, U+30a1-30a4, U+30a6-30bb, U+30bd, U+30bf-30c1, U+30c3-30c4, U+30c6-30cb, U+30cd-30d7, U+30d9-30e1, U+30e3-30e7, U+30e9-30ed, U+30ef, U+30f3, U+30fb-30fc, U+4e00, U+4e2d, U+65b0, U+65e5, U+6708-6709, U+70b9, U+7684, U+7f51, U+ff0c, U+ff0e, U+ff1a&#x27;</span></span><br><span class="line">woff2_compress HarmonyOS_Sans_SC_Regular.119.ttf</span><br></pre></td></tr></table></figure><h3 id="对应的-CSS-样式文件"><a href="#对应的-CSS-样式文件" class="headerlink" title="对应的 CSS 样式文件"></a>对应的 CSS 样式文件</h3><blockquote><p>注意：<br>1.如您使用的是其他字体，请将代码复制到编辑器，并将 CSS 中的 <code>HarmonyOS_Sans_SC_Regular</code> 和 <code>HarmonyOSSans-Regular</code> 替换为您的字体名称。</p></blockquote><figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br><span class="line">118</span><br><span class="line">119</span><br><span class="line">120</span><br><span class="line">121</span><br><span class="line">122</span><br><span class="line">123</span><br><span class="line">124</span><br><span class="line">125</span><br><span class="line">126</span><br><span class="line">127</span><br><span class="line">128</span><br><span class="line">129</span><br><span class="line">130</span><br><span class="line">131</span><br><span class="line">132</span><br><span class="line">133</span><br><span class="line">134</span><br><span class="line">135</span><br><span class="line">136</span><br><span class="line">137</span><br><span class="line">138</span><br><span class="line">139</span><br><span class="line">140</span><br><span class="line">141</span><br><span class="line">142</span><br><span class="line">143</span><br><span class="line">144</span><br><span class="line">145</span><br><span class="line">146</span><br><span class="line">147</span><br><span class="line">148</span><br><span class="line">149</span><br><span class="line">150</span><br><span class="line">151</span><br><span class="line">152</span><br><span class="line">153</span><br><span class="line">154</span><br><span class="line">155</span><br><span class="line">156</span><br><span class="line">157</span><br><span class="line">158</span><br><span class="line">159</span><br><span class="line">160</span><br><span class="line">161</span><br><span class="line">162</span><br><span class="line">163</span><br><span class="line">164</span><br><span class="line">165</span><br><span class="line">166</span><br><span class="line">167</span><br><span class="line">168</span><br><span class="line">169</span><br><span class="line">170</span><br><span class="line">171</span><br><span class="line">172</span><br><span class="line">173</span><br><span class="line">174</span><br><span class="line">175</span><br><span class="line">176</span><br><span class="line">177</span><br><span class="line">178</span><br><span class="line">179</span><br><span class="line">180</span><br><span class="line">181</span><br><span class="line">182</span><br><span class="line">183</span><br><span class="line">184</span><br><span class="line">185</span><br><span class="line">186</span><br><span class="line">187</span><br><span class="line">188</span><br><span class="line">189</span><br><span class="line">190</span><br><span class="line">191</span><br><span class="line">192</span><br><span class="line">193</span><br><span class="line">194</span><br><span class="line">195</span><br><span class="line">196</span><br><span class="line">197</span><br><span class="line">198</span><br><span class="line">199</span><br><span class="line">200</span><br><span class="line">201</span><br><span class="line">202</span><br><span class="line">203</span><br><span class="line">204</span><br><span class="line">205</span><br><span class="line">206</span><br><span class="line">207</span><br><span class="line">208</span><br><span class="line">209</span><br><span class="line">210</span><br><span class="line">211</span><br><span class="line">212</span><br><span class="line">213</span><br><span class="line">214</span><br><span class="line">215</span><br><span class="line">216</span><br><span class="line">217</span><br><span class="line">218</span><br><span class="line">219</span><br><span class="line">220</span><br><span class="line">221</span><br><span class="line">222</span><br><span class="line">223</span><br><span class="line">224</span><br><span class="line">225</span><br><span class="line">226</span><br><span class="line">227</span><br><span class="line">228</span><br><span class="line">229</span><br><span class="line">230</span><br><span class="line">231</span><br><span class="line">232</span><br><span class="line">233</span><br><span class="line">234</span><br><span class="line">235</span><br><span class="line">236</span><br><span class="line">237</span><br><span class="line">238</span><br><span class="line">239</span><br><span class="line">240</span><br><span class="line">241</span><br><span class="line">242</span><br><span class="line">243</span><br><span class="line">244</span><br><span class="line">245</span><br><span class="line">246</span><br><span class="line">247</span><br><span class="line">248</span><br><span class="line">249</span><br><span class="line">250</span><br><span class="line">251</span><br><span class="line">252</span><br><span class="line">253</span><br><span class="line">254</span><br><span class="line">255</span><br><span class="line">256</span><br><span class="line">257</span><br><span class="line">258</span><br><span class="line">259</span><br><span class="line">260</span><br><span class="line">261</span><br><span class="line">262</span><br><span class="line">263</span><br><span class="line">264</span><br><span class="line">265</span><br><span class="line">266</span><br><span class="line">267</span><br><span class="line">268</span><br><span class="line">269</span><br><span class="line">270</span><br><span class="line">271</span><br><span class="line">272</span><br><span class="line">273</span><br><span class="line">274</span><br><span class="line">275</span><br><span class="line">276</span><br><span class="line">277</span><br><span class="line">278</span><br><span class="line">279</span><br><span class="line">280</span><br><span class="line">281</span><br><span class="line">282</span><br><span class="line">283</span><br><span class="line">284</span><br><span class="line">285</span><br><span class="line">286</span><br><span class="line">287</span><br><span class="line">288</span><br><span class="line">289</span><br><span class="line">290</span><br><span class="line">291</span><br><span class="line">292</span><br><span class="line">293</span><br><span class="line">294</span><br><span class="line">295</span><br><span class="line">296</span><br><span class="line">297</span><br><span class="line">298</span><br><span class="line">299</span><br><span class="line">300</span><br><span class="line">301</span><br><span class="line">302</span><br><span class="line">303</span><br><span class="line">304</span><br><span class="line">305</span><br><span class="line">306</span><br><span class="line">307</span><br><span class="line">308</span><br><span class="line">309</span><br><span class="line">310</span><br><span class="line">311</span><br><span class="line">312</span><br><span class="line">313</span><br><span class="line">314</span><br><span class="line">315</span><br><span class="line">316</span><br><span class="line">317</span><br><span class="line">318</span><br><span class="line">319</span><br><span class="line">320</span><br><span class="line">321</span><br><span class="line">322</span><br><span class="line">323</span><br><span class="line">324</span><br><span class="line">325</span><br><span class="line">326</span><br><span class="line">327</span><br><span class="line">328</span><br><span class="line">329</span><br><span class="line">330</span><br><span class="line">331</span><br><span class="line">332</span><br><span class="line">333</span><br><span class="line">334</span><br><span class="line">335</span><br><span class="line">336</span><br><span class="line">337</span><br><span class="line">338</span><br><span class="line">339</span><br><span class="line">340</span><br><span class="line">341</span><br><span class="line">342</span><br><span class="line">343</span><br><span class="line">344</span><br><span class="line">345</span><br><span class="line">346</span><br><span class="line">347</span><br><span class="line">348</span><br><span class="line">349</span><br><span class="line">350</span><br><span class="line">351</span><br><span class="line">352</span><br><span class="line">353</span><br><span class="line">354</span><br><span class="line">355</span><br><span class="line">356</span><br><span class="line">357</span><br><span class="line">358</span><br><span class="line">359</span><br><span class="line">360</span><br><span class="line">361</span><br><span class="line">362</span><br><span class="line">363</span><br><span class="line">364</span><br><span class="line">365</span><br><span class="line">366</span><br><span class="line">367</span><br><span class="line">368</span><br><span class="line">369</span><br><span class="line">370</span><br><span class="line">371</span><br><span class="line">372</span><br><span class="line">373</span><br><span class="line">374</span><br><span class="line">375</span><br><span class="line">376</span><br><span class="line">377</span><br><span class="line">378</span><br><span class="line">379</span><br><span class="line">380</span><br><span class="line">381</span><br><span class="line">382</span><br><span class="line">383</span><br><span class="line">384</span><br><span class="line">385</span><br><span class="line">386</span><br><span class="line">387</span><br><span class="line">388</span><br><span class="line">389</span><br><span class="line">390</span><br><span class="line">391</span><br><span class="line">392</span><br><span class="line">393</span><br><span class="line">394</span><br><span class="line">395</span><br><span class="line">396</span><br><span class="line">397</span><br><span class="line">398</span><br><span class="line">399</span><br><span class="line">400</span><br><span class="line">401</span><br><span class="line">402</span><br><span class="line">403</span><br><span class="line">404</span><br><span class="line">405</span><br><span class="line">406</span><br><span class="line">407</span><br><span class="line">408</span><br><span class="line">409</span><br><span class="line">410</span><br><span class="line">411</span><br><span class="line">412</span><br><span class="line">413</span><br><span class="line">414</span><br><span class="line">415</span><br><span class="line">416</span><br><span class="line">417</span><br><span class="line">418</span><br><span class="line">419</span><br><span class="line">420</span><br><span class="line">421</span><br><span class="line">422</span><br><span class="line">423</span><br><span class="line">424</span><br><span class="line">425</span><br><span class="line">426</span><br><span class="line">427</span><br><span class="line">428</span><br><span class="line">429</span><br><span class="line">430</span><br><span class="line">431</span><br><span class="line">432</span><br><span class="line">433</span><br><span class="line">434</span><br><span class="line">435</span><br><span class="line">436</span><br><span class="line">437</span><br><span class="line">438</span><br><span class="line">439</span><br><span class="line">440</span><br><span class="line">441</span><br><span class="line">442</span><br><span class="line">443</span><br><span class="line">444</span><br><span class="line">445</span><br><span class="line">446</span><br><span class="line">447</span><br><span class="line">448</span><br><span class="line">449</span><br><span class="line">450</span><br><span class="line">451</span><br><span class="line">452</span><br><span class="line">453</span><br><span class="line">454</span><br><span class="line">455</span><br><span class="line">456</span><br><span class="line">457</span><br><span class="line">458</span><br><span class="line">459</span><br><span class="line">460</span><br><span class="line">461</span><br><span class="line">462</span><br><span class="line">463</span><br><span class="line">464</span><br><span class="line">465</span><br><span class="line">466</span><br><span class="line">467</span><br><span class="line">468</span><br><span class="line">469</span><br><span class="line">470</span><br><span class="line">471</span><br><span class="line">472</span><br><span class="line">473</span><br><span class="line">474</span><br><span class="line">475</span><br><span class="line">476</span><br><span class="line">477</span><br><span class="line">478</span><br><span class="line">479</span><br><span class="line">480</span><br><span class="line">481</span><br><span class="line">482</span><br><span class="line">483</span><br><span class="line">484</span><br><span class="line">485</span><br><span class="line">486</span><br><span class="line">487</span><br><span class="line">488</span><br><span class="line">489</span><br><span class="line">490</span><br><span class="line">491</span><br><span class="line">492</span><br><span class="line">493</span><br><span class="line">494</span><br><span class="line">495</span><br><span class="line">496</span><br><span class="line">497</span><br><span class="line">498</span><br><span class="line">499</span><br><span class="line">500</span><br><span class="line">501</span><br><span class="line">502</span><br><span class="line">503</span><br><span class="line">504</span><br><span class="line">505</span><br><span class="line">506</span><br><span class="line">507</span><br><span class="line">508</span><br><span class="line">509</span><br><span class="line">510</span><br><span class="line">511</span><br><span class="line">512</span><br><span class="line">513</span><br><span class="line">514</span><br><span class="line">515</span><br><span class="line">516</span><br><span class="line">517</span><br><span class="line">518</span><br><span class="line">519</span><br><span class="line">520</span><br><span class="line">521</span><br><span class="line">522</span><br><span class="line">523</span><br><span class="line">524</span><br><span class="line">525</span><br><span class="line">526</span><br><span class="line">527</span><br><span class="line">528</span><br><span class="line">529</span><br><span class="line">530</span><br><span class="line">531</span><br><span class="line">532</span><br><span class="line">533</span><br><span class="line">534</span><br><span class="line">535</span><br><span class="line">536</span><br><span class="line">537</span><br><span class="line">538</span><br><span class="line">539</span><br><span class="line">540</span><br><span class="line">541</span><br><span class="line">542</span><br><span class="line">543</span><br><span class="line">544</span><br><span class="line">545</span><br><span class="line">546</span><br><span class="line">547</span><br><span class="line">548</span><br><span class="line">549</span><br><span class="line">550</span><br><span class="line">551</span><br><span class="line">552</span><br><span class="line">553</span><br><span class="line">554</span><br><span class="line">555</span><br><span class="line">556</span><br><span class="line">557</span><br><span class="line">558</span><br><span class="line">559</span><br><span class="line">560</span><br><span class="line">561</span><br><span class="line">562</span><br><span class="line">563</span><br><span class="line">564</span><br><span class="line">565</span><br><span class="line">566</span><br><span class="line">567</span><br><span class="line">568</span><br><span class="line">569</span><br><span class="line">570</span><br><span class="line">571</span><br><span class="line">572</span><br><span class="line">573</span><br><span class="line">574</span><br><span class="line">575</span><br><span class="line">576</span><br><span class="line">577</span><br><span class="line">578</span><br><span class="line">579</span><br><span class="line">580</span><br><span class="line">581</span><br><span class="line">582</span><br><span class="line">583</span><br><span class="line">584</span><br><span class="line">585</span><br><span class="line">586</span><br><span class="line">587</span><br><span class="line">588</span><br><span class="line">589</span><br><span class="line">590</span><br><span class="line">591</span><br><span class="line">592</span><br><span class="line">593</span><br><span class="line">594</span><br><span class="line">595</span><br><span class="line">596</span><br><span class="line">597</span><br><span class="line">598</span><br><span class="line">599</span><br><span class="line">600</span><br><span class="line">601</span><br><span class="line">602</span><br><span class="line">603</span><br><span class="line">604</span><br><span class="line">605</span><br><span class="line">606</span><br><span class="line">607</span><br><span class="line">608</span><br><span class="line">609</span><br><span class="line">610</span><br><span class="line">611</span><br><span class="line">612</span><br><span class="line">613</span><br><span class="line">614</span><br><span class="line">615</span><br><span class="line">616</span><br><span class="line">617</span><br><span class="line">618</span><br><span class="line">619</span><br><span class="line">620</span><br><span class="line">621</span><br><span class="line">622</span><br><span class="line">623</span><br><span class="line">624</span><br><span class="line">625</span><br><span class="line">626</span><br><span class="line">627</span><br><span class="line">628</span><br><span class="line">629</span><br><span class="line">630</span><br><span class="line">631</span><br><span class="line">632</span><br><span class="line">633</span><br><span class="line">634</span><br><span class="line">635</span><br><span class="line">636</span><br><span class="line">637</span><br><span class="line">638</span><br><span class="line">639</span><br><span class="line">640</span><br><span class="line">641</span><br><span class="line">642</span><br><span class="line">643</span><br><span class="line">644</span><br><span class="line">645</span><br><span class="line">646</span><br><span class="line">647</span><br><span class="line">648</span><br><span class="line">649</span><br><span class="line">650</span><br><span class="line">651</span><br><span class="line">652</span><br><span class="line">653</span><br><span class="line">654</span><br><span class="line">655</span><br><span class="line">656</span><br><span class="line">657</span><br><span class="line">658</span><br><span class="line">659</span><br><span class="line">660</span><br><span class="line">661</span><br><span class="line">662</span><br><span class="line">663</span><br><span class="line">664</span><br><span class="line">665</span><br><span class="line">666</span><br><span class="line">667</span><br><span class="line">668</span><br><span class="line">669</span><br><span class="line">670</span><br><span class="line">671</span><br><span class="line">672</span><br><span class="line">673</span><br><span class="line">674</span><br><span class="line">675</span><br><span class="line">676</span><br><span class="line">677</span><br><span class="line">678</span><br><span class="line">679</span><br><span class="line">680</span><br><span class="line">681</span><br><span class="line">682</span><br><span class="line">683</span><br><span class="line">684</span><br><span class="line">685</span><br><span class="line">686</span><br><span class="line">687</span><br><span class="line">688</span><br><span class="line">689</span><br><span class="line">690</span><br><span class="line">691</span><br><span class="line">692</span><br><span class="line">693</span><br><span class="line">694</span><br><span class="line">695</span><br><span class="line">696</span><br><span class="line">697</span><br><span class="line">698</span><br><span class="line">699</span><br><span class="line">700</span><br><span class="line">701</span><br><span class="line">702</span><br><span class="line">703</span><br><span class="line">704</span><br><span class="line">705</span><br><span class="line">706</span><br><span class="line">707</span><br><span class="line">708</span><br><span class="line">709</span><br><span class="line">710</span><br><span class="line">711</span><br><span class="line">712</span><br><span class="line">713</span><br><span class="line">714</span><br><span class="line">715</span><br><span class="line">716</span><br><span class="line">717</span><br><span class="line">718</span><br><span class="line">719</span><br><span class="line">720</span><br><span class="line">721</span><br><span class="line">722</span><br><span class="line">723</span><br><span class="line">724</span><br><span class="line">725</span><br><span class="line">726</span><br><span class="line">727</span><br><span class="line">728</span><br><span class="line">729</span><br><span class="line">730</span><br><span class="line">731</span><br><span class="line">732</span><br><span class="line">733</span><br><span class="line">734</span><br><span class="line">735</span><br><span class="line">736</span><br><span class="line">737</span><br><span class="line">738</span><br><span class="line">739</span><br><span class="line">740</span><br><span class="line">741</span><br><span class="line">742</span><br><span class="line">743</span><br><span class="line">744</span><br><span class="line">745</span><br><span class="line">746</span><br><span class="line">747</span><br><span class="line">748</span><br><span class="line">749</span><br><span class="line">750</span><br><span class="line">751</span><br><span class="line">752</span><br><span class="line">753</span><br><span class="line">754</span><br><span class="line">755</span><br><span class="line">756</span><br><span class="line">757</span><br><span class="line">758</span><br><span class="line">759</span><br><span class="line">760</span><br><span class="line">761</span><br><span class="line">762</span><br><span class="line">763</span><br><span class="line">764</span><br><span class="line">765</span><br><span class="line">766</span><br><span class="line">767</span><br><span class="line">768</span><br><span class="line">769</span><br><span class="line">770</span><br><span class="line">771</span><br><span class="line">772</span><br><span class="line">773</span><br><span class="line">774</span><br><span class="line">775</span><br><span class="line">776</span><br><span class="line">777</span><br><span class="line">778</span><br><span class="line">779</span><br><span class="line">780</span><br><span class="line">781</span><br><span class="line">782</span><br><span class="line">783</span><br><span class="line">784</span><br><span class="line">785</span><br><span class="line">786</span><br><span class="line">787</span><br><span class="line">788</span><br><span class="line">789</span><br><span class="line">790</span><br><span class="line">791</span><br><span class="line">792</span><br><span class="line">793</span><br><span class="line">794</span><br><span class="line">795</span><br><span class="line">796</span><br><span class="line">797</span><br><span class="line">798</span><br><span class="line">799</span><br><span class="line">800</span><br><span class="line">801</span><br><span class="line">802</span><br><span class="line">803</span><br><span class="line">804</span><br><span class="line">805</span><br><span class="line">806</span><br><span class="line">807</span><br><span class="line">808</span><br><span class="line">809</span><br><span class="line">810</span><br><span class="line">811</span><br><span class="line">812</span><br><span class="line">813</span><br><span class="line">814</span><br><span class="line">815</span><br><span class="line">816</span><br><span class="line">817</span><br><span class="line">818</span><br><span class="line">819</span><br><span class="line">820</span><br><span class="line">821</span><br><span class="line">822</span><br><span class="line">823</span><br><span class="line">824</span><br><span class="line">825</span><br><span class="line">826</span><br><span class="line">827</span><br><span class="line">828</span><br><span class="line">829</span><br><span class="line">830</span><br><span class="line">831</span><br><span class="line">832</span><br><span class="line">833</span><br><span class="line">834</span><br><span class="line">835</span><br><span class="line">836</span><br><span class="line">837</span><br><span class="line">838</span><br><span class="line">839</span><br><span class="line">840</span><br><span class="line">841</span><br><span class="line">842</span><br><span class="line">843</span><br><span class="line">844</span><br><span class="line">845</span><br><span class="line">846</span><br><span class="line">847</span><br><span class="line">848</span><br><span class="line">849</span><br><span class="line">850</span><br><span class="line">851</span><br><span class="line">852</span><br><span class="line">853</span><br><span class="line">854</span><br><span class="line">855</span><br><span class="line">856</span><br><span class="line">857</span><br><span class="line">858</span><br><span class="line">859</span><br><span class="line">860</span><br><span class="line">861</span><br><span class="line">862</span><br><span class="line">863</span><br><span class="line">864</span><br><span class="line">865</span><br><span class="line">866</span><br><span class="line">867</span><br><span class="line">868</span><br><span class="line">869</span><br><span class="line">870</span><br><span class="line">871</span><br><span class="line">872</span><br><span class="line">873</span><br><span class="line">874</span><br><span class="line">875</span><br><span class="line">876</span><br></pre></td><td class="code"><pre><span class="line"><span class="selector-tag">body</span> &#123;</span><br><span class="line">  -webkit-<span class="attribute">font-smoothing</span>: antialiased;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [4] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.4.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">1</span>f1e9-<span class="number">1</span>f1f5, U+<span class="number">1</span>f1f7-<span class="number">1</span>f1ff, U+<span class="number">1</span>f21a, U+<span class="number">1</span>f232, U+<span class="number">1</span>f234-<span class="number">1</span>f237, U+<span class="number">1</span>f250-<span class="number">1</span>f251, U+<span class="number">1</span>f300, U+<span class="number">1</span>f302-<span class="number">1</span>f308, U+<span class="number">1</span>f30a-<span class="number">1</span>f311, U+<span class="number">1</span>f315, U+<span class="number">1</span>f319-<span class="number">1</span>f320, U+<span class="number">1</span>f324, U+<span class="number">1</span>f327, U+<span class="number">1</span>f32a, U+<span class="number">1</span>f32c-<span class="number">1</span>f32d, U+<span class="number">1</span>f330-<span class="number">1</span>f357, U+<span class="number">1</span>f359-<span class="number">1</span>f37e;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [5] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.5.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+fee3, U+fef3, U+ff03-ff04, U+ff07, U+ff0a, U+ff17-ff19, U+ff1c-ff1d, U+ff20-ff3a, U+ff3c, U+ff3e-ff5b, U+ff5d, U+ff61-ff65, U+ff67-ff6a, U+ff6c, U+ff6f-ff78, U+ff7a-ff7d, U+ff80-ff84, U+ff86, U+ff89-ff8e, U+ff92, U+ff97-ff9b, U+ff9d-ff9f, U+ffe0-ffe4, U+ffe6, U+ffe9, U+ffeb, U+ffed, U+fffc, U+<span class="number">1</span>f004, U+<span class="number">1</span>f170-<span class="number">1</span>f171, U+<span class="number">1</span>f192-<span class="number">1</span>f195, U+<span class="number">1</span>f198-<span class="number">1</span>f19a, U+<span class="number">1</span>f1e6-<span class="number">1</span>f1e8;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [6] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.6.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+f0a7, U+f0b2, U+f0b7, U+f0c9, U+f0d8, U+f0da, U+f0dc-f0dd, U+f0e0, U+f0e6, U+f0eb, U+f0fc, U+f101, U+f104-f105, U+f107, U+f10b, U+f11b, U+f14b, U+f18a, U+f193, U+f1d6-f1d7, U+f244, U+f27a, U+f296, U+f2ae, U+f471, U+f4b3, U+f610-f611, U+f880-f881, U+f8ec, U+f8f5, U+f8ff, U+f901, U+f90a, U+f92c-f92d, U+f934, U+f937, U+f941, U+f965, U+f967, U+f969, U+f96b, U+f96f, U+f974, U+f978-f979, U+f97e, U+f981, U+f98a, U+f98e, U+f997, U+f99c, U+f9b2, U+f9b5, U+f9ba, U+f9be, U+f9ca, U+f9d0-f9d1, U+f9dd, U+f9e0-f9e1, U+f9e4, U+f9f7, U+fa00-fa01, U+fa08, U+fa0a, U+fa11, U+fb01-fb02, U+fdfc, U+fe0e, U+fe30-fe31, U+fe33-fe44, U+fe49-fe52, U+fe54-fe57, U+fe59-fe66, U+fe68-fe6b, U+fe8e, U+fe92-fe93, U+feae, U+feb8, U+fecb-fecc, U+fee0;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [21] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.21.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">9</span>f3d-<span class="number">9</span>f3e, U+<span class="number">9</span>f41, U+<span class="number">9</span>f4a-<span class="number">9</span>f4b, U+<span class="number">9</span>f51-<span class="number">9</span>f52, U+<span class="number">9</span>f61-<span class="number">9</span>f63, U+<span class="number">9</span>f66-<span class="number">9</span>f67, U+<span class="number">9</span>f80-<span class="number">9</span>f81, U+<span class="number">9</span>f83, U+<span class="number">9</span>f85-<span class="number">9</span>f8d, U+<span class="number">9</span>f90-<span class="number">9</span>f91, U+<span class="number">9</span>f94-<span class="number">9</span>f96, U+<span class="number">9</span>f98, U+<span class="number">9</span>f9b-<span class="number">9</span>f9c, U+<span class="number">9</span>f9e, U+<span class="number">9</span>fa0, U+<span class="number">9</span>fa2, U+<span class="number">9</span>ff4, U+a001, U+a007, U+a025, U+a046-a047, U+a057, U+a072, U+a078-a079, U+a083, U+a085, U+a100, U+a118, U+a132, U+a134, U+a1f4, U+a242, U+a4a6, U+a4aa, U+a4b0-a4b1, U+a4b3, U+a9c1-a9c2, U+ac00-ac01, U+ac04, U+ac08, U+ac10-ac11, U+ac13-ac16, U+ac19, U+ac1c-ac1d, U+ac24, U+ac70-ac71, U+ac74, U+ac77-ac78, U+ac80-ac81, U+ac83, U+ac8c, U+ac90, U+ac9f-aca0, U+aca8-aca9, U+acac, U+acb0, U+acbd, U+acc1, U+acc4, U+ace0-ace1, U+ace4, U+ace8, U+acf3, U+acf5, U+acfc-acfd, U+ad00, U+ad0c, U+ad11, U+ad1c, U+ad34, U+ad50, U+ad64, U+ad6c, U+ad70, U+ad74, U+ad7f, U+ad81, U+ad8c, U+adc0, U+adc8, U+addc, U+ade0, U+adf8-adf9, U+adfc, U+ae00, U+ae08-ae09, U+ae0b, U+ae30, U+ae34, U+ae38, U+ae40, U+ae4a, U+ae4c, U+ae54, U+ae68, U+aebc, U+aed8, U+af2c-af2d, U+af34;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [22] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.22.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">9</span>dfa, U+<span class="number">9</span>e0a, U+<span class="number">9</span>e11, U+<span class="number">9</span>e1a, U+<span class="number">9</span>e1e, U+<span class="number">9</span>e20, U+<span class="number">9</span>e22, U+<span class="number">9</span>e28-<span class="number">9</span>e2c, U+<span class="number">9</span>e2e-<span class="number">9</span>e33, U+<span class="number">9</span>e35-<span class="number">9</span>e3b, U+<span class="number">9</span>e3e, U+<span class="number">9</span>e40-<span class="number">9</span>e44, U+<span class="number">9</span>e46-<span class="number">9</span>e4e, U+<span class="number">9</span>e51, U+<span class="number">9</span>e53, U+<span class="number">9</span>e55-<span class="number">9</span>e58, U+<span class="number">9</span>e5a-<span class="number">9</span>e5c, U+<span class="number">9</span>e5e-<span class="number">9</span>e63, U+<span class="number">9</span>e66-<span class="number">9</span>e6e, U+<span class="number">9</span>e71, U+<span class="number">9</span>e73, U+<span class="number">9</span>e75, U+<span class="number">9</span>e78-<span class="number">9</span>e79, U+<span class="number">9</span>e7c-<span class="number">9</span>e7e, U+<span class="number">9</span>e82, U+<span class="number">9</span>e86-<span class="number">9</span>e88, U+<span class="number">9</span>e8b-<span class="number">9</span>e8c, U+<span class="number">9</span>e90-<span class="number">9</span>e91, U+<span class="number">9</span>e93, U+<span class="number">9</span>e95, U+<span class="number">9</span>e97, U+<span class="number">9</span>e9d, U+<span class="number">9</span>ea4-<span class="number">9</span>ea5, U+<span class="number">9</span>ea9-<span class="number">9</span>eaa, U+<span class="number">9</span>eb4-<span class="number">9</span>eb5, U+<span class="number">9</span>eb8-<span class="number">9</span>eba, U+<span class="number">9</span>ebc-<span class="number">9</span>ebf, U+<span class="number">9</span>ec3, U+<span class="number">9</span>ec9, U+<span class="number">9</span>ecd, U+<span class="number">9</span>ed0, U+<span class="number">9</span>ed2-<span class="number">9</span>ed3, U+<span class="number">9</span>ed5-<span class="number">9</span>ed6, U+<span class="number">9</span>ed9, U+<span class="number">9</span>edc-<span class="number">9</span>edd, U+<span class="number">9</span>edf-<span class="number">9</span>ee0, U+<span class="number">9</span>ee2, U+<span class="number">9</span>ee5, U+<span class="number">9</span>ee7-<span class="number">9</span>eea, U+<span class="number">9</span>eef, U+<span class="number">9</span>ef1, U+<span class="number">9</span>ef3-<span class="number">9</span>ef4, U+<span class="number">9</span>ef6, U+<span class="number">9</span>ef9, U+<span class="number">9</span>efb-<span class="number">9</span>efc, U+<span class="number">9</span>efe, U+<span class="number">9</span>f0b, U+<span class="number">9</span>f0d, U+<span class="number">9</span>f10, U+<span class="number">9</span>f14, U+<span class="number">9</span>f17, U+<span class="number">9</span>f19, U+<span class="number">9</span>f22, U+<span class="number">9</span>f29, U+<span class="number">9</span>f2c, U+<span class="number">9</span>f2f, U+<span class="number">9</span>f31, U+<span class="number">9</span>f37, U+<span class="number">9</span>f39;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [23] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.23.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">9</span>c3b, U+<span class="number">9</span>c40, U+<span class="number">9</span>c47-<span class="number">9</span>c49, U+<span class="number">9</span>c53, U+<span class="number">9</span>c57, U+<span class="number">9</span>c64, U+<span class="number">9</span>c72, U+<span class="number">9</span>c77-<span class="number">9</span>c78, U+<span class="number">9</span>c7b, U+<span class="number">9</span>c7f-<span class="number">9</span>c80, U+<span class="number">9</span>c82-<span class="number">9</span>c83, U+<span class="number">9</span>c85-<span class="number">9</span>c8c, U+<span class="number">9</span>c8e-<span class="number">9</span>c92, U+<span class="number">9</span>c94-<span class="number">9</span>c9b, U+<span class="number">9</span>c9e-<span class="number">9</span>ca3, U+<span class="number">9</span>ca5-<span class="number">9</span>ca7, U+<span class="number">9</span>ca9, U+<span class="number">9</span>cab, U+<span class="number">9</span>cad-<span class="number">9</span>cae, U+<span class="number">9</span>cb1-<span class="number">9</span>cb7, U+<span class="number">9</span>cb9-<span class="number">9</span>cbd, U+<span class="number">9</span>cbf-<span class="number">9</span>cc0, U+<span class="number">9</span>cc3, U+<span class="number">9</span>cc5-<span class="number">9</span>cc7, U+<span class="number">9</span>cc9-<span class="number">9</span>cd1, U+<span class="number">9</span>cd3-<span class="number">9</span>cda, U+<span class="number">9</span>cdc-<span class="number">9</span>cdd, U+<span class="number">9</span>cdf, U+<span class="number">9</span>ce1-<span class="number">9</span>ce3, U+<span class="number">9</span>ce5, U+<span class="number">9</span>ce9, U+<span class="number">9</span>cee-<span class="number">9</span>cef, U+<span class="number">9</span>cf3-<span class="number">9</span>cf4, U+<span class="number">9</span>cf6, U+<span class="number">9</span>cfc-<span class="number">9</span>cfd, U+<span class="number">9</span>d02, U+<span class="number">9</span>d08-<span class="number">9</span>d09, U+<span class="number">9</span>d12, U+<span class="number">9</span>d1b, U+<span class="number">9</span>d1e, U+<span class="number">9</span>d26, U+<span class="number">9</span>d28, U+<span class="number">9</span>d37, U+<span class="number">9</span>d3b, U+<span class="number">9</span>d3f, U+<span class="number">9</span>d51, U+<span class="number">9</span>d59, U+<span class="number">9</span>d5c-<span class="number">9</span>d5d, U+<span class="number">9</span>d5f-<span class="number">9</span>d61, U+<span class="number">9</span>d6c, U+<span class="number">9</span>d70, U+<span class="number">9</span>d72, U+<span class="number">9</span>d7a, U+<span class="number">9</span>d7e, U+<span class="number">9</span>d84, U+<span class="number">9</span>d89, U+<span class="number">9</span>d8f, U+<span class="number">9</span>d92, U+<span class="number">9</span>daf, U+<span class="number">9</span>db4, U+<span class="number">9</span>db8, U+<span class="number">9</span>dbc, U+<span class="number">9</span>dc4, U+<span class="number">9</span>dc7, U+<span class="number">9</span>dc9, U+<span class="number">9</span>dd7, U+<span class="number">9</span>ddf, U+<span class="number">9</span>df2, U+<span class="number">9</span>df9;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [24] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.24.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">9</span>a5f, U+<span class="number">9</span>a62, U+<span class="number">9</span>a65, U+<span class="number">9</span>a69, U+<span class="number">9</span>a6b, U+<span class="number">9</span>a6e, U+<span class="number">9</span>a75, U+<span class="number">9</span>a77-<span class="number">9</span>a7a, U+<span class="number">9</span>a7d, U+<span class="number">9</span>a80, U+<span class="number">9</span>a83, U+<span class="number">9</span>a85, U+<span class="number">9</span>a87-<span class="number">9</span>a8a, U+<span class="number">9</span>a8d-<span class="number">9</span>a8e, U+<span class="number">9</span>a90, U+<span class="number">9</span>a92-<span class="number">9</span>a93, U+<span class="number">9</span>a95-<span class="number">9</span>a96, U+<span class="number">9</span>a98-<span class="number">9</span>a99, U+<span class="number">9</span>a9b-<span class="number">9</span>aa2, U+<span class="number">9</span>aa5, U+<span class="number">9</span>aa7, U+<span class="number">9</span>aaf-<span class="number">9</span>ab1, U+<span class="number">9</span>ab5-<span class="number">9</span>ab6, U+<span class="number">9</span>ab9-<span class="number">9</span>aba, U+<span class="number">9</span>abc, U+<span class="number">9</span>ac0-<span class="number">9</span>ac4, U+<span class="number">9</span>ac8, U+<span class="number">9</span>acb-<span class="number">9</span>acc, U+<span class="number">9</span>ace-<span class="number">9</span>acf, U+<span class="number">9</span>ad1-<span class="number">9</span>ad2, U+<span class="number">9</span>ad9, U+<span class="number">9</span>adf, U+<span class="number">9</span>ae1, U+<span class="number">9</span>ae3, U+<span class="number">9</span>aea-<span class="number">9</span>aeb, U+<span class="number">9</span>aed-<span class="number">9</span>aef, U+<span class="number">9</span>af4, U+<span class="number">9</span>af9, U+<span class="number">9</span>afb, U+<span class="number">9</span>b03-<span class="number">9</span>b04, U+<span class="number">9</span>b06, U+<span class="number">9</span>b08, U+<span class="number">9</span>b0d, U+<span class="number">9</span>b0f-<span class="number">9</span>b10, U+<span class="number">9</span>b13, U+<span class="number">9</span>b18, U+<span class="number">9</span>b1a, U+<span class="number">9</span>b1f, U+<span class="number">9</span>b22-<span class="number">9</span>b23, U+<span class="number">9</span>b25, U+<span class="number">9</span>b27-<span class="number">9</span>b28, U+<span class="number">9</span>b2a, U+<span class="number">9</span>b2f, U+<span class="number">9</span>b31-<span class="number">9</span>b32, U+<span class="number">9</span>b3b, U+<span class="number">9</span>b43, U+<span class="number">9</span>b46-<span class="number">9</span>b49, U+<span class="number">9</span>b4d-<span class="number">9</span>b4e, U+<span class="number">9</span>b51, U+<span class="number">9</span>b56, U+<span class="number">9</span>b58, U+<span class="number">9</span>b5a, U+<span class="number">9</span>b5c, U+<span class="number">9</span>b5f, U+<span class="number">9</span>b61-<span class="number">9</span>b62, U+<span class="number">9</span>b6f, U+<span class="number">9</span>b77, U+<span class="number">9</span>b80, U+<span class="number">9</span>b88, U+<span class="number">9</span>b8b, U+<span class="number">9</span>b8e, U+<span class="number">9</span>b91, U+<span class="number">9</span>b9f-<span class="number">9</span>ba0, U+<span class="number">9</span>ba8, U+<span class="number">9</span>baa-<span class="number">9</span>bab, U+<span class="number">9</span>bad-<span class="number">9</span>bae, U+<span class="number">9</span>bb0-<span class="number">9</span>bb1, U+<span class="number">9</span>bb8, U+<span class="number">9</span>bc9-<span class="number">9</span>bca, U+<span class="number">9</span>bd3, U+<span class="number">9</span>bd6, U+<span class="number">9</span>bdb, U+<span class="number">9</span>be8, U+<span class="number">9</span>bf0-<span class="number">9</span>bf1, U+<span class="number">9</span>c02, U+<span class="number">9</span>c10, U+<span class="number">9</span>c15, U+<span class="number">9</span>c24, U+<span class="number">9</span>c2d, U+<span class="number">9</span>c32, U+<span class="number">9</span>c39;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [25] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.25.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">98</span>c8, U+<span class="number">98</span>cf-<span class="number">98</span>d6, U+<span class="number">98</span>da-<span class="number">98</span>db, U+<span class="number">98</span>dd, U+<span class="number">98</span>e1-<span class="number">98</span>e2, U+<span class="number">98</span>e7-<span class="number">98</span>ea, U+<span class="number">98</span>ec, U+<span class="number">98</span>ee-<span class="number">98</span>ef, U+<span class="number">98</span>f2, U+<span class="number">98</span>f4, U+<span class="number">98</span>fc-<span class="number">98</span>fe, U+<span class="number">9903</span>, U+<span class="number">9905</span>, U+<span class="number">9908</span>, U+<span class="number">990</span>a, U+<span class="number">990</span>c-<span class="number">990</span>d, U+<span class="number">9913</span>-<span class="number">9914</span>, U+<span class="number">9918</span>, U+<span class="number">991</span>a-<span class="number">991</span>b, U+<span class="number">991</span>e, U+<span class="number">9921</span>, U+<span class="number">9928</span>, U+<span class="number">992</span>c, U+<span class="number">992</span>e, U+<span class="number">9935</span>, U+<span class="number">9938</span>-<span class="number">9939</span>, U+<span class="number">993</span>d-<span class="number">993</span>e, U+<span class="number">9945</span>, U+<span class="number">994</span>b-<span class="number">994</span>c, U+<span class="number">9951</span>-<span class="number">9952</span>, U+<span class="number">9954</span>-<span class="number">9955</span>, U+<span class="number">9957</span>, U+<span class="number">995</span>e, U+<span class="number">9963</span>, U+<span class="number">9966</span>-<span class="number">9969</span>, U+<span class="number">996</span>b-<span class="number">996</span>c, U+<span class="number">996</span>f, U+<span class="number">9974</span>-<span class="number">9975</span>, U+<span class="number">9977</span>-<span class="number">9979</span>, U+<span class="number">997</span>d-<span class="number">997</span>e, U+<span class="number">9980</span>-<span class="number">9981</span>, U+<span class="number">9983</span>-<span class="number">9984</span>, U+<span class="number">9987</span>, U+<span class="number">998</span>a-<span class="number">998</span>b, U+<span class="number">998</span>d-<span class="number">9991</span>, U+<span class="number">9993</span>-<span class="number">9995</span>, U+<span class="number">9997</span>-<span class="number">9998</span>, U+<span class="number">99</span>a5, U+<span class="number">99</span>ab-<span class="number">99</span>ae, U+<span class="number">99</span>b1, U+<span class="number">99</span>b3-<span class="number">99</span>b4, U+<span class="number">99</span>bc, U+<span class="number">99</span>bf, U+<span class="number">99</span>c1, U+<span class="number">99</span>c3-<span class="number">99</span>c6, U+<span class="number">99</span>cc, U+<span class="number">99</span>d0, U+<span class="number">99</span>d2, U+<span class="number">99</span>d5, U+<span class="number">99</span>db, U+<span class="number">99</span>dd, U+<span class="number">99</span>e1, U+<span class="number">99</span>ed, U+<span class="number">99</span>f1, U+<span class="number">99</span>ff, U+<span class="number">9</span>a01, U+<span class="number">9</span>a03-<span class="number">9</span>a04, U+<span class="number">9</span>a0e-<span class="number">9</span>a0f, U+<span class="number">9</span>a11-<span class="number">9</span>a13, U+<span class="number">9</span>a19, U+<span class="number">9</span>a1b, U+<span class="number">9</span>a28, U+<span class="number">9</span>a2b, U+<span class="number">9</span>a30, U+<span class="number">9</span>a32, U+<span class="number">9</span>a37, U+<span class="number">9</span>a40, U+<span class="number">9</span>a45, U+<span class="number">9</span>a4a, U+<span class="number">9</span>a4d-<span class="number">9</span>a4e, U+<span class="number">9</span>a52, U+<span class="number">9</span>a55, U+<span class="number">9</span>a57, U+<span class="number">9</span>a5a-<span class="number">9</span>a5b;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [26] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.26.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">972</span>a, U+<span class="number">972</span>d, U+<span class="number">9730</span>, U+<span class="number">973</span>d, U+<span class="number">9742</span>, U+<span class="number">9744</span>, U+<span class="number">9748</span>-<span class="number">9749</span>, U+<span class="number">9750</span>-<span class="number">9751</span>, U+<span class="number">975</span>a-<span class="number">975</span>c, U+<span class="number">9763</span>, U+<span class="number">9765</span>-<span class="number">9766</span>, U+<span class="number">976</span>c-<span class="number">976</span>d, U+<span class="number">9773</span>, U+<span class="number">9776</span>, U+<span class="number">977</span>a, U+<span class="number">977</span>c, U+<span class="number">9784</span>-<span class="number">9785</span>, U+<span class="number">978</span>e-<span class="number">978</span>f, U+<span class="number">9791</span>-<span class="number">9792</span>, U+<span class="number">9794</span>-<span class="number">9795</span>, U+<span class="number">9798</span>, U+<span class="number">979</span>a, U+<span class="number">979</span>e, U+<span class="number">97</span>a3, U+<span class="number">97</span>a5-<span class="number">97</span>a6, U+<span class="number">97</span>a8, U+<span class="number">97</span>ab-<span class="number">97</span>ac, U+<span class="number">97</span>ae-<span class="number">97</span>af, U+<span class="number">97</span>b2, U+<span class="number">97</span>b4, U+<span class="number">97</span>c6, U+<span class="number">97</span>cb-<span class="number">97</span>cc, U+<span class="number">97</span>d3, U+<span class="number">97</span>d8, U+<span class="number">97</span>dc, U+<span class="number">97</span>e1, U+<span class="number">97</span>ea-<span class="number">97</span>eb, U+<span class="number">97</span>ee, U+<span class="number">97</span>fb, U+<span class="number">97</span>fe-<span class="number">97</span>ff, U+<span class="number">9801</span>-<span class="number">9803</span>, U+<span class="number">9805</span>-<span class="number">9806</span>, U+<span class="number">9808</span>, U+<span class="number">980</span>c, U+<span class="number">9810</span>-<span class="number">9814</span>, U+<span class="number">9817</span>-<span class="number">9818</span>, U+<span class="number">981</span>e, U+<span class="number">9820</span>-<span class="number">9821</span>, U+<span class="number">9824</span>, U+<span class="number">9828</span>, U+<span class="number">982</span>b-<span class="number">982</span>d, U+<span class="number">9830</span>, U+<span class="number">9834</span>, U+<span class="number">9838</span>-<span class="number">9839</span>, U+<span class="number">983</span>c, U+<span class="number">9846</span>, U+<span class="number">984</span>d-<span class="number">984</span>f, U+<span class="number">9851</span>-<span class="number">9852</span>, U+<span class="number">9854</span>-<span class="number">9855</span>, U+<span class="number">9857</span>-<span class="number">9858</span>, U+<span class="number">985</span>a-<span class="number">985</span>b, U+<span class="number">9862</span>-<span class="number">9863</span>, U+<span class="number">9865</span>, U+<span class="number">9867</span>, U+<span class="number">986</span>b, U+<span class="number">986</span>f-<span class="number">9871</span>, U+<span class="number">9877</span>-<span class="number">9878</span>, U+<span class="number">987</span>c, U+<span class="number">9880</span>, U+<span class="number">9883</span>, U+<span class="number">9885</span>, U+<span class="number">9889</span>, U+<span class="number">988</span>b-<span class="number">988</span>f, U+<span class="number">9893</span>-<span class="number">9895</span>, U+<span class="number">9899</span>-<span class="number">989</span>b, U+<span class="number">989</span>e-<span class="number">989</span>f, U+<span class="number">98</span>a1-<span class="number">98</span>a2, U+<span class="number">98</span>a5-<span class="number">98</span>a7, U+<span class="number">98</span>a9, U+<span class="number">98</span>af, U+<span class="number">98</span>b1, U+<span class="number">98</span>b6, U+<span class="number">98</span>ba, U+<span class="number">98</span>be, U+<span class="number">98</span>c3-<span class="number">98</span>c4, U+<span class="number">98</span>c6-<span class="number">98</span>c7;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [27] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.27.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">95</span>b9-<span class="number">95</span>ca, U+<span class="number">95</span>cc-<span class="number">95</span>cd, U+<span class="number">95</span>d4-<span class="number">95</span>d6, U+<span class="number">95</span>d8, U+<span class="number">95</span>e1-<span class="number">95</span>e2, U+<span class="number">95</span>e9, U+<span class="number">95</span>f0-<span class="number">95</span>f1, U+<span class="number">95</span>f3, U+<span class="number">95</span>f6, U+<span class="number">95</span>fc, U+<span class="number">95</span>fe-<span class="number">95</span>ff, U+<span class="number">9602</span>-<span class="number">9604</span>, U+<span class="number">9606</span>-<span class="number">960</span>d, U+<span class="number">960</span>f, U+<span class="number">9611</span>-<span class="number">9613</span>, U+<span class="number">9615</span>-<span class="number">9617</span>, U+<span class="number">9619</span>-<span class="number">961</span>b, U+<span class="number">961</span>d, U+<span class="number">9621</span>, U+<span class="number">9628</span>, U+<span class="number">962</span>f, U+<span class="number">963</span>c-<span class="number">963</span>e, U+<span class="number">9641</span>-<span class="number">9642</span>, U+<span class="number">9649</span>, U+<span class="number">9654</span>, U+<span class="number">965</span>b-<span class="number">965</span>f, U+<span class="number">9661</span>, U+<span class="number">9663</span>, U+<span class="number">9665</span>, U+<span class="number">9667</span>-<span class="number">9668</span>, U+<span class="number">966</span>c, U+<span class="number">9670</span>, U+<span class="number">9672</span>-<span class="number">9674</span>, U+<span class="number">9678</span>, U+<span class="number">967</span>a, U+<span class="number">967</span>d, U+<span class="number">9682</span>, U+<span class="number">9685</span>, U+<span class="number">9688</span>, U+<span class="number">968</span>a, U+<span class="number">968</span>d-<span class="number">968</span>e, U+<span class="number">9695</span>, U+<span class="number">9697</span>-<span class="number">9698</span>, U+<span class="number">969</span>e, U+<span class="number">96</span>a0, U+<span class="number">96</span>a3-<span class="number">96</span>a4, U+<span class="number">96</span>a8, U+<span class="number">96</span>aa, U+<span class="number">96</span>b0-<span class="number">96</span>b1, U+<span class="number">96</span>b3-<span class="number">96</span>b4, U+<span class="number">96</span>b7-<span class="number">96</span>b9, U+<span class="number">96</span>bb-<span class="number">96</span>bd, U+<span class="number">96</span>c9, U+<span class="number">96</span>cb, U+<span class="number">96</span>ce, U+<span class="number">96</span>d1-<span class="number">96</span>d2, U+<span class="number">96</span>d6, U+<span class="number">96</span>d9, U+<span class="number">96</span>db-<span class="number">96</span>dc, U+<span class="number">96</span>de, U+<span class="number">96</span>e0, U+<span class="number">96</span>e3, U+<span class="number">96</span>e9, U+<span class="number">96</span>eb, U+<span class="number">96</span>f0-<span class="number">96</span>f2, U+<span class="number">96</span>f9, U+<span class="number">96</span>ff, U+<span class="number">9701</span>-<span class="number">9702</span>, U+<span class="number">9705</span>, U+<span class="number">9708</span>, U+<span class="number">970</span>a, U+<span class="number">970</span>e-<span class="number">970</span>f, U+<span class="number">9711</span>, U+<span class="number">9719</span>, U+<span class="number">9727</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [28] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.28.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">94</span>e7-<span class="number">94</span>ec, U+<span class="number">94</span>ee-<span class="number">94</span>f1, U+<span class="number">94</span>f3, U+<span class="number">94</span>f5, U+<span class="number">94</span>f7, U+<span class="number">94</span>f9, U+<span class="number">94</span>fb-<span class="number">94</span>fd, U+<span class="number">94</span>ff, U+<span class="number">9503</span>-<span class="number">9504</span>, U+<span class="number">9506</span>-<span class="number">9507</span>, U+<span class="number">9509</span>-<span class="number">950</span>a, U+<span class="number">950</span>d-<span class="number">950</span>f, U+<span class="number">9511</span>-<span class="number">9518</span>, U+<span class="number">951</span>a-<span class="number">9520</span>, U+<span class="number">9522</span>, U+<span class="number">9528</span>-<span class="number">952</span>d, U+<span class="number">9530</span>-<span class="number">953</span>a, U+<span class="number">953</span>c-<span class="number">953</span>f, U+<span class="number">9543</span>-<span class="number">9546</span>, U+<span class="number">9548</span>-<span class="number">9550</span>, U+<span class="number">9552</span>-<span class="number">9555</span>, U+<span class="number">9557</span>-<span class="number">955</span>b, U+<span class="number">955</span>d-<span class="number">9568</span>, U+<span class="number">956</span>a-<span class="number">956</span>d, U+<span class="number">9570</span>-<span class="number">9574</span>, U+<span class="number">9583</span>, U+<span class="number">9586</span>, U+<span class="number">9589</span>, U+<span class="number">958</span>e-<span class="number">958</span>f, U+<span class="number">9591</span>-<span class="number">9592</span>, U+<span class="number">9594</span>, U+<span class="number">9598</span>-<span class="number">9599</span>, U+<span class="number">959</span>e-<span class="number">95</span>a0, U+<span class="number">95</span>a2-<span class="number">95</span>a6, U+<span class="number">95</span>a8-<span class="number">95</span>b2, U+<span class="number">95</span>b4, U+<span class="number">95</span>b8;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [29] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.29.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">9410</span>-<span class="number">941</span>a, U+<span class="number">941</span>c-<span class="number">942</span>b, U+<span class="number">942</span>d-<span class="number">942</span>e, U+<span class="number">9432</span>-<span class="number">9433</span>, U+<span class="number">9435</span>, U+<span class="number">9438</span>, U+<span class="number">943</span>a, U+<span class="number">943</span>e, U+<span class="number">9444</span>, U+<span class="number">944</span>a, U+<span class="number">9451</span>-<span class="number">9452</span>, U+<span class="number">945</span>a, U+<span class="number">9462</span>-<span class="number">9463</span>, U+<span class="number">9465</span>, U+<span class="number">9470</span>-<span class="number">9487</span>, U+<span class="number">948</span>a-<span class="number">9492</span>, U+<span class="number">9494</span>-<span class="number">9498</span>, U+<span class="number">949</span>a, U+<span class="number">949</span>c-<span class="number">949</span>d, U+<span class="number">94</span>a1, U+<span class="number">94</span>a3-<span class="number">94</span>a4, U+<span class="number">94</span>a8, U+<span class="number">94</span>aa-<span class="number">94</span>ad, U+<span class="number">94</span>af, U+<span class="number">94</span>b2, U+<span class="number">94</span>b4-<span class="number">94</span>ba, U+<span class="number">94</span>bc-<span class="number">94</span>c0, U+<span class="number">94</span>c4, U+<span class="number">94</span>c6-<span class="number">94</span>db, U+<span class="number">94</span>de-<span class="number">94</span>e6;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [30] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.30.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">92</span>b7, U+<span class="number">92</span>b9, U+<span class="number">92</span>c1, U+<span class="number">92</span>c5-<span class="number">92</span>c6, U+<span class="number">92</span>c8, U+<span class="number">92</span>cc, U+<span class="number">92</span>d0, U+<span class="number">92</span>d2, U+<span class="number">92</span>e4, U+<span class="number">92</span>ea, U+<span class="number">92</span>ec-<span class="number">92</span>ed, U+<span class="number">92</span>f0, U+<span class="number">92</span>f3, U+<span class="number">92</span>f8, U+<span class="number">92</span>fc, U+<span class="number">9304</span>, U+<span class="number">9306</span>, U+<span class="number">9310</span>, U+<span class="number">9312</span>, U+<span class="number">9315</span>, U+<span class="number">9318</span>, U+<span class="number">931</span>a, U+<span class="number">931</span>e, U+<span class="number">9320</span>-<span class="number">9322</span>, U+<span class="number">9324</span>, U+<span class="number">9326</span>-<span class="number">9329</span>, U+<span class="number">932</span>b-<span class="number">932</span>c, U+<span class="number">932</span>f, U+<span class="number">9331</span>-<span class="number">9332</span>, U+<span class="number">9335</span>-<span class="number">9336</span>, U+<span class="number">933</span>e, U+<span class="number">9340</span>-<span class="number">9341</span>, U+<span class="number">934</span>a-<span class="number">9360</span>, U+<span class="number">9362</span>-<span class="number">9363</span>, U+<span class="number">9365</span>-<span class="number">936</span>b, U+<span class="number">936</span>e, U+<span class="number">9375</span>, U+<span class="number">937</span>e, U+<span class="number">9382</span>, U+<span class="number">938</span>a, U+<span class="number">938</span>c, U+<span class="number">938</span>f, U+<span class="number">9393</span>-<span class="number">9394</span>, U+<span class="number">9396</span>-<span class="number">9397</span>, U+<span class="number">939</span>a, U+<span class="number">93</span>a2, U+<span class="number">93</span>a7, U+<span class="number">93</span>ac-<span class="number">93</span>cd, U+<span class="number">93</span>d0-<span class="number">93</span>d1, U+<span class="number">93</span>d6-<span class="number">93</span>d8, U+<span class="number">93</span>de-<span class="number">93</span>df, U+<span class="number">93</span>e1-<span class="number">93</span>e2, U+<span class="number">93</span>e4, U+<span class="number">93</span>f8, U+<span class="number">93</span>fb, U+<span class="number">93</span>fd, U+<span class="number">940</span>e-<span class="number">940</span>f;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [31] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.31.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">914</span>c, U+<span class="number">914</span>e-<span class="number">9150</span>, U+<span class="number">9154</span>, U+<span class="number">9157</span>, U+<span class="number">915</span>a, U+<span class="number">915</span>d-<span class="number">915</span>e, U+<span class="number">9161</span>-<span class="number">9164</span>, U+<span class="number">9169</span>, U+<span class="number">9170</span>, U+<span class="number">9172</span>, U+<span class="number">9174</span>, U+<span class="number">9179</span>-<span class="number">917</span>a, U+<span class="number">917</span>d-<span class="number">917</span>e, U+<span class="number">9182</span>-<span class="number">9183</span>, U+<span class="number">9185</span>, U+<span class="number">918</span>c-<span class="number">918</span>d, U+<span class="number">9190</span>-<span class="number">9191</span>, U+<span class="number">919</span>a, U+<span class="number">919</span>c, U+<span class="number">91</span>a1-<span class="number">91</span>a4, U+<span class="number">91</span>a8, U+<span class="number">91</span>aa-<span class="number">91</span>af, U+<span class="number">91</span>b4-<span class="number">91</span>b5, U+<span class="number">91</span>b8, U+<span class="number">91</span>ba, U+<span class="number">91</span>be, U+<span class="number">91</span>c0-<span class="number">91</span>c1, U+<span class="number">91</span>c6, U+<span class="number">91</span>c8, U+<span class="number">91</span>cb, U+<span class="number">91</span>d0, U+<span class="number">91</span>d2, U+<span class="number">91</span>d7-<span class="number">91</span>d8, U+<span class="number">91</span>dd, U+<span class="number">91</span>e3, U+<span class="number">91</span>e6-<span class="number">91</span>e7, U+<span class="number">91</span>ed, U+<span class="number">91</span>f0, U+<span class="number">91</span>f5, U+<span class="number">91</span>f9, U+<span class="number">9200</span>, U+<span class="number">9205</span>, U+<span class="number">9207</span>-<span class="number">920</span>a, U+<span class="number">920</span>d-<span class="number">920</span>e, U+<span class="number">9210</span>, U+<span class="number">9214</span>-<span class="number">9215</span>, U+<span class="number">921</span>c, U+<span class="number">921</span>e, U+<span class="number">9221</span>, U+<span class="number">9223</span>-<span class="number">9227</span>, U+<span class="number">9229</span>-<span class="number">922</span>a, U+<span class="number">922</span>d, U+<span class="number">9234</span>-<span class="number">9235</span>, U+<span class="number">9237</span>, U+<span class="number">9239</span>-<span class="number">923</span>a, U+<span class="number">923</span>c-<span class="number">9240</span>, U+<span class="number">9244</span>-<span class="number">9246</span>, U+<span class="number">9249</span>, U+<span class="number">924</span>e-<span class="number">924</span>f, U+<span class="number">9251</span>, U+<span class="number">9253</span>, U+<span class="number">9257</span>, U+<span class="number">925</span>b, U+<span class="number">925</span>e, U+<span class="number">9262</span>, U+<span class="number">9264</span>-<span class="number">9266</span>, U+<span class="number">9268</span>, U+<span class="number">926</span>c, U+<span class="number">926</span>f, U+<span class="number">9271</span>, U+<span class="number">927</span>b, U+<span class="number">927</span>e, U+<span class="number">9280</span>, U+<span class="number">9283</span>, U+<span class="number">9285</span>-<span class="number">928</span>a, U+<span class="number">928</span>e, U+<span class="number">9291</span>, U+<span class="number">9293</span>, U+<span class="number">9296</span>, U+<span class="number">9298</span>, U+<span class="number">929</span>c-<span class="number">929</span>d, U+<span class="number">92</span>a8, U+<span class="number">92</span>ab-<span class="number">92</span>ae, U+<span class="number">92</span>b3, U+<span class="number">92</span>b6;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [32] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.32.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">8</span>fe2-<span class="number">8</span>fe5, U+<span class="number">8</span>fe8-<span class="number">8</span>fe9, U+<span class="number">8</span>fee, U+<span class="number">8</span>ff3-<span class="number">8</span>ff4, U+<span class="number">8</span>ff8, U+<span class="number">8</span>ffa, U+<span class="number">9004</span>, U+<span class="number">900</span>b, U+<span class="number">9011</span>, U+<span class="number">9015</span>-<span class="number">9016</span>, U+<span class="number">901</span>e, U+<span class="number">9021</span>, U+<span class="number">9026</span>, U+<span class="number">902</span>d, U+<span class="number">902</span>f, U+<span class="number">9031</span>, U+<span class="number">9035</span>-<span class="number">9036</span>, U+<span class="number">9039</span>-<span class="number">903</span>a, U+<span class="number">9041</span>, U+<span class="number">9044</span>-<span class="number">9046</span>, U+<span class="number">904</span>a, U+<span class="number">904</span>f-<span class="number">9052</span>, U+<span class="number">9054</span>-<span class="number">9055</span>, U+<span class="number">9058</span>-<span class="number">9059</span>, U+<span class="number">905</span>b-<span class="number">905</span>e, U+<span class="number">9060</span>-<span class="number">9062</span>, U+<span class="number">9068</span>-<span class="number">9069</span>, U+<span class="number">906</span>f, U+<span class="number">9072</span>, U+<span class="number">9074</span>, U+<span class="number">9076</span>-<span class="number">907</span>a, U+<span class="number">907</span>c-<span class="number">907</span>d, U+<span class="number">9081</span>, U+<span class="number">9083</span>, U+<span class="number">9085</span>, U+<span class="number">9087</span>-<span class="number">908</span>b, U+<span class="number">908</span>f, U+<span class="number">9095</span>, U+<span class="number">9097</span>, U+<span class="number">9099</span>-<span class="number">909</span>b, U+<span class="number">909</span>d, U+<span class="number">90</span>a0-<span class="number">90</span>a1, U+<span class="number">90</span>a8-<span class="number">90</span>a9, U+<span class="number">90</span>ac, U+<span class="number">90</span>b0, U+<span class="number">90</span>b2-<span class="number">90</span>b4, U+<span class="number">90</span>b6, U+<span class="number">90</span>b8, U+<span class="number">90</span>ba, U+<span class="number">90</span>bd-<span class="number">90</span>be, U+<span class="number">90</span>c3-<span class="number">90</span>c5, U+<span class="number">90</span>c7-<span class="number">90</span>c8, U+<span class="number">90</span>cf-<span class="number">90</span>d0, U+<span class="number">90</span>d3, U+<span class="number">90</span>d5, U+<span class="number">90</span>d7, U+<span class="number">90</span>da-<span class="number">90</span>dc, U+<span class="number">90</span>de, U+<span class="number">90</span>e2, U+<span class="number">90</span>e4, U+<span class="number">90</span>e6-<span class="number">90</span>e7, U+<span class="number">90</span>ea-<span class="number">90</span>eb, U+<span class="number">90</span>ef, U+<span class="number">90</span>f4-<span class="number">90</span>f5, U+<span class="number">90</span>f7, U+<span class="number">90</span>fe-<span class="number">9100</span>, U+<span class="number">9104</span>, U+<span class="number">9109</span>, U+<span class="number">910</span>c, U+<span class="number">9112</span>, U+<span class="number">9114</span>-<span class="number">9115</span>, U+<span class="number">9118</span>, U+<span class="number">911</span>c, U+<span class="number">911</span>e, U+<span class="number">9120</span>, U+<span class="number">9122</span>-<span class="number">9123</span>, U+<span class="number">9127</span>, U+<span class="number">912</span>d, U+<span class="number">912</span>f-<span class="number">9132</span>, U+<span class="number">9139</span>-<span class="number">913</span>a, U+<span class="number">9143</span>, U+<span class="number">9146</span>, U+<span class="number">9149</span>-<span class="number">914</span>a;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [33] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.33.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">8</span>e2d-<span class="number">8</span>e31, U+<span class="number">8</span>e34-<span class="number">8</span>e35, U+<span class="number">8</span>e39-<span class="number">8</span>e3a, U+<span class="number">8</span>e3d, U+<span class="number">8</span>e40-<span class="number">8</span>e42, U+<span class="number">8</span>e47, U+<span class="number">8</span>e49-<span class="number">8</span>e4b, U+<span class="number">8</span>e50-<span class="number">8</span>e53, U+<span class="number">8</span>e59-<span class="number">8</span>e5a, U+<span class="number">8</span>e5f-<span class="number">8</span>e60, U+<span class="number">8</span>e64, U+<span class="number">8</span>e69, U+<span class="number">8</span>e6c, U+<span class="number">8</span>e70, U+<span class="number">8</span>e74, U+<span class="number">8</span>e76, U+<span class="number">8</span>e7a-<span class="number">8</span>e7c, U+<span class="number">8</span>e7f, U+<span class="number">8</span>e84-<span class="number">8</span>e85, U+<span class="number">8</span>e87, U+<span class="number">8</span>e89, U+<span class="number">8</span>e8b, U+<span class="number">8</span>e8d, U+<span class="number">8</span>e8f-<span class="number">8</span>e90, U+<span class="number">8</span>e94, U+<span class="number">8</span>e99, U+<span class="number">8</span>e9c, U+<span class="number">8</span>e9e, U+<span class="number">8</span>eaa, U+<span class="number">8</span>eac, U+<span class="number">8</span>eb0, U+<span class="number">8</span>eb6, U+<span class="number">8</span>ec0, U+<span class="number">8</span>ec6, U+<span class="number">8</span>eca-<span class="number">8</span>ece, U+<span class="number">8</span>ed2, U+<span class="number">8</span>eda, U+<span class="number">8</span>edf, U+<span class="number">8</span>ee2, U+<span class="number">8</span>eeb, U+<span class="number">8</span>ef8, U+<span class="number">8</span>efb-<span class="number">8</span>efe, U+<span class="number">8</span>f03, U+<span class="number">8</span>f09, U+<span class="number">8</span>f0b, U+<span class="number">8</span>f12-<span class="number">8</span>f15, U+<span class="number">8</span>f1b, U+<span class="number">8</span>f1d, U+<span class="number">8</span>f1f, U+<span class="number">8</span>f29-<span class="number">8</span>f2a, U+<span class="number">8</span>f2f, U+<span class="number">8</span>f36, U+<span class="number">8</span>f38, U+<span class="number">8</span>f3b, U+<span class="number">8</span>f3e-<span class="number">8</span>f3f, U+<span class="number">8</span>f44-<span class="number">8</span>f45, U+<span class="number">8</span>f49, U+<span class="number">8</span>f4d-<span class="number">8</span>f4e, U+<span class="number">8</span>f5f, U+<span class="number">8</span>f6b, U+<span class="number">8</span>f6d, U+<span class="number">8</span>f71-<span class="number">8</span>f73, U+<span class="number">8</span>f75-<span class="number">8</span>f76, U+<span class="number">8</span>f78-<span class="number">8</span>f7a, U+<span class="number">8</span>f7c, U+<span class="number">8</span>f7e, U+<span class="number">8</span>f81-<span class="number">8</span>f82, U+<span class="number">8</span>f84, U+<span class="number">8</span>f87, U+<span class="number">8</span>f8a-<span class="number">8</span>f8b, U+<span class="number">8</span>f8d-<span class="number">8</span>f8f, U+<span class="number">8</span>f94-<span class="number">8</span>f95, U+<span class="number">8</span>f97-<span class="number">8</span>f9a, U+<span class="number">8</span>fa6, U+<span class="number">8</span>fad-<span class="number">8</span>faf, U+<span class="number">8</span>fb2, U+<span class="number">8</span>fb5-<span class="number">8</span>fb7, U+<span class="number">8</span>fba-<span class="number">8</span>fbc, U+<span class="number">8</span>fbf, U+<span class="number">8</span>fc2, U+<span class="number">8</span>fcb, U+<span class="number">8</span>fcd, U+<span class="number">8</span>fd3, U+<span class="number">8</span>fd5, U+<span class="number">8</span>fd7, U+<span class="number">8</span>fda;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [34] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.34.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">8</span>caf-<span class="number">8</span>cb0, U+<span class="number">8</span>cb3-<span class="number">8</span>cb4, U+<span class="number">8</span>cb6-<span class="number">8</span>cb9, U+<span class="number">8</span>cbb-<span class="number">8</span>cbd, U+<span class="number">8</span>cbf-<span class="number">8</span>cc4, U+<span class="number">8</span>cc7-<span class="number">8</span>cc8, U+<span class="number">8</span>cca, U+<span class="number">8</span>ccd, U+<span class="number">8</span>cd1, U+<span class="number">8</span>cd3, U+<span class="number">8</span>cdb-<span class="number">8</span>cdc, U+<span class="number">8</span>cde, U+<span class="number">8</span>ce0, U+<span class="number">8</span>ce2-<span class="number">8</span>ce4, U+<span class="number">8</span>ce6-<span class="number">8</span>ce8, U+<span class="number">8</span>cea, U+<span class="number">8</span>ced, U+<span class="number">8</span>cf4, U+<span class="number">8</span>cf8, U+<span class="number">8</span>cfa, U+<span class="number">8</span>cfc-<span class="number">8</span>cfd, U+<span class="number">8</span>d04-<span class="number">8</span>d05, U+<span class="number">8</span>d07-<span class="number">8</span>d08, U+<span class="number">8</span>d0a, U+<span class="number">8</span>d0d, U+<span class="number">8</span>d0f, U+<span class="number">8</span>d13-<span class="number">8</span>d14, U+<span class="number">8</span>d16, U+<span class="number">8</span>d1b, U+<span class="number">8</span>d20, U+<span class="number">8</span>d2e, U+<span class="number">8</span>d30, U+<span class="number">8</span>d32-<span class="number">8</span>d33, U+<span class="number">8</span>d36, U+<span class="number">8</span>d3b, U+<span class="number">8</span>d3d, U+<span class="number">8</span>d40, U+<span class="number">8</span>d42-<span class="number">8</span>d43, U+<span class="number">8</span>d45-<span class="number">8</span>d46, U+<span class="number">8</span>d48-<span class="number">8</span>d4a, U+<span class="number">8</span>d4d, U+<span class="number">8</span>d51, U+<span class="number">8</span>d53, U+<span class="number">8</span>d55, U+<span class="number">8</span>d59, U+<span class="number">8</span>d5c-<span class="number">8</span>d5d, U+<span class="number">8</span>d5f, U+<span class="number">8</span>d61, U+<span class="number">8</span>d66-<span class="number">8</span>d67, U+<span class="number">8</span>d6a, U+<span class="number">8</span>d6d, U+<span class="number">8</span>d71, U+<span class="number">8</span>d73, U+<span class="number">8</span>d84, U+<span class="number">8</span>d90-<span class="number">8</span>d91, U+<span class="number">8</span>d94-<span class="number">8</span>d95, U+<span class="number">8</span>d99, U+<span class="number">8</span>da8, U+<span class="number">8</span>daf, U+<span class="number">8</span>db1, U+<span class="number">8</span>db5, U+<span class="number">8</span>db8, U+<span class="number">8</span>dba, U+<span class="number">8</span>dbc, U+<span class="number">8</span>dbf, U+<span class="number">8</span>dc2, U+<span class="number">8</span>dc4, U+<span class="number">8</span>dc6, U+<span class="number">8</span>dcb, U+<span class="number">8</span>dce-<span class="number">8</span>dcf, U+<span class="number">8</span>dd6-<span class="number">8</span>dd7, U+<span class="number">8</span>dda-<span class="number">8</span>ddb, U+<span class="number">8</span>dde, U+<span class="number">8</span>de1, U+<span class="number">8</span>de3-<span class="number">8</span>de4, U+<span class="number">8</span>de9, U+<span class="number">8</span>deb-<span class="number">8</span>dec, U+<span class="number">8</span>df0-<span class="number">8</span>df1, U+<span class="number">8</span>df6-<span class="number">8</span>dfd, U+<span class="number">8</span>e05, U+<span class="number">8</span>e07, U+<span class="number">8</span>e09-<span class="number">8</span>e0a, U+<span class="number">8</span>e0c, U+<span class="number">8</span>e0e, U+<span class="number">8</span>e10, U+<span class="number">8</span>e14, U+<span class="number">8</span>e1d-<span class="number">8</span>e1f, U+<span class="number">8</span>e23, U+<span class="number">8</span>e26, U+<span class="number">8</span>e2b-<span class="number">8</span>e2c;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [35] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.35.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">8</span>b5e, U+<span class="number">8</span>b60, U+<span class="number">8</span>b6c, U+<span class="number">8</span>b6f-<span class="number">8</span>b70, U+<span class="number">8</span>b72, U+<span class="number">8</span>b74, U+<span class="number">8</span>b77, U+<span class="number">8</span>b7d, U+<span class="number">8</span>b80, U+<span class="number">8</span>b83, U+<span class="number">8</span>b8a, U+<span class="number">8</span>b8c, U+<span class="number">8</span>b90, U+<span class="number">8</span>b93, U+<span class="number">8</span>b99-<span class="number">8</span>b9a, U+<span class="number">8</span>ba0, U+<span class="number">8</span>ba3, U+<span class="number">8</span>ba5-<span class="number">8</span>ba7, U+<span class="number">8</span>baa-<span class="number">8</span>bac, U+<span class="number">8</span>bb3-<span class="number">8</span>bb5, U+<span class="number">8</span>bb7, U+<span class="number">8</span>bb9, U+<span class="number">8</span>bc2-<span class="number">8</span>bc3, U+<span class="number">8</span>bc5, U+<span class="number">8</span>bcb-<span class="number">8</span>bcc, U+<span class="number">8</span>bce-<span class="number">8</span>bd0, U+<span class="number">8</span>bd2-<span class="number">8</span>bd4, U+<span class="number">8</span>bd6, U+<span class="number">8</span>bd8-<span class="number">8</span>bd9, U+<span class="number">8</span>bdc, U+<span class="number">8</span>bdf, U+<span class="number">8</span>be3-<span class="number">8</span>be4, U+<span class="number">8</span>be7-<span class="number">8</span>be9, U+<span class="number">8</span>beb-<span class="number">8</span>bec, U+<span class="number">8</span>bee, U+<span class="number">8</span>bf0, U+<span class="number">8</span>bf2-<span class="number">8</span>bf3, U+<span class="number">8</span>bf6, U+<span class="number">8</span>bf9, U+<span class="number">8</span>bfc-<span class="number">8</span>bfd, U+<span class="number">8</span>bff-<span class="number">8</span>c00, U+<span class="number">8</span>c02, U+<span class="number">8</span>c04, U+<span class="number">8</span>c06-<span class="number">8</span>c07, U+<span class="number">8</span>c0c, U+<span class="number">8</span>c0f, U+<span class="number">8</span>c11-<span class="number">8</span>c12, U+<span class="number">8</span>c14-<span class="number">8</span>c1b, U+<span class="number">8</span>c1d-<span class="number">8</span>c21, U+<span class="number">8</span>c24-<span class="number">8</span>c25, U+<span class="number">8</span>c27, U+<span class="number">8</span>c2a-<span class="number">8</span>c2c, U+<span class="number">8</span>c2e-<span class="number">8</span>c30, U+<span class="number">8</span>c32-<span class="number">8</span>c36, U+<span class="number">8</span>c3f, U+<span class="number">8</span>c47-<span class="number">8</span>c4c, U+<span class="number">8</span>c4e-<span class="number">8</span>c50, U+<span class="number">8</span>c54-<span class="number">8</span>c56, U+<span class="number">8</span>c62, U+<span class="number">8</span>c68, U+<span class="number">8</span>c6c, U+<span class="number">8</span>c73, U+<span class="number">8</span>c78, U+<span class="number">8</span>c7a, U+<span class="number">8</span>c82, U+<span class="number">8</span>c85, U+<span class="number">8</span>c89-<span class="number">8</span>c8a, U+<span class="number">8</span>c8d-<span class="number">8</span>c8e, U+<span class="number">8</span>c90, U+<span class="number">8</span>c93-<span class="number">8</span>c94, U+<span class="number">8</span>c98, U+<span class="number">8</span>c9d-<span class="number">8</span>c9e, U+<span class="number">8</span>ca0-<span class="number">8</span>ca2, U+<span class="number">8</span>ca7-<span class="number">8</span>cac;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [36] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.36.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">8</span>a02-<span class="number">8</span>a03, U+<span class="number">8</span>a07-<span class="number">8</span>a0a, U+<span class="number">8</span>a0e-<span class="number">8</span>a0f, U+<span class="number">8</span>a13, U+<span class="number">8</span>a15-<span class="number">8</span>a18, U+<span class="number">8</span>a1a-<span class="number">8</span>a1b, U+<span class="number">8</span>a1d, U+<span class="number">8</span>a1f, U+<span class="number">8</span>a22-<span class="number">8</span>a23, U+<span class="number">8</span>a25, U+<span class="number">8</span>a2b, U+<span class="number">8</span>a2d, U+<span class="number">8</span>a31, U+<span class="number">8</span>a33-<span class="number">8</span>a34, U+<span class="number">8</span>a36-<span class="number">8</span>a38, U+<span class="number">8</span>a3a, U+<span class="number">8</span>a3c, U+<span class="number">8</span>a3e, U+<span class="number">8</span>a40-<span class="number">8</span>a41, U+<span class="number">8</span>a46, U+<span class="number">8</span>a48, U+<span class="number">8</span>a50, U+<span class="number">8</span>a52, U+<span class="number">8</span>a54-<span class="number">8</span>a55, U+<span class="number">8</span>a58, U+<span class="number">8</span>a5b, U+<span class="number">8</span>a5d-<span class="number">8</span>a63, U+<span class="number">8</span>a66, U+<span class="number">8</span>a69-<span class="number">8</span>a6b, U+<span class="number">8</span>a6d-<span class="number">8</span>a6e, U+<span class="number">8</span>a70, U+<span class="number">8</span>a72-<span class="number">8</span>a73, U+<span class="number">8</span>a7a, U+<span class="number">8</span>a85, U+<span class="number">8</span>a87, U+<span class="number">8</span>a8a, U+<span class="number">8</span>a8c-<span class="number">8</span>a8d, U+<span class="number">8</span>a90-<span class="number">8</span>a92, U+<span class="number">8</span>a95, U+<span class="number">8</span>a98, U+<span class="number">8</span>aa0-<span class="number">8</span>aa1, U+<span class="number">8</span>aa3-<span class="number">8</span>aa6, U+<span class="number">8</span>aa8-<span class="number">8</span>aa9, U+<span class="number">8</span>aac-<span class="number">8</span>aae, U+<span class="number">8</span>ab0, U+<span class="number">8</span>ab2, U+<span class="number">8</span>ab8-<span class="number">8</span>ab9, U+<span class="number">8</span>abc, U+<span class="number">8</span>abe-<span class="number">8</span>abf, U+<span class="number">8</span>ac7, U+<span class="number">8</span>acf, U+<span class="number">8</span>ad2, U+<span class="number">8</span>ad6-<span class="number">8</span>ad7, U+<span class="number">8</span>adb-<span class="number">8</span>adc, U+<span class="number">8</span>adf, U+<span class="number">8</span>ae1, U+<span class="number">8</span>ae6-<span class="number">8</span>ae8, U+<span class="number">8</span>aeb, U+<span class="number">8</span>aed-<span class="number">8</span>aee, U+<span class="number">8</span>af1, U+<span class="number">8</span>af3-<span class="number">8</span>af4, U+<span class="number">8</span>af7-<span class="number">8</span>af8, U+<span class="number">8</span>afa, U+<span class="number">8</span>afe, U+<span class="number">8</span>b00-<span class="number">8</span>b02, U+<span class="number">8</span>b07, U+<span class="number">8</span>b0a, U+<span class="number">8</span>b0c, U+<span class="number">8</span>b0e, U+<span class="number">8</span>b10, U+<span class="number">8</span>b17, U+<span class="number">8</span>b19, U+<span class="number">8</span>b1b, U+<span class="number">8</span>b1d, U+<span class="number">8</span>b20-<span class="number">8</span>b21, U+<span class="number">8</span>b26, U+<span class="number">8</span>b28, U+<span class="number">8</span>b2c, U+<span class="number">8</span>b33, U+<span class="number">8</span>b39, U+<span class="number">8</span>b3e-<span class="number">8</span>b3f, U+<span class="number">8</span>b41, U+<span class="number">8</span>b45, U+<span class="number">8</span>b49, U+<span class="number">8</span>b4c, U+<span class="number">8</span>b4f, U+<span class="number">8</span>b57-<span class="number">8</span>b58, U+<span class="number">8</span>b5a, U+<span class="number">8</span>b5c;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [37] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.37.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">8869</span>-<span class="number">886</span>a, U+<span class="number">886</span>e-<span class="number">886</span>f, U+<span class="number">8872</span>, U+<span class="number">8879</span>, U+<span class="number">887</span>d-<span class="number">887</span>f, U+<span class="number">8882</span>, U+<span class="number">8884</span>-<span class="number">8886</span>, U+<span class="number">8888</span>, U+<span class="number">888</span>f, U+<span class="number">8892</span>-<span class="number">8893</span>, U+<span class="number">889</span>b, U+<span class="number">88</span>a2, U+<span class="number">88</span>a4, U+<span class="number">88</span>a6, U+<span class="number">88</span>a8, U+<span class="number">88</span>aa, U+<span class="number">88</span>ae, U+<span class="number">88</span>b1, U+<span class="number">88</span>b4, U+<span class="number">88</span>b7, U+<span class="number">88</span>bc, U+<span class="number">88</span>c0, U+<span class="number">88</span>c6-<span class="number">88</span>c9, U+<span class="number">88</span>ce-<span class="number">88</span>cf, U+<span class="number">88</span>d1-<span class="number">88</span>d3, U+<span class="number">88</span>d8, U+<span class="number">88</span>db-<span class="number">88</span>dd, U+<span class="number">88</span>df, U+<span class="number">88</span>e1-<span class="number">88</span>e3, U+<span class="number">88</span>e5, U+<span class="number">88</span>e8, U+<span class="number">88</span>ec, U+<span class="number">88</span>f0-<span class="number">88</span>f1, U+<span class="number">88</span>f3-<span class="number">88</span>f4, U+<span class="number">88</span>fc-<span class="number">88</span>fe, U+<span class="number">8900</span>, U+<span class="number">8902</span>, U+<span class="number">8906</span>-<span class="number">8907</span>, U+<span class="number">8909</span>-<span class="number">890</span>c, U+<span class="number">8912</span>-<span class="number">8915</span>, U+<span class="number">8918</span>-<span class="number">891</span>b, U+<span class="number">8921</span>, U+<span class="number">8925</span>, U+<span class="number">892</span>b, U+<span class="number">8930</span>, U+<span class="number">8932</span>, U+<span class="number">8934</span>, U+<span class="number">8936</span>, U+<span class="number">893</span>b, U+<span class="number">893</span>d, U+<span class="number">8941</span>, U+<span class="number">894</span>c, U+<span class="number">8955</span>-<span class="number">8956</span>, U+<span class="number">8959</span>, U+<span class="number">895</span>c, U+<span class="number">895</span>e-<span class="number">8960</span>, U+<span class="number">8966</span>, U+<span class="number">896</span>a, U+<span class="number">896</span>c, U+<span class="number">896</span>f-<span class="number">8970</span>, U+<span class="number">8972</span>, U+<span class="number">897</span>b, U+<span class="number">897</span>e, U+<span class="number">8980</span>, U+<span class="number">8983</span>, U+<span class="number">8985</span>, U+<span class="number">8987</span>-<span class="number">8988</span>, U+<span class="number">898</span>c, U+<span class="number">898</span>f, U+<span class="number">8993</span>, U+<span class="number">8997</span>, U+<span class="number">899</span>a, U+<span class="number">89</span>a1, U+<span class="number">89</span>a7, U+<span class="number">89</span>a9-<span class="number">89</span>aa, U+<span class="number">89</span>b2-<span class="number">89</span>b3, U+<span class="number">89</span>b7, U+<span class="number">89</span>c0, U+<span class="number">89</span>c7, U+<span class="number">89</span>ca-<span class="number">89</span>cc, U+<span class="number">89</span>ce-<span class="number">89</span>d1, U+<span class="number">89</span>d6, U+<span class="number">89</span>da, U+<span class="number">89</span>dc, U+<span class="number">89</span>de, U+<span class="number">89</span>e5, U+<span class="number">89</span>e7, U+<span class="number">89</span>eb, U+<span class="number">89</span>ef, U+<span class="number">89</span>f1, U+<span class="number">89</span>f3-<span class="number">89</span>f4, U+<span class="number">89</span>f8, U+<span class="number">89</span>ff, U+<span class="number">8</span>a01;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [38] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.38.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">86</span>e4, U+<span class="number">86</span>e6, U+<span class="number">86</span>e9, U+<span class="number">86</span>ed, U+<span class="number">86</span>ef-<span class="number">86</span>f4, U+<span class="number">86</span>f8-<span class="number">86</span>f9, U+<span class="number">86</span>fb, U+<span class="number">86</span>fe, U+<span class="number">8703</span>, U+<span class="number">8706</span>-<span class="number">870</span>a, U+<span class="number">870</span>d, U+<span class="number">8711</span>-<span class="number">8713</span>, U+<span class="number">871</span>a, U+<span class="number">871</span>e, U+<span class="number">8722</span>-<span class="number">8723</span>, U+<span class="number">8725</span>, U+<span class="number">8729</span>, U+<span class="number">872</span>e, U+<span class="number">8731</span>, U+<span class="number">8734</span>, U+<span class="number">8737</span>, U+<span class="number">873</span>a-<span class="number">873</span>b, U+<span class="number">873</span>e-<span class="number">8740</span>, U+<span class="number">8742</span>, U+<span class="number">8747</span>-<span class="number">8748</span>, U+<span class="number">8753</span>, U+<span class="number">8755</span>, U+<span class="number">8757</span>-<span class="number">8758</span>, U+<span class="number">875</span>d, U+<span class="number">875</span>f, U+<span class="number">8762</span>-<span class="number">8766</span>, U+<span class="number">8768</span>, U+<span class="number">876</span>e, U+<span class="number">8770</span>, U+<span class="number">8772</span>, U+<span class="number">8775</span>, U+<span class="number">8778</span>, U+<span class="number">877</span>b-<span class="number">877</span>e, U+<span class="number">8782</span>, U+<span class="number">8785</span>, U+<span class="number">8788</span>, U+<span class="number">878</span>b, U+<span class="number">8793</span>, U+<span class="number">8797</span>, U+<span class="number">879</span>a, U+<span class="number">879</span>e-<span class="number">87</span>a0, U+<span class="number">87</span>a2-<span class="number">87</span>a3, U+<span class="number">87</span>a8, U+<span class="number">87</span>ab-<span class="number">87</span>ad, U+<span class="number">87</span>af, U+<span class="number">87</span>b3, U+<span class="number">87</span>b5, U+<span class="number">87</span>bd, U+<span class="number">87</span>c0, U+<span class="number">87</span>c4, U+<span class="number">87</span>c6, U+<span class="number">87</span>ca-<span class="number">87</span>cb, U+<span class="number">87</span>d1-<span class="number">87</span>d2, U+<span class="number">87</span>db-<span class="number">87</span>dc, U+<span class="number">87</span>de, U+<span class="number">87</span>e0, U+<span class="number">87</span>e5, U+<span class="number">87</span>ea, U+<span class="number">87</span>ec, U+<span class="number">87</span>ee, U+<span class="number">87</span>f2-<span class="number">87</span>f3, U+<span class="number">87</span>fb, U+<span class="number">87</span>fd-<span class="number">87</span>fe, U+<span class="number">8802</span>-<span class="number">8803</span>, U+<span class="number">8805</span>, U+<span class="number">880</span>a-<span class="number">880</span>b, U+<span class="number">880</span>d, U+<span class="number">8813</span>-<span class="number">8816</span>, U+<span class="number">8819</span>, U+<span class="number">881</span>b, U+<span class="number">881</span>f, U+<span class="number">8821</span>, U+<span class="number">8823</span>, U+<span class="number">8831</span>-<span class="number">8832</span>, U+<span class="number">8835</span>-<span class="number">8836</span>, U+<span class="number">8839</span>, U+<span class="number">883</span>b-<span class="number">883</span>c, U+<span class="number">8844</span>, U+<span class="number">8846</span>, U+<span class="number">884</span>a, U+<span class="number">884</span>e, U+<span class="number">8852</span>-<span class="number">8853</span>, U+<span class="number">8855</span>, U+<span class="number">8859</span>, U+<span class="number">885</span>b, U+<span class="number">885</span>d-<span class="number">885</span>e, U+<span class="number">8862</span>, U+<span class="number">8864</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [39] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.39.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">8532</span>, U+<span class="number">8534</span>-<span class="number">8535</span>, U+<span class="number">8538</span>-<span class="number">853</span>a, U+<span class="number">853</span>c, U+<span class="number">8543</span>, U+<span class="number">8545</span>, U+<span class="number">8548</span>, U+<span class="number">854</span>e, U+<span class="number">8553</span>, U+<span class="number">8556</span>-<span class="number">8557</span>, U+<span class="number">8559</span>, U+<span class="number">855</span>e, U+<span class="number">8561</span>, U+<span class="number">8564</span>-<span class="number">8565</span>, U+<span class="number">8568</span>-<span class="number">856</span>a, U+<span class="number">856</span>d, U+<span class="number">856</span>f-<span class="number">8570</span>, U+<span class="number">8572</span>, U+<span class="number">8576</span>, U+<span class="number">8579</span>-<span class="number">857</span>b, U+<span class="number">8580</span>, U+<span class="number">8585</span>-<span class="number">8586</span>, U+<span class="number">8588</span>, U+<span class="number">858</span>a, U+<span class="number">858</span>f, U+<span class="number">8591</span>, U+<span class="number">8594</span>, U+<span class="number">8599</span>, U+<span class="number">859</span>c, U+<span class="number">85</span>a2, U+<span class="number">85</span>a4, U+<span class="number">85</span>a6, U+<span class="number">85</span>a8-<span class="number">85</span>a9, U+<span class="number">85</span>ab-<span class="number">85</span>ac, U+<span class="number">85</span>ae, U+<span class="number">85</span>b7-<span class="number">85</span>b9, U+<span class="number">85</span>be, U+<span class="number">85</span>c1, U+<span class="number">85</span>c7, U+<span class="number">85</span>cd, U+<span class="number">85</span>d0, U+<span class="number">85</span>d3, U+<span class="number">85</span>d5, U+<span class="number">85</span>dc-<span class="number">85</span>dd, U+<span class="number">85</span>df-<span class="number">85</span>e0, U+<span class="number">85</span>e5-<span class="number">85</span>e6, U+<span class="number">85</span>e8-<span class="number">85</span>ea, U+<span class="number">85</span>f4, U+<span class="number">85</span>f9, U+<span class="number">85</span>fe-<span class="number">85</span>ff, U+<span class="number">8602</span>, U+<span class="number">8605</span>-<span class="number">8607</span>, U+<span class="number">860</span>a-<span class="number">860</span>b, U+<span class="number">8616</span>, U+<span class="number">8618</span>, U+<span class="number">861</span>a, U+<span class="number">8627</span>, U+<span class="number">8629</span>, U+<span class="number">862</span>d, U+<span class="number">8638</span>, U+<span class="number">863</span>c, U+<span class="number">863</span>f, U+<span class="number">864</span>d, U+<span class="number">864</span>f, U+<span class="number">8652</span>-<span class="number">8655</span>, U+<span class="number">865</span>b-<span class="number">865</span>c, U+<span class="number">865</span>f, U+<span class="number">8662</span>, U+<span class="number">8667</span>, U+<span class="number">866</span>c, U+<span class="number">866</span>e, U+<span class="number">8671</span>, U+<span class="number">8675</span>, U+<span class="number">867</span>a-<span class="number">867</span>c, U+<span class="number">867</span>f, U+<span class="number">868</span>b, U+<span class="number">868</span>d, U+<span class="number">8693</span>, U+<span class="number">869</span>c-<span class="number">869</span>d, U+<span class="number">86</span>a1, U+<span class="number">86</span>a3-<span class="number">86</span>a4, U+<span class="number">86</span>a7-<span class="number">86</span>a9, U+<span class="number">86</span>ac, U+<span class="number">86</span>af-<span class="number">86</span>b1, U+<span class="number">86</span>b4-<span class="number">86</span>b6, U+<span class="number">86</span>ba, U+<span class="number">86</span>c0, U+<span class="number">86</span>c4, U+<span class="number">86</span>c6, U+<span class="number">86</span>c9-<span class="number">86</span>ca, U+<span class="number">86</span>cd-<span class="number">86</span>d1, U+<span class="number">86</span>d4, U+<span class="number">86</span>d8, U+<span class="number">86</span>de-<span class="number">86</span>df;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [40] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.40.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">83</span>b4, U+<span class="number">83</span>b6, U+<span class="number">83</span>b8, U+<span class="number">83</span>ba, U+<span class="number">83</span>bc-<span class="number">83</span>bd, U+<span class="number">83</span>bf-<span class="number">83</span>c0, U+<span class="number">83</span>c2, U+<span class="number">83</span>c5, U+<span class="number">83</span>c8-<span class="number">83</span>c9, U+<span class="number">83</span>cb, U+<span class="number">83</span>d1, U+<span class="number">83</span>d3-<span class="number">83</span>d6, U+<span class="number">83</span>d8, U+<span class="number">83</span>db, U+<span class="number">83</span>dd, U+<span class="number">83</span>df, U+<span class="number">83</span>e1, U+<span class="number">83</span>e5, U+<span class="number">83</span>ea-<span class="number">83</span>eb, U+<span class="number">83</span>f0, U+<span class="number">83</span>f4, U+<span class="number">83</span>f8-<span class="number">83</span>f9, U+<span class="number">83</span>fb, U+<span class="number">83</span>fd, U+<span class="number">83</span>ff, U+<span class="number">8401</span>, U+<span class="number">8406</span>, U+<span class="number">840</span>a-<span class="number">840</span>b, U+<span class="number">840</span>f, U+<span class="number">8411</span>, U+<span class="number">8418</span>, U+<span class="number">841</span>c, U+<span class="number">8420</span>, U+<span class="number">8422</span>-<span class="number">8424</span>, U+<span class="number">8426</span>, U+<span class="number">8429</span>, U+<span class="number">842</span>c, U+<span class="number">8438</span>-<span class="number">8439</span>, U+<span class="number">843</span>b-<span class="number">843</span>c, U+<span class="number">843</span>f, U+<span class="number">8446</span>-<span class="number">8447</span>, U+<span class="number">8449</span>, U+<span class="number">844</span>e, U+<span class="number">8451</span>-<span class="number">8452</span>, U+<span class="number">8456</span>, U+<span class="number">8459</span>-<span class="number">845</span>a, U+<span class="number">845</span>c, U+<span class="number">8462</span>, U+<span class="number">8466</span>, U+<span class="number">846</span>d, U+<span class="number">846</span>f-<span class="number">8470</span>, U+<span class="number">8473</span>, U+<span class="number">8476</span>-<span class="number">8478</span>, U+<span class="number">847</span>a, U+<span class="number">847</span>d, U+<span class="number">8484</span>-<span class="number">8485</span>, U+<span class="number">8487</span>, U+<span class="number">8489</span>, U+<span class="number">848</span>c, U+<span class="number">848</span>e, U+<span class="number">8490</span>, U+<span class="number">8493</span>-<span class="number">8494</span>, U+<span class="number">8497</span>, U+<span class="number">849</span>b, U+<span class="number">849</span>e-<span class="number">849</span>f, U+<span class="number">84</span>a1, U+<span class="number">84</span>a5, U+<span class="number">84</span>a8, U+<span class="number">84</span>af, U+<span class="number">84</span>b4, U+<span class="number">84</span>b9-<span class="number">84</span>bf, U+<span class="number">84</span>c1-<span class="number">84</span>c2, U+<span class="number">84</span>c5-<span class="number">84</span>c7, U+<span class="number">84</span>ca-<span class="number">84</span>cb, U+<span class="number">84</span>cd, U+<span class="number">84</span>d0-<span class="number">84</span>d1, U+<span class="number">84</span>d3, U+<span class="number">84</span>d6, U+<span class="number">84</span>df-<span class="number">84</span>e0, U+<span class="number">84</span>e2-<span class="number">84</span>e3, U+<span class="number">84</span>e5-<span class="number">84</span>e7, U+<span class="number">84</span>ee, U+<span class="number">84</span>f3, U+<span class="number">84</span>f6, U+<span class="number">84</span>fa, U+<span class="number">84</span>fc, U+<span class="number">84</span>ff-<span class="number">8500</span>, U+<span class="number">850</span>c, U+<span class="number">8511</span>, U+<span class="number">8514</span>-<span class="number">8515</span>, U+<span class="number">8517</span>-<span class="number">8518</span>, U+<span class="number">851</span>f, U+<span class="number">8523</span>, U+<span class="number">8525</span>-<span class="number">8526</span>, U+<span class="number">8529</span>, U+<span class="number">852</span>b, U+<span class="number">852</span>d;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [41] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.41.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">82</span>a9-<span class="number">82</span>ab, U+<span class="number">82</span>ae, U+<span class="number">82</span>b0, U+<span class="number">82</span>b2, U+<span class="number">82</span>b4-<span class="number">82</span>b6, U+<span class="number">82</span>bc, U+<span class="number">82</span>be, U+<span class="number">82</span>c0-<span class="number">82</span>c2, U+<span class="number">82</span>c4-<span class="number">82</span>c8, U+<span class="number">82</span>ca-<span class="number">82</span>cc, U+<span class="number">82</span>ce, U+<span class="number">82</span>d0, U+<span class="number">82</span>d2-<span class="number">82</span>d3, U+<span class="number">82</span>d5-<span class="number">82</span>d6, U+<span class="number">82</span>d8-<span class="number">82</span>d9, U+<span class="number">82</span>dc-<span class="number">82</span>de, U+<span class="number">82</span>e0-<span class="number">82</span>e4, U+<span class="number">82</span>e7, U+<span class="number">82</span>e9-<span class="number">82</span>eb, U+<span class="number">82</span>ed-<span class="number">82</span>ee, U+<span class="number">82</span>f3-<span class="number">82</span>f4, U+<span class="number">82</span>f7-<span class="number">82</span>f8, U+<span class="number">82</span>fa-<span class="number">8301</span>, U+<span class="number">8306</span>-<span class="number">8308</span>, U+<span class="number">830</span>c-<span class="number">830</span>d, U+<span class="number">830</span>f, U+<span class="number">8311</span>, U+<span class="number">8313</span>-<span class="number">8315</span>, U+<span class="number">8318</span>, U+<span class="number">831</span>a-<span class="number">831</span>b, U+<span class="number">831</span>d, U+<span class="number">8324</span>, U+<span class="number">8327</span>, U+<span class="number">832</span>a, U+<span class="number">832</span>c-<span class="number">832</span>d, U+<span class="number">832</span>f, U+<span class="number">8331</span>-<span class="number">8334</span>, U+<span class="number">833</span>a-<span class="number">833</span>c, U+<span class="number">8340</span>, U+<span class="number">8343</span>-<span class="number">8345</span>, U+<span class="number">8347</span>-<span class="number">8348</span>, U+<span class="number">834</span>a, U+<span class="number">834</span>c, U+<span class="number">834</span>f, U+<span class="number">8351</span>, U+<span class="number">8356</span>, U+<span class="number">8358</span>-<span class="number">835</span>c, U+<span class="number">835</span>e, U+<span class="number">8360</span>, U+<span class="number">8364</span>-<span class="number">8366</span>, U+<span class="number">8368</span>-<span class="number">836</span>a, U+<span class="number">836</span>c-<span class="number">836</span>e, U+<span class="number">8373</span>, U+<span class="number">8378</span>, U+<span class="number">837</span>b-<span class="number">837</span>d, U+<span class="number">837</span>f-<span class="number">8380</span>, U+<span class="number">8382</span>, U+<span class="number">8388</span>, U+<span class="number">838</span>a-<span class="number">838</span>b, U+<span class="number">8392</span>, U+<span class="number">8394</span>, U+<span class="number">8396</span>, U+<span class="number">8398</span>-<span class="number">8399</span>, U+<span class="number">839</span>b-<span class="number">839</span>c, U+<span class="number">83</span>a0, U+<span class="number">83</span>a2-<span class="number">83</span>a3, U+<span class="number">83</span>a8-<span class="number">83</span>aa, U+<span class="number">83</span>ae-<span class="number">83</span>b0, U+<span class="number">83</span>b3;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [42] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.42.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">814</span>d-<span class="number">814</span>e, U+<span class="number">8151</span>, U+<span class="number">8153</span>, U+<span class="number">8158</span>-<span class="number">815</span>a, U+<span class="number">815</span>e, U+<span class="number">8160</span>, U+<span class="number">8166</span>-<span class="number">8169</span>, U+<span class="number">816</span>b, U+<span class="number">816</span>d, U+<span class="number">8171</span>, U+<span class="number">8173</span>-<span class="number">8174</span>, U+<span class="number">8178</span>, U+<span class="number">817</span>c-<span class="number">817</span>d, U+<span class="number">8182</span>, U+<span class="number">8188</span>, U+<span class="number">8191</span>, U+<span class="number">8198</span>-<span class="number">819</span>b, U+<span class="number">81</span>a0, U+<span class="number">81</span>a3, U+<span class="number">81</span>a5-<span class="number">81</span>a6, U+<span class="number">81</span>a9, U+<span class="number">81</span>b6, U+<span class="number">81</span>ba-<span class="number">81</span>bb, U+<span class="number">81</span>bd, U+<span class="number">81</span>bf, U+<span class="number">81</span>c1, U+<span class="number">81</span>c3, U+<span class="number">81</span>c6, U+<span class="number">81</span>c9-<span class="number">81</span>ca, U+<span class="number">81</span>cc-<span class="number">81</span>cd, U+<span class="number">81</span>d1, U+<span class="number">81</span>d3-<span class="number">81</span>d4, U+<span class="number">81</span>d8, U+<span class="number">81</span>db-<span class="number">81</span>dc, U+<span class="number">81</span>de-<span class="number">81</span>df, U+<span class="number">81</span>e5, U+<span class="number">81</span>e7-<span class="number">81</span>e9, U+<span class="number">81</span>eb-<span class="number">81</span>ec, U+<span class="number">81</span>ee-<span class="number">81</span>ef, U+<span class="number">81</span>f5, U+<span class="number">81</span>f8, U+<span class="number">81</span>fa, U+<span class="number">81</span>fc, U+<span class="number">81</span>fe, U+<span class="number">8200</span>-<span class="number">8202</span>, U+<span class="number">8204</span>, U+<span class="number">8208</span>-<span class="number">820</span>a, U+<span class="number">820</span>e-<span class="number">8210</span>, U+<span class="number">8216</span>-<span class="number">8218</span>, U+<span class="number">821</span>b-<span class="number">821</span>c, U+<span class="number">8221</span>-<span class="number">8224</span>, U+<span class="number">8226</span>-<span class="number">8228</span>, U+<span class="number">822</span>b, U+<span class="number">822</span>d, U+<span class="number">822</span>f, U+<span class="number">8232</span>-<span class="number">8234</span>, U+<span class="number">8237</span>-<span class="number">8238</span>, U+<span class="number">823</span>a-<span class="number">823</span>b, U+<span class="number">823</span>e, U+<span class="number">8244</span>, U+<span class="number">8249</span>, U+<span class="number">824</span>b, U+<span class="number">824</span>f, U+<span class="number">8259</span>-<span class="number">825</span>a, U+<span class="number">825</span>f, U+<span class="number">8266</span>, U+<span class="number">8268</span>, U+<span class="number">826</span>e, U+<span class="number">8271</span>, U+<span class="number">8276</span>-<span class="number">8279</span>, U+<span class="number">827</span>d, U+<span class="number">827</span>f, U+<span class="number">8283</span>-<span class="number">8284</span>, U+<span class="number">8288</span>-<span class="number">828</span>a, U+<span class="number">828</span>d-<span class="number">8291</span>, U+<span class="number">8293</span>-<span class="number">8294</span>, U+<span class="number">8296</span>-<span class="number">8298</span>, U+<span class="number">829</span>f-<span class="number">82</span>a1, U+<span class="number">82</span>a3-<span class="number">82</span>a4, U+<span class="number">82</span>a7-<span class="number">82</span>a8;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [43] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.43.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">7</span>ffa, U+<span class="number">7</span>ffe, U+<span class="number">8004</span>, U+<span class="number">8006</span>, U+<span class="number">800</span>b, U+<span class="number">800</span>e, U+<span class="number">8011</span>-<span class="number">8012</span>, U+<span class="number">8014</span>, U+<span class="number">8016</span>, U+<span class="number">8018</span>-<span class="number">8019</span>, U+<span class="number">801</span>c, U+<span class="number">801</span>e, U+<span class="number">8026</span>-<span class="number">802</span>a, U+<span class="number">8031</span>, U+<span class="number">8034</span>-<span class="number">8035</span>, U+<span class="number">8037</span>, U+<span class="number">8043</span>, U+<span class="number">804</span>b, U+<span class="number">804</span>d, U+<span class="number">8052</span>, U+<span class="number">8056</span>, U+<span class="number">8059</span>, U+<span class="number">805</span>e, U+<span class="number">8061</span>, U+<span class="number">8068</span>-<span class="number">8069</span>, U+<span class="number">806</span>e-<span class="number">8074</span>, U+<span class="number">8076</span>-<span class="number">8078</span>, U+<span class="number">807</span>c-<span class="number">8080</span>, U+<span class="number">8082</span>, U+<span class="number">8084</span>-<span class="number">8085</span>, U+<span class="number">8088</span>, U+<span class="number">808</span>f, U+<span class="number">8093</span>, U+<span class="number">809</span>c, U+<span class="number">809</span>f, U+<span class="number">80</span>ab, U+<span class="number">80</span>ad-<span class="number">80</span>ae, U+<span class="number">80</span>b1, U+<span class="number">80</span>b6-<span class="number">80</span>b8, U+<span class="number">80</span>bc-<span class="number">80</span>bd, U+<span class="number">80</span>c2, U+<span class="number">80</span>c4, U+<span class="number">80</span>ca, U+<span class="number">80</span>cd, U+<span class="number">80</span>d1, U+<span class="number">80</span>d4, U+<span class="number">80</span>d7, U+<span class="number">80</span>d9-<span class="number">80</span>db, U+<span class="number">80</span>dd, U+<span class="number">80</span>e0, U+<span class="number">80</span>e4-<span class="number">80</span>e5, U+<span class="number">80</span>e7-<span class="number">80</span>ed, U+<span class="number">80</span>ef-<span class="number">80</span>f1, U+<span class="number">80</span>f3-<span class="number">80</span>f4, U+<span class="number">80</span>fc, U+<span class="number">8101</span>, U+<span class="number">8104</span>-<span class="number">8105</span>, U+<span class="number">8107</span>-<span class="number">8108</span>, U+<span class="number">810</span>c-<span class="number">810</span>e, U+<span class="number">8112</span>-<span class="number">8115</span>, U+<span class="number">8117</span>-<span class="number">8119</span>, U+<span class="number">811</span>b-<span class="number">811</span>f, U+<span class="number">8121</span>-<span class="number">8130</span>, U+<span class="number">8132</span>-<span class="number">8134</span>, U+<span class="number">8137</span>, U+<span class="number">8139</span>, U+<span class="number">813</span>f-<span class="number">8140</span>, U+<span class="number">8142</span>, U+<span class="number">8146</span>, U+<span class="number">8148</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [44] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.44.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">7</span>ed7, U+<span class="number">7</span>edb, U+<span class="number">7</span>ee0-<span class="number">7</span>ee2, U+<span class="number">7</span>ee5-<span class="number">7</span>ee6, U+<span class="number">7</span>ee8, U+<span class="number">7</span>eeb, U+<span class="number">7</span>ef0-<span class="number">7</span>ef2, U+<span class="number">7</span>ef6, U+<span class="number">7</span>efa-<span class="number">7</span>efb, U+<span class="number">7</span>efe, U+<span class="number">7</span>f01-<span class="number">7</span>f04, U+<span class="number">7</span>f08, U+<span class="number">7</span>f0a-<span class="number">7</span>f12, U+<span class="number">7</span>f17, U+<span class="number">7</span>f19, U+<span class="number">7</span>f1b-<span class="number">7</span>f1c, U+<span class="number">7</span>f1f, U+<span class="number">7</span>f21-<span class="number">7</span>f23, U+<span class="number">7</span>f25-<span class="number">7</span>f28, U+<span class="number">7</span>f2a-<span class="number">7</span>f33, U+<span class="number">7</span>f35-<span class="number">7</span>f37, U+<span class="number">7</span>f3d, U+<span class="number">7</span>f42, U+<span class="number">7</span>f44-<span class="number">7</span>f45, U+<span class="number">7</span>f4c-<span class="number">7</span>f4d, U+<span class="number">7</span>f52, U+<span class="number">7</span>f54, U+<span class="number">7</span>f58-<span class="number">7</span>f59, U+<span class="number">7</span>f5d, U+<span class="number">7</span>f5f-<span class="number">7</span>f61, U+<span class="number">7</span>f63, U+<span class="number">7</span>f65, U+<span class="number">7</span>f68, U+<span class="number">7</span>f70-<span class="number">7</span>f71, U+<span class="number">7</span>f73-<span class="number">7</span>f75, U+<span class="number">7</span>f77, U+<span class="number">7</span>f79, U+<span class="number">7</span>f7d-<span class="number">7</span>f7e, U+<span class="number">7</span>f85-<span class="number">7</span>f86, U+<span class="number">7</span>f88-<span class="number">7</span>f89, U+<span class="number">7</span>f8b-<span class="number">7</span>f8c, U+<span class="number">7</span>f90-<span class="number">7</span>f91, U+<span class="number">7</span>f94-<span class="number">7</span>f96, U+<span class="number">7</span>f98-<span class="number">7</span>f9b, U+<span class="number">7</span>f9d, U+<span class="number">7</span>f9f, U+<span class="number">7</span>fa3, U+<span class="number">7</span>fa7-<span class="number">7</span>fa9, U+<span class="number">7</span>fac-<span class="number">7</span>fb2, U+<span class="number">7</span>fb4, U+<span class="number">7</span>fb6, U+<span class="number">7</span>fb8, U+<span class="number">7</span>fbc, U+<span class="number">7</span>fbf-<span class="number">7</span>fc0, U+<span class="number">7</span>fc3, U+<span class="number">7</span>fca, U+<span class="number">7</span>fcc, U+<span class="number">7</span>fce, U+<span class="number">7</span>fd2, U+<span class="number">7</span>fd5, U+<span class="number">7</span>fd9-<span class="number">7</span>fdb, U+<span class="number">7</span>fdf, U+<span class="number">7</span>fe3, U+<span class="number">7</span>fe5-<span class="number">7</span>fe7, U+<span class="number">7</span>fe9, U+<span class="number">7</span>feb-<span class="number">7</span>fec, U+<span class="number">7</span>fee-<span class="number">7</span>fef, U+<span class="number">7</span>ff1, U+<span class="number">7</span>ff3-<span class="number">7</span>ff4, U+<span class="number">7</span>ff9;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [45] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.45.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">7</span>dc4, U+<span class="number">7</span>dc7-<span class="number">7</span>dc8, U+<span class="number">7</span>dca-<span class="number">7</span>dcd, U+<span class="number">7</span>dcf, U+<span class="number">7</span>dd1-<span class="number">7</span>dd2, U+<span class="number">7</span>dd4, U+<span class="number">7</span>dd6-<span class="number">7</span>dd8, U+<span class="number">7</span>dda-<span class="number">7</span>de0, U+<span class="number">7</span>de2-<span class="number">7</span>de6, U+<span class="number">7</span>de8-<span class="number">7</span>ded, U+<span class="number">7</span>def, U+<span class="number">7</span>df1-<span class="number">7</span>df5, U+<span class="number">7</span>df7, U+<span class="number">7</span>df9, U+<span class="number">7</span>dfb-<span class="number">7</span>dfc, U+<span class="number">7</span>dfe-<span class="number">7</span>e02, U+<span class="number">7</span>e04, U+<span class="number">7</span>e08-<span class="number">7</span>e0b, U+<span class="number">7</span>e12, U+<span class="number">7</span>e1b, U+<span class="number">7</span>e1e, U+<span class="number">7</span>e20, U+<span class="number">7</span>e22-<span class="number">7</span>e23, U+<span class="number">7</span>e26, U+<span class="number">7</span>e29, U+<span class="number">7</span>e2b, U+<span class="number">7</span>e2e-<span class="number">7</span>e2f, U+<span class="number">7</span>e31, U+<span class="number">7</span>e37, U+<span class="number">7</span>e39-<span class="number">7</span>e3e, U+<span class="number">7</span>e40, U+<span class="number">7</span>e43-<span class="number">7</span>e44, U+<span class="number">7</span>e46-<span class="number">7</span>e47, U+<span class="number">7</span>e4a-<span class="number">7</span>e4b, U+<span class="number">7</span>e4d-<span class="number">7</span>e4e, U+<span class="number">7</span>e51, U+<span class="number">7</span>e54-<span class="number">7</span>e56, U+<span class="number">7</span>e58-<span class="number">7</span>e5b, U+<span class="number">7</span>e5d-<span class="number">7</span>e5e, U+<span class="number">7</span>e61, U+<span class="number">7</span>e66-<span class="number">7</span>e67, U+<span class="number">7</span>e69-<span class="number">7</span>e6b, U+<span class="number">7</span>e6d, U+<span class="number">7</span>e70, U+<span class="number">7</span>e73, U+<span class="number">7</span>e77, U+<span class="number">7</span>e79, U+<span class="number">7</span>e7b-<span class="number">7</span>e7d, U+<span class="number">7</span>e81-<span class="number">7</span>e82, U+<span class="number">7</span>e8c-<span class="number">7</span>e8d, U+<span class="number">7</span>e8f, U+<span class="number">7</span>e92-<span class="number">7</span>e94, U+<span class="number">7</span>e96, U+<span class="number">7</span>e98, U+<span class="number">7</span>e9a-<span class="number">7</span>e9c, U+<span class="number">7</span>e9e-<span class="number">7</span>e9f, U+<span class="number">7</span>ea1, U+<span class="number">7</span>ea3, U+<span class="number">7</span>ea5, U+<span class="number">7</span>ea8-<span class="number">7</span>ea9, U+<span class="number">7</span>eab, U+<span class="number">7</span>ead-<span class="number">7</span>eae, U+<span class="number">7</span>eb0, U+<span class="number">7</span>ebb, U+<span class="number">7</span>ebe, U+<span class="number">7</span>ec0-<span class="number">7</span>ec2, U+<span class="number">7</span>ec9, U+<span class="number">7</span>ecb-<span class="number">7</span>ecc, U+<span class="number">7</span>ed0, U+<span class="number">7</span>ed4;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [46] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.46.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">7</span>ccc-<span class="number">7</span>ccd, U+<span class="number">7</span>cd7, U+<span class="number">7</span>cdc, U+<span class="number">7</span>cde, U+<span class="number">7</span>ce0, U+<span class="number">7</span>ce4-<span class="number">7</span>ce5, U+<span class="number">7</span>ce7-<span class="number">7</span>ce8, U+<span class="number">7</span>cec, U+<span class="number">7</span>cf0, U+<span class="number">7</span>cf5-<span class="number">7</span>cf9, U+<span class="number">7</span>cfc, U+<span class="number">7</span>cfe, U+<span class="number">7</span>d00, U+<span class="number">7</span>d04-<span class="number">7</span>d0b, U+<span class="number">7</span>d0d, U+<span class="number">7</span>d10-<span class="number">7</span>d14, U+<span class="number">7</span>d17-<span class="number">7</span>d19, U+<span class="number">7</span>d1b-<span class="number">7</span>d1f, U+<span class="number">7</span>d21, U+<span class="number">7</span>d24-<span class="number">7</span>d26, U+<span class="number">7</span>d28-<span class="number">7</span>d2a, U+<span class="number">7</span>d2c-<span class="number">7</span>d2e, U+<span class="number">7</span>d30-<span class="number">7</span>d31, U+<span class="number">7</span>d33, U+<span class="number">7</span>d35-<span class="number">7</span>d36, U+<span class="number">7</span>d38-<span class="number">7</span>d3a, U+<span class="number">7</span>d40, U+<span class="number">7</span>d42-<span class="number">7</span>d44, U+<span class="number">7</span>d46, U+<span class="number">7</span>d4b-<span class="number">7</span>d4c, U+<span class="number">7</span>d4f, U+<span class="number">7</span>d51, U+<span class="number">7</span>d54-<span class="number">7</span>d56, U+<span class="number">7</span>d58, U+<span class="number">7</span>d5b-<span class="number">7</span>d5c, U+<span class="number">7</span>d5e, U+<span class="number">7</span>d61-<span class="number">7</span>d63, U+<span class="number">7</span>d66, U+<span class="number">7</span>d68, U+<span class="number">7</span>d6a-<span class="number">7</span>d6c, U+<span class="number">7</span>d6f, U+<span class="number">7</span>d71-<span class="number">7</span>d73, U+<span class="number">7</span>d75-<span class="number">7</span>d77, U+<span class="number">7</span>d79-<span class="number">7</span>d7a, U+<span class="number">7</span>d7e, U+<span class="number">7</span>d81, U+<span class="number">7</span>d84-<span class="number">7</span>d8b, U+<span class="number">7</span>d8d, U+<span class="number">7</span>d8f, U+<span class="number">7</span>d91, U+<span class="number">7</span>d94, U+<span class="number">7</span>d96, U+<span class="number">7</span>d98-<span class="number">7</span>d9a, U+<span class="number">7</span>d9c-<span class="number">7</span>da0, U+<span class="number">7</span>da2, U+<span class="number">7</span>da6, U+<span class="number">7</span>daa-<span class="number">7</span>db1, U+<span class="number">7</span>db4-<span class="number">7</span>db8, U+<span class="number">7</span>dba-<span class="number">7</span>dbf, U+<span class="number">7</span>dc1;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [47] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.47.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">7</span>bc3-<span class="number">7</span>bc4, U+<span class="number">7</span>bc6, U+<span class="number">7</span>bc8-<span class="number">7</span>bcc, U+<span class="number">7</span>bd1, U+<span class="number">7</span>bd3-<span class="number">7</span>bd4, U+<span class="number">7</span>bd9-<span class="number">7</span>bda, U+<span class="number">7</span>bdd, U+<span class="number">7</span>be0-<span class="number">7</span>be1, U+<span class="number">7</span>be4-<span class="number">7</span>be6, U+<span class="number">7</span>be9-<span class="number">7</span>bea, U+<span class="number">7</span>bef, U+<span class="number">7</span>bf4, U+<span class="number">7</span>bf6, U+<span class="number">7</span>bfc, U+<span class="number">7</span>bfe, U+<span class="number">7</span>c01, U+<span class="number">7</span>c03, U+<span class="number">7</span>c07-<span class="number">7</span>c08, U+<span class="number">7</span>c0a-<span class="number">7</span>c0d, U+<span class="number">7</span>c0f, U+<span class="number">7</span>c11, U+<span class="number">7</span>c15-<span class="number">7</span>c16, U+<span class="number">7</span>c19, U+<span class="number">7</span>c1e-<span class="number">7</span>c21, U+<span class="number">7</span>c23-<span class="number">7</span>c24, U+<span class="number">7</span>c26, U+<span class="number">7</span>c28-<span class="number">7</span>c33, U+<span class="number">7</span>c35, U+<span class="number">7</span>c37-<span class="number">7</span>c3b, U+<span class="number">7</span>c3d-<span class="number">7</span>c3e, U+<span class="number">7</span>c40-<span class="number">7</span>c41, U+<span class="number">7</span>c43, U+<span class="number">7</span>c47-<span class="number">7</span>c48, U+<span class="number">7</span>c4c, U+<span class="number">7</span>c50, U+<span class="number">7</span>c53-<span class="number">7</span>c54, U+<span class="number">7</span>c59, U+<span class="number">7</span>c5f-<span class="number">7</span>c60, U+<span class="number">7</span>c63-<span class="number">7</span>c65, U+<span class="number">7</span>c6c, U+<span class="number">7</span>c6e, U+<span class="number">7</span>c72, U+<span class="number">7</span>c74, U+<span class="number">7</span>c79-<span class="number">7</span>c7a, U+<span class="number">7</span>c7c, U+<span class="number">7</span>c81-<span class="number">7</span>c82, U+<span class="number">7</span>c84-<span class="number">7</span>c85, U+<span class="number">7</span>c88, U+<span class="number">7</span>c8a-<span class="number">7</span>c91, U+<span class="number">7</span>c93-<span class="number">7</span>c96, U+<span class="number">7</span>c99, U+<span class="number">7</span>c9b-<span class="number">7</span>c9e, U+<span class="number">7</span>ca0-<span class="number">7</span>ca2, U+<span class="number">7</span>ca6-<span class="number">7</span>ca9, U+<span class="number">7</span>cac, U+<span class="number">7</span>caf-<span class="number">7</span>cb3, U+<span class="number">7</span>cb5-<span class="number">7</span>cb7, U+<span class="number">7</span>cba-<span class="number">7</span>cbd, U+<span class="number">7</span>cbf-<span class="number">7</span>cc2, U+<span class="number">7</span>cc5, U+<span class="number">7</span>cc7-<span class="number">7</span>cc9;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [48] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.48.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">7</span>aca, U+<span class="number">7</span>ad1-<span class="number">7</span>ad2, U+<span class="number">7</span>ada-<span class="number">7</span>add, U+<span class="number">7</span>ae1, U+<span class="number">7</span>ae4, U+<span class="number">7</span>ae6, U+<span class="number">7</span>af4-<span class="number">7</span>af7, U+<span class="number">7</span>afa-<span class="number">7</span>afb, U+<span class="number">7</span>afd-<span class="number">7</span>b0a, U+<span class="number">7</span>b0c, U+<span class="number">7</span>b0e-<span class="number">7</span>b0f, U+<span class="number">7</span>b13, U+<span class="number">7</span>b15-<span class="number">7</span>b16, U+<span class="number">7</span>b18-<span class="number">7</span>b19, U+<span class="number">7</span>b1e-<span class="number">7</span>b20, U+<span class="number">7</span>b22-<span class="number">7</span>b25, U+<span class="number">7</span>b29-<span class="number">7</span>b2b, U+<span class="number">7</span>b2d-<span class="number">7</span>b2e, U+<span class="number">7</span>b30-<span class="number">7</span>b3b, U+<span class="number">7</span>b3e-<span class="number">7</span>b3f, U+<span class="number">7</span>b41-<span class="number">7</span>b42, U+<span class="number">7</span>b44-<span class="number">7</span>b47, U+<span class="number">7</span>b4a, U+<span class="number">7</span>b4c-<span class="number">7</span>b50, U+<span class="number">7</span>b58, U+<span class="number">7</span>b5a, U+<span class="number">7</span>b5c, U+<span class="number">7</span>b60, U+<span class="number">7</span>b66-<span class="number">7</span>b67, U+<span class="number">7</span>b69, U+<span class="number">7</span>b6c-<span class="number">7</span>b6f, U+<span class="number">7</span>b72-<span class="number">7</span>b76, U+<span class="number">7</span>b7b-<span class="number">7</span>b7d, U+<span class="number">7</span>b7f, U+<span class="number">7</span>b82, U+<span class="number">7</span>b85, U+<span class="number">7</span>b87, U+<span class="number">7</span>b8b-<span class="number">7</span>b96, U+<span class="number">7</span>b98-<span class="number">7</span>b99, U+<span class="number">7</span>b9b-<span class="number">7</span>b9f, U+<span class="number">7</span>ba2-<span class="number">7</span>ba4, U+<span class="number">7</span>ba6-<span class="number">7</span>bac, U+<span class="number">7</span>bae-<span class="number">7</span>bb0, U+<span class="number">7</span>bb4, U+<span class="number">7</span>bb7-<span class="number">7</span>bb9, U+<span class="number">7</span>bbb, U+<span class="number">7</span>bc0-<span class="number">7</span>bc1;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [49] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.49.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">797</span>c, U+<span class="number">797</span>e-<span class="number">7980</span>, U+<span class="number">7982</span>, U+<span class="number">7986</span>-<span class="number">7987</span>, U+<span class="number">7989</span>-<span class="number">798</span>e, U+<span class="number">7992</span>, U+<span class="number">7994</span>-<span class="number">7995</span>, U+<span class="number">7997</span>-<span class="number">7998</span>, U+<span class="number">799</span>a-<span class="number">799</span>c, U+<span class="number">799</span>f, U+<span class="number">79</span>a3-<span class="number">79</span>a6, U+<span class="number">79</span>a8-<span class="number">79</span>ac, U+<span class="number">79</span>ae-<span class="number">79</span>b1, U+<span class="number">79</span>b3-<span class="number">79</span>b5, U+<span class="number">79</span>b8, U+<span class="number">79</span>ba, U+<span class="number">79</span>bf, U+<span class="number">79</span>c2, U+<span class="number">79</span>c6, U+<span class="number">79</span>c8, U+<span class="number">79</span>cf, U+<span class="number">79</span>d5-<span class="number">79</span>d6, U+<span class="number">79</span>dd-<span class="number">79</span>de, U+<span class="number">79</span>e3, U+<span class="number">79</span>e7-<span class="number">79</span>e8, U+<span class="number">79</span>eb, U+<span class="number">79</span>ed, U+<span class="number">79</span>f4, U+<span class="number">79</span>f7-<span class="number">79</span>f8, U+<span class="number">79</span>fa, U+<span class="number">79</span>fe, U+<span class="number">7</span>a02-<span class="number">7</span>a03, U+<span class="number">7</span>a05, U+<span class="number">7</span>a0a, U+<span class="number">7</span>a14, U+<span class="number">7</span>a17, U+<span class="number">7</span>a19, U+<span class="number">7</span>a1c, U+<span class="number">7</span>a1e-<span class="number">7</span>a1f, U+<span class="number">7</span>a23, U+<span class="number">7</span>a25-<span class="number">7</span>a26, U+<span class="number">7</span>a2c, U+<span class="number">7</span>a2e, U+<span class="number">7</span>a30-<span class="number">7</span>a32, U+<span class="number">7</span>a36-<span class="number">7</span>a37, U+<span class="number">7</span>a39, U+<span class="number">7</span>a3c, U+<span class="number">7</span>a40, U+<span class="number">7</span>a42, U+<span class="number">7</span>a47, U+<span class="number">7</span>a49, U+<span class="number">7</span>a4c-<span class="number">7</span>a4f, U+<span class="number">7</span>a51, U+<span class="number">7</span>a55, U+<span class="number">7</span>a5b, U+<span class="number">7</span>a5d-<span class="number">7</span>a5e, U+<span class="number">7</span>a62-<span class="number">7</span>a63, U+<span class="number">7</span>a66, U+<span class="number">7</span>a68-<span class="number">7</span>a69, U+<span class="number">7</span>a6b, U+<span class="number">7</span>a70, U+<span class="number">7</span>a78, U+<span class="number">7</span>a80, U+<span class="number">7</span>a85-<span class="number">7</span>a88, U+<span class="number">7</span>a8a, U+<span class="number">7</span>a90, U+<span class="number">7</span>a93-<span class="number">7</span>a96, U+<span class="number">7</span>a98, U+<span class="number">7</span>a9b-<span class="number">7</span>a9c, U+<span class="number">7</span>a9e, U+<span class="number">7</span>aa0-<span class="number">7</span>aa1, U+<span class="number">7</span>aa3, U+<span class="number">7</span>aa8-<span class="number">7</span>aaa, U+<span class="number">7</span>aac-<span class="number">7</span>ab0, U+<span class="number">7</span>ab3, U+<span class="number">7</span>ab8, U+<span class="number">7</span>aba, U+<span class="number">7</span>abd-<span class="number">7</span>abf, U+<span class="number">7</span>ac4-<span class="number">7</span>ac5, U+<span class="number">7</span>ac7-<span class="number">7</span>ac8;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [50] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.50.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">783</span>e, U+<span class="number">7841</span>-<span class="number">7844</span>, U+<span class="number">7847</span>-<span class="number">7849</span>, U+<span class="number">784</span>b-<span class="number">784</span>c, U+<span class="number">784</span>e-<span class="number">7854</span>, U+<span class="number">7856</span>-<span class="number">7857</span>, U+<span class="number">7859</span>-<span class="number">785</span>a, U+<span class="number">7865</span>, U+<span class="number">7869</span>-<span class="number">786</span>a, U+<span class="number">786</span>d, U+<span class="number">786</span>f, U+<span class="number">7876</span>-<span class="number">7877</span>, U+<span class="number">787</span>c, U+<span class="number">787</span>e-<span class="number">787</span>f, U+<span class="number">7881</span>, U+<span class="number">7887</span>-<span class="number">7889</span>, U+<span class="number">7893</span>-<span class="number">7894</span>, U+<span class="number">7898</span>-<span class="number">789</span>e, U+<span class="number">78</span>a1, U+<span class="number">78</span>a3, U+<span class="number">78</span>a5, U+<span class="number">78</span>a9, U+<span class="number">78</span>ad, U+<span class="number">78</span>b2, U+<span class="number">78</span>b4, U+<span class="number">78</span>b6, U+<span class="number">78</span>b9-<span class="number">78</span>ba, U+<span class="number">78</span>bc, U+<span class="number">78</span>bf, U+<span class="number">78</span>c3, U+<span class="number">78</span>c9, U+<span class="number">78</span>cb, U+<span class="number">78</span>d0-<span class="number">78</span>d2, U+<span class="number">78</span>d4, U+<span class="number">78</span>d9-<span class="number">78</span>da, U+<span class="number">78</span>dc, U+<span class="number">78</span>de, U+<span class="number">78</span>e1, U+<span class="number">78</span>e5-<span class="number">78</span>e6, U+<span class="number">78</span>ea, U+<span class="number">78</span>ec, U+<span class="number">78</span>ef, U+<span class="number">78</span>f1-<span class="number">78</span>f2, U+<span class="number">78</span>f4, U+<span class="number">78</span>fa-<span class="number">78</span>fb, U+<span class="number">78</span>fe, U+<span class="number">7901</span>-<span class="number">7902</span>, U+<span class="number">7905</span>, U+<span class="number">7907</span>, U+<span class="number">7909</span>, U+<span class="number">790</span>b-<span class="number">790</span>c, U+<span class="number">790</span>e, U+<span class="number">7910</span>, U+<span class="number">7913</span>, U+<span class="number">7919</span>-<span class="number">791</span>b, U+<span class="number">791</span>e-<span class="number">791</span>f, U+<span class="number">7921</span>, U+<span class="number">7924</span>, U+<span class="number">7926</span>, U+<span class="number">792</span>a-<span class="number">792</span>b, U+<span class="number">7934</span>, U+<span class="number">7936</span>, U+<span class="number">7939</span>, U+<span class="number">793</span>b, U+<span class="number">793</span>d, U+<span class="number">7940</span>, U+<span class="number">7942</span>-<span class="number">7943</span>, U+<span class="number">7945</span>-<span class="number">7947</span>, U+<span class="number">7949</span>-<span class="number">794</span>a, U+<span class="number">794</span>c, U+<span class="number">794</span>e-<span class="number">7951</span>, U+<span class="number">7953</span>-<span class="number">7955</span>, U+<span class="number">7957</span>-<span class="number">795</span>a, U+<span class="number">795</span>c, U+<span class="number">795</span>f-<span class="number">7960</span>, U+<span class="number">7962</span>, U+<span class="number">7964</span>, U+<span class="number">7966</span>-<span class="number">7967</span>, U+<span class="number">7969</span>, U+<span class="number">796</span>b, U+<span class="number">796</span>f, U+<span class="number">7972</span>, U+<span class="number">7974</span>, U+<span class="number">7979</span>, U+<span class="number">797</span>b;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [51] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.51.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">770</span>f, U+<span class="number">7712</span>, U+<span class="number">7714</span>, U+<span class="number">7716</span>, U+<span class="number">7719</span>-<span class="number">771</span>b, U+<span class="number">771</span>e, U+<span class="number">7721</span>-<span class="number">7722</span>, U+<span class="number">7726</span>, U+<span class="number">7728</span>, U+<span class="number">772</span>b-<span class="number">7730</span>, U+<span class="number">7732</span>-<span class="number">7736</span>, U+<span class="number">7739</span>-<span class="number">773</span>a, U+<span class="number">773</span>d-<span class="number">773</span>f, U+<span class="number">7743</span>, U+<span class="number">7746</span>-<span class="number">7747</span>, U+<span class="number">774</span>c-<span class="number">774</span>f, U+<span class="number">7751</span>-<span class="number">7752</span>, U+<span class="number">7758</span>-<span class="number">775</span>a, U+<span class="number">775</span>c-<span class="number">775</span>e, U+<span class="number">7762</span>, U+<span class="number">7765</span>-<span class="number">7766</span>, U+<span class="number">7768</span>-<span class="number">776</span>a, U+<span class="number">776</span>c-<span class="number">776</span>d, U+<span class="number">7771</span>-<span class="number">7772</span>, U+<span class="number">777</span>a, U+<span class="number">777</span>c-<span class="number">777</span>e, U+<span class="number">7780</span>, U+<span class="number">7785</span>, U+<span class="number">7787</span>, U+<span class="number">778</span>b-<span class="number">778</span>d, U+<span class="number">778</span>f-<span class="number">7791</span>, U+<span class="number">7793</span>, U+<span class="number">779</span>e-<span class="number">77</span>a0, U+<span class="number">77</span>a2, U+<span class="number">77</span>a5, U+<span class="number">77</span>ad, U+<span class="number">77</span>af, U+<span class="number">77</span>b4-<span class="number">77</span>b7, U+<span class="number">77</span>bd-<span class="number">77</span>c0, U+<span class="number">77</span>c2, U+<span class="number">77</span>c5, U+<span class="number">77</span>c7, U+<span class="number">77</span>cd, U+<span class="number">77</span>d6-<span class="number">77</span>d7, U+<span class="number">77</span>d9-<span class="number">77</span>da, U+<span class="number">77</span>dd-<span class="number">77</span>de, U+<span class="number">77</span>e7, U+<span class="number">77</span>ea, U+<span class="number">77</span>ec, U+<span class="number">77</span>ef, U+<span class="number">77</span>f8, U+<span class="number">77</span>fb, U+<span class="number">77</span>fd-<span class="number">77</span>fe, U+<span class="number">7800</span>, U+<span class="number">7803</span>, U+<span class="number">7806</span>, U+<span class="number">7809</span>, U+<span class="number">780</span>f-<span class="number">7812</span>, U+<span class="number">7815</span>, U+<span class="number">7817</span>-<span class="number">7818</span>, U+<span class="number">781</span>a-<span class="number">781</span>f, U+<span class="number">7821</span>-<span class="number">7823</span>, U+<span class="number">7825</span>-<span class="number">7827</span>, U+<span class="number">7829</span>, U+<span class="number">782</span>b-<span class="number">7830</span>, U+<span class="number">7832</span>-<span class="number">7833</span>, U+<span class="number">7835</span>, U+<span class="number">7837</span>, U+<span class="number">7839</span>-<span class="number">783</span>c;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [52] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.52.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">760</span>a-<span class="number">760</span>e, U+<span class="number">7610</span>-<span class="number">7619</span>, U+<span class="number">761</span>b-<span class="number">761</span>d, U+<span class="number">761</span>f-<span class="number">7622</span>, U+<span class="number">7625</span>, U+<span class="number">7627</span>-<span class="number">762</span>a, U+<span class="number">762</span>e-<span class="number">7630</span>, U+<span class="number">7632</span>-<span class="number">7635</span>, U+<span class="number">7638</span>-<span class="number">763</span>a, U+<span class="number">763</span>c-<span class="number">763</span>d, U+<span class="number">763</span>f-<span class="number">7640</span>, U+<span class="number">7642</span>-<span class="number">7643</span>, U+<span class="number">7647</span>-<span class="number">7648</span>, U+<span class="number">764</span>d-<span class="number">764</span>e, U+<span class="number">7652</span>, U+<span class="number">7654</span>, U+<span class="number">7658</span>, U+<span class="number">765</span>a, U+<span class="number">765</span>c, U+<span class="number">765</span>e-<span class="number">765</span>f, U+<span class="number">7661</span>-<span class="number">7663</span>, U+<span class="number">7665</span>, U+<span class="number">7669</span>, U+<span class="number">766</span>c, U+<span class="number">766</span>e-<span class="number">766</span>f, U+<span class="number">7671</span>-<span class="number">7673</span>, U+<span class="number">7675</span>-<span class="number">7676</span>, U+<span class="number">7678</span>-<span class="number">767</span>a, U+<span class="number">767</span>f, U+<span class="number">7681</span>, U+<span class="number">7683</span>, U+<span class="number">7688</span>, U+<span class="number">768</span>a-<span class="number">768</span>c, U+<span class="number">768</span>e, U+<span class="number">7690</span>-<span class="number">7692</span>, U+<span class="number">7695</span>, U+<span class="number">7698</span>, U+<span class="number">769</span>a-<span class="number">769</span>b, U+<span class="number">769</span>d-<span class="number">76</span>a0, U+<span class="number">76</span>a2, U+<span class="number">76</span>a4-<span class="number">76</span>a7, U+<span class="number">76</span>ab-<span class="number">76</span>ac, U+<span class="number">76</span>af-<span class="number">76</span>b0, U+<span class="number">76</span>b2, U+<span class="number">76</span>b4-<span class="number">76</span>b5, U+<span class="number">76</span>ba-<span class="number">76</span>bb, U+<span class="number">76</span>bf, U+<span class="number">76</span>c2-<span class="number">76</span>c3, U+<span class="number">76</span>c5, U+<span class="number">76</span>c9, U+<span class="number">76</span>cc-<span class="number">76</span>ce, U+<span class="number">76</span>dc-<span class="number">76</span>de, U+<span class="number">76</span>e1-<span class="number">76</span>ea, U+<span class="number">76</span>f1, U+<span class="number">76</span>f9-<span class="number">76</span>fb, U+<span class="number">76</span>fd, U+<span class="number">76</span>ff-<span class="number">7700</span>, U+<span class="number">7703</span>-<span class="number">7704</span>, U+<span class="number">7707</span>-<span class="number">7708</span>, U+<span class="number">770</span>c-<span class="number">770</span>e;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [53] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.53.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">74</span>ef, U+<span class="number">74</span>f4, U+<span class="number">74</span>ff, U+<span class="number">7501</span>, U+<span class="number">7503</span>, U+<span class="number">7505</span>, U+<span class="number">7508</span>, U+<span class="number">750</span>d, U+<span class="number">750</span>f, U+<span class="number">7511</span>, U+<span class="number">7513</span>, U+<span class="number">7515</span>, U+<span class="number">7517</span>, U+<span class="number">7519</span>, U+<span class="number">7521</span>-<span class="number">7527</span>, U+<span class="number">752</span>a, U+<span class="number">752</span>c-<span class="number">752</span>d, U+<span class="number">752</span>f, U+<span class="number">7534</span>, U+<span class="number">7536</span>, U+<span class="number">753</span>a, U+<span class="number">753</span>e, U+<span class="number">7540</span>, U+<span class="number">7544</span>, U+<span class="number">7547</span>-<span class="number">754</span>b, U+<span class="number">754</span>d-<span class="number">754</span>e, U+<span class="number">7550</span>-<span class="number">7553</span>, U+<span class="number">7556</span>-<span class="number">7557</span>, U+<span class="number">755</span>a-<span class="number">755</span>b, U+<span class="number">755</span>d-<span class="number">755</span>e, U+<span class="number">7560</span>, U+<span class="number">7562</span>, U+<span class="number">7564</span>, U+<span class="number">7566</span>-<span class="number">7568</span>, U+<span class="number">756</span>b-<span class="number">756</span>c, U+<span class="number">756</span>f-<span class="number">7573</span>, U+<span class="number">7575</span>, U+<span class="number">7579</span>-<span class="number">757</span>c, U+<span class="number">757</span>e-<span class="number">757</span>f, U+<span class="number">7581</span>-<span class="number">7584</span>, U+<span class="number">7587</span>, U+<span class="number">7589</span>-<span class="number">758</span>e, U+<span class="number">7590</span>, U+<span class="number">7592</span>, U+<span class="number">7594</span>, U+<span class="number">7596</span>, U+<span class="number">7599</span>-<span class="number">759</span>a, U+<span class="number">759</span>d, U+<span class="number">759</span>f-<span class="number">75</span>a0, U+<span class="number">75</span>a3, U+<span class="number">75</span>a5, U+<span class="number">75</span>a8, U+<span class="number">75</span>ac-<span class="number">75</span>ad, U+<span class="number">75</span>b0-<span class="number">75</span>b1, U+<span class="number">75</span>b3-<span class="number">75</span>b5, U+<span class="number">75</span>b8, U+<span class="number">75</span>bd, U+<span class="number">75</span>c1-<span class="number">75</span>c4, U+<span class="number">75</span>c8-<span class="number">75</span>ca, U+<span class="number">75</span>cc-<span class="number">75</span>cd, U+<span class="number">75</span>d4, U+<span class="number">75</span>d6, U+<span class="number">75</span>d9, U+<span class="number">75</span>de, U+<span class="number">75</span>e0, U+<span class="number">75</span>e2-<span class="number">75</span>e4, U+<span class="number">75</span>e6-<span class="number">75</span>ea, U+<span class="number">75</span>f1-<span class="number">75</span>f3, U+<span class="number">75</span>f7, U+<span class="number">75</span>f9-<span class="number">75</span>fa, U+<span class="number">75</span>fc, U+<span class="number">75</span>fe-<span class="number">7601</span>, U+<span class="number">7603</span>, U+<span class="number">7605</span>-<span class="number">7606</span>, U+<span class="number">7608</span>-<span class="number">7609</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [54] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.54.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">73</span>e7-<span class="number">73</span>ea, U+<span class="number">73</span>ee-<span class="number">73</span>f0, U+<span class="number">73</span>f2, U+<span class="number">73</span>f4-<span class="number">73</span>f5, U+<span class="number">73</span>f7, U+<span class="number">73</span>f9-<span class="number">73</span>fa, U+<span class="number">73</span>fc-<span class="number">73</span>fd, U+<span class="number">73</span>ff-<span class="number">7402</span>, U+<span class="number">7404</span>, U+<span class="number">7407</span>-<span class="number">7408</span>, U+<span class="number">740</span>a-<span class="number">740</span>f, U+<span class="number">7418</span>, U+<span class="number">741</span>a-<span class="number">741</span>c, U+<span class="number">741</span>e, U+<span class="number">7424</span>-<span class="number">7425</span>, U+<span class="number">7428</span>-<span class="number">7429</span>, U+<span class="number">742</span>c-<span class="number">7430</span>, U+<span class="number">7432</span>, U+<span class="number">7435</span>-<span class="number">7436</span>, U+<span class="number">7438</span>-<span class="number">743</span>b, U+<span class="number">743</span>e-<span class="number">7441</span>, U+<span class="number">7443</span>-<span class="number">7446</span>, U+<span class="number">7448</span>, U+<span class="number">744</span>a-<span class="number">744</span>b, U+<span class="number">7452</span>, U+<span class="number">7457</span>, U+<span class="number">745</span>b, U+<span class="number">745</span>d, U+<span class="number">7460</span>, U+<span class="number">7462</span>-<span class="number">7465</span>, U+<span class="number">7467</span>-<span class="number">746</span>a, U+<span class="number">746</span>d, U+<span class="number">746</span>f, U+<span class="number">7471</span>, U+<span class="number">7473</span>-<span class="number">7474</span>, U+<span class="number">7477</span>, U+<span class="number">747</span>a, U+<span class="number">747</span>e, U+<span class="number">7481</span>-<span class="number">7482</span>, U+<span class="number">7484</span>, U+<span class="number">7486</span>, U+<span class="number">7488</span>-<span class="number">748</span>b, U+<span class="number">748</span>e-<span class="number">748</span>f, U+<span class="number">7493</span>, U+<span class="number">7498</span>, U+<span class="number">749</span>a, U+<span class="number">749</span>c-<span class="number">74</span>a0, U+<span class="number">74</span>a3, U+<span class="number">74</span>a6, U+<span class="number">74</span>a9-<span class="number">74</span>aa, U+<span class="number">74</span>ae, U+<span class="number">74</span>b0-<span class="number">74</span>b2, U+<span class="number">74</span>b6, U+<span class="number">74</span>b8-<span class="number">74</span>ba, U+<span class="number">74</span>bd, U+<span class="number">74</span>bf, U+<span class="number">74</span>c1, U+<span class="number">74</span>c3, U+<span class="number">74</span>c5, U+<span class="number">74</span>c8, U+<span class="number">74</span>ca, U+<span class="number">74</span>cc, U+<span class="number">74</span>cf, U+<span class="number">74</span>d1-<span class="number">74</span>d2, U+<span class="number">74</span>d4-<span class="number">74</span>d5, U+<span class="number">74</span>d8-<span class="number">74</span>db, U+<span class="number">74</span>de-<span class="number">74</span>e0, U+<span class="number">74</span>e2, U+<span class="number">74</span>e4-<span class="number">74</span>e5, U+<span class="number">74</span>e7-<span class="number">74</span>e9, U+<span class="number">74</span>ee;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [55] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.55.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">72</span>dd-<span class="number">72</span>df, U+<span class="number">72</span>e1, U+<span class="number">72</span>e5-<span class="number">72</span>e6, U+<span class="number">72</span>e8, U+<span class="number">72</span>ef-<span class="number">72</span>f0, U+<span class="number">72</span>f2-<span class="number">72</span>f4, U+<span class="number">72</span>f6-<span class="number">72</span>f7, U+<span class="number">72</span>f9-<span class="number">72</span>fb, U+<span class="number">72</span>fd, U+<span class="number">7300</span>-<span class="number">7304</span>, U+<span class="number">7307</span>, U+<span class="number">730</span>a-<span class="number">730</span>c, U+<span class="number">7313</span>-<span class="number">7317</span>, U+<span class="number">731</span>d-<span class="number">7322</span>, U+<span class="number">7327</span>, U+<span class="number">7329</span>, U+<span class="number">732</span>c-<span class="number">732</span>d, U+<span class="number">7330</span>-<span class="number">7331</span>, U+<span class="number">7333</span>, U+<span class="number">7335</span>-<span class="number">7337</span>, U+<span class="number">7339</span>, U+<span class="number">733</span>d-<span class="number">733</span>e, U+<span class="number">7340</span>, U+<span class="number">7342</span>, U+<span class="number">7344</span>-<span class="number">7345</span>, U+<span class="number">734</span>a, U+<span class="number">734</span>d-<span class="number">7350</span>, U+<span class="number">7352</span>, U+<span class="number">7355</span>, U+<span class="number">7357</span>, U+<span class="number">7359</span>, U+<span class="number">735</span>f-<span class="number">7360</span>, U+<span class="number">7362</span>-<span class="number">7363</span>, U+<span class="number">7365</span>, U+<span class="number">7368</span>, U+<span class="number">736</span>c-<span class="number">736</span>d, U+<span class="number">736</span>f-<span class="number">7370</span>, U+<span class="number">7372</span>, U+<span class="number">7374</span>-<span class="number">7376</span>, U+<span class="number">7378</span>, U+<span class="number">737</span>a-<span class="number">737</span>b, U+<span class="number">737</span>d-<span class="number">737</span>e, U+<span class="number">7382</span>-<span class="number">7383</span>, U+<span class="number">7386</span>, U+<span class="number">7388</span>, U+<span class="number">738</span>a, U+<span class="number">738</span>c-<span class="number">7393</span>, U+<span class="number">7395</span>, U+<span class="number">7397</span>-<span class="number">739</span>a, U+<span class="number">739</span>c, U+<span class="number">739</span>e, U+<span class="number">73</span>a0-<span class="number">73</span>a3, U+<span class="number">73</span>a5-<span class="number">73</span>a8, U+<span class="number">73</span>aa, U+<span class="number">73</span>ad, U+<span class="number">73</span>b1, U+<span class="number">73</span>b3, U+<span class="number">73</span>b6-<span class="number">73</span>b7, U+<span class="number">73</span>b9, U+<span class="number">73</span>c2, U+<span class="number">73</span>c5-<span class="number">73</span>c9, U+<span class="number">73</span>cc, U+<span class="number">73</span>ce-<span class="number">73</span>d0, U+<span class="number">73</span>d2, U+<span class="number">73</span>d6, U+<span class="number">73</span>d9, U+<span class="number">73</span>db-<span class="number">73</span>de, U+<span class="number">73</span>e3, U+<span class="number">73</span>e5-<span class="number">73</span>e6;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [56] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.56.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">719</span>c, U+<span class="number">71</span>a0, U+<span class="number">71</span>a4-<span class="number">71</span>a5, U+<span class="number">71</span>a8, U+<span class="number">71</span>af, U+<span class="number">71</span>b1-<span class="number">71</span>bc, U+<span class="number">71</span>be, U+<span class="number">71</span>c1-<span class="number">71</span>c2, U+<span class="number">71</span>c4, U+<span class="number">71</span>c8-<span class="number">71</span>cb, U+<span class="number">71</span>ce-<span class="number">71</span>d0, U+<span class="number">71</span>d2, U+<span class="number">71</span>d4, U+<span class="number">71</span>d9-<span class="number">71</span>da, U+<span class="number">71</span>dc, U+<span class="number">71</span>df-<span class="number">71</span>e0, U+<span class="number">71</span>e6-<span class="number">71</span>e8, U+<span class="number">71</span>ea, U+<span class="number">71</span>ed-<span class="number">71</span>ee, U+<span class="number">71</span>f4, U+<span class="number">71</span>f6, U+<span class="number">71</span>f9, U+<span class="number">71</span>fb-<span class="number">71</span>fc, U+<span class="number">71</span>ff-<span class="number">7200</span>, U+<span class="number">7207</span>, U+<span class="number">720</span>c-<span class="number">720</span>d, U+<span class="number">7210</span>, U+<span class="number">7216</span>, U+<span class="number">721</span>a-<span class="number">721</span>e, U+<span class="number">7223</span>, U+<span class="number">7228</span>, U+<span class="number">722</span>b, U+<span class="number">722</span>d-<span class="number">722</span>e, U+<span class="number">7230</span>, U+<span class="number">7232</span>, U+<span class="number">723</span>a-<span class="number">723</span>c, U+<span class="number">723</span>e-<span class="number">7242</span>, U+<span class="number">7246</span>, U+<span class="number">724</span>b, U+<span class="number">724</span>d-<span class="number">724</span>e, U+<span class="number">7252</span>, U+<span class="number">7256</span>, U+<span class="number">7258</span>, U+<span class="number">725</span>a, U+<span class="number">725</span>c-<span class="number">725</span>d, U+<span class="number">7260</span>, U+<span class="number">7264</span>-<span class="number">7266</span>, U+<span class="number">726</span>a, U+<span class="number">726</span>c, U+<span class="number">726</span>e-<span class="number">726</span>f, U+<span class="number">7271</span>, U+<span class="number">7273</span>-<span class="number">7274</span>, U+<span class="number">7278</span>, U+<span class="number">727</span>b, U+<span class="number">727</span>d-<span class="number">727</span>e, U+<span class="number">7281</span>-<span class="number">7282</span>, U+<span class="number">7284</span>, U+<span class="number">7287</span>, U+<span class="number">728</span>a, U+<span class="number">728</span>d, U+<span class="number">728</span>f, U+<span class="number">7292</span>, U+<span class="number">729</span>b, U+<span class="number">729</span>f-<span class="number">72</span>a0, U+<span class="number">72</span>a7, U+<span class="number">72</span>ad-<span class="number">72</span>ae, U+<span class="number">72</span>b0-<span class="number">72</span>b5, U+<span class="number">72</span>b7-<span class="number">72</span>b8, U+<span class="number">72</span>ba-<span class="number">72</span>be, U+<span class="number">72</span>c0-<span class="number">72</span>c1, U+<span class="number">72</span>c3, U+<span class="number">72</span>c5-<span class="number">72</span>c6, U+<span class="number">72</span>c8, U+<span class="number">72</span>cc-<span class="number">72</span>ce, U+<span class="number">72</span>d2, U+<span class="number">72</span>d6, U+<span class="number">72</span>db;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [57] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.57.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">7005</span>-<span class="number">7006</span>, U+<span class="number">7009</span>, U+<span class="number">700</span>b, U+<span class="number">700</span>d, U+<span class="number">7015</span>, U+<span class="number">7018</span>, U+<span class="number">701</span>b, U+<span class="number">701</span>d-<span class="number">701</span>f, U+<span class="number">7023</span>, U+<span class="number">7026</span>-<span class="number">7028</span>, U+<span class="number">702</span>c, U+<span class="number">702</span>e-<span class="number">7030</span>, U+<span class="number">7035</span>, U+<span class="number">7037</span>, U+<span class="number">7039</span>-<span class="number">703</span>a, U+<span class="number">703</span>c-<span class="number">703</span>e, U+<span class="number">7044</span>, U+<span class="number">7049</span>-<span class="number">704</span>b, U+<span class="number">704</span>f, U+<span class="number">7051</span>, U+<span class="number">7058</span>, U+<span class="number">705</span>a, U+<span class="number">705</span>c-<span class="number">705</span>e, U+<span class="number">7061</span>, U+<span class="number">7064</span>, U+<span class="number">7066</span>, U+<span class="number">706</span>c, U+<span class="number">707</span>d, U+<span class="number">7080</span>-<span class="number">7081</span>, U+<span class="number">7085</span>-<span class="number">7086</span>, U+<span class="number">708</span>a, U+<span class="number">708</span>f, U+<span class="number">7091</span>, U+<span class="number">7094</span>-<span class="number">7095</span>, U+<span class="number">7098</span>-<span class="number">7099</span>, U+<span class="number">709</span>c-<span class="number">709</span>d, U+<span class="number">709</span>f, U+<span class="number">70</span>a4, U+<span class="number">70</span>a9-<span class="number">70</span>aa, U+<span class="number">70</span>af-<span class="number">70</span>b2, U+<span class="number">70</span>b4-<span class="number">70</span>b7, U+<span class="number">70</span>bb, U+<span class="number">70</span>c0, U+<span class="number">70</span>c3, U+<span class="number">70</span>c7, U+<span class="number">70</span>cb, U+<span class="number">70</span>ce-<span class="number">70</span>cf, U+<span class="number">70</span>d4, U+<span class="number">70</span>d9-<span class="number">70</span>da, U+<span class="number">70</span>dc-<span class="number">70</span>dd, U+<span class="number">70</span>e0, U+<span class="number">70</span>e9, U+<span class="number">70</span>ec, U+<span class="number">70</span>f7, U+<span class="number">70</span>fa, U+<span class="number">70</span>fd, U+<span class="number">70</span>ff, U+<span class="number">7104</span>, U+<span class="number">7108</span>-<span class="number">7109</span>, U+<span class="number">710</span>c, U+<span class="number">7110</span>, U+<span class="number">7113</span>-<span class="number">7114</span>, U+<span class="number">7116</span>-<span class="number">7118</span>, U+<span class="number">711</span>c, U+<span class="number">711</span>e, U+<span class="number">7120</span>, U+<span class="number">712</span>e-<span class="number">712</span>f, U+<span class="number">7131</span>, U+<span class="number">713</span>c, U+<span class="number">7142</span>, U+<span class="number">7144</span>-<span class="number">7147</span>, U+<span class="number">7149</span>-<span class="number">714</span>b, U+<span class="number">7150</span>, U+<span class="number">7152</span>, U+<span class="number">7155</span>-<span class="number">7156</span>, U+<span class="number">7159</span>-<span class="number">715</span>a, U+<span class="number">715</span>c, U+<span class="number">7161</span>, U+<span class="number">7165</span>-<span class="number">7166</span>, U+<span class="number">7168</span>-<span class="number">7169</span>, U+<span class="number">716</span>d, U+<span class="number">7173</span>-<span class="number">7174</span>, U+<span class="number">7176</span>, U+<span class="number">7178</span>, U+<span class="number">717</span>a, U+<span class="number">717</span>d, U+<span class="number">717</span>f-<span class="number">7180</span>, U+<span class="number">7184</span>, U+<span class="number">7186</span>-<span class="number">7188</span>, U+<span class="number">7192</span>, U+<span class="number">7198</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [58] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.58.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">6</span>ed8-<span class="number">6</span>ed9, U+<span class="number">6</span>edb, U+<span class="number">6</span>edd, U+<span class="number">6</span>edf-<span class="number">6</span>ee0, U+<span class="number">6</span>ee2, U+<span class="number">6</span>ee6, U+<span class="number">6</span>eea, U+<span class="number">6</span>eec, U+<span class="number">6</span>eee-<span class="number">6</span>eef, U+<span class="number">6</span>ef2-<span class="number">6</span>ef3, U+<span class="number">6</span>ef7-<span class="number">6</span>efa, U+<span class="number">6</span>efe, U+<span class="number">6</span>f01, U+<span class="number">6</span>f03, U+<span class="number">6</span>f08-<span class="number">6</span>f09, U+<span class="number">6</span>f15-<span class="number">6</span>f16, U+<span class="number">6</span>f19, U+<span class="number">6</span>f22-<span class="number">6</span>f25, U+<span class="number">6</span>f28-<span class="number">6</span>f2a, U+<span class="number">6</span>f2c-<span class="number">6</span>f2d, U+<span class="number">6</span>f2f, U+<span class="number">6</span>f31-<span class="number">6</span>f32, U+<span class="number">6</span>f36-<span class="number">6</span>f38, U+<span class="number">6</span>f3f, U+<span class="number">6</span>f43-<span class="number">6</span>f46, U+<span class="number">6</span>f48, U+<span class="number">6</span>f4b, U+<span class="number">6</span>f4e-<span class="number">6</span>f4f, U+<span class="number">6</span>f51, U+<span class="number">6</span>f54-<span class="number">6</span>f57, U+<span class="number">6</span>f59-<span class="number">6</span>f5b, U+<span class="number">6</span>f5e-<span class="number">6</span>f5f, U+<span class="number">6</span>f61, U+<span class="number">6</span>f64-<span class="number">6</span>f67, U+<span class="number">6</span>f69-<span class="number">6</span>f6c, U+<span class="number">6</span>f6f-<span class="number">6</span>f72, U+<span class="number">6</span>f74-<span class="number">6</span>f76, U+<span class="number">6</span>f78-<span class="number">6</span>f7e, U+<span class="number">6</span>f80-<span class="number">6</span>f83, U+<span class="number">6</span>f86, U+<span class="number">6</span>f89, U+<span class="number">6</span>f8b-<span class="number">6</span>f8d, U+<span class="number">6</span>f90, U+<span class="number">6</span>f92, U+<span class="number">6</span>f94, U+<span class="number">6</span>f97-<span class="number">6</span>f98, U+<span class="number">6</span>f9b, U+<span class="number">6</span>fa3-<span class="number">6</span>fa5, U+<span class="number">6</span>fa7, U+<span class="number">6</span>faa, U+<span class="number">6</span>faf, U+<span class="number">6</span>fb1, U+<span class="number">6</span>fb4, U+<span class="number">6</span>fb6, U+<span class="number">6</span>fb9, U+<span class="number">6</span>fc1-<span class="number">6</span>fcb, U+<span class="number">6</span>fd1-<span class="number">6</span>fd3, U+<span class="number">6</span>fd5, U+<span class="number">6</span>fdb, U+<span class="number">6</span>fde-<span class="number">6</span>fe1, U+<span class="number">6</span>fe4, U+<span class="number">6</span>fe9, U+<span class="number">6</span>feb-<span class="number">6</span>fec, U+<span class="number">6</span>fee-<span class="number">6</span>ff1, U+<span class="number">6</span>ffa, U+<span class="number">6</span>ffe;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [59] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.59.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">6</span>dc3, U+<span class="number">6</span>dc5-<span class="number">6</span>dc6, U+<span class="number">6</span>dc9, U+<span class="number">6</span>dcc, U+<span class="number">6</span>dcf, U+<span class="number">6</span>dd2-<span class="number">6</span>dd3, U+<span class="number">6</span>dd6, U+<span class="number">6</span>dd9-<span class="number">6</span>dde, U+<span class="number">6</span>de0, U+<span class="number">6</span>de4, U+<span class="number">6</span>de6, U+<span class="number">6</span>de8-<span class="number">6</span>dea, U+<span class="number">6</span>dec, U+<span class="number">6</span>def-<span class="number">6</span>df0, U+<span class="number">6</span>df5-<span class="number">6</span>df6, U+<span class="number">6</span>df8, U+<span class="number">6</span>dfa, U+<span class="number">6</span>dfc, U+<span class="number">6</span>e03-<span class="number">6</span>e04, U+<span class="number">6</span>e07-<span class="number">6</span>e09, U+<span class="number">6</span>e0b-<span class="number">6</span>e0c, U+<span class="number">6</span>e0e, U+<span class="number">6</span>e11, U+<span class="number">6</span>e13, U+<span class="number">6</span>e15-<span class="number">6</span>e16, U+<span class="number">6</span>e19-<span class="number">6</span>e1b, U+<span class="number">6</span>e1e-<span class="number">6</span>e1f, U+<span class="number">6</span>e22, U+<span class="number">6</span>e25-<span class="number">6</span>e27, U+<span class="number">6</span>e2b-<span class="number">6</span>e2c, U+<span class="number">6</span>e36-<span class="number">6</span>e37, U+<span class="number">6</span>e39-<span class="number">6</span>e3a, U+<span class="number">6</span>e3c-<span class="number">6</span>e41, U+<span class="number">6</span>e44-<span class="number">6</span>e45, U+<span class="number">6</span>e47, U+<span class="number">6</span>e49-<span class="number">6</span>e4b, U+<span class="number">6</span>e4d-<span class="number">6</span>e4e, U+<span class="number">6</span>e51, U+<span class="number">6</span>e53-<span class="number">6</span>e55, U+<span class="number">6</span>e5c-<span class="number">6</span>e5f, U+<span class="number">6</span>e61-<span class="number">6</span>e63, U+<span class="number">6</span>e65-<span class="number">6</span>e67, U+<span class="number">6</span>e6a-<span class="number">6</span>e6b, U+<span class="number">6</span>e6d-<span class="number">6</span>e70, U+<span class="number">6</span>e72-<span class="number">6</span>e74, U+<span class="number">6</span>e76-<span class="number">6</span>e78, U+<span class="number">6</span>e7c, U+<span class="number">6</span>e80-<span class="number">6</span>e82, U+<span class="number">6</span>e86-<span class="number">6</span>e87, U+<span class="number">6</span>e89, U+<span class="number">6</span>e8d, U+<span class="number">6</span>e8f, U+<span class="number">6</span>e96, U+<span class="number">6</span>e98, U+<span class="number">6</span>e9d-<span class="number">6</span>e9f, U+<span class="number">6</span>ea1, U+<span class="number">6</span>ea5-<span class="number">6</span>ea7, U+<span class="number">6</span>eab, U+<span class="number">6</span>eb1-<span class="number">6</span>eb2, U+<span class="number">6</span>eb4, U+<span class="number">6</span>eb7, U+<span class="number">6</span>ebb-<span class="number">6</span>ebd, U+<span class="number">6</span>ebf-<span class="number">6</span>ec6, U+<span class="number">6</span>ec8-<span class="number">6</span>ec9, U+<span class="number">6</span>ecc, U+<span class="number">6</span>ecf-<span class="number">6</span>ed0, U+<span class="number">6</span>ed3-<span class="number">6</span>ed4, U+<span class="number">6</span>ed7;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [60] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.60.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">6</span>cb2, U+<span class="number">6</span>cb4-<span class="number">6</span>cb5, U+<span class="number">6</span>cb7, U+<span class="number">6</span>cba, U+<span class="number">6</span>cbc-<span class="number">6</span>cbd, U+<span class="number">6</span>cc1-<span class="number">6</span>cc3, U+<span class="number">6</span>cc5-<span class="number">6</span>cc7, U+<span class="number">6</span>cd0-<span class="number">6</span>cd4, U+<span class="number">6</span>cd6-<span class="number">6</span>cd7, U+<span class="number">6</span>cd9-<span class="number">6</span>cda, U+<span class="number">6</span>cde-<span class="number">6</span>ce0, U+<span class="number">6</span>ce4, U+<span class="number">6</span>ce6, U+<span class="number">6</span>ce9, U+<span class="number">6</span>ceb-<span class="number">6</span>cef, U+<span class="number">6</span>cf1-<span class="number">6</span>cf2, U+<span class="number">6</span>cf6-<span class="number">6</span>cf7, U+<span class="number">6</span>cfa, U+<span class="number">6</span>cfe, U+<span class="number">6</span>d03-<span class="number">6</span>d05, U+<span class="number">6</span>d07-<span class="number">6</span>d08, U+<span class="number">6</span>d0a, U+<span class="number">6</span>d0c, U+<span class="number">6</span>d0e-<span class="number">6</span>d11, U+<span class="number">6</span>d13-<span class="number">6</span>d14, U+<span class="number">6</span>d16, U+<span class="number">6</span>d18-<span class="number">6</span>d1a, U+<span class="number">6</span>d1c, U+<span class="number">6</span>d1f, U+<span class="number">6</span>d22-<span class="number">6</span>d23, U+<span class="number">6</span>d26-<span class="number">6</span>d29, U+<span class="number">6</span>d2b, U+<span class="number">6</span>d2e-<span class="number">6</span>d30, U+<span class="number">6</span>d33, U+<span class="number">6</span>d35-<span class="number">6</span>d36, U+<span class="number">6</span>d38-<span class="number">6</span>d3a, U+<span class="number">6</span>d3c, U+<span class="number">6</span>d3f, U+<span class="number">6</span>d42-<span class="number">6</span>d44, U+<span class="number">6</span>d48-<span class="number">6</span>d49, U+<span class="number">6</span>d4d, U+<span class="number">6</span>d50, U+<span class="number">6</span>d52, U+<span class="number">6</span>d54, U+<span class="number">6</span>d56-<span class="number">6</span>d58, U+<span class="number">6</span>d5a-<span class="number">6</span>d5c, U+<span class="number">6</span>d5e, U+<span class="number">6</span>d60-<span class="number">6</span>d61, U+<span class="number">6</span>d63-<span class="number">6</span>d65, U+<span class="number">6</span>d67, U+<span class="number">6</span>d6c-<span class="number">6</span>d6d, U+<span class="number">6</span>d6f, U+<span class="number">6</span>d75, U+<span class="number">6</span>d7b-<span class="number">6</span>d7d, U+<span class="number">6</span>d87, U+<span class="number">6</span>d8a, U+<span class="number">6</span>d8e, U+<span class="number">6</span>d90-<span class="number">6</span>d9a, U+<span class="number">6</span>d9c-<span class="number">6</span>da0, U+<span class="number">6</span>da2-<span class="number">6</span>da3, U+<span class="number">6</span>da7, U+<span class="number">6</span>daa-<span class="number">6</span>dac, U+<span class="number">6</span>dae, U+<span class="number">6</span>db3-<span class="number">6</span>db4, U+<span class="number">6</span>db6, U+<span class="number">6</span>db8, U+<span class="number">6</span>dbc, U+<span class="number">6</span>dbf, U+<span class="number">6</span>dc2;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [61] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.61.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">6</span>b85-<span class="number">6</span>b86, U+<span class="number">6</span>b89, U+<span class="number">6</span>b8d, U+<span class="number">6</span>b91-<span class="number">6</span>b93, U+<span class="number">6</span>b95, U+<span class="number">6</span>b97-<span class="number">6</span>b98, U+<span class="number">6</span>b9a-<span class="number">6</span>b9b, U+<span class="number">6</span>b9e, U+<span class="number">6</span>ba1-<span class="number">6</span>ba4, U+<span class="number">6</span>ba9-<span class="number">6</span>baa, U+<span class="number">6</span>bad, U+<span class="number">6</span>baf-<span class="number">6</span>bb0, U+<span class="number">6</span>bb2-<span class="number">6</span>bb3, U+<span class="number">6</span>bba-<span class="number">6</span>bbd, U+<span class="number">6</span>bc0, U+<span class="number">6</span>bc2, U+<span class="number">6</span>bc6, U+<span class="number">6</span>bca-<span class="number">6</span>bcc, U+<span class="number">6</span>bce, U+<span class="number">6</span>bd0-<span class="number">6</span>bd1, U+<span class="number">6</span>bd3, U+<span class="number">6</span>bd6-<span class="number">6</span>bd8, U+<span class="number">6</span>bda, U+<span class="number">6</span>be1, U+<span class="number">6</span>be6, U+<span class="number">6</span>bec, U+<span class="number">6</span>bf1, U+<span class="number">6</span>bf3-<span class="number">6</span>bf5, U+<span class="number">6</span>bf9, U+<span class="number">6</span>bfd, U+<span class="number">6</span>c05-<span class="number">6</span>c08, U+<span class="number">6</span>c0d, U+<span class="number">6</span>c10, U+<span class="number">6</span>c15-<span class="number">6</span>c1a, U+<span class="number">6</span>c21, U+<span class="number">6</span>c23-<span class="number">6</span>c26, U+<span class="number">6</span>c29-<span class="number">6</span>c2d, U+<span class="number">6</span>c30-<span class="number">6</span>c33, U+<span class="number">6</span>c35-<span class="number">6</span>c37, U+<span class="number">6</span>c39-<span class="number">6</span>c3a, U+<span class="number">6</span>c3c-<span class="number">6</span>c3f, U+<span class="number">6</span>c46, U+<span class="number">6</span>c4a-<span class="number">6</span>c4c, U+<span class="number">6</span>c4e-<span class="number">6</span>c50, U+<span class="number">6</span>c54, U+<span class="number">6</span>c56, U+<span class="number">6</span>c59-<span class="number">6</span>c5c, U+<span class="number">6</span>c5e, U+<span class="number">6</span>c63, U+<span class="number">6</span>c67-<span class="number">6</span>c69, U+<span class="number">6</span>c6b, U+<span class="number">6</span>c6d, U+<span class="number">6</span>c6f, U+<span class="number">6</span>c72-<span class="number">6</span>c74, U+<span class="number">6</span>c78-<span class="number">6</span>c7a, U+<span class="number">6</span>c7c, U+<span class="number">6</span>c84-<span class="number">6</span>c87, U+<span class="number">6</span>c8b-<span class="number">6</span>c8c, U+<span class="number">6</span>c8f, U+<span class="number">6</span>c91, U+<span class="number">6</span>c93-<span class="number">6</span>c96, U+<span class="number">6</span>c98, U+<span class="number">6</span>c9a, U+<span class="number">6</span>c9d, U+<span class="number">6</span>ca2-<span class="number">6</span>ca4, U+<span class="number">6</span>ca8-<span class="number">6</span>ca9, U+<span class="number">6</span>cac-<span class="number">6</span>cae, U+<span class="number">6</span>cb1;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [62] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.62.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">6</span>a01, U+<span class="number">6</span>a06, U+<span class="number">6</span>a09, U+<span class="number">6</span>a0b, U+<span class="number">6</span>a11, U+<span class="number">6</span>a13, U+<span class="number">6</span>a17-<span class="number">6</span>a19, U+<span class="number">6</span>a1b, U+<span class="number">6</span>a1e, U+<span class="number">6</span>a23, U+<span class="number">6</span>a28-<span class="number">6</span>a29, U+<span class="number">6</span>a2b, U+<span class="number">6</span>a2f-<span class="number">6</span>a30, U+<span class="number">6</span>a35, U+<span class="number">6</span>a38-<span class="number">6</span>a40, U+<span class="number">6</span>a46-<span class="number">6</span>a48, U+<span class="number">6</span>a4a-<span class="number">6</span>a4b, U+<span class="number">6</span>a4e, U+<span class="number">6</span>a50, U+<span class="number">6</span>a52, U+<span class="number">6</span>a5b, U+<span class="number">6</span>a5e, U+<span class="number">6</span>a62, U+<span class="number">6</span>a65-<span class="number">6</span>a67, U+<span class="number">6</span>a6b, U+<span class="number">6</span>a79, U+<span class="number">6</span>a7c, U+<span class="number">6</span>a7e-<span class="number">6</span>a7f, U+<span class="number">6</span>a84, U+<span class="number">6</span>a86, U+<span class="number">6</span>a8e, U+<span class="number">6</span>a90-<span class="number">6</span>a91, U+<span class="number">6</span>a94, U+<span class="number">6</span>a97, U+<span class="number">6</span>a9c, U+<span class="number">6</span>a9e, U+<span class="number">6</span>aa0, U+<span class="number">6</span>aa2, U+<span class="number">6</span>aa4, U+<span class="number">6</span>aa9, U+<span class="number">6</span>aab, U+<span class="number">6</span>aae-<span class="number">6</span>ab0, U+<span class="number">6</span>ab2-<span class="number">6</span>ab3, U+<span class="number">6</span>ab5, U+<span class="number">6</span>ab7-<span class="number">6</span>ab8, U+<span class="number">6</span>aba-<span class="number">6</span>abb, U+<span class="number">6</span>abd, U+<span class="number">6</span>abf, U+<span class="number">6</span>ac2-<span class="number">6</span>ac4, U+<span class="number">6</span>ac6, U+<span class="number">6</span>ac8, U+<span class="number">6</span>acc, U+<span class="number">6</span>ace, U+<span class="number">6</span>ad2-<span class="number">6</span>ad3, U+<span class="number">6</span>ad8-<span class="number">6</span>adc, U+<span class="number">6</span>adf-<span class="number">6</span>ae0, U+<span class="number">6</span>ae4-<span class="number">6</span>ae5, U+<span class="number">6</span>ae7-<span class="number">6</span>ae8, U+<span class="number">6</span>afb, U+<span class="number">6</span>b04-<span class="number">6</span>b05, U+<span class="number">6</span>b0d-<span class="number">6</span>b13, U+<span class="number">6</span>b16-<span class="number">6</span>b17, U+<span class="number">6</span>b19, U+<span class="number">6</span>b24-<span class="number">6</span>b25, U+<span class="number">6</span>b2c, U+<span class="number">6</span>b37-<span class="number">6</span>b39, U+<span class="number">6</span>b3b, U+<span class="number">6</span>b3d, U+<span class="number">6</span>b43, U+<span class="number">6</span>b46, U+<span class="number">6</span>b4e, U+<span class="number">6</span>b50, U+<span class="number">6</span>b53-<span class="number">6</span>b54, U+<span class="number">6</span>b58-<span class="number">6</span>b59, U+<span class="number">6</span>b5b, U+<span class="number">6</span>b60, U+<span class="number">6</span>b69, U+<span class="number">6</span>b6d, U+<span class="number">6</span>b6f-<span class="number">6</span>b70, U+<span class="number">6</span>b73-<span class="number">6</span>b74, U+<span class="number">6</span>b77-<span class="number">6</span>b7a, U+<span class="number">6</span>b80-<span class="number">6</span>b84;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [63] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.63.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">68</span>e1, U+<span class="number">68</span>e3-<span class="number">68</span>e4, U+<span class="number">68</span>e6-<span class="number">68</span>ed, U+<span class="number">68</span>ef-<span class="number">68</span>f0, U+<span class="number">68</span>f2, U+<span class="number">68</span>f4, U+<span class="number">68</span>f6-<span class="number">68</span>f7, U+<span class="number">68</span>f9, U+<span class="number">68</span>fb-<span class="number">68</span>fd, U+<span class="number">68</span>ff-<span class="number">6902</span>, U+<span class="number">6906</span>-<span class="number">6908</span>, U+<span class="number">690</span>b, U+<span class="number">6910</span>, U+<span class="number">691</span>a-<span class="number">691</span>c, U+<span class="number">691</span>f-<span class="number">6920</span>, U+<span class="number">6924</span>-<span class="number">6925</span>, U+<span class="number">692</span>a, U+<span class="number">692</span>d, U+<span class="number">6934</span>, U+<span class="number">6939</span>, U+<span class="number">693</span>c-<span class="number">6945</span>, U+<span class="number">694</span>a-<span class="number">694</span>b, U+<span class="number">6952</span>-<span class="number">6954</span>, U+<span class="number">6957</span>, U+<span class="number">6959</span>, U+<span class="number">695</span>b, U+<span class="number">695</span>d, U+<span class="number">695</span>f, U+<span class="number">6962</span>-<span class="number">6964</span>, U+<span class="number">6966</span>, U+<span class="number">6968</span>-<span class="number">696</span>c, U+<span class="number">696</span>e-<span class="number">696</span>f, U+<span class="number">6971</span>, U+<span class="number">6973</span>-<span class="number">6974</span>, U+<span class="number">6978</span>-<span class="number">6979</span>, U+<span class="number">697</span>d, U+<span class="number">697</span>f-<span class="number">6980</span>, U+<span class="number">6985</span>, U+<span class="number">6987</span>-<span class="number">698</span>a, U+<span class="number">698</span>d-<span class="number">698</span>e, U+<span class="number">6994</span>-<span class="number">6999</span>, U+<span class="number">699</span>b, U+<span class="number">69</span>a3-<span class="number">69</span>a4, U+<span class="number">69</span>a6-<span class="number">69</span>a7, U+<span class="number">69</span>ab, U+<span class="number">69</span>ad-<span class="number">69</span>ae, U+<span class="number">69</span>b1, U+<span class="number">69</span>b7, U+<span class="number">69</span>bb-<span class="number">69</span>bc, U+<span class="number">69</span>c1, U+<span class="number">69</span>c3-<span class="number">69</span>c5, U+<span class="number">69</span>c7, U+<span class="number">69</span>ca-<span class="number">69</span>ce, U+<span class="number">69</span>d0-<span class="number">69</span>d1, U+<span class="number">69</span>d3-<span class="number">69</span>d4, U+<span class="number">69</span>d7-<span class="number">69</span>da, U+<span class="number">69</span>e0, U+<span class="number">69</span>e4, U+<span class="number">69</span>e6, U+<span class="number">69</span>ec-<span class="number">69</span>ed, U+<span class="number">69</span>f1-<span class="number">69</span>f3, U+<span class="number">69</span>f8, U+<span class="number">69</span>fa-<span class="number">69</span>fc, U+<span class="number">69</span>fe-<span class="number">6</span>a00;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [64] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.64.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">6792</span>-<span class="number">6793</span>, U+<span class="number">6796</span>, U+<span class="number">6798</span>, U+<span class="number">679</span>e-<span class="number">67</span>a1, U+<span class="number">67</span>a5, U+<span class="number">67</span>a7-<span class="number">67</span>a9, U+<span class="number">67</span>ac-<span class="number">67</span>ad, U+<span class="number">67</span>b0-<span class="number">67</span>b1, U+<span class="number">67</span>b3, U+<span class="number">67</span>b5, U+<span class="number">67</span>b7, U+<span class="number">67</span>b9, U+<span class="number">67</span>bb-<span class="number">67</span>bc, U+<span class="number">67</span>c0-<span class="number">67</span>c1, U+<span class="number">67</span>c3, U+<span class="number">67</span>c5-<span class="number">67</span>ca, U+<span class="number">67</span>d1-<span class="number">67</span>d2, U+<span class="number">67</span>d7-<span class="number">67</span>d9, U+<span class="number">67</span>dd-<span class="number">67</span>df, U+<span class="number">67</span>e2-<span class="number">67</span>e4, U+<span class="number">67</span>e6-<span class="number">67</span>e9, U+<span class="number">67</span>f0, U+<span class="number">67</span>f5, U+<span class="number">67</span>f7-<span class="number">67</span>f8, U+<span class="number">67</span>fa-<span class="number">67</span>fb, U+<span class="number">67</span>fd-<span class="number">67</span>fe, U+<span class="number">6800</span>-<span class="number">6801</span>, U+<span class="number">6803</span>-<span class="number">6804</span>, U+<span class="number">6806</span>, U+<span class="number">6809</span>-<span class="number">680</span>a, U+<span class="number">680</span>c, U+<span class="number">680</span>e, U+<span class="number">6812</span>, U+<span class="number">681</span>d-<span class="number">681</span>f, U+<span class="number">6822</span>, U+<span class="number">6824</span>-<span class="number">6829</span>, U+<span class="number">682</span>b-<span class="number">682</span>d, U+<span class="number">6831</span>-<span class="number">6835</span>, U+<span class="number">683</span>b, U+<span class="number">683</span>e, U+<span class="number">6840</span>-<span class="number">6841</span>, U+<span class="number">6844</span>-<span class="number">6845</span>, U+<span class="number">6849</span>, U+<span class="number">684</span>e, U+<span class="number">6853</span>, U+<span class="number">6855</span>-<span class="number">6856</span>, U+<span class="number">685</span>c-<span class="number">685</span>d, U+<span class="number">685</span>f-<span class="number">6862</span>, U+<span class="number">6864</span>, U+<span class="number">6866</span>-<span class="number">6868</span>, U+<span class="number">686</span>b, U+<span class="number">686</span>f, U+<span class="number">6872</span>, U+<span class="number">6874</span>, U+<span class="number">6877</span>, U+<span class="number">687</span>f, U+<span class="number">6883</span>, U+<span class="number">6886</span>, U+<span class="number">688</span>f, U+<span class="number">689</span>b, U+<span class="number">689</span>f-<span class="number">68</span>a0, U+<span class="number">68</span>a2-<span class="number">68</span>a3, U+<span class="number">68</span>b1, U+<span class="number">68</span>b6, U+<span class="number">68</span>b9-<span class="number">68</span>ba, U+<span class="number">68</span>bc-<span class="number">68</span>bf, U+<span class="number">68</span>c1-<span class="number">68</span>c4, U+<span class="number">68</span>c6, U+<span class="number">68</span>c8, U+<span class="number">68</span>ca, U+<span class="number">68</span>cc, U+<span class="number">68</span>d0-<span class="number">68</span>d1, U+<span class="number">68</span>d3, U+<span class="number">68</span>d7, U+<span class="number">68</span>dd, U+<span class="number">68</span>df;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [65] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.65.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">663</span>a-<span class="number">663</span>b, U+<span class="number">663</span>d, U+<span class="number">6641</span>, U+<span class="number">6644</span>-<span class="number">6645</span>, U+<span class="number">6649</span>, U+<span class="number">664</span>c, U+<span class="number">664</span>f, U+<span class="number">6654</span>, U+<span class="number">6659</span>, U+<span class="number">665</span>b, U+<span class="number">665</span>d-<span class="number">665</span>e, U+<span class="number">6660</span>-<span class="number">6667</span>, U+<span class="number">6669</span>, U+<span class="number">666</span>b-<span class="number">666</span>c, U+<span class="number">6671</span>, U+<span class="number">6673</span>, U+<span class="number">6677</span>-<span class="number">6679</span>, U+<span class="number">667</span>c, U+<span class="number">6680</span>-<span class="number">6681</span>, U+<span class="number">6684</span>-<span class="number">6685</span>, U+<span class="number">6688</span>-<span class="number">6689</span>, U+<span class="number">668</span>b-<span class="number">668</span>e, U+<span class="number">6690</span>, U+<span class="number">6692</span>, U+<span class="number">6695</span>, U+<span class="number">6698</span>, U+<span class="number">669</span>a, U+<span class="number">669</span>d, U+<span class="number">669</span>f-<span class="number">66</span>a0, U+<span class="number">66</span>a2-<span class="number">66</span>a3, U+<span class="number">66</span>a6, U+<span class="number">66</span>aa-<span class="number">66</span>ab, U+<span class="number">66</span>b1-<span class="number">66</span>b2, U+<span class="number">66</span>b5, U+<span class="number">66</span>b8-<span class="number">66</span>b9, U+<span class="number">66</span>bb, U+<span class="number">66</span>be, U+<span class="number">66</span>c1, U+<span class="number">66</span>c6-<span class="number">66</span>c9, U+<span class="number">66</span>cc, U+<span class="number">66</span>d5-<span class="number">66</span>d8, U+<span class="number">66</span>da-<span class="number">66</span>dc, U+<span class="number">66</span>de-<span class="number">66</span>e2, U+<span class="number">66</span>e8-<span class="number">66</span>ea, U+<span class="number">66</span>ec, U+<span class="number">66</span>f1, U+<span class="number">66</span>f3, U+<span class="number">66</span>f7, U+<span class="number">66</span>fa, U+<span class="number">66</span>fd, U+<span class="number">6702</span>, U+<span class="number">6705</span>, U+<span class="number">670</span>a, U+<span class="number">670</span>f-<span class="number">6710</span>, U+<span class="number">6713</span>, U+<span class="number">6715</span>, U+<span class="number">6719</span>, U+<span class="number">6722</span>-<span class="number">6723</span>, U+<span class="number">6725</span>-<span class="number">6727</span>, U+<span class="number">6729</span>, U+<span class="number">672</span>d-<span class="number">672</span>e, U+<span class="number">6732</span>-<span class="number">6733</span>, U+<span class="number">6736</span>, U+<span class="number">6739</span>, U+<span class="number">673</span>b, U+<span class="number">673</span>f, U+<span class="number">6744</span>, U+<span class="number">6748</span>, U+<span class="number">674</span>c-<span class="number">674</span>d, U+<span class="number">6753</span>, U+<span class="number">6755</span>, U+<span class="number">6762</span>, U+<span class="number">6767</span>, U+<span class="number">6769</span>-<span class="number">676</span>c, U+<span class="number">676</span>e, U+<span class="number">6772</span>-<span class="number">6773</span>, U+<span class="number">6775</span>, U+<span class="number">6777</span>, U+<span class="number">677</span>a-<span class="number">677</span>d, U+<span class="number">6782</span>-<span class="number">6783</span>, U+<span class="number">6787</span>, U+<span class="number">678</span>a-<span class="number">678</span>d, U+<span class="number">678</span>f;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [66] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.66.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">64</span>f8, U+<span class="number">64</span>fa, U+<span class="number">64</span>fc, U+<span class="number">64</span>fe-<span class="number">64</span>ff, U+<span class="number">6503</span>, U+<span class="number">6509</span>, U+<span class="number">650</span>f, U+<span class="number">6514</span>, U+<span class="number">6518</span>, U+<span class="number">651</span>c-<span class="number">651</span>e, U+<span class="number">6522</span>-<span class="number">6525</span>, U+<span class="number">652</span>a-<span class="number">652</span>c, U+<span class="number">652</span>e, U+<span class="number">6530</span>-<span class="number">6532</span>, U+<span class="number">6534</span>-<span class="number">6535</span>, U+<span class="number">6537</span>-<span class="number">6538</span>, U+<span class="number">653</span>a, U+<span class="number">653</span>c-<span class="number">653</span>d, U+<span class="number">6542</span>, U+<span class="number">6549</span>-<span class="number">654</span>b, U+<span class="number">654</span>d-<span class="number">654</span>e, U+<span class="number">6553</span>-<span class="number">6555</span>, U+<span class="number">6557</span>-<span class="number">6558</span>, U+<span class="number">655</span>d, U+<span class="number">6564</span>, U+<span class="number">6569</span>, U+<span class="number">656</span>b, U+<span class="number">656</span>d-<span class="number">656</span>f, U+<span class="number">6571</span>, U+<span class="number">6573</span>, U+<span class="number">6575</span>-<span class="number">6576</span>, U+<span class="number">6578</span>-<span class="number">657</span>e, U+<span class="number">6581</span>-<span class="number">6583</span>, U+<span class="number">6585</span>-<span class="number">6586</span>, U+<span class="number">6589</span>, U+<span class="number">658</span>e-<span class="number">658</span>f, U+<span class="number">6592</span>-<span class="number">6593</span>, U+<span class="number">6595</span>-<span class="number">6596</span>, U+<span class="number">659</span>b, U+<span class="number">659</span>d, U+<span class="number">659</span>f-<span class="number">65</span>a1, U+<span class="number">65</span>a3, U+<span class="number">65</span>ab-<span class="number">65</span>ac, U+<span class="number">65</span>b2, U+<span class="number">65</span>b6-<span class="number">65</span>b7, U+<span class="number">65</span>ba-<span class="number">65</span>bb, U+<span class="number">65</span>be-<span class="number">65</span>c0, U+<span class="number">65</span>c2-<span class="number">65</span>c4, U+<span class="number">65</span>c6-<span class="number">65</span>c8, U+<span class="number">65</span>cc, U+<span class="number">65</span>ce, U+<span class="number">65</span>d0, U+<span class="number">65</span>d2-<span class="number">65</span>d3, U+<span class="number">65</span>d6, U+<span class="number">65</span>db, U+<span class="number">65</span>dd, U+<span class="number">65</span>e1, U+<span class="number">65</span>e3, U+<span class="number">65</span>ee-<span class="number">65</span>f0, U+<span class="number">65</span>f3-<span class="number">65</span>f5, U+<span class="number">65</span>f8, U+<span class="number">65</span>fb-<span class="number">65</span>fc, U+<span class="number">65</span>fe-<span class="number">6600</span>, U+<span class="number">6603</span>, U+<span class="number">6607</span>, U+<span class="number">6609</span>, U+<span class="number">660</span>b, U+<span class="number">6610</span>-<span class="number">6611</span>, U+<span class="number">6619</span>-<span class="number">661</span>a, U+<span class="number">661</span>c-<span class="number">661</span>e, U+<span class="number">6621</span>, U+<span class="number">6624</span>, U+<span class="number">6626</span>, U+<span class="number">662</span>a-<span class="number">662</span>c, U+<span class="number">662</span>e, U+<span class="number">6630</span>-<span class="number">6631</span>, U+<span class="number">6633</span>-<span class="number">6634</span>, U+<span class="number">6636</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [67] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.67.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">63</span>bc, U+<span class="number">63</span>be, U+<span class="number">63</span>c0, U+<span class="number">63</span>c3-<span class="number">63</span>c4, U+<span class="number">63</span>c6, U+<span class="number">63</span>c8, U+<span class="number">63</span>cd-<span class="number">63</span>ce, U+<span class="number">63</span>d1, U+<span class="number">63</span>d6, U+<span class="number">63</span>da-<span class="number">63</span>db, U+<span class="number">63</span>de, U+<span class="number">63</span>e0, U+<span class="number">63</span>e3, U+<span class="number">63</span>e9-<span class="number">63</span>ea, U+<span class="number">63</span>ee, U+<span class="number">63</span>f2, U+<span class="number">63</span>f5-<span class="number">63</span>fa, U+<span class="number">63</span>fc, U+<span class="number">63</span>fe-<span class="number">6400</span>, U+<span class="number">6406</span>, U+<span class="number">640</span>b-<span class="number">640</span>d, U+<span class="number">6410</span>, U+<span class="number">6414</span>, U+<span class="number">6416</span>-<span class="number">6417</span>, U+<span class="number">641</span>b, U+<span class="number">6420</span>-<span class="number">6423</span>, U+<span class="number">6425</span>-<span class="number">6428</span>, U+<span class="number">642</span>a, U+<span class="number">6431</span>-<span class="number">6432</span>, U+<span class="number">6434</span>-<span class="number">6437</span>, U+<span class="number">643</span>d-<span class="number">6442</span>, U+<span class="number">6445</span>, U+<span class="number">6448</span>, U+<span class="number">6450</span>-<span class="number">6452</span>, U+<span class="number">645</span>b-<span class="number">645</span>f, U+<span class="number">6462</span>, U+<span class="number">6465</span>, U+<span class="number">6468</span>, U+<span class="number">646</span>d, U+<span class="number">646</span>f-<span class="number">6471</span>, U+<span class="number">6473</span>, U+<span class="number">6477</span>, U+<span class="number">6479</span>-<span class="number">647</span>d, U+<span class="number">6482</span>-<span class="number">6485</span>, U+<span class="number">6487</span>-<span class="number">6488</span>, U+<span class="number">648</span>c, U+<span class="number">6490</span>, U+<span class="number">6493</span>, U+<span class="number">6496</span>-<span class="number">649</span>a, U+<span class="number">649</span>d, U+<span class="number">64</span>a0, U+<span class="number">64</span>a5, U+<span class="number">64</span>ab-<span class="number">64</span>ac, U+<span class="number">64</span>b1-<span class="number">64</span>b7, U+<span class="number">64</span>b9-<span class="number">64</span>bb, U+<span class="number">64</span>be-<span class="number">64</span>c1, U+<span class="number">64</span>c4, U+<span class="number">64</span>c7, U+<span class="number">64</span>c9-<span class="number">64</span>cb, U+<span class="number">64</span>d0, U+<span class="number">64</span>d4, U+<span class="number">64</span>d7-<span class="number">64</span>d8, U+<span class="number">64</span>da, U+<span class="number">64</span>de, U+<span class="number">64</span>e0-<span class="number">64</span>e2, U+<span class="number">64</span>e4, U+<span class="number">64</span>e9, U+<span class="number">64</span>ec, U+<span class="number">64</span>f0-<span class="number">64</span>f2, U+<span class="number">64</span>f4, U+<span class="number">64</span>f7;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [68] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.68.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">623</span>b, U+<span class="number">623</span>d-<span class="number">623</span>e, U+<span class="number">6243</span>, U+<span class="number">6246</span>, U+<span class="number">6248</span>-<span class="number">6249</span>, U+<span class="number">624</span>c, U+<span class="number">6255</span>, U+<span class="number">6259</span>, U+<span class="number">625</span>e, U+<span class="number">6260</span>-<span class="number">6261</span>, U+<span class="number">6265</span>-<span class="number">6266</span>, U+<span class="number">626</span>a, U+<span class="number">6271</span>, U+<span class="number">627</span>a, U+<span class="number">627</span>c-<span class="number">627</span>d, U+<span class="number">6283</span>, U+<span class="number">6286</span>, U+<span class="number">6289</span>, U+<span class="number">628</span>e, U+<span class="number">6294</span>, U+<span class="number">629</span>c, U+<span class="number">629</span>e-<span class="number">629</span>f, U+<span class="number">62</span>a1, U+<span class="number">62</span>a8, U+<span class="number">62</span>ba-<span class="number">62</span>bb, U+<span class="number">62</span>bf, U+<span class="number">62</span>c2, U+<span class="number">62</span>c4, U+<span class="number">62</span>c8, U+<span class="number">62</span>ca-<span class="number">62</span>cb, U+<span class="number">62</span>ce-<span class="number">62</span>cf, U+<span class="number">62</span>d1, U+<span class="number">62</span>d7, U+<span class="number">62</span>d9-<span class="number">62</span>da, U+<span class="number">62</span>dd, U+<span class="number">62</span>e0-<span class="number">62</span>e1, U+<span class="number">62</span>e3-<span class="number">62</span>e4, U+<span class="number">62</span>e7, U+<span class="number">62</span>eb, U+<span class="number">62</span>ee, U+<span class="number">62</span>f0, U+<span class="number">62</span>f4-<span class="number">62</span>f6, U+<span class="number">6308</span>, U+<span class="number">630</span>a-<span class="number">630</span>e, U+<span class="number">6310</span>, U+<span class="number">6312</span>-<span class="number">6313</span>, U+<span class="number">6317</span>, U+<span class="number">6319</span>, U+<span class="number">631</span>b, U+<span class="number">631</span>d-<span class="number">631</span>f, U+<span class="number">6322</span>, U+<span class="number">6326</span>, U+<span class="number">6329</span>, U+<span class="number">6331</span>-<span class="number">6332</span>, U+<span class="number">6334</span>-<span class="number">6337</span>, U+<span class="number">6339</span>, U+<span class="number">633</span>b-<span class="number">633</span>c, U+<span class="number">633</span>e-<span class="number">6340</span>, U+<span class="number">6343</span>, U+<span class="number">6347</span>, U+<span class="number">634</span>b-<span class="number">634</span>e, U+<span class="number">6354</span>, U+<span class="number">635</span>c-<span class="number">635</span>d, U+<span class="number">6368</span>-<span class="number">6369</span>, U+<span class="number">636</span>d, U+<span class="number">636</span>f-<span class="number">6372</span>, U+<span class="number">6376</span>, U+<span class="number">637</span>a-<span class="number">637</span>b, U+<span class="number">637</span>d, U+<span class="number">6382</span>-<span class="number">6383</span>, U+<span class="number">6387</span>, U+<span class="number">638</span>a-<span class="number">638</span>b, U+<span class="number">638</span>d-<span class="number">638</span>e, U+<span class="number">6391</span>, U+<span class="number">6393</span>-<span class="number">6397</span>, U+<span class="number">6399</span>, U+<span class="number">639</span>b, U+<span class="number">639</span>e-<span class="number">639</span>f, U+<span class="number">63</span>a1, U+<span class="number">63</span>a3-<span class="number">63</span>a4, U+<span class="number">63</span>ac-<span class="number">63</span>ae, U+<span class="number">63</span>b1-<span class="number">63</span>b5, U+<span class="number">63</span>b7-<span class="number">63</span>bb;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [69] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.69.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">60</span>fa, U+<span class="number">6100</span>, U+<span class="number">6106</span>, U+<span class="number">610</span>d-<span class="number">610</span>e, U+<span class="number">6112</span>, U+<span class="number">6114</span>-<span class="number">6115</span>, U+<span class="number">6119</span>, U+<span class="number">611</span>c, U+<span class="number">6120</span>, U+<span class="number">6122</span>-<span class="number">6123</span>, U+<span class="number">6126</span>, U+<span class="number">6128</span>-<span class="number">6130</span>, U+<span class="number">6136</span>-<span class="number">6137</span>, U+<span class="number">613</span>a, U+<span class="number">613</span>d-<span class="number">613</span>e, U+<span class="number">6144</span>, U+<span class="number">6146</span>-<span class="number">6147</span>, U+<span class="number">614</span>a-<span class="number">614</span>b, U+<span class="number">6151</span>, U+<span class="number">6153</span>, U+<span class="number">6158</span>, U+<span class="number">615</span>a, U+<span class="number">615</span>c-<span class="number">615</span>d, U+<span class="number">615</span>f, U+<span class="number">6161</span>, U+<span class="number">6163</span>-<span class="number">6165</span>, U+<span class="number">616</span>b-<span class="number">616</span>c, U+<span class="number">616</span>e, U+<span class="number">6171</span>, U+<span class="number">6173</span>-<span class="number">6177</span>, U+<span class="number">617</span>e, U+<span class="number">6182</span>, U+<span class="number">6187</span>, U+<span class="number">618</span>a, U+<span class="number">618</span>d-<span class="number">618</span>e, U+<span class="number">6190</span>-<span class="number">6191</span>, U+<span class="number">6194</span>, U+<span class="number">6199</span>-<span class="number">619</span>a, U+<span class="number">619</span>c, U+<span class="number">619</span>f, U+<span class="number">61</span>a1, U+<span class="number">61</span>a3-<span class="number">61</span>a4, U+<span class="number">61</span>a7-<span class="number">61</span>a9, U+<span class="number">61</span>ab-<span class="number">61</span>ad, U+<span class="number">61</span>b2-<span class="number">61</span>b3, U+<span class="number">61</span>b5-<span class="number">61</span>b7, U+<span class="number">61</span>ba-<span class="number">61</span>bb, U+<span class="number">61</span>bf, U+<span class="number">61</span>c3-<span class="number">61</span>c4, U+<span class="number">61</span>c6-<span class="number">61</span>c7, U+<span class="number">61</span>c9-<span class="number">61</span>cb, U+<span class="number">61</span>d0-<span class="number">61</span>d1, U+<span class="number">61</span>d3-<span class="number">61</span>d4, U+<span class="number">61</span>d7, U+<span class="number">61</span>da, U+<span class="number">61</span>df-<span class="number">61</span>e1, U+<span class="number">61</span>e6, U+<span class="number">61</span>ee, U+<span class="number">61</span>f0, U+<span class="number">61</span>f2, U+<span class="number">61</span>f6-<span class="number">61</span>f8, U+<span class="number">61</span>fa, U+<span class="number">61</span>fc-<span class="number">61</span>fe, U+<span class="number">6200</span>, U+<span class="number">6206</span>-<span class="number">6207</span>, U+<span class="number">6209</span>, U+<span class="number">620</span>b, U+<span class="number">620</span>d-<span class="number">620</span>e, U+<span class="number">6213</span>-<span class="number">6215</span>, U+<span class="number">6217</span>, U+<span class="number">6219</span>, U+<span class="number">621</span>b-<span class="number">6223</span>, U+<span class="number">6225</span>-<span class="number">6226</span>, U+<span class="number">622</span>c, U+<span class="number">622</span>e-<span class="number">6230</span>, U+<span class="number">6232</span>, U+<span class="number">6238</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [70] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.70.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5</span>fd1-<span class="number">5</span>fd6, U+<span class="number">5</span>fda-<span class="number">5</span>fde, U+<span class="number">5</span>fe1-<span class="number">5</span>fe2, U+<span class="number">5</span>fe4-<span class="number">5</span>fe5, U+<span class="number">5</span>fea, U+<span class="number">5</span>fed-<span class="number">5</span>fee, U+<span class="number">5</span>ff1-<span class="number">5</span>ff3, U+<span class="number">5</span>ff6, U+<span class="number">5</span>ff8, U+<span class="number">5</span>ffb, U+<span class="number">5</span>ffe-<span class="number">5</span>fff, U+<span class="number">6002</span>-<span class="number">6006</span>, U+<span class="number">600</span>a, U+<span class="number">600</span>d, U+<span class="number">600</span>f, U+<span class="number">6014</span>, U+<span class="number">6019</span>, U+<span class="number">601</span>b, U+<span class="number">6020</span>, U+<span class="number">6023</span>, U+<span class="number">6026</span>, U+<span class="number">6029</span>, U+<span class="number">602</span>b, U+<span class="number">602</span>e-<span class="number">602</span>f, U+<span class="number">6031</span>, U+<span class="number">6033</span>, U+<span class="number">6035</span>, U+<span class="number">6039</span>, U+<span class="number">603</span>f, U+<span class="number">6041</span>-<span class="number">6043</span>, U+<span class="number">6046</span>, U+<span class="number">604</span>f, U+<span class="number">6053</span>-<span class="number">6054</span>, U+<span class="number">6058</span>-<span class="number">605</span>b, U+<span class="number">605</span>d-<span class="number">605</span>e, U+<span class="number">6060</span>, U+<span class="number">6063</span>, U+<span class="number">6065</span>, U+<span class="number">6067</span>, U+<span class="number">606</span>a-<span class="number">606</span>c, U+<span class="number">6075</span>, U+<span class="number">6078</span>-<span class="number">6079</span>, U+<span class="number">607</span>b, U+<span class="number">607</span>d, U+<span class="number">607</span>f, U+<span class="number">6083</span>, U+<span class="number">6085</span>-<span class="number">6087</span>, U+<span class="number">608</span>a, U+<span class="number">608</span>c, U+<span class="number">608</span>e-<span class="number">608</span>f, U+<span class="number">6092</span>-<span class="number">6093</span>, U+<span class="number">6095</span>-<span class="number">6097</span>, U+<span class="number">609</span>b-<span class="number">609</span>d, U+<span class="number">60</span>a2, U+<span class="number">60</span>a7, U+<span class="number">60</span>a9-<span class="number">60</span>ab, U+<span class="number">60</span>ad, U+<span class="number">60</span>af-<span class="number">60</span>b1, U+<span class="number">60</span>b3-<span class="number">60</span>b6, U+<span class="number">60</span>b8, U+<span class="number">60</span>bb, U+<span class="number">60</span>bd-<span class="number">60</span>be, U+<span class="number">60</span>c0-<span class="number">60</span>c3, U+<span class="number">60</span>c6-<span class="number">60</span>c9, U+<span class="number">60</span>cb, U+<span class="number">60</span>ce, U+<span class="number">60</span>d3-<span class="number">60</span>d4, U+<span class="number">60</span>d7-<span class="number">60</span>db, U+<span class="number">60</span>dd, U+<span class="number">60</span>e1-<span class="number">60</span>e4, U+<span class="number">60</span>e6, U+<span class="number">60</span>ea, U+<span class="number">60</span>ec-<span class="number">60</span>ee, U+<span class="number">60</span>f0-<span class="number">60</span>f1, U+<span class="number">60</span>f4, U+<span class="number">60</span>f6;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [71] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.71.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5</span>ea3-<span class="number">5</span>ea5, U+<span class="number">5</span>ea8, U+<span class="number">5</span>eab, U+<span class="number">5</span>eaf, U+<span class="number">5</span>eb3, U+<span class="number">5</span>eb5-<span class="number">5</span>eb6, U+<span class="number">5</span>eb9, U+<span class="number">5</span>ebe, U+<span class="number">5</span>ec1-<span class="number">5</span>ec3, U+<span class="number">5</span>ec6, U+<span class="number">5</span>ec8, U+<span class="number">5</span>ecb-<span class="number">5</span>ecc, U+<span class="number">5</span>ed1-<span class="number">5</span>ed2, U+<span class="number">5</span>ed4, U+<span class="number">5</span>ed9-<span class="number">5</span>edb, U+<span class="number">5</span>edd, U+<span class="number">5</span>edf-<span class="number">5</span>ee0, U+<span class="number">5</span>ee2-<span class="number">5</span>ee3, U+<span class="number">5</span>ee8, U+<span class="number">5</span>eea, U+<span class="number">5</span>eec, U+<span class="number">5</span>eef-<span class="number">5</span>ef0, U+<span class="number">5</span>ef3-<span class="number">5</span>ef4, U+<span class="number">5</span>ef8, U+<span class="number">5</span>efb-<span class="number">5</span>efc, U+<span class="number">5</span>efe-<span class="number">5</span>eff, U+<span class="number">5</span>f01, U+<span class="number">5</span>f07, U+<span class="number">5</span>f0b-<span class="number">5</span>f0e, U+<span class="number">5</span>f10-<span class="number">5</span>f12, U+<span class="number">5</span>f14, U+<span class="number">5</span>f1a, U+<span class="number">5</span>f22, U+<span class="number">5</span>f28-<span class="number">5</span>f29, U+<span class="number">5</span>f2c-<span class="number">5</span>f2d, U+<span class="number">5</span>f35-<span class="number">5</span>f36, U+<span class="number">5</span>f38, U+<span class="number">5</span>f3b-<span class="number">5</span>f43, U+<span class="number">5</span>f45-<span class="number">5</span>f4a, U+<span class="number">5</span>f4c-<span class="number">5</span>f4e, U+<span class="number">5</span>f50, U+<span class="number">5</span>f54, U+<span class="number">5</span>f56-<span class="number">5</span>f59, U+<span class="number">5</span>f5b-<span class="number">5</span>f5f, U+<span class="number">5</span>f61, U+<span class="number">5</span>f63, U+<span class="number">5</span>f65, U+<span class="number">5</span>f67-<span class="number">5</span>f68, U+<span class="number">5</span>f6b, U+<span class="number">5</span>f6e-<span class="number">5</span>f6f, U+<span class="number">5</span>f72-<span class="number">5</span>f78, U+<span class="number">5</span>f7a, U+<span class="number">5</span>f7e-<span class="number">5</span>f7f, U+<span class="number">5</span>f82-<span class="number">5</span>f83, U+<span class="number">5</span>f87, U+<span class="number">5</span>f89-<span class="number">5</span>f8a, U+<span class="number">5</span>f8d, U+<span class="number">5</span>f91, U+<span class="number">5</span>f93, U+<span class="number">5</span>f95, U+<span class="number">5</span>f98-<span class="number">5</span>f99, U+<span class="number">5</span>f9c, U+<span class="number">5</span>f9e, U+<span class="number">5</span>fa0, U+<span class="number">5</span>fa6-<span class="number">5</span>fa9, U+<span class="number">5</span>fac-<span class="number">5</span>fad, U+<span class="number">5</span>faf, U+<span class="number">5</span>fb3-<span class="number">5</span>fb5, U+<span class="number">5</span>fb9, U+<span class="number">5</span>fbc, U+<span class="number">5</span>fc4, U+<span class="number">5</span>fc9, U+<span class="number">5</span>fcb, U+<span class="number">5</span>fce-<span class="number">5</span>fd0;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [72] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.72.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5</span>d32-<span class="number">5</span>d34, U+<span class="number">5</span>d3c-<span class="number">5</span>d3e, U+<span class="number">5</span>d41-<span class="number">5</span>d44, U+<span class="number">5</span>d46-<span class="number">5</span>d48, U+<span class="number">5</span>d4a-<span class="number">5</span>d4b, U+<span class="number">5</span>d4e, U+<span class="number">5</span>d50, U+<span class="number">5</span>d52, U+<span class="number">5</span>d55-<span class="number">5</span>d58, U+<span class="number">5</span>d5a-<span class="number">5</span>d5d, U+<span class="number">5</span>d68-<span class="number">5</span>d69, U+<span class="number">5</span>d6b-<span class="number">5</span>d6c, U+<span class="number">5</span>d6f, U+<span class="number">5</span>d74, U+<span class="number">5</span>d7f, U+<span class="number">5</span>d82-<span class="number">5</span>d89, U+<span class="number">5</span>d8b-<span class="number">5</span>d8c, U+<span class="number">5</span>d8f, U+<span class="number">5</span>d92-<span class="number">5</span>d93, U+<span class="number">5</span>d99, U+<span class="number">5</span>d9d, U+<span class="number">5</span>db2, U+<span class="number">5</span>db6-<span class="number">5</span>db7, U+<span class="number">5</span>dba, U+<span class="number">5</span>dbc-<span class="number">5</span>dbd, U+<span class="number">5</span>dc2-<span class="number">5</span>dc3, U+<span class="number">5</span>dc6-<span class="number">5</span>dc7, U+<span class="number">5</span>dc9, U+<span class="number">5</span>dcc, U+<span class="number">5</span>dd2, U+<span class="number">5</span>dd4, U+<span class="number">5</span>dd6-<span class="number">5</span>dd8, U+<span class="number">5</span>ddb-<span class="number">5</span>ddc, U+<span class="number">5</span>de3, U+<span class="number">5</span>ded, U+<span class="number">5</span>def, U+<span class="number">5</span>df3, U+<span class="number">5</span>df6, U+<span class="number">5</span>dfa-<span class="number">5</span>dfd, U+<span class="number">5</span>dff-<span class="number">5</span>e00, U+<span class="number">5</span>e07, U+<span class="number">5</span>e0f, U+<span class="number">5</span>e11, U+<span class="number">5</span>e13-<span class="number">5</span>e14, U+<span class="number">5</span>e19-<span class="number">5</span>e1b, U+<span class="number">5</span>e22, U+<span class="number">5</span>e25, U+<span class="number">5</span>e28, U+<span class="number">5</span>e2a, U+<span class="number">5</span>e2f-<span class="number">5</span>e31, U+<span class="number">5</span>e33-<span class="number">5</span>e34, U+<span class="number">5</span>e36, U+<span class="number">5</span>e39-<span class="number">5</span>e3c, U+<span class="number">5</span>e3e, U+<span class="number">5</span>e40, U+<span class="number">5</span>e44, U+<span class="number">5</span>e46-<span class="number">5</span>e48, U+<span class="number">5</span>e4c, U+<span class="number">5</span>e4f, U+<span class="number">5</span>e53-<span class="number">5</span>e54, U+<span class="number">5</span>e57, U+<span class="number">5</span>e59, U+<span class="number">5</span>e5b, U+<span class="number">5</span>e5e-<span class="number">5</span>e5f, U+<span class="number">5</span>e61, U+<span class="number">5</span>e63, U+<span class="number">5</span>e6a-<span class="number">5</span>e6b, U+<span class="number">5</span>e75, U+<span class="number">5</span>e77, U+<span class="number">5</span>e79-<span class="number">5</span>e7a, U+<span class="number">5</span>e7e, U+<span class="number">5</span>e80-<span class="number">5</span>e81, U+<span class="number">5</span>e83, U+<span class="number">5</span>e85, U+<span class="number">5</span>e87, U+<span class="number">5</span>e8b, U+<span class="number">5</span>e91-<span class="number">5</span>e92, U+<span class="number">5</span>e96, U+<span class="number">5</span>e98, U+<span class="number">5</span>e9b, U+<span class="number">5</span>e9d, U+<span class="number">5</span>ea0-<span class="number">5</span>ea2;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [73] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.73.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5</span>bf5-<span class="number">5</span>bf6, U+<span class="number">5</span>bfe, U+<span class="number">5</span>c02-<span class="number">5</span>c03, U+<span class="number">5</span>c05, U+<span class="number">5</span>c07-<span class="number">5</span>c09, U+<span class="number">5</span>c0b-<span class="number">5</span>c0c, U+<span class="number">5</span>c0e, U+<span class="number">5</span>c10, U+<span class="number">5</span>c12-<span class="number">5</span>c13, U+<span class="number">5</span>c15, U+<span class="number">5</span>c17, U+<span class="number">5</span>c19, U+<span class="number">5</span>c1b-<span class="number">5</span>c1c, U+<span class="number">5</span>c1e-<span class="number">5</span>c1f, U+<span class="number">5</span>c22, U+<span class="number">5</span>c25, U+<span class="number">5</span>c28, U+<span class="number">5</span>c2a-<span class="number">5</span>c2b, U+<span class="number">5</span>c2f-<span class="number">5</span>c30, U+<span class="number">5</span>c37, U+<span class="number">5</span>c3b, U+<span class="number">5</span>c43-<span class="number">5</span>c44, U+<span class="number">5</span>c46-<span class="number">5</span>c47, U+<span class="number">5</span>c4d, U+<span class="number">5</span>c50, U+<span class="number">5</span>c59, U+<span class="number">5</span>c5b-<span class="number">5</span>c5c, U+<span class="number">5</span>c62-<span class="number">5</span>c64, U+<span class="number">5</span>c66, U+<span class="number">5</span>c6c, U+<span class="number">5</span>c6e, U+<span class="number">5</span>c74, U+<span class="number">5</span>c78-<span class="number">5</span>c7e, U+<span class="number">5</span>c80, U+<span class="number">5</span>c83-<span class="number">5</span>c84, U+<span class="number">5</span>c88, U+<span class="number">5</span>c8b-<span class="number">5</span>c8d, U+<span class="number">5</span>c91, U+<span class="number">5</span>c94-<span class="number">5</span>c96, U+<span class="number">5</span>c98-<span class="number">5</span>c99, U+<span class="number">5</span>c9c, U+<span class="number">5</span>c9e, U+<span class="number">5</span>ca1-<span class="number">5</span>ca3, U+<span class="number">5</span>cab-<span class="number">5</span>cac, U+<span class="number">5</span>cb1, U+<span class="number">5</span>cb5, U+<span class="number">5</span>cb7, U+<span class="number">5</span>cba, U+<span class="number">5</span>cbd-<span class="number">5</span>cbf, U+<span class="number">5</span>cc1, U+<span class="number">5</span>cc3-<span class="number">5</span>cc4, U+<span class="number">5</span>cc7, U+<span class="number">5</span>ccb, U+<span class="number">5</span>cd2, U+<span class="number">5</span>cd8-<span class="number">5</span>cd9, U+<span class="number">5</span>cdf-<span class="number">5</span>ce0, U+<span class="number">5</span>ce3-<span class="number">5</span>ce6, U+<span class="number">5</span>ce8-<span class="number">5</span>cea, U+<span class="number">5</span>ced, U+<span class="number">5</span>cef, U+<span class="number">5</span>cf3-<span class="number">5</span>cf4, U+<span class="number">5</span>cf6, U+<span class="number">5</span>cf8, U+<span class="number">5</span>cfd, U+<span class="number">5</span>d00-<span class="number">5</span>d04, U+<span class="number">5</span>d06, U+<span class="number">5</span>d08, U+<span class="number">5</span>d0b-<span class="number">5</span>d0d, U+<span class="number">5</span>d0f-<span class="number">5</span>d13, U+<span class="number">5</span>d15, U+<span class="number">5</span>d17-<span class="number">5</span>d1a, U+<span class="number">5</span>d1d-<span class="number">5</span>d22, U+<span class="number">5</span>d24-<span class="number">5</span>d27, U+<span class="number">5</span>d2e-<span class="number">5</span>d31;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [74] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.74.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5</span>ab2, U+<span class="number">5</span>ab4-<span class="number">5</span>ab5, U+<span class="number">5</span>ab7-<span class="number">5</span>aba, U+<span class="number">5</span>abd-<span class="number">5</span>abf, U+<span class="number">5</span>ac3-<span class="number">5</span>ac4, U+<span class="number">5</span>ac6-<span class="number">5</span>ac8, U+<span class="number">5</span>aca-<span class="number">5</span>acb, U+<span class="number">5</span>acd, U+<span class="number">5</span>acf-<span class="number">5</span>ad2, U+<span class="number">5</span>ad4, U+<span class="number">5</span>ad8-<span class="number">5</span>ada, U+<span class="number">5</span>adc, U+<span class="number">5</span>adf-<span class="number">5</span>ae2, U+<span class="number">5</span>ae4, U+<span class="number">5</span>ae6, U+<span class="number">5</span>ae8, U+<span class="number">5</span>aea-<span class="number">5</span>aed, U+<span class="number">5</span>af0-<span class="number">5</span>af3, U+<span class="number">5</span>af5, U+<span class="number">5</span>af9-<span class="number">5</span>afb, U+<span class="number">5</span>afd, U+<span class="number">5</span>b01, U+<span class="number">5</span>b05, U+<span class="number">5</span>b08, U+<span class="number">5</span>b0b-<span class="number">5</span>b0c, U+<span class="number">5</span>b11, U+<span class="number">5</span>b16-<span class="number">5</span>b17, U+<span class="number">5</span>b1b, U+<span class="number">5</span>b21-<span class="number">5</span>b22, U+<span class="number">5</span>b24, U+<span class="number">5</span>b27-<span class="number">5</span>b2e, U+<span class="number">5</span>b30, U+<span class="number">5</span>b32, U+<span class="number">5</span>b34, U+<span class="number">5</span>b36-<span class="number">5</span>b38, U+<span class="number">5</span>b3e-<span class="number">5</span>b40, U+<span class="number">5</span>b43, U+<span class="number">5</span>b45, U+<span class="number">5</span>b4a-<span class="number">5</span>b4b, U+<span class="number">5</span>b51-<span class="number">5</span>b53, U+<span class="number">5</span>b56, U+<span class="number">5</span>b5a-<span class="number">5</span>b5b, U+<span class="number">5</span>b62, U+<span class="number">5</span>b65, U+<span class="number">5</span>b67, U+<span class="number">5</span>b6a-<span class="number">5</span>b6e, U+<span class="number">5</span>b70-<span class="number">5</span>b71, U+<span class="number">5</span>b73, U+<span class="number">5</span>b7a-<span class="number">5</span>b7b, U+<span class="number">5</span>b7f-<span class="number">5</span>b80, U+<span class="number">5</span>b84, U+<span class="number">5</span>b8d, U+<span class="number">5</span>b91, U+<span class="number">5</span>b93-<span class="number">5</span>b95, U+<span class="number">5</span>b9f, U+<span class="number">5</span>ba5-<span class="number">5</span>ba6, U+<span class="number">5</span>bac, U+<span class="number">5</span>bae, U+<span class="number">5</span>bb8, U+<span class="number">5</span>bc0, U+<span class="number">5</span>bc3, U+<span class="number">5</span>bcb, U+<span class="number">5</span>bd0-<span class="number">5</span>bd1, U+<span class="number">5</span>bd4-<span class="number">5</span>bd8, U+<span class="number">5</span>bda-<span class="number">5</span>bdc, U+<span class="number">5</span>be2, U+<span class="number">5</span>be4-<span class="number">5</span>be7, U+<span class="number">5</span>be9, U+<span class="number">5</span>beb-<span class="number">5</span>bec, U+<span class="number">5</span>bee-<span class="number">5</span>bf0, U+<span class="number">5</span>bf2-<span class="number">5</span>bf3;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [75] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.75.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5981</span>, U+<span class="number">598</span>f, U+<span class="number">5997</span>-<span class="number">5998</span>, U+<span class="number">599</span>a, U+<span class="number">599</span>c-<span class="number">599</span>d, U+<span class="number">59</span>a0-<span class="number">59</span>a1, U+<span class="number">59</span>a3-<span class="number">59</span>a4, U+<span class="number">59</span>a7, U+<span class="number">59</span>aa-<span class="number">59</span>ad, U+<span class="number">59</span>af, U+<span class="number">59</span>b2-<span class="number">59</span>b3, U+<span class="number">59</span>b5-<span class="number">59</span>b6, U+<span class="number">59</span>b8, U+<span class="number">59</span>ba, U+<span class="number">59</span>bd-<span class="number">59</span>be, U+<span class="number">59</span>c0-<span class="number">59</span>c1, U+<span class="number">59</span>c3-<span class="number">59</span>c4, U+<span class="number">59</span>c7-<span class="number">59</span>ca, U+<span class="number">59</span>cc-<span class="number">59</span>cd, U+<span class="number">59</span>cf, U+<span class="number">59</span>d2, U+<span class="number">59</span>d5-<span class="number">59</span>d6, U+<span class="number">59</span>d8-<span class="number">59</span>d9, U+<span class="number">59</span>db, U+<span class="number">59</span>dd-<span class="number">59</span>e0, U+<span class="number">59</span>e2-<span class="number">59</span>e7, U+<span class="number">59</span>e9-<span class="number">59</span>eb, U+<span class="number">59</span>ee, U+<span class="number">59</span>f1, U+<span class="number">59</span>f3, U+<span class="number">59</span>f5, U+<span class="number">59</span>f7-<span class="number">59</span>f9, U+<span class="number">59</span>fd, U+<span class="number">5</span>a06, U+<span class="number">5</span>a08-<span class="number">5</span>a0a, U+<span class="number">5</span>a0c-<span class="number">5</span>a0d, U+<span class="number">5</span>a11-<span class="number">5</span>a13, U+<span class="number">5</span>a15-<span class="number">5</span>a16, U+<span class="number">5</span>a1a-<span class="number">5</span>a1b, U+<span class="number">5</span>a21-<span class="number">5</span>a23, U+<span class="number">5</span>a2d-<span class="number">5</span>a2f, U+<span class="number">5</span>a32, U+<span class="number">5</span>a38, U+<span class="number">5</span>a3c, U+<span class="number">5</span>a3e-<span class="number">5</span>a45, U+<span class="number">5</span>a47, U+<span class="number">5</span>a4a, U+<span class="number">5</span>a4c-<span class="number">5</span>a4d, U+<span class="number">5</span>a4f-<span class="number">5</span>a51, U+<span class="number">5</span>a53, U+<span class="number">5</span>a55-<span class="number">5</span>a57, U+<span class="number">5</span>a5e, U+<span class="number">5</span>a60, U+<span class="number">5</span>a62, U+<span class="number">5</span>a65-<span class="number">5</span>a67, U+<span class="number">5</span>a6a, U+<span class="number">5</span>a6c-<span class="number">5</span>a6d, U+<span class="number">5</span>a72-<span class="number">5</span>a73, U+<span class="number">5</span>a75-<span class="number">5</span>a76, U+<span class="number">5</span>a79-<span class="number">5</span>a7c, U+<span class="number">5</span>a81-<span class="number">5</span>a84, U+<span class="number">5</span>a8c, U+<span class="number">5</span>a8e, U+<span class="number">5</span>a93, U+<span class="number">5</span>a96-<span class="number">5</span>a97, U+<span class="number">5</span>a9c, U+<span class="number">5</span>a9e, U+<span class="number">5</span>aa0, U+<span class="number">5</span>aa3-<span class="number">5</span>aa4, U+<span class="number">5</span>aaa, U+<span class="number">5</span>aae-<span class="number">5</span>aaf, U+<span class="number">5</span>ab1;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [76] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.76.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5831</span>, U+<span class="number">583</span>a, U+<span class="number">583</span>d, U+<span class="number">583</span>f-<span class="number">5842</span>, U+<span class="number">5844</span>-<span class="number">5846</span>, U+<span class="number">5848</span>, U+<span class="number">584</span>a, U+<span class="number">584</span>d, U+<span class="number">5852</span>, U+<span class="number">5857</span>, U+<span class="number">5859</span>-<span class="number">585</span>a, U+<span class="number">585</span>c-<span class="number">585</span>d, U+<span class="number">5862</span>, U+<span class="number">5868</span>-<span class="number">5869</span>, U+<span class="number">586</span>c-<span class="number">586</span>d, U+<span class="number">586</span>f-<span class="number">5873</span>, U+<span class="number">5875</span>, U+<span class="number">5879</span>, U+<span class="number">587</span>d-<span class="number">587</span>e, U+<span class="number">5880</span>-<span class="number">5881</span>, U+<span class="number">5888</span>-<span class="number">588</span>a, U+<span class="number">588</span>d, U+<span class="number">5892</span>, U+<span class="number">5896</span>-<span class="number">5898</span>, U+<span class="number">589</span>a, U+<span class="number">589</span>c-<span class="number">589</span>d, U+<span class="number">58</span>a0-<span class="number">58</span>a1, U+<span class="number">58</span>a3, U+<span class="number">58</span>a6, U+<span class="number">58</span>a9, U+<span class="number">58</span>ab-<span class="number">58</span>ae, U+<span class="number">58</span>b0, U+<span class="number">58</span>b3, U+<span class="number">58</span>bb-<span class="number">58</span>bf, U+<span class="number">58</span>c2-<span class="number">58</span>c3, U+<span class="number">58</span>c5-<span class="number">58</span>c8, U+<span class="number">58</span>ca, U+<span class="number">58</span>cc, U+<span class="number">58</span>ce, U+<span class="number">58</span>d1-<span class="number">58</span>d3, U+<span class="number">58</span>d5, U+<span class="number">58</span>d8-<span class="number">58</span>d9, U+<span class="number">58</span>de-<span class="number">58</span>df, U+<span class="number">58</span>e2, U+<span class="number">58</span>e9, U+<span class="number">58</span>ec, U+<span class="number">58</span>ef, U+<span class="number">58</span>f1-<span class="number">58</span>f2, U+<span class="number">58</span>f5, U+<span class="number">58</span>f7-<span class="number">58</span>f8, U+<span class="number">58</span>fa, U+<span class="number">58</span>fd, U+<span class="number">5900</span>, U+<span class="number">5902</span>, U+<span class="number">5906</span>, U+<span class="number">5908</span>-<span class="number">590</span>c, U+<span class="number">590</span>e, U+<span class="number">5910</span>, U+<span class="number">5914</span>, U+<span class="number">5919</span>, U+<span class="number">591</span>b, U+<span class="number">591</span>d-<span class="number">591</span>e, U+<span class="number">5920</span>, U+<span class="number">5922</span>-<span class="number">5925</span>, U+<span class="number">5928</span>, U+<span class="number">592</span>c-<span class="number">592</span>d, U+<span class="number">592</span>f, U+<span class="number">5932</span>, U+<span class="number">5936</span>, U+<span class="number">593</span>c, U+<span class="number">593</span>e, U+<span class="number">5940</span>-<span class="number">5942</span>, U+<span class="number">5944</span>, U+<span class="number">594</span>c-<span class="number">594</span>d, U+<span class="number">5950</span>, U+<span class="number">5953</span>, U+<span class="number">5958</span>, U+<span class="number">595</span>a, U+<span class="number">5961</span>, U+<span class="number">5966</span>-<span class="number">5968</span>, U+<span class="number">596</span>a, U+<span class="number">596</span>c-<span class="number">596</span>e, U+<span class="number">5977</span>, U+<span class="number">597</span>b-<span class="number">597</span>c;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [77] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.77.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">570</span>a, U+<span class="number">570</span>c-<span class="number">570</span>d, U+<span class="number">570</span>f, U+<span class="number">5712</span>-<span class="number">5713</span>, U+<span class="number">5718</span>-<span class="number">5719</span>, U+<span class="number">571</span>c, U+<span class="number">571</span>e, U+<span class="number">5725</span>, U+<span class="number">5727</span>, U+<span class="number">5729</span>-<span class="number">572</span>a, U+<span class="number">572</span>c, U+<span class="number">572</span>e-<span class="number">572</span>f, U+<span class="number">5734</span>-<span class="number">5735</span>, U+<span class="number">5739</span>, U+<span class="number">573</span>b, U+<span class="number">5741</span>, U+<span class="number">5743</span>, U+<span class="number">5745</span>, U+<span class="number">5749</span>, U+<span class="number">574</span>c-<span class="number">574</span>d, U+<span class="number">575</span>c, U+<span class="number">5763</span>, U+<span class="number">5768</span>-<span class="number">5769</span>, U+<span class="number">576</span>b, U+<span class="number">576</span>d-<span class="number">576</span>e, U+<span class="number">5770</span>, U+<span class="number">5773</span>, U+<span class="number">5775</span>, U+<span class="number">5777</span>, U+<span class="number">577</span>b-<span class="number">577</span>c, U+<span class="number">5785</span>-<span class="number">5786</span>, U+<span class="number">5788</span>, U+<span class="number">578</span>c, U+<span class="number">578</span>e-<span class="number">578</span>f, U+<span class="number">5793</span>-<span class="number">5795</span>, U+<span class="number">5799</span>-<span class="number">57</span>a1, U+<span class="number">57</span>a3-<span class="number">57</span>a4, U+<span class="number">57</span>a6-<span class="number">57</span>aa, U+<span class="number">57</span>ac-<span class="number">57</span>ad, U+<span class="number">57</span>af-<span class="number">57</span>b2, U+<span class="number">57</span>b4-<span class="number">57</span>b6, U+<span class="number">57</span>b8-<span class="number">57</span>b9, U+<span class="number">57</span>bd-<span class="number">57</span>bf, U+<span class="number">57</span>c2, U+<span class="number">57</span>c4-<span class="number">57</span>c8, U+<span class="number">57</span>cc-<span class="number">57</span>cd, U+<span class="number">57</span>cf, U+<span class="number">57</span>d2, U+<span class="number">57</span>d5-<span class="number">57</span>de, U+<span class="number">57</span>e1-<span class="number">57</span>e2, U+<span class="number">57</span>e4-<span class="number">57</span>e5, U+<span class="number">57</span>e7, U+<span class="number">57</span>eb, U+<span class="number">57</span>ed, U+<span class="number">57</span>ef, U+<span class="number">57</span>f4-<span class="number">57</span>f8, U+<span class="number">57</span>fc-<span class="number">57</span>fd, U+<span class="number">5800</span>-<span class="number">5801</span>, U+<span class="number">5803</span>, U+<span class="number">5805</span>, U+<span class="number">5807</span>, U+<span class="number">5809</span>, U+<span class="number">580</span>b-<span class="number">580</span>e, U+<span class="number">5811</span>, U+<span class="number">5814</span>, U+<span class="number">5819</span>, U+<span class="number">581</span>b-<span class="number">5820</span>, U+<span class="number">5822</span>-<span class="number">5823</span>, U+<span class="number">5825</span>-<span class="number">5826</span>, U+<span class="number">582</span>c, U+<span class="number">582</span>f;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [78] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.78.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5605</span>-<span class="number">5606</span>, U+<span class="number">5608</span>, U+<span class="number">560</span>c-<span class="number">560</span>d, U+<span class="number">560</span>f, U+<span class="number">5614</span>, U+<span class="number">5616</span>-<span class="number">5617</span>, U+<span class="number">561</span>a, U+<span class="number">561</span>c, U+<span class="number">561</span>e, U+<span class="number">5621</span>-<span class="number">5625</span>, U+<span class="number">5627</span>, U+<span class="number">5629</span>, U+<span class="number">562</span>b-<span class="number">5630</span>, U+<span class="number">5636</span>, U+<span class="number">5638</span>-<span class="number">563</span>a, U+<span class="number">563</span>c, U+<span class="number">5640</span>-<span class="number">5642</span>, U+<span class="number">5649</span>, U+<span class="number">564</span>c-<span class="number">5650</span>, U+<span class="number">5653</span>-<span class="number">5655</span>, U+<span class="number">5657</span>-<span class="number">565</span>b, U+<span class="number">5660</span>, U+<span class="number">5663</span>-<span class="number">5664</span>, U+<span class="number">5666</span>, U+<span class="number">566</span>b, U+<span class="number">566</span>f-<span class="number">5671</span>, U+<span class="number">5673</span>-<span class="number">567</span>c, U+<span class="number">567</span>e, U+<span class="number">5684</span>-<span class="number">5687</span>, U+<span class="number">568</span>c, U+<span class="number">568</span>e-<span class="number">5693</span>, U+<span class="number">5695</span>, U+<span class="number">5697</span>, U+<span class="number">569</span>b-<span class="number">569</span>c, U+<span class="number">569</span>e-<span class="number">569</span>f, U+<span class="number">56</span>a1-<span class="number">56</span>a2, U+<span class="number">56</span>a4-<span class="number">56</span>a9, U+<span class="number">56</span>ac-<span class="number">56</span>af, U+<span class="number">56</span>b1, U+<span class="number">56</span>b4, U+<span class="number">56</span>b6-<span class="number">56</span>b8, U+<span class="number">56</span>bf, U+<span class="number">56</span>c1-<span class="number">56</span>c3, U+<span class="number">56</span>c9, U+<span class="number">56</span>cd, U+<span class="number">56</span>d1, U+<span class="number">56</span>d4, U+<span class="number">56</span>d6-<span class="number">56</span>d9, U+<span class="number">56</span>dd, U+<span class="number">56</span>df, U+<span class="number">56</span>e1, U+<span class="number">56</span>e3-<span class="number">56</span>e6, U+<span class="number">56</span>e8-<span class="number">56</span>ec, U+<span class="number">56</span>ee-<span class="number">56</span>ef, U+<span class="number">56</span>f1-<span class="number">56</span>f3, U+<span class="number">56</span>f5, U+<span class="number">56</span>f7-<span class="number">56</span>f9, U+<span class="number">56</span>fc, U+<span class="number">56</span>ff-<span class="number">5700</span>, U+<span class="number">5703</span>-<span class="number">5704</span>, U+<span class="number">5709</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [79] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.79.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5519</span>, U+<span class="number">551</span>b, U+<span class="number">551</span>d-<span class="number">551</span>e, U+<span class="number">5520</span>, U+<span class="number">5522</span>-<span class="number">5523</span>, U+<span class="number">5526</span>-<span class="number">5527</span>, U+<span class="number">552</span>a-<span class="number">552</span>c, U+<span class="number">5530</span>, U+<span class="number">5532</span>-<span class="number">5535</span>, U+<span class="number">5537</span>-<span class="number">5538</span>, U+<span class="number">553</span>b-<span class="number">5541</span>, U+<span class="number">5543</span>-<span class="number">5544</span>, U+<span class="number">5547</span>-<span class="number">5549</span>, U+<span class="number">554</span>b, U+<span class="number">554</span>d, U+<span class="number">5550</span>, U+<span class="number">5553</span>, U+<span class="number">5555</span>-<span class="number">5558</span>, U+<span class="number">555</span>b-<span class="number">555</span>f, U+<span class="number">5567</span>-<span class="number">5569</span>, U+<span class="number">556</span>b-<span class="number">5572</span>, U+<span class="number">5574</span>-<span class="number">5577</span>, U+<span class="number">557</span>b-<span class="number">557</span>c, U+<span class="number">557</span>e-<span class="number">557</span>f, U+<span class="number">5581</span>, U+<span class="number">5583</span>, U+<span class="number">5585</span>-<span class="number">5586</span>, U+<span class="number">5588</span>, U+<span class="number">558</span>b-<span class="number">558</span>c, U+<span class="number">558</span>e-<span class="number">5591</span>, U+<span class="number">5593</span>, U+<span class="number">5599</span>-<span class="number">559</span>a, U+<span class="number">559</span>f, U+<span class="number">55</span>a5-<span class="number">55</span>a6, U+<span class="number">55</span>a8-<span class="number">55</span>ac, U+<span class="number">55</span>ae, U+<span class="number">55</span>b0-<span class="number">55</span>b3, U+<span class="number">55</span>b6, U+<span class="number">55</span>b9-<span class="number">55</span>ba, U+<span class="number">55</span>bc-<span class="number">55</span>be, U+<span class="number">55</span>c4, U+<span class="number">55</span>c6-<span class="number">55</span>c7, U+<span class="number">55</span>c9, U+<span class="number">55</span>cc-<span class="number">55</span>d2, U+<span class="number">55</span>d4-<span class="number">55</span>db, U+<span class="number">55</span>dd-<span class="number">55</span>df, U+<span class="number">55</span>e1, U+<span class="number">55</span>e3-<span class="number">55</span>e6, U+<span class="number">55</span>ea-<span class="number">55</span>ee, U+<span class="number">55</span>f0-<span class="number">55</span>f3, U+<span class="number">55</span>f5-<span class="number">55</span>f7, U+<span class="number">55</span>fb, U+<span class="number">55</span>fe, U+<span class="number">5600</span>-<span class="number">5601</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [80] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.80.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">53</span>fb-<span class="number">5400</span>, U+<span class="number">5402</span>, U+<span class="number">5405</span>-<span class="number">5407</span>, U+<span class="number">540</span>b, U+<span class="number">540</span>f, U+<span class="number">5412</span>, U+<span class="number">5414</span>, U+<span class="number">5416</span>, U+<span class="number">5418</span>-<span class="number">541</span>a, U+<span class="number">541</span>d, U+<span class="number">5420</span>-<span class="number">5423</span>, U+<span class="number">5425</span>, U+<span class="number">5429</span>-<span class="number">542</span>a, U+<span class="number">542</span>d-<span class="number">542</span>e, U+<span class="number">5431</span>-<span class="number">5433</span>, U+<span class="number">5436</span>, U+<span class="number">543</span>d, U+<span class="number">543</span>f, U+<span class="number">5442</span>-<span class="number">5443</span>, U+<span class="number">5449</span>, U+<span class="number">544</span>b-<span class="number">544</span>c, U+<span class="number">544</span>e, U+<span class="number">5451</span>-<span class="number">5454</span>, U+<span class="number">5456</span>, U+<span class="number">5459</span>, U+<span class="number">545</span>b-<span class="number">545</span>c, U+<span class="number">5461</span>, U+<span class="number">5463</span>-<span class="number">5464</span>, U+<span class="number">546</span>a-<span class="number">5472</span>, U+<span class="number">5474</span>, U+<span class="number">5476</span>-<span class="number">5478</span>, U+<span class="number">547</span>a, U+<span class="number">547</span>e-<span class="number">5484</span>, U+<span class="number">5486</span>, U+<span class="number">548</span>a, U+<span class="number">548</span>d-<span class="number">548</span>e, U+<span class="number">5490</span>-<span class="number">5491</span>, U+<span class="number">5494</span>, U+<span class="number">5497</span>-<span class="number">5499</span>, U+<span class="number">549</span>b, U+<span class="number">549</span>d, U+<span class="number">54</span>a1-<span class="number">54</span>a7, U+<span class="number">54</span>a9, U+<span class="number">54</span>ab, U+<span class="number">54</span>ad, U+<span class="number">54</span>b4-<span class="number">54</span>b5, U+<span class="number">54</span>b9, U+<span class="number">54</span>bb, U+<span class="number">54</span>be-<span class="number">54</span>bf, U+<span class="number">54</span>c2-<span class="number">54</span>c3, U+<span class="number">54</span>c9-<span class="number">54</span>cc, U+<span class="number">54</span>cf-<span class="number">54</span>d0, U+<span class="number">54</span>d3, U+<span class="number">54</span>d5-<span class="number">54</span>d6, U+<span class="number">54</span>d9-<span class="number">54</span>da, U+<span class="number">54</span>dc-<span class="number">54</span>de, U+<span class="number">54</span>e2, U+<span class="number">54</span>e7, U+<span class="number">54</span>f3-<span class="number">54</span>f4, U+<span class="number">54</span>f8-<span class="number">54</span>f9, U+<span class="number">54</span>fd-<span class="number">54</span>ff, U+<span class="number">5501</span>, U+<span class="number">5504</span>-<span class="number">5506</span>, U+<span class="number">550</span>c-<span class="number">550</span>f, U+<span class="number">5511</span>-<span class="number">5514</span>, U+<span class="number">5516</span>-<span class="number">5517</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [81] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.81.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">52</span>a2, U+<span class="number">52</span>a6-<span class="number">52</span>a7, U+<span class="number">52</span>ac-<span class="number">52</span>ad, U+<span class="number">52</span>af, U+<span class="number">52</span>b4-<span class="number">52</span>b5, U+<span class="number">52</span>b9, U+<span class="number">52</span>bb-<span class="number">52</span>bc, U+<span class="number">52</span>be, U+<span class="number">52</span>c1, U+<span class="number">52</span>c5, U+<span class="number">52</span>ca, U+<span class="number">52</span>cd, U+<span class="number">52</span>d0, U+<span class="number">52</span>d6-<span class="number">52</span>d7, U+<span class="number">52</span>d9, U+<span class="number">52</span>db, U+<span class="number">52</span>dd-<span class="number">52</span>de, U+<span class="number">52</span>e0, U+<span class="number">52</span>e2-<span class="number">52</span>e3, U+<span class="number">52</span>e5, U+<span class="number">52</span>e7-<span class="number">52</span>f0, U+<span class="number">52</span>f2-<span class="number">52</span>f3, U+<span class="number">52</span>f5-<span class="number">52</span>f9, U+<span class="number">52</span>fb-<span class="number">52</span>fc, U+<span class="number">5302</span>, U+<span class="number">5304</span>, U+<span class="number">530</span>b, U+<span class="number">530</span>d, U+<span class="number">530</span>f-<span class="number">5310</span>, U+<span class="number">5315</span>, U+<span class="number">531</span>a, U+<span class="number">531</span>c-<span class="number">531</span>d, U+<span class="number">5321</span>, U+<span class="number">5323</span>, U+<span class="number">5326</span>, U+<span class="number">532</span>e-<span class="number">5331</span>, U+<span class="number">5338</span>, U+<span class="number">533</span>c-<span class="number">533</span>e, U+<span class="number">5340</span>, U+<span class="number">5344</span>-<span class="number">5345</span>, U+<span class="number">534</span>b-<span class="number">534</span>d, U+<span class="number">5350</span>, U+<span class="number">5354</span>, U+<span class="number">5358</span>, U+<span class="number">535</span>d-<span class="number">535</span>f, U+<span class="number">5363</span>, U+<span class="number">5368</span>-<span class="number">5369</span>, U+<span class="number">536</span>c, U+<span class="number">536</span>e-<span class="number">536</span>f, U+<span class="number">5372</span>, U+<span class="number">5379</span>-<span class="number">537</span>b, U+<span class="number">537</span>d, U+<span class="number">538</span>d-<span class="number">538</span>e, U+<span class="number">5390</span>, U+<span class="number">5393</span>-<span class="number">5394</span>, U+<span class="number">5396</span>, U+<span class="number">539</span>b-<span class="number">539</span>d, U+<span class="number">53</span>a0-<span class="number">53</span>a1, U+<span class="number">53</span>a3-<span class="number">53</span>a5, U+<span class="number">53</span>a9, U+<span class="number">53</span>ad-<span class="number">53</span>ae, U+<span class="number">53</span>b0, U+<span class="number">53</span>b2-<span class="number">53</span>b3, U+<span class="number">53</span>b5-<span class="number">53</span>b8, U+<span class="number">53</span>bc, U+<span class="number">53</span>be, U+<span class="number">53</span>c1, U+<span class="number">53</span>c3-<span class="number">53</span>c7, U+<span class="number">53</span>ce-<span class="number">53</span>cf, U+<span class="number">53</span>d2-<span class="number">53</span>d3, U+<span class="number">53</span>d5, U+<span class="number">53</span>da, U+<span class="number">53</span>de-<span class="number">53</span>df, U+<span class="number">53</span>e1-<span class="number">53</span>e2, U+<span class="number">53</span>e7-<span class="number">53</span>e9, U+<span class="number">53</span>f1, U+<span class="number">53</span>f4-<span class="number">53</span>f5, U+<span class="number">53</span>fa;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [82] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.82.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5110</span>, U+<span class="number">5113</span>, U+<span class="number">5115</span>, U+<span class="number">5117</span>-<span class="number">5118</span>, U+<span class="number">511</span>a-<span class="number">511</span>c, U+<span class="number">511</span>e-<span class="number">511</span>f, U+<span class="number">5121</span>, U+<span class="number">5128</span>, U+<span class="number">512</span>b-<span class="number">512</span>d, U+<span class="number">5131</span>-<span class="number">5135</span>, U+<span class="number">5137</span>-<span class="number">5139</span>, U+<span class="number">513</span>c, U+<span class="number">5140</span>, U+<span class="number">5142</span>, U+<span class="number">5147</span>, U+<span class="number">514</span>c, U+<span class="number">514</span>e-<span class="number">5150</span>, U+<span class="number">5155</span>-<span class="number">5158</span>, U+<span class="number">5162</span>, U+<span class="number">5169</span>, U+<span class="number">5172</span>, U+<span class="number">517</span>f, U+<span class="number">5181</span>-<span class="number">5184</span>, U+<span class="number">5186</span>-<span class="number">5187</span>, U+<span class="number">518</span>b, U+<span class="number">518</span>f, U+<span class="number">5191</span>, U+<span class="number">5195</span>-<span class="number">5197</span>, U+<span class="number">519</span>a, U+<span class="number">51</span>a2-<span class="number">51</span>a3, U+<span class="number">51</span>a6-<span class="number">51</span>ab, U+<span class="number">51</span>ad-<span class="number">51</span>ae, U+<span class="number">51</span>b1, U+<span class="number">51</span>b4, U+<span class="number">51</span>bc-<span class="number">51</span>bd, U+<span class="number">51</span>bf, U+<span class="number">51</span>c3, U+<span class="number">51</span>c7-<span class="number">51</span>c8, U+<span class="number">51</span>ca-<span class="number">51</span>cb, U+<span class="number">51</span>cd-<span class="number">51</span>ce, U+<span class="number">51</span>d4, U+<span class="number">51</span>d6, U+<span class="number">51</span>db-<span class="number">51</span>dc, U+<span class="number">51</span>e6, U+<span class="number">51</span>e8-<span class="number">51</span>eb, U+<span class="number">51</span>f1, U+<span class="number">51</span>f5, U+<span class="number">51</span>fc, U+<span class="number">51</span>ff, U+<span class="number">5202</span>, U+<span class="number">5205</span>, U+<span class="number">5208</span>, U+<span class="number">520</span>b, U+<span class="number">520</span>d-<span class="number">520</span>e, U+<span class="number">5215</span>-<span class="number">5216</span>, U+<span class="number">5228</span>, U+<span class="number">522</span>a, U+<span class="number">522</span>c-<span class="number">522</span>d, U+<span class="number">5233</span>, U+<span class="number">523</span>c-<span class="number">523</span>d, U+<span class="number">523</span>f-<span class="number">5240</span>, U+<span class="number">5245</span>, U+<span class="number">5247</span>, U+<span class="number">5249</span>, U+<span class="number">524</span>b-<span class="number">524</span>c, U+<span class="number">524</span>e, U+<span class="number">5250</span>, U+<span class="number">525</span>b-<span class="number">525</span>f, U+<span class="number">5261</span>, U+<span class="number">5263</span>-<span class="number">5264</span>, U+<span class="number">5270</span>, U+<span class="number">5273</span>, U+<span class="number">5275</span>, U+<span class="number">5277</span>, U+<span class="number">527</span>d, U+<span class="number">527</span>f, U+<span class="number">5281</span>-<span class="number">5285</span>, U+<span class="number">5287</span>, U+<span class="number">5289</span>, U+<span class="number">528</span>b, U+<span class="number">528</span>d, U+<span class="number">528</span>f, U+<span class="number">5291</span>-<span class="number">5293</span>, U+<span class="number">529</span>a;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [83] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.83.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">4</span>fe3-<span class="number">4</span>fe4, U+<span class="number">4</span>fe6, U+<span class="number">4</span>fe8, U+<span class="number">4</span>feb-<span class="number">4</span>fed, U+<span class="number">4</span>ff3, U+<span class="number">4</span>ff5-<span class="number">4</span>ff6, U+<span class="number">4</span>ff8, U+<span class="number">4</span>ffe, U+<span class="number">5001</span>, U+<span class="number">5005</span>-<span class="number">5006</span>, U+<span class="number">5009</span>, U+<span class="number">500</span>c, U+<span class="number">500</span>f, U+<span class="number">5013</span>-<span class="number">5018</span>, U+<span class="number">501</span>b-<span class="number">501</span>e, U+<span class="number">5022</span>-<span class="number">5025</span>, U+<span class="number">5027</span>-<span class="number">5028</span>, U+<span class="number">502</span>b-<span class="number">502</span>e, U+<span class="number">5030</span>, U+<span class="number">5033</span>-<span class="number">5034</span>, U+<span class="number">5036</span>-<span class="number">5039</span>, U+<span class="number">503</span>b, U+<span class="number">5041</span>-<span class="number">5043</span>, U+<span class="number">5045</span>-<span class="number">5046</span>, U+<span class="number">5048</span>-<span class="number">504</span>a, U+<span class="number">504</span>c-<span class="number">504</span>e, U+<span class="number">5051</span>, U+<span class="number">5053</span>, U+<span class="number">5055</span>-<span class="number">5057</span>, U+<span class="number">505</span>b, U+<span class="number">505</span>e, U+<span class="number">5060</span>, U+<span class="number">5062</span>-<span class="number">5063</span>, U+<span class="number">5067</span>, U+<span class="number">506</span>a, U+<span class="number">506</span>c, U+<span class="number">5070</span>-<span class="number">5072</span>, U+<span class="number">5074</span>-<span class="number">5075</span>, U+<span class="number">5078</span>, U+<span class="number">507</span>b, U+<span class="number">507</span>d-<span class="number">507</span>e, U+<span class="number">5080</span>, U+<span class="number">5088</span>-<span class="number">5089</span>, U+<span class="number">5091</span>-<span class="number">5092</span>, U+<span class="number">5095</span>, U+<span class="number">5097</span>-<span class="number">509</span>e, U+<span class="number">50</span>a2-<span class="number">50</span>a3, U+<span class="number">50</span>a5-<span class="number">50</span>a7, U+<span class="number">50</span>a9, U+<span class="number">50</span>ad, U+<span class="number">50</span>b3, U+<span class="number">50</span>b5, U+<span class="number">50</span>b7, U+<span class="number">50</span>ba, U+<span class="number">50</span>be, U+<span class="number">50</span>c4-<span class="number">50</span>c5, U+<span class="number">50</span>c7, U+<span class="number">50</span>ca, U+<span class="number">50</span>cd, U+<span class="number">50</span>d1, U+<span class="number">50</span>d5-<span class="number">50</span>d6, U+<span class="number">50</span>da, U+<span class="number">50</span>de, U+<span class="number">50</span>e5-<span class="number">50</span>e6, U+<span class="number">50</span>ec-<span class="number">50</span>ee, U+<span class="number">50</span>f0-<span class="number">50</span>f1, U+<span class="number">50</span>f3, U+<span class="number">50</span>f9-<span class="number">50</span>fb, U+<span class="number">50</span>fe-<span class="number">5102</span>, U+<span class="number">5104</span>, U+<span class="number">5106</span>-<span class="number">5107</span>, U+<span class="number">5109</span>-<span class="number">510</span>b, U+<span class="number">510</span>d, U+<span class="number">510</span>f;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [84] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.84.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">4</span>eb8-<span class="number">4</span>eb9, U+<span class="number">4</span>ebb-<span class="number">4</span>ebe, U+<span class="number">4</span>ec2-<span class="number">4</span>ec4, U+<span class="number">4</span>ec8-<span class="number">4</span>ec9, U+<span class="number">4</span>ecc, U+<span class="number">4</span>ecf-<span class="number">4</span>ed0, U+<span class="number">4</span>ed2, U+<span class="number">4</span>eda-<span class="number">4</span>edb, U+<span class="number">4</span>edd-<span class="number">4</span>ee1, U+<span class="number">4</span>ee6-<span class="number">4</span>ee9, U+<span class="number">4</span>eeb, U+<span class="number">4</span>eee-<span class="number">4</span>eef, U+<span class="number">4</span>ef3-<span class="number">4</span>ef5, U+<span class="number">4</span>ef8-<span class="number">4</span>efa, U+<span class="number">4</span>efc, U+<span class="number">4</span>f00, U+<span class="number">4</span>f03-<span class="number">4</span>f05, U+<span class="number">4</span>f08-<span class="number">4</span>f09, U+<span class="number">4</span>f0b, U+<span class="number">4</span>f0e, U+<span class="number">4</span>f12-<span class="number">4</span>f13, U+<span class="number">4</span>f15, U+<span class="number">4</span>f1b, U+<span class="number">4</span>f1d, U+<span class="number">4</span>f21-<span class="number">4</span>f22, U+<span class="number">4</span>f25, U+<span class="number">4</span>f27-<span class="number">4</span>f29, U+<span class="number">4</span>f2b-<span class="number">4</span>f2e, U+<span class="number">4</span>f31-<span class="number">4</span>f33, U+<span class="number">4</span>f36-<span class="number">4</span>f37, U+<span class="number">4</span>f39, U+<span class="number">4</span>f3e, U+<span class="number">4</span>f40-<span class="number">4</span>f41, U+<span class="number">4</span>f43, U+<span class="number">4</span>f47-<span class="number">4</span>f49, U+<span class="number">4</span>f54, U+<span class="number">4</span>f57-<span class="number">4</span>f58, U+<span class="number">4</span>f5d-<span class="number">4</span>f5e, U+<span class="number">4</span>f61-<span class="number">4</span>f62, U+<span class="number">4</span>f64-<span class="number">4</span>f65, U+<span class="number">4</span>f67, U+<span class="number">4</span>f6a, U+<span class="number">4</span>f6e-<span class="number">4</span>f6f, U+<span class="number">4</span>f72, U+<span class="number">4</span>f74-<span class="number">4</span>f7e, U+<span class="number">4</span>f80-<span class="number">4</span>f82, U+<span class="number">4</span>f84, U+<span class="number">4</span>f89-<span class="number">4</span>f8a, U+<span class="number">4</span>f8e-<span class="number">4</span>f98, U+<span class="number">4</span>f9e, U+<span class="number">4</span>fa1, U+<span class="number">4</span>fa5, U+<span class="number">4</span>fa9-<span class="number">4</span>faa, U+<span class="number">4</span>fac, U+<span class="number">4</span>fb3, U+<span class="number">4</span>fb6-<span class="number">4</span>fb8, U+<span class="number">4</span>fbd, U+<span class="number">4</span>fc2, U+<span class="number">4</span>fc5-<span class="number">4</span>fc6, U+<span class="number">4</span>fcd-<span class="number">4</span>fce, U+<span class="number">4</span>fd0-<span class="number">4</span>fd1, U+<span class="number">4</span>fd3, U+<span class="number">4</span>fda-<span class="number">4</span>fdc, U+<span class="number">4</span>fdf-<span class="number">4</span>fe0, U+<span class="number">4</span>fe2;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [85] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.85.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">3127</span>-<span class="number">3129</span>, U+<span class="number">3131</span>, U+<span class="number">3134</span>, U+<span class="number">3137</span>, U+<span class="number">3139</span>, U+<span class="number">3141</span>-<span class="number">3142</span>, U+<span class="number">3145</span>, U+<span class="number">3147</span>-<span class="number">3148</span>, U+<span class="number">314</span>b, U+<span class="number">314</span>d-<span class="number">314</span>e, U+<span class="number">315</span>c, U+<span class="number">3160</span>-<span class="number">3161</span>, U+<span class="number">3163</span>-<span class="number">3164</span>, U+<span class="number">3186</span>, U+<span class="number">318</span>d, U+<span class="number">3192</span>, U+<span class="number">3196</span>-<span class="number">3198</span>, U+<span class="number">319</span>e-<span class="number">319</span>f, U+<span class="number">3220</span>-<span class="number">3229</span>, U+<span class="number">3231</span>, U+<span class="number">3268</span>, U+<span class="number">3297</span>, U+<span class="number">3299</span>, U+<span class="number">32</span>a3, U+<span class="number">338</span>e-<span class="number">338</span>f, U+<span class="number">3395</span>, U+<span class="number">339</span>c-<span class="number">339</span>e, U+<span class="number">33</span>c4, U+<span class="number">33</span>d1-<span class="number">33</span>d2, U+<span class="number">33</span>d5, U+<span class="number">3434</span>, U+<span class="number">34</span>dc, U+<span class="number">34</span>ee, U+<span class="number">353</span>e, U+<span class="number">355</span>d, U+<span class="number">3566</span>, U+<span class="number">3575</span>, U+<span class="number">3592</span>, U+<span class="number">35</span>a0-<span class="number">35</span>a1, U+<span class="number">35</span>ad, U+<span class="number">35</span>ce, U+<span class="number">36</span>a2, U+<span class="number">36</span>ab, U+<span class="number">38</span>a8, U+<span class="number">3</span>dab, U+<span class="number">3</span>de7, U+<span class="number">3</span>deb, U+<span class="number">3</span>e1a, U+<span class="number">3</span>f1b, U+<span class="number">3</span>f6d, U+<span class="number">4495</span>, U+<span class="number">4723</span>, U+<span class="number">48</span>fa, U+<span class="number">4</span>ca3, U+<span class="number">4</span>e02, U+<span class="number">4</span>e04-<span class="number">4</span>e06, U+<span class="number">4</span>e0c, U+<span class="number">4</span>e0f, U+<span class="number">4</span>e15, U+<span class="number">4</span>e17, U+<span class="number">4</span>e1f-<span class="number">4</span>e21, U+<span class="number">4</span>e26, U+<span class="number">4</span>e29, U+<span class="number">4</span>e2c, U+<span class="number">4</span>e2f, U+<span class="number">4</span>e31, U+<span class="number">4</span>e35, U+<span class="number">4</span>e37, U+<span class="number">4</span>e3c, U+<span class="number">4</span>e3f-<span class="number">4</span>e42, U+<span class="number">4</span>e44, U+<span class="number">4</span>e46-<span class="number">4</span>e47, U+<span class="number">4</span>e57, U+<span class="number">4</span>e5a-<span class="number">4</span>e5c, U+<span class="number">4</span>e64-<span class="number">4</span>e65, U+<span class="number">4</span>e67, U+<span class="number">4</span>e69, U+<span class="number">4</span>e6d, U+<span class="number">4</span>e78, U+<span class="number">4</span>e7f-<span class="number">4</span>e82, U+<span class="number">4</span>e85, U+<span class="number">4</span>e87, U+<span class="number">4</span>e8a, U+<span class="number">4</span>e8d, U+<span class="number">4</span>e93, U+<span class="number">4</span>e96, U+<span class="number">4</span>e98-<span class="number">4</span>e99, U+<span class="number">4</span>e9c, U+<span class="number">4</span>e9e-<span class="number">4</span>ea0, U+<span class="number">4</span>ea2-<span class="number">4</span>ea3, U+<span class="number">4</span>ea5, U+<span class="number">4</span>eb0-<span class="number">4</span>eb1, U+<span class="number">4</span>eb3-<span class="number">4</span>eb6;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [86] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.86.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">279</span>c, U+<span class="number">279</span>f-<span class="number">27</span>a2, U+<span class="number">27</span>a4-<span class="number">27</span>a5, U+<span class="number">27</span>a8, U+<span class="number">27</span>b0, U+<span class="number">27</span>b2-<span class="number">27</span>b3, U+<span class="number">27</span>b9, U+<span class="number">27</span>e8-<span class="number">27</span>e9, U+<span class="number">27</span>f6, U+<span class="number">2800</span>, U+<span class="number">28</span>ec, U+<span class="number">2913</span>, U+<span class="number">2921</span>-<span class="number">2922</span>, U+<span class="number">2934</span>-<span class="number">2935</span>, U+<span class="number">2</span>a2f, U+<span class="number">2</span>b05-<span class="number">2</span>b07, U+<span class="number">2</span>b50, U+<span class="number">2</span>b55, U+<span class="number">2</span>bc5-<span class="number">2</span>bc6, U+<span class="number">2</span>e1c-<span class="number">2</span>e1d, U+<span class="number">2</span>ebb, U+<span class="number">2</span>f00, U+<span class="number">2</span>f08, U+<span class="number">2</span>f24, U+<span class="number">2</span>f2d, U+<span class="number">2</span>f2f-<span class="number">2</span>f30, U+<span class="number">2</span>f3c, U+<span class="number">2</span>f45, U+<span class="number">2</span>f63-<span class="number">2</span>f64, U+<span class="number">2</span>f74, U+<span class="number">2</span>f83, U+<span class="number">2</span>f8f, U+<span class="number">2</span>fbc, U+<span class="number">3003</span>, U+<span class="number">3005</span>-<span class="number">3007</span>, U+<span class="number">3012</span>-<span class="number">3013</span>, U+<span class="number">301</span>c-<span class="number">301</span>e, U+<span class="number">3021</span>, U+<span class="number">3023</span>-<span class="number">3024</span>, U+<span class="number">3030</span>, U+<span class="number">3034</span>-<span class="number">3035</span>, U+<span class="number">3041</span>, U+<span class="number">3043</span>, U+<span class="number">3045</span>, U+<span class="number">3047</span>, U+<span class="number">3049</span>, U+<span class="number">3056</span>, U+<span class="number">3058</span>, U+<span class="number">305</span>c, U+<span class="number">305</span>e, U+<span class="number">3062</span>, U+<span class="number">306</span>c, U+<span class="number">3074</span>, U+<span class="number">3077</span>, U+<span class="number">307</span>a, U+<span class="number">307</span>c-<span class="number">307</span>d, U+<span class="number">3080</span>, U+<span class="number">308</span>e, U+<span class="number">3090</span>-<span class="number">3091</span>, U+<span class="number">3099</span>-<span class="number">309</span>b, U+<span class="number">309</span>d-<span class="number">309</span>e, U+<span class="number">30</span>a5, U+<span class="number">30</span>bc, U+<span class="number">30</span>be, U+<span class="number">30</span>c2, U+<span class="number">30</span>c5, U+<span class="number">30</span>cc, U+<span class="number">30</span>d8, U+<span class="number">30</span>e2, U+<span class="number">30</span>e8, U+<span class="number">30</span>ee, U+<span class="number">30</span>f0-<span class="number">30</span>f2, U+<span class="number">30</span>f4-<span class="number">30</span>f6, U+<span class="number">30</span>fd-<span class="number">30</span>fe, U+<span class="number">3105</span>-<span class="number">3126</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [87] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.87.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">2650</span>-<span class="number">2655</span>, U+<span class="number">2658</span>, U+<span class="number">265</span>a-<span class="number">265</span>b, U+<span class="number">265</span>d-<span class="number">265</span>e, U+<span class="number">2660</span>-<span class="number">266</span>d, U+<span class="number">266</span>f, U+<span class="number">267</span>b, U+<span class="number">2688</span>, U+<span class="number">2693</span>-<span class="number">2696</span>, U+<span class="number">2698</span>-<span class="number">2699</span>, U+<span class="number">269</span>c, U+<span class="number">26</span>a0-<span class="number">26</span>a1, U+<span class="number">26</span>a4, U+<span class="number">26</span>aa-<span class="number">26</span>ab, U+<span class="number">26</span>bd-<span class="number">26</span>be, U+<span class="number">26</span>c4-<span class="number">26</span>c5, U+<span class="number">26</span>d4, U+<span class="number">26</span>e9, U+<span class="number">26</span>f0-<span class="number">26</span>f1, U+<span class="number">26</span>f3, U+<span class="number">26</span>f5, U+<span class="number">26</span>fd, U+<span class="number">2702</span>, U+<span class="number">2704</span>-<span class="number">2706</span>, U+<span class="number">2708</span>-<span class="number">270</span>f, U+<span class="number">2712</span>-<span class="number">2718</span>, U+<span class="number">271</span>a-<span class="number">271</span>b, U+<span class="number">271</span>d, U+<span class="number">271</span>f, U+<span class="number">2721</span>, U+<span class="number">2724</span>-<span class="number">2730</span>, U+<span class="number">2732</span>-<span class="number">2734</span>, U+<span class="number">273</span>a, U+<span class="number">273</span>d-<span class="number">2744</span>, U+<span class="number">2747</span>-<span class="number">2749</span>, U+<span class="number">274</span>c, U+<span class="number">274</span>e-<span class="number">274</span>f, U+<span class="number">2753</span>-<span class="number">2757</span>, U+<span class="number">275</span>b, U+<span class="number">275</span>d-<span class="number">275</span>e, U+<span class="number">2763</span>, U+<span class="number">2765</span>-<span class="number">2767</span>, U+<span class="number">276</span>e-<span class="number">276</span>f, U+<span class="number">2776</span>-<span class="number">277</span>e, U+<span class="number">2780</span>-<span class="number">2782</span>, U+<span class="number">278</span>a-<span class="number">278</span>c, U+<span class="number">278</span>e, U+<span class="number">2794</span>-<span class="number">2796</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [88] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.88.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">254</span>b, U+<span class="number">2550</span>-<span class="number">2551</span>, U+<span class="number">2554</span>, U+<span class="number">2557</span>, U+<span class="number">255</span>a-<span class="number">255</span>b, U+<span class="number">255</span>d, U+<span class="number">255</span>f-<span class="number">2560</span>, U+<span class="number">2562</span>-<span class="number">2563</span>, U+<span class="number">2565</span>-<span class="number">2567</span>, U+<span class="number">2569</span>-<span class="number">256</span>a, U+<span class="number">256</span>c-<span class="number">2572</span>, U+<span class="number">2579</span>, U+<span class="number">2580</span>-<span class="number">2595</span>, U+<span class="number">25</span>a1, U+<span class="number">25</span>a3, U+<span class="number">25</span>a9-<span class="number">25</span>ad, U+<span class="number">25</span>b0, U+<span class="number">25</span>b3-<span class="number">25</span>bb, U+<span class="number">25</span>bd-<span class="number">25</span>c2, U+<span class="number">25</span>c4, U+<span class="number">25</span>c8-<span class="number">25</span>cb, U+<span class="number">25</span>cd, U+<span class="number">25</span>d0-<span class="number">25</span>d1, U+<span class="number">25</span>d4-<span class="number">25</span>d5, U+<span class="number">25</span>d8, U+<span class="number">25</span>dc-<span class="number">25</span>e6, U+<span class="number">25</span>ea-<span class="number">25</span>eb, U+<span class="number">25</span>ef, U+<span class="number">25</span>fe, U+<span class="number">2600</span>-<span class="number">2604</span>, U+<span class="number">2609</span>, U+<span class="number">260</span>e-<span class="number">260</span>f, U+<span class="number">2611</span>, U+<span class="number">2614</span>-<span class="number">2615</span>, U+<span class="number">2618</span>, U+<span class="number">261</span>a-<span class="number">2620</span>, U+<span class="number">2622</span>-<span class="number">2623</span>, U+<span class="number">262</span>a, U+<span class="number">262</span>d-<span class="number">2630</span>, U+<span class="number">2639</span>-<span class="number">2640</span>, U+<span class="number">2642</span>, U+<span class="number">2648</span>-<span class="number">264</span>f;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [89] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.89.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">23</span>e9, U+<span class="number">23</span>f0, U+<span class="number">23</span>f3, U+<span class="number">2445</span>, U+<span class="number">2449</span>, U+<span class="number">2465</span>-<span class="number">2471</span>, U+<span class="number">2474</span>-<span class="number">249</span>b, U+<span class="number">24</span>b8, U+<span class="number">24</span>c2, U+<span class="number">24</span>c7, U+<span class="number">24</span>c9, U+<span class="number">24</span>d0, U+<span class="number">24</span>d2, U+<span class="number">24</span>d4, U+<span class="number">24</span>d8, U+<span class="number">24</span>dd-<span class="number">24</span>de, U+<span class="number">24</span>e3, U+<span class="number">24</span>e6, U+<span class="number">24</span>e8, U+<span class="number">2500</span>-<span class="number">2509</span>, U+<span class="number">250</span>b-<span class="number">2526</span>, U+<span class="number">2528</span>-<span class="number">2534</span>, U+<span class="number">2536</span>-<span class="number">2537</span>, U+<span class="number">253</span>b-<span class="number">2548</span>, U+<span class="number">254</span>a;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [90] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.90.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">207</span>b-<span class="number">2083</span>, U+<span class="number">208</span>c-<span class="number">208</span>e, U+<span class="number">2092</span>, U+<span class="number">20</span>a6, U+<span class="number">20</span>a8-<span class="number">20</span>ad, U+<span class="number">20</span>af, U+<span class="number">20</span>b1, U+<span class="number">20</span>b4-<span class="number">20</span>b5, U+<span class="number">20</span>b8-<span class="number">20</span>ba, U+<span class="number">20</span>bd, U+<span class="number">20</span>db, U+<span class="number">20</span>dd, U+<span class="number">20</span>e0, U+<span class="number">20</span>e3, U+<span class="number">2105</span>, U+<span class="number">2109</span>, U+<span class="number">2113</span>, U+<span class="number">2116</span>-<span class="number">2117</span>, U+<span class="number">2120</span>-<span class="number">2121</span>, U+<span class="number">2126</span>, U+<span class="number">212</span>b, U+<span class="number">2133</span>, U+<span class="number">2139</span>, U+<span class="number">2194</span>, U+<span class="number">2196</span>-<span class="number">2199</span>, U+<span class="number">21</span>a0, U+<span class="number">21</span>a9-<span class="number">21</span>aa, U+<span class="number">21</span>af, U+<span class="number">21</span>b3, U+<span class="number">21</span>b5, U+<span class="number">21</span>ba-<span class="number">21</span>bb, U+<span class="number">21</span>c4, U+<span class="number">21</span>ca, U+<span class="number">21</span>cc, U+<span class="number">21</span>d0-<span class="number">21</span>d4, U+<span class="number">21</span>e1, U+<span class="number">21</span>e6-<span class="number">21</span>e9, U+<span class="number">2200</span>, U+<span class="number">2202</span>, U+<span class="number">2205</span>-<span class="number">2208</span>, U+<span class="number">220</span>f, U+<span class="number">2211</span>-<span class="number">2212</span>, U+<span class="number">2215</span>, U+<span class="number">2217</span>-<span class="number">2219</span>, U+<span class="number">221</span>d-<span class="number">2220</span>, U+<span class="number">2223</span>, U+<span class="number">2225</span>, U+<span class="number">2227</span>-<span class="number">222</span>b, U+<span class="number">222</span>e, U+<span class="number">2234</span>-<span class="number">2237</span>, U+<span class="number">223</span>c-<span class="number">223</span>d, U+<span class="number">2248</span>, U+<span class="number">224</span>c, U+<span class="number">2252</span>, U+<span class="number">2256</span>, U+<span class="number">2260</span>-<span class="number">2261</span>, U+<span class="number">2266</span>-<span class="number">2267</span>, U+<span class="number">226</span>a-<span class="number">226</span>b, U+<span class="number">226</span>e-<span class="number">226</span>f, U+<span class="number">2282</span>-<span class="number">2283</span>, U+<span class="number">2295</span>, U+<span class="number">2297</span>, U+<span class="number">2299</span>, U+<span class="number">22</span>a5, U+<span class="number">22</span>b0-<span class="number">22</span>b1, U+<span class="number">22</span>b9, U+<span class="number">22</span>bf, U+<span class="number">22</span>c5-<span class="number">22</span>c6, U+<span class="number">22</span>ef, U+<span class="number">2304</span>, U+<span class="number">2307</span>, U+<span class="number">230</span>b, U+<span class="number">2312</span>-<span class="number">2314</span>, U+<span class="number">2318</span>, U+<span class="number">231</span>a-<span class="number">231</span>b, U+<span class="number">2323</span>, U+<span class="number">239</span>b, U+<span class="number">239</span>d-<span class="number">239</span>e, U+<span class="number">23</span>a0;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [91] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.91.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">1</span>d34-<span class="number">1</span>d35, U+<span class="number">1</span>d38-<span class="number">1</span>d3a, U+<span class="number">1</span>d3c, U+<span class="number">1</span>d3f-<span class="number">1</span>d40, U+<span class="number">1</span>d49, U+<span class="number">1</span>d4e-<span class="number">1</span>d4f, U+<span class="number">1</span>d52, U+<span class="number">1</span>d55, U+<span class="number">1</span>d5b, U+<span class="number">1</span>d5e, U+<span class="number">1</span>d9c, U+<span class="number">1</span>da0, U+<span class="number">1</span>dc4-<span class="number">1</span>dc5, U+<span class="number">1</span>e69, U+<span class="number">1</span>e73, U+<span class="number">1</span>ea0-<span class="number">1</span>ea9, U+<span class="number">1</span>eab-<span class="number">1</span>ead, U+<span class="number">1</span>eaf, U+<span class="number">1</span>eb1, U+<span class="number">1</span>eb3, U+<span class="number">1</span>eb5, U+<span class="number">1</span>eb7, U+<span class="number">1</span>eb9, U+<span class="number">1</span>ebb, U+<span class="number">1</span>ebd-<span class="number">1</span>ebe, U+<span class="number">1</span>ec0-<span class="number">1</span>ec3, U+<span class="number">1</span>ec5-<span class="number">1</span>ec6, U+<span class="number">1</span>ec9-<span class="number">1</span>ecd, U+<span class="number">1</span>ecf-<span class="number">1</span>ed3, U+<span class="number">1</span>ed5, U+<span class="number">1</span>ed7-<span class="number">1</span>edf, U+<span class="number">1</span>ee1, U+<span class="number">1</span>ee3, U+<span class="number">1</span>ee5-<span class="number">1</span>eeb, U+<span class="number">1</span>eed, U+<span class="number">1</span>eef-<span class="number">1</span>ef1, U+<span class="number">1</span>ef3, U+<span class="number">1</span>ef7, U+<span class="number">1</span>ef9, U+<span class="number">1</span>f62, U+<span class="number">1</span>f7b, U+<span class="number">2001</span>-<span class="number">2002</span>, U+<span class="number">2004</span>-<span class="number">2006</span>, U+<span class="number">2009</span>-<span class="number">200</span>a, U+<span class="number">200</span>c-<span class="number">2012</span>, U+<span class="number">2015</span>-<span class="number">2016</span>, U+<span class="number">201</span>a, U+<span class="number">201</span>e-<span class="number">2021</span>, U+<span class="number">2023</span>, U+<span class="number">2025</span>, U+<span class="number">2027</span>-<span class="number">2028</span>, U+<span class="number">202</span>a-<span class="number">202</span>d, U+<span class="number">202</span>f-<span class="number">2030</span>, U+<span class="number">2032</span>-<span class="number">2033</span>, U+<span class="number">2035</span>, U+<span class="number">2038</span>, U+<span class="number">203</span>c, U+<span class="number">203</span>e-<span class="number">203</span>f, U+<span class="number">2043</span>-<span class="number">2044</span>, U+<span class="number">2049</span>, U+<span class="number">204</span>d-<span class="number">204</span>e, U+<span class="number">2060</span>-<span class="number">2061</span>, U+<span class="number">2070</span>, U+<span class="number">2074</span>-<span class="number">2078</span>, U+<span class="number">207</span>a;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [97] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.97.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">2</span>ae-<span class="number">2</span>b3, U+<span class="number">2</span>b5-<span class="number">2</span>bf, U+<span class="number">2</span>c2-<span class="number">2</span>c3, U+<span class="number">2</span>c6-<span class="number">2</span>d1, U+<span class="number">2</span>d8-<span class="number">2</span>da, U+<span class="number">2</span>dc, U+<span class="number">2</span>e1-<span class="number">2</span>e3, U+<span class="number">2</span>e5, U+<span class="number">2</span>eb, U+<span class="number">2</span>ee-<span class="number">2</span>f0, U+<span class="number">2</span>f2-<span class="number">2</span>f7, U+<span class="number">2</span>f9-<span class="number">2</span>ff, U+<span class="number">302</span>-<span class="number">30</span>d, U+<span class="number">311</span>, U+<span class="number">31</span>b, U+<span class="number">321</span>-<span class="number">325</span>, U+<span class="number">327</span>-<span class="number">329</span>, U+<span class="number">32</span>b-<span class="number">32</span>c, U+<span class="number">32</span>e-<span class="number">32</span>f, U+<span class="number">331</span>-<span class="number">339</span>, U+<span class="number">33</span>c-<span class="number">33</span>d, U+<span class="number">33</span>f, U+<span class="number">348</span>, U+<span class="number">352</span>, U+<span class="number">35</span>c, U+<span class="number">35</span>e-<span class="number">35</span>f, U+<span class="number">361</span>, U+<span class="number">363</span>, U+<span class="number">368</span>, U+<span class="number">36</span>c, U+<span class="number">36</span>f, U+<span class="number">530</span>-<span class="number">540</span>, U+<span class="number">55</span>d-<span class="number">55</span>e, U+<span class="number">561</span>, U+<span class="number">563</span>, U+<span class="number">565</span>, U+<span class="number">56</span>b, U+<span class="number">56</span>e-<span class="number">579</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [98] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.98.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">176</span>-<span class="number">17</span>f, U+<span class="number">192</span>, U+<span class="number">194</span>, U+<span class="number">19</span>a-<span class="number">19</span>b, U+<span class="number">19</span>d, U+<span class="number">1</span>a0-<span class="number">1</span>a1, U+<span class="number">1</span>a3-<span class="number">1</span>a4, U+<span class="number">1</span>aa, U+<span class="number">1</span>ac-<span class="number">1</span>ad, U+<span class="number">1</span>af-<span class="number">1</span>bf, U+<span class="number">1</span>d2, U+<span class="number">1</span>d4, U+<span class="number">1</span>d6, U+<span class="number">1</span>d8, U+<span class="number">1</span>da, U+<span class="number">1</span>dc, U+<span class="number">1</span>e3, U+<span class="number">1</span>e7, U+<span class="number">1</span>e9, U+<span class="number">1</span>ee, U+<span class="number">1</span>f0-<span class="number">1</span>f1, U+<span class="number">1</span>f3, U+<span class="number">1</span>f5-<span class="number">1</span>ff, U+<span class="number">219</span>-<span class="number">21</span>b, U+<span class="number">221</span>, U+<span class="number">223</span>-<span class="number">226</span>, U+<span class="number">228</span>, U+<span class="number">22</span>b, U+<span class="number">22</span>f, U+<span class="number">231</span>, U+<span class="number">234</span>-<span class="number">237</span>, U+<span class="number">23</span>a-<span class="number">23</span>b, U+<span class="number">23</span>d, U+<span class="number">250</span>-<span class="number">252</span>, U+<span class="number">254</span>-<span class="number">255</span>, U+<span class="number">259</span>-<span class="number">25</span>e, U+<span class="number">261</span>-<span class="number">263</span>, U+<span class="number">265</span>, U+<span class="number">268</span>, U+<span class="number">26</span>a-<span class="number">26</span>b, U+<span class="number">26</span>f-<span class="number">277</span>, U+<span class="number">279</span>, U+<span class="number">27</span>b-<span class="number">280</span>, U+<span class="number">282</span>-<span class="number">283</span>, U+<span class="number">285</span>, U+<span class="number">28</span>a, U+<span class="number">28</span>c, U+<span class="number">28</span>f, U+<span class="number">292</span>, U+<span class="number">294</span>-<span class="number">296</span>, U+<span class="number">298</span>-<span class="number">29</span>a, U+<span class="number">29</span>c, U+<span class="number">29</span>f, U+<span class="number">2</span>a1-<span class="number">2</span>a4, U+<span class="number">2</span>a6-<span class="number">2</span>a7, U+<span class="number">2</span>a9, U+<span class="number">2</span>ab;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [99] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.99.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+a1-a4, U+a6-a8, U+aa, U+ac, U+af, U+b1, U+b3-b6, U+b8-ba, U+bc-d6, U+d8-de, U+e6, U+eb, U+ee-f0, U+f5, U+f7-f8, U+fb, U+fd-<span class="number">100</span>, U+<span class="number">102</span>, U+<span class="number">104</span>-<span class="number">107</span>, U+<span class="number">10</span>d, U+<span class="number">10</span>f-<span class="number">112</span>, U+<span class="number">115</span>, U+<span class="number">117</span>, U+<span class="number">119</span>, U+<span class="number">11</span>b, U+<span class="number">11</span>e-<span class="number">11</span>f, U+<span class="number">121</span>, U+<span class="number">123</span>, U+<span class="number">125</span>-<span class="number">127</span>, U+<span class="number">129</span>-<span class="number">12</span>a, U+<span class="number">12</span>d, U+<span class="number">12</span>f-<span class="number">13</span>f, U+<span class="number">141</span>-<span class="number">142</span>, U+<span class="number">144</span>, U+<span class="number">146</span>, U+<span class="number">14</span>b-<span class="number">14</span>c, U+<span class="number">14</span>f-<span class="number">153</span>, U+<span class="number">158</span>-<span class="number">15</span>b, U+<span class="number">15</span>e-<span class="number">160</span>, U+<span class="number">163</span>-<span class="number">165</span>, U+<span class="number">168</span>-<span class="number">16</span>a, U+<span class="number">16</span>d-<span class="number">175</span>;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [100] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.100.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">221</span>a, U+<span class="number">2264</span>, U+<span class="number">2464</span>, U+<span class="number">25</span>a0, U+<span class="number">3008</span>, U+<span class="number">4</span>e10, U+<span class="number">512</span>a, U+<span class="number">5152</span>, U+<span class="number">5201</span>, U+<span class="number">5241</span>, U+<span class="number">5352</span>, U+<span class="number">549</span>a, U+<span class="number">54</span>b2, U+<span class="number">54</span>c6, U+<span class="number">54</span>d7, U+<span class="number">54</span>e1, U+<span class="number">5509</span>, U+<span class="number">55</span>c5, U+<span class="number">560</span>e, U+<span class="number">5618</span>, U+<span class="number">565</span>c, U+<span class="number">56</span>bc, U+<span class="number">5716</span>, U+<span class="number">576</span>f, U+<span class="number">5784</span>, U+<span class="number">57</span>a2, U+<span class="number">589</span>f, U+<span class="number">5</span>a20, U+<span class="number">5</span>a25, U+<span class="number">5</span>a29, U+<span class="number">5</span>a34, U+<span class="number">5</span>a7f, U+<span class="number">5</span>ac9, U+<span class="number">5</span>ad6, U+<span class="number">5</span>b09, U+<span class="number">5</span>b5c, U+<span class="number">5</span>bc7, U+<span class="number">5</span>c27, U+<span class="number">5</span>d2d, U+<span class="number">5</span>dcd, U+<span class="number">5</span>f1b, U+<span class="number">5</span>f37, U+<span class="number">604</span>d, U+<span class="number">6055</span>, U+<span class="number">6073</span>, U+<span class="number">60</span>eb, U+<span class="number">61</span>ff, U+<span class="number">620</span>c, U+<span class="number">62</span>c7, U+<span class="number">62</span>ed, U+<span class="number">6320</span>, U+<span class="number">6345</span>, U+<span class="number">6390</span>, U+<span class="number">63</span>b0, U+<span class="number">64</span>ae, U+<span class="number">64</span>c2, U+<span class="number">64</span>d2, U+<span class="number">6556</span>, U+<span class="number">663</span>c, U+<span class="number">667</span>e, U+<span class="number">66</span>d9, U+<span class="number">66</span>f8, U+<span class="number">6756</span>, U+<span class="number">6789</span>, U+<span class="number">689</span>d, U+<span class="number">68</span>f1, U+<span class="number">695</span>e, U+<span class="number">6975</span>, U+<span class="number">6</span>a1f, U+<span class="number">6</span>b0a, U+<span class="number">6</span>b61, U+<span class="number">6</span>b87, U+<span class="number">6</span>c5d, U+<span class="number">6</span>c7e, U+<span class="number">6</span>c92, U+<span class="number">6</span>d31, U+<span class="number">6</span>df9, U+<span class="number">6</span>e0d, U+<span class="number">6</span>e2d, U+<span class="number">6</span>f3e, U+<span class="number">70</span>b3, U+<span class="number">70</span>bd, U+<span class="number">70</span>ca, U+<span class="number">70</span>e8, U+<span class="number">725</span>f, U+<span class="number">72</span>e9, U+<span class="number">733</span>f, U+<span class="number">7396</span>, U+<span class="number">739</span>f, U+<span class="number">7459</span>-<span class="number">745</span>a, U+<span class="number">74</span>a7, U+<span class="number">75</span>a1, U+<span class="number">75</span>f0, U+<span class="number">76</span>cf, U+<span class="number">76</span>d4, U+<span class="number">7729</span>, U+<span class="number">77</span>aa, U+<span class="number">77</span>b0, U+<span class="number">77</span>e3, U+<span class="number">780</span>c, U+<span class="number">78</span>d5, U+<span class="number">7941</span>, U+<span class="number">7977</span>, U+<span class="number">797</span>a, U+<span class="number">79</span>c3, U+<span class="number">7</span>a20, U+<span class="number">7</span>a92, U+<span class="number">7</span>b71, U+<span class="number">7</span>bf1, U+<span class="number">7</span>c9f, U+<span class="number">7</span>eb6, U+<span class="number">7</span>eca, U+<span class="number">7</span>ef7, U+<span class="number">7</span>f07, U+<span class="number">7</span>f09, U+<span class="number">7</span>f15, U+<span class="number">7</span>f81, U+<span class="number">7</span>fb9, U+<span class="number">8038</span>, U+<span class="number">8098</span>, U+<span class="number">80</span>b4, U+<span class="number">8110</span>, U+<span class="number">814</span>b-<span class="number">814</span>c, U+<span class="number">816</span>e, U+<span class="number">818</span>a, U+<span class="number">8205</span>, U+<span class="number">8235</span>, U+<span class="number">828</span>b, U+<span class="number">82</span>a5, U+<span class="number">82</span>b7, U+<span class="number">82</span>d4, U+<span class="number">82</span>db, U+<span class="number">82</span>df, U+<span class="number">8317</span>, U+<span class="number">8338</span>, U+<span class="number">8385</span>-<span class="number">8386</span>, U+<span class="number">83</span>c1, U+<span class="number">83</span>cf, U+<span class="number">8537</span>, U+<span class="number">853</span>b, U+<span class="number">854</span>a, U+<span class="number">8715</span>, U+<span class="number">8783</span>, U+<span class="number">892</span>a, U+<span class="number">8</span>a71, U+<span class="number">8</span>aaa, U+<span class="number">8</span>d58, U+<span class="number">8</span>dbe, U+<span class="number">8</span>f67, U+<span class="number">8</span>fab, U+<span class="number">8</span>fc4, U+<span class="number">8</span>fe6, U+<span class="number">9023</span>, U+<span class="number">9084</span>, U+<span class="number">9091</span>, U+<span class="number">916</span>a, U+<span class="number">91</span>c9, U+<span class="number">91</span>dc, U+<span class="number">94</span>b3, U+<span class="number">9502</span>, U+<span class="number">9523</span>, U+<span class="number">9551</span>, U+<span class="number">956</span>f, U+<span class="number">960</span>e, U+<span class="number">962</span>a, U+<span class="number">962</span>e, U+<span class="number">9647</span>, U+<span class="number">96</span>f3, U+<span class="number">9739</span>, U+<span class="number">97</span>a0, U+<span class="number">97</span>ed, U+<span class="number">983</span>b, U+<span class="number">985</span>e, U+<span class="number">988</span>a, U+<span class="number">9</span>a6f, U+<span class="number">9</span>a8b, U+<span class="number">9</span>ab7, U+<span class="number">9</span>ac5, U+<span class="number">9</span>e25, U+e608, U+ff06, U+ff14-ff16;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [101] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.101.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">161</span>, U+<span class="number">926</span>, U+<span class="number">928</span>, U+<span class="number">939</span>, U+<span class="number">93</span>f-<span class="number">940</span>, U+<span class="number">94</span>d, U+e17, U+e22, U+e44, U+<span class="number">2463</span>, U+<span class="number">25</span>c7, U+<span class="number">25</span>ce, U+<span class="number">2764</span>, U+<span class="number">3009</span>, U+<span class="number">3016</span>-<span class="number">3017</span>, U+<span class="number">4</span>e4d, U+<span class="number">4</span>e53, U+<span class="number">4</span>f5a, U+<span class="number">4</span>f70, U+<span class="number">4</span>fae, U+<span class="number">4</span>fd8, U+<span class="number">4</span>ffa, U+<span class="number">5011</span>, U+<span class="number">501</span>a, U+<span class="number">516</span>e, U+<span class="number">51</span>c4, U+<span class="number">5225</span>, U+<span class="number">5364</span>, U+<span class="number">547</span>b, U+<span class="number">5495</span>, U+<span class="number">54</span>e8, U+<span class="number">54</span>ee, U+<span class="number">5594</span>, U+<span class="number">55</span>d3, U+<span class="number">55</span>dc, U+<span class="number">55</span>fd, U+<span class="number">5662</span>, U+<span class="number">5669</span>, U+<span class="number">566</span>c, U+<span class="number">5742</span>, U+<span class="number">5824</span>, U+<span class="number">5834</span>, U+<span class="number">598</span>a, U+<span class="number">5992</span>, U+<span class="number">59</span>a9, U+<span class="number">5</span>a04, U+<span class="number">5</span>b75, U+<span class="number">5</span>b7d, U+<span class="number">5</span>bc5, U+<span class="number">5</span>c49, U+<span class="number">5</span>c90, U+<span class="number">5</span>e1c, U+<span class="number">5</span>e27, U+<span class="number">5</span>e2b, U+<span class="number">5</span>e37, U+<span class="number">5</span>e90, U+<span class="number">618</span>b, U+<span class="number">61</span>f5, U+<span class="number">620</span>a, U+<span class="number">6273</span>, U+<span class="number">62</span>f7, U+<span class="number">6342</span>, U+<span class="number">6401</span>-<span class="number">6402</span>, U+<span class="number">6413</span>, U+<span class="number">6512</span>, U+<span class="number">655</span>b, U+<span class="number">65</span>a7, U+<span class="number">65</span>f1, U+<span class="number">65</span>f7, U+<span class="number">665</span>f, U+<span class="number">6687</span>, U+<span class="number">66</span>a7, U+<span class="number">673</span>d, U+<span class="number">67</span>b8, U+<span class="number">6854</span>, U+<span class="number">68</span>d8, U+<span class="number">68</span>fa, U+<span class="number">696</span>d, U+<span class="number">6</span>a02, U+<span class="number">6</span>a0a, U+<span class="number">6</span>a80, U+<span class="number">6</span>b7c, U+<span class="number">6</span>bd9, U+<span class="number">6</span>c2e, U+<span class="number">6</span>c76, U+<span class="number">6</span>cf8, U+<span class="number">6</span>d4a, U+<span class="number">6</span>d85, U+<span class="number">6</span>e24, U+<span class="number">6</span>e32, U+<span class="number">6</span>ec7, U+<span class="number">6</span>ed5, U+<span class="number">6</span>f88, U+<span class="number">700</span>f, U+<span class="number">701</span>a, U+<span class="number">7078</span>, U+<span class="number">707</span>c, U+<span class="number">70</span>ac, U+<span class="number">70</span>c1, U+<span class="number">7409</span>, U+<span class="number">7422</span>, U+<span class="number">7480</span>, U+<span class="number">74</span>a8, U+<span class="number">752</span>b, U+<span class="number">7574</span>, U+<span class="number">7656</span>, U+<span class="number">7699</span>, U+<span class="number">7737</span>, U+<span class="number">785</span>d, U+<span class="number">78</span>be, U+<span class="number">79</span>b9, U+<span class="number">7</span>a3d, U+<span class="number">7</span>a91, U+<span class="number">7</span>a9f, U+<span class="number">7</span>ae3, U+<span class="number">7</span>b77, U+<span class="number">7</span>c3f, U+<span class="number">7</span>d1a, U+<span class="number">7</span>d50, U+<span class="number">7</span>d93, U+<span class="number">803</span>f, U+<span class="number">8042</span>, U+<span class="number">808</span>b, U+<span class="number">8236</span>, U+<span class="number">82</span>b8-<span class="number">82</span>b9, U+<span class="number">82</span>ef, U+<span class="number">8309</span>, U+<span class="number">836</span>b, U+<span class="number">83</span>ef, U+<span class="number">8431</span>, U+<span class="number">85</span>c9, U+<span class="number">865</span>e, U+<span class="number">868</span>c, U+<span class="number">8759</span>, U+<span class="number">8760</span>, U+<span class="number">8845</span>, U+<span class="number">89</span>ba, U+<span class="number">8</span>a2a, U+<span class="number">8</span>c41, U+<span class="number">8</span>cec, U+<span class="number">8</span>d2c, U+<span class="number">8</span>d4e, U+<span class="number">8</span>e66, U+<span class="number">8</span>e6d, U+<span class="number">8</span>eaf, U+<span class="number">902</span>e, U+<span class="number">914</span>b, U+<span class="number">916</span>e, U+<span class="number">919</span>b, U+<span class="number">949</span>b, U+<span class="number">94</span>a0, U+<span class="number">94</span>b0, U+<span class="number">9541</span>-<span class="number">9542</span>, U+<span class="number">9556</span>, U+<span class="number">95</span>eb, U+<span class="number">95</span>f5, U+<span class="number">964</span>b, U+<span class="number">968</span>b, U+<span class="number">96</span>cc-<span class="number">96</span>cd, U+<span class="number">96</span>cf, U+<span class="number">9704</span>, U+<span class="number">9713</span>, U+<span class="number">9890</span>, U+<span class="number">98</span>a8, U+<span class="number">9985</span>, U+<span class="number">9992</span>, U+<span class="number">9</span>a6d, U+<span class="number">9</span>a81, U+<span class="number">9</span>a86, U+<span class="number">9</span>ab8, U+<span class="number">9</span>ca4, U+<span class="number">9</span>f9a, U+e606-e607, U+e60a, U+e60c, U+e60e, U+fe0f, U+ff02, U+ff1e, U+ff3d;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [102] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.102.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">10</span>c, U+<span class="number">627</span>-<span class="number">629</span>, U+<span class="number">639</span>, U+<span class="number">644</span>, U+<span class="number">64</span>a, U+<span class="number">203</span>b, U+<span class="number">2265</span>, U+<span class="number">2573</span>, U+<span class="number">25</span>b2, U+<span class="number">3448</span>-<span class="number">3449</span>, U+<span class="number">4</span>e1e, U+<span class="number">4</span>e5e, U+<span class="number">4</span>f3a, U+<span class="number">4</span>f5f, U+<span class="number">4</span>fea, U+<span class="number">5026</span>, U+<span class="number">508</span>d, U+<span class="number">5189</span>, U+<span class="number">5254</span>, U+<span class="number">5288</span>, U+<span class="number">52</span>d8, U+<span class="number">52</span>fa, U+<span class="number">5306</span>, U+<span class="number">5308</span>, U+<span class="number">5384</span>, U+<span class="number">53</span>ed, U+<span class="number">543</span>c, U+<span class="number">5450</span>, U+<span class="number">5455</span>, U+<span class="number">5466</span>, U+<span class="number">54</span>c4, U+<span class="number">5578</span>, U+<span class="number">55</span>a7, U+<span class="number">561</span>f, U+<span class="number">5631</span>, U+<span class="number">572</span>d, U+<span class="number">575</span>f, U+<span class="number">57</span>ae, U+<span class="number">57</span>e0, U+<span class="number">5830</span>, U+<span class="number">594</span>e, U+<span class="number">5984</span>, U+<span class="number">5993</span>, U+<span class="number">5</span>bdd, U+<span class="number">5</span>c0d, U+<span class="number">5</span>c7f, U+<span class="number">5</span>c82, U+<span class="number">5</span>e62, U+<span class="number">5</span>ed3, U+<span class="number">5</span>f08, U+<span class="number">607</span>a, U+<span class="number">60</span>bc, U+<span class="number">60</span>df, U+<span class="number">625</span>b, U+<span class="number">6292</span>, U+<span class="number">62</span>e2, U+<span class="number">6363</span>, U+<span class="number">6467</span>, U+<span class="number">6714</span>, U+<span class="number">675</span>e, U+<span class="number">6771</span>, U+<span class="number">67</span>a2, U+<span class="number">67</span>ff, U+<span class="number">6805</span>, U+<span class="number">6813</span>, U+<span class="number">6869</span>, U+<span class="number">68</span>a7, U+<span class="number">68</span>e0, U+<span class="number">6930</span>, U+<span class="number">6986</span>, U+<span class="number">69</span>a8, U+<span class="number">69</span>df, U+<span class="number">6</span>a44, U+<span class="number">6</span>a5f, U+<span class="number">6</span>c13, U+<span class="number">6</span>c1f, U+<span class="number">6</span>c22, U+<span class="number">6</span>c2f, U+<span class="number">6</span>c40, U+<span class="number">6</span>c81, U+<span class="number">6</span>c9b, U+<span class="number">6</span>ca5, U+<span class="number">6</span>da4, U+<span class="number">6</span>df3, U+<span class="number">6</span>e85, U+<span class="number">6</span>eba, U+<span class="number">6</span>f13, U+<span class="number">6</span>f33, U+<span class="number">6</span>f62, U+<span class="number">715</span>e, U+<span class="number">72</span>c4, U+<span class="number">73</span>d1, U+<span class="number">73</span>fe, U+<span class="number">7405</span>, U+<span class="number">7455</span>, U+<span class="number">7487</span>, U+<span class="number">7578</span>, U+<span class="number">75</span>a4, U+<span class="number">75</span>eb, U+<span class="number">7693</span>, U+<span class="number">7738</span>, U+<span class="number">7741</span>, U+<span class="number">776</span>b, U+<span class="number">7792</span>, U+<span class="number">77</span>a7, U+<span class="number">77</span>a9, U+<span class="number">77</span>b3, U+<span class="number">788</span>c, U+<span class="number">7984</span>, U+<span class="number">79</span>a7, U+<span class="number">79</span>e4, U+<span class="number">7</span>a1a, U+<span class="number">7</span>a57, U+<span class="number">7</span>aa6, U+<span class="number">7</span>b0b, U+<span class="number">7</span>b5d, U+<span class="number">7</span>c27, U+<span class="number">7</span>c7d, U+<span class="number">7</span>caa, U+<span class="number">7</span>cd9, U+<span class="number">7</span>cef, U+<span class="number">7</span>eda, U+<span class="number">7</span>ede, U+<span class="number">7</span>f24, U+<span class="number">8046</span>, U+<span class="number">80</span>fa, U+<span class="number">81</span>b3, U+<span class="number">81</span>fb, U+<span class="number">8207</span>, U+<span class="number">8258</span>, U+<span class="number">8335</span>, U+<span class="number">8339</span>, U+<span class="number">8354</span>, U+<span class="number">840</span>e, U+<span class="number">85</span>b0, U+<span class="number">85</span>fb, U+<span class="number">8695</span>, U+<span class="number">86</span>aa, U+<span class="number">8717</span>, U+<span class="number">8749</span>, U+<span class="number">874</span>c, U+<span class="number">8996</span>, U+<span class="number">89</span>bd, U+<span class="number">89</span>c5, U+<span class="number">8</span>bdb, U+<span class="number">8</span>bf5, U+<span class="number">8</span>c5a, U+<span class="number">8</span>d3f, U+<span class="number">8</span>d9f, U+<span class="number">8</span>e44, U+<span class="number">8</span>fed, U+<span class="number">9005</span>, U+<span class="number">9019</span>, U+<span class="number">904</span>e, U+<span class="number">9082</span>, U+<span class="number">90</span>af, U+<span class="number">90</span>dd, U+<span class="number">90</span>e1, U+<span class="number">90</span>f8, U+<span class="number">9119</span>, U+<span class="number">916</span>f, U+<span class="number">9176</span>, U+<span class="number">949</span>e, U+<span class="number">94</span>a7, U+<span class="number">94</span>c2, U+<span class="number">9525</span>, U+<span class="number">9580</span>, U+<span class="number">95</span>dc, U+<span class="number">96</span>e2, U+<span class="number">96</span>fb, U+<span class="number">9</span>a7c, U+<span class="number">9</span>a7f, U+<span class="number">9</span>b41, U+<span class="number">9</span>ca8, U+<span class="number">9</span>cc4, U+<span class="number">9</span>cde, U+<span class="number">9</span>e92, U+<span class="number">9</span>ede, U+e60b, U+e610, U+ff10, U+ff13, U+ff3b, U+f012b;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [103] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.103.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">60</span>, U+<span class="number">631</span>, U+<span class="number">2606</span>, U+<span class="number">3014</span>-<span class="number">3015</span>, U+<span class="number">309</span>c, U+<span class="number">33</span>a1, U+<span class="number">4</span>e52, U+<span class="number">4</span>ec6, U+<span class="number">4</span>f86, U+<span class="number">4</span>f8d, U+<span class="number">4</span>fde, U+<span class="number">4</span>fef, U+<span class="number">500</span>b, U+<span class="number">502</span>a, U+<span class="number">515</span>c, U+<span class="number">518</span>a, U+<span class="number">51</span>a5, U+<span class="number">51</span>f3, U+<span class="number">5243</span>, U+<span class="number">52</span>c9, U+<span class="number">52</span>d5, U+<span class="number">53</span>a2, U+<span class="number">53</span>ee, U+<span class="number">54</span>ce, U+<span class="number">54</span>fa, U+<span class="number">54</span>fc, U+<span class="number">5580</span>, U+<span class="number">5587</span>, U+<span class="number">563</span>f, U+<span class="number">56</span>da, U+<span class="number">5792</span>, U+<span class="number">5815</span>, U+<span class="number">5960</span>, U+<span class="number">59</span>d7, U+<span class="number">5</span>a1f, U+<span class="number">5</span>b78, U+<span class="number">5</span>b9b, U+<span class="number">5</span>be1, U+<span class="number">5</span>c4e, U+<span class="number">5</span>c51, U+<span class="number">5</span>c6f, U+<span class="number">5</span>c9a, U+<span class="number">5</span>cfb, U+<span class="number">5</span>d16, U+<span class="number">5</span>ed6, U+<span class="number">5</span>f27, U+<span class="number">5</span>f6a, U+<span class="number">5</span>f6c, U+<span class="number">603</span>c, U+<span class="number">609</span>a, U+<span class="number">6168</span>, U+<span class="number">61</span>c8, U+<span class="number">6236</span>, U+<span class="number">62</span>d0, U+<span class="number">62</span>f1, U+<span class="number">62</span>fd, U+<span class="number">631</span>a, U+<span class="number">6328</span>, U+<span class="number">632</span>b, U+<span class="number">6346</span>, U+<span class="number">638</span>f, U+<span class="number">63</span>a0, U+<span class="number">63</span>c9, U+<span class="number">655</span>e, U+<span class="number">6590</span>, U+<span class="number">6615</span>, U+<span class="number">6627</span>, U+<span class="number">66</span>ae, U+<span class="number">66</span>e6, U+<span class="number">66</span>f0, U+<span class="number">6703</span>, U+<span class="number">67</span>da, U+<span class="number">67</span>ec, U+<span class="number">6816</span>, U+<span class="number">6893</span>, U+<span class="number">68</span>ad, U+<span class="number">68</span>f5, U+<span class="number">6977</span>, U+<span class="number">6984</span>, U+<span class="number">69</span>db, U+<span class="number">6</span>b72, U+<span class="number">6</span>bb7, U+<span class="number">6</span>ce3, U+<span class="number">6</span>cfb, U+<span class="number">6</span>d47, U+<span class="number">6</span>da1, U+<span class="number">6</span>dc4, U+<span class="number">6</span>e43, U+<span class="number">6</span>eaf, U+<span class="number">6</span>eff, U+<span class="number">6</span>f8e, U+<span class="number">7011</span>, U+<span class="number">7063</span>, U+<span class="number">7076</span>, U+<span class="number">7096</span>, U+<span class="number">70</span>ba, U+<span class="number">70</span>db, U+<span class="number">70</span>ef, U+<span class="number">7119</span>-<span class="number">711</span>a, U+<span class="number">7172</span>, U+<span class="number">718</span>f, U+<span class="number">7194</span>, U+<span class="number">727</span>a, U+<span class="number">72</span>d9, U+<span class="number">72</span>ed, U+<span class="number">7325</span>, U+<span class="number">73</span>ae, U+<span class="number">73</span>ba, U+<span class="number">73</span>c0, U+<span class="number">7410</span>, U+<span class="number">7426</span>, U+<span class="number">7554</span>, U+<span class="number">7576</span>, U+<span class="number">75</span>ae, U+<span class="number">75</span>b9, U+<span class="number">762</span>b, U+<span class="number">766</span>b, U+<span class="number">7682</span>, U+<span class="number">7750</span>, U+<span class="number">7779</span>, U+<span class="number">7784</span>, U+<span class="number">77</span>eb, U+<span class="number">77</span>ee, U+<span class="number">78</span>f7, U+<span class="number">79</span>e9, U+<span class="number">7</span>a79, U+<span class="number">7</span>b1b, U+<span class="number">7</span>b28, U+<span class="number">7</span>bf7, U+<span class="number">7</span>db2, U+<span class="number">7</span>ec5, U+<span class="number">7</span>eee, U+<span class="number">7</span>f14, U+<span class="number">7</span>f1a, U+<span class="number">7</span>fe1, U+<span class="number">8087</span>, U+<span class="number">809</span>b, U+<span class="number">8231</span>, U+<span class="number">830</span>e, U+<span class="number">835</span>f, U+<span class="number">83</span>e9, U+<span class="number">849</span>c, U+<span class="number">851</span>a, U+<span class="number">868</span>a, U+<span class="number">8718</span>, U+<span class="number">874</span>e, U+<span class="number">8822</span>, U+<span class="number">8910</span>, U+<span class="number">8944</span>, U+<span class="number">8</span>a3b, U+<span class="number">8</span>bb6, U+<span class="number">8</span>bbc, U+<span class="number">8</span>d50, U+<span class="number">8</span>e72, U+<span class="number">8</span>f9c, U+<span class="number">900</span>d, U+<span class="number">904</span>b, U+<span class="number">9063</span>, U+<span class="number">90</span>a2, U+<span class="number">90</span>b9, U+<span class="number">94</span>f2, U+<span class="number">952</span>f, U+<span class="number">9576</span>-<span class="number">9577</span>, U+<span class="number">9593</span>, U+<span class="number">95</span>f8, U+<span class="number">961</span>c, U+<span class="number">9631</span>, U+<span class="number">969</span>b, U+<span class="number">96</span>a7, U+<span class="number">96</span>c1, U+<span class="number">9716</span>, U+<span class="number">9761</span>, U+<span class="number">97</span>ad, U+<span class="number">97</span>e7, U+<span class="number">98</span>a4, U+<span class="number">997</span>a, U+<span class="number">9</span>a73, U+<span class="number">9</span>b44, U+<span class="number">9</span>e3d, U+<span class="number">9</span>ecf, U+<span class="number">9</span>ed4, U+ff11-ff12, U+fffd;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [104] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.104.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">2003</span>, U+<span class="number">2193</span>, U+<span class="number">2462</span>, U+<span class="number">4</span>e19, U+<span class="number">4</span>e2b, U+<span class="number">4</span>e36, U+<span class="number">4</span>ea8, U+<span class="number">4</span>ed1, U+<span class="number">4</span>ed7, U+<span class="number">4</span>f51, U+<span class="number">4</span>f63, U+<span class="number">4</span>f83, U+<span class="number">50</span>e7, U+<span class="number">5112</span>, U+<span class="number">5167</span>, U+<span class="number">51</span>a4, U+<span class="number">51</span>b6, U+<span class="number">5239</span>, U+<span class="number">5265</span>, U+<span class="number">532</span>a, U+<span class="number">5351</span>, U+<span class="number">537</span>f, U+<span class="number">5401</span>, U+<span class="number">548</span>f, U+<span class="number">5492</span>, U+<span class="number">54</span>af, U+<span class="number">54</span>b3, U+<span class="number">54</span>bd, U+<span class="number">54</span>d1, U+<span class="number">54</span>df, U+<span class="number">554</span>f, U+<span class="number">5564</span>, U+<span class="number">5598</span>, U+<span class="number">5632</span>, U+<span class="number">56</span>a3, U+<span class="number">56</span>e7, U+<span class="number">574</span>e, U+<span class="number">575</span>d-<span class="number">575</span>e, U+<span class="number">57</span>d4, U+<span class="number">584</span>c, U+<span class="number">58</span>e4, U+<span class="number">5937</span>, U+<span class="number">5955</span>, U+<span class="number">5</span>a05, U+<span class="number">5</span>a49, U+<span class="number">5</span>ac2, U+<span class="number">5</span>bb0, U+<span class="number">5</span>c39, U+<span class="number">5</span>c61, U+<span class="number">5</span>d0e, U+<span class="number">5</span>de9, U+<span class="number">5</span>e9a, U+<span class="number">5</span>eb8, U+<span class="number">5</span>f0a, U+<span class="number">5</span>f13, U+<span class="number">5</span>f8c, U+<span class="number">608</span>d, U+<span class="number">611</span>b, U+<span class="number">6127</span>, U+<span class="number">62</span>a0, U+<span class="number">634</span>f, U+<span class="number">635</span>e, U+<span class="number">63</span>fd, U+<span class="number">6577</span>, U+<span class="number">658</span>b, U+<span class="number">65</span>bc, U+<span class="number">660</span>a, U+<span class="number">6643</span>, U+<span class="number">6656</span>, U+<span class="number">6760</span>, U+<span class="number">67</span>af, U+<span class="number">67</span>c4, U+<span class="number">67</span>e0, U+<span class="number">6817</span>, U+<span class="number">68</span>cd, U+<span class="number">690</span>e, U+<span class="number">6960</span>, U+<span class="number">69</span>b4, U+<span class="number">6</span>a71, U+<span class="number">6</span>aac, U+<span class="number">6</span>b67, U+<span class="number">6</span>bb4, U+<span class="number">6</span>c55, U+<span class="number">6</span>c70, U+<span class="number">6</span>c82, U+<span class="number">6</span>ca6, U+<span class="number">6</span>cb8, U+<span class="number">6</span>cbe, U+<span class="number">6</span>e9c, U+<span class="number">6</span>ede, U+<span class="number">6</span>ee5, U+<span class="number">6</span>f4d, U+<span class="number">6</span>f84, U+<span class="number">6</span>f9c, U+<span class="number">7115</span>, U+<span class="number">7121</span>, U+<span class="number">722</span>a, U+<span class="number">7261</span>, U+<span class="number">7272</span>, U+<span class="number">7280</span>, U+<span class="number">72</span>f8, U+<span class="number">7504</span>, U+<span class="number">754</span>f, U+<span class="number">75</span>d8, U+<span class="number">767</span>c, U+<span class="number">76</span>ef, U+<span class="number">778</span>e, U+<span class="number">77</span>bb, U+<span class="number">77</span>f6, U+<span class="number">786</span>b, U+<span class="number">78</span>b1, U+<span class="number">7948</span>, U+<span class="number">7985</span>, U+<span class="number">79</span>be, U+<span class="number">7</span>a83, U+<span class="number">7</span>a8d, U+<span class="number">7</span>eac, U+<span class="number">7</span>eef, U+<span class="number">7</span>ef8, U+<span class="number">7</span>efd, U+<span class="number">7</span>f00, U+<span class="number">803</span>d, U+<span class="number">8086</span>, U+<span class="number">810</span>a, U+<span class="number">8165</span>, U+<span class="number">819</span>d, U+<span class="number">81</span>a8, U+<span class="number">8214</span>, U+<span class="number">829</span>c, U+<span class="number">831</span>c, U+<span class="number">8328</span>, U+<span class="number">832</span>b, U+<span class="number">8367</span>, U+<span class="number">83</span>e0, U+<span class="number">83</span>f1, U+<span class="number">8403</span>, U+<span class="number">846</span>b, U+<span class="number">8475</span>, U+<span class="number">84</span>b2, U+<span class="number">8513</span>, U+<span class="number">8574</span>, U+<span class="number">85</span>af, U+<span class="number">86</span>d9, U+<span class="number">86</span>db, U+<span class="number">8</span>acb, U+<span class="number">8</span>bbd, U+<span class="number">8</span>be0-<span class="number">8</span>be1, U+<span class="number">8</span>c0e, U+<span class="number">8</span>d29, U+<span class="number">8</span>d63, U+<span class="number">8</span>e81, U+<span class="number">8</span>f7f, U+<span class="number">9032</span>, U+<span class="number">9042</span>, U+<span class="number">90</span>b1, U+<span class="number">90</span>b5, U+<span class="number">9165</span>, U+<span class="number">9175</span>, U+<span class="number">94</span>a6, U+<span class="number">94</span>c5, U+<span class="number">950</span>c, U+<span class="number">9540</span>, U+<span class="number">9610</span>, U+<span class="number">9699</span>, U+<span class="number">96</span>c7, U+<span class="number">973</span>e, U+<span class="number">978</span>d, U+<span class="number">97</span>ec, U+<span class="number">97</span>f6, U+<span class="number">984</span>c, U+<span class="number">987</span>d, U+<span class="number">9882</span>, U+<span class="number">9965</span>, U+<span class="number">996</span>a, U+<span class="number">9972</span>, U+<span class="number">9</span>a8f, U+<span class="number">9</span>ad3, U+<span class="number">9</span>ae6, U+<span class="number">9</span>cb8, U+<span class="number">9</span>edb, U+e600, U+e60f, U+e611, U+ff05, U+ff0b;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [105] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.105.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">5</span>e, U+<span class="number">2190</span>, U+<span class="number">250</span>a, U+<span class="number">25</span>bc, U+<span class="number">25</span>cf, U+<span class="number">300</span>f, U+<span class="number">4</span>e56, U+<span class="number">4</span>ea9, U+<span class="number">4</span>f3d, U+<span class="number">4</span>f6c, U+<span class="number">4</span>f88, U+<span class="number">4</span>fa8, U+<span class="number">4</span>fcf, U+<span class="number">5029</span>, U+<span class="number">5188</span>, U+<span class="number">51</span>f9, U+<span class="number">5203</span>, U+<span class="number">524</span>a, U+<span class="number">5256</span>, U+<span class="number">529</span>d, U+<span class="number">5375</span>, U+<span class="number">53</span>db, U+<span class="number">541</span>f, U+<span class="number">5435</span>, U+<span class="number">5457</span>, U+<span class="number">548</span>b, U+<span class="number">54</span>b1, U+<span class="number">54</span>c7, U+<span class="number">54</span>d4, U+<span class="number">54</span>e9, U+<span class="number">556</span>a, U+<span class="number">5589</span>, U+<span class="number">55</span>bb, U+<span class="number">55</span>e8, U+<span class="number">55</span>ef, U+<span class="number">563</span>b, U+<span class="number">566</span>a, U+<span class="number">576</span>a, U+<span class="number">58</span>f9, U+<span class="number">598</span>d, U+<span class="number">599</span>e, U+<span class="number">59</span>a8, U+<span class="number">5</span>a9b, U+<span class="number">5</span>ae3, U+<span class="number">5</span>bde, U+<span class="number">5</span>c4c, U+<span class="number">5</span>c60, U+<span class="number">5</span>d1b, U+<span class="number">5</span>deb, U+<span class="number">5</span>df7, U+<span class="number">5</span>e18, U+<span class="number">5</span>f26, U+<span class="number">5</span>f64, U+<span class="number">601</span>c, U+<span class="number">6084</span>, U+<span class="number">60</span>e9, U+<span class="number">614</span>c, U+<span class="number">61</span>be, U+<span class="number">6208</span>, U+<span class="number">621</span>a, U+<span class="number">6233</span>, U+<span class="number">6254</span>, U+<span class="number">62</span>d8, U+<span class="number">62</span>e6, U+<span class="number">62</span>ef, U+<span class="number">6323</span>, U+<span class="number">632</span>a, U+<span class="number">633</span>d, U+<span class="number">6361</span>, U+<span class="number">6380</span>, U+<span class="number">6405</span>, U+<span class="number">640</span>f, U+<span class="number">6614</span>, U+<span class="number">6642</span>, U+<span class="number">6657</span>, U+<span class="number">67</span>a3, U+<span class="number">6808</span>, U+<span class="number">683</span>d, U+<span class="number">6850</span>, U+<span class="number">6897</span>, U+<span class="number">68</span>b3, U+<span class="number">68</span>b5, U+<span class="number">68</span>d5, U+<span class="number">6</span>a58, U+<span class="number">6</span>b47, U+<span class="number">6</span>b6a, U+<span class="number">6</span>c28, U+<span class="number">6</span>c90, U+<span class="number">6</span>ca7, U+<span class="number">6</span>cf5, U+<span class="number">6</span>d51, U+<span class="number">6</span>da9, U+<span class="number">6</span>dc7, U+<span class="number">6</span>dd1, U+<span class="number">6</span>e0a, U+<span class="number">6</span>e5b, U+<span class="number">6</span>f47, U+<span class="number">6</span>f6d, U+<span class="number">70</span>ad, U+<span class="number">70</span>f9, U+<span class="number">710</span>a, U+<span class="number">7130</span>, U+<span class="number">71</span>ac, U+<span class="number">745</span>f, U+<span class="number">7476</span>, U+<span class="number">7490</span>, U+<span class="number">7529</span>, U+<span class="number">7538</span>, U+<span class="number">75</span>d2, U+<span class="number">7696</span>, U+<span class="number">76</span>b1, U+<span class="number">76</span>fc, U+<span class="number">777</span>f, U+<span class="number">77</span>dc, U+<span class="number">789</span>f, U+<span class="number">795</span>b, U+<span class="number">79</span>bd, U+<span class="number">79</span>c9, U+<span class="number">7</span>a3b, U+<span class="number">7</span>a46, U+<span class="number">7</span>aa5, U+<span class="number">7</span>ad6, U+<span class="number">7</span>ca5, U+<span class="number">7</span>cb9, U+<span class="number">7</span>cdf, U+<span class="number">7</span>d6e, U+<span class="number">7</span>f06, U+<span class="number">7</span>f38, U+<span class="number">7</span>fa1, U+<span class="number">7</span>fc1, U+<span class="number">8015</span>, U+<span class="number">803</span>b, U+<span class="number">80</span>a2, U+<span class="number">80</span>aa, U+<span class="number">8116</span>, U+<span class="number">813</span>e, U+<span class="number">82</span>ad, U+<span class="number">82</span>bd, U+<span class="number">8305</span>, U+<span class="number">8346</span>, U+<span class="number">846</span>c, U+<span class="number">8549</span>, U+<span class="number">859</span>b, U+<span class="number">8611</span>, U+<span class="number">8680</span>, U+<span class="number">87</span>f9, U+<span class="number">884</span>d, U+<span class="number">8877</span>, U+<span class="number">888</span>d, U+<span class="number">88</span>d4, U+<span class="number">898</span>b, U+<span class="number">8</span>a79, U+<span class="number">8</span>a93, U+<span class="number">8</span>c05, U+<span class="number">8</span>c0d, U+<span class="number">8</span>c26, U+<span class="number">8</span>d1e, U+<span class="number">8</span>d31, U+<span class="number">8</span>d81, U+<span class="number">8</span>e22, U+<span class="number">8</span>f90, U+<span class="number">8</span>f96, U+<span class="number">90</span>ca, U+<span class="number">916</span>c, U+<span class="number">917</span>f, U+<span class="number">9187</span>, U+<span class="number">918</span>b, U+<span class="number">9499</span>, U+<span class="number">94</span>a9, U+<span class="number">9524</span>, U+<span class="number">958</span>b, U+<span class="number">9600</span>, U+<span class="number">9640</span>, U+<span class="number">96</span>b6, U+<span class="number">96</span>ef, U+<span class="number">98</span>d9, U+<span class="number">9976</span>, U+<span class="number">997</span>f, U+<span class="number">9</span>a74, U+<span class="number">9</span>a84, U+<span class="number">9</span>c8d, U+<span class="number">9</span>e26, U+<span class="number">9</span>e9f, U+ad6d, U+c5b4, U+d55c, U+ff0f;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [106] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.106.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+b0, U+<span class="number">2191</span>, U+<span class="number">2460</span>-<span class="number">2461</span>, U+<span class="number">25</span>c6, U+<span class="number">300</span>e, U+<span class="number">4</span>e1b, U+<span class="number">4</span>e7e, U+<span class="number">4</span>ed5, U+<span class="number">4</span>ef2, U+<span class="number">4</span>f10, U+<span class="number">4</span>f1e, U+<span class="number">4</span>f50, U+<span class="number">4</span>fa6, U+<span class="number">4</span>faf, U+<span class="number">5021</span>, U+<span class="number">50</span>f5, U+<span class="number">5179</span>, U+<span class="number">5180</span>, U+<span class="number">51</span>d1, U+<span class="number">522</span>e, U+<span class="number">52</span>a3, U+<span class="number">52</span>c3, U+<span class="number">52</span>cb, U+<span class="number">5300</span>, U+<span class="number">5319</span>, U+<span class="number">5320</span>, U+<span class="number">5349</span>, U+<span class="number">5395</span>, U+<span class="number">53</span>d9, U+<span class="number">541</span>e, U+<span class="number">5428</span>, U+<span class="number">543</span>e, U+<span class="number">54</span>c0, U+<span class="number">54</span>d2, U+<span class="number">570</span>b, U+<span class="number">5858</span>, U+<span class="number">58</span>f6, U+<span class="number">5974</span>, U+<span class="number">59</span>a5, U+<span class="number">59</span>e8, U+<span class="number">59</span>ec, U+<span class="number">5</span>a36, U+<span class="number">5</span>a9a, U+<span class="number">5</span>ab3, U+<span class="number">5</span>b99, U+<span class="number">5</span>baa, U+<span class="number">5</span>ce1, U+<span class="number">5</span>d14, U+<span class="number">5</span>d4c, U+<span class="number">5</span>dc5, U+<span class="number">5</span>de2, U+<span class="number">5</span>e99, U+<span class="number">5</span>e9e, U+<span class="number">5</span>f18, U+<span class="number">5</span>f66, U+<span class="number">5</span>f70, U+<span class="number">6070</span>, U+<span class="number">60</span>d5, U+<span class="number">60</span>e7, U+<span class="number">6101</span>, U+<span class="number">611</span>a, U+<span class="number">6241</span>, U+<span class="number">6252</span>, U+<span class="number">626</span>f, U+<span class="number">6296</span>, U+<span class="number">62</span>bc, U+<span class="number">62</span>cc, U+<span class="number">63</span>a9, U+<span class="number">644</span>a, U+<span class="number">6454</span>, U+<span class="number">64</span>a9, U+<span class="number">64</span>b8, U+<span class="number">6500</span>, U+<span class="number">6572</span>, U+<span class="number">65</span>a5, U+<span class="number">65</span>a9, U+<span class="number">65</span>ec, U+<span class="number">660</span>f, U+<span class="number">6749</span>, U+<span class="number">6795</span>, U+<span class="number">67</span>ab, U+<span class="number">68</span>da, U+<span class="number">6912</span>, U+<span class="number">6</span>bbf, U+<span class="number">6</span>bef, U+<span class="number">6</span>cab, U+<span class="number">6</span>cca, U+<span class="number">6</span>ccc, U+<span class="number">6</span>cfc, U+<span class="number">6</span>d3d, U+<span class="number">6</span>d78, U+<span class="number">6</span>dee, U+<span class="number">6</span>e17, U+<span class="number">6</span>e34, U+<span class="number">6</span>e83, U+<span class="number">6</span>ea2, U+<span class="number">6</span>eb6, U+<span class="number">6</span>f20, U+<span class="number">6</span>fa1, U+<span class="number">707</span>f, U+<span class="number">70</span>d8, U+<span class="number">70</span>eb, U+<span class="number">714</span>c, U+<span class="number">714</span>e, U+<span class="number">7235</span>, U+<span class="number">7239</span>, U+<span class="number">73</span>ca, U+<span class="number">743</span>c, U+<span class="number">745</span>c, U+<span class="number">7624</span>, U+<span class="number">763</span>e, U+<span class="number">76</span>f2, U+<span class="number">77</span>db, U+<span class="number">77</span>e9, U+<span class="number">780</span>d, U+<span class="number">7838</span>, U+<span class="number">7845</span>, U+<span class="number">78</span>ca, U+<span class="number">796</span>d, U+<span class="number">7</span>a84, U+<span class="number">7</span>aed, U+<span class="number">7</span>b3c, U+<span class="number">7</span>eb2, U+<span class="number">7</span>f05, U+<span class="number">7</span>f20, U+<span class="number">7</span>f34, U+<span class="number">7</span>f62, U+<span class="number">7</span>fc5, U+<span class="number">7</span>fd8, U+<span class="number">7</span>ff0, U+<span class="number">800</span>d, U+<span class="number">8036</span>, U+<span class="number">80</span>ba, U+<span class="number">80</span>be, U+<span class="number">80</span>c0-<span class="number">80</span>c1, U+<span class="number">8155</span>, U+<span class="number">817</span>a, U+<span class="number">8180</span>, U+<span class="number">81</span>e3, U+<span class="number">8206</span>, U+<span class="number">8247</span>, U+<span class="number">8270</span>, U+<span class="number">8299</span>, U+<span class="number">8304</span>, U+<span class="number">8393</span>, U+<span class="number">83</span>b9, U+<span class="number">83</span>ca, U+<span class="number">840</span>d, U+<span class="number">8427</span>, U+<span class="number">8469</span>, U+<span class="number">8471</span>, U+<span class="number">84</span>c4, U+<span class="number">84</span>ec, U+<span class="number">853</span>d, U+<span class="number">8681</span>-<span class="number">8682</span>, U+<span class="number">8721</span>, U+<span class="number">8854</span>, U+<span class="number">88</span>d5, U+<span class="number">88</span>f9, U+<span class="number">8</span>bc0, U+<span class="number">8</span>c0a, U+<span class="number">8</span>c29, U+<span class="number">8</span>c2d, U+<span class="number">8</span>d41, U+<span class="number">8</span>dea, U+<span class="number">8</span>eb2, U+<span class="number">8</span>f9f, U+<span class="number">903</span>b, U+<span class="number">903</span>e, U+<span class="number">9102</span>, U+<span class="number">9493</span>, U+<span class="number">94</span>a5, U+<span class="number">94</span>f8, U+<span class="number">95</span>ef, U+<span class="number">95</span>f7, U+<span class="number">9706</span>, U+<span class="number">9709</span>, U+<span class="number">9774</span>, U+<span class="number">9887</span>, U+<span class="number">98</span>a0, U+<span class="number">9</span>e64, U+<span class="number">9</span>f9f, U+e601, U+e603;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [107] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.107.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">200</span>b, U+<span class="number">2103</span>, U+<span class="number">4</span>e18, U+<span class="number">4</span>e27-<span class="number">4</span>e28, U+<span class="number">4</span>e38, U+<span class="number">4</span>e59, U+<span class="number">4</span>e8f, U+<span class="number">4</span>ead, U+<span class="number">4</span>ec7, U+<span class="number">4</span>fe9, U+<span class="number">503</span>a, U+<span class="number">5085</span>, U+<span class="number">5146</span>, U+<span class="number">51</span>af, U+<span class="number">51</span>f8, U+<span class="number">52</span>ab, U+<span class="number">5339</span>, U+<span class="number">535</span>c, U+<span class="number">5378</span>, U+<span class="number">538</span>c, U+<span class="number">5398</span>, U+<span class="number">53</span>f9, U+<span class="number">5415</span>, U+<span class="number">5475</span>, U+<span class="number">54</span>aa, U+<span class="number">54</span>ac, U+<span class="number">54</span>b8, U+<span class="number">5582</span>, U+<span class="number">5760</span>, U+<span class="number">5764</span>, U+<span class="number">57</span>cb, U+<span class="number">5835</span>, U+<span class="number">5885</span>, U+<span class="number">5951</span>, U+<span class="number">5983</span>, U+<span class="number">59</span>da, U+<span class="number">5</span>a77, U+<span class="number">5</span>b5d, U+<span class="number">5</span>b5f, U+<span class="number">5</span>bb5, U+<span class="number">5</span>bc2, U+<span class="number">5</span>be8, U+<span class="number">5</span>bfa, U+<span class="number">5</span>c2c, U+<span class="number">5</span>c34, U+<span class="number">5</span>c41, U+<span class="number">5</span>c48, U+<span class="number">5</span>c65, U+<span class="number">5</span>cad, U+<span class="number">5</span>e06, U+<span class="number">5</span>e42, U+<span class="number">5</span>ef7, U+<span class="number">5</span>f17, U+<span class="number">5</span>f25, U+<span class="number">5</span>f6d, U+<span class="number">5</span>f79, U+<span class="number">6028</span>, U+<span class="number">6064</span>, U+<span class="number">6068</span>, U+<span class="number">606</span>d, U+<span class="number">607</span>c, U+<span class="number">6094</span>, U+<span class="number">6109</span>, U+<span class="number">6124</span>, U+<span class="number">6247</span>, U+<span class="number">626</span>d, U+<span class="number">6291</span>, U+<span class="number">629</span>a, U+<span class="number">62</span>ac, U+<span class="number">62</span>b9, U+<span class="number">62</span>fe, U+<span class="number">6324</span>, U+<span class="number">6349</span>, U+<span class="number">6367</span>, U+<span class="number">6398</span>, U+<span class="number">6495</span>, U+<span class="number">64</span>a4, U+<span class="number">64</span>b0, U+<span class="number">64</span>bc, U+<span class="number">64</span>ce, U+<span class="number">658</span>c, U+<span class="number">65</span>ed, U+<span class="number">6602</span>, U+<span class="number">6674</span>, U+<span class="number">6691</span>, U+<span class="number">66</span>a8, U+<span class="number">674</span>f, U+<span class="number">679</span>a, U+<span class="number">67</span>ef, U+<span class="number">67</span>f4, U+<span class="number">680</span>b, U+<span class="number">6876</span>, U+<span class="number">68</span>a8, U+<span class="number">6</span>a59, U+<span class="number">6</span>a61, U+<span class="number">6</span>b20, U+<span class="number">6</span>bc5, U+<span class="number">6</span>d12, U+<span class="number">6</span>d46, U+<span class="number">6</span>d8c, U+<span class="number">6</span>dc0, U+<span class="number">6</span>e14, U+<span class="number">6</span>e23, U+<span class="number">6</span>f06, U+<span class="number">7164</span>, U+<span class="number">716</span>e, U+<span class="number">7199</span>, U+<span class="number">71</span>e5, U+<span class="number">72</span>ac, U+<span class="number">742</span>a, U+<span class="number">755</span>c, U+<span class="number">75</span>ab, U+<span class="number">75</span>b2, U+<span class="number">75</span>f4, U+<span class="number">7897</span>, U+<span class="number">78</span>b3, U+<span class="number">78</span>c5, U+<span class="number">7978</span>, U+<span class="number">79</span>fd, U+<span class="number">7</span>a74, U+<span class="number">7</span>b4b, U+<span class="number">7</span>b5b, U+<span class="number">7</span>ece, U+<span class="number">7</span>ed2, U+<span class="number">7</span>ee3, U+<span class="number">7</span>ef3, U+<span class="number">7</span>f50, U+<span class="number">7</span>f55, U+<span class="number">7</span>f9e, U+<span class="number">7</span>fe0, U+<span class="number">809</span>d, U+<span class="number">8106</span>, U+<span class="number">814</span>a, U+<span class="number">8154</span>, U+<span class="number">817</span>b, U+<span class="number">818</span>f, U+<span class="number">81</span>c2, U+<span class="number">81</span>ed, U+<span class="number">821</span>f, U+<span class="number">82</span>a6, U+<span class="number">82</span>d1, U+<span class="number">8302</span>, U+<span class="number">83</span>c7, U+<span class="number">845</span>b, U+<span class="number">848</span>b, U+<span class="number">84</span>c9, U+<span class="number">85</span>e4, U+<span class="number">86</span>ee, U+<span class="number">8700</span>, U+<span class="number">8774</span>, U+<span class="number">886</span>c, U+<span class="number">8881</span>, U+<span class="number">8</span>c1c, U+<span class="number">8</span>c79, U+<span class="number">8</span>d2a, U+<span class="number">8</span>d3c, U+<span class="number">8</span>eba, U+<span class="number">8</span>f70, U+<span class="number">8</span>fa9, U+<span class="number">8</span>fb1, U+<span class="number">900</span>a, U+<span class="number">9017</span>, U+<span class="number">901</span>d, U+<span class="number">9022</span>, U+<span class="number">906</span>e, U+<span class="number">946</span>b, U+<span class="number">94</span>dd, U+<span class="number">94</span>ed, U+<span class="number">953</span>b, U+<span class="number">95</span>fa, U+<span class="number">95</span>fd, U+<span class="number">964</span>c, U+<span class="number">96</span>c0, U+<span class="number">971</span>c, U+<span class="number">971</span>e, U+<span class="number">9753</span>, U+<span class="number">9756</span>, U+<span class="number">97</span>e6, U+<span class="number">9881</span>, U+<span class="number">9</span>b4f, U+<span class="number">9</span>e2d, U+<span class="number">9</span>f0e, U+e602, U+e604-e605, U+ff5c;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [108] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.108.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">24</span>, U+<span class="number">4</span>e08, U+<span class="number">4</span>e43, U+<span class="number">4</span>e4f, U+<span class="number">4</span>ef0, U+<span class="number">4</span>f2a, U+<span class="number">507</span>f, U+<span class="number">50</span>ac, U+<span class="number">50</span>bb, U+<span class="number">5151</span>, U+<span class="number">51</span>bb, U+<span class="number">51</span>f6, U+<span class="number">51</span>fd, U+<span class="number">5272</span>, U+<span class="number">52</span>fe, U+<span class="number">5362</span>, U+<span class="number">53</span>c9, U+<span class="number">53</span>d4, U+<span class="number">53</span>e0, U+<span class="number">543</span>b, U+<span class="number">54</span>f2, U+<span class="number">5507</span>, U+<span class="number">5524</span>, U+<span class="number">558</span>a, U+<span class="number">55</span>b5, U+<span class="number">561</span>b, U+<span class="number">56</span>ca, U+<span class="number">5782</span>, U+<span class="number">57</span>c3, U+<span class="number">5893</span>, U+<span class="number">5915</span>, U+<span class="number">5949</span>, U+<span class="number">5962</span>, U+<span class="number">59</span>ae, U+<span class="number">59</span>dc, U+<span class="number">59</span>fb, U+<span class="number">5</span>bd3, U+<span class="number">5</span>c38, U+<span class="number">5</span>cb3, U+<span class="number">5</span>d07, U+<span class="number">5</span>d29, U+<span class="number">5</span>de1, U+<span class="number">5</span>dfe, U+<span class="number">5</span>e15, U+<span class="number">5</span>eca, U+<span class="number">5</span>f2f, U+<span class="number">5</span>f7c, U+<span class="number">5</span>fcc, U+<span class="number">6021</span>, U+<span class="number">609</span>f, U+<span class="number">60</span>f9, U+<span class="number">6108</span>, U+<span class="number">6148</span>, U+<span class="number">6155</span>, U+<span class="number">6170</span>, U+<span class="number">61</span>d2, U+<span class="number">6251</span>, U+<span class="number">629</span>b, U+<span class="number">62</span>ab, U+<span class="number">62</span>e8, U+<span class="number">62</span>f3, U+<span class="number">6321</span>, U+<span class="number">6350</span>, U+<span class="number">6566</span>, U+<span class="number">659</span>c, U+<span class="number">65</span>e8, U+<span class="number">6635</span>, U+<span class="number">6655</span>, U+<span class="number">6670</span>, U+<span class="number">66</span>f9, U+<span class="number">6734</span>, U+<span class="number">679</span>d, U+<span class="number">6851</span>, U+<span class="number">6905</span>, U+<span class="number">6</span>b49, U+<span class="number">6</span>b96, U+<span class="number">6</span>c1b, U+<span class="number">6</span>c41, U+<span class="number">6</span>c6a, U+<span class="number">6</span>c83, U+<span class="number">6</span>cf3, U+<span class="number">6</span>d9b, U+<span class="number">6</span>dcb, U+<span class="number">6</span>e1d, U+<span class="number">6</span>e20-<span class="number">6</span>e21, U+<span class="number">6</span>eaa, U+<span class="number">6</span>ee4, U+<span class="number">6</span>ee9, U+<span class="number">6</span>f58, U+<span class="number">70</span>e4, U+<span class="number">722</span>c, U+<span class="number">7262</span>, U+<span class="number">7267</span>, U+<span class="number">72</span>b9, U+<span class="number">72</span>e0, U+<span class="number">72</span>ee, U+<span class="number">72</span>f1, U+<span class="number">7334</span>, U+<span class="number">73</span>ab, U+<span class="number">7433</span>, U+<span class="number">7470</span>, U+<span class="number">758</span>f, U+<span class="number">75</span>d5, U+<span class="number">764</span>c, U+<span class="number">7686</span>, U+<span class="number">76</span>c6, U+<span class="number">76</span>fe, U+<span class="number">7720</span>, U+<span class="number">77</span>e2, U+<span class="number">7802</span>, U+<span class="number">7816</span>, U+<span class="number">788</span>d, U+<span class="number">7891</span>, U+<span class="number">7</span>a00, U+<span class="number">7</span>a9d, U+<span class="number">7</span>b52, U+<span class="number">7</span>bad, U+<span class="number">7</span>c98, U+<span class="number">7</span>cca, U+<span class="number">7</span>eba, U+<span class="number">7</span>eea, U+<span class="number">7</span>ef5, U+<span class="number">7</span>f1d, U+<span class="number">7</span>f69, U+<span class="number">806</span>a, U+<span class="number">809</span>a, U+<span class="number">80</span>bf, U+<span class="number">80</span>c3, U+<span class="number">81</span>c0, U+<span class="number">820</span>c, U+<span class="number">82</span>ac, U+<span class="number">82</span>af, U+<span class="number">82</span>cd, U+<span class="number">82</span>d7, U+<span class="number">838</span>e, U+<span class="number">839</span>e, U+<span class="number">8404</span>, U+<span class="number">84</span>b8, U+<span class="number">852</span>c, U+<span class="number">8587</span>, U+<span class="number">85</span>aa, U+<span class="number">8650</span>, U+<span class="number">8679</span>, U+<span class="number">86</span>c7, U+<span class="number">8702</span>, U+<span class="number">87</span>ba, U+<span class="number">886</span>b, U+<span class="number">8870</span>, U+<span class="number">8</span>c10, U+<span class="number">8</span>c23, U+<span class="number">8</span>c6b, U+<span class="number">8</span>d3e, U+<span class="number">8</span>d4b-<span class="number">8</span>d4c, U+<span class="number">8</span>d64, U+<span class="number">8</span>d6b, U+<span class="number">8</span>d74, U+<span class="number">8</span>e29, U+<span class="number">8</span>f69, U+<span class="number">8</span>f74, U+<span class="number">8</span>fb0, U+<span class="number">8</span>fdf, U+<span class="number">901</span>b, U+<span class="number">9038</span>, U+<span class="number">9093</span>, U+<span class="number">90</span>aa, U+<span class="number">9171</span>, U+<span class="number">9489</span>, U+<span class="number">94</span>ae, U+<span class="number">94</span>c3, U+<span class="number">9508</span>, U+<span class="number">9510</span>, U+<span class="number">9601</span>, U+<span class="number">9614</span>, U+<span class="number">9675</span>, U+<span class="number">97</span>f5, U+<span class="number">9888</span>, U+<span class="number">98</span>d8, U+<span class="number">9971</span>, U+<span class="number">9</span>aa4, U+<span class="number">9</span>e3f, U+<span class="number">9</span>e45, U+<span class="number">9</span>e4f, U+<span class="number">9</span>e70, U+<span class="number">9</span>f7f, U+e715;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [109] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.109.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+a5, U+<span class="number">2022</span>, U+<span class="number">2192</span>, U+<span class="number">2605</span>, U+<span class="number">4</span>e11, U+<span class="number">4</span>e22, U+<span class="number">4</span>e32, U+<span class="number">4</span>f0d, U+<span class="number">4</span>f0f, U+<span class="number">4</span>f69, U+<span class="number">4</span>ff1, U+<span class="number">50</span>b2, U+<span class="number">5154</span>, U+<span class="number">51</span>dd, U+<span class="number">51</span>f0, U+<span class="number">5211</span>, U+<span class="number">5269</span>, U+<span class="number">533</span>f, U+<span class="number">5366</span>-<span class="number">5367</span>, U+<span class="number">5389</span>, U+<span class="number">5413</span>, U+<span class="number">5440</span>, U+<span class="number">5446</span>, U+<span class="number">5561</span>, U+<span class="number">574</span>a, U+<span class="number">5751</span>, U+<span class="number">57</span>ab, U+<span class="number">5806</span>, U+<span class="number">5821</span>, U+<span class="number">582</span>a, U+<span class="number">58</span>f3, U+<span class="number">5938</span>, U+<span class="number">5948</span>, U+<span class="number">5978</span>, U+<span class="number">59</span>d1, U+<span class="number">5</span>a03, U+<span class="number">5</span>a07, U+<span class="number">5</span>ac1, U+<span class="number">5</span>acc, U+<span class="number">5</span>ae9, U+<span class="number">5</span>bb4, U+<span class="number">5</span>bc4, U+<span class="number">5</span>c3f, U+<span class="number">5</span>e3d, U+<span class="number">5</span>e7d, U+<span class="number">5</span>f92, U+<span class="number">5</span>faa, U+<span class="number">5</span>fe0, U+<span class="number">5</span>ffd, U+<span class="number">6016</span>, U+<span class="number">60</span>a0, U+<span class="number">60</span>dc, U+<span class="number">60</span>e8, U+<span class="number">614</span>e, U+<span class="number">6212</span>, U+<span class="number">6284</span>, U+<span class="number">62</span>c6, U+<span class="number">62</span>d3-<span class="number">62</span>d4, U+<span class="number">63</span>f4, U+<span class="number">642</span>c, U+<span class="number">6478</span>, U+<span class="number">6491</span>-<span class="number">6492</span>, U+<span class="number">64</span>e6, U+<span class="number">6591</span>, U+<span class="number">65</span>a4, U+<span class="number">664</span>b, U+<span class="number">6735</span>, U+<span class="number">6746</span>, U+<span class="number">67</span>f1, U+<span class="number">67</span>f3, U+<span class="number">6842</span>, U+<span class="number">68</span>af, U+<span class="number">68</span>c9, U+<span class="number">68</span>cb, U+<span class="number">6</span>a31, U+<span class="number">6</span>b3a, U+<span class="number">6</span>bc1, U+<span class="number">6</span>c0f, U+<span class="number">6</span>c27, U+<span class="number">6</span>c57, U+<span class="number">6</span>cc4, U+<span class="number">6</span>ce5, U+<span class="number">6</span>d2a, U+<span class="number">6</span>d66, U+<span class="number">6</span>d69, U+<span class="number">6</span>daf, U+<span class="number">6</span>e58, U+<span class="number">6</span>ecb, U+<span class="number">6</span>ef4, U+<span class="number">707</span>e, U+<span class="number">7092</span>, U+<span class="number">70</span>ab, U+<span class="number">71</span>d5, U+<span class="number">7275</span>, U+<span class="number">7384</span>, U+<span class="number">73</span>b2, U+<span class="number">7434</span>, U+<span class="number">74</span>e6, U+<span class="number">74</span>f7, U+<span class="number">75</span>bc, U+<span class="number">76</span>c8, U+<span class="number">76</span>d0, U+<span class="number">7709</span>, U+<span class="number">77</span>ac, U+<span class="number">7855</span>, U+<span class="number">78</span>a7, U+<span class="number">78</span>c1, U+<span class="number">7</span>a77, U+<span class="number">7</span>b79, U+<span class="number">7</span>c92, U+<span class="number">7</span>cae, U+<span class="number">7</span>cd5, U+<span class="number">7</span>ea4, U+<span class="number">7</span>eb5, U+<span class="number">7</span>ebd, U+<span class="number">7</span>f5a, U+<span class="number">7</span>fd4, U+<span class="number">7</span>ffc, U+<span class="number">8083</span>, U+<span class="number">8096</span>, U+<span class="number">80</span>a0, U+<span class="number">80</span>d6, U+<span class="number">80</span>de, U+<span class="number">8102</span>, U+<span class="number">8109</span>, U+<span class="number">810</span>f, U+<span class="number">8179</span>, U+<span class="number">8292</span>, U+<span class="number">82</span>b3, U+<span class="number">8352</span>, U+<span class="number">8361</span>, U+<span class="number">83</span>cc, U+<span class="number">841</span>d, U+<span class="number">8461</span>, U+<span class="number">8482</span>, U+<span class="number">8521</span>, U+<span class="number">857</span>e, U+<span class="number">866</span>b, U+<span class="number">8776</span>, U+<span class="number">8896</span>, U+<span class="number">889</span>c, U+<span class="number">88</span>f8, U+<span class="number">8</span>a9e, U+<span class="number">8</span>bc8, U+<span class="number">8</span>bf8, U+<span class="number">8</span>c0b, U+<span class="number">8</span>c28, U+<span class="number">8</span>d2b, U+<span class="number">8</span>d2f, U+<span class="number">8</span>d37, U+<span class="number">8</span>d3a, U+<span class="number">8</span>d54, U+<span class="number">8</span>dc3, U+<span class="number">8</span>dcc, U+<span class="number">8</span>df5, U+<span class="number">8</span>e0f, U+<span class="number">8</span>e48, U+<span class="number">8</span>f86, U+<span class="number">8</span>f88, U+<span class="number">8</span>f9e, U+<span class="number">8</span>fc1, U+<span class="number">8</span>fc8, U+<span class="number">8</span>feb, U+<span class="number">9065</span>, U+<span class="number">90</span>a6, U+<span class="number">90</span>bb, U+<span class="number">90</span>c1, U+<span class="number">94</span>dc, U+<span class="number">9521</span>, U+<span class="number">9676</span>, U+<span class="number">96</span>d5, U+<span class="number">970</span>d, U+<span class="number">9897</span>, U+<span class="number">997</span>c, U+<span class="number">9</span>a70, U+<span class="number">9</span>a76, U+<span class="number">9</span>a9a, U+<span class="number">9</span>ad4, U+<span class="number">9</span>e23, U+<span class="number">9</span>e7f, U+<span class="number">9</span>f3b, U+e675, U+e6b9, U+ffe5;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [110] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.110.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">300</span>c-<span class="number">300</span>d, U+<span class="number">4</span>e54, U+<span class="number">4</span>e58, U+<span class="number">4</span>e95, U+<span class="number">4</span>ec1, U+<span class="number">4</span>f2f, U+<span class="number">4</span>f38, U+<span class="number">4</span>fa3, U+<span class="number">4</span>fca, U+<span class="number">503</span>e, U+<span class="number">5141</span>, U+<span class="number">5144</span>, U+<span class="number">517</span>c, U+<span class="number">51</span>cc, U+<span class="number">51</span>ed, U+<span class="number">5242</span>, U+<span class="number">52</span>b2, U+<span class="number">52</span>d2, U+<span class="number">52</span>e4, U+<span class="number">540</span>a, U+<span class="number">5439</span>, U+<span class="number">5448</span>, U+<span class="number">5496</span>, U+<span class="number">54</span>ed, U+<span class="number">5565</span>, U+<span class="number">5761</span>, U+<span class="number">5766</span>, U+<span class="number">58</span>ee, U+<span class="number">593</span>a, U+<span class="number">594</span>b, U+<span class="number">594</span>f, U+<span class="number">5954</span>, U+<span class="number">5996</span>, U+<span class="number">59</span>c6, U+<span class="number">59</span>ff, U+<span class="number">5</span>b64, U+<span class="number">5</span>bff, U+<span class="number">5</span>c18, U+<span class="number">5</span>c1d, U+<span class="number">5</span>c97, U+<span class="number">5</span>ca9, U+<span class="number">5</span>cb8, U+<span class="number">5</span>e9f, U+<span class="number">5</span>ec9, U+<span class="number">5</span>f04, U+<span class="number">5</span>f7b, U+<span class="number">5</span>fa1, U+<span class="number">5</span>fcd, U+<span class="number">6012</span>, U+<span class="number">60</span>a6, U+<span class="number">60</span>ac, U+<span class="number">60</span>b2, U+<span class="number">60</span>ef, U+<span class="number">626</span>e, U+<span class="number">6270</span>, U+<span class="number">6276</span>, U+<span class="number">62</span>d6, U+<span class="number">62</span>dc, U+<span class="number">6316</span>, U+<span class="number">632</span>f, U+<span class="number">633</span>a, U+<span class="number">6355</span>, U+<span class="number">63</span>aa, U+<span class="number">6447</span>, U+<span class="number">649</span>e, U+<span class="number">64</span>c5, U+<span class="number">654</span>c, U+<span class="number">65</span>c1, U+<span class="number">65</span>cb, U+<span class="number">65</span>e6, U+<span class="number">6606</span>, U+<span class="number">6731</span>, U+<span class="number">675</span>c, U+<span class="number">67</span>cf, U+<span class="number">67</span>dc, U+<span class="number">6846</span>, U+<span class="number">6</span>b8b, U+<span class="number">6</span>beb, U+<span class="number">6</span>c61, U+<span class="number">6</span>c88, U+<span class="number">6</span>cbf, U+<span class="number">6</span>cdb, U+<span class="number">6</span>cea, U+<span class="number">6</span>d45, U+<span class="number">6</span>d53, U+<span class="number">6</span>d74, U+<span class="number">6</span>d82, U+<span class="number">6</span>da8, U+<span class="number">6</span>db5, U+<span class="number">6</span>deb, U+<span class="number">6</span>eda, U+<span class="number">6</span>ee8, U+<span class="number">6</span>f0f, U+<span class="number">706</span>d, U+<span class="number">708</span>e, U+<span class="number">70</span>ae, U+<span class="number">70</span>bc, U+<span class="number">70</span>c2, U+<span class="number">70</span>e6, U+<span class="number">7237</span>-<span class="number">7238</span>, U+<span class="number">72</span>fc, U+<span class="number">730</span>e, U+<span class="number">731</span>b, U+<span class="number">739</span>b, U+<span class="number">73</span>bb, U+<span class="number">7483</span>, U+<span class="number">74</span>dc, U+<span class="number">74</span>f6, U+<span class="number">7586</span>, U+<span class="number">7626</span>, U+<span class="number">775</span>b, U+<span class="number">77</span>ff, U+<span class="number">788</span>e, U+<span class="number">78</span>b0, U+<span class="number">7956</span>, U+<span class="number">7965</span>, U+<span class="number">79</span>e6, U+<span class="number">7</span>af9, U+<span class="number">7</span>bee, U+<span class="number">7</span>c97, U+<span class="number">7</span>eb1, U+<span class="number">7</span>eb7, U+<span class="number">7</span>ed1, U+<span class="number">7</span>ed5, U+<span class="number">7</span>f6a, U+<span class="number">7</span>f72, U+<span class="number">7</span>fbd, U+<span class="number">8017</span>, U+<span class="number">808</span>c, U+<span class="number">80</span>a9, U+<span class="number">80</span>c6, U+<span class="number">80</span>ce, U+<span class="number">8150</span>, U+<span class="number">8170</span>, U+<span class="number">819</span>c, U+<span class="number">820</span>d, U+<span class="number">8230</span>, U+<span class="number">8239</span>, U+<span class="number">827</span>e, U+<span class="number">8377</span>, U+<span class="number">8389</span>, U+<span class="number">83</span>b2, U+<span class="number">8428</span>, U+<span class="number">8463</span>, U+<span class="number">867</span>e, U+<span class="number">88</span>c2, U+<span class="number">88</span>d9, U+<span class="number">8986</span>, U+<span class="number">8</span>bca, U+<span class="number">8</span>bde, U+<span class="number">8</span>c13, U+<span class="number">8</span>c8c, U+<span class="number">8</span>d21, U+<span class="number">8</span>d24, U+<span class="number">8</span>d56, U+<span class="number">8</span>d60, U+<span class="number">8</span>d8b, U+<span class="number">8</span>db4, U+<span class="number">8</span>e2a, U+<span class="number">8</span>f68, U+<span class="number">8</span>f89, U+<span class="number">8</span>f9b, U+<span class="number">8</span>fa8, U+<span class="number">8</span>fbd, U+<span class="number">9003</span>, U+<span class="number">90</span>ce, U+<span class="number">90</span>ed, U+<span class="number">9189</span>, U+<span class="number">94</span>bb, U+<span class="number">9505</span>, U+<span class="number">95</span>f9, U+<span class="number">963</span>b, U+<span class="number">9655</span>, U+<span class="number">966</span>a, U+<span class="number">9677</span>, U+<span class="number">96</span>fe, U+<span class="number">9896</span>, U+<span class="number">99</span>a8, U+<span class="number">9</span>a71, U+<span class="number">9</span>a82, U+<span class="number">9</span>a91, U+<span class="number">9</span>b45, U+<span class="number">9</span>ece, U+<span class="number">9</span>f20, U+feff, U+ff0d;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [111] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.111.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">4</span>e4c, U+<span class="number">4</span>e88, U+<span class="number">4</span>ea1, U+<span class="number">4</span>ea6, U+<span class="number">4</span>ed3-<span class="number">4</span>ed4, U+<span class="number">4</span>eff, U+<span class="number">4</span>f30, U+<span class="number">4</span>fa7, U+<span class="number">4</span>fc4, U+<span class="number">4</span>fd7, U+<span class="number">500</span>d, U+<span class="number">504</span>f, U+<span class="number">5076</span>-<span class="number">5077</span>, U+<span class="number">517</span>d, U+<span class="number">5192</span>, U+<span class="number">51</span>c9, U+<span class="number">51</span>ef, U+<span class="number">5238</span>, U+<span class="number">5251</span>, U+<span class="number">526</span>a, U+<span class="number">52</span>c7, U+<span class="number">52</span>df, U+<span class="number">52</span>ff, U+<span class="number">53</span>a6, U+<span class="number">53</span>a8, U+<span class="number">53</span>ec, U+<span class="number">5410</span>, U+<span class="number">559</span>d, U+<span class="number">55</span>b7, U+<span class="number">5634</span>, U+<span class="number">573</span>e, U+<span class="number">5783</span>, U+<span class="number">585</span>e, U+<span class="number">586</span>b, U+<span class="number">58</span>a8, U+<span class="number">5999</span>, U+<span class="number">59</span>d3, U+<span class="number">5</span>a1c, U+<span class="number">5</span>a46, U+<span class="number">5</span>b54-<span class="number">5</span>b55, U+<span class="number">5</span>b85, U+<span class="number">5</span>b8b, U+<span class="number">5</span>b8f, U+<span class="number">5</span>bbf, U+<span class="number">5</span>bd2, U+<span class="number">5</span>c16, U+<span class="number">5</span>c24, U+<span class="number">5</span>e05, U+<span class="number">5</span>e45, U+<span class="number">5</span>e7c, U+<span class="number">5</span>e84, U+<span class="number">5</span>f03, U+<span class="number">5</span>f1f, U+<span class="number">5</span>f31, U+<span class="number">5</span>f84, U+<span class="number">5</span>f90, U+<span class="number">5</span>fbd, U+<span class="number">5</span>fc6, U+<span class="number">5</span>fd9, U+<span class="number">5</span>fe7, U+<span class="number">6052</span>, U+<span class="number">6062</span>, U+<span class="number">6089</span>, U+<span class="number">60</span>a3, U+<span class="number">60</span>d1, U+<span class="number">6167</span>, U+<span class="number">622</span>a, U+<span class="number">6234</span>, U+<span class="number">624</span>e, U+<span class="number">6269</span>, U+<span class="number">626</span>c, U+<span class="number">62</span>b5, U+<span class="number">62</span>d2, U+<span class="number">6325</span>, U+<span class="number">63</span>e1, U+<span class="number">643</span>a, U+<span class="number">6446</span>, U+<span class="number">6562</span>, U+<span class="number">656</span>c, U+<span class="number">65</span>e2, U+<span class="number">65</span>fa, U+<span class="number">660</span>c, U+<span class="number">6628</span>, U+<span class="number">6652</span>, U+<span class="number">6668</span>, U+<span class="number">6676</span>, U+<span class="number">66</span>fc, U+<span class="number">66</span>ff, U+<span class="number">6717</span>, U+<span class="number">676</span>d, U+<span class="number">67</span>aa, U+<span class="number">67</span>d4, U+<span class="number">6843</span>, U+<span class="number">6881</span>, U+<span class="number">68</span>d2, U+<span class="number">695</span>a, U+<span class="number">69</span>fd, U+<span class="number">6</span>a2a, U+<span class="number">6</span>b8a, U+<span class="number">6</span>c60, U+<span class="number">6</span>c64, U+<span class="number">6</span>c9f, U+<span class="number">6</span>caa, U+<span class="number">6</span>cc9, U+<span class="number">6</span>ce1, U+<span class="number">6</span>cfd, U+<span class="number">6</span>d1b, U+<span class="number">6</span>d1e, U+<span class="number">6</span>d6e, U+<span class="number">6</span>de1, U+<span class="number">6</span>e10, U+<span class="number">6</span>e7f, U+<span class="number">6</span>f5c, U+<span class="number">704</span>c, U+<span class="number">7070</span>, U+<span class="number">7089</span>, U+<span class="number">70</span>b8, U+<span class="number">718</span>a, U+<span class="number">71</span>c3, U+<span class="number">723</span>d, U+<span class="number">732</span>a, U+<span class="number">73</span>cd, U+<span class="number">7518</span>, U+<span class="number">756</span>a, U+<span class="number">75</span>af, U+<span class="number">75</span>be, U+<span class="number">75</span>c7, U+<span class="number">76</span>d2, U+<span class="number">76</span>d7, U+<span class="number">7763</span>, U+<span class="number">78</span>e8, U+<span class="number">795</span>d, U+<span class="number">79</span>df, U+<span class="number">7</span>c4d, U+<span class="number">7</span>d2f, U+<span class="number">7</span>ee9, U+<span class="number">7</span>f13, U+<span class="number">7</span>f8a, U+<span class="number">8000</span>, U+<span class="number">8010</span>, U+<span class="number">80</span>af, U+<span class="number">80</span>f6, U+<span class="number">80</span>f8, U+<span class="number">8212</span>, U+<span class="number">8273</span>, U+<span class="number">82</span>f9, U+<span class="number">83</span>ab, U+<span class="number">83</span>b1, U+<span class="number">83</span>f2, U+<span class="number">8584</span>, U+<span class="number">871</span>c, U+<span class="number">8861</span>, U+<span class="number">888</span>b, U+<span class="number">88</span>c1, U+<span class="number">88</span>e4, U+<span class="number">8</span>bd1, U+<span class="number">8</span>bf1, U+<span class="number">8</span>c31, U+<span class="number">8</span>d5a, U+<span class="number">8</span>d75-<span class="number">8</span>d76, U+<span class="number">8</span>de8, U+<span class="number">8</span>f85, U+<span class="number">8</span>fa3, U+<span class="number">8</span>fc5, U+<span class="number">9006</span>, U+<span class="number">903</span>c, U+<span class="number">904</span>d, U+<span class="number">9075</span>, U+<span class="number">9178</span>, U+<span class="number">9274</span>, U+<span class="number">950</span>b, U+<span class="number">9526</span>, U+<span class="number">95</span>ea, U+<span class="number">9636</span>, U+<span class="number">9686</span>, U+<span class="number">978</span>b, U+<span class="number">987</span>f, U+<span class="number">9</span>a7e, U+<span class="number">9</span>b42, U+<span class="number">9</span>e1f, U+<span class="number">9</span>ea6, U+<span class="number">9</span>f13, U+<span class="number">9</span>f84, U+ff5e;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [112] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.112.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">23</span>, U+<span class="number">3</span>d, U+<span class="number">4</span>e01, U+<span class="number">4</span>e39, U+<span class="number">4</span>e73, U+<span class="number">4</span>ecd, U+<span class="number">4</span>ed9, U+<span class="number">4</span>eea, U+<span class="number">4</span>f0a, U+<span class="number">4</span>f1f, U+<span class="number">4</span>f5b, U+<span class="number">4</span>fa0, U+<span class="number">4</span>fc3, U+<span class="number">501</span>f, U+<span class="number">50</span>a8, U+<span class="number">515</span>a, U+<span class="number">5175</span>, U+<span class="number">51</span>a0, U+<span class="number">51</span>c0, U+<span class="number">51</span>e1, U+<span class="number">51</span>e4, U+<span class="number">5200</span>, U+<span class="number">520</span>a, U+<span class="number">5224</span>, U+<span class="number">523</span>a, U+<span class="number">52</span>aa, U+<span class="number">52</span>b1, U+<span class="number">52</span>b3, U+<span class="number">5348</span>, U+<span class="number">5353</span>, U+<span class="number">5360</span>, U+<span class="number">5371</span>, U+<span class="number">5377</span>, U+<span class="number">539</span>a, U+<span class="number">541</span>b, U+<span class="number">5434</span>, U+<span class="number">547</span>c, U+<span class="number">54</span>e6, U+<span class="number">5510</span>, U+<span class="number">5531</span>, U+<span class="number">5609</span>, U+<span class="number">56</span>f0, U+<span class="number">56</span>fa, U+<span class="number">5733</span>, U+<span class="number">574</span>f, U+<span class="number">5851</span>, U+<span class="number">5854</span>, U+<span class="number">5899</span>, U+<span class="number">58</span>c1, U+<span class="number">592</span>e, U+<span class="number">5939</span>, U+<span class="number">5976</span>, U+<span class="number">5986</span>, U+<span class="number">59</span>bb, U+<span class="number">5</span>a18, U+<span class="number">5</span>a74, U+<span class="number">5</span>b59, U+<span class="number">5</span>b87, U+<span class="number">5</span>b97, U+<span class="number">5</span>ba0, U+<span class="number">5</span>bab, U+<span class="number">5</span>bbd-<span class="number">5</span>bbe, U+<span class="number">5</span>bf8, U+<span class="number">5</span>c0a, U+<span class="number">5</span>c3a, U+<span class="number">5</span>c4a, U+<span class="number">5</span>e16, U+<span class="number">5</span>e1d, U+<span class="number">5</span>e2d, U+<span class="number">5</span>e8a, U+<span class="number">6015</span>, U+<span class="number">602</span>a, U+<span class="number">6050</span>, U+<span class="number">6069</span>, U+<span class="number">6162</span>, U+<span class="number">61</span>c2, U+<span class="number">6293</span>, U+<span class="number">6297</span>, U+<span class="number">62</span>b1, U+<span class="number">62</span>bd, U+<span class="number">62</span>df, U+<span class="number">62</span>fc, U+<span class="number">6302</span>, U+<span class="number">635</span>f, U+<span class="number">638</span>c, U+<span class="number">63</span>ed, U+<span class="number">6458</span>, U+<span class="number">6469</span>, U+<span class="number">6563</span>, U+<span class="number">6620</span>, U+<span class="number">6653</span>, U+<span class="number">6696</span>-<span class="number">6697</span>, U+<span class="number">66</span>dd, U+<span class="number">675</span>f, U+<span class="number">676</span>f-<span class="number">6770</span>, U+<span class="number">67</span>d0, U+<span class="number">67</span>d3, U+<span class="number">684</span>c, U+<span class="number">6865</span>, U+<span class="number">6885</span>, U+<span class="number">68</span>b0, U+<span class="number">68</span>ee, U+<span class="number">690</span>d, U+<span class="number">6</span>b23, U+<span class="number">6</span>b32, U+<span class="number">6</span>bd5, U+<span class="number">6</span>c89, U+<span class="number">6</span>d01, U+<span class="number">6</span>d25, U+<span class="number">6</span>d89, U+<span class="number">6</span>da6, U+<span class="number">6</span>db2, U+<span class="number">6</span>df7, U+<span class="number">6</span>ed1, U+<span class="number">6</span>f02, U+<span class="number">70</span>c8, U+<span class="number">70</span>df, U+<span class="number">70</span>e7, U+<span class="number">7126</span>, U+<span class="number">7236</span>, U+<span class="number">7259</span>, U+<span class="number">731</span>c, U+<span class="number">745</span>e, U+<span class="number">74</span>e3, U+<span class="number">751</span>a, U+<span class="number">751</span>c, U+<span class="number">7532</span>, U+<span class="number">7545</span>, U+<span class="number">75</span>db, U+<span class="number">7761</span>, U+<span class="number">7</span>a0d, U+<span class="number">7</span>b51, U+<span class="number">7</span>ca4, U+<span class="number">7</span>cd6, U+<span class="number">7</span>d2b, U+<span class="number">7</span>ea0, U+<span class="number">7</span>eb9, U+<span class="number">7</span>ed8, U+<span class="number">7</span>f18, U+<span class="number">7</span>f29, U+<span class="number">8033</span>, U+<span class="number">804</span>a, U+<span class="number">80</span>a4-<span class="number">80</span>a5, U+<span class="number">80</span>e1, U+<span class="number">817</span>f, U+<span class="number">829</span>d, U+<span class="number">82</span>e6, U+<span class="number">8336</span>, U+<span class="number">840</span>c, U+<span class="number">8499</span>, U+<span class="number">864</span>e, U+<span class="number">8651</span>, U+<span class="number">865</span>a, U+<span class="number">88</span>ad, U+<span class="number">89</span>e6, U+<span class="number">8</span>bd7, U+<span class="number">8</span>bfa, U+<span class="number">8</span>c37, U+<span class="number">8</span>d25, U+<span class="number">8</span>d38, U+<span class="number">8</span>ddd, U+<span class="number">8</span>fea, U+<span class="number">9010</span>, U+<span class="number">9012</span>, U+<span class="number">906</span>d, U+<span class="number">907</span>f-<span class="number">9080</span>, U+<span class="number">90</span>d1, U+<span class="number">9177</span>, U+<span class="number">91</span>ca, U+<span class="number">94</span>fa, U+<span class="number">9501</span>, U+<span class="number">9634</span>-<span class="number">9635</span>, U+<span class="number">9694</span>, U+<span class="number">9707</span>, U+<span class="number">9738</span>, U+<span class="number">9769</span>, U+<span class="number">9</span>a7b, U+<span class="number">9</span>a97, U+<span class="number">9</span>aa8, U+<span class="number">9</span>b3c, U+<span class="number">9</span>c81, U+<span class="number">9</span>ed8;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [113] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.113.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">26</span>, U+<span class="number">3</span>c, U+d7, U+<span class="number">4</span>e4e, U+<span class="number">4</span>e61, U+<span class="number">4</span>e71, U+<span class="number">4</span>ebf, U+<span class="number">4</span>ee4, U+<span class="number">4</span>f26, U+<span class="number">5012</span>, U+<span class="number">51</span>ac, U+<span class="number">51</span>b0, U+<span class="number">51</span>b2, U+<span class="number">51</span>b7, U+<span class="number">5218</span>, U+<span class="number">521</span>a, U+<span class="number">5220</span>, U+<span class="number">5237</span>, U+<span class="number">523</span>b, U+<span class="number">526</span>f, U+<span class="number">5385</span>, U+<span class="number">53</span>bf, U+<span class="number">53</span>e5, U+<span class="number">53</span>eb, U+<span class="number">53</span>f3, U+<span class="number">53</span>f6, U+<span class="number">5409</span>, U+<span class="number">5438</span>, U+<span class="number">54</span>c8, U+<span class="number">54</span>e5, U+<span class="number">552</span>f, U+<span class="number">5584</span>, U+<span class="number">5706</span>, U+<span class="number">5723</span>, U+<span class="number">5750</span>, U+<span class="number">575</span>a, U+<span class="number">5987</span>-<span class="number">5988</span>, U+<span class="number">59</span>b9, U+<span class="number">59</span>d0, U+<span class="number">59</span>d4, U+<span class="number">5</span>b88, U+<span class="number">5</span>b9c, U+<span class="number">5</span>bdf, U+<span class="number">5</span>bfb, U+<span class="number">5</span>c01, U+<span class="number">5</span>c04, U+<span class="number">5</span>c3e, U+<span class="number">5</span>c4b, U+<span class="number">5</span>c4f, U+<span class="number">5</span>c9b, U+<span class="number">5</span>cf0, U+<span class="number">5</span>ddd, U+<span class="number">5</span>de6, U+<span class="number">5</span>de8, U+<span class="number">5</span>e01, U+<span class="number">5</span>e78, U+<span class="number">5</span>e7b, U+<span class="number">5</span>e9c, U+<span class="number">5</span>ead, U+<span class="number">5</span>ef6, U+<span class="number">5</span>f39, U+<span class="number">5</span>fd8, U+<span class="number">6000</span>, U+<span class="number">6025</span>, U+<span class="number">604</span>b, U+<span class="number">6076</span>, U+<span class="number">613</span>f, U+<span class="number">6258</span>, U+<span class="number">6263</span>, U+<span class="number">6267</span>, U+<span class="number">6298</span>, U+<span class="number">62</span>a2, U+<span class="number">62</span>e5, U+<span class="number">62</span>ec, U+<span class="number">6311</span>, U+<span class="number">6377</span>, U+<span class="number">6388</span>-<span class="number">6389</span>, U+<span class="number">63</span>a2, U+<span class="number">63</span>d2, U+<span class="number">641</span>e, U+<span class="number">642</span>d, U+<span class="number">654</span>f, U+<span class="number">6551</span>, U+<span class="number">6597</span>, U+<span class="number">65</span>cf, U+<span class="number">65</span>d7, U+<span class="number">65</span>e7, U+<span class="number">6682</span>, U+<span class="number">66</span>f2, U+<span class="number">671</span>d, U+<span class="number">672</span>b, U+<span class="number">6751</span>, U+<span class="number">6768</span>, U+<span class="number">6811</span>, U+<span class="number">6863</span>, U+<span class="number">6982</span>, U+<span class="number">6</span>bd2, U+<span class="number">6</span>cf0, U+<span class="number">6</span>d0b, U+<span class="number">6</span>d17, U+<span class="number">6</span>d59, U+<span class="number">6</span>dd8, U+<span class="number">6</span>dfb, U+<span class="number">6</span>e7e, U+<span class="number">6</span>f6e, U+<span class="number">6</span>fb3, U+<span class="number">706</span>f, U+<span class="number">719</span>f, U+<span class="number">72</span>af, U+<span class="number">72</span>d0, U+<span class="number">72</span>d7, U+<span class="number">732</span>b, U+<span class="number">732</span>e, U+<span class="number">7389</span>, U+<span class="number">73</span>e0, U+<span class="number">7530</span>, U+<span class="number">7687</span>, U+<span class="number">76</span>d6, U+<span class="number">76</span>db, U+<span class="number">7840</span>, U+<span class="number">786</span>c, U+<span class="number">79</span>cb, U+<span class="number">79</span>d2, U+<span class="number">7</span>a0e, U+<span class="number">7</span>a33, U+<span class="number">7</span>a3f, U+<span class="number">7</span>a97, U+<span class="number">7</span>ade-<span class="number">7</span>adf, U+<span class="number">7</span>b26, U+<span class="number">7</span>e41, U+<span class="number">7</span>ec3, U+<span class="number">7</span>f3a, U+<span class="number">8089</span>, U+<span class="number">80</span>dc, U+<span class="number">811</span>a, U+<span class="number">8131</span>, U+<span class="number">8138</span>, U+<span class="number">821</span>e, U+<span class="number">8349</span>, U+<span class="number">83</span>dc, U+<span class="number">8457</span>, U+<span class="number">867</span>d, U+<span class="number">86</span>cb, U+<span class="number">8</span>a89, U+<span class="number">8</span>ba8, U+<span class="number">8</span>bad, U+<span class="number">8</span>bef, U+<span class="number">8</span>bfe, U+<span class="number">8</span>c6a, U+<span class="number">8</span>d1d, U+<span class="number">8</span>d4f, U+<span class="number">8</span>d62, U+<span class="number">8</span>dd1, U+<span class="number">8</span>df3, U+<span class="number">8</span>f6e, U+<span class="number">8</span>ff9, U+<span class="number">900</span>f, U+<span class="number">9014</span>, U+<span class="number">9057</span>, U+<span class="number">9192</span>, U+<span class="number">91</span>ce, U+<span class="number">9488</span>, U+<span class="number">94</span>a2, U+<span class="number">9547</span>, U+<span class="number">955</span>c, U+<span class="number">95</span>f2, U+<span class="number">9644</span>, U+<span class="number">964</span>d, U+<span class="number">96</span>c4-<span class="number">96</span>c5, U+<span class="number">96</span>e8, U+<span class="number">96</span>f6-<span class="number">96</span>f7, U+<span class="number">9732</span>, U+<span class="number">9759</span>, U+<span class="number">9760</span>, U+<span class="number">987</span>a, U+<span class="number">989</span>c, U+<span class="number">9910</span>, U+<span class="number">996</span>d-<span class="number">996</span>e, U+<span class="number">9</span>b54, U+<span class="number">9</span>e21, U+<span class="number">9</span>ebb, U+<span class="number">9</span>f50;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [114] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.114.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">7</span>e, U+<span class="number">2026</span>, U+<span class="number">4</span>e03, U+<span class="number">4</span>e25, U+<span class="number">4</span>e30, U+<span class="number">4</span>e34, U+<span class="number">4</span>e45, U+<span class="number">4</span>e5d, U+<span class="number">4</span>e89, U+<span class="number">4</span>eae, U+<span class="number">4</span>ed8, U+<span class="number">4</span>f11, U+<span class="number">4</span>f19, U+<span class="number">4</span>f24, U+<span class="number">4</span>f34, U+<span class="number">4</span>f59, U+<span class="number">4</span>f73, U+<span class="number">4</span>f9d, U+<span class="number">4</span>fb5, U+<span class="number">5047</span>, U+<span class="number">505</span>c, U+<span class="number">5170</span>, U+<span class="number">519</span>c, U+<span class="number">51</span>cf, U+<span class="number">5267</span>, U+<span class="number">5356</span>, U+<span class="number">5374</span>, U+<span class="number">5382</span>, U+<span class="number">538</span>b, U+<span class="number">53</span>e6, U+<span class="number">5426</span>, U+<span class="number">542</span>b, U+<span class="number">542</span>f, U+<span class="number">5462</span>, U+<span class="number">5473</span>, U+<span class="number">554</span>a, U+<span class="number">5566</span>, U+<span class="number">5708</span>, U+<span class="number">571</span>f, U+<span class="number">5757</span>, U+<span class="number">57</span>df, U+<span class="number">57</span>f9, U+<span class="number">5802</span>, U+<span class="number">590</span>f, U+<span class="number">591</span>c, U+<span class="number">591</span>f, U+<span class="number">592</span>b, U+<span class="number">5965</span>, U+<span class="number">5979</span>, U+<span class="number">5</span>a01, U+<span class="number">5</span>a5a, U+<span class="number">5</span>b69, U+<span class="number">5</span>b81, U+<span class="number">5</span>ba1, U+<span class="number">5</span>ba3, U+<span class="number">5</span>c3c, U+<span class="number">5</span>c42, U+<span class="number">5</span>c81, U+<span class="number">5</span>de7, U+<span class="number">5</span>dee, U+<span class="number">5</span>e0c, U+<span class="number">5</span>e10, U+<span class="number">5</span>e55, U+<span class="number">5</span>e86, U+<span class="number">5</span>e8f, U+<span class="number">5</span>ea7, U+<span class="number">5</span>f02, U+<span class="number">5</span>f52, U+<span class="number">5</span>f81, U+<span class="number">5</span>ff5, U+<span class="number">60</span>ca, U+<span class="number">60</span>e0, U+<span class="number">6279</span>, U+<span class="number">62</span>c5, U+<span class="number">62</span>ff, U+<span class="number">63</span>cf, U+<span class="number">6444</span>, U+<span class="number">64</span>cd, U+<span class="number">653</span>b, U+<span class="number">65</span>bd, U+<span class="number">65</span>e9, U+<span class="number">665</span>a, U+<span class="number">66</span>b4, U+<span class="number">66</span>fe, U+<span class="number">6728</span>, U+<span class="number">6740</span>, U+<span class="number">6742</span>, U+<span class="number">677</span>e, U+<span class="number">67</span>b6, U+<span class="number">680</span>f, U+<span class="number">68</span>a6, U+<span class="number">68</span>c0, U+<span class="number">699</span>c, U+<span class="number">6</span>b4c, U+<span class="number">6</span>b66, U+<span class="number">6</span>b7b, U+<span class="number">6</span>bcd, U+<span class="number">6</span>bdb, U+<span class="number">6</span>c38, U+<span class="number">6</span>c47, U+<span class="number">6</span>c49, U+<span class="number">6</span>cb3, U+<span class="number">6</span>cb9, U+<span class="number">6</span>ce2, U+<span class="number">6</span>d32, U+<span class="number">6</span>d3e, U+<span class="number">6</span>d4f, U+<span class="number">6</span>e56, U+<span class="number">6</span>fc0, U+<span class="number">7075</span>, U+<span class="number">7206</span>, U+<span class="number">725</span>b, U+<span class="number">72</span>c2, U+<span class="number">73</span>ed, U+<span class="number">7565</span>, U+<span class="number">7591</span>, U+<span class="number">7597</span>, U+<span class="number">75</span>c5, U+<span class="number">76</span>ae, U+<span class="number">76</span>d1, U+<span class="number">76</span>df, U+<span class="number">7834</span>, U+<span class="number">7968</span>, U+<span class="number">7981</span>, U+<span class="number">79</span>c0, U+<span class="number">7</span>a7f, U+<span class="number">7</span>a81, U+<span class="number">7</span>ae5, U+<span class="number">7</span>b14, U+<span class="number">7</span>c89, U+<span class="number">7</span>d27, U+<span class="number">7</span>eaf, U+<span class="number">7</span>eb3, U+<span class="number">7</span>eb8, U+<span class="number">7</span>ec7, U+<span class="number">7</span>ee7, U+<span class="number">7</span>eff, U+<span class="number">7</span>f57, U+<span class="number">7</span>ffb, U+<span class="number">805</span>a, U+<span class="number">80</span>a1, U+<span class="number">822</span>c, U+<span class="number">82</span>cf, U+<span class="number">82</span>e5, U+<span class="number">8363</span>, U+<span class="number">836</span>f, U+<span class="number">84</span>dd, U+<span class="number">878</span>d, U+<span class="number">8840</span>, U+<span class="number">8857</span>, U+<span class="number">8863</span>, U+<span class="number">8865</span>, U+<span class="number">8</span>b66, U+<span class="number">8</span>bb2, U+<span class="number">8</span>bda, U+<span class="number">8</span>c01, U+<span class="number">8</span>c08, U+<span class="number">8</span>c46, U+<span class="number">8</span>d1f, U+<span class="number">8</span>d35, U+<span class="number">8</span>d5b, U+<span class="number">8</span>d5e, U+<span class="number">8</span>da3, U+<span class="number">8</span>ddf, U+<span class="number">8</span>f93, U+<span class="number">8</span>fdd, U+<span class="number">8</span>ff0, U+<span class="number">8</span>ff7, U+<span class="number">8</span>ffd, U+<span class="number">9000</span>, U+<span class="number">9047</span>, U+<span class="number">9152</span>, U+<span class="number">949</span>f, U+<span class="number">94</span>c1, U+<span class="number">94</span>f6, U+<span class="number">9646</span>, U+<span class="number">9648</span>, U+<span class="number">9669</span>, U+<span class="number">969</span>c, U+<span class="number">96</span>ea, U+<span class="number">97</span>e9, U+<span class="number">987</span>b, U+<span class="number">987</span>e, U+<span class="number">989</span>d, U+<span class="number">9970</span>, U+<span class="number">9986</span>, U+<span class="number">9</span>c7c, U+<span class="number">9</span>c9c;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [115] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.115.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">25</span>, U+<span class="number">4</span>e14, U+<span class="number">4</span>e1d, U+<span class="number">4</span>e3d, U+<span class="number">4</span>e49, U+<span class="number">4</span>e60, U+<span class="number">4</span>e9a, U+<span class="number">4</span>eb2, U+<span class="number">4</span>ec5, U+<span class="number">4</span>efd, U+<span class="number">4</span>f3c, U+<span class="number">4</span>f4f, U+<span class="number">4</span>f8b, U+<span class="number">4</span>fbf, U+<span class="number">5019</span>, U+<span class="number">5145</span>, U+<span class="number">514</span>b, U+<span class="number">516</span>b, U+<span class="number">516</span>d, U+<span class="number">5174</span>, U+<span class="number">5178</span>, U+<span class="number">517</span>b, U+<span class="number">5199</span>, U+<span class="number">519</span>b, U+<span class="number">51</span>b3, U+<span class="number">51</span>b5, U+<span class="number">5207</span>, U+<span class="number">5212</span>, U+<span class="number">5219</span>, U+<span class="number">521</span>d, U+<span class="number">52</span>bf, U+<span class="number">533</span>b, U+<span class="number">5343</span>, U+<span class="number">5347</span>, U+<span class="number">534</span>a, U+<span class="number">536</span>b, U+<span class="number">5370</span>, U+<span class="number">53</span>e4, U+<span class="number">53</span>f2, U+<span class="number">5403</span>, U+<span class="number">542</span>c, U+<span class="number">547</span>d, U+<span class="number">54</span>a8, U+<span class="number">54</span>cd, U+<span class="number">54</span>ea, U+<span class="number">552</span>e, U+<span class="number">56</span>f4, U+<span class="number">5747</span>, U+<span class="number">575</span>b, U+<span class="number">5883</span>, U+<span class="number">589</span>e, U+<span class="number">5931</span>, U+<span class="number">5947</span>, U+<span class="number">5956</span>-<span class="number">5957</span>, U+<span class="number">5</span>a92, U+<span class="number">5</span>b63, U+<span class="number">5</span>b83, U+<span class="number">5</span>ba4, U+<span class="number">5</span>bb3, U+<span class="number">5</span>bcc, U+<span class="number">5</span>c14, U+<span class="number">5</span>c1a, U+<span class="number">5</span>c3d, U+<span class="number">5</span>c40, U+<span class="number">5</span>c45, U+<span class="number">5</span>c5e, U+<span class="number">5</span>df4, U+<span class="number">5</span>e72, U+<span class="number">5</span>e95, U+<span class="number">5</span>f80, U+<span class="number">5</span>f85, U+<span class="number">5</span>fb7, U+<span class="number">5</span>fd7, U+<span class="number">601</span>d, U+<span class="number">626</span>b, U+<span class="number">627</span>f, U+<span class="number">62</span>c9, U+<span class="number">62</span>cd, U+<span class="number">6309</span>, U+<span class="number">63</span>a7, U+<span class="number">6545</span>, U+<span class="number">65</span>ad, U+<span class="number">65</span>af, U+<span class="number">65</span>c5, U+<span class="number">666</span>e, U+<span class="number">667</span>a, U+<span class="number">670</span>b, U+<span class="number">671</span>b, U+<span class="number">674</span>e, U+<span class="number">677</span>f, U+<span class="number">6781</span>, U+<span class="number">6790</span>, U+<span class="number">6797</span>, U+<span class="number">6821</span>, U+<span class="number">6838</span>-<span class="number">6839</span>, U+<span class="number">697</span>c, U+<span class="number">6</span>b27, U+<span class="number">6</span>b62, U+<span class="number">6</span>bb5, U+<span class="number">6</span>c7d, U+<span class="number">6</span>c99, U+<span class="number">6</span>d4e, U+<span class="number">6</span>d6a, U+<span class="number">6</span>e29, U+<span class="number">6</span>e2f, U+<span class="number">6</span>ee1, U+<span class="number">6</span>f14, U+<span class="number">6</span>f2b, U+<span class="number">72</span>b6, U+<span class="number">72</span>ec, U+<span class="number">7387</span>, U+<span class="number">7533</span>, U+<span class="number">753</span>b, U+<span class="number">76</span>ca, U+<span class="number">76</span>d8, U+<span class="number">7701</span>, U+<span class="number">773</span>c, U+<span class="number">77</span>ed, U+<span class="number">77</span>f3, U+<span class="number">7814</span>, U+<span class="number">793</span>c, U+<span class="number">79</span>bb, U+<span class="number">79</span>c1, U+<span class="number">79</span>d8, U+<span class="number">79</span>ef, U+<span class="number">79</span>fb, U+<span class="number">7</span>a76, U+<span class="number">7</span>b11, U+<span class="number">7</span>b54, U+<span class="number">7</span>b56, U+<span class="number">7</span>b97, U+<span class="number">7</span>bc7, U+<span class="number">7</span>c73, U+<span class="number">7</span>d20, U+<span class="number">7</span>eaa, U+<span class="number">7</span>ec8, U+<span class="number">7</span>edd, U+<span class="number">7</span>eed, U+<span class="number">7</span>efc, U+<span class="number">7</span>fa4, U+<span class="number">804</span>c, U+<span class="number">8058</span>, U+<span class="number">80</span>cc, U+<span class="number">8111</span>, U+<span class="number">817</span>e, U+<span class="number">826</span>f, U+<span class="number">8303</span>, U+<span class="number">843</span>d, U+<span class="number">89</span>c9, U+<span class="number">89</span>d2, U+<span class="number">8</span>ba2, U+<span class="number">8</span>bbf, U+<span class="number">8</span>bc9, U+<span class="number">8</span>bcd, U+<span class="number">8</span>be6, U+<span class="number">8</span>c22, U+<span class="number">8</span>c61, U+<span class="number">8</span>d22, U+<span class="number">8</span>d26-<span class="number">8</span>d27, U+<span class="number">8</span>d8a, U+<span class="number">8</span>f6f, U+<span class="number">8</span>f7b, U+<span class="number">8</span>f83, U+<span class="number">8</span>f91, U+<span class="number">8</span>fb9, U+<span class="number">8</span>fd4, U+<span class="number">8</span>fdc, U+<span class="number">9002</span>, U+<span class="number">94</span>b1, U+<span class="number">9519</span>, U+<span class="number">95</span>ed, U+<span class="number">961</span>f, U+<span class="number">9632</span>-<span class="number">9633</span>, U+<span class="number">963</span>f, U+<span class="number">968</span>f-<span class="number">9690</span>, U+<span class="number">96</span>be, U+<span class="number">9876</span>, U+<span class="number">9884</span>, U+<span class="number">98</span>de, U+<span class="number">9988</span>, U+<span class="number">9999</span>, U+<span class="number">9</span>ec4, U+ff1b;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [116] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.116.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">2</span>b, U+<span class="number">40</span>, U+<span class="number">3000</span>, U+<span class="number">300</span>a-<span class="number">300</span>b, U+<span class="number">4</span>e16, U+<span class="number">4</span>e66, U+<span class="number">4</span>e70, U+<span class="number">4</span>e91-<span class="number">4</span>e92, U+<span class="number">4</span>e94, U+<span class="number">4</span>e9b, U+<span class="number">4</span>ec0, U+<span class="number">4</span>eca, U+<span class="number">4</span>f01, U+<span class="number">4</span>f17-<span class="number">4</span>f18, U+<span class="number">4</span>f46, U+<span class="number">4</span>f4e, U+<span class="number">4</span>f9b, U+<span class="number">4</span>fee, U+<span class="number">503</span>c, U+<span class="number">5065</span>, U+<span class="number">50</span>cf, U+<span class="number">513</span>f, U+<span class="number">5148</span>, U+<span class="number">518</span>d, U+<span class="number">51</span>c6, U+<span class="number">51</span>e0, U+<span class="number">5217</span>, U+<span class="number">529</span>e-<span class="number">529</span>f, U+<span class="number">5341</span>, U+<span class="number">534</span>f, U+<span class="number">5361</span>, U+<span class="number">5386</span>, U+<span class="number">53</span>c2, U+<span class="number">53</span>c8, U+<span class="number">53</span>cc, U+<span class="number">53</span>d7-<span class="number">53</span>d8, U+<span class="number">5404</span>, U+<span class="number">5411</span>, U+<span class="number">5417</span>, U+<span class="number">5427</span>, U+<span class="number">5468</span>, U+<span class="number">559</span>c, U+<span class="number">5668</span>, U+<span class="number">56</span>e0, U+<span class="number">56</span>e2, U+<span class="number">56</span>ed, U+<span class="number">5740</span>, U+<span class="number">57</span>fa, U+<span class="number">58</span>eb, U+<span class="number">5904</span>, U+<span class="number">592</span>a, U+<span class="number">59</span>cb, U+<span class="number">5</span>a31, U+<span class="number">5</span>b58, U+<span class="number">5</span>b9d, U+<span class="number">5</span>bc6, U+<span class="number">5</span>c71, U+<span class="number">5</span>dde, U+<span class="number">5</span>df1, U+<span class="number">5</span>e08, U+<span class="number">5</span>e26, U+<span class="number">5</span>e2e, U+<span class="number">5</span>e93, U+<span class="number">5</span>e97, U+<span class="number">5</span>eb7, U+<span class="number">5</span>f15, U+<span class="number">5</span>f20, U+<span class="number">5</span>f3a, U+<span class="number">5</span>f62, U+<span class="number">5</span>f69, U+<span class="number">5</span>f88, U+<span class="number">5</span>f8b, U+<span class="number">5</span>fc5, U+<span class="number">600</span>e, U+<span class="number">620</span>f, U+<span class="number">6218</span>, U+<span class="number">623</span>f, U+<span class="number">627</span>e, U+<span class="number">628</span>a, U+<span class="number">62</span>a4, U+<span class="number">62</span>db, U+<span class="number">62</span>e9, U+<span class="number">6307</span>, U+<span class="number">6362</span>, U+<span class="number">636</span>e, U+<span class="number">64</span>ad, U+<span class="number">6539</span>, U+<span class="number">653</span>f, U+<span class="number">6548</span>, U+<span class="number">6574</span>, U+<span class="number">6613</span>, U+<span class="number">6625</span>, U+<span class="number">663</span>e, U+<span class="number">666</span>f, U+<span class="number">672</span>a, U+<span class="number">6750</span>, U+<span class="number">6784</span>, U+<span class="number">6</span>a21, U+<span class="number">6</span>b3e, U+<span class="number">6</span>b65, U+<span class="number">6</span>bcf, U+<span class="number">6</span>c11, U+<span class="number">6</span>c5f, U+<span class="number">6</span>d4b, U+<span class="number">6</span>df1, U+<span class="number">706</span>b, U+<span class="number">7167</span>, U+<span class="number">724</span>c, U+<span class="number">738</span>b, U+<span class="number">73</span>a9, U+<span class="number">73</span>af, U+<span class="number">7403</span>, U+<span class="number">7537</span>, U+<span class="number">754</span>c, U+<span class="number">7559</span>, U+<span class="number">767</span>d, U+<span class="number">7740</span>, U+<span class="number">786</span>e, U+<span class="number">795</span>e, U+<span class="number">798</span>f, U+<span class="number">79</span>f0, U+<span class="number">7</span>aef, U+<span class="number">7</span>b7e, U+<span class="number">7</span>bb1, U+<span class="number">7</span>ea2, U+<span class="number">7</span>ea6, U+<span class="number">7</span>ec4, U+<span class="number">7</span>ec6, U+<span class="number">7</span>ecd, U+<span class="number">7</span>edc, U+<span class="number">7</span>ef4, U+<span class="number">8003</span>, U+<span class="number">80</span>b2, U+<span class="number">81</span>f3-<span class="number">81</span>f4, U+<span class="number">822</span>a, U+<span class="number">827</span>a, U+<span class="number">82</span>f1, U+<span class="number">83</span>b7, U+<span class="number">8425</span>, U+<span class="number">89</span>c2, U+<span class="number">89</span>c8, U+<span class="number">8</span>ba9, U+<span class="number">8</span>bb8, U+<span class="number">8</span>bc6, U+<span class="number">8</span>bd5, U+<span class="number">8</span>be2, U+<span class="number">8</span>be5, U+<span class="number">8</span>bed, U+<span class="number">8</span>c03, U+<span class="number">8</span>d23, U+<span class="number">8</span>d2d, U+<span class="number">8</span>d34, U+<span class="number">8</span>d70, U+<span class="number">8</span>db3, U+<span class="number">8</span>fbe, U+<span class="number">8</span>fce, U+<span class="number">8</span>fd1, U+<span class="number">8</span>fde, U+<span class="number">9001</span>, U+<span class="number">901</span>f-<span class="number">9020</span>, U+<span class="number">90</span>a3, U+<span class="number">914</span>d, U+<span class="number">91</span>c7, U+<span class="number">94</span>fe, U+<span class="number">9500</span>, U+<span class="number">952</span>e, U+<span class="number">9605</span>, U+<span class="number">9645</span>, U+<span class="number">9662</span>, U+<span class="number">9664</span>, U+<span class="number">9700</span>, U+<span class="number">9752</span>, U+<span class="number">975</span>e, U+<span class="number">97</span>f3, U+<span class="number">9879</span>, U+<span class="number">9886</span>, U+<span class="number">98</span>df, U+<span class="number">9</span>a6c, U+<span class="number">9</span>a8c, U+<span class="number">9</span>ed1, U+<span class="number">9</span>f99;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [117] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.117.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">4</span>e, U+<span class="number">201</span>c-<span class="number">201</span>d, U+<span class="number">3010</span>-<span class="number">3011</span>, U+<span class="number">4</span>e07, U+<span class="number">4</span>e1c, U+<span class="number">4</span>e24, U+<span class="number">4</span>e3e, U+<span class="number">4</span>e48, U+<span class="number">4</span>e50, U+<span class="number">4</span>e5f, U+<span class="number">4</span>e8b-<span class="number">4</span>e8c, U+<span class="number">4</span>ea4, U+<span class="number">4</span>eab-<span class="number">4</span>eac, U+<span class="number">4</span>ecb, U+<span class="number">4</span>ece, U+<span class="number">4</span>ed6, U+<span class="number">4</span>ee3, U+<span class="number">4</span>ef6-<span class="number">4</span>ef7, U+<span class="number">4</span>efb, U+<span class="number">4</span>f20, U+<span class="number">4</span>f55, U+<span class="number">4</span>f7f, U+<span class="number">4</span>fdd, U+<span class="number">505</span>a, U+<span class="number">5143</span>, U+<span class="number">5149</span>, U+<span class="number">514</span>d, U+<span class="number">5171</span>, U+<span class="number">5177</span>, U+<span class="number">518</span>c, U+<span class="number">51</span>fb, U+<span class="number">521</span>b, U+<span class="number">5229</span>, U+<span class="number">522</span>b, U+<span class="number">52</span>a9, U+<span class="number">5305</span>, U+<span class="number">5317</span>, U+<span class="number">534</span>e, U+<span class="number">5355</span>, U+<span class="number">5357</span>, U+<span class="number">535</span>a, U+<span class="number">5373</span>, U+<span class="number">539</span>f, U+<span class="number">53</span>bb, U+<span class="number">53</span>ca, U+<span class="number">53</span>cd, U+<span class="number">53</span>d6, U+<span class="number">53</span>e3, U+<span class="number">53</span>ea, U+<span class="number">53</span>f0, U+<span class="number">5458</span>, U+<span class="number">5546</span>, U+<span class="number">56</span>db, U+<span class="number">573</span>a, U+<span class="number">578</span>b, U+<span class="number">57</span>ce, U+<span class="number">58</span>f0, U+<span class="number">590</span>d, U+<span class="number">5934</span>, U+<span class="number">5973</span>, U+<span class="number">5</span>b57, U+<span class="number">5</span>b8c, U+<span class="number">5</span>b98, U+<span class="number">5</span>bb9, U+<span class="number">5</span>bfc, U+<span class="number">5</span>c06, U+<span class="number">5</span>c11, U+<span class="number">5</span>c31, U+<span class="number">5</span>c55, U+<span class="number">5</span>df2, U+<span class="number">5</span>e03, U+<span class="number">5</span>e76, U+<span class="number">5</span>e94, U+<span class="number">5</span>efa, U+<span class="number">5</span>f71, U+<span class="number">5</span>f97, U+<span class="number">5</span>feb, U+<span class="number">6001</span>, U+<span class="number">603</span>b, U+<span class="number">60</span>f3, U+<span class="number">611</span>f, U+<span class="number">6216</span>, U+<span class="number">624</span>d, U+<span class="number">6253</span>, U+<span class="number">6295</span>, U+<span class="number">6301</span>, U+<span class="number">6392</span>, U+<span class="number">641</span>c, U+<span class="number">652</span>f, U+<span class="number">653</span>e, U+<span class="number">6559</span>, U+<span class="number">6599</span>, U+<span class="number">661</span>f, U+<span class="number">671</span>f, U+<span class="number">672</span>f, U+<span class="number">6761</span>, U+<span class="number">67</span>e5, U+<span class="number">6807</span>, U+<span class="number">6837</span>, U+<span class="number">683</span>c, U+<span class="number">6848</span>, U+<span class="number">6</span>b22, U+<span class="number">6</span>b64, U+<span class="number">6</span>bd4, U+<span class="number">6</span>c14, U+<span class="number">6</span>c34, U+<span class="number">6</span>c42, U+<span class="number">6</span>ca1, U+<span class="number">6</span>d41, U+<span class="number">6</span>d77, U+<span class="number">6</span>d88, U+<span class="number">6</span>e05, U+<span class="number">6</span>e38, U+<span class="number">6</span>e90, U+<span class="number">7136</span>, U+<span class="number">7231</span>, U+<span class="number">7531</span>, U+<span class="number">767</span>e, U+<span class="number">76</span>ee, U+<span class="number">76</span>f4, U+<span class="number">771</span>f, U+<span class="number">7801</span>, U+<span class="number">793</span>a, U+<span class="number">79</span>cd, U+<span class="number">7</span>a0b, U+<span class="number">7</span>a7a, U+<span class="number">7</span>acb, U+<span class="number">7</span>ae0, U+<span class="number">7</span>b2c, U+<span class="number">7</span>b80, U+<span class="number">7</span>ba1, U+<span class="number">7</span>cbe, U+<span class="number">7</span>d22, U+<span class="number">7</span>ea7, U+<span class="number">7</span>ed3, U+<span class="number">7</span>ed9, U+<span class="number">7</span>edf, U+<span class="number">7</span>f16, U+<span class="number">7</span>f6e, U+<span class="number">8001</span>, U+<span class="number">800</span>c, U+<span class="number">8272</span>, U+<span class="number">8282</span>, U+<span class="number">82</span>b1, U+<span class="number">8350</span>, U+<span class="number">88</span>ab, U+<span class="number">88</span>c5, U+<span class="number">897</span>f, U+<span class="number">89</span>c1, U+<span class="number">89</span>c4, U+<span class="number">89</span>e3, U+<span class="number">8</span>a00, U+<span class="number">8</span>ba1, U+<span class="number">8</span>ba4, U+<span class="number">8</span>bae-<span class="number">8</span>bb0, U+<span class="number">8</span>bbe, U+<span class="number">8</span>bc1, U+<span class="number">8</span>bc4, U+<span class="number">8</span>bfb, U+<span class="number">8</span>d28, U+<span class="number">8</span>d39, U+<span class="number">8</span>d77, U+<span class="number">8</span>d85, U+<span class="number">8</span>def, U+<span class="number">8</span>eab, U+<span class="number">8</span>f66, U+<span class="number">8</span>f6c, U+<span class="number">8</span>f7d, U+<span class="number">8</span>fd0, U+<span class="number">9009</span>, U+<span class="number">90</span>ae, U+<span class="number">90</span>fd, U+<span class="number">91</span>cc-<span class="number">91</span>cd, U+<span class="number">91</span>cf, U+<span class="number">95</span>fb, U+<span class="number">9650</span>, U+<span class="number">96</span>c6, U+<span class="number">9891</span>, U+<span class="number">98</span>ce, U+ff1f;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [118] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.118.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+d, U+<span class="number">3</span>e, U+<span class="number">5</span>f, U+<span class="number">7</span>c, U+a0, U+a9, U+<span class="number">4</span>e09-<span class="number">4</span>e0b, U+<span class="number">4</span>e0d-<span class="number">4</span>e0e, U+<span class="number">4</span>e13, U+<span class="number">4</span>e1a, U+<span class="number">4</span>e2a, U+<span class="number">4</span>e3a-<span class="number">4</span>e3b, U+<span class="number">4</span>e4b, U+<span class="number">4</span>e86, U+<span class="number">4</span>e8e, U+<span class="number">4</span>ea7, U+<span class="number">4</span>eba, U+<span class="number">4</span>ee5, U+<span class="number">4</span>eec, U+<span class="number">4</span>f1a, U+<span class="number">4</span>f4d, U+<span class="number">4</span>f53, U+<span class="number">4</span>f5c, U+<span class="number">4</span>f60, U+<span class="number">4</span>fe1, U+<span class="number">5165</span>, U+<span class="number">5168</span>, U+<span class="number">516</span>c, U+<span class="number">5173</span>, U+<span class="number">5176</span>, U+<span class="number">5185</span>, U+<span class="number">51</span>fa, U+<span class="number">5206</span>, U+<span class="number">5230</span>, U+<span class="number">5236</span>, U+<span class="number">524</span>d, U+<span class="number">529</span>b, U+<span class="number">52</span>a0-<span class="number">52</span>a1, U+<span class="number">52</span>a8, U+<span class="number">5316</span>, U+<span class="number">533</span>a, U+<span class="number">53</span>cb, U+<span class="number">53</span>d1, U+<span class="number">53</span>ef, U+<span class="number">53</span>f7-<span class="number">53</span>f8, U+<span class="number">5408</span>, U+<span class="number">540</span>c-<span class="number">540</span>e, U+<span class="number">544</span>a, U+<span class="number">548</span>c, U+<span class="number">54</span>c1, U+<span class="number">56</span>de, U+<span class="number">56</span>fd-<span class="number">56</span>fe, U+<span class="number">5728</span>, U+<span class="number">5730</span>, U+<span class="number">5907</span>, U+<span class="number">5916</span>, U+<span class="number">591</span>a, U+<span class="number">5927</span>, U+<span class="number">5929</span>, U+<span class="number">597</span>d, U+<span class="number">5982</span>, U+<span class="number">5</span>b50, U+<span class="number">5</span>b66, U+<span class="number">5</span>b89, U+<span class="number">5</span>b9a, U+<span class="number">5</span>b9e, U+<span class="number">5</span>ba2, U+<span class="number">5</span>bb6, U+<span class="number">5</span>bf9, U+<span class="number">5</span>c0f, U+<span class="number">5</span>de5, U+<span class="number">5</span>e02, U+<span class="number">5</span>e38, U+<span class="number">5</span>e73-<span class="number">5</span>e74, U+<span class="number">5</span>e7f, U+<span class="number">5</span>ea6, U+<span class="number">5</span>f00, U+<span class="number">5</span>f0f, U+<span class="number">5</span>f53, U+<span class="number">5</span>f55, U+<span class="number">5</span>fae, U+<span class="number">5</span>fc3, U+<span class="number">6027</span>, U+<span class="number">606</span>f, U+<span class="number">60</span>a8, U+<span class="number">60</span>c5, U+<span class="number">610</span>f, U+<span class="number">6210</span>-<span class="number">6211</span>, U+<span class="number">6237</span>, U+<span class="number">6240</span>, U+<span class="number">624</span>b, U+<span class="number">6280</span>, U+<span class="number">62</span>a5, U+<span class="number">63</span>a5, U+<span class="number">63</span>a8, U+<span class="number">63</span>d0, U+<span class="number">6536</span>, U+<span class="number">6570</span>, U+<span class="number">6587</span>, U+<span class="number">65</span>b9, U+<span class="number">65</span>e0, U+<span class="number">65</span>f6, U+<span class="number">660</span>e, U+<span class="number">662</span>d, U+<span class="number">662</span>f, U+<span class="number">66</span>f4, U+<span class="number">6700</span>, U+<span class="number">670</span>d, U+<span class="number">672</span>c, U+<span class="number">673</span>a, U+<span class="number">6743</span>, U+<span class="number">6765</span>, U+<span class="number">679</span>c, U+<span class="number">682</span>a, U+<span class="number">6</span>b21, U+<span class="number">6</span>b63, U+<span class="number">6</span>cbb, U+<span class="number">6</span>cd5, U+<span class="number">6</span>ce8, U+<span class="number">6</span>d3b, U+<span class="number">70</span>ed, U+<span class="number">7247</span>-<span class="number">7248</span>, U+<span class="number">7269</span>, U+<span class="number">7279</span>, U+<span class="number">73</span>b0, U+<span class="number">7406</span>, U+<span class="number">751</span>f, U+<span class="number">7528</span>, U+<span class="number">7535</span>, U+<span class="number">767</span>b, U+<span class="number">76</span>f8, U+<span class="number">770</span>b, U+<span class="number">77</span>e5, U+<span class="number">793</span>e, U+<span class="number">79</span>d1, U+<span class="number">7</span>ad9, U+<span class="number">7</span>b49, U+<span class="number">7</span>c7b, U+<span class="number">7</span>cfb, U+<span class="number">7</span>ebf, U+<span class="number">7</span>ecf, U+<span class="number">7</span>f8e, U+<span class="number">8005</span>, U+<span class="number">8054</span>, U+<span class="number">80</span>fd, U+<span class="number">81</span>ea, U+<span class="number">85</span>cf, U+<span class="number">884</span>c, U+<span class="number">8868</span>, U+<span class="number">8981</span>, U+<span class="number">89</span>c6, U+<span class="number">8</span>bba, U+<span class="number">8</span>bdd, U+<span class="number">8</span>bf4, U+<span class="number">8</span>bf7, U+<span class="number">8</span>d44, U+<span class="number">8</span>fc7, U+<span class="number">8</span>fd8-<span class="number">8</span>fd9, U+<span class="number">8</span>fdb, U+<span class="number">901</span>a, U+<span class="number">9053</span>, U+<span class="number">90</span>e8, U+<span class="number">91</span>d1, U+<span class="number">957</span>f, U+<span class="number">95</span>e8, U+<span class="number">95</span>ee, U+<span class="number">95</span>f4, U+<span class="number">9762</span>, U+<span class="number">9875</span>, U+<span class="number">9898</span>, U+<span class="number">9996</span>, U+<span class="number">9</span>ad8, U+ff01, U+ff08-ff09;</span><br><span class="line">&#125;</span><br><span class="line"><span class="comment">/* [119] */</span></span><br><span class="line"><span class="keyword">@font-face</span> &#123;</span><br><span class="line">  <span class="attribute">font-family</span>: <span class="string">&#x27;HarmonyOSSans-Regular&#x27;</span>;</span><br><span class="line">  <span class="attribute">font-style</span>: normal;</span><br><span class="line">  <span class="attribute">font-weight</span>: <span class="number">400</span>;</span><br><span class="line">  <span class="attribute">font-display</span>: swap;</span><br><span class="line">  <span class="attribute">src</span>: <span class="built_in">url</span>(<span class="string">/HarmonyOS_Sans_SC_Regular.119.woff2</span>) <span class="built_in">format</span>(<span class="string">&#x27;woff2&#x27;</span>);</span><br><span class="line">  unicode-range: U+<span class="number">20</span>-<span class="number">22</span>, U+<span class="number">27</span>-<span class="number">2</span>a, U+<span class="number">2</span>c-<span class="number">3</span>b, U+<span class="number">3</span>f, U+<span class="number">41</span>-<span class="number">4</span>d, U+<span class="number">4</span>f-<span class="number">5</span>d, U+<span class="number">61</span>-<span class="number">7</span>b, U+<span class="number">7</span>d, U+ab, U+ae, U+b2, U+b7, U+bb, U+df-e5, U+e7-ea, U+ec-ed, U+f1-f4, U+f6, U+f9-fa, U+fc, U+<span class="number">101</span>, U+<span class="number">103</span>, U+<span class="number">113</span>, U+<span class="number">12</span>b, U+<span class="number">148</span>, U+<span class="number">14</span>d, U+<span class="number">16</span>b, U+<span class="number">1</span>ce, U+<span class="number">1</span>d0, U+<span class="number">300</span>-<span class="number">301</span>, U+<span class="number">1</span>ebf, U+<span class="number">1</span>ec7, U+<span class="number">2013</span>-<span class="number">2014</span>, U+<span class="number">2039</span>-<span class="number">203</span>a, U+<span class="number">2122</span>, U+<span class="number">3001</span>-<span class="number">3002</span>, U+<span class="number">3042</span>, U+<span class="number">3044</span>, U+<span class="number">3046</span>, U+<span class="number">3048</span>, U+<span class="number">304</span>a-<span class="number">3055</span>, U+<span class="number">3057</span>, U+<span class="number">3059</span>-<span class="number">305</span>b, U+<span class="number">305</span>d, U+<span class="number">305</span>f-<span class="number">3061</span>, U+<span class="number">3063</span>-<span class="number">306</span>b, U+<span class="number">306</span>d-<span class="number">3073</span>, U+<span class="number">3075</span>-<span class="number">3076</span>, U+<span class="number">3078</span>-<span class="number">3079</span>, U+<span class="number">307</span>b, U+<span class="number">307</span>e-<span class="number">307</span>f, U+<span class="number">3081</span>-<span class="number">308</span>d, U+<span class="number">308</span>f, U+<span class="number">3092</span>-<span class="number">3093</span>, U+<span class="number">30</span>a1-<span class="number">30</span>a4, U+<span class="number">30</span>a6-<span class="number">30</span>bb, U+<span class="number">30</span>bd, U+<span class="number">30</span>bf-<span class="number">30</span>c1, U+<span class="number">30</span>c3-<span class="number">30</span>c4, U+<span class="number">30</span>c6-<span class="number">30</span>cb, U+<span class="number">30</span>cd-<span class="number">30</span>d7, U+<span class="number">30</span>d9-<span class="number">30</span>e1, U+<span class="number">30</span>e3-<span class="number">30</span>e7, U+<span class="number">30</span>e9-<span class="number">30</span>ed, U+<span class="number">30</span>ef, U+<span class="number">30</span>f3, U+<span class="number">30</span>fb-<span class="number">30</span>fc, U+<span class="number">4</span>e00, U+<span class="number">4</span>e2d, U+<span class="number">65</span>b0, U+<span class="number">65</span>e5, U+<span class="number">6708</span>-<span class="number">6709</span>, U+<span class="number">70</span>b9, U+<span class="number">7684</span>, U+<span class="number">7</span>f51, U+ff0c, U+ff0e, U+ff1a;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;一直以来，本站使用的是 HarmonyOS Sans 字体，但由于中文字体文件过大（约 4.3 MB），导致网页加载速度缓慢，不利于弱网环境下的访问。因此，本文将介绍如何使用 fontTools 中的 pyftsubset 对网页字体进行切片，以优</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="建站" scheme="https://r2wind.cn/tags/%E5%BB%BA%E7%AB%99/"/>
    
  </entry>
  
  <entry>
    <title>Nginx 编译开启 Quic 或 HTTP/3</title>
    <link href="https://r2wind.cn/articles/20230526.html"/>
    <id>https://r2wind.cn/articles/20230526.html</id>
    <published>2023-05-26T14:30:30.000Z</published>
    <updated>2025-06-11T06:06:30.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>随着最近 Nginx-Quic 分支被合并到了 Nginx 主线，Nginx 1.25.0 版本官方二进制包已经支持 Quic&#x2F;HTTP3，感兴趣的朋友可以前往 <a href="https://nginx.org/en/download.html">https://nginx.org/en/download.html</a> 或 <a href="https://nginx.org/en/linux_packages.html">https://nginx.org/en/linux_packages.html</a> 下载安装，体验一下 Quic&#x2F;HTTP3 的魅力，本文将主要为您介绍如何通过编译的方式开启 Quic&#x2F;HTTP3。</p></blockquote><div class="note info flat"><p>2025年06月16日更新：更新了部分编译参数<br>2025年05月15日更新：没错，boringssl又更新了，影响gcc13以下版本，因此修改编译时的参数。详见<a href="https://github.com/google/boringssl/commit/5e3ba4c15b67ed00fe8a71dc3a45ebd6211d299f">https://github.com/google/boringssl/commit/5e3ba4c15b67ed00fe8a71dc3a45ebd6211d299f</a> 。<br>2024年11月10日更新：Nginx已将仓库迁移至Github，因此删除部分依赖，更新仓库链接<br>2024年04月11日更新：大部分系统下默认存在着<code>www-data</code>用户组和<code>www-data</code>用户，所以不再使用原来的<code>www</code>用户和<code>www</code>用户组进行编译。<br>2024年03月07日更新：最终使用 C++ 链接构建 Nginx，以解决 BoringSSL 编译问题。<br>2024年02月20日更新：通过在 Nginx 邮件社区讨论得到了一个解决方案，可以将 libssl 构建为共享库来解决这个问题，详见 <a href="https://mailman.nginx.org/pipermail/nginx/2024-February/5N5IXG7BI66D5AIKORCYPVVVJTZYMUR6.html">https://mailman.nginx.org/pipermail/nginx/2024-February/5N5IXG7BI66D5AIKORCYPVVVJTZYMUR6.html</a> ，可以根据需要自行尝试。<br>2024年02月19日更新：由于谷歌的 BoringSSL 现在发布了一个破坏性的更新，所以导致编译出错，本文临时将克隆到的 BoringSSL 版本修改为 c39e6cd9ec5acebb6de2adffc03cfe03b07f08ab 这个 commit。<br>2023年11月19日更新：修复了Nginx_brotli编译错误的问题。<br>2023年06月22日更新：更新了关于 HTTP&#x2F;2 的配置，Nginx 已经弃用了 listen 指令中的 http2 参数，改为 <code>http2 on;</code>，详见 <a href="https://hg.nginx.org/nginx/rev/08ef02ad5c54">https://hg.nginx.org/nginx/rev/08ef02ad5c54</a> 和 <a href="https://nginx.org/en/docs/http/ngx_http_v2_module.html">https://nginx.org/en/docs/http/ngx_http_v2_module.html</a> ，如您之前参照过本文编译安装 Nginx，请您重新编译安装后修改配置,可参照<a href="#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6">示例配置</a>。</p></div><h2 id="安装依赖"><a href="#安装依赖" class="headerlink" title="安装依赖"></a>安装依赖</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># Debian 11或12</span></span><br><span class="line">apt update</span><br><span class="line">apt install build-essential ca-certificates zlib1g-dev libpcre2-dev tar unzip libssl-dev wget curl git cmake ninja-build libunwind-dev pkg-config libxml2-dev libxslt1-dev libgd-dev libgeoip-dev libperl-dev</span><br><span class="line"><span class="comment"># Ubuntu 22.04或20.04</span></span><br><span class="line"><span class="built_in">sudo</span> su</span><br><span class="line"><span class="built_in">cd</span> /root</span><br><span class="line">apt update</span><br><span class="line">apt install build-essential ca-certificates zlib1g-dev libpcre2-dev tar unzip libssl-dev wget curl git cmake ninja-build libunwind-dev pkg-config libxml2-dev libxslt1-dev libgd-dev libgeoip-dev libperl-dev</span><br><span class="line"><span class="comment"># CentOS 8 Stream/TencentOS Server 3.1</span></span><br><span class="line">dnf update</span><br><span class="line">dnf install gcc gcc-c++ pcre-devel openssl-devel zlib-devel cmake make libunwind-devel git wget libxml2-devel libxslt-devel gd-devel geoip-devel perl-devel</span><br><span class="line"><span class="comment"># OpenCloudOS Server 9</span></span><br><span class="line">dnf update</span><br><span class="line">dnf install gcc gcc-c++ pcre-devel openssl-devel zlib-devel cmake make git wget libxml2-devel libxslt-devel gd-devel geoip-devel perl-devel</span><br></pre></td></tr></table></figure><h2 id="安装Go"><a href="#安装Go" class="headerlink" title="安装Go"></a>安装Go</h2><blockquote><p>其实这里现在没什么用了，不知道从哪次提交开始，官方已经绕开了golang</p></blockquote><h3 id="下载并解压"><a href="#下载并解压" class="headerlink" title="下载并解压"></a>下载并解压</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.google.com/go/go1.24.4.linux-amd64.tar.gz</span><br><span class="line"><span class="built_in">rm</span> -rf /usr/local/go &amp;&amp; tar -C /usr/local -xzf go1.24.4.linux-amd64.tar.gz</span><br></pre></td></tr></table></figure><div class="note warning flat"><p>请注意系统架构，本文以 x86_64 为例，如果你的系统架构不是 x86_64，请自行修改下载链接。</p></div><h3 id="添加环境变量"><a href="#添加环境变量" class="headerlink" title="添加环境变量"></a>添加环境变量</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">export</span> PATH=<span class="variable">$PATH</span>:/usr/local/go/bin</span><br></pre></td></tr></table></figure><p>具体可参考<a href="https://go.dev/doc/install">https://go.dev/doc/install</a></p><h3 id="验证是否安装成功"><a href="#验证是否安装成功" class="headerlink" title="验证是否安装成功"></a>验证是否安装成功</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">go version</span><br></pre></td></tr></table></figure><h3 id="考虑国内用户访问官方较慢，故设置代理"><a href="#考虑国内用户访问官方较慢，故设置代理" class="headerlink" title="考虑国内用户访问官方较慢，故设置代理"></a>考虑国内用户访问官方较慢，故设置代理</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">export</span> GOPROXY=https://mirrors.cloud.tencent.com/go/</span><br></pre></td></tr></table></figure><h2 id="编译-boringssl"><a href="#编译-boringssl" class="headerlink" title="编译 boringssl"></a>编译 boringssl</h2><h3 id="Debian-Ubuntu"><a href="#Debian-Ubuntu" class="headerlink" title="Debian&#x2F;Ubuntu"></a>Debian&#x2F;Ubuntu</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> --depth=1 https://github.com/google/boringssl.git</span><br><span class="line"><span class="built_in">cd</span> boringssl</span><br><span class="line"><span class="comment"># GCC 12版本增加下面这行参数</span></span><br><span class="line"><span class="comment"># sed -i &#x27;s/-Werror/-Werror -Wno-array-bounds/&#x27; CMakeLists.txt</span></span><br><span class="line">cmake -GNinja -B build -DCMAKE_BUILD_TYPE=Release</span><br><span class="line">ninja -C build</span><br><span class="line"><span class="built_in">cd</span> ../..</span><br></pre></td></tr></table></figure><h3 id="CentOS-8-Stream-TencentOS-Server-3-1-OpenCloudOS-Server-8"><a href="#CentOS-8-Stream-TencentOS-Server-3-1-OpenCloudOS-Server-8" class="headerlink" title="CentOS 8 Stream&#x2F;TencentOS Server 3.1&#x2F;OpenCloudOS Server 8"></a>CentOS 8 Stream&#x2F;TencentOS Server 3.1&#x2F;OpenCloudOS Server 8</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> --depth=1 https://github.com/google/boringssl.git</span><br><span class="line"><span class="built_in">cd</span> boringssl</span><br><span class="line"><span class="comment"># GCC 12版本增加下面这行参数</span></span><br><span class="line"><span class="comment"># sed -i &#x27;s/-Werror/-Werror -Wno-array-bounds/&#x27; CMakeLists.txt</span></span><br><span class="line"><span class="built_in">mkdir</span> build</span><br><span class="line"><span class="built_in">cd</span> build</span><br><span class="line">cmake -DCMAKE_BUILD_TYPE=Release .. </span><br><span class="line">make</span><br><span class="line"><span class="built_in">cd</span> ../..</span><br></pre></td></tr></table></figure><h2 id="安装-brotli-压缩"><a href="#安装-brotli-压缩" class="headerlink" title="安装 brotli 压缩"></a>安装 brotli 压缩</h2><blockquote><p>不需要请跳过，并在编译时删除–add-module&#x3D;..&#x2F;ngx_brotli</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> --recurse-submodules -j8 https://github.com/google/ngx_brotli</span><br><span class="line"><span class="built_in">cd</span> ngx_brotli/deps/brotli</span><br><span class="line"><span class="built_in">mkdir</span> out &amp;&amp; <span class="built_in">cd</span> out</span><br><span class="line">cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS=<span class="string">&quot;-Ofast -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections&quot;</span> -DCMAKE_CXX_FLAGS=<span class="string">&quot;-Ofast -march=native -mtune=native -flto -funroll-loops -ffunction-sections -fdata-sections -Wl,--gc-sections&quot;</span> -DCMAKE_INSTALL_PREFIX=./installed ..</span><br><span class="line">cmake --build . --config Release --target brotlienc</span><br><span class="line"><span class="built_in">cd</span> ../../../..</span><br></pre></td></tr></table></figure><h2 id="编译安装quic"><a href="#编译安装quic" class="headerlink" title="编译安装quic"></a>编译安装quic</h2><blockquote><p>注意：<br>本人是直接在 &#x2F;root 目录下编译的，如果你在其他目录下，请自行修改路径；<br>如果你不需要 brotli 压缩，请删除–add-module&#x3D;&#x2F;root&#x2F;ngx_brotli<br>本人将 Nginx 安装在 &#x2F;www&#x2F;server&#x2F;nginx 目录下，如果你需要修改，请自行修改路径；</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> https://github.com/nginx/nginx.git</span><br><span class="line"><span class="built_in">cd</span> nginx</span><br><span class="line">./auto/configure \</span><br><span class="line">  --prefix=/www/server/nginx \</span><br><span class="line">  --user=www-data \</span><br><span class="line">  --group=www-data \</span><br><span class="line">  --with-debug \</span><br><span class="line">  --with-http_v3_module \</span><br><span class="line">  --with-cc=c++ \</span><br><span class="line">  --with-cc-opt=<span class="string">&#x27;-g -O2 -Werror=implicit-function-declaration -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -I../boringssl/include -x c&#x27;</span> \</span><br><span class="line">  --with-ld-opt=<span class="string">&#x27;-Wl,-z,relro -Wl,-z,now -L../boringssl/build -L../boringssl/build/ssl -L../boringssl/build/crypto -lssl -lcrypto -lstdc++&#x27;</span> \</span><br><span class="line">  --add-module=../ngx_brotli \</span><br><span class="line">  --with-compat \</span><br><span class="line">  --with-pcre-jit \</span><br><span class="line">  --with-http_ssl_module \</span><br><span class="line">  --with-http_stub_status_module \</span><br><span class="line">  --with-http_realip_module \</span><br><span class="line">  --with-http_auth_request_module \</span><br><span class="line">  --with-http_v2_module \</span><br><span class="line">  --with-http_dav_module \</span><br><span class="line">  --with-http_slice_module \</span><br><span class="line">  --with-threads \</span><br><span class="line">  --with-http_addition_module \</span><br><span class="line">  --with-http_flv_module \</span><br><span class="line">  --with-http_gunzip_module \</span><br><span class="line">  --with-http_gzip_static_module \</span><br><span class="line">  --with-http_mp4_module \</span><br><span class="line">  --with-http_random_index_module \</span><br><span class="line">  --with-http_secure_link_module \</span><br><span class="line">  --with-http_sub_module \</span><br><span class="line">  --with-mail_ssl_module \</span><br><span class="line">  --with-stream_ssl_module \</span><br><span class="line">  --with-stream_ssl_preread_module \</span><br><span class="line">  --with-stream_realip_module</span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure><h2 id="添加-www-用户"><a href="#添加-www-用户" class="headerlink" title="添加 www 用户"></a>添加 www 用户</h2><div class="note warning flat"><p>大部分系统下默认存在着<code>www-data</code>用户组和<code>www-data</code>用户，如果没有请执行以下命令添加。</p></div><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">groupadd www-data</span><br><span class="line">useradd -g www-data -s /sbin/nologin www-data</span><br></pre></td></tr></table></figure><h2 id="添加进程管理"><a href="#添加进程管理" class="headerlink" title="添加进程管理"></a>添加进程管理</h2><blockquote><p>本人使用的是 systemd，如果你使用的是其他进程管理，请自行修改</p></blockquote><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vim /usr/lib/systemd/system/nginx.service</span><br></pre></td></tr></table></figure><p>输入如下内容：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">[Unit]</span><br><span class="line">Description=nginx</span><br><span class="line">After=network.target</span><br><span class="line"></span><br><span class="line">[Service]</span><br><span class="line">Type=forking</span><br><span class="line">ExecStart=/www/server/nginx/sbin/nginx</span><br><span class="line">ExecReload=/www/server/nginx/sbin/nginx -s reload</span><br><span class="line">ExecStop=/www/server/nginx/sbin/nginx -s quit</span><br><span class="line">PrivateTmp=<span class="literal">true</span></span><br><span class="line"></span><br><span class="line">[Install]</span><br><span class="line">WantedBy=multi-user.target</span><br></pre></td></tr></table></figure><h2 id="启动"><a href="#启动" class="headerlink" title="启动"></a>启动</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl start nginx</span><br></pre></td></tr></table></figure><h2 id="开机自启"><a href="#开机自启" class="headerlink" title="开机自启"></a>开机自启</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl <span class="built_in">enable</span> nginx</span><br></pre></td></tr></table></figure><h2 id="配置文件"><a href="#配置文件" class="headerlink" title="配置文件"></a>配置文件</h2><p>示例配置文件如下，更多特性请参考官方文档：<a href="https://nginx.org/en/docs/http/ngx_http_v3_module.html">https://nginx.org/en/docs/http/ngx_http_v3_module.html</a></p><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">server</span> &#123;</span><br><span class="line">       <span class="attribute">listen</span> <span class="number">443</span> ssl;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">443</span> ssl;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用于支持Quic或HTTP/3</span></span><br><span class="line">       <span class="attribute">listen</span> <span class="number">443</span> quic reuseport;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">443</span> quic reuseport;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用以支持HTTP/2</span></span><br><span class="line">       <span class="attribute">http2</span> <span class="literal">on</span>;</span><br><span class="line"></span><br><span class="line">       <span class="attribute">server_name</span> r2wind.cn;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># Quic或HTTP/3响应头</span></span><br><span class="line">       <span class="attribute">add_header</span> Alt-Svc <span class="string">&#x27;h3=&quot;:443&quot;; ma=86400&#x27;</span>;</span><br><span class="line">       <span class="comment"># HSTS</span></span><br><span class="line">       <span class="attribute">add_header</span> Strict-Transport-Security <span class="string">&quot;max-age=63072000; includeSubdomains; preload&quot;</span>;</span><br><span class="line"></span><br><span class="line">       <span class="section">location</span> / &#123;</span><br><span class="line">           <span class="attribute">root</span> /www/wwwroot/r2wind.cn; </span><br><span class="line">           <span class="attribute">index</span>  index.html index.htm;</span><br><span class="line">         &#125;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 证书配置</span></span><br><span class="line">       <span class="attribute">ssl_certificate</span> /root/.acme.sh/smb.wiki/fullchain.cer; </span><br><span class="line">       <span class="attribute">ssl_certificate_key</span> /root/.acme.sh/smb.wiki/smb.wiki.key;</span><br><span class="line">       <span class="attribute">ssl_session_timeout</span> <span class="number">5m</span>;</span><br><span class="line">       <span class="attribute">ssl_protocols</span> TLSv1.<span class="number">2</span> TLSv1.<span class="number">3</span>; </span><br><span class="line">       <span class="attribute">ssl_ciphers</span> ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; </span><br><span class="line">       <span class="attribute">ssl_prefer_server_ciphers</span> <span class="literal">on</span>;</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><p>配置完成后，重载 Nginx 即可生效</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">systemctl reload nginx</span><br></pre></td></tr></table></figure>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;随着最近 Nginx-Quic 分支被合并到了 Nginx 主线，Nginx 1.25.0 版本官方二进制包已经支持 Quic&amp;#x2F;HTTP3，感兴趣的朋友可以前往 &lt;a href=&quot;https://nginx.org/en/download</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="建站" scheme="https://r2wind.cn/tags/%E5%BB%BA%E7%AB%99/"/>
    
    <category term="Nginx" scheme="https://r2wind.cn/tags/Nginx/"/>
    
  </entry>
  
  <entry>
    <title>利用 Nginx 搭建 IP 查询接口</title>
    <link href="https://r2wind.cn/articles/20230508.html"/>
    <id>https://r2wind.cn/articles/20230508.html</id>
    <published>2023-05-08T13:27:04.000Z</published>
    <updated>2023-05-08T15:03:04.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文将介绍如何利用纯 Nginx 搭建 IP 地址查询接口（只查询 IP 地址，不查询 IP 归属地），如果有查询 IP 归属地的需求，可以参考另一位大佬的一篇文章 <a href="https://www.rehiy.com/post/467/">纯 Nginx 打造 IP 地址查询接口</a>。</p></blockquote><blockquote><p>好久不见，这两个月由于一些原因（考试、面试）一直没有更新博客，今天终于有时间了，就赶忙来更新。用 Nginx 来获取 IP 这个方法是去年 8 月份在处理DDNS Openwrt 插件无法更新 IP 的 case 时了解到的，当时插件里获取 IP 的接口 ns1.dnspod.net:6666 由于是早些年写的一个程序仅支持 http&#x2F;0.9 导致 DDNS 插件无法正常获取 IP 地址，后面一位大佬改用 Nginx 来获取 IP 地址，那次才知道 Nginx 原来还能这么用，简直是学艺不精哈哈哈。</p></blockquote><blockquote><p>安装 Nginx 的方法就不介绍了，直接丢配置文件了。</p></blockquote><blockquote><p>文末有现成的，如果你不想自己搭建的话可以直接使用。</p></blockquote><h2 id="配置示例"><a href="#配置示例" class="headerlink" title="配置示例"></a>配置示例</h2><h3 id="获取-IP-JSON"><a href="#获取-IP-JSON" class="headerlink" title="获取 IP(JSON)"></a>获取 IP(JSON)</h3><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">server</span> &#123;</span><br><span class="line">       <span class="attribute">listen</span> <span class="number">80</span>;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">80</span>;</span><br><span class="line"></span><br><span class="line">       <span class="attribute">listen</span> <span class="number">443</span> ssl http2;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">443</span> ssl http2;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用以支持 HTTP/3，若所用 Nginx 版本支持 HTTP/3，可去掉注释</span></span><br><span class="line">       <span class="comment"># listen 443 http3;</span></span><br><span class="line">       <span class="comment"># listen [::]:443 http3;</span></span><br><span class="line"></span><br><span class="line">       <span class="attribute">server_name</span> ipv4.ddnsip.cn ipv6.ddnsip.cn ddnsip.cn;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用以支持 HTTP/3，若所用 Nginx 版本支持 HTTP/3，可去掉注释</span></span><br><span class="line">       <span class="comment"># add_header Alt-Svc &#x27;h3=&quot;:443&quot;; ma=86400&#x27;;</span></span><br><span class="line"></span><br><span class="line">       <span class="comment"># HSTS</span></span><br><span class="line">       <span class="attribute">add_header</span> Strict-Transport-Security <span class="string">&quot;max-age=63072000; includeSubdomains; preload&quot;</span>;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 允许跨域（在其他站点调用接口会用到）</span></span><br><span class="line">       <span class="attribute">add_header</span> Access-Control-Allow-Origin *;</span><br><span class="line">       <span class="attribute">add_header</span> Access-Control-Allow-Headers <span class="string">&quot;Origin, X-Requested-With, Content-Type, Accept&quot;</span>;</span><br><span class="line">       <span class="attribute">add_header</span> Access-Control-Allow-Methods <span class="string">&quot;GET, POST, OPTIONS&quot;</span>;</span><br><span class="line">       </span><br><span class="line">       <span class="comment"># 获取 IP 地址</span></span><br><span class="line">       <span class="section">location</span> / &#123;</span><br><span class="line">           <span class="attribute">default_type</span> application/json;</span><br><span class="line">           <span class="attribute">return</span> <span class="number">200</span> <span class="string">&#x27;&#123;&quot;ip&quot;:&quot;<span class="variable">$remote_addr</span>&quot;&#125;&#x27;</span>;</span><br><span class="line">           <span class="comment"># 若使用 CDN 请将$remote_addr改为$http_x_forwarded_for</span></span><br><span class="line">         &#125;</span><br><span class="line">      </span><br><span class="line">       <span class="comment"># 证书配置</span></span><br><span class="line">       <span class="attribute">ssl_certificate</span> /root/.acme.sh/<span class="regexp">*.ddnsip.cn</span>/fullchain.cer; </span><br><span class="line">       <span class="attribute">ssl_certificate_key</span> /root/.acme.sh/<span class="regexp">*.ddnsip.cn</span>/<span class="regexp">*.ddnsip.cn.key</span>;</span><br><span class="line">       <span class="attribute">ssl_session_timeout</span> <span class="number">5m</span>;</span><br><span class="line">       <span class="attribute">ssl_protocols</span> TLSv1.<span class="number">1</span> TLSv1.<span class="number">2</span> TLSv1.<span class="number">3</span>; </span><br><span class="line">       <span class="attribute">ssl_ciphers</span> ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; </span><br><span class="line">       <span class="attribute">ssl_prefer_server_ciphers</span> <span class="literal">on</span>;</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><h3 id="获取-IP-纯文本"><a href="#获取-IP-纯文本" class="headerlink" title="获取 IP(纯文本)"></a>获取 IP(纯文本)</h3><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">server</span> &#123;</span><br><span class="line">       <span class="attribute">listen</span> <span class="number">80</span>;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">80</span>;</span><br><span class="line"></span><br><span class="line">       <span class="attribute">listen</span> <span class="number">443</span> ssl http2;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">443</span> ssl http2;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用以支持 HTTP/3，若所用 Nginx 版本支持 HTTP/3，可去掉注释</span></span><br><span class="line">       <span class="comment"># listen 443 http3;</span></span><br><span class="line">       <span class="comment"># listen [::]:443 http3;</span></span><br><span class="line"></span><br><span class="line">       <span class="attribute">server_name</span> ipv4.ddnsip.cn ipv6.ddnsip.cn ddnsip.cn;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用以支持 HTTP/3，若所用 Nginx 版本支持 HTTP/3，可去掉注释</span></span><br><span class="line">       <span class="comment"># add_header Alt-Svc &#x27;h3=&quot;:443&quot;; ma=86400&#x27;;</span></span><br><span class="line"></span><br><span class="line">       <span class="comment"># HSTS</span></span><br><span class="line">       <span class="attribute">add_header</span> Strict-Transport-Security <span class="string">&quot;max-age=63072000; includeSubdomains; preload&quot;</span>;</span><br><span class="line">       </span><br><span class="line">       <span class="comment"># 获取 IP 地址</span></span><br><span class="line">       <span class="section">location</span> / &#123;</span><br><span class="line">           <span class="attribute">default_type</span> text/plain;</span><br><span class="line">           <span class="attribute">return</span> <span class="number">200</span> <span class="variable">$remote_addr</span>;</span><br><span class="line">           <span class="comment"># 若使用 CDN 请将$remote_addr改为$http_x_forwarded_for</span></span><br><span class="line">         &#125;</span><br><span class="line">      </span><br><span class="line">       <span class="comment"># 证书配置</span></span><br><span class="line">       <span class="attribute">ssl_certificate</span> /root/.acme.sh/<span class="regexp">*.ddnsip.cn</span>/fullchain.cer; </span><br><span class="line">       <span class="attribute">ssl_certificate_key</span> /root/.acme.sh/<span class="regexp">*.ddnsip.cn</span>/<span class="regexp">*.ddnsip.cn.key</span>;</span><br><span class="line">       <span class="attribute">ssl_session_timeout</span> <span class="number">5m</span>;</span><br><span class="line">       <span class="attribute">ssl_protocols</span> TLSv1.<span class="number">1</span> TLSv1.<span class="number">2</span> TLSv1.<span class="number">3</span>; </span><br><span class="line">       <span class="attribute">ssl_ciphers</span> ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; </span><br><span class="line">       <span class="attribute">ssl_prefer_server_ciphers</span> <span class="literal">on</span>;</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><h3 id="获取-UA"><a href="#获取-UA" class="headerlink" title="获取 UA"></a>获取 UA</h3><p>这是额外的内容，闲的没事写的</p><figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">server</span> &#123;</span><br><span class="line">       <span class="attribute">listen</span> <span class="number">80</span>;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">80</span>;</span><br><span class="line"></span><br><span class="line">       <span class="attribute">listen</span> <span class="number">443</span> ssl http2;</span><br><span class="line">       <span class="attribute">listen</span> [::]:<span class="number">443</span> ssl http2;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用以支持 HTTP/3，若所用 Nginx 版本支持 HTTP/3，可去掉注释</span></span><br><span class="line">       <span class="comment"># listen 443 http3;</span></span><br><span class="line">       <span class="comment"># listen [::]:443 http3;</span></span><br><span class="line"></span><br><span class="line">       <span class="attribute">server_name</span> ipv4.ddnsip.cn ipv6.ddnsip.cn ddnsip.cn;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 用以支持 HTTP/3，若所用 Nginx 版本支持 HTTP/3，可去掉注释</span></span><br><span class="line">       <span class="comment"># add_header Alt-Svc &#x27;h3=&quot;:443&quot;; ma=86400&#x27;;</span></span><br><span class="line"></span><br><span class="line">       <span class="comment"># HSTS</span></span><br><span class="line">       <span class="attribute">add_header</span> Strict-Transport-Security <span class="string">&quot;max-age=63072000; includeSubdomains; preload&quot;</span>;</span><br><span class="line">       </span><br><span class="line">       <span class="comment"># 获取 UA（纯文本格式，想要 JSON 格式请用注释掉的代码）</span></span><br><span class="line">       <span class="section">location</span> / &#123;</span><br><span class="line">           <span class="attribute">default_type</span> text/plain;</span><br><span class="line">           <span class="attribute">return</span> <span class="number">200</span> <span class="variable">$http_user_agent</span>;</span><br><span class="line">         &#125;</span><br><span class="line"></span><br><span class="line">       <span class="comment"># 获取 UA（JSON 格式）</span></span><br><span class="line">       <span class="comment"># location / &#123;</span></span><br><span class="line">       <span class="comment">#     default_type application/json;</span></span><br><span class="line">       <span class="comment">#     return 200 &#x27;&#123;&quot;ua&quot;:&quot;$http_user_agent&quot;&#125;&#x27;;</span></span><br><span class="line">       <span class="comment">#   &#125;</span></span><br><span class="line"></span><br><span class="line">       <span class="comment"># SSL 配置</span></span><br><span class="line">       <span class="attribute">ssl_certificate</span> /root/.acme.sh/<span class="regexp">*.ddnsip.cn</span>/fullchain.cer; </span><br><span class="line">       <span class="attribute">ssl_certificate_key</span> /root/.acme.sh/<span class="regexp">*.ddnsip.cn</span>/<span class="regexp">*.ddnsip.cn.key</span>;</span><br><span class="line">       <span class="attribute">ssl_session_timeout</span> <span class="number">5m</span>;</span><br><span class="line">       <span class="attribute">ssl_protocols</span> TLSv1.<span class="number">1</span> TLSv1.<span class="number">2</span> TLSv1.<span class="number">3</span>; </span><br><span class="line">       <span class="attribute">ssl_ciphers</span> ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; </span><br><span class="line">       <span class="attribute">ssl_prefer_server_ciphers</span> <span class="literal">on</span>;</span><br><span class="line">    &#125;</span><br></pre></td></tr></table></figure><h3 id="附言"><a href="#附言" class="headerlink" title="附言"></a>附言</h3><p>看着很复杂是不是，是不是懒得写（&#x2F;手动狗头，没关系，这有现成的<br>UA: <a href="https://ua.ddnsip.cn/">https://ua.ddnsip.cn</a> 或 <a href="https://ddnsip.cn/ua">https://ddnsip.cn/ua</a> (JSON)<br>IP: <a href="https://ddnsip.cn/">https://ddnsip.cn</a> 或 <a href="https://ddnsip.cn/json">https://ddnsip.cn/json</a><br>IPv4: <a href="https://ipv4.ddnsip.cn/">https://ipv4.ddnsip.cn</a> 或 <a href="https://ddnsip.cn/json">https://ddnsip.cn/json</a><br>IPv6: <a href="https://ipv6.ddnsip.cn/">https://ipv6.ddnsip.cn</a> 或 <a href="https://ipv6.ddnsip.cn/json">https://ipv6.ddnsip.cn/json</a></p><p>Linux下使用直接看下面链接里的说明：<br><a href="https://www.ddnsip.cn/">https://www.ddnsip.cn</a></p><p>闲的没事搞了个查IP归属的（不保证稳定和准确）：<br><a href="https://ip.ddnsip.cn/">https://ip.ddnsip.cn/</a></p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;本文将介绍如何利用纯 Nginx 搭建 IP 地址查询接口（只查询 IP 地址，不查询 IP 归属地），如果有查询 IP 归属地的需求，可以参考另一位大佬的一篇文章 &lt;a href=&quot;https://www.rehiy.com/post/467/&quot;</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="建站" scheme="https://r2wind.cn/tags/%E5%BB%BA%E7%AB%99/"/>
    
    <category term="Nginx" scheme="https://r2wind.cn/tags/Nginx/"/>
    
  </entry>
  
  <entry>
    <title>腾讯云建站 CloudPages 记录（编辑网站）</title>
    <link href="https://r2wind.cn/articles/20230227.html"/>
    <id>https://r2wind.cn/articles/20230227.html</id>
    <published>2023-02-27T02:35:33.000Z</published>
    <updated>2023-02-27T02:35:33.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>这是一篇编辑网站操作记录，完整的流程请参考 <a href="https://cloud.tencent.com/developer/article/2229893">腾讯云建站 CloudPages 快速构建您的企业网站</a>，等有时间再录个视频哈哈哈哈。</p></blockquote><h2 id="操作记录"><a href="#操作记录" class="headerlink" title="操作记录"></a>操作记录</h2><h3 id="清空全部页面和区块"><a href="#清空全部页面和区块" class="headerlink" title="清空全部页面和区块"></a>清空全部页面和区块</h3><p>由于没有适合笔者的模板，所以笔者选择了清空全部页面和区块，然后自己从头开始搭建。<br><img src="https://resources.r2wind.cn/img/202302/20230227150447.png" alt="清空全部页面和区块"></p><blockquote><p>各种删删删，清空为止~</p></blockquote><h3 id="添加区块修改内容"><a href="#添加区块修改内容" class="headerlink" title="添加区块修改内容"></a>添加区块修改内容</h3><h3 id="编辑导航栏"><a href="#编辑导航栏" class="headerlink" title="编辑导航栏"></a>编辑导航栏</h3><p>更改logo，网站名称，以及导航栏的菜单。<br><img src="https://resources.r2wind.cn/img/202302/20230227154019.png" alt="编辑导航栏"></p><h3 id="添加banner区块"><a href="#添加banner区块" class="headerlink" title="添加banner区块"></a>添加banner区块</h3><p>页面总要有一个头图，要不总感觉哪里怪怪的，所以我们添加一个 banner 区块，然后替换内容即可。</p><p>点击添加区块，选择图文通栏，并根据自己的需要选择合适的版式：<br><img src="https://resources.r2wind.cn/img/202302/20230227154659.png" alt="添加banner区块"></p><p>添加完成后根据自己的需要修改区块内容及样式：<br><img src="https://resources.r2wind.cn/img/202302/20230227160219.png" alt="修改banner区块"></p><h3 id="添加介绍区块"><a href="#添加介绍区块" class="headerlink" title="添加介绍区块"></a>添加介绍区块</h3><p>设置为 Banner 之后就可以添加各种版块用于介绍了，没有什么特别的限制，根据自己的需要来。<br>我选了一个功能特性的区块：<br><img src="https://resources.r2wind.cn/img/202302/20230227161412.png" alt="添加介绍区块"></p><p>然后编辑区块内容：<br><img src="https://resources.r2wind.cn/img/202302/20230227163447.png" alt="编辑介绍区块"></p><h3 id="编辑页尾"><a href="#编辑页尾" class="headerlink" title="编辑页尾"></a>编辑页尾</h3><p>添加完介绍区块之后我们就需要开始编辑页尾了，页尾的内容可以根据自己的需要来，我这里简单的设置一下联系方式等<br><img src="https://resources.r2wind.cn/img/202302/20230227182022.png" alt="编辑页尾"></p><h3 id="添加页面"><a href="#添加页面" class="headerlink" title="添加页面"></a>添加页面</h3><p>一般来说一个页面肯定不够用的，所以我们要额外添加下，添加页面的话就比较简单了，直接点击添加页面，然后根据自己的需要添加即可，这里我添加了一个页面用作表单：<br><img src="https://resources.r2wind.cn/img/202302/20230227182022.png" alt="添加页面"></p><p>根据自己需要设置下页面的标题，和路径，尤其是路径，不建议系统默认的：<br><img src="https://resources.r2wind.cn/img/202302/20230227192235.png" alt="设置页面"></p><p>添加完之后我们重复刚刚的步骤，先设置好banner，然后添加表单区块：<br><img src="https://resources.r2wind.cn/img/202302/20230227193647.png" alt="添加表单区块"></p><p>表单的样式看起来都一样，所以选哪个区别其实都不大了，添加完成后根据我们自己需要设置相关问题：<br><img src="https://resources.r2wind.cn/img/202302/20230227195639.png" alt="设置表单区块"></p><blockquote><p>到此笔者搞完了自己的站点，大概需要了一个半小时，大家实际搭建的时候好多内容并不是现成的，所以耗时可能会更长，一定要有耐心哦~</p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;这是一篇编辑网站操作记录，完整的流程请参考 &lt;a href=&quot;https://cloud.tencent.com/developer/article/2229893&quot;&gt;腾讯云建站 CloudPages 快速构建您的企业网站&lt;/a&gt;，等有时间再录个视</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="DNSPod" scheme="https://r2wind.cn/tags/DNSPod/"/>
    
    <category term="腾讯云" scheme="https://r2wind.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91/"/>
    
    <category term="腾讯云建站 CloudPages" scheme="https://r2wind.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91%E5%BB%BA%E7%AB%99-CloudPages/"/>
    
  </entry>
  
  <entry>
    <title>如何打造个性化的 DNS 服务器地址（用自己的域名作为 DNS 服务器地址）</title>
    <link href="https://r2wind.cn/articles/20230208.html"/>
    <id>https://r2wind.cn/articles/20230208.html</id>
    <published>2023-02-08T12:45:00.000Z</published>
    <updated>2025-12-14T10:55:24.047Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>分类写成教程了，其实就是闲谈，平时我们如果注意观察的话就会发现挺多大厂域名的 DNS 都比较有个性，比如 qq.com 这个域名的 DNS 服务器为NS1.QQ.COM——NS4.QQ.COM，而我们自己的 DNS 服务器基本上就是千篇一律的f1g1ns1.dnspod.net&#x2F;xxx.dnspod.net&#x2F;dns(1-32).hichina.com&#x2F;ns(1-8).alidns.com等等，那如何用自己的域名做域名 DNS 服务器地址让我们的域名服务器看起来更个性化一些呢？答案就是贴牌（当然有能力你也可以自建）。<br>所谓贴牌 DNS 就是使用解析厂商提供的解析服务，但是 DNS 服务器的域名，替换成你自己的，这个东西叫法比较多，包括像：贴牌 DNS&#x2F;Vanity Nameservers&#x2F;DNS Branding&#x2F;Custom Nameservers&#x2F;white-label name servers 等等，我比较喜欢 Vanity Nameservers 这个名称，直译过来就是“虚荣的域名服务器”，满足自己的虚荣心哈哈哈（开个玩笑），这东西对一般人来说其实没啥用，不过如果你是域名代理商、云厂商这种不想自建 DNS 服务又想给用户提供解析搞个还是可以的，当然如果你有能力自建 DNS 服务的话，那就更好了。</p></blockquote><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>域名：这个域名什么后缀都可以，但注册商必须支持添加 DNS host(Glue record)，国内我尝试过的有腾讯云和阿里，其他厂商不太清楚（厂商基本上都有这个能力，但是能不能自助注册就是另一个问题了），国外的话大多数都支持。</li><li>解析服务商：不需要看厂商本身是否支持贴牌 DNS，但解析厂商需要满足以下条件：第一点，支持设置 SOA 和 NS 记录（首先可以排除 DNSPod、Azure dns 和阿里云，甚至国内大部分的域名解析服务商了），第二点，不指向这个厂商的 DNS 服务器厂商不会把你解析停了的。满足上面那两个条件的国内好像太少了（之前有华为云），国外的话还是挺多的，比如CloudNS、Route53、NS1、GCP DNS等等，当然除了这些还有很多其他的厂商也支持，这里就不过多赘述了。</li></ul><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><blockquote><p>本来想以华为云为例写个详细教程来着，写教程的时候发现华为云不支持设置 SOA 了，既然这样就只写流程吧。</p></blockquote><h3 id="找解析服务商"><a href="#找解析服务商" class="headerlink" title="找解析服务商"></a>找解析服务商</h3><p>按照上面的条件找一家解析服务商：</p><ol><li>支持设置 SOA 和 NS 记录<br>满足这两个条件的国内厂商基本没有了，像阿里云、腾讯云 DNSPod、华为云 都仅支持设置 NS 记录，不支持设置 SOA（不支持设置SOA好像也没啥大问题），其中腾讯云设置 NS 记录还要通过 API，不能直接操作，建议大家去国外找找，大多数都支持，我个人用的是cloudNS。</li><li>不指向这个厂商的 DNS 服务器厂商不会把你解析停了的<br>比如腾讯云 DNSPod 免费版，长时间不指向它给的 DNS 服务器就会暂停解析，我们打造自己品牌的名称服务器肯定不会指向他们的，那这种就不行了。</li></ol><h3 id="在解析服务商添加域名"><a href="#在解析服务商添加域名" class="headerlink" title="在解析服务商添加域名"></a>在解析服务商添加域名</h3><p>把域名添加到你选择的解析服务商的平台，并记录解析服务商给你分配的 DNS 服务器地址，比如谷歌提供给笔者的是ns-cloud-c1.googledomains.com,ns-cloud-c2.googledomains.com,ns-cloud-c3.googledomains.com,ns-cloud-c4.googledomains.com。</p><h3 id="获取服务商提供的-DNS-服务器对应的-IP-地址"><a href="#获取服务商提供的-DNS-服务器对应的-IP-地址" class="headerlink" title="获取服务商提供的 DNS 服务器对应的 IP 地址"></a>获取服务商提供的 DNS 服务器对应的 IP 地址</h3><p>这里我们需要获取服务商提供的 DNS 服务器对应的 IP 地址，刚刚已经让大家记录了原来的 NS 记录，现在我们需要获取服务商提供的 DNS 服务器对应的 IP 地址，比如上面 Google Cloud DNS 提供给笔者的是ns-cloud-c1.googledomains.com,ns-cloud-c2.googledomains.com,ns-cloud-c3.googledomains.com,ns-cloud-c4.googledomains.com，那么我们需要获取这四个 DNS 服务器对应的 IP 地址，这里我们可以使用 nslookup 命令来获取，举个例子:</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line">rttw@Kincaid:~$ nslookup ns-cloud-c1.googledomains.com</span><br><span class="line">Server:         192.168.160.1</span><br><span class="line">Address:        192.168.160.1#53</span><br><span class="line"></span><br><span class="line">Non-authoritative answer:</span><br><span class="line">Name:   ns-cloud-c1.googledomains.com</span><br><span class="line">Address: 216.239.32.108</span><br><span class="line">Name:   ns-cloud-c1.googledomains.com</span><br><span class="line">Address: 2001:4860:4802:32::6c</span><br><span class="line"></span><br><span class="line">rttw@Kincaid:~$ nslookup ns-cloud-c2.googledomains.com</span><br><span class="line">Server:         192.168.160.1</span><br><span class="line">Address:        192.168.160.1#53</span><br><span class="line"></span><br><span class="line">Non-authoritative answer:</span><br><span class="line">Name:   ns-cloud-c2.googledomains.com</span><br><span class="line">Address: 216.239.34.108</span><br><span class="line">Name:   ns-cloud-c2.googledomains.com</span><br><span class="line">Address: 2001:4860:4802:34::6c</span><br></pre></td></tr></table></figure><h3 id="前往域名注册商添加-DNS-host（Glue-Record）"><a href="#前往域名注册商添加-DNS-host（Glue-Record）" class="headerlink" title="前往域名注册商添加 DNS host（Glue Record）"></a>前往域名注册商添加 DNS host（Glue Record）</h3><p>我们刚刚已经获取了服务商提供的 DNS 服务器对应的 IP 地址，现在我们用这些 IP 地址来添加 DNS host（Glue Record）：<br>添加 DNS host（Glue Record）的方法这里不在介绍，大家自己去看对应的域名注册商的文档吧，下面是腾讯云和阿里云的添加文档：<br>腾讯云： <a href="https://cloud.tencent.com/document/product/242/54158">https://cloud.tencent.com/document/product/242/54158</a><br>阿里云： <a href="https://help.aliyun.com/document_detail/59949.html">https://help.aliyun.com/document_detail/59949.html</a><br>示例图片：<br><img src="https://resources.r2wind.cn/img/202302/20230208200842.png" alt="添加 DNS Host"></p><p><strong>注意：最少要有两组 DNS 服务器，比如笔者想用的是 ns1.vanitydns.com和ns2.vanitydns.com，把上面获取到的 IP 地址平分到这两组 DNS host 即可。</strong></p><blockquote><p>图文里的域名和 IP 不符，大家不用在意，只是举个例子</p></blockquote><h3 id="前往解析服务商为名称服务器添加-A-和-AAAA-记录"><a href="#前往解析服务商为名称服务器添加-A-和-AAAA-记录" class="headerlink" title="前往解析服务商为名称服务器添加 A 和 AAAA 记录"></a>前往解析服务商为名称服务器添加 A 和 AAAA 记录</h3><p>这里我们需要前往解析服务商为名称服务器添加 A 和 AAAA 记录，比如笔者的是 ns1.vanitydns.com和ns2.vanitydns.com，那么我们需要前往解析服务商为这两个名称服务器添加 A 和 AAAA 记录指向 DNS 服务器 IP 地址，注意这里指向 DNS 服务器 IP 地址设置的要和前面添加 DNS host（Glue Record）的 IP 地址一致，比如笔者设置 DNS host 时：<br>ns1.vanitydns.com 指向 1.12.34.55,1.12.34.56,2402:4e00::1<br>ns2.vanitydns.com 指向 1.23.34.57,1.12.34.58,2402:4e00::2<br>那在去解析服务商为这两个名称服务器添加 A 和 AAAA 记录，和上面 host 保持一致：<br>ns1.vanitydns.com. 3600 IN A 1.12.34.55<br>ns1.vanitydns.com. 3600 IN A 1.12.34.56<br>ns1.vanitydns.com. 3600 IN AAAA 2402:4e00::1<br>ns2.vanitydns.com. 3600 IN A 1.23.34.57<br>ns2.vanitydns.com. 3600 IN A 1.23.34.58<br>ns2.vanitydns.com. 3600 IN AAAA 2402:4e00::2</p><h3 id="修改-NS-和-SOA-记录"><a href="#修改-NS-和-SOA-记录" class="headerlink" title="修改 NS 和 SOA 记录"></a>修改 NS 和 SOA 记录</h3><p>添加完解析后在解析服务商修改 NS 和 SOA 记录，NS 记录指向的是你自定义名称服务器，比如笔者的是NS1.VANITYDNS.COM和NS2.VANITYDNS.COM，那就把 NS 记录的值改成这两个，注意 TTL 尽量设置的长一点，比如 3600-86400，SOA 记录主要注意修改主 NS 服务器和邮箱地址，其他的可以不用管，比如笔者的是：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">vanitydns.com. 300 IN SOA ns1.vanitydns.com. admin.vanitydns.com. 2023020601 3600 180 1209600 300</span><br></pre></td></tr></table></figure><p>其中 300 是 TTL，ns1.vanitydns.com 是主 NS 服务器，admin.vanitydns.com 是邮箱地址，2023020601 是序列号，3600 是刷新时间，180 是重试时间，1209600 是过期时间，300 是最小 TTL。需要修改的也仅有主 NS 服务器和邮箱地址，其他的可以不用管。<br>听起来可能有点难懂，放个修改示例的截图吧：<br>这是笔者用的 cloudNS，修改示例：<br><img src="https://resources.r2wind.cn/img/202302/20230208172725.png" alt="修改示例1"></p><p>这是Google Cloud DNS，修改示例：<br><img src="https://resources.r2wind.cn/img/202302/20230208173058.png" alt="修改示例2"></p><blockquote><p>PS:在 DNS 记录中，邮箱地址中的 @ 符号需要用 . 代替。是不是有同学还想问主名称服务器是啥，假如你想自定义的 NS 是 ns1.vanitydns.com 和 ns2.vanitydns.com，那么 ns1.vanitydns.com 就是主名称服务器，ns2.vanitydns.com 就是备用名称服务器。（懂得自然懂，不懂照做就行）</p></blockquote><h3 id="修改域名-DNS-服务器"><a href="#修改域名-DNS-服务器" class="headerlink" title="修改域名 DNS 服务器"></a>修改域名 DNS 服务器</h3><p>完成上面的所有步骤后你就可以修改域名的 DNS 服务器地址为你自己的了，具体如何修改请参考你的域名服务商的帮助文档。<br><em><strong>修改完成后就可以看效果了：</strong></em></p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line">rttw@Kincaid:~$ whois vanitydns.com</span><br><span class="line">   Domain Name: VANITYDNS.COM</span><br><span class="line">   Registry Domain ID: 2754575975_DOMAIN_COM-VRSN</span><br><span class="line">   Registrar WHOIS Server: whois.google.com</span><br><span class="line">   Registrar URL: http://domains.google.com</span><br><span class="line">   Updated Date: 2023-01-29T07:52:29Z</span><br><span class="line">   Creation Date: 2023-01-29T00:16:12Z</span><br><span class="line">   Registry Expiry Date: 2024-01-29T00:16:12Z</span><br><span class="line">   Registrar: Google LLC</span><br><span class="line">   Registrar IANA ID: 895</span><br><span class="line">   Registrar Abuse Contact Email: registrar-abuse@google.com</span><br><span class="line">   Registrar Abuse Contact Phone: +1.8772376466</span><br><span class="line">   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited</span><br><span class="line">   Name Server: NS1.VANITYDNS.COM</span><br><span class="line">   Name Server: NS2.VANITYDNS.COM</span><br><span class="line">   DNSSEC: signedDelegation</span><br><span class="line">   DNSSEC DS Data: 49548 13 2 D6D5E60B35B2F10CA1052FAA6045E0BC0B201D46547AC3ED1DF5FC9A797BAD0A</span><br><span class="line">   URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/</span><br><span class="line">&gt;&gt;&gt; Last update of whois database: 2023-02-08T12:31:14Z &lt;&lt;&lt;</span><br></pre></td></tr></table></figure><h2 id="常见问题"><a href="#常见问题" class="headerlink" title="常见问题"></a>常见问题</h2><ol><li>看完之后感觉有点懵？<br>确实，这文章写的有点不适合小白，遇到任何问题发邮件或者前往<a href="https://github.com/KincaidYang/r2w-cn"> GitHub 仓库</a>提 issue 都可以。</li><li>更改 DNS 服务器失败？<br>看起来大概是下面这样，如果你是腾讯云注册的域名，可在腾讯云域名控制台找到“技术交流群”点击扫码加群寻求帮助，其他域名服务商可以给笔者发邮件或者前往 <a href="https://github.com/KincaidYang/r2w-cn">Github 仓库</a>提 issue。<br><img src="https://resources.r2wind.cn/img/202302/20230208203817.png" alt="修改失败"></li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;分类写成教程了，其实就是闲谈，平时我们如果注意观察的话就会发现挺多大厂域名的 DNS 都比较有个性，比如 qq.com 这个域名的 DNS 服务器为NS1.QQ.COM——NS4.QQ.COM，而我们自己的 DNS 服务器基本上就是千篇一律的f1g</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="域名" scheme="https://r2wind.cn/tags/%E5%9F%9F%E5%90%8D/"/>
    
    <category term="解析" scheme="https://r2wind.cn/tags/%E8%A7%A3%E6%9E%90/"/>
    
  </entry>
  
  <entry>
    <title>使用华为云 DNS 拉平 CNAME 记录（CDN 场景）</title>
    <link href="https://r2wind.cn/articles/20230109.html"/>
    <id>https://r2wind.cn/articles/20230109.html</id>
    <published>2023-01-09T04:29:50.000Z</published>
    <updated>2023-05-10T12:29:50.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>接上一篇文章<a href="https://r2wind.cn/articles/20230108.html">使用 DNSPod 拉平 CNAME 记录（CDN 场景）</a>这篇文章将介绍如何使用华为云 DNS 拉平 CNAME 记录（CDN 场景）。</p></blockquote><h2 id="操作场景"><a href="#操作场景" class="headerlink" title="操作场景"></a>操作场景</h2><p>本文将指导您如何使用华为云 DNS 的 API 实现拉平 CNAME 记录，以解决相关记录冲突的问题。</p><h2 id="方法说明"><a href="#方法说明" class="headerlink" title="方法说明"></a>方法说明</h2><p>不再重复说明了，如有兴趣请看<a href="https://r2wind.cn/articles/20230108.html#%E6%96%B9%E6%B3%95%E8%AF%B4%E6%98%8E">使用 DNSPod 拉平 CNAME 记录（CDN 场景）</a></p><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>域名解析托管在华为云 DNS</li></ul><h2 id="项目地址"><a href="#项目地址" class="headerlink" title="项目地址"></a>项目地址</h2><p><a href="https://github.com/KincaidYang/CNAMEFlattening">https://github.com/KincaidYang/CNAMEFlattening</a></p><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><h3 id="获取脚本"><a href="#获取脚本" class="headerlink" title="获取脚本"></a>获取脚本</h3><h4 id="Flame-版本"><a href="#Flame-版本" class="headerlink" title="Flame 版本"></a>Flame 版本</h4><p>该版本适用于腾讯云 CDN、华为云 CDN<br>IPv4 脚本：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.r2wind.cn/script/CNAMEFlattening/HuaweiCloud/Flame/Huaweicloud-Flame-IPv4.py</span><br></pre></td></tr></table></figure><p>IPv6 脚本：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.r2wind.cn/script/CNAMEFlattening/HuaweiCloud/Flame/Huaweicloud-Flame-IPv6.py</span><br></pre></td></tr></table></figure><h4 id="Frost-版本"><a href="#Frost-版本" class="headerlink" title="Frost 版本"></a>Frost 版本</h4><p>该版本适用于腾讯云 EdgeOne、阿里云 CDN、天翼云 CDN<br>IPv4 脚本：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.r2wind.cn/script/CNAMEFlattening/HuaweiCloud/Frost/Huaweicloud-Frost-IPv4.py</span><br></pre></td></tr></table></figure><p>IPv6 脚本：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.r2wind.cn/script/CNAMEFlattening/HuaweiCloud/Frost/Huaweicloud-Frost-IPv6.py</span><br></pre></td></tr></table></figure><h4 id="使用-git-clone-命令下载脚本"><a href="#使用-git-clone-命令下载脚本" class="headerlink" title="使用 git clone 命令下载脚本"></a>使用 git clone 命令下载脚本</h4><p>使用 git clone 命令：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> https://github.com/KincaidYang/CNAMEFlattening.git</span><br></pre></td></tr></table></figure><h3 id="配置变量"><a href="#配置变量" class="headerlink" title="配置变量"></a>配置变量</h3><p>打开脚本，根据脚本提示修改如下变量。</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 配置参数</span></span><br><span class="line"><span class="comment"># domanin替换为自己的域名,如&#x27;example.com&#x27;或&#x27;example.cn&#x27;</span></span><br><span class="line">domain=<span class="string">&#x27;&#x27;</span></span><br><span class="line"><span class="comment"># sub_domain替换为自己的主机记录或域名前缀，如&#x27;www&#x27;或&#x27;dl&#x27;如果是根域名则写&#x27;@&#x27;或留空</span></span><br><span class="line">subdomain=<span class="string">&#x27;&#x27;</span></span><br><span class="line"><span class="comment"># CDNCNAME请替换为CDN提供的CNAME地址,如&#x27;r2wind.cn.cdn.qcloudcdn.cn&#x27;或&#x27;r2wind.cn.cdn.dnsv1.com&#x27;</span></span><br><span class="line">CDNCNAME=<span class="string">&#x27;&#x27;</span></span><br><span class="line"><span class="comment"># ak请替换为自己的华为云Access Key Id，可前往https://console.huaweicloud.com/iam/?locale=zh-cn#/mine/accessKey 获取</span></span><br><span class="line">ak=<span class="string">&#x27;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#x27;</span></span><br><span class="line"><span class="comment"># sk请替换为自己的华为云Secret Access Key，可前往https://console.huaweicloud.com/iam/?locale=zh-cn#/mine/accessKey 获取</span></span><br><span class="line">sk=<span class="string">&#x27;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#x27;</span></span><br><span class="line"><span class="comment"># URL为 DNSPod DOH接口地址，用以获取CDN实时解析情况，可自行替换</span></span><br><span class="line">DoH=<span class="string">&#x27;https://1.12.12.12/resolve&#x27;</span></span><br><span class="line"><span class="comment"># 记录类型(&quot;A&quot;为IPv4，&quot;AAAA&quot;为IPv6)</span></span><br><span class="line">record_type=<span class="string">&#x27;A&#x27;</span></span><br><span class="line"><span class="comment"># ttl为解析记录生存时间，单位为秒，可自行修改</span></span><br><span class="line">TTL=<span class="number">120</span></span><br></pre></td></tr></table></figure><p>本站示例配置</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 配置参数</span></span><br><span class="line"><span class="comment"># domanin替换为自己的域名,如&#x27;example.com&#x27;或&#x27;example.cn&#x27;</span></span><br><span class="line">domain=<span class="string">&#x27;dnstest.work&#x27;</span></span><br><span class="line"><span class="comment"># sub_domain替换为自己的主机记录或域名前缀，如&#x27;www&#x27;或&#x27;dl&#x27;如果是根域名则写&#x27;@&#x27;或留空</span></span><br><span class="line">subdomain=<span class="string">&#x27;@&#x27;</span></span><br><span class="line"><span class="comment"># CDNCNAME请替换为CDN提供的CNAME地址,如&#x27;r2wind.cn.cdn.qcloudcdn.cn&#x27;或&#x27;r2wind.cn.cdn.dnsv1.com&#x27;</span></span><br><span class="line">CDNCNAME=<span class="string">&#x27;r2wind.cn.cdn.qcloudcdn.cn&#x27;</span></span><br><span class="line"><span class="comment"># ak请替换为自己的华为云Access Key Id，可前往https://console.huaweicloud.com/iam/?locale=zh-cn#/mine/accessKey 获取</span></span><br><span class="line">ak=<span class="string">&#x27;BHHDNAIOTBZGJZSU92ZE&#x27;</span></span><br><span class="line"><span class="comment"># sk请替换为自己的华为云Secret Access Key，可前往https://console.huaweicloud.com/iam/?locale=zh-cn#/mine/accessKey 获取</span></span><br><span class="line">sk=<span class="string">&#x27;HigvKrrmvasu8e8NpGXvdgTsd5xvV0txmL7ErVdk&#x27;</span></span><br><span class="line"><span class="comment"># URL为 DNSPod DOH接口地址，用以获取CDN实时解析情况，可自行替换</span></span><br><span class="line">DoH=<span class="string">&#x27;https://1.12.12.12/resolve&#x27;</span></span><br><span class="line"><span class="comment"># 记录类型(&quot;A&quot;为IPv4，&quot;AAAA&quot;为IPv6)</span></span><br><span class="line">record_type=<span class="string">&#x27;A&#x27;</span></span><br><span class="line"><span class="comment"># ttl为解析记录生存时间，单位为秒，可自行修改</span></span><br><span class="line">TTL=<span class="number">120</span></span><br></pre></td></tr></table></figure><blockquote><p>说明：<br>若觉得下方用于 ECS 协议的 IP 子网存在问题，可自行修改。</p></blockquote><h3 id="安装依赖"><a href="#安装依赖" class="headerlink" title="安装依赖"></a>安装依赖</h3><p>脚本使用 Python3（一般镜像都会预装 Python3）、requests 库、华为云DNS SDK 若未安装请执行以下命令安装。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># CentOS/RedHat:</span></span><br><span class="line">yum install python3</span><br><span class="line">pip3 install requests</span><br><span class="line">pip3 install huaweicloudsdkdns</span><br><span class="line"><span class="comment"># Debian/Ubuntu:</span></span><br><span class="line">apt install python3</span><br><span class="line">pip3 install requests</span><br><span class="line">pip3 install huaweicloudsdkdns</span><br></pre></td></tr></table></figure><blockquote><p>说明：<br>某些系统下可能需要将 pip3 替换为 pip。</p></blockquote><h3 id="导入记录"><a href="#导入记录" class="headerlink" title="导入记录"></a>导入记录</h3><p>使用前请您前往<a href="https://console.huaweicloud.com/dns/?locale=zh-cn#/dns/publiczones">华为云 DNS 控制台</a>添加或使用下方模板导入记录，否则脚本无法正常运行。</p><h4 id="下载记录模板"><a href="#下载记录模板" class="headerlink" title="下载记录模板"></a>下载记录模板</h4><p>IPv4模板：<a href="https://dl.r2wind.cn/template/HuaweicloudDNS-IPv4.xlsx">https://dl.r2wind.cn/template/HuaweicloudDNS-IPv4.xlsx</a><br>IPv6模板：<a href="https://dl.r2wind.cn/template/HuaweicloudDNS-IPv6.xlsx">https://dl.r2wind.cn/template/HuaweicloudDNS-IPv6.xlsx</a></p><blockquote><p>说明：<br>导入前请自行修改模板中的域名，模板中的域名为域名前缀，如’www’等，根域名请留空。<br>导入前请自行修改模板中的记录值为当前 CDN 节点 IP，否则会影响域名正常访问。（节点 IP 可以通过nslookup查询CDN CNAME地址获取）<br>若需要导入的记录已在控制台添加过，请删除原有记录后再导入。</p></blockquote><h4 id="导入记录-1"><a href="#导入记录-1" class="headerlink" title="导入记录"></a>导入记录</h4><ol><li>登录<a href="https://console.huaweicloud.com/dns/?locale=zh-cn#/dns/publiczones">华为云 DNS 控制台</a>。</li><li>点击对应的域名</li><li>切换到<strong>批量导入&#x2F;导出</strong>选项卡，点击<strong>批量导入</strong>上传模板</li><li>等待导入完成，请注意查看导入结果，若有导入失败的记录，查看原因修正后手动添加记录，不要重复导入。</li></ol><h3 id="调试脚本"><a href="#调试脚本" class="headerlink" title="调试脚本"></a>调试脚本</h3><p>请先在本地使用编辑器（如VScode）调试脚本，若调试成功则可继续部署。<br>若脚本正常运行，您将看到类似如下输出：</p><h3 id="部署脚本"><a href="#部署脚本" class="headerlink" title="部署脚本"></a>部署脚本</h3><h3 id="部署运行"><a href="#部署运行" class="headerlink" title="部署运行"></a>部署运行</h3><p>脚本使用 cron 定时运行，故您需要安装 cron。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># CentOS/RHEL</span></span><br><span class="line">yum install cronie</span><br><span class="line"><span class="comment"># Debian/Ubuntu</span></span><br><span class="line">apt install cron</span><br></pre></td></tr></table></figure><p>安装完成后，您需要编辑 crontab 文件，添加定时任务。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">crontab -e</span><br></pre></td></tr></table></figure><p>在 crontab 文件中添加如下内容：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">*/5 * * * * python3 /root/HuaweicloudDNSCDN-IPv4.py</span><br></pre></td></tr></table></figure><blockquote><p>说明：<br>本配置每 5 分钟运行一次，您可以根据需要自行修改。<br>请将 &#x2F;root&#x2F;DNSPodCDNv4.py 替换为您的脚本路径。<br>若您使用的是 IPv6 脚本，请将上述内容替换为 *&#x2F;5 * * * * python3 &#x2F;root&#x2F;HuaweicloudDNSCDN-IPv6.py</p></blockquote><h3 id="验证效果"><a href="#验证效果" class="headerlink" title="验证效果"></a>验证效果</h3><p>您可以在 <a href="https://console.huaweicloud.com/dns/?locale=zh-cn#/dns/publiczones">华为云 DNS 控制台</a>查看对应域名的相关记录，若记录值已经更新为 CDN 节点 IP，则说明脚本运行成功。</p><h2 id="问题反馈"><a href="#问题反馈" class="headerlink" title="问题反馈"></a>问题反馈</h2><p>若您在使用过程中遇到任何问题，欢迎您提交 <a href="https://github.com/KincaidYang/CNAMEFlattening/issues">Issue</a>。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;接上一篇文章&lt;a href=&quot;https://r2wind.cn/articles/20230108.html&quot;&gt;使用 DNSPod 拉平 CNAME 记录（CDN 场景）&lt;/a&gt;这篇文章将介绍如何使用华为云 DNS 拉平 CNAME 记录（CDN</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="域名" scheme="https://r2wind.cn/tags/%E5%9F%9F%E5%90%8D/"/>
    
    <category term="解析" scheme="https://r2wind.cn/tags/%E8%A7%A3%E6%9E%90/"/>
    
    <category term="作品集" scheme="https://r2wind.cn/tags/%E4%BD%9C%E5%93%81%E9%9B%86/"/>
    
    <category term="华为云" scheme="https://r2wind.cn/tags/%E5%8D%8E%E4%B8%BA%E4%BA%91/"/>
    
  </entry>
  
  <entry>
    <title>使用 DNSPod 拉平 CNAME 记录（CDN 场景）</title>
    <link href="https://r2wind.cn/articles/20230108.html"/>
    <id>https://r2wind.cn/articles/20230108.html</id>
    <published>2023-01-08T04:29:50.000Z</published>
    <updated>2023-05-10T12:29:50.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>由于 CNAME 跟任何记录都冲突的特性，在根域（@）下添加 CNAME 记录指向 CDN（或其他服务）会导致 mx（邮箱记录）、TXT（一些站长验证）、DS 等常用记录冲突等且多级 CNAME 会导致解析性能下降等问题，所以拉平是一个很不错的解决方案。但目前 DNSPod 并没有提供拉平的功能，所以需要自己写脚本调用 API 实现。（本文以腾讯云 CDN 为例，但是其他 CDN 服务商也可以使用，替换脚本里面的 CNAME 域名即可。）<br>PS：自2019年1月接触互联网行业以来一直在做运营相关的工作，本身也不是学计算机相关专业的，代码写的可能不是很好，欢迎大佬们指正。</p></blockquote><h2 id="操作场景"><a href="#操作场景" class="headerlink" title="操作场景"></a>操作场景</h2><p>本文将指导您如何使用 DNSPod 的 API 实现拉平 CNAME 记录，以解决相关记录冲突的问题。（以腾讯云 CDN 为例）</p><h2 id="前提条件"><a href="#前提条件" class="headerlink" title="前提条件"></a>前提条件</h2><ul><li>域名解析托管在腾讯云 DNSPod。</li><li>域名已绑定企业版或更高版本套餐。</li></ul><h2 id="方法说明"><a href="#方法说明" class="headerlink" title="方法说明"></a>方法说明</h2><h3 id="流程图"><a href="#流程图" class="headerlink" title="流程图"></a>流程图</h3><p><img src="https://resources.r2wind.cn/img/202301/DNSPodFlattening.png" alt="流程图"><br>实现的方法大体如上图所示，获取 CDN 在31个省份三大运营商的调度结果，然后将调度结果更新到 DNSPod 上。</p><h3 id="相关说明"><a href="#相关说明" class="headerlink" title="相关说明"></a>相关说明</h3><ul><li>因本人海外访问全部由 Cloudflare 提供服务，且由于服务 IP 基本固定，故本脚本中未考虑海外使用 CDN 的情况，如果 CDN 有海外节点，可以在脚本中自行添加海外 CDN 调度部分。</li><li>需要企业版或更高版本套餐的原因是因为从企业版开始才支持分省分运营商解析调度。（或许有时间写个华为云 DNS 的）</li><li>考虑 CDN 存在多级 CNAME 的情况，本脚本从 DoH 获取的调度结果第二个 “data” 才开始取值，由于 CDN 每次返回的 IP 数量不一，仅取两个 IP，能满足目前大部分 CDN 的情况，当然不排除有些 CDN 存在多级 CNAME 的情况，这种情况下需要自行修改脚本。</li><li>考虑到并非所有人都开启了 IPv6，故本脚本分为 IPv4 和 IPv6 两个版本，您可根据自身情况选择使用。</li></ul><h3 id="脚本"><a href="#脚本" class="headerlink" title="脚本"></a>脚本</h3><h4 id="项目地址"><a href="#项目地址" class="headerlink" title="项目地址"></a>项目地址</h4><p>GitHub 地址：<a href="https://github.com/KincaidYang/CNAMEFlattening">https://github.com/KincaidYang/CNAMEFlattening</a></p><h4 id="Flame-版本"><a href="#Flame-版本" class="headerlink" title="Flame 版本"></a>Flame 版本</h4><p>该版本适用于腾讯云 CDN、华为云 CDN<br>直接下载（IPv4 脚本）：<a href="https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Flame/DNSPod-Flame-IPv4.py">https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Flame/DNSPod-Flame-IPv4.py</a><br>直接下载（IPv6 脚本）：<a href="https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Flame/DNSPod-Flame-IPv6.py">https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Flame/DNSPod-Flame-IPv6.py</a></p><h4 id="Frost-版本"><a href="#Frost-版本" class="headerlink" title="Frost 版本"></a>Frost 版本</h4><p>该版本适用于腾讯云 EdgeOne、阿里云 CDN、天翼云 CDN<br>直接下载（IPv4 脚本）：<a href="https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Frost/DNSPod-Frost-IPv4.py">https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Frost/DNSPod-Frost-IPv4.py</a><br>直接下载（IPv6 脚本）：<a href="https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Frost/DNSPod-Frost-IPv6.py">https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Frost/DNSPod-Frost-IPv6.py</a></p><h2 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h2><h3 id="获取脚本"><a href="#获取脚本" class="headerlink" title="获取脚本"></a>获取脚本</h3><p>您可直接下载脚本，或者使用 git clone 命令下载本脚本。<br>直接下载：</p><h4 id="Flame-版本-1"><a href="#Flame-版本-1" class="headerlink" title="Flame 版本"></a>Flame 版本</h4><p>该版本适用于腾讯云 CDN、华为云 CDN:<br>IPv4 脚本：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Flame/DNSPod-Flame-IPv4.py</span><br></pre></td></tr></table></figure><p>IPv6 脚本：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Flame/DNSPod-Flame-IPv6.py</span><br></pre></td></tr></table></figure><h4 id="Frost-版本-1"><a href="#Frost-版本-1" class="headerlink" title="Frost 版本"></a>Frost 版本</h4><p>该版本适用于腾讯云 EdgeOne、阿里云 CDN、天翼云 CDN:<br>IPv4 脚本：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Frost/DNSPod-Frost-IPv4.py</span><br></pre></td></tr></table></figure><p>IPv6 脚本：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">wget https://dl.r2wind.cn/script/CNAMEFlattening/DNSPod/Frost/DNSPod-Frost-IPv6.py</span><br></pre></td></tr></table></figure><h4 id="使用-git-clone-命令下载脚本"><a href="#使用-git-clone-命令下载脚本" class="headerlink" title="使用 git clone 命令下载脚本"></a>使用 git clone 命令下载脚本</h4><p>使用 git clone 命令：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> https://github.com/KincaidYang/CNAMEFlattening.git</span><br></pre></td></tr></table></figure><h3 id="修改变量配置"><a href="#修改变量配置" class="headerlink" title="修改变量配置"></a>修改变量配置</h3><p>打开脚本，修改以下变量：</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 配置参数</span></span><br><span class="line"><span class="comment"># domanin替换为自己的域名，如&#x27;r2wind.cn&#x27;</span></span><br><span class="line">domain=<span class="string">&#x27;xxx.cn&#x27;</span></span><br><span class="line"><span class="comment"># sub_domain替换为自己的子域名，如&#x27;@&#x27;或&#x27;www&#x27;</span></span><br><span class="line">subdomain=<span class="string">&#x27;xxx&#x27;</span></span><br><span class="line"><span class="comment"># CDNCNAME请替换为CDN提供的CNAME地址，如&#x27;r2wind.cn.cdn.dnsv1.com&#x27;</span></span><br><span class="line">CDNCNAME=<span class="string">&#x27;xxx.xxx.xxx.cn&#x27;</span></span><br><span class="line"><span class="comment"># SecretId请替换为自己的腾讯云SecretId，可前往https://console.cloud.tencent.com/cam/capi获取</span></span><br><span class="line">SecretId=<span class="string">&#x27;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#x27;</span></span><br><span class="line"><span class="comment"># SecretKey请替换为自己的腾讯云SecretKey，可前往https://console.cloud.tencent.com/cam/capi获取</span></span><br><span class="line">SecretKey=<span class="string">&#x27;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#x27;</span></span><br><span class="line"><span class="comment"># URL为 DNSPod DOH接口地址，用以获取CDN实时解析情况，可自行替换为其他厂商的DoH接口</span></span><br><span class="line">DoH=<span class="string">&#x27;https://1.12.12.12/resolve&#x27;</span></span><br><span class="line"><span class="comment"># 记录类型(&quot;A&quot;为IPv4，&quot;AAAA&quot;为IPv6)</span></span><br><span class="line">record_type=<span class="string">&#x27;A&#x27;</span></span><br></pre></td></tr></table></figure><p>本站配置示例：</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 配置参数</span></span><br><span class="line"><span class="comment"># domanin替换为自己的域名</span></span><br><span class="line">domain=<span class="string">&#x27;r2wind.cn&#x27;</span></span><br><span class="line"><span class="comment"># sub_domain替换为自己的子域名</span></span><br><span class="line">subdomain=<span class="string">&#x27;@&#x27;</span></span><br><span class="line"><span class="comment"># CDNCNAME请替换为CDN提供的CNAME地址</span></span><br><span class="line">CDNCNAME=<span class="string">&#x27;r2wind.cn.cdn.qcloudcdn.cn&#x27;</span></span><br><span class="line"><span class="comment"># SecretId请替换为自己的腾讯云SecretId</span></span><br><span class="line">SecretId=<span class="string">&#x27;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#x27;</span></span><br><span class="line"><span class="comment"># SecretKey请替换为自己的腾讯云SecretKey</span></span><br><span class="line">SecretKey=<span class="string">&#x27;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#x27;</span></span><br><span class="line"><span class="comment"># URL为 DNSPod DOH接口地址，用以获取CDN实时解析情况，可自行替换</span></span><br><span class="line">DoH=<span class="string">&#x27;https://1.12.12.12/resolve&#x27;</span></span><br><span class="line"><span class="comment"># 记录类型(&quot;A&quot;为IPv4，&quot;AAAA&quot;为IPv6)</span></span><br><span class="line">record_type=<span class="string">&#x27;A&#x27;</span></span><br></pre></td></tr></table></figure><blockquote><p>说明：<br>若觉得下方用于 ECS 协议的 IP 子网存在问题，可自行修改。</p></blockquote><h3 id="安装依赖"><a href="#安装依赖" class="headerlink" title="安装依赖"></a>安装依赖</h3><p>脚本使用 Python3 运行，故您需要安装 Python3 环境。（一般镜像都会预装 Python3）</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># CentOS/RHEL</span></span><br><span class="line">yum install python3</span><br><span class="line"><span class="comment"># Debian/Ubuntu</span></span><br><span class="line">apt install python3</span><br></pre></td></tr></table></figure><p>本脚本使用了 requests 库和腾讯云 SDK，故您还需要安装 requests 库和 SDK。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># requests 库</span></span><br><span class="line">pip3 install requests</span><br><span class="line"><span class="comment"># 腾讯云 SDK</span></span><br><span class="line">pip3 install tencentcloud-sdk-python</span><br></pre></td></tr></table></figure><blockquote><p>说明：<br>某些系统下可能需要将 pip3 替换为 pip。</p></blockquote><h3 id="导入记录"><a href="#导入记录" class="headerlink" title="导入记录"></a>导入记录</h3><p>使用前请您前往<a href="https://console.dnspod.cn/dns/list">DNSPod 控制台</a>添加相应记录，否则本脚本将无法正常运行，或参照下述方式导入记录。</p><h4 id="下载记录模板"><a href="#下载记录模板" class="headerlink" title="下载记录模板"></a>下载记录模板</h4><h5 id="Flame-版本-2"><a href="#Flame-版本-2" class="headerlink" title="Flame 版本"></a>Flame 版本</h5><p>适用于腾讯云 CDN、华为云 CDN<br>IPv4 模板：<a href="https://dl.r2wind.cn/template/DNSPod-IPv4-Flame.xls">https://dl.r2wind.cn/template/DNSPod-IPv4-Flame.xls</a><br>IPv6 模板：<a href="https://dl.r2wind.cn/template/DNSPod-IPv6-Flame.xls">https://dl.r2wind.cn/template/DNSPod-IPv6-Flame.xls</a></p><h5 id="Frost-版本-2"><a href="#Frost-版本-2" class="headerlink" title="Frost 版本"></a>Frost 版本</h5><p>适用于腾讯云 EdgeOne、阿里云 CDN、天翼云 CDN<br>IPv4 模板：<a href="https://dl.r2wind.cn/template/DNSPod-IPv4-Frost.xls">https://dl.r2wind.cn/template/DNSPod-IPv4-Frost.xls</a><br>IPv6 模板：<a href="https://dl.r2wind.cn/template/DNSPod-IPv6-Frost.xls">https://dl.r2wind.cn/template/DNSPod-IPv6-Frost.xls</a></p><blockquote><p>说明：<br>请根据版本选择相应模板。<br>导入前请自行修改模板中的主机记录。（若有需要）<br>导入前请自行修改模板中的记录值为当前 CDN 节点 IP，否则会影响域名正常访问。（节点 IP 可以通过nslookup查询CDN CNAME地址获取）<br>若需要导入的记录已在控制台添加过，请删除原有记录后再导入。</p></blockquote><h4 id="导入记录-1"><a href="#导入记录-1" class="headerlink" title="导入记录"></a>导入记录</h4><ol><li>登录 <a href="https://console.dnspod.cn/dns/batch/import-record">DNSPod 控制台</a>，进入<strong>批量操作-导入记录</strong>页面。</li><li>输入需要导入的域名，上传已经修改好的模板，点击<strong>导入</strong>。</li><li>等待导入完成，请注意查看导入结果，若有导入失败的记录，查看原因修正后手动添加记录，不要重复导入。</li></ol><h3 id="调试脚本"><a href="#调试脚本" class="headerlink" title="调试脚本"></a>调试脚本</h3><p>请先在本地使用编辑器（如VScode）调试脚本，若调试成功则可继续部署。<br>若脚本正常运行，您将看到类似如下输出：<br>{“RecordId”: 1300xxxxxx, “RequestId”: “b690601d-b97f-46fa-a5fb-xxxxxxxxxx”}<br>或<br>[TencentCloudSDKException] code:InvalidParameter.DomainRecordExist message:记录已经存在，无需再次添加</p><h3 id="部署运行"><a href="#部署运行" class="headerlink" title="部署运行"></a>部署运行</h3><p>脚本使用 cron 定时运行，故您需要安装 cron。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># CentOS/RHEL</span></span><br><span class="line">yum install cronie</span><br><span class="line"><span class="comment"># Debian/Ubuntu</span></span><br><span class="line">apt install cron</span><br></pre></td></tr></table></figure><p>安装完成后，您需要编辑 crontab 文件，添加定时任务。</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">crontab -e</span><br></pre></td></tr></table></figure><p>在 crontab 文件中添加如下内容：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">*/5 * * * * python3 /root/DNSPodCDNv4.py</span><br></pre></td></tr></table></figure><blockquote><p>说明：<br>本配置每 5 分钟运行一次，您可以根据需要自行修改。<br>请将 &#x2F;root&#x2F;DNSPodCDNv4.py 替换为您的脚本路径。<br>若您使用的是 IPv6 脚本，请将上述内容替换为 *&#x2F;5 * * * * python3 &#x2F;root&#x2F;DNSPodCDNv6.py</p></blockquote><h3 id="验证效果"><a href="#验证效果" class="headerlink" title="验证效果"></a>验证效果</h3><p>您可以在 <a href="https://console.dnspod.cn/dns/list">DNSPod 控制台</a>查看对应域名的相关记录，若记录值已经更新为 CDN 节点 IP，则说明脚本运行成功。</p><h3 id="D-监控"><a href="#D-监控" class="headerlink" title="D 监控"></a>D 监控</h3><p>可开启 D 监控配合使用，注意调整监控频率，监控频率应小于更新频率。<br>注：D 监控仅支持 IPv4。</p><h2 id="问题反馈"><a href="#问题反馈" class="headerlink" title="问题反馈"></a>问题反馈</h2><p>若您在使用过程中遇到任何问题，欢迎您提交 <a href="https://github.com/KincaidYang/CNAMEFlattening/issues">Issue</a>。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;由于 CNAME 跟任何记录都冲突的特性，在根域（@）下添加 CNAME 记录指向 CDN（或其他服务）会导致 mx（邮箱记录）、TXT（一些站长验证）、DS 等常用记录冲突等且多级 CNAME 会导致解析性能下降等问题，所以拉平是一个很不错的解决</summary>
      
    
    
    
    <category term="教程" scheme="https://r2wind.cn/categories/%E6%95%99%E7%A8%8B/"/>
    
    
    <category term="DNSPod" scheme="https://r2wind.cn/tags/DNSPod/"/>
    
    <category term="腾讯云" scheme="https://r2wind.cn/tags/%E8%85%BE%E8%AE%AF%E4%BA%91/"/>
    
    <category term="域名" scheme="https://r2wind.cn/tags/%E5%9F%9F%E5%90%8D/"/>
    
    <category term="解析" scheme="https://r2wind.cn/tags/%E8%A7%A3%E6%9E%90/"/>
    
    <category term="作品集" scheme="https://r2wind.cn/tags/%E4%BD%9C%E5%93%81%E9%9B%86/"/>
    
  </entry>
  
</feed>
