从MVC到Ajax再到前后端分离的思考
前言
一位小妹去面试前端,前端leader问了"什么是ajax?",答:“接收后台的数据,然后然后自己填充和渲染样式”;一位小哥去面试后台,技术经理问了“什么是ajax?”,答:“在不需重新加载整个网页的情况下,发送异步请求,返回json数据给前端”。准确答案到底是什么?Ajax到底属于前端还是属于后端?前端(或者后端)到底需不需要懂得Ajax?Ajax请求与普通的http请求有什么区别?数据库中的数据通过Ajax请求和普通请求下分别是怎么传递到前台的...等等一些问题,似乎需要静下心来理一理。
MVC篇
最典型的MVC就是JSP + servlet + javabean的模式,不少人的web起点应该也是这个,记得当时看到最多的问题就是JSP和Servlet区别,后来随着Struts 、Spring MVC等框架出来,MVC被谈论的更多了,越来越多的人开始想要深入学习和理解它,同时也有越来越多的问题开始围绕MVC展开。基本的概念:MVC = Model View Controller = 模型-视图-控制器,太过于概念化的东西确实不太好理解,也许框架都用了好几年,一问MVC还是会懵。不过还是Talk is cheap,下面以Spring MVC + jsp的开发过程示例,同时也是数据在普通http请求后从数据库传递到前端的过程。
背景:ssm项目中,将数据库中TBL_PERSON表的记录全部获取,在前端以表格呈现出来,即<table>标签下(因为自己写的样式实在太丑,重点关注过程吧)
1.Controller层关键代码
package com.mmm.web; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.mmm.pojo.Person;
import com.mmm.service.PersonService; @Controller
@RequestMapping("person")
public class PersonController { @Autowired
PersonService personService; /**
* 框架跳转页面默认是forward,也就是请求转发
* 这里的model设置的属性,在jsp页面也能直接通过el表达式获取
* */
@RequestMapping(value="httplist")
public String httplist(Model model) {
List<Person> list = personService.selectAll();
model.addAttribute("list", list);
return "person/list";
} ......
}
2.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Person列表</title>
</head> <body>
<table>
<tr>
<th>姓名</th>
<th>性别</th>
</tr>
<c:forEach var="i" begin="0" end="${list.size() }">
<tr>
<td>${list[i].name }</td>
<td>${list[i].gender }</td>
</tr>
</c:forEach>
</table>
</body>
</html>
3.tomcat启动项目,地址栏输入http://localhost:8081/mm-web/person/httplist,即可看到如下页面,获取到了数据库中完整数据
aaarticlea/png;base64,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EFAIkGMUKDQhgAACCCCAgBYC5BgthokiEUAAAQQQQEAhQI5RoNCEAAIIIIAAAloIkGO0GCaKRAABBBBAAAGFADlGgUITAggggAACCGghQI7RYpgoEgEEEEAAAQQUAuQYBQpNCCCAAAIIIKCFADlGi2GiSAQQQAABBBBQCJBjFCg0IYAAAggggIAWAuQYLYaJIhFAAAEEEEBAIUCOUaDQhAACCCCAAAJaCJBjtBgmikQAAQQQQAABhQA5RoFCEwIIIIAAAghoIUCO0WKYKBIBBBBAAAEEFALkGAUKTQgggAACCCCghQA5RothokgEEEAAAQQQUAiQYxQoNCGAAAIIIICAFgLkGC2GiSIRQAABBBBAQCFAjlGg0IQAAggggAACWgiQY7QYJopEAAEEEEAAAYUAOUaBQhMCCCCAAAIIaCFAjtFimCgSAQQQQAABBBQC5BgFCk0IIIAAAgggoIUAOUaLYaJIBBBAAAEEEFAIkGMUKDQhgAACCCCAgBYC5BgthokiEUAAAQQQQEAhQI5RoNCEAAIIIIAAAloIkGO0GCaKRAABBBBAAAGFADlGgUITAggggAACCGghQI7RYpgoEgEEEEAAAQQUAuQYBQpNCCCAAAIIIKCFADlGi2GiSAQQQAABBBBQCJBjFCg0IYAAAggggIAWAuQYLYaJIhFAAAEEEEBAIUCOUaDQhAACCCCAAAJaCJBjtBgmikQAAQQQQAABhQA5RoFCEwIIIIAAAghoIUCO0WKYKBIBBBBAAAEEFALkGAUKTQgggAACCCCghQA5RothokgEEEAAAQQQUAiQYxQoNCGAAAIIIICAFgLkGC2GiSIRQAABBBBAQCFAjlGg0IQAAggggAACWgiQY7QYJopEAAEEEEAAAYUAOUaBQhMCCCCAAAIIaCFAjtFimCgSAQQQQAABBBQC5BgFCk0IIIAAAgggoIUAOUaLYaJIBBBAAAEEEFAIkGMUKDQhgAACCCCAgBYC5BgthokiEUAAAQQQQEAhQI5RoNCEAAIIIIAAAloIkGO0GCaKRAABBBBAAAGFADlGgUITAggggAACCGghQI7RYpgoEgEEEEAAAQQUAuQYBQpNCCCAAAIIIKCFADlGi2GiSAQQQAABBBBQCJBjFCg0IYAAAggggIAWAuQYLYaJIhFAAAEEEEBAIUCOUaDQhAACCCCAAAJaCJBjtBgmikQAAQQQQAABhQA5RoFCEwIIIIAAAghoIUCO0WKYKBIBBBBAAAEEFALkGAUKTQgggAACCCCghQA5RothokgEEEAAAQQQUAiQYxQoNCGAAAIIIICAFgLkGC2GiSIRQAABBBBAQCFAjlGg0IQAAggggAACWgiQY7QYJopEAAEEEEAAAYUAOUaBQhMCCCCAAAIIaCFAjtFimCgSAQQQQAABBBQC5BgFCk0IIIAAAgggoIUAOUaLYaJIBBBAAAEEEFAIkGMUKDQhgAACCCCAgBYC5BgthokiEUAAAQQQQEAhQI5RoNCEAAIIIIAAAloIkGO0GCaKRAABBBBAAAGFADlGgUITAggggAACCGghQI7RYpgoEgEEEEAAAQQUAuQYBQpNCCCAAAIIIKCFADlGi2GiSAQQQAABBBBQCJBjFCg0IYAAAggggIAWAuQYLYaJIhFAAAEEEEBAIUCOUaDQhAACCCCAAAJaCJBjtBgmikQAAQQQQAABhQA5RoFCEwIIIIAAAghoIUCO0WKYKBIBBBBAAAEEFALkGAUKTQgggAACCCCghQA5RothokgEEEAAAQQQUAiQYxQoNCGAAAIIIICAFgLkGC2GiSIRQAABBBBAQCFAjlGg0IQAAggggAACWgiQY7QYJopEAAEEEEAAAYUAOUaBQhMCCCCAAAIIaCFAjtFimCgSAQQQQAABBBQC5BgFCk0IIIAAAgggoIUAOUaLYaJIBBBAAAEEEFAIkGMUKDQhgAACCCCAgBYC/wfwR4oifdpc7wAAAABJRU5ErkJgggA=" alt="" />
Ajax篇
传统web开发在没有应用Ajax技术的时候,往往页面是用jsp,而这也让我们看到MVC的不足,视图与控制器间的过于紧密的连接,每次请求必须经过“控制器->模型->视图”这个流程,当java脚本 + 各种表达式 + html代码 +javascript代码混杂一块的时候,简直痛不欲生,代码可读性十分差,而且给后面维护和修改代码的人带来很大阻碍。再说下Ajax,首先简单介绍下,Ajax = 异步 Javascript 和 XML,听名字不难发现,并未涉及到后端java代码,核心对象XMLHTTPRequest(可扩展超文本传输请求),通过它,我们可以在不刷新页面的情况下,发送异步请求至后台,并获取后台返回的json数据。说的简单点,就是不刷新或者跳转页面,发送请求然后拿数据,在这里,比较重要的一点,主动权是在前台这边,前台拿到数据后再根据需求去填充数据内容,渲染样式,实现页面效果。而且由于Ajax基于的Javascript属于前端脚本,并不依赖于jsp环境,页面写Html也是可以的。所以下面以Spring MVC + Ajax + jsp示例(这里的ajax采用Jquery写法,工作中一般也是应用Jquery较多,原生js写法相较繁琐一点,这里就不展示了),同时为了区别返回json数据和直接跳转页面的区别,在控制器中写了两个方法,一个用于跳转页面,但并未拿到数据,等页面载入后,通过js发起Ajax请求到控制层拿到数据,再动态填充到页面,并且无需刷新页面,所以后面我们在地址栏输入地址后,看上去像一次请求,其实一共两次。
1.Controller层关键代码
package com.mmm.web; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import com.mmm.pojo.Person;
import com.mmm.service.PersonService; @Controller
@RequestMapping("person")
public class PersonController { @Autowired
PersonService personService; /**
* 这里接受地址栏请求,仅起到转发页面作用,并未传递到我们数据库的内容
* */
@RequestMapping(value="toPage")
public String httplist() {
return "person/list";
} /**
* 这里@ResponseBody代表该方法接受请求后不是跳转页面,而是直接返回json数据
* 注意引入json相关jar包,还有spring MVC配置中不要漏掉<mvc:annotation-driven/>
* */
@RequestMapping(value="ajaxlist")
@ResponseBody
public List<Person> ajaxlist() {
List<Person> list = personService.selectAll();
return list;
} ......
}
2.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Person列表</title>
<!-- 引入Jquery -->
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<!-- 编写脚本 -->
<script type="text/javascript">
$(function() {
$.ajax({
url: '${pageContext.request.contextPath}/person/ajaxlist',
type: 'post',
dataType: 'json',
success: function(data) {//这里的data代表的就是返回person集合list
var html = "";
html += "<tr><th>姓名</th><th>性别</th></tr>";
for(var i in data){
html += "<tr><td>"+data[i].name+"</td><td>"+data[i].gender+"</td></tr>";
}
$("table").html(html);
}
});
});
</script>
</head> <body>
<table>
</table>
</body>
</html>
3.tomcat启动项目,地址栏输入http://localhost:8081/mm-web/person/toPage,即可看到如下页面,同样获取到了数据库中完整数据(是两次请求)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA6sAAAEpCAIAAAD6ZyMoAAAgAElEQVR4Aey9CbBlR3nned+99933Xu2rqrSVdkqIHSEMGIGNwG0sbAzIBhrbPUN47PCEpwdrlmhvHRUTZtzTMS08HY4Jh6OHmXEbg8Ngj21oTAdiegAbu2UwGBsECKGq0lZSlVSqevX2ZX7//5eZ99zlbVUlqUo6+c7Lkyfzy+/78svtf/LkOXfkX/7unzUG3PJATI6opCw3+Ktci2RkpHH65BOTTz0xMz2l675kRa3DDcslaQOuL6pfm0TfS1W56gYHuC/38jKlvPxfVEk5C6uSry9LkVAIYFbCkb0waSwlUdAomJx5FL5EVsNdohwapmykFWUSaVewInqvEslKp24ZhlFsiNUwBucvrr/MG+E8EsTNkVZrpOmjPdocHW91xvFH2p1ma3Sk1dbRbJnUGegMK7tWe3R82+7tl1/bandWprpgUtZTkSMDw0FSf63M51I1gxaytLVEOttA/Yz0ZktXvZGDAleKGcw3IHClrN3482ubLt+e0Eb1GixZD7s0LjG6LS8uLy0tLy0uLcwtzk7pmJtemp1emp9ZmptZnJ9ZXpxXo1le0jBSRsNeZhu4WkmvdZcvMajyWXfeIXpW+QxJHhI1mGN1+YP0Q5g+D6Jkh+XG6raSGdamWJ+xst17umeOXJFFVfoKxCV6BDAl+vCtOpeSp56S+4rIS5aq3KqoavxQYnOvUK2UuULSE6wyXUferHwPj2froj158sk+2T2VOpDWjagWO8dOTZ46/uiDr3nlS37gta84eN2BHF2fawvUFuha4PTM4pcPP/Un9xx+6vC399/46m7CmqHq+DKsA67JYIUBk3xV1lU2GxCzAdKQsOEMVcV6wl1O3VAPwZCLwRKvP28vu43mG5Tcy09XiadOG2U/yGylGObZlZI2GD8wrWmaXlxYWlrEXwTiNpqL4OHZ+YWZmYWZM4szZ/BBxoLIJHKnP8BhgxqsyGDVW9Fhxq3a+1zsU+WzjsKsRL6KCitlWYe05x6JjbGSRWTEVQx5FtboAUoriV0v37786pf+U9sNJBz6G/uqa0VvWbnI57es6y3Ghuk23OnXKtda6f0ats+cPNkT11cTPWnpYhWSYw898LKbrv/5n3r7sHx1XG2B2gKywNbx1g8c3HX1non/9ZNfb0wd27J7/2p2WU+fXqVP9rNeD7tqno3SV/OuHR6i+JCotfk8ixRnp+/qZu3n2X99noq7uhIbFdKrJHPb0kKb9d+lxYX5xlJztsWsvbi4sDw7uzg9NXdmcm7q1OLcjBEw68TnAQFL314dFLORMnZzR2gjeSWrz3XZ9SXUl+fTAlUz8yBqBdbnWJdDuG4YAldVWEnNJEdLv/lfGLhkNfgN/Gv0KD5r8Bqi+upRRdjqZCW1Kn89eav0ZjIQUVj3BNbDuyfDOi7a06dPd8nWoUhPrWP7yGLVZqbPnDl18t1vf0uXYR2qLVBbYAULXL174jUH99534vCuq1dFwCX74ACwjg5bcj+/An3jVF/hbclBcyaqilUrwT4W9eUaFmBVd3GBo7m40JkdWZiabTVaI0vsewAPGwTPT07Oz06BfbVOrM0SlQ1fa/Cuk2sLXFgWWNdaZnXEWXVkiVVfcG+4KCphsG5CwD4Tr3FuVVZnY6aqnuvJX1VgzbxV4vUwf5pp2rNnphGxXiuuqv3J48duuvHaKy9f33T+NBesZl9b4MK3wJtv2v/wF7++aenE1p27L3xt19Rw1eFhzdw1wcVvgUoLANCCddnoiz/dGGvPjI6MNpeaDSLmFuca8zOLM1Pz0yDgxaVFLRSzGfjiL39dgtoCyQLV1rwSLKzSVA0HfUa/eT8EyQkBa9eQHDEZd6/Ep8pzPeGV9FxP3nXSnC9V1yluTbL2As+h1qVUD1HPhYXMz81Onzn9rh+rF4DXtHlNUFsgWWD/tokXXrlj8qkjl1z9XEDAdb3WFigWWFpszM8J/uJPNVrNqfZypznfasyNLM8uL46wHWJ+bmludhH462O5+tJv4VIHags8zywAuOpFwHlF2Ig30K8RcKxbCotV8dgzgGLPS4VUdT4vDPuYrNMO7YX5hb6cg5drrxAvNyafevLAFZe+4mU3DWavY2oL1BZYyQI3H9j3xW99a3NjctOWLSvR1PG1BS46CywuCfvG0VlsLE605zpNFoKnm432yHJTn4kA+y4sLywEAmYzxEVXxlrh2gJPhwXKArB2PsSfV4VZrORGsYBgRBv/Pt1g8uko4oXCs732uLOWeakP3m+YmZl614//1IVSrFqP2gIXiQUu275936ZNpx944LIXv/giUblWs7bA2hZYbDbmxhvz7cYcXwicbcx0mmdGm2OtkdEWCLjRbCyPsOjr7b95K3BlptGsjxvmrS05KIwNCCau8dR4vZlrutoCz5IF3G57IfCyQXA05IC/7Jr31tWBxcnz0XFyjwkDPAMdJwlcn8HXuba7PmaNRrvng7MDudbcIOEaGJmaOrV7984fevPrBxjUEbUFagusYYGDl132j9/9bnNmZmx8vK9/912uwahOri1wwVhgsdEYbTTm2o32cmOh0xgH/rabo62RNp/VboKAGyNe0RJEdYDFrbzapWUvh70EpofAlZR1FbBM2wEYJCF/rlpTlqetdTGqiWoLPPMW0IfJafV0Et/BEYwIfDdofTgFF8mRJHr1GvsC0NpJfO4dR4LdP8X4gug4LrW0OT+uvRKbMO9KqVgWa4SBWUWem5l6+7vftjJxnVJboLbAihbYt3Pn9zqdRw4fvuHgQQ9honTn8rBWyVdSK3F1sLbAhWgBdtelNtxudNqN0VazHfCXBWAffY07QG6au5ucm+FGFJaDn/21C2twIA9UjeO5sfz0+Fjz+Ah/ntvX5lVT1Ba4sC2gScF4V91DTv2GXiNfnUfJuPUVQsA6Ofea1HHoPcbBz72OMxwBrwx/ix1jYV6XMzOnN23e/O47bl/JxFdeeeXLXvYyzLruaujhFBm/9rWvHT16tCehvqgt8JywAP3iiv37v3f06LXXXddu84g4Q4dKIArKeHT69GleHnomyz1h90xKrGU9NyzAxl6OxRHeg/MB8GX1V9NxrFCV2cTFVZwSNX03W612S//4+hXGmNRBzilLdSFIUVVOeQbnzCcm+DkO/cvnixPCwfITCCZnldNzw+p1KZ5PFnDLd68R3sXRbUrf4UqdzY7eJbtU7vz6O44We6N/CPzqBdXcd5ZG6Dv0FIChdl88l9wQBLwK/I37CazU8FAVNp2dnX77296CkVeyyytf+crPfe5zK6WuM/5Nb3rTOilrstoCF50FLt2z5/6HHnrgyJFrrr2WjsTBEzD2T0Y4da3l5cePHZs6c6YzOqo+2Ov6r3tTy1ViVa5XDdCp5xcWnjx+fNv27ZdccskqfXxVNkpcp3rBZ0NKrim6JnhWLECNa6uDfUHXcDqnVo1WqaJ9ItrYV5M494GjnQ4Hrj06yqweMzsU0fD7mpMYdNGx1nwNdHnRbmF+Tg6fYOBgTfOawvwc81kxTS30WbZAancbHJaeZaVXEO+2L/Ar6Kt7RnUd9R0OLuhOurGUr21HuGrfSYbIfce9xveKoN95dR3+50foO+TWDeQSt7OJQ5XNCqqd5+gKxESLXvkVYL9OqYlbDwIemFWrvDRyMcwgF2tqHPNwNTU9OdJqv+cnVlwAJs9CdoxrVY7VMEmYF0IqrMQTMzo6SiTS8Et8Hagt8ByzAEtdl+zde/jBB/dffbVme8Nf+hqBAiMYj0499VSn3WZUWqn4vcPCcKo06g1PHBI72m4/+eSTm7ds2bx5czV5qKyhzIOy6lf59IXhEEwKqxIolENFl9RVAoOsViGuJhWJG+VQMla5DQ1DuSbzNQmGcr5wI/PUq6Jrhdhrv+1WpzM2PjHBMbFp02hnDBAsUNweHWnyw3Ka+/q+HZxQdXDz0q++L7Ek+DszPR3H7OzMQpNvs/H23ZLAgEFw3zx6boaqzNCZkWt//U0gZ7vgzkOKFjpuHHlstGznRXSFSbULaSNnNIFzqaMK897CZaach9A4NZP0ZlzflXm6OKAxsC9giZ4yxtsk7jv49B26FJ2KdFSIvlNgnrK6y5QAn2fxjSIen7ednZmeou8I+Y3w0zZQ8SPnVLispjvI4Z1nSEmRc9aFjT4taaGsAhLRrbrMXRRdl9Vwxm70gL27kLTYpUudQpaJyLTyqzuKkZEWwBfLzj11/I1vfO2O7VsHcnUjoA7sG343QTy1NQL/8ePHt27ZTNUxPBUC6E+demp+fmH37ufz11KPffy9N3ziXd/56B37imX6Avfcte22xt2n7rylL76+vIgscPUl+7770LHDRx6+/MAVPDWmZ/IiUThAMD2Xg9vzxuioumKv67926mBkjAaD8b3M+q8ktNl8/MSJzsRE9QZ1dT7VkQfKcgT3oXnJErkC9JfLqkJDM1YJSrhKWZQhMsLV1JKlkJWYKlmEC00JFOIIVLOsFFOyDBL3se27hL4vprBaKb4QrB4Y1GR1+mrquYnWXCUOWlRhEYtJfJRJXHdcW7du2bp1fMIguDPGdM5EzhTMFLGoibgLK2ARy8z4vNu9tDjPagqzOXP4mcnTk6dPeyVsZHaEJeRlVoINgj37nIeF4L65VoBBTtjQ0zSFs3EVcfE5l8YlSlgkFyHKpEiXNEefx3NXtBpHMFb9JnNm0SSsZtgKhOphKH5a0OttAZlTlE40K7sKZ6yQrkTe1TAyh+4V6SZwszi3tpHrheatG8TOGI6bRnoNfYeD+0igcbPFU5Q2K5fgV7oPfSc6D7nRCd99Rz4IGOS7MDeLD/ydPN2hR9JlcI3GPP4Iv+pIhuH4t1JAcZUzLefAqzb3qpXlTF0vrJp8OpYk2E98VUuoJsXkudJEEBy6AV9HqpTP2ik6IeCUNzIO+HCEIBZ9dTPhW/XmaGd+bqbZ7rxv1QXgwiz0y1qmaC5VoJGR3/2d//2b37rvtz70b/bs2VuyHD78wD//bz/wznf8+D/7Z/9FFRkXgp6AYOChnpjG7R9eDTf20j7DV0O0rWhwqIazFWs8P4ITY52923c/cN+R3XuvYLzqdHo6KjagmzDAzczOjgGCs8vdujuulJhM0j339n3Fx1ixSpbIzBL1ycnJHXNzE+PjxAR9NVeE08iT2QZ/kji4r41AUFb9ogbZOYC/cZRNIBAXPYNJaLUhPzjgD+VQREBQlYUIksIfpCk8q2QmT1kiHBxKfDWymjTIH8oQEVmq4gq3QlCyl6S+7NX4vjB5Q5MSCILCPAKFpppKEvH4hbiP+boumeW0kBUTOSvAIOCt23fs3L5zJ/N5Z3xidGyC2JHW6MLi8gII2HN5UYO83mosXwh4YY71X2bzmanJzpNjzOKeHzVXAovnm/Oe0aplWpeOQ4nExZzKPJ2vkUaCwI7eu8PF5VAuF2SkSoRLBesii1BWZXNz8XuFGwY3a5ZYsotoh5yFqPQao6Q7rFNqv4Ncowg0kMQMYiMkx6tZRG6Vhsz6t6fkXG2KG3DBj2jYOVzYmk9hBgVhsesSINSITUJD81ymATErR4hlYgo0U8fpjNFRJrh13LpjR/Sd8U1bmm3g7yg4bbnR5BPddJwFfVAYbaQUOgF80zb95gi/WQ70nZ+d5tEJ+Jf7UZRfnJ9nEYQ82gOhlWAXx5ZSOLlk1GyWro1T3bgXuJWsUlmZl+2Fx5/XW1FTmuK8oUOIHX6qO/lopv/YqZzNHJUSPMw2iJXDl2E+ELC5OGq4J8mqJBiy9KvXEtoYG4O2OmOTZ556xStecsWlXcw6nEdIjCdPy8sUo5DFDofZufn9Oxp//g9f+G8+8C9+5X/85w8/eowC7dy581d/7X+aWH5ovDUv+rUUDZ5VzCuQecO2T1yYKPiWO0+dujN0HrqCOzSy0VgFON+27VDwq/o1lK5a40IPv+CK/fd/6esPHTm279J9au9j6na5q+oWdOv27UePHCkIOPrySv7Q0na5OTnyDlL2xzO8tFrHnnhi/6WXSicPI4WmBIJ58QlwkAr8LQeXFC2OJDeGY22tStiX+3LgL5SMFMEk+BRWVYVJKi7IymU1UPgQCZ8+3xFdcZEa4vDLQXxVpT6eQRasCFcD5TJH9/CspgbPGCIJh4tIwiVQ4iMyfPhElpKxcC4xkbHqQxNH311K0ITEyF4oQ1xJKsxLoMp/HWFx8hSnzQ6xBryJJeDt23fs3r1l247O+ObOxCZ8EPA8vyW3uDy3qE8JF87MjP7QRAOfB7bLQsBzywuzzOJMnDTehdgHDPydm282Z5EVrWB9s0qR0x/wHI3N/acSpIKYTlOz2rkrhVAS2c/jAr2OQqEcATk9+FXpomj4Np3LpxIGWlwb3KyvtJKUBSe5OUr1ZrMilbeyVoGOztHLR7xUCJ9UNeblalKBNBDJx8mHt0L2VI1Vl+o8lBQyEzSDty0g2sQns7VQCybGgA0CzlAaDPfzr8paJRyF8ZokCFibh8YnNm/eum37jl27d+7Zy93jSHsMtDbS6iyPtOg43EDi8xRFuhrTASf1jcKWfCHgmTPcOM5Nn2G1hS42Pz/PRgg24Om9OO9HlcK92soWLoftmlQymUSojDKG71swDwkOrlSqimXJLtSbnHZzaIcgJ9UiPJOjfydHhKtWZctOQWRJA6tSkav47i6ISkI3qCaCc/PXZxy5mWBL1minhXX4Zct2+523/2CXeoWQBUt86ESAW4ooFYMdmdhrvXl08iP/+rbP//1c69i////+/B/bna3v+aG9v/iunS+9Ztfn739SjF2MFSQMj77lzu98+J4b3v/+j9xzx4W8P+CeLxxqHLp7nRsYKsC5UugV4HKFog4+nRbgKyV88GRQwtTU1IkTJ4YmDRITs3PrxK6tWx+47/4dO/d5bG00xxIhnZXev5WHwuPjs/PzgGD3TPXPasD93FlS1+2RE32o6vck5wsNFAOON5Iee/KpiZ272WgWUsqv2Iqc/zQQuqfGU2mDWhL5gVx2UjDsxuFfQtCQpHz2UYn7Yr1fwPYPvpzVaXQY4irboCk+l0A0voLB4Uwx7vb7kSTW2RFDdo4Ar0QT03cEbey6DvRZIHsEoCeAKzSFIQFcMAwawuEiUC5ztM5QEh++CFxf0jPfBijsDBEIP3QjOpIiUCWIcEis0vTFmLEUwOFzYFWUCT8indg1XZDhRxnRJA6kVMOR6yx8ZgdNCt4H4X3Afpq7befWnTs7E1viaDTbcwuN2YVGe2GZ1SyUCceUONrWb22MtlGG7w/PAn8bi7O8DMSOxtkZVrTO4M3NzrVaM8xmsnJk1mycG27mVjkXE5a4IpMYza2eXz2zGQIFEiLNMIe5DifAEy5hqiS78CyBqrgsKJ8TUZVExeh3FfJKMKj6IgYz9zAzcxfQNSPPhU1EKpGhHDgJB66R18NhPRclR59yMqwdbYKz0GXYG6b5TUeJDCg0DFSRSwpkJl4+NJJRDG3AdSRWFSeYIqdE/UeR+lWLTtE1jVBZQWbOFFnFJP5KaaSTfgzRTidEMCoGJacNOZj5UHFi/xD7INg1BPDdsm37tp27Nm/d0WiPAYJHWmOAXu4b+QngOXbzZgSMJVgAHmuP8L1CDnb7zk1PAn952EfSDL9zxovXY3oblX4UNeESVDuNIrCIrJqcK0tR+pM55VTWdH+h2lrxZikz0TnGA3/aQuXDhU9K8BRffbQCp++9cFnN7tqW1ugXjRUCVaw0ltKovhoChtZFUANEF+6vgb/tsfFWZ3x0YuLUk49df901Lz14VTBbxZccS0P83/zN34AJNm3a9Id/+IcPPfTwz/3cf/UjP/JWbrzOzC5dd9XM2NjWYyfn3vPW6y/ftbhj4tS+7WNL81OLy2XYX0XI0KR9t77r9san7jl8rHHLintoh2Z85iKPffyuDQDgZ06vWtJ6LQD8/eAHPwjM/aVf+iUadskG/P3Qhz5E6q/+6q+uHwTfePW+z/3NPxx/7Nje/fvouQKFo+qw9AEQMPhg1+7dDz30EJ+DQBB9uXvQXYGY+ERFWg762r0+dcUIKzoNBeYTZOJYvUyxjdbi4vRk48GjT+7eQ1/y73mFbBMQdCfXBd2dIxCt3unjOZrhr3wv3fmzVBqtNFlInIYtvcohN0LJxsYby+y24Nl1RlcwJ8zLsHHE8p8EWTp+OcQvuxImFQOGTyIzThwQELAi0pkP0aFvjIkICrSd1VYpoOGJuo52gsJDeSKiiJYu5SIrTESwxdevO7nW8GU37TKTCG4GVMAwZlY+SiGedqXU1QIWmhBLUiEmplxGZNBgBApbiiybZK0LZ+iJDLsRiaHKQVKwHeQfUlbzi0KU1C1cIJilEU3mm8Y2bR7fvM3wd+vohKpnmVfZOHga69fSQytmcd04eRbXKz+L443F8ZHFWaa9M6dPj01MAKnhyPSpFib4oz+7bgBT9zpd90W6uXapXDsZWnH2WiA+FDHle943xjLUSc1dRtd/r+uKsxTahP+IjoCM3P2TaknhdDK3LtusqmPEgRzdVBNbouJ9VbygypGa+xPCExIo1JQlYBx7QwE3KjEihWzksm6F6WDA0kNKqGcdXViIPSZgSkwaPrKNaEiy3CXEEpJMu3xPI3O5RGEfZdLISRkSK/NJCDg4kd+gOtCwq0sxURKXqR+x2QxihHbeuhPgDBFRCBUg/sIoqiw7dhqwD0FwjQMusSVdi9kpy6CdVooJ0zkV1kbgfoACYh2bGNu0hY4zvmVbozWuEa3trfMLjeUF+o62Q6jpuppY/aXvdBh1mWgWgZg7/EGJJo9N2FNBL6Qz0mvolTJgNIDSadwI3ShT6aIz6CK3Veyg9sHbp8K/YdWwjUvcXzrndFWp4jQSqFAuGD1YWBxHunip9rWcCjpnfRqfOIl2O8GDDBeXQQxBX/NYEQFLxzCRGJqZ3jYca3Um2hMTqEaVve3Nr+3Xf9i12gBV0G5/6Ut/BSB43eu+n+X6gwcP3nPPf/74xz/+hjfcysOu04t7v/yNJw7sg+vS7Fxjy/jM3f+wc+eW5iVbFhutCbJjvWG814g7cuRTjUbPdyp6thFU9wjofbP3f+rQ3d85cBdncqXdE5UMOaoIraQRV+WW9iuQ47caHzA/ZRpg0Dj2hU8g61PVHQyDREWeAr0yK0lVHim6V6MKbR08fxYA3eJo2ODdAoIL/I3U9Uu76tJdm8c7R7533/adu9ncNWI8hB9og2GIR8Ojjz/OziyGJdjSKzi4p6d/eIVVg4IuiO/tMvRjjXjZU+9OA1m+HY9MwVRc+9zIpubIow8+3mpuYUSI8ScEJTqNyP4X/GXGAW0IcBAXN+ny8w07YYYk6yg1GWBErJt8nuWNLy3z3kaj6bsJ0EQcKMR2qLmlxvyckLSUL4e+MqtLybfiLor0igBJIMsWvnUVtPWytGBoXpmGA2vP7VGeBopogfWSeb5j01iY76JV+AOzoGHOEAimdmBrpoWhrO7REyZhEilGODR0AKHBGV93BdBTb8SyJKMXjBNnVGJKBQoHJg5ZuYjmaRHFRATQHflRTIsVWXGRty/e+iYEjIUpeJQFxcQq1uadBwVj/R6VuFHh4J4h9qSTjtCh/Iv0FQNmLvPYufEw42rzomac0fEm4HeUZd7GslqTD6gz2BDmihtFWg1rwCTx6ia3K0tj7B5ud8Z5RYiZNE3hnsXdDVQjbMqzVo6IWFcaXlYqB1On6imE9PXcqDlSbd4+9UQt0L7tYv6nfvVnp56Jzm6bmZ3kxZ9iTGBaVY6oAYTES15x6TJzyGdxxiUJaomWVSQSiAZpQ/aELUt5zSF5FE3wR12ZT2vZ/FaU4mgtcxE4tQgYtZpWVflC2RRIjHpPuTyisZIqZSjgEBfYNEPvQCD2ofF4gnHTGqrtk7KLRRaPmnIaW1SC4OWaUiyUwcFs3P2ivoRR+SOVAUrmG7pkadbig2PUAp3p62Me7mweLFCKpYKJ3h5s+dDCvBSYK3UjAOwVdJFuzKlG7KL9UUo2qUbfoeMI/tJr8LGyNbBvBCw56BR9p9NogoCXGq2lRntxgsVgXkdt0/vUcfxJNXcci1K2XH3JxlwH9o0OEOYNIirGduWOhe0XMrvtorMKWy2wWo0220a9awoZZToA0Gt/hz7xNiYfR23CE86wNvTVV9v4bhsVGqaQPnaqdo2hVKoz4OluQ5Kk3tA14KgV2cZULjOjoN8oBIOPsQC8eer0if37973uZTeIZn3u5MmT99577/ve99MUhBxgBRyB48ePf+XL95x4/PEnds2/6Ormtx9qj7UXpua33PvAzE/+wPI3D3f2XX69JFCMDbtjh+8Bdr7r1rQAnEFufDRBV7dta/S+c3bothuAjac+GqKcofHh75yKzzCwXvvxY3emTzIYiYJWU5qR6bZDfZjzU++/AVAd/Mzshvc2qi/n3fMRge7uRxzEtHHVquvVw/ZBOFuFzYYNVWc4JwvQkmO5N0AwvOIS+BuNfEPcX3T9FV/88jdOPnli58hedWRg0ISgBmOFxoZ2e/uOHY8/9tjObduI0RHwV2BOUwJO4mJGcCb35OjQGh9IDL8EEq2y5XwO93mbR0eeevIEkdu275SYEBwDRS8pMxeTQhzI0mQp8kDCvKSv+3aU1RBGLDBkhEEbes0kpI00t/KuAQCLQbk4SsUiJfB3jufbXo7tDugxjms09rCaJhaPrh5hiS+AldiCPgkIBAvz8cnFJt8O6ozpHUTokSJZcyDg+bxmwxtUvADsb22qcF4MBq16GUGsgMusstj8ZfgMBKlBmEOWV0UgUcz5NtfcHKtBqeK0MqOVgrgZiAk7ZbcUVmuQJQ6qpmSYgMUi8+o10QGCLUc0EXCmdAkNl/jlQOUwL3sMUEzQ3wd145lNyuMQGnXORI+hlliqz1vVSYfbWbsoFNnVMnU0EeyjrRm50YZ/6MzKL9No97lg1LVjiNfhuQJVVeQmH1BrA+HUjQkTDTgAACAASURBVOJAQHbWVsYojjzxlzRJSbpS6VXCnlIqIxOs/jVrl5kbarV4O7d9tf7oBG7zavY9nFRoMomfBIlaNHFSH6EiRCM54RG2cOVyQYpHRumZfQfk8S9j8ZdLqbOEylN2UdgFWfjIi5tTRh4KKBXt0Er9mA2N/rZGV1vzhwSe8SfWIcAh5Dg+2CgqydTJdrIPA0NvMAzYw38ysFo3Qlt+9i27pJLlspmfCoUMO2cSLgwMTHHiDzswBMFqSbzglAZPQiNAesTAKoNgLqQzmop/uGBPbUhDAWAtl/Kb36ojnOwq5cIji0yPQ6KU04KFHCQj/Bx4chKRw+s+K7dK6wLrhpUtv0sj9JoWt/rBDh8hHHQcAeIQaD96U6Qy16hnNbm5r3QctTQ1NjlbNgUVW/6i0PIxQCJVCbzwK0NT1qbac7dYbou6jDgxdzlkUFcX33fTzuaxcfYkj3cIAH4BwWN6tzX3JiFgPtwWR9hWarqriI9vfohxH1JPkkDVZZiLW+Zel2qJ5HAqip7JcRs1wt3A6Fib72vwFYiFhdte9/LerGtcsflh27ZtTB/srTYubz355Ml/9+H/66+/cPf7vu/4dZ3xM/MHx3jTd2kZUadOzV9zaXv/nplP3zN+2xteCmuVamMu8C4YNUHWYx//wPs/xWXeE7zvjt/68Cc+9f7b7rq1i0C1kJvTWW4Fn7JumwF0Y98dd94ROsCb704curvyhbK067iPXY+8Ow+Bdz/xhWN3FBB92yEIuluAtSX49g8f2Fg5a+pn3QJsfqiCYPRhSTjgb3VfxDr1vOm6y7/0lW8cvf87mzZvGWluYjwB97Q7WqUTDmk2d+zaxQd6eeTDdKSBP63+apThj06eh5Y0sqQOT97oRTHSWBuCeUjyOfd/RRPR7XMpz64tow8/fNQDOxOIhPcUSlca4zThsFGDaWG0w5hoOmg1CjFgec9Wgn2wgg807QVoOxomm62FMQYY3sMQd0asUFJhr9cKaPYiYJeMwkkXycqHr8WEkV029MItqSC8jPPm0xM0vhAw0mS0XZif4BE6DgTMqIrj5SnpvCAcDA1jMsMwqxEUz1CVoVH0RtV6IEcRZGb+PQr7NsD4G92IRhse4HsNGPjLFlX4axrmX7iesZa1cMZt42AP3xjTq+M8omRiUllSAW0ZpAsEGxwHLoxKw49Dyq3lws5aGjcCnp1pMKfMoZuf1LrZeMqApblTVUvLE5QSuUujqiM4nCcnrUEFQI7F5ZH5JR0821z2jQoiFmjttqTWfV3d0ojZnebBvY2bS3Op0eTBgj6aJia0rzBGqhXVSwmqllxTKeAiurBERJJqUzaXNPu5pKYQPCgukJoaRIJydEYaBE6oTid3Al0Fr8QqqSNNECLC5BIsY5EVkowIwdoSZCdIaiZZMzV+wvLUtYrLQZKiQp3PJXWZiUamhZMnaUiA0glH6OZUT8NlEwuGSB0ZJwTMsJPURhnZxa4YU5H8hbPMRKHWjK2SRBSAX/xD614QnrpEOOITmVBVlJSiqsA+KQiN+NtDWTpTIGD6k+XKhxxZTRWhudRUkEVKfvZBTxBko2U95wrbBl9iYaikFLAAr1mime0DQlNX9b08hhKhWakeUoWyAKwhQvLmdUctXBotOBhHno342azkUa8Rol4eWaDjLGrjL1Zn2KF70DO4UjPiSKqFpZzEqEiv0cci1MVSxzFD6WJj2pyEouFF65N1cdEaleLUUtVkLQ2DUlNJ5iaONozsnMqdikH+/DywxRtn+rrF+AQgeEJQ2PCX4RdxbqFqcwzOs6yeeAGFuhQbacs8SZ272fAzq65utRD3Ci5xUZweBJx1kZI4uEAFHQbTbTTtiD7QGZuafIo3cn7w5oNBtqYvqY0GXzen1gmj6vzC0v9796c/+pH/+8rx720f27xj08jUYuf//LMHd2y+9PUvnPn4F2TI975p5JNfbHzub0+86LVHD1xxaTBZUxaLrtven6lAl3mFNsHZQ3cn8GmSfVcBPnu3CR+6tYtHg82njhxpNPpWZWPvQj9t7Do+9IV77rwlM+muP4vZgQNsyCj8tAMYDSsKxTtxlYjQoOsHqO9e94SG7IIgHQkVmN6Tob44jxaogmDYnjX8JS+d86YbDnz1G/dfcdW1hJvNTXo039E4RUcSHBodZS/EkydPbmfbMZ2WI00/mjwIekxJPUaDgbq7ffVwBVdw6qf5v5fEmfD2bZ/49v1HeELND6F3RzTTOiNC5RgTM1LkyaAGIDkesrHswoglx8eqGA3gIY8RTSONh09GCcem0bKqR1IdyhyroaUMWzaFULINAl8nKRn+beY5lhNNMw+6nVvmwz96cgbAtY+CaIVmiwsTCACcAn9BgRDkmV6/12MC0PD8As/o8wiLCOcVnqb4sIq5gNkQTZtNb6wItcPX3uhliK3DrDcFSjBlDp4xYXfXgzXAjy7iMUuxiuOphGJiU2Ffw1+SGqxeGxciFBNVjzzlyXDEq7Ky76BiMCYmQgs+nMC7Y7w9hnqqTiEU79AwNqcFsiSjKgYHR1sLFufB1w0CDl8zMTte+OzDwvKS19dRDM2JF+wpbYAoO2Xh3zM9WyB0LPHSj5gQryxM52qDQh1MjvzZ+WQv6sycRSaUBKWpyadeVlpbEgqFnSpbVS42/keY7CaXWjgtX8HwfCJNZK4KqxWsEjITRLIrAWhaglaGV254xh6SZwOETDO0qiHdQEFqhHzXpWyQHblSYSBCoLEZw0jR1eUSrLNo1jgT4hHKj36xBO7wzbfyqD/zSCebTwYf9ifxYTPKS3tODgWiD/JblNgmwK8QlsWHj/aFXs1S5Q7PJbbHdRGrerHjpHpSCk5jplXQhW49WfgV9MVl82ndHXZuON4KEYKwV250Jjc/tymNzFqk9FIl2hYyiucxjw6vD1vR7aPJOH94LkMIqMRuIOiWBBeaenQcXhhtYsWsLbeBJKk0LBM7oDQCYHBnkRV4GubHYtyMq+PEWBrFDbOpOdiecZfunWtRPbT8qFMZl5LDOVp4twsoSuYWAf+ZxGRZUfgHAlatY0gjYP04jpaBbVpWH9AhWjS8GUW5xMGyzTqEOcMNLa2jmg5MU+9FAdKgMRleFwEXm0iV5FQSlwqb+ScwWIlqtvnK+JveeHOHDXHrc5bV4OtmdJRTp07xYY5/+7/92/nDH/+571team1tjUxNznSu3jX9Qy9e+t6jI9//otY7bh2dWxi5ZOvkoyc3/Zc/+7PXX38NcoLJmgJXBHzeENE4NBwmrsD2llsPsSjsPNWtCo1GbC8+cKAvXyDqvsgVLrUizf6KO47cte0GpLCefHfDy8oZPA/Lt++Oj55Kq9AlWTsg7jnEgnTjzupadkmvAxehBW5+0XVf+fq3jz7w3WsP3hQDAQPTUlsgmA5M396xc+fjTzwxGw++PdYw3Gjy8USn0TQPK5zVdzhiQFKXzhaJUVej4uqOvCLAY8li786tjx5/rNnke215kFOa5Fk6ISHgmE2ZeP3iAoCD6Sd9XJ1hqzuHac4UPuE3IUMK2tolMMf0riJbQcYxIOUi+9WiCC4KgrWTgcGag6UoCfadANdZMUZnL1vya9KK0xowW/EAvoBgr3biI5Tpn+wciCzxjLCOR1G2Z+gNDBymXmwvUkzPBvrcrJFxQrGUVOX1BmE2NsMNkMoehuJCf9h4xgd2x1K00HNrQYayay9o9PbPoY16aV9iWVPXtGykoelkqc1kgHxVD2ybjNA2ThgNPwLYogAl1DBJUUeXOqKZGNlgmZmpKd4Fx5wC6LFLJG3F0wwEXl9e4pvVKW+X1zmFNAtRFJmXjw1xk7AAAmaWW2otNHkBDoDsgsrHhc8pZnGtEwPU9eFTzeUcs/NLrLawRmkQLHIVkVr020sJV+khu2pSsZ5Hg8hzPRGKcylzG48OJXPJivL5twtqfGJcJcoi50auKiOQHdHB0eXILGJtUnBJNpcvbwFECAVLYjjtw2EpSm1DTrO7HdoEx8Q5xFp2VW7oLHmGg7ahPNq+RdEUF7y5VzWPKSgO1kEQQoEklingQxHpK+pu7jLY2L2HzeOBLIVIirOJip2IVqosS3klWp2Of/WDfDtKKdwL1JUkD/G6DYy3oAzo3ZldByoTpdfgRzb1B/+FWfS5A9UsfBDnOHnUg4ptky23khmiTrSIytaE5GBIFYujhSQGXAUxyeJiR5G4Q9EnyfRbhnzPRizIReF42sMBHeMJRSdSmuJ07vJMoY2fpITZUSw6Dh8NpOPEh2Qps8rtEsC4iIsYuozuNnz3yyrxYrxpmjoODcdspY/ZYEbfpUdduE5UKbhiXoqsQrkmrBJeupBBeu4qSRL/KK7qxjaP3ghDHiJiSz5/FAvAbvlq/GjhAVB9iUyY10Ol2mSUVXJUF3G7iG7dPhJCJMjShGKzZQiGMxsVWE61Tx8TAhYInpo8yfrEW159Y6Sux7csrQG/6lU3f/rT/3H2xDde2PjkJa8Yf3yqs3NiarQ5u3V0jkbyphsW/vKB9n/8yrW33zLVaM//2X9qvODV//QNt76ObomUYLIecavR9ALZ1SidlnY2fAqAaui8weyr8GeDxS13e4Fa3wXW2u5ttwkGd7dgrJK5m+TNyNbqnsa2uz7+vu5yr4Fxvf7bNdXTHKq++oYodkFUX4zbqPCxzugLrr3iW/cfvfTKqxj758c7dAIeggcCpj+y0sCPBRw/dWrv2ITHj/DygBNjSvgeFUjIPWigu69XuTROXXvZ3geOPjJ56im2aHnwklB46KRZRSfmLGKQqAGPp5navUpQr+mLMog1LGoIE7J0jFNEaCda4jkYvTgIsCt4WaBLphAfa8Q0TYCREJgDlDRi0FIubCXJAyxDqsdyLkfhk8gCXCzEWxSzLoAUYiZGMh/RiskYKpXJjryMtiNskvW0zSAbsAmbJiiA0Hh6K9ntZdachSG8B6PyW36CFsI6WogyiDDQ8bvMS4uarRc17S+0l0alkBa6XFRYY4eMwtFIGKahV11IJgjygzO7+HBYjMiwW1z2gWAR2cEiDtnZb15iCgzIHg1+GCrdJ7BqNdIc37SZH+3EOKp68IOLFiKKIFidB4dlVKfLPCZgIYqtDGr6fkqL0GILAgr7lLoG4v0cWyDYH36Kb6C6XUKK7poaZV2mR6FJ5kjQpDAefySo1SUnQhwZZGZLxeZKlrXloqTWQfGZnpS4DREZWdTGVY3pP67FSv/hBVf5UKl9qgnrIQG/5GxupGB2u/FxQwGBUgoBdrcaUibxjFPAQZdc4pNTpxAvQ1BlhNiOhs0jkSb1rObgFKepWDKPZAl/4+wTLeTq/mLsSxsWkIUZ7CVDIqoumUdmqqRBj+hw4N9ZYIYwvW5HLdgImKIG+jfSsnIyXcgJSZQk7ItKmFyjix3EEojDhyjsrdyK1wYsdSjd2fKMgC20vK3FXwDgaDCuQ8mUs20kOhnOJ0njT/0UdVE1vqIQYA/B1CT5MA69SUySapykpZSyYko6K6f85mLGuoHEBtxDso7LjuY4EuOoW6wgLXQoI91rRFvLQMD60Mo8T124ddTHg/VIUaQii7pU36EtUB3ellt8ok0VDHOj9/YYidC/GoZvRtKtZjFDMFfOLCXaJ02cNh9bzgLOuqvGnQz1HBpVfHfwpCetJ1qu9sAoC87sVZAQhK+nghK7glNnEVM1IB7CEDhz6onvf/VLd2zR9xnW6VzH0C7v2XvJX37+s6/e/Xe33Hjq1NziNx7dvXv8WIc1jJE2ywmTs+1XXv7oVx5o/rvjly8sNF9868++5vteTceI7JnJOmUOkA3Z8TBAMyQiVl3z7oNDt733gDYV9G5nKNnixbuBpeGSXgnwPltlsTeU2yj+Nfxl0duo+ZY7775l2wc+futH72j4oxba/vBbt1Yk1sGnzwJV+BuvvlVfjDuLrcCo+n0vO/j1e7/36IOHx6/fxIS4uMBLuqmv0hkZGnbu2vUwy8Bsb42CqYfkf402cqQIMOguVjNxdPz12yFGiixW+eDYGW2yDPzEqZPbWvqtcsuR5JgF0sjX0nZeTZwtrWky97BwYLkegCOP56nu+IOwyEAe5RVwZCaMg8yI5iB/y1uiXVomvfTyGXcITJlCDV5DYomXKxtA5Qfd2BrIkINOA4smzDTzev+uRjvIiCNgXoIhntgkOPKqxMoFpffUaWBEKRdJ0xmjMqMlcyhLkba/Jvy0UUH6yFQCmloGct1oEjSMsEqLvC7iSZn8Lq75W3QACjL6F87EiIoNxxbGEbTmzRchYN9okLmLjGx6LqVQdq6JdEE42dlaESuVMIpRMDiYFWG0oigxJ6kMmky6dRTcqjyznHM4m12Vp6TaLgR0EPZlFCzpQDXyLJQ65EmufwJAplROubCXmqZncRAlczmF0iInb3rlmdJWl8FdamWK3OLAEYjKkRjK1U7vVHy4kCKfulf1ypryjXjCc4OU56aT9TMxb8ossOjNYqEFWTRV3QR5CgJ7QySAwGCU9TD1LOui1iuryMWpCCRgB6KhrrN+oo54MI82HqR65w5M8dGSBSPUMyVRuMfAx0+iI2v4tBZtqXW3kpWtEyd3B8szH3nGuIkAXAgCdn/E5w0hG9g2862gZHsxzwBY0rX8XArsCoIgBKIJCrgzxYq0rmWLKC+lUwltIgIhSdWpoLtx0Dksz7HRwEw/4NnOsrH/XL2woIAylU0U7YEK1U+xtGbgqMrB5VxxFQ14gP9ZRag4FacyR8lVdB2+JKAJxan0/WQG77YH9mo1wRhabds0Mg0DALdby3wERnvc8tKs31HjLcB2/LxaFKjsqBEDBIZScPDY7jZQTGEKKYDN7cRCSi67sRgu66YoVV8kytjZuWulCzExsTil5pHEqQhRt5Gmm5g8eyqm17nUuW2Q5AZx5tSTFOj21724l3btK5SenVv8zJ/+/mv3f/PeJ66+5zOPUZz2+MieHS8dOXOiMXds29jkJdsnsOH3XXHkvidm/9N9W1/zQ5hU37yQ0hXrrC1sOEVsaai8hzacbGiscbABZyQP2fFLgncHV16cG8pqSGQw3hD+zZC80bilfDnCGNi7oFkU/mgFXw8RWUedVwtUv/wQeLf6YhzfAz4Ladu3br72yv0PPnT08quu8wwhBMwROIapkRGW339/8tTc3gmvi9JHihgNIZ4DieGswZwOnbxCNTQQvS2SxCS6n69jVCKIYo98+R9ZIWQNTSOcMUBM9BLsZULNQ3aM9Rau0cjDnFZGPBJJo/R0kTQ75lkOTXsx/bhQAc6QS3bCTJIyhV9t5kVmYrX7i4IyZDOJAoG1t2GGKdlDJsMcOxa0cyIL0WsvGuNxMNVJJSCGNTfCpGIE6W7UAoUyOjMeXGRaF0+5/SfdNELKeIa2srgu7RiQOZQuXspj2iiQ8ocGZqkCiYLcSNcyGytS8nnlPnOj9HCRQy/sryeCS+wwiYVwgWB9FMwEMIqAr5zFIWuRueQ0IrVHMGtAGWUCL0ViUyYi3ScYUlg/FzYKmjmcrzOsaQDYmqUbW48moxjiA87ix6FSS5tUFhnWS8W0K25A1DjDhU2hSjXSBPPGRE4/MprUp0YpI+mmyaTpUtlcOhRy+3WToO7UlvjH6J6w3YqjsYgVl8gXQbc5dY2UlXP7yxfQSpgdpI5WTSA11q2FBf0iZkBSdJZdbAFZIvjo5LDbJxdwCD8oww6Kke4qAgJV17oHgCHsxFQe/0YizMcJAxuCg0RhKg6ZiRj5jjGpgSRzgIF5yObkAo/ILE5FTRmm3SYjPmQBbMSqybZ7UeK0UG9MCfonZH7mGcnunbBSLpzxNH2Z0tBn4G9R6qk54D5HBq75T/G2IDEqsU6cHVX8oMZXgjMrlPqvzECcB0y0EujSjYNKwAMo7ejQ0CEWJhOlQvK7fMX7bJz0DV2xCl1eDQ+syeH+7xJFQfWszF0mJFu4iipCcrLnwVuqsl5ZGVvcxtZiKlWgJsj+BL+mxkYF1YsQcHKq09wvVEaZUkpYK2wiBx+SogFhFSnufyyS2qSxn6zoXkliFNM6qzRySJIwy3Pli9gWYCEhtFdGuTTvEErxOvHdzfU519Ly5FMnXvLiF1xxyY71ZUpUaIjUz/yHP338G3+y9+CPvePHb//YH3zkX/8vH7z9bT/2y//qdx88euT4saNPPPKdBx78q7HZb7/w0sUXX3J439Y9f/Lv75qc/e9f/9qbWYhgDqCwGxI6SHzL+z58+6H3v/+Gu64q+2UBkh9o/FZ360Bfpnvueu/hsrGg58tq+TsSsSTsbPfoM8IsvK7yIlsfe10mKDu4vUIfPRtCX3Ig6dRVH+HbaRVHnrsb29hNXLtn0AJseMD1vfpWfTEuUs9Co9e+8qY/+NPPHT/2sL8+ppEL/BTdgA7F0MCvY3z78Qe2M4V7fGEMjN4dNJDrj/7ONQcDjsY6hTQG5IGgT7EYX4JCScM63s5tm3fv2HbqzOTo9p1mHaMRworTRBbDk0Y5a4FycgIGHux8wdDLQCWk4FmDwVGHJ4sYqPCrB8RMaJSBR3bCwYTjwT0F82SqpSgmP3/AIenuBE1GWpAWvGaEdRJswg7SCKaMo7wIHWjAtlP5NW4rK04ztLLYwYGRTaVjVnF1QEat4Ls0eJDrP+dI5+o14eplUJAlXEmUWTXSa2ogmNPTEB+5qDgOTW+sBGMNFms8scGfclYP6LmM+EHpScv+k23VH3nerz1Rqk40WXIwUfJDx/jxwp8K5RmaYuo1nXjLzQgn8DF+vOVDuXzYVG7rKqnYi3kIcJMouE77a2N9UQQirtSc9UoZ3SBUu56VmgAt7GmneqeZ2FerwXG/BEqGkyEyHOw0GSMhzf/O6+qVp/jsloCLfPhLiqpLwFz82wKRySEC61hbPDnyJi+uK1FOUiuRU5FoVEKJ3NvQgAHBGUyrffjfdEZUIQ9r2cXCeagJTbTMBFyAPiS4PMoe1qZe9Gq+kCweWpMe2YGokMkBrRb1kwy+C9bCtgwY1nTGWIEGChOtnqUa6Dq4CfICf1stdo+ECpJOKAwS8oof4EupSpd869Bb1aG+k0TkhpGJ44JMK7q1KVbMutEERLlpYTRVI19l0++EY0WeGDFO8BqcqlvjAx2Hg2JrXFa59aF0CMQhS3Wl6cJdxUlw1RKwXNoEEY8jgL/g4GEIOG5FMLAVEydVmxsSTIhMbQA9ZNrkoGcA54KqTOoQFZOJzmxYocE4r9uYV1oEfml+HNBqiQIBzoXn+oWTQnLppFokahgCJqVYQhkiW2P6zCnmlbe94RW+3oC3dcvmBx9+/Ltf+j+2XfLyH/2nH9g83n7FS39j/yU7/81dd/3B7/3uj9x++yt+6J/MLbzlwYd/4qEHvvPXf/1nWx7/+gt2PvKmq77593/xP+/cddcLD16lOZI6OUenldxb/RHgQ4kTMHJF+AvJLXfe+QW+4JbF9sDUzKz76Qlh0g3B34R+11AiS9c5cpQlXj52nF1JATjfepeU3gDbzKQ+n40FwL5Df/UNEEz8WcNfVNm/d+dll+499siD17zgJrohPVfP3XOPZDDavHkzv3/51PT8ngmDIfURjSOps6vr67NSOONgJ4gATslbqcCmqCRWe59HkOuuuuw/f+1eRhBGNPSSCJ9Yk2QZ06OlxrjsYrLivl8TYUxr5GTqTLliStOMphwS7HErxh6uiKKEcalsjtGWWwdSDrQR7M4LAixHkWxtKa4e0Wp6XNAeAk++YSsBC5zXaUwOFxhLDSvjGZiNb3J8IzNGXg3Iwl9ir7leOhudQAOdR3m9NW8OUEkLKeIC4LmePMFDE6DZPtXrvAY6mio8m3k4RpAkAVPILqQiS1l1aCQ/G0GCUA2yAMHS0hJDfkh3nLy4LEm5WNYw7KJy85VmfYGIZVPUQxjMVXLVnzjEUXieS0CcXRYgIqX3LC6ZlFgPYP0+OyTI5WB7cOBgYmjhIpB1ZApBYWeJgO0TFkraJULbEEOrlN4OIfl24mnnmiuxZCAZ0+hfzc2sgyl2kLMc81ct2cQqVlhJvJ2Xs3efaqamZrmU6pCp2bDmo4bAd29VCWpGklp1EhQ8qQfypj1OkuJonXBkSV4+qdpcMjzaBsxTAzap8kSxXbNiFQxItSbyklIec5RBOaztoh7aeikuzsSrSNLbrd0ZoQxR0ECg/CKwC7NKUovN7V1JqYZoiFp+LIq4HlJtqEuGS49xJFlqJKhNOsL8lwroNFWhrykEikgZ/eFccF87KixhdS1GZgmSpHqcZItsBIJS1bcZvi+QhsE6C5GokNHlbPYb9kIZt3yt/vLjmjrSx7OpBg4kUcgqAqYTCVyxDIF4BhVo1MuklceebAbOaoNulIwDaU0+7UyJE11IdrQxsaxIm/rSMnFi5/9oQuFTQPUfW0sWkNNQplbBX+oRStDhdh0mN6U80shIjYYji3LZcBLKfZ0wsWqZz3yY3npYVkiEbAABRz3gByexkwiaEgvAV1195csPHrCIDXiPPHbyG1/8vSu3HN/18rcCf7k/oz3/0p3/3c03v+oTf/zH99zz5auvvpYXEq49sI/jlte87r7vfPuev7p77MnPHdz89a998l+eOPqOl9z8hrXladX0zrXIYl/vMKqhKavzHJol8x6StYfenyfuAdU5Z5wrmy70itxH9UG2HgZBlr5uIfidf8cjJIOJt23TO3z1L2X0GvZpuAIEr8R1laSVslTjb3nJCz7zl1899eQT23dsqg6R9E5mE/rR9p3bH7jvwR1jW9OQEN2W0UHjecWpR/f0ag8raUSAjrGgQl3p/Tm2Ox4wczcal+zatnnTppmZ6a1bt2uYZ+xhuPeIxpiGakAK/jUMSs3k4EtI31Aw4kRnD1kxvMYYlXTxkOPhOyvAGR2KGujAwZSSSiyykug88NNAmEyRBko0dLRye1ZGE1RdWtSL25Dbiau01vRFMgR6DQgfRTWmrzxiJAAAIABJREFUMrB6ng+eFILRNoMofRVfQzwziIELrMCj+pJX0c6P8qUuzhJkDpwfK0cAH45w9SHElPO7niJfWgtkRRBtBfhCBBQCsiqPpr0wVPi2S79HEi6MqZVK1odUfpUItEESahJGU557AkBICElJELOssweTUkox3ZBDYdPj69AcLBDsmVjolgLGHWBwlXQfsYbIWyq4yMsMDj3bRZe8fmzwmJhDoyq2xzmBH4ujgLa2qgUHpZtzkISRJIJc0YJI9Zyr9oAT16y56LKTFBNwAyYaaosk8Y+zQnQYfO8MAEvSj6SKW5E1yZYJ3UMqouFKMtjTjGCnM0VLfyED9uIhZ7GmsQEomHstSmUnnV1S8xKpeCZdEwuTKEMpgKj8gF9ni1FGLTDTMHAW6RB5lBPJAjpylME+HvTmmrJ09bYl1BPcR+ityTjqXxWnm4gsykWT1XXPi9nFPly2kNSzcMlXsm7mQn4YEl4+UoG4kmGTk5wsWrDNf9YHFrAF5Lj6FI9ttDlLbyZoq0zKlnPpE32SkwyfBWz4LBb+k7xu3xGiZUkidRypLUflxT1kDBR0HVSgCaoVcjCS0HGi6yV1Vdpoku4kjAcar3R4mFRhverKiouMKD44xr4YgyU4cQpGYVV1JMWrLck5n0h1LUXtolYiTDSCRG2InDO5Vt2wYiZCn6hcfBqBGKruXH+SIwYS0YOAS+2GqCwb8bSPhZnJhbnpH33TqyuJ6w0+9OCRb37ru+32zTfu02d9MRniCbzhjW/kCC5cIgeVxjvNF7/oRo6/+/pbvv43/2HpoU///ad/8+7P/Ol37rt/vfIuDrohaLZH8SEIuiedLxz79zNWWsVei38fs/rygrTAdQf27/rH7Y8+fPTAdVegYF8fZSoAAU9sOn5iamnvJo0GdtzVe0lJPb3r8vBITKKLUJdiaAjannhdxf+N11359W8d1siXdwTmmcYIeFQbK0GNeaAUGobZUotHu4tL+notz+vRU7M4cI8ZAcYMiDEU8I1gnubHB+AodRQ8NMGPo08vFPUgrYmS4VmpAQa4W9CAnVaeFK9CcXgFGxX9gQlIPBVqJiYxmAgGyhUEzO5cDan8t7SkzKTAp6M0/gMW9cVKPw20AMmAibSI1/UUmw5i0E0Fl2bt5dGYoFFoCWGO0xIyBCqRpjTJcFjXymWVtKcDaBhvDeKbvwqIkyVlt2qbqYaDKvwgQymKztSIRNSgQIAEoeCxcYqMFiz28AoMIBgFUAbWoreIIohAVFOV/3rDyT4qt21FsdPErEtzJhDFTMa0VeEfkUHPU4l0ZAAtI5oDlJ5qNKm5JqnEBX6H0BgoiiJSzbI42qPW+olXLlUPvqGd2Mlc+hypHN+XdoJbrx6MqF+YETEGQMjh0byyBI1qUyKSXminiBHtGVXWyE6qrRkNmbxWWi0vmIgYXJWMYFJrSowjkwQrkniip/gI8wWzhOAjRuVDCynVdYQdJZ4hF2I1CRMp1vHi0HUOh+mCIMoKpSSwEikWup3U5wKSE2D1vQRsyASZlUDz3BFsGUUqUbxUK8BKts0n06CXXPgK8TVDkQjjijw7RdhxUrpcTouzS02Q86BzJHq4ZUlBmRda1KAxzExPU5Bkn/w1NJqJVDBHFcHtgxHRBZXVq+oNSlwzxuaStj7UnKyRV3+JtJhIdcuT9YSMcxcjksFEr1kwJKvjuOvFfbXUhTK46CJdRSXYdljRraBbPpeQSzB+0l2FxwKQEkWVyPCqgyAy33RrFGkmjxrO1WNelm5lEuPUDMTO9xiSwjd/oht6fSZYQSA7YBqcRrCyBux66XKTuYjCh6F+kGfq1JO7dm578/dv7HfgguELbrjmvb/wm9MzM5deslOmy46SSyE74iJJBZVbesVLXvDim17wwAPv3Nyenp1f+LPPfi3nq89hAWHk2hbPeQu8/IXXfPmbR86cPrl1W9p/H10In2m2M9ravXf3ke8+tHvTZnVsrR4xehDkBwGMKDFQ6nMxeKi/Kc5O4x9O4wWBnlFA8clFjnwV7EZGLt+363sPHWf64rd68gjkacZrwAAnvTCcMJMQJA5x6tyWxyCkz47GzzFpsVOjEjLU+TU5MU56ocKrmL2yk66oGwf5dMDCa89LSx0GQrYU5oILiQoy8hDf04LLLJZhA60utUc1HzMd28HMmFmoXZBUeXF6BSfgb4An3t/xnK1fyuiM+VeLxifI4UJoOrNKWuHQIM9KhKcTZhpNFki3YCwTVyo+0M2S8OEpBUUXehKhOc1F0Y/tjXbAqV769fqoZjUoTW/uuixXEXCEIouz6GTGqBhoZA5g76ZNGEH1pVrVPRXxWBINkI5RYt0PDsGk8DwvAVWoGZWASpcPlj21uzETcGbC1pyNz4xeQcC0Kk93iVhNTw1McCng0Xw2ODZXGf0jJqoLDvULOzfKaBxqmtmZiT6gC8yChHe5WrxL5rpzZQkWEZ8RcPrFEwRjSGpSNJqIVdHBkmvwL1FJAfUXq8xUyQ2jcZ3QNgtJvD3GbZhuwmwImUtM1OyUhcanv+CTxEBqYjKqqafGHk1eH1IhpIylxSl3dtHXbDrsBh+Ik9KcLJG8uLCtREhK11YwQqjaL5/jpguEfNOkbBjQgBXPmqCNvn2djU3A3IlGQ4CjEKbiggCJQMy4IeHFTRyG4oBb6GVftZqtLVXl3L6dKhEuTJa56jm3RjiKKQ6ONIbZkRm4tfjEeMTGnVIUzT8IRzGQE7Vj+yY66FNhcsazO0uxSs4SJj7BXDTWbX7y1Wui++juV3eTRsDRDFEwc8vm0fCsHuQGyUdLGBPm5lnUSIJikBeJmpOs62IRRCnRSIaaqNjYJ4GoaGrE0Ax0+BGHxKRHjMqBc8kc8KUEFAc/mOcmQWOw9jy506QYVGR3P3Av07ckpYt59nnqR2BfHnH5x5Nmzrz1Tf+kj2Sdl8wcl+zZtrS4GfPSDPpyoVZfTFzyoXo2gd1w3QG2rVA9O3ZsH0pWR9YWeG5b4OBV++49/MijDx++9ModaYiJ8UJPq/iFiNb2XdvGHnn85NTSzgnNpnRcgJYG2cpYECbScOCBJvwYHZSkzs5fpStGp8zyqufgoVyNxjUHLjvyyImJic2wyqOQBhrUAEMJpQmoaXWUfzAVWTzjawji00eMceAQvYJj5MFIGhqat8YxKSRYqCNFuuzlMkerrEyugJkY/uDP6Kqhmz+LzOgtkKW48IeqLX6yQz/GHKO6lFdGuAnrCQHjYMs/AfJoxQqt+fcYbUAMINDPpHkNWFTM+1Lesz8wkVknlYUYrZzKES/Ogr9sWSMoMcQjSbKMolCGnNBjf1WtgBEL7qOjurNocPhDywbBKmYUXb70d4wyrnBYi64nMtlQPNkQu7zMM4Xm4vgE8bKg/RJUtY5xV2DRXR7nK0SJKXZy1AzrzNzPyapK0FoZ+tD4vZ4jtXGUN4AkV+mQBco2kNBNBqWOqWLVn3+bSyiVAsJFEI01eO7WBIqxdlZBNc7MJQC6uEC4L95J2nTuWpSnRxrmaibxSxNigcrRDk0TlPYNea2F4WxXgJplbG1HbTQe4dP5LNLxpQSkCE66y6C7Cp3LiCoylWJcLnxokyMy2i9t2LAg2dr2SN/6CEZiKqcrWz7stsi3sskDS6LVOou2OYAZA2E72Q0+L3VJEWolr0NDZx1STg0HRrHGCVSzdA7+QszCRd7cL4UkOZLinPKqVrUkz8es+VgNPpmKklDaIPLUFIx9pYO4ua95gTJpYwox539Fp+EJehXDyhP2eQ6bR6aQI9vZoR0FISiZXYeVuQy/G7uRUHDL5ZBOKKVV3tRxXI94qjZOvsRXx1FFKyJHw0qHyqbixZ9Lqa7Ani4ZGdtSl5ajsjNkqbHYoXYUUKWOfBmnlhIR7Y5oPUMd8iLPsTaVn2RmK6XGmCQISXKzoeaSGwwNANfl77uv4EaTsxp4DMEMt/GnvsOEUbL0BMipazWCJX4FY2K88463vqGHYt0X9FJLNdpedy5PB6IG/uJsHAVqV1vgeWUBWv7Bay6976Gjs1NTLMuVcYoAPYNVzYmJ0V27dzx05LGdWgbWd3e9GUtrwakXJ3tpkCNX6kzqUfwrQl09SPNw48ieoSFndXZ75Lzykp2PPjEZT/9hIOcRj9lfQI2VQtCEMDBfXTVq4ztdo6zTjI7O8xsf+lwRQxg+/CCHmLGCad2zZBmOSUwOhax/vvaZGOE2fnRtFMiit2TAkIsLHVRhAvXcTyl1x8+FY4KHS17YVSYOCmGeGibtxJydBhrGNLKDk/gBO7YOjzHeauwHjrAG3OHj7frxapTRlBOIrWpCmTtNNkw5UlgrrB1U8nKeFqEpn5dZhYBR1hWYKjGZRbcWyJKggoDRNsrB6O4BW9eooVI4CT8CQRnE+GHP8LmkfMBfOJPTv0jKnQFAhz/hdVwwx0d5CssBfWEuinNx6OEWJClqSIEZdK/BlMv6Kj/xSuPGsBCgOgp742wSmQroJFI5y1drdGXYD6biTbXR9Ea0GBkuRc7P69nFwuiSX7eSIOtCFXuq1XTL9J+mdXHpOkgDkxqbUns4tTg4k5s/nGjs8i2PoHbc8OS8kqcqL8yzDCCgfhSPlMUlLyFH48w3jal/2jji4WIpUiWUKjT/aM3oY+YuBU0mnBZo1RdZpNS3HNSUSpJNCU8pJQKXm1RHJI+TKeRlR4yoqpxCH6LFS3WcaK1yqpcwlwcndkSDXbSAh/0wPkVg2dt5JTcL0ln2DVgUC8FeAAYJh9mlLG2m4tCsqoCSRaNyhGV8Ic/6y7dFsudLPJRQFRkUQsxXnJsgQ3U/oWwIxFgu5YcUgJ5bURTBqSY6Cy+xT9ojDvVxvktngFIx8059LFDpOLSMOOhHuinhiM7Fm2P8Fo3qR6OY9O4yZbViiW8bt1qztG6iaTOjxqBx0+4mpsFCBbMeSZ0IE1nMEQT2FZnbqorDtR3cMC2blJLTbZAc1Ug7VG1jdvaczOhWJ9b7i51pKiJu80vJ7OBSOaQJkwJjrO5R5aAZjkqhtXFUHRRxdmryh3/0LXwEUNcbd1/5ylfe+MY3UiL03nhuWYOMX/tavQviLIxXZ3kuWOD6y/cefuyhRw4f3vHCF8ZMT6kIAFnowJ1Wc+/+XU8+cfLw8dlLtrU3aQEvHOPZQPFjQiTak4F8DzhEkCdRd0OKTkxy541eHP7J6bnNW7bt2LWbFd8k07Mag6NXTpndhWtZMQS3eRME3+4d1cZLAQnNt/K0P1JPdT0oiZwH7AE6A8bFMC2Vk349JyKFJkcbHa168zNqYFONdWhu1Mgop8lILufX2WHiq0cYQH5A1by7QOu4HEbADI2aEwxwPUHwa3OgEL4SLx1URs0jAsEckMEtDsnMQgXdLBq0PrroH4T26EwsRghZEAcHxJFPkdaBpQFAqg5wv0qlVBwsObTk41hlGXYQXw7nk0dMtCW2xYF3EbHYYbUbhrJeQcBdfVxeFRms7LylWRaeGwoky1MEnCdLo6wF/zTaXLPF0danLcL4YVLVsGd0ik0RbNK0bMWUr3feARtzzF/Mg4mljBz8QaQUGjL/GS+oIQJ//YsP3J8xR4qvNYODHqvnWdbcYF+4KgwtEzbbJ+VoMepf8iQwIKdpVL/+o8Fzj6gbP937JShMU0BDIznUsUsTvRC0kihTPHeGtQRZhoqC42R1ZRB32xxvKt3K8KfGa6ff+1KTkaIQYInAF8JOthMxZiumwg+Cef4otX0b0qYt9ESRh0ycpYJ9sbAc81IopYnUIhI18Y4J7eJlQBWRxzRIAPG4eAIDXMvitr9Y6I9CoZ/Moz9cICTjdUu2FzclvhWWWtmlUJzgVmWeaKx19tzMvM4gYgnmNxOxJIKphPiTPMqKcy7bWB70rJ/qVornCYJkJrF2QengRjxlS1paGf28NRpxx8DoypsFehOOgYiRQXTSioP+Qm8SIHYjkZaQkcRyBL95qRshDjT0YApfFVOOvHPNWQqpmPmFdmdudI5/teGAldyeYQHnCFPmnDw8obwyi7XAj2YmE1TLy0VquNS+O4ify2gb3agE6eemmUeS03o/dzv6cftZqj4xUrdozpM/xlOtJtjQKrPmJs017ETikVpVctYt4qzH8vLUmafQ+N3v/OE+yvVfHj16dP3ENWVtgdoCfRZgafTAJXsfefTR+WuvZYam/8cIESB4nK8rbOocuObyhx987OgTkzz3049aeoqg2/exUlaPDl5z0gjgyc8jsQfIMphqmPJQFb5HcDHTpKQpnpmcn2mduOLq6/hcMUDOAxsZ5CCOWR4UwTIhiIr0eKrjFT2ew2rD5MLCOAN1IGBzxYNTk33FIDyyVNFVGhRzebgMhAcNn73kZTZikGXQCewQfAnIiK8yepAtQ624yQ6iEcB1OHjHAEySYIxNXfW1DJkmEa+sxETil0ikiemFgJlOvOEBYkE134yEUKSgBnIF3LWKLHYsHnEkna2SyDLaVjyWNAIml6CnfyNaGexCJTiFqsQRIDX8MFT4QYAfND6nuymY4OAPhg6GXBY+hK2pfCKjaoofsoIef2POglPDM6QwpuC3TVjXmZmfmQYE6VhizVmTdDpsRjdSSWOCV22GYFUKm2VnycvDWuAJeEiAQ8AJ3KfZWb8XFxO04kikGbJttNMBm+B1+O0xNSEZwj97AfzVTEvv8g9uB/yCj6Zxza1YBQXUMwJlYSNpFAjYkiCDRjc4frgAYlgAcOM6nUU+N2cQTABadA5ZzO6oIzDHA99Afe4nIFm7OME1XNQqysRlnCLSqpjcjS0pDoX5yLclc3xmIUYqXAIxqnjXE9GK80Yg0BbWgAo6/m0x55OHS9ooY/fPhJKiQCHLESLESComz1cWOGkLtQXqeZEqy0iXmktS0UbOo558KlS1ygmlpHb8Z7PBmqikDyxwuvLJzSPYuUAuFKk6Smmg1CMafdBLZpAAWhOVE1Q9zKNtZtHkCuXRMFpRCBfzs3GhlZVWcTloMkaEdJz22FJrbLnV0d1jIGBZXAe6R0ADHeq7A7PXaHl+dnluanlOPwMJH1taHSc5eg1NPe6XuD/lmckcDTfdxXFTh8OnrKoLV0jkFR+3E4oYZra93WzwdKHC47muYMCVtiuIebi4UdQVc01pA3RbFRhH/0Vmta6jN9IpYSahdrA2APYrDX1rwBBIi66jspampyZvff2r9+zm0/e1qy1QW+DZscC1+/c/euzYI0eP3nD99QVtEAjIxetXu3dtmdg8PjPFcMBoaPCkb+/EwGKd0+iisLCC4RS+hjPIjG4UyIcGpXykMmtSd9749hYfnNIir5yG/jy2kqvKH+gGlhAUNhfk8BlX/WoDvz6xwHKDoLAGVeNUMoJi4yk/a5yUjlylvNLcTKSGD1JjzNKvoAENS5FdWJUx0K3JiEO34qIs+PAfFBGySK0GfJUkihsHFC4YHEJVaCLJFlVYAZIrTiu1LLIKRsjy0PhfFFggTKG4XgQcZUFKmCWqvmQNQeJpZlGiUjouSwyRUa7IGzSwjQDZC08CQUzeKFRIIT4YBs/wgxh/Y06Ft6Oxec5kpvQkzjbOaWafkdZoa2GJH55odjaPtPgNQgrIk3E3TrQKtagHT+TWlq/SzjU5lmdnz5yemZrkzXwwpeZIwKtxJHKY7NjQ4v20mtxJgoAtOjg2Wc935lgkyppp42xeZwITaBtAOCMkzas2jypPzicMhzK2X6ESSjeClQdQECgwUuNJbczyesS/DAIGiwcIFugumuvpb9eJOa6ICW1lzmTSdHK8CBM9Nuu6pHIkR3TkN2c8/Uhb2Ifn+7IeRC68YGYAUd8SFJZJugsfKiWfKhv4iwrMCosw9KRQfBDYNxT8FqIemSBsRGt6QKuyRp42bFilUCvphs7e6iFFSXBdyFD85ZsHtxSZApnFt4LwqPyRZudC2KJ4KhyxeOotSwxjEqgv25DihL6Sds0sggCHgRGDe27OlrJOL+khaphQUtWH7uJmafAz02dmzpyi5IK/rbFGc2yZz4yI0kcJ2Dh6eZQbchaEl+aX584IAc+T/czs9BQ4GKaBg9VatSpse0vYgn7r2ZDXrddQdVRTgpoNhQwMrDaenBBqto81kTbxT7xLIuOq2UVdgVDF3wu2CunJYnRMdVr3nnw7EbqJiWuha3HXliY5BPFHKhxiuZrGwCianAgG3NSZSTT7qfe8fSCljqgtUFvgmbPAeKezb9euYw89dP0119CDNQRXMQ0zA5+varXmxke9KuJbfKBVHlVieKmqG+gwwJYHIQ1BHiRywJdkiVTPTGJAgLxk5M5ai1l+7BupSZxmHBNoNOtCJXASTkMg+I/n7Bxj3MoLB5MxOIi5Nsg2uM0PnBewUgydvXjBmcsAgjDHKDzEL6NYZAlwRph4Hb1cgkmhgVs1vYSrgcI/AuWyyqQkEageRfmIlClYmyFnryviWG8WjVOhKkfYJDBrsIKEABnj4LKEQ7HIG5yLH1lCeHCDrDCM+MInRJTUiCcy+JfLyHUWfp7FNV1qrXV6avrMad6hZMJtdWZanalmZwo0HNgXEFwam6a1KK+mTQ5+SHp+ZGlO+xWnTk+dfmpq8jRYWnsYAgTDkQNC/TFPN/mynb5tN9/iY/UsoYGFR3mqTUPMjslW62pakGUHZ2wSSEgA4fEnHWi++c9Z1ailXJ59SdXCplEwEmEhTMlmRX0dIuZ3bWFCTKz+GgpLLtpBJ94SU/7ShSKrTiIHXMkqlRASZjO30Ns5IhYJUtOq8msC1IiwJz8/PsKaZ0E2BkFGIUSKoxqH+IaCAxqom1u4LeZgP40EJwe1lHBZ4W9KlYG6y4BK9zOW2+cJogFJw0mi7abKgHe+jVCcDaUi9/yljPkEmQqWia03C8DaRhDqyEccmzPQNjgpxswjs/RGtAtHjCFksCdokkQM3QZcEUFzVvt1s6Gpd/i1zjH9TDERDS0A884sz8h460AqV/xUKI3k+gYJ9xnzy/PTSxxz09OTT02fmTQI5ilKgGBVPX2BAhBYaPIUT7+yCaDEM1RN67Uyc7edGKPqZkkNXvJV2EFfkVF4mcq2otFpgpEA3TPGiTOUZm9t1B0lzY1QDJw9+amrmG+UltR4Pule6F0Qpa5CfPGpnJnpyRe/6OC111xZIutAbYHaAs+KBa6+7LKvnDjxyIMPXnXVVRpSDT4YMzRaEOalgUZjjJ/8zQOJBrsBRUtMAS5BEvFD/ZIFypAbEovfFeJkT4CKKwRFFjGhHjwJoLC++FuBreSCmBEuDsJxmHHiqZPj8YkPArhpXHRSeEV6BEiKVPzCLfgUypKxwiYFq1mIqgoqxMGnpBZxJRCU5ZJAhAuHvkAQ4BcNKSzhql+YBKuiQ8kSgchCOFwEymVEhgGDT5WMcFBGUiGoMiHcxy04rM+HpQABc5gmctY9+amVqTM8XmAGZEmr1RlvjY43R8d5fqn528vAnkcxYJrFhS+sKA+nwb6sZo0sLczNnJk8dfLM6VOay2dm2CzoaZjZUhLD/N6ZyUszvDfpNVnjOjAwHaooj2JeCEu7EaRrRljQyCD6Z9KVnywR+vg6VDVRQZYskvHow0t3fHTZW3s1w/uXYrTqJhwO7FAAH9hh9GB22cvi8vW6zqEi+kPNv7R0VDmZC2ouNdmYE/cZI7wyKOSpNc6MbAJ8oJecdJNNxBM/K5bMUdEriw17VRJyMOyDHDYFoR1yxdF1kfgL6cS6n25FQMCmUKL/0rX1CM/FLCrB2uFcPdLZQuQ5kPwkTvyCs5O5iGtB4ASC0QJuIGBSKHLkN5VoHSFLZLlZq+Cc+Jtw417I0ibX6DizrWndSrEKqxehlzpTZxpNNpNxOcoasHRxdymiyY9qus8wCGY5e2l+dnF+Zml+hre/Jp86OcVKsLZDGAHr5k91jWmiMQgOc/cISE1gmJtIiYcdGplW1UU+u0DAVXOW0oeVZQA3GttKNRV3iwKrCqWbMm01ga97T/LUH3U3Ue6+SoX3GzV4BmPCuuPsJ4k6bDRmZ86w8/7dd7xtkKCOqS1QW+AZtsDmiYmd27c/eOTIVQcOxCTjwUJDRhzM2HTmONBtsGNXYyILZMGkmlTNW42PcND3Za+aArJCU/gX+oAV0HAEGg4/sgR9wDX8CETeQlB4khp8SIpwVY0gi1z4UOLCd1Ae8YUgApFUDRfioYHCsJqlhPuEFmJYEa5ersI8yOA5eEQu4oMmjBDSgxiCaq64HJQVWVZKLfSFrMREYKX4PrLVLo1emDKBe7Rt0Gpr8jT0TJzM4nyYgl8cabXH2BioWY7yykesZy8XPmY8a8LeEbZX82RhYWF2hseY05Onmci1DMyeYO9hYL6EeWTW7K/PpoCbmbY1ryKUCZ0J16KktRCGYuWJwk4MJDpsLzK7ZIzuqXBhesYJOUmWJmwjCSEEi9M8j1C97iaIh++V3xCK3BDUJw6ZSVSSr9MgTUmEeDA1YcIukQCR1BMOVSGFeNADW8lCAW0SwtFJ+ENcVVTOGX0UfpVAssYQHSAio+3DerMEi6MQjn5zRtrI4DKZKkFWAf4muUqE2F41YB7wjXRLkLWoBvzselVKTKqRCvcrzDUAGEcSh9UezjCIXDg80yR2KX8wyZnXe5YCKjKYT3BQ90l8gVgWRC+9LMh2iNHOuN710qe729onZLkuoMtj+chTJuFgzEkP5OVRHWyl4OEJx+z0DDel3JDJ4Gr8HMmAfM29SQVxt0QaQJh/oDJrtH5PznXn9gJb/xFjlaOMqfhZi3xWYuLPyY720OOgQAlrohPOTYNomEApDvz3uBwhA1X4dXdBFOqiCOvgV15x2WtefTa/glG41YHaArUFzpcFLt+//5vf+taxRx+97NJLqzzp3RzRc0v/haAartJHOI8Jgyk9GQeZlIwlMMiiJEWgXEJZ9CRQjsIByupBfFwWghKI+MKN+AgHAam48CMGv0pQUgsnn0dcAAAgAElEQVRNCRT6NQOrZyEViX00VR2q4UFZfanwCVZVv+QiEvpqlioZ4bgs9H2B1VP7iM/rpWZkqc2Exrytl4qWmcmZp5g8mXp5UazZGmU/IL6wqmUzx8dEXi2xiqDcTId6wVBIEhQwMz07PY0v+Ft2QYgmbKUQeJScQgie34Wu9EFfIYZwTLHoFpO5kWhkz8kQRVAapMjeU5ePZnK0FMSTgxucAb6K9xIXDJBvWQljOizaxKUIkbhyEeFhfle3TJyUy8RhyxSJegJ02MVo3DAGkINOWhTXciMqyxcGSb6o488sudq4U56AVtS8jBQcJUgbFxBh52Ziq4VsyyqyewX3XiXVjAQFGwed2OBytu45h3qy5FKKYbX0XaKcjTM0SdOS7NRMUmI3FBBjiZaN2Dsk7Os64cN5fo7CJ3p45k9FcuvoVQKXLRUTSVIpLIF+CsCJW0S9sqZ9OKnv+JU4bsnoF+ogymRPXSZ2oSCfSos2ors4tRM1kupfqi6ZSoKKly8UUZxMaoXUEGDNhUPEhaJWQaUtymSOUR5xKiGSSlg1kfu7IvsRsNkoN/sfMMQd7/gRXdSutkBtgQvAAqwBb9606YH779+/b58Hmm7PpjeXzoum1fDqipexYc0sQVDoC9vBmJJUDfSRcRkMB+UGZaEvgdW5VVP7wkXWIKvBmL6853g5yL/EUPASRkqEB60RMYWyBEIxLqt8CpMIFOISOMfinOfsMRmrhAoxSfKZI82xnts0qc/O6OMg/EC0twNq+kq0UaDIqbhKAZ1ZbxEKUPvdIPYS6A22WMRllvfEGTJtXVlQcQG0UKNpTCy+cqGPJ388q6pY/vrcQERfutXUpC2wzTKwNBUA1qJUnuPJIrAgaQEyCSgc0nqEri2uIn8V4p4km0H50ALU4dVNBX1LYFsI3PQ76Hu4VARvIEgluoBYJg5MwLtvMo7iJdReKLB6XVTFWrUudLKYano3XCmENemmrBxSha7l1kOzFo/+dPM0lqdGuEMhXW3GH0MzfJ1ify6bB3gng5sr9Z2eInVVir4jqwiycniNnftFb3wHCtONxDc6jkubPE4sN3tJWDesvoVTW3Z36m8jQ9twf6HiOopGN6H9RYwAsJ3ORYVElzJFelys6KsZiFVi2EXAZqpsjBpz7H8+89Sl+/fd/tYfXJFTnVBboLbAM26BKy677Nv33ffVv/u7q6+5ZteuXVX5aYhwVDVcpVklfBZZVuG2SlKfoL7LknGl+EIQgfNL1sf8ab0cqvlg5GBMn1ZBoMkoJ5QAEdVwTr9QzmXSQSFmZ0+xAXE8leuVOL1rmSZWry2F6tWMA4URShIXTehaGwMc4MAI8LcIUpQpnRyImdYxACth04rldGF+zlJyi8dGHZk1rYu/gpIllKnl3Ziaqa4qciBel0nwRqWdJb00SyLRzYBG63CBQazOgDls0LMU181mwRatOGpP1vCKnS71n6pCJtGVfULrcSpRuHxeT64LlKZbBJvAzw0wB82bZq4dEXzLhK+SsfqrdiUX7bmbb6BgsjUmFcz1DZhAtW4h1XcEf8VeBMWM4pDaCSES9Jqh2jKcHBGqJV/5evOaalXPOXKzS5Su8wi7MF2vErkCV7HKOkTjGWk/cfxhqOOqmm3Tpk2//D/819WYOlxboLbAs26B3bt27d2z5/HjxwHB11577f333/+sq1QrUFtg0AKAOt5j4uALrmemGk8cn33ixPEnjh8/+cQTp06efOrkyVMnn5yemtHk6jmWOUgzp+c7QV5CaW+Ap3ADxIqUNMtWYirBNCsy2ckxd7OgmS5IIirR5nO6tPxKuMKRoIidoS9XL9W6roog4RO5fI7cSb8s8DwJDd7r9IuGA8oRkRVLwbDKOhmvTbam6KoG514Xayv0bFAYswZ2jS6RlaDA0aI5RRwnm0woN2XLu2p03W1b0dRKpsyx92yuua+o8/glx9iDnjpOn83dY8XE/IcIEb3z9GXsFfwsXY2cOnXqWRJdi60tUFugtkBtgdoCtQVqC9QWqC3wLFiAPcu1qy1QW6C2QG2B2gK1BWoL1BaoLfA8skCNgJ9HlV0XtbZAbYHaArUFagvUFqgtUFsAC9QIuG4GtQVqC9QWqC1QW6C2QG2B2gLPLwvUCPj5Vd91aWsL1BaoLVBboLZAbYHaArUFagRct4HaArUFagvUFqgtUFugtkBtgeeXBbrfA35+lfviKe2xY8e+973vTU5O8tvcF4/Wtaa1BWoL1BaoLVBboLZAbYEL1wI1Ar5w6wbNHnvssW984xsvfelL9+/fPz4+fkHrWitXW6C2QG2B2gK1BWoL1Ba4SCxQI+ALuqL4vYOXv/zlBw4cuKC1rJWrLVBboLZAbYHaArUFagtcVBao9wFf0NXF5ofLLrvsglaxVq62QG2B2gK1BWoL1BaoLXCxWaBGwBd0jbH3t92u1+kv6DqqlastUFugtkBtgdoCtQUuOgvUCPiiq7Ja4doCtQVqC9QWqC1QW6C2QG2Bc7JAjYDPyXx15toCtQVqC9QWqC1QW6C2QG2Bi84CNQK+6KqsVri2QG2B2gK1BWoL1BaoLVBb4JwsUCPgczJfnbm2QG2B2gK1BWoL1BaoLVBb4KKzQI2AL7oqqxWuLVBboLZAbYHaArUFagvUFjgnC9QI+JzMV2euLVBboLZAbYHaArUFagvUFrjoLHA+v7R19OjRP/qjP7r99tsPHjz4rBjijN2OHTs6nc4zpsDU1NTXvvY1yv7ggw8i9Iorrrjyyitf9rKXbdq0qaoDZN/+9rf5eYtq5NMU/tu//dsjR47wY3LwR42rr7765ptvvuqqq54mcTXb2gK1BWoL1BaoLVBboLbAxWWB84aAgYAf+tCHwHnLy8vPFgLm9yNmZmZmZ2f37dv3DIDgEydOfPKTn/zSl75UrXJgbly+9rWv/Ymf+InAwZgF4wCLn24E/IlPfOIv/uIvEFdV6ctf/jLxe/bs+emf/ulXvepV1aTVw3/9r0Ze+8uN3/zS8r94zeqE5z91QPSjH/vxS9/7p2//6CP/z3v2n39xNcfnigWOf/G3f/uzx/e8+Rd/8fV7nitlqstRW6C2QG2B2gJPgwXODwIu8HdiYuInf/InnwY918Vy586djz766NLS0rFjx55uEEyR77rrrunpaTQbHx8H9LP0S5j4b33rWwBxkPFXv/rVO++8c/fu3cBf4kHA6yrGWRE9/vjjSDl8+HDkvvHGG1n03bx5M/FEsiR8/PhxCN7whjf8/M///FlJqDMNtcC9Hzv0sXtLyo3vOfSeG8tVCfQQrQTPArzlPCtRNTKvFQkyB85Bu4JSFbo6+DxCzuexUeS22Nt+1tMye3PUV7UFagvUFngWLHAeEHAV/gL4Agg+C0VpNFj33b9//zMAginyBz/4QcoI9n33u9/Ncm9fee++++4///M/Bx+Dkll8hb6P4PxesvvjV37lV2Lp953vfOcP//APg32rIsDBv/M7v3Pvvfd+/vOfJ/xrv/Zr1dQ6fHYW6IWs5gEkONQHOAeojn/2tw99tW+RchBK9FMNsFmHzvd+Vdj8xpcPweTryP18Ijl+71ePNxp7Xn7jc3/h+OlvFP1N9/nUkOqy1haoLXARWeBcEfCFA3/D6M8ACGbzA7gWcWz5/YVf+AWWeAfr+7bbbgMWQ8bm4Kcb/iL9N37jN4C/LMBzB3LTTTcN6rN3795f//Vf//SnP/37v//73/zmN3/v937vZ37mZwbJ6phsAe/CWGPPxb2f/SyoqVFZ8Qoce+9nv3j8xvwM/vgXP2aqAosDyR7/7GfvfX1ZLT7+xc96GbkQNYZRZd1ufPObyS7Rq7vguufNb64B8OqGYq3c9rzxzbnW1qK/eNMHGoXbbKUNn0XRus1WmaMTgII/tmfo85CzEFBnqS1QW6C2wNNhgXP6FsSFBn/DQAGCR0ZGYjvE3Nzc+TVcLO6y+rsS/C3i0KGEn74Ae3zZ5AD/PvjLcu8f//Efx/twIf2tb30rK8SEP/OZz5T9Ek+fYhcx50cf+Os1tY+1tP+/vfsJcSPN7z9eDUPSAyHbBhPJEHY07C9rzck9p5ZhgjXZgdYclpYJu60+BPecWgMLltmD1clFhyxdPuy2DIGRTyOTQKtzWfXJMgw78mbB8mnk08oEshoIWB2GjAiBESzEv2/VU1WqKv1XV/+p1lsHd6n+PPXUq2T88dPfenT1o0w/NsUzZqj95j+deKqilQQMJ+1e/SDzkTHQaORk6xxqAFKzjjZX2ntJ7Yq109UPflZQL6cpa8uIHws0rDlCYOrVpz8sOnVXTnnHgQ9F/wMW1JnjmZ+ZH3BNqQbVLO0ggAACQQvMn4AvZvxVPqcXgmWotdEw0pEUPwwd/VUdkN1U7W/Q92tIezKyK2sl2vpGf589eybhWEZ83cf87d/+7fe//31ZI5vc61meU0BqXMYcaUUr79ji1Q/MUVlXTjZbuPqX41oac5LhmxZnWHP49U+/dmBYdPpDw7bn2XworsZXA/0oh02Z/iKAQEgE5qyCuMjxV8mfUjmETHwm7csA8GDtr3PHzzL+ysRn6mk8qf11OqAW1PRnUv/gWy8hWNK5TBAh1cO+cmHfniPeqmkZ+htHFgt4d/Tu5t2mzTTjhJooQnVg6EwV/sa9p7Z67t3Jbse99mjr2tKWsbe5URUm9H9fbJTXSmW1t+TBrGZwCm/VANtgtDXWtGSjjO8aUcFIDPJreE9hhDV4PHdh6sCwpqv7mjlfgsnQvxy13VzpLuwwVpzgUNXewJ/Wyby/Ph+6Uv1O3bOjWmW36dlkr1Q/PTuO3G9gWNR1SjeKX8U+l+csMpDv+dV/ny7eMiapcBfNeA7s3wi7XbueoP/e17b7vlx1N+bfz2nB86FwX5tRufuFsZv3UHejg1udZqdZcJ9tZFOe8xlduTpiZg/Pjr5OT9Mb9kEAAQREYJ4ELP9yS4SSnCfH//CHP5RQqHLhRNBEIjF+yGxiC7KDVDWozDfNzhJVZWdVDnHt2rW33prnet0nUvUG46d7kwnRZNqHwZkf/uqv/srdVCDLqphBZn4YzLKjKn2dCdHkWN+w8eQuucOnvbcZFO0Eaa8c3PFoK1tJqrnMBjdquzeXGtNMddY2Z0Wzz6IZx2me6dqGtK0N9NCdc1VbuzfTsbEzrVmlCt80W998oOoejF/3SqqxnmtzJRynTEEN8w5+5s0135hbzcEyqXDI/KdMKWE9RqdZ00vICfoVFv1LnmbJk3U8B8hJVNGxuVaizz9pP/vZ1S/cE1po1lr/yU9wqKcLTuY3ehm3q5QtYPOX5/2VZhWI818KZyKMfns2mt2MtcWfuIwj/8n3+KESGPkMnBzhmuVD/iMgd/o/vQHXv4uZWgveGGmepVUx46/T7YEDpXF33exA940j5aDCsKTs39lo3NtPdd7RHwqnX86Cv01zw6gOOEepBetO9v/nN3C15rV4b8fAPsaKjz7yNS1vB3Y0XYaYDx7KGgQQQMAtME8ilK+9UPFXGpo+/srOMnIstbPu08+x/O2338pcY7MeKCH4v//7v//iL/5i1gN9+6uvvRg/34VM+nva8/46vVJlvkODrDzuJnldpj+Tl7O/WpBCCNk0cwKW3CjzA8vLHXetMLl7U0868waP2FGvq9P7m9BUG0db5UZm/NTDR1s3jTmB36g5ge1T65Vta5bgESc2phKWrOz0sFGW997LaOjpttGvaKb6JmN1yDt0rAZqPdMFGLW5Hxj/IltDaCf4Z1gOLZipQ1KOdGNY0DG6N91r9O/1jUfonF6qlGMEO/cJVcJwJX3rnCc4dLDX1rC3KwKbsUn+a/CNLDi5WGUpOwBLf81I6lyAtGv2tlWptLxDr19UvnAPDdpXWvld3PefipF1AdKm5y4oFveZpu+O1my23J1W98fTvDRmDsKaVHZe9nwKrPvyhf8avpFrlR0L6v8r6krNKnPnaUzF7/9QmB9ezzhy/zbN1IH+YcaS6qYseJ8rdF++dVL3Lz0MV+No127mlfRNjK3mryOm/Aio/fkTAQQQGC0wTx3w3/zN3zgNynwIMrQ55ct9oNPCrAvf+973ZGR3ypfUQjjt//mf/7mzvAgLEnClCFjmPhu8WOd7OgY3jVkzJDfK3hIZXx9syMJu3aiPNl5qRyOpuvNsNJO3v8wikfdskTbye+aB7Y7ZwOg/PKE0mimZZz5qt9URU/fQ3H0jFlOHGX8m8pO+akM9iuYJUPKPdME9Tij/+hf+yXnArd/4FEvmof0JHoxY6m55ihb6u6jc6MnqzkbJSs4Qtf24nRE8+tdlP84ng93OUebCCQ71NmS8s2pFVZ2IscIYEb+6mjFKpNVYpb1Ss8cSrbDqHd20e+s8MWgcZgZ6dyQ2BtmNQWIj15vb7T/GDItKGOujmETqCUZzhjk5fobufPPNVfWMpH1a9dP9ywG7h7JlSD429rfD4cA1eHKyfU/9VebauA+F6o7z56wdMD67zkslWfdnpd91+wxWJbxm3/3+CZ3PptzCD35mPVJnHzaTef8glhBAAIHhAvOMAUsNwJ07dx4/fixNynQH2Wx28Ffww88WxFqVfadpSRU/qD3lqTU5cJqjxu8jif/f//3fZTB7/G5ntlXJS0XvTGdU//IMlgiPbUTNj7BxsJ3w7xZNZja0oyOJwPmEbGzUjYHiPSfv+nfvv7cGcfsrJi1tZJJR9z7RmJzPGM41X1P3MLF9sLG7pcp8PZnabmman9Zom5NM5Bhz/EvVFfgrCMa2aB7nHodVo2TGam/eG9uKvXHksKbs4IvFqhzDP2OwKlO2m7N/znWojWQ30r9IaxTYLioxoujVj+LyXKEqkZYdrShsn9eKS0bc6rdmL/UrSsw19jH2Zvmpyra9+/mHRV27+01kk9Vjsx9X7fQ2VXf8jRkJ8ItKSx1rJ1vn5Cq8eodQ1UbrGmwztdJ/rdY9dZpTC+M+FL5dzf+MCJj3+U1zp6Ed8B8+cEHODoOfBrVp1BVb4v3j1f9zpjN3jmIBAQQQGC4wzxiwtCTPgUkIlgXJgsVicdYENrwvga51T4Um8ffP/uzPAmleTaTgfPXxNG0OfnPyNEdNuY963E0eyJpyf9lNbpYKE+4hqCkOb7eNqJmIeSKoOs4MonYTVg51D7Dam+yfUqtrvozihABf0/ZQ1TqokWuzRlg6k65MGn72dXTYEKD1b7/x613X3lZ0G1hjj23aOcz9Rb72AJhrzjTX8WMXxwxrjj3urDeqUWBrRNPstPGBNNd6VtoPA6qYFGQvZxgWHTztLN2x73S/Ffmk2GPURp6Tlxo7lT2sv5x/OWw6hcGG+k2OXZrlQzFzB4yLcb1c47hWn6xLLHhroZ0Ojzuhs5OxMIu550DeIIAAAkME5hkDVs2oyRBkJFiF4Fwud5YjwUMuxbXqlOKvnEE93yZP18mXHo+ZDsLpi3w5nCRgeTvNzs5R0y/IY20y6a8UPEi1w5RjujILhLQvX58xtHp49KljMal1OGpIoULCH4I9oVeNy5qVCf79zMatWl3v2OvMo8HD+jltD9WxquJXc4qQr+kxb23GsFM460b9q63GT82tEuckxsicD8b0wJ48o/4lt/8H4n3nnEGN5Q0e7OwwfGGWrDO8hSDXSpIvfDCiQWuEz9CRyKtGae2RVmOYM27OlWEHYAvT8yv/EQ0PXa1umHvTzAFY3SirCXVv5+6OtGIER6MxyYcSf6X09nfm/4HG3fcRHxWjlbGvmT4UAXdABn6NdO+V8owGjz6hR1zaMP8+eVsae91sRAABBMYIzDkGrFq8mCPBpxd/5aqlglZmtJCFf/3Xf5UvhxsjK5tkBxV/1SHjd55vq4wBm/9+aI8ePZqmBRkA/ud//mfZ05kRYpqjzH3UQO9RpT4wWNqpV9zDw2YQdZUF+86gRmq9RRJWC749Z307dQ89DRtJ+LlRhtwvZPZsH/fG9y+07OpZo4Y5XXWtqq2heWQgoQ2sGNcRe5s9nhyK74FTPKJhgtjPu6k8JCuNSRpcv+JXn/OBKlj7yj0/B/dScdddjjChLkDdJHerao3do1m6425lcFmSsFnwanfayHlWBYhvZ6sHQ4eHfbu63876oQi2A+pvhLemwrobdidHndB/D4Izt8/MTwQQWGSBEyVggbtoIfhU46/6oPz4xz+WkmIZBi6VSmNCsAyN//KXv5TdZOef/vSnp/ch+7u/+ztpXB56U1+N4ZxIZkP7h3/4B99EEBKUZR4PGQBWRzk7T7NgVM/KKLBMkqs3+vvbo7f9AmGzLNicp8xTWiCzLbgqDdxxs6EHVA4xbQ+lCsN9CVblsufJOOMCnSfszKuVYSv5Va/9oJsdbmXkrv9slTXc1c9t1iM/xvievZczJOaEVBX9jOmwZKjMftlP49u50F4//ufMw5rjmzvtrSrRWFFUpldWL/OSv2l+IQFYU3u41psztTmYxgbjV+xuOXNn0eyTW3MPyAaXpkpXrhXmca4/1NCsvcJ+Zwdguy3viWTvod2xW7F+GiOg7muwAqF1sc6HxvmwmYfZPfBmSV/Lw95O8aHw/L9NnkEzP5tyQk8v5+6A0Sl3mLU/205nnb9M7htpn87ZSxbU7ZrL3N0MywgggIAhMH8VhOOnfr9/EcohziD+ylVLVfHPf/7zX/ziF5Jx//Ef/1HSra/CQSLmb37zG6l/UPFXdlZzLzhiwS7IaO5f//Vf/9u//du//Mu/yBnV9x7LKVSJsHMuGf2V+KtKICQcz1OyYsy9UDkyJxZbMmdFcxqX+dFcUynIqOrz9pJMnKaeNXP2kpAsy4mkDLjuGhP5Om1sHDw/qNwMoCh42h6a+dw5veqge1RaVXI4fTRmf/t/5ryx5mwC5nzA1tNM5iyx3jmbBr4oWf5dl3+01VcOqHN5dpFnjj662pJ5IOTf/ILabv/p/qJkfyJwNSmjiGbx5YRhTbvVi/PTSDQt47tBxMAOwCrnGGvtxGP319AwMpLryq1N/WPViqsiakzU7Lkx8ttzp0R18rCo3BSZZ8x3Q9xzZkgVw7TdsS/A9XPwGqTP9mWMbtl9Da7Wxi2O/1CYqbv/0bM+SUF2QN1jz4dbPv4fNSv9mU8kc8sKo0rY81dAdlv17CYfiJOYj1NiGwIILKDASceAFZl7JFimoT0vR/mXVL4vQ84e4KNvQ69F5gOW4VU1EizR/969e5999pkUPEhpxK9+9SvZJMtO/B0/efDQ9mddKdNxyJdiyFHyXcd///d/r2Ku04hk39/+9rdSqK3WS0T2DQw7e05cMCoGVMlAf1dj1rOBAlqZ7+yN9aiZvacTkmWbWXVgbTALgmP2Xif9OVUPE/mBvvkuYWAPe/qu/higWcfpRCqr30Ztp3sOLVlt/5LbvjIJMf5djGpZ/8xPxm72w1L2oRN+ThzWnHD8OWy2x2Dtn6oL6rfi/gAs20xec1Kyfl+Ndf7bYO7pXulDn2JYdGA2riHnmb47/e4aS3K/3Z0zi2S9n4lRLfs+W95mh76b9KEwvtfFU6SuWgmuA8ZNc1+t3IohV2H8FXDvZf61+WCGjnkOHirBSgQQQMArsPQ///M/3jXzv5OHwyQO/uQnP/nRj340fysnOFKuRb4v47Tjr9NBGeuVyNtoNJw17gWp/ZXh4ROO/kphw/QVFPJ/j6dPnzp9kDFgObs8IecUlErxg4z+zh1/nZZZuJACapDYlzcuZE/Pu1NGFcIX3wyPYmYdgww0XxLHUH8o1H26LLfivD/1nB8BBPwCAVRBOE3KSLC8nLdnvyDfeXGWX3sh+XJ7e1sSqnwxnnzFmvq6OMnfMugrDifMvnPoSbqVioharabGemWCCKcRyb6ySWp/5yl+cFph4QILTP69/gXu/Nl2bXxdwNn25XTPFu4PhV0ePeuTf6drSusIIHBpBIJMwJcGZaYLkaRrJv/zjP5Oh2WCM3lJ2YPEX3nJKLVMkSalfrLS2YeFyygwze/1L+N1z3FNk+oC5mjygh4Sng+FMVSteaol1OC1wM785N8FvRl0CwEELpxAkFUQF+7iwt+hmaogwn+5XAEC5y8Q6sKB8+ebqwdO3vUffUmKUfyXxXsEELgIAsE8CXcRroQ+IIAAAgiEUUCCrvdBOLkIY93AyjBeHH1GAIELKsAY8AW9MapbjAFf6NtD5xBAAAEEEEAgnAKMAYfzvtFrBBBAAAEEEEAAgXkFSMDzynEcAggggAACCCCAQDgFSMDhvG/0GgEEEEAAAQQQQGBeARLwvHJnctyf/Mmf/PGPfzyTU3ESBBBAAAEEEEBgUQRIwBf6TssXWHQ6nQvdRTqHAAIIIIAAAgiETYBvxLjQd+wHP/jBV1999X//93/RaPRP//RPL3Rf6RwCCCCAAAIIIBASAWZDu+g36r/+67/+4z/+43//938ph7jot4r+IYAAAggggEBIBEjAIblRdBMBBBBAAAEEEEAgIAHqgAOCpBkEEEAAAQQQQACBkAiQgENyo+gmAggggAACCCCAQEACJOCAIGkGAQQQQAABBBBAICQCJOCQ3Ci6iQACCCCAAAIIIBCQAAk4IEiaQQABBBBAAAEEEAiJAAk4JDeKbiKAAAIIIIAAAggEJPDW7377u4CaohkEEEAAAQQQQAABBEIgsPTmzZsQdJMuIoAAAggggAACCCAQkABVEAFB0gwCCCCAAAIIIIBASARIwCG5UXQTAQQQQAABBBBAICABEnBAkDSDAAIIIIAAAgggEBIBEnBIbhTdRAABBBBAAAEEEAhIgAQcECTNIIAAAggggAACCIREgAQckhtFNxFAAAEEEEAAAQQCEiABBwRJMwgggAACCCCAAAIhESABh+RG0U0EEEAAAQQQQACBgARIwAFB0gwCCCCAAAIIIIBASARIwCG5UXQTAQQQQAABBBBAICABEnBAkDSDAAIIIIAAAgggEBIBEnBIbhTdRAABBBBAAAEEEAhIgLh9UMIAACAASURBVAQcECTNIIAAAggggAACCIREgAQckhtFNxFAAAEEEEAAAQQCEiABBwRJMwgggAACCCCAAAIhESABh+RG0U0EEEAAAQQQQACBgARIwAFB0gwCCCCAAAIIIIBASARIwCG5UXQTAQQQQAABBBBAICABEnBAkDSDAAIIIIAAAgggEBIBEnBIbhTdRAABBBBAAAEEEAhI4AQJuFNJR+NJeeXrvdG9aehL6pWudEbvZW9pl1OydywhreZqXXvt3D8nn9zZY0lvzH0a/4EiY110gI36T8J7BBBAAAEEEEAAgfkETpKA243jV8+ePWutrCzPd3L/UZ1qPv9UVn79ohXN5lIr/u2BvG/q0SUjuWfKrSna6ydkK9P6f0wV7Kc4EbsggAACCCCAAAIInJHA/Am41+0cm51MxqPeznaqGXNwOD1VxnSObVdy2UPVpHZ8uPWuP2v63s82vNqzh6k77eaxZiT3laiv205HWEAAAQQQQAABBBC4zALzJ+BOp23CRFZjvijZadXNweHllRlGcduVfM7Ov8GDH33ybiyVKzc6mnTObP5GPDpD7yb1yBkqni2XT2qW7QgggAACCCCAAALB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" alt="" />
关于前后端分离
在传统的java web项目中,应用MVC框架,Jsp想做的事太多,既有后台数据的处理手法,也要承担视图展现的职能,Java代码、Html、CSS、Javascript、各种表达式、发送请求、接收数据、页面跳转...甚至有点全能的感觉,但正是这种全能,让本该分工明确个的各单位糅杂在一起,给开发也带来了一些麻烦。使用Ajax,才真正有点分离的感觉,至少我们知道html、CSS、Js是属于前端版块,后台专注于业务逻辑和数据处理,让前台拿到结果,然后填充内容或者进行局部动态更新,渲染一下页面效果,前后端真正的交互在于这个json数据的请求和返回,而json的本质是 JS 对象的字符串表示法,是字符串,数据格式,以键值对呈现[如下图所示]。后台有一个对象转化为json的过程,反过来,json传递到前端后,应该有一个内容解析/解读的过程,要知道哪个键对应的值是代表什么含义,该怎么处理。最后,关于AJax到底属于前端还是后端,个人理解是,使用的前端技术,但主要目的是作用于前后端数据交互(请求--获取--处理的过程),然后到底前后端谁该懂得Ajax的问题,觉得只要想想自己作为前端/后端完全不懂这个的话会不会对自己形成障碍,就有自己的答案了。
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA5cAAAFnCAIAAAC9+iqCAAAgAElEQVR4Ae3dC7hVVbnw8blr40lR9OsgkYIbjIN7K6EFhqh5Q+VmhX0eLycepWPmJS8gauQlwlt4BdNSKwv76Kgcn4AU8QaJqaRCXsL2hscEEj1E1veFggQb9/fOOdZ699hjzrXWXNc911r/9ewWY445xjvG/E16eB1rrLkb/vnP7V6M144dO1pbWzdt2rTbbrvtt1//3XffY5ddevTqtad03bz5H9u37/jgg/f//Oe3t27d2qdPn5aWlh49esSIShME8hDoCF5///vf169fv23btjx60hQBBBBAAAEEaktg1113bYiTxb755pvr1q3bf//9Bw4csMsuu2RB2L59+9q16956660BAwYMGjQoS0tOIZCXgGSw0l7eV6x4+XOf+1zPnj3z6k5jBBBAAAEEEKglgffffz9HFitLsC+//JJkDAceeKCswsa8eFmRfeONP27duuXQQ7/AomxMNJplFzALsfL+u9/97thjj8nemLMIIIAAAgggUPMCH8tyhZs3b162bNmnP/3p4cOHx09hJaA0PvTQ4dJRukuQLENwCoG8BMyKbF5daIwAAggggAACNSmQMYuVVdiXXnrpoIMOGjx4cGFXLh2l+yuvvCKhCotALwRsAVJYW4MyAggggAACxQts2LCh+CDdFSFjFisbCT7zmf3li1zFzEy6y4+EKiYIfREw2wnEgUSWvwwIIIAAAgggYASis1j5OpfshS14FdbGlSC77dZTAtqVlBFAAAEEEEAAAQQQKEYgIouVDQDyRAL5Olcxce2+Bx10oASst30FW7ZsuTR4ScHWoIwAAggggAACCCAQKXB38Io8Fa5sDFfJc2HloVrZv84lmdlVV10lfWfPnh2O4NRIKAkoYYcOHeqcynm4fPlyaXPooYc2NkZMNWf3yAYy+UcfffTFF19cu3atNBgyZMiIEV849tjjzMObpkyZ0tDQcPvtt0f2jVkpQ1xzzTUmvhSuu+46ngwVk65UzeRBGUuXLn311Vfffvttidm/f/9DDjnkuOOOy/4Xu1SjEwcBBBBAAIHKCNz4g587A1158delJlO90zhRh5L1yT/cMiUpjBw5MufcIlJD+dUGn/3skCw9TQorD4UdOHBglmb2qYEDByxZstSuiV+Wpxy8/PLLpUpkJXm96647P/igc310VfB66KGHLrzwohEjRsiycfy5RbbUFFYemisNJJclkY2EKl+l/O2fN2/ewQcffNZZZ0n+KgNJLrtkyZIrr7zytNNOi/N/jPLNjcgIIIAAAgiUUKCj46OrLjlbA95wx32mnKleWyaw8Mgjj5hZyWpjnH+s3Sz2L3/5iyxWZfnVBnYKe+ONN8YkkIASVoJ/6lOfitnFNJPkVVLYUiWysjh35513SmSz+Co5q1yOJLGCJe8zZ86URdO8phdubKew119/vTS4+uqrSWTDUOWrkRRW/ptk6tSpJn81A0l50qRJksvedtttUhPj/xsPjmk4w3ug4/HTSzVTK6BVLFV0N86GR2+9b2Xqv9Waxk+fNDzdYMWcGYvWBwc9h5192Un90vV5d0h19ON59gDpgIn407+qtmb7OiOmldxLSE+/79Np5OA29U6sd4QuVQggUG6Bjz76SIa4btZP5P2aKefIoSmbce36cs+kyPjyz/ff/va3f/3Xf5U47733XpzlWHdfrCSa8lSBTPNwUti8PiWXsBI8U+RM9bKRQBLZXr16mUS2vb09U8uc9TL5n//8Z9LsoosumjbtO5LCSlkuQQqSvB533LFyeNNNM3PGydLASWEluLwkl5VFWZPISoMs3TlVvIBsJJBVWDuFFX95mciSy8opyXGlWfFjdX8EyYYbxjwYnkc61Znuv8Y3rV9066MbglZ+vvbesLP96rOHeSvvm7PCdM67Q3rMDY8+s77nsOM1R07XV9GfCb6EFU+v3NJ0TOd/acRQlTs8I31XYzSnCQII1IDARzv9LFbe7YJzaBok9mIleV2zZo0sKcoMvxS8pCCHUimnskzbXYvdtu3D3XffL7JDMSmsBNx99z3efffdyMjZK00iW/yKrCxTy0YCWYWVzZHhES+66OJNm/4qK7LhUzFrwims6WgSWVZkYzIW2Uy2Dcg6q70K6wSUU7JBVprJ/02cU7VzuPG9LV7TManUcviQpkWL3tvoef1Mvna2yYr6nXRM08pFq1Z4w6Vd3h1SVhtebdvSs/kQXdCtQsIEX8KKVeu9pvGp25ii7XfSZdNPqkJmpowAAuUT2PnRTgk+/bJzzRByeO0VF0j5uzf/yKk3DZLzLltg5UNy+ZhUl5ZkIdZ8WCo5myzHmo9P5cN8+bdbkjf559uZvJvFymLnLrv0cBrJ4bZt2+TrXGYvrGwkkMws3CZ7jYQteCW1JIms7IiVGZ566mnOPOXrXCXcCyvBZeXP8TGJ7MSJE9la4OCX/PC1116TvbB2WPnvB/tQyqNGjbr//vvzzGL9TQBPpAKN7rLRoG3ygJY7zGf06RNW43SVMwf/sLNj0yWt62Y3p5p0VntelxMaNah9NT2hMxoazghqPjALrbJLoG/vnl7bRll+9dPLDRvf83o295WSn6v27qspZ5DemjQ27w5mrl0yQH+dN2Do3KkQLPEGHz+kNjWYz+7He4uslhvT/SRjs3Y+pDT8P/wwndsCUuvJqc0QJmLQr3O0UCSdm9c5udAlpIY55r37IrdcRMQwg5vLMYG1kT2ONTFr/NBw7uVHJbERFp3mKrloxoxF9gQsS4oIIFB7Ah/t3Hn19/3dks4rU73TLOahLIvKP53SWP6RNU9ijVOTPbistppvYO+6666Sp8pL81TZBGi+n21y3NWrV0umq2c1rJvFbt78fq9ee+ppLXzve9+TFFYOJQ8744wztD6yIE/pkj2mzikJK8GdSj2U3Q8xf1et2VoQY1+jxk4VTKoqT0twT4SOzbeyQtXZKiRV0lTYSWFNN600iWyRz0DINpX6Pid/3eX/BraB2U5g57LSwPzfxm6WrRzkld4lrR1BpukfNYzxzI7Z4FTzAx3rgu2zD06e3Hb67FfHzJnU0fG4H9FPPAdMPqQzRe0c5okzxjS3dnQ0m2R2zOTzgkZBpiqZbyremIaWAV6Q4cpAZ7SlptA2efKD3uzHO073W3fu3U3tDpAh+p10+rC2++6b8d74IMOShMZff+1MZztnkSrl3SHoF3zgPT5Y2pWULNiqEIzz6KMrvH7DvRVz7lspOzgv8xcTVzwqexrMIvD6RavGT58+Seokfb1vxkqZ3fRJ/YL0bNGcFcM7d/Cm5iaXc0hzz5Vtr244qV/qKrwt9lGw6uwH8/dKmAncet+tj/ZNb/rdsvK+1IjBIPfN6duZLFuXEAyXoW2Qh8q1TA+uZc4MK4ZeTpBtW3MwCMFVrpcENWDwj+671dN9up3D+fPvcvmphfOuK7FK4hdC5idNmj7cj5Pcbcpd5s8BAgiUSOD671wkkb5zvf/MqO9fPTlLuZgB58yZYz7cl1z2hhtukFBxarKPKItKEkTahL94LYmyyZUlPzRtpHE4mrsvNtyi5mtmzZo1v+tLagq4aif3lSXek4OXPDTWjibN+AVUNki5y5Kw5pezhib04OQ71jdd8nh6sbR59uOXND0xbXKbNPRPjX5AvwF2+my/0emPd1ZMGu2tb/MfGhJ6acTm2TPTjdomT3vCs+M9/sDo9XdIyup5r7at95oPk+jyap49O0iag4POt+GTpk9PZ27+fgHPWx+secbaWZl3B8lC/Q+8h5g0y17m7XfSSX5lkDT37mvmN/wkk8LKkW6jHX78MPlIJz07P1X13vMXkMMvWVz2tvibIiSqv4ehZ0/ryJ+CSflOT43hX4uf56YDNY1Pp8bBVa6X9efUy74EUxXZ1uS66SD+vDtj6OV0XetOI8i+YVkZTnf1hk8a37Rl5dM6AT0VYFiX32WZOz3drn9GmHdtwBECCNSTwM7gZa44U7kYD/3QX3OYODXZR5QVSVlzlTaSp0q2Gm6sKaw0i1y+dNdie/XaY/Pmf+y5p7scK98GmTZtmqwjylqm5OC6shgeMlONhJXgmc5GTs5uLLsRzNZY+aaXfN/LPhWzLOmjLJfKinKc5diYMbWZSXwla9UaXZoVNK2UQmEpsh2BchYBs87qLMc67SWpzd6ga/u237V5TRPOMwlkcMrPJu/wc9NX5/hJZzijDFZozSYD6TC6a7zUUToltU/6qeromXa8Q5qbvAUygdNPnzRaPgRpaJhmbz6w+9rlYOnQMyuTfnnGrRtl+c9u4ZTz7iD9u3zgHexOkA+yn+l87kGwgrpSFludT8qtPQ0SpWc6z7VmFMwm/T3IoHfn5gdJ3ZqOObv3M/cFWyHkKAjgJ3SyrjljpRXFk6w32D3RZYgueye6XELQNbKtn497W/yP6TvD90zn29blRCD4E9MdykFvnYB/1GW4zuCpZD3HhuOI4ewQlBFAoF4Epn73Jr1UU77t2m9LTaayNs6rcMEFF5g1UZN3St84NTmHMOmfRJaX7Cuw9wzIjgKplAiZUlg55WaxsgN1+/Yd4VEltGyHlcdtShYoG2QLSGQlrAQPR45T46SwhcUxz4KdN+8heUBBnEFpU40C8oxY+U+37EmqfLVLmpXt6vyP+dOf/QdbCkoz0umygyAI19Jwh6TO2R4BZpYOgw/X07sLZPnvpEmyotnmTMakUXl38D/O9h9OcLZ+4C0Lwf4egmCPQGpbavBFJD8jzXebZsQ3mPyM7RlJHCXv7Nn7eD9BfjB11Hy8pKr+Mq2TLDsXGnHoXkJEk86qyG2mwepwZxtZaQ0hWGfzKLobHaK7lmy46PDUIoBAlQjIyuvsG67UyU6+KvUUVKnXSruslXkV5PN95/mqcWriDCGJ7AsvvCC7bJ1fS2QOZZQsC53ujoJPfGLXDz6I3r0q669yAfKbDkwim+9DoyTsHnv0inM9TpuSpLASU77N07Pnbi+++JJ8Ic4ZQg4feeTXM2d+P1xfZE3xD6AtcgL11l32zcj/GewtBJLR2kmtnJL/vIvcXpPByl807borIFidbT7E8/yVUv/Afj3or8/OTG8/sM/kLofj2RsJpL+ksh0dD4z2npjzYO5o6Rb+5/HBS5YB7Q/a/ZVIayUx3VwS39wdoj/w9vc0yJO9vM7P22WL7mX+U726DNw5UvySpLEy9xUb3wseiSAztI48z1/gtAbtGja1+8BU+ouj5qIjLyGybbChwdqh0DW8e9QFwZ+YtU9A2nZOwO3YeRysEaf2anTWRpe6DBfdhFoEEKhtAfkWl1zgxdOukx8pyKEpS2orP3Y5sQ4ffvihzE0WTOVddt+aDbjm0JzKNHM3i5XfSvDnP7+dqXUxiayE/eQnP5kpcqb6UqWwEl8m/5//ebYU5BcfSMJqvqwmh1KQw5/97OeS4BbwRNtMMzf18lu7sjfgbGkF5D/dZJO4PJtDE1n5Xpd+tUsq5Xt10sD5D77sczh9tuyDlS9ppbLVtsljZDNskKf6W1rX39GSfmSrnDGN0pntg2P0uQbZh0iddeLJ0usZTzRdEmyCfXCMjuLvcPBzaPNKjxV8W2pG8GDYIKd7JvWI2GDV1OxfDfaLpjdlmpVI86TXvDuEMsAVc9IPKdXtsBsenZOeQpzMLX09mf6UOW5pe6bNMx+zB0mtHkmuLNuA18u3o1K9V8xJPyHXr+g8sWLOovTjbUOXYLpGtvU3rW5Z+WD6cmR9WUdKDRj8EYFgyPW5vLJarROwe3Ytx0xiI4YzcbqmzV1jc4QAArUnYJ60Je92wZTlYrU+yRdu/smWf5rlq2Pysb+8pGD+pdZ/zSPn737EL1nsH/7wh+3bt2f69V0mkZUBzIrs7NmzI+M6lRJQdgHn+4u7JIi9F7awjQT2TMyTYn/2s/skYZUf+5Qs08ojYwuYoR3ElEUmvPVWk+Zwe2pKK2A+epBE9nOf+5zccbMQK/83kDX4V155JfxFyNyjN89e1+oNaPE/yvdf8lgr87QCKcviqCc7CORhV+bEuuZm74E5DWeYtqMfeGD0Ezme6OFH7Hx1iSdbatNPK/BOn908wIwS1Jq1Xsmvp7XcIWMFT9rSKLL+ebZ3qzyjILVNtPOz9uGTzt4o22SDDZ7WZ+T5dgh/4D38+N63pveNynDB16xOGvL0jBkzgln5Y+nmA51nXgWzzdYblno4bbApdH2TPjfMXFl676p/xcGeWH+InsPG934mNTm96PAlBLOJbOtvy7hs/Htmt0QQMPpqohD8XQaebLSwcHJIxN7oED3c8cOeuc/fIaxXGlwXbwggUMMC5pcd/PDm75lrlMO7b7tWyudP/a68h8umWXLezcqrzEdyS52VfKwqL3MoDcwv9NKzWmj45z+364EpvP7667vvvvsBBwx26u1D2U5gBrvjDvMPu30yorx69ZoPPvhg6NChEeeyVpnvrMnXuYpPYXUcmbw8TVceH2u+gCXf+pIts8F+g7wfgqsxTWHixK9t2ZLtl0L16bP3vff+2OnFYU4B+RjdvOQX67300kvHHntMzi7yX02y/1UeH2v+M05yWdkLKxsJ8lqFzTlKfTaogac5RV2Cv4W387G03XVrkzGL7rp6xkUAgQIEzp1ytdPr3lnXS42pD5edxhs2bOjnP8ew216yI9b8dgOZgaxDmae5S56mTy2QX7ppnroVnmJEFrtjx45ly5YdffRRpfr3XvKJZcuePfroo3v0iPh9CuE5VW+N/OqvO+/8gfwOsMhLkBRWlnuHDBkSeZbKLALpJLYjfhabJRqnihLw0yz/ObD69KiionVL5+hLSET+6KfX8tzb9BPTuoWHQRFAoK4Euj2LlSxRnuwui02nnnqqveYqS7Dz5s2TpSjZFpgpI43IYuXmvfnmm7JgOXz4sJLcyBUrVso+hEGDBpUkGkHqUIAstg5vesUvORFZbMWvmgERQKDeBbo9iy3mBrjf7jKxJOPcsuUDWeMtJrTpK0EkFCls8ZJEQACBcgr4j1NgDbScwsRGAAEESiwQncXKIIce+oU//emtLM8riDMR6S4/EipOY9oggAACCCCAAAIIIBBTIGMWK3tYv/CFL7zxxhsFr8hKR3nJ98RrfjtsTGuaIYAAAggggAACiRLo3q92FUnhPmnLDie/61W+kvXyyy9t3vz+gQe2ZNpaa3cxZdmo+8c/tspGgsMPP5wUNuxDTb4CDQ0N0kV2x5pCvt1pjwACCCCAAAK1J5BxLdZcquSghx9+hHw3Sx4yIE/Lkse+ZieQBtJMGksX6UgKm52Ls3kJmBT2X/5lF3lqW14daYwAAggggAACNSbw/vvvRz+jIHyd8vit1tbWTZs2yYrsfvv13333PXbZpUevXntKy82b/7F9+w75BbOyBVZWYfv06dPS0kL+GjakphgBfUyBPHpDnruxbdu2YqLRFwEEEEAAAQSqWmC33XaNm8XqdcrvaJXXtm0fyu+GlZ0GUt+r1x7yKwn22KOX/ILZkvzuKx2LAgIqIFmslOVdHhlrMlpzqA0oIIAAAggggEA9CJjPZuU97yy2HnS4xmQK2MmrJrXJnCqzQgABBBBAAIEyCWgWm+3bXWUam7AIFCZg/taavlKWRNauKSwmvRBAAAEEEECg6gRMAkAWW3U3rq4nbCevplzXHFw8AggggAAC9Sega1iNGzdurL/L54oRQMAX+Mvmjk/18p9ixgsBBBBAAIGqE2hY+/ccD8+quktiwggggAACCCCAAAI1L5DjebE1f/1cIAIIIIAAAggggEA1CpDFVuNdY84IIIAAAggggEC9CzR6/lM4U68d7TveeWfjB1u3fbit27YZ7PqJHrvvtuu++/bt0dgjPS/+RAABBBBAAAEEEECgi0DDW39LJaw7dmz/Y9tbg5s+1bf3nrt9YpcurSp4sHXb9rc3/t+1GzYd2PKZHj26bRoVvGKGQgABBBBAAAEEEMhboDOLXb/u7T6f3H3/fnvnHaMMHVav+8v/3by1aUD/MsQmJAIIIIAAAggggEDVC3Tui/1/mz/o3/eTCbmg/n3/1wcffpiQyTANBBBAAAEEEEAAgaQJNOq22B07P+rR+PGEzE+2NHy4bYfOLSGzYhoIIIAAAggggAACCRGQ392V5FwxyXNLyB1kGggggAACCCCAQD0KdHlGQeIASGITd0uYEAIIIIAAAgggkAiBzn2xiZgOk0AAAQQQQAABBBBAIIZA577YGI0r3ST7UuyyyUNmvph5SiNuWTx7rPfUuWO/u3bC/U+eO9i0XHz1yMtXekdMW37v0aZizcyzzlr7n/cP/NlZc/tf+3D/H53y9gWrrvek1/PDrl11/Qmp+H+afeKFy467a/6Ep08+ZcFGd1C7pXsu93HbvSef8sLRD98/uVnaBhdlTS93d1oggAACCCCAAAL1KBBzLfbZqw88YGj65+rfGqkNc7/aWTn0wGnPpQGfu9Kqv/LZVPVvp5kIprtpkw6V7pn3n5LwrVosP/dP7ON5fU572C+bH0lhPe9Pb6z1vIHNqRRWckRJYfeZcJo3c+SJ964xgx3cv+/zTz0WlBfNWrBxH89rW7boec874oR0CutOSvJjHSUY122Q5/HxN93S/6FTxp488095dqQ5AggggAACCCBQtwLy7a44r6Ou/+Pq6z3JZc/5daq5KTdf8dTCift63jv3//sJNz7+25lHflFS21E3t3lfvnf19V/0PMlczz1naNuVi391lrQyr18vfvb6Lx6VPir6T3+1VZLO4CW54EOmJNntlLbUuum7M0cOmekdMeG0tQte9IZd++S5J7R5y05Z8O2Zx8+f5j02a6WsrT40V7ptejGI88aCn/lLvM8HvTyv78SvN839uV8z98KT1w6TP1+8fOzIy+VPfRXxVFt/bdiTRd/lA2VF9sLJ3oT1GpUCAggggAACCCCAQEaBj8mn9uYnY5PIE799zE9nm796rElO9z3rv5+60v9E/Ld3SQrrNV95vqSw8vrihVdIbduNd6eWbz1vwslfXvCYrtoGjTK+6dwyFaSnnPK8fb5y/6rHlqd+7jxN1lOlvvmb82+RpFMWaP2avmtfeOhdqV/53SFjRwa7AjbOvXZ22/6Tn3wsvZ4qGwMkyPHr5m7yJNldZeqHXTDt32evCiJMvHP+lH4SYsQt/ljXHqHjXndCyjDTPDPWrxk46f6Jb8uUJq/95vxVj82eEFxOodHStzLjcDRAAAEEEEAAAQRqRSDmjgLJ3aJebTeOlW0GZs/AvmdN/KL33OL5frvmgemV134D/NzWk/VX/w//NW7MhPmPa1Jr6op9f3fhWUPGjUz9XBRkq37INa+97Xn9D2resE7y14H9+/p1JlWVNPTbI7xNyxb8ac3MSWctHXmtvyFBElwJcpO/7Bq81q/d5O3Tryl9qH++eLk/lr8AnB634M0Ag5s/M3janOW3DHvx8kmzJf3nhQACCCCAAAIIIBBLoNAnbX1x5o8mzL9gQTDGgnOG+gV/d8GA0KADm/3FWLv6yLEnXzDrfr8658usTGZp1ndgv461/proHP3+liffxLpoXvBfGev8NHTkfm1t8jF904TrZt2bihSEPXrWqqPl21RTThwpfb2ZyyXBnbFq0hszn/bWLn/2+bdXtf3Jk8gDm/8t/R8sG+deFOwo6HPqw3Pkm1hPnTtu+trOcYOYWWaa9dTY614Y6zfoWLxho+xhkIvK2pyTCCCAAAIIIIBA3QvE3Bcb4XTkjatfvzG1I3a1f77t5h8++6NQw7VtXVJY//wXx3353NsWhlrmWRHkpqk+7y6cNKRrwIFyJvhq17sLp13cZ6PX56iBy6ZY66x+xyD3nfXk0d7iaw6f6536sGwM8E6Y9pmnFnve2oXPLni66V1vxJSjvbZ7v3rKQj+5nHjnrw6ec/jz3rMXj5vnb06QVzBulxza1Md8D00p6CfpsszHvGT3wqwgwY0ZkWYIIIAAAggggEB9CBTwpK3m5v29d34x7TejZvrf65IdsX88651ffGXszDavbe3AKSd7C+ZL4R3vqGBTwYZ1QRL75bHydS7zIABxPWrMhHN+bdZxsypnXZFc+7ZkliMO3v+EaYsk+5TXU+eOn/7852es8pNR85r85KKD/EpZkf3KuOaOu6X2iCteCJ6x5TeWpVbvmSlDbjZbCOadMk5WcIPU9ptNry2fN3fhRklPx8ocvvmrVcfL+q7sifC3KOwz8qiBC+d5sgr7zcFmUD9O1qnK+ejXUbNW2V9zk6RWJtPlEgqNHD0etQgggAACCCCAQK0I5LMv9p21wZprywA/P229+YQD0s/J2vCbBX6u+uUpZ+3rfJ3L+bJXWk02FaSLhf655rUN8s2tJllzbfvxV4dc85TGkYVV+9DUy2LtiXOivv5/9KxbPi9xTn140QsPf6WvLLged7zkpoMnjJSy9+7bXbu8/djSTdLgIB2rlIW3Zp9o8unfTx8y/vBzl5UyNrEQQAABBBBAAIFaE4izo8B+wJZsfp15pCCc+cMrFoy6+dwD0g/eSj9yy+s38VerB1x5wAV6asJPXr/RXnAMBGVTgTc/3bcQ02V3y5MEZIV17TWHX/57CfDYYm+c/LFP/zdeW97X2zR9yDXequuaZn59+vP+ToCZ3nV3eyPXz13oPX/z4UNuTg3oP8rAe8o7fs7EOZNOGZ9aiJ22v79Z9pSF3hGf7/v876ef+OOmYM3Vb7r26Wff7XPUhP29Wf73ujr3MARx/AYFviR/vSjYopBahV0z8+uT5vrzHHHLIrYTFIhKNwQQQAABBBCocYGGNX/9p7nEV1/745eOPjg5l/vIstcOOfjAzPNZfM1XX/v6+Wsvmu5d8cKEp00um9owIMuxszacOmXS+stvXi+bWf3EVF7B5/VddhTIroAD7k7tKPj8jIf73x3sf5WmqfRRVnlPWdh0yxXe5f4qqeaUwW4Ee0dBqhyMktdbOn/1d9b6+xPsV7BBQiEb/MUAACAASURBVBaJfx78Ti/7DGUEEEAAAQQQQACBhtWbUlnsa68nLos9eGiWLJZ7hwACCCCAAAIIIFC/Avnsi61fJa4cAQQQQAABBBBAIFkCZLHJuh/MBgEEEEAAAQQQQCCOQAFP2ooTtjRtCnt8VWnGJgoCCCCAAAIIIIBAggVYi03wzWFqCCCAAAIIIIAAAhkEyGIzwFCNAAIIIIAAAgggkGCBziy2X99PJmqehxzQP1HzYTIIIIAAAggggAACyRFomPf0K8mZDTNBAIFKCuyxR8/3399SyREZCwEEEEAAgVIJNHy446NSxSIOAggggAACCCCAAAKVEWjsiHoQQEOD9zH5nxd1rpB5NXz0kTtOBYYoZKb0QQABBBBAAAEEEKgGgegnbX28lCmsMHRIvI+6psQVGKIa/JkjAggggAACCCCAQCECshbbNbsMgkTVFRLd7uMMVIEh7NEpI4AAAggggAACCNSSQPRabERiW/RFOzGdw6LD+wHKEbMkEyMIAggggAACCCCAQGkFovfFliMfdBdfy5ByukOUlopoCCCAAAIIIIAAAokRYC02MbeCiSCAAAIIIIAAAgjEFohei7XXSVfPPG6KN/XYJZf+8t2uUfc586GnrjpA69puGPe/1178xk/HaE3XgrNQ6gxx2ltTX/3x+K49QkePfWPc61Mfm9ZinWi95YRveXcuvbzZr3OGsJpRRAABBBBAAAEEEKgpgQxZbGc+2LpwiXfMDwZ2LNn3Px5eYpJFH6DtxnEXS9bYsfjc5u883yky7aADpnUeBaV9znzwySsl2e0MGVR3ftmr7cbJ/+cdz7v0kIMudbr6h0fc9sq941fPHDXFu+uxg6WT/wqaLfrWia9d/OTJ/kG6zhkiaMYbAggggAACCCCAQA0KyI4Ce1U0dYUdnjwsNni1zf+NN+r2Zu+R4MhpKoej720b7Z9a9K0htw98eMllwZpo0LbLm7R0BkoPsehbFy/x9jnzgSDT7dJn8TfGvzZ10bSWDm/RHXPf+R/v5M/NlfPPBe9Hfn+Vn7/qfEzBGaJLNA4QQAABBBBAAAEEakgg01ps6hJXL1jiHXfXYD89fOeBU5r/y77yfc6Utc9UHrl4/vIjRg24uPnzzq4D78gb//DTIM0Nr8X6sZ447/YBd1zq/fvUM4b8wo5typ+eOFWGWH3T7d7NbSvHet7ib5z0+tRHvx3sKOhY9OtgfdefgEwjmAdrsWFDahBAAAEEEEAAgZoUiP52V/pSF9059x1vojna94z/lqXWRRd+dv6XJDFtu/GkS9KtvNZbZ689446fXtZ85WVat/gbw654buTNqRRWqlP5rjYICqPvWTLaW3ThPmf+1xP+roMuLz9nlYrWR5a+s3xu87ArzMnnhvkrst6nJ545wFRY75FDWOcpIoAAAggggAACCNSIQLa1WFkEXbfPvsFKZ8vUx5fIFeuSZ8cBVz7yeLAI6sla6YUPvDvwhgM6V1tX3zTqa78Z9cvXf2pvh3UWSrscvvuL//hs1Frs12QtVoZum2q0F3/jS69PfcSsxXqLLlr6WioIa7E18reRy0AAAQQQQAABBOIKRK/FmkXNdd6oC49dcpf31q1jTn7Q2iqwfGjzVSb+PmfOne1d/kv5btbAP9w06iq/oK9ffG1okJhKm8eDb3fpmaBgrZuO/8Hr3sVDb2+at2RqaFtt0Kz1ts4JPDf8l9L/yBteP1n+kLMmjv3edRyOEEAAAQQQQAABBGpQINta7AlXXLnmZlmC3f/SxW3B4wNabz//wmUveN7XLl14ReqpWE+eP+roh25bd9r8IVcseSn1ob+35uZRdw1d8gN95lawfbbL4mt6WTcQXXTxwVN/53nLT21+sKvwp782f+EV5rlaR17/2k9PfPwbX3l96sIrvNvH3ibR/Mw1nb2a4M4QXYNxhAACCCCAAAIIIFA7ApmeUZC6wnT+6WeLT57/rY5Lpja9MH/80PlfuXnggiC/POHup0/wHpMtsulP9f2O6V6pIOYPk3Zqlck/vcfPGfHt5w67qfXFMY9dcr53x93jTIMnz2+5xrttwRXNGiod389Ug59xdyyWxq3aQDo6Q+hYFBBAAAEEEEAAAQRqTCDbWqxcqsk1OzpaZ4376vqLW2cf8NhkqR39k5teHzXi/Km/+1Eq6fRRrBTS75XOOv1TwctZKDWHT72+/y9e/clgad4xbvaXzxlxcGoH7GEzW383pnOjrR/ABFx7+4SDn/uffc4cbw3nnwwm6gwRDMsbAggggAACCCCAQA0K5Mpi/WRx7ayxU9dJCjvaTxb9ddAO798uW7L88XMOu8Bb/kM/kTWV8v7Ut1q+K1sOvH1Oe7BrDppONJXQZJzHf8k7+ZCWjab28NuWv/ITU5Q4h5lfnyCVPxw3edFPTBbbMeDS+T8M2gSJ9UP/I08rOPP+wWSx6koBAQQQQAABBBCoC4GGd/6xI3yhu3w8/VsPwucKrdm+M1gvTXevwBDpofgTAQQQQAABBBBAoNYEcqzFlvBynY/7ncOSDFSOmCWZGEEQQAABBBBAAAEESiuQ49tdJRys60ZWfxNCyV/OECWPT0AEEEAAAQQQQACBhAhEr8V+1OGVfEuBs1BagSESQsw0EEAAAQQQQAABBEouEP1bD9o/8j7e0NHQUJpUVpZdd37kLr5WYIiSYxEQAQQQQAABBBBAICEC0WuxOzs6dvoTLMfH/qkLr8AQCSFmGggggAACCCCAAAIlF2h86fdvlDwoARFAoCoE9tij5/vvb6mKqTJJBBBAAAEEHIGGDme/qnOeQwQQQAABBBBAAAEEkifwseRNiRkhgAACCCCAAAIIIJBDgCw2BxCnEUAAAQQQQAABBBIoQBabwJvClBBAAAEEEEAAAQRyCJDF5gDiNAIIIIAAAggggEACBchiE3hTmBICCCCAAAIIIIBADoFG5/ySJUu2bt3qVJrDww47bO+99zblwYMHm8KaNWsiG1OJAAIIIIAAAggggED5BNy12KampsjBJH/da6+9zClJYSV5NS9NZyN7UYkAAggggAACCCCAQDkE3Cx20KBBLS0tzkiSwg4bNqxHjx5OvXPYcE5pfmOtE5ZDBBBAAAEEEEAAAQQcATeLldNOIhszhZWOHT8p42+sdebNIQIIIIAAAggggEA9C0RkscKhiWz8FLaeEbl2BBBAAAEEEEAAgQoLuN/u0uElkd1zzz1lL2zOjQTahQICCCCAAAIIIIAAApURyJjFyvCyEFuZSTAKAggggAACCCCAAAJ5CTR0dBSymVUfTSBPKtDx5NtdbI1VDQoIIIAAAggggAAC5RMoMIst34SIjAACCCCAAAIIIIBAToHob3fl7EYDBBBAAAEEEEAAAQS6UYAsthvxGRoBBBBAAAEEEECgQAGy2ALh6IYAAggggAACCCDQjQJksd2Iz9AIIIAAAggggAACBQo07ty5s8CudEMAAQQQQAABBBBAoJsEWIvtJniGRQABBBBAAAEEEChCgCy2CDy6IoAAAggggAACCHSTAFlsN8EzLAIIIIAAAggggEARAmSxReDRFQEEEEAAAQQQQKCbBMhi48J/vLFRmpr3uH1oh0BmAf5GZbbhDAIIIIAAArkF/MysMq+WlpbW1lZnLKmUmnC906zbDyXh2Nnebt7NZDSdlfrIGm1gzpru9oVE1mgoDatdTEC7XofQSm2jp3T0yMjaTCNIM6m0DyNrTDSNaR+avpGR7WbaV8fSLuaUXa9lOaXNtNKp0UONY2q0vQ6tDUzBeY/TKzyWBNFKM6Ie2sNJpZw17864HCKAAAIIIIBAHIHKrcVGpqqRlXHm3b1tTPIhWYhJRGQyWmNPzDSQGimY+jg1EsoOomUNYmp0RLveKZvhtNKJbEfQU1rQccM1ekoLZiA5NGNFRtbGWghHduJIS6dNOLLWaFgpOHHMrOwG2ktOOUNos5i9nLEiI5s22lKHoIAAAggggAACBQtULouNM8XG86ITuDh9y9rGJDTmPftA2kYL2j5OjTQON9MIRRbiRA63Cdc408jZwGmvh05H59A0i6zUCHZBW2rBPlumcsFjmY4Fdy/T5RAWAQQQQACBKhKoUNYYuXPAVNpY7fek1iztymop65KenZqYlTn7EuLU2O1NWYPbh6ZSh4tsI+21gRNW6rVLpjZOFz10hpZ6qdEgmSKHe2lALdhxtFILkZFNWGmjE5ByOE7M0c1YGipmL20ff4Z6URQQQAABBBBAoACBCmWxsnPAyVnl0GwncOoLuIbKd7EzFR1d85hw/qRtCitoQJNRSRAzAR1Rapw2kaec0bWL3d1pE3moHbXgNLPrtRwuOL3iHGoQaaxlvVitiQxlmmVpo6ekoBHsXlK2T2kbu6BBpNKUdXpaY7enjAACCCCAAAKFCXT+a11Y/7rtpalJzrSmJokKuOo4KWBCrPTmhuejpwoQCEejBgEEEEAAAQQKFkjWvtiCL6PyHROexJR7epLMmZ/48jKlfLvED16xlgXAFtClYpfDQAgggAACCFSvQEN7+uvzZb0G3TZgP5RAK2VoUy/f7qqWrbGamoQX57RGrsukbrZtzppwZBNHg0h8bSOVOpxTqYfhBkXW2POxQ2k5soFdaaYdnqFpkz1OuFe4prA49gzNHMKRwzUFjyUdeSGAAAIIIIBAwQIVymILnh8dEUAAAQQQQAABBBAIC7CjIGxCDQIIIIAAAggggEDSBchik36HmB8CCCCAAAIIIIBAWIAsNmxCDQIIIIAAAggggEDSBchik36HmB8CCCCAAAIIIIBAWIAsNmxCDQIIIIAAAggggEDSBchik36HmB8CCCCAAAIIIIBAWIAsNmxCDQIIIIAAAggggEDSBchik36HmB8CCCCAAAIIIIBAWKAxXEVNvgLy+5zsXzdluusveTKH0iBck+9AtEcAAQQQQAABBBAwAqzFxv2bYHJQJxPN3lkyV/OjzcI1cqqAyBqQAgIIIIAAAgggUJ8CZLGx7rskmmYxVd5jdYjdqHyRY0+BhggggAACCCCAQPUJsKOgovcsr6Xcis6MwRBAAAEEEEAAgaoSqL612MbzuiHzNkuwzkJsOCV1auTQ/OhfCYlgfuwaKTuR9SwFBBBAAAEEEEAAgUiBhvZSf0QeHqalpUUrW1tbtWzqTU2cNtoxIQXJUE32qQWZmJa1oJXhmoRcCNNAAAEEEEAAAQSqTqASa7EmT5V3eWm2KgWnRg6FL3ub5PjaKWn8WUkv8xO/Cy0RQAABBBBAAAEEwgLd8Om8mYSdrYanpTWa9WpNwguyOpslwdWdA9Im4RfC9BBAAAEEEEAAgSQLdFsuZdZihSZ7nmoWaJMmmCVPtadKqmprUEYAAQQQQAABBEooUIkdBSZP1WzVFMxarHPKuTBto32lQbd8u8uZmC6pOvXmUM9KQX8iW1KJAAIIIIAAAgggUJhAJb7dVdjMqqhXnKVZp41zWEUXy1QRQAABBBBAAIEkCHTbjoIkXHzxc4i5Z8DOWWN2KX5uREAAAQQQQAABBGpYgLXYGr65XBoCCCCAAAIIIFCzApXYF1uzeFwYAggggAACCCCAQDcJkMV2EzzDIoAAAggggAACCBQhQBZbBB5dEUAAAQQQQAABBLpJgCy2m+AZFgEEEEAAAQQQQKAIAbLYIvDoigACCCCAAAIIINBNAmSx3QTPsAgggAACCCCAAAJFCPC82ALxsjz2VX93V4Gh6YYAAggggAACCCCQS4C12FxC6fMmbbWTV/u3y9rldA//z3Av+yxlBBBAAAEEEEAAgcIEqiCLbQlehV1eqXpJMip5qnmPH7OwXvHj0xIBBBBAAAEEEKhbgSrIYltbW5N5eyRJNT8yPbuczNkyKwQQQAABBBBAoJYEqiCLLYC78bwS7/c1W13Nu87H3kVgl+0GUnZ66VkKCCCAAAIIIIAAAgULlDjbyzIP2RegZ83yqqmxy6aBvfhq9zJnw72kvV0pzdrvadexKCCAAAIIIIAAAgjUnkBDe3slEj7JMjVbLXlB7oqd+FbmJskWgkwDsfiaSYZ6BBBAAAEEEECgVAIZU7FSDWDihJdLpT68zhpn0HCvyqewMk9NVSWd1XKc+dMGAQQQQAABBBBAoHiBCmWxuhZrz7iw7LOwXva4xZedhVjnUOKT1xaPTAQEEEAAAQQQQCCLQOV2FOgkNA3VVVWpCZdNM62X7k6N00vjS0G+3VWZrbGRC7GRlfb0KCOAAAIIIIAAAggUKVC5LNbkoDLdyHXZIi+jW7pnylYz1XfLJBkUAQQQQAABBBCoSYEKZbFip6uqms5WL6jkqTJ5Z9uAqQzXV+9lMnMEEEAAAQQQQCCxApXLYhNLwMQQQAABBBBAAAEEqk6gNn/rQdXdBiaMAAIIIIAAAgggkJcAWWxeXDRGAAEEEEAAAQQQSIQAWWwibgOTQAABBBBAAAEEEMhLgCw2Ly4aI4AAAggggAACCCRCgCw2EbeBSSCAAAIIIIAAAgjkJUAWmxcXjRFAAAEEEEAAAQQSIUAWm4jbwCQQQAABBBBAAAEE8hIgi82Li8YIIIAAAggggAACiRDwfweV/Vq6dOnWrVvtGi2PGDFi77331sOa+UWyekUUEEAAAQQQQAABBKpFwF2L3W+//SKn3rt377322ktP6a+T1RoKCCCAAAIIIIAAAghUTMDNYgcNGtTc3OwMLynssGHDevToofWtra1a1kLjee7Krp6igAACCCCAAAIIIIBACQXcLFZCO4lsOIXNNHz7Pe2ZTlGPAAIIIIAAAggggEAJBSKyWImuiWz8FLaEcyIUAggggAACCCCAAALZBTLuAZBEds8995S9sPZGguyxOIsAAggggAACCCCAQGUEMmaxMrz9RILKzIZREEAAAQQQQAABBBCIIxC9oyBnT/OMAudJBXy7K6cbDRBAAAEEEEAAAQRKItDQ3s5XskoiSRAEEEAAAQQQQACBygkUuBZbuQkyEgIIIIAAAggggAACIQGy2BAJFQgggAACCCCAAAKJFyCLTfwtYoIIIIAAAggggAACIQGy2BAJFQgggAACCCCAAAKJFyCLTfwtYoIIIIAAAggggAACIQGy2BAJFQgggAACCCCAAAKJFyCLTfwtYoIIIIAAAggggAACIQGy2BAJFQgggAACCCCAAAKJFyCLTfwtYoIIIIAAAggggAACIQGy2BBJhoqPNzbKGfOeoQnVCOQhwN+oPLBoigACCCCAQEjAz8wq82ppaWltbXXGkkqpCdc7zbr9UBKOne3t5t1MRtNZqY+s0QbmrOluX0hkjYbSsNrFBLTrdQit1DZ6SkePjKzNNII0k0r7MLLGRNOY9qHpGxnZbqZ97bEieznzCbdxavTQDCHxTY09kJzSZk69TjJOLw2iY4UjZ2pjJpZpdJ0GBQQQQAABBBCIFKhcFhuZqkqlSWQjJ5fYSslLNPkwZa2xUxbTRk/J5cSpsSPYAtLXPmWH1WZ2GzOWnpKC3d0cahuN5rQJ97IDatnEsYOEI2tjLThjaXdpoOWcbSJbOvORw5xxdFZaiNnLGUvnY1+FaaORKSCAAAIIIIBA8QLJ2lHQeF7lsuq87EwWEicX0TZa0IHi1EjjcDONUGQhTuRwm3CNM42cDZz2ehinY5w2JqC21IIOVL5CwWOZjgV3L98VERkBBBBAAIFqEahQ1hi5cyC8Ctt+T+rT+Wrhs+epq312amKvzJnGcWrssNrLrjRjmXcdzhxqMz3UBnrKFKQ+Zxunix46Q0u91OhAmSKHe2lAKWTqlbNN5FXY8zERso9utzGTsWv00kyl826PFXkVkTN0gnCIAAIIIIAAAnkJVCiLDe8ckBTW7DEI57J5XUC3NLYzFZ2AJjp2TqNniyloQDsZ0koTWQ9NG52MnNVTzhzservsNAsfamMtOG3sei2HC3F6xWmjF6tDOL3MoWmWpY2ekoJGsHtJ2T6lbeyCBpFKU9bpaY3dnjICCCCAAAIIFCbQ+a91Yf3rtpemJjnTmpokKuCq46SACbHSmxuej54qQCAcjRoEEEAAAQQQKFggWftiC76MyndMeBJT7ulJMmd+4svLlPLtEj94xVoWAFtAl4pdDgMhgAACCCBQvQIN7ekHRZX1GnTbgP2kAq2UoU29fLurWrbGamoSXpzTGrkuk7rZtjlrwpFNHA0i8bWNVOpwTqUehhsUWWPPxw6l5cgGdqWZdrlnmH0+4dHtGZq+4TbhGtOrgLGkIy8EEEAAAQQQKFigQllswfOjIwIIIIAAAggggAACYQF2FIRNqEEAAQQQQAABBBBIugBZbNLvEPNDAAEEEEAAAQQQCAuQxYZNqEEAAQQQQAABBBBIugBZbNLvEPNDAAEEEEAAAQQQCAuQxYZNqEEAAQQQQAABBBBIugBZbNLvEPNDAAEEEEAAAQQQCAuQxYZNqEEAAQQQQAABBBBIugBZbNLvEPNDAAEEEEAAAQQQCAuQxYZN8q7R3+cU7pnlVLgxNQgggAACCCCAAAIxBchiY0L5v0tWmhaclUpH+8cetcjIdijKCCCAAAIIIIBAnQj4mRmvnAKSaO5sbzfvORtrA7u9dJd6u8Y0KyyyDkEBAQQQQAABBBCoTwHWYst13zVhlUK5xiAuAggggAACCCBQrwLVl8U2ntcNSaFZSTXv+lclnJ46NXIoP04v7W4KkZGdNhwigAACCCCAAAIIOAIN7cEn3U5taQ9bWlo0YGtrq5ZNvamJ00Y7JqSgGaoWZGJ2OedhQi6EaSCAAAIIIIAAAlUnUIm1WJOnyru8NFuVglMjh8KXvU1yfJ1sNXJicdpEdqQSAQQQQAABBBBAILtAN3w6byZkZ6tZpqhZb5Y2iTolOwRM8irvMjHznn1TQaLmz2QQQAABBBBAAIGqEOi2LNasxYpR9jzVLNAmjTLOIiuZa9LuGvNBAAEEEEAAgVoSqMSOApOnarZqCmYt1jnlyGob7SsNuuXbXc7Esmeo9lnJd81yrBOBQwQQQAABBBBAAIFiBCrx7a5i5lcVfSOXZk3yame0ci2RLaviGpkkAggggAACCCCQKIFu21GQKIWCJ5NlndXOX+1mWrYbFDwBOiKAAAIIIIAAAvUpwFpsfd53rhoBBBBAAAEEEKhugUrsi61uIWaPAAIIIIAAAgggkDwBstjk3RNmhAACCCCAAAIIIJBLgCw2lxDnEUAAAQQQQAABBJInQBabvHvCjBBAAAEEEEAAAQRyCZDF5hLiPAIIIIAAAggggEDyBMhik3dPmBECCCCAAAIIIIBALgGy2FxCuc7r819zNeQ8AggggAACCCCAQMkEyGLjUppsNd+ctbBecedEOwQQQAABBBBAoF4FqiCLbQle3XuDJBmVX7Vl3uPPpLBe8ePTEgEEEEAAAQQQqFuBKshiW1tbk3Z7JD3VH5mblrWQtAkzHwQQQAABBBBAoMYEqiCLLUC88bzGAnpl6SILsXLWvJuClLXSlO1DE0prskTmFAIIIIAAAggggEABAiXO9rLMQPYF6FmzvGpq7LJpYC++2r3M2XAvaW9XSrP2e/ykkxcCCCCAAAIIIIBArQo0tAerjOW+PMkyNVsteUEmbye+5b4WjS/7B8xqq6lxDrUZBQQQQAABBBBAAIGSC1RoLTa8XCpXEl5njXN54V7dksLKVCWFlcxVC3ZGG+dCaIMAAggggAACCCBQsECFslhdi7UnWlj2WVgve9wSlk3myipsCUkJhQACCCCAAAIIxBGo3I4CnY2mobqqKjXhsmmm9dLdqXF6aXwpyLe7KrY11qSwuihrT4MyAggggAACCCCAQJkEKpfFmhxULiNyXbZMl1fWsOHMlUXZsoITHAEEEEAAAQQQUIEKZbEynq6qajqrk6i6Qjh/1UsgkVUKCggggAACCCCAQPkEKpfFlu8aiIwAAggggAACCCBQbwK1+VsP6u0ucr0IIIAAAggggEC9CZDF1tsd53oRQAABBBBAAIFaECCLrYW7yDUggAACCCCAAAL1JkAWW293nOtFAAEEEEAAAQRqQYAsthbuIteAAAIIIIAAAgjUmwBZbL3dca4XAQQQQAABBBCoBQGy2Fq4i1wDAggggAACCCBQbwJksfV2x7leBBBAAAEEEECgFgQanYtYunTp1q1bnUpzOGLEiL333tuUa+kXcUVeLJUIIIAAAggggAACSRZws9j99tuvra0tPOPevXvvtddepl5SWP0tsnY53IsaBBBAAAEEEEAAAQTKIeDuKBg0aFBzc7MzkqSww4YN69Gjh1PvHDae5+bETgMOEUAAAQQQQAABBBAoiUBDe3t7ONCbb76pK7JZUlgWYsN01CCAAAIIIIAAAghUQMBdizVD6oosKWwF7gFDIIAAAggggAACCOQrEL0Wa6L89a9/lb2wkRsJWIXNF5r2CCCAAAIIIIAAAiUUyJbFZhqGFDaTDPUIIIAAAggggAAClREo8PtYksjq/PR5BfLtrvZ7InbZaksKCCCAAAIIIIAAAgiURKCQtdiSDEwQBBBAAAEEEEAAAQQKFoj+dlfB4eiIAAIIIIAAAggggEAFBMhiK4DMEAgggAACCCCAAAIlFiCLLTEo4RBAAAEEEEAAAQQqIEAWWwFkhkAAAQQQQAABBBAosQBZbIlBCYcAAggggAACCCBQAQGy2AogMwQCCCCAAAIIIIBAiQXIYksMSjgEEEAAAQQQQACBCgiQxVYAmSEQQAABBBBAAAEESixAFltiUMIhgAACCCCAAAIIVECALDYu8scb/d/Wa97j9qEdApkF+BuV2YYzCCCAAAII5BbwM7PKvFpaWlpbW52xpFJqwvVOs24/lIRjZ3u7eTeT0XRW6iNrtIE5a7rbFxJZo6E0rHYxAe16HUIrtY2e0tEjI2szjSDNpNI+jKwx0TSmfWj6Rka2m0k53CZcY5rZ8wm3cWr00AwnfU2NHSRydNNe3+P0Co8VjpypjZmY8gPn1AAACppJREFUMysdnQICCCCAAAIIZBeoXBYbmapKpUlks88yaWclL9Hkw5S1xk5ZTBs9JVcRp8aOYF+49LVP2WG1md3GjKWnpGB3N4faRqM5bcK97IBaNnHsIOHI2tgUtLEcmnK4xpyyO4bbaI0UtKUzHzm0z+qIpr1G0O6mELOXM5YdTcumjROfQwQQQAABBBAoRiBZOwoaz+tMRIq5qpL3NVlInFxE22hBJxOnRhqHm2mEIgtxIofbhGucaeRs4LTP6zB+cG2phbwGKqxxwWOZjgV3L2y29EIAAQQQQKCWBCqUNUbuHAivwrbfk/p0vhqJdbXPTk10NU6vKE6NNtaCBjc15tC863CRbaS9NtBopiD12iVTG6eLHjpDS73UaJBMke1e2lg7Zuqlg0ohso0Ja85qYw1r1zht9JQWwqFMjc5WW9oFe6z4M7QjUEYAAQQQQACBfAUqlMWGdw5ICmv2GIRz2XyvofLt7UxFR9dEx85p9GwxBQ1oMioJZSagI0qN0ybylDMH7WJ3d9pEHmpHLTjN7HothwvOuNrAqbeDR7bRi7XP2r1M2TTL0kZPSUG7272kbJ/SNnZBg0ilKev0tMZuTxkBBBBAAAEEChPo/Ne6sP5120tTk5xpTU0SFXDV4RTQTvgSpaQ3NzwrPVWAQDgaNQgggAACCCBQsECy9sUWfBmV75jwJKbc05NkzvzElzc5q50Fajl+kG5vWQBsAV26/TKZAAIIIIAAAskXaGhPPyiqrHPVbQP2kwq0UoY29fLtrmrZGqupiaZi4Rq5LqnUBkY4Z02mOHqDJKC2kUqN71TqYbhBkTXmusx87FBajmxgV5q+9rvpW6o5m7Gyzyc8lj3D+PMpeCz78ikjgAACCCCAQL4CFcpi850W7RFAAAEEEEAAAQQQyCLAjoIsOJxCAAEEEEAAAQQQSKgAWWxCbwzTQgABBBBAAAEEEMgiQBabBYdTCCCAAAIIIIAAAgkVIItN6I1hWggggAACCCCAAAJZBMhis+BwCgEEEEAAAQQQQCChAmSxCb0xTAsBBBBAAAEEEEAgiwBZbBYcTiGAAAIIIIAAAggkVIAsNqE3hmkhgAACCCCAAAIIZBEgi82CE/eU/haocIfwqXBNuBc1CCCAAAIIIIAAAtkFGrOf5qwKSPYpv5XUvGtlloJmq1rQxqZGfz+qiWnetQ0FBBBAAAEEEEAAgSwCZLFZcDpPFZBomiRVc9NwwUQvIHLntCghgAACCCCAAAL1KsCOgvLeeV1wNeu4MpjWlHdgoiOAAAIIIIAAAjUtUH1ZbON53bB+bFJPJwGVZVTn74ZdI2XnRxrbNaZvZGQnLIcIIIAAAggggAACjkBDe3u7U1Xyw5aWFo3Z2tqqZVNvauK00Y4JKUhKanJQLcjE7LKZZ7gmIfNnGggggAACCCCAQPUKVGIt1uSp8i4vzVal4NTIoThmb5McaHLT5NwLZoIAAggggAACdSjgfiZeMQI7W80yqGa9Wdok6pSszoYTXKlxJulsTnDOcogAAggggAACCCCQXcDNrrK3LuFZsxYrAbPnqWaBtoTjliRUOE/NHtbJWcNJbfbunEUAAQQQQAABBBBwBCqxo8DkqZqtmoJZi3VOOZPTNtpXGnTLt7uciTlZaZaz+ea7TigOEUAAAQQQQAABBCIFKvHtrsiBa6kyU6qab30tmXAtCCCAAAIIIIBAWQW6bUdBWa+qYsGz7A2ITGFN++xLuRWbPAMhgAACCCCAAALVK8BabPXeO2aOAAIIIIAAAgjUr0Al9sXWry5XjgACCCCAAAIIIFAeAbLY8rgSFQEEEEAAAQQQQKCcAmSx5dQlNgIIIIAAAggggEB5BMhiy+NKVAQQQAABBBBAAIFyCpDFllOX2AgggAACCCCAAALlESCLLY8rURFAAAEEEEAAAQTKKUAWW6xulkfGFhua/ggggAACCCCAAAIZBMhiM8CEqk22mm/OWliv0OBUIIAAAggggAACCHQRqIIstiV4dZl1xQ8kGZVfuGXe4w9eWK/48WmJAAIIIIAAAgjUrUAVZLGtra1Juz2SnuqPzE3LWkjahJkPAggggAACCCBQYwJVkMUWIN54XmMBvbJ0kYVYOWveTUHKWmnK9qEJpTVZInMKAQQQQAABBBBAoACBEmd7WWYg+wL0rFleNTV22TSwF1/tXuZsuJe0tyulWfs9ftLJCwEEEEAAAQQQQKBWBRrag1XGcl+eZJmarZa8IJO3E99yX4vGl/0DZrXV1DiH2owCAggggAACCCCAQMkFKrQWG14ulSsJr7PGubxwr25JYWWqksJK5qoFO6ONcyG0QQABBBBAAAEEEChYoEJZrK7F2hMtLPssrJc9bgnLJnNlFbaEpIRCAAEEEEAAAQTiCFRuR4HORtNQXVWVmnDZNNN66e7UOL00vhTk210V2xprUlhdlLWnQRkBBBBAAAEEEECgTAKVy2JNDiqXEbkuW6bLK2vYcObKomxZwQmOAAIIIIAAAgioQIWyWBlPV1U1ndVJVF0hnL/qJZDIKgUFBBBAAAEEEECgfAKVy2LLdw1ERgABBBBAAAEEEKg3gdr8rQf1dhe5XgQQQAABBBBAoN4EyGLr7Y5zvQgggAACCCCAQC0IkMXWwl3kGhBAAAEEEEAAgXoTIIuttzvO9SKAAAIIIIAAArUgQBZbC3eRa0AAAQQQQAABBOpNgCy23u4414sAAggggAACCNSCAFlsLdxFrgEBBBBAAAEEEKg3AbLYervjXC8CCCCAAAIIIFALAmSxtXAXuQYEEEAAAQQQQKDeBMhi6+2Oc70IIIAAAggggEAtCJDF1sJd5BoQQAABBBBAAIF6EyCLrbc7zvUigAACCCCAAAK1IEAWWwt3kWtAAAEEEEAAAQTqTYAstt7uONeLAAIIIIAAAgjUggBZbC3cRa4BAQQQQAABBBCoNwGy2Hq741wvAggggAACCCBQCwJksbVwF7kGBBBAAAEEEECg3gTIYuvtjnO9CCCAAAIIIIBALQiQxdbCXeQaEEAAAQQQQACBehMgi623O871IoAAAggggAACtSBAFlsLd5FrQAABBBBAAAEE6k2ALLbe7jjXiwACCCCAAAII1IIAWWwt3EWuAQEEEEAAAQQQqDcBsth6u+NcLwIIIIAAAgggUAsCZLG1cBe5BgQQQAABBBBAoN4EyGLr7Y5zvQgggAACCCCAQC0IkMXWwl3kGhBAAAEEEEAAgXoTIIuttzvO9SKAAAIIIIAAArUgQBZbC3eRa0AAAQQQQAABBOpNgCy23u4414sAAggggAACCNSCAFlsLdxFrgEBBBBAAAEEEKg3AbLYervjXC8CCCCAAAIIIFALAmSxtXAXuQYEEEAAAQQQQKDeBMhi6+2Oc70IIIAAAggggEAtCJDF1sJd5BoQQAABBBBAAIF6EyCLrbc7zvUigAACCCCAAAK1IEAWWwt3kWtAAAEEEEAAAQTqTYAstt7uONeLAAIIIIAAAgjUggBZbC3cRa4BAQQQQAABBBCoNwGy2Hq741wvAggggAACCCBQCwJksbVwF7kGBBBAAAEEEECg3gTIYuvtjnO9CCCAAAIIIIBALQiQxdbCXeQaEEAAAQQQQACBehP4//87m+28l+YcAAAAAElFTkSuQmCCAA==" alt="" />
小结
应用传统的web开发模式,成熟的框架逐步在完善,不过绝大部分框架都是针对前端或者后端,前端层出不穷的样式插件模板,后台不断更新的数据操作和技术选型,但是针对前后端交互的部分,个人觉得还有很大的提升空间。以Jsp为例,熟悉前端的(全栈?)后台开发人员操作起来会相较方便,虽然他的杂合前后端代码广受诟病,但是事实是,Jsp仍然有许多项目是采用的Jsp开发。html + Ajax + js有许多优秀的性质,也还有很多需要完善的地方。目前Ajax应用的已经比较广泛了,所以项目中往往会有两种请求混杂的情况(比较直观就是我们应用Spring MVC时,控制层里的方法,有的加了@Responsebody注解,有的则没有),可以根据项目的需要决定是否采用。
从MVC到Ajax再到前后端分离的思考的更多相关文章
- [转] 基于NodeJS的前后端分离的思考与实践(五)多终端适配
前言 近年来各站点基于 Web 的多终端适配进行得如火如荼,行业间也发展出依赖各种技术的解决方案.有如基于浏览器原生 CSS3 Media Query 的响应式设计.基于云端智能重排的「云适配」方案等 ...
- Java Web前后端分离的思考与实践
第一节 Java Web开发方式的变化 Web开发虽然是我们常说的B/S模式,其实本质上也是一种特殊的C/S模式,只不过C和S的选择余地相对要窄了不少,而且更标准化.不论是采用什么浏览器和后端框架,W ...
- 【转】从MVC到前后端分离
1. 理解MVC MVC是一种经典的设计模式,全名为Model-View-Controller,即模型-视图-控制器. 其中,模型是用于封装数据的载体,例如,在Java中一般通过一个简单的POJO(P ...
- 从MVC到前后端分离
摘要:MVC模式早在上个世纪70年代就诞生了,直到今天它依然存在,可见生命力相当之强.MVC模式最早用于Smalltalk语言中,最后在其它许多开发语言中都得到了很好的应用,例如,Java中的Stru ...
- 从 MVC 到前后端分离
从 MVC 到前后端分离 1 理解 MVC MVC 是一种经典的设计模式,全名为 Model-View-Controller,即 模型-视图-控制器. 其中,模型 是用于封装数据的载体,例如,在 Ja ...
- REST风格框架实战:从MVC到前后端分离(附完整Demo)
既然MVC模式这么好,难道它就没有不足的地方吗?我认为MVC至少有以下三点不足:(1)每次请求必须经过“控制器->模型->视图”这个流程,用户才能看到最终的展现的界面,这个过程似乎有些复杂 ...
- REST风格框架:从MVC到前后端分离***
摘要: 本人在前辈<从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)>一文的基础上,实现了一个基于Spring的符合REST风格的完整Demo,具有MVC分层结构并 ...
- (转载)从MVC到前后端分离
摘要:MVC模式早在上个世纪70年代就诞生了,直到今天它依然存在,可见生命力相当之强.MVC模式最早用于Smalltalk语言中,最后在其它许多开发语言中都得到了很好的应用,例如,Java中的Stru ...
- 【转】REST风格框架实战:从MVC到前后端分离(附完整Demo)
版权声明:欢迎转载,注明作者和出处就好!如果不喜欢或文章存在明显的谬误,请留言说明原因再踩哦,谢谢,我也可以知道原因,不断进步! https://blog.csdn.net/justloveyou_/ ...
随机推荐
- win10 uwp 打电话
UWP可以使用打电话功能,在PC是用Skype,在手机是直接使用电话功能. UWP可以通过Skype打电话,那么如何通过应用间通讯,很简单使用Launcher. Skype电话使用Skype:(电话号 ...
- ubuntu下codeblocks安装与中文化
什么是Code::Blocks Code::Blocks是一个免费.开源.跨平台的集成开发环境,使用C++开发,并且使用wxWidgets做为GUI库.Code::Blocks使用了插件架构,其功能可 ...
- CSS样式之表格,表单
布局样式 .container:固定宽度并具响应式 .container-fluid自由宽度(100%宽度) 标题样式 <h1>到<h6> 样式已经写好了,可以直接用,兼容性也 ...
- 2D特效和3D特效
2D居中效果 div{ width: height: backgroundcolor: position:absolute; left:50%; top:50%; transform:translat ...
- 【NOIP模拟】LCS及方案数(DP)
Description 对于一个序列
- JAVA基础知识总结:十
一.抽象类 1.定义 当多个类中出现相同功能,但是功能主体是不同的,这是可以进行向上抽取的,只抽取功能的定义部分,使用抽象类实现 抽象类的存在就是为了被继承 2.使用 abstract 3.抽象类的特 ...
- LeetCode 533. Lonely Pixel II (孤独的像素之二) $
Given a picture consisting of black and white pixels, and a positive integer N, find the number of b ...
- LeetCode 268. Missing Number (缺失的数字)
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...
- Input文本框属性及js
<input id="txt_uname" maxlength="16" onblur="validata()" onkeyup=&q ...
- 《Spark Python API 官方文档中文版》 之 pyspark.sql (二)
摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少.每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需, ...