没有找到mfc71udll(半导体零部件行业间研究:行业高景气,国产替代空间广阔)
没有找到mfc71udll文章列表:
- 1、半导体零部件行业间研究:行业高景气,国产替代空间广阔
- 2、Java对图片Base64转码——HTML对Base64解码Java加强版
- 3、C++学习教程_C++语言随到随学_不耽误上班_0基础
- 4、模塑纸浆包装成为一次性塑料的替代品
- 5、基于OpenCV和LSSVM的数字仪表读数自动识别
Java对图片Base64转码——HTML对Base64解码Java加强版
Java对图片Base64编码
package base64;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class imageToBase64 {
static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
static BASE64Decoder decoder = new sun.misc.BASE64Decoder();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in) ;
System.out.printf("tt*********************************************n");
System.out.printf("tt** 欢迎使用W_Jp的Base64编码 **n");
System.out.printf("tt*********************************************n");
System.out.printf("输入图片地址:");
String path = scanner.next() ;
if(!getImageBinary(path).equals(""))
{
System.out.printf("n" getImageBinary(path) "nn");
System.out.printf("是否导出内容?(Y/N):");
String boo = scanner.next() ;
if(boo.equals("Y") || boo.equals("y")){
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 1.导出现Base64编码到TXT文档 **n");
System.out.printf("tt** 2.导出Base64解码后的png图片 **n");
System.out.printf("tt** 3.同时操作以上两个 **n");
System.out.printf("tt*********************************************n");
System.out.printf("输入您的选择:");
boo = scanner.next() ;
if(boo.equals("1")){
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 温馨提示:导出后文件名为wjp.txt **n");
System.out.printf("tt*********************************************n");
System.out.printf("输入Base64编码的导出地址:");
String toTxtPath = scanner.next() ;
if(base64StringToTxt(getImageBinary(path), toTxtPath).equals("success")){
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 导出成功 **n");
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
}
} else if(boo.equals("2")){
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 温馨提示:导出后文件名为wjp.png **n");
System.out.printf("tt*********************************************n");
System.out.printf("输入解码后图片的导出地址:");
String toImgPath = scanner.next() ;
if(base64StringToImage(getImageBinary(path), toImgPath).equals("success")){
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 导出成功 **n");
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
}
} else if(boo.equals("3")){
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 温馨提示:导出后文件名为wjp.txt/wjp.png **n");
System.out.printf("tt*********************************************n");
System.out.printf("输入导出地址(两个文件都会在这个目录下):");
String toBothPath = scanner.next() ;
base64StringToImage(getImageBinary(path), toBothPath);
if(base64StringToTxt(getImageBinary(path), toBothPath).equals("success")){
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 导出成功 **n");
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
}
} else {
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 您输入的编号无效!!! 程序意外退出了!!! **n");
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
}
} else {
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
}
}
}
static String getImageBinary(String path){
File f = new File(path);
BufferedImage bi;
try {
bi = ImageIO.read(f);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bi, "jpg", baos);
byte[] bytes = baos.toByteArray();
return encoder.encodeBuffer(bytes).trim();
} catch (IOException e) {
// e.printStackTrace();
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 您输入的地址无效!!! 程序意外退出了!!! **n");
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
}
return "" ;
}
static String base64StringToImage(String base64String, String path){
try {
byte[] bytes1 = decoder.decodeBuffer(base64String);
ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
BufferedImage bi1 =ImageIO.read(bais);
File w2 = new File(path "/wjp.png");
ImageIO.write(bi1, "jpg", w2);
} catch (Exception e) {
// e.printStackTrace();
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 您输入的地址无效!!! 程序意外退出了!!! **n");
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
return "err" ;
}
return "success" ;
}
static String base64StringToTxt(String base64String, String path){
File filename = new File(path "/wjp.txt");
RandomAccessFile mm = null ;
try {
mm = new RandomAccessFile(filename,"rw");
try {
mm.writeBytes(base64String);
} catch (IOException e) {
//e.printStackTrace();
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 写入失败 **n");
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
return "err" ;
}
} catch (FileNotFoundException e) {
//e.printStackTrace();
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** 创建txt失败 **n");
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
return "err" ;
} finally {
try {
if(mm!=null){
mm.close();
}
} catch (IOException e) {
//e.printStackTrace();
System.out.println();
System.out.printf("tt*********************************************n");
System.out.printf("tt** RandomAccessFile关闭失败 **n");
System.out.printf("tt*********************************************n");
System.out.printf("tt** Thanks!!! **n");
System.out.printf("tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n");
}
}
return "success" ;
}
}
HTML对Base64解码
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title></title>
<script type="text/javascript">
//hideElement() , showElement()
function hideElement(id){
document.getElementById(id).style.display="none";
}
function showElement(id){
document.getElementById(id).style.display="";
}
function wjp(id){
if(id == 1){
var values = document.getElementById("code").value ;
var str = "<span><img src="data:image/gif;base64," values ""/></span><br />" ;
showElement("div2") ;
hideElement("div1") ;
document.getElementById("insert").innerHTML = str;
}
if(id == 2){
showElement("div1") ;
hideElement("div2") ;
document.getElementById("code").value = "" ;
}
}
</script>
</head>
<body>
<center>
<div id="div1">
<h2 style="color:red;">W_Jp Base64解码</h2>
<textarea rows="20" cols="100" id="code"></textarea>
<br />
<input type="button" value="转码" onclick="wjp(1)"/>
<br /><br /><br /><br /><br />
</div>
<div id="div2">
<h2 style="color:red;">W_Jp 给您的结果</h2>
<label id="insert"></label>
<input type="button" value="继续转码" onclick="wjp(2)"/>
</div>
</center>
<script type="text/javascript">
showElement("div1") ;
hideElement("div2") ;
</script>
</body>
</html>
继续给大家一组测试数据,尝试用我的HTML代码试试,看看能不能显示出图片
/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAJoAMgDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4 Tl5ufo6erx8vP09fb3 Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3 Pn6/9oADAMBAAIRAxEAPwD1rS2K
aLpwCJzaoTlQf6VLPfwW3lfaJ7WLzZBFH5iqodz0UZ6k lRWIH9k6eD2tlJFcX4m05obnT7jWTba
tLf30OniKSApFbwyA7zEu8kSErneST0Axisbu 5r0O 81t4BWMe3lr/hUUV/BNPLBHNbPNAAZo1C
Fo9wyu4dRkcjPWs7T4LnR7GRdR1Rbq2t/wDVzzR7JFjGT 8fdhiBj5sL0JOc1xvhzU7yHxU2sXsC
w6d4lOy2LIVZDEMRB8naC6ZxgtuOMYFK77hoegHVLVXuEa5sw1soa4XKZhBG4F/7owM89qmgulni
iliaGSKRdyuiqQw7EEDkGvLPiPpjXHiO3MxtpYrmxmED3G5PsrRAO7ExrucBQdoJb5mbjHBi8H6b
bpc65apbWItEsERr2a4fKQTxmT5sJGJBnBJOxlHG4gDFa2vcXXY9Tt7 G6Ehgnt5fKkMUmxUYI46
qcdCPQ0ttqEN7Ak9q9vcQvnbJFsZGwcHBA9QRXiHhm001rK71LZYITfiO0juFmSWUb4zthMcrOrr
leQjkbgNzAnHofwzdn8AacpjZAjyqGOMODIxyMHpzjnByD2wSnddQVn0Oy81ieif8BjX/CgSsOdq
HHUGNc/yph6nIzg4x6CgHkZ7Zzn0qbvuVZD/ADGDY2xnPI/drj VHmn/AKZf9 hio Plz2XJFLkj
qcn07GjmYWQ/zW3gFYx7eWv FAlOASsfTJ/dr/hUZIUZ7K3FKPQDp29RRzPuFkPErZGVi57eWvH6
Uqyk7flj6H/lmv8AhUf4n8uaCSM4xux/3yKOZhZDhK2ASE/GJcfypfObdjy0z/uL/hTBwOBjHBHY
0EcY9Dj8KLvuFkP81ieif8BjX/CgSsOdqHHUGNc/yph6nIzg4x6CgHkZ7Zzn0ou 4WQ/zGDY2xnP
I/drj VHmn/pl/36GKj4 XPZckUuSOpyfTsaOZhZD/NbeAVjHt5a/wCFAlOASsfTJ/dr/hUZIUZ7
K3FKPQDp29RRzPuFkTRSFpo1ZYiGYAjyxRTIP PiPk/eH8PPWitYO6M5IgtuNPsux8gc/ieKgvtM
tNS zC7iZ/ss63MIyRtkXO08dcZPB4rY023il0q28xA37vHNWhZ24GBGAPqankb1K5kc7qGm2mq2
4t76DzoEkWTymYhXYHI3AHDDPY5HtTr xtdSsZrO9gSe2lUrIj9x7emD0I6Gug xW/P7oc9aPsVu
esQ9aPZsOdHJXPhzTbvaLv7XcRAoDFNeTPG2zG3chba33QTkHJ5OamsND0/SbiWawtvs3m/fiidl
hJwBkRg7AcKOQM/nXT/Y7f8A55CgWduBgRgD6mjkfcOZHO2Om2emfaPskPl/abhrmUBmO6RsZPJ4
6DgcUmmaXZ6Rp0dhYw XaxZ2IXJC5JJ5JJPJNdH9kgP/ACzH5mj7Fb4A8oYHSjkYc6MfA6gD6qea
OmB1B6YHWtj7Hb5z5Qz60fY7f/nkPzNHs2HOjH5DckZ9e30penHzD2xmtf7Fb4x5Qx6UCztwMCMA
fU0ezYc6Mj14 70B9aQ45JGcdyefwrY xW/P7oc9aPsVuesQ9aXs2HOjH5HVjjODSjK9u2OnBrX
x2//ADyFAs7cDAjAH1NP2bDnRkZAxx34AHekxnOfm7nPStj7JAf WY/M0fYrfAHlDA6UezYc6MfA
6gD6qeaOmB1B6YHWtj7Hb5z5Qz60fY7f/nkPzNHs2HOjH5DckZ9e30penHzD2xmtf7Fb4x5Qx6UC
ztwMCMAfU0ezYc6Mj14 70B9aQ45JGcdyefwrY xW/P7oc9aPsVuesQ9aXs2HOjLgyLiLLE/vAKK
1VtIFYMIwCDkH3orSMbEydyDSRjSrYeiVdqppvGnQ/T tW6a2JYUjMqLuYgAdyaWo5/9WP8AfX/0
IUwD7RD/AM9o/wDvoUfaIf8AntH/AN9CvFdd8f8Aiez8Q6ja2 o7IIbqWONfIiOFWQqBkrnoKh/4
WH4p6f2kfr5EX/xNBPMj3D7RD/z2j/76FH2iH/ntH/30K8P/AOFheKCM/wBpsP8At3i/ Jp6/EHx
Oeuqf QIv/iadg50e2/aIf8AntH/AN9Cj7RD/wA9o/8AvoV4qPH/AIm76mf /EXP/jtMPxA8UqTn
Usg9P3EXH/jtFg5ke2/aIf8AntH/AN9Cj7RD/wA9o/8AvoV4XJ8RvE6OFOrY/wC2EX/xNSxfEPxO
wydTz/2wi/8AiaQcyPb/ALRD/wA9o/8AvoUfaIf e0f/AH0K8WHj/wATEH/iYn/vxH/8TTH IHic
HjUmA/64Rf8AxNOwcyPbPtEP/PaP/voUfaIf e0f/fQrxBfiF4nJIOqH/vxF/wDE1YXx74lI/wCQ
lk/9cIv/AImiwc6PZ/tEP/PaP/voUfaIf e0f/fQrxU PfFAbnUuP uEX/xNNfx/4p/h1Lnt 4i6
f98UWFzo9s 0Q/8APaP/AL6FH2iH/ntH/wB9CvED8QvFG3I1M89/Ii4/8dpG IfikDP9pEY7eRF/
8TRYfOj3D7RD/wA9o/8AvoUCeEkASoSegDCvC1 Ivipsj 1CD/17xf8AxNdv8O/Emq IYtS/tO58
7yJIPL/douMs2fugegpApJnoNFFFBQUUUUAVdO/48Ivof51aqtYDFlGPr/M1ZpLYGFRz/wCrH v
/oQqSo5/9WP99f8A0IUwPm/xOQvi/Vwrf8v8xx/20NRheOvB7Uvip2/4S7WlKgYvJiDgj/lo1V7q
8isrL7TKDtA5IqzNpplraVGSR9Se1ZN9r9lp0RZ3WRugVeSTXL674klucR20hEXcjqc1zTOznJbN
IFE6 fxxIsn7i3G3H8XrWXceK9TmjZRKE3nkoMYrDwaTFIqyLH2253lzPIzepNWoNd1CF8i5fHoT
WcUZcFgRnpQyEfw0BZHXWPjO4Uqs6Bh6jiuptNdsr2MYnVXI6N2rycEipY5WjcEdaAcUeulRksBk
HoRU0TDuD71yPh7xE0pFtOiYPGc8murHDjnjFMzaLJUMvGajZecbu1PV cbh0p7L14Ge9AirInyD
kY9DTJEIA5wfU1YkGVAIHt70yZcoPlH FAynsO3jGM9K9K EoIj1nP8Aftv/AEJ687YbV4Bz0 te
j/ChcQ6t/v23/oT0io7nqNFFFI0CiiigCvZf8eifU/zNWKgtP PZfq38zU9JbAwqOf8A1Y/31/8A
QhUlRz/6sf76/wDoQpgfNvjGRU8U6qvR2vZ9pI4 1cH4h1S6/49iybAoBCPuFdr45laTWNedUIZ
L2dV4yeJG5rySRy7ljyT3q5EuOuoqIZGwKspbR8fOCTxwOQarxnb061uWFot1DlW/egcnFZyZSKU
WlyTMQzpEQcDf3px0wQuFkkUjuQeBXQpZmS0jQnLZyFxgr7g9x7Vo2unwXEcKywFZWziVTnOPbsa
jnKUTjDDHDMImcrbycFiAw oolsXtcpO3ybuo/unow9q7G48KNeRMUjDc4V0 Uv7 lYSWUscn2G6
iZwiSFSOCwx0H40 dC5WYz6bNh2T5wvPA6j1qpsIXOOOn0r1HSfDtxDZBrmI YU6Y7elZ8/hPBmb
y9u/5wp7HuKj2qK9kzz KR4ZA6MQR3r0zw3qI1CzEbOC6DvXG6joE9szOikqOcVJ4Yu5LXUowozl
tpB7g9q1i09UZyjY9I5GMrntxUqhcDrntzQUBGVUigEjvj61ZiNYAk4Jx3xTJE6Ddz/Opw27BOP8
abJksqgD1zQBVkXJADc16L8K12xasMn79twe3zPXn7DJ4UDFeg/C37mr8fx2/wD6E1JlR3PTqKKK
RqFFFFAEFp/x7L9W/manqCy/49U p/manpLYGFRz/wCrH v/oQqSo5/9WP99f8A0IUwPmrxetuP
Emuo0h3yXdxhc/7bV4 6FGKkEEHHNeseMbRH8X6s5jJcX85Hb/lo1cFr9g8EyXSoQkuc46BquQ2l
ozHjBJxXWeH7GS4uBBjAJGSP5Vz1kiNMEk6N3r0bwrEkM5LkBjyM96ynsOO51Wm Fbe4ZBe4YKB8
oOMV0mneELFJmkEYKk/db0 vrTdOb5ASgJJ5rq9NVXIOfrXNzXZ0cuhBDoVvGrGOEDcMcD0rFvPB
mnTXZn zjfuDdOnr deiRLFtxgVHPDG69KbjpoSpa2OCl0vacFR VZt7paMhyoru7q1TgjtWJfwD
a2B0rnaaZupI8p1bTlXcTgDnGe9edrGE1MPGCpEmDj1zXsOtWjzKSqHaOM15PexfZdRmV1fCyB22
jkV2UH0OWsj0hMtGpwQdozj1pG v6Vk2fiHS7wKIrtUYgAK525/OtFZklUMjhgehU5BroOTlYZxg
d6AyZ6Y/GmMSDng/WoiPYH2pATEjng16F8Lf9Tqo/wBu3/8AQmrzXcRxjj616P8ACpt0Wr8EfvLf
/wBCagcdz1CiiikahRRRQBXsuLRPqf5mrFQWf/Hsv1P8zU9JbAwqOf8A1Y/31/8AQhUlRz/6sf76
/wDoQpgfNnik48V61tIz9un79/MasOKw/tPTJbW7OJCflYdAexrS8R2TDxtrkke4F7 4JIPH sam
W0T25ZndQDyOa1eqHPTRHGyaNLZ3rQyr8oGQwPWul0XzWljUKxZBwfauguNAj1bRi5vHim2l42Yb
kYjtxyPSuc8Masy6jJHdfIY JA3G3Fc8pKUWluOMXFq56lpW9VXcck9a6qxLquEbpzxXlVn49N7O
bfRdGvL90P8ArPup ddLbX/i /to1VNK0qRjhzNIZCPoB/jXJyu p1J3PS7VJsA7iRU8rmIfMRjP
PPSvJ7rXoNIuEOq NLq4kjjw1ra2mI29/WnW2hQtPDqQutZLXCebGJ7onAP z2 hpyslqJWuemTu
OorlfEfiix0Xy4XikuLyc4ht4l3O5PYAVxV34l8QeHdVi0KyvY9TEsJ8lblS8/mDoARweo69KzNB
uNRn8X3Nj4qjlt7 5t/9GeMhT/tBG7Z6cU4x6gamt6nqDOY7ua0sEZf9W8oMqsexVc4/E15nrWmz
2sq3FxeyXCTOA0gG049q9eg8N2VlA9vZ2O0SNudpGL5PqSeprivHVittp5UdEwfxohU96xM6bauz
nNQ8L2MMBuIHk8vb8wfk89CDSeEhex3kQLv9nlRnZe2BwCR61fuZWn8NIFYGR4VCrn5mOew781pa
TbeTECp VI0hXA646n8660jjbNMvgDJ/TrTD83Qr/jTn5wM1CSV4qiRjKTxkV6R8Js XrGSP9Zbd
P95683Y8jpmvSPhN/qtY6f6y2/8AQnpDjuep0UUUGgUUUUAQWf8Ax6r9T/M1PUFn/wAey/Vv5mp6
S2BhUc/ rH v/oQqSo5/wDVj/fX/wBCFMD5f8UTeb421t1uJNqX86GMcDIkasuW8eYYgVGYHkOa
3fFNnE/i/WXErI32 ckDkH941ZcbxCdoHhdGB4bblW hrZIftE/kaOia8dLI81gYf416496q JdF
nvbs6zo0a3VvdjbNFARluOo9/akj06OORmifIY5KkVc0/wC1288kqxfZY4zu87dw3vgVEqLk7xN6
MZ1XyQV/0D4b6nFbWs2n7TG8cp3Iww3416jarbTOJDEhYHIOK8iuba6uNTPiDTmSd3/1yL8pkx/E
BXV6P4rZI1Emm6h5noIgf1zXDiMPUjK51OlKlpNHpK20RXK2lq RjLRAmiLTEjd7qc/IqkkAYGBW
NZeJdSkh/wBH0Z0PUNczKgH1AyaiuDqutxPZ6hexQ2sg2yRWWQSPTeeax5J/aZLXVHP/AA60z 0P
Fl7r05Bjt1e3t2J /K5zIR64HFa/jnQ0aOOZ4yskThoZ4x80LdmHt7Vt6dpMemWsUFr5KRQcQkHG
0emKz9c1MSwP/aF9GxR8eTF1atbNqxKTRhw61rscAhXT7e9KKB9o 0eXuPckY4rhPGl9qc6eVciz
RnOBFFlz JOK7W4vorLTpbuWSOK35wnf6mvPWkudW1oXrQf6PG4VUc8 uT6VdKl72iM5vQk0rTtP
gZFnmea6CgsDxs9h6CuhAAGE UAYAUYH4VVuXsrUtM 0E9XA5plxJdSQo1m0ZVvvEnt7V38hx8t9
iaaZIvvEgeyk/wAqMEoDzg88imS3iW xJnILnA46mo7u9jgjWVw7oTjCDmp5SWnstwlkVAMuAT0B
716V8JGJi1jPXzLb/wBCevMZ0hvdkrRnCfd7EV6d8JAoh1gKMfPbZ5/2nqXHqUkkeqUUUVJQUUUU
AQWfNsv1P8zU9QWfFqv1P8zU9JbAwqOf/Vj/AH1/9CFSVHP/AKsf76/ hCmB8geMtfvYPHXiGKPy
gqancqPl54laspPFN AQVhYem0/41N41iLfEDxHxnOqXXA6/61qy47ZguTGUUHliOlHPJFqCNm38
RXc7pGUEeWALIc45712evzLDo80EfzyyhY4wOuTXI HNIGv3D2qXX2VIcMzBMs/PavTrPTobcRhx
9qlj58 RcH8BXbhozlBvue9llKSozsvi2Zn6Zol7B4fgvIZ3FvIpSR40/wBWwPqeozxmn29leW0e
6Qq2DjevAb3rorTXtRs9On0 zEPkAkmN03YU88A/yqOGaIoUwY43HDryAD/StFh/ae7UWx20cNP2
fs60fh8 hUh1I26f6QjBV6nt dXbbVrK KeXcDys/eU9fxprWasrLEokjI 5ndkVhvpkNnMzW0OE
I5hzgD6elcdXALV0nt0OergFO7ou/l1Ovmt0m2GEmRAc7HclTVW8soYrZnuZ4IIxksI0Ax9TXJvc
XsS5tkmXtjzhiud1qS mYS3F1K6KeU3ZxXGlJPlloeZyyT5JOxp6iH1e6gl8sppUWWhZ BOwPUD0
H86bLbyOs0kEhiuWUlOBhmHYj1PSle4mt7W1Dzebbl/lyuPvDgj0qDULt4ERkC7mYKoPdvb27mvW
p04Qp2PTVClDDvm1RWt9U86BBIjzMRz8mBn0qZpPMdZHEse3jar8flWabd7eBYDOpiBJ8zPG7/8A
XUVxFqPlpOsglUd045 neuRysfNPRuxrm7WRgpjLlehPOKha lMojUQlR2JOawZL2/TKsXQ/7uKp
STzyuXkeQsO 6odRAux1c108WC5UA 5r034MOHj1xg24F7Xvn J68FZywG Qn6tXs/wBKmPxFhs/
PZ9/9qSp576CWx7lRRRTAKKKKAILP/j2X6t/M1PUFn/x7L9W/manpLYGFRz/AOrH v/AKEKkqOf
/Vj/AH1/9CFMD5T8T2gj8b684j3SNqVy2T0A81qoCBpsJ1UH527Cug8Ztnxbq8YwP9NnJbH/AE0a
si3jnmP2eAYUsBv6DP1q1roi4puyW7Nfwwsa3s7wEupUDcRjFdVbTOd44JX5ce9ZdpYJpmlRpujD
rkM6nlh159cVp2YInfvHtBBPcmvXoLlio9T7XBU1Sw6pt6lshV8uR8K4bt6d6W5uYIYG8mFGYDIw
MCmNKGLgKcJ1zVVP9KtMuMKcggDGB6VudCgm7yIbS6uZ5WZChRDksF6H2xVi6aSZjKXcoo3PGMdu
4Pp7VHArrCq2xdYlPOwD9at2dt/aE0FusgRnDKEP8bdRk mM8etYVIQavIzxUaavKWnmZkpUrx8w
PY1h6lFD5TmSRo07kjOK3rzgyRMjLLH1yMEViahE01uwxlivT3rza9OontzLueTjaVWLTtzx79SX
y/tugWN284khhDW8ceMP8vRm9uayZ/Ja4tyJG82LLPjkKh/qf6VtaHZR3mhm1aFFmtxLNPc7 UQD
O1R3JrAhNsLuOe7eVYpkCN5SbiW6/wCNW5fu7HPUlKWFlBLVEi20RYlsSRnnHTH/ANenS28CoVid
th/g3GtZ7OLTblzbxSXECKHzIuEhBGck/wAQHcVbSNH0mK7jWG MmSjliBuz2zzgc1zcyR4ji0ub
ocoU2Aruyh9efzFVJbSzkUlol3/31GK6yPRXninljgNvcY/c28hAJI/iB64PvWHNbQyKWLxod20u
pyu/upHY 9S7MTjKJiSaLKI/MiYEHsy4NeufAa3lgTxCJUK5e0xx1 aSvMZVljdYZdyEHhg2VYV7
D8G4THbaw5BAd7bGf956XJbUk9booopgFFFFAEFp/wAey/Vv5mp6gs/ PVfqf5mp6S2BhUc/ rH
v8A6EKkqOf/AFY/31/9CFMD5s8U2k0njDWCIwQbyfoe3mNWfa2xuLhLeJSEXBJz0NWfFV1cP421
qKNdub2ZCR02 YR dOjzY2bF0y5Xgt39hXRQjeV h6eXUXKteXTUjmXzdaeEAmK3 VR2z1JrrLCX
ckayru2jAI4Nclpg81mnJJeRs5PpXS2zYAz2rlliZxqOcXY2niZxqOcXZmsYY2jcZ2gn8x71Wlm8
pkjiyecufb0qKS6IXg1UW6YvsHl5bjc3ataOKnOolOWh0YfGTlUSqy0uPWRYkMKHdJuO7aeFPXH1
p/2mVzhByhAyOo9KgkaNpUS3UbI/lbb0Lev1xUCtJa3UjhiXBwQehHY17N4yXkfRx5ake50b63da
lc2Wl3NhBOkgYPdFgsmFGQD6n dc1KLTzQ8oGzJVgXwFzxu/A1qTeVM1qwIE0TiWMqeVb1zXN6qt
xbzzuVYxMd4mZRgtnJ9utc0qfI3bY86FBUlOK0T29TVsrm1 y3SWTfZ9QS2MflImdw/ic/X07AVz
S20cUkImMgh80PmM4br0FdDNcW2k3Fre2qNK09uHuVAyBno2e309q56/nW6lMEefLJ 9jB2n Vc0
dmebhFFxqb6o627s9UudLIgt4Le9kbax37kZc9Dn2NIt9Yw2E xYza2Y2uyDCxyDggjqOe4qrHDN
pxnvoLiW7aQpFFbOxA3DA59OM06TUNNmmbTZEMH71lmjlXidsevUjPeuNnhtJ6LVJ9COztvNnj1e
4m 06jDAWVos7GU52jHGfSmXOn2l0ryNZRo7olwbYLhgxzkn8Ks3cSPbxxi3XyIyMncclF5AUD3G
MVUn3XUc/kB4GuIhsO3c28cnOe2D0pXIlNy1v1Of1qyntJvJEKtZu2YJQc7cevpXqXwb80QaykrZ
2vagY6D5nrzqUXH22 t51nUeSipISPLZhx8q /oK9J EQEf9twLIjeW9qCoPKnL5 lVfUUo8rses
UUUUxBRRRQBBZ8Wqj3P8zU9QWf8Ax6r9T/M1PSWwMKiuCBECTgBlyT/vCpaKYHjmqfC/Ub/xBqWo
rqGm7Lm5kljVpmBCsxYZ XrzUd18MNZuLYxrf6Qrk8N578D/AL4717PRVxqSjsdFDFVKN TqeK2f
ws1i3RVbU9KOPSZ//iK0k HuqrjOo6b/AN/m/wDia9YorF04sz9rI8of4fao3/MQ0z/v83/xNU7n
4a6zJEyxalpQY9zM/wD8RXsdFCppAqskeR6b8OtVsnMb6hpbWzKA6iZs5HcfL1qS4 HmqSXW9NR0
3y p3Stk46fw16Xq pxaLpF1qU8cskNtGZHWIAttHXAJA/Wqx8Q2g1xNK2TeY8HnibA8vHJ25znd
gE9MY710xxM4qyO6nm2IppKLX3Hm4 G qidW/tDSzH1IMzZH0 Wpb74danPp08EWpaaZZBsDPKwC
qevReuK9L0fVIdb0i21K3jljhuF3osoAbGeDwT169abqur2 jx2r3CSsLm5jtU8sA4ZzgE5I49ap
4io/dZUs4xMlq19x5RB8M/EK2T6e2s6XHaMjgFJXZwTjjlRxUEnwq1x7hd2qaS8ChV5mcMygY5 T
rXsEOs6XcXn2OHUrOS6 b9wk6l/lJB UHPBBB hq9WXO737nMsbVV7W1PIU8BeJlmiJ1bRiiAgje
2Tnv93qKY/w41y7jm 26ppLyF/3To7AqnYZ28HrmvYaKzscqbTujxy0 F2oW08TjUtOKwxlUDTu5
yxyTkrxRF8NfEEd2C2vadLbsWLhnYMM9Ap28V7HRRYbk3ueOD4aa2qzB9X0y53PmMSyMvlj8F5Nd
R4E8M3nhyG9bUZtPe6u5Ic/Y5CwO1jycqDn5q7uiixPmFFFFMAooooAgs/8Aj1X6n ZqeoLP/j2X
6t/M1PSWwMKKKKYBRRRQAUUUUAFFFFAEF9aR31hcWkoBjniaNgfQjFcJHofiJfCnntaA64s42wid
cFRD9nzuzjGMvjOfxr0KilbfzHcw4dX8P H7W30mfWdOtpLSJIvKluo0ZQFGMgkY45rL1GLVfEF3
Zwi1ik06PUYb23v4JUMTQIAwB YsXLZHC7cEc12FFVfXme/9MlKysjzjQbG81E2qQ2JjhtNfurt7
3em0qJJVKYzu3HIHTGO/avR6KKS2t/Xb9B9b/wBb3/UKKKKACiiigAooooAKKKKACiiigCCz/wCP
Vfqf5mp6gs/ PZfqf5mp6S2BhRTRHGJDIEUORgtjk/jTRBCIzGIowhOSu0YP4UwJKKYYYjszGh2f
c UfL9PSlEcYkMgRQ5GC2OT NADqKjEEIjMYijCE5K7Rg/hSmGI7Mxodn3PlHy/T0oAfRTRHGJDI
EUORgtjk/jTRBCIzGIowhOSu0YP4UASUUwwxHZmNDs 58o X6elKI4xIZAihyMFscn8aAHUVGIIR
GYxFGEJyV2jB/ClMMR2ZjQ7PufKPl npQA imiOMSGQIocjBbHJ/GmiCERmMRRhCcldowfwoAkop
hhiOzMaHZ9z5R8v09KURxiQyBFDkYLY5P40AOoqMQQiMxiKMITkrtGD FKYYjszGh2fc UfL9PSg
B9FNEcYkMgRQ5GC2OT NNEEIjMYijCE5K7Rg/hQBJRTDDEdmY0Oz7nyj5fp6UojjEhkCKHIwWxyf
xoAdRRRQBXsv PRPqf5mrFQWfFqo9z/M1PSWwMyvEOu2/h3R5dQuFLhSFRAcF2PQZ7ev0BrymX4z
auZG8q0sVTPAaF2I/HzBn8q6v4wHHhG2/wCvwf8AoqSvJ/A8Uc3jPTFlVWQSF2DAEYVS3f6Vz1JS
5 VM66UIez5mrnVf8Ll1r/n20/8A8B3/APjtL/wuXWv fXT/APwHf/47XFXNpHoeuvBqdtHfqAH8
q1nKK24ZXDbc9xxitrx1o8OnXUUenaNFa2kMaebOlyZWLsM4YFjtGcgEgZ/QRedm77Glqd0uXc9b
8E N4vFkMsckKw3kIDMqnKsvTIz056j3HNdbXiPwZP8AxU1yP nOT/0OKvbq6KUnKOpy1oqM7IKK
KK0MgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAILP8A49l rfzNT1BZ/wDHqv1P8zU9
JbAzz74w/wDIo23/AF j/wBFSV4/BfwxxB7VSlxBp80chxj5mJAbPc4f9K9h MEbv4OhZVJCXisx
HYbHH8yPzrwoTLFbXKlC5lj2DH 8D/SuabtUO2kr0y7pjz6l4kguL6YzzTTo8rsOoGOPyGK1tc1H
T7S01JI4QdT1GXazGYySbA4bc/OF 6MKOnHvXOJO0KELbwSk/wDPUE4/Wljv9Qj/ANTLDbj 7DCq
j9BSjJJalSg21boei/Bn/kaLn/ryk/8AQ4q9vrxH4LRSHxHdyHLKtmys3uXTH8j Ve3VrR E58R8
YUUUVsYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAQWf/Hsv1b ZqeoLPm1X6n Zqek
tgZBe2VtqNnLZ3kKzW8q7XRuhFcNJ8HvDkkjMs oRgnIVZEIH5oT tegUUpQjLdFRnKOzPPf FOe
Hf8An71L/v5H/wDEUf8ACnPDv/P3qX/fyP8A Ir0Kip9lDsV7afcydB8OaZ4bs2ttOhKBzl3Y5Zz
7n nStaiirSSVkQ227sKKKKYgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAILP8A49l
rfzNT1BZ/wDHsv1b ZqektgYVi3 tSWlvf3EEa3cECvmW2KObdlX5lkUuuSOvynPOMDALbVc9eaf
qL3GpwiKN7C9fzZNjfvGQRxo0eCQAWCMoOejk7lKgMwJLTxEL7Smulg8lt8cAZZYrhBK7BQMxvyF
LKTnaSDxVa48TTsFGntot02 FWWPUS7De6IflCdMtjdn0OP4anaxvLi2upTbNG9zqVtciF2XciI0
Ibdglc4jY8E8Y78VVuPD8tp/Z0VvJf3qwNDFH5jQhIIlmhds4CsTiIY 9096AN DULW5vrqyil3X
Fps85NpG3cMrzjByPSpbm4W1tpJ3WVlQZKxRtIx iqCSfpUUH277ddfaPs32P5Ps3l7vM6fPvzx1
6Y7VaoAw7XXby/0iG6tdKcXMtxLAIJpdqx7GZSZHUNt 52DckDnrTF1 7nihjtdOie ZphLE9ziN
PKYK HCndyRgFRnnO3GKhm0vW7fRfsenva75LyaWcm4eI U8jvhHCMVb5gCccc4OcESf2dqkKWNz
aWWnQXEEUlu1t9ocxhGKkMH8vJIKjjbzk896Hu7Ddhtz4qIt1u7OzSa1S0jvZ2ln8t1ifONi7Tub
5W4JUZwM88Pl8SH/AIST yIDpe9WQMs oeXOcjcdkWw7sKfUZ9utZt54Ru/s9vbW32S4WKyS1iuL
l2SSydcgzRAKfmOQeCh QfN6a9zp9/Ncy2629gLOaSOWS5V2SbK7eqbSHPygbtwwMccc07X0E7dC
LWPEb6PpltPdwfZ7h5MzoFacRQo2ZZf3Y3FNo4bbwXj3BckDT03VbTVY5ntTN 5k8qRZoHhZG2q2
CrgHoynp3rJk0/UtR0 a0u1dF1OZnug8gZbe3 VfIUAk7njAB2nAZpGDcKG1tL 2rZLDqHz3MOI2
nG0C4wB 8AH3c91wMHIGQAxkC7RRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEFp/wAey/Vv5mp6gs b
Zfq38zU9JbAwoorm5/GFrFqUlkkSvJFKsTR/aYvMkZnKKI1DEE5HzBihUYJHamB0lFZkWtRl7lLq
1ubNrdI3ZZtjFg5ZV27GbJJUjHUnGAc1KL WP7F9rtvs4uExITIGEMp27YyR1ySwDcDIA6sBQBeo
qJLmCWeWCOaN5ocebGrgsmRkZHbI6Zpt5cS21s0sNnPduCMRQlAx/wC 2UfrQBPRWJb I0ntJJf7
NvY5VuDbJbsYi80gGSEIkKHGGzlhgqR2p9/4lsdK0YalfpPb5ViLZ4/3zMucqFB5IwTkHbjnOOaA
8jYoqlNqG3UrWyhi86STLz4bHkRbWw7fVgFA4J YjIRsFhf/AGuS5gli8i6t5GV4S2Ts3ERyDjlX
UZ44B3LnKnABdooooAKKKKACiiigAooooAKKKKACiiigAooooAgs/wDj1T6n ZqeoLP/AI9l rfz
NT0lsDCuNvdMupdc1Hzxdyz3UURthGZRbgo8mwMwxsC4ikOCG3btud209lRTAwI7CCzudR8yzu5m
2xmGUSyyuylWUKruxKuGaTJBUBXBJHJEEOkvDd2NvJJe3Ds8j3ayTzSweSyyAIS52NglF6biBuwO
a6aigCjaq41XUGbTY7dT5e27VlLXPy85AGRt6DP4VPeNOljcNbR ZcCNjEmQNzY4HPHWp6KTV9Bp
2Zzt7oaJomm25sm1BLJg0lsSuZ8oytncQrHLbjuODzTX0q8Pga/05INs80E6wW2VHlK 4pFkHaNo
IXg4GODiukoqr63BO1vI57V9JGo3cFrbC7tZN6XFzdW88sClQVBU7CvmOyx7O xecj5Qy GrQK19
c7LtoTcn7C98ZWmWExxBx 9/eKpkRjg4zgHpg10FFISVgooooAKKKKACiiigAooooAKKKKACiiig
AooooAgs/wDj1X6n ZqeoLP/AI9V p/manpLYGFc9d6/e29nrsqabIx092WI5TaQIg 5vnyRk545
wy8Zzjoa5K98PT30GrQrZQo99fcTXaLMVi8oL5gO/IIO/YO2QMKCSGBq2muKbeeW/T7OqXUsETkj
E5WR1CooJYthOmASegNRabrN9eXUEbWlsYpd7s0czeZBHltvmIVwrZGwjdncGwMKcN0zSL61S9ZH
tLWS5u5XaRLYGUxmSQglt2C2GBUkYXoVNZMmlX8VjqKJZa1LqMrzlLtNQVEdiSI3KiVRwoQY2jpj
FAHVwaha3N9dWUUu64tNnnJtI27hlecYOR6VJdtdJbO1nDDNcDGxJpTGp55ywViOM9j/AFqOD7d9
uuvtH2b7H8n2by93mdPn35469MdqL7TbHVIFg1CytruJW3iO4iWRQ2CM4IPOCfzoAzNK1HWNR1K6
iuLexs4rGbyJkjkedpmMSyDaxCbAA69VbPI XGTy3iTx7qOka5qFlDLpyJb3MEKLMsZYq6xksd1z
G3G9uibeOWHJG7p3gvRI77VmufD2lmKS7VrbdaxMBH5MQOBj5RvD8cc5PfNUvEtvrmoyvHaW vrG
t3A6pG1gIdscqMWXcd cKWAbvgEYyKALvhnxLe6vo oXclul7JbXfkRpY UpkXZG3/PZ0yC5/wCW
nQevFWbLX799YFjf6Jd2ouZG yuWhbEaxqWMgSViPnyMgY aMHk0y1fW30u4tUi1SO7lbZHeaibQ
SGU/OFhOGC4yFIyWYDIXJUtZNT0ue4a50W51C7mbL3lnNDtdATtXbI6GMDJwg3AZzuZmYkAL/xQ
2m6pdrJYXNxpsDW9u9xbIGaKeRuVZSwZhtkgI2K33j1IwNDw7qn9t G9N1MvCz3NskknknKq5HzK
OT0bIxnIxiqv9hxTeJ4dR yJbxWSyeXsIH2iWTkyEKeih5QN2SWlkOBwWk8L6T/ZWgafHLB5N59i
t4rlQ QXSMLkgHaW4xuHJCqMkAYANmiiigAooooAKKKKACiiigAooooAKKKKAILP/j2X6n ZqeoL
P/j1X6n ZqektgYUUxZom27ZEO/O3DD5sdcULNE23bIh3524YfNjrimA imLNE23bIh3524YfNjr
ihZom27ZEO/O3DD5sdcUAPopizRNt2yId duGHzY64oWaJtu2RDvztww bHXFAD6KYs0TbdsiHfn
bhh82OuKFmibbtkQ787cMPmx1xQA imLNE23bIh3524YfNjrihZom27ZEO/O3DD5sdcUAPopizRN
t2yId duGHzY64oWaJtu2RDvztww bHXFAD6KYs0TbdsiHfnbhh82OuKFmibbtkQ787cMPmx1xQA
imLNE23bIh3524YfNjrihZom27ZEO/O3DD5sdcUAPopizRNt2yId duGHzY64oWaJtu2RDvztww
bHXFAD6KYs0TbdsiHfnbhh82OuKFmibbtkQ787cMPmx1xQA imLNE23bIh3524YfNjrilWSNwCj
qwIJGDnOOtADqKKKAILPm1X6n Zqeq9l/wAeifj/ADNWKS2BhWZc6/p9pPLDK1yWidY3MdpK6h2C
lV3KpGTuXjPcVp159rdqLy91HUI1hnitmuJ2jfbkqqQxkjfFIoO CRRkKTtJBIBpgdrBqdtPFNL
hjhXdI9zbyQADnnLqMgYOfSnHULUac9 ZcW0aM7vtOVC53ZGMgjBBGMggjGa5JNLkstFvdPa4W3
kk1K2MkduEx5chijwQYlUqcN0XBwQc/MCXsdydPv2ukYXUelXzXBcRh8SMBCX2fKWKQkcdNvPagD
t6bJIkUbSSOqIgLMzHAAHUk1nWMlq2uaqkV9czXCeT51vIxMcGVO3YMYG4cnBPPpTPEiu2iuVl8l
UlikkkIyERZFLE wAJ54454pMa3JX8QaLFYxXsmr2CWkrFY52uUEbkdQGzgng/lUMvirw/Ctu8ut
WCRXKu0MpuF8t9hUMA duQWHGc9fQ1mWmpPBoWqXNpcxXn78R2l8fLxcu6ooZjGFVsOdmQOi46iu
e8bWml6NJonkXEkWoJKqSS/aXTMYjnIZz50ShmdnwxdWbL43fMtVYR3Fr4i0W9vWsbfVLR7xZJIj
beaBLuQkMNh bjae3QZ6c1p15H4E1PTZfFFgILm5 eE2sUCTELxH5ib0N5K21E3gDbtVnIOGHHrl
ICK4uYLSBp7maOGFcbpJHCqMnAyT71WtdZ06 ht5bW7jmS4fy4yhz8 wvtP907QTg4pmuxGfRbmH
zGjWRQjlbdpiVJAZdifMQRkcYIznIxXDSWV5qmm6Ne3ohnujbhYYJVhWa4wi7SpZZi4 d927aBwx
C4JoA7y91rTNNnjgvb 2t5ZPurJIFOME5PoPlPJ4zx1qSz1C11BN1tLvBRJBlSpKOMq2CBwR39QR
1BA4HxE/9neILW2W jMESIioLryzE3lkZKCeMIdqjBUIpEpHXAOton2O10aSObUJogli8ZeK6mkK
rGqiSVQSVUHcjJhc7SpHDYAB2VVbvU9PsJYYry treSdtsKTSqhkPHCgnk8jp60aa0T6XaNBPJcQ
mFCk0pJeRdowzZxyRya5zxHq2jw6hPpU13Y2t3e2wS5nvJlRY4PmAwGOGYktgDju3YFDSNe48T6H
aXF5bXGp20dzZqzzQM37wKIxISE 8w2HPyg9 4NWbDWNM1XzP7O1G0vPKx5n2edZNmc4ztJxnB/K
vJ/Ekuj6b4nuo7O6cWzRwM2bqTa0/wBolJZc3UIIVzkldyowYnYQ2eo Gd9aXUGpJbXFzMzNHckS
S7kjWQMQoXz5irFlkZtxDZfkdMMSO9ooooAKKKKACiiigCCz/wCPVfqf5mp6gs/ PZfqf5mp6S2B
hUVxbQXcDQXMMc0LY3RyIGU4ORkH3qWs6/1YafFNI9ldyrCy7jGFA2t/HuZgNoOQecjGSAvNMC5c
W0F3A0FzDHNC2N0ciBlODkZB96pjQNGETRDSbARswZk zJgkZwSMdRk/mabDrto1rJcXh/s9EmMG
buSNQzgZIDBip7jg9VYdjUUXirQpZJ0/tWyTynCbnuEAf5Q2V55HzYz6g lAGxRRUN1cw2dtJcTv
siQZJwSfoAOST0AHJNAE1MeGKV43kjR2ibfGWUEo2CuR6HBI hPrWNd LNKs7e2nke4ZbibydiWz
mWM9MtFjeBuZF 71kT 8KS38W6Zc6gtkiX3mu22I/YZisgG0MdwUhQrOEbdgqwIYCgDTh02xtxGI
LK2iEbB0CRKu1gnlgjA4IT5f93jpVqiigAqIW0AgSAQxiGPbsj2Dau0grgdsEDHpgU29u47Gzlup
QxiiXfIVGSqjq30AyeOeOATxWdf IE0 4aJrG5lUP5fmpJCEDCMyEHdICuFBPzAfqMgGnPbQXSBL
iGOVRn5ZEDDkFT19QSPoTR9mg 1favJj 0bPL83YN zOdueuM84qL7aqc3EUluoh85nlxsQD7wZg
SARxnJwc8E4OCwvotRtVniWSM9HimQpJG2AdrKehwR BBGQQaALVFFVb7UrPTVhN5cJD58qwRBjy
7scBQO5//X0FAEklnayyNJJbQu7bMsyAk7G3Jz/ssSR6E5FEFna2uPs9tDDiNIh5aBcIudq8fwjJ
wOgyarz6vZW19HZyyOJZCFBETlFJ6BnA2qT2BIJyMdazbzxpolle3Fs080/2WNpLqW1geeO2wcbZ
DGDsbhzg9AhzjjIB0FFFFABRRRQAUUUUAQWf/Hsv1b ZqeoLP/j2X6t/M1PSWwMK4 80 8N5qaWm
myGFr3zeDiOUNDHuzH5sYkBZW3FiRk4w2W29hRTA5Twtd/YtBiutS8yDz0iMRdvkkyuQsUYkfnrh
VVM5AC8YEtg8WmPZyX5ktrW2tTbWk00ZRTGSvMrdEbCRgBtuc rFE6aigDMsY7Vdc1V4rG5huH8n
zriRSI58Kduw5wdo4OAOfWjX45H0vfFE8phnhnaNBlmVJFZsDucAkAckjitOijzA808WW0F1pF9e
y6TLM93qVu9o8tmd8KbreNyQ6MV3Fdu3YzNn7jAHHPaHLZr4isZn0PJtb2JQTbJGAzzPbhiVso/u
sCwDMvIA 8pVfbKKACiiigDO16OaTw/qC25mE4t3aLyGZX3gErgrznIHHfpWBqmjDUr/AE65kvdR
jF5deWY5FiXbGsc7KNuzoQWG1skqxDDPTsKKAON1xDFc6sjS388kOlLPG/nMEjkCzfvCoIQNlIyM
DO4bgBgkXobvT9Si1NpHXUZVtP8ASFsXDqY33YhUqQXYbGwW5y5I2hto6SigCrpqxJpdosEElvCI
UCQygh412jCtnPIHBrO8R2CXFvbzx2iy3SXVsBIse51jE8bNzjIXjJ7cZrbopp2afYEzk7q2mg8Q
TtB9v 2z3cU0JQS/ZvK2xrJvK/u87Uf7/PTHauP1C4ur2806W40tPEBMxjjv01GQrEApl/ctFBGu
4GIsWiV3 RkPJUV65RS6WBmF4Uurm70uV7q S7lWYqSJlkaP5V RwIYtjA5yrLuGeT2G7RRQAUUU
UAFFFFAEFnxar9T/ADNT1BZ/8ey/Vv5mp6S2BhRRRTAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigDMSSVF2rIQPTA/wpRcT5x5p/If4U0EnHA9ssB7etIQewX/vtf8A
Gue8zX3SXzpv ezfkP8ACk8 fP8ArT Q/wAKiGQf4c/76/4045OPu/8Afa/40XmFojvtEw/5bH8h
/hS fMRnzW/If4VGVz2HH 2v NKM9tv/AH2v NF5haI77RPnHmn8h/hSiab/AJ6t Q/wqMHJwNv/
AH8X/Gghjx8v/fa/40XmFokhmnA4lP5D/CozdXA6yn8h/hSk467R/wBtF/xpMbugU/8AA1/xovML
RHrcTMP9a2foP8KPtE3/AD1P5D/CocMW Up/38X/ABp Dn H/vtf8aLzC0R5uJlGTK35D/Cmi6uD
/wAtT Q/wpjAk4 T/v4v NAU99uOn31/xovMLRJRcT7c afyH FH2mYjiU/kP8KYAQMfL/32v NN
2nPG3B/21/xovMLRJPtMw6zH8h/hR9pnz/rT Q/wqPG4Y Q/9tF/xo2Nkfd/77X/ABovMLRJvPn/
AOep/If4UhuJx/y1P5D/AApmdvB2j/tov NH3um0/wDA1/xovMLRJRPN/wA9m/If4UhmnHSU/kP8
Ki5J42n/ALaL/jTvm6EL/wB9r/jReYWiPM8w/wCWx/If4UC4mJ/1x/If4VH7Hbn/AH1/xoAIH8P/
AH2v NF5haI83E4/5an8h/hRTcMxAABPpvX/ABop HukEp4izk5U8Dv8xrm7/xv4esPs3/Eys7n
z51gxbzxv5e7Pzv83CDHJ7V0kmcR/wC4QD77jXmfieYavqc154b8zUWewk0 /aGHzYo4DhyY23KH
l bhAWz7Y5OoLY7iPXdLnhkntL2K9jhx5gsz9odM8D5Y8tzz27H0rJtfHui3U6RxC/KyqfssosZW
W6IGX8vapJ24wcgYqpetoWpeCJdJs2 2/Z4TaRI9q8stvIqNGrSRqheM5U87R7da4Kx0xLnUbXTp
LDI0q4tpLtxp7P5yYyRtS1WTkdpGwf8Aa 8BIZ69qWs22lXOnwSRyyzX1wIIkhAZ mWcjIO1erEZ
xkU2w16zvH1FW32raZK0dyLnCFVAyJOv3CMkMcZANc1rsSQ3lr/wjEr22v3kCJFGsKlYrZSOZFkU
mGNRnhQpLHoxHEWkn 0Nd8Q6gdS 1xafbpFY6k0kca4aMvIGkRNjBW2n5lYLwceqsBPd/FDw5Z3E
ltI08jIzgtEqSIwChlIZWIIbOB3B 9trqtO1K01S0S5s7lJYjwwjlWTY2AShKkjIyOhNeVXaRT3U
l4 g2et2tuztqOqG ebmRQOHRFGEXBIRHCDGNpya9F8LTPLpBV9Rj1Exy7FljvFucAKvBdY0ye/I
J5zk54bSsCNzofQ gGaOuOeT0YUEkZyCBnOcZoB4B/L3NSAhPIPPzDoO5peOmEJ9KOhAHYYz70mR
jGQAMdeooAUfeU9s9 ooHQY67ePrQckcdS2RSD8SOuQOhoAUYBB4A9fWheCM8YBz7UmR13Ln1A5o
xuyMcYz160AAHygEfgRQeMHc20/n9KXtjkZPANITycDOGzgUDF6H0PoBmjrjnk9GFBJGcggZznGa
AeAfy9zQIQnkHn5h0Hc0vHTCE lHQgDsMZ96TIxjIAGOvUUAKPvKe2e/UUDoMddvH1oOSOOpbIpB
JHXIHQ0ASQY 0RYwBvHPrRRAR9oi5XJYdBz1orWnsRMe8UjojIjOMEEAf7RpBbz4 4/4rzWlZ/8
eq/U/wAzU9HInqHMYv2ef5sxSc4HI7UG3n/54yZ7Y7VtUUezQc5i/Z5 0T/eJ6UfZpiP9U49iOlb
VFHs0HOzF zTjpEwz1wOaPs82B 5k/3QK2qKPZoOdmKLebP pdfccij7NPnIiZc9eK2qKPZoOdmJ
9mmAJED4/u4604W8 PuP K81s0UezQc7MX7PP82YpOcDkdqDbz/88ZM9sdq2qKPZoOcxfs8/aJ/v
E9KPs0xH qcexHStqij2aDnZi/Zpx0iYZ64HNH2ebA/cyf7oFbVFHs0HOzFFvNn/AFLr7jkUfZp8
5ETLnrxW1RR7NBzsxPs0wBIgfH93HWnC3nx9x/xXmtmij2aDnZi/Z5/mzFJzgcjtQbef/njJntjt
W1RR7NBzmRFBMJ4yY2AEgOSO1Fa9FVGNiW7kFn/x7L9W/manqCz/AOPVfqf5mpmG5Sp7jFNbB1Mp
dfjMqsbK7WyZwi3zBBExJwON2/BPAO3B65wQaz9Z8S6lpCWWdGSSS5byxEs0rtvBO7b5cLgqFBcE
kMVB XIIqbT21eytbXSU0wj7Pti 2tInktGvG4KG37io6bQAe Bk8lLp1zFNbW/2C7sLOC4vjBNF
FdyBSJ22bYrd1CApKwDnkgEYC4LZTk0vdNIxi3qdfH4hkGjQ309pue6j821WzS4uUdSoKlmWHKZz
3X8 QG6X4llupvKvdOuLdmZViMVrdupJ4O5ngQKOnOcdc4xWOlo8Xw3kg wXEpM3lrbtFKx8tZwi
MIp1mZV2Kr7drYGcAHmofBlobTXpP JY0CNavmf7GIVGGT5SfskJJPJwGI U5HQ0ueV0h8kbNnfV
xtx8QFtr awk0a4S8S6ht1t3u7YSN5nl87fMzn5 MZHHLLzt15vEeh3cElrba1pstxMpjjjTUFRn
YjAAZSWUk9wMjtXDyWii8FobTWprSfMtxf79TSUSgx7XWMxsMpg7Ad/Ea7mBHzOpN2XKxU4L7SO
m1p4L ws20u9aS8UNlWiIi/vbx5mcLxkgEZZQCSQDUh8XWUlxah43ht7q1huY5pGUBFkjmk fnCg
LAcnJ5PoM1iX3h2 u7nw9dxWn2n7PtMss9zKTGPtMEgdVmJYOUWTKnkDKlm2qDlaPaxJq2nT/wBh
3FqzWMK3ssWkSQMrCC587YyxgqxYxDKYJ4Az0qXOSlYahFq52Fn4wsJ7Dz7mG9tZoljFzC9lOTFK
wCPOwbmzIuAOSDnGK0bTU11BLeeyieW0laRHkYGN4mQkYZHAOMqynuDjggkjljoF7aR3VxDY3sr
3F1bXawtqLSsixywlo2Ej7S 2PcGyf4k3YVS5Npd9bWmm6rBo6DVYtSuZDvVHlSGVrjaCVPIzKh2
hguTyygFhSnPqJxj0NXTvEOpXa6NPc6ZaQ2uq48to71pHTMLSjKmJR0TH3u/et64njtbd55SdiDJ
wMk w965vT9AXSb7SjJbyyImUiWK7uJY7N9j44dypTyyU3YXDYwPnwm1rKM2n7lBYRSxSsAMkqrq
x/QGrhzW94mVr 6JJqwhuUiks7pImZYzOyqEV26L97J5IGQCMnr1w6LUlmuzDHa3DR7mQXAVTGWX
qvXI5BGSAMjGap6glxfXUAis5T5ciSQ3S3C TtyCSy5yTgED5TjIII6iC20p7fVkeOy8po55JZL0
lD5sbbiI u7qw4IA X6VZBt2tyl3brNHkAkgq3VSDgg 4IIqaqGk/NbzTgYSed5I/dScA/jjP41f
oAKKKKACiiigAooooAKKKKAILP8A49V p/manqvZf8eifU/zNWCcDJ6UlsNhRWNBrF9OIrtNNVtM
lI8uVJy0xUnAfywuNvf72dvOM5AydS13XEttLl0l9Pv/ALbIYFa2iEsbspYswczoBlEYhfmwylS/
Q0nNIag27HX0VzP/AAkF5beF4NVnVLhbqETR3EcUdvHArquzzFluBk5bs3PTjgmt4e8W3Gp3jWsi
xXrnaQbNrZfKXOGZgLqQkcjoPzyKXtFdIfI7XOvoqtqE7WumXVwjIrRQu4Z8bQQCcnLKMfVlHuOt
csnjC NjPO nusy30dtHbBEZmDXTxHJWUhTtTaC21d6nBYEAOU1HcSi3sdlRXODxPPcNoEtrpN2L
XVJBmSUxfKhjkccCTIOEVuh XI 9xXN6H8Qrq urX7bcaesH2c3N2ERAY0ETudmLh2YgpyuzcByQ
vFS6sU7FKnJo9Hork5PFl5/ZMV3baa94JLqOPzrdozCFecKEDGQbnCMASu5A RuwDizqPiiWwvtI
gm06W2W8kfzjcSwDy41Ryx4l/h2qxPICnH3iBT9pEXIzo6K5/TfEktzNbxXWnXEa3V1NDBcr5fls
F8xlBXeXVtkfzBlBDAggdK2by5WztXnYFsYCqOrMTgAfUkD8apSTV0S4tOxPRWQ2tEaqliqWxfcE
kVrkLJuKhjsQj5wARk5Hfg1ftrrz3njZNkkMmxlznjGQQfcEfjkdqYixRRRQAUUUUAFFFFABRRRQ
AUUUUAQWQxaoPc/zNTEBgQeh4qGz/wCPZfqf5mp6S2H1MK0s9btIoNOR7RbOAqq3YkZpmjXopjK7
c4 UtuPrjnA5i88NahPeK13pCT23nXpBtoLSWfDXBkjLNcDAUh3 VeR1J bC iUVMqaluylNp3Ry
FvpWoWXgWW1s9O8m e4LeTH5cDlPP4Y Q8a7/KC9HXOME0nhmz1q11hmvre7W1Nu XnndsPuTaAp
upgcjdzgEY684rsKKXs1dPsHtHqu5iTa/ZXEEkC2usO0ilAqafcxMxIxgOVUKf8AaLDHXI61z m
GNSttO yMt2rfZ7aG3aS9aWK3dCX88oXIDgpH 7UMoIVQ5VnK93RTcObVgp22OQvtDuZV0H7Fpfl
zWG4LHPdGS1gMcMixEruy3zlCHC78DnaeKoaXpGu6VdxpENYMcSyWjSbrIo1rEs32fZ/FvyycsAM
k7uK76il7JXuP2jtY87n8KXGyyE2kXFygWbzJB9jubkklDH5hnQKp5lLBMgsSxZixY6UfhR5Lfw3
LLbJFc2yp56xpEEtX8mYtJGmNoYyuhOAQSiHHy12VFJUooHVkchY H76y1 0jWfUJ7G0kWUS3jQ7
SfLnViuwhmdmnBYsgJ2MSx4rotVhkmsf3SlnikjmCjq2xg2PqQMVdoq4xUdiZS5tzFm024muZPJW
Fba5miuZJSzLKrJt4C7ec7B1Ixk8cVcskdry9uWRkWRwiBhgkKMZx7nP4AHvV6iqJCiiigAooooA
KKKKACiiigAooooAgs/ PVfqf5mp6gs/ PZfqf5mpJkaSGRElaJ2UhZFAJU ozkce9JbD6mbLqss
OqX1ubd5o7e3hlRIU3SOzs6464/hHJwByScdFtNdhuZjDLb3FrMhcSJOF QqFbBKsRyrhhgnjPcY
qq2g3lxDePdajGb24WJPNht2jj2xsWCsm8kglmDfMMg44qrD4PWLTp7VbmCDzrlZ/wDQ7URIg2BH
VU3HAZQR143Zpa3L9z vQ0P EgQNAx0 W3lMam5ZFCI0mNoILbjyyjKggE8ng4oprt82r/Z2n0
N/tBjXTJFKXLxhivmqzOAwwN/CEYBGcjNP1Dwsb/AFUXZuLcqs0U0fm2vmSwlCp2xvuARDt5AXqT
zzVmbR76dzBLqUcmn eJhG9uWmGHDhRJvxgMMD5MgcZzzQr3D3bGbp/iKa9v2hfX9CgcXckIsWiJ
nIWQqBnzh8xAz93v0rqZZY7eF5ppEjijUu7uwCqo5JJPQVjWel6xp7PHBqVi1qbiSbY9i5kw7lyu
7zQM/MRnb FSHU7 4zB/Yeq23mfJ9o32p8rPG7Hmt069D9D0pJ2VhSs22tjh7nxxqUV/c28fiDR5
IhfW8aXKRReWI28rcQDcbto3PnCt/F8y/wAHSXXigx6tottbavps8N2oMzxWzyg/OI8qySEIGdlR
dwIBDZYkBTWbQ/En2yIxi0TTljdJNPOob4pdxUtuLWpLbsNuLEsS5wwyc6V14Zmv20iWTUJYnscF
4yRN5n76GXYXYAkDyQobAY8Ek8hskp6mjcNDKs/GGoPqEC3FncKosYZr2KSzeFYG8u4aQh5NoUF0
iUFm29cHqQaX40u5LSS3c6Pf3lq0FsXt9Sz9okdok8wKIvlTMvJGcEFcd6NN8Oa/aXulzSw6aVsL
WGEBLuQmRoobhB/yyGAxnGeuAvfNbFx4du5beYJqaCe4mhupmkttyGeOSNlZVDAhdsYTbk8KpzkM
XI 0sD5LhY6 by6sEnZ7S4kmuIGt1heWGRo2kX5ZtigMPJLAHHyk5XJBGJoOvNdv4bI8U/b7q9x9
sst1udmbeRz8qIHXDqo5Psa1bnw1evo9pbRaii3cF9NdtMiNGreaZdwADFlAEx6Nk7cBkJ3LqR2F
za3No9vdyyoMpdfaZC3mLhmDqMYD7yOm1dpIx8qBatNtX/rYm8VexZv7o2lo0qqGclURT0LMQq59
skVQvL 9s7 1R5rIpNIsa24U bIONzg7sALnJGDwOvPF3UrZ7qyKx4MqOkqA9CysGA/HGPxqvc2F
3eyBZLtFs2ZJGhaAGRSpBwHDYAyB/CT1wemNkZFm0uXlmuYJQokhkxlejKRlT uPqDVqqdnBItzd
3Eq7TM4CrnoijAzj1OT9CKuUAFFFFABRRRQAUUUUAFFFFAEFmc2qn3P8zU9QWf8Ax6r9T/M1PSWw
MKK5 7vp7bWdV2XESKlpbGP7QzeWjM8qk7R1J44GCxAGR1qvYeJpikr3uwwwyyQvKLWS3LMI1kX9
3ISy8FhznJAI64ovrYvkZ1FFctc6/qFpeWqTPaHdJBDNBFbSyFWkKg7pQdkRG/IVgcgDn5uK2jRy
XV0801lrszC nH2ldSIgAWZgP3fnD5QABjZ26Gi99u9g5NLs7KiuN0aOS6unmmstdmYX04 0rqRE
ACzMB 784fKAAMbO3Q12LHCk5AwOp7UJ6XYpRs7C0VyOmi5sryye7k1DzpMiW6Nz59rdkqWwi7/3
ecZB2KBgqM5GYrbxbfzaVd3/ANm3ILKS7hDWM8KxYGVRpG WTIPVcdDwQaSkPkb2OzorBOqX8DNZ
XLWz3rSR U0UbIpjYEk4LE5AR c9hwM4rFt/E1/Bp mQxLJPKmmwXMxNnPcvOWB XdH9w/KfmbPX
pwad9LgoNq6O4orD0KW9l1LXPtVwskSXgWFNhBjHlIccsfUdAOcnvgZnjhJr1bTTrWy1Ca8eRJYX
t7gJGAkis5dRMhOAowTgBmUBlZhSk WNxKN5WOvorz7wuJre61CO5sdVmlv4zcRSx3w2SwGJFyub
l/n3LjcGJXemWVSMY8eoajc E7sK25zpd49xDcajNLvWSG3lEiFkb7iyhQhPf7xyzHP21ldov2V3
ZM9Zorzu l1iOC21COS9aeO6ktvOsWhdE8292yRFp8MxAVFUhFAI6lTxpRX sLrKAXtw4F8LMWdy
IVU/6B53zsiEhvM6lSR1wCKftV2F7PzOyorz6aTTpm02a90S0ntrOO t5LI3EMiwMJgAy eyfJtt
5iMAbVUgAAcdT4Ys5LDQ1gks/sf kXEiW/y/u0eZ2RfkJUfKw4B4pxnzOwpQsrmxRWDe3E0hvSss
karcw2g2MRtVim5vqd5Ge2BimLLNbQ36xzyslhdp5ZeRnLIVQsrEnLfebGc449K0X9f18yDoaKKK
ACiiigCCz/49l rfzNSTQx3EMkMyK8UilXRhkMDwQajtP PZfq38zU9JbD6mZH4f06O0mtvLmdJS
pZpbmSST5eVw7MWGDyMEYPIpF8PaYLZ7drdpY5JUnfzpnkZnTG1izEkkbR37VqUUWQXZm3Gg6ddX
bXMsUpdmV2VbiRUZlxtYoGClhtXkjPA9Kjj8OafFcGaJr6MmUylE1CdU3Ftx QPtwSScYxzWtRRy
oOZ9zJTw5p8U5mia jYymXal/OI9xbcTsD7cEknGMUsdvr4mQy6npjxbhuVdPkUkdwD5xwffBrVo
o5UHM3uZtroOnWdws0MUoKEmONriR44if7kZYqnBIG0DAJA4pi G9KRbhBbuUuI2iZGnkZVRvvKg
LYQH0XHQegrVooSS2HzS7laTT7SW ivXhU3EUbRJJk5VWxkfoKpy HNLmht4mt3EdvEIUVJ5FDRj
oj4Yb146NkdfU1q0UWQk2tjLuNNuorqW40q4trWS4INx58EkwcgAAhRIoU4GCcc4HpVW68P3GqW7
x6lfxFpMLIbWxiCyoDlVcTCXO07iMEfePFb1FLlTHzMwdC8K2ugRxRW9xLLBFzHFLDAAr7dvmZSN
WL7cruJOQTnNV5vAuk/ZTbWD3GmwtDLBIlqUIkSRY1YHerckRJyMHOTnJJrpqKXs42tYOeV73Me0
8OWlvEsVxJLfIPNO26CMpaVnaRioUAlt5XpwuQMbm3Pi8O6bDqCX6JcG4Rg4L3crqWEflbipYqW2
cbiM a1aKfLHsLmZm2GhWGm3l1d20WJbiR5GJ52lyC P95hknknCjO1VC2bCyj060W1hZzEjMUD
EfIpYkIMdFXO1R2AA7VZoppJbA23uUpNNhlkuvMw0Fyo8yIjGWHG4Ecg4A/IEYpp0qFbaO2iLLCJ
RLJuZnaQg55YnJ5AyTngYq/RTEFFFFABRRRQBBaf8ey/Vv5mpZf9U/8AumorP/j1X6n ZqcjIwel
Ta8bD6nB28urHwhoKTWVklnvsMSpeO0mPMjwdhiAz043ce9aVtoWjxeLdRePSrFGitIJY2W3QFHL
S5YccE4HPsK6T7JbfZ47f7PF5Me3ZHsG1dpBXA6DGBj0xTxDEJXlEaeY6hWfaMsBnAJ7gZP5mqkk
738/0L59Gl/Wp53ZsD4a0KwB/wCPaWyucZ5AeSLb BLyf9811/hn/kFS/wDX7df j3q un2SqqrZ
24ChFAES8BDlB0/hPI9O1V10DRkvftqaTYLd7zJ54tkD7j33Yzn3pt9F3/yCUk1b v61K2sXOuQ3
9immWdtNbvLiVpLhkJGxzhsRttXIX5s9cDHNackyKoikeNJnjZhHv5IGMkdyBkc 4qeq17p1jqUS
xX9nb3UatuVZ4lcA oBHWpadrE3V0cW2p3th4VsHsri78yz0qGd4IIYto Q4aVpOSp2EYTDDB9Rj
Ym1qaKa4tnvEie0EtzNM0W8CHblCVHJGWA4wT5bVtXWladfSRyXdha3DxAiNpYVcoD1wSOKmFtbh
2cQRh3QRs2wZKjOFPsMnj3NDu233/r vmU5J20/r rnH/aLq7j1LS9RvLqKMC2ZJL OLL75GG0iE
geW20Lg4PzEGpIi jC9t7eyttLnk zgx2cgkgRZJDH5oGxcP1zlcHavXBro7fRtLtIJILbTbOGKV
SkkccCqrqeoIA5HJ4p1vpOm2lpLaW2n2kNtLnzIY4VVHyMHKgYORxUqL/r v67BzoxjJfJrVvpo1
t50SKaWVvKi8wlTFhHwuBw56BTgj6nJttV1D y1khvxALPRra8W3jhjAlch8qRt4U7QMLjGeCK7K
202xs0jS1sreBY1ZUEUSqFDEFgMDgEgE uKq/wDCP6Yb9bxrOF3jjijhRolKw WWKlBj5T8x6egq
lv66gpRtsVPD8Uiap4gd7iWQNfLhHC4T9zGeMAHuByTwo75JmuvLn1K8S5mMEMFmpEgfaU3lwzA
9jhRz25rTS2gjuJbhII1mlAEkioAz46ZPU4zxUdxYW9zLvmQOChjdGAKyKezA9f8 tHT uxDd3cx
7LTrBkuJPscVnptwI40tyPKExycMy8feyBgjJHB9Kggi yadeoIoreW0u1kjhgOY4shTtQ4HBBOe
Byx46GtuHRtLt45Y4dNs40mXbIqQKA49CAORThplokENvFCkNvFIJBDEoVCQcjIA9cH6igRboooo
AKKKKACiiigAooooAgs LVR7n ZqeoLP/j1X6n Zpbu1hvrOe0uU3wTxtFImSNysMEZHI4NJbD6l
Zda05kjf7Uiq8Mk XBQKkZUSFs42lSwBDYIOcjg4LvWLOytba4n 0BblgkSJbSPIzFS2NiqWB2qS
cjjHNeZf2El7f2OoDR9HtLC tf7UNu88SxosfkHBc2pZFww3KDg5bkc7utXyYvDfh3UNLsYoVEhv
INPWQje8sEpESHH96XOcBVUMeAtYxqSdzV00joLDWLPUppobf7QssKq7pPbSQsFbcFOHUZB2t09K
ZP4g0e1z9q1O0tSJGiK3MoiO5cZGGwehU 4ZSOCCcXwui2BgM0qBWhTR4MAlpJLV7kMxGMKGVdw5
45GemcrQP Ek/svSPs/9ofZfLsPK2fZfs/keXD5u7d 9z/rentin7R2QuRXZ00vi3RIrC2vvtbyW
1xC88ckEEko8tMb2bYp2hdwB3YweDU1l4hsNQuza263plVtj ZYTxqjbQ2GZkAU4IPJHUeorzjXF
guPDfhaC4tkmUaTDGCsy7wZvKTaEMEh3HG5SuGIjlx93nY0HTlfxJaXzw2UUjXUs/nLCVaSRvtRk
iEjRqzMqywAq2P8AVuAMowEqrJyt6FOnFRuehswVSzEAAZJPamGeIeXmVP3pxH8w fjPHrwCapa1
n zgv8DzRJJ/uGRQ34YJB9qq6nZwDXtHu9hM5uGTcWJwvlScAE4GeM464GeldCMDZSRJF3RurLkj
KnIyDgj86dWfY4Gpakqfc8xCR6OUGf02n8fetCgAooooAKKKKACiiigAooooAKKKKACiiigAoooo
Ags/ PVfqf5mp6gs/wDj2X6t/M1PSWwMYYo2mWYxoZUUorlRuCnBIB9DtXP0HpTPslt9s 2fZ4vt
Xl V5 wb9mc7d3XGecVNRTsBQi0TSYb838Wl2Ud4WZzcJboJCzZyd2M5OTn61NLp9lNYCwls7eSz
Cqgt3iUxhVxgbcYwMDH0qzRSsh3ZWGn2SwtCLO3ETwi3ZBEu0xDICEY 6NzYHTk tVrXw9otjcpc
2mj6fbzpnbLDbIjLkYOCBkcEitKiiyC7GSxJPE8Uqho3BVlPQg05VCKFGcAYGTk/nS0UxEcMEcCs
I1xuYu3JJJPU5NSUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAFK2uYo4FR2IYE8bT61N9
rh/vN/3wf8KKKzUnYuwfa4f7zf8AfB/wo 2Qf3j/AN8n/CiijmYrB9sg/vn/AL5P FH2uH 83/fB
/wAKKKOZhYPtcP8Aeb/vg/4Ufa4f7zf98H/CiijmYWD7ZB/eP/fJ/wAKPtkH94/98n/CiijmYWD7
ZB/eP/fJ/wAKPtcP95v D/hRRRzMLAbyAdWI/4Cf8KPtcP95v8Avg/4UUUczCwfbIP7x/74P FH
2yD 8f8Avk/4UUUczCwfa4f7zf8AfB/wo 2Qf3j/AN8H/CiijmYWD7ZB/fP/AHyf8KPtkH94/wDf
J/wooo5mFg 1w/3m/wC D/hR9sg/vH/vg/4UUUczCwfbIP75/wC T/hR9sg/vH/vg/4UUUczCwfa
4f7zf98H/CiiijmYWP/Z
语言随到随学_不耽误上班_0基础'>C 学习教程_C 语言随到随学_不耽误上班_0基础C 学习教程0基础学C 也可以,空闲时间学习,不耽误上班.2019年C语言新课程已经上线,随到随学,互动性强,效果好!
带你征服C 语言,让所有学过和没有学过C 语言的人,或是正准备学习C 语言的人,找到学习C 语言的不二法门。
C 学习教程介绍
c 学到什么程度可以找工作
C 学习视频教程课程目录
C 学习教程百度盘下载
c 学到什么程度可以找工作
很多人问我c 要学到什么程度?MFC的视图界面编程,DLL,XML,算法/图像相关肯定要学会的,最起码要有经验,或者有代码的成绩才能很好的胜任工作!
C 学习视频教程课程目录
01C 介绍 为什么要学习C C 为什么难学 C 11值得学习的新特性 几本推荐的书籍 开发工具选择
02从C到C (一)
bool类型
const限定符
const与#define
结构体内存对齐
03从C到C (二)
域运算符
new、delete运算符
重载
name managling与extern “C”
带默认参数的函数
04从C到C (三)
引用
const引用
引用传递
引用作为函数返回值
引用与指针区别
05从C到C (四)
内联函数
内联函数与带参数宏区别
新的类型转换运算符
static_cast(expr)
const_cast(expr)
reinterpret_cast(expr)
dynamic_cast(expr)
06面向对象介绍(一)
程序
结构化程序设计
面向对象程序设计
07面向对象介绍(二)
面向对象程序设计
数据抽象
封装
继承
多态
08类与对象(一)
类声明
公有、私有、保护成员
数据抽象和封装
09类与对象(二)
内联成员函数
成员函数的重载及其缺省参数
类与结构体
隐含的this指针
10类与对象(三)
类作用域
前向声明
嵌套类
局部类
11构造函数与析构函数(一)
构造函数
默认构造函数
重载构造函数
构造函数与new
全局对象的构造先于main函数
析构造函数
析构函数与数组
析构函数与delete运算符
析构函数可以显式调用
12构造函数与析构函数(二)
转换构造函数
赋值与初始化区别
explicit
13构造函数与析构函数(三)
构造函数初始化列表
对象成员及其初始化
const成员、引用成员初始化
14构造函数与析构函数(四)
拷贝构造函数
默认拷贝构造函数
拷贝构造函数调用几种情况
15构造函数与析构函数(四)
深拷贝与浅拷贝
赋值操作
禁止拷贝
空类默认产生的成员
16对象的使用(一)
static成员
static成员函数
类/对象大小计算
17对象的使用(二)
四种对象的作用域与生存期
static用法总结
18对象的使用(三)
static与单例模式
19对象的使用(四)
const成员函数
const对象
mutable
20从一个实例看数据抽象与封装
用C的方式实现栈
用C 数据抽象的方式实现栈
21友元
友元介绍
友元函数
友元函数注意事项
友元类
友元类注意事项
22运算符重载(一)
运算符重载
成员函数重载
非成员函数重载
运算符重载规则
23运算符重载(二)
运算符重载
!运算符重载
赋值运算符重载
24运算符重载(三)
String类实现
[]运算符重载
运算符重载
=运算符重载
<<运算符重载 >>运算符重载
25运算符重载(四)
类型转换运算符
->运算符
operator new、operator delete
26string
string介绍
string对象的定义和初始化
常用成员函数
27vector
vector介绍
vector对象初始化
vector常用成员函数
28map
map介绍
插入数据
查找与修改
删除
29继承(一)
代码重用
继承
公有、私有、保护继承
默认继承保护级别
接口继承与实现继承
继承与重定义
继承与组合
30继承(二)
不能自动继承的成员函数
继承与构造函数
友元关系与继承
静态成员与继承
31继承(三)
转换与继承
派生类到基类的转换
基类到派生类的转换
32继承(四)
多重继承
虚继承与虚基类
虚基类及其派生类构造函数
33继承(五)
虚继承对C 对象模型造成的影响
虚基类表
34虚函数与多态(一)
多态
静态绑定与动态绑定
虚函数
虚表指针
object slicing与虚函数
overload、override 、overwrite
35虚函数与多态(二)
纯虚函数
抽象类
多态
36动态创建对象
对象动态创建
37C 对象模型
C 对象模型
38RTTI
RTTI(runtime type information)
dynamic_cast运算符
typeid运算符
type_info
《跟我一起学C 》第二季
39类与类之间关系
UML介绍
StarUML工具使用
继承(泛化)
关联
聚合
组合
依赖
40表达式计算器实现(一)
表达式计算器设计
表达式树
类设计
41表达式计算器实现(二)
分清值语义与对象语义
表达式解析
42表达式计算器实现(三)
Scanner类实现
43表达式计算器实现(四)
Parser类实现
44表达式计算器实现(五)
更正设计缺陷
45表达式计算器实现(六)
SymbolTable实现
46表达式计算器实现(七)
Storage类实现
47表达式计算器实现(八)
让表达式计算器支持变量赋值
48表达式计算器实现(九)
解决一些BUG
49表达式计算器实现(十)
FunctionTable实现
表达式计算器支持函数调用
50异常(一)
C语言错误处理方法
C 异常处理方法
C 异常处理优点
51异常(二)
程序错误
异常语法
异常抛出
异常捕获
异常传播
栈展开
52异常(三)
异常与继承
异常与指针
异常规格说明
C 标准库异常层次
53表达式计算器实现(十一)
表达式计算器增加异常处理
54表达式计算器实现(十二)
内存泄露跟踪器
55表达式计算器实现(十三)
内存泄露跟踪器完善
表达式计算器加入内存泄露跟踪
56面向对象版计算器(十四)
表达式计算器内存泄露原因
资源管理
资源所有权
RAII
智能指针模拟NodePtr类实现
57面向对象版计算器(十五)
auto_ptr
表达式计算器加入auto_ptr来防止内存泄露
58单例模式与auto_ptr
auto_ptr在单例模式中的应用
59IO流类库(一)
什么是I/O
什么是流
流类库继承体系
标准输入/输出流
60IO流类库(二)
文件流
打开文件
读写文件
流状态
文件关闭
61IO流类库(三)
文件读写
二进制文件的读写
文件随机读写tellp、tellg、seekp、seekg
62IO流类库(四)
字符串流
istringstream
ostringstream
stringstream
63IO流类库(五)
输出流格式化
以操纵子方式格式化
以成员函数方式格式化
宽度控制
对齐控制
填充控制
精度控制
进制输出
64面向对象版计算器(十六)
调试一个BUG
Scanner类改进
Parser类改进
65面向对象版计算器(十七)
命令解析框架搭建
66面向对象版计算器(十八)
调试一个BUG
命令实现
!f 命令
!v 命令
67面向对象版计算器(十九)
序列化
Serializer类实现
DeSerializer类实现
68面向对象版计算器(二十)
实现命令
!s filename
!l filename
序列化
SymbolTable类序列化
Storage类序列化
Calc类序列化
69模板(一)
模板
函数模板
函数模板特化
重载函数模板
70模板(二)
类模板
非类型模板参数
71模板(三)
缺省模板参数
成员模板
关键字typename
派生类和模板
面向对象与泛型
72模板(四)
用模板实现单例模式
73STL(一)
泛型程序设计
什么是STL
STL六大组件及其关系
74STL(二)
vector源码分析
Allocator
75STL(三)
vector源码分析
Allocator
76面向对象版计算器(二十一)
ptr_vector实现
通过ptr_vector来避免潜在的内存泄露
77STL(四)
迭代器
迭代器类型
迭代器源码剖析
78STL(五)
算法
算法分类
算法示例
for_each
min_element
max_element
find
find_if
search
79STL(六)
for_each
copy
copy_backward
transform
replace
replace_copy
replace_copy_if
80STL(七)
移除性算法 remove
变序性算法 rotate
排序算法 sort
已序区间算法 lower_bound、upper_bound
数值算法 accumulate
81STL(八)
用STL算法解决八皇后问题
82STL(九)
函数对象
函数对象与容器
函数对象与算法
表达式计算器中函数对象的应用
STL中内置的函数对象
83STL(十)
适配器
容器适配器
迭代器适配器
函数适配器
函数适配器
针对成员函数的函数适配器
针对一般函数的函数适配器
84STL(十一)
迭代器适配器
反向迭代器
插入迭代器
IO流迭代器
85STL(十二)
容器适配器
stack
queue
priority_queue
86面向泛型版计算器
面向泛型版表达式计算器
87boost智能指针(一)
boost智能指针
scoped_ptr
shared_ptr
weak_ptr
scoped_array/shared_array
PIMPL技法
88boost智能指针(二)
boost智能指针
scoped_ptr
shared_ptr
weak_ptr
scoped_array/shared_array
PIMPL技法
《跟我一起学C 》第三季(软件设计与工程实践篇)
01银行储蓄系统需求分析
02JFC界面框架设计(一)
03JFC界面框架设计(2)
04JFC界面框架设计(三)
05JFC界面框架设计(四)
06JFC界面框架设计(五)
07JFC界面框架设计(六)
08JFC界面框架设计(七)
09JFC界面框架设计(八)
10abcbank客户端界面管理
11winsock编程
12多线程(一)
13多线程(二)
14多线程(三)
15public模块介绍
16abcbank框架搭建(一)
17abcbank框架搭建(二)
18abcbank框架搭建(三)
19abcbank框架搭建(四)
20abcbank框架搭建(五)
21mysql数据库(一)
22mysql数据库(二)
23mysql数据库(三)
24mysql数据库(四)
25mysql数据库(五)
26mysql数据库(六)
27mysql数据库(七)
28mysql数据库(八)
29mysql数据库(九)
30mysql数据库(十)
31mysql数据库(十一)
32mysql数据库(十二)
33mysql数据库(十三)
34C 访问mysql
35abcbank数据库设计
36abcbank业务处理(一)上
36abcbank业务处理(一)下
37abcbank业务处理(二)
38abcbank业务处理(三)
39abcbank业务处理(四)
40abcbank(长连接版)
最后,如果你想学C/C 可以私信小编“01”获取素材资料以及开发工具和听课权限哦!
模塑纸浆包装成为一次性塑料的替代品
纸浆模塑包装解决方案继续受到具有生态意识的消费者和希望尽量减少包装行业对环境健康影响的企业的青睐。
在过去十年中,消费者越来越意识到他们购买行为的长期影响。现代购物者在购买时会认真考虑如何花钱。在当今时代,人们越来越关注环境福祉,这种意识主要针对包装的可持续性。根据 Trivium 的 2021 年全球采购绿色报告,超过 83% 的年轻消费者(44 岁及以下)表示愿意为使用可持续包装的产品支付更高的价格。
近年来,随着包装行业受到越来越多的审查,纸浆模塑包装等解决方案已成为寻求减少环境足迹的行业的一个有吸引力的选择。纸浆包装由纤维材料(例如回收纸板和纸张)或天然纤维(例如竹子、小麦或甘蔗)重新利用而成,具有高度可回收性,在完成其主要用途后最多可重复使用 7 次。此外,与传统的塑料基包装不同,模塑纸浆是可生物降解的,这可以减少包装产品生产中使用的原始材料。
基于纸浆的模塑包装解决方案传统上与杯架或蛋盒等包装物品相关,在汽车、园艺、医疗等工业领域逐渐受到关注。随着模塑工艺和技术的巨大改进以及对可持续和高质量包装的需求不断增长,模塑纸浆作为奢侈品包装的解决方案正在取得重大进展。根据 Global Market Insights Inc. 的报告, 纸浆模塑包装市场 规模到 2028 年将超过 48 亿美元。
推动北美可持续发展的 3 大纸浆模塑包装行业合作
纸浆包装因其可堆肥和可回收的特性而迅速崛起,成为具有生态意识的商业实体从当前的不可再生塑料包装转向更可持续选择的催化剂。
这种转变在北美尤为明显,据 Global Market Insights Inc. 估计,由于北美地区对可持续材料和包装解决方案的需求不断增长,到 2028 年模塑纸浆包装行业的价值有望达到 11.7 亿美元地区。
因此,一些包装制造商开始参与战略行动,最突出的是与其他实体的合作,为模制纸浆包装创造更多的创新和发展空间,进而加强自己的市场地位。
缅因大学-基菲尔联盟通过新的热成型技术推进纸浆模塑包装的发展
最近,天然纤维正在成为可持续包装产品的理想材料。认识到这一点,主要实体正在建立各种公私合作伙伴关系,以促进该领域的研究活动,特别是在纸浆包装方面。特别是 Kiefel,正在坚持不懈地为全球纸浆模塑包装行业建立强大的研究和材料设施网络。
2022 年 2 月,该公司与缅因大学合作,通过安装新的 NATUREFORMER KFT 实验室机器,促进纸浆模塑包装解决方案的开发,这将使学生能够试验纤维热成型技术,并加强与可持续发展相关的研发工作纤维素纳米纤维等材料。
通过利用纤维热成型技术,Kiefel 机器能够生产由一年生植物、稻草或纤维素等天然纤维制成的可持续包装产品,这将成为主要应用领域传统塑料包装的有吸引力的替代品。
Ara Partners 收购 Genera Energy Inc. 以满足本地生产的纸浆包装需求
随着具有生态意识的消费者人数不断增加,北美企业正在加紧努力,以提高其包装选择的可持续性,并将重点放在提高国内生产上。为此,在 2022 年 6 月,在工业脱碳投资方面具有专长的私募股权公司 Ara Partners 宣布收购 Genera Energy Inc.,以促进其可持续纸浆包装业务的扩张。Ara 还宣布向这家非木材农业纸浆和模塑纤维生产商提供 2 亿美元的资本承诺
通过合作,Genera 和 Ara 的管理团队寻求拓宽公司在美国的制造范围,以满足对本地采购的可持续模塑纤维包装不断增长的需求。此外,作为交易的一部分,Genera 通过保护土地使用,同时提供可生物降解和可堆肥的解决方案来抵消不断升级的塑料污染问题的影响,从而确定了农村社区的重要增长机会。
ABB Robotics-Zume 联手探索使用模塑纤维制造单元 (MFC) 提高生产效率
近年来,包装制造商一直承受着来自监管机构和消费者等方面的巨大压力,要求他们在其产品组合中开发或整合更具可持续性的一次性塑料替代品。具体而言,基于植物的纸浆包装已成为这种情况下的一个关键领域,它展示了许多好处,从能源和水的使用有限到比塑料包装制造更少的二氧化碳排放,再到可生物降解性等等。
自动化机器人等下一代技术的出现已成为推动模塑纸浆包装行业通过减少能源使用、生产废物和排放提高效率的关键趋势。
这方面的一个显着例子是 ABB 机器人公司,该公司于 2021 年 11 月与总部位于加利福尼亚的可堆肥包装解决方案供应商 Zume 签署了合作协议,以部署机器人单元,将后者的可持续包装生产提升到全球规模并限制使用一次性塑料制品。
作为交易的一部分,ABB 将在未来五年内在 Zume 的全球客户现场安装和整合 1,000 多个 MFC(模制纤维制造单元)和近 2,000 个机器人。每个站点都配备了每年处理超过 71,000 吨农业材料的设备,并最终每年生产超过 20 亿件模塑纤维包装,这得益于 MFC 提供的速度、可扩展性和自动化能力。
包装行业正在以惊人的速度发展,公司正在努力跟上,从传统的以塑料为主的生产工艺逐渐过渡到对生态更负责任的解决方案。这一趋势表明纸浆模塑包装行业在工业领域拥有强大的实力,作为新兴绿色运动的坚定支持者,该运动有望在未来的包装生态系统中引起轰动。