您所在的位置:小祥子 » 编程 » CSS » 正文

网页重绘和回流以及解决方法

时间:2015-07-26 编辑:likelooker 来源:CnBlogs

浏览器呈现网页的处理流程图:

JSnJMHMcIMb866eTtO/apRqBbkW5FmhnyMsUHzL4fox4UBc0N4KJOXTd9ts2PIz8MUkgYuDAxMf2Q1AJcPM+pXNpUVc8AFNXo2eva9z9YoBmOpFJZs6kHvEwVEjYWNScA6oFuJYLiFnmTE6lCQtMBWQ9aMa9dmaIFhzTDSjUSKVogq76s+pXn6xrLKrGJ5fW65saXX3md2r7jhicQuGRZlqbpvHnz/uVf/qWurg4AkiQ5sl05jtPcVZMkyc9+/osvvtqrEF81Aln3JM0tS5ZqBKLqHPcD/SOxkmAUBY26yTnnX8Q8LkxMTD9UHVgOHYZhBhDGUQZgmPQnP/3F6vWbqBvVNZYtN6MelCVbIaGsB7YPuRIpS45mJoRmmpnIeihpgayHrVi7AxdZb/XdliWnLDm6lfox+DGoRpwr6aJiGzTkJaNYlgcNHfXY4/0xXfcQfpfmi0S7UZJkWQbTp8/453/+fwcOHGya9Ih3FUVRGIa+71dSdH/z29O2ffm1rHuS5vIyFVWHl6lmhoJiH++j/GMxw06cECwnvuDizp+sXhdDlgF4gcvAhYmJ6YekQ/RxyQAcz/WD6Kyz/7x56xcqsQXZ1E2/LFmCYhOaqkakGpGguLqVynooKJ6sh4Rmhg0KiXjZVUjUioUK8duNha29T1H1FRIhinGiXRKoqPq6lVIHaurLbgCa4dXn+MHDRj89bnySnjDgAgCO482dO//ee+//6U9/ns8XAeAIIkWVJN8kSTDSFIbhL3550hdf7ZV1T1SdsmRJmitprmEnkuYe7wP9YzFJc2Xi5IpS526Xrdu0JUwT5nFhYmL64akFuFSSNlSNXHfTrfMXLuIEVdGpTByZNDn8RRKIJBD1UNRDWYsPw5qcLu3IRD0U9fhbW6iQ0LAz3UpKgiGpju2lPa66Zs6ChWkGiC8mtYLAA0iTJMqyI4zCHDuhc2TOnHk9ely5Y8eu0047AwCiKMmy/Q1p4JsHWetrG3pZKr4WfPCLX560fcc+/GAlzVdIKKoehhGP+4H+kZhCfJk4kko7du2+cu0GFipiYmL6QaoFuMRJhuDy1tRp9z74sKybjQXeoP7RA5d2xS7h4YJLWXIsFwTFdQIgZpIvqfU5/syzzzVMx6LOfr9LCpBGUdAOPS4IJS+/POnhhx/VdeP++x+cOPHlyncFQaq8DBsPtqZWwOXk7Tuq8bNl4HJcjIELExPTj0EtwCUBoJ5vOv5Zf/nfr3bvLQlyDMBJ5GBkEUgotprLcsKYeJjGq76oh4YNvOy4IeRKagLQ98mBT/QfZDpuU3/hLA7jACBuh+ACAJbpvv/enLvuvE+RSXVV/Tl/OV+WdF2zIAPPjZoWugR8r60a6TbBJcRUJ4y46VaKkURmx94YuDAxMf0o1NLjApAAPN5vYP/Bw/w44yXdjaAk6ocEF4Ec9yv1d7XDBRfVAl4NiQW1jTKhmWbGuaLiBvC7M/+8p6oWo0Wu72SQAsRpFh6vg9qqMoAM3p4647Zb71IVg+j0pYmT+/Z5KgqzKMwgA9cJk7jpZW04XRi4tEsLFBIycGFiYvrB60CPi+UG//dnv+BERTFszXI5iUi6LRJPJE3ggsgikHg/uByWN/u4X9xbmEgCwfjWRkLZSDUK9UVDt6EsOaLqERprlj/59akPPtJHNcwEANtmWDbJ4Dv1pT0WisIsS2H2rHl333W/ppoGsaur6s8/r0M+x0EGYZAGfoJrXRK3lbTLwKVdGgMXJiamH4UOBJdX35x68+13qQYltp/jRGKHokZbB5fDDcMf94v7NyYePrgoZsarcVmJTA8IzRqLmm4lnEQk1fzXf/t3w3YSgCiJM0ipY7RDcIEMZElf+PfFt95ypyiokEF9XX7W+3NvveVOBBfIII4gTSCO2lrbGLi0S2PgwsTE9KPQgeDSsWv3hYuXqQbNlyVi+7LpicRBammGLHEzcPn2fSbaJ7h439oCxYSi6JseFEXXcEHQ/ao6PgYoi9pFnbouW7kqAfDDIIM0ycKkvYaKJr44+fbb7nHskCtJYZA5dnhxh65//3AxftdzY6SWKGx1cWPg0i6NgQsTE9OPQi3AxbSDf/23fxcVQ1JNmVDDiVQalFW7kt0ikFDUY4E0VdkcPri0K3YJEFxE4n2brUiCkuQRBzjZ59WwkTNCANWIijwRFWvhouWXXdkL68mTLI4Svx0m5yZJBhnMnjXvumtvtqivKJTndVE0Nm7c1qFDN0qjMAJ0ukAGScLA5cSypuRcUWsCl/2tESvI8h3AhYEOExNTu1ELcFm94bMOXbqrpicTh1dML4KSYDRnDqwkalZPFAiKKyhupSVdpfYVJxlhj908RzQzLgkWfgtfQ2gqqh4nUt1KWi/vDCuPVSNSSChpPi87R7GCVCSHsW0eWsIvEd1MO9mxu+bf/+O/ASDLsixLsKooTSEDgAzStNksRmhljvT3YJDGcTz17en33PtgVW1BJb5mxoYNJYE+0X/UhJfedPwsA3C9IAzDNsCLlUMfqR02ixyWSYYvtgQXAICDwKVyOkRJeNAkoxQgPcSZkzJ2YWJiai9qAS7zP1p25dU3qmbTnOf9Y4n81i67kubrVkJoii8gNNWtRNJ8UfUMOytLtm4lhp1Jmu8EoJmxqHqC4vKyI6oeLm+yHmhm3NqFWCEhIhESDC6HqhEdl1VHJAF6X9CagUtArKi6rvhf//mz/V6KFLIEF4k4qUBDk6IoOV7ggt1lZr737l33PagSN0iAV/3avF6SvIYS+fVvz+Yk0vTaLEnTVnN0Wm9Ax8ClbTuG4CKSQDJ8wXBEjV7ctfvqNRsQmg8JLglA0hRFipMsjtMoTeMsS7IsSZKoVXBh7MLExNQO1AJcXn5t6v0PP47gohoBTstTjVYvu4ggiCOC4uJjXnZ42VGNqCzZ+IM4fJGXHVzMEETwNYadtX05rpAK7lwhYYWTvmdrA1wU3eME/ac/+SUhJgAApEnc5LEIowwLjMMwxh61OI85TSFL0NJmBvitY2MpQBqG/iuTJ/W+7kZiBZLmN5SI4YITQV1BGz9xyt0PPIrLk+vah+9xYeDyD629gQtkkCZZ3Mzv0vwwM3BhYmJqj2oBLv0Gjxw+5jnV9ESN6lYkKLZuRW2Ai+UCYorpgOk0PbZcUI1ItxLc6laC8IGLmaT5hKaaGeOwRkLTIm+2ei1WPTRJ8yt2vFadNsBFVGxiBb/8xSnFIgcAAGkU+gCp5wVhlLV6xT9EKOeYKwOY/cHcm267k/qprAd1BU2joJhZbV417OzCTt3Xb/4silMAiONWk4sZuByptTtwSSGpUMs/BhcmJiamdqAW4HL3A49OeOUNzfJFjWpmyMuU0LiNUJFqRLzslCUbkaIs2ehHwXgQ/pRCQs2McYseGvS4YLRI1oNK7svBhlEnXPk0M9bMGH/LcVl12gAXQabUTX590qm1tfUAAJDGzVr+J0nmOB56XHw/jOM2GqQcSwMgppEBvDPzvSt6XpvjZC8C4oBEoqJoWz6UBGvewqUdOnXDou4gYuBy1K19gUuQxEESVyAmjKMoib/hk+MB1kxMTEz/UC3A5da7Hnjl9bc1y5d0W9Y9SXN1K5I0t7XLLi876D4pCVZJsDQzJjTlZQcDQJjdgqsXAo2oepjpImk+OmYExTUdaO1aXMluQe5BcDm6ybmHtTC04XExaHjKyadXV9cCAECapTFAGkURAPh+iEs8IeamTZ9u27Z97dr139iajWuathuP9fbzbds/WbHqqYFDHu3bT9JtlUYFgXKyy6s+r3mGnZVl4+rrbp7x3mwsj2pNDFyO1NoXuDQ3BJegeRE8AxcmJqZ2qRbgcvs9D02cPEWngWK4vEwxTiQodmuXXcsFjP5gSAiXK8sFQlPMzC1LduUBoalCQtOBhoJal5MJTfMc2VdbdoJWwUXWA9WIkHVKglXkTUyUOS6rTts5LpJKTzn59Lq6BgBIUxxUlLquW/lsgyAaNmzEz37+q3P/98KOnS5pZt06dL6kY6duHTp1O6bbjp0u6XBxl/MvuLhzt8tenzLddGNBd/O8pbvQyJuqkxoe8Iq5Y3fVKaf9znHD5LA75zJwOZ52ZOASJKntRzjrI242H/7Q+MLExMTUDtQCXO66/5HxL72m00A1vZJgWG4m6x4v0/0XxwPBRVDc9Zt3rN34ZZE3i7y5duOX6zfvEBR39fovFi/fuHHLrjUbtm/eumdfbXnX3nyupKPH5ctd9Z99sS/PkW1f1axat60SMzrY0E+jmTEn0qo6fm8NVygbbZRPH+uFoTVwUYlf4rVTTj69sTEPTdkhKUCKKzrOZPb98KWXXhkwcKhOqKZbmm5pOlW+X+MF1QliRac6DXjNEYmn2ElJcRWa5iWrIBp2BPmyMnTE2CFDRzGPy4llRwYuCrHynKAQK0gYuDAxMZ0YagEud9738MTJU1TTUwxX0lyF+KLqtNE7TreSBx8ZMO2d+XmOcCL907mdv9xV31jU+jw5/OOl68/8U4ct2/Y++MiAPEee6D9q6MjxkuabDpx7Qbfb737UdGDyGzP7DRorKK5uJZxIowzyHKkk9qKjxfYhz5GnBo6hHqzd+OVVV99GaEo94EQqab7tA2bYYN01J1LDznAnCEno7MFc4IaCqpCwoaBGGQiKix6gGKCxqPGyo1uJZsZ5juCuahpEzCmubZTw9YoVtwEusmaf9KvflkrlNIUW/TBSXOMBAEaOHD1o8HBNt/aThCOT79No89+LYxwEI+CNoJ4nghFIhl9WbZk4JVH9xUm/1QkFgHK5XDk9giAAAN/3DxdcBMWNAQplg5cdjPdxIiU0JTQ17EwhYUmwggTwLMLjRT3QzLihoGJgEd1seKogCXEizXPEsDPViHIlPUiA0FRQXC8CPNCmA4LiYkRS1gP81bmS7oZQ5M0YQDWixqIWZdhF0MR2RJxILRfqcrLlgqwHb8+Yh+9QtxLLBUFxC2UjzxHcYWNRCxLAgGaUQWNRM+wMc9Urqeii6lEPZD3QrQRr9ETVsX0oS9bNtz+we19OIT6hsag6nGiKqvP2jDmbt+7Cgr53Z38saX6eI34MmNqFAdnDBRfMuIpCH0vc4yQLkiYXS01j8den/q7rZVdu+3J33DQfPqyACnVsANjf1KfdNVRkYmL6ceo7gYtCwoFDn1m0bINqRKYDl191U54juZKOgaGbbntQUNzNW/fU5eSxz07qde0dhKZ1OblL96v7DRpr+/Dhx6uHjHge64wai5rpQKFsIK8gl6hG9HV1acwzr2z6bDcWWi9evnHz1j2cSEuCFQPU5xXViJwAFBLWNIjUA0nzi7yJ9Uq87ORKOq5tbgjYcsaPAX+8JFg1DSInUoxVFXkTF79C2TDszLAz2wfTgSJvuiFwIi1K9DDBJW4DXGRCK0ixfxSUJ+veMWUXRXcqtIR/C28EvBEYIQhmKBheXVEmdkjscMrb717Z6zr0FRFC9ruO/DRN4fA9LiXBwnwm1Yg+/7J6wUerGotaQ0GtquMxqihpvqC4DQXVCQDRUyEhJ1I8IobdNBYKEQcr1xQSUg8ITT9asm77zroP5i/b9NnuDz9eLaqe5UJ9XkHurM8r1IOGgupFgDSDYcq9NRwilKT5JcGyfXBDQO5BICY0HTpy/N4ajhPp+s075n74yfaddVgcFwNU1wu6lSBslSXbcmFPVTHPkRhAVL36vOIEUNMgehE0FjX87+BE2lCQ3RD8GPbWFEXV6XTJVW4Ihp2UBKOmgS8JBqHxuOcnrdmwTVBshfhlyX5p8nTbh0LZQBCX9aC1PkZtgItNTQSXKArwOdPxEwAnhN+ccdbGz75csXbjBR26rFi9IUohTCGMkiCM4zTJ9tNqmsZh2Oq0cCYmJqbvU98JXAhNxz3/6sq1n+MN63U33Us9QGgQVa/rpdfwskM9yHNk1twl3Xtcb9jZ0hWbe1935+hxL8t6sHbjl0NHjkfnR66kKyTEXF0EF9WIqAe87Ix55pXhoyfkORIkTTv3Y2gsapLmb/uqZk9VsSzZ+Po5C5bLemC5sH1n3Y49jaYDVXX84uUbOZHmSvpnX+yrquPdEGobJV529tZwVXW8rAe2DwoJcyW9yJubt+6prhfwvnZvDYdrrULCIm8evsdlP7hkTTer+8Flv69F9ypuD8EI9g8WOFYm656ie8r+CQzNwYU3goJi615aki1Z9zQzdAM468/nrV+/URRFAKCUhmEYx00t6Q4XXNB7gSg5cdK0Cy6+fO6Hn0yZ9sGbb8+u+F1yJR0zpZBy0H+G+FKW7CJvehFYLmAVvWFn9XmFl519teV+g8auXPv5WX/puHV71fMvvrl0xWbTgRgA/THonEPUMB1AIkGvjBOAoLjoY8OMK3wbsh44ASz5ZNMLL72FpDJz1kdnn9Np8fKNU/8295nxrzUUVD9uKv7HMjdkXCeAupyMFftuCLgf3CH+XTFAY1HJldQYwI/hkb6DLDeb8d6C+Qs/mfzGjC7dexV58nCfgctXbS4Jhqg6McC0d+ZPn7nAcqEkWGXJRro6glBRqZjHB5ZlR3GaAGiGc9vdD743b1GQQI6Taxq57lf0uv2u+5un60ZJ7IdeksXM48LExNR+9J3AhZedfoPGvj1j3ierP1uzYfu5F3TDguc8R0wHOnfrjcuPrAcLPlp1+92PNhTUV16bcd9DTyGIrNmwffjoCRgLwAUJq4dw5dPMGH0nupX06HnzkwNGf7x0PS5vuZJe2yg90neIG8KsuUuefm5yXU4uCdZFna4o8mZjUZv6t7nPvvB6SbC2bq+6/6/9Fi5eO2XaB6+++e4DD/cXFNf24b6Hntq4ZdeiZRsee2JYY1HzIvhiR+2AIeNkPXhm/GsfzF/mx4D3uBh1kvVA0P2jAS4jFJ0293k0H0CNaTTHlF2aU0sFXBpFs6DYkhXoXsprjqDYxIqWLF/bsVMXaIoUNAnTjQ8XXDAFynTAi2Dh4rVdL71GtxJR9R7pO+SD+cvQzYaM21jUnKBpWATiL8ZZkE0xNRv9YUXeRNBZtGyDbiVX9r4V+xNOfmMmAoSguAoJq+sFTqQYY8KYIP4semvwRziRFspGkIBuJQ0FFYOGd93XV1BchJIVa7Z27NqzLNl5jvR9asTyVVuwC6LpgGFnGAKzfZA0H3OwLBd27ys4AdTnFYxjliXbdICXqag6lpvNmrtoyrRZ3XtcO2jYuPET3yhL1vDR4199850P5i+5677Hbrnjwb8+NkDSXPzXuOrq25Dm8U9uLSfs2+S4UGrGcZoBeFE6c/a8q2+4LcfrRZ64IZQlK0jhhYmTf3PaH6rrc9TzgygM46gyEKCNvj5MTExM36e+E7jIevBE/1FvTZ+zZsP2jVt2/encziXBwtwRL4Je197hx1CXk1Ujeuf9hS9Nnj5/4cqRYycOHTl+8PDneNlZufZzdL1g5RHmMZQlGy/NWGuNGCQo7jvvL7z2xnv6PjVCUFw3hJtvf6i6XsCowT0PPLF9Z52sB917XI85KyvWbB377CSSRRr77KTnJryxY08jpjIUykbfp0YsW/mpakSWC08OGG06oJlx5269edkplI0whYs6XcHLTiUNQjWiIIEjDxXtDxgdClwCgYS8gRYIx9Iq71bWvxm6xJseZ3pqkCluXMdpPPFpCILuV9cLCUCv3tfMmDGj4mgBgDRN0zQ9guRc0wE8vivWbD3zTx1wsV+59vPb7nrEi5rQZOfXuep6oVKGtnzVlj1VxXWbvqrLydu+qsEgoBMAlsRjxMSwM82MBcXt3K03pkbZPtQ2Sms2bEcYqm2URNWrrhcw6rRmw/ZPVn9m+9BY1GobJcPOYoBFyzZs2ba3LNm5kh4DYFrJlb1vxRwpWQ+Wrtj8l/O64qn1xY7aq6+/a09V0Q2hUDY2b93TWNTQpbd+8w5OpCvWbC3y5tfVpd37CpLmBwloZtxY1BQSCoqtGG5dnvcTCDPo0OUyy0uq6os1jVzPa2/WLF8x3EHDxy5duT4GqK4v4+ndf/DT6zfvQNJCcD9ccAkDrxIwAgCLOrv31VzY6RLLzWQzsgLIC0QzQ83yC7y8ct2mizp1XbVuPfpdNKJGSWhS48D2dExMTEzHSd8JXAw7GzbqhSWfbMI71x49b8b4jm4ldTm5e4/rRdXDjroz3vv79p11D/cZ/PyLb459dtLAoc8Qmq5Ys3XYqBewJZ3lNiW44DqHMwGwkZ1hZ0ECDQWVE+ltdz3y1vQ5jUXt92ddiB54XnYee2LYvL+vqMvJ3S6/Dl+5fvOOwcOfw1yWEWNenL9wpRs29faNAS657FpM4C1LdpSBQsI9VcX/Oen3K9ZsffPt2dNnLnjo0YENBRU74+Fdr24lbVcVfRtwGdEMXCoRov3UEvJGKJDwmLJLZYVDcOGNgDM9zvTKlq8GWUGx68u6E0NeMHUr0Yygti7385//HADCMKyUdh9Bci627cGgz9btVed3uExUPSeA9Zt3XHDx5V/tbiiUjcf7jSyUjfkLVw4dOR4h5pLLrp2zYHnHrj1nz1va96kRO/Y0KiT0Y2goqJgGi/CBZ8sNt9yPLZgxn3ryGzMfe2LYhJenvvP+wtP/cJ7lgmFnd9//+Kp12/bVlm+89QHDzrDv85W9b91TVfxk9WcP9xnMidT2QVDcdZu+emrgmELZcALIc2TVum0XduyB8LFmw/aul14j60FjUes3aCwn0sXLNz7SdwiGda66+rbZ85b2vOb2d2d/jKdZWbIxWGY6KaExphDV5fmPl63+j5/88qlBIwq8OmTkuDvve3jazA94xXzp1bemzfxAs3zDidAH+cbUWavXfyEoLiYst9Y8ug1wwT7Oge8CpGEYZwC/P+vPS1eurW0UQoBd1UWRBLYPuZKqmp5M6K691V0vvazfoMGSpmaQUsfKII0S5nFhYmJqF/pO4MKJdPDw5z5Z/Rnem/boeTM2bnFDkDS/R8+bsZyEE+k77y/ErJdlKz8d9fRLA4aMU41ozYbtTw0cI6oeZhhs3LILEQFvpivjjUaMeRELKziRbvh052NPDDMduOrq2ww7ayiovOw8/dzkpSs2Wy706HlzoWzYPny0ZN2AIeOcAFQjGjBk3LpNX1EPahpETNTtdEkvSfMxq6Ys2Zh88Mc/X4wFRJLm1zZK+La9CPwYBMWtzyvfLVT0D8CFM+ImcDmWhkftYHCpFbS8Rs0IGgVDMsK8YDoBFMu67QRjxowZNGgQnh6YmQuHHyrCiBuGEddu/PLcC7oVeVPS/KUrNp9x5vkxwKOPD/308681M/YieOjRgV/uqldI2OvaOzQzvuzKG3Ml/eE+g7ds2/oB8CUAACAASURBVIsBRAQIjOxgDrWguJ0u6RWmUNMgYt7utq9qevS8Gd9MkICguBu37HrhpbdqG6Uib056/Z1Jr78jaf7ESdNWr/8CcfnGWx/AEKSoehs+3Tlo2LN4tpQle+OWXb/74wVeBCXBWrFm6x//fLETwLU33vPV7gY3hDxH+g0a+/mX1YuWbRg+ekKhbPS+7k5R9Tp27Yn+G0FxDTtrLCp1OVGzfM3yS6I+aPjYBx55Yu7flzw/8dXnXpzc56nBW77YdXnP6x545Imva3IxwL66gqh6XgSjnn5p59c5TOpyQ2itc3TboaIw8OIowKqiHldc9dGS5aYbiqpXEGgI0MDpVgBFyQwzEDVTIVaeK7/86mtdL+0uSHxlFuP3ckViYmJi+gf6NuByILWI++NEqhGNfXYS3g4Kintl71sxmRHrKTp3643FpWXJfuf9hbqVdOl+taC4I8dOxFDRp59//Xi/kThHeuOWXdNnLmgsapjCiemxouoFCQwe/tzbM+bhiOknB4zeV1su8uacBcvffHs29uq99c6HS4Ilaf4d9zyGFDVx0rQHHxmAq87YZyetWretUDbwZp168N4Hi/D3qkY0ZdoHmEzzzPjXxk+cgtUfs+ctxVUWy18JTVUjks2oQi3fBVxkQvdnmbQAF86Ijym1iM06sVbAhTcCzgz0CKo41QghL1lFiZo+VNcL1M1Uzfz44487d+5cIRWMEx0uuGBqqmbGlgtLV2w+76JLcQTV2o1f9rr2jvq8csaZ52MuS31eGfPMKy+/+rfGonb19XfJetDpkl5RBkNGPL9izVb0N2DiSyWvtlA2ZD249sZ7sA4Z40fzF64cPnoC+tgwfDl05Pibb3/og/nLZs1d8uIrb497/lVJ8y/uctXTz02eOeujmbM+erjP4PWbd7ghYJHRdTfdi74N1YhWr//inPMvwazhTZ/tvvSKG4q82aHzlfjHamb82BPDpkz74JPVnw0Z8bxuJZdecQNyvLy/gBlLqS03k4mjEF8mznMTXrvp9nudADTLv+6mu6+8+sbNW3cNHfXMuOcnLVmxbl9tCelft5Lhoydg5IsTaZE32y6HFokjambHrt1Xr9kA0FTWnEQxZGAZJgBMfGnyPfc/XOIVxXBlPXBj2NcgmD5gFlShrKumly+JCUBtY2H6zHc7XdJt3abNGUCSpRlA1tQJhoWNmJiYjptagMu9Dzwy8ZXXZc1SdEfRPVUPRdVTSCTq4TdGKmmkQV4wRz7z8pt/m6NY8afb942b8PrsD5dLRtjA6fMXrR4y+oUP/v6JFcDXdeV35y5etXH7sjWfNZbJzDmLJkyetmNffu5HKx/rN+K9eUtenfr+uAmvb9/TYAWQ4w3ZjDQ7LUpUpUlBtD7dvu/duYsnTJ72+rTZqzZub+B0GkJtQZn94fKx41/926yFtQXFCqAoUdWI+j41YvIbMxcuXrtizVZBcZev2jL22UnPv/jmx0vXY2sWTBT4aMm6UU+/NGnKu7uqi5IR8ppXX9Le+eDj4U9PnDlnEf51B9vhgksaRt+09AIYPebpocNGS7p1fMCFBArxNTNUiM8pDqe5Ek0kmpQ0jzfCouqWNV+yIk5x/Bjqc6JK3DjJfvOb3+zevRsAoijCylho3ePyxY7qpg9K9/FTVWlSVl3FiguiZfogGeHilZtPP+sCN4HGMpk4adqbb8/Oc+SKXrcoJERH1/1/7bd245f1eeWKXrcYdnbV1bdJmt9v0NhNn+0+5IIt64HlQpfuV0uaj6myouqtXPv5yLETMVKJGd9T/za371MjYgAcY44+wutuunfjll1IVwoJbR9yJb0SQsJSbUFxl67YfGHHHljVPOHlqeMnTuFEesMt9xOaYlugAUPGrVq3Db2Joup173G9H8NFna7AFBxMqi2UDUnzFeLbPrw1fbbpwEOP9leNaNTTL+6t4ab+7YPX33pfUOyRYyf+fdGqMIUibzaWiWanV113R0G0SrLtpVCdkwwPWjk/vbJqlWWdV8hFnbru3LU3SbLACyGD0I/wJFy6ZOU553SkDiha0HoHas+wkyJPFOJ7MSxZse76W+4aPurZBCBMEzugGaS4zSDVDS1r1toO4Cg0rHNdt+Lbo5Qe4V6YmJh+uGrZOfe+B19+9Q3NcBTdkVRHI5GkBZIWiHos6jGCS6V2VzA8zU6rGkVB92kIdUUVHc6yGSFz1Je0+pLmxCCbUU1eNjyQjLCsug2cXpSoZqf4uKy6dgRVjaIdgZ9BY5ngUqdYMT4gLshmVBCtHG8Ium94oFixZqe85jWWSUm2iQu4KPoxbN1ehS3ssEFLniM42wi9JtgFxHQAp1LXFhTdyfC67yZQlOjumlLlme8OLpUreOgHaQrDho8cMHBYWdQUw5UMXzRD0QwFMxLMqGwmghmJxjE0yQglzdXNJnaRjVhzQHVBtFLBTGQbaotaCFCfVxoKcgJgOeGoUWP69+9vmiY0qy2KouhwwUUkAac4eDQXrdh0xTW31eTlTdu+7nXtHV/uqrd9mDV3ybuzP9bMuLZRevTxoYLi+jF07tZbNaIOna807KzPk8NXr/+iNXCpbZRuv/vRvTWcG4Ltg6wHazZsf6L/qBhg976C6UBjUdPM+La7HsFQ0ZZte7dur9LMeNGyDZdecQOWT780eTo2ssNk8GUrP317xjxedpwAtmzb+5vT/+KGsHj5xsuvuikG4GXnhZfeenvGPNuHPVXFu+7ry8vOxi27HntimKwH19xwd54j19xwNydSzDoPU7BcwMomTP5VjejBRwZs3rpn02e7Me0Xq9v6DRq7eesebDDjxLDly6rBo8YXRMuOoDon2RFwitMauMjECVLw4+xP556/etX6wE+SKMXBznGY7dvb0LHj5dXVnGFlJd5Rjbi1cUhYSYekZTrw5a760eNevuTyXpKmJhAnkMYQRRBbHq3UHB0VcEnTNEkSfOz7rG0MExPTodUCXG67695XXnvTtANFdwSZ6kYs66Go+q2Bi0gClSamDyIJihK1ArAjaOB0vM6aPpRkW9B9lSYiCSQjNH2oL2kqTUIATnEE3fcz0OxUd7L6kiYZoWLFRYmWVZfXPM1OC6JVYRfigmanshkJuo+vIS64CRAXihLNC6ag++hax4ZymFdRKBsxAPYiw44smBiBUSRkqfqSVhAtGoLhgaD7Rx9c0iz0AwAYPebpYcPHyJp1XJJzRRLwMlV0RzUCSXPLisepXlH1c5JT0gLZBoWmvIat/1zqJl/t2nfhhR1qa3FsZFOCSxzHbVQVtQYupg/EhQZO5zVv/qLV6GabNOVdLwJs86OQ8P05i1+aPP2t6XNyJT3PkZoGsf/gp7/a3TB89IS9NdyLr7z90ZJ1rYHL0hWbh4+esHj5xvq8kivpX+yoXbRsQ//BT0+Z9gGiKuLIZ1/sm7Ng+YuvvL10xWbdSpBf5yxY/tyEN7ASHpNRCmUD2xENG/VCdb2Q58j0mQuGjXphyrQPJr8xU7cS7JwbZfDRknVDRjw/a+4SDFm+PWPetHfmb9yya+TYiTv2NGJuSq6kY61+rqRjT0UslyM0/f/+66Q9VUXdSurziqh6q9Zt27q96sZbH1i8fCP2NOIU59GnhtsRKFZc1ShaAdQVVfxvOiS45DhZ0i3VoGefc96nn34GgMiSJBFABl06Xz5z5vwsg0LJ0E1QSNQauGAjaeo1NR3WzHhPVXH2/I8v7NipuqGGE4UE0ua9XvZTSsvZAkfkccG5pPgAT7kKyjAxMTGhWoDLLXfcPfmNt6gbKbrDS5ZuxAqJBMVrA1zKqluUKK95ihULup8XTEySKEoUHSSKFeMaVhAtxBFB98uqKxlhjjdq8jLuBO8jVZoQF/BbnOJodioZYUm284KZF0xkHckIdSfDJ3nNE0lQku2y6upOVuRN7Ltal5Mxx6LIm1jxxMsOJ1IstMbkFUFxK/6Ayi8qiFZeMI8WuCRRnMZJJcdl7NhxCC6q6ammJ5uBZEWSGYsWWiQdS5PNQCUusQKDxpoZiiQQ9VA0EsFMiqpflB0aQHVOknUvSKCusdynb7+nn34Gmi0hsH9dOVxwaeB0TnGKEvVSEElQEC3DA9OHqjqelx03hMotPsby0B+G6Sy2D9jesI2ZR9h9H/veYq6MpPlIA1jTjhEf7C+HrXXdELCQDX/E9qGhoGKPH/R27K3hggRGj3uZeuAETS1ecG8lwcIWdjv2NGL6LfbnxfGi2M3FDZvcPGEKpgNYcs+JFCuD9tWWbR/OOPN8NwSsqsMo1bBRL1zc5SrsJS2q3pQZcxUrrs5JIglCgN01JcWKWzs5ReKZbixqpkrsjl27b9u2PY7TJErTOMsSGDxw2LChoz0vK5eJKLu83NZUdqQ3jMFhur3pgOmkGz7despppy9ftTpI0gQgSOIKtRwCXI4oDyZN00r5PUMWJiamQ+pAj8uk16eYdiBrNnpcFBK14XEpybYVgEqTokSRJyQjlIzQ8ACXfycGdKLgkxin5zUvxxt+BipN6ooqujpoCLzm8ZqHO0HEQS6RzQgjRxgh0p0M/S685qE7R3cyvA3Fvhd4+yuqXlmycQiA7QO2nK9MvWmahmOn6GLRnawgWkWJYtTpqOW4ILVkkCWQZTB06PABA4eJisErJq+YnEJLKi2pTsU4xeEUeuxMUqmoWIJMeZli7EYgoWwlkhkXZaco2k4MRZ5QN1u8eFXXSy5TFA0APM/D0+MAUvn24KLSRLFi3ckQE0USYEAwBsA5D+hgwOoezYxxyg92NMbwCpbZt7bQqkZEaIoTqbBpIXpZDDvDBspYBo/12LIeYEHZ19UlTG2pJPxiMzo8VbwIquuFGGBfbXn3vkKYgmpE+2rLuZLux7CvtuxFgIOKkJnwV2NJHf5G04E8R3CCUqXNLg5pwqbAu/cVENGwbw2CEVbYFcpGoWw0cLodgaD7BdHiFMfwQLPTkmy3Bi6GE4maaTnhxV26rV273nE8PP3+vmBh90sut2lQKimSRC0bRNVXjUMn+VbApSzZ6Ke0fdCtZE9VXjUd0w2uu/m2x57srxALnS5edIDHJd5vhw0ujuMAQJIkyC4MXJiYmA6pFuByzwN/fWny64pOZc2u5LjIetgauGAuC/oqECOQA0qyjbAiGSFec9Efw2seemg4xUEcwWtuQbQwpbcoUdmMcMFTaZIXTAwVqTRBWMEoEibwEhcE3a/86qJEKx14Ky3S8a4aVyy8kcWZebiQoIsI41nozlFpIuj+Uc9xicMky2DkyNEjRo6ldkCsQKeBbkUqjVQaKXai2IliN315jEyngWkHOrFFxZJUR9J8TnGKslNSXGQXyQgNOxNkquhOr97Xv/f+HACwLAvPjcp9cBiGR5Ccy2secaGxTBQrNjzA+FFDQUWIxCNi2Bl2L8S8EIxTYJ0adjRpbaGV9QCPO6anoPcCfwRHcmpmvH1nXQxg2FlJsJAtcNgQRnAQMjAdCn81LztRBvV5JUwB8ReLjHB6gKT5iDIIVX4MhKbYVQjRBEuTSoKFfwv+URgqElXPDQGb3eHfiBVSMQCm4CAPhSkYHhheE987Mag0qc5JNGw9OVeyCrwqa9Zfzrtw44YtAAAZVO2tPvP3f1RlTVUM0/JU1VaJ3/aHid+t/EWyHjgB+DEUBa2xJAmqNXzMMxde3FXSjHh/wOhQ4HLY7IJ5VHjKYb5LxdXHxMTEVFELcHm4zxMTXp7MCaqs2SrxVT0UFE8zk9bAhbiAJIFJDJzi8JpHQ5CMEPmjJNuY2oJ3iuhEwVwWvPlWaYKvwUC+FQBxAZ9p4HTiAnpTJCOsuFjwx/GajlmfGJBSaYKebYwN4V04Lml4CcaYQmXYjeWCZDQ1NcEdIgk1lslRBJc0TtIU4jgFgLFjxw0cNKzEiZJqipopahSN1xw0UXUqTx4LU3QqiFpZJLoZ2j6YPqh2JluJQEKFpqYPdTnZoPHM9+f3vvoGpBLbtvHcwEUFM3MPF1xkM+IUBwEXkSUvmJqdGnYmaT5iATYtxJGZZcnGboS4/FfmP7S20KJXA1mEek1xGZyBhdFDjHeg5wMDhTjfEV9TafOPMwewSUyupBfKBvbaF1WvpkGUNN+LAEufiryJo8hxb3helQQLg0p4BmLxNpJKxdWHg6OxPvzr6hJOcZL1wIsAPRzYDrFpAKQRYngoBCjJdl1RNTxAN+QhwcUNQdJtYnkXXNz5082fA4Cuan9f8OElXbrVVtdpqikrBiGeSvw8pxl21trniYyFLYxxXlhjURNVT1DsGCDPaTlO/nTbzp/84tfLV65rNtsoxY4vGcQA0ZE5XbZu3Tp16lR8nCRJkiSV04yJiYkJ1QJc+j41YPzEV3JFQdZsYkWKFvCyq1tpGzkuvObJZoTlQkgPBdHCdQtdF4oVc4pTEC2MKGE+LFYVVR6UZFs2o7xgVjJanLiJKnjNQx5CXpHNCPeJL8NfKptRWXULolVZxrBznaC4dTnZCQDXvMpUgW/6oZFApQnm3+C7RQY6SuCSVsAlSTIAGDx46C233rls+aqPFn/y0eJPPlq8cuGS788+WvzJ0mWrFi3+ZNWqTTv31JYEQ9YDQQvKms/rgaD7DQWV0Fgl7qln/HFfVX0GTbyFpIJ+e13X4fBDRegtw/qvokSdGBo4XTKaMqZxMDh2hsWBRJhdgWs/+k5wsW/DQ4BtDNFDsLeGw4HhyBw4exzbomAECqMh1APM5DAdqIyqwBwpnPJYafmPhdBYnWT7gBktGMPCCqMib8YAuZKOYSachVSWbNwJZlbhOOuqOh6JQbeSKGvyC+Isz/q8gq9H3JH1QLFiP4PqnKQ7WV4waQiYKNYauEia21iSLCfsemmPlSvWYqgoDqN5c+afd+75O3d8XeZlw3QllXoxFMp6a59nJT05V9KR5zCaJmk+Qp4fAyea23bsvfq6W/sPGp5843dpYpcj87ikaXrTTTf95je/QUqupIEzMTExNVcLcJnx3uzrb77NckJiBfU50fXBsKGxqLcBLu3K2vB+H9IOd/9l3eGJKxieaPoYCMP9mHZS28D98//zr/gxBoGH4HJASefHHy/u2evaTp27de7SvXOX7p27XNrx+7VLuvXocHGXv5xzwfU33Uk90MwQQ3iIj6oR1TYKr7w69al+g10naqMq5AjKoY/K8fqx2WGenx62tpNUs2PX7mtWt2hAV1tdc9ZZf3pl0uu2ExDL4xViujHCKzYOwDGWyPStvR/FTHJl03CBuJDnNCeEujw/YuyznbtdxstKDFmyH1wUTcwgzrJv/CXNfSeVB5X0KXyyT58+55133v333+95XpZlQRA0fwETExMTqgW4LPlkVceu3SXV9CMoiyYv2rqVthEqOu6k8j2Di2j639j+3yhpfokngmz+n3/7L/SsxHHYvKrCcTzPCwAgSTJZIRlAkrawKIMkhSg9ttskBchAlvTXXp963/0Pl3itJBiqEWGbHE5xZN0rcMr//OJkUdIhA9dttZEGA5d2CS5Ba+ACGciiBAC33nbHo4898eWur4ntcxKJAXD8da6kmw5YbtOAgtbej0azomhrNJPNqC4n61YUJLCvrjB3wccXder61e491HPDONKImkFqu7Q5uAdBgF9aloVJuKgkSRBTZs2a1adPnzvuuGPChAnAMnOZmJhaVwtwqa7PnXzqGYpODRrKmlsqm4LiUQ8YuDQtDHYk01CygubgIutBY0H+cmfV/557URQlAJBlCUAKWXJwE61DeL4zyL6XbcXmzf/o/gcekTVbtyJBcTFz2faBl6w77/nrpMlv2k7YdgMxBi4nFrjgkMU0TYMonDZ9xuVX9Vz/6VYvhvq8hKXmmKNj+2C5gF1qDmmCFuRFiglhWAFHPXAj0Km3av2mM/90zjvvz8Kwkem4ldNHFMXKmdO8xVwlCRcAqqqqunbtumHDhkcfffSNN9444ExjYmJiaq4W4OLH2Rlnnr23uqEsEllzTZoVeUshEQOXpv3vpxb82ytZGpoRDB42dviwMWGIZZwRQJqlcZIkeOFNU3Bd3/fDKEqCIEqS7NAWwzE1h/qQwvRp71573c2iYpl2xMsUK42/ri5s2PzFOed1zACiMAv9hIHLcbcjARfdk1TasculLTwukFomAQDq2Lbj1eXy//0/v5rz4ceGnYRpUwMbHN+NM0pbezOC7mPRvmanWBqWK6llyaJ+qlNP0emDD/e95vpbLCdEfPH9pm7LcRy7rptlGdamVSaNV3JZzj///EWLFiVJctlll3388cf43SRJKv2amZiYmCpqAS4JwGNP9Bs+apzjZ5LquD4IisfLLgOXpvW4WXIuVk6pRqSZseWkp5x65hfbdmKoKIoCgDRNIoCmAE2aQBBEB3722UF2rJUBZPDuzNk33XwHsQJiBYWyTj0o8oTQuFPXHks/WRdGABk41E/jVt8QA5cTCVwgjaMAIPU8J4j8DCDKUk6Wr73p1icHjMRBmIadYcpwbaPUBrjIZqTYUUE2cyLBGntecxQrVIgvqJao0bJsvDl15p/OueirXdXoVwnDEPNUwjDECjXsYVgsFvHkcV338ccff/bZZz3P43n+P//zPw3DAIDKYKxKL10mJiYm1IHgsnnrF2f84U+On6nElxTPsKGNPi7HnVS+Z3BpLTn30627Tj3j7DQBAMiyJo9LmsZZBlHcAkqyDCzLTlNIU8gStLSZAX7rGFnghWmcTZ828+677g8CMGjYUJA1M5R1b8Z7C3pefRMGldIEcMBNa2LgcmKBS+C7yC4ILglADGA4/rjnJ51y2p+LvMnLDtafxwB7a7jW3kxJtnQvVZ24pFJBdyXDl83A8DJepqaTliWrPi9RN9v6xdedu/aaNmO2JCkAwHFchV2iKKo0BLJtm1I6Z86cv/71r4IgKIoiCMI//VPTFQkjSixUxMTEdLBagEsM4MfZpT16zf/7UoPG+aJOPVCNmIFLBVyaqMUKcGHG7h2PPT74hYmv4UofxynGiTA5tynyEqQtGlKk2fGxDCCDGX9776YbbxNFQ9ZsTjQNOxEU+z/++yRiBSk6h/yE5bi0Bzta4AIQJ7GvEzmD2A89y6NYrBymsH1n3c9+ecbGLbuwVy/2bGztzRQlkye26oSaG4mmz2l2SbY4hZZV188Ax2ureigp3p69xauvu33ggKGILKqqNm+GW2krt2/fvt///veyLOfzeUJIPp8/6aSTPM+reFlwwCcTExNTc7UAF1yt/jbjvauvudG24xJPDBqLqofI0oxaWozua2+GF9lvsz0SM33FChUrlIwQ71Mbi8rJv/2jaQZpBtAUtk891wJI4zhtSozFjzcDTII5RJDoe7EoiCGF996bdfttd8uKQe1AUikvGQ8/1u/lyW/5QertT21xqHsk4LJzn0g8kQSC7kpGyGuOSpOyii3qvYO3sh7IOtu2um3tc2tt2xxcVq/ZsP9wpUnsVxqrZPvnIyYAcQZxBg15oWv3q0aOeb4smm4IJcHY/wYOPPlNHxp4rY5TeOLivz/2cMKWviIJeM0rS46sh7Ieakbw/PiXzr/g4tq6hgzAMGkGQEwDT8Y4TRRVv6TbpRs2btZ0ww8SRdWnTZvWs2dPAKg4Zir9D5mYmH6YOiKnagtwMQ0dqw86dOjw0UeLiGE35MvUT3O8bnhZUbFkGhsBNIpmmfi6DwIJ26GJ+rfdtma6CwIJC5JdUlyBhKIRSWas0Uyjme40NUsVVScBKPHk5tvunb/gY15Q8Irsui7e42ZZe6znDMNw5syZjz/+ZENDjuN4x/VrautPPuW3hkkBmkqgMb2gjXrU1sBl+46vZeLIuifptkJ8UaO6FQmqJesePs+2x3CrtwCXlWs37OfVAwcfNvempXECALbtDhk6/JZb79y5p9p0wwKvBgCcQnfW5FUnVeyEN0KFppUbmG/uZA7+92l2SyMo7pLl6397+lmbP9ueAAQJVJhJt+g1N9w878NFxbIcJlDiiUrcZ559/oEHHqiceywzl4nph6zvkNzZAlwgi0OXAqQ11fvOOussPwxyea4sqV4MnGIGALUleU8D7wHkNTcn0ePOKMfI6kq6QELigWpnvB5wqsepXklxNTOpaZAMO3MC0M2wIS+9O2vBZVf0Ni23cggwwQUgDsNW+6AcR0VRNGXKlOuvvz4MQ03TdF2/5ppr5syZ0/w12GajjWXjH4ALcSTdVgxX1KhOA0G18Elmx9r2l0PTjl27r1y7oWU325YTm7HYLYkgjQBSm5oA8M67M0897feffr7dDpKSbBgBBACCGcp2sqtR4HRf1GNZqwSOY1GPm//X8AZagCYYgaAFOC3hos6Xjnx6fIGXYwDFNGOAN97+26133adTz7CThoLsRSBr7lP9Bo0dOxaaVRuxHBcmph+sjh64JJU7s+nTp99w042uFxHqKoad49WdNfkAwIygqiC7ADnJOjhy9MOwRsGQaax7wBO/IFOe+IqdSFakWwl2ji+UDV6y9tUUu13WqyFfxg/f98M4jgHSLEvS9EgGtRxrZVkWhuGiRYsuvfRSADBNc9asWV26dAGAJEkqjhbMS6gkUR5yP9BWqMjDzE1ec1QalVUbn2R2rO1wwQUzYDRVxgq4DEAQ1fM7dJr85ttl1cqJpKYoaR40iqbipFYICC5oB/tdDgYXGgAO1uYk0rffkJ7X3ujFmRMmi5avPOeCDtSPi4JCaGw6aVlyLCe9+pobPvzwQ2hWUtTGScjExHRi62iBS5pEyC54B/b444+PGDm6uj4nqIZqOjQEwfBEMywTv5bTnAyOO2EcI9PcTLIiTnNLqlPWPcEIeOKXVbehoBKaliW7LFmy5p559nlfV9UnAEkKrhfsbzeXRlHQ1IOunQlzHmfPnv3QQw/V1dVZltWhQ4etW7cCQKVXnmVZmDvZxmBeBi7t0w4XXHzXw06J+LzrumGUiCq5494HH3tyQF7QdC+Vaax5INtJTjRFbdp4DAAAIABJREFUPZT1UNZi+VABo4PBJVc2bR90K6rPS4YTLf5k9X/85H9WrN1w/sWdaxoLRUERNeoEkCupmhkTKzrjd3/cu3dvlmWV5NwKwTAxMf3QdNQ8LpBik83KnJ2777lv8PBRZVkXNZO4cV7SOc0mfpYTSVGxjvuV+hiZZsdl1S6rtu4kupNwCs3xekm2ZN2zPRAV+6tdtWeefcH2Hfv8II0TCKPmHu00TWNol+ACAJTSmTNn3nDDDYqivPDCC/fddx80u6+ttAgLw7ANL31r4PL5zn1IfjzxRTMs655iJ5zmHncS/TGY+E3n3MPwuGBaW+C7mAabZk3F0s+9+MrF3a7YWdNYlRfqOEUwPCOA/YVg4QF1T4cKGIUCCQ0P8hwRFNtys3xZ0am3Ycu2S6/s/dHSFbW5kk6DCOCr3XUK8YMEckXlP/7zJ4SQ5icYAxcmph+sjm6oyHPtpiS+LKO2+8KEiZ27XbZzb41OA8XydSeqKUqKHeleetwJ49hZWbUF3VWsED0Hmh3HAI4PBU6bNmPOWX++YG91LgEwLa/5hx+G4f4clzTw3e98YI++fN+fO3du7969C4XC2WefXSwWK56V5u3Y267maAVcTv58ZzUDl+NoknEkHhfXofi8bdtxkmUAhLoxwObPd5zyu7NXrN+CNyoF0Wi1YFs/NLgUREshoWaGhp3oVmQ4UZDC3tpGy0vKsuGEsKe6MQYolPWyZFfVFn728181jw0lScJCRUxMP1gdLXCJoyBL4zRN4zjOsixJkgwgTrIt27485fTfDxw2SqdevizxGtWdKC9oxz0b8RiZpNuq6YkaLYm6oFo6Dcqysbc2//n2PVf1vvG6G++gbpQBGKabARDDzjLIMojDKEQPTAaVzrntSph1+/rrrz/00EN9+vR54YUXYH8iZJIktm1XgkRtJ0W2AS64aJVJIJgRp/uynZY0r7KYMTt2dsTgkmVZJVDYlGAO4MWZG2XE9i/q3O3JwSPLquXEIOuest/kJvumWPoQ1XlOJuuBpPmS5uY5jdC4Lif6CRR5YjopL1PLzRQSmg4Iirt42ZrzL7i4+Tn2D+csHo+WAsy+sR+bjvsH/gOz76IDQ0VZGgNAHMd4r2Nadgbgx5lhe4/0ffL3Z5/z8mtT8mVJJpSTyHEnjGNkZdkwnEg1PXxA7HD56o1PDBh2yqlnvv/BAqzndNwoA0hSyJqazn1zQOIwytplci4AuK47a9asU0899cILL/R9H/Nwm2OK7/u4jLXRap2BSzu0IwAXyKDiFwzDMI5jPIXxDI+ypt4vjz7R//Ke1+z4ulbRnYPB5ZB+lybvi+zwsuNFUCgb2KAZTVQ9y81E1SkJhmbGCgk1M546/f3rb7gJ30ySJMn+jo1tleUzO672Y9Nx/8B/YPZd9E//P3vnHWZFffb9TTF5krxpjylPErtREzF2LJGOsURiN2qMxha7SO9tEQQ7KgJiQ1ERkbb0pYN0WDrLtlOn997nd79/3LuHBYHIBtg9Ot/rvuaac/bsaTNn5jN3PfyfD3ilHXuqHnzk8f/3sxNbX9lmwtuTFpQv37qjkpd0ww5ExaRYiRVURXd4SS9qs9yoqja7ftO2mWULHnj48d+cdPqll7cZMeqlQ371x2LLHAMhkYwbN66kpGTLli2FWXdHqsbT7wghhBDLss5tdcGmHdWU7CguYLSIVlxG9UQr5vQgseNgecFgJYPm1DYdOi9btQbBJYyDQ4LLl1TYc4MwJrCv7cqMsnkXXXpl+dJVqSyHU64YXpM1l5NsTrI5yaVEm5YcTvVp0c2yJiW5cn0HXufLASZBCXA6KSPYsh7xspeh5EFDnysdPgJhBXfUxolWURThNGkAwDwYz/Oa/cj7DbeCCpHlw2T0t0wVrtNQhz8kEgCa4fCzB2Hs+SEBsJ1kP2z6/oO/5SboK4GLH0QEIIoBQ+BOEM4um3//w49e1abDKaef/a1vf7+k5ISSkhO+870ffee7PygpOeHb3/mfku/8T/EuS0pO+OGP//eMM/9w9bVdXnhxzO69dY065h/sp/tVftwtRsuWLevWrZtpmgW/WhOE/pjC1bDneb/81f9tqNiV4TVBD/OSmResnGjkBYtRncJ6sjx2y7xgYDM6WXPbdfrL0pVfaJZpOXYM0ZGCi+P6rhcU1hGAsjR3/sWtXxv7lqzZDK8xvJalRN0mjGBKWijrkaCHnOoLWiQZhFH8DGMcDFx8XvYFJeBlX9IiRrAlLeRljxWte+9/9K2J7yCpFDLE8V0VzouFXN3KysqzzjqrpOTbJSXfLin5brJsluXPfvazkpKSn/zkJ61atTpgSxWFGr9bXddxfzuMp3nGzNn/78c/xc9+4i/+D7+Hb3/nhJawLYpzWfLTn/707rvvbsK2+w/ggiocQeI4dl0XD3quFwCBIATPjXAGMgEgMVi2H0cQxVC8S8cOCNR/oigEXMeo0IEH/K9ClS1JURSpqipJUuHmf/NscRwXziVn/v7s7XuqGdnUbSLorqwHgu4KiitbgaT5gu4my2O6xBxYTjY50Tj/4tYr16z/z6GiQ6tw+NZ13fFcqL+AIQ8+9Og1195QVZ22vVi3/ExeUHQvSyuMYNK8lcrJaVoXtEgygJG8/cGloZRaCnkpZARHMQgjOILiC4qvmtFFl161fMWqxu+h0IYOb4ZhWDjTUBR10kmnyIohqoaomMny+C9lxRBF2fd9mqa/853vyLJcjHO8MVaO1/3/0V00YODQIcNHsoLKSWqeETMUazqhoOjNvi2KdBkTmDL10y43/q0JG+4rgQsA6LreeOAZnvBM0y6coUkMYdDcvqejZ2EAgV/vY3Gd0DI9OCiKFBW4NP5lFtabcLhBWMGLY8/zMB3h9DN+X7F9T4bmOdGgBYWXTEZU84zMShonGsny2C+NLK2oVuAGcPFlV86et9CLwsOBy2F3Ttd1D9gxLMvCf/r4k8/+fFX7snnleUakOVVSHUFxdZuYLsh6RAlOnrcZKWDrq6YPDi4U66gGMILDSa6oBooR/uzE31I0++U9Ew81juMU5kV7npfJZFqdd76q2bLmJtZMZqdSGVmW4zguzPTGwo4jPZ40uzzPw50tk8kc6jEEYMjQEUOHP8+JBsUqkur4EUQA6Rzf3BuiSM3mBWnyxx+1ade2CZvsIEMWD63Yc23T0MLAA4gLD8XZgY7jua4fhjEhEEWkqA0A4hhs23WcfW0k6ucjHjD55cuk0vjvLQxcCv4VTFI5IMf2SJ+nsaNVFMXf/e7k9yd9NG1m2eyyBTPK5s2bv3jW3AXTZ8yZNXdB2ZyFyfKYL+csnDVv8UdTZ342fW7rK9us2bD5P+S4kEP+3hsSY+OG4rj6fwyiEAOmGzZuvqpNhzfHve0GIGsuxWp5RmVFRzFixSCcGOR5lxbdxgm8DdQSo1Gso+jASR4rOoLi12WFH/3kxCgGaAQuuJthom7hdIhZCNls9ic//TnP66xgJtZMpuOGkCQJwcVxnCanzTWLXNeVJKlwABQEAQ6d5kIAunfv37X7AFnzHR9Exa1Nc1lKFmSnuTdEkZrO8WLZ3Dmdru7chG33lcCl4VCy3znbNDTXdhBWGj8YT/xFLc/bd625/2k9LmpwgYbW/oWm/v9NqKjxL9xxnP79+7e+7Ip27Tu3a9+5bbtOna++rn2Hq69q06FDx7+0bdcpsWNvna/vctu5F7Ru1/G6th2v3rxtpxsGh/e4HAZcAAAgdh3LNDTfc6LQ9z0HAAzLxP+ybP/Ou/559z8fqMuwuhXzkp2h1HReoViHEwNWDhnJaxgA6fGy1+BrqQcXmvNFJRaUgBVdTrJXfLHlzLNb4ZtpXK2GavzGsKRfVdWzz2kla76shok1j2l+XSrHMAwAnHDCCYZh4DYqrvzcyy+/fMeOHbhTweHbhQOMfnHs0NKXFS3K5JRsXtVNMCwQJK/5t0Uxmub7AZkzb+6fLji/CRvuq3lcSBRH9SW+ge9apg6hd8BpO/SDKAjrD4hRXNQGBALPd6yGQFhMPMcNPB+nJ/4HfGnx4NI4i/6/zHEB7FoWhgAgSVLhFFNY+RpQbLGIAEQAPmk8gVlrIriEPkAchf4+dwsJo7A+0U3X9Sgi+L9vvzf5j+ddsnVHjaz5IYCkhVnKZAVfVOI8ax4CXICXgBMjVvAlLeIkjxHMSR9Nv+6Gm6OGd1fwrxSaDDVuoWua5vbt2086+XResjnJS6xZjJfsIASe53O53Pe+970wDPGs/98fUo6bgiA488wzzzjjjCiKCul6hwqdE4CBQ0b9+/HeNG8rBlFN4CQvQ2myHjf7tihOs/OsMGvunHadOjZh233FUFH9UQ+PaPvWYxKHUX3LtQZkCTy/2TNU/ksjDYm4JIqjICT78nK/hCyH97u0yLM2XsIWMpaaFpMuXAd/+Roljusb28RxfXwNG/QldkwtbkAWRXd8bC8URwRAM9RG4LL/Rjz0hUp9SycSAcRh4HmuXRgDghs0jEgQgmX7VXWZP13Yeuz493jJ1izIs6asx6YD3H7JuX7jUJEgE0GO8ATASS7NGy+PGf/QI0/aDZHZAqagaxDlum7hpFhXV3fKqWcKslP/zIkddxNkh2ElTTdphvufH/wIigpZCvr1r39z4403v/zyq3gziiKyb9JwIxEAAkNKR/fsO1yzIM8aOcZQTRCUAEvkEjtyc3hJn7NgYYer/9KEDfdVk3MT/Wd9GV8SJTqOOua73v7PXrhl2e61N9z41DO9HB/SOTGbV0OAmrRIi65kxpJB8rydorQ8b9ef8yRPkDzNjChWYwXTdOLu3fsPK33ucK/cEDNCUM5kMiefcoZwsCYxiR0340RDVExBNkq+9d2G6zWyv4evRSsI4exzzps7r/yP555P0ywAOI4F9W0Xw/2uSGMgMQweNrJb7/6CaguKy8ueqAac5AlKUO9NrD8f7/t+Ck2lE/uy8bInqc7MWfM6dLymCdsuAZdEiRJ9NX0Ji/AU5foeAXjuhZf/3LZTTYrO5KXajGh5wEheQ5GRJ1tE90A1CSs6subbHqRzvKJ7LKvm8+Jdd90/fcacw73yQcDltARcmtdY0RJUW5Ctkm99F719XwKXr1p+3ywiBH71q1MqKvYMKx05cOBgAPB9FyAEEgBpCJI2ivsPLh3RrXc/QTUF1eZl57Dg4vCy0+xw0JKNlz1J9WbOXNChw3VN2HYJuCRKlOir6RDgEkRhROIIoGxe+SWXtc3RSo7RednjVJ+RXVpyaMmhODNLa3lWY0WL4Y0craSynOUSRXEMI/jT+ZcsX/HF4V45AZeWZ18DcDnzzFZr11Zoun3BhRdv3LwJIPYDm0BAIAASAYkgSsAlAZdEiRIVr74Ui2pI/gUCYPvRlm27L27dpibFBgQozqQlJy9YjOzKFtEskPVA1gPDAdUIVcMPCeytyXGcJivmz//317rhHO6VE3BpeVbs4OJ5cNppf9i9u07TnfET3unyt5sAIAwbFWE0/hwJuCTgkihRouLTwcEFCIDteJU1qXP/dDHNqZm8kKFk1YwkM6ZEm+J0SfNNF1Qzojm9Ns3gxABBMOpSeQIwc9a8//ejnx/+3JaASwu0YgcX34eTTzunYvtempMV1bzl1tsnTHxr3zv/UsJiAi4JuCRKlKgIdTBwCSMiyepfb7ylbF65qNicaDgB1GUFTnUlM5Q0P89qqZyYY2VJdXQrlDU3S/Ga7kz64JOzzznvkkuvKJs9/z+8bAIuLc+KGlwIACFw2pnnLl2xJgLI5piKrTv/8MdWlmM3ekSjUtPE45KAS6JEib4GKhzYBw8Z3m/gsLoMrRq+qNg+AU42U3le1BzNDnnF4iVTNXxZc/OMuGnz9ief6v7jn5x4Q5ebc1kGnyIIDldMm4BLC7SiBxeAX//29B27q0XF5ERNs9xu3XuPGDnK88MgjAlp9DgCcZyASwIuiRIlKn7hUf3tdybddvtdiu7Imq2ZQZYSc6ysO5Fi+qLm0ILGyabjQ54R35zwbqe//PWss1s9/8IrBCCMwDRcADig+/ZBXigBl5ZnxQ4ulhudd8Fla9ZvUQ2XFdR0jjVM79f/d5JuOJbt1pN04nFJwCVRokTFqziOI2yaC/UTVQnArt3Vrc67SNVs0wmr63Ka6dGcbLhhnpNExczRgqiYu/fWde3e55f/d/Jfb7h51ep1+1UmfbXmM0cKLhRnynq0p5r2IqB5SzHiLK1xkpuhVN0G04WqOs7ygOYtSQt1GzKUWpeV3BA4ya1JC5YHguLTvIV/0izQLMgxuhNAnjXwvzjJzTG6FwHFmbzsyXrEyx4nufiPohpQnBkQYEUnQ6m2D5IWUpxpOJDKyZIW1mZE04VUTs6zhmqSVE7mJDcESOVk1SSMYHOSS3GmYsQ5RndDyDG6qAb4X5zksqLDio5mASe5u6uoECBDqYoRi2pgOFCbEQ0HGMGmeYsVHdUkdVnJ9oGTXLzTCQBL1rO0pprEcOo/V541RDUQ1UCzgOYtXvZENTjUlyyqHi1oDK9974c/Nt0gqu94EkUkjEgYx2gQxxBHUL/SYhTFEAF89wc/rdhZxckmK+iWGzG88trYt+68614C4LghAbDt+qaLfhAl4JKAS6JEiYpPhYbohu7Ylu8HcMGFrSv31gmitnVHpWZ6IYFUltGdQNJtmpNnzVl48213nXrGOV2791FNhwDQDHeswQXxQjFiL4Isrdk+7KmmDQdUk0haiEBjukDzVjqvyHpUl5X8GDQLajOiahLThXRewfN9njUYwbZ9qM2IOUanOBNb0WgW6DawopPOK4oRI7sIir+3lnVD4GUPeSWdVzjJzbMGPhuSAXJPCCDrUZbWAgK87BkOuCFs25V2AkAGQmJANMmzhqSFjGD7MWRpTVSDHKMLio+PCQHK5q+cu3A1I9g5RmcEe9HS9eXLNuzam1+9bsfWnakVX2xdtHT9wiXrOMlVTcLLXoZSQ4A8a2zfnVm5ZtsX63fKeoRfESe5W3emJC3MMTri0aHAhZNs2fBMJ/7+j35iuoHte2EcFZHHJQI4/ezz9tblA4A8I6eynBuApFpt2nZatvwL9AiiZFkmSXJuAi6JEiUqOqmqjKeiMKyvubihyy3jxr1H0zLHaYYduQFk8hzDK5W16UGlI37125M7XXP9xPc+0G2PALheYJj2QZDlgJPcwXRE4JKlNV72aN5K5eTe/Ud07TG4dOSYz2ctRh9GbUa0fXBDMF1QjJgVHZq3TBdyjJ5nDc0CRrAZwUbK0SygOLN05JhhI17FezKUyooOel/QreIEwMseohJ6RNJ5BX0kTgAUZ3oRVNYwvOwNHPrCs6NeHzTsxe69hz30aI90XkFfSJ413BC2787gcyKX4EvnGF23AW+iIwe9KboNvOztrqIMB3ZW5nr0Kc1QqqSFWVpzAujee9iCxWspzkzlZMSjeYu+eOvdT/GbUU0ybWb51OkLH/h3t1178xU76rr1GvrSmLfXbNhVNn/lK6+/+/jT/arqONUkfgySFh7e45KjpUKoiAB4gRtEfhD5YYgWh2EcBlC/0mIUhLHhBr8946xFy76QDU+3CSfZsubnGXn23MXnX3QZAfD8GPdbAAiiMAGXBFwSJUpUdIodx6ofJERgxLOje/UaZJqhrvuEACcae2tyy1etu/3Of55y5tnP9OpL8xKez/yYWLZbaJ5e/2T7IcvRBJccowcEOMnVbVi8fGPpyDF51liyYlOna27RLHBDqEkL1Smel726rKTbIOsRxZmIBazoUJzJSS4ve6mcbDhAcabpwh/Ou5zmLfSF2D7UpAVB8dEZk6U1xYgxTuTHUJeVECZ0G5Ak8qyB1m/QKEkL23e+MQR4Y/yHmgVOAOj82LEni3Eimrdo3jIcQAJDutJtSOVkjB+FAOm8kmeNEADdIS++OhEBxQ1BNcmOPdmBQ19Yt2kPunZo3goBFixeO2/RF4oRY6jIcEBUg/sffgZDUT36lG7eVvNE1/5vv//ZtJnl/QePRv8QfpmHARfF9A07QnDx4ygicRF5XEKA3593wY7KOopXWdFiBFM1Ql6yI4C77nlwwoRJOKQujEgcx4nHJQGXRIkSFZ/C0CckAgBd1xfMX9z60is5TmMYRVG82lpm/MQPLm7d5rIr273/4ZQcK1hB4AShaTmeHyKy+GEQ7pvoWeiWEQMJgYRHEVwkLcSsEYozV67Z9lS3gSFATVpo0+GG+eVreNnDXBYkGwzrBKQ+8YXiTNsHQfElLVSMmOYtQfEzlHrH3Q+n8wr6ZjBkg04dWY9q0oJixHimxxwX3QZRDSprGIy84F/Rh0Fx5k233YepNhu27LV9oHlrdxUl65ETQI7R0anDSa5mQTqvGA5U1XGYiCNp4d5adm8tq9v73EKs6HS5+R7VJNt3ZzjJtTxgBHvYiFdnz1vhBGA4UJ3iOcn9fNbi8mUbTBcylFqTFvDJn+4+CJ+2d/8R88vXDC59acmKTavWbu/RpxS5TTWJF8GhwEVQ3DynZCnxAI9LGAdhHEQRGokiEoVQv9JiFEbEi+EHP/9FVYbJ8apmxbIeyHrECHZNHb97b/accy8KYrCdgADgUIsEXBJwSZQoUXEJUSNUVZWm2bZtOuayLM/rNTX5e+999Oc//919DzxWVZuXVCsCCAE8Uj9VPSbgB1EQheTAp0JwCRvAJTzMdfkRgYtqkhyjmy74Mcxb9MUTXfvXpIUQ4IJL2m3blcaslDkLVk2ZNv/FVydiTswzPYcsWbFp8fKN/QePLl+2oaqOy1CqqAZ7qunRL42fMm3+X66/HRNT9tayM+cs+/CT2S+NeZvmLc2CN9/6qGff4bUZcduudOnIMRU76ip21HkRhAA7K3N+DIxgC4pfWcM4Adg+XHBJO0xPCQFeef3dAUOeNxzYtTf/5DMDNmzZazj1KbQjRr/x2puT0HWkGHE6r0ybWb5yzbaxEyZzkitp4e4qSjXJnAWr3n7/sxyjoxOlJi14ETzdfdC4iR8vWrp+2aotOytzX6zf+f7kGWMnTGYEW9JCw4H1mys/njq3bccuo14c9/7kGd17D1u6cvOAIc/PL1+zYPHa3v1HhABOAILiV9VxhwIXWQ9EzVF078c//4WsW4Xk3CLyuJz0+3N2Vmdq87yguDlGxVhhntY50eo/aGSf/kMK8UzTdQaXDk/AJQGXRIkSFZFi17UBwnw+f/PNt5bNnv/G6xOuuebGn/3stxMnfiJJTgRgOjFeeau2HTYarFvfEYMQ33c9zykwEEB4LMBF0sJUTsa8kAWL1z7w7279Bo2665+PvvrGe14Eqkk+/GT2K6+/S/MWnq331rJVdVzHv9y8btOe2ox45z2PZGktBNi1N9/xLzdbHuzYk72odQcsvZkybf64iR/vrMxtrKh6aczbWVpL5eRnR73+xvgPP/h41rJVW/55/5O2D6mcjIGeqjoO838xZyVDqQ/8u1uGUnF4kxPAk88MePm1d95699NVa7c/1W0gxZkVO+ruvvcxJ4Btu9I33PQPijMFxZ9RtvT5lyekcvLchatHjH4Dk2lCgCefGbB05WZZj/CF0GeDucCiGmC2jagGG7bs/ejTOZu2VuM9tRmxNiMOGf5ybUbM0trw516bX75m4NAXVq3dvmrt9t79R9RlpZq0wAi26R7S40JxuukRyyUl3/ru7Xfd8+d2bf/c5qrrb7iuXYe27Tq0bd8erWP79h3bt+tcv9Ji1K59x8uualfy7RNWrNti+GCFwCpeltYtDywHRMWVVO+3J5+RydIEgBeFCCABlwRcEiVKVHSKbdscOnToySef+sMf/OSef9y/YOFSQgDND+qDBW4YFQIHpCEaFMcxIeRLSS1h/ZIczRwXzBqhOLMuK634Ymv33sPmLFj14CPdZT2qTvEZSm3X6W+s6Og21GWlW+64XzXJrLnL+w58DlN0u/Uaunx1RTqv3Pr3B7btSucYXdajm2//V21GlLTw8quuwcANI9htOtwgaaGg+MNGvDpo2IvoBcFqHSwzxvRbXvbQ6YIRqPadb8QQFebh9uw7/OXX3tHt+uoh1SSPPNF73aY9NWkB02xXrd0uqkGrC/5s+yDrUYZSr77uNjcERrCrU/yI0W+UL9uAhdaC4msWVKf4dZv2rFq7ff3myjfGf/jCK2+t2bBrby0rKH4qJ2MNtumCapJ7/vUElk937TF4+eqKm267b+J7U6dMm99v0ChB8TFxBzNdDuHZihjBzNHSj35y4gcfTV20dMWcBQunTp9RNmdeI1tQNmdB2ZyFZXMWls1Z0HBP8y9nzV0wf/Gy6fMWioaXF4yqjKDYwIouK7os7zCcJSruR1NmXHtdFwLgBX4EMGh4Ai4JuCRKlKjYVFFRccoppwwZMoSiGHSkNO54u3+v0a+iuH75nx59UHA51LlBsSHD6lnOkMx48arNA4e/RIl26zbXYFIIxZmn/f6CDz6e9f7kGW++9VHpyDGc5C5aun7QsBcpzqQ4c9CwFxctXc9Jbpeb72EEm5c9QfGv63InZuaeftaFn81Y9P7kGe99OH3g0BewJ8pT3QYuWLwWIQazZ/C/MGO3IZU1wHKkO+5+GINZGJjo3nvY2o270WWiWSCqwWV//gtGcMZOmPzya+8gOf3i/858+/3PPvls3sT3pnbrNZSTXPSvLFmxadSL4/BV8qyBJUjodsox+so128qXbRDVgJPcOQtW4XswHNhbyxoOPP50vyytyXo0aNiL6zbtuem2+3r2HY51RpjGi9R1KMNPKqpeSckPBMXFfnS8YglyY3MKxssOr1gtZ8kqFqM6jOowqscqHiv7rByysp/Oq4oRc4LDidYNN942dfosywsjgD4Dh/QdNJQWFE42FSPkJJeTPFZ0jxRcaMmxI6jOioIeKjakaNXwIUWrWE2G28gJgBWdLK1hBFBQfFmPMIvci6A6xQuKT3Gm5UEqJ2NQD+vaRDXAOxGFcU84VzqPAAAgAElEQVTA5xQUP51XBMUPATjJLfTpwXp+BGvFiNFjhwlbWISPG7rwPIfaHxJwSZQoUYuTrusAQNM03nRd1zCM4/PSRwQuohHRkiMakWTGU2Ys7N5vuGyRMeM/GPrsK3nW4GWvfecb67KS5QEve1V1nGLEi5auf6bnENUkqkme6Tlk0dL1ihHfdNt9FTvqMEJ0/sVtd1dRXgSXXN4pzxqVNYxu17eHqU7x/QaNWrlm25dP6tgHBZvHCIqPjVLOv7itqAZYa81J7tPdB80vX4OPwe4yT3Ttv3DJOs0CzCnmZa8uK3W4+iZJC7HRCy97ug3VKd6PIUOp9/zriSytYQAIgenNtz5as2HXhi17J7439eXX3lm5ZtuW7bWLl2/kZQ99Nk4A6zdX/vP+Jx97qu/KNdsMByZPKXum55A+A0ZitvKCxWsRrdA5dFhwCUpKfiQoPp4aDwM6zX6Vf4AVqIVRkVoQXELLA0EJ8rTu+DB91oLzLrg0AuBlrd/gYf0GD6N4mRF1SfM5yeVln5O8IwWXOkrRPRD0kFN9yYzTjEaJtg+gGPGd9zyCOySWqt1+10M79mQxbWt3FSVpYV1WUowYi87+dss/N22txjx0zCVnReeJrv2r6jgMDq7ZsGvtxt3LV1d8sX4n9vJJ5eSlKzcPLn3pgX93wzaD6zbtWbpy86at1Ws37l67cffchasrdtStXLNtw5a9K77Y2q3X0PWbK50AsBKtJi0cZn9IwCVRokQtTlFU71wptKEr3HOsdUTgwioeJdq8FnCqP2nK7EHPviyZcYpWL2rdwXShOsW/Pu6DBx/pbvuwaWv1x1PnZii1fNmGrj0GY6lO1x6Dy5dtyFDqlu21/368VzqvzJyz7Hennisofl1Wmjyl7MlnBpgu5FnjldffFdXAdKHvwOfe/eBzbP6GV65ILVhkJOtRodFtlta63HwPFiIpRpzKyYNLX/p81uJ0XjFdQDfJzspc245dWNGpquNKR47xY8gx+qSPZvYd+FyeNarquLETJuN1dpbWsrQ2uPSlGWVLsT4Im+8ZDuC19aKl67ExHaa84HV2njVGjH7j6utuW7txt+1DQIDizHv+9QTFmWPGvl+XlTjJHfn82BBAUHxs/fKNAhdJi3jZz9O6aoS6Fd5y+93vTJocAQwYOnzgsGdpQclzCi/jxg142T9ScOFUn5acLGfUUYoVghnAzmqqNi9Pm1k+ZPjL6COpy0ojRr/xRNf+m7fV4B6FPQ8tDyjOPP2sC1nRefixnpoFedawPMCCMtUkXXsMxlbIq9ftwKbPvOyNm/jx4NKXDAd2V1HYEQDvR8cMzVteBHuq6YVL1t1254M79mQ1CywPQoDdVRRuVuzEiPtwAi6JEiUqGkVRZJomAOi6jt1coigqQMwx1RGBC68FecHKcgareEtWb5kxbzkju5IZ43Wk6YKsR+m88sb4DzdWVGHflNqMOG1mOSadTJtZXpsR0VW+bVd6/NufbN2Z2r47g3XIvOxV7Kh7fdwHi5aux9rjLdtrl6zYNHveipq0gGEaRAQ84iOg4P2MYG/aWr1wybqdlTmM7GRpbeacZctWbdlTTYtqgB330WvyyWfzlq3agg3+DQew8uj9yTPml6/Bm+gO8SKwPHjhlbc4yU3nlZVrtq1et6Oyhlm0dP3y1RUT3pny7gefr1q7fcmKTUtXbn593Adjxr6PvWfwLGg4sG1X+tEn+2QolZe9R5/s89mMRes27bmy7XWVNQz2jPmmgUuW1hnBkdWQYjXV8Cur060uuJgR5AFDhw8ePpKTdYpXOcnmJFdUwyZ4XGjJ4bVAtkiWMzBg5BKwQrj/4WfSeWXpys1Tps13Arjx1nvTeaVXv2dp3sLhDDhoYtHS9f9+vNdnMxbd+vcHxr/9yeDSl5Bc+wwYWVXHDRvxKlbUI6AsW7WFk9z3J8/YU02jh686xWMfIGwDzctejtH9GDjJ7T94NGaU87JXkxYqaxjsG4RbWTWJbsNhqswScEmUKFFLVGNMcRwHABq1ZjmGOiJwEfSQ14Icbwp6mGH1vGDhzao6DoMv6AihODPPGpg6gI3acCYR9m2T9QizaznJ9SIwXcC/CoqP6+hKwYtRzADAzjFY6owlzYUjPq4wgr23lsXxRo1HEaVycqHvLTpOTLe+BMl0QVSD6hSPAwrw+hgnAAiKX53isaFchlKnTJvvRcBJLuYFY7OZuqyEXfKwlrsuK2FkwQ0hzxqpnPzhJ7M/+Wye5YHlgRvCxoqq3v1HPNVt4GtvTlKMuDrFh/CNCxXJekxxluuDIDsUq5hOOGT4yH8//lT3Pv0HDntW1CxWMnjZYUVHUIImgEtesDjVF/TQCqEmJ+UFS7Fh/HufIjpf/7e7Vq7ZNvTZV+YsWJWh1M3bau6855Hlqyt0G7CEbdSL4wICOytzd/3zUduHdF4R1WDlmm3Yh/ClMW9j5yGEzi433zPpo5mjXxr/yWfz3vtw+sT3pv653fXYDhHHePGyd/Pt/3rx1YnvTJp24633vvbmpKHPvvJ090GfzVj0zqRpDz7SHdsd1aQF2wfMfUnAJVGiRMUkz/M0TbMsCwBweXx0ROCS5QxMc2Fkl9cC1QG8utVtsH2orGGwiZxixLIe5VlDUPzajIhFNLzsYed+JBvMJ9hdRWFrXRxMWJeVTBeytIYckGP0dF7xIsBM3kIOI6b6Ir5gWiUmTmIohxFsTDLAhFzkG0zBwa53eJFdQBmMERgOYNosTh3Cf8SBR3uqaRy95ASwdWcKL6ZxdiMj2Hi9ns4rWJrEig4mcmLUoDrF419xuiR2rpP1iJPcVE7+poGLpEWSFmkGEWSH5lRBNjhJvbJth3sf/HePvgMk3caqIkawmwYuugd5wdpVQ+seiEYkW6Q6K15/8z/ue/DpW//+wMuvvYMxI0Hx/RhSOfn1cR+cdFqrdyZNCwFo3po8pWz1uh3pvHLnPY+s27Tn81mLe/V79pPP5vXoUyrr0UOP9sBdGve3p7sPwr3xqW4DsRru7//4t2LEiOwYk7rhpn/gnnldlzv9GOYsWNV/8OgMpc6cs6x772HpvIJInaU1mrdwFFcCLokSJSoOua7b+KaqqkEQHHDnMdIRgUuKVgU9pCUnx5us4mVYXbYII7vYXjbH6NhcvzrF40UklucUAAIHQct6hOm3nOS6IeCZIIT6Kc0YCZL1CBML0HuBuQiFYiLMa0GCQbyQ9cj29znbC49Ehw3Gkmjewu4pCByaBYoR46trFhQwAk9OOP2Rlz3EkVROtn2oy0qYniKqAc4BwDMWPglGsjBAVoAkdEGJaqDbUFnDILfhWeow06G/ruCSpXXDAYazaE4XZMtyI1m33np3UufrbnjosSc5WRc1pwAuTchxEfRQMuO8YOUFqzorcqrvEli/tWp3FTX02Vdw4GVVHVe+bMOKL7Zu3ZnasGUvDipnRQcHStRlJVZ0/vVQV9sH04XdVdQX63cOffYVVnSef3kCoie6VR56tAcj2LIeXXvD33Fv7NpjMC97lldfWaZZ0LZjFz8GUQ3OPf/KMWPff+3NSd16DdUsmDp94cT3pqIvMATA+epI5wm4JEqUqDhUQAdd1wk5rs1QjzQ5VzJjRnZpyZHMuDLFqQ7wWiAoPtYN5Rgdyz4xWRVjQ5IW4rEe1xEgsPIIC02RZrC8IktryCg4qxmdIggrmMOILVvworZwOseXDgGq6jjskNv4TIBOEezij5MRkTzwfiQbLGZGtxBmpfCyp1mwt5YteIzwxIajlPiGTE98Oazoxv65GALAZIiCT0izAN+DqAZ4xjpMaODrCi687Mt6TDGGogeaGeRogeJE0w0uuuzKu+69nxYU9LjQvCWqYRP6uKRolVN92SJ5wRKNCKv3OdUfNuJV/LaxOaFugxMAtgFcsHgtZlurJnn5tXfKl21YuWbbvx7qumzVlllzlz//8oQFi9f2GzSK4swefUrRQYJVzT36lOLUiFvuuB/Lqh99sg9GLQvuxhtu+keGUgXFxylacxeu7tl3OC976zdXPvZUX9yTEbtZ0TkMyCbgkihRoqJRY4jJZrOCIACA7/sAYBgGpsXgY5pchXSk4HKoY+UxtcakUiAYTnJxHjWmwuAQIkQKdN4Uyo6Qio71mzyK9nUFlzxroseFYjXNDGTNFlWD5qWTTv/9/f9+TNLtHCtjci4v+4pBjhRc0oyme5DlDFpyKNFWbKjNy090H9jpmluGP/da+bINU6bNf2P8h6+P++Cufz76zqRpH0+d+8gTvXHWVY7RBw59oXzZBk5yH3+6n6SFi5au79l3+JIVm0aMfqMmLYx+abxixOh1ozjz4cd60ry14outPfsOx/Din9tdj0PLednDaOBfb7wbexJeeGn7Zau2THxvav/Bo3FAaffew3D/5GUP64kOk6ydgEuiRImKSWEYBkEQRdGECRMuuuii1atXh2GIqFHI3kWUaZqKAlwKsaFCAzo0VnRuueN+LLG2fchQKnbpWLtx98ChL+DFrqSFfQaMPIwfvgXa1xVcJC2ieVtSAjeA6jrK8Qknqb37D+p07V+79+mvmC4taJLmN7lzrmhEecGqyUk+gGhEtXnZiaE6KxZmbGH21eNP95s+ewkmRXkRYKjI8uCJrv2XrNgkKD4O4dq0tXpw6Uur1+14Z9I0UQ0ef7pfjtEtD2jeqqrjXn7tHc2CZ3oO+Xjq3AWL19o+zJ63AueNY6G7G0K7Tn/zIpD16Jq/3uEEsGTFpsee6ptj9FVrtw999hV03WFwCtE8AZdEiRJ9faRpWhAEJSUlrVu3HjduHDR0q8MialxpWvl0UYALI9iYkIse9ULaiqSF2IRXNQkiyzuTpjGCPXfh6mEjXkW/PcWZZfNXfjx17mGmMbc0+7qCCyd5hgM5SrNcEGQrS/Hbd++98NLLH+/afVDpCFGzaEFTzUjSQk7ymlYOzal+ilYxoEmJtmTGS7+omD57yagXx018byrNW/PL17z51keyHm3ZXtu997CatEBxJs7r7t572Op1O0Q1GDDk+a07U8+98Ca2DcQcrH6DRmG0Mc8afgys6MxZsArHb0la+NhTfR97qu+uvfmNFVWyHuGQ8FvuuN+PYduu9M23/4vizCUrNpWOHKOa5P3JMzD8JGkh7tWYCJWAS6JEib4Osm0bVxzH6d2796hRox544IFLL71UlmUMDymK8t88f1GAywFV0JgMm8rJsh4NG/EqJ7mr1+1Yt2nPmg27Lrm8U11WWrhkXenIMe99OB0TUHQb/nHf49gqtyjs6woumgW1GSmIoCbFcqLhhXDH3f98+bWx/YeUDhg6PM9JCC6C4vOy37QcF90DRnZTtJoXLM2FvWn+2RfGTptZjlVsFTvqOl1zS79Bo3Ay+T/ue/zNtz4yXdBtyLPG9NlL9lTTWVprfeXVnOQ++mSfBYvXaha8P3nG+Lc/ebr7IFZ0atKCrEeiGrz25qQefUpxMjm29p82s/yMsy8qm7/SdOszuM9pddmkj2ZOmTa/Z9/hU6cvHDth8sjnx06bWT7+7U9GvTgux+i6DfhsWMOfgEuiRIm+DpIkCRrwxXXdE0880TTN2bNnt2rVauzYsfgYjBk1rQqpKMAFy38wVIQXpjlGr0kLH34y+5xWl70+7oP+g0fvrMyt2bDr0Sf7zChb+vJr71zX5c6+A5/D0BIj2Ju31bw+7oNmJ5JvOLgISoDJuaLiSqpTNq/8qvadQoABQ4f36j8ox4qcbMp6gFVFkhY1weOC/f5liwh6iE6XbZVZ3YZNW6sVI960tXrie1MZwXZDwCL8+eVrnABwmBEve0i6z788IcfoGGcUFH9PNf3wYz237kzJehQCvPXup59+vmD95spCRi3FmbYPihFv353ZWFGFYwRY0XntzUk7K3M4j0JUAyyCq07x23dncJAFOgWxK/TR2r4JuCRKlKg5JcsyrmAYSFGUp59+esiQIQBQVVV13333XXPNNUg2AKCqahNeoijA5YBO/5gckGN0VnSu63JndYoX1WD56oqhz76yZXtthlKXrtzcu/8I7PtSl5V27c1bHlzR5tpmJ5JvOLjkWTME2Lk7a9hEM4PWV7Sdu3BxBDBw2LO9+g9iJU0xfVH1KM5sWlURq3iUaFOijfiSFyzJjH2o720oaSF2SmRFpzYjYiPBPGuk80qGUrH7jmaBapIMpaomqarjUjkZUaaQ7l2TFrK0ZvuA5fQUZ2JDxeoUbzhQmxGxgA67C2YoFfv3pHIyzVtY5I/tALBQH/2ING/hkyfgkihRoq+DdF13HAepguM4mqYvueSS6upqQghN05MmTTr33HMXLVrU5PkARQEuhczcwkRotAylnvCDXzz6ZJ8J70wpHTnmnFaXbdiyd/KUsuWrKx59so8TgKSFhgM4C+mhR3s0O5F8w8FFs6Cqjo8IVNcxY96Y+NQzvXTbiwAGDx/Ze8BgQTVVK+Akm+YtxSCM4BwpuGQ5g1N9VvHqKAX7O+cFK8PqedZQTULzFmbpYio3DsXEtm+qSSwPMpSaysn4bSNkKEaM44rcEFI5GaeOhwC79uYZwcbu/oWRmZzk2j5gc8U8a2ArQtUk2IEQi+Hxv7BJXSFhC3G86Drnxvsv0fYNsv/aLxMlSnRQua5bOCZYlgEQe57TuXPHqVOnsZzg+yHNcNls/rrrb7jzzrv9IIKD/77iw7zEAeCSTWdOPuWMlgYuhWKiwkkd3fjDn3vtia79vQi69Ro6d+Hqq6+7jeLM8y68as6CVSNGv0FxZlUdh5MHdBuuvu62ZieSIwQXr6TkB4LicqIlKrYgW/ubwzc2xWo5S1axCuzCKl4DuPg0b6smoVlTVNwTf/U7ihMjgIDAoNIRPfsNZCVN0l1GMHGGFM3bRwouOAEUmyLyWsBrQYbVBT1ELBAUH1sYo/cOZ2YhIBbmOfCyp9uQziuKEWMvItwcOBQCq5B27MmGAKpJsOkzzrLA9kXYvx+bIuIsrZq0gACNvZuxtQ9OnMDxFLzs4TiLA6C8RYFLfDAL91+GACEBiAC+IcsEXw4QplsW+nMQQuq/JrSYoJEo3u/+xI6ZaZrS+DcbBF7hAuOYad/xgUAQRi5AABCYllJds+e008+yvdg0Q5pTgwDqMuxzz71y2ZUd1qzdFAHEZN/vK4j8MPZwj5EUMYwDfP+ERADxvt2JAO5O+VTulJOPGFyO+RV8w2honK2IExlTObn/4NF9Bz7Hy56oBg8+0v3t9z/r0af0k8/mLV25uc+AkXgyQHAR1aBdp78Vi8eCVRxOdQXVLvnWCVdc1aFN245XXdW2TZt27dt3LFi79p3bdOjcpv3Vbdpf3a5953btO7aQZZsOnTtec/0lV7UTdJdVHAzcUJwl6zEnuDlKExX3ya69X3xpDB7AIoBBw4d3691PUE1sQNfkcujE2OMFLuGXLCiAyzfEyH95hP/aCa99C5WuAAc7mzacbxI7HgYxQBgEXhj6ALEkCQAxIU3s+fYV9wKAOIo9PCbExAPwADwCrqpLf7/znrfemVyTohneyNGK7YEgO4uXrftz26ufeLoX/qycIAxIHEEcQej6FoEQ8QU/Qr013pEagYvQws4N2N8WU1swJ6A2I27fnREUv0efUt2GMWPfX71uhxvC4NKXWNFZvHxjz77DsfUcdtl/9Y33pkybXyzgkpdMRrV4xfr2939YNmfB4qVLlpQvXrZ08YrlS9GWL1+6fPnKZctXLlmxesmKlcuXr1zeYrRs+cpZ8xae9acL12zeQUsGLVm8FuRZkxXdiEBldX7bztrfn3OeHxDTcgiA7XuDSxNwOWp2dMHloL6WQ+JLsx+oj4bFX92OypH+6yGcDAwAmqbhykHTFwiB49sa/hstQiLHsYLAQ19LEHjH/jVjgNgPbAQXAn5MPIAAwCMQbtpcccHFl0cAmbyQpWTNjAybcKKVZ9TRL75+4SVXbNtVGQFYnhsBRBATiL3A9QJXNzX8xRXSfgkpAnApBFCwIho9/zjmsHvvYQsWr928rcYNgRWddF6hOHPZqi1YGIKJBTRvPdG1P84eKgpwoWSL0x1ONku+9d16cq6n58YGpOHar0WJAIQAvzrl9BXrtugeybMaK1qiGihGnM7KqhFe3+WODz6aip/L9b0QSAIuR9GaEVy+BjkuiCNfaXmMXe5FpsJkYKxxDcPQ847DaTLRf1T9vur7mHeyjyyP3csFoYPHhJh4QWgT8AECAmEYR60uuHjFF+sU3ZE1lxMtitVoTjcdEBV31pzyc/908dgJb0cAjCBGALwoxBARiCMShnFAIPY8b9/EgC+BS0s7N6CjpTAOGic/Yw5B+843zlmwSrMgzxo1aaFiR91LY95+/Ol+z/QcguPrNAtee3PSrr35o5X8eByMki3ecEXNQXAJ4yj0A8DoXpGAy4m/O2XrnlozgAwly3qAUxcyOeWTqWXX/vWWCCCMIIwI4svg0hEJuBwtO57g8mVr2AWKdNm0z5sIIIqiIAgKsIJNxggBEh/EMBKQ2LG1uB4i4ziO4/gY80pBMUAcRUEDuPgx8THfJYhcL/DnLFh43oWXBDHQnJqjJTcASfXSWbk2zUmqJ8jW/Q890aHzdW4AWLgRATiBHwEEUeiHAQFwPBcagQvmuGTTmRYILpitUhhRVJgAsLeWvfXvD2QodceerO0DDr2rrGFuvPVexYh37Mli5uOaDbu2785ghWpRgAut2HlJFzXnO//zI8+Pi87jEgD8+tQzKnZWUbzKCKZuE0F26jI8J1rtOl5XUbHHtHwC4Lg+AEQkTsDlKFpzgUvDxi9qS8ClScKhM4QQbCaG18RxDEAAD17J8vgvgQAARFEURaSwpQqOsWOmGNNo4jgs4AtaRMII4gjgwktbzy9fygoqxSqy5rOCadrgh6CbwIlWTYr9dFrZFVd1mrtgiaCoEYCsG5plEoAgCsO4/sMcBFyOvBz6WBuWBLOigwEjmrewUbpuA8WZpguWB5oFlTUMVoVkaQ37mWKnDWzZvmtvvljARXFJhlcoXv3hT//XMF3cD8PAI3GIFsdhHEMUQ0AgIBDH9VTdEhTFYPnR7848e/P2yjynCIrLCKZmRpoZDHv2hQcefpwARDF4fkgAwjBMwOXo2vEBl0Oo2cnjv7QEXJqkA9JZ8OZbb709YODQfgOHDRxU2n9Q6aDBwwcMHp4sj9ty0ODSfn0H9erV57mRLwwZMoyimOOZYBTHYRyHjX8sBGKfBD7En3z++V9vulVQTc0OKU7nZY8V3VROydI6L3shQG2Gr9hR0/GaLv966JEcw0YAYcM1uueHeOaISX39WksGFyxebTyLDsuLDAeytLZrb14x4r21LI7tzdKaqAY0b2EHl8oaBv/L8orG46K4hJKNPKeUfPf7lu0TgCgITUMrFo+L6YSnnPnHLTv2Srora246x5tOvHnrrg4dr6nYugsjkwCg6yYAeIGfgMtRtARcjie7JKoXIaQxvjiOc/Y5f+zRp3+P3gN69B7Qs8/AXn0HofXuN7iwntgxtaHDRvbrO6hXz35/OOe8Fcu/8LwAABznOOUeEUIIiaIoCgIviiICcQBhCKBY1kmn/35XVR0nm4Li5lmDFV3FIKIaUpyFXTvzrKZZ8auvj+9w9bUz58yPACTNNByXQH2GwcHBRbGa/fh7wLEYxztjt4xCl3Tsoe5FkKU1QfFzjI4dNfDx2F7dDSEgsLuKwtGMRQEuWUHndEfS3SJNzo0ATjnzj6vXV7CSoRo+J2o0Jz/1TK/BQ54lALrh+AEBAPwdRXGS43I07eiCSxgTf79CRLw3rF/BJKU4gjBo2PgNFvpR4IX1N4/UkdE8dsj6oTiM9n20hmpeEsWFSXKY0gEAQRDEcTEBTSGL1jAMgHrP7ZE+Sf0ppOFyHldOOvnUTRU7ecXiFYuTTUG1WcmQDY8RdbwzsWNqgmzJsi1LhihoHdr/ZcnilY3o/MtqCohjDg00crnhCoYOGz8gjoEAhAA+gAswYPiIh57smmYkw4e8YDV0KfVZ2W90LHOyjLR9T/WZfziv3+BSPNX5cX0ngphADIRAoXNu6uQWCS7H1Jr9Ax5glGyxms0r1j5wib989G+54GLYwem/b7Vt515JtRheERWzfPGKy69os9+PptGPKAGXo2hHE1w832ooF4rD0A9DPwxD3/cxah4EURSCbflAIPAJEIhCiKIGhxoBACARmKbd+J4iXZqmqSl6GIZAIIqiONy3JxcO04XxK8Wl/560EnBpgdYALpYoGMcIXAo18AWChwYCbsQusev6ABATMDyvbHH53Q88dPb5F41/7yMPYE8dy8juocBFUFxJd1Ur6D1gyLl/unhXZW2hhVICLgm4HF3hG/7RT36ZzrGV1WlZsyXN/OsNN82aPScBl+NgRxNcCNSn1/mB7XlO40NbLkdBg7uFxAAEymYvKB323ONPdO1ywy2XX9Hm0kuu/PNV7a/ufP2113Vp17Zz23adimHZqW27Dl9edup4zb/uf3B46XMff/JpdVUKXaC6buq6Dg1eisJFZ9Om3TaL8KBPCCmcgZqmQ4HLxq27WcVhFYeRbU51ackSjYASTbwzsWNqvOzIsiuLjshbHdpfu2Tx6kOAy38T+sQqawAA13UL4xI9L8ALmHpfLAEgsGr1uquv73JZuw7vfTJV0N06SpDM0AegRRcnwuwPLg6rOLRkcarLCKaku/MXr/z1Saft3lvnhiSqv5wiBCAiIYE4AZeWYEUPLgROOvXs5avWiYoZhPDqmLG33Hr7QZAlAZdjYEc5VFQfLYoKw0cgDMMwjIFA4AMQWLJ45Z1/v+/73/tJ+3bX9O07dPSLr0+ePK1s3pJFi1bOmb+0rKx8ZtmisrLyWXPKW/xyYdmchQddfvDhlDcnvPvsiOdvv/OfJ59y5m9PPmPQ4OGiVF9fipeYqEKDrKJQHMcFZ34URZ7nFWJeR6QEXFqg7Qcu7X1GuQEAACAASURBVK5fUr7mgMNuYS9oMrj4vlsAl8LW53kxCCIAsEzP92IgMPnDKZdecsUFF7aeXja/Js9UZ9kULfsAOd7ctien2rAPXOqPYk4BXNKMwsuOpPmsaN1170MvvToWz3kJuCTgctRFCPzmpDPXb9qhmZ4oaaedfmZdOhWRhhzzBFyOpR1NcIliNwht7MSApznf98MwNg0XCCwuX/H7M/947TU3vvbqRJbWCAGGNwTFlTWflx2K1bK0wgqmqHqcaLGiVRxLyeBE44ClrLmaHUqqw8mmavg796b69B/2i1+f9NDDj8iyjE3uoyjCUFEReVygUXZCfSJlFB3FHJf1W3fjqFVacVnNp2RHMKO8ZOOdiR1TYxVPln1Z9ETeOUbgAhC7rh1FAUDsed6+loMEohBIDJ9OmX7mGX+48op2y5auJgSqs6xkR2YEqgd7s0Idrdkx0HLAKCGjhIziMypO6LXQfIAsZ9TkJMWO67LCtV1u/WzmnLABXEIgUQO4pLOp352agEsz29cBXH5z+q5dtX4ATzz5TO8+/QCgIcUzrGeXwucgCbgcTTu6oSIfGqJFURQUppxYpnfH7XdfeUW7jRu2y6IDMaiyl0pxsh6xiseKDq8FmgWaC5IWUqItaaGgh0Wy9CXNP2DJilZNTsizmuGDakbVWT6dl0yPjBr9wmmnnVZWViaKIn4zxZWZizJNk2XZws2jBy6nr99amYBLywCXG5aUr8Gj7dEFl4Z+LXHjPcfQnaFDnj3j9HNuufnvG9ZXeG7McxpNy4odM6qX5nRG8TktFAwQDNhZwx1ILZqBlqJlRnZ9AFpyGME8+9xLqlKUqFkN4AIJuLQoK3ZwCUM4//zLVq/etHHT1j+df6HtOrZt7t8aPk7A5RjZ0Q0VBQgunm9hVwZF0TZvrrjowtZvjn3L0F1FtgXOrNydUSQ/joGTvCxvpSgtw5ms7HNayEhehjPzvJ0T7Ja+FK28YB10aQagB8DI7t6skGY0xQXZIhlaFCVl586d99577wMPPNCw6xdTq3sMDK1Zs6Z79+7/TWuyw4GL4jOKT8seqwaU5ApGnBcdvDOxY2qs7MtSIIv+VwOXsAngUpg+7br1ybkbN24eNmz4b39zysABQ7dv22MaXhiArnkso4iinaJVSnLzopMXPcUBViEZ1nUBDgYuOqMZaUZxY6jYnTYD4FT3x784KU0JjTwujcGl9nennpKAS/NasYNLHMNZZ/1p5coNd/z9H9OmTXddt+GnkYDLMbejCS6WrRFMzg09ACAAUz+b0aHjXzZt3i4rpq77PK8LguG6IMtujtJoyeH1SLZBMGJa9vKiw2mhbAOnhcVhenBQy/BGhjfQYcAbISU7lOwIuq+ajqxoqmY8N+r5zldfw3LC4eo2Wp4wqjV+/PiSkpKamhrHcfZrs/qV9fUGF1b+qssWZazsi3Igib4gOO3bHypUFDcClyNmFwLguH4QxgRg1+7KBx969Ko2Hbr36FNTm6VoQVVdjtNqaylBMBwHONFSbKilVE4LaTlIMSYtBxnOpuWggVoO9LioDqRoVfegJieYLpR86/sRgBvsV1XUyOOSgEszGy0ZgmryioHg0nAoONCl12IPkgTgdyedPvmjqRdfcjneE0VBoUJlvzQXBJdhI7v17i+otqC4vOwdFlxa4vZqUcbLnqQ6M2fN69DxmiZsuwNCRXEEset7WIL46eczr/3rLaksV19yKTu8YrH7WfN//uNojhkAI5usarCq8en02Ve07UjzEl5MxKTQ3CUGiD3XBtLyrjEI2Kbz0YeT/9TqvIsvvlBRJNziQeQXBkmGfhB4PhAI/UO+/0OBy8aKSvyuGNnlVJ+WHNGIKNFu7g13ZIZHnK+ybGnGKQEv+6zotO1w/eIlK/dV+BNofClJ9llMIMa5hg0rQAAs28UV1wsaw08QQwSwccuum269++w/Xjj6xbEUqzG8IcjOgSbVf0X1gHIAZu0X5HIKxhshq3gZVjdd2LB5+8mnnAEAcVxfa40jrwnEjmdnmdypZ/6el52Gs0Vix98cXtJ1w9J0s6Tk29CoJL6IdMopp/3yl7/evn0n3gyC4OCBVAJAYNizL3TrNVRUA0awFYPkGMP2IccYzb0hitQchlcWLV12RZu2Tdhw+/dxif2owa23ZPkXN99219adtVlaaVy8sO8KSbVY5ZvlDUtzKqu5OVGzYqjYXTN9bvld9z5gB3EEYPv1M2yjKIiiwN+/mLylKAbXcGZ8Pv2eu/9x441dps/83HBNnNAXQGg5Jl5kkCiG8HBXSYesKipycCn2K2BWDRjVY0WnTcdrFy9ZiWX8jVws9YFggiNvITRtA5ElIqEfegTiGIjrewQgCGNsWRuEYNm+7QSmE85ftOq6LndeeGn7cRM/5iSXk9wsrZnuwVvU1+8JR5Kmwxshq/l5VjPceNXq9ef84dz6vRFigNi2DFzxQy+Vy/7yNycJiisoQWLNYqLi6oYjiiLP8yUlJei+hS/NA2nhOvvssx9++GGstTx80J8A9B808tEn+yoGkbRIMUhdVsaVZt8WxWmuYthzFy645PLLmrDh9q8qAvCiMAJQDPOqdp2Xr1qXoWTbhwPBBdnlmwcuWUGX7CjNqZzuKXYo6G6v/oO79uxTiOD6vk9IBBCHgdcSPS4xAQLvTHz7lptuTqVSp55+WgSxamn1A4ZJjA33gICl6Qm4fO3Apd4BThrmSRccLWG8z7PieC6GhKK4PkZDABYvWdGm/dUdr/7bux98zgg2tqvHcTwZSj1a4IKB2jyraXY4u2zBn69qW/8OICZx2HAxEAeRn2Po35x8Grp2Emsekx1BVBmG0XX9hz/8YTG6WwDgueeeS6fT0Kjp86HwhQCMeuGN7j2H6ibkaZ0THJa3Gc7iRbf5t0UxmuwIojpz9qx2Hdo3YcMdCC4hED8mT3XrOWDwcNsD3SaMYCbggiaYgezElGylWEWxw7ygsZJ2Yesrl678oj5KVN9BPyZx6Ln2Qb/x5hQBCKPJH3x42223BUHQvWePnn37RBD7cYTBwYjEOO4g8nwcCnPwp0nApUWDi7UfuOwfJ2oMLl7geoGLoSLHc1Vd88OAAIQRKYw2fHPcxNPPOLttu05zFyzhREs1CSs6FGeqJinMCDzM93NkhVGazxshzRuK6U98e9Ltd9xZABcgUX0Q1nMiEtI8d/LpZ0iqI6leYs1kjqrqsizrun7CCSe4rhuGoW3bRUQwhBDsKVroCuG67qGqLAnAgAHDe/Ud5gaQpWSGNxwfeMnmRKu5N8T/b++8w6SqskXvP/Pum3vffW/ePO/cO+MkddQZZxzHnIiKOoYBBBEJBswKJoQmNkgWFRUxApKTBEVUQGiigiA5NZ0qn3z22SfnsN4fu7voBpo7Ik03sn/f+uqrbruL6qrjOb9ae+21ztBwDNNevHRJu5vbn8R7d7S4OIFflc786bK/KZqdyvKmC6xo1J0Zz3ZxYRSH13xB9xQnZmSdxxbS7fmLP+nYpZuAajvRaZoWRdHJbjdtWiLPt3Xjk6XLHn/88VQqZVjm366+6nB1VQRgODa5xtmmRa52URBScTnDxEXzGxeX4+zySI4XtuO5XhQnUDpi9Hm//v2zz720a/eBfEFwA+AlExuxgFxR8ZwAFD0iUwMbfX3qt/b/J4JTPcmMSOfc0WNeef6F/nXduo9UHvi+m0BclU797Nz/4CWVl3QazRSqadqyLB8+fPhf/uVfTssJrEko7q/0fZ/06DouCcDgISNeKimVsc2JGi/pgmyksrxq+M39RpyhoVq2O2fe3Ftu7XAS79pxMi5du98/beYcXlI1M6jJipoV150ZibgcaRh1tokLaU9SQCayIx47jKxLqi2p5p0d71m09FPyGrqu22LFxXc9SGDK5Le7desWRCEj8LPnL7irU+cIwI8T2/GIiYR+AAmEfqNr1VRcfhziouoa+e+GZfpBbWUuL0glg4Zd8se/PNP3+cMVqYrKtCDiBKA6zep2ougRI5g5VssyanVGKvCGHzeecfme4sIojmzFvGyJ2Or3bP+Jr75efP5JHALEpIVMAvHBisMXXHxJydDSkqGlJUNG0NvTfzt4SOmwYaXDhg174YUX/vVf/5WMmw3DsLjmckaQJAlpyuW6LjmPnaDSZeTLY9vf+vd+zw8YMHjYyNETXhw4+Mlnnh8xelyzvxdn6u2gIT169bz19h+8qygEyDLsz3/xS8sLBVmryXBBAjlWq3dyPKvFhdd87EJWNLKihsywpiCGADU5dvEnn93T7X7Lco5kGROwzZNvlNJkxADxO29P6dy5s6oZputV1GRuv7vTJ5+vJKsIxERIP4MwaPR/YCouZ5i4NNyQWhQXEkFSe2fvwcN9n+9/7n+dN2LU+K3bdyPV0szAjwDrXp5FuhWmcpKiR7YPshqIihck4IZQnZFOrbgIyBYUs1fvPtM/mllfXJK63ncxREhTx74yYcTIUSNGjhoxcgy9bZbbwYMHjx49evz48WPHjj3q5HBGUP+pFueGFidwHcu27TvGjB0/sGRoyaAhE155vXTEy0OHjRw6rLQlvBdn4m1JScmECRNWrFhxEu/d0RmX0lGjBw0bwfCIFVTVCPOcrttQ/+RYt3eRiEtzn6lPb6Q41YyggGxGcRQrwnZ8qCrrxYB153/8679bpuc4HgBomtYyGxeEgWdbxurVq+/p2kVWNc1yRayv3fj1ldfd5EYQASi6kdR+5ohPUFxMxeXHIS5+XHtn05Zt3Xr0vuDiP5UMLTXsQES6YQeq4bOCyvBYUixJsQTZMhzIMiovO5oFBd7IMqqsBkRiTom4FJCN7ERUHB4ZXbrev2Dhx0cyRnU1LnEcmrZRf3GTRnMFoTjzpDgLpSnOXU1BHMfk2WqaBgBBEJA7jf58UvuHkzukCLCYqqRxEsfPSVdENRCXIIE/XfbXb3fsZniEdU+QLVHxBFRvDP3ZLS71u1DUTrbDlogtpFovDBg0dswrtS9jEIV+VPw/m4wzDILgqOt9cxBHoT916tT7e/ZgBFFUNB5pmu33eaLflA+mO0HsBCF5clHox1GLWyqS9DDL64YPqgM1BUX3oKagiFqQF003gRSDBdWXjaggWboHLHIKksUpLo89NwFJD/dV5M0AGNnOi6bqAIsc1QFGtmUjSrMqMmNSc4qNuCYrk5pTTrI5yRaQi42Ylx1R8RjB5GXHDYEVGz3+GdlGZswihzwxTnHJP9Hkh+gJxcUy7ChKEnK2jcANkxBg/uJlHe64u80tt78++d2qTEGz/YKAj/RtahCNClye00lzC152VDNhBDOVQ6qZSNgXkIu0UNEjVrQYwZTVQNEjXnaI7lTU8NiIDQeqM5JsRCx2BT0QkM2I6rXXtdqydRuQWquGzVgTiE9Qo0PjtMXZRrO/4D+y+CE0EJccy11xzfUHD9fI2FQ0nxONYz851e8Z1ewmcZqjobh4ZCSviC1Fcz+YNqvbvT0ggShKyDBtSICs+/6wN+jUEgPEc+fPe+TRxxXdUgyHEVVGVCtT3AWXXCZjk1wMvMAvzqM5Ls0lLjnB4BS3Oo+qcjK2oSonGz4oViJqAflXWOTw2KspKILqp1nViUE2oiyvM7LNIgeZseFDTjAkPRRUP8NpLHLI/Syvi1ogKh7SQlHxcqyGjZiUnUrYN11I55XqjKSaiWomWUYt8AYvN3r8M7ItagGLnAyncYqb5XXyxJo8NJ9THR4ZrdrfWl9cHMsmdUuQgGMHYQQRwOJlK371uwu7dO81c96iynRes33N9mWt1sWPEZcTZZ5UMzFdEJBLcjCWB2TzUZ7TkeYXeCPHYjcENwRGMNN52XThcDXz2FMvXXjJ3wYNG1/gNcsDCfsscmQrZgQd6e75F1xSUVkNyXG6yFNxaSFxttHsL/iPLH4IDcRl3aZv2nW4nRUU3fJl7DI82TLgHxlDT8Wlzl147BXFBeved7v2//Y3F0ACnhslMUDDzrNJkoRh6Pu+7/vEZpoF33eDwJs+46Pu9/dkeIRNX1Y9UfOQGY8c/8ZzLw3xatu4gKLILVBcJD2U9NAKgUWOD8BjLycYWV6XjYgkYATVxzbw2NM9QGZMvAHbIGoBp7iGDzz2sryOzFjSQ0a2SWqEke2cYMhGREyFk+ziThkBuWTTr6JHQQKaBaxoCcjlZQcb8Qmep6gFyIwF1WdkW9JDHnvkX2/a0NzjigskoKsGJCAKShTCtGlzf/HL39/b/cG9h6pTeUHWHGz6PDIKAhaQrZrR8WSFNLts1F0yBcxJtm4DI5gVNTwjmLYPfgQiMhXNlxSropopcIqkOHv2V3a8p+d//ur8t6ZMX7Vm0+VX3pQtSEj1eNliZBvZSZ5TVSv4t//1f3XDigKyJ79RcaFQKGcqP0BhGojL9Flzu3bviXVHMwMR2SxvIi0SkHeMuHhnu7hgn3yHnOKx7vGS/j9+8m9RCGFQ+2aEfpQkSRzHLaZarfa8P3/hgu69eud5WdEDHnssckhK4Orr2+/cd8iPydONNR019kDNJS5ZXlcdqMrJLHJqCkplVvIBSO6E/KMZTiP/rqD6RFYUK5H0MMXgNKtmOE3UAtmIcoKhOiBqgagFZDkpJxjIjImRiIpH1olIwxIJ+6xokdQLuSQHCQjIrcnKjT1PQfVrCgr5w/OiqVgJyfo0+SHauLhAAgInvz35/Sv+dn3Xrr22bNsnyFZNjmdEFemuagWy5nCyzgg6I+jfV1yQFgrIVfRIwj4jmKYLTgA1WTHHyJYbYd3RTM/xk89Xru14z33n/+FPUz+aEwF4IUQAfZ976bU3phCNZpHFaz4vWwUB/8+f/u8EoG7J9fjiQqFQzmBOlbiMm/j6k32f00xPxrYgW4LkqCbwslsnLiEVl9rBtseIi4ztn/2f/5BEtfadiCGJyASAIydYknRpvuK12HXtIPBmzJrZvdeDjKgoesDIdl6wFBMynDZz7tLO3XpEAFESJwmZyHt8mktckBkTWVGspDqPZCMiWQ1OcX2AgmSRghVS9cIiR7ESoimiFuge8NjTXKgpKFU5WXWApGoynGaFkBdNHnucZMtqgI2YLAkVxYVYCylE1SzgJDvHan7caAbFiSEnGOQJk9QLeUpNfog2Ii6hn4x+edyf/3j5gw88umd3uSzbguR4IahWoDqR6iSS7rPIKkhGMWXF46NKa0O+cXGR1SBTwGSRiBWtPKcjLZRVj5fULMPnWGHB4mU3tb356utvmjl3AakIxoatWW4EsGvfwcuuuLoylZU1i8dOTjJVM9q+++Cvzvt9rbFQcaFQfpScKnF5adDQIcNHkY46ouyKsnuMuIT1J7s2u0mc5uBweERcFJ+v3YfiKJrLCuoF519SXZUl74Tn1HZvi+PY931S6RJFUfGS3xyQWZDxtJkziLhI2OUVXzGBV3xJD3U7aX3zbfMWLYkAGK7QAsXF8KE6j0h+yAygKieT4hWSMiHFuaoDZG2oWN3CyLYdwb6KvGIlmguyEfHYI6tLshFJemgGQORGVDxShHvgcJ6M4CFLRYxguiHkOT3HaqqZkDrTAm+c4KmSBSlkxgXJ2nkgpXsgakGTH6KNZ1wuuejSjxcsgwQOH8pqWhAlcLCiICpOlleq81KaVTjFlo1AUP0jgnUccTm+u3CSnSlgVrSwEctqwMuOhH0Ju6YbfDB92rU33vT3u+9as35DCAkRDt12orp2l5pl39Pt3mWfreBkLKhuVjQ0K/70izXX39AmjBJIIA4jKi4Uyo+QUyUujz3Zb9wrkzQzEGRDVnxetJEWCXLQiLg0v0mc5qgTl/AocUGqw/D4kov/Un6omrwTvlu7q8j3/eJ2wSRJPM878SivpqR2su4H06c99OgTSHdFxcnxpmSAoMWiGiIt3LR15w2t26Vy2QRi3cSNPVBziUtlVrIjuLvrA5u3H5D0cMGyVYdqOEH1q3Ly0FGv7SnPphhMClY4xSXVuJIesshJMfjJ5wanGPzt7gpsg+4dKdGVjajs613b9lTKRkQqc/cezMxZ8Flx84uEfaSFvOy888Hc2fOXIy0MEjhwOD+k9JXGnueHsxavWr8tL5pZXt+66/DrUz7Ki2YzLhUFXrz8k8/v79ZbxQ7EkM9jxwNGMAu8Jum+7oHqJJzi5kWTLK4doyzhicVFsyAEkLC/vzwnIDcE2LWvZsLrb//m/Avu69V91do1TuhGABHEUd0kV1lDEYATukESH6oqv/CSi1lZ5rHFKI6oODPnLe58z32uF8AJdxVRKJQzmFMlLr0efPS1N6YYdiRjW9F8pm5g91Hnr+JCydkWDWpcFL+YPJexK8jGhRf88XB5NSSQJBCHyVHvh2VZW7Z8O2XKuyWDhpSOeLl0xMulI0bX3TkqRjfR7dDhw8ZNfLVr956339kJGyHSwlRBLciOqMa84mcZVXei/gOHDhs5OiJzohs73ppJXLANFRmx1yP9ylO8qAXYhtYdOn67u0Kxkhvb30UqXSQ9rC1YUX0ee4xsYxsE1W9zaydOcUtKJ7z53ixkxgeqGB8gJxjVeTRg2Li5i78QVF/RozynfrVu29ARExjBZAQdaSEvWxL2MwU0buI7Sz5djY34UGV+1dqtz/UfxmOvrgdjg9tej/SbueATSQ9lI/hmx6FnBwwnT6Opj09BdXls8cho3e7WtWUbjyri/+UvflNdlS8UFKxFLG8KyJWNiEVOTjAKkkWWtHjs5QSjsT4r9UbSNxAXRY/SeZkR9BDgUGX+6WdLrrnh5vsf6FOVzoQQkdFIYRxEdWOSDEuPIA4in3wnhKj9Le1WrFzFIw3pbo5DUz+a0/uBPp4XABxfXH74rgQKhdLMnCpxeeCRp16f/L6sOZJqC8iWcG2tYr3qvFqPEevaunyvOMF2SkYwsRGn80qO1UKAdF4hnSGQFpKyAwn7pF0E2aoqq0Ge070IsoxKPiifoK/GKROX+gPh6v1FMnZFZP7ut3/I57i67c+1J9koCcM4iiFJAAYNHt6mbYfSlye8VFL6UknpSyUjXyop7T/oSNT/flPc9h84/LmXhkyc9N7Gb3bxskNeN9mIcqxOqhMyBYSN8HcX/uVARbp2a3RdfkhRlCPHWzOJi26DqHj9S0Y5ASxdvpYVra/WbSsd9fqipau2bD+4ees+wwFWtMj2Fs0CUpvCipZmwc233ZMp4FQOzZiz7IPpC5EWGg4wgqnoUccuD9TtJHJqcvyW7fv7vThIVJwZcz/etGW3rDmi4rgRPP1sybc79x+qzOc49FS/gYuWfb5l+/4DFemly796ffL7ih4g3VX0QFDMTl17K4YnYTfLygKyXxo8Amk+Kxr7KwskIYTM2AyAr6uMPkWvjyOotogNHmmt23dYW7ax/qkh8OKPps/ufl9v244dHzJ5WcLHtxNe8clCm6SHnOIysk164fDYE+QAqYmIQla0BeRJ2Odlh5NMVjQ0O/xuz4FHn+p3yV8uf7b/wKpMPqp3UjrureM4CUAcx4IkfvPNN3fefZemm4Zp64bV79nnBwwoOZnzGYVCObNoGnGx6u0v8I+KUyUueU53Q6hKiyEANuL1m3d9smLdhx8t+mbbgSyjKnq0befh6bOWrFi56bMvNxoOCMhN5VDZxh0ffrRoxcpNm7bsZUVLb/pPtMV94MX6nqPFJc/EMdRZS5hAkECYALi+lwCUjhjzwktDK2tYpIXFkHS/GPW/3xRBiijJS0pexjynk9IE0nKNEUxR8V57c+pDjz4XAUTxEXEhI0g8zyP1MtAc4vLJinXzP/6iXYdOb06Z0ff5oXMXrpg+a8mE195re0vH9Zt3DSl9ZcacZZxkYyOePmvJ5q37Nny9e9OWvfvLc6vWbv3HPb0rU8KW7QdXrtlStnGHqHipHDIcGDB4TJZRJex36tr7q3Vb9x6qfn/6nJJho3btr9h7qNqLIZUXvttz6O33P+rd58kJr7/98ON9D1Skh4+awEqapNoZRlq7ceuAISNVKzhck6/J8a9Pfv+td6d9s33P1JnzZy9Yevc93Xs8+NjcRZ9MnTl/4PDxB6oYN4G8aJaneB57PpzC2hdHUm0RGwJSW7fvUFa2vvakkNTuzeFY6cqrrkunuYOH05YHSAuPyqQeab0v2ykGZziNJI3yol6QDGwDL/mSEoko5CSHiIusetj0dx+o7Nytx28uuGjE2LGqbYcAASSyihs7I5HF0yiKin0zc7ncjTfeuH79eoyxIAjPPPPMzJkzAQChRre2USiUs5YWIS45VqtMCUECh6u51WXfvjBgpOlCKofu6tTT9qFs446pMz5WzeTA4fwDffphI67OSDPmLFu1dispCXzwkWd52TktGZfvJy6uZxJxiZI4ARj58riRoye6AfCyUwwWWcWo//2mCMMB1UyQFkrY5ySbEUwBuaqZaBZUpUUnANIolpedtrd0XPnVRpJxqb+jmzTJbi5xCQEyBXze7y4lCTk3hAJvrNu0c8Jr7x2u5qrSIvkrSHtWskVItyHP6XlOv7tzr4oanlywMwVsOGB58NW6bY888eJX67bd1/PxTz8vM10oCPiLrza8WDKclbSaHI9N3/SSHIew6Xe6t+eXazaGANNnLySCwiPDcOM1G7YMGj46xyERWwHAXZ3ve/yZFyTV5pFRkSrc2+Ohhx/vO2fhMtNLcoKhWElBsmQj0lwgO7GL+YymE5dijBo9vk+fp3lJDwFyrFasuq3fGpvHnh2B5gKPHRZZyAwNHwTVrsjwSItY3kI4lJDHi7ZmRqvXftOpS4/zfnvhjDnzSd2J6XpeFJKKlsbEhRwwxFrI/TiO58yZc9ddd2GMeZ7v0qXLxx9/DD+gIziFQvkR0yLExQ2Bk+z95Tk/hr/87aZMAes26DbsOZDeube6ZOi4VWu36jZgIz5YUSivYk0Xbrm9C9mHKavBss/KdBtOvMujWcSlmHEhMWLk2P4Dh5MsfTEE1S1G/e83fiQOgAAAHaFJREFURZBBMyTDz4oWuU8arGkWYCMu8IaoeKYLi5auanfLnUEIUDeCJAiCIAgAoOgxp19cqjNSOq9c8udrH396wLLPyj6avXT+x18MHTGxa/dHZs9f/tY7M4kBOwHs3Fu9Y0/V2g3f7dpXM3r85EVLV93VqafhQEUNX+w7worWlu0HBw0bP2POssefHuAEMP/jFR98NHfiG+8MGj56/GuT7+zUjRHVQ1VZHhkhwM/+47wn+r44esKkQ1XZ7bsPPtH3RRFbkmpPevuD4aMm2AHoTvTqm+/OX7x8xJiJ5dU5L4au9z+4Y2/5kBFjX5k0Jc+ppF64Oo8ynCYbEbEWUppzasQFuyK2BFk7rrj4fogU/de/uUBEpqg4mQI6epGo7qHKU3xe1CXdZ2QzxaAMh0XNMRxAOOBFm+VNzYxWfrX58itv+MMlf523cGlYpyy6bRFlcUI3OuF0dMdxHMcBAN/3i2mV3//+99u3bzcMo23btkuWLCHfLNa2UygUCqFFiIsXQTqvGA5s31VxU9s7SfvwqrToRZDn9IFDxg5/+bV9h7KcZJOrDi87l1/VZuGSleRTNdLCHKspetTSxAUgTCAM48h2nTiB0hFjSoa8TCZAFYPMPKqdfHTCxuo/PHjZUfRIs0DRI0WPVDOR1aDAG6QoBGlhntMVPSI91u7udN+bb70DdWUuURQVxxc0W3GuEQ9/+bX+JaP2HEg/2beELGxt/GbPyDFvHKwoVKYEP4Yso7KiRda/vtl2YNXarV4Eug1P9Ru0dsN3pOpFs6A6I5Em9IcqmfenLTBdyBRwkECeUwVk5zlVNSNG0JHmI80XFWf0+Dfv7/34uk3f3dfzUQHZTz9bkspJFTVsgdcGDRu74eudqZy0c2/lV+u2rt+8Y8DgUUECX6zeVDJ0jOHAM88NWrjki1nzlgmqb/iQF02y5TgvmqIWkL66TSoucRgRcTEtb9ToCcNHjs3ziqx6jRTbOrYPvGyxoqE7ke5EjKjmeUUxPF4yRWTPmrv0iqtvuqnNrV9v3REBIM20vLBu1nRMwov9sPF9P1EUFQ8n3/fJ8eO67oQJE5555hnbti+//PLy8nJizBQKhXIULUJcqtIiNmIngEVLV7048OU8p4tK7bqArAamC/1eGHb19bdMn7WE1GdI2A8ButzX586OPd6bOp8UmYpNP633JDIuUeInAEEUxgkMHjJi0NBRhp0011IRI5ikAQlZJFL0iFigbkNNVtZt4CSbvLyyGmzfeeCKK6+VJAkALMsiRwjGGJpPXHjZGTpi4ojRk0TFq85IlSlhddm3s+Z92u+FYd/uKF+xclPf54f6MaTzCinombtwxbpNO5EW7thTdbCi8NhTL9k+CMglQxMPVhQk7Pd44Km+zw8dMXrSss/K1m367vmXhk9+d8aCxZ8PHDK6U9feouLwssUI+qhxbwwaNvaL1ZsYQd+xp2LWvGU5Fj/Vb+COPRWjx7/51bqtouKQbTUr13w9ePi4dF4eNe4NRQ8EZL85ZXpNVuzW45E1m3ZUZiVGts0AdA/SrErc5VS9PnXiYrRud2vZ2nrFuXHtHjdNN0UJn/fbCxlRlbVjRbl2MhEj6IrhSapdk+NTeQHpLjb9goAmvfX+JZdeftsdHbft2Gu5ES9jLwLSqdB0Hc3W68Ql9BMvgbCxqRHFHoxxHJPaKQAwDEPTtKuuumrnzp0/+clPwjBMkoQk+SgUCqU+LUJceNkxXeAk+4vVX499ZYrlQYE3yMA23QbSCkzC/gsDRv7iVxeFAJoF6bySKeB9h7I9H3y6z+MvpPOK6ba44lw/sP3QKWbrhwwd+eKAYSKymyvjYnlQnB0oILdY0aJZUJOVSQKG7DaqycoRwDN9n58wYYLjOMVSA9u2m7E4d92mnZkCLtoJGT78+arNw0a+So6WHKul84qiR7YPNVl505a923YeTuUQJ9mqmVx3022pHJKwTyqUQ4DqjDRq3Fuk7gcbsW4nAwaPUvSgKs0frMgNKR1/4HBWs+It2/dv+Hpn6ahXyzZuF5B9T7cHW7W7472pc1994/1Hnnh+0uSpX63bms7Lfgw5Fpdt3P7y2Emjxr2xY0/Fhq93fvp52eNP9/981cbn+g9rdcs/Pvlyg2IlPPZqCgqLHM2FFIObXFwSILv0E4Awgvt6PvD+9FmspB2rLGT2Vp5XOFnnkYFN142gIpUbOnLMr8//wwMPP54v8AmAjDTyqJpu2i45wuMYogTCuHZ5NPRD5wTjroq+EsdxfTspLS198sknzznnnGJ6r/iTFAqFQmgR4kLKLLARb9qy97IrWpFUPylbkbCfyiFWtGQ18CKYNHn60BETi63ZSZ3pXZ16llexmcIpuwCcKnEBCMPY8wLfC/wEYNToCYOHjZax21ziQmpyiZqQfcJkw3me08l4PEWPcqyWKWAvgjyLkKJffPHFmUwGAEzTJB+UXddtLnHZX55zQ3j4sedrsrLpAinW2bx13+DhE0ibOM0CkkPKMio24rkLVzz74vDBwyesWLmJEczJ7856qt8gRjA//GiR6UKO1cj2aVkNVq3d+uobH1bUsCVDx6hmJKvekk9Xj5nwFvlfoCrNa1Y8pHT88i/WFS/wBV4jIwn7l4xcsXKDG0JlilPNaHXZlhcHjmAEvSYrhgAVNeygYWNl1ZNVryBZipXkBIMUu7DIEbWA9Js5ZeKiOIJstW53e9naTUVl8RwXyJplDAnAngPlv/vDH5FuN5z/fGQutGJ4smZh092+e/8TfZ+/6NLL+r7wEi9jYirkUXXDqlMWiJLQC1ziK45nRolPqrsaE5ckSYiOJElCBKU4edQwjHPOOefPf/5zEASkCKZ4mFEoFAqhRYiLokekVlS34arrbs5zOsmyrNu087vdlW+/N5sULpgurFq7dcyEt9N5ZeSYN3jZyRRwCPDIEy9+u6PcbvrpuychLjEECQDp4zK8dPSAQSOkhuPrTqe4NBbkYm95kM4rtg+87NRkZaQ6HC/Pnz+/S5cuAECuIgBAcvjQHOJS4A3dhkv/ekNNVmYEsyot2j6s3fDdwCFjQ4CarGx5IKtBRQ3f5uZ/3HJ7l9ffmhYC5Dm9vIolK489Hniqa/dHnutfKiDXcGDazMX3dHt4xOhJZAiRqHj3937ynQ/mLvl0zbiJ7wwcMtZwgBQGyWrwXP/Sjd/sIb9Iaqo2fL1789Z97Tp02r0/5QRA9px/tW7biwNfNhyoSouqmaxcs2VI6StkUEBTH5+kFc2x4lK7KToMEwDPDyOAhx9/6vXJ74rIFGTDcpM8i7wQeEnP5EXVcLHubN+19977e533uwtGjB6HND0C8KK44eNBUtsLrhjhUXGCjEtjqKpaWlp6+eWXk0VJmm6hUCjH0iLEhZiKE8Dham7qjI97P9xXs2DHnqqRY97wIhgz4e2Jkz4QkLu/PDdu4jukQ137WzvPnPuJqHg791Y//ezgqrQoNX0/3x+3uJCqF7J5OAQQkckL6L333uvTpw+pz8UYFz8oQ3OIi2ZBjtW69Xhs63eHkBaaLiAtXPZZ2atvfEiKeEhbQkWPvt1RLipegTfynK6aiW5DZUoQkFuZEuYs+Owf9/Q+VMmQmh5sxKT7XKaAN36zZ9rMxWQ39eqybydNnp7ndNLehhHMSZOnb99Vked0XnaqMxIn2dt2Hr6xzR1P9i0JAQ5VMgcrCtiIyzbuGPvKFAn7ZGfcF6u/nvDae2QD9mkRF0+QnNbt7ihb+/URxYiTOIyg7ivDcTdu2XZdq7aSYhB34USNuAvWnbKNX3fs0u23F1z0xtvvkpJbbJgRQAjJCa3lWHH53tZCViQZhvn0008BII5j13VpmQuFQjmKFiEuug2HKhmy+lOTlVM5NHv+8g1f7yZ1DPvLc9UZ6cuvvlmzfjtZNtpfnssy6r5D2XmLPt+y/SAvO04A6bxCxeXkQjWTHKuRfAa5ipsu5BhZwcbPfvYzx3GCIPA8jywVBUHQXOJCLKQ6I7GiJSqegFxym8oh1UwsD8g2b/L83RBsH0ifZQn76byCjZjkXSpqeLI0JtYtn7kh8LLDCFZNFil6zMuuZkGW0QTkZRlNs0CzYNe+lIA8bCSaBaLiGw4gLapMiV4ENVnkRRAC8LLLCBYjWLIaFnhTQJ6EA/JbBb7Jp0NLODiuuCRRTMSF9BMyHDsEuPamNiu/Wp/OMHECCjY5Hq1bv/mSP/7lmmtvXLhoKfnV6pp0GCUJgHKkm1z8feIkIbJCjqvmm+1FoVBaKC1CXMjH0+LeZtuHvQczpK+/H9dm4POcXpkSSMtXJwDNgiyjko/U5NqjmgkVl5MLMmzB9qHAG0Qf03lF0dynnn527NixJMtCbutfUZplVxGZ4UecAxsx2WVG+gCRbVPFEuN9h7LpvEK+rKjhQwABuZkCLh5sZNc3qUSWsF+dkXQb3BA4yalMiRIOiJogLZLVkJddRY+J05CDH2mRgDxSKr59V6VuQ1VaSuexaoLtg6j4nOSIiq+aoNsgKr6AmvbgrBMX/zgZl6S2rzapSokAnCha9vnnbdt1cL1YEPG06bNvatXuiiuvXbW6rDYrY9pH/bYfBv+EptS/PRkMw3AcJ47j4tIkrXGhUChH0SLEpTojhQCsaJHViu92V5LrAS876bzCy45qJqLicZJt+5BlVAG51RmJfMiuSovk+zVZmYrLSQcjmCFAllEZweQkW7Ngy7Y9l//tagBgWZZYi+u6tm1Dsy4VFXiD7DhT9Mh0gRS75FhNQG6BNwTkEs0lbYJJ2QpJrpBlJtKIr8AbTgA1WbkqLZLvk2KpAm9KOJDVEGlRjtU5yeFlF2kRL7vpPDYc4GU3y2isaPOyy4o2I1gF3kzlFLLQWZkSnQB0G/KcQXRHNYERrMPVPC+7p2EkxX8nLnEQ+X4YRADI0EKAVq3bDxg45MI//PHmW27ff+AwKd2VES7+hu06qq6RlSDTNpr6ZJQkie/7xXJd3/dpjQuFQjmWFiEumgWHqzlyOWFFKwQgu4SImiAtZAQTaSEn2XlOF5BL9r8wgpnKIfJJujoj0eLckw6khcUdRiRY0fpH5+6ffPq5LMsAgDEuNgprxu3QvOyQrWSGA8Q/cqzmx0COHFHxVDMRkCurQSqHLA+KVSzFVrmkzx4n2YYDpOTWdIGMcCIrZek8ZgTLdEFUfGIwmYKq6DEnOboNEg44yUFahI1EVsNUTnFDsDxI5RRGsLwIeNmtTImKHmsWZAoq0iLdBl52ifQ0ubgokYhCQXJbt72rbM2WBnuhoyNzlb0oJOOEli777LHHn87luQQgCCEIwQ8i1wuSukUlUsvih54feidRs/J9KfZ3KR5XxbwLhUKhFGkR4mJ5taUVZCM0yfATiSH5/+KSEOn4Qj5Sk+sTKa5EWtgCW/6fKeJCXsPqjKRZYLqgmsmbU2b8/a4uQb2Pu/UvIc0lLqLisaKV5/RMAWMjJlmW4viCAm8oekQ8mJPsAm9kCphIGNkBTjZ7kxxMllHJ357KIVkNyF4qRY9Z0TZdMBzIsXpVWlL0mJgHKXYRkEfSLSQZY3lwqJIlyZV0Hks4ID+cZTRR8Ul1S4E3yS+ejqWiE4hLHBJxiSEKIQoBZF1NAPwgCSNIAIKw1lSCMA4iMmArjJKQpFssxwyixscGHbPd6KSn1QNAEAS0zT+FQjkBjYgLdgVkE1EgF4xjB5qc3IXnuFG750J2RMWrrVaRnRyrkU2kEvZtH0ivEVHx8pxOihiwEZNsQYE3SAOx0yguxb/IFxVPVnwR2b/93R/yOa6ub1ZRXKJ64jKqZNBwSbHqwpEUq9g8Q8TkO00bdU076puTR67rhgOMoDOCns7LN7S+bfe+8gRA13WoK3Ah/XMNw2gucSFN89wQyCxrWQ1IfS5p+UMyKKTdnO0DydKRaYuqmZAOe6QcKp1XdBuIx2gWyGpAyqeQFrGiTepqFT1mBIsUsoiKb7qQyimqCYoeEyOR1ZD8APGYECCVU8hijaLHAvJ0G0iZi+2DgDxOcpr6+BRwICo+Lzut292xtv5SUV0ZShj6lmNGAJplRgCk8DYIj/wgUtSj9g25vhNDRO7/N+eSpO72B4hL/bES9dclKRQKpUgDcXlhQOmQ0vGKFSEzTjEYGYmAA14NeMXnsM9hn1OLF2+LU5u8L0XLC5Ia8Xhcl39Coaj4shJIyDv//D/tP1BRpylxHIdJUtuxjdxOmvTmwIGDFKwhRUWKihS97k7xS6NJg2UVy00kxcJ6QDRRNqK8bClWlBO0HIstHxgevTzmlZKhpVHj16lmWyqiccIQVJ/HDo+M1u1uXVtW1zm3YQltUjtUCKKTz4lQKBRKc9JAXEaOeX3A4FGc4kp6WBBtZCQF2ePViMMhh31W9VnNYTWH1SxWM1jNKl7Fz5poKC4oJMHyluXAv//7f4qSmgA4npsAhHFAPjISPM8bOnTor371q2uuuaZNo7Rr0/rmpoubWrW/7vrWbW++4533Z2hWLCA3w2mKAzlJFzUPm76kmgcrqs+/6GJV17yg0aUBKi4tNDSXUy0eGa3ad1hbtjGB44gL+R4RFwqFQjkTaSAu02Yu6vXQU6R8RMCBrMc53hYwFZdiHC/jgsICa1gOnHPOT2u3klomEReyebjYIx9jvHnz5u3bt69rlA1NGGWbtm/bvWr1uhcHDHvm2QECshU9yPJ6QbJEzcsJGjZ9xXC69ej97odTLeeIch0LFZcWGlRcKBTKWUADcdnw9c4rr22r6AERF1ENGcnjlbBOXDxW9ai4kPv1l4ok5B8sz5977q+JuFiOnQDEdZeGKIosy/J9n1QdNuMOTxVbkMDMmQvvuLtrOi87AWAbBNXPCZrmxpysL/9y9U1tb07qhik29jhUXFpoUHGhUChnAQ3EJceh835/MSsASPN52ZGwL2lRwwKXs1xcjkT93VWGBR9On9+58/22E9bbShqTnrPN9dYehwQggfnzl93X42HDAVFxqnIiMkMWWRkOeTHc0Kb96rINjuvDCcfEUHFpoUHFhUKhnAU0EBc7SG5oc/PKtZtk1eNlS8K+qIZkM1FDcXFYjRTnUnHxRcVDqtf7oSemTZ+talZxR0WU1LaaJd0pSMaFzMWNGwWaNCAB30vefPP9zp3vx3ogIDudl1Un0VwoSNpb737Y88E+pAsZmRrTGFRcWmhQcaFQKGcBDcQlAhj3yqRnnu0vIlNWyU5jkyRdeKVWXBruKjqbxaUYTnll/qprW1dVZ/0gIVtMEwBS3HpUTy2o65rfLIR+AgnMmr3g4T5PyNj2YuBlqzojCIpZEPAFF12azrNEXAAg8BvtpUHFpYUGFRcKhXIWcLS4bP1u12VXXM2JWLNDRQ+q0iI2kmIHl7N+O/SRIMoiKo6Irc1bdl5w0aXkkm87Xu0d1yk2pYjjuEXMiksgCmDqhzMf7vNEeWVWxjbSfNWMsOk/P2DwmPGvaZadALiu63vOCSbOUHFpoUHFhUKhnAU0EJcggQjg7s5dZ81dxIlagVNNFwTkymoo4CAnGAXJko2Ax05e1pAdNP+Z+vRGjjexBWlWVazE9kFUnKoMi023VdsOa9ZvwqpJci2abv6AxqFNCMm4zPhoTs9eD4vI5CWdEVVBMQ/X5P/z179HqlXs7RGFPhWXMy+ouFAolLOAozMunCQerq65+NLLyGWsKs1X1PB5ztBt0FyQ9FDSfR47jGJI5lknLooJsh6LWnA4LWQZhUeG5ccrVq1p1+H2TIEhsqIbFpn2YjstIMXSENIS7/13pz704KOqZiuaK8iG4cZtO9y5ZPkXpJUqQqjY9rexx6Hi0kKDiguFQjkLaCAupm2QNiQPPfzI5Hc+5EStsoaNoHawS4E3qjMSI5uKFclGIGrNfZo+7cHKbk0eFyTLBxCQjU1/X3nl3zt2XLFyFclVhHEURgkZ+xKEJzGULm7KIMP24KNps3r3ehirFi+plpvMW/jJdTe2rX3+URLHMUAceTYVlzMvqLhQKJSzgAbikkDsBW4CsaprV1xzfdmGb1TDr07zmgW2D2SsHTJD2QgKklGQmnyoYUuLgmhLWiQbUVVOVK2AR9q4Vyc9+vST5DIgK4jMJIoTKJa4fk+aVFxicrNg3sf3dr0fKybDSnkWtb35ji3bdkUApuVFCXnesWfpAGFjq0VUXFpoUHGhUChnAUeJS2hYagJxGEff7djTpm2HdE7AepDKyILkKHqkmolqJoxgZnkV200+1LClhelDeY2ge8AptqCYy79c3fbWW8PakXVxUhu126H94CQuDU0rLrEXQQizZszufl8vy/Q5Hk18ffKDfZ6IANywdjNUFIRR6EMSRqFLxeUMCyouFArlLOCoGhcvgSCI/ATAcf0vV65p0/42QTZkxZeQlyngVA4JyJXVQFBd1Uma/0x9eiPH26IaKiYUJGPd5m03tr05w7IhxKqlFcXF9T1iAPHJpFyaOOOSQOxFUz+Y9mifx0zD/XbbrutubHu4KuOFEAF4fggAvusBhFRczsig4kKhUM4Czmn4ZQAQAMS+73t+mADMnLPwuhvbHyzPa0ZiusBJtqh4ug0SdrOM0vxn6tMbWc7yEthfwXw0b+nlV19fEMUQwEuCCOIQgjAOYojCOKrrnHsSxHVVsU0RMSljmT1zzkMPPJzNMEOHjRwwaHgEYDh+BKBqBgB53qFvG3Sp6MwLKi4UCuUsoIG4uJ4JEKqqAnUjjhOATd9sv+KKG2bO+diwE9OJGV4TZEPGtqCYouLw2BEV78y8bSwcHtf1aDk6vJqs/OLAEZ3u7Wm6QQRg+14EcQCh5Zgk41K0luj4F/0TE9fpQlPcxnEY+a63eNGSjnd32r59x/XXtYoTsLyQlOUCgGVZtmkBxJapnoy47DlEXltOsSXss8hS9IiRzRbwXp8Vt4Lq8tjikda6fYe1ZeuTIwfV0eLSMrfrUygUyj/DURmX+NhrVQIgy8pVV197x50dK6tqeAGJEpIRNkxXRCYjqiKyJdUWka1agW7FrKRJiiNiq6XfKk7d0ESiX06xoZyAbEVzOVGTsS3IGidiGZsyNl997c0/XfrXceNfTQAs29VNI6kbqXjqiJvsFgAAYzx//vwHHnigY8eOn3/+ZdxoEfFxjoSjKE4zIJz369/u2nsozyu6FSPdFWRLxJai+ZJqN/97fXbcCorOy1jRrXbtbylbtyGpJ5f13tMGEkOhUChnHOf89z9Sx/Lly3/xi19079595cqVHMcJoqxgE+ue44NmBpm8mMmLIjIlxTojQsRWfXcpWouILU7UkOqIkooUQ9PtAwcrxo1/9cqrrnnmmX4HDhyo/5r4vt+M056/L6ZpAsDEiRPPPffc3r17a5p2co9DphYU+wJHUZQkyX/98rz9ByryLFI0V1IsVlDJwcBLerO/12dHGIpmW14oyUq79resW7+ROItlWXXvW/1qpxAgpFkXCoVyJvJPiUvxEgUACxcuvO22237605/e36PXqNETXnvj3QUfL1+9dvOXqzd8sWr9qjWbvli1/pPPVrf8WLZi9bLP1ixZURvLVqwuxuq1G+ctXDrlnQ+feLLfny796/8797+eeLLvvv0HPS8AANu2Hcchr4au603xrjQRrusCwLx5837+85/v37+/OP3x+z4OMZXil57nRVH0l8sunz1n4eJlX3z2xdply1ct+eTLT1d8tfzzNUs/Xdns7/XZEStnz/t48SefzZo996qrr/1223dk+a+eWFNxoVAoPwb+2YxLPp8n1ypyHgzDcNr0GSWDht/X4+Gbb727Tfu/39i6w42tO1x/081/veL61u1ub/nRqv3trdrdcWP72mjV/vZiXHtDm9btbn3q6efefOvdg4cqo9qq1gQAdF0n+QbHccglv0UMIfqncRxnzZo148aNI19GUXQS4gIASZIUdZY8Qtd777upVfs27f/e7pY7ySvcvsNd7W65s1Xb25r9vT474tbb7+x0+10d77jz7iuuvDqdyVn2UWMyqbhQKJQfA99jqYhCoVAoFAqleaHiQqFQKBQK5YyBiguFQqFQKJQzBiouFAqFQqFQzhiouFAoFAqFQjljoOJCoVAoFArljIGKC4VCoVAolDMGKi4UCoVCoVDOGKi4UCgUCoVCOWOg4kKhUCgUCuWM4f8Dhh/kmBOv2bEAAAAASUVORK5CYII=" border="0" onload="return imgzoom(this,600);"/>

具体处理步骤:

1.浏览器把获取到的HTML代码解析成一棵DOM树,HTML中的每个标签(tag)都是DOM树中的一个节点,根节点就是我们常用的document对象。DOM树里包含了HTML所有标签,包括display:none隐藏,还有用JS动态添加的元素等;

2.浏览器把所有样式(用户定义的css和用户代理)解析成样式结构体,在解析过程中会去掉浏览器不能识别的样式,比如IE会去掉-moz开头的样式,而Firefox会去掉_开头的样式;

3.DOM树和样式结构体组合后构建render tree(渲染树),render tree类似于DOM树,但区别很大,render tree 能识别样式,render tree的每一个节点都有自己的样式,而且render tree中不包含隐藏的节点(比如display:none的节点,还有head节点),因为这些节点不会用于呈现,而且不会影响呈现。

注意:visibility:hidden隐藏的元素还是会包含到render tree中,因为visibility:hidden会影响布局(layout),会占有空间。根据css2的标准,render tree中的每个节点都称为Box(Box demensions),理解页面元素为一个具有填充,边距,边框和位置的盒子。

4.一旦render tree构建完成后,浏览器就可以根据render tree来绘制页面了。

重绘

重绘是一个元素外观的改变所触发的浏览器行为,例如改变visibility,outline,背景色属性。浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。

回流

回流是更明显的一种改变,可以理解为render tree需要重新计算。每个页面至少需要一次回流,就是在页面加载的时候。

注意:回流必将引起重绘,但重绘不一定引起回流。

触发回流

1.调整窗口大小(Resizing the windown);

2.改变字体(changing the font);

3.增加或移除样式表(adding or removing a stylesheet);

4.内容变化,比如用户在input输入框中输入文字(content changes ,such as a user typing text in an input box);

5.激活css伪类,比如:hover(IE中为兄弟节点伪类的激活)(activation of css pseudo classes such as :hover (in IE the activation of the pseduo class of a silibing));

6.操作class属性(manipulating the class attribute);

7.脚本操作DOM(a script  manipulating the DOM);

8.计算offsetWidth和offsetHeight属性(calculating offsetWidth and offsetHeight);

9.设置style属性的值(setting a property of the style attribute)。

如何减少回流和重绘

1.直接改变className,如果动态改变样式,则使用cssText(考虑没有优化的浏览器);

    // 不好的写法
    var left = 1;
    var top = 1;
    el.style.left = left + "px";
    el.style.top = top + "px";// 比较好的写法
    el.className += " className1";
     
    // 比较好的写法
    el.style.cssText += "; 
    left: " + left + "px; 
    top: " + top + "px;";

 2.让操作的元素进行“离线处理”,处理完后一次更新;

使用DocumentFragment进行缓存操作,引发一次回流和重绘;

使用display:none属性,只引发两次回流和重绘;

使用cloneNode(true or false)和replaceChild技术,引发一次回流和重绘。

3.不要经常访问会引起浏览器flush队列的属性,如果你确定要缓存,利用缓存;

    // 不好的写法
    for(循环) {
    el.style.left = el.offsetLeft + 5 + "px";
    el.style.top = el.offsetTop + 5 + "px";
    }
     
    // 这样写好点
    var left = el.offsetLeft,
    top = el.offsetTop,
    s = el.style; 
    for (循环) { 
    left += 10; 
    top += 10; 
    s.left = left + "px"; 
    s.top = top + "px"; 
    }

 4.让元素脱离动画流,减少回流的render tree的规模;

    $("#block1").animate({left:50});
    $("#block2").animate({marginLeft:50});

5.尽可能在DOM树的最末端改变class(可限制回流的范围);

6.避免设置多层内联样式(将样式合并在一个外部类,仅产生一次回流);

7.动画效果应用到position属性为absolute或fixed的元素上(动画效果应用到position属性为absolute或fixed的元素上,它们不影响其他元素的布局,所它他们只会导致重新绘制,而不是一个完整回流。这样消耗会更低。);

8.牺牲平滑度换取速度(Opera还建议我们牺牲平滑度换取速度,其意思是指您可能想每次1像素移动一个动画,但是如果此动画及随后的回流使用了 100%的CPU,动画就会看上去是跳动的,因为浏览器正在与更新回流做斗争。动画元素每次移动3像素可能在非常快的机器上看起来平滑度低了,但它不会导 致CPU在较慢的机器和移动设备中抖动。);

9.避免使用table数据(在布局完全建立之前,table经常需要多个关口,因为table是个和罕见的可以影响在它们之前已经进入的DOM元素的显示的元素。);

10.避免使用css的JavaScript表达式(因为他们每次重新计算文档,或部分文档、回流。正如我们从所有的很多事情看到的:引发回流,它可以每秒产生成千上万次。)。

实例测试一:

测试代码不改变元素的规则,大小,位置。只改变颜色,所以不存在回流,仅测试重绘,代码如下:

    <body>
        <script type="text/javascript">
            var s = document.body.style;
            var computed;
            if (document.body.currentStyle) {
              computed = document.body.currentStyle;
            } else {
              computed = document.defaultView.getComputedStyle(document.body, '');
            }
     
        function testOneByOne(){
          s.color = 'red';;
          tmp = computed.backgroundColor;
          s.color = 'white';
          tmp = computed.backgroundImage;
          s.color = 'green';
          tmp = computed.backgroundAttachment;
        }
        
        function testAll() {
          s.color = 'yellow';
          s.color = 'pink';
          s.color = 'blue';
          
          tmp = computed.backgroundColor;
          tmp = computed.backgroundImage;
          tmp = computed.backgroundAttachment;
        }
        </script>    
        color test <br />
        <button >Test One by One</button>
        <button >Test All</button>
    </body>

 实例测试二:

跟第一次测试的代码很类似,但加上了对layout的改变,为的是测试回流。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1
    /DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    </head>
    <body>
        <script type="text/javascript">
            var s = document.body.style;
            var computed;
            if (document.body.currentStyle) {
              computed = document.body.currentStyle;
            } else {
              computed = document.defaultView.getComputedStyle(document.body, '');
            }
        function testOneByOne(){
          s.color = 'red';
          s.padding = '1px';
          tmp = computed.backgroundColor;
          s.color = 'white';
          s.padding = '2px';
          tmp = computed.backgroundImage;
          s.color = 'green';
          s.padding = '3px';
          tmp = computed.backgroundAttachment;
        }
        
        function testAll() {
          s.color = 'yellow';
          s.padding = '4px';
          s.color = 'pink';
          s.padding = '5px';
          s.color = 'blue';
          s.padding = '6px';
          
          tmp = computed.backgroundColor;
          tmp = computed.backgroundImage;
          tmp = computed.backgroundAttachment;
        }
        </script>    
        color test <br />
        <button >Test One by One</button>
        <button >Test All</button>
    </body>        
    </html>

 避免回流和重绘的次数可从代码的角度来实现性能优化,因此我们在写代码时应尽量使用上诉方法来减少网页回流和重绘的次数。

关键词:方法