n$, and $G$ is pseudorandom
-
-$$
-\{G(U_n)\}\approx \{U_{l(n)}\}
-$$
-
-Back to the experiment we did long time ago:
-
-||Group 1|Group 2|
-|---|---|---|
-|$00000$ or $11111$|3|16|
-|4 of 1's|42|56|
-|balanced|too often|usual|
-|consecutive repeats|0|4|
-
-So Group 1 is human, Group 2 is computer.
-
-## Chapter 3: Indistinguishability and Pseudorandomness
-
-### Computationally secure encryption
-
-Recall with perfect security,
-
-$$
-P[k\gets Gen(1^n):Enc_k(m_1)=c] = P[k\gets Gen(1^n):Enc_k(m_2)=c]
-$$
-
-for all $m_1,m_2\in M$ and $c\in C$.
-
-$(Gen,Enc,Dec)$ is **single message secure** if $\forall n.u.p.p.t \mathcal{D}$ and for all $n\in \mathbb{N}$, $\forall m_1,m_2\gets \{0,1\}^n \in M^n$, $\mathcal{D}$ distinguishes $Enc_k(m_1)$ and $Enc_k(m_2)$ with at most negligble probability.
-
-$$
-P[k\gets Gen(1^n):\mathcal{D}(Enc_k(m_1),Enc_k(m_2))=1] \leq \epsilon(n)
-$$
-
-By the prediction lemma, ($\mathcal{A}$ is a ppt, you can also name it as $\mathcal{D}$)
-
-$$
-P[b\gets \{0,1\}:k\gets Gen(1^n):\mathcal{A}(Enc_k(m_b)) = b] \leq \frac{1}{2} + \frac{\epsilon(n)}{2}
-$$
-
-and the above equation is $\frac{1}{2}$ for perfect secrecy.
-
-### Construction of single message secure cryptosystem
-
-cryptosystem with shorter keys. Mimic OTP(one time pad) with shorter keys with pseudorandom randomness.
-
-$K=\{0,1\}^n$, $\mathcal{M}=\{0,1\}^{l(n)}$, $G:K \to \mathcal{M}$ is a PRG.
-
-$Gen(1^n)$: $k\gets \{0,1\}^n$; output $k$.
-
-$Enc_k(m)$: $r\gets \{0,1\}^{l(n)}$; output $G(k)\oplus m$.
-
-$Dec_k(c)$: output $G(k)\oplus c$.
-
-Proof of security:
-
-Let $m_0,m_1\in \mathcal{M}$ be two messages, and $\mathcal{D}$ is a n.u.p.p.t distinguisher.
-
-Suppose $\{K\gets Gen(1^n):Enc_k(m_i)\}$ is distinguished for $i=0,1$ by $\mathcal{D}$ and by $\mu(n)\geq\frac{1}{poly(n)}$.
-
-Strategy: Move to OTP, then flip message.
-
-$$
-H_0(Enc_k(m_0)) = \{k\gets \{0,1\}^n: m_0\oplus G(k)\}
-$$
-$$
-H_1(OTP(m_1)) = \{u\gets U_{l(n)}: m_o\oplus u\}
-$$
-$$
-H_2(OTP(m_1)) = \{u\gets U_{l(n)}: m_1\oplus u\}
-$$
-$$
-H_3(Enc_k(m_0)) = \{k\gets \{0,1\}^n: m_1\oplus G(k)\}
-$$
-
-By hybrid argument, 2 neighboring messages are indistinguishable.
-
-However, $H_0$ and $H_1$ are indistinguishable since $G(U_n)$ and $U_{l(n)}$ are indistinguishable.
-
-$H_1$ and $H_2$ are indistinguishable by perfect secrecy of OTP.
-
-$H_2$ and $H_3$ are indistinguishable since $G(U_n)$ and $U_{l(n)}$ are indistinguishable.
-
-Which leads to a contradiction.
-
-### Multi-message secure encryption
-
-$(Gen,Enc,Dec)$ is multi-message secure if $\forall n.u.p.p.t \mathcal{D}$ and for all $n\in \mathbb{N}$, and $q(n)\in poly(n)$.
-
-$$
-\overline{m}=(m_1,\dots,m_{q(n)})
-$$
-$$
-\overline{m}'=(m_1',\dots,m_{q(n)}')
-$$
-
-are list of $q(n)$ messages in $\{0,1\}^n$.
-
-$\mathcal{D}$ distinguishes $Enc_k(\overline{m})$ and $Enc_k(\overline{m}')$ with at most negligble probability.
-
-$$
-P[k\gets Gen(1^n):\mathcal{D}(Enc_k(\overline{m}),Enc_k(\overline{m}'))=1] \leq \frac{1}{2} + \epsilon(n)
-$$
-
-**THIS IS NOT MULTI-MESSAGE SECURE.**
-
-We can take $\overline{m}=(0^n,0^n)\to (G(k),G(k))$ and $\overline{m}'=(0^n,1^n)\to (G(k),G(k)+1^n)$ the distinguisher can easily distinguish if some message was sent twice.
-
-What we need is that the distinguisher cannot distinguish if some message was sent twice. To achieve multi-message security, we need our encryption function to use randomness (or change states) for each message, otherwise $Enc_k(0^n)$ will return the same on consecutive messages.
-
-Our fix is, if we can agree on a random function $F:\{0,1\}^n\to \{0,1\}^n$ satisfied that: for each input $x\in\{0,1\}^n$, $F(x)$ is chosen uniformly at random.
-
-$Gen(1^n):$ Choose random function $F:\{0,1\}^n\to \{0,1\}^n$.
-
-$Enc_F(m):$ let $r\gets U_n$; output $(r,F(r)\oplus m)$.
-
-$Dec_F(m):$ Given $(r,c)$, output $m=F(r)\oplus c$.
-
-Ideas: Adversary sees $r$ but has no Ideas about $F(r)$. (we choose all outputs at random)
-
-If we could do this, this is MMS (multi-message secure).
-
-Proof:
-
-Suppose $m_1,m_2,\dots,m_{q(n)}$, $m_1',\dots,m_{q(n)}'$ are sent to the encryption oracle.
-
-Suppose the encryption are distinguished by $\mathcal{D}$ with probability $\frac{1}{2}+\epsilon(n)$.
-
-Strategy: move to OTP with hybrid argument.
-
-Suppose we choose a random function
-
-$$
-H_0:\{F\gets RF_n:((r_1,m_1\oplus F(r_1)),(r_2,m_2\oplus F(r_2)),\dots,(r_{q(n)},m_{q(n)}\oplus F(r_{q(n)})))\}
-$$
-
-and
-
-$$
-H_1:\{OTP:(r_1,m_1\oplus u_1),(r_2,m_2\oplus u_2),\dots,(r_{q(n)},m_{q(n)}\oplus u_{q(n)})\}
-$$
-
-$r_i,u_i\in U_n$.
-
-By hybrid argument, $H_0$ and $H_1$ are indistinguishable if $r_1,\dots,r_{q(n)}$ are different, these are the same.
-
-$F(r_1),\dots,F(r_{q(n)})$ are chosen uniformly and independently at random.
-
-only possible problem is $r_i=r_j$ for some $i\neq j$, and $P[r_i=r_j]=\frac{1}{2^n}$.
-
-And the probability that at least one pair are equal
-
-$$
-P[\text{at least one pair are equal}] =P[\bigcup_{i\neq j}\{r_i=r_j\}] \leq \sum_{i\neq j}P[r_i=r_j]=\binom{n}{2}\frac{1}{2^n} < \frac{n^2}{2^{n+1}}
-$$
-
-which is negligible.
-
-Unfortunately, we cannot do this in practice.
-
-How many random functions are there?
-
-The length of description of $F$ is $n 2^n$.
-
-For each $x\in \{0,1\}^n$, there are $2^n$ possible values for $F(x)$.
-
-So the total number of random functions is $(2^n)^{2^n}=2^{n2^n}$.
-
-
+# Lecture 14
+
+## Recap
+
+$\exists$ one-way functions $\implies$ $\exists$ PRG expand by any polynomial amount
+
+$\exists G:\{0,1\}^n \to \{0,1\}^{l(n)}$ s.t. $G$ is efficiently computable, $l(n) > n$, and $G$ is pseudorandom
+
+$$
+\{G(U_n)\}\approx \{U_{l(n)}\}
+$$
+
+Back to the experiment we did long time ago:
+
+||Group 1|Group 2|
+|---|---|---|
+|$00000$ or $11111$|3|16|
+|4 of 1's|42|56|
+|balanced|too often|usual|
+|consecutive repeats|0|4|
+
+So Group 1 is human, Group 2 is computer.
+
+## Chapter 3: Indistinguishability and Pseudorandomness
+
+### Computationally secure encryption
+
+Recall with perfect security,
+
+$$
+P[k\gets Gen(1^n):Enc_k(m_1)=c] = P[k\gets Gen(1^n):Enc_k(m_2)=c]
+$$
+
+for all $m_1,m_2\in M$ and $c\in C$.
+
+$(Gen,Enc,Dec)$ is **single message secure** if $\forall n.u.p.p.t \mathcal{D}$ and for all $n\in \mathbb{N}$, $\forall m_1,m_2\gets \{0,1\}^n \in M^n$, $\mathcal{D}$ distinguishes $Enc_k(m_1)$ and $Enc_k(m_2)$ with at most negligble probability.
+
+$$
+P[k\gets Gen(1^n):\mathcal{D}(Enc_k(m_1),Enc_k(m_2))=1] \leq \epsilon(n)
+$$
+
+By the prediction lemma, ($\mathcal{A}$ is a ppt, you can also name it as $\mathcal{D}$)
+
+$$
+P[b\gets \{0,1\}:k\gets Gen(1^n):\mathcal{A}(Enc_k(m_b)) = b] \leq \frac{1}{2} + \frac{\epsilon(n)}{2}
+$$
+
+and the above equation is $\frac{1}{2}$ for perfect secrecy.
+
+### Construction of single message secure cryptosystem
+
+cryptosystem with shorter keys. Mimic OTP(one time pad) with shorter keys with pseudorandom randomness.
+
+$K=\{0,1\}^n$, $\mathcal{M}=\{0,1\}^{l(n)}$, $G:K \to \mathcal{M}$ is a PRG.
+
+$Gen(1^n)$: $k\gets \{0,1\}^n$; output $k$.
+
+$Enc_k(m)$: $r\gets \{0,1\}^{l(n)}$; output $G(k)\oplus m$.
+
+$Dec_k(c)$: output $G(k)\oplus c$.
+
+Proof of security:
+
+Let $m_0,m_1\in \mathcal{M}$ be two messages, and $\mathcal{D}$ is a n.u.p.p.t distinguisher.
+
+Suppose $\{K\gets Gen(1^n):Enc_k(m_i)\}$ is distinguished for $i=0,1$ by $\mathcal{D}$ and by $\mu(n)\geq\frac{1}{poly(n)}$.
+
+Strategy: Move to OTP, then flip message.
+
+$$
+H_0(Enc_k(m_0)) = \{k\gets \{0,1\}^n: m_0\oplus G(k)\}
+$$
+$$
+H_1(OTP(m_1)) = \{u\gets U_{l(n)}: m_o\oplus u\}
+$$
+$$
+H_2(OTP(m_1)) = \{u\gets U_{l(n)}: m_1\oplus u\}
+$$
+$$
+H_3(Enc_k(m_0)) = \{k\gets \{0,1\}^n: m_1\oplus G(k)\}
+$$
+
+By hybrid argument, 2 neighboring messages are indistinguishable.
+
+However, $H_0$ and $H_1$ are indistinguishable since $G(U_n)$ and $U_{l(n)}$ are indistinguishable.
+
+$H_1$ and $H_2$ are indistinguishable by perfect secrecy of OTP.
+
+$H_2$ and $H_3$ are indistinguishable since $G(U_n)$ and $U_{l(n)}$ are indistinguishable.
+
+Which leads to a contradiction.
+
+### Multi-message secure encryption
+
+$(Gen,Enc,Dec)$ is multi-message secure if $\forall n.u.p.p.t \mathcal{D}$ and for all $n\in \mathbb{N}$, and $q(n)\in poly(n)$.
+
+$$
+\overline{m}=(m_1,\dots,m_{q(n)})
+$$
+$$
+\overline{m}'=(m_1',\dots,m_{q(n)}')
+$$
+
+are list of $q(n)$ messages in $\{0,1\}^n$.
+
+$\mathcal{D}$ distinguishes $Enc_k(\overline{m})$ and $Enc_k(\overline{m}')$ with at most negligble probability.
+
+$$
+P[k\gets Gen(1^n):\mathcal{D}(Enc_k(\overline{m}),Enc_k(\overline{m}'))=1] \leq \frac{1}{2} + \epsilon(n)
+$$
+
+**THIS IS NOT MULTI-MESSAGE SECURE.**
+
+We can take $\overline{m}=(0^n,0^n)\to (G(k),G(k))$ and $\overline{m}'=(0^n,1^n)\to (G(k),G(k)+1^n)$ the distinguisher can easily distinguish if some message was sent twice.
+
+What we need is that the distinguisher cannot distinguish if some message was sent twice. To achieve multi-message security, we need our encryption function to use randomness (or change states) for each message, otherwise $Enc_k(0^n)$ will return the same on consecutive messages.
+
+Our fix is, if we can agree on a random function $F:\{0,1\}^n\to \{0,1\}^n$ satisfied that: for each input $x\in\{0,1\}^n$, $F(x)$ is chosen uniformly at random.
+
+$Gen(1^n):$ Choose random function $F:\{0,1\}^n\to \{0,1\}^n$.
+
+$Enc_F(m):$ let $r\gets U_n$; output $(r,F(r)\oplus m)$.
+
+$Dec_F(m):$ Given $(r,c)$, output $m=F(r)\oplus c$.
+
+Ideas: Adversary sees $r$ but has no Ideas about $F(r)$. (we choose all outputs at random)
+
+If we could do this, this is MMS (multi-message secure).
+
+Proof:
+
+Suppose $m_1,m_2,\dots,m_{q(n)}$, $m_1',\dots,m_{q(n)}'$ are sent to the encryption oracle.
+
+Suppose the encryption are distinguished by $\mathcal{D}$ with probability $\frac{1}{2}+\epsilon(n)$.
+
+Strategy: move to OTP with hybrid argument.
+
+Suppose we choose a random function
+
+$$
+H_0:\{F\gets RF_n:((r_1,m_1\oplus F(r_1)),(r_2,m_2\oplus F(r_2)),\dots,(r_{q(n)},m_{q(n)}\oplus F(r_{q(n)})))\}
+$$
+
+and
+
+$$
+H_1:\{OTP:(r_1,m_1\oplus u_1),(r_2,m_2\oplus u_2),\dots,(r_{q(n)},m_{q(n)}\oplus u_{q(n)})\}
+$$
+
+$r_i,u_i\in U_n$.
+
+By hybrid argument, $H_0$ and $H_1$ are indistinguishable if $r_1,\dots,r_{q(n)}$ are different, these are the same.
+
+$F(r_1),\dots,F(r_{q(n)})$ are chosen uniformly and independently at random.
+
+only possible problem is $r_i=r_j$ for some $i\neq j$, and $P[r_i=r_j]=\frac{1}{2^n}$.
+
+And the probability that at least one pair are equal
+
+$$
+P[\text{at least one pair are equal}] =P[\bigcup_{i\neq j}\{r_i=r_j\}] \leq \sum_{i\neq j}P[r_i=r_j]=\binom{n}{2}\frac{1}{2^n} < \frac{n^2}{2^{n+1}}
+$$
+
+which is negligible.
+
+Unfortunately, we cannot do this in practice.
+
+How many random functions are there?
+
+The length of description of $F$ is $n 2^n$.
+
+For each $x\in \{0,1\}^n$, there are $2^n$ possible values for $F(x)$.
+
+So the total number of random functions is $(2^n)^{2^n}=2^{n2^n}$.
+
+
diff --git a/pages/CSE442T/CSE442T_L15.md b/content/CSE442T/CSE442T_L15.md
similarity index 95%
rename from pages/CSE442T/CSE442T_L15.md
rename to content/CSE442T/CSE442T_L15.md
index 9e57d2f..d5673bc 100644
--- a/pages/CSE442T/CSE442T_L15.md
+++ b/content/CSE442T/CSE442T_L15.md
@@ -1,189 +1,189 @@
-# Lecture 15
-
-## Chapter 3: Indistinguishability and Pseudorandomness
-
-### Random Function
-
-$F:\{0,1\}^n\to \{0,1\}^n$
-
-For each $x\in \{0,1\}^n$, there are $2^n$ possible values for $F(x)$.
-
-pick $y=F(x)\gets \{0,1\}^n$ independently at random. ($n$ bits)
-
-This generates $n\cdot 2^n$ random bits to specify $F$.
-
-### Equivalent description of $F$
-
-```python
-# initialized empty list L
-L=collections.defaultdict(int)
-# initialize n bits constant
-n=10
-def F(x):
- """ simulation of random function
- param:
- x: n bits
- return:
- y: n bits
- """
- if L[x] is not None:
- return L[x]
- else:
- # y is a random n-bit string
- y=random.randbits(n)
- L[x]=y
- return y
-```
-
-However, this is not a good random function since two communicator may not agree on the same $F$.
-
-### Pseudorandom Function
-
-$f:\{0,1\}^n\to \{0,1\}^n$
-
-#### Oracle Access (for function $g$)
-
-$O_g$ is a p.p.t. that given $x\in \{0,1\}^n$ outputs $g(x)$.
-
-The distinguisher $D$ is given oracle access to $O_g$ and outputs $1$ if $g$ is random and $0$ otherwise. It can make polynomially many queries.
-
-### Oracle indistinguishability
-
-$\{F_n\}$ and $\{G_n\}$ are sequence of distribution on functions
-
-$$
-f:\{0,1\}^{l_1(n)}\to \{0,1\}^{l_2(n)}
-$$
-
-that are computationally indistinguishable
-
-$$
-\{f_n\}\sim \{g_n\}
-$$
-
-if for all p.p.t. $D$ (with oracle access to $F_n$ and $G_n$),
-
-$$
-\left|P[f\gets F_n:D^f(1^n)=1]-P[g\gets G_n:D^g(1^n)=1]\right|< \epsilon(n)
-$$
-
-where $\epsilon(n)$ is negligible.
-
-Under this property, we still have:
-
-- Closure properties. under efficient procedures.
-- Prediction lemma.
-- Hybrid lemma.
-
-### Pseudorandom Function Family
-
-Definition: $\{f_s:\{0,1\}^\{0.1\}^{|S|}\to \{0,1\}^P$ $t_0s\in \{0,1\}^n\}$ is a pseudorandom function family if $\{f_s\}_{s\in \{0,1\}^n}$ are oracle indistinguishable.
-
-- It is easy to compute for every $x\in \{0,1\}^{|S|}$.
-- $\{s \gets\{0,1\}^n\}_n\approx \{F\gets RF_n,F\}$ is indistinguishable from the uniform distribution over $\{0,1\}^P$.
- - $R$ is truly random function.
-
-Example:
-
-For $s\in \{0,1\}^n$, define $f_s:\overline{x}\mapsto s\cdot \overline{s}$.
-
-$\mathcal{D}$ gives oracle access to $g(0^n)=\overline{y_0}$, $g(1^n)=\overline{y_1}$. If $\overline{y_0}+\overline{y_1}=1^n$, then $\mathcal{D}$ outputs $1$ otherwise $0$.
-
-```python
-def O_g(x):
- pass
-
-def D():
- # bit_stream(0,n) is a n-bit string of 0s
- y0=O_g(bit_stream(0,n))
- y1=O_g(bit_stream(1,n))
- if y0+y1==bit_stream(1,n):
- return 1
- else:
- return 0
-```
-
-If $g=f_s$, then $D$ returns $\overline{s}+\overline{s}+1^n =1^n$.
-
-$$
-P[f_s\gets D^{f_s}(1^n)=1]=1
-$$
-
-$$
-P[F\gets RF^n,D^F(1^n)=1]=\frac{1}{2^n}
-$$
-
-#### Theorem PRG exists then PRF family exists.
-
-Proof:
-
-Let $g:\{0,1\}^n\to \{0,1\}^{2n}$ be a PRG.
-
-$$
-g(\overline{x})=[g_0(\overline{x})] [g_1(\overline{x})]
-$$
-
-Then we choose a random $s\in \{0,1\}^n$ (initial seed) and define $\overline{x}\gets \{0,1\}^n$, $\overline{x}=x_1\cdots x_n$.
-
-$$
-f_s(\overline{x})=f_s(x_1\cdots x_n)=g_{x_n}(\dots (g_{x_2}(g_{x_1}(s))))
-$$
-
-```python
-s=random.randbits(n)
-
-#????
-
-def g(x):
- if x[0]==0:
- return g(f_s(x[1:]))
- else:
- return g(f_s(x[1:]))
-
-def f_s(x):
- return g(x)
-
-```
-
-Suppose $g:\{0,1\}^3\to \{0,1\}^6$ is a PRG.
-
-| $x$ | $f_s(x)$ |
-| --- | -------- |
-| 000 | 110011 |
-| 001 | 010010 |
-| 010 | 001001 |
-| 011 | 000110 |
-| 100 | 100000 |
-| 101 | 110110 |
-| 110 | 000111 |
-| 111 | 001110 |
-
-Suppose the initial seed is $011$, then the constructed function tree goes as follows:
-
-Example:
-
-$$
-\begin{aligned}
-f_s(110)&=g_0(g_1(g_1(s)))\\
-&=g_0(g_1(110))\\
-&=g_0(111)\\
-&=001
-\end{aligned}
-$$
-
-$$
-\begin{aligned}
-f_s(010)&=g_0(g_1(g_0(s)))\\
-&=g_0(g_1(000))\\
-&=g_0(001)\\
-&=010
-\end{aligned}
-$$
-
-Assume that $D$ distinguishes $f_s$ and $F\gets RF_n$ with non-negligible probability.
-
-By hybrid argument, there exists a hybrid $H_i$ such that $D$ distinguishes $H_i$ and $H_{i+1}$ with non-negligible probability.
-
-For $H_0$,
-
-QED
+# Lecture 15
+
+## Chapter 3: Indistinguishability and Pseudorandomness
+
+### Random Function
+
+$F:\{0,1\}^n\to \{0,1\}^n$
+
+For each $x\in \{0,1\}^n$, there are $2^n$ possible values for $F(x)$.
+
+pick $y=F(x)\gets \{0,1\}^n$ independently at random. ($n$ bits)
+
+This generates $n\cdot 2^n$ random bits to specify $F$.
+
+### Equivalent description of $F$
+
+```python
+# initialized empty list L
+L=collections.defaultdict(int)
+# initialize n bits constant
+n=10
+def F(x):
+ """ simulation of random function
+ param:
+ x: n bits
+ return:
+ y: n bits
+ """
+ if L[x] is not None:
+ return L[x]
+ else:
+ # y is a random n-bit string
+ y=random.randbits(n)
+ L[x]=y
+ return y
+```
+
+However, this is not a good random function since two communicator may not agree on the same $F$.
+
+### Pseudorandom Function
+
+$f:\{0,1\}^n\to \{0,1\}^n$
+
+#### Oracle Access (for function $g$)
+
+$O_g$ is a p.p.t. that given $x\in \{0,1\}^n$ outputs $g(x)$.
+
+The distinguisher $D$ is given oracle access to $O_g$ and outputs $1$ if $g$ is random and $0$ otherwise. It can make polynomially many queries.
+
+### Oracle indistinguishability
+
+$\{F_n\}$ and $\{G_n\}$ are sequence of distribution on functions
+
+$$
+f:\{0,1\}^{l_1(n)}\to \{0,1\}^{l_2(n)}
+$$
+
+that are computationally indistinguishable
+
+$$
+\{f_n\}\sim \{g_n\}
+$$
+
+if for all p.p.t. $D$ (with oracle access to $F_n$ and $G_n$),
+
+$$
+\left|P[f\gets F_n:D^f(1^n)=1]-P[g\gets G_n:D^g(1^n)=1]\right|< \epsilon(n)
+$$
+
+where $\epsilon(n)$ is negligible.
+
+Under this property, we still have:
+
+- Closure properties. under efficient procedures.
+- Prediction lemma.
+- Hybrid lemma.
+
+### Pseudorandom Function Family
+
+Definition: $\{f_s:\{0,1\}^\{0.1\}^{|S|}\to \{0,1\}^P$ $t_0s\in \{0,1\}^n\}$ is a pseudorandom function family if $\{f_s\}_{s\in \{0,1\}^n}$ are oracle indistinguishable.
+
+- It is easy to compute for every $x\in \{0,1\}^{|S|}$.
+- $\{s \gets\{0,1\}^n\}_n\approx \{F\gets RF_n,F\}$ is indistinguishable from the uniform distribution over $\{0,1\}^P$.
+ - $R$ is truly random function.
+
+Example:
+
+For $s\in \{0,1\}^n$, define $f_s:\overline{x}\mapsto s\cdot \overline{s}$.
+
+$\mathcal{D}$ gives oracle access to $g(0^n)=\overline{y_0}$, $g(1^n)=\overline{y_1}$. If $\overline{y_0}+\overline{y_1}=1^n$, then $\mathcal{D}$ outputs $1$ otherwise $0$.
+
+```python
+def O_g(x):
+ pass
+
+def D():
+ # bit_stream(0,n) is a n-bit string of 0s
+ y0=O_g(bit_stream(0,n))
+ y1=O_g(bit_stream(1,n))
+ if y0+y1==bit_stream(1,n):
+ return 1
+ else:
+ return 0
+```
+
+If $g=f_s$, then $D$ returns $\overline{s}+\overline{s}+1^n =1^n$.
+
+$$
+P[f_s\gets D^{f_s}(1^n)=1]=1
+$$
+
+$$
+P[F\gets RF^n,D^F(1^n)=1]=\frac{1}{2^n}
+$$
+
+#### Theorem PRG exists then PRF family exists.
+
+Proof:
+
+Let $g:\{0,1\}^n\to \{0,1\}^{2n}$ be a PRG.
+
+$$
+g(\overline{x})=[g_0(\overline{x})] [g_1(\overline{x})]
+$$
+
+Then we choose a random $s\in \{0,1\}^n$ (initial seed) and define $\overline{x}\gets \{0,1\}^n$, $\overline{x}=x_1\cdots x_n$.
+
+$$
+f_s(\overline{x})=f_s(x_1\cdots x_n)=g_{x_n}(\dots (g_{x_2}(g_{x_1}(s))))
+$$
+
+```python
+s=random.randbits(n)
+
+#????
+
+def g(x):
+ if x[0]==0:
+ return g(f_s(x[1:]))
+ else:
+ return g(f_s(x[1:]))
+
+def f_s(x):
+ return g(x)
+
+```
+
+Suppose $g:\{0,1\}^3\to \{0,1\}^6$ is a PRG.
+
+| $x$ | $f_s(x)$ |
+| --- | -------- |
+| 000 | 110011 |
+| 001 | 010010 |
+| 010 | 001001 |
+| 011 | 000110 |
+| 100 | 100000 |
+| 101 | 110110 |
+| 110 | 000111 |
+| 111 | 001110 |
+
+Suppose the initial seed is $011$, then the constructed function tree goes as follows:
+
+Example:
+
+$$
+\begin{aligned}
+f_s(110)&=g_0(g_1(g_1(s)))\\
+&=g_0(g_1(110))\\
+&=g_0(111)\\
+&=001
+\end{aligned}
+$$
+
+$$
+\begin{aligned}
+f_s(010)&=g_0(g_1(g_0(s)))\\
+&=g_0(g_1(000))\\
+&=g_0(001)\\
+&=010
+\end{aligned}
+$$
+
+Assume that $D$ distinguishes $f_s$ and $F\gets RF_n$ with non-negligible probability.
+
+By hybrid argument, there exists a hybrid $H_i$ such that $D$ distinguishes $H_i$ and $H_{i+1}$ with non-negligible probability.
+
+For $H_0$,
+
+QED
diff --git a/pages/CSE442T/CSE442T_L16.md b/content/CSE442T/CSE442T_L16.md
similarity index 95%
rename from pages/CSE442T/CSE442T_L16.md
rename to content/CSE442T/CSE442T_L16.md
index 6502bf9..3930b30 100644
--- a/pages/CSE442T/CSE442T_L16.md
+++ b/content/CSE442T/CSE442T_L16.md
@@ -1,134 +1,134 @@
-# Lecture 16
-
-## Chapter 3: Indistinguishability and Pseudorandomness
-
-PRG exists $\implies$ Pseudorandom function family exists.
-
-### Multi-message secure encryption
-
-$Gen(1^n):$ Output $f_i:\{0,1\}^n\to \{0,1\}^n$ from PRF family
-
-$Enc_i(m):$ Random $r\gets \{0,1\}^n$
-Ouput $(r,m\oplus f_i(r))$
-
-$Dec_i(r,c):$ Output $c\oplus f_i(r)$
-
-Proof of security:
-
-Suppose $D$ distinguishes, for infinitly many $n$.
-
-The encryption of $a$ pair of lists
-
-(1) $\{i\gets Gen(1^n):(r_1,m_1\oplus f_i(r_1)),(r_2,m_2\oplus f_i(r_2)),(r_3,m_3\oplus f_i(r_3)),\ldots,(r_q,m_q\oplus f_i(r_q)), \}$
-
-(2) $\{F\gets RF_n: (r_1,m_1\oplus F(r_1))\ldots\}$
-
-(3) One-time pad $\{(r_1,m_1\oplus s_1)\}$
-
-(4) One-time pad $\{(r_1,m_1'\oplus s_1)\}$
-
-If (1) (2) distinguished,
-
-$(r_1,f_i(r_1)),\ldots,(r_q,f_i(r_q))$ is distinguished from
-
-$(r_1,F(r_1)),\ldots, (r_q,F(r_q))$
-
-So $D$ distinguishing output of $r_1,\ldots, r_q$ of PRF from the RF, this contradicts with definition of PRF.
-
-QED
-
-Noe we have
-
-(RSA assumption and Discrete log assumption for one-way function exists.)
-
-One-way function exists $\implies$
-
-Pseudo random generator exists $\implies$
-
-Pseudo random function familiy exists $\implies$
-
-Mult-message secure encryption exists.
-
-### Public key cryptography
-
-1970s.
-
-The goal was to agree/share a key without meeting in advance
-
-#### Diffie-Helmann Key exchange
-
-A and B create a secret key together without meeting.
-
-Rely on discrete log assumption.
-
-They pulicly agree on modulus $p$ and generator $g$.
-
-Alice picks random exponent $a$ and computes $g^a\mod p$
-
-Bob picks random exponent $b$ and computes $g^b\mod p$
-
-and they send result to each other.
-
-And Alice do $(g^b)^a$ where Bob do $(g^a)^b$.
-
-#### Diffie-Helmann assumption
-
-With $g^a,g^b$ no one can compute $g^{ab}$.
-
-#### Public key encryption scheme
-
-Ideas: The recipient Bob distributes opened Bob-locks
-
-- Once closed, only Bob can open it.
-
-Public-key encryption scheme:
-
-1. $Gen(1^n):$ Outputs $(pk,sk)$
-2. $Enc_{pk}(m):$ Efficient for all $m,pk$
-3. $Dec_{sk}(c):$ Efficient for all $c,sk$
-4. $P[(pk,sk)\gets Gen(1^n):Dec_{sk}(Enc_{pk}(m))=m]=1$
-
-Let $A, E$ knows $pk$ not $sk$ and $B$ knows $pk,sk$.
-
-Adversary can now encrypt any message $m$ with the public key.
-
-- Perfect secrecy impossible
-- Randomness necessary
-
-#### Security of public key
-
-$\forall n.u.p.p.t D,\exists \epsilon(n)$ such that $\forall n,m_0,m_1\in \{0,1\}^n$
-
-$$
-\{(pk,sk)\gets Gen(1^n):(pk,Enc_{pk}(m_0))\} \{(pk,sk)\gets Gen(1^n):(pk,Enc_{pk}(m_1))\}
-$$
-
-are distinguished by at most $\epsilon (n)$
-
-This "single" message security implies multi-message security!
-
-_Left as exercise_
-
-We will achieve security in sending a single bit $0,1$
-
-Time for trapdoor permutation. (EX. RSA)
-
-#### Encryption Scheme via Trapdoor Permutation
-
-Given family of trapdoor permutation $\{f_i\}$ with hardcore bit $h(i)$
-
-$Gen(1^n):(f_i,f_i^{-1})$, where $f_i^{-1}$ uses trapdoor permutation of $t$
-
-$Output ((f_i,h_i),f_i^{-1})$
-
-$m=0$ or $1$.
-
-$Enc_{pk}(m):r\gets\{0,1\}^n$
-
-$Output (f_i(r),h_i(r)+m)$
-
-$Dec_{sk}(c_1,c_2)$
-
-$r=f_i^{-1}(c_1)$
-
+# Lecture 16
+
+## Chapter 3: Indistinguishability and Pseudorandomness
+
+PRG exists $\implies$ Pseudorandom function family exists.
+
+### Multi-message secure encryption
+
+$Gen(1^n):$ Output $f_i:\{0,1\}^n\to \{0,1\}^n$ from PRF family
+
+$Enc_i(m):$ Random $r\gets \{0,1\}^n$
+Ouput $(r,m\oplus f_i(r))$
+
+$Dec_i(r,c):$ Output $c\oplus f_i(r)$
+
+Proof of security:
+
+Suppose $D$ distinguishes, for infinitly many $n$.
+
+The encryption of $a$ pair of lists
+
+(1) $\{i\gets Gen(1^n):(r_1,m_1\oplus f_i(r_1)),(r_2,m_2\oplus f_i(r_2)),(r_3,m_3\oplus f_i(r_3)),\ldots,(r_q,m_q\oplus f_i(r_q)), \}$
+
+(2) $\{F\gets RF_n: (r_1,m_1\oplus F(r_1))\ldots\}$
+
+(3) One-time pad $\{(r_1,m_1\oplus s_1)\}$
+
+(4) One-time pad $\{(r_1,m_1'\oplus s_1)\}$
+
+If (1) (2) distinguished,
+
+$(r_1,f_i(r_1)),\ldots,(r_q,f_i(r_q))$ is distinguished from
+
+$(r_1,F(r_1)),\ldots, (r_q,F(r_q))$
+
+So $D$ distinguishing output of $r_1,\ldots, r_q$ of PRF from the RF, this contradicts with definition of PRF.
+
+QED
+
+Noe we have
+
+(RSA assumption and Discrete log assumption for one-way function exists.)
+
+One-way function exists $\implies$
+
+Pseudo random generator exists $\implies$
+
+Pseudo random function familiy exists $\implies$
+
+Mult-message secure encryption exists.
+
+### Public key cryptography
+
+1970s.
+
+The goal was to agree/share a key without meeting in advance
+
+#### Diffie-Helmann Key exchange
+
+A and B create a secret key together without meeting.
+
+Rely on discrete log assumption.
+
+They pulicly agree on modulus $p$ and generator $g$.
+
+Alice picks random exponent $a$ and computes $g^a\mod p$
+
+Bob picks random exponent $b$ and computes $g^b\mod p$
+
+and they send result to each other.
+
+And Alice do $(g^b)^a$ where Bob do $(g^a)^b$.
+
+#### Diffie-Helmann assumption
+
+With $g^a,g^b$ no one can compute $g^{ab}$.
+
+#### Public key encryption scheme
+
+Ideas: The recipient Bob distributes opened Bob-locks
+
+- Once closed, only Bob can open it.
+
+Public-key encryption scheme:
+
+1. $Gen(1^n):$ Outputs $(pk,sk)$
+2. $Enc_{pk}(m):$ Efficient for all $m,pk$
+3. $Dec_{sk}(c):$ Efficient for all $c,sk$
+4. $P[(pk,sk)\gets Gen(1^n):Dec_{sk}(Enc_{pk}(m))=m]=1$
+
+Let $A, E$ knows $pk$ not $sk$ and $B$ knows $pk,sk$.
+
+Adversary can now encrypt any message $m$ with the public key.
+
+- Perfect secrecy impossible
+- Randomness necessary
+
+#### Security of public key
+
+$\forall n.u.p.p.t D,\exists \epsilon(n)$ such that $\forall n,m_0,m_1\in \{0,1\}^n$
+
+$$
+\{(pk,sk)\gets Gen(1^n):(pk,Enc_{pk}(m_0))\} \{(pk,sk)\gets Gen(1^n):(pk,Enc_{pk}(m_1))\}
+$$
+
+are distinguished by at most $\epsilon (n)$
+
+This "single" message security implies multi-message security!
+
+_Left as exercise_
+
+We will achieve security in sending a single bit $0,1$
+
+Time for trapdoor permutation. (EX. RSA)
+
+#### Encryption Scheme via Trapdoor Permutation
+
+Given family of trapdoor permutation $\{f_i\}$ with hardcore bit $h(i)$
+
+$Gen(1^n):(f_i,f_i^{-1})$, where $f_i^{-1}$ uses trapdoor permutation of $t$
+
+$Output ((f_i,h_i),f_i^{-1})$
+
+$m=0$ or $1$.
+
+$Enc_{pk}(m):r\gets\{0,1\}^n$
+
+$Output (f_i(r),h_i(r)+m)$
+
+$Dec_{sk}(c_1,c_2)$
+
+$r=f_i^{-1}(c_1)$
+
$m=c_2+h_1(r)$
\ No newline at end of file
diff --git a/pages/CSE442T/CSE442T_L17.md b/content/CSE442T/CSE442T_L17.md
similarity index 96%
rename from pages/CSE442T/CSE442T_L17.md
rename to content/CSE442T/CSE442T_L17.md
index dd6ac4c..b84e8b3 100644
--- a/pages/CSE442T/CSE442T_L17.md
+++ b/content/CSE442T/CSE442T_L17.md
@@ -1,159 +1,159 @@
-# Lecture 17
-
-## Chapter 3: Indistinguishability and Pseudorandomness
-
-### Public key encryption scheme (1-bit)
-
-$Gen(1^n):(f_i, f_i^{-1})$
-
-$f_i$ is the trapdoor permutation. (eg. RSA)
-
-$Output((f_i, h_i), f_i^{-1})$, where $(f_i, h_i)$ is the public key and $f_i^{-1}$ is the secret key.
-
-$Enc_{pk}(m):r\gets \{0, 1\}^n$
-
-$Output(f_i(r), h_i(r)\oplus m)$
-
-where $f_i(r)$ is denoted as $c_1$ and $h_i(r)\oplus m$ is the tag $c_2$.
-
-The decryption function is:
-
-$Dec_{sk}(c_1, c_2)$:
-
-$r=f_i^{-1}(c_1)$
-
-$m=c_2\oplus h_i(r)$
-
-#### Validity of the decryption
-
-Proof of the validity of the decryption: Exercise.
-
-#### Security of the encryption scheme
-
-The encryption scheme is secure under this construction (Trapdoor permutation (TDP), Hardcore bit (HCB)).
-
-Proof:
-
-We proceed by contradiction. (Constructing contradiction with definition of hardcore bit.)
-
-Assume that there exists a distinguisher $\mathcal{D}$ that can distinguish the encryption of $0$ and $1$ with non-negligible probability $\mu(n)$.
-
-$$
-\{(pk,sk)\gets Gen(1^n):(pk,Enc_{pk}(0))\} v.s.\{(pk,sk)\gets Gen(1^n):(pk,Enc_{pk}(1))\} \geq \mu(n)
-$$
-
-By prediction lemma (the distinguisher can be used to create and adversary that can break the security of the encryption scheme with non-negligible probability $\mu(n)$).
-
-$$
-P[m\gets \{0,1\}; (pk,sk)\gets Gen(1^n):\mathcal{A}(pk,Enc_{pk}(m))=m]\geq \frac{1}{2}+\mu(n)
-$$
-
-We will use this to construct an agent $B$ which can determine the hardcore bit $h_i(r)$ of the trapdoor permutation $f_i(r)$ with non-negligible probability.
-
-$f_i,h_i$ are determined.
-
-$B$ is given $f_i(r)$ and $h_i(r)$ and outputs $b\in \{0,1\}$.
-
-- $r\gets \{0,1\}^n$ is chosen uniformly at random.
-- $y=f_i(r)$ is given to $B$.
-- $b=h_i(r)$ is given to $B$.
-- Choose $c_2\gets \{0,1\}= h_i(r)\oplus m$ uniformly at random.
-- Then use $\mathcal{A}$ with $pk=(f_i, h_i),Enc_{pk}(m)=(f_i(r), h_i(r)\oplus m)$ to determine whether $r$ is $0$ or $1$.
-- Let $m'\gets \mathcal{A}(pk,(y,c_2))$.
-- Since $c_2=h_i(r)\oplus m$, we have $m=b\oplus c_2$, $b=m'\oplus c_2$.
-- Output $b=m'\oplus c_2$.
-
-The probability that $B$ correctly guesses $b$ given $f_i,h_i$ is:
-
-$$
-\begin{aligned}
-&~~~~~P[r\gets \{0,1\}^n: y=f_i(r), b=h_i(r): B(f_i,h_i,y)=b]\\
-&=P[r\gets \{0,1\}^n,c_2\gets \{0,1\}: y=f_i(r), b=h_i(r):\mathcal{A}((f_i,h_i),(y,c_2))=(c_2+b)]\\
-&=P[r\gets \{0,1\}^n,m\gets \{0,1\}: y=f_i(r), b=h_i(r):\mathcal{A}((f_i,h_i),(y,b\oplus m))=m]\\
-&>\frac{1}{2}+\mu(n)
-\end{aligned}
-$$
-
-This contradicts the definition of hardcore bit.
-
-QED
-
-### Public key encryption scheme (multi-bit)
-
-Let $m\in \{0,1\}^k$.
-
-We can choose random $r_i\in \{0,1\}^n$, $y_i=f_i(r_i)$, $b_i=h_i(r_i),c_i=m_i\oplus b_i$.
-
-$Enc_{pk}(m)=((y_1,c_1),\cdots,(y_k,c_k)),c\in \{0,1\}^k$
-
-$Dec_{sk}:r_k=f_i^{-1}(y_k),h_i(r_k)\oplus c_k=m_k$
-
-### Special public key cryptosystem: El-Gamal (based on Diffie-Hellman Assumption)
-
-#### Definition 105.1 Decisional Diffie-Hellman Assumption (DDH)
-
-> Define the group of squares mod $p$ as follows:
->
-> $p=2q+1$, $q\in \Pi_{n-1}$, $g\gets \mathbb{Z}_p^*/\{1\}$, $y=g^2$
->
-> $G=\{y,y^2,\cdots,y^q=1\}\mod p$
-
-These two listed below are indistinguishable.
-
-$\{p\gets \tilde{\Pi_n};y\gets Gen_q;a,b\gets \mathbb{Z}_q:(p,y,y^a,y^b,y^{ab})\}_n$
-
-$\{p\gets \tilde{\Pi_n};y\gets Gen_q;a,b,\bold{z}\gets \mathbb{Z}_q:(p,y,y^a,y^b,y^\bold{z})\}_n$
-
-> (Computational) Diffie-Hellman Assumption:
->
-> Hard to compute $y^{ab}$ given $p,y,y^a,y^b$.
-
-So DDH assumption implies discrete logarithm assumption.
-
-Ideas:
-
-If one can find $a,b$ from $y^a,y^b$, then one can find $ab$ from $y^{ab}$ and compare to $\bold{z}$ to check whether $y^\bold{z}$ is a valid DDH tuple.
-
-#### El-Gamal encryption scheme (public key cryptosystem)
-
-$Gen(1^n)$:
-
-$p\gets \tilde{\Pi_n},g\gets \mathbb{Z}_p^*/\{1\},y\gets Gen_q,a\gets \mathbb{Z}_q$
-
-Output:
-
-$pk=(p,y,y^a\mod p)$ (public key)
-
-$sk=(p,y,a)$ (secret key)
-
-**Message space:** $G_q=\{y,y^2,\cdots,y^q=1\}$
-
-$Enc_{pk}(m)$:
-
-$b\gets \mathbb{Z}_q$
-
-$c_1=y^b\mod p,c_2=(y^{ab}\cdot m)\mod p$
-
-Output: $(c_1,c_2)$
-
-$Dec_{sk}(c_1,c_2)$:
-
-Since $c_2=(y^{ab}\cdot m)\mod p$, we have $m=\frac{c_2}{c_1^a}\mod p$
-
-Output: $m$
-
-#### Security of El-Gamal encryption scheme
-
-Proof:
-
-If not secure, then there exists a distinguisher $\mathcal{D}$ that can distinguish the encryption of $m_1,m_2\in G_q$ with non-negligible probability $\mu(n)$.
-
-$$
-\{(pk,sk)\gets Gen(1^n):D(pk,Enc_{pk}(m_1))\}\text{ vs. }\\
-\{(pk,sk)\gets Gen(1^n):D(pk,Enc_{pk}(m_2))\}\geq \mu(n)
-$$
-
-And proceed by contradiction. This contradicts the DDH assumption.
-
-QED
-
+# Lecture 17
+
+## Chapter 3: Indistinguishability and Pseudorandomness
+
+### Public key encryption scheme (1-bit)
+
+$Gen(1^n):(f_i, f_i^{-1})$
+
+$f_i$ is the trapdoor permutation. (eg. RSA)
+
+$Output((f_i, h_i), f_i^{-1})$, where $(f_i, h_i)$ is the public key and $f_i^{-1}$ is the secret key.
+
+$Enc_{pk}(m):r\gets \{0, 1\}^n$
+
+$Output(f_i(r), h_i(r)\oplus m)$
+
+where $f_i(r)$ is denoted as $c_1$ and $h_i(r)\oplus m$ is the tag $c_2$.
+
+The decryption function is:
+
+$Dec_{sk}(c_1, c_2)$:
+
+$r=f_i^{-1}(c_1)$
+
+$m=c_2\oplus h_i(r)$
+
+#### Validity of the decryption
+
+Proof of the validity of the decryption: Exercise.
+
+#### Security of the encryption scheme
+
+The encryption scheme is secure under this construction (Trapdoor permutation (TDP), Hardcore bit (HCB)).
+
+Proof:
+
+We proceed by contradiction. (Constructing contradiction with definition of hardcore bit.)
+
+Assume that there exists a distinguisher $\mathcal{D}$ that can distinguish the encryption of $0$ and $1$ with non-negligible probability $\mu(n)$.
+
+$$
+\{(pk,sk)\gets Gen(1^n):(pk,Enc_{pk}(0))\} v.s.\{(pk,sk)\gets Gen(1^n):(pk,Enc_{pk}(1))\} \geq \mu(n)
+$$
+
+By prediction lemma (the distinguisher can be used to create and adversary that can break the security of the encryption scheme with non-negligible probability $\mu(n)$).
+
+$$
+P[m\gets \{0,1\}; (pk,sk)\gets Gen(1^n):\mathcal{A}(pk,Enc_{pk}(m))=m]\geq \frac{1}{2}+\mu(n)
+$$
+
+We will use this to construct an agent $B$ which can determine the hardcore bit $h_i(r)$ of the trapdoor permutation $f_i(r)$ with non-negligible probability.
+
+$f_i,h_i$ are determined.
+
+$B$ is given $f_i(r)$ and $h_i(r)$ and outputs $b\in \{0,1\}$.
+
+- $r\gets \{0,1\}^n$ is chosen uniformly at random.
+- $y=f_i(r)$ is given to $B$.
+- $b=h_i(r)$ is given to $B$.
+- Choose $c_2\gets \{0,1\}= h_i(r)\oplus m$ uniformly at random.
+- Then use $\mathcal{A}$ with $pk=(f_i, h_i),Enc_{pk}(m)=(f_i(r), h_i(r)\oplus m)$ to determine whether $r$ is $0$ or $1$.
+- Let $m'\gets \mathcal{A}(pk,(y,c_2))$.
+- Since $c_2=h_i(r)\oplus m$, we have $m=b\oplus c_2$, $b=m'\oplus c_2$.
+- Output $b=m'\oplus c_2$.
+
+The probability that $B$ correctly guesses $b$ given $f_i,h_i$ is:
+
+$$
+\begin{aligned}
+&~~~~~P[r\gets \{0,1\}^n: y=f_i(r), b=h_i(r): B(f_i,h_i,y)=b]\\
+&=P[r\gets \{0,1\}^n,c_2\gets \{0,1\}: y=f_i(r), b=h_i(r):\mathcal{A}((f_i,h_i),(y,c_2))=(c_2+b)]\\
+&=P[r\gets \{0,1\}^n,m\gets \{0,1\}: y=f_i(r), b=h_i(r):\mathcal{A}((f_i,h_i),(y,b\oplus m))=m]\\
+&>\frac{1}{2}+\mu(n)
+\end{aligned}
+$$
+
+This contradicts the definition of hardcore bit.
+
+QED
+
+### Public key encryption scheme (multi-bit)
+
+Let $m\in \{0,1\}^k$.
+
+We can choose random $r_i\in \{0,1\}^n$, $y_i=f_i(r_i)$, $b_i=h_i(r_i),c_i=m_i\oplus b_i$.
+
+$Enc_{pk}(m)=((y_1,c_1),\cdots,(y_k,c_k)),c\in \{0,1\}^k$
+
+$Dec_{sk}:r_k=f_i^{-1}(y_k),h_i(r_k)\oplus c_k=m_k$
+
+### Special public key cryptosystem: El-Gamal (based on Diffie-Hellman Assumption)
+
+#### Definition 105.1 Decisional Diffie-Hellman Assumption (DDH)
+
+> Define the group of squares mod $p$ as follows:
+>
+> $p=2q+1$, $q\in \Pi_{n-1}$, $g\gets \mathbb{Z}_p^*/\{1\}$, $y=g^2$
+>
+> $G=\{y,y^2,\cdots,y^q=1\}\mod p$
+
+These two listed below are indistinguishable.
+
+$\{p\gets \tilde{\Pi_n};y\gets Gen_q;a,b\gets \mathbb{Z}_q:(p,y,y^a,y^b,y^{ab})\}_n$
+
+$\{p\gets \tilde{\Pi_n};y\gets Gen_q;a,b,\bold{z}\gets \mathbb{Z}_q:(p,y,y^a,y^b,y^\bold{z})\}_n$
+
+> (Computational) Diffie-Hellman Assumption:
+>
+> Hard to compute $y^{ab}$ given $p,y,y^a,y^b$.
+
+So DDH assumption implies discrete logarithm assumption.
+
+Ideas:
+
+If one can find $a,b$ from $y^a,y^b$, then one can find $ab$ from $y^{ab}$ and compare to $\bold{z}$ to check whether $y^\bold{z}$ is a valid DDH tuple.
+
+#### El-Gamal encryption scheme (public key cryptosystem)
+
+$Gen(1^n)$:
+
+$p\gets \tilde{\Pi_n},g\gets \mathbb{Z}_p^*/\{1\},y\gets Gen_q,a\gets \mathbb{Z}_q$
+
+Output:
+
+$pk=(p,y,y^a\mod p)$ (public key)
+
+$sk=(p,y,a)$ (secret key)
+
+**Message space:** $G_q=\{y,y^2,\cdots,y^q=1\}$
+
+$Enc_{pk}(m)$:
+
+$b\gets \mathbb{Z}_q$
+
+$c_1=y^b\mod p,c_2=(y^{ab}\cdot m)\mod p$
+
+Output: $(c_1,c_2)$
+
+$Dec_{sk}(c_1,c_2)$:
+
+Since $c_2=(y^{ab}\cdot m)\mod p$, we have $m=\frac{c_2}{c_1^a}\mod p$
+
+Output: $m$
+
+#### Security of El-Gamal encryption scheme
+
+Proof:
+
+If not secure, then there exists a distinguisher $\mathcal{D}$ that can distinguish the encryption of $m_1,m_2\in G_q$ with non-negligible probability $\mu(n)$.
+
+$$
+\{(pk,sk)\gets Gen(1^n):D(pk,Enc_{pk}(m_1))\}\text{ vs. }\\
+\{(pk,sk)\gets Gen(1^n):D(pk,Enc_{pk}(m_2))\}\geq \mu(n)
+$$
+
+And proceed by contradiction. This contradicts the DDH assumption.
+
+QED
+
diff --git a/pages/CSE442T/CSE442T_L18.md b/content/CSE442T/CSE442T_L18.md
similarity index 97%
rename from pages/CSE442T/CSE442T_L18.md
rename to content/CSE442T/CSE442T_L18.md
index 4a66426..93c4555 100644
--- a/pages/CSE442T/CSE442T_L18.md
+++ b/content/CSE442T/CSE442T_L18.md
@@ -1,148 +1,148 @@
-# Lecture 18
-
-## Chapter 5: Authentication
-
-### 5.1 Introduction
-
-Signatures
-
-**private key**
-
-Alice and Bob share a secret key $k$.
-
-Message Authentication Codes (MACs)
-
-**public key**
-
-Any one can verify the signature.
-
-Digital Signatures
-
-#### Definitions 134.1
-
-A message authentication codes (MACs) is a triple $(Gen, Tag, Ver)$ where
-
-- $k\gets Gen(1^k)$ is a p.p.t. algorithm that takes as input a security parameter $k$ and outputs a key $k$.
-- $\sigma\gets Tag_k(m)$ is a p.p.t. algorithm that takes as input a key $k$ and a message $m$ and outputs a tag $\sigma$.
-- $Ver_k(m, \sigma)$ is a deterministic algorithm that takes as input a key $k$, a message $m$, and a tag $\sigma$ and outputs "Accept" if $\sigma$ is a valid tag for $m$ under $k$ and "Reject" otherwise.
-
-For all $n\in\mathbb{N}$, all $m\in\mathcal{M}_n$.
-
-$$
-P[k\gets Gen(1^k):Ver_k(m, Tag_k(m))=\textup {``Accept''}]=1
-$$
-
-#### Definition 134.2 (Security of MACs)
-
-Security: Prevent an adversary from producing any accepted $(m, \sigma)$ pair that they haven't seen before.
-
-- Assume they have seen some history of signed messages. $(m_1, \sigma_1), (m_2, \sigma_2), \ldots, (m_q, \sigma_q)$.
-- Adversary $\mathcal{A}$ has oracle access to $Tag_k$. Goal is to produce a new $(m, \sigma)$ pair that is accepted but none of $(m_1, \sigma_1), (m_2, \sigma_2), \ldots, (m_q, \sigma_q)$.
-
-$\forall$ n.u.p.p.t. adversary $\mathcal{A}$ with oracle access to $Tag_k(\cdot)$,
-
-$$
-\Pr[k\gets Gen(1^k);(m, \sigma)\gets\mathcal{A}^{Tag_k(\cdot)}(1^k);\mathcal{A}\textup{ did not query }m \textup{ and } Ver_k(m, \sigma)=\textup{``Accept''}]<\epsilon(n)
-$$
-
-#### MACs scheme
-
-$F=\{f_s\}$ is a PRF family.
-
-$f_s:\{0,1\}^{|S|}\to\{0,1\}^{|S|}$
-
-$Gen(1^k): s\gets \{0,1\}^n$
-
-$Tag_k(m)$ outputs $f_s(m)$.
-
-$Ver_s(m, \sigma)$ outputs "Accept" if $f_s(m)=\sigma$ and "Reject" otherwise.
-
-Proof of security (Outline):
-
-Suppose we used $F\gets RF_n$ (true random function).
-
-If $\mathcal{A}$ wants $F(m)$ for $m\in \{m_1, \ldots, m_q\}$. $F(m)\gets U_n$.
-
-$$
-\begin{aligned}
-&P[F\gets RF_n; (m, \sigma)\gets\mathcal{A}^{F(\cdot)}(1^k);\mathcal{A}\textup{ did not query }m \textup{ and } Ver_k(m, \sigma)=\textup{``Accept''}]\\
-&=P[F\gets RF_n; (m, \sigma)\gets F(m)]\\
-&=\frac{1}{2^n}<\epsilon(n)
-\end{aligned}
-$$
-
-Suppose an adversary $\mathcal{A}$ has $\frac{1}{p(n)}$ chance of success with our PRF-based scheme...
-
-This could be used to distinguish PRF $f_s$ from a random function.
-
-The distinguisher runs as follows:
-
-- Runs $\mathcal{A}(1^n)$
-- Whenever $\mathcal{A}$ asks for $Tag_k(m)$, we ask our oracle for $f(m)$
-- $(m, \sigma)\gets\mathcal{A}^{F(\cdot)}(1^n)$
-- Query oracle for $f(m)$
-- If $\sigma=f(m)$, output 1
-- Otherwise, output 0
-
-$D$ will output 1 for PRF with probability $\frac{1}{p(n)}$ and for RF with probability $\frac{1}{2^n}$.
-
-#### Definition 135.1(Digital Signature D.S. over $\{M_n\}_n$)
-
-A digital signature scheme is a triple $(Gen, Sign, Ver)$ where
-
-- $(pk,sk)\gets Gen(1^k)$ is a p.p.t. algorithm that takes as input a security parameter $k$ and outputs a public key $pk$ and a secret key $sk$.
-- $\sigma\gets Sign_{sk}(m)$ is a p.p.t. algorithm that takes as input a secret key $sk$ and a message $m$ and outputs a signature $\sigma$.
-- $Ver_{pk}(m, \sigma)$ is a deterministic algorithm that takes as input a public key $pk$, a message $m$, and a signature $\sigma$ and outputs "Accept" if $\sigma$ is a valid signature for $m$ under $pk$ and "Reject" otherwise.
-
-For all $n\in\mathbb{N}$, all $m\in\mathcal{M}_n$.
-
-$$
-P[(pk,sk)\gets Gen(1^k); \sigma\gets Sign_{sk}(m); Ver_{pk}(m, \sigma)=\textup{``Accept''}]=1
-$$
-
-#### Security of Digital Signature
-
-$$
-P[(pk,sk)\gets Gen(1^k); (m, \sigma)\gets\mathcal{A}^{Sign_{sk}(\cdot)}(1^k);\mathcal{A}\textup{ did not query }m \textup{ and } Ver_{pk}(m, \sigma)=\textup{``Accept''}]<\epsilon(n)
-$$
-
-For all n.u.p.p.t. adversary $\mathcal{A}$ with oracle access to $Sign_{sk}(\cdot)$.
-
-### 5.4 One time security: $\mathcal{A}$ can only use oracle once.
-
-Output $(m, \sigma)$ if $m\neq m$
-
-Security parameter $n$
-
-One time security on $\{0,1\}^n$
-
-One time security on $\{0,1\}^*$
-
-Regular security on $\{0,1\}^*$
-
-Note: the adversary automatically has access to $Ver_{pk}(\cdot)$
-
-#### One time security scheme (Lamport Scheme on $\{0,1\}^n$)
-
-$Gen(1^k)$: $\mathbb{Z}_n$ random n-bit string
-
-$sk$: List 0: $\bar{x_1}^0, \bar{x_2}^0, \ldots, \bar{x_n}^0$
-
-List 1: $\bar{x_1}^1, \bar{x_2}^1, \ldots, \bar{x_n}^1$
-
-All $\bar{x_i}^j\in\{0,1\}^n$
-
-$pk$: For a strong one-way function $f$
-
-List 0: $f(\bar{x_1}^0), f(\bar{x_2}^0), \ldots, f(\bar{x_n}^0)$
-
-List 1: $f(\bar{x_1}^1), f(\bar{x_2}^1), \ldots, f(\bar{x_n}^1)$
-
-$Sign_{sk}(m):(m_1, m_2, \ldots, m_n)\mapsto(\bar{x_1}^{m_1}, \bar{x_2}^{m_2}, \ldots, \bar{x_n}^{m_n})$
-
-$Ver_{pk}(m, \sigma)$: output "Accept" if $\sigma$ is a prefix of $f(m)$ and "Reject" otherwise.
-
-> Example: When we sign a message $01100$, $$Sign_{sk}(01100)=(\bar{x_1}^0, \bar{x_2}^1, \bar{x_3}^1, \bar{x_4}^0, \bar{x_5}^0)$$
-> We only reveal the $x_1^0, x_2^1, x_3^1, x_4^0, x_5^0$
-> For the second signature, we need to reveal exactly different bits.
-> The adversary can query the oracle for $f(0^n)$ (reveals list0) and $f(1^n)$ (reveals list1) to produce any valid signature they want.
+# Lecture 18
+
+## Chapter 5: Authentication
+
+### 5.1 Introduction
+
+Signatures
+
+**private key**
+
+Alice and Bob share a secret key $k$.
+
+Message Authentication Codes (MACs)
+
+**public key**
+
+Any one can verify the signature.
+
+Digital Signatures
+
+#### Definitions 134.1
+
+A message authentication codes (MACs) is a triple $(Gen, Tag, Ver)$ where
+
+- $k\gets Gen(1^k)$ is a p.p.t. algorithm that takes as input a security parameter $k$ and outputs a key $k$.
+- $\sigma\gets Tag_k(m)$ is a p.p.t. algorithm that takes as input a key $k$ and a message $m$ and outputs a tag $\sigma$.
+- $Ver_k(m, \sigma)$ is a deterministic algorithm that takes as input a key $k$, a message $m$, and a tag $\sigma$ and outputs "Accept" if $\sigma$ is a valid tag for $m$ under $k$ and "Reject" otherwise.
+
+For all $n\in\mathbb{N}$, all $m\in\mathcal{M}_n$.
+
+$$
+P[k\gets Gen(1^k):Ver_k(m, Tag_k(m))=\textup {``Accept''}]=1
+$$
+
+#### Definition 134.2 (Security of MACs)
+
+Security: Prevent an adversary from producing any accepted $(m, \sigma)$ pair that they haven't seen before.
+
+- Assume they have seen some history of signed messages. $(m_1, \sigma_1), (m_2, \sigma_2), \ldots, (m_q, \sigma_q)$.
+- Adversary $\mathcal{A}$ has oracle access to $Tag_k$. Goal is to produce a new $(m, \sigma)$ pair that is accepted but none of $(m_1, \sigma_1), (m_2, \sigma_2), \ldots, (m_q, \sigma_q)$.
+
+$\forall$ n.u.p.p.t. adversary $\mathcal{A}$ with oracle access to $Tag_k(\cdot)$,
+
+$$
+\Pr[k\gets Gen(1^k);(m, \sigma)\gets\mathcal{A}^{Tag_k(\cdot)}(1^k);\mathcal{A}\textup{ did not query }m \textup{ and } Ver_k(m, \sigma)=\textup{``Accept''}]<\epsilon(n)
+$$
+
+#### MACs scheme
+
+$F=\{f_s\}$ is a PRF family.
+
+$f_s:\{0,1\}^{|S|}\to\{0,1\}^{|S|}$
+
+$Gen(1^k): s\gets \{0,1\}^n$
+
+$Tag_k(m)$ outputs $f_s(m)$.
+
+$Ver_s(m, \sigma)$ outputs "Accept" if $f_s(m)=\sigma$ and "Reject" otherwise.
+
+Proof of security (Outline):
+
+Suppose we used $F\gets RF_n$ (true random function).
+
+If $\mathcal{A}$ wants $F(m)$ for $m\in \{m_1, \ldots, m_q\}$. $F(m)\gets U_n$.
+
+$$
+\begin{aligned}
+&P[F\gets RF_n; (m, \sigma)\gets\mathcal{A}^{F(\cdot)}(1^k);\mathcal{A}\textup{ did not query }m \textup{ and } Ver_k(m, \sigma)=\textup{``Accept''}]\\
+&=P[F\gets RF_n; (m, \sigma)\gets F(m)]\\
+&=\frac{1}{2^n}<\epsilon(n)
+\end{aligned}
+$$
+
+Suppose an adversary $\mathcal{A}$ has $\frac{1}{p(n)}$ chance of success with our PRF-based scheme...
+
+This could be used to distinguish PRF $f_s$ from a random function.
+
+The distinguisher runs as follows:
+
+- Runs $\mathcal{A}(1^n)$
+- Whenever $\mathcal{A}$ asks for $Tag_k(m)$, we ask our oracle for $f(m)$
+- $(m, \sigma)\gets\mathcal{A}^{F(\cdot)}(1^n)$
+- Query oracle for $f(m)$
+- If $\sigma=f(m)$, output 1
+- Otherwise, output 0
+
+$D$ will output 1 for PRF with probability $\frac{1}{p(n)}$ and for RF with probability $\frac{1}{2^n}$.
+
+#### Definition 135.1(Digital Signature D.S. over $\{M_n\}_n$)
+
+A digital signature scheme is a triple $(Gen, Sign, Ver)$ where
+
+- $(pk,sk)\gets Gen(1^k)$ is a p.p.t. algorithm that takes as input a security parameter $k$ and outputs a public key $pk$ and a secret key $sk$.
+- $\sigma\gets Sign_{sk}(m)$ is a p.p.t. algorithm that takes as input a secret key $sk$ and a message $m$ and outputs a signature $\sigma$.
+- $Ver_{pk}(m, \sigma)$ is a deterministic algorithm that takes as input a public key $pk$, a message $m$, and a signature $\sigma$ and outputs "Accept" if $\sigma$ is a valid signature for $m$ under $pk$ and "Reject" otherwise.
+
+For all $n\in\mathbb{N}$, all $m\in\mathcal{M}_n$.
+
+$$
+P[(pk,sk)\gets Gen(1^k); \sigma\gets Sign_{sk}(m); Ver_{pk}(m, \sigma)=\textup{``Accept''}]=1
+$$
+
+#### Security of Digital Signature
+
+$$
+P[(pk,sk)\gets Gen(1^k); (m, \sigma)\gets\mathcal{A}^{Sign_{sk}(\cdot)}(1^k);\mathcal{A}\textup{ did not query }m \textup{ and } Ver_{pk}(m, \sigma)=\textup{``Accept''}]<\epsilon(n)
+$$
+
+For all n.u.p.p.t. adversary $\mathcal{A}$ with oracle access to $Sign_{sk}(\cdot)$.
+
+### 5.4 One time security: $\mathcal{A}$ can only use oracle once.
+
+Output $(m, \sigma)$ if $m\neq m$
+
+Security parameter $n$
+
+One time security on $\{0,1\}^n$
+
+One time security on $\{0,1\}^*$
+
+Regular security on $\{0,1\}^*$
+
+Note: the adversary automatically has access to $Ver_{pk}(\cdot)$
+
+#### One time security scheme (Lamport Scheme on $\{0,1\}^n$)
+
+$Gen(1^k)$: $\mathbb{Z}_n$ random n-bit string
+
+$sk$: List 0: $\bar{x_1}^0, \bar{x_2}^0, \ldots, \bar{x_n}^0$
+
+List 1: $\bar{x_1}^1, \bar{x_2}^1, \ldots, \bar{x_n}^1$
+
+All $\bar{x_i}^j\in\{0,1\}^n$
+
+$pk$: For a strong one-way function $f$
+
+List 0: $f(\bar{x_1}^0), f(\bar{x_2}^0), \ldots, f(\bar{x_n}^0)$
+
+List 1: $f(\bar{x_1}^1), f(\bar{x_2}^1), \ldots, f(\bar{x_n}^1)$
+
+$Sign_{sk}(m):(m_1, m_2, \ldots, m_n)\mapsto(\bar{x_1}^{m_1}, \bar{x_2}^{m_2}, \ldots, \bar{x_n}^{m_n})$
+
+$Ver_{pk}(m, \sigma)$: output "Accept" if $\sigma$ is a prefix of $f(m)$ and "Reject" otherwise.
+
+> Example: When we sign a message $01100$, $$Sign_{sk}(01100)=(\bar{x_1}^0, \bar{x_2}^1, \bar{x_3}^1, \bar{x_4}^0, \bar{x_5}^0)$$
+> We only reveal the $x_1^0, x_2^1, x_3^1, x_4^0, x_5^0$
+> For the second signature, we need to reveal exactly different bits.
+> The adversary can query the oracle for $f(0^n)$ (reveals list0) and $f(1^n)$ (reveals list1) to produce any valid signature they want.
diff --git a/pages/CSE442T/CSE442T_L19.md b/content/CSE442T/CSE442T_L19.md
similarity index 100%
rename from pages/CSE442T/CSE442T_L19.md
rename to content/CSE442T/CSE442T_L19.md
diff --git a/pages/CSE442T/CSE442T_L2.md b/content/CSE442T/CSE442T_L2.md
similarity index 96%
rename from pages/CSE442T/CSE442T_L2.md
rename to content/CSE442T/CSE442T_L2.md
index 0bc0789..52fa65f 100644
--- a/pages/CSE442T/CSE442T_L2.md
+++ b/content/CSE442T/CSE442T_L2.md
@@ -1,97 +1,97 @@
-# Lecture 2
-
-## Probability review
-
-Sample space $S=\text{set of outcomes (possible results of experiments)}$
-
-Event $A\subseteq S$
-
-$P[A]=P[$ outcome $x\in A]$
-
-$P[\{x\}]=P[x]$
-
-Conditional probability:
-
-$P[A|B]={P[A\cap B]\over P[B]}$
-
-Assuming $B$ is the known information. Moreover, $P[B]>0$
-
-Probability that $A$ and $B$ occurring: $P[A\cap B]=P[A|B]\cdot P[B]$
-
-$P[B\cap A]=P[B|A]\cdot P[A]$
-
-So $P[A|B]={P[B|A]\cdot P[A]\over P[B]}$ (Bayes Theorem)
-
-**There is always a chance that random guess would be the password... Although really, really, low...**
-
-### Law of total probability
-
-Let $S=\bigcup_{i=1}^n B_i$. and $B_i$ are disjoint events.
-
-$A=\bigcup_{i=1}^n A\cap B_i$ ($A\cap B_i$ are all disjoint)
-
-$P[A]=\sum^n_{i=1} P[A|B_i]\cdot P[B_i]$
-
-## Chapter 1: Introduction
-
-### Defining security
-
-#### Perfect Secrecy (Shannon Secrecy)
-
-$k\gets Gen()$ $k\in K$
-
-$c\gets Enc_k(m)$ or we can also write as $c\gets Enc(k,m)$ for $m\in M$
-
-And the decryption procedure:
-
-$m'\gets Dec_k(c')$, $m'$ might be null.
-
-$P[k\gets Gen(): Dec_k(Enc_k(m))=m]=1$
-
-#### Definition 11.1 (Shannon Secrecy)
-
-Distribution $D$ over the message space $M$
-
-$P[k\gets Gen;m\gets D: m=m'|c\gets Enc_k(m)]=P[m\gets D: m=m']$
-
-Basically, we cannot gain any information from the encoded message.
-
-Code shall not contain any information changing the distribution of expectation of message after viewing the code.
-
-**NO INFO GAINED**
-
-#### Definition 11.2 (Perfect Secrecy)
-
-For any 2 messages, say $m_1,m_2\in M$ and for any possible cipher $c$,
-
-$P[k\gets Gen:c\gets Enc_k(m_1)]=P[k\gets Gen():c\gets Enc_k(m_2)]$
-
-For a fixed $c$, any message (have a equal probability) could be encrypted to that...
-
-#### Theorem 12.3
-
-Shannon secrecy is equivalent to perfect secrecy.
-
-Proof:
-
-If a crypto-system satisfy perfect secrecy, then it also satisfy Shannon secrecy.
-
-Let $(Gen,Enc,Dec)$ be a perfectly secret crypto-system with $K$ and $M$.
-
-Let $D$ be any distribution over messages.
-
-Let $m'\in M$.
-
-$$
-={P_k[c\gets Enc_k(m')]\cdot P[m=m']\over P_{k,m}[c\gets Enc_k(m)]}\\
-$$
-
-$$
-P[k\gets Gen();m\gets D:m=m'|c\gets Enc_k(m)]={P_{k,m}[c\gets Enc_k(m)\vert m=m']\cdot P[m=m']\over P_{k,m}[c\gets Enc_k(m)]}\\
-P_{k,m}[c\gets Enc_k(m)]=\sum^n_{i=1}P_{k,m}[c\gets Enc_k(m)|m=m_i]\cdot P[m=m_i]\\
-=\sum^n_{i=1}P_{K,m_i}[c\gets Enc_k(m_i)]\cdot P[m=m_i]
-$$
-
-and $P_{k,m_i}[c\gets Enc_k(m_i)]$ is constant due to perfect secrecy
-
+# Lecture 2
+
+## Probability review
+
+Sample space $S=\text{set of outcomes (possible results of experiments)}$
+
+Event $A\subseteq S$
+
+$P[A]=P[$ outcome $x\in A]$
+
+$P[\{x\}]=P[x]$
+
+Conditional probability:
+
+$P[A|B]={P[A\cap B]\over P[B]}$
+
+Assuming $B$ is the known information. Moreover, $P[B]>0$
+
+Probability that $A$ and $B$ occurring: $P[A\cap B]=P[A|B]\cdot P[B]$
+
+$P[B\cap A]=P[B|A]\cdot P[A]$
+
+So $P[A|B]={P[B|A]\cdot P[A]\over P[B]}$ (Bayes Theorem)
+
+**There is always a chance that random guess would be the password... Although really, really, low...**
+
+### Law of total probability
+
+Let $S=\bigcup_{i=1}^n B_i$. and $B_i$ are disjoint events.
+
+$A=\bigcup_{i=1}^n A\cap B_i$ ($A\cap B_i$ are all disjoint)
+
+$P[A]=\sum^n_{i=1} P[A|B_i]\cdot P[B_i]$
+
+## Chapter 1: Introduction
+
+### Defining security
+
+#### Perfect Secrecy (Shannon Secrecy)
+
+$k\gets Gen()$ $k\in K$
+
+$c\gets Enc_k(m)$ or we can also write as $c\gets Enc(k,m)$ for $m\in M$
+
+And the decryption procedure:
+
+$m'\gets Dec_k(c')$, $m'$ might be null.
+
+$P[k\gets Gen(): Dec_k(Enc_k(m))=m]=1$
+
+#### Definition 11.1 (Shannon Secrecy)
+
+Distribution $D$ over the message space $M$
+
+$P[k\gets Gen;m\gets D: m=m'|c\gets Enc_k(m)]=P[m\gets D: m=m']$
+
+Basically, we cannot gain any information from the encoded message.
+
+Code shall not contain any information changing the distribution of expectation of message after viewing the code.
+
+**NO INFO GAINED**
+
+#### Definition 11.2 (Perfect Secrecy)
+
+For any 2 messages, say $m_1,m_2\in M$ and for any possible cipher $c$,
+
+$P[k\gets Gen:c\gets Enc_k(m_1)]=P[k\gets Gen():c\gets Enc_k(m_2)]$
+
+For a fixed $c$, any message (have a equal probability) could be encrypted to that...
+
+#### Theorem 12.3
+
+Shannon secrecy is equivalent to perfect secrecy.
+
+Proof:
+
+If a crypto-system satisfy perfect secrecy, then it also satisfy Shannon secrecy.
+
+Let $(Gen,Enc,Dec)$ be a perfectly secret crypto-system with $K$ and $M$.
+
+Let $D$ be any distribution over messages.
+
+Let $m'\in M$.
+
+$$
+={P_k[c\gets Enc_k(m')]\cdot P[m=m']\over P_{k,m}[c\gets Enc_k(m)]}\\
+$$
+
+$$
+P[k\gets Gen();m\gets D:m=m'|c\gets Enc_k(m)]={P_{k,m}[c\gets Enc_k(m)\vert m=m']\cdot P[m=m']\over P_{k,m}[c\gets Enc_k(m)]}\\
+P_{k,m}[c\gets Enc_k(m)]=\sum^n_{i=1}P_{k,m}[c\gets Enc_k(m)|m=m_i]\cdot P[m=m_i]\\
+=\sum^n_{i=1}P_{K,m_i}[c\gets Enc_k(m_i)]\cdot P[m=m_i]
+$$
+
+and $P_{k,m_i}[c\gets Enc_k(m_i)]$ is constant due to perfect secrecy
+
$\sum^n_{i=1}P_{k,m_i}[c\gets Enc_k(m_i)]\cdot P[m=m_i]=\sum^n_{i=1} P[m=m_i]=1$
\ No newline at end of file
diff --git a/pages/CSE442T/CSE442T_L20.md b/content/CSE442T/CSE442T_L20.md
similarity index 100%
rename from pages/CSE442T/CSE442T_L20.md
rename to content/CSE442T/CSE442T_L20.md
diff --git a/pages/CSE442T/CSE442T_L21.md b/content/CSE442T/CSE442T_L21.md
similarity index 100%
rename from pages/CSE442T/CSE442T_L21.md
rename to content/CSE442T/CSE442T_L21.md
diff --git a/pages/CSE442T/CSE442T_L22.md b/content/CSE442T/CSE442T_L22.md
similarity index 100%
rename from pages/CSE442T/CSE442T_L22.md
rename to content/CSE442T/CSE442T_L22.md
diff --git a/pages/CSE442T/CSE442T_L23.md b/content/CSE442T/CSE442T_L23.md
similarity index 100%
rename from pages/CSE442T/CSE442T_L23.md
rename to content/CSE442T/CSE442T_L23.md
diff --git a/pages/CSE442T/CSE442T_L24.md b/content/CSE442T/CSE442T_L24.md
similarity index 100%
rename from pages/CSE442T/CSE442T_L24.md
rename to content/CSE442T/CSE442T_L24.md
diff --git a/pages/CSE442T/CSE442T_L3.md b/content/CSE442T/CSE442T_L3.md
similarity index 96%
rename from pages/CSE442T/CSE442T_L3.md
rename to content/CSE442T/CSE442T_L3.md
index 5c9f0cb..8c00221 100644
--- a/pages/CSE442T/CSE442T_L3.md
+++ b/content/CSE442T/CSE442T_L3.md
@@ -1,115 +1,115 @@
-# Lecture 3
-
-All algorithms $C(x)\to y$, $x,y\in \{0,1\}^*$
-
-P.P.T= Probabilistic Polynomial-time Turing Machine.
-
-## Chapter 2: Computational Hardness
-
-### Turing Machine: Mathematical model for a computer program
-
-A machine that can:
-
-1. Read in put
-2. Read/Write working tape move left/right
-3. Can change state
-
-### Assumptions
-
-Anything can be accomplished by a real computer program can be accomplished by a "sufficiently complicated" Turing Machine (TM).
-
-### Polynomial time
-
-We say $C(x),|x|=n,n\to \infty$ runs in polynomial time if it uses at most $T(n)$ operations bounded by some polynomials. $\exist c>0$ such that $T(n)=O(n^c)$
-
-If we can argue that algorithm runs in polynomially-many constant-time operations, then this is true for the T.M.
-
-$p,q$ are polynomials in $n$,
-
-$p(n)+q(n),p(n)q(n),p(q(n))$ are polynomial of $n$.
-
-Polynomial-time $\approx$ "efficient" for this course.
-
-### Probabilistic
-
-Our algorithm's have access to random "coin-flips" we can produce poly(n) random bits.
-
-$P[C(x)\text{ takes at most }T(n)\text{ steps }]=1$
-
-Our adversary $a(x)$ will be a P.P.T which is non-uniform (n.u.) (programs description size can grow polynomially in n)
-
-### Efficient private key encryption scheme
-
-#### Definition 3.2 (Efficient private key encryption scheme)
-
-The triple $(Gen,Enc,Dec)$ is an efficient private key encryption scheme over the message space $M$ and key space $K$ if:
-
-1. $Gen(1^n)$ is a randomized p.p.t that outputs $k\in K$
-2. $Enc_k(m)$ is a potentially randomized p.p.t that outputs $c$ given $m\in M$
-3. $Dec_k(c')$ is a deterministic p.p.t that outputs $m$ or "null"
-4. $P_k[Dec_k(Enc_k(m))=m]=1,\forall m\in M$
-
-### Negligible function
-
-$\epsilon:\mathbb{N}\to \mathbb{R}$ is a negligible function if $\forall c>0$, $\exists N\in\mathbb{N}$ such that $\forall n\geq N, \epsilon(n)<\frac{1}{n^c}$ (looks like definition of limits huh) (Definition 27.2)
-
-Idea: for any polynomial, even $n^{100}$, in the long run $\epsilon(n)\leq \frac{1}{n^{100}}$
-
-Example: $\epsilon (n)=\frac{1}{2^n}$, $\epsilon (n)=\frac{1}{n^{\log (n)}}$
-
-Non-example: $\epsilon (n)=O(\frac{1}{n^c})\forall c$
-
-### One-way function
-
-Idea: We are always okay with our chance of failure being negligible.
-
-Foundational concept of cryptography
-
-Goal: making $Enc_k(m),Dec_k(c')$ easy and $Dec^{-1}(c')$ hard.
-
-#### Definition 27.3 (Strong one-way function)
-
-$$
-f:\{0,1\}^n\to \{0,1\}^*(n\to \infty)
-$$
-
-There is a negligible function $\epsilon (n)$ such that for any adversary $\mathcal{A}$ (n.u.p.p.t)
-
-$$
-P[x\gets\{0,1\}^n;y=f(x):f(\mathcal{A}(y))=y]\leq\epsilon(n)
-$$
-
-_Probability of guessing a message $x'$ with the same output as the correct message $x$ is negligible_
-
-and
-
-there is a p.p.t which computes $f(x)$ for any $x$.
-
-- Hard to go back from output
-- Easy to find output
-
-$a$ sees output y, they wan to find some $x'$ such that $f(x')=y$.
-
-Example: Suppose $f$ is one-to-one, then $a$ must find our $x$, $P[x'=x]=\frac{1}{2^n}$, which is negligible.
-
-Why do we allow $a$ to get a different $x'$?
-
-> Suppose the definition is $P[x\gets\{0,1\}^n;y=f(x):\mathcal{A}(y)=x]\neq\epsilon(n)$, then a trivial function $f(x)=x$ would also satisfy the definition.
-
-To be technically fair, $\mathcal{A}(y)=\mathcal{A}(y,1^n)$, size of input $\approx n$, let them use $poly(n)$ operations. (we also tells the input size is $n$ to $\mathcal{A}$)
-
-#### Do one-way function exists?
-
-Unknown, actually...
-
-But we think so!
-
-We will need to use various assumptions. one that we believe very strongly based on evidence/experience
-
-Example:
-
-$p,q$ are large random primes
-
-$N=p\cdot q$
-
-Factoring $N$ is hard. (without knowing $p,q$)
+# Lecture 3
+
+All algorithms $C(x)\to y$, $x,y\in \{0,1\}^*$
+
+P.P.T= Probabilistic Polynomial-time Turing Machine.
+
+## Chapter 2: Computational Hardness
+
+### Turing Machine: Mathematical model for a computer program
+
+A machine that can:
+
+1. Read in put
+2. Read/Write working tape move left/right
+3. Can change state
+
+### Assumptions
+
+Anything can be accomplished by a real computer program can be accomplished by a "sufficiently complicated" Turing Machine (TM).
+
+### Polynomial time
+
+We say $C(x),|x|=n,n\to \infty$ runs in polynomial time if it uses at most $T(n)$ operations bounded by some polynomials. $\exist c>0$ such that $T(n)=O(n^c)$
+
+If we can argue that algorithm runs in polynomially-many constant-time operations, then this is true for the T.M.
+
+$p,q$ are polynomials in $n$,
+
+$p(n)+q(n),p(n)q(n),p(q(n))$ are polynomial of $n$.
+
+Polynomial-time $\approx$ "efficient" for this course.
+
+### Probabilistic
+
+Our algorithm's have access to random "coin-flips" we can produce poly(n) random bits.
+
+$P[C(x)\text{ takes at most }T(n)\text{ steps }]=1$
+
+Our adversary $a(x)$ will be a P.P.T which is non-uniform (n.u.) (programs description size can grow polynomially in n)
+
+### Efficient private key encryption scheme
+
+#### Definition 3.2 (Efficient private key encryption scheme)
+
+The triple $(Gen,Enc,Dec)$ is an efficient private key encryption scheme over the message space $M$ and key space $K$ if:
+
+1. $Gen(1^n)$ is a randomized p.p.t that outputs $k\in K$
+2. $Enc_k(m)$ is a potentially randomized p.p.t that outputs $c$ given $m\in M$
+3. $Dec_k(c')$ is a deterministic p.p.t that outputs $m$ or "null"
+4. $P_k[Dec_k(Enc_k(m))=m]=1,\forall m\in M$
+
+### Negligible function
+
+$\epsilon:\mathbb{N}\to \mathbb{R}$ is a negligible function if $\forall c>0$, $\exists N\in\mathbb{N}$ such that $\forall n\geq N, \epsilon(n)<\frac{1}{n^c}$ (looks like definition of limits huh) (Definition 27.2)
+
+Idea: for any polynomial, even $n^{100}$, in the long run $\epsilon(n)\leq \frac{1}{n^{100}}$
+
+Example: $\epsilon (n)=\frac{1}{2^n}$, $\epsilon (n)=\frac{1}{n^{\log (n)}}$
+
+Non-example: $\epsilon (n)=O(\frac{1}{n^c})\forall c$
+
+### One-way function
+
+Idea: We are always okay with our chance of failure being negligible.
+
+Foundational concept of cryptography
+
+Goal: making $Enc_k(m),Dec_k(c')$ easy and $Dec^{-1}(c')$ hard.
+
+#### Definition 27.3 (Strong one-way function)
+
+$$
+f:\{0,1\}^n\to \{0,1\}^*(n\to \infty)
+$$
+
+There is a negligible function $\epsilon (n)$ such that for any adversary $\mathcal{A}$ (n.u.p.p.t)
+
+$$
+P[x\gets\{0,1\}^n;y=f(x):f(\mathcal{A}(y))=y]\leq\epsilon(n)
+$$
+
+_Probability of guessing a message $x'$ with the same output as the correct message $x$ is negligible_
+
+and
+
+there is a p.p.t which computes $f(x)$ for any $x$.
+
+- Hard to go back from output
+- Easy to find output
+
+$a$ sees output y, they wan to find some $x'$ such that $f(x')=y$.
+
+Example: Suppose $f$ is one-to-one, then $a$ must find our $x$, $P[x'=x]=\frac{1}{2^n}$, which is negligible.
+
+Why do we allow $a$ to get a different $x'$?
+
+> Suppose the definition is $P[x\gets\{0,1\}^n;y=f(x):\mathcal{A}(y)=x]\neq\epsilon(n)$, then a trivial function $f(x)=x$ would also satisfy the definition.
+
+To be technically fair, $\mathcal{A}(y)=\mathcal{A}(y,1^n)$, size of input $\approx n$, let them use $poly(n)$ operations. (we also tells the input size is $n$ to $\mathcal{A}$)
+
+#### Do one-way function exists?
+
+Unknown, actually...
+
+But we think so!
+
+We will need to use various assumptions. one that we believe very strongly based on evidence/experience
+
+Example:
+
+$p,q$ are large random primes
+
+$N=p\cdot q$
+
+Factoring $N$ is hard. (without knowing $p,q$)
diff --git a/pages/CSE442T/CSE442T_L4.md b/content/CSE442T/CSE442T_L4.md
similarity index 96%
rename from pages/CSE442T/CSE442T_L4.md
rename to content/CSE442T/CSE442T_L4.md
index 056690e..d904f0b 100644
--- a/pages/CSE442T/CSE442T_L4.md
+++ b/content/CSE442T/CSE442T_L4.md
@@ -1,140 +1,140 @@
-# Lecture 4
-
-## Recap
-
-Negligible function $\epsilon(n)$ if $\forall c>0,\exist N$ such that $n>N$, $\epsilon (n)<\frac{1}{n^c}$
-
-Example:
-
-$\epsilon(n)=2^{-n},\epsilon(n)=\frac{1}{n^{\log (\log n)}}$
-
-## Chapter 2: Computational Hardness
-
-### One-way function
-
-#### Strong One-Way Function
-
-1. $\exists$ a P.P.T. that computes $f(x),\forall x\in\{0,1\}^n$
-2. $\forall \mathcal{A}$ adversaries, $\exists \epsilon(n),\forall n$.
-
-$$
-P[x\gets \{0,1\}^n;y=f(x):f(\mathcal{A}(y,1^n))=y]<\epsilon(n)
-$$
-
-_That is, the probability of success guessing should decreasing (exponentially) as encrypted message increase (linearly)..._
-
-To negate statement 2:
-
-$$
-P[x\gets \{0,1\}^n;y=f(x):f(\mathcal{A}(y,1^n))=y]=\mu(n)
-$$
-
-is a negligible function.
-
-Negation:
-
-$\exists \mathcal{A}$, $P[x\gets \{0,1\}^n;y=f(x):f(\mathcal{A}(y,1^n))=y]=\mu(n)$ is not a negligible function.
-
-That is, $\exists c>0,\forall N \exists n>N \epsilon(n)>\frac{1}{n^c}$
-
-$\mu(n)>\frac{1}{n^c}$ for infinitely many $n$. or infinitely often.
-
-> Keep in mind: $P[success]=\frac{1}{n^c}$, it can try $O(n^c)$ times and have a good chance of succeeding at least once.
-
-#### Definition 28.4 (Weak one-way function)
-
-$f:\{0,1\}^n\to \{0,1\}^*$
-
-1. $\exists$ a P.P.T. that computes $f(x),\forall x\in\{0,1\}^n$
-2. $\forall \mathcal{A}$ adversaries, $\exists \epsilon(n),\forall n$.
-
-$$
-P[x\gets \{0,1\}^n;y=f(x):f(\mathcal{A}(y,1^n))=y]<1-\frac{1}{p(n)}
-$$
-
-_The probability of success should not be too close to 1_
-
-### Probability
-
-#### Useful bound $00,\exist N$ such that $n>N$, $\epsilon (n)<\frac{1}{n^c}$
+
+Example:
+
+$\epsilon(n)=2^{-n},\epsilon(n)=\frac{1}{n^{\log (\log n)}}$
+
+## Chapter 2: Computational Hardness
+
+### One-way function
+
+#### Strong One-Way Function
+
+1. $\exists$ a P.P.T. that computes $f(x),\forall x\in\{0,1\}^n$
+2. $\forall \mathcal{A}$ adversaries, $\exists \epsilon(n),\forall n$.
+
+$$
+P[x\gets \{0,1\}^n;y=f(x):f(\mathcal{A}(y,1^n))=y]<\epsilon(n)
+$$
+
+_That is, the probability of success guessing should decreasing (exponentially) as encrypted message increase (linearly)..._
+
+To negate statement 2:
+
+$$
+P[x\gets \{0,1\}^n;y=f(x):f(\mathcal{A}(y,1^n))=y]=\mu(n)
+$$
+
+is a negligible function.
+
+Negation:
+
+$\exists \mathcal{A}$, $P[x\gets \{0,1\}^n;y=f(x):f(\mathcal{A}(y,1^n))=y]=\mu(n)$ is not a negligible function.
+
+That is, $\exists c>0,\forall N \exists n>N \epsilon(n)>\frac{1}{n^c}$
+
+$\mu(n)>\frac{1}{n^c}$ for infinitely many $n$. or infinitely often.
+
+> Keep in mind: $P[success]=\frac{1}{n^c}$, it can try $O(n^c)$ times and have a good chance of succeeding at least once.
+
+#### Definition 28.4 (Weak one-way function)
+
+$f:\{0,1\}^n\to \{0,1\}^*$
+
+1. $\exists$ a P.P.T. that computes $f(x),\forall x\in\{0,1\}^n$
+2. $\forall \mathcal{A}$ adversaries, $\exists \epsilon(n),\forall n$.
+
+$$
+P[x\gets \{0,1\}^n;y=f(x):f(\mathcal{A}(y,1^n))=y]<1-\frac{1}{p(n)}
+$$
+
+_The probability of success should not be too close to 1_
+
+### Probability
+
+#### Useful bound $0
\frac{2^n}{2n}$
-
-e.g.
-$$
-P[x\gets \{0,1\}^n:x\in prime]\geq {\frac{2^n}{2n}\over 2^n}=\frac{1}{2n}
-$$
-
-Theorem:
-
-$$
-f_{mult}:\{0,1\}^{2n}\to \{0,1\}^{2n},f_{mult}(x_1,x_2)=x_1\cdot x_2
-$$
-
-Idea: There are enough pairs of primes to make this difficult.
-
-> Reminder: Weak on-way if easy to compute and $\exist p(n)$,
-> $P[\mathcal{A}\ \text{inverts=success}]<1-\frac{1}{p(n)}$
-> $P[\mathcal{A}\ \text{inverts=failure}]>\frac{1}{p(n)}$ high enough
-
-### Prove one-way function (under assumptions)
-
-To prove $f$ is on-way (under assumption)
-
-1. Show $\exists p.p.t$ solves $f(x),\forall x$.
-2. Proof by contradiction.
- - For weak: Provide $p(n)$ that we know works.
- - Assume $\exists \mathcal{A}$ such that $P[\mathcal{A}\ \text{inverts}]>1-\frac{1}{p(n)}$
- - For strong: Provide $p(n)$ that we know works.
- - Assume $\exists \mathcal{A}$ such that $P[\mathcal{A}\ \text{inverts}]>\frac{1}{p(n)}$
-
-Construct p.p.t $\mathcal{B}$
-which uses $\mathcal{A}$ to solve a problem, which contradicts assumption or known fact.
-
-Back to Theorem:
-
-We will show that $p(n)=8n^2$ works.
-
-We claim $\forall \mathcal{A}$,
-
-$$
-P[(x_1,x_2)\gets \{0,1\}^{2n};y=f_{mult}(x_1,x_2):f(\mathcal{A}(y))=y]<1-\frac{1}{8n^2}
-$$
-
-For the sake of contradiction, suppose
-
-$$
-\exists \mathcal{A} \textup{ such that} P[\mathcal{A}\ \text{inverts}]>1-\frac{1}{8n^2}
-$$
-
-We will use this $\mathcal{A}$ to design p.p.t $B$ which can factor 2 random primes with non-negligible prob.
-
-```python
-def A(y):
- # the adversary algorithm
- # expecting N to be product of random integer, don't need to be prime
-
-def is_prime(x):
- # test if x is a prime
-
-def gen(n):
- # generate number up to n bits
-
-def B(y):
- # N is the input cipher
- x1,x2=gen(n),gen(n)
- p=x1*x2
- if is_prime(x1) and is_prime(x2):
- return A(p)
- return A(y)
-```
-
-How often does $\mathcal{B}$ succeed/fail?
-
-$\mathcal{B}$ fails to factor $N=p\dot q$, if:
-
-- $x$ and $y$ are not both prime
- - $P_e=1-P(x\in \Pi_n)P(y\in \Pi_n)\leq 1-(\frac{1}{2n})^2=1-\frac{1}{4n^2}$
-- if $\mathcal{A}$ fails to factor
- - $P_f<\frac{1}{8n^2}$
-
-So
-
-$$
-P[\mathcal{B} \text{ fails}]\leq P[E\cup F]\leq P[E]+P[F]\leq (1-\frac{1}{4n^2}+\frac{1}{8n^2})=1-\frac{1}{8n^2}
-$$
-
-So
-
-$$
-P[\mathcal{B} \text{ succeed}]\geq \frac{1}{8n^2} (\text{non-negligible})
-$$
-
-This contradicting factoring assumption. Therefore, our assumption that $\mathcal{A}$ exists was wrong.
-
-Therefore $\forall \mathcal{A}$, $P[(x_1,x_2)\gets \{0,1\}^{2n};y=f_{mult}(x_1,x_2):f(\mathcal{A}(y))=y]<1-\frac{1}{8n^2}$ is wrong.
+# Lecture 5
+
+## Chapter 2: Computational Hardness
+
+Proving that there are one-way functions relies on assumptions.
+
+Factoring Assumption: $\forall \mathcal{A}, \exist \epsilon (n)$, let $p,q\in \Pi_n,p,q<2^n$
+
+$$
+P[p\gets \Pi_n;q\gets \Pi_n;N=p\cdot q:\mathcal{A}(N)\in \{p,q\}]<\epsilon(n)
+$$
+
+Evidence: To this point, best known procedure to always factor has run time $O(2^{\sqrt{n}\sqrt{log(n)}})$
+
+Distribution of prime numbers:
+
+- We have infinitely many prime
+- Prime Number Theorem $\pi(n)\approx\frac{n}{\ln(n)}$, that means, $\frac{1}{\ln n}$ of all integers are prime.
+
+We want to (guaranteed to) find prime:
+
+$\pi(n)>\frac{2^n}{2n}$
+
+e.g.
+$$
+P[x\gets \{0,1\}^n:x\in prime]\geq {\frac{2^n}{2n}\over 2^n}=\frac{1}{2n}
+$$
+
+Theorem:
+
+$$
+f_{mult}:\{0,1\}^{2n}\to \{0,1\}^{2n},f_{mult}(x_1,x_2)=x_1\cdot x_2
+$$
+
+Idea: There are enough pairs of primes to make this difficult.
+
+> Reminder: Weak on-way if easy to compute and $\exist p(n)$,
+> $P[\mathcal{A}\ \text{inverts=success}]<1-\frac{1}{p(n)}$
+> $P[\mathcal{A}\ \text{inverts=failure}]>\frac{1}{p(n)}$ high enough
+
+### Prove one-way function (under assumptions)
+
+To prove $f$ is on-way (under assumption)
+
+1. Show $\exists p.p.t$ solves $f(x),\forall x$.
+2. Proof by contradiction.
+ - For weak: Provide $p(n)$ that we know works.
+ - Assume $\exists \mathcal{A}$ such that $P[\mathcal{A}\ \text{inverts}]>1-\frac{1}{p(n)}$
+ - For strong: Provide $p(n)$ that we know works.
+ - Assume $\exists \mathcal{A}$ such that $P[\mathcal{A}\ \text{inverts}]>\frac{1}{p(n)}$
+
+Construct p.p.t $\mathcal{B}$
+which uses $\mathcal{A}$ to solve a problem, which contradicts assumption or known fact.
+
+Back to Theorem:
+
+We will show that $p(n)=8n^2$ works.
+
+We claim $\forall \mathcal{A}$,
+
+$$
+P[(x_1,x_2)\gets \{0,1\}^{2n};y=f_{mult}(x_1,x_2):f(\mathcal{A}(y))=y]<1-\frac{1}{8n^2}
+$$
+
+For the sake of contradiction, suppose
+
+$$
+\exists \mathcal{A} \textup{ such that} P[\mathcal{A}\ \text{inverts}]>1-\frac{1}{8n^2}
+$$
+
+We will use this $\mathcal{A}$ to design p.p.t $B$ which can factor 2 random primes with non-negligible prob.
+
+```python
+def A(y):
+ # the adversary algorithm
+ # expecting N to be product of random integer, don't need to be prime
+
+def is_prime(x):
+ # test if x is a prime
+
+def gen(n):
+ # generate number up to n bits
+
+def B(y):
+ # N is the input cipher
+ x1,x2=gen(n),gen(n)
+ p=x1*x2
+ if is_prime(x1) and is_prime(x2):
+ return A(p)
+ return A(y)
+```
+
+How often does $\mathcal{B}$ succeed/fail?
+
+$\mathcal{B}$ fails to factor $N=p\dot q$, if:
+
+- $x$ and $y$ are not both prime
+ - $P_e=1-P(x\in \Pi_n)P(y\in \Pi_n)\leq 1-(\frac{1}{2n})^2=1-\frac{1}{4n^2}$
+- if $\mathcal{A}$ fails to factor
+ - $P_f<\frac{1}{8n^2}$
+
+So
+
+$$
+P[\mathcal{B} \text{ fails}]\leq P[E\cup F]\leq P[E]+P[F]\leq (1-\frac{1}{4n^2}+\frac{1}{8n^2})=1-\frac{1}{8n^2}
+$$
+
+So
+
+$$
+P[\mathcal{B} \text{ succeed}]\geq \frac{1}{8n^2} (\text{non-negligible})
+$$
+
+This contradicting factoring assumption. Therefore, our assumption that $\mathcal{A}$ exists was wrong.
+
+Therefore $\forall \mathcal{A}$, $P[(x_1,x_2)\gets \{0,1\}^{2n};y=f_{mult}(x_1,x_2):f(\mathcal{A}(y))=y]<1-\frac{1}{8n^2}$ is wrong.
diff --git a/pages/CSE442T/CSE442T_L6.md b/content/CSE442T/CSE442T_L6.md
similarity index 96%
rename from pages/CSE442T/CSE442T_L6.md
rename to content/CSE442T/CSE442T_L6.md
index 6d5a123..09e3c1b 100644
--- a/pages/CSE442T/CSE442T_L6.md
+++ b/content/CSE442T/CSE442T_L6.md
@@ -1,114 +1,114 @@
-# Lecture 6
-
-## Review
-
-$$
-f_{mult}:\{0,1\}^{2n}\to \{0,1\}^{2n}
-$$
-
-is a weak one-way.
-
-$P[\mathcal{A}\ \text{invert}]\leq 1-\frac{1}{8n^2}$ over $x,y\in$ random integers $\{0,1\}^n$
-
-## Chapter 2: Computational Hardness
-
-### Converting weak one-way function to strong one-way function
-
-By factoring assumptions, $\exists$ strong one-way function
-
-$f:\{0,1\}^N\to \{0,1\}^N$ for infinitely many $N$.
-
-$f=\left(f_{mult}(x_1,y_1),f_{mult}(x_2,y_2),\dots,f_{mult}(x_q,y_q)\right)$, $x_i,y_i\in \{0,1\}^n$.
-
-$f:\{0,1\}^{8n^4}\to \{0,1\}^{8n^4}$
-
-Idea: With high probability, at least one pair $(x_i,y_i)$ are both prime.
-
-Factoring assumption: $\mathcal{A}$ has low chance of factoring $f_{mult}(x_i,y_i)$
-
-Use $P[x \textup{ is prime}]\geq\frac{1}{2n}$
-
-$$
-P[\forall p,q \in x_i,y_i, p\textup{ and } q \textup{ is not prime }]=P[p,q \in x_i,y_i, p\textup{ and } q \textup{ is not prime }]^q
-$$
-
-$$
-P[\forall p,q \in x_i,y_i, p\textup{ and } q \textup{ is not prime }]\leq(1-\frac{1}{4n^2})^{4n^3}\leq (e^{-\frac{1}{4n^2}})^{4n^3}=e^{-n}
-$$
-
-### Proof of strong one-way function
-
-1. $f_{mult}$ is efficiently computable, and we compute it poly-many times.
-2. Suppose it's not hard to invert. Then
- $\exists \text{n.u.p.p.t.}\ \mathcal{A}$such that $P[w\gets \{0,1\}^{8n^4};z=f(w):f(\mathcal{A}(z))=0]=\mu (n)>\frac{1}{p(n)}$
-
-We will use this to construct $\mathcal{B}$ that breaks factoring assumption.
-
-$p\gets \Pi_n,q\gets \Pi_n,N=p\cdot q$
-
-```psudocode
-function B:
- Receives N
- Sample (x,y) q times
- Compute z_i = f_mult(x_i,y_i) for each i
- From i=1 to q
- check if both x_i y_i are prime
- If yes,
- z_i = N
- break // replace first instance
- Let z = (z_1,z_2,...,z_q) // z_k = N hopefully
- ((x_1,y_1),...,(x_k,y_k),...,(x_q,y_q)) <- a(z)
- if (x_k,y_k) was replaced
- return x_k,y_k
- else
- return null
-```
-
-Let $E$ be the event that all pairs of sampled integers were not both prime.
-
-Let $F$ be the event that $\mathcal{A}$ failed to invert
-
-$P[\mathcal{B} \text{ fails}]\leq P[E\cup F]\leq P[E]+P[F]\leq e^{-n}+(1-\frac{1}{p(n)})=1-(\frac{1}{p(n)}-e^{-n})\leq 1-\frac{1}{2p(n)}$
-
-$P[\mathcal{B} \text{ succeeds}]=P[p\gets \Pi_n,q\gets \Pi_n,N=p\cdot q:\mathcal{B}(N)\in \{p,q\}]\geq \frac{1}{2p(n)}$
-
-Contradicting factoring assumption
-
-We've defined one-way functions to hae domain $\{0,1\}^n$ for some $n$.
-
-Our strong one-way function $f(n)$
-
-- Takes $4n^3$ pairs of random integers
-- Multiplies all pairs
-- Hope at least pair are both prime $p,q$ b/c we know $N=p\cdot q$ is hard to factor
-
-### General collection of strong one-way functions
-
-$F=\{f_i:D_i\to R_i\},i\in I$, $I$ is the index set.
-
-1. We can effectively choose $i\gets I$ using $Gen$.
-2. $\forall i$ we ca efficiently sample $x\gets D_i$.
-3. $\forall i\forall x\in D_i,f_i(x)$ is efficiently computable
-4. For any n.u.p.p.t $\mathcal{A}$, $\exists$ negligible function $\epsilon (n)$.
- $P[i\gets Gen(1^n);x\gets D_i;y=f_i(x):f(\mathcal{A}(y,i,1^n))=y]\leq \epsilon(n)$
-
-#### An instance of strong one-way function under factoring assumption
-
-$f_{mult,n}:(\Pi_n\times \Pi_n)\to \{0,1\}^{2n}$ is a collection of strong one way function.
-
-Ideas of proof:
-
-1. $n\gets Gen(1^n)$
-2. We can efficiently sample $p,q$ (with justifications)
-3. Factoring assumption
-
-Algorithm for sampling a random prime $p\gets \Pi_n$
-
-1. $x\gets \{0,1\}^n$ (n bit integer)
-2. Check if $x$ is prime.
- - Deterministic poly-time procedure
- - In practice, a much faster randomized procedure (Miller-Rabin) used
-
- $P[x\cancel{\in} \text{prime}|\text{test said x prime}]<\epsilon(n)$
-
-3. If not, repeat. Do this for polynomial number of times
+# Lecture 6
+
+## Review
+
+$$
+f_{mult}:\{0,1\}^{2n}\to \{0,1\}^{2n}
+$$
+
+is a weak one-way.
+
+$P[\mathcal{A}\ \text{invert}]\leq 1-\frac{1}{8n^2}$ over $x,y\in$ random integers $\{0,1\}^n$
+
+## Chapter 2: Computational Hardness
+
+### Converting weak one-way function to strong one-way function
+
+By factoring assumptions, $\exists$ strong one-way function
+
+$f:\{0,1\}^N\to \{0,1\}^N$ for infinitely many $N$.
+
+$f=\left(f_{mult}(x_1,y_1),f_{mult}(x_2,y_2),\dots,f_{mult}(x_q,y_q)\right)$, $x_i,y_i\in \{0,1\}^n$.
+
+$f:\{0,1\}^{8n^4}\to \{0,1\}^{8n^4}$
+
+Idea: With high probability, at least one pair $(x_i,y_i)$ are both prime.
+
+Factoring assumption: $\mathcal{A}$ has low chance of factoring $f_{mult}(x_i,y_i)$
+
+Use $P[x \textup{ is prime}]\geq\frac{1}{2n}$
+
+$$
+P[\forall p,q \in x_i,y_i, p\textup{ and } q \textup{ is not prime }]=P[p,q \in x_i,y_i, p\textup{ and } q \textup{ is not prime }]^q
+$$
+
+$$
+P[\forall p,q \in x_i,y_i, p\textup{ and } q \textup{ is not prime }]\leq(1-\frac{1}{4n^2})^{4n^3}\leq (e^{-\frac{1}{4n^2}})^{4n^3}=e^{-n}
+$$
+
+### Proof of strong one-way function
+
+1. $f_{mult}$ is efficiently computable, and we compute it poly-many times.
+2. Suppose it's not hard to invert. Then
+ $\exists \text{n.u.p.p.t.}\ \mathcal{A}$such that $P[w\gets \{0,1\}^{8n^4};z=f(w):f(\mathcal{A}(z))=0]=\mu (n)>\frac{1}{p(n)}$
+
+We will use this to construct $\mathcal{B}$ that breaks factoring assumption.
+
+$p\gets \Pi_n,q\gets \Pi_n,N=p\cdot q$
+
+```psudocode
+function B:
+ Receives N
+ Sample (x,y) q times
+ Compute z_i = f_mult(x_i,y_i) for each i
+ From i=1 to q
+ check if both x_i y_i are prime
+ If yes,
+ z_i = N
+ break // replace first instance
+ Let z = (z_1,z_2,...,z_q) // z_k = N hopefully
+ ((x_1,y_1),...,(x_k,y_k),...,(x_q,y_q)) <- a(z)
+ if (x_k,y_k) was replaced
+ return x_k,y_k
+ else
+ return null
+```
+
+Let $E$ be the event that all pairs of sampled integers were not both prime.
+
+Let $F$ be the event that $\mathcal{A}$ failed to invert
+
+$P[\mathcal{B} \text{ fails}]\leq P[E\cup F]\leq P[E]+P[F]\leq e^{-n}+(1-\frac{1}{p(n)})=1-(\frac{1}{p(n)}-e^{-n})\leq 1-\frac{1}{2p(n)}$
+
+$P[\mathcal{B} \text{ succeeds}]=P[p\gets \Pi_n,q\gets \Pi_n,N=p\cdot q:\mathcal{B}(N)\in \{p,q\}]\geq \frac{1}{2p(n)}$
+
+Contradicting factoring assumption
+
+We've defined one-way functions to hae domain $\{0,1\}^n$ for some $n$.
+
+Our strong one-way function $f(n)$
+
+- Takes $4n^3$ pairs of random integers
+- Multiplies all pairs
+- Hope at least pair are both prime $p,q$ b/c we know $N=p\cdot q$ is hard to factor
+
+### General collection of strong one-way functions
+
+$F=\{f_i:D_i\to R_i\},i\in I$, $I$ is the index set.
+
+1. We can effectively choose $i\gets I$ using $Gen$.
+2. $\forall i$ we ca efficiently sample $x\gets D_i$.
+3. $\forall i\forall x\in D_i,f_i(x)$ is efficiently computable
+4. For any n.u.p.p.t $\mathcal{A}$, $\exists$ negligible function $\epsilon (n)$.
+ $P[i\gets Gen(1^n);x\gets D_i;y=f_i(x):f(\mathcal{A}(y,i,1^n))=y]\leq \epsilon(n)$
+
+#### An instance of strong one-way function under factoring assumption
+
+$f_{mult,n}:(\Pi_n\times \Pi_n)\to \{0,1\}^{2n}$ is a collection of strong one way function.
+
+Ideas of proof:
+
+1. $n\gets Gen(1^n)$
+2. We can efficiently sample $p,q$ (with justifications)
+3. Factoring assumption
+
+Algorithm for sampling a random prime $p\gets \Pi_n$
+
+1. $x\gets \{0,1\}^n$ (n bit integer)
+2. Check if $x$ is prime.
+ - Deterministic poly-time procedure
+ - In practice, a much faster randomized procedure (Miller-Rabin) used
+
+ $P[x\cancel{\in} \text{prime}|\text{test said x prime}]<\epsilon(n)$
+
+3. If not, repeat. Do this for polynomial number of times
diff --git a/pages/CSE442T/CSE442T_L7.md b/content/CSE442T/CSE442T_L7.md
similarity index 96%
rename from pages/CSE442T/CSE442T_L7.md
rename to content/CSE442T/CSE442T_L7.md
index 500223e..5f37c67 100644
--- a/pages/CSE442T/CSE442T_L7.md
+++ b/content/CSE442T/CSE442T_L7.md
@@ -1,120 +1,120 @@
-# Lecture 7
-
-## Chapter 2: Computational Hardness
-
-### Letter choosing experiment
-
-For 100 letter tiles,
-
-$p_1,...,p_{27}$ (with one blank)
-
-$(p_1)^2+\dots +(p_{27})^2\geq\frac{1}{27}$
-
-For any $p_1,...,p_n$, $0\leq p_i\leq 1$.
-
-$\sum p_i=1$
-
-$P[\text{the same event twice in a row}]=p_1^2+p_2^2....+p_n^2$
-
-By Cauchy-Schwarz: $|u\cdot v|^2 \leq ||u||\cdot ||v||^2$.
-
-let $\vec{u}=(p_1,...,p_n)$, $\vec{v}=(1,..,1)$, so $(p_1^2+p_2^2....+p_n)^2\leq (p_1^2+p_2^2....+p_n^2)\cdot n$. So $p_1^2+p_2^2....+p_n^2\geq \frac{1}{n}$
-
-So for an adversary $\mathcal{A}$, who random choose $x'$ and output $f(x')=f(x)$ if matched. $P[f(x)=f(x')]\geq\frac{1}{|Y|}$
-
-So $P[x\gets f(x);y=f(x):\mathcal{A}(y,1^n)=y]\geq \frac{1}{|Y|}$
-
-### Modular arithmetic
-
-For $a,b\in \mathbb{Z}$, $N\in \mathbb{Z}^2$
-
-$a\equiv b \mod N\iff N|(a-b)\iff \exists k\in \mathbb{Z}, a-b=kN,a=kN+b$
-
-Ex: $N=23$, $-20\equiv 3\equiv 26\equiv 49\equiv 72\mod 23$.
-
-#### Equivalent relations for any $N$ on $\mathbb{Z}$
-
-$a\equiv a\mod N$
-
-$a\equiv b\mod N\iff b\equiv a\mod N$
-
-$a\equiv b\mod N$ and $b\equiv c\mod N\implies a\equiv c\mod N$
-
-#### Division Theorem
-
-For any $a\in \mathbb{Z}$, and $N\in\mathbb{Z}^+$, $\exists unique\ r,0\leq rb>0)$
-
-$gcd(a,b)=gcd(b,a\mod b)$
-
-```python
-def euclidean_algorithm(a,b):
- if ab_3$, and $q_2$ in worst case is $1$, so $b_3<\frac{b_1}{2}$
-
-$T(n)=2\Theta(\log b)=O(\log n)$ (linear in size of bits input)
-
-##### Extended Euclidean algorithm
-
-Our goal is to find $x,y$ such that $ax+by=gcd(a,b)$
-
-Given $a\cdot x\equiv b\mod N$, we do euclidean algorithm to find $gcd(a,b)=d$, then reverse the steps to find $x,y$ such that $ax+by=d$
-
-```python
-def extended_euclidean_algorithm(a,b):
- if a%b==0: return (0,1)
- x,y=extended_euclidean_algorithm(b,a%b)
- return (y,x-y*(a//b))
-```
-
-Example: $a=12,b=43$, $gcd(12,43)=1$
-
-$$
-\begin{aligned}
-43&=3\cdot 12+7\\
-12&=1\cdot 7+5\\
-7&=1\cdot 5+2\\
-5&=2\cdot 2+1\\
-2&=2\cdot 1+0\\
-1&=1\cdot 5-2\cdot 2\\
-1&=1\cdot 5-2\cdot (7-1\cdot 5)\\
-1&=3\cdot 5-2\cdot 7\\
-1&=3\cdot (12-1\cdot 7)-2\cdot 7\\
-1&=3\cdot 12-5\cdot 7\\
-1&=3\cdot 12-5\cdot (43-3\cdot 12)\\
-1&=-5\cdot 43+18\cdot 12\\
-\end{aligned}
-$$
-
-So $x=-5,y=18$
+# Lecture 7
+
+## Chapter 2: Computational Hardness
+
+### Letter choosing experiment
+
+For 100 letter tiles,
+
+$p_1,...,p_{27}$ (with one blank)
+
+$(p_1)^2+\dots +(p_{27})^2\geq\frac{1}{27}$
+
+For any $p_1,...,p_n$, $0\leq p_i\leq 1$.
+
+$\sum p_i=1$
+
+$P[\text{the same event twice in a row}]=p_1^2+p_2^2....+p_n^2$
+
+By Cauchy-Schwarz: $|u\cdot v|^2 \leq ||u||\cdot ||v||^2$.
+
+let $\vec{u}=(p_1,...,p_n)$, $\vec{v}=(1,..,1)$, so $(p_1^2+p_2^2....+p_n)^2\leq (p_1^2+p_2^2....+p_n^2)\cdot n$. So $p_1^2+p_2^2....+p_n^2\geq \frac{1}{n}$
+
+So for an adversary $\mathcal{A}$, who random choose $x'$ and output $f(x')=f(x)$ if matched. $P[f(x)=f(x')]\geq\frac{1}{|Y|}$
+
+So $P[x\gets f(x);y=f(x):\mathcal{A}(y,1^n)=y]\geq \frac{1}{|Y|}$
+
+### Modular arithmetic
+
+For $a,b\in \mathbb{Z}$, $N\in \mathbb{Z}^2$
+
+$a\equiv b \mod N\iff N|(a-b)\iff \exists k\in \mathbb{Z}, a-b=kN,a=kN+b$
+
+Ex: $N=23$, $-20\equiv 3\equiv 26\equiv 49\equiv 72\mod 23$.
+
+#### Equivalent relations for any $N$ on $\mathbb{Z}$
+
+$a\equiv a\mod N$
+
+$a\equiv b\mod N\iff b\equiv a\mod N$
+
+$a\equiv b\mod N$ and $b\equiv c\mod N\implies a\equiv c\mod N$
+
+#### Division Theorem
+
+For any $a\in \mathbb{Z}$, and $N\in\mathbb{Z}^+$, $\exists unique\ r,0\leq rb>0)$
+
+$gcd(a,b)=gcd(b,a\mod b)$
+
+```python
+def euclidean_algorithm(a,b):
+ if ab_3$, and $q_2$ in worst case is $1$, so $b_3<\frac{b_1}{2}$
+
+$T(n)=2\Theta(\log b)=O(\log n)$ (linear in size of bits input)
+
+##### Extended Euclidean algorithm
+
+Our goal is to find $x,y$ such that $ax+by=gcd(a,b)$
+
+Given $a\cdot x\equiv b\mod N$, we do euclidean algorithm to find $gcd(a,b)=d$, then reverse the steps to find $x,y$ such that $ax+by=d$
+
+```python
+def extended_euclidean_algorithm(a,b):
+ if a%b==0: return (0,1)
+ x,y=extended_euclidean_algorithm(b,a%b)
+ return (y,x-y*(a//b))
+```
+
+Example: $a=12,b=43$, $gcd(12,43)=1$
+
+$$
+\begin{aligned}
+43&=3\cdot 12+7\\
+12&=1\cdot 7+5\\
+7&=1\cdot 5+2\\
+5&=2\cdot 2+1\\
+2&=2\cdot 1+0\\
+1&=1\cdot 5-2\cdot 2\\
+1&=1\cdot 5-2\cdot (7-1\cdot 5)\\
+1&=3\cdot 5-2\cdot 7\\
+1&=3\cdot (12-1\cdot 7)-2\cdot 7\\
+1&=3\cdot 12-5\cdot 7\\
+1&=3\cdot 12-5\cdot (43-3\cdot 12)\\
+1&=-5\cdot 43+18\cdot 12\\
+\end{aligned}
+$$
+
+So $x=-5,y=18$
diff --git a/pages/CSE442T/CSE442T_L8.md b/content/CSE442T/CSE442T_L8.md
similarity index 97%
rename from pages/CSE442T/CSE442T_L8.md
rename to content/CSE442T/CSE442T_L8.md
index c41ff30..e594dbd 100644
--- a/pages/CSE442T/CSE442T_L8.md
+++ b/content/CSE442T/CSE442T_L8.md
@@ -1,74 +1,74 @@
-# Lecture 8
-
-## Chapter 2: Computational Hardness
-
-### Computational number theory/arithmetic
-
-We want to have a easy-to-use one-way functions for cryptography.
-
-How to find $a^x\mod N$ quickly. $a,x,N$ are positive integers. We want to reduce $[a\mod N]$
-
-Example: $129^{39}\mod 41\equiv (129\mod 41)^{39}\mod 41=6^{39}\mod 41$
-
-Find the binary representation of $x$. e.g. express as sums of powers of 2.
-
-`x=39=bin(1,0,0,1,1,1)`
-
-Repeatedly square $floor(\log_2(x))$ times.
-
-$$
-\begin{aligned}
- 6^{39}\mod 41&=6^{32+4+2+1}\mod 41\\
- &=(6^{32}\mod 41)(6^{4}\mod 41)(6^{2}\mod 41)(6^{1}\mod 41)\mod 41\\
- &=(-4)(25)(-5)(6)\mod 41\\
- &=7
-\end{aligned}
-$$
-
-The total multiplication steps is $floor(\log_2(x))$
-
-_looks like fast exponentiation right?_
-
-Goal: $f_{g,p}(x)=g^x\mod p$ is a one-way function, for certain choice of $p,g$ (and assumptions)
-
-#### A group (Nice day one for MODERN ALGEBRA)
-
-A group $G$ is a set with, a binary operation $\oplus$. and $\forall a,b\in G$, $a \oplus b\to c$
-
-1. $a,b\in G,a\oplus b\in G$ (closure)
-2. $(a\oplus b)\oplus c=a\oplus(b\oplus c)$ (associativity)
-3. $\exists e$ such that $\forall a\in G, e\oplus g=g=g\oplus e$ (identity element)
-4. $\exists g^{-1}\in G$ such that $g\oplus g^{-1}=e$ (inverse element)
-
-Example:
-
-- $\mathbb{Z}_N=\{0,1,2,3,...,N-1\}$ with addition $\mod N$, with identity element $0$. $a\in \mathbb{Z}_N, a^{-1}=N-a$.
-- A even simpler group is $\Z$ with addition.
-- $\mathbb{Z}_N^*=\{x:x\in \mathbb{Z},1 \leq x\leq N: gcd(x,N)=1\}$ with multiplication $\mod N$ (we can do division here! yeah...).
- - If $N=p$ is prime, then $\mathbb{Z}_p^*=\{1,2,3,...,p-1\}$
- - If $N=24$, then $\mathbb{Z}_{24}^*=\{1,5,7,11,13,17,19,23\}$
- - Identity is $1$.
- - Let $a\in \mathbb{Z}_N^*$, by Euclidean algorithm, $gcd(a,N)=1$,$\exists x,y \in Z$ such that $ax+Ny=1,ax\equiv 1\mod N,x=a^{-1}$
- - $a,b\in \mathbb{Z}_N^*$. Want to show $gcd(ab,N)=1$. If $gcd(ab,N)=d>1$, then some prime $p|d$. so $p|(a,b)$, which means $p|a$ or $p|b$. In either case, $gcd(a,N)>d$ or $gcd(b,N)>d$, which contradicts that $a,b\in \mathbb{C}_N^*$
-
-#### Euler's totient function
-
-$\phi:\mathbb{Z}^+\to \mathbb{Z}^+,\phi(N)=|\mathbb{Z}_N^*|=|\{1\leq x\leq N:gcd(x,N)=1\}|$
-
-Example: $\phi(1)=1$, $\phi(24)=8$, $\phi (p)=p-1$, $\phi(p\cdot q)=(p-1)(q-1)$
-
-#### Euler's Theorem
-
-For any $a\in \mathbb{Z}_N^*$, $a^{\phi(N)}\equiv 1\mod N$
-
-Consequence: $a^x\mod N$, $x=K\cdot \phi(N)+r,0\leq r\leq \phi(N)$
-
-$$
-a^x\equiv a^{K \cdot \phi (N) +r}\equiv ( a^{\phi(n)} )^K \cdot a^r \mod N$
-$$
-
-So computing $a^x\mod N$ is polynomial in $\log (N)$ by reducing $a\mod N$ and $x\mod \phi(N)1$, then some prime $p|d$. so $p|(a,b)$, which means $p|a$ or $p|b$. In either case, $gcd(a,N)>d$ or $gcd(b,N)>d$, which contradicts that $a,b\in \mathbb{C}_N^*$
+
+#### Euler's totient function
+
+$\phi:\mathbb{Z}^+\to \mathbb{Z}^+,\phi(N)=|\mathbb{Z}_N^*|=|\{1\leq x\leq N:gcd(x,N)=1\}|$
+
+Example: $\phi(1)=1$, $\phi(24)=8$, $\phi (p)=p-1$, $\phi(p\cdot q)=(p-1)(q-1)$
+
+#### Euler's Theorem
+
+For any $a\in \mathbb{Z}_N^*$, $a^{\phi(N)}\equiv 1\mod N$
+
+Consequence: $a^x\mod N$, $x=K\cdot \phi(N)+r,0\leq r\leq \phi(N)$
+
+$$
+a^x\equiv a^{K \cdot \phi (N) +r}\equiv ( a^{\phi(n)} )^K \cdot a^r \mod N$
+$$
+
+So computing $a^x\mod N$ is polynomial in $\log (N)$ by reducing $a\mod N$ and $x\mod \phi(N)0:
- if k==0:
- raise ValueError(f"Damn, {i} generates 0 for group {p}")
- sg.append(k)
- k=(k*i)%p
- step-=1
- sg.append(1)
- # if len(sg)!=(p-1): continue
- g.append((i,[j for j in sg]))
- return g
-```
-
-### (Computational) Diffie-Hellman assumption
-
-If $p$ is a randomly sampled safe prime.
-
-Denote safe prime as $\tilde{\Pi}_n=\{p\in \Pi_n:q=\frac{p-1}{2}\in \Pi_{n-1}\}$
-
-Then
-
-$$
-P\left[p\gets \tilde{\Pi_n};a\gets\mathbb{Z}_p^*;g=a^2\neq 1;x\gets \mathbb{Z}_q;y=g^x\mod p:\mathcal{A}(y)=x\right]\leq \epsilon(n)
-$$
-
-$p\gets \tilde{\Pi_n};a\gets\mathbb{Z}_p^*;g=a^2\neq 1$ is the function condition when we do the encryption on cyclic groups.
-
-Notes: $f:\Z_q\to \mathbb{Z}_p^*$ is one-to-one, so $f(\mathcal{A}(y))\iff \mathcal{A}(y)=x$
+# Lecture 9
+
+## Chapter 2: Computational Hardness
+
+### Continue on Cyclic groups
+
+$$
+\begin{aligned}
+107^{662}\mod 51&=(107\mod 51)^{662}\mod 51\\
+&=5^{662}\mod 51
+\end{aligned}
+$$
+
+Remind that $\phi(p),p\in\Pi,\phi(p)=p-1$.
+
+$51=3\times 17,\phi(51)=\phi(3)\times \phi(17)=2\times 16=32$, So $5^{32}\mod 1$
+
+$5^2\equiv 25\mod 51=25$
+$5^4\equiv (5^2)^2\equiv(25)^2 \mod 51\equiv 625\mod 51=13$
+$5^8\equiv (5^4)^2\equiv(13)^2 \mod 51\equiv 169\mod 51=16$
+$5^16\equiv (5^8)^2\equiv(16)^2 \mod 51\equiv 256\mod 51=1$
+
+$$
+\begin{aligned}
+5^{662}\mod 51&=107^{662\mod 32}\mod 51\\
+&=5^{22}\mod 51\\
+&=5^{16}\cdot 5^4\cdot 5^2\mod 51\\
+&=19
+\end{aligned}
+$$
+
+For $a\in \mathbb{Z}_N^*$, the order of $a$, $o(a)$ is the smallest positive $k$ such that $a^k\equiv 1\mod N$. $o(a)\leq \phi(N),o(a)|\phi (N)$
+
+In a general finite group
+
+$g^{|G|}=e$ (identity)
+
+$o(g)\vert |G|$
+
+If a group $G=\{a,a^2,a^3,...,e\}$ $G$ is cyclic
+
+In a cyclic group, if $o(a)=|G|$, then a is a generator of $G$.
+
+Fact: $\mathbb{Z}^*_p$ is cyclic
+
+$|\mathbb{Z}^*_p|=p-1$, so $\exists$ generator $g$, and $\mathbb{Z}$, $\phi(\mathbb{Z}_{13}^*)=12$
+
+For example, $2$ is a generator for $\mathbb{Z}_{13}^*$ with $2,4,8,3,6,12,11,9,5,10,7,1$.
+
+If $g$ is a generator, $f:\mathbb{Z}_p^*\to \mathbb{Z}_p^*$, $f(x)=g^x \mod p$ is onto.
+
+What type of prime $p$?
+
+- Large prime.
+- If $p-1$ is very factorable, that is very bad.
+ - Pohlig-Hellman algorithm
+ - $p=2^n+1$ only need polynomial time to invert
+- We want $p=2q+1$, where $q$ is prime. (Sophie Germain primes, or safe primes)
+
+There are _probably_ infinitely many safe prime and efficient to sample as well.
+
+If $p$ is safe, $g$ generator.
+
+$$
+\mathbb{Z}_p^*=\{g,g^2,..,e\}
+$$
+
+Then $\{g^2,...g^{2q}\}S_{g,p}\subseteq \mathbb{Z}_p^*$ is a subgroup; $g^{2k}\cdot g^{2l}=g^{2(k+l)}\in S_{g,p}$
+
+It is cyclic with generator $g^2$.
+
+It is easy to find a generator.
+
+- Pick $a\in \mathbb{Z}_p^*$
+- Let $x=a^2$. If $x\neq 1$, it is a generator of subgroup $S_p$
+ - $S_p=\{x,x^2,...,x^q\}\mod p$
+
+Example: $p=2\cdot 11+1=23$
+
+we have a subgroup with generator $4$ and $S_4=\{4,16,18,3,12,2,8,9,13,6,1\}$
+
+```python
+def get_generator(p):
+ """
+ p should be a prime, or you need to do factorization
+ """
+ g=[]
+ for i in range(2,p-1):
+ k=i
+ sg=[]
+ step=p
+ while k!=1 and step>0:
+ if k==0:
+ raise ValueError(f"Damn, {i} generates 0 for group {p}")
+ sg.append(k)
+ k=(k*i)%p
+ step-=1
+ sg.append(1)
+ # if len(sg)!=(p-1): continue
+ g.append((i,[j for j in sg]))
+ return g
+```
+
+### (Computational) Diffie-Hellman assumption
+
+If $p$ is a randomly sampled safe prime.
+
+Denote safe prime as $\tilde{\Pi}_n=\{p\in \Pi_n:q=\frac{p-1}{2}\in \Pi_{n-1}\}$
+
+Then
+
+$$
+P\left[p\gets \tilde{\Pi_n};a\gets\mathbb{Z}_p^*;g=a^2\neq 1;x\gets \mathbb{Z}_q;y=g^x\mod p:\mathcal{A}(y)=x\right]\leq \epsilon(n)
+$$
+
+$p\gets \tilde{\Pi_n};a\gets\mathbb{Z}_p^*;g=a^2\neq 1$ is the function condition when we do the encryption on cyclic groups.
+
+Notes: $f:\Z_q\to \mathbb{Z}_p^*$ is one-to-one, so $f(\mathcal{A}(y))\iff \mathcal{A}(y)=x$
diff --git a/pages/CSE442T/Exam_reviews/CSE442T_E1.md b/content/CSE442T/Exam_reviews/CSE442T_E1.md
similarity index 96%
rename from pages/CSE442T/Exam_reviews/CSE442T_E1.md
rename to content/CSE442T/Exam_reviews/CSE442T_E1.md
index 53ff284..acf6dd3 100644
--- a/pages/CSE442T/Exam_reviews/CSE442T_E1.md
+++ b/content/CSE442T/Exam_reviews/CSE442T_E1.md
@@ -1,215 +1,215 @@
-# System check for exam list
-
-**The exam will take place in class on Monday, October 21.**
-
-The topics will cover Chapters 1 and 2, as well as the related probability discussions we've had (caveats below). Assignments 1 through 3 span this material.
-
-## Specifics on material:
-
-NOT "match-making game" in 1.2 (seems fun though)
-
-NOT the proof of Theorem 31.3 (but definitely the result!)
-
-NOT 2.4.3 (again, definitely want to know this result, and we have discussed the idea behind it)
-
-NOT 2.6.5, 2.6.6
-
-NOT 2.12, 2.13
-
-The probability knowledge/techniques I've expanded on include conditional probability, independence, law of total probability, Bayes' Theorem, union bound, 1-p bound (or "useful bound"), collision
-
-I expect you to demonstrate understanding of the key definitions, theorems, and proof techniques. The assignments are designed to reinforce all of these. However, exam questions will be written with the understanding of the time limitations.
-
-The exam is "closed-book," with no notes of any kind allowed. The advantage of this is that some questions might be very basic. However, I will expect that you will have not just memorized definitions and theorems, but you can also explain their meaning and apply them.
-
-## Chapter 1
-
-### Prove security
-
-#### Definition 11.1 Shannon secrecy
-
-$(\mathcal{M},\mathcal{K}, Gen, Enc, Dec)$ (A crypto-system) is said to be private-key encryption scheme that is *Shannon-secrete with respect to distribution $D$ over the message space $\mathcal{M}$* if for all $m'\in \mathcal{M}$ and for all $c$,
-
-$$
-P[k\gets Gen;m\gets D:m=m'|Enc_k(m)=c]=P[m\gets D:m=m']
-$$
-
-(The adversary cannot learn all, part of, any letter of, any function off, or any partial information about the plaintext)
-
-#### Definition 11.2 Perfect Secrecy
-
-$(\mathcal{M},\mathcal{K}, Gen, ENc, Dec)$ (A crypto-system) is said to be private-key encryption scheme that is *perfectly secret* if forall $m_1,m_2\in \mathcal{M},\forall c$:
-
-$$
-P[k\gets Gen:Enc_k(m_1)=c]=P[k\gets Gen:Enc_k(m_2)=c]
-$$
-
-(For all coding scheme in the crypto system, for any two different message, they are equally likely to be mapped to $c$)
-
-#### Definition 12.3
-
-A private-key encryption scheme is perfectly secret if and only if it is Shannon secret.
-
-## Chapter 2
-
-### Efficient Private-key Encryption
-
-#### Definition 24.7
-
-A triplet of algorithms $(Gen,Enc,Dec)$ is called an efficient private-key encryption scheme if the following holds.
-
-1. $k\gets Gen(1^n)$ is a p.p.t. such that for every $n\in \mathbb{N}$, it samples a key $k$.
-2. $c\gets Enc_k(m)$ is a p.p.t. that given $k$ and $m\in \{0,1\}^n$ produces a ciphertext $c$.
-3. $m\gets Dec_c(c)$ is a p.p.t. that given a ciphertext $c$ and key $k$ produces a message $m\in \{0,1\}^n\cup \perp$.
-4. For all $n\in \mathbb{N},m\in \{0,1\}^n$
-
-$$
-Pr[k\gets Gen(1^n);Dec_k(Enc_k(m))=m]=1
-$$
-
-### One-Way functions
-
-#### Definition 26.1
-
-A function $f:\{0,1\}^*\to\{0,1\}^*$ is worst-case one-way if the function is:
-
-1. Easy to compute. There is a p.p.t $C$ that computes $f(x)$ on all inputs $x\in \{0,1\}^*$, and
-2. Hard to invert. There is no adversary $\mathcal{A}$ such that
-
-$$
-\forall x,P[\mathcal{A}(f(x))\in f^{-1}(f(x))]=1
-$$
-
-#### Definition 27.2 Negligible function
-
-A function $\epsilon(n)$ is negligible if for every $c$. there exists some $n_0$ such that for all $n>n_0$, $\epsilon (n)\leq \frac{1}{n^c}$.
-
-#### Definition 27.3 Strong One-Way Function
-
-A function mapping strings to strings $f:\{0,1\}^*\to \{0,1\}^*$ is a strong one-way function if it satisfies the following two conditions:
-
-1. Easy to compute. There is a p.p.t $C$ that computes $f(x)$ on all inputs $x\in \{0,1\}^*$, and
-2. Hard to invert. There is no adversary $\mathcal{A}$ such that
-
-$$
-P[x\gets\{0,1\}^n;y\gets f(x):f(\mathcal{A}(1^n,y))=y]\leq \epsilon(n)
-$$
-
-#### Definition 28.4 (Weak One-Way Function)
-
-A function mapping strings to strings $f:\{0,1\}^*\to \{0,1\}^*$ is a strong one-way function if it satisfies the following two conditions:
-
-1. Easy to compute. There is a p.p.t $C$ that computes $f(x)$ on all inputs $x\in \{0,1\}^*$, and
-2. Hard to invert. There is no adversary $\mathcal{A}$ such that
-
-$$
-P[x\gets\{0,1\}^n;y\gets f(x):f(\mathcal{A}(1^n,y))=y]\leq 1-\frac{1}{q(n)}
-$$
-
-#### Notation for prime numbers
-
-Denote the (finite) set of primes that are smaller than $2^n$ as
-
-$$
-\Pi_n=\{q|q<2^n\textup{ and } q \textup{ is prime}\}
-$$
-
-#### Assumption 30.1 (Factoring)
-
-For every adversary $\mathcal{A}$, there exists a negligible function $\epsilon$ such that
-
-$$
-P[p\gets \Pi_n;q\gets \Pi_n;N\gets pq:\mathcal{A}(N)\in \{p,q\}]<\epsilon(n)
-$$
-
-(For every product of random 2 primes, the probability for any adversary to find the prime factors is negligible.)
-
-(There is no polynomial function that can decompose the product of two $n$ bit prime, the best function is $2^{O(n^{\frac{1}{3}}\log^{\frac{2}{3}}n)}$)
-
-#### Theorem 35.1
-
-For any weak one-way function $f:\{0,1\}^n\to \{0,1\}^*$, there exists a polynomial $m(\cdot)$ such that function
-
-$$
-f'(x_1,x_2,\dots, x_{m(n)})=(f(x_1),f(x_2),\dots, f(x_{m(n)})).
-$$
-
-from $f'=(\{0,1\}^n)^{m(n)}\to(\{0,1\}^*)^{m(n)}$ is strong one-way.
-
-### RSA
-
-#### Definition 46.7
-
-A group $G$ is a set of elements with a binary operator $\oplus:G\times G\to G$ that satisfies the following properties
-
-1. Closure: $\forall a,b\in G, a\oplus b\in G$
-2. Identity: $\exists i\in G$ such that $\forall a\in G, i\oplus a=a\oplus i=a$
-3. Associativity: $\forall a,b,c\in G,(a\oplus b)\oplus c=a\oplus(b\oplus c)$.
-4. Inverse: $\forall a\in G$, there is an element $b\in G$ such that $a\oplus b=b\oplus a=i$
-
-#### Definition Euler totient function $\Phi(N)$.
-
-$$
-\Phi(p)=p-1
-$$
-
-if $p$ is prime
-
-$$
-\Phi(N)=(p-1)(q-1)
-$$
-
-if $N=pq$ and $p,q$ are primes
-
-#### Theorem 47.10
-
-$\forall a\in \mathbb{Z}_N^*,a^{\Phi(N)}=1\mod N$
-
-#### Corollary 48.11
-
-$\forall a\in \mathbb{Z}_p^*,a^{p-1}\equiv 1\mod p$.
-
-#### Corollary 48.12
-
-$a^x\mod N=a^{x\mod \Phi(N)}\mod N$
-
-## Some other important results
-
-### Exponent
-
-$$
-(1-\frac{1}{n})^n\approx e
-$$
-when $n$ is large.
-
-### Primes
-
-Let $\pi(x)$ be the lower-bounds for prime less than or equal to $x$.
-
-#### Theorem 31.3 Chebyshev
-
-For $x>1$,$\pi(x)>\frac{x}{2\log x}$
-
-#### Corollary 31.3
-
-For $2^n>1$, $p(n)>\frac{1}{n}$
-
-(The probability that a uniformly sampled n-bit integer is prime is greater than $\frac{1}{n}$)
-
-### Modular Arithmetic
-
-#### Extended Euclid Algorithm
-
-```python
-def eea(a,b)->tuple(int):
- # assume a>b
- # return x,y such that ax+by=gcd(a,b)=d.
- # so y is the modular inverse of b mod a
- # so x is the modular inverse of a mod b
- # so gcd(a,b)=ax+by
- if a%b==0:
- return (0,1)
- x,y=eea(b,a%b)
- return (y,x-y(a//b))
-```
-
+# System check for exam list
+
+**The exam will take place in class on Monday, October 21.**
+
+The topics will cover Chapters 1 and 2, as well as the related probability discussions we've had (caveats below). Assignments 1 through 3 span this material.
+
+## Specifics on material:
+
+NOT "match-making game" in 1.2 (seems fun though)
+
+NOT the proof of Theorem 31.3 (but definitely the result!)
+
+NOT 2.4.3 (again, definitely want to know this result, and we have discussed the idea behind it)
+
+NOT 2.6.5, 2.6.6
+
+NOT 2.12, 2.13
+
+The probability knowledge/techniques I've expanded on include conditional probability, independence, law of total probability, Bayes' Theorem, union bound, 1-p bound (or "useful bound"), collision
+
+I expect you to demonstrate understanding of the key definitions, theorems, and proof techniques. The assignments are designed to reinforce all of these. However, exam questions will be written with the understanding of the time limitations.
+
+The exam is "closed-book," with no notes of any kind allowed. The advantage of this is that some questions might be very basic. However, I will expect that you will have not just memorized definitions and theorems, but you can also explain their meaning and apply them.
+
+## Chapter 1
+
+### Prove security
+
+#### Definition 11.1 Shannon secrecy
+
+$(\mathcal{M},\mathcal{K}, Gen, Enc, Dec)$ (A crypto-system) is said to be private-key encryption scheme that is *Shannon-secrete with respect to distribution $D$ over the message space $\mathcal{M}$* if for all $m'\in \mathcal{M}$ and for all $c$,
+
+$$
+P[k\gets Gen;m\gets D:m=m'|Enc_k(m)=c]=P[m\gets D:m=m']
+$$
+
+(The adversary cannot learn all, part of, any letter of, any function off, or any partial information about the plaintext)
+
+#### Definition 11.2 Perfect Secrecy
+
+$(\mathcal{M},\mathcal{K}, Gen, ENc, Dec)$ (A crypto-system) is said to be private-key encryption scheme that is *perfectly secret* if forall $m_1,m_2\in \mathcal{M},\forall c$:
+
+$$
+P[k\gets Gen:Enc_k(m_1)=c]=P[k\gets Gen:Enc_k(m_2)=c]
+$$
+
+(For all coding scheme in the crypto system, for any two different message, they are equally likely to be mapped to $c$)
+
+#### Definition 12.3
+
+A private-key encryption scheme is perfectly secret if and only if it is Shannon secret.
+
+## Chapter 2
+
+### Efficient Private-key Encryption
+
+#### Definition 24.7
+
+A triplet of algorithms $(Gen,Enc,Dec)$ is called an efficient private-key encryption scheme if the following holds.
+
+1. $k\gets Gen(1^n)$ is a p.p.t. such that for every $n\in \mathbb{N}$, it samples a key $k$.
+2. $c\gets Enc_k(m)$ is a p.p.t. that given $k$ and $m\in \{0,1\}^n$ produces a ciphertext $c$.
+3. $m\gets Dec_c(c)$ is a p.p.t. that given a ciphertext $c$ and key $k$ produces a message $m\in \{0,1\}^n\cup \perp$.
+4. For all $n\in \mathbb{N},m\in \{0,1\}^n$
+
+$$
+Pr[k\gets Gen(1^n);Dec_k(Enc_k(m))=m]=1
+$$
+
+### One-Way functions
+
+#### Definition 26.1
+
+A function $f:\{0,1\}^*\to\{0,1\}^*$ is worst-case one-way if the function is:
+
+1. Easy to compute. There is a p.p.t $C$ that computes $f(x)$ on all inputs $x\in \{0,1\}^*$, and
+2. Hard to invert. There is no adversary $\mathcal{A}$ such that
+
+$$
+\forall x,P[\mathcal{A}(f(x))\in f^{-1}(f(x))]=1
+$$
+
+#### Definition 27.2 Negligible function
+
+A function $\epsilon(n)$ is negligible if for every $c$. there exists some $n_0$ such that for all $n>n_0$, $\epsilon (n)\leq \frac{1}{n^c}$.
+
+#### Definition 27.3 Strong One-Way Function
+
+A function mapping strings to strings $f:\{0,1\}^*\to \{0,1\}^*$ is a strong one-way function if it satisfies the following two conditions:
+
+1. Easy to compute. There is a p.p.t $C$ that computes $f(x)$ on all inputs $x\in \{0,1\}^*$, and
+2. Hard to invert. There is no adversary $\mathcal{A}$ such that
+
+$$
+P[x\gets\{0,1\}^n;y\gets f(x):f(\mathcal{A}(1^n,y))=y]\leq \epsilon(n)
+$$
+
+#### Definition 28.4 (Weak One-Way Function)
+
+A function mapping strings to strings $f:\{0,1\}^*\to \{0,1\}^*$ is a strong one-way function if it satisfies the following two conditions:
+
+1. Easy to compute. There is a p.p.t $C$ that computes $f(x)$ on all inputs $x\in \{0,1\}^*$, and
+2. Hard to invert. There is no adversary $\mathcal{A}$ such that
+
+$$
+P[x\gets\{0,1\}^n;y\gets f(x):f(\mathcal{A}(1^n,y))=y]\leq 1-\frac{1}{q(n)}
+$$
+
+#### Notation for prime numbers
+
+Denote the (finite) set of primes that are smaller than $2^n$ as
+
+$$
+\Pi_n=\{q|q<2^n\textup{ and } q \textup{ is prime}\}
+$$
+
+#### Assumption 30.1 (Factoring)
+
+For every adversary $\mathcal{A}$, there exists a negligible function $\epsilon$ such that
+
+$$
+P[p\gets \Pi_n;q\gets \Pi_n;N\gets pq:\mathcal{A}(N)\in \{p,q\}]<\epsilon(n)
+$$
+
+(For every product of random 2 primes, the probability for any adversary to find the prime factors is negligible.)
+
+(There is no polynomial function that can decompose the product of two $n$ bit prime, the best function is $2^{O(n^{\frac{1}{3}}\log^{\frac{2}{3}}n)}$)
+
+#### Theorem 35.1
+
+For any weak one-way function $f:\{0,1\}^n\to \{0,1\}^*$, there exists a polynomial $m(\cdot)$ such that function
+
+$$
+f'(x_1,x_2,\dots, x_{m(n)})=(f(x_1),f(x_2),\dots, f(x_{m(n)})).
+$$
+
+from $f'=(\{0,1\}^n)^{m(n)}\to(\{0,1\}^*)^{m(n)}$ is strong one-way.
+
+### RSA
+
+#### Definition 46.7
+
+A group $G$ is a set of elements with a binary operator $\oplus:G\times G\to G$ that satisfies the following properties
+
+1. Closure: $\forall a,b\in G, a\oplus b\in G$
+2. Identity: $\exists i\in G$ such that $\forall a\in G, i\oplus a=a\oplus i=a$
+3. Associativity: $\forall a,b,c\in G,(a\oplus b)\oplus c=a\oplus(b\oplus c)$.
+4. Inverse: $\forall a\in G$, there is an element $b\in G$ such that $a\oplus b=b\oplus a=i$
+
+#### Definition Euler totient function $\Phi(N)$.
+
+$$
+\Phi(p)=p-1
+$$
+
+if $p$ is prime
+
+$$
+\Phi(N)=(p-1)(q-1)
+$$
+
+if $N=pq$ and $p,q$ are primes
+
+#### Theorem 47.10
+
+$\forall a\in \mathbb{Z}_N^*,a^{\Phi(N)}=1\mod N$
+
+#### Corollary 48.11
+
+$\forall a\in \mathbb{Z}_p^*,a^{p-1}\equiv 1\mod p$.
+
+#### Corollary 48.12
+
+$a^x\mod N=a^{x\mod \Phi(N)}\mod N$
+
+## Some other important results
+
+### Exponent
+
+$$
+(1-\frac{1}{n})^n\approx e
+$$
+when $n$ is large.
+
+### Primes
+
+Let $\pi(x)$ be the lower-bounds for prime less than or equal to $x$.
+
+#### Theorem 31.3 Chebyshev
+
+For $x>1$,$\pi(x)>\frac{x}{2\log x}$
+
+#### Corollary 31.3
+
+For $2^n>1$, $p(n)>\frac{1}{n}$
+
+(The probability that a uniformly sampled n-bit integer is prime is greater than $\frac{1}{n}$)
+
+### Modular Arithmetic
+
+#### Extended Euclid Algorithm
+
+```python
+def eea(a,b)->tuple(int):
+ # assume a>b
+ # return x,y such that ax+by=gcd(a,b)=d.
+ # so y is the modular inverse of b mod a
+ # so x is the modular inverse of a mod b
+ # so gcd(a,b)=ax+by
+ if a%b==0:
+ return (0,1)
+ x,y=eea(b,a%b)
+ return (y,x-y(a//b))
+```
+
diff --git a/pages/CSE442T/Exam_reviews/CSE442T_E2.md b/content/CSE442T/Exam_reviews/CSE442T_E2.md
similarity index 100%
rename from pages/CSE442T/Exam_reviews/CSE442T_E2.md
rename to content/CSE442T/Exam_reviews/CSE442T_E2.md
diff --git a/pages/CSE442T/Exam_reviews/_meta.js b/content/CSE442T/Exam_reviews/_meta.js
similarity index 100%
rename from pages/CSE442T/Exam_reviews/_meta.js
rename to content/CSE442T/Exam_reviews/_meta.js
diff --git a/pages/CSE442T/_meta.js b/content/CSE442T/_meta.js
similarity index 97%
rename from pages/CSE442T/_meta.js
rename to content/CSE442T/_meta.js
index 172950f..1511a17 100644
--- a/pages/CSE442T/_meta.js
+++ b/content/CSE442T/_meta.js
@@ -1,5 +1,5 @@
export default {
- index: "Course Description",
+ //index: "Course Description",
"---":{
type: 'separator'
},
diff --git a/pages/CSE442T/index.md b/content/CSE442T/index.md
similarity index 100%
rename from pages/CSE442T/index.md
rename to content/CSE442T/index.md
diff --git a/pages/CSE559A/CSE559A_L1.md b/content/CSE559A/CSE559A_L1.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L1.md
rename to content/CSE559A/CSE559A_L1.md
diff --git a/pages/CSE559A/CSE559A_L10.md b/content/CSE559A/CSE559A_L10.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L10.md
rename to content/CSE559A/CSE559A_L10.md
diff --git a/pages/CSE559A/CSE559A_L11.md b/content/CSE559A/CSE559A_L11.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L11.md
rename to content/CSE559A/CSE559A_L11.md
diff --git a/pages/CSE559A/CSE559A_L12.md b/content/CSE559A/CSE559A_L12.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L12.md
rename to content/CSE559A/CSE559A_L12.md
diff --git a/pages/CSE559A/CSE559A_L13.md b/content/CSE559A/CSE559A_L13.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L13.md
rename to content/CSE559A/CSE559A_L13.md
diff --git a/pages/CSE559A/CSE559A_L14.md b/content/CSE559A/CSE559A_L14.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L14.md
rename to content/CSE559A/CSE559A_L14.md
diff --git a/pages/CSE559A/CSE559A_L15.md b/content/CSE559A/CSE559A_L15.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L15.md
rename to content/CSE559A/CSE559A_L15.md
diff --git a/pages/CSE559A/CSE559A_L16.md b/content/CSE559A/CSE559A_L16.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L16.md
rename to content/CSE559A/CSE559A_L16.md
diff --git a/pages/CSE559A/CSE559A_L17.md b/content/CSE559A/CSE559A_L17.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L17.md
rename to content/CSE559A/CSE559A_L17.md
diff --git a/pages/CSE559A/CSE559A_L18.md b/content/CSE559A/CSE559A_L18.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L18.md
rename to content/CSE559A/CSE559A_L18.md
diff --git a/pages/CSE559A/CSE559A_L19.md b/content/CSE559A/CSE559A_L19.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L19.md
rename to content/CSE559A/CSE559A_L19.md
diff --git a/pages/CSE559A/CSE559A_L2.md b/content/CSE559A/CSE559A_L2.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L2.md
rename to content/CSE559A/CSE559A_L2.md
diff --git a/pages/CSE559A/CSE559A_L20.md b/content/CSE559A/CSE559A_L20.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L20.md
rename to content/CSE559A/CSE559A_L20.md
diff --git a/pages/CSE559A/CSE559A_L21.md b/content/CSE559A/CSE559A_L21.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L21.md
rename to content/CSE559A/CSE559A_L21.md
diff --git a/pages/CSE559A/CSE559A_L22.md b/content/CSE559A/CSE559A_L22.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L22.md
rename to content/CSE559A/CSE559A_L22.md
diff --git a/pages/CSE559A/CSE559A_L23.md b/content/CSE559A/CSE559A_L23.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L23.md
rename to content/CSE559A/CSE559A_L23.md
diff --git a/pages/CSE559A/CSE559A_L24.md b/content/CSE559A/CSE559A_L24.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L24.md
rename to content/CSE559A/CSE559A_L24.md
diff --git a/pages/CSE559A/CSE559A_L25.md b/content/CSE559A/CSE559A_L25.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L25.md
rename to content/CSE559A/CSE559A_L25.md
diff --git a/pages/CSE559A/CSE559A_L26.md b/content/CSE559A/CSE559A_L26.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L26.md
rename to content/CSE559A/CSE559A_L26.md
diff --git a/pages/CSE559A/CSE559A_L3.md b/content/CSE559A/CSE559A_L3.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L3.md
rename to content/CSE559A/CSE559A_L3.md
diff --git a/pages/CSE559A/CSE559A_L4.md b/content/CSE559A/CSE559A_L4.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L4.md
rename to content/CSE559A/CSE559A_L4.md
diff --git a/pages/CSE559A/CSE559A_L5.md b/content/CSE559A/CSE559A_L5.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L5.md
rename to content/CSE559A/CSE559A_L5.md
diff --git a/pages/CSE559A/CSE559A_L6.md b/content/CSE559A/CSE559A_L6.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L6.md
rename to content/CSE559A/CSE559A_L6.md
diff --git a/pages/CSE559A/CSE559A_L7.md b/content/CSE559A/CSE559A_L7.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L7.md
rename to content/CSE559A/CSE559A_L7.md
diff --git a/pages/CSE559A/CSE559A_L8.md b/content/CSE559A/CSE559A_L8.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L8.md
rename to content/CSE559A/CSE559A_L8.md
diff --git a/pages/CSE559A/CSE559A_L9.md b/content/CSE559A/CSE559A_L9.md
similarity index 100%
rename from pages/CSE559A/CSE559A_L9.md
rename to content/CSE559A/CSE559A_L9.md
diff --git a/pages/CSE559A/_meta.js b/content/CSE559A/_meta.js
similarity index 97%
rename from pages/CSE559A/_meta.js
rename to content/CSE559A/_meta.js
index be55f0a..2763f22 100644
--- a/pages/CSE559A/_meta.js
+++ b/content/CSE559A/_meta.js
@@ -1,5 +1,5 @@
export default {
- index: "Course Description",
+ //index: "Course Description",
"---":{
type: 'separator'
},
diff --git a/pages/CSE559A/index.md b/content/CSE559A/index.md
similarity index 100%
rename from pages/CSE559A/index.md
rename to content/CSE559A/index.md
diff --git a/pages/Math3200/Lecture_1.mdx b/content/Math3200/Lecture_1.mdx
similarity index 100%
rename from pages/Math3200/Lecture_1.mdx
rename to content/Math3200/Lecture_1.mdx
diff --git a/pages/Math3200/Lecture_10.mdx b/content/Math3200/Lecture_10.mdx
similarity index 100%
rename from pages/Math3200/Lecture_10.mdx
rename to content/Math3200/Lecture_10.mdx
diff --git a/pages/Math3200/Lecture_11.mdx b/content/Math3200/Lecture_11.mdx
similarity index 100%
rename from pages/Math3200/Lecture_11.mdx
rename to content/Math3200/Lecture_11.mdx
diff --git a/pages/Math3200/Lecture_12.mdx b/content/Math3200/Lecture_12.mdx
similarity index 100%
rename from pages/Math3200/Lecture_12.mdx
rename to content/Math3200/Lecture_12.mdx
diff --git a/pages/Math3200/Lecture_13.mdx b/content/Math3200/Lecture_13.mdx
similarity index 100%
rename from pages/Math3200/Lecture_13.mdx
rename to content/Math3200/Lecture_13.mdx
diff --git a/pages/Math3200/Lecture_14.mdx b/content/Math3200/Lecture_14.mdx
similarity index 100%
rename from pages/Math3200/Lecture_14.mdx
rename to content/Math3200/Lecture_14.mdx
diff --git a/pages/Math3200/Lecture_15.mdx b/content/Math3200/Lecture_15.mdx
similarity index 100%
rename from pages/Math3200/Lecture_15.mdx
rename to content/Math3200/Lecture_15.mdx
diff --git a/pages/Math3200/Lecture_16.mdx b/content/Math3200/Lecture_16.mdx
similarity index 100%
rename from pages/Math3200/Lecture_16.mdx
rename to content/Math3200/Lecture_16.mdx
diff --git a/pages/Math3200/Lecture_17.mdx b/content/Math3200/Lecture_17.mdx
similarity index 100%
rename from pages/Math3200/Lecture_17.mdx
rename to content/Math3200/Lecture_17.mdx
diff --git a/pages/Math3200/Lecture_18.mdx b/content/Math3200/Lecture_18.mdx
similarity index 100%
rename from pages/Math3200/Lecture_18.mdx
rename to content/Math3200/Lecture_18.mdx
diff --git a/pages/Math3200/Lecture_19.mdx b/content/Math3200/Lecture_19.mdx
similarity index 100%
rename from pages/Math3200/Lecture_19.mdx
rename to content/Math3200/Lecture_19.mdx
diff --git a/pages/Math3200/Lecture_2.mdx b/content/Math3200/Lecture_2.mdx
similarity index 100%
rename from pages/Math3200/Lecture_2.mdx
rename to content/Math3200/Lecture_2.mdx
diff --git a/pages/Math3200/Lecture_20.mdx b/content/Math3200/Lecture_20.mdx
similarity index 100%
rename from pages/Math3200/Lecture_20.mdx
rename to content/Math3200/Lecture_20.mdx
diff --git a/pages/Math3200/Lecture_21.mdx b/content/Math3200/Lecture_21.mdx
similarity index 100%
rename from pages/Math3200/Lecture_21.mdx
rename to content/Math3200/Lecture_21.mdx
diff --git a/pages/Math3200/Lecture_22.mdx b/content/Math3200/Lecture_22.mdx
similarity index 100%
rename from pages/Math3200/Lecture_22.mdx
rename to content/Math3200/Lecture_22.mdx
diff --git a/pages/Math3200/Lecture_23.mdx b/content/Math3200/Lecture_23.mdx
similarity index 100%
rename from pages/Math3200/Lecture_23.mdx
rename to content/Math3200/Lecture_23.mdx
diff --git a/pages/Math3200/Lecture_24.mdx b/content/Math3200/Lecture_24.mdx
similarity index 100%
rename from pages/Math3200/Lecture_24.mdx
rename to content/Math3200/Lecture_24.mdx
diff --git a/pages/Math3200/Lecture_25.mdx b/content/Math3200/Lecture_25.mdx
similarity index 100%
rename from pages/Math3200/Lecture_25.mdx
rename to content/Math3200/Lecture_25.mdx
diff --git a/pages/Math3200/Lecture_26.mdx b/content/Math3200/Lecture_26.mdx
similarity index 100%
rename from pages/Math3200/Lecture_26.mdx
rename to content/Math3200/Lecture_26.mdx
diff --git a/pages/Math3200/Lecture_27.mdx b/content/Math3200/Lecture_27.mdx
similarity index 100%
rename from pages/Math3200/Lecture_27.mdx
rename to content/Math3200/Lecture_27.mdx
diff --git a/pages/Math3200/Lecture_28.mdx b/content/Math3200/Lecture_28.mdx
similarity index 100%
rename from pages/Math3200/Lecture_28.mdx
rename to content/Math3200/Lecture_28.mdx
diff --git a/pages/Math3200/Lecture_29.mdx b/content/Math3200/Lecture_29.mdx
similarity index 100%
rename from pages/Math3200/Lecture_29.mdx
rename to content/Math3200/Lecture_29.mdx
diff --git a/pages/Math3200/Lecture_3.mdx b/content/Math3200/Lecture_3.mdx
similarity index 100%
rename from pages/Math3200/Lecture_3.mdx
rename to content/Math3200/Lecture_3.mdx
diff --git a/pages/Math3200/Lecture_30.mdx b/content/Math3200/Lecture_30.mdx
similarity index 100%
rename from pages/Math3200/Lecture_30.mdx
rename to content/Math3200/Lecture_30.mdx
diff --git a/pages/Math3200/Lecture_31.mdx b/content/Math3200/Lecture_31.mdx
similarity index 100%
rename from pages/Math3200/Lecture_31.mdx
rename to content/Math3200/Lecture_31.mdx
diff --git a/pages/Math3200/Lecture_32.mdx b/content/Math3200/Lecture_32.mdx
similarity index 100%
rename from pages/Math3200/Lecture_32.mdx
rename to content/Math3200/Lecture_32.mdx
diff --git a/pages/Math3200/Lecture_33.mdx b/content/Math3200/Lecture_33.mdx
similarity index 100%
rename from pages/Math3200/Lecture_33.mdx
rename to content/Math3200/Lecture_33.mdx
diff --git a/pages/Math3200/Lecture_34.mdx b/content/Math3200/Lecture_34.mdx
similarity index 100%
rename from pages/Math3200/Lecture_34.mdx
rename to content/Math3200/Lecture_34.mdx
diff --git a/pages/Math3200/Lecture_35.mdx b/content/Math3200/Lecture_35.mdx
similarity index 100%
rename from pages/Math3200/Lecture_35.mdx
rename to content/Math3200/Lecture_35.mdx
diff --git a/pages/Math3200/Lecture_36.mdx b/content/Math3200/Lecture_36.mdx
similarity index 100%
rename from pages/Math3200/Lecture_36.mdx
rename to content/Math3200/Lecture_36.mdx
diff --git a/pages/Math3200/Lecture_37.mdx b/content/Math3200/Lecture_37.mdx
similarity index 100%
rename from pages/Math3200/Lecture_37.mdx
rename to content/Math3200/Lecture_37.mdx
diff --git a/pages/Math3200/Lecture_38.mdx b/content/Math3200/Lecture_38.mdx
similarity index 100%
rename from pages/Math3200/Lecture_38.mdx
rename to content/Math3200/Lecture_38.mdx
diff --git a/pages/Math3200/Lecture_39.mdx b/content/Math3200/Lecture_39.mdx
similarity index 100%
rename from pages/Math3200/Lecture_39.mdx
rename to content/Math3200/Lecture_39.mdx
diff --git a/pages/Math3200/Lecture_4.mdx b/content/Math3200/Lecture_4.mdx
similarity index 100%
rename from pages/Math3200/Lecture_4.mdx
rename to content/Math3200/Lecture_4.mdx
diff --git a/pages/Math3200/Lecture_40.mdx b/content/Math3200/Lecture_40.mdx
similarity index 100%
rename from pages/Math3200/Lecture_40.mdx
rename to content/Math3200/Lecture_40.mdx
diff --git a/pages/Math3200/Lecture_5.mdx b/content/Math3200/Lecture_5.mdx
similarity index 100%
rename from pages/Math3200/Lecture_5.mdx
rename to content/Math3200/Lecture_5.mdx
diff --git a/pages/Math3200/Lecture_6.mdx b/content/Math3200/Lecture_6.mdx
similarity index 100%
rename from pages/Math3200/Lecture_6.mdx
rename to content/Math3200/Lecture_6.mdx
diff --git a/pages/Math3200/Lecture_7.mdx b/content/Math3200/Lecture_7.mdx
similarity index 100%
rename from pages/Math3200/Lecture_7.mdx
rename to content/Math3200/Lecture_7.mdx
diff --git a/pages/Math3200/Lecture_8.mdx b/content/Math3200/Lecture_8.mdx
similarity index 100%
rename from pages/Math3200/Lecture_8.mdx
rename to content/Math3200/Lecture_8.mdx
diff --git a/pages/Math3200/Lecture_9.mdx b/content/Math3200/Lecture_9.mdx
similarity index 100%
rename from pages/Math3200/Lecture_9.mdx
rename to content/Math3200/Lecture_9.mdx
diff --git a/pages/Math3200/_meta.js b/content/Math3200/_meta.js
similarity index 99%
rename from pages/Math3200/_meta.js
rename to content/Math3200/_meta.js
index a897529..9943e60 100644
--- a/pages/Math3200/_meta.js
+++ b/content/Math3200/_meta.js
@@ -1,5 +1,5 @@
export default {
- index: "Course Description",
+ //index: "Course Description",
"---": {
type: 'separator'
},
diff --git a/pages/Math3200/index.md b/content/Math3200/index.md
similarity index 100%
rename from pages/Math3200/index.md
rename to content/Math3200/index.md
diff --git a/pages/Math401/Math401_N1.md b/content/Math401/Math401_N1.md
similarity index 100%
rename from pages/Math401/Math401_N1.md
rename to content/Math401/Math401_N1.md
diff --git a/pages/Math401/Math401_N2.md b/content/Math401/Math401_N2.md
similarity index 100%
rename from pages/Math401/Math401_N2.md
rename to content/Math401/Math401_N2.md
diff --git a/pages/Math401/Math401_N3.md b/content/Math401/Math401_N3.md
similarity index 100%
rename from pages/Math401/Math401_N3.md
rename to content/Math401/Math401_N3.md
diff --git a/pages/Math401/Math401_P1.md b/content/Math401/Math401_P1.md
similarity index 100%
rename from pages/Math401/Math401_P1.md
rename to content/Math401/Math401_P1.md
diff --git a/pages/Math401/Math401_P1_1.md b/content/Math401/Math401_P1_1.md
similarity index 100%
rename from pages/Math401/Math401_P1_1.md
rename to content/Math401/Math401_P1_1.md
diff --git a/pages/Math401/Math401_T1.md b/content/Math401/Math401_T1.md
similarity index 100%
rename from pages/Math401/Math401_T1.md
rename to content/Math401/Math401_T1.md
diff --git a/pages/Math401/Math401_T2.md b/content/Math401/Math401_T2.md
similarity index 100%
rename from pages/Math401/Math401_T2.md
rename to content/Math401/Math401_T2.md
diff --git a/pages/Math401/Math401_T3.md b/content/Math401/Math401_T3.md
similarity index 100%
rename from pages/Math401/Math401_T3.md
rename to content/Math401/Math401_T3.md
diff --git a/pages/Math401/Math401_T4.md b/content/Math401/Math401_T4.md
similarity index 100%
rename from pages/Math401/Math401_T4.md
rename to content/Math401/Math401_T4.md
diff --git a/pages/Math401/Math401_T5.md b/content/Math401/Math401_T5.md
similarity index 100%
rename from pages/Math401/Math401_T5.md
rename to content/Math401/Math401_T5.md
diff --git a/pages/Math401/Math401_T6.md b/content/Math401/Math401_T6.md
similarity index 100%
rename from pages/Math401/Math401_T6.md
rename to content/Math401/Math401_T6.md
diff --git a/pages/Math401/Math401_T7.md b/content/Math401/Math401_T7.md
similarity index 100%
rename from pages/Math401/Math401_T7.md
rename to content/Math401/Math401_T7.md
diff --git a/pages/Math401/_meta.js b/content/Math401/_meta.js
similarity index 96%
rename from pages/Math401/_meta.js
rename to content/Math401/_meta.js
index c64f3b0..015516f 100644
--- a/pages/Math401/_meta.js
+++ b/content/Math401/_meta.js
@@ -1,5 +1,5 @@
export default {
- index: "Course Description",
+ //index: "Course Description",
"---":{
type: 'separator'
},
diff --git a/pages/Math401/index.md b/content/Math401/index.md
similarity index 100%
rename from pages/Math401/index.md
rename to content/Math401/index.md
diff --git a/pages/Math4111/Exam_reviews/Math4111_E2.md b/content/Math4111/Exam_reviews/Math4111_E2.md
similarity index 100%
rename from pages/Math4111/Exam_reviews/Math4111_E2.md
rename to content/Math4111/Exam_reviews/Math4111_E2.md
diff --git a/pages/Math4111/Exam_reviews/Math4111_E3.md b/content/Math4111/Exam_reviews/Math4111_E3.md
similarity index 100%
rename from pages/Math4111/Exam_reviews/Math4111_E3.md
rename to content/Math4111/Exam_reviews/Math4111_E3.md
diff --git a/pages/Math4111/Exam_reviews/Math4111_Final.md b/content/Math4111/Exam_reviews/Math4111_Final.md
similarity index 100%
rename from pages/Math4111/Exam_reviews/Math4111_Final.md
rename to content/Math4111/Exam_reviews/Math4111_Final.md
diff --git a/pages/Math4111/Math4111_L1.md b/content/Math4111/Math4111_L1.md
similarity index 96%
rename from pages/Math4111/Math4111_L1.md
rename to content/Math4111/Math4111_L1.md
index 01215b2..fea3b34 100644
--- a/pages/Math4111/Math4111_L1.md
+++ b/content/Math4111/Math4111_L1.md
@@ -1,97 +1,97 @@
-# Lecture 1
-
-## Introduction
-
-Reading is not recommended before class, it's hard.
-
-## Chapter 1: The real number and complex number systems
-
-* Natural numbers: $\mathbb{N}=\{1,2,3,4....\}$ note by some conventions, $0$ is also a natural number
-
-* IntegersL $\mathbb{Z}=\{...,-2,-1,0,1,2,...\}$
-
-* Rational numbers: $\mathbb{Q}=\{\frac{m}{n}:m,n\in\mathbb{Z}\ and\ n\neq 0\}$
-
-* Real numbers: $\mathbb{R}$ the topic of chapter
-
-* Complex numbers: $\mathbb{C}=\{a+bi:a,b\in \mathbb{R}\}$
-
-### Theorem ($\sqrt{2}$ is irrational)
-
-$\exist p\in \mathbb{Q},p^2=2$ is false.
-
-$\equiv\cancel{\exist} p\in \mathbb{Q}, p^2=2$
-
-$\equiv p\in \mathbb{Q},p^2\neq 2$
-
-#### Proof
-
-Suppose for contradiction, $\exist p\in \mathbb{Q}$ such that $p^2=\mathbb{Q}$.
-
-Let $p=\frac{m}{n}$, where $m,n \in \mathbb{Z}$ are not both even. (reduced form)
-
-$p^2=2$ and $p=\frac{m}{n}$, so $m^2=2n^2$, so $m^2$ is even, $m$ is even.
-
-So $m^2$ is divisible by 4, $2n^2$ is divisible by 4.
-
-So $n^2$ is even. but they are not both even.
-
-QED
-
-### Theorem (No closest rational for a irrational number)
-
-Let $A=\{p\in \mathbb{q}, p>0\ and\ p^2\leq 2\}$, Then $A$ does not have a largest element.
-
-i.e. $\exist p\in A$ such that $\forall q\in A, q\leq p$ is false.
-
-> Remark: The book give a very slick proof trying to lean from these kinds of proofs takes some effort. (It is perfectly fine to write that solution this way...)
-
-#### Thought process
-
-Let $p\in A,p\in \mathbb{Q}$, $p>0, p^2<2$.
-
-We want a $\delta\in\mathbb{Q}$ such that $\delta>0$ and $(p+\delta)^2<2$.
-
-$$
-\begin{aligned}
-
-(p+\delta)^2&<2\\
-p^2+2p\delta+\delta^2&<2\\
-\delta(2p+\delta)&< 2-p^2\\
-\delta&<\frac{2-p^2}{2p-\delta}
-\end{aligned}
-$$
-
-From $(p+\delta)^2<2$, we know $\delta<2$ (this is a crude bound, $\delta<\sqrt{2}$).
-
-So one choice can be $\delta=\frac{2-p^2}{2p+2}$
-
-#### Proof
-
-$\forall p\in A$, we can find a $\delta=\frac{2-p^2}{2p+2}$ which is greater than zero ($p^2<2,2-p^2>0,2p+2>0,\delta>0$) and construct a new number $(p+\delta)^2$ such that $p^2<(p+\delta)^2<2$.
-
-_Here we construct a formula for approximate $\sqrt{2}=\lim_{i\to \infty}p_0=1,p_{i+1}=p_i+\frac{2-p_i^2}{2p_i+2}$_
-
-Interesting...
-
-We can also further optimize the formula by changing the bound of $\delta$ to $\delta< 2-p$, since $(p+\delta)^2<2,p+\delta<2$
-
-```python
-def sqrt_2(acc):
- if acc==0: return 1
- c=sqrt_2(n-1)
- return c+((2-c**2)/(2*c+2))
-```
-
-### Definition and notations for sets
-
-Some set notation
-
-$\Pi\in \mathbb{R}$
-
-use $\subset,\subsetneq$ in this class.
-
-* $A\subset B$, $\forall x\in A, x\in B$
-* $A=B$, $A\subset B$ and $B\subset A$
-* $A\subsetneq$ means $A\subset B$ and $A\neq B$
-
+# Lecture 1
+
+## Introduction
+
+Reading is not recommended before class, it's hard.
+
+## Chapter 1: The real number and complex number systems
+
+* Natural numbers: $\mathbb{N}=\{1,2,3,4....\}$ note by some conventions, $0$ is also a natural number
+
+* IntegersL $\mathbb{Z}=\{...,-2,-1,0,1,2,...\}$
+
+* Rational numbers: $\mathbb{Q}=\{\frac{m}{n}:m,n\in\mathbb{Z}\ and\ n\neq 0\}$
+
+* Real numbers: $\mathbb{R}$ the topic of chapter
+
+* Complex numbers: $\mathbb{C}=\{a+bi:a,b\in \mathbb{R}\}$
+
+### Theorem ($\sqrt{2}$ is irrational)
+
+$\exist p\in \mathbb{Q},p^2=2$ is false.
+
+$\equiv\cancel{\exist} p\in \mathbb{Q}, p^2=2$
+
+$\equiv p\in \mathbb{Q},p^2\neq 2$
+
+#### Proof
+
+Suppose for contradiction, $\exist p\in \mathbb{Q}$ such that $p^2=\mathbb{Q}$.
+
+Let $p=\frac{m}{n}$, where $m,n \in \mathbb{Z}$ are not both even. (reduced form)
+
+$p^2=2$ and $p=\frac{m}{n}$, so $m^2=2n^2$, so $m^2$ is even, $m$ is even.
+
+So $m^2$ is divisible by 4, $2n^2$ is divisible by 4.
+
+So $n^2$ is even. but they are not both even.
+
+QED
+
+### Theorem (No closest rational for a irrational number)
+
+Let $A=\{p\in \mathbb{q}, p>0\ and\ p^2\leq 2\}$, Then $A$ does not have a largest element.
+
+i.e. $\exist p\in A$ such that $\forall q\in A, q\leq p$ is false.
+
+> Remark: The book give a very slick proof trying to lean from these kinds of proofs takes some effort. (It is perfectly fine to write that solution this way...)
+
+#### Thought process
+
+Let $p\in A,p\in \mathbb{Q}$, $p>0, p^2<2$.
+
+We want a $\delta\in\mathbb{Q}$ such that $\delta>0$ and $(p+\delta)^2<2$.
+
+$$
+\begin{aligned}
+
+(p+\delta)^2&<2\\
+p^2+2p\delta+\delta^2&<2\\
+\delta(2p+\delta)&< 2-p^2\\
+\delta&<\frac{2-p^2}{2p-\delta}
+\end{aligned}
+$$
+
+From $(p+\delta)^2<2$, we know $\delta<2$ (this is a crude bound, $\delta<\sqrt{2}$).
+
+So one choice can be $\delta=\frac{2-p^2}{2p+2}$
+
+#### Proof
+
+$\forall p\in A$, we can find a $\delta=\frac{2-p^2}{2p+2}$ which is greater than zero ($p^2<2,2-p^2>0,2p+2>0,\delta>0$) and construct a new number $(p+\delta)^2$ such that $p^2<(p+\delta)^2<2$.
+
+_Here we construct a formula for approximate $\sqrt{2}=\lim_{i\to \infty}p_0=1,p_{i+1}=p_i+\frac{2-p_i^2}{2p_i+2}$_
+
+Interesting...
+
+We can also further optimize the formula by changing the bound of $\delta$ to $\delta< 2-p$, since $(p+\delta)^2<2,p+\delta<2$
+
+```python
+def sqrt_2(acc):
+ if acc==0: return 1
+ c=sqrt_2(n-1)
+ return c+((2-c**2)/(2*c+2))
+```
+
+### Definition and notations for sets
+
+Some set notation
+
+$\Pi\in \mathbb{R}$
+
+use $\subset,\subsetneq$ in this class.
+
+* $A\subset B$, $\forall x\in A, x\in B$
+* $A=B$, $A\subset B$ and $B\subset A$
+* $A\subsetneq$ means $A\subset B$ and $A\neq B$
+
diff --git a/pages/Math4111/Math4111_L10.md b/content/Math4111/Math4111_L10.md
similarity index 98%
rename from pages/Math4111/Math4111_L10.md
rename to content/Math4111/Math4111_L10.md
index dc82dd3..1debee9 100644
--- a/pages/Math4111/Math4111_L10.md
+++ b/content/Math4111/Math4111_L10.md
@@ -1,66 +1,66 @@
-# Lecture 10
-
-## Review
-
-Recall: If $K\subset \cup_{\alpha\in A} G_{\alpha}$, then we say $\{G_\alpha\}_{\alpha\in A}$ is a cover of $K$. If, in addition, each set $G_{\alpha}$ is open, then we say $\{G_{\alpha}\}_{\alpha\in A}$ is an open cover of $K$. If $\alpha_1,...,\alpha_n\in A$ are such that $K\subset \bigcup _{i=1}^n G_{\alpha_i}$, then we say $\{G_{\alpha_i}\}_{i=1}^n$ is a finite subcover.
-
-Let $X=\mathbb{R}$. Come up with some examples of covers of $\mathbb{R}$. Try to find a few satisfying each of the following:
-
-1. A cover of $\mathbb{R}$ which is not an open cover.
- $\{[x,x+1]:x\in \mathbb{Z}\}$
-2. An open cover of $\mathbb{R}$ which does have a finite subcover.
- $\{\mathbb{R}\}$ is an open cover with finite subcover, itself $\{\mathbb{R}\}$. AND, $\{\mathbb{Q},\mathbb{R}\backslash\mathbb{Q}\}$ is not a subcover of $\{\mathbb{R}\}$ since we need to select subcover from cover set. And not taking the element of sets in the open cover.
-3. An open cover of $\mathbb{R}$ which does not have a finite subcover.
- $\{(x,x+2):x\in \mathbb{Z}\}$ No finite subcover, infinitely many sets.
-
- Proof: we proceed by contradiction, suppose we take $\{(n_i,n_i+2):i=1,...,k\}$. The union does not contain $max\{n_1,...,n_k\}+2$
-
- $\{\{x\in\mathbb{R}:x0$ such that $B_r(p)0$ such that $B_r(p)0$ such that $S\subset B_r(p)$.
-
-Consider the following statement: If a set $S\subset X$ is compact, the its is bounded.
-
-1. Will the proof of this statement involve an arbitrary open cover (one that you, the prover, do not get to choose) or a specific open cover (one that you can choose)?
- We should choose a specific cover so that we can construct cover that have a set that is a superset of $S$.
-2. Give a proof of the statement. [Suggestion: If you prefer, you could try proving the contrapositive. Both a direct proof and a proof by contrapositive are roughly of the same difficulty.]
-
-### Continue on compact sets
-
-#### Lemma
-
-If $S\in X$ is compact, then $S$ is bounded.
-
-Proof:
-
-Fix $p\in X$, then $\{B_n(p)\}_{n\in \mathbb{N}}$ (specific open cover) is an open cover of $S$ (Since $\bigcup_{n\in \mathbb{N}}=X$). Since $S$ is compact, then $\exists$ a finite subcover ${n\in \mathbb{N}}_{i=1}^k=S$, let $r=max(n_1,...n_k)$, Then $S\subset B_r(p)$
-
-QED
-
-#### Definition k-cell
-
-A 2-cell is a set of the form $[a_1,b_1]\times[a_2,b_2]$
-
-#### Theorem 2.39 (K-dimension of Theorem)
-
-Theorem 2.38 replace with "closed and bounded intervals" to "k-cells".
-
-Ideas of Proof:
-
-Apply the Theorem to each dimension separately.
-
-#### Theorem 2.40
-
-Every k-cell is compact.
-
-We'll prove the case $k=1$ and $I=[0,1]$ (This is to simplify notation. This same ideas are used in the general case)
-
-Proof:
-
-That $[0,1]$ is compact.
-
-(Key idea, divide and conquer)
-
-Suppose for contradiction that $\exists$ open cover $\{G_a\}_{\alpha\in A}$ of $[0,1]$ with no finite subcovers of $[0,1]$
-
-**Step1.** Divide $[0,1]$ in half. $[0,\frac{1}{2}]$ and $[\frac{1}{2},1]$ and at least one of the subintervals cannot be covered by a finite subcollection of $\{G_\alpha\}_{\alpha\in A}$
-
-(If both of them could be, combine the two finite subcollections to get a finite subcover of $[0,1]$)
-
-Let $I_1$ be a subinterval without a finite subcover.
-
-**Step2.** Divide $I_1$ in half. Let $I_2$ be one of these two subintervals of $I_1$ without a finite subcover.
-
-**Step3.** etc.
-
-We obtain a seg of intervals $I_1\subset I_2\subset \dots$ such that
-
-(a) $[0,1]\supset I_1\supset I_2\supset \dots$
-(b) $\forall n\in \mathbb{N}$, $I_n$ is not covered by a finite subcollection of $\{G_\alpha\}_{\alpha\in A}$
-(c) The length of $I_n$ is $\frac{1}{2^n}$
-
-By (a) and **Theorem 2.38**, $\exists x^*\in \bigcap^{\infty}_{n=1} I_n$.
-
-Since $x^*\in [0,1]$, $\exists \alpha_0$ such that $x^*\in G_{\alpha_0}$
-
-Since $G_{\alpha_0}$ is open, $\exist r>0$ such that $B_r(x^*)\subset G_{\alpha_0}$
-
-Let $n\in \mathbb{N}$ be such that $\frac{1}{2^n}d(y,z)-r\\
- &=d(y,z)-\frac{1}{2}d(y,z)\\
- &=\frac{1}{2}d(y,z)
-\end{aligned}
-$$
-
-So $B_r(y)\cap S$ is finite. By **Theorem 2.20**, $y\notin S$, this proves the claim so $S'\cap E=\phi$
-
-QED
+# Lecture 12
+
+## Review Questions
+
+For a metric space $(X,d)$, we say a subset $S\subset X$ si bounded if there exists $p\in X$ and $r>0$ such that $S\subset B_r(p)$.
+
+Consider the following statement: If a set $S\subset X$ is compact, the its is bounded.
+
+1. Will the proof of this statement involve an arbitrary open cover (one that you, the prover, do not get to choose) or a specific open cover (one that you can choose)?
+ We should choose a specific cover so that we can construct cover that have a set that is a superset of $S$.
+2. Give a proof of the statement. [Suggestion: If you prefer, you could try proving the contrapositive. Both a direct proof and a proof by contrapositive are roughly of the same difficulty.]
+
+### Continue on compact sets
+
+#### Lemma
+
+If $S\in X$ is compact, then $S$ is bounded.
+
+Proof:
+
+Fix $p\in X$, then $\{B_n(p)\}_{n\in \mathbb{N}}$ (specific open cover) is an open cover of $S$ (Since $\bigcup_{n\in \mathbb{N}}=X$). Since $S$ is compact, then $\exists$ a finite subcover ${n\in \mathbb{N}}_{i=1}^k=S$, let $r=max(n_1,...n_k)$, Then $S\subset B_r(p)$
+
+QED
+
+#### Definition k-cell
+
+A 2-cell is a set of the form $[a_1,b_1]\times[a_2,b_2]$
+
+#### Theorem 2.39 (K-dimension of Theorem)
+
+Theorem 2.38 replace with "closed and bounded intervals" to "k-cells".
+
+Ideas of Proof:
+
+Apply the Theorem to each dimension separately.
+
+#### Theorem 2.40
+
+Every k-cell is compact.
+
+We'll prove the case $k=1$ and $I=[0,1]$ (This is to simplify notation. This same ideas are used in the general case)
+
+Proof:
+
+That $[0,1]$ is compact.
+
+(Key idea, divide and conquer)
+
+Suppose for contradiction that $\exists$ open cover $\{G_a\}_{\alpha\in A}$ of $[0,1]$ with no finite subcovers of $[0,1]$
+
+**Step1.** Divide $[0,1]$ in half. $[0,\frac{1}{2}]$ and $[\frac{1}{2},1]$ and at least one of the subintervals cannot be covered by a finite subcollection of $\{G_\alpha\}_{\alpha\in A}$
+
+(If both of them could be, combine the two finite subcollections to get a finite subcover of $[0,1]$)
+
+Let $I_1$ be a subinterval without a finite subcover.
+
+**Step2.** Divide $I_1$ in half. Let $I_2$ be one of these two subintervals of $I_1$ without a finite subcover.
+
+**Step3.** etc.
+
+We obtain a seg of intervals $I_1\subset I_2\subset \dots$ such that
+
+(a) $[0,1]\supset I_1\supset I_2\supset \dots$
+(b) $\forall n\in \mathbb{N}$, $I_n$ is not covered by a finite subcollection of $\{G_\alpha\}_{\alpha\in A}$
+(c) The length of $I_n$ is $\frac{1}{2^n}$
+
+By (a) and **Theorem 2.38**, $\exists x^*\in \bigcap^{\infty}_{n=1} I_n$.
+
+Since $x^*\in [0,1]$, $\exists \alpha_0$ such that $x^*\in G_{\alpha_0}$
+
+Since $G_{\alpha_0}$ is open, $\exist r>0$ such that $B_r(x^*)\subset G_{\alpha_0}$
+
+Let $n\in \mathbb{N}$ be such that $\frac{1}{2^n}d(y,z)-r\\
+ &=d(y,z)-\frac{1}{2}d(y,z)\\
+ &=\frac{1}{2}d(y,z)
+\end{aligned}
+$$
+
+So $B_r(y)\cap S$ is finite. By **Theorem 2.20**, $y\notin S$, this proves the claim so $S'\cap E=\phi$
+
+QED
diff --git a/pages/Math4111/Math4111_L13.md b/content/Math4111/Math4111_L13.md
similarity index 97%
rename from pages/Math4111/Math4111_L13.md
rename to content/Math4111/Math4111_L13.md
index 49592a7..e1ac53f 100644
--- a/pages/Math4111/Math4111_L13.md
+++ b/content/Math4111/Math4111_L13.md
@@ -1,143 +1,143 @@
-# Lecture 13
-
-## Review
-
-Consider the metric space $X=\mathbb{R}$ (with the usual metric $d(x,y)=|x-y|$). Let $E=(0,1)$.
-
-1. Find several examples of sets $Y\subset \mathbb{R}$ such that $E\subset Y$ and $E$ is closed in $Y$.
- Example:
- 1. $Y=E$, $E$ is closed in $Y$.
- We can prove this using normal ways, or
- **Theorem 2.23** $E$ is closed in $Y\iff E^c$ is open in $Y$
- $Y\iff E^c=\phi$ and it's open.
- 2. $Y=\mathbb{R}\backslash\{0,1\}$
- $Y\backslash E=(-\infty,0)\cup (1,\infty)$
- **Theorem 2.30** $E\subset Y\subset X$, $E$ is open in $Y\iff$ $\exists G$ open in $X$ such that $G\cap Y=E$
- $G\cap Y=Y\backslash E$
- And we know $Y\backslash E$ is open in $Y$. By **Theorem 2.23** $E$ is closed in $Y$.
-
-2. If $Y$ is as in part 1, we can conclude that $E$ is closed and bounded in $y$. Part of **Theorem 2.41** says: "If a set is closed and bounded, then it is compact." Why doesn't that theorem apply here.
- The set is not closed in $\mathbb{R}^k$.
-
-## New stuffs
-
-### Connected sets
-
-#### Definition 2.45
-
-$A,B\subset X$, we say $A$ and $B$ are separated in $X$ if $A\cup \overline{B}=\phi$ and $\overline{A}\cup B=\phi$
-
-- $E\subset X$ **disconnected** in $X$ if $\exists$ nonempty separated $A,B\subset X$ such that $E=A\cup B$
-- $E\subset X$ is **connected** in $X$ if it is not disconnected.
-
-Example 2.46
-
-$(0,1),(1,2)$ are separated [so $(0,1)\cup (1,2)$ is disconnected]
-
-$[0,1],(1,2)$ are not separated [so $[0,1]\cup (1,2)=\{1\}$] So this doesn't tell us where $[0,1]\cup (1,2)$ is connected or not.
-
-#### Theorem 2.47
-
-Suppose $E\subset \mathbb{R}$
-
-$E$ is connected $\iff \forall (x,y,z)$ with $x,y\in E,x0$ such that $(w-r,w+r)\cap B=\phi$.
-
-Let $z=w+\frac{r}{2}$, then $x,y,z$ satisfy the desired properties.
-
-QED
-
-## Chapter 3: Numerical Sequences and Series
-
-### Numerical Sequences
-
-#### Notations
-
-Rudin use $\{p_n\}$ to denote a sequence $p_1,p_2$.
-
-To avoid confusion with sets, we use $(p_n)_{n=1}^\infty$ or $(p_n)$
-
-#### Definition 3.1
-
-Let $(X,d)$ be a metric space. Let $(p_n)$ be a sequence in $X$.
-
-Let $p\in X$. We say $(p_x)$ **converges** to $p$ if $\forall \epsilon>0,\exists N\in\mathbb{N}$ such that $\forall n\geq N$, $d(p_n,p)<\epsilon$. ($p_n\in B_\epsilon (p)$)
-
-Notation $\lim_{n\to \infty} p_n=p$, $p_n\to p$
-
-We say $(p_n)$ converges if $\exists p\in X$ such that $p_n\to p$.
-
-i.e. $\exists p\in X$ such that $\forall\epsilon>0,\exists N\in\mathbb{N}$ such that $\forall n\geq N,d(p_n,p)<\epsilon$
-
-We say $(p_n)$ **diverges** if $(p_n)$ doesn't converge.
-
-i.e. $\forall p\in X$, $p_n\cancel{\to} p$
-
-i.e. $\forall p\in X$ such that $\exists \epsilon>0,\forall N\in\mathbb{N}$ such that $\exists n\geq N,d(p_n,p)\geq\epsilon$
-
-#### Definition 3.2
-
-We say a sequence $(p_n)$ is bounded if $\exists x\in X$, $\forall r>0$ such that $\forall n\in \mathbb{N},p_n\in B_r(x)$
-
-Example:
-
-$X=\mathbb{C}$, $s_n=\frac{1}{n}$
-
-Then $s_n\to 0$ i.e. $\forall \epsilon>0 \exists N\in \mathbb{N}$ such that $\forall n\geq N$, $|s_n-0|<\epsilon$.
-
-Proof:
-
-Let $\epsilon >0$ (arbitrary)
-
-Let $N\in \mathbb{N}$ be greater than $\frac{1}{\epsilon}$ (by Archimedean property) e.g. $N=\frac{1}{\epsilon}+1$ (we choose $N$)
-
-Let $n\geq N$ (arbitrary)
-
-Then $|s_n-q|=\frac{1}{n}\leq \frac{1}{N}\leq \epsilon$
-
+# Lecture 13
+
+## Review
+
+Consider the metric space $X=\mathbb{R}$ (with the usual metric $d(x,y)=|x-y|$). Let $E=(0,1)$.
+
+1. Find several examples of sets $Y\subset \mathbb{R}$ such that $E\subset Y$ and $E$ is closed in $Y$.
+ Example:
+ 1. $Y=E$, $E$ is closed in $Y$.
+ We can prove this using normal ways, or
+ **Theorem 2.23** $E$ is closed in $Y\iff E^c$ is open in $Y$
+ $Y\iff E^c=\phi$ and it's open.
+ 2. $Y=\mathbb{R}\backslash\{0,1\}$
+ $Y\backslash E=(-\infty,0)\cup (1,\infty)$
+ **Theorem 2.30** $E\subset Y\subset X$, $E$ is open in $Y\iff$ $\exists G$ open in $X$ such that $G\cap Y=E$
+ $G\cap Y=Y\backslash E$
+ And we know $Y\backslash E$ is open in $Y$. By **Theorem 2.23** $E$ is closed in $Y$.
+
+2. If $Y$ is as in part 1, we can conclude that $E$ is closed and bounded in $y$. Part of **Theorem 2.41** says: "If a set is closed and bounded, then it is compact." Why doesn't that theorem apply here.
+ The set is not closed in $\mathbb{R}^k$.
+
+## New stuffs
+
+### Connected sets
+
+#### Definition 2.45
+
+$A,B\subset X$, we say $A$ and $B$ are separated in $X$ if $A\cup \overline{B}=\phi$ and $\overline{A}\cup B=\phi$
+
+- $E\subset X$ **disconnected** in $X$ if $\exists$ nonempty separated $A,B\subset X$ such that $E=A\cup B$
+- $E\subset X$ is **connected** in $X$ if it is not disconnected.
+
+Example 2.46
+
+$(0,1),(1,2)$ are separated [so $(0,1)\cup (1,2)$ is disconnected]
+
+$[0,1],(1,2)$ are not separated [so $[0,1]\cup (1,2)=\{1\}$] So this doesn't tell us where $[0,1]\cup (1,2)$ is connected or not.
+
+#### Theorem 2.47
+
+Suppose $E\subset \mathbb{R}$
+
+$E$ is connected $\iff \forall (x,y,z)$ with $x,y\in E,x0$ such that $(w-r,w+r)\cap B=\phi$.
+
+Let $z=w+\frac{r}{2}$, then $x,y,z$ satisfy the desired properties.
+
+QED
+
+## Chapter 3: Numerical Sequences and Series
+
+### Numerical Sequences
+
+#### Notations
+
+Rudin use $\{p_n\}$ to denote a sequence $p_1,p_2$.
+
+To avoid confusion with sets, we use $(p_n)_{n=1}^\infty$ or $(p_n)$
+
+#### Definition 3.1
+
+Let $(X,d)$ be a metric space. Let $(p_n)$ be a sequence in $X$.
+
+Let $p\in X$. We say $(p_x)$ **converges** to $p$ if $\forall \epsilon>0,\exists N\in\mathbb{N}$ such that $\forall n\geq N$, $d(p_n,p)<\epsilon$. ($p_n\in B_\epsilon (p)$)
+
+Notation $\lim_{n\to \infty} p_n=p$, $p_n\to p$
+
+We say $(p_n)$ converges if $\exists p\in X$ such that $p_n\to p$.
+
+i.e. $\exists p\in X$ such that $\forall\epsilon>0,\exists N\in\mathbb{N}$ such that $\forall n\geq N,d(p_n,p)<\epsilon$
+
+We say $(p_n)$ **diverges** if $(p_n)$ doesn't converge.
+
+i.e. $\forall p\in X$, $p_n\cancel{\to} p$
+
+i.e. $\forall p\in X$ such that $\exists \epsilon>0,\forall N\in\mathbb{N}$ such that $\exists n\geq N,d(p_n,p)\geq\epsilon$
+
+#### Definition 3.2
+
+We say a sequence $(p_n)$ is bounded if $\exists x\in X$, $\forall r>0$ such that $\forall n\in \mathbb{N},p_n\in B_r(x)$
+
+Example:
+
+$X=\mathbb{C}$, $s_n=\frac{1}{n}$
+
+Then $s_n\to 0$ i.e. $\forall \epsilon>0 \exists N\in \mathbb{N}$ such that $\forall n\geq N$, $|s_n-0|<\epsilon$.
+
+Proof:
+
+Let $\epsilon >0$ (arbitrary)
+
+Let $N\in \mathbb{N}$ be greater than $\frac{1}{\epsilon}$ (by Archimedean property) e.g. $N=\frac{1}{\epsilon}+1$ (we choose $N$)
+
+Let $n\geq N$ (arbitrary)
+
+Then $|s_n-q|=\frac{1}{n}\leq \frac{1}{N}\leq \epsilon$
+
QED
\ No newline at end of file
diff --git a/pages/Math4111/Math4111_L14.md b/content/Math4111/Math4111_L14.md
similarity index 96%
rename from pages/Math4111/Math4111_L14.md
rename to content/Math4111/Math4111_L14.md
index 0ab16c7..c827faa 100644
--- a/pages/Math4111/Math4111_L14.md
+++ b/content/Math4111/Math4111_L14.md
@@ -1,159 +1,159 @@
-# Lecture 14
-
-## Review
-
-Consider the following statement: If sequence $(p_n)$ converges, then its bounded.
-
-1. Will the proof involve an arbitrary $\epsilon>0$ (one that you, the prover, do nto get to choose) or a specific $\epsilon>0$ (on that you can choose)
- We can choose, for example $\epsilon=1$.
-2. Give a proof of the statement.
-
-## Continue on sequence
-
-### Convergence
-
-#### Theorem 3.2(c)
-
-$(p_n)$ converges $\implies(p_n)$ is bounded.
-
-Proof:
-
-Suppose $(p_n)$ converges, then $\exists p\in X$ such that $p_n\to p$. Let $\epsilon=1$, then $\exists N\in \mathbb{N}$ such that $\forall n\geq N,d(p_n,p)<1$. Let $r=1+max\{1,d(p_1,p),d(p_2,p),\dots,d(p_{N-1},p)\}$.
-
-Then $\forall n\in \mathbb{N}, d(p_n,p)\leq r$.
-
-#### Theorem 3.2
-
-Let $(p_n)$ be a sequence in $(X,d)$
-
-(a) $p_n\to p\iff \forall r>0,\{n\in \mathbb{N},p_n\notin B_r(p)\}$ is finite
-(b) $p_n\to p; p_n\to p'\implies p=p'$ (converging point is unique)
-(c) $(p_n)$ converges $\implies(p_n)$ is bounded.
-(d) If $E\subset X$ and $p\in \overline{E}$, then $\exist (p_n)\in E$ such that $p_n\to p$.
-
-Proof:
-
-(a) We need to show:
-
-$\forall \epsilon>0 \in N$, $\forall n\geq N,d(p_n,p)<\epsilon$ if and only if $\forall r>0, \{n\in \mathbb{N}:p\notin B_r(p)\}$ is finite.
-
-$\implies$
-
-Suppose $\forall \epsilon>0 \in N$, $\forall n\geq N,d(p_n,p)<\epsilon$.
-
-**We start with arbitrary $r>0$.** and choose $\epsilon=n$
-
-$\exists N$ such that $\forall n\geq \mathbb{N},d(p_n,p)0, \{n\in \mathbb{N}:p\notin B_r(p)\}$ is finite. Choosing $r=\epsilon$. We choose $r=\epsilon$. $\{n\in \mathbb{N}:p\notin B_\epsilon(p)\}<\{1,2,\dots,N-1\}$.
-
-Let $N=1+max\{n\in \mathbb{N},p_n\notin B_\epsilon(p)\}$
-
-Then $\forall n\geq \mathbb{N},p_n\leq B_\epsilon(p)$
-
-(b) We'll prove $\forall \epsilon>0,d(p,p')<2\epsilon$ to prove it, let $\epsilon >0$. Then
-
-$p_n\to p\implies \exists N$ such that $\forall n\geq \mathbb{N},d(p_n,p)<\epsilon$
-$p_n\to p'\implies \exists N'$ such that $\forall n\geq \mathbb{N},d(p_n,p')<\epsilon$
-
-Let $n_0=max\{N,N'\}$, then
-
-$$
-d(p,p')\leq d(p_n,p_{n_0})+d(p_{n_0},p')<2\epsilon
-$$
-
-And $\forall \epsilon>0,d(p,p')<2\epsilon\implies d(p,p')=0$. So $p=p'$
-
-> Remark: We can also prove this with contradiction. Idea $p\neq p'\implies d(p,p')>0$, let $\epsilon=\frac{1}{2}d(p,q')\dots$
-
-(d) Suppose $p\in \overline{E}$. Then $\forall n\in \mathbb{N}, B_{\frac{1}{n}}(p)\cap E\neq \phi$. So $\forall n\in \mathbb{N}$, $\exists p_n\in B_{\frac{1}{n}}(p)\cap E$. We'll show $p_n\to p$.
-
-Let $\epsilon>0$. Choose $N\in \mathbb{N}$ such that $N>\frac{1}{\epsilon}$. Then if $n\geq N$, $d(p_n,p)<\frac{1}{n}\leq \frac{1}{N}\leq \epsilon$
-
-QED
-
-#### Theorem 3.3
-
-Let $(s_n), (t_n)$ be sequence in $\mathbb{C}$. Suppose $s_n\to s,t_n\to t$
-
-(a) $s_n+t_n\to s+t$
-(b) $cs_n\to cs,c+s_n\to c+s$
-(c) $s_nt_n\to st$
-(d) If $\forall n\in \mathbb{N},s_n\neq 0,s\neq 0$, then $\frac{1}{s_n}\to \frac{1}{s}$
-
-Proof:
-
-(a) We want to prove $\forall \epsilon>0, \exists N$ such that $\forall n\geq N, |(s_n+t_n)-(s+t)|<\epsilon$
-
-Let $\epsilon >0$
-
-$s_n\to s\implies \exist N_s$ such that $\forall n\geq N_s,|s_n-s|<\frac{\epsilon}{2}$
-$t_n\to t\implies \exist N_t$ such that $\forall n\geq N_t,|t_n-t|<\frac{\epsilon}{2}$
-
-Let $N=\max\{N_t,N_s\}$, then if $n\geq N$,
-
-$$
-\begin{aligned}
-|(s_n+t_n)-(s+t)|&=|(s_n+s)-(t_n-t)|\\
-&\leq |s_n-s|+|t_n-t|\\
-&< \frac{\epsilon}{2}+\frac{\epsilon}{2}\\
-&<\epsilon
-\end{aligned}
-$$
-
-(b) exercise
-
-(c) First we'll prove a special case.
-
-$$
-s_n\to 0 \textup{ and }t_n\to 0\implies s_nt_n\to 0
-$$
-
-Suppose $s_n\to 0$ and $t_n\to 0$.
-
-Let $\epsilon >0$
-
-$s_n\to 0\implies \exist N_s$ such that $\forall n\geq N_s,|s_n-s|<\sqrt{\epsilon}$
-$t_n\to 0\implies \exist N_t$ such that $\forall n\geq N_t,|t_n-t|<\sqrt{\epsilon}$
-
-Let $N=\max\{N_t,N_s\}$, then if $n\geq N$,
-
-$$
-|s_n t_n|< \sqrt{\epsilon}^2=\epsilon
-$$
-
-Now we prove the general case.
-
-$$
-s_n\to s \textup{ and }t_n\to t\implies s_nt_n\to st
-$$
-
-Since
-
-$$
-s_n t_n=(s_n-s)(t_n-t)+s(t_n-t)+t(s_n-s)
-$$
-
-So
-
-$$
-\lim_{n\to \infty}(s_nt_n-st)=\lim_{n\to \infty}(s_n-s)(t_n-t)+\lim_{n\to \infty}s(t_n-t)+\lim_{n\to \infty}t(s_n-s)
-$$
-
-$\lim_{n\to \infty}(s_n-s)(t_n-t)=0$ by special case
-
-$\lim_{n\to \infty}s(t_n-t)=0$ by (b)
-
-$\lim_{n\to \infty}t(s_n-s)=0$ by (b)
-
-Thought process for (d)
-
-$$
-\left|\frac{1}{s_n}-\frac{1}{s}\right|=\frac{|s_n-s|}{|s_n||s|}< \epsilon
-$$
-
+# Lecture 14
+
+## Review
+
+Consider the following statement: If sequence $(p_n)$ converges, then its bounded.
+
+1. Will the proof involve an arbitrary $\epsilon>0$ (one that you, the prover, do nto get to choose) or a specific $\epsilon>0$ (on that you can choose)
+ We can choose, for example $\epsilon=1$.
+2. Give a proof of the statement.
+
+## Continue on sequence
+
+### Convergence
+
+#### Theorem 3.2(c)
+
+$(p_n)$ converges $\implies(p_n)$ is bounded.
+
+Proof:
+
+Suppose $(p_n)$ converges, then $\exists p\in X$ such that $p_n\to p$. Let $\epsilon=1$, then $\exists N\in \mathbb{N}$ such that $\forall n\geq N,d(p_n,p)<1$. Let $r=1+max\{1,d(p_1,p),d(p_2,p),\dots,d(p_{N-1},p)\}$.
+
+Then $\forall n\in \mathbb{N}, d(p_n,p)\leq r$.
+
+#### Theorem 3.2
+
+Let $(p_n)$ be a sequence in $(X,d)$
+
+(a) $p_n\to p\iff \forall r>0,\{n\in \mathbb{N},p_n\notin B_r(p)\}$ is finite
+(b) $p_n\to p; p_n\to p'\implies p=p'$ (converging point is unique)
+(c) $(p_n)$ converges $\implies(p_n)$ is bounded.
+(d) If $E\subset X$ and $p\in \overline{E}$, then $\exist (p_n)\in E$ such that $p_n\to p$.
+
+Proof:
+
+(a) We need to show:
+
+$\forall \epsilon>0 \in N$, $\forall n\geq N,d(p_n,p)<\epsilon$ if and only if $\forall r>0, \{n\in \mathbb{N}:p\notin B_r(p)\}$ is finite.
+
+$\implies$
+
+Suppose $\forall \epsilon>0 \in N$, $\forall n\geq N,d(p_n,p)<\epsilon$.
+
+**We start with arbitrary $r>0$.** and choose $\epsilon=n$
+
+$\exists N$ such that $\forall n\geq \mathbb{N},d(p_n,p)0, \{n\in \mathbb{N}:p\notin B_r(p)\}$ is finite. Choosing $r=\epsilon$. We choose $r=\epsilon$. $\{n\in \mathbb{N}:p\notin B_\epsilon(p)\}<\{1,2,\dots,N-1\}$.
+
+Let $N=1+max\{n\in \mathbb{N},p_n\notin B_\epsilon(p)\}$
+
+Then $\forall n\geq \mathbb{N},p_n\leq B_\epsilon(p)$
+
+(b) We'll prove $\forall \epsilon>0,d(p,p')<2\epsilon$ to prove it, let $\epsilon >0$. Then
+
+$p_n\to p\implies \exists N$ such that $\forall n\geq \mathbb{N},d(p_n,p)<\epsilon$
+$p_n\to p'\implies \exists N'$ such that $\forall n\geq \mathbb{N},d(p_n,p')<\epsilon$
+
+Let $n_0=max\{N,N'\}$, then
+
+$$
+d(p,p')\leq d(p_n,p_{n_0})+d(p_{n_0},p')<2\epsilon
+$$
+
+And $\forall \epsilon>0,d(p,p')<2\epsilon\implies d(p,p')=0$. So $p=p'$
+
+> Remark: We can also prove this with contradiction. Idea $p\neq p'\implies d(p,p')>0$, let $\epsilon=\frac{1}{2}d(p,q')\dots$
+
+(d) Suppose $p\in \overline{E}$. Then $\forall n\in \mathbb{N}, B_{\frac{1}{n}}(p)\cap E\neq \phi$. So $\forall n\in \mathbb{N}$, $\exists p_n\in B_{\frac{1}{n}}(p)\cap E$. We'll show $p_n\to p$.
+
+Let $\epsilon>0$. Choose $N\in \mathbb{N}$ such that $N>\frac{1}{\epsilon}$. Then if $n\geq N$, $d(p_n,p)<\frac{1}{n}\leq \frac{1}{N}\leq \epsilon$
+
+QED
+
+#### Theorem 3.3
+
+Let $(s_n), (t_n)$ be sequence in $\mathbb{C}$. Suppose $s_n\to s,t_n\to t$
+
+(a) $s_n+t_n\to s+t$
+(b) $cs_n\to cs,c+s_n\to c+s$
+(c) $s_nt_n\to st$
+(d) If $\forall n\in \mathbb{N},s_n\neq 0,s\neq 0$, then $\frac{1}{s_n}\to \frac{1}{s}$
+
+Proof:
+
+(a) We want to prove $\forall \epsilon>0, \exists N$ such that $\forall n\geq N, |(s_n+t_n)-(s+t)|<\epsilon$
+
+Let $\epsilon >0$
+
+$s_n\to s\implies \exist N_s$ such that $\forall n\geq N_s,|s_n-s|<\frac{\epsilon}{2}$
+$t_n\to t\implies \exist N_t$ such that $\forall n\geq N_t,|t_n-t|<\frac{\epsilon}{2}$
+
+Let $N=\max\{N_t,N_s\}$, then if $n\geq N$,
+
+$$
+\begin{aligned}
+|(s_n+t_n)-(s+t)|&=|(s_n+s)-(t_n-t)|\\
+&\leq |s_n-s|+|t_n-t|\\
+&< \frac{\epsilon}{2}+\frac{\epsilon}{2}\\
+&<\epsilon
+\end{aligned}
+$$
+
+(b) exercise
+
+(c) First we'll prove a special case.
+
+$$
+s_n\to 0 \textup{ and }t_n\to 0\implies s_nt_n\to 0
+$$
+
+Suppose $s_n\to 0$ and $t_n\to 0$.
+
+Let $\epsilon >0$
+
+$s_n\to 0\implies \exist N_s$ such that $\forall n\geq N_s,|s_n-s|<\sqrt{\epsilon}$
+$t_n\to 0\implies \exist N_t$ such that $\forall n\geq N_t,|t_n-t|<\sqrt{\epsilon}$
+
+Let $N=\max\{N_t,N_s\}$, then if $n\geq N$,
+
+$$
+|s_n t_n|< \sqrt{\epsilon}^2=\epsilon
+$$
+
+Now we prove the general case.
+
+$$
+s_n\to s \textup{ and }t_n\to t\implies s_nt_n\to st
+$$
+
+Since
+
+$$
+s_n t_n=(s_n-s)(t_n-t)+s(t_n-t)+t(s_n-s)
+$$
+
+So
+
+$$
+\lim_{n\to \infty}(s_nt_n-st)=\lim_{n\to \infty}(s_n-s)(t_n-t)+\lim_{n\to \infty}s(t_n-t)+\lim_{n\to \infty}t(s_n-s)
+$$
+
+$\lim_{n\to \infty}(s_n-s)(t_n-t)=0$ by special case
+
+$\lim_{n\to \infty}s(t_n-t)=0$ by (b)
+
+$\lim_{n\to \infty}t(s_n-s)=0$ by (b)
+
+Thought process for (d)
+
+$$
+\left|\frac{1}{s_n}-\frac{1}{s}\right|=\frac{|s_n-s|}{|s_n||s|}< \epsilon
+$$
+
If $n$ is large enough, then...
\ No newline at end of file
diff --git a/pages/Math4111/Math4111_L15.md b/content/Math4111/Math4111_L15.md
similarity index 97%
rename from pages/Math4111/Math4111_L15.md
rename to content/Math4111/Math4111_L15.md
index 5805a53..c31ce41 100644
--- a/pages/Math4111/Math4111_L15.md
+++ b/content/Math4111/Math4111_L15.md
@@ -1,162 +1,162 @@
-# Lecture 15
-
-## Review
-
-Let $(a_n)_{n=1}^\infty$ and $(b_n)_{n=1}^\infty$ be sequence in $\mathbb{R}$. Let $x_n=(a_n,b_n)\in \mathbb{R}^2$, so $(x_n)_{n=1}^\infty$ be a sequence in $\mathbb{R}^2$. Consider the following statement:
-
-$$
-a_n\to a\textup{ and }\quad b_n\to b\iff x_n\to (a,b)
-$$
-
-1.Prove the $\impliedby$ direction. That means you should prove the two things:
- (a) If $x_n\to (a,b)$, then $a_n\to a$. (The proof of this begins: Suppose $x_n\to (a,b)$. Let $\epsilon>0$ be arbitrary. Then $\exists N$ such that $\forall n\geq N$)
- We begins (with the goal $\forall \epsilon>0,\exists N$ such that $\forall n\geq N,|a_n-a|<\epsilon$).
- Proof:
- Let $\epsilon>0$ be arbitrary, then $\exists N$ such that $\forall n\geq N,|a_n-a|<\epsilon$.
- Then if $n\geq N$, $|a_n-a|\leq \sqrt{|a_n-a|^2}\leq\sqrt{|a_n-a|^2+|b_n-b|^2}=|x_n-(a,b)|<\epsilon$.
- QED
- (b) If $x_n\to (a,b)$, then $b_n\to b$.
- This follows from the same argument from (a)
-2. Prove the $\implies$ direction.
- Goal: $\forall \epsilon>0,\exists N$ such that $\forall n\geq N,|a_n-a|<\epsilon$.
- Proof:
- Let $\epsilon>0$ be arbitrary.
- Since $a_n\to a$, $\exists N_1$ such that $\forall n\geq N_1,|a_n-a|<\epsilon$.
- Since $b_n\to b$, $\exists N_2$ such that $\forall n\geq N_2,|b_n-b|<\epsilon$.
- Let $N=\max\{N_1,N_2\}$. Then if $n\geq N$, $|a_n-a|<\epsilon$ and $|b_n-b|<\sqrt{2}\epsilon$.
- **Same as last time, we can choose any smaller epsilon.**
- Since $a_n\to a$, $\exists N_1$ such that $\forall n\geq N_1,|a_n-a|<\frac{\epsilon}{\sqrt{2}}$.
- Since $b_n\to b$, $\exists N_2$ such that $\forall n\geq N_2,|b_n-b|<\frac{\epsilon}{\sqrt{2}}$.
- Let $N=\max\{N_1,N_2\}$. Then if $n\geq N$, $|a_n-a|<\epsilon$ and $|b_n-b|<\sqrt{\frac{\epsilon^2}{2}+\frac{\epsilon^2}{2}}=\epsilon$.
- QED
-
-## New Materials
-
-Continue from **Theorem 3.3**
-
-Suppose $(s_n),(t_n)$ are sequences in $\mathbb{C}$ and $s_n\to s,t_n\to t$. Then
-
-(a) $s_n+t_n\to s+t$
-(b) $cs_n\to cs$, $c+s_n\to c+s$
-(c) $s_nt_n\to st$
-(d) If $\forall n\in \mathbb{N},s_n\neq 0, s\neq 0$, then $\frac{1}{s_n}\to \frac{1}{s}$
-
-Thought process for (d):
-
-$$
-\left|\frac{1}{s_n}-\frac{1}{s}\right|=\left|\frac{s-s_n}{s_ns}\right|=\frac{|s-s_n|}{|s||s_n|}
-$$
-
-We choose large enough $N$ such that $\forall n\geq N,|s_n-s|<\frac{|s|}{2}$. Then by triangle inequality, $|s_n|>\frac{|s|}{2}$.
-
-$$
-\begin{aligned}
-|s|&=|s-s_n+s_n|\\
-|s|&\leq |s-s_n|+|s_n|\\
-|s|&<\frac{|s|}{2}+|s_n|\\
-\frac{|s|}{2}&< |s_n|
-\end{aligned}
-$$
-
-So $\frac{|s_n-s|}{|s||s_n|}<\frac{2|s_n-s|}{|s|^2}$.
-
-We choose $n$ large enough such that
-
-$$
-\frac{2|s_n-s|}{|s|^2}<\epsilon
-$$
-
-Then $|s_n-s|<\frac{\epsilon|s|^2}{2}$.
-
-Proof:
-
-Let $\epsilon>0$, since $s_n\to s$
-
-$\exists N$ such that $\forall n\geq N,|s_n-s|<\frac{|s|}{2}$.
-
-$\exists N$ such that $\forall n\geq N,|s_n-s|<\frac{\epsilon|s|^2}{2}$.
-
-Let $N=\max\{N_1,N_2\}$. Then if $n\geq N$,
-
-$$
-\left|\frac{1}{s_n}-\frac{1}{s}\right|=\frac{|s-s_n|}{|s||s_n|}<\frac{\frac{\epsilon|s|^2}{2}}{|s|^2}=\epsilon
-$$
-
-QED
-
-### Subsequences
-
-#### Definition 3.5
-
-Given a sequence $(p_n)_{n=1}^\infty$, a sequence of $(n_i)_{i=1}^\infty$ is strictly increasing sequence in $\mathbb{N}$. i.e. $n_10, B_r(p)\cap E\backslash \{p\}\neq \phi$
-
-- Choose $n_i$ such that $p_{n_i}\in B_i(p)$
-- If $n_1,\dots, n_{i-1}$ have bee chosen, choose $n_i$ such that $n_i>n_{i-1}$ and $p_{n_i}\in B_{\frac{1}{i}}(p)$. Then $p_{n_i}\to p$
-
-(b) Since $(p_n)$ is bounded , $\exists M$ such that $\forall n\in N$, $p_n\in \overline{B_M(0)}=\{y\in\mathbb{R}^k:|y|\leq M\}$
-
-$\overline{B_M(0)}$ is a closed and bounded set in $\mathbb{R}^k$.
-
-Then by Theorem 2.41, $\overline{B_M(0)}$ is compact.
-
-By part (a), $(p_n)$ has a subsequence $(p_{n_i})$ has a subsequence that converges to $B_M(0)$.
-
-#### Theorem 3.37
-
-Let $X$ be a metric space, $(p_n)$ is a sequence in $X$.
-
-Let $E^*=\{p\in X:\exists\textup{ subsequence }(p_{n_i})\textup{ such that }p_{n_i}\to p\}$.
-
-Then $E^*$ is closed in $X$.
-
-Example:
-
-$X=\mathbb{R}$
-
-1. $p_n=\frac{1}{n}$, $E^*=\{0\}$. (Specifically, if $p_n\to p$, then $E^*\to \{p\}$)
-2. $p_n=\begin{cases}1,n\textup{ is odd}\\ 0,n\textup{ is even}\end{cases}$, $E^*=\{0,1\}$
-3. $p_n=n$, $E^*=\phi$
-4. $p_n=\sin nx$, $E^*=\{0,1\}$
-5. $p_n=\sin n$, $E^*=[0,1]$
+# Lecture 15
+
+## Review
+
+Let $(a_n)_{n=1}^\infty$ and $(b_n)_{n=1}^\infty$ be sequence in $\mathbb{R}$. Let $x_n=(a_n,b_n)\in \mathbb{R}^2$, so $(x_n)_{n=1}^\infty$ be a sequence in $\mathbb{R}^2$. Consider the following statement:
+
+$$
+a_n\to a\textup{ and }\quad b_n\to b\iff x_n\to (a,b)
+$$
+
+1.Prove the $\impliedby$ direction. That means you should prove the two things:
+ (a) If $x_n\to (a,b)$, then $a_n\to a$. (The proof of this begins: Suppose $x_n\to (a,b)$. Let $\epsilon>0$ be arbitrary. Then $\exists N$ such that $\forall n\geq N$)
+ We begins (with the goal $\forall \epsilon>0,\exists N$ such that $\forall n\geq N,|a_n-a|<\epsilon$).
+ Proof:
+ Let $\epsilon>0$ be arbitrary, then $\exists N$ such that $\forall n\geq N,|a_n-a|<\epsilon$.
+ Then if $n\geq N$, $|a_n-a|\leq \sqrt{|a_n-a|^2}\leq\sqrt{|a_n-a|^2+|b_n-b|^2}=|x_n-(a,b)|<\epsilon$.
+ QED
+ (b) If $x_n\to (a,b)$, then $b_n\to b$.
+ This follows from the same argument from (a)
+2. Prove the $\implies$ direction.
+ Goal: $\forall \epsilon>0,\exists N$ such that $\forall n\geq N,|a_n-a|<\epsilon$.
+ Proof:
+ Let $\epsilon>0$ be arbitrary.
+ Since $a_n\to a$, $\exists N_1$ such that $\forall n\geq N_1,|a_n-a|<\epsilon$.
+ Since $b_n\to b$, $\exists N_2$ such that $\forall n\geq N_2,|b_n-b|<\epsilon$.
+ Let $N=\max\{N_1,N_2\}$. Then if $n\geq N$, $|a_n-a|<\epsilon$ and $|b_n-b|<\sqrt{2}\epsilon$.
+ **Same as last time, we can choose any smaller epsilon.**
+ Since $a_n\to a$, $\exists N_1$ such that $\forall n\geq N_1,|a_n-a|<\frac{\epsilon}{\sqrt{2}}$.
+ Since $b_n\to b$, $\exists N_2$ such that $\forall n\geq N_2,|b_n-b|<\frac{\epsilon}{\sqrt{2}}$.
+ Let $N=\max\{N_1,N_2\}$. Then if $n\geq N$, $|a_n-a|<\epsilon$ and $|b_n-b|<\sqrt{\frac{\epsilon^2}{2}+\frac{\epsilon^2}{2}}=\epsilon$.
+ QED
+
+## New Materials
+
+Continue from **Theorem 3.3**
+
+Suppose $(s_n),(t_n)$ are sequences in $\mathbb{C}$ and $s_n\to s,t_n\to t$. Then
+
+(a) $s_n+t_n\to s+t$
+(b) $cs_n\to cs$, $c+s_n\to c+s$
+(c) $s_nt_n\to st$
+(d) If $\forall n\in \mathbb{N},s_n\neq 0, s\neq 0$, then $\frac{1}{s_n}\to \frac{1}{s}$
+
+Thought process for (d):
+
+$$
+\left|\frac{1}{s_n}-\frac{1}{s}\right|=\left|\frac{s-s_n}{s_ns}\right|=\frac{|s-s_n|}{|s||s_n|}
+$$
+
+We choose large enough $N$ such that $\forall n\geq N,|s_n-s|<\frac{|s|}{2}$. Then by triangle inequality, $|s_n|>\frac{|s|}{2}$.
+
+$$
+\begin{aligned}
+|s|&=|s-s_n+s_n|\\
+|s|&\leq |s-s_n|+|s_n|\\
+|s|&<\frac{|s|}{2}+|s_n|\\
+\frac{|s|}{2}&< |s_n|
+\end{aligned}
+$$
+
+So $\frac{|s_n-s|}{|s||s_n|}<\frac{2|s_n-s|}{|s|^2}$.
+
+We choose $n$ large enough such that
+
+$$
+\frac{2|s_n-s|}{|s|^2}<\epsilon
+$$
+
+Then $|s_n-s|<\frac{\epsilon|s|^2}{2}$.
+
+Proof:
+
+Let $\epsilon>0$, since $s_n\to s$
+
+$\exists N$ such that $\forall n\geq N,|s_n-s|<\frac{|s|}{2}$.
+
+$\exists N$ such that $\forall n\geq N,|s_n-s|<\frac{\epsilon|s|^2}{2}$.
+
+Let $N=\max\{N_1,N_2\}$. Then if $n\geq N$,
+
+$$
+\left|\frac{1}{s_n}-\frac{1}{s}\right|=\frac{|s-s_n|}{|s||s_n|}<\frac{\frac{\epsilon|s|^2}{2}}{|s|^2}=\epsilon
+$$
+
+QED
+
+### Subsequences
+
+#### Definition 3.5
+
+Given a sequence $(p_n)_{n=1}^\infty$, a sequence of $(n_i)_{i=1}^\infty$ is strictly increasing sequence in $\mathbb{N}$. i.e. $n_10, B_r(p)\cap E\backslash \{p\}\neq \phi$
+
+- Choose $n_i$ such that $p_{n_i}\in B_i(p)$
+- If $n_1,\dots, n_{i-1}$ have bee chosen, choose $n_i$ such that $n_i>n_{i-1}$ and $p_{n_i}\in B_{\frac{1}{i}}(p)$. Then $p_{n_i}\to p$
+
+(b) Since $(p_n)$ is bounded , $\exists M$ such that $\forall n\in N$, $p_n\in \overline{B_M(0)}=\{y\in\mathbb{R}^k:|y|\leq M\}$
+
+$\overline{B_M(0)}$ is a closed and bounded set in $\mathbb{R}^k$.
+
+Then by Theorem 2.41, $\overline{B_M(0)}$ is compact.
+
+By part (a), $(p_n)$ has a subsequence $(p_{n_i})$ has a subsequence that converges to $B_M(0)$.
+
+#### Theorem 3.37
+
+Let $X$ be a metric space, $(p_n)$ is a sequence in $X$.
+
+Let $E^*=\{p\in X:\exists\textup{ subsequence }(p_{n_i})\textup{ such that }p_{n_i}\to p\}$.
+
+Then $E^*$ is closed in $X$.
+
+Example:
+
+$X=\mathbb{R}$
+
+1. $p_n=\frac{1}{n}$, $E^*=\{0\}$. (Specifically, if $p_n\to p$, then $E^*\to \{p\}$)
+2. $p_n=\begin{cases}1,n\textup{ is odd}\\ 0,n\textup{ is even}\end{cases}$, $E^*=\{0,1\}$
+3. $p_n=n$, $E^*=\phi$
+4. $p_n=\sin nx$, $E^*=\{0,1\}$
+5. $p_n=\sin n$, $E^*=[0,1]$
diff --git a/pages/Math4111/Math4111_L16.md b/content/Math4111/Math4111_L16.md
similarity index 97%
rename from pages/Math4111/Math4111_L16.md
rename to content/Math4111/Math4111_L16.md
index 62780b6..1eb2481 100644
--- a/pages/Math4111/Math4111_L16.md
+++ b/content/Math4111/Math4111_L16.md
@@ -1,152 +1,152 @@
-# Lecture 16
-
-## Review
-
-Let $(s_n)$ be a sequence in $\mathbb{R}$ satisfying the following properties:
-
-1. It is bounded ($\exists M>0$ such that $\forall n\in \mathbb{N}, |s_n|\leq M$)
-2. It is monotonic increasing ($\forall n\in \mathbb{N}, s_n\leq s_{n+1}$)
-
-Let $E=\{s_n:n\in \mathbb{N}\}$ and $t=sup E$. Prove that $s_n\to t$. [Hint: The proof begins with "Let $\epsilon>0$ be arbitrary." What do we know about $t-\epsilon$?]
-
-Proof:
-
-Let $\epsilon>0$ be arbitrary. Then since $t-\epsilon$ is not an upper bound of $E$, $\exists N$ such that $t-\epsilont-\epsilon$. Since $t$ is an upper bound of $E$, $s_nn_1$ (by definition of $E^*$. If $x_2\in E^*$, then there are infinitely many $p\in \mathbb{N}$ such that $p_n\in B_{1/2}(x_2)$).
-
-Since $x_2\in E^*$, $\exists n_2\in \mathbb{N}$ such that $p_{n_2}\in B_{1/2}(x_2)$.
-
-By triangle inequality, $d(p_{n_2},q)\leq d(p_{n_2},x_2)+d(x_2,q)<\frac{1}{2}+\frac{1}{2}=1$.
-
-Step 3: By induction, we can get a sequence $n_1,n_2,\cdots$ such that $\forall i\in \mathbb{N}, d(p_{n_i},q)<\frac{2}{i}$.
-
-Then $(p_{n_i})$ is a subsequence of $(p_n)$ and $p_{n_i}\to q$.
-
-QED
-
-### Cauchy Sequences
-
-#### Definition 3.8
-
-A sequence $(p_n)$ in a metric space $X$ is called a Cauchy sequence if for every $\epsilon>0$, there exists $N\in \mathbb{N}$ such that $\forall m,n\geq N$, $d(p_m,p_n)<\epsilon$.
-
-*The terms are getting closer to each other.*
-
-Example:
-
-$X=\mathbb{Q}$ with the usual metric. Let $(p_n)$ be a sequence
-
-$$
-3,3.1,3.14,3.141,3.1415,\cdots
-$$
-
-If $m\leq n$, $|p_m-p_n|<\frac{1}{10^{m}}$.
-
-Then $(p_n)$ is a Cauchy sequence. Let $\epsilon>0$ be arbitrary. Choose $N$ such that $\frac{1}{10^{N}}>\epsilon$. Then if $m,n\geq N$, then $|p_m-p_n|\leq \frac{1}{10^{m}}<\epsilon$.
-
-This sequence does not converge in $\mathbb{Q}$.
-
-$X=\mathbb{R}$ with the usual metric. Let $(p_n)$ be a sequence
-
-$$
-p_n=1+\frac{1}{2}+\frac{1}{3}+\cdots+\frac{1}{n}
-$$
-
-This sequence is not bounded above. (by Theorem 3.28), so (as we will prove) it is not a Cauchy sequence.
-
-The fact that $p_{n+1}-p_n=\frac{1}{n+1}\to 0$ is not relevant to determining whether $(p_n)$ is a Cauchy sequence.
-
-#### Theorem 3.11 (a)
-
-$(p_n)$ converges $\implies$ $(p_n)$ is a Cauchy sequence.
-
-Proof:
-
-Since $(p_n)$ converges, $\exists p\in X$ such that $p_n\to p$. Let $\epsilon>0$ be arbitrary. Then $\exists N\in \mathbb{N}$ such that $\forall n\geq N$, $d(p_n,p)<\epsilon$.
-
-If $m,n\geq N$, then $d(p_m,p_n)\leq d(p_m,p)+d(p,p_n)<\epsilon+\epsilon=2\epsilon$.
-
-*You can also use $\frac{\epsilon}{2}$ instead of $\epsilon$ in the above proof, just for fun.*
-
-QED
-
-#### Lemma 3.11 (b)
-
-If $(p_n)$ is a Cauchy sequence, then $(p_n)$ is bounded above.
-
-Proof:
-
-Since $(p_n)$ is a Cauchy sequence, $\exists N\in \mathbb{N}$ such that $\forall m,n\geq N$, $d(p_m,p_n)<1$.
-
-Let $r=max\{d(p_i,p_j);1\leq i,j\leq N\}+1$.
-
-Then $\forall n\in \mathbb{N}$, $p_n\in B_r(p_N)$.
-
-QED
-
-> Note: This proof is nearly identical to the proof of convergent sequences implies bounded.
-
-#### Definition 3.9
-
-Let $E$ be a nonempty subset of a metric space $X$, and let $S$ be the set of all real numbers of the form $d(p,q)$ for $p,q\in E$. The diameter of $E$, denoted by $diam E$, is defined to be the supremum of $S$.
-
-Exercise:
-
-Prove that $(p_n)$ is a Cauchy sequence if and only if $\lim_{N\to \infty}diam\{(p_n):n\geq N\}=0$.
-
-#### Theorem 3.10
-
-(a) $diam E=diam(\overline{E})$
-(b) If $K_n$ is a sequence of nonempty compact sets and $K_1\supset K_2\supset \cdots$, then $\bigcap_{n=1}^{\infty}K_n$ has exactly one point.
-
-Proof:
-
-(a) The idea is still, triangle inequality.
-
-Since $E\subset \overline{E}$, $diam E\leq diam(\overline{E})$.
-
-Now we want to show that $diam(\overline{E})\leq diam E$.
-
-Claim: $\forall \epsilon>0$, $2\epsilon+diam E$ is an upper bound of $\{d(p,q):p,q\in \overline{E}\}$.
-
-Let $p,q\in \overline{E}$.
-
-Since $p\in \overline{E}$, $\exists p'\in E\cap B_\epsilon(p)$.
-
-Since $q\in \overline{E}$, $\exists q'\in E\cap B_\epsilon(q)$.
-
-Then $d(p,q)\leq d(p,p')+d(p',q')+d(q',q)<\epsilon+diam E+\epsilon=diam E+2\epsilon$.
-
-This proves the claim.
-
-By definition of supremum, the claim implies that $\forall \epsilon>0$, $diam(\overline{E})\leq 2\epsilon+diam E$. So $diam(\overline{E})\leq diam E$.
-
-(b) By **Theorem 2.36**, $\bigcap_{n=1}^{\infty}K_n\neq \phi$. Suppose for contradiction that there are at least two distinct points $p,q\in \bigcap_{n=1}^{\infty}K_n$. Then for all $n\in \mathbb{N}$, $x,y\in K_n$ so $diam K_n\geq d(p,q)>0$. Then diameter of $K_n$ does not converge to 0.
-
-QED
-
+# Lecture 16
+
+## Review
+
+Let $(s_n)$ be a sequence in $\mathbb{R}$ satisfying the following properties:
+
+1. It is bounded ($\exists M>0$ such that $\forall n\in \mathbb{N}, |s_n|\leq M$)
+2. It is monotonic increasing ($\forall n\in \mathbb{N}, s_n\leq s_{n+1}$)
+
+Let $E=\{s_n:n\in \mathbb{N}\}$ and $t=sup E$. Prove that $s_n\to t$. [Hint: The proof begins with "Let $\epsilon>0$ be arbitrary." What do we know about $t-\epsilon$?]
+
+Proof:
+
+Let $\epsilon>0$ be arbitrary. Then since $t-\epsilon$ is not an upper bound of $E$, $\exists N$ such that $t-\epsilont-\epsilon$. Since $t$ is an upper bound of $E$, $s_nn_1$ (by definition of $E^*$. If $x_2\in E^*$, then there are infinitely many $p\in \mathbb{N}$ such that $p_n\in B_{1/2}(x_2)$).
+
+Since $x_2\in E^*$, $\exists n_2\in \mathbb{N}$ such that $p_{n_2}\in B_{1/2}(x_2)$.
+
+By triangle inequality, $d(p_{n_2},q)\leq d(p_{n_2},x_2)+d(x_2,q)<\frac{1}{2}+\frac{1}{2}=1$.
+
+Step 3: By induction, we can get a sequence $n_1,n_2,\cdots$ such that $\forall i\in \mathbb{N}, d(p_{n_i},q)<\frac{2}{i}$.
+
+Then $(p_{n_i})$ is a subsequence of $(p_n)$ and $p_{n_i}\to q$.
+
+QED
+
+### Cauchy Sequences
+
+#### Definition 3.8
+
+A sequence $(p_n)$ in a metric space $X$ is called a Cauchy sequence if for every $\epsilon>0$, there exists $N\in \mathbb{N}$ such that $\forall m,n\geq N$, $d(p_m,p_n)<\epsilon$.
+
+*The terms are getting closer to each other.*
+
+Example:
+
+$X=\mathbb{Q}$ with the usual metric. Let $(p_n)$ be a sequence
+
+$$
+3,3.1,3.14,3.141,3.1415,\cdots
+$$
+
+If $m\leq n$, $|p_m-p_n|<\frac{1}{10^{m}}$.
+
+Then $(p_n)$ is a Cauchy sequence. Let $\epsilon>0$ be arbitrary. Choose $N$ such that $\frac{1}{10^{N}}>\epsilon$. Then if $m,n\geq N$, then $|p_m-p_n|\leq \frac{1}{10^{m}}<\epsilon$.
+
+This sequence does not converge in $\mathbb{Q}$.
+
+$X=\mathbb{R}$ with the usual metric. Let $(p_n)$ be a sequence
+
+$$
+p_n=1+\frac{1}{2}+\frac{1}{3}+\cdots+\frac{1}{n}
+$$
+
+This sequence is not bounded above. (by Theorem 3.28), so (as we will prove) it is not a Cauchy sequence.
+
+The fact that $p_{n+1}-p_n=\frac{1}{n+1}\to 0$ is not relevant to determining whether $(p_n)$ is a Cauchy sequence.
+
+#### Theorem 3.11 (a)
+
+$(p_n)$ converges $\implies$ $(p_n)$ is a Cauchy sequence.
+
+Proof:
+
+Since $(p_n)$ converges, $\exists p\in X$ such that $p_n\to p$. Let $\epsilon>0$ be arbitrary. Then $\exists N\in \mathbb{N}$ such that $\forall n\geq N$, $d(p_n,p)<\epsilon$.
+
+If $m,n\geq N$, then $d(p_m,p_n)\leq d(p_m,p)+d(p,p_n)<\epsilon+\epsilon=2\epsilon$.
+
+*You can also use $\frac{\epsilon}{2}$ instead of $\epsilon$ in the above proof, just for fun.*
+
+QED
+
+#### Lemma 3.11 (b)
+
+If $(p_n)$ is a Cauchy sequence, then $(p_n)$ is bounded above.
+
+Proof:
+
+Since $(p_n)$ is a Cauchy sequence, $\exists N\in \mathbb{N}$ such that $\forall m,n\geq N$, $d(p_m,p_n)<1$.
+
+Let $r=max\{d(p_i,p_j);1\leq i,j\leq N\}+1$.
+
+Then $\forall n\in \mathbb{N}$, $p_n\in B_r(p_N)$.
+
+QED
+
+> Note: This proof is nearly identical to the proof of convergent sequences implies bounded.
+
+#### Definition 3.9
+
+Let $E$ be a nonempty subset of a metric space $X$, and let $S$ be the set of all real numbers of the form $d(p,q)$ for $p,q\in E$. The diameter of $E$, denoted by $diam E$, is defined to be the supremum of $S$.
+
+Exercise:
+
+Prove that $(p_n)$ is a Cauchy sequence if and only if $\lim_{N\to \infty}diam\{(p_n):n\geq N\}=0$.
+
+#### Theorem 3.10
+
+(a) $diam E=diam(\overline{E})$
+(b) If $K_n$ is a sequence of nonempty compact sets and $K_1\supset K_2\supset \cdots$, then $\bigcap_{n=1}^{\infty}K_n$ has exactly one point.
+
+Proof:
+
+(a) The idea is still, triangle inequality.
+
+Since $E\subset \overline{E}$, $diam E\leq diam(\overline{E})$.
+
+Now we want to show that $diam(\overline{E})\leq diam E$.
+
+Claim: $\forall \epsilon>0$, $2\epsilon+diam E$ is an upper bound of $\{d(p,q):p,q\in \overline{E}\}$.
+
+Let $p,q\in \overline{E}$.
+
+Since $p\in \overline{E}$, $\exists p'\in E\cap B_\epsilon(p)$.
+
+Since $q\in \overline{E}$, $\exists q'\in E\cap B_\epsilon(q)$.
+
+Then $d(p,q)\leq d(p,p')+d(p',q')+d(q',q)<\epsilon+diam E+\epsilon=diam E+2\epsilon$.
+
+This proves the claim.
+
+By definition of supremum, the claim implies that $\forall \epsilon>0$, $diam(\overline{E})\leq 2\epsilon+diam E$. So $diam(\overline{E})\leq diam E$.
+
+(b) By **Theorem 2.36**, $\bigcap_{n=1}^{\infty}K_n\neq \phi$. Suppose for contradiction that there are at least two distinct points $p,q\in \bigcap_{n=1}^{\infty}K_n$. Then for all $n\in \mathbb{N}$, $x,y\in K_n$ so $diam K_n\geq d(p,q)>0$. Then diameter of $K_n$ does not converge to 0.
+
+QED
+
diff --git a/pages/Math4111/Math4111_L17.md b/content/Math4111/Math4111_L17.md
similarity index 97%
rename from pages/Math4111/Math4111_L17.md
rename to content/Math4111/Math4111_L17.md
index eaa03e8..18b07e5 100644
--- a/pages/Math4111/Math4111_L17.md
+++ b/content/Math4111/Math4111_L17.md
@@ -1,123 +1,123 @@
-# Lecture 17
-
-## Review
-
-Given a sequence $(a_n)$ in $\mathbb{R}$, let $E_n=\{a_k:k\geq n\}$. Calculate $diam E_1$, $diam E_2$, $diam E_3$... for the following sequences:
-
-1. $a_n=0$: $E_n=\{0\}$, $$diam E_1=0, diam E_2=0, diam E_3=0, \ldots$$
-2. $a_n=n$: $E_n=\{n\}$, $$diam E_1=\infty, diam E_2=\infty, diam E_3=\infty, \ldots$$
-3. $a_n=(-1)^n$: $E_n=\{-1,1\}$, $$diam E_1=2, diam E_2=2, diam E_3=2, \ldots$$
-4. $a_n=1/n$: $E_n=\{1/n,1/(n+1),\dots\}$, $$diam E_1=\frac{1}{2}, diam E_2=\frac{1}{3}, diam E_3=\frac{1}{4}, \ldots$$
-5. $a_n=\frac{(-1)^n}{n}$: $E_n=\{-1/n,1/n,\dots\}$, $$diam E_1=\frac{1}{1}+\frac{1}{2}, diam E_2=\frac{1}{2}+\frac{1}{3}, diam E_3=\frac{1}{3}+\frac{1}{4}, \ldots$$
-
-## New materials
-
-### Cauchy sequence
-
-#### Theorem 3.11
-
-(b) If $X$ is a compact metric space, then every Cauchy sequence $(p_n)$ in $X$ converges.
-
-(c) In $\mathbb{R}^k$, every Cauchy sequence $(p_n)$ converges.
-
-Proof:
-
-(b) Let $E_N=\{p_n:n\geq N\}$. Since $(p_n)$ is Cauchy, $\lim_{N\to\infty} diam E_N=0$. By **Theorem 3.10 (a)**, $\lim_{N\to\infty} diam \overline{E_N}=0$.
-
-Since $X$ is compact, and $\overline{E_N}$ is closed, by **Theorem 2.35**, $\overline{E_N}$ is compact.
-
-Since $E_1\supset E_2\supset E_3\supset\cdots$, $\overline{E_1}\supset \overline{E_2}\supset \overline{E_3}\supset\cdots$. By **Theorem 3.10(b)**, $\exists p\in X$ such that $p\in\bigcap_{N=1}^{\infty}\overline{E_N}$.
-
-We claim that $(p_n)$ converges to $p$. Let $\epsilon>0$, there exists $N_0$ such that $\forall N\geq N_0$, $diam \overline{E_N}<\epsilon$.
-
-For any $n\geq N_0$, $p_n\in \overline{E_{N_0}}$.
-
-So $d(p_n,p)\leq diam \overline{E_{N_0}}<\epsilon$, by definition of diameter.
-
-Therefore, $(p_n)$ converges to $p$.
-
-(c) Let $(p_n)$ be a Cauchy sequence in $\mathbb{R}^k$.
-
-By **Theorem 3.9**, $(p_n)$ is bounded. So $\exists R>0$ such that $p_n\in B(0,R)$ for all $n$. Moreover $p_n\in \overline{B(0,R)}$. and $\overline{B(0,R)}$ is closed and bounded. Thus by **Theorem 2.41**, $\overline{B(0,R)}$ is compact.
-
-Note that **Theorem 2.41** only works for $\mathbb{R}^k$.
-
-So by (b), $(p_n)$ converges to some $p\in \overline{B(0,R)}$.
-
-QED
-
-#### Definition 3.12
-
-Let $X$ be a metric space. We say $X$ is **complete** if every Cauchy sequence in $X$ converges.
-
-**Theorem 3.11(b)** can also be rephrased as:
-
-$X$ is a compact metric space $\implies$ $X$ is complete.
-
-**Theorem 3.11(c)** can also be rephrased as:
-
-$\mathbb{R}^k$ is complete.
-
-> Note: completeness is a property of the "universe" $X$, not a property of any particular sequence in $X$.
-
-$\mathbb{Q}$ is not complete. $\{3,3.1,3.14,3.141,3.1415,\dots\}$ is a Cauchy sequence in $\mathbb{Q}$ but it does not converge in $\mathbb{Q}$.
-
-Fact: If $X$ is complete and $E$ is a closed subset of $X$, then $E$ is complete.
-
-#### Definition 3.13
-
-A sequence $(s_n)$ of real numbers is said to be
-
-- **monotone increasing** if $s_n\leq s_{n+1}$ for all $n$.
-- **monotone decreasing** if $s_n\geq s_{n+1}$ for all $n$.
-- **strictly monotone increasing** if $s_ns_{n+1}$ for all $n$.
-- **monotone** if it is either monotone increasing or monotone decreasing.
-
-Example:
-
-1. $s_n=1/n$ is strictly monotone decreasing.
-2. $s_n=(-1)^n$ is neither monotone increasing nor monotone decreasing.
-
-#### Theorem 3.14
-
-Suppose $(s_n)$ is monotonic. Then $(s_n)$ converges $\iff$ $(s_n)$ is bounded.
-
-Proof:
-
-If $(s_n)$ is monotonic and bounded, then by previous result, $(s_n)$ converges.
-
-If $(s_n)$ is monotonic and converges, then by **Theorem 3.2(c)**, $(s_n)$ is bounded.
-
-QED
-
-### Upper and lower limits
-
-#### Definition 3.15 (Divergence to $\infty$ or $-\infty$)
-
-Let $(s_n)$ be a sequence of real numbers with the following properties:
-
-For every real number $M$ there is an integer $N$ such that $n\geq N$ implies $s_n>M$. We then write $s_n\to\infty$
-
-For every real number $M$ there is an integer $N$ such that $n\geq N$ implies $s_n0$, there exists $N_0$ such that $\forall N\geq N_0$, $diam \overline{E_N}<\epsilon$.
+
+For any $n\geq N_0$, $p_n\in \overline{E_{N_0}}$.
+
+So $d(p_n,p)\leq diam \overline{E_{N_0}}<\epsilon$, by definition of diameter.
+
+Therefore, $(p_n)$ converges to $p$.
+
+(c) Let $(p_n)$ be a Cauchy sequence in $\mathbb{R}^k$.
+
+By **Theorem 3.9**, $(p_n)$ is bounded. So $\exists R>0$ such that $p_n\in B(0,R)$ for all $n$. Moreover $p_n\in \overline{B(0,R)}$. and $\overline{B(0,R)}$ is closed and bounded. Thus by **Theorem 2.41**, $\overline{B(0,R)}$ is compact.
+
+Note that **Theorem 2.41** only works for $\mathbb{R}^k$.
+
+So by (b), $(p_n)$ converges to some $p\in \overline{B(0,R)}$.
+
+QED
+
+#### Definition 3.12
+
+Let $X$ be a metric space. We say $X$ is **complete** if every Cauchy sequence in $X$ converges.
+
+**Theorem 3.11(b)** can also be rephrased as:
+
+$X$ is a compact metric space $\implies$ $X$ is complete.
+
+**Theorem 3.11(c)** can also be rephrased as:
+
+$\mathbb{R}^k$ is complete.
+
+> Note: completeness is a property of the "universe" $X$, not a property of any particular sequence in $X$.
+
+$\mathbb{Q}$ is not complete. $\{3,3.1,3.14,3.141,3.1415,\dots\}$ is a Cauchy sequence in $\mathbb{Q}$ but it does not converge in $\mathbb{Q}$.
+
+Fact: If $X$ is complete and $E$ is a closed subset of $X$, then $E$ is complete.
+
+#### Definition 3.13
+
+A sequence $(s_n)$ of real numbers is said to be
+
+- **monotone increasing** if $s_n\leq s_{n+1}$ for all $n$.
+- **monotone decreasing** if $s_n\geq s_{n+1}$ for all $n$.
+- **strictly monotone increasing** if $s_ns_{n+1}$ for all $n$.
+- **monotone** if it is either monotone increasing or monotone decreasing.
+
+Example:
+
+1. $s_n=1/n$ is strictly monotone decreasing.
+2. $s_n=(-1)^n$ is neither monotone increasing nor monotone decreasing.
+
+#### Theorem 3.14
+
+Suppose $(s_n)$ is monotonic. Then $(s_n)$ converges $\iff$ $(s_n)$ is bounded.
+
+Proof:
+
+If $(s_n)$ is monotonic and bounded, then by previous result, $(s_n)$ converges.
+
+If $(s_n)$ is monotonic and converges, then by **Theorem 3.2(c)**, $(s_n)$ is bounded.
+
+QED
+
+### Upper and lower limits
+
+#### Definition 3.15 (Divergence to $\infty$ or $-\infty$)
+
+Let $(s_n)$ be a sequence of real numbers with the following properties:
+
+For every real number $M$ there is an integer $N$ such that $n\geq N$ implies $s_n>M$. We then write $s_n\to\infty$
+
+For every real number $M$ there is an integer $N$ such that $n\geq N$ implies $s_n2\}$
-2. $\{n\in\mathbb{N}:s_n<2\}$
-3. $\{n\in\mathbb{N}:s_n>0\}$
-4. $\{n\in\mathbb{N}:s_n<0\}$
-
-For each set, determine if the set $(1)$ must be infinite, or $(2)$ must be finite, or $(3)$ could be either finite or infinite, depending on the sequence $(s_n)$.
-
-If $\liminf_{n\to\infty} s_n=1$, then $\lim_{n\to\infty} \sup\{s_n,s_{n+1},s_{n+2},\dots\}=1$.
-
-So 1 must be finite, since if it is infinite, then $\limsup_{n\to\infty} s_n\geq 2$, which contradicts the given $\limsup_{n\to\infty} s_n=1$.
-
-2 and 3 are infinite.
-
-since $\liminf_{n\to\infty} s_n=1$, there exists infinitely many $n$ such that $2>s_n>0$.
-
-4 could be either finite or infinite.
-
-- $s_n=(-1)^n$ is example for 4 being infinite.
-- $s_n=1$ is example for 4 being finite.
-
-## Continue on Limit Superior and Limit Inferior
-
-### Limit Superior
-
-#### Definition 3.16
-
-Let $(s_n)$ **be a sequence of real numbers**.
-
-$S^*$ is the largest possible value that a subsequence of $(s_n)$ can converge to.
-
-(Normally, we need to be careful about the definition of "largest possible value", but in this case it does exist by **Theorem 3.7**.)
-
-Abbott's definition:
-
-$S^*=\limsup_{n\to\infty}\{s_k:k\geq n\}$.
-
-#### Theorem 3.17
-
-Let $(s_n)$ **be a sequence of real numbers**.
-
-$S^*$ is the unique number satisfying the following:
-
-1. $\forall xS^*$, $\{n\in\mathbb{N}:s_n\geq x\}$ is finite. (same as saying $\exists N\in\mathbb{N}$ such that $n\geq N\implies s_n Normal squeeze theorem: If $s_n\leq t_n\leq u_n$ for all $n\in\mathbb{N}$, and $\lim_{n\to\infty} s_n=\lim_{n\to\infty} u_n=L$, then $\lim_{n\to\infty} t_n=L$.
->
-> Proof: Exercise, hint: $u_n\to L\implies \limsup_{n\to\infty} u_n=\liminf_{n\to\infty} u_n=L$.
-
-#### Theorem 3.20
-
-> Binomial theorem: $(1+x)^n=\sum_{k=0}^n\binom{n}{k}x^k$.
-
-Special sequences:
-
-(a) If $p>0$, then $\lim_{n\to\infty}\frac{1}{n^p}=0$.
-
-We want to find $\frac{1}{n^p}<\epsilon\iff n\geq\frac{1}{\epsilon^{1/p}}$.
-
-(b) If $p>0$, then $\lim_{n\to\infty}\sqrt[n]{p}=1$.
-
-We want to find $\sqrt[n]{p}-1<\epsilon\iff p<(1+\epsilon)^n$.
-
-> Bernoulli's inequality: for $\epsilon>0,n\in\mathbb{N}$, $(1+\epsilon)^n\geq 1+n\epsilon$.
-
-So it's enough to have $p<1+n\epsilon$
-
-So we can choose $N>\frac{p-1}{\epsilon}$.
-
-Another way of writing this: Let $x_n=\sqrt[n]{p}-1$.
-
-Then $p=(1+x_n)^n\geq 1+nx_n$.
-
-So $0\leq x_n\leq\frac{p-1}{n}$.
-
-By the squeeze theorem, $x_n\to 0$.s
-
-(c) $\lim_{n\to\infty}\sqrt[n]{n}=1$.
-
-We want to find $\sqrt[n]{n}-1<\epsilon\iff n<(1+\epsilon)^n$. (this will not work for bernoulli's inequality)
-
-So it's enough to have $n<\frac{n(n-1)}{2}\epsilon^2\iff n>1+\frac{2}{\epsilon^2}$. So choose $N>1+\frac{2}{\epsilon^2}$.
-
-(d) If $p>0$ and $\alpha$ is real, then $\lim_{n\to\infty}\frac{n^\alpha}{(1+p)^n}=0$.
-
-With binomial theorem, $(1+p)^n\geq \binom{n}{k}p^k(k\leq n)$.
-
-$\binom{n}{k}=\frac{n(n-1)(n-2)\cdots(n-k+1)}{k!}$.
-
-If $n\geq 2k$, then $n-k+1\geq n-\frac{n}{2}+1\geq\frac{n}{2}$.
-
-So $\binom{n}{k}\geq\frac{(n/2)^k}{k!}$.
-
-Continue on next class.
+# Lecture 18
+
+## Review
+
+Let $(s_n)$ be a sequence in $\mathbb{R}$, and suppose $\limsup_{n\to\infty} s_n=1$. Consider the following four sets:
+
+1. $\{n\in\mathbb{N}:s_n>2\}$
+2. $\{n\in\mathbb{N}:s_n<2\}$
+3. $\{n\in\mathbb{N}:s_n>0\}$
+4. $\{n\in\mathbb{N}:s_n<0\}$
+
+For each set, determine if the set $(1)$ must be infinite, or $(2)$ must be finite, or $(3)$ could be either finite or infinite, depending on the sequence $(s_n)$.
+
+If $\liminf_{n\to\infty} s_n=1$, then $\lim_{n\to\infty} \sup\{s_n,s_{n+1},s_{n+2},\dots\}=1$.
+
+So 1 must be finite, since if it is infinite, then $\limsup_{n\to\infty} s_n\geq 2$, which contradicts the given $\limsup_{n\to\infty} s_n=1$.
+
+2 and 3 are infinite.
+
+since $\liminf_{n\to\infty} s_n=1$, there exists infinitely many $n$ such that $2>s_n>0$.
+
+4 could be either finite or infinite.
+
+- $s_n=(-1)^n$ is example for 4 being infinite.
+- $s_n=1$ is example for 4 being finite.
+
+## Continue on Limit Superior and Limit Inferior
+
+### Limit Superior
+
+#### Definition 3.16
+
+Let $(s_n)$ **be a sequence of real numbers**.
+
+$S^*$ is the largest possible value that a subsequence of $(s_n)$ can converge to.
+
+(Normally, we need to be careful about the definition of "largest possible value", but in this case it does exist by **Theorem 3.7**.)
+
+Abbott's definition:
+
+$S^*=\limsup_{n\to\infty}\{s_k:k\geq n\}$.
+
+#### Theorem 3.17
+
+Let $(s_n)$ **be a sequence of real numbers**.
+
+$S^*$ is the unique number satisfying the following:
+
+1. $\forall xS^*$, $\{n\in\mathbb{N}:s_n\geq x\}$ is finite. (same as saying $\exists N\in\mathbb{N}$ such that $n\geq N\implies s_n Normal squeeze theorem: If $s_n\leq t_n\leq u_n$ for all $n\in\mathbb{N}$, and $\lim_{n\to\infty} s_n=\lim_{n\to\infty} u_n=L$, then $\lim_{n\to\infty} t_n=L$.
+>
+> Proof: Exercise, hint: $u_n\to L\implies \limsup_{n\to\infty} u_n=\liminf_{n\to\infty} u_n=L$.
+
+#### Theorem 3.20
+
+> Binomial theorem: $(1+x)^n=\sum_{k=0}^n\binom{n}{k}x^k$.
+
+Special sequences:
+
+(a) If $p>0$, then $\lim_{n\to\infty}\frac{1}{n^p}=0$.
+
+We want to find $\frac{1}{n^p}<\epsilon\iff n\geq\frac{1}{\epsilon^{1/p}}$.
+
+(b) If $p>0$, then $\lim_{n\to\infty}\sqrt[n]{p}=1$.
+
+We want to find $\sqrt[n]{p}-1<\epsilon\iff p<(1+\epsilon)^n$.
+
+> Bernoulli's inequality: for $\epsilon>0,n\in\mathbb{N}$, $(1+\epsilon)^n\geq 1+n\epsilon$.
+
+So it's enough to have $p<1+n\epsilon$
+
+So we can choose $N>\frac{p-1}{\epsilon}$.
+
+Another way of writing this: Let $x_n=\sqrt[n]{p}-1$.
+
+Then $p=(1+x_n)^n\geq 1+nx_n$.
+
+So $0\leq x_n\leq\frac{p-1}{n}$.
+
+By the squeeze theorem, $x_n\to 0$.s
+
+(c) $\lim_{n\to\infty}\sqrt[n]{n}=1$.
+
+We want to find $\sqrt[n]{n}-1<\epsilon\iff n<(1+\epsilon)^n$. (this will not work for bernoulli's inequality)
+
+So it's enough to have $n<\frac{n(n-1)}{2}\epsilon^2\iff n>1+\frac{2}{\epsilon^2}$. So choose $N>1+\frac{2}{\epsilon^2}$.
+
+(d) If $p>0$ and $\alpha$ is real, then $\lim_{n\to\infty}\frac{n^\alpha}{(1+p)^n}=0$.
+
+With binomial theorem, $(1+p)^n\geq \binom{n}{k}p^k(k\leq n)$.
+
+$\binom{n}{k}=\frac{n(n-1)(n-2)\cdots(n-k+1)}{k!}$.
+
+If $n\geq 2k$, then $n-k+1\geq n-\frac{n}{2}+1\geq\frac{n}{2}$.
+
+So $\binom{n}{k}\geq\frac{(n/2)^k}{k!}$.
+
+Continue on next class.
diff --git a/pages/Math4111/Math4111_L19.md b/content/Math4111/Math4111_L19.md
similarity index 96%
rename from pages/Math4111/Math4111_L19.md
rename to content/Math4111/Math4111_L19.md
index 68a8f71..b793a63 100644
--- a/pages/Math4111/Math4111_L19.md
+++ b/content/Math4111/Math4111_L19.md
@@ -1,194 +1,194 @@
-# Lecture 19
-
-## Review
-
-> Binomial theorem: For $n\in\mathbb{N}$,
-> $$(a+b)^n=\sum_{k=0}^{n}\binom{n}{k}a^{n-k}b^k$$
-
-1. Show that $2^n\geq \binom{n}{4}$ for all $n\geq 4$. (Hint: Expand $(1+1)^n$ using the binomial theorem)
- Proof:
- $$
- \begin{aligned}
- (1+1)^n&=\sum_{k=0}^{n}\binom{n}{k}1^{n-k}1^k\\
- &=\sum_{k=0}^{n}\binom{n}{k}\\
- &=\binom{n}{0}+\binom{n}{1}+\cdots+\binom{n}{n}\\
- &\geq\binom{n}{4}
- \end{aligned}
- $$
- QED
-2. Using part 1, show that $\lim_{n\to\infty}\frac{n^3}{2^n}=0$.
- Proof:
- $$
- \frac{n^3}{2^n}\leq\frac{n^3}{\binom{n}{4}}
- $$
- The value of $\frac{n^3}{\binom{n}{4}}$ is decreasing when $n\geq 4$.
- QED
-
-## New materials
-
-### Series
-
-#### Definition 3.21
-
-Let $(a_n)_{n=1}^{\infty}$ be a sequence in $\mathbb{C}$. Let $s_n=\sum_{k=1}^{n}a_k$ denotes the sequence of partial sums.
-
-1. We say the series $\sum_{n=1}^{\infty}a_n$ converges if the sequence of partial sums $(s_n)_{n=1}^{\infty}$ converges.
-2. We define the sum of the series $\sum_{n=1}^{\infty}a_n$ to be the limit of the sequence of partial sums, i.e., $$\sum_{n=1}^{\infty}a_n=\lim_{n\to\infty}s_n=\lim_{n\to\infty}\sum_{k=1}^{n}a_k.$$
-
-#### Theorem 3.22 (Cauchy criterion for series)
-
-The series $\sum_{n=1}^{\infty}a_n$ converges if and only if for every $\epsilon>0$, there exists $N\in\mathbb{N}$ such that for all $m,n\in\mathbb{N}$ with $m\geq n\geq N$,
-$$
-\left|\sum_{k=n}^{m}a_k\right|<\epsilon.
-$$
-
-Proof:
-
-$\sum_{n=1}^{\infty}a_n$ converges if and only if $(s_n)_{n=1}^{\infty}$ converges.
-
-Since $\mathbb{C}$ is complete, $(s_n)_{n=1}^{\infty}$ converges if and only if $(s_n)_{n=1}^{\infty}$ is Cauchy.
-
-Since $(s_n)_{n=1}^{\infty}$ is Cauchy, for every $\epsilon>0$, there exists $N\in\mathbb{N}$ such that for all $m,n\in\mathbb{N}$ with $m\geq n\geq N$,
-$$
-|s_m-s_n|=\left|\sum_{k=n}^{m}a_k\right|<\epsilon.
-$$
-
-QED
-
-Special case of this theorem.
-
-#### Corollary 3.23
-
-If $\sum_{n=1}^{\infty}a_n$ converges, then $\lim_{n\to\infty}a_n=0$.
-
-Note: the converse is not true. Example: $\sum_{n=1}^{\infty}\frac{1}{n}$ diverges.
-
-The contrapositive of this corollary is: If $\lim_{n\to\infty}a_n\neq 0$, then $\sum_{n=1}^{\infty}a_n$ diverges. It is useful naming as ``n-th term test for divergence''.
-
-Observe:
-
-$\forall n,a_n\geq 0$
-
-$(a_n)$ is a non-negative sequence if and only if $(s_n)_{n=1}^{\infty}$ is increasing sequence.
-
-So if $(a_n)$ is a non-negative sequence, then $\sum_{n=1}^{\infty}a_n$ converges if and only if $(s_n)_{n=1}^{\infty}$ is bounded above.
-
-#### Theorem 3.25 (Comparison test)
-
-Let $(a_n)$ be a sequence in $\mathbb{C}$ and $(c_n)$ be a non-negative sequence in $\mathbb{R}$. Suppose $\forall n, |a_n|\leq c_n$.
-
-(a) If the series $\sum_{n=1}^{\infty}c_n$ converges, then the series $\sum_{n=1}^{\infty}a_n$ converges.
-(b) If the series $\sum_{n=1}^{\infty}a_n$ diverges, then the series $\sum_{n=1}^{\infty}c_n$ diverges.
-
-Proof:
-
-(a) By **Theorem 3.22**, it's enough to show that for every $\epsilon>0$, there exists $N\in\mathbb{N}$ such that for all $m,n\in\mathbb{N}$ with $m\geq n\geq N$,
-$$
-\left|\sum_{k=n}^{m}a_k\right|<\epsilon.
-$$
-
-Let $\epsilon>0$ be arbitrary.
-
-Since $\sum_{n=1}^{\infty}c_n$ converges, by **Theorem 3.22**, for the above $\epsilon$, there exists $N\in\mathbb{N}$ such that for all $m,n\in\mathbb{N}$ with $m\geq n\geq N$,
-$$
-\left|\sum_{k=n}^{m}c_k\right|\leq \sum_{k=n}^{m}c_k<\epsilon.
-$$
-
-QED
-
-#### Theorem 3.26 (Geometric series)
-
-Let $x\in\mathbb{C}$.
-
-(a) If $|x|<1$, then the series $\sum_{n=0}^{\infty}x^n$ converges and $\sum_{n=0}^{\infty}x^n=\frac{1}{1-x}$.
-(b) If $|x|\geq 1$, then the series $\sum_{n=0}^{\infty}x^n$ diverges.
-
-Proof:
-
-(b) If $|x|\geq 1$, then $x^n$ does not converge to 0. So the series $\sum_{n=0}^{\infty}x^n$ diverges.
-
-(a) Let $s_n=\sum_{k=0}^{n}x^k=1+x+x^2+\cdots+x^n$.
-
-$xs_n=x+x^2+x^3+\cdots+x^n+x^{n+1}=s_n+x^{n+1}$.
-
-So $s_n=\frac{1-x^{n+1}}{1-x}$.
-
-Since $|x|<1$, $x^{n+1}$ converges to 0. So $\lim_{n\to\infty}s_n=\frac{1}{1-x}$.
-
-QED
-
-#### Lemma 3.28
-
-(a) $\sum_{n=0}^{\infty}\frac{1}{n}$ diverges.
-(b) $\sum_{n=0}^{\infty}\frac{1}{n^2}$ converges.
-
-Proof:
-
-(a)
-$$
-\begin{aligned}
-\sum_{n=0}^{\infty}\frac{1}{n}&=\frac{1}{1}+\frac{1}{2}+\left(\frac{1}{3}+\frac{1}{4}\right)+\left(\frac{1}{5}+\frac{1}{6}+\frac{1}{7}+\frac{1}{8}\right)+\cdots\\
-&>\frac{1}{2}+\frac{1}{2}+\left(\frac{1}{4}+\frac{1}{4}\right)+\left(\frac{1}{8}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}\right)+\cdots\\
-&=\frac{1}{2}+\frac{1}{2}+\frac{1}{2}+\frac{1}{2}+\cdots\\
-&=\infty
-\end{aligned}
-$$
-
-(b)
-$$
-\begin{aligned}
-\sum_{n=0}^{\infty}\frac{1}{n^2}&=\frac{1}{1}+\frac{1}{2^2}+\frac{1}{3^2}+\frac{1}{4^2}+\cdots\\
-&<\frac{1}{1}+\left(\frac{1}{2^2}+\frac{1}{2^2}\right)+\left(\frac{1}{4^2}+\cdots+\frac{1}{4^2}\right)+\left(\frac{1}{8^2}+\cdots+\frac{1}{8^2}\right)+\cdots\\
-&=\frac{1}{1}+\frac{2}{2^2}+\frac{4}{4^2}+\frac{8}{8^2}+\cdots\\
-&=\frac{1}{1}+\frac{1}{2^2}+\frac{1}{2^3}+\frac{1}{2^4}+\cdots\\
-&=\frac{1}{1-\frac{1}{2}}\\
-&=\frac{1}{\frac{1}{2}}\\
-&=2
-\end{aligned}
-$$
-
-> Fun fact: $\sum_{n=1}^{\infty}\frac{1}{n^2}=\frac{\pi^2}{6}$.
-
-QED
-
-#### Theorem 3.27 (Cauchy condensation test)
-
-Suppose $(a_n)$ is a non-negative sequence. The series $\sum_{n=1}^{\infty}a_n$ converges if and only if the series $\sum_{k=0}^{\infty}2^ka_{2^k}$ converges.
-
-Proof:
-
-Let $s_n=\sum_{k=1}^{n}a_k$ and $t_k=\sum_{k=0}^{k}2^ka_{2^k}$.
-
-If $n\leq 2^k$, then
-
-$$
-\begin{aligned}
-s_n&=a_1+a_2+\cdots+a_n\\
-&\leq a_1+(a_2+a_3)+(a_4+a_5+\cdots+a_7)+\cdots+(a_{2^k}+a_{2^k+1}+\cdots+a_{2^{k+1}-1})\\
-&\leq a_1+2a_2+4a_4+\cdots+2^ka_{2^k}\\
-&=t_k.
-\end{aligned}
-$$
-
-If $n\geq 2^{k+1}$, then
-
-$$
-\begin{aligned}
-s_n&=a_1+a_2+\cdots+a_n\\
-&\geq a_1+a_2+(a_3+a_4)+(a_5+a_6+\cdots+a_7)+\cdots+(a_{2^k}+a_{2^k+1}+\cdots+a_{2^{k+1}-1})\\
-&\geq a_1+a_2+2a_4+\cdots+2^{k-1}a_{2^k}\\
-&\geq \frac{1}{2}\left(a_1+2a_2+4a_4+\cdots+2^ka_{2^k}\right)\\
-&=\frac{1}{2}t_k.
-\end{aligned}
-$$
-
-We have shown that
-
-- If $n\leq 2^k$, then $s_n\leq t_k$.
-- If $n\geq 2^{k+1}$, then $s_n\geq \frac{1}{2}t_k$.
-
-So $(s_n)_{n=1}^{\infty}$ is a bounded above.
-
-By **Theorem 3.14**, $(s_n)_{n=1}^{\infty}$ converges if and only if $(t_k)_{k=0}^{\infty}$ converges.
-
-QED
+# Lecture 19
+
+## Review
+
+> Binomial theorem: For $n\in\mathbb{N}$,
+> $$(a+b)^n=\sum_{k=0}^{n}\binom{n}{k}a^{n-k}b^k$$
+
+1. Show that $2^n\geq \binom{n}{4}$ for all $n\geq 4$. (Hint: Expand $(1+1)^n$ using the binomial theorem)
+ Proof:
+ $$
+ \begin{aligned}
+ (1+1)^n&=\sum_{k=0}^{n}\binom{n}{k}1^{n-k}1^k\\
+ &=\sum_{k=0}^{n}\binom{n}{k}\\
+ &=\binom{n}{0}+\binom{n}{1}+\cdots+\binom{n}{n}\\
+ &\geq\binom{n}{4}
+ \end{aligned}
+ $$
+ QED
+2. Using part 1, show that $\lim_{n\to\infty}\frac{n^3}{2^n}=0$.
+ Proof:
+ $$
+ \frac{n^3}{2^n}\leq\frac{n^3}{\binom{n}{4}}
+ $$
+ The value of $\frac{n^3}{\binom{n}{4}}$ is decreasing when $n\geq 4$.
+ QED
+
+## New materials
+
+### Series
+
+#### Definition 3.21
+
+Let $(a_n)_{n=1}^{\infty}$ be a sequence in $\mathbb{C}$. Let $s_n=\sum_{k=1}^{n}a_k$ denotes the sequence of partial sums.
+
+1. We say the series $\sum_{n=1}^{\infty}a_n$ converges if the sequence of partial sums $(s_n)_{n=1}^{\infty}$ converges.
+2. We define the sum of the series $\sum_{n=1}^{\infty}a_n$ to be the limit of the sequence of partial sums, i.e., $$\sum_{n=1}^{\infty}a_n=\lim_{n\to\infty}s_n=\lim_{n\to\infty}\sum_{k=1}^{n}a_k.$$
+
+#### Theorem 3.22 (Cauchy criterion for series)
+
+The series $\sum_{n=1}^{\infty}a_n$ converges if and only if for every $\epsilon>0$, there exists $N\in\mathbb{N}$ such that for all $m,n\in\mathbb{N}$ with $m\geq n\geq N$,
+$$
+\left|\sum_{k=n}^{m}a_k\right|<\epsilon.
+$$
+
+Proof:
+
+$\sum_{n=1}^{\infty}a_n$ converges if and only if $(s_n)_{n=1}^{\infty}$ converges.
+
+Since $\mathbb{C}$ is complete, $(s_n)_{n=1}^{\infty}$ converges if and only if $(s_n)_{n=1}^{\infty}$ is Cauchy.
+
+Since $(s_n)_{n=1}^{\infty}$ is Cauchy, for every $\epsilon>0$, there exists $N\in\mathbb{N}$ such that for all $m,n\in\mathbb{N}$ with $m\geq n\geq N$,
+$$
+|s_m-s_n|=\left|\sum_{k=n}^{m}a_k\right|<\epsilon.
+$$
+
+QED
+
+Special case of this theorem.
+
+#### Corollary 3.23
+
+If $\sum_{n=1}^{\infty}a_n$ converges, then $\lim_{n\to\infty}a_n=0$.
+
+Note: the converse is not true. Example: $\sum_{n=1}^{\infty}\frac{1}{n}$ diverges.
+
+The contrapositive of this corollary is: If $\lim_{n\to\infty}a_n\neq 0$, then $\sum_{n=1}^{\infty}a_n$ diverges. It is useful naming as ``n-th term test for divergence''.
+
+Observe:
+
+$\forall n,a_n\geq 0$
+
+$(a_n)$ is a non-negative sequence if and only if $(s_n)_{n=1}^{\infty}$ is increasing sequence.
+
+So if $(a_n)$ is a non-negative sequence, then $\sum_{n=1}^{\infty}a_n$ converges if and only if $(s_n)_{n=1}^{\infty}$ is bounded above.
+
+#### Theorem 3.25 (Comparison test)
+
+Let $(a_n)$ be a sequence in $\mathbb{C}$ and $(c_n)$ be a non-negative sequence in $\mathbb{R}$. Suppose $\forall n, |a_n|\leq c_n$.
+
+(a) If the series $\sum_{n=1}^{\infty}c_n$ converges, then the series $\sum_{n=1}^{\infty}a_n$ converges.
+(b) If the series $\sum_{n=1}^{\infty}a_n$ diverges, then the series $\sum_{n=1}^{\infty}c_n$ diverges.
+
+Proof:
+
+(a) By **Theorem 3.22**, it's enough to show that for every $\epsilon>0$, there exists $N\in\mathbb{N}$ such that for all $m,n\in\mathbb{N}$ with $m\geq n\geq N$,
+$$
+\left|\sum_{k=n}^{m}a_k\right|<\epsilon.
+$$
+
+Let $\epsilon>0$ be arbitrary.
+
+Since $\sum_{n=1}^{\infty}c_n$ converges, by **Theorem 3.22**, for the above $\epsilon$, there exists $N\in\mathbb{N}$ such that for all $m,n\in\mathbb{N}$ with $m\geq n\geq N$,
+$$
+\left|\sum_{k=n}^{m}c_k\right|\leq \sum_{k=n}^{m}c_k<\epsilon.
+$$
+
+QED
+
+#### Theorem 3.26 (Geometric series)
+
+Let $x\in\mathbb{C}$.
+
+(a) If $|x|<1$, then the series $\sum_{n=0}^{\infty}x^n$ converges and $\sum_{n=0}^{\infty}x^n=\frac{1}{1-x}$.
+(b) If $|x|\geq 1$, then the series $\sum_{n=0}^{\infty}x^n$ diverges.
+
+Proof:
+
+(b) If $|x|\geq 1$, then $x^n$ does not converge to 0. So the series $\sum_{n=0}^{\infty}x^n$ diverges.
+
+(a) Let $s_n=\sum_{k=0}^{n}x^k=1+x+x^2+\cdots+x^n$.
+
+$xs_n=x+x^2+x^3+\cdots+x^n+x^{n+1}=s_n+x^{n+1}$.
+
+So $s_n=\frac{1-x^{n+1}}{1-x}$.
+
+Since $|x|<1$, $x^{n+1}$ converges to 0. So $\lim_{n\to\infty}s_n=\frac{1}{1-x}$.
+
+QED
+
+#### Lemma 3.28
+
+(a) $\sum_{n=0}^{\infty}\frac{1}{n}$ diverges.
+(b) $\sum_{n=0}^{\infty}\frac{1}{n^2}$ converges.
+
+Proof:
+
+(a)
+$$
+\begin{aligned}
+\sum_{n=0}^{\infty}\frac{1}{n}&=\frac{1}{1}+\frac{1}{2}+\left(\frac{1}{3}+\frac{1}{4}\right)+\left(\frac{1}{5}+\frac{1}{6}+\frac{1}{7}+\frac{1}{8}\right)+\cdots\\
+&>\frac{1}{2}+\frac{1}{2}+\left(\frac{1}{4}+\frac{1}{4}\right)+\left(\frac{1}{8}+\frac{1}{8}+\frac{1}{8}+\frac{1}{8}\right)+\cdots\\
+&=\frac{1}{2}+\frac{1}{2}+\frac{1}{2}+\frac{1}{2}+\cdots\\
+&=\infty
+\end{aligned}
+$$
+
+(b)
+$$
+\begin{aligned}
+\sum_{n=0}^{\infty}\frac{1}{n^2}&=\frac{1}{1}+\frac{1}{2^2}+\frac{1}{3^2}+\frac{1}{4^2}+\cdots\\
+&<\frac{1}{1}+\left(\frac{1}{2^2}+\frac{1}{2^2}\right)+\left(\frac{1}{4^2}+\cdots+\frac{1}{4^2}\right)+\left(\frac{1}{8^2}+\cdots+\frac{1}{8^2}\right)+\cdots\\
+&=\frac{1}{1}+\frac{2}{2^2}+\frac{4}{4^2}+\frac{8}{8^2}+\cdots\\
+&=\frac{1}{1}+\frac{1}{2^2}+\frac{1}{2^3}+\frac{1}{2^4}+\cdots\\
+&=\frac{1}{1-\frac{1}{2}}\\
+&=\frac{1}{\frac{1}{2}}\\
+&=2
+\end{aligned}
+$$
+
+> Fun fact: $\sum_{n=1}^{\infty}\frac{1}{n^2}=\frac{\pi^2}{6}$.
+
+QED
+
+#### Theorem 3.27 (Cauchy condensation test)
+
+Suppose $(a_n)$ is a non-negative sequence. The series $\sum_{n=1}^{\infty}a_n$ converges if and only if the series $\sum_{k=0}^{\infty}2^ka_{2^k}$ converges.
+
+Proof:
+
+Let $s_n=\sum_{k=1}^{n}a_k$ and $t_k=\sum_{k=0}^{k}2^ka_{2^k}$.
+
+If $n\leq 2^k$, then
+
+$$
+\begin{aligned}
+s_n&=a_1+a_2+\cdots+a_n\\
+&\leq a_1+(a_2+a_3)+(a_4+a_5+\cdots+a_7)+\cdots+(a_{2^k}+a_{2^k+1}+\cdots+a_{2^{k+1}-1})\\
+&\leq a_1+2a_2+4a_4+\cdots+2^ka_{2^k}\\
+&=t_k.
+\end{aligned}
+$$
+
+If $n\geq 2^{k+1}$, then
+
+$$
+\begin{aligned}
+s_n&=a_1+a_2+\cdots+a_n\\
+&\geq a_1+a_2+(a_3+a_4)+(a_5+a_6+\cdots+a_7)+\cdots+(a_{2^k}+a_{2^k+1}+\cdots+a_{2^{k+1}-1})\\
+&\geq a_1+a_2+2a_4+\cdots+2^{k-1}a_{2^k}\\
+&\geq \frac{1}{2}\left(a_1+2a_2+4a_4+\cdots+2^ka_{2^k}\right)\\
+&=\frac{1}{2}t_k.
+\end{aligned}
+$$
+
+We have shown that
+
+- If $n\leq 2^k$, then $s_n\leq t_k$.
+- If $n\geq 2^{k+1}$, then $s_n\geq \frac{1}{2}t_k$.
+
+So $(s_n)_{n=1}^{\infty}$ is a bounded above.
+
+By **Theorem 3.14**, $(s_n)_{n=1}^{\infty}$ converges if and only if $(t_k)_{k=0}^{\infty}$ converges.
+
+QED
diff --git a/pages/Math4111/Math4111_L2.md b/content/Math4111/Math4111_L2.md
similarity index 97%
rename from pages/Math4111/Math4111_L2.md
rename to content/Math4111/Math4111_L2.md
index 0dc1416..68127d7 100644
--- a/pages/Math4111/Math4111_L2.md
+++ b/content/Math4111/Math4111_L2.md
@@ -1,106 +1,106 @@
-# Lecture 2
-
-Ordered sets, least upper bounds and fields.
-
-## Warm up
-
-(a) The statements says: $\forall a\in A, \exists s\in a$ such that $s\geq 7$.
-
-The negation is $\exist a\in A,\forall s\in a$, such that $s<7$.
-
-## Ordered sets
-
-Let $S$ be a set. An order on $S$ is a relation satisfying:
-
-1. "trichotomy". If $x,y\in S$, then exactly on eof the these statements are hold: $xy$.
-2. "transitivity". If $x,y,z\in S$, then $x \beta$
- * So this statement is true for any rational numbers since $\cancel{\exist} a\in E$ such that $x>\beta$.
-
-### Definition 1.8
-
-Least upper bound, LUB, supremum, SUP
-
-Let $S$ be an ordered set and $E\subset S$. We say $\alpha\in S$ is the LUB of $E$ if
-
-1. $\alpha$ is the UB of $E$. ($\forall x\in E,x\leq \alpha$)
-2. if $\gamma<\alpha$, then $\gamma$ is not UB of $E$. ($\forall \gamma <\alpha, \exist x\in E$ such that $x>\gamma$ )
-
-#### Lemma
-
-Uniqueness of upper bounds.
-
-If $\alpha$ and $\beta$ are LUBs of $E$, then $\alpha=\beta$.
-
-Proof:
-
-Suppose for contradiction $\alpha$ and $\beta$ are both LUB of $E$, then $\alpha\neq\beta$
-
-WLOG $\alpha>\beta$ and $\beta>\alpha$.
-
-QED
-
-We write $\sup E$ to denote the LUB of $E$.
-
-This also applies to $GLB$ (greatest lower bound) and infinum of $E$
-
-Example:
-
-1. $S=\mathbb{Q}, E=\{1,2,3\}$ ($E$ is bounded above)
- * $\sup E=3$, $\inf E=1$
-2. $S=\mathbb{Q}, E=\{x\in \mathbb{Q}:00, p^2<2\}$.
- * $A$ is not empty and bounded above. However, $\sup A$ des not exists.
-
-If $S=\mathbb{R}, A=\{p\leq \mathbb{Q}:p>0, p^2<2\}$.
- * $A$ is not empty and bounded above. However, $\sup A=\sqrt{2}$.
-
-#### Least upper bound property (LUBP)
-
-if $\forall E\subset S$ that tis non-empty and bounded above, $\exist Sup E\in S$.
-
-#### Greatest upper bound property (GLBP)
-
-S has greatest lower bound property (GLBP) if $\exist E\subset S$ that is non-empty and bounded below, $\exists \inf E\in S$
-
-$\mathbb{Q}$ does not have LUBP and GLBP.
-
-#### Theorem 1.11
-
-Let $S$ be an ordered set. Then $S$ has the LUBP $\iff$ $S$ has the GLBP
-
-Proof:
-
+# Lecture 2
+
+Ordered sets, least upper bounds and fields.
+
+## Warm up
+
+(a) The statements says: $\forall a\in A, \exists s\in a$ such that $s\geq 7$.
+
+The negation is $\exist a\in A,\forall s\in a$, such that $s<7$.
+
+## Ordered sets
+
+Let $S$ be a set. An order on $S$ is a relation satisfying:
+
+1. "trichotomy". If $x,y\in S$, then exactly on eof the these statements are hold: $xy$.
+2. "transitivity". If $x,y,z\in S$, then $x \beta$
+ * So this statement is true for any rational numbers since $\cancel{\exist} a\in E$ such that $x>\beta$.
+
+### Definition 1.8
+
+Least upper bound, LUB, supremum, SUP
+
+Let $S$ be an ordered set and $E\subset S$. We say $\alpha\in S$ is the LUB of $E$ if
+
+1. $\alpha$ is the UB of $E$. ($\forall x\in E,x\leq \alpha$)
+2. if $\gamma<\alpha$, then $\gamma$ is not UB of $E$. ($\forall \gamma <\alpha, \exist x\in E$ such that $x>\gamma$ )
+
+#### Lemma
+
+Uniqueness of upper bounds.
+
+If $\alpha$ and $\beta$ are LUBs of $E$, then $\alpha=\beta$.
+
+Proof:
+
+Suppose for contradiction $\alpha$ and $\beta$ are both LUB of $E$, then $\alpha\neq\beta$
+
+WLOG $\alpha>\beta$ and $\beta>\alpha$.
+
+QED
+
+We write $\sup E$ to denote the LUB of $E$.
+
+This also applies to $GLB$ (greatest lower bound) and infinum of $E$
+
+Example:
+
+1. $S=\mathbb{Q}, E=\{1,2,3\}$ ($E$ is bounded above)
+ * $\sup E=3$, $\inf E=1$
+2. $S=\mathbb{Q}, E=\{x\in \mathbb{Q}:00, p^2<2\}$.
+ * $A$ is not empty and bounded above. However, $\sup A$ des not exists.
+
+If $S=\mathbb{R}, A=\{p\leq \mathbb{Q}:p>0, p^2<2\}$.
+ * $A$ is not empty and bounded above. However, $\sup A=\sqrt{2}$.
+
+#### Least upper bound property (LUBP)
+
+if $\forall E\subset S$ that tis non-empty and bounded above, $\exist Sup E\in S$.
+
+#### Greatest upper bound property (GLBP)
+
+S has greatest lower bound property (GLBP) if $\exist E\subset S$ that is non-empty and bounded below, $\exists \inf E\in S$
+
+$\mathbb{Q}$ does not have LUBP and GLBP.
+
+#### Theorem 1.11
+
+Let $S$ be an ordered set. Then $S$ has the LUBP $\iff$ $S$ has the GLBP
+
+Proof:
+
Let $S$ be a set with LUBP. (we want to show $S$ has GLBP)
\ No newline at end of file
diff --git a/pages/Math4111/Math4111_L20.md b/content/Math4111/Math4111_L20.md
similarity index 96%
rename from pages/Math4111/Math4111_L20.md
rename to content/Math4111/Math4111_L20.md
index 34dc934..c7dc595 100644
--- a/pages/Math4111/Math4111_L20.md
+++ b/content/Math4111/Math4111_L20.md
@@ -1,270 +1,270 @@
-# Lecture 20
-
-## Review
-
-Using the binomial theorem, prove that
-
-$$
-\frac{1}{0!}+\frac{1}{1!}+\frac{1}{2!}+\cdots +\frac{1}{n!}\geq \left(1+\frac{1}{n}\right)^n
-$$
-
-> Binomial theorem: $$(x+y)^n = \sum_{k=0}^{n} \binom{n}{k} x^{n-k} y^k$$ $$\binom{n}{k} = \frac{n!}{k!(n-k)!}$$
-
-Proof:
-$$
-\begin{aligned}
-\left(1+\frac{1}{n}\right)^n &= \sum_{k=0}^{n} \binom{n}{k} \left(1\right)^{n-k} \left(\frac{1}{n}\right)^k \\
-&= \sum_{k=0}^{n} \binom{n}{k} \frac{1}{n^k} \\
-&= \sum_{k=0}^{n} \frac{1}{k!} \prod_{j=1}^{k} \frac{n-j+1}{n} \\
-\end{aligned}
-$$
-
-Since $j\geq 1$, $\frac{n-j+1}{n} \leq1$.
-
-$$
-\begin{aligned}
-&= \sum_{k=0}^{n} \frac{1}{k!} \prod_{j=1}^{k} \frac{n-j+1}{n} \\
-&\geq \sum_{k=0}^{n} \frac{1}{k!} \\
-\end{aligned}
-$$
-
-## New material
-
-### Series
-
-#### Definition 3.30
-
-$$
-e=\sum_{n=0}^{\infty} \frac{1}{n!}
-$$
-
-#### Lemma 3.30
-
-$\sum_{n=0}^{\infty} \frac{1}{n!}$ converges.
-
-Proof:
-
-If $n\geq 2$,
-
-$$
-\begin{aligned}
-\frac{1}{n!} &= \frac{1}{n} \cdot \frac{1}{(n-1)!} \\
-&\leq \frac{1}{2} \cdot \frac{1}{2} \cdot \dots \cdot \frac{1}{2} \\
-&= \frac{1}{2^{n-1}}
-\end{aligned}
-$$
-
-$$
-\frac{1}{n!} \leq \frac{1}{2^{n-1}}
-$$
-
-So $\sum_{n=0}^{\infty} \frac{1}{n!}$ converges.
-
-#### Theorem 3.31
-
-$$
-\lim_{n\to\infty} \left(1+\frac{1}{n}\right)^n = e
-$$
-
-Proof:
-
-Let $s_n = \sum_{k=0}^{n} \frac{1}{k!}$, let $t_n = \left(1+\frac{1}{n}\right)^n$.
-
-Goal: $\lim_{n\to\infty} s_n = \lim_{n\to\infty} t_n$. we already proved $\lim_{n\to\infty} s_n$ exists. But we don't know yet if $\lim_{n\to\infty} t_n$ exists.
-
-By warmup exercise, $\forall n\geq 0, t_n \leq s_n$.
-
-So if $\limsup_{n\to\infty} t_n \leq \limsup_{n\to\infty} s_n$, then $\lim_{n\to\infty} t_n$ exists and $\lim_{n\to\infty} t_n = \lim_{n\to\infty} s_n$.
-
-Now we will show $\limsup_{n\to\infty} t_n \geq e$.
-
-Ideas: (special case of the argument)
-
-If $n\geq 2$, then
-
-$$
-\begin{aligned}
-t_n &= \sum_{k=0}^{n} \binom{n}{k} \left(\frac{1}{n}\right)^k \\
-&\geq \binom{n}{0} + \binom{n}{1}\frac{1}{n} + \binom{n}{2}\left(\frac{1}{n}\right)^2 + \cdots + \binom{n}{n}\left(\frac{1}{n}\right)^n \\
-&= 1 + \frac{n}{n} + \frac{n(n-1)}{2n^2} + \cdots + \frac{1}{n^n} \\
-\end{aligned}
-$$
-
-Let $n\to\infty$, then
-
-$$
-\liminf_{n\to\infty} t_n \geq 1 + 1 + \frac{1}{2} + \frac{1}{3} + \cdots
-$$
-
-Fix $m\geq 2$, for any $n\geq m$,
-
-$$
-t_n \geq \frac{1}{0!} + \frac{1}{1!} + \frac{1}{2!}\frac{n}{n}\frac{n-1}{n}\cdots+\frac{1}{m!}\frac{n}{n}\frac{n-1}{n}\cdots\frac{n-m+1}{n}
-$$
-
-Let $n\to\infty$, then
-
-$$
-\liminf_{n\to\infty} t_n \geq \frac{1}{0!} + \frac{1}{1!} + \frac{1}{2!} + \cdots + \frac{1}{m!}=s_m
-$$
-
-So $\liminf_{n\to\infty} t_n \geq \lim_{n\to\infty} s_n = e$.
-
-Therefore, $e\leq \liminf_{n\to\infty} t_n\leq \limsup_{n\to\infty} t_n\leq e$.
-
-So $\lim_{n\to\infty} t_n$ exists and $\lim_{n\to\infty} t_n = e$.
-
-QED
-
-#### Theorem 3.32
-
-$e$ is irrational.
-
-Q: How good is the approximation is $s_n$ to $e$?
-
-A: Very good actually.
-$$
-\begin{aligned}
-e-s_n &= \sum_{k=n+1}^{\infty} \frac{1}{k!} \\
-&<\frac{1}{(n+1)!}\left(1+\frac{1}{n+1}+\frac{1}{(n+1)^2}+\cdots\right) \\
-&=\frac{1}{(n+1)!}\sum_{k=0}^{\infty}\left(\frac{1}{n+1}\right)^k \\
-&=\frac{1}{(n+1)!}\frac{1}{1-\frac{1}{n+1}} \\
-&=\frac{1}{n!}\cdot\frac{1}{n} \\
-&<\frac{1}{n!n}
-\end{aligned}
-$$
-
-Proof:
-
-Suppose $e=\frac{p}{q}$ for some $p,q\in\mathbb{N}$.
-
-Observe that:
-
-$$
-s_q=1+1+\frac{1}{2}+\cdots+\frac{1}{q!}
-$$
-
-So $q! s_q$ is an integer.
-
-Since $e=\frac{p}{q}$, $q!e$ is an integer, $q!(e-s_q)$ is an integer.
-
-However,
-
-$$
-0 $$ \sqrt[n]{|a_n|} \leq \alpha \implies |a_n|\leq \alpha^n$$
-
-Given a series $\sum_{n=0}^{\infty} a_n$, put $\alpha = \limsup_{n\to\infty} \sqrt[n]{|a_n|}$.
-
-Then
-
-(a) If $\alpha < 1$, then $\sum_{n=0}^{\infty} a_n$ converges.
-(b) If $\alpha > 1$, then $\sum_{n=0}^{\infty} a_n$ diverges.
-(c) If $\alpha = 1$, the test gives no information
-
-Proof:
-
-(a) Suppose $\alpha < 1$. Then $\exists \beta$ such that $\alpha < \beta < 1$.
-
-By **Theorem 3.17(b)**, $\forall n\geq N, \sqrt[n]{|a_n|} < \beta$.
-
-So $\forall n\geq N, |a_n| < \beta^n$.
-
-By comparison test, $\sum_{n=0}^{\infty} a_n$ converges.
-
-(b) Suppose $\alpha > 1$. By **Theorem 3.17(a)**, $\{n\in \mathbb{N}: \sqrt[n]{|a_n|} > 1\}$ is infinite.
-
-Thus $a_n\not\to 0$, $\sum_{n=0}^{\infty} a_n$ diverges.
-
-(c) $\sum_{n=0}^{\infty} \frac{1}{n}$ and $\sum_{n=0}^{\infty} \frac{1}{n^2}$ both have $\alpha = 1$. but the first diverges and the second converges.
-
-QED
-
-#### Theorem 3.34 (Ratio test)
-
-> $$ \left|\frac{a_{n+1}}{a_n}\right| \leq \alpha \implies |a_n|\leq \alpha^n$$
-
-Given a series $\sum_{n=0}^{\infty} a_n$, $a_n\in\mathbb{C}\backslash\{0\}$.
-
-Then
-
-(a) If $\limsup_{n\to\infty} \left|\frac{a_{n+1}}{a_n}\right| < 1$, then $\sum_{n=0}^{\infty} a_n$ converges.
-(b) If $\left|\frac{a_{n+1}}{a_n}\right| \geq 1$ for all $n\geq n_0$ for some $n_0\in\mathbb{N}$, then $\sum_{n=0}^{\infty} a_n$ diverges.
-
-Remark:
-
-1. If $\limsup_{n\to\infty} \left|\frac{a_{n+1}}{a_n}\right| = 1$, the test gives no information.
-2. If $\limsup_{n\to\infty} \left|\frac{a_{n+1}}{a_n}\right| > 1$, the test gives no information.
-
-Proof:
-
-(b) $\forall n\geq n_0, \left|\frac{a_{n+1}}{a_n}\right| \geq 1$.
-
-So $a_{n_0}\not\to 0$, $\sum_{n=0}^{\infty} a_n$ diverges.
-
-(a) $\beta \in(\limsup_{n\to\infty} \left|\frac{a_{n+1}}{a_n}\right|, 1)$.
-
-By **Theorem 3.17(b)**, $\exists N$ such that $\forall n\geq N, \left|\frac{a_{n+1}}{a_n}\right| < \beta < 1$.
-
-So,
-
-$$
-\begin{aligned}
-|a_N| &< \beta|a_N|\\
-|a_{N+1}| &< \beta|a_{N+1}|\\
-|a_{N+2}| &< \beta|a_{N+2}|\\
-\end{aligned}
-$$
-
-i.e. $\forall n\geq N, |a_n| < \beta^{n-N}|a_N|=\beta^n(\beta^{-N}|a_N|)$.
-
-Since $\sum_{n=N}^{\infty} \beta^n$ converges, by comparison test, $\sum_{n=0}^{\infty} a_n$ converges.
-
-QED
-
-We will skip **Theorem 3.37**. One implication is that if ratio test can be applied, then root test can be applied.
-
-### Power series
-
-#### Definition 3.38
-
-Let $(c_n)$ be a sequence of complex numbers. A power series is a series of the form
-
-$$
-\sum_{n=0}^{\infty} c_n z^n
-$$
-
-#### Theorem 3.39
-
-Given a power series $\sum_{n=0}^{\infty} c_n z^n$, let $R=\frac{1}{\limsup_{n\to\infty} \sqrt[n]{|c_n|}}$.
-
-Then
-
-(a) The series converges absolutely for all $z\in\mathbb{C}$ with $|z| < R$.
-(b) The series diverges for all $z\in\mathbb{C}$ with $|z| > R$.
-(c) If $0\leq r < R$, then the series converges uniformly on the closed disk $\{z\in\mathbb{C}: |z|\leq r\}$.
-
-Proof:
-
-$$
-\begin{aligned}
-\limsup_{n\to\infty} \sqrt[n]{|c_n z^n|} &= \limsup_{n\to\infty} \sqrt[n]{|c_n|} \cdot |z| \\
-&= \frac{|z|}{R}
-\end{aligned}
-$$
-
-By root test, the series converges absolutely for all $z\in\mathbb{C}$ with $|z| < R$.
-
-QED
+# Lecture 20
+
+## Review
+
+Using the binomial theorem, prove that
+
+$$
+\frac{1}{0!}+\frac{1}{1!}+\frac{1}{2!}+\cdots +\frac{1}{n!}\geq \left(1+\frac{1}{n}\right)^n
+$$
+
+> Binomial theorem: $$(x+y)^n = \sum_{k=0}^{n} \binom{n}{k} x^{n-k} y^k$$ $$\binom{n}{k} = \frac{n!}{k!(n-k)!}$$
+
+Proof:
+$$
+\begin{aligned}
+\left(1+\frac{1}{n}\right)^n &= \sum_{k=0}^{n} \binom{n}{k} \left(1\right)^{n-k} \left(\frac{1}{n}\right)^k \\
+&= \sum_{k=0}^{n} \binom{n}{k} \frac{1}{n^k} \\
+&= \sum_{k=0}^{n} \frac{1}{k!} \prod_{j=1}^{k} \frac{n-j+1}{n} \\
+\end{aligned}
+$$
+
+Since $j\geq 1$, $\frac{n-j+1}{n} \leq1$.
+
+$$
+\begin{aligned}
+&= \sum_{k=0}^{n} \frac{1}{k!} \prod_{j=1}^{k} \frac{n-j+1}{n} \\
+&\geq \sum_{k=0}^{n} \frac{1}{k!} \\
+\end{aligned}
+$$
+
+## New material
+
+### Series
+
+#### Definition 3.30
+
+$$
+e=\sum_{n=0}^{\infty} \frac{1}{n!}
+$$
+
+#### Lemma 3.30
+
+$\sum_{n=0}^{\infty} \frac{1}{n!}$ converges.
+
+Proof:
+
+If $n\geq 2$,
+
+$$
+\begin{aligned}
+\frac{1}{n!} &= \frac{1}{n} \cdot \frac{1}{(n-1)!} \\
+&\leq \frac{1}{2} \cdot \frac{1}{2} \cdot \dots \cdot \frac{1}{2} \\
+&= \frac{1}{2^{n-1}}
+\end{aligned}
+$$
+
+$$
+\frac{1}{n!} \leq \frac{1}{2^{n-1}}
+$$
+
+So $\sum_{n=0}^{\infty} \frac{1}{n!}$ converges.
+
+#### Theorem 3.31
+
+$$
+\lim_{n\to\infty} \left(1+\frac{1}{n}\right)^n = e
+$$
+
+Proof:
+
+Let $s_n = \sum_{k=0}^{n} \frac{1}{k!}$, let $t_n = \left(1+\frac{1}{n}\right)^n$.
+
+Goal: $\lim_{n\to\infty} s_n = \lim_{n\to\infty} t_n$. we already proved $\lim_{n\to\infty} s_n$ exists. But we don't know yet if $\lim_{n\to\infty} t_n$ exists.
+
+By warmup exercise, $\forall n\geq 0, t_n \leq s_n$.
+
+So if $\limsup_{n\to\infty} t_n \leq \limsup_{n\to\infty} s_n$, then $\lim_{n\to\infty} t_n$ exists and $\lim_{n\to\infty} t_n = \lim_{n\to\infty} s_n$.
+
+Now we will show $\limsup_{n\to\infty} t_n \geq e$.
+
+Ideas: (special case of the argument)
+
+If $n\geq 2$, then
+
+$$
+\begin{aligned}
+t_n &= \sum_{k=0}^{n} \binom{n}{k} \left(\frac{1}{n}\right)^k \\
+&\geq \binom{n}{0} + \binom{n}{1}\frac{1}{n} + \binom{n}{2}\left(\frac{1}{n}\right)^2 + \cdots + \binom{n}{n}\left(\frac{1}{n}\right)^n \\
+&= 1 + \frac{n}{n} + \frac{n(n-1)}{2n^2} + \cdots + \frac{1}{n^n} \\
+\end{aligned}
+$$
+
+Let $n\to\infty$, then
+
+$$
+\liminf_{n\to\infty} t_n \geq 1 + 1 + \frac{1}{2} + \frac{1}{3} + \cdots
+$$
+
+Fix $m\geq 2$, for any $n\geq m$,
+
+$$
+t_n \geq \frac{1}{0!} + \frac{1}{1!} + \frac{1}{2!}\frac{n}{n}\frac{n-1}{n}\cdots+\frac{1}{m!}\frac{n}{n}\frac{n-1}{n}\cdots\frac{n-m+1}{n}
+$$
+
+Let $n\to\infty$, then
+
+$$
+\liminf_{n\to\infty} t_n \geq \frac{1}{0!} + \frac{1}{1!} + \frac{1}{2!} + \cdots + \frac{1}{m!}=s_m
+$$
+
+So $\liminf_{n\to\infty} t_n \geq \lim_{n\to\infty} s_n = e$.
+
+Therefore, $e\leq \liminf_{n\to\infty} t_n\leq \limsup_{n\to\infty} t_n\leq e$.
+
+So $\lim_{n\to\infty} t_n$ exists and $\lim_{n\to\infty} t_n = e$.
+
+QED
+
+#### Theorem 3.32
+
+$e$ is irrational.
+
+Q: How good is the approximation is $s_n$ to $e$?
+
+A: Very good actually.
+$$
+\begin{aligned}
+e-s_n &= \sum_{k=n+1}^{\infty} \frac{1}{k!} \\
+&<\frac{1}{(n+1)!}\left(1+\frac{1}{n+1}+\frac{1}{(n+1)^2}+\cdots\right) \\
+&=\frac{1}{(n+1)!}\sum_{k=0}^{\infty}\left(\frac{1}{n+1}\right)^k \\
+&=\frac{1}{(n+1)!}\frac{1}{1-\frac{1}{n+1}} \\
+&=\frac{1}{n!}\cdot\frac{1}{n} \\
+&<\frac{1}{n!n}
+\end{aligned}
+$$
+
+Proof:
+
+Suppose $e=\frac{p}{q}$ for some $p,q\in\mathbb{N}$.
+
+Observe that:
+
+$$
+s_q=1+1+\frac{1}{2}+\cdots+\frac{1}{q!}
+$$
+
+So $q! s_q$ is an integer.
+
+Since $e=\frac{p}{q}$, $q!e$ is an integer, $q!(e-s_q)$ is an integer.
+
+However,
+
+$$
+0 $$ \sqrt[n]{|a_n|} \leq \alpha \implies |a_n|\leq \alpha^n$$
+
+Given a series $\sum_{n=0}^{\infty} a_n$, put $\alpha = \limsup_{n\to\infty} \sqrt[n]{|a_n|}$.
+
+Then
+
+(a) If $\alpha < 1$, then $\sum_{n=0}^{\infty} a_n$ converges.
+(b) If $\alpha > 1$, then $\sum_{n=0}^{\infty} a_n$ diverges.
+(c) If $\alpha = 1$, the test gives no information
+
+Proof:
+
+(a) Suppose $\alpha < 1$. Then $\exists \beta$ such that $\alpha < \beta < 1$.
+
+By **Theorem 3.17(b)**, $\forall n\geq N, \sqrt[n]{|a_n|} < \beta$.
+
+So $\forall n\geq N, |a_n| < \beta^n$.
+
+By comparison test, $\sum_{n=0}^{\infty} a_n$ converges.
+
+(b) Suppose $\alpha > 1$. By **Theorem 3.17(a)**, $\{n\in \mathbb{N}: \sqrt[n]{|a_n|} > 1\}$ is infinite.
+
+Thus $a_n\not\to 0$, $\sum_{n=0}^{\infty} a_n$ diverges.
+
+(c) $\sum_{n=0}^{\infty} \frac{1}{n}$ and $\sum_{n=0}^{\infty} \frac{1}{n^2}$ both have $\alpha = 1$. but the first diverges and the second converges.
+
+QED
+
+#### Theorem 3.34 (Ratio test)
+
+> $$ \left|\frac{a_{n+1}}{a_n}\right| \leq \alpha \implies |a_n|\leq \alpha^n$$
+
+Given a series $\sum_{n=0}^{\infty} a_n$, $a_n\in\mathbb{C}\backslash\{0\}$.
+
+Then
+
+(a) If $\limsup_{n\to\infty} \left|\frac{a_{n+1}}{a_n}\right| < 1$, then $\sum_{n=0}^{\infty} a_n$ converges.
+(b) If $\left|\frac{a_{n+1}}{a_n}\right| \geq 1$ for all $n\geq n_0$ for some $n_0\in\mathbb{N}$, then $\sum_{n=0}^{\infty} a_n$ diverges.
+
+Remark:
+
+1. If $\limsup_{n\to\infty} \left|\frac{a_{n+1}}{a_n}\right| = 1$, the test gives no information.
+2. If $\limsup_{n\to\infty} \left|\frac{a_{n+1}}{a_n}\right| > 1$, the test gives no information.
+
+Proof:
+
+(b) $\forall n\geq n_0, \left|\frac{a_{n+1}}{a_n}\right| \geq 1$.
+
+So $a_{n_0}\not\to 0$, $\sum_{n=0}^{\infty} a_n$ diverges.
+
+(a) $\beta \in(\limsup_{n\to\infty} \left|\frac{a_{n+1}}{a_n}\right|, 1)$.
+
+By **Theorem 3.17(b)**, $\exists N$ such that $\forall n\geq N, \left|\frac{a_{n+1}}{a_n}\right| < \beta < 1$.
+
+So,
+
+$$
+\begin{aligned}
+|a_N| &< \beta|a_N|\\
+|a_{N+1}| &< \beta|a_{N+1}|\\
+|a_{N+2}| &< \beta|a_{N+2}|\\
+\end{aligned}
+$$
+
+i.e. $\forall n\geq N, |a_n| < \beta^{n-N}|a_N|=\beta^n(\beta^{-N}|a_N|)$.
+
+Since $\sum_{n=N}^{\infty} \beta^n$ converges, by comparison test, $\sum_{n=0}^{\infty} a_n$ converges.
+
+QED
+
+We will skip **Theorem 3.37**. One implication is that if ratio test can be applied, then root test can be applied.
+
+### Power series
+
+#### Definition 3.38
+
+Let $(c_n)$ be a sequence of complex numbers. A power series is a series of the form
+
+$$
+\sum_{n=0}^{\infty} c_n z^n
+$$
+
+#### Theorem 3.39
+
+Given a power series $\sum_{n=0}^{\infty} c_n z^n$, let $R=\frac{1}{\limsup_{n\to\infty} \sqrt[n]{|c_n|}}$.
+
+Then
+
+(a) The series converges absolutely for all $z\in\mathbb{C}$ with $|z| < R$.
+(b) The series diverges for all $z\in\mathbb{C}$ with $|z| > R$.
+(c) If $0\leq r < R$, then the series converges uniformly on the closed disk $\{z\in\mathbb{C}: |z|\leq r\}$.
+
+Proof:
+
+$$
+\begin{aligned}
+\limsup_{n\to\infty} \sqrt[n]{|c_n z^n|} &= \limsup_{n\to\infty} \sqrt[n]{|c_n|} \cdot |z| \\
+&= \frac{|z|}{R}
+\end{aligned}
+$$
+
+By root test, the series converges absolutely for all $z\in\mathbb{C}$ with $|z| < R$.
+
+QED
diff --git a/pages/Math4111/Math4111_L21.md b/content/Math4111/Math4111_L21.md
similarity index 100%
rename from pages/Math4111/Math4111_L21.md
rename to content/Math4111/Math4111_L21.md
diff --git a/pages/Math4111/Math4111_L22.md b/content/Math4111/Math4111_L22.md
similarity index 100%
rename from pages/Math4111/Math4111_L22.md
rename to content/Math4111/Math4111_L22.md
diff --git a/pages/Math4111/Math4111_L23.md b/content/Math4111/Math4111_L23.md
similarity index 100%
rename from pages/Math4111/Math4111_L23.md
rename to content/Math4111/Math4111_L23.md
diff --git a/pages/Math4111/Math4111_L24.md b/content/Math4111/Math4111_L24.md
similarity index 100%
rename from pages/Math4111/Math4111_L24.md
rename to content/Math4111/Math4111_L24.md
diff --git a/pages/Math4111/Math4111_L25.md b/content/Math4111/Math4111_L25.md
similarity index 100%
rename from pages/Math4111/Math4111_L25.md
rename to content/Math4111/Math4111_L25.md
diff --git a/pages/Math4111/Math4111_L3.md b/content/Math4111/Math4111_L3.md
similarity index 97%
rename from pages/Math4111/Math4111_L3.md
rename to content/Math4111/Math4111_L3.md
index 9414401..1538986 100644
--- a/pages/Math4111/Math4111_L3.md
+++ b/content/Math4111/Math4111_L3.md
@@ -1,129 +1,129 @@
-# Lecture 3
-
-## Review
-
-Let $S=\mathbb{Z}$.
-
-1. Let $E=\{x\in S:x>0,x^2<5\}$. What are $sup\ E$ and $\inf\ E$?
-
- $sup\ E=2,inf\ E=1$
-
-2. Can you find a subset $E\subset S$ which is bounded above but not bounded below?
-
- $E=\{x\in S:x<0\}$
-
-3. Does $S$ have the least upper bound property?
-
- Yes, $\forall E\subset S$ that tis non-empty and bounded above, $\exist \sup E\in S$.
-
-4. Does $S$ have the greatest lower bound property?
-
- Yes, $\forall E\subset S$ that tis non-empty and bounded below, $\exist \inf E\in S$.
-
-## Continue
-
-### LUBP (The least upper bound property)
-
-Proof that $LUBP\implies GLBP$.
-
-Proof:
-
-Let $S$ be an ordered set with LUBP. Let $B\alpha,\beta$ is not a lower bound of $B$.
-
- Let $\beta>\alpha$. Since $\alpha$ is an upper bound of $L$, $\beta\notin L$.
-
- By definition of $L$, $\beta$ is not a lower bound of $B$.
-
-Thus $\alpha=inf\ B$
-
-QED
-
-### Field
-
-| | addition | multiplication |
-| -------------- | ----------------------------------------------------------- | -------------------------------------------------------------- |
-| closure | $\checkmark$ | $\checkmark$ |
-| commutativity | $\checkmark$ | $\checkmark$ |
-| associativity | $\checkmark$ | $\checkmark$ |
-| identity | $\checkmark$ (denoted $0$) | $\checkmark$ (denoted $1$) |
-| inverses | $\checkmark$ (denoted $-x$) | $\checkmark$ (exists when $x\neq 0$ denoted $1/x$ or $x^{-1}$) |
-| distributivity | $\checkmark$ (distributive of multiplication over addition) ||
-
-Examples: $\mathbb{Q},\mathbb{R},\mathbb{C}$
-
-Non-examples: $\mathbb{N}$ fails A4,A5,M5, $\mathbb{Z}$ fails M5
-
-Another example of field: $\mathbb{Z}/5\mathbb{Z}=\{1,2,3,4,5\}$, $\forall a,b\in \mathbb{Z}/5\mathbb{Z}$, $a+b=(a+b)\mod 5$, $a\cdot b=(a\cdot b)\mod 5$
-
-Some properties of fields: see Proposition 1.14,1.15,1.16
-
-Remark:
-
-1. It's more helpful if you try to prove these yourselves. The proofs are "straightforward".
-2. For this course, it's not important to remember which properties are axioms, etc.
-
-Example of proof:
-
-#### 1.14(a) $x+y=x+z\implies y=z$
-
-Proof:
-
-$x+y=x+z$,
-
-$(-x)+(x+y)=(-x)+(x+z)$,
-
-by A3, $(-x+x)+(y)=(-x+x)+(z)$,
-
-$0+y=0+z$,
-
-$y=z$.
-
-Chain of equalities.
-
-#### 1.16(a) $\forall x\in \mathbb{F}, 0x=0$
-
-1. A4, where 0 is defined.
-2. Since $0$ is defined in the addition, identity. The proposition says something about multiplication by 0. The only proposition that relates the addition and multiplication is Distributive law.
-
-$0x=(0+0)x=0x+0x$, cancel $0x$ on both side we have $0x=0$.
-
-### Ordered Field (1.17)
-
-An _ordered field_ is a _field_ $F$ which is also an _ordered set_, such that
-
-1. $x+y0$ if $x\in F,y\in F,x>0$ and $y>0$.
-
-#### Prop 1.18
-
-If $x>0$ and $y0\implies xz>xy$
-
-We define $\mathbb{R}$ to be the unique ordered field with $LUBP$. (The existence and uniqueness are discussed in the appendix of this chapter).
-
-#### Theorem 1.20
-
-1. (Archimedean property) If $x,y\in \mathbb{R}$ and $x>0$, then $\exists n\in \mathbb{N}$ such that $nx>y$.
-2. ($\mathbb{Q}$ is dense in $\mathbb{R}$) If $x,y\in \mathbb{R}$ and $x0,x^2<5\}$. What are $sup\ E$ and $\inf\ E$?
+
+ $sup\ E=2,inf\ E=1$
+
+2. Can you find a subset $E\subset S$ which is bounded above but not bounded below?
+
+ $E=\{x\in S:x<0\}$
+
+3. Does $S$ have the least upper bound property?
+
+ Yes, $\forall E\subset S$ that tis non-empty and bounded above, $\exist \sup E\in S$.
+
+4. Does $S$ have the greatest lower bound property?
+
+ Yes, $\forall E\subset S$ that tis non-empty and bounded below, $\exist \inf E\in S$.
+
+## Continue
+
+### LUBP (The least upper bound property)
+
+Proof that $LUBP\implies GLBP$.
+
+Proof:
+
+Let $S$ be an ordered set with LUBP. Let $B\alpha,\beta$ is not a lower bound of $B$.
+
+ Let $\beta>\alpha$. Since $\alpha$ is an upper bound of $L$, $\beta\notin L$.
+
+ By definition of $L$, $\beta$ is not a lower bound of $B$.
+
+Thus $\alpha=inf\ B$
+
+QED
+
+### Field
+
+| | addition | multiplication |
+| -------------- | ----------------------------------------------------------- | -------------------------------------------------------------- |
+| closure | $\checkmark$ | $\checkmark$ |
+| commutativity | $\checkmark$ | $\checkmark$ |
+| associativity | $\checkmark$ | $\checkmark$ |
+| identity | $\checkmark$ (denoted $0$) | $\checkmark$ (denoted $1$) |
+| inverses | $\checkmark$ (denoted $-x$) | $\checkmark$ (exists when $x\neq 0$ denoted $1/x$ or $x^{-1}$) |
+| distributivity | $\checkmark$ (distributive of multiplication over addition) ||
+
+Examples: $\mathbb{Q},\mathbb{R},\mathbb{C}$
+
+Non-examples: $\mathbb{N}$ fails A4,A5,M5, $\mathbb{Z}$ fails M5
+
+Another example of field: $\mathbb{Z}/5\mathbb{Z}=\{1,2,3,4,5\}$, $\forall a,b\in \mathbb{Z}/5\mathbb{Z}$, $a+b=(a+b)\mod 5$, $a\cdot b=(a\cdot b)\mod 5$
+
+Some properties of fields: see Proposition 1.14,1.15,1.16
+
+Remark:
+
+1. It's more helpful if you try to prove these yourselves. The proofs are "straightforward".
+2. For this course, it's not important to remember which properties are axioms, etc.
+
+Example of proof:
+
+#### 1.14(a) $x+y=x+z\implies y=z$
+
+Proof:
+
+$x+y=x+z$,
+
+$(-x)+(x+y)=(-x)+(x+z)$,
+
+by A3, $(-x+x)+(y)=(-x+x)+(z)$,
+
+$0+y=0+z$,
+
+$y=z$.
+
+Chain of equalities.
+
+#### 1.16(a) $\forall x\in \mathbb{F}, 0x=0$
+
+1. A4, where 0 is defined.
+2. Since $0$ is defined in the addition, identity. The proposition says something about multiplication by 0. The only proposition that relates the addition and multiplication is Distributive law.
+
+$0x=(0+0)x=0x+0x$, cancel $0x$ on both side we have $0x=0$.
+
+### Ordered Field (1.17)
+
+An _ordered field_ is a _field_ $F$ which is also an _ordered set_, such that
+
+1. $x+y0$ if $x\in F,y\in F,x>0$ and $y>0$.
+
+#### Prop 1.18
+
+If $x>0$ and $y0\implies xz>xy$
+
+We define $\mathbb{R}$ to be the unique ordered field with $LUBP$. (The existence and uniqueness are discussed in the appendix of this chapter).
+
+#### Theorem 1.20
+
+1. (Archimedean property) If $x,y\in \mathbb{R}$ and $x>0$, then $\exists n\in \mathbb{N}$ such that $nx>y$.
+2. ($\mathbb{Q}$ is dense in $\mathbb{R}$) If $x,y\in \mathbb{R}$ and $x0$, then $\exists n\in \mathbb{N}$ such that $nx>y$.
-
-Proof
-
-Suppose the property is false, then $\exist x,y\in \mathbb{R}$ with $x>0$ such that $\forall v\in \mathbb{N}$, nx\leq y$
-
-Let $A=\{nx:n\in\mathbb{N}\}$. Then $A\neq\phi$ (Since $x\in A$) and $A$ is bounded above by $y$. Since $\mathbb{R}$ has LUBP, $sup\ A$ exists. Let $\alpha=\sup A$.
-
-$x>0\implies \alpha-x<\alpha$, $\alpha-x$ is not an upper bound of $A$. (Since $\alpha$ is the LUB of $A$) $\implies \exist m\in \mathbb{N}$ such that $mx>\alpha-x$ by definition of $A$.
-
-This implies $(m+1)x>\alpha$
-
-Since $(m+1)x\in \alpha$, this contradicts the fact that $\alpha$ is an upper bound of $A$.
-
-QED
-
-### $\mathbb{Q}$ is dense in $\mathbb{R}$
-
-$\mathbb{Q}$ is dense in $\mathbb{R}$ if $x,y\in \mathbb{R}$ and $x1$, and $\exist m_1\in \mathbb{N}$ such that $m_1\cdot 1>nx$, $\exist m_2\in \mathbb{N}$ such that $m_2\cdot 1>-nx$.
-
-So $-m_21+nx\geq 1+(m-1)=m$
-
-QED
-
-### $\sqrt{2}\in \mathbb{R}$, $(\sqrt[n]{x}\in\mathbb{R})$
-
-Notation $\mathbb{R}_{>0}$= the set of positive numbers.
-
-#### Theorem 1.21
-
-$\forall x\in \mathbb{R}_{>0},\forall n\in \mathbb{N},\exist$ unique $y\in \mathbb{R}_{>0}$ such that $y^n=x$.
-
-(Because of this Theorem we can define $x^{1/x}=y$ and $\sqrt{x}=y$)
-
-Proof:
-
-We cna assume $n\geq 2$ (For $n=1,y=x$)
-
-Step 1 (uniqueness): If $00}: t^n0$ such that $(y+h)^n0$, then $\exists n\in \mathbb{N}$ such that $nx>y$.
+
+Proof
+
+Suppose the property is false, then $\exist x,y\in \mathbb{R}$ with $x>0$ such that $\forall v\in \mathbb{N}$, nx\leq y$
+
+Let $A=\{nx:n\in\mathbb{N}\}$. Then $A\neq\phi$ (Since $x\in A$) and $A$ is bounded above by $y$. Since $\mathbb{R}$ has LUBP, $sup\ A$ exists. Let $\alpha=\sup A$.
+
+$x>0\implies \alpha-x<\alpha$, $\alpha-x$ is not an upper bound of $A$. (Since $\alpha$ is the LUB of $A$) $\implies \exist m\in \mathbb{N}$ such that $mx>\alpha-x$ by definition of $A$.
+
+This implies $(m+1)x>\alpha$
+
+Since $(m+1)x\in \alpha$, this contradicts the fact that $\alpha$ is an upper bound of $A$.
+
+QED
+
+### $\mathbb{Q}$ is dense in $\mathbb{R}$
+
+$\mathbb{Q}$ is dense in $\mathbb{R}$ if $x,y\in \mathbb{R}$ and $x1$, and $\exist m_1\in \mathbb{N}$ such that $m_1\cdot 1>nx$, $\exist m_2\in \mathbb{N}$ such that $m_2\cdot 1>-nx$.
+
+So $-m_21+nx\geq 1+(m-1)=m$
+
+QED
+
+### $\sqrt{2}\in \mathbb{R}$, $(\sqrt[n]{x}\in\mathbb{R})$
+
+Notation $\mathbb{R}_{>0}$= the set of positive numbers.
+
+#### Theorem 1.21
+
+$\forall x\in \mathbb{R}_{>0},\forall n\in \mathbb{N},\exist$ unique $y\in \mathbb{R}_{>0}$ such that $y^n=x$.
+
+(Because of this Theorem we can define $x^{1/x}=y$ and $\sqrt{x}=y$)
+
+Proof:
+
+We cna assume $n\geq 2$ (For $n=1,y=x$)
+
+Step 1 (uniqueness): If $00}: t^n0$ such that $(y+h)^n0$ such that $x<1/n$ for all $n\in \mathbb{N}$.
-
-The statement is ambiguous because we can arrange the statement in two ways.
-
-$\exists x\in \mathbb{R}_{>0}$ such that $\forall n\in \mathbb{N},x\leq \frac{1}{n}$
-
-negation: $\forall x\in \mathbb{R}_{>0}$, $\exists n\in \mathbb{N}$, such that $x\leq \frac{1}{n}$.
-
-The statement is true, let $x=\frac{1}{n+1}$.
-
-## New Materials
-
-### Continue on the theorem
-
-#### Theorem 1.21
-
-$\forall x\in \mathbb{R}_{>0},\forall n\in \mathbb{N},\exist$ unique $y\in \mathbb{R}_{>0}$ such that $y^n=x$.
-
-(Because of this Theorem we can define $x^{1/x}=y$ and $\sqrt{x}=y$)
-
-Proof:
-
-We cna assume $n\geq 2$ (For $n=1,y=x$)
-
-Step 1 (uniqueness): If $00}: t^n0$ such that $(y+h)^n0$ satisfying $h<1$ and $h<\frac{x-y^h}{n(y+h)^{n-1}}$
-
-[For actual proof, see the text.]
-
-Step 2c showing ($y^n\leq x$)
-
-Suppose for contradiction $y^n>x$
-
-Thoughts: Find $k>0$ such that $(y-k)^n>x$.
-
-Then $y-k$ is an upper bound for $E$, which contradicts the fact that $y$ is the least upper bound of $E$.
-
-$y^n-(y-k)^n\leq ny^{n-1}k$.
-
-We want $y^n-ny^{n-1}k\geq x$.
-
-So want $k\leq \frac{y^n-x}{ny^{n-1}}$
-
-[For actual proof, see the text.]
-
-QED
-
-### Complex numbers
-
-1. $=\{a+bi:a,b\in \mathbb{R}\}$.
-
-Conjugate: $z=a+bi,\bar{z}=a-bi$.
-
-#### Theorem 1.31 (see text)
-
-Pure computational proof: boring...
-
-$z\bar{z}=a^2-(bi)^2=a^2+b^2$
-
-You can also use vector sum for representing operation in complex numbers.
-
-#### Theorem 1.33 (see text)
-
-More computation and still, boring...
-
-some fun theorems:
-
-- $|Re\ z|\leq |z|$ (equal when no imaginary parts)
-- $|z+w|\leq |z|+|w|$ (equal when both $z,w$ have no imaginary parts) (Triangle inequality)
-
-Proof for $|z+w|\leq |z|+|w|$:
-
-$$
-|z+w|^2=(z+w)(\overline{z+w})=(z+w)(\bar{z}+\bar{w})=|z|^2+|w|^2+z\bar{w}+\bar{z}w
-$$
-
-Since
-
-$$
-z\bar{w}+\bar{z}w\leq 2Re(z\bar{w})
-$$
-
-$$
-(z+w)(\bar{z}+\bar{w})=|z|^2+|w|^2+z\bar{w}+\bar{z}w\leq |z|^2+|w|^2+2|z||w|\leq |z|+|w|
-$$
-
-#### Theorem 1.35 Cauchy-Schwarz inequality
-
-If $\vec{a},\vec{b}\in \mathbb{C}^n$, then
-
-$$
-|\vec{a}\vec{b}|^2\leq (\vec{a}\vec{a})(\vec{b}\vec{b})
-$$
-
-> Remark: The proof is very tricky.
-
-To help us motivate the proof in text, let's consider the special case of real numbers.
-
-$$
-(\sum a_j b_j)^2=(\sum a_j^2)(\sum b_j^2)
-$$
-
-Proof:
-
-For real numbers:
-
-Let $A=\sum a_j^2,B=\sum b_j^2, C=\sum a_j b_j$, want to show $C^2\leq AB$
-
-Note: if $B=0$, then $b_1=b_2=...=0$, so $C=0$ and we are done, so we may assume $B\neq 0$ so $B>0$.
-
-Clever step: For any $t\in \mathbb{R}$,
-
-$$
-0\leq \sum (a_j-t b_j)^2=\sum (a_j^2-2ta_jb_j+t^2b_i^2)=A-2tC+t^2B
-$$
-
-let $t=C/B$ to get $0\leq A-2(C/B)C+(C/B)^2B=A-\frac{C^2}{B}$
-
-to generalize this to $\mathbb{C}$, $A=\sum |a_j|^2,B=\sum |b_j|^2,C=\sum |a_j \bar{b_j}|$.
-
-QED
-
-### Euclidean spaces
-
-Nothing much to say. lol.
-
-Normal dot product as inner product.
-
+# Lecture 5
+
+## Review
+
+In each case, determine (with justification) whether the claim or its negation is the true statement.
+
+(a) For all real numbers satisfying $a0$ such that $x<1/n$ for all $n\in \mathbb{N}$.
+
+The statement is ambiguous because we can arrange the statement in two ways.
+
+$\exists x\in \mathbb{R}_{>0}$ such that $\forall n\in \mathbb{N},x\leq \frac{1}{n}$
+
+negation: $\forall x\in \mathbb{R}_{>0}$, $\exists n\in \mathbb{N}$, such that $x\leq \frac{1}{n}$.
+
+The statement is true, let $x=\frac{1}{n+1}$.
+
+## New Materials
+
+### Continue on the theorem
+
+#### Theorem 1.21
+
+$\forall x\in \mathbb{R}_{>0},\forall n\in \mathbb{N},\exist$ unique $y\in \mathbb{R}_{>0}$ such that $y^n=x$.
+
+(Because of this Theorem we can define $x^{1/x}=y$ and $\sqrt{x}=y$)
+
+Proof:
+
+We cna assume $n\geq 2$ (For $n=1,y=x$)
+
+Step 1 (uniqueness): If $00}: t^n0$ such that $(y+h)^n0$ satisfying $h<1$ and $h<\frac{x-y^h}{n(y+h)^{n-1}}$
+
+[For actual proof, see the text.]
+
+Step 2c showing ($y^n\leq x$)
+
+Suppose for contradiction $y^n>x$
+
+Thoughts: Find $k>0$ such that $(y-k)^n>x$.
+
+Then $y-k$ is an upper bound for $E$, which contradicts the fact that $y$ is the least upper bound of $E$.
+
+$y^n-(y-k)^n\leq ny^{n-1}k$.
+
+We want $y^n-ny^{n-1}k\geq x$.
+
+So want $k\leq \frac{y^n-x}{ny^{n-1}}$
+
+[For actual proof, see the text.]
+
+QED
+
+### Complex numbers
+
+1. $=\{a+bi:a,b\in \mathbb{R}\}$.
+
+Conjugate: $z=a+bi,\bar{z}=a-bi$.
+
+#### Theorem 1.31 (see text)
+
+Pure computational proof: boring...
+
+$z\bar{z}=a^2-(bi)^2=a^2+b^2$
+
+You can also use vector sum for representing operation in complex numbers.
+
+#### Theorem 1.33 (see text)
+
+More computation and still, boring...
+
+some fun theorems:
+
+- $|Re\ z|\leq |z|$ (equal when no imaginary parts)
+- $|z+w|\leq |z|+|w|$ (equal when both $z,w$ have no imaginary parts) (Triangle inequality)
+
+Proof for $|z+w|\leq |z|+|w|$:
+
+$$
+|z+w|^2=(z+w)(\overline{z+w})=(z+w)(\bar{z}+\bar{w})=|z|^2+|w|^2+z\bar{w}+\bar{z}w
+$$
+
+Since
+
+$$
+z\bar{w}+\bar{z}w\leq 2Re(z\bar{w})
+$$
+
+$$
+(z+w)(\bar{z}+\bar{w})=|z|^2+|w|^2+z\bar{w}+\bar{z}w\leq |z|^2+|w|^2+2|z||w|\leq |z|+|w|
+$$
+
+#### Theorem 1.35 Cauchy-Schwarz inequality
+
+If $\vec{a},\vec{b}\in \mathbb{C}^n$, then
+
+$$
+|\vec{a}\vec{b}|^2\leq (\vec{a}\vec{a})(\vec{b}\vec{b})
+$$
+
+> Remark: The proof is very tricky.
+
+To help us motivate the proof in text, let's consider the special case of real numbers.
+
+$$
+(\sum a_j b_j)^2=(\sum a_j^2)(\sum b_j^2)
+$$
+
+Proof:
+
+For real numbers:
+
+Let $A=\sum a_j^2,B=\sum b_j^2, C=\sum a_j b_j$, want to show $C^2\leq AB$
+
+Note: if $B=0$, then $b_1=b_2=...=0$, so $C=0$ and we are done, so we may assume $B\neq 0$ so $B>0$.
+
+Clever step: For any $t\in \mathbb{R}$,
+
+$$
+0\leq \sum (a_j-t b_j)^2=\sum (a_j^2-2ta_jb_j+t^2b_i^2)=A-2tC+t^2B
+$$
+
+let $t=C/B$ to get $0\leq A-2(C/B)C+(C/B)^2B=A-\frac{C^2}{B}$
+
+to generalize this to $\mathbb{C}$, $A=\sum |a_j|^2,B=\sum |b_j|^2,C=\sum |a_j \bar{b_j}|$.
+
+QED
+
+### Euclidean spaces
+
+Nothing much to say. lol.
+
+Normal dot product as inner product.
+
read text... Theorem 1.37
\ No newline at end of file
diff --git a/pages/Math4111/Math4111_L6.md b/content/Math4111/Math4111_L6.md
similarity index 96%
rename from pages/Math4111/Math4111_L6.md
rename to content/Math4111/Math4111_L6.md
index 0cec817..ae90125 100644
--- a/pages/Math4111/Math4111_L6.md
+++ b/content/Math4111/Math4111_L6.md
@@ -1,157 +1,157 @@
-# Lecture 6
-
-## Review
-
-Let $A$ and $B$ be subset of $\mathbb{R}$, and consider the function $f:A \to B$ defined by $f(x)=cos(x)$. Find choices for the domain $A$ and co-domain $B$ which make $f$...
-
-(a) neither injective nor surjective.
-
-$A=\mathbb{R},B=\mathbb{R}$
-
-(b) surjective but not injective.
-
-$A=[0,\frac{3\pi}{2}],B=[-1,1]$
-
-(c) injective but not surjective.
-
-$A=[0,\pi],B=[-1,1.1]$
-
-(d) bijective.
-
-$A=(0,\pi),B=(-1,1)$
-
-> injective: y don't repeat, surjective: there exists x for each y
-
-## New Materials (Chapter 2: Basic topology (4171). Finite, countable, and uncountable sets)
-
-### Functions
-
-#### Definition 2.1/2.2
-
-"$f:A\to B$" means "$f$ is a function from $A$ to $B$"
-
-$A$:"domain", and $B$: "co-domain".
-
-If $S\subset A$, the **range** of $S$ under $f$ is $f(S)=\{f(x):s\in S\}$
-
-The "**image**" of $f$ is $f(A)$.
-
-If $T\subset B$, **the inverse image** (pre-image) of $T$ under $f$ is
-
-$$
-f^{-1}(T)=\{x\in A: f(x)\in T\}
-$$
-
-* $f$ is injective or one-to-one if $\forall x_1,x_2\in A$ such that $f(x_1)=f(x_2)$, then $x_1=x_2$. ($f(x_1)=f(x_2)\implies x_1=x_2 \equiv x_1\neq x_2\implies f(x_1)\neq f(x_2)$)
-
-* $f$ is surjective or onto if $\forall y\in B, \exists x\in A$ such that $f(x)=y$. ($f(A)=B$)
-
-* $f$ is bijective if it's both injective and surjective.
-
-#### Definition 2.3
-
-If $\exists$ bijection $f:A\to B$, we say:
-
-* $A$ and $B$ can be put into 1-1 correspondence
-* $A$ and $B$ b oth have the same cardinality
-* $A$ and $B$ are equivalent $A\sim B$
-
-### Cardinality
-
-#### Definition 2.4
-
-(a) $A$ is finite if $A\neq \phi$ or $\exists n\in \mathbb{N}$ such that $A\sim \{1,2,...,n\}$
-
-(b) $A$ is **infinite** if it's not finite
-
-(c) $A$ is **countable** if $A\sim \mathbb{N}$
-
-(d) $A$ is **uncountable** if $A$ is neither finite nor countable
-
-(e) $A$ is **at most countable** if it's finite or countable
-
-> Note in some other books call (c) **countable infinite**, and (e) for **countable**
-
-#### Definition 2.7
-
-A **sequence** in $A$ is a function $f:\mathbb{N}\to\mathbb{A}$
-
-Note: By conversion, instead of $f(1),...f(n)$, we usually write $x_1,x_2,...,x_3$ and we say $\{x_n\}_{n=1}^{\infty}$ is a sequence.
-
-#### Theorem 2.8
-
-Every infinite subset of countable set $A$ is countable.
-
-Ideas of proof: if $A$ is countable, so we can list its element in a sequence. and we iterate $E\subset A$ to create a new order function by deleting element $\notin E$
-
-#### Definition 2.9 (arbitrary unions and intersections)
-
-Let $A$ be a set (called the "index set"). For each $\alpha\in A$, let $E_{\alpha}$ be a set.
-
-Union: $\bigcup_{\alpha \in A}E_{\alpha}=\{x:\exists \alpha \in A$ such that $x\in E_{\alpha}\}$
-
-Intersection: $\bigcap_{\alpha \in A}E_{\alpha}=\{x:\exists \alpha \in A$ such that $x\in E_{\alpha}\}$
-
-Special notation for special cases:
-
-$\bigcup^{n}_{m=1}E_m$ and $E_1\cup E_2\cup ...\cup E_n$ are by definition $\bigcup_{\alpha \in \{1,..,n\}}E_{\alpha}$
-
-and $\bigcup^{\infty}_{m=1}E_m$ and $E_1\cup E_2\cup ...\cup E_n$ are by definition $\bigcup_{\alpha \in \mathbb{N}}E_{\alpha}$
-
-> Note: Despite the $\infty$ symbol this def makes no references to limits, different from infinite sums.
-
-### Countability
-
-#### Theorem 2.12
-
-"A countable union of countable sets is countable".
-
-Let $\{E_n\},n=1,2,3,...$ be a sequence of countable sets, and put
-
-$$
-S=\bigcup^{\infty}_{n=1} E_n
-$$
-
-The $S$ is countable.
-
-Proof by infinite grid, and form a new sequence and remove duplicates.
-
-#### Corollary
-
-An at most countable union of at most countable sets is at most countable.
-
-#### Theorem 2.13
-
-$A$ is countable, $n\in \mathbb{N}$,
-
-$\implies A^n=\{(a_{1},...,a_{n}):a_1\in A, a_n\in A\}$, is countable.
-
-Proof:
-
-Induct on $n$,
-
-Base case $n=1$,
-
-True by assumptions
-
-Induction step: suppose $A^{n-1}$ is countable. Note $A^n=\{(b,a):b\in A^{n-1},a\in A\}=\bigcup_{b\in A^{n-1}\{(b,a),a\in A\}}$.
-
-Since $b$ is fixed, so this is in 1-1 correspondence with $A$, so it's countable by Theorem 2.12.
-
-QED
-
-#### Theorem 2.14
-
-Let $A$ be the set of all sequences for 0s and 1s. Then $A$ is uncountable.
-
-Proof:
-
-Let $E\subset A$ be a countable subset. We'll show $A\backslash E\neq \phi$ (i.e.$\exists t\in A$ such that $t\notin E$)
-
-$E$ is countable so we can list it's elements $S_1,S_2,S_3,...$.
-
-Then we define a new sequence $t$ which differs from $S_1$'s first bit and $S_2$'s second bit,...
-
-This is called Cantor's diagonal argument.
-
-QED
+# Lecture 6
+
+## Review
+
+Let $A$ and $B$ be subset of $\mathbb{R}$, and consider the function $f:A \to B$ defined by $f(x)=cos(x)$. Find choices for the domain $A$ and co-domain $B$ which make $f$...
+
+(a) neither injective nor surjective.
+
+$A=\mathbb{R},B=\mathbb{R}$
+
+(b) surjective but not injective.
+
+$A=[0,\frac{3\pi}{2}],B=[-1,1]$
+
+(c) injective but not surjective.
+
+$A=[0,\pi],B=[-1,1.1]$
+
+(d) bijective.
+
+$A=(0,\pi),B=(-1,1)$
+
+> injective: y don't repeat, surjective: there exists x for each y
+
+## New Materials (Chapter 2: Basic topology (4171). Finite, countable, and uncountable sets)
+
+### Functions
+
+#### Definition 2.1/2.2
+
+"$f:A\to B$" means "$f$ is a function from $A$ to $B$"
+
+$A$:"domain", and $B$: "co-domain".
+
+If $S\subset A$, the **range** of $S$ under $f$ is $f(S)=\{f(x):s\in S\}$
+
+The "**image**" of $f$ is $f(A)$.
+
+If $T\subset B$, **the inverse image** (pre-image) of $T$ under $f$ is
+
+$$
+f^{-1}(T)=\{x\in A: f(x)\in T\}
+$$
+
+* $f$ is injective or one-to-one if $\forall x_1,x_2\in A$ such that $f(x_1)=f(x_2)$, then $x_1=x_2$. ($f(x_1)=f(x_2)\implies x_1=x_2 \equiv x_1\neq x_2\implies f(x_1)\neq f(x_2)$)
+
+* $f$ is surjective or onto if $\forall y\in B, \exists x\in A$ such that $f(x)=y$. ($f(A)=B$)
+
+* $f$ is bijective if it's both injective and surjective.
+
+#### Definition 2.3
+
+If $\exists$ bijection $f:A\to B$, we say:
+
+* $A$ and $B$ can be put into 1-1 correspondence
+* $A$ and $B$ b oth have the same cardinality
+* $A$ and $B$ are equivalent $A\sim B$
+
+### Cardinality
+
+#### Definition 2.4
+
+(a) $A$ is finite if $A\neq \phi$ or $\exists n\in \mathbb{N}$ such that $A\sim \{1,2,...,n\}$
+
+(b) $A$ is **infinite** if it's not finite
+
+(c) $A$ is **countable** if $A\sim \mathbb{N}$
+
+(d) $A$ is **uncountable** if $A$ is neither finite nor countable
+
+(e) $A$ is **at most countable** if it's finite or countable
+
+> Note in some other books call (c) **countable infinite**, and (e) for **countable**
+
+#### Definition 2.7
+
+A **sequence** in $A$ is a function $f:\mathbb{N}\to\mathbb{A}$
+
+Note: By conversion, instead of $f(1),...f(n)$, we usually write $x_1,x_2,...,x_3$ and we say $\{x_n\}_{n=1}^{\infty}$ is a sequence.
+
+#### Theorem 2.8
+
+Every infinite subset of countable set $A$ is countable.
+
+Ideas of proof: if $A$ is countable, so we can list its element in a sequence. and we iterate $E\subset A$ to create a new order function by deleting element $\notin E$
+
+#### Definition 2.9 (arbitrary unions and intersections)
+
+Let $A$ be a set (called the "index set"). For each $\alpha\in A$, let $E_{\alpha}$ be a set.
+
+Union: $\bigcup_{\alpha \in A}E_{\alpha}=\{x:\exists \alpha \in A$ such that $x\in E_{\alpha}\}$
+
+Intersection: $\bigcap_{\alpha \in A}E_{\alpha}=\{x:\exists \alpha \in A$ such that $x\in E_{\alpha}\}$
+
+Special notation for special cases:
+
+$\bigcup^{n}_{m=1}E_m$ and $E_1\cup E_2\cup ...\cup E_n$ are by definition $\bigcup_{\alpha \in \{1,..,n\}}E_{\alpha}$
+
+and $\bigcup^{\infty}_{m=1}E_m$ and $E_1\cup E_2\cup ...\cup E_n$ are by definition $\bigcup_{\alpha \in \mathbb{N}}E_{\alpha}$
+
+> Note: Despite the $\infty$ symbol this def makes no references to limits, different from infinite sums.
+
+### Countability
+
+#### Theorem 2.12
+
+"A countable union of countable sets is countable".
+
+Let $\{E_n\},n=1,2,3,...$ be a sequence of countable sets, and put
+
+$$
+S=\bigcup^{\infty}_{n=1} E_n
+$$
+
+The $S$ is countable.
+
+Proof by infinite grid, and form a new sequence and remove duplicates.
+
+#### Corollary
+
+An at most countable union of at most countable sets is at most countable.
+
+#### Theorem 2.13
+
+$A$ is countable, $n\in \mathbb{N}$,
+
+$\implies A^n=\{(a_{1},...,a_{n}):a_1\in A, a_n\in A\}$, is countable.
+
+Proof:
+
+Induct on $n$,
+
+Base case $n=1$,
+
+True by assumptions
+
+Induction step: suppose $A^{n-1}$ is countable. Note $A^n=\{(b,a):b\in A^{n-1},a\in A\}=\bigcup_{b\in A^{n-1}\{(b,a),a\in A\}}$.
+
+Since $b$ is fixed, so this is in 1-1 correspondence with $A$, so it's countable by Theorem 2.12.
+
+QED
+
+#### Theorem 2.14
+
+Let $A$ be the set of all sequences for 0s and 1s. Then $A$ is uncountable.
+
+Proof:
+
+Let $E\subset A$ be a countable subset. We'll show $A\backslash E\neq \phi$ (i.e.$\exists t\in A$ such that $t\notin E$)
+
+$E$ is countable so we can list it's elements $S_1,S_2,S_3,...$.
+
+Then we define a new sequence $t$ which differs from $S_1$'s first bit and $S_2$'s second bit,...
+
+This is called Cantor's diagonal argument.
+
+QED
diff --git a/pages/Math4111/Math4111_L7.md b/content/Math4111/Math4111_L7.md
similarity index 96%
rename from pages/Math4111/Math4111_L7.md
rename to content/Math4111/Math4111_L7.md
index b4a7423..a9be63d 100644
--- a/pages/Math4111/Math4111_L7.md
+++ b/content/Math4111/Math4111_L7.md
@@ -1,109 +1,109 @@
-# Lecture 7
-
-## Review
-
-Let $S=\{(x,y,z)\in \mathbb{R}^3:x=1,y=4\}=\{(1,4,z):z\in\mathbb{R}\}$
-
-1. How can we describe the set $S$ geometrically in three-dimensional space?
-
- Just a line
-2. Show that $S$ and $\mathbb{R}$ are in one-to-one correspondence.
-
- We can find a bijective function $f:S\to \mathbb{R}$
-3. Show that for any $(a,b)\in\mathbb{Z}^2$, the set $\{(a,b,z):z\in\mathbb{Z}\}$ is in one-to-one correspondence with $\mathbb{Z}$
-
- Use **Theorem 2.13** $A$ is countable, $n\in \mathbb{N} \implies A^n=\{(a_{1},...,a_{n}):a_1\in A, a_n\in A\}$, is countable.
-
-## New materials
-
-### Metric spaces
-
-#### Definition 2.15
-
-Let $X$ be a set. A function $d:X\times X\to \mathbb{R}$ is called a distance function or a metric if it satisfies:
-
-1. Positivity: $\forall p,q\in X,p\neq q\implies d(p,q)>0$, and $\forall p\in X,d(p,p)=0$.
-2. Symmetry: $\forall p,q\in X, d(p,q)=d(q,p)$.
-3. Triangle inequality: $\forall p,q,r\in X$, $d(p,q)\leq d(p,r)+d(r,q)$
-
-We say **$(X,d)$ is a metric space**. If $d$ is understood, $X$ is a metric space.
-
-Examples:
-
-The most important example:
-
-$X\subset \mathbb{R}^k(k\geq 1)$
-
-$d(x,y)=|x-y|$
-
-And other examples: function spaces...
-
-An example from graph theory (not needed for this class):
-
-$d(p,q)$ can be defined by the shortest path fro $p$ to $q$.
-
-#### Definition 2.17
-
-By the *segment* $(a,b)$ we mean the set of all real numbers $x$ such that $a0$. The r-neighborhood of $p$ is $B_r(p)=N_r(o)=\{q\in X: d(p,q)0$ such that $B_r(p)\subset E$. Notation $E^{\circ}=$set of interior points of $E$
-3. $E\subset X$, we say $E$ is **open** if $E\subset E^{\circ}$, i.e. $\forall p\in E, \exists r>0$ such that $B_r(p)\subset E$.
-
-*Note: is follows from definitions that $E^{\circ}\subset E$ is always true.*
-
-Example:
-
-$X=\mathbb{R}^2$($d$ be the euclidean distance) $E=[0,1)\times [0,1)$.
-
-$E^{\circ}=(0,1)\times (0,1)$
-
-So $E=(0,1)\times (0,1)$ is a open set.
-
-#### Theorem 2.19
-
-Let $(X,d)$ be a metric space, $\forall p\in X,\forall r>0$, $B_r(p)$ is an open set.
-
-*every ball is an open set*
-
-Proof:
-
-Let $q\in B_r(p)$.
-
-Let $h=r-d(p,q)$.
-
-Since $q\in B_r(p),h>0$. We claim that $B_h(q)$. Then $d(q,s)0, (B_r(p)\cap E)\backslash {p}\neq \phi$.
-
- Let $E'$ be the set of limit points of $E$.
-
-2. $E$ is closed if $E'\subset E$
-
-Example:
-
-$X=\mathbb{R}^2$, $E=[0,1)\times [0,1)$.
-
-$(1,1)$ is a limit point.
-
-$X=\mathbb{R},E=\{\frac{1}{n},n\in \mathbb{N}\}$
-
-$0$ is the only limit point. $E'=\{0\}$
+# Lecture 7
+
+## Review
+
+Let $S=\{(x,y,z)\in \mathbb{R}^3:x=1,y=4\}=\{(1,4,z):z\in\mathbb{R}\}$
+
+1. How can we describe the set $S$ geometrically in three-dimensional space?
+
+ Just a line
+2. Show that $S$ and $\mathbb{R}$ are in one-to-one correspondence.
+
+ We can find a bijective function $f:S\to \mathbb{R}$
+3. Show that for any $(a,b)\in\mathbb{Z}^2$, the set $\{(a,b,z):z\in\mathbb{Z}\}$ is in one-to-one correspondence with $\mathbb{Z}$
+
+ Use **Theorem 2.13** $A$ is countable, $n\in \mathbb{N} \implies A^n=\{(a_{1},...,a_{n}):a_1\in A, a_n\in A\}$, is countable.
+
+## New materials
+
+### Metric spaces
+
+#### Definition 2.15
+
+Let $X$ be a set. A function $d:X\times X\to \mathbb{R}$ is called a distance function or a metric if it satisfies:
+
+1. Positivity: $\forall p,q\in X,p\neq q\implies d(p,q)>0$, and $\forall p\in X,d(p,p)=0$.
+2. Symmetry: $\forall p,q\in X, d(p,q)=d(q,p)$.
+3. Triangle inequality: $\forall p,q,r\in X$, $d(p,q)\leq d(p,r)+d(r,q)$
+
+We say **$(X,d)$ is a metric space**. If $d$ is understood, $X$ is a metric space.
+
+Examples:
+
+The most important example:
+
+$X\subset \mathbb{R}^k(k\geq 1)$
+
+$d(x,y)=|x-y|$
+
+And other examples: function spaces...
+
+An example from graph theory (not needed for this class):
+
+$d(p,q)$ can be defined by the shortest path fro $p$ to $q$.
+
+#### Definition 2.17
+
+By the *segment* $(a,b)$ we mean the set of all real numbers $x$ such that $a0$. The r-neighborhood of $p$ is $B_r(p)=N_r(o)=\{q\in X: d(p,q)0$ such that $B_r(p)\subset E$. Notation $E^{\circ}=$set of interior points of $E$
+3. $E\subset X$, we say $E$ is **open** if $E\subset E^{\circ}$, i.e. $\forall p\in E, \exists r>0$ such that $B_r(p)\subset E$.
+
+*Note: is follows from definitions that $E^{\circ}\subset E$ is always true.*
+
+Example:
+
+$X=\mathbb{R}^2$($d$ be the euclidean distance) $E=[0,1)\times [0,1)$.
+
+$E^{\circ}=(0,1)\times (0,1)$
+
+So $E=(0,1)\times (0,1)$ is a open set.
+
+#### Theorem 2.19
+
+Let $(X,d)$ be a metric space, $\forall p\in X,\forall r>0$, $B_r(p)$ is an open set.
+
+*every ball is an open set*
+
+Proof:
+
+Let $q\in B_r(p)$.
+
+Let $h=r-d(p,q)$.
+
+Since $q\in B_r(p),h>0$. We claim that $B_h(q)$. Then $d(q,s)0, (B_r(p)\cap E)\backslash {p}\neq \phi$.
+
+ Let $E'$ be the set of limit points of $E$.
+
+2. $E$ is closed if $E'\subset E$
+
+Example:
+
+$X=\mathbb{R}^2$, $E=[0,1)\times [0,1)$.
+
+$(1,1)$ is a limit point.
+
+$X=\mathbb{R},E=\{\frac{1}{n},n\in \mathbb{N}\}$
+
+$0$ is the only limit point. $E'=\{0\}$
diff --git a/pages/Math4111/Math4111_L8.md b/content/Math4111/Math4111_L8.md
similarity index 96%
rename from pages/Math4111/Math4111_L8.md
rename to content/Math4111/Math4111_L8.md
index 8a61e9c..3cd76ca 100644
--- a/pages/Math4111/Math4111_L8.md
+++ b/content/Math4111/Math4111_L8.md
@@ -1,150 +1,150 @@
-# Lecture 8
-
-## Review
-
-Let $(X,d)$ be a metric space. Recall that $B_r(x)=\{z\in X:d(x,z)0$, $B_r(p)=\{q\in X:d(p,q)0$, $(B_s(p)\cap E)\backslash \{p\}\neq \phi$
-3. If $p\in E$ and $p$ is not a limit point of $E$, then $p$ is called an **isolated point** of $E$.
-4. $E$ is **closed** if $E'\subset E$
-5. $p$ is a **interior point** of $E(p\in E^{\circ})$ if $\exists r>0$ such that $B_r(p)\subset E$.
-
-## New materials
-
-### Metric space
-
-#### Theorem 2.20
-
-$p\in E'\implies \forall r>0,B_r(p)\cap E$ is infinite.
-
-Proof:
-
-We will prove the contrapositive.
-
-want to prove $\exists r>0$ such that $B_r(p)\cap E$ is finite $\implies p\notin E'$ ($\exists s>0$ such that $(B_s(p)\cap E)\backslash \{p\}=\phi$)
-
-Suppose $\exists r>0$ such that $B_r(p)\cap E$ is finite
-
-let $B_s(p)\cap E)\backslash \{p\}={q_1,...,q_n}$
-
-- If $n=0$, then $B_s(p)\cap E)\backslash \{p\}=\phi$, so $p\in E'$
-- If $n\geq 1$, then let $s=min\{d(p,q_m):1\leq m\leq n\}$
-
- Each $d(p,q_m)$ is positive and the set is finite, so $s>0$.
-
-Then $(B_s(p)\cap E)\backslash \{p\}=\phi$, so $p\notin E$
-
-QED
-
-#### Theorem 2.22 De Morgan's law
-
-$$
-\left(\bigcup_a E_a\right)^c=\bigcap_a(E^c_a)
-$$
-
-$E^c=X\backslash E$
-
-Proof:
-
-$x\in \cup_{a\in A} E_x\iff \exists a\in A$ such that $x\in E_a$
-
-So $x\in \left(\bigcup_a E_a\right)^c\iff \forall a\in A, x\notin E_a\iff \forall a\in A,x\in E_a^c\iff \bigcap_a(E^c_a)$
-
-#### Theorem 2.23
-
-$E$ is open $\iff$ $E^c$ is closed.
-
-> Warning: $E$ is open $\cancel{\iff}$ $E$ is closed.
-> $E$ is closed $\cancel{\iff}$ $E$ is open.
->
-> Example:
->$\phi$, $\R$ is both open and closed. "clopen set"
->$[0,1)$ is not open and not closed. bad...
-
-Proof:
-
-$\impliedby$ Suppose $E^c$ is closed. Let $x\in E$, so $x\notin E^c$
-
-$E^c$ is closed and $x\notin E^c\implies x\notin (E^c)'\implies \exists r >0$ such that $(B_r(x)\cap E^c)\backslash \{x\}=\phi$
-
-So $\phi=(B_r(x)\cap E^c)\backslash \{x\}=B_r(x)\cap E^c$
-
-So $B_r(x)\in E$
-
-$\implies$
-
-Suppose $E$ is open
-
-$$
-\begin{aligned}
- x\in (E^c)'&\implies \forall r>0, (B_r(x)\cap E^c)\backslash \{x\}\neq \phi\\
- &\implies \forall r>0, (B_r(x)\cap E^c)\neq \phi\\
- &\implies \forall r>0, B-r(x)\notin E\\
- &\implies x\notin E^{\circ}\\
- &\implies x\notin E\\
- &\implies x\in E^c
-\end{aligned}
-$$
-
-So $(E^c)'\subset E^c$
-
-QED
-
-#### Theorem 2.24
-
-##### An arbitrary union of open sets is open
-
-Proof:
-
-Suppose $\forall \alpha, G_\alpha$ is open. Let $x\in \bigcup _{\alpha} G_\alpha$. Then $\exists \alpha_0$ such that $x\in G_{\alpha_0}$. Since $G_{\alpha_0}$ is open, $\exists r>0$ such that $B_r(x)\subset G_{\alpha_0}$ Then $B_r(x)\subset G_{\alpha_0}\subset \bigcup_{\alpha} G_\alpha$
-
-QED
-
-##### A finite intersection of open set is open
-
-Proof:
-
-Suppose $\forall i\in \{1,...,n\}$, $G_i$ is open.
-
-Let $x\in \bigcap^n_{i=1}G_i$, then $\forall i\in \{1,..,n\}$ and $G_i$ is open, so $\exists r_i>0$, such that $B_{r_i}(x)\subset G_i$
-
-Let $r=min\{r_1,...,r_n\}$. Then $\forall i\in \{1,...,n\}$. $B_r(x)\subset B_{r_i}(x)\subset G_i$. So $B_r(x)\subset \bigcup_{i=1}^n G_i$
-
-QED
-
-The other two can be proved by **Theorem 2.22,2.23**
-
-#### Definition 2.26
-
-The closure $\bar{E}=E\cup E'$
-
-Remark: Using the definition of $E'$, we have, $\bar{E}=\{p\in X,\forall r>0,B_r(p)\cap E\neq \phi\}$
-
-#### Definition 2.27
-
-$\bar {E}$ is closed.
-
-Proof:
-
-We will show $\bar{E}^c$ is open.
-
-Suppose $p\in \bar{E}^c$. Then by remark, $\exists r>0$ such that $B_r(p)\cap E=\phi$ (a)
-
-Furthermore,, we claim $B_r(p)\cap E'=\phi$ (b)
-
-Suppose for contradiction that $\exists q\in B_r(p)\cap E'$ By **Theorem 2.19**, $\exists s>0$ such that $B_s(q)\subset B_r(p)$
-
-Since $q\in E',(B_s(q)\cap E)\backslash \{q\}\neq \phi$. This implies $B_r(p)\cap E=\phi$, which contradicts with (a)
-
-This proves (b)
-
-So $\bar{E}^c$ is open
-
+# Lecture 8
+
+## Review
+
+Let $(X,d)$ be a metric space. Recall that $B_r(x)=\{z\in X:d(x,z)0$, $B_r(p)=\{q\in X:d(p,q)0$, $(B_s(p)\cap E)\backslash \{p\}\neq \phi$
+3. If $p\in E$ and $p$ is not a limit point of $E$, then $p$ is called an **isolated point** of $E$.
+4. $E$ is **closed** if $E'\subset E$
+5. $p$ is a **interior point** of $E(p\in E^{\circ})$ if $\exists r>0$ such that $B_r(p)\subset E$.
+
+## New materials
+
+### Metric space
+
+#### Theorem 2.20
+
+$p\in E'\implies \forall r>0,B_r(p)\cap E$ is infinite.
+
+Proof:
+
+We will prove the contrapositive.
+
+want to prove $\exists r>0$ such that $B_r(p)\cap E$ is finite $\implies p\notin E'$ ($\exists s>0$ such that $(B_s(p)\cap E)\backslash \{p\}=\phi$)
+
+Suppose $\exists r>0$ such that $B_r(p)\cap E$ is finite
+
+let $B_s(p)\cap E)\backslash \{p\}={q_1,...,q_n}$
+
+- If $n=0$, then $B_s(p)\cap E)\backslash \{p\}=\phi$, so $p\in E'$
+- If $n\geq 1$, then let $s=min\{d(p,q_m):1\leq m\leq n\}$
+
+ Each $d(p,q_m)$ is positive and the set is finite, so $s>0$.
+
+Then $(B_s(p)\cap E)\backslash \{p\}=\phi$, so $p\notin E$
+
+QED
+
+#### Theorem 2.22 De Morgan's law
+
+$$
+\left(\bigcup_a E_a\right)^c=\bigcap_a(E^c_a)
+$$
+
+$E^c=X\backslash E$
+
+Proof:
+
+$x\in \cup_{a\in A} E_x\iff \exists a\in A$ such that $x\in E_a$
+
+So $x\in \left(\bigcup_a E_a\right)^c\iff \forall a\in A, x\notin E_a\iff \forall a\in A,x\in E_a^c\iff \bigcap_a(E^c_a)$
+
+#### Theorem 2.23
+
+$E$ is open $\iff$ $E^c$ is closed.
+
+> Warning: $E$ is open $\cancel{\iff}$ $E$ is closed.
+> $E$ is closed $\cancel{\iff}$ $E$ is open.
+>
+> Example:
+>$\phi$, $\R$ is both open and closed. "clopen set"
+>$[0,1)$ is not open and not closed. bad...
+
+Proof:
+
+$\impliedby$ Suppose $E^c$ is closed. Let $x\in E$, so $x\notin E^c$
+
+$E^c$ is closed and $x\notin E^c\implies x\notin (E^c)'\implies \exists r >0$ such that $(B_r(x)\cap E^c)\backslash \{x\}=\phi$
+
+So $\phi=(B_r(x)\cap E^c)\backslash \{x\}=B_r(x)\cap E^c$
+
+So $B_r(x)\in E$
+
+$\implies$
+
+Suppose $E$ is open
+
+$$
+\begin{aligned}
+ x\in (E^c)'&\implies \forall r>0, (B_r(x)\cap E^c)\backslash \{x\}\neq \phi\\
+ &\implies \forall r>0, (B_r(x)\cap E^c)\neq \phi\\
+ &\implies \forall r>0, B-r(x)\notin E\\
+ &\implies x\notin E^{\circ}\\
+ &\implies x\notin E\\
+ &\implies x\in E^c
+\end{aligned}
+$$
+
+So $(E^c)'\subset E^c$
+
+QED
+
+#### Theorem 2.24
+
+##### An arbitrary union of open sets is open
+
+Proof:
+
+Suppose $\forall \alpha, G_\alpha$ is open. Let $x\in \bigcup _{\alpha} G_\alpha$. Then $\exists \alpha_0$ such that $x\in G_{\alpha_0}$. Since $G_{\alpha_0}$ is open, $\exists r>0$ such that $B_r(x)\subset G_{\alpha_0}$ Then $B_r(x)\subset G_{\alpha_0}\subset \bigcup_{\alpha} G_\alpha$
+
+QED
+
+##### A finite intersection of open set is open
+
+Proof:
+
+Suppose $\forall i\in \{1,...,n\}$, $G_i$ is open.
+
+Let $x\in \bigcap^n_{i=1}G_i$, then $\forall i\in \{1,..,n\}$ and $G_i$ is open, so $\exists r_i>0$, such that $B_{r_i}(x)\subset G_i$
+
+Let $r=min\{r_1,...,r_n\}$. Then $\forall i\in \{1,...,n\}$. $B_r(x)\subset B_{r_i}(x)\subset G_i$. So $B_r(x)\subset \bigcup_{i=1}^n G_i$
+
+QED
+
+The other two can be proved by **Theorem 2.22,2.23**
+
+#### Definition 2.26
+
+The closure $\bar{E}=E\cup E'$
+
+Remark: Using the definition of $E'$, we have, $\bar{E}=\{p\in X,\forall r>0,B_r(p)\cap E\neq \phi\}$
+
+#### Definition 2.27
+
+$\bar {E}$ is closed.
+
+Proof:
+
+We will show $\bar{E}^c$ is open.
+
+Suppose $p\in \bar{E}^c$. Then by remark, $\exists r>0$ such that $B_r(p)\cap E=\phi$ (a)
+
+Furthermore,, we claim $B_r(p)\cap E'=\phi$ (b)
+
+Suppose for contradiction that $\exists q\in B_r(p)\cap E'$ By **Theorem 2.19**, $\exists s>0$ such that $B_s(q)\subset B_r(p)$
+
+Since $q\in E',(B_s(q)\cap E)\backslash \{q\}\neq \phi$. This implies $B_r(p)\cap E=\phi$, which contradicts with (a)
+
+This proves (b)
+
+So $\bar{E}^c$ is open
+
QED
\ No newline at end of file
diff --git a/pages/Math4111/Math4111_L9.md b/content/Math4111/Math4111_L9.md
similarity index 97%
rename from pages/Math4111/Math4111_L9.md
rename to content/Math4111/Math4111_L9.md
index 2555979..83fe0e4 100644
--- a/pages/Math4111/Math4111_L9.md
+++ b/content/Math4111/Math4111_L9.md
@@ -1,104 +1,104 @@
-# Lecture 9
-
-## Review
-
-1. Let $X=\mathbb{R}$ (and as usual, let $d(x,y)=|x-y|$). What is the set $B_1(0)$
- $B_1(0)=(-1,1)$
-2. Let $X=[0,5]$ (and let $d$ be as usual). What is the set $B_1(0)$.
- $B_1(0)=[0,1)$
-3. Let $X=\mathbb{R}$ and let $E=[0,2)$. Is $E$ open?
- No, $0$ is not a interior point.
-4. Let $X=[0,5]$ and let $E=[0,2)$. Is $E$ open?
- Yes, $0$ is a interior point, we can set radius to $1$ and all the points of $B_1(0)\subset E$
-
-## Continue on new materials
-
-### Metric space
-
-#### Theorem 2.27
-
-If $X$ is a metric spae and $E\subset X$, then.
-
-1. $\bar{E}$ is closed.
-2. $E=\bar{E}$ if and only if $E$ is closed.
- Proof: $E=\bar{E}\iff E=E\cup E'\iff E'\subset E\iff E$ is closed.
-3. $\bar{E}\subset F$ for every closed set $F\subset X$ such that $E\subset F$.
- $F\subset X$ closed, and $E'\subset F'\subset F$, so $\bar{E}=E\cup E'\subset F$
-
-#### Theorem 2.28
-
-$E\subset \mathbb{R}$ non-$\phi$ and bounded above, $\sup E\in \bar{E}$
-
-Proof:
-
-Let $y\sup E$, To show $y\in \bar{E}$, we need to show $\forall h>0$, $B_h(y)\cap E\neq \phi$
-
-Let $h>0$. Since $y-h$ is not an upper bound of $E$, $\exists x\in E$ such that $x>y-h$.
-
-Since $y$ is an upper bound of $E$, $x\leq y$. So $x\in B_n(y)\cap E$, so $B_h(y)\cap E\neq \phi$.
-
-QED
-
-#### Remark 2.29
-
-Let $(X,d)$ be a metric space, $E\subset X$. "$E$ is open" is short for "$E$ is open in $X$"/$E$ is open relative to $X$.
-
-This means $\forall p\in E$, $\exists r>0\{q\in X:d(p,q)0\{q\in Y:d(p,q)0$, then $\{q\in Y:d(p,q)0$ such that $\{q\in X:d(p,q)0$ such that $\{q\in Y:d(p,q)0$, $B_h(y)\cap E\neq \phi$
+
+Let $h>0$. Since $y-h$ is not an upper bound of $E$, $\exists x\in E$ such that $x>y-h$.
+
+Since $y$ is an upper bound of $E$, $x\leq y$. So $x\in B_n(y)\cap E$, so $B_h(y)\cap E\neq \phi$.
+
+QED
+
+#### Remark 2.29
+
+Let $(X,d)$ be a metric space, $E\subset X$. "$E$ is open" is short for "$E$ is open in $X$"/$E$ is open relative to $X$.
+
+This means $\forall p\in E$, $\exists r>0\{q\in X:d(p,q)0\{q\in Y:d(p,q)0$, then $\{q\in Y:d(p,q)0$ such that $\{q\in X:d(p,q)0$ such that $\{q\in Y:d(p,q)dim(W)$, then there are no injective maps from $V$ to $W$.
-
-#### Theorem 3.24
-
-Suppose $V,W$ are finite dimensional with $dim(V)0$
-
-### Linear Maps and Linear Systems 3EX-1
-
-Suppose we have a homogeneous linear system * with $m$ equation and $n$ variables.
-
-$$
-A_{11} x_1+ ... + A_{1n} x_n=0\\
-...\\
-A_{m1} x_1+ ... + A_{mn} x_n=0
-$$
-
-which is equivalent to
-
-$$
-A\begin{bmatrix}
- x_1\\...\\x_n
-\end{bmatrix}=\vec{0}
-$$
-
-also equivalent to
-
-$$
-T(v)=0,\textup{ for some }T
-$$
-
-$$
-T(x_1,...,x_n)=(A_{11} x_1+ ... + A_{1n},...,A_{m1} x_1+ ... + A_{mn} x_n),T\in \mathscr{L}(\mathbb{R}^n,\mathbb{R}^m)
-$$
-
-Solution to * is $null(T)$.
-
-#### Proposition 3.26
-
-A homogeneous linear system with more variables than equations has non-zero solutions.
-
-Proof:
-
-Using $T$ as above, note that since $n>m$, use **Theorem 3.22**, implies that $T$ cannot be injective. So, $null (T)$ contains a non-zero vector.
-
-#### Proposition 3.28
-
-An in-homogenous system with more equations than variables has no solutions for some choices of constants. ($A\vec{x}=\vec{b}$ for some $\vec{b}$ this has no solution)
-
-### Matrices 3A
-
-#### Definition 3.29
-
-For $m,n>0$ and $m\times n$ matrix $A$ is a rectangular array with elements of the $\mathbb{F}$ given by
-
-$$
-A=\begin{pmatrix}
- A_{1,1}& ...&A_{1,n}\\
- ... & & ...\\
- A_{n,1}&...&A_{m,n}\\
-\end{pmatrix}
-$$
-
-### Operations on matrices
-
-Addition:
-
-$$
-A+B=\begin{pmatrix}
- A_{1,1}+B_{1,1}& ...&A_{1,n}+B_{1,n}\\
- ... & & ...\\
- A_{n,1}+A_{n,1}&...&A_{m,n}+B_{m,n}\\
-\end{pmatrix}
-$$
-
-**for $A+B$, $A,B$ need to be the same size**
-
-Scalar multiplication:
-
-$$
-\lambda A=\begin{pmatrix}
- \lambda A_{1,1}& ...& \lambda A_{1,n}\\
- ... & & ...\\
- \lambda A_{n,1}&...& \lambda A_{m,n}\\
-\end{pmatrix}
-$$
-
-#### Definition 3.39
-
-$\mathbb{F}^{m,n}$ is the set of $m$ by $n$ matrices.
-
-#### Theorem 3.40
-
-$\mathbb{F}^{m,n}$ is a vector space (over $\mathbb{F}$) with $dim(\mathbb{F}^{m,n})=m\times n$
-
-### Matrix multiplication 3EX-2
-
-Let $A$ be a $m\times n$ matrix and $B$ be an $n\times s$ matrix
-
-$$
-(A,B)_{i,j}= \sum^n_{r=1} A_{i,r}\cdot B_{r,j}
-$$
-
-Claim:
-
-This formula comes from multiplication of linear maps.
-
-#### Definition 3.44
-
-Linear maps to matrices, let $V$, $W$, $Tv_i$ written in terms of $w_i$.
-
-$$
-M(T)=\begin{pmatrix}
- Tv_1\vert Tv_2\vert ...\vert Tv_n
-\end{pmatrix}
+# Lecture 10
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Vector Space of Linear Maps 3A
+
+Review
+
+#### Theorem 3.21 (The Fundamental Theorem of Linear Maps, Rank-nullity Theorem)
+
+Suppose $V$ is finite dimensional, and $T\in \mathscr{L}(V,W)$, then $range(T)$ is finite dimensional ($W$ don't need to be finite dimensional). and
+
+$$
+dim(V)=dim(null (T))+dim(range(T))
+$$
+
+Proof:
+
+Let $u_1,...,u_m$ be a basis for $null(T)$, then we extend to a basis of $V$ given by $u_1,...,u_m,v_1,...,v_m$, we have $dim(V)=m+n$. Claim that $Tv_1,...,Tv_n$ forms a basis for $range (T)$. Need to show
+
+* Linearly independent. (in Homework 3)
+* These span $range(T)$.
+
+ Let $w\in range(T)$ the there exists $v\in V$ such that $Tv=W$, $u_1,...,u_m,v_1,...,v_m$ are basis so $\exists a_1,...,a_m,b_1,...,b_n$ such that $v=a_1u_1+...+a_mu_m+b_1v_1+...+b_n v_n$. $Tv=a_1Tu_1+...+a_mTu_m+b_1Tu_1+...+b_nTv_n$.
+
+ Since $u_k\in null(T)$, So $Tv_1,...,Tv_n$ spans range $T$ and so form a basis. Thus $range(T)$ is finite dimensional and $dim(range(T))=n$. So $dim(V)=dim(null (T))+dim(range(T))$
+
+#### Theorem 3.22
+
+Suppose $V,W$ are finite dimensional with $dim(V)>dim(W)$, then there are no injective maps from $V$ to $W$.
+
+#### Theorem 3.24
+
+Suppose $V,W$ are finite dimensional with $dim(V)0$
+
+### Linear Maps and Linear Systems 3EX-1
+
+Suppose we have a homogeneous linear system * with $m$ equation and $n$ variables.
+
+$$
+A_{11} x_1+ ... + A_{1n} x_n=0\\
+...\\
+A_{m1} x_1+ ... + A_{mn} x_n=0
+$$
+
+which is equivalent to
+
+$$
+A\begin{bmatrix}
+ x_1\\...\\x_n
+\end{bmatrix}=\vec{0}
+$$
+
+also equivalent to
+
+$$
+T(v)=0,\textup{ for some }T
+$$
+
+$$
+T(x_1,...,x_n)=(A_{11} x_1+ ... + A_{1n},...,A_{m1} x_1+ ... + A_{mn} x_n),T\in \mathscr{L}(\mathbb{R}^n,\mathbb{R}^m)
+$$
+
+Solution to * is $null(T)$.
+
+#### Proposition 3.26
+
+A homogeneous linear system with more variables than equations has non-zero solutions.
+
+Proof:
+
+Using $T$ as above, note that since $n>m$, use **Theorem 3.22**, implies that $T$ cannot be injective. So, $null (T)$ contains a non-zero vector.
+
+#### Proposition 3.28
+
+An in-homogenous system with more equations than variables has no solutions for some choices of constants. ($A\vec{x}=\vec{b}$ for some $\vec{b}$ this has no solution)
+
+### Matrices 3A
+
+#### Definition 3.29
+
+For $m,n>0$ and $m\times n$ matrix $A$ is a rectangular array with elements of the $\mathbb{F}$ given by
+
+$$
+A=\begin{pmatrix}
+ A_{1,1}& ...&A_{1,n}\\
+ ... & & ...\\
+ A_{n,1}&...&A_{m,n}\\
+\end{pmatrix}
+$$
+
+### Operations on matrices
+
+Addition:
+
+$$
+A+B=\begin{pmatrix}
+ A_{1,1}+B_{1,1}& ...&A_{1,n}+B_{1,n}\\
+ ... & & ...\\
+ A_{n,1}+A_{n,1}&...&A_{m,n}+B_{m,n}\\
+\end{pmatrix}
+$$
+
+**for $A+B$, $A,B$ need to be the same size**
+
+Scalar multiplication:
+
+$$
+\lambda A=\begin{pmatrix}
+ \lambda A_{1,1}& ...& \lambda A_{1,n}\\
+ ... & & ...\\
+ \lambda A_{n,1}&...& \lambda A_{m,n}\\
+\end{pmatrix}
+$$
+
+#### Definition 3.39
+
+$\mathbb{F}^{m,n}$ is the set of $m$ by $n$ matrices.
+
+#### Theorem 3.40
+
+$\mathbb{F}^{m,n}$ is a vector space (over $\mathbb{F}$) with $dim(\mathbb{F}^{m,n})=m\times n$
+
+### Matrix multiplication 3EX-2
+
+Let $A$ be a $m\times n$ matrix and $B$ be an $n\times s$ matrix
+
+$$
+(A,B)_{i,j}= \sum^n_{r=1} A_{i,r}\cdot B_{r,j}
+$$
+
+Claim:
+
+This formula comes from multiplication of linear maps.
+
+#### Definition 3.44
+
+Linear maps to matrices, let $V$, $W$, $Tv_i$ written in terms of $w_i$.
+
+$$
+M(T)=\begin{pmatrix}
+ Tv_1\vert Tv_2\vert ...\vert Tv_n
+\end{pmatrix}
$$
\ No newline at end of file
diff --git a/pages/Math429/Math429_L11.md b/content/Math429/Math429_L11.md
similarity index 95%
rename from pages/Math429/Math429_L11.md
rename to content/Math429/Math429_L11.md
index 32546b8..ec62239 100644
--- a/pages/Math429/Math429_L11.md
+++ b/content/Math429/Math429_L11.md
@@ -1,153 +1,153 @@
-# Lecture 11
-
-## Chapter III Linear maps
-
-**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
-
-### Matrices 3C
-
-#### Definition 3.31
-
-Suppose $T\in \mathscr{L}(V,W)$, $v_1,...,v_n$ a basis for $V$ $w_1,...,w_m$ a basis for $W$. Then $M(T)=M(T,(v_1,...,v_n),(w_1,...,w_m))$ is given by $M(T)=A$n where
-
-$$
-T_{v_k}=A_{1,k}w_1+...+A_{m,k}w_m
-$$
-
-$$
-\begin{matrix}
- & & v_1& & v_2&&...&v_n&
-\end{matrix}\\
-\begin{matrix}
-w_1\\w_2\\.\\.\\.\\w_m
-\end{matrix}
-\begin{pmatrix}
-A_{1,1} & A_{1,2} &...& A_{1,n}\\
-A_{2,1} & A_{2,2} &...& A_{2,n}\\
-. & . &...&.\\
-. & . &...&.\\
-. & . &...&.\\
-A_{m,1} & A_{m,2} &...& A_{m,n}\\
-\end{pmatrix}
-$$
-
-Example:
-
-* $T:\mathbb{F}^2\to \mathbb{F}^3$
-
- $T(x,y)=(x+3y,2x+5y,7x+9y)$
-
- $M(T)=\begin{pmatrix}
- 1&3\\
- 2&5\\
- 7&9
- \end{pmatrix}$
-
-* Let $D:\mathscr{P}_3(\mathbb{F})\to \mathscr{P}_2(\mathbb{F})$ be differentiation
-
- $M(T)=\begin{pmatrix}
- 0&1&0&0\\
- 0&0&2&0\\
- 0&0&0&3\\
- \end{pmatrix}$
-
-#### Lemma 3.35
-
-$S,T\in \mathscr{L}(V,W)$, $M(S+T)=M(S)+M(T)$
-
-#### Lemma 3.38
-
-$\forall \lambda\in \mathbb{F},T\in \mathscr{L}(V,W)$, $M(\lambda T)=\lambda M(T)$
-
-$M:\mathscr{L}(V,W)\to \mathbb{F}^{n,m}$ is a linear map
-
-#### Matrix multiplication
-
-#### Definition 3.41
-
-$$
-(AB)_{j,k}=\sum^{n}_{r=1} A_{j,r}B_{r,k}
-$$
-
-#### Theorem 3.42
-
-$T\in \mathscr{L}(U,V), S\in\mathscr{L}(V,W)$ then $M(S,T)=M(S)M(T)$ ($dim (U)=p, dim(V)=n, dim(W)=m$)
-
-Proof:
-
-Let $w_1,...,v_n$ be a basis for $V$, $w_1,..,w_m$ be a basis for $W$ $u_1,..,u_p$ be a basis of $U$.
-
-Let $A=M(S),B=M(T)$
-
-Compute $M(ST)$ by **Definition 3.31**
-
-$$
-\begin{aligned}
-(ST)u_k&=S(T(u_k))\\
-&=S(\sum^n_{r=1}B_{r,k}v_r)\\
-&=\sum^n_{r=1} B_{r,k}(S_{v_r})\\
-&=\sum^n_{r=1} B_{r,k}(\sum^j_{j=1}A_{j,r} w_j)\\
-&=\sum^n_{r=1} (\sum^j_{j=1}A_{j,r}B_{r,k})w_j\\
-&=\sum^n_{r=1} (M(ST)_{j,k})w_j\\
-\end{aligned}
-$$
-
-$$
-\begin{aligned}
-(M(ST))_{j,k}&=\sum^n_{r=1}A_{j,r}B_{r,k}\\
-&=(AB)_{j,k}
-\end{aligned}
-$$
-
-$$
-M(ST)=AB=M(S)M(T)
-$$
-
-#### Notation 3.44
-
-Suppose $A$ is an $m\times n$ matrix
-
-then
-
-1. $A_{j,\cdot}$ denotes the $1\times n$ matrix at the $j$th column.
-2. $A_{\cdot,k}$ denotes the $m\times 1$ matrix at the $k$th column.
-
-#### Proposition 3.46
-
-Suppose $A$ is a $m\times n$ matrix and $B$ is a $n\times p$ matrix, then
-
-$$
-(AB)_{j,k}=(A_{j,\cdot})\cdot (B_{\cdot,k})
-$$
-
-Proof:
-
-$(AB)_{j,k}=A_{j,1}B_{1,k}+...+A_{j,n}B_{n,k}$
-
-$(A_{j,\cdot})\cdot (B_{\cdot,k})=(A_{j,\cdot})_{1,1}(B_{\cdot,k})_{1,1}+...+(A_{j,\cdot})_{1,n}(B_{\cdot,k})_{n,1}=A_{j,1}B_{1,k}+...+A_{j,n}B_{n,k}$
-
-#### Proposition 3.48
-
-Suppose $A$ is an $m\times n$ matrix and $B$ is an $n\times p$ matrix, then
-
-$$
-(A,B)_{\cdot,k}=A(B_{\cdot,k})
-$$
-
-#### Proposition 3.56
-
-Let $A$ is an $m\times n$ $b=\begin{pmatrix}
- b_1\\...\\b_n
-\end{pmatrix}$ a $x\times 1$ matrix. Then $Ab=b_1A_{\cdot,1}+...+b_nA_{\cdot,n}$
-
-i.e. $Ab$ is a linear combination of the columns of $A$
-
-#### Proposition 3.51
-
-Let $C$ be a $m\times c$ matrix and $R$ be a $c\times n$ matrix, then
-
-1. column $k$ of $CR$ is a linear combination of the columns of $C$ with coefficients given by $R_{\cdot,k}$
-
- *putting the propositions together...*
-
-2. row $j$ of $CR$ is a linear combination of the rows of $R$ with coefficients given by $C_{j,\cdot}$
+# Lecture 11
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Matrices 3C
+
+#### Definition 3.31
+
+Suppose $T\in \mathscr{L}(V,W)$, $v_1,...,v_n$ a basis for $V$ $w_1,...,w_m$ a basis for $W$. Then $M(T)=M(T,(v_1,...,v_n),(w_1,...,w_m))$ is given by $M(T)=A$n where
+
+$$
+T_{v_k}=A_{1,k}w_1+...+A_{m,k}w_m
+$$
+
+$$
+\begin{matrix}
+ & & v_1& & v_2&&...&v_n&
+\end{matrix}\\
+\begin{matrix}
+w_1\\w_2\\.\\.\\.\\w_m
+\end{matrix}
+\begin{pmatrix}
+A_{1,1} & A_{1,2} &...& A_{1,n}\\
+A_{2,1} & A_{2,2} &...& A_{2,n}\\
+. & . &...&.\\
+. & . &...&.\\
+. & . &...&.\\
+A_{m,1} & A_{m,2} &...& A_{m,n}\\
+\end{pmatrix}
+$$
+
+Example:
+
+* $T:\mathbb{F}^2\to \mathbb{F}^3$
+
+ $T(x,y)=(x+3y,2x+5y,7x+9y)$
+
+ $M(T)=\begin{pmatrix}
+ 1&3\\
+ 2&5\\
+ 7&9
+ \end{pmatrix}$
+
+* Let $D:\mathscr{P}_3(\mathbb{F})\to \mathscr{P}_2(\mathbb{F})$ be differentiation
+
+ $M(T)=\begin{pmatrix}
+ 0&1&0&0\\
+ 0&0&2&0\\
+ 0&0&0&3\\
+ \end{pmatrix}$
+
+#### Lemma 3.35
+
+$S,T\in \mathscr{L}(V,W)$, $M(S+T)=M(S)+M(T)$
+
+#### Lemma 3.38
+
+$\forall \lambda\in \mathbb{F},T\in \mathscr{L}(V,W)$, $M(\lambda T)=\lambda M(T)$
+
+$M:\mathscr{L}(V,W)\to \mathbb{F}^{n,m}$ is a linear map
+
+#### Matrix multiplication
+
+#### Definition 3.41
+
+$$
+(AB)_{j,k}=\sum^{n}_{r=1} A_{j,r}B_{r,k}
+$$
+
+#### Theorem 3.42
+
+$T\in \mathscr{L}(U,V), S\in\mathscr{L}(V,W)$ then $M(S,T)=M(S)M(T)$ ($dim (U)=p, dim(V)=n, dim(W)=m$)
+
+Proof:
+
+Let $w_1,...,v_n$ be a basis for $V$, $w_1,..,w_m$ be a basis for $W$ $u_1,..,u_p$ be a basis of $U$.
+
+Let $A=M(S),B=M(T)$
+
+Compute $M(ST)$ by **Definition 3.31**
+
+$$
+\begin{aligned}
+(ST)u_k&=S(T(u_k))\\
+&=S(\sum^n_{r=1}B_{r,k}v_r)\\
+&=\sum^n_{r=1} B_{r,k}(S_{v_r})\\
+&=\sum^n_{r=1} B_{r,k}(\sum^j_{j=1}A_{j,r} w_j)\\
+&=\sum^n_{r=1} (\sum^j_{j=1}A_{j,r}B_{r,k})w_j\\
+&=\sum^n_{r=1} (M(ST)_{j,k})w_j\\
+\end{aligned}
+$$
+
+$$
+\begin{aligned}
+(M(ST))_{j,k}&=\sum^n_{r=1}A_{j,r}B_{r,k}\\
+&=(AB)_{j,k}
+\end{aligned}
+$$
+
+$$
+M(ST)=AB=M(S)M(T)
+$$
+
+#### Notation 3.44
+
+Suppose $A$ is an $m\times n$ matrix
+
+then
+
+1. $A_{j,\cdot}$ denotes the $1\times n$ matrix at the $j$th column.
+2. $A_{\cdot,k}$ denotes the $m\times 1$ matrix at the $k$th column.
+
+#### Proposition 3.46
+
+Suppose $A$ is a $m\times n$ matrix and $B$ is a $n\times p$ matrix, then
+
+$$
+(AB)_{j,k}=(A_{j,\cdot})\cdot (B_{\cdot,k})
+$$
+
+Proof:
+
+$(AB)_{j,k}=A_{j,1}B_{1,k}+...+A_{j,n}B_{n,k}$
+
+$(A_{j,\cdot})\cdot (B_{\cdot,k})=(A_{j,\cdot})_{1,1}(B_{\cdot,k})_{1,1}+...+(A_{j,\cdot})_{1,n}(B_{\cdot,k})_{n,1}=A_{j,1}B_{1,k}+...+A_{j,n}B_{n,k}$
+
+#### Proposition 3.48
+
+Suppose $A$ is an $m\times n$ matrix and $B$ is an $n\times p$ matrix, then
+
+$$
+(A,B)_{\cdot,k}=A(B_{\cdot,k})
+$$
+
+#### Proposition 3.56
+
+Let $A$ is an $m\times n$ $b=\begin{pmatrix}
+ b_1\\...\\b_n
+\end{pmatrix}$ a $x\times 1$ matrix. Then $Ab=b_1A_{\cdot,1}+...+b_nA_{\cdot,n}$
+
+i.e. $Ab$ is a linear combination of the columns of $A$
+
+#### Proposition 3.51
+
+Let $C$ be a $m\times c$ matrix and $R$ be a $c\times n$ matrix, then
+
+1. column $k$ of $CR$ is a linear combination of the columns of $C$ with coefficients given by $R_{\cdot,k}$
+
+ *putting the propositions together...*
+
+2. row $j$ of $CR$ is a linear combination of the rows of $R$ with coefficients given by $C_{j,\cdot}$
diff --git a/pages/Math429/Math429_L12.md b/content/Math429/Math429_L12.md
similarity index 96%
rename from pages/Math429/Math429_L12.md
rename to content/Math429/Math429_L12.md
index 8ff5799..d35b456 100644
--- a/pages/Math429/Math429_L12.md
+++ b/content/Math429/Math429_L12.md
@@ -1,106 +1,106 @@
-# Lecture 12
-
-## Chapter III Linear maps
-
-**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
-
-### Matrices 3C
-
-#### Proposition 3.51
-
-Let $C$ be an $m\times c$ matrix and $R$ be a $c\times n$ matrix, then
-
-1. column $k$ of $CR$ is a linear combination of the columns of $C$ with coefficients given by $R_{\cdot,k}$
-
- *putting the propositions together...*
-
-2. row $j$ of $CR$ is a linear combination of the rows of $R$ with coefficients given by $C_{j,\cdot}$
-
-#### Column-Row Factorization and Rank
-
-#### Definition 3.52
-
-Let $A$ be an $m \times n$ matrix, then
-
-* The column rank of $A$ is the dimension of the span of the columns in $\mathbb{F}^{m,1}$.
-* The row range of $A$ is the dimension of the span of the row in $\mathbb{F}^{1,n}$.
-
-> Transpose: $A^t=A^T$ refers to swapping rows and columns
-
-#### Theorem 3.56 (Column-Row Factorization)
-
-Let $A$ be an $m\times j$ matrix with column rank $c$. Then there exists an $m\times c$ matrix $C$ and $c\times x$ matrix $R$ such that $A=CR$
-
-Proof:
-
-Let $V=Span\{A_{\cdot,1},...,A_{\cdot,n}\}$, let $C_{\cdot, 1},...,C_{\cdot, c}$ be a basis of $V$. Since these forms a basis, there exists $R_{j,k}$ such that $A_{i,j}=\sum_{j=1}^c C_{i,j}R_{j,k}$, so $A_{\cdot,j}=\sum_{j=1}^c C_{\cdot,j}R_{j,k}$. This implies that $A=CR$ by construction $C$ is $m\times c$, $R$ is $c\times n$.
-
-Example:
-
-$$
-A=\begin{pmatrix}
- 1&4&2\\
- 2&5&8\\
- 3&6&4
-\end{pmatrix}=\begin{pmatrix}
- 1&4\\
- 2&5\\
- 3&6\\
-\end{pmatrix}\begin{pmatrix}
- 1&0&-1\\
- 0&1&2\\
-\end{pmatrix},rank\ A=4
-$$
-
-#### Definition 3.58 Rank
-
-The **rank of a matrix** $A$ is the column rank of $A$ denoted $rank\ A$.
-
-#### Theorem 3.57
-
-Given a matrix $A$ the column rank equals the row rank.
-
-Proof:
-
-Note that by **Theorem 3.56**, if $A$ is $m\times n$ and has column rank $c$. $A=CR$ for some $C$ is a $m\times c$ matrix, $R$ is a $c\times n$ matrices, ut the rows of $CR$ are a linear combination of the rows of $R$, and row rank of $R\leq C$. So row rank $A\leq$ column rank of $A$.
-
-Taking a transpose of matrix, then row rank of $A^T$ (column rank of $A$) $\leq$ column rank of $A^T$ (row rank $A$).
-
-So column rank is equal to row rank.
-
-### Invertibility and Isomorphisms 3D
-
-Invertible Linear Maps
-
-#### Definition 3.59
-
-A linear map $T\in\mathscr{L}(V,W)$ is **invertible** if there exists $S\in \mathscr{L}(W,V)$ such that $ST=I_V$ and $TS=I_W$. Such a $S$ is called an **inverse** of $T$.
-
-Note: $ST=I_V$ and $TS=I_W$ must **both be true** for inverse map.
-
-#### Lemma 3.60
-
-Every linear map has an unique inverse.
-
-Proof: Exercise and answer in the book.
-
-Notation: $T^{-1}$ is the inverse of $T$
-
-#### Theorem 3.63
-
-A linear map $T:V\to W$ invertible if and only if its injective and surjective.
-
-Proof:
-
-$\Rightarrow$
-
-$null(T)=\{0\}$ since $T(v)=0\implies (T^{-1}))(T(v))=0\implies range (T)=W$ let $w\in W$ then $T(T^{-1}(w))=w,w\in range (T)$
-
-$\Leftarrow$
-
-Find $S:W\to V$ a function such that $T(S(v))=v$ by letting $S(v)$ be the unique vector in $v$ such that $T(S(v))=v$. Goal: Show $S:W\to V$ is linear
-
-$$
-ST(S(w_1)+S(w_2))=S(w_1)+S(w_2)\\
-S(T(S(w_1)))+T(S(w_2))=S(w_1+w_2)
-$$
+# Lecture 12
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Matrices 3C
+
+#### Proposition 3.51
+
+Let $C$ be an $m\times c$ matrix and $R$ be a $c\times n$ matrix, then
+
+1. column $k$ of $CR$ is a linear combination of the columns of $C$ with coefficients given by $R_{\cdot,k}$
+
+ *putting the propositions together...*
+
+2. row $j$ of $CR$ is a linear combination of the rows of $R$ with coefficients given by $C_{j,\cdot}$
+
+#### Column-Row Factorization and Rank
+
+#### Definition 3.52
+
+Let $A$ be an $m \times n$ matrix, then
+
+* The column rank of $A$ is the dimension of the span of the columns in $\mathbb{F}^{m,1}$.
+* The row range of $A$ is the dimension of the span of the row in $\mathbb{F}^{1,n}$.
+
+> Transpose: $A^t=A^T$ refers to swapping rows and columns
+
+#### Theorem 3.56 (Column-Row Factorization)
+
+Let $A$ be an $m\times j$ matrix with column rank $c$. Then there exists an $m\times c$ matrix $C$ and $c\times x$ matrix $R$ such that $A=CR$
+
+Proof:
+
+Let $V=Span\{A_{\cdot,1},...,A_{\cdot,n}\}$, let $C_{\cdot, 1},...,C_{\cdot, c}$ be a basis of $V$. Since these forms a basis, there exists $R_{j,k}$ such that $A_{i,j}=\sum_{j=1}^c C_{i,j}R_{j,k}$, so $A_{\cdot,j}=\sum_{j=1}^c C_{\cdot,j}R_{j,k}$. This implies that $A=CR$ by construction $C$ is $m\times c$, $R$ is $c\times n$.
+
+Example:
+
+$$
+A=\begin{pmatrix}
+ 1&4&2\\
+ 2&5&8\\
+ 3&6&4
+\end{pmatrix}=\begin{pmatrix}
+ 1&4\\
+ 2&5\\
+ 3&6\\
+\end{pmatrix}\begin{pmatrix}
+ 1&0&-1\\
+ 0&1&2\\
+\end{pmatrix},rank\ A=4
+$$
+
+#### Definition 3.58 Rank
+
+The **rank of a matrix** $A$ is the column rank of $A$ denoted $rank\ A$.
+
+#### Theorem 3.57
+
+Given a matrix $A$ the column rank equals the row rank.
+
+Proof:
+
+Note that by **Theorem 3.56**, if $A$ is $m\times n$ and has column rank $c$. $A=CR$ for some $C$ is a $m\times c$ matrix, $R$ is a $c\times n$ matrices, ut the rows of $CR$ are a linear combination of the rows of $R$, and row rank of $R\leq C$. So row rank $A\leq$ column rank of $A$.
+
+Taking a transpose of matrix, then row rank of $A^T$ (column rank of $A$) $\leq$ column rank of $A^T$ (row rank $A$).
+
+So column rank is equal to row rank.
+
+### Invertibility and Isomorphisms 3D
+
+Invertible Linear Maps
+
+#### Definition 3.59
+
+A linear map $T\in\mathscr{L}(V,W)$ is **invertible** if there exists $S\in \mathscr{L}(W,V)$ such that $ST=I_V$ and $TS=I_W$. Such a $S$ is called an **inverse** of $T$.
+
+Note: $ST=I_V$ and $TS=I_W$ must **both be true** for inverse map.
+
+#### Lemma 3.60
+
+Every linear map has an unique inverse.
+
+Proof: Exercise and answer in the book.
+
+Notation: $T^{-1}$ is the inverse of $T$
+
+#### Theorem 3.63
+
+A linear map $T:V\to W$ invertible if and only if its injective and surjective.
+
+Proof:
+
+$\Rightarrow$
+
+$null(T)=\{0\}$ since $T(v)=0\implies (T^{-1}))(T(v))=0\implies range (T)=W$ let $w\in W$ then $T(T^{-1}(w))=w,w\in range (T)$
+
+$\Leftarrow$
+
+Find $S:W\to V$ a function such that $T(S(v))=v$ by letting $S(v)$ be the unique vector in $v$ such that $T(S(v))=v$. Goal: Show $S:W\to V$ is linear
+
+$$
+ST(S(w_1)+S(w_2))=S(w_1)+S(w_2)\\
+S(T(S(w_1)))+T(S(w_2))=S(w_1+w_2)
+$$
diff --git a/pages/Math429/Math429_L13.md b/content/Math429/Math429_L13.md
similarity index 97%
rename from pages/Math429/Math429_L13.md
rename to content/Math429/Math429_L13.md
index d2d94ea..a3e659e 100644
--- a/pages/Math429/Math429_L13.md
+++ b/content/Math429/Math429_L13.md
@@ -1,102 +1,102 @@
-# Lecture 13
-
-## Chapter III Linear maps
-
-**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
-
-### Matrices 3C
-
-#### Theorem 3.63
-
-A linear map is invertible if and only if it is injective and surjective.
-
-#### Example
-
-Consider $T:\mathscr{P}(\mathbb{F})\to \mathscr{P}(\mathbb{F})$, $T(f)=xf$
-
-$T$ is injective but not surjective. Since you cannot get constant from multiply $x$. So it is not invertible.
-
-#### Theorem 3.65
-
-Let $V$ and $W$ be finite-dimensional with the same dimension, and $T\in\mathscr{L}(V,W)$, then $T$ is invertible, if and only if $T$ is injective if and only if, $T$ is surjective.
-
-Proof:
-
-Suppose $T$ is injective, then $null\ T={0}$, i.e $dim(null\ T)=0$, since $dim\ V=dim\ null\ T+dim\ range\ T$, we have $dim\ V=dim\ range\ T$ but $dim\ V\dim\ W$, so $dim\ W=dim\ range\ T$. Thus $W=range\ T$. This shows that $T\ injective \implies T\ surjective$.
-
-If $T$ is surjective, then $dim\ range\ T=dim\ W$ but then $dim\ V=dim\ null\ T+dim\ W\implies dim\ null\ T=0$, so $T$ is injective, $T\ surjective\implies T\ injective$.
-
-#### Theorem 3.68
-
-Suppose $V,W$ finite dimensional $dim\ V=dim\ W$, then for $T\in\mathscr{L}(V,W)$ and $S\in \mathscr{L}(W,V)$, then $ST=I\implies TS=I$
-
-#### Example 3.67
-
-Show that for a polynomial $q$ with degree $m$, there exists a unique polynomial $p$ of degree $m$ such that $((x^2+5x+7)p)''=q$
-
-Solution:
-
-Let $T:\mathscr{P}_m(\mathbb{F})\to \mathscr{P}_m(\mathbb{F})$ given by $T(p)=((x^2+5x+7)p)''$ by $T$ is injective since $(x^2+5x+7)$ has degree $\geq 2$ for $p\neq 0$, therefore, $p$ is surjective. (by **Theorem 3.68**)
-
-#### Isomorphisms
-
-#### Definition 3.69
-
-An **isomorphism** of vector spaces is a invertible linear map. Two vector spaces $V,W$ are isomorphic if there exists an isomorphism between them.
-
-Notation: $V\cong W$ means $V$ and $W$ are isomorphic. (Don't use very often, no map is included.)
-
-Example:
-
-$\mathscr{P}_m(\mathbb{F})$ and $\mathbb{F}^{m+1}$ are isomorphic. $T:\mathbb{F}^{m+1}\to \mathscr{P}_m(\mathbb{F}): T((a_0,...,a_m))=a_0+a_1x+...+a_n x^n$
-
-#### Theorem 3.70
-
-Two finite dimensional vector spaces $V,W$ are isomorphic if and only if $dim\ V= dim\ W$
-
-Ideas of Proof:
-
-$\Rightarrow$ use fundamental theorems of linear map
-
-$\Leftarrow$ Let $v_1,...,v_m\in V$ and $w_1,...,w_n\in W$ be bases. Then define $T:V\to W$ by $T(v_k)=w_k$ for $1\leq k\leq n$
-
-Show $T$ is invertible by showing $T$ is injective and surjective.
-
-#### Theorem 3.71
-
-Let $V,W$ be finite dimensional, let $v_1,...,v_n\in V$ and $w_1,...,w_m\in W$ be bases. Then the map
-
-$$
-M(-,(v_1,...,v_n),(w_1,...,w_m)):\mathscr{L}(V,W)\to \mathbb{F}^{m,n}
-$$
-
-$T\mapsto M(T)$ or $M(-,(v_1,...,v_n),(w_1,...,w_m))$ is an isomorphism ($M:\mathscr{L}(V,W)\to \mathbb{F}^{m,n}$)
-
-Sketch of Proof:
-
-Need to show $M$ is surjective and injective.
-
-* Injective: i.e need to show if $M(T)=0$, then $T=0$. $M(T)=0\implies Tv_k=0, 1\leq k\leq n$
-* Surjective: i.e let $A\in F^{m,n}$ define $T:V\to W$ given by $Tv_k=\sum_{j=1}^m A_{j,k} w_j$ you cna check that $M(T)=A$
-
-#### Corollary 3.72
-
-$dim \mathscr{L}(V,W)=(dim\ V)(dim\ W)$
-
-#### Definition 3.73
-
-$v\in V, v_1,...,v_n$ a basis, then $M(v)=\begin{pmatrix}
- b_1\\
- ...\\
- b_n
-\end{pmatrix}, v=a_1v_1,...,a_nv_n$
-
-#### Proposition 3.75, 3.76
-
-$$
-M(T)_{\cdot,k}=M(Tv_k)
-$$
-
-$$
-M(Tv)=M(T)M(v)
+# Lecture 13
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Matrices 3C
+
+#### Theorem 3.63
+
+A linear map is invertible if and only if it is injective and surjective.
+
+#### Example
+
+Consider $T:\mathscr{P}(\mathbb{F})\to \mathscr{P}(\mathbb{F})$, $T(f)=xf$
+
+$T$ is injective but not surjective. Since you cannot get constant from multiply $x$. So it is not invertible.
+
+#### Theorem 3.65
+
+Let $V$ and $W$ be finite-dimensional with the same dimension, and $T\in\mathscr{L}(V,W)$, then $T$ is invertible, if and only if $T$ is injective if and only if, $T$ is surjective.
+
+Proof:
+
+Suppose $T$ is injective, then $null\ T={0}$, i.e $dim(null\ T)=0$, since $dim\ V=dim\ null\ T+dim\ range\ T$, we have $dim\ V=dim\ range\ T$ but $dim\ V\dim\ W$, so $dim\ W=dim\ range\ T$. Thus $W=range\ T$. This shows that $T\ injective \implies T\ surjective$.
+
+If $T$ is surjective, then $dim\ range\ T=dim\ W$ but then $dim\ V=dim\ null\ T+dim\ W\implies dim\ null\ T=0$, so $T$ is injective, $T\ surjective\implies T\ injective$.
+
+#### Theorem 3.68
+
+Suppose $V,W$ finite dimensional $dim\ V=dim\ W$, then for $T\in\mathscr{L}(V,W)$ and $S\in \mathscr{L}(W,V)$, then $ST=I\implies TS=I$
+
+#### Example 3.67
+
+Show that for a polynomial $q$ with degree $m$, there exists a unique polynomial $p$ of degree $m$ such that $((x^2+5x+7)p)''=q$
+
+Solution:
+
+Let $T:\mathscr{P}_m(\mathbb{F})\to \mathscr{P}_m(\mathbb{F})$ given by $T(p)=((x^2+5x+7)p)''$ by $T$ is injective since $(x^2+5x+7)$ has degree $\geq 2$ for $p\neq 0$, therefore, $p$ is surjective. (by **Theorem 3.68**)
+
+#### Isomorphisms
+
+#### Definition 3.69
+
+An **isomorphism** of vector spaces is a invertible linear map. Two vector spaces $V,W$ are isomorphic if there exists an isomorphism between them.
+
+Notation: $V\cong W$ means $V$ and $W$ are isomorphic. (Don't use very often, no map is included.)
+
+Example:
+
+$\mathscr{P}_m(\mathbb{F})$ and $\mathbb{F}^{m+1}$ are isomorphic. $T:\mathbb{F}^{m+1}\to \mathscr{P}_m(\mathbb{F}): T((a_0,...,a_m))=a_0+a_1x+...+a_n x^n$
+
+#### Theorem 3.70
+
+Two finite dimensional vector spaces $V,W$ are isomorphic if and only if $dim\ V= dim\ W$
+
+Ideas of Proof:
+
+$\Rightarrow$ use fundamental theorems of linear map
+
+$\Leftarrow$ Let $v_1,...,v_m\in V$ and $w_1,...,w_n\in W$ be bases. Then define $T:V\to W$ by $T(v_k)=w_k$ for $1\leq k\leq n$
+
+Show $T$ is invertible by showing $T$ is injective and surjective.
+
+#### Theorem 3.71
+
+Let $V,W$ be finite dimensional, let $v_1,...,v_n\in V$ and $w_1,...,w_m\in W$ be bases. Then the map
+
+$$
+M(-,(v_1,...,v_n),(w_1,...,w_m)):\mathscr{L}(V,W)\to \mathbb{F}^{m,n}
+$$
+
+$T\mapsto M(T)$ or $M(-,(v_1,...,v_n),(w_1,...,w_m))$ is an isomorphism ($M:\mathscr{L}(V,W)\to \mathbb{F}^{m,n}$)
+
+Sketch of Proof:
+
+Need to show $M$ is surjective and injective.
+
+* Injective: i.e need to show if $M(T)=0$, then $T=0$. $M(T)=0\implies Tv_k=0, 1\leq k\leq n$
+* Surjective: i.e let $A\in F^{m,n}$ define $T:V\to W$ given by $Tv_k=\sum_{j=1}^m A_{j,k} w_j$ you cna check that $M(T)=A$
+
+#### Corollary 3.72
+
+$dim \mathscr{L}(V,W)=(dim\ V)(dim\ W)$
+
+#### Definition 3.73
+
+$v\in V, v_1,...,v_n$ a basis, then $M(v)=\begin{pmatrix}
+ b_1\\
+ ...\\
+ b_n
+\end{pmatrix}, v=a_1v_1,...,a_nv_n$
+
+#### Proposition 3.75, 3.76
+
+$$
+M(T)_{\cdot,k}=M(Tv_k)
+$$
+
+$$
+M(Tv)=M(T)M(v)
$$
\ No newline at end of file
diff --git a/pages/Math429/Math429_L14.md b/content/Math429/Math429_L14.md
similarity index 96%
rename from pages/Math429/Math429_L14.md
rename to content/Math429/Math429_L14.md
index b6008bf..8a93a3b 100644
--- a/pages/Math429/Math429_L14.md
+++ b/content/Math429/Math429_L14.md
@@ -1,132 +1,132 @@
-# Lecture 14
-
-## Chapter III Linear maps
-
-**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
-
-### Matrices 3C
-
-Review
-
-#### Proposition 3.76
-
-$$
-M(Tv)=M(T)M(v)
-$$
-
-#### Theorem 3.78
-
-Let $V,W$ be finite dimensional vector space, and $T\in \mathscr{L}(V,W)$ then $dim\ range\ T=column\ rank (M(T))=rank(M(T))$
-
-Proof:
-
-$range=Span\{Tv_1,...,Tv_n\}$ compare to $Span\{M(T)_{\cdot,1},...,M(T)_{\cdot, n}\}=Span\{M(T)M(v_1),...,M(T)M(v_n)\}=Span\{M(Tv_1),...,M(Tv_n)\}$
-
-Since $M$ is a isomorphism, then the theorem makes sense.
-
-#### Change of Basis
-
-#### Definition 3.79, 3.80
-
-The identity matrix
-
-$$
-I=\begin{pmatrix}
- 1.& 0\\
- 0& '1\\
-\end{pmatrix}
-$$
-
-The inverse matrix of an invertible matrix $A$ denoted $A^{-1}$ is the matrix such that
-
-$$
-AA^{-1}=I=A^{-1}A
-$$
-
-Question: Let $u_1,...,u_n$ and $v_1,...,v_n$ be two bases for $V$. What is $M(I,(u_1,...,u_n),(v_1,...,v_n)),I\in \mathscr{L}(V)$
-
-#### Proposition 3.82
-
-Let $u_1,...,u_n$ and $v_1,...,v_n$ be bases of $V$, then $M(I,(u_1,...,u_n),(v_1,...,v_n)),I\in \mathscr{L}(V)$ and $M(I,(v_1,...,v_n),(u_1,...,u_n)),I\in \mathscr{L}(V)$ are inverse to each other.
-
-Proof:
-
-$$
-M(I,(u_1,...,u_n),(v-1,...,v_n)),I\in \mathscr{L}(V) M(I,(v-1,...,v_n),(u_1,...,u_n))=M(I,(u_1,...,u_n),(u_1,...,u_n))
-$$
-
-#### Theorem 3.84 Change of Basis
-
-Let $u_1,...,u_n$ and $v_1,...,v_n$ be two bases for $V$ and $T\in \mathscr{L}(v), A=M(T,(u_1,...,u_n)), B=M(T,(v_1,...,v_n)), C=M(I,(u_1,...,u_n),(v_1,...,v_n))$, then $A=C^{-1}BC$
-
-#### Theorem 3.86
-
-Let $T\in \mathscr{L}(v)$ be an invertible linear map, then $M(T^{-1})=M(T)^{-1}$
-
-### Products and Quotients of Vector Spaces 3E
-
-Goals: To construct vectors spaces from other vector spaces.
-
-#### Definition 3.87
-
-Suppose $V_1,...,V_m$ vectors spaces over some field $\mathbb{F}$, then the product is given by
-
-$$
-V_1\times ...\times V_n=\{(v_1,v_2,...,v_n)\vert v_1\in V_1, v_2\in V_2,...,v_n\in V_n\}
-$$
-
-with addition given by
-
-$$
-(v_1,...,v_n)+(u_1,...,u_n)=(v_1+u_1,...,v_n+u_n)
-$$
-
-and scalar multiplication
-
-$$
-\lambda (v_1,...,v_n)=(\lambda v_1,...,\lambda v_n),\lambda \in \mathbb{F}
-$$
-
-#### Theorem 3.89
-
-If $v_1,...,v_n$ are vectors paces over $\mathbb{F}$ then $V_1\times ...\times V_n$ is a vector space over $\mathbb{F}$
-
-Example:
-
-$V=\mathscr{P}_2(\mathbb{R})\times \mathbb{R}^2=\{(p,v)\vert p\in \mathscr{P}_2(\mathbb{R}), v\in \mathbb{R}^2\}=\{(a_0+a_1x+a_2x,(b,c))\vert a_0,a_1,a_2,b,c\in \mathbb{R}\}$
-
-A basis for $V$ would be $(1,(0,0)),(x,(0,0)),(x^2,(0,0)),(0,(1,0)),(0,(0,1))$
-
-#### Theorem 3.92
-
-$$
-dim(V_1\times ...\times V_n)=dim(V_1)+...+dim(V_n)
-$$
-
-Sketch of proof:
-
-take a basis for each $V_k$, make them vectors in the product then combine the entire list of vector to be basis.
-
-Example:
-
-$\mathbb{R}^2\times \mathbb{R}^3=\{((a,b),(c,d,e))\vert a,b,c,d,e\in \R\}$
-
-$\mathbb{R}^2\times \mathbb{R}^3\cong \mathbb{R}^5,((a,b),(c,d,e))\mapsto(a,b,c,d,e)$
-
-#### Theorem 3.93
-
-Let $V_1,...,V_m\subseteq V$, define $\Gamma: V_1\times...\times V_m\to V_1+...+V_m$. $\Gamma(v_1,...,v_n)=v_1+...+v_n$ then $\Gamma$ is always surjective. And it is injective if and only if $V_1+...+V_m$ is a direct sum.
-
-Sketch of the proof:
-
-injective $\iff null\ T\{ (0,...,0) \} \iff$ the only way to write $0=v_1,...,v_m$ is $v_1=...=v_n=0 \iff$ then $V_1+...+V_m$ is a direct sum
-
-#### Theorem 3.94
-
-$V_1+...+V_m$ is a direct sum if and only if $dim(V_1+...+V_m)=dim(V_1)+...+dim(V_m)$
-
-Proof:
-
-Use $\Gamma$ above is an isomorphism $\iff$ $V_1+...+V_m$ is a direct sum
-
-Use $\Gamma$ above is an isomorphism $\implies dim(V_1+...+V_m)=dim(V_1)+...+dim(V_m)$
+# Lecture 14
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Matrices 3C
+
+Review
+
+#### Proposition 3.76
+
+$$
+M(Tv)=M(T)M(v)
+$$
+
+#### Theorem 3.78
+
+Let $V,W$ be finite dimensional vector space, and $T\in \mathscr{L}(V,W)$ then $dim\ range\ T=column\ rank (M(T))=rank(M(T))$
+
+Proof:
+
+$range=Span\{Tv_1,...,Tv_n\}$ compare to $Span\{M(T)_{\cdot,1},...,M(T)_{\cdot, n}\}=Span\{M(T)M(v_1),...,M(T)M(v_n)\}=Span\{M(Tv_1),...,M(Tv_n)\}$
+
+Since $M$ is a isomorphism, then the theorem makes sense.
+
+#### Change of Basis
+
+#### Definition 3.79, 3.80
+
+The identity matrix
+
+$$
+I=\begin{pmatrix}
+ 1.& 0\\
+ 0& '1\\
+\end{pmatrix}
+$$
+
+The inverse matrix of an invertible matrix $A$ denoted $A^{-1}$ is the matrix such that
+
+$$
+AA^{-1}=I=A^{-1}A
+$$
+
+Question: Let $u_1,...,u_n$ and $v_1,...,v_n$ be two bases for $V$. What is $M(I,(u_1,...,u_n),(v_1,...,v_n)),I\in \mathscr{L}(V)$
+
+#### Proposition 3.82
+
+Let $u_1,...,u_n$ and $v_1,...,v_n$ be bases of $V$, then $M(I,(u_1,...,u_n),(v_1,...,v_n)),I\in \mathscr{L}(V)$ and $M(I,(v_1,...,v_n),(u_1,...,u_n)),I\in \mathscr{L}(V)$ are inverse to each other.
+
+Proof:
+
+$$
+M(I,(u_1,...,u_n),(v-1,...,v_n)),I\in \mathscr{L}(V) M(I,(v-1,...,v_n),(u_1,...,u_n))=M(I,(u_1,...,u_n),(u_1,...,u_n))
+$$
+
+#### Theorem 3.84 Change of Basis
+
+Let $u_1,...,u_n$ and $v_1,...,v_n$ be two bases for $V$ and $T\in \mathscr{L}(v), A=M(T,(u_1,...,u_n)), B=M(T,(v_1,...,v_n)), C=M(I,(u_1,...,u_n),(v_1,...,v_n))$, then $A=C^{-1}BC$
+
+#### Theorem 3.86
+
+Let $T\in \mathscr{L}(v)$ be an invertible linear map, then $M(T^{-1})=M(T)^{-1}$
+
+### Products and Quotients of Vector Spaces 3E
+
+Goals: To construct vectors spaces from other vector spaces.
+
+#### Definition 3.87
+
+Suppose $V_1,...,V_m$ vectors spaces over some field $\mathbb{F}$, then the product is given by
+
+$$
+V_1\times ...\times V_n=\{(v_1,v_2,...,v_n)\vert v_1\in V_1, v_2\in V_2,...,v_n\in V_n\}
+$$
+
+with addition given by
+
+$$
+(v_1,...,v_n)+(u_1,...,u_n)=(v_1+u_1,...,v_n+u_n)
+$$
+
+and scalar multiplication
+
+$$
+\lambda (v_1,...,v_n)=(\lambda v_1,...,\lambda v_n),\lambda \in \mathbb{F}
+$$
+
+#### Theorem 3.89
+
+If $v_1,...,v_n$ are vectors paces over $\mathbb{F}$ then $V_1\times ...\times V_n$ is a vector space over $\mathbb{F}$
+
+Example:
+
+$V=\mathscr{P}_2(\mathbb{R})\times \mathbb{R}^2=\{(p,v)\vert p\in \mathscr{P}_2(\mathbb{R}), v\in \mathbb{R}^2\}=\{(a_0+a_1x+a_2x,(b,c))\vert a_0,a_1,a_2,b,c\in \mathbb{R}\}$
+
+A basis for $V$ would be $(1,(0,0)),(x,(0,0)),(x^2,(0,0)),(0,(1,0)),(0,(0,1))$
+
+#### Theorem 3.92
+
+$$
+dim(V_1\times ...\times V_n)=dim(V_1)+...+dim(V_n)
+$$
+
+Sketch of proof:
+
+take a basis for each $V_k$, make them vectors in the product then combine the entire list of vector to be basis.
+
+Example:
+
+$\mathbb{R}^2\times \mathbb{R}^3=\{((a,b),(c,d,e))\vert a,b,c,d,e\in \R\}$
+
+$\mathbb{R}^2\times \mathbb{R}^3\cong \mathbb{R}^5,((a,b),(c,d,e))\mapsto(a,b,c,d,e)$
+
+#### Theorem 3.93
+
+Let $V_1,...,V_m\subseteq V$, define $\Gamma: V_1\times...\times V_m\to V_1+...+V_m$. $\Gamma(v_1,...,v_n)=v_1+...+v_n$ then $\Gamma$ is always surjective. And it is injective if and only if $V_1+...+V_m$ is a direct sum.
+
+Sketch of the proof:
+
+injective $\iff null\ T\{ (0,...,0) \} \iff$ the only way to write $0=v_1,...,v_m$ is $v_1=...=v_n=0 \iff$ then $V_1+...+V_m$ is a direct sum
+
+#### Theorem 3.94
+
+$V_1+...+V_m$ is a direct sum if and only if $dim(V_1+...+V_m)=dim(V_1)+...+dim(V_m)$
+
+Proof:
+
+Use $\Gamma$ above is an isomorphism $\iff$ $V_1+...+V_m$ is a direct sum
+
+Use $\Gamma$ above is an isomorphism $\implies dim(V_1+...+V_m)=dim(V_1)+...+dim(V_m)$
diff --git a/pages/Math429/Math429_L15.md b/content/Math429/Math429_L15.md
similarity index 95%
rename from pages/Math429/Math429_L15.md
rename to content/Math429/Math429_L15.md
index 40aaab3..5ed38d4 100644
--- a/pages/Math429/Math429_L15.md
+++ b/content/Math429/Math429_L15.md
@@ -1,136 +1,136 @@
-# Lecture 15
-
-## Chapter III Linear maps
-
-**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
-
-### Products and Quotients of Vector Spaces 3E
-
-Quotient Space
-
-Idea: For a vector space $V$ and a subspace $U$. Construct a new vector space $V/U$ which is elements of $V$ up to equivalence by $U$.
-
-#### Definition 3.97
-
-For $v\in V$ and $U$ a subspace of $V$. Then $v+U=\{v+u\vert u\in U\}$ is the translate of $U$ by $v$. (also called a coset of $U$)
-
-Example
-
-Let $U\subseteq \mathbb{R}^2$ be $U=\{(x,2x)\vert x\in \mathbb{R}\}$, $v=(5,3)\in\mathbb{R}^2$, $v+U=\{(x+3.5, 2x)\vert x\in \R\}$
-
-Describe the solutions to $(p(x))'=x^2$, $p(x)=\frac{1}{3}x^3+c$. Let $u\in \mathscr{P}(\mathbb{R})$ be the constant functions then the set of solutions to $(p(x))'=x^2$ is $\frac{1}{3}x^3+U$
-
-#### Definition 3.99
-
-Suppose $U$ is a subspace of $V$, then the **quotient space** $V/U$ is given by
-
-$$
-V/U=\{v+U\vert v\in V\}
-$$
-
-This is not subset of $V$.
-
-Example:
-
-Let $U\subseteq \mathbb{R}^2$ be $U=\{(x,2x)\vert x\in \mathbb{R}\}$, then $\mathbb{R}^2/U$ is the set of all lines of slope $2$ in $\mathbb{R}^2$
-
-#### Lemma 3.101
-
-Let $U$ be a subspace of $V$ and $v,w\in V$ then the following are equivalent
-
-a) $v-w\in U$
-b) $v+U=w+U$
-c) $(v+U)\cap(w+U)\neq \phi$
-
-Proof:
-
-* $a\implies b$
-
-Suppose $v-w\in U$, we wish to show that $v+U=w+U$.
-
-Let $u\in U$ then $v+u=w+((v-w)+u)\in w+U$
-
-So $v+U\in w+U$ and by symmetry, $w+U\subseteq v+U$ so $v+U=w+U$
-
-* $b\implies c$
-
-$u\neq \phi \implies v+U=w+U\neq \phi$
-
-* $c\implies a$
-
-Suppose $(v+U)\cap (w+U)\neq\phi$ So let $u_1,u_2\in U$ be such that $v+u_1=w+u_2$ but then $v-w=u_2-u_1\in U$
-
-#### Definition 3.102
-
-Let $U\subseteq V$ be a subspace, define the following:
-
-* $(v+U)+(w+U)=(v+w)+U$
-* $\lambda (v+U)=(\lambda v)+U$
-
-#### Theorem 3.103
-
-Let $U\in V$ be a subspace, then $V/U$ is a vector space.
-
-Proof:
-
-Assume for now that Definition 3.102 is well defined.
-
-* commutativity: by commutativity on $V$.
-* associativity: by associativity on $V$.
-* distributive: law by $V$.
-* additive identity: $0+U$.
-* additive inverse: $-v+U$.
-* multiplicative identity: $1(v+U)=v+U$
-
-Why is 3.102 well defined.
-
-Let $v_1,v_2,w_1,w_2\in V$ such that $v_1+U=v_2+U$ and $w_1+U=w_2+U$
-
-Note by lemma 3.101
-
-$v_1-v_2\in U$ and $w_1-w_2\in U \implies$
-
-$(v_1+w_1)-(v_2+w_2)\in U \implies$
-
-$(v_1+w_1)+U=(v_2+w_2)+U=(v_1+U)+(w_1+U)=(v_2+U)+(w_2+U)$
-
-same idea for scalar multiplication.
-
-#### Definition 3.104
-
-Let $U\subseteq V$. The quotient map is
-
-$$
-\pi:V\to V/U, \pi (v)=v+U
-$$
-
-#### Lemma 3.104.1
-
-$\pi$ is a linear map
-
-#### Theorem 3.105
-
-Let $V$ be finite dimensional $U\subseteq V$ then $dim(V/U)=dim\ V-dim\ U$
-
-Proof:
-
-Note $null\ pi=U$, since if $\pi(v)=0=0+u\iff v\in U$
-
-By the Fundamental Theorem of Linear Maps says
-
-$$
-dim\ (range\ \pi)+dim\ (null\ T)=dim\ V
-$$
-
-but $\pi$ is surjective, so we are done.
-
-#### Theorem 3.106
-
-Suppose $T\in \mathscr{L}(V,W)$ then,
-
-Define $\tilde{T}:V/null\ T\to \tilde{W}$ by $\tilde{T}(v+null\ T)$ Then we have the following.
-
-1. $\tilde{T}\circ\pi =T$
-2. $\tilde{T}$ is injective
-3. $range \tilde{T}=range\ T$
-4. $V/null\ T$ and $range\ T$ are isomorphic
+# Lecture 15
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Products and Quotients of Vector Spaces 3E
+
+Quotient Space
+
+Idea: For a vector space $V$ and a subspace $U$. Construct a new vector space $V/U$ which is elements of $V$ up to equivalence by $U$.
+
+#### Definition 3.97
+
+For $v\in V$ and $U$ a subspace of $V$. Then $v+U=\{v+u\vert u\in U\}$ is the translate of $U$ by $v$. (also called a coset of $U$)
+
+Example
+
+Let $U\subseteq \mathbb{R}^2$ be $U=\{(x,2x)\vert x\in \mathbb{R}\}$, $v=(5,3)\in\mathbb{R}^2$, $v+U=\{(x+3.5, 2x)\vert x\in \R\}$
+
+Describe the solutions to $(p(x))'=x^2$, $p(x)=\frac{1}{3}x^3+c$. Let $u\in \mathscr{P}(\mathbb{R})$ be the constant functions then the set of solutions to $(p(x))'=x^2$ is $\frac{1}{3}x^3+U$
+
+#### Definition 3.99
+
+Suppose $U$ is a subspace of $V$, then the **quotient space** $V/U$ is given by
+
+$$
+V/U=\{v+U\vert v\in V\}
+$$
+
+This is not subset of $V$.
+
+Example:
+
+Let $U\subseteq \mathbb{R}^2$ be $U=\{(x,2x)\vert x\in \mathbb{R}\}$, then $\mathbb{R}^2/U$ is the set of all lines of slope $2$ in $\mathbb{R}^2$
+
+#### Lemma 3.101
+
+Let $U$ be a subspace of $V$ and $v,w\in V$ then the following are equivalent
+
+a) $v-w\in U$
+b) $v+U=w+U$
+c) $(v+U)\cap(w+U)\neq \phi$
+
+Proof:
+
+* $a\implies b$
+
+Suppose $v-w\in U$, we wish to show that $v+U=w+U$.
+
+Let $u\in U$ then $v+u=w+((v-w)+u)\in w+U$
+
+So $v+U\in w+U$ and by symmetry, $w+U\subseteq v+U$ so $v+U=w+U$
+
+* $b\implies c$
+
+$u\neq \phi \implies v+U=w+U\neq \phi$
+
+* $c\implies a$
+
+Suppose $(v+U)\cap (w+U)\neq\phi$ So let $u_1,u_2\in U$ be such that $v+u_1=w+u_2$ but then $v-w=u_2-u_1\in U$
+
+#### Definition 3.102
+
+Let $U\subseteq V$ be a subspace, define the following:
+
+* $(v+U)+(w+U)=(v+w)+U$
+* $\lambda (v+U)=(\lambda v)+U$
+
+#### Theorem 3.103
+
+Let $U\in V$ be a subspace, then $V/U$ is a vector space.
+
+Proof:
+
+Assume for now that Definition 3.102 is well defined.
+
+* commutativity: by commutativity on $V$.
+* associativity: by associativity on $V$.
+* distributive: law by $V$.
+* additive identity: $0+U$.
+* additive inverse: $-v+U$.
+* multiplicative identity: $1(v+U)=v+U$
+
+Why is 3.102 well defined.
+
+Let $v_1,v_2,w_1,w_2\in V$ such that $v_1+U=v_2+U$ and $w_1+U=w_2+U$
+
+Note by lemma 3.101
+
+$v_1-v_2\in U$ and $w_1-w_2\in U \implies$
+
+$(v_1+w_1)-(v_2+w_2)\in U \implies$
+
+$(v_1+w_1)+U=(v_2+w_2)+U=(v_1+U)+(w_1+U)=(v_2+U)+(w_2+U)$
+
+same idea for scalar multiplication.
+
+#### Definition 3.104
+
+Let $U\subseteq V$. The quotient map is
+
+$$
+\pi:V\to V/U, \pi (v)=v+U
+$$
+
+#### Lemma 3.104.1
+
+$\pi$ is a linear map
+
+#### Theorem 3.105
+
+Let $V$ be finite dimensional $U\subseteq V$ then $dim(V/U)=dim\ V-dim\ U$
+
+Proof:
+
+Note $null\ pi=U$, since if $\pi(v)=0=0+u\iff v\in U$
+
+By the Fundamental Theorem of Linear Maps says
+
+$$
+dim\ (range\ \pi)+dim\ (null\ T)=dim\ V
+$$
+
+but $\pi$ is surjective, so we are done.
+
+#### Theorem 3.106
+
+Suppose $T\in \mathscr{L}(V,W)$ then,
+
+Define $\tilde{T}:V/null\ T\to \tilde{W}$ by $\tilde{T}(v+null\ T)$ Then we have the following.
+
+1. $\tilde{T}\circ\pi =T$
+2. $\tilde{T}$ is injective
+3. $range \tilde{T}=range\ T$
+4. $V/null\ T$ and $range\ T$ are isomorphic
diff --git a/pages/Math429/Math429_L16.md b/content/Math429/Math429_L16.md
similarity index 96%
rename from pages/Math429/Math429_L16.md
rename to content/Math429/Math429_L16.md
index a784111..0e3a6d0 100644
--- a/pages/Math429/Math429_L16.md
+++ b/content/Math429/Math429_L16.md
@@ -1,125 +1,125 @@
-# Lecture 16
-
-## Chapter IV Polynomials
-
-**$\mathbb{F}$ denotes $\mathbb{R}$ or $\mathbb{C}$**
-
----
-
-Review
-
-### Products and Quotients of Vector Spaces 3E
-
-#### Theorem 3.107
-
-Let $T\in \mathscr{L}(V,W)$, then define $\tilde{T}:V/null\ T\to W$, given by $\tilde{T}(v+null\ T)=Tv$
-
-a) $\tilde{T}\circ \pi=T$ where $\pi: V/null\ T$
-
-b) $\tilde{T}$ is injective
-
-c) $range\ T=range\ \tilde{T}$
-
-d) $V/null\ T$ and $range\ T$ are isomorphic
-
-Example:
-
-Consider $D:\mathscr{P}_M(\mathbb{F})\to \mathscr{P}_{m-1}(\mathbb{F})$ be differentiation map
-
-$D$ is surjective by $D$ is not injective $null\ D=${constant polynomials}
-
-$\tilde{D}:\mathscr{P}_M(\mathbb{F})/$ constant polynomials $\to \mathscr{P}_{m-1}(\mathbb{F})$
-
-This map ($\tilde{D}$) is injective since $range\ \tilde{D}=range\ D=\mathscr{P}_{m-1}(\mathbb{F})$
-
-$\tilde{D}^{-1}:\mathscr{P}_{m-1}(\mathbb{F})\to \mathscr{P}_M(\mathbb{F})/$ constant polynomials (anti-derivative)
-
----
-
-New materials
-
-### Complex numbers 1A
-
-#### Definition 1.1
-
-Complex numbers
-
-$z=a+bi$ is a complex number for $a,b\in \mathbb{R}$, ($Re\ z=a,Im\ z=b$)
-
-$\bar{z}=a-bi$ complex conjugate $|z|=\sqrt{a^2+b^2}$
-
-#### Properties 1.n
-
-1. $z+\bar{z}=2a$
-2. $z-\bar{z}=2b$
-3. $z\bar{z}=|z|^2$
-4. $\overline{z+w}=\bar{z}+\bar{w}$
-5. $\overline{zw}=\bar{z}\bar{w}$
-6. $\bar{\bar{z}}=z$
-7. $|a|\leq |z|$
-8. $|b|\leq |z|$
-9. $|\bar{z}|=|z|$
-10. $|zw|=|z||w|$
-11. $|z+w|\leq |z|+|w|$
-
-### Polynomials 4A
-
-$$
-p(x)=\sum_{i=0}^{n}a_i x^i
-$$
-
-#### Lemma 4.6
-
-If $p$ is a polynomial and $\lambda$ is a zero of $p$, then $p(x)=(x-\lambda)q(x)$ for some polynomial $q(x)$ with $deg\ q=deg\ p -1$
-
-#### Lemma 4.8
-
-If $m=deg\ p,p\neq 0$ then $p$ has at most $m$ zeros.
-
-Sketch of Proof:
-
-Induction using 4.6
-
-### Division Algorithm 4B
-
-#### Theorem 4.9
-
-Suppose $p,s\in \mathscr{P}(\mathbb{F}),s\neq 0$. Then there exists a unique $q,r\in \mathscr{P}(\mathbb{F})$ such that $p=sq+r$, and $deg\ r\leq deg\ s$
-
-Proof:
-
-Let $n=deg\ p,m=deg\ s$ if $n< m$, we are done $q=0,r=p$.
-
-Otherwise ($n\leq m$) consider $1,z,...,z^{m-1},s,zs,...,z^{r-m}s$. is a basis of $\mathscr{P}_n(\mathbb{F})$.
-
-Then there exists a unique $a_1,...,a_n\in\mathbb{F}$ such that $p(z)=a_0+a_1z+...+a_{m-1}z^{m-1}+a_m s+...+ a_n z^{n-m}s=(a_0+a_1z+...+a_{m-1}z^{m-1})+s(a_m +...+a_n z^{n-m})$
-
-let $r=(a_0+a_1z+...+a_{m-1}z^{m-1}), q=(a_m +...+a_n z^{n-m})$ then we are done.
-
-### Zeros of polynomial over $\mathbb{C}$ 4C
-
-#### Theorem 4.12 Fundamental Theorem of Algorithm
-
-Every non-constant polynomial over $\mathbb{C}$ has at least one root.
-
-#### Theorem 4.13
-
-If $p\in \mathscr{P}(\mathbb{C})$ then $p$ has a unique factorization up to order as $p(z)=c(z-\lambda_1)(z-\lambda_m)$ for $c,\lambda_1,...,\lambda_m\in \mathbb{C}$
-
-Sketch of Proof:
-
-(4.12)+(4.6)
-
-### Zeros of polynomial over $\mathbb{R}$ 4D
-
-#### Proposition 4.14
-
-If $p\in \mathscr{P}(\mathbb{C})$ with real coefficients, then if $p(\lambda )=0$ then $p(\bar{\lambda})=0$
-
-#### Theorem 4.16 Fundamental Theorem of Algorithm for real numbers
-
-If $p$ is a non-constant polynomial over $\mathbb{R}$ the $p$ has a unique factorization
-
-$p(x)=c(x-\lambda_1)...(x-\lambda_m)(x^2+b_1 x+c_1)...(x^2+b_m x+c_m)$
-
-with $b_k^2\leq 4c_k$
+# Lecture 16
+
+## Chapter IV Polynomials
+
+**$\mathbb{F}$ denotes $\mathbb{R}$ or $\mathbb{C}$**
+
+---
+
+Review
+
+### Products and Quotients of Vector Spaces 3E
+
+#### Theorem 3.107
+
+Let $T\in \mathscr{L}(V,W)$, then define $\tilde{T}:V/null\ T\to W$, given by $\tilde{T}(v+null\ T)=Tv$
+
+a) $\tilde{T}\circ \pi=T$ where $\pi: V/null\ T$
+
+b) $\tilde{T}$ is injective
+
+c) $range\ T=range\ \tilde{T}$
+
+d) $V/null\ T$ and $range\ T$ are isomorphic
+
+Example:
+
+Consider $D:\mathscr{P}_M(\mathbb{F})\to \mathscr{P}_{m-1}(\mathbb{F})$ be differentiation map
+
+$D$ is surjective by $D$ is not injective $null\ D=${constant polynomials}
+
+$\tilde{D}:\mathscr{P}_M(\mathbb{F})/$ constant polynomials $\to \mathscr{P}_{m-1}(\mathbb{F})$
+
+This map ($\tilde{D}$) is injective since $range\ \tilde{D}=range\ D=\mathscr{P}_{m-1}(\mathbb{F})$
+
+$\tilde{D}^{-1}:\mathscr{P}_{m-1}(\mathbb{F})\to \mathscr{P}_M(\mathbb{F})/$ constant polynomials (anti-derivative)
+
+---
+
+New materials
+
+### Complex numbers 1A
+
+#### Definition 1.1
+
+Complex numbers
+
+$z=a+bi$ is a complex number for $a,b\in \mathbb{R}$, ($Re\ z=a,Im\ z=b$)
+
+$\bar{z}=a-bi$ complex conjugate $|z|=\sqrt{a^2+b^2}$
+
+#### Properties 1.n
+
+1. $z+\bar{z}=2a$
+2. $z-\bar{z}=2b$
+3. $z\bar{z}=|z|^2$
+4. $\overline{z+w}=\bar{z}+\bar{w}$
+5. $\overline{zw}=\bar{z}\bar{w}$
+6. $\bar{\bar{z}}=z$
+7. $|a|\leq |z|$
+8. $|b|\leq |z|$
+9. $|\bar{z}|=|z|$
+10. $|zw|=|z||w|$
+11. $|z+w|\leq |z|+|w|$
+
+### Polynomials 4A
+
+$$
+p(x)=\sum_{i=0}^{n}a_i x^i
+$$
+
+#### Lemma 4.6
+
+If $p$ is a polynomial and $\lambda$ is a zero of $p$, then $p(x)=(x-\lambda)q(x)$ for some polynomial $q(x)$ with $deg\ q=deg\ p -1$
+
+#### Lemma 4.8
+
+If $m=deg\ p,p\neq 0$ then $p$ has at most $m$ zeros.
+
+Sketch of Proof:
+
+Induction using 4.6
+
+### Division Algorithm 4B
+
+#### Theorem 4.9
+
+Suppose $p,s\in \mathscr{P}(\mathbb{F}),s\neq 0$. Then there exists a unique $q,r\in \mathscr{P}(\mathbb{F})$ such that $p=sq+r$, and $deg\ r\leq deg\ s$
+
+Proof:
+
+Let $n=deg\ p,m=deg\ s$ if $n< m$, we are done $q=0,r=p$.
+
+Otherwise ($n\leq m$) consider $1,z,...,z^{m-1},s,zs,...,z^{r-m}s$. is a basis of $\mathscr{P}_n(\mathbb{F})$.
+
+Then there exists a unique $a_1,...,a_n\in\mathbb{F}$ such that $p(z)=a_0+a_1z+...+a_{m-1}z^{m-1}+a_m s+...+ a_n z^{n-m}s=(a_0+a_1z+...+a_{m-1}z^{m-1})+s(a_m +...+a_n z^{n-m})$
+
+let $r=(a_0+a_1z+...+a_{m-1}z^{m-1}), q=(a_m +...+a_n z^{n-m})$ then we are done.
+
+### Zeros of polynomial over $\mathbb{C}$ 4C
+
+#### Theorem 4.12 Fundamental Theorem of Algorithm
+
+Every non-constant polynomial over $\mathbb{C}$ has at least one root.
+
+#### Theorem 4.13
+
+If $p\in \mathscr{P}(\mathbb{C})$ then $p$ has a unique factorization up to order as $p(z)=c(z-\lambda_1)(z-\lambda_m)$ for $c,\lambda_1,...,\lambda_m\in \mathbb{C}$
+
+Sketch of Proof:
+
+(4.12)+(4.6)
+
+### Zeros of polynomial over $\mathbb{R}$ 4D
+
+#### Proposition 4.14
+
+If $p\in \mathscr{P}(\mathbb{C})$ with real coefficients, then if $p(\lambda )=0$ then $p(\bar{\lambda})=0$
+
+#### Theorem 4.16 Fundamental Theorem of Algorithm for real numbers
+
+If $p$ is a non-constant polynomial over $\mathbb{R}$ the $p$ has a unique factorization
+
+$p(x)=c(x-\lambda_1)...(x-\lambda_m)(x^2+b_1 x+c_1)...(x^2+b_m x+c_m)$
+
+with $b_k^2\leq 4c_k$
diff --git a/pages/Math429/Math429_L17.md b/content/Math429/Math429_L17.md
similarity index 96%
rename from pages/Math429/Math429_L17.md
rename to content/Math429/Math429_L17.md
index 22683cf..f024163 100644
--- a/pages/Math429/Math429_L17.md
+++ b/content/Math429/Math429_L17.md
@@ -1,105 +1,105 @@
-# Lecture 17
-
-## Chapter III Linear maps
-
-**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
-
-### Duality 3F
-
-#### Definition 3.108
-
-A **linear functional** on $V$ is a linear map from $V$ to $\mathbb{F}$.
-
-#### Definition 3.110
-
-The **dual space** of V denoted by $V'$ (or in some books $\check{V},V^*$) is given by $V'=\mathscr{L}(V,\mathbb{F})$.
-
-The elements of $V'$ are also called **linear functional**.
-
-#### Theorem 3.111
-
-The $dim\ V'=dim\ V$.
-
-Proof:
-
-$dim\ \mathscr{L}(V,\mathbb{F})=dim\ V\cdot dim\ \mathbb{F}$
-
-#### Definition 3.112
-
-If $v_1,...,v_n$ is a basis for $V$, then the **dual basis** of $v_1,..,v_n$ is $\psi_1,...,\psi_n\in V'$ where
-
-$$
-\psi_j(v_k)=\begin{cases}
- 1 \textup{ if }k=i\\
- 0 \textup{ if }k\neq i
-\end{cases}
-$$
-
-Example:
-
-$V=\mathbb{R}^3$ $e_1,e_2,e_3$ the standard basis, the dual basis $\psi_1,\psi_2,\psi_3$ is given by $\psi_1 (x,y,z)=x,\psi_2 (x,y,z)=y,\psi_3 (x,y,z)=z$
-
-#### Theorem 3.116
-
-When $v_1,...,v_n$ a basis of $V$ the dual basis $\psi_1,...,\psi_n\in V'$ is a basis
-
-Sketch of Proof:
-
-$dim\ V'=dim\ V=n$, $\psi_1,...,\psi_n\in V'$ are linearly independent.
-
-#### Theorem 3.114
-
-Given $v_1,...,v_n$ a basis of $V$, and $\psi_1,...,\psi_n\in V'$ be dual basis of $V'$. then for $v\in V$,
-
-$$
-v=\psi_1(v)v_1+...+\psi_n(v)v_n
-$$
-
-Proof:
-
-Let $V=a_1 v_1+...+a_n v_n$, consider $\psi_k(v)$, by definition $\psi_k(v)=\psi_k(a_1 v_1+...+a_n v_n)=a_1\psi_k( v_1)+...+a_n\psi_k( v_n)=a_k$
-
-#### Definition 3.118
-
-Suppose $T\in \mathscr{L}(V,W)$. The **dual map** $T'\in \mathcal{R}( W', V')$ defined by $T'(\psi)=\psi\circ T$. ($\psi\in W'=\mathcal{R}(W,\mathbb{F}), T'(\psi) \in V'=\mathscr{L}(V,\mathbb{F})$)
-
-Example:
-
-$T:\mathscr{P}_2(\mathbb{F})\to \mathscr{P}_3(\mathbb{F}),T(f)=xf$
-
-$$
-T'(\mathscr{P}_3(\mathbb{F}))'\to (\mathscr{P}_2(\mathbb{F}))',T'(\psi)(f)=\psi(T(f))=\psi(xf)
-$$
-
-Suppose $\psi(f)=f'(1)\to T(\psi)(f)=(xf)'(1)=f(1)+(xf')(1)=f(1)+f'(1)$
-
-#### Theorem 3.120
-
-Suppose $T\in \mathscr{L}(V,W)$
-
-a) $(S+T)'=S'+T', \forall S\in \mathscr{L}(V,W)$
-b) $(\lambda T)'=\lambda T', \forall \lambda\in \mathbb{F}$
-c) $(ST)'=T'S', \forall S\in \mathscr{L}(V,W)$
-
-Goal: find $range\ T'$ and $null\ T'$
-
-#### Definition 3.121
-
-Let $U\subseteq V$ be a subspace. The **annihilator** of $U$, denoted by $U^0$ is given by $U^0=\{ \psi\in V'\vert \psi(u)=0\forall u\in U\}$
-
-#### Proposition 3.124
-
-Given $U\subseteq V$ be a subspace. The **annihilator** of $U$, $U^0\subseteq V'$ is a subspace.
-
-$$
-dim\ U^0=dim\ V-dim\ U=(dim\ V')-dim\ U
-$$
-
-Sketch of proof:
-
-look at $i:U\to V,i(u)=u$, compute $i':V'\to U'$ look at $null\ i'=U^0$
-
-#### Theorem 3.128, 3.130
-
-a) $null\ T'=(range\ T)^0$, $dim (null\ T')=dim\ null\ T+dim\ W-dim\ V$
-b) $range\ T'=(null\ T)^0$, $dim (range\ T')=dim (range\ T)$
+# Lecture 17
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Duality 3F
+
+#### Definition 3.108
+
+A **linear functional** on $V$ is a linear map from $V$ to $\mathbb{F}$.
+
+#### Definition 3.110
+
+The **dual space** of V denoted by $V'$ (or in some books $\check{V},V^*$) is given by $V'=\mathscr{L}(V,\mathbb{F})$.
+
+The elements of $V'$ are also called **linear functional**.
+
+#### Theorem 3.111
+
+The $dim\ V'=dim\ V$.
+
+Proof:
+
+$dim\ \mathscr{L}(V,\mathbb{F})=dim\ V\cdot dim\ \mathbb{F}$
+
+#### Definition 3.112
+
+If $v_1,...,v_n$ is a basis for $V$, then the **dual basis** of $v_1,..,v_n$ is $\psi_1,...,\psi_n\in V'$ where
+
+$$
+\psi_j(v_k)=\begin{cases}
+ 1 \textup{ if }k=i\\
+ 0 \textup{ if }k\neq i
+\end{cases}
+$$
+
+Example:
+
+$V=\mathbb{R}^3$ $e_1,e_2,e_3$ the standard basis, the dual basis $\psi_1,\psi_2,\psi_3$ is given by $\psi_1 (x,y,z)=x,\psi_2 (x,y,z)=y,\psi_3 (x,y,z)=z$
+
+#### Theorem 3.116
+
+When $v_1,...,v_n$ a basis of $V$ the dual basis $\psi_1,...,\psi_n\in V'$ is a basis
+
+Sketch of Proof:
+
+$dim\ V'=dim\ V=n$, $\psi_1,...,\psi_n\in V'$ are linearly independent.
+
+#### Theorem 3.114
+
+Given $v_1,...,v_n$ a basis of $V$, and $\psi_1,...,\psi_n\in V'$ be dual basis of $V'$. then for $v\in V$,
+
+$$
+v=\psi_1(v)v_1+...+\psi_n(v)v_n
+$$
+
+Proof:
+
+Let $V=a_1 v_1+...+a_n v_n$, consider $\psi_k(v)$, by definition $\psi_k(v)=\psi_k(a_1 v_1+...+a_n v_n)=a_1\psi_k( v_1)+...+a_n\psi_k( v_n)=a_k$
+
+#### Definition 3.118
+
+Suppose $T\in \mathscr{L}(V,W)$. The **dual map** $T'\in \mathcal{R}( W', V')$ defined by $T'(\psi)=\psi\circ T$. ($\psi\in W'=\mathcal{R}(W,\mathbb{F}), T'(\psi) \in V'=\mathscr{L}(V,\mathbb{F})$)
+
+Example:
+
+$T:\mathscr{P}_2(\mathbb{F})\to \mathscr{P}_3(\mathbb{F}),T(f)=xf$
+
+$$
+T'(\mathscr{P}_3(\mathbb{F}))'\to (\mathscr{P}_2(\mathbb{F}))',T'(\psi)(f)=\psi(T(f))=\psi(xf)
+$$
+
+Suppose $\psi(f)=f'(1)\to T(\psi)(f)=(xf)'(1)=f(1)+(xf')(1)=f(1)+f'(1)$
+
+#### Theorem 3.120
+
+Suppose $T\in \mathscr{L}(V,W)$
+
+a) $(S+T)'=S'+T', \forall S\in \mathscr{L}(V,W)$
+b) $(\lambda T)'=\lambda T', \forall \lambda\in \mathbb{F}$
+c) $(ST)'=T'S', \forall S\in \mathscr{L}(V,W)$
+
+Goal: find $range\ T'$ and $null\ T'$
+
+#### Definition 3.121
+
+Let $U\subseteq V$ be a subspace. The **annihilator** of $U$, denoted by $U^0$ is given by $U^0=\{ \psi\in V'\vert \psi(u)=0\forall u\in U\}$
+
+#### Proposition 3.124
+
+Given $U\subseteq V$ be a subspace. The **annihilator** of $U$, $U^0\subseteq V'$ is a subspace.
+
+$$
+dim\ U^0=dim\ V-dim\ U=(dim\ V')-dim\ U
+$$
+
+Sketch of proof:
+
+look at $i:U\to V,i(u)=u$, compute $i':V'\to U'$ look at $null\ i'=U^0$
+
+#### Theorem 3.128, 3.130
+
+a) $null\ T'=(range\ T)^0$, $dim (null\ T')=dim\ null\ T+dim\ W-dim\ V$
+b) $range\ T'=(null\ T)^0$, $dim (range\ T')=dim (range\ T)$
diff --git a/pages/Math429/Math429_L18.md b/content/Math429/Math429_L18.md
similarity index 96%
rename from pages/Math429/Math429_L18.md
rename to content/Math429/Math429_L18.md
index f6fe39e..a371cd4 100644
--- a/pages/Math429/Math429_L18.md
+++ b/content/Math429/Math429_L18.md
@@ -1,113 +1,113 @@
-# Lecture 18
-
-## Chapter III Linear maps
-
-**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
-
-### Duality 3F
-
----
-
-Review
-
-#### Theorem 3.128, 3.130
-
-Let $V,W$ be a finite dimensional vector space, $T\in \mathscr{L}(V,W)$
-
-a) $null\ T'=(range\ T)^0$, $dim (null\ T')=dim\ null\ T+dim\ W-dim\ V$
-b) $range\ T'=(null\ T)^0$, $dim (range\ T')=dim (range\ T)$
-c) dim(range\ T')= dim(range\ T)
-
----
-
-New materials
-
-#### Theorem 3.129, 3.131
-
-Let $V,W$ be a finite dimensional vector space, $T\in \mathscr{L}(V,W)$
-
-a) $T$ is injective $\iff T'$ is surjective
-b) $T$ is surjective $\iff T'$ is injective
-
-Proof:
-
-$T$ is injective $\iff null\ T=\{0\}\iff range\ T'=V'\iff T'$ surjective
-
-$T$ is surjective $\iff range\ T=W\iff null\ T'=0\iff T'$ injective
-
-#### Theorem 3.132
-
-Let $V,W$ be a finite dimensional vector space, $T\in \mathscr{L}(V,W)$
-
-Then $M(T')=(M(T))^T$. Where the basis for $M(T)'$ are the dual basis to the ones for $M(T)$
-
-#### Theorem 3.133
-
-$col\ rank\ A=row\ rank\ A$
-
-Proof: $col\ rank\ A=col\ rank\ (M(T))=dim\ range\ T=dim\ range\ T'=dim\ range\ T'=col\ rank\ (M(T'))=col\ rank\ (M(T)^T)=row\ rank\ (M(T))$
-
-## Chapter V Eigenvalue and Eigenvectors
-
-### Invariant Subspaces 5A
-
-Goal: Study maps in $\mathscr{L}(V)$ (linear operations)
-
-Question: Given $T\in \mathscr{L}(V)$ when can I restrict to $U\subseteq V$ such that $T\vert_U\in \mathscr{L}(U)$
-
-#### Definition 5.2
-
-Suppose $T\in \mathscr{L}(V)$ and $U\subseteq V$ a subspace is said to be invariant under $T$ if $Tu\in U,\forall u\in U$
-
-Example:
-
-For any $T\in \mathscr{L}(V)$, the following are invariance subspaces.
-
-1. $\{0\}$
-2. $V$
-3. $null\ T$, $v\in null\ T\implies Tv=0\in null\ T$
-4. $range\ T$, $v\in range\ T\subseteq V \implies Tv\in range\ T$
-
-#### Definition 5.5
-
-Suppose $T\in\mathscr{L}(V)$, then for $\lambda \in \mathbb{F}$ is an **eigenvalue** of $T$ if $\exists v\in V$ such that $v\neq 0$ and $Tv=\lambda v$.
-
-#### Definition 5.8
-
-Suppose $T\in\mathscr{L}(V)$ and $\lambda \in \mathbb{F}$ is an eigenvalue of $T$. The $v\in V$ is an **eigenvector** of $T$ corresponding to $\lambda$ if $v\neq 0$ and $Tv=\lambda v$
-
-Note: if $\lambda$ is an eigenvalue of $T$ and $v$ an eigenvector corresponding to $\lambda$, then $U=Span(V)$ is an invariant subspace. and $T\vert_U$ is multiplication by $\lambda$
-
-#### Proposition 5.7
-
-$V$ is finite dimensional $T\in \mathscr{L},\lambda\in \mathbb{F}$ then the following are equivalent: (TFAE)
-
-a) $\lambda$ is an eigenvalue
-b) $T-\lambda I$ is not injective
-c) $T-\lambda I$ is not surjective
-d) $T-\lambda I$ is not invertible
-
-Proof:
-
-(a)$\iff$ (b) $\lambda$ is an eigenvalue $\iff \exists v\in V$ such that $Tv=\lambda v\iff \exists v\in V, v\neq 0, (T-\lambda I)v=0$
-
-Example:
-
-$T(x,y)=(-y,x)$ what are the eigenvalues of $T$.
-
-If $\mathbb{F}=\mathbb{R}$ rotation by $90\degree$, so no eigenvalues.
-
-what if $\mathbb{F}=\mathbb{C}$? we can solve the system $T(x,y)=\lambda (x,y),(-y,x)=\lambda (x,y)$
-
-$$
--y=\lambda x \\
-x=\lambda y
-$$
-
-So
-
-$$
--1=\lambda ^2,\lambda =\plusmn i
-$$
-
+# Lecture 18
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Duality 3F
+
+---
+
+Review
+
+#### Theorem 3.128, 3.130
+
+Let $V,W$ be a finite dimensional vector space, $T\in \mathscr{L}(V,W)$
+
+a) $null\ T'=(range\ T)^0$, $dim (null\ T')=dim\ null\ T+dim\ W-dim\ V$
+b) $range\ T'=(null\ T)^0$, $dim (range\ T')=dim (range\ T)$
+c) dim(range\ T')= dim(range\ T)
+
+---
+
+New materials
+
+#### Theorem 3.129, 3.131
+
+Let $V,W$ be a finite dimensional vector space, $T\in \mathscr{L}(V,W)$
+
+a) $T$ is injective $\iff T'$ is surjective
+b) $T$ is surjective $\iff T'$ is injective
+
+Proof:
+
+$T$ is injective $\iff null\ T=\{0\}\iff range\ T'=V'\iff T'$ surjective
+
+$T$ is surjective $\iff range\ T=W\iff null\ T'=0\iff T'$ injective
+
+#### Theorem 3.132
+
+Let $V,W$ be a finite dimensional vector space, $T\in \mathscr{L}(V,W)$
+
+Then $M(T')=(M(T))^T$. Where the basis for $M(T)'$ are the dual basis to the ones for $M(T)$
+
+#### Theorem 3.133
+
+$col\ rank\ A=row\ rank\ A$
+
+Proof: $col\ rank\ A=col\ rank\ (M(T))=dim\ range\ T=dim\ range\ T'=dim\ range\ T'=col\ rank\ (M(T'))=col\ rank\ (M(T)^T)=row\ rank\ (M(T))$
+
+## Chapter V Eigenvalue and Eigenvectors
+
+### Invariant Subspaces 5A
+
+Goal: Study maps in $\mathscr{L}(V)$ (linear operations)
+
+Question: Given $T\in \mathscr{L}(V)$ when can I restrict to $U\subseteq V$ such that $T\vert_U\in \mathscr{L}(U)$
+
+#### Definition 5.2
+
+Suppose $T\in \mathscr{L}(V)$ and $U\subseteq V$ a subspace is said to be invariant under $T$ if $Tu\in U,\forall u\in U$
+
+Example:
+
+For any $T\in \mathscr{L}(V)$, the following are invariance subspaces.
+
+1. $\{0\}$
+2. $V$
+3. $null\ T$, $v\in null\ T\implies Tv=0\in null\ T$
+4. $range\ T$, $v\in range\ T\subseteq V \implies Tv\in range\ T$
+
+#### Definition 5.5
+
+Suppose $T\in\mathscr{L}(V)$, then for $\lambda \in \mathbb{F}$ is an **eigenvalue** of $T$ if $\exists v\in V$ such that $v\neq 0$ and $Tv=\lambda v$.
+
+#### Definition 5.8
+
+Suppose $T\in\mathscr{L}(V)$ and $\lambda \in \mathbb{F}$ is an eigenvalue of $T$. The $v\in V$ is an **eigenvector** of $T$ corresponding to $\lambda$ if $v\neq 0$ and $Tv=\lambda v$
+
+Note: if $\lambda$ is an eigenvalue of $T$ and $v$ an eigenvector corresponding to $\lambda$, then $U=Span(V)$ is an invariant subspace. and $T\vert_U$ is multiplication by $\lambda$
+
+#### Proposition 5.7
+
+$V$ is finite dimensional $T\in \mathscr{L},\lambda\in \mathbb{F}$ then the following are equivalent: (TFAE)
+
+a) $\lambda$ is an eigenvalue
+b) $T-\lambda I$ is not injective
+c) $T-\lambda I$ is not surjective
+d) $T-\lambda I$ is not invertible
+
+Proof:
+
+(a)$\iff$ (b) $\lambda$ is an eigenvalue $\iff \exists v\in V$ such that $Tv=\lambda v\iff \exists v\in V, v\neq 0, (T-\lambda I)v=0$
+
+Example:
+
+$T(x,y)=(-y,x)$ what are the eigenvalues of $T$.
+
+If $\mathbb{F}=\mathbb{R}$ rotation by $90\degree$, so no eigenvalues.
+
+what if $\mathbb{F}=\mathbb{C}$? we can solve the system $T(x,y)=\lambda (x,y),(-y,x)=\lambda (x,y)$
+
+$$
+-y=\lambda x \\
+x=\lambda y
+$$
+
+So
+
+$$
+-1=\lambda ^2,\lambda =\plusmn i
+$$
+
when $\lambda =-i$, $v=(1,i)$, $\lambda=i$, $v=(1,-i)$
\ No newline at end of file
diff --git a/pages/Math429/Math429_L19.md b/content/Math429/Math429_L19.md
similarity index 96%
rename from pages/Math429/Math429_L19.md
rename to content/Math429/Math429_L19.md
index 4b4b56b..87b09f3 100644
--- a/pages/Math429/Math429_L19.md
+++ b/content/Math429/Math429_L19.md
@@ -1,118 +1,118 @@
-# Lecture 19
-
-## Chapter V Eigenvalue and Eigenvectors
-
-### Invariant Subspaces 5A
-
-#### Proposition 5.11
-
-Suppose $T\in \mathscr{L}(V)$, let $v_1,...,v_n$ be eigenvectors for distinct eigenvalues $\lambda_1,...,\lambda_m$. Then $v_1,...,v_n$ is linearly independent.
-
-Proof:
-
-Suppose $v_1,...,v_m$ is linearly dependent, we can assume that $v_1,...,v_{m-1}$ is linearly independent. So let $a_1,...,a_{m}$ not all $=0$. such that $a_1v_1+...+a_nv_m=0$, then we apply $(T-\lambda_m I)$ (map $v_n$ to 0)
-
-$$
-(T-\lambda_m I)v_k=(\lambda_k-\lambda_m)v_k
-$$
-
-so
-
-$$
-(T-\lambda_m I)=a_1(\lambda_1-\lambda_m)v_1+...+a_{m-1}(\lambda_{m-1}-\lambda_{m})v_m
-$$
-
-but not all of the $a_1,...,a_{m-1}$ are zero and $\lambda_k-\lambda_m\neq 0$ for $1\leq k\leq \lambda$ so they must be linearly independent.
-
-#### Theorem 5.12
-
-Suppose $dim\ V=n$ and $T\in \mathscr{L}(V)$ then $T$ has at most $n$ distinct eigenvalues
-
-Proof:
-
-Since $dim\ V=n$ no linearly independent list has length than $n$ so by **Proposition 5.11**, there are at most $n$ distinct eigenvalues.
-
-#### Polynomials on operators
-
-$p(z)=z+3z+z^3\in \mathscr{P}(\mathbb{R})$
-
-let $T=\begin{pmatrix}
- 1&1\\
- 0&1
-\end{pmatrix}\in \mathscr{L}(\mathbb{R}^2)$
-
-$P(T)=2I+3T+T^3=2I+3T+\begin{pmatrix}
- 1&3\\
- 0&1
-\end{pmatrix}=\begin{pmatrix}
- 6&4\\
- 0&6
-\end{pmatrix}$
-
-#### Notation
-
-$T^m=TT...TT$ (m times) $T$ must be an operator within the same space
-
-$T^0=I$
-
-$T^{-m}=(T^{-1})^m$ (where $T$ is invertible)
-
-if $p\in \mathscr{P}(\mathbb{F})$ with $p(z)=\sum_{i=0}^na_iz^i$ and $T\in \mathscr{L}(V)$ $V$ is a vector space over $\mathbb{F}$
-
-$$
-p(T)\sum_{i=0}^na_iT^i
-$$
-
-#### Lemma 5.17
-
-Given $p,q\in \mathscr{P}(\mathbb{F})$, $T\in \mathscr{L}(V)$
-
-then
-
-a) $(pq)T=p(T)q(T)$
-b) $p(T)q(T)=q(T)p(T)$
-
-#### Theorem 5.18
-
-Suppose $T\in \mathscr{L}(V),p\in \mathscr{P}(\mathbb{F})$, then $null\ (P(T))$ and $range\ (P(T))$ are invariant with respect to $T$.
-
-### 5B The Minimal Polynomial
-
-#### Theorem 5.15
-
-Every operator on **finite dimensional complex vector space** has at least on eigenvalues.
-
-Proof:
-
-Let $dim\ V=n,T\in \mathscr{L}(V), v\in V$ be a nonzero vector.
-
-Now consider $v,Tv,T^2 v,...,T^n v$. Since this list is of length $n+1$, there is a linear dependence. Let $m$ be the smallest integer such that $v,Tv,..T^m v$ is linearly dependent, then
-
-$$
-a_0 v+a_1Tv+...+a_m T^m v=0
-$$
-
-Let $p(z)=a_0+a_1 z+...+a_m z^m$, then $p(T)(v)=0,p(z)\neq 0$
-
-$p(z)$ factors as $(z-\lambda) q(z)$ where $degree\ q< degree\ p$
-
-$$
-p(T)(v)=((T-\lambda I)q(T))(v)=0
-$$
-
-$$
-(T-\lambda I)(q(T)(v))=0
-$$
-
-but $m$ was minimal so that $p(z)=a_0+a_1 z+...+a_m z^m$ were linearly independent, so $q(T)(v)\neq 0$, so $\lambda$ is an eigenvalue with eigenvector $q(T)(v)$
-
-#### Definition 5.24
-
-Suppose $V$ is finite dimensional $T\in\mathscr{L}(V),p\in \mathscr{P}(\mathbb{F})$, then the **minimal polynomial** is the unique monic (the coefficient of the highest degree is 1) polynomial of minimal degree such that $p(T)=0$
-
-#### Theorem 5.27
-
-Let $V$ be finite dimensional, and $T\in\mathscr{L}(V)$, $p(z)$ the minimal polynomial.
-
-1. The roots of $p(z)$ are exactly the eigenvalues of $T$.
-2. If $\mathbb{F}=\mathbb{C}$, $p(z)=(z-\lambda_1)...(z-\lambda_m)$ where $\lambda_1,...,\lambda_m$ are all the eigenvalues.
+# Lecture 19
+
+## Chapter V Eigenvalue and Eigenvectors
+
+### Invariant Subspaces 5A
+
+#### Proposition 5.11
+
+Suppose $T\in \mathscr{L}(V)$, let $v_1,...,v_n$ be eigenvectors for distinct eigenvalues $\lambda_1,...,\lambda_m$. Then $v_1,...,v_n$ is linearly independent.
+
+Proof:
+
+Suppose $v_1,...,v_m$ is linearly dependent, we can assume that $v_1,...,v_{m-1}$ is linearly independent. So let $a_1,...,a_{m}$ not all $=0$. such that $a_1v_1+...+a_nv_m=0$, then we apply $(T-\lambda_m I)$ (map $v_n$ to 0)
+
+$$
+(T-\lambda_m I)v_k=(\lambda_k-\lambda_m)v_k
+$$
+
+so
+
+$$
+(T-\lambda_m I)=a_1(\lambda_1-\lambda_m)v_1+...+a_{m-1}(\lambda_{m-1}-\lambda_{m})v_m
+$$
+
+but not all of the $a_1,...,a_{m-1}$ are zero and $\lambda_k-\lambda_m\neq 0$ for $1\leq k\leq \lambda$ so they must be linearly independent.
+
+#### Theorem 5.12
+
+Suppose $dim\ V=n$ and $T\in \mathscr{L}(V)$ then $T$ has at most $n$ distinct eigenvalues
+
+Proof:
+
+Since $dim\ V=n$ no linearly independent list has length than $n$ so by **Proposition 5.11**, there are at most $n$ distinct eigenvalues.
+
+#### Polynomials on operators
+
+$p(z)=z+3z+z^3\in \mathscr{P}(\mathbb{R})$
+
+let $T=\begin{pmatrix}
+ 1&1\\
+ 0&1
+\end{pmatrix}\in \mathscr{L}(\mathbb{R}^2)$
+
+$P(T)=2I+3T+T^3=2I+3T+\begin{pmatrix}
+ 1&3\\
+ 0&1
+\end{pmatrix}=\begin{pmatrix}
+ 6&4\\
+ 0&6
+\end{pmatrix}$
+
+#### Notation
+
+$T^m=TT...TT$ (m times) $T$ must be an operator within the same space
+
+$T^0=I$
+
+$T^{-m}=(T^{-1})^m$ (where $T$ is invertible)
+
+if $p\in \mathscr{P}(\mathbb{F})$ with $p(z)=\sum_{i=0}^na_iz^i$ and $T\in \mathscr{L}(V)$ $V$ is a vector space over $\mathbb{F}$
+
+$$
+p(T)\sum_{i=0}^na_iT^i
+$$
+
+#### Lemma 5.17
+
+Given $p,q\in \mathscr{P}(\mathbb{F})$, $T\in \mathscr{L}(V)$
+
+then
+
+a) $(pq)T=p(T)q(T)$
+b) $p(T)q(T)=q(T)p(T)$
+
+#### Theorem 5.18
+
+Suppose $T\in \mathscr{L}(V),p\in \mathscr{P}(\mathbb{F})$, then $null\ (P(T))$ and $range\ (P(T))$ are invariant with respect to $T$.
+
+### 5B The Minimal Polynomial
+
+#### Theorem 5.15
+
+Every operator on **finite dimensional complex vector space** has at least on eigenvalues.
+
+Proof:
+
+Let $dim\ V=n,T\in \mathscr{L}(V), v\in V$ be a nonzero vector.
+
+Now consider $v,Tv,T^2 v,...,T^n v$. Since this list is of length $n+1$, there is a linear dependence. Let $m$ be the smallest integer such that $v,Tv,..T^m v$ is linearly dependent, then
+
+$$
+a_0 v+a_1Tv+...+a_m T^m v=0
+$$
+
+Let $p(z)=a_0+a_1 z+...+a_m z^m$, then $p(T)(v)=0,p(z)\neq 0$
+
+$p(z)$ factors as $(z-\lambda) q(z)$ where $degree\ q< degree\ p$
+
+$$
+p(T)(v)=((T-\lambda I)q(T))(v)=0
+$$
+
+$$
+(T-\lambda I)(q(T)(v))=0
+$$
+
+but $m$ was minimal so that $p(z)=a_0+a_1 z+...+a_m z^m$ were linearly independent, so $q(T)(v)\neq 0$, so $\lambda$ is an eigenvalue with eigenvector $q(T)(v)$
+
+#### Definition 5.24
+
+Suppose $V$ is finite dimensional $T\in\mathscr{L}(V),p\in \mathscr{P}(\mathbb{F})$, then the **minimal polynomial** is the unique monic (the coefficient of the highest degree is 1) polynomial of minimal degree such that $p(T)=0$
+
+#### Theorem 5.27
+
+Let $V$ be finite dimensional, and $T\in\mathscr{L}(V)$, $p(z)$ the minimal polynomial.
+
+1. The roots of $p(z)$ are exactly the eigenvalues of $T$.
+2. If $\mathbb{F}=\mathbb{C}$, $p(z)=(z-\lambda_1)...(z-\lambda_m)$ where $\lambda_1,...,\lambda_m$ are all the eigenvalues.
diff --git a/pages/Math429/Math429_L2.md b/content/Math429/Math429_L2.md
similarity index 100%
rename from pages/Math429/Math429_L2.md
rename to content/Math429/Math429_L2.md
diff --git a/pages/Math429/Math429_L20.md b/content/Math429/Math429_L20.md
similarity index 97%
rename from pages/Math429/Math429_L20.md
rename to content/Math429/Math429_L20.md
index 9776182..1591373 100644
--- a/pages/Math429/Math429_L20.md
+++ b/content/Math429/Math429_L20.md
@@ -1,76 +1,76 @@
-# Lecture 20
-
-## Chapter V Eigenvalue and Eigenvectors
-
-### Minimal polynomial 5B
-
-#### Definition 5.24
-
-Suppose $V$ is finite dimensional, and $T\in \mathscr{L}(V)$ is a linear operator, then the **minimal polynomial** of $T$ is the unique monic polynomial $p$ of smallest degree satisfying the $p(T)=0$.
-
-#### Theorem 5.22
-
-Suppose $V$ is finite dimensional $T\in \mathscr{L}(V)$, then there exists a unique monic polynomial $p\in \mathscr{P}(\mathbb{F})$ of smallest degree such that $p(T)=0$. Furthermore $deg\ p \leq dim\ V$
-
-Proof:
-
-Induct on $dim\ V$ to prove existence.
-
-* Base case: $dim\ V=0$, i.e $V={0}$. Then any linear operator on $V$ is $0$ including the $I$. So use $p(z)=1$ then $p(T)=I=0$.
-
-* Inductive step: Suppose the existence holds for all vector spaces with dimension $< dim\ V$. and $dim V\neq 0$, Toke $v\in V,v\neq 0$. Then the list $v,Tv,Tv^2,...,T^n v,n= dim\ V$ is linearly dependent.
-
- then we take the smallest $m$ such that $v,Tv,...,T^m v$ is linearly dependent, then there exists $c_0,...,c_{n-1}$ such that $c_0 v+c_1T_v+...+c_{m-1} T^{m-1}+T^mv=0$
-
- Now we define $p(z)=c_0+c_1z+...+c_{m-1}z^{m-1}+z_m,p(T)v=0$, by ($c_0 v+c_1T_v+...+c_{m-1} T^{m-1}+T^mv=0$)
-
- Moreover, $p(T)(T^k v)$ let $q(z)=z^k$, then $p(T)(T^k)=p(T)q(T)(v)=0$, so $T^k v\in null(p(T))$, thus since $v,Tv,..,T^{m-1}v$ are linearly independent, thus $dim\ null\ (p(T))\geq m$.
-
-Note that $dim\ range\ (p(T))\leq dim\ V-m$ is invariant with respect to $T$.
-
-So consider $T\vert _{range\ (p(T))}$, so by the inductive hypothesis, there exists $S\in \mathscr{P}(\mathbb{F})$ with $deg\ p\leq dim\ range\ (p(T))$ such that $S(T\vert_{range\ (p(T))})$. Now consider $(SP)\in \mathscr{P}(\mathbb{F})$ to see this let $v\in V$. then $(SP)(T)(v)=(S(T)p(T))(v)=S(T)(p(T)v)=S(T)0=0$
-
-$deg\ S p=deg\ S+deg\ p\leq dim\ V$
-
-uniqueness: Let $p$ be the minimal polynomial, then let $q\in \mathscr{L}(\mathbb{F})$ monic with $q(T)=0$ and $deg\ q=deg\ p$ the $(p-q)(T)=0$ and $deg(p-q)\leq deg\ p$ but then $p-q=0 \implies p=q$
-
-### Finding Minimal polynomials
-
-Idea: Choose $v\in V,v\neq 0$ find $m$ such that $v,Tv,...,T^{dim\ V} v$
-
-Find constant (if they exists) such that $v_0v+c_1Tv+...+c_{dim\ V-1} T^{dim\ V-1}+ T^{dim\ V}=0$
-
-then if the solution is unique (not always true). then $p(z)=v_0v+c_1Tv+...+c_{dim\ V-1} T^{dim\ V-1}+ T^{dim\ V}$ is the minimal polynomial.
-
-Example:
-
-Suppose $T\in \mathscr{L}(\mathbb{R}^5)$ with $M(T)=\begin{pmatrix}
- 0&0&0&0&-3\\
- 1&0&0&0&6\\
- 0&1&0&0&0\\
- 0&0&1&0&0\\
- 0&0&0&1&0\\
-\end{pmatrix}$
-
-let $v=e_1,Tv=e_2,T^2v=e_3,T^3 v=e_4, T^4v=e_5, T^5v=-3e_1+6e_2$
-
-now $T^5v-6Tv+3v=0$ this is unique so $p(z)=z^5-6z+3$ is the minimal polynomial.
-
-#### Theorem 5.27
-
-If $V$ is finite dimensional and $T\in\mathscr{L}(V)$, with minimal polynomial $p$, then the zeros of $p$ are (exactly) their eigenvalues.
-
-#### Theorem 5.29
-
-$T\in \mathscr{L}(V)$, $p$ the minimal polynomial and $q\in\mathscr{P}(\mathbb{F})$, such that $q(T)=0$, the $p$ divides $q$.
-
-#### Corollary 5.31
-
-If $T\in \mathscr{L}(V)$ with minimal polynomial $p$ $U\subseteq V$ (invariant subspace), then $p$ is a multiple of $T\vert_U$ divides $p$.
-
-#### Theorem 5.32
-
-$T$ is not invertible $\iff$ The minimal polynomial has $0$ as a constant term.
-
-
-
+# Lecture 20
+
+## Chapter V Eigenvalue and Eigenvectors
+
+### Minimal polynomial 5B
+
+#### Definition 5.24
+
+Suppose $V$ is finite dimensional, and $T\in \mathscr{L}(V)$ is a linear operator, then the **minimal polynomial** of $T$ is the unique monic polynomial $p$ of smallest degree satisfying the $p(T)=0$.
+
+#### Theorem 5.22
+
+Suppose $V$ is finite dimensional $T\in \mathscr{L}(V)$, then there exists a unique monic polynomial $p\in \mathscr{P}(\mathbb{F})$ of smallest degree such that $p(T)=0$. Furthermore $deg\ p \leq dim\ V$
+
+Proof:
+
+Induct on $dim\ V$ to prove existence.
+
+* Base case: $dim\ V=0$, i.e $V={0}$. Then any linear operator on $V$ is $0$ including the $I$. So use $p(z)=1$ then $p(T)=I=0$.
+
+* Inductive step: Suppose the existence holds for all vector spaces with dimension $< dim\ V$. and $dim V\neq 0$, Toke $v\in V,v\neq 0$. Then the list $v,Tv,Tv^2,...,T^n v,n= dim\ V$ is linearly dependent.
+
+ then we take the smallest $m$ such that $v,Tv,...,T^m v$ is linearly dependent, then there exists $c_0,...,c_{n-1}$ such that $c_0 v+c_1T_v+...+c_{m-1} T^{m-1}+T^mv=0$
+
+ Now we define $p(z)=c_0+c_1z+...+c_{m-1}z^{m-1}+z_m,p(T)v=0$, by ($c_0 v+c_1T_v+...+c_{m-1} T^{m-1}+T^mv=0$)
+
+ Moreover, $p(T)(T^k v)$ let $q(z)=z^k$, then $p(T)(T^k)=p(T)q(T)(v)=0$, so $T^k v\in null(p(T))$, thus since $v,Tv,..,T^{m-1}v$ are linearly independent, thus $dim\ null\ (p(T))\geq m$.
+
+Note that $dim\ range\ (p(T))\leq dim\ V-m$ is invariant with respect to $T$.
+
+So consider $T\vert _{range\ (p(T))}$, so by the inductive hypothesis, there exists $S\in \mathscr{P}(\mathbb{F})$ with $deg\ p\leq dim\ range\ (p(T))$ such that $S(T\vert_{range\ (p(T))})$. Now consider $(SP)\in \mathscr{P}(\mathbb{F})$ to see this let $v\in V$. then $(SP)(T)(v)=(S(T)p(T))(v)=S(T)(p(T)v)=S(T)0=0$
+
+$deg\ S p=deg\ S+deg\ p\leq dim\ V$
+
+uniqueness: Let $p$ be the minimal polynomial, then let $q\in \mathscr{L}(\mathbb{F})$ monic with $q(T)=0$ and $deg\ q=deg\ p$ the $(p-q)(T)=0$ and $deg(p-q)\leq deg\ p$ but then $p-q=0 \implies p=q$
+
+### Finding Minimal polynomials
+
+Idea: Choose $v\in V,v\neq 0$ find $m$ such that $v,Tv,...,T^{dim\ V} v$
+
+Find constant (if they exists) such that $v_0v+c_1Tv+...+c_{dim\ V-1} T^{dim\ V-1}+ T^{dim\ V}=0$
+
+then if the solution is unique (not always true). then $p(z)=v_0v+c_1Tv+...+c_{dim\ V-1} T^{dim\ V-1}+ T^{dim\ V}$ is the minimal polynomial.
+
+Example:
+
+Suppose $T\in \mathscr{L}(\mathbb{R}^5)$ with $M(T)=\begin{pmatrix}
+ 0&0&0&0&-3\\
+ 1&0&0&0&6\\
+ 0&1&0&0&0\\
+ 0&0&1&0&0\\
+ 0&0&0&1&0\\
+\end{pmatrix}$
+
+let $v=e_1,Tv=e_2,T^2v=e_3,T^3 v=e_4, T^4v=e_5, T^5v=-3e_1+6e_2$
+
+now $T^5v-6Tv+3v=0$ this is unique so $p(z)=z^5-6z+3$ is the minimal polynomial.
+
+#### Theorem 5.27
+
+If $V$ is finite dimensional and $T\in\mathscr{L}(V)$, with minimal polynomial $p$, then the zeros of $p$ are (exactly) their eigenvalues.
+
+#### Theorem 5.29
+
+$T\in \mathscr{L}(V)$, $p$ the minimal polynomial and $q\in\mathscr{P}(\mathbb{F})$, such that $q(T)=0$, the $p$ divides $q$.
+
+#### Corollary 5.31
+
+If $T\in \mathscr{L}(V)$ with minimal polynomial $p$ $U\subseteq V$ (invariant subspace), then $p$ is a multiple of $T\vert_U$ divides $p$.
+
+#### Theorem 5.32
+
+$T$ is not invertible $\iff$ The minimal polynomial has $0$ as a constant term.
+
+
+
diff --git a/pages/Math429/Math429_L21.md b/content/Math429/Math429_L21.md
similarity index 97%
rename from pages/Math429/Math429_L21.md
rename to content/Math429/Math429_L21.md
index 3d71803..0d0a128 100644
--- a/pages/Math429/Math429_L21.md
+++ b/content/Math429/Math429_L21.md
@@ -1,77 +1,77 @@
-# Lecture 21
-
-## Chapter V Eigenvalue and Eigenvectors
-
-### Minimal polynomial 5B
-
-#### Odd Dimensional Real Vector Spaces
-
-#### Theorem 5.34
-
-Let $V$ be an odd dimensional real vector space and $T\in \mathscr{L}(V)$ a linear operator then $T$ has an eigenvalue.
-
-#### Theorem 5.33
-
-Let $\mathbb{F}=\mathbb{R}$, $V$ be a finite dimensional vector space. $T\in\mathscr{L}(V)$ then $dim\ null\ (T^2+bT+cI)$ is even for $b^2\leq 4c$.
-
-Proof:
-
-$null\ (T^2+bT+cI)$ is invariant under $T$, so it suffices to consider $V=null\ (T^2+bT+cI)$. Thus $T^2+bT+cI=0$.
-
-Suppose $\lambda \in \mathbb{R}$ and $v\in V$ such that $Tv=\lambda v$, then if $v\neq 0$, then $z-\lambda$ must divide $z^2+bz+c$. but $z^2+bz+c$ does not factor over $\mathbb{R}$. Then we don't have eigenvalues.
-
-Let $U$ be the **largest invariant subspace** of even dimension. Suppose $w\in V$ and $w\cancel{\in} U$ consider $W=Span\ (w,Tw)$ note $dim\ (w)=2$. Consider $dim(U+W)=dim U+dim W-dim(U\cap W)$.
-
-So if $dim(U\cap W)=2$ then $w\in U$, which is a contradiction ($w\cancel{\in} U$).
-
-If $dim(U\cap W)=1$ then $U\cap W$ invariant and gives an eigenvalue, which is a contradiction (don't have eigenvalues).
-
-If $dim(U\cap W)=0$ $U+W$ is a larger even dimensional invariant subspace, which is a contradiction ($U$ be the **largest invariant subspace** of even dimension).
-
-So $U=V$, $dim\ V$ is even.
-
-### Upper Triangular Matrices 5C
-
-#### Definition 5.38
-
-A square matrix is **upper triangular** if all entries below the diagonal are zero.
-
-Example:
-
-$$
-\begin{pmatrix}
- 1& 2& 3\\
- 0& 3 &4\\
- 0& 0& 5
-\end{pmatrix}
-$$
-
-#### Theorem 5.39
-
-Suppose $T\in \mathscr{L}(V)$ and $v_1,...,v_n$ is a basis, then the following are equal:
-
-a) $M(T,(v_1,...,v_n))$ is upper triangular
-b) $Span\ (v_1,...,v_n)$ is invariant $\forall k=1,...,n$
-c) $Tv_k\in Span\ (v_1,...,v_n)$ $\forall k=1,...,n$
-
-Sketch of Proof:
-
-a)$\implies$c) is clear... (probably) b)$\iff$ c), then do c)$\implies$a), go step by step and construct $M(T,(v_1,...,v_n))$.
-
-#### Theorem 5.41
-
-Suppose $T\in\mathscr{L}(V)$ if there exists a basis where $M(T)$ is upper triangular with diagonal entries $\lambda_1,...,\lambda_n$, and $(T-\lambda _1 I)(T-\lambda_2 I)...(T-\lambda_n I)=0$, then $\lambda_1,...,\lambda_n$ are precisely the eigenvalues.
-
-Proof:
-
-Note that for $(T-\lambda_1 I)v_1=0$, consider $(T-\lambda_k I)v_k\in Span\ (v_1,...,v_{k-1})$, consider $w=Span\ (v_1,...,v_k)$ then $(T-\lambda_k I)\vert_w$ is not injective since $range\ (T-\lambda_k I)\vert_w=Span\ (v_1,...,v_{k-1})$, so $\lambda_k$ is an eigenvalue.
-
-but the minimal polynomial divides $(z-\lambda_1)...(z-\lambda_n)$, so every eigenvalue is in.
-
-#### Theorem 5.40
-
-Suppose $T\in\mathscr{L}(V)$ if there exists a basis where $M(T)$ is upper triangular with diagonal entries $\lambda_1,...,\lambda_n$, then $(T-\lambda _1 I)(T-\lambda_2 I)...(T-\lambda_n I)=0$.
-
-Proof:
-
+# Lecture 21
+
+## Chapter V Eigenvalue and Eigenvectors
+
+### Minimal polynomial 5B
+
+#### Odd Dimensional Real Vector Spaces
+
+#### Theorem 5.34
+
+Let $V$ be an odd dimensional real vector space and $T\in \mathscr{L}(V)$ a linear operator then $T$ has an eigenvalue.
+
+#### Theorem 5.33
+
+Let $\mathbb{F}=\mathbb{R}$, $V$ be a finite dimensional vector space. $T\in\mathscr{L}(V)$ then $dim\ null\ (T^2+bT+cI)$ is even for $b^2\leq 4c$.
+
+Proof:
+
+$null\ (T^2+bT+cI)$ is invariant under $T$, so it suffices to consider $V=null\ (T^2+bT+cI)$. Thus $T^2+bT+cI=0$.
+
+Suppose $\lambda \in \mathbb{R}$ and $v\in V$ such that $Tv=\lambda v$, then if $v\neq 0$, then $z-\lambda$ must divide $z^2+bz+c$. but $z^2+bz+c$ does not factor over $\mathbb{R}$. Then we don't have eigenvalues.
+
+Let $U$ be the **largest invariant subspace** of even dimension. Suppose $w\in V$ and $w\cancel{\in} U$ consider $W=Span\ (w,Tw)$ note $dim\ (w)=2$. Consider $dim(U+W)=dim U+dim W-dim(U\cap W)$.
+
+So if $dim(U\cap W)=2$ then $w\in U$, which is a contradiction ($w\cancel{\in} U$).
+
+If $dim(U\cap W)=1$ then $U\cap W$ invariant and gives an eigenvalue, which is a contradiction (don't have eigenvalues).
+
+If $dim(U\cap W)=0$ $U+W$ is a larger even dimensional invariant subspace, which is a contradiction ($U$ be the **largest invariant subspace** of even dimension).
+
+So $U=V$, $dim\ V$ is even.
+
+### Upper Triangular Matrices 5C
+
+#### Definition 5.38
+
+A square matrix is **upper triangular** if all entries below the diagonal are zero.
+
+Example:
+
+$$
+\begin{pmatrix}
+ 1& 2& 3\\
+ 0& 3 &4\\
+ 0& 0& 5
+\end{pmatrix}
+$$
+
+#### Theorem 5.39
+
+Suppose $T\in \mathscr{L}(V)$ and $v_1,...,v_n$ is a basis, then the following are equal:
+
+a) $M(T,(v_1,...,v_n))$ is upper triangular
+b) $Span\ (v_1,...,v_n)$ is invariant $\forall k=1,...,n$
+c) $Tv_k\in Span\ (v_1,...,v_n)$ $\forall k=1,...,n$
+
+Sketch of Proof:
+
+a)$\implies$c) is clear... (probably) b)$\iff$ c), then do c)$\implies$a), go step by step and construct $M(T,(v_1,...,v_n))$.
+
+#### Theorem 5.41
+
+Suppose $T\in\mathscr{L}(V)$ if there exists a basis where $M(T)$ is upper triangular with diagonal entries $\lambda_1,...,\lambda_n$, and $(T-\lambda _1 I)(T-\lambda_2 I)...(T-\lambda_n I)=0$, then $\lambda_1,...,\lambda_n$ are precisely the eigenvalues.
+
+Proof:
+
+Note that for $(T-\lambda_1 I)v_1=0$, consider $(T-\lambda_k I)v_k\in Span\ (v_1,...,v_{k-1})$, consider $w=Span\ (v_1,...,v_k)$ then $(T-\lambda_k I)\vert_w$ is not injective since $range\ (T-\lambda_k I)\vert_w=Span\ (v_1,...,v_{k-1})$, so $\lambda_k$ is an eigenvalue.
+
+but the minimal polynomial divides $(z-\lambda_1)...(z-\lambda_n)$, so every eigenvalue is in.
+
+#### Theorem 5.40
+
+Suppose $T\in\mathscr{L}(V)$ if there exists a basis where $M(T)$ is upper triangular with diagonal entries $\lambda_1,...,\lambda_n$, then $(T-\lambda _1 I)(T-\lambda_2 I)...(T-\lambda_n I)=0$.
+
+Proof:
+
Note that for $(T-\lambda_1 I)v_1=0$ and $Tv_k\in Span\ (v_1,...,v_k)$, and $Tv_k=\lambda_k v_k+...+\lambda_1 v_1$, $(T-\lambda_k I)\in Span\ (v_1,...,v_k)$
\ No newline at end of file
diff --git a/pages/Math429/Math429_L22.md b/content/Math429/Math429_L22.md
similarity index 100%
rename from pages/Math429/Math429_L22.md
rename to content/Math429/Math429_L22.md
diff --git a/pages/Math429/Math429_L23.md b/content/Math429/Math429_L23.md
similarity index 100%
rename from pages/Math429/Math429_L23.md
rename to content/Math429/Math429_L23.md
diff --git a/pages/Math429/Math429_L24.md b/content/Math429/Math429_L24.md
similarity index 97%
rename from pages/Math429/Math429_L24.md
rename to content/Math429/Math429_L24.md
index 4d24d5f..cc9d937 100644
--- a/pages/Math429/Math429_L24.md
+++ b/content/Math429/Math429_L24.md
@@ -1,89 +1,89 @@
-# Lecture 24
-
-## Chapter V Eigenvalue and Eigenvectors
-
-### 5E Commuting Operators
-
-#### Definition 5.71
-
-* For $T,S\in\mathscr{L}(V)$, $T$ and $S$ commute if $ST=TS$.
-* For $A,B\in \mathbb{F}^{n,n}$, $A$ and $B$ commute if $AB=BA$.
-
-Example:
-For $p,q\in \mathscr{P}(\mathbb{F})$, $p(T)$ and $q(T)$ commute
-
-* Partial Derivatives $\frac{d}{dx},\frac{d}{dy}:\mathscr{P}_m(\mathbb{R}^2)\to \mathscr{P}_m(\mathbb{R}^2)$, $\frac{d}{dy}\frac{d}{dd}=\frac{d}{dx}\frac{d}{dy}$
-* Diagonal matrices commute with each other
-
-#### Proposition 5.74
-
-Given $S,T\in \mathscr{L}(V)$, $S,T$ commute if and only if $M(S), M(T)$ commute.
-
-Proof: $ST=TS\iff M(ST)=M(TS)\iff M(S)M(T)=M(T)M(S)$
-
-#### Proposition 5.75
-
-Suppose $S,T\in \mathscr{L}(V)$ commute and $\lambda\in \mathbb{F}$, then the eigenspace $E(\lambda, S)$ is invariant under $T$.
-
-Proof:
-Suppose $V\in E(\lambda, S), S(Tv)=(ST)v=(TS)v=T(Sv)=T\lambda v=\lambda Tv$
-
-$Tv$ is an eigenvector with eigenvalue $\lambda$ (or $Tv=0$) $Tv\in E(\lambda, S)$
-
-#### Theorem 5.76
-
-Let $S,T\in \mathscr{L}(V)$ be diagonalizable operators. Then $S,T$ are **diagonalizable with respect to the same basis** (simultaneously diagonalizable) if and only if $S,T$ commute.
-
-Proof:
-
-$\Rightarrow$
-
-diagonal matrices commute
-
-$\Leftarrow$
-
-Since $S$ is diagonalizable, $V=E(\lambda, S)\oplus...\oplus E(\lambda_m,S)$, where $\lambda_1,...,\lambda_m$ are the (distinct) eigenvalues of $S$. consider $T\vert_{E(\lambda_k,S)}$ (**Theorem 5.65**) this operator is diagonalizable because $T$ is diagonalizable. We can chose a basis of $E(\lambda_k,S)$ such that $T\vert_{E(\lambda_k,S)}$ gives a diagonal matrix. Take the basis of $V$ given by concatenating the bases of $E(\lambda_k,S)$ the elements of this basis eigenvectors of $S$ and $T$ so $S$ and $T$ are diagonalizable with respect to this basis.
-
-#### Proposition 5.78
-
-Every pair of commuting operators on a finite dimensional complex nonzero vector spaces has at least one common eigenvectors.
-
-Proof: apply (5.75) and the fact that operator on complex vector spaces has at least one eigenvector.
-
-#### Theorem 5.80
-
-If $S,T$ are commuting operators, then there is a basis where both have upper triangular matrices.
-
-Proof:
-
-Induction on $n=dim\ V$.
-
-$n=1$, clear
-
-$n>1$, use (5.78) to find $v_1$ and eigenvector for $S$ and $T$. Decompose $V$ as $V=Span(v_1)\oplus W$ then defined a map $P:V\to W,P(av_1+w)=w$ define $\hat{S}:W\to W$ as $\hat{S}(w)=P(S(w))$ similarly $\hat{T}(w)=P(T(w))$ now apply the inductive hypothesis to $\hat{S}$ and $\hat{T}$. get a basis $v_2,...,v_n$ where they are both upper triangular and then exercise: $S,T$ are upper triangular with respect to the basis $v_1,...,v_n$.
-
-#### Theorem 5.81
-
-For $V$ finite dimensional $S,T\in \mathscr{L}(V)$ commuting operators then every eigenvalue of $S+T$ is a sum of an eigenvector of $S$ and an eigenvalue of $T$; every eigenvalue of $S\cdot T$ is a product of an eigenvector of $S$ and an eigenvalue of $T$.
-
-Proof:
-
-For upper triangular matrices
-
-$$
-\begin{pmatrix}
- \lambda_1 & & *\\
- & \ddots & \\
- 0 & & \lambda_m
-\end{pmatrix}+
-\begin{pmatrix}
- \mu_1 & & *\\
- & \ddots & \\
- 0 & & \mu_m
-\end{pmatrix}=
-\begin{pmatrix}
- \lambda_1+\mu_1 & & *\\
- & \ddots & \\
- 0 & & \lambda_m+\mu_m
-\end{pmatrix}
+# Lecture 24
+
+## Chapter V Eigenvalue and Eigenvectors
+
+### 5E Commuting Operators
+
+#### Definition 5.71
+
+* For $T,S\in\mathscr{L}(V)$, $T$ and $S$ commute if $ST=TS$.
+* For $A,B\in \mathbb{F}^{n,n}$, $A$ and $B$ commute if $AB=BA$.
+
+Example:
+For $p,q\in \mathscr{P}(\mathbb{F})$, $p(T)$ and $q(T)$ commute
+
+* Partial Derivatives $\frac{d}{dx},\frac{d}{dy}:\mathscr{P}_m(\mathbb{R}^2)\to \mathscr{P}_m(\mathbb{R}^2)$, $\frac{d}{dy}\frac{d}{dd}=\frac{d}{dx}\frac{d}{dy}$
+* Diagonal matrices commute with each other
+
+#### Proposition 5.74
+
+Given $S,T\in \mathscr{L}(V)$, $S,T$ commute if and only if $M(S), M(T)$ commute.
+
+Proof: $ST=TS\iff M(ST)=M(TS)\iff M(S)M(T)=M(T)M(S)$
+
+#### Proposition 5.75
+
+Suppose $S,T\in \mathscr{L}(V)$ commute and $\lambda\in \mathbb{F}$, then the eigenspace $E(\lambda, S)$ is invariant under $T$.
+
+Proof:
+Suppose $V\in E(\lambda, S), S(Tv)=(ST)v=(TS)v=T(Sv)=T\lambda v=\lambda Tv$
+
+$Tv$ is an eigenvector with eigenvalue $\lambda$ (or $Tv=0$) $Tv\in E(\lambda, S)$
+
+#### Theorem 5.76
+
+Let $S,T\in \mathscr{L}(V)$ be diagonalizable operators. Then $S,T$ are **diagonalizable with respect to the same basis** (simultaneously diagonalizable) if and only if $S,T$ commute.
+
+Proof:
+
+$\Rightarrow$
+
+diagonal matrices commute
+
+$\Leftarrow$
+
+Since $S$ is diagonalizable, $V=E(\lambda, S)\oplus...\oplus E(\lambda_m,S)$, where $\lambda_1,...,\lambda_m$ are the (distinct) eigenvalues of $S$. consider $T\vert_{E(\lambda_k,S)}$ (**Theorem 5.65**) this operator is diagonalizable because $T$ is diagonalizable. We can chose a basis of $E(\lambda_k,S)$ such that $T\vert_{E(\lambda_k,S)}$ gives a diagonal matrix. Take the basis of $V$ given by concatenating the bases of $E(\lambda_k,S)$ the elements of this basis eigenvectors of $S$ and $T$ so $S$ and $T$ are diagonalizable with respect to this basis.
+
+#### Proposition 5.78
+
+Every pair of commuting operators on a finite dimensional complex nonzero vector spaces has at least one common eigenvectors.
+
+Proof: apply (5.75) and the fact that operator on complex vector spaces has at least one eigenvector.
+
+#### Theorem 5.80
+
+If $S,T$ are commuting operators, then there is a basis where both have upper triangular matrices.
+
+Proof:
+
+Induction on $n=dim\ V$.
+
+$n=1$, clear
+
+$n>1$, use (5.78) to find $v_1$ and eigenvector for $S$ and $T$. Decompose $V$ as $V=Span(v_1)\oplus W$ then defined a map $P:V\to W,P(av_1+w)=w$ define $\hat{S}:W\to W$ as $\hat{S}(w)=P(S(w))$ similarly $\hat{T}(w)=P(T(w))$ now apply the inductive hypothesis to $\hat{S}$ and $\hat{T}$. get a basis $v_2,...,v_n$ where they are both upper triangular and then exercise: $S,T$ are upper triangular with respect to the basis $v_1,...,v_n$.
+
+#### Theorem 5.81
+
+For $V$ finite dimensional $S,T\in \mathscr{L}(V)$ commuting operators then every eigenvalue of $S+T$ is a sum of an eigenvector of $S$ and an eigenvalue of $T$; every eigenvalue of $S\cdot T$ is a product of an eigenvector of $S$ and an eigenvalue of $T$.
+
+Proof:
+
+For upper triangular matrices
+
+$$
+\begin{pmatrix}
+ \lambda_1 & & *\\
+ & \ddots & \\
+ 0 & & \lambda_m
+\end{pmatrix}+
+\begin{pmatrix}
+ \mu_1 & & *\\
+ & \ddots & \\
+ 0 & & \mu_m
+\end{pmatrix}=
+\begin{pmatrix}
+ \lambda_1+\mu_1 & & *\\
+ & \ddots & \\
+ 0 & & \lambda_m+\mu_m
+\end{pmatrix}
$$
\ No newline at end of file
diff --git a/pages/Math429/Math429_L25.md b/content/Math429/Math429_L25.md
similarity index 95%
rename from pages/Math429/Math429_L25.md
rename to content/Math429/Math429_L25.md
index 31254fc..953f3e0 100644
--- a/pages/Math429/Math429_L25.md
+++ b/content/Math429/Math429_L25.md
@@ -1,139 +1,139 @@
-# Lecture 25
-
-## Chapter VI Inner Product Spaces
-
-### Inner Products and Norms 6A
-
-#### Dot Product (Euclidean Inner Product)
-
-$$
-v\cdot w=v_1w_1+...+v_n w_n
-$$
-
-$$
--\cdot -:\mathbb{R}^n\times \mathbb{R}^n\to \mathbb{R}
-$$
-
-Some properties
-
-* $v\cdot v\geq 0$
-* $v\cdot v=0\iff v=0$
-* $(u+v)\cdot w=u\cdot w+v\cdot w$
-* $(c\cdot v)\cdot w=c\cdot(v\cdot w)$
-
-#### Definition 6.2
-
-An inner product $<,>:V\times V\to \mathbb{F}$
-
-Positivity: $\geq 0$
-
-Definiteness: $=0\iff v=0$
-
-Additivity: $=+$
-
-Homogeneity: $<\lambda u, v>=\lambda$
-
-Conjugate symmetry: $=\overline{}$
-
-Note: the dot product on $\mathbb{R}^n$ satisfies these properties
-
-Example:
-
-$V=C^0([-1,-])$
-
-$L_2$ - inner product.
-
-$=\int^1_{-1} f\cdot g$
-
-$=\int ^1_{-1}f^2\geq 0$
-
-$=+$
-
-$<\lambda f,g>=\lambda$
-
-$=\int^1_{-1} f\cdot g=\int^1_{-1} g\cdot f=$
-
-The result is in real vector space so no conjugate...
-
-#### Theorem 6.6
-
-For $<,>$ an inner product
-
-(a) Fix $V$, then the map given by $u\mapsto $ is a linear map (Warning: if $\mathbb{F}=\mathbb{C}$, then $u\mapsto$ is not linear).
-
-(b,c) $<0,v>==0$
-
-(d) $=+$ (second terms are additive.)
-
-(e) $=\bar{\lambda}$
-
-#### Definition 6.4
-
-An **inner product space** is a pair of vector space and inner product on it. $(v,<,>)$. In practice, we will say "$V$ is an inner product space" and treat $V$ as the vector space.
-
-For the remainder of the chapter. $V,W$ are inner product vector spaces...
-
-#### Definition 6.7
-
-For $v\in V$ the **norm of $V$** is given by $||v||:=\sqrt{}$
-
-#### Theorem 6.9
-
-Suppose $v\in V$.
-
-(a) $||v||=0\iff v=0$
-(b) $||\lambda v||=|\lambda|\ ||v||$
-
-Proof:
-
-$||\lambda v||^2=<\lambda v,\lambda v> =\lambda=\lambda\bar{\lambda}$
-
-So $|\lambda|^2 =|\lambda|^2||v||^2$, $||\lambda v||=|\lambda|\ ||v||$
-
-#### Definition 6.10
-
-$v,u\in V$ are **orthogonal** if $=0$.
-
-#### Theorem 6.12 (Pythagorean Theorem)
-
-If $u,v\in V$ are orthogonal, then $||u+v||^2=||u||^2+||v||$
-
-Proof:
-
-$$
-\begin{aligned}
- ||u+v||^2&=\\
- &=+\\
- &=+++\\
- &=||u||^2+||v||^2
-\end{aligned}
-$$
-
-#### Theorem 6.13
-
-Suppose $u,v\in V$, $v\neq 0$, set $c=\frac{}{||v||^2}$, then let $w=u-v\cdot v$, then $v$ and $w$ are orthogonal.
-
-#### Theorem 6.14 (Cauchy-Schwarz)
-
-Let $u,v\in V$, then $||\leq ||u||\ ||v||$ where equality occurs only $u,v$ are parallel...
-
-Proof:
-
-Take the square norm of $u=\frac{}{||u||^2}v+w$.
-
-#### Theorem 6.17 Triangle Inequality
-
-If $u,v\in V$, then $||u+v||\leq ||u||+||v||$
-
-Proof:
-
-$$
-\begin{aligned}
- ||u+v||^2&=\\
- &=+++\\
- &=||u||^2+||v||^2+2Re()\\
- &\leq ||u||^2+||v||^2+2||\\
- &\leq ||u||^2+||v||^2+2||u||\ ||v||\\
- &\leq (||u||+||v ||)^2
-\end{aligned}
-$$
+# Lecture 25
+
+## Chapter VI Inner Product Spaces
+
+### Inner Products and Norms 6A
+
+#### Dot Product (Euclidean Inner Product)
+
+$$
+v\cdot w=v_1w_1+...+v_n w_n
+$$
+
+$$
+-\cdot -:\mathbb{R}^n\times \mathbb{R}^n\to \mathbb{R}
+$$
+
+Some properties
+
+* $v\cdot v\geq 0$
+* $v\cdot v=0\iff v=0$
+* $(u+v)\cdot w=u\cdot w+v\cdot w$
+* $(c\cdot v)\cdot w=c\cdot(v\cdot w)$
+
+#### Definition 6.2
+
+An inner product $<,>:V\times V\to \mathbb{F}$
+
+Positivity: $\geq 0$
+
+Definiteness: $=0\iff v=0$
+
+Additivity: $=+$
+
+Homogeneity: $<\lambda u, v>=\lambda$
+
+Conjugate symmetry: $=\overline{}$
+
+Note: the dot product on $\mathbb{R}^n$ satisfies these properties
+
+Example:
+
+$V=C^0([-1,-])$
+
+$L_2$ - inner product.
+
+$=\int^1_{-1} f\cdot g$
+
+$=\int ^1_{-1}f^2\geq 0$
+
+$=+$
+
+$<\lambda f,g>=\lambda$
+
+$=\int^1_{-1} f\cdot g=\int^1_{-1} g\cdot f=$
+
+The result is in real vector space so no conjugate...
+
+#### Theorem 6.6
+
+For $<,>$ an inner product
+
+(a) Fix $V$, then the map given by $u\mapsto $ is a linear map (Warning: if $\mathbb{F}=\mathbb{C}$, then $u\mapsto$ is not linear).
+
+(b,c) $<0,v>==0$
+
+(d) $=+$ (second terms are additive.)
+
+(e) $=\bar{\lambda}$
+
+#### Definition 6.4
+
+An **inner product space** is a pair of vector space and inner product on it. $(v,<,>)$. In practice, we will say "$V$ is an inner product space" and treat $V$ as the vector space.
+
+For the remainder of the chapter. $V,W$ are inner product vector spaces...
+
+#### Definition 6.7
+
+For $v\in V$ the **norm of $V$** is given by $||v||:=\sqrt{}$
+
+#### Theorem 6.9
+
+Suppose $v\in V$.
+
+(a) $||v||=0\iff v=0$
+(b) $||\lambda v||=|\lambda|\ ||v||$
+
+Proof:
+
+$||\lambda v||^2=<\lambda v,\lambda v> =\lambda=\lambda\bar{\lambda}$
+
+So $|\lambda|^2 =|\lambda|^2||v||^2$, $||\lambda v||=|\lambda|\ ||v||$
+
+#### Definition 6.10
+
+$v,u\in V$ are **orthogonal** if $=0$.
+
+#### Theorem 6.12 (Pythagorean Theorem)
+
+If $u,v\in V$ are orthogonal, then $||u+v||^2=||u||^2+||v||$
+
+Proof:
+
+$$
+\begin{aligned}
+ ||u+v||^2&=\\
+ &=+\\
+ &=+++\\
+ &=||u||^2+||v||^2
+\end{aligned}
+$$
+
+#### Theorem 6.13
+
+Suppose $u,v\in V$, $v\neq 0$, set $c=\frac{}{||v||^2}$, then let $w=u-v\cdot v$, then $v$ and $w$ are orthogonal.
+
+#### Theorem 6.14 (Cauchy-Schwarz)
+
+Let $u,v\in V$, then $||\leq ||u||\ ||v||$ where equality occurs only $u,v$ are parallel...
+
+Proof:
+
+Take the square norm of $u=\frac{}{||u||^2}v+w$.
+
+#### Theorem 6.17 Triangle Inequality
+
+If $u,v\in V$, then $||u+v||\leq ||u||+||v||$
+
+Proof:
+
+$$
+\begin{aligned}
+ ||u+v||^2&=\\
+ &=+++\\
+ &=||u||^2+||v||^2+2Re()\\
+ &\leq ||u||^2+||v||^2+2||\\
+ &\leq ||u||^2+||v||^2+2||u||\ ||v||\\
+ &\leq (||u||+||v ||)^2
+\end{aligned}
+$$
diff --git a/pages/Math429/Math429_L26.md b/content/Math429/Math429_L26.md
similarity index 100%
rename from pages/Math429/Math429_L26.md
rename to content/Math429/Math429_L26.md
diff --git a/pages/Math429/Math429_L27.md b/content/Math429/Math429_L27.md
similarity index 100%
rename from pages/Math429/Math429_L27.md
rename to content/Math429/Math429_L27.md
diff --git a/pages/Math429/Math429_L28.md b/content/Math429/Math429_L28.md
similarity index 96%
rename from pages/Math429/Math429_L28.md
rename to content/Math429/Math429_L28.md
index e6d9c58..2dd39c1 100644
--- a/pages/Math429/Math429_L28.md
+++ b/content/Math429/Math429_L28.md
@@ -1,132 +1,132 @@
-# Lecture 28
-
-## Chapter VI Inner Product Spaces
-
-### Orthonormal basis 6B
-
-Example:
-
-Find a polynomial $q\in \mathscr{P}_2(\mathbb{R})$ such that
-
-$$
-\int^1_{-1}p(t)cos(\pi t)dt=\int^1_{-1}p(t)q(t)dt
-$$
-
-for $p\in \mathscr{P}_2(\mathbb{R})$
-
-note that $\varphi(p)=\int^1_{-1}p(t)cos(\pi t)cos(\pi t)dt$ is a linear functional. Thus by **Riesz Representation Theorem**, $\exists$ unique $q$ such that $\varphi (p)=\langle p,q \rangle=\int^1_{-1}pq$
-
-$$
-q=\overline{\varphi(e_0)}e_0+\overline{\varphi(e_z)}e_z
-$$
-
-where $e_0,e_1,e_z$ is an orthonormal basis.
-
-and $q=\frac{15}{2\pi^2}(1-3x^2)$
-
-#### Orthogonal Projection and Minimization
-
-#### Definition 6.46
-
-If $U$ is a subset of $V$, then the **orthogonal complement** of $U$ denoted $U^\perp$
-
-$$
-U^\perp=\{v\in V\vert \langle u,v\rangle =0,\forall u\in U\}
-$$
-
-The set of vectors orthogonal to every vector in $U$.
-
-#### Theorem 6.48
-
-Let $U$ be a subset of $V$.
-
-(a) $U^\perp$ is a subspace of $V$.
-(b) $\{0\}^\perp=V$
-(c) $V^\perp =\{0\}$
-(d) $U\cap U^\perp\subseteq\{0\}$
-(e) If $G,H$ subsets of $V$ with $G\subseteq H$, then $H^\perp\subseteq G^\perp$
-
-Example:
-
-Two perpendicular line in 2D plane.
-
-Let $e_1,...,e_m$ be an orthonormal list, let $u=Span(e_1,...,e_m)$ How do I find $U^\perp$?
-
-Extend to an orthonormal basis $e_1,...,e_m,f_1...,f_n$. $U^\perp=Span(f_1,...,f_n)$
-
-#### Theorem 6.40
-
-Suppose $U$ is finite dimensional subspace of $V$, then $V=U\oplus U^\perp$
-
-Proof:
-
-Note $U\cap U^\perp=\{0\}$, so it suffices to show $U+U^\perp=V$. Fix an orthonormal basis $e_1,...,e_m$ of $U$. Let $v\in V$, let $u=\langle v,e_1\rangle e_1+...+\langle v,e_m\rangle e_m$ let $w=v-u$, then $v=u+W$ we need to check that $w\in U^\perp$
-
-$\langle w,e_k \rangle=\langle v,e_k\rangle-\langle u,e_k\rangle=\langle v,e_k\rangle-\langle v,e_k\rangle=0$
-
-So $w\in U^\perp$
-
-#### Corollary 6.51
-
-$$
-dim\ U^\perp=dim\ V-dim\ U
-$$
-
-#### Theorem 6.52
-
-Let $U$ be a finite dimensional of a vector space $V$. Then $(U^\perp)^\perp=U$
-
-Proof:
-
-First let $u\in U$ we want to show $u\in (U^\perp)^\perp$, then $\langle u,w \rangle=0$ for all $w\in U^\perp$ but then $u\in (U^\perp)^\perp$
-
-Exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxercise on the other directiononoooonononon.
-
-#### Corollary 6.54
-
-$U^\vert=\{0\}\iff U=V$
-
-Proof:
-
-$(U^\perp)^\perp=\{0\}^\perp\implies U=V$
-
-#### Definition 6.55
-
-Given $U$ a finite dimensional subspace of $V$. The **orthogonal projection of $V$ onto $U$** is the operator $P_u\in \mathscr{L}(V)$ defined by: For each $v$ write $v=u+w$ where $u\in U$ and $w\in U^\perp$ then $P_u v=u$
-
-Formula:
-
-Let $e_1,...,e_n$ an orthonormal basis of $U$.
-
-$P_u v=\langle v,e_1\rangle e_1+...+\langle v,e_m\rangle e_m$
-
-#### Theorem 6.57
-
-(a) $P_u$ is linear.
-(b) $P_u u=U,\forall u\in U$
-(c) $P_u w=0,\forall w\in U^\perp$
-(d) $range\ P_u=U$
-(e) $null\ P_u=U^\vert$
-(f) $v-P_u v\in U^\perp$
-(g) $P_u^2=P_u$
-(h) $||P_u v||\leq ||v||$
-
-Proof:
-
-(a) Let $v,v'\in V$ and suppose $v=u+w,v'=u'+w'$, then $v+u'=(u+u')+(w+w')$ this implies that $P_u(v+v')=u+u'=P_u v+ P_u v'$
-
-...
-
-#### Theorem 6.58 Riesz Representation Theorem
-
-Let $V$ be a finite dimensional vector space for $v\in V$ define $\varphi_v\in V'$ by $\varphi_v(u)=\langle u,v \rangle$. Then the map $v\to \varphi_v$ is a bijection.
-
-Proof:
-
-Surjectivity Ideal is let $w\in (null\ \varphi)^\perp$
-
-$$
-v=\frac{\varphi(w)}{||w||^2}w,\varphi(v)=||v||^2
-$$
-
-make sense $\varphi_v=\varphi$
+# Lecture 28
+
+## Chapter VI Inner Product Spaces
+
+### Orthonormal basis 6B
+
+Example:
+
+Find a polynomial $q\in \mathscr{P}_2(\mathbb{R})$ such that
+
+$$
+\int^1_{-1}p(t)cos(\pi t)dt=\int^1_{-1}p(t)q(t)dt
+$$
+
+for $p\in \mathscr{P}_2(\mathbb{R})$
+
+note that $\varphi(p)=\int^1_{-1}p(t)cos(\pi t)cos(\pi t)dt$ is a linear functional. Thus by **Riesz Representation Theorem**, $\exists$ unique $q$ such that $\varphi (p)=\langle p,q \rangle=\int^1_{-1}pq$
+
+$$
+q=\overline{\varphi(e_0)}e_0+\overline{\varphi(e_z)}e_z
+$$
+
+where $e_0,e_1,e_z$ is an orthonormal basis.
+
+and $q=\frac{15}{2\pi^2}(1-3x^2)$
+
+#### Orthogonal Projection and Minimization
+
+#### Definition 6.46
+
+If $U$ is a subset of $V$, then the **orthogonal complement** of $U$ denoted $U^\perp$
+
+$$
+U^\perp=\{v\in V\vert \langle u,v\rangle =0,\forall u\in U\}
+$$
+
+The set of vectors orthogonal to every vector in $U$.
+
+#### Theorem 6.48
+
+Let $U$ be a subset of $V$.
+
+(a) $U^\perp$ is a subspace of $V$.
+(b) $\{0\}^\perp=V$
+(c) $V^\perp =\{0\}$
+(d) $U\cap U^\perp\subseteq\{0\}$
+(e) If $G,H$ subsets of $V$ with $G\subseteq H$, then $H^\perp\subseteq G^\perp$
+
+Example:
+
+Two perpendicular line in 2D plane.
+
+Let $e_1,...,e_m$ be an orthonormal list, let $u=Span(e_1,...,e_m)$ How do I find $U^\perp$?
+
+Extend to an orthonormal basis $e_1,...,e_m,f_1...,f_n$. $U^\perp=Span(f_1,...,f_n)$
+
+#### Theorem 6.40
+
+Suppose $U$ is finite dimensional subspace of $V$, then $V=U\oplus U^\perp$
+
+Proof:
+
+Note $U\cap U^\perp=\{0\}$, so it suffices to show $U+U^\perp=V$. Fix an orthonormal basis $e_1,...,e_m$ of $U$. Let $v\in V$, let $u=\langle v,e_1\rangle e_1+...+\langle v,e_m\rangle e_m$ let $w=v-u$, then $v=u+W$ we need to check that $w\in U^\perp$
+
+$\langle w,e_k \rangle=\langle v,e_k\rangle-\langle u,e_k\rangle=\langle v,e_k\rangle-\langle v,e_k\rangle=0$
+
+So $w\in U^\perp$
+
+#### Corollary 6.51
+
+$$
+dim\ U^\perp=dim\ V-dim\ U
+$$
+
+#### Theorem 6.52
+
+Let $U$ be a finite dimensional of a vector space $V$. Then $(U^\perp)^\perp=U$
+
+Proof:
+
+First let $u\in U$ we want to show $u\in (U^\perp)^\perp$, then $\langle u,w \rangle=0$ for all $w\in U^\perp$ but then $u\in (U^\perp)^\perp$
+
+Exxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxercise on the other directiononoooonononon.
+
+#### Corollary 6.54
+
+$U^\vert=\{0\}\iff U=V$
+
+Proof:
+
+$(U^\perp)^\perp=\{0\}^\perp\implies U=V$
+
+#### Definition 6.55
+
+Given $U$ a finite dimensional subspace of $V$. The **orthogonal projection of $V$ onto $U$** is the operator $P_u\in \mathscr{L}(V)$ defined by: For each $v$ write $v=u+w$ where $u\in U$ and $w\in U^\perp$ then $P_u v=u$
+
+Formula:
+
+Let $e_1,...,e_n$ an orthonormal basis of $U$.
+
+$P_u v=\langle v,e_1\rangle e_1+...+\langle v,e_m\rangle e_m$
+
+#### Theorem 6.57
+
+(a) $P_u$ is linear.
+(b) $P_u u=U,\forall u\in U$
+(c) $P_u w=0,\forall w\in U^\perp$
+(d) $range\ P_u=U$
+(e) $null\ P_u=U^\vert$
+(f) $v-P_u v\in U^\perp$
+(g) $P_u^2=P_u$
+(h) $||P_u v||\leq ||v||$
+
+Proof:
+
+(a) Let $v,v'\in V$ and suppose $v=u+w,v'=u'+w'$, then $v+u'=(u+u')+(w+w')$ this implies that $P_u(v+v')=u+u'=P_u v+ P_u v'$
+
+...
+
+#### Theorem 6.58 Riesz Representation Theorem
+
+Let $V$ be a finite dimensional vector space for $v\in V$ define $\varphi_v\in V'$ by $\varphi_v(u)=\langle u,v \rangle$. Then the map $v\to \varphi_v$ is a bijection.
+
+Proof:
+
+Surjectivity Ideal is let $w\in (null\ \varphi)^\perp$
+
+$$
+v=\frac{\varphi(w)}{||w||^2}w,\varphi(v)=||v||^2
+$$
+
+make sense $\varphi_v=\varphi$
diff --git a/pages/Math429/Math429_L29.md b/content/Math429/Math429_L29.md
similarity index 96%
rename from pages/Math429/Math429_L29.md
rename to content/Math429/Math429_L29.md
index 441dd0e..6e6a91b 100644
--- a/pages/Math429/Math429_L29.md
+++ b/content/Math429/Math429_L29.md
@@ -1,110 +1,110 @@
-# Lecture 29
-
-## Chapter VI Inner Product Spaces
-
-### Orthogonal Complements and Minimization Problems 6C
-
-#### Minimization Problems
-
-#### Theorem 6.61
-
-Suppose $U$ is a finite dimensional subspace of $V$. Let $v\in V$, $u\in U$. Then $||v-P_u v||\leq|| v-u||$. with equality if and only if $u=P_u v$
-
-Proof:
-
-Using triangle inequality
-
-$$
-\begin{aligned}
-||v-P_u v||^2 &\leq ||v-P_u v||^2+||P_u v-u||^2\\
-&=||(v-P_u v)+(P_u v-u)||^2\\
-&=||v-u||^2
-\end{aligned}
-$$
-
-Example:
-
-Find $u(x)\in \mathscr{P}_5(\mathbb{R}) minimizing
-
-$$
-\int^{\pi}_{-\pi}|sin(x)-u(x)|^2 dx
-$$
-
-$V=C([-\pi,\pi])=$ continuous (real valued) function on $[-\pi,\pi]$
-
-$u=\mathscr{P}_5(\mathbb{R})$. Note $U\subseteq V$ and $u$ is finite dimensional.
-
-$\langle f,g \rangle=\int^{\pi}_{-\pi}fg$ gives an inner product on $V$.
-
-Minimize $||sin-u||^2$, choose an orthonormal basis $e_0,...,e_5$ of $\mathscr{P}_5(\mathbb{R})$, so $u=P_u(sin)=\langle e_0,sin\rangle e_0+...+\langle e_5,sin \rangle e_5$
-
-#### Pseudo inverses
-
-Idea: Want to (approximately) solve $Tx=b$.
-
-- If $T$ is invertible $x=T^{-1}b$
-- If $T$ is not invertible, want $T^{T}$ such that $y=T^{T}b$ is the "best solution"
-
-#### Lemma 6.67
-
-If $V$ is a finite dimensional vector space, $T\in \mathscr{L}(V,W)$ then $T\vert_{{null\ T}^\perp}$ is one to one onto $range\ T$.
-
-Proof:
-
-Note $(null\ T)^\perp \simeq V/(null\ T)$
-
-Exercise, prove this...
-
-If $v\in null(T\vert_{{null}^\perp})\implies v\in null\ T,$ and $v\in (null\ T)^\perp\implies v=0$
-
-If $w\in range\ T$ so $\exists v\in V$ such that $Tv=w$ write $v$ as $v=u+x$ sor $u\in null\ T,x\in (null\ T)^\perp$.
-
-#### Definition 6.68
-
-V is a finite dimensional space $T\in \mathscr{L}(V,W)$. The **pseudo-inverse** denoted $T^\dag\in \mathscr{L}(W,V)$ is given by
-
-$$
-T^\dag w=(T\vert_{{null\ T}^\perp})^{-1}P_{range\ T}w
-$$
-
-Some explanation:
-
-_Let $T\in \mathscr{L}(V,W)$.Since there exists isomorphism between $(null\ T)^\perp\subseteq V$ and $range\ T\subseteq W$.We can always map $W$ to $V$ using $T^\dag\in \mathscr{L}(W,V)$. $P_{range\ T}$ is the map that $W\mapsto range\ T$ and $(T\vert_{{null\ T}^\perp})^{-1}$ is a linear map that map $w\in W$_
-
-#### Proposition 6.69
-
-$V$ is a finite dimensional vector space. $T\in\mathscr{L}(V,W)$, then
-
-(a) If $T$ is invertible, then $T^\dag=T^{-1}$.
-(b) $TT^\dag=P_{range\ T}$.
-(c) $T^\dag T=P_{(null\ T)^\perp}$.
-
-#### Theorem 6.70
-
-$V$ is a finite dimensional vector space. $T\in\mathscr{L}(V,W)$, for $b\in W$, then
-
-(a) If $x\in V$, then $||T(T^* b)-b||\leq ||Tx-b||$ with equality if and only if $x\in T^\dag b+null\ T$ (_$T^\dag$ is the best solution we can have as "inverse" for non-invertible linear map_)
-
-(b) If $x\in T^\dag b+null\ T$ then
-
-$$
-||T^\dag b ||\leq ||x||
-$$
-
-Proof:
-
-(a) $Tx-b=(Tx-TT^\dag b)+(TT^\dag b-b)$
-
-Using pythagorean theorem, we have
-
-$||Tx-b||\geq ||TT^\dag b-b||$
-
-## Chapter VII Operators on Inner Product Spaces
-
-### Self adjoint and Normal Operators 7A
-
-#### Definition 7.1
-
-Let $T\in \mathscr{L}(V,W)$, then the **adjoint** of $T$ denoted $T^*$ is the function $T^*:W\to V$ such that $\langle Tv,w \rangle =\langle v,T^* w \rangle$
-
-For euclidean inner product $T^*$ is given by the conjugate transpose.
+# Lecture 29
+
+## Chapter VI Inner Product Spaces
+
+### Orthogonal Complements and Minimization Problems 6C
+
+#### Minimization Problems
+
+#### Theorem 6.61
+
+Suppose $U$ is a finite dimensional subspace of $V$. Let $v\in V$, $u\in U$. Then $||v-P_u v||\leq|| v-u||$. with equality if and only if $u=P_u v$
+
+Proof:
+
+Using triangle inequality
+
+$$
+\begin{aligned}
+||v-P_u v||^2 &\leq ||v-P_u v||^2+||P_u v-u||^2\\
+&=||(v-P_u v)+(P_u v-u)||^2\\
+&=||v-u||^2
+\end{aligned}
+$$
+
+Example:
+
+Find $u(x)\in \mathscr{P}_5(\mathbb{R}) minimizing
+
+$$
+\int^{\pi}_{-\pi}|sin(x)-u(x)|^2 dx
+$$
+
+$V=C([-\pi,\pi])=$ continuous (real valued) function on $[-\pi,\pi]$
+
+$u=\mathscr{P}_5(\mathbb{R})$. Note $U\subseteq V$ and $u$ is finite dimensional.
+
+$\langle f,g \rangle=\int^{\pi}_{-\pi}fg$ gives an inner product on $V$.
+
+Minimize $||sin-u||^2$, choose an orthonormal basis $e_0,...,e_5$ of $\mathscr{P}_5(\mathbb{R})$, so $u=P_u(sin)=\langle e_0,sin\rangle e_0+...+\langle e_5,sin \rangle e_5$
+
+#### Pseudo inverses
+
+Idea: Want to (approximately) solve $Tx=b$.
+
+- If $T$ is invertible $x=T^{-1}b$
+- If $T$ is not invertible, want $T^{T}$ such that $y=T^{T}b$ is the "best solution"
+
+#### Lemma 6.67
+
+If $V$ is a finite dimensional vector space, $T\in \mathscr{L}(V,W)$ then $T\vert_{{null\ T}^\perp}$ is one to one onto $range\ T$.
+
+Proof:
+
+Note $(null\ T)^\perp \simeq V/(null\ T)$
+
+Exercise, prove this...
+
+If $v\in null(T\vert_{{null}^\perp})\implies v\in null\ T,$ and $v\in (null\ T)^\perp\implies v=0$
+
+If $w\in range\ T$ so $\exists v\in V$ such that $Tv=w$ write $v$ as $v=u+x$ sor $u\in null\ T,x\in (null\ T)^\perp$.
+
+#### Definition 6.68
+
+V is a finite dimensional space $T\in \mathscr{L}(V,W)$. The **pseudo-inverse** denoted $T^\dag\in \mathscr{L}(W,V)$ is given by
+
+$$
+T^\dag w=(T\vert_{{null\ T}^\perp})^{-1}P_{range\ T}w
+$$
+
+Some explanation:
+
+_Let $T\in \mathscr{L}(V,W)$.Since there exists isomorphism between $(null\ T)^\perp\subseteq V$ and $range\ T\subseteq W$.We can always map $W$ to $V$ using $T^\dag\in \mathscr{L}(W,V)$. $P_{range\ T}$ is the map that $W\mapsto range\ T$ and $(T\vert_{{null\ T}^\perp})^{-1}$ is a linear map that map $w\in W$_
+
+#### Proposition 6.69
+
+$V$ is a finite dimensional vector space. $T\in\mathscr{L}(V,W)$, then
+
+(a) If $T$ is invertible, then $T^\dag=T^{-1}$.
+(b) $TT^\dag=P_{range\ T}$.
+(c) $T^\dag T=P_{(null\ T)^\perp}$.
+
+#### Theorem 6.70
+
+$V$ is a finite dimensional vector space. $T\in\mathscr{L}(V,W)$, for $b\in W$, then
+
+(a) If $x\in V$, then $||T(T^* b)-b||\leq ||Tx-b||$ with equality if and only if $x\in T^\dag b+null\ T$ (_$T^\dag$ is the best solution we can have as "inverse" for non-invertible linear map_)
+
+(b) If $x\in T^\dag b+null\ T$ then
+
+$$
+||T^\dag b ||\leq ||x||
+$$
+
+Proof:
+
+(a) $Tx-b=(Tx-TT^\dag b)+(TT^\dag b-b)$
+
+Using pythagorean theorem, we have
+
+$||Tx-b||\geq ||TT^\dag b-b||$
+
+## Chapter VII Operators on Inner Product Spaces
+
+### Self adjoint and Normal Operators 7A
+
+#### Definition 7.1
+
+Let $T\in \mathscr{L}(V,W)$, then the **adjoint** of $T$ denoted $T^*$ is the function $T^*:W\to V$ such that $\langle Tv,w \rangle =\langle v,T^* w \rangle$
+
+For euclidean inner product $T^*$ is given by the conjugate transpose.
diff --git a/pages/Math429/Math429_L3.md b/content/Math429/Math429_L3.md
similarity index 100%
rename from pages/Math429/Math429_L3.md
rename to content/Math429/Math429_L3.md
diff --git a/pages/Math429/Math429_L30.md b/content/Math429/Math429_L30.md
similarity index 96%
rename from pages/Math429/Math429_L30.md
rename to content/Math429/Math429_L30.md
index 49b4074..001ac3c 100644
--- a/pages/Math429/Math429_L30.md
+++ b/content/Math429/Math429_L30.md
@@ -1,104 +1,104 @@
-# Lecture 30
-
-## Chapter VII Operators on Inner Product Spaces
-
-**Assumption: $V,W$ are finite dimensional inner product spaces.**
-
-### Self adjoint and Normal Operators 7A
-
-#### Definition 7.1
-
-Suppose $T\in \mathscr{L}(V,W)$. The adjoint is the function $T^*:W\to V$ such that
-
-$$
-\langle Tv,w \rangle=\langle v,T^*w \rangle, \forall v\in V, w\in W
-$$
-
-#### Theorem 7.4
-
-Suppose $T\in \mathscr{L}(V,W)$ then $T^*\in \mathscr{L}(W,V)$
-
-Proof:
-
-Additivity, let $w_1,w_2\in W$. We want to show $T^*(w_1+w_2)T^*w_1+T^*w_2$
-
-Let $v\in V$, then
-
-$$
-\begin{aligned}
- \langle v,T^*(w_1+w_2) \rangle &=\langle v,T^*(w_1+w_2) \rangle\\
- &=\langle Tv,w_1+w_2 \rangle\\
- &=\langle Tv,w_1 \rangle+\langle Tv,w_2 \rangle\\
- &=\langle v,T^*w_1 \rangle+\langle v,T^* w_2 \rangle\\
- &=\langle v,T^*w_1 +T^* w_2 \rangle\\
-\end{aligned}
-$$
-
-Note: If $\langle v,u \rangle=\langle v,u'\rangle$, forall $v\in V$ then $u=u'$
-
-Homogeneity: same as idea above.
-
-#### Theorem 7.5
-
-Suppose $S,T\in \mathscr{L}(V,W)$, and $\lambda\in \mathbb{F}$, then
-
-(a) $(S+T)^*=S^*+T^*$
-(b) $(ST)^*=T^* S^*$
-(c) $(\lambda T)^*=\bar{\lambda}S^*$
-(d) $I^*=I$
-(e) $(T^*)^*=T$
-(f) If $T$ is invertible, then $(T^*)^{-1}=(T^{-1})^*$
-
-Proof:
-
-(d) $\langle (ST)v,u \rangle=\langle S(Tv),u \rangle=\langle Tv,S^*u \rangle=\langle v,T^*S^*u \rangle$
-
-#### Theorem 7.6
-
-Suppose $T\in\mathscr{L}(V,W)$, then
-
-(a) $null\ T^*=(range\ T)^\perp$
-(b) $null\ T=(range\ T^*)^\perp$
-(c) $range\ T^*=(null\ T)^\perp$
-(d) $range\ T=(null\ T^*)^\perp$
-
-Proof:
-
-$(a)\iff (c)$ since we can use **Theorem 7.5** (c) while replacing $T$ with $T^*$. Same idea give $(b)\iff (d)$. Also $(a)\iff (d)$ Since $(V^\perp)^\perp=V$
-
-Now we prove (a). Suppose $w\in null\ T^*\iff T^*w=0$
-
-$T^*w=0\iff \langle v,T^* w\rangle=0\forall v\in V\iff \langle Tv,w\rangle =0\forall v\in V\iff w\in (range\ T)^\perp$
-
-#### Definition 7.7
-
-The **conjugate transpose** of a $m\times n$ matrix $A$ is the $n\times m$ matrix denoted $A^*$ given the conjugate of the transpose.
-
-ie. $(A^*)_{j,k}=A_{j,k}$
-
-#### Theorem 7.9
-
-Let $T\in \mathscr{L}(V,W)$ and $e_1,..,e_n$ an orthonormal basis of $V$, $f_1,...,f_m$ be an orthonormal basis of $W$. Then $M(T^*,(f_1,...,f_m),(e_1,..,e_n))=M(T,(f_1,...,f_m),(e_1,..,e_n))^*$
-
-Proof:
-
-The k-th column of $T$ is given by writing $Te_k$. in the basis $f_1,...,f_m$. ie. the $k,j$ entry of $M(T)$ is $\langle Te_k,f_j \rangle$, but then the $j,k$ entry of $M(T^*)$ is $\langle T^*f,e_k \rangle$. But $\langle Te_k,f_j\rangle=\langle e_k,T^*f_j\rangle=\overline{\langle T^*f_j,e_k\rangle}$
-
-Example:
-
-Suppose $T(x_1,x_2,x_3)=(x_2+3x_3,2x_1)$
-
-$$
-\begin{aligned}
- \langle T(x_1,x_2,x_3),(y_1,y_2)\rangle&=\langle (x_2+3x_3,2x_1),(y_1,y_2)\rangle\\
- &=(x_2+3x_3,2x_1)\bar{y_1},(x_2+3x_3,2x_1)\bar{y_2}\\
- &=\bar{y_1}x_2+3\bar{y_1}x_3+2\bar{y_2}x_1\\
- &=\langle (x_1,x_2,x_3),(2y_2,y_1,3y_1)\rangle
-\end{aligned}
-$$
-
-So $T^*(y_1,y_2)=(2y_2,y_1,3y_1)$
-
-Idea: Reisz Representation gives a function from $V$ to $V'$ (3.118) tells us given $T\in \mathscr{L}(V,W)$, we have
-
-
+# Lecture 30
+
+## Chapter VII Operators on Inner Product Spaces
+
+**Assumption: $V,W$ are finite dimensional inner product spaces.**
+
+### Self adjoint and Normal Operators 7A
+
+#### Definition 7.1
+
+Suppose $T\in \mathscr{L}(V,W)$. The adjoint is the function $T^*:W\to V$ such that
+
+$$
+\langle Tv,w \rangle=\langle v,T^*w \rangle, \forall v\in V, w\in W
+$$
+
+#### Theorem 7.4
+
+Suppose $T\in \mathscr{L}(V,W)$ then $T^*\in \mathscr{L}(W,V)$
+
+Proof:
+
+Additivity, let $w_1,w_2\in W$. We want to show $T^*(w_1+w_2)T^*w_1+T^*w_2$
+
+Let $v\in V$, then
+
+$$
+\begin{aligned}
+ \langle v,T^*(w_1+w_2) \rangle &=\langle v,T^*(w_1+w_2) \rangle\\
+ &=\langle Tv,w_1+w_2 \rangle\\
+ &=\langle Tv,w_1 \rangle+\langle Tv,w_2 \rangle\\
+ &=\langle v,T^*w_1 \rangle+\langle v,T^* w_2 \rangle\\
+ &=\langle v,T^*w_1 +T^* w_2 \rangle\\
+\end{aligned}
+$$
+
+Note: If $\langle v,u \rangle=\langle v,u'\rangle$, forall $v\in V$ then $u=u'$
+
+Homogeneity: same as idea above.
+
+#### Theorem 7.5
+
+Suppose $S,T\in \mathscr{L}(V,W)$, and $\lambda\in \mathbb{F}$, then
+
+(a) $(S+T)^*=S^*+T^*$
+(b) $(ST)^*=T^* S^*$
+(c) $(\lambda T)^*=\bar{\lambda}S^*$
+(d) $I^*=I$
+(e) $(T^*)^*=T$
+(f) If $T$ is invertible, then $(T^*)^{-1}=(T^{-1})^*$
+
+Proof:
+
+(d) $\langle (ST)v,u \rangle=\langle S(Tv),u \rangle=\langle Tv,S^*u \rangle=\langle v,T^*S^*u \rangle$
+
+#### Theorem 7.6
+
+Suppose $T\in\mathscr{L}(V,W)$, then
+
+(a) $null\ T^*=(range\ T)^\perp$
+(b) $null\ T=(range\ T^*)^\perp$
+(c) $range\ T^*=(null\ T)^\perp$
+(d) $range\ T=(null\ T^*)^\perp$
+
+Proof:
+
+$(a)\iff (c)$ since we can use **Theorem 7.5** (c) while replacing $T$ with $T^*$. Same idea give $(b)\iff (d)$. Also $(a)\iff (d)$ Since $(V^\perp)^\perp=V$
+
+Now we prove (a). Suppose $w\in null\ T^*\iff T^*w=0$
+
+$T^*w=0\iff \langle v,T^* w\rangle=0\forall v\in V\iff \langle Tv,w\rangle =0\forall v\in V\iff w\in (range\ T)^\perp$
+
+#### Definition 7.7
+
+The **conjugate transpose** of a $m\times n$ matrix $A$ is the $n\times m$ matrix denoted $A^*$ given the conjugate of the transpose.
+
+ie. $(A^*)_{j,k}=A_{j,k}$
+
+#### Theorem 7.9
+
+Let $T\in \mathscr{L}(V,W)$ and $e_1,..,e_n$ an orthonormal basis of $V$, $f_1,...,f_m$ be an orthonormal basis of $W$. Then $M(T^*,(f_1,...,f_m),(e_1,..,e_n))=M(T,(f_1,...,f_m),(e_1,..,e_n))^*$
+
+Proof:
+
+The k-th column of $T$ is given by writing $Te_k$. in the basis $f_1,...,f_m$. ie. the $k,j$ entry of $M(T)$ is $\langle Te_k,f_j \rangle$, but then the $j,k$ entry of $M(T^*)$ is $\langle T^*f,e_k \rangle$. But $\langle Te_k,f_j\rangle=\langle e_k,T^*f_j\rangle=\overline{\langle T^*f_j,e_k\rangle}$
+
+Example:
+
+Suppose $T(x_1,x_2,x_3)=(x_2+3x_3,2x_1)$
+
+$$
+\begin{aligned}
+ \langle T(x_1,x_2,x_3),(y_1,y_2)\rangle&=\langle (x_2+3x_3,2x_1),(y_1,y_2)\rangle\\
+ &=(x_2+3x_3,2x_1)\bar{y_1},(x_2+3x_3,2x_1)\bar{y_2}\\
+ &=\bar{y_1}x_2+3\bar{y_1}x_3+2\bar{y_2}x_1\\
+ &=\langle (x_1,x_2,x_3),(2y_2,y_1,3y_1)\rangle
+\end{aligned}
+$$
+
+So $T^*(y_1,y_2)=(2y_2,y_1,3y_1)$
+
+Idea: Reisz Representation gives a function from $V$ to $V'$ (3.118) tells us given $T\in \mathscr{L}(V,W)$, we have
+
+
diff --git a/pages/Math429/Math429_L31.md b/content/Math429/Math429_L31.md
similarity index 95%
rename from pages/Math429/Math429_L31.md
rename to content/Math429/Math429_L31.md
index f255a96..41f0095 100644
--- a/pages/Math429/Math429_L31.md
+++ b/content/Math429/Math429_L31.md
@@ -1,142 +1,142 @@
-# Lecture 31
-
-## Chapter VII Operators on Inner Product Spaces
-
-**Assumption: $V,W$ are finite dimensional inner product spaces.**
-
-### Self adjoint and Normal Operators 7A
-
-#### Definition 7.10
-
-An operator $T\in\mathscr{L}(V)$ is **self adjoint** if $T=T^*$. ie. $\langle Tv,u\rangle=\langle v,Tu \rangle$ for $u,v\in V$.
-
-Example:
-
-Consider $M(T)=\begin{pmatrix}
- 2 & i\\
- -i& 3
-\end{pmatrix}$, Then
-
-$$
-M(T^*)=M(T)^*=\begin{pmatrix}
- \bar{2},\bar{-i}\\
- \bar{i},\bar{3}
-\end{pmatrix}=\begin{pmatrix}
- 2 &i\\
- -i& 3
-\end{pmatrix}=M(T)
-$$
-
-So $T=T^*$ so $T$ is self adjoint
-
-#### Theorem 7.12
-
-Every eigenvalue of a self adjoint operator $T$ is real.
-
-Proof:
-
-Suppose $T$ is self adjoint and $\lambda$ is an eigenvalue of $T$, and $v$ is an eigenvector with eigenvalue $\lambda$.
-
-Consider $\langle Tv,v\rangle$
-
-$$
-\langle Tv, v\rangle=
-\langle v, Tv\rangle=
-\langle v,\lambda v\rangle=
-\bar{\lambda}\langle v,v\rangle=\bar{\lambda}||v||^2
-$$
-$$
-\langle Tv, v\rangle=
-\langle \lambda v, v\rangle=
-\langle v, v\rangle=
-\lambda\langle v,v\rangle=\lambda||v||^2\\
-$$
-
-So $\lambda=\bar{\lambda}$, so $\lambda$ is real.
-
-NoteL (7.12) is only interesting for complex vector spaces.
-
-#### Theorem 7.13
-
-Suppose $V$ is a complex inner product space and $T\in\mathscr{L}(V)$, then
-
-$$
-\langle Tv, v\rangle =0 \textup{ for every }v\in V\iff T=0
-$$
-
-Note: (7.13) is **False** over real vector spaces. The counterexample is $T$ the rotation by $90\degree$ operator. ie. $M(T)=\begin{pmatrix}
- 0&-1\\
- 1&0
-\end{pmatrix}$
-
-Proof:
-
-$\Rightarrow$ Suppose $u,w\in V$
-
-$$
-\begin{aligned}
-\langle Tu,w \rangle&=\frac{\langle T(u+w),u+w\rangle -\langle T(u-w),u-w\rangle}{4}+\frac{\langle T(u+iw),u+iw\rangle -\langle T(u-iw),u-iw\rangle}{4}i\\
-&=0
-\end{aligned}
-$$
-
-Since $w$ is arbitrary $\implies Tu=0, \forall u\in V\implies T=0$.
-
-#### Theorem 7.14
-
-Suppose $V$ is a complex inner product space and $T\in \mathscr{L}(V)$ thne
-
-$$
-T \textup{ is self adjoint }\iff \langle Tv, v\rangle \in \mathbb{R} \textup{ for every} v \in V
-$$
-
-Proof:
-
-$$
-\begin{aligned}
- T\textup{ is self adjoint}&\iff T-T^*=0\\
- &\iff \langle (T-T^*)v,v\rangle =0 (\textup{ by \textbf{7.13}})\\
- &\iff \langle Tv, v\rangle -\langle T^*v,v \rangle =0\\
- &\iff \langle Tv, v\rangle -\overline{\langle T,v \rangle} =0\\
- &\iff\langle Tv,v\rangle \in \mathbb{R}
-\end{aligned}
-$$
-
-#### Theorem 7.16
-
-Suppose $T$ is a self adjoint operator, then $\langle Tv, v\rangle =0,\forall v\in V\iff T=0$
-
-Proof:
-
-Note the complex case is **Theorem 7.13**, so assume $V$ is a real vector space. Let $u,w\in V$ consider
-
-$\Rightarrow$
-
-$$
-\langle Tu,w\rangle=\frac{\langle T(u+w),u+w\rangle -\langle T(u-w),u-w\rangle}{4}=0
-$$
-
-We set $\langle Tw,u\rangle=\langle w,Tu\rangle =\langle Tu,w\rangle$
-
-#### Normal Operators
-
-#### Definition 7.18
-
-An operator $T\in \mathscr{L}(V)$ on an inner product space is **normal** if $TT^*=T^*T$ ie. $T$ commutes with its adjoint
-
-#### Theorem (7.20)
-
-An operator $T$ is normal if and only if
-
-$$
-||Tv||=||T^*v||,\forall v\in V
-$$
-
-Proof:
-
-The key idea is that $T^*T-TT^*$ is self adjoint.
-
-$$
-(T^*T-TT^*)^*=(T^*T)^*-(TT^*)^*=T^*T-TT^*
-$$
-
+# Lecture 31
+
+## Chapter VII Operators on Inner Product Spaces
+
+**Assumption: $V,W$ are finite dimensional inner product spaces.**
+
+### Self adjoint and Normal Operators 7A
+
+#### Definition 7.10
+
+An operator $T\in\mathscr{L}(V)$ is **self adjoint** if $T=T^*$. ie. $\langle Tv,u\rangle=\langle v,Tu \rangle$ for $u,v\in V$.
+
+Example:
+
+Consider $M(T)=\begin{pmatrix}
+ 2 & i\\
+ -i& 3
+\end{pmatrix}$, Then
+
+$$
+M(T^*)=M(T)^*=\begin{pmatrix}
+ \bar{2},\bar{-i}\\
+ \bar{i},\bar{3}
+\end{pmatrix}=\begin{pmatrix}
+ 2 &i\\
+ -i& 3
+\end{pmatrix}=M(T)
+$$
+
+So $T=T^*$ so $T$ is self adjoint
+
+#### Theorem 7.12
+
+Every eigenvalue of a self adjoint operator $T$ is real.
+
+Proof:
+
+Suppose $T$ is self adjoint and $\lambda$ is an eigenvalue of $T$, and $v$ is an eigenvector with eigenvalue $\lambda$.
+
+Consider $\langle Tv,v\rangle$
+
+$$
+\langle Tv, v\rangle=
+\langle v, Tv\rangle=
+\langle v,\lambda v\rangle=
+\bar{\lambda}\langle v,v\rangle=\bar{\lambda}||v||^2
+$$
+$$
+\langle Tv, v\rangle=
+\langle \lambda v, v\rangle=
+\langle v, v\rangle=
+\lambda\langle v,v\rangle=\lambda||v||^2\\
+$$
+
+So $\lambda=\bar{\lambda}$, so $\lambda$ is real.
+
+NoteL (7.12) is only interesting for complex vector spaces.
+
+#### Theorem 7.13
+
+Suppose $V$ is a complex inner product space and $T\in\mathscr{L}(V)$, then
+
+$$
+\langle Tv, v\rangle =0 \textup{ for every }v\in V\iff T=0
+$$
+
+Note: (7.13) is **False** over real vector spaces. The counterexample is $T$ the rotation by $90\degree$ operator. ie. $M(T)=\begin{pmatrix}
+ 0&-1\\
+ 1&0
+\end{pmatrix}$
+
+Proof:
+
+$\Rightarrow$ Suppose $u,w\in V$
+
+$$
+\begin{aligned}
+\langle Tu,w \rangle&=\frac{\langle T(u+w),u+w\rangle -\langle T(u-w),u-w\rangle}{4}+\frac{\langle T(u+iw),u+iw\rangle -\langle T(u-iw),u-iw\rangle}{4}i\\
+&=0
+\end{aligned}
+$$
+
+Since $w$ is arbitrary $\implies Tu=0, \forall u\in V\implies T=0$.
+
+#### Theorem 7.14
+
+Suppose $V$ is a complex inner product space and $T\in \mathscr{L}(V)$ thne
+
+$$
+T \textup{ is self adjoint }\iff \langle Tv, v\rangle \in \mathbb{R} \textup{ for every} v \in V
+$$
+
+Proof:
+
+$$
+\begin{aligned}
+ T\textup{ is self adjoint}&\iff T-T^*=0\\
+ &\iff \langle (T-T^*)v,v\rangle =0 (\textup{ by \textbf{7.13}})\\
+ &\iff \langle Tv, v\rangle -\langle T^*v,v \rangle =0\\
+ &\iff \langle Tv, v\rangle -\overline{\langle T,v \rangle} =0\\
+ &\iff\langle Tv,v\rangle \in \mathbb{R}
+\end{aligned}
+$$
+
+#### Theorem 7.16
+
+Suppose $T$ is a self adjoint operator, then $\langle Tv, v\rangle =0,\forall v\in V\iff T=0$
+
+Proof:
+
+Note the complex case is **Theorem 7.13**, so assume $V$ is a real vector space. Let $u,w\in V$ consider
+
+$\Rightarrow$
+
+$$
+\langle Tu,w\rangle=\frac{\langle T(u+w),u+w\rangle -\langle T(u-w),u-w\rangle}{4}=0
+$$
+
+We set $\langle Tw,u\rangle=\langle w,Tu\rangle =\langle Tu,w\rangle$
+
+#### Normal Operators
+
+#### Definition 7.18
+
+An operator $T\in \mathscr{L}(V)$ on an inner product space is **normal** if $TT^*=T^*T$ ie. $T$ commutes with its adjoint
+
+#### Theorem (7.20)
+
+An operator $T$ is normal if and only if
+
+$$
+||Tv||=||T^*v||,\forall v\in V
+$$
+
+Proof:
+
+The key idea is that $T^*T-TT^*$ is self adjoint.
+
+$$
+(T^*T-TT^*)^*=(T^*T)^*-(TT^*)^*=T^*T-TT^*
+$$
+
diff --git a/pages/Math429/Math429_L32.md b/content/Math429/Math429_L32.md
similarity index 96%
rename from pages/Math429/Math429_L32.md
rename to content/Math429/Math429_L32.md
index bba6f66..3c4953c 100644
--- a/pages/Math429/Math429_L32.md
+++ b/content/Math429/Math429_L32.md
@@ -1,108 +1,108 @@
-# Lecture 32
-
-## Chapter VII Operators on Inner Product Spaces
-
-**Assumption: $V,W$ are finite dimensional inner product spaces.**
-
-### Spectral Theorem 7B
-
-Recall
-
-#### Definition 7.10
-
-An operator $T\in \mathscr{L}(V)$ is self adjoint if $T=T^*$
-
-#### Definition 7.18
-
-AN operator $T\in\mathscr{L}(V)$ is normal if $TT^*=T^*T$
-
-#### Theorem 7.20
-
-Suppose $T\in \mathscr{L}(V)$, $T$ is normal $\iff ||Tv||=||T^*v||$
-
-#### Lemma 7,26
-
-Suppose $T\in\mathscr{L}(V)$ is self adjoint operator and $b,c\in \mathbb{R}$ such that $b^2<4c$, then
-
-$$
-T^2+bT+cI
-$$
-
-is invertible.
-
-Proof:
-
-Prove $T^2+bT+cI$ is injective by showing $\langle(T^2+bT+cI),v\rangle\neq 0$ (for $v\neq 0$)
-
-$$
-\begin{aligned}
-\langle(T^2+bT+cI),v\rangle&=\langle T^2v,v\rangle+\langle bTv,v\rangle+c\langle v,v\rangle\\
-&=\langle Tv,Tv\rangle+b\langle Tv,v\rangle +c||v||^2\\
-&\geq ||Tv||^2-|b|\ ||Tv||\ ||v||+c||v||^2 \textup{ by cauchy schuarz}\\
-&=\left(||Tv||-\frac{b||v||}{2}\right)^2+\left(c-\frac{b^2}{4}\right)||v||^2>0
-\end{aligned}
-$$
-
-#### Theorem 7.27
-
-Suppose $T\in \mathscr{L}(V)$ is self adjoint. Then the minimal polynomial is of the form $(z-\lambda_1)...(z-\lambda_m)$ for some $\lambda_1,...,\lambda_m\in\mathbb{R}$
-
-Proof:
-
-$\mathbb{F}=\mathbb{C}$ clear from previous results
-
-$\mathbb{F}=\mathbb{R}$ assume for contradiction $q(z)$, where $b^2\leq 4c$. Then $P(T)=0$ but $q(T)\neq 0$. So let $v\in V$ such that $q(T)v\neq 0$.
-
-then $(T^2+bT+cI)(q(T)v)=0$ but $T^2+bT+cI$ is invertible so $q(T)v=0$ this is a contradiction so $p(z)=(z-\lambda_1)...(z-\lambda_m)$
-
-#### Theorem 7.29 Real Spectral theorem
-
-Suppose $V$ is a finite dimensional real inner product space and $T\in \mathscr{L}(V)$ then the following are equivalent.
-
-(a) $T$ is self adjoint.
-(b) $T$ has a diagonal matrix with respect to same orthonormal basis.
-(c) $V$ has an orthonormal basis of eigenvectors of $T$
-
-Proof:
-
-$b\iff c$ clear by definition
-
-$b\implies a$ because the transpose of a diagonal matrix is itself.
-
-$a\implies b$ by (**Theorem 7.27**) there exists an orthonormal basis such that $M(T)$ is upper triangular. But $M(T^*)=M(T)$ and $M(T^*)=(M(T))^*$
-
-but this $M(T)$ is both upper and lower triangular, so $M(T)$ is diagonal.
-
-#### Theorem 7.31 Complete Spectral Theorem
-
-Suppose $V$ is a complex finite dimensional inner product space. $T\in \mathscr{L}(V)$, then the following are equivalent.
-
-(a) $T$ is normal
-(b) $T$ has a diagonal matrix with respect to an orthonormal basis
-(c) $V$ has an orthonormal basis of eigenvectors of $T$.
-
-$a\implies b$
-
-$$
-M(T)=\begin{pmatrix}
- a_{1,1}&\dots&a_{1,n}\\
- &\ddots &\vdots\\
- 0& & a_{n,n}
-\end{pmatrix}
-$$
-
-with respect to an appropriate basis $e_1,...,e_n$
-
-Then $||Te_1||^2=|a_{1,1}|^2$, $||Te_1||^2=||T^*e_1||^2=|a_{1,1}|^2+|a_{1,2}|^2+...+|a_{1,n}|^2$. So $a_{1,2}=...=a_{1,n}=0$, without loss of generality, $||Te_2||^2=0$. Repeating this procedure we have $M(T)$ is diagonal.
-
-Example:
-
-$T\in \mathscr{L}(\mathbb{C}^2)$ $M(T)=\begin{pmatrix}
- 2&-3\\
- 3&2
-\end{pmatrix}$
-
-$M(T,(f_1,f_2))=\begin{pmatrix}
- 2+3c&0\\
- 0&2-3c
-\end{pmatrix}$
+# Lecture 32
+
+## Chapter VII Operators on Inner Product Spaces
+
+**Assumption: $V,W$ are finite dimensional inner product spaces.**
+
+### Spectral Theorem 7B
+
+Recall
+
+#### Definition 7.10
+
+An operator $T\in \mathscr{L}(V)$ is self adjoint if $T=T^*$
+
+#### Definition 7.18
+
+AN operator $T\in\mathscr{L}(V)$ is normal if $TT^*=T^*T$
+
+#### Theorem 7.20
+
+Suppose $T\in \mathscr{L}(V)$, $T$ is normal $\iff ||Tv||=||T^*v||$
+
+#### Lemma 7,26
+
+Suppose $T\in\mathscr{L}(V)$ is self adjoint operator and $b,c\in \mathbb{R}$ such that $b^2<4c$, then
+
+$$
+T^2+bT+cI
+$$
+
+is invertible.
+
+Proof:
+
+Prove $T^2+bT+cI$ is injective by showing $\langle(T^2+bT+cI),v\rangle\neq 0$ (for $v\neq 0$)
+
+$$
+\begin{aligned}
+\langle(T^2+bT+cI),v\rangle&=\langle T^2v,v\rangle+\langle bTv,v\rangle+c\langle v,v\rangle\\
+&=\langle Tv,Tv\rangle+b\langle Tv,v\rangle +c||v||^2\\
+&\geq ||Tv||^2-|b|\ ||Tv||\ ||v||+c||v||^2 \textup{ by cauchy schuarz}\\
+&=\left(||Tv||-\frac{b||v||}{2}\right)^2+\left(c-\frac{b^2}{4}\right)||v||^2>0
+\end{aligned}
+$$
+
+#### Theorem 7.27
+
+Suppose $T\in \mathscr{L}(V)$ is self adjoint. Then the minimal polynomial is of the form $(z-\lambda_1)...(z-\lambda_m)$ for some $\lambda_1,...,\lambda_m\in\mathbb{R}$
+
+Proof:
+
+$\mathbb{F}=\mathbb{C}$ clear from previous results
+
+$\mathbb{F}=\mathbb{R}$ assume for contradiction $q(z)$, where $b^2\leq 4c$. Then $P(T)=0$ but $q(T)\neq 0$. So let $v\in V$ such that $q(T)v\neq 0$.
+
+then $(T^2+bT+cI)(q(T)v)=0$ but $T^2+bT+cI$ is invertible so $q(T)v=0$ this is a contradiction so $p(z)=(z-\lambda_1)...(z-\lambda_m)$
+
+#### Theorem 7.29 Real Spectral theorem
+
+Suppose $V$ is a finite dimensional real inner product space and $T\in \mathscr{L}(V)$ then the following are equivalent.
+
+(a) $T$ is self adjoint.
+(b) $T$ has a diagonal matrix with respect to same orthonormal basis.
+(c) $V$ has an orthonormal basis of eigenvectors of $T$
+
+Proof:
+
+$b\iff c$ clear by definition
+
+$b\implies a$ because the transpose of a diagonal matrix is itself.
+
+$a\implies b$ by (**Theorem 7.27**) there exists an orthonormal basis such that $M(T)$ is upper triangular. But $M(T^*)=M(T)$ and $M(T^*)=(M(T))^*$
+
+but this $M(T)$ is both upper and lower triangular, so $M(T)$ is diagonal.
+
+#### Theorem 7.31 Complete Spectral Theorem
+
+Suppose $V$ is a complex finite dimensional inner product space. $T\in \mathscr{L}(V)$, then the following are equivalent.
+
+(a) $T$ is normal
+(b) $T$ has a diagonal matrix with respect to an orthonormal basis
+(c) $V$ has an orthonormal basis of eigenvectors of $T$.
+
+$a\implies b$
+
+$$
+M(T)=\begin{pmatrix}
+ a_{1,1}&\dots&a_{1,n}\\
+ &\ddots &\vdots\\
+ 0& & a_{n,n}
+\end{pmatrix}
+$$
+
+with respect to an appropriate basis $e_1,...,e_n$
+
+Then $||Te_1||^2=|a_{1,1}|^2$, $||Te_1||^2=||T^*e_1||^2=|a_{1,1}|^2+|a_{1,2}|^2+...+|a_{1,n}|^2$. So $a_{1,2}=...=a_{1,n}=0$, without loss of generality, $||Te_2||^2=0$. Repeating this procedure we have $M(T)$ is diagonal.
+
+Example:
+
+$T\in \mathscr{L}(\mathbb{C}^2)$ $M(T)=\begin{pmatrix}
+ 2&-3\\
+ 3&2
+\end{pmatrix}$
+
+$M(T,(f_1,f_2))=\begin{pmatrix}
+ 2+3c&0\\
+ 0&2-3c
+\end{pmatrix}$
diff --git a/pages/Math429/Math429_L33.md b/content/Math429/Math429_L33.md
similarity index 100%
rename from pages/Math429/Math429_L33.md
rename to content/Math429/Math429_L33.md
diff --git a/pages/Math429/Math429_L34.md b/content/Math429/Math429_L34.md
similarity index 100%
rename from pages/Math429/Math429_L34.md
rename to content/Math429/Math429_L34.md
diff --git a/pages/Math429/Math429_L35.md b/content/Math429/Math429_L35.md
similarity index 97%
rename from pages/Math429/Math429_L35.md
rename to content/Math429/Math429_L35.md
index 0523ea7..9c5fc51 100644
--- a/pages/Math429/Math429_L35.md
+++ b/content/Math429/Math429_L35.md
@@ -1,114 +1,114 @@
-# Lecture 35
-
-## Chapter VIII Operators on complex vector spaces
-
-### Generalized Eigenvectors and Nilpotent Operators 8A
-
-Recall: Definition 8.8
-
-Suppose $T\in \mathscr{L}(V)$ and $\lambda$ is an eigenvalue of $T$. A vector $v\in V$ is called a **generalized eigenvector** of $T$ corresponding to $\lambda$ if $v\neq 0$ and
-
-$$
-(T-\lambda I)^k v=0
-$$
-
-for some positive integer $k$.
-
-Example:
-
-For $T\in\mathscr{L}(\mathbb{F})$
-
-The matrix for $T$ is $\begin{pmatrix} 0&1\\0&0 \end{pmatrix}$
-
-When $\lambda=0$, $\begin{pmatrix} 1 & 0 \end{pmatrix}$ is an eigenvector $\begin{pmatrix} 0&1 \end{pmatrix}$ is not and eigenvector but it is a generalized eigenvector.
-
-In fact $\begin{pmatrix} 0&1\\0&0 \end{pmatrix}^2=\begin{pmatrix} 0&0\\0&0 \end{pmatrix}$, so any nonzero vector is a generalized eigenvector. is a generalized eigenvector of $T$ corresponding to eigenvalue $0$.
-
-Fact: $v\in V$ is a generalized eigenvector of $T$ corresponding to $\lambda\iff (T-\lambda I)^{dim\ V}v=0$
-
-#### Theorem 8.9
-
-Suppose $\mathbb{F}=\mathbb{C}$ and $T\in \mathscr{L}(V)$ Then $\exists$ basis of $V$ consisting of generalized eigenvector of $T$.
-
-Proof: Let $n=dim\ V$ we will induct on $n$.
-
-Base case $n=1$, Every nonzero vector in $V$ is an eigenvector of $T$.
-
-Inductive step: Let $n=dim\ V$, assume the theorem is tru for all vector spaces with $dim
-
-$$
-\begin{aligned}
- 0&=(T-\lambda I)^n v\\
- &=(B+A)^n v\\
- &=\sum^n_{k=0} \begin{pmatrix}
- n\\k
- \end{pmatrix} A^{n-k}B^kv
-\end{aligned}
-$$
-
-Then we apply $(T-\alpha I)^{m-1}$, which is $B^{m-1}$ to both sides
-
-$$
-\begin{aligned}
- 0&=A^nB^{m-1}v
-\end{aligned}
-$$
-
+# Lecture 35
+
+## Chapter VIII Operators on complex vector spaces
+
+### Generalized Eigenvectors and Nilpotent Operators 8A
+
+Recall: Definition 8.8
+
+Suppose $T\in \mathscr{L}(V)$ and $\lambda$ is an eigenvalue of $T$. A vector $v\in V$ is called a **generalized eigenvector** of $T$ corresponding to $\lambda$ if $v\neq 0$ and
+
+$$
+(T-\lambda I)^k v=0
+$$
+
+for some positive integer $k$.
+
+Example:
+
+For $T\in\mathscr{L}(\mathbb{F})$
+
+The matrix for $T$ is $\begin{pmatrix} 0&1\\0&0 \end{pmatrix}$
+
+When $\lambda=0$, $\begin{pmatrix} 1 & 0 \end{pmatrix}$ is an eigenvector $\begin{pmatrix} 0&1 \end{pmatrix}$ is not and eigenvector but it is a generalized eigenvector.
+
+In fact $\begin{pmatrix} 0&1\\0&0 \end{pmatrix}^2=\begin{pmatrix} 0&0\\0&0 \end{pmatrix}$, so any nonzero vector is a generalized eigenvector. is a generalized eigenvector of $T$ corresponding to eigenvalue $0$.
+
+Fact: $v\in V$ is a generalized eigenvector of $T$ corresponding to $\lambda\iff (T-\lambda I)^{dim\ V}v=0$
+
+#### Theorem 8.9
+
+Suppose $\mathbb{F}=\mathbb{C}$ and $T\in \mathscr{L}(V)$ Then $\exists$ basis of $V$ consisting of generalized eigenvector of $T$.
+
+Proof: Let $n=dim\ V$ we will induct on $n$.
+
+Base case $n=1$, Every nonzero vector in $V$ is an eigenvector of $T$.
+
+Inductive step: Let $n=dim\ V$, assume the theorem is tru for all vector spaces with $dim
+
+$$
+\begin{aligned}
+ 0&=(T-\lambda I)^n v\\
+ &=(B+A)^n v\\
+ &=\sum^n_{k=0} \begin{pmatrix}
+ n\\k
+ \end{pmatrix} A^{n-k}B^kv
+\end{aligned}
+$$
+
+Then we apply $(T-\alpha I)^{m-1}$, which is $B^{m-1}$ to both sides
+
+$$
+\begin{aligned}
+ 0&=A^nB^{m-1}v
+\end{aligned}
+$$
+
Since $(T-\alpha I)^{m-1}\neq 0$, $A=0$, then $\alpha I-\lambda I=0$, $\alpha=\lambda$
\ No newline at end of file
diff --git a/pages/Math429/Math429_L36.md b/content/Math429/Math429_L36.md
similarity index 100%
rename from pages/Math429/Math429_L36.md
rename to content/Math429/Math429_L36.md
diff --git a/pages/Math429/Math429_L37.md b/content/Math429/Math429_L37.md
similarity index 96%
rename from pages/Math429/Math429_L37.md
rename to content/Math429/Math429_L37.md
index 681bce7..9fee1aa 100644
--- a/pages/Math429/Math429_L37.md
+++ b/content/Math429/Math429_L37.md
@@ -1,126 +1,126 @@
-# Lecture 37
-
-## Chapter VIII Operators on complex vector spaces
-
-### Generalized Eigenspace Decomposition 8B
-
----
-Review
-
-
-#### Definition 8.19
-
-The generalized eigenspace of $T$ for $\lambda \in \mathbb{F}$ is $G(\lambda,T)=\{v\in V\vert (T-\lambda I)^k v=0\textup{ for some k>0}\}$
-
-#### Theorem 8.20
-
-$G(\lambda, T)=null((T-\lambda I)^{dim\ V})$
-
----
-New materials
-
-#### Theorem 8.31
-
-Suppose $v_1,...,v_n$ is a basis where $M(T,(v_1,...,v_k))$ is upper triangular. Then the number of times $\lambda$ appears on the diagonal is the multiplicity of $\lambda$ as an eigenvalue of $T$.
-
-Proof:
-
-Let $\lambda_1,...,\lambda_n$ be the diagonal entries, $S$ be such that $M(S,(v_1,...,v_n))$ is upper triangular. Note that if $\mu_1,...,\mu_n$ are the diagonal entires of $M(S)$, then the diagonal entires of $M(S^n)$ are $\mu_1^n,...,\mu_n^n$
-
-$$
-\begin{aligned}
-dim(null\ S^n)&=n-dim\ range\ (S^n)\leq n-\textup{ number of non-zero diagonal entries on } S^n\\
-&=\textup{ number of zero diagonal entries of }S^n
-\end{aligned}
-$$
-
-plus in $S=T-\lambda I$, then
-
-$$
-\begin{aligned}
-dim G(\lambda, T)&=dim(null\ (T-\lambda I)^n)\\
-&\leq \textup{number times where }\lambda \textup{ appears on the diagonal of }M(T)\\
-\end{aligned}
-$$
-
-Note:
-
-$V=G(\lambda_1, T)\oplus \dots \oplus G(\lambda_k, T)$
-
-for distinct $\lambda_1,...,\lambda_k$ thus $n=dim\ G(\lambda_1,T)+\dots +dim\ (\lambda_k, T)$
-
-on the other hand $n=\textup{ number of times }\lambda_1 \textup{ appears as a diagonal entry}+\dots +\textup{ number of times }\lambda_k \textup{ appears as a diagonal entry}+\dots $
-
-So $dim\ G(\lambda_i, T)=$ number of times where $\lambda_i$ appears oas a diagonal entry.
-
-#### Definition 8.35
-
-A **block diagonal matrix** is a matrix of the form $\begin{pmatrix}
- A_1& & 0\\
- & \ddots &\\
- 0& & A_m
-\end{pmatrix}$ where $A_k$ is a **square matrix**.
-
-Example:
-
-$
-\begin{pmatrix}
- 1&0&0 & 0&0\\
- 0 & 2 &1&0&0\\
- 0 & 0 &2&0&0\\
- 0& 0&0& 4&1\\
- 0& 0&0& 0&4\\
-\end{pmatrix}$
-
-#### Theorem
-
-Let $V$ be a complex vector space and let $\lambda_1,...,\lambda_m$ be the distinct eigenvalue of $T$ with multiplicity $d_1,...,d_m$, then there exists a basis where $\begin{pmatrix}
- A_1& & 0\\
- & \ddots &\\
- 0& & A_m
-\end{pmatrix}$ where $A_k$ is a $d_k\times d_k$ matrix upper triangular with only $\lambda_k$ on the diagonal.
-
-Proof:
-
-Note that $(T-\lambda_k I)\vert_{G(\lambda_k,T)}$ is nilpotent. So there is a basis of $G(\lambda_k,T)$ where $(T-\lambda_k I)\vert_{G(\lambda_k,T)}$ is upper triangular with zeros on the diagonal. Then $(T-\lambda_k I)\vert_{G(\lambda_k,T)}$ is upper triangular with $\lambda_k$ on the diagonal.
-
-### Jordan Normal Form 8C
-
-Nilpotent operators
-
-Example: $T(x,y,z)=(0,x,y), M(T)=\begin{pmatrix}
- 0&1&0\\
- 0&0&1\\
- 0&0&0
-\end{pmatrix}$
-
-#### Definition 8.44
-
-Let $T\in \mathscr{L}(V)$ a basis of $V$ is a **Jordan basis** of $T$ if in that basis $\begin{pmatrix}
- A_1& & 0\\
- & \ddots &\\
- 0& & A_p
-\end{pmatrix}$ where each $A_k=\begin{pmatrix}
- \lambda_1& 1& & 0\\
- & \ddots& \ddots &\\
- &&\ddots& 1\\
- 0&&&\lambda_k\\
-\end{pmatrix}$
-
-#### Theorem 8.45
-
-Suppose $T\in \mathscr{L}(V)$ is nilpotent, then there exists a basis of $V$ that is a Jordan basis of $T$.
-
-Sketch of Proof:
-
-Induct on $dim\ V$, if $dim\ V=1$, clear.
-
-if $dim\ V>1$, then let $m$ be such that $T^m=0$ and $T^{m-1}\neq 0$. Then $\exists u\in V$ such that $T^{m-1}u\neq 0$, then $Span (u,Tu, ...,T^{m-1}u)$ is $m$ dimensional.
-
-#### Theorem 8.46
-
-Suppose $V$ is a complex vector space $T\in \mathscr{L}(V)$ then $T$ has a Jordan basis.
-
-Proof:
-
+# Lecture 37
+
+## Chapter VIII Operators on complex vector spaces
+
+### Generalized Eigenspace Decomposition 8B
+
+---
+Review
+
+
+#### Definition 8.19
+
+The generalized eigenspace of $T$ for $\lambda \in \mathbb{F}$ is $G(\lambda,T)=\{v\in V\vert (T-\lambda I)^k v=0\textup{ for some k>0}\}$
+
+#### Theorem 8.20
+
+$G(\lambda, T)=null((T-\lambda I)^{dim\ V})$
+
+---
+New materials
+
+#### Theorem 8.31
+
+Suppose $v_1,...,v_n$ is a basis where $M(T,(v_1,...,v_k))$ is upper triangular. Then the number of times $\lambda$ appears on the diagonal is the multiplicity of $\lambda$ as an eigenvalue of $T$.
+
+Proof:
+
+Let $\lambda_1,...,\lambda_n$ be the diagonal entries, $S$ be such that $M(S,(v_1,...,v_n))$ is upper triangular. Note that if $\mu_1,...,\mu_n$ are the diagonal entires of $M(S)$, then the diagonal entires of $M(S^n)$ are $\mu_1^n,...,\mu_n^n$
+
+$$
+\begin{aligned}
+dim(null\ S^n)&=n-dim\ range\ (S^n)\leq n-\textup{ number of non-zero diagonal entries on } S^n\\
+&=\textup{ number of zero diagonal entries of }S^n
+\end{aligned}
+$$
+
+plus in $S=T-\lambda I$, then
+
+$$
+\begin{aligned}
+dim G(\lambda, T)&=dim(null\ (T-\lambda I)^n)\\
+&\leq \textup{number times where }\lambda \textup{ appears on the diagonal of }M(T)\\
+\end{aligned}
+$$
+
+Note:
+
+$V=G(\lambda_1, T)\oplus \dots \oplus G(\lambda_k, T)$
+
+for distinct $\lambda_1,...,\lambda_k$ thus $n=dim\ G(\lambda_1,T)+\dots +dim\ (\lambda_k, T)$
+
+on the other hand $n=\textup{ number of times }\lambda_1 \textup{ appears as a diagonal entry}+\dots +\textup{ number of times }\lambda_k \textup{ appears as a diagonal entry}+\dots $
+
+So $dim\ G(\lambda_i, T)=$ number of times where $\lambda_i$ appears oas a diagonal entry.
+
+#### Definition 8.35
+
+A **block diagonal matrix** is a matrix of the form $\begin{pmatrix}
+ A_1& & 0\\
+ & \ddots &\\
+ 0& & A_m
+\end{pmatrix}$ where $A_k$ is a **square matrix**.
+
+Example:
+
+$
+\begin{pmatrix}
+ 1&0&0 & 0&0\\
+ 0 & 2 &1&0&0\\
+ 0 & 0 &2&0&0\\
+ 0& 0&0& 4&1\\
+ 0& 0&0& 0&4\\
+\end{pmatrix}$
+
+#### Theorem
+
+Let $V$ be a complex vector space and let $\lambda_1,...,\lambda_m$ be the distinct eigenvalue of $T$ with multiplicity $d_1,...,d_m$, then there exists a basis where $\begin{pmatrix}
+ A_1& & 0\\
+ & \ddots &\\
+ 0& & A_m
+\end{pmatrix}$ where $A_k$ is a $d_k\times d_k$ matrix upper triangular with only $\lambda_k$ on the diagonal.
+
+Proof:
+
+Note that $(T-\lambda_k I)\vert_{G(\lambda_k,T)}$ is nilpotent. So there is a basis of $G(\lambda_k,T)$ where $(T-\lambda_k I)\vert_{G(\lambda_k,T)}$ is upper triangular with zeros on the diagonal. Then $(T-\lambda_k I)\vert_{G(\lambda_k,T)}$ is upper triangular with $\lambda_k$ on the diagonal.
+
+### Jordan Normal Form 8C
+
+Nilpotent operators
+
+Example: $T(x,y,z)=(0,x,y), M(T)=\begin{pmatrix}
+ 0&1&0\\
+ 0&0&1\\
+ 0&0&0
+\end{pmatrix}$
+
+#### Definition 8.44
+
+Let $T\in \mathscr{L}(V)$ a basis of $V$ is a **Jordan basis** of $T$ if in that basis $\begin{pmatrix}
+ A_1& & 0\\
+ & \ddots &\\
+ 0& & A_p
+\end{pmatrix}$ where each $A_k=\begin{pmatrix}
+ \lambda_1& 1& & 0\\
+ & \ddots& \ddots &\\
+ &&\ddots& 1\\
+ 0&&&\lambda_k\\
+\end{pmatrix}$
+
+#### Theorem 8.45
+
+Suppose $T\in \mathscr{L}(V)$ is nilpotent, then there exists a basis of $V$ that is a Jordan basis of $T$.
+
+Sketch of Proof:
+
+Induct on $dim\ V$, if $dim\ V=1$, clear.
+
+if $dim\ V>1$, then let $m$ be such that $T^m=0$ and $T^{m-1}\neq 0$. Then $\exists u\in V$ such that $T^{m-1}u\neq 0$, then $Span (u,Tu, ...,T^{m-1}u)$ is $m$ dimensional.
+
+#### Theorem 8.46
+
+Suppose $V$ is a complex vector space $T\in \mathscr{L}(V)$ then $T$ has a Jordan basis.
+
+Proof:
+
take $V=G(\lambda_1, T)\oplus \dots \oplus G(\lambda_m, T)$, then look at $(T-\lambda_k I)\vert_{G(\lambda_k,T)}$
\ No newline at end of file
diff --git a/pages/Math429/Math429_L38.md b/content/Math429/Math429_L38.md
similarity index 96%
rename from pages/Math429/Math429_L38.md
rename to content/Math429/Math429_L38.md
index 5273cef..8129515 100644
--- a/pages/Math429/Math429_L38.md
+++ b/content/Math429/Math429_L38.md
@@ -1,119 +1,119 @@
-# Lecture 38
-
-## Chapter VIII Operators on complex vector spaces
-
-### Trace 8D
-
-#### Definition 8.47
-
-For a square matrix $A$, the **trace of** $A$ is the sum of the diagonal entries denoted $tr(A)$.
-
-#### Theorem 8.49
-
-Suppose $A$ is $m\times n$, $B$ is $n\times m$ matrices, then $tr(AB)=tr(BA)$.
-
-Proof:
-
-By pure computation.
-
-#### Theorem 8.50
-
-Suppose $T\in \mathscr{L}(V)$ and $u_1,...,u_n$ and $v_1,...,v_n$ are bases of $V$.
-
-$$
-tr(M(T,(u_1,...,u_n)))=tr(M(T,(v_1,...,v_n)))
-$$
-
-Proof:
-
-Let $A=tr(M(T,(u_1,...,u_n)))$ and $B=tr(M(T,(v_1,...,v_n)))$, then there exists $C$, invertible such that $A=CBC^{-1}$,
-
-$$
-tr(A)=tr((CB)C^{-1})=tr(C^{-1}(CB))=tr(B)
-$$
-
-#### Definition 8.51
-
-Given $T\in \mathscr{L}(V)$ the trace of $T$ denoted $tr(T)$ is given by $tr(T)=tr(M(T))$.
-
-Note: For an upper triangular matrix, the diagonal entries are the eigenvalues with multiplicity
-
-#### Theorem 8.52
-
-Suppose $V$ is a complex vector space such that $T\in \mathscr{L}(V)$, then $tr(T)$ is the sum of the eigenvalues counted with multiplicity.
-
-Proof:
-
-Over $\mathbb{C}$, there is a basis where $M(T)$ is upper triangular.
-
-#### Theorem 8.54
-
-Suppose $V$ is a complex vector space, $n=dim\ V$.$T\in \mathscr{L}(V)$. Then the coefficient on $z^{n-1}$ in the characteristic polynomial is $tr(T)$.
-
-Proof:
-
-$(z-\lambda_1)\dots(z-\lambda_n)=z^{n}-(\lambda_1+...+\lambda_n)z^{n-1}+\dots$
-
-#### Theorem 8.56
-
-Trance is linear
-
-Proof:
-
-- Additivity
- $tr(T+S)=tr(M(T)+M(S))=tr(T)+tr(S)$
-- Homogeneity
- $tr(cT)=ctr(M(T))=ctr(T)$
-
-#### Theorem/Example 8.10
-
-Trace is the unique linear functional $\mathscr{L}\to \mathbb{F}$ such that $tr(ST)=tr(TS)$ and $tr(I)=dim\ V$
-
-Proof:
-
-Let $\varphi:\mathscr{L}(V)\to \mathbb{F}$ be a linear functional such that $\varphi(ST)=\varphi(TS)$ and $\varphi(I)=n$ where $n=dim\ V$. Let $v_1,...,v_n$ be a basis for $V$ define $P_{j,k}$ to be the operator $M(P_{j,k})=\begin{pmatrix}
- 0&0&0\\
- 0&1&0\\
- 0&0&0
-\end{pmatrix}$. Note $P_{j,k}$ form a basis of $L(V)$, now we must show $\varphi(P_{j,k})=tr(P_{j,k})=\begin{cases}1\textup{ if }j=k\\0\textup{ if }j \neq k\end{cases}$
-
-- For $j\neq k$
- $\varphi(P_{j,j}P_{j,k})=\varphi(P_{j,k})=0$
-
- $\varphi(P_{j,k}P_{j,j})=\varphi(P_{j,k})=0$
-- For $j=k$
- $\varphi(P_{k,j},P_{j,k})=\varphi(P_{k,k})=1$
-
- $\varphi(P_{j,k},P_{k,j})=\varphi(P_{j,j})=1$
-
-So $\varphi(I)=\varphi(P_{1,1}+...+P_{n,n})=\varphi(P_{1,1})+...+\varphi(P_{n,n})=n$
-
-#### Theorem 8.57
-
-Suppose $V$ is finite dimensional vector space, then there does not exists $S,T\in \mathscr{L}(V)$ such that $ST-TS=I$. ($ST-TS$ is called communicator)
-
-Proof:
-
-$tr(ST-TS)=tr(ST)-tr(TS)=tr(ST)-tr(ST)=0$, since $tr(I)=dim\ V$, so $ST-TS\neq I$
-
-Note: **requires finite dimensional.**
-
-## Chapter ? Multilinear Algebra and Determinants
-
-### Determinants ?A
-
-#### Definition ?.1
-
-The determinant of $T\in \mathscr{L}(V)$ is the product of eigenvalues counted with multiplicity.
-
-#### Definition ?.2
-
-The determinant of a matrix is given by
-
-$$
-det(A)=\sum_{\sigma\in perm(n)}A_{\sigma(1),1}\cdot ...\cdot A_{\sigma(n),n}\cdot sign(\sigma)
-$$
-
-$perm(\sigma)=$ all recordings of $1,...,n$, number of swaps needed to write $\sigma$
-
-$$
+# Lecture 38
+
+## Chapter VIII Operators on complex vector spaces
+
+### Trace 8D
+
+#### Definition 8.47
+
+For a square matrix $A$, the **trace of** $A$ is the sum of the diagonal entries denoted $tr(A)$.
+
+#### Theorem 8.49
+
+Suppose $A$ is $m\times n$, $B$ is $n\times m$ matrices, then $tr(AB)=tr(BA)$.
+
+Proof:
+
+By pure computation.
+
+#### Theorem 8.50
+
+Suppose $T\in \mathscr{L}(V)$ and $u_1,...,u_n$ and $v_1,...,v_n$ are bases of $V$.
+
+$$
+tr(M(T,(u_1,...,u_n)))=tr(M(T,(v_1,...,v_n)))
+$$
+
+Proof:
+
+Let $A=tr(M(T,(u_1,...,u_n)))$ and $B=tr(M(T,(v_1,...,v_n)))$, then there exists $C$, invertible such that $A=CBC^{-1}$,
+
+$$
+tr(A)=tr((CB)C^{-1})=tr(C^{-1}(CB))=tr(B)
+$$
+
+#### Definition 8.51
+
+Given $T\in \mathscr{L}(V)$ the trace of $T$ denoted $tr(T)$ is given by $tr(T)=tr(M(T))$.
+
+Note: For an upper triangular matrix, the diagonal entries are the eigenvalues with multiplicity
+
+#### Theorem 8.52
+
+Suppose $V$ is a complex vector space such that $T\in \mathscr{L}(V)$, then $tr(T)$ is the sum of the eigenvalues counted with multiplicity.
+
+Proof:
+
+Over $\mathbb{C}$, there is a basis where $M(T)$ is upper triangular.
+
+#### Theorem 8.54
+
+Suppose $V$ is a complex vector space, $n=dim\ V$.$T\in \mathscr{L}(V)$. Then the coefficient on $z^{n-1}$ in the characteristic polynomial is $tr(T)$.
+
+Proof:
+
+$(z-\lambda_1)\dots(z-\lambda_n)=z^{n}-(\lambda_1+...+\lambda_n)z^{n-1}+\dots$
+
+#### Theorem 8.56
+
+Trance is linear
+
+Proof:
+
+- Additivity
+ $tr(T+S)=tr(M(T)+M(S))=tr(T)+tr(S)$
+- Homogeneity
+ $tr(cT)=ctr(M(T))=ctr(T)$
+
+#### Theorem/Example 8.10
+
+Trace is the unique linear functional $\mathscr{L}\to \mathbb{F}$ such that $tr(ST)=tr(TS)$ and $tr(I)=dim\ V$
+
+Proof:
+
+Let $\varphi:\mathscr{L}(V)\to \mathbb{F}$ be a linear functional such that $\varphi(ST)=\varphi(TS)$ and $\varphi(I)=n$ where $n=dim\ V$. Let $v_1,...,v_n$ be a basis for $V$ define $P_{j,k}$ to be the operator $M(P_{j,k})=\begin{pmatrix}
+ 0&0&0\\
+ 0&1&0\\
+ 0&0&0
+\end{pmatrix}$. Note $P_{j,k}$ form a basis of $L(V)$, now we must show $\varphi(P_{j,k})=tr(P_{j,k})=\begin{cases}1\textup{ if }j=k\\0\textup{ if }j \neq k\end{cases}$
+
+- For $j\neq k$
+ $\varphi(P_{j,j}P_{j,k})=\varphi(P_{j,k})=0$
+
+ $\varphi(P_{j,k}P_{j,j})=\varphi(P_{j,k})=0$
+- For $j=k$
+ $\varphi(P_{k,j},P_{j,k})=\varphi(P_{k,k})=1$
+
+ $\varphi(P_{j,k},P_{k,j})=\varphi(P_{j,j})=1$
+
+So $\varphi(I)=\varphi(P_{1,1}+...+P_{n,n})=\varphi(P_{1,1})+...+\varphi(P_{n,n})=n$
+
+#### Theorem 8.57
+
+Suppose $V$ is finite dimensional vector space, then there does not exists $S,T\in \mathscr{L}(V)$ such that $ST-TS=I$. ($ST-TS$ is called communicator)
+
+Proof:
+
+$tr(ST-TS)=tr(ST)-tr(TS)=tr(ST)-tr(ST)=0$, since $tr(I)=dim\ V$, so $ST-TS\neq I$
+
+Note: **requires finite dimensional.**
+
+## Chapter ? Multilinear Algebra and Determinants
+
+### Determinants ?A
+
+#### Definition ?.1
+
+The determinant of $T\in \mathscr{L}(V)$ is the product of eigenvalues counted with multiplicity.
+
+#### Definition ?.2
+
+The determinant of a matrix is given by
+
+$$
+det(A)=\sum_{\sigma\in perm(n)}A_{\sigma(1),1}\cdot ...\cdot A_{\sigma(n),n}\cdot sign(\sigma)
+$$
+
+$perm(\sigma)=$ all recordings of $1,...,n$, number of swaps needed to write $\sigma$
+
+$$
diff --git a/pages/Math429/Math429_L39.md b/content/Math429/Math429_L39.md
similarity index 96%
rename from pages/Math429/Math429_L39.md
rename to content/Math429/Math429_L39.md
index bb173a6..43ec17e 100644
--- a/pages/Math429/Math429_L39.md
+++ b/content/Math429/Math429_L39.md
@@ -1,107 +1,107 @@
-# Lecture 39
-
-## Chapter IX Multilinear Algebra and Determinants
-
-### Exterior Powers ?A
-
-#### Definitions ?.1
-
-Let $V$ be a vector space, the **n-th** exterior power of $V$ denoted $\wedge^m V$ is a vector space formed by finite linear combination of expression of the form $v_1\wedge v_2\wedge\dots \wedge v_m$. subject to relations:
-
-1. $c(v_1\wedge v_2\wedge\dots \wedge v_m)=(cv_1)\wedge v_2\wedge\dots \wedge v_m$
-2. $(v_1+w_1)\wedge v_2\wedge\dots \wedge v_m=(v_1\wedge v_2\wedge\dots \wedge v_m)+(w_1\wedge v_2\wedge\dots \wedge v_m)$
-3. Swapping two entires in ($v_1\wedge v_2\wedge\dots \wedge v_m$) gives a negative sign.
-
-Example:
-
-$\wedge^2\mathbb{R}^3$
-
-$$
-\begin{aligned}
- &(1,0,0)\wedge(0,1,0)+(1,0,1)\wedge(1,1,1)\in \wedge^2\mathbb{R}^3\\
- &=(1,0,0)\wedge(0,1,0)+((1,0,0)+(0,0,1))\wedge(1,1,1)\\
- &=(1,0,0)\wedge(0,1,0)+(1,0,0)\wedge(1,1,1)+(0,0,1)\wedge(1,1,1)\\
- &=(1,0,0)\wedge(1,2,1)+(0,0,1)\wedge(1,1,1)
-\end{aligned}
-$$
-
-#### Theorem ?.2
-
-$0\wedge v_1\wedge\dots\wedge v_m=0$
-
-Proof:
-
-$$
-\begin{aligned}
-\vec{0}\wedge v_2\wedge\dots \wedge v_m &=(0\cdot \vec{0})\wedge v_2\wedge \dots\wedge v_m\\
-&=0(\vec{0}\wedge v_2\wedge \dots\wedge v_m)\\
-&=0
-\end{aligned}
-$$
-
-#### Theorem ?.3
-
-$v_1\wedge v_1\wedge\dots\wedge v_m=0$
-
-Proof:
-
-swap $v_1$ and $v_1$.
-
-$$
-\begin{aligned}
-v_1\wedge v_1 \wedge v_2\wedge\dots \wedge v_m &=-(v_1\wedge v_1 \wedge v_2\wedge\dots \wedge v_m) \\
-v_1\wedge v_1 \wedge v_2\wedge\dots \wedge v_m&=0
-\end{aligned}
-$$
-
-#### Theorem ?.4
-
-$v_1\wedge v_2\wedge\dots\wedge v_m\neq 0$ if and only if $v_1,\dots ,v_m$ are linearly independent.
-
-Proof:
-
-We first prove forward direction,
-
-Suppose $v_1,\dots, v_m$ are linearly dependent then let $a_1v_1+\dots +a_nv_m=0$ be a linear dependence. Without loss of generality. $a\neq 0$ then consider
-
-$$
-\begin{aligned}
-0&=0\wedge v_2\wedge\dots\wedge v_m\\
-&=(a_1,v_1+...+a_m v_m)\wedge v_2\wedge \dots \wedge v_m\\
-&=a_1(v_1\wedge \dots v_m)+a_2(v_2\wedge v_2\wedge \dots \wedge v_m)+a_m(v_m\wedge v_2\wedge\dots\wedge v_m)\\
-&=a_1(v_1\wedge \dots v_m)
-\end{aligned}
-$$
-
-reverse is the similar.
-
-#### Theorem ?.5
-
-If $v_1,\dots v_n$ forms a basis for $V$, then expressions of the form $v_{i_1}\wedge\dots \wedge v_{i_m}$ for $1\leq i_1\leq i_m\leq n$ forms a basis of $\wedge^m V$
-
-Proof:
-
-Spanning: Let $u_1\wedge\dots \wedge u_m\in \wedge^m V$ where $u_1=a_{1,1}v_1+\dots+a_{1,n}v_n,u_m=a_{m,1}v_1+\dots+a_{m,n}v_n$
-
-Expand: then we set expressions of the form $\plusmn c(v_{i_1}\wedge \dots \wedge v_{i_m})$. Let $A=(a_{i,j})$ , $c$ is the $m\times m$ minor for the columns $i_1,..,i_m$.
-
-#### Corollary ?.6
-
-Let $n=dim\ V$ then $dim\ \wedge^n v=1$
-
-Note $dim\ \wedge^m V=\begin{pmatrix}
- n\\m
-\end{pmatrix}$
-
-Proof: Chose a basis $v_1,...,v_n$ of $V$ then $v_1\wedge \dots \wedge v_n$ generates $\wedge^n v$.
-
-#### Definition ?.7
-
-Let $T\in\mathscr{L}(V)$, $n=dim\ V$ define $det\ T$ to be the unique number such that for $v_1\wedge\dots\wedge v_n\in \wedge^n V$. $(Tv_1\wedge\dots\wedge Tv_n)=(det\ T)(v_1\wedge \dots \wedge v_n)$
-
-#### Theorem ?.8
-
-1. Swapping columns negates the determinants
-2. $T$ is invertible if and only if $det\ T\neq 0$
-3. $det(ST)=det(S)det(T)$
+# Lecture 39
+
+## Chapter IX Multilinear Algebra and Determinants
+
+### Exterior Powers ?A
+
+#### Definitions ?.1
+
+Let $V$ be a vector space, the **n-th** exterior power of $V$ denoted $\wedge^m V$ is a vector space formed by finite linear combination of expression of the form $v_1\wedge v_2\wedge\dots \wedge v_m$. subject to relations:
+
+1. $c(v_1\wedge v_2\wedge\dots \wedge v_m)=(cv_1)\wedge v_2\wedge\dots \wedge v_m$
+2. $(v_1+w_1)\wedge v_2\wedge\dots \wedge v_m=(v_1\wedge v_2\wedge\dots \wedge v_m)+(w_1\wedge v_2\wedge\dots \wedge v_m)$
+3. Swapping two entires in ($v_1\wedge v_2\wedge\dots \wedge v_m$) gives a negative sign.
+
+Example:
+
+$\wedge^2\mathbb{R}^3$
+
+$$
+\begin{aligned}
+ &(1,0,0)\wedge(0,1,0)+(1,0,1)\wedge(1,1,1)\in \wedge^2\mathbb{R}^3\\
+ &=(1,0,0)\wedge(0,1,0)+((1,0,0)+(0,0,1))\wedge(1,1,1)\\
+ &=(1,0,0)\wedge(0,1,0)+(1,0,0)\wedge(1,1,1)+(0,0,1)\wedge(1,1,1)\\
+ &=(1,0,0)\wedge(1,2,1)+(0,0,1)\wedge(1,1,1)
+\end{aligned}
+$$
+
+#### Theorem ?.2
+
+$0\wedge v_1\wedge\dots\wedge v_m=0$
+
+Proof:
+
+$$
+\begin{aligned}
+\vec{0}\wedge v_2\wedge\dots \wedge v_m &=(0\cdot \vec{0})\wedge v_2\wedge \dots\wedge v_m\\
+&=0(\vec{0}\wedge v_2\wedge \dots\wedge v_m)\\
+&=0
+\end{aligned}
+$$
+
+#### Theorem ?.3
+
+$v_1\wedge v_1\wedge\dots\wedge v_m=0$
+
+Proof:
+
+swap $v_1$ and $v_1$.
+
+$$
+\begin{aligned}
+v_1\wedge v_1 \wedge v_2\wedge\dots \wedge v_m &=-(v_1\wedge v_1 \wedge v_2\wedge\dots \wedge v_m) \\
+v_1\wedge v_1 \wedge v_2\wedge\dots \wedge v_m&=0
+\end{aligned}
+$$
+
+#### Theorem ?.4
+
+$v_1\wedge v_2\wedge\dots\wedge v_m\neq 0$ if and only if $v_1,\dots ,v_m$ are linearly independent.
+
+Proof:
+
+We first prove forward direction,
+
+Suppose $v_1,\dots, v_m$ are linearly dependent then let $a_1v_1+\dots +a_nv_m=0$ be a linear dependence. Without loss of generality. $a\neq 0$ then consider
+
+$$
+\begin{aligned}
+0&=0\wedge v_2\wedge\dots\wedge v_m\\
+&=(a_1,v_1+...+a_m v_m)\wedge v_2\wedge \dots \wedge v_m\\
+&=a_1(v_1\wedge \dots v_m)+a_2(v_2\wedge v_2\wedge \dots \wedge v_m)+a_m(v_m\wedge v_2\wedge\dots\wedge v_m)\\
+&=a_1(v_1\wedge \dots v_m)
+\end{aligned}
+$$
+
+reverse is the similar.
+
+#### Theorem ?.5
+
+If $v_1,\dots v_n$ forms a basis for $V$, then expressions of the form $v_{i_1}\wedge\dots \wedge v_{i_m}$ for $1\leq i_1\leq i_m\leq n$ forms a basis of $\wedge^m V$
+
+Proof:
+
+Spanning: Let $u_1\wedge\dots \wedge u_m\in \wedge^m V$ where $u_1=a_{1,1}v_1+\dots+a_{1,n}v_n,u_m=a_{m,1}v_1+\dots+a_{m,n}v_n$
+
+Expand: then we set expressions of the form $\plusmn c(v_{i_1}\wedge \dots \wedge v_{i_m})$. Let $A=(a_{i,j})$ , $c$ is the $m\times m$ minor for the columns $i_1,..,i_m$.
+
+#### Corollary ?.6
+
+Let $n=dim\ V$ then $dim\ \wedge^n v=1$
+
+Note $dim\ \wedge^m V=\begin{pmatrix}
+ n\\m
+\end{pmatrix}$
+
+Proof: Chose a basis $v_1,...,v_n$ of $V$ then $v_1\wedge \dots \wedge v_n$ generates $\wedge^n v$.
+
+#### Definition ?.7
+
+Let $T\in\mathscr{L}(V)$, $n=dim\ V$ define $det\ T$ to be the unique number such that for $v_1\wedge\dots\wedge v_n\in \wedge^n V$. $(Tv_1\wedge\dots\wedge Tv_n)=(det\ T)(v_1\wedge \dots \wedge v_n)$
+
+#### Theorem ?.8
+
+1. Swapping columns negates the determinants
+2. $T$ is invertible if and only if $det\ T\neq 0$
+3. $det(ST)=det(S)det(T)$
4. $det(cT)=c^n det(T)$
\ No newline at end of file
diff --git a/pages/Math429/Math429_L4.md b/content/Math429/Math429_L4.md
similarity index 100%
rename from pages/Math429/Math429_L4.md
rename to content/Math429/Math429_L4.md
diff --git a/pages/Math429/Math429_L5.md b/content/Math429/Math429_L5.md
similarity index 100%
rename from pages/Math429/Math429_L5.md
rename to content/Math429/Math429_L5.md
diff --git a/pages/Math429/Math429_L6.md b/content/Math429/Math429_L6.md
similarity index 100%
rename from pages/Math429/Math429_L6.md
rename to content/Math429/Math429_L6.md
diff --git a/pages/Math429/Math429_L7.md b/content/Math429/Math429_L7.md
similarity index 100%
rename from pages/Math429/Math429_L7.md
rename to content/Math429/Math429_L7.md
diff --git a/pages/Math429/Math429_L8.md b/content/Math429/Math429_L8.md
similarity index 96%
rename from pages/Math429/Math429_L8.md
rename to content/Math429/Math429_L8.md
index ea25a8b..9079afd 100644
--- a/pages/Math429/Math429_L8.md
+++ b/content/Math429/Math429_L8.md
@@ -1,92 +1,92 @@
-# Lecture 8
-
-## Chapter III Linear maps
-
-**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
-
-### Vector Space of Linear Maps 3A
-
-#### Definition 3.1
-
-A **linear map** from $V$ to $W$ is a function from $T:V\to W$ with the following properties:
-
-1. Additivity: $T(u+v)=T(u)+T(v),\forall u,v\in V$
-2. Homogeneity: $T(\lambda v)=\lambda T(v),\forall \lambda \in \mathbb{F},v\in V$
-
-#### Notation
-
-* $Tv=T(v)$
-* $\mathscr{L}(V,W)$ denotes the set of linear maps from $V$ to $W$. (homomorphism, $Hom(V,W)$)
-* $\mathscr{L}(V)$ denotes the set of linear maps from $V$ to $V$. (endomorphism, $End(V)$)
-
-#### Example
-
-* zero map $0(v)\in \mathscr{L}(V,W)$ $0(v)=0$
-* identity map $I\in \mathscr{L}(V,W)$, $I(v)=v$
-* scaling map $T\in \mathscr{L}(V,W)$, $T(v)=av,a\in \mathbb{F}$
-* differentiation map $D\in \mathscr{L}(\mathscr{P}_m(\mathbb{F}),\mathscr{P}_{m-1}(\mathbb{F}))$, $D(f)=f'$
-
-#### Lemma 3.10
-
-$T0=0$ for $T\in \mathscr{L}(V,W)$
-
-Proof:
-
-$T(0+0)=T(0)+T(0)$
-
-
-#### Theorem 3.4 Linear map lemma
-
-Suppose $v_1,...,v_n$ is a basis for $V$, and suppose $w_1,...,w_n\in W$ are arbitrary vector. Then, there exists a unique linear map. $T:V\to W$ such that $T_{v_i}=w_i$ for $i=1,...,n$
-
-Proof:
-
-First we show existence.
-
-by constrains,
-
-$T(c_1 v_1,...+c_n v_n)=c_1w_1+...+c_n w_n$
-
-T is well defined because $v_1,....v_n$ are a basis.
-
-Need to show that $T$ is a linear map.
-
-* Additivity: let $u,v\in V$ and suppose $a_1,...,a_n,b_1,...,b_n\in \mathbb{F}$
-with $u=a_1v_1+....+a_n v_n ,v=b_1v_1+...+b_2v_n$, then $T(u+v)=T((a_1+b_1)v_1+...+(a_n+b_n)v_n)=Tu+Tv$
-
-Proof for homogeneity used for exercise.
-
-Need to show $T$ is unique. Let $S\in\mathscr{L}(V,W)$ such that $Sv_i=w_i,i=1,...,n$
-
-$$
-S(c_1 v_1+...+c_n v_n)=S(c_1v_1)+S(...)+S(c_n v_n)=c_1S(v_1)+...+c_nS(v_n)
-+c_1w_1+...+c_nw_n
-$$
-
-Then $S=T$
-
-#### Definition 3.5
-
-Let $S,T\in \mathscr{L}(V,W)$, then define
-
-* $(S+T)\in\mathscr{L}(V,W)$ by $(S+T)(v)=Sv+Tv$
-* for $\lambda \in \mathbb{F}$, $(\lambda T)\in \mathscr{L}(V,W)$, $(\lambda T)(v)=\lambda T(v)$
-
-Exercises: Show that $S+T$ and $\lambda T$ are linear maps.
-
-#### Theorem 3.6
-
-$\mathscr{L}(V,W)$ is a vector space.
-
-Sketch of proof:
-
-* additive identity: $0(v)=0$
-* associativity:
-* commutativity:
-* additive inverse: $T\to (-1)T=-T$
-* scalar multiplication $1T=T$
-* distributive
-
-#### Definition 3.7
-
-Multiplication for linear map: $(ST)v=S(T(v))=(S\circ T)(v)$ **Not commutative but associative**.
+# Lecture 8
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Vector Space of Linear Maps 3A
+
+#### Definition 3.1
+
+A **linear map** from $V$ to $W$ is a function from $T:V\to W$ with the following properties:
+
+1. Additivity: $T(u+v)=T(u)+T(v),\forall u,v\in V$
+2. Homogeneity: $T(\lambda v)=\lambda T(v),\forall \lambda \in \mathbb{F},v\in V$
+
+#### Notation
+
+* $Tv=T(v)$
+* $\mathscr{L}(V,W)$ denotes the set of linear maps from $V$ to $W$. (homomorphism, $Hom(V,W)$)
+* $\mathscr{L}(V)$ denotes the set of linear maps from $V$ to $V$. (endomorphism, $End(V)$)
+
+#### Example
+
+* zero map $0(v)\in \mathscr{L}(V,W)$ $0(v)=0$
+* identity map $I\in \mathscr{L}(V,W)$, $I(v)=v$
+* scaling map $T\in \mathscr{L}(V,W)$, $T(v)=av,a\in \mathbb{F}$
+* differentiation map $D\in \mathscr{L}(\mathscr{P}_m(\mathbb{F}),\mathscr{P}_{m-1}(\mathbb{F}))$, $D(f)=f'$
+
+#### Lemma 3.10
+
+$T0=0$ for $T\in \mathscr{L}(V,W)$
+
+Proof:
+
+$T(0+0)=T(0)+T(0)$
+
+
+#### Theorem 3.4 Linear map lemma
+
+Suppose $v_1,...,v_n$ is a basis for $V$, and suppose $w_1,...,w_n\in W$ are arbitrary vector. Then, there exists a unique linear map. $T:V\to W$ such that $T_{v_i}=w_i$ for $i=1,...,n$
+
+Proof:
+
+First we show existence.
+
+by constrains,
+
+$T(c_1 v_1,...+c_n v_n)=c_1w_1+...+c_n w_n$
+
+T is well defined because $v_1,....v_n$ are a basis.
+
+Need to show that $T$ is a linear map.
+
+* Additivity: let $u,v\in V$ and suppose $a_1,...,a_n,b_1,...,b_n\in \mathbb{F}$
+with $u=a_1v_1+....+a_n v_n ,v=b_1v_1+...+b_2v_n$, then $T(u+v)=T((a_1+b_1)v_1+...+(a_n+b_n)v_n)=Tu+Tv$
+
+Proof for homogeneity used for exercise.
+
+Need to show $T$ is unique. Let $S\in\mathscr{L}(V,W)$ such that $Sv_i=w_i,i=1,...,n$
+
+$$
+S(c_1 v_1+...+c_n v_n)=S(c_1v_1)+S(...)+S(c_n v_n)=c_1S(v_1)+...+c_nS(v_n)
++c_1w_1+...+c_nw_n
+$$
+
+Then $S=T$
+
+#### Definition 3.5
+
+Let $S,T\in \mathscr{L}(V,W)$, then define
+
+* $(S+T)\in\mathscr{L}(V,W)$ by $(S+T)(v)=Sv+Tv$
+* for $\lambda \in \mathbb{F}$, $(\lambda T)\in \mathscr{L}(V,W)$, $(\lambda T)(v)=\lambda T(v)$
+
+Exercises: Show that $S+T$ and $\lambda T$ are linear maps.
+
+#### Theorem 3.6
+
+$\mathscr{L}(V,W)$ is a vector space.
+
+Sketch of proof:
+
+* additive identity: $0(v)=0$
+* associativity:
+* commutativity:
+* additive inverse: $T\to (-1)T=-T$
+* scalar multiplication $1T=T$
+* distributive
+
+#### Definition 3.7
+
+Multiplication for linear map: $(ST)v=S(T(v))=(S\circ T)(v)$ **Not commutative but associative**.
diff --git a/pages/Math429/Math429_L9.md b/content/Math429/Math429_L9.md
similarity index 96%
rename from pages/Math429/Math429_L9.md
rename to content/Math429/Math429_L9.md
index e48cec4..694bfd6 100644
--- a/pages/Math429/Math429_L9.md
+++ b/content/Math429/Math429_L9.md
@@ -1,114 +1,114 @@
-# Lecture 9
-
-## Chapter III Linear maps
-
-**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
-
-### Vector Space of Linear Maps 3A
-
-Review
-
-$\mathscr{L}(V,W) =$ space of linear maps form $V$ to $W$.
-
-$\mathscr{L}(V)=\mathscr{L}(V,V)$
-
-Key facts:
-
-* $\mathscr{L}(V,W)$ is a vector space
-* given $T\in\mathscr{L}(U,V),S\in \mathscr{L}(V,W)$, we have $TS\in \mathscr{L}(V,W)$
-* not commutative
-
-### Null spaces and Range 3B
-
-#### Definition 3.11
-
-Null space and injectivity
-
-For $T\in \mathscr{L}(V,W)$, the **null space** of $T$, denoted as $null(T)$ (sometime also noted as $ker\ T$), is a subset of $V$ given by
-
-$$
-ker\ T=null(T)=\{v\in V \vert Tv=0\}
-$$
-
-Examples:
-
-* $0\in \mathscr{L}(V,W)$, then $null\ 0=V$, $null(I)=\{0\}$
-* $T\in \mathscr{L}(\mathbb{R}^3,\mathbb{R}^2),T(x,y,z)=(x+y,y+z)$, to find the null space, we set $T(x,y,z)=0$, then $x+y=0,y+z=0$, $x=-y,x=z$. So $null(T)=\{(x,-x,x)\in \mathbb{R}^2\vert x\in \mathbb{R}\}$
-* Let $D\in \mathscr{L}(\mathscr{P}(\mathbb{R})),D(f)=f'$, $null (D)=$ the set of constant functions. (because the derivatives of them are zero.)
-
-#### Theorem 3.13
-
-Given $T\in \mathscr{L}(V,W)$, $null(T)$ is a subspace of $V$.
-
-Proof:
-
-We check the conditions for the subspace.
-* $T0=0$, so $0\in null(T)$
-* $u,v\in null(T)$, then consider $T(u+v)=Tu+Tv=0+0=0$, so $u+v\in null(T)$
-* Let $v\in null (T),\lambda \in \mathbb{F}$, then $T(\lambda v)=\lambda (Tv)=\lambda 0=0$, so $\lambda v \in null (T)$
-
-So $null(T)$ is a subspace.
-
-#### Definition 3.14
-
-A function $f:V\to W$ is **injective** (also called one-to-one, 1-1) if for all $u,v\in V$, if $Tv=Tu$, then $T=U$.
-
-#### Lemma 3.15
-
-Let $T\in \mathscr{L}(V,W)$ then $T$ is injective if and only if $null(T)=\{0\}$
-
-Proof:
-
-$\Rightarrow$
-
-Let $T\in \mathscr{L}(V,W)$ be injective, and let $v\in null (T)$. Then $Tv=0=T0$ so because $T$ is injective $v=0\implies null (T)=\{0\}$
-
-$\Leftarrow$
-
-Suppose $T\in \mathscr{L}(V,W)$ with $null (T)=\{0\}$. Let $u,v\in V$ with $Tu=Tv$, $Tu-Tv=0,T(u-v)=0,u-v=0,u=v$, so $T$ is injective
-
-#### Definition 3.16
-
-Range and surjectivity
-
-For $T\in \mathscr{L}(V,W)$ the range of $T$ denoted $range(T)$, is given by
-
-$$
-range(T)=\{Tv\vert v\in V\}
-$$
-
-Example:
-
-* $0\in \mathscr{L}(V,W)$, $range(0)=\{0\}$
-* $I\in \mathscr{L}(V,W)$, $range(I)=V$
-* Let $T:\mathbb{R}\to \mathbb{R}^2$ given by $T(x)=(x,2x)$, $range(T)=\{(x,2x)\vert x\in \mathbb{R}\}$
-
-#### Theorem 3.18
-
-Given $T\in \mathscr{L}(V,W)$, $range(T)$ is a subspace of $W$
-
-Proof:
-
-Exercise, not interesting.
-
-#### Definition 3.19
-
-A function $T:V\to W$ is surjective (also called onto) if $range(T)=W$
-
-#### Theorem 3.21 (The Fundamental Theorem of Linear Maps, Rank-nullity Theorem)
-
-Suppose $V$ is finite dimensional, and $T\in \mathscr{L}(V,W)$, then $range(T)$ is finite dimensional ($W$ don't need to be finite dimensional). and
-
-$$
-dim(V)=dim(null (T))+dim(range(T))
-$$
-
-#### Theorem 3.22
-
-Let $T\in \mathscr{L}(V,W)$ and suppose $dim(V)>dim(W)$. Then $T$ is not injective.
-
-Proof:
-
-By **Theorem 3.21**, $dim(V)=dim(null (T))+dim(range(T))$, $dim(V)=dim(null (T))+dim(W)$, $00\implies null (T)\neq \{0\}$
-
-So $T$ is not injective.
+# Lecture 9
+
+## Chapter III Linear maps
+
+**Assumption: $U,V,W$ are vector spaces (over $\mathbb{F}$)**
+
+### Vector Space of Linear Maps 3A
+
+Review
+
+$\mathscr{L}(V,W) =$ space of linear maps form $V$ to $W$.
+
+$\mathscr{L}(V)=\mathscr{L}(V,V)$
+
+Key facts:
+
+* $\mathscr{L}(V,W)$ is a vector space
+* given $T\in\mathscr{L}(U,V),S\in \mathscr{L}(V,W)$, we have $TS\in \mathscr{L}(V,W)$
+* not commutative
+
+### Null spaces and Range 3B
+
+#### Definition 3.11
+
+Null space and injectivity
+
+For $T\in \mathscr{L}(V,W)$, the **null space** of $T$, denoted as $null(T)$ (sometime also noted as $ker\ T$), is a subset of $V$ given by
+
+$$
+ker\ T=null(T)=\{v\in V \vert Tv=0\}
+$$
+
+Examples:
+
+* $0\in \mathscr{L}(V,W)$, then $null\ 0=V$, $null(I)=\{0\}$
+* $T\in \mathscr{L}(\mathbb{R}^3,\mathbb{R}^2),T(x,y,z)=(x+y,y+z)$, to find the null space, we set $T(x,y,z)=0$, then $x+y=0,y+z=0$, $x=-y,x=z$. So $null(T)=\{(x,-x,x)\in \mathbb{R}^2\vert x\in \mathbb{R}\}$
+* Let $D\in \mathscr{L}(\mathscr{P}(\mathbb{R})),D(f)=f'$, $null (D)=$ the set of constant functions. (because the derivatives of them are zero.)
+
+#### Theorem 3.13
+
+Given $T\in \mathscr{L}(V,W)$, $null(T)$ is a subspace of $V$.
+
+Proof:
+
+We check the conditions for the subspace.
+* $T0=0$, so $0\in null(T)$
+* $u,v\in null(T)$, then consider $T(u+v)=Tu+Tv=0+0=0$, so $u+v\in null(T)$
+* Let $v\in null (T),\lambda \in \mathbb{F}$, then $T(\lambda v)=\lambda (Tv)=\lambda 0=0$, so $\lambda v \in null (T)$
+
+So $null(T)$ is a subspace.
+
+#### Definition 3.14
+
+A function $f:V\to W$ is **injective** (also called one-to-one, 1-1) if for all $u,v\in V$, if $Tv=Tu$, then $T=U$.
+
+#### Lemma 3.15
+
+Let $T\in \mathscr{L}(V,W)$ then $T$ is injective if and only if $null(T)=\{0\}$
+
+Proof:
+
+$\Rightarrow$
+
+Let $T\in \mathscr{L}(V,W)$ be injective, and let $v\in null (T)$. Then $Tv=0=T0$ so because $T$ is injective $v=0\implies null (T)=\{0\}$
+
+$\Leftarrow$
+
+Suppose $T\in \mathscr{L}(V,W)$ with $null (T)=\{0\}$. Let $u,v\in V$ with $Tu=Tv$, $Tu-Tv=0,T(u-v)=0,u-v=0,u=v$, so $T$ is injective
+
+#### Definition 3.16
+
+Range and surjectivity
+
+For $T\in \mathscr{L}(V,W)$ the range of $T$ denoted $range(T)$, is given by
+
+$$
+range(T)=\{Tv\vert v\in V\}
+$$
+
+Example:
+
+* $0\in \mathscr{L}(V,W)$, $range(0)=\{0\}$
+* $I\in \mathscr{L}(V,W)$, $range(I)=V$
+* Let $T:\mathbb{R}\to \mathbb{R}^2$ given by $T(x)=(x,2x)$, $range(T)=\{(x,2x)\vert x\in \mathbb{R}\}$
+
+#### Theorem 3.18
+
+Given $T\in \mathscr{L}(V,W)$, $range(T)$ is a subspace of $W$
+
+Proof:
+
+Exercise, not interesting.
+
+#### Definition 3.19
+
+A function $T:V\to W$ is surjective (also called onto) if $range(T)=W$
+
+#### Theorem 3.21 (The Fundamental Theorem of Linear Maps, Rank-nullity Theorem)
+
+Suppose $V$ is finite dimensional, and $T\in \mathscr{L}(V,W)$, then $range(T)$ is finite dimensional ($W$ don't need to be finite dimensional). and
+
+$$
+dim(V)=dim(null (T))+dim(range(T))
+$$
+
+#### Theorem 3.22
+
+Let $T\in \mathscr{L}(V,W)$ and suppose $dim(V)>dim(W)$. Then $T$ is not injective.
+
+Proof:
+
+By **Theorem 3.21**, $dim(V)=dim(null (T))+dim(range(T))$, $dim(V)=dim(null (T))+dim(W)$, $00\implies null (T)\neq \{0\}$
+
+So $T$ is not injective.
diff --git a/pages/Math429/_meta.js b/content/Math429/_meta.js
similarity index 98%
rename from pages/Math429/_meta.js
rename to content/Math429/_meta.js
index c238059..391b275 100644
--- a/pages/Math429/_meta.js
+++ b/content/Math429/_meta.js
@@ -1,5 +1,5 @@
export default {
- index: "Course Description",
+ //index: "Course Description",
"---":{
type: 'separator'
},
diff --git a/pages/Math429/index.md b/content/Math429/index.md
similarity index 100%
rename from pages/Math429/index.md
rename to content/Math429/index.md
diff --git a/pages/Swap/CSE361S_L2.md b/content/Swap/CSE361S_L2.md
similarity index 100%
rename from pages/Swap/CSE361S_L2.md
rename to content/Swap/CSE361S_L2.md
diff --git a/pages/Swap/CSE361S_W1.md b/content/Swap/CSE361S_W1.md
similarity index 100%
rename from pages/Swap/CSE361S_W1.md
rename to content/Swap/CSE361S_W1.md
diff --git a/pages/Swap/Math4351_L1.md b/content/Swap/Math4351_L1.md
similarity index 100%
rename from pages/Swap/Math4351_L1.md
rename to content/Swap/Math4351_L1.md
diff --git a/pages/_meta.js b/content/_meta.js
similarity index 86%
rename from pages/_meta.js
rename to content/_meta.js
index 9967089..e1b7520 100644
--- a/pages/_meta.js
+++ b/content/_meta.js
@@ -1,5 +1,5 @@
export default {
- index: {
+ menu: {
title: 'Home',
type: 'menu',
items: {
@@ -16,10 +16,6 @@ export default {
href: '/contact'
}
},
- theme:{
- sidebar: false,
- timestamp: true,
- }
},
Math3200: {
type: 'page',
@@ -58,24 +54,28 @@ export default {
}
},
CSE332S: {
+ title: 'CSE332S',
type: 'page',
theme:{
timestamp: true,
}
},
CSE347: {
+ title: 'CSE347',
type: 'page',
theme:{
timestamp: true,
}
},
CSE442T: {
+ title: 'CSE442T',
type: 'page',
theme:{
timestamp: true,
}
},
CSE559A: {
+ title: 'CSE559A',
type: 'page',
theme:{
timestamp: true,
@@ -87,16 +87,25 @@ export default {
timestamp: true,
}
},
+ index: {
+ display: 'hidden',
+ theme:{
+ sidebar: false,
+ timestamp: true,
+ }
+ },
about: {
display: 'hidden',
theme:{
- timestamp: true,
+ sidebar: false,
+ timestamp: true,
}
},
contact: {
display: 'hidden',
theme:{
- timestamp: true,
+ sidebar: false,
+ timestamp: true,
}
}
}
\ No newline at end of file
diff --git a/pages/about.md b/content/about.md
similarity index 100%
rename from pages/about.md
rename to content/about.md
diff --git a/pages/contact.md b/content/contact.md
similarity index 100%
rename from pages/contact.md
rename to content/contact.md
diff --git a/pages/index.md b/content/index.md
similarity index 100%
rename from pages/index.md
rename to content/index.md
diff --git a/content/layout.tsx b/content/layout.tsx
new file mode 100644
index 0000000..dad73d2
--- /dev/null
+++ b/content/layout.tsx
@@ -0,0 +1,90 @@
+/* eslint-env node */
+import { Footer, Layout, Navbar } from 'nextra-theme-docs'
+import { Banner, Head } from 'nextra/components'
+import { getPageMap } from 'nextra/page-map'
+import 'nextra-theme-docs/style.css'
+import { SpeedInsights } from "@vercel/speed-insights/next"
+import { Analytics } from "@vercel/analytics/react"
+
+export const metadata = {
+ metadataBase: new URL('https://notenextra.trance-0.com'),
+ title: {
+ template: '%s - NoteNextra'
+ },
+ description: 'A static note sharing site for minimum care',
+ applicationName: 'NoteNextra',
+ generator: 'Next.js',
+ appleWebApp: {
+ title: 'NoteNextra'
+ },
+ other: {
+ 'msapplication-TileImage': '/ms-icon-144x144.png',
+ 'msapplication-TileColor': '#fff'
+ },
+ twitter: {
+ site: 'https://notenextra.trance-0.com'
+ }
+}
+
+export default async function RootLayout({ children }) {
+ const navbar = (
+
+
+
+
+
+ NoteNextra
+
+ >
+ }
+ projectLink="https://github.com/Trance-0/NoteNextra"
+ />
+ )
+ const pageMap = await getPageMap()
+ return (
+
+
+
+
+
+ MIT {new Date().getFullYear()} ©{' '}
+
+ Trance-0
+
+ .
+
+
+ }
+ editLink="Edit this page on GitHub"
+ docsRepositoryBase="https://github.com/Trance-0/NoteNextra/tree/main"
+ sidebar={{ defaultMenuCollapseLevel: 1 }}
+ pageMap={pageMap}
+ >
+ {children}
+ {/* SpeedInsights in vercel */}
+
+ {/* Analytics in vercel */}
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/mdx-components.js b/mdx-components.js
new file mode 100644
index 0000000..b015544
--- /dev/null
+++ b/mdx-components.js
@@ -0,0 +1,11 @@
+import { useMDXComponents as getDocsMDXComponents } from 'nextra-theme-docs'
+
+const docsComponents = getDocsMDXComponents()
+
+// Merge components
+export const useMDXComponents = (components) => {
+ return {
+ ...docsComponents,
+ ...components
+ }
+}
\ No newline at end of file
diff --git a/next-env.d.ts b/next-env.d.ts
index 52e831b..1b3be08 100644
--- a/next-env.d.ts
+++ b/next-env.d.ts
@@ -2,4 +2,4 @@
///
// NOTE: This file should not be edited
-// see https://nextjs.org/docs/pages/api-reference/config/typescript for more information.
+// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
diff --git a/next.config.mjs b/next.config.mjs
index 0e155d9..71fce0a 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -1,29 +1,33 @@
import nextra from 'nextra'
+import withBundleAnalyzer from '@next/bundle-analyzer'
const withNextra = nextra({
- theme: 'nextra-theme-docs',
- themeConfig: './theme.config.jsx',
latex: {
renderer: 'katex',
options: {
// suppress warnings from katex for `\\`
- // strict: false,
- // macros: {
- // '\\RR': '\\mathbb{R}'
- // }
+ strict: false,
}
- }
+ },
+ mdxOptions: {
+ format: 'detect'
+ },
+ contentDirBasePath: '/',
})
-export default withNextra({
+const bundleAnalyzer = withBundleAnalyzer({
+ enabled: process.env.ANALYZE === 'true'
+})
+
+export default bundleAnalyzer(withNextra({
output: 'standalone',
- // eslint: {
- // ignoreDuringBuilds: true,
- // },
+ eslint: {
+ ignoreDuringBuilds: true,
+ },
experimental: {
- // optimize memory usage: https://nextjs.org/docs/app/building-your-application/optimizing/memory-usage
webpackMemoryOptimizations: true,
- },})
+ },
+}))
// If you have other Next.js configurations, you can pass them as the parameter:
// export default withNextra({ /* other next.js config */ })
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index d8a239a..1066e56 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,11720 +1,6936 @@
{
- "name": "NoteNextra",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "NoteNextra",
- "dependencies": {
- "@cloudflare/next-on-pages": "^1.13.7",
- "@napi-rs/simple-git": "^0.1.19",
- "@vercel/analytics": "^1.4.1",
- "@vercel/speed-insights": "^1.1.0",
- "next": "^15.3.5",
- "nextra": "^3.3.1",
- "nextra-theme-docs": "^3.3.1",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "vercel": "^32.3.0"
- },
- "devDependencies": {
- "@types/node": "22.10.7"
- }
- },
- "node_modules/@antfu/install-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz",
- "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==",
- "license": "MIT",
- "dependencies": {
- "package-manager-detector": "^1.3.0",
- "tinyexec": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@antfu/utils": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz",
- "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@braintree/sanitize-url": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz",
- "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==",
- "license": "MIT"
- },
- "node_modules/@chevrotain/cst-dts-gen": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
- "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/@chevrotain/gast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
- "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
- "license": "Apache-2.0",
- "dependencies": {
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/@chevrotain/regexp-to-ast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz",
- "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==",
- "license": "Apache-2.0"
- },
- "node_modules/@chevrotain/types": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
- "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==",
- "license": "Apache-2.0"
- },
- "node_modules/@chevrotain/utils": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
- "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==",
- "license": "Apache-2.0"
- },
- "node_modules/@cloudflare/kv-asset-handler": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.0.tgz",
- "integrity": "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==",
- "license": "MIT OR Apache-2.0",
- "peer": true,
- "dependencies": {
- "mime": "^3.0.0"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@cloudflare/next-on-pages": {
- "version": "1.13.12",
- "resolved": "https://registry.npmjs.org/@cloudflare/next-on-pages/-/next-on-pages-1.13.12.tgz",
- "integrity": "sha512-rPy7x9c2+0RDDdJ5o0TeRUwXJ1b7N1epnqF6qKSp5Wz1r9KHOyvaZh1ACoOC6Vu5k9su5WZOgy+8fPLIyrldMQ==",
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.8.0",
- "ast-types": "^0.14.2",
- "chalk": "^5.2.0",
- "chokidar": "^3.5.3",
- "commander": "^11.1.0",
- "cookie": "^0.5.0",
- "esbuild": "^0.15.3",
- "js-yaml": "^4.1.0",
- "miniflare": "^3.20231218.1",
- "package-manager-manager": "^0.2.0",
- "pcre-to-regexp": "^1.1.0",
- "semver": "^7.5.2"
- },
- "bin": {
- "next-on-pages": "bin/index.js"
- },
- "peerDependencies": {
- "@cloudflare/workers-types": "^4.20240208.0",
- "vercel": ">=30.0.0",
- "wrangler": "^3.28.2 || ^4.0.0"
- },
- "peerDependenciesMeta": {
- "@cloudflare/workers-types": {
- "optional": true
- }
- }
- },
- "node_modules/@cloudflare/workerd-darwin-64": {
- "version": "1.20250408.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250408.0.tgz",
- "integrity": "sha512-bxhIwBWxaNItZLXDNOKY2dCv0FHjDiDkfJFpwv4HvtvU5MKcrivZHVmmfDzLW85rqzfcDOmKbZeMPVfiKxdBZw==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@cloudflare/workerd-darwin-arm64": {
- "version": "1.20250408.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250408.0.tgz",
- "integrity": "sha512-5XZ2Oykr8bSo7zBmERtHh18h5BZYC/6H1YFWVxEj3PtalF3+6SHsO4KZsbGvDml9Pu7sHV277jiZE5eny8Hlyw==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@cloudflare/workerd-linux-64": {
- "version": "1.20250408.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250408.0.tgz",
- "integrity": "sha512-WbgItXWln6G5d7GvYLWcuOzAVwafysZaWunH3UEfsm95wPuRofpYnlDD861gdWJX10IHSVgMStGESUcs7FLerQ==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@cloudflare/workerd-linux-arm64": {
- "version": "1.20250408.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250408.0.tgz",
- "integrity": "sha512-pAhEywPPvr92SLylnQfZEPgXz+9pOG9G9haAPLpEatncZwYiYd9yiR6HYWhKp2erzCoNrOqKg9IlQwU3z1IDiw==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@cloudflare/workerd-windows-64": {
- "version": "1.20250408.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250408.0.tgz",
- "integrity": "sha512-nJ3RjMKGae2aF2rZ/CNeBvQPM+W5V1SUK0FYWG/uomyr7uQ2l4IayHna1ODg/OHHTEgIjwom0Mbn58iXb0WOcQ==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@edge-runtime/cookies": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/@edge-runtime/cookies/-/cookies-3.4.1.tgz",
- "integrity": "sha512-z27BvgPxI73CgSlxU/NAUf1Q/shnqi6cobHEowf6VuLdSjGR3NjI2Y5dZUIBbK2zOJVZbXcHsVzJjz8LklteFQ==",
- "license": "MPL-2.0",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@edge-runtime/format": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@edge-runtime/format/-/format-2.2.0.tgz",
- "integrity": "sha512-gPrS6AVw/qJJL0vcxMXv4kFXCU3ZTCD1uuJpwX15YxHV8BgU9OG5v9LrkkXcr96PBT/9epypfNJMhlWADuEziw==",
- "license": "MPL-2.0",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@edge-runtime/node-utils": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@edge-runtime/node-utils/-/node-utils-2.2.1.tgz",
- "integrity": "sha512-RUl/439BHKshkhSGFRlZ1kzy68wL4mn8VNKDSZr3p0tciyZ33Mjfpl+vofqnHqXRmDI6nLnZpfJvhY3D88o0pA==",
- "license": "MPL-2.0",
- "dependencies": {
- "@edge-runtime/cookies": "3.4.1"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@edge-runtime/ponyfill": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@edge-runtime/ponyfill/-/ponyfill-2.4.1.tgz",
- "integrity": "sha512-ZbR/EViY3gg2rmEAQTKPa6mXl4aR1/+cFcQe4r1segCjEbTAxT6PWu40odbu/KlZKSysEb2O/BWIC2lJgSJOMQ==",
- "license": "MPL-2.0",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@edge-runtime/primitives": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@edge-runtime/primitives/-/primitives-4.0.5.tgz",
- "integrity": "sha512-t7QiN5d/KpXgCvIfSt6Nm9Hj3WVdNgc5CpOD73jasY+9EvTI7Ngdj5cXvjcHrPcmYWJZMySPgeEeoL/1N/Llag==",
- "license": "MPL-2.0",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@edge-runtime/vm": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@edge-runtime/vm/-/vm-3.1.7.tgz",
- "integrity": "sha512-hUMFbDQ/nZN+1TLMi6iMO1QFz9RSV8yGG8S42WFPFma1d7VSNE0eMdJUmwjmtav22/iQkzHMmu6oTSfAvRGS8g==",
- "license": "MPL-2.0",
- "dependencies": {
- "@edge-runtime/primitives": "4.0.5"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@emnapi/runtime": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
- "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz",
- "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==",
- "cpu": [
- "ppc64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz",
- "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz",
- "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz",
- "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz",
- "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz",
- "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz",
- "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz",
- "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz",
- "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz",
- "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz",
- "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz",
- "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==",
- "cpu": [
- "loong64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz",
- "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==",
- "cpu": [
- "mips64el"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz",
- "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==",
- "cpu": [
- "ppc64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz",
- "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==",
- "cpu": [
- "riscv64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz",
- "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==",
- "cpu": [
- "s390x"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz",
- "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-arm64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz",
- "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz",
- "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz",
- "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz",
- "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz",
- "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz",
- "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz",
- "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz",
- "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@fastify/busboy": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
- "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@floating-ui/core": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.2.tgz",
- "integrity": "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/utils": "^0.2.10"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.2.tgz",
- "integrity": "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/core": "^1.7.2",
- "@floating-ui/utils": "^0.2.10"
- }
- },
- "node_modules/@floating-ui/react": {
- "version": "0.26.28",
- "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz",
- "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/react-dom": "^2.1.2",
- "@floating-ui/utils": "^0.2.8",
- "tabbable": "^6.0.0"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@floating-ui/react-dom": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.4.tgz",
- "integrity": "sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/dom": "^1.7.2"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
- "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
- "license": "MIT"
- },
- "node_modules/@formatjs/intl-localematcher": {
- "version": "0.5.10",
- "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz",
- "integrity": "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==",
- "license": "MIT",
- "dependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@headlessui/react": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.4.tgz",
- "integrity": "sha512-lz+OGcAH1dK93rgSMzXmm1qKOJkBUqZf1L4M8TWLNplftQD3IkoEDdUFNfAn4ylsN6WOTVtWaLmvmaHOUk1dTA==",
- "license": "MIT",
- "dependencies": {
- "@floating-ui/react": "^0.26.16",
- "@react-aria/focus": "^3.20.2",
- "@react-aria/interactions": "^3.25.0",
- "@tanstack/react-virtual": "^3.13.9",
- "use-sync-external-store": "^1.5.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "react": "^18 || ^19 || ^19.0.0-rc",
- "react-dom": "^18 || ^19 || ^19.0.0-rc"
- }
- },
- "node_modules/@iconify/types": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
- "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
- "license": "MIT"
- },
- "node_modules/@iconify/utils": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz",
- "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==",
- "license": "MIT",
- "dependencies": {
- "@antfu/install-pkg": "^1.0.0",
- "@antfu/utils": "^8.1.0",
- "@iconify/types": "^2.0.0",
- "debug": "^4.4.0",
- "globals": "^15.14.0",
- "kolorist": "^1.8.0",
- "local-pkg": "^1.0.0",
- "mlly": "^1.7.4"
- }
- },
- "node_modules/@img/sharp-darwin-arm64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz",
- "integrity": "sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-arm64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-darwin-x64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.2.tgz",
- "integrity": "sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-x64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-libvips-darwin-arm64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz",
- "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "darwin"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-darwin-x64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz",
- "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "darwin"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-arm": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz",
- "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==",
- "cpu": [
- "arm"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-arm64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz",
- "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-ppc64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz",
- "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==",
- "cpu": [
- "ppc64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-s390x": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz",
- "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==",
- "cpu": [
- "s390x"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linux-x64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz",
- "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz",
- "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-libvips-linuxmusl-x64": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz",
- "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-linux-arm": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.2.tgz",
- "integrity": "sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==",
- "cpu": [
- "arm"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linux-arm64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.2.tgz",
- "integrity": "sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linux-s390x": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.2.tgz",
- "integrity": "sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==",
- "cpu": [
- "s390x"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-s390x": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linux-x64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.2.tgz",
- "integrity": "sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-x64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linuxmusl-arm64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.2.tgz",
- "integrity": "sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-arm64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-linuxmusl-x64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.2.tgz",
- "integrity": "sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-x64": "1.1.0"
- }
- },
- "node_modules/@img/sharp-wasm32": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.2.tgz",
- "integrity": "sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==",
- "cpu": [
- "wasm32"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/runtime": "^1.4.3"
- },
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-arm64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.2.tgz",
- "integrity": "sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-ia32": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.2.tgz",
- "integrity": "sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==",
- "cpu": [
- "ia32"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@img/sharp-win32-x64": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.2.tgz",
- "integrity": "sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
- "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/@mapbox/node-pre-gyp": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
- "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "detect-libc": "^2.0.0",
- "https-proxy-agent": "^5.0.0",
- "make-dir": "^3.1.0",
- "node-fetch": "^2.6.7",
- "nopt": "^5.0.0",
- "npmlog": "^5.0.1",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.11"
- },
- "bin": {
- "node-pre-gyp": "bin/node-pre-gyp"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "license": "ISC",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "license": "MIT",
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "license": "MIT",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/tar": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
- "license": "ISC",
- "dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "license": "ISC"
- },
- "node_modules/@mdx-js/mdx": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz",
- "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdx": "^2.0.0",
- "collapse-white-space": "^2.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "estree-util-scope": "^1.0.0",
- "estree-walker": "^3.0.0",
- "hast-util-to-jsx-runtime": "^2.0.0",
- "markdown-extensions": "^2.0.0",
- "recma-build-jsx": "^1.0.0",
- "recma-jsx": "^1.0.0",
- "recma-stringify": "^1.0.0",
- "rehype-recma": "^1.0.0",
- "remark-mdx": "^3.0.0",
- "remark-parse": "^11.0.0",
- "remark-rehype": "^11.0.0",
- "source-map": "^0.7.0",
- "unified": "^11.0.0",
- "unist-util-position-from-estree": "^2.0.0",
- "unist-util-stringify-position": "^4.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/@mdx-js/react": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz",
- "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==",
- "license": "MIT",
- "dependencies": {
- "@types/mdx": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- },
- "peerDependencies": {
- "@types/react": ">=16",
- "react": ">=16"
- }
- },
- "node_modules/@mermaid-js/parser": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.0.tgz",
- "integrity": "sha512-7DNESgpyZ5WG1SIkrYafVBhWmImtmQuoxOO1lawI3gQYWxBX3v1FW3IyuuRfKJAO06XrZR71W0Kif5VEGGd4VA==",
- "license": "MIT",
- "dependencies": {
- "langium": "3.3.1"
- }
- },
- "node_modules/@napi-rs/simple-git": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.19.tgz",
- "integrity": "sha512-jMxvwzkKzd3cXo2EB9GM2ic0eYo2rP/BS6gJt6HnWbsDO1O8GSD4k7o2Cpr2YERtMpGF/MGcDfsfj2EbQPtrXw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- },
- "optionalDependencies": {
- "@napi-rs/simple-git-android-arm-eabi": "0.1.19",
- "@napi-rs/simple-git-android-arm64": "0.1.19",
- "@napi-rs/simple-git-darwin-arm64": "0.1.19",
- "@napi-rs/simple-git-darwin-x64": "0.1.19",
- "@napi-rs/simple-git-freebsd-x64": "0.1.19",
- "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.19",
- "@napi-rs/simple-git-linux-arm64-gnu": "0.1.19",
- "@napi-rs/simple-git-linux-arm64-musl": "0.1.19",
- "@napi-rs/simple-git-linux-powerpc64le-gnu": "0.1.19",
- "@napi-rs/simple-git-linux-s390x-gnu": "0.1.19",
- "@napi-rs/simple-git-linux-x64-gnu": "0.1.19",
- "@napi-rs/simple-git-linux-x64-musl": "0.1.19",
- "@napi-rs/simple-git-win32-arm64-msvc": "0.1.19",
- "@napi-rs/simple-git-win32-x64-msvc": "0.1.19"
- }
- },
- "node_modules/@napi-rs/simple-git-android-arm-eabi": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.19.tgz",
- "integrity": "sha512-XryEH/hadZ4Duk/HS/HC/cA1j0RHmqUGey3MsCf65ZS0VrWMqChXM/xlTPWuY5jfCc/rPubHaqI7DZlbexnX/g==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-android-arm64": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.19.tgz",
- "integrity": "sha512-ZQ0cPvY6nV9p7zrR9ZPo7hQBkDAcY/CHj3BjYNhykeUCiSNCrhvwX+WEeg5on8M1j4d5jcI/cwVG2FslfiByUg==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-darwin-arm64": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.19.tgz",
- "integrity": "sha512-viZB5TYgjA1vH+QluhxZo0WKro3xBA+1xSzYx8mcxUMO5gnAoUMwXn0ZO/6Zy6pai+aGae+cj6XihGnrBRu3Pg==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-darwin-x64": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.19.tgz",
- "integrity": "sha512-6dNkzSNUV5X9rsVYQbpZLyJu4Gtkl2vNJ3abBXHX/Etk0ILG5ZasO3ncznIANZQpqcbn/QPHr49J2QYAXGoKJA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-freebsd-x64": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-freebsd-x64/-/simple-git-freebsd-x64-0.1.19.tgz",
- "integrity": "sha512-sB9krVIchzd20FjI2ZZ8FDsTSsXLBdnwJ6CpeVyrhXHnoszfcqxt49ocZHujAS9lMpXq7i2Nv1EXJmCy4KdhwA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-arm-gnueabihf": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.19.tgz",
- "integrity": "sha512-6HPn09lr9N1n5/XKfP8Np53g4fEXVxOFqNkS6rTH3Rm1lZHdazTRH62RggXLTguZwjcE+MvOLvoTIoR5kAS8+g==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-arm64-gnu": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.19.tgz",
- "integrity": "sha512-G0gISckt4cVDp3oh5Z6PV3GHJrJO6Z8bIS+9xA7vTtKdqB1i5y0n3cSFLlzQciLzhr+CajFD27doW4lEyErQ/Q==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-arm64-musl": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.19.tgz",
- "integrity": "sha512-OwTRF+H4IZYxmDFRi1IrLMfqbdIpvHeYbJl2X94NVsLVOY+3NUHvEzL3fYaVx5urBaMnIK0DD3wZLbcueWvxbA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-powerpc64le-gnu": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-powerpc64le-gnu/-/simple-git-linux-powerpc64le-gnu-0.1.19.tgz",
- "integrity": "sha512-p7zuNNVyzpRvkCt2RIGv9FX/WPcPbZ6/FRUgUTZkA2WU33mrbvNqSi4AOqCCl6mBvEd+EOw5NU4lS9ORRJvAEg==",
- "cpu": [
- "powerpc64le"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-s390x-gnu": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-s390x-gnu/-/simple-git-linux-s390x-gnu-0.1.19.tgz",
- "integrity": "sha512-6N2vwJUPLiak8GLrS0a3is0gSb0UwI2CHOOqtvQxPmv+JVI8kn3vKiUscsktdDb0wGEPeZ8PvZs0y8UWix7K4g==",
- "cpu": [
- "s390x"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-x64-gnu": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.19.tgz",
- "integrity": "sha512-61YfeO1J13WK7MalLgP3QlV6of2rWnVw1aqxWkAgy/lGxoOFSJ4Wid6ANVCEZk4tJpPX/XNeneqkUz5xpeb2Cw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-linux-x64-musl": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.19.tgz",
- "integrity": "sha512-cCTWNpMJnN3PrUBItWcs3dQKCydsIasbrS3laMzq8k7OzF93Zrp2LWDTPlLCO9brbBVpBzy2Qk5Xg9uAfe/Ukw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-win32-arm64-msvc": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.19.tgz",
- "integrity": "sha512-sWavb1BjeLKKBA+PbTsRSSzVNfb7V/dOpaJvkgR5d2kWFn/AHmCZHSSj/3nyZdYf0BdDC+DIvqk3daAEZ6QMVw==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@napi-rs/simple-git-win32-x64-msvc": {
- "version": "0.1.19",
- "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.19.tgz",
- "integrity": "sha512-FmNuPoK4+qwaSCkp8lm3sJlrxk374enW+zCE5ZksXlZzj/9BDJAULJb5QUJ7o9Y8A/G+d8LkdQLPBE2Jaxe5XA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/env": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.5.tgz",
- "integrity": "sha512-7g06v8BUVtN2njAX/r8gheoVffhiKFVt4nx74Tt6G4Hqw9HCLYQVx/GkH2qHvPtAHZaUNZ0VXAa0pQP6v1wk7g==",
- "license": "MIT"
- },
- "node_modules/@next/swc-darwin-arm64": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.5.tgz",
- "integrity": "sha512-lM/8tilIsqBq+2nq9kbTW19vfwFve0NR7MxfkuSUbRSgXlMQoJYg+31+++XwKVSXk4uT23G2eF/7BRIKdn8t8w==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-darwin-x64": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.5.tgz",
- "integrity": "sha512-WhwegPQJ5IfoUNZUVsI9TRAlKpjGVK0tpJTL6KeiC4cux9774NYE9Wu/iCfIkL/5J8rPAkqZpG7n+EfiAfidXA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.5.tgz",
- "integrity": "sha512-LVD6uMOZ7XePg3KWYdGuzuvVboxujGjbcuP2jsPAN3MnLdLoZUXKRc6ixxfs03RH7qBdEHCZjyLP/jBdCJVRJQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.5.tgz",
- "integrity": "sha512-k8aVScYZ++BnS2P69ClK7v4nOu702jcF9AIHKu6llhHEtBSmM2zkPGl9yoqbSU/657IIIb0QHpdxEr0iW9z53A==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.5.tgz",
- "integrity": "sha512-2xYU0DI9DGN/bAHzVwADid22ba5d/xrbrQlr2U+/Q5WkFUzeL0TDR963BdrtLS/4bMmKZGptLeg6282H/S2i8A==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.5.tgz",
- "integrity": "sha512-TRYIqAGf1KCbuAB0gjhdn5Ytd8fV+wJSM2Nh2is/xEqR8PZHxfQuaiNhoF50XfY90sNpaRMaGhF6E+qjV1b9Tg==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.5.tgz",
- "integrity": "sha512-h04/7iMEUSMY6fDGCvdanKqlO1qYvzNxntZlCzfE8i5P0uqzVQWQquU1TIhlz0VqGQGXLrFDuTJVONpqGqjGKQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-x64-msvc": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.5.tgz",
- "integrity": "sha512-5fhH6fccXxnX2KhllnGhkYMndhOiLOLEiVGYjP2nizqeGWkN10sA9taATlXwake2E2XMvYZjjz0Uj7T0y+z1yw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@react-aria/focus": {
- "version": "3.20.5",
- "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.5.tgz",
- "integrity": "sha512-JpFtXmWQ0Oca7FcvkqgjSyo6xEP7v3oQOLUId6o0xTvm4AD5W0mU2r3lYrbhsJ+XxdUUX4AVR5473sZZ85kU4A==",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/interactions": "^3.25.3",
- "@react-aria/utils": "^3.29.1",
- "@react-types/shared": "^3.30.0",
- "@swc/helpers": "^0.5.0",
- "clsx": "^2.0.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-aria/interactions": {
- "version": "3.25.3",
- "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.3.tgz",
- "integrity": "sha512-J1bhlrNtjPS/fe5uJQ+0c7/jiXniwa4RQlP+Emjfc/iuqpW2RhbF9ou5vROcLzWIyaW8tVMZ468J68rAs/aZ5A==",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/ssr": "^3.9.9",
- "@react-aria/utils": "^3.29.1",
- "@react-stately/flags": "^3.1.2",
- "@react-types/shared": "^3.30.0",
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-aria/ssr": {
- "version": "3.9.9",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.9.tgz",
- "integrity": "sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- },
- "engines": {
- "node": ">= 12"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-aria/utils": {
- "version": "3.29.1",
- "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.29.1.tgz",
- "integrity": "sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==",
- "license": "Apache-2.0",
- "dependencies": {
- "@react-aria/ssr": "^3.9.9",
- "@react-stately/flags": "^3.1.2",
- "@react-stately/utils": "^3.10.7",
- "@react-types/shared": "^3.30.0",
- "@swc/helpers": "^0.5.0",
- "clsx": "^2.0.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-stately/flags": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz",
- "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- }
- },
- "node_modules/@react-stately/utils": {
- "version": "3.10.7",
- "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.7.tgz",
- "integrity": "sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@swc/helpers": "^0.5.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@react-types/shared": {
- "version": "3.30.0",
- "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz",
- "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==",
- "license": "Apache-2.0",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
- }
- },
- "node_modules/@rollup/pluginutils": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
- "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
- "license": "MIT",
- "dependencies": {
- "estree-walker": "^2.0.1",
- "picomatch": "^2.2.2"
- },
- "engines": {
- "node": ">= 8.0.0"
- }
- },
- "node_modules/@rollup/pluginutils/node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "license": "MIT"
- },
- "node_modules/@shikijs/core": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.29.2.tgz",
- "integrity": "sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/engine-javascript": "1.29.2",
- "@shikijs/engine-oniguruma": "1.29.2",
- "@shikijs/types": "1.29.2",
- "@shikijs/vscode-textmate": "^10.0.1",
- "@types/hast": "^3.0.4",
- "hast-util-to-html": "^9.0.4"
- }
- },
- "node_modules/@shikijs/engine-javascript": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.29.2.tgz",
- "integrity": "sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "1.29.2",
- "@shikijs/vscode-textmate": "^10.0.1",
- "oniguruma-to-es": "^2.2.0"
- }
- },
- "node_modules/@shikijs/engine-oniguruma": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz",
- "integrity": "sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "1.29.2",
- "@shikijs/vscode-textmate": "^10.0.1"
- }
- },
- "node_modules/@shikijs/langs": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-1.29.2.tgz",
- "integrity": "sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "1.29.2"
- }
- },
- "node_modules/@shikijs/themes": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-1.29.2.tgz",
- "integrity": "sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "1.29.2"
- }
- },
- "node_modules/@shikijs/twoslash": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-1.29.2.tgz",
- "integrity": "sha512-2S04ppAEa477tiaLfGEn1QJWbZUmbk8UoPbAEw4PifsrxkBXtAtOflIZJNtuCwz8ptc/TPxy7CO7gW4Uoi6o/g==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/core": "1.29.2",
- "@shikijs/types": "1.29.2",
- "twoslash": "^0.2.12"
- }
- },
- "node_modules/@shikijs/types": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.29.2.tgz",
- "integrity": "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/vscode-textmate": "^10.0.1",
- "@types/hast": "^3.0.4"
- }
- },
- "node_modules/@shikijs/vscode-textmate": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz",
- "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==",
- "license": "MIT"
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.25.24",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
- "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==",
- "license": "MIT"
- },
- "node_modules/@swc/counter": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
- "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
- "license": "Apache-2.0"
- },
- "node_modules/@swc/helpers": {
- "version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
- "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^2.8.0"
- }
- },
- "node_modules/@tanstack/react-virtual": {
- "version": "3.13.12",
- "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz",
- "integrity": "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==",
- "license": "MIT",
- "dependencies": {
- "@tanstack/virtual-core": "3.13.12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/@tanstack/virtual-core": {
- "version": "3.13.12",
- "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz",
- "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/tannerlinsley"
- }
- },
- "node_modules/@theguild/remark-mermaid": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.1.3.tgz",
- "integrity": "sha512-2FjVlaaKXK7Zj7UJAgOVTyaahn/3/EAfqYhyXg0BfDBVUl+lXcoIWRaxzqfnDr2rv8ax6GsC5mNh6hAaT86PDw==",
- "license": "MIT",
- "dependencies": {
- "mermaid": "^11.0.0",
- "unist-util-visit": "^5.0.0"
- },
- "peerDependencies": {
- "react": "^18.2.0"
- }
- },
- "node_modules/@theguild/remark-npm2yarn": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@theguild/remark-npm2yarn/-/remark-npm2yarn-0.3.3.tgz",
- "integrity": "sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==",
- "license": "MIT",
- "dependencies": {
- "npm-to-yarn": "^3.0.0",
- "unist-util-visit": "^5.0.0"
- }
- },
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@ts-morph/common": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.11.1.tgz",
- "integrity": "sha512-7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==",
- "license": "MIT",
- "dependencies": {
- "fast-glob": "^3.2.7",
- "minimatch": "^3.0.4",
- "mkdirp": "^1.0.4",
- "path-browserify": "^1.0.1"
- }
- },
- "node_modules/@ts-morph/common/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "license": "MIT",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@tsconfig/node10": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
- "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
- "license": "MIT"
- },
- "node_modules/@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "license": "MIT"
- },
- "node_modules/@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "license": "MIT"
- },
- "node_modules/@tsconfig/node16": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
- "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
- "license": "MIT"
- },
- "node_modules/@types/d3": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
- "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-array": "*",
- "@types/d3-axis": "*",
- "@types/d3-brush": "*",
- "@types/d3-chord": "*",
- "@types/d3-color": "*",
- "@types/d3-contour": "*",
- "@types/d3-delaunay": "*",
- "@types/d3-dispatch": "*",
- "@types/d3-drag": "*",
- "@types/d3-dsv": "*",
- "@types/d3-ease": "*",
- "@types/d3-fetch": "*",
- "@types/d3-force": "*",
- "@types/d3-format": "*",
- "@types/d3-geo": "*",
- "@types/d3-hierarchy": "*",
- "@types/d3-interpolate": "*",
- "@types/d3-path": "*",
- "@types/d3-polygon": "*",
- "@types/d3-quadtree": "*",
- "@types/d3-random": "*",
- "@types/d3-scale": "*",
- "@types/d3-scale-chromatic": "*",
- "@types/d3-selection": "*",
- "@types/d3-shape": "*",
- "@types/d3-time": "*",
- "@types/d3-time-format": "*",
- "@types/d3-timer": "*",
- "@types/d3-transition": "*",
- "@types/d3-zoom": "*"
- }
- },
- "node_modules/@types/d3-array": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
- "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-axis": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
- "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-brush": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
- "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-chord": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
- "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-color": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
- "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
- "license": "MIT"
- },
- "node_modules/@types/d3-contour": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
- "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-array": "*",
- "@types/geojson": "*"
- }
- },
- "node_modules/@types/d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==",
- "license": "MIT"
- },
- "node_modules/@types/d3-dispatch": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
- "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==",
- "license": "MIT"
- },
- "node_modules/@types/d3-drag": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
- "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-dsv": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
- "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==",
- "license": "MIT"
- },
- "node_modules/@types/d3-ease": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
- "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
- "license": "MIT"
- },
- "node_modules/@types/d3-fetch": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
- "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-dsv": "*"
- }
- },
- "node_modules/@types/d3-force": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
- "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==",
- "license": "MIT"
- },
- "node_modules/@types/d3-format": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
- "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==",
- "license": "MIT"
- },
- "node_modules/@types/d3-geo": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
- "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
- "license": "MIT",
- "dependencies": {
- "@types/geojson": "*"
- }
- },
- "node_modules/@types/d3-hierarchy": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
- "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-interpolate": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
- "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-color": "*"
- }
- },
- "node_modules/@types/d3-path": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
- "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-polygon": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
- "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==",
- "license": "MIT"
- },
- "node_modules/@types/d3-quadtree": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
- "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-random": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
- "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==",
- "license": "MIT"
- },
- "node_modules/@types/d3-scale": {
- "version": "4.0.9",
- "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
- "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-time": "*"
- }
- },
- "node_modules/@types/d3-scale-chromatic": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
- "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==",
- "license": "MIT"
- },
- "node_modules/@types/d3-selection": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",
- "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==",
- "license": "MIT"
- },
- "node_modules/@types/d3-shape": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
- "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-path": "*"
- }
- },
- "node_modules/@types/d3-time": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
- "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
- "license": "MIT"
- },
- "node_modules/@types/d3-time-format": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
- "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-timer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
- "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
- "license": "MIT"
- },
- "node_modules/@types/d3-transition": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",
- "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-zoom": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
- "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-interpolate": "*",
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/debug": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
- "license": "MIT",
- "dependencies": {
- "@types/ms": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
- "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
- "license": "MIT"
- },
- "node_modules/@types/estree-jsx": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
- "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "*"
- }
- },
- "node_modules/@types/geojson": {
- "version": "7946.0.16",
- "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
- "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
- "license": "MIT"
- },
- "node_modules/@types/hast": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
- "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "license": "MIT"
- },
- "node_modules/@types/katex": {
- "version": "0.16.7",
- "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz",
- "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==",
- "license": "MIT"
- },
- "node_modules/@types/mdast": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
- "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/mdx": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
- "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
- "license": "MIT"
- },
- "node_modules/@types/ms": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
- "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
- "license": "MIT"
- },
- "node_modules/@types/nlcst": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz",
- "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/node": {
- "version": "22.10.7",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz",
- "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "undici-types": "~6.20.0"
- }
- },
- "node_modules/@types/react": {
- "version": "19.1.8",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz",
- "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/trusted-types": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
- "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
- "license": "MIT",
- "optional": true
- },
- "node_modules/@types/unist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
- "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
- "license": "MIT"
- },
- "node_modules/@typescript/vfs": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.1.tgz",
- "integrity": "sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==",
- "license": "MIT",
- "dependencies": {
- "debug": "^4.1.1"
- },
- "peerDependencies": {
- "typescript": "*"
- }
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
- "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
- "license": "ISC"
- },
- "node_modules/@vercel/analytics": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.5.0.tgz",
- "integrity": "sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==",
- "license": "MPL-2.0",
- "peerDependencies": {
- "@remix-run/react": "^2",
- "@sveltejs/kit": "^1 || ^2",
- "next": ">= 13",
- "react": "^18 || ^19 || ^19.0.0-rc",
- "svelte": ">= 4",
- "vue": "^3",
- "vue-router": "^4"
- },
- "peerDependenciesMeta": {
- "@remix-run/react": {
- "optional": true
- },
- "@sveltejs/kit": {
- "optional": true
- },
- "next": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "svelte": {
- "optional": true
- },
- "vue": {
- "optional": true
- },
- "vue-router": {
- "optional": true
- }
- }
- },
- "node_modules/@vercel/build-utils": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-7.3.0.tgz",
- "integrity": "sha512-RJwqrGYSk75auHZqWmlSL+a5JsWv+4SF1AxNQJ+KpF3XWZ/8yThkN/jHBfNxMmW6VvNczSVtMaXI0/2Sess6Eg==",
- "license": "Apache-2.0"
- },
- "node_modules/@vercel/error-utils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@vercel/error-utils/-/error-utils-2.0.2.tgz",
- "integrity": "sha512-Sj0LFafGpYr6pfCqrQ82X6ukRl5qpmVrHM/191kNYFqkkB9YkjlMAj6QcEsvCG259x4QZ7Tya++0AB85NDPbKQ==",
- "license": "Apache-2.0"
- },
- "node_modules/@vercel/fun": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@vercel/fun/-/fun-1.1.0.tgz",
- "integrity": "sha512-SpuPAo+MlAYMtcMcC0plx7Tv4Mp7SQhJJj1iIENlOnABL24kxHpL09XLQMGzZIzIW7upR8c3edwgfpRtp+dhVw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@tootallnate/once": "2.0.0",
- "async-listen": "1.2.0",
- "debug": "4.1.1",
- "execa": "3.2.0",
- "fs-extra": "8.1.0",
- "generic-pool": "3.4.2",
- "micro": "9.3.5-canary.3",
- "ms": "2.1.1",
- "node-fetch": "2.6.7",
- "path-match": "1.2.4",
- "promisepipe": "3.0.0",
- "semver": "7.3.5",
- "stat-mode": "0.3.0",
- "stream-to-promise": "2.2.0",
- "tar": "4.4.18",
- "tree-kill": "1.2.2",
- "uid-promise": "1.0.0",
- "uuid": "3.3.2",
- "xdg-app-paths": "5.1.0",
- "yauzl-promise": "2.1.3"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@vercel/fun/node_modules/debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/@vercel/fun/node_modules/execa": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-3.2.0.tgz",
- "integrity": "sha512-kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw==",
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "get-stream": "^5.0.0",
- "human-signals": "^1.1.1",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.0",
- "onetime": "^5.1.0",
- "p-finally": "^2.0.0",
- "signal-exit": "^3.0.2",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": "^8.12.0 || >=9.7.0"
- }
- },
- "node_modules/@vercel/fun/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "license": "MIT",
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@vercel/fun/node_modules/human-signals": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
- "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8.12.0"
- }
- },
- "node_modules/@vercel/fun/node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@vercel/fun/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@vercel/fun/node_modules/ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
- "license": "MIT"
- },
- "node_modules/@vercel/fun/node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@vercel/fun/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@vercel/fun/node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@vercel/fun/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "license": "ISC"
- },
- "node_modules/@vercel/fun/node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@vercel/fun/node_modules/uuid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "license": "MIT",
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-analytics": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-analytics/-/gatsby-plugin-vercel-analytics-1.0.11.tgz",
- "integrity": "sha512-iTEA0vY6RBPuEzkwUTVzSHDATo1aF6bdLLspI68mQ/BTbi5UQEGjpjyzdKOVcSYApDtFU6M6vypZ1t4vIEnHvw==",
- "license": "Apache-2.0",
- "dependencies": {
- "web-vitals": "0.2.4"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.12.tgz",
- "integrity": "sha512-S1RkywrUItewqg06T3L4cgYfiwi2BFngHIIerhOYhVuD9A+yfMgxnH5dkbu6nujmV1SEws+Q92wSiPfLPmO0eA==",
- "dependencies": {
- "@sinclair/typebox": "0.25.24",
- "@vercel/build-utils": "7.3.0",
- "@vercel/routing-utils": "3.1.0",
- "esbuild": "0.14.47",
- "etag": "1.8.1",
- "fs-extra": "11.1.0"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.47.tgz",
- "integrity": "sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==",
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "esbuild-android-64": "0.14.47",
- "esbuild-android-arm64": "0.14.47",
- "esbuild-darwin-64": "0.14.47",
- "esbuild-darwin-arm64": "0.14.47",
- "esbuild-freebsd-64": "0.14.47",
- "esbuild-freebsd-arm64": "0.14.47",
- "esbuild-linux-32": "0.14.47",
- "esbuild-linux-64": "0.14.47",
- "esbuild-linux-arm": "0.14.47",
- "esbuild-linux-arm64": "0.14.47",
- "esbuild-linux-mips64le": "0.14.47",
- "esbuild-linux-ppc64le": "0.14.47",
- "esbuild-linux-riscv64": "0.14.47",
- "esbuild-linux-s390x": "0.14.47",
- "esbuild-netbsd-64": "0.14.47",
- "esbuild-openbsd-64": "0.14.47",
- "esbuild-sunos-64": "0.14.47",
- "esbuild-windows-32": "0.14.47",
- "esbuild-windows-64": "0.14.47",
- "esbuild-windows-arm64": "0.14.47"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-android-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz",
- "integrity": "sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-android-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz",
- "integrity": "sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-darwin-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz",
- "integrity": "sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-darwin-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz",
- "integrity": "sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-freebsd-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz",
- "integrity": "sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-freebsd-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz",
- "integrity": "sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-linux-32": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz",
- "integrity": "sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-linux-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz",
- "integrity": "sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-linux-arm": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz",
- "integrity": "sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-linux-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz",
- "integrity": "sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-linux-mips64le": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz",
- "integrity": "sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==",
- "cpu": [
- "mips64el"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-linux-ppc64le": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz",
- "integrity": "sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==",
- "cpu": [
- "ppc64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-linux-riscv64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz",
- "integrity": "sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==",
- "cpu": [
- "riscv64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-linux-s390x": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz",
- "integrity": "sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==",
- "cpu": [
- "s390x"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-netbsd-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz",
- "integrity": "sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-openbsd-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz",
- "integrity": "sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-sunos-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz",
- "integrity": "sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-windows-32": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz",
- "integrity": "sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-windows-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz",
- "integrity": "sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/esbuild-windows-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz",
- "integrity": "sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/fs-extra": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz",
- "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==",
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "license": "MIT",
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/@vercel/gatsby-plugin-vercel-builder/node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/@vercel/go": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@vercel/go/-/go-3.0.4.tgz",
- "integrity": "sha512-hMIJm2xwU1HT56YRNF8HNOnIFNH7WnGl1l2D6lc6UJk7XdCCh1Dm0nsqLqki2SprTUh3I+53pTQaqgRsFGf06A==",
- "license": "Apache-2.0"
- },
- "node_modules/@vercel/hydrogen": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@vercel/hydrogen/-/hydrogen-1.0.1.tgz",
- "integrity": "sha512-4PYk4LeIWPTjGtgnxvB0Hdw7aqCau843/96K2xX3z9pa0Hn//pUnZBMz2jrs5MRseCm1Li1LdQAK3u8/vaUnVQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@vercel/static-config": "3.0.0",
- "ts-morph": "12.0.0"
- }
- },
- "node_modules/@vercel/next": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/@vercel/next/-/next-4.0.15.tgz",
- "integrity": "sha512-BxMxIJrya7MS6IWrQIaQaYHPmq7WoZFLX909RBpNoAG5wgzrTrW756d2EsibBwGo7sQYBv2atyI5GqBIHzYbWg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@vercel/nft": "0.24.2"
- }
- },
- "node_modules/@vercel/nft": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.24.2.tgz",
- "integrity": "sha512-KhY3Ky/lCqE+fHpOXiKOLnXYJ49PZh1dyDSfVtZhmYtmica0NQgyO6kPOAGDNWqD9IOBx8hb65upxxjfnfa1JA==",
- "license": "MIT",
- "dependencies": {
- "@mapbox/node-pre-gyp": "^1.0.5",
- "@rollup/pluginutils": "^4.0.0",
- "acorn": "^8.6.0",
- "async-sema": "^3.1.1",
- "bindings": "^1.4.0",
- "estree-walker": "2.0.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.2",
- "node-gyp-build": "^4.2.2",
- "resolve-from": "^5.0.0"
- },
- "bin": {
- "nft": "out/cli.js"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/@vercel/nft/node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "license": "MIT"
- },
- "node_modules/@vercel/node": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/@vercel/node/-/node-3.0.12.tgz",
- "integrity": "sha512-OiNHiUe1LX/CfDrQ07ntPsoYhJiC38mEeErYeqA6YNVAz3QGdX3pthiaIig2KPqeeYkEx5bSkVIqQtQOTJBuLQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@edge-runtime/node-utils": "2.2.1",
- "@edge-runtime/primitives": "4.0.5",
- "@edge-runtime/vm": "3.1.7",
- "@types/node": "14.18.33",
- "@vercel/build-utils": "7.3.0",
- "@vercel/error-utils": "2.0.2",
- "@vercel/nft": "0.24.2",
- "@vercel/static-config": "3.0.0",
- "async-listen": "3.0.0",
- "edge-runtime": "2.5.7",
- "esbuild": "0.14.47",
- "etag": "1.8.1",
- "exit-hook": "2.2.1",
- "node-fetch": "2.6.9",
- "path-to-regexp": "6.2.1",
- "ts-morph": "12.0.0",
- "ts-node": "10.9.1",
- "typescript": "4.9.5",
- "undici": "5.26.5"
- }
- },
- "node_modules/@vercel/node/node_modules/@types/node": {
- "version": "14.18.33",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz",
- "integrity": "sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==",
- "license": "MIT"
- },
- "node_modules/@vercel/node/node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "license": "MIT"
- },
- "node_modules/@vercel/node/node_modules/async-listen": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/async-listen/-/async-listen-3.0.0.tgz",
- "integrity": "sha512-V+SsTpDqkrWTimiotsyl33ePSjA5/KrithwupuvJ6ztsqPvGv6ge4OredFhPffVXiLN/QUWvE0XcqJaYgt6fOg==",
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.47.tgz",
- "integrity": "sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA==",
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "esbuild-android-64": "0.14.47",
- "esbuild-android-arm64": "0.14.47",
- "esbuild-darwin-64": "0.14.47",
- "esbuild-darwin-arm64": "0.14.47",
- "esbuild-freebsd-64": "0.14.47",
- "esbuild-freebsd-arm64": "0.14.47",
- "esbuild-linux-32": "0.14.47",
- "esbuild-linux-64": "0.14.47",
- "esbuild-linux-arm": "0.14.47",
- "esbuild-linux-arm64": "0.14.47",
- "esbuild-linux-mips64le": "0.14.47",
- "esbuild-linux-ppc64le": "0.14.47",
- "esbuild-linux-riscv64": "0.14.47",
- "esbuild-linux-s390x": "0.14.47",
- "esbuild-netbsd-64": "0.14.47",
- "esbuild-openbsd-64": "0.14.47",
- "esbuild-sunos-64": "0.14.47",
- "esbuild-windows-32": "0.14.47",
- "esbuild-windows-64": "0.14.47",
- "esbuild-windows-arm64": "0.14.47"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-android-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz",
- "integrity": "sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-android-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz",
- "integrity": "sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-darwin-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz",
- "integrity": "sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-darwin-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz",
- "integrity": "sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-freebsd-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz",
- "integrity": "sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-freebsd-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz",
- "integrity": "sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-linux-32": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz",
- "integrity": "sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-linux-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz",
- "integrity": "sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-linux-arm": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz",
- "integrity": "sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-linux-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz",
- "integrity": "sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-linux-mips64le": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz",
- "integrity": "sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg==",
- "cpu": [
- "mips64el"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-linux-ppc64le": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz",
- "integrity": "sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w==",
- "cpu": [
- "ppc64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-linux-riscv64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz",
- "integrity": "sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g==",
- "cpu": [
- "riscv64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-linux-s390x": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz",
- "integrity": "sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw==",
- "cpu": [
- "s390x"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-netbsd-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz",
- "integrity": "sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-openbsd-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz",
- "integrity": "sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-sunos-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz",
- "integrity": "sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-windows-32": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz",
- "integrity": "sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-windows-64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz",
- "integrity": "sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/esbuild-windows-arm64": {
- "version": "0.14.47",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz",
- "integrity": "sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@vercel/node/node_modules/node-fetch": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz",
- "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==",
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/@vercel/node/node_modules/ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
- "license": "MIT",
- "dependencies": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
- }
- },
- "node_modules/@vercel/node/node_modules/typescript": {
- "version": "4.9.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
- "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=4.2.0"
- }
- },
- "node_modules/@vercel/node/node_modules/undici": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz",
- "integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==",
- "license": "MIT",
- "dependencies": {
- "@fastify/busboy": "^2.0.0"
- },
- "engines": {
- "node": ">=14.0"
- }
- },
- "node_modules/@vercel/python": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@vercel/python/-/python-4.1.0.tgz",
- "integrity": "sha512-EIQXK5zL6fce0Barh74gc7xyLtRyvgmLZDIVQ8yJLtFxPlPCRY3GXkdJ7Jdcw8Pd0uuVF0vIHatv18xSLbcwtg==",
- "license": "Apache-2.0"
- },
- "node_modules/@vercel/redwood": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.0.5.tgz",
- "integrity": "sha512-9iWTxfMkC7yNnwN2xxOdptiIDAgXe1V1fh3aw92MWt5PBRcFY9RqgIPF7Q3Qa7yzQFgpbHwCnSTqWO+HCEuFtw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@vercel/nft": "0.24.2",
- "@vercel/routing-utils": "3.1.0",
- "semver": "6.3.1"
- }
- },
- "node_modules/@vercel/redwood/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@vercel/remix-builder": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-2.0.14.tgz",
- "integrity": "sha512-c+ILERSRq404sf6kt0qWhYhuxWkkoTEm2FdLoUnVs21K6kzGtJMJbUExEHoPZvN9a0tq86ZU86jVvRZV6WL0cQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@vercel/nft": "0.24.2",
- "@vercel/static-config": "3.0.0",
- "ts-morph": "12.0.0"
- }
- },
- "node_modules/@vercel/routing-utils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@vercel/routing-utils/-/routing-utils-3.1.0.tgz",
- "integrity": "sha512-Ci5xTjVTJY/JLZXpCXpLehMft97i9fH34nu9PGav6DtwkVUF6TOPX86U0W0niQjMZ5n6/ZP0BwcJK2LOozKaGw==",
- "license": "Apache-2.0",
- "dependencies": {
- "path-to-regexp": "6.1.0"
- },
- "optionalDependencies": {
- "ajv": "^6.0.0"
- }
- },
- "node_modules/@vercel/routing-utils/node_modules/path-to-regexp": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.1.0.tgz",
- "integrity": "sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==",
- "license": "MIT"
- },
- "node_modules/@vercel/ruby": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@vercel/ruby/-/ruby-2.0.4.tgz",
- "integrity": "sha512-EpZyfF6wFGzFDmubFIh/EZtYpKindmXx/69xSfKEBTVU0afgljyOOICbyZePe5tvigfOEBLSLgrt/2nN+MlLtA==",
- "license": "Apache-2.0"
- },
- "node_modules/@vercel/speed-insights": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.2.0.tgz",
- "integrity": "sha512-y9GVzrUJ2xmgtQlzFP2KhVRoCglwfRQgjyfY607aU0hh0Un6d0OUyrJkjuAlsV18qR4zfoFPs/BiIj9YDS6Wzw==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "peerDependencies": {
- "@sveltejs/kit": "^1 || ^2",
- "next": ">= 13",
- "react": "^18 || ^19 || ^19.0.0-rc",
- "svelte": ">= 4",
- "vue": "^3",
- "vue-router": "^4"
- },
- "peerDependenciesMeta": {
- "@sveltejs/kit": {
- "optional": true
- },
- "next": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "svelte": {
- "optional": true
- },
- "vue": {
- "optional": true
- },
- "vue-router": {
- "optional": true
- }
- }
- },
- "node_modules/@vercel/static-build": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.0.14.tgz",
- "integrity": "sha512-l5eQtJbk5Pc+P8XARDnpcbX4LnK3bGy7uf6S1aFOD4h6F8iBdg0agWTufZnq5BI91pcPVICPazM5BYhigIEznQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@vercel/gatsby-plugin-vercel-analytics": "1.0.11",
- "@vercel/gatsby-plugin-vercel-builder": "2.0.12",
- "@vercel/static-config": "3.0.0",
- "ts-morph": "12.0.0"
- }
- },
- "node_modules/@vercel/static-config": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@vercel/static-config/-/static-config-3.0.0.tgz",
- "integrity": "sha512-2qtvcBJ1bGY0dYGYh3iM7yGKkk971FujLEDXzuW5wcZsPr1GSEjO/w2iSr3qve6nDDtBImsGoDEnus5FI4+fIw==",
- "license": "Apache-2.0",
- "dependencies": {
- "ajv": "8.6.3",
- "json-schema-to-ts": "1.6.4",
- "ts-morph": "12.0.0"
- }
- },
- "node_modules/@vercel/static-config/node_modules/ajv": {
- "version": "8.6.3",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz",
- "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/@vercel/static-config/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "license": "MIT"
- },
- "node_modules/@xmldom/xmldom": {
- "version": "0.9.8",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.8.tgz",
- "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==",
- "license": "MIT",
- "engines": {
- "node": ">=14.6"
- }
- },
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "license": "ISC"
- },
- "node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "license": "MIT",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
- "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "license": "MIT",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "license": "MIT"
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
- "license": "ISC"
- },
- "node_modules/are-we-there-yet": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
- "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
- "deprecated": "This package is no longer supported.",
- "license": "ISC",
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "license": "MIT"
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "license": "Python-2.0"
- },
- "node_modules/array-iterate": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz",
- "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/as-table": {
- "version": "1.0.55",
- "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz",
- "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==",
- "license": "MIT",
- "dependencies": {
- "printable-characters": "^1.0.42"
- }
- },
- "node_modules/ast-types": {
- "version": "0.14.2",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz",
- "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/astring": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz",
- "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==",
- "license": "MIT",
- "bin": {
- "astring": "bin/astring"
- }
- },
- "node_modules/async-listen": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/async-listen/-/async-listen-1.2.0.tgz",
- "integrity": "sha512-CcEtRh/oc9Jc4uWeUwdpG/+Mb2YUHKmdaTf0gUr7Wa+bfp4xx70HOb3RuSTJMvqKNB1TkdTfjLdrcz2X4rkkZA==",
- "license": "MIT"
- },
- "node_modules/async-sema": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz",
- "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==",
- "license": "MIT"
- },
- "node_modules/bail": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
- "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "license": "MIT"
- },
- "node_modules/better-react-mathjax": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/better-react-mathjax/-/better-react-mathjax-2.3.0.tgz",
- "integrity": "sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w==",
- "license": "MIT",
- "dependencies": {
- "mathjax-full": "^3.2.2"
- },
- "peerDependencies": {
- "react": ">=16.8"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "license": "MIT",
- "dependencies": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "node_modules/blake3-wasm": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz",
- "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/brace-expansion": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
- "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
- "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001726",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz",
- "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/ccount": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
- "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/chalk": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
- "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
- "license": "MIT",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/character-entities": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
- "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-html4": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
- "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-legacy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
- "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-reference-invalid": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
- "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/chevrotain": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
- "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@chevrotain/cst-dts-gen": "11.0.3",
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/regexp-to-ast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "@chevrotain/utils": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/chevrotain-allstar": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
- "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
- "license": "MIT",
- "dependencies": {
- "lodash-es": "^4.17.21"
- },
- "peerDependencies": {
- "chevrotain": "^11.0.0"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "license": "ISC"
- },
- "node_modules/client-only": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
- "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
- "license": "MIT"
- },
- "node_modules/clipboardy": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz",
- "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==",
- "license": "MIT",
- "dependencies": {
- "execa": "^8.0.1",
- "is-wsl": "^3.1.0",
- "is64bit": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/code-block-writer": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz",
- "integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==",
- "license": "MIT"
- },
- "node_modules/collapse-white-space": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
- "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/color": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
- "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1",
- "color-string": "^1.9.0"
- },
- "engines": {
- "node": ">=12.5.0"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "license": "MIT",
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "license": "ISC",
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/commander": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
- "license": "MIT",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/compute-scroll-into-view": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz",
- "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==",
- "license": "MIT"
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "license": "MIT"
- },
- "node_modules/confbox": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
- "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
- "license": "MIT"
- },
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "license": "ISC"
- },
- "node_modules/content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/convert-hrtime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz",
- "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cose-base": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz",
- "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==",
- "license": "MIT",
- "dependencies": {
- "layout-base": "^1.0.0"
- }
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "license": "MIT"
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/cytoscape": {
- "version": "3.32.0",
- "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.32.0.tgz",
- "integrity": "sha512-5JHBC9n75kz5851jeklCPmZWcg3hUe6sjqJvyk3+hVqFaKcHwHgxsjeN1yLmggoUc6STbtm9/NQyabQehfjvWQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/cytoscape-cose-bilkent": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz",
- "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==",
- "license": "MIT",
- "dependencies": {
- "cose-base": "^1.0.0"
- },
- "peerDependencies": {
- "cytoscape": "^3.2.0"
- }
- },
- "node_modules/cytoscape-fcose": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz",
- "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==",
- "license": "MIT",
- "dependencies": {
- "cose-base": "^2.2.0"
- },
- "peerDependencies": {
- "cytoscape": "^3.2.0"
- }
- },
- "node_modules/cytoscape-fcose/node_modules/cose-base": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz",
- "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==",
- "license": "MIT",
- "dependencies": {
- "layout-base": "^2.0.0"
- }
- },
- "node_modules/cytoscape-fcose/node_modules/layout-base": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz",
- "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==",
- "license": "MIT"
- },
- "node_modules/d3": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
- "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "3",
- "d3-axis": "3",
- "d3-brush": "3",
- "d3-chord": "3",
- "d3-color": "3",
- "d3-contour": "4",
- "d3-delaunay": "6",
- "d3-dispatch": "3",
- "d3-drag": "3",
- "d3-dsv": "3",
- "d3-ease": "3",
- "d3-fetch": "3",
- "d3-force": "3",
- "d3-format": "3",
- "d3-geo": "3",
- "d3-hierarchy": "3",
- "d3-interpolate": "3",
- "d3-path": "3",
- "d3-polygon": "3",
- "d3-quadtree": "3",
- "d3-random": "3",
- "d3-scale": "4",
- "d3-scale-chromatic": "3",
- "d3-selection": "3",
- "d3-shape": "3",
- "d3-time": "3",
- "d3-time-format": "4",
- "d3-timer": "3",
- "d3-transition": "3",
- "d3-zoom": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-array": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
- "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
- "license": "ISC",
- "dependencies": {
- "internmap": "1 - 2"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-axis": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
- "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-brush": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
- "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "3",
- "d3-transition": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-chord": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
- "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
- "license": "ISC",
- "dependencies": {
- "d3-path": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-color": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
- "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-contour": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
- "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "^3.2.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
- "license": "ISC",
- "dependencies": {
- "delaunator": "5"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dispatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
- "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-drag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
- "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-selection": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dsv": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
- "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
- "license": "ISC",
- "dependencies": {
- "commander": "7",
- "iconv-lite": "0.6",
- "rw": "1"
- },
- "bin": {
- "csv2json": "bin/dsv2json.js",
- "csv2tsv": "bin/dsv2dsv.js",
- "dsv2dsv": "bin/dsv2dsv.js",
- "dsv2json": "bin/dsv2json.js",
- "json2csv": "bin/json2dsv.js",
- "json2dsv": "bin/json2dsv.js",
- "json2tsv": "bin/json2dsv.js",
- "tsv2csv": "bin/dsv2dsv.js",
- "tsv2json": "bin/dsv2json.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dsv/node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/d3-ease": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
- "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-fetch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
- "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
- "license": "ISC",
- "dependencies": {
- "d3-dsv": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-force": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
- "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-quadtree": "1 - 3",
- "d3-timer": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-format": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
- "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-geo": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
- "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2.5.0 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-hierarchy": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
- "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-interpolate": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
- "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-path": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
- "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-polygon": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
- "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-quadtree": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
- "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-random": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
- "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-sankey": {
- "version": "0.12.3",
- "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz",
- "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "d3-array": "1 - 2",
- "d3-shape": "^1.2.0"
- }
- },
- "node_modules/d3-sankey/node_modules/d3-array": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
- "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "internmap": "^1.0.0"
- }
- },
- "node_modules/d3-sankey/node_modules/d3-path": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
- "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
- "license": "BSD-3-Clause"
- },
- "node_modules/d3-sankey/node_modules/d3-shape": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
- "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "d3-path": "1"
- }
- },
- "node_modules/d3-sankey/node_modules/internmap": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
- "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==",
- "license": "ISC"
- },
- "node_modules/d3-scale": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
- "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2.10.0 - 3",
- "d3-format": "1 - 3",
- "d3-interpolate": "1.2.0 - 3",
- "d3-time": "2.1.1 - 3",
- "d3-time-format": "2 - 4"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-scale-chromatic": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
- "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3",
- "d3-interpolate": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-selection": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
- "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-shape": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
- "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
- "license": "ISC",
- "dependencies": {
- "d3-path": "^3.1.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
- "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time-format": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
- "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
- "license": "ISC",
- "dependencies": {
- "d3-time": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-timer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
- "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-transition": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
- "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3",
- "d3-dispatch": "1 - 3",
- "d3-ease": "1 - 3",
- "d3-interpolate": "1 - 3",
- "d3-timer": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "d3-selection": "2 - 3"
- }
- },
- "node_modules/d3-zoom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
- "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "2 - 3",
- "d3-transition": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/dagre-d3-es": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz",
- "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==",
- "license": "MIT",
- "dependencies": {
- "d3": "^7.9.0",
- "lodash-es": "^4.17.21"
- }
- },
- "node_modules/data-uri-to-buffer": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz",
- "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==",
- "license": "MIT"
- },
- "node_modules/dayjs": {
- "version": "1.11.13",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
- "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
- "license": "MIT"
- },
- "node_modules/debug": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decode-named-character-reference": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz",
- "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==",
- "license": "MIT",
- "dependencies": {
- "character-entities": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/defu": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
- "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/delaunator": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
- "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
- "license": "ISC",
- "dependencies": {
- "robust-predicates": "^3.0.2"
- }
- },
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
- "license": "MIT"
- },
- "node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
- "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/devlop": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
- "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
- "license": "MIT",
- "dependencies": {
- "dequal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/dompurify": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz",
- "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==",
- "license": "(MPL-2.0 OR Apache-2.0)",
- "optionalDependencies": {
- "@types/trusted-types": "^2.0.7"
- }
- },
- "node_modules/edge-runtime": {
- "version": "2.5.7",
- "resolved": "https://registry.npmjs.org/edge-runtime/-/edge-runtime-2.5.7.tgz",
- "integrity": "sha512-gA4qSVP0sNwJlkdQ2nahDPASlSl8twUd17o+JolPa1EtXpLTGzIpOETvodgJwXIxa+zaD8bnAXCdsWrx2PhlVQ==",
- "license": "MPL-2.0",
- "dependencies": {
- "@edge-runtime/format": "2.2.0",
- "@edge-runtime/ponyfill": "2.4.1",
- "@edge-runtime/vm": "3.1.7",
- "async-listen": "3.0.1",
- "mri": "1.2.0",
- "picocolors": "1.0.0",
- "pretty-ms": "7.0.1",
- "signal-exit": "4.0.2",
- "time-span": "4.0.0"
- },
- "bin": {
- "edge-runtime": "dist/cli/index.js"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/edge-runtime/node_modules/async-listen": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/async-listen/-/async-listen-3.0.1.tgz",
- "integrity": "sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA==",
- "license": "MIT",
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/edge-runtime/node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "license": "ISC"
- },
- "node_modules/edge-runtime/node_modules/signal-exit": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
- "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/emoji-regex-xs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz",
- "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==",
- "license": "MIT"
- },
- "node_modules/end-of-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz",
- "integrity": "sha512-EoulkdKF/1xa92q25PbjuDcgJ9RDHYU2Rs3SCIvs2/dSQ3BpmxneNHmA/M7fe60M3PrV7nNGTTNbkK62l6vXiQ==",
- "license": "MIT",
- "dependencies": {
- "once": "~1.3.0"
- }
- },
- "node_modules/end-of-stream/node_modules/once": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
- "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==",
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/entities": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/esast-util-from-estree": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz",
- "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "devlop": "^1.0.0",
- "estree-util-visit": "^2.0.0",
- "unist-util-position-from-estree": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/esast-util-from-js": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz",
- "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "acorn": "^8.0.0",
- "esast-util-from-estree": "^2.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/esbuild": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz",
- "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==",
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/android-arm": "0.15.18",
- "@esbuild/linux-loong64": "0.15.18",
- "esbuild-android-64": "0.15.18",
- "esbuild-android-arm64": "0.15.18",
- "esbuild-darwin-64": "0.15.18",
- "esbuild-darwin-arm64": "0.15.18",
- "esbuild-freebsd-64": "0.15.18",
- "esbuild-freebsd-arm64": "0.15.18",
- "esbuild-linux-32": "0.15.18",
- "esbuild-linux-64": "0.15.18",
- "esbuild-linux-arm": "0.15.18",
- "esbuild-linux-arm64": "0.15.18",
- "esbuild-linux-mips64le": "0.15.18",
- "esbuild-linux-ppc64le": "0.15.18",
- "esbuild-linux-riscv64": "0.15.18",
- "esbuild-linux-s390x": "0.15.18",
- "esbuild-netbsd-64": "0.15.18",
- "esbuild-openbsd-64": "0.15.18",
- "esbuild-sunos-64": "0.15.18",
- "esbuild-windows-32": "0.15.18",
- "esbuild-windows-64": "0.15.18",
- "esbuild-windows-arm64": "0.15.18"
- }
- },
- "node_modules/esbuild-android-64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz",
- "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-android-arm64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz",
- "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-darwin-64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz",
- "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-darwin-arm64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz",
- "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-freebsd-64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz",
- "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-freebsd-arm64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz",
- "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-32": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz",
- "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz",
- "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-arm": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz",
- "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-arm64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz",
- "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-mips64le": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz",
- "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==",
- "cpu": [
- "mips64el"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-ppc64le": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz",
- "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==",
- "cpu": [
- "ppc64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-riscv64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz",
- "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==",
- "cpu": [
- "riscv64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-s390x": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz",
- "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==",
- "cpu": [
- "s390x"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-netbsd-64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz",
- "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-openbsd-64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz",
- "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-sunos-64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz",
- "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-32": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz",
- "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==",
- "cpu": [
- "ia32"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz",
- "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==",
- "cpu": [
- "x64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-arm64": {
- "version": "0.15.18",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz",
- "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==",
- "cpu": [
- "arm64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/esm": {
- "version": "3.2.25",
- "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
- "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "license": "BSD-2-Clause",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/estree-util-attach-comments": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz",
- "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-build-jsx": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz",
- "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "estree-walker": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-is-identifier-name": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
- "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-scope": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz",
- "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-to-js": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz",
- "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "astring": "^1.8.0",
- "source-map": "^0.7.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-value-to-estree": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz",
- "integrity": "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/remcohaszing"
- }
- },
- "node_modules/estree-util-visit": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz",
- "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/events-intercept": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/events-intercept/-/events-intercept-2.0.0.tgz",
- "integrity": "sha512-blk1va0zol9QOrdZt0rFXo5KMkNPVSp92Eju/Qz8THwKWKRKeE0T8Br/1aW6+Edkyq9xHYgYxn2QtOnUKPUp+Q==",
- "license": "MIT"
- },
- "node_modules/execa": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^8.0.1",
- "human-signals": "^5.0.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^4.1.0",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": ">=16.17"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/exit-hook": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz",
- "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/exsolve": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz",
- "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==",
- "license": "MIT"
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "license": "MIT"
- },
- "node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "license": "MIT"
- },
- "node_modules/fast-glob": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
- "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.8"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "license": "MIT",
- "optional": true
- },
- "node_modules/fastq": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
- "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fault": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
- "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
- "license": "MIT",
- "dependencies": {
- "format": "^0.2.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
- "license": "MIT",
- "dependencies": {
- "pend": "~1.2.0"
- }
- },
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "license": "MIT"
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/flexsearch": {
- "version": "0.7.43",
- "resolved": "https://registry.npmjs.org/flexsearch/-/flexsearch-0.7.43.tgz",
- "integrity": "sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==",
- "license": "Apache-2.0"
- },
- "node_modules/format": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
- "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
- "engines": {
- "node": ">=0.4.x"
- }
- },
- "node_modules/fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
- }
- },
- "node_modules/fs-minipass": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
- "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
- "license": "ISC",
- "dependencies": {
- "minipass": "^2.6.0"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "license": "ISC"
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/gauge": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
- "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
- "deprecated": "This package is no longer supported.",
- "license": "ISC",
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.2",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.1",
- "object-assign": "^4.1.1",
- "signal-exit": "^3.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/gauge/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "license": "ISC"
- },
- "node_modules/generic-pool": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.4.2.tgz",
- "integrity": "sha512-H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/get-source": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz",
- "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==",
- "license": "Unlicense",
- "dependencies": {
- "data-uri-to-buffer": "^2.0.0",
- "source-map": "^0.6.1"
- }
- },
- "node_modules/get-source/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/get-stream": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/github-slugger": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
- "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
- "license": "ISC"
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "license": "BSD-2-Clause"
- },
- "node_modules/globals": {
- "version": "15.15.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
- "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "license": "ISC"
- },
- "node_modules/gray-matter": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
- "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
- "license": "MIT",
- "dependencies": {
- "js-yaml": "^3.13.1",
- "kind-of": "^6.0.2",
- "section-matter": "^1.0.0",
- "strip-bom-string": "^1.0.0"
- },
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/gray-matter/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/gray-matter/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "license": "MIT",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/hachure-fill": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz",
- "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==",
- "license": "MIT"
- },
- "node_modules/has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "license": "ISC"
- },
- "node_modules/hast-util-from-dom": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz",
- "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==",
- "license": "ISC",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "hastscript": "^9.0.0",
- "web-namespaces": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-from-html": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz",
- "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "devlop": "^1.1.0",
- "hast-util-from-parse5": "^8.0.0",
- "parse5": "^7.0.0",
- "vfile": "^6.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-from-html-isomorphic": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz",
- "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "hast-util-from-dom": "^5.0.0",
- "hast-util-from-html": "^2.0.0",
- "unist-util-remove-position": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-from-parse5": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz",
- "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "devlop": "^1.0.0",
- "hastscript": "^9.0.0",
- "property-information": "^7.0.0",
- "vfile": "^6.0.0",
- "vfile-location": "^5.0.0",
- "web-namespaces": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-is-element": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz",
- "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-parse-selector": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
- "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-raw": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz",
- "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "@ungap/structured-clone": "^1.0.0",
- "hast-util-from-parse5": "^8.0.0",
- "hast-util-to-parse5": "^8.0.0",
- "html-void-elements": "^3.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "parse5": "^7.0.0",
- "unist-util-position": "^5.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0",
- "web-namespaces": "^2.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-estree": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz",
- "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "devlop": "^1.0.0",
- "estree-util-attach-comments": "^3.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "hast-util-whitespace": "^3.0.0",
- "mdast-util-mdx-expression": "^2.0.0",
- "mdast-util-mdx-jsx": "^3.0.0",
- "mdast-util-mdxjs-esm": "^2.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0",
- "style-to-js": "^1.0.0",
- "unist-util-position": "^5.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-html": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz",
- "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "ccount": "^2.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-whitespace": "^3.0.0",
- "html-void-elements": "^3.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0",
- "stringify-entities": "^4.0.0",
- "zwitch": "^2.0.4"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-jsx-runtime": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
- "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "hast-util-whitespace": "^3.0.0",
- "mdast-util-mdx-expression": "^2.0.0",
- "mdast-util-mdx-jsx": "^3.0.0",
- "mdast-util-mdxjs-esm": "^2.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0",
- "style-to-js": "^1.0.0",
- "unist-util-position": "^5.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-parse5": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
- "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "devlop": "^1.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0",
- "web-namespaces": "^2.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-parse5/node_modules/property-information": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
- "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-string": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz",
- "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-text": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz",
- "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "hast-util-is-element": "^3.0.0",
- "unist-util-find-after": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-whitespace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
- "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hastscript": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz",
- "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-parse-selector": "^4.0.0",
- "property-information": "^7.0.0",
- "space-separated-tokens": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/html-void-elements": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
- "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/http-errors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.4.0.tgz",
- "integrity": "sha512-oLjPqve1tuOl5aRhv8GK5eHpqP1C9fb+Ol+XTLjKfLltE44zdDbEdjPSbU7Ch5rSNsVFqZn97SrMmZLdu1/YMw==",
- "license": "MIT",
- "dependencies": {
- "inherits": "2.0.1",
- "statuses": ">= 1.2.1 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/http-errors/node_modules/inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==",
- "license": "ISC"
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "license": "MIT",
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/human-signals": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=16.17.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "license": "ISC"
- },
- "node_modules/inline-style-parser": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
- "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==",
- "license": "MIT"
- },
- "node_modules/internmap": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
- "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/is-alphabetical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
- "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-alphanumerical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
- "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
- "license": "MIT",
- "dependencies": {
- "is-alphabetical": "^2.0.0",
- "is-decimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
- "license": "MIT"
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-decimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
- "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-docker": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
- "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
- "license": "MIT",
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-hexadecimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
- "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-inside-container": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
- "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
- "license": "MIT",
- "dependencies": {
- "is-docker": "^3.0.0"
- },
- "bin": {
- "is-inside-container": "cli.js"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
- "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-wsl": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
- "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
- "license": "MIT",
- "dependencies": {
- "is-inside-container": "^1.0.0"
- },
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is64bit": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz",
- "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==",
- "license": "MIT",
- "dependencies": {
- "system-architecture": "^0.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "license": "MIT"
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "license": "ISC"
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "license": "MIT"
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/json-schema-to-ts": {
- "version": "1.6.4",
- "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-1.6.4.tgz",
- "integrity": "sha512-pR4yQ9DHz6itqswtHCm26mw45FSNfQ9rEQjosaZErhn5J3J2sIViQiz8rDaezjKAhFGpmsoczYVBgGHzFw/stA==",
- "license": "MIT",
- "dependencies": {
- "@types/json-schema": "^7.0.6",
- "ts-toolbelt": "^6.15.5"
- }
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "license": "MIT",
- "optional": true
- },
- "node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "license": "MIT",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/katex": {
- "version": "0.16.22",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz",
- "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==",
- "funding": [
- "https://opencollective.com/katex",
- "https://github.com/sponsors/katex"
- ],
- "license": "MIT",
- "dependencies": {
- "commander": "^8.3.0"
- },
- "bin": {
- "katex": "cli.js"
- }
- },
- "node_modules/katex/node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "license": "MIT",
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/khroma": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz",
- "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/kolorist": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
- "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
- "license": "MIT"
- },
- "node_modules/langium": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz",
- "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==",
- "license": "MIT",
- "dependencies": {
- "chevrotain": "~11.0.3",
- "chevrotain-allstar": "~0.3.0",
- "vscode-languageserver": "~9.0.1",
- "vscode-languageserver-textdocument": "~1.0.11",
- "vscode-uri": "~3.0.8"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/layout-base": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",
- "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==",
- "license": "MIT"
- },
- "node_modules/local-pkg": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz",
- "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==",
- "license": "MIT",
- "dependencies": {
- "mlly": "^1.7.4",
- "pkg-types": "^2.0.1",
- "quansync": "^0.2.8"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/lodash-es": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
- "license": "MIT"
- },
- "node_modules/longest-streak": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
- "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/lru-cache/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "license": "ISC"
- },
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "license": "MIT",
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "license": "ISC"
- },
- "node_modules/markdown-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
- "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/markdown-table": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
- "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/marked": {
- "version": "15.0.12",
- "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz",
- "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==",
- "license": "MIT",
- "bin": {
- "marked": "bin/marked.js"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/mathjax-full": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz",
- "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==",
- "license": "Apache-2.0",
- "dependencies": {
- "esm": "^3.2.25",
- "mhchemparser": "^4.1.0",
- "mj-context-menu": "^0.6.1",
- "speech-rule-engine": "^4.0.6"
- }
- },
- "node_modules/mdast-util-find-and-replace": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz",
- "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "escape-string-regexp": "^5.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-from-markdown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
- "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "decode-named-character-reference": "^1.0.0",
- "devlop": "^1.0.0",
- "mdast-util-to-string": "^4.0.0",
- "micromark": "^4.0.0",
- "micromark-util-decode-numeric-character-reference": "^2.0.0",
- "micromark-util-decode-string": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unist-util-stringify-position": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-frontmatter": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz",
- "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "escape-string-regexp": "^5.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "micromark-extension-frontmatter": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz",
- "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==",
- "license": "MIT",
- "dependencies": {
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-gfm-autolink-literal": "^2.0.0",
- "mdast-util-gfm-footnote": "^2.0.0",
- "mdast-util-gfm-strikethrough": "^2.0.0",
- "mdast-util-gfm-table": "^2.0.0",
- "mdast-util-gfm-task-list-item": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-autolink-literal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
- "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "ccount": "^2.0.0",
- "devlop": "^1.0.0",
- "mdast-util-find-and-replace": "^3.0.0",
- "micromark-util-character": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-footnote": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz",
- "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.1.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-strikethrough": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
- "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-table": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
- "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "markdown-table": "^3.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-task-list-item": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
- "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-math": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz",
- "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.1.0",
- "unist-util-remove-position": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdx": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
- "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
- "license": "MIT",
- "dependencies": {
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-mdx-expression": "^2.0.0",
- "mdast-util-mdx-jsx": "^3.0.0",
- "mdast-util-mdxjs-esm": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdx-expression": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
- "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdx-jsx": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
- "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "ccount": "^2.0.0",
- "devlop": "^1.1.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "parse-entities": "^4.0.0",
- "stringify-entities": "^4.0.0",
- "unist-util-stringify-position": "^4.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdxjs-esm": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
- "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-phrasing": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
- "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-hast": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
- "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "@ungap/structured-clone": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "trim-lines": "^3.0.0",
- "unist-util-position": "^5.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-markdown": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
- "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-phrasing": "^4.0.0",
- "mdast-util-to-string": "^4.0.0",
- "micromark-util-classify-character": "^2.0.0",
- "micromark-util-decode-string": "^2.0.0",
- "unist-util-visit": "^5.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
- "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "license": "MIT"
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/mermaid": {
- "version": "11.8.0",
- "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.8.0.tgz",
- "integrity": "sha512-uAZUwnBiqREZcUrFw3G5iQ5Pj3hTYUP95EZc3ec/nGBzHddJZydzYGE09tGZDBS1VoSoDn0symZ85FmypSTo5g==",
- "license": "MIT",
- "dependencies": {
- "@braintree/sanitize-url": "^7.0.4",
- "@iconify/utils": "^2.1.33",
- "@mermaid-js/parser": "^0.6.0",
- "@types/d3": "^7.4.3",
- "cytoscape": "^3.29.3",
- "cytoscape-cose-bilkent": "^4.1.0",
- "cytoscape-fcose": "^2.2.0",
- "d3": "^7.9.0",
- "d3-sankey": "^0.12.3",
- "dagre-d3-es": "7.0.11",
- "dayjs": "^1.11.13",
- "dompurify": "^3.2.5",
- "katex": "^0.16.9",
- "khroma": "^2.1.0",
- "lodash-es": "^4.17.21",
- "marked": "^15.0.7",
- "roughjs": "^4.6.6",
- "stylis": "^4.3.6",
- "ts-dedent": "^2.2.0",
- "uuid": "^11.1.0"
- }
- },
- "node_modules/mhchemparser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz",
- "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==",
- "license": "Apache-2.0"
- },
- "node_modules/micro": {
- "version": "9.3.5-canary.3",
- "resolved": "https://registry.npmjs.org/micro/-/micro-9.3.5-canary.3.tgz",
- "integrity": "sha512-viYIo9PefV+w9dvoIBh1gI44Mvx1BOk67B4BpC2QK77qdY0xZF0Q+vWLt/BII6cLkIc8rLmSIcJaB/OrXXKe1g==",
- "license": "MIT",
- "dependencies": {
- "arg": "4.1.0",
- "content-type": "1.0.4",
- "raw-body": "2.4.1"
- },
- "bin": {
- "micro": "bin/micro.js"
- },
- "engines": {
- "node": ">= 8.0.0"
- }
- },
- "node_modules/micro/node_modules/arg": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
- "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==",
- "license": "MIT"
- },
- "node_modules/micromark": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz",
- "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@types/debug": "^4.0.0",
- "debug": "^4.0.0",
- "decode-named-character-reference": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-core-commonmark": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-combine-extensions": "^2.0.0",
- "micromark-util-decode-numeric-character-reference": "^2.0.0",
- "micromark-util-encode": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-resolve-all": "^2.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "micromark-util-subtokenize": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-core-commonmark": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
- "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-factory-destination": "^2.0.0",
- "micromark-factory-label": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-factory-title": "^2.0.0",
- "micromark-factory-whitespace": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-classify-character": "^2.0.0",
- "micromark-util-html-tag-name": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-resolve-all": "^2.0.0",
- "micromark-util-subtokenize": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-frontmatter": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz",
- "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==",
- "license": "MIT",
- "dependencies": {
- "fault": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
- "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
- "license": "MIT",
- "dependencies": {
- "micromark-extension-gfm-autolink-literal": "^2.0.0",
- "micromark-extension-gfm-footnote": "^2.0.0",
- "micromark-extension-gfm-strikethrough": "^2.0.0",
- "micromark-extension-gfm-table": "^2.0.0",
- "micromark-extension-gfm-tagfilter": "^2.0.0",
- "micromark-extension-gfm-task-list-item": "^2.0.0",
- "micromark-util-combine-extensions": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-autolink-literal": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
- "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-footnote": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
- "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-core-commonmark": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-strikethrough": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
- "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-classify-character": "^2.0.0",
- "micromark-util-resolve-all": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-table": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
- "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-tagfilter": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
- "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
- "license": "MIT",
- "dependencies": {
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-task-list-item": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
- "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-math": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz",
- "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==",
- "license": "MIT",
- "dependencies": {
- "@types/katex": "^0.16.0",
- "devlop": "^1.0.0",
- "katex": "^0.16.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdx-expression": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz",
- "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-factory-mdx-expression": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-mdx-jsx": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz",
- "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "micromark-factory-mdx-expression": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdx-md": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz",
- "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==",
- "license": "MIT",
- "dependencies": {
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdxjs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz",
- "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==",
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.0.0",
- "acorn-jsx": "^5.0.0",
- "micromark-extension-mdx-expression": "^3.0.0",
- "micromark-extension-mdx-jsx": "^3.0.0",
- "micromark-extension-mdx-md": "^2.0.0",
- "micromark-extension-mdxjs-esm": "^3.0.0",
- "micromark-util-combine-extensions": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdxjs-esm": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz",
- "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-core-commonmark": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unist-util-position-from-estree": "^2.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-factory-destination": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
- "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-label": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
- "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-mdx-expression": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz",
- "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unist-util-position-from-estree": "^2.0.0",
- "vfile-message": "^4.0.0"
- }
- },
- "node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-title": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
- "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-whitespace": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
- "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-chunked": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
- "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-classify-character": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
- "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-combine-extensions": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
- "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-decode-numeric-character-reference": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
- "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-decode-string": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
- "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-decode-numeric-character-reference": "^2.0.0",
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-encode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
- "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-events-to-acorn": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz",
- "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/unist": "^3.0.0",
- "devlop": "^1.0.0",
- "estree-util-visit": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "vfile-message": "^4.0.0"
- }
- },
- "node_modules/micromark-util-html-tag-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
- "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-normalize-identifier": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
- "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-resolve-all": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
- "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-sanitize-uri": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
- "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-encode": "^2.0.0",
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-subtokenize": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
- "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-types": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
- "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
- "license": "MIT",
- "peer": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/mimic-fn": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/miniflare": {
- "version": "3.20250408.2",
- "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20250408.2.tgz",
- "integrity": "sha512-uTs7cGWFErgJTKtBdmtctwhuoxniuCQqDT8+xaEiJdEC8d+HsaZVYfZwIX2NuSmdAiHMe7NtbdZYjFMbIXtJsQ==",
- "license": "MIT",
- "dependencies": {
- "@cspotcode/source-map-support": "0.8.1",
- "acorn": "8.14.0",
- "acorn-walk": "8.3.2",
- "exit-hook": "2.2.1",
- "glob-to-regexp": "0.4.1",
- "stoppable": "1.1.0",
- "undici": "^5.28.5",
- "workerd": "1.20250408.0",
- "ws": "8.18.0",
- "youch": "3.3.4",
- "zod": "3.22.3"
- },
- "bin": {
- "miniflare": "bootstrap.js"
- },
- "engines": {
- "node": ">=16.13"
- }
- },
- "node_modules/miniflare/node_modules/acorn": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
- "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
- "license": "ISC",
- "dependencies": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "node_modules/minizlib": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
- "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
- "license": "MIT",
- "dependencies": {
- "minipass": "^2.9.0"
- }
- },
- "node_modules/mj-context-menu": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz",
- "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==",
- "license": "Apache-2.0"
- },
- "node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "license": "MIT",
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/mlly": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
- "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==",
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.14.0",
- "pathe": "^2.0.1",
- "pkg-types": "^1.3.0",
- "ufo": "^1.5.4"
- }
- },
- "node_modules/mlly/node_modules/confbox": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
- "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
- "license": "MIT"
- },
- "node_modules/mlly/node_modules/pkg-types": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
- "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
- "license": "MIT",
- "dependencies": {
- "confbox": "^0.1.8",
- "mlly": "^1.7.4",
- "pathe": "^2.0.1"
- }
- },
- "node_modules/mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "license": "MIT"
- },
- "node_modules/mustache": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
- "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
- "license": "MIT",
- "bin": {
- "mustache": "bin/mustache"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/negotiator": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
- "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/next": {
- "version": "15.3.5",
- "resolved": "https://registry.npmjs.org/next/-/next-15.3.5.tgz",
- "integrity": "sha512-RkazLBMMDJSJ4XZQ81kolSpwiCt907l0xcgcpF4xC2Vml6QVcPNXW0NQRwQ80FFtSn7UM52XN0anaw8TEJXaiw==",
- "license": "MIT",
- "dependencies": {
- "@next/env": "15.3.5",
- "@swc/counter": "0.1.3",
- "@swc/helpers": "0.5.15",
- "busboy": "1.6.0",
- "caniuse-lite": "^1.0.30001579",
- "postcss": "8.4.31",
- "styled-jsx": "5.1.6"
- },
- "bin": {
- "next": "dist/bin/next"
- },
- "engines": {
- "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
- },
- "optionalDependencies": {
- "@next/swc-darwin-arm64": "15.3.5",
- "@next/swc-darwin-x64": "15.3.5",
- "@next/swc-linux-arm64-gnu": "15.3.5",
- "@next/swc-linux-arm64-musl": "15.3.5",
- "@next/swc-linux-x64-gnu": "15.3.5",
- "@next/swc-linux-x64-musl": "15.3.5",
- "@next/swc-win32-arm64-msvc": "15.3.5",
- "@next/swc-win32-x64-msvc": "15.3.5",
- "sharp": "^0.34.1"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.1.0",
- "@playwright/test": "^1.41.2",
- "babel-plugin-react-compiler": "*",
- "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
- "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
- "sass": "^1.3.0"
- },
- "peerDependenciesMeta": {
- "@opentelemetry/api": {
- "optional": true
- },
- "@playwright/test": {
- "optional": true
- },
- "babel-plugin-react-compiler": {
- "optional": true
- },
- "sass": {
- "optional": true
- }
- }
- },
- "node_modules/next-themes": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz",
- "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==",
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc",
- "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc"
- }
- },
- "node_modules/nextra": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nextra/-/nextra-3.3.1.tgz",
- "integrity": "sha512-jiwj+LfUPHHeAxJAEqFuglxnbjFgzAOnDWFsjv7iv3BWiX8OksDwd3I2Sv3j2zba00iIBDEPdNeylfzTtTLZVg==",
- "license": "MIT",
- "dependencies": {
- "@formatjs/intl-localematcher": "^0.5.4",
- "@headlessui/react": "^2.1.2",
- "@mdx-js/mdx": "^3.0.0",
- "@mdx-js/react": "^3.0.0",
- "@napi-rs/simple-git": "^0.1.9",
- "@shikijs/twoslash": "^1.0.0",
- "@theguild/remark-mermaid": "^0.1.3",
- "@theguild/remark-npm2yarn": "^0.3.2",
- "better-react-mathjax": "^2.0.3",
- "clsx": "^2.0.0",
- "estree-util-to-js": "^2.0.0",
- "estree-util-value-to-estree": "^3.0.1",
- "github-slugger": "^2.0.0",
- "graceful-fs": "^4.2.11",
- "gray-matter": "^4.0.3",
- "hast-util-to-estree": "^3.1.0",
- "katex": "^0.16.9",
- "mdast-util-from-markdown": "^2.0.1",
- "mdast-util-gfm": "^3.0.0",
- "mdast-util-to-hast": "^13.2.0",
- "negotiator": "^1.0.0",
- "p-limit": "^6.0.0",
- "react-medium-image-zoom": "^5.2.12",
- "rehype-katex": "^7.0.0",
- "rehype-pretty-code": "0.14.0",
- "rehype-raw": "^7.0.0",
- "remark-frontmatter": "^5.0.0",
- "remark-gfm": "^4.0.0",
- "remark-math": "^6.0.0",
- "remark-reading-time": "^2.0.1",
- "remark-smartypants": "^3.0.0",
- "shiki": "^1.0.0",
- "slash": "^5.1.0",
- "title": "^4.0.0",
- "unist-util-remove": "^4.0.0",
- "unist-util-visit": "^5.0.0",
- "yaml": "^2.3.2",
- "zod": "^3.22.3",
- "zod-validation-error": "^3.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "next": ">=13",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/nextra-theme-docs": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nextra-theme-docs/-/nextra-theme-docs-3.3.1.tgz",
- "integrity": "sha512-P305m2UcW2IDyQhjrcAu0qpdPArikofinABslUCAyixYShsmcdDRUhIMd4QBHYru4gQuVjGWX9PhWZZCbNvzDQ==",
- "license": "MIT",
- "dependencies": {
- "@headlessui/react": "^2.1.2",
- "clsx": "^2.0.0",
- "escape-string-regexp": "^5.0.0",
- "flexsearch": "^0.7.43",
- "next-themes": "^0.4.0",
- "scroll-into-view-if-needed": "^3.1.0",
- "zod": "^3.22.3"
- },
- "peerDependencies": {
- "next": ">=13",
- "nextra": "3.3.1",
- "react": ">=18",
- "react-dom": ">=18"
- }
- },
- "node_modules/nextra/node_modules/zod": {
- "version": "3.25.72",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.72.tgz",
- "integrity": "sha512-Cl+fe4dNL4XumOBNBsr0lHfA80PQiZXHI4xEMTEr8gt6aGz92t3lBA32e71j9+JeF/VAYvdfBnuwJs+BMx/BrA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/nextra/node_modules/zod-validation-error": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.5.2.tgz",
- "integrity": "sha512-mdi7YOLtram5dzJ5aDtm1AG9+mxRma1iaMrZdYIpFO7epdKBUwLHIxTF8CPDeCQ828zAXYtizrKlEJAtzgfgrw==",
- "license": "MIT",
- "engines": {
- "node": ">=18.0.0"
- },
- "peerDependencies": {
- "zod": "^3.25.0"
- }
- },
- "node_modules/nlcst-to-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz",
- "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==",
- "license": "MIT",
- "dependencies": {
- "@types/nlcst": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-gyp-build": {
- "version": "4.8.4",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
- "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
- "license": "MIT",
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
- }
- },
- "node_modules/nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
- "license": "ISC",
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
- "license": "MIT",
- "dependencies": {
- "path-key": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm-run-path/node_modules/path-key": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/npm-to-yarn": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-3.0.1.tgz",
- "integrity": "sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==",
- "license": "MIT",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/nebrelbug/npm-to-yarn?sponsor=1"
- }
- },
- "node_modules/npmlog": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
- "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
- "deprecated": "This package is no longer supported.",
- "license": "ISC",
- "dependencies": {
- "are-we-there-yet": "^2.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^3.0.0",
- "set-blocking": "^2.0.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ohash": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz",
- "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/oniguruma-to-es": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-2.3.0.tgz",
- "integrity": "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex-xs": "^1.0.0",
- "regex": "^5.1.1",
- "regex-recursion": "^5.1.1"
- }
- },
- "node_modules/os-paths": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/os-paths/-/os-paths-4.4.0.tgz",
- "integrity": "sha512-wrAwOeXp1RRMFfQY8Sy7VaGVmPocaLwSFOYCGKSyo8qmJ+/yaafCl5BCA1IQZWqFSRBrKDYFeR9d/VyQzfH/jg==",
- "license": "MIT",
- "engines": {
- "node": ">= 6.0"
- }
- },
- "node_modules/p-finally": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
- "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-limit": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz",
- "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==",
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^1.1.1"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/package-manager-detector": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz",
- "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==",
- "license": "MIT"
- },
- "node_modules/package-manager-manager": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/package-manager-manager/-/package-manager-manager-0.2.0.tgz",
- "integrity": "sha512-V02gl0bafXJ2gcY6j+5IHM7UdnYwmF+2OsFZuqVcha6iMSStD4dpIOBOsypnUIwOi4jLcPz6RQuyifmAE3mG8g==",
- "license": "MIT",
- "dependencies": {
- "js-yaml": "^4.1.0",
- "shellac": "^0.8.0"
- }
- },
- "node_modules/parse-entities": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
- "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "character-entities-legacy": "^3.0.0",
- "character-reference-invalid": "^2.0.0",
- "decode-named-character-reference": "^1.0.0",
- "is-alphanumerical": "^2.0.0",
- "is-decimal": "^2.0.0",
- "is-hexadecimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/parse-entities/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "license": "MIT"
- },
- "node_modules/parse-latin": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz",
- "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==",
- "license": "MIT",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "@types/unist": "^3.0.0",
- "nlcst-to-string": "^4.0.0",
- "unist-util-modify-children": "^4.0.0",
- "unist-util-visit-children": "^3.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/parse-ms": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz",
- "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-numeric-range": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz",
- "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==",
- "license": "ISC"
- },
- "node_modules/parse5": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
- "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
- "license": "MIT",
- "dependencies": {
- "entities": "^6.0.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/path-browserify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
- "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
- "license": "MIT"
- },
- "node_modules/path-data-parser": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz",
- "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==",
- "license": "MIT"
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-match": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/path-match/-/path-match-1.2.4.tgz",
- "integrity": "sha512-UWlehEdqu36jmh4h5CWJ7tARp1OEVKGHKm6+dg9qMq5RKUTV5WJrGgaZ3dN2m7WFAXDbjlHzvJvL/IUpy84Ktw==",
- "deprecated": "This package is archived and no longer maintained. For support, visit https://github.com/expressjs/express/discussions",
- "license": "MIT",
- "dependencies": {
- "http-errors": "~1.4.0",
- "path-to-regexp": "^1.0.0"
- }
- },
- "node_modules/path-match/node_modules/path-to-regexp": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
- "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
- "license": "MIT",
- "dependencies": {
- "isarray": "0.0.1"
- }
- },
- "node_modules/path-to-regexp": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
- "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==",
- "license": "MIT"
- },
- "node_modules/pathe": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
- "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
- "license": "MIT"
- },
- "node_modules/pcre-to-regexp": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/pcre-to-regexp/-/pcre-to-regexp-1.1.0.tgz",
- "integrity": "sha512-KF9XxmUQJ2DIlMj3TqNqY1AWvyvTuIuq11CuuekxyaYMiFuMKGgQrePYMX5bXKLhLG3sDI4CsGAYHPaT7VV7+g==",
- "license": "MIT"
- },
- "node_modules/pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
- "license": "MIT"
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pkg-types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.2.0.tgz",
- "integrity": "sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==",
- "license": "MIT",
- "dependencies": {
- "confbox": "^0.2.2",
- "exsolve": "^1.0.7",
- "pathe": "^2.0.3"
- }
- },
- "node_modules/points-on-curve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz",
- "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==",
- "license": "MIT"
- },
- "node_modules/points-on-path": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz",
- "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==",
- "license": "MIT",
- "dependencies": {
- "path-data-parser": "0.1.0",
- "points-on-curve": "0.2.0"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/pretty-ms": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz",
- "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==",
- "license": "MIT",
- "dependencies": {
- "parse-ms": "^2.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/printable-characters": {
- "version": "1.0.42",
- "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz",
- "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==",
- "license": "Unlicense"
- },
- "node_modules/promisepipe": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/promisepipe/-/promisepipe-3.0.0.tgz",
- "integrity": "sha512-V6TbZDJ/ZswevgkDNpGt/YqNCiZP9ASfgU+p83uJE6NrGtvSGoOcHLiDCqkMs2+yg7F5qHdLV8d0aS8O26G/KA==",
- "license": "MIT"
- },
- "node_modules/property-information": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
- "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/pump": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz",
- "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==",
- "license": "MIT",
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/quansync": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz",
- "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/antfu"
- },
- {
- "type": "individual",
- "url": "https://github.com/sponsors/sxzz"
- }
- ],
- "license": "MIT"
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/raw-body": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
- "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.1.0",
- "http-errors": "1.7.3",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/raw-body/node_modules/http-errors": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
- "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
- "license": "MIT",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
- },
- "peerDependencies": {
- "react": "^18.3.1"
- }
- },
- "node_modules/react-medium-image-zoom": {
- "version": "5.2.14",
- "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.2.14.tgz",
- "integrity": "sha512-nfTVYcAUnBzXQpPDcZL+cG/e6UceYUIG+zDcnemL7jtAqbJjVVkA85RgneGtJeni12dTyiRPZVM6Szkmwd/o8w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/rpearce"
- }
- ],
- "license": "BSD-3-Clause",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/reading-time": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz",
- "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==",
- "license": "MIT"
- },
- "node_modules/recma-build-jsx": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz",
- "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-util-build-jsx": "^3.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recma-jsx": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz",
- "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==",
- "license": "MIT",
- "dependencies": {
- "acorn-jsx": "^5.0.0",
- "estree-util-to-js": "^2.0.0",
- "recma-parse": "^1.0.0",
- "recma-stringify": "^1.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recma-parse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz",
- "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "esast-util-from-js": "^2.0.0",
- "unified": "^11.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recma-stringify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz",
- "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-util-to-js": "^2.0.0",
- "unified": "^11.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/regex": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/regex/-/regex-5.1.1.tgz",
- "integrity": "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==",
- "license": "MIT",
- "dependencies": {
- "regex-utilities": "^2.3.0"
- }
- },
- "node_modules/regex-recursion": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-5.1.1.tgz",
- "integrity": "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==",
- "license": "MIT",
- "dependencies": {
- "regex": "^5.1.1",
- "regex-utilities": "^2.3.0"
- }
- },
- "node_modules/regex-utilities": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz",
- "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==",
- "license": "MIT"
- },
- "node_modules/reghex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/reghex/-/reghex-1.0.2.tgz",
- "integrity": "sha512-bYtyDmFGHxn1Y4gxIs12+AUQ1WRDNvaIhn6ZuKc5KUbSVcmm6U6vx/RA66s26xGhTWBErKKDKK7lorkvvIBB5g==",
- "license": "MIT"
- },
- "node_modules/rehype-katex": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz",
- "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/katex": "^0.16.0",
- "hast-util-from-html-isomorphic": "^2.0.0",
- "hast-util-to-text": "^4.0.0",
- "katex": "^0.16.0",
- "unist-util-visit-parents": "^6.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/rehype-parse": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz",
- "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "hast-util-from-html": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/rehype-pretty-code": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.14.0.tgz",
- "integrity": "sha512-hBeKF/Wkkf3zyUS8lal9RCUuhypDWLQc+h9UrP9Pav25FUm/AQAVh4m5gdvJxh4Oz+U+xKvdsV01p1LdvsZTiQ==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.4",
- "hast-util-to-string": "^3.0.0",
- "parse-numeric-range": "^1.3.0",
- "rehype-parse": "^9.0.0",
- "unified": "^11.0.5",
- "unist-util-visit": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "shiki": "^1.3.0"
- }
- },
- "node_modules/rehype-raw": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz",
- "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "hast-util-raw": "^9.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/rehype-recma": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz",
- "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/hast": "^3.0.0",
- "hast-util-to-estree": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-frontmatter": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz",
- "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-frontmatter": "^2.0.0",
- "micromark-extension-frontmatter": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-gfm": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz",
- "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-gfm": "^3.0.0",
- "micromark-extension-gfm": "^3.0.0",
- "remark-parse": "^11.0.0",
- "remark-stringify": "^11.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-math": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz",
- "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-math": "^3.0.0",
- "micromark-extension-math": "^3.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-mdx": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz",
- "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==",
- "license": "MIT",
- "dependencies": {
- "mdast-util-mdx": "^3.0.0",
- "micromark-extension-mdxjs": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-parse": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
- "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-reading-time": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/remark-reading-time/-/remark-reading-time-2.0.2.tgz",
- "integrity": "sha512-ILjIuR0dQQ8pELPgaFvz7ralcSN62rD/L1pTUJgWb4gfua3ZwYEI8mnKGxEQCbrXSUF/OvycTkcUbifGOtOn5A==",
- "license": "ISC",
- "dependencies": {
- "estree-util-is-identifier-name": "^2.0.0",
- "estree-util-value-to-estree": "^3.3.3",
- "reading-time": "^1.3.0",
- "unist-util-visit": "^3.1.0"
- }
- },
- "node_modules/remark-reading-time/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "license": "MIT"
- },
- "node_modules/remark-reading-time/node_modules/estree-util-is-identifier-name": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz",
- "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-reading-time/node_modules/unist-util-is": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
- "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-reading-time/node_modules/unist-util-visit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz",
- "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-reading-time/node_modules/unist-util-visit-parents": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz",
- "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-rehype": {
- "version": "11.1.2",
- "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz",
- "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "unified": "^11.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-smartypants": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz",
- "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==",
- "license": "MIT",
- "dependencies": {
- "retext": "^9.0.0",
- "retext-smartypants": "^6.0.0",
- "unified": "^11.0.4",
- "unist-util-visit": "^5.0.0"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/remark-stringify": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
- "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/retext": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz",
- "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==",
- "license": "MIT",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "retext-latin": "^4.0.0",
- "retext-stringify": "^4.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/retext-latin": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz",
- "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==",
- "license": "MIT",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "parse-latin": "^7.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/retext-smartypants": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz",
- "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==",
- "license": "MIT",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "nlcst-to-string": "^4.0.0",
- "unist-util-visit": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/retext-stringify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz",
- "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==",
- "license": "MIT",
- "dependencies": {
- "@types/nlcst": "^2.0.0",
- "nlcst-to-string": "^4.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/reusify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
- "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/robust-predicates": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
- "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
- "license": "Unlicense"
- },
- "node_modules/roughjs": {
- "version": "4.6.6",
- "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz",
- "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==",
- "license": "MIT",
- "dependencies": {
- "hachure-fill": "^0.5.2",
- "path-data-parser": "^0.1.0",
- "points-on-curve": "^0.2.0",
- "points-on-path": "^0.2.1"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/rw": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
- "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
- "license": "BSD-3-Clause"
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "license": "MIT"
- },
- "node_modules/scheduler": {
- "version": "0.23.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
- "node_modules/scroll-into-view-if-needed": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
- "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
- "license": "MIT",
- "dependencies": {
- "compute-scroll-into-view": "^3.0.2"
- }
- },
- "node_modules/section-matter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
- "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "license": "ISC"
- },
- "node_modules/setprototypeof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
- "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
- "license": "ISC"
- },
- "node_modules/sharp": {
- "version": "0.34.2",
- "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.2.tgz",
- "integrity": "sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "optional": true,
- "dependencies": {
- "color": "^4.2.3",
- "detect-libc": "^2.0.4",
- "semver": "^7.7.2"
- },
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-darwin-arm64": "0.34.2",
- "@img/sharp-darwin-x64": "0.34.2",
- "@img/sharp-libvips-darwin-arm64": "1.1.0",
- "@img/sharp-libvips-darwin-x64": "1.1.0",
- "@img/sharp-libvips-linux-arm": "1.1.0",
- "@img/sharp-libvips-linux-arm64": "1.1.0",
- "@img/sharp-libvips-linux-ppc64": "1.1.0",
- "@img/sharp-libvips-linux-s390x": "1.1.0",
- "@img/sharp-libvips-linux-x64": "1.1.0",
- "@img/sharp-libvips-linuxmusl-arm64": "1.1.0",
- "@img/sharp-libvips-linuxmusl-x64": "1.1.0",
- "@img/sharp-linux-arm": "0.34.2",
- "@img/sharp-linux-arm64": "0.34.2",
- "@img/sharp-linux-s390x": "0.34.2",
- "@img/sharp-linux-x64": "0.34.2",
- "@img/sharp-linuxmusl-arm64": "0.34.2",
- "@img/sharp-linuxmusl-x64": "0.34.2",
- "@img/sharp-wasm32": "0.34.2",
- "@img/sharp-win32-arm64": "0.34.2",
- "@img/sharp-win32-ia32": "0.34.2",
- "@img/sharp-win32-x64": "0.34.2"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shellac": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/shellac/-/shellac-0.8.0.tgz",
- "integrity": "sha512-M3F2vzYIM7frKOs0+kgs/ITMlXhGpgtqs9HxDPciz3bckzAqqfd4LrBn+CCmSbICyJS+Jz5UDkmkR1jE+m+g+Q==",
- "license": "MIT",
- "dependencies": {
- "reghex": "^1.0.2"
- }
- },
- "node_modules/shiki": {
- "version": "1.29.2",
- "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.29.2.tgz",
- "integrity": "sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==",
- "license": "MIT",
- "dependencies": {
- "@shikijs/core": "1.29.2",
- "@shikijs/engine-javascript": "1.29.2",
- "@shikijs/engine-oniguruma": "1.29.2",
- "@shikijs/langs": "1.29.2",
- "@shikijs/themes": "1.29.2",
- "@shikijs/types": "1.29.2",
- "@shikijs/vscode-textmate": "^10.0.1",
- "@types/hast": "^3.0.4"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/slash": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
- "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
- "license": "MIT",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/speech-rule-engine": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.1.2.tgz",
- "integrity": "sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@xmldom/xmldom": "0.9.8",
- "commander": "13.1.0",
- "wicked-good-xpath": "1.3.0"
- },
- "bin": {
- "sre": "bin/sre"
- }
- },
- "node_modules/speech-rule-engine/node_modules/commander": {
- "version": "13.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz",
- "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "license": "BSD-3-Clause"
- },
- "node_modules/stacktracey": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz",
- "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==",
- "license": "Unlicense",
- "dependencies": {
- "as-table": "^1.0.36",
- "get-source": "^2.0.12"
- }
- },
- "node_modules/stat-mode": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.3.0.tgz",
- "integrity": "sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==",
- "license": "MIT"
- },
- "node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/stoppable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
- "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
- "license": "MIT",
- "engines": {
- "node": ">=4",
- "npm": ">=6"
- }
- },
- "node_modules/stream-to-array": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz",
- "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==",
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.1.0"
- }
- },
- "node_modules/stream-to-promise": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-2.2.0.tgz",
- "integrity": "sha512-HAGUASw8NT0k8JvIVutB2Y/9iBk7gpgEyAudXwNJmZERdMITGdajOa4VJfD/kNiA3TppQpTP4J+CtcHwdzKBAw==",
- "license": "MIT",
- "dependencies": {
- "any-promise": "~1.3.0",
- "end-of-stream": "~1.1.0",
- "stream-to-array": "~2.3.0"
- }
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/stringify-entities": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
- "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
- "license": "MIT",
- "dependencies": {
- "character-entities-html4": "^2.0.0",
- "character-entities-legacy": "^3.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
- "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/style-to-js": {
- "version": "1.1.17",
- "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz",
- "integrity": "sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==",
- "license": "MIT",
- "dependencies": {
- "style-to-object": "1.0.9"
- }
- },
- "node_modules/style-to-object": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.9.tgz",
- "integrity": "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==",
- "license": "MIT",
- "dependencies": {
- "inline-style-parser": "0.2.4"
- }
- },
- "node_modules/styled-jsx": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
- "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
- "license": "MIT",
- "dependencies": {
- "client-only": "0.0.1"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "peerDependencies": {
- "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "babel-plugin-macros": {
- "optional": true
- }
- }
- },
- "node_modules/stylis": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz",
- "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
- "license": "MIT"
- },
- "node_modules/system-architecture": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz",
- "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tabbable": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
- "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
- "license": "MIT"
- },
- "node_modules/tar": {
- "version": "4.4.18",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.18.tgz",
- "integrity": "sha512-ZuOtqqmkV9RE1+4odd+MhBpibmCxNP6PJhH/h2OqNuotTX7/XHPZQJv2pKvWMplFH9SIZZhitehh6vBH6LO8Pg==",
- "license": "ISC",
- "dependencies": {
- "chownr": "^1.1.4",
- "fs-minipass": "^1.2.7",
- "minipass": "^2.9.0",
- "minizlib": "^1.3.3",
- "mkdirp": "^0.5.5",
- "safe-buffer": "^5.2.1",
- "yallist": "^3.1.1"
- },
- "engines": {
- "node": ">=4.5"
- }
- },
- "node_modules/time-span": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/time-span/-/time-span-4.0.0.tgz",
- "integrity": "sha512-MyqZCTGLDZ77u4k+jqg4UlrzPTPZ49NDlaekU6uuFaJLzPIN1woaRXCbGeqOfxwc3Y37ZROGAJ614Rdv7Olt+g==",
- "license": "MIT",
- "dependencies": {
- "convert-hrtime": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/tinyexec": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz",
- "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==",
- "license": "MIT"
- },
- "node_modules/title": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/title/-/title-4.0.1.tgz",
- "integrity": "sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==",
- "license": "MIT",
- "dependencies": {
- "arg": "^5.0.0",
- "chalk": "^5.0.0",
- "clipboardy": "^4.0.0"
- },
- "bin": {
- "title": "dist/esm/bin.js"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
- "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "license": "MIT"
- },
- "node_modules/tree-kill": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
- "license": "MIT",
- "bin": {
- "tree-kill": "cli.js"
- }
- },
- "node_modules/trim-lines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
- "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/trough": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
- "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/ts-dedent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
- "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6.10"
- }
- },
- "node_modules/ts-morph": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-12.0.0.tgz",
- "integrity": "sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==",
- "license": "MIT",
- "dependencies": {
- "@ts-morph/common": "~0.11.0",
- "code-block-writer": "^10.1.1"
- }
- },
- "node_modules/ts-toolbelt": {
- "version": "6.15.5",
- "resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz",
- "integrity": "sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==",
- "license": "Apache-2.0"
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
- },
- "node_modules/twoslash": {
- "version": "0.2.12",
- "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.2.12.tgz",
- "integrity": "sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw==",
- "license": "MIT",
- "dependencies": {
- "@typescript/vfs": "^1.6.0",
- "twoslash-protocol": "0.2.12"
- },
- "peerDependencies": {
- "typescript": "*"
- }
- },
- "node_modules/twoslash-protocol": {
- "version": "0.2.12",
- "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.2.12.tgz",
- "integrity": "sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg==",
- "license": "MIT"
- },
- "node_modules/typescript": {
- "version": "5.8.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
- "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
- "license": "Apache-2.0",
- "peer": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/ufo": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
- "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
- "license": "MIT"
- },
- "node_modules/uid-promise": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/uid-promise/-/uid-promise-1.0.0.tgz",
- "integrity": "sha512-R8375j0qwXyIu/7R0tjdF06/sElHqbmdmWC9M2qQHpEVbvE4I5+38KJI7LUUmQMp7NVq4tKHiBMkT0NFM453Ig==",
- "license": "MIT"
- },
- "node_modules/undici": {
- "version": "5.29.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz",
- "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==",
- "license": "MIT",
- "dependencies": {
- "@fastify/busboy": "^2.0.0"
- },
- "engines": {
- "node": ">=14.0"
- }
- },
- "node_modules/undici-types": {
- "version": "6.20.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
- "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/unenv": {
- "version": "2.0.0-rc.17",
- "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.17.tgz",
- "integrity": "sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "defu": "^6.1.4",
- "exsolve": "^1.0.4",
- "ohash": "^2.0.11",
- "pathe": "^2.0.3",
- "ufo": "^1.6.1"
- }
- },
- "node_modules/unified": {
- "version": "11.0.5",
- "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
- "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "bail": "^2.0.0",
- "devlop": "^1.0.0",
- "extend": "^3.0.0",
- "is-plain-obj": "^4.0.0",
- "trough": "^2.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-find-after": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz",
- "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-is": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
- "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-modify-children": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz",
- "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "array-iterate": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-position": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
- "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-position-from-estree": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz",
- "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-remove": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-4.0.0.tgz",
- "integrity": "sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-remove-position": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
- "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-visit": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-stringify-position": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
- "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
- "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-children": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz",
- "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-parents": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
- "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "license": "MIT",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/use-sync-external-store": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz",
- "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==",
- "license": "MIT",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "license": "MIT"
- },
- "node_modules/uuid": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
- "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/esm/bin/uuid"
- }
- },
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "license": "MIT"
- },
- "node_modules/vercel": {
- "version": "32.7.2",
- "resolved": "https://registry.npmjs.org/vercel/-/vercel-32.7.2.tgz",
- "integrity": "sha512-esyeo67OZ/f7usKFCrx6NSjsvpo/BP/C8Mfron2uiCb4vXVcjkwOM7TwliHx6b0DbXjpzomdGVUHKRs34VNn2Q==",
- "license": "Apache-2.0",
- "dependencies": {
- "@vercel/build-utils": "7.3.0",
- "@vercel/fun": "1.1.0",
- "@vercel/go": "3.0.4",
- "@vercel/hydrogen": "1.0.1",
- "@vercel/next": "4.0.15",
- "@vercel/node": "3.0.12",
- "@vercel/python": "4.1.0",
- "@vercel/redwood": "2.0.5",
- "@vercel/remix-builder": "2.0.14",
- "@vercel/ruby": "2.0.4",
- "@vercel/static-build": "2.0.14",
- "chokidar": "3.3.1"
- },
- "bin": {
- "vc": "dist/index.js",
- "vercel": "dist/index.js"
- },
- "engines": {
- "node": ">= 16"
- }
- },
- "node_modules/vercel/node_modules/chokidar": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
- "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.1",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.0",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.3.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.1.2"
- }
- },
- "node_modules/vercel/node_modules/fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/vercel/node_modules/readdirp": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
- "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.0.7"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/vfile": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
- "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-location": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
- "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-message": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
- "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-stringify-position": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vscode-jsonrpc": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
- "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/vscode-languageserver": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
- "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
- "license": "MIT",
- "dependencies": {
- "vscode-languageserver-protocol": "3.17.5"
- },
- "bin": {
- "installServerIntoExtension": "bin/installServerIntoExtension"
- }
- },
- "node_modules/vscode-languageserver-protocol": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
- "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
- "license": "MIT",
- "dependencies": {
- "vscode-jsonrpc": "8.2.0",
- "vscode-languageserver-types": "3.17.5"
- }
- },
- "node_modules/vscode-languageserver-textdocument": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
- "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
- "license": "MIT"
- },
- "node_modules/vscode-languageserver-types": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
- "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==",
- "license": "MIT"
- },
- "node_modules/vscode-uri": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
- "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==",
- "license": "MIT"
- },
- "node_modules/web-namespaces": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
- "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/web-vitals": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz",
- "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==",
- "license": "Apache-2.0"
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "license": "BSD-2-Clause"
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "license": "MIT",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wicked-good-xpath": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz",
- "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==",
- "license": "MIT"
- },
- "node_modules/wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "node_modules/workerd": {
- "version": "1.20250408.0",
- "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250408.0.tgz",
- "integrity": "sha512-bBUX+UsvpzAqiWFNeZrlZmDGddiGZdBBbftZJz2wE6iUg/cIAJeVQYTtS/3ahaicguoLBz4nJiDo8luqM9fx1A==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "bin": {
- "workerd": "bin/workerd"
- },
- "engines": {
- "node": ">=16"
- },
- "optionalDependencies": {
- "@cloudflare/workerd-darwin-64": "1.20250408.0",
- "@cloudflare/workerd-darwin-arm64": "1.20250408.0",
- "@cloudflare/workerd-linux-64": "1.20250408.0",
- "@cloudflare/workerd-linux-arm64": "1.20250408.0",
- "@cloudflare/workerd-windows-64": "1.20250408.0"
- }
- },
- "node_modules/wrangler": {
- "version": "4.23.0",
- "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.23.0.tgz",
- "integrity": "sha512-JSeDt3IwA4TEmg/V3tRblImPjdxynBt9PUVO/acQJ83XGlMMSwswDKL1FuwvbFzgX6+JXc3GMHeu7r8AQIxw9w==",
- "license": "MIT OR Apache-2.0",
- "peer": true,
- "dependencies": {
- "@cloudflare/kv-asset-handler": "0.4.0",
- "@cloudflare/unenv-preset": "2.3.3",
- "blake3-wasm": "2.1.5",
- "esbuild": "0.25.4",
- "miniflare": "4.20250617.5",
- "path-to-regexp": "6.3.0",
- "unenv": "2.0.0-rc.17",
- "workerd": "1.20250617.0"
- },
- "bin": {
- "wrangler": "bin/wrangler.js",
- "wrangler2": "bin/wrangler.js"
- },
- "engines": {
- "node": ">=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- },
- "peerDependencies": {
- "@cloudflare/workers-types": "^4.20250617.0"
- },
- "peerDependenciesMeta": {
- "@cloudflare/workers-types": {
- "optional": true
- }
- }
- },
- "node_modules/wrangler/node_modules/@cloudflare/unenv-preset": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.3.3.tgz",
- "integrity": "sha512-/M3MEcj3V2WHIRSW1eAQBPRJ6JnGQHc6JKMAPLkDb7pLs3m6X9ES/+K3ceGqxI6TKeF32AWAi7ls0AYzVxCP0A==",
- "license": "MIT OR Apache-2.0",
- "peer": true,
- "peerDependencies": {
- "unenv": "2.0.0-rc.17",
- "workerd": "^1.20250508.0"
- },
- "peerDependenciesMeta": {
- "workerd": {
- "optional": true
- }
- }
- },
- "node_modules/wrangler/node_modules/@cloudflare/workerd-darwin-64": {
- "version": "1.20250617.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20250617.0.tgz",
- "integrity": "sha512-toG8JUKVLIks4oOJLe9FeuixE84pDpMZ32ip7mCpE7JaFc5BqGFvevk0YC/db3T71AQlialjRwioH3jS/dzItA==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/wrangler/node_modules/@cloudflare/workerd-darwin-arm64": {
- "version": "1.20250617.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20250617.0.tgz",
- "integrity": "sha512-JTX0exbC9/ZtMmQQA8tDZEZFMXZrxOpTUj2hHnsUkErWYkr5SSZH04RBhPg6dU4VL8bXuB5/eJAh7+P9cZAp7g==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/wrangler/node_modules/@cloudflare/workerd-linux-64": {
- "version": "1.20250617.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20250617.0.tgz",
- "integrity": "sha512-8jkSoVRJ+1bOx3tuWlZCGaGCV2ew7/jFMl6V3CPXOoEtERUHsZBQLVkQIGKcmC/LKSj7f/mpyBUeu2EPTo2HEg==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/wrangler/node_modules/@cloudflare/workerd-linux-arm64": {
- "version": "1.20250617.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20250617.0.tgz",
- "integrity": "sha512-YAzcOyu897z5dQKFzme1oujGWMGEJCR7/Wrrm1nSP6dqutxFPTubRADM8BHn2CV3ij//vaPnAeLmZE3jVwOwig==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/wrangler/node_modules/@cloudflare/workerd-windows-64": {
- "version": "1.20250617.0",
- "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20250617.0.tgz",
- "integrity": "sha512-XWM/6sagDrO0CYDKhXhPjM23qusvIN1ju9ZEml6gOQs8tNOFnq6Cn6X9FAmnyapRFCGUSEC3HZYJAm7zwVKaMA==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/wrangler/node_modules/@esbuild/android-arm": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz",
- "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==",
- "cpu": [
- "arm"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/wrangler/node_modules/@esbuild/linux-loong64": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz",
- "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==",
- "cpu": [
- "loong64"
- ],
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-darwin-arm64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
- "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-arm64": "1.0.4"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-darwin-x64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz",
- "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-darwin-x64": "1.0.4"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-libvips-darwin-arm64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz",
- "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-libvips-darwin-x64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz",
- "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-libvips-linux-arm": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz",
- "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==",
- "cpu": [
- "arm"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-libvips-linux-arm64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz",
- "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-libvips-linux-s390x": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz",
- "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==",
- "cpu": [
- "s390x"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-libvips-linux-x64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz",
- "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-libvips-linuxmusl-arm64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz",
- "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==",
- "cpu": [
- "arm64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-libvips-linuxmusl-x64": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz",
- "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==",
- "cpu": [
- "x64"
- ],
- "license": "LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-linux-arm": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz",
- "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==",
- "cpu": [
- "arm"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm": "1.0.5"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-linux-arm64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz",
- "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-arm64": "1.0.4"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-linux-s390x": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz",
- "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==",
- "cpu": [
- "s390x"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-s390x": "1.0.4"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-linux-x64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz",
- "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linux-x64": "1.0.4"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-linuxmusl-arm64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz",
- "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==",
- "cpu": [
- "arm64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-arm64": "1.0.4"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-linuxmusl-x64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz",
- "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-libvips-linuxmusl-x64": "1.0.4"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-wasm32": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz",
- "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==",
- "cpu": [
- "wasm32"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
- "optional": true,
- "peer": true,
- "dependencies": {
- "@emnapi/runtime": "^1.2.0"
- },
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-win32-ia32": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz",
- "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==",
- "cpu": [
- "ia32"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/@img/sharp-win32-x64": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz",
- "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==",
- "cpu": [
- "x64"
- ],
- "license": "Apache-2.0 AND LGPL-3.0-or-later",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/wrangler/node_modules/acorn": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
- "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
- "license": "MIT",
- "peer": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/wrangler/node_modules/esbuild": {
- "version": "0.25.4",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz",
- "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==",
- "hasInstallScript": true,
- "license": "MIT",
- "peer": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.25.4",
- "@esbuild/android-arm": "0.25.4",
- "@esbuild/android-arm64": "0.25.4",
- "@esbuild/android-x64": "0.25.4",
- "@esbuild/darwin-arm64": "0.25.4",
- "@esbuild/darwin-x64": "0.25.4",
- "@esbuild/freebsd-arm64": "0.25.4",
- "@esbuild/freebsd-x64": "0.25.4",
- "@esbuild/linux-arm": "0.25.4",
- "@esbuild/linux-arm64": "0.25.4",
- "@esbuild/linux-ia32": "0.25.4",
- "@esbuild/linux-loong64": "0.25.4",
- "@esbuild/linux-mips64el": "0.25.4",
- "@esbuild/linux-ppc64": "0.25.4",
- "@esbuild/linux-riscv64": "0.25.4",
- "@esbuild/linux-s390x": "0.25.4",
- "@esbuild/linux-x64": "0.25.4",
- "@esbuild/netbsd-arm64": "0.25.4",
- "@esbuild/netbsd-x64": "0.25.4",
- "@esbuild/openbsd-arm64": "0.25.4",
- "@esbuild/openbsd-x64": "0.25.4",
- "@esbuild/sunos-x64": "0.25.4",
- "@esbuild/win32-arm64": "0.25.4",
- "@esbuild/win32-ia32": "0.25.4",
- "@esbuild/win32-x64": "0.25.4"
- }
- },
- "node_modules/wrangler/node_modules/miniflare": {
- "version": "4.20250617.5",
- "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20250617.5.tgz",
- "integrity": "sha512-Qqn30jR6dCjXaKVizT6vH4KOb+GyLccoxLNOJEfu63yBPn8eoXa7PrdiSGTmjs2RY8/tr7eTO8Wu/Yr14k0xVA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@cspotcode/source-map-support": "0.8.1",
- "acorn": "8.14.0",
- "acorn-walk": "8.3.2",
- "exit-hook": "2.2.1",
- "glob-to-regexp": "0.4.1",
- "sharp": "^0.33.5",
- "stoppable": "1.1.0",
- "undici": "^5.28.5",
- "workerd": "1.20250617.0",
- "ws": "8.18.0",
- "youch": "3.3.4",
- "zod": "3.22.3"
- },
- "bin": {
- "miniflare": "bootstrap.js"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/wrangler/node_modules/path-to-regexp": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
- "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/wrangler/node_modules/sharp": {
- "version": "0.33.5",
- "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
- "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "peer": true,
- "dependencies": {
- "color": "^4.2.3",
- "detect-libc": "^2.0.3",
- "semver": "^7.6.3"
- },
- "engines": {
- "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- },
- "optionalDependencies": {
- "@img/sharp-darwin-arm64": "0.33.5",
- "@img/sharp-darwin-x64": "0.33.5",
- "@img/sharp-libvips-darwin-arm64": "1.0.4",
- "@img/sharp-libvips-darwin-x64": "1.0.4",
- "@img/sharp-libvips-linux-arm": "1.0.5",
- "@img/sharp-libvips-linux-arm64": "1.0.4",
- "@img/sharp-libvips-linux-s390x": "1.0.4",
- "@img/sharp-libvips-linux-x64": "1.0.4",
- "@img/sharp-libvips-linuxmusl-arm64": "1.0.4",
- "@img/sharp-libvips-linuxmusl-x64": "1.0.4",
- "@img/sharp-linux-arm": "0.33.5",
- "@img/sharp-linux-arm64": "0.33.5",
- "@img/sharp-linux-s390x": "0.33.5",
- "@img/sharp-linux-x64": "0.33.5",
- "@img/sharp-linuxmusl-arm64": "0.33.5",
- "@img/sharp-linuxmusl-x64": "0.33.5",
- "@img/sharp-wasm32": "0.33.5",
- "@img/sharp-win32-ia32": "0.33.5",
- "@img/sharp-win32-x64": "0.33.5"
- }
- },
- "node_modules/wrangler/node_modules/workerd": {
- "version": "1.20250617.0",
- "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20250617.0.tgz",
- "integrity": "sha512-Uv6p0PYUHp/W/aWfUPLkZVAoAjapisM27JJlwcX9wCPTfCfnuegGOxFMvvlYpmNaX4YCwEdLCwuNn3xkpSkuZw==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "peer": true,
- "bin": {
- "workerd": "bin/workerd"
- },
- "engines": {
- "node": ">=16"
- },
- "optionalDependencies": {
- "@cloudflare/workerd-darwin-64": "1.20250617.0",
- "@cloudflare/workerd-darwin-arm64": "1.20250617.0",
- "@cloudflare/workerd-linux-64": "1.20250617.0",
- "@cloudflare/workerd-linux-arm64": "1.20250617.0",
- "@cloudflare/workerd-windows-64": "1.20250617.0"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "license": "ISC"
- },
- "node_modules/ws": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/xdg-app-paths": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/xdg-app-paths/-/xdg-app-paths-5.1.0.tgz",
- "integrity": "sha512-RAQ3WkPf4KTU1A8RtFx3gWywzVKe00tfOPFfl2NDGqbIFENQO4kqAJp7mhQjNj/33W5x5hiWWUdyfPq/5SU3QA==",
- "license": "MIT",
- "dependencies": {
- "xdg-portable": "^7.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/xdg-portable": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/xdg-portable/-/xdg-portable-7.3.0.tgz",
- "integrity": "sha512-sqMMuL1rc0FmMBOzCpd0yuy9trqF2yTTVe+E9ogwCSWQCdDEtQUwrZPT6AxqtsFGRNxycgncbP/xmOOSPw5ZUw==",
- "license": "MIT",
- "dependencies": {
- "os-paths": "^4.0.1"
- },
- "engines": {
- "node": ">= 6.0"
- }
- },
- "node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "license": "ISC"
- },
- "node_modules/yaml": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
- "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14.6"
- }
- },
- "node_modules/yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
- "license": "MIT",
- "dependencies": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- },
- "node_modules/yauzl-clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/yauzl-clone/-/yauzl-clone-1.0.4.tgz",
- "integrity": "sha512-igM2RRCf3k8TvZoxR2oguuw4z1xasOnA31joCqHIyLkeWrvAc2Jgay5ISQ2ZplinkoGaJ6orCz56Ey456c5ESA==",
- "license": "MIT",
- "dependencies": {
- "events-intercept": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yauzl-promise": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/yauzl-promise/-/yauzl-promise-2.1.3.tgz",
- "integrity": "sha512-A1pf6fzh6eYkK0L4Qp7g9jzJSDrM6nN0bOn5T0IbY4Yo3w+YkWlHFkJP7mzknMXjqusHFHlKsK2N+4OLsK2MRA==",
- "license": "MIT",
- "dependencies": {
- "yauzl": "^2.9.1",
- "yauzl-clone": "^1.0.4"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yocto-queue": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz",
- "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==",
- "license": "MIT",
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/youch": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.4.tgz",
- "integrity": "sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==",
- "license": "MIT",
- "dependencies": {
- "cookie": "^0.7.1",
- "mustache": "^4.2.0",
- "stacktracey": "^2.1.8"
- }
- },
- "node_modules/youch/node_modules/cookie": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
- "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/zod": {
- "version": "3.22.3",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz",
- "integrity": "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/colinhacks"
- }
- },
- "node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
+ "name": "NoteNextra",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "@next/bundle-analyzer": "^15.3.5",
+ "@vercel/analytics": "^1.5.0",
+ "@vercel/speed-insights": "^1.2.0",
+ "cross-env": "^7.0.3",
+ "next": "^15.3.5",
+ "nextra": "^4.2.17",
+ "nextra-theme-docs": "^4.2.17",
+ "react": "^19.1.0",
+ "react-dom": "^19.1.0"
+ },
+ "devDependencies": {
+ "@types/node": "24.0.10",
+ "@types/react": "19.1.8"
+ }
+ },
+ "node_modules/@antfu/install-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-1.1.0.tgz",
+ "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "package-manager-detector": "^1.3.0",
+ "tinyexec": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@antfu/utils": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz",
+ "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@braintree/sanitize-url": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.1.tgz",
+ "integrity": "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==",
+ "license": "MIT"
+ },
+ "node_modules/@chevrotain/cst-dts-gen": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
+ "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/@chevrotain/gast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
+ "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/@chevrotain/regexp-to-ast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz",
+ "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@chevrotain/types": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
+ "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@chevrotain/utils": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
+ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@discoveryjs/json-ext": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
+ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
+ "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.2.tgz",
+ "integrity": "sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.10"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.2.tgz",
+ "integrity": "sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.7.2",
+ "@floating-ui/utils": "^0.2.10"
+ }
+ },
+ "node_modules/@floating-ui/react": {
+ "version": "0.26.28",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz",
+ "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react-dom": "^2.1.2",
+ "@floating-ui/utils": "^0.2.8",
+ "tabbable": "^6.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.4.tgz",
+ "integrity": "sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/dom": "^1.7.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz",
+ "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
+ "license": "MIT"
+ },
+ "node_modules/@formatjs/intl-localematcher": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.1.tgz",
+ "integrity": "sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@headlessui/react": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.2.4.tgz",
+ "integrity": "sha512-lz+OGcAH1dK93rgSMzXmm1qKOJkBUqZf1L4M8TWLNplftQD3IkoEDdUFNfAn4ylsN6WOTVtWaLmvmaHOUk1dTA==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react": "^0.26.16",
+ "@react-aria/focus": "^3.20.2",
+ "@react-aria/interactions": "^3.25.0",
+ "@tanstack/react-virtual": "^3.13.9",
+ "use-sync-external-store": "^1.5.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "react-dom": "^18 || ^19 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/@iconify/types": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
+ "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
+ "license": "MIT"
+ },
+ "node_modules/@iconify/utils": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz",
+ "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==",
+ "license": "MIT",
+ "dependencies": {
+ "@antfu/install-pkg": "^1.0.0",
+ "@antfu/utils": "^8.1.0",
+ "@iconify/types": "^2.0.0",
+ "debug": "^4.4.0",
+ "globals": "^15.14.0",
+ "kolorist": "^1.8.0",
+ "local-pkg": "^1.0.0",
+ "mlly": "^1.7.4"
+ }
+ },
+ "node_modules/@img/sharp-darwin-arm64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.2.tgz",
+ "integrity": "sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-arm64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-darwin-x64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.2.tgz",
+ "integrity": "sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-x64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz",
+ "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz",
+ "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz",
+ "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz",
+ "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-ppc64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz",
+ "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-s390x": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz",
+ "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz",
+ "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz",
+ "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz",
+ "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.2.tgz",
+ "integrity": "sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.2.tgz",
+ "integrity": "sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linux-s390x": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.2.tgz",
+ "integrity": "sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-s390x": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linux-x64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.2.tgz",
+ "integrity": "sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-x64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-arm64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.2.tgz",
+ "integrity": "sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-arm64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-x64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.2.tgz",
+ "integrity": "sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-x64": "1.1.0"
+ }
+ },
+ "node_modules/@img/sharp-wasm32": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.2.tgz",
+ "integrity": "sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==",
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/runtime": "^1.4.3"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-arm64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.2.tgz",
+ "integrity": "sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-ia32": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.2.tgz",
+ "integrity": "sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-x64": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.2.tgz",
+ "integrity": "sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@mdx-js/mdx": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz",
+ "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdx": "^2.0.0",
+ "collapse-white-space": "^2.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "estree-util-scope": "^1.0.0",
+ "estree-walker": "^3.0.0",
+ "hast-util-to-jsx-runtime": "^2.0.0",
+ "markdown-extensions": "^2.0.0",
+ "recma-build-jsx": "^1.0.0",
+ "recma-jsx": "^1.0.0",
+ "recma-stringify": "^1.0.0",
+ "rehype-recma": "^1.0.0",
+ "remark-mdx": "^3.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-rehype": "^11.0.0",
+ "source-map": "^0.7.0",
+ "unified": "^11.0.0",
+ "unist-util-position-from-estree": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mermaid-js/parser": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.6.0.tgz",
+ "integrity": "sha512-7DNESgpyZ5WG1SIkrYafVBhWmImtmQuoxOO1lawI3gQYWxBX3v1FW3IyuuRfKJAO06XrZR71W0Kif5VEGGd4VA==",
+ "license": "MIT",
+ "dependencies": {
+ "langium": "3.3.1"
+ }
+ },
+ "node_modules/@napi-rs/simple-git": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git/-/simple-git-0.1.19.tgz",
+ "integrity": "sha512-jMxvwzkKzd3cXo2EB9GM2ic0eYo2rP/BS6gJt6HnWbsDO1O8GSD4k7o2Cpr2YERtMpGF/MGcDfsfj2EbQPtrXw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@napi-rs/simple-git-android-arm-eabi": "0.1.19",
+ "@napi-rs/simple-git-android-arm64": "0.1.19",
+ "@napi-rs/simple-git-darwin-arm64": "0.1.19",
+ "@napi-rs/simple-git-darwin-x64": "0.1.19",
+ "@napi-rs/simple-git-freebsd-x64": "0.1.19",
+ "@napi-rs/simple-git-linux-arm-gnueabihf": "0.1.19",
+ "@napi-rs/simple-git-linux-arm64-gnu": "0.1.19",
+ "@napi-rs/simple-git-linux-arm64-musl": "0.1.19",
+ "@napi-rs/simple-git-linux-powerpc64le-gnu": "0.1.19",
+ "@napi-rs/simple-git-linux-s390x-gnu": "0.1.19",
+ "@napi-rs/simple-git-linux-x64-gnu": "0.1.19",
+ "@napi-rs/simple-git-linux-x64-musl": "0.1.19",
+ "@napi-rs/simple-git-win32-arm64-msvc": "0.1.19",
+ "@napi-rs/simple-git-win32-x64-msvc": "0.1.19"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-android-arm-eabi": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.19.tgz",
+ "integrity": "sha512-XryEH/hadZ4Duk/HS/HC/cA1j0RHmqUGey3MsCf65ZS0VrWMqChXM/xlTPWuY5jfCc/rPubHaqI7DZlbexnX/g==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-android-arm64": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.19.tgz",
+ "integrity": "sha512-ZQ0cPvY6nV9p7zrR9ZPo7hQBkDAcY/CHj3BjYNhykeUCiSNCrhvwX+WEeg5on8M1j4d5jcI/cwVG2FslfiByUg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-darwin-arm64": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.19.tgz",
+ "integrity": "sha512-viZB5TYgjA1vH+QluhxZo0WKro3xBA+1xSzYx8mcxUMO5gnAoUMwXn0ZO/6Zy6pai+aGae+cj6XihGnrBRu3Pg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-darwin-x64": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.19.tgz",
+ "integrity": "sha512-6dNkzSNUV5X9rsVYQbpZLyJu4Gtkl2vNJ3abBXHX/Etk0ILG5ZasO3ncznIANZQpqcbn/QPHr49J2QYAXGoKJA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-freebsd-x64": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-freebsd-x64/-/simple-git-freebsd-x64-0.1.19.tgz",
+ "integrity": "sha512-sB9krVIchzd20FjI2ZZ8FDsTSsXLBdnwJ6CpeVyrhXHnoszfcqxt49ocZHujAS9lMpXq7i2Nv1EXJmCy4KdhwA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-linux-arm-gnueabihf": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.19.tgz",
+ "integrity": "sha512-6HPn09lr9N1n5/XKfP8Np53g4fEXVxOFqNkS6rTH3Rm1lZHdazTRH62RggXLTguZwjcE+MvOLvoTIoR5kAS8+g==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-linux-arm64-gnu": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.19.tgz",
+ "integrity": "sha512-G0gISckt4cVDp3oh5Z6PV3GHJrJO6Z8bIS+9xA7vTtKdqB1i5y0n3cSFLlzQciLzhr+CajFD27doW4lEyErQ/Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-linux-arm64-musl": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.19.tgz",
+ "integrity": "sha512-OwTRF+H4IZYxmDFRi1IrLMfqbdIpvHeYbJl2X94NVsLVOY+3NUHvEzL3fYaVx5urBaMnIK0DD3wZLbcueWvxbA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-linux-powerpc64le-gnu": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-powerpc64le-gnu/-/simple-git-linux-powerpc64le-gnu-0.1.19.tgz",
+ "integrity": "sha512-p7zuNNVyzpRvkCt2RIGv9FX/WPcPbZ6/FRUgUTZkA2WU33mrbvNqSi4AOqCCl6mBvEd+EOw5NU4lS9ORRJvAEg==",
+ "cpu": [
+ "powerpc64le"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-linux-s390x-gnu": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-s390x-gnu/-/simple-git-linux-s390x-gnu-0.1.19.tgz",
+ "integrity": "sha512-6N2vwJUPLiak8GLrS0a3is0gSb0UwI2CHOOqtvQxPmv+JVI8kn3vKiUscsktdDb0wGEPeZ8PvZs0y8UWix7K4g==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-linux-x64-gnu": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.19.tgz",
+ "integrity": "sha512-61YfeO1J13WK7MalLgP3QlV6of2rWnVw1aqxWkAgy/lGxoOFSJ4Wid6ANVCEZk4tJpPX/XNeneqkUz5xpeb2Cw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-linux-x64-musl": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.19.tgz",
+ "integrity": "sha512-cCTWNpMJnN3PrUBItWcs3dQKCydsIasbrS3laMzq8k7OzF93Zrp2LWDTPlLCO9brbBVpBzy2Qk5Xg9uAfe/Ukw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-win32-arm64-msvc": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.19.tgz",
+ "integrity": "sha512-sWavb1BjeLKKBA+PbTsRSSzVNfb7V/dOpaJvkgR5d2kWFn/AHmCZHSSj/3nyZdYf0BdDC+DIvqk3daAEZ6QMVw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@napi-rs/simple-git-win32-x64-msvc": {
+ "version": "0.1.19",
+ "resolved": "https://registry.npmjs.org/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.19.tgz",
+ "integrity": "sha512-FmNuPoK4+qwaSCkp8lm3sJlrxk374enW+zCE5ZksXlZzj/9BDJAULJb5QUJ7o9Y8A/G+d8LkdQLPBE2Jaxe5XA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/bundle-analyzer": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-15.3.5.tgz",
+ "integrity": "sha512-r1tlg7N4IUWpdqdy8/6bf7pvo2yeN9Oc6OHEiMsMfIooJ5k37Odi9HC1qBS4soULNE7FiQ18JP/TdmQKiaIkoA==",
+ "license": "MIT",
+ "dependencies": {
+ "webpack-bundle-analyzer": "4.10.1"
+ }
+ },
+ "node_modules/@next/env": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.5.tgz",
+ "integrity": "sha512-7g06v8BUVtN2njAX/r8gheoVffhiKFVt4nx74Tt6G4Hqw9HCLYQVx/GkH2qHvPtAHZaUNZ0VXAa0pQP6v1wk7g==",
+ "license": "MIT"
+ },
+ "node_modules/@next/swc-darwin-arm64": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.5.tgz",
+ "integrity": "sha512-lM/8tilIsqBq+2nq9kbTW19vfwFve0NR7MxfkuSUbRSgXlMQoJYg+31+++XwKVSXk4uT23G2eF/7BRIKdn8t8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-darwin-x64": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.5.tgz",
+ "integrity": "sha512-WhwegPQJ5IfoUNZUVsI9TRAlKpjGVK0tpJTL6KeiC4cux9774NYE9Wu/iCfIkL/5J8rPAkqZpG7n+EfiAfidXA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-gnu": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.5.tgz",
+ "integrity": "sha512-LVD6uMOZ7XePg3KWYdGuzuvVboxujGjbcuP2jsPAN3MnLdLoZUXKRc6ixxfs03RH7qBdEHCZjyLP/jBdCJVRJQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-musl": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.5.tgz",
+ "integrity": "sha512-k8aVScYZ++BnS2P69ClK7v4nOu702jcF9AIHKu6llhHEtBSmM2zkPGl9yoqbSU/657IIIb0QHpdxEr0iW9z53A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-gnu": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.5.tgz",
+ "integrity": "sha512-2xYU0DI9DGN/bAHzVwADid22ba5d/xrbrQlr2U+/Q5WkFUzeL0TDR963BdrtLS/4bMmKZGptLeg6282H/S2i8A==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-musl": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.5.tgz",
+ "integrity": "sha512-TRYIqAGf1KCbuAB0gjhdn5Ytd8fV+wJSM2Nh2is/xEqR8PZHxfQuaiNhoF50XfY90sNpaRMaGhF6E+qjV1b9Tg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-arm64-msvc": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.5.tgz",
+ "integrity": "sha512-h04/7iMEUSMY6fDGCvdanKqlO1qYvzNxntZlCzfE8i5P0uqzVQWQquU1TIhlz0VqGQGXLrFDuTJVONpqGqjGKQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-x64-msvc": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.5.tgz",
+ "integrity": "sha512-5fhH6fccXxnX2KhllnGhkYMndhOiLOLEiVGYjP2nizqeGWkN10sA9taATlXwake2E2XMvYZjjz0Uj7T0y+z1yw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.29",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
+ "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
+ "license": "MIT"
+ },
+ "node_modules/@react-aria/focus": {
+ "version": "3.20.5",
+ "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.20.5.tgz",
+ "integrity": "sha512-JpFtXmWQ0Oca7FcvkqgjSyo6xEP7v3oQOLUId6o0xTvm4AD5W0mU2r3lYrbhsJ+XxdUUX4AVR5473sZZ85kU4A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/interactions": "^3.25.3",
+ "@react-aria/utils": "^3.29.1",
+ "@react-types/shared": "^3.30.0",
+ "@swc/helpers": "^0.5.0",
+ "clsx": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/interactions": {
+ "version": "3.25.3",
+ "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.25.3.tgz",
+ "integrity": "sha512-J1bhlrNtjPS/fe5uJQ+0c7/jiXniwa4RQlP+Emjfc/iuqpW2RhbF9ou5vROcLzWIyaW8tVMZ468J68rAs/aZ5A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/ssr": "^3.9.9",
+ "@react-aria/utils": "^3.29.1",
+ "@react-stately/flags": "^3.1.2",
+ "@react-types/shared": "^3.30.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/ssr": {
+ "version": "3.9.9",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.9.tgz",
+ "integrity": "sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ },
+ "engines": {
+ "node": ">= 12"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/utils": {
+ "version": "3.29.1",
+ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.29.1.tgz",
+ "integrity": "sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/ssr": "^3.9.9",
+ "@react-stately/flags": "^3.1.2",
+ "@react-stately/utils": "^3.10.7",
+ "@react-types/shared": "^3.30.0",
+ "@swc/helpers": "^0.5.0",
+ "clsx": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/flags": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz",
+ "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ }
+ },
+ "node_modules/@react-stately/utils": {
+ "version": "3.10.7",
+ "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.7.tgz",
+ "integrity": "sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-types/shared": {
+ "version": "3.30.0",
+ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.30.0.tgz",
+ "integrity": "sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@shikijs/core": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz",
+ "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==",
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/engine-javascript": "2.5.0",
+ "@shikijs/engine-oniguruma": "2.5.0",
+ "@shikijs/types": "2.5.0",
+ "@shikijs/vscode-textmate": "^10.0.2",
+ "@types/hast": "^3.0.4",
+ "hast-util-to-html": "^9.0.4"
+ }
+ },
+ "node_modules/@shikijs/engine-javascript": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz",
+ "integrity": "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==",
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/types": "2.5.0",
+ "@shikijs/vscode-textmate": "^10.0.2",
+ "oniguruma-to-es": "^3.1.0"
+ }
+ },
+ "node_modules/@shikijs/engine-oniguruma": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz",
+ "integrity": "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==",
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/types": "2.5.0",
+ "@shikijs/vscode-textmate": "^10.0.2"
+ }
+ },
+ "node_modules/@shikijs/langs": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.5.0.tgz",
+ "integrity": "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==",
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/types": "2.5.0"
+ }
+ },
+ "node_modules/@shikijs/themes": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.5.0.tgz",
+ "integrity": "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==",
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/types": "2.5.0"
+ }
+ },
+ "node_modules/@shikijs/twoslash": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/twoslash/-/twoslash-2.5.0.tgz",
+ "integrity": "sha512-OdyoZRbzTB80qHFHdaXT070OG9hiljxbsJMZmrMAPWXG2e4FV8wbC63VBM5BJXa1DH645nw20VX1MzASkO5V9g==",
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/core": "2.5.0",
+ "@shikijs/types": "2.5.0",
+ "twoslash": "^0.2.12"
+ }
+ },
+ "node_modules/@shikijs/types": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.5.0.tgz",
+ "integrity": "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/vscode-textmate": "^10.0.2",
+ "@types/hast": "^3.0.4"
+ }
+ },
+ "node_modules/@shikijs/vscode-textmate": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz",
+ "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==",
+ "license": "MIT"
+ },
+ "node_modules/@swc/counter": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
+ "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@tanstack/react-virtual": {
+ "version": "3.13.12",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz",
+ "integrity": "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/virtual-core": "3.13.12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/@tanstack/virtual-core": {
+ "version": "3.13.12",
+ "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz",
+ "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@theguild/remark-npm2yarn": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@theguild/remark-npm2yarn/-/remark-npm2yarn-0.3.3.tgz",
+ "integrity": "sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==",
+ "license": "MIT",
+ "dependencies": {
+ "npm-to-yarn": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ }
+ },
+ "node_modules/@types/d3": {
+ "version": "7.4.3",
+ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
+ "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-array": "*",
+ "@types/d3-axis": "*",
+ "@types/d3-brush": "*",
+ "@types/d3-chord": "*",
+ "@types/d3-color": "*",
+ "@types/d3-contour": "*",
+ "@types/d3-delaunay": "*",
+ "@types/d3-dispatch": "*",
+ "@types/d3-drag": "*",
+ "@types/d3-dsv": "*",
+ "@types/d3-ease": "*",
+ "@types/d3-fetch": "*",
+ "@types/d3-force": "*",
+ "@types/d3-format": "*",
+ "@types/d3-geo": "*",
+ "@types/d3-hierarchy": "*",
+ "@types/d3-interpolate": "*",
+ "@types/d3-path": "*",
+ "@types/d3-polygon": "*",
+ "@types/d3-quadtree": "*",
+ "@types/d3-random": "*",
+ "@types/d3-scale": "*",
+ "@types/d3-scale-chromatic": "*",
+ "@types/d3-selection": "*",
+ "@types/d3-shape": "*",
+ "@types/d3-time": "*",
+ "@types/d3-time-format": "*",
+ "@types/d3-timer": "*",
+ "@types/d3-transition": "*",
+ "@types/d3-zoom": "*"
+ }
+ },
+ "node_modules/@types/d3-array": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
+ "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-axis": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
+ "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-brush": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
+ "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-chord": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
+ "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-contour": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
+ "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-array": "*",
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/d3-delaunay": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
+ "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-dispatch": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
+ "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-drag": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
+ "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-dsv": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
+ "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-fetch": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
+ "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-dsv": "*"
+ }
+ },
+ "node_modules/@types/d3-force": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
+ "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-format": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
+ "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-geo": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
+ "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/d3-hierarchy": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
+ "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-path": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-polygon": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
+ "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-quadtree": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
+ "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-random": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
+ "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-selection": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",
+ "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
+ "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-time-format": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
+ "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-transition": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",
+ "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-zoom": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
+ "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-interpolate": "*",
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/debug": {
+ "version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/ms": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/estree-jsx": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/geojson": {
+ "version": "7946.0.16",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
+ "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/katex": {
+ "version": "0.16.7",
+ "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz",
+ "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/mdast": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/mdx": {
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
+ "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/ms": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/nlcst": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz",
+ "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "24.0.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.10.tgz",
+ "integrity": "sha512-ENHwaH+JIRTDIEEbDK6QSQntAYGtbvdDXnMXnZaZ6k13Du1dPMmprkEHIL7ok2Wl2aZevetwTAb5S+7yIF+enA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~7.8.0"
+ }
+ },
+ "node_modules/@types/react": {
+ "version": "19.1.8",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz",
+ "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/@typescript/vfs": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.6.1.tgz",
+ "integrity": "sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.1"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "license": "ISC"
+ },
+ "node_modules/@vercel/analytics": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.5.0.tgz",
+ "integrity": "sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==",
+ "license": "MPL-2.0",
+ "peerDependencies": {
+ "@remix-run/react": "^2",
+ "@sveltejs/kit": "^1 || ^2",
+ "next": ">= 13",
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "svelte": ">= 4",
+ "vue": "^3",
+ "vue-router": "^4"
+ },
+ "peerDependenciesMeta": {
+ "@remix-run/react": {
+ "optional": true
+ },
+ "@sveltejs/kit": {
+ "optional": true
+ },
+ "next": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "svelte": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
}
+ }
+ },
+ "node_modules/@vercel/speed-insights": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.2.0.tgz",
+ "integrity": "sha512-y9GVzrUJ2xmgtQlzFP2KhVRoCglwfRQgjyfY607aU0hh0Un6d0OUyrJkjuAlsV18qR4zfoFPs/BiIj9YDS6Wzw==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "@sveltejs/kit": "^1 || ^2",
+ "next": ">= 13",
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "svelte": ">= 4",
+ "vue": "^3",
+ "vue-router": "^4"
+ },
+ "peerDependenciesMeta": {
+ "@sveltejs/kit": {
+ "optional": true
+ },
+ "next": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "svelte": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@xmldom/xmldom": {
+ "version": "0.9.8",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.8.tgz",
+ "integrity": "sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "license": "MIT"
+ },
+ "node_modules/array-iterate": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz",
+ "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/astring": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz",
+ "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==",
+ "license": "MIT",
+ "bin": {
+ "astring": "bin/astring"
+ }
+ },
+ "node_modules/bail": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/better-react-mathjax": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/better-react-mathjax/-/better-react-mathjax-2.3.0.tgz",
+ "integrity": "sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w==",
+ "license": "MIT",
+ "dependencies": {
+ "mathjax-full": "^3.2.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001726",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz",
+ "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz",
+ "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/chevrotain": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
+ "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@chevrotain/cst-dts-gen": "11.0.3",
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/regexp-to-ast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "@chevrotain/utils": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/chevrotain-allstar": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
+ "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash-es": "^4.17.21"
+ },
+ "peerDependencies": {
+ "chevrotain": "^11.0.0"
+ }
+ },
+ "node_modules/client-only": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
+ "license": "MIT"
+ },
+ "node_modules/clipboardy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz",
+ "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==",
+ "license": "MIT",
+ "dependencies": {
+ "execa": "^8.0.1",
+ "is-wsl": "^3.1.0",
+ "is64bit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/collapse-white-space": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
+ "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/compute-scroll-into-view": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz",
+ "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==",
+ "license": "MIT"
+ },
+ "node_modules/confbox": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
+ "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
+ "license": "MIT"
+ },
+ "node_modules/cose-base": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz",
+ "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==",
+ "license": "MIT",
+ "dependencies": {
+ "layout-base": "^1.0.0"
+ }
+ },
+ "node_modules/cross-env": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
+ "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.1"
+ },
+ "bin": {
+ "cross-env": "src/bin/cross-env.js",
+ "cross-env-shell": "src/bin/cross-env-shell.js"
+ },
+ "engines": {
+ "node": ">=10.14",
+ "npm": ">=6",
+ "yarn": ">=1"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/cytoscape": {
+ "version": "3.32.0",
+ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.32.0.tgz",
+ "integrity": "sha512-5JHBC9n75kz5851jeklCPmZWcg3hUe6sjqJvyk3+hVqFaKcHwHgxsjeN1yLmggoUc6STbtm9/NQyabQehfjvWQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/cytoscape-cose-bilkent": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz",
+ "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cose-base": "^1.0.0"
+ },
+ "peerDependencies": {
+ "cytoscape": "^3.2.0"
+ }
+ },
+ "node_modules/cytoscape-fcose": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz",
+ "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cose-base": "^2.2.0"
+ },
+ "peerDependencies": {
+ "cytoscape": "^3.2.0"
+ }
+ },
+ "node_modules/cytoscape-fcose/node_modules/cose-base": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz",
+ "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==",
+ "license": "MIT",
+ "dependencies": {
+ "layout-base": "^2.0.0"
+ }
+ },
+ "node_modules/cytoscape-fcose/node_modules/layout-base": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz",
+ "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==",
+ "license": "MIT"
+ },
+ "node_modules/d3": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
+ "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "3",
+ "d3-axis": "3",
+ "d3-brush": "3",
+ "d3-chord": "3",
+ "d3-color": "3",
+ "d3-contour": "4",
+ "d3-delaunay": "6",
+ "d3-dispatch": "3",
+ "d3-drag": "3",
+ "d3-dsv": "3",
+ "d3-ease": "3",
+ "d3-fetch": "3",
+ "d3-force": "3",
+ "d3-format": "3",
+ "d3-geo": "3",
+ "d3-hierarchy": "3",
+ "d3-interpolate": "3",
+ "d3-path": "3",
+ "d3-polygon": "3",
+ "d3-quadtree": "3",
+ "d3-random": "3",
+ "d3-scale": "4",
+ "d3-scale-chromatic": "3",
+ "d3-selection": "3",
+ "d3-shape": "3",
+ "d3-time": "3",
+ "d3-time-format": "4",
+ "d3-timer": "3",
+ "d3-transition": "3",
+ "d3-zoom": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-axis": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
+ "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-brush": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
+ "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-drag": "2 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-selection": "3",
+ "d3-transition": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-chord": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
+ "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-contour": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
+ "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-delaunay": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
+ "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
+ "license": "ISC",
+ "dependencies": {
+ "delaunator": "5"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dispatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-drag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
+ "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-selection": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dsv": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
+ "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "7",
+ "iconv-lite": "0.6",
+ "rw": "1"
+ },
+ "bin": {
+ "csv2json": "bin/dsv2json.js",
+ "csv2tsv": "bin/dsv2dsv.js",
+ "dsv2dsv": "bin/dsv2dsv.js",
+ "dsv2json": "bin/dsv2json.js",
+ "json2csv": "bin/json2dsv.js",
+ "json2dsv": "bin/json2dsv.js",
+ "json2tsv": "bin/json2dsv.js",
+ "tsv2csv": "bin/dsv2dsv.js",
+ "tsv2json": "bin/dsv2json.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dsv/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-fetch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
+ "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dsv": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-force": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
+ "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-quadtree": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
+ "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-geo": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
+ "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.5.0 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-hierarchy": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
+ "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-polygon": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
+ "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-quadtree": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
+ "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-random": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
+ "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-sankey": {
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz",
+ "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "d3-array": "1 - 2",
+ "d3-shape": "^1.2.0"
+ }
+ },
+ "node_modules/d3-sankey/node_modules/d3-array": {
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
+ "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "internmap": "^1.0.0"
+ }
+ },
+ "node_modules/d3-sankey/node_modules/d3-path": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
+ "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/d3-sankey/node_modules/d3-shape": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
+ "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "d3-path": "1"
+ }
+ },
+ "node_modules/d3-sankey/node_modules/internmap": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
+ "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==",
+ "license": "ISC"
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-interpolate": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-selection": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
+ "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-transition": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
+ "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-dispatch": "1 - 3",
+ "d3-ease": "1 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "d3-selection": "2 - 3"
+ }
+ },
+ "node_modules/d3-zoom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
+ "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-drag": "2 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-selection": "2 - 3",
+ "d3-transition": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/dagre-d3-es": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz",
+ "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==",
+ "license": "MIT",
+ "dependencies": {
+ "d3": "^7.9.0",
+ "lodash-es": "^4.17.21"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.13",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
+ "license": "MIT"
+ },
+ "node_modules/debounce": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==",
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+ "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decode-named-character-reference": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz",
+ "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==",
+ "license": "MIT",
+ "dependencies": {
+ "character-entities": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/delaunator": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
+ "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
+ "license": "ISC",
+ "dependencies": {
+ "robust-predicates": "^3.0.2"
+ }
+ },
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
+ "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devlop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/dompurify": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz",
+ "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==",
+ "license": "(MPL-2.0 OR Apache-2.0)",
+ "optionalDependencies": {
+ "@types/trusted-types": "^2.0.7"
+ }
+ },
+ "node_modules/duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+ "license": "MIT"
+ },
+ "node_modules/emoji-regex-xs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz",
+ "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==",
+ "license": "MIT"
+ },
+ "node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/esast-util-from-estree": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz",
+ "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-visit": "^2.0.0",
+ "unist-util-position-from-estree": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/esast-util-from-js": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz",
+ "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "acorn": "^8.0.0",
+ "esast-util-from-estree": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/esm": {
+ "version": "3.2.25",
+ "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
+ "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/estree-util-attach-comments": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz",
+ "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-build-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz",
+ "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "estree-walker": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-is-identifier-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
+ "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-scope": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz",
+ "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-to-js": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz",
+ "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "astring": "^1.8.0",
+ "source-map": "^0.7.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-value-to-estree": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz",
+ "integrity": "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/remcohaszing"
+ }
+ },
+ "node_modules/estree-util-visit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz",
+ "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/exsolve": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz",
+ "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==",
+ "license": "MIT"
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fault": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
+ "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "format": "^0.2.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/github-slugger": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
+ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
+ "license": "ISC"
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/globals": {
+ "version": "15.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+ "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/gzip-size": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
+ "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "duplexer": "^0.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/hachure-fill": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz",
+ "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==",
+ "license": "MIT"
+ },
+ "node_modules/hast-util-from-dom": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz",
+ "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==",
+ "license": "ISC",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hastscript": "^9.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-html": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz",
+ "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "devlop": "^1.1.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "parse5": "^7.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-html-isomorphic": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz",
+ "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-from-dom": "^5.0.0",
+ "hast-util-from-html": "^2.0.0",
+ "unist-util-remove-position": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz",
+ "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "hastscript": "^9.0.0",
+ "property-information": "^7.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-is-element": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz",
+ "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-parse-selector": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
+ "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz",
+ "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "hast-util-to-parse5": "^8.0.0",
+ "html-void-elements": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "parse5": "^7.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-estree": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz",
+ "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-attach-comments": "^3.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "style-to-js": "^1.0.0",
+ "unist-util-position": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-html": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz",
+ "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "html-void-elements": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "stringify-entities": "^4.0.0",
+ "zwitch": "^2.0.4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
+ "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "style-to-js": "^1.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-parse5": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
+ "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-parse5/node_modules/property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-string": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz",
+ "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-text": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz",
+ "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "hast-util-is-element": "^3.0.0",
+ "unist-util-find-after": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-whitespace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz",
+ "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-parse-selector": "^4.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "license": "MIT"
+ },
+ "node_modules/html-void-elements": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
+ "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=16.17.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inline-style-parser": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
+ "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==",
+ "license": "MIT"
+ },
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
+ "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-inside-container": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is64bit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz",
+ "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==",
+ "license": "MIT",
+ "dependencies": {
+ "system-architecture": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/katex": {
+ "version": "0.16.22",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz",
+ "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==",
+ "funding": [
+ "https://opencollective.com/katex",
+ "https://github.com/sponsors/katex"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^8.3.0"
+ },
+ "bin": {
+ "katex": "cli.js"
+ }
+ },
+ "node_modules/khroma": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz",
+ "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="
+ },
+ "node_modules/kolorist": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
+ "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
+ "license": "MIT"
+ },
+ "node_modules/langium": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/langium/-/langium-3.3.1.tgz",
+ "integrity": "sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==",
+ "license": "MIT",
+ "dependencies": {
+ "chevrotain": "~11.0.3",
+ "chevrotain-allstar": "~0.3.0",
+ "vscode-languageserver": "~9.0.1",
+ "vscode-languageserver-textdocument": "~1.0.11",
+ "vscode-uri": "~3.0.8"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/layout-base": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",
+ "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==",
+ "license": "MIT"
+ },
+ "node_modules/local-pkg": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz",
+ "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==",
+ "license": "MIT",
+ "dependencies": {
+ "mlly": "^1.7.4",
+ "pkg-types": "^2.0.1",
+ "quansync": "^0.2.8"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "license": "MIT"
+ },
+ "node_modules/longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/markdown-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
+ "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/markdown-table": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
+ "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/marked": {
+ "version": "15.0.12",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz",
+ "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==",
+ "license": "MIT",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/mathjax-full": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz",
+ "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esm": "^3.2.25",
+ "mhchemparser": "^4.1.0",
+ "mj-context-menu": "^0.6.1",
+ "speech-rule-engine": "^4.0.6"
+ }
+ },
+ "node_modules/mdast-util-find-and-replace": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz",
+ "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-from-markdown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
+ "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark": "^4.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-frontmatter": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz",
+ "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz",
+ "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-gfm-autolink-literal": "^2.0.0",
+ "mdast-util-gfm-footnote": "^2.0.0",
+ "mdast-util-gfm-strikethrough": "^2.0.0",
+ "mdast-util-gfm-table": "^2.0.0",
+ "mdast-util-gfm-task-list-item": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-autolink-literal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
+ "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-find-and-replace": "^3.0.0",
+ "micromark-util-character": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-strikethrough": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
+ "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-table": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
+ "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "markdown-table": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-task-list-item": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
+ "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-math": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz",
+ "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.1.0",
+ "unist-util-remove-position": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
+ "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-expression": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
+ "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
+ "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdxjs-esm": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-phrasing": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
+ "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
+ "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
+ "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/mermaid": {
+ "version": "11.8.0",
+ "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.8.0.tgz",
+ "integrity": "sha512-uAZUwnBiqREZcUrFw3G5iQ5Pj3hTYUP95EZc3ec/nGBzHddJZydzYGE09tGZDBS1VoSoDn0symZ85FmypSTo5g==",
+ "license": "MIT",
+ "dependencies": {
+ "@braintree/sanitize-url": "^7.0.4",
+ "@iconify/utils": "^2.1.33",
+ "@mermaid-js/parser": "^0.6.0",
+ "@types/d3": "^7.4.3",
+ "cytoscape": "^3.29.3",
+ "cytoscape-cose-bilkent": "^4.1.0",
+ "cytoscape-fcose": "^2.2.0",
+ "d3": "^7.9.0",
+ "d3-sankey": "^0.12.3",
+ "dagre-d3-es": "7.0.11",
+ "dayjs": "^1.11.13",
+ "dompurify": "^3.2.5",
+ "katex": "^0.16.9",
+ "khroma": "^2.1.0",
+ "lodash-es": "^4.17.21",
+ "marked": "^15.0.7",
+ "roughjs": "^4.6.6",
+ "stylis": "^4.3.6",
+ "ts-dedent": "^2.2.0",
+ "uuid": "^11.1.0"
+ }
+ },
+ "node_modules/mhchemparser": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz",
+ "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/micromark": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz",
+ "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
+ "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-destination": "^2.0.0",
+ "micromark-factory-label": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-factory-title": "^2.0.0",
+ "micromark-factory-whitespace": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-html-tag-name": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-frontmatter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz",
+ "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==",
+ "license": "MIT",
+ "dependencies": {
+ "fault": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
+ "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-extension-gfm-autolink-literal": "^2.0.0",
+ "micromark-extension-gfm-footnote": "^2.0.0",
+ "micromark-extension-gfm-strikethrough": "^2.0.0",
+ "micromark-extension-gfm-table": "^2.0.0",
+ "micromark-extension-gfm-tagfilter": "^2.0.0",
+ "micromark-extension-gfm-task-list-item": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-autolink-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
+ "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-strikethrough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
+ "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-table": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
+ "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-tagfilter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
+ "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-task-list-item": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
+ "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-math": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz",
+ "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/katex": "^0.16.0",
+ "devlop": "^1.0.0",
+ "katex": "^0.16.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdx-expression": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz",
+ "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-mdx-expression": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-events-to-acorn": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-mdx-jsx": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz",
+ "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "micromark-factory-mdx-expression": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-events-to-acorn": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdx-md": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz",
+ "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdxjs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz",
+ "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.0.0",
+ "acorn-jsx": "^5.0.0",
+ "micromark-extension-mdx-expression": "^3.0.0",
+ "micromark-extension-mdx-jsx": "^3.0.0",
+ "micromark-extension-mdx-md": "^2.0.0",
+ "micromark-extension-mdxjs-esm": "^3.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdxjs-esm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz",
+ "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-events-to-acorn": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-position-from-estree": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-factory-destination": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
+ "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-label": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
+ "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-mdx-expression": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz",
+ "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-events-to-acorn": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-position-from-estree": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-title": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
+ "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
+ "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-chunked": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
+ "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-classify-character": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
+ "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-combine-extensions": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
+ "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-numeric-character-reference": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
+ "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-string": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
+ "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-encode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
+ "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-events-to-acorn": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz",
+ "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-visit": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "node_modules/micromark-util-html-tag-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
+ "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-normalize-identifier": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
+ "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-resolve-all": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
+ "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
+ "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-subtokenize": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
+ "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-types": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
+ "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mj-context-menu": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz",
+ "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/mlly": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
+ "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.14.0",
+ "pathe": "^2.0.1",
+ "pkg-types": "^1.3.0",
+ "ufo": "^1.5.4"
+ }
+ },
+ "node_modules/mlly/node_modules/confbox": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
+ "license": "MIT"
+ },
+ "node_modules/mlly/node_modules/pkg-types": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
+ "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.1.8",
+ "mlly": "^1.7.4",
+ "pathe": "^2.0.1"
+ }
+ },
+ "node_modules/mrmime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
+ "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/negotiator": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
+ "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/next": {
+ "version": "15.3.5",
+ "resolved": "https://registry.npmjs.org/next/-/next-15.3.5.tgz",
+ "integrity": "sha512-RkazLBMMDJSJ4XZQ81kolSpwiCt907l0xcgcpF4xC2Vml6QVcPNXW0NQRwQ80FFtSn7UM52XN0anaw8TEJXaiw==",
+ "license": "MIT",
+ "dependencies": {
+ "@next/env": "15.3.5",
+ "@swc/counter": "0.1.3",
+ "@swc/helpers": "0.5.15",
+ "busboy": "1.6.0",
+ "caniuse-lite": "^1.0.30001579",
+ "postcss": "8.4.31",
+ "styled-jsx": "5.1.6"
+ },
+ "bin": {
+ "next": "dist/bin/next"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
+ },
+ "optionalDependencies": {
+ "@next/swc-darwin-arm64": "15.3.5",
+ "@next/swc-darwin-x64": "15.3.5",
+ "@next/swc-linux-arm64-gnu": "15.3.5",
+ "@next/swc-linux-arm64-musl": "15.3.5",
+ "@next/swc-linux-x64-gnu": "15.3.5",
+ "@next/swc-linux-x64-musl": "15.3.5",
+ "@next/swc-win32-arm64-msvc": "15.3.5",
+ "@next/swc-win32-x64-msvc": "15.3.5",
+ "sharp": "^0.34.1"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.1.0",
+ "@playwright/test": "^1.41.2",
+ "babel-plugin-react-compiler": "*",
+ "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
+ "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
+ "sass": "^1.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@opentelemetry/api": {
+ "optional": true
+ },
+ "@playwright/test": {
+ "optional": true
+ },
+ "babel-plugin-react-compiler": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/next-themes": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz",
+ "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/nextra": {
+ "version": "4.2.17",
+ "resolved": "https://registry.npmjs.org/nextra/-/nextra-4.2.17.tgz",
+ "integrity": "sha512-WBZGSUeUJqkYm3F3F7+4N1oMP84r/YK/rAg96wkywu/MIsuUREY8fLXQgQbKkvcLbBl/7Wk2Iy+9xlhDu+weNg==",
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/intl-localematcher": "^0.6.0",
+ "@headlessui/react": "^2.1.2",
+ "@mdx-js/mdx": "^3.0.0",
+ "@napi-rs/simple-git": "^0.1.9",
+ "@shikijs/twoslash": "^2.0.0",
+ "@theguild/remark-mermaid": "^0.2.0",
+ "@theguild/remark-npm2yarn": "^0.3.2",
+ "better-react-mathjax": "^2.0.3",
+ "clsx": "^2.1.0",
+ "estree-util-to-js": "^2.0.0",
+ "estree-util-value-to-estree": "^3.0.1",
+ "fast-glob": "^3.3.2",
+ "github-slugger": "^2.0.0",
+ "hast-util-to-estree": "^3.1.0",
+ "katex": "^0.16.21",
+ "mdast-util-from-markdown": "^2.0.1",
+ "mdast-util-gfm": "^3.0.0",
+ "mdast-util-to-hast": "^13.2.0",
+ "negotiator": "^1.0.0",
+ "react-compiler-runtime": "0.0.0-experimental-22c6e49-20241219",
+ "react-medium-image-zoom": "^5.2.12",
+ "rehype-katex": "^7.0.0",
+ "rehype-pretty-code": "0.14.1",
+ "rehype-raw": "^7.0.0",
+ "remark-frontmatter": "^5.0.0",
+ "remark-gfm": "^4.0.0",
+ "remark-math": "^6.0.0",
+ "remark-reading-time": "^2.0.1",
+ "remark-smartypants": "^3.0.0",
+ "shiki": "^2.0.0",
+ "slash": "^5.1.0",
+ "title": "^4.0.1",
+ "unist-util-remove": "^4.0.0",
+ "unist-util-visit": "^5.0.0",
+ "unist-util-visit-children": "^3.0.0",
+ "yaml": "^2.3.2",
+ "zod": "^3.22.3",
+ "zod-validation-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "next": ">=14",
+ "react": ">=18",
+ "react-dom": ">=18"
+ }
+ },
+ "node_modules/nextra-theme-docs": {
+ "version": "4.2.17",
+ "resolved": "https://registry.npmjs.org/nextra-theme-docs/-/nextra-theme-docs-4.2.17.tgz",
+ "integrity": "sha512-QQ7iPHQ7zqh7dKJZ3SQbxqoFt7r8RHD9v7dFtJ+x8evEfxwM23oBGHNBqIjBoPl5uSwtvufEiVd7WMhK+Dxdww==",
+ "license": "MIT",
+ "dependencies": {
+ "@headlessui/react": "^2.1.2",
+ "clsx": "^2.1.0",
+ "next-themes": "^0.4.0",
+ "react-compiler-runtime": "0.0.0-experimental-22c6e49-20241219",
+ "scroll-into-view-if-needed": "^3.1.0",
+ "zod": "^3.22.3",
+ "zod-validation-error": "^3.0.0",
+ "zustand": "^5.0.1"
+ },
+ "peerDependencies": {
+ "next": ">=14",
+ "nextra": "4.2.17",
+ "react": ">=18",
+ "react-dom": ">=18"
+ }
+ },
+ "node_modules/nextra/node_modules/@theguild/remark-mermaid": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@theguild/remark-mermaid/-/remark-mermaid-0.2.0.tgz",
+ "integrity": "sha512-o8n57TJy0OI4PCrNw8z6S+vpHtrwoQZzTA5Y3fL0U1NDRIoMg/78duWgEBFsCZcWM1G6zjE91yg1aKCsDwgE2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "mermaid": "^11.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "peerDependencies": {
+ "react": "^18.2.0"
+ }
+ },
+ "node_modules/nlcst-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz",
+ "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm-to-yarn": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-3.0.1.tgz",
+ "integrity": "sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/nebrelbug/npm-to-yarn?sponsor=1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/oniguruma-to-es": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz",
+ "integrity": "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex-xs": "^1.0.0",
+ "regex": "^6.0.1",
+ "regex-recursion": "^6.0.2"
+ }
+ },
+ "node_modules/opener": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
+ "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
+ "license": "(WTFPL OR MIT)",
+ "bin": {
+ "opener": "bin/opener-bin.js"
+ }
+ },
+ "node_modules/package-manager-detector": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.3.0.tgz",
+ "integrity": "sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==",
+ "license": "MIT"
+ },
+ "node_modules/parse-entities": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
+ "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/parse-latin": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz",
+ "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-modify-children": "^4.0.0",
+ "unist-util-visit-children": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-numeric-range": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz",
+ "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==",
+ "license": "ISC"
+ },
+ "node_modules/parse5": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/path-data-parser": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz",
+ "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==",
+ "license": "MIT"
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.2.0.tgz",
+ "integrity": "sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==",
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.2.2",
+ "exsolve": "^1.0.7",
+ "pathe": "^2.0.3"
+ }
+ },
+ "node_modules/points-on-curve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz",
+ "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==",
+ "license": "MIT"
+ },
+ "node_modules/points-on-path": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz",
+ "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==",
+ "license": "MIT",
+ "dependencies": {
+ "path-data-parser": "0.1.0",
+ "points-on-curve": "0.2.0"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/property-information": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
+ "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/quansync": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz",
+ "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/antfu"
+ },
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/sxzz"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/react": {
+ "version": "19.1.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
+ "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-compiler-runtime": {
+ "version": "0.0.0-experimental-22c6e49-20241219",
+ "resolved": "https://registry.npmjs.org/react-compiler-runtime/-/react-compiler-runtime-0.0.0-experimental-22c6e49-20241219.tgz",
+ "integrity": "sha512-bOAGaRL1ldfIIpbDsl+uV025Ta6RS6/cOjvvh8r2Vo7KtqB+RSvihVYRsWQz7ECKNPWdq5MClS845acwAwieDw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "19.1.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
+ "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
+ "license": "MIT",
+ "dependencies": {
+ "scheduler": "^0.26.0"
+ },
+ "peerDependencies": {
+ "react": "^19.1.0"
+ }
+ },
+ "node_modules/react-medium-image-zoom": {
+ "version": "5.2.14",
+ "resolved": "https://registry.npmjs.org/react-medium-image-zoom/-/react-medium-image-zoom-5.2.14.tgz",
+ "integrity": "sha512-nfTVYcAUnBzXQpPDcZL+cG/e6UceYUIG+zDcnemL7jtAqbJjVVkA85RgneGtJeni12dTyiRPZVM6Szkmwd/o8w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/rpearce"
+ }
+ ],
+ "license": "BSD-3-Clause",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/reading-time": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz",
+ "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==",
+ "license": "MIT"
+ },
+ "node_modules/recma-build-jsx": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz",
+ "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-util-build-jsx": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/recma-jsx": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz",
+ "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn-jsx": "^5.0.0",
+ "estree-util-to-js": "^2.0.0",
+ "recma-parse": "^1.0.0",
+ "recma-stringify": "^1.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/recma-parse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz",
+ "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "esast-util-from-js": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/recma-stringify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz",
+ "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-util-to-js": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz",
+ "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==",
+ "license": "MIT",
+ "dependencies": {
+ "regex-utilities": "^2.3.0"
+ }
+ },
+ "node_modules/regex-recursion": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz",
+ "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==",
+ "license": "MIT",
+ "dependencies": {
+ "regex-utilities": "^2.3.0"
+ }
+ },
+ "node_modules/regex-utilities": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz",
+ "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==",
+ "license": "MIT"
+ },
+ "node_modules/rehype-katex": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz",
+ "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/katex": "^0.16.0",
+ "hast-util-from-html-isomorphic": "^2.0.0",
+ "hast-util-to-text": "^4.0.0",
+ "katex": "^0.16.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-parse": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz",
+ "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-from-html": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-pretty-code": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/rehype-pretty-code/-/rehype-pretty-code-0.14.1.tgz",
+ "integrity": "sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.4",
+ "hast-util-to-string": "^3.0.0",
+ "parse-numeric-range": "^1.3.0",
+ "rehype-parse": "^9.0.0",
+ "unified": "^11.0.5",
+ "unist-util-visit": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "shiki": "^1.0.0 || ^2.0.0 || ^3.0.0"
+ }
+ },
+ "node_modules/rehype-raw": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz",
+ "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-raw": "^9.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-recma": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz",
+ "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "hast-util-to-estree": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-frontmatter": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz",
+ "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-frontmatter": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-gfm": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz",
+ "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-gfm": "^3.0.0",
+ "micromark-extension-gfm": "^3.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-math": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz",
+ "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-math": "^3.0.0",
+ "micromark-extension-math": "^3.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-mdx": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz",
+ "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==",
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-mdx": "^3.0.0",
+ "micromark-extension-mdxjs": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-reading-time": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/remark-reading-time/-/remark-reading-time-2.0.2.tgz",
+ "integrity": "sha512-ILjIuR0dQQ8pELPgaFvz7ralcSN62rD/L1pTUJgWb4gfua3ZwYEI8mnKGxEQCbrXSUF/OvycTkcUbifGOtOn5A==",
+ "license": "ISC",
+ "dependencies": {
+ "estree-util-is-identifier-name": "^2.0.0",
+ "estree-util-value-to-estree": "^3.3.3",
+ "reading-time": "^1.3.0",
+ "unist-util-visit": "^3.1.0"
+ }
+ },
+ "node_modules/remark-reading-time/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/remark-reading-time/node_modules/estree-util-is-identifier-name": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz",
+ "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-reading-time/node_modules/unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-reading-time/node_modules/unist-util-visit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-3.1.0.tgz",
+ "integrity": "sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-reading-time/node_modules/unist-util-visit-parents": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz",
+ "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-rehype": {
+ "version": "11.1.2",
+ "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz",
+ "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-smartypants": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz",
+ "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==",
+ "license": "MIT",
+ "dependencies": {
+ "retext": "^9.0.0",
+ "retext-smartypants": "^6.0.0",
+ "unified": "^11.0.4",
+ "unist-util-visit": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/remark-stringify": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz",
+ "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "retext-latin": "^4.0.0",
+ "retext-stringify": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-latin": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz",
+ "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "parse-latin": "^7.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-smartypants": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz",
+ "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-stringify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz",
+ "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/robust-predicates": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
+ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
+ "license": "Unlicense"
+ },
+ "node_modules/roughjs": {
+ "version": "4.6.6",
+ "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz",
+ "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==",
+ "license": "MIT",
+ "dependencies": {
+ "hachure-fill": "^0.5.2",
+ "path-data-parser": "^0.1.0",
+ "points-on-curve": "^0.2.0",
+ "points-on-path": "^0.2.1"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
+ },
+ "node_modules/scheduler": {
+ "version": "0.26.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
+ "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
+ "license": "MIT"
+ },
+ "node_modules/scroll-into-view-if-needed": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
+ "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
+ "license": "MIT",
+ "dependencies": {
+ "compute-scroll-into-view": "^3.0.2"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "license": "ISC",
+ "optional": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sharp": {
+ "version": "0.34.2",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.2.tgz",
+ "integrity": "sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.4",
+ "semver": "^7.7.2"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-darwin-arm64": "0.34.2",
+ "@img/sharp-darwin-x64": "0.34.2",
+ "@img/sharp-libvips-darwin-arm64": "1.1.0",
+ "@img/sharp-libvips-darwin-x64": "1.1.0",
+ "@img/sharp-libvips-linux-arm": "1.1.0",
+ "@img/sharp-libvips-linux-arm64": "1.1.0",
+ "@img/sharp-libvips-linux-ppc64": "1.1.0",
+ "@img/sharp-libvips-linux-s390x": "1.1.0",
+ "@img/sharp-libvips-linux-x64": "1.1.0",
+ "@img/sharp-libvips-linuxmusl-arm64": "1.1.0",
+ "@img/sharp-libvips-linuxmusl-x64": "1.1.0",
+ "@img/sharp-linux-arm": "0.34.2",
+ "@img/sharp-linux-arm64": "0.34.2",
+ "@img/sharp-linux-s390x": "0.34.2",
+ "@img/sharp-linux-x64": "0.34.2",
+ "@img/sharp-linuxmusl-arm64": "0.34.2",
+ "@img/sharp-linuxmusl-x64": "0.34.2",
+ "@img/sharp-wasm32": "0.34.2",
+ "@img/sharp-win32-arm64": "0.34.2",
+ "@img/sharp-win32-ia32": "0.34.2",
+ "@img/sharp-win32-x64": "0.34.2"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shiki": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz",
+ "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/core": "2.5.0",
+ "@shikijs/engine-javascript": "2.5.0",
+ "@shikijs/engine-oniguruma": "2.5.0",
+ "@shikijs/langs": "2.5.0",
+ "@shikijs/themes": "2.5.0",
+ "@shikijs/types": "2.5.0",
+ "@shikijs/vscode-textmate": "^10.0.2",
+ "@types/hast": "^3.0.4"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/sirv": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
+ "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
+ "totalist": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/slash": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/speech-rule-engine": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.1.2.tgz",
+ "integrity": "sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@xmldom/xmldom": "0.9.8",
+ "commander": "13.1.0",
+ "wicked-good-xpath": "1.3.0"
+ },
+ "bin": {
+ "sre": "bin/sre"
+ }
+ },
+ "node_modules/speech-rule-engine/node_modules/commander": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz",
+ "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/stringify-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "license": "MIT",
+ "dependencies": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/style-to-js": {
+ "version": "1.1.17",
+ "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz",
+ "integrity": "sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==",
+ "license": "MIT",
+ "dependencies": {
+ "style-to-object": "1.0.9"
+ }
+ },
+ "node_modules/style-to-object": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.9.tgz",
+ "integrity": "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==",
+ "license": "MIT",
+ "dependencies": {
+ "inline-style-parser": "0.2.4"
+ }
+ },
+ "node_modules/styled-jsx": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
+ "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
+ "license": "MIT",
+ "dependencies": {
+ "client-only": "0.0.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/stylis": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz",
+ "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
+ "license": "MIT"
+ },
+ "node_modules/system-architecture": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz",
+ "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/tabbable": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
+ "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
+ "license": "MIT"
+ },
+ "node_modules/tinyexec": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz",
+ "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==",
+ "license": "MIT"
+ },
+ "node_modules/title": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/title/-/title-4.0.1.tgz",
+ "integrity": "sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==",
+ "license": "MIT",
+ "dependencies": {
+ "arg": "^5.0.0",
+ "chalk": "^5.0.0",
+ "clipboardy": "^4.0.0"
+ },
+ "bin": {
+ "title": "dist/esm/bin.js"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/totalist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/trough": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
+ "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/ts-dedent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
+ "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.10"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/turbo": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.5.4.tgz",
+ "integrity": "sha512-kc8ZibdRcuWUG1pbYSBFWqmIjynlD8Lp7IB6U3vIzvOv9VG+6Sp8bzyeBWE3Oi8XV5KsQrznyRTBPvrf99E4mA==",
+ "license": "MIT",
+ "bin": {
+ "turbo": "bin/turbo"
+ },
+ "optionalDependencies": {
+ "turbo-darwin-64": "2.5.4",
+ "turbo-darwin-arm64": "2.5.4",
+ "turbo-linux-64": "2.5.4",
+ "turbo-linux-arm64": "2.5.4",
+ "turbo-windows-64": "2.5.4",
+ "turbo-windows-arm64": "2.5.4"
+ }
+ },
+ "node_modules/turbo-darwin-64": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.5.4.tgz",
+ "integrity": "sha512-ah6YnH2dErojhFooxEzmvsoZQTMImaruZhFPfMKPBq8sb+hALRdvBNLqfc8NWlZq576FkfRZ/MSi4SHvVFT9PQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/turbo-darwin-arm64": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.5.4.tgz",
+ "integrity": "sha512-2+Nx6LAyuXw2MdXb7pxqle3MYignLvS7OwtsP9SgtSBaMlnNlxl9BovzqdYAgkUW3AsYiQMJ/wBRb7d+xemM5A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/turbo-linux-64": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.5.4.tgz",
+ "integrity": "sha512-5May2kjWbc8w4XxswGAl74GZ5eM4Gr6IiroqdLhXeXyfvWEdm2mFYCSWOzz0/z5cAgqyGidF1jt1qzUR8hTmOA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/turbo-linux-arm64": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.5.4.tgz",
+ "integrity": "sha512-/2yqFaS3TbfxV3P5yG2JUI79P7OUQKOUvAnx4MV9Bdz6jqHsHwc9WZPpO4QseQm+NvmgY6ICORnoVPODxGUiJg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/turbo-windows-64": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.5.4.tgz",
+ "integrity": "sha512-EQUO4SmaCDhO6zYohxIjJpOKRN3wlfU7jMAj3CgcyTPvQR/UFLEKAYHqJOnJtymbQmiiM/ihX6c6W6Uq0yC7mA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/turbo-windows-arm64": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.5.4.tgz",
+ "integrity": "sha512-oQ8RrK1VS8lrxkLriotFq+PiF7iiGgkZtfLKF4DDKsmdbPo0O9R2mQxm7jHLuXraRCuIQDWMIw6dpcr7Iykf4A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/twoslash": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/twoslash/-/twoslash-0.2.12.tgz",
+ "integrity": "sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw==",
+ "license": "MIT",
+ "dependencies": {
+ "@typescript/vfs": "^1.6.0",
+ "twoslash-protocol": "0.2.12"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ }
+ },
+ "node_modules/twoslash-protocol": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/twoslash-protocol/-/twoslash-protocol-0.2.12.tgz",
+ "integrity": "sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg==",
+ "license": "MIT"
+ },
+ "node_modules/typescript": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
+ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/ufo": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
+ "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
+ "license": "MIT"
+ },
+ "node_modules/undici-types": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
+ "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-find-after": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz",
+ "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-is": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
+ "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-modify-children": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz",
+ "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "array-iterate": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position-from-estree": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz",
+ "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-4.0.0.tgz",
+ "integrity": "sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
+ "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-children": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz",
+ "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
+ "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz",
+ "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/esm/bin/uuid"
+ }
+ },
+ "node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
+ "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "license": "MIT",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "license": "MIT",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "node_modules/vscode-languageserver-textdocument": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
+ "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
+ "license": "MIT"
+ },
+ "node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==",
+ "license": "MIT"
+ },
+ "node_modules/vscode-uri": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
+ "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==",
+ "license": "MIT"
+ },
+ "node_modules/web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz",
+ "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@discoveryjs/json-ext": "0.5.7",
+ "acorn": "^8.0.4",
+ "acorn-walk": "^8.0.0",
+ "commander": "^7.2.0",
+ "debounce": "^1.2.1",
+ "escape-string-regexp": "^4.0.0",
+ "gzip-size": "^6.0.0",
+ "html-escaper": "^2.0.2",
+ "is-plain-object": "^5.0.0",
+ "opener": "^1.5.2",
+ "picocolors": "^1.0.0",
+ "sirv": "^2.0.3",
+ "ws": "^7.3.1"
+ },
+ "bin": {
+ "webpack-bundle-analyzer": "lib/bin/analyzer.js"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wicked-good-xpath": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz",
+ "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==",
+ "license": "MIT"
+ },
+ "node_modules/ws": {
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/yaml": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz",
+ "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==",
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14.6"
+ }
+ },
+ "node_modules/zod": {
+ "version": "3.25.74",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.74.tgz",
+ "integrity": "sha512-J8poo92VuhKjNknViHRAIuuN6li/EwFbAC8OedzI8uxpEPGiXHGQu9wemIAioIpqgfB4SySaJhdk0mH5Y4ICBg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ },
+ "node_modules/zod-validation-error": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.5.2.tgz",
+ "integrity": "sha512-mdi7YOLtram5dzJ5aDtm1AG9+mxRma1iaMrZdYIpFO7epdKBUwLHIxTF8CPDeCQ828zAXYtizrKlEJAtzgfgrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "zod": "^3.25.0"
+ }
+ },
+ "node_modules/zustand": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.6.tgz",
+ "integrity": "sha512-ihAqNeUVhe0MAD+X8M5UzqyZ9k3FFZLBTtqo6JLPwV53cbRB/mJwBI0PxcIgqhBBHlEs8G45OTDTMq3gNcLq3A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18.0.0",
+ "immer": ">=9.0.6",
+ "react": ">=18.0.0",
+ "use-sync-external-store": ">=1.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "use-sync-external-store": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
}
+ }
}
diff --git a/package.json b/package.json
index b6c4934..daf8bb0 100644
--- a/package.json
+++ b/package.json
@@ -1,22 +1,24 @@
{
- "scripts": {
- "dev": "next",
- "build": "next build",
- "start": "next start"
- },
- "dependencies": {
- "@cloudflare/next-on-pages": "^1.13.7",
- "@napi-rs/simple-git": "^0.1.19",
- "@vercel/analytics": "^1.4.1",
- "@vercel/speed-insights": "^1.1.0",
- "next": "^15.3.5",
- "nextra": "^3.3.1",
- "nextra-theme-docs": "^3.3.1",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "vercel": "^32.3.0"
- },
- "devDependencies": {
- "@types/node": "22.10.7"
- }
+ "scripts": {
+ "dev": "next dev",
+ "build": "cross-env NODE_OPTIONS='--max-old-space-size=16384' next build",
+ "build:test": "cross-env ANALYZE=true NODE_OPTIONS='--inspect --max-old-space-size=4096' next build",
+ "build:analyze": "cross-env ANALYZE=true NODE_OPTIONS='--max-old-space-size=16384' next build",
+ "start": "next start"
+ },
+ "dependencies": {
+ "@next/bundle-analyzer": "^15.3.5",
+ "@vercel/analytics": "^1.5.0",
+ "@vercel/speed-insights": "^1.2.0",
+ "cross-env": "^7.0.3",
+ "next": "^15.3.5",
+ "nextra": "^4.2.17",
+ "nextra-theme-docs": "^4.2.17",
+ "react": "^19.1.0",
+ "react-dom": "^19.1.0"
+ },
+ "devDependencies": {
+ "@types/node": "24.0.10",
+ "@types/react": "19.1.8"
+ }
}
diff --git a/pages/_app.jsx b/pages/_app.jsx
deleted file mode 100644
index aaf16ef..0000000
--- a/pages/_app.jsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import { ThemeProvider } from 'next-themes'
-import { SpeedInsights } from "@vercel/speed-insights/next"
-import { Analytics } from "@vercel/analytics/react"
-
-export default function App({ Component, pageProps }) {
- return (
-
- {/* SpeedInsights in vercel */}
-
- {/* Analytics in vercel */}
-
-
-
- )
- }
\ No newline at end of file
diff --git a/theme.config.jsx b/theme.config.jsx
deleted file mode 100644
index 0371389..0000000
--- a/theme.config.jsx
+++ /dev/null
@@ -1,80 +0,0 @@
-import { useRouter } from 'next/router'
-import { useConfig } from 'nextra-theme-docs'
-
-export default {
- color: {
- hue: {
- dark: 336,
- light: 164
- },
- saturation: {
- dark: 72,
- light: 49
- },
- lightness: {
- dark: 59,
- light: 35
- }
- },
- footer: {
- content: (
-
- MIT {new Date().getFullYear()} ©{' '}
-
- Trance-0
-
- .
-
- )
- },
- head() {
- const { asPath, defaultLocale, locale } = useRouter()
- const { frontMatter } = useConfig()
- const url =
- 'https://notenextra.trance-0.com' +
- (defaultLocale === locale ? asPath : `/${locale}${asPath}`)
-
- return (
- <>
- {frontMatter.title || 'NoteNextra'}
-
-
-
- >
- )
- },
-
- logo: (
- <>
-
-
-
-
- NoteNextra
-
- >
- ),
- readMore: 'Read More →',
- postFooter: null,
- darkMode: false,
- navs: [
- {
- url: 'https://github.com/Trance-0/NoteNextra',
- name: 'Source'
- }
- ],
- darkMode: true,
- themeSwitch: {
- useOptions() {
- return {
- light: 'Light',
- dark: 'Dark',
- system: 'System'
- }
- }
- },
- docsRepositoryBase: 'https://github.com/Trance-0/NoteNextra/tree/main'
-}
\ No newline at end of file
diff --git a/pages/CSE332S/LNG_v1.0.py b/toolboxes/LNG_v1.0.py
similarity index 100%
rename from pages/CSE332S/LNG_v1.0.py
rename to toolboxes/LNG_v1.0.py
diff --git a/pages/CSE347/code_test.py b/toolboxes/code_test.py
similarity index 95%
rename from pages/CSE347/code_test.py
rename to toolboxes/code_test.py
index 645571f..1a5b520 100644
--- a/pages/CSE347/code_test.py
+++ b/toolboxes/code_test.py
@@ -1,108 +1,108 @@
-import random
-import time
-
-def partition(A,p,r):
- x=A[r]
- lo,hi=p,r-1
- for i in range(p,r):
- if A[i]0:
- for i in range(len(A)):
- digit=(A[i]//exp)%b
- buckets[digit].append(A[i])
- A=[]
- for bucket in buckets:
- A.extend(bucket)
- exp*=b
- return A
-
-if __name__=="__main__":
- C=[random.randint(0,10000000) for _ in range(100000)]
- A=C.copy()
- start=time.time()
- Ao=sorted(A)
- end=time.time()
- print(f"Time taken: for built-in sort {end-start} seconds")
- A=C.copy()
- start=time.time()
- randomized_quicksort(A,0,len(A)-1)
- end=time.time()
- print(A==Ao)
- print(f"Time taken: for randomized quicksort {end-start} seconds")
- A=C.copy()
- start=time.time()
- quicksort(A,0,len(A)-1)
- end=time.time()
- print(A==Ao)
- print(f"Time taken: for quicksort {end-start} seconds")
- A=C.copy()
- start=time.time()
- merge_sort(A,0,len(A)-1)
- end=time.time()
- print(A==Ao)
- print(f"Time taken: for merge sort {end-start} seconds")
- A=C.copy()
- start=time.time()
- radix_sort(A)
- end=time.time()
- print(A==Ao)
- print(f"Time taken: for radix sort {end-start} seconds")
-
+import random
+import time
+
+def partition(A,p,r):
+ x=A[r]
+ lo,hi=p,r-1
+ for i in range(p,r):
+ if A[i]0:
+ for i in range(len(A)):
+ digit=(A[i]//exp)%b
+ buckets[digit].append(A[i])
+ A=[]
+ for bucket in buckets:
+ A.extend(bucket)
+ exp*=b
+ return A
+
+if __name__=="__main__":
+ C=[random.randint(0,10000000) for _ in range(100000)]
+ A=C.copy()
+ start=time.time()
+ Ao=sorted(A)
+ end=time.time()
+ print(f"Time taken: for built-in sort {end-start} seconds")
+ A=C.copy()
+ start=time.time()
+ randomized_quicksort(A,0,len(A)-1)
+ end=time.time()
+ print(A==Ao)
+ print(f"Time taken: for randomized quicksort {end-start} seconds")
+ A=C.copy()
+ start=time.time()
+ quicksort(A,0,len(A)-1)
+ end=time.time()
+ print(A==Ao)
+ print(f"Time taken: for quicksort {end-start} seconds")
+ A=C.copy()
+ start=time.time()
+ merge_sort(A,0,len(A)-1)
+ end=time.time()
+ print(A==Ao)
+ print(f"Time taken: for merge sort {end-start} seconds")
+ A=C.copy()
+ start=time.time()
+ radix_sort(A)
+ end=time.time()
+ print(A==Ao)
+ print(f"Time taken: for radix sort {end-start} seconds")
+
diff --git a/pages/CSE442T/fun.py b/toolboxes/fun.py
similarity index 95%
rename from pages/CSE442T/fun.py
rename to toolboxes/fun.py
index 56df8bb..7cf39e5 100644
--- a/pages/CSE442T/fun.py
+++ b/toolboxes/fun.py
@@ -1,65 +1,65 @@
-from math import gcd
-
-def euclidean_algorithm(a,b):
- if a0:
- if k==0:
- break
- # raise ValueError(f"Damn, {i} generates 0 for group {p}")
- sg.append(k)
- k=(k**f)%p
- step-=1
- sg.append(1)
- # if len(sg)!=(p-1): continue
- g.append((i,[j for j in sg]))
- return g
-
-def __list_print(arr):
- for i in arr:print(i)
-
-def factorization(n):
- # Pollard's rho integer factorization algorithm
- # https://stackoverflow.com/questions/32871539/integer-factorization-in-python
- factors = []
-
- def get_factor(n):
- x_fixed = 2
- cycle_size = 2
- x = 2
- factor = 1
-
- while factor == 1:
- for count in range(cycle_size):
- if factor > 1: break
- x = (x * x + 1) % n
- factor = gcd(x - x_fixed, n)
-
- cycle_size *= 2
- x_fixed = x
-
- return factor
-
- while n > 1:
- next = get_factor(n)
- factors.append(next)
- n //= next
-
- return factors
-
-if __name__=='__main__':
- print(euclidean_algorithm(285,(10**9+7)*5))
- __list_print(get_generator(23))
+from math import gcd
+
+def euclidean_algorithm(a,b):
+ if a0:
+ if k==0:
+ break
+ # raise ValueError(f"Damn, {i} generates 0 for group {p}")
+ sg.append(k)
+ k=(k**f)%p
+ step-=1
+ sg.append(1)
+ # if len(sg)!=(p-1): continue
+ g.append((i,[j for j in sg]))
+ return g
+
+def __list_print(arr):
+ for i in arr:print(i)
+
+def factorization(n):
+ # Pollard's rho integer factorization algorithm
+ # https://stackoverflow.com/questions/32871539/integer-factorization-in-python
+ factors = []
+
+ def get_factor(n):
+ x_fixed = 2
+ cycle_size = 2
+ x = 2
+ factor = 1
+
+ while factor == 1:
+ for count in range(cycle_size):
+ if factor > 1: break
+ x = (x * x + 1) % n
+ factor = gcd(x - x_fixed, n)
+
+ cycle_size *= 2
+ x_fixed = x
+
+ return factor
+
+ while n > 1:
+ next = get_factor(n)
+ factors.append(next)
+ n //= next
+
+ return factors
+
+if __name__=='__main__':
+ print(euclidean_algorithm(285,(10**9+7)*5))
+ __list_print(get_generator(23))
print(factorization(162000))
\ No newline at end of file
diff --git a/pages/CSE559A/mlp_image_reconstruction.py b/toolboxes/mlp_image_reconstruction.py
similarity index 100%
rename from pages/CSE559A/mlp_image_reconstruction.py
rename to toolboxes/mlp_image_reconstruction.py
diff --git a/pages/Math3200/public_html_ifram_gen.py b/toolboxes/public_html_ifram_gen.py
similarity index 100%
rename from pages/Math3200/public_html_ifram_gen.py
rename to toolboxes/public_html_ifram_gen.py
diff --git a/tsconfig.json b/tsconfig.json
index c3208e2..1fda10e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -13,15 +13,22 @@
"incremental": true,
"module": "esnext",
"esModuleInterop": true,
- "moduleResolution": "node",
+ "moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
- "jsx": "preserve"
+ "jsx": "preserve",
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "strictNullChecks": true
},
"include": [
- "next-env.d.ts",
"**/*.ts",
- "**/*.tsx"
+ "**/*.tsx",
+ "next-env.d.ts",
+ ".next/types/**/*.ts"
],
"exclude": [
"node_modules"