django学习笔记一
django作为一个python的开源项目发布,其web框架采用了mtv设计模式
在目前一些较为成熟的大型网站中有不少网站的应用基于django开发,django作为一个重量型的web框架提供了以下的功能
1:自助后台管理
2:优雅的url路由配置
3:可插拨的App
4:全套解决方案(session,orm,cache)
5:Dry
6:完善的文档
同时django也存在一些较为明显的缺点,如
:
1:系统紧耦合
2:自带的ORM功能不够强大
3:template功能比较弱
django采用mtv设计模式:
model层:负责程序数据的处理
template层:对应mvc的view层,负责展现model的数据
view层:对应mvc中的control层,负责应用逻辑控制,串连model层与template层
Django的安装
pip install django(没有安装pip的需要自行下载django)
安装好django后,可以创建第一个django项目了,如下图所示:
在终端中输入命令:django-admin startproject 项目名称
命令执行成功后将生成以下文件:
其中init.py为包标识文件,manage.py为应用管理工具文件,setting.py为全局配置文件,urls.py为路由配置文件
setting.py为核心配置文件,主要包含以下内容:
-数据库
-缓冲配置
-session配置
-静态文件配置
-用户自定义配置信息
创建项目后,对于django来说还需要创建应用App,所谓应用是独立于其它web框架所特有的概念,一个应用相当于一个模块,如oa模块,crm模块各分别对应一个应用,django的一个项目中允许包含多个应用,每个应用均为可插拨式设计,每一个应用是一个独立的目录,由一些基本文件组成,具体如下图所示将会成为一个django提供的app样版,同时带一个默认的后台管理功能
django 应用的创建
在manage.py文件所在目录下运行命令:
python manage.py startapp app模块名称
对于数据库的配置,django默认采用sqlite的数据库,可以通过对setting.py文件的修改来切换数据源
在setting.py中以下部分为对数据库的配置信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
在生产环境中通常对于安全性以及并发吞吐均会有一定的要求,可以通过修改配置修改为mysql数据或者其它类型的数据库,以mysql为例可将配置修改如下 DATABASES = {
'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test1', 'USER': 'root', 'PASSWORD': '434944800', 'HOST': 'localhost', 'PORT': '3306', }
}
将数据库的连接配置好后,便可以开始建立后台的数据库建立用户等操作,这里以数据为test1为例
在django1.9后的版本中运行以下命令会同步数据库
python manage.py migrate
同步后将建立django默认的一些表,如下图所示
以上为django中默认建立的一些表
为了测试一下django自带的后台功能,我们再建立一个用户:
在终端中运行以下命令:
python manage.py createsuperuser将会建立一个用户用于进行后台管理
现在在终端中输入python manage.py runserver后看到以下内容表示django自带的开发型的web服务器已启动
在浏览器中输入地址打开查看到以下内容表示服务已正常运行
此时可以使用刚才建立的用于后台管理的用户访问http://localhost:8000/admin/
登录以后将可以看到django默认提供的管理界面 aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABJQAAAGTCAIAAADx9d8NAAAgAElEQVR4nOy9a1QUZ6Kvz/f5uL/815l1zllrr//KzjqZMWcPs/c4k8nOMJuJTjJhyCSaGIOamKDCoAa1FcRGkKvKLYpKWlBArjYNCGJzERpQaEC5iIDQ3KG52dA01+4GrfOh+lJVXX2hAas7/J71rCy6qHqr3qIq/f5833rLRT67wrCsoevB4/bJuVWrBkfGv/u7P237zz8lJKVZXrOisUvS1EFYY3x8vL6+XigUCoXC+vr6iYkJy+s/f/7capkAAAAAABvIv95p/v9uP7Hq25kt5koIT0hhaHk5K2+gFZT38IlpQzHv4RNz6w8ODhYVFSUnJycnJxcVFQ0ODm72EQLw5mG9L2y0Utr+m/fcf/Oeu6Spw8ZNHkgaqB9dRpUrVEdmtCn5kr7x+QnVqmWDI+J/7/a3T7749qPP9//2jx+Oz65YWHloaik57+Hqq1fmzsL8/HxpaWltbe3U1JRarVar1VNTUzU1NWKxeH5+3txWCG8AAAAAeMP8d2HHX8oDPasPUfVpO3Ls+ZGTL3zO9Pic7fXxbgneWdxproSw+JusH80tZ2WdraD6Zuv/qp5X8YTRUBxVruRVsIe3xsbGpKSkpKSkjIyM1NRU8ufGxsb1HCQADgjrfWGj3scCPvps30ef7fM+FmDjJiVVDdSPLqNKLdXWvsmsB3UTqhXLBkfG/+G/P/nU69BX3j947Pnu5h2h1U3uljcMyhWsp2Bubi43N/fly5emv3r58mVOTs7c3Bzrhmz/2yrwcnk3et2Z7nn0uy5eBRtXngMiSTkfJzL7tUKjUxR3PkWyyccDAAAAOAf7Hso+eBDBGt6+fbznn80Hzvb67JFe8pb0mSshNPYn8r/UHxgfDauZw8bwtrSsrqxrvpldnJiWn1FQXlXfsri0XPf0eWJavtVt8yqaGA3FUaU2r6LJdM3BwcGkpKQ7d+6Mj4+TS8bHxzMyMpKSkmzrf1NKk3iWiZOYDMhSNN28mN1h9h/5N5gJSVywqGflDe0NOC6s94Ut1jZ3v+fu8cVBv93f+r3n7lHztMuWrUqqpNSPLiNKLdVSaaekuXdctWLB4Mj4P7h/8o99R/YeOvGp1+HkDNHknKX1SSXNvTVPu0zr//r167KysunpacOS0tLS8vJyw0eFQlFeXv769WvTbZ03vHWK4s7roKQiSYpuGTVV2b7Q8CubQtlmhLc1lAkAAAA4KSFNI/95L9E0vP3j/t8CKnjfFu7zeeL1cVVS5NNRcyWcv3SD/C/1B8ZHw2rmsCW8DcknBFlFV27nUU1ME5E/WN1cWNHEaCiOKLVCtvBWVFSUlJTEeOBlcnIyKSmpqKjI6o6YzDff/tE0qxHEUvNtS/kuQjy0hp1optrKbl8NCeLxeIHhKdIxK7FMKU0KzO6wslJvYXB0me7vPt9TeCn8Zt2oZg3HBJwB1vvCqs3do4d/OPuh597oK8nRV5I/9NzrfTyguXvU6oYlVVLqR2Z4u1ve2D7w0mJyS3jvLx6f7/fd73t6r7d/Wm6xLcltXLXyrG+qoIrlbh8fH6+rq6MuYYQ3giAeP35s+IccKk4Q3lg3l6QYMlunKE6Xd4w/UX5v+0IdtneSbXzQQgcdAACArUBa99S2vDue1Yc8Kg9+WOD596rvPKsPeRZ/4l96TPtKWznw0PPejj+JM9K6p8yVcC46kfWjueWsWA1vi8vqnzIKE1LuPpBIlap5giDm5hdv3y1JSLlLanlzYi3hLSUlJSMjw3R5RkZGSoqlJ/fYWOq6mygeYolJS823yf43pTQpSarULe0tjF5zh5hmVJLIv3S3aVCxtEIQK7N94qyqMYIgJh4LLpb0sm2hlCbxbjcvWS52SBxBBsiVl81p4ZcKX8yio+5niO3hLT1P7McL/nTPt799/8PfvOf+3598sfMfXi09o2294zs/2/ffn3zxm/fcf/v+h5/u+fbo6fMZ+WW2hbcZLdW0okc9cpWF5PbHDz13ffPPA34B3x47+/Xhkzs/3/efH/z11//5wa9++/6vfvv+/3F9z/PLb1i37ZGrMu8/Mq1/Q0PD1JTZ/7uRTE5Oso6ZduLwZshN+p9pyUf/wfaF7B8tseHhDdkNAADAlkAiV/1bTqFH5cGPM3Zcb0p0F370l3yP7+99o15Vv3jZtSP9zz5PvP5vfvHjcfaHPgiCOBvxI0PLy1mxGt7KaxvjbmaXVBr/iby2sTXuZrZBqzUVljcxGoojM1ph+drCW3JystUdEQQxIYkz16Gmz0wrHdmXk5Ii1jCukp2VMcmP4WnNL6nBamVlhTyI4ELW7LbUfJuZ3SYkcYwlo2XRwYW9xPyA+Ed0uf2MYb0vWP39nz/+r53/2PGPr//6+b5Pvz7scyr4RqpwdEY7MqP96Y7I91Twp18f/uvn+3b84+v/2vGPP/z5b6yFlFRKqR9dhme0VAXCyuEZ9ZhqxdTEWznv/cXji4NHvz129rsfzn33w7lvjwbuPXxi1zf//Hy/D+mnXod//99/Y918eEadLKo0rX9+fj55vxgw7XnTarX5+Swjs62Ft+fR77roIaMYc7FuaYEXYwEjvBXot6AEMeM2lKW0gqi7fzf6OaXDTP9jpyhO33MmSWEMoIwTda5hIUmnKM74wTC0krK6cZlxzCUZuvS/SZEYx3TqyzLGMknK+TiRhPl7030DAAAAP1uG5tT/+07VzqLPI2vDCIJIb7u9T7RHuTwzNDv4ccaOAzW7z/b6/P9ZkpF5K433MxfizlyIs/yzBayGt6T0/JikTNX8AvmxpqElJimTqtVd3C1vYjQUh2e0d9nC27qHTdL60ujLDdmtRxQnHiIoHXAEQRATkh+tDmbUzAy2SfKSbjwcIgiCmJYmBd1uNnlSrrcwWB8DA7M7VojewuC4+3VFsUG8H2umVjqyAxnHZ3rEE5K44LsNTRlRsYU9tOJ7i6ISsiSd40voh/tZwHpfsPqg+smnew/t+f54ZMLNsdkV+ezKqFL3q1GlVj67Mja7EpEg2PP98U/3Hip91MxayP1KKfXjGsJb3I3Uv33xzcFjZ71PBJvzux/Ofej51ZrCm0gk0mq11CXk9ETUJVqttqCggDDBYnh7Hv0uPcYZF1OTHEEQBV76z7SNDeHNkM4KvFwoSw2FGD6wdLNRFlHCG+WhN8rwSZNIZvtCtp/1KxmW0g5AkkINb5QIeZ6ZMBnh7Tz7kE087gYAAGCLsPrq9f9Me/p3yZE/5+4o6xUTBDGvmZ9anPLM+nhv5WdnenwCZP/8n2lPV1+xPK5P5dT5y6fOX7b8swWshreYpIzLN+5Yr495bA9v5IQlGRkZhvw2MTFBTljS0WF9WktL2c2wvLcwurCXIIiVjuxAto45E3SZ7WL4xaQ8SRs5QtLQPcZ+EMan2noLg3nhGc1TGkKj0ax0ZAdeq5tmrGya5gLDw0N4SQ2zjIJXlsY7JVkJ/CA+MtzPAdvD24hSe7+q4bP9Rz76fH9kwk3TFcLifvro8/2f7T/yoLppRMleiJXwllb0qFuuYk1fY7OakIuJXkd4h06cP3wq9PCpUG//4P2+Z77y9v/yu+Oku77x+87vNOvm3XJVBtuwyfr6esawSdPwNjk5KZVKTbe1FN6M8Yu2nLlYXxKjM87MsEn9B0ZKM6xNdryx7JYOJegYEtIG9Lwx8xNjVhRzqY+2nDULMnreOi2tCwAAAPz82Z7XvrPi1Mele/906z3pSJ1yeWaPcNfuUk/yVQH/bA94T9RuYXP/c1EMqctNf2bFani7liqMSkydmVWtpWY0bA9vBP1VAWlpaUl6UlNTqfPSsWJhIhJ9H9tKjyiaPXOZYbQsmsc7l1I7tkBbbP7ZNdrIyCFxBGVqyd7CYP1xDImZ4zZ12yilSYFprUOSOF7I3S628leWxp/dvcjjYcpKZ8f28Ebmt/zSWo8vv/vjX/5+LfUu9VdXU3L++KHn37/yLix/bC65sYS3oRkt1ZyyxraBl3LVCqtjs5oLMTf2//P0EV6oz5mwg8eDCssfT86vUp2YZ9+2tW8qv5J9wpJHj2ihzjS81dbWrnnCEpvD2/Podw1da4bf2hnejAVSOutMwhs96BgjGW344/kUiemYSPMLWR6Fo/agbXJ4w+NuAAAAthR7ynr+JA7zrD70UcmXf779/j9yPP7x4O+G97ztb4rYU9ZjYfNjgeGsH48FhrP+zIrV8FYqqY/4MSXv/kPGcu2Krdkht7yJ0VAcmtHmmglvBEEMDAxQX9Ld0dFBvvDNWn5b6ci+XMYyN+dKR7Z+0sn55tuXy7pY3ydgZg5IfXdXYCA/QdQ0OKMbxDpV8yPz6Tjy+R1adqM//NZbGMyYyNL0iPWbr/SIgnnR1PlWNDODbZKsqyEhIVdvlzXpOwCB88J6X1hwWKkNj//pky8PXr6eSl1+6drtT748GPmjYFhpafPiSin1o8vQtJZqyeOOqqe9Fl7yPTarCYu98c3RAN8z4Qd/OPfxFwfS88S2vB286mlv9RM7XxVQWlq69lcFWBg2qV/8PDq6gDoCssDLxp43c8Mmow0Fs2xu6GQzGb6YIiFoAYg1Fdm+kKANaZSk6AdFGkdK0tLd+sMbshsAAICtxcVm+buitL8+POlZfejvku89Hn5jeEn3P5+ddiu9c7FZbmFzv9Oh5H+pP5A/U5dbxmp4m5tfuHwtNTz+5t2i8smX0wRBjE28zC0su5Kc1d1ny7vXiNzyJkZDcWjaUngzZXp62np+W+nIjmab5N+4fKW38FJ2xxJBENMtd67fbZvSEIRmZrBJdO1aQduU5WcLNTODTUVJF7NajbmMF3JTIpvRkL+syyp4tkQQRNfdwJiHY2SSo7/SzTCHpIUjXmpN0z8UNy1NCgxMkuoqO92YejXLOGgT/AxgvS8sezwwwvPrQ7nFVUPT2vzSRwXldUPT2qzCCs+vD/kHRVnetrhSSv3IDG9PZZOZD+otx7CxWU143E/fHgs6cjp87+GT/7XzszThfavhLae0YcDMS7qXl5fv3Llj7iXdmZmZS0vsg5mtTVjCOqcIZTHlKThyxGS0jT1vtK0oMY5SVAF9Z6YTltBnDaEvZcwfacNCZn6irCEy/sq4NE4k2rCeN2Q3AAAAW4/E9vH/kfrk/ZJo6ku6dz2+9D9SnyS2swwXouJzKpj8L/UH8mfqcsvY8p63/uHRqKspF+J+onox8dbQqJUjJFl/eCNsyW+UqUIYkL1f8x3Z4foZRlaWlANlCbwgPj8w4UGf0p4JHVdmXxSRr3fjBUUlFT3TzTrZXxoVxOMFJT6eYLzSjWUKSv3jd8YyqROarPQWhvCCybAJfobYEd72fHf08wN+aXml+w77/8d/7fyP/9p54MjJdFHp5wf+6XXo+NrC2+C0luqAQpMkrOybWLCa3yLif/ruh3O+gRF7D53441/+bnn9gZdLAmHl6qtX5s7C/Px8aWlpbW3t1NTU6urq6urq1NRUTU2NWCyenzeZD0iPLf/b2hpw+cgZHncDAACwNXk8Pvfr7NbfFiaR4c297KdfZ7daeEOAgcP+51g/HvY/x/ozKza2gmZV8+Kqx4m3siMSbqYLi6seNxnmn7RKbnkTo6E4uPbwRlDyW0tLi+lvTZIQY/nU46zCnomWzIsxMRdjkjKLJE29cuXUYJukKDMpJjIyMjImo9nKM3UAbCCs94UFeyeWPvny22+PnfX8+vDHu78hJwr5ePc3nl8fPnD07Cd7vuubWraweVGllPqRGd4Gp7UldZ0lj59b7Ukbm9VExgu+PR7k5Xs6NinV8srljd2VDdbnGhofH6+vr8/Ozs7Ozq6vr2dMOGsKwpsOZDcAAACACyaXtB4lL/6vKPWP91M9Sl5MLmmtb0MQ3sfPMqQuN/2ZlTfQCtqo8EYQxPT0dGtr64YfIQBvnrWGt9rWXk+vw94nQ74+fCr+p8xuubJrZCY26c7Xh095nwz5+95Dde2DawhvA9Nahi/GF5KElS/kc6OzK5aVz2oEmQXJOffGVJZW651cTBFVKucXN/zcIbwBAAAAgFtWX70ObhwObhzWrJodYbQZvIFWUE55k2lDMceu8AbAzwbW+8KCj571e+z5Lvra7faBqeEZ3cLhGe2zvonIq7f+/tX39c8HLWx+r1JK/egyoNCaWlLXmffw6ciMdlS5Yln9++YsWSBprWmy4RUfa2dycnIzigUAAAAAcHDeQCsop6zJtJWYU4bwBrY0rPeFBQcV2lHlyvCMdtBk+fCMdkS5MriW0tjDW+/kcvr9uvLGHqvhzapVzX13S+u0WsywAwAAAADgTCC8AWDKWsPbxurSr9Cy2imfvymqrn02NKJcsdv6jtHbBRLVJgyYBAAAAAAAm0p2WZNpEzEb4Q1sbVjvizem2fDWr9A2dE9cy6l4UN9lX3Ira+wJScy5cbcyrbgOQgghhBA6l/frOkzbh+KGbs4PDEIOZb0v3mR401jw+chsckF1VmlD1+jsiFJroz0TC3crnghEVc+HlWt6ATmEEEIIIXQUp1kah4PTGu4PDELuHGS7L96YLn0vNZbtnlgqqGm/kll6r6a9Z3xheEZrwd6JxZK6zh8zxMKHzS/GFq0WDiGEEEIIIYTQFq2HN9L24Vnhw+b4Ow9Six6XNnQ/7Zl8Pqzsn1run1p+Pqx80j1R2tCdWvSYjG3PhpScVwxCCCGEEEIIf07aGt5IZZPL9Z1j+ZK2tOK6JGHljxniHzPEScLKtOK6fElbfeeYbHKZ8ypBCCGEEEII4c9Pl96XGgghhBBCCCGEDi7CG4QQQgghhBA6gS69UxoIIYQQQgghhA6ui2xKAyGEEEIIIYTQwUV4gxBCCCGEEEInEOENQgghhBBCCJ1AhDcIIYQQQgghdAIR3iCEEEIIIYTQCUR4gxBCCCGEEEInkBbeosr7/ITtFowq7+P8iNdjf+uFgbq9FuxvvcD5QTqUvVOaAYV2aEY7MqMdmdEOzWgHFNpero9q/f7sr4T2X75lo5wfKoQQQgghtFFaePPJbpEOLhmsG1h6PLhU07tQ3btQ07cgkc37ZLdwfsTrsnbP6rJkdbl6dbl6dVmyulS5uvhwZbFsZaF0ZaFMOy+W1e7h/iAdxgGFtkeuys5/EH4pgXf2PO/s+ciYKzmFpT1y1YBCy/nhrcuf9ZXQ/su3+t769+Ff/c6qfW/9O/IbhBBCCKGzSAtvRzKfSAeXqmQLlbKFStlCRfd8Wfe8+MXc/U7Vveez97tURzKfcH7E6/GF5MvVZcnK4oOVhZKVhfva+SLtXKFWla+ZFaqVORql8IXkS84P0kEcnNZWSdvCouPyisuy8oqLSiVZeUXPugeDQiKCQiKqpG2D006c337eV0L7L98a/vX24Xf/8Eo1N/zuH8icRhAEa35DeIMQQgghdBZp4e1QeoN0cEmX3HoWyrrnH3TNFXeo7j2fzX+mvNcxeyi9wWJxQk8XVrbxag3rtPDecXFx2Xt9SlPC3/Y2v0U2pSnhbzOuUxvx9i4hrdjaiLdd9l6n74u+rYXd0XxesXt1uZpsr6/o2usizexdtTJneSZDPZP9vGK3recuba8L4zinNLK0vZ5p5HmgHbDuIN+JKDEp5/ouF7IiFjS7Tm3E24wy0/ZaKK2Ev80zzabaDSi0VdK2+Gs3R6bmnnUPFZVJzoVGnj0ffin+WlBIRPil+MDgsCppm6X+t7S9bPUVerq4mDsG45/S9MSanFKWS47cnek52ZQrwdplzH5lGiDrYu5+oa6jkU0JPRk1slbH9l++RSY3giDI/Lb8WEqYoIyOW0t4MxztNl6tRpa213iEtp1zWy51CCGEEEJoQVp48779SDq49LBnoaJnoaRj9ujVgt9/d377d+d9ruTnNL8UPVN6335ksTiTVuaURjalub5L36JN22upsapv1htawwZL+NtMG/SsC2VTLbx3zIa3FvGu1eXqlYXilfki7VyBhmyvz2SrpzOWX6YuK+60iHfZeu5Yw9tUC29XxHXy+BmVNZwZ204C88SaSaTMBrG18MbcGUsVNL1Tmm75bGhUzKhiYXJuZXJupaNPfk2Qei40kn8hin8hKjTycklFDf9CVPeo0vT5N5O97L1urDIlkJhU3GLL3nx4051Y8gcyU7mY7G5DrwQ7LmPaP0m08N7RhzezmcewDttqNoS3sY8/H373DyuDw8Pv/uHV/DxBEKprAmqHG5nf2MNbbcTbLNUyOZn6f1W5votlbZZbwMyJghBCCCGENkoLbweTq6WDS+Xd86Uv5v2uiP586lp4QfOF/OY/nbj2XZzwbuv097dqn40umC/OWs+brf1CLbxdESXsLUgXl11Clt45o5bC25P7n60uSbTz93TtdWWueiZLPX1n+eXtpcmbS1O3mx983j02bVPJtLoYm9cl/G26nEauQGY8amvbhpPA2hpmnATGOrpTR20um7Tvbex5G1Boc++VZeffn5xbmZhbaXjWwzt7nkxuwWHRwWHRQSERd3ILLiVcy85/wNb5ZgweJYYca/bvRVnN0lHZFN6uU/u+LO50XVeCbZexbeFtr+cukw7DtL0uuyLYwpv+CrQhvBmy2fCvfjd54PCytImMcIbly3UNZsPblEZGRjLymA1d37URb5v8I0IJf9vbfCHjpjP83S2cqOu7EN4ghBBCCNcmLbx9K6iUDi6Vvpgv6VT99exPUUWtpS9UxR3KEFGz+5mk0IqhfdceHL5Vk/dk2Exx1nve3ua3sCeTXUL2aMHa/tM3hRmdPG/zWyyHN+m9f6wuSbRzBZrZPLK9vqxIX5pKXhy/tjh2bbrLv/nB5w339z7vKGWvIKXRTG2aU5qhQk8XfZPXXHib0siYHUSW4tbaRpqZni4LvR9mss3QjDYy5kpl3ZPK+uY7dwuDw6LPhUaSsY2UHELZO/IyOi5xaIZt5CRZX0Ni2dTwZjx7ez3f2XvdsMRivFnXlWDbZWzTsMl3IkrS9r7Nbynhb/Pk607X9V0unmm6gEfdizEj2RDe5B/8damskiCIiV37yAi3WFpBEMRyzWPyo/ppi9nwZkOPma7Ltzbi7V1C09twzdcthBBCCCG0QVp4O3Cj7HH/4v1Olah99vNo4dGfSpPqJ6/Ujn1/reTvEbnHi3r3XXtQ9mL24E8VJgWZSSNU9M1Nln9xp/RL6Fqrhra+tfBmLEq3pqXw9kjkubL4UDMrVE/fWZq6uTB2dX7ksmowQjUQOjd8ebJlf/ODz5eV92rzLQ6Z0+/a8KQTJcVt49Xq+1Wo4Y2ZPdgOkq1FbqmvzLC+5W49c8HJfO/lyIz2zLnQREFqcPjFoJAIMrnxL0SdC40kDbsYJ658NDm3ci40ckTJCG8sV4LnLtMRpBYf9zLzsBzbOsb8Y6yXbg2zYyY35EqwfBnL1jJs8vouF8rjcxH68Z8We94oScn02Np/+dbwr343/O4fCIJYKCieu51h+sCbpu25hfBGv6TZK67rZNY/3Eg9Ibq6m+s8t+EPBCGEEEIITaWFt33XHlT3zt9qmLopnTyYeP/3vhe/CL+zKyz9P3yiT6bXkOEt46li37UHrGVRkoaFh3nMjAmkBglqS5f1yTF7w5sk10MzV7owdmV+NH5+5PLcUJRqMHy2P0TZe041GEk22RcnkiS5HhZOGdmc1Q0qY4lA+ufTrIQ3m0IL27ky1E7Xvmc7CZRC7ApvZ8+HkzktKCQiMDgsKCTi7Pnw2CtJsVeSzp4PF94rnZpfHVdpz4VGDrP2vDGuAf0xmCYBw5Vjb88btdZCT9o5pPSCbsKVYPUypv1dLD/zZpzcpYX3jqEDeV3DJod/9bvRP7gTBDGfnTf8q98tFN7XdL4gCELd8myxpGz4V79TP201F95sGbVr8Ure5rmL5R8dbJ8vB0IIIYQQskoLb15Xikq7VYL6yb2RGe8djd19SfjHozF/9Iv5Z0rlzYZxMrxdfTTudaWItSza6Kl39npamzrCbJOd0tKlr6Nvxdob3iqyPlHPFMyPxs4NX1QNRqoGLsz2BStlZ2d6zqj6Q8km+9xwZEXWJ9ZOnNDTZdvbLDtq4b3j8vY72zzTGOGthfcOtaPG0kHSS2OsRssw1PF1JoP0bJgkxvywyUvx186FRgbwL9Q0NHf1y18MjMVeTSooqYiOvXr2fPjDR03dw1PNnQNRMVdMh02yT1iyWeFN1/Pm4uLiYvjBeBGaTTgbdyWYPXhbh01OCT1d9vJ0V7IhcG5AeJsJjSYIYiY0eqHwPpnTFgqKyalKNO0dFsKbQcuPpTEqzuh5Q3iDEEIIIdxwaeHtq/iCwufKLy6kun4TfOh6SdqTyTvNk6lPJq8+ksfWyA3h7av4AtaymD1vhgxmOiqSFUN7lFxf/2QRpcHHEt6oBVgNb6V3Pl5WZM0NRRu6WZSywJlu3vSLE7O9fEOTvfTOx5bPGvWBH8ZyzzT9eaCFN0ZL19woU/qRU2djN5wBypIS/ra3d+1lybHmY5ItDii0wqKyAP6F3IKS0eklcsLJzn75jzdSyB654PCLiYLU4LDonAK2CUt081sIPXUPoRnrrj+qNQyyZa04bTl12CStm9FS9+86rwRbLmPapWu+542nmy9U97NnGn3wrX616/xtLrsibA9vI//5p5XhUYIgJvd5Ky/GU1/yRhDE/N18dcMTy+HNXPg0VEpfQePgT/Kypz74Z+lEWXwMEkIIIYQQmkoLb3su5yXX9r/vG3nkRkmydDzy4XDYw+GQ8iF+2WB01YghvO25nMdalslMiXt55DM8zM4i4/q0h4Ko4c3F8GQUpclukgbZ/i3fUngrSftoafK2rpulN2im58xM96nprh8UnUeVPYGGJntJ2kcWTtn1XcYGurl3GFAjnK7NnUZtcLMfJD1xGUbQUdYxabXrW9iGrhtmUcanjwwj9KjzqbBVsHdKI5MryZz2rGdkYm5lYm5lcm5FXPU4JOLSudDI0KiYywnXA4PDesdmTV4VYKiavgqB32AAACAASURBVFvpnQie/mA2r+dtreFtnVeCDZcxNX2ZD28uLsZ8bqhFbcTb+twroz0FuoaeNzK5EQQhd/t4eNvvDZNMGn7QdHRZCG+6x/BqGRctY8CkmbfV7RKydtnp79YW3i7rL4WDEEIIIYSm0sLblxdzs5sVN+uGbjaMRzwcvlA+dL586FzZYKB4IPzhMBneEqpGvOJEpgUZ/p2e+o/xlBimW83CrAaGFrC+NWySXgxNc3tfFVB0668L44LZXr5SFjjTfXr6xYnpzuOKDr+Xz31munlkk326P+x++qfshZOHSt91CX8bo3+shL/NM00fNnThjRzfaKi71Z63Ft47bKP+KG++Zszswj5skpYl9JnKxZAKzJ6owWltTdOzU4HBP93OIsPbxNyKfHop4drNmB9v3M4Uhl2Mq2l6Njht/iXd1GvAeMybEt54un8voL5QzsXFxdKwyXVeCdYvY8Y7yu19zxv9PX5rCG8TXxwgCGKxtGJ42++Hf/W74W2/nz4bShCEKjlt5N//qOt/y8xlC2/0+8446Qj9b2fpGNjvQUN4K0mz6aXeEEIIIYSQIS28fRGVndo0db1+PL52LLZGflkyelEyGlk5HFYxdKFiiAxvB+JEBU+GrJVLDpmjzC/CNkrKSpPd2Iti/Kd9XYuZNbwZGu7m24UFyTvn5YmqgUhV/4XZvvPK3nNK2dmZ7jPTL05NvzhJNtmL0j9vbZeYbmuYEpC9vmQFdcew13MXpRHvso3HZ7wwwErPm/EVW7qVTdMdU9Zhk9SwRBm7aPE06h2e0dY0tp05Fyq6X/FMNtr4TJYhvPfj9eS7heKQiEs1jc/MT1WiP2DjxPfMCtLOG/UvyzzhFtG/7I763KONPW/ruRJsuYyZXU/kqTYEIdqLxW26jM0+QcdWR91sk7bJ2vNG3Z3xaqGceXN9ztSjWsvEJxBCCCGE0Lq08Ma7XbE7KsuC/inlbSNznB+03ZYX+OcLdliwPN/vxehLzo/TQRya0Q5MqHILxeGXEk4G8M+cC70Uf+1uUdnAhIr99W7O48/7Smj/5Vv9//YbW5Jb/7/9xsKEJRBCCCGE0KGkhbem7rGHjV3l0g5z1rb2P+mZaB+e5fy47ZOsYFn9c3M6ewU33N6XmuEZ7ZhKN3JyTLUyPKPtfcn9ga3Tn/2V0P7Lt2yU80OFEEIIIYQ26rLZO4AQQgghhBBCuH4R3iCEEEIIIYTQCUR4gxBCCCGEEEInEOENQgghhBBCCJ1AhDcIIYQQQgghdAJdcitaIIQQQgghhBA6uC5uvHgIIYQQQgghhA4uwhuEEEIIIYQQOoEIbxBCCCGEEELoBCK8QQghhBBCCKETiPAGIYQQQgghhE4gwhuEEEIIIYQQOoEIbxBCCCGEEELoBCK8QQghhBBCCKETiPAGIYQQQgghhE4gwhuEEEIIIYQQOoEIbxBCCCGEEELoBCK8QQghhBBCCKETiPAGIYQQQgghhE4gwhuEEEIIIYQQOoEIbxBCCCGEEELoBCK8QQghhBBCCKETiPAGIYQQQgghhE4gwhuEEEIIIYQQOoEIbxBCCCGEEELoBCK8QQghhBBCCKETiPAGIYQQQgghhE4gwhuEEEIIIYQQOoEIb87kafGRxT7/FK4PA0IIIYQQQvjm5Ta8RZa3ei320e05ONHsX54V5WFu/UfnOT9rXLnR4c3u83m+tc9rWBy51g09wi56h8Vu9GmJ2xV58ZvzcRtUNQghhBBCCB1UBwhv9Bb2jvOX+Flnujr2q56euRTO/QlyKJ295y3l0WYEqsjyVnuSJIQQQgghhM6lw4U3nYERhY0H5zpOCkK4P0eOI8IbmwhvEEIIIYRwS+io4Y0X7xYYVtvupZCE7uD6HDmOCG9sIrxBCCGEEMItoQOHN1787rzjc31+hdHGJWyt/7iDt8+2NX+nlHkt9nnNdR+SVZ0Lpo+3PC0+stgacJoXdzSXJ3v2zVyf12LffuWz4+W3L7Ikw3NRGTW+ih5DafyT5+J/eOBjst/Yk1lnOtsOqvq8Fvu8VF2+beLzJ8/ZUuvYk0KejLZhyNFA09UuXyr2H+g6sNjntSj7Rv6El5EQywxvVwKG+47lhMR/nWI8A6ou3ydC3RODHgn8uieHTJebO/82nyiWZ952xIaUP9adt0XZN1PN/sXGrVgebtRvro9e4ReKdZtT/uKBF+OK/Qc6DEfiV1cQ8TX9MBjFtmZbuLTiDv507gn9UgmLoj8sdyVguO9I+ZX4HbHBhlM3132oU3zhIMvfCEIIIYQQwjenQ4c3t8DgZ31eXaIYwxKT8BYXJPZRPTuRcf3SrsB4N17crpjQ8saDi13+KZT8RmaSNLHvSC2fT06YcS76ivioou9ga/Zl2h7Dzzd37Fc9PXMlJmYHL97t3GW+8MTI8xMPqw7T93s5pfb7ua6j1VmRuv1ePV/deHCu40SKlef0Lqc8OqhoDLiScNmDF+/Gi/3qOr/52f65loCgQOZqi11Hy9OiPXjxboExfjfPtj/3ba07bBLejtSJ/UcaA/QHTNZr/9CDyB2JAf3PfxBev0yWECA8IZftH3pATVzs4c2GE8UMbzsSA4ZkB/rLQ/3IiUPOXeZnnenuOtB/nxbw2LJ3ZHmr12T1mea2o+Vp0buoJyEworzlgLyWz4+M2UGehLSA7i4vxaPzX5uUYNLzZnppxQU98FXJDjUXhB05F+/Gi/e4FCasPTTX4ytOpOS3KwHDfUce5gb0t53IuK77Gx1h3y+EEEIIIYRvVMcObybtcmbrP+Zsf99RISMvBYbVtnspJaGGJafFRxZl+yeZIzDjEmu+XWw/E0pZkiA5uNh1KoHex/J1tr+ij7Zf3yK/OZlPeSK90yYworxl/9yTIF/zVd6RflLZwbvE6MMJ53fJvGRFFw1Ldmf7K/uOPGSUH36+tcvLJLx5mQS/uATJwUXZYfkzv8IY2o58i30XZf4pxpXZwptNJ4oR3i4WPvGak/J3MyqbwpuUHc+iPLVoLrwt9nnXChjTRcb7FvsuNp5j5KUdgtPjfd82pFq6SFirtiP1FEtW14Vkyl/8SsBw3/65DuY1sCP9pLLPuzrJ9msbQgghhBDCDdYJwht1BUbrf3dIDOuGQaWHF1sDTus/nhYfWew7lmM690nqKWWfjzhe/zGE3yHz6i+ONikwJqeBst/A0KYXXuPl4Sy7Tjoz3vdtUzozh1g74Li0Omq92LOQrl7M8La/Ndtkd4LTk31eyhqTxwWjg2S05MMW3mw5UczwFlne6jVaGsFatR2UFGQ2vDWYVjZmN/tcNREP2xhRzZbwFl38lP2UMv/oVwKG6Z29ekMbXngNPYgy95eFEEIIIYRws3Xu8GZO/bNblI+s83xcCRjuO/wwUf+RGVHi2febekpJ3crkgCcfhq31VNDrdb61j9YRR6uXybDJ8ismBUYHyfq8nuWaZkhGyazhzYYTxQxvcYk13zKGqtpQTRuvAZYzvObwZvaExLvx4lIe7TemxysBw8YH55gFmgmoEEIIIYQQvgkR3owt9d2iY+bmcqTu18JqujXrgtc6QyatXlcChvv2N2eaqZct4Y13vpU9gbD0mNkc3qgFmkxYEh5a13ZgUfZ9f01Axs2or8xM3MJZeBOcnmQ/UfpatwUEsdfU7uOEEEIIIYRwg3WC8GbpmTdevNu5qGSx/8Bz3eSNRtce3ixMxE/dr+X5+lMe0XZt6o6ocGGV34huBkWKtPDGnjQcN7zx4t14sSfTztY9Oazo8VrsO6CgzTZp/s9n8RrwSDhf/th3gpxyk2WmSvaLhKXYbP9Fy+HNUGuENwghhBBC6Kg6dnizNtvkjsSg7i4vVdtJ4U3aRIX29bz98MBns3vevk4/JZftn2w4k6ybyZCtXlcChvu+rxWwbO7Y4c1g3K6YMGHNYVXf/iFxBPVUrCW8xQUVHVX0HRipORdFTqRJWR89bxBCCCGEcAvq0OHN2nveLooa9y+2MuZajHezN7y5ZfuzT9exYc+8Xajr8lLWBZvOOE8rP4TfZeYBLScJbzq/Fh2b6/Mtpsx4uYbwFh3ULfMaLo0wicFcPvOG8AYhhBBCCDnUgcNbYFhtu5eiNoQ6Q6DpxB6sESLy4ff2hLfoIBnr5I2M2SDtnm3SbDCgz2bJiyxvZZsr0mHDW/TF71nrG8Lvoh/GGsKb2YGOYbUdmz7bJMIbhBBCCCF0QB01vAVGFLK985re+g+r7WDp5vK4ETAks+eZNzdeTJaUpStvR2LA8Ia85y2E38UyDX3cwVzW98gdy2FM3ngutInlPW+OEN6CumUs70DbkX5SST88Qe3+xZbAH2y5BgSnJ1nGjsaGlPrMMRN7lLjFa642xPKltZb3vCG8QQghhBBCR9ThwtuO85f4WWe6Ovar2niJJlPPM7puTj/wmZMdahZG7gqMd+PF7YqMSC4/NvH8RHklLYTYnEl0L8JWNAZcuRTrxot3O3eZLzw58ty/tZFxnJdTar+f6zpanaXfdUxoOVvapBsjqD242HW0PC3agxfvxov9KiFMWHNY8TTwYR1jmpPI+08PzHX8INQ9Ghd75Oa55jbv5kdHHTG88eKCHvgqO45VZ0V8cz5Od96yeP09+ydrz1PHiO7OOz7Xd6Tu9sUdvPgdgXHmrgFyubhl/9yzExlXY3bw4t0CY765fr66wXuiNqDOZP3Qcu/FF8cKEmIpr5UzLTYu6IGvSnaouSDsyLl4N168R1hERu2huR5fMTWEI7xBCCGEEEJH1QHCG2PSxZ6DE83+5VlRHmybmIy7iz0pPDmgm7lxv7LDt634wsHA+B25PyxSHpZbQ3jjxe+IulD82FfR47XY5zXX/d1AzbngcNbxfrEnswLamnWzXKq6Dsuq+CfNTJFvNPBinPj4iG76xAOKNr86YZQH+fbtF6cSzK0p+0b+hJeREOsmOD3piOEt3o0Xd/Cnc/qpJmlVoxd1+VK5n6LHa7Fv/4g4gvUYjJ6LyqjxnereT56BKd30lXFpdV6LT4JoAzUDo3MeH1LKvBb7DrRlx5ovljxIck2vue7vBh6fjYuKs1hT+rWK8AYhhBBCCLmT2/C2Zm18z9tGS3/mDUIIIYQQQgjfuM4V3rgKUREP2yzMIQkhhBBCCCGEm65zhbew2g6voQdRb3i/O1JPKfpYJuSAEEIIIYQQwjem84S3wItxD31Y5mDcYEMqHgckX7/4Ffn0mn7iDcbLpiGEEEIIIYTwDesM4S06SEbOR9JyMi3WzCvUNsqQiJzyYwPPvyPntKDMk8H1SYAQQgghhBBubZ0hvEEIIYQQQgjhlhfhDUIIIYQQQgidQIQ3CCGEEEIIIXQCEd4ghBBCCCGE0AlEeIMQQgghhBBCJxDhDUIIIYQQQgidQIQ3CCGEEEIIIXQCEd4ghBBCCCGE0AlEeIMQQgghhBBCJxDhDUIIIYQQQgidQIQ3CCGEEEIIIXQCEd4ghBBCCCGE0AlEeIMQQgghhBBCJxDhDUIIIYQQQgidQIQ3CCGEEEIIIXQCXQgAAAAAAAAAAA4PwhsAAAAAAAAAOAEIbwAAAAAAAADgBCC8AQAAAAAAAIATgPAGAAAAAAAAAE4AwhsAAAAAAAAAOAEIbwAAAAAAAADgBCC8AQAAAAAAAIATgPAGAAAAAAAAAE4AwhsAAAAAAAAAOAEIbwAAAAAAAADgBCC8AQAAAAAAAIATgPAGAAAAAAAAAE4AwhsAAAAAAAAAOAEIbwAAAAAAAADgBCC8AQAAAAAAAIATgPAGAAAAAAAAAE4AwhsAAAAAAAAAOAEIbwAAAAAAAADgBCC8AQAAAAAAAIATgPAGAAAAAAAAAE4AwhsAAAAAAAAAOAEIbwAAAAAAAADgBCC8AQAAAAAAAIATgPAGAAAAAAAAAE4AwhsAAAAAAAAAOAEOH97Ecd6B6e1Ofgjt6YHeceLNWn3TcIBzDwAAAAAAANDBdXhTD9XmxAb7+/l4e3t7e/seC7hwo7hj3vz6nbkRJ25UvrnjIwiHzzCVN05E5HY6TjkAAAAAAACAzYDT8KZuzQz2PRaeUvZ0Yp4gCEKt6JGkR/j7+ieIx8xswkWnlIOHt406PAevJgAAAAAAAFscLsPb4N1Q78DUVjVj8VjJZb9jNx6xb4PwZgLCGwAAAAAAAFsBLsObOM47ILWV5RfV1/wMMcIYKcRx3jSMGU49VJsezfPz8fb29vHjXbhR8oIZCCnMdxRf1Y3TZF957HFObJCfj7e3t++x4FjR03laqhHHeV8uUY89Nu4w6CpZxPxTkW47H7+g2AJqKKVFTt0HWhGxoqfzZlbXHVHwMV9v5iG3pwfSzojuKNvTA30SytUvSq4GH/P19g7K7LRSczPlmMY5yoH4HguITq8dMq2khXoBAAAAAAAA7IfL8NaeHugdnCOzvBIjQJj2vKlbM4P9TicUtynUBEHM90nSw48dizM37rI9M8iXsbJP6F0ZpbT0IJ9j0aI2hZocxpkSGhoUSA9vAaGhgbo1iPmO4oTTPseuVT1NDw6+KembNxYbVWA4BpPwFpVwNeiyiBwtamV1dWt6kG/QTUkPub+Jp6Jo+iGbRCzdDs5fK+2jJkIrNWfpeaMvGRPHHfPRl6BW9EjSw4/5Bmcbfm+9XgAAAAAAAAD74fSZN0X5VX9f/4h0SZ/57hlr4U12N/TY5RJaPlBXXfU7ldLEVlr1NT9GZ5+iKNrnxE0p5dOpm1JqX5y6+toxenhjjPVUP/7phI+vXzQtpMhygr1D7w6yHXV7eqA3PTZZXL36mp/x+Az1o5wT1vDG3IHVmlsLbwpxnJ8f80RLb54y7sh6vQAAAAAAAAD2w/Vsk/MdxTfO+/v4+AVF3Ui/X2+a4qyEt/b0QL9r1Yxt1CWXjYMFrUEtUVEQxfLcF3PYpMlYT3Gct/flEvroS7aRksYPzLWJ1tQAn4RyttWlN09Y7r1i73krUJjfgm03VsIb+5khFAVRhjNtvV4AAAAAAAAA++E6vJGoFW3V+elXLpz09fELukp7V4CV8MZ8EM7kuS2rUEtsTQ1gmQ6FGd5MihbHeZtsZjm8mezEwhpj4gR/X/+IlPv1HRNsPZSs4c2WSV3WEt6kN0+YhmR6GdbrBQAAAAAAALAfxwhvBtSKtuKE0z6UZ9ash7e1TZE431F840IAOemGydwn7KVxHN4IglAPNYpSooL9/Xx8/IJic2jzhNgc3izWnLVmlCXmzjPCGwAAAAAAAG8IBwtvBEEQxFhBlI+hm8d6eGOfsZK9ZHHcMR//yzn15OwfJiWy9y9xH96M6GYBCUo3PnVnU3izVnPWmqHnDQAAAAAAAMeBw/BmvtOM2uK3/syb9Rkr9XRmBpmuTC1x8G4oy/wajhTeCEI3Q4rxQTJbwpvVmrPWzLZn3vSLEd4AAAAAAADYTDgMb4qiaB+Wd3STPW+G2SJZwhttMg5ZTrA3Y35IglDPz7O96Y1lSg11a2ogJXnJcoKZIUfdmhrIYXiT3jxx4qfH9NpIbzLCG306SpYdWK85Szkms00y38Cgbk0NpM82ifAGAAAAAADAZsHpsEnyzWGX08ue6mbimJ94WpYS4e97+lqVmWfeiOprfj5RIspDX+Sb2cJ17xtQK3rqRVcDj0XfGzXdn7r62jGfoJvUNYNC4y4HUHKNuvoa82VmgaGhARz2vLVnBvkaxzvqHwq8Vm04A4N3Q71P/fR4nr0sm2tuWo6l97zpxm/6Bmca0jfCGwAAAAAAAJsJ18+8zXeUpccG+/v5eHt7e3v7+PkHM+bjMAlLY1U3gvx8vL19jflM/aLkxgUeWYbvsYALN2jzVVJRvyi5GkzO2eHjx4tOqXihNnlsbuxxejRZmI9fUGzO47H29EBOh02qX5QYZxrxPRYcm/OY0QF2N/qkr7e3z8nkerM7sKHmzHJYzv3jnFhKIem0vxTCGwAAAAAAAJsJ1+ENAAAAAAAAAIANILwBAAAAAAAAgBOA8AYAAAAAAAAATgDCGwAAAAAAAAA4AQhvAAAAAAAAAOAEILwBAAAAAAAAgBOA8AYAAAAAAAAATgDCGwAAAAAAAAA4AQhvAAAAAAAAAOAEILwBAAAAAAAAgBOA8AYAAAAAAAAATgDCGwAAAAAAAAA4AQhvAAAAAAAAAOAEILwBAAAAAAAAgBOA8AYAAAAAAAAATgDCGwAAAAAAAAA4AQhvAAAAAAAAAOAEILwBAAAAAAAAgBOA8AYAAAAAAAAATgDCGwAAAAAAAAA4AQhvAAAAAAAAAOAEILwBAAAAAAAAgBOA8AYAAAAAAAAATgDCGwAAAAAAAAA4AQhvAAAAAAAAAOAEILwBAAAAAAAAgBPAWXgLEEkhhBDCLStX379qAIBarVaruboHAVgPCG8QQgghB3L1/ct1gxkAR4GrexCA9YDwBiGEEHIgV9+/XDeYAXAUuLoHAVgPCG8QQgghB3L1/ct1gxkAR4GrexCA9YDwBiGEEHIgV9+/XDeYAXAUuLoHAVgPCG8QQgghB3L1/ct1gxkAR4GrexCA9YDwBiGEEHIgV9+/XDeYAXAUuLoHAVgPCG8QQgghB3L1/ct1gxkAR4GrexCA9YDwBiGEEHIgV9+/XDeYAXAUuLoHAVgPCG8QQgghB3L1/ct1gxkAR4GrexCA9YDwBiGEEHIgV9+/XDeYAXAUuLoHAVgPCG8QQgghB3L1/ct1gxkAR4GrexCA9eCw4a27c5lQjnQYl9TPzBELEvoK8m5yuQlKeYBIKlESc2PdxhK6F4jlmXT9tlTk3VJy/VcLL5NM1pcoTXeg7ayXBojkct0P0gCRNLRJMal59YogiFcrk2MDMdTqFMrlr18NdzSSH20skF87NrzMUmD6mJZYmSspNHdmzO43QETu4vX0sPHEGs8S5Uy+WjWpwpv760gDRK33xpaWXhEE8Vq7PF9b20g5eAOvl+Zm7pXRd0eWQ4e2l/qZOULTVm3cyoQFiUl1zP0hzF0wnLcIIYROoen/gN4MXDeYAXAUuLoHAVgPjhrenswuEgSxqEgyLDEXDwxLTJrOlsMbbVv9+gTxeqq/1UyBpltRslbZ5NTr1cnBF6EiaUBxh/ilhhqQovuWXhGEdnqYT9uj5QLl8hVdgfzKwd6l14tT/eTm6WNagiAMHy2EN7b9yuUEQbxekpaZnCVKOaES+aD6tWqsh89W7Cb/dRozxzSrS6riysYA0ZPbg0sa49FSzk9xh3T2lb5q7H9QfoNyjlLTAJE0d3KFIOixk1GsaXXM/yGsXTAQQmhJrr5/uW4wA+AocHUPArAeHDS85U6uaKfn5K8NnSRvKLzNL6g1KwsPxawFWspaKXINMTcZTS2wqv2q7ufmurnX04q5udX50kLq5msp8Mns4uulOrE0gAxvi+rpV5rn9axnxiDrfuVyQju9sKqZGY1mnCVGOZQ9vtm/zujo69XeZlotFid7GefH+h+0sOfFMq2PMUDU26N5NaxYeEWNnabF0qtj4Q9h7YKBEEJLcvX9y3WDGQBHgat7EID14JjhrbdH82q444lE+drYvn8j4W1urP/hzKpGMcRnKdBS1mLui6p4YvK1pq26u3P5tbybOoJxTQUaf5U+piWU8nS5ZpUcs2cuvLHvVy4ntJ3No6Mrq4PtjQEWwptppHkzfx2T6pD1ZR5ScYd09pU+1JmeycbMMf35MfhkdnF1vrRYLn/NqJel8GbhD2HtgoEQQkty9f3LdYMZAEeBq3sQgPXgkOHtyezi6wVJoTS6f8nYGrYrHjBhfeZNv5WumV42OfVa+6KhcaPCW3Tf0qvlmXSRVDS1+kop59tZIDO8BRT292pejctazYU3M/vVlRPTv/RqWZlZuPbwttl/HSvhzcjK0oyw0Mzu6qdVhp5JvbmTK6+Ucr6oWTpn9twGmFTHWnizcMFACKElN/6b1Ta4bjAD4ChwdQ8CsB4cMbzpG9nSAPHklKFV/YZ63roDRNKkYfXqwsukjQlvzXVz+h6qZtXy6wVJoX0FmoQ3kZTfPqdZmStpYA1v5vZrKKejZeH19HDHWsPbpv91bO15e/Fs4bWZnrfu50uvVXLGn6O3R6PrgaTFTtaarim8mb1gIITQklx9/3LdYAbAUeDqHgRgPThgeOvv1dLW1DWdxZNThLqlirra69EuyoYbF97Ix6Wm5pY34Jk38eQUrTbUEYxrKbB+Zo76zJsuzLTWzr5anFuaNw1vZvdr3AU5n8fU/JqeeXsDfx3GM2+NEiX7M2982SKxNJ1iciaThtVkpyLtyJtV9KklqWltLc+8Uf4Q1i4YCCG05AZ+pa4JrhvMADgKXN2DAKwHxwtv9O4pSidJR8vCa83c1O1iaUBhe/GU5hV1unzRhoY3slOLIGwPb+Zmm2R08tBHMFoucGx81fxsk7rwJg2ofjn9miBMwpv5/VKDSmOJYpUgWMKb2dkm38RfpzFzXPvK6myT5v6g1S+nyUGM9COnn3nGyEnLs02a/UNYu2AghNCSXH3/ct1gBsBR4OoeBGA9OFx4E02t0qa2F09MGqaXKBvonFvRviYI4rVmifr6L2mAaM3hjQq5Gn395oczq2sIb5T3vFFektYsnaNPTK9/YMyWAi29580Q3kTSdLnmFTO8WdgvPaiIR0dX1vCetzfy15FafM8b5eDb57S6iTSNZ5J8jwINpTxA1N+rpb3vzvBAIEuxojW8583iBQMhhJbc3G9Z83DdYAbAUeDqHgRgPThceIMQQgi3glx9/3LdYAbAUeDqHgRgPSC8QQghhBzI1fcv1w1mABwFru5BANYDwhuEEELIgVx9/9rRxm2K/8yVxvb3P9zzw/XSHtWGN6c3A5XQf7ur62fxTesrRujvugGlAAeCq3sQgPWA8AYhhBByIFffv3a0cZviP6PFFpW8MeWIm6ur26kC+QY2pdeM0N/V1dVfaGUtecaR7a525C7bSgdODFf3IADrAeENQggh5ECuvn/tukJYMgAAIABJREFUaOMyw5tare/O2ifo3qB2tD3YFK/kGUe2u7q5ubm6fhRdu+GlA2eGq3sQgPWA8AYhhBByIFffv3a0cdnCm+lCxaOUH3a9v93V1XX7+387HF8xQFl5oCL+8N+Mv6MNuFT1FEbt/+t7rq6uru+57QnIaVNRdxBTWhi1n9z0Pbc9wYW6LRkjOc33qsnTDru6fhRdINjHmt7YD4y1dJNhkwMV13/Y42Z64Pp1/bMepehW2P7+3w5ff6Qw7lfRnBWg23b7+3/bH0zdGLwpuLoHAVgPCG8QQgghB3L1/WtHG9dsz9v2Ixm6cZMqafzu7dt3h5f2qNSqntLQz1xdPwqvIgOJvOCUm6v+d3LJ1X0fUAZcDgj93VzdjqQ0K9RqRfPNwx+4bj+cNmDY6/btHx5JaZSr1GpFZ5a/G/0wbOgb69aHtm6W9GbxwExKp4c3VUnwh/oKqxXNKUfcXLfvvtJEXXf7e1+Fl3Qq1GqVXBKze7vrB/5CXdnPBfu2u35w+GazQq1WKzpLQj/jfAjqloSrexCA9YDwBiGEEHIgV9+/drRxzTzztn13vJTaS0aJRvK0w66u2/2FKrVaXRv9ET02SWM89QMu5UL/DygRUK2uCv9Qvyuy+8svR0Xf0DNGqv9sPbw9v/6Vvjh52mFX1w/Dq4y/tHRgLKXTwhuzwmpVcQClJkJ/V9qRqlU5fpTKsB24XI7w9qbh6h4EYD0gvEEIIYQcyNX3rx1tXJPZJl1dXV3/FlxmSBstV3a7un4QVMLY5LP4Jt3vaKGJQsEp5oNzxlxD7pUacZhLrIa359e/cnX96vpztVptmt4sHhhL6dTwxrItGc8Op8mZ65purS4J+sBV390IuIOrexCA9YDwBiGEEHIgV9+/drRxrc42KfQ3DXf6rGJphn3WVLhx4a0p/jNjdtOlN2PEtDb1v6XwVnDK9OUD1LNkJbypB4qDP9U9LOe5/0x8PlIcJ3B1DwKwHhDeIIQQQg7k6vvXjjYu2zNv8rTDljqajFgPb2bi17rDW230RyzB0JDeuAxvarVareisTIk6rJ/x5KsrUkxZ8qbh6h4EYD0gvEEIIYQcyNX3rx1tXKuzTZoOmzSyxmGTjB2sI7zVRn/k+kFAMS0SlQR9YFjG4bBJGrr5XTh+7cKWhKt7EID1wFl4AwAAAMCbx442rvVXBdRGf+Tq+mFoBVvnkcUJSzKObHd1/TZlgGW7dYa3qvAP9VOmUKCmt82esMRseCs4td0Q84w7XutLxMG64fpeBMAeEN4AAACALYQdbVzz4c3Q+UTOuv9JkKiTnP2+8obfX4+QU/7rZ+SPkchV+lnz3fyFurzWdGX3dle3b69L5Cq1WiVvzA/56lPyHQPWwxuZvsKrVCqVSWosCfqAHpBIVEL/7Yb0ZvHATEq34VUBhtk3LYc3VUmQm6urG/0dCIY3K4A3Btf3IgD2gPAGAAAAbCHsaOOyhjey04wSOSjvrHZ9z81zf3DKI0OHmsWXdLflBOtew+26/f0P9/wQf6/NtvCmHqiI9np/u6vrdq+fnqupqIoDPmAfiEh9iYGVA2OUbu0l3VmUWUesDpukn6w9P1yvYOt8BJsL1/ciAPaA8AYAAABsIbhuMAPgKHB9LwJgDwhvAAAAwBaC6wYzAI4C1/ciAPaA8AYAAABsIbhuMAPgKHB9LwJgDwhvAAAAwBaC6wYzAI4C1/ciAPaA8AYAAABsIbhuMAPgKHB9LwJgDwhvAAAAwBaC6wYzAI4C1/ciAPaA8AYAAABsIbhuMAPgKHB9LwJgDwhvAACwJagZzcjsOisZSeP6QNaFelgwL3VbXejm+kCcGK4bzAA4ClzfiwDYg0OGN/V4SU7ul6ECd77g4/CMk6Jncq6PCAAAnJ3Q+g+PV70TULud6wOxH+3EPaX4F0rxL1RV/4r8ZjdcN5gBcBS4vhcBsAcHDG+zJbduu4dkxkrH1YRG8bT0AD/Zt3iY66MCAADnxvbwphDnuYfk3Z1m/22rKNM9tqKVsbSz4gA/80bn+g/TLOqBq8v98Yute8n8Nvf498w1Froyk7M8QgTu/GSPi3k3pONqgiAI2Y1YQVDVJh6Y08F1gxkAR4HrexEAe3C88NZZcYAv2JncQLulhscGODocAAD4eWBzeBu+lSBw5yefLJtl/TUn4U09cFVV82uV5C1DfluWhdJXGU69muyZVNMyoyGIRVl5gSc/PaGFQHgzhesGMwCOAtf3IgD24HjhrarAnS84IJKZ/uZessCdn+Z7PeNjfqagm1DL6i8k3P6YL3APuXUwtb5LTZBf0u78gnvG9TNvdBKtokx3vuBAYt6XoQL3kFsH7zyVEwRBaJ6KCw5eSHbnC3ZeSD95r2v+TVYTAAA2n4bx/ND6D0n9JduOV73jL9lmWFIzmsGyTX/VIX5eojDb/cYjhWHhxLOEK7d28gUfR+dFCDL04e1ldW6OR4jAPTTtZHr+vk0Lb2Rym29wJ/vclvvjNaPpzJXqij34ednG3sLZ7BvkV4nsRqzgjFByMjrFnZ/sEXe/bIJc4WW1KO/LUIE7P8UzsbSaXFhV4H61PPtOFlmps+JBsnGnbtdvfqU0+Xaa7htKPZifSq552y/XmYb3c91gBsBR4PpeBMAenC68CY7dH1cTBKFujggXuF8sqV4g5htK9vAFnunNaovhzUNQN6DWPBVm6v5FuaV0D1+w+07rPLFYeSfNnX8rou7N1hQAADaZfFnU8ap3zJnZddZ0k4bcdPcbjxSdFQf42bf6yWWaivTbO+PKGxYIYqErMS6ZDG/qumLPkMzE1kWCWGwQZu7cnPDGSG5K8S+Wungsqz3MZ+kPJAgyvHkm18kWCGKh68dYwZ7cToIgFGV5O8Py80Y0xEJf8tVkj/RmgiCIqgL3kMzEp7NqQjNQnu8RUnBPTRBEZ8JFwYHc5wo1Mf+i+kQY+Q2lqUi/7R5b2rBAqEfqzoTduvBIs/GV3xy4bjAD4ChwfS8CYA8OHd7ItObO1+Ux8qNu9Ev1vZ18wT4h+cB6d+JlgXvIvRLLPW9kIOx+eJAv0DdNBDsv3cts6ptY4KSqAACwuay9560z4aLghHiWzDyH7pHPGzdHhAnOPNSFE8OwyYr0W+6Cel3zZ3OGTdqY3AhzgzkJgjFsslWU6Z7cwLLtVckAQRBVBcZCDDVqL99n7NOT3Yglv02aI8LIE0UQBHEvWaCLf84A1w1mABwFru9FAOzBocMbQRAE0RDEGt5oq5GZLTulz4bwRhYYW9FKaJ4Wk2NmBO78lP26sZQAAPDzxKZn3iiDDylxqCGIEswMy+8lU/5fvQnhTT1wdbbsX+Ye/YfV5EZY63ljCW8TT+OvpnuE6P+JkNyWNbxVFRi+VijhjfxuomiSCR0WrhvMADgKXN+LANiD44W3/qpDtAlLzIQ39p63fkGctfA2LPHlC3T/yEoQhHp2qK0x9uotd35ycPWbrCcAALxRbAhvmrLUW7RAopvzoyk4xDiw3BDeSm4lG7ubNjq8vVoanK38X6/UE4ZuNwvJjSCsPPNmEt5m7yYle9yobl+g1Yg9vNUVe/Dz83XfSYbw1hQc4qzfGlw3mAFwFLi+FwGwB8cLb+SrAviZl6TjaoKYf1FxiDW8sT/zRlSk33Lnp11q0JDPNlDD2+47rfOE5qkocyc/2bd4WP2oyEP3BJ3uQTgn/RoGAABbIMNbaP2HZteYfnwyhDrJ5PCtBPIJsdm7Sck7r1a20595U5Tl7QzJTX6xKc+8vVoanC37l6Uu3iv1BPmDtS1MZpsMyRR0EmbC21jqVfJLgZgfaI7V14g9vKmfXghLPijsmieI+ReVviHGZ9708W9R9rhRN+WJM8B1gxkAR4HrexEAe3DA8EYQ6vFKUd5XF5Ld+QL3kFufJxTcko6rGeGNYJ1tkiAmnkbH6aZEi07OpE1YcilLN9ukbuXFhnu6vey8kI5XgQMAft7UjGZkdp2VjKSZW0FRlrczrKhMzVhSXEHQ/teaKirYqZ9tskw/MePJ4oqgkA0Ob0rxL2bL/mW28n/ZkNwIgiCIhb68VMp73hpeEgRhbtik4kmZz4Vkd37y59cr8oW5lsIbQcgbKn6ITHbnJ3tcyT8RJWDONslP8UwoypdhwhIAnAyu70UA7MEhw9tGQ3/mDQAAgMPzeuXV0iAp14dCxTBs0onhusEMgKPA9b0IgD0gvAEAAACWUMtkTZOLBKFRPC09wL8dLeX6gNYH1w1mABwFru9FAOwB4Q0AAACwxEBF4b7wFN0Y++JuZ2/xcd1gBsBR4PpeBMAetkR4AwAAAAAJ1w1mABwFru9FAOwB4Q0AAADYQkwBAKampqamuL4XAbAHhDcAAABgC8F1bwcAjgLX9yIA9oDwBgAAAGwhuG4wA+AocH0vAmAPCG8AAADAFoLrBjMAjgLX9yIA9oDwBgAAAGwhuG4wA+AocH0vAmAPCG8AAADAFoLrBjMAjgLX9yIA9oDwBgAAAGwhuG4wA+AocH0vAmAPnIW3GQAAAGALw9X3L9cNZgAcBa7uQQDWA3reAAAAgC0E1w1mABwFru9FAOwB4Q0AAADYQnDdYAbAUeD6XgTAHhDeAAAAgC0E1w1mABwFru9FAOwB4Q0AAADYQnDdYAbAUeD6XgTAHhDeAAAAgC0E1w1mABwFru9FAOwB4Q0AAADYQnDdYAbAUeD6XgTAHhDeAAAAgC0E1w1mABwFru9FAOwB4Q0AAADYQnDdYAbAUeD6XgTAHhDeAAAAgC0E1w1mABwFru9FAOwB4Q0AAADYQnDdYAbAUeD6XgTAHhDeAABgS1AzmpHZdVYyksb1gawL9bBgXuq2utDN9YE4MVw3mAFwFLi+FwGwB8cLb1UF7nyBe3KDYcG9ZIE7P/NGJ4fHBAAATk9o/YfHq94JqN3O9YHYj3binlL8C6X4F6qqf0V+sxuuG8wAOApc34sA2APCGwAAbAlsD28KcZ57SN7dafbftooy3WMrWhlLOysObPL/qNUDV5f74xdb95L5be7x75lrLHRlJmd5hAjc+ckeF/NuSMfVBEEQshuxgqCqTTwwp4PrBjMAjgLX9yIA9oDwBgAAWwKbw9vwrQSBOz/5ZNks6685CW/qgauqml+rJG8Z8tuyLJS+ynDq1WTPpJqWGQ1BLMrKCzz56QktBMKbKVw3mO2iOMbb29s7ppjr4wA/K7i+FwGwB+cKby/LcnK/DBW48wUfh2dH15D/qvqyWpT3ZajAnZ/sEVeUL9OQX9Xu/Myj11N3htwrYd8KAAB+/jSM54fWf0jqL9l2vOodf8k2w5Ka0QyWbfqrDvHzEoXZ7jceKQwLJ54lXLm1ky/4ODovQpChD28vq3NzPEIE7qFpJ9Pz921aeCOT23yDO9nnttwfrxlNZ65UV+zBz8s29hbOZt8QHBDJyG+EM0LJyegUd36yR9z9sglyBcN3R4pnYmk1ubCqwP1qefadLLJSZ8WD5PeFul2/+ZXS5NtpB0QygiAI9WB+Krnmbb/cZ/JNqfqmsPYmLpmcvL0j88YoSzsz+eTitUSq+psnvb29vU/erLfnEBDewIbC9b0IgD04U3hTlOXt5AuO3R9Xq8fTEwXu/NzUYaKnOHcnP/lEybh6oSk4TOCeUNWjC29pUdJFgmDfCgAAtgL5sqjjVe+YM7PrrOkmDbnp7jceKTorDvCzb/WTyzQV6bd3xpU3LBDEQldiXDIZ3tR1xZ4hmYmtiwSx2CDM3Lk54Y2R3JTiXyx18VhWe5jP0h9IEGR480yuky0QxELXj7GCPbmdBPnVEJafN6IhFvqSryZ7pDcTBEFUFbiHZCY+nVUTmoHyfI+QgntqgiA6Ey4KDuQ+V6iJ/9fe/f5Wdd8HHP8D9rDP+w9U6rNJ+wPciUdVHkx9sAel0qQzeQSRUmcKkN7WhZakGkmaem2cex1+xcaLY19DWEpsh5CSODAXFkqKKVYHbQZlKnR4caMTTdnZg3N9fxjb2Mfg7zk9r5f8AF3fa+xIn/jz5vy4n1x991v70ib8bOrooa7n3jq/kMQfTz+17+De9z57+D/8o7H+FXcx3jrqrdlu60mqRrutpd4uHtoVRdGuQxfX//3C2oSeRciiSPEWvzO+pVJ97J/fOnnp93caE3frcF+1q/GvrZ/Vq2mbNY68pWvEcq8CKIX1H3m78qMfVr916l7aPH9/Iv23ros/2Fd96u1GnDRPm5w6erCr+kHjf6uP5rTJNZZbstLJnEmy5LTJD8eG2n+/tB7sO3M9SZJ3xltfpPkTXZ78euuY3txLz6XxdvEH+9L/UEmSJCcGqo38K4L1r7jNeIt6h681HkvbajHepvq2t4ps/uSB7iiKKkNXln6hD2o9UdS9bVt3Z73NXz7x4rd3bIuiaNuOb//k1Nx8+1dP47DjyNvdcyP/tOfx7vT5L564PN/6hnYdOnPyxZ5tUbStZ//wzHwcx3H82zOH9vdsi6Ko+/En9w+du7v+/wD8mQo9i5BF/uLtF6e+tsppk+nZLJVqV+/hb578ddw4yNb+MfTSlY54W+5VAKWzpmve2k4+bMuh80+3hVnz8RMD1cYJhMkjibf4et+9iS/8z3t/+cBySx505G2ZeLt94YW+o41fDZVq47XLxts7412V8RNtX+0bY3NJcv7pSudvn/uaMLfWv+Km5dTT09Oqt4uHdkVRpVJZTKqzL+9sHidLS27FdntmdPRAdxTtfPls+uj8VN+OqN2uQxdXi7crw73dHc/f8fzPbi3G2/YdO1qf7B2+FsfXXtvb8fTuZ+q3ln5jlFToWYQs8hdvvzuzrVJt/Wtucm/4peaxtSRJkmThzuWZnz/9w2pXZaj66/+oPt/52SRpXvPWsUZ0vGozfg6AXFlDvH02cfhg5z+Hpff8mPlO78EfTDee1Iy3Nw8OtA43Pex4+/zTG/dOf/Hz+HbzsNsq5ZYkD7jm7b54uzfSP/DVl969vNDxEy0fb9Mnv1qp1xu/k5rxNvOd3oHvvPvQft7NtP4Vt1FOtVqz3j6o9URRZWiolVRpvfUOX2v8aeV2q9+6VX+mVW+3RvdHURTtqp27G989V9sVRdGeo5eWnjbZirf0zMvtPxyfm4/vnju4p7vx1zZ6r3Lkw7vx/MzBXR3Z98SPpzofhVi8UUz5i7fkDycGDrWuOjj35jcq1ceOXoyT5NqJ4cUr2f5Qrx5MMyy95u3vXp/9JEniP86Nvn057oy3ZV8FUDZpvH3vg79e8Rl33+/pbb/J5O8O/ii9QuzeSP/Alr7TlzuvebszMbql97WBq4/kmrfPP71xb+ILn87+4+fx7fQPD3rFfXeb7B2qXklWiLdbh/uqX3v1w0+S5JPrF59b/ImWj7f4wt59jd8yn1w9va23dc3bYv79ae79f2vc8qQI1r/iLpZTerht6EoaUL3D19pPZkyjav/o6VrPA9otjtvrbaVr21aKt85bl1wb7o2iaHvf1GK8NT7RetbFwcq2KOp+fM/+F6pDPzs766xJmkLPImSRw3hLkvhG/dXX/nbvQFelumXv0Z6xD683bvj1+zdfHX5s8b6Re9++0bzbZPrkru8dil754KMlR96WfxVAufz8PweHZvec+fjISk+4MzG6Zd8bE/GSR05OJUly+8KzzzfuNnl4bHzL4t0mJxZvzNhzcurp3occb/996i/uTXzh3ukvrqHckiRJkoXfjB5ue5+3839IkmSl0ybv/GLiH/YOdFUG/uanU/XXX1st3pLk5vmpb+4f6KoMfPXH9W89U116t8nKK4/9KL3XcTGsf8VtltCVoUoUVYZO1nrSm5d0hFQaZ3v27Fql3TrtfPnso4+3OI7vzp792VD1hf17Hu+Oou49R90DhVToWYQschlvAJTc//3v55/eSD9CfyvtmqdNFtj6V9xWCV0ZqkTR9u3bG0fQOkOqlWdra7e03tpPm2yc2Nh22uTOn56Z7/wWHnDa5NJ4Sx/eOzR7N47vjj/rtEnahJ5FyEK8AcBq4rm5mf/6U5J8dufCW9+oHHr2XOhvaGPWv+K2NVp6pCvqPnByPr7v3dcWbzOyYru13WIyfWDny2fvu2FJ49BYI+oaLbfWG5bcf+RtaTV29w7f991RUqFnEbIQbwCwmutTx7/+/VcaZ/IX/5bF619x2xvtVv2Z7mj7i5PzSz8Rx3F8rvbkGtutvd7a3yqgZ/+hM79NnzA/c/S7j3dH0bbvHru09K0ChvY/ufxbBSxz2uT83KmfpF+9+/EnW18eij7KlJR4A4ASeWSb8N0zP13hXiWQS6FnEbIQbwBQIo9mDV58I29nJVIcoWcRshBvAFAij2QL/tWx73ZH0baeF086K5HCCD2LkIV4A4ASCb0wQ16EnkXIQrwBQImEXpghL0LPImQh3gCgREIvzJAXoWcRshBvAFAioRdmyIvQswhZiDcAKJHQCzPkRehZhCyCxdsfAaDEQv3+Db0wQ16EmkHYCEfeAKBEQi/MkBehZxGyEG8AUCKhF2bIi9CzCFmINwAokdALM+RF6FmELMQbAJRI6IUZ8iL0LEIW4g0ASiT0wgx5EXoWIQvxBgAlEnphhrwIPYuQhXgDgBIJvTBDXoSeRchCvAFAiYRemCEvQs8iZCHeAKBEQi/MkBehZxGyEG8AUCKhF2bIi9CzCFmINwAokdALM+RF6FmELMQbAJRI6IUZ8iL0LEIW4g0ASiT0wgx5EXoWIQvxBgAlEnphhrwIPYuQhXgDgBLZ4L57+sbhox89NXX9lYeyPUNAoWcRshBvAFAiG9x3e6e/8sQ7X9p19q/W8Nzp3ZX6WBzHk/WuSrXzoz7Wetps34HqfU+odlWqXQcmZjb0zc72HRjsu7ShL8GfsdCzCFmINwAokQ3uu1niLY7jSxNbmyXW/uc4juPZvgPtLbeo42krB97ix9aR2dYLG3+veGM1oWcRshBvAFAiG9x31xZvna1Vm24vsZmRwd2TS568lnhbzLCl7bfUWK0ZcuKN1YSeRchCvAFAiWTYcd//eKR3+ivpx84zX37inS/tPPPl5iOnbxxe4XWdR94af257sGEtp002M2x69+rPvDSxdbUDdMtVImUVehYhC/EGACWSYcd9/er3n3jnSyt9HP3oqeVf1rjUrT4WN5pq92R7XDU7au1H3mb7DlQXj9ot+6rp3e3nTzryxqpCzyJkId4AoEQy7LjZjryNjQxurdT7Rga7atPxZL2rNtE3Mt343INOfbzPfRm23FeYGRlsK7flXgVtQs8iZCHeAKBENrjvrvmGJdO7a/XdlfpYPNtXm5iZrG8dmZ0Zqacp1aqsJWc51qbjOB6rtZ/omNZXmmErnDNZqXZVqp3X0aXEG6sJPYuQhXgDgBLZ4L67xnibGan3XWpd3jZWS+NqeveBiZnW9W+dB9Am6814azs3sj3eml9+tu/ACm8ksPo1bxt97wH+rISeRchCvAFAiWxw303jrXf6K6s/bWxkYqZ1b5K269Mm6x1HyTLEW3opXXoHyxWPuS15OSwj9CxCFuINAEpkg/vu6RuHj3701NT1V9bw3NabdLedJDm49UDne7KtPd4mJ7Yuc/Rs5aNw4o1VhZ5FyEK8AUCJbOJunMZbK+GaR8nGao3L29Z5zdt6vwHxxmpCzyJkId4AoEQ2cTee3l2p96U3KZmsL3mPtZmRwa70+re1Hnlb5d3bGuHXWX0ue+MBQs8iZCHeAKBEQi/MkBehZxGyEG8AUCKhF2bIi9CzCFmINwAokdALM+RF6FmELMQbAJRI6IUZ8iL0LEIW4g0ASiT0wgx5EXoWIQvxBgAlEnphhrwIPYuQhXgDgBIJvTBDXoSeRchCvAFAiWzaZnz7wpvHDtb6+/trR0anfnl70/5eWKPQswhZiDcAKJFN2otvvPsvtWOTH91ZiBfufDQxOPCv/x7Hc1ODg8ffGK4NTs3Ft8+/caTW31899Pq7VxfST03NxXHzT3NTg+OTp4dr/f214cnLdzbpu6ZUQs8iZCHeAKBENmkvPn+8f/zcQudjc1ODA+PTNxfi+M70WG307M2F+PbFk0eOvHVl2XgbGJ++ubBwc3p8oPEpeKhCzyJkId4AoEQ2aS8+f7z/+Pk4juemBvv7+/v7j59vP7zWlnZXJ189dvo3y8XbYrItfil4uELPImQh3gCgRDZpL+448tbIL/FGroSeRchCvAFAiWzSXvzxz0dqx059eHMhjud/d2ZkSbzdd9rknfdGq6Pv3Y6bZ0m2Tps8d/zgkbeubNK3TZmEnkXIQrwBQIls2mZ8+5dTo0dq/f391YGhN85d77grSbz0hiXxwtXG3UlOT4434u3V8RPDtf7+2uCbF9yrkkcg9CxCFuINAEok9MK8Ru2hB49E6FmELMQbAJRI6IV5jcQbj1zoWYQsxBsAlEjohRnyIvQsQhbiDQBKJPTCDHkRehYhC/EGACUSemGGvAg9i5CFeAOAEgm9MENehJ5FyEK8AUCJhF6YIS9CzyJkId4AoERCL8yQF6FnEbIQbwBQIqEXZsiL0LMIWYg3ACiR0Asz5EXoWYQsxBsAlEjohRnyIvQsQhbiDQBKJPTCDHkRehYhC/EGACUSemGGvAg9i5CFeAOAEgm9MENehJ5FyEK8AUCJhF6YIS9CzyJkId4AoERCL8yQF6FnEbIQbwBQIqEXZsiL0LMIWYg3ACiR0Asz5EXoWYQsxBsAlEjohRnyIvQsQhbiDQBKJPTCDHkRehYhC/EGACUSemGGvAg9i5CFeAOAEgm9MENehJ5FyEK8AUCJhF6YIS9CzyJkId4AoERCL8yQF6FnEbIQbwBQIqEXZsiL0LMIWYg3ACiR0Asz5EXoWYQsxBsAlEjohRnyIvQsQhbiDQBKJPTCDHkRehYhC/EGACUSemGGvAg9i5CFeAOAEgm9MENehJ5FyEK8AUCJhF6YIS9CzyJkId4AoERCL8yQF6FnEbIQbwBQIqEXZsiqennTAAABP0lEQVSL0LMIWYg3ACiR0Asz5EXoWYQsxBsAAEABiDcAAIACEG8AAAAFIN4AAAAKQLwBAAAUgHgDAAAoAPEGAABQAOINAACgAMQbAABAAYg3AACAAhBvAAAABSDeAAAACkC8AQAAFIB4AwAAKADxBgAAUADiDQAAoADEGwAAQAGINwAAgAIQbwAAAAUg3gAAAApAvAEAABSAeAMAACgA8QYAAFAA4g0AAKAAxBsAAEABiDcAAIACEG8AAAAFIN4AAAAKQLwBAAAUgHgDAAAoAPEGAABQAOINAACgAMQbAABAAYg3AACAAhBvAAAABSDeAAAACkC8AQAAFIB4AwAAKADxBgAAUADiDQAAoADEGwAAQAGINwAAgAIQbwAAAAUg3gAAAApAvAEAABSAeAMAACgA8QYAAFAA4g0AAKAA/h+TxydFXpJgrQAAAABJRU5ErkJggg==" alt="" />
到此基于django的初步架设开完成。嘿嘿。
django学习笔记一的更多相关文章
- Django 学习笔记之四 QuerySet常用方法
QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...
- Django 学习笔记之三 数据库输入数据
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...
- Django学习笔记(五)—— 表单
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
- Django学习笔记(三)—— 型号 model
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
- Django 学习笔记(二)
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...
- Django 学习笔记(五)模板标签
关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...
- Django 学习笔记(四)模板变量
关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...
- Django 学习笔记(三)模板导入
本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── _ ...
- Django 学习笔记(七)数据库基本操作(增查改删)
一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.p ...
- Django 学习笔记(六)MySQL配置
环境:Ubuntu16.4 工具:Python3.5 一.安装MySQL数据库 终端命令: sudo apt-get install mysql-server sudo apt-get install ...
随机推荐
- EffectiveC#8--确保0对于值类型数据是有效的(初始化问题)
1.决不要创建一个不包括0在内的枚举类型 2.举例如下: public enum Planet { Mercury = 1, Venus = 2, Earth = 3, Mars = 4, Jupit ...
- js判断ie浏览器
function isIE() { //ie? if (!!window.ActiveXObject || "ActiveXObject" in window){ document ...
- html进阶css(5)
css定位机制 css有三种基本的定位机制:普通流,浮动和绝对定位. 除非专门指定,否则所有框都在普通流中定位.也就是说,普通流中的元素的位置由元素在html中的位置决定. 块级框从上到下一个接一个的 ...
- asp.net 内部重定向
1. /* * 2. * Context.RewritePath() * 使用给定路径重写 URL.(内部重写) * 内部请求重写 */ public static void TestTwo() { ...
- webservice和.net remoting浅谈
服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置. webservice和.net remoting都是用来通信的框架,它们最大的优点是可以像调用本地对象一样调用远程对象,比如: ...
- HTTP之I/O模型图MPM详细解析
高度模块化:DSO MPM:多路处理模块 prefork-->一个主进程+多个工作进程,每个工作进程处理多个请求 worker-->一个主进程+多个工作进程,每个工作进 ...
- python笔记之中缀语法和管道实现
python笔记之中缀语法和管道实现 你知道什么是中缀语法吗?你知道python中的中缀操作是什么吗?那你知道操作python也是可以像unix的管道符一样方便吗?那么,废话不说了,直接上代码. cl ...
- 动态PDF在线预览
实战动态PDF在线预览及带签名的PDF文件转换 开篇语: 最近工作需要做一个借款合同,公司以前的合同都是通过app端下载,然后通过本地打开pdf文件,而喜欢创新的我,心想着为什么不能在线H5预览,正是 ...
- Js函数加括号、不加括号(转)
函数只要是要调用它进行执行的,都必须加括号.此时,函数()实际上等于函数的返回值.当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码. 不加括 ...
- 深入理解JS原型链与继承
我 觉得阅读精彩的文章是提升自己最快的方法,而且我发现人在不同阶段看待同样的东西都会有不同的收获,有一天你看到一本好书或者好的文章,请记得收藏起来, 隔断时间再去看看,我想应该会有很大的收获.其实今天 ...