From ce5869db4ba71c3c1c04be6938bce3307e1cfe62 Mon Sep 17 00:00:00 2001 From: guide Date: Tue, 1 Sep 2020 10:39:13 +0800 Subject: [PATCH] remove netty --- README.md | 21 -- docs/netty/Bootstrap引导.md | 125 -------- docs/netty/ByteBuf容器.md | 242 ---------------- .../netty/ChannelHandler和ChannelPipeline.md | 268 ------------------ docs/netty/Codec编码与解码.md | 156 ---------- docs/netty/Netty特性.md | 59 ---- docs/netty/Netty简介.md | 77 ----- docs/netty/Netty线程模型和EventLoop.md | 101 ------- docs/netty/Netty组件.md | 141 --------- docs/netty/Transport传输.md | 161 ----------- docs/{java => operating-system}/Linux_IO.md | 0 .../netty/Bootstrap客户端引导过程.png | Bin 51366 -> 0 bytes .../netty/Bootstrap引导类功能.png | Bin 27276 -> 0 bytes .../netty/Bootstrap类层次结构.png | Bin 9728 -> 0 bytes media/pictures/netty/ByteBuf内部分段.png | Bin 31567 -> 0 bytes .../pictures/netty/ByteBuf的clear方法.png | Bin 6791 -> 0 bytes .../netty/ByteBuf的clear方法调用前.png | Bin 19738 -> 0 bytes .../netty/ByteBuf的clear方法调用后.png | Bin 27688 -> 0 bytes media/pictures/netty/ByteBuf结构.png | Bin 16932 -> 0 bytes ...ontext和ChannelHandler之间的关系.png | Bin 51964 -> 0 bytes .../netty/ChannelHandler接口层次图.png | Bin 23823 -> 0 bytes .../ChannelInboundHandler释放ByteBuf.png | Bin 37258 -> 0 bytes ...ChannelPipeline的ChannelHandler顺序.png | Bin 19012 -> 0 bytes media/pictures/netty/Channel接口层次.png | Bin 34977 -> 0 bytes media/pictures/netty/Channel状态模型.png | Bin 9195 -> 0 bytes ...dReadBytes回收后ByteBuf内部分段.png | Bin 36226 -> 0 bytes .../pictures/netty/EventLoop任务调度.png | Bin 50075 -> 0 bytes .../pictures/netty/EventLoop执行逻辑.png | Bin 76369 -> 0 bytes media/pictures/netty/EventLoop模型.png | Bin 89699 -> 0 bytes .../netty/EventLoop类层次结构图.png | Bin 22982 -> 0 bytes .../pictures/netty/EventLoop阻塞分配.png | Bin 72541 -> 0 bytes .../netty/EventLoop非阻塞分配.png | Bin 117192 -> 0 bytes .../netty/Netty内置Channel接口层次.png | Bin 18799 -> 0 bytes media/pictures/netty/Netty出站入站.png | Bin 28985 -> 0 bytes media/pictures/netty/Netty架构总览.png | Bin 50548 -> 0 bytes .../ReplayingDecoderByteBuf内部实现.png | Bin 83067 -> 0 bytes .../ServerBootStrap服务端引导过程.png | Bin 37227 -> 0 bytes ...nnelInboundHandler的ChannelRead方法.png | Bin 43445 -> 0 bytes media/pictures/netty/mmp零拷贝.png | Bin 58731 -> 0 bytes media/pictures/netty/sendfile零拷贝.png | Bin 47524 -> 0 bytes media/pictures/netty/堆缓冲区模式.png | Bin 102325 -> 0 bytes .../pictures/netty/复合缓冲区模式.png | Bin 72358 -> 0 bytes media/pictures/netty/普通IO拷贝.png | Bin 59275 -> 0 bytes .../pictures/netty/直接缓冲区模式.png | Bin 80203 -> 0 bytes .../编码解码器codec层次结构.png | Bin 18568 -> 0 bytes .../pictures/netty/获取ByteBufAllocator.png | Bin 38714 -> 0 bytes ...nelHandlerContext进行的事件传播.png | Bin 70191 -> 0 bytes ...ChannelPipeline进行的事件传播.png | Bin 88123 -> 0 bytes media/pictures/netty/随机访问索引.png | Bin 17556 -> 0 bytes 49 files changed, 1351 deletions(-) delete mode 100644 docs/netty/Bootstrap引导.md delete mode 100644 docs/netty/ByteBuf容器.md delete mode 100644 docs/netty/ChannelHandler和ChannelPipeline.md delete mode 100644 docs/netty/Codec编码与解码.md delete mode 100644 docs/netty/Netty特性.md delete mode 100644 docs/netty/Netty简介.md delete mode 100644 docs/netty/Netty线程模型和EventLoop.md delete mode 100644 docs/netty/Netty组件.md delete mode 100644 docs/netty/Transport传输.md rename docs/{java => operating-system}/Linux_IO.md (100%) delete mode 100644 media/pictures/netty/Bootstrap客户端引导过程.png delete mode 100644 media/pictures/netty/Bootstrap引导类功能.png delete mode 100644 media/pictures/netty/Bootstrap类层次结构.png delete mode 100644 media/pictures/netty/ByteBuf内部分段.png delete mode 100644 media/pictures/netty/ByteBuf的clear方法.png delete mode 100644 media/pictures/netty/ByteBuf的clear方法调用前.png delete mode 100644 media/pictures/netty/ByteBuf的clear方法调用后.png delete mode 100644 media/pictures/netty/ByteBuf结构.png delete mode 100644 media/pictures/netty/ChannelHandlerContext和ChannelHandler之间的关系.png delete mode 100644 media/pictures/netty/ChannelHandler接口层次图.png delete mode 100644 media/pictures/netty/ChannelInboundHandler释放ByteBuf.png delete mode 100644 media/pictures/netty/ChannelPipeline的ChannelHandler顺序.png delete mode 100644 media/pictures/netty/Channel接口层次.png delete mode 100644 media/pictures/netty/Channel状态模型.png delete mode 100644 media/pictures/netty/DiscardReadBytes回收后ByteBuf内部分段.png delete mode 100644 media/pictures/netty/EventLoop任务调度.png delete mode 100644 media/pictures/netty/EventLoop执行逻辑.png delete mode 100644 media/pictures/netty/EventLoop模型.png delete mode 100644 media/pictures/netty/EventLoop类层次结构图.png delete mode 100644 media/pictures/netty/EventLoop阻塞分配.png delete mode 100644 media/pictures/netty/EventLoop非阻塞分配.png delete mode 100644 media/pictures/netty/Netty内置Channel接口层次.png delete mode 100644 media/pictures/netty/Netty出站入站.png delete mode 100644 media/pictures/netty/Netty架构总览.png delete mode 100644 media/pictures/netty/ReplayingDecoderByteBuf内部实现.png delete mode 100644 media/pictures/netty/ServerBootStrap服务端引导过程.png delete mode 100644 media/pictures/netty/SimpleChannelInboundHandler的ChannelRead方法.png delete mode 100644 media/pictures/netty/mmp零拷贝.png delete mode 100644 media/pictures/netty/sendfile零拷贝.png delete mode 100644 media/pictures/netty/堆缓冲区模式.png delete mode 100644 media/pictures/netty/复合缓冲区模式.png delete mode 100644 media/pictures/netty/普通IO拷贝.png delete mode 100644 media/pictures/netty/直接缓冲区模式.png delete mode 100644 media/pictures/netty/编码解码器codec层次结构.png delete mode 100644 media/pictures/netty/获取ByteBufAllocator.png delete mode 100644 media/pictures/netty/通过ChannelHandlerContext进行的事件传播.png delete mode 100644 media/pictures/netty/通过Channel或ChannelPipeline进行的事件传播.png delete mode 100644 media/pictures/netty/随机访问索引.png diff --git a/README.md b/README.md index f0c5b002..e8e21c79 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,6 @@ * [常用框架](#常用框架) * [Spring/SpringBoot](#springspringboot) * [MyBatis](#mybatis) - * [Netty](#netty-1) * [认证授权](#认证授权) * [JWT](#jwt) * [SSO(单点登录)](#sso单点登录) @@ -181,26 +180,6 @@ 1. [计算机网络常见面试题](docs/network/计算机网络.md) 2. [计算机网络基础知识总结](docs/network/干货:计算机网络知识总结.md) -## Netty - -- [Netty简介](docs/netty/Netty简介.md) - - - [Netty特性](docs/netty/Netty特性.md) - - - [Netty组件](docs/netty/Netty组件.md) - - - [Transport传输](docs/netty/Transport传输.md) - - - [ByteBuf容器](docs/netty/ByteBuf容器.md) - - - [ChannelHandler和ChannelPipeline](docs/netty/ChannelHandler和ChannelPipeline.md) - - - [Netty线程模型和EventLoop事件循环](docs/netty/Netty线程模型和EventLoop.md) - - - [Bootstrap引导](docs/netty/Bootstrap引导.md) - - - [Codec编码与解码](docs/netty/Codec编码与解码.md) - ## 操作系统 diff --git a/docs/netty/Bootstrap引导.md b/docs/netty/Bootstrap引导.md deleted file mode 100644 index 4086d9e9..00000000 --- a/docs/netty/Bootstrap引导.md +++ /dev/null @@ -1,125 +0,0 @@ - - - * [Bootstrap引导](#bootstrap引导) - * [Bootstrap类](#bootstrap类) - * [引导客户端和无连接协议](#引导客户端和无连接协议) - * [引导服务端](#引导服务端) - - - -# Bootstrap引导 -在了解ChanelPipeline,EventLoop等组件之后,我们需要将这些组件组织起来,使其成为一个可运行的应用程序。 -这里就需要引导这些组件了。 - - -## Bootstrap类 -引导类的层次结构包括一个抽象的父类和两个具体的引导子类: - -![Bootstrap类层次结构](../../media/pictures/netty/Bootstrap类层次结构.png) - -ServerBootstrap总是需要一个ServerSocketChannel来处理客户端的连接通信,而 -Bootstrap则只需要一个普通的Channel用于与服务端的通信。 - -下面是AbstractBootstrap的主要方法: - -| 方法 | 描述 | -| :--- | :--- | -| group | 设置用语处理所有事件的EventLoopGroup | -| channel | 指定服务端或客户端的Channel | -| channelFactory | 如果引导没有指定Channel,那么可以指定ChannelFactory来创建Channel | -| localAddress | 指定Channel需要绑定的本地地址,如果不指定,则将由系统随机分配一个地址 | -| remoteAddress | 设置Channel需要连接的远程地址 | -| attr | 指定新创建的Channel的属性值 | -| handler | 设置添加到ChannelPipeline中的ChannelHandler | -| connect | 连接到远程主机,返回ChannelFuture,用于连接完成的回调 | -| bind | 绑定指定地址,返回ChannelFuture,用于绑定完成的回调 | - - -### 引导客户端和无连接协议 -Bootstrap负责Netty应用程序的客户端引导,作为客户端,我们需要使用到connect API来连接到远程 -服务端,其过程如下: - -![Bootstrap客户端引导过程](../../media/pictures/netty/Bootstrap客户端引导过程.png) - -客户端引导的编程模型如下: - -````text - -//创建EventLoopGroup -EventLoopGroup group = new NioEventLoopGroup(); -//创建客户端引导 -Bootstrap bootstrap = new Bootstrap(); -//配置各种属性,如Channel,ChannelHandler等 -bootstrap.group(group) - .channel(NioSocketChannel.class) - .handler(new SimpleChannelInboundHandler() { - @Override - protected void channeRead0( - ChannelHandlerContext channelHandlerContext, - ByteBuf byteBuf) throws Exception { - System.out.println("Received data"); - byteBuf.clear(); - } - }); -//连接到远程主机 -ChannelFuture future = bootstrap.connect( - new InetSocketAddress("www.manning.com", 80)); -//设置连接成功后的回调 -future.addListener(new ChannelFutureListener() { - @Override - public void operationComplete(ChannelFuture channelFuture) - throws Exception { - if (channelFuture.isSuccess()) { - System.out.println("Connection established"); - } else { - System.err.println("Connection attempt failed"); - channelFuture.cause().printStackTrace(); - } - } - }); - -```` - - -### 引导服务端 -ServerBootstrap负责Netty应用程序的服务端引导,作为服务端,我们需要使用bind API来 -与本地地址绑定,从而接收客户端连接,其过程如下: - -![ServerBootStrap服务端引导过程](../../media/pictures/netty/ServerBootStrap服务端引导过程.png) - -服务端引导的编程模型如下: - -````text -//创建EventLoopGroup -NioEventLoopGroup group = new NioEventLoopGroup(); -//创建服务端引导 -ServerBootstrap bootstrap = new ServerBootstrap(); -//配置各种属性,如Channel,ChannelHandler等 -bootstrap.group(group) - .channel(NioServerSocketChannel.class) - .childHandler(new SimpleChannelInboundHandler() { - @Override - protected void channelRead0(ChannelHandlerContext ctx, - ByteBuf byteBuf) throws Exception { - System.out.println("Reveived data"); - byteBuf.clear(); - } - } - ); -//绑定本地地址 -ChannelFuture future = bootstrap.bind(new InetSocketAddress(8080)); -//设置绑定成功后的回调 -future.addListener(new ChannelFutureListener() { - @Override - public void operationComplete(ChannelFuture channelFuture) - throws Exception { - if (channelFuture.isSuccess()) { - System.out.println("Server bound"); - } else { - System.err.println("Bound attempt failed"); - channelFuture.cause().printStackTrace(); - } - } - } -); -```` diff --git a/docs/netty/ByteBuf容器.md b/docs/netty/ByteBuf容器.md deleted file mode 100644 index 44896bf8..00000000 --- a/docs/netty/ByteBuf容器.md +++ /dev/null @@ -1,242 +0,0 @@ - - - * [ByteBuf--Netty的数据容器](#bytebuf--netty的数据容器) - * [ByteBuf实现](#bytebuf实现) - * [ByteBuf使用模式](#bytebuf使用模式) - * [字节级别的操作](#字节级别的操作) - * [索引访问](#索引访问) - * [可丢弃字节](#可丢弃字节) - * [可读字节](#可读字节) - * [可写字节](#可写字节) - * [索引管理](#索引管理) - * [查找操作](#查找操作) - * [衍生缓冲区](#衍生缓冲区) - * [ByteBufHolder](#bytebufholder) - * [ByteBuf分配](#bytebuf分配) - * [ByteBufAllocator](#bytebufallocator) - * [Unpooled](#unpooled) - * [ByteBufUtil](#bytebufutil) - * [引用计数](#引用计数) - - - -# ByteBuf--Netty的数据容器 -网络传输的基本单位是字节,在Java NIO中,JDK提供了Buffer接口,以及其相关的实现作为NIO操作 -数据的容器,如ByteBuffer等等。 而Netty为了解决Buffer原生接口的复杂操作提供了ByteBuf, -ByteBuf是一个很好的经过优化过的数据容器,我们可以将字节数据添加到ByteBuf中或从ByteBuf中获取数据, -相比于原生Buffer,ByteBuf更加灵活和易用。 - -Netty的数据处理主要通过两个API提供: - -1. abstract class ByteBuf -2. interface ByteBufHolder - -使用ByteBuf API能够给我们带来良好的编码体验,如 - -- 正常情况下,ByteBuf比ByteBuffer的性能更好; - -- 实现了ReferenceCounted引用计数接口,优化了内存的使用; - -- 容量可以动态增长,如StringBuilder之于String; - -- 在读和写这两种模式切换时,无需像ByteBuffer一样调用flip方法,更易于操作; - -... - -ByteBuf还有很多好处,上面列举的只是一部分,其他优点就需要各位同学慢慢了解了。 - - -### ByteBuf实现 -ByteBuf维护了两个不同的索引:一个是用于读取的readerIndex , 一个是用于写入的writerIndex。 -当我们写入字节到ByteBuf后,writerIndex增加,开始读取字节后,readerIndex开始增加。读取字节直到 -readerIndex和writerIndex到达同一位置(已经读取到末尾了),ByteBuf就变为不可读。 -这就好比当我们访问数组时,超出了它的范围时,程序会抛出IndexOutOfBoundException。 - -当我们调用ByteBuf以read或write开头的方法时,将会增加这个ByteBuf的读索引或写索引,而诸如set或get -的方法则不会改变索引。 - -我们可以指定ByteBuf的最大容量,如果对ByteBuf的写入操作导致writerIndex超出了最大人容量,那么程序将会 -抛出一个异常,ByteBuf的最大人容量是Integer.MAX_VALUE。 - -ByteBuf大致的结构和状态: - -![ByteBuf结构](../../media/pictures/netty/ByteBuf结构.png) - - -### ByteBuf使用模式 -ByteBuf有多种使用模式,我们可以根据需求构建不同使用模式的ByteBuf。 - -- 堆缓冲区(HeapByteBuf): 最常用的ByteBuf模式是将数据存储在JVM的堆空间中,实际上是通过数组存储数据, -所以这种模式被称为支撑数组(Backing Array )。所以这种模式被称为支撑数组可以在没有使用池化的情况下快速分配和释放, -适合用于有遗留数据需要处理的情况。 - -![堆缓冲区模式](../../media/pictures/netty/堆缓冲区模式.png) - -- 直接缓冲区(DirectByteBuf): 在Java中,我们创建的对象大部分都是存储在堆区之中的,但这不是绝对的,在NIO的API中, -允许Buffer分配直接内存,即操作系统的内存,这样做的好处非常明显: 前面在传输章节介绍过的零拷贝技术的 -特点之一就是规避了多次IO拷贝,而现在数据直接就在直接内存中,而不是在JVM应用进程中,这不仅减少了拷贝次数, -是否还意味着减少了用户态与内核态的上下文切换呢? -直接缓冲区的缺点也比较明显: 直接内存的分配和释放都较为昂贵,而且因为直接 -缓冲区的数据不是在堆区的,所以我们在某些时候可能需要将直接缓冲区的数据先拷贝一个副本到堆区, -再对这个副本进行操作。 与支撑数组相比,直接缓冲区的工作可能更多,所以如果事先知道数据会作为 -一个数组来被访问,那么我们应该使用堆内存。 - -![直接缓冲区模式](../../media/pictures/netty/直接缓冲区模式.png) - -- 复合缓冲区(CompositeByteBuf): CompositeByteBuf为多个ByteBuf提供了一个聚合视图, -我们可以根据需要,向CompositeByteBuf中添加或删除ByteBuf实例,所以CompositeByteBuf中可能 -同时包含直接缓冲区模式和堆缓冲区模式的ByteBuf。对于CompositeByteBuf的hasArray方法, -**如果CompositeByteBuf中只有一个ByteBuf实例,那么CompositeByteBuf的hasArray方法 -将直接返回这唯一一个ByteBuf的hasArray方法的结果,否则返回false。** -除此之外,CompositeByteBuf还提供了许多附加的功能,可以查看Netty的文档学习。 - -![复合缓冲区模式](../../media/pictures/netty/复合缓冲区模式.png) - - -### 字节级别的操作 -除了普通的读写操作,ByteBuf还提供了修改数据的方法。 - - -#### 索引访问 -如数组的索引访问一样,ByteBuf的索引访问也是从零开始的,第一个字节的索引是0,最后一个字节的索引总是 -capacity - 1: - -![随机访问索引](../../media/pictures/netty/随机访问索引.png) - -注意:使用getByte方式访问,既不会改变readerIndex,也不会改变writerIndex。 - -JDK的ByteBuffer只有一个索引position,所以当ByteBuffer在读和写模式之间切换时,需要使用flip方法。 -而ByteBuf同时具有读索引和写索引,则无需切换模式,在ByteBuf内部,其索引满足: - -````text -0 <= readerIndex <= writerIndex <= capacity -```` - -这样的规律,当使用readerIndex读取字节,或使用writerIndex写入字节时,ByteBuf内部的分段大致如下: - -![ByteBuf内部分段](../../media/pictures/netty/ByteBuf内部分段.png) - -上图介绍了在ByteBuf内部大致有3个分段,接下来我们就详细的介绍下这三个分段。 - - -#### 可丢弃字节 -上图中,当readerIndex读取一部分字节后,之前读过的字节就属于已读字节,可以被丢弃了,通过调用 -ByteBuf的discardReadBytes方法我们可以丢弃这个分段,丢弃这个分段实际上是删除这个分段的已读字节, -然后回收这部分空间: - -![DiscardReadBytes回收后ByteBuf内部分段](../../media/pictures/netty/DiscardReadBytes回收后ByteBuf内部分段.png) - - -#### 可读字节 -ByteBuf的可读字节分段存储了尚未读取的字节,我们可以使用readBytes等方法来读取这部分数据,如果我们读取 -的范围超过了可读字节分段,那么ByteBuf会抛出IndexOutOfBoundsException异常,所以在读取数据之前,我们 -需要使用isReadable方法判断是否仍然有可读字节分段。 - - -#### 可写字节 -可写字节分段即没有被写入数据的区域,我们可以使用writeBytes等方法向可写字节分段写入数据,如果我们写入 -的字节超过了ByteBuf的容量,那么ByteBuf也会抛出IndexOutOfBoundsException异常。 - - -#### 索引管理 -我们可以通过markReaderIndex,markWriterIndex方法来标记当前readerIndex和writerIndex的位置, -然后使用resetReaderIndex,resetWriterIndex方法来将readerIndex和writerIndex重置为之前标记过的 -位置。 - -我们还可以使用clear方法来将readerIndex和writerIndex重置为0,但是clear方法并不会清空ByteBuf的 -内容,下面clear方法的实现: - -![ByteBuf的clear方法](../../media/pictures/netty/ByteBuf的clear方法.png) - -其过程是这样的: - -![ByteBuf的clear方法调用前](../../media/pictures/netty/ByteBuf的clear方法调用前.png) - -![ByteBuf的clear方法调用后](../../media/pictures/netty/ByteBuf的clear方法调用后.png) - -由于调用clear后,数据并没有被清空,但整个ByteBuf仍然是可写的,这比discardReadBytes轻量的多, -DiscardReadBytes还要回收已读字节空间。 - - -#### 查找操作 -在ByteBuf中,有多种可以确定值的索引的方法,最简单的方法是使用ByteBuf的indexOf方法。 -较为复杂的查找可以通过ByteBuf的forEachByte方法,forEachByte方法所需的参数是ByteProcessor, -但我们无需去实现ByteProcessor,因为ByteProcessor已经为我们定义好了两个易用的实现。 - - -#### 衍生缓冲区 -衍生缓冲区是专门展示ByteBuf内部数据的视图,这种视图常通过以下方法创建: - -- duplicate - -- slice - -- order - -- readSlice - -这些方法都将以源ByteBuf创建一个新的ByteBuf视图,所以源ByteBuf内部的索引和数据都与视图一样, -但这也意味着修改了视图的内容,也会修改源ByteBuf的内容。如果我们需要一个真实的ByteBuf的副本, -我们应该使用copy方法来创建,copy方法创建的副本拥有独立的内存,不会影响到源ByteBuf。 - - -### ByteBufHolder -从表面理解起来,ByteBufHolder是ByteBuf的持有者,的确没有错。 ByteBuf几乎唯一的作用就是存储 -数据,但在实际的数据传输中,除了数据,我们可能还需要存储各种属性值,Http便是一个很好的例子。 -除了Http Content,还包括状态码,cookie等等属性,总不能把这些属性与Content存储在一个ByteBuf中吧, -所以Netty提供了ByteBufHolder。ByteBufHolder为Netty提供了高级特性的支持,如缓冲区持化,使得可以 -从池中借用ByteBuf,并且在需要的时候自动释放。 - -以下是ByteBufHolder常见的方法: - -- content: 返回这个ByteBufHolder所持有的ByteBuf。 - -- copy: 返回ByteBufHolder的深拷贝,连它持有的ByteBuf也拷贝。 - - -### ByteBuf分配 -前面介绍了ByteBuf的一些基本操作和原理,但却并未说明如何分配一个ByteBuf,这里将讲解ByteBuf的分配方式。 - - -#### ByteBufAllocator -为了减少分配和释放内存的开销,Netty通过 ByteBufAllocator 实现了ByteBuf的池化。以下是ByteBufAllocator -的常见方法。 - -- buffer: 返回一个基于堆或直接内存的ByteBuf,具体取决于实现。 - -- heapBuffer: 返回一个基于堆内存的ByteBuf。 - -- directBuffer: 返回一个基于直接内存的ByteBuf。 - -- compositeBuffer: 返回一个组合ByteBuf。 - -- ioBuffer: 返回一个用于套接字的ByteBuf。 - -我们可以通过Channel或这ChannelHandlerContext的alloc方法获取到一个ByteBufAllocator - -![获取ByteBufAllocator](../../media/pictures/netty/获取ByteBufAllocator.png) - -Netty提供了两种ByteBufAllocator的实现: PooledByteBufAllocator和UnpooledByteBufAllocator。 -PooledByteBufAllocator池化了ByteBuf的实例以提高性能并最大限度的减少内存碎片,此实现的分配内存的方法 -是使用[jemalloc](https://people.freebsd.org/~jasone/jemalloc/bsdcan2006/jemalloc.pdf),此种 -方法分配内存的效率非常高,已被大量现代操作系统采用。 UnpooledByteBufAllocator则不会池化ByteBuf, -Netty默认使用的是PooledByteBufALlocator。 - - -#### Unpooled -当Channel或ChannelHandlerContext未引用ByteBufAllocator时,就无法使用ByteBufAllocator来分配 -ByteBUf,对于这种情况,Netty提供了Unpooled工具类,它提供了一系列的静态方法来分配未池化的ByteBuf。 - - -#### ByteBufUtil -ByteBufUtil是ByteBuf的一个工具类,它提供大量操作ByteBuf的方法,,其中非常重要的一个方法就是 -hexDump,这个方法会以16进制的形式来表示ByteBuf的内容。另一个很重要的方法是equals,它被用于判断 -ByteBuf之间的相等性。 - - -### 引用计数 -学习过JVM的小伙伴应该知道垃圾回收有引用计数法和可达性分析这两种算法判断对象是否存活,Netty就使用了 -引用计数法来优化内存的使用。引用计数确保了当对象的引用计数大于1时,对象就不会被释放,当计数减少至0时, -对象就会被释放,如果程序访问一个已被释放的引用计数对象,那么将会导致一个 -IllegalReferenceCountException异常。 -在Netty中,ByteBuf和ByteBufHolder都实现了ReferenceCounted接口。 diff --git a/docs/netty/ChannelHandler和ChannelPipeline.md b/docs/netty/ChannelHandler和ChannelPipeline.md deleted file mode 100644 index 0b4a1a98..00000000 --- a/docs/netty/ChannelHandler和ChannelPipeline.md +++ /dev/null @@ -1,268 +0,0 @@ - - - * [ChannelHandler和ChannelPipeline](#channelhandler和channelpipeline) - * [ChannelHandler家族](#channelhandler家族) - * [Channel的生命周期](#channel的生命周期) - * [ChannelHandler生命周期](#channelhandler生命周期) - * [ChannelInboundHandler接口](#channelinboundhandler接口) - * [ChannelOutboundHandler接口](#channeloutboundhandler接口) - * [资源管理](#资源管理) - * [ChannelPipeline](#channelpipeline) - * [ChannelPipeline相对论](#channelpipeline相对论) - * [修改ChannelPipeline](#修改channelpipeline) - * [ChannelHandler的执行和阻塞](#channelhandler的执行和阻塞) - * [触发事件](#触发事件) - * [ChannelHandlerContext](#channelhandlercontext) - * [ChannelHandlerContext的高级用法](#channelhandlercontext的高级用法) - - - - -# ChannelHandler和ChannelPipeline -在Netty组件中我们已经介绍了ChannelHandler和ChannelPipeline的关系,这里我们将继续深入了解这两个核心 -组件的细节。在学习本章内容之前,请各位同学温习一遍Netty组件部分的内容。 - -### ChannelHandler家族 - -#### Channel的生命周期 -在Channel的生命周期中,它的状态与ChannelHandler是密切相关的,下列是Channel组件的四个状态: - -| 状态 | 描述 | -| :--- | :--- | -| ChannelUnregistered | Channel没有注册到EventLoop | -| ChannelRegistered | Channel被注册到了EventLoop | -| ChannelActive | Channel已经连接到它的远程节点,处于活动状态,可以收发数据 | -| ChannelInactive | Channel与远程节点断开不再处于活动状态 | - -Channel的生命周期如下图所示,当这些状态发生改变时,将会生成对应的事件,ChannelPipeline中的ChannelHandler -就可以及时做出处理。 - - -#### ChannelHandler生命周期 -ChannelHandler接口定义了其生命周期中的操作,当ChanelHandler被添加到ChannelPipeline -或从ChannelPipeline中移除时,会调用这些操作,ChannelHandler的生命周期如下: - -| 方法 | 描述 | -| :--- | :--- | -| handlerAdded | 当把ChannelHandler添加到ChannelPipeline中时调用此方法 | -| handlerRemoved | 当把ChannelHandler从ChannelPipeline中移除的时候会调用此方法 | -| exceptionCaught | 当ChannelHandler在处理数据的过程中发生异常时会调用此方法 | - - -#### ChannelInboundHandler接口 -ChannelInboundHandler会在接受数据或者其对应的Channel状态发生改变时调用其生命周期的方法, -ChannelInboundHandler的生命周期和Channel的生命周期其实是密切相关的。 -以下是ChannelInboundHandler的生命周期方法: - -| 方法 | 描述 | -| :--- | :--- | -| ChannelRegistered | 当Channel被注册到EventLoop且能够处理IO事件时会调用此方法 | -| ChannelUnregistered | 当Channel从EventLoop注销且无法处理任何IO事件时会调用此方法 | -| ChannelActive | 当Channel已经连接到远程节点(或者已绑定本地address)且处于活动状态时会调用此方法 | -| ChannelInactive | 当Channel与远程节点断开,不再处于活动状态时调用此方法 | -| ChannelReadComplete | 当Channel的某一个读操作完成时调用此方法 | -| ChannelRead | 当Channel有数据可读时调用此方法 | -| ChannelWritabilityChanged | 当Channel的可写状态发生改变时调用此方法,可以调用Channel的isWritable方法检测Channel的可写性,还可以通过ChannelConfig来配置write操作相关的属性 | -| userEventTriggered | 当ChannelInboundHandler的fireUserEventTriggered方法被调用时才调用此方法。 | - -**这里有一个细节一定需要注意:当我们实现ChannelInboundHandler的channelRead方法时,请一定要记住 -使用ReferenceCountUtil的release方法释放ByteBuf,这样可以减少内存的消耗,所以我们可以实现一个 -ChannelHandler来完成对ByteBuf的释放,就像下面这样:** - -![ChannelInboundHandler释放ByteBuf](../../media/pictures/netty/ChannelInboundHandler释放ByteBuf.png) - - -**一个更好的办法是继承SimpleChannelInboundHandler,因为SimpleChannelInboundHandler已经帮我们 -把与业务无关的逻辑在ChannelRead方法实现了,我们只需要实现它的channelRead0方法来完成我们的逻辑就够了:** - -![SimpleChannelInboundHandler的ChannelRead方法](../../media/pictures/netty/SimpleChannelInboundHandler的ChannelRead方法.png) - -**可以看到SimpleChannelInboundHandler已经将释放资源的逻辑实现了,而且会自动调用ChannelRead0方法 -来完成我们业务逻辑。** - - -#### ChannelOutboundHandler接口 -出站数据将由ChannelOutboundHandler处理,它的方法将被Channel,ChannelPipeline以及ChannelHandlerContext调用 -(Channel,ChannelPipeline,ChannelHandlerContext都拥有write操作),以下是ChannelOutboundHandler的主要方法: - -| 状态 | 描述 | -| :--- | :--- | -| bind | 当Channel绑定到本地address时会调用此方法 | -| connect | 当Channel连接到远程节点时会调用此方法 | -| disconnect | 当Channel和远程节点断开时会调用此方法 | -| close | 当关闭Channel时会调用此方法 | -| deregister | 当Channel从它的EventLoop注销时会调用此方法 | -| read | 当从Channel读取数据时会调用此方法 | -| flush | 当Channel将数据冲刷到远程节点时调用此方法 | -| write | 当通过Channel将数据写入到远程节点时调用此方法 | - -**ChannelOutboundHandler的大部分方法都需要一个ChannelPromise类型的参数,ChannelPromise是 -ChannelFuture的一个子接口,这样你就可以明白ChannelPromise实际的作用和ChannelFuture是一样的, -没错,ChannelPromise正是用于在ChannelOutboundHandler的操作完成后执行的回调。** - - -#### 资源管理 -当我们使用ChannelInboundHandler的read或ChannelOutboundHandler的write操作时,我们都需要保证 -没有任何资源泄露并尽可能的减少资源耗费。之前已经介绍过了ReferenceCount引用计数用于处理池化的 -ByteBuf资源。 为了帮助我们诊断潜在的的资源泄露问题,Netty提供了ResourceLeakDetector,它将 -对我们的Netty程序的已分配的缓冲区做大约1%的采样用以检测内存泄露,Netty目前定义了4种泄露检测级别,如下: - -| 级别 | 描述 | -| :--- | :--- | -| Disabled | 禁用泄露检测。我们应当在详细测试之后才应该使用此级别。 | -| SIMPLE | 使用1%的默认采样率检测并报告任何发现的泄露,这是默认的检测级别。 | -| ADVANCED | 使用默认的采样率,报告任何发现的泄露以及对应的消息的位置。 | -| PARANOID | 类似于ADVANCED,但是每次都会对消息的访问进行采样,此级别可能会对程序的性能造成影响,应该用于调试阶段。 | - -我们可以通过JVM启动参数来设置leakDetector的级别: - -````text -java -Dio.netty.leakDetectionLevel=ADVANCED -```` - - -### ChannelPipeline -在Netty组件中也介绍过了,ChannelPipeline是一系列ChannelHandler组成的拦截链,每一个新创建的Channel -都会被分配一个新的ChannelPipeline,Channel和ChannelPipeline之间的关联是持久的,无需我们干涉它们 -之间的关系。 - - -#### ChannelPipeline相对论 -Netty总是将ChannelPipeline的入站口作为头部,出站口作为尾部,当我们通过ChannelPipeline的add方法 -将入站处理器和出站处理器混合添加到ChannelPipeline后,ChannelHandler的顺序如下: - -![ChannelPipeline的ChannelHandler顺序](../../media/pictures/netty/ChannelPipeline的ChannelHandler顺序.png) - -一个入站事件将从ChannelPipeline的头部(左侧)向尾部(右侧)开始传播,出站事件的传播则是与入站的传播方向 -相反。当ChannelPipeline在ChannelHandler之间传播事件的时候,它会判断下一个ChannelHandler的类型 -是否与当前ChannelHandler的类型相同,如果相同则说明它们是一个方向的事件, -如果不同则跳过该ChannelHandler并前进到下一个ChannelHandler,直到它找到相同类型的ChannelHandler。 - - -#### 修改ChannelPipeline -ChannelPipeline可以通过添加,删除和修改ChannelHandler来修改它自身的布局,这是它最基本的能力, -一下列举了ChannelPipeline的一些修改方法: - -| 方法 | 描述 | -| addXX | 将指定的ChannelHandler添加到ChannelPipeline中 | -| remove | 将指定的ChannelHandler从ChannelPipeline中移除 | -| replace | 将ChannelPipeline中指定的ChannelHandler替换成另一个ChannelHandler | - - -#### ChannelHandler的执行和阻塞 -通常ChannelPipeline中的每个ChannelHandler都是通过它(ChannelPipeline)的EventLoop线程来处理 -传递给他的数据的,所以我们不能去阻塞这个线程,否则会对整体的IO操作产生负面影响。 但有时候不得已 -需要使用阻塞的API来完成逻辑处理,对于这种情况,ChannelPipeline的某些方法支持接受一个EventLoopGroup -类型的参数,我们可以通过自定义EventLoopGroup的方式,使ChannelHandler在我们的EventLoopGroup内处理数据。 -这样一来,就可以避免阻塞线程的影响了。 - - -#### 触发事件 -ChannelPipeline的API不仅有对ChannelHandler的增删改操作,还有对入站和出站操作的附加方法,如下: - -ChannelPipeline的入站方法: - -| 方法 | 描述 | -| :--- | :--- | -| fireChannelRegistered | 调用ChannelPipeline中下一个ChannelInboundHandler的channelRegistered方法 | -| fireChannelUnregistered | 调用ChannelPipeline中下一个ChannelInboundHandler的channelUnregistered方法 | -| fireChannelActive | 调用ChannelPipeline中下一个ChannelInboundHandler的channelActive方法 | -| fireChannelInactive | 调用ChannelPipeline中下一个ChannelInboundHandler的channelInactive方法 | -| fireExceptionCaught | 调用ChannelPipeline中下一个ChannelInboundHandler的exceptionCaught方法 | -| fireUserEventTriggered | 调用ChannelPipeline中下一个ChannelInboundHandler的userEventTriggered方法 | -| fireChannelRead | 调用ChannelPipeline中下一个ChannelInboundHandler的channelRead方法 | -| fireChannelReadComplete | 调用ChannelPipeline中下一个ChannelInboundHandler的channelReadComplete方法 | -| fireChannelWritabilityChanged | 调用ChannelPipeline中下一个ChannelInboundHandler的channelWritabilityChanged方法 | - - -ChannelPipeline的出站方法: - -| 方法 | 描述 | -| :--- | :--- | -| bind | 调用ChannelPipeline中下一个ChannelOutboundHandler的bind方法,将Channel与本地地址绑定 | -| connect | 调用ChannelPipeline中下一个ChannelOutboundHandler的connect方法,将Channel连接到远程节点 | -| disconnect | 调用ChannelPipeline中下一个ChannelOutboundHandler的disconnect方法,将Channel与远程连接断开 | -| close | 调用ChannelPipeline中下一个ChannelOutboundHandler的close方法,将Channel关闭 | -| deregister | 调用ChannelPipeline中下一个ChannelOutboundHandler的deregister方法,将Channel从其对应的EventLoop注销 | -| flush | 调用ChannelPipeline中下一个ChannelOutboundHandler的flush方法,将Channel的数据冲刷到远程节点 | -| write | 调用ChannelPipeline中下一个ChannelOutboundHandler的write方法,将数据写入Channel | -| writeAndFlush | 先调用write方法,然后调用flush方法,将数据写入并刷回远程节点 | -| read | 调用ChannelPipeline中下一个ChannelOutboundHandler的read方法,从Channel中读取数据 | - - -### ChannelHandlerContext -ChannelHandlerContext代表的是ChannelHandler和ChannelPipeline之间的关联,每当有ChannelHandler -添加到ChannelPipeline中时,都会创建ChannelHandlerContext。ChannelHandlerContext的主要功能是 -管理它所关联的ChannelHandler与同一个ChannelPipeline中的其他ChannelHandler之间的交互: - -![ChannelHandlerContext和ChannelHandler之间的关系](../../media/pictures/netty/ChannelHandlerContext和ChannelHandler之间的关系.png) - -ChannelHandlerContext的大部分方法和Channel和ChannelPipeline相似,但有一个重要的区别是: -调用Channel或ChannelPipeline的方法,如: - -````text -//使用Chanel write -Channel channel = ctx.channel(); -ctx.write(xxx); - -//使用Pipeline write -ChannelPipeline pipeline = ctx.pipeline(); -pipeline.write(xxx); -```` - -,其影响是会沿着整个ChannelPipeline进行传播: - -![通过Channel或ChannelPipeline进行的事件传播](../../media/pictures/netty/通过Channel或ChannelPipeline进行的事件传播.png) - - -而调用ChannelHandlerContext的方法,如: - -````text -//使用ChannelContext write -ctx.write(xxx); -```` -则是从其关联的ChannelHandler开始,并且只会传播给位于该ChannelPipeline中的下一个能够处理该事件的 -ChannelHandler: - -![通过ChannelHandlerContext进行的事件传播](../../media/pictures/netty/通过ChannelHandlerContext进行的事件传播.png) - - - -下面是一些比较重要的方法,有些和ChannelPipeline功能相似的方法就不再罗列了,各位同学可以直接查看原API。 - -| 方法 | 描述 | -| :--- | :--- | -| alloc | 获取与当前ChannelHandlerContext所关联的Channel的ByteBufAllocator | -| handler | 返回与当前ChannelHandlerContext绑定的ChannelHandler | -| pipeline | 返回与当前ChannelHandlerContext关联的ChannelPipeline | -| ... | ... | - - -#### ChannelHandlerContext的高级用法 -有时候我们需要在多个ChannelPipeline之间共享一个ChannelHandler,以此实现跨管道处理(获取)数据 -的功能,此时的ChannelHandler属于多个ChannelPipeline,且会绑定到不同的ChannelHandlerContext上。 -在多个ChannelPipeline之间共享ChannelHandler我们需要使用 **@Sharable注解**,这代表着它是一个共享的 -ChannelHandler,如果一个ChannelHandler没有使用@Sharable注解却被用于多个ChannelPipeline,那么 -将会触发异常。 还有非常重要的一点:**一个ChannelHandler被用于多个ChannelPipeline肯定涉及到多线程 -数据共享的问题,因此我们需要保证ChannelHandler的方法同步。** 下面是一个很好的例子: - -`````java -@Sharable -public class UnsafeSharableChannelHandler extends ChannelInboundHandlerAdapter -{ - private int count; - - @Override - public void channelRead(ChannelHandlerContext ctx,Object msg) - { - count++; - System.out.println("count : " + count); - ctx.fireChannelRead(msg); - } -} -````` -上面这个ChannelHandler标识了@Sharable注解,这代表它需要被用于多个ChannelPipeline之间, -但是这个ChannelHandler之中有一个不易察觉的问题: 它声明了一个实例变量count,且ChannelRead方法 -不是线程安全的。 那么这个问题的后果我相信学习了多线程的同学应该都明白,一个最简单的方法 -就是给修改了count的变量的方法加synchronized关键字,确保即使在多个ChannelPipeline之间共享, -ChannelHandler也能保证数据一致。 \ No newline at end of file diff --git a/docs/netty/Codec编码与解码.md b/docs/netty/Codec编码与解码.md deleted file mode 100644 index 5e3b135c..00000000 --- a/docs/netty/Codec编码与解码.md +++ /dev/null @@ -1,156 +0,0 @@ - - - * [什么是编码器和解码器?](#什么是编码器和解码器) - * [解码器](#解码器) - * [ByteToMessageDecoder](#bytetomessagedecoder) - * [ReplayingDecoder](#replayingdecoder) - * [MessageToMessageDecoder](#messagetomessagedecoder) - * [编码器](#编码器) - * [MessageToByteEncoder](#messagetobyteencoder) - * [MessageToMessageEncoder](#messagetomessageencoder) - * [编解码器](#编解码器) - - - -# 什么是编码器和解码器? -从网络传输的角度来讲,数组总是以字节的格式在网络之中进行传输的。 -每当源主机发送数据到目标主机时,数据会从本地格式被转换成字节进行传输,这种转换被称为编码,编码的逻辑由 -编码器处理。 -每当目标主机接受来自源主机的数据时,数据会从字节转换为我们需要的格式,这种转换被称为解码,解码的逻辑由 -解码器处理。 - -在Netty中,编码解码器实际上是ChannelOutboundHandler和ChannelInboundHandler的实现, -因为编码和解码都属于对数据的处理,由此看来,编码解码器被设计为ChannelHandler也就无可厚非。 - - -## 解码器 -在Netty中,解码器是ChannelInboundHandler的实现,即处理入站数据。 -解码器主要分为两种: - -- 将字节解码为Message消息: ByteToMessageDecoder和ReplayingDecoder。 -- 将一种消息解码为另一种消息: MessageToMessageDecoder。 - - -### ByteToMessageDecoder -ByteToMessageDecoder用于将字节解码为消息,如果我们想自定义解码器,就需要继承这个类并实现decode方法。 -decode方法是自定解码器必须实现的方法,它被调用时会传入一个包含了数据的ByteBuf和一个用来添加解码消息的List。 -对decode方法的调用会重复进行,直至确认没有新元素被添加到该List或ByteBuf没有可读字节为止。最后,如果List不为空, -那么它的内容会被传递给ChannelPipeline中的下一个ChannelInboundHandler。 - -下面是ByteToMessageDecoder的编程模型: - -````java -public class ToIntegerDecoder extends ByteToMessageDecoder //扩展ByteToMessageDecoder -{ - - @Override - public void decode(ChannelHandlerContext ctx, ByteBuf in, List out) - throws Exception - { - //检查ByteBuf是否仍有4个字节可读 - if (in.readableBytes() >= 4) - { - out.add(in.readInt()); //从ByteBuf读取消息到List中 - } - } -} -```` - -上面这种编程模式很简单,但是在读取ByteBuf之前验证其是否可读的步骤显得有些多余,所以可以使用ReplayingDecoder -来解决这个问题。 - - -### ReplayingDecoder -ReplayingDecoder扩展了ByteToMessageDecoder,这使得我们不再需要检查ByteBuf,因为ReplayingDecoder -自定义了ByteBuf的实现:ReplayingDecoderByteBuf,这个包装后的ByteBuf在内部会自动检查是否可读。以下是 -ReplayingDecoderByteBuf的内部实现: - -![ReplayingDecoderByteBuf内部实现](../../media/pictures/netty/ReplayingDecoderByteBuf内部实现.png) - -虽然ReplayingDecoderByteBuf可以自动检查可读性,但是对于某些操作并不支持,会抛出 -UnsupportedOperationException异常。其编程模型如下: - -`````java -public class ToIntegerDecoder2 extends ReplayingDecoder //扩展ReplayingDecoder -{ - @Override - public void decode(ChannelHandlerContext ctx, ByteBuf in, List out) - throws Exception - { - out.add(in.readInt());//从ByteBuf读取消息到List中 - } -} -````` - -### MessageToMessageDecoder -MessageToMessageDecoder用于将一种类型的消息解码另一种类型的消息,如从DTO转为POJO。 -这是MessageToMessageDecoder的原型: - -````text -public abstract class MessageToMessageDecoder extends ChannelInboundHandlerAdapter -```` -MessageToMessageDecoder的泛型I定义了我们转换何种类型的参数。 -和ByteToMessageDecoder一样,自定义MessageToMessageDecoder的解码器也需要实现其decode方法。 - -以下是它的编程模型: - -````java - -public class IntegerToStringDecoder extends - MessageToMessageDecoder -{ - - @Override - public void decode(ChannelHandlerContext ctx, Integer msg, List out) - throws Exception - { - out.add(String.valueOf(msg)); - } -} -```` - - -## 编码器 -在Netty中,编码器是ChannelOutboundHandler的实现,即处理出站数据。 -编码器同样分为两种: - -- 将消息编码为字节: MessageToByteEncoder。 -- 将消息编码为消息: MessageToMessageEncoder。 - - -### MessageToByteEncoder -MessageToByteEncoder用于将消息编码为字节,如果我们需要自定编码器,就需要继承它并实现它的encode方法。 -encode方法是自定义编码器必须实现的方法,它被调用时会传入相应的数据和一个存储数据的ByteBuf。 -在encode被调用之后,该ByteBuf会被传递给ChannelPipeline中下一个ChannelOutboundHandler。 - -以下是MessageToByteEncoder的编程模型: - -````java -public class ShortToByteEncoder extends MessageToByteEncoder //扩展MessageToByteEncoder -{ - - @Override - public void encode(ChannelHandlerContext ctx , Short data, ByteBuf out) - throws Exception - { - out.writeShort(data);//将data写入ByteBuf - } -} -```` - - -### MessageToMessageEncoder -MessageToMessageEncoder用于将一种类型的消息编码另一种类型的消息,其原型和 -MessageToMessageDecoder相似,所以这里也不再细说。 - - -## 编解码器 -上面的内容讲的是单独的编码器和解码器,编码器处理出站数据,是ChannelOutboundHandler的实现, -解码器负责处理入站数据,是ChannelInboundHandler的实现。除了编码器和解码器,Netty还提供了集编码与解码 -于一身的编解码器ByteToMessageCodec和MessageToMessageCodec,它们同时实现了ChannelInboundHandler和ChannelOutboundHandler,其结构如下: - -![编码解码器codec层次结构](../../media/pictures/netty/~~~~编码解码器codec层次结构.png) - -虽然使用编码解码器可以同时编码和解码数据,但这样不利于代码的可重用性。 -相反,单独的编码器和解码器最大化了代码的可重用性和可扩展性,所以我们应该优先考虑分开使用二者。 - diff --git a/docs/netty/Netty特性.md b/docs/netty/Netty特性.md deleted file mode 100644 index 19515d11..00000000 --- a/docs/netty/Netty特性.md +++ /dev/null @@ -1,59 +0,0 @@ -# Netty特性 - -## 强大的数据容器 -Netty使用自建的Buffer API实现ByteBuf,而不是使用JDK NIO的ByteBuffer来表示一个连续的字节序列。与JDK NIO的 -ByteBuffer相比,Netty的ByteBuf有更加明显的优势,这些优势可以弥补Java原生ByteBuffer的底层缺点,并提供 -更加方便的编程模型: - -- 正常情况下,ByteBuf比ByteBuffer的性能更好; - -- 实现了ReferenceCounted引用计数接口,优化了内存的使用; - -- 容量可以动态增长,如StringBuilder之于String; - -- 在读和写这两种模式切换时,无需像ByteBuffer一样调用flip方法,更易于操作; - -... - - -### ByteBuf的自动容量扩展 -在JDK NIO中,一旦ByteBuffer被分配了内存就不能再改变大小,这可能会带来很多不便。 -我们在创建字符串时可能不确定字符串的长度,这种情况下如果使用String可能会有多次拼接的消耗, -所以这就是StringBuilder的作用,同样的,ByteBuf也是如此。 - -````text -// 一种 新的动态缓冲区被创建。在内部,实际缓冲区是被“懒”创建,从而避免潜在的浪费内存空间。 -ByteBuf b = Unpooled.buffer(4); - -// 当第一个执行写尝试,内部指定初始容量 4 的缓冲区被创建 -b.writeByte('1'); - -b.writeByte('2'); -b.writeByte('3'); -b.writeByte('4'); - -// 当写入的字节数超过初始容量 4 时, -//内部缓冲区自动分配具有较大的容量 -b.writeByte('5'); -```` - -## 通用的传输API -传统的Java IO在应对不同的传输协议的时候需要使用不同的API,比如java.net.Socket和java.net.DatagramSocket。 -它们分别是TCP和UDP的传输API,因此在使用它们的时候我们就需要学习不同的编程方式。这种编程模式会使得在维护 -或修改其对应的程序的时候变得繁琐和困难,简单来说就是降低了代码的可维护性。 - -这种情况还发生在Java的NIO和AIO上,由于所有的IO API无论是性能还是设计上都有所不同,所以注定这些API之间是不兼容的, -因此我们不得不在编写程序之前先选好要使用的IO API。 - -在Netty中,有一个通用的传输API,也是一个IO编程接口: Channel,这个API抽象了所有的IO模型,如果你的应用 -已经使用了Netty的某一种传输实现,那么你的无需付出太多代价就能换成另一种传输实现。 - -Netty提供了非常多的传输实现,如nio,oio,epoll,kqueue等等,通常切换不同的传输实现只需要对几行代码进行 -修改就行了,例如选择一个不同的 [ChannnelFactory](http://netty.io/4.0/api/io/netty/bootstrap/ChannelFactory.html), -这也是面向接口编程的一大好处。 - - -## 基于拦截链模式的事件模型 -Netty具有良好的IO事件模型,它允许我们在不破坏原有代码结构的情况下实现自己的事件类型。 很多IO框架 -没有事件模型或者在这方面做的不够好,这也是Netty的优秀设计的体现之一。 -关于事件模型可以看我编写的: [ChannelHandler](https://github.com/guang19/framework-learning/blob/dev/netty-learning/Netty%E7%BB%84%E4%BB%B6.md#ChannelHandler) \ No newline at end of file diff --git a/docs/netty/Netty简介.md b/docs/netty/Netty简介.md deleted file mode 100644 index 2776f023..00000000 --- a/docs/netty/Netty简介.md +++ /dev/null @@ -1,77 +0,0 @@ -# Netty - -**本文章总结了 《Netty in Action》(Netty实战) 和 《Netty 4.x User Guide 》(Netty 4.x 用户指南), -再根据本人实际学习体验总结而成。本部分内容可能不那么全面,但是我尽量挑选Netty中我认为比较重要的部分做讲解。** - -学习Netty,相信大部分同学都会选择 《Netty in Action》 和 《Netty 4.x User Guide 》, -这里我推荐它们的通读版本,这二本书的通读版本的作者都为同一人,通读版本对《Netty in Action》做出了更为精简的概述, -所以各位同学可酌情挑选阅读。 - -- [《Netty in Action》](https://waylau.com/essential-netty-in-action/index.html) - -- [《Netty 4.x User Guide》](https://waylau.gitbooks.io/netty-4-user-guide/content) - -其次我认为只看书是不够的,这里我推荐一些关于Netty入门比较优秀的视频供各位同学参考, -推荐视频观看的顺序即下列顺序,各位同学不需要每个视频的每个章节都看,只需要挑选互补的内容学习即可: - -- [韩顺平Netty教程](https://www.bilibili.com/video/BV1DJ411m7NR) - -- [张龙Netty教程](https://www.bilibili.com/video/BV1cb411F7En) - -- [索南杰夕Netty RPC实现](https://www.bilibili.com/video/BV1Rb411h7jZ) - - -最后,在学习Netty之前,我们需要对 IO模型(网络IO模型)有一个大概的认知,可以参考我编写的: -[Linux IO模型](../java/Linux_IO模型.md) 。 - - -````text -如有错误之处,敬请指教。 -```` - - -## Netty是什么? - -Netty是Red Hat开源的,一个利用Java的高级网络能力,隐藏其(Java API)背后的复杂性而提供一个易于使用的 NIO 客户端/服务端框架。 -Netty提供了高性能和可扩展性,让你自由地专注于你真正感兴趣的东西。 Netty简化了网络程序的开发过程,使用它 -我们可以快速简单地开发网络应用程序,比如客户端和服务端的通信协议,TCP和UDP的Socket开发。 - - -### Netty的特点 -Netty作为一款优秀的网络框架,自然有令人折服的特点: - -- 设计: - - - 针对多种传输类型的同一接口。 - - - 简单但更强大的线程模型。 - - - 真正的无连接的数据报套接字支持。 - - - 链接逻辑复用。 - -- 性能: Netty的高性能是它被广泛使用的一个重要的原因,我们可能都认为Java不太适合 -编写游戏服务端程序,但Netty的到来无疑是降低了怀疑的声音。 - - - 较原生Java API有更好的吞吐量,较低的延时。 - - - 资源消耗更少(共享池和重用)。 - - - 减少内存拷贝。 - -- 健壮性: 原生NIO的客户端/服务端程序编写较为麻烦,如果某个地方处理的不好,可能会 - 导致一些意料之外的异常,如内存溢出,死循环等等,而Netty则为我们简化了原生API - 的使用,这使得我们编写出来的程序不那么容易出错。 - -- 社区: Netty快速发展的一个重要的原因就是它的社区非常活跃,这也使得采用它的开发者越来越多。 - - -## Netty架构总览 -下面是Netty的模块设计部分: - -![Netty架构总览](../../media/pictures/netty/Netty架构总览.png) - -Netty提供了通用的传输API(TCP/UDP...);多种网络协议(HTTP/WebSocket...);基于事件驱动的IO模型; -超高性能的零拷贝... - -上面说的这些模块和功能只是Netty的一部分,具体的组件在后面的部分会有较为详细的介绍。 \ No newline at end of file diff --git a/docs/netty/Netty线程模型和EventLoop.md b/docs/netty/Netty线程模型和EventLoop.md deleted file mode 100644 index 100d72ad..00000000 --- a/docs/netty/Netty线程模型和EventLoop.md +++ /dev/null @@ -1,101 +0,0 @@ - - - * [Netty线程模型和EventLoop](#netty线程模型和eventloop) - * [线程模型概述](#线程模型概述) - * [EventLoop事件循环](#eventloop事件循环) - * [任务调度](#任务调度) - * [JDK任务调度](#jdk任务调度) - * [EventLoop任务调度](#eventloop任务调度) - * [线程管理](#线程管理) - * [线程分配](#线程分配) - * [非阻塞传输](#非阻塞传输) - * [阻塞传输](#阻塞传输) - - - -# Netty线程模型和EventLoop -由于线程模型确定了代码执行的方式,它可能带来一些副作用以及不确定因素, -可以说这是并发编程中最大的难点,因此,我们需要了解Netty所采用的线程模型,这样 -在遇到相关问题时不至于手足无措。 - - -## 线程模型概述 -现代操作系统几乎都具有多个核心的CPU,所以我们可以使用多线程技术以有效地利用系统资源。在早期的 -Java多线程编程中,我们使用线程的方式一般都是继承Thread或者实现Runnable以此创建新的Thread, -这是一种比较原始且浪费资源的处理线程的方式。JDK5之后引入了Executor API,其核心思想是使用池化技术 -来重用Thread,以此达到提高线程响应速度和降低资源浪费的目的。 - - -## EventLoop事件循环 -事件循环正如它的名字,处于一个循环之中。我们以前在编写网络程序的时候,会使我们处理连接的逻辑 -处于一个死循环之中,这样可以不断的处理客户端连接。 - -Netty的EventLoop采用了两个基本的API:并发和网络。 -Netty的并发包io.netty.util.concurrent是基于Java的并发包java.util.concurrent之上的, -它主要用于提供Executor的支持。Netty的io.netty.channel包提供了与客户端Channel的事件交互的支持。 -以下是EventLoop类层次结构图: - -![EventLoop类层次结构图](../../media/pictures/netty/EventLoop类层次结构图.png) - -在EventLoop模型中,**EventLoop将有一个永远不会改变的Thread,即Netty会给EventLoop分配一个 -Thread,在EventLoop生命周期之中的所有IO操作和事件都由这个Thread执行。 根据配置和CPU核心的不同, -Netty可以创建多个EventLoop,且单个EventLoop可能会服务于多个客户端Channel。** - -在EventLoop中,**事件或任务的执行总是以FIFO先进先出的顺序执行的,这样可以保证字节总是按正确的 -顺序被处理,消除潜在的数据损坏的可能性。** - - -## 任务调度 -有时候我们需要在指定的时间之后触发任务或者周期性的执行某一个人物,这都需要使用到任务调度。 - - -### JDK任务调度 -JDK主要有Timer和ScheduledExecutorService两种实现任务调度的方式,但是这两种原生的API的 -性能都不太适合高负载应用。 - - -### EventLoop任务调度 -上面介绍过的EventLoop类层次结构图,可以看到EventLoop扩展了ScheduledExecutorService, -所以我们可以通过EventLoop来实现任务调度,其编程模型如下: - -![EventLoop任务调度](../../media/pictures/netty/EventLoop任务调度.png) - -使用Channel获取其对应的EventLoop,然后调用schedule方法给其分配一个Runnable执行。Netty的任务调度 -比JDK的任务调度性能性能要好,这主要是由于Netty底层的线程模型设计的非常优秀。 - - -## 线程管理 -Netty线程模型的卓越性能取决于当前执行任务的Thread,我们看一张图就明白了: - -![EventLoop执行逻辑](../../media/pictures/netty/EventLoop执行逻辑.png) - -**如果处理Chanel任务的线程正是支撑EventLoop的线程,那么与Channel的任务会被直接执行。 -否则EventLoop会将该任务放入任务队列之中稍后执行。 -需要注意的是每个EventLoop都有自己的任务队列,独立于其他EventLoop的任务队列。** - - -## 线程分配 -每个EventLoop都注册在一个EventLoopGroup之中,一个EventLoopGroup可以包含多个EventLoop,根据不同的传输实现, -EventLoop的创建和分配方式也不同。 - - -#### 非阻塞传输 -我们说过一个EventLoop可以处理多个Channel,Netty这样设计的目的就是尽可能的通过少量Thread来支撑大量的Channel, -而不是每个Channel都分配一个Thread。 - -![EventLoop非阻塞分配](../../media/pictures/netty/EventLoop非阻塞分配.png) - -EventLoopGroup负责为每个新创建的Channel分配一个EventLoop,一旦一个Channel被分配给EventLoop,它将在 -整个生命周期中都使用这个EventLoop及其Thread处理事件和任务。 - -**注意:EventLoop的分配方式对ThreadLocal的使用是很有很大影响的。因为注册在一个EventLoop上的Channel -共有这一个线程,那么在这些Channel之间使用ThreadLocal,其ThreadLocal的状态都是一样的,无法发挥ThreadLocal -本来的作用。** - - -#### 阻塞传输 -阻塞传输即OIO(BIO),此种传输方式的EventLoop只会被分配一个Channel,如下图: - -![EventLoop阻塞分配](../../media/pictures/netty/EventLoop阻塞分配.png) - -这样带来的会是线程资源的巨大消耗,导致并发量降低。 diff --git a/docs/netty/Netty组件.md b/docs/netty/Netty组件.md deleted file mode 100644 index 11e127b0..00000000 --- a/docs/netty/Netty组件.md +++ /dev/null @@ -1,141 +0,0 @@ - - - * [Netty组件介绍](#netty组件介绍) - * [Bootstrap/ServerBootstrap](#bootstrapserverbootstrap) - * [Channel](#channel) - * [EventLoop](#eventloop) - * [ChannelFuture](#channelfuture) - * [ChannelHandler](#channelhandler) - * [ChannelPipeline](#channelpipeline) - * [入站事件和出站事件的流向](#入站事件和出站事件的流向) - * [进一步了解ChannelHandler](#进一步了解channelhandler) - * [编码器和解码器](#编码器和解码器) - * [SimpleChannelInboundHandler](#simplechannelinboundhandler) - - - -# Netty组件介绍 - -Netty有 Bootstrap/ServerBootstrap,Channel,EventLoop,ChannelFuture, -ChannelHandler,ChannelPipeline,编码器和解码器等核心组件。 - -**在学习Netty组件之前建议各位同学先编写一个Netty的Demo,你不必了解这个Demo的细节, -只需要让它在你的脑海中留下一个记忆,然后对照Demo来学习以下组件,会事半功倍。** - -[Demo](https://github.com/guang19/framework-learning/tree/dev/netty-learning/src/main/java/com/github/guang19/nettylearning/echo) - - - -#### Bootstrap/ServerBootstrap -Bootstrap和ServerBootstrap是Netty应用程序的引导类,它提供了用于应用程序网络层的配置。 -一般的Netty应用程序总是分为客户端和服务端,所以引导分为客户端引导Bootstrap和服务端引导ServerBootstrap, -ServerBootstrap作为服务端引导,它将服务端进程绑定到指定的端口,而Bootstrap则是将客户端连接到 -指定的远程服务器。 -Bootstrap和ServerBootstrap除了职责不同,它们所需的EventLoopGroup的数量也不同, -Bootstrap引导客户端只需要一个EventLoopGroup,而ServerBootstrap则需要两个EventLoopGroup。 - -![Bootstrap引导类功能](../../media/pictures/netty/Bootstrap引导类功能.png) - - -#### Channel -在我们使用某种语言,如c/c++,java,go等,进行网络编程的时候,我们通常会使用到Socket, -Socket是对底层操作系统网络IO操作(如read,write,bind,connect等)的封装, -因此我们必须去学习Socket才能完成网络编程,而Socket的操作其实是比较复杂的,想要使用好它有一定难度, -所以Netty提供了Channel(io.netty.Channel,而非java nio的Channel),更加方便我们处理IO事件。 - - -#### EventLoop -EventLoop用于服务端与客户端连接的生命周期中所发生的事件。 -EventLoop 与 EventLoopGroup,Channel的关系模型如下: - -![EventLoop模型](../../media/pictures/netty/EventLoop模型.png) - -一个EventLoopGroup通常包含一个或多个EventLoop,一个EventLoop可以处理多个Channel的IO事件, -一个Channel也只会被注册到一个EventLoop上。**在EventLoop的生命周期中,它只会和一个Thread线程绑定,这个 -EventLoop处理的IO事件都将在与它绑定的Thread内被处理。** - - -#### ChannelFuture -在Netty中,所有的IO操作都是异步执行的,所以一个操作会立刻返回,但是如何获取操作执行完的结果呢? -Netty就提供了ChannelFuture接口,它的addListener方法会向Channel注册ChannelFutureListener, -以便在某个操作完成时得到通知结果。 - - -#### ChannelHandler -我们知道Netty是一个款基于事件驱动的网络框架,当特定事件触发时,我们能够按照自定义的逻辑去处理数据。 -**ChannelHandler则正是用于处理入站和出站数据钩子**,它可以处理几乎所有类型的动作,所以ChannelHandler会是 -我们开发者更为关注的一个接口。 - -ChannelHandler主要分为处理入站数据的 ChannelInboundHandler和出站数据的 ChannelOutboundHandler 接口。 - -![ChannelHandler接口层次图](../../media/pictures/netty/ChannelHandler接口层次图.png) - -Netty以适配器的形式提供了大量默认的 ChannelHandler实现,主要目的是为了简化程序开发的过程,我们只需要 -重写我们关注的事件和方法就可以了。 通常我们会以继承的方式使用以下适配器和抽象: - -- ChannelHandlerAdapter -- ChannelInboundHandlerAdapter -- ChannelDuplexHandler -- ChannelOutboundHandlerAdapter - - -#### ChannelPipeline -上面介绍了ChannelHandler的作用,它使我们更关注于特定事件的数据处理,但如何使我们自定义的 -ChannelHandler能够在事件触发时被使用呢? Netty提供了ChannelPipeline接口,它 -提供了存放ChannelHandler链的容器,且ChannelPipeline定义了在这条ChannelHandler链上 -管理入站和出站事件流的API。 -当一个Channel被初始化时,会使用ChannelInitializer接口的initChannel方法在ChannelPipeline中 -添加一组自定义的ChannelHandler。 - - -#### 入站事件和出站事件的流向 - -从服务端角度来看,如果一个事件的运动方向是从客户端到服务端,那么这个事件是入站的,如果事件运动的方向 -是从服务端到客户端,那么这个事件是出站的。 - -![Netty出站入站](../../media/pictures/netty/Netty出站入站.png) - -上图是Netty事件入站和出站的大致流向,入站和出站的ChannelHandler可以被安装到一个ChannelPipeline中, -**如果一个消息或其他的入站事件被[读取],那么它会从ChannelPipeline的头部开始流动,并传递给第一个ChannelInboundHandler -,这个ChannelHandler的行为取决于它的具体功能,不一定会修改消息。 在经历过第一个ChannelInboundHandler之后, -消息会被传递给这条ChannelHandler链的下一个ChannelHandler,最终消息会到达ChannelPipeline尾端,消息的读取也就结束了。** - -**数据的出站(消息被[写出])流程与入站是相似的,在出站过程中,消息从ChannelOutboundHandler链的尾端开始流动, -直到到达它的头部为止,在这之后,消息会到达网络传输层进行后续传输。** - - -#### 进一步了解ChannelHandler -鉴于入站操作和出站操作是不同的,可能有同学会疑惑:为什么入站ChannelHandler和出站ChannelHandler的数据 -不会窜流呢(为什么入站的数据不会到出站ChannelHandler链中)? 因为Netty可以区分ChannelInboundHandler和 -ChannelOutboundHandler的实现,并确保**数据只在两个相同类型的ChannelHandler直接传递,即数据要么在 -ChannelInboundHandler链之间流动,要么在ChannelOutboundHandler链之间流动。** - -**当ChannelHandler被添加到ChannelPipeline中后,它会被分配一个ChannelHandlerContext, -它代表了ChannelHandler和ChannelPipeline之间的绑定。 我们可以使用ChannelHandlerContext -获取底层的Channel,但它最主要的作用还是用于写出数据。** - - -#### 编码器和解码器 -当我们通过Netty发送(出站)或接收(入站)一个消息时,就会发生一次数据的转换,因为数据在网络中总是通过字节传输的, -所以当数据入站时,Netty会解码数据,即把数据从字节转为为另一种格式(通常是一个Java对象), -当数据出站时,Netty会编码数据,即把数据从它当前格式转为为字节。 - -Netty为编码器和解码器提供了不同类型的抽象,这些编码器和解码器其实都是ChannelHandler的实现, -它们的名称通常是ByteToMessageDecoder和MessageToByteEncoder。 - -对于入站数据来说,解码其实是解码器通过重写ChannelHandler的read事件,然后调用它们自己的 -decode方法完成的。 -对于出站数据来说,编码则是编码器通过重写ChannelHandler的write事件,然后调用它们自己的 -encode方法完成的。 - -**为什么编码器和解码器被设计为ChannelHandler的实现呢?** - -我觉得这很符合Netty的设计,上面已经介绍过Netty是一个事件驱动的框架,其事件由特定的ChannelHandler -完成,我们从用户的角度看,编码和解码其实是属于应用逻辑的,按照应用逻辑实现自定义的编码器和解码器就是 -理所应当的。 - - -#### SimpleChannelInboundHandler -在我们编写Netty应用程序时,会使用某个ChannelHandler来接受入站消息,非常简单的一种方式 -是扩展SimpleChannelInboundHandler< T >,T是我们需要处理消息的类型。 继承SimpleChannelInboundHandler -后,我们只需要重写其中一个或多个方法就可以完成我们的逻辑。 \ No newline at end of file diff --git a/docs/netty/Transport传输.md b/docs/netty/Transport传输.md deleted file mode 100644 index c10f4765..00000000 --- a/docs/netty/Transport传输.md +++ /dev/null @@ -1,161 +0,0 @@ - - - * [传输(Transport)](#传输transport) - * [传输API](#传输api) - * [Netty内置的传输](#netty内置的传输) - * [零拷贝](#零拷贝) - * [内存映射(Memory Mapped)](#内存映射memory-mapped) - * [文件传输(SendFile)](#文件传输sendfile) - - - - -# 传输(Transport) -在网络中传递的数据总是具有相同的类型:字节。 这些字节流动的细节取决于网络传输,它是一个帮我们抽象 -底层数据传输机制的概念,我们不需要关心字节流动的细节,只需要确保字节被可靠的接收和发送。 - -当我们使用Java网络编程时,可能会接触到多种不同的网络IO模型,如NIO,BIO(OIO: Old IO),AIO等,我们可能因为 -使用这些不同的API而遇到问题。 -Netty则为这些不同的IO模型实现了一个通用的API,我们使用这个通用的API比直接使用JDK提供的API要 -简单的多,且避免了由于使用不同API而带来的问题,大大提高了代码的可读性。 -在传输这一部分,我们将主要学习这个通用的API,以及它与JDK之间的对比。 - - -### 传输API -传输API的核心是Channel(io.netty.Channel,而非java nio的Channel)接口,它被用于所有的IO操作。 - -Channel结构层次: - -![Channel接口层次](../../media/pictures/netty/Channel接口层次.png) - -每个Channel都会被分配一个ChannelPipeline和ChannelConfig, -ChannelConfig包含了该Channel的所有配置,并允许在运行期间更新它们。 - -ChannelPipeline在上面已经介绍过了,它存储了所有用于处理出站和入站数据的ChannelHandler, -我们可以在运行时根据自己的需求添加或删除ChannelPipeline中的ChannelHandler。 - -此外,Channel还有以下方法值得留意: - -| 方法名 | 描述 | -| :---: | :---: | -| eventLoop | 返回当前Channel注册到的EventLoop | -| pipeline | 返回分配给Channel的ChannelPipeline | -| isActive | 判断当前Channel是活动的,如果是则返回true。 此处活动的意义依赖于底层的传输,如果底层传输是TCP Socket,那么客户端与服务端保持连接便是活动的;如果底层传输是UDP Datagram,那么Datagram传输被打开就是活动的。 | -| localAddress | 返回本地SocketAddress | -| remoteAddress | 返回远程的SocketAddress | -| write | 将数据写入远程主机,数据将会通过ChannelPipeline传输 | -| flush | 将之前写入的数据刷新到底层传输 | -| writeFlush | 等同于调用 write 写入数据后再调用 flush 刷新数据 | - - -### Netty内置的传输 -Netty内置了一些开箱即用的传输,我们上面介绍了传输的核心API是Channel,那么这些已经封装好的 -传输也是基于Channel的。 - -Netty内置Channel接口层次: - -![Netty内置Channel接口层次](../../media/pictures/netty/Netty内置Channel接口层次.png) - -| 名称 | 包 | 描述 | -| :---: | :---: | :---| -| NIO | io.netty.channel.socket.nio | NIO Channel基于java.nio.channels,其io模型为IO多路复用 | -| Epoll | io.netty.channel.epoll | Epoll Channel基于操作系统的epoll函数,其io模型为IO多路复用,不过Epoll模型只支持在Linux上的多种特性,比NIO性能更好 | -| KQueue | io.netty.channel.kqueue | KQueue 与 Epoll 相似,它主要被用于 FreeBSD 系统上,如Mac等 | -| OIO(Old Io) | io.netty.channel.socket.oio | OIO Channel基于java.net包,其io模型是阻塞的,且此传输被Netty标记为deprecated,故不推荐使用,最好使用NIO / EPOLL / KQUEUE 等传输 | -| Local | io.netty.channel.local | Local Channel 可以在VM虚拟机内部进行本地通信 | -| Embedded | io.netty.channel.embedded | Embedded Channel允许在没有真正的网络传输中使用ChannelHandler,可以非常有用的测试ChannelHandler | - - -### 零拷贝 -零拷贝(Zero-Copy)是一种目前只有在使用NIO和Epoll传输时才可使用的特性。 -在我之前写过的IO模型中,所有的IO的数据都是从内核复制到用户应用进程,再由用户应用进程处理。 -而零拷贝则可以快速地将数据从源文件移动到目标文件,无需经过用户空间。 - -在学习零拷贝技术之前先学习一下普通的IO拷贝过程吧, -这里举个栗子: 我要使用一个程序将一个目录下的文件复制到另一个目录下, -在普通的IO中,其过程如下: - -![普通IO拷贝](../../media/pictures/netty/普通IO拷贝.png) - -**应用程序启动后,向内核发出read调用(用户态切换到内核态),操作系统收到调用请求后, -会检查文件是否已经缓存过了,如果缓存过了,就将数据从缓冲区(直接内存)拷贝到用户应用进程(内核态切换到用户态), -如果是第一次访问这个文件,则系统先将数据先拷贝到缓冲区(直接内存),然后CPU将数据从缓冲区拷贝到应用进程内(内核态切换到用户态), -应用进程收到内核的数据后发起write调用,将数据拷贝到目标文件相关的堆栈内存(用户态切换到内核态), -最后再从缓存拷贝到目标文件。** - -根据上面普通拷贝的过程我们知道了其缺点主要有: - -1. 用户态与内核态之间的上下文切换次数较多(用户态发送系统调用与内核态将数据拷贝到用户空间)。 -2. 拷贝次数较多,每次IO都需要DMA和CPU拷贝。 - -而零拷贝正是针对普通拷贝的缺点做了很大改进,使得其拷贝速度在处理大数据的时候很是出色。 - -零拷贝主要有两种实现技术: - -1. 内存映射(mmp) -2. 文件传输(sendfile) - -可以参照我编写的demo进行接下来的学习: - -[zerocopy](https://github.com/guang19/framework-learning/tree/dev/netty-learning/src/main/java/com/github/guang19/nettylearning/zerocopy/ZeroCopyTest.java) - - -#### 内存映射(Memory Mapped) -````text -内存映射对应JAVA NIO的API为 -FileChannel.map。 -```` - -当用户程序发起 mmp 系统调用后,操作系统会将文件的数据直接映射到内核缓冲区中, -且缓冲区会与用户空间共享这一块内存,这样就无需将数据从内核拷贝到用户空间了,用户程序接着发起write -调用,操作系统直接将内核缓冲区的数据拷贝到目标文件的缓冲区,最后再将数据从缓冲区拷贝到目标文件。 - -其过程如下: - -![mmp零拷贝](../../media/pictures/netty/mmp零拷贝.png) - -内存映射由原来的四次拷贝减少到了三次,且拷贝过程都在内核空间,这在很大程度上提高了IO效率。 - -但是mmp也有缺点: 当我们使用mmp映射一个文件到内存并将数据write到指定的目标文件时, -如果另一个进程同时对这个映射的文件做出写的操作,用户程序可能会因为访问非法地址而产生一个错误的信号从而终止。 - -试想一种情况:我们的服务器接收一个客户端的下载请求,客户端请求的是一个超大的文件,服务端开启一个线程 -使用mmp和write将文件拷贝到Socket进行响应,如果此时又有一个客户端请求对这个文件做出修改, -由于这个文件先前已经被第一个线程mmp了,可能第一个线程会因此出现异常,客户端也会请求失败。 - -解决这个问题的最简单的一种方法就对这个文件加读写锁,当一个线程对这个文件进行读或写时,其他线程不能操作此文件, -不过这样处理并发的能力可能就大打折扣了。 - - -#### 文件传输(SendFile) - -````text -文件传输对应JAVA NIO的API为 -FileChannel.transferFrom/transferTo -```` - -在了解sendfile之前,先来看一下它的函数原型(linux系统的同学可以使用 man sendfile 查看): - -````text -#include - -ssize_t - -sendfile(int out_fd, - int in_fd, - off_t *offset, - size_t count); -```` - -sendfile在代表输入文件的文件描述符 in_fd 和 输入文件的文件描述符 out_fd 之间传输文件内容, -这个传输过程完全是在内核之中进行的,程序只需要把输入文件的描述符和输出文件的描述符传递给 -sendfile调用,系统自然会完成拷贝。 当然,sendfile和mmp一样都有相同的缺点,在传输过程中, -如果有其他进程截断了这个文件的话,用户程序仍然会被终止。 - -sendfile传输过程如下: - -![sendfile零拷贝](../../media/pictures/netty/sendfile零拷贝.png) - -它的拷贝次数与mmp一样,但是无需像mmp一样与用户进程共享内存了。 - - diff --git a/docs/java/Linux_IO.md b/docs/operating-system/Linux_IO.md similarity index 100% rename from docs/java/Linux_IO.md rename to docs/operating-system/Linux_IO.md diff --git a/media/pictures/netty/Bootstrap客户端引导过程.png b/media/pictures/netty/Bootstrap客户端引导过程.png deleted file mode 100644 index 457e6350436d5af0b3e577c094c9d9e2544f5517..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51366 zcmd3Og^h=d{_(jXy?q@;k--QC?HAOZr?B`qK=-6bF;lF}vJ-FepR z_uKDxuJae1x!k%Hn0e;8?|ZFZtqG8o5xa#&goQvLZi&AVmPa72tsxL7X_)BnFPfqs z(cq68)~{6T5D1(W3^m!hH8 z`G8qg;^ScDGwSQh5>CMzlGf37%JTjr+4_|?HmOr_x~abFO@yKS4v`Z|n~XR{i6<)m zZG*Tpwz&T4w~VzI%R9<6Z;R~DhwtXG)pn^~m;{v=sH48PUOLV1{5)wgk@A^JAcYyJ z_Dfr%!$c>;DU$lJeNKQ`w7KDHl6I-vaf@K(S|&Aa*EFXqW( z8fXao`_PUOq+YxB-$yRKpvwK*|2~v6Zg*C{`}fgE<0m_G9qr$T;xpf3hX1_;iT~eT z^4yEIyD=SYfK@WnYq#U6^VP)>GaujPt3B7c<0f3scS@Qr22~?>|L46bKi_udq3!;W z^RA69O9$&Mc17lS&(-hZd?J6|{AZyp?sqzt|%a8~Da665usf4)3wD5Sp99YD($^BGc|SLwyuB{$CJ zS2YVWdTHj+-sS4AtfD3OUHZhI{~YCN8~5s6jnft%es_I6AJ4`90B%=&BavUG$+l}9 zuC&;&Lwj*88ZnBWAPQfymAEml1QRxDI7L3|L&>pWl zP4Nno-|4y#c=S$+$|o)^&R-s_`7e{@bbavU<)y#kd`?bI3N=>o=(gwN;NC0XXy@(|IXR;6{*qhFDSBa z>6E3UrBl<>Q4!kFG?^J~V5jp%_)_IB`tMkUGL z-yd!h3Zl<=KXsL#hX)%mQs-7d`TCh^d}b39Hg%vp`_=qB1$MK5o!xU&Q`6|Lp-YR4 zOzi9*PETD2|NP-hN=Qs>jnVQ9$jqdg-#fV;CCw+4dYg-z`wrZYU{Tt|wW_70=Di;N zP-mXs^!_509)Bh$gO%w%2$SoCQM!3@#IM)A$&z`DkEKGDEZoP4!4jvp;^gR@ke?9i{gIQq@K6}g}?>`;3+W+tm}FDFNL>33pmVxorq zMcdDx2t*J6mHX)V{BxqybL6K8q4 z4a8eTDF@yCszE$ARdaOkp9NZVAI`cF5AtJC-Ohbc& zRa(f+jhj5|qYw^ubK~L0xXsn2hkAqOWRdG-za*oMzCM~&?T%X?YmAhI@&dqSVJ4X^O%NnO1uCxS65fM(*6}zQnz(x^NGqZ$)n}I^pQ%NbOYUP z)H9sV&!3$gZZ!Lod49C=SW}DEz@L2?Ser{Xa?f3np~Lq@a*vQ4zNv(sf1TG;Dk@?Y zo0Wdb_0f_x8^`zaeXO?<6BA!iMU>uhvFKKNTyhjv$3MASm>IjF)vZ6^IW4V z^rjfXt3#_R(d(fXPspde&c>%_D;h57k4EKtG^%V{*~l0hE?y689dVm$J_*Bw{SEuw z=JMPH&8I26v@`0BxaZWC-=JRAaZcpWT4BR)g`dg>AItQ%Ha5!UgM`UpCqVI)#lK#p z{LAK@J?z0=2NKx&PFqtVk8TUlL|v18JNCifKTL{BPDyF0b8lwmk*k|qY7PzCKz4Ta zOZJ3}8X6A|k4Pm=jff5kglyF_d@N%Ni!z=z)FNqyKTfqQ(gXJG%W$6`;#L>T4Q9U~ zeDI)X-fJ$Hqj!A#CTwx>aAQ@jL{X{;n+&xZ$A9C$36yUF4;RBPm_E99ApTp zsXg31;fb-59$3!V%9Kv9UhaK7EMzwSh!Vld%K8FF0`K~7ChV^RCh#}eg+|Sg>8%Q4 zQ^~A>$Od~ZY1~AU_zxW&;-zI}e~)+ODm~8F)B310a@V-vdPK##YTnV zeCyV&k?%UFA!Pg^qoXRrr=sa{K~>jY8W}yM5KnVlddP0xxV-#L=tSR%104gSZ)9Xy zc0^266j}P3w~n3=1U-)E=;eWpB&$$1uhZp^_e1I{5Q|{+_@F|u|7pdE`0?ae5@#Q zrNi%q1#2U$5x<^Mb3P#>X)$HSKa278($vb$>CC5HdD72MLP9ce z32@|ZXN^YmdhKf|DdqWAO)C+(U)9ysfm4hXr!l4x0RcBkGBbZhQgqZ>|9!t^_w};& zC?@9WcOrM@@LE|rUaF2)#ia4*SwQK-1jWFHR}?=i?(P+2T`kq&z63knUCG z{0}@cSP)6Uv}v?|pv_>tmes!mh@-3DHeHJv|FcBKXPK-OBQrDF4rC zq>LSy*6X7O!kPvE(95p`mg_4%XJ?Poc^$ZQs;qDO<5~er~qqThfv34NOVeco{ zB=@_$9aCTBXK(Lq-s5;Fs+CSVmN@$nXS4VZD=Q{auV2sQS4>?)tdCdV3fM%sUS8qU zhbi$6Oh7wI`W69Q7q@F!AGXq}iKp7J=-I5mGk?AWfWrA3ziuxn{$APc3@ zCN^>-COi9CP+m+UXywi;88Np*+p2n^(t5hQcIU;7<3GSX@NL!! zQn}@_)zQh$P4K<++>_tKYJ!QII|x~B#3Oe6zR=ptRpsXg$G;B?itMOq=si{9qQX+8 z6*8mWr8CaQaZ%a2ZOGL1u9fr)_0bo#dRu>9gzT_~BY?T4r9G9TCoVlnyf;;%|L)-9 zUV0q-Q5vbRB0D`hTOo6&itrv@6QPMpV})L*O^B{rL^!z$Rd?`h%hplz+)gk3Rq#WO zep`1wG6s!m-`D&X`0z$b*M-SZ5c?|SmR5BK1Z;EL&Vid(u#2~U++!{V+*K42r%y&bNv)$LMmv9$v{dkeysnPCDtfWe zt{Iz|3B7)e%a&W|yh9G?l-MJ~gh*lJR&!$#uNxB|Ur0y@4#0c!>3R}2Hn!!ht*lJ; z^*yCRO%bldpYScRZ{GMwC$P&IM;A7WU zqf_-QBu|1C7Y$DfTzN=^)8$%pnO}wb-hC>gZEW10wqJj;m~gzBTe$2JAWZIERK)Cl zR5M*hjAJlaRsFY%vEl1Eb>Mrm;ex+oWo9^b@e)6|r?w=1w*9e2$n>fv{sW!!<@I`9 zeE?6O2yc(@lb`Xj=l3twAJuI|Wh{vD<707}+uiiL1|=V$ybdAy`=&=4&-PB-Lr_04 z)^1;WmqrUDCOdfL^5TrdU~9TzIxTPfgjxD7Jv}`lFgH^{K>-upM;70&x`}pJ25mjC z+=KwPHB2aKUNcp;aiJ@Qq!d%reMh8AM^Jt`HTChlEoV;N)lR6FFdczUP7aRR7SIdH zhY6YD8*v>H>~e#nu5cHO<3+nFZRXG&x2B|>ZXjmTL;0@BmNM2mZIN1>MMo2~7h{Wu z(;fba>Lfk+&7CJPL3FJ#RmdOs8}Daxe+`wyA7-BFB1bsxG1W zDdqC|x^K_Y9O<&b#c4^PtAhjEBr{;B(t^p!$rm1{rLFaKMMZbG9oN4ZW9#${4$c$d z2OTt9X0dT{c9cn16t?eu|7=sJ?tzvcm0CvNLQtxxsOkGd(-#)yb{C21xz6&LJ73#h zM%&LNP?Q3Mf22ij;}BOz^>nF;M@p$g0|@H_%+$>E`4t8H>Kz?jslKQA47eJc2`s<& z%@OFhwbi3O#3&+reo$G5Pw!z}-$Z#^Q4M%S>~kCt++s~JSYMPzywPxBZVhbb4H8T= z}Y;J94dLenMuO6Et~b@ZN#RITFQ&Zv<}v9h8-yI zZmcFb*xKTim6d&Ln~Uzy1Jney;ov-Njf+*fIYTmrX0`_>>FPip!_|9MIQeP1CAZf< za*Uvgmc09x+jKJkeP#|0F(Y6756T^fGF29j@sy2H)#Njl@9yDi`u>vVQR-|^^9*m> zI?@A}eY~6=y8YLmYa z!2lIU)qEM_Ybu(TReUrtZ47OeTc02HQ1GjCdjX45H@P!19^B2(!Ql_rF?+w^_`1X2 zl(h%261wLAuQF-H*2&mUEU)yNB%e$td!Cw@3d#iz39gJQd3PN0 zGdt+)l~A!{o-}@HwOrMW&uo?QX~R9ypvM1h&_xhL=BzPXWHHWu6SvmLg-QBuTPRuE z#KaeaKMw@NE8^#SNhA{nV;pi{;dJf_;Ab#4ocHVg`0@Tgvd(Inuf6z_*2St40cAp@ zl7hl@0Is&EJR>ODN;)@sYX1xaoZZ>6;W-$5W54iaiRE)f1~nEsI{LRDDMb~nkM5&; z_*mEd<8E{A&4>;Ji*YNLM7^TW?a*_&XB;nbU1`|i*YDq4zmlZ}zH(zFuv^%AG~kf& zLAfCI92h+pUX-ZIefm1dSBKE~aMZ{|l_5rmFS(*!jg_bs`ZSQ{jT8~8U9^@gK3P_| zUDrBzYyLPSKX&HYpl;&;mX&B2BouU(Q@GdYb42EBt&NXx!tkDd(v-MPWma2T%Sx&h z6;gm6pjWmSJdh3LIkH#Vl4bNq$NA#jlc+oxc0bEF6rM4e)~bWlp5`2d6NPmGUG^O}H) zGqXFl;|zKf2v!mJRd*9*4csh687hC%7A?@G7~-{}si109m%(tURQ+2UHO< zS@-D}?d!QJf3fn~#9nL0+db?s z*IssUAvZtYFDD0toe)nRn_1tv6O9^26z7?viK!1Q99IPzHI*COJUpKSQ?;2%=Ki?Z z+JZg&D%hNTjwz$-eQ2^CG3#c$O$?H?LK*BH+3xE0EHX4TAu)Tfe?NI_(Se(Ju& zJ^j+mEZ5I7o0%fH=gostP=t1VJ@4r)RcA0_J}BDiEjmHu7H|H1&KTULlrgu~ym-Gf zI^-V#Q01Sbz8+8%uy5UZ z8EtS5=Q*WEquTyPG2Iha=YMfi zO^AXAJ9Z;_mP~|Y@KQjHz)aw<%9Pl+`4)2@e8sH`^bHge;4dVXluF*Pcr#`>Ma8|2Ox3Mh8qo~mX8RExG81~nW` zV>2hR<)1gt5-TmGs3HiQg2E~O&b9`@I*gQCJe*W{CX%ZjmofICwa)G6yTh6y=pd!# z<>dHS@ZNH^ca3*v6dk?1_$$a7PFHEgG>eI3B44@Hb^QLEMjgVcF}yQoR;c34s9;r` zWAPfP4gyHuncVUm-jxaam$z zg_Z+>{|D(NpU*!fBq5=H*u8(UlwA06iqY$&D?_^rMJ2k(Y?wie;+0A?GYiZ6L~bY5 zTGnlHU7Eo6`Yhre>UVFy#-}?yJ-v#b^G~efk!i|f0{#pZz_Em z-G$>^<$r6`xLBZXiI>^xTA;)_^w{Wi?Q*)VR~hmIp=?kU3JZI5J5lk^xQTJ>(oL?l z)>9giIU?J|2c1W8Qql8uvee4I#MWO?;DN-0ii(OLB@X|50& zUp)dUp0cDqDn`MdZiNyIo1B=-9uugI15y=*D~CFmb`VVw5YJL2VnMn1(wy5kUa{Zz z)Aff%%18qSu^p?sTCD#_dS%BM3CW>;TwP3GWgJP_{l#FIa-O>d@VsvJ{HAy=1-~3V zNFA3klg4+hXG7;+D;Z}E!sxb~to8$9p^EcMMnJN@oWzKS+R+=11_9h6o3J=N(D0j4>B-B13KO(UIGaVA?6f}LTaeMQUBO9{+@ew z8Vi;2BGiCL1Q{K7RbG3 zYT>Bw;xldTiE-SXo~6qNwSHA{!gJa7*+Oi4S^{01q0Pa0*{~*3zZE@;j|wnnH*?V( zU|qes1P%%+w(T}>YHPqDM2&fwndnLd>P5#4PtWhD?E*WEAL{KzNDt6q#BMCUf>%Zo z!CsIkG$Qe;TPPObG>ud{&?07#lvL)+3-7(9p7g4!2SAZTKqm!p6k5`^+L5&`&%^!w zM`5pek6NS;r`)!9SJ54{wGmMLEi5c59o7ger)oPkN)8Vl0b0}Gf)xFh!G&dC`jgxH z=oi{F#`!!Tug5ms#x(G_p<~qvMTnTs-B~VI7|O-g)#cVsI@yJB_Q>6t#)7;UA@ZCn3%z&(9by=N$$~?JTCy4a&|u6B&U6u zVF7O5_OcN5x(M=pH6@Tt)w$hIcHg}rpN)Tc)^JsmHab6jxiLKp1`5>t?)W&ALIqVv z1CO%pGNLXQe3P)t2A4gm)z#G$6QU%yP0lXUGu6Vm^u`h-l=??H*ER596QEv`{AeqE zk}!Raq=oiDU;KvGT5&zMQO^&wuGs1?Hmn%$2VG+aQg6&^YD4nudwpX8mw&U)`dC@l zos?I|lQWaxFFO*1)FpLOrB6VSY+O6QT2M!R2_B8;sd@Jwt8*}*ezYzUG;CPfao&a% z!JNK4tf(@%nNb$Yiqtm$Ar`*1n5t``|5rm(1d5UN>|dWV8eLF_Q7|u$5p}3D?;f>i z^}I-N>C)@00fLx!8M{k+E;qX+PQW7(baOikAKuY1J~%v#&U1RE3Kr7fEsd)44?5bQ zcK|~vBi2>xmXw5=!fGMiG3AsE#Al`g!wRR+0du3N=ivwMr%BG&_>z16qJNjAPHAW$L(qB0BCN*?@aa=V7749V*Hy0KyD5R*v4ImP@@I+SfUT!V32|kKR7&`4w?nRSXd^7 z5Tyv3b6T;HkrA@%zm&tbcXFER=9q4&*{TmhqWR_J<;KB5e1IaL?OO#{clM(TpyC7v z2kXFwc`EY-fsnkNQexDjYi#^+s%ybEn*PM9f64401E8s~5y5wLZkL0I3aWO2W-oc0 zE^WQ?`cH`r`FlGKYeV#iMmW7BCKTk$KFnt?969J{{e68V<7D=F9 zg$pMSu-*cg3`h(#irnA#w{%UyZroKX%vcO+XGFScs0gqUBxJsN&-#Y-28yOfe=G48 zXp}o_4Z3eL-+qUcgX0a+&4rWsjtHci1U<sMv1B9GHS;6(c2{q z#vXgS|Q2t^7f!xBh%Kh;h61zSaw86w+AHA~^@?ffiUo+bUv^kwBkweKxMJS1BM3)2wxIc99Vg{iydidnAs>pjnHF_?DmF`X^WE4u~J61H)QglXyDO z83)I6p-&<@Kyky=(9p1FV~vxtJIg?-RM!9N5uW7JJ57=5w*Ly&*s zi|KkaHi*`=o(3fDOQBZguC&g6&xJBmm>w(?y4vK}Q%LH{$ z-N9LKSm4DAkR@FN9|ru3le!5dYJ3)y*kZbbfq{Wi1~3J90@Gp3hE)Q z2nQjy>Sp(^U%l+Ke}-!>OSHZwyYnS;GBf{;4{h(zE%487sBEDu5Ie%7hPKC_2Dc2S zB+~Ygf3v*?un_nw&{-TSO5gf4Y9zQ9DP@xudO`dlCx@UUTHq0&vzY_e>(Tc}pYGEdtpAutj-OVtbad<8I9C?+PliM09*LBYiKyWAhm` zEy@|c&w=EFjzIK6xc`X+N!l&{WmwqMZ77*;e0}`h!*Pkppycev%26-JYfCgo+r04-_Ca% za|+;SNraagGt#dAm7aO2)jDSbI}*5wE~wYx6n&GS@)s%{-Ya0yyYt~HD9{^fWHfd< zQNrN|LZ;RG9I4o?-T2R;B)I!hO-*gIS?ACVDk@+~xG-qW8HdYoR**%wRK+h+$!f|< zSLp&sS9(Roea*uAqviyj4aqbsE$e=PC zQd0(-9u#fLMRGV}&Tyc@I`n1L)NX|OC-uP<5uJD{2ng6~w8cF)LPB*D(6iU4>K+!>?gC#Rt_Y6a(|}ftCL77jqC)+rjYqYG zXB`q(v7pyrNS&RYeg}MmlqxPymXOjWsJT#@JhJY0KIc^CighRN*Ozx;vd)_{%O$U&g;ps7ymRFqtvzP=HQfvV`F3R3>mGSg@uJ$y*dh0TR`5N zd2mveOX{F|R~K+A9<3ja3d-|R_>9vGywN8w?3Zr?J~k$j z8xmKG&kO*Y5-=1vTU~oVXIQmENsva6hh{hhb)cXVu`=*?+$QbMQ+m7`pWXgL=V@Ym z!Act`F~ZgGF5hCHTdI*zYyq<$@*l0iPh}?@ataC@Yj0-1?Gy}>nt#P}jeP@r+vDF( z^*#{wG9NF$1-oBGnYss*^T-dAMsAdPp(gQ2s_t=C{v;Sf@Ji=rT?Vnx_56kO|3`X9 zq2)BA9G`~tNz3vwwMHK;#_U3iW=Nf;Ff*-!)zlV5Zc>460f&Oq`kMD3lGcldf9;Tq zLBS2uUb_1FEeD(xT;Z>W%97gVUa}HpcnD~7gg$0C{y3|aLwwEA;R^KR=vp|-U>xo^ z6JPDWz7n3aEiRofRw8#pTYo$!&oewc4A@R+fEB1xM@L6^1a0v{ZN{G8J{}_R3*Hk? zYFIOHUgOzi`I|&Y7=#ilqX%*el7_bZ{kaF34)jK+EtMSpbrb!VKw>%%B-;B`qC8W&=k-J^uTvh$#ZmFUX=lh}bmtAvr0=c~ZHHQ?> z>RL0Sx?cAV4*K@+onZ^CqzF2Sge&2kolQDTUq=-1@-Xr@0ZalzV&`z&3Kem%`J-Sg zDp0#xeM3Q+xsM?^)H@2eQI;EYtUZ&tIULf(k|0PKEa`8wj)VgnYvqIw`6*BMvZ6N z{4i!tgR)NmHpwkMgZRujDPhP9QHalu`Np`Bjcx&Q4|^pLZGb%e5Lbwf+Og%y8ZZHn zDE4*M?-OsH+MAU95xwch%9}^Zy{az%HO2p7iWhf;7-H0-QSGY>^dN7w&#^}J9S>mD z{^6l&8pl{gXMoAai$^3bp7f9Kv2?&6az2`Lg76^{{X@k9-*%$XMsJkd0MsCONq@m# z(PH?9wka|G5KdI4Lr?Ch_{NUw-wd@DBo)xJMD-~HM>#;DqUFP`Qh$UY(c!(&S}Cp$ z3I)>i21gFS>bK&l(NS^f35mzaJp&rht!us^6;8&}?Yw{TtlZH@WcrEkf1!;&Nc~TF zAba?*8L6w5$Z2|3@EmSYJd&rtgVfFf&6;EN`W9%Wa3s?i!E{uwcYhEd{9Y3rfM*Eh z%`mg7vD|Q0%|wX>FDS;K4$)_lLG?z;C5wxT2>iOn&(skaozGf>csKepBngR$(Y70n zcoSqIx1NZFSg+|3qRS-l+?et15Un~b0U!gX2NG%m;D%rGMkt)FXTFT;&x^#^O_aLU z*49R10;dBciBjB&&Id$9#Zn9ePb8sUBYRB!smns->YT)U-`tMC04uD)EMyGRGijlY zz_A>Z>;*mpcPM5N5EXQQBDW(;uA)bG#P09b-&Uyz<;{S%QeDtOSUqK2R#7nr$eTvo z%-x+BVhix9usc|htsYanKYmJo20xQcO#8a;FtV!dlg})2jc8k~-NfH^~VQa$;uBhHP z*(i0~81n;p77C5FqhmC>^5aKXcs&lY5|$l1$JSlR@GPvXzL1O!(%4tCs`G=o^S3?h z$-bwVnc1i<=17$8*(zs87wM{gl!GlJUck)$$^aoL>CeUPgudZnv3tjFY5c5Td;)Fi zTMkykbc6N-^4tnCuXARAICNc53c(I%G%3*xG|b@nyal%w-u-xmRU2s3praTX8QGj4 z+n9#yR;*MEaJe1QEpXrk(5Xh#uvI*ZQlz;8Y5)xzpa*1tTK%$2;(>O2rnmu1R_S$B z?~@6k9}tt-RI0(R1-)@lVEUP5}7dd9!Nin_D~C<+i^;*JBB%Y@Z*sr{6C+cO}S+@JcYaC&7f1 zE#y7CEFCCDGU%Kf@`w&)sZ0uSK_#X8kSqb$V$rp-ueGf#rqy?ur_Wn&pj&E^%_Wfhop;z&d!DMe*l3AHvZ0#npG170C7yhUpGvLZj4u` zrER$Kh$uxv%hB?>U@IP_TU}e*`T5Wai4q}{1c_gc_=JQa0J=AE_4E2zgGGUl*aDm+ zI0`|__(@7WKHcI*XUuynl{H|1d-ya$d~j&!8nujaO-)U9mtuu&JE4}6l0P5}Waa<} z^36a}sbAZe00OM{7Nw!|`4kM@b%!vneHtfNGfT-{q!1G;y9A(`mDLs|Iv*$H*i~jg z6D3F%a{*3;xEwzTgCu!hsRO2 zcv{UoUhNVV4q9fLDF&j;TZo%gx+E5RyHgy@SS25UzE90ddvYQq)CH#D0;2QUPh_zT z2m1QFS65BdE3Huw%R20i2t{OAmrH#d<@@m?t-wRoS42VbClKa9x(`Uz8w8-?0*w-$ z``GB<*X*9uW^71A3E>kRrX-E0&e(I^YGwlL`W~;SRwCTjoIMBx|GqxCYL>y?-gg&g zM{4F#9d>Zg00@HwL7)o1LFCie#3c0yNMhMARZsYzv-_IP-ZTh-KHA^w>v`$)xTHMG zFYx1}sET0Ai+Q|4kREDM;CWAPwSh0W5{DU$8y>Teyy0Wa8hAAAl}wtc8R!%>1AesA zq`}Oy@)pTAsj>nP+=93jQjAvm70@qoo>P-5ORWtml6_W6bu|%SH*gK?cOxY-WFh-^ zy!|)u_kCn83XY6FE*ZM)x|Um_WH2v4GuZaiBd`@z7N&5DABygN{$o=(yhfPoyij|2 zx(40r`Sa&+{`sJ!*F%73K14iVhpiz%NygPtyCSJviENC=f(nf{6>By3_CT>$7!ARH~IrUPfL>*+IUY(Jj_VK|vaUOuk40N^1aT4NRjuu7Wb#dDh@Az{CXp}W{?SFi|EjAy?@3>8#uc>5EgdlIX;#g=QD?@y1802SJ&$K zn!=nMAKWCmXqqQ@0g>HL3KptBri9!Eux9bC6L&sIug_QL?4jc#Ke^pB$zy;JGyjZQ zy#ly=_Z@Im9jXZN0Z3%&hkmk|ub>dmr0asqpV*0Zx}#~J!jNF(S${0^`HFg~MtBS| zja_c49W~zx7}K z6mtE)wLA`@(ur$cyQEZNL31PK0Y;jZm4yLueY_6)veE_BR5q}0tzY~Krm9h{2b2dI zGM${peTks^T8&G4ocbou#^j?7z+aR^8`}}rf8XL4pXmlV=`q!%0I^R*Nuq^wMTIAEV$GugH zDkAso2`XMkJf!_(pVOrn5LzZ7aq$#ECGNe5kG}|+>Jd6^IW(4z)z<{n-Z8|kH zv^eumiVmgz>hcVF+qQFF?vMD)zCUO3auAJdqxT;e9~(1{qreT&OQjB^pe@~-J7TQR2RfBL)BB;24Gh^gP|7wypR zw^3{)eH`0u<)4!ieHxYa5Hg*8dAa|Lx=@JQ_L4#-yR>BTSAV{Hf4QUB9m!j%->=A| zyeUy@ESf!cH|g1>d+|z1uP0rnf6VxPsIyn_f!#9%?9RbFAq54~oR3$}-Co!&e&XcU zV$Fhx+8~9X9KNedou=ufPJCwW1MIFnFk6@Hd~ujLvwe-+E>zygvIh^QLzorL)*^h3 zcmw?>_9Db|sSqXE*(OaFf@9L*6we8<`q%W)+`^sCe z4LRqPXHa|}{9?$dg#=KZC4k4(COlh%MsXcJyJ{HFjjA$N(au_G| zvpA4O91pg(M!u2BcTFSZ`gQFANFpNjp@3Hq-3A~<;y$i46J&_3 z+;UPvY1gF|FH{;Jpgn!oTQUSPt!CWIBq9gi5?+9Bs}RAnr%@7pe_V>m0qF;TIVdJj zBjk_s7sxK_7R2a~iCc|me{kCRgjxdA9>sL^d9rt>r3V7+gCMQims=1792!zY9vg^e zO|YvL6iMWPZ}jizoVNmsu4$8NZGM|9$N3W3mgK8A&biR@|M94^=M zY)M;EQThp{>Q-C!`QH<<`8w(X`V`Cx;3OXk^gWk>E|V&&T>fg}+9nuQEZS^jg7IIz zsP8}KV9yU1(lPs+@+V!utZdJm5S@3sI{sKyMzu;kg!G-7v^%{RC$MxT>}I*)s71-% z*`>mkp6Z+&=bhI3DEPP>t~{H}925N`GZu$DmZczk0y45*=)6bx;UzA=Y5d~H_rFe6 zj85iv43yrDF1KW=*ylbBYE3bTU$_c;m-j6qYRhk5GW&G5AA}eXdq09RFj40=JgYjo z;Zkl++AZM>Lve!#w%L`Wkc!FNbe%M2SWu??SG^yJY4WrxGKpG*s0pO=eGG;y;;BIG z3%K==U0YXoHucyQaNl>YD^H9I+tPOSDfvNWSOxlizjqoQDk0@pnI`#$Nw7_S{AJ>O zRTk-fC%Fw|*PEFcYh3mkh19Dvy8RHHrpG8IkT3%w4ghp)TwH3dmSofY8(c!=&9tct zJI;_Z^_Qh?pR6=R z8R2>Z_*mQkyUFA}NAW7g$z%=mI!xk4yEDU3&fxVZkDCP(cEB_MCq%o|Mr=8bG-soV z805btbR*SQah#;Nr|b&X101o>)z5igS zME4C1eSm0i?Zx3Z7+`=xGcvA2F6wKs(EIE3_^>f)n!%yg>MarGlty})!8F0O0x;7w zb|)|NmS=gdtp{K7oQmRRz!$LPhOg@Exh`b4P;THEAK^7WM^(kSt#bP+EEm^Zh{4`jYJGSPX++S8%)K?&}n2Hm~_kC=k8Y%k#z4 zZphfz^t6`E1*$jVtwJjXnY%#6DecM;M42HZhmDK-#xo$O7UGG5snF)ks@gOy_eX8l z=g{NKIoR1%H!-exE1cA0s)}TQfvbF;92yb=Bxwf5gb?o_&(TZWZh1vpTMFP20#T0= zy2*)x`*~n)#@N#G14-@GjonSK`cV+Uasmv9!C#;1Mld@voEOXbz_Wt%J`ZWA-ktWj zXFqX}S}(*E=vRDy9v>r*CPH~tBd6XGa=s#R%kwRBJ20XmDg0OBXM@C=MMDL|gjAF2 zw4eziy_`1Zj`S+xD~mN!7*g@BBvTEb#m9E~yC?1dHx0TT zS*CvErk$B~HnJ?pnJhfEZD0(h%$=rw&!VswE-~YK=4irh_OEBFe|aX01>JufJvc4>p;Lq@%3zeuH967p z*{EF*9T(&kKgz3h*v)G^JwWfQS$%SUob0Q)q9_#=m4xWejkPs3n<@gO6*CYk(FCR~ z4kv-yu$~rqm{Z@oQ}Z^SSDvOyLWGI30Lw+rZE0z;&6%Tqz0axZ!m8?zzeDi192ye4 z_AACv#tO_#UxG8zyA@F_B!&>k6IM2GaZH!oEU};b`P>aCkOZw7|Bw6J9|ABlr|Eo) z>wUHTf-dGK|DkJubKithAUpCGD0rPsFnqDnUQxNz17&2N<0L&cHkJv--AEeSk03S273r``mz`cme1?!` zxN0uHkQh)k=gceqE%~IlrN6i$)r4=m;_UnV&?R_c+36n;ojZRq{O6C{s9vEq({f5H z4TbrbH!6k{!jOm5sa+OGzL^>x*&xz1@G_*sMbMq&O}FMv8w;8hZM0sV6kjj{S|5TZ zFc@bgJAN$#5C+~%H{?%Y0!him=FM)0o5RJa!@$}>zm3m?o!e3Ln~>}IehWvgb%r3I z9Zf>XXD-xgkZIFl>0p<3N?tIJ_o#iebz?1g{BpDCXmg@Uk0wx;osBJS)I7RgGABn~ zYZfkt^`1!4dFUM?{n|%I%38CBM-d#GMLmB82d&3#wYA@c@UDZ{YJ>yXLF3UV)9~MK zh8Ur4TosOrgXYJEgix^C_vkdD`D=Ewsy7kYZ`J3Xc85Ig-aPeMreJyKH9M=%hm}FyphQB#`dBjKkyLgRCkN+T#^@RsGqapyD>XQSjs@$vXY;)JN}26j z^0Wh84n+q~4|46re$f{K#R7kGU#v<4-zI;Z4Tfdgs8}?M=VpKX`ZPCn?!Mv_e|}V{ zvF_YdAPC|7n5RhoHu!+lxoCMrXotSh~DHduAlSf6;BNh8^s}j z>B`o(lvOjbBo)okGb@xHxl}pD8|D0bqaP3uj7)Y4Hs^l=zgH!1M#J2*7}1=r=e5;Q zId|aNElW*7m6$sZW-6qfFcm9DUQhkUF(}VoU&MmNTm)ZCNI`WzH4G~UTUE9ScURvQoU((jRYJ04mLVK{BKsONe`)`jZ&63gKo75sO#;V*Nr7Flu2it z1XKir7db}dyM*lR5fKrPOz$&}Oeh3~3q2k*%CZTJcf4+gvX}Qnnjm6+^@tb;P#~v! z$heT`xR4w&F!4c0)@vB8^QwxCVu}RBU+|QH;(~nvu+ymHpX^n&L(ri(RYXxG_w#OD zrn``6q8lAQiZer1so}MZI|t4z!tV>VJHHPHh;Swa z_+x7t@A&x&8C~SX(AEIpg3$P2&-2hiU^QTKLE+u@0B8+Ux|kqa3Z@Epu%L=OsHmx2 zgA5ZjesN_u1z(1X!QFVPhKq7ad>5`nhL!N$1fnCf{MH30w>Fm|CUARBrM0>a?w2ZZ z&=25y4&8v3gT3vn$lj>|I!C=GFDWkQ2yjz(2H(7v8&(k>CBHM;z6I!HaB#43>xds; zt3@P@w|hzy4Rkthfp?N!1>cH#h(0tOlzBqlsO zGAtleube(BD~rUUXYuiY{#nmds4z1`c?vv4@lDu&q>y~g^TEKi?b0!LUupIv_RAOF zOcPm!KVj%8c{e%amB_cuNAELg`cjC)DBRpG8w}GS#{@o}U3h}GF9yMplKm(Oamc9r zEsvq=g6Qdw-rmm{8ZO1BFg~W5WOU|tU*&T)Zwu7vy`^iEKG+JdRIa3%NQTu0fWY^g@P3F;mblBaFnu?K9+Y|A(V(eCKZf+_` z;-s^~#Lh3svi3gp*l~x}P9waoCmrWHxUnbq*sXD}vg+@kyxxYTP)T|kaSv~3EI%=T z+_1+eo(hJ(=}Dar^1n*2yN}&-Akepcspu-M9U{Lgf5R*4@JT|la85U5O3uT#7o*xM zJ^cNSpYu6yYmW*D@g#LvM!*=RVF_z!!J56&`!*%em61%`&@g3<%VG|YJ-1@v)?|%Q zl~L%qQPwnk9t9WxVDoPlG(rFX;!ugVqaQwnY}GNS=T#f>)cC|lFt-O^fKUhh3dO6N zYoUqP19VL>9=wiro48v#gq~m4{=YLF#g~}gXaaHye~LTB1SRhd5F(uiq~4T?X+F=U z8`vl~>;NwpZ|6>Xr&}6o%;@9ZF z;+4Z0ivy8v5*L?*3znZC!QNNUi;msv1Anz)LT=3Xd8c|F` zX#>oU@>A2(q2Liic8n|gTHs4lOf4XsAS|WaQG_t(qPG4IM)G*9JV&%^-q-80;4@iJ zQXxjFs2gPRA1(`0*pHc+6v}Hvay&@r4Eew(M8Wc^AWwx;*is9sfiPqEge4d{vho*j_K`=`X+OCkVQqed`yFT&mJnFHGGyEl*q;*4EbG z0}irp+)Qv>9ejq2Paus0;!Fl}k^oLIh%1T5Q9JegetPqVk%dKmGmjp;mX`a@bv6fx zND07nFds|=O43CAK)OI2Q_enW>_r1qa;wf4uc-8ZN=)$mMmm*=1)iW#MQ zXXKL72MP2xHoDDh%MJLb7CFBdjyv-kr*KywN)e=H724(l@=hwGWwvVfaDcx`LoEQh z278u~o9g>V(RAmfL?^lfkSyRAxChZkN$c$}^%fCt&$aPctX~u89Wv%%{r4Id7Z(Em z=_RDKp~DOkxUyO1-&BRjNSzTOI;1w23sy}3O7`OAuF~an8r@N*{y0Z8ddWJDd>kUEh zlA#Ach@Llno&f7Q1XdvkgGj;hO&kVyq;azJof5~C6^k75O%R(P?PKyV0SK+bN0~Hr z$4F$rOtHR7rVlUf&4n(UA4{}_wSwcm^Zf8CL=PXr=hQ&XX5nD_Z*#PJrU^MQjvfrd z7R`$9-o6Wh>DE~2S1aW`bapb8d`~D2zm zR5<21BwYF{xeKJwv&uxw*mln$EivbV%ctz%ena(~*?95?zA{T5RmCeyODq(#Qc+D| z3GRFVMG4^)abVODRQR+U+_$m&Ka70|IF)M~wMwNyR8mojkTRE{G9^P9BArZ|NK(c~ zky)h(NfAy1O36GAWiCQe$vhPy2}$Oee?42L^PO+_|NmUBu8!FI-S7K6_jBLtUTfWl zINoGcawM`UIldZUJ2znJzblHz#}NfaVy~j6=J8KU7Y5~=JvBk93%DP6yxeLRcu0R& zKy>m|_W%Z-?Bk~%%MNl>-+kKs^Wx#21$!PZY%)uBLH$xmmlV$`8?1ILv>6d$2fPH z3*NWd-kx|<@}L8^fPACV&xl6>rVsa5W^h(?vh#MWaP{AI`#P7?PDkrEd4^vCUq{~O zRSa8Ed(iFIac#CM z3Qsc7Y6$48Saxe$xoz2{Lo_n`Z_RKhvoA};|2Jkg1ohjl=I%3lwcRO(?y02ApyiA8 z&s@-*sC+7E;_4Q*kb>-+8!~Snks+g z@M_AFxkF6H)}+7YKgsXCNojoNI@25aPYlo~{&>;9{w$v%{>HqKYg)?k$PMfT#sh86HM+N77q;(oU&ci0u2;${M4dGwuIB6z|H84{F2(-_zbS59?n0dh z6o*XFeM;27_07|sa*E>s$CE*a(^F}8KCW&&v7Px;z-Mmf*w}lIj=WBZeLK3bjrXo9 zB_b!gY^%mwE~N;ov^#Ad%D#Lx63nd7nM7GO%+~xh*OzDF`xjkJ%_g<)v|z~VMr=*% z)82U}7axQo$WhPx&g=Puko~LMFLeVN-qeyjbkbc7T%4SX44?~+7Yn+*jMRh~5K`Hm z1;*&0)I7Z#;*Lb*pg&ur*tbZB7BIn(x$(~y_f6p3Szv15K4VAOZu>dy(WA>#AK};0 zX>jqPI9PAbr8D}h+P{iF$U8W#>%Mm8Tb-b!%=p>P1_p-ap&`?m$@&6CSVD*#e%!Z` ziNQ{hW3{h(AM94ZP(z!&4U+Qq$z}-i6hPhW6GtlsxwDNU8=yGEftv`Yd{Yku3qjikNvL^6 ze@S=*4-&q#^u2p)lyiR|eFlHM1HkSzG=?EAIWCh3>p<9-G>3S6L$LvG0Iw~oQ6X`{#IlEd`l=l#unC1%b}-}mWKFKXx}~`pw3Bq z46oER@f<|YsBTR~Dj!%In`_qfo3~j=RiCV$x0yOH-v_(&qDcX{W7+HSg#e5ohS&LR z)wh2@b(wbu`_^O%NjP6n8c(7HMNj2vsl4`mm@#XbusF=w$q8O1!lI%XvEvl~^oI12 zRYptFt}-5mVgvsrXM(GX665-@of%c}@y>MD^5)y5ylGnhp_XaW4K~RgZ}$Z^G|ne! zMA7%KUOyu*qEF==s(5{&{}KR#NDN_#qIECGZUwQU)B5cmXbIFDvct$9n-+?#oR*fj z6~Yr(bL~2j@RqXpKdtuuqO))2{m%QY{;}GBUN`rvra`e7KS>8V2#bmICpJf zJ?PjqH`Zi$FUR(cVic>#&BgaUY%ivzuR8c4VRK^6Xi#|2nx-ENBWr~C4?!uG8nevYWh>SEr6m zm5w^@l90$5-6s*|XfGpJMmZC9rgg|IY~sccBeZZ{x3uU0U%(Vc-D8FN!Oo ztM==~oKL9kY(vgPK`gk1moL@YU-e@7 zzBu}fYiM%EAG~I@UcuMHlziK-rL(B3$XC>UwKg-8m1H|8cE1=fi@cWS1QoS%bHcH(s-HNebvLX!FD+&@B_KTk%2YPrJgK zNq-)SlTMc(R;4frKB;w}a5&{3O90^q&VO03B5>k)tV?N1SM+kKJM0-7Lhb>}eT&4b zC8!oaOf}~{AWJ{GuqG{EtzjT0D7{AxSNZp+rR-NVV|LvvdXh`9T zR(7q})yve+9lDjS4gE(Hd0NeQvuK}|76Y&kC{`YfE6wAR*4n!i%Tq=k;m)emHbJ>b zWTwp%$WHOLnp<%7i5Xf#8(v*ov0j<`0j00}CiNXXU;epLQ&9F#Igk)vrkWAPSzpuPjOd zAHb5ju+J)EU17-)W3t|OxvOFs@QLb=mUj$%_7iWp6dRj4Xrlf5Lpn;OkM_6v_d|HE zqpuG($_w%Q0eV7Wv$xMY`^F*0%x@LFhw#Q&gDXPeph>m08QqIkV7zLBVuAS7wTyIj zn)q&NTuQwra#z(8{(5S`&3%d}G5VI9J|4QoY*y=WCM_Mkuho8v=c*5jx81Wy++h}7 zp33L4(c9xjpaaH?B&C7KnR3WjR)k9#$a zd>uY5`*m?J53;kDZ`k;c^@O*B6%M*@mjGMoO{4~rjYr)XmQS^|G7=3e@RH%@`ia>* z#tBs{n^~3^?>d%8n=(u5A-idh%_Vy=F1iDBcnuU#bK-{u`1k+E#yD-^N-R+jV9lOC zFwVPE`J;=S8ZUYy*ZG$Yd^}$v>$}-SH|AgVbRkQFt!aAB4q3(s9DnCNzgTcje{wrn zH7vc<5K?!$yi*9$!nuLfw6b(`|FN%g4Zy=(!5}j&giB*yzuu~&T>19{y_^1hwV>as zk@)*$d+0EXB(J5Fy}nemVZ{;SJkR9V3wt(!&^ulIt$|W~$Tz*`W!gFlTKWws#!HFG z4_s24OV$^!FcbCBiadOYt`MiMNycJ5>=>2hvS|uy85(SYCg_7E|gq;quf||t1wIVNTXg94A=C-~y zzuA-%pra&BUc?E9o|q`h4r+*`MgbGoT#X$Er9JC_~cLq`=<*29uq*X^*+yv-km zjrd~YEW18jqfBYX{%RB;5^)lN^9O^H_G@Z3k4HGLCpguvsoZU*yM=mp>KS8|uP_E; zMH2%^&@Ds;?rc@P^7rfQlVzm$=PSp*puB`{g}DSmF73-lCFG5KywhLRuc=JioS`qU zo_HLM_cgf>L5m~MEh zfIv?x?_|!!Kae3mY@NWmimRR|AG^p9dWuTNfaYFHLw zf23lc27OJM+iLT8>c@$efd+)Q(oncOw+i69Yise?eDPLm8N1i5HS2wg$u3|I)dT>~j zM>N;S&zyfJTK~aj!xf!HH9Fg4FSGQnCnxIGDnzg~hByj1Eb?H{IzIZWz)Hf!>TLvuX0bEZ|?t#{D zH8xgDkAv=H5Wed&I~0BpyhJdN!CPNS<09Y#EhA9sAZ80Sc#h(Wk2$Srd5Us$%Gre+ zc_%rj%bG8{uDzWD`}S;hH#a#r@2Vc~M^DmZW1m*YlUf~${h*|<@MSMHCpvQHtE$!n z2M60UTRm%g!<&R0i)Oi>UFO8yPd&B?6cD2U_Xlt`zM)>R=@m2TmMFnCCqV~An#mBK zpkUJDZC7+;8dl}+Z+mpC`CHu8Q0_m!+V1^mSAU$yJyfb7`(|_c#tvX_z!)J3(dhtu z=Aa^?LDMCKukGHu)92tHI{S=xO%azKyC<JI%=Vmi3RLATZ;4{__X?3!;bA%e z!=pW$6!9kyQz85##ywUXakzCZOFviK?ZO47D7Dab`jeWPw-0f`ObuxXfUH+ujmiC~ zOE1BI4%i-AHlSa3Twcny9}R8Ag9p#SPzW62J0nYJ@Y@GaoZs9mp%|yRY?Wx8#oKNE zk_*um&Y+KY`5|#6w4!Swsxl?x>1{2uCfL{ANJ&Wv@KjMz@wF;9tH!`X(@a|h{(BRncFw=})04EU3Z_YrO>{alO8#Fs!EnZgfb(m?Ki`}Xaf>EpX%7v&VQX^_O=gq{Ba zGtpq?-jUU1=kv@QCD}H?iw6sHzu5h2&3&2I1XuS4q{mmk*(Sb>@)sB2bQ(OZ!BmQk z9c--#mGA;~LUXN6Amq6H#+_{=PS8*%!xF27_3it2$=TB=_5ryYBwf^`#3}g#zJ?qv z8R)XK2>1PW?GUq{Q_3oz(Q^;0t<%Qp11mu_2M0C?TA4lPn|9pvURa|ezJU2u(~0UW zdKN5Zx3#1k5)UST5`|~Rf@m@=V=ghiCPhH0TrxplzzZsw1vKH;qx=18Z{9yGr_iv$ z@}ZFM?LMxD3eCQW3cck$5R7ec_`G1As~mN@J~AnZ0n!uM$~~?S6pQd3GF)$wz&a!B zU%IHE)$r(;V*J+!_TI)3G@{5Ax0=5uWe77JQppoWMhhTlg+$F%b#GDc2>OC}vIFn( zhU4zXd)oS4kSOBTXE`haDFtzuNQOa+iZonhcE()X4I74Uy}i7Ym!866Vp{ei8xE`_ z(M_wMWgEY629kbaRq^ysEiF&*P+I8;tsFTFqB z2vd4cvMrm^m!V5uLNqH-lhV9EYu(o~>R4}i*HF;rp428Idi&^dqD~=t4`_F`R7k-# zl-Pw3=bI#Tu_bw+T|;gAbHWAn)|J@U@h^eu*zXWm1I~Hhl|=Ib9Pv!+)>X)nLBT?e zh+I?(p9S<4S?q8yGhrd@0f!$X$1t^W-;ZwswZblYw&d$jpSwA82n)6=0hLZ;XMzy@%6^1{I!n-eIpR#fvoug-cT2)zT)NC^OJ^g() zb6-=J<+3*vQ{7tT6GivZi|)!_t^1XKY<60CNJWzW;m<7zt^MmucAMROTr5-+Lf2_c zn}Ai0t64?hzWet(0{33_&Fg?r4E=?*oJv=k`#fO;85jauU|;$3dkvW$UC2CJk~0JA zDCIhRbLlE4~s&=IZ?&VS{Y%B887QI`&$|T*F6ielk)T97Mxl~3#uxt9x z;#Zw-fIl*yc_*LE|bp*xt(5@80l}dTJrCV zPUn`H$6;zhr&&OunA?RRMiN)0m}ASa({GtL)>7u{s93X!#>lt5yOjh&8DVr66dTB>9GiDwRJA*%U- z%7a@Hz8U2u4WL;&Fw^h81=8hsv;5dREej>%qN5GCXU~@(aXX`yIlAXa?(V3~i7U*! zAN^l%-`hP59`uGE68BmSOVvHjtIBHpvR^mY*R#>I0KNNL?@qHT9aU1#(wGe~a9V~; zLoF&Tc2{DlDCu56xgL{0>?okX%jUmG=hOQKfOI{|J7b;Byw4a-sYrYcq1 zfMv7!uWHC-OMLB!;iPL0TED;dWv**?BjU`NQt1k>+Y6?TP@8)81Np!vs{jn4iAd2#i^HH z+6eM#eaFrq;sa383<^9tAs{EL53=s9O8^;PPPYP1kgwclyWE@Rul)v~HRe1n1QM$- z?5!AAV~uz3AJ|8$RGIVrBX+V}ZE0x zvu}`#IJ0jX$U3}n?>xI35FC}cDRlwBtDqTtbn1*6a)gj_1&Q;3PDL0=qH^0n_%=1B zeTWQON@Ms)F8u3&0~Uq~_sX8UZzFzH>7__utq=9Mnz6Rm)_8;_o{P-RI%bF!pXb=bVvd9dmv=fOIdBQqh9NJ^=Z%y;oTC?cI~X>A zQPoeA&g9okBU9VFdGphWY{;0jA6(}>c_Wb7?5{u=Rc5|u(SVMmP z(+|2ZEd?Dc1v4DeWFW!EvtvF6u~N^P`$~{cGkVJ_S7C$kI^}l;>;0VUP12UEz!Jn^ z{D?OhGJVB>cXr$Q~G zl~qT}hk$FKFeI+s;JCm-K>?l=7&Ji?g&o({8+@K1Q)`xAL)!(nmiz@ox#icMpG6%5 zuo3kZ8fOcb#NHWMWTg#t4msw+YJ88|G|B3Lx*_!ejR$$^b7{S1z21o*IsGMo?Qo5# zbiqH_<1}nqyl=1LASdid;*#^>`7lO8 zv>IJ#W8e!ZlH|`9i-=|T1nqlF$cXTM1a<#dYKY!pdFKbN^_{i@L&@%G6|nZ+y2cxY zIl3?p_MD3_eVbkRN(*_`5uRh`+IvA#2S{nSEq9ai=yzfL*5inQFTK}phgndG&qP4k z7oRRp(s!V=y{_J-`p$-$BO&6x?kfH>R~Bbj&yOF9nAtGxRv;Ait_JQ_NaFn^2d`VX z@CyjELo!@k;WoN^PpH}-E~4V%#>nJ~Hy`M2V+qtUHiLD#k(rqi4C2VqGA6y_9G;5?C1T*v9C@JN1o-t z)K?+;(M&ylGUKoPFRxBLe}{1X(RFS|;&D=9+gjQbCn~srqr4mCxt`VKtyixGpA}i) zCHFv7m7JUu`GJ4_UJU`!8n^uwVv{)kKYoe_u#|})KYs)^o}1dw4MaH^Ei>wv*ndI{QxFQY$5t{;&LB*WS4 zpGjbNde0x!qtyRblJx)iQ}g%qpQ#V-Xbkm4IS8aPeMi8uhPIdtz&AE}XFxL|{1+VY z#|#mT5hIWci1Hfa;Q}S;i70*eG35vk?UfTp`nk<&sTg;8lf$DW&I#*CXb%G$S1x*wxgitY5@&0`~NTpz>FQ&oXL9j3CzQAlIfGmy0Z_r>0 zwE7N-)`?YMdQLDY$j%>x@*E2J*zvxSaj`xiOJdl`0v?g0U^9~P0#hXXyPQE}T0nFA z(398xt^HojeP27>@f|S7h!7|&ER16Y1(f8}_q5zixE+`yv;>MH?W3n@;9&3Gj{pHz z9Gto|G$2J`0>Dxzw?%VqBL8_eQ0M~8OYaq%S)(?2aMb1!H@`*4HJ<&(B==*RBB3>% zV#>8<84`3izECwHs%pqOza5nk9LN_(ReQtVVI5RQ?t-uz!!Qb)eW8+uU@Vg4=+v&V zA*BG?kn+V!0iW%2+U#@K%WX9t-*at2>4hWxvlB!NxVF#qrosLrBIX%D>|mzu`{s2O zk^+Dq=TLhd2sQyI)fTLGRu;~B(&1j5N`xUsCK=)TfZW+pj6NnrH`}HZEQPp(3{==#U?o^i{>LJciEt64ofP}0unuwfe zY+xOyRY?27StM-Ehd1#B86O8XVP><#s;ZxnMsS6}VjScPmytNbVwmDBK|=K&%4&kl zpdFF??IUVzM5;py6@b);Ig*dl&&DkD`F#e(se#E%vvaPzU|NMZ>89x17;{T{DgXg7 zH~^Y=>OOwFak16)*^`e1y+^SI%;ijvo&I5p&<5Hg4vcAX-*H}3_bBNWo~eomvy<2l z==8-xe^-{xdKQ$73A~kq^-q`>B4K&y9J&Dc?91Mf2(Sa?GFZQNgMb|@@A5>jP@u_Ek8(NZN`Vm zw`Zh1;J*1#NcNZp6RB^$XfrK_!tdJ#y#)EVq}ZJ}6oD+n4F&>vn`jF-^5MR+gAxi12##kStur$-fOzEKy_z+@sF`7G~(dO z4o4P-haXh(+~?d{#?K%yKvaoI0ENg0TE<}T5w<;~{AH&t`x@^P7cSfh2M23VDU1To z9~g4iMVyDdgPj9Nj*elVEf%%HaCa_@uN**f?j}6wu8QzdBnM<#A-s74rhy0&%iyFf z3K}-;ue{fJH6Qbc;IS|`6PmZfh(Y>l1K7a#N|^$va9BV;Cyfm5qmvfSocOn#_mK14@nZ9y+(h* z#{Be#N7G1HsFgOLj;dI7Y5^eC4$MFp8{9z4)R6LxiptihW5iEz-zSkGZ7$bJK%TKG z)${Pd?=w`)V7>)U-8R4no>GfaM}iMj{SyR{F{_QDCOm&FXZionpF+Rx|D6u}KM#6z zx{wHxulol8I5BpjN!JJ@oo60F2%}7{!F|yTr{>-yfXnrw*yI7fquk)Xoxcl z-Pg0C^>_bLQQLm$@UC#hUtq?6;7KST65tcf_{tn5KxWewD{|&1%P2R^Igk_oF95{8 z&fLnX7%TL%ZI)$+1?;i_Ib!jy%NTA=iWH1XLaR7aE9>~9Wmk9@{B*a|71qIjM|&m| zr#psi4tZuDCoDA*`NYU4y*!^!=;!OYtTh77kZ{d2|ZpeZc@yWu(#|HQ<^fPSFqvpUDci@hyl}kJn;AKb$z6jcV$Roff-zIZWAY?aR1#D_7aTH-j zrX^xA<{WyOY-VFqL~y_eNwQB(Mcz19>PmmzzG0Y9)PPk=~#a$m+H!%2O z5yNM=KmB!w%GD`;3I7Ey;OC!Aht`Rl-^9Sq+HHsxLAhn_@g*{H zblgb1|J)|Z4TJ9#0F`hzcTdduk)3KcfwtU3)Q$k;>jrFr>HbW>8Q@K^q^1P;R)>kjNkC5pK?78_)MC8$NMMIiPxLw-v` zqoDEggB(NKEAO>j6F@)4zbMi`_=++~q3aK711?3!viQ6>>K`++7@pS67eA8DtiuoJ z$O=0K;F^E(!iAa-#(?nmJ*#xonxBYZu-*O%)&!Db&%i!3G0_7-9b9=1>Dq`BI&Osp z>*;9giUnnBt{~xy{b3T3Vs`fIQ-e_%*|?XCS7|U})xK=E)ngF=W}8;AeqBMu$rSv~ zQ*n7=;X;}d)lUzb6hw`@cd8hf05?Q<_wGdxf8JU`1H~pd zjsXAL>|U_Ud^a+KH6BT_PU(W98+SH22N!so5k@E>F^{|KKH!| zK)^8^;6QMv&m;;NoPA!U9Wmc5fL!`SY^ci{4Wzd=L+KkAIhU^?9aUY%+TK~02wwtB zTIEA4Q!RAgHB5Wz;uOL_6XXtw`IF{2kEP$1{Gfh--@EMI3G;=ky!Hf&A0n0Iuo>1B zsq5h{Dg*=iheF-M@Zuit(JpvX&^0uH(DoC_Di{$o*Sy1#B)&rHWhtx;kW;}71;;(` zW6UH*MT9@mnnSah$ER=zfIP8x)nLLugsr;NE94K7S0S{cO-)tg(L>>Lk`<+IFf9ng5yy>ioFP{wAz`6o2*1^_Js~-8a6PH~i5gHU8NHyMXXxc7{m=DH~z@8woRlQ5i??A;lEhAdk*4aFw#a?WmYi za&vF|n$m|J<|SZ4n9D}!R~SA07|ATqWHgV6qZu+ad=X?)HU5iH0%%hC)I__k6o<}V z?1aXHD!$V1x-Yat1@QtH4;gs8IyM#s3&BmslQ0lDqQCg0Fd1Ayz#xGT4^AaQEUFm8 z*h@%>&~h1&oF89PU@RudOpbE)L|h&b&{4raP5~p;B$B(dq3sf}pnMT;uJt*6jZM`xsMX)oay=-b;}iX(g3+ zf(zz5nA|1`1W=*K@_NZN{C4bREsrcJ-=>KD{TF&1ds>kjQsd6#n1gEqt3XXn6>bem zcQ3i}@$qpVYF{Raa;LRx2sV@3HmqchTEVFu%3?7apEs~38K$PQ z^{5>C2XIVxg>hj>xn>PbeW7Q)sSJkPUhM99*jG>vay!h z;PdyOW?dF#{cv&topS%yBX>$X>ywQ{_jju$;fO-tcFB?K>RuF9ZQxpJlsJ8;D$S(( zmu4B?>-3jTW&Xlw{{cnSA61daJ&hSnLL4x}2rOfwPun4$tC&L@Y4312uO_7Nzrn2k z>}gS3cV=EiFx6m+ObIe?IC=-6v|zF}iHcq4nTI^IM6Us3-6(n~@1|4!;sWSdX(;BH zb{p%_{_g(#YqP#K>EH0Mz9$*Mp#~#)gO*X+eMj%$Pl-F{r2dWyepLFj&NehY%MuBt z!_3l4TkI`2l_AgEi5-YBvkXa(LJgK(`9My#|8=WJB8u&uM3t)=qHB<+og>EY_{5SsTzMYKhg6 zt0?idWR*$$SL+9%|H7W4QtqZq7hLl**md`Y5H;cU+=#xYjM;I0pIz8In^vulG;{7) zZ~~kN@O?-(IXrwR4G5A$k=wQ>N-COPOjt52mhin@x2sx6}NvrAYD}7o8Tr5Wjx%PII@ND3UGssnJ{$ zo&vh`3LP|bwu<}bfnc+d#kxyLhYfcBgW_v&ut2DTPlF6d((wHGw7y)!o#2?E@kFSc z#kWwQny1e#>p>oW|Dij*0lnq2EC)#gUXUN@ltm@-fTz!n$rV&v05+@?V%>%W6%als zL@=4vt~GtO0-qE`EwKlcc^bQu;8DGaIqwggq19Lk{w}Ljtjr>~mCKzoB z<>|e9JC!ZW%wB>41xP{r%Q~L#o>Q1EKJaWEIAUZ$PU4=E2?nrszf^eYGdSMpNpGe> z2H;OzEpe-XRnd`)p!$-peChb*_QB_MkQMpB(+vO_;aiZ2KIrlTsRLpfe(LR@pn$+h zOUoPT2Eis9@kYR9lh5uv&XDs;SmPmS(a`<9N)N@cN!CBELtch%MqyiWf{V9K$dim& ziY31T5-13nK|(Qda$-TbP3+3ad5z`*I)LlLr#^Na@kR;(x5JM%MfAj9sIc&W5?frk zJE5i3$%dD(6gedjG!p0^ncG32mQ8zYuZn-v4FfT26FBF1%(zd5s2lu|7uzPFZ;*zB z6O?g+F%TeZ==83QfW6M~>jo1KSxmH9K^)ZqUI6>L2H&jDn47a>M>D4UE=N8#Lfo{# z8G*Nij(AX_*YWm0dG=#(pHOf6{x_u<{G^yzpJwZVQ2!OD=Pv8@mA@Ifr8Q%g_3147 zETllup|`yLmR|hhk<|R$+RlnjTNi`tm17ON?lu{N0VoSR4od_H9@LobtS<-gThi-a zwAp}SS754h1f+5hQaF_giOdVxbr>0y0XES(Gcf8uUZ_3{)~-#KJ~}IegADV5oqF>s zfy&m_3V%?i$nZo(&NXdo{YN@8B7VeGax5n-+2rifOX(~ss8>dwU?SnTj-ix2-{Vk# z46i<%)#=l_wgH1S^v+*8oz;!3!bf5Gn|42qP$k zgK*U;-kM|k#$I|XeH3e6CbyafWI;BB5}0F&@)cC>?OWq4PjLD_ZRgC^UTyraQ@&SS zgoWSylF%COSFzf4Tj?rMOCXhL_6bz)Qw3cwwbAl$9>c0t?L^aqvfQEH3A{!4M4Q{+ zRK7EHe=X)>*zEvM*@^xxTwaqYVfDI;z91~64ir93mKrwKc(5a?ViwfL=T&wpd1{>YElk>4)q)XSz z)iKXNy8lGRh-SA_1J~$vu)mVnIYtE-M;1>likgv&q8@?S<5O?nu5<%p{AiP<=n{$G z%CmM#6u(H5^%Vh}WIv(`hYs3B-x1yMhK3Dpn2u}Y;*uMCK1W{wsrJuINWWi#wWn#n z;caA%-)zGQ!Q4xji}D#u@=AGUyBSWu9Q(dPEP4H7B|-1ao)Mhyk0(^Rx*vLk4rldalr)%- z|HH0&aI^e^&$kbjk>X!U{j^jjHbX7C5HfiioTnf@feQOFL=6)kr^SU@T-(oaJ zt+W+$>bcBt9A~DS-Clu$9W~nm8k{tkO_;$=u{`qJb=OmGk98jltRC)bk3vkYe%mUPPH9^a2uobjDFP`(gPWJg0UT! z;M?OC50?*Mp-`%4&M)~M!n*#&6Pc&pN2CDdfHGTAlI>a3a@htp922pZo$3U^Uq<B)1s;K1adJioKoJ>NFmuS1B_zLDcm?tIw#W6D7pgK?EeFP(U zIHS1qoxHMjr(DsA>*f!Qg#OMksjT~N6j=E)kw^sM*8gU5*T~=`LPJ|5=FZmGtG@~7 z6=3$uuS5290$A4kwX)Fu<63=VF}PG61Ge$i_$Fj?g&gIH$pzKF?uN+9r}LEc14V{( z?Nzuwc~J`du*M=5lELJj_y<~}jlW3?Wjtxez6|iBqF(BUt;MpiHV#G;9Zxo`HJa3iTssEP}M`; zWwS?>o+Pq`qraI;R0+vWJicUj(IYbeC#RvL-iZoA_WVtr`n3$Mx&kgoWD#s}o3g@G zR`OPR02HE|5}zqc2f#7HzBc?J!m*KNx6PhgzvrrH6u^9CM z+)js*V?Sdpu%h_P6Dxl0??N}EdQstSEJWhQiybGwZqFtW&Lw#9!;pp0Iip=+1Gk2D zj5B3#W`Ot0%}>Rve=VQ* z?U;UsETj}t0f;I^-#eGC91?Un<7arm&&90Zyh}0nkQ4XrYZGW{B7%_GWxP)Z}J#NL7=)Gh^YJf#Fuks6~ zU^*KralH|NNRHr?U{cEcYMN1548Ion$(fCtH(x97JV3Nj)Yq4rfBku0!Y{dA@4V9# z1c`rZ^?pmcsA?Y_L%`<1#Qe0eme($hsXP;rNi{yU&fmKw|~yH}8@asayzlCeqA72k2vIL}G?+`d z0f$;)ZXy^JxjQ-et5VB}T&4#sOzLeS+jlZn-^$u)FETu2PN=d4Ygx#PLuq!zBX9rE z&!0b&Yq@(cgz0jT7sF7?1^c(((vCI}v&(5&Gqp}<3K&K!44y{Kr-F$ zouy4c%NyBnyM^Ht%WS*gY{b*9ZcwO;+6W6<`>hO!)`G6xDu`2Pitm=JfN50z>_}1v zhUOJxXXy=)E;nHn#FRrmhOdc;~x;f{{HgRWV&GrdDO=4}lS2Vl$pKSLdK`P~ zdYEXKW)fvuNrC}jMI%lhJ@A#w&Q}92aTM+EDWArHa?5K=#Pi=-&2ILg{rd4z1I#F9MPtP~O!hl%Tcy9@`2krH%<%Z8i>{>TaK5 z;J1+4lHjP0({~lJTj2t%17QLn|6J}R#h%)V*-M5UOJ&9vxDEIkey*7PUhxzD7^@*L z+7jl_z6{lruZ&VpLC7J_pVo7u)(WM=;gGd{jOK<^x3*TZG6z=fKY!YkWsQU@n$>=N zmR5&}9spvkIn4>Z22G2BbnF>Y0HQx#gr|7?i73ifQpermEc^Kp&qfHK0GKA_llQ{I z528smcTtj!&`k3O{H#x)FFy`$|8;a@Z27ysetn2;M+%5JVCn=vI0J4A!N4gO46Nb_ zW1a?lK|F(r0o1-2(gEIwnp(Rj>sexT?Q^mc2~qDzVVeyKG5D`xM9om+GBaMMAc*-Ol zZXYAwA}u=gUB=^I2+SvAP2^1_n`_50r-6Mgj6|&0m`KD=7JeLec;OIpLiCj z0wfoLJ>>;UC#QQ1cFUG{c*?0_f-b#oFkGbi=_^jB5tEVmev}9L9nj)Qf^yDfw?kMtwy}D!IXNxj|C8$AU(iwQPZ8m>yfx-vvG}3&!c;dv1pC1tv2wFns;eftR_{+SL zY*Uy92)KY|d0r511s4Te^m$r=1d+X>xkU3EWK|U>@pWXX-E(keh$%n1BrWIbtE!G3 zoyAT*wiEpj31xj>#=L74Pe06p)H$k z9;g^WtwuyvZwj72e?2FKxdvFxgF_$P=VqRR2kRh}YzuSumZ81@hw&qUuw4HkyCtrv z_c0d+z~|+K8n&Vvyy)2{d)Bc>^$V9Xq)jdjqmJgG*ghz}ew%qp>i)an+;ckK_$Edm zFqzfHdMWuz^E1)`NJGEq!9Kg#C#8BCOmJeOi5z=i02=v_xX}0P)O0)nwqCSMG?>`V zD0XGRTF|ix^zJ!<`^_Ilqn@q9$wG!W%}yrGu@D?aAm{ropo$))v7^$o%dOoI>S&{;^t4NuGct(Fx>;UcK2aT|uFV&c|3k-7YsmP^=KXGn%si{!glZc`kr(wdGfPU4 zem|V;Rv;s&bhM>^Z2iokfIAnn^tnop3usqn`SqA2$kZAn)y~F05iCzN(oYx-<6U3f zG%23Fy&*$vpTCCXhEFQrXYKGC*_}V+KzDQ~fX?O%m(otwGsAK+!+(U!$S-JODm!^f z*R#6&)qU&ytdlL6kv(S+bQ*yQRuh0U5e(`@(7`Ha->`Ba4NeFQdhL%n%pI7!9s@Pe zUIzOIFvTW-wS;grMFGQc*WE9UjW(gsP2Kro5-13wPf2O1%^8(OR7+cyDdeNx>WG4P(!@M>S*gt<4Q=*1_I ztE2sgrfPyWhFrPOFapxD;F7QvEbVA>>WCFgYb}fVal?*25YK{96t@7cvwa3Kcr}xjo`>t)ak@td_{rw=rU=tD(VZBt0vlp}^ zu+DL!W?jroZ|#yE+gs#>yZ|ImBtOR**%g{n6GVcKORxu;p#z7<1^PQ6y?j%LE9k}R z=7GSDx{@HDA-z!d79(am6djjg-;0yn3y7WLQlvz{C3D-p!0=+(7eX*5qc>0bSE@iFt3+`)vW_;?@lS96r&cnp;vz+qq*n^5L zIauJ~sSU9;jKOKup5zH|yTbW%4U}_y9OQRCo>h5hc+xB%5^4B(2lo-7kW?uM+@H>Z z3JCr8z*1gUSAT#1A@A3GipaU;7^JSEA38AYJ|yn$k>t|Jt1!mcQFv{Ig8K@Pw!#|{ zLTh#o^3Ewz34xVD8ziU@@a3qP3PpFm@CxWF+kFkEIlw*yrl!m$OWH2M@6nL@<=FL@Wy3z?m)utubljZEoQog z`^bi+5;8J|7gq8Ne@i>pHQ|zfs=EN^i=`NuSKYA3B#?dg-IYkEAp}^C^i<^K5kv00 zrS>;QKBxG3-so{d1%TVLE@`91>%`OTF_|q5QJhM-=k6ckROT+)>4RP&*q+K&=>{mP zP?DmYrU7V}4~?s2E7lXo?L(E5UBK&ZAG+!Xy z;IUaf`{ap+!G(SAk~H{1%c?c_l}Djwf*{u7P}VX(#Ztl-qK?`IIb;CNNbx<+hSTlq z>4#F(>;8Dd!j1RB@!}G_6gd#Gy!8ohD@UW~1OL<#2;uE<6&tjJR@{xvRoebWXJxC+ zWXrRln;RojJgs-#jeqXAsyr%oCk~HV^})`YK|`9|`%;%Ko#E6R-RNKH%NDWIET!d` zRTGLRUzynff1)q;;SMzy#ig7hxCNFNVw=LAO<%(ihj#wRpE^skev7Js>xicG%Rvl0 z73c}ApNc(ZZFydRziHWXMT$?vojyCUeTn|MqY}=$+wF7E>)FzxVHWD7putE-iw3TS zu)&+i1a29*)@^+@`VY2B<1qmFKqEfFSuNbqxx%bp-9DW4Q@CPpRhkPC`sWQ{q#Ul} zT6OoAz$+QnZa4C+FCet-1gqW4a^{I)o@Zw6_v$|TZAex?A)RLN{^;94N6p20bf3Y$ zB8j~zY)cy5U+ocUnlBd^->TWJeee0!#!x#`T zHb9bjp)F`NA}pPLr|jv|*D7i^Wn@%cZ86_#*HaUF(K};z?Z@-qt4;SXmFL{sY-6HZ z0{1_JektNpz|bgsk13x88gUvX&r;}KI#6KCOR^<77@B$s3+rUPoo1Coak-QfIzNzz z&2mP&a-0I$?pepnrCVNY4|gFGfj)v3Kivfa4Bu29DxaWD)oz&jN#+D``LS-}e|%x4 z3mqbKDKSY(g94l#)l8V<*Nvb?fsl=!AT5Sr*X77P`-=2Vt4-2B;cG}syt2H{Me%^gt8&)>uPIKj2^{hL?zU3^`aML8QRoVOYJMEnF7Bpswd z>5ai=8*8PUPvFt~(Ktj7Qdro6R3o5{0d5eTC|CrCV;zEHNqVW;@hbMD&yZ9wyKhVT z3$aVtpo*ysk5Il}1lt+7FTo>SK8mpVysT^2Vv01~#+Fxy>flm)n{KBhYh-V)G`1X+ z5j)}_uO4+qJ&zNP5v}LQjJhGTF&EJI^Y%%Vw%_ZlZ#j=na;r1n)AX^D+uIJ((7?8s zUvE32H&{>86q;+j&r;?V*cfr4q&=77W4H}tSa4CrIyHTbxfRUppfKIZFc2Q97vB4;H)-78O@-Vg2 zZwIIWmMhl5n%LNr2=y+9=va?Fd>6+b=yvcufGiXgEpjk{cd!m?S#NRa+x9QJ;O_$_ z2)&o$l`jj2SaIU)b{P#&>cpgaX0|uA+qP;Ec zE+>;E0ud)0ndRv*mfZ?yz-8$vP0ay#8Z6vj=EHAkEb^@RxcxU>Fq+pET*NR|40hMl zJon}G?TBZKCoQn_1qFwakv%}4oRA&XH~Xew^?VbfWQAzMoP1dHM$6T6b2F`T@7((= z49nfSRSer%SyEcTRCq}S9kf+IZQ?ta+WJS#vD?y9$LGr2&amF(6I?I0u5ym%+F^|w zRp}Js^W1vp8VZtQcLXsX2q=@X7$4%POWO8ehUd?3dyh(5Rx|erKYb+l_;v|IKial# z=$eb4sWgY%K^K4#l{driVOUoiuGLRw*19=nC6}pKSi~89VxXt*3{^WbiwMD|WXxLX zkk{fe_C5xS1kHGpmR1&@Nu{f-|266BQ3`PX|E$%v*AVdo!yFpfRmOJQJLk$C(a_oh`tp!N7fOwWz} zklqv9GrMJ6LZi?)&D++a{Xhgy9oIVHOo8s2!nY?#)>bp*7sjK)E{Cxr$z^d zn}mdf)x83q%h%P*)^r>QpV}Hxd6~c0wSoThpQ@qz){#8K03)nqOOti@7OB;EbaS;X zGTC)ELOK87q|A}D#!Vwd8I^bFrP+jYIBTiB@jM7LA} z-Eb%?ZqG<>J;T1yYiowK$`_f6C~As*oZ`4wuQ+w_z;*6NTU4d4Ul$Oy)ZKER{a8t{ ztBm3|oH<8eC+rT#EZfkziqC`hp0>rtB~mFX5kr49KJyFG zA?8=PjzeGgqERLODdj9?YioN%Lu2)tIFzt7U%n?6X(X-KI}3Li(nTTcv6V}T6r@7% z(|a!d__#Ry{_W?6%F4aS=6V#&q;I>*{<)k7%c_rs1 zV`W3()jS6ByYIHY1MiGvmpJwI;6Mln2)K3c-g1wZmta1oF}3W^lm<$%&f{%$rt!Ot zkF%sG8i#K5dAO!NJ0!+Aw8vl>C(=VngvM*A3Uzugr$idDPR}H=i(u z^EJ#FFWpsKK>K$2o&iTE>1Q`*!0NScuf!O*z@&wz2omc!oul zn@bAxRDWi_JnNh3qNcVg*C1*7xCYayGiM$rCaNU@{KC_)e{r4JDFt(q8MkZ^EWN;gyISLOxBBjL+#T2N-i=60OOwzHSlmq^ zN9$!iN7I^fZA*7VJkwaw*{M76JsdG3QHO#?LUWF%?T6UTBtu)3$RfY78#_2i9#J@4_`>SdNok(7YC&(_?5w);m$2r1|3O8UnzicDHOQ;>PDlw% z;UqgoE4;@=RhnCN5u_8(-O1g)zzqJe_A(7-Eh$1 z*rXTG&atsEyBC(uCSN~)CW{2dRJ+B_;A^q5h3LqA^JeY#cy1gYYL>%NrES}Kl65+Z zf|#74b_?~5V1C6_ABC}R*QPu_&5@&TYl!Q@$|5K%T;!x=4@L41;FRe*jnjUkb%PBN zU)~Nox-WB9TEI9RL$Y=6D}J*Pn7l08^>tjIZ+ucyL9uH9^J#k+nK1dOhck3Bp%EX7 zHm|jmc^XVNmngRgg`z^C^b|-vUGwXue$P|$R1Uk^u!dvTvH(nBUYT-CdGcV#TPyZN z$ih8+^X3S9Voz_cI}XmR5{Ekc4Myso0X5UeSWsS5Q`6y27@e*h{4R0Ts#X0S?1}O= zZ>XTFa{0|A1uXcOQz-84?)7p)VR+}~pfPc46$Z=&@^<8uJ6&z%IIj>owj-ofrY0v> z$RS>Bn4aW%?b(0~a%(;eV}7FPX|hKE^^$=vADd%sGu>f5#V= zFOrfZU(rqth}-_EcT(!NnFLuG55^tz!%MAu`&(+!_(EPBzL-m~pNbGRo3U#1tbLk+ zl#qWUjI)615jlBDdzJWVQI@AEDf>_DxI;$yqG3uZ-+V*O0#{N>ilx8*TREwhcq}(O zo$h^Oe7U;trnWY@n9a-$8+@N+WZbxN(?&hI*+TAm=Io{|Tbj%$+*kM&jv}t%(82_! z+HjHEg>&Q_mvuUyEm0&~_bFaIIq#a&+Vet5G(2zezD;%w zA#ysNxTj&*7#hW_?qQmGw%g@!Cttv_ADgCoh&bL{Gj9w4NWPFg@APDfuRSVU*Ps_TpBO z?AV3rjlU!x>ZhO-!Wam&oe8X$7_v6*V8;IuRzmvh%Xeft-^o&d-_NRHsANwrAGc2! zw@(ZoDO!W}8?-g;H8SE(Gf({$BQIz3W;F)w=-S&$z%`;-+MMK@61?`JD>z~i*DF?C zhV^VwUB|-Em8z(yh`M_9qFepL@`X;x>#HYfk6}TQ*yu?gLU$D1)bQWYm~Op1zB;5K z^>8KUu9Bi>4zl|ZPu3P#|06Z28S(A6&>Ig}j-p`?420B`QFkNP-X( z3yc+e#NK-4?jJvNcc#0hS>^B?eMSiRAbg_KfjDyty<2NX_}t9Rg`gu(A_O2FR{0)~ zfxv``5^z=6YhF!3Vyv#cojbMR&q?_Rk)Ssb($dn1&LIlVS|(Z**v=5yhL4JliD3^d zlE{ee7$|VMwqPA|;cZt-v5dCnqO6 zbdWqwOItz1NMSpi+27C=7T)GkQ;ev0@7=$lP;m9*0T$8%jJ2H@Y7d*6yMUp>D98c~ z+R$ym>m7g&2Eox5`n{PoC+`K?t`5s`@YiJcxD|g=*0B52P1&jVQBkxdZall?{rQ3r z6rr1fhOKs#NX{f~rVG5ZV#rEa?$N1y+;W_UCj7)*KX*u4IGZYWJ!**O-9XU7>vu>? z+;LyW=5$(p_Ik2%Fsp*7b06JuJw#Jx{8gpjo>x{@cE!leoXsKBi&mvY>)dnasZY(T zos^cIj^Vd9))pCk%~ZTRU?P}qWtyz>JZ<)D_-Mv6W&nzaJ|9DA{1?`((y4pfJ6B21 z8))D5u58Jr;k%BoAr;wcR)7(oo9Sb1S2?qF^%F(Ia9t_PB(i_jG6KMR3FEI5+vB6r zKHzdoFsm`mA{c4Hx9;*7xOR!zC#k7Lq-=ifIN}Pd0a#`NAfU zNZ2eNt`tt1B!w~j(*-qMqe~c16kdM3r9#rY$LZ-jQ|I&X@0OMpR_k5bH?HfWJk68n zdBHV0%@c80?cQ}9XM0970!N7UDNJ%Q1BX2i7Ze#(1=pF1%1Tz2kGm#s%L(tS$@|9i zG^&3eVW4p+DV-x&B6%n}Li5wSK(*QcOLy+{yBN3rk{qfWtN5Yf=IJCxk}S0#VArzc z%hAH?6M9{+_mJUOa*p_DeSuY_R(h6NI*fOPg3)*F9R+o1^{q01LQxW>%?@YSNR3Zk z&RXsM{8wm}LOAtS=_PBLc>l5^^y2ECz?h{Oi{AhD*jUt!8=+NIhQ(!Np>j!vBQt1B ztZ1SmfL(5IT@DQ>L?^U6|J2Eo0G~9NbEle*Z^!aeDECrQ48K5E3Es}N#2Nvv8Rc4! ziqT$l*&6oE=PbRE`uK6}t^h)P$HM6!Jjls{gj0W#Tg>B5yN4dEV@hi3_utb|*RCy1 z_!t@+EBI=Ij0{_!`-utL;RHLL1|PSS|3SnX4y%Y+;TvJlsAA9lMAq#D(1awbH z;b4S{^{>@E6;LvaVKbrc?6e?SrX^BGPq=!OEv9@)!pDstA9ai(&T=|>v=hX(@I0P{ zfuRCs0HU<+-roCv*c%_9?^7zg+-U)$oh*(_z-?+qZ8AiEJ6q=N@s{x|-*`lhD?WzO-ImdPE%78a2qjPKbwrh6N*jo&XmZwRc3r&*V7(gj(6eYSJA00 z_b=lm&^s=1;L@j-OmC8tiym;xa|OET$2Mk>I{D;|>C_0T9DI<~;|qwd~K_w)G2 zM)j)gs*t}HyaouRjwBptac9j?6%Eg9Ij(PL7%N{e?;|ZRd84vtS)WM{^F*;$WFU}o z&>XS&_}jf_&TP+q_Du1_7iEHH(34P-)AiXE+|<+Eyd(%95gDsl^)@ws#74hc$s+wHNdXtY7eQL(Y)-!v)9yMW>Ii(}gg-I>iY z;KD)}CMh|23Br;_XQO(j_og^07ca8K#>U!BkM&Sr9HV?t8(3gA{-w(t`m=D7SLWwi zoBEkNNhEt8yo(SmE&@KY&^^c&KR*&T_|CiCbybBGq{H!U*)BCdH}iz#%Lw|RINJ)hM)q# z)o)&E0Jb(4SSyN#%l`T2)!EU&J5wB5JD146ylE%{7hV;oxHr8O(-+J$Y~)|R#ZQp8 zNhvDwli<(M@%{x~{Al`KAyW-t0$ZN*COR7)clvj4=-Pu`D-`v#+}t+71on)!9N!L? zr}527j$d_(_2}D#y|2PyxYhof(i=82HBs1S<|Zy^jyH0ju}U7((a|}nTk-j`8A5Eg z1gKFoH>oHqf4Hgkci~OV`O5zA1hKUSRp{5Dx4C%9J*t2504&fJDMSS3W@dt!v`vF0 za;XT&x&7vl+St2jt=gtXA9Ij9p=10UY=!a@fWu4$rR^T>qYTD#KhMsF&iQfHXAVE* zWn$d)GaR3{7Qa~27cl2?XFQ>u!gwUUbKo%(8=e(Z=v`c*!gE*MjM5Nfv8%)|OZfcU z-g63NCW}@hPuXD+nIb^N#sl?p8jZC}Mfy$qvHX^nqNDdddS$etWzYPn<%3qex417r zm1GqZcwGB`_j;+>DT{JG|LXcvC17qUz~!&-?TzRR3pwsuLOo<+a*-5-JcW|(oqb#E z&$lz|VO-Xkt+V_@%mg^0)x#?^+Dy^)agyfn9hBzh=dY`^%kBu}jpGTf8yn&HFLF1z z+%f#^VpzXw&15CD?E1JwvFSdT3uWcF%t?D<{^b)afgjKo@q;(EtKENF|^YKS(yzOPG?_uKy=6K!bKN#U1 zfGVw`t%sEJI^mL~bMu!Uf1t;6l^#Y#^jtf}G$GEa=NBh<1|U9Fm~T z{md;dFDJrWiL&&e2~_LBD_jOw4~`R}Ra|Red*TE=!`11UpZr?ZSrVpb|9%M&xc*Wk zEWW4&WjU2!eLSG6Eyzt4+fg4VB$;}!VdF+A4I5@<1Asz+s=GE=a0X3H`5p;4*Uj9a zG5c%V+;AYXDBHO*DZObRqadQOu`v@Y*a@rSh=2-|%CyW@MfXAxDClQ{++5N#A_v@Zr$3 zG&xdv1xuDUUX8aH3p4sibDj&FcfIrHcc3aBLO9y8z`JBI30IA1pc5ewpDswSZ|YQ+ zk`$HucVz;fc1k@d;APdl&riyHi_$seSEY&EI!Kt=%R7d#ygdbu({q5piwpMS*mrka z_-%x$hRV+|AmH%v^Vj3C285DaTv9?h*@&u8dTu8@)B1e=+?WBVVJO@oB&n%65PSW4 zC)x_H_9|-a~`+Vo(&*GEgE?_#e7NowyURS8EVIbmtfbH>zyan zhK0j`!Y;5KBNnu-(2|Os?$BHrb;{g_t$kKO+VbIRB8tCK#&GrNIiyPn`7y=hjFvZI zi4ipPeFw3akl|&UG-vwm$EkTsl1qt3d_#n!P<7z(J%Qnii8JviOKO&ax##p1Qyfm? zu8`Yx!x;g6Yjp_CHJ6wkQOEp+8TaG|5BeiSGz4LmFF!E2A*rq|f?ZkBsj z;}SeLOCgbGB2p!_%G|uW{^2t*F_DZ|li?dgA_QV1PmwveN3AO@T~b*g8HF~Ah;P@Ix; zMdE~!wjj^qjsEeKxuA-HFAp>4KOIca2*)WR{KVi6JrffFLOKYjbh{OzCw6WL;n+81 z1gJdrM-_z!AbXsur`Xu<-&ujo1=h1xs63Kxb&pp)LPTKNcj#5`2mxY%&J}}IqB{4D zQ}Yj5TT4qizO5iHv}h848fpv5FWzg~LpNkGe5l%tz*dFI=h(etBLYRnW&Q(Cb4Fm3 zR-|P3?b*YI;?*HjQ+A_zFA&_SZmXL{%m{=-*Ae&Bp{L>+Y0vkD?l$*h9wOES50Qy? z0z}<*uJ;Z}1xFw~V10<`FPXHwgq+J2>VXS8i77Y&BCUO>M^$CznvoAO2sVkn5ExhL z-^>RQXxxLoCUQy~_$kOU6MM}nJ-{+DQpDQ@5w2_2rb#~CANYY8zCm*qVUcyuI9FaL zLf2%AMoNTjLAh4Ryl5^MEnTzNDR6Gg=^O*QM^ZVG`m;=-e=O?y^-?TA$Xeo$mw92-cXD#_iawQh zS7zX-vW~YXk+TmRqi>RZPv9s=YC-uOA{$0#&LM2KuRPwC%a1i)K~;q_dowpy$?D&T z-`y( zl_+9no*zH9VZ#PH2=OCeAWdor3F$!e(ondAI#lX~Opr2L4pCH&zd_Uzx}xN9Z`hXn zLhz7+u=GKSjeqBJ8b+>F7uafI_-|aI2&h@Y?a4+-wm3v(;roc%s2G?qQRCnjfbbJM zREx&sB+$^lUWvF^QdUNq=f=(|()Z)0fFwvq7^C}Z&&glSimStQ32K{dP>FDX80$o^ z6j1XZ_BH+04^dzjk~n?<#h_x1{Vjr%AHiZ{@X>Ne9p!?=mgVwMtlfWnVxmHuiQRce z!h?M=GM5=%zkybDB1?fFcm#42NAGer@UZARygTV*A zb&&kQq*Rl$v(Ob8foxS5nyz#}RYZ$VIJ^(=VFrv8oJ=8N4g0ODNi~#sEG$rc_;{u5 zf`GXHKm3qkPmGMDxylm5OgApNnHHH$hS5W_U=QMXBCdYKZ}5ebwe%CXTU;Ui{rg4x zQ~3B<$%zzvrqF=zNJ}cKvm>$X{}|j_YkXR@UQ*J3ttsBC`9HBW+403V{QrgDGl3j2 WY|7u96kf34pM5$9wA1(4UHm`LQ(Hj* diff --git a/media/pictures/netty/Bootstrap引导类功能.png b/media/pictures/netty/Bootstrap引导类功能.png deleted file mode 100644 index 3801d330ac8139f35abe0443d1600d5d6a6aaab4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27276 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 NGg-Rema*&p{{d|DpdtVO diff --git a/media/pictures/netty/Bootstrap类层次结构.png b/media/pictures/netty/Bootstrap类层次结构.png deleted file mode 100644 index 3e3f7a28d2704ddca89cc4d089b43acf82406f8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9728 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 diff --git a/media/pictures/netty/ByteBuf内部分段.png b/media/pictures/netty/ByteBuf内部分段.png deleted file mode 100644 index 5164ffa77ecccd6c678e9c9144347cccc4c63b01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31567 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 TW*P9ZGnD-8d$)3K>ihgJ$4fR+ diff --git a/media/pictures/netty/ByteBuf的clear方法调用后.png b/media/pictures/netty/ByteBuf的clear方法调用后.png deleted file mode 100644 index 27cdd882e353c0aeeb457b14a54eace32ec7debd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27688 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 Siu&lp&R5Os1mD^Hh-`Aw%W}Nkt@?Wyl;+k$EN* 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 diff --git a/media/pictures/netty/ChannelHandlerContext和ChannelHandler之间的关系.png b/media/pictures/netty/ChannelHandlerContext和ChannelHandler之间的关系.png deleted file mode 100644 index 12594e60a1010def60287034e5ea1f382fb1da1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51964 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
AkqXY0 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 BFqQxS diff --git a/media/pictures/netty/EventLoop模型.png b/media/pictures/netty/EventLoop模型.png deleted file mode 100644 index 395979fb7695a726c532fdc0937c7ab921624803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89699 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

@3x|<(S z2+}(tnQ*s3`_c2nD3C9wl$M8-0Izp{&YcS=(T>k?mn+Qen4c5R6Cn326JkCc|BxtO2?e#CRq z8O|y=@7beaOuLMgB%3N8K}#UP5|BR*2`#PoYx}Z;MW*n;P0&u&^GSSj;A-)?Lg7+Z z7Bf9Kt(}C{YJ41ii=W5G#}6DjO*3|MSzKB1#yayeYW&lnUzW@?CS(Q)lbQMKY;6aZ z7QRmV^*GBOuAk!Ix6Ao049B{DLLtxPN4u1M^(vf|ma*a(W7MF^ zlJQXBxm8rO9*i9=B7tt{)uEpzMCRaZ)b(Q&7ss(sEi5d4L?2p$o6)XayC~|8Pwk){ z9LqReo}ImwITGeO-@p5$P(;M;9+-foaZRNtn0kt|7Gp+08Q=nNdG~H&tF^g#z<66` zd^~gYG1zXDm;2b*@NzM^y}J`>dQms;IG*ZJ(2}P9Toa3){^v%UlJfHJd-@i1!E4Em zQDk8IF`gX*BRk5`ZHDC=x6Ls#>}2yPW5o9u?{CNp!jGqP|z z)huPPV(sru|m1r9; zFRvXgFFOt$+OBujX96E*;-;*?vjTjQTHIQWtGK8Lj8(C_&l0xAJ?>j-?JK#vHz=vU z^~BiFvrm08bK9>Z7nyZ&uT67-hmETjUYW3W!fEno!NvRRoEmZyN|^TFI62?Gmdw6k zGY8L7<*!T^7u!@ftY>6wFo4gQiHZ7D$&-`2%$6|+XE1gqv!AQ3cu7l1DW?WFyqLI4 zuNL&}K+wqCj|pxm_;Mr~D%TrMog{4y?RWC&9fNNpg={U_briCs6y9vbp8P{alWVeoxCEKbi8viSIv_GUEfPfB0uq^rcMrzuGZ` zmwAB&4SoD(2^N^eK)j*na>kzwD-|mWw1}HY_*BF_`Ogg6s9A7SpM0sy+r=vp7J45h zm6v*^#j%zwC6eZ^=&TXuW z#8b+T!menUUfd;3{2>>|y_YDxHPUPPwV#4DG`8>G>mH%a8i(fIJyTRRMkBql1k~!~ zPm`0dwXio#jr^3Hd+h*E%gj)6h{?>kQMMf*C#FS>*r=UGh;c zF?LGXJOATwK(hyYtf6s+y3b`9meG2tvik=YavnwCy$>7^lsMmPi`lC5>%&XCXE(#6 zqe(E^8h0JsBX&)V5C#GGr2bMZz%~gM zxY(+6Jb!)-ZpeAgk3z_HH#b2GHb;Dan^Fm)r!4(!#eIy$USei*t2KP7C3O3ttL%>Dtmz1|jWM(`l2(!dy7^cm|#Ql|m0CRYn2CpOtDjAl$DnkDgOX8VNkxLfxGUd zW16Mp!uR}rqA2|V=#Hv!a&z;QPd{?@Hc(q=Ul2}b=^*pa_O`UJVb#Xvr``Aby&N5d`QTsq0})p<)SK+3|I&TpRhqAkhivy=rF)}I0T=m7z$8M>S4Q}f!kalR1x^>&PjfX zV>90H3_X`~(XCrbC{|(ltxF=$o)5olPwl# z4jHa%wg0+K^4==V&(gOJur6}EGl;!j4DHNY^xObva*D<9GimCJt2S zj(O1&-B3M{QlB$l*nN?c*0^g`crVf$4w$$Of_H=Ibp4hmXl^j5mCNSv!PsBz znf=#iDLVv$nDX1V-#%Pe(e|o*&67yh=SK@P!Y;#aVrgj!zCMSXX=~3*6Zf>|L`f`| zMmNtae!L|*b%?yjpnUf)+a(HLT}BgZohC>11wMmM7I^lqj}x8xU8@|9v+oVw{_2{Z zaSqwo?$_FX?}OF@uD#VX9G>PpOc4XiO~&h2!wm-cSWXf*Ao~OLize0Eu9ucnR|kL} z0YS^4JkWp%kyoSaJ2OE1GOrJ;&GEOgN`Gq~DKPs3sW8ls9Yph9cA+6ctHI1_?#-KH z86AksNQVuks*PopX4_QncuH+naPL1;IyNx}h+vE2sbs|+G+8vRw1zwQ-OsTmF|J=v zmeJ1N$(YYMr^_0CwstGaVV%0)S_b!n%jhHz(;}t$#tjZFH%xBEbLKY6dOT~Jfk*Te zOXFPq@`d2FJOojs;v?ncqO2G0952t@zfZzA_=tU?8+-PdViSrD@~H}3A3_A(qN{U@u&kQ)@Lgbi^P=DRpj{sfObLq>zBW@g57 ze%)RCLtWi_yX`P}gO{_P=tJPyv*5noH|zs^N^$1F$ri#3AQA=yF^^Q~aIquZ1^R9PSx;15dD6rZnkIoGbOdcUO%lpgRL?%h+!*Q3LYsH{Q=+FFZp=Y!?WT_C#PsD$kz z$QS66;Q&Rst!5(hl!=K3Db}|R3<^bNutZYqHeeLo3_9;)w#G9M5|x|+GZF4R*En61 z#U&)(*9R$88aIwYu~!6XK>f;(`gQBp4cykp*FYhTsJI(cp3?UrAt7)q03QT36B$ly zWzZo6T$$oD=z?|oCFYT*$^K4|*vP-W`09@zKY+$kTd2^?Q+u~-J+?Gdvv`(M^Wb98 zl&Px9Rt_rW?<2_hg9-e7(gM>IBeqT>JriSNc*#RR^&Qm4GtJAc6(?b1qVQ}=3Q!SYEQjI=Eq$vi|jG*5V=jfmg3edyHk zo7=tBp~a(?mz_j=G(efZi#Zw`w5<+mkNDQHIOEloEW3y6B8UNR2izOF#$c9l)3hig z;RHI2REodds;CBh+(Cw+l_fHam+s`;Dfli|Fs*U@3~ zD*4Qk&}rIaPM!PQJ+^HTAFg-PpLR;OccN*i)bU&S@?6zV=E~X8!7=UJZd0#wx#0yq zYb!QOReo98{jJExvcu&%&y_jJqvyS*_AOeH6R&Of`tshE3z5QpYj=f@uAxygA7zpp z+P!!^WSAr6-4&LiJt5^=HOw3KRK8SyXVl`I*DaNpmL~f2lVO7~MTp`gWFxXWc&fqX zvB5njjt%O%x=cC(U52ZTTHpXQ?jkljAu%Zo&mSFu6eEwBVREvzr!2o#=4UUcD&b2z z4Wi8M-6C?y+V;naay)-}3(F*5%5;5YbiR+#hr9XaW%~15OpP6O&<{l&i88L80G!1$ zdy7UmIopQ2%fI`=|J-jRC#LnULj`$gSE!Zd^o^rbLlJCj?{w~04g&vjTLh@J_9u|4 zQ6aOn_5yIsb`2Jisb*sTm3J2)ahF9-=Ky^1$jAvz)we_6??-SaPnkJ#WLTK-3(W9 zKI)J+3^^9FFkHQJJ|aY8qlL(waOsC^w^$ht7Xn}LRo(`Qry9*yyBjv#j(P$t6M7X- zpFS0QX5AZlgXg9Ak=Gn$5z{hn=xOxKANHl~{^zSl^I=*1s=bzWIay#u{jthZc1IZ> z;9I=MnX2>ayGbL<*LShKyT5rT>HtHy)a$CKJG$=jKx$doo+T87oUl7pWLKS$pchAP zxRWi}i}j`2VxB&SY_;J(Us`rcOq1S9f*JfQIZh%{V?w!+vwE4^oxQJY1zr!I+Vhnl(Z)@xNJLY=>hO@*Uy{!eW5^iX}sW_ zUlz~Nem$4U>!R%yEr4+kG!BT|NeT04mR7&_c5-O$HC@&?NveD}QKIDJPk=**ZfcQ(TfD3nZ zgHq*=tbO}wM!A}0;=n98d!hJGj^g>XzW>F`>EhJ&?lUo>s}^V)i8pz}{A%AT^Trmh zY&@mvb~55h^aRQ|&vsKc65xGtsy%4@iBfiZ{>zDH*L(?|csVbC$EVa(m=k~l7p5*S zdH4FYldO*TjJwN?ANGBc1)s*cXQ}ADaB`}(Sh_3x=?FNpc7-JzW%r3wXSOA@jCdaH z^6h$vDm)6UQ}AJYf*)%J3S$)R(Lwr|wg=rGDi9%v)kt>FgA|M0O^q&Pw^uGOj`H1I zP58+%*z}}iK9%o?ZH%zl4WJ0MHBiOUTvT%j#fR$a@Y?_)%+a^T)X*?qJ%K>Cz7je@ z^gD2Ue~(@XvD-dDC}!RT%KxqlT=Ufgmo z!j|@!$d6p);^wwOgb8rvN4w@0u)^|J;WCE9gO$K|7!?RmG4U690&x9>v31}`;sKQB!16k)oD&WYfGsQY zk8a(YVGysviyw*E`yC+4Mx##&tDb3>2GH=<^V(R^sIne{n?e+usEr3vAYd?3P&Zw^ zISpzk!RBE?y8MX`6L}fzn=p~JAdyn0;;)YmXB^Ps4K24He=Qc>?1`RmXN{%yH_Csh z!lBlDJ$qY8H#m#?wCm;v*Rg}mqA0xWf`g5XvY{V%rIFW19~hj{|B|CV!%`g7BtUV& zPcdqg_~Y>WHPV)M9NK}6fl<|@h9vrh!dFHw5NI-36I5qG5xxgi=NBPbp-&SNRqg{+ zJ&#(W7;@V9+KEP(!K~}o)h#_gbQXXvkADr}W79DzVX_pBJT6dn1}g`8xHqp~E26Iq zh8va_$Zvfxl;xjEyd4iPR6a1JMy!oRtVaj~{{!^6YZZs1Ws z$1aJ5beVp0vgxf=!<(oJZ`wp>!PyyE3UXqUK@gB1Dz$5YWd;YtbMiUKGFdQxLS8@B zSHA+Ose;$24!V4y>g^>GOL9|7(2<54?(5gDu`-cTeTI7U2Mo&k39XkIa)l|OleB2c ze#)u@J-DTujjqWrIPQG^D(hQwpkn&TrrFt;#=oL$?bRPe-d^tqFMK@AcIK|##fv*M zrS~@`Ts98p%D0INInmGE^J|{A2aIuU!MF;tCfpM6@=n7QgF7@wWLTLd`j0CLv$;KB z=femr3;O2a<1Jj=$8ckX2#Oal?ACAO|J$UUx4tk9L8doJdcl0V=A)GCCgUlG&)U5@`}?~?z|C-LH)yuUO#1`lYZ z|M@uy3GT%9CdGeo!2I!3J8x%DE=Xuo_S1Di$ASwf`E>|uKz6c@IK)=(YESOs8~$9; zN4b_cOoCaf`JXT}1OIwn&SymPdw2jS7#>gBl-LL@mjL%c zC2IdhmYTHpec%r?v-Pb2M1AR!a^xHM+1FC^WZ=q|9si9glLwRl9~4&L{&}qR3XK3v zaO%7#IyASOzGU?vmyQSg+1FzSk`td%hIOYw24p$OC{Vz=$DyV0U>Vr>eJ7{(jzZRr z7yxqqx%Z;N!W5mmcn^LC-?B2Kv>eLErj@ChMb33_a#~D6XGvUu?eVySA>Tnu&y2s^ z;7D&Q<(;w=Q8PyfD9C4i$H4&BOMi(BI{W$#Sy_n-r{Sex`L2pfH3FBa2l@ivd?g}L z1?wFUWKi1PY}hFCw~H%s5yf9h#ha*xfB-7Pqq?{_6Kp-tjUrG)X@xw1zqEgz))M{t>n4HWFN0@*=L5ROL|0Og;XPp4ZXb|I}xvuZzJs1h$S)RsH!hlC} z9WG!Gp>5%)A|)-YuJrCyJB??UN<3ig56S}qW*N8l_aI4`fo%dBG7Q5G@UP#DnFnWM zc?$n+WqQks$NPK!Sj&qqprFC8)4X;o$)dt)lxbn5v_0}1d4j0bw8(s?*XT2dl_9FQ zTV8(gCF3$zB1$xIXBic#pJom)O#;zB`uwVJ2!7z_q;EaM1oC`#kmG$Fd-0-N{n-%W zDi_UA0y1TFSeP={gEMC>5bXWw6RJR*bcGwr{>go#%3n{;Crsfw1 zk9ZO=5L7lF9?WAP@XwMG63@#&(>1LeMw8fEx28~LbL8%*wVnb-B+kCCyj7ETc>|pK zfPNwvccMxTEwFnRJKE|%Jy=7a z&b)We@&R8jj30k4iyge6tOdU3zzc@N)z9R=Fu7i+zGUGsf%-vZUYq@ydu&@S4w9c< z%4)MeKYF&XW}Wb?PG+6>TGRt~elT>!HJ7|?@G2>F^^EB$xhO$#qbO3U^p)RACna*) zc7!jMbFC_i=R6@?G1y_C!{VWr*}BSKRFSJW0W#jq*3GT!5BhF098V#gwqQDQko<3c zbzzQ%)sv!1ZZYwYivvnvn57ME#*;= zm=wOl!Ryu>k?q&9{kqT{j_fMFkCP;Zy+-+NPghHc78oRXib`-d%WRxuea9GEG5Ekh z!7;^<_1*dQp4bz~@2g@V~gnlp{sXvgc)2OI=DWr zu8AeRVExeTiR{Ix^LkIzK7_MPd&6bd3>VG2v+9}WvWCkZk=bR}Yo(QWjNzNh?p5{z z|BZ(6aK`klzi3mWKJ zjXU6KYAU#pnP3`%8jaGrS%z+EDGF!EU*JgDC9B48j{ogbczl>TpShO!Nt@Cu*BhRC zAKDy^IHU~W%iDcctNrCm)tHE`s9~6k`?qyyz0Q0|2x$0+Gl&#gob!JCy3 zpuj*yz8qi)IR4O_5$6VgoY~52qM9a9nP0wK2g1`^i+*6eT z8B_?gw6wTz1Qi@WAe}AjkBVeCLedi1q;f}@cxa!lCOK;+wXBJKYW2D-|ap56wLSQtV=(FD0DQ10d9v7ZGz0Kn8 zW6#ra;uworwgfjvj6?LdJ|f*%gV0!JZ{fs2m{mW%-zo?rxMu4}jex z)-dgL6QPa_hyuoqXdv?4qnGbAJFaZMp5}Ht6p;>n?Y4xSMh;sO??g4*LSMc2_eMPX z;j~dz)ivPG%Es0ORj}UdXg+2rhet?61op3>;^gK&v@a82rmyH0rwc)|fge9v^7$nt zU)YzC833o?Pb3}7NHNHbUl))%8wp_~*RhKwQ#i2tO+(W#t)%y6`kAv=bY15tJ2^5W z+E9I;DQTA@D@~{h{l>JTDE6vm5-w>`oy@wU+@>vZ#$?DFCSLGIfT@Yh&YdbWk0a4D zmp*g+^XK$0(jk)V4&Z$lS6wN8KC&K;M%nG-2(4_4AZstNSb*nDniSd~UIP}Aic`1$S|8`1MN z@Bw@@1kpn^)o)FgUrJN8#FDdAbv~}83U-jWqD6#1po?rOFWsGEPI(IHvV4cRBGn#x zZ{#EL#DInbr^LqxJ9OT*wdo%}F6uxGGd4EHAcr&UI>Aea7MLiyoso-RhJhj)n!?+L zTrRRlpXZ^iQG&cC|Gn$iua}kW;ECBsYegX~!7?~W@(|PXw)RvlV!kLZD-`TEN<>?p z?m?Fk3yYy?x#4FH4Xf^A&bmLdN7IZF;BJF8J>ZVLmvs3u3>Drb_PQn!iv&*Yej6d59!YOVdD*+RiTafbt%mmKJa1IPH z9$AQE;6F&9o?a0IaU8w6K7RVdx+^n+j(jgTyI+pihj%`L5dT46YBZP>7~6&5^=<87 z8~0aZ0SOKc4zyhg9}>TyA=fF`TTfXLaXMBibCyTtTk>9vt#NvL2n{nkH))o>a#~MK z`DvfC?W8CXp-8*SKR)?USh2%iEFC2MQnDzO2K(d32 zgS!1y$+oMu56KNs5&-x?VR@nKI!SVn}>di zutzt73*w1j3rxbm?_I~p-;fNU8vwk1#8?^7>C*=v<-XnY`;Kqlv5ST7zH)+7^Yvsj zf5ntQaX{gN<6&`cyu0HFOKr5hMFFkl=~EV8huda7uDiq+&`*~k5WQew{$P!BW3#<% zDzXQta0+&8lCU&8c#!-<8r?(_S}4LQ(~?G5yhP%_JA7Wb^wChTDj(zYz=H@!jhA-Y zX{c7C6G@75cDvTe-1M6s#?^<@w21Hh$I_*(STAURplEa3jFj1iHnfJ;){5w?U~xfX z2%5$94+7Bf{^CU@`ElE|_piYLnG?DL`Yb920gFWL{6dLDuO@*V_Rrj_EZe@qyWH@>@ zY}bb?MO$0{+>bTE%KUM1r{+tr=)LD*OmOMaC1USKr5~TlN=vuLFP`IjzY7%c^Bg-I zat?}JPT6s+qX;92D_XQU$ znfP>v1w0RYt1R!3k>8?_o$#<5vURZ6`lcdO`YPPE?9Ip6hO0IvuVt9&4b_2OA4$cq zrc$B-Q3A7718ZxH8r1{N3mP~J3QB^={QijBDGXjS2n%%HsNLX5hXqDJe$YVpCJN|X zDG+CAYRXPW{T_=93p02ai3YkFk|PGc=GtwcY_-#2S2@_8pKhaHf8^#Xc`Vp!lYwUr zcg-Wto~3wVe-nsPz*gZ)_E#qDoW#8h7n}L`suwMJ@b!X-+hyVmftew^4#@>FFyz|1 z;QRuARp0rXL*se9uITks54Brft368+fh1vBsl2bpwW4oo(*dluJEeV7;J$btS62_u z`3lQGxOD9!Y174}!Y^;2&tKWVATFfUCXurii?GB@jM*2rM`Y?t-KM~^FTjnFteYoU z@=p<#r_n1YH<@Icx#WeKKN>o*CsCSEbq1ra;Gj!3!fc z;LRE+W$P=kycBdVBJzcSc5ZB9a{VKN#|9^3)=iu8oNyFY!Z3S2y47ww#d@iO{c?f8 zb>6TX^KWn(2X{wcuBTCnMudChTfjts{`@&^W-=|+^2Xc~JbwMFTbQ$?o3}AXLgQg}N@E{9Y?mx9Ik6g_b=B0208>-c zJ_;f%3Ukv2WXzv|N`=}KoT0FCe>4>>Y@_47c@O2w=Vm{%FCzvz-2BA|)?CRz7bEs) zb)JVaXYbU>@rk^b&s~$)Yhr1sGXy44OC|2W2SJC2yLHZLQ<{^(KI4L4!lIO`n;Q%Z z;veXWu_q8el)LrSf$VgL$)nLm-&NzpiMubxvVW8gpOenL`vo>pI5zpdiqLXZ3bo_Z z2wZ%b0e_|G>JQR;Ho3iWm${th_=sqDt^y699AD<5Y9%CwLQl1KL1petrt;zAAonZq zpih(S(14Kqs4J}QyPW$?R`qbKvA~W*GmJNH-)gyBg)3@uK!HiTY9C<0W)4M~r28Gw z=rl4}20!c$zd^0DJ2!uLq!pM88)vlA1YavZpHBNuk)NrTeOT&ITuB}YEyQ|N8 zP&nU>vWZc>(cbpq<3}_rHBWC#BpBil8VC)}pq*$3bXcKkggm>My*A^w7G?VwY79?d0>@*xKmQJV5 zpz!+oeMr)jTm3};DX~l;^fX4NL$N`!d?ABwtemVkTZwQ%t5o+{c^s|2@JLqRsRu6_ zVCKkK;i)rWg!;ZiSd5D2k%9DI(%6UC>cK!sNOU}tfQ_AmK?{zH=_GU;cKhgiDHxDf+;HJg3x4TIzl?O{Y@$nh}D1GR^fg0m;Bt>42*0XKowcWHZ; z={eBabu(Mjc7FvE@W3sSN*s(A{1hVUYj;cZdKi~i!8&l864t}g=!mh4i)=SCf~JGi z6y;&;p)=d=$|@-Zf!#c-yO47t{xSm9C2)8}mtMs`u^Lo?nz3Y?No|dxOKF!gTCdXg zB*Zz1QBY#MJ=S`oIJ)nYCw7^TqP5ae9OGs%ZU0ww66T$aG;F1}(f{_%y{f1s&8q zD82oBN$1INPj0%iBqITNksaI3#T0Q`u@8L%w=mM8pEMgoc;}W|4|{IRXwk%3T3gql zbA|TeQof}VP&&5l!<1DCXjye10v7EX!7 zZJK4NM=oA`FhCdaU{;o!#$ZM-;sIY*=k|}>_ONn7V34bqAwhS)zn`~g&0dHkg(7~iXliIst850@k3`Z!t>Blx zSeTgbuL>iAQ><2S#tY2~hLA6Sr5oB04w@}g5=i~J7W4G0m4DvDf$ED8 z5vI$7MFgHU6Mz2&guwf^8L6nKAap}z7@t=8#zv~`>S2eF#(sErURq;lv6+R$YDqoQ zSTTeCd9B_#{q_rpA3q4)UgLPCy)9AgoI(j3m)6I1AC>t+1U>!yh%1|cJ{tp?VSuWRf;Fc zyLaa9OkryN{=3(!W5(aV>*-m7sTYWs#+r;D{2g4;`80wK%-#*W@X(m>HayZa&<@5s zBkf+E4NEOB^M7XVctp<01!*|Aa6q8jj9(; zQS@|Ks+~tGvkMn5z6WLiazGmcyKFjs4T=~LWL+uy1i`Z)GkwMjUoedwWIlXdKx4Pj zuL~&nuS=xoLqGw|G^o|y21BTJeV^<_T^>`@la|Jn@uC8E2m+=DuOULjIuu5m4_Gkq zQ3sfoP!4oVxJcVkdBl@_7%HiL7ar?S(!Bkpb@n;I+6xHaA!43-cRLpNNgH4(yu*Qg-l z)Lm=!Ntx3|##>+`{|0B8wH=F!88Lf^_IoyShIsY_we<}?5YJI1ytEZwL=mZLF{z{3|DejPyldf|8FCST+>C!*M({kjU z4&83JETh9m?bbLg2-W}CH!(p=TV-Bg2%Xc2GdLSRhsB57>RhpCxv`DQ8t`Y4aWRYXjB01zA{WLt%$5EZNjv&#)J?AAuTHoY|=Ha=zBqes9(E2X?@# znt@`(2d>xJi$4R;i-K+fV`A7j8yzbmf;7BMv?V{P(CF8%{|S=N;qp|*y=b_pFwxFf z{WXPGV)bWO!bJH|PJot=Y1WF0l6YB!tHvXKYLIc?3al9z>HOPH3BU<44tvkF~l5Q9aFkxOsi_*}%`*1enlcM}d+dBj4Mdh^BOiM-ygu_@ z3e!=kisVxL$IpwifH27AHv*mPm!$fo@aLSuxSensm)UNhjFjA}k7Z;$dALOJ!{lrE zg@wevW~g^iEw%V39~OLEVBGP^CDbLVE1Z7pdK}L*K14w&27UU&v)sZm5nKLuog;b4HMotlmg!PKuP?{=|oL$ z*G@)?&DQylzYTYxKI|G<1a;fK#X+qE?Xr?mJ&GJWF=bgHCvk4@h6f7$KF!zEK2ep$ z(=}0F%gZ|k6baViH(KqVmWyNbf^FyvUu=^WjbyE^N}#3zWCr`L~JPyo;47VraZQ8{Y+^#!okFC`S%ujs5;qLK|xu z3W-#48|gy6z$IYd!>`pO6pDA##b7dK-MHZda2)_T0{5>c-Z zED^iT`EAJn7#25+iqONt&KMN;-HfF)_P+G!NMfOK^)(7H@d)v_G*C)7i*{ z^q43H1B^54L@_)eCn#sgUCR3338B!{`?j~ij=ewPc^drNAh3C-m>n(Dq(I9CQwAj8?*L&X2vt^3=- zq8jCFAjid2CbX+1|M%bA_mAtJ05cR;R@VN#y_9{mK$&Kvzq?}!h|7%^SgW-@ZKW~% zXLI{sd}-d)?bx3tv|c zK^B@@Z-5O(#gNAsfzG380Y&vq8O2#9jA7rtir_{Y)DTmCs6|C)!QdMdFdY*UHgPm3 z4Bwdot}3r%2M==S2ouwzMJb9?F^+QAUJ=L5k!tLc)=LkzEE7a}PO~iVjq_ zFC`?b@iHa_?<|^)GujLX9I*n~52wH(!1HCL-G5{96;_sav;hC53(T6B;%* zJaIGOw#~&~yY<(C9=@D)`!=O70gk^PFEf^@BZXS%V8!(nRDptm7N@&U_G~(^E$r=Q zpZTX4*5VaX(-w%!BI?r6b%&w(mRA^CATvF0zBL!fs z;Zi;>>CKFa;I3HT@`Xt{Dxvbb{l3_^xD>(i$X9Xuc1kN!mNrm5%DO0KSMT0^nD)Cr z;C}KXYMEDO#>e@Ji5sa75u+I(szb4pViOK`=+MShl3XG}LdgU++c9i)SY~kqw6gM2 z7gzGfotxis-k5gWY0Dd>jfUV#t@&|~a&ypszqKltPTjzO;^6smA`R6B0IbBVW`_<< zeO*A@gFg;vxg;Vdx{7zbeMNWkdZW`DA|Ale-a%%0;YCpH(+NOXXj<*3fHW08((x4? zF*U@*gutXXah-5<81WvOD9O*Kpt&Ku4UY{`Gl6lz8fJso62^!JC{)L{*nxi%7K<-2 zM=10eu?KeG*#UGH4dKPXL+^OxNOp@IGGk3K_8)mci-Hy1>kIa0wnwlFt1h(w_a-$OV`!6z-4iRu=_PfjF57Qg)xmutN5hVRL zcCAmxzPw9=9o*3cHc@q$L){#4o#L_gr3w!Aiz(xe>T{Ef?$a8SVrE9Cie-Lfv7 zG8MH;#F8#&NN_gJ4Y|wl9zQWV-VV+Nm^PqopwNTr6aUi=G70N2jzDoSc=^iUOVx>w zrWr2;=|~DZn*=pchkJi|t{1&WWHocI4IGwEcQldy53Hd z4{+8mR6oD&{r>&9Bi16ARW!`ueNr#YfEK17`D^zJiN@BNrcCawEPR zM&)5o08ZVz#B#+*b7X7`K!KVwA5n1&;IP|cj#3TreV{P|cvg`K*&%RPd94+5emotS zlfp@%*m(SM=Ykg#@aJ|1R@2Qdr@~@EXBikc?EmcC9BWzEJvi1+2NH9$&7mnDZWr2E z?6M_zMJOsdns1Iww;Lro;8lgD$K|-7^eN|IiYz2hvLY!d#TYd33UlgFkz$(nLTH%m zbndrzpT7g{o&OnV?h1fY_P3%n1DEbp0341CVkTV^Ur$PC@kaLo`kKuR5~h3ws=~Yl z(4B9sYk!NTh3l{Ro1TFmj^{|!TZJ3zoRBkA2}xz&ytyvW8ZD*+kCz49gt0$W0_`d} z%k9)N83kNgzecvj_BPJfwem@HaQ%;hcVd<07c1uyF1WW>S8rulliI5BgZjeYbAk6D zW=T2OxZE%c@ti&v%~wuvLKEdSYC-C=m32!J-#}ryolVSikl~y#Eiq+w?3cJQxib{;<7;lR4CKHGLnW_8n$(CWRexM7dx zXGBi0K&U&gk8;xhC9cb{1uu{$X@B=rq&Ss}8JR zLGJ|j``x8Sqbo&0??9^;Y#$_A4Qc~8FWR_1Y+`2z(F_0a$`wxOoj=#KyH@y~I04Qq zaAcAe&MY%?B#k|`9i5$E*#ZV#84Fro%Xp22s*TR7>Zp*I7;6pF`JU3F>%7;Qf(>=_ zCdCq{RmFJ!{tJGhC%$pF-#KGWlUP$-4Vc{^uIT|_XdDd6)8N*(3CndZ;5xI1)kqOU zde}igig3N{T4;!jsDUj~-2>jJogItuL7uAtS6_lHf9UI~ub+(#1tZkT&&Aqm z8xY?@`nAx6LwreORi3oRwl%B9m>)aul#w}~l4$&#NM1Dt6OrIkn?Eze>kP7t@N3Yosk>nb$p*6+hZ3o84|^Xvkl_R;102E$*lQ+p1!U10&jL=2&>>3MHCIy*N{3 zI|U_T+|^8h+QwYU+@QDYnvEl@0xrUMH@WX%cC-z^B>S_^o>xo(7c`E5mn8S}OP z{q>@D0#iLzFFQLy1qvqJgUD0ZPJnHDBeU`b+ltUF4i+BUOnP?zOp#%oP;Rj1_1USz zez*&9JK{vLvSKonbx)LEF^TT z6$V@iJQZEe?s-+4kuw$*6i5>-*1|Zm`S_1jlxy+h$IvO$n`~DfFrE($4GjVw-v4@3 zx`;olL3@wc7J3UX%EWvw&8~veGrVd9lH4IVg_O`>!_&Qhu&`+;ci7kuTq0PhIG&_7 zhq1-}svPVmgdr@1$2n9M#`h%jPi0qx9dOP}o&*}BcgmN8a0$#m;px zm`-|hqtsCC=-@DpbEMz!b}Ly``c;193OOPeo~djbngD3nB=}W@m?gcOxa9Z3_V&FW zlQjiPa4@2s9vnh?4EI(Q!pzsNM{Xx8#DngM@_Jp+N?^-50!LGI)BU@jw|?oJn%k4E zYc?mm>r802#P3BR+V5|)2f2HC3}Jo)zN_?}jWN!=gfm9mX>`qQHSiUQPwE59qLK6i zSKZ0)&ZKk03vo|!$gO8G2HfZS8$$-NKHls9 zGpCrnf}4XQWtW?^0*|DaSeRfSr8gJ+VR4loF&EfE({fnA@ibc72P&;^aF7u>f8bY( zdbkckCW^W{gh%xNCIK>E^MpC1m2dA|3>|hhsH0nUd#d#iJd68fO4d(KUA7Q%y$h`2 z%LkMj==r{I{Xb=WcR1Dk|Gx^IyCge_bgb;$r9vVn%3j%Ir7|-@$hhrQDw35|GD{J% zvUeI*WMpTTXdv=^oIdyO`~6(k&mUd7IvwX6@AvEZd_JC!K|u-w2@kRxL2TKkWD#ya z&Tx>BRFi!|HvX0NSUf-(QrI;zs)wnG?8N#WU;x6j>Id!a7s%gnRm$#@WVpG={#vKP zK|7U)nUI~I&obJ9cTjp^)Y*mhSK1O%i_;$t7%uFF6IY(VDbAyN#+nVGX{CIN-*HI{fvT(JLrwcGF-NxADTXecBfu9 z;(GQB!h$+OIzgNqSzStuse;9kTl~J^+%u{j|N1UAs!flcgwEAgoDCUVh>^FL!*+W_ z!@_fe9J)0z5bDvTl?|L!NGP!P^P|EKQ_BhuJ6;U?4w#DpIeA+B+Y8*zqTeCA_7RAn zl|pz8FW&L5VM+DOB<)oMP>3o{UpT-#$V)qf0X+V3ixBo@fpmqJUbE$5VwZoY<)L+O zu>bHSF)*rQy^{_EsX>P28X)t=fGbECA|yI(Z1Ght5&KiY<-q0tYSUFOikE6zrRgCz zl9?H&YSf=ay?>)6J*Awqw*RTL$B%DRxg3d|+)>{Bh1;oD`sE?hn=Jjh*o4BKXIHP% z37*69e}JJsSi8DSgbufmfT{wye}rVdraBdH__OJ%l9KmWly2R2&luFx$rmD#JI{;8 zA+-mwiYm&=X!tcWc4r)%87tFyeNG^HUE1rLHC!q|78v%L6Nzck&)3+Z~#9Kr;Ca`uD_|z+XJp zYsy!aLCtn>5E<+Mj}@dta!R|YkPSIG4pzhYIXO7J$%G$*rY9Ik_+2PXs<8C%-V~=B z`|edyQ6a}6ttp_(=K=1!-%34aK&?6O2UhB*oy1|8cqI#0>+t%~?7TcX8=KWvX1}@i zPa6nRo83)PX;L&rx}OgO`sQLQpd{4X939!-8YnpVx@SK6TScqYgKfJuy5hVxVIG+( z>sQr0{ukxeXN4@v9N(qV8c_X&qQhF~_4wr2KZb_O@nf2KNLJ?vDLlz^#D zjzis5?$ayLlAa~ERL^gsW-rXH$R<~tmZ^K5-8Yyi6 za{`v?#zsa!2^uZ^i<96UJctu8{qPf|q(~K1N$}o3*x$RW*@RmToh;(K!OtKODkoRJ z_nKv~MBF61m`3j}bI;zE*Noy0;#OsMD4n*JRsl|443kg^z|Gg=r?YmR^y*GHGXYfOi5YRh^;4ppx0spwRnvGB9lJp|Ea|;XDYNJ9d7P_sG+#`U@ z{6n_{cd?V-yU!upsJp+mRxW;9cxW+1CyyRcO&_R+*bTgcgT6zN>oUkJ2f+SFMYV42i~lM0}2g_(U^7U@vkkR@ox?>yBim5Xzq<} zz-SMrO?XpRRi#vEZa2-XLTB~-@>|pjET1ces;*9{do{oCsHQU(y>({s)|yWcZModH zLbn2zMajyuXI(0{sx%1c?UkCHomh-wy068`ntGOjq)0kixG~5p&qgO3slH__>-CoD z7^X(Y@3*UU0!gDA{Dfo*Q)%w~niSH(cUnHuaZ~%O^Q;H0eY5aino{mG2ngjXHxaEK zP8DQx94wXFrnHoy8Z_aYYw!OiX;N$Zfmzdv;8Uvfe+Ht><1>1aGdw2PE>LX*HE4jq zWfjdp_9Xk(_}X$u%WWl0?=yCp&-1AS?#hDL$a6?agNFfLW=5bitZcku*x_+R!YAS~ z{Lm}w*-TlV7&hY9=?DIih-sz4(!Ht26+&}Ni~QTFho5?Py^ztZIe!jruM#JpX_B)x z;p_qR2)0bqCRB0G!7!B&dzKozE~}B_zm`bGtyy=E5TA<0wwH)7hI>fU?#YWj+CXT~ zp(ZaCuxbQ!%GDKr@_Nb8mC)@a%ajj0T0Ts$`kxx9|K~PW(!VPkr!=Z7m;I;e3iASv z{MU*|wv@bN!49O5`oB=<{~rK$8TEgG2d3`|H~@paJ!7H1aj~&JU@b$?sXGkfqgl1D zkB!X?rt-UXUeYOkn?L|JD`ub?)#R~)*o<3%uG5}(X zwNr-L^w0EkB5EqZSt^-2a7z=FjE%A96zb2TM~xVk-Q7EnTV<{V_5Q3Cs*b&>q)d6P z21px~ND=g}cqnH)f83CjIJpN!2Qzf0N1P|yCs zO0iw<^v&nlu1|5!e++Zgm$^Am<8R;Hiimg6ppcS>cvO?B8lejP3vGLBmm-f%CNkzL z+}t~RB8caHtJT_a>ZU4ZH*$x7qyikqO`Iwi8=pT3|MMZe9I|C@t=Xa`v`r?Y7PQ?n zuXf`!`1CfFGqMpZv1{mNuyLrFZN-w4)PiahqYW!2sBqQ}dsAlWiMrRXe-6#YG^eD24YlK|Y2r z(&^W2ZOUth#RF^MGrzpN92pS-r6#~_d=Krs+HeN0eCTH2ZHtAO8@d5NrUeGm#w*hY zE1%q<154XPON)3%>9uCqY0p)(Dp0{ep+-db0q(ENi_8wRv|7iueH10^oCjMPUpD%v zE?|VidPlQ%)Ct8f{yaG@B(BnB5tAlr4eYA%kZ&RZ_!BqD73uwmN4VNgjx>ZPe`)Co zmdSV+IBFrsO*^#$^#E_PDxK-FEC@5xCv2{Fei|b^|3EWqe(~VM)VgnV*G$lf^8_MU zErT`{^hXf84Gj&&*-m1c1nbH_LQ2c$wT=KUq3N&$!4)OG;S06Bo!!+k6X-6XFoe*5 zEMzg!k<3Q+z}^^0Iqm7)t)#%(5m%|v>+lCATGfZ_>JCMf1_RFyu1_+ddoN3{-_zjY zEpWwK<6Ixv4#^4*H&k<`C%` zguMb0W@{->s1hem{QUUk{?+Erj)bdkiye#!76b0nJ;})&UbntndQ~`aD$*v=#ji`; z=V$x;yzqHu5^Kol+-W9!P=q_mk0wrcPORD$C#s4Bg`Ig=Y^0Wwy2dS|!_O3;Z1Gs* z5NCf}t|tEq%~o4am&0E=I_`WSNYsmYN8k2wJ%2WGFzdr?khgt6)@Y#T{oXE6(1WpF7|?eaz>uxK1cJno|=9Gvv%_9*$SUVZcelO3>jd+mJWs^-2+Ac*5mq`clVm$pYd-HXs40Ow7%-Jet1qiHr+7 z_?kuk7%Tbiqokm(ZGf4f_gWazD`Sa6W3-j}*1iQq4{`?szt1}()xOeW} zMS%!QR_d_nA9}jQrcaYH%ZiIHCVpyYpcJnY96#xM+nn&3vR-VlhAmCO{*!XsrW(dQ zF`D?lb<9`KEM)Fx%$(LcA3wIP>5;rUO4*%gB>%;`W=~e8P50L0k)#t&G81AD7rA(c zYg_H4=Z^5VICj3*#zQccfpj4Md0Cl2km4ilLdEG*{`~Y|$|V%#4p*+&CVomP@yT)0 zjjAN6)3d~?W_5|*rf_8V+GtKw=+lS6vk&%%& zaH@Xyy^KsL&;RoIb9B_ezyQ|JcE7ZVC+IvqN^|GDgjr5VOVcD?yKvz&!C!5E_X?zk zqYQP9q%aVTI?gm@eff^Y6VW=Gzkenx>oWvq&dh(L>#r2h2B(89vOgXvT4 z?Kd9q^Z4<_$WaUCocW=n`yIaRbA|tRfyhhA>PKI5x<;g04}Z_R!-iqFje6hmsyAN@ z@kQE)+apD9D|h@An6fL#@mLS)O5`Gs*M3gU3DPc}`ob8-dE;DRqp{%{Bdej%M>vH(f3>9RA;8pnO&#S~u5)-g?m z*3Ef4Mn8-`ujoA4#@y_D?D+B1^|J7FnVp&OTpZcr%{1J$c5k0L#Zu22Uj46MP>A1) zi?dN&Y`SgSU&dCha7I_xFeT0YwQnclS;oi5F`}YrxYb;6&A3bauD*0qyGVm|`d06% zw04-!(UT5nvY8~ewzi_?BqZ$3m=2DhkI-bK8U~P5?eNC35l;fe13$_Tdl5 zQl=)CR~Hr>yyZgjAMZ|3ZPNcu7i=GJ+Pkp$>UYo*qsH-yenptvQ|49cN>uAny=GgD z!S!KBT3rw+%(i%~QhRdQvn-#eJWAQf%Fdp_Ce=M%{`uoa(<3{vRJRsKq%!axA1Xp# z&+J>-&G~ZCTrtZf%L2s?IU*$k&2-1=5jCDU-k`prq3;gOZ>E;%_HUq>?za}#&gouX zuY6kfNO}Phmct3+G~CJR+^jR6DHg1cv;`7WJKyX()g_)lBFKG@HP1(qo35@_M4{0W zD7IF&zO|CFg>3`!Fm&=-#BQLGB+Fg_f0yTXEsih33- zy&x`qyA1JGR+O6)``O=YHGI#mtch7fTy ztfg0dq+Pr3_%}WG^FMp^%@nAuco+m?mGS$e;TVf~lAOoias22}g{eSr3UhLDz?}1z z8Me>8RDSLkAXE#=#ARR)3o35-=?YrWtvnnNCyyQtp6ZbM`=jqK2Vz5eJB^#u`JeDN zf(bZnCMDevf(8x+p~&+4h5bMp0CqHG`F4qXF1!Agv~-&eyt+xZe`j)~p~{4K%_j-k zfVR?zai_&^k__QDqN0#~HBfT-@?})HaS13zb{_3tSt-3}sN-z#OR{*~jiRHzsZ8aiP1aygcH9^YIzllM~yF1Abh8i?7y-SEsW? zdZq{Q=^<}Yro^Va>Q`+ok7UkRCewj5k-5!jp>vh|5neBmQ$G2n3`Yww!7poK6qnh?%=w43^wOf}s#9Z6DSsENXgLPiI z`~!Pa!)vLcB!Z51hRO%~_m}C+UcGrkYoEuz!$$d5N~=W5RF7@3JeNfxA9F9y^V=IU zIYsu_FFORe;ALVEj2Poy>PX1U;a7g5_wYk@3x7)Go*h)f zFEh}!$U_v}XGV1=yHKDf_HmDGOKGDY;~L~hcW1?E0+k%=4;p9{8@F^E-Tuon; z;@oT%bU>otm9w$6=B_7h&+w=IpdC?kCN_Nf#K-mYF#pWEJ$={VAM$Rm)+s@o&ku1I zR5*{HkxJInWj;B&vV)l0gP~ntC^jO0PKQxPabN32P4y>p<$wsRr6q@KAku?E@F&br zv`mhrzP%87{fJ$V;4AQJMc&P5wNAP7awk_CN8sd9I6kw~sonnO&5v*2goTAy`s3o_ zP}e3d)Lx7j8alt~y)ZKO|X2&!7!Yt0;AuwBN{o&hLn2V9^-o|ULN2wYT^-R}9BC};D{Ep> z?Fj#K1-ZtEsyh4fhh<-_)l$N08IQiPxld{+X(F5F-2F(i3#zqD$%+k3hnW9;-heQv zJ#Xn_t;jKueU&yyzYOJo{zJis*m8y>TSq w{J%ewrfF|&KF^;ApvSynuK)j@()rB#zJ^Vmbsf>1_Z0Y2Qc#!ACz%KQ54TT~K>z>% diff --git a/media/pictures/netty/ChannelHandler接口层次图.png b/media/pictures/netty/ChannelHandler接口层次图.png deleted file mode 100644 index fa96231bd716eb9203f43a8f2f66781c69036d1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23823 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 diff --git a/media/pictures/netty/ChannelPipeline的ChannelHandler顺序.png b/media/pictures/netty/ChannelPipeline的ChannelHandler顺序.png deleted file mode 100644 index 78aced0e727e449e8f441d1a96f3e5fb7e8e676e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19012 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 diff --git a/media/pictures/netty/Channel接口层次.png b/media/pictures/netty/Channel接口层次.png deleted file mode 100644 index 661cc332e1181ec6666dba2c18ca6a2e7812eef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34977 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 diff --git a/media/pictures/netty/Channel状态模型.png b/media/pictures/netty/Channel状态模型.png deleted file mode 100644 index 48a6c36d6726c9fcf011a1f4470d380de0b57a94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9195 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 I{^J+_2jk!7tN;K2 diff --git a/media/pictures/netty/DiscardReadBytes回收后ByteBuf内部分段.png b/media/pictures/netty/DiscardReadBytes回收后ByteBuf内部分段.png deleted file mode 100644 index 77159a5eaf4f0747079dee721d7297f92ae9d965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36226 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 diff --git a/media/pictures/netty/EventLoop任务调度.png b/media/pictures/netty/EventLoop任务调度.png deleted file mode 100644 index 297afcf83751a43a5783f45b33386618b4739655..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50075 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