Java互联网架构师系统进阶课程(三期VIP)
, x0 r7 Q+ P7 P├──01JVM性能调优 + p9 S1 \* [8 P0 B7 M
| ├──01 虚拟机的前世今生和Java内存区域(1) .mp4 758.12M
0 ?; C1 v; W" E4 [| ├──02 深入理解Java内存区域(1) .mp4 835.55M
' n: j3 p C' f" O! o4 u( G| ├──03 玩转JVM中的对象及引用(1) .mp4 848.04M7 [( H" ^* G+ c* ]& {
| ├──04 分代回收机制及垃圾回收算法(1) .mp4 762.68M
( M7 F0 b0 | d| ├──05 JVM面试“核武器”JVM底层细节(1) .mp4 695.74M2 h0 j+ a# y/ q$ D0 u
| ├──06 Class文件结构及深入字节码指令(1) .mp4 942.99M$ g; |: H( K% F, q+ F- P
| ├──07 类加载机制与类加载器(1) .mp4 995.21M
4 K* H% u) f) E/ h| ├──08 方法调用的底层实现(1 .mp4 1.01G( D3 M3 X; g2 ]9 J
| ├──09 Java语法糖及实现(1) .mp4 849.83M! R/ A# K) @. P
| └──10 GC调优基础知识之工具篇(原生+Arthas)(1) .mp4 1.23G7 O+ R; J/ x, C9 N: T9 f: }; ~
├──02 JVM性能调优 % s1 d1 o- d9 R5 }! N: h
| ├──01 GC调优基础知识之工具篇(原生+Arthas)(2) .mp4 1.14G
. v' |* b* ?; |: F7 t* O: p) U8 W| ├──02 JVM调优实战之CPU占用过高(1) .mp4 1.58G
' [8 P1 |# A$ F6 Q; l" Y3 {. [8 R) U4 O| ├──03 JVM性能调优之预估调优与问题排查(1) .mp4 1.02G
3 F' L, D6 [# P# I| ├──04 玩转MAT,分析内存泄漏(1) .mp4 996.10M3 Y3 v6 [9 }+ a; \- V+ o
| ├──05 直接内存与JVM源码分析(1) .mp4 1.25G
, y' c% t) [3 J& @| └──06 JVM之大结局(1) .mp4 996.79M
( Y' p: p! g$ q8 a# h% J. {1 @2 f- C├──03 并发编程
6 {8 T$ E( ?. F. H0 Y. P* ?| ├──01 java线程的本质、线程模型(1) .mp4 1.04G# X5 a* ?+ K. N
| ├──02 java线程run方法的本质(1) .mp4 1.19G
( w+ F% A* ?. o) [+ x- B2 M$ n| ├──03 synchronized关键字得原理分析一(1) .mp4 1.19G
$ r U% J9 d( B6 a8 [' n| ├──04 synchronized关键字原理—锁的膨胀(1) .mp4 1.51G
. b; z) H$ T( }% l) S* y0 l| ├──05 synchronized关键字原理-锁的膨胀过程(1 .mp4 1.88G( z F* J, `( D) V- ~! F) }. \
| ├──06 synchronized关键字原理-锁的膨胀过程二(1) .mp4 1.22G3 ^+ M8 b9 p. G2 M9 `. I. T) \
| ├──07 synchronized关键字原理-锁的膨胀过程三(1) .mp4 1.29G7 N" z% `2 F1 Q$ E8 A- l
| ├──08 synchronized关键字的使用和优化(1) .mp4 1.13G4 Q6 y, G$ \; M( B& I
| └──09 ReentranLock 的基本使用和设计模式(1) .mp4 1.05G' I7 A7 f' `+ D' {
├──04 并发编程 5 K8 s# @3 n! O& S1 N( t! r' {
| ├──01 aqs框架的源码分析(1) .mp4 1.28G) ^" Y4 c" L! z& Z9 r' L
| ├──02 ReentrantLock解锁流程和读写锁源码(1) .mp4 1.06G: {5 O+ _' a7 H- l, n3 r
| ├──03 aqs之读写锁原理分析(1) .mp4 1.16G
) Y7 S0 K* v! N' W| ├──04 juc工具类的使用和原理(1) .mp4 1.23G1 j" H8 {4 B0 k+ ^) A
| ├──05 模拟线程池的原理实现(1) .mp4 1.19G
5 H) b ~! U8 J A( n| ├──06 ThreadPoolExecutor线程池(1) .mp4 1.17G9 ?- Y+ v! x% a1 T/ n
| ├──07 线程池源码分析(1) .mp4 1.35G9 ]$ f# G! r+ m) @! h$ M9 [) k8 I
| ├──08 如何解决JAVA的有序性和可见性(1) .mp4 946.77M
7 |: B k, A7 \ c| ├──09 如何理解JAVA的内存模型(1) .mp4 977.11M4 t% N7 P; Y% N' F4 C S
| └──10 currenthashmap源码分析(1) .mp4 1.35G
% @& G1 P' K! p$ n├──05 并发编程网络协议与netty
3 z. e0 c3 y* ?& f' v| ├──01 forkjoin线程池得原理和应用(1) .mp4 898.41M" o9 u3 e* ]1 @0 z i
| ├──02 网络协议和常用网络工具(1) .mp4 1.03G* s* o0 |5 w3 a0 D
| ├──03 Java原生网络编程(1) .mp4 1.30G
$ S' G5 F) ^8 ^5 l. @| ├──04 Java原生网络编程2(1) .mp4 1.76G w! i8 G7 Q8 f+ Y! U
| ├──05 Java原生网络编程3(1) .mp4 1.65G9 P* u; d/ A% e. b+ q
| └──06 Netty基础入门和应用(1) .mp4 1.78G
* ^* W# M% T: T: i, Z( k├──06 网络协议 7 Y8 b* E% M5 \+ y! A/ z/ [6 I
| ├──01 Netty基础入门和应用2(1) .mp4 1.77G# u! ] i" p' r* h2 M$ X
| ├──02 Netty基础入门和应用3(1) .mp4 1.57G
5 ?; Y7 |7 s+ n( U| ├──03 Netty基础入门和应用4(1) .mp4 2.27G/ P) h: V4 d3 R& K6 B p
| └──04 Netty进阶和实战(1) .mp4 1.29G, \" }1 c5 D9 @7 F* J1 `
├──07 网络协议与Netty 5 o7 S) y9 s9 p4 ]# W; m/ i4 g
| ├──01 Netty进阶和实战2(1) .mp4 1.64G
& F$ A; F* v% M- I+ z1 W| ├──02 Netty进阶和实战3(1) .mp4 1.89G
7 G' o3 M' T9 f; U! u4 u V6 || ├──03 Linux和JDK对网络通信的实现(1) .mp4 1.13G- U2 t3 r y) z+ i4 [3 y" ~ Z
| ├──04 Linux和JDK对网络通信的实现2(1) .mp4 1.67G
$ k* L( ]+ H4 P9 Y9 B& Q| ├──05 Linux和JDK对网络通信的实现3(1) .mp4 1.36G
U- t/ x; y' T/ a. z| ├──06 Linux和JDK对网络通信的实现4(1) .mp4 1.91G# R, d2 t& K% }; P9 Z1 Z
| └──07 Netty源码解析(1) .mp4 1.96G
! B' Y/ g$ a- {7 n) r├──08 网络协议与NettySpring源码
3 h4 X9 p# d' y, E' @| ├──01 Netty源码解析2(1) .mp4 2.03G
7 Y, M' x- W9 \6 Z. Z1 P' `& \% N& h" z| ├──02 Netty源码解析3(1) .mp4 1.82G
: U6 _* e0 I1 s| ├──03 Netty源码解析4(1) .mp4 1.73G
4 c3 ]3 h/ W4 Q& p: }# m- R0 M( C| ├──04 Netty源码解析5(1) .mp4 1.49G
0 {# U$ i4 G, ?" y| └──05 spring源码编译和xml解析(1) .mp4 2.00G0 o/ Y2 Z: |/ X/ V
├──09 Spring源码 & i" u/ b: t" f7 r- K8 m" A1 I
| ├──01 BeanDefinition和默认标签、自定义标签解析(1) .mp4 1.89G
; g! v& |3 C1 n| ├──02 component-scan标签解析和bean实例化初探(1) .mp4 1.98G B6 \' {: Q; Q, f6 O
| ├──03 BeanPostProcessor和Bean实例化初探(1) .mp4 2.07G
, ?$ U: `0 v2 d# F! E+ D: _| └──04 bean的实例化和注解的收集(1) .mp4 2.11G
% T* G: m7 \; f4 G├──10 Spring源码
1 M0 E6 v' [. I5 Y| ├──1 @Autowired@PostConstruct@PreDestroy注解(1) .mp4 1.95G
' l" \: Y$ z8 k3 y| ├──2 spring中循环依赖详解(1) .mp4 1.90G- b8 O/ L' S( ^/ ^" q
| └──3 spring中配置文件解析和Environment对象 .mp4 2.11G
6 @+ A# m* N# U( f. t: C├──11 spring源码
3 \7 M6 m9 v) I5 P3 H| └──自定义scope和factoryBean接口(1) .mp4 2.08G6 L$ k; k0 i3 r' H4 \+ L! R+ M
├──12 Spring源码
9 j, }; x* t0 L. J) \( G| ├──1 ConfigurationClassPostProcessor类源码(1) .mp4 2.07G
0 n, H' q5 I3 L x( a ^' ?| ├──2 ConfigurationClassPostProcessor类源码2(1) .mp4 2.05G
1 t1 }" U `. R+ J| ├──3 spring的实战代码案例1及AOP基础 .mp4 2.17G. n) v6 \8 B' l# b Z
| ├──4 动态代理和AOP的初见 .mp4 2.05G
' j( D8 s) b+ n) I' {| └──5 代理的生成和链式调用流程 .mp4 2.34G
$ c3 d8 F! U# {" [* q8 U& D├──13 Spring源码 ) n, }4 L- r; T$ F7 m7 A
| ├──1 链式调用过程和AOP周边 .mp4 2.37G( ]0 f4 |( Z6 i, E* V5 g
| ├──2 spring的实战代码案例2之巩固AOP .mp4 2.39G. w- c& }2 f- Y+ ^
| ├──3 spring的事务切面精讲1 .mp4 2.11G7 z: P* _ E8 D
| └──4 spring的事务传播属性精讲 .mp4 2.26G
/ w/ U4 A) s$ E0 d! u2 Q) J├──14 Spring源码
& I+ X9 P( o3 V. x" a+ t' \* g| ├──1 spring的事务传播属性精讲 .mp4 2.22G# a6 e6 I9 C$ p0 ]! v
| ├──2 缓存切面和异步切面 .mp4 2.32G! _# G$ ?! `: l
| ├──3 缓存框架和springmvc零配置原理 .mp4 2.35G
# b/ b) F( H6 g: c2 a/ @! U/ d b| ├──4-1springmvc中请求的调用流程 .mp4 735.32M6 j% f* y5 d$ T- o; z6 _
| ├──4-2 springmvc中请求的调用流程 .mp4 1.42G ]* l2 ~: h1 ]" r" N) u/ Z- R9 V
| └──5 JSON参数解析和视图响应 .mp4 2.08G
% }' A+ o- [0 z( f! D7 B├──15 Spring源码mybatis . [$ m3 \& p# Y2 _& ^2 ?$ N! ]1 {
| ├──2 异常处理、拦截器和跨域问题 .mp4 2.43G
" i( E8 l0 J/ S' u& @( C| ├──3 springmvc实战、spring总流程归档 .mp4 2.24G
) Z6 e$ [ q; z; p# r* b| ├──4 spring总流程归档 .mp4 2.15G
3 f+ H1 L# k/ b| ├──5 MyBatis开发重点知识 .mp4 1.02G
3 g6 g; p% n7 c1 M/ p3 R1 r) f2 z| ├──6 mybatis缓存使用和xml解析源码 .mp4 2.12G# D9 x( ?7 |6 H6 d- Q: s
| └──7 MyBatis开发重点知识 .mp4 856.80M
. G% m$ h w, l) B9 H/ Q0 Q7 c├──16 MyBatis % C. N/ k; ?4 f/ o) @
| ├──1 全局xml解析和mapper中sql的解析 .mp4 2.15G
0 _/ w* G# l7 g: I4 N, R| ├──2 SQL的执行之Executor组件 .mp4 2.24G6 j. A: P+ m' L: z2 K& e( Q( ?5 {+ m
| ├──3 StatementHandler和ResultSetHandler组件 .mp4 2.30G
' ]9 U5 f6 _8 h' d c7 a8 a| ├──4 mybatis中的缓存原理和懒加载原理 .mp4 2.24G
7 O# d8 ~; M; G4 n' K. m| ├──5 mybatis的plugin和跟spring的整合 .mp4 2.00G
) Y" j! y" O$ r7 e| └──6 mybatis跟spring整合自定义分页等插件原理 .mp4 2.17G
9 H9 k$ z% A, r+ u* \├──17 MySQL 5 C/ E/ U; Y+ R; x! Z$ m6 I' I
| ├──1 自定义分页等插件及mybatis复习 .mp4 2.20G6 E/ M! M: B) s; \
| ├──2 全盘了解MySQL .mp4 2.36G% F9 P P! {/ `7 q2 F' N$ y/ G
| ├──3 MySQL中表设计和数据类型优化 .mp4 2.06G
( P) H9 X3 U+ Q2 U3 i| └──4 高性能索引(一) .mp4 1.77G+ P& l. z2 `8 m( c' f8 `" c
├──17 分布式常见场景解决方案实战MongoDB进阶
" T' q( Y( r& \! g| ├──1 session共享与单点登陆实战 .mp4 2.20G" P% }/ A! W3 {, H; V3 ^ S, z$ ~
| ├──2 分布式任务调度实战 .mp4 2.36G
# a* X6 v `; B% ?, S. q" z* g| ├──3 MongoDb综 .mp4 2.06G
1 C) ^6 L# l2 H/ ]6 z$ Y- \| └──4 MongoDb快速入门 .mp4 1.77G' r# ]3 H! W ~
├──18 MongoDB进阶 % e3 Y. B- b- F$ t( Z1 c, O
| ├──1 MongoDb查询进阶- .mp4 2.26G% g) l0 }$ C x* P- r7 @9 a
| └──2 MongoDb操作进阶- .mp4 2.26G
& z) ^' {0 o! K6 I7 R9 {: n├──18 MySQL , q5 |3 k. a: x
| ├──1 高性能索引(二) .mp4 651.40M7 m$ @2 D) I, U4 T, T' I# ~7 G9 @
| └──2 高性能索引(三) .mp4 2.26G9 O& i2 O- G6 w: K
├──19 MongoDB进阶spring源码分析
+ y j/ C* D2 A2 B1 k+ x: O| └──1 MongoDb高级进阶 .mp4 1.97G
3 O, R; @/ v8 I; |: k: [├──19 MySQL
2 K$ N* S" @8 I9 p/ W7 q| ├──1 MySQL性能优化(一) .mp4 1.97G1 s. W! r- b5 _' T1 y% ?
| ├──2 MySQL性能优化(二) .mp4 2.15G3 d$ _& l$ u+ g$ J$ C2 ]
| ├──3 MySQL的底层执行原理(一) .mp4 1.92G
( u. V, \' x; E' j! ?| └──4 MySQL的底层执行原理(二) .mp4 1.81G
) C/ F( k! `, {├──20 MySQL
# n" Y6 _3 y) z! `2 D| ├──1 MySQL的底层执行原理(三) .mp4 1.67G
7 H# I* q& Q( I| └──2 InnoDB引擎底层解析 .mp4 1.69G
$ P& y1 O" `1 L8 y1 ]├──21 MySQL ! H5 M6 }9 c+ x9 H8 d4 M
| ├──1 InnoDB引擎底层解析 .mp4 967.41M
1 J8 d" F, g/ } _| ├──2 事务的原理和MVCC .mp4 806.35M
2 i- J3 N4 }/ F| ├──3 事务的原理和MVCC(二) .mp4 789.24M
+ z; z1 i J+ w| └──4 MySQL中的锁、面试题和实战那些事 .mp4 795.23M0 f3 ~, H4 w4 V
├──21 spring5源码分析
$ P) c1 x: `/ L, n& W# z| ├──1 循环依赖原理和Bean实例化大流程梳理- .mp4 1.75G
7 |7 A/ y& Y* ` Q! a| └──2 @Bean@Import和bean的多例作用域- .mp4 1.55G
. I, g+ c; `9 R├──22 MySQLRocketMQ 0 o8 {( g3 V: ?" j5 g, k J$ J3 `
| ├──1 MySQL中的锁、面试题和实战那些事(二)- .mp4 2.08G
4 F$ [$ y9 L$ e| ├──2 RocketMQ基础篇(上)- .mp4 1.90G
) M) P! y/ k0 [4 M7 e8 S8 G0 t5 f| ├──3 RocketMQ基础篇(下)- .mp4 2.39G
# u! u% y( J$ S| └──4 RocketMQ内部机制-存储设计- .mp4 2.07G
2 J$ u4 ?" t }; A$ @├──23 RocketMQ * L! }8 r, p u* {# C# l
| ├──1 RocketMQ内部机制-高可用机制- .mp4 2.00G
R& ?5 u3 D8 I. a/ L( D% _. t' ^6 y| └──2 RocketMQ实战-异步结构与流量削峰- .mp4 2.15G
/ L& `* h! t- k: I3 G4 n├──24 RocketMQ . }& l5 z4 X! c% L0 p+ [4 A
| ├──1 RocketMQ实战-限时订单与分布式事务- .mp4 2.24G
1 h6 t( c7 U$ l1 |7 G- S+ O2 E| ├──2 RocketMQ源码分析-整体架构与NameServer- .mp4 2.13G
2 O9 {4 x5 N6 o) h6 Q- d| ├──3 RocketMQ源码分析-Producer与Store- .mp4 2.02G% A: m/ u! K9 Q2 G
| └──4 RocketMQ源码分析-Consumer- .mp4 2.05G0 _/ F4 j2 c( G" u# _
├──25 Dubbo
, {3 C" ]$ U/ n0 `. [( Q1 d| ├──1 Dubbo源码探析--服务的暴露与消费过程- .mp4 2.02G
y, {, S, C5 G. P4 ?| └──2 Dubbo源码探析--服务的发布订阅过程- .mp4 2.02G
: y' [: Z& d. d8 U6 o7 T- M├──回顾
& k ~% ]5 t6 N0 {| ├──07 网络协议与Netty
l* Z3 C r* D/ C| ├──08 Netty高级进阶 4 ]! s, ?' {; g1 f' ?
| ├──09 Tomcat系统进阶 : M2 K3 M: ~; E
| ├──13 Spring源码
$ a4 Y6 w+ U% x! [| ├──14 Spring源码 & h, _, A0 m1 n; u. v/ e7 C
| ├──15 Spring源码- r# m, k5 V b2 {
| └──16 Redis高性能缓存数据库分布式常见场景解决方案实战
6 M# q3 v8 j2 W( K├──回顾2 o& M6 X/ S2 R% t' O
| ├──07 网络协议与Netty
* h+ U3 ~1 u0 {+ t& X| | ├──02 深入学习Netty组件(1)- .mp4 623.23M
1 z i1 \! l% h/ U; ?: Z| | ├──03 TCP粘包,半包问题和Netty编解码器框架(1)- .mp4 1.13G
; i+ S9 J. O4 g' w# g% r" X| | ├──04 序列化问题、实现UDP通信(1)- .mp4 1.67G
4 O6 D, [8 Y5 |: p$ Q| | ├──05 服务器推送技术-轮询、SSE和WebSocket(1)- .mp4 1.36G2 ^& T8 f" S3 g! h$ g+ t# x
| | ├──06 基于Netty的WebSocket通信(1)- .mp4 1.91G6 J1 z8 f4 q( q* d- s+ a
| | └──07 基于Netty实现自己的通信框架(1)- .mp4 1.96G5 [9 `2 @1 ^( K, a `
| ├──08 Netty高级进阶
# w Z! o/ Y0 d7 X% X| | ├──01 BIO和NIO的源码解析(1)- .mp4 2.03G5 m& M' L K2 _3 U/ {; z
| | ├──02 Netty源码解析(一)(1)- .mp4 1.82G1 E" ^7 X( J( }! t$ l% N$ E; T
| | ├──03 Netty源码解析(二)(1)- .mp4 1.73G
- t. ^+ j. N; L3 \' [+ z| | ├──04 操作系统网络底层原理和源码(一)(1)- .mp4 1.49G
9 e* m' J; k; m; M| | └──05 操作系统网络底层原理和源码(二)(1)- .mp4 2.00G
1 t0 J8 g: `5 e! {" z6 G| ├──09 Tomcat系统进阶 1 O7 q5 \( s2 h y _" b
| | ├──01 Tomcat源码解读(1) .mp4 1.98G
5 c/ E' c# c/ b7 I4 k( j| | └──02 Tomcat架构解析(1) .mp4 1.89G
! Y; G( W0 s% ]! P- ]% C| ├──13 Spring源码 6 |) A$ i' Z8 o; u+ `
| | ├──1 数据库事务和spring如何管理事务(1)- .mp4 2.37G0 N+ ?( s$ v7 s' T
| | ├──2 spring事务的传播属性和隔离级别源码讲解- .mp4 2.39G
" H) K( b' a, Q% F6 G| | ├──3 事务隔离级别 cacheable缓存切面和异步切面- .mp4 2.11G
! H# g6 _8 h' L% w0 y| | └──4 spring的实战代码案例2- .mp4 2.26G
% c8 x2 @' a$ Z; m7 ]/ F| ├──14 Spring源码 0 H5 k2 J2 D3 _: M3 j0 p
| | ├──1 零xml配置整合springmvc和嵌入式tomcat- .mp4 2.22G0 H: n$ t) _# \5 a3 v
| | ├──2 springmvc请求响应核心调用流程和过滤器- .mp4 2.32G* H* s' z* R) d; j S
| | ├──3 特殊参数解析返回值解析视图渲染- .mp4 2.35G: w. I, K+ \' ]2 P
| | ├──4 spring&springmvc大总结- .mp4 735.32M
- T; A8 H/ b0 E ?! }1 l| | └──5 spring&springmvc大总结- .mp4 1.42G
3 w* h! ~+ i7 ]" Q, || ├──15 Spring源码 4 u `" I* v6 y$ ?4 ^( ?
| | ├──1 静态视图、异常处理和拦截器- .mp4 2.23G. v! V6 v2 V: H7 n3 }; H. ~, G9 O6 ?
| | ├──2 搞定RocketMQ消息存储及事务- .mp4 2.43G) V q) e% L1 X& ?. `
| | ├──3 主从同步机制和与Spring整合- .mp4 2.24G! M9 V5 g: P, T. f7 q: B/ I
| | ├──4 RocketMQ限时订单实战- .mp4 2.15G
- _) I2 d3 R3 d, `+ ?| | ├──5 RocketMQ源码解析- .mp4 1.02G: N% ^+ F9 K4 j" P. O4 w) Q+ J
| | ├──6 Redis从入门到狂澜- .mp4 2.12G) Z' R0 ?6 j& e$ G
| | └──7 RocketMQ源码解析- .mp4 856.80M0 |# D+ }9 M! z. a' i
| ├──16 Redis高性能缓存数据库分布式常见场景解决方案实战 - X; m9 K3 R+ G% w
| | └──1 BAT常见Redis场景设计实战- .mp4 2.15G' b' l, {- K; Z. l4 V
| ├──3 spring的实战代码案例1(1)- .mp4 2.17G
7 C: V' M" p# O( T| ├──4 aop入口及aop中的各种advice和advisor(1)- .mp4 2.05G
" W" c! k2 q( Z' F6 D7 }| └──5 AOP链式调用过程和cglib动态代理(1)- .mp4 2.33G
' J6 R6 y, W( n7 |: P" r9 {" g├──资料 ' }9 l/ J7 s' ]8 ]0 p% Y
| ├──3.16 .zip 1.74G
' S0 \# t5 ]1 I2 w1 p3 v( }/ J( r; W| ├──5.11 .zip 173.87M
0 \+ _- @1 [/ p| └──资料(Java-vip) .zip 585.04M8 b6 m \: D' E7 S4 R" F
├──Java高级进阶面试题目_享学课堂 .pdf 3.93M
8 y- Z0 S( ^7 \: k├──第三期课程(Java-vip) .zip 1.46G- [8 ]/ B8 k2 I* E
└──享学首创年薪80W+对标P7岗架构师成长路线V7.0 .png 1.81M
' E7 ~% n- y+ ^
; W* a$ i9 ?/ @' M3 p% S' [1 l! M1 U
: \7 h0 p' \5 G1 _: _永久至尊VIP回复即可下载学习,非至尊VIP暂不支持下载此资源!: F* A" l0 a2 T
, {3 d( c( w, U6 d/ C: Z+ R
/ V, P# v4 y( g& O+ Z |