<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on CX 的博客</title><link>https://blog.imcaoxuan.cn/posts/</link><description>Recent content in Posts on CX 的博客</description><generator>Hugo</generator><language>zh-CN</language><copyright>imcaoxuan.cn</copyright><lastBuildDate>Sat, 17 Oct 2026 17:47:18 +0800</lastBuildDate><atom:link href="https://blog.imcaoxuan.cn/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Hugo 使用指南</title><link>https://blog.imcaoxuan.cn/posts/hugo-manual/</link><pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/hugo-manual/</guid><description>Hugo v0.168.0 的安装、写作、主题、多语言、Git 子模块、构建与 Gitea Actions 实践。</description></item><item><title>中国秸秆禁烧政策的历史：从传统农耕到现代环境治理</title><link>https://blog.imcaoxuan.cn/posts/china-straw-burning-ban-history-1/</link><pubDate>Sat, 17 Oct 2026 17:47:18 +0800</pubDate><guid>https://blog.imcaoxuan.cn/posts/china-straw-burning-ban-history-1/</guid><description>&lt;p&gt;中国秸秆禁烧政策的历史，实际上是中国农业现代化、农村能源转型、环境治理和基层行政管理方式演变的一个缩影。&lt;/p&gt;
&lt;p&gt;最关键的历史结论是：中国并非自古存在大规模秸秆焚烧问题，也不是近年来才开始禁止烧秸秆。现代秸秆禁烧制度在20世纪90年代逐步建立，1999年形成全国性的管理规定，2008年前后明显强化，2013年以后进一步纳入大气污染防治体系。&lt;/p&gt;
&lt;p&gt;更值得研究的，是政策治理目标与执行方式之间的变化：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最初的重点是公共安全。 尤其是机场、铁路、公路附近的焚烧风险，同时兼顾大气污染。&lt;/li&gt;
&lt;li&gt;后来逐渐转向区域空气质量管理。 秸秆焚烧与城市雾霾、PM2.5治理建立了更紧密的政策联系。&lt;/li&gt;
&lt;li&gt;再后来出现基层执行范围扩大和管理方式强化的问题。 一些地方采取全面禁烧、网格巡查和责任追究，导致政策成本与农民生产需求之间的矛盾。&lt;/li&gt;
&lt;li&gt;政策争论的核心不是焚烧是否产生污染，而是应当禁止到什么程度，以及由谁承担处理秸秆的经济成本。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="一历史时间线秸秆禁烧如何一步步形成"&gt;一、历史时间线：秸秆禁烧如何一步步形成&lt;/h2&gt;
&lt;p&gt;&lt;img alt="看五六十年前泉州市孩子们的课余任务 -泉州网|泉州晚报社 泉州新闻门户网站" loading="lazy" src="https://blog-images.imcaoxuan.cn/2026/10/17/1792229387.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;20世纪80年代以前&lt;/p&gt;
&lt;p&gt;秸秆是有使用价值的农业资源&lt;/p&gt;
&lt;p&gt;主要用于烧饭取暖、牲畜饲料、垫圈积肥、堆肥和建材。露天焚烧存在，但大量秸秆并非没有用途。&lt;/p&gt;
&lt;p&gt;&lt;img alt="CHINA-AGRICULTURE-HARVEST3" loading="lazy" src="https://blog-images.imcaoxuan.cn/2026/10/17/1792229401.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;1980年代末—1990年代&lt;/p&gt;
&lt;p&gt;大规模集中焚烧成为社会问题&lt;/p&gt;
&lt;p&gt;农业机械化、农村生活燃料转型、粮食增产及农业劳动力转移，使部分地区秸秆集中剩余，焚烧逐渐成为快速清田的方式。&lt;/p&gt;
&lt;p&gt;&lt;img alt="CHINA-HEALTH-ENVIRONMENT-POLLUTION" loading="lazy" src="https://blog-images.imcaoxuan.cn/2026/10/17/1792229413.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;1999—2000年&lt;/p&gt;
&lt;p&gt;全国性禁烧管理制度确立&lt;/p&gt;
&lt;p&gt;1999年六部门发布《秸秆禁烧和综合利用管理办法》；2000年修订《大气污染防治法》，明确特定区域的秸秆露天焚烧禁令。&lt;/p&gt;
&lt;p&gt;&lt;img alt="This aerial picture shows the National S" loading="lazy" src="https://blog-images.imcaoxuan.cn/2026/10/17/1792229422.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;2008年&lt;/p&gt;
&lt;p&gt;奥运空气质量保障推动强化禁烧&lt;/p&gt;
&lt;p&gt;京津冀及周边多个省份实施重点时段严格禁烧，城市及重点区域管控范围扩大。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Place Tiananmen sous la pollution, Pékin, janvier 2014 - Espace mondial : l&amp;rsquo;Atlas" loading="lazy" src="https://blog-images.imcaoxuan.cn/2026/10/17/1792229431.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;2013—2017年&lt;/p&gt;
&lt;p&gt;与PM2.5及大气污染防治绑定&lt;/p&gt;
&lt;p&gt;大气污染防治行动全面推进。2015年修订《大气污染防治法》，规定由省级人民政府划定禁烧区域，并明确相关法律责任。&lt;/p&gt;
&lt;p&gt;&lt;img alt="一文读懂 秸秆为什么不让烧" loading="lazy" src="https://blog-images.imcaoxuan.cn/2026/10/17/1792229439.jpeg"&gt;&lt;/p&gt;
&lt;p&gt;2018年至今&lt;/p&gt;
&lt;p&gt;基层精细化监管与政策争议并存&lt;/p&gt;
&lt;p&gt;网格监管、卫星火点监测及秸秆综合利用持续推进，部分地区也探索分区、分时段的焚烧管理。&lt;/p&gt;
&lt;p&gt;上面的阶段划分依据国家层面的重要政策节点，而非认为每一年全国都同步改变。&lt;/p&gt;
&lt;h2 id="二19491980年代为什么过去农民很少需要大规模集中烧秸秆"&gt;二、1949—1980年代：为什么过去农民很少需要大规模集中烧秸秆？&lt;/h2&gt;
&lt;p&gt;要解释今天的禁烧政策，必须先理解一个历史变化：&lt;/p&gt;
&lt;p&gt;秸秆从过去的生产生活资源，逐渐变成了部分地区需要付费处理的农业副产物。&lt;/p&gt;
&lt;h3 id="1-传统农村社会有较完整的秸秆利用体系"&gt;1. 传统农村社会有较完整的秸秆利用体系&lt;/h3&gt;
&lt;p&gt;过去的小农经济中，秸秆具有多种实际用途。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;th&gt;农村的典型做法&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;生活燃料&lt;/td&gt;
&lt;td&gt;使用麦秸、稻草、玉米秆烧饭取暖&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;牲畜饲料&lt;/td&gt;
&lt;td&gt;秸秆切碎后喂牛、羊等反刍动物&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;农业肥料&lt;/td&gt;
&lt;td&gt;堆肥、沤肥、垫圈积肥、直接还田&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;生活材料&lt;/td&gt;
&lt;td&gt;编织草席、制作草绳、屋顶覆盖&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;农业辅助&lt;/td&gt;
&lt;td&gt;覆盖地面、保墒、防止部分土壤侵蚀&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这并不意味着过去不存在焚烧。农民同样会焚烧残茬、杂草，或通过草木灰补充部分矿质养分。&lt;/p&gt;</description></item><item><title>一把火，三十年：中国秸秆禁烧为何从重点管控走向全域禁烧？（二）</title><link>https://blog.imcaoxuan.cn/posts/straw-burning-ban-history-part-2/</link><pubDate>Sat, 17 Oct 2026 12:00:00 +0800</pubDate><guid>https://blog.imcaoxuan.cn/posts/straw-burning-ban-history-part-2/</guid><description>深度回顾2008—2015年中国秸秆禁烧政策的关键转折：奥运空气质量保障、江苏全域禁烧、安徽财政奖补考核、湖北立法与卫星火点监测。</description></item><item><title>My First Post</title><link>https://blog.imcaoxuan.cn/posts/my-first-post/</link><pubDate>Sat, 22 Mar 2025 20:00:42 +0800</pubDate><guid>https://blog.imcaoxuan.cn/posts/my-first-post/</guid><description/></item><item><title>Azure入门指南（一）</title><link>https://blog.imcaoxuan.cn/posts/81/</link><pubDate>Sun, 18 Jun 2023 12:25:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/81/</guid><description>&lt;!--markdown--&gt;&lt;mark&gt;阅读前提：了解国内外云服务（如阿里云、Amazon Web Services），并有一定的使用经验&lt;/mark&gt;
&lt;h2 id="注册"&gt;注册&lt;/h2&gt;
&lt;p&gt;注册一个微软账户即可，具体步骤可以参考知乎的这篇文章（&lt;a href="https://zhuanlan.zhihu.com/p/157632464"&gt;如何白嫖微软Azure12个月及避坑指南 - 知乎 (zhihu.com)&lt;/a&gt;），&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意：这篇文章写了有很久了，azure的策略可能已经更改，由此可能产生费用，大家实践的时候一定要看清收费策略，或者提前咨询客服，避免不必要的损失。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="azure服务"&gt;Azure服务&lt;/h2&gt;
&lt;p&gt;以下是常用的azure服务：&lt;/p&gt;
&lt;p&gt;&lt;img alt="1.png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2023/06/109458117.png"&gt;&lt;/p&gt;
&lt;p&gt;以下表格是Azure、阿里云和AWS的云服务的对应关系&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Azure&lt;/th&gt;
&lt;th&gt;阿里云&lt;/th&gt;
&lt;th&gt;AWS&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;订阅（Subscriptions）&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;资源组（Resource groups）&lt;/td&gt;
&lt;td&gt;资源组&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;虚拟机（Virtual machine）&lt;/td&gt;
&lt;td&gt;云服务器ECS&lt;/td&gt;
&lt;td&gt;EC2&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;磁盘（Disk）&lt;/td&gt;
&lt;td&gt;云盘&lt;/td&gt;
&lt;td&gt;卷（Volume）&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;虚拟网络（Virtual network）&lt;/td&gt;
&lt;td&gt;专有网络&lt;/td&gt;
&lt;td&gt;VPC&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;网络接口（Network Interface）&lt;/td&gt;
&lt;td&gt;交换机&lt;/td&gt;
&lt;td&gt;网络接口（Network interface）&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;网络安全组（Network security group）&lt;/td&gt;
&lt;td&gt;安全组&lt;/td&gt;
&lt;td&gt;安全组（Security Group）&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;公共 IP 地址（Public IP address）&lt;/td&gt;
&lt;td&gt;公网IP&lt;/td&gt;
&lt;td&gt;公有 IPv4 /IPv6地址（Public IPv4/IPv6 address）&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSH 密钥（SSH key）&lt;/td&gt;
&lt;td&gt;密钥对&lt;/td&gt;
&lt;td&gt;密钥对（Key Pair）&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="虚拟机"&gt;虚拟机&lt;/h3&gt;
&lt;h4 id="创建"&gt;创建&lt;/h4&gt;
&lt;h5 id="基本"&gt;基本&lt;/h5&gt;
&lt;p&gt;&lt;img alt="createvm1png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2023/06/340238780.png"&gt;&lt;/p&gt;</description></item><item><title>Debian-Ubuntu使用Nexus的私有镜像源</title><link>https://blog.imcaoxuan.cn/posts/80/</link><pubDate>Thu, 27 Oct 2022 15:24:18 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/80/</guid><description>&lt;!--markdown--&gt;# Debian/Ubuntu使用Nexus的私有镜像源
&lt;h3 id="以debian11为例"&gt;以Debian11为例&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;修改**/etc/apt/source.list**&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim /etc/apt/source.list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# deb cdrom:[Debian GNU/Linux 11.2.0 _Bullseye_ - Official amd64 DVD Binary-1 20211218-11:13]/ bullseye contrib main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#deb cdrom:[Debian GNU/Linux 11.2.0 _Bullseye_ - Official amd64 DVD Binary-1 20211218-11:13]/ bullseye contrib main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb http://deb.debian.org/debian/ bullseye main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb-src http://deb.debian.org/debian/ bullseye main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb http://security.debian.org/debian-security bullseye-security main contrib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb-src http://security.debian.org/debian-security bullseye-security main contrib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# bullseye-updates, to get updates before a point release is made;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb http://deb.debian.org/debian/ bullseye-updates main contrib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb-src http://deb.debian.org/debian/ bullseye-updates main contrib
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;把其中的地址替换成你的私有镜像源地址&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# deb cdrom:[Debian GNU/Linux 11.2.0 _Bullseye_ - Official amd64 DVD Binary-1 20211218-11:13]/ bullseye contrib main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#deb cdrom:[Debian GNU/Linux 11.2.0 _Bullseye_ - Official amd64 DVD Binary-1 20211218-11:13]/ bullseye contrib main&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb http://mirror.nfools.org:8081/repository/debian-bullseye/ bullseye main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb-src http://mirror.nfools.org:8081/repository/debian-bullseye/ bullseye main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb http://security.debian.org/debian-security bullseye-security main contrib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb-src http://security.debian.org/debian-security bullseye-security main contrib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# bullseye-updates, to get updates before a point release is made;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb http://deb.debian.org/debian/ bullseye-updates main contrib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;deb-src http://deb.debian.org/debian/ bullseye-updates main contrib
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存并退出&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;创建**/etc/apt/auth.conf.d/nexus.local.intranet.conf**（如果你的仓库允许匿名访问，则忽略这一步）&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim /etc/apt/auth.conf.d/nexus.local.intranet.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配置你的镜像源地址、登录名和密码&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;machine http://mirror.nfools.org:8081/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;login public
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;password public
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存并退出&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;更新apt&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>mybatis xml的字符串表达式中不要包含in（因为in是关键字，除此之外，还有很多关键字都不要放在这里）！！！</title><link>https://blog.imcaoxuan.cn/posts/77/</link><pubDate>Tue, 11 Oct 2022 15:09:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/77/</guid><description>&lt;!--markdown--&gt;假如你要使用**if**语句判断**Query**类的成员变量**in**是否为**null**，你可能会这么写： ```&lt;if test="null != query.in"&gt;&lt;/if&gt;```（错误）
&lt;hr&gt;
&lt;p&gt;正确的做法是把&lt;strong&gt;Query&lt;/strong&gt;类的&lt;strong&gt;in&lt;/strong&gt;变量名改成其它名字，比如改成&lt;em&gt;contains&lt;/em&gt; &lt;code&gt;&amp;lt;if test=&amp;quot;null != query.contains&amp;quot;&amp;gt;&amp;lt;/if&amp;gt;&lt;/code&gt;（正确）&lt;/p&gt;</description></item><item><title>群晖Gitlab开启https</title><link>https://blog.imcaoxuan.cn/posts/67/</link><pubDate>Fri, 07 Oct 2022 14:06:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/67/</guid><description>&lt;!--markdown--&gt;1.在套件中心停用Gitlab。
&lt;p&gt;&lt;img alt="屏幕截图 2022-10-07 225900.png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2022/10/3894530090.png"&gt;
2.打开docker，右键编辑synology_gitlab，在端口设置中将本地端口44333（自定义）， 映射到容器端口443，然后在环境变量中新增&lt;code&gt;GITLAB_HTTPS true&lt;/code&gt;
&lt;img alt="屏幕截图 2022-10-07 230252.png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2022/10/15891951.png"&gt;
&lt;img alt="屏幕截图 2022-10-07 230325.png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2022/10/2058308897.png"&gt;
完成以上步骤后，重启Gitlab，就可以在浏览器上使用https访问Gitlab了。
但是当使用克隆代码时，仍然是使用原来的端口。
3.在环境变量中修改GITLAB_PORT的值为44333（自定义）
&lt;img alt="屏幕截图 2022-10-07 230713.png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2022/10/4025217960.png"&gt;
然后重启Gitlab就完事了。&lt;/p&gt;</description></item><item><title>MySQL8.0主从同步</title><link>https://blog.imcaoxuan.cn/posts/66/</link><pubDate>Fri, 09 Sep 2022 09:51:29 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/66/</guid><description>&lt;!--markdown--&gt;# MySQL8.0主从同步
&lt;p&gt;参考：https://www.cnblogs.com/kylinlin/p/5258719.html&lt;/p&gt;
&lt;h2 id="一-主数据库"&gt;一、 主数据库&lt;/h2&gt;
&lt;h4 id="1修改配置文件"&gt;1.修改配置文件&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim /etc/mysql/mysql.conf.d/mysqld.cnf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;mysqld&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;log-bin&lt;span style="color:#f92672"&gt;=&lt;/span&gt;mysql-bin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;server-id&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="2锁表"&gt;2.锁表&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-mysql" data-lang="mysql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;flush&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;tables&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;read&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;lock&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="3备份"&gt;3.备份&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysqldump -u root -p &lt;span style="color:#e6db74"&gt;&amp;#39;root&amp;#39;&lt;/span&gt; -S /var/run/mysqld/mysqld.sock kpc | gzip &amp;gt; /tmp/mysql_bak.&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;date +%F&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;.sql.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="4创建用户并授权"&gt;4.创建用户并授权&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-mysql" data-lang="mysql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;CREATE&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;USER&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;rep&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;@&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;%&amp;#39;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IDENTIFIED&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;WITH&lt;/span&gt; mysql_native_password &lt;span style="color:#66d9ef"&gt;BY&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;rep&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-mysql" data-lang="mysql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;GRANT&lt;/span&gt; REPLICATION SLAVE &lt;span style="color:#66d9ef"&gt;ON&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt;.&lt;span style="color:#f92672"&gt;*&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;TO&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;rep&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;@&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;%&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="5记录信息"&gt;5.记录信息&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-mysql" data-lang="mysql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;show&lt;/span&gt; master status;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" src="c:\\Users\\caoxuan\\Desktop\\3.png"&gt;&lt;/p&gt;
&lt;h4 id="6重启"&gt;6.重启&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl restart mysql
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="二从数据库"&gt;二、从数据库&lt;/h2&gt;
&lt;h4 id="1修改配置文件-1"&gt;1.修改配置文件&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim /etc/mysql/mysql.conf.d/mysqld.cnf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;[server-id != 1](# 1.修改配置文件)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;mysqld&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;server-id&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="2配置master"&gt;2.配置Master&lt;/h4&gt;
&lt;p&gt;[MASTER_USER](# 4.创建用户)&lt;/p&gt;
&lt;p&gt;[MASTER_PASSWORD](# 4.创建用户)&lt;/p&gt;
&lt;p&gt;[MASTER_LOG_FILE](# 5.记录信息)&lt;/p&gt;
&lt;p&gt;[MASTER_LOG_POS](# 5.记录信息)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-mysql" data-lang="mysql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;CHANGE&lt;/span&gt; MASTER &lt;span style="color:#66d9ef"&gt;TO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; MASTER_HOST&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;master_host_name&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; MASTER_USER&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;rep&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; MASTER_PASSWORD&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;rep&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; MASTER_LOG_FILE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;mysql-bin.000001&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; MASTER_LOG_POS&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;156&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="3运行"&gt;3.运行&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-mysql" data-lang="mysql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; start slave;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Spring Cloud Alibaba 2021.0.1.0 踩坑记录</title><link>https://blog.imcaoxuan.cn/posts/59/</link><pubDate>Sun, 04 Sep 2022 15:27:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/59/</guid><description>&lt;!--markdown--&gt;我打算把**Spring Cloud Alibaba**升级个版本，看看有什么新特性，结果升级后死活启动不了。
&lt;hr&gt;
&lt;p&gt;事情是这样的，跟往常一样，我先去&lt;a href="https://spring.io/"&gt;&lt;em&gt;Spring官网&lt;/em&gt;&lt;/a&gt;找到&lt;a href="https://spring.io/projects/spring-cloud-alibaba#learn"&gt;&lt;em&gt;Spring Cloud Alibaba&lt;/em&gt;&lt;/a&gt;的最新的版本号，如下图所示：&lt;/p&gt;
&lt;p&gt;可以看到最新的版本是&lt;strong&gt;2021.0.1.0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="spring cloud alibaba.png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2022/09/1984588022.png"&gt;&lt;/p&gt;
&lt;p&gt;我默默记下这个版本号&amp;hellip;
然后点了右上角的那只&lt;a href="https://cn.bing.com/search?q=%E7%AB%A0%E9%B1%BC%E7%8C%AB"&gt;&lt;strong&gt;章鱼猫&lt;/strong&gt;&lt;/a&gt;
在&lt;strong&gt;Wiki&lt;/strong&gt;里找到&lt;strong&gt;版本说明&lt;/strong&gt;，如下图所示：
现在我知道了Spring Cloud Alibaba Version、Spring Cloud Version和Spring Boot Version三者版本对应关系了！&lt;/p&gt;
&lt;p&gt;&lt;img alt="edition.png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2022/09/3307185131.png"&gt;&lt;/p&gt;
&lt;p&gt;我再次回到&lt;a href="https://spring.io/projects/spring-cloud-alibaba#learn"&gt;Spring官网&lt;/a&gt;，然后打开&lt;a href="https://spring-cloud-alibaba-group.github.io/github-pages/2021/en-us/index.html"&gt;Spring Cloud Alibaba的Reference&lt;/a&gt;，根据文档，一顿操作。
其实大概就只有三步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;添加依赖&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&amp;lt;!--在父工程添加以下依赖--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;spring.cloud.version&amp;gt;&lt;/span&gt;2021.0.1&lt;span style="color:#f92672"&gt;&amp;lt;/spring.cloud.version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;spring-boot-dependencies.version&amp;gt;&lt;/span&gt;2.6.3&lt;span style="color:#f92672"&gt;&amp;lt;/spring-boot-dependencies.version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;com.alibaba.cloud.spring-cloud-alibaba-dependencies.version&amp;gt;&lt;/span&gt;2021.0.1.0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/com.alibaba.cloud.spring-cloud-alibaba-dependencies.version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;dependencyManagement&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;dependencies&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;&amp;lt;!--官网里使用spring-boot-starter-parent作为父工程而没有导入这条依赖，实际作用相同--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.springframework.boot&lt;span style="color:#f92672"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-boot-dependencies&lt;span style="color:#f92672"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;${spring-boot-dependencies.version}&lt;span style="color:#f92672"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.springframework.cloud&lt;span style="color:#f92672"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-cloud-dependencies&lt;span style="color:#f92672"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;${spring.cloud.version}&lt;span style="color:#f92672"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;pom&lt;span style="color:#f92672"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;import&lt;span style="color:#f92672"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.alibaba.cloud&lt;span style="color:#f92672"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-cloud-alibaba-dependencies&lt;span style="color:#f92672"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;${com.alibaba.cloud.spring-cloud-alibaba-dependencies.version}&lt;span style="color:#f92672"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;pom&lt;span style="color:#f92672"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;import&lt;span style="color:#f92672"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/dependencies&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;/dependencyManagement&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&amp;lt;!--在module中添加以下依赖--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.alibaba.cloud&lt;span style="color:#f92672"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-cloud-starter-alibaba-nacos-discovery&lt;span style="color:#f92672"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;
&lt;li&gt;配置yaml&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;spring&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;cloud&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;nacos&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;discovery&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;server-addr&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;127.0.0.1&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;8848&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="3"&gt;
&lt;li&gt;在主类上添加**@EnableDiscoveryClient**注解
激动的心，颤抖的手，点击运行！（提前启动好了&lt;em&gt;Nacos&lt;/em&gt;）&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022&lt;span style="color:#f92672"&gt;-&lt;/span&gt;09&lt;span style="color:#f92672"&gt;-&lt;/span&gt;05 00:04:32.&lt;span style="color:#a6e22e"&gt;047&lt;/span&gt; INFO 37828 &lt;span style="color:#f92672"&gt;---&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; restartedMain&lt;span style="color:#f92672"&gt;]&lt;/span&gt; o.&lt;span style="color:#a6e22e"&gt;apache&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;catalina&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;core&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;StandardService&lt;/span&gt; : Starting service &lt;span style="color:#f92672"&gt;[&lt;/span&gt;Tomcat&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022&lt;span style="color:#f92672"&gt;-&lt;/span&gt;09&lt;span style="color:#f92672"&gt;-&lt;/span&gt;05 00:04:32.&lt;span style="color:#a6e22e"&gt;047&lt;/span&gt; INFO 37828 &lt;span style="color:#f92672"&gt;---&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; restartedMain&lt;span style="color:#f92672"&gt;]&lt;/span&gt; org.&lt;span style="color:#a6e22e"&gt;apache&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;catalina&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;core&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;StandardEngine&lt;/span&gt; : Starting Servlet engine: &lt;span style="color:#f92672"&gt;[&lt;/span&gt;Apache Tomcat&lt;span style="color:#f92672"&gt;/&lt;/span&gt;9.&lt;span style="color:#a6e22e"&gt;0&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;56&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022&lt;span style="color:#f92672"&gt;-&lt;/span&gt;09&lt;span style="color:#f92672"&gt;-&lt;/span&gt;05 00:04:32.&lt;span style="color:#a6e22e"&gt;109&lt;/span&gt; INFO 37828 &lt;span style="color:#f92672"&gt;---&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; restartedMain&lt;span style="color:#f92672"&gt;]&lt;/span&gt; o.&lt;span style="color:#a6e22e"&gt;a&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;c&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;c&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;C&lt;/span&gt;.&lt;span style="color:#f92672"&gt;[&lt;/span&gt;Tomcat&lt;span style="color:#f92672"&gt;]&lt;/span&gt;.&lt;span style="color:#f92672"&gt;[&lt;/span&gt;localhost&lt;span style="color:#f92672"&gt;]&lt;/span&gt;.&lt;span style="color:#f92672"&gt;[/]&lt;/span&gt; : Initializing Spring embedded WebApplicationContext
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022&lt;span style="color:#f92672"&gt;-&lt;/span&gt;09&lt;span style="color:#f92672"&gt;-&lt;/span&gt;05 00:04:32.&lt;span style="color:#a6e22e"&gt;109&lt;/span&gt; INFO 37828 &lt;span style="color:#f92672"&gt;---&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; restartedMain&lt;span style="color:#f92672"&gt;]&lt;/span&gt; w.&lt;span style="color:#a6e22e"&gt;s&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;c&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ServletWebServerApplicationContext&lt;/span&gt; : Root WebApplicationContext: initialization completed in 1320 ms
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022&lt;span style="color:#f92672"&gt;-&lt;/span&gt;09&lt;span style="color:#f92672"&gt;-&lt;/span&gt;05 00:04:32.&lt;span style="color:#a6e22e"&gt;504&lt;/span&gt; WARN 37828 &lt;span style="color:#f92672"&gt;---&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; restartedMain&lt;span style="color:#f92672"&gt;]&lt;/span&gt; ConfigServletWebServerApplicationContext : Exception encountered during context initialization &lt;span style="color:#f92672"&gt;-&lt;/span&gt; cancelling refresh attempt: org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;requestMappingHandlerAdapter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;web&lt;span style="color:#f92672"&gt;/&lt;/span&gt;servlet&lt;span style="color:#f92672"&gt;/&lt;/span&gt;WebMvcAutoConfiguration$EnableWebMvcConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Bean instantiation via factory method failed; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanInstantiationException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; instantiate &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;mvc&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;method&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;RequestMappingHandlerAdapter&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Factory method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;requestMappingHandlerAdapter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; threw exception; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;messageConverters&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;HttpMessageConvertersAutoConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Bean instantiation via factory method failed; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanInstantiationException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; instantiate &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;autoconfigure&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HttpMessageConverters&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Factory method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;messageConverters&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; threw exception; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;UnsatisfiedDependencyException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Unsatisfied dependency expressed through method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; parameter 0; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;jacksonObjectMapper&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jackson&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonAutoConfiguration$JacksonObjectMapperConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Post&lt;span style="color:#f92672"&gt;-&lt;/span&gt;processing of merged bean definition failed; nested exception is java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;IllegalStateException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; introspect Class &lt;span style="color:#f92672"&gt;[&lt;/span&gt;com.&lt;span style="color:#a6e22e"&gt;fasterxml&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jackson&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;databind&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ObjectMapper&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; from ClassLoader &lt;span style="color:#f92672"&gt;[&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoaders$AppClassLoader&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;@2437c6dc&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022&lt;span style="color:#f92672"&gt;-&lt;/span&gt;09&lt;span style="color:#f92672"&gt;-&lt;/span&gt;05 00:04:32.&lt;span style="color:#a6e22e"&gt;507&lt;/span&gt; INFO 37828 &lt;span style="color:#f92672"&gt;---&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; restartedMain&lt;span style="color:#f92672"&gt;]&lt;/span&gt; o.&lt;span style="color:#a6e22e"&gt;apache&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;catalina&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;core&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;StandardService&lt;/span&gt; : Stopping service &lt;span style="color:#f92672"&gt;[&lt;/span&gt;Tomcat&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022&lt;span style="color:#f92672"&gt;-&lt;/span&gt;09&lt;span style="color:#f92672"&gt;-&lt;/span&gt;05 00:04:32.&lt;span style="color:#a6e22e"&gt;523&lt;/span&gt; INFO 37828 &lt;span style="color:#f92672"&gt;---&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; restartedMain&lt;span style="color:#f92672"&gt;]&lt;/span&gt; ConditionEvaluationReportLoggingListener :
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Error starting ApplicationContext. To display the conditions report re&lt;span style="color:#f92672"&gt;-&lt;/span&gt;run your application &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;debug&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; enabled.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022&lt;span style="color:#f92672"&gt;-&lt;/span&gt;09&lt;span style="color:#f92672"&gt;-&lt;/span&gt;05 00:04:32.&lt;span style="color:#a6e22e"&gt;551&lt;/span&gt; ERROR 37828 &lt;span style="color:#f92672"&gt;---&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt; restartedMain&lt;span style="color:#f92672"&gt;]&lt;/span&gt; o.&lt;span style="color:#a6e22e"&gt;s&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SpringApplication&lt;/span&gt; : Application run failed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;requestMappingHandlerAdapter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;web&lt;span style="color:#f92672"&gt;/&lt;/span&gt;servlet&lt;span style="color:#f92672"&gt;/&lt;/span&gt;WebMvcAutoConfiguration$EnableWebMvcConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Bean instantiation via factory method failed; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanInstantiationException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; instantiate &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;mvc&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;method&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;RequestMappingHandlerAdapter&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Factory method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;requestMappingHandlerAdapter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; threw exception; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;messageConverters&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;HttpMessageConvertersAutoConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Bean instantiation via factory method failed; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanInstantiationException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; instantiate &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;autoconfigure&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HttpMessageConverters&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Factory method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;messageConverters&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; threw exception; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;UnsatisfiedDependencyException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Unsatisfied dependency expressed through method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; parameter 0; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;jacksonObjectMapper&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jackson&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonAutoConfiguration$JacksonObjectMapperConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Post&lt;span style="color:#f92672"&gt;-&lt;/span&gt;processing of merged bean definition failed; nested exception is java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;IllegalStateException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; introspect Class &lt;span style="color:#f92672"&gt;[&lt;/span&gt;com.&lt;span style="color:#a6e22e"&gt;fasterxml&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jackson&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;databind&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ObjectMapper&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; from ClassLoader &lt;span style="color:#f92672"&gt;[&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoaders$AppClassLoader&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;@2437c6dc&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiate&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:658) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiateUsingFactoryMethod&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:638) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiateUsingFactoryMethod&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1352) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createBeanInstance&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1195) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doCreateBean&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:582) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createBean&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:542) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;lambda$doGetBean$0&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:335) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultSingletonBeanRegistry&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getSingleton&lt;/span&gt;(DefaultSingletonBeanRegistry.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:234) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doGetBean&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:333) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getBean&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:208) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;preInstantiateSingletons&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:953) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;context&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractApplicationContext&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;finishBeanFactoryInitialization&lt;/span&gt;(AbstractApplicationContext.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:918) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;context&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;context&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractApplicationContext&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;refresh&lt;/span&gt;(AbstractApplicationContext.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:583) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;context&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;context&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ServletWebServerApplicationContext&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;refresh&lt;/span&gt;(ServletWebServerApplicationContext.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:145) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SpringApplication&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;refresh&lt;/span&gt;(SpringApplication.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:732) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SpringApplication&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;refreshContext&lt;/span&gt;(SpringApplication.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:414) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SpringApplication&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;run&lt;/span&gt;(SpringApplication.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:302) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SpringApplication&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;run&lt;/span&gt;(SpringApplication.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1303) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SpringApplication&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;run&lt;/span&gt;(SpringApplication.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1292) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at cn.&lt;span style="color:#a6e22e"&gt;imcaoxuan&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;FileManagerApplication&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(FileManagerApplication.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:11) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;classes&lt;span style="color:#f92672"&gt;/&lt;/span&gt;:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;NativeMethodAccessorImpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke0&lt;/span&gt;(Native Method) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;NativeMethodAccessorImpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke&lt;/span&gt;(NativeMethodAccessorImpl.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:62) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DelegatingMethodAccessorImpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke&lt;/span&gt;(DelegatingMethodAccessorImpl.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:43) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Method&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke&lt;/span&gt;(Method.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:566) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;devtools&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;restart&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;RestartLauncher&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;run&lt;/span&gt;(RestartLauncher.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:49) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;devtools&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Caused by: org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanInstantiationException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; instantiate &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;mvc&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;method&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;RequestMappingHandlerAdapter&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Factory method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;requestMappingHandlerAdapter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; threw exception; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;messageConverters&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;HttpMessageConvertersAutoConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Bean instantiation via factory method failed; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanInstantiationException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; instantiate &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;autoconfigure&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HttpMessageConverters&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Factory method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;messageConverters&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; threw exception; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;UnsatisfiedDependencyException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Unsatisfied dependency expressed through method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; parameter 0; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;jacksonObjectMapper&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jackson&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonAutoConfiguration$JacksonObjectMapperConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Post&lt;span style="color:#f92672"&gt;-&lt;/span&gt;processing of merged bean definition failed; nested exception is java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;IllegalStateException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; introspect Class &lt;span style="color:#f92672"&gt;[&lt;/span&gt;com.&lt;span style="color:#a6e22e"&gt;fasterxml&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jackson&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;databind&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ObjectMapper&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; from ClassLoader &lt;span style="color:#f92672"&gt;[&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoaders$AppClassLoader&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;@2437c6dc&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SimpleInstantiationStrategy&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiate&lt;/span&gt;(SimpleInstantiationStrategy.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:185) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiate&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:653) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ... 24 common frames omitted
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Caused by: org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;messageConverters&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;HttpMessageConvertersAutoConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Bean instantiation via factory method failed; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanInstantiationException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; instantiate &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;autoconfigure&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HttpMessageConverters&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Factory method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;messageConverters&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; threw exception; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;UnsatisfiedDependencyException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Unsatisfied dependency expressed through method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; parameter 0; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;jacksonObjectMapper&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jackson&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonAutoConfiguration$JacksonObjectMapperConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Post&lt;span style="color:#f92672"&gt;-&lt;/span&gt;processing of merged bean definition failed; nested exception is java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;IllegalStateException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; introspect Class &lt;span style="color:#f92672"&gt;[&lt;/span&gt;com.&lt;span style="color:#a6e22e"&gt;fasterxml&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jackson&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;databind&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ObjectMapper&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; from ClassLoader &lt;span style="color:#f92672"&gt;[&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoaders$AppClassLoader&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;@2437c6dc&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiate&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:658) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiateUsingFactoryMethod&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:638) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiateUsingFactoryMethod&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1352) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createBeanInstance&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1195) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doCreateBean&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:582) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createBean&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:542) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;lambda$doGetBean$0&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:335) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultSingletonBeanRegistry&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getSingleton&lt;/span&gt;(DefaultSingletonBeanRegistry.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:234) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doGetBean&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:333) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getBean&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:208) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;config&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DependencyDescriptor&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;resolveCandidate&lt;/span&gt;(DependencyDescriptor.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:276) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doResolveDependency&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1389) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory$DependencyObjectProvider&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getIfAvailable&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:2030) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory$DependencyObjectProvider&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ifAvailable&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:2041) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;autoconfigure&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;configureMessageConverters&lt;/span&gt;(WebMvcAutoConfiguration.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:232) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;config&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;WebMvcConfigurerComposite&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;configureMessageConverters&lt;/span&gt;(WebMvcConfigurerComposite.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:137) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;webmvc&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;config&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DelegatingWebMvcConfiguration&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;configureMessageConverters&lt;/span&gt;(DelegatingWebMvcConfiguration.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:118) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;webmvc&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;config&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;WebMvcConfigurationSupport&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getMessageConverters&lt;/span&gt;(WebMvcConfigurationSupport.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:865) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;webmvc&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;config&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;WebMvcConfigurationSupport&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;requestMappingHandlerAdapter&lt;/span&gt;(WebMvcConfigurationSupport.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:673) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;webmvc&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;autoconfigure&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;web&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;servlet&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;WebMvcAutoConfiguration$EnableWebMvcConfiguration&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;requestMappingHandlerAdapter&lt;/span&gt;(WebMvcAutoConfiguration.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:419) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;NativeMethodAccessorImpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke0&lt;/span&gt;(Native Method) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;NativeMethodAccessorImpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke&lt;/span&gt;(NativeMethodAccessorImpl.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:62) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DelegatingMethodAccessorImpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke&lt;/span&gt;(DelegatingMethodAccessorImpl.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:43) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Method&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke&lt;/span&gt;(Method.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:566) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SimpleInstantiationStrategy&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiate&lt;/span&gt;(SimpleInstantiationStrategy.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:154) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ... 25 common frames omitted
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Caused by: org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanInstantiationException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; instantiate &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;autoconfigure&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HttpMessageConverters&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Factory method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;messageConverters&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; threw exception; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;UnsatisfiedDependencyException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Unsatisfied dependency expressed through method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; parameter 0; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;jacksonObjectMapper&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jackson&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonAutoConfiguration$JacksonObjectMapperConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Post&lt;span style="color:#f92672"&gt;-&lt;/span&gt;processing of merged bean definition failed; nested exception is java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;IllegalStateException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; introspect Class &lt;span style="color:#f92672"&gt;[&lt;/span&gt;com.&lt;span style="color:#a6e22e"&gt;fasterxml&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jackson&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;databind&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ObjectMapper&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; from ClassLoader &lt;span style="color:#f92672"&gt;[&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoaders$AppClassLoader&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;@2437c6dc&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SimpleInstantiationStrategy&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiate&lt;/span&gt;(SimpleInstantiationStrategy.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:185) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiate&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:653) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ... 49 common frames omitted
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Caused by: org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;UnsatisfiedDependencyException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;http&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Unsatisfied dependency expressed through method &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;mappingJackson2HttpMessageConverter&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; parameter 0; nested exception is org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;jacksonObjectMapper&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jackson&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonAutoConfiguration$JacksonObjectMapperConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Post&lt;span style="color:#f92672"&gt;-&lt;/span&gt;processing of merged bean definition failed; nested exception is java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;IllegalStateException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; introspect Class &lt;span style="color:#f92672"&gt;[&lt;/span&gt;com.&lt;span style="color:#a6e22e"&gt;fasterxml&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jackson&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;databind&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ObjectMapper&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; from ClassLoader &lt;span style="color:#f92672"&gt;[&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoaders$AppClassLoader&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;@2437c6dc&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createArgumentArray&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:800) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiateUsingFactoryMethod&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:541) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiateUsingFactoryMethod&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1352) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createBeanInstance&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1195) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doCreateBean&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:582) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createBean&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:542) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;lambda$doGetBean$0&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:335) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultSingletonBeanRegistry&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getSingleton&lt;/span&gt;(DefaultSingletonBeanRegistry.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:234) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doGetBean&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:333) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getBean&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:208) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;config&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DependencyDescriptor&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;resolveCandidate&lt;/span&gt;(DependencyDescriptor.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:276) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;addCandidateEntry&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1614) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;findAutowireCandidates&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1571) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;resolveMultipleBeans&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1415) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doResolveDependency&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1347) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory$DependencyObjectProvider&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;resolveStream&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:2117) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory$DependencyObjectProvider&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;orderedStream&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:2111) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;boot&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;autoconfigure&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;http&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;HttpMessageConvertersAutoConfiguration&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;messageConverters&lt;/span&gt;(HttpMessageConvertersAutoConfiguration.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:70) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;-&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;-&lt;/span&gt;2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:2.&lt;span style="color:#a6e22e"&gt;6&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;NativeMethodAccessorImpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke0&lt;/span&gt;(Native Method) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;NativeMethodAccessorImpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke&lt;/span&gt;(NativeMethodAccessorImpl.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:62) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DelegatingMethodAccessorImpl&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke&lt;/span&gt;(DelegatingMethodAccessorImpl.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:43) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;reflect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Method&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;invoke&lt;/span&gt;(Method.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:566) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;SimpleInstantiationStrategy&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;instantiate&lt;/span&gt;(SimpleInstantiationStrategy.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:154) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ... 50 common frames omitted
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Caused by: org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BeanCreationException&lt;/span&gt;: Error creating bean &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; name &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;jacksonObjectMapper&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; defined in &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt; resource &lt;span style="color:#f92672"&gt;[&lt;/span&gt;org&lt;span style="color:#f92672"&gt;/&lt;/span&gt;springframework&lt;span style="color:#f92672"&gt;/&lt;/span&gt;boot&lt;span style="color:#f92672"&gt;/&lt;/span&gt;autoconfigure&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jackson&lt;span style="color:#f92672"&gt;/&lt;/span&gt;JacksonAutoConfiguration$JacksonObjectMapperConfiguration.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;: Post&lt;span style="color:#f92672"&gt;-&lt;/span&gt;processing of merged bean definition failed; nested exception is java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;IllegalStateException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; introspect Class &lt;span style="color:#f92672"&gt;[&lt;/span&gt;com.&lt;span style="color:#a6e22e"&gt;fasterxml&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jackson&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;databind&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ObjectMapper&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; from ClassLoader &lt;span style="color:#f92672"&gt;[&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoaders$AppClassLoader&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;@2437c6dc&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doCreateBean&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:597) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createBean&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:542) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;lambda$doGetBean$0&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:335) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultSingletonBeanRegistry&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getSingleton&lt;/span&gt;(DefaultSingletonBeanRegistry.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:234) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doGetBean&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:333) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getBean&lt;/span&gt;(AbstractBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:208) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;config&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DependencyDescriptor&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;resolveCandidate&lt;/span&gt;(DependencyDescriptor.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:276) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doResolveDependency&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1389) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;DefaultListableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;resolveDependency&lt;/span&gt;(DefaultListableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1309) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;resolveAutowiredArgument&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:887) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ConstructorResolver&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;createArgumentArray&lt;/span&gt;(ConstructorResolver.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:791) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ... 72 common frames omitted
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Caused by: java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;IllegalStateException&lt;/span&gt;: Failed &lt;span style="color:#66d9ef"&gt;to&lt;/span&gt; introspect Class &lt;span style="color:#f92672"&gt;[&lt;/span&gt;com.&lt;span style="color:#a6e22e"&gt;fasterxml&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jackson&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;databind&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ObjectMapper&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; from ClassLoader &lt;span style="color:#f92672"&gt;[&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoaders$AppClassLoader&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;@2437c6dc&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;util&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ReflectionUtils&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getDeclaredMethods&lt;/span&gt;(ReflectionUtils.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:481) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;core&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;util&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ReflectionUtils&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doWithLocalMethods&lt;/span&gt;(ReflectionUtils.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:321) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;core&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;InitDestroyAnnotationBeanPostProcessor&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;buildLifecycleMetadata&lt;/span&gt;(InitDestroyAnnotationBeanPostProcessor.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:232) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;InitDestroyAnnotationBeanPostProcessor&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;findLifecycleMetadata&lt;/span&gt;(InitDestroyAnnotationBeanPostProcessor.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:210) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;InitDestroyAnnotationBeanPostProcessor&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;postProcessMergedBeanDefinition&lt;/span&gt;(InitDestroyAnnotationBeanPostProcessor.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:149) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;context&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;annotation&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;CommonAnnotationBeanPostProcessor&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;postProcessMergedBeanDefinition&lt;/span&gt;(CommonAnnotationBeanPostProcessor.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:305) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;context&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;applyMergedBeanDefinitionPostProcessors&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:1116) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;beans&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;factory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;support&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;AbstractAutowireCapableBeanFactory&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;doCreateBean&lt;/span&gt;(AbstractAutowireCapableBeanFactory.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:594) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;beans&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ... 82 common frames omitted
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Caused by: java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;NoClassDefFoundError&lt;/span&gt;: com&lt;span style="color:#f92672"&gt;/&lt;/span&gt;fasterxml&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jackson&lt;span style="color:#f92672"&gt;/&lt;/span&gt;core&lt;span style="color:#f92672"&gt;/&lt;/span&gt;exc&lt;span style="color:#f92672"&gt;/&lt;/span&gt;StreamWriteException
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Class&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getDeclaredMethods0&lt;/span&gt;(Native Method) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Class&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;privateGetDeclaredMethods&lt;/span&gt;(Class.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:3167) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;Class&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getDeclaredMethods&lt;/span&gt;(Class.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:2310) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at org.&lt;span style="color:#a6e22e"&gt;springframework&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;util&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ReflectionUtils&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getDeclaredMethods&lt;/span&gt;(ReflectionUtils.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:463) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;spring&lt;span style="color:#f92672"&gt;-&lt;/span&gt;core&lt;span style="color:#f92672"&gt;-&lt;/span&gt;5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jar&lt;/span&gt;:5.&lt;span style="color:#a6e22e"&gt;3&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;15&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ... 89 common frames omitted
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Caused by: java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassNotFoundException&lt;/span&gt;: com.&lt;span style="color:#a6e22e"&gt;fasterxml&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;jackson&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;core&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;exc&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;StreamWriteException&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;BuiltinClassLoader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loadClass&lt;/span&gt;(BuiltinClassLoader.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:582) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;jdk.&lt;span style="color:#a6e22e"&gt;internal&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoaders$AppClassLoader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loadClass&lt;/span&gt;(ClassLoaders.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:178) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; at java.&lt;span style="color:#a6e22e"&gt;base&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;java.&lt;span style="color:#a6e22e"&gt;lang&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ClassLoader&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;loadClass&lt;/span&gt;(ClassLoader.&lt;span style="color:#a6e22e"&gt;java&lt;/span&gt;:521) &lt;span style="color:#f92672"&gt;~[&lt;/span&gt;na:na&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ... 93 common frames omitted
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Disconnected from the target VM, address: &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;127.&lt;span style="color:#a6e22e"&gt;0&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;0&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;1&lt;/span&gt;:59002&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;, transport: &lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;socket&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Process finished &lt;span style="color:#66d9ef"&gt;with&lt;/span&gt; exit code 0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;报错提示&lt;strong&gt;ClassNotFoundException&lt;/strong&gt;，很明显，这种问题一般都是出现在缺少依赖的情况下的，但是&lt;strong&gt;jackson&lt;/strong&gt;这个东西，我之前一直用的好好的啊！怎么突然就说找不到了呢？
我在密密麻麻的POM文件中看了半天，也没发现什么问题。我也没做多大改动啊，怎么就跑不起来了呢？
我想了下，问题会不会是依赖冲突导致的？
我去看看&lt;strong&gt;External Libraries&lt;/strong&gt;：&lt;/p&gt;</description></item><item><title>Gradle 添加私有仓库</title><link>https://blog.imcaoxuan.cn/posts/57/</link><pubDate>Thu, 25 Aug 2022 09:18:33 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/57/</guid><description>&lt;!--markdown--&gt;# Gradle 添加私有仓库
&lt;h2 id="以android-studio为例"&gt;以Android Studio为例&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;在&lt;code&gt;build.gradle&lt;/code&gt;(Project)中添加maven{&amp;hellip;}，如下所示：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-groovy" data-lang="groovy"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;buildscript &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; repositories &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; maven &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; url &lt;span style="color:#e6db74"&gt;&amp;#34;https://maven.imcaoxuan.cn:8443/repository/public/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; credentials &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; username &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;public&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; password &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;public&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; google&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mavenCentral&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dependencies &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; classpath &lt;span style="color:#e6db74"&gt;&amp;#39;com.android.tools.build:gradle:7.0.4&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// NOTE: Do not place your application dependencies here; they belong
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// in the individual module build.gradle files
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在&lt;code&gt;settings.gradle&lt;/code&gt;(Project)中添加maven{&amp;hellip;}，如下所示：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-groovy" data-lang="groovy"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dependencyResolutionManagement &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; repositoriesMode&lt;span style="color:#f92672"&gt;.&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;set&lt;/span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;RepositoriesMode&lt;span style="color:#f92672"&gt;.&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;FAIL_ON_PROJECT_REPOS&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; repositories &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; maven &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; url &lt;span style="color:#e6db74"&gt;&amp;#34;https://maven.imcaoxuan.cn:8443/repository/public/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; credentials &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; username &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;public&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; password &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;public&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; google&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mavenCentral&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; jcenter&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#75715e"&gt;// Warning: this repository is going to shut down soon
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;3.Sync now!&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>转发：解决warning: LF will be replaced by CRLF in方法</title><link>https://blog.imcaoxuan.cn/posts/56/</link><pubDate>Sun, 21 Aug 2022 07:03:21 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/56/</guid><description>&lt;!--markdown--&gt;[https://blog.csdn.net/chenxijie1985/article/details/107759826][1]
&lt;p&gt;在windows下add代码时一直提示：warning: LF will be replaced by CRLF in，虽然没多大影响，但是看得不爽。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;解决办法：&lt;/p&gt;
&lt;p&gt;git config &amp;ndash;global core.autocrlf false&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>转发：Ubuntu 创建 RAID1 阵列</title><link>https://blog.imcaoxuan.cn/posts/54/</link><pubDate>Sun, 24 Jul 2022 15:55:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/54/</guid><description>&lt;!--markdown--&gt;转发：https://www.jianshu.com/p/3e6d5da2db81
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 列出所有磁盘信息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo fdisk -l
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 建立分区&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo fdisk /dev/sdb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 然后依次输入&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ n &lt;span style="color:#f92672"&gt;(&lt;/span&gt;新建分区表&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ p &lt;span style="color:#f92672"&gt;(&lt;/span&gt;主分区，然后根据提示操作&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ w &lt;span style="color:#f92672"&gt;(&lt;/span&gt;保存分区信息&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo mdadm --create --verbose /dev/md0 --level&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; --raid-devices&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; /dev/sdb1 /dev/sdc1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mdadm: Note: this array has metadata at the start and
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; may not be suitable as a boot device. If you plan to
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; store &lt;span style="color:#e6db74"&gt;&amp;#39;/boot&amp;#39;&lt;/span&gt; on this device please ensure that
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; your boot-loader understands md/v1.x metadata, or use
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --metadata&lt;span style="color:#f92672"&gt;=&lt;/span&gt;0.90
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mdadm: size set to 20953088K
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Continue creating array? y
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mdadm: Defaulting to version 1.2 metadata
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mdadm: array /dev/md0 started.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>JAVA_HOME</title><link>https://blog.imcaoxuan.cn/posts/52/</link><pubDate>Sun, 17 Jul 2022 13:36:33 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/52/</guid><description>&lt;!--markdown--&gt;# JAVA_HOME
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#JAVA_HOME&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export JAVA_HOME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/opt/jdk1.8.0_201
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export CLASSPATH&lt;span style="color:#f92672"&gt;=&lt;/span&gt;.:&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;JAVA_HOME&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;/lib:&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;JRE_HOME&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;/lib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export PATH&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;JAVA_HOME&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;/bin:$PATH
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>定时任务</title><link>https://blog.imcaoxuan.cn/posts/51/</link><pubDate>Sun, 17 Jul 2022 13:34:49 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/51/</guid><description>&lt;!--markdown--&gt;# 定时任务
&lt;p&gt;example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*/1 * * * * /home/admin/traffic.sh echo &amp;gt; /home/admin/log/traffic.log
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Ubuntu修改代理</title><link>https://blog.imcaoxuan.cn/posts/50/</link><pubDate>Sun, 17 Jul 2022 13:33:27 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/50/</guid><description>&lt;!--markdown--&gt;# Ubuntu修改代理
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim /etc/apt/apt.conf.d/90curtin-aptproxy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后&amp;hellip;&lt;/p&gt;</description></item><item><title>整合代码：TOTP+Hex+Base32</title><link>https://blog.imcaoxuan.cn/posts/49/</link><pubDate>Tue, 22 Mar 2022 11:54:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/49/</guid><description>&lt;!--markdown--&gt;代码引用：org.apache.commons.codec.binary.Base32, org.apache.commons.codec.binary.Hex, TOTP(Johan Rydell, PortWise, Inc)
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; javax.crypto.Mac;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; javax.crypto.spec.SecretKeySpec;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; java.lang.reflect.UndeclaredThrowableException;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; java.math.BigInteger;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; java.nio.charset.StandardCharsets;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; java.security.GeneralSecurityException;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; java.util.Arrays;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;TotpDemo&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; DIGITS_POWER
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 0 1 2 3 4 5 6 7 8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(String&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; args) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// todo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String secretKey &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Base32 base32 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; Base32();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; bytes &lt;span style="color:#f92672"&gt;=&lt;/span&gt; base32.&lt;span style="color:#a6e22e"&gt;decode&lt;/span&gt;(secretKey.&lt;span style="color:#a6e22e"&gt;toUpperCase&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// [-84, -88, -126, -19, 116, -72, -61, -58, 117, 53]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String hexKey &lt;span style="color:#f92672"&gt;=&lt;/span&gt; Hex.&lt;span style="color:#a6e22e"&gt;encodeHexString&lt;/span&gt;(bytes);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String hexTime &lt;span style="color:#f92672"&gt;=&lt;/span&gt; Long.&lt;span style="color:#a6e22e"&gt;toHexString&lt;/span&gt;(System.&lt;span style="color:#a6e22e"&gt;currentTimeMillis&lt;/span&gt;() &lt;span style="color:#f92672"&gt;/&lt;/span&gt; 30 &lt;span style="color:#f92672"&gt;/&lt;/span&gt; 1000);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;println&lt;/span&gt;(generateTOTP(hexKey, hexTime, &lt;span style="color:#e6db74"&gt;&amp;#34;6&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Hex&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; String &lt;span style="color:#a6e22e"&gt;encodeHexString&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; data) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; String(encodeHex(data));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;encodeHex&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; data) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; encodeHex(data, &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;encodeHex&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; data, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; toLowerCase) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; encodeHex(data, toLowerCase &lt;span style="color:#f92672"&gt;?&lt;/span&gt; DIGITS_LOWER : DIGITS_UPPER);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;encodeHex&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; data, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; toDigits) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; l &lt;span style="color:#f92672"&gt;=&lt;/span&gt; data.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; out &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;l &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; 1&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// two characters form the hex value.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0, j &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0; i &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; l; i&lt;span style="color:#f92672"&gt;++&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; out&lt;span style="color:#f92672"&gt;[&lt;/span&gt;j&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; toDigits&lt;span style="color:#f92672"&gt;[&lt;/span&gt;(0xF0 &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; data&lt;span style="color:#f92672"&gt;[&lt;/span&gt;i&lt;span style="color:#f92672"&gt;]&lt;/span&gt;) &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; 4&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; out&lt;span style="color:#f92672"&gt;[&lt;/span&gt;j&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; toDigits&lt;span style="color:#f92672"&gt;[&lt;/span&gt;0x0F &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; data&lt;span style="color:#f92672"&gt;[&lt;/span&gt;i&lt;span style="color:#f92672"&gt;]]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; out;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; DIGITS_LOWER &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {&lt;span style="color:#e6db74"&gt;&amp;#39;0&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;2&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;3&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;4&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;5&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;6&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;7&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;8&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;9&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;b&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;c&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;d&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;e&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;f&amp;#39;&lt;/span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * Used to build output as Hex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;char&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; DIGITS_UPPER &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {&lt;span style="color:#e6db74"&gt;&amp;#39;0&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;2&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;3&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;4&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;5&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;6&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;7&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;8&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;9&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;B&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;C&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;D&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;E&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;F&amp;#39;&lt;/span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; String &lt;span style="color:#a6e22e"&gt;generateTOTP&lt;/span&gt;(String key,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String time,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String returnDigits) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; generateTOTP(key, time, returnDigits, &lt;span style="color:#e6db74"&gt;&amp;#34;HmacSHA1&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;hmac_sha1&lt;/span&gt;(String crypto, &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; keyBytes,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; text) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;try&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Mac hmac;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hmac &lt;span style="color:#f92672"&gt;=&lt;/span&gt; Mac.&lt;span style="color:#a6e22e"&gt;getInstance&lt;/span&gt;(crypto);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; SecretKeySpec macKey &lt;span style="color:#f92672"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; SecretKeySpec(keyBytes, &lt;span style="color:#e6db74"&gt;&amp;#34;RAW&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hmac.&lt;span style="color:#a6e22e"&gt;init&lt;/span&gt;(macKey);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; hmac.&lt;span style="color:#a6e22e"&gt;doFinal&lt;/span&gt;(text);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;catch&lt;/span&gt; (GeneralSecurityException gse) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;throw&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; UndeclaredThrowableException(gse);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;hexStr2Bytes&lt;/span&gt;(String hex) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Adding one byte to get the right conversion&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// values starting with &amp;#34;0&amp;#34; can be converted&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; bArray &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; BigInteger(&lt;span style="color:#e6db74"&gt;&amp;#34;10&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; hex, 16).&lt;span style="color:#a6e22e"&gt;toByteArray&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Copy all the REAL bytes, not the &amp;#34;first&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; ret &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;bArray.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt; 1&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0; i &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; ret.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;; i&lt;span style="color:#f92672"&gt;++&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ret&lt;span style="color:#f92672"&gt;[&lt;/span&gt;i&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; bArray&lt;span style="color:#f92672"&gt;[&lt;/span&gt;i &lt;span style="color:#f92672"&gt;+&lt;/span&gt; 1&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; ret;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; String &lt;span style="color:#a6e22e"&gt;generateTOTP&lt;/span&gt;(String key,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String time,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String returnDigits,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String crypto) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; codeDigits &lt;span style="color:#f92672"&gt;=&lt;/span&gt; Integer.&lt;span style="color:#a6e22e"&gt;decode&lt;/span&gt;(returnDigits).&lt;span style="color:#a6e22e"&gt;intValue&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String result;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; hash;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Using the counter&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// First 8 bytes are for the movingFactor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Complaint with base RFC 4226 (HOTP)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; (time.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;() &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; 16)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; time &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;0&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; time;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Get the HEX in a Byte[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; msg &lt;span style="color:#f92672"&gt;=&lt;/span&gt; hexStr2Bytes(time);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Adding one byte to get the right conversion&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; k &lt;span style="color:#f92672"&gt;=&lt;/span&gt; hexStr2Bytes(key);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hash &lt;span style="color:#f92672"&gt;=&lt;/span&gt; hmac_sha1(crypto, k, msg);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// put selected bytes into result int&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; offset &lt;span style="color:#f92672"&gt;=&lt;/span&gt; hash&lt;span style="color:#f92672"&gt;[&lt;/span&gt;hash.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt; 1&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; 0xf;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; binary &lt;span style="color:#f92672"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ((hash&lt;span style="color:#f92672"&gt;[&lt;/span&gt;offset&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; 0x7f) &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; 24) &lt;span style="color:#f92672"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ((hash&lt;span style="color:#f92672"&gt;[&lt;/span&gt;offset &lt;span style="color:#f92672"&gt;+&lt;/span&gt; 1&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; 0xff) &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; 16) &lt;span style="color:#f92672"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ((hash&lt;span style="color:#f92672"&gt;[&lt;/span&gt;offset &lt;span style="color:#f92672"&gt;+&lt;/span&gt; 2&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; 0xff) &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; 8) &lt;span style="color:#f92672"&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (hash&lt;span style="color:#f92672"&gt;[&lt;/span&gt;offset &lt;span style="color:#f92672"&gt;+&lt;/span&gt; 3&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; 0xff);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; otp &lt;span style="color:#f92672"&gt;=&lt;/span&gt; binary &lt;span style="color:#f92672"&gt;%&lt;/span&gt; DIGITS_POWER&lt;span style="color:#f92672"&gt;[&lt;/span&gt;codeDigits&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; result &lt;span style="color:#f92672"&gt;=&lt;/span&gt; Integer.&lt;span style="color:#a6e22e"&gt;toString&lt;/span&gt;(otp);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; (result.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;() &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; codeDigits) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; result &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;0&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; result;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; result;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;abstract&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;BaseNCodec&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; EOF &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt; pad;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; MASK_8BITS &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0xff;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt; PAD_DEFAULT &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;=&amp;#39;&lt;/span&gt;; &lt;span style="color:#75715e"&gt;// Allow static access to default&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; unencodedBlockSize;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * Number of bytes in each full block of encoded data, e.g. 3 for Base64 and 8 for Base32
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; encodedBlockSize;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; lineLength;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * Size of chunk separator. Not used unless {@link #lineLength} &amp;amp;gt; 0.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; chunkSeparatorLength;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;BaseNCodec&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; unencodedBlockSize, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; encodedBlockSize,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; lineLength, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; chunkSeparatorLength, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt; pad) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;unencodedBlockSize&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; unencodedBlockSize;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;encodedBlockSize&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; encodedBlockSize;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; useChunking &lt;span style="color:#f92672"&gt;=&lt;/span&gt; lineLength &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; 0 &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; chunkSeparatorLength &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; 0;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;lineLength&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; useChunking &lt;span style="color:#f92672"&gt;?&lt;/span&gt; (lineLength &lt;span style="color:#f92672"&gt;/&lt;/span&gt; encodedBlockSize) &lt;span style="color:#f92672"&gt;*&lt;/span&gt; encodedBlockSize : 0;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;chunkSeparatorLength&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; chunkSeparatorLength;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;pad&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; pad;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;decode&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; String pArray) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; decode(pArray.&lt;span style="color:#a6e22e"&gt;getBytes&lt;/span&gt;(StandardCharsets.&lt;span style="color:#a6e22e"&gt;UTF_8&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;decode&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; pArray) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (pArray &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt; &lt;span style="color:#f92672"&gt;||&lt;/span&gt; pArray.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt; &lt;span style="color:#f92672"&gt;==&lt;/span&gt; 0) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; pArray;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; Context context &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; Context();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; decode(pArray, 0, pArray.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; decode(pArray, 0, EOF, context); &lt;span style="color:#75715e"&gt;// Notify decoder of EOF.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; result &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; readResults(result, 0, result.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; result;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;abstract&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;decode&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; pArray, &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i, &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; length, Context context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;readResults&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; b, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; bPos, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; bAvail, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; Context context) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt; &lt;span style="color:#f92672"&gt;!=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; len &lt;span style="color:#f92672"&gt;=&lt;/span&gt; Math.&lt;span style="color:#a6e22e"&gt;min&lt;/span&gt;(available(context), bAvail);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;arraycopy&lt;/span&gt;(context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt;, context.&lt;span style="color:#a6e22e"&gt;readPos&lt;/span&gt;, b, bPos, len);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;readPos&lt;/span&gt; &lt;span style="color:#f92672"&gt;+=&lt;/span&gt; len;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;readPos&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;=&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt;; &lt;span style="color:#75715e"&gt;// so hasData() will return false, and this method can return -1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; len;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;eof&lt;/span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt; EOF : 0;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;available&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; Context context) { &lt;span style="color:#75715e"&gt;// package protected for access from I/O streams&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt; &lt;span style="color:#f92672"&gt;!=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;readPos&lt;/span&gt; : 0;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;ensureBufferSize&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; size, Context context) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt; &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getDefaultBufferSize&lt;/span&gt;()&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;readPos&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; size &lt;span style="color:#f92672"&gt;-&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; 0) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; resizeBuffer(context, context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; size);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;getDefaultBufferSize&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; 8192;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;resizeBuffer&lt;/span&gt;(Context context, &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; minCapacity) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; oldCapacity &lt;span style="color:#f92672"&gt;=&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; newCapacity &lt;span style="color:#f92672"&gt;=&lt;/span&gt; oldCapacity &lt;span style="color:#f92672"&gt;*&lt;/span&gt; 2;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (compareUnsigned(newCapacity, minCapacity) &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; 0) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; newCapacity &lt;span style="color:#f92672"&gt;=&lt;/span&gt; minCapacity;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (compareUnsigned(newCapacity, 2147483639) &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; 0) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; newCapacity &lt;span style="color:#f92672"&gt;=&lt;/span&gt; createPositiveCapacity(minCapacity);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; b &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;newCapacity&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;arraycopy&lt;/span&gt;(context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt;, 0, b, 0, context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; b;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; b;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;compareUnsigned&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; x, &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; y) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; Integer.&lt;span style="color:#a6e22e"&gt;compare&lt;/span&gt;(x &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;2147483648, y &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;2147483648);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;createPositiveCapacity&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; minCapacity) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (minCapacity &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; 0) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;throw&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; OutOfMemoryError(&lt;span style="color:#e6db74"&gt;&amp;#34;Unable to allocate array size: &amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; ((&lt;span style="color:#66d9ef"&gt;long&lt;/span&gt;) minCapacity &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; 4294967295L));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; minCapacity &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; 2147483639 &lt;span style="color:#f92672"&gt;?&lt;/span&gt; minCapacity : 2147483639;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;containsAlphabetOrPad&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; arrayOctet) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (arrayOctet &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;false&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt; element : arrayOctet) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (pad &lt;span style="color:#f92672"&gt;==&lt;/span&gt; element &lt;span style="color:#f92672"&gt;||&lt;/span&gt; isInAlphabet(element)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;false&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;abstract&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;isInAlphabet&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt; value);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;isWhiteSpace&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt; byteToCheck) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;switch&lt;/span&gt; (byteToCheck) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39; &amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;\r&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;\t&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;default&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;false&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Context&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; ibitWorkArea;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;long&lt;/span&gt; lbitWorkArea;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; buffer;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; pos;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; readPos;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; eof;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; currentLinePos;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; modulus;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Context() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; String &lt;span style="color:#a6e22e"&gt;toString&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; String.&lt;span style="color:#a6e22e"&gt;format&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;%s[buffer=%s, currentLinePos=%s, eof=%s, ibitWorkArea=%s, lbitWorkArea=%s, modulus=%s, pos=%s, readPos=%s]&amp;#34;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getClass&lt;/span&gt;().&lt;span style="color:#a6e22e"&gt;getSimpleName&lt;/span&gt;(), Arrays.&lt;span style="color:#a6e22e"&gt;toString&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;buffer&lt;/span&gt;), &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;currentLinePos&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;eof&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;ibitWorkArea&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;modulus&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;readPos&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Base32&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;extends&lt;/span&gt; TotpForXuandembp.&lt;span style="color:#a6e22e"&gt;BaseNCodec&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; decodeSize;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; encodeSize;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; decodeTable;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; encodeTable;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; lineSeparator;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; BITS_PER_ENCODED_BYTE &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 5;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; BYTES_PER_ENCODED_BLOCK &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 8;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; BYTES_PER_UNENCODED_BLOCK &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 5;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;long&lt;/span&gt; MASK_2BITS &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0x03L;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;long&lt;/span&gt; MASK_7BITS &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0x7fL;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * Mask used to extract 6 bits, used when decoding final trailing character.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;long&lt;/span&gt; MASK_6BITS &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0x3fL;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * Mask used to extract 5 bits, used when encoding Base32 bytes
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; MASK_5BITS &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0x1f;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * Mask used to extract 4 bits, used when decoding final trailing character.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;long&lt;/span&gt; MASK_4BITS &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0x0fL;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * Mask used to extract 3 bits, used when decoding final trailing character.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;long&lt;/span&gt; MASK_3BITS &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0x07L;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/** Mask used to extract 2 bits, used when decoding final trailing character. */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * Mask used to extract 1 bits, used when decoding final trailing character.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;long&lt;/span&gt; MASK_1BITS &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0x01L;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Base32&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;false&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Base32&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; useHex) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;(0, &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt;, useHex, PAD_DEFAULT);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Base32&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; lineLength, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; lineSeparator, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; useHex, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt; pad) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;super&lt;/span&gt;(BYTES_PER_UNENCODED_BLOCK, BYTES_PER_ENCODED_BLOCK, lineLength,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; lineSeparator &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt; 0 : lineSeparator.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;, pad);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (useHex) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;encodeTable&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; HEX_ENCODE_TABLE;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;decodeTable&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; HEX_DECODE_TABLE;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;encodeTable&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; ENCODE_TABLE;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;decodeTable&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; DECODE_TABLE;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (lineLength &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; 0) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (lineSeparator &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;throw&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; IllegalArgumentException(&lt;span style="color:#e6db74"&gt;&amp;#34;lineLength &amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; lineLength &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34; &amp;gt; 0, but lineSeparator is null&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Must be done after initializing the tables&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (containsAlphabetOrPad(lineSeparator)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; String sep &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; String(lineSeparator, StandardCharsets.&lt;span style="color:#a6e22e"&gt;UTF_8&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;throw&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; IllegalArgumentException(&lt;span style="color:#e6db74"&gt;&amp;#34;lineSeparator must not contain Base32 characters: [&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; sep &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;]&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;encodeSize&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; BYTES_PER_ENCODED_BLOCK &lt;span style="color:#f92672"&gt;+&lt;/span&gt; lineSeparator.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;lineSeparator&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;lineSeparator.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;arraycopy&lt;/span&gt;(lineSeparator, 0, &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;lineSeparator&lt;/span&gt;, 0, lineSeparator.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;encodeSize&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; BYTES_PER_ENCODED_BLOCK;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;lineSeparator&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;null&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;decodeSize&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;encodeSize&lt;/span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt; 1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (isInAlphabet(pad) &lt;span style="color:#f92672"&gt;||&lt;/span&gt; isWhiteSpace(pad)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;throw&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; IllegalArgumentException(&lt;span style="color:#e6db74"&gt;&amp;#34;pad must not be in alphabet or whitespace&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; HEX_DECODE_TABLE &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 0 1 2 3 4 5 6 7 8 9 A B C D E F&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 00-0f&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 10-1f&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 20-2f&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 30-3f 2-7&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, &lt;span style="color:#75715e"&gt;// 40-4f A-O&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 25, 26, 27, 28, 29, 30, 31, &lt;span style="color:#75715e"&gt;// 50-56 P-V&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 57-5f Z-_&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, &lt;span style="color:#75715e"&gt;// 60-6f `-o&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 25, 26, 27, 28, 29, 30, 31 &lt;span style="color:#75715e"&gt;// 70-76 p-v&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; };
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * This array is a lookup table that translates 5-bit positive integer index values into their
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * &amp;#34;Base32 Hex Alphabet&amp;#34; equivalents as specified in Table 4 of RFC 4648.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; HEX_ENCODE_TABLE &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;0&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;1&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;2&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;3&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;4&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;5&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;6&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;7&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;8&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;9&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;B&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;C&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;D&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;E&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;F&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;G&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;H&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;I&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;J&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;K&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;L&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;M&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;N&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;O&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;P&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;Q&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;R&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;S&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;T&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;U&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;V&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; };
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; DECODE_TABLE &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 0 1 2 3 4 5 6 7 8 9 A B C D E F&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 00-0f&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 10-1f&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 20-2f&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, 26, 27, 28, 29, 30, 31, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 30-3f 2-7&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, &lt;span style="color:#75715e"&gt;// 40-4f A-O&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, &lt;span style="color:#75715e"&gt;// 50-5a P-Z&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, &lt;span style="color:#75715e"&gt;// 5b - 5f&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, &lt;span style="color:#75715e"&gt;// 60 - 6f a-o&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, &lt;span style="color:#75715e"&gt;// 70 - 7a p-z/**/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; };
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * This array is a lookup table that translates 5-bit positive integer index values into their &amp;#34;Base32 Alphabet&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * equivalents as specified in Table 3 of RFC 4648.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; ENCODE_TABLE &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;A&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;B&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;C&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;D&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;E&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;F&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;G&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;H&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;I&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;J&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;K&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;L&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;M&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;N&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;O&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;P&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;Q&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;R&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;S&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;T&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;U&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;V&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;W&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;X&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;Y&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;Z&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;2&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;3&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;4&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;5&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;6&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;7&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; };
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;validateCharacter&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;long&lt;/span&gt; emptyBitsMask, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; Context context) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Use the long bit work area&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; emptyBitsMask) &lt;span style="color:#f92672"&gt;!=&lt;/span&gt; 0) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;throw&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; IllegalArgumentException(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;Last encoded character (before the paddings if any) is a valid base 32 alphabet but not a possible value. &amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;Expected the discarded bits to be zero.&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;decode&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; input, &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; inPos, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; inAvail, &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; Context context) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// package protected for access from I/O streams&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;eof&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (inAvail &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; 0) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;eof&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0; i &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; inAvail; i&lt;span style="color:#f92672"&gt;++&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt; b &lt;span style="color:#f92672"&gt;=&lt;/span&gt; input&lt;span style="color:#f92672"&gt;[&lt;/span&gt;inPos&lt;span style="color:#f92672"&gt;++]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (b &lt;span style="color:#f92672"&gt;==&lt;/span&gt; pad) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// We&amp;#39;re done.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;eof&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; buffer &lt;span style="color:#f92672"&gt;=&lt;/span&gt; ensureBufferSize(decodeSize, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (b &lt;span style="color:#f92672"&gt;&amp;gt;=&lt;/span&gt; 0 &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; b &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;decodeTable&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; result &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;decodeTable&lt;/span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;b&lt;span style="color:#f92672"&gt;]&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (result &lt;span style="color:#f92672"&gt;&amp;gt;=&lt;/span&gt; 0) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;modulus&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;modulus&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; 1) &lt;span style="color:#f92672"&gt;%&lt;/span&gt; BYTES_PER_ENCODED_BLOCK;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// collect decoded bytes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;&amp;lt;&lt;/span&gt; BITS_PER_ENCODED_BYTE) &lt;span style="color:#f92672"&gt;+&lt;/span&gt; result;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;modulus&lt;/span&gt; &lt;span style="color:#f92672"&gt;==&lt;/span&gt; 0) { &lt;span style="color:#75715e"&gt;// we can output the 5 bytes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 32) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 24) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 16) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 8) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) (context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Two forms of EOF as far as Base32 decoder is concerned: actual&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// EOF (-1) and first time &amp;#39;=&amp;#39; character is encountered in stream.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// This approach makes the &amp;#39;=&amp;#39; padding characters completely optional.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;eof&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;modulus&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;=&lt;/span&gt; 2) { &lt;span style="color:#75715e"&gt;// if modulus &amp;lt; 2, nothing to do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;final&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; buffer &lt;span style="color:#f92672"&gt;=&lt;/span&gt; ensureBufferSize(decodeSize, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// we ignore partial bytes, i.e. only multiples of 8 count&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;switch&lt;/span&gt; (context.&lt;span style="color:#a6e22e"&gt;modulus&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; 2: &lt;span style="color:#75715e"&gt;// 10 bits, drop 2 and output one byte&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; validateCharacter(MASK_2BITS, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 2) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; 3: &lt;span style="color:#75715e"&gt;// 15 bits, drop 7 and output 1 byte&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; validateCharacter(MASK_7BITS, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 7) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; 4: &lt;span style="color:#75715e"&gt;// 20 bits = 2*8 + 4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; validateCharacter(MASK_4BITS, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 4; &lt;span style="color:#75715e"&gt;// drop 4 bits&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 8) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt;) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; 5: &lt;span style="color:#75715e"&gt;// 25bits = 3*8 + 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; validateCharacter(MASK_1BITS, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 16) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 8) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt;) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; 6: &lt;span style="color:#75715e"&gt;// 30bits = 3*8 + 6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; validateCharacter(MASK_6BITS, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 6;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 16) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 8) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt;) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;case&lt;/span&gt; 7: &lt;span style="color:#75715e"&gt;// 35 = 4*8 +3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; validateCharacter(MASK_3BITS, context);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 3;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 24) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 16) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&lt;/span&gt; 8) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; buffer&lt;span style="color:#f92672"&gt;[&lt;/span&gt;context.&lt;span style="color:#a6e22e"&gt;pos&lt;/span&gt;&lt;span style="color:#f92672"&gt;++]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt;) ((context.&lt;span style="color:#a6e22e"&gt;lbitWorkArea&lt;/span&gt;) &lt;span style="color:#f92672"&gt;&amp;amp;&lt;/span&gt; MASK_8BITS);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;default&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// modulus can be 0-7, and we excluded 0,1 already&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;throw&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; IllegalStateException(&lt;span style="color:#e6db74"&gt;&amp;#34;Impossible modulus &amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; context.&lt;span style="color:#a6e22e"&gt;modulus&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;@Override&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;protected&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;isInAlphabet&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;byte&lt;/span&gt; octet) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; octet &lt;span style="color:#f92672"&gt;&amp;gt;=&lt;/span&gt; 0 &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; octet &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; decodeTable.&lt;span style="color:#a6e22e"&gt;length&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; decodeTable&lt;span style="color:#f92672"&gt;[&lt;/span&gt;octet&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;!=&lt;/span&gt; &lt;span style="color:#f92672"&gt;-&lt;/span&gt;1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>转发：nginx反向代理websocket返回403</title><link>https://blog.imcaoxuan.cn/posts/48/</link><pubDate>Wed, 09 Feb 2022 14:06:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/48/</guid><description>&lt;!--markdown--&gt;原文：[Solution of nginx reverse proxy websocket response 403][1]
&lt;blockquote&gt;
&lt;p&gt;The log accessed through nginx has the following entry:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;DEBUG ... o.s.w.s.s.s.OriginHandshakeInterceptor : Handshake request rejected, Origin header value https://some-host.com not allowed
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Then Google queries related solutions to find the issue on GitHub, so
you only need to modify the configuration of nginx and
addproxy_set_header Origin &amp;ldquo;&amp;quot;;That’s it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;http {
//SSL related configuration&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 8020;
location /ws {
proxy_pass http://some-ip:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Origin &amp;quot;&amp;quot;;
}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在我的access.log中并未发现关于“Origin”的信息，但是按照此方案修改配置文件后却可以解决问题。
[1]: &lt;a href="https://developpaper.com/solution-of-nginx-reverse-proxy-websocket-response-403/"&gt;https://developpaper.com/solution-of-nginx-reverse-proxy-websocket-response-403/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>复习：StringBuilder和String拼接字符串效率差距真大</title><link>https://blog.imcaoxuan.cn/posts/45/</link><pubDate>Sun, 23 Jan 2022 07:20:22 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/45/</guid><description>&lt;!--markdown--&gt;今天在解析一个5M的文本文件时，耗时两分多钟，找了半天才发现原因是使用String += s的方式拼接字符串导致的。
&lt;p&gt;&lt;img alt="123-1.png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2022/01/2676324333.png"&gt;&lt;/p&gt;
&lt;p&gt;换成StringBuilder后速度提升了4个数量级！&lt;img alt="123-2.png" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2022/01/534282834.png"&gt;&lt;/p&gt;
&lt;p&gt;至于原因，大家应该都懂，我就不再赘述了。
&lt;strong&gt;基础不能忘！！！&lt;/strong&gt;
&lt;strong&gt;基础不能忘！！！&lt;/strong&gt;
&lt;strong&gt;基础不能忘！！！&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>转载：一个好用的zip库zip4j</title><link>https://blog.imcaoxuan.cn/posts/44/</link><pubDate>Sun, 23 Jan 2022 03:47:58 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/44/</guid><description>&lt;!--markdown--&gt;原文：[what-is-a-good-java-library-to-zip-unzip-files][1]
&lt;p&gt;Demo：@user2003470&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; net.lingala.zip4j.exception.ZipException;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; net.lingala.zip4j.core.ZipFile;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;unzip&lt;/span&gt;(){
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String source &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;some/compressed/file.zip&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String destination &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;some/destination/folder&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String password &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;password&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;try&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ZipFile zipFile &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; ZipFile(source);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (zipFile.&lt;span style="color:#a6e22e"&gt;isEncrypted&lt;/span&gt;()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; zipFile.&lt;span style="color:#a6e22e"&gt;setPassword&lt;/span&gt;(password);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; zipFile.&lt;span style="color:#a6e22e"&gt;extractAll&lt;/span&gt;(destination);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;catch&lt;/span&gt; (ZipException e) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; e.&lt;span style="color:#a6e22e"&gt;printStackTrace&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The Maven dependency is:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;net.lingala.zip4j&lt;span style="color:#f92672"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;zip4j&lt;span style="color:#f92672"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.3.2&lt;span style="color:#f92672"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Ubuntu20.04中使用snap安装的docker如何修改registry-mirrors</title><link>https://blog.imcaoxuan.cn/posts/41/</link><pubDate>Sun, 16 Jan 2022 14:24:43 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/41/</guid><description>&lt;!--markdown--&gt;如图：![cs.png][1]
&lt;p&gt;通过 &lt;code&gt;systemctl status snap.docker.dockerd.service&lt;/code&gt; 命令，可以找到daemon.json的路径&lt;/p&gt;</description></item><item><title>Ubuntu20.04中使用snap安装的docker如何开启远程访问？</title><link>https://blog.imcaoxuan.cn/posts/37/</link><pubDate>Sun, 16 Jan 2022 13:32:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/37/</guid><description>&lt;!--markdown--&gt;转发：https://superuser.com/questions/1431826/expose-api-over-tcp-of-snap-installed-docker-on-ubuntu-18-04
&lt;p&gt;@Rumdex&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;By running: &lt;code&gt;systemctl status snap.docker.dockerd.service&lt;/code&gt; I was able
to see which was the loaded service file:
&lt;code&gt;/etc/systemd/system/snap.docker.dockerd.service&lt;/code&gt; Just looked inside
this file looking for the &lt;code&gt;ExecStart&lt;/code&gt; directive. It was there. So just
had to add &lt;code&gt;-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock&lt;/code&gt; to
that line, so it ended up looking like:
&lt;code&gt;ExecStart=/usr/bin/snap run docker.dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock&lt;/code&gt;
Rebooted. Works.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>文件名中出现^M导致java.io.FileNotFoundException</title><link>https://blog.imcaoxuan.cn/posts/36/</link><pubDate>Tue, 16 Nov 2021 01:40:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/36/</guid><description>&lt;!--markdown--&gt;问题如图所示:
&lt;p&gt;&lt;img alt="微信图片_20211116093924.jpg" loading="lazy" src="https://www.caoxuan.top/usr/uploads/2021/11/3340062974.jpg"&gt;&lt;/p&gt;
&lt;p&gt;解决方案：vi filename打开文件，执行 : set ff=unix 设置文件为unix，然后执行:wq，保存成unix格式
参考：https://blog.csdn.net/ygy162/article/details/105364096/&lt;/p&gt;</description></item><item><title>用多个密钥解密同一个密文</title><link>https://blog.imcaoxuan.cn/posts/34/</link><pubDate>Tue, 21 Sep 2021 09:51:04 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/34/</guid><description>&lt;!--markdown--&gt;
&lt;p&gt;思想借鉴：https://www.zhihu.com/question/266180268&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;从严格意义上来说， 这并不是某个加密算法，能够同时允许多个密钥解密。 而是对称加密和非对称加密算法配合，实现将数据加密分发给多个人，能够让不同人使用自己的密钥解密数据&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在线测试：&lt;a href="https://tool.caoxuan.top/ui/secret/"&gt;Secret (caoxuan.top)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Demo（AES+RSA）:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;package&lt;/span&gt; t20210921;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; util.AESUtil;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; util.RSAUtil;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; java.util.ArrayList;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; java.util.List;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * @author Cao Xuan
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; * @date 2021/9/21 17:15
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Test&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;main&lt;/span&gt;(String&lt;span style="color:#f92672"&gt;[]&lt;/span&gt; args) &lt;span style="color:#66d9ef"&gt;throws&lt;/span&gt; Exception {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String publicKey &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrfQnSoLWLyob3d7PgZySgzRtAHCxyJaYs+Mqc2WeqwaxAlYV1vunmoadaVX00XzCqZej9HOxUbyxIJswrbKsK39mlj6LQ0VIVRngYgaYF5M7JsshiNnY0BCdmA39TzGtmdUDxppKQjyVT6MeUfqFO5NV9emWcrBKCad1Hql16AQIDAQAB&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String privateKey &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKt9CdKgtYvKhvd3s+BnJKDNG0AcLHIlpiz4ypzZZ6rBrECVhXW+6eahp1pVfTRfMKpl6P0c7FRvLEgmzCtsqwrf2aWPotDRUhVGeBiBpgXkzsmyyGI2djQEJ2YDf1PMa2Z1QPGmkpCPJVPox5R+oU7k1X16ZZysEoJp3UeqXXoBAgMBAAECgYBK/wrtr1TWBsNRtGrZB6KQJEL3nZqebPKolkFdqQJaPgrLz9gm71AxiZ67tclkvwB0dM8Y6q48GsZ942HE1+hQx/AUXiQH/TyTy6ZtgIV3zwNFD/fhlD57gpdxblFpoOvRrZGhwWEyut97DL8dugdBe6dMM5vBmtR3N+RG7/AsAQJBAOf2hULHYrYG45CfrxKG/dd8SVS4d2b/s192Y0WMYFkzOJcO9aRGz82Mg8q/8ET3QylYwLvdZR/rBKh1jYWtDyECQQC9QkIWh3fZWkewoIgrZim2Yu08yDTNTQGze7aZTWx1Msdlh7X5GvTbH2jxF2uM6R549rR7plDflmGt1KwXY27hAkA817agi3fi0u/BsYDUVUAj01/QrwnypENCWOU1CtsCyqKfTLc1vbUn7yFqfungzRJ6t+Ll4+5wbs6r+RmD5J7BAkEAnq4DAyipz87l9K1j/h82MflXt3KU8tzx5C6Btp83pDvi+rmCVU3Ipj/7mMhuIEMEjZ8rS9DyVcScOUbq0uFHgQJAdv7l4FlSd/MMBPGKKEe0fxJivn6+Laf3x+ZJNFOl7G5vFmzOSkA7Q8nlUebrBUpuxliGXlf06E9EQui2Z0ETVQ==&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String secretKey &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;60479f43-b296-4199-8d97-de472e1d37bd&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String plainText &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;cxnb&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String secretText &lt;span style="color:#f92672"&gt;=&lt;/span&gt; AESUtil.&lt;span style="color:#a6e22e"&gt;encrypt&lt;/span&gt;(plainText, secretKey);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;println&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;原文：&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; plainText);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;println&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;密文：&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; secretText);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; List&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;String&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; mySecretList &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; ArrayList&lt;span style="color:#f92672"&gt;&amp;lt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; (&lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; i &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0; i &lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt; 10; i&lt;span style="color:#f92672"&gt;++&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mySecretList.&lt;span style="color:#a6e22e"&gt;add&lt;/span&gt;(RSAUtil.&lt;span style="color:#a6e22e"&gt;encrypt&lt;/span&gt;(secretKey, publicKey));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;println&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;多密钥&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; mySecretList);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mySecretList.&lt;span style="color:#a6e22e"&gt;forEach&lt;/span&gt;(e &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;println&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;使用密钥&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; e &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;解密&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;try&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String s &lt;span style="color:#f92672"&gt;=&lt;/span&gt; AESUtil.&lt;span style="color:#a6e22e"&gt;decrypt&lt;/span&gt;(secretText, RSAUtil.&lt;span style="color:#a6e22e"&gt;decrypt&lt;/span&gt;(e, privateKey));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; System.&lt;span style="color:#a6e22e"&gt;out&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;println&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;解密成功&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; s);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#66d9ef"&gt;catch&lt;/span&gt; (Exception exception) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exception.&lt;span style="color:#a6e22e"&gt;printStackTrace&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>转发：mybatis 大坑之 useGeneratedKeys 返回值不是id，而是0跟1</title><link>https://blog.imcaoxuan.cn/posts/31/</link><pubDate>Sun, 22 Aug 2021 07:46:07 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/31/</guid><description>&lt;!--markdown--&gt;&gt; 打了断点一路追到底层，发现真tmd返回0跟1，后斜眼一看object的id改变了，妈的好神奇。
&lt;p&gt;原文：&lt;a href="https://blog.csdn.net/a5601564/article/details/77945958/"&gt;https://blog.csdn.net/a5601564/article/details/77945958/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>转发：mybatis报错：Error evaluating expression</title><link>https://blog.imcaoxuan.cn/posts/30/</link><pubDate>Sat, 21 Aug 2021 15:45:54 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/30/</guid><description>&lt;!--markdown--&gt;解决方案：
&lt;blockquote&gt;
&lt;p&gt;解决：if标签的test里面的表达式的and不能写成大写AND。（具体的原因本人没有详细探究过，估计是mybatis的语法不允许吧）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;原文：&lt;a href="https://blog.csdn.net/csdnyq/article/details/106841550"&gt;mybatis报错：Error evaluating expression&lt;/a&gt;&lt;/p&gt;</description></item><item><title>转发：Android Bitmap压缩图像的正确方法(compress的误区)</title><link>https://blog.imcaoxuan.cn/posts/29/</link><pubDate>Sun, 15 Aug 2021 06:08:34 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/29/</guid><description>&lt;!--markdown--&gt;**摘要：**
&lt;blockquote&gt;
&lt;p&gt;Bitmap.compress方法确实可以压缩图片，但压缩的是存储大小，即你放到disk上的大小&lt;/p&gt;
&lt;p&gt;我尝试过把品质设置为10，decode出来的Bitmap大小没变，但显示照片的质量非常差&lt;/p&gt;
&lt;p&gt;BitmapFactory.decodeByteArray方法对压缩后的byte[]解码后，得到的Bitmap大小依然和未压缩过一样&lt;/p&gt;
&lt;p&gt;如果你想要显示的Bitmap占用的内存少一点，还是需要去设置加载的像素长度和宽度（变成缩略图）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;原文地址：&lt;/strong&gt;&lt;a href="https://blog.csdn.net/T3/article/details/79665077"&gt;https://blog.csdn.net/T3/article/details/79665077&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Linux下使用jps命令报错</title><link>https://blog.imcaoxuan.cn/posts/25/</link><pubDate>Sat, 14 Aug 2021 06:14:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/25/</guid><description>&lt;!--markdown--&gt;# 问题：Linux下使用jps命令报错java.lang.Error: Properties init: Could not determine current working directory.
&lt;p&gt;![QQ截图20210814141543.png][1]&lt;/p&gt;
&lt;h1 id="解决方案"&gt;解决方案&lt;/h1&gt;
&lt;p&gt;![QQ截图20210814141703.png][2]&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ..
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;发现是因为刚才在xftp中删除了此目录导致的![QQ截图20210814141831.png][3]&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;cd到根目录，再尝试使用jps，发现问题已解决
[1]: &lt;a href="https://www.caoxuan.top/usr/uploads/2021/08/1556106767.png"&gt;https://www.caoxuan.top/usr/uploads/2021/08/1556106767.png&lt;/a&gt;
[2]: &lt;a href="https://www.caoxuan.top/usr/uploads/2021/08/3988254530.png"&gt;https://www.caoxuan.top/usr/uploads/2021/08/3988254530.png&lt;/a&gt;
[3]: &lt;a href="https://www.caoxuan.top/usr/uploads/2021/08/2498345376.png"&gt;https://www.caoxuan.top/usr/uploads/2021/08/2498345376.png&lt;/a&gt;&lt;/p&gt;</description></item><item><title>好久没写了，随便水一贴吧</title><link>https://blog.imcaoxuan.cn/posts/24/</link><pubDate>Tue, 20 Jul 2021 13:39:57 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/24/</guid><description>&lt;!--markdown--&gt;公元二〇二一年七月二十日星期二
&lt;p&gt;六月十一
辛丑年 牛
乙未月 己巳日&lt;/p&gt;
&lt;p&gt;2021/7/20&lt;/p&gt;</description></item><item><title>关于在Nginx中配置顶级域名与www域名之间跳转以及https和如何搭配CDN的综合解决方案</title><link>https://blog.imcaoxuan.cn/posts/22/</link><pubDate>Tue, 04 May 2021 13:08:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/22/</guid><description>&lt;!--markdown--&gt;# 关于在Nginx中配置顶级域名与www域名之间跳转以及https和如何搭配CDN的综合解决方案
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;&lt;/th&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;方案一&lt;/strong&gt;&lt;/th&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;方案二&lt;/strong&gt;（不推荐）&lt;/th&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;方案三&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;使用场景&lt;/td&gt;
&lt;td style="text-align: center"&gt;一般情况&lt;/td&gt;
&lt;td style="text-align: center"&gt;顶级域名存在邮件服务&lt;/td&gt;
&lt;td style="text-align: center"&gt;顶级域名存在邮件服务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;相对复杂度&lt;/td&gt;
&lt;td style="text-align: center"&gt;低&lt;/td&gt;
&lt;td style="text-align: center"&gt;中&lt;/td&gt;
&lt;td style="text-align: center"&gt;高&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;终点&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;code&gt;https://www.example.com&lt;/code&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;code&gt;https://www.example.com&lt;/code&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;code&gt;https://www.example.com&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;隐藏源站IP&lt;/td&gt;
&lt;td style="text-align: center"&gt;是&lt;/td&gt;
&lt;td style="text-align: center"&gt;是&lt;/td&gt;
&lt;td style="text-align: center"&gt;是&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;相对可用性&lt;/td&gt;
&lt;td style="text-align: center"&gt;高&lt;/td&gt;
&lt;td style="text-align: center"&gt;低&lt;/td&gt;
&lt;td style="text-align: center"&gt;高&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;缺点&lt;/td&gt;
&lt;td style="text-align: center"&gt;无法在顶级域名存在邮件服务的情况下使用&lt;/td&gt;
&lt;td style="text-align: center"&gt;无法直接访问&lt;code&gt;https://example.com&lt;/code&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;成本略高，配置麻烦&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;特殊要求&lt;/td&gt;
&lt;td style="text-align: center"&gt;无&lt;/td&gt;
&lt;td style="text-align: center"&gt;要求DNS服务商支持显性URL转发&lt;/td&gt;
&lt;td style="text-align: center"&gt;需要一台代理服务器&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="方案一"&gt;方案一&lt;/h2&gt;
&lt;h3 id="源站配置以nginx为例"&gt;源站配置（以Nginx为例）&lt;/h3&gt;
&lt;p&gt;​ &lt;a href="https://www.caoxuan.top/index.php/archives/20/"&gt;关于www和naked域名的重新向以及https的解决方案（以Nginx为例） - 西叉的代码屋 (caoxuan.top)&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="cdn配置以腾讯云为例"&gt;CDN配置（以腾讯云为例）&lt;/h3&gt;
&lt;h4 id="基础配置"&gt;基础配置&lt;/h4&gt;
&lt;p&gt;​ &lt;strong&gt;加速域名&lt;/strong&gt;：&lt;code&gt;www.example.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;​ &lt;strong&gt;源站类型&lt;/strong&gt;：自有源&lt;/p&gt;
&lt;p&gt;​ &lt;strong&gt;回源协议&lt;/strong&gt;：协议跟随&lt;/p&gt;
&lt;p&gt;​ &lt;strong&gt;源站地址&lt;/strong&gt;：1.1.1.1（源站IP）&lt;/p&gt;
&lt;p&gt;​ &lt;strong&gt;回源HOST&lt;/strong&gt;：&lt;code&gt;www.example.com&lt;/code&gt;&lt;/p&gt;
&lt;h4 id="https配置"&gt;HTTPS配置&lt;/h4&gt;
&lt;h5 id="强制跳转"&gt;强制跳转&lt;/h5&gt;
&lt;p&gt;​ &lt;strong&gt;跳转配置&lt;/strong&gt;：开&lt;/p&gt;
&lt;p&gt;​ &lt;strong&gt;跳转类型&lt;/strong&gt;：http-&amp;gt;https&lt;/p&gt;
&lt;p&gt;​ &lt;strong&gt;跳转方式&lt;/strong&gt;：301跳转&lt;/p&gt;
&lt;p&gt;​ &lt;strong&gt;携带头部&lt;/strong&gt;：否&lt;/p&gt;
&lt;h3 id="dns配置以阿里云为例"&gt;DNS配置（以阿里云为例）&lt;/h3&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;记录类型&lt;/strong&gt;&lt;/th&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;主机记录&lt;/strong&gt;&lt;/th&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;解析线路&lt;/strong&gt;&lt;/th&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;记录值&lt;/strong&gt;&lt;/th&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;TTL&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;CNAME&lt;/td&gt;
&lt;td style="text-align: center"&gt;www&lt;/td&gt;
&lt;td style="text-align: center"&gt;默认&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;code&gt;www.example.com.cdn.dnsv1.com&lt;/code&gt;（示例；实际以CDN控制台的为准）&lt;/td&gt;
&lt;td style="text-align: center"&gt;10分钟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;CNAME&lt;/td&gt;
&lt;td style="text-align: center"&gt;@&lt;/td&gt;
&lt;td style="text-align: center"&gt;默认&lt;/td&gt;
&lt;td style="text-align: center"&gt;&lt;code&gt;www.example.com&lt;/code&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;10分钟&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;hr&gt;
&lt;h3 id="路径表"&gt;路径表&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;起点&lt;/strong&gt;&lt;/th&gt;
&lt;th style="text-align: center"&gt;&lt;strong&gt;过程&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;浏览器请求次数&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;code&gt;http://example.com&lt;/code&gt;&lt;br /&gt;或&lt;br /&gt;&lt;code&gt;example.com&lt;/code&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;起点 -&amp;gt; CDN（301 &lt;code&gt;https://example.com&lt;/code&gt;）&lt;br /&gt;&lt;code&gt;https://example.com&lt;/code&gt; -&amp;gt; CDN -&amp;gt; 源站（301 &lt;code&gt;https://www.example.com&lt;/code&gt;）&lt;br /&gt;&lt;code&gt;https://www.example.com&lt;/code&gt; -&amp;gt; CDN -&amp;gt; 源站资源&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;code&gt;http://www.example.com&lt;/code&gt;&lt;br /&gt;或&lt;br /&gt;&lt;code&gt;www.example.com&lt;/code&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;起点 -&amp;gt; CDN（301 &lt;code&gt;https://www.example.com&lt;/code&gt;）&lt;br /&gt;&lt;code&gt;https://www.example.com&lt;/code&gt; -&amp;gt; CDN -&amp;gt; 源站资源&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;code&gt;https://example.com&lt;/code&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;起点 -&amp;gt; CDN -&amp;gt; 源站（301 &lt;code&gt;https://www.example.com&lt;/code&gt;）&lt;br /&gt;&lt;code&gt;https://www.example.com&lt;/code&gt; -&amp;gt; CDN -&amp;gt; 源站资源&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;&lt;code&gt;https://www.example.com&lt;/code&gt;&lt;/td&gt;
&lt;td style="text-align: center"&gt;起点 -&amp;gt; CDN -&amp;gt; 源站资源&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h3 id="应急解决方案保证可用性前提nginx配置与本方案的源站配置相同"&gt;应急解决方案（保证可用性；前提：Nginx配置与本方案的源站配置相同）&lt;/h3&gt;
&lt;h4 id="ssl出现问题"&gt;SSL出现问题&lt;/h4&gt;
&lt;h5 id="步骤一修改cdn的https配置"&gt;步骤一：修改CDN的HTTPS配置&lt;/h5&gt;
&lt;p&gt;​ 关闭强制跳转&lt;/p&gt;</description></item><item><title>关于www和naked域名的重新向以及https的解决方案（以Nginx为例）</title><link>https://blog.imcaoxuan.cn/posts/20/</link><pubDate>Tue, 04 May 2021 10:55:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/20/</guid><description>&lt;!--markdown--&gt;以下是nginx的相关配置
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#server1 http://example.com
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;listen&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;server_name&lt;/span&gt; &lt;span style="color:#e6db74"&gt;example.com&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;301&lt;/span&gt; &lt;span style="color:#e6db74"&gt;http://www.example.com&lt;/span&gt;$request_uri;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#server2 http://www.example.com
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;listen&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;server_name&lt;/span&gt; &lt;span style="color:#e6db74"&gt;www.example.com&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;301&lt;/span&gt; &lt;span style="color:#e6db74"&gt;https://&lt;/span&gt;$server_name$request_uri;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#server3 https://example.com
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;listen&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;443&lt;/span&gt; &lt;span style="color:#e6db74"&gt;ssl&lt;/span&gt; &lt;span style="color:#e6db74"&gt;http2&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;server_name&lt;/span&gt; &lt;span style="color:#e6db74"&gt;example.com&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_certificate&lt;/span&gt; &lt;span style="color:#e6db74"&gt;0000000_example.com.pem&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_certificate_key&lt;/span&gt; &lt;span style="color:#e6db74"&gt;0000000_example.com.key&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_session_cache&lt;/span&gt; &lt;span style="color:#e6db74"&gt;shared:SSL:10m&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_session_timeout&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;10m&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_protocols&lt;/span&gt; &lt;span style="color:#e6db74"&gt;TLSv1.2&lt;/span&gt; &lt;span style="color:#e6db74"&gt;TLSv1.3&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;301&lt;/span&gt; &lt;span style="color:#e6db74"&gt;https://www.example.com&lt;/span&gt;$request_uri;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#server4 https://www.example.com
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;server&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;listen&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;443&lt;/span&gt; &lt;span style="color:#e6db74"&gt;ssl&lt;/span&gt; ;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;server_name&lt;/span&gt; &lt;span style="color:#e6db74"&gt;www.example.com&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_certificate&lt;/span&gt; &lt;span style="color:#e6db74"&gt;0000000_example.com.pem&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_certificate_key&lt;/span&gt; &lt;span style="color:#e6db74"&gt;0000000_example.com.key&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_session_cache&lt;/span&gt; &lt;span style="color:#e6db74"&gt;shared:SSL:10m&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_session_timeout&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;10m&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;ssl_protocols&lt;/span&gt; &lt;span style="color:#e6db74"&gt;TLSv1.2&lt;/span&gt; &lt;span style="color:#e6db74"&gt;TLSv1.3&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;location&lt;/span&gt; &lt;span style="color:#e6db74"&gt;/&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;root&lt;/span&gt; &lt;span style="color:#e6db74"&gt;/usr/share/nginx/html&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;index&lt;/span&gt; &lt;span style="color:#e6db74"&gt;index.html&lt;/span&gt; &lt;span style="color:#e6db74"&gt;index.htm&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="faqs"&gt;FAQs&lt;/h2&gt;
&lt;p&gt;Q：为什么要重定向多次？而不直接重定向到 &lt;a href="https://www.example.com"&gt;https://www.example.com&lt;/a&gt; ？&lt;/p&gt;
&lt;p&gt;A：为了降低出错后的维护成本，当ssl出现问题时，只需修改一个server（server2）即可以http的方式访问，从而恢复正常工作。&lt;/p&gt;
&lt;p&gt;Q：这样做对SEO有影响吗？&lt;/p&gt;
&lt;p&gt;A：鄙人才疏学浅，请自行查阅资料了解。目前看来，使用Google可以搜索到本站的内容，但是某度却不行。&lt;/p&gt;</description></item><item><title>fastjson反序列化后缺失属性值</title><link>https://blog.imcaoxuan.cn/posts/17/</link><pubDate>Mon, 19 Apr 2021 15:09:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/17/</guid><description>&lt;!--markdown--&gt;**原因分析**：fastjson在反序列化时用的默认使用无参构造方法和getter与setter来构造对象，如果缺少无参构造方法，则会使用当前存在的构造方法（这个构造方法的参数可能不齐全）来构造对象。
&lt;p&gt;&lt;strong&gt;解决方案&lt;/strong&gt;：如果使用了Lombok，就在相应的实体类上添加注解*@NoArgsConstructor*；否则就手动重写无参构造方法。&lt;/p&gt;</description></item><item><title>RecyclerView只显示一条数据</title><link>https://blog.imcaoxuan.cn/posts/16/</link><pubDate>Thu, 15 Apr 2021 08:26:10 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/16/</guid><description>&lt;!--markdown--&gt;![QQ截图20210415162531.png][1]
&lt;p&gt;检查对应的item，将android:layout_height=&amp;ldquo;match_parent&amp;quot;改为android:layout_height=&amp;ldquo;wrap_content&amp;rdquo;。&lt;/p&gt;</description></item><item><title>简单实现负载均衡</title><link>https://blog.imcaoxuan.cn/posts/10/</link><pubDate>Sun, 21 Mar 2021 15:03:00 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/10/</guid><description>&lt;!--markdown--&gt;```java
&lt;p&gt;package algorithm.loadbalance;&lt;/p&gt;
&lt;p&gt;import com.alibaba.fastjson.JSON;&lt;/p&gt;
&lt;p&gt;import java.util.*;&lt;/p&gt;
&lt;p&gt;/**&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;@author Cao Xuan&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;@date 2021/3/21 20:04&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;@update 2021/5/5
*/
public class LoadBalanceDemo {&lt;/p&gt;
&lt;p&gt;private final List&lt;Server&gt; serverList = new ArrayList&amp;lt;&amp;gt;();&lt;/p&gt;
&lt;p&gt;/**&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;client -&amp;gt; server
*/
private final Map&amp;lt;Client, Server&amp;gt; clientServerMap = new HashMap&amp;lt;&amp;gt;();&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;/**&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;&amp;mdash;head&amp;mdash;tail&amp;mdash;&amp;gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;&amp;mdash;light&amp;mdash;weight&amp;mdash;&amp;gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;&amp;mdash;former&amp;mdash;latter&amp;ndash;&amp;gt;
*/
@Deprecated
private void sort() {
for (int i = serverList.size() - 1; i &amp;gt; 0; i&amp;ndash;) {
for (int j = i - 1; j &amp;gt; -1; j&amp;ndash;) {
Server latter = new Server(serverList.get(i));
Server former = new Server(serverList.get(j));
if (latter.getCurrentLoad().size() &amp;gt; former.getCurrentLoad().size()) {
serverList.set(i, former);
serverList.set(j, latter);
}
}
}
System.out.println(&amp;ldquo;sorting&amp;hellip;&amp;rdquo;);
}&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;/**&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;&amp;mdash;head&amp;mdash;tail&amp;mdash;&amp;gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;&amp;mdash;light&amp;mdash;weight&amp;mdash;&amp;gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;&amp;mdash;former&amp;mdash;latter&amp;ndash;&amp;gt;
*/
private void leafShift() {
int size = serverList.size();
for (int i = size - 2; i &amp;gt;= 0; i&amp;ndash;) {
Server latter = new Server(serverList.get(size - 1));
Server former = new Server(serverList.get(i));
if (latter.getCurrentLoad().size() &amp;gt; former.getCurrentLoad().size()) {
serverList.set(size - 1, former);
serverList.set(i, latter);
System.out.println(&amp;ldquo;leaf shift&amp;rdquo;);
}
}
}&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;private void rightShift(int index) {
int size = serverList.size();
for (int i = index + 1; i &amp;lt; size; i++) {
Server former = new Server(serverList.get(index));
Server latter = new Server(serverList.get(i));
if (former.getCurrentLoad().size() &amp;lt; latter.getCurrentLoad().size()) {
serverList.set(i, former);
serverList.set(index, latter);
System.out.println(&amp;ldquo;right shift&amp;rdquo;);
}
}
}&lt;/p&gt;
&lt;p&gt;public Server addClient(Client client) {
if (serverList.size() &amp;gt; 0) {
Server server = new Server(serverList.get(serverList.size() - 1));
String serverName = server.getName();
serverList.get(serverList.size() - 1).updateCurrentLoad(client);
System.out.println(&amp;ldquo;Hi,[&amp;rdquo; + client.getUsername() + &amp;ldquo;]. Assign [&amp;rdquo; + serverName + &amp;ldquo;] to you&amp;rdquo;);
leafShift();
show();
return server;
} else {
System.err.println(&amp;ldquo;no server&amp;rdquo;);
return null;
}
}&lt;/p&gt;
&lt;p&gt;public void removeClient(String clientName) {
Server server = clientServerMap.get(new Client(clientName));
int index = serverList.indexOf(server);
if (-1 != index) {
server.currentLoad.remove(new Client(clientName));
rightShift(index);
System.out.println(&amp;ldquo;remove a client [&amp;rdquo; + clientName + &amp;ldquo;]&amp;rdquo;);
} else {
System.err.println(&amp;ldquo;index = -1&amp;rdquo;);
}&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; show();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;public void addServer(String name) {
Server server = new Server(name, new HashSet&amp;lt;&amp;gt;());
if (serverList.contains(server)) {
System.err.println(&amp;ldquo;The server [&amp;rdquo; + name + &amp;ldquo;] already exists&amp;rdquo;);
show();
return;
}
serverList.add(server);
System.out.println(&amp;ldquo;add a server [&amp;rdquo; + name + &amp;ldquo;]&amp;rdquo;);
show();
}&lt;/p&gt;
&lt;p&gt;public void removeServer(String serverName) {
serverList.remove(new Server(serverName));
System.out.println(&amp;ldquo;add a server [&amp;rdquo; + serverName + &amp;ldquo;]&amp;rdquo;);
show();
}&lt;/p&gt;
&lt;p&gt;private static class Client {&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; private String username;
public Client(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Client)) {
return false;
}
Client client = (Client) obj;
return this.getUsername().equals(client.getUsername());
}
@Override
public int hashCode() {
return Objects.hash(username);
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;private static class Server {&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; private String name;
private Set&amp;lt;Client&amp;gt; currentLoad;
public Server(String name) {
this.name = name;
}
public Server(Server server) {
this.name = server.name;
this.currentLoad = server.currentLoad;
}
public Server(String name, Set&amp;lt;Client&amp;gt; currentLoad) {
this.name = name;
this.currentLoad = currentLoad;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set&amp;lt;Client&amp;gt; getCurrentLoad() {
return currentLoad;
}
public void setCurrentLoad(Set&amp;lt;Client&amp;gt; currentLoad) {
this.currentLoad = currentLoad;
}
public void updateCurrentLoad(Client client) {
this.currentLoad.add(client);
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Server)) {
return false;
}
Server server = (Server) obj;
return this.getName().equals(server.getName());
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;public static void main(String[] args) {&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; LoadBalanceDemo loadBalanceDemo = new LoadBalanceDemo();
System.out.println(&amp;quot;---------------USAGE--------------&amp;quot;);
System.out.println(&amp;quot;Add a server: [s+${serverName}]&amp;quot;);
System.out.println(&amp;quot;Add a client: [c+${clientName}]&amp;quot;);
System.out.println(&amp;quot;Remove a server: [s-${serverName}]&amp;quot;);
System.out.println(&amp;quot;Remove a client: [c-${clientName}]&amp;quot;);
System.out.println(&amp;quot;Show Current Load: [show]&amp;quot;);
System.out.println(&amp;quot;---------------USAGE--------------&amp;quot;);
while (true) {
System.out.println(&amp;quot;ready&amp;quot;);
System.out.println();
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
if (&amp;quot;show&amp;quot;.equals(s)) {
loadBalanceDemo.show();
} else if (s.startsWith(&amp;quot;c+&amp;quot;)) {
String clientName = s.substring(2);
Client client = new Client(clientName);
Server server = loadBalanceDemo.addClient(client);
loadBalanceDemo.clientServerMap.put(client, server);
} else if (s.startsWith(&amp;quot;s+&amp;quot;)) {
String serverName = s.substring(2);
loadBalanceDemo.addServer(serverName);
} else if (s.startsWith(&amp;quot;c-&amp;quot;)) {
String clientName = s.substring(2);
loadBalanceDemo.removeClient(clientName);
} else if (s.startsWith(&amp;quot;s-&amp;quot;)) {
String serverName = s.substring(2);
loadBalanceDemo.removeServer(serverName);
} else {
System.out.println(&amp;quot;?&amp;quot;);
}
System.out.println(&amp;quot;----------------------------------&amp;quot;);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;private void show() {
System.out.println(&amp;ldquo;current load &amp;quot; + serverList);
}
}&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>群晖 GitServer用户为空的解决办法</title><link>https://blog.imcaoxuan.cn/posts/9/</link><pubDate>Fri, 26 Feb 2021 08:07:10 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/9/</guid><description>&lt;!--markdown--&gt;参考https://chaolucky.com/blog/12/03-927.html
&lt;p&gt;sudo cp /var/packages/Git/target/webapi/SYNO.Git.lib /var/packages/Git/target/webapi/SYNO.Git.lib.bak
sudo vi /var/packages/Git/target/webapi/SYNO.Git.lib
删掉appPriv 之后的SYNO.SDS.GIT.Instance
保存退出&lt;/p&gt;</description></item><item><title>欢迎使用 Typecho</title><link>https://blog.imcaoxuan.cn/posts/1/</link><pubDate>Thu, 17 Dec 2020 15:40:52 +0000</pubDate><guid>https://blog.imcaoxuan.cn/posts/1/</guid><description>&lt;!--markdown--&gt;如果您看到这篇文章,表示您的 blog 已经安装成功.</description></item></channel></rss>