1.导入跨服务器上传文件jar文件

<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.18.1</version>
</dependency>

2.springmvc配置上传图片解析器

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1048576"/>
</bean>

3.页面上传图片异步请求 ajax(实时回写)

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.form.js"></script>
<script type="text/javascript">
function submitImgSize1Upload(){ var option={
type:'post',
url:'${pageContext.request.contextPath}/upload/uploadPic.action',
dataType:'text',
data:{
fileName:'imgSize1File'
},
success:function(data){ var jsonObj = $.parseJSON(data);
$("#imgSize1ImgSrc").attr("src",jsonObj.fullPath); $("#imgSize1").val(jsonObj.relativePath); } }; $("#itemForm").ajaxSubmit(option);
} </script>
<title>测试用的</title>
</head>
<body>
<form id="itemForm" action="${pageContext.request.contextPath}/upload/uploadPic.action" method="post">
<table width="100%" border=1>
<tr>
<td>商品图片</td>
<td>
<p><label></label>
<img id='imgSize1ImgSrc' src='' height="100" width="100" />
<input type='file' id='imgSize1File' name='imgSize1File' class="file" onchange='submitImgSize1Upload()' /><span class="pos" id="imgSize1FileSpan">请上传图片的大小不超过3MB</span>
<input type='hidden' id='imgSize1' name='pic' value='' reg="^.+$" tip="亲!您忘记上传图片了。" />
</p>
</td>
</tr>
</table> </form> </body>
</html>

4.定义上传UploadControlle

import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile; import com.fyh.www.common.SysContant;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
/**
* 使用ajax异步上传图片并回写图片
* @author wumingsheng
*
*/
@Controller
@RequestMapping("/upload")
public class UploadController { @RequestMapping("/uploadPic")
public void uploadPic(HttpServletRequest request,HttpServletResponse response,String fileName,PrintWriter out){
//将普通请求转换为多部件请求方式
MultipartHttpServletRequest mh = (MultipartHttpServletRequest) request;
//根据文件名进行获取文件对象
CommonsMultipartFile cm = (CommonsMultipartFile) mh.getFile(fileName);
//把多部件文件对象转换为字节
byte[] fbytes = cm.getBytes(); //定义文件名
String newFileName="";
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
newFileName= sdf.format(new Date());
//再加上三位随机数
Random ran = new Random();
for(int i=0;i<3;i++){ newFileName = newFileName+ran.nextInt(10); } //获取上传文件的扩展名
String suffix="";
String originalFilename = cm.getOriginalFilename();
suffix=originalFilename.substring(originalFilename.lastIndexOf(".")); //创建jersy客户端
Client client = Client.create();
//指定关联文件图片服务器地址
WebResource resource = client.resource(SysContant.PIC_HOST+"/upload/"+newFileName+suffix);
//跨服务器上传图片
resource.put(String.class, fbytes); String fullPath=SysContant.PIC_HOST+"/upload/"+newFileName+suffix;
String relativePath="/upload/"+newFileName+suffix; //{"":"","":""}
String result="{\"fullPath\":\""+fullPath+"\",\"relativePath\":\""+relativePath+"\"}"; //ajax上传图片并回写 out.print(result); } }

本案例中用本服务器作为了接受服务器:

public class SysContant {
 
    public static final String PIC_HOST = "http://localhost:8080/video";

}

5.配置接受服务器的只读权限为false

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzEAAAEACAIAAAAMTW/2AAAgAElEQVR4nO29W3QU14HvXS/n2XnJ86xvZcYnjE8mK8mBk6OZ85HEkDDfeCU+Z82cEydnfBtNTxzZxpcYK4mxZAcJjMG0kVoXDJhwkRtaEiCbBgIIWgiwQTbGFg1Wc1FL4qIuSbSkVl8k4foeqrpq76q9q6tbfanu/v/WXk531b5VdUX7x9679hYGR6cQiikMi5HofLGHQG/ziTXfPL35B+kmrF+7Ppa4X/D6F3WQJCl4O6qGvr4+CZjiPd53aTCMgICAkOsgDIWmh0LTK1etkT8g2DwERwrmZNMzcxtbOjYQYaMhTEXmUuZzrbf5bPMPJ4dO9W7+frp1sOJk165dO3/+fG9v7/nz569du1ZwB7JbkKw52UnvOmbIrw7ZAjgZAgJCfoIwLE4Pi9MrV62RPwyL0+ec//dM/T/9Ydlfnan/p0+aHOpxBFuE22OFasunZ+Y2NLd39PsPXr5y5KvAqes3zwWHPh25dfnO3Wvi2NDExMaWffcmY+HphEkmw5cO9m7+u0Q4EBu/fGLNN9XQu/l7ZxoXj434zeuQ0smuXbvW29sbCAQCgcC1a9cuXLhw69atrFz+b0wxT/uMKRYrkJVMrDvZ8UPrE7PzutDf9UwZapn3eN+lwXsICAgIuQ7CrbHIrbHIylVr5A+3xiKnX//7Sx2rG/75W5c6Vp9+/e/V49kL/g0/Fn5zMOvZZjEc/o2w0pP7gtQGVT0iSZLxIBXuThTWyQ76r77d5CH7xt5RQufG5vZNrZ0bWzp4OQx+3nX8ne9N3/lYmh01huG+905v+cfpSHwhTnb+/PlzSS5cuHD16tWxsbErV66cOXPmxIkTZ86cuXLlykK0zNhgpxQyWad47X1aTrbwTKw72dGuDUYnGzjx2uVsatng9kceePVUljJTOPWqaZbq/79SHlSBkyEgIOQnCLfHZ26Pz6xctUYNb6z4f5r+5W/W/eKv3370b5r+z9/IEQzhysYfCyrPHGTG4YUrG3+cbpJ0A1U9QVjZnl7yI8+knSSToLYBzzzzzO3xGfkDeYQRRu8V1skOXQ283dzecfnKR1cDx6/dOD04dH7k1qW7o1+J48F74duTUyZO1n9yy6GNFTN3uu9Pf2YMwU82ezctW6CT9fb2Hk7i8/kGBgauXLly4sSJK0nkz9nSMitClkUny2c/2aEDm+KJeTnEEnPxxHwsMT/48aaBE6/1d/3Ge+AdvvZYpzBOlvKDDjgZAgJCfoJw997M3XszK1etkT/cvTez8/GHLrj/sPbn3zrv/sOeJ/+LepwOV955eNk7X8zcvTdz94umHwnJz5bClXceFp750Hr8DMICizjyjLCyM4fVUwLZBpD/TJdPsVOFwoV1sqOB6xua27uuDBwNXD91M/jx0MjF23f9IfHGxL1bU1Oh6YiJk0Wi858df89TVzEd3BO+9udtL/4VGXa88uDI9S/N65DSyU6fPt3T03Pu3Lnz58/7/X5RFD/77LOzZ8+ePn3al6Snp2ch90HVMotCli2dynM/2YGOzTPxuZn43KIVVVVvtM7E5qveaF20omomPh+Nz3d1buZrj3UK6WQS/X86CU6GgIBQ6CCEwtFQOLpy1Rr5Qygc7Xj2H9xPfafhX/7a/dR3Dr78M/U4Ha5uenjZpi+Vr/ufE368+SonJjOt8NuPLEbOLCywiCO/FV7Yn8PqacHYDMgHuUnGJgvrZN3Xb25obvd+da37+s0zweG+W7f7R0OBsYmh8GQoMnMvGjV3skh0/pOjW//8esXI+de3//G/p1uHlE42ODjY19c3PDwcCoXC4fDMzMz169fPnj175MiRAwcOdHZ2dnZ2njhxYoG3wsocsqyHPDuZZ2/TdHRuOjpb3+JZtKJqKjq3aEVVfYtnOjo3HZ3r8Lj42mOdAjiZxHEvk9vrPd73+c17CAgICLkOwthkbGwytnLVGvmDGq5fu6Y7QoevnA8vd/YrXw8+L/y44auxydhYf7M6Zlj1kRr5aFXy4I8bvhqb/Mr5cPKsHP/5oxbSLnc2vCA83HyRnaexemQmsbHJ2MWG5YLwwsFkhYXnjyajaVklkxytSsYkCxK0g0RCpUrG+hjjsINxaovZnZ+YyrMKqEF2stODwQ3N7ceu3TjkD5z46sbp68HzgyOXRu5evSveEO9F4omUThaJzvd6t7/92+82vLKUOrj5+2caF98JnDFJaOW9y+np6QsXLnR1dbnd7q6urgsXLty+fbuvr+/48ePymOaxY8cKdQ8XEvLsZHs+aA1H5sKRuXBkVraxRSuqwpFZ+Yjb3WJMcurVBx7ZPpj8mDQj7eipVx944Bvf+MY3vvGNZDTZybTjOpka3P4Imc0Dr55Ssju1/ZEHHlDin3qVzjO1k0kGAzO5txKcDAEBIV9BmJiOTUzHVq5aI3+YmI59svlfz679pz8s+6uza//pQst/qMfp8NW7y5a/ezk2MR2buNz8sCB//urd55svyRG8LwjCCx9Oxyamjz4rCA83fkWnFZ71ynGSmfDTPuvVUgnL5DhHnyUTLlPjUEVoPH9UPv7h88LDjV9NeF9I5iNHk8vSlcuqvBaBTsiujy4OOzCbB5P44/emC+UEspN9PDSyobn91I3B/7Tij8Ly3+vC3Py8FSdjhtObvzse+LDH+bcmWmbFyS5cuOB2uz9J4na7L1y4MDg4eP78eZ/P19nZuZD5ZAUMeXay93dtHZ+alYMsZPUtnvGphHxk5+73jEm0Xq9Trz7yyCOyJCWVjBA2LeLg9kceUK2LFDkVJRktdg8ks/7GN76hpCDLhpMhICAUZxDuReL3IvGVq9bIH+5F4rr3LtXjdPhqsyY9yzf7tVNfuJYnj7/4YSR+7/CLwrLmLwxpn1v5ohIhYjmt+vXwiwLNw66vjNV77rCx2kefoyqsi6Z+Pfocu/JqBDohuz68OmiB1xg888wz3FThSKGcQHayvpFbG5rbzwyNfDo2qwsXx2fv379v0cluf3W6d/P3yXCm4XvSfPje4Ike50N3r59nprLiZF1dXZ00+/fvHxkZ6e7uPnz4cJEKWSTvTrZlx45QOCEHtZ8sFJ6Vj2zf+T4jTVKMTr36yPbBU68+sn1QGtz+iKJk36B5ZPugYeySOZR56tUHVAuTaLdjfsbYJQICQrEGYXImMTmTIN+7/MOyv2r452+t+/lfr/v5txr+5a/lCIYQaFi2vOEKffBKy8OC8HBTIPn5xY9mEpNHXhSWtfTr0wrCsuUPC0QOVtKqXxl5GqsnPH/EePzY84IgaOXqoqlfjz3Prrx61XRCdn14ddCC2gzIn3XTjZlJwpMzhXIC2cku3bq9obn9k+Fbl+6OXh0bv3kvfHtqeiIai8zOfi1JFp1samrmZMPf3760Kzp2SQ6JyYA0J8pB/OrgiY3fFYevGhNacTK3291A43a7C25UCw95djLXtt13JhJ3JhKyjd2ZiMtmJh9s2b6TlUg2MMLGTm3XdZcZ4ufbyTKb41/wv9QICAjlEITpaGI6mli5ao38YTqacD/1nS8/Wrvu59/68tBa91PfUY/TIdC4bHnjVfrgkReFZS2Xo4npaOJy03JBeNEbTUxHjz0vCM8fkeMca2wKTEcDjcuE548kpq+2LFNPpU4baFwmJOOQxxPeF+TIuuppEdTgfUFY1hS43LQ8mU+gcZkgvHBsmlGuVoFlTQHDBeryZ9aHXQcyyG2A/IE8IjcPzCRT07FCOcH0zNyGZs+G5n1vN7d/dvvO5VHx+vjEyOSUODMzFU/I1bboZOOjd/bX/d3E9c6vI58bw2TwwwN137n2mdeY0IqT7d69+32a3bt3F9yoFh7yvBaGc8sHI2PxW2MJ+b3LkbGE/N7lyHh8ZCzeuHUPM9Xg9kceeUQbmFRHMHUDk6de1UYc1aPal8HtjxBDlY9sHzQcSGazACdLay2Mz29OICAgIOQ6CPLr7itXrZE/zMTnOp77H+p7l12/W6Eep8O1puU/bfrKeFAZvFv24kvLhJeOyMe/ak2Oc8pHrjUtF1YelZMcX6kcT5n2p03NLwnLW6/oj6tZsWuipP1q7siLQjL5tablgvDicaUmL76UjJYsNH58JfVZMEQgL4FXH0McQ1Ab1JQH1RCZMVu+Kw9hKjK7oaX94q07/lHx+vi9kXuTY9MzU7H47Nz87Nx8PDFrcezy6vmPdv7hb91/WqyGvX/6wfz4ofGB7e7a7189/yEzlcX5ZA0NDerAZUNDw4ULFwpuVPYJFp1sY/O+oVB8KBQPhuJDYnwoFBsSY8FQPCjGgqH4plY3W3lIyyJMSj1Fz+Uf3P7IA6++qgxr0namzCJLZqDmmwUn03WP8Q6STnbx5gQCAgJCroMQjc9F43MrV62RP9g6HH1JWN56NZt5XmtaLrxwtNDXlU6YiRbeyTZt6dy0pWPTlg4nK7y79UBmOb9b9S3xy7Vbf/9f+z8+xItjcQ/yCxcu7Nixo6GhYceOHRAyXbDoZOua2m+OxuQwOBobHI3dHI2rXzc07eNrT6nhPd538cYEAgICQq6DEEvM2zhcb17+8lHl8/EXBGF5y/Vs5y+8cKzgl5lOiM8WvFHPUair/M8bn/ve52e5Qhax7GQIJkGy5mT1jZ31DZ11DZ31jZ11jfJ/98sH6xs632psz68XFRI4GQICQn6CkJi7b+twbYs6CLm89Ua287/R8lPhxeOFvsZ0QjwxV/BGvYABTrbwIFlzMqACJ0NAQMhPEObm7yMUUZidLXyjjlDUQYKTpQmcDAEBIT9BmL//NUIRhbl59BIhLChIcLI0gZMhICDkJwhffy0hFFG4//XXBW/UEYo6SHCyNIGTISAg5CcIhf5zB9Km4I06QlEHCU6WJt7jfQgICAh5CHAyAMoOOBkAANgQOBkAZQecDAAAbAicDICyg+lkcQukyrjfXV3t7O52V1dXu/sZZ0KSJElSqNupfZFC3U7tC8FI6N6FK0ExNi/G5sXY/VBsXozNX7gSHLo7bqEmpYXYU1Hb4c1pEX7P0hpPb06LyBFiT0Vts1MsdDUAyAZwMgDKjhw5Wb9bNrF+g5PpvSvU7VRj8JzscO+Xl2/dG5yaC07NDiZD/63w4d4vy8vJ/B1CbW1FT46lo3idTJK8HbVCba3DX+h6ALBgFupkYxPh1l37G7bva9i+b+vu/dORGfLsnYnpX6/dv8AiAADZJWf9ZDIGJ9NpV6jbWV2t9pTxnGzXR+c+uTXzdpOHDJ/cmtn10bnycbJATzPDNvyepTU1cqijT/V6aip9Yq+nJhmB0CxOqqDPpR5XQ6UvtQKalUUXt9TlC5LHXb6g5K9jXgIzleirrPG0yfV0+YJKHKo4+Ubl3FwByDELdTLnlg/u3ro+PhocGx28evnzhtZd5NkRcerhVbt4aQEABSHfTkYMXPa7q6urnd39WkeZYmhJ1HRdPZf6bopXxegVMXpFjF4di14Ro303xa6eS2XiZN6OWsFsVM5fx3KypTU1Sz1+NYLBrhipJCmTfjK6LLHNpX6WJNFXqX6W9Uv9qhiVq02UJMUIk+XyUom+StnG1A/MqxB7KmprhQ50l4EiJnMnGw2Nv7m24crJP81c25S4tjF6eW3o9OrWt37/ymvrX3lt/ZtrG0ZD42XpZF6H4MjtzA9JkgLOCqHCGch1MaA0KYyT9Xc7qykR0005U5PK+nbz9vjpS9dvTERvTMSuT0RvTERvTER7Lt24ebsc5pOJzuZaIcUcMo6TaVqj/8pLJUkmTqZ1aOl6vPSZ862Oiun3qEImSbJvEV+ZqdQ4oq9SqTznKiS/o7ZWaO7Bn0ZQpGTuZG+ubZi6fUKa7GGE+7H7c9F79yZLyMm8juS2m6mEC04G7E4hxi6rq/XDl6wBSzmxu1+SpOlovPfiwNkvr18ZHhsKz1wZEc99eaP34sB01HpNipsM+8my7GRcWE6m2pXY5qLHQykn4xXESWXRydBPBoofhpOdOXMmEomkTPlqTaM0cYwdJEmeRmZLJws4K9KVJq9DU7GAs8I8dV6cDIAFkG8no966lCQzJaM60CLRxPDdiWNnvug8+vGxM1+M3J2IRBNyVTO57CKEPZ9MwYZOJucgtrn4PWrcgviprDhZft6EACDHMJysra3N7XaPjY2Zp3z5tW1S6CA7fH3/4VW7jvZdr/+g96kNXbmpecak72QBZ0UafVJwMmB38u5k9PIXvIFL/SoZXMrHySTJxDay6mSa7liFzpycu0bPLZMnkFl0MmaqVE6G9y5BycB2slAo9N57742MjJikrPrdn6VbbXK4P7zn2P7dtWvcK1/etfLlXf4rt7rODfzo5Z0/rd7zydVbnQcvsjJQRwMrnE4HMRCnjRImj3kdchzqIDOm7Fteh3oo4Kygxhy1JMk0xBHNpXT5kP1kzEvQZSjH9TqECqdXqYDDq0XXLkFfPbpok6FSTSwt3hzDnWHcPWZ9mMdYaUHxkCMn083WZwxXGibyS4rBMeKbUF5OJunXJyNeddSPDJo4mUkqGfIFTIvvXZK5UT4nT8ZPTkHr9bksjV3yUpk7GdYnAyUE28kkSRobG3M6nQMDA7yU/+rYIQW3SsGtsYFtq990Nxy4fDB4Xw4fDd0fj38tR/OPxv7jpQ5Dat1oICkKaiuveofXofqANo+KGVP2B0InHMkoWoFkP5nXIehsUItD6ZAiIaQgUaJGZEQ6maBVVjCWz62eQFWQZWWUkzFvjs6WdFfEuXvG+jB6FZlpQTGR436ynGOfmpQzrE44AMCC4DqZJEl37tx54403JiYmmCk/vhCcDvxl4tMdifFr5wfu7buSMIb3To/9+++8w7cm9YnJZp38Snc8JZVGJwHJY4yYDEUwdPMQcXTVoN3OqBpKVkT/FOMSdP1kAf1pXUqz6lFfiW7FgKGfzHhz9P1XdLbsu8esjxyV2QGHrrJiBU4GFg6cDICsw3Wy8fFx836yxPR40P3rmZvuIc8T8URi96eRnX1UaDgy+quVfwmOTDESmzgZo4W3qB2S3jzIDjiyd8rMybQhT073T7IHaeFOlrJ6jK/Gw5k6mfHusetDnDMaMihO4GRg4cDJAMg6bCcTRTHlfDLx49ZrH730x1/93Y2Dz97rP9DzVXTLqbAa1u4d+vGvPrw5zBIySTIduyQH2PjawY7JNY+As8LS2CVTSahXLak+Pc4lWHMyfvXofFOOXZrfHK+T0YPIunvM+gScTq+uSOadB8UEnAwAAGxIhu9dzs1MDGz/RfDsG49+W5j2vx3Y+c+B6+Pff/TIDx49/IP/eeQfHvvLo785MjYRMytZGySj5/gzppQztcNkgjyrDIdDPaMcTT3Hn1VZgXY+xiVYH7tkVi/grBAcjlSroaVwMjJvZvcb9+4ZbxfjdQPWtH9QRMDJAADAhmS4PtntHufwh0/O+F/f//aK+NXam+2/HrvoybwWJTAclrVLwKx5kHPgZAAAYEMyXMf/yo7/PdVXHfWvaXh+8dy1dZPnVw20PZVOBuRwoPElwSIETgaKBzgZAADYkAyd7LN3l4Y/XnX/5qaRs3+8f3NTqPtZ/58fSy8LYvyr6IVMgpOBYgJOBgAANiRDJxP7D32yfvG5+u/Koc/5o4mBk1mtGAAgV8DJAMgyxMxk9j+qyRW7s1eibXo0RGcz9rbKAiwnEwQERgCgVMipkynr9Rv3TiIW7Gcs10+cZW67RAInA3aFt8x3RgrFzyzDDHOHv0MgtpoAGQMng5OBsiNnTibvNd5t3O+S2oVcv6ulbHEpTUwDTpZD6H2cAEXqfZzMNSpNsppZFuA/G94OdJLxSWf7L76TARXcEFBa5MjJ+t2yWBn3IA91O6m+MWoX8n63xW0uVeBkuYK73zlQSLXfeek6mcmzgS1HU5HqsdGAk1kANwSUFjmeT2ZwMp2SKaObypH0lQxOlhMCPc3GZqPXU1PpE4ntxuntw/2epcSu4UHyuMsXlPx1zB3KmalEX2WNp03eB93lCypxOLuVL7CGKcsiUxn2KpBvFMdcWRplOtWMXPxS0C2iSUNvzczOUH7ZjHfemC1r0UlGNZnPBnW2gzqHxybNx0ZjoU42NhFu3bW/Yfu+hu37tu7ePx2ZsZiwmICTgdIi305GDFz2u6urq53d/WpHWajbWe3uJ2aTWRjEhJNlHW9HrcDq6lAaLaWBEdtcRGMj+iq1hsdfR7ZDSuPkahMlSZKCPpfWdPFSib5KualTP0j+Ol2rzIKuob+upqbSl7yMjMqiaqu7ZBWxp6K2Vici8o3kd23xdM18xphJPxnjtGJjxILf9HLs5BY2uvXPuQXxno0kfgdL5fHYpPPYaCzUyZxbPrh76/r4aHBsdPDq5c8bWndZTFhMwMlAaVEYJ+snpo1pg5eyjWmxyYlnPOBkWUV0NtfyJmjrN7X0e3idEFRMv0dtWSVJbsyIr8xUahzRV6m0c2TjqvWd6DpXdDU02YXTWllim4tons0u2e+orRWae+g59hk4mYkNZeRknE306FMBZ4W+441VktmzocCa3Y/HJs3HRiNzJxsNjb+5tuHKyT/NXNuUuLYxenlt6PTq1rd+/8pr6195bf2baxtGQ+MpMykO4GSgtCjE2GW1YVq//LXfnWLuGQM4WdYx6yfTN65qMym2uYgGT9/hwRs/4qRK0bhyMW1cMyiLbsWZA1tS9vrJJNOlOrPqZGb9ZKbVMO0nYy+BgccmzcdGI3Mne3Ntw9TtE9JkDzNM3T7x5toG0wwY+yjaFDgZKC3y7WSGzi/CuwwKZqGjDE6WC3jzyTgdHmKbi9/xwG1c+amy37hmVpaFQs3ehEjfyVQCzgqdD2XfyfhTxkyqYTKfjDO7H48NA2sv0GTuZK/WNEoTx0zCqzWN/NS6R8XeVgYnA6VF3p2MXv6CeutSJ2G6c2zgZLnC0GzQTRc57YaeMSPPBLLYuDJT5ahxTb8semKQngW8d5nyLUp6PFHSdW1ZypDvZNZ3iDFUQ4alFN4Odq8PHhsd2Xnv8uTJk+vWreOlfPm1bVLooEl4+bVt3GIDzgq7LHVnATgZKC1y5GTKECWJ8W1L1jR+8pSVdzDhZDmEXoOKeDHN8B6cPNM5OVOn1+eyNAjFS5WLQahMywrK79YZB9f4iz4Qrzrqe6JMTun6roytIhlBPZuiLE4/GSOZ5WoQl09OHWPM7td+BTw2Fh4bI1wnO3HixEMPPfTggw/yUlb97s/SrTY53B/ec2z/7to17pUv71KD49ldK1/Zu/KVvS+u2mtIzfsXg/bUJB8L2e7lFYsdjgr6LRLli3kqZ4B65tLvk4OTgdICeysBi5jMfQZFhaHNTdEJl5pATzNvrjoem4zhOtlDDz30y1/+0sTJ/tWxQwpulYJbYwPbVr/pbjhw+WDwvjHs/HTiP17qYKSn39lNHqKMy+GVkjZF/CtAiaJGsJBqgft6w8lAaQEnAxZB41oiGAyMNW0sLcw2uMRjkzFcJ/vlL3/52GOPmTjZo//3z9L1d6NXNr/w+71vd17fdyVhDO+dHvv333mHb03yMlG6r+QnxdCzqvZw0X2x9GGrqcx6ZFMAJwOlBZwMWASNa+mgbytzOI0bj03G6FXjxIkTsoI89thj5k72s/+zJ/rFW//xkudPewI7+yLG0HBk9Fcr/xIcmUpVh2SfKtnhpaHv45JjaRPSrKVSD2ZiZnAyUFrAyQAAwIboVWPdunWygjz44IMPPvhgfX09L+X/+7/2/vq3nj+8N7DFF97iC285RYW1e4d+/KsPbw5zhIx61VK1Kt18RPmjwa4CzooKh6OCmu+YIlXA6VzIKCacDJQWcDIAALAhma+FsdPT9+2fffi9Xxz53i8Of+8Xh7//i8Pff/TIDx49/IP/eeQfHvvLo785MjYRM0lOvuhBry3MeCOEtij2wLh5qgUthgYnA6UFnAwAAGzIgvZWiswkslwdewInA6UFnAwAAGzIQve7LAtwQ0BpAScDAAAbAiezAG4IKC3gZKDckddnN65omkvIFx9Tv2tGxM7vRjdmi1yUDoV4AKwAJ7MAbggoLXLqZMqi/Mb9kfrdrMX6iaOW1/KHk4EsYWnN96yQ6RKtKXdkyjb+DoFarL+0yd8DYBE4mQVwQ0BpkTMnk7eu7Dbud0ltakltfqkD+10WGv3+OaVN9prkVPvnZOpWuXEy/q/s7SiDTjKN/D0AFoGTWQA3BJQWOXKyfrdsU8Y9yEPdTkrCuOZF7UfOBU6WK1j7TJc02ewmMd1nOuOdjHLgZCa/cpbEonjI2wNgFb6TIegCAKVCjueTGZxMp2TK6KbRvSx1kklwstwQ6Gk2tii9nppKn0hsKU1vEU1Mylnq8gXJ4y5fUPLXMafsMFOJvsoaT5u8i7PLF1TicHakVtF2gyYzd7WJ5FdWDZOnjU2y2e7UugwNS9XL95DSHcaG4YJhn3CTWWZsJ6N3DafPkxkaV05n/crU2Q7qHB6AhT4AaQIng5OBsiPfTkb0fvW7q6urnd39LPuy1kkmwclygLejVmB1kCiNsdL2iG0uoh0SfZVam+SvI5sopd1Smsagz6U1rrxUoq9SbjXVD9b6MHo9ZFtruYbEQetNMnUhurJUxJ6K2lqd2XD7yfTLpxvjsJyM33dGF6MvlPcrJ/E7WFKOByAbD4BVoBoAlB2FcbL+bqd6nNEjZrWTTIKTZRnR2VzLm9bN6iRgd11QMXV9FaKvkvzKTKXG0Xo+yPZS63FhdMmomfMLYlxLMlvLTbLY5qqp9BG5c++G31FbKzT3EJ1elsYurfoXU96SpVB9bVpqs185WWvG7H48AFl6AKwCJwOg7CjE2CU9WKmfYMY6wgdOlnXM+sn0TbLa5oltLqKZ1HeT8EadOKlSNMkmaC1l0Oeix6f4NUxWNJ0mmdYC5lielGY/mW4Q0mI/GZ2OkDDmQCnREWfWT8ZeAgMPQJYeAKvAyUAGeB3ZmXWq5sPeSd4eKH/8HE79P0GLl3w7mWFU0pJmab8AACAASURBVChglsctlapaiwjSgDefjNNNIra5qO4KQzcJs0nmp8q8SVaL08U3rWEyZbpNcor6cKfPM50s4KwwKJX1cUpGHqlfCODOJ+PM7scDkKUHwCqFcbLo+PB51+O963/eu/7n512PR8eHLSZk/Csgv6vpmWP4J4+xDVevgNe6L2hnznxRRk6m7ZxqGBYoXvLuZPTyF8ZRyjTGLZWqWo0K0sLQotDtk7+uRh27oSfTyPOHLDbJzFQLaZLlmB4Po4+EV0MyIX2MnDNEz6bSTSfSk/57l/RB+W9/uk5G/2GyNETK8gZvB7trBw9Alh4AqxTGyXzrfxEbC9yPifdj4uTQp+caH08zg2w5gUWM+6Bnloj4Pw/7/2jkUWryZ4HgXbjdnCyjH8ga9rXFBZAjJ1OGKDmrv5JnTYTNCnCyHEKvXEW8cGd4e06ei52c39Prc1kauuKlWlCTLDeW9Fwf0xrqroturYkhKo8/SF5XsiBGqhSrSPDn+BP/gvcSf8hMOiB0//jX/YHSdw0w/zLq1ydjzO5n3ig8AJk+AFbJiZOdPHly3bp1vLPRsZun6/7b7TN/vPdF/fQXa8J9NbePv3LpvX+50PDIhYZHPn//iURkLFUJReBkHCWj3ohh/KvJXu0/nAxOlkE/Wc6xT01KHtZwDyg1Aj3NvAnpeADyTPad7MSJEw899NCDDz7Ii3B240/vfv5e+Pq+qZvtUzfbp254woF99wJ7J28emLx5YMy/67zrf6UqxOgEzCVZvA7lnx7Jo8lYzEmRykHiXxkOL50z1Tgbeoz1r7uwxi3pVWmYI5scB9JVQbYQr0MQhAqHg10T81QG0bB64bor4S2Gk/LGSnonczoM2bAzp3MyqSfv7vGfFif1hFA7zlHiR4xBO4vP2uBkwCJokssAsw0u8QDkmSw7mSxkv/zlL02c7NjrP4iPek3Csdd/kKocnZN5HWRzrIkNIR/kUL3WuNIJ5XOO5HctH043jGZVhggs4dJFYnfAKG297uoo43J4paSWEG6jr4mFVLraWb9wyqW4d97CjaXyMUzb4mSeqgfSUFVdTUyfFsPUMdaPrBtitrKfsL2AkwGLoEkuc/AA5JlsOpkqZI899piJkx3+4/fiIx45zNzcEzj84vmtj55+9yen3/3JaedPTjt/0r3uv/du/sfezf/Yu/n/4+Rh3uPE9BLWZ864lKFDx0RNKpwB43m+w6V0MrIChCqQsIo01MRSqoVcuOEGk/Gt3ljm2GVyBNfsZ9X1iZH1pN+iMNbE0tOijSKn0F1GhkUAnAwAAGxI1pyMFDJzJ+t69bvxwR3xwR0TlzadafrH0c/ejd85GL/TFb/TFb/7YfzuR/G7h+Kj3omrO0+89SNOHimdTO1oSdPJyF4P+o07psrIGeingaVSONNIZGwTv9En19fEWir6jPULN3GytG5suk6m97BklvzrsuRkxqcFTgYnAwCAfJM1J1u3bt2DBPX19byYnS9/J37NNd5Xd3LjT8Y/3xQP7owHd8aDu+JDu+NDe+JDbfHhD8a/aPzL+uVjNz/j5JFq7JIhJszP5CCU1+kMkLGI92RMVabC4aCVjNURY1AHZkOu32fDWEnJ6+BUSV8Ta6lYlbZw4fyxS8ZrpSY31tTJeJkHnE5i3JA3nElUla6JpafF1Mkwdllo7FMTAADIIgVYC2PvC/9l7Nwfj61bOnb+zXigIR5oiAca49dc8WtN8WvN8estY31rvXU/EW98ys/Dm8YcfzMnI4fTNAtRhr4cDrWhV45yep4M45b6mVQV3OKY2RliMGbHGy2EWZOUqRixLVy4hTn+lm6suZNxM9eOUmbEcSPGPU/5tJg7GXU1mOOff+xTEwAAyCIFcLI9z/7toZr/Jp55JX75T/HLa+KX6+L++rh/bdy/Ln7lrdCZP3y0ZlnouomQAWAnMHaZd+xTEwAAyCIFcLJP92/c9exD+373Pc+q/9pevaTj9z/s/P0PO3//w47f//DQmp990vbHmXt38l8rACxDjjEb3+ssAuBkJQRrIQO/h7F+ZkoySwUAyB7Y7xKA9CHGhYtOyKQcO5myXr9xp6R+N2t5f90ZSwv6w8k0/B0CtSC7fDCrTma2nzQAIJvAyQAoO3LmZPJO4t3G/S6pPcbpvZTo3cct7XxZdk6m3wlHw9uxoA2PLVG8Tpal7W4AyBtwMgDKjhw5Wb9btinjHuShbifV/0WYl17C9FFZlJeTsXaMVsiPcxSvk0nZ2RYagLwBJwOg7MjxfDKDk+k8SxndTB6RRy7l+EadY1E+ThboaTZRikBPs9BBn/N72NtFS1Kvp6bSJxJbLxOaxUml3265psbikKhZWXRxS12+IHnc5QsSO0BTl8BMJfoqazxtcj1dvqAShypOvoc5700EIBvAyQAoO/LtZMTwZL+7urra2d2v6x1TZ5Sl9DGlqlYvtZjxdtQKZt1gfgdX1/x1LCdbWqPuk+OvY9gVI5UkZdJPRpcltrmI/XlEX6W2V4+/roY4pRiVq02UJMUIk+XyUom+StnG1A/MqxB7Kmpr9f4KgP2AkwFQdhTGyfq7ndWsEUtiehnZZWZCGTiZ6GyuZUzeJ2HO7k+eYzsZsXEhax/DdJ1M69DS9XjpM+dbHRXT71GFTJJk3yK+MlOpcURfpVJ5zlVIfkdtrdDcU3yv5IByAk4GQNlRiLFL+o1KbTRTP5/MyuhlGTiZJKXoJ2MtgaGRHyfjwnIy1a7ENhc9Hko5Ga8gTiqLToZ+MlAkFJ+TnfSuM4beY+9EplK+QQ8AkKT8O5nu3Upqgpn+lNTvhpOpcOeTpZjdb0Mnk3MQ21z8HjVuQfxUVpzM5CUJAGxG8TnZ8Y/WJ2bndeHzI6tPHn7n3vhw7stPbgdk3EOp1AoFJUvenYxe/oLqGgsRI5r6iDzKx8kkia0U3g7zXp+sOpmmO1ahMyfnrtFzy+QJZBadjJkqlZPhvUtQXBSfkx3u2hhLzOvCtZOvXzz8+rFDzonxkRyXDycDRU+OnEwZoiQxvm3JmMlPp7Mwy7+8nEwyrk/Gnd1PvOqoHxk0cTKTVDLkC5gW37skc6N8Tp6Mn5yC1utzWRq75KUydzKsTwaKjeJzsg/3OyOx+Xf3nKvbcrL6HW/Vmx2R2PyN3nWB7tc/9a72Hty8sOxNdumWMW5/ngcKUigoWbC3UlET6Gm2+Vx1ViccACA1xedk+9sbpqJzvLC/vWFh2cPJQOkDJytmzGf32wI4GQCZUXxOtm9fUzgy9+6ec2/vOF3X2v16w19e3XjoxbUHf/tGezgyt29fEz+p16Hbo5DYtdDhpSIoMfQRJHoYUT7mdQgVTqdDv/shI62KnFgrjohA1EE7bCxUdzlealDT68AIJzABTgZyCpwMgMwoPidr+6B1fHqWF9o+aOWk8zr020UHnI7kd68jKUCk9TAjMJ2MTJ20OUZaougKWvOIrCi1Mi2UuhzCw9CrBsyBkwEAgA0pPifbuWerODnL7CcTJ2d37tnKTsbpOjJ0ZunHLg0ROP1kATW6lZ4yXSnJr/pKqtEMhTIuRz0EJQMpgJMBAIANKT4n27bz/dHwLC9s2/k+O5lRYgLOCmoQ0+Bk7AjWnIydlirbmpPRmmXmZErslBPiAICTAQCADSk+J2t9f+ediQSzn+zORKL1/Z2cdOQIotfpDJBaE3BWMPrJ2BGsORkzLTmyWaHVhs6cOS2MPXZJXY5SuMNRgalkIAVZcDJBKFiAkwEASpTiczLXtj0j4wlecG3bw02pDSVq+qXMkXc46N4x2YyYESyOXbLS0k7mcLCm+Fuf46+/nGRiKBlIBZwsrxTwXiEgINg/kH8tCvVnKmOcW9xDYvzdPefe2uarcR1bteHQc3/qHBLjcnBucRe6glbI1QAjXrgEVsiak+WYeGI2NDbZ2+c/1H2ht8+vFgonQ0BAKJ1A/rUo1J+pjNnQsm8wFOeFDS37Cl1BK+TGyTCVDFgjp06mrMpvXI6/381a3p9IQi/jH0vMfnr55qWB4VsTU1Oz929NTMmFxhKzRelkWcfvsbiqvqVU6W9qCQBYKCXgZGtdHeah0BW0QvbtSR7yhJEBK+TMyeQNxbuN+11SW43Te1pSm5ATW2GOhO5duBIUY/NibF6M3Q/F5uVCh+6Ol52T6fdWygHF62TYQAkULyXgZACABZIjJ+t3yzpl3IM81O2k+sY09aL2I0+ecvdLknS498vLt+4NTs0Fp2YHp2YHp2blQg/3flleTsbagzz7FK+TYaNxULzAyQAAOZ5PZnAynZIpQ5XO7pDR1uTU7n5J2vXRuU9uzbzd5FGDXOiuj86Vj5MFepoZtuH3sLf3lqReT02lTyS2ACc0i5OK3F883Y3GuWXRxS11+YLkcZcvKPnrmJfATCX6Kms8bXI9Xb6gEocqTr5RNt9yCgA9cDIAQL6djBie7HdXV1c7u/s5HWXEZLSunkt9N8WrYvSKGL0iRq+OReVCu3oulYmTeTtqBbNROX8dy8mW1qj7GvnrGHbFSCVJmfST0WWJbS5iPyXRV6ntreSvqyFOKUblahMlSTHCZLm8VKKvUrYx9QPzKsSeitpaoQPdZaB4gJMBAArjZP3dTvU4ZWLU5H/V1m7eHj996fqNieiNidj1ieiNCcXJbt4uh/lkorO5Vkgxh4zjZMRGk6x9J9N1Mq1DS9fjpc+cb3VUTL9HFTJJkn2L+MpMpcYRfZVK5TlXIfkdtbVCcw9ePgfFAZwMAFCIsUv6bUvjkCV5xt0vSdJ0NN57ceDsl9evDI8NhWeujIhyodNRuib2J8/9ZFl2Mi4sJ1PtSmxz0eOhlJPxCuKksuhk6CcDRQecDACQbyej362UzJQsOZtMkiRJikQTw3cnjp35ovPox8fOfKEWWiZOJvHmkynY0MnkHMQ2F79HjVsQP5UVJ8vPmxAAZJcScLKT3nXG0HvsncgU6y88AMBA3p2MXv7C8K4lGYl1Ql9o+TiZJJnYRladTNMdq9CZk3PX6Lll8gQyi07GTJXKyfDeJShWSsDJjn+0PjE7rwufH1l98vA798aHc18+uc1Rka+ZXwKXADIiR05GLv1qXByWuTAsfZzddWYstLycTNKvT0a86qgfGTRxMpNUMuQLmBbfuyRzo3xOnoyfnILW63NZGrvkpTJ3MqxPBoqXEnCyw10bY4l5Xbh28vWLh18/dsg5MT6S4/LhZKDoKZa9lfSUrZPZElYnHAAgHUrAyT7c74zE5t/dc65uy8nqd7xVb3ZEYvM3etcFul//1Lvae3DzwrJPucJ+0smKFWzABOBk+QVOBgBgUgJOtr+9YSo6xwv72xsWlj2cDJQ+cLK8AicDADApASfbt68pHJl7d8+5t3ecrmvtfr3hL69uPPTi2oO/faM9HJnbt6+Jn1TeE1IQhOSIXcBZkTzi8FIRlBj6CBI9dikf8zqECqfTQeXMTqsiJ9aKS0YgjisZEVXSsuElZ10jlWeFWiWhwhmg9MyY0PQKQDEDJ8srJepkAICFUgJO1vZB6/j0LC+0fdDKSed1CLrJUwGnI/nd60hqB+kpzAhMJyNTJ22OkZYouoLWPCK9QHuSVmdeNKpulFCpFTX4nO4jKyE61EoXOFlegZMBAJiUgJPt3LNVnJxl9pOJk7M792xlJyOtg8DQFaQ3EUMETj+ZJjRWesp0pVD+pB3X15kTTf1K9qlpPV68soiP7ITyUbwEUILAyfIKnAwAwKQEnGzbzvdHw7O8sG3n++xkRicLOCuoQUyDk7EjWHMydlqq7IycTBtSZTsZw6CsORlXvWSxhJmVFHCyvAInAwAwKQEna31/552JBLOf7M5EovX9nZx05Aii1+kMkCIScFYw+snYEaw5GTMtObJZQU8iY/fSGcYuyXlwjOTUKKnXwcyTN3ZpSBhwOr2GJKAkgJPlFTgZAIBJCTiZa9uekfEEL7i27eGm1IYSyVlZgiAIFQ4H3TsmqxAzgsWxS1Za2skcDuMcfaP98Of4M5Izh0s5o7G6Of6scVbmSwSgBICT5RU4GVgwjGnJmWSRu7/oorMZe1ulTwk4mXOLe0iMv7vn3FvbfDWuY6s2HHruT51DYlwOzi3uQlfQCgvseULHFVgQOXUyZV1+1hZJ3FP9btbK/wbgZKBcyYKTZT0nEn+HQGw1AaxSAk62oWXfYCjOCxta9hW6glaAk4FCkjMnk/ca7zbud2l2itygnNoX0wCcLA/Q+zgBisLt42QLJ+M/G94OdJLxMXlsSsDJ1ro6zEOhK2gFOBkoJDlysn63rFuMPcj5p0LdTkrCeBuUk4XCyXIFd79zoFCo/c4L72Qmzwa2HE0F97EpAScDACyQHM8nYzgZ95ROyZTRTU5PGZwslwR6mo3NRq+nptInEtuN09uH+z1LiV3Dg+Rxly8o+euYO5QzU4m+yhpPm7wPussXVOJwditfYA1TlkWmMuxVIN8ovZ0o84o5s3CZE4ONp3QvuOtWKWLPHKZSybUwnTlmcDLqnTE1Cv3OP+vZoM52UOfw2Fh9bOBkAAAbORkxcNnvrq6udnb38zvK4GQ5w9tRK7C6OpRGS2lgxDYX0diIvkqt4fHXke2Q0ji52kRJkqSgz6U1XbxUoq9SburUD5K/Ttcqs6Br6K+rqan0JS8jo7Ko2uouWUXsqaitpURE8SDGu/G08xi+UasfMV+oT54jlwnXZZg0KKUW2toBxnWMGP1kuni6GLxnI4nfwVJ5PDaWHhs4GQDAdk7W3+1Uj5sMXsLJcoLobK7lTdDWb2rp9/A6IaiYfo/askqS3JgRX5mp1Diir1Jp58jGVes70XWu6GposguntbLENhfRPJtdst9RWys09xD7tRBeQ79lT4kRf/CQOKOPpNvGxdDRRWzGp1tOSV8U7xi5epNaX7NnI3kbGLP78dhYfWzgZAAAGzmZcbBSP8GMAE6WM8z6yfSNq9pMim0uosHTd3jwxo84qVI0rlxMG9cMyqJbcebAlsTrJ2OalmGbFMPCRowzBvGinYwxxslYatK6k+kXaqJOm/aTsZfAwGNj9bGBkwEAbORk1FuXkmSqZHCynMKbT8bp8BDbXPyOB27jyk+V/cY1s7IsFMqc7W7qZJw59dSwo1TAfjKJnA/H2g2GN5+MM7sfjw0D5mMDJwMA2MnJ6OUvzN66hJPlHkOzQTdd5LQbesaMPBPIYuPKTJWjxjX9suiJQXq4L9Dx1csoUewzcocaOWmMnJymO8WZoJa5k6lLkfPeyWQphbejVje7XwaPjY5Sfu/ypHcdMxS6XgAUDTlyMmUckoRyLfYp3VmukElwsrxAr0FFvJhmeA9OnumcnKnT63NZGoTipcrFIFSmZQXld+uMg2smiz6YLjGhH6FkDl1WOL36DY+1FysZ++6x3q00cTLGGCpdX7kuZstk6NcnY8zul8FjY/WxKQEnO35ofWJ2Xhf6u54pXS3z8v/lAkAmYG+lvFJcTkZjMvcZlBiMiWrm8XuatbnqNHhsrFICTna0a4PRyQZOvHa5ZLUMTgayDJwsr8DJyoTaHxXx54BTqv2R1tKQcdiYbXCJx8YqJeBkhw5siifm5RBLzMUT87HE/ODHmwZOvNbf9RvvgXdyU2wGS+dna7V9OBnIMnCyvAInKwdkiSnO/wqCoAiZ8WxG4LGxSgk42YGOzTPxuZn43KIVVVVvtM7E5qveaF20omomPh+Nz3d1bs5NsXAyUDrAyfJKMTsZsETBe7ny8BnkghJwMs/epuno3HR0tr7Fs2hF1VR0btGKqvoWz3R0bjo61+Fx8ZNSUyZ1R+i3XyqcTgcRk4hGvHFMHiBfffE6BMHhMCSRWNG8SnFe4sUar4NOBycDWQZOllfgZAAAJiXgZHs+aA1H5sKRuXBkVraxRSuqwpFZ+Yjb3cJJZ9xlgj5Cr7pnWJ2P7PQiV3DRjhuWd2H3kxmieR2qf5HvQlMZw8lANoGT5RU4GQCASQk42fu7to5PzcpBFrL6Fs/4VEI+snP3e+xkxpXw9EdUCdIpl8HJDK8U071uDF0zVIWMRhbH/AwnA1kGTpZX4GQAACYl4GRbduwIhRNyUPvJQuFZ+cj2ne+zk1lyMtWBUjkZ+4VhOBkoDuBkeQVOBgBgUgJO5tq2+85E4s5EQraxOxNx2czkgy3bd3LSUYvnOZOzxKixS20w0dTJ6GX5vA5K1YglXogk9N4XdDQ4Gcg3cLK8AiezIfL67MYVTXMJOcSSeiEwInZ+GwCzRS5Kh0I8AAxKwMmcWz4YGYvfGkvI712OjCXk9y5HxuMjY/HGrXu4KbUVk3WbWbDm+OudLJmamNJPJtPvg+HwUkmSCsaKBicD+SanTqYsys9ajz+zU8ZC4WQgS1ha8z0r8HdYMsd0f4Bc4O8QqMX6S5v8PQBsSsDJNjbvGwrFh0LxYCg+JMaHQrEhMRYMxYNiLBiKb2p1F7qCANidnDmZvKF4N2u/y8xO0cDJ8oB+/5zSJntNssn+OZIkZe5WuXEy/q/s7SiDTjKN/D0AbErAydY1td8cjclhcDQ2OBq7ORpXv25o2lfoCgJgd3LkZP1u2akYG41ndkoPnCzXsPaZLmmy2U3C3WdakjLvJsuFk5n8ypmJRRGTtweAQwk4WX1jZ31DZ11DZ31jZ12j/N/98sH6hs63GtsLXUEA7E6O55OZ2FVmp/SFwslyQaCn2dii9HpqKn0isaU0vUU0MSlnqcsXJI+7fEHJX8ecssNMJfoqazxt8i7OLl9QicPZkVpF2w2azNzVJpJfWTVMnjY2yWa7U+syNCxVL99DSncYW38Lhn3CTWaZsZ2M3tScPs+ckkPXkOcNgZ5moYM6hwdgoQ+AOSXgZACABQInyyvF4GTejlqB1UGiNMZK2yO2uYh2SPRVam2Sv45sopR2S2kagz6X1rjyUom+SrnVVD9Y68Po9ZBtreUaEgetN8nUhejKUhF7KmprdWbD7ScLOCu0g8TSmBosJ+P3ndHF6Avl/cpJ/A6WlOMByMYDwAFOBgCAk+UVuzuZ6Gyu5U3rZnUSsLsuqJi6vgrRV0l+ZaZS42g9H2R7qfW4MLpk1Mz5BTGuJZmt5SZZbHPVVPqI3Ll3w++orRWae3TrX6Ycg7TqX0x5S5ZC9bVpqc1+5WStGbP78QBk6QHgACcDAMDJ8ordnUySzPvJ9E2y2uaJbS6imdR3k/BGnTipUjTJJmgtZdDnosen+DVMVjSdJpnWAuZYnpRmP5luENJiPxmdjpAw5kAp0RFn1k/GXgIDD0CWHgAOcDIAAJwsrxSDk0n8+WScbhKxzUV1Vxi6SZhNMj9V5k2yWpwuvmkNkynTbZJT1Ic7fZ7pZAFnhUGprI9TMvJI/UIAdz4ZZ3Y/HoAsPQAc4GQAADhZXikSJ5MkRotCt0/+uhp17IaeTCPPH7LYJDNTLaRJlmN6PIw+El4NyYT0MXLOED2bSjedSE/6713SB8n9jolcU2kWNV5paYiU5Q3eDnbXDh6ALD0AHOBkAIAcOZmy7iuJszu0gFN64GR5gF65injhzvD2nDwXOzm/p9fnsjR0xUu1oCZZbizpuT6mNdRdF91aE0NUHn+QvK5kQYxUKVaR4M/xJ1669Oq2i+EMQurGO3Uva+pHQ5mGpl+fjDG7n3mj8ABk+gBwKAEnO+ldxwyFrhcARQP2VsorxeVkNKzhHlBqBHqaeRPS8QDklhJwsuOH1idm53Whv+uZUtEy7KQEcg6cLK/AyYCtMdvgEg9AbikBJzvatcHoZAMnXrtcIloGJwM5B06WV+BkoGjBA5BbSsDJDh3YFE/MyyGWmIsn5mOJ+cGPNw2ceK2/6zfeA+8UuoILBE4Gcg6cLK8Us5MBAHJICTjZgY7NM/G5mfjcohVVVW+0zsTmq95oXbSiaiY+H43Pd3VuLnQFFwicDOQcOFlegZMBAJiUgJN59jZNR+emo7P1LZ5FK6qmonOLVlTVt3imo3PT0bkOj4uXkHgbRffyMfnqSsBZITi8XocgCBUOh+4dY+WLeSrtHRjyTZvkC81eh/J2TbIeycyIBWbgZCC3wMnyCpwMAMCkBJxszwet4chcODIXjszKNrZoRVU4Misfcbtb2MkCxEvGCl4HbVwOr5Q0N+J1ZCWKGsFCKmMZWiLC28jVaLTqwclAzoGT5RU4GQCASQk42fu7to5PzcpBFrL6Fs/4VEI+snP3e5x0sgGZ7UJR4QwY3C0pU6SSpU5lUi6pdMzPcDKQc+BkeQVOBgBgUgJOtmXHjlA4IQe1nywUnpWPbN/5vmlquUOrwhmgjYiOQDqRHCvgrND6uSykIoCTAdsBJ8srub1XrIUM/B7G+pkpySwVACBjSsDJXNt235lI3JlIyDZ2ZyIum5l8sGX7TnaygNNJrIGsdnkRM8v0g4hqwooKh6OClKdUqeipZ7LSCQyng5OBwpBTJ1PW5WftksQ71e9OuYQ/VSicTMPfIVALsssHs+pkZvtJAwAWQAk4mXPLByNj8VtjCfm9y5GxhPze5ch4fGQs3rh1Dy+hNuqoOg9j2r+xx8uwJ0bKVEkF8zoEcjqaNscfTgYKSs6crN9dXe3s7mbtXMk9Fep2qkdC3U4zLStbJ9PvhKPh7Uhnw+PMKF4ny2y7GwDyRgk42cbmfUOh+FAoHgzFh8T4UCg2JMaCoXhQjAVD8U2t7kJXEAC7kyMn63fLcsXYTdzkFEWo22lyvjydjLVjtEJ+nKN4nSyzbaEByBsl4GTrmtpvjsbkMDgaGxyN3RyNq183NO0rdAUBsDs5nk9mIl5wsvQI9DSbKEWgp1nooM/5PeztoiWp11NT6ROJrZcJzeKk0m+3XFNjcUjUrCy6uKUuX5A87vIFiR2gqUtgphJ9lTWeNrmeLl9QiUMVJ9/DnPcmApABJeBk9Y2d9Q2ddQ2d9Y2ddY3yf/fLB+sbOt9qbC90BQGwO7Z1Moxdkng7agWzbjC/g6tr/jqWky2tDadPFgAAGZpJREFUUffJ8dcx7IqRSpIy6SejyxLbXMT+PKKvUturx19XQ5xSjMrVJkqSYoTJcnmpRF+lbGPqB+ZViD0VtbV6fwWg4JSAkwEAFohNnazfnWKSfxk5mehsrmVM3idhzu5PnmM7GbFxIWsfw3SdTOvQ0vV46TPnWx0V0+9RhUySZN8ivjJTqXFEX6VSec5VSH5Hba3Q3GN4ax6AwgEnAwDY0cnkdy9NhjWlsnIySUrRT8ZaAkMjP07GheVkql2JbS56PJRyMl5BnFQWnQz9ZMCewMkAALZzMnmRDHMhk8rOySST+WQpZvfb0MnkHMQ2F79HjVsQP5UVJzN5SQKAwgInAwDYy8ksCplUjk4mSWyl8HaY9/pk1ck03bEKnTk5d42eWyZPILPoZMxUqZwM710CWwMnAwDkyMmUJWFJkrPD+KcYZ7iCVp5OJhnXJ+PO7ideddSPDJo4mUkqGfIFTIvvXZK5UT4nT8ZPTkHr9bksjV3yUpk7GdYnAzYHTgYAwN5KeSXb9yrQ02zzueqsTjgAgIEScLKT3nXMUOh6AVA0wMnySpbvlfnsflsAJwPAEiXgZMcPrU/MzutCf9cz0LKFgT2dygg4WV4pyL0qKHAyACxRAk52tGuD0ckGTrx2GVq2IOBkZQScLK+Un5MBACxRAk526MCmeGJeDrHEXDwxH0vMD368aeDEa/1dv/EeeIeTzri5eO7IZ1nZAk5WRsDJ8gqcDADApASc7EDH5pn43Ex8btGKqqo3Wmdi81VvtC5aUTUTn4/G57s6N3PSwcnMgZOVEXCyvAInAwAwKQEn8+xtmo7OTUdn61s8i1ZUTUXnFq2oqm/xTEfnpqNzHR4XM5VDSFLhDEiSJHm1I5qLeB1ChdPrrFCPJmMpieiEysGAEj+ZkddQFgFpa8RnfR7MgpQEXkfyECuVmptyxOtQr8T80uBkZQScLK/I1UZAQEBgBvKvRaH+TGXMng9aw5G5cGQuHJmVbWzRiqpwZFY+4na3cNKRNuR1kL6U1BbFU+QTsrLIh7WkdEL5nCP5XcuH30/GdDJGdK9DK4eKJ7CUzoiSXsvGyqXBycqFrDlZgf5+wckQEBBKJ5B/LQr1Zypj3t+1dXxqVg6ykNW3eManEvKRnbvf46QjFIYUHuoUeYL1WZ+QSE/1V+n9T+uQYveTyXGYnXG8xKxUFLqzqS4NTlZOwMmKG3khe+NyrFkCb03aD3oBFDwApUvxOdmWHTtC4YQc1H6yUHhWPrJ95/ucdOZOpnpJmk4WcFZQg5gZ9ZOReZnJHzNbIhUFnAxwyYKT8VEW5mctxc88pVvI38oeS+XuZAqcrZAWjE2b5PS33cx3hqYo/3TP7K+sv0OgNnJQjuIBsFeG2aD4nMy1bfedicSdiYRsY3cm4rKZyQdbtu/kpDMdu9QG+FKKi5aJkxocJGdxmTsZOQ9NGZN06jWNLEjyOljZGlMRmcv1MhwwvzQ4WbmQMyfrd1dXO7u7WftdmpwyxAqlKKbsnEy/t5IMmmQ7ZWi2j5Pc4jgd5k7G/pUlSZK8HcxVgvEA2CnDLG3kVXxO5tzywchY/NZYQn7vcmQsIb93OTIeHxmLN27dw0uo/DMl5Rx/844lbZxS8yRleNHh0M/ZNx3oJONrtVHrwpjAr1c9faqkghHKqYofnAxo5MjJ+t2ybjE2Gjc5ZcgjdVdZeTkZaw9y+QSaZFtlyNvvPPm31WvmZNxf2aSxxwNgrwyzsuF98TnZxuZ9Q6H4UCgeDMWHxPhQKDYkxoKheFCMBUPxTa3uQlcQALuT07FLU/FK4WShbqeFbrIycrJATzP/rzy7SSb3C1/q8gWpFB5Lpwx7kPPgldXrqan0icRO5FZbPirDZCr6IGsrdN51+T1LXb6g5K+jZ1+ZZ2i+Wbv5dcm/F2fnK66Tmf7KUqCnWehgnsMDkOq67PUAWKL4nGxdU/vN0ZgcBkdjg6Oxm6Nx9euGpn2FriAAdsduTkZMKbNgZGXjZN6OWsFsNITRJPd6yHZCbHMRTZToq9RaGn8d0e4GfS6ydbHYTWJSltJoKZn463QtKPeCTPsteGf515Vsql1toiQZLpOXoXmTTFyX2OZi3Sixp6K2lmVRbCdL+Ss70pFyPAA2fgAsUXxOVt/YWd/QWdfQWd/YWdco/3e/fLC+ofOtxvZCVxAAu2M3J9MIdTsteFkZOJnobK5lTesmMTTJoq+ScURpkHQQLY0+H7pN0voYqE4I07JMWjVuhpLSgnIH46yNNFFl+T1LycvX3Y3MmmSyDeZWye+orRWae+i5K0Yns/Ars2f3K+fwAJhel90eAEsUn5MBABaIfZ3M2vBlGTiZJGXQT8ZogMk4YpuLHq+RWxdD42qpm8S0LNMmOWW2rMEpyaT941yXWRKzs2k2yQbjyWY/Gb0EhuEC8ACYXZdZErOzOXsALAEnA6DssLOTWZnkXyZOJqU7n8ys64Iexkqjm4RD5t0k1hB9lYw5Q8YW1OS68tMk0zmYTNXPYD5Zilf58ABIRfUAWAJOBkDZYV8nw1oYRtJ575IxxYc590WeZ0O2NEqrluxyyGw6Eafpyug9PrHNRTfJRglIdV0pmmR2htSsI3r+EGMMjqxhqtfu0n7v0tth3t2CByDFddnsAbBEcTjZ5OTk0NDQQEkwNDQ0OTlZ6DsKypocOZlu9Vdyyr7JqX53ukvGlpmTSfqVq4jXvhhvyVFnyYaQGBVa6vL1+lzMKT6VPjFInTKDV1ZmTbLubTjjrHAygnbW5LpSzUBiZ0hOePL4ybuhu/N0LxG3T4tY10i/hzGFfn0y7ux+PADF9QCkRRE42fj4+PDw8MzMzNzcfAmEmZmZ4eHh8fHxQt9XUL7kuJ8s59inJqCsyOfCXYGe5swmiYPckYcHwH5OVvDdQIsiALAA4GQAZEAencx8dj8oDHAyBDgZyD5wMgAywKYL3IN8UcZORjAwMDA3NxeLxeVw/ND6xOy8LvR3PXPSu06Nk41w+e0fCv92IIsZxmOxg/8m/NuBWHxubm5gYCBb9weAdIGTAQCADbFf685ystnZ2WgsJoejXRuMTjZw4rXLXc+c9K5Toy049K//ofD0gWzlJocDTwv/diAWm52dhZOBAgInAwAAG2K/1p3lZInE7MxMVA6HDmyKJ+blEEvMxRPzscT84MebBk681t/1G++Bd9SYCwtfrv+h8PT+rGSlhgNPC0/vn4kmEnAyUEjgZAAAYEPs17qznSwRSXKgY/NMfG4mPrdoRVXVG60zsfmqN1oXraiaic9H4/NdnZsj2eGLt5YIT3dmKTOFzqeFpzsjkUQiAScDBQROBgAANsR+rTvLyeLxxNTUtBw8e5umo3PT0dn6Fs+iFVVT0blFK6rqWzzT0bnp6FyHx6XGJEP7U8KSdZempqanpjqfEoSn2qenpqan2p8Slrx1MXlQJhnt0rolwlPt2nElSTJcXLdEEJ5qT2YuPNU5NdX5lLBkXftbS9T47U/ReXY+JTzVPjUdj8PJQCGBkwEAgA2xX+vOcrJYLDaZZM8HreHIXDgyF47Myja2aEVVODIrH3G7WyZZXFy7RHiyfXJycrL9ySVLlixZe3FycrL9SWHJ2ova/1IRL65dIghKmsnJ9ie1z0mUZFrq9icFQVCzVlOTZQtPtk9OxmIxOBkoIHCyHFO4hQzkdcyNC1oCAIoB+7XuHCcLJ3l/19bxqVk5yEJW3+IZn0rIR3bufi/M5LO1S4QnPeGw58klaz/zPLlk7Wfhz9YuWbL2s3DY86RujeUlaz/TEujSU8gpl6z9TP1q/tnzpPCkJxyGk4HCklMnU5bsZy3Ib3Iq5VkSuzuZv0OgFmQvQA2Mu+6kSpFixXMAQB6wX+vOcrKZmej4+IQctuzYEQon5KD2k4XCs/KR7TvfV2PS4dO6xYvr+vY9sbi+T/68t37x4vq+8YnxvU8I8gd9fOGJvbyvctj3hCAIwuK6PvWr+ed9TwhP7B2fmJmJwslAAcmZk8nbVXazNrU0OSVJkmxkTqezeJxMvxOOhrej4Kt9Zs/JsrRjDADACvZr3VlOFolExpK4tu2+M5G4M5GQbezORFw2M/lgy/adYxzOr1m8ePFi4XG3+nnxmvNjY2NjY+7HBfmw/EX+eH7NYu2o9uX8msWCks79uLB4zXnDgWQ2jM/ux4XH3WNjkUgETgYKSI6crN8tCxVjo3GTU5IkKUbWHep3F4mTcfcFt4nEZLOfLCs7KwMArGC/1p3jZGIS55YPRsbit8YS8nuXI2MJ+b3LkfH4yFi8cesekccnslipnxev+YQ6JaNEED9Zs1h4/PHHWYcXr/lEdD8uJDNQ83U/ruXJ/Ox+XHjcLYpwMlBYcjyfjCde3FOhbqV/rCicLNDTbOIogZ5moUN/jt5cmVYfYgYYtUS437PU5QsS2yErjiX6KnW+5fcsrXG1URbIcTJWWbqNn5nbP8uXXOjOPwBKH/u17iwnm56eHk2ysXnfUCg+FIoHQ/EhMT4Uig2JsWAoHhRjwVB8U6t71PZMT0/DyUABsZmTaSZmfyfzdtQKZt1gfodR1/hdUEGfizgltrkILVP8SZEtMmavp2apyxdkpkomNjqZWVmmlUym6KmorTXqJgAgi9ivdWc52dTU1N0k65rab47G5DA4Ghscjd0cjatfNzTtu2t7pqam4GSggNjKyUgPs7eTic7m2hST95mz+/0ezluQYpuL7pEixUjX+yX6KtWv5CnyOJGRwclMyzJ+5Vyeo7ZWaO4JpIgGAMgQ+7XuHCe7ffuOHOobO+sbOusaOusbO+sa5f/ulw/WN3S+1diuxrRtgJOBwmIjJ6MtzN5OJkkp+sn4S2CIvkrGsKA2LskY2TSTJE2wgj4X0WemYnQy07JSFCeXiX4yAHKO/Vp3g3PcuHEjHA6HQqHbJUEoFAqHwzdu3MjW/QEgXezjZP3uaibO7pBJAQV0MslkPpmV2f2ir1LTMtOZ+OaSpJzl5cB2MrNZ/ymK47/TAADIHvZr3Q3OMT4+Pjw0FA6HmYvBFh3hcHh4aGh8fDxb9weAdLGPkzFO27ufTIHlKN4OK91I1BgiPcdLV4R5x5W/rqamzuNhdZJJFuaTGetleHUgCd67BCBv2K91ZznH+Pj4jevXB0qCG9evZy5knPsDQFrkyMmURV9Z/V0mp0iKxskk4/pkrNn9kiQZXmzUvdKof+2RmuNvNpgoJ9Tl1usxDFASE/m5ZRnOatnaYmkPAMoF+7XusnMgmAcAFgD2Vso6gZ5mTH4HACwQ+7XuBdedoggALAA4WbYp3AaXAIASIput+9bd+6cjM+SROxPTv167P4tFAAAWDpwMAABsSOZO9u2nmx6t2StJ0qM1e7/9dJMkSVcvf97QuouMMyJOPbxqFzs9AKBAwMkAAMCGLMjJvv10U1XDYfmDJEmh06tb3/r9K6+tf+W19W+ubRgNjafhZAFnhVDhNE7H8DqYh7NGyO1e/UyfcbLx5fWuRvdE7soFoHDAyQAAwIYsyMl+8fpeubdMdjJpskcJ92P356L37k3axMmu7/uZa/XPXPvOMs5l1cmUgiBzwN7AyQAAwIYwnOzMmTORSCRlym8/3bT3lP/bTzd19l5RnGzimBIkSZ5GloWxyyw52dHLaabJuJ8MHWzA9sDJAADAhjCcrK2tze12j42NpZ1Z6KASvr7/8KpdR/uu13/Q+9SGrgVVEE4GQLaBkwEAgA1hO1koFHrvvfdGRkZMUlb97s/SrTY53B/ec2z/7to17pUv71r58i7/lVtd5wZ+9PLOn1bv+eTqrc6DF3VpyXFKZdAy4KwQHMkFGL0OgUBzMu044WlkZAdze+Ckkw33Nf7M7RuWD074nnE1uidCbvfq9deViGePrv6ZSw2aWmnH1eR0ZDUHOBkoAuBkAABgQ9hOJknS2NiY0+kc4G+V/a+OHVJwqxTcGhvYtvpNd8OByweD9+Xw0dD98fjXcjT/aOw/XurQJ9Z6v5IupjmZ1yHQdqbEJHvM1NjEeX1SDa2fTBOm4b7Gnx29LM8nk43q7NHVWnfa9X2qk509qk04S6aSzh4l/ezyek3L4GTA9uTUyZQl+1nL8TNPGZb4N9/rUqmqpesEAICigutkkiTduXPnjTfemJhgC8bHF4LTgb9MfLojMX7t/MC9fVcSxvDe6bF//513+NakIXVSsFS5Ii2LHKxUv9J9Z0pXmX5kk+ptUyHGLpOCpaqY+kHnUurXy+tdZOeZrGJ68VJdDU4GioCcOVm/u7ra2d3N2tSSeyrU7bSgYRRwMgBAScJ1svHxcfN+ssT0eND965mb7iHPE/FEYvenkZ19kZ19EenrhDRU2f/2N+UgnV3KTC7bVMBZoesvM3My48QyhpMxZp+R88mu7/uZ2zc84XtG6eWy4mRGx2I4WbIvDU4GbE+OnKzfLesWY6Nxk1NwMgAAkGE7mSiKKeeTiR+3XvvopT/+6u9uHHz2Xv+Bnq+iW06Ft5wKS18n+t/+5uzYZensX0vubx597pvs9AFnRYXDoSoUe+wy4Kwgxy7JMU0tMjV2yXohgJrjH3K7G9cfVRWKPXY53NdIjl2SSqdFpsYuVQ+DkwHbk+P5ZAzxMjkFJwMAAJkM37ucm5kY2P6L4Nk3Hv22MO1/O7DznwPXx7//6JEfPHrYqpPJvqVKFjnqSE7ld+pmkRkn81uf4y8z3NdIrFVGzvHXhimf6fMRahVyu5MDl0Q+mOMPihXbORkBOx0NnAwAUJJkuD7Z7R7n8IdPzvhf3//2ivjV2pvtvx676FHOWXWy/JHJWhgZAycDtsdWTmY8n7LXDE4GAChJMlzH/8qO/z3VVx31r2l4fvHctXWT51cNtD2lnLOlk3HX8c9FQXAyYG/s62RyjFR9ZXAyAEBJkqGTffbu0vDHq+7f3DRy9o/3b24KdT/r//Njyjn7ORkAgMTGThbqdsLJAABlSoZOJvYf+mT94nP135VDn/NHEwMnlXNfJ6SzS48+90058N67BAAUCts6WajbifXJAABlS+Z7kAMAipQcOZlh9VfNr0xO9bvTWi9WqeoCrh4AAGwKnAyAsgN7KwEAgA2BkwFQdsDJAADAhsDJACg74GQAAGBD4GQAlB1wMgAAsCFwMgDKDjgZAADYEDgZAGUHnAwAAGwInAyAsgNOBgAANgROBkDZAScDAAAbAicDoOyAkwEAgA2BkwFQduTUyZQl+1kbKJmcIpfzT7XdJZwMAFCawMkAKDty5mT97upqZ3c3a1NLk1OyqqU0MQ04GQCgJIGTAVB25MjJ+t2yWDE2Gjc5JfW7LW5zqQInAwCUJHAyAMqOHM8nY4kX/1T6SgYnAwCUJnAyAMoOOzlZqNtZ7e4nZpNZGMSEkwEAShI4GQBlh52cTLYx7ZA878y83wxOBgAoSeBkAJQddnMyQ8dZCimDkwEAShI4GQBlh52czKBgFjrK4GQAgJIETgZA2WEnJ9NJWKjbmXpGGZwMAFCSwMkAKDty5GTKkrAkSdcyOaU7a+UdTDgZAKAkgZMBUHZgbyUAALAhcDIAyg44GQAA2BA4GQBlB5wMAABsCJwMgLIDTgYAADYETgZA2QEnAwAAGwInA6DsgJMBAIANgZMBUHbAyQAAwIbAyQAoO+BkAABgQ+BkAJQdcLLUfHp56RMn6z7NeTk8eltOLm1JvXwusBefXl76xMnKDyPGg3Io4BNlnVJ79pg/il2BkwFQduTUyZRF+Vn7I7FO9bv1C/ynXss/H052e7Ay1y3o7cHKZFNNhPNttyUpB+1i8MPzdEGXe/ln1QvvbaGrV0pNdS4wa/5DdXCyHPHpZd3zbDgLJwMA2JWcOZm8dWU3a79Lk1Mkhdjv8vZgpfEPeh6cjCpLUTGVnLaLwQ/Pk21Yb4te0TjVCNU9cXLp6sFgjqpV4sDJcoa5kxUVcDIAyo4cOVm/W7YpxkbjJqf0WVjY8TKbTsb7N3QZOVmojt+LoK/Gp5eXGqoKrAEnyxlwMgBA8ZLj+WQm4mXuZJY6yaTsOZk8YMduJu3hZNqQoq53ipiilEHzSTtZpG21xX4yq41fb8vJyg8jxLgnnYSsPH1dhgFW4ifI8JLlq1MCqZ5UWWo1bg9WPnG5TT61ejCoFKrU3+y6Uk8a4zgZ77o+vbx09WBQ7ptMay4a5/am8aNYv8PMysuD8lrRhgfM7Kdk/16651D9anxgqF/Z9EdhPwApbxQfujL822v6K8PJACg7bOpk1jrJpCw5WW/LSbMuH5Yn5Qqek2l/vqmuLIZRpallurFLSWsSzLvrQnXWWmu68nQNbw9WcjKkakW/Y5HpJXMrTA/XRtpWJ1tl1Sc0sdBcyuy6iBKtO5nZdSmtuPKLGH4yDvzba/mJstpPZvqjaPnrMk+Zivt7sZxMIcU/FRh3nvsAmN4oM/h1SOtXhpMBUHbY0smsdpJJWXAys54htT51DCfT/jlr6OMxOZUKC2OXxNdI22q6kUh/4IbTwKtdFFpldHP8LXbVWG8yyZh0KvIyM7zk4Ifn2T+EsRNU/QmoD3Ic2slSXFdaTmZ6Xbph4oz+kcC/veRXfcWsOVmqH0W+gS26wW6zVNzfK+tOZvIApCyLB/dN7fR+ZTgZAGWHHZ0s1O201kkm5aefjO1kuSE9J6PlL83hFRnTThdDn0H6Y6Oms9CowamllvrJMrxkbuUZNzzZbKftZJx8GBhPmV5XhnOkuLeX+0QZBMXaj27hR2Foilkqk3Jz4GTcHy5DJ5OoN6kJCUvvV/7/AROBwgd6nvDaAAAAAElFTkSuQmCC" alt="" />

jersey实现跨服务器上传的更多相关文章

  1. idea 内置tomcat jersey 跨服务器 上传文件报400错误

    报错内容 com.sun.jersey.api.client.UniformInterfaceException: PUT http://.jpg returned a response status ...

  2. 关于nutz跨服务器上传文件

    关于nutz跨服务器上传文件  发布于 578天前  作者 yong9664  770 次浏览  复制  上一个帖子  下一个帖子  标签: 无 是这样的,项目在一台服务器,文件要存储到另外一台服务器 ...

  3. 阶段3 3.SpringMVC·_05.文件上传_5 文件上传之跨服务器上传分析和搭建环境

    使用这个jar包来跨服务器上传 搞两个tomcat.一个springmvc一个fileupload 选中tomcat server点击左边的加号 需要改端口和JMX pport这个端口 部署文件上传的 ...

  4. ASP.NET跨服务器上传文件的相关解决方案

    第一种:通过FTP来上传文件 首先,在另外一台服务器上设置好FTP服务,并创建好允许上传的用户和密码,然后,在ASP.NET里就可以直接将文件上传到这台 FTP 服务器上了.代码如下: <%@ ...

  5. 阶段3 3.SpringMVC·_05.文件上传_6 文件上传之跨服务器上传代码

    参数HttpServletRequest也可以删掉  扩服务器的代码 注意选择jersey包下的 拿到文件资源.put过去. 最终代码 重新部署springMvc 图片服务器正常运行 客户端服务器 服 ...

  6. .NET文件跨服务器上传下载

    环境说明:两台服务器服务器为A,服务器为B,服务器B为文件服务器 1.在A和B上创建用户docshareuser,用户名和密码保持一致 2.B服务器上设置附件文件夹Attachments共享,添加用户 ...

  7. webservice跨服务器上传附件

    最近一个项目,用到文件上传功能,本来简单地使用upload控件直接post到服务器保存,简单实现了.后来考虑到分布是部署,静态附件.图片等内容要单独服务器(命名为B服务器,一台,192.168.103 ...

  8. Java使用Sftp实现对跨服务器上传、下载、打包、写入相关操作

    1.Maven引入jar <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch< ...

  9. Jersey实现跨服务器上传图片:UniformInterfaceException:403 Forbidden

    jersey.api.client.UniformInterfaceException :returned a response status of 403 Forbidden 图片服务器:端口808 ...

随机推荐

  1. SQL Server WITH ROLLUP、WITH CUBE、GROUPING语句的应用

    CUBE:CUBE 生成的结果集显示了所选列中值的所有组合的聚合. ROLLUP:ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合. GROUPING:当行由 CUBE 或 ROLLUP ...

  2. java并发 —— Lock

    java并发 -- Lock 关于java并发中的锁知识,少不了 Lock.本文转载自:Java并发编程:Lock. 从Java 5之后,在java.util.concurrent.locks包下提供 ...

  3. windows下mysql安装失败的一个解决案例

    操作系统:windows8.1,之前安装过mysql,这次安装在配置的最后一部执行“Apply security settings”的过程中弹出经典错误: Access denied for user ...

  4. JVM年轻代(转)

    本文转自:http://my.oschina.net/xishuixixia/blog/133850 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完 ...

  5. java中内部类的积累

    放在一个类的内部的类我们就叫内部类. 二. 作用 1.内部类可以很好的实现隐藏 一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所有元素的访 ...

  6. Vue组件里面data为什么必须是个函数

    在创建或注册模板的时候,传入一个data属性用来绑定数据,但是在组件中,data必须是一个函数,而不能直接把对象赋值给它. export default { name:'app', data(){ r ...

  7. MVC中关于 使用后台代码 检查 用户名是否已经被清册

    在 注册页面  NewUser 的 Controller中写以下代码 public  ActionResult GetUserIndataByUserName() { string UserName= ...

  8. react-refetch的使用小例子

    出处:<react设计模式和最佳实践> 作者:米凯莱·贝尔托利 出版时间:2018年8月第1版(还算新) 使用react-refetch来简化api获取数据的代码 const List = ...

  9. 防止xss(脚本攻击)的方法之过滤器

    一  什么是脚本注入 概念我就不说了 直接百度一份 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端 ...

  10. hadoop 编译任意版本的eclipse 插件

    github地址 下载ant并进行配置 http://ant.apache.org/bindownload.cgi 解压后, sudo gedit /etc/profile 进行设置: 添加expor ...