From 45ee30b95d18758e0485fa13618809a006680962 Mon Sep 17 00:00:00 2001 From: Apex Liu Date: Fri, 5 Jun 2020 15:17:58 +0800 Subject: [PATCH] update Python module for Linux. --- client/tp_assist_macos/site/index.html | 2 +- client/tp_assist_macos/site/status.html | 2 +- client/tp_assist_win/site/index.html | 2 +- client/tp_assist_win/site/status.html | 2 +- client/tp_assist_win/tp_assist.rc | Bin 8822 -> 8800 bytes .../x64/PIL/.libs/libtiff-8267adfe.so.5.4.0 | Bin 644664 -> 0 bytes .../packages-linux/x64/PIL/BdfFontFile.py | 4 +- .../packages-linux/x64/PIL/BlpImagePlugin.py | 40 +- .../packages-linux/x64/PIL/BmpImagePlugin.py | 33 +- .../x64/PIL/BufrStubImagePlugin.py | 2 +- .../packages-linux/x64/PIL/ContainerIO.py | 9 +- .../packages-linux/x64/PIL/CurImagePlugin.py | 7 - .../packages-linux/x64/PIL/DcxImagePlugin.py | 4 - .../packages-linux/x64/PIL/DdsImagePlugin.py | 8 +- .../packages-linux/x64/PIL/EpsImagePlugin.py | 48 +- .../packages-linux/x64/PIL/ExifTags.py | 6 + .../x64/PIL/FitsStubImagePlugin.py | 2 +- .../packages-linux/x64/PIL/FliImagePlugin.py | 5 - .../packages-linux/x64/PIL/FontFile.py | 3 +- .../packages-linux/x64/PIL/FpxImagePlugin.py | 18 +- .../packages-linux/x64/PIL/FtexImagePlugin.py | 2 +- .../packages-linux/x64/PIL/GbrImagePlugin.py | 2 +- .../packages-linux/x64/PIL/GdImageFile.py | 9 +- .../packages-linux/x64/PIL/GifImagePlugin.py | 83 +- .../x64/PIL/GimpGradientFile.py | 6 +- .../packages-linux/x64/PIL/GimpPaletteFile.py | 2 +- .../x64/PIL/GribStubImagePlugin.py | 2 +- .../x64/PIL/Hdf5StubImagePlugin.py | 2 +- .../packages-linux/x64/PIL/IcnsImagePlugin.py | 77 +- .../packages-linux/x64/PIL/IcoImagePlugin.py | 9 +- .../packages-linux/x64/PIL/ImImagePlugin.py | 15 +- .../packages/packages-linux/x64/PIL/Image.py | 346 +- .../packages-linux/x64/PIL/ImageChops.py | 36 + .../packages-linux/x64/PIL/ImageCms.py | 54 +- .../packages-linux/x64/PIL/ImageColor.py | 4 +- .../packages-linux/x64/PIL/ImageDraw.py | 27 +- .../packages-linux/x64/PIL/ImageDraw2.py | 8 +- .../packages-linux/x64/PIL/ImageEnhance.py | 2 +- .../packages-linux/x64/PIL/ImageFile.py | 64 +- .../packages-linux/x64/PIL/ImageFilter.py | 7 +- .../packages-linux/x64/PIL/ImageFont.py | 36 +- .../packages-linux/x64/PIL/ImageGrab.py | 78 +- .../packages-linux/x64/PIL/ImageMath.py | 24 +- .../packages-linux/x64/PIL/ImageMode.py | 2 +- .../packages-linux/x64/PIL/ImageMorph.py | 6 +- .../packages-linux/x64/PIL/ImageOps.py | 28 +- .../packages-linux/x64/PIL/ImagePalette.py | 4 +- .../packages-linux/x64/PIL/ImageQt.py | 34 +- .../packages-linux/x64/PIL/ImageSequence.py | 5 +- .../packages-linux/x64/PIL/ImageShow.py | 39 +- .../packages-linux/x64/PIL/ImageStat.py | 2 +- .../packages-linux/x64/PIL/ImageTk.py | 16 +- .../packages-linux/x64/PIL/ImageWin.py | 10 +- .../packages-linux/x64/PIL/ImtImagePlugin.py | 5 - .../packages-linux/x64/PIL/IptcImagePlugin.py | 19 +- .../x64/PIL/Jpeg2KImagePlugin.py | 26 +- .../packages-linux/x64/PIL/JpegImagePlugin.py | 90 +- .../packages-linux/x64/PIL/JpegPresets.py | 5 +- .../x64/PIL/McIdasImagePlugin.py | 4 - .../packages-linux/x64/PIL/MicImagePlugin.py | 7 +- .../packages-linux/x64/PIL/MpegImagePlugin.py | 7 +- .../packages-linux/x64/PIL/MpoImagePlugin.py | 9 +- .../packages-linux/x64/PIL/MspImagePlugin.py | 13 +- .../packages/packages-linux/x64/PIL/PSDraw.py | 15 +- .../packages-linux/x64/PIL/PaletteFile.py | 2 +- .../packages-linux/x64/PIL/PalmImagePlugin.py | 8 +- .../packages-linux/x64/PIL/PcdImagePlugin.py | 5 - .../packages-linux/x64/PIL/PcfFontFile.py | 27 +- .../packages-linux/x64/PIL/PcxImagePlugin.py | 6 +- .../packages-linux/x64/PIL/PdfImagePlugin.py | 15 +- .../packages-linux/x64/PIL/PdfParser.py | 164 +- .../x64/PIL/PixarImagePlugin.py | 5 - .../packages-linux/x64/PIL/PngImagePlugin.py | 466 +- .../packages-linux/x64/PIL/PpmImagePlugin.py | 6 +- .../packages-linux/x64/PIL/PsdImagePlugin.py | 6 +- .../packages-linux/x64/PIL/PyAccess.py | 2 +- .../packages-linux/x64/PIL/SgiImagePlugin.py | 12 +- .../x64/PIL/SpiderImagePlugin.py | 40 +- .../packages-linux/x64/PIL/SunImagePlugin.py | 4 - .../packages/packages-linux/x64/PIL/TarIO.py | 12 +- .../packages-linux/x64/PIL/TgaImagePlugin.py | 7 +- .../packages-linux/x64/PIL/TiffImagePlugin.py | 185 +- .../packages-linux/x64/PIL/TiffTags.py | 6 +- .../packages-linux/x64/PIL/WalImageFile.py | 10 +- .../packages-linux/x64/PIL/WebPImagePlugin.py | 12 +- .../packages-linux/x64/PIL/WmfImagePlugin.py | 36 +- .../x64/PIL/XVThumbImagePlugin.py | 4 - .../packages-linux/x64/PIL/XbmImagePlugin.py | 6 +- .../packages-linux/x64/PIL/XpmImagePlugin.py | 4 - .../packages-linux/x64/PIL/__init__.py | 68 +- .../packages-linux/x64/PIL/_binary.py | 19 +- .../_imaging.cpython-37m-x86_64-linux-gnu.so | Bin 611592 -> 640656 bytes ...imagingcms.cpython-37m-x86_64-linux-gnu.so | Bin 45280 -> 45288 bytes ..._imagingft.cpython-37m-x86_64-linux-gnu.so | Bin 40840 -> 40856 bytes .../packages-linux/x64/PIL/_tkinter_finder.py | 6 +- .../packages/packages-linux/x64/PIL/_util.py | 25 +- .../packages-linux/x64/PIL/_version.py | 2 +- .../PIL/_webp.cpython-37m-x86_64-linux-gnu.so | Bin 39352 -> 39392 bytes .../packages-linux/x64/PIL/features.py | 84 +- .../libfreetype-69f25d5e.so.6.17.1} | Bin 1283040 -> 1283040 bytes .../libjpeg-ba7bf5af.so.9.4.0} | Bin 250488 -> 250504 bytes .../liblcms2-a6801db4.so.2.0.8 | Bin 453104 -> 453104 bytes .../liblzma-99449165.so.5.2.5} | Bin 216664 -> 216664 bytes .../libopenjp2-b3d7668a.so.2.3.1 | Bin 491472 -> 491472 bytes .../libpng16-bedcb7ea.so.16.37.0 | Bin 283920 -> 283920 bytes .../x64/Pillow.libs/libtiff-41910f6d.so.5.5.0 | Bin 0 -> 661280 bytes .../libwebp-122bd20b.so.7.1.0} | Bin 596696 -> 596712 bytes .../libwebpdemux-2db559e5.so.2.0.6} | Bin 29520 -> 29520 bytes .../libwebpmux-ec1d5c76.so.3.0.5} | Bin 58608 -> 58616 bytes .../libz-a147dcb0.so.1.2.3 | Bin 87848 -> 87848 bytes ...fi_backend.cpython-37m-x86_64-linux-gnu.so | Bin 853840 -> 853840 bytes .../packages-linux/x64/cffi/__init__.py | 4 +- .../packages-linux/x64/cffi/_cffi_include.h | 52 +- .../packages-linux/x64/cffi/_embedding.h | 2 +- .../packages/packages-linux/x64/cffi/api.py | 14 +- .../packages-linux/x64/cffi/recompiler.py | 33 +- .../packages-linux/x64/cffi/vengine_cpy.py | 83 +- .../x64/cryptography/__about__.py | 2 +- .../x64/cryptography/hazmat/_oid.py | 7 +- .../hazmat/backends/openssl/backend.py | 9 + .../hazmat/backends/openssl/decode_asn1.py | 12 +- .../hazmat/backends/openssl/ocsp.py | 10 +- .../hazmat/backends/openssl/x25519.py | 16 +- .../hazmat/bindings/_constant_time.abi3.so | Bin 30048 -> 33208 bytes .../hazmat/bindings/_openssl.abi3.so | Bin 5627248 -> 7323568 bytes .../hazmat/bindings/_padding.abi3.so | Bin 33520 -> 37216 bytes .../hazmat/bindings/openssl/_conditional.py | 1 + .../hazmat/bindings/openssl/binding.py | 20 +- .../hazmat/primitives/asymmetric/ec.py | 4 +- .../hazmat/primitives/asymmetric/rsa.py | 6 +- .../hazmat/primitives/asymmetric/x25519.py | 2 +- .../hazmat/primitives/ciphers/aead.py | 2 +- .../packages-linux/x64/cryptography/utils.py | 2 +- .../x64/cryptography/x509/extensions.py | 2 +- .../x64/cryptography/x509/name.py | 20 +- .../x64/cryptography/x509/ocsp.py | 10 +- .../packages-linux/x64/ldap3/__init__.py | 2 +- .../x64/ldap3/abstract/__init__.py | 2 +- .../x64/ldap3/abstract/attrDef.py | 2 +- .../x64/ldap3/abstract/attribute.py | 575 +- .../x64/ldap3/abstract/cursor.py | 2 +- .../x64/ldap3/abstract/entry.py | 64 +- .../x64/ldap3/abstract/objectDef.py | 2 +- .../x64/ldap3/core/connection.py | 3068 +++---- .../x64/ldap3/core/exceptions.py | 1214 +-- .../packages-linux/x64/ldap3/core/pooling.py | 2 +- .../packages-linux/x64/ldap3/core/results.py | 2 +- .../packages-linux/x64/ldap3/core/server.py | 1269 +-- .../packages-linux/x64/ldap3/core/timezone.py | 2 +- .../packages-linux/x64/ldap3/core/tls.py | 648 +- .../packages-linux/x64/ldap3/core/usage.py | 2 +- .../x64/ldap3/extend/__init__.py | 9 +- .../extend/microsoft/addMembersToGroups.py | 2 +- .../x64/ldap3/extend/microsoft/dirSync.py | 2 +- .../ldap3/extend/microsoft/modifyPassword.py | 2 +- .../microsoft/removeMembersFromGroups.py | 2 +- .../ldap3/extend/microsoft/unlockAccount.py | 2 +- .../ldap3/extend/novell/addMembersToGroups.py | 2 +- .../extend/novell/checkGroupsMemberships.py | 2 +- .../x64/ldap3/extend/novell/endTransaction.py | 2 +- .../x64/ldap3/extend/novell/getBindDn.py | 2 +- .../x64/ldap3/extend/novell/listReplicas.py | 2 +- .../extend/novell/nmasGetUniversalPassword.py | 2 +- .../extend/novell/nmasSetUniversalPassword.py | 2 +- .../extend/novell/partition_entry_count.py | 2 +- .../extend/novell/removeMembersFromGroups.py | 2 +- .../x64/ldap3/extend/novell/replicaInfo.py | 2 +- .../ldap3/extend/novell/startTransaction.py | 2 +- .../x64/ldap3/extend/operation.py | 2 +- .../x64/ldap3/extend/standard/PagedSearch.py | 2 +- .../ldap3/extend/standard/PersistentSearch.py | 8 +- .../ldap3/extend/standard/modifyPassword.py | 2 +- .../x64/ldap3/extend/standard/whoAmI.py | 2 +- .../x64/ldap3/operation/abandon.py | 2 +- .../packages-linux/x64/ldap3/operation/add.py | 2 +- .../x64/ldap3/operation/bind.py | 2 +- .../x64/ldap3/operation/compare.py | 2 +- .../x64/ldap3/operation/delete.py | 2 +- .../x64/ldap3/operation/extended.py | 2 +- .../x64/ldap3/operation/modify.py | 2 +- .../x64/ldap3/operation/modifyDn.py | 2 +- .../x64/ldap3/operation/search.py | 13 +- .../x64/ldap3/operation/unbind.py | 2 +- .../x64/ldap3/protocol/controls.py | 2 +- .../x64/ldap3/protocol/convert.py | 4 +- .../ldap3/protocol/formatters/formatters.py | 2 +- .../x64/ldap3/protocol/formatters/standard.py | 4 +- .../ldap3/protocol/formatters/validators.py | 18 +- .../x64/ldap3/protocol/microsoft.py | 2 +- .../x64/ldap3/protocol/novell.py | 2 +- .../packages-linux/x64/ldap3/protocol/oid.py | 2 +- .../x64/ldap3/protocol/persistentSearch.py | 2 +- .../x64/ldap3/protocol/rfc2696.py | 2 +- .../x64/ldap3/protocol/rfc2849.py | 18 +- .../x64/ldap3/protocol/rfc3062.py | 2 +- .../x64/ldap3/protocol/rfc4511.py | 2 +- .../x64/ldap3/protocol/rfc4512.py | 4 +- .../x64/ldap3/protocol/rfc4527.py | 2 +- .../x64/ldap3/protocol/sasl/digestMd5.py | 2 +- .../x64/ldap3/protocol/sasl/external.py | 2 +- .../x64/ldap3/protocol/sasl/kerberos.py | 2 +- .../x64/ldap3/protocol/sasl/plain.py | 2 +- .../x64/ldap3/protocol/sasl/sasl.py | 2 +- .../x64/ldap3/protocol/schemas/ad2012R2.py | 2 +- .../x64/ldap3/protocol/schemas/ds389.py | 2 +- .../x64/ldap3/protocol/schemas/edir888.py | 2 +- .../x64/ldap3/protocol/schemas/edir914.py | 2 +- .../x64/ldap3/protocol/schemas/slapd24.py | 2 +- .../x64/ldap3/strategy/asyncStream.py | 2 +- .../x64/ldap3/strategy/asynchronous.py | 474 +- .../packages-linux/x64/ldap3/strategy/base.py | 1780 ++-- .../x64/ldap3/strategy/ldifProducer.py | 300 +- .../x64/ldap3/strategy/mockAsync.py | 2 +- .../x64/ldap3/strategy/mockBase.py | 12 +- .../x64/ldap3/strategy/mockSync.py | 2 +- .../x64/ldap3/strategy/restartable.py | 2 +- .../x64/ldap3/strategy/reusable.py | 4 +- .../packages-linux/x64/ldap3/strategy/sync.py | 424 +- .../packages-linux/x64/ldap3/utils/asn1.py | 2 +- .../packages-linux/x64/ldap3/utils/ciDict.py | 9 +- .../packages-linux/x64/ldap3/utils/config.py | 2 +- .../packages-linux/x64/ldap3/utils/conv.py | 4 +- .../packages-linux/x64/ldap3/utils/dn.py | 4 +- .../packages-linux/x64/ldap3/utils/hashed.py | 2 +- .../packages-linux/x64/ldap3/utils/log.py | 2 +- .../packages-linux/x64/ldap3/utils/ntlm.py | 2 +- .../x64/ldap3/utils/port_validators.py | 37 + .../packages-linux/x64/ldap3/utils/repr.py | 2 +- .../x64/ldap3/utils/tls_backport.py | 2 +- .../packages-linux/x64/ldap3/utils/uri.py | 2 +- .../packages-linux/x64/ldap3/version.py | 6 +- .../packages-linux/x64/mako/__init__.py | 4 +- .../packages-linux/x64/mako/_ast_util.py | 2 +- .../packages/packages-linux/x64/mako/ast.py | 2 +- .../packages/packages-linux/x64/mako/cache.py | 2 +- .../packages/packages-linux/x64/mako/cmd.py | 18 +- .../packages-linux/x64/mako/codegen.py | 2 +- .../packages-linux/x64/mako/compat.py | 2 +- .../packages-linux/x64/mako/exceptions.py | 6 +- .../x64/mako/ext/autohandler.py | 2 +- .../x64/mako/ext/babelplugin.py | 2 +- .../x64/mako/ext/beaker_cache.py | 2 +- .../packages-linux/x64/mako/ext/extract.py | 2 +- .../x64/mako/ext/linguaplugin.py | 2 +- .../x64/mako/ext/preprocessors.py | 2 +- .../x64/mako/ext/pygmentplugin.py | 2 +- .../packages-linux/x64/mako/ext/turbogears.py | 2 +- .../packages-linux/x64/mako/filters.py | 2 +- .../packages/packages-linux/x64/mako/lexer.py | 6 +- .../packages-linux/x64/mako/lookup.py | 2 +- .../packages-linux/x64/mako/parsetree.py | 2 +- .../packages/packages-linux/x64/mako/pygen.py | 2 +- .../packages-linux/x64/mako/pyparser.py | 2 +- .../packages-linux/x64/mako/runtime.py | 2 +- .../packages-linux/x64/mako/template.py | 18 +- .../packages/packages-linux/x64/mako/util.py | 8 +- .../packages-linux/x64/psutil/__init__.py | 129 +- .../packages-linux/x64/psutil/_common.py | 203 +- .../packages-linux/x64/psutil/_compat.py | 25 +- .../packages-linux/x64/psutil/_psaix.py | 10 +- .../packages-linux/x64/psutil/_psbsd.py | 14 +- .../packages-linux/x64/psutil/_pslinux.py | 47 +- .../packages-linux/x64/psutil/_psosx.py | 12 +- .../packages-linux/x64/psutil/_psposix.py | 6 +- .../packages-linux/x64/psutil/_pssunos.py | 21 +- ...util_linux.cpython-37m-x86_64-linux-gnu.so | Bin 89424 -> 89840 bytes ...util_posix.cpython-37m-x86_64-linux-gnu.so | Bin 48184 -> 48536 bytes .../packages-linux/x64/psutil/_pswindows.py | 212 +- .../packages-linux/x64/tornado/__init__.py | 52 +- .../x64/tornado/_locale_data.py | 164 +- .../packages-linux/x64/tornado/auth.py | 2364 +++--- .../packages-linux/x64/tornado/autoreload.py | 728 +- .../packages-linux/x64/tornado/concurrent.py | 528 +- .../x64/tornado/curl_httpclient.py | 1144 +-- .../packages-linux/x64/tornado/escape.py | 800 +- .../packages-linux/x64/tornado/gen.py | 1690 ++-- .../x64/tornado/http1connection.py | 1672 ++-- .../packages-linux/x64/tornado/httpclient.py | 1562 ++-- .../packages-linux/x64/tornado/httpserver.py | 796 +- .../packages-linux/x64/tornado/httputil.py | 2288 +++--- .../packages-linux/x64/tornado/ioloop.py | 1892 ++--- .../packages-linux/x64/tornado/iostream.py | 3336 ++++---- .../packages-linux/x64/tornado/locale.py | 1128 +-- .../packages-linux/x64/tornado/locks.py | 1140 +-- .../packages-linux/x64/tornado/log.py | 672 +- .../packages-linux/x64/tornado/netutil.py | 1228 +-- .../packages-linux/x64/tornado/options.py | 1452 ++-- .../x64/tornado/platform/asyncio.py | 683 +- .../x64/tornado/platform/auto.py | 64 +- .../x64/tornado/platform/caresresolver.py | 178 +- .../x64/tornado/platform/interface.py | 52 +- .../x64/tornado/platform/posix.py | 58 +- .../x64/tornado/platform/twisted.py | 262 +- .../x64/tornado/platform/windows.py | 44 +- .../packages-linux/x64/tornado/process.py | 746 +- .../packages-linux/x64/tornado/queues.py | 820 +- .../packages-linux/x64/tornado/routing.py | 1422 ++-- .../x64/tornado/simple_httpclient.py | 1384 ++-- .../speedups.cpython-37m-x86_64-linux-gnu.so | Bin 18192 -> 18136 bytes .../packages-linux/x64/tornado/tcpclient.py | 668 +- .../packages-linux/x64/tornado/tcpserver.py | 660 +- .../packages-linux/x64/tornado/template.py | 2086 ++--- .../packages-linux/x64/tornado/testing.py | 1580 ++-- .../packages-linux/x64/tornado/util.py | 944 +-- .../packages-linux/x64/tornado/web.py | 7178 +++++++++-------- .../packages-linux/x64/tornado/websocket.py | 3326 ++++---- .../packages-linux/x64/tornado/wsgi.py | 398 +- server/www/teleport/view/_footer.mako | 2 +- 308 files changed, 30938 insertions(+), 30145 deletions(-) delete mode 100755 server/www/packages/packages-linux/x64/PIL/.libs/libtiff-8267adfe.so.5.4.0 rename server/www/packages/packages-linux/x64/{PIL/.libs/libfreetype-5766911d.so.6.17.1 => Pillow.libs/libfreetype-69f25d5e.so.6.17.1} (90%) rename server/www/packages/packages-linux/x64/{PIL/.libs/libjpeg-3b10b538.so.9.3.0 => Pillow.libs/libjpeg-ba7bf5af.so.9.4.0} (63%) rename server/www/packages/packages-linux/x64/{PIL/.libs => Pillow.libs}/liblcms2-a6801db4.so.2.0.8 (99%) rename server/www/packages/packages-linux/x64/{PIL/.libs/liblzma-6cd627ed.so.5.2.4 => Pillow.libs/liblzma-99449165.so.5.2.5} (57%) rename server/www/packages/packages-linux/x64/{PIL/.libs => Pillow.libs}/libopenjp2-b3d7668a.so.2.3.1 (99%) rename server/www/packages/packages-linux/x64/{PIL/.libs => Pillow.libs}/libpng16-bedcb7ea.so.16.37.0 (99%) create mode 100755 server/www/packages/packages-linux/x64/Pillow.libs/libtiff-41910f6d.so.5.5.0 rename server/www/packages/packages-linux/x64/{PIL/.libs/libwebp-3a2aeecf.so.7.0.5 => Pillow.libs/libwebp-122bd20b.so.7.1.0} (64%) rename server/www/packages/packages-linux/x64/{PIL/.libs/libwebpdemux-e9ec482e.so.2.0.6 => Pillow.libs/libwebpdemux-2db559e5.so.2.0.6} (98%) rename server/www/packages/packages-linux/x64/{PIL/.libs/libwebpmux-40630b44.so.3.0.4 => Pillow.libs/libwebpmux-ec1d5c76.so.3.0.5} (57%) rename server/www/packages/packages-linux/x64/{PIL/.libs => Pillow.libs}/libz-a147dcb0.so.1.2.3 (99%) create mode 100644 server/www/packages/packages-linux/x64/ldap3/utils/port_validators.py diff --git a/client/tp_assist_macos/site/index.html b/client/tp_assist_macos/site/index.html index e92c53f..caecd17 100644 --- a/client/tp_assist_macos/site/index.html +++ b/client/tp_assist_macos/site/index.html @@ -32,7 +32,7 @@ diff --git a/client/tp_assist_macos/site/status.html b/client/tp_assist_macos/site/status.html index 05ac758..f00ffd8 100644 --- a/client/tp_assist_macos/site/status.html +++ b/client/tp_assist_macos/site/status.html @@ -45,7 +45,7 @@ diff --git a/client/tp_assist_win/site/index.html b/client/tp_assist_win/site/index.html index 45a30c0..400afb8 100644 --- a/client/tp_assist_win/site/index.html +++ b/client/tp_assist_win/site/index.html @@ -32,7 +32,7 @@ diff --git a/client/tp_assist_win/site/status.html b/client/tp_assist_win/site/status.html index 05ac758..f00ffd8 100644 --- a/client/tp_assist_win/site/status.html +++ b/client/tp_assist_win/site/status.html @@ -45,7 +45,7 @@ diff --git a/client/tp_assist_win/tp_assist.rc b/client/tp_assist_win/tp_assist.rc index 92a3f9c042955e5f2d5061e638c3ab209d2ff5c4..2f7babf78000420feb9264eade15a7a3c1ff7a1b 100644 GIT binary patch delta 80 zcmez7^1x+-h$JKLWMN6e$vu)1o1-MZFtUd*1TdH|I8LsY(VhHGnq%?==?RmYWV9xG f$ZX;_VlZIPVNhUzs@be4tIG(K6xp00C&mH*+$$Cv delta 115 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
TpsASeG?;81tT;Wd00tIV2Z}!S1G-& zJl>n+yMlvxD^-)$;5y)?(W<3RA6Wslb7~e6V`MXbvcgwJHnVnFSY*mB7F%H14?qJ| zw(p1bNJi`;&7ASfZ5796{-QzXgGYc@WEk1ZA7wIysEgUq9GXm2+?dQC^deRjEBYya zj4hl4>Xpg-5qAH>DwePwDCRer=PUrc*s8P5N1w?&jvqC%!H@?rXYSNojjU1mYYiub zVhktIL~AH4WjGr>hLhh;k#97djT$tXF~+cnK`lK3Bfp#T8T&3k+~+rlsf^@rE{7B% za${o&$Tbu-vx!qG7?o$Sv^AGARedXOMC%rtVNC8;h%Xvb)z+YWCYN9QCb#A?fhT{J z;bpb8;pL+k-VssB=hUzvDePGD7!_ii;C;$)Il;SIgAHC4l(;AD@T=_KqN2hup@Eu1 zl(D3~N8L`r*kxs`Vh>W|Dcek@`Rr>UL}QvIqc+U~)0pOUq$W}2!H%2t z4cJ~THNih8*k%-XJgg;~MF{6aAw)u}u}$*ga7pD>Aa_%OQ-~%fA&GSXFjZEYRS(!g z_fs1(dq5=-2}u`LY)pFLxXB$3up{_gvM5?5}!ndR6m0I375NOsMplKY= zv!HjgS0Z2g0e!}hK%*}sXyo;Pb_N0c94IkDC=YC?{EexcM?(x-ngjvI1VBOa5I}xX@yNn1n!iZGHnJMF zYxcvNbZZW7Qclx-SXG5v3Hj-6Q*o+E2>C$;b=RL6qLnHxgckB4GoRtcY?tBMIbcE;f|qBwLB!&MT_9=-uRJZl$1*FG`iTt1_!{4Mjd|UyFV%eBF;9qq3n+ROhlhz>Ehzh|kP|OId$mylgpoLYob#zqh z2)cdP6;i>TUq7JpUuQahnxDXmQ)L{hN_#r|dg5eF`%ehhG<6#Z>9=SF^*fV~4*Qm!s9O!>>n&Uq7uzQMgo! zE9(YLyaKH=8eE6|pB=uZ|ED`J#6bx3TMWAdHQ1@NN>|J}>o3ugu}*NEzGN8@g83vO zw(4uDDotCCK;yIB=3UU`zy|4jIZeS^VVl@!p1B4(F7Xi{G;x*-aa+7M&hi@iOV#Hx z+-{0ayP8EYJko>$+Sj|mFiQSzCFc)$1|M-f>}X;i*_k{{_gLCl1mV{j!sSFc)8D@| z7g#j07qUTe=pn8vZl+rtFrF}O;KcC29JYLCYp{!)N*o0qL}LoF^4YB^!NK*>2l>U{ z9YP22KaaI{M<8AP5lEdQ!xW6CG)ED?hDU8XZuCPRalhE7ZktDscA)e|ls>A2UJVUp zU>!IXfa=jSrPl)e1lc3mRs8+Ckc$IPsuaOW(-$>e=%A}>jkkI`P3hw@jc0ZV?-CwW z>z6**OG6y`NKG6kI|mxhxE&!zBQWT}c)u>Yj6=Zg7zZm+EY&o_keM8YbSkTKr?N_o zL8tjVr_I?R%%F+VYKS4mN;Sk-iNOV4V6!k6X595ZV{jpPJ;tSjETD1e=$ACr-}f0! z$Y=`Pz8DuCm10H{ZDL&7#kjP2MiaOgKC+;V#-$y`rH#g=1IDGpkf)7{NDCs&g9veX zXy3s_0sA*+^Heq?M_eao)v0)KVq(^#HS$FU7xfU8dXvG$Y8V%GIjl1V5pn(7segqR zcCevJit)KqgW*Vnqy8pPK=V*fRU1EB8fz_LBehxKvPflJ-_Zs7Sqv>I(c5mz@EwDS z4`fJ2Q>Zn)BF4smU!?{Tf;N8+(Q+VxN}7Sh54&X`@df@E!!jP0PZ_n}av-4@0>XcR zqpg+Dq9QtL%E(3;4zxvU$k=Q#Wi2#iH0&6Iwg|@*sQ%o4Y#kH#e+%9JnDj9uc8kyI zy?TXMJ*m;>uVjtH`YXKCf_KvJk%VaZonFINb1l+ZgWE|);scnhjK);YCen`DR=l0I zk6)CPG0_+49@Hosmk-bavdSC^Y>%$uqZta!$FmwS84d7)c4TmZFCkbjsYp2GY&Lhzn2SH?z$HM*ktJ=a@JF zJi>;+w}yor8U)oVz4K*F4*6=xnLh|QbB385fYan$XUO63%8>IMTN-tzAMQMZ>QEa3 z)sg*{RbWH;7FVeiZ(g`u^M(U5L(I%Uh~d<(5n{h>N_Wq?HL-^lq06vb_0W9pGoYD; zL{WPVM)(4{*smFNjmA`BIfffD7}2kt9DQJHqF>|a-7y$x!(c=@qNhB=kjaE9!w?mD zi79i|h7NuzKXDYo0SHDRmvIy#{e6q{_hRK#m%lo_%lBAp3^J|;BsIw3Q#LkeD;vXT z7}h02(mchEy3|tfdFgKo4LoJb(sz0FCef8V!X@rMNPuXv8^i@aPfW(!ws^%&xk( z(Kw}Tm_ciq;gmK3Bow@4Htbk8pS7eBkx5=5cYpLI&qO-Hzv^T+n5N>u`Xd7CDXKq0 z$)RGHlfwWqdPMXH2QC*cl+O+pM;7$r-1gqAisoo=9FiDKl>l&|`QC)@O<5J+cP~BS z;&)t@(+_#kV4<_E`Q>A?+jpd#U}54JAlD>b4HAn%Vm6K|2YEc<4e@GDQh_{F3~~^+ zhL+A-l{k+1&f|n4NgwDNYLkQ7WH0$1>lB_b9QX$2OF#ywL*z{yyor_NB5oGi)||>A zcjiFy!kr!+hZ=xE(isVZQfW-Ut|DPjDg%Rt4qlO~UA1cpc+A|S;$K|edNepF!nW6dv& zyX7(1pseE_XE&BkcY~L;8R)LEY(*R;Q#WSW$_0b$bII1ul&MW&7}ty3!)wS%2BE`G^T^+Wo}D@@7sj7$w>hOSXmIm#HBbTEY$pB0h$1UFPs-p z^9B+DL!!yQn_mC`K_UQ1|BCpRe1&VB;p;AZZPJmlrf7L5&>d2~J6gJ{`Gvw!Sa;Xc z{Gz`bF)^D!O%O2|FN>N`LlY=li$K}htU%3CLx|g07BT3g!%SpV7o*NC!YV|adlPry z5jnhpCxocJT_wroj6pH}l>NALe~3Ksa*T#){-A=Zp z@#}&#-7zu0G=3fK<=0>>ER*_tQf8Q>rRAxhJQ|k1)EjedktR@$O}{{ETNB%vZhdjL z^|2Lsi~5VP&2@TUuvK|;0}*bh_aaI!0bNZm0W}<`#7>m(wA>D9xx1pJJ9W#A+m@S2 zVPBWsEAFJHX}nqhru{Z~r;PT+tu4jfT-vSe!SNWN)nno|a*-C7;o#!>>Ho>|nZmTL}C5uX*a0s;a6`^UKBA+nV1V*_=97m+QfHW0aGq0Sq5!dsW#T&f|lX zece-5M;wM+wi~qCK_X}e9i^`~zktyaUb_1YTpX;u?%oc{{-EX`Z1)GP-a(uHzq!YA zhy6Jz6OS#1AE4r~N8t%4CwStqWi6gz{{?t~GbO7X4)&V|`%Mgr4|)v;y@rEc!$Gg% zf4kS$X~@5-fHHvITS35rNe?G&?8(S{$r zmi844X)!NR^frbhKiT5oDM6kU$b+Z z&NHK)Kt>ewWK4_qrLD3H)cjszCpy;Yl~{XZfr<33865}WvUux&^cY@*um0iCu2r@Hmc0QH$?h zvwg$g`}7Sz`;Dh>_#R${yKgus*K+; zHSoYL@lkis_E$CYkN!k9lcGP#@`lLNrYLy4-mRu~SSJg$w>8SFD(6X?pGJ6bzCw7=R3^3}@->7!9K?nYQl1L6)4hwrjrKRVGKuN&!3AQV)ah z)iVxz%sURtFknvbvLwBtg6BVhx-`Bjc5)nz^*AYaMF1=BXENvXxsO+I0^5`E?q_Lw z4h~rT3{20#wLKnoVNxIKbGmTWm7e8K=~;f4VP_o}!@37y80e8TI#M^aDrqt|i6y9& z`c&k^_Y@~B;V?&Fpt~3+c2N$7vUbUiT9Ct0E^=+GlEOIgLFK|;Kee#uZR0l;ID1At z>jw!xO+a><%yx}W;i$LG(w#`K7aP)hrv+OAE571#NtQh57R%?j=NT~=x4C-Mids3y z(yxqM0@tR3TOEn9P&>n|hZVP)(2}sxySxci!{U)4a0|JH&Mgnffw)D+da`zC#$waG zl7eOIxKVFAg_fo30xQlOGE1cqlhqww_BKTpm}Ms~dX=yNE9-b|jZ?ZBE9>sW%DTG# zl+d#GN@>-1a@m;PtlSWa)+)_HOe|Ig{VPYE)B>9}(_*=%1{vAXce*Vd>|m-X-mQy6 zeZ9rma@#zuzr|k)>MTg1&I6T#@V&SoDJccL9;nnNl&VKos!x5iyh*G?OSE*8wh}x0 zSP5=c_UJjogIv3pLH}*KPgwOhN)E#+93xV5rz@;T7h;X-fLfkG_LtmJR$CiNcNG}C!9e)I`A zF~x6YogG-xg9FsK1ah};QBNomEY5YU?YW}#9vh(<$-^Z~EU*xH?792h&`ch11*Y+U zEBxSqEB=j5#9y4dKS6$C#rTP?;)`k{SOaRduiykyBtz9CuG>!@b)p0ebbmnX@jfbp zhzI8=kHaAt6w@wL#Cu!=R%^+ZY%EYM#L0x9AkxY0i#4ZnHdn~j37qInjIycCaUAy0 ztL0i~ni_;Df2CG#Qf7KpnI>)O~m#44MN&~G`K2Z*#ZcNXv{?zU0* z)70EqII8_n=#<O#^=)z^}F7VaSxeK6;cFJoM~74Sp@bH)H~@W`Wbd*8}|B7Ci3tQsC$Lz>mQl zSsMJ^1ivN|_&n3dyv(^1;8$Dlbq0I^z~j_%&G^-1e4U^1!EVd-{7isr0eGbaTx|e9 zP$cb;%QC_8T21sy5?!5%=n)xU$Cjb70eqDKzgfr_Lp0unh^J`=v7D$OjazZk4h*_F&;#N2~Qb3tjkJRPZBcQt6TQNEMN2400Di#+h$+=3pVl2Um zF>|Jhjn0H^rm9$(7n>Z0rm_9-NMR$fL1N6Uv9ScPF>@wthh)N5g3PEJ4~?@zI~y-X zXdiX4L1@gav9ScPF>@wtV=`eo1DS!1CqY?klksA(Z9RfQV=gT;=A_V=DNSgdR%nN2 zLNyU3fa+BISX2}6Vo+TMRIsm|N@&cjE5;J67&B+8*kPHljYno+E5?t-HV!Wa+ushi z*dR3K*4S8r*qAvJwm>Fqg~$wSWAS6Ljlqk-w$#N2p)t3{#uCKF%zkVUG3`7Bzng#J z{L{%l#YebZ`$ZU%^NdP;E|e7UymLy`e&nFReZiXJE+&;Gr!D$>O6sUdy&IAq=3RKr}Hc@rT zyo&c_bb&l=Xo-Bhh%Sffr7|)&5Bvdx3-A*y-Og(gVw%-ov6EI|e{ zv!B5VTgEn+0w;j27e5wT4_*wmdjht_0~>Q|Y%D=+%$x~ZMl;=o%)rJ`t;H6{i@`Qc zVe3Z205;~<*jR$tm^l-+OdWEp6PbZ+H-0R(U3f9r{%{!UX8Z~uWC4wkg@};(eF%pl z*Nn|{Cm?~E4*XbZ+VNtjIajC=qkv}0+?o`YASul3BSmXbMoZp?%)quCKNedHUJSM! zhg!J;8*^)HEJ19{oC#aTZhjLo16vb*EVf3x7;IN5Y?LdoF}KFX62!*LnXqN@<6>)( z8Q9k0$6~t=F9zE`$9Uxmge;&DvJeq6zYpP1eAq!}P zEJTFN??dR3>uzm_!(xZ^Wmp`HWb_xpfCOrm;>S|65HE(B+eg!1U@q-1Fem*5X6n~p z$mmbbM+u<17C#o%)p#+eCI~9#(x{k|sF*1YmFrJt8b!n|M+u;sjUS6@7G4ahheokh z%%xE=Cs8p|8Y(@m$mAuIAve%mh98S&CSDAhO9c&cX*A49G|c2jBl1RUtFkwD3F7s= z>Rd?O|LZsQ{^l|6K6dJuUh+es%svL(3!IZlKZ9pf)D*xUP|iW#lAPpa+FkJY5*n-P zTMWtT5O)LMe~3$AY~-O>MIP8`Bl5sL+ga6%$~& zjzcg29Ar6$47vsm88DlU5Jcg?M5R-fbEyM0Hz6T$m83G8FJzz;7-5IF&rBgfHojVA zkcz30!A^_-JLEzLM1Lv~Cs70Ai$_A$f;*K01Un%8Ac7jckb$tJP$P0}h6i>VU~jju zTMX>iM@SbS{E_i1j&PS4(sme$@)n2T1_`3nV!Gf9MZ6?^R|LK8^y8(jL2DV&JWxzM*S<=DpDh<9G;N^}kKZZyR6{`@ILk29xqupW3 zGref8a-yvqUn?0s@3Qh!Z_B=)O*<#DnLpWqTkB9VaWf8VN?glRo1`6cFftx*T19Q! z>(mL#ML^p_d{7NW{w8A(3`X9N&JKeS+)Hd)H%|AuPM6HY9=TKwR(mNbhdt-me~zKY zLNQRP#jeTqFiAouicb=&A*-0#&nh+a$fW#oxd^ab>&14p2is|aO*p8=1M~4wBV-{W zWPTq)ZO1${&7@?p%TW%vXXD4#bQWHWI{YTb))f9Db8EybLB!1LL#+9l$%@FOIKXxp z%2;eO@nW#e5NxKVKv;&48X*f2A@lnX_N}Sw!nrCh2fYJ#2*oY#61*7PZP~V_@Tg|s zi$=^6M9j=S#JZ-L%yDcgG6UP$__5f|z>C55MZsoj3WO}65wZ{wGQSU@Thp&=+?lMM zoc0aelTqB_o`@HN`}r)oHm4H0M5!eweGX>IZ2vO!X0c-A2AT=@v1rEQ#h_UtXqZc* zVNRl9CO;bCgLZ9>w{DB1+P7f0abgaK6O#oP%I+A~Wwdf#{)7{clqt!9>vC2^85fV` z(NMYjTpg@!CYdldA|?n9%B=um9h7<)5KJGz09RBw>Y_rquoJFH7*xz~Vr=bwoea(^ z>1he(Q_e#o=0-h~@L;qsHzbn|N^g&GKE)%W_QHdDcW| z+HHHcfVTs1y9L~40MB*-qyO5j0k;!yTPDEPWLm&Y0E}5g&4*0}@JJUhdafo7xP^c> z`2k0QRn(p05pH*N4f-AoVjw5w3s%p~ASVpd{Br8DMPwxPnC@y;@Dg&Kt$iiKVKwiUhsrc!oe5X^$12yF%AEC%Wk0yIPFJRpm09brj3TM8TpIuww~uMScN@Sj^jg4} z&1leo?<3&5`v5l0-m-oTfYw`}s}0bV0E#<9wF=f#1y}b~!8*$=-SVJZ5Q2BIy~-1! zWUI>7muLoRHuQR$B(LV||E@3I5{|NHm^9e{uf_vRGvfjG)J#kux(!v#eum)%yCFTX zndlHVg23pM-0jNNHfJ*+u+4e5_Ov{W+T1^8XA-@0h|~X@>>O|okrd$+6J9Q7&{-Am z!j_ptz_xRUFT73p%YAUFX*X&W*hCfZ&msE2Th;Y~mzhL>w{wUq03H|DX-!y5O=w8d z1dNt_fNcZ!0+u;M0JgJ-lZ0;LQrByu?2^`jMMVM1n>;1zGbJD?iW_q>#q?8@P}`M#joqBw*WF$Vmdb zRx@@b8C%_#vFI78863-Z%YYuO%l35g$@A{>!P!*cgYySI_=mWgLci2J3>}Y3lcL5S znnB~uthwbJE;g2l@ywjFv!QUSmjaL0rr zq=NAIityPU!jA*tL!468Y|@TQq-!C(7>wL2);gHkFKw8C+XS&{sU9ZRnnQR*Tt^YS zdqBVK~ytl=uFM3)GLZG6qo5n%63e zHjuLt39c2Rkmq*&9|Cvnb#^!V+!@r)^!c{Ba-Ngz7!6_C+0nhNb#@m2lhxg>)w!Lm zw#~20K~@)3No&pX_JwQRzHmW37B$twF})I6X5`sY1$n~ormsRX9bWKG>Ft{56ymm9 zTp`cZK;Gp#!FtoBan+w(_->ZNSYeyK#nwJUS0+o-*pEqg3pUFJwkmp9`+)*m!TPk$ zz!iCe7I_<7j_rVILt4iQRIpK2*lZ_H(N%iGWfHZC1nXTh=n?k^MBLUW!kuv~q}L)Y zs6(ew2V2NhfAUnrquw&}$#fl-PZ_!n%O{DYp++`}R{93{v`N>fi8X3Ws}cAFEs+`( zdn!ZAX7phwi`>-uHm&1|*PbSA#qJ+}z`9H0>w+Y@t=}Ctru6pLrSV~URu=lTV||+L zox9mP$NgRV{B7%40-Xou^vgFATSYXyWdoI)3{rTXky`xShLnjq zWui1(WsPGCk*C5PW#v;7s&%{&Uv|#UzBOB3dd7V7| zX6aSGk*;E45O2vtZE!(g#id&(kITx6J5mWai_ZD;!4UiT6Y2%dkh!6D>+-y;P;5%5 z8b9Vj$IqhI5j=_AKx&G_%2QhohdXSu-PtXi0&qYm@7^-j`*Df-m_j88fxiWT)0%IZ zgFh9snL_hzzUpVmaRGCjdb~*WU^}rTHwS^N};$x0(g2npZ?T)w~-0 zh^pp0;3q;FL*E|=i(1q4jgcx>zUY;0ag(7?umD`6Om{6+=--dj8jxXprp z7NU#h9|qiNmd5I$(Y7}NUulN4OCjx3cp7WVc}qD@t3SjM}}hgM?dYckRExJ zlwm2Z;K$($<8huOYTbwhK3U)2Q@I}|l=9dghk?=HmXg!2NJW-}{~WBH#2KD)2`93s!gK}`@-b7~~d zYh*i-9Wb@QzX~X2%DV&W%l{f!U;0;dQX*b_ot2ay5n7Gez>q@{_8Un4Z~)004j{S1 z0VLb!phiP70{hR6 z3sKlwZ5yRWMxJLA#y0x<=)X$`;M&GlVP}0994uhVm&9>W~Qa3-5{G=&-V&B5$z5SJY zTH}|hFS*!KgZOqBmn#cfgf`_+p_<$x3R<=EaGXNMo~JebpmGl4q1KWzR4vOZ2kTUn zOhgAjj0ADy;)1hD}>S|k$a&eu?UIY ztximY16>HBl1JeiI_5HTWayx4nwH-qeWcw-2fBnd(rIWTou*?aopcj;0W3RNKb=r0 zd`~4Skpr}jrGV9~s+`3cbA-5LI2~MFRW}#IJU1V^8+j_E4!3J#xjo5H*`e z(|dh}6nqBoTb3uUljX@d%STg}$0r^_u}CT}P<<5^DMwNTf$Fo6lK3h9;L6LU_{iGe zlc)mqi=)02T!kmKz%+w#u6tlT&UI({85CqkC>v)ub3-C_y5TPlUv@vX+mARCI?c`K zX-reV3pW12QW}2j@1Z046f$hc(|aB64$*(d&vgTBr?#p_DWCic@?1Ty|(@a5iU#{s#juo?h>;D5la@&J3{2O8Mv$&Yye z?1Z3@MVRzsMQcAUU-gj8aO{a6Y61+0O7GPi zT8}7o;@1pSqhj<>*JG^-fZm`{(y8Zao)Y{~-s5KyE07)DWB5a8CE@(UVpBR+^!rMU zM^Otj?>ly!?rs7st;;DCzBLPenZL03N&C5V9Sg+cY{=Q&^V z=;!HpvHA)4cU5bI3y2UpfXaC_GN-~YX;Vb!yg-vS#w3{9T;=E-rZzvnRVSF*{6k}_ zOMC%T8Xi(GftqYLMVdmO=2cxg^8L)elkb6QJ?$*R=2$5XWG{br%Ms*^i8`O!(YqH1 zvc3z!Gf_Iq*Le6-ju$U~Qd@Kt=IB~q@uW_;Oeehd ztWGd|S^Q_6VED4SQzsa{{QHYK!SLnZcB_QCe>M}>C zqLd5bD6ULbC^;gTSC`DLlW)}2dX~~Nk&rn%MXh*;WsC6>mQMjgasTCs4l}};&-m7mD(1BG4d)5e?4)p{-TYM z(Y?2Sr5QGZ)za2*f~o#pD1?ell=oOs^Lmvz@pGd;v7!_2(P`g7T0$?wP=K;4teN=| z6bXQ?*MOdE)L6gb!FsyEdYa07zIh*~s4zl*?IB&*LVrhPFm?Lu2Au&$Y@Mdmiq;64 zYLHhko;X@d3IRYFqF7P&I$e5M@+N+@CAs|9n&65r8|vQrt0+*ZyrYZF*mk;i_Sbe& zhlg{LMq5{E^{qPqB`aA!E=hKD}E2JPK z4PQya$iR*&fimR-UUsZ`&ak6Q@lursM|996N!?>;1FR@dA!-tNxysqGF?(;;-caCy z9lY48`Q?II9HgZDOgNf1{-JLTQ%*$>0D!>qcodI-`4B2A?pGshw6;9AbhXnRayEw$ zjCCHIfxjVV)l|O3O8C-R(~Tb~8GA5=NAWN>E*DUHLe7piLib|PB8#)1IObWgTM(yB z`Wn@T6HzL~I+u4`O)YVQtt&v4a$jrE&_c0QmlLKcwdE)#8I@|=fkhcHe#Y82{G|(( zwdXab9g_57?xwslU=F2WF0hynQJ7g}L$C7;>-A5x2KIkHWxZoDX27-s$@ZYs9UC?H zhO9S1!XV_EiZ-Vvj`Y@=F8n2#*r|ah^(~uA=)!?5?;(8eNB=555RI{1 zw1&#jpJM(y6gZP&ek6_L>!EduCM`%7bqqqX!Vy zQxMj`n(@S!Jeu)Wa9+{!Pw)b}i)<}3sWEG>)tDJYjs1#GrB;g1C!_eiuHyG99;yap z8WWolnnJW3i;2=(!>>^x&I7ou;dUAdX-8)Udn=B_4q+k@MlDmp_Plj z08y!YrwBl-=u~VxrMxG05$p*W1QYLIU!}f-3D53r53zTPR@JfFvDQfPi8Y!!8#))8at42l zy`Rq(Zm_h*C!tjcl>87H@)l?#v&I)8SO3%vOp>ZW|5W|-t3uUX{4rFW{|9UAyb%sz zLlC}gF`6aUtj42N_kl#Ubto0BnvtKCH7(e){7Tj#TFY1F^791!{&`NDaOC3(_j)hx zf1?3mA=LYW>|e=LKRd2M7Hhw4)G3r-PfLPgC*bJi5S=b3M@q+vj>CedkW(ia2rpK2 zze-ulB1~y58HbvvXTe55k8c;#atw293?b{5FKUTQMuQa3M6ZM!h@3kgODE?J#1H)B ze0V72O!Jbn+DlG01U48s)F@W!pTCz%9VykudpWq(e_8rkRst-(UKJn5RESdf5IY9M zuX|S?nClf7t}_D|F7Q;Awofp2g8}G3{55*AKLHm@l+&r`cFMUZ zTk9q{vqrs3^xj%bDJl8-T;XT?0IY<6)?ZyR zlzkS;3TD`{^PqG4Adl6a;#NC;3m8Kn`*Ky*#&XYoREn`#+U7;B!Jfc8#Oeyg&eBqp z6{@773)y`+_Dic+q^sFxW78L)%a2cd1Z|Oaj8oHLhB;s*TH{wdAx$*ytgtrA8iC(I zn>0tnC>6Ez!;$_ax#uQ2wUw!Gcw3RTX`QElh#^M*TY!HMd1Xp%3WT%1w;i?j zXo}Gi)n(aUS*@k$4n^zc(;ABO>n1BbLTc4Qv60*KhpG5r7cRJ(*Dp*d4QB!xSf{|_ zu{Ayx!~^2KU=`+Sr5~^=sF_Q@Q&(%yM(Z>&tUBuvn#5We((E!5XnzF=1FvHS4wA|y zs-&W|s#_{i9Adxuib@H&DgRDK$f+xHnbn8lx{1mY0BDOPS~VGo&d_+RGUvxpJzXMN zB`{U@^ZHh4)mQ;t*_~A(k$walTT3QRWz!cA1aGHa?Y_xe5NBkx+vcGL>tqa3S~K7s z2oH%~7{dk4j;)j`8>=&)QAgBl01-lDh962eBAb*dXBDo{bTkU3sxKTb)e24hTjReI z_X0r{VW=TOSEz{!n7d7^8@Rv13PP8MF*u*_Rbe(Djjc`uY-Y>;?cc;noW~#IB;F6T zmL`|HSjuEnpf2U+obCiw-FjuqK*|k zuTmDeDIZf!dZ|f?7KN@p5t6T~GAXg5T9v2Pq$rM94Qj0-ZvJP90=qR&R8_4mI;Peb zLimgVYiHX-fwTt}g-VYlcBy00U5XG^$hrw-$lC_f*5s6LLbf)ry^M_)Yvx*mU8G7! zg76VdB-ou?il^>q8KjS&k}j(D*;EcR_q(LxV8Le6Dv1za`B{j#$$G@lmSw5&>H?Q-gRQ4w!D zFiIt6%v1xaBC+_J5XB!+akhG^`cGg$LUslAT<~+%3YCys@j)bjyCtwYX!2wDnQX-D zX&Nqat`VOb`T1mcVDcQT>L&59KAalH_o}#lr#0fce8)%>(DM_I^P|8BHnj%Zx!xY9 zOCf#$m^W?~TMdywEXX}k18AgtVnxSZDwZbea*w6??G`vU-w3q^I{+7w>*S9vCUgL= z6O2EK<@`F;P$MxDO1L%7t^nvx@}nzM=)U6(2h9LF9LWRdww@2?Tw%bgw&vn9Vt|*M$xLJ)uz5{ApvX+3{Fxq4kJ^l zHMLr?)k<%zrdBb=2NOglT5N;QRIQDct7jalQBkKA<^TJwwf8w^CgI_g+wc4HePqtr zkG0ocd%gDBk5g|@IF#^E?oqNJDP4-D(7^k?2B=@Xj_|U0Q0aZy&+{>#WUCFLWq@KM zCAn@)Z1u`)L_UHWuc?B)}67{?mt}`u6*=vB4TXnEch~6wc+sByuJ#75o%;~6_ z*VrTuE*6V*z2+0?l}nPk$yh~R`YkA~NaM#v^&{}NxPA!!4sI9~!A$}6C*W^!{UrPy zJOC;$ohqnog@y&?MAbOUAF`-)q2Jg6`mxt!DUhq1w6PBBJW(Oajb7%&WU<`MN`y|dmY{ZzUv42gC^+`adQ!)FFAG7y6M4SW&(5j0i3CMy4 zMo3{>qVuvNRdWtWW`643yaQs>-9*Jg$V}Fqtp0mDYVi9X$l7S@%3CNNLXa#0_xWcQcWL9V^4pVWd zF?kkN*zOkwtEv=Esh)rz$7y#v4+K&uAmF&p@PksWHH72C!tt0WKQ_w|jQgb(lXazhM9#iX?hjuLF+vqnR@HhKM4y3DFz>NtWU{#gxD z)*!VOsWE;v8{0PwembBFWOGHjrUJAEcaSQx#!_-U*e*>aS)p5^f>#1r?iIr-x(6a% zQ%P{H?@}R_LxAU5aGZRbNcV&FT^;ri>Pmb98@Li9>uSMSA1P-&57mxHMg~95b=WV2 zYB>=GDLI8Dw`$3|wB$yXyiiMWxWm!j!4Q@D(^!*QcO~}A@!7=Q)6PL}aYtQoz2O); z0k~7(RXxBTt8(t5%3(J%JfaRLIQTG2W)qO;R;qIVh7sVSY-SqL@Fgvk?A8i76ue0b zqHgkOFZE`m;@(gIs7ps!q)4FQg*iomB(vCo;qOZa(7E!hXN!-@8IYfkmTaEG*;ee4 zRoLkgPBgdSrz4Ccx6gxwK+TdLYvyGnrWhL-^Jd=bFR&ZY&9mu%3FF@vR@cgSuHEvg4ATYv=nlxJpLse) zeFlk`s9OCs;g2Wq<6Lo{@JF}u2lwgFP3sb~Tib5uHYS^lHj;qwpMWk`Kr0C7a07_g z{`H?C>c)ou8nzp7yIn%OnpHxW{HV$IrZs5S#wgGooeIS$t;~>_8y=x{4-Wtj@F|78 zD_%2RPln(LS{Fmj;%R5YJ?tTFXpdd962-HpYT*i7cow(uw8tY?qt6t6tqLGBCWoAP zduZtyK7bG1n+K2uu=!;!Jg4Gd^RL02bP$M<D-Ai%6?D4NG})odO4pQuiE1Uur=ojSEBQ zQvk0&py>)|u^-R`7to;w5T)UEhoTv5T4$J(vci!d2Vf2nyodS&FB5T=P+x4T(bUjH zcqrcd$Q1Mtl8C)!oVnsWQ3`Vo$zFn)ZlGq!{92f#R2Z7#Prn0; zz!TtBx*j9e%4AcqL8oR2cT?015l68d<-uWhe%(i)bMLpbpH3s@BYLp;EMP(W!L*fl zRDZ~mDp0PWA}?Rq!V@Y`b{_NHlrHn80-W>Ly;ADtwPc4jUrbKY!FkPZ6mNvKR0e8> zIAE?y2Fd)`3<^G+Cg>xCgR{RbH9LDt!bK37QqJASDK0xKID+QJFU8=wkCmin_^}!0 zV)G&Jz;`|9>yZg2hkAp{FM*}Yp6TzpV!%1QOX-?{+WLvM<-qQ^{Cx`)g!Vj+w$h9&5~_Cze7r zz~*>L2!xv))RfUk$xb!Ud?2nP;5-mlYl;uVC7MDI1VAY+{~y0E9THp_8tjgX8p5auUkFyZ zwz!9yWaE9y(4`|ePys;~^@GCEb+f;zt|%RhFdU37#>TLRu07TTmza(QuWTUN=mhGoL>hXDpj={R5A)@atXY%& zDmF%wEsU>nJI4Y|tGl3+qOO?OG}g5JD*`~@>o{~OdN~f;vc1Jg&GM+_Iy0MhqOvkImI9}Ljgjq8Kk}aNN*Fe|4EiN9KEl3YdA<41fCJ{MujjDV!I!8Rg zyQJC3R67=!MlHi@Yt**Mw$aq|2CYl?%Xu87Z z9h(gNhHjT85-qFHAg(KwHx<1Z*sVM{bh~AtGYu#eKadnkkl{)ENXS`gn$BR(m$?`% zAgvF2KNec4Pa|TXn~mzsOwjyxt{NkNykxBgkk9C*aKNvnkYfYa&9P2gOH$MY!wr0C zoa5*yKPT$wbp{bN*j>0G6I1(mXcf%A_-VL!9+$PH!UNOosgs0m?fkKHd+_&`ZbUxX zxU#6B3SeWQXR`+ZDF~YE?d{PpLsv@~S_581kgL$MXgpT?Ec}D#vZt9!xNBe?DU>}7 zcZ4anUD&==oDVC&O9s|qJJ`C(p_NxZHz3T_>`cgsf)b#{^)RkGsE2vv0PXQAKmN-@ZS)R{ZXdPnH^EkRu?b%_Vo`UAxUQ8xIs6g1ZN5+U{H0TTueNpJOXnf4tiR@vW&0rAEBQEnMcf! z89y`gdk^A?Tm+#A5&VhbMbb`5WAa8PgMi3ga(vPjEEa=i3l5S=qHQtD2(&F&l2>rB zTM()zkhS3P9LSEAD?$KdqG5Z&V-9hktGHi}pHVMTl$$s}(9Uv>{FKdS}QZ~UMpxu6yj6z?`e^Z7UamES6RoaTF=3ob{2e;6-$0bpa| z%)wc7irxzcznJ3HYwJ+W32)4~30-n~fi3izeHr>yzDoT zv5V6x!qwC4EIY^Uijllb1zV{AJ=%8KiB~-}&$d$t9 z=b(r<4#B)Dk;sM|&S+Puc;)T7NfNwR6AnkaaJh^LyW$`?moH34FXm@%28e)U*P=Y} z*Sr(|oJ&sRTvCG7l$$QkZ1l*hnvHH)3G9hrj5&i5>G%P|!iX+bkw>c!z>m{;i&%*s z1gjYcfD0hNc?Qhx$X@CIf#1z&hy`wj9Wbyoi0mc$gUDX$0I-}Tjaa7$1QrZi(uk-cPT^6@ zb99ZCp9D%{1ji{S%3RX<$?T=)fxjk)j)RLr8_m-_?4BuhOr>IE>=cB zzAiURz+%I?fUJNB7TzIU^D0g^YY}-IUw{G?q_F9kkM7$n-<#|4_V_&BZ{%V2GgZW( zwCB=N2726{ta?voF+HwNd?OO%LI|(SjKVULO@akWFP8_Jy(*gvtGr|q(h-Kq`7cZ7 ztViFOB;hgM$A+{DBrpwcm_n9|s}V~Eloy%u2R>qNxR-LPrc~f3JI#Z_mJAdPjQF7} zVrCwc%QS^h2*V{)3y$-9%i<>ru8eMhYtH3QI35Pi0a=}QoCxje6=xg|o#K>~|74i~ zp`VGqINn9jy{i!WS&2AatHge;N2OJs4(`T|sb1DjhhF9n)Ua7IT=ZX1o*$|5yyj?8 zo;TpfIlfiYFq{?}vupLo?2v9_c9QOo*`eK1)4Wj#-z4SvfUf6z#IB1F>n@(P8tk!2O0?pq7y_~=zx(;S!wAoc|jKm#~ zA^@dRt(P4-i1G%PKdDn%JAfll03=E~ITBaIIJ)j4m)VzWZYBT5%y&EPzmiMzu^TSJ zkHjf2e17l}quIxcu+{6j*0=jMLgK$hcX2O|*1#2EJ%-@P1r}_qAencfJS<{#n z*iyUj>LqzLQ`pwa=rT2p6_!)}#k$(o242O&8W!6+ok0@l1Xc7~8wiUxg6?E}f-;r8 zWw^Xj5+%n3*F>5yX6DKAY{xPAa@Sz`B{t3mQE$#ng$3f?O#DlSHt>hdOQBe(J#)UY zHC)KjSf~|QctUWJDh5vn7>_$1YGnjcSJ#s!m?s}=p+NF_+h!RnVPc03;Nx5UgP9m6 z6U@Ax!OV62f|zyc!g_XbzXZYl1l;_{kXJ9+i1AWl)J z+l^daA6)hZxIP-%z=&k~9HB9gzF}{3Jwbj z-8?dC#8+ljU9jC952;4`;}=Au<&J_zyEG{pEfeTOa|f1@-Hyv@+3oqcUmT9U|_s06Ii&iO0) z?X+f&txL#w^#YMjyrwL&X^m)2%r451-Df6RMPkPJ#vtC1hC_*%J9Ch;jZ%9G?P9W-2HAwl3t|JYk81vk% zT_-7RloXq-K`l9cXmL5hJXeCsST*gCtFn z1c{?S)ON*3C8n41A-0Fa41hUiNm#cv$>G@aQhqODOSExIz;208?>5j}*P=Klu4Q-x zr%QRo1Fj3W4`TvMb3AWqPgeCnkNDyonBLC{C-D(U(psl$kFplsNcu6sru~6t#>7T< z2N_5^oao{LgJ{Og8qitk`I$*OebyjW%Tt-|d)j=BT}XLM1$xmZK+Vh!}4Vx6ChgoUhw?A=aboI-L@;72SJPLAv0H zaI|wsI9}fcR+Td{qv69vdk^LS$c^i7gk!nzFtE-$LOoeW8xoGqkabmrnB15dA`!YH z8T-6Y*OT5#NUto##Sl26r2Dj#yCO2dG1?ApZ%3+pSo~S5Tm0W!d`O43^RWum=JxIbTh2 zZBLv_xi|nosRV;zWD6J!bNgP{hwXD%4z|8ynsV4f2MdS&89&av7N|DzVf`Gm3GS>3 zn|rz>O$};8MjEiLUTB;L>P`i^1K3@l z3#_D3vp}^wPN^bRoMhRKOjOAO5oBYUw{&?Hjl8nhNgoWQ5 zT2zIli5IA@KZrmg5SSCuL9Ujl-nQ-5z+w^`B8{|k&Fny6CHR2bFW5VZbG}Sh7^8ts z4V5K~lgB`O?^p5Ny1$6;1I{;%$Am+9t^xjZvn=>jq7m?+o$jA3rlsn8 z{IOCz3Q{cH&71|Nb4?f=>UR;=>VyJKdGioNX+?z4t3>%tIfiy@Cd;`q6C51#%H79v7)bHp*|`d9 zd*yy7=PZ(LCW6Pv6q^n@4-Ve_E1i933}rHC`UkK5d<#lTv4wDaDAF z0Tn%PAzj<=&yv#ZmAUwNNy&LBXK9MrBuY3TO&M)zo+v-{6{*$Z)w&!T1<{t{r8M?Q zN}reVct%o8K%9{Os3|5O&Xn6U#e}k%a`ih>YocvEo~+SFh*pw{T!uPP{s9&rkzz7A zY+;`cpSJy z7#xTVaLWM%PMA2bg>Srva;kfVxJ$P!dA^J8=9?TU~o^Amyq3*0~XB09{4z)E>c@V31j!vR{ ztM+pq+H(8(9O$9SV~%o9J8G8^7V5T1)STnh?Go@p)mH@DLa-X1;cHS~yRZQgv)Dl9 z3A(RlQ6h7s@nsQ>Zb}7XKWA5?ja@~HOI)up%t#nKAdP%SokcO(pW)kPh?A~dB8_!E z^O~IQyBphayNczqZ}>J+yO)tw{pJl$FYxL)vJM`xc|1@zJal&*zt*x&b|}5W>gJ!ye4@^YC{Q4f!!*B?02(jiS;;umb z=Y6=;a~Ktm>+MtHa48pD&h3phv7Y-DdZA<6bd5u9U<|eTmR2|%9Q0GL6e8Pe4myaO zSGDj6-_XA(Hi8Vo1#!CpoUf=PTb9*`PLE!`xis3i86WpKO0j4Mk5oweamYY?X1hI1 zyCYb%k#HIo`h2h1kR#M>Xv46t5;?jZJp*(b9_fM{-L7)q=eXKs0kpI-5jPBzBxD+qXmC}qmky+0 zaj~VY1$i2_c(L0LAJec~J`Fn>Tp}MAv<#G~QobX@P{ZCrHZmIaXp{9RHEaxPETUj1 z2s7lVK69Zb&SQ#_^>HoYX~VHeJYUPUDpRX=`-8o$Azw?1mgS+o0$uJkrJB~)R(E_N z%IAaeE8AVswbx0D98IfhSARBLdoSEisGpM$@o~Wwi|m;CB@bh|eO-Il?$fn!St>an zfvSal#6+CufH(<9O4_-10dTXM%I(2^?oI2Vj^v3GS%u_2tflZtI##F@#Xm1n^d5ek zw*ewshAKJi{_mAvyIxd(h_r(xAh16!L`So{zl2c*Y&XJ9*9~1@Q>-gpk0tMv8#3Pk zzH8_0GQJVu-@^l(3+~$Uqa@e+PmtQBMQwJ7+xNvj$?v`$U2T!@Fm)q8nn1U>+=Y>byf)DN)|X0J0#%v zu>tqA6&~^FNQ^Xi%xuIGV1mUiBL#o6gBPBw(}@E+XrvbuY?JsjR%7LJi(TURVO9F( zLwN1PO&DT~QXo4xiiahQ4@dB_cuG9qfp+z?0Z|}H`u_vQz7s+lEH#@kd;U;bf-1y8Vv3I#xemTDR zOnkBRCOcL@Dj=wCAN}&X+?*LoPA_nE>F+f5EM9~tOsHqE_Jl6bARw7q^uOYfZ#VdP zWV$v=*4kCZEu@V0xF|cRAOnVNI>&j0kMhHzlg}-%IrOLHKbN|3I{&ar&pQ)FE2xeJpq*n70i-&e<&W zDV%<8D(EsQk;;nCREhm20DqK5s-D@`rxKSz1*=Nr;R{o{0<=oydArDH_c*IZU#&`H zPM%8SSU|Cb99;mxrnO>GgDB|tBUsOyjBk1XgS=$$J@%l_L@f~w99*RD;oBnCT%kH_mpj&f*6^84@ZRv-I?h%$ zx_eJyqd(xs8TEa?3H~SihmLc!REw5c!BU&A*d-IJbBPGX^i!DNlcb%hCG@zg2|l3S z@*8Hs_@d8lgLga`yaQGqESH0mg|nV!JK+Lhmcq&49(zL*^23HO&WnbLzI+`&&T9a% zy~*IAfaJhh1)x&;PX>98BTe`2Q_KeM`|d6yeAOr*{G=lM6xNd9CsYyPV|G8n6|u(6 zm^mE24IV140E;$mb&2`CcY|LHZGAUbHu4GJ^KNi0-S#ey zDbfvqVaN7JfDA-rZ{7i@HM0+YN`8gnb-}Z`P!gUcN@fS+Zy(C{B0JRU&Z#R1D;I0r z!sJ|C@Jl5NP<8Ge?Zi?(nMZJ!3b-$Ya?HTYC&T%^TcZ}a!5`lR8zI}icp?S?f{?=k zj*|v|;%Vf6q13xU?ai_Bti3$iO&_1ia+9jBZrs%U2o9dD`=LB*-S^z|z0guMj0y;u zVr#FuIkN?kkylE>xgh5FROT7ric%$yArXDX*~K3}WYG^HV`h%I=Sl8aoz7r`M!gHP z%)nDLE_2hzr$z=MSed@U1v1(KS@S)m!_jWxvXMv1vjX{oo6f%c01k%jOSzk4`f@vb z&3A*^7j4hKJ;@%+>p^G-^J4BxfLhncGvo}Wf-^2`AV04+oHz+SnD7!^FN7VjmHL4| zE4;%t_%3z9eNuJ7b9gM4-dUIN&UkC@;*@W(zu%=YQrK%T#WphF(Eu_E8~Q35A`|N5 zRhEtfF9#rw$sG-yb{txkL3*~k2k1wM!q+) zKW`we8EPkQv^&!-Ro=J{#Z;|~Pr+|WwJ;!&3MXb4S=haKuzLyn#sOec5gXXfB?^1C z54P|f;TBuC1Mu?+1Hgp{TewLBH;@n4V_n$rvRGrDS@|#5tjrz3o~oib!i7*a@=$q( zS?T zen*LPn4qOL;T|7~d%NlVZNdUm_l@Cp@XAKc^VNO9O{X3mCuCEb@RXZl^ys;gpnBBq zV_UL$A-aU_Hn+g9!fyhLHQVAP$>8DG{vK>@MD9ZuqF>qa@CDC=rJs1K3CEhA<9^y$ zPhvKsi?8A8pI?&(4Ek{#gfZXT!yAY7E;?l+*UGbsXE$|ZD`qf{qj~^e55GSE`})AN z;=!%BrvTe`moz%RLQegNC^jzF58)oE#rAHq!n#-G*WH{s4CoXVIs=8E4+a;D(t^|Q z#n5JqXZaMx7K)>+e6(WgDiM?_3-Qm$Jq;D>f@3AIo5hPXajnyGp$>IUVChhAajCFZ zC`CBhLkZ~>{4o#TB2taNxEBsqAu(c5$HC3nZ^XJje6#c4C9$r~+`&9Ab!qBC zeuOXFiheAUe&C@bhu+hy%`eXGA?Jx2dyiT4AP#T}yps|qU3etU7IuCLh`-5$_;OLS z@#SL{JpjZehhA=+xhn|zX!hF?hX>;OC?QAaEHzPbJrZO46lG`b8g@Q#=L`fcq~MGs z1)FaG(bFZvkxCkXNJccvM*b8YI~^gzdd(D7V} z8-}BEgNwsU)=>wT_~g_x=oD0l;l!Vry|KoZIZ#1>A>;MV$Hu@~8a!B-S~CAkdRTl2 zbvt+BdsLaXfH$ZfXgG|Cz4$Y7<50z%&m&#rpzUV3Meg<$c~hQ=|6Txk2Ie=AmJ}=J zh7b^QW=oqRmr8;vwb)}zKBB5vv?CM;6Gd4D7wNEC=LB3N?J0#6yXx$)s}EymS7wmy z>J%ldh4#)zdC-9QOvf+V!`u#v#?Qm#{+-l)$|V7b^IxKHlsGSy6cFbUNl@ZUjp4#E z>H~}8OthnVcG{%g#aN@s(g37`sjH2$1x!7a*P2K))qu5$;m~!0O zsj+86&6^gL#LjcFK|EcBr_EV?1y>@5L3M+P^y0hdx8`Aec0W-0`IC_EaY5I+Q-fbz zhrug9WH2c^TTH{p@~r+P!~lwXFXX8*|JNWX2lgx*`J9%M=Z#vw6XhW(dj-Ufx)g)J z&51QW%xyr3!*x1)9!@_4vyvxk)lFH2daEF1n6c^vAvc#N>k;>x#fdI{!=>?(htWu^ zC|-n(2k`7_+hWC;LqTYOJbW97k8?^qLzKX#lLTi)a?-DKHiJ%A9T0Bc@3Qhoe*Er} zCs3Hf?Z4c&{rVSXy}~zIxtWyjk_)^Z)ru`VM-!gZ*;(1h7k%A7U!Ko5<_yk>3ue3v z=4_^7a?dOREZMg(3)B@Aaz5#NHVL3}H1--*O4ztU#T3WmwUmr?bi{O`(0r#ug}e z!?C|WueYNZ_q17e{14~I*QpuAx$4+(hszx<*Q|jI2L`CPP%Fwo(mjXUd*2HKaA+58 z*OZ~b9G*G9=#vW;b8>2@4_CZ_`Zu4?RftgE2>i*B?-{+d>w}9ox}yl^RMijgA?&~mCxft@Goo(EYaa*emaHwFfR8hv1lm{G!H!Ci<+;pEY zfZRBFL)7bUf%K#Vl$=^*b@X^Fld}yM3znfMlpI-5#&p*okO(fH0!6y(UCwd?Q%>{+ zKSd8e8`@r|dh&T(wZRA85~RCar8n<%C3L@8{6luyFyNsP89(w6i7boU5;kDSg{d}d zpl!VU4RDlf(BlzXf7ccx{^?%)0Z!TZaNY(j2Ou~A8^9H9i$|FIM>AnHg#K%dUphlndgdeMSUioSLBPfi1kB~fMd1ZGI^%h!I*Qm01;`m zCF^`8zvGs~Ou)Gs+QgQs_=ND(uMt_k=VRNzc45-9b1}eICuq>HBjmor0BcoDQ zr@L(6IW#2rqub}ZsVZ)OUE$_I4g2CWDTJ^tdx zht5~`gi0CqB$ymRixY}@qa0j59e%FMz_VhF8({x%AIOHzTp7?g_?v3_+EI^+sKE54 zjOoKKO+I1*f;2K#d3w=;1{~E8}&rL0>W$MViG{H5bKk*?_F3+AJ z?RCNYLvo1X*|cwaNu*HKOm|_HIOt;k@RV;zQ^t@Y#@XMHGEofab0gT=ui4msom{5X)`N-{1;i-ROTt;q(5m(TKWh)9#Fp9F_s9uB!BjX8^hJcz+B z<9Wrc+@;+;Jd|@~y%P2rcC-QJ23t4=GX0p0_>>8BJHJ0l7vQRy)&(fA{(m;mcV_wj zt!mx1xd1Jezs$AwpGsj2%Xy-na7m;wXIR-?*BPk~JwVfZfChFV_HavV--&o#P~(Vc znE{=Mcc6pK&BVK4Xt(b~y!y3%PQ;g(1jYY<=|ucD9F<*gA~dE!wv$KA=biO%s$!h_Kz%bboh-_n{ZFVrY z`e|bedkbyh;uV>b03$O_{Fpqa3GD`2arA++cNe{}cmxJG^WgI{4iXNM@x~G2Qk=id zeq*3=AADf734M?pC}{P}&F|Zs*`XBm%#o6ydPYG`9p*#ha04Da_1v8sUGU?%n_0e< zOI-5`&2DFzx3uO5b#^ZLW9NATyM>|xc2 z!w2g3tR9ZTUJd0kr_b&!+p@AF+A)IT3C3f7JgU@&wLAoE4;$f<#Nf8N2hMnG`l#Jx1o$Y4pp#E`Xu?O zng*EeCancux0|%C7w+Z-N7#qGO>U*habw;E95-nA*omCeX*RwshU=W`4}y2jZ90AF z8j?C7hx_<~0SIK}LSVcAZXjFfLkg%k|0G6L55D6=WiyP23{qy8qT*o6c{mmWc+n4= z$=PoR;bA;nMxCkD82rMq6Gvyymtt~*E(+n3PxDO08Oll6faX>l>aR#)VU7O9dgYRQ zTDTKOqfj3v!lNH$2T7dAm)cn#aBrWF4F5C3 zkOACD(z%us>?HSxP&90qP*aRBG@*3;nbrJRd|)&;t^RcUSv)kFn_7QLcGgi#kdCn1 zf|Ijfu4Z7geqZ@nJgmA1Z&x3k9aTM;$-}c_tZ#G}9%L-{!vpdH*}d=}qEm_o1`Cr0 zD+(xg$Dp}E^?PRzMJ%GYo=z4EW%tkS%Y+6uVUMf}06xh7LX56^8M9U5N?7 za4MU&fg&8-LW!9%pu~(}$a4sIWzTF4j`GzXLPCubn@y3y)HaYki{S8r+vq)E63Mc{ zB($$2%{?qnS1gxNyzS=8Tc=wr`7KkH-z8yskLRJqo%@u+)ZwqVePQ~kuNeC(!o&_z znC3GR1Y+z|a_|8WY-&h5PoK0)()6c{j8+qc%F^LRC`#4*1=5rg;TnMPT%D~d+;_uQ zI9@*183Wi!Xkr<8@Xd+fduVHH7HfJ3{ivSF$L6mZq7(Z=pd%pqC7H_&zo1r4U3J6K zhB-2hiSp|nN5|cdGeHgUBuxFmWRN34kCIG+6at@uCC|lG$hbYKB5R!R^558mGE<@j zUtnU1WR|x`U}s4AS8=slfB5?m{t>|J%ckO1UU2INeTrOafVM2?x%|2%K@0IRw<%hf zETo++In&FfHZf6tMQ35V=#5bj7X2Q4z(N|eZA^OE-$u3u$jQ}d=6)r^_A?SCKfx%- z(c#~TVXV5DVqnMpRw&@447@w9sc=p7c8AzBWCxTRv&?{w@(t)LEK$jTPAnWydUPcC zy|`-^1m_+?($*W$Vl$vYt;qqMZpUww8HU?!LQzt_AxVG_;hN|j0_5p;Q~xV=)GWYO zn^2U@G~3a^kWKwi`ca&nXV88ccQod=qT^Krg+9kXztD~su$zpufyd_k*Ui`j-w>Is zc+)pFgP@|51ef-%C6UAH0*k&+!!T?#*dJAKw_T#-^Mrv|RXE-udKu@86Xkm<;51}j zhS~W&bor+oaQAMkp8`t9Sp5b_?ca%U^(OSddGG|a4{^F6$JyQrhVECesFA5M>tZKP zXNfv|7o&`0!KbejTl>A8&%U@Q96%JNDhf}(A}D;DC>&={z@1rR0Ti-kFC&3|lB;2v zgf&|>i6lgMfvXCWgzVGKvBo4)OuwMdIMpq#DR5^!k>Jaw`ffawAOOG8zj^I;J6jKF4V^KLAh0ih2?FH{u z>W{bvqINcH^6~W1Fj2yNnXjO(d{i5sQ079a+s0*RLr#_=L%v358$TTx1n#rY?gfu& z49a#dc*J<#I7Lh&2Jo8MAc5*-?j8le-8dGd0Ee+C1#6vX9%-UPBy_tWDCCjm)qjwI ztIh!fyWJmoqP4^a3zk{yO@pxcw~x6Rd;3h7vrO1P8@C%eYVV&rZLs<3x1dLPg4AsX zJuxVdktL0r8esM6$Ks)$51i&*0XMVbH!9D?FNr+w4XQYGX0SVC3X!P#&0pzJq@7og z4x{4dGHAI{C1fRiR?9ByYAmbW4)$6z5rgft9q+QiEHyeD4|xR8$w?3i31#}D-mUO( z&ucPJ-F{ZS(1p*vL#B#=LYN<~xehkzUbpi8S5!x)YX;NRH^h*`(%merUoN1f8!DFo znGeM$%IEQ0-?60cj-o3y#dk+huX+%rwoi%jMQf$jXfNeJcpiY`yMO2bHNRzEnKQek zOof-yqc;SN^-^l-e#Vj$ZHoU&D5HB5<=^3i&sD*osi%7FXYCW^?FxxXSy){eTDLw^jfWL{n1F{>d^i#hDLx#Ehv)gQFCJduLm3|SM009p@!*9*1o0ia$FA)f z1qZC-N-CX1)j`BQQGFNd9&D~%u-XV=dz~VksJg-5 z!nJM-d6S`n(6ZdUAaO*iLh{J^4M6PpEjyX0Iz}3)uELL#I4+N@oWMX09>&uDt)&NP z>G>@EEiK&x`nL3=FH*NlUpd*^D&&^k100r>@=E0tk;loQF8LZU;Rr<%<#(zgy_Iyg z1pg6Kt`J-=f+AnWBN4*FCWO4vByE*zUA6c1FUt}cHiZ;nYR7d8JmSkR%UR#Y;_D}n zEOJdSLF?xLqhEBd{pphf>-FhgdEZB8cb zmO;@GxXa3x*_pC&<*TrmXkeZ+z>Q8lzN>O@)Pl~!>~bi)5uX?=lMeXLkL(<@lL zfFI}Re5~LCTa~4DkHbBn%2H7g8eEyDvdrkXgDH5ER8p+J%KENgQ*}KD%(CDlaImT@ zUTXlwy#<PnsL)#Jz6a7^C7gTz!|_p&taJx1vhwe;6HAip%F(c4~dAG?T0 z2ohMozde{7>Jg3P>gYsyxd5v=kF00unSoYRjkHPN0TwK!t8-pF%2WR{RQ>-Nb9lY_ z%JIpwZN`=7Hf^krG_{RgZ5zw-do?Z}z#3{8!@UQEnuO9Nq68iC3{;;y=h?ZtC9IiAda;7<05W}>>%Cm81? zYa>XcS$@IUqS#wERJ_)UDIq&oZ>OND_0Nt|0WFr`TYmDkBYu<&w=SMOYt^k0aeLUq(vE2a|-; zJNA;?4{-}-zX+A6N9)KW*9WenldoH^F0v{`IHkvD&jS`pyUnE zCtx~V0N#0#=v8fGD;E3#F8Kczk+M|;jG0Q~ODqvmAR!;L>Cm}@IEQ;e*SpPl@`<3b z4_Ko79shjPwBVbP8fn&yL^-d^fwWt>PKy9=v5D-K7VC`{^OghUy|>x!n*hTaMt!t* zXr0cT+$4MmVGtHX%+e)2f!HD_oA|sYI(aZ((cp$&oNP-D6{ByK7i{9Y8aye> zYyEGUSdo|5rlAiFbZB)b?E{ZC%IAs4>XLHM68kgSNw}Ry0fNmpqud&P7tuL~;NkI2n%zuasB=c`yQ*8ydD5t?*_{yP5|C?+)}X(kn2InCO; zf!x2lA*vnXUL~r|l;*3?#*g#V7sP1MBVa2sx#32HHGL-(1)NhQ7nUM+jpUNA+=7L@ z+FyHBMWtZ10p(eH^&p_9LtD5XPuNqz@a%_t7-}%CRfXwjIdP92<__OZZZ}pPAZFXk z4X1@xXh4n;ZlN zL)M=YRoUk`($#O_$NA0?g`{ryk^!Q!=gnsPR5r(WKk~RDNxr7kEF&mUY&M=Pn2IOs8{`jqiToq9_<3x=DvZYdni@a z1)xNt`~*!=MIb3hY07AkL!nmxjv_#+r34i)SY0|oWVRJ$59V;1*H4OMY!l`3!Dz%! z6<=mY@Hk9|J{@6{k^iK0ffJpMtkO)IyArS4l&;j5ZTY#vw@4CDhDj313UG;}Aol8I z^0A{E_qn>f^QAabx{ z3&e519LKSgaf>(fN$BLcXMMxgGR}2BmuzM)!!hwp!m<13Pzqu<%*GEVkj-a^RH%A% z^+*e}y%uDDnps$aMbX9<-Q9H+c%@?@DVeCsJtHjt5q_NSA0{l1`c}KhX0Yijew7w~ zLW`dVe4QFC-WQ%MZPXjq-!x1}PAD8e@@td1&6#Ok(jlBTi}S;HHP~d>jYqfiIGy9* zB6eQJj{R)G>wdx-QY0w=vC5+)Zvn|o3c!I(fEv9#N#2vHi+EczzF_%x`Qf4vc1Tev znolc6FLzkBEx5X7kC=GBa_5>4Rv#}I?+er$Ku^iwW{S0kN!-#30;8>QCKSg*Dt@5c zyBlg^69&C_sL5?eFpV}QUFZyFwt%tOCH}KU8$l$BB%*LqAf6PSaJ@UxFLJFliAXUB zkLwKMlr**?dUVn{p%#2vC4wUGe*mys0h(|y&PeD$BnbnD_RQ-_eNCCyZhdVvuOe14 z94*wky_&l+)5c{b9W~Q-H@;3g?;7U8M5l{WHhVDUOxmEf}}&Q z6cx$+2msrT-j!-hp*L))w1(+<); zgRkLsOKM6kCVd6qx-sg8LS{giL@pv*vdeW#8i6qauWcpz62Nr%Jyl>FDu<*h5e=pE zTa~YqYQ{hu@wriO8!vKA8Qter<)w(7uR#U92^EC6Kxm~jZutY~>S@rQ>eALK6&rz%bnPC`6 z&=}JKxxW=#@@ij^s~Djtl>IrTOqGF=L21qWMh&VRxBP5q22p;(43k5v7VsN9wrIG7 zejPY?)dDE5fshw7A}F6mloM5Vayacce#OQ7RFDCHSAn5h!#GVPkNk0)nzVNAfdeEf z2FTng0vrD<2pr)@;E_Wu>5yp4fvX4Se+{qQRMp)h!ozmf*r-Tj%`B~_GC@^KA^`iBx=}W1F`-7qjtZ>yVzJH^y zU=6Ba*fbci`n`k}VlbuF;=gG+_eHT{pKA<1tC3TB&ts5$i~vnSWM|M{{V8C zR}6+~z+vPf@lZrBWggJF(hxRZEzXK(3nf9cszV`SCpq8_Xp&oy(uC0-7Eh6`z~Wb! zE@tPjy;f3h5d+|NBCq2xk~UFw#Ggq2>OX9Ni*n0;{B9si!c^-6Y_)udb3h@cu@5c} zaqemDtBEQbWnoNlC-CewW>&ua%Qz1PKy0zCDKU33-8RKWsA(a@P=iH<04;SkIxl0{ zj{FvnCt%Q$Vv}{GQ+QqJZN?WdH(j5|?a|;mY_?`}E?GrMf zv+?6>7%eU;eNK|x`kb?@N9OZ6b!~@^r1d%J-?V!^Cv#SjG~>S{b8+j^JA z-%Ns*Qi0Bd$R^y3%Uh|pq}t-wMGpIWnC%4~rmr?Ehn%{2R$a@brJ}fmUj^&{uH_D( z0T+DrJHT(30{=W$Qidnbm1GCiHM3ts7xooblC%*HEpR1C0^`mlJy%k{Uc@@Wwdy+Z zRk&9DOunupwN(T2wOe0TDzPKNwbXY)`$(_muF8B>JxSD%rV%TKJj1n_1}0*!TvyU` z(Y4|)q{%o{?c^V85`Xdet=o7t5VU&c*KC1;>~|o$k7!7roYQu0R z7ajR2YN2SC$T(a_c-^tk%YZ}pja>?GoVelny#q&*2ukZEje;&5Nq&?LZ&-4`nuD$j z2!A{5i1j2%zqWi&@`HWZ>7D{d5>2WPYK@@yE32gCPfO~{)(fd;cKJwM`MLieNiD=} z`Zat=kM3}3EZrB;i&U<=S|>2db(JO=G0@wM1k$p7jq3zy!K_!iL`@) zL^sq%7F?OBQ4eZ+1*qI?9_(V9IFfFHbtK!wksJVj59?vXI#G2EN7PEq`%t@zJhsYE zX4;_XR;nY3$1;E0#*r*c&T}Mph(OCaL7>QwK)s8=cU=UmBiW{oBpUQNl5NJ3Y$q+m zk)+yGM^ao$bf8Tg$u^=d4(I%n@YyHa_SG|D5e`E4(2InO%KD9JgghrQxn22z{SK`J z`!IYOyzU3;L5k(E9^?)QaL;2xfPkNU=0R`i2wbQhq%maT3ohc~IMAu3e%RItFp<6IIhXNuTP!tc64HP#HZumJ|<<5A^UpheiexFm>?mRtHZd*E((b zwmk<=a$N^c%laL>JXj#GI(Ss|qRL(WPWFQ_TP&px1?1cMcO01%URNq*`3f_$(%tLjYo32cY}{$Cq9y`v{kuDaf>pl+1zj26t9(HJZf9o#E&+^=V|8GDw?+o$ zZu~fh2Dffoll*dVz-ix;KAS8{xT|0Bh&*CGRj}!>S}{A!kJ*BKc7)kZ;`g|SrHhw8k0T3kzA6q$O~ z)HA2n@-Vyo(8Df;mRo1B_2!rC7l0;+OBS_b$SGJN1v=lTbpG`t!UxMq=lw=<^rPa9 zGcFg8$}+0>c~KGsx)MG|ROCToSW)9Owgw-FlDOhEU5}S*>NJiqAu=#8l~-x5DPD0Ij8Ty@xJ3V%G{=*loaGg7xBq-oQtVV-nwR^!G#( zPJO7oC^H#;L*_Vf9tNl~Ew~!3O*3}^Nhrl;%TvWJ6|i|+cCHS z?>SJ319-{>&oNpxBQd7zl=$E=GbZI4f>Uv+-Yz zpu!fyl@B%lvwY_4MdPyi2IM3DVJBJC+yBpud)>5H!=K}! z>oM-J+Ux74#z63yu_$a4aamc8-0Xk zFHj$p>iFn_yd!jh)WxO{ZgC=Pt|aiQ46v+bA}qv4h=Cx2%kC$&F%Vy)=>7jQ5Lukh z(*DG>KUU){f0+BL+4GpHWs)wYYMF82n5bpSLrgR$ioyp`1jt_^z`K8ynmgc=)pv@2h*de$oR z;?dZO9y}Ujf~mD<5jG%Q^#A0LGY=sztkf$sS7)&AHW-IT7)|gXoDrif}@jOaH`UAWr|&B(O=H7yB0R6++m%%XD&yt&GbD0htb)b^?o;g@GTBLYsu zPJ1;XyHMD|?oP`<5jiY-;Y)d4szR1=B(Q>nAB>HMqN^bOL)e8jP(frTdNv%V9~#F+ zLmQwSHmG(u3)AL~uT#VlRTtbZ+Tn@^pdDTuOzn_|dw3+nH&EdJ8T2_MfknKdBX39^ zEJdIA-9ESiGK#OOE3hMWQz7tfpx1kD$)5PHerTdK0;hTE!-v3Vo)X<$8cv*qNFMw+ z$ZX=ImEL2U_n7h?yS>L=@3GH5rUwb2=wp$Yxb^ndQ=;oiv%#>YqBVFL*)rrT-t66g zgG=&d69XMwNXj_@iNNN7uR4V(3E2K-HHL4Y4&Uv6l;L{_qv-5ED8IM~Ibomfe(1Fe z#Uum%7xyTvV7$!23X+Tp{~DHG0ZFghq`bYog8q>u?&b>9u~@?v>|`#H-JDsV+;Oe; z;+1=)7p3e)Z80V@W5IMzwur6CWJbF0>jU)1F_@uArx*jmCYwfqQMHo%Y-1_E9cpLt zwQA2?BBUi8M`87oCN0~3`lqu0g{eR+e%gpwvK1KuBT@c*kE~4SCPLtrD1Sy%baRiS zJoTcK(d~nhvgmJ;V)hHM)@7PfDvp$tIY(1Qdntd?ZHRi>L&}`4I}3Hcprj1fbBDTF zP*N_GD;?a62+-DPno{OLuF;eVFJ;chg5gA)f??k_1e7IJ>;|xPFg}f~*nX3Q(ru9= z7u=13H`%b!f?wSKj1=DGM#bE>K0wPzImdDi^faylrQ&V{x3{n*-4e^!q`p#i`8r!) z+ws~W-UQ5weDJr@6fhj|YmtqrBk%KZ#Esxd@#!+-wKqhtH*>cJdfYIE+26omdsKI> z@S~RX_}+4^roJY_U=!Nn@>zRhN#;(ejfhZuW)8`{=F-_8fs^stZuYLUBU<8QCa`R@ z(HXS3B=ddKsK=&Un~uX^0Yoq>KPcs`+TTzu+LPYYO(DATUl124YTdc~Ida z6`>3i0k*;A|F)8lxN@*$NK_sl8eml*fKxeZMeqzHZoEmScx?~9S=)oYIC58KI`pha zL^{+ZzZjZ$&Folc9pK=}y{L)HjCj9Lb3htlhaUKkL!!NduV`97euVa+4{RMr5Z-cG5O2<1yLlq*iGgJ zdYAKpt4onR>`8`#VZ*6NdJG$Km=}Ex$V?8co5xf4+|<$@Ty`G%uc>nfC9`vF#?>d_ zsnvJVrWO1t>?dn`p+8WsRsEJfRwtE1ODhM;F-WjNprP0t@l?sk6>wkXPkN?~4Ag@5 z$WXoHp}-=30K5gus5O*OV4~{M9*X0uW4tdB*6i^+M7N_&(ET@mEV^}IVnNpm`sRv) zou1wWXE_8Xr{LbC;(E3tZ~3>h2vM%qR&MpT60oi0FL+`@A4~>eQNfc15uYB1>puEO6jjGi zN`0d0_M7xh6v$0P<}G zQt1csH#h?d#BR*&ARu>JW#cwMGpA!-Mxw13H%H=S>my?z_Y`uZ9&R3;2Z2sNZXS4a z6v=7_ePd3$42m9F#&rLw{DU>c*fi+x@{={ij0{ue>?gGx)v-*uv0PGoyJDL)#f%lp z%+nN(l@K*i-l1@em1CJ#4P@m4rqu2)kd2jN%2q8C@Zh|uDP>+tkER$a$66;VoQbxK zcpk}F?yLXMMGsj)j92+QKDsBSzzObg3Z(XW`(ap1<*}C{~4}9JN)w)nkbTJ%AeBHy-Y%fEv=4rMO|LxOk+kWe5wsudm z0pcv0NF<>yTw|=~#z!Tlm+~RDhwNHo8N@ho1&bz!WBg^UKI(gPDHEYi7bwwO<-9R` z{LFx<)-qpEz>{z|*=W)KEfnMQ1;j8$}t>I|r5#iWAT~S=HigJ@fo9A|Cj7PM4 ziL?RD4@9J^e;bpZ`yYG;SwE8XJzC(N*fB(qA&~?lxQ? zDLZ4OMRy35e!-}drPA^5TPhX76#A${gYbVsrJb?T_(1PS#CR=34qbZrbITT)RUrm~Pjcsd3>;I_ z(KwBaC0VMU9`6T}ttBBVuA)l%X{8bLht0I?1UWHbA zaqy>OPmthI(g7%)MwF(4%RL{Y`?!HFx)uxa`;fduXrdo_>aCBk)*jl1 z$W}{8D!@!o!5$ylw%{RcXZ@Nz(1deGUUw^qJGWd3B3P_-5&0WPw&{0 zO3qpbur>QG_u4e{LJkpKf*hLAP`~rxWpLqgsEGeIJhFi8B&w3X_n|p23$+Ps+*oqI z5R>QnnNAl@^iBecnylGSy_f^;hgV>ic4p#A32(Xa9^~Rw&?XkvO`q7>(~ZMFq{ix+ zQq-(4`HrfTd-n0yHz8Y2%k5S43~D>^$X$RO3vJDg)Ym3`Wjh$8vjwSoERf>$fe05p z>n4XbHAp}_9yu59lS5nQ+cBM^#oc-AFAvu4trtMHrwTOKTqh%m>%5FQ9*K8tsCE<7 zC>yg~Qau{HhwRc9OR`;q;cRR(YD(2(%dKdZS-KIN$X@uhZWf^* zKJr5+XHsXdsS^X~FJ(#yh2yi>B{W=~?t@%*+7Py-K;Nx5@S2jvcu z09|&bO&D2)H~j_ZDWznf<)oWcoUmoI-DL@;%$C~j7 zH;nNhusO@y7f<$?*@WhC%Mh4t?kQ3{$>Q*}c(jHiqub2@$9syf{-m`H42Son1wLsc zBAarPtJsZt3I%kCD zP!OXBwxbux5FYtH;{@Og+Kp5B!TNu{5)2c2qEv9*+m%3l6&$RUK)n@USHa+zU_l#R z+u{)!4l-IRR}BBfX+5l3r73G-_rLpv5P!128+94$(^I3vTWbw0<{r$$QK(}wgTslc z@3pdCbqv*=pZ!B@H87#sLvy;|1r$^+8*nO{2Q3Q)0C-vfX!8W1jRSe*snT_`Vdi6u zFF~MuDF%{{@fIVsKDfbqx+E*I3BnP)r&GfmScElo%lg%gM>gjdKFAA-ICY;F+o5>QOCaaEI22 zhq#6W?9 z*C5d=NEBpZVNfvakxXu*A-s5`QiNzjaOvl`EG0=C1Xb*9t{w%}c5HB!5%4#9w9QkB zTG{9ez2?9&Y>FG~Wrh%3{s5Nv@&&dAT#qH&hHh{@2OEQ6xxNpteLk-5D&%^WHC%tc zaBtP+xBGL>YUi7g8{{tVs6YGYOp%X-frEZw)xmk|cOve)K_`>U@MeXr5nD_T1|ls5@k*X!ZU5)gS3sy+YdM zg(%owAqt&tFEFtqU#wvM;h&bw?+0c8^q=^dpx@!ISlzE8+o!DMjR=PjzKJ@Xz{MW0 zfFPjP;7N6cmwn z6e;nFBnyhjJBqx9uA8=73yR1)imdU9tSl%Z?fs-%9?njRdidv0p&nXZQuTmo)HTpA*c&mZfm3M*@uwf+ZAd+D zlC*Do)PIv~1kjB7V>ZV5Af?A>>JET})|iLJTsP~umzDQ)fuF|7EbyDhBLFFonQY{3 zy&x@FXocprCG??blLoUT^npS+1TQQGu}nKlF@-jT2o8vSPD>F$|0Y@2mRAe@pL;5;a@i_Gg?}nyPF3l|qFLH+)+gwyQdpU=!EQ`>H`nCtF?S zt$%lIdogWql)t^_{%RSF{9dHSiQCA>LcR9@B>r223;e;%t0NkN5y^NRQ-hAragirc zbwYx}Q+*~{ajxhQu=vXOY*xa3X*&8y;0y{0Tr45@xEE@nu%N(&S|9*?G~psm7_13S z+}3sC5vCP&C&E-1c66**=c9V2>&$9L{~tJ zoJS0XwOA9(>!QjimZott4xix2n2;3|zZ+f~C(IZI3wgy%n95&F;xytcnPP}~;i-tm z9gh0CvEMA%;Wp4mF>p9bEF`9#P|v3J9LE^sy{`rk0+erH8Qek5Jk~26F?)UPWVU!GxmYEUi9LtN#rq z)tMsILz}o?7;UyB$*%fY9<7?7dVHcj1y@<7?x-Y7kxdX%qC&bjCvFFLv zuZ;I|^=(3}(1%mD!K&mJyg#qtLbqW3@FeEmA5M9(;pl8}_Q|9VWi#p0kwUsS6Gvm4 z9p+ejWlJ(Yz|>hK+boa{&{u!>cs*`1^?^4YK|G?Pf(>U_#p`?(0qG~PE2$3{#!jTe z=|Sz{TRfs7IbeAqrOOOb-V@hcp}0zm(N2WH*($CsK^QzXFbF#~J`f_x{Xt;9l@B7t zrGnr!Ct(+`NV#W%C&C01NBp-YSS&I+V3rU}(CAF;T}8Q`bYvkH^OQAu)<<3hkt8Er zauM|j7^3+vYMAM>R5K~LP&ExAA?43#ij<{VOeEb$OyB7LGBu8HL@YVhz9zgJ<+&x3 z{XEy93KG~5XAW==c(x6(68@9dMET3waJxo;h|05?lJZh6{feO5<)!>qQ@XvBtfut1 zDalp#(f!mDptsn*$Vo{Pq#Tup_8@~cXl)(XZyHcYqJ^AN6#Ox-kx{~5269+xrz7=v zv)x-Skx?mzn!TvegnMU4SiHO$5|!%*FzX$6s&;%kDhm6hIJDzIcG%((J6mG$G>fm& z;wdfuEQ`PWXXAcZQ`&>3#{j>4Q<|UZH>I>zzTDtFYrSs}_rz?djwRIeOQc^aVYjR4 zT3mvYU>6iK`zl}byJmpHkfhR&!80BM;tpky?mJ$F2#OVTZ)YBUD)>P@)8yS=yLpj!M<#bY-mLRq>4V zVK!K)fD>au!RFgXH>iuA5km$yg=!Ee6S9STxsUh~LqQ=EtObcYDwA~RV0U5`9X<51 z!Ze3-aCkx+yuTE(f7J%JpTa~GMVFrn`#Gga`q>QA?)G!y)3%?RtkN*`HJpci*4$Ia zXdff|E2Nd^+R>`=3UaSi9Pk~173@olI}8S4#SvGnKDkR3o@XoZ73@AL7rmQbKONdc z3Ctb?niRIImhrBi-n#7iDO`!_45MMU?-dIN;D0R2PlO#hG?qT6*R`P6%8{@@~Hwp8mb-o zqrpWg)?Y6Qu_*f;`Qj|Fn&H!&d1nq$lq*a!IzW;d*i4Hcs(iVpn*gEa`=J&~+U8)< ztm-!o(s!%GSeYeYT4prFrFYlmo><^=qX_uh8sr>abHK+JOrCokl=44RDId9rQdE5! zV$04sPl!^^g-Zkn2;^)LNQQJ+-P<5h*?;cchj#E^ZX!WAt%0#4N^h?y9FaCrQ2JRY zS&r;eb;??0AP{N=n_As8ySvB*irc0tq>;1~M?sDd&b!Jt82Fmy=S5h4w1Tsr?)HO{ zEYWE`!1Kpw#bhB$Y*&IFXLcL?Kgs8IJikL}c_`klwx%|6s#%|ne#j<_#iGw0?DPGB+c79(z$eAyv4 zhG;KU&|{YQ6!eW?D0R8tMYjx~;`s;iDe4sKhM+!m(~ca2$YBjYXC~thnu7gHI}f8C z*vmMU-1U+>|Y1`k2srSmAjBWOr$NO*uhm*zVh4Fl%-eCtSP!?CZ8VL! z4&UII$QcMleLPHWO6_Y&X7Ppwin0fI4Xke}X7XO!h5js|yD=KbVlRqo8iQ+mf`e$D z)<@W5_4+~hBe5=kt{QFo4U|=;!_u0Ue7vC4zt8Ug(sr@hC>-OityK)PIF+cC@VC+Y z7h%_x*XYF%kq;nsgA2dixfQA#3?QKj>+e-UlZ%+)JZe7Bz4L(XgLsHEX<|+JI1ZrY za{#BScq%9B4)U|cIEVw#+ypd>MLE#$46GdL6zc^oKDPZ~mt|WsVqW!nYKTp)hRA8_ z!zv(t_mJwE$?vb4_G=bY%HX+f@%s@W(-41y!`ueH4SoApwjnF4FXz44_h+*^TxFTS9L{8s8W+e-e^ue2pgl*J43; z4?nsifvyF4n+2J@1p8RuK(Yj@qHFOPlxf(k?wXnr7guK zWhhhJH$!RIPkO~U-PCl4M!HJn9aSE1!&U)i;dOjQ&g@BJRUmFh0ZU4_&FlF7Kh>oW+RgUHaZB^{go2ak!RQ_^CEC^k&Ncb>I-n2 zq_|D@<93t}w@#PjH?Vi#eIq!Kl)QJf^l-2r${UY)J^Yb{l0D6jX>{#z+v}dmK=)2S zU4Ny-bmW=t4WM*meJvrHG17k)EIkwvyjAhF)Ib+5T-+g!MAbzMu~|lOJTbt)^?Kro!X{I#@ ztlLE0My#rY-ZG>#mT8)KrFQ~<8PU$S3duWKTN>tXX#)&|lJ`ZKO4Viw$Jp+nx^dTd zsSlz6_%}PHbSFLP(_y@g#?jL6Lbsi{Y)833QI~b_zDJSF;?BP@Y?7aMFddd7->SdP=x>yTIzlj=l_LP0wZntXvYkE+d>hSdugO>7aH8wqkx4^;e3KY{TdBbe!F+< z?H|;$SisL34dv+lCve8Wm2}IEOI`qEP96}sgTW6Z*z_321M6^~1oV@7>{`k(-g?Xb z~7>H}0iA8|63}^%<4v^K6o=On>&E)u=m(3_Zb)(v5fWy{uh@ zU%2_cZS&zuo%?=u46UhN-k0oHyO8vYIFt;y|p1losd(GEBpOi;#M`+t?upn zZFL7|b+3^brn*Byqu?C~AY7NY3CQ%dNqKdATkF`#tz(H_2m1aT+(t52;{mj}m32j3 z>%M^iDq^!rjQX||^}xK5$(T1spE;#0)KZL=oU+v-cwIV64h`DLMhx1cmz|=K#(fXL zD^f(>m{PioUM2ao;G`S z!F)9zXk~7uTte=`k{a~sST-n@kYCO*? zT&?@93@FkVc%~z{wR}-5sw&O#r>*4}zn1?ckFi%VS-VjNo+!f(Jo#t_o_sU|Pd=J~ zXPQeRWRVOiD4`y4YLe81feO6_P(4$OAbJR2e#lDp>`q>-%-{DJGgMw77lk} zG&QWRmX1rB)b8uc`VPQ^xsQRQGi-1KZayIUE1=!Yq@z!i%+V)^5!~&Z6un?}zv#X7 z$O0wjjet61bwx2h$=f#{Lrcjw0dcpBn#rr^WeW;M!hBv6qn<&2})~wv9K=Z_W+C1HAjWnluGWlE^wV85F^na9){aiwZ`-J>*5EH$^C{DhK zqONUf4z|fc_XP?c%|a*NK8S^mI!gq(--V7Khu>`l`OA;pLYunF7Zv{>8tL;sEq~23 z((wG0W2C|S)K8H;Y^0o@vPP;6rrKxp-exh-;jt|o4xs^+CR1$oXxp}iK@+Rsi`@2B zOTegchwj`m1hQbWdt074S2}AbTx69l;4>;p4+8);o>-QYU}`xNPP#O}&5I}Rp2-aI zxKp9t3<7JJy+{V&m|m@A7ZCYmH5V=CT-kPS-Z`ey&nQwntY*OZ1gX0&l8W${gqsc= ztxW03;TvWE!`Tz``TBIH+Z}T-jJktibE&G!PN(ipx%)d9M&0{MDEUG_VS!SP+HWD? zoeFrm0;ULd)XOl~6c zv^MBNB(u_@$8!7)Xc|Lm0;hO<7<&g{!Wu=vIVd{GFT#fRQjY~Cgj9@{oQPyW{rtg2 zNn4Zz&LBw1NDGQB;W?AAXc^F1!$wMG1ogzFG!NqpXBZaBup1bYj;<^>`F5bqFjJV= zYG_Dr0@F>k-EgeyFzvcdH%Sa5wficy7tazNR*>3X-Hb+iB_P!ecbiqBUPlDeQIkY4 zJl-!97zgx}+LjARVci7h-tk$jXeX`cC+IhMQ?(-acv(B~vtbJHLbii`0=}ay;3OR; z_7+hY@d%3KkcF(ODZYpf0`pBlaH)ayOBx^BlpvdWjbajd_Wm+;iCk!UbW(aGL-^^b z!y?p+!jK0C(8S)u?|X(vSeuZ&37Gx-Kv4G+{3hHY_kkiu-)4~WVaLZl5ah6!B#j;_ z_yEYg2c+J^?&6;s&t>aETR`r9<=f!ymz29J{zt@k(l^1~zx_enyE&AS8n>e!Hyjw{uZI_B;qCHxoAzWNQn2=tJujIMQPo{G6BhAJD4om;xW>;%b>z zDrFL7M4P{rGY`kz{sSs9LRc?>`igEo*4ThY;7s)v4zXoSwGse{>A1|&7!@`RC$^#B ztJ&Lzn#51Tv)1%1ify1;vWozAzz1V0$;3#>p>)A4=8*+Iq-J8~gH9UFLw>#_c9p${ z?>!$YPQkQI4o>F7Ksf2=e-BQDeKW%t6O(0h?n|MIowuaE^& z=R+B&D|lRhM@q2Y=Edxtv<}!J*r*z1KiTAknhfn@r<-}VNBcBlY5-kl_p%RTU#{99 z{9MB+nmUJ1@du10XmdI?s^>lsDvOcj^wZ$EzjnQN?gE+1reF-IgUBv;>yFnnbKh4a z^AXIvhshjR8OqVn5_UyfX>i0W;2ggbNyQLr5B$8SmE2T7@=g-5O$Tt6tAH`=L+AoO z2vd=IsmY0u^DuZ*=z|4sHmL>;t-S?_vdFXw1am&bU^iztzk{uzSZsM4Nag(|IEnxluhf*a`IH<@uq&G=o- zIEERoHyIrrR8Rk$DwMU^K*L#bYP9HEpm`yMpb}CcvJLFJ7j>rQlnyQrS%vjy#R7Q@ zNgX2f46Fv>sqG-Ab7Cp&MV4Z}mn+H6BG3ZVsE`PdW^P-ZdIDu)2;e9~i2+~I*S5)$w`Nhp%Dj3=ZwZlc5jE zYqTqBz%?*HbsQDiPQ7jIXNNW|n~4G7!Yw7}3RD9%&M*z*Z9s=-@YLvm<=%~Z&) zD5$SvDLQHool3j`F!3jtB_a{N8>+O^D+zSSHj-*v*w|2EpMqoNXS2uT&}(xGDu_^e ziHi{DmHLRr{y)mi?V}-QUe&N?=p%A{sE}Qg?Cfz`*dHK&r*(UZo3XXx{`a~<#j!&C z?{`)$hI+s=2YORICZ0-7l*A>H$npKN3<5AP0I&fb zO9W1Ks@x#M#HywIvD1B*YjF#(+2Y zAJph!itrkiZP?cp^S~V}S#97CrhhiXQzFfNGu?50pZG3xnV|xf9Th)6i4LmjYW`Rz zTncR#D4=r!(80|)2??je)I%FaQgF&fO=P!tzT#_NP~;jyR#tUW71OoOJ={7+Idwjd zfmFzlJlsnKgivXr;@&w?Na*2@CE;P?YiSi%a$H8HxNM!>DmrE7K(Pf^Kz!E%u3>5v z$-V?=Nc5~4SF_El8`so-X5HS|Bh9g-f-=_d0d>Uq`W=wU z!CiJ*_GmmFO(|&+N6f3=VPVaC9QtMV%kE>?n~sZ?#yIblc{O%U)EWjO=Tk1p)yjZ3kb>DN~A7FYIY|nGgUDW zOfYGH92Y>2Lu#7~`5A>|n&gG_u7;cEb5}K2sBj0yTM=FM!AVn%PwLpw!y*3sP&X9+ z7CWCCE$`XW=%i!HoZ~n1VjSM2rv9qvWi?0*&AOF9FZ@|I;UhPDLZnUUYBaWTmNYOJ z5!8@jkYlDqi|3K!P3iZVx{G`a{N*0|sW|xbl+l0!pBP0VM2{gC0N@gx;SLQsZ%ROT zZMT4I*zA{`tcpjHMUmjcUU_@~K$!!8iKnJm zzjUnNUU)!8LOk_b`_PS`pIAjq;pbKJ;ILD7>)9mq-5M>2VKYpU0ZdK(WzlB2ic`oN zf&8#y$uIW68zxc}lf+>MYh$OPyOH?`I--Ut`!u3J=_l3HKsig>r%&g%T1-n{YR*L= z@Ae@js9^@P!CJoqgb$E1x*ETWXa41ssCr&XNcx*I>3uXa4`V6Q+cs=j<0Ur=W?^Oa zg?nqYT=;}J@{(5#t=fzG)x483uBenHv0~4ppm0`PE`@{1YQOVu>?t)h z^};`}-Z3U26(q&LO9-Ph^OW_rUDaa(R#lI)&$GL#Co0GA^f`UX++#91mDT+(i}n+y zPp>;Qln|R)$5kK;p+3ToT};%VM0E3R^KKq%2D*pw~hC6 zEqmc=(V)}?Wi+;e)?G+@zCAOnJxM5crW+*Y;AE`A;O1u`cPcv$AM zj0pkD^lc!PT_6aVh4=R%n9Sh@8)SvDAMX}?3k!bHurXxFkVDwZ z8b&le88jqJf&)1RvgDt{@K=2sh*T&$r)Al3Jj5dE3n4v=%Z8_4Q zNbN8lb7w(Fn4FLZT@VA3E1EKGDi_UQ4ZqR6e)B_B;OafG^06xkPuf^oYfM! z%8gD9jw!Ul>GFmpF$QHqFctt5#zVQ23M>-+O&w_Ak+Em2(2mH=5!N{V-ybsAQ3}%Z z@(B+^>cq@4bk%(r)Z~x8{6vtA^-if#-Cn3x?U5F!c|=fv86PF9N4PbQ$g5d&32qZA zu>?xj>6ajQ>AlV2G*}*c)8WLVbfa_AZqJAF-EP6^sGrpXBE#-oQDH>=#-*kv`r~{$ zjBgC%XByzV#2#pNUSe;d#B`xVT2o&3Hc5=`5#bnqD}-NlS_x7ic9?*u$H;=QBYz?R`2%-f4gp>e3S7xj=~%h zoXdkzhJOURlm>&d$A!x~O5P3D6du~2fn4p-RSalqm&*a_w*W)DQKd25^DnCJ(^u;j z`DG5NL}XYZ)*W1x?$Hu68D#+0oa7z^OdDdgqLUY-H=Vn@2ooDzKjBnm6P`3py1pEp z&1blW$$=}%>v)g>ZV2cs#x>>L(MxxvGi_K`R5u*|4vDt#6j!jF_<4*)z_k~=(_WBo zZ52FZ&cvr>|5fosw+3E-as$GVZI`zZB803=1PgW?P>Oy=Y><}gJ+XQrRG~_`T)8^| z(+0TR0nokp2K_tq=DdHVmf5i3r)d6nAuhZ`5agL|#P9qAfR<0yW08gKD=wb{VUSZ} z=0Xfd+)toCeIEt6|Jnp^ns*A3T$z{fQBpaP;Cy||BpW^oFmPf~nLC)rM-zZjpVNNboUBUPcgn28S6>f8|`CV5jcWp^6Ra=_ND%y%(YW;7^s2A)yN z@<{Z`5qu1p-8QK=O;@{EVb3&?{#9Dhf_L>uL*A!%Eg5gs3kT8PPzD@&nS#Clz@B$> zo0b>`K2!oAzdx*<-H$AL6a9$vO3Uy5$i_Pr7u+63q#B5zK)r)RT;v+5!gr0RfeuHy zHK@4Hs=e#|;+Rtu(KVgh2Zz_-Etp>xUwE#E?h>`#i$oJIQNnm^#K3JClGVqLhvlfq zyFs4Ua5O6G7RO_J9lLX^T?SV&J2w{_)6r||P3DseqN>fB< zKL0pma*1JjBA=jJvEc;-?cw6KrzMDc?36*a+`jqa!n7^X{4emwGUUaJaWMUt;n!q~ zo`+#O#fY|pLvQcq24R;6<>*1OC7$mD<2#xpuyOt;@Y7B0SKkPZLgV})17E4$(hd=D z{t-k?du0VE-BmHIaxv{%VEVV=>!Z=yC+goqX^=?8@j3i^W-`L9RAU=?hZUX-Xu>^)=eLe-tiDK2B3A0V7I#+9Rf)H1*`E|1-6A>PaWU zggO)T4>)t#$=CyvW9`u^oH1$%&x5lYIgUmw3#Xh_p~t145PfP+bL}Dgo6tEx{t&2s|ype0(gMmZ)qx_kkgq zpNVP4I)_4E+D0&mC2Ofui-_T#y#-3n!LsPFL|;L;96XD<1}JYUm^M5BJ*D(S%vE3eD3jQMltf6SNc^_fkyQ3?KD{Cr3P&hjR z+gEE(WWiFcm6R;_;a8`AZR%-LPoMgA9Ybw{5BL%0n;jo;oO&N0i>Zk<(-P@?4Jreh zOKadN-;AEp9UZqeI_?c2(Qyk?6OT?yppQPf1)L?pbRU!sv+m?)ecR;o9mUkdW780R zSvcQw)3nNI(Q&I-&Qo}g9<+My&^MzK9)pwK@(ET|+osHHLmOC3u-gQzOTfAeSO8K& zkY<2PjULoFci5X#qZ2vXY_vh%iH^Y3IT0|}l zlG!`PGC7A+Q;W!_L2}+}A1v1P zYuj|{?V~NZFGk0)iKWH+P0gS>^^l)6hf{RDgXq)`O+NC;ROtK9f^8sVs`~F&xRzo* z8n4lV)@+Txy9(H#{OzAQ0DplVbsE}UUiwD>S=C=1QrD79qfuA!*k!pMdn@WX7X_GXnGjPrI*jh2+lForI!&je@eP`==#_E2Z+|oP^Ke)8 z3)Fw7G4-1<+YVv37DdRNU20O&_7-wA(pIDCLR%einhcf>@Vr(l2V5GDYuWxmN?UC_ zwiP?q3UewniZa9 z5h7+f2K}~|z$1>MbQ5@+%=A(0GGGPo!ae1TLU&`DS&sdZ@etDTTdvn#NNKb#2YdP8 z+e2vH#dINQ3)_H>-(InQEp6$*2>DG_2v%FE?^5pL{Z{I{{}_ir26-tg$!nI_@%4!m zTe??ySwdclJ%uJv{;zpi7fUTf}1M2aBgIVirCQnYKu0L)n!KStT_oAGN7PtES29n3YUEc4qp_0dVm1 zmBIPE4H!ySMY@uQ`bPQ#W29j-S?%);zA5n-i1@cMw%TXvp!_Y7E*4ETY^ee6Q;Swl zOY}gpmN7)XD~$fXjrrA!CK-JggbINxupuBix^s5))K1KrmyRwU z3zW)BCz+2u?#Fkd`teKVBZ`@Ty?I55&`2UkV`;nytCd~ejIT4=B-Z|Lq!9rwN9tSK z!wg6EChFVrhf6B)wwJywd$<_8xxCT(w)Ej5M8F5`P!` zAQFEk{49;saWSnG=Rh-v1do8`)>H}2ICC~ok(^9wBX(cbB$UFW4 z#@6GA#q3c7Wlil?>{pWZ;$Nl8of32PV+e~|*szi7a`W4Tld0B7B^eT1hSS{lK-_;Z zj+7n zeJS)4#3qU@w9ANaMXgRnm*iIT%^uX!>eg~*UM-7?4fPDPj4s|2rkEq6`NBS!G(>bt z4gLuvcFHQQ4s*FB2g7nr=L&b;H_Tq0@MC|F*gsh%wotQE7=WF`c-~?c*|rd})S{!v$FsKy z+o#7D!1h5+{I_6>J{(rWENh7^Sg6>-6DC%#dUcPYp0)jNMh_6L+A(~r?-i1@a4@a3 zdg~{WweT;kwE7?g?xmGhAEdyawbH``DR5`4^e{mRycyKg27xSG!`8>f`XMgH-LJN? z`bhNVOnfQE=11TS*IzXCkBMG(C9*k7hpEz6$2vQ7{)!hkk}c_`hW;V4nXQ!ib6WPR zNGRdHAY6{lJ#KJQk?gVAX?}9CB%_ZS$$mC_pr5SJXdQ64N_OX*WTZy25${$~ZaJ*I=S1cYqD_$D?<~`U+*`{w)Nw7}$NCg2p3CgE2wo z(03Z8VpIOL zH&~gP@&SIlxwF`oFv^4bnk3@YUf0Hjd3;JIt1;-_s83@j$2MNb!yk}3R#Q=5McaFO zqrcJWfyw*^!Ct`qe)R&0x8tzfg5vS976({e8o_h&G*e_{f?dO2#MCkw`d~KLwJ=B} z@jM&6AK>vJN{TP%O1gx)xS7}qU_m`5`$7xW)X)>LQIfwv4GPoc?RGLLXT3AnQZ)P$ zRMN3QHGK4*IsvV!jF8I4jY5E0AYEV|H|^ zbY483B&L`!b2WNW<2D~4z2%btXy+v95)q1PwpHMGmq6eJI%Y6~mL#;TL( zFD!j8pJG+*OgLa<4vdhh3cpZ^%cmKP$@oN(%-+b~Q9%}_s(!Esi=1*Pe!O>16v;rl z?XDFVqm>L&h3z5(Xoistbg-2g%8CKJR3G~^Vgz8z%(rACpTHx=v=u!a#|E~E$iq^N z@GcQds^+P2sCt(9#5JQCVI8I%aZ$+I$KnrLJwK<$LP&XQMg^Kb%D+t?eKypKdp2f5-Rc2RV0 zfF3Aa6OEU*+L(rt!iY`m_)_G}o=QJiM$xTfFZu+mytWh@ajTGN@V zUq_;*BUTZfDe^4WlhXIO z8jzyjB>+!-tch~phMXK+yJrs6sNL5AG8>X_c*V~j>&(_|N6uGYb#oq$oCEpJ_--Qd zF_ef^)L))t+lFz2az6?W z09p-g>sZX>RMqfL6OAc5;m5oD%i0o#x@Xw=>UPg?46Ag{P&l^!%t$<<586ostvQ{v z^jm%>?N500J89jL4uMD`VEoJ!t5*==O*O=YyV`8;D{bvC=za0(0@R;QhPqp@MjQa~ zrgXQ`es{|OVv|O)3iX~o5PnoWOzBv$?1Xkmy%m?pv_h>K_@z1;k$9hWr79-wG6b`) zUNxLItp0ey0&TZbWZ$JzGz{Q$)*)~C_85w!>Ik5q-uWtc0(p{75eSj4xakz7KT@Y? z^R7^ZdsG#+d`eVd7^?Rc%qY|;TB_tjvt++i!gPw3X)-!Re3DcPQlL{bR>`{&HTxWH zJKj<_1}yVCMfZJ4I;2jgh>Cs=6umuBzaqhtD{63%2&QpLH@&-e1f7bmSP$oUlCc$& zV{OqZMwPSKY(p$|N;@O%3CQ{ETxbV@zb|R%{)@Av2j3wMwC-as5@D^Tvwo%Yt1^iS{_f$DrR{Y;4$hlhqk*7ZT2gX znSoMC-{+ic+eYKJ+#H~Ds6*$MSoFE?7&?1F=V?NxTk{F{?9lq|aSp9F!R{=rvlBz2 zEAb!Z0iZ{i3{B1Astjo)&jzMZz7mmhP?}34KWrb3k^?mEg_5i+g~r6&hQ>5#JloRf z*L)s6J2ZaErLhCnUVz38P3Nu{lHpw^e857g~abB1>t)U^SHel&GG3ME()MO}Z< zZ%Fh&;<+Jpy%L`s@+M7pMEDmNwk0nSdome&GJ)Bsjr*@o;C^xpy!X^=%Av-XKYUX4 zcRTd<$0**FDb;=ZWGXoz(=VeWOR&iFp3R2fJ`h}QWh(YWZMqJh9ioqkJ4F8-PBS1H zj-2W`6H~jmsROMHE@qX7o;|x|!na#hdOKA4MpWRE{oz&lWRw&l`=Ngsvim`HgC*Nn z<(u)@A$!Ib9kTzivrG0GLv{&g8A0}jT(Z|-YgJRj3PdOFf@zS)%eUc^L;K8Q9opZ-P}Pe3<8#aRpj21RA6~t`hmtIv zqTbKEW#}yImhZ=Bht{)V4z0sbmZkNhyXCc`!!&+)T~4B;5RGrVX=qFrbj#1;vqNL! zG>68$QC0yOH>gt2VyGnT729_PX?o-(Kw>1DhU3)3ldwn@JWMQa^l8Y0XXniDHuD zL4$OK0#8h~lf2Pk@*X_eA@2;7W6AqBG(EeZ_>adn|F~m7u-N9|uN#6xKG<)1_P}RH zZ@Z^DME@_!3W)wUG(CHv0+;L$Z?5ahbI3lX&yXFsUfa8)tjFQAL-yKghwM6(6_CA6 zP0#jO@OV_bP1};GCWQ&{5 zZE?|e#!47l+`X`&HB$-`N2CF-6Fql*(YBfQ-l&m$`0(ca@~D7*G4C0h4E<@}OI!1< z!Y7CJ=Z|z~Ux;!n?Y6~*ui{q0c5D?~4=VS;VjBqDKei$hMNe92?QJ@@H;>l)F(is) zZpj(+9f}%08m(`S%%Sy+*9@(Jx3;uS$0vu@H>NnWEn42_DPmvgt28 zhPt(PV_=2-bY^(wLvG;5?i&)-i8q$ zfvJAP?_d()BAsvQ#0Y#gmQA=8sS67dJQ>;n0}w=hr(tOfH^dO#k7=L1>Q&@?I-VM_ z6LmRW^aR4PF(%R+9Ply+2E3AkA?}0ckTClU&yO^5jBOk~GUz)t5TX*4J}vPMc3JA^ z3{l=XIAa`sEWryj7(U40=R$-^enAvN9mJAj!=?Hkl*4gOEb+c60qAeFgc2#CFQYSw^-E z#FrnhCO8eQ-32J%9s`clWvaos~MLDF`2&iADd z*_|^8dod@`uC7-03t_%pHmF%McQ+9guo(!?uNncng zR&wLmib32<=~i+NFYH<qfR9n~{b zV2Rn&h4D_aO8niI?OLy07+(<-P`wQW%=@P;Ko`cd^GxmWZODAr+kR%OQ4bcS^A{ZJ z4~ZN}3EL&jqrPAz!aZMGS#0hy5gFmonnooy2(7UZI2uN=){}+6K14<3NN{h(=MD4hepO(vWF>GVjiz8WOu@W9%N#w z>UWTf3goWO+vVRV&Y~}hwv=ouuRM%W5cq(Y7(dSMG8Eg91;bFqgtuAKl;1!tyxR{H z`oM)Cl65rj@56E7N60bke8Q>5e)wHM`S|r5!FtNLtemP^gTu;DPmJ|U(|Uxb@dLC@ zSWdaxG?H7(iJUO5bxe?2=BLV*jX2^5?2)J9ji7=1A7YDZ6#wFY$U8uW1|Z@^91wX2 z$lt(iBR7e}aX{o9Ae{loIAZ94$U8u83_v8L#sQIcfc(IKxEz-VNt^==bHngASnA(& z5RR~83oQChbK9u;NOkI`_B$2GJ3w}^IN*7tKJ#4bnb2zfp)`@g2`Jka>O>kH&m+#e zzZLOW8>Wnm6h)%VJPdQn&U|cnjV%gVk|fM+;)P@R7*ERC&PYNN#oNSddy_k*jw|Cs zVtAG}LlCBnv0o-Ro;a>7N%C+VoQYaN_zbuZZB8ksxHK-%%S#BEY&1b8eeu-gjezRF z|J>V`_=ESo3E~hLj@OrCfA(GM?-&0nV1H9Ki~S{GhH8HYgVpkssRXs+q%u2y>~xo@ zu7fTHwAv?NNPe{12gK7vt9cz|ApW6ZmSG!>=Wqo$7~pjvG4jxf?x%crE;R!&w!8gJ?gi^d@#Eee4io>1$@fFh7GC4NJOqNs)6!$EYRlR);FYi z_~Jj&JnUoDfa-&$2Qh@MSOm5cRyqSP$ezFs(lk|U#)dFl=1LP;Ol)) zlthF{?`H~;M-+OnC<%yZ=eJZvk(T-dor5j)K)=+-P@r3Y?#AiwU`2k9>><;#bv5>a z4*ro}U1Hj*aL~e3#aX{+{9kLQ)w@*1nVMqnaRAJu9)alzVBXgha{?&K$!bcOr7czQ zXH7vUha#J*c=H)4r#C3)&0a|{XM(bvOaCP)=1fqg-1>&3n1KmXuGWPo z){{iX1u5N{GRdZ(#kUPQT71jWR7Iybaa2E|W7O(5{E47DkgBLb{~nyPAG@S6Fq{RS z*;W{?i#6{)-Zbj4{GHeMJxz0V>A;=MpaTW*(Kw6i#_-C<1w4Ygg&hxV4xU#E`WQAT z7igRUdE2-0IvxdY-zw`k8j&~Mo&q9+?J0kHOEmgi_ROsA-L=2f=y|9nvstx?B^-&m zhWO=SZ&(kC4wd(NE$=gKd1w0NnFD_Rci!Lqt^jm6|BgP^C+?(&g;- zSt2&VpQ>3h>MqOsjryg@59Pc`bDrnsyxZo?UTm<_-BH{_LtKx;vnDGudLe-H?q_-9+3y|*3mK&GiPS^ zGzp{7@=F3MA;cL7A7VnQREqr`tR+=i5ycONo6-PttZFI;=p=zmRlG5ZIqeq+rqy^9 zFl=VE0b0RwV0nQh8z)1cxBr_a>X%rA!NQpX}tuc^U#mE5>5g${^DT zJjBz_Wcl?nE|b{`zg81uYy6U%p|{4buPf*C`DHFVN>*I4#%F}MobA=eiwf%F2k*H0 zXgamqrH==Tq-Rd__3^cxgqsu1a3xi7UWF!DeU!E&Rl4reVg8yXhFUbnXwh8+NwoTn z4;l^CIs#Q1pbK{uAiq6Iwwi{BK;sP1mleo-5#P`V1)x6e7U<(d=;J{|-_gfoMzi>t z6Q!VJMd>5H7;Fcc`pBF=B;;YMqb+hEoNDvRokO|1RtLFn3G3sMKp$TZWm57}rMK)N z#ryVKfL{vXgez`b+}vL6C%vym^Gt!~H|Dr}LwJD2ly>$)bcr>dWC)a6xjo zl~Y;~#+tZGo^j;-s=r+Qm7ac;{gFIFWy_mCvdr_oAvX$L>?iCdaw-eyKT?3&87bv0Kp4o4R6hOF1#xV zy-pb-+KVqhZQ7VlFE?Yadi5wypR9!+<1B`3rNgsapL*mj(q-udzo;qb#>ia;(70fJ zt{SF_g7h*A00G!FRp#q4^}$H<>H{(zjdlk~EGpNiQqme4z0mb+_^WLi{)68;Ula}a=C$j;}B331O zMsK%L z^Z$LeKm&gq)2}_QVz$eR zHkv3ThURJw4+w$NT4mwvMq;`rR$$!IkXNWK6+iepf2wxio7I}HecEcxKUGhb;*)pm zXefPxA!azZ$_~?bSyg6NLKSS{I#9Z=MZaNHMvH6{*XuWN>7a?jqiN#OK@%qzq#-C% z?k2KL+%{y=mg_$QC{3IPzI)P5yYg9C4yCATmLV0rL1~(f*qQDmCIZ9~v`3rIe#6|i zmBpI2$P^73q88V&-IG2INy2-wW(@;maQ_dc!y)>16}<-@>Jttk(o;v9aJ3jR;LxNC zZbzSiH~t7>?U(#mk-_<2lsu#far(iIxoxqWCb3TPI-`7laq9(WQpfM95vi&_;Lr># zZasq^?^`0#I#WG1Z^1H?(wG?`tNr0(sLQbxGRF{|zbQK2--OJ6;Kys+(I+!* zQQru~@7SQQ4=C&yqJEMCTL|@NGgZN$UoPzs8?yyu-BOn6X_@C}nJ=;ah?dza1B^a1 zz&ON6%b5P70$;Juf zff0~o$8jdmDiK>@N-j;-t|0J63%r6mCON!A%ex5wG%P}gNDgi`mm%Wp{FYIaEKswg z(QUD6L;>nBaa+b=n#D)I&6EN3+lY~8F~W8NTfUF}?E(6?6L^CKzC9QNny@gO)NFu< zA`Y6sX$!m@jiC8vqQDZdTWmtI_7(!Kx4^f^*b&1cBn=| z&FTqvbkKgxgfXKv($k2*3|OxYw^UdVm>4r11I!n^;(SPfVOOsicD3gYyI7zx^zko< zq5u4^{HcoY%^G?$e51~uIKAQC=wj0w?v-Je_$JD)*vP$C<&L`jQP^LecjW#QUaZ`E zjoiKLVW5FoBKS2OV~c%w6h`@Tdw$cop>Y@$W&890x916Z!#C$C$wVj#`Z#DhG`<4A zq6xhPG$C*3b+s-Ym=o^CzXg9v9Za{zZ|XmkMiv~UQL1(vGMHZ8zh3lm_+LaX zJNahya^ongmp@at!%-UaaAH@3BDHXbjNM?fA~UFMV+cRa&wtT^RQz^xAy-`#z12)-wur}q$znid;Xw0dnlCx z3ShdYAKP$o8O&-shKZA&6SY0DSJd_>zFD=c8e!G;GddZK{#uu}$It@9LBM6JNmH$BkW^bUueLy9s{2BgAI6g94Xy( zVG7DeI|3y4m+P~&s!mfZjp9!n22%JsVe zGS0PAx$FjPbGH9HXzqCT_ts=S{BW`d?Ce-U{Yq6eK0_s(av6TSF(v*uYoZ-z-9p%V z6!s*A{pGWO-8jUD9b;iHBJ8~iJ5FJ5AZ%vlF4fa%lu$88*jL(4s9(Ad={R^mw^sM5AW< z6Xk{h@pw}=R;JVyBc!2~>5yhqcbO(8W|r%4ehj{Vi`8e)h}=lP?PJgJ5N8K=laoCQ zpBBYfgdcC0h|iu`mOc9rR@QD)RkaHHL+FzC+Lm{G_SB#H@vz3m{BiqjYnb9$gH!DE zaG_Fm7z9>{hQ*uGC7>tTY|h_;Vy)^xC`IHU$d+dDG?nAmY-7P+jk?;OflkNpP~@*6 zQF4?zIqqPN?<0q9^FO&z2@J*v0!s|FhW#57rKTy9fvH1)lGf=h$?*fYl zZ`zw!cuSCu*`|s7W*t|mVvA@()jlq&7sH$CKrjtb72XNDn+Xx3h*ZT1-1hB9-J?)H zs19Kd&};!3rD1s{+>StF{P4Y*AYOpp(UQy;0*R9+hY~aA7@&J`TqUYAUkC)ZNc0GF zkpbHCuL5MhbRpE-z;snl#G}G@RnO$J(}5f)kk4l~dE0TCvU}%02)kFV1-tKfPuL9& zHGJ_I!X)KF5N(Jgr5PcKmJLZmp-&n!Dm@7yF^p!l9SA0B*W;MJ9uS^JhDv2X)jwQG z9uJu#{+P68{zlvZi^&8U!-2`#_wd?-&X`PLu^b4s>Rvbhj>w<6+|4*_z>JM<#@_dl z@pw1m(AJLV2w3#aqba^q6%{)-5hib|H1Pf_)3mH*AsSx>K1S7@ez8&-qQ&pErG0!R&*Sz!2mTa{zlj8ac z0hd?`3C(Eg2LJ;#P1F!Y)ndvETJ3i;T>6UgPcZ@;sp z30n<-7w&h7Ub-Xwt`zmy!wBn)c(nlVn-<@Ra5gDXvu+x~X=WtQ%M)i(UD*NW#7@Qg z^mJ%E&Us534-{6K8*T1{aO82`UQ=e^xo*}JMzlwp-$WTx7__OOo0`T}S0h{GMDupI9^ojlgb1+pyl^fDF zdjEv9v~QDn1-NU2`Byv<%lc!HMHOyHJx?pfSl3*6m|twiQ;r+D3B`)OWPaqA%K2C+ z^~-*#rS(UfQuXjfUZEo;hb);$&oQNge-W?RFa7g=>E<3!;mK|e|7wuY`#QX$X+g4k zX_L`ynv91!rR$P-2Kv$eFGu@&E_epGp**8`f5As3iMt%A?{=IA3W{XOMitaWF< zfDt0v@Cw|*jcvd#o_O#aEQiDs_naX=OJ?yW*&>O$f3n@aCgX6&`X$LQ)fUNu_EswG zQl0u4IORiCPijh6N^kd{tjpwp;v#O=SMr}CyVn5+g)q{ar6?JlwPP7s?-V%zRQB7< z7$vyXeU8l?iT{ce-Uh5y}r#${kb=akE|TX1iLmg;2Tj%^XxnRkV2w zteKR-`m4Vy=lszb$m=dS62fCsC)qTX|><1>pA0%9Ciukx%wo$xhTx4x?EPBV=53vslcI zaWVT{2nmS4NH~1D$V_v9k2^X%_!N1t0UpQ{&bynM`iDj@>jzM1U+3r1B>77kY{ksv zs$Z>F(Lm=Mb?Etw5-bA2d2(&Z|gh+N@l1T#X4xo@W ze9D2CPl)&6g+kikHbQlTc#aTO8^8;z4Z3Z~^8B1GM;lIlUA4j5>^_aelZtJ+50qIo z*oww0`42Ffp<98AMI60P#wen2GF_$IEJzOm&~gi%swx41uZGX}0oQ|#+)#nV6^}hZ zmIoelviurZ@X1G&V^%?xw~X05(2(67q<-=^kh1<1q#TX?T*K#8n|hB1VRE>gcF$9# z{fjXPkQ`lXOG{OK1qJv>?+*+zY;T?XQ)V=xFSo;#8vcyUPP18oh-=UX5|P8;G(#eE z)nE)EK1B#CLZD~af=7ofw?671^<#*oHN=-lq*3_tL*wmmh{z2d9o6(S1X z1G)2a_00GQ$tYg)IMn<+@Y&tqV+a!qNW{{aBr0W^IjTU0&SZ)LFo+Y;;H%=eq=qYB zjC)xk&818V$)M_>ER74t0ZP2PK}zBZBXDS_dcByU^qSKCF5LL5GmhZhGj!;NFR!A+X8%BD=-p3u|UCC_s)8)EUxDekb z#I=O5RG?@}1s)wL_H(J&IZQ?MK8-{k4Zdtgg6E;!{E`}b&B!+tkkK$$f_JWXdM!f#wBH9-CanS$Mme$Gdk^B2gO#dN-}SlI08L;Qvi z&4ic~D&6qK)a6h!0vpYJYTnI+1dI+%rOTM>1W{WQ`v)N|PeI*&QEezHU<|sSjfOGw z>kjg+URDzME;uq{6>)Bxp2w}xw2^pj(|6jU+@|lO)eZ&+0Rz9iMrNxTcy#H1*vay) zmxDCKNe0-iAhs1dSrCvPsdli zG=$!nV}5NQ5-l@PA4dN2i)K=l!VLa*0j5o{UQDL-PLADj$=yE3&46%+zq?ETCAuoL z9h5Bdi(J*=QnD64$a@vO$Huo?O3p~u;{LO3q2zLLV}_Ei08>A*eOW#wN4@M)!tq}@ z#hK@;$2dxPG;usu+A|T+1q1u)PdeGgGFuecLcZGVY41#k*WfFCUyY)zLE_P|s*5q1 z=zEdxfQVKwH0VLYk5DOXKYV^r%q5{>?sxs#-g&%;s9be)?Q5RfZt(;T?{IbRoc*z? zz>c>sVxu*G{F~Y_v>KzuPB~o%lLvo%DUOY<3B=KK#rlvfBBvFwm(wbRAXYEviT0~v z%Ry%7*0`Vg%%{fuT;L%i{)B?5iMO?5_&3+5?Y9BAHO2b4>w)ogOQToJ13B4BpNLf* z?kN2MWcH2@d2cjpwoh}dpx`siT`^tEj5{DBZj=I4B>NqMHc97Xp3(89)d=L{f!w+- zAzA>ITxDJm^`!6m%Prces`HV@cOC~qWMIUT%7`bK9h9#@_SutTPtI$z*(|jqNv-iU zm^@g_suQtmx?-#`k}1a8rG%P^H_`yxUxC+&SZh~|rQ)kqLH)X(rk9XS6pJFbl9a0| zz+zGK-s)YOK|H9^_m$Np=<2+WCHz$CA}~0fs%=iz+roT;9{3Bi9f!;`m!qJ}dA2mo zy`{d|&%K0q!xt#vVpBlN=a4tLvV~yKf<&x2^PuQFa5JUJ#k}_IeL0`$ufV_KWY(Ih zisBh@37^J~*Ya14jMKUKM+v2tGF&6x42Vb;v(J7dAJjv1eqR7sWO;*^RJs&zd`?DW z$*KNCzM$E!MBUG83*o)?yewT!!cgy^6hk3e$UBGZ)W|VRPgO+avzdyY`y9}H%CKJ6 z%!}(dg0RGHkzt^HdmmSm2j4!ZD@(?jA%nRS;;AK4U5yo!>}hL9xe@P^sDj=3QdyzQ zp2ZSS6O`({UMLKN-j?B@MX-oM~2rKe7?f z&Y;Jg2dKc>`-=72?5FSmSJ|Gt>UIDpo{lFURLXFD zc2zq*s*Ix0+OAk9Kq48eT+$HPGV>!mQypBc|IW=Lwx3y^E$v_)^SLbtobL<*T=gQl zrEsQP+AR>@F{=8|3n*8!sX!1dX($^0+Q4PeeN=iN3q(+!*qLeA$6ZfwXhWG zfe8<6fs(~QtXp$2FiX=(p%C!<&UU)mSie2w1xI8gYO#x|++>`zy1qDDu4gm=ITY30 zDYxY6qZpZNy7I$C&XE$0mCk`#WO;IgK_Yr@4_+8t5p%(&(|Vd>5}47hG)1 zD3^hiJ_8e2&9_@6QdMuSbXtwgpb_8jog9^!rnjVF;OnXmxIcdk_c-!-pTft-A8D

0I)}kDxH+4m0&dKW8A7O+9IlLz79fESEOL+8!^}{t( z5{$4X>2|}k1YZ-V#&_Aclmu^56@R;z5}^93aXt-mkf+RR+O7cJE$STBrNWu_N1%hr zJj~&zBlYK!HwA9HhKpOSk-S$*Ri>WrpdRJ`HdC*JmN17CKJ zV+&uR5n}#LOPH3dX(K+##^unGsaUO&mrL-HusW$^k=K`uEsG~cj8&#z?w0ybSeWoI z%hP%}Ch3e`(TCACX%Iz ztxr29y7_lh{IFR20-1PFtLV*^AzQoQJH;=`iQPvHmte=E#-twzWAEss5K>h;A`~A6 zFdTGvOV+7|bTu}Ebe2yP9P2?C)*1~4W68o2xoLf!6jJq1Hc(d6Jv8X5P-~$!th-)Z z9tcc77&vyYxd81IzZKe#1@_*xv^MpQply+qO>C|GNDFilXo@GBq%EukCxW>RD=g9y zI5I(9rulnNHvUI}YTTEvl`bAqPz-9J^5yB9ue)mm(W)hG1F;Bgr1JNC2uq4~ggqJw z9_mEwyK%v3QA!dd8ZjQ9>0EfPcCv{D;oO1vHy`&K_%c(ZPy{Y3GlU}L`C+T)Vg^&Q zhM55+ux6vV?VIMd2(d_=KJ%q>HT-bLyDFV|cZqbC-wo-!3wEh=xOpSiJtH-85kRL3 z1MZW)B@E|yoRb+C%Bj8|YZWXU0w5BhU-3%V@8pK@{E(BQc)??$wbfV0z%?dXt-jzm z=;+F0xD>D_&O)p|!>19*;C-h59%$rG;kP^Fc;{4AQ=8Dd0;GGxgl4Lst;pa8uZ)AA zpY^@~l@+@>kELRKa}mZ`!|H4J1~Chw6htBEvVFaf`}aX;m-m2ZW8EjQNsCFQ{ed^g zjtM2zj>SMnkBGzupt!j_i!N=FacPMjj4V5)Tza&wSQ^5NB##-3JzMjR#4m2B(@NsW zi3ZVjaMV}zB1+x*kX!y_b^I3SI2g;rFpKNY!_#pX>UPeX$|uZ}Vc4vd7B2Kjveg#) z6~EB0NTIcz$)@E%GO;##XLs^qp3Wg1;mwn7e?7=}-*vWfi7dA&U078|hWIEFb`nu?PW_F2dX+jWWxQp8rX#l>UKEd2(zc zuBt%Ib$jDH0D`Hoo_L!6B--+OAf{e{tINrHfY88W-M*2`6C;VX-0VZf0Vy}~36Ae>kk6;9qHS87DD)jwcshZ<16RTu8-B8Pe@An!SJ z4Fe0l)1afS5gIi2D{fWr=zF_`P$(>9i59ZA@F9C{h)-AVDRwwaza7uw{LZcCr6yx!%}yW?6qqWt%Q?C9%eDgm<6oDAEY4gUG|HyGvxV8 zwwTPLQyAV(oyfETeduv-vSvM@bj))DdJi~iyQ$&5NZlDs273LXwlye=o%yRo!F2l) z&PS1Rx!3Etex4#GnQ80H>?v*GjOO?h0?r>Mbim4qls`nPhJE)YFw9BF_C@UU>V(N_ zr_QHm4%`Fi84=fm#xr|CBB&Opyz97c-MlXbuXF_K@Cq`dC*ga5FaCx;u&Ud21lQ9S zno`Z=QXkfqK&%v44fpcih3J8zuIjNts@ie=dkHpQ{NyL_pjw|&Fg_x-jtF4`v5^BQ z>@ZXOJ`Q;d~Fn6A5aF^{RP(^>N_u_vLpm zq-0A_PP#CU6BuigIhN0<+D*wC;g>4LSqydHC-7TW)dFFuln%>LvQw{WJl+^`>`5s&u-#RPQ@bMwW+g zeIuU@whXx$p%0k&%^{Ug>jRq56m*jr`T>8TY&z>nHuItqMo;mzz8kgo+Rc3Z8rDvN z`>BQ(D|Tzn4yy&u+GiRJStN04!}&bmbF@0IO)|<>5jLeBjEhArg|C zXSW4ndkfSO<*_E2aM?qjp))n$-v+#)=hfvc1+AF_D6UlPzmheQuA)tF0xDm$ACRw5 zNu|4+Oc%PrJkqTN$guuF6z$sK8kGn}W9TDwOHT^?glD!mO1!sV^@b=a&BZfzi9zf$ zzhv_n3}Qz<*;(Jt9x_nu*rFzSl;6`|yj#K$9RaJBwz0Z{Q zF%tAzxcWeIT#uL@E1_-U_#>-?;pNxRpU=)4$$U%5p-Ar(!4IR6_WW!+M;IJOk z$#SRHTIhX+E0r<7^Q9tl{h+6HsfYyCN*HBBKK(+i1I>1oN-$7K~rZu9L3NB7sz&HO2;GDn!_+$k? zl;965IBGB&yTR{>l?w){vHh#5vFh$Q<5YLJaY~K`QTXjbbA6AmyZhbhs1N-|_KV2| z@kTnIB8{&%U@3tf?(FK}FX@QX2pI9x&;x9wD_c(`@G!G8HPM||E6p`cy*4X7N8f#y z0IJt#ezn_u$!%Hz=zFf;>>BRE=pyU(c43-@{Z%dEH_eP(FBQUAwVbbrY8^ksg&I(% z>`hf1PNt@+j&V!4#wp>?YK?u&fk!rb)(ydt&`R+?nzJKJr@@wtE~78F-L;MvpfkSj z`CL#(_97`nt+yX`WpCND$3IhL46{c(HBSWM!jfY5P&r-bNOTgi1%X=k~7VvCMh-W|u zmJFUvF-|++S-;P-15~mPxSrvI$LuKe*Q^2a+YCvG{_s|!WUxK_L9m5#;lxz5`Evc# zA3so*^E-b3r2fS>zl5WZhai`SA>v$y?V?$BC%#K1gN_N)^t(srV#^tlT44OTkMylK zi!u#!k)95uQ4M^Ndgs9RM4QcZ0c5LqZ1glPm;hjMu5hDg0O^5&HUfnMubg0?+0TjQ z&|g7fQ@Q_R{&axxEHyy=@#%;ImYKx^6!jUdYgml7l{Ey@lr(`z=0NqvZgbtN>uu13 z{LUz+$P`vOqtRxW6|`yaqtLFYhLUqwG~N$(-=TyzD;GJbNf7=CL@=jrDrwyCzA&O2 z=P5{gMh>})2(~RL%qg=p;>^Z($#7dMw0&rQnhL^1#80D{y+)N8iF2WT+X;Dg*(Vxm z#HHi%ou7%Cq^aVzFR~XJ59O|$)Jd$JS;muCKp+M~s|3}+6u*!oS`p}vw33V6N*;W~ zR`MNoHmnFhfE7Wwj;(TgAM_@$8qJb~-$u^Tg{%8ElU*v%^~5|W68%=-yZ1})&CIy} z$x78u#MR*Z3+YF|Z{1A=g(iFh7kI))_SPMy>{=$7cv6OiTqKZdC5DPQHt?1p<}i~H z=L=r0T!|(y3uYn%m+S!L?FYn(l82u7O->VrhuZ0k1jVrpujkxK8jSADa?*=~?)3aJn-&^$ zM>?flJ{2E(XCPQY3XgforJQ5+=ThF3@J3GBvQCIH(KS^L_uWh0e54FOF#hih?y<|8 zY7-U443(Ftf&RwQ(-Jkf(4ibN(lqZtkGm0#W%QV{ZRl3&xZLV-%{^f~J`8$X5O4zk zsmBR7A#094gD=wNaQ*<#Xf|rvO@E2SpYssr z53W%i3{?L$n6<0=^+rjzPxVLNAgW(M3$Us`2K8Ch-vgzFg#HP9bgPxQ3Yn7W@?Ka; zO{<0CamK+=RnL(frS3J}htD!bApNE(`t9|sIhb*{p4}(YdH%U7y%dBP1K(*MN{w!6 zXb+UNU6i#wq^!d9t?4DPMB~U~p&Zp@&<1fd_5v8rWdJ77&URNj?fM8D?3}?TEYRrF zFuS}@!cDt;OwhgIThNV_q2BE`VyHKhoy}C$%xfsCDKnO0sJHH3vf6F!qAljWIaDz~ z-%W>qZ?BM=PxME~97&2;x}BjLXto1DOkM;-x38jhUsE=r^|Zq3R{dkXt;}C|K%5~W zZFN{rkkL9*P`Mz|rO$awr0^fhbBFEMTqXnbO{L;4af^YE$dk{s~7*^4x)@Aqdf`jL;LuC}_< z%zRFNFq=f4Y*(DZOFwpaQq$oJD0eC&U0^EXJTYKrDx-R9qiL|1>fn8SMA#cmFuV_Y zBeOm*U_<=Fp8)q%)w9<*BwS9fVI0CU>JSDQO>bNxB`k4Eh&v_xSWBRw*?Y?!O>>gn z9mif+2HA8{S|TGm+-8?LXN3H+R=k^A@gLAG7}R+}m$V(-!9ciAwbxty?lumDUw|~x znw0|=Dr3$-cs0F*bqQuh|3*y<$o&ul;q%4qRGr}3+CQNv+WVcs8VU}CSJ6fNrv}0s zR2(YW~xI@%CsP*v1 zbL@cA3{mxBYj=p+EReyZ>eNhlhd6Q)BxVEUe#&7ZA+xMZ}d z9g#EIaz?5bqcVR+u+olH+092e{W(3Or_s)JoX^R>RMi(!l;f1oU5TDi$8W?61l*q- z=-0^scyUF*h*HZG1*u~opZ^^^yc^vlNeWq0Ka7hSCp_Ve9(7;Pe4M?r;hiW3JDU6{ z9M)oIg@{Pz8fB8+T(fKvi#4%C z!6<2*?OD+N-H{PkzxlU*JJ*XEbK1EttL^uKtJvHN-c$ig!gY&V;WUcIZWxQvtxz%r z-_$Kf@?foACJB4d{3lwQ)f;)qMWJ!)>nPPj|I-k4m8;*8OjwFqSy=R|l7CYrB7$xIi7*yf1l1g&nHMYER!Ur03c<)qh~ zAepS5u(=n}Y#g3BX+=G$I8D_{&YFX6j=C_&}HblgJh_JDr35&&kR<}C# zv*(@Gev;5IfBr((@o{!@t|9<~u~KXGL>DWY=3q5(8?m}Z+*s8F7pvqQ7AqdKm50>? zA1e+NfX@Fn)w3;RdI%vHKs_4 zybQc*zK?TTuhSkeTPt$gG*34R$w>bMsAR{`q0*ks{vp+K$_}X8d-WIMQPI4F?y{t@ zqm7X%-(dh5sNKY%qvL;S^^Zr9Y<`vhuIfL^gbT~Q8HufaBHr?}VB$dyJ4Puc>sthq zR1%n+A(#wWV1U!!;L1Qa#XvW&X_VToV{JQYZRcri2eP&|ZZ&l0UdZ55{`;-eGR)R; z5^LFAYbn!O{&YENxgw~Au;${(AsW_f`Fq>XNsH`{;RK)cj}ieZifS6LG-Q%a&O-Qs z2`+n+w>KdT)3qAUdX{-(Ol!})qwSlB7as&#Y?wxyr1(<@1`-F8#%7G4Pf>0;uBvHAEJ~+5=xf{RWp8D}HL%JO0vo z-l5E$!aP7KUW^#7PGa}aPE52CsfC7MpKd2{svB*ditC1(r;_^J@w8gLo@}0q>uStX zN!>Ag5+#Urs_(P7N$3LtR7NX;ukpuLI%l~>@N9^HfzeXTovU%0CuYL`4m82CO8xNk z=I0LUkvMR+oB#xHXAy7d(C^RXwwr0isdF<h(XT1=K}&=hhGs@9b`hRNn>9w=$;dq1jCyf%OMtuRx7TzqTF&r=y zlJ_e}1+?~o0{9OzaWpyBS9cI;3RLc_gs9vEEnQXaCVJQ)0xJlEtAt%h;310$!Xr?L z=?DgqK41_km7~EYo46iZsRRpj>vH?Mi=_Goh=oU8q8pTY71r zz?&JfbSQ&T{vECQOtp8HVwv3;-EvFUYND@sc*7I-N zHZeVTnegdR;%xb}8SbkfvgJ+_Y?L zyV?4$QR-mZjDu|>eqjgu78nB;)aE-_KBCiVd$pnd_F2 zcWPwRls8Ok?KGgKR=yG{!|o9*7wM;=R1uZwI zLEQ|-5ga1ubV0w0hBbO%kn|scNN0cuA;f~}k7GvKitt}Hx--u@B7;0v1bO;QTgOu- z`ux_c%)Vu-LnXzw0?s&V)bm}b=P_?A>Ipj=lqN1_xC(!(?3>yo?3=8JtB^im6PV|v zPlR;R@#JaP=6+1kqS)qm>KNQS`pHG*(R*W?7Y*@e76Pat3N^%mLf&FcEsoxMV$q`V zcnFGV?3&VR)uc~log-BNx?P}VTa$82BEoiW83pEZJYArhVju9vcAS~ZK9R-4>QVKL%Xeo26DiibGT7WiL z=2!#(s+KaTrZETwK;JQvYZ{4~D0DPJMJu=&eFA8f6#_iP>cs4GmXK z^b(UfxTd=r2#e)!C?Fp+hokdmc?6A&AoU%}2(t0Ek;1@dxqZx7T<7aAzS%=Z#kpaoZj@Mma>X<6TdVnIB zjN%}6*L`Hsrq?xH_mVAoU&ZUtH|WU7LGoYw6vC=H4_0-*ON}-EMDro~9mo70B-nAp zmA6y9+&UiSAMG_ivJ`h9E^p@r&;g4nHgD%xgqlClqfBJ9YrY3pv%qFB{=4+f2-XAO z(4{Sip`j)##17n~vZLkY5r@VjDNf^#Cp*K-xNv#|P@d3!S;ZqaUwDYllbE@2aCG-% zWEx3_V{iQ}o{8A$7%;xfhHBmM>%&N(zn=HnUNjTsJ$Ym_Y*<*o#P8sZj5d>LZ67qRNb3uZBE`dbI_vkKiEC_&}p(0ovO=R z^T>f}{vwd*-&C`u+LqJ~FC3`a6(`Z*GwmII?J6ka`~yAQ^-<87B+y6q1^V+h{~Nn* zR(pMF*S8E*?edf8I^i}D))?zUHHWIv=@jH~QlQwgX4fxoA$^mnAn(p~d;u0{yE94K zolM(CnkbIFZ+HY2O`@IsYAKNB6OxWdN<4$DT5Kx+AzrY{1?=Hbxkz}HJYxl80Pd}t z@+d`jFS-!mlG@~hciY(ybbgm9hroi0SnF56D$SdeU*d|TQKffH*Y3?=6bL$C{Y`P> zbedY}*(PiK9(l%8?+UZx+Cvq{4=dSbf;yd4Atf1e^?kj6#_<#^E~+itwD}q}$}|3j zsL}GNe$rXo`VBr%t<>)1Dh2vpiNdggw;#*{IUyFOOogcgA#}o9g^ZOUIp`CYbKO&U z7YklEkax&{%XO}Oth}=awms&^5OGUr-bZc0(wMY};H^jjsLQpmv*JzM)&vrwN)S~* z%O&IXRXm0e+yrpUG^}dK&F710`!5p0(0T-mA!d95N}@yKc{^92G_o$`?OeofZ{lqx z-ef)v<`=d!(oYDIr4dJ@*QQoU}e-&2Yrba8PC_=-Tk6HA6vH z#hca)Z<-lk>tiD#P0U8dYG4Mz5$=OiY0IYu^3G%?Y7yE(tM`%fo`$!z@QvVwZg)x~$^W zHo{e!l)`9BTj*Y;{>jTV2sH`e&1Hi(+b#IM`U8fcMIDksAvi~W&?xXyRUkvSp8}t< z7WlXK8wIKZL@2OeS;fn|qCxMfKpug93jBbzz|R^59-=cF#%y|IY@_<3^^yZ^Ym6@# zTTsIq4=f>ko})h~Y_!%>Cd&m@zsgw6n@GE= z3xHcztbVogsY7EZxk`U2=2O=6bU}eNeQ)Q}hsMYa)7);*W#`xI#ZYmF^ql$yz_9^#gFxb@)uz3Q2S6g2YWmpowNhRUFShU4t=#6(7_((hn zRpJJSS$(tKC9@V-v(7ZL9+kkQtSo{LC#^mQ&;wod;0Nzv^V1Qk#kBf()Ynz`xsTMn z2Fqow56S#e^gaAOqrp2>tx1y+l}r`B*(yP{C0XGSi^=GS&159M2u*>Ff(>pKnEjNB z>RvS0+JyN=6Zme5-t@+zNq`PS%yErHACeXPNj6#b@rCa6#v*wuTIwnvI!&SrvjV!T z6t5V+=tTLt5I|L%d8(znv@8Ign+#D4fNFaorBN2^|C3nph}B~K|0rz0MZJzY{>_Ve z!59zAe)0_6r8S%TB9VYM0tyDqX{Lo22W9+PSr!(G@vb1UhLhxg%T z9p=5gW>~KohIE+6fTAy>r1aa@Z?w@N33~0xd$M;l<~^na+Hkm&%t0t8nTI}99(wJY zr?+#YX&dPt^Vu*NtdjaOx-#arf=eJ8021imU1K8rg+6vpMqNit>lUT_)@9a||IJ^i zDQ|oIAaU-_?-a1wu70?IF9)vb+!aD#RVQCgypxVm7FKlR6|UWrSGeK6yu#}q%q!G; z@(Np?&nt`_%qzSZ(0o{tf~g6uHLt62?BA=Z0r_YP;XCrm?z)ovkhiy%|7Fr~*@FfRxSCZ-uw0 z{onw5;#sTAkK3s778Oif7l>2&%ZnXmSCL{5N zUb)9uwhWhRv@N6=L39qF+ErV{TKPF$wU>64VWSl^@~%jgYO|qX^QDC{I~tP$`<=K% zAFv;VW}C3z2;nDTPnu6xm)u?1D~tUzDl&JC!Yl%&$U|@6OnrbOtedGB1fNy?C3H*K zv1{4mEQhb}4rg_RXs_iq4k;5-BOo|v1PGI{ks3`gKXE7%pLyRRGZTIt8m1a!vp2VI zOtO6)&rW7N-auq&yaFEQ?YvzTZU(h3J`o_T>2K3^5fc#3SEy?QpDldB-nwx-8i%fD zP=n(68bJvqMHlxSHna?38;lF?OWyu;&Jc@Lo4rjE&@WqM`u8{<~L zGzaXNeGtnj;8t}{c@b!3vWsuFGiI9?zdbCOPOo{oFYi4MN{||g`N$X5)XVooYQ`~fH!CYz$tL~{`CwOZ;J&k zA4V+(T&|Ke^q$1&1WCyBQ*Z?TR6;ff@i0@kgn*rtduiAJAN%RZT|Id_Z&OeMC4^MN zjI_A2FnQk#E7C$h3q5E8*2;Joj({up%K243!9*Hm1K2}X6xURhs z;F5^S32^d75yPPyW*d={>FU)0VF)L`~nxFV^= zXk5Qs@mGyZ{db^PlPiAY-AU>{*FX#A9?L3TVjHN1(V5$|En&uX?c*~)Fx!dLBh0pi5iSRcB16~8+OO<^pG z=@Z0vs67D{UsUl zAR!nohQB$_8X#|^|MyGz&qgp*{Yv@8_%T8&8$A&z|7+C^HM_y5b#`NNN;=|bAPZmY{`s?y~rlUW)E%e<3eZdfh1yBwTVsv`DP*e69@Q!5yUQg?+D3yagg1ZccvsyTxUtXDVdz6HPi~? zAoQvXW`>+1gPB@s>Q*UL!T3EioLQ8ORGH1`@#h(k)HUidepJYol&Un7zFQ{caase} ziQk0dGBF_4OVF@n1a^mgmje*N`$3?)8mF{Vv6|4+m5a8MZRiM^$CGZlaHf08>41dw z80=EeA~i|8Hbcs2B8GgLl0ht|ISKohYt{B1E(p6d%v-5rAgAOp*k7Y(vfLj_rS%An z)GWezZWG}p{QzFNHvSHESlf7yS=Q~UEd1)_?PxO{@ZcE*TH!K(5IA-R2pvVV^ zTMe*@8^M^5_BKzTNoW1Em5BUWxWkUHJDP-AFW>}Vyjh46kbM&ff>DJ2F4J1PDiI; z#KrwXy@`v3xK;itl!j8&Z`7eQ9Fw{hxdHTjy(K=*z(>}E9Vxn}{BA1-s(aB^#*2M& zWF`UTa%6T;+t3JVz2(9T{;8$3U9w*RLi`Tfy+Q`;ZAvG4W|%L~FXJ`{Ds{(xX~XP0 z5-ySkhCweW6i}48eP#roum03E;DlcxQtw`L5qGip5_r8IXeNw6hnP=8*BtS@m2)w) zsn2qr{*qTgZr~gQE0yEZG6!u)z%41`Xk10iE5CA4@nIT}wS?0YgPShZ7%gQqC+Z?* zN`HtskmPCDO)}+{Ep~p<2&$CB^r%da)^9)sdz5sbPXa%sK~I@KOHL*eY&c^6(k9=n zZTlU%XSU&*8e1mrCGroD=|jk5hb}SmBc@P1z=NB^WJU&R3z^YWat%gzzxv%c=qwK+ zZ*p@I_FF5`Ca_Qs=)TwFrQo2wvp7Q+o6f<%@^*be@-!@65L7|(^b2X90vPwcBvE73 zX2SmBa(KOMjof$!dYaPnc76q+sG+~=^L8rXnXZJ%$oL@cjt=|#DS;B~S4gxLNQB0& zpdiaVH2V#7;H~YS*~EnVXX=45m#PE&B}SZv{vE1KQ&;x|vZk(%=b0*TZ>9Xb1=`|m zNNoOPLppY_9|Hz?t;xkPb=hz_0I25gp;Zf2E2Eulh_D4JeVn=QfyNj`JSZJ7$I=Wx23(GTV(no9MNgoaDVvUAIdtm~{xUSo~H(2fHcbvupR^bAar+c5rwSlN>78i9qc_IOS`H7`PCyaZz)NRq6PqI`RFmt!W5eBHa znNM7fq$|k=5Ts3?#}5A{xc)9^a-ufz-Tr z{ZDmBPeP(gYH6&Y{el9qZ4T{b`1Sq^4Uv%K_Nf-^AHi%K%$=HN;p9q9@9jJcGrrob zn+7hgpsjm%$aa@=mBp*!^&Wng9WK;SV(bLn{fq}hL0JBjVI~Ga&~;F0G9}@l(Z1a> z7@(s!4yD2vO|See|6V$MD`s)9mb+giK`9|{47e*HFx3D#f%$F*bKZw=R;I_?yi~;4 zkh*`LD(H(FZ=%C{KS9mwUgY9>i_75kzFu#G0dChIOnRD9e^RDCL#DolQa>(JqY6`r zIzBKk><5wRUJ0862CVLr-+&dpfzQ$f?!-E9d?8}r&B6phz^#@ZR010d*HstO1ymze1%!7;m&2Q4Z|2+*(C1Z8s` z0x0BYts@=GLP&(azaGCFqd` z@)!CUGfPNRT`ouQpfV!TLpx9wm4xBk%>sRA_A2h{`Fw2{6@FWnhbNlaoyh_+0{)b zfA8xOBzLc8klYKew-lIdsRs8i7|cp7LHEb3?q!fLU4<;n>OL845FjZ8gcg(p>SHRi zTEHz?bckSJAjo>R(SIAW+I$TG*#WcqAS&5Aj;OnP(FfNt1nz;?y8;Ei(@h14Q-8- zJB^bmv*t~0u?%AuFe z35U)>We1QZXAOSGNd>Rzyefx&(1E7@lJzHhMxbE1ukO(#i$wQ(J5Vog)a%4gKR?%d z6X1??$3>6X*eKISBHTuS-HRq;03~`91K1KhrZWK@qT@!8oE>t+=!RhEsn9GeJHFLH z%z@z*qbrO~0jy|)Hd|H*Se=vi*jp*Ft)EtEq;8^>x83~eLjYnlALp=gSY5mjc)a&R z5~qK&hH?7kO5pTe5|4Z35A{IN|NC@i4dXTv%-KE&8aCA77mx+Oe3@WsNSHqYtr(uK z(V>$kh|Bl>ypFJtRP);zt1JkHLg(!Ppe&_+PL_IywbT!rrGCvIB#UlB1GcZD2k@ak z9>0AZ`{kGM`Ml+GU&n#u7ivxtDvqDZ5@?-ZGXKo15lQI`(gkgs1l>L55&q3mGjbo_ z0jum$cABJ8U-~n&zRo>8JY7M*yQjP$L*xWThWv%oJfBSS?Z0x!kz~k!%a9x*Q-WXj zln=|0smYL;f8$(I+u$@a=pO9OJ-x|tp2crsBjj*09M@jAvMC(3+}cII zK1mZ>+Sm4Dv~xV+C!Ogc!|bgi`Il1;<8}m;1P9wm_#+(EZf=YjO))0-JkdVgw(hO# zQw;EP(kFAOil6UBXAhz*6CBaAdcV0gr7MRnKq^o;4zS=q<)KqD1l@^OTLg_}+CyYY zimx%_Z+rbg8t~5VY{odP>Dt9!=dO3*tBap&y6>igB(Q}dBmKO?uAX+aR6|2@pE)Eh z)PvE*;Va`uyOH5u&Z_!B<4rbq{BlK%)`*ZAr!avz2rMO|Ieuj1dH&^i^{Zu1^NEh$ zj}u_=gTK<;228>N%@O`xV%XQo>ewkw*J`V}*&^yWAYvR8BK#wZKij_^0NXVaR(Ia~ zI?^3P%Maj8Dz}r0=Bv^ULVf-sccbdksd%5H-f@A`q(_-wRb85c_ildAy|k)((oDSK z$J(m@3AlAniZQdoc~#={hA}ECZE5%cG>B>|W>cdvsAvqKK=+~<70l{;SA$~sd_0|( zm+b!MfLPbsV@TM$_nTnSmV1VuL0zbd&&YS~K)T+xcVGnpgLli?UO&HLbQWwviy+vS z_HHqPGz#kEc}^uX2sT08SdJ!iFZwt<9uTg*w-pUKL@EhdOG}B@$W*QNRMkku=?`HI zk%oG0FHtz7sTY+J`ZA@*CLkPb3i4oA95x4MGLItbh6?Z4BuP4;CyB?#Nj4g7O3RBq zSawrcaIrq)3To!z|2b+&sezlduQ%_iJ~33LJ^RvHOCm-yV{ZppN9eXi^o4J52!R2a z6{SJQwS>V059&{?wN=MU{L}tRW&liI(=}%6U#3G?;6G_~i=J7@s3eDP6T^AT5|yI! z$-U!&CelRIUHlm&?cGUCx@*i7vk+q7ARun*=K%sl9{IDZ0r?@$%=|5sza07d>ATs& zM^t{9=>4fmKStkoCD>f6&-|EE$^|9u`Lb^dM-4(8=uyc10%ZughYfAOyo zyjEI$G_eOJ(j07T$a#um`#vfIQN2kIYr$4M+~^OsX}*A#9}!}e+vnH4S~RG+{r;fG z9o4lKy(JiK*BXOiq|gfT{a#J?>n(a98qtD{8htmkNA-xNyFJZ?s;V+~AP|gdO?p(D zULDrGK2J0lo~}jRO`1ERh5WH5ROpLnl*khdH2RuiNF~I&pcVl$* zs#w4i^#uc5fTc5sSJ217#2YRdc#yxbU|ojqva`p0tz`M#-zt%D{Onlal3#Ub2)(Tf z26R!ib(5%ed$z6gMI)lFITrBh;aZP7AlB)d>%>*n6|2R1zjt;d+V0mi{wyo2tgF*% zsw#x}Hg}VHUmXs{LfQh`*FsTQyI#9$W#wv7t~dGtR#EB=Ht5DjwQsvSTor5*wW}+W z-u#7V+S*dFwYIKYY^qpUE%E^({=-Okf-Rx29*F=hS|k<<1;f#F5LFq({*?rm*$+)B zeefsl^7H5Z!}Y`BNq|j9DL5(Oj+Wi~tJ;z~IBX5U4}S(c8O|=GU5!A*{R`ErmTHxOR=3~h zg}-f`y9GVKXG~wF>Dxm($P2@k@6`enGYjMgD!?}vTB}D_`E);xVXd2nG*YdHfwH=v z37U(cA@?-91EA}sSz1FZs@1Ob1!VG#R1YU@1M!D-w^wTe95uJ*^)-UL!AfLX=4j}* zNB3i}fkV-gtU>H~>2)_Z;7IUdpI z3(YR!RP}8@eh^wL5G^jAy+C%1%2^ll`_UeRn+0eEs>oSdG8aQJsS+I(-JP_3eV zHuwT=h?!u+^*}~Z9*ouinRF3ton0c+7Z+>u#D>7OK(H-fwqN2NScuVdLbKG^Mtkg! z@dIk%uN_U0f8#?(6Fa|tG;#04M-zWT7=5NK|uH4>G@HCIEdqFCT7cE+_Nb~zze9>82ldqL}1@VlgagXph zhw8ytF*}WspxI_=Hq;biShIrxKXf1>{bW_37*i7H+d*ieAm$517cVRf=-Z>{`hxkz z#p+doj;O&7Snh-zSd-7D{j?4{v*l86D{)J+J=725j}XN`BqM=OXVJt-q^zL2jo5Z0 z>+#~TN$QQ&Fo4{uGSK%v`b98n0bpzdtU53j(w(fIl`ZZjeG{=&!LL=!IRzk$tW3NC7`dz&uSf~opNEom9+8yh1!)WP*(AM(iRQiPwV3AS;QSu5dO zE1?LN5hsiYyYv%lZNf=xuF)ewe~hc%VtKFjyTJy_ltwJ8tp>cf(VMG-5ugt`zQuf7 z71nj5t@Lhb!RoNP9Yu#A()0}=OJNNti-lWtk*t{$a81m9FaZ8w*p@q085gy|#%P;6 z42pn0Tjv8*OT$s3f;GWNlm;+{!4jLAAvLOlpbJqQ_O*b=mo0wX{lTfp)mv* z`Nn~(AfGMtMxO>a!KN_pQk|`nUz@`25D`K|u+q1_aidRfD+@v^YC_Yg=CE)3reN6b ztqazAfN}wQSQ+Rm>=tFKN^A6x?v4UJ0CJ$**Fs_H3!@%t5Br*$qoT&=X(o15SzT8q zX+6>$42g=(m8+l|$-Wo24*ILHimb#-krVwHP)jqYi!c8A?9XfcK-)==v8hDi@s zag3UHFZV=1+rf1-K+H&jAvCnX=ZC~f7FfP+^+r8Rvnqktl>j$z+-n43cyEa5vWt>i zRAH9v_uZ&_t%1~0P%?M{sEE2<^)%_A&1gB(} z<+WV*N8M{u12#$m;{s@I>5loMn7dNJP%y8Kp>5H28K7dz!od)@8WeRSJ%!Yw3kE6D z0ME02%!hoWK`ldR4PkCP;!}g>182Q4o~TPCnU@+cUz7&i{$SHeH-O^-zlhX=x3AM< zpg+I*Vocw>MXYp3bWny~u{{)w07=b&bwOVw`BmHO4u_yiM-bnxhgTCm)`FxASQ{*? ziZlS#=2|`MbNeM{5Fmv}WuP%ABwJePkA-X8USBMNwnlxWexEx6)-GifD)R>06g1bZ z2LEUU>mw2b32f8D>w;0e)(!2c9W|Mts`UF~EzoWQQ36_;U;xhDMx{vXsw^j|gYj|u z5e@++xqnI+*IEi_x9X+PP|$$LHr-3FXgR|bG-HsA41gg<1<3Ic5CSy$vLsX?eNrYR zb0w@J+cDc*?GHA%{Y-Z{=sN-m0)uA?Wqt&LGionmqrh4{+8p#ogd(LaAOse;Y8=XG z4zC0=jlCqDx+U}1vw$Yjg;<8jRq|Ep4m9TA-x5V6p{w$YKs2HWyg}5`Bo}B_i}8lw zX$4u3Q3k=fw+1L3Xo9d0MT4+yA)U_y8I0*3@qtxtQh`y6uhC!w06t4RV@ymDSdMXv z5;p+(v_SF_v$sogL$lGnO5@>)w5V;45u4=Z@O)X6f;$m+mR~EGSrVelZ=-uFfuAx2 zqRE~GoRH>HVcbhCINvAsG7vgJ3f_AB_zdFMn@Ie%I(^GV`Lj z0WZ;mY;i?E4>z@AU@>}bKa?ME=77gkd1Qx}4O_J>?k0y?^{!-Sib|v)L0q0SF9YsO z27-|Z5M|Vcy!7h|q_rMBAhq8zo_N>jWK;xN82Nb+nAaK1kRj#vZw&@p2p@yi0jUfu zSk%&j@`1-xa+y0ssKJD`+U*Mf#iHS$A4mt^4Hc}`jdJeePRryt& zG%!WZyqUmEj>HC2m6aw?(s1Ad<22@UJZV9SScvroIoC*Io8X)g%^ik%%JaJkqON8` zg@BN(g*{RJaiVMT=X)_$?I+BL zBma z2_3_26D(r@wgkg~`SK(7Ts%jhae~?I**_jleE9XFiHG2R1lJ2U3Sk$i@GIfh!BH4F zKip0@%17?waNmHVurY5OO?3YW<-y$#_eHpe;hun_@Mqv&grhKWzk>Tc9OWbTXS~N% z*e&=T3pW|=Jh)5Y=D;n1qwtk*Rd5tWZX?{g;3yxt>*1ns6!v$xTj4t4J_z>-xX;6V z4UWRU4flOG3M2O%+|S`CAGzPa{Sl7B)*L>XcoTjcZY18v!%c=eM}=PmKVOAW_$;^u zaFmbSQn*q$3ZtPTbCeCy)p!~n6U$ogFP#THIWboWj+dVl=45u(UyP#JAAJ<#`1hj; z@~=FCzQfV`A63{ce4qUf8Ajo$?mEOh1Xp?NXkrH9$^S3-ljHJzg9`gT{LLzi(xkfk z5cfB@z`u?rwjrMU-@&i{r+oj23Oftm9V(2{q`G~Gy8z)K5l`$<{%MJ$iTA=$*b^$O z7~kJgVHBR~{)xB?5dPs&@x%v|e-!?^M#K}hjf^LrR$+7S{Z+XA2+Kp-*>IG{aQ}w+~^zgF6T5D6QefB20%<23ImQ!RRW) zw1R>HgcZ&%p%|o1JLQ=O5wB^P5bDW3RoUeX;w*tpY@ z-_|&K??zk!{KCoc!~!_OPkpCvBaG6dIwL-CdOUIa8S%t(XC>V~5SDXh^4l6m@9#rg zA^gjy#1jkQ4Bz^m8b;r#j?$BR=G=JV>t{=!-nXA4-^VGR!V;Eu`nI||rp6P~5jOQa z_;7}AeNPRe?^H+W$=!cZJn{MSrBCnG7s&UxCG2M^jN((>J1>kUj=~*A+)+5gx4x%_ z(RZq&^yJzv0ZcUMFP$cR3j3i7`;sM$!c*On>G8yiaQhMW6F9@SzNd!KcdDcGL!Rdc|Wav51aoxra7JSl85`3wki8gi;T)kzBGPErHkT zMCE#^S!&)GP4Rfmf_$v}ae`!_t-KhU%*pBk>=L|R0}Hrb6rQpyiwzrkSYuPA+L%FW zg#4Gf-a~ybDwT_k#`Iu4mW0t7C51@PS=(16i{n0~>-;j-lzmNsAa4^H02cO?$AODI zG1|}{oKh2>JiP2BoG{$%*~EZQOi6o9bv$wY`gr0hxOTV);C==-3gL6%esneDC;Z3Y z4#Ay=?@G8B-2HGgBuPDjM$ED<=BCl4B@%1^im|bSOs+I}=RadjlyzXa+K+`R0?m#fm-V%&q^^;epd9Q#yccWZJZ1nj^6Dr_kw*~VHwb}F3 z1|+$T;^B1^MjeUvSbWABkQck16phWob|eH*wWQ|oE(Xk@eb|10jR4eTT06&8MwG7${W!j$@h)+bdzFIM5B z-ueg`zZAf+)57hi;b=EEX?f>pRlaRHmMFb37(Z#>mRGaZGuP4pg2#aM&~`4#drqpV z|8!t?3(dk2@Ag$x)o|Ex|r1%Nik< zfrhvEfRD5prOycST8o50YQ7Uk6E4JxB{i$DE2?jA(zav?wmV?^T#~ICdb&c1{1D8d$7B_YnXeq6mqhX1{7og^V1s16%!n6{M! z^fo2H*kr}VC+ubPYV#J;P?$R!3+1v$3zj39e3D2kM~LR#7A}|sB_!?*F>FHcYSU9P zPM2(qHvafMF&Hwbf4r~5M-0U;mlhNPtPD1R@AX>*3qZ7zilwF##!qjJEr4bYDR^9fJi5=2J_LnHd!rzT;R@6^> z|12bF!6VxE#S$=CzS7UIAr~4TKGgOWTWPeWP61`K2M3k`wSr0=z#0vC+v8;~P+qEDl^l7cOta!J3%~>E;(sWNRjdZcO%gh8(pYJOB)}wPt>EpOeX2vd z=gccAl6$=RYZG;k@S?wXv(1$5MB6P13QXMS7)F~bP&-j+;i>;B1?@}qGLNOj3@K%K zbDUJK7;je5=C5_M|G{4eMFATCrH<7a1ZXZVgxLvyye$ygUp*sDJ<-mzVj7eB+KRf> z6?OIN>(*4%oItwDb#<~ZS&+Fsu(+6~1f{iQm6gUs0vJr~WDJFB7j;8NgPMiihorGU z7R!XoRC*IfF}zW^zYbg@WrF0TovA_1+^NiKCUUxn8(}{PyF`gcw!6QzkG}I1Gh?lW{31&ga4J= z;)$DXm)}?Jkp8VZrT@|{>A!G?^rakW$QN(VF2T$fRutJWt~n$y_h6; z>qES0Oigxpn=I$_U>i*+twLgotu*P>EM>Y{pp$6CjG+ct40*zqW-NfaO9Ng6(J>Jz z&#dvKWQnGwEV=I@ZGKfWdjt$?e#~>ReGEH4`_?ZdxivH1E%{F@o~5JQ7)V7K`Q>UY zdYMwn@!~5YQD}46{Xz4zRHYH+ua%RL8l@z1eavY4Rz=M@@%SX8=6uG3+MB}2jVSib zcy4eVZT9UaK4lYuN>v8j+JH?%fhIrp7Lr|xrvF%?r~b<{yiZiVPF`XuocD{$J-x9I zG%r)yHv_-0n}h%Q-Sf+A^f>#FW#)di+RE}%F$of%Z4eQD)R#mR6C{M;(3Y)zk8Ek3O zJfU=ALuuw7vt-YQc_=?pD2nWME`So7TYN2;d(tpyjmCt++~#c*h1nzQ9(<^R3QU?s z`yd0#{O;rN#Mr&@#O6oiiEqGf_;x(;_+# zIS-RBK?h`Bse7w1m0ZG%9s24C7C2COwf(FD`%4Vo;P|hV3ps_}0yJst7nrYoI zVof_4FOkkraM>V0jMubW2g{i+Tn|K;R-6_a5XfdfK@&hZ5x0PLLzO}A2KK0NNK!g& zpikM^&lqa5vbFN?BidNwb}- z;Hir;2y#SZn>3DKJWuufN}X%zcTR(?Vd3^UTy0q}=Er$5GUgFg60GyRb6De$ooI;B z;V;?Ljl3!$Pi??`L%EQI(L&acY*MrDJVKh&1Zb4&)*EgM{*~okv5&5Ha`)t zm59@2RAFiJS2lX_-(Uf@+-cME4nH!b_5Dkmz78W!$9)^sabHWewCO>PzD9Yn^my@> zqWCp!dd26kCpkQ*@iFpa|N8L?7^r?4qT`^)fP9+y>TwD}`3C5!EK zp!~f15qsrq8B#t@B>zAl7$|?O+&Jm>4^Y5B`B(XagQIVSKjpy~R(J=f9IzOue$eQ^ znU9~p&+wdG#Lp zN+kXlXWHrS;FHn|y7-Il2|)3QH&i^GYwuVONB$F>Hu>mCzT(y^IuILc3AJGFG?epz zR-&1SZQwT{iUtupR*U=y#CSZ% zi3xb-AnjN@bMYJ{CgHh|b1XuRvEp+4#Kc%JQ=E>}mx(j*%taaFkp3(@&k%f)UgQ9e6bkM&Eg6?w}>TpZWUMJd5u_#=T%}Ep6?LL z@tiM;@mwHE@LVWXpr-SM3(qq|2cUG0=s{1fz>jp~phOp*SBMTgy`l$CEGm!85zWGd zXOrj{IbJ*~dhq;_5TnM6p9mM8FNzL4UlKid{*Mr&$BUl|7oI;89e5rPJ$T}7o-yOa zFN6!vUy2Sq?-f0GegudxUVK!z#*PKFJMjK7(KB`;S}Mj(#HhLOoFqEN<)XDcc%F%i z)^h=E7oJl@2cBn(9z4$xVtg(}%Z2BKq65#1L=T=93o#)Vc$P?v$Mau_3H+SM&s<>P zzY=!brLPGD4UG3lq#DWoNcKnJo$zxMU^f~eW8sei?8wi-b2RXiFlqvxV=#u}@GloJ zqtSyLyq|{nsld+(XzgS?rvg7GAm$9DZ9>l`0?udQ=||5dq77%`S%9zj9IfLOibke&zxr7vp&uzH(9e5TxvNko93lLVHpMo$tk;O8XK3jCZT+JK*v&>jHLa*Oi{3Pz&=-$2nj5*S0HHDT()y*c@KY+C+;_q5p5I0ajNYD{D zx&Q!6iTSu=C8iZ@$J4lG2lpW)ZEsQn*{_Ny9HUZUI~Y+=Xyw!2N0FvBWEIFT(AI`wrYgaG!_!INbZ;?tr@qE(E8;ZG~G8 zR}M$~i1vldjqv3uS_@7D(Q?N;Rs_^_L30E9CTZG`KQwmp> zYgdY>KDz`pB81?+c;V#*xPc^4QnI*EL__Xyi$;m8e>vmEjva%)(duth%HPQ2{Ecw< zXKl-He0K=G5yu&xktxGD${1%F^RZ*c;l5GAuF?EV2Y=G-NWY{f$!z-lF^P{OIh>xP zbsB%i;Ui@DfpV<4ZxObMZ07@b@NuZlPxp%v>%}K=LEK5;*WEbxxt(V?I8+zWJ-Dl( zRkx;LT3cY8PUWwK##aQF=CopN1KfxHEX}%_&=h?x)Kt2q;IF9KTs@J-NF&(-YqI&X zaqSwZ{{ndV;YWxY|r;^FPwmi&~}X)zf@=*>Wcs?_2}q97%w=- zkHg&9LL;y}MQ!{73)ksrT122QRhBG@L=qLpkXcIGJ#pAh(=1TY(k9`dp)*Rfz=J-v zz&0swOQX_A$a!W*a46S@OA*LAi0z(oS7#-zP~e0}w}5smByTgqNmeZMH(<$;Z<`Uq zC_h>7f`N*rNvFMdwDP0Z9!vOZk0lPl-M!^l;=HZL5|6<>c+If{#ihD85Z<@mg(p+* zLc+iW5SD8CMql!EUO7j}kNM?7bo3lNeB@ZFj?3rAC>Ko1esEsC>|gFd>F#W6Vk;D@4XT*r9q^viTj?kN#5^jsCsW^^eYQ|HlsV@gF_R$3J(Xq~CF%W1@p`V+3Z;@bQgT zF%I}ibAJjS4}UzqJK!iDo)`!Cokih@?@-@U$w%aA>iYunksklqXPp8cgnE=8_6QE= z`tg0f`sVs!+_;RsQQl;2Y`^tcW%SwHgG z`j2?Bz?uEWcMo`@SwFrnLA=?2d@rE%XfNsV)E?61`>h}8CaHMp|9Ako2W_DAM*nA0 zJkp(R#1rh`5X9lcs;PabipQsie0;m$Q~2@ve<7tqd4n2%R60%7*Fojrn>MPMUroN5-(&(_uGHO zpQp-a{HOY@_=o!PRec?l4(ZP&UyVQGtHPJG{ZAQx%6|ssM`G?jzNe`2c>M8A0^009 z@;e#-iHz*Byg`jW+Vk(G{{q#2rhmZSWgUOipGyC<3F?H$ALB=B-TjU~;uljq27|{R z-y&uFFIDw*P&&jfBwvj`ebXP6eYMQ&-AGd8zc@@iwM^G@1WQ_ydkM`3Jnq%72Mp2L1O~`7iL{ z5&HkhPZ?*g4= zrhk(EF0`5YGbsL#yl=Jq@36uj_5Y{I|DF{3PnG{2rV=9xMOPfc)>V;vecC(()h5y$gMKJJWxG zmHxByf9$)F;{`Q=`Jz+(f2hfSS62Qf=N}H|e=Ph7kKV@m|8SH4+4;Z3N3c1z=M^eG zXW0L;^M47SQ^EfylKh8EeLK^Cs{GH+|4-fc4@LWbcK(0r#y>0nv+Msu&HkUA|DQVg zC;8t48`@Bk|1PWjCyo6tyZ(Q2_P^}>e*pXke%bc_z*g3gV*i@~A!@GwB7JuKAMnKF zB)k6)Z~(rX?Eb&({9n>zcK#1IfS>%k_y2XEj-e#~v-5vBUZ=wTlb!!(_y3U%;O$KR zmr?tG>}>yqJat+1FYvC^{Xg0D|C7`Iv-AG}@E`bP)Bj;B@3G<^@NuZG|M#E|Z)f^1 zu+o2a{Xe_@pI!fFdOa2TAIX0DdppzraFhSp`M<=+?ED{afd27so&S^lKfC_lKmUVn z^j4q$>j7gYer(|XEaJ}yGtU2I_y0@yu>8aLXapYs3$NMpe*j7k;BcbnAG7EGv+Mua z`M=~RY0tm?r_cYh=l`?k|4D8RcK`Sm-uAp|1>e6@nZcK52xpUhMN4(?*Bh^h1K|9YPT*2(J_y1x3 zh5a_P;p0^8|Dg5%?D>BQ&$RnLGa&!7>;HE8&#wPV{`c?r{V#A6{(C#?|HEznUv~a) zr~g#>pPm0p_?(LQAJ6}XnEl_Cz5nl&>3`YzfA;<#QUJ2@zkmDRTmAdL+4=v#@?WIb z|FXaT2YA6)LiR8EeeNFe@$G_7;RF5tGs}M@cstX70rkUT|LOP-m;c%Mzr;tw{+FHq zOZ@+L%>Rw^|2eqRjO<@Ic+hz=`o@2e171t>3~M}slJSV7eIeHP)ciD#)_7Zf*fWVg zS>sdl4_H46CzI$v`3I~YOmot4@()-)B8l$~x_$tU&WR3`f57^k_8-8f-7Au=dUmVgNDCT`bYir zdntpif2h+x`cJ=q;-vpWnf{IQ|4#Zpr0E~ye`O}eAM%&(cN{eQPXYbY`G!H)Kh)_z zEB`V2nH~R(>i-#*|2bfu8J+)w|1He$_=5!wp8uQz{#WFr{-Hkq$N0NI1DWLi8Kr;p ze^w^PAN61Aq<)9^&+`u$Tr)ZT8KwWM{0H`BcKkC+|CyHmp#KY;z~3SL=b--OPU;`( z`ak+#;IRKdp#k|PhR7D5y8eYG*y7*H^)FigcR>fuB>&GS{iAX^SK_4qj>exl@1%Z* z^gjXhyPVWN)af6Cm$m;p!~Y>||HJra*Z(s+{u$N(!T*N!`ak4<&v0JIN~lriY~hdTWO{+bi` z6Yo4uet_2o-?!ELAIcY<|Ig(3(-e5n^*h9WvVRpjso&}NqyEdC)bFtW6KL`Sgd8;d zhdTXd=l?)}%#MFX>3^8d|C#=A=405>KlpEnL;N4o@*n;0K?gE9{u!lz^nXq!#~=02 za8m!NkpGzbXL9^AYX8g1e_&r`$3LU=pK19Ik=|8*vKfKrfv*-V_>;KvF|IYMZNBlp->wnqv|Jn2Z+4KLy zm;R;p>8$_R{eJ_)4=TECeqmkzrSmsEDe-UR{%^Mbqk+TL{s;Ke{ee#UKh)*FYnZS9 zFU{om!~T@X^Z!Kubf2OV{CCR#0fNET@6i5{1LDo@|91fYQ(*rc*7ko8PbSa*GyMny|4^oXpdSAX zTl&Y~(H2-I{dY9}p#KY<)bEu3sq-YmhU@tsz`xK5{Qnc=KXlMcj(u%-V@%l{0||8v0qvg`j2=q!@ z&&!G?nS-xa`sOpbr1<^KwY{U6fupX48KFq7k-QTj*!=Vo&J zQU7I5>USvrN&lzcH_znwXO#XyyxIMKnH~R((toDs|3Loi`F{ua=al~e{=@zJKN;XM z$^SD-|EN5>{-4?L&&q!X@OQ}nvgiLZy#FuL^MCNa?E1e0`Wx!&|HOP@gB-TOCM!~PFt z`lt2(;eP)A%1n+w;GfC!|78DP?6Ch%*M9+m!Rwz+^&b##*8cAR{-=QdXVm_O@z3b_ zzf8~nLH`S#(BCN-|BTW<`d{R*|3g~-qyH{+VA#(8(f?VQ9Dme*sgwF0%0HfeINbl3 zmHz|N4~ED_U#a`wfdaPpw{rhCs^-68OaGac{}}uWFam>yzeD;b{eQWW`u_vue}TjP z4|(|y20m!~I|bvPQT;!={x4h(@jom72d1B_{I|m=RsYE-{bySKXL|k*;AhwW?f7|8 z`Zwg?P?!Hb!+HH5`tN*)^3T!uqyFhm>UXIB)BT@4gu}!2{x1w(*8ZQ_@gLUmAM}4- zrs*F%WZ2R_;IBD>|4^6zSbQ1I=l{w6Rh-H3NBx&Oss9wne-|cX!V?j(BO_~(%S(fOz0e*V8FyZ-M;{yEbBi1|6; zzYg(#0_t};sUP;Q?E3$}{0l>5!>`o!Z>WH__>)?HbU6Om^Zyx^{~4bDXYc^f-aPL;Pp^Kgt-k z_CLV?Vkhu-%KtNM|A+h;?&trPW^()i|4g3$=ly@fdHpYI{|EMGmj4fD`Ja>F`9IVD za9;m|{GaC#{~g(XGcEto{|{rOJncdGxR{vH^dGdccHfd*f{ z!~SRI{{X%d_+$Q)o&OJvzd%tNe%sc6Kz|pe#J`p6KRo}ZIqYyf{{#3JI)VRCpZ}x( z9U$OLj(X$ue}?Iw?*AXo=l@Cm35W8}(fFhOnNIM}A^r3EU-tZe zR{lHCf3x=gf#(k(Q5$~Q?Ejgb|AYTrkBC!|k&)k2|0Rf>Ev69q{^f&DY{?(j!`%FWRi-duKQJqFTh=67uU2 zvDO!f_ySE@K-ayxSIduRQFoK5m9cX}zU{id|8hOSK-AY13&tXv*By1M3L?e%-dP%I zMrnBEx0SwVWUed~L82_^4~8`lnitUhk$&4 zQS^sI>*vM32To zLQr@pmKyF~riH@626uzMJuS&-jlpn>J1X)CMa9eiJev4d{Al9FV@DHzgY&2PMm>>` z+oMxXE$Rd9HN+Yl^{{A)*5RvGAtsPGsyFFjE!e7u8~wpH%@@Gf352)0{XVaT;Hb~z z_G??p8p^_2B-X%#0!l?mwO}hDvnVn3f_UQC`SHX-xbML|0Cy)`2(Aw9>smbVVYr*% z>fy@ZE`ys0_r}HXM0Y_v;ez|?W%0!4;I_c!!aXq~o(RLa=fo4^;J!RNo~VWU$Ee6uv3c*GS?>|GI0JXR7S;y|fl-;RyCNxH3#;mk@UVp#fAx%~}Ku zR;RS|XTs6#kAd^iXmGBwpx)T%^Z4{YRB}3*JYD)49pk14Jo-w%+p}#`voESMZ|qw> z7taZ*gT6qNQqkRq^k-{#S!IP*b-DZUhRf489+_6TfhAro8U#Z4qCViljkp0Y!V;N+Xe23pI5K3npfLNFl^EABZQ&t$}NU`>T4V?=Rmi-R2Jhm+^k!!@&Iy z0mtu=?|bn5AlyoP&x50PP5Jar?zhNiyr=VDLj2iCHwG>^NcSe{{0-b-^E=J=6V&~r zs{cXwQD0*{_#-p$IUeC_X_{TK!CeMUhORZuA9FL6V!)`%zYyap^U zrnuBXexg17;U)E9Wu>o=SgcVUCk`cRWOSr@=K{m}saxeYs*VPs zA~i;V+u;E5>PEDIdVwYobt;BpFd$ihdQv>dw#wa5W^yR8GUoGp*SbRz;HjUs{6MzBIVkducgOk$;_!D^@&|MT4_} z4Po5_<)Vo&!XlZ`b`mzrwA5sgZN3mNk=ku3-%?hZQf2|P+jP=PP+cq()u{dWklHKI zniX!4g`^M0_PK`Hk?w`X|zcbZMwQ;`u~K;P)-di?%N*l7AbjL?on5 zE7q)hKN6Z<;_(FT|$FxN|x60lGAdzpP;P8JK5Be9p1uu9-* zFodCHv`u2C7J))D3w$L65&{C`d$-eMu?cfkekB~CzhpMfVKO2!qt^#^L3&?gz|xZC zFmX64%-$!0N-#hy%M*+RqA5LQ>cm9TGxn->Zd*`ocQ6LIaJZjYGMknqPNAO6JG3hW4l)QOp@dczqFKXkK(2 znylt-z=VStGm=J|!Bv}se(xM@OE3lsYv<`mn7Bcd>PIvgFlY{oay75s2(d;wrG>E% z*rBwXeHP7>0U5v#?20-B1a0h70r3PAL=3Rnx+JL3T2DC0P>_5~gNOjP#-s~I1ptDv zs1F{JS%Z4e==MO6M1XVPFB3{bFc)AX!EFH#f;NO1M@eM^W!cBxn2Qk zBN2%@bhf{sP0aR%85#`J+yevR_IM!EG=P~5HIY~-6bw^1O;xJ&qaFsf{Q)%u#X>&q)Nw~s1=8yWIMv{btVJDfc&F6(RuAgM2r*eBq?G7TN-sHG zG#J$6@X@$&x^!3y2H|msVfwR7JyTR4ZgfR}IlGh?MMC2eHK{@_g+}OCtfz1SCkIah z&Nu5Vx>j7QT_M)$;U>aS?mv~}nH_-$@L?`a(`C%irItWATnR0Y+iRQDa!#J(YYouM zw#hCh=gTRLHlZVDz!8!7xd9~dskBwT?XgfDDz_*_MwilM5I(m86-sj7BPC?h!(9f1^C9**01U? zEE(m#u&|AY(H%iLg+JB`l_Ej|T$DzYs0(AR;J2|9!bx!0a1^R})L<(tDj~wcm=Y2i z6>ti?;+^f!kwW3|snf`j6dQLi@cI-rrs_R*V*--rZI*4hwE2cSlObo066Ia}-!EB0+FIY)dFt4H4Vz^sxv;%4Q4apb~|%Sz^npO4IqOfOj|CXAAPiSomvzH-}z zC0B^gDgRfae*LAXB}>Iwqou!Y^vGFfl$40w%70ql1g!x@((C~+PLcX{;hbexL*0+QvT>18Gd!nr#An-xJG{T)9lzDB&R{M8fX_opZNU-)iuz4)i{ug#U;-&X#4 zlX8FXjbg88SN^Y*UwWDh|LkeI|L=3fJ~2K|`eEh&Qu*bRAFcjKaX@@o`RAW5zdM!x z_tWqHWmj=T=x0d(fb!pQru=^V%sumOFK!d_&XWEE%D;Gu{Jv+(_IF-i{BAMnZ0UC@ zf6O`Z`?hmF_dnIew~2o$|CXupJE8oJbLIDl^UiquisC!O?aI$NUw*$&`Db0QZ}yDh z_ll1y|I!QP_g9p^+&|L*dSiqZMf|D^Jl%#hzdnemIKKeham!hf0cClpBkfr8T0 zyO!TCRuxMB_sZXWx%@7i`P`Z7mw#6LK>5L0^82jW@A%p!%O4PrD&IXvevhAf;9F-d z|AP3M@~KYS<#WZ^D_pP4TwWk5R){OQmR~GdR_uEI$>meTohzc=*(FhLz11=c z_Pk*Jl7$QVF6x1Qre7!G<*>esJV;L>S*ofmV5Rw;Z6UDzL2;#3K$_HppJUQadl6YGJ3kTj8PJ^!-du z5rP5CRH(Fk%md(s-E9ncC4`HRe?wqf0FwyYfT$)=)?tvt~~m$m2(=EzshCAD8Iw_p4{`mFMjyS z8)eFW>fzn*eeMr$zOn3Ix6jm9Px-sDlUKWB`Vf4LUQ1NEZ_|emhga-6boC<_?Hc2H zVfrusam)2@KJnY<>E#zsTsAM~OBZZC{KU_H{P)`5d^WLSZ)NVtneX}B3JUcu`|67J z*JdEavrjxn(I5MZYVRE@B41p#;-OD#u6xS5{J+0xu4_tF{tIJXnycDV;6kOYoGW2_y3zSm<;yYLd#I!pSV-rYY%n&KlH)5L+ z8=w_Ztf7Z}QP{|vbu}SW!T>Aho*3pH($q|Z4Y6a3>Dj^xmz(8C99cGrKLPUY_2VvUgg6d|MNbXPb&+SEY z+oTZ8)F~HtNP`+;THY|XW^Kf zay?d&s#0Mb5oP7}^qsU{^!<{;m9wc=vnYNs%QK{dEU(`$ON8aMIv9ysJ`I6Fh4&RD z6lw|*{;)JD1rD2lal}2OrAZ=rTUs3NlaXLzB@It4X)O+wQGI)1$hYiN}; zL!(WWP5LUi&o6Cg6(g&lxU1_3J+NH@@8urLN2&FrIvn(Hk{Ya^xx-Pe2jZTMrorox zmpBQ}ii(R<=0o5Y8kuI982ho2QwMBpXFcbzaxC$w4aX91UVSW4U2`lE$9vtzr0b|X zmRMAGEb#|8Yk0c%FCjnGXX!m?1nVwP!LXtT`ouae8cQpnMmhsB10|&L44@5^?u=`W zCB~xd^>EF2f5PHEz3EtD-{xb9KW?#yThkctk05^}G|jfh32PW=MIS7H==H~Ne1ZS^ zNh5JWrIcwDZY&j)oz_PzID$a_HhOG)6Q-aL)F$Io5JpCEJIeJCEhaO=rk&MMY_TC! z#2#}EE4WI=D9kZ;IBP9nu2^cL)nOf@L|c{EFcZ+*`pZJ4Lqhl(+p!5X-~}CmO}9bK zCha8>Y>c*Ht+dbnurf*VlAVK%OGS-EjY1NbEKIeIR-5`V4o=M+!{aHT6@}R)P*1N1 z9P1-;$96rfvbO5eipj*me-ia|!)igI&14YEct6?zUB%Xss9K<9Z8EtxMzy)#ixvK2 zs?D-Q#OO*DSuH=ruUM6}EFjXh>bVG)i;lFMS8Z&k?^7O6JV&!B7hp?n z&|w~GY>V**v9*<2A~(liecp}LMq^*kHS=f9zYe>BjO~>J7OCbMAZ7_yYkyC)erpB9 zBY62WqN&ynt|iuXP?;wMrxSpWRuI4lxdYhxz&1YBW@BX-8W_pG!jo@2@2Q8j*WWmT zKuj_P$gTbC1Mif6Sj+4S=eI|Xto^a$fd=-$NSgva|u z9LfY}fh#l!GCfiOmEaJhDDjSianTioGoFk!Qq1F!>Lv#j7UT<<=XAor^Br>S@PJ{9i5n`Jq- zp}di*%-`IUEPE~9ow&iak?J%cT3%BLF3K>n!N!cgx^Ce3H3P@ju3wclzfEFe9>o0J z7x24}#k_qTASld7NhyY$muI-Ulz z5N(Jtb{w1iHkP3fc~bRRxuoPkl2DT*uY^3)iZRZ$>ub}FlW|Or;lz`~NRk?%p(yQ- zbpx(V0mvxVstsBbS>p}u&=Ma2;|VM;o?oyz*7Y8H3 zNJY>`-Q4+!V~P9V9*27w?kL>laH? z>xW9U+G=V2u&r7NOFx7mNs&}tEk;k!;;~9=pj-NRq9`b9gIeKx7 z;#kOWH;2e+?_OOlPP$lc5sjKYk;*zzp9*69CEB|VU3Cw4>DH}xum38>!VJHAt>Np# zb{;+a{~~5Yk^wwX%pRUP>5$FkHYW$Q^-7~RwIc)9voYdoK3VJiSoLgeeAE9AjAQ9v z)wCQv_ksU((mKu%p!C0_v7B%;f(hv(cuE(O|MERLC!d-ve~TGIj<110Ekq!o0BtpN z=fz-yHD2q8g&sj*kV5||hbcrf1|1mw)4y9f9pbuDomo>~8$X<$$6&qpF@zb=mfXnr z{tM3pvDve-GV>OUn9b4(_0iKeny0Ajnj`p6JQYkl4UI4!hWbtx6RG4!x3{OyoT{cP zYU9mtOsrYY5F&49QuC%8{{L5elE1bfIG+=oA2EAsPXCh3e(2-&6=0V>~Bke z`UFa)5zT?JH2%;zy}lY{>Y$CFEW9W)>&IztzZ&HAWU&{+n7q?q`H&Gxt2X(qdiwfh zX6Zv1#>m;6>{$$)&5F29p}~{iaXT z(_-}f#R?1Yd}NJ=@j{ipKs=`1+*wTC5o<9_o7e(^npn_Y4Q-1sdofYY)AUKdmh>Nv z#3%gP+Z;~qHI8$`_`b|>&S~?%^Su#aepf@dS`Ftmb58iLzg{thQO)!lvE?i86^&`q zVhl{oQPo#j=&KL(C6h+q%UC@zSAQjuA>XeEgLIY;i?M3sR_Du_%ljcQH+#wq{S63@ zaq)Wj$Z7WaBY>+KVr&H_qvqNwm9ZoSMzA-ca$){_=^X=|idTyNI$w7tKwPI7jHmQx1jZwq(V^#Uws@tjdsV&skGH)d5zg;q*a-J}Jl(&hU(V6qa-7HCC%^M+ z9loaz58lAho1^+$>Q$}fD?Ki{l9^&L3h(pqSH35Mx!yCyz?xAO#uY=OJCFQj8Sle+ z1hx9@8I5NIj)yJB-TZB?Ij9>^t%;)_$Mqa9a{R&}-=ⅅa$7*Na!I-z`t;_vid3w0A2dskD|1j+Xym>~-UA|ho(AE%5d2M{4$8EI^ zT;~Da4AIglx0sl$<$a=g%9sLX(TYCG?dy>C*xxzQSM_n?g>E&pSC+ulIf zThptLYlvQgtzGrRvN*$Nw%Uu)P}*!(c=VkzB}v3zc22eS7RNe{YdHpUppWg+L7M0` zhCye>HqLKat(|C6t?l5rnPVh}&?nZQ7xN)!$5d-c93dROT0nMDLOv7@j0<^wH z%n=5`>YcXU%=KYrLxNcAqMy(w6Q~+vT>1KJP8^m>wMz1g@l|UbIYK!;yRcd-;SdGl zaIj}&t7@$!$1g4MEypqrUH31?ig1mYrk}K?+&D5hVmW@hNZS0{xx&cvNxN!oGspED z!#UbYv^glt#87<3J;4cOM?G{f)qzQ3HPC$5(^yhs=K9A>)AoFg~ki5GQMc~`G_ z%DF}}raM=i(@S+;es+PeJhY}loyTSxHM2f3Nz1s@d-^;~OV9R+3q!6}w6_W#wg9qT z=5tI-pGS4d>ysLh0^`-Ey1yxR8$G`b6Hw4FDny;vknmg+b?zvFzd z3y?>CnJl{S9%C0Gw(HW>bL18``YtxUSV2zBn>~{b8wz%{Y46cjJ?K?t$^tq_`7=Cf zw=$2uqlo7c@fdbVdrx57AJ35f{e8yHL7pKQBh5b(gpkcz#I=*aGsPS+wJeuEb93_l zeKJp-oIJaL&FM_B+xb8s{AG%XM23u6(33_aQfvu9p7$|TlIwzn+Tv-LYVHx!Cb(+F z_gqd)<%@nsp5h#zWb15Mqvxy7+%?|Q>Z7B*JsG?xW<~`Y#rde;#L|E0RhQQ%F8O>b zrdy=aK_4!r{)kBy9gQg%#vV`l9!{K{*0Ierp&TGEbC-!l#PAFJU(O4fEl#7yHG6T z&7I2{Uc#L_S;Xzjz`x8_;l56rF_$5ej%03jF1xGod-PZg$9NeRj_XW8t|m&x{%=h7D-Zr%#)eE#AiJo59s*YPR#tkO2b*`0RIw z`X2GDots_Ao(^_%^L&j)KHCK15&D~PaRKJ*WgzRNv127y4#QwnVqW#=Su>iV+0(kj zrcq>iyJUR9YwhCZwbLuifI>>!oa`d#Q27+jXV zXbbNel=1v7`r=}&ON2d;G1g(Me9t4Onfa4Dvb9fc{^a@|{u6(5N~rWESzHYIQ?wp& z8!?YuFI9sytALTJDb#$r`$RECR1NWm-cAfQ(>9pmCO^6QHUVUrmjyFqc*FF~Axx*6 z*LHpRcBu=)z z{q;RT*&d7FeB2(oyKlZjJFL{423 zaCLpp*3Q*hdyX)UD>%MMsMh9yt2pWvL`-g&SASN6d7klYrf?*5oh?G8qP6n0sxSLD z_BF?H7? zZs_vqfmZtdX3B*z^bkB@1D3n@DB6vMl;du1=q<5%lu64HRq+e{ZHpvWH z(nky6EXP`tN&MFGFe0!Nhk1GHqtAvP9UAFIQ&_VX8TSu*-J8~)u?z|M#J7A8-3en} zBTF6Gm5&}s9&H)LqvyQ8*jAB84sp&fFrEuDjWQDZR2qG0=_i}syu8>YM?6a!n^2kt z3~A6BcW!U&j3U0Z@pZL)YwP%SiR5HN62xE>oGOr6m~&kuCp#pb1KIoRH%y|%Y6`TBibA4aU9y=Od} z?Q;JWgPsI&|Cy^VayD;``hYI)^cK=&sL0vuv>=CvF6IZAJAoTH5V@CO{Oei~3c-)k znGw9H?4Ia2Vbmvitw@Ctu>4=xo7alqbpsWi5&j67bT@k|Zwp+eZ+IrlEAp%=(rJs| z$(t-#l(NgWVbYPPmFfEvw#+#hv10Jv*v&b|W7dv2l(fCDJZx#|?$#T#jz+J}IFPut z;8bLBT4`KKZdr@<;}0kAT;vbEso$He9+~{z*{g&AZ3 z^W}w=;mZf^X}f9av8HQA9qhhs-swhnT=8N2GqZlZ;K2!B_kQh$e?k`beWT^Wncp_P z>&lNhKX>i#^==vRZu=*u|J3Zht3L0sV?jloWdq)B^H}x|P3{@_X}1^W{?+jIp&xX7 zdgd?ZKXCO|y~o@nYTc%7yV&*}E{^LM-zlMUm#&H3x?hsiqvxf` zy?Xaa>D#Y=>VScR1`oOH^0c8>3`@Uq_=t>=qeipG$hh%WPnb9|-n#-hbHEm^v3`OPbCx%IZ<+wZt@H zz2}|1@4okb=?5R~+yBwWpB(t~;Ae+E|KiKTUw!?}k#E2I{^$?Kemwru&nL=$`SrJx zzyI;)slQJDU0zXH<*)unUvnmYFH3yHMh3=T_WuPR%Hfr#tI_=<#C(i(rjr?np?xq~ z3b{|D*t|H7p@g}!c=T5bmGmuDWXCYymnaN0t~*k=M8-f z%`F5Y#{XHnE^bWB6ySezNwC>K>gS9Z;p!AkmN-o+^%l!``Z0>hxC59xA|RX)fYVkxnFFYZFQ>e#tQkM3e%$Ct)W8{}r^{Y%rMv(!vyi%*^k z2IXbW$(cTd;d@ra#2X1V`K%H&UahjBc(O-!xG)#;6fH%t~31_=K0Zrsf8VtN=~ENA$p3>31|an$wDb!o17{ z7NQ?d4*kW_)qInq%jM|A%gKIb>6_^mr+K$1ViJ#E|LVrub%74Nt`%lx_gw}&RQ&8r zKJOR|&+Fsat=NW^T(B}iPB_d8bkhQQV?fR}9#^xWh}ENe*go5ZCQNrszWp@4GBJlr zKE8?ZAU)3v2$`F7S$^q8JbdVVTJ`)#Mp?ok7FFp{no&qw7GClkkYq)l@h=R6((AF$)YbX6v*iE;GEEcu|fE`4NShwreq_ z-f>GKfd4w*PQ0TxW=T;4)GjRlH|NbcQ_!V`xn+Sj=dp4yh}1GyEU|lgFA+u>saXVNzVqhKz$R!cqw=UTnKv3_jv9Eec*#&3b+}Z1U5;< z9-Ibl0Dk~?fgcUP9vnRo`wKjtNrSNm>kh#lOav!^Gr%HnEw}-E8{7r{0UiM_ybSvb z*-HfUfeXMCuo9dE-kOFzc>Pf9!F}K^aQY3{gX3<*-bcQQum`_ij6K-tChWoek6;fj zeiVD~!j0I2pFNH}SOt1odOTNe#vVKfrhuL&um{^dRj#c7_dH*&Z3eG>fqDb>+*+<3 z2WNp1t$0)fW5N5u!C>t6axDjZ2wVY{fSbV`;9l^L9oU1DUdH|+(gVhV5A4JqeDhW6 z9oY1>a&0Ae4Y&o&dA(fQ4=&h6y#>DjqgpfJ?+xlLm=30clfgM)KDZKG0d4{B2ls=| zfG0uUo7lJUc<$YeJ-F>1?7?NF)H^V7AN3Br58Mu3`Z4tu+Mi)`H`s&oj$jWq{tkPv)eqQ%SztN%=g-*lBiV%~u?J88g*`Z-3VU#mr$So` z`s-9^+rg;~Dzro3yei}7d!+$ z4VHtygE6$XUE5+0&IQMS7qr73d=Fd;mc?QZ{@EUT@X`+0i}PSi2YzP#V(h{8;21C+ zECgqPYr$3EcJO)d5coM*4wi#47kfPC#$gZk0>^-3z(Q~VxE5RkZULfZw-8C{_r0UrT9OhbEdT!j`3o&pDh*I!+s<$zC2sL)n` z^`}>8o59zLE401f2X|Cx$HAp5E3^oDix1shp^0tVUIWv?{oow10$d4Rx4J^x0zL`u z2me}Ep`8SCc9L#}c3%dQz_VW^-{3W1A^0Y^R-Av0e1nt0L*PqbIoRf{3eDG*-{1sO zz~8}1;OO1t8+;Yq0JeCWe1kWEN5Iv4$TuTcm7otC`40BrE8rxsFW@e4 z=)2g1FM#4l;hVjOJ$NIS0{#F_0xy3bd+=j$19;U3*n>wt#2!r9k3Dl_$9;@F`1Jwo z!S0`858eS5fyclNVDE$2gFC<@;Dpbxzl8CUL)e20z!b3c=h%b$z#{OaFR%w6`VxC^ z!B^OWzkP#!lE?G@ci4mTzQ-PHc@%rF6f6Qa{eV6A(@)rgH~fJ;SgcX*J!l8PSnx+r zr8XG+B&1Ty0WS@$)K-8;z|CNNZ>6>uOazaESB6z;5k0Agbt<)3a3wexJOSo_8n^yJIyZ2?7?kUVh_GH z5_|B@G1!AE$6*hSnt*+8kLNou7W{KI_TcApum_*M7JKluJnX@=>#zsk29JX&i?HuQ zf9nS9!PpzI2aheS)aHQ8mRD*k!EeDWV8@k}+9B{yupAt)s#1$d@pzViN#NtFE449T z+c`vUv^ywf<0 zJ^1Ih*n@W-#~%FgC+xwP6WD{j%diI@_yv3Lvfr>zrGA{m9{j;mrHuiX*Q?SB!DbDs zw6)-{v-u57@WN<*gAnZ0v`Q-n&pEeBiy7eYgv3;7Nnj#423*!0d$1e7-?sHu<%P+znoX{Hkf%u8v+e`xEJ7N!}cflTfF%f(4m2TLB4|K;Kd=D%Ke@nuCkjHaT z59~n?zs)%Yd=M-IqxikfwcxYhcCa_U;du!B04xXV@w=WegK5XWB=BBv4EQBj2wuo< zf35|miQfPPp9K$rC%|&B9lsA6GlX&ilfVbSF<_7W*n^9~wcxwpcF>cGJ(vuZgN0zs zWggEvU=n!l0PMk4U?KPmxE4$uh&{LjJOqv$ggv+djJcftEWbIL1bzXI0ekU#q=n$i z;977uxE;LeGVH;%V7WLC#-tJ7<=BJ&fMdYsL$L?%Nyi>+HXM8KR`3v*F#>z=;|%PF z(hiQq9{lF&Ds2*2GOui()NM}z~f+KR+ScU1@~nz7W^0-3|3|HTdCm1 zx!8k`U(4@Uf~yON7aUs1Z*>mi`vQLR5?s2F-**MGuOnXYq8s_WPjP;6m9_!weiOgd z3VN0hFF0svl@^swKW15#mH;N+Ql+JXi;BrFc+VZ!fyeJ6z2Mqa*nxxjEzXE5>3^)n z4t#$deggk`i1@%w8?XaMKTLdJ8F&PI^HI_}oOm{pPw*cw9V~c^_`n^HV+WqI89Tv) zN5IBU6W<8thCEAr;4*$^Z4B7pdF;S>FHkPvN8omF_g4G^c6*U>0XKlY4D4RQKVZfV z`~zP53h4#+fg8YjuM#h~5Ih3@07i`Dx$t%31%Cz8!5O=%v^n4=a3xspEy@M_1>6sg z-czNW1gC;gqv#j!#UAYW9`@k7;2dz?``Ck3A7Brz`w)AubU*fj{|Nihq#H~Cn|zEt znDq(vV9$ftgYSV`z&3}l2Y>t=d$8e`*pK1*1rxyLUttgK0_T8>zQrEA4cr3W`#ttx zvt!tUW5KAacpg8AJ@{26_Tc;~?7>+Ip-n z1Q$2-YjeO~!Ij|PMt*Gz*r>5z+YcUZ!umw;g%;S4<2tzzd+;eR9Xtxo0V`W!4_@CI zd+@3@*n`n+u?Oq7$9_ERT?g#J=fQOF1ULuma547awcr-;NpL?nB_4ZlMQ7}m@1fDn3{F)D}WKYEu@O<`VoCHR* zhhY)8a~$^IZ49|fP=x6tS8O^zhwRJ3h*dvi8q5Qejs1q^FLw__WK$8 z86MA;GVH;Be#0IdcM^MW;vd+9uYsGvZ%<(l-ugG!BY15&*JCd2PzCt~->W9S;BOlF z1;=};wUyw*q1D~SQyTYrrn3*7Jh?Br?>Q!rFz>n%zYlYx<4XU-Z z;FS%lwe4UzcnIuuHum6+tWAuWMZb}GxJh6dI0n3m`M8DPPH-()w;T507d@)ABjE4J z)mp@C{MC!~bl`=3SQiO?mQtzGJx7ynu>W|{4Yr&>y00aD6RWipaNK0#1?x;9UhrIS zGk6`i7d$JAc)__~L>~7&Fc!Qcn|Q%XrjlRqSWdOJ0ZgA>t?dH$fk(j0t`Tdr={JBr z@NX~$Y&oM^n*`nm7J+uu#^bMpJ>|8{>0$*8Nt(^qVzo}Y_n$P#8)C;i9GU^357%T*z1lNLx!R=tta>@r> z36_H|gE56%H((MNvI2Y1cMJC5%G*gdxM>xB0`pfBFL(-!T0ncV4m)tf{n&w%AHcuh zp@*;&-ybHwV4p|HFZk3Z{Irn%+T-LGJPr;9{|0lwdQXsFu+Ed@7ksLOc){&YQ$FDH z&tQKY&*fXN2iHG`J^0}B*n=OwfIV2S6?-t^CG5e&;Bj!vcI+2%o$SCKYzGboXM;Il z$jjJ+9l*`tHgGTa&MVl1zkw0gGyb;|d$2z^7|a24z*XQ1@O5xASO)F|?|2n^FzPkz zZ@|A`EGRzF26#di4)=r9Gp-JUPulie~si8B}C~A3V|AyhA(+J7nxwUxK!&BrIK2PyWIsGU6GdBJS z#c$;NV*lS-Pb)uHr}cF1=KTHePlob`8UKJKUhjrbL&Ry3&N7bkwZF9#@~3p(OGAW6 z@R6MFgel7es8$U|%x$vLBUv1;ZD83jz zDym$&(#EGLz63rM{#I)~z034Wiug<6pEPhPlI<$|7!SA z@b#_s0|NG2;Zxve+Uh}$ss{()Z*N_|`%A)$pC+7hCfex=8td zEBq>Wai0qK_qIU!!-w(?{7;+xugd-u{HO44^&`42?L6{TS>p-aq|(u%9_=*zyEcBe;*;SoTUD+lTKU;VIz{;7 z;U~bKZRL$-NRNLJd^-GjR^I3?==^&4%i(XcmBVsX4m;tu-&5||uR08W)|zrnbl+6| z2M5yUhxcRe#TdYTL$dT+VLqh28V(CNxQ-pOVUyi+7 zJ=zWbGkjyKz0qyd?T^BL3Ga444vS>$1^yhX{S|@uTf@Hv8`PD(PsahvM+@n$()~uZTVZT@>d3b z5dMB!Jzk^gaU{<@SH40$vc(^%;*W#x#~h)4*6^OHNVZ*t-Dj+bj)X?FwuiLWO@5dJBK zU-o;s_Br>Z0DmCD2jNR>{Nsu*gYWQ9xz@_&zw?#@aHgBY_Ki-{wn-5_)FoR zv+;rPfn4}f`17s2@%V3)Km5D!J}W;i;J*^dx3lt-1AHm`e(W!>@>d1;GWZYSMVqSX zm!;np$qnY?Ao0gZ-Yxz#_|LJw&>H^OK>WGzhl23M@SnlAwc2L}>`UOkf_LjLmCEp2 zTJ4SD3EjVC@FIO~{*UAaco5#rKXLG11hG$p7wLD+zYO24e2U=@1c|={Uii;v&7Y-y zluF*Me9GXz!QRb3kqibNfp<$^9Q@btZsDiF{}3d7xsvZ-O@DTve2d|K!``iYO5n@j z-TYe$e*)gEew4u4vFi}-z3-cmlfl6TEN z{9o9+<{$nKc-Q>H{|@h(e|X_Px9}sI(%%mfejNO9_(WU#*h#gIY4HA#3T>dR|IkXhrxhQ4E^`|%qMn3V!uPgN_whvd70lV~VzoEAyZZBK2K+ks zbFB6vAK~`?>LPT@n48Q?S1PY@(m!g|C*}YzGgr5pe^BqX11-gKP`mc+eE# zM>b~;M-V;^{wDa5HhW`WSNI_f{w4TX)_O0>JIh}03(!^HS>gITyc)hgbEn;&m$$;- z5`;ehzb^=X3ckr*71~5wK8%iv@Iy2WXa>An{E6`E;Loa!}ysi9hQso!T4f3vg-T6fL z^0oNKWhhyOfVyV+E=n+5P)*H>suZ2S$1Uk$(JLHBlGEBuE+_yh3a54qc) zg6|!KkER1S5B@rv|K=(GCBlCM|Co*6p!f{#w_%%B!w1$i)DPG*~JPq|YIIG|9#-m%r8WM&b0y@ik%0=)q z;L~h=9;E!d9{%2UDqP>g?S!Ag+LIiDSLq0yqVjnd{werJZ2SX?_roW!R>iG9-l8S% z!-Me2@Tu_U+tMGS(mx))?|bxXY~b-~D-Ez2wK)(jT}_?1aA#dmd{7`8S5W zb^jlRpAGNUPW$0sgii>u*n2Nl>1)x7@yyZ+?L%w$q3>_3$U*-NN4qKXG4$Cf*aM^7r1W`nQMSzhtdXC;B}BzC$w+0k;5; zAO2_7?Bv_V`(~-}z83V0dzHJ_-(>hW_^#Ietv6op+=}qW!}qCTZI;cyFDU;mg8$6V zc#$ps5*7b?_#D;<<=VoZro!I|zm>H>SJ=WIqQXB6|6O>c_Lhx*P4RyCWvmt2ZR1~8 zdOYDdPy`=TnfeKz~|l>H+3eT`X5gRfNiggzQ5 zfB4a7SK8nIczw!#C;a$xDz%?&_CF~5!|-jRSql_q3E%5g>GQ)kimB8-3bpd3s-14p zhWGHzE42`t|NV+jhTm|0rMAar|Aykn!w>XTYQ?tn-K^5L2>yBa#*E9U{CguCoAq-& z{G**KwPQB>Zy|$K^#l{q&)E zVWr0thi+&(r@8$=|Km6B)m0D+OefP$x`#}l(Z`W69V*ZZuulF~_m%_ibq*A-c=D!P+ z|H|O^umCY*ZT5?leHwh*6|Aik9X_-Cy| z`(pTuODeU6yr&A}e{PiNzY_RmJ1ez^Bdq*-)n1pvhreB^-EF&H-J$vmW$+93R=U6c zjAO0n2drterSE-}zBu?k`zp04+x6E#U4Lotoj$76j*>i;{?KpK^^*(#C;YEA{wKv3 z!@u!yrPkHT&(dkV{*=HUfWOiff0~NF6u!=`UN3JXWc-vZeogmHtxr{jBZHw)tn0@=qCjlV2;fa9jRDRQ@94Sz7`B zoh|;aRQz%9ud+s%U;^pS36xJ7{Cn_iZ1MY4{JHS^ey?<$FI5cxJ^Yup`g>5--xBx@ ze^uJ&t%0TloD|_>l?B#|py7 z!S922%U>G&i6DF~eBFvl*Y_R8@NMBQv8K;5ueAie7yNoFA9}A!e<}P9c(?qO!G9Zs zkL=7EkV^OXlv@HfM!+xWovd11TTAW>_4H9R}_BgbkO0OTjKl~Fme{EF$YSE24)r7qatoHeV@=S(58iXGY?}vA* zuZ!UOGU!cbTpee$PNRpgn%KrMsU>cL98E z2iDjN3so*BRJp8%PrkTH`_{%ER{U1@YWUZz>G1AQ<#qu6{!Y{*Yks`rRX^ku{Nc`3 z+Vi&XpVq?{^)Q+n(5x`K84?U+3R5zx=!p};x-Pm6yDdZ zO8eZFp96Y+L_8be53{$)U@I@;=^gO9(3PU|Us|O#v*ugq&a#)|DRjT|s?tU{!y6I^ zPn2T|Dt=5~_D10EKsi07${`tkvkNcMGaf#PJy6

z}AEMweTJs{3&%x*qIZGS->y zbbGo>(9K})k`B)Bj4rSqo=EorbThB0a-D~F3jUuUd~^?> z`tj0$ABBHTp=&%6e+xr1ywJe>nCPCYJAgl7t{{R zpknWmFmHD=MMAd}-Ff4yv@TYE_SbbC%qvNxy98aEtE;r-R-JdTYFA3(Z<|o1&9L!P z6<-E_aAK8f|0wcO{4%M^b=^=L{89L8ZGH)iSEj*t%Orj)FUl!1&~Au)6rd|a_k%5+ zM^rjj!}pp}T;FqM!CwLY zz10uiua&=-!Z*&V(tfw`Ws2Vj|6P8S>vQRD_$%2H>1k{JLpQ5-`Y8O@@XKuJFH-3b zV?et9{3_Sy;@0qQ!gsORcU1PN@CVp~=}BAskE!^x;3u#*(^*#D@*a38{80FnRzCDL zWxo;rRrp~x|6Hd0vm3tbI@)7f`aV+WI|~2E4esHG(V;*4M%o2i_@h+#t>K3jRcUY9 z_*WI53jf>UD%WwtEcn0Jd&;ffzZCw_B~@A7WEb9WY z;QPTpS|5RVzwth(-qS9HfBRncoT_K#zf|iYHo`A^xJp|Gt?WbZ3FIGMgYRbZUxMyG z@ho-}KKfDa=iwIn^gF$Ggxy}JIDAQ6Z;{?*hBWS@(PU)76IEKJHNT=CbyCl=(j}w2 zyo7v-GiJW@`&Q`vdg3_Uf+Gvv9(12ub)g4T`j^7r_%!|95KB1T!-4XLPhsz`pKRrO zRF&^;_>X(Jhh<*SDfp}5`&pkOyuI{?Vo_hB2XH+euhKT! z>>pC)oe1y!sY;t>^T%Z6j|}+BPE=`)Z273CuGa$iq+e;zY}d;@>UvoX|NN;c?IK(F z7pU;J!oPT$ewB^?L-7aTi!0b`(H8%sD*jXO(be=XZTx$Rj~>W-M2}y4It&Mx?V5M9 zy51Av)9d)Ptv3HWtNfDze-wVPjW=!x!oLOZ1H#$6%Er%7_N(FVfxq6y2gdQX!v6t3 zFa&{0UtiT;9)ORD@N1oHyzwX@;y(r7jy?H4u=#JV@?SI;%7F%c?HXJB*(!aB@E1h- zwbeHMPQ_=yuL{B!z=t<Pq!^#Zd_DMBD?cT`Z-s9h#Qp$$D12+Hy=9%_Dfn>sCRW~9 z#$e?Ca?;<@Q9q34N#_&c8w80z1Ky9lTl@v^9_%l$#&0Zx(!*a3{}1-jR^BLHo!<)o z2fSPQ55WHz#QqfgmqGaGG~V;UyQMD?{(~TV2K@W*qO4W<8`G`y^cTRt1An2FHbFEC?Sxl=mn>_(b?SgYX&fOI>(TCko&f!QW-gzZfUF z*{I{(_3#=2wh=Tb?&XIV?r@(;)Wz6qcr6Lf=y5 zv=RQU!G72At=;e?@HFcd`@sG5DEz1JXIXhU{vy&D#*Jn-yzTi+^sB!K_)DZS4&AcL z{n}^Na6&&;=}d!9PV;MV*8F4hrd$%P-xp1@~Y%SXf$VUK4ux-Jh$_{7+u3`zcxS2qO;bY>H4Lj^pRK6cbV?jlHK(20ln}?GWtm~ z{o4E1`rzH8R~o^Ohi|~1!*1&{7r~#K=hq5E3e0?j&Q|_h4?hF`Q(HfFzv}1ig!dKr zwaabs4^;6VhQFM>i0j$x!<4-rK9RkNAGVf>37|Ctqi`!TQ#>AqMRc~alhT;*FLf4Pt^B!1MQyBC8GP|J)R$|`4qZ_dR9>w z*Tr~r-+thCoiDNo{xi`&Kr*3ayOpZ1Yo%d_z_mHlD(9Un7J zVXJS?s(SB-ANncd3^w~hW#3{n^IZ=5Yh2$h$}1VZ?;-Z^uEQ7ey7vb5BN`8X%U6DF zjc|y`hu)>vC*j9M@EUwaYx;yAFS1`(8_|Uw@z?l%Muf8)ehIv0&4&o*FFh+FcD;U; zp&R?1U;EG+pZ8tmkH|6X)AfV9KjYxX9^-yu%Ws$(H%o)>f5NYQZB2*wb3G9vow@KK zzxeI@Plq{yK1?_=tEJq$nhclYO5Km0WK zEStUYpeV|>#Z~kV;aA)Ez&KAb{Dpt`UDwx*htGE5MLrk7m%u-74WE3g^aw&kH2|wA!U#7I@j<7mI&zp}-1NTo9w{=q7D`|m`UZ%f?k}tv0i1^CT<)Y)U$5Jjs z^!$i$BFFRG3(svbz#H$g70%Q|Kt= z#|-$F;FpJ4cw^qfLi0}A0%{SuCSmMR&)=iv6!LNsZ5uV{n3*TSyJK>MOyRB0{ z48JbCy2kfjqP+d^)pe`w^Fc*ByD-omi*&S}K>xK~wRWq`AIo%+;8Wq>s$X5>^(^Aa zg0I7GOg!kk9*v;}6h^reqq~mZp14MwQ0=E*r&m-gm-JVa^cqn;fvun!k=&R zb6`Dr3H-xnRoB=*7Je>;-w?%bMOf>dD9@>8tuwCQQ|OLIS8GkJ_i>?%)Nkb?cY3?h zViNPEnpM|2&o&j^b>~&r_`XLkfB3`jYn}1k5r|Ltw-{Yo%WCZ%{tlG?o4SKVI3@6Z z!rS&E66vmEZ`Ti?`{JT%*Zmnz!6&qJug}q$lvBHE?JHY398&$5MEKF|tL^KuMLH%s z`oHMzkK?yMY~dK2*NXfu5`0I>o4-|l#{}xrdib^QHI3T{`e6{Ac zh9CO39)Ym;!;kD#t!=Vim)?hUX9~Ur7t)uVsqZ0tF|S8&;CUk%es7m*t0Z z@Q-w@)?TyO?@;Z=BKQ=3GsbOvWIcRZ_iESm0z2X3FR6B2uXq@~cM|!trSD;tK0o|! z_*J3S{M{bN{}i5kFRgZ6U!4qJ7K9%UzahEWb-l$R_|M>d*7S|Dl)vO%+kbcs`&Cx^ z(A!o14#Qu|Z|}6X@>zlK{qPIni>p%Qi zLHHKgTm$frSnVzMgJk#z;cv9@fqwFMcn`mIRM*P)Gx8tJxkd0NvDdF}q4|ICnY7G^ z)F;s`3HM22(n-Cvl}udP;*(^6$JbD=ZSouMvG^;5e_`^B7#bFzI-Ju#Je5N||5e~f!7BKV$4!syFwubN2-{8>Kcj(RZ)R%_0 zIP~IPBK#?uT=6kd!RClUNv(=xbf6QzCU5CDji{6ayQ-{8()SKa&S5sq|o*x|gb6wIOBlUkc^fBoFA-~T0 zdA2OC&`Zr2jR2at=+BY*#twaRnf^L5{st1gQtxx<&#Ofr=g^C_ay9v1w7=q$I`lr79<%(7R0sZ_?$C?91!}6Fro~)`zLiXmS-z&u zyfT+M^kQ!b5x$%L9)~{G5x!YZn@ayY?$C?1ZlU}$!*3)LbgtBIbLd6i(OSOF^uOWI zcXXt`t2Bs{;eX=Lcb0m$_UfoZFV?U`^UqEHi$i~DE#aSb=#y*FS3C5*(F=c?*Oz&n zo9%7=Wc&5o2YopI-1JQx`V^TSv%E}yHkbaq*rD$$(_`w*@@*sai4J`~^rC#tdSj;6 z^lv|hzJD$HG>1M_Pk)HVd3~Af`DllJfQ#Pr>lBCnGF`73bE&9nZDoDy>=8W?-s?%d zPxhYz!_1IU&v&Nyn z5`D1t^C5?RxYV2V;Q|@%g(8`Jo_6R*IP|7}eA4b^hdu+nxPM97W8Pm{8o_(sap*_7 z=vztsXAb>nJw4SLVEgoy>HpE87kkqP|JSprMgPb6oOIEf_1-jd(_d9f_?jd9##9_H z|Necw8!^IG)3I`p@rx7O#grQfMP`X{uvS%Sv*JJ5&mPp@2@GVdFvzNtgM7JV>( zwsh!USz^>@v;K&AaNkh*SD7)`g3a0zwOXRqj&mKB*^sV zA&0(+)a#WIoft3}xek3Z^uez84i0^D8NPXcG}~n}{N4`zc~Wn-Yfk+ThrUHE`mqlE`BHEC#V7q> zre}sje*t=tUo-uI_R}z&=g^NwFZ^%no%MN%Lw{i{;jeb+eYNN}IrJ^ji~8y2&utEU zt6KDLIrJCRqTlb(x2{G1y+hxo7X4|5zHKe~x+&qZ#0_XC^=5fF>syRNA6tvQtwY}) zeX#nI=+JjSFY1q3Ue5Z{&!N9q>do{!^&=emxLWj?4t+%1PHbm%+RlAaeF`YyHTcRTc5YtbKc=o8V4{OXM>9t^bq z6gr>p9QtlDe6xKv%YpVv|NQRIkF7-?(l=aM8ZfRFeT+kYHG0vXG}G_wzjboxZ$n>m zevSKGABVnJ>dpR=(?25|`rFZq`e6FS9G5ixGtHsDLxykaebO7~^(^H%^mo>ho*Nwc zl~QkBzpWkN-|5ibRZIAr9QswYgumUPKTnpFS$|}50HXx=JM?2Y9jyQGg+sqm>fQRo z-#PSmNxkX+@PL2xzfL>!tE3*#KcN!)n&11GAs8p_t|k124*hEM!JbFXbLj7p;RE`| znVxnI{c{LK{dcPmT^#!7rQR$rXMe1RL;r$IkDEUSJM^7Mut<-o_sM+pl@(%yLtn!4 zi@1N8dgt{u*`b%gDOktzTh09;63%C)!~TI<^a~yOR`U78^p}~=zOsJbG=-WxX8GfKVjP`4jLmw;k|8Bnw{Wgc*v(l)4rasV~8vgmjq4%N>Ha`B1LmyU) z{-i@6a#!&5g!Z>zZ=vXem2Y#0K14q6nb$+0zhdOKvqK*$_2&KFsqgR5dus{*N{2qI z7Ja5eU#FJzkj=QsWd>#0db6E2YFXfV|JI?us}_BkL%*sPz2?w+ zHUz)E&PlajUm@tl^=10gSsyNP=tHI6)S01~?OVJ<@2y4O+o2Cb-;jT9{=CAWZ}3R) z_FG|BD zKev|j{OHho9yR=L`ZLsHe9ZdrmqQ;?i=K@~WC#X?q7PPH&hgxkjlt`4eP{T!=$kq8 z-dgl+9r`e-ce}rIb?EEV5`L;fA6|=otV3V7mh{YU=p$+gf4)OsuNHlgLtnoZ{cR3? z1N6b_!#xgtWG&%8JzrBM!d{bv)2p59znfcscs?GX$q?38Z zun2Y0oAvLsLthuYC_gj&co}i3EWfi8?BPea=m$vs1rB{Z7yUq~zu2J{7ryiQ5lI>( z)0O1VdtLN{rM|C2FHb9ID9h745h#D-Ovw;?{>^z=|5e|MVs_?7v1ZLbv&111 z&G4Mq#MQq>{jZ#5&;OkBjrq}I&V0^z;Qzn_&U*O&>-R!=Jvs9~N?$C>e0YiTBrcb@ zM&c%k+a&Ihcu?XoiKiuo7aB1&mDpBdcZmZfj*>W4;yj7VC9aXUN#Zt%dn6u|cueAH ziQx-m{1V$r>@IPj#8DEbN}MNgxx_URH%Z(kagW4<5|2qdEirtdj9+3~iQOd*lsHP_ zREhH>E|<7Q;wFjPB<_)TP~tI(rzM78C*zmcR$_OF10{}&A z9+Y@Y;%SNDi)8!~+e+*%aiGLe5~oU>CvmyNH4-;T+$M34#Dfx#Njxnv{CXL`#I_Q< zOB^V1l*FkL=Sf^HagD@H61Pd*Bk`cbV-inG48K9fFR`t}?h*$|93^q8#CZ~zOI#yy zlf-Qj_eeY_@tDNZ62otl@k?wgvAe{95=Tj#Dsi5~nN!%mxpu}SmPfHA6?9o3>CAO8=UE)BAqa;q1 zI8WkoiEAWolDJLc9*GAf9+P-lV)#umeu-@*c9%F%;wXtzCC-z$T;dvunFE`mrGnDag)St68A_vDDjxY(-Om%%J?O=mDpY4 zK#8LyPL()M;&O>bD6HRYdSCBH1~l#SY2i=3%yU-UtpB)=e3-BhPs{V>xQ|IaXPz%I z&lvc!Jm21Nevdr=kF4LO)%)_iIqqhj-!ISGM;%z_DbI(RLWw`g^WGvm@t1kte%j;h zY=j)e_<##OLSa7vvRW zPWHslnq80`KW*0B_{npp=Vo=Bp5@WMEZdif zaCzCenZiK+H7B>g6F+^{bp9{MF695Ie1V&tm06JKiOhK2d}HB*oYQxOlL=xNHFIeiN0m`&*X7q3TY1V1@H-xEJ&_RN{tvkC$Q^1u04 zEOz3ZpLtyzuV(~g;&z|$y}8tw^)<#gt*@(PJaV>aKQ+Z5Ong}qAyRMZOk~_btbb7U zzW#>L#4XZJ#4p+sGk$s6lffV2S~SDkFYQe%y3kOX@tgK$`X@N-)2A4E6OWt|u&>LX zPWv3riLlM~CPDVYO*GdJ8KD?yHUAbUqO;nkNP8309RnifIFX679QG@hics0-L*mIN z?JclrXQi?Vg%W9u~ zt>Ix4OU#0j7NV@JpOt*E+Iw!5B_wfmwpAS{KlAK5{t#v4HBXr9$4?sJ$k0qymA`pn z6Mu-cvZj56w2%0Y_RnK0(r?;FN&Be(X#bMK-dv~UllEgeBCvdXmcPZHA8=UX-+mzt zE}!ie8YM5*XInp}KTP}>(rUlUXV~xZ8TQ-F3quBC+L`#J!@j7UVPDkFu#dG@ACFIl zW5T!mA;L2Kx2wHjzq!3(FUCu)AD{ILe;?y;WKma`_P03nPObQE#%+~$?qJ0KoAo4r zJMAyv+-XbucVvK({v#s|`vmDI)6Vpp8LVi#MZ08XGwKS%K5Bwt-`W&PblUIcyeJ}- zhjhcZFtl zJkvcPD^`oyU$>-0MEN`|W0r<^d;`OaidydVM6L2XS`?emXhWnYWmQDIu!yWKQI~l- zhqR3?VxCmPkO*(ld)`%>W14^6a8A*fT}7!!q6d2#hrH?OQa3zoW=K@pu24@(9Zzh( zqFoW8VF@Xor4fx&Tek9~E{*ni!$QI*y%%y(NYUzgyEc1vc|uo;#6`6%WNW5nDeHIj zZ{TYd<*UCq-WNt>5v|fg?u=s9LX4+XBI$o|X?VUZfh|f z6UA{hhxmOK@tZ5+BYsOo{N9Q94HNM@BjUF`d>pMf#P4K?y$i(t1L8L@%#Zkei;FqL z?@+{ZBye=$NaPToZeS0No*d%0A;kLXejMT>e%nBNQbF-M1mYw1V-O#)&w}_20mW|) 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 uG{_0ibS2i{%t|T}l2ZIWF+Wa4_uq-eD diff --git a/server/www/packages/packages-linux/x64/PIL/BdfFontFile.py b/server/www/packages/packages-linux/x64/PIL/BdfFontFile.py index fdf2c09..7a485cf 100644 --- a/server/www/packages/packages-linux/x64/PIL/BdfFontFile.py +++ b/server/www/packages/packages-linux/x64/PIL/BdfFontFile.py @@ -17,7 +17,6 @@ # See the README file for information on usage and redistribution. # -from __future__ import print_function from . import FontFile, Image @@ -85,8 +84,7 @@ def bdf_char(f): class BdfFontFile(FontFile.FontFile): def __init__(self, fp): - - FontFile.FontFile.__init__(self) + super().__init__() s = fp.readline() if s[:13] != b"STARTFONT 2.1": diff --git a/server/www/packages/packages-linux/x64/PIL/BlpImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/BlpImagePlugin.py index 7b97964..5ccba37 100644 --- a/server/www/packages/packages-linux/x64/PIL/BlpImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/BlpImagePlugin.py @@ -119,7 +119,7 @@ def decode_dxt3(data): bits = struct.unpack_from("<8B", block) color0, color1 = struct.unpack_from("= 16 @@ -163,12 +159,12 @@ class BmpImageFile(ImageFile.ImageFile): # ------------------------------- Check abnormal values for DOS attacks if file_info["width"] * file_info["height"] > 2 ** 31: - raise IOError("Unsupported BMP Size: (%dx%d)" % self.size) + raise OSError("Unsupported BMP Size: (%dx%d)" % self.size) # ---------------------- Check bit depth for unusual unsupported values self.mode, raw_mode = BIT2MODE.get(file_info["bits"], (None, None)) if self.mode is None: - raise IOError("Unsupported BMP pixel depth (%d)" % file_info["bits"]) + raise OSError("Unsupported BMP pixel depth (%d)" % file_info["bits"]) # ---------------- Process BMP with Bitfields compression (not palette) if file_info["compression"] == self.BITFIELDS: @@ -206,21 +202,21 @@ class BmpImageFile(ImageFile.ImageFile): ): raw_mode = MASK_MODES[(file_info["bits"], file_info["rgb_mask"])] else: - raise IOError("Unsupported BMP bitfields layout") + raise OSError("Unsupported BMP bitfields layout") else: - raise IOError("Unsupported BMP bitfields layout") + raise OSError("Unsupported BMP bitfields layout") elif file_info["compression"] == self.RAW: if file_info["bits"] == 32 and header == 22: # 32-bit .cur offset raw_mode, self.mode = "BGRA", "RGBA" else: - raise IOError("Unsupported BMP compression (%d)" % file_info["compression"]) + raise OSError("Unsupported BMP compression (%d)" % file_info["compression"]) # --------------- Once the header is processed, process the palette/LUT if self.mode == "P": # Paletted for 1, 4 and 8 bit images # ---------------------------------------------------- 1-bit images if not (0 < file_info["colors"] <= 65536): - raise IOError("Unsupported BMP Palette size (%d)" % file_info["colors"]) + raise OSError("Unsupported BMP Palette size (%d)" % file_info["colors"]) else: padding = file_info["palette_padding"] palette = read(padding * file_info["colors"]) @@ -309,7 +305,7 @@ def _save(im, fp, filename, bitmap_header=True): try: rawmode, bits, colors = SAVE[im.mode] except KeyError: - raise IOError("cannot write mode %s as BMP" % im.mode) + raise OSError("cannot write mode %s as BMP" % im.mode) info = im.encoderinfo @@ -325,12 +321,15 @@ def _save(im, fp, filename, bitmap_header=True): # bitmap header if bitmap_header: offset = 14 + header + colors * 4 + file_size = offset + image + if file_size > 2 ** 32 - 1: + raise ValueError("File size is too large for the BMP format") fp.write( - b"BM" - + o32(offset + image) # file type (magic) - + o32(0) # file size - + o32(offset) # reserved - ) # image data offset + b"BM" # file type (magic) + + o32(file_size) # file size + + o32(0) # reserved + + o32(offset) # image data offset + ) # bitmap info header fp.write( diff --git a/server/www/packages/packages-linux/x64/PIL/BufrStubImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/BufrStubImagePlugin.py index 56cac3b..48f21e1 100644 --- a/server/www/packages/packages-linux/x64/PIL/BufrStubImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/BufrStubImagePlugin.py @@ -60,7 +60,7 @@ class BufrStubImageFile(ImageFile.StubImageFile): def _save(im, fp, filename): if _handler is None or not hasattr("_handler", "save"): - raise IOError("BUFR save handler not installed") + raise OSError("BUFR save handler not installed") _handler.save(im, fp, filename) diff --git a/server/www/packages/packages-linux/x64/PIL/ContainerIO.py b/server/www/packages/packages-linux/x64/PIL/ContainerIO.py index 3cf9d82..5bb0086 100644 --- a/server/www/packages/packages-linux/x64/PIL/ContainerIO.py +++ b/server/www/packages/packages-linux/x64/PIL/ContainerIO.py @@ -21,7 +21,7 @@ import io -class ContainerIO(object): +class ContainerIO: def __init__(self, file, offset, length): """ Create file object. @@ -82,7 +82,7 @@ class ContainerIO(object): else: n = self.length - self.pos if not n: # EOF - return "" + return b"" if "b" in self.fh.mode else "" self.pos = self.pos + n return self.fh.read(n) @@ -92,13 +92,14 @@ class ContainerIO(object): :returns: An 8-bit string. """ - s = "" + s = b"" if "b" in self.fh.mode else "" + newline_character = b"\n" if "b" in self.fh.mode else "\n" while True: c = self.read(1) if not c: break s = s + c - if c == "\n": + if c == newline_character: break return s diff --git a/server/www/packages/packages-linux/x64/PIL/CurImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/CurImagePlugin.py index 9e2d8c9..3a1b6d2 100644 --- a/server/www/packages/packages-linux/x64/PIL/CurImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/CurImagePlugin.py @@ -15,16 +15,9 @@ # # See the README file for information on usage and redistribution. # - -from __future__ import print_function - from . import BmpImagePlugin, Image from ._binary import i8, i16le as i16, i32le as i32 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - # # -------------------------------------------------------------------- diff --git a/server/www/packages/packages-linux/x64/PIL/DcxImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/DcxImagePlugin.py index 57c3214..7d2aff3 100644 --- a/server/www/packages/packages-linux/x64/PIL/DcxImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/DcxImagePlugin.py @@ -25,10 +25,6 @@ from . import Image from ._binary import i32le as i32 from .PcxImagePlugin import PcxImageFile -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.2" - MAGIC = 0x3ADE68B1 # QUIZ: what's this value, then? diff --git a/server/www/packages/packages-linux/x64/PIL/DdsImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/DdsImagePlugin.py index b2d5089..9ba6e0f 100644 --- a/server/www/packages/packages-linux/x64/PIL/DdsImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/DdsImagePlugin.py @@ -106,10 +106,10 @@ class DdsImageFile(ImageFile.ImageFile): def _open(self): magic, header_size = struct.unpack(" 2: - fp = io.TextIOWrapper(fp, encoding="latin-1") - wrapped_fp = True + fp = io.TextIOWrapper(fp, encoding="latin-1") + wrapped_fp = True try: if eps: diff --git a/server/www/packages/packages-linux/x64/PIL/ExifTags.py b/server/www/packages/packages-linux/x64/PIL/ExifTags.py index 47a981e..cecc3f2 100644 --- a/server/www/packages/packages-linux/x64/PIL/ExifTags.py +++ b/server/www/packages/packages-linux/x64/PIL/ExifTags.py @@ -152,6 +152,12 @@ TAGS = { 0x9290: "SubsecTime", 0x9291: "SubsecTimeOriginal", 0x9292: "SubsecTimeDigitized", + 0x9400: "AmbientTemperature", + 0x9401: "Humidity", + 0x9402: "Pressure", + 0x9403: "WaterDepth", + 0x9404: "Acceleration", + 0x9405: "CameraElevationAngle", 0x9C9B: "XPTitle", 0x9C9C: "XPComment", 0x9C9D: "XPAuthor", diff --git a/server/www/packages/packages-linux/x64/PIL/FitsStubImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/FitsStubImagePlugin.py index 7e6d35e..c2ce865 100644 --- a/server/www/packages/packages-linux/x64/PIL/FitsStubImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/FitsStubImagePlugin.py @@ -63,7 +63,7 @@ class FITSStubImageFile(ImageFile.StubImageFile): def _save(im, fp, filename): if _handler is None or not hasattr("_handler", "save"): - raise IOError("FITS save handler not installed") + raise OSError("FITS save handler not installed") _handler.save(im, fp, filename) diff --git a/server/www/packages/packages-linux/x64/PIL/FliImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/FliImagePlugin.py index 82015e2..9bf7d74 100644 --- a/server/www/packages/packages-linux/x64/PIL/FliImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/FliImagePlugin.py @@ -19,11 +19,6 @@ from . import Image, ImageFile, ImagePalette from ._binary import i8, i16le as i16, i32le as i32, o8 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.2" - - # # decoder diff --git a/server/www/packages/packages-linux/x64/PIL/FontFile.py b/server/www/packages/packages-linux/x64/PIL/FontFile.py index e57c2f3..979a1e3 100644 --- a/server/www/packages/packages-linux/x64/PIL/FontFile.py +++ b/server/www/packages/packages-linux/x64/PIL/FontFile.py @@ -14,7 +14,6 @@ # See the README file for information on usage and redistribution. # -from __future__ import print_function import os @@ -35,7 +34,7 @@ def puti16(fp, values): # Base class for raster font file handlers. -class FontFile(object): +class FontFile: bitmap = None diff --git a/server/www/packages/packages-linux/x64/PIL/FpxImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/FpxImagePlugin.py index 15ebe0e..8d252c7 100644 --- a/server/www/packages/packages-linux/x64/PIL/FpxImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/FpxImagePlugin.py @@ -14,18 +14,11 @@ # # See the README file for information on usage and redistribution. # - -from __future__ import print_function - import olefile from . import Image, ImageFile from ._binary import i8, i32le as i32 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - # we map from colour field tuples to (mode, rawmode) descriptors MODES = { # opacity @@ -66,7 +59,7 @@ class FpxImageFile(ImageFile.ImageFile): try: self.ole = olefile.OleFileIO(self.fp) - except IOError: + except OSError: raise SyntaxError("not an FPX file; invalid OLE file") if self.ole.root.clsid != "56616700-C154-11CE-8553-00AA00A1F95B": @@ -104,7 +97,10 @@ class FpxImageFile(ImageFile.ImageFile): s = prop[0x2000002 | id] colors = [] - for i in range(i32(s, 4)): + bands = i32(s, 4) + if bands > 4: + raise IOError("Invalid number of bands") + for i in range(bands): # note: for now, we ignore the "uncalibrated" flag colors.append(i32(s, 8 + i * 4) & 0x7FFFFFFF) @@ -145,7 +141,7 @@ class FpxImageFile(ImageFile.ImageFile): length = i32(s, 32) if size != self.size: - raise IOError("subimage mismatch") + raise OSError("subimage mismatch") # get tile descriptors fp.seek(28 + offset) @@ -218,7 +214,7 @@ class FpxImageFile(ImageFile.ImageFile): self.tile_prefix = self.jpeg[jpeg_tables] else: - raise IOError("unknown/invalid compression") + raise OSError("unknown/invalid compression") x = x + xtile if x >= xsize: diff --git a/server/www/packages/packages-linux/x64/PIL/FtexImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/FtexImagePlugin.py index 06f4a72..096ccac 100644 --- a/server/www/packages/packages-linux/x64/PIL/FtexImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/FtexImagePlugin.py @@ -79,7 +79,7 @@ class FtexImageFile(ImageFile.ImageFile): format, where = struct.unpack("<2i", self.fp.read(8)) self.fp.seek(where) - mipmap_size, = struct.unpack("Image.open function. To use @@ -87,4 +82,4 @@ def open(fp, mode="r"): try: return GdImageFile(fp) except SyntaxError: - raise IOError("cannot identify this image file") + raise UnidentifiedImageError("cannot identify this image file") diff --git a/server/www/packages/packages-linux/x64/PIL/GifImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/GifImagePlugin.py index 9d8e96f..1d94fc7 100644 --- a/server/www/packages/packages-linux/x64/PIL/GifImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/GifImagePlugin.py @@ -25,15 +25,13 @@ # import itertools +import math +import os +import subprocess from . import Image, ImageChops, ImageFile, ImagePalette, ImageSequence from ._binary import i8, i16le as i16, o8, o16le as o16 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.9" - - # -------------------------------------------------------------------- # Identify/read GIF files @@ -572,8 +570,11 @@ def _write_local_header(fp, im, offset, flags): if "comment" in im.encoderinfo and 1 <= len(im.encoderinfo["comment"]): fp.write(b"!" + o8(254)) # extension intro - for i in range(0, len(im.encoderinfo["comment"]), 255): - subblock = im.encoderinfo["comment"][i : i + 255] + comment = im.encoderinfo["comment"] + if isinstance(comment, str): + comment = comment.encode() + for i in range(0, len(comment), 255): + subblock = comment[i : i + 255] fp.write(o8(len(subblock)) + subblock) fp.write(o8(0)) if "loop" in im.encoderinfo: @@ -617,42 +618,44 @@ def _save_netpbm(im, fp, filename): # If you need real GIF compression and/or RGB quantization, you # can use the external NETPBM/PBMPLUS utilities. See comments # below for information on how to enable this. - - import os - from subprocess import Popen, check_call, PIPE, CalledProcessError - tempfile = im._dump() - with open(filename, "wb") as f: - if im.mode != "RGB": - with open(os.devnull, "wb") as devnull: - check_call(["ppmtogif", tempfile], stdout=f, stderr=devnull) - else: - # Pipe ppmquant output into ppmtogif - # "ppmquant 256 %s | ppmtogif > %s" % (tempfile, filename) - quant_cmd = ["ppmquant", "256", tempfile] - togif_cmd = ["ppmtogif"] - with open(os.devnull, "wb") as devnull: - quant_proc = Popen(quant_cmd, stdout=PIPE, stderr=devnull) - togif_proc = Popen( - togif_cmd, stdin=quant_proc.stdout, stdout=f, stderr=devnull + try: + with open(filename, "wb") as f: + if im.mode != "RGB": + subprocess.check_call( + ["ppmtogif", tempfile], stdout=f, stderr=subprocess.DEVNULL + ) + else: + # Pipe ppmquant output into ppmtogif + # "ppmquant 256 %s | ppmtogif > %s" % (tempfile, filename) + quant_cmd = ["ppmquant", "256", tempfile] + togif_cmd = ["ppmtogif"] + quant_proc = subprocess.Popen( + quant_cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL + ) + togif_proc = subprocess.Popen( + togif_cmd, + stdin=quant_proc.stdout, + stdout=f, + stderr=subprocess.DEVNULL, ) - # Allow ppmquant to receive SIGPIPE if ppmtogif exits - quant_proc.stdout.close() + # Allow ppmquant to receive SIGPIPE if ppmtogif exits + quant_proc.stdout.close() - retcode = quant_proc.wait() - if retcode: - raise CalledProcessError(retcode, quant_cmd) + retcode = quant_proc.wait() + if retcode: + raise subprocess.CalledProcessError(retcode, quant_cmd) - retcode = togif_proc.wait() - if retcode: - raise CalledProcessError(retcode, togif_cmd) - - try: - os.unlink(tempfile) - except OSError: - pass + retcode = togif_proc.wait() + if retcode: + raise subprocess.CalledProcessError(retcode, togif_cmd) + finally: + try: + os.unlink(tempfile) + except OSError: + pass # Force optimization so that we can test performance against @@ -699,14 +702,12 @@ def _get_optimize(im, info): def _get_color_table_size(palette_bytes): # calculate the palette size for the header - import math - if not palette_bytes: return 0 elif len(palette_bytes) < 9: return 1 else: - return int(math.ceil(math.log(len(palette_bytes) // 3, 2))) - 1 + return math.ceil(math.log(len(palette_bytes) // 3, 2)) - 1 def _get_header_palette(palette_bytes): @@ -853,7 +854,7 @@ def getdata(im, offset=(0, 0), **params): """ - class Collector(object): + class Collector: data = [] def write(self, data): diff --git a/server/www/packages/packages-linux/x64/PIL/GimpGradientFile.py b/server/www/packages/packages-linux/x64/PIL/GimpGradientFile.py index f48e7f7..1cacf57 100644 --- a/server/www/packages/packages-linux/x64/PIL/GimpGradientFile.py +++ b/server/www/packages/packages-linux/x64/PIL/GimpGradientFile.py @@ -60,7 +60,7 @@ def sphere_decreasing(middle, pos): SEGMENTS = [linear, curved, sine, sphere_increasing, sphere_decreasing] -class GradientFile(object): +class GradientFile: gradient = None @@ -73,7 +73,7 @@ class GradientFile(object): for i in range(entries): - x = i / float(entries - 1) + x = i / (entries - 1) while x1 < x: ix += 1 @@ -132,7 +132,7 @@ class GimpGradientFile(GradientFile): cspace = int(s[12]) if cspace != 0: - raise IOError("cannot handle HSV colour space") + raise OSError("cannot handle HSV colour space") gradient.append((x0, x1, xm, rgb0, rgb1, segment)) diff --git a/server/www/packages/packages-linux/x64/PIL/GimpPaletteFile.py b/server/www/packages/packages-linux/x64/PIL/GimpPaletteFile.py index 2994bbe..e3060ab 100644 --- a/server/www/packages/packages-linux/x64/PIL/GimpPaletteFile.py +++ b/server/www/packages/packages-linux/x64/PIL/GimpPaletteFile.py @@ -22,7 +22,7 @@ from ._binary import o8 # File handler for GIMP's palette format. -class GimpPaletteFile(object): +class GimpPaletteFile: rawmode = "RGB" diff --git a/server/www/packages/packages-linux/x64/PIL/GribStubImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/GribStubImagePlugin.py index 8a24a98..515c272 100644 --- a/server/www/packages/packages-linux/x64/PIL/GribStubImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/GribStubImagePlugin.py @@ -61,7 +61,7 @@ class GribStubImageFile(ImageFile.StubImageFile): def _save(im, fp, filename): if _handler is None or not hasattr("_handler", "save"): - raise IOError("GRIB save handler not installed") + raise OSError("GRIB save handler not installed") _handler.save(im, fp, filename) diff --git a/server/www/packages/packages-linux/x64/PIL/Hdf5StubImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/Hdf5StubImagePlugin.py index a3ea12f..362f2d3 100644 --- a/server/www/packages/packages-linux/x64/PIL/Hdf5StubImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/Hdf5StubImagePlugin.py @@ -60,7 +60,7 @@ class HDF5StubImageFile(ImageFile.StubImageFile): def _save(im, fp, filename): if _handler is None or not hasattr("_handler", "save"): - raise IOError("HDF5 save handler not installed") + raise OSError("HDF5 save handler not installed") _handler.save(im, fp, filename) diff --git a/server/www/packages/packages-linux/x64/PIL/IcnsImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/IcnsImagePlugin.py index 75ea18b..c003926 100644 --- a/server/www/packages/packages-linux/x64/PIL/IcnsImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/IcnsImagePlugin.py @@ -19,6 +19,7 @@ import io import os import shutil import struct +import subprocess import sys import tempfile @@ -128,7 +129,7 @@ def read_png_or_jpeg2000(fobj, start_length, size): raise ValueError("Unsupported icon subimage format") -class IcnsFile(object): +class IcnsFile: SIZES = { (512, 512, 2): [(b"ic10", read_png_or_jpeg2000)], @@ -313,41 +314,40 @@ def _save(im, fp, filename): fp.flush() # create the temporary set of pngs - iconset = tempfile.mkdtemp(".iconset") - provided_images = {im.width: im for im in im.encoderinfo.get("append_images", [])} - last_w = None - second_path = None - for w in [16, 32, 128, 256, 512]: - prefix = "icon_{}x{}".format(w, w) + with tempfile.TemporaryDirectory(".iconset") as iconset: + provided_images = { + im.width: im for im in im.encoderinfo.get("append_images", []) + } + last_w = None + second_path = None + for w in [16, 32, 128, 256, 512]: + prefix = "icon_{}x{}".format(w, w) - first_path = os.path.join(iconset, prefix + ".png") - if last_w == w: - shutil.copyfile(second_path, first_path) - else: - im_w = provided_images.get(w, im.resize((w, w), Image.LANCZOS)) - im_w.save(first_path) + first_path = os.path.join(iconset, prefix + ".png") + if last_w == w: + shutil.copyfile(second_path, first_path) + else: + im_w = provided_images.get(w, im.resize((w, w), Image.LANCZOS)) + im_w.save(first_path) - second_path = os.path.join(iconset, prefix + "@2x.png") - im_w2 = provided_images.get(w * 2, im.resize((w * 2, w * 2), Image.LANCZOS)) - im_w2.save(second_path) - last_w = w * 2 + second_path = os.path.join(iconset, prefix + "@2x.png") + im_w2 = provided_images.get(w * 2, im.resize((w * 2, w * 2), Image.LANCZOS)) + im_w2.save(second_path) + last_w = w * 2 - # iconutil -c icns -o {} {} - from subprocess import Popen, PIPE, CalledProcessError + # iconutil -c icns -o {} {} - convert_cmd = ["iconutil", "-c", "icns", "-o", filename, iconset] - with open(os.devnull, "wb") as devnull: - convert_proc = Popen(convert_cmd, stdout=PIPE, stderr=devnull) + convert_cmd = ["iconutil", "-c", "icns", "-o", filename, iconset] + convert_proc = subprocess.Popen( + convert_cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL + ) - convert_proc.stdout.close() + convert_proc.stdout.close() - retcode = convert_proc.wait() + retcode = convert_proc.wait() - # remove the temporary files - shutil.rmtree(iconset) - - if retcode: - raise CalledProcessError(retcode, convert_cmd) + if retcode: + raise subprocess.CalledProcessError(retcode, convert_cmd) Image.register_open(IcnsImageFile.format, IcnsImageFile, lambda x: x[:4] == b"icns") @@ -365,13 +365,12 @@ if __name__ == "__main__": print("Syntax: python IcnsImagePlugin.py [file]") sys.exit() - imf = IcnsImageFile(open(sys.argv[1], "rb")) - for size in imf.info["sizes"]: - imf.size = size - imf.load() - im = imf.im - im.save("out-%s-%s-%s.png" % size) - im = Image.open(sys.argv[1]) - im.save("out.png") - if sys.platform == "windows": - os.startfile("out.png") + with open(sys.argv[1], "rb") as fp: + imf = IcnsImageFile(fp) + for size in imf.info["sizes"]: + imf.size = size + imf.save("out-%s-%s-%s.png" % size) + with Image.open(sys.argv[1]) as im: + im.save("out.png") + if sys.platform == "windows": + os.startfile("out.png") diff --git a/server/www/packages/packages-linux/x64/PIL/IcoImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/IcoImagePlugin.py index 148e604..e4a7432 100644 --- a/server/www/packages/packages-linux/x64/PIL/IcoImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/IcoImagePlugin.py @@ -30,10 +30,6 @@ from math import ceil, log from . import BmpImagePlugin, Image, ImageFile, PngImagePlugin from ._binary import i8, i16le as i16, i32le as i32 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - # # -------------------------------------------------------------------- @@ -67,8 +63,9 @@ def _save(im, fp, filename): fp.write(struct.pack("= (3, 7): - builtins = __builtin__ + def __getattr__(name): + if name == "PILLOW_VERSION": + _raise_version_warning() + return __version__ + raise AttributeError("module '{}' has no attribute '{}'".format(__name__, name)) -try: - # Python 3 - from collections.abc import Callable, MutableMapping -except ImportError: - # Python 2.7 - from collections import Callable, MutableMapping +else: + from . import PILLOW_VERSION + + # Silence warning + assert PILLOW_VERSION -# Silence warning -assert PILLOW_VERSION logger = logging.getLogger(__name__) @@ -71,12 +80,6 @@ class DecompressionBombError(Exception): pass -class _imaging_not_installed(object): - # module placeholder - def __getattr__(self, id): - raise ImportError("The _imaging C module is not installed") - - # Limit to around a quarter gigabyte for a 24 bit (3 bpp) image MAX_IMAGE_PIXELS = int(1024 * 1024 * 1024 // 4 // 3) @@ -97,7 +100,7 @@ try: ) except ImportError as v: - core = _imaging_not_installed() + core = deferred_error(ImportError("The _imaging C module is not installed.")) # Explanations for ways that we know we might have an import error if str(v).startswith("Module use of python"): # The _imaging C module is present, but not compiled for @@ -109,22 +112,6 @@ except ImportError as v: ) elif str(v).startswith("The _imaging extension"): warnings.warn(str(v), RuntimeWarning) - elif "Symbol not found: _PyUnicodeUCS2_" in str(v): - # should match _PyUnicodeUCS2_FromString and - # _PyUnicodeUCS2_AsLatin1String - warnings.warn( - "The _imaging extension was built for Python with UCS2 support; " - "recompile Pillow or build Python --without-wide-unicode. ", - RuntimeWarning, - ) - elif "Symbol not found: _PyUnicodeUCS4_" in str(v): - # should match _PyUnicodeUCS4_FromString and - # _PyUnicodeUCS4_AsLatin1String - warnings.warn( - "The _imaging extension was built for Python with UCS4 support; " - "recompile Pillow or build Python --with-wide-unicode. ", - RuntimeWarning, - ) # Fail here anyway. Don't let people run with a mostly broken Pillow. # see docs/porting.rst raise @@ -137,18 +124,6 @@ try: except ImportError: cffi = None -try: - from pathlib import Path - - HAS_PATHLIB = True -except ImportError: - try: - from pathlib2 import Path - - HAS_PATHLIB = True - except ImportError: - HAS_PATHLIB = False - def isImageType(t): """ @@ -193,6 +168,9 @@ HAMMING = 5 BICUBIC = CUBIC = 3 LANCZOS = ANTIALIAS = 1 +_filters_support = {BOX: 0.5, BILINEAR: 1.0, HAMMING: 1.0, BICUBIC: 2.0, LANCZOS: 3.0} + + # dithers NEAREST = NONE = 0 ORDERED = 1 # Not yet implemented @@ -447,15 +425,17 @@ def _getdecoder(mode, decoder_name, args, extra=()): try: decoder = DECODERS[decoder_name] - return decoder(mode, *args + extra) except KeyError: pass + else: + return decoder(mode, *args + extra) + try: # get decoder decoder = getattr(core, decoder_name + "_decoder") - return decoder(mode, *args + extra) except AttributeError: - raise IOError("decoder %s not available" % decoder_name) + raise OSError("decoder %s not available" % decoder_name) + return decoder(mode, *args + extra) def _getencoder(mode, encoder_name, args, extra=()): @@ -468,15 +448,17 @@ def _getencoder(mode, encoder_name, args, extra=()): try: encoder = ENCODERS[encoder_name] - return encoder(mode, *args + extra) except KeyError: pass + else: + return encoder(mode, *args + extra) + try: # get encoder encoder = getattr(core, encoder_name + "_encoder") - return encoder(mode, *args + extra) except AttributeError: - raise IOError("encoder %s not available" % encoder_name) + raise OSError("encoder %s not available" % encoder_name) + return encoder(mode, *args + extra) # -------------------------------------------------------------------- @@ -487,7 +469,7 @@ def coerce_e(value): return value if isinstance(value, _E) else _E(value) -class _E(object): +class _E: def __init__(self, data): self.data = data @@ -528,7 +510,7 @@ def _getscaleoffset(expr): # Implementation wrapper -class Image(object): +class Image: """ This class represents an image object. To create :py:class:`~PIL.Image.Image` objects, use the appropriate factory @@ -624,11 +606,6 @@ class Image(object): # object is gone. self.im = deferred_error(ValueError("Operation on closed image")) - if sys.version_info.major >= 3: - - def __del__(self): - self.__exit__() - def _copy(self): self.load() self.im = self.im.copy() @@ -642,8 +619,6 @@ class Image(object): self.load() def _dump(self, file=None, format=None, **options): - import tempfile - suffix = "" if format: suffix = "." + format @@ -677,10 +652,6 @@ class Image(object): and self.tobytes() == other.tobytes() ) - def __ne__(self, other): - eq = self == other - return not eq - def __repr__(self): return "<%s.%s image mode=%s size=%dx%d at 0x%X>" % ( self.__class__.__module__, @@ -1186,16 +1157,18 @@ class Image(object): """ Configures the image file loader so it returns a version of the image that as closely as possible matches the given mode and - size. For example, you can use this method to convert a color - JPEG to greyscale while loading it, or to extract a 128x192 - version from a PCD file. + size. For example, you can use this method to convert a color + JPEG to greyscale while loading it. + + If any changes are made, returns a tuple with the chosen ``mode`` and + ``box`` with coordinates of the original image within the altered one. Note that this method modifies the :py:class:`~PIL.Image.Image` object - in place. If the image has already been loaded, this method has no + in place. If the image has already been loaded, this method has no effect. Note: This method is not implemented for most images. It is - currently implemented only for JPEG and PCD images. + currently implemented only for JPEG and MPO images. :param mode: The requested mode. :param size: The requested size. @@ -1350,10 +1323,7 @@ class Image(object): self.load() try: - if py3: - return list(self.im.getpalette()) - else: - return [i8(c) for c in self.im.getpalette()] + return list(self.im.getpalette()) except ValueError: return None # no palette @@ -1504,7 +1474,7 @@ class Image(object): raise ValueError("cannot determine region size; use 4-item box") box += (box[0] + size[0], box[1] + size[1]) - if isStringType(im): + if isinstance(im, str): from . import ImageColor im = ImageColor.getcolor(im, self.mode) @@ -1704,10 +1674,7 @@ class Image(object): palette = ImagePalette.raw(data.rawmode, data.palette) else: if not isinstance(data, bytes): - if py3: - data = bytes(data) - else: - data = "".join(chr(x) for x in data) + data = bytes(data) palette = ImagePalette.raw(rawmode, data) self.mode = "PA" if "A" in self.mode else "P" self.palette = palette @@ -1827,7 +1794,24 @@ class Image(object): return m_im - def resize(self, size, resample=NEAREST, box=None): + def _get_safe_box(self, size, resample, box): + """Expands the box so it includes adjacent pixels + that may be used by resampling with the given resampling filter. + """ + filter_support = _filters_support[resample] - 0.5 + scale_x = (box[2] - box[0]) / size[0] + scale_y = (box[3] - box[1]) / size[1] + support_x = filter_support * scale_x + support_y = filter_support * scale_y + + return ( + max(0, int(box[0] - support_x)), + max(0, int(box[1] - support_y)), + min(self.size[0], math.ceil(box[2] + support_x)), + min(self.size[1], math.ceil(box[3] + support_y)), + ) + + def resize(self, size, resample=BICUBIC, box=None, reducing_gap=None): """ Returns a resized copy of this image. @@ -1837,13 +1821,26 @@ class Image(object): one of :py:attr:`PIL.Image.NEAREST`, :py:attr:`PIL.Image.BOX`, :py:attr:`PIL.Image.BILINEAR`, :py:attr:`PIL.Image.HAMMING`, :py:attr:`PIL.Image.BICUBIC` or :py:attr:`PIL.Image.LANCZOS`. - If omitted, or if the image has mode "1" or "P", it is - set :py:attr:`PIL.Image.NEAREST`. + Default filter is :py:attr:`PIL.Image.BICUBIC`. + If the image has mode "1" or "P", it is + always set to :py:attr:`PIL.Image.NEAREST`. See: :ref:`concept-filters`. - :param box: An optional 4-tuple of floats giving the region - of the source image which should be scaled. - The values should be within (0, 0, width, height) rectangle. + :param box: An optional 4-tuple of floats providing + the source image region to be scaled. + The values must be within (0, 0, width, height) rectangle. If omitted or None, the entire source is used. + :param reducing_gap: Apply optimization by resizing the image + in two steps. First, reducing the image by integer times + using :py:meth:`~PIL.Image.Image.reduce`. + Second, resizing using regular resampling. The last step + changes size no less than by ``reducing_gap`` times. + ``reducing_gap`` may be None (no first step is performed) + or should be greater than 1.0. The bigger ``reducing_gap``, + the closer the result to the fair resampling. + The smaller ``reducing_gap``, the faster resizing. + With ``reducing_gap`` greater or equal to 3.0, the result is + indistinguishable from fair resampling in most cases. + The default value is None (no optimization). :returns: An :py:class:`~PIL.Image.Image` object. """ @@ -1865,6 +1862,9 @@ class Image(object): message + " Use " + ", ".join(filters[:-1]) + " or " + filters[-1] ) + if reducing_gap is not None and reducing_gap < 1.0: + raise ValueError("reducing_gap must be 1.0 or greater") + size = tuple(size) if box is None: @@ -1885,8 +1885,58 @@ class Image(object): self.load() + if reducing_gap is not None and resample != NEAREST: + factor_x = int((box[2] - box[0]) / size[0] / reducing_gap) or 1 + factor_y = int((box[3] - box[1]) / size[1] / reducing_gap) or 1 + if factor_x > 1 or factor_y > 1: + reduce_box = self._get_safe_box(size, resample, box) + factor = (factor_x, factor_y) + if callable(self.reduce): + self = self.reduce(factor, box=reduce_box) + else: + self = Image.reduce(self, factor, box=reduce_box) + box = ( + (box[0] - reduce_box[0]) / factor_x, + (box[1] - reduce_box[1]) / factor_y, + (box[2] - reduce_box[0]) / factor_x, + (box[3] - reduce_box[1]) / factor_y, + ) + return self._new(self.im.resize(size, resample, box)) + def reduce(self, factor, box=None): + """ + Returns a copy of the image reduced by `factor` times. + If the size of the image is not dividable by the `factor`, + the resulting size will be rounded up. + + :param factor: A greater than 0 integer or tuple of two integers + for width and height separately. + :param box: An optional 4-tuple of ints providing + the source image region to be reduced. + The values must be within (0, 0, width, height) rectangle. + If omitted or None, the entire source is used. + """ + if not isinstance(factor, (list, tuple)): + factor = (factor, factor) + + if box is None: + box = (0, 0) + self.size + else: + box = tuple(box) + + if factor == (1, 1) and box == (0, 0) + self.size: + return self.copy() + + if self.mode in ["LA", "RGBA"]: + im = self.convert(self.mode[:-1] + "a") + im = im.reduce(factor, box) + return im.convert(self.mode) + + self.load() + + return self._new(self.im.reduce(factor, box)) + def rotate( self, angle, @@ -1908,7 +1958,7 @@ class Image(object): environment), or :py:attr:`PIL.Image.BICUBIC` (cubic spline interpolation in a 4x4 environment). If omitted, or if the image has mode "1" or "P", it is - set :py:attr:`PIL.Image.NEAREST`. See :ref:`concept-filters`. + set to :py:attr:`PIL.Image.NEAREST`. See :ref:`concept-filters`. :param expand: Optional expansion flag. If true, expands the output image to make it large enough to hold the entire rotated image. If false or omitted, make the output image the same size as the @@ -1993,8 +2043,8 @@ class Image(object): x, y = transform(x, y, matrix) xx.append(x) yy.append(y) - nw = int(math.ceil(max(xx)) - math.floor(min(xx))) - nh = int(math.ceil(max(yy)) - math.floor(min(yy))) + nw = math.ceil(max(xx)) - math.floor(min(xx)) + nh = math.ceil(max(yy)) - math.floor(min(yy)) # We multiply a translation matrix from the right. Because of its # special form, this is the same as taking the image of the @@ -2039,7 +2089,7 @@ class Image(object): if isPath(fp): filename = fp open_fp = True - elif HAS_PATHLIB and isinstance(fp, Path): + elif isinstance(fp, Path): filename = str(fp) open_fp = True if not filename and hasattr(fp, "name") and isPath(fp.name): @@ -2161,7 +2211,7 @@ class Image(object): """ self.load() - if isStringType(channel): + if isinstance(channel, str): try: channel = self.getbands().index(channel) except ValueError: @@ -2177,7 +2227,7 @@ class Image(object): """ return 0 - def thumbnail(self, size, resample=BICUBIC): + def thumbnail(self, size, resample=BICUBIC, reducing_gap=2.0): """ Make this image into a thumbnail. This method modifies the image to contain a thumbnail version of itself, no larger than @@ -2196,27 +2246,47 @@ class Image(object): of :py:attr:`PIL.Image.NEAREST`, :py:attr:`PIL.Image.BILINEAR`, :py:attr:`PIL.Image.BICUBIC`, or :py:attr:`PIL.Image.LANCZOS`. If omitted, it defaults to :py:attr:`PIL.Image.BICUBIC`. - (was :py:attr:`PIL.Image.NEAREST` prior to version 2.5.0) + (was :py:attr:`PIL.Image.NEAREST` prior to version 2.5.0). + :param reducing_gap: Apply optimization by resizing the image + in two steps. First, reducing the image by integer times + using :py:meth:`~PIL.Image.Image.reduce` or + :py:meth:`~PIL.Image.Image.draft` for JPEG images. + Second, resizing using regular resampling. The last step + changes size no less than by ``reducing_gap`` times. + ``reducing_gap`` may be None (no first step is performed) + or should be greater than 1.0. The bigger ``reducing_gap``, + the closer the result to the fair resampling. + The smaller ``reducing_gap``, the faster resizing. + With ``reducing_gap`` greater or equal to 3.0, the result is + indistinguishable from fair resampling in most cases. + The default value is 2.0 (very close to fair resampling + while still being faster in many cases). :returns: None """ - # preserve aspect ratio - x, y = self.size - if x > size[0]: - y = int(max(y * size[0] / x, 1)) - x = int(size[0]) - if y > size[1]: - x = int(max(x * size[1] / y, 1)) - y = int(size[1]) - size = x, y - - if size == self.size: + x, y = map(math.floor, size) + if x >= self.width and y >= self.height: return - self.draft(None, size) + def round_aspect(number, key): + return max(min(math.floor(number), math.ceil(number), key=key), 1) + + # preserve aspect ratio + aspect = self.width / self.height + if x / y >= aspect: + x = round_aspect(y * aspect, key=lambda n: abs(aspect - n / y)) + else: + y = round_aspect(x / aspect, key=lambda n: abs(aspect - x / n)) + size = (x, y) + + box = None + if reducing_gap is not None: + res = self.draft(None, (size[0] * reducing_gap, size[1] * reducing_gap)) + if res is not None: + box = res[1] if self.size != size: - im = self.resize(size, resample) + im = self.resize(size, resample, box=box, reducing_gap=reducing_gap) self.im = im.im self._size = size @@ -2246,12 +2316,14 @@ class Image(object): It may also be an :py:class:`~PIL.Image.ImageTransformHandler` object:: + class Example(Image.ImageTransformHandler): def transform(size, method, data, resample, fill=1): # Return result It may also be an object with a :py:meth:`~method.getdata` method that returns a tuple supplying new **method** and **data** values:: + class Example(object): def getdata(self): method = Image.EXTENT @@ -2297,6 +2369,7 @@ class Image(object): raise ValueError("missing method data") im = new(self.mode, size, fillcolor) + im.info = self.info.copy() if method == MESH: # list of quads for box, quad in data: @@ -2318,8 +2391,8 @@ class Image(object): elif method == EXTENT: # convert extent to an affine transform x0, y0, x1, y1 = data - xs = float(x1 - x0) / w - ys = float(y1 - y0) / h + xs = (x1 - x0) / w + ys = (y1 - y0) / h method = AFFINE data = (xs, 0, x0, 0, ys, y0) @@ -2425,12 +2498,12 @@ class Image(object): # Abstract handlers. -class ImagePointHandler(object): +class ImagePointHandler: # used as a mixin by point transforms (for use with im.point) pass -class ImageTransformHandler(object): +class ImageTransformHandler: # used as a mixin by geometry transforms (for use with im.transform) pass @@ -2488,7 +2561,7 @@ def new(mode, size, color=0): # don't initialize return Image()._new(core.new(mode, size)) - if isStringType(color): + if isinstance(color, str): # css3-style specifier from . import ImageColor @@ -2592,17 +2665,10 @@ def frombuffer(mode, size, data, decoder_name="raw", *args): if decoder_name == "raw": if args == (): - warnings.warn( - "the frombuffer defaults will change in Pillow 7.0.0; " - "for portability, change the call to read:\n" - " frombuffer(mode, size, data, 'raw', mode, 0, 1)", - RuntimeWarning, - stacklevel=2, - ) - args = mode, 0, -1 # may change to (mode, 0, 1) post-1.1.6 + args = mode, 0, 1 if args[0] in _MAPMODES: im = new(mode, (1, 1)) - im = im._new(core.map_buffer(data, size, decoder_name, None, 0, args)) + im = im._new(core.map_buffer(data, size, decoder_name, 0, args)) im.readonly = 1 return im @@ -2642,9 +2708,12 @@ def fromarray(obj, mode=None): if mode is None: try: typekey = (1, 1) + shape[2:], arr["typestr"] - mode, rawmode = _fromarray_typemap[typekey] except KeyError: raise TypeError("Cannot handle this data type") + try: + mode, rawmode = _fromarray_typemap[typekey] + except KeyError: + raise TypeError("Cannot handle this data type: %s, %s" % typekey) else: rawmode = mode if mode in ["1", "L", "I", "P", "F"]: @@ -2748,16 +2817,24 @@ def open(fp, mode="r"): and be opened in binary mode. :param mode: The mode. If given, this argument must be "r". :returns: An :py:class:`~PIL.Image.Image` object. - :exception IOError: If the file cannot be found, or the image cannot be - opened and identified. + :exception FileNotFoundError: If the file cannot be found. + :exception PIL.UnidentifiedImageError: If the image cannot be opened and + identified. + :exception ValueError: If the ``mode`` is not "r", or if a ``StringIO`` + instance is used for ``fp``. """ if mode != "r": raise ValueError("bad mode %r" % mode) + elif isinstance(fp, io.StringIO): + raise ValueError( + "StringIO cannot be used to open an image. " + "Binary data must be used instead." + ) exclusive_fp = False filename = "" - if HAS_PATHLIB and isinstance(fp, Path): + if isinstance(fp, Path): filename = str(fp.resolve()) elif isPath(fp): filename = fp @@ -2815,7 +2892,9 @@ def open(fp, mode="r"): fp.close() for message in accept_warnings: warnings.warn(message) - raise IOError("cannot identify image file %r" % (filename if filename else fp)) + raise UnidentifiedImageError( + "cannot identify image file %r" % (filename if filename else fp) + ) # @@ -3238,7 +3317,7 @@ class Exif(MutableMapping): continue size = count * unit_size if size > 4: - offset, = struct.unpack("L", data) + (offset,) = struct.unpack(">L", data) self.fp.seek(offset) camerainfo = {"ModelID": self.fp.read(4)} @@ -3321,11 +3400,6 @@ class Exif(MutableMapping): def __contains__(self, tag): return tag in self._data or (self._info is not None and tag in self._info) - if not py3: - - def has_key(self, tag): - return tag in self - def __setitem__(self, tag, value): if self._info is not None and tag in self._info: del self._info[tag] diff --git a/server/www/packages/packages-linux/x64/PIL/ImageChops.py b/server/www/packages/packages-linux/x64/PIL/ImageChops.py index b1f71b5..2d13b52 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageChops.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageChops.py @@ -139,6 +139,42 @@ def screen(image1, image2): return image1._new(image1.im.chop_screen(image2.im)) +def soft_light(image1, image2): + """ + Superimposes two images on top of each other using the Soft Light algorithm + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_soft_light(image2.im)) + + +def hard_light(image1, image2): + """ + Superimposes two images on top of each other using the Hard Light algorithm + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_hard_light(image2.im)) + + +def overlay(image1, image2): + """ + Superimposes two images on top of each other using the Overlay algorithm + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_overlay(image2.im)) + + def add(image1, image2, scale=1.0, offset=0): """ Adds two images, dividing the result by scale and adding the diff --git a/server/www/packages/packages-linux/x64/PIL/ImageCms.py b/server/www/packages/packages-linux/x64/PIL/ImageCms.py index ed4eefc..661c3f3 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageCms.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageCms.py @@ -15,12 +15,9 @@ # See the README file for information on usage and redistribution. See # below for the original description. -from __future__ import print_function - import sys from PIL import Image -from PIL._util import isStringType try: from PIL import _imagingcms @@ -152,7 +149,7 @@ for flag in FLAGS.values(): # Profile. -class ImageCmsProfile(object): +class ImageCmsProfile: def __init__(self, profile): """ :param profile: Either a string representing a filename, @@ -161,7 +158,7 @@ class ImageCmsProfile(object): """ - if isStringType(profile): + if isinstance(profile, str): self._set(core.profile_open(profile), profile) elif hasattr(profile, "read"): self._set(core.profile_frombytes(profile.read())) @@ -257,20 +254,17 @@ def get_display_profile(handle=None): :returns: None if the profile is not known. """ - if sys.platform == "win32": - from PIL import ImageWin + if sys.platform != "win32": + return None - if isinstance(handle, ImageWin.HDC): - profile = core.get_display_profile_win32(handle, 1) - else: - profile = core.get_display_profile_win32(handle or 0) + from PIL import ImageWin + + if isinstance(handle, ImageWin.HDC): + profile = core.get_display_profile_win32(handle, 1) else: - try: - get = _imagingcms.get_display_profile - except AttributeError: - return None - else: - profile = get() + profile = core.get_display_profile_win32(handle or 0) + if profile is None: + return None return ImageCmsProfile(profile) @@ -374,7 +368,7 @@ def profileToProfile( imOut = None else: imOut = transform.apply(im) - except (IOError, TypeError, ValueError) as v: + except (OSError, TypeError, ValueError) as v: raise PyCMSError(v) return imOut @@ -398,7 +392,7 @@ def getOpenProfile(profileFilename): try: return ImageCmsProfile(profileFilename) - except (IOError, TypeError, ValueError) as v: + except (OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -479,7 +473,7 @@ def buildTransform( return ImageCmsTransform( inputProfile, outputProfile, inMode, outMode, renderingIntent, flags=flags ) - except (IOError, TypeError, ValueError) as v: + except (OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -590,7 +584,7 @@ def buildProofTransform( proofRenderingIntent, flags, ) - except (IOError, TypeError, ValueError) as v: + except (OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -733,9 +727,9 @@ def getProfileName(profile): return (profile.profile.profile_description or "") + "\n" if not manufacturer or len(model) > 30: return model + "\n" - return "%s - %s\n" % (model, manufacturer) + return "{} - {}\n".format(model, manufacturer) - except (AttributeError, IOError, TypeError, ValueError) as v: + except (AttributeError, OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -775,7 +769,7 @@ def getProfileInfo(profile): arr.append(elt) return "\r\n\r\n".join(arr) + "\r\n\r\n" - except (AttributeError, IOError, TypeError, ValueError) as v: + except (AttributeError, OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -803,7 +797,7 @@ def getProfileCopyright(profile): if not isinstance(profile, ImageCmsProfile): profile = ImageCmsProfile(profile) return (profile.profile.copyright or "") + "\n" - except (AttributeError, IOError, TypeError, ValueError) as v: + except (AttributeError, OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -831,7 +825,7 @@ def getProfileManufacturer(profile): if not isinstance(profile, ImageCmsProfile): profile = ImageCmsProfile(profile) return (profile.profile.manufacturer or "") + "\n" - except (AttributeError, IOError, TypeError, ValueError) as v: + except (AttributeError, OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -860,7 +854,7 @@ def getProfileModel(profile): if not isinstance(profile, ImageCmsProfile): profile = ImageCmsProfile(profile) return (profile.profile.model or "") + "\n" - except (AttributeError, IOError, TypeError, ValueError) as v: + except (AttributeError, OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -889,7 +883,7 @@ def getProfileDescription(profile): if not isinstance(profile, ImageCmsProfile): profile = ImageCmsProfile(profile) return (profile.profile.profile_description or "") + "\n" - except (AttributeError, IOError, TypeError, ValueError) as v: + except (AttributeError, OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -928,7 +922,7 @@ def getDefaultIntent(profile): if not isinstance(profile, ImageCmsProfile): profile = ImageCmsProfile(profile) return profile.profile.rendering_intent - except (AttributeError, IOError, TypeError, ValueError) as v: + except (AttributeError, OSError, TypeError, ValueError) as v: raise PyCMSError(v) @@ -979,7 +973,7 @@ def isIntentSupported(profile, intent, direction): return 1 else: return -1 - except (AttributeError, IOError, TypeError, ValueError) as v: + except (AttributeError, OSError, TypeError, ValueError) as v: raise PyCMSError(v) diff --git a/server/www/packages/packages-linux/x64/PIL/ImageColor.py b/server/www/packages/packages-linux/x64/PIL/ImageColor.py index 692d7d2..9cf7a99 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageColor.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageColor.py @@ -134,7 +134,9 @@ def getcolor(color, mode): if Image.getmodebase(mode) == "L": r, g, b = color - color = (r * 299 + g * 587 + b * 114) // 1000 + # ITU-R Recommendation 601-2 for nonlinear RGB + # scaled to 24 bits to match the convert's implementation. + color = (r * 19595 + g * 38470 + b * 7471 + 0x8000) >> 16 if mode[-1] == "A": return (color, alpha) else: diff --git a/server/www/packages/packages-linux/x64/PIL/ImageDraw.py b/server/www/packages/packages-linux/x64/PIL/ImageDraw.py index ed3383f..7abd459 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageDraw.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageDraw.py @@ -34,7 +34,6 @@ import math import numbers from . import Image, ImageColor -from ._util import isStringType """ @@ -45,7 +44,7 @@ directly. """ -class ImageDraw(object): +class ImageDraw: def __init__(self, im, mode=None): """ Create a drawing instance. @@ -107,13 +106,13 @@ class ImageDraw(object): ink = self.ink else: if ink is not None: - if isStringType(ink): + if isinstance(ink, str): ink = ImageColor.getcolor(ink, self.mode) if self.palette and not isinstance(ink, numbers.Number): ink = self.palette.getcolor(ink) ink = self.draw.draw_ink(ink) if fill is not None: - if isStringType(fill): + if isinstance(fill, str): fill = ImageColor.getcolor(fill, self.mode) if self.palette and not isinstance(fill, numbers.Number): fill = self.palette.getcolor(fill) @@ -135,20 +134,20 @@ class ImageDraw(object): if ink is not None: self.draw.draw_bitmap(xy, bitmap.im, ink) - def chord(self, xy, start, end, fill=None, outline=None, width=0): + def chord(self, xy, start, end, fill=None, outline=None, width=1): """Draw a chord.""" ink, fill = self._getink(outline, fill) if fill is not None: self.draw.draw_chord(xy, start, end, fill, 1) - if ink is not None and ink != fill: + if ink is not None and ink != fill and width != 0: self.draw.draw_chord(xy, start, end, ink, 0, width) - def ellipse(self, xy, fill=None, outline=None, width=0): + def ellipse(self, xy, fill=None, outline=None, width=1): """Draw an ellipse.""" ink, fill = self._getink(outline, fill) if fill is not None: self.draw.draw_ellipse(xy, fill, 1) - if ink is not None and ink != fill: + if ink is not None and ink != fill and width != 0: self.draw.draw_ellipse(xy, ink, 0, width) def line(self, xy, fill=None, width=0, joint=None): @@ -220,12 +219,12 @@ class ImageDraw(object): if ink is not None and ink != fill: self.draw.draw_outline(shape, ink, 0) - def pieslice(self, xy, start, end, fill=None, outline=None, width=0): + def pieslice(self, xy, start, end, fill=None, outline=None, width=1): """Draw a pieslice.""" ink, fill = self._getink(outline, fill) if fill is not None: self.draw.draw_pieslice(xy, start, end, fill, 1) - if ink is not None and ink != fill: + if ink is not None and ink != fill and width != 0: self.draw.draw_pieslice(xy, start, end, ink, 0, width) def point(self, xy, fill=None): @@ -242,12 +241,12 @@ class ImageDraw(object): if ink is not None and ink != fill: self.draw.draw_polygon(xy, ink, 0) - def rectangle(self, xy, fill=None, outline=None, width=0): + def rectangle(self, xy, fill=None, outline=None, width=1): """Draw a rectangle.""" ink, fill = self._getink(outline, fill) if fill is not None: self.draw.draw_rectangle(xy, fill, 1) - if ink is not None and ink != fill: + if ink is not None and ink != fill and width != 0: self.draw.draw_rectangle(xy, ink, 0, width) def _multiline_check(self, text): @@ -314,7 +313,7 @@ class ImageDraw(object): language=language, stroke_width=stroke_width, *args, - **kwargs + **kwargs, ) coord = coord[0] + offset[0], coord[1] + offset[1] except AttributeError: @@ -327,7 +326,7 @@ class ImageDraw(object): language, stroke_width, *args, - **kwargs + **kwargs, ) except TypeError: mask = font.getmask(text) diff --git a/server/www/packages/packages-linux/x64/PIL/ImageDraw2.py b/server/www/packages/packages-linux/x64/PIL/ImageDraw2.py index 324d869..20b5fe4 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageDraw2.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageDraw2.py @@ -19,25 +19,25 @@ from . import Image, ImageColor, ImageDraw, ImageFont, ImagePath -class Pen(object): +class Pen: def __init__(self, color, width=1, opacity=255): self.color = ImageColor.getrgb(color) self.width = width -class Brush(object): +class Brush: def __init__(self, color, opacity=255): self.color = ImageColor.getrgb(color) -class Font(object): +class Font: def __init__(self, color, file, size=12): # FIXME: add support for bitmap fonts self.color = ImageColor.getrgb(color) self.font = ImageFont.truetype(file, size) -class Draw(object): +class Draw: def __init__(self, image, size=None, color=None): if not hasattr(image, "im"): image = Image.new(image, size, color) diff --git a/server/www/packages/packages-linux/x64/PIL/ImageEnhance.py b/server/www/packages/packages-linux/x64/PIL/ImageEnhance.py index 534eb4f..3b79d5c 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageEnhance.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageEnhance.py @@ -21,7 +21,7 @@ from . import Image, ImageFilter, ImageStat -class _Enhance(object): +class _Enhance: def enhance(self, factor): """ Returns an enhanced image. diff --git a/server/www/packages/packages-linux/x64/PIL/ImageFile.py b/server/www/packages/packages-linux/x64/PIL/ImageFile.py index 836e631..6287968 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageFile.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageFile.py @@ -56,7 +56,7 @@ def raise_ioerror(error): message = ERRORS.get(error) if not message: message = "decoder error %d" % error - raise IOError(message + " when reading image file") + raise OSError(message + " when reading image file") # @@ -78,7 +78,7 @@ class ImageFile(Image.Image): "Base class for image file format handlers." def __init__(self, fp=None, filename=None): - Image.Image.__init__(self) + super().__init__() self._min_frame = 0 @@ -103,26 +103,24 @@ class ImageFile(Image.Image): self._exclusive_fp = None try: - self._open() - except ( - IndexError, # end of data - TypeError, # end of data (ord) - KeyError, # unsupported mode - EOFError, # got header but not the first frame - struct.error, - ) as v: + try: + self._open() + except ( + IndexError, # end of data + TypeError, # end of data (ord) + KeyError, # unsupported mode + EOFError, # got header but not the first frame + struct.error, + ) as v: + raise SyntaxError(v) + + if not self.mode or self.size[0] <= 0: + raise SyntaxError("not identified by this driver") + except BaseException: # close the file only if we have opened it this constructor if self._exclusive_fp: self.fp.close() - raise SyntaxError(v) - - if not self.mode or self.size[0] <= 0: - raise SyntaxError("not identified by this driver") - - def draft(self, mode, size): - """Set draft mode""" - - pass + raise def get_format_mimetype(self): if self.custom_mimetype: @@ -145,7 +143,7 @@ class ImageFile(Image.Image): pixel = Image.Image.load(self) if self.tile is None: - raise IOError("cannot load this image") + raise OSError("cannot load this image") if not self.tile: return pixel @@ -196,14 +194,14 @@ class ImageFile(Image.Image): fp.fileno(), 0, access=mmap.ACCESS_READ ) self.im = Image.core.map_buffer( - self.map, self.size, decoder_name, extents, offset, args + self.map, self.size, decoder_name, offset, args ) readonly = 1 # After trashing self.im, # we might need to reload the palette data. if self.palette: self.palette.dirty = 1 - except (AttributeError, EnvironmentError, ImportError): + except (AttributeError, OSError, ImportError): self.map = None self.load_prepare() @@ -238,13 +236,13 @@ class ImageFile(Image.Image): if LOAD_TRUNCATED_IMAGES: break else: - raise IOError("image file is truncated") + raise OSError("image file is truncated") if not s: # truncated jpeg if LOAD_TRUNCATED_IMAGES: break else: - raise IOError( + raise OSError( "image file is truncated " "(%d bytes not processed)" % len(b) ) @@ -322,7 +320,7 @@ class StubImageFile(ImageFile): def load(self): loader = self._load() if loader is None: - raise IOError("cannot find loader for this %s file" % self.format) + raise OSError("cannot find loader for this %s file" % self.format) image = loader.load(self) assert image is not None # become the other object (!) @@ -334,7 +332,7 @@ class StubImageFile(ImageFile): raise NotImplementedError("StubImageFile subclass must implement _load") -class Parser(object): +class Parser: """ Incremental image parser. This class implements the standard feed/close consumer interface. @@ -411,7 +409,7 @@ class Parser(object): try: with io.BytesIO(self.data) as fp: im = Image.open(fp) - except IOError: + except OSError: # traceback.print_exc() pass # not enough data else: @@ -456,9 +454,9 @@ class Parser(object): self.feed(b"") self.data = self.decoder = None if not self.finished: - raise IOError("image was incomplete") + raise OSError("image was incomplete") if not self.image: - raise IOError("cannot parse this image") + raise OSError("cannot parse this image") if self.data: # incremental parsing not possible; reopen the file # not that we have all data @@ -514,7 +512,7 @@ def _save(im, fp, tile, bufsize=0): if s: break if s < 0: - raise IOError("encoder error %d when writing image file" % s) + raise OSError("encoder error %d when writing image file" % s) e.cleanup() else: # slight speedup: compress to real file object @@ -529,7 +527,7 @@ def _save(im, fp, tile, bufsize=0): else: s = e.encode_to_file(fh, bufsize) if s < 0: - raise IOError("encoder error %d when writing image file" % s) + raise OSError("encoder error %d when writing image file" % s) e.cleanup() if hasattr(fp, "flush"): fp.flush() @@ -559,7 +557,7 @@ def _safe_read(fp, size): return b"".join(data) -class PyCodecState(object): +class PyCodecState: def __init__(self): self.xsize = 0 self.ysize = 0 @@ -570,7 +568,7 @@ class PyCodecState(object): return (self.xoff, self.yoff, self.xoff + self.xsize, self.yoff + self.ysize) -class PyDecoder(object): +class PyDecoder: """ Python implementation of a format decoder. Override this class and add the decoding logic in the `decode` method. diff --git a/server/www/packages/packages-linux/x64/PIL/ImageFilter.py b/server/www/packages/packages-linux/x64/PIL/ImageFilter.py index fa4162b..6b0f5eb 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageFilter.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageFilter.py @@ -14,9 +14,6 @@ # # See the README file for information on usage and redistribution. # - -from __future__ import division - import functools try: @@ -25,7 +22,7 @@ except ImportError: # pragma: no cover numpy = None -class Filter(object): +class Filter: pass @@ -498,7 +495,7 @@ class Color3DLUT(MultibandFilter): r / (size1D - 1), g / (size2D - 1), b / (size3D - 1), - *values + *values, ) else: values = callback(*values) diff --git a/server/www/packages/packages-linux/x64/PIL/ImageFont.py b/server/www/packages/packages-linux/x64/PIL/ImageFont.py index 5cce9af..027e4c4 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageFont.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageFont.py @@ -25,17 +25,19 @@ # See the README file for information on usage and redistribution. # +import base64 import os import sys +from io import BytesIO from . import Image -from ._util import isDirectory, isPath, py3 +from ._util import isDirectory, isPath LAYOUT_BASIC = 0 LAYOUT_RAQM = 1 -class _imagingft_not_installed(object): +class _imagingft_not_installed: # module placeholder def __getattr__(self, id): raise ImportError("The _imagingft C module is not installed") @@ -63,13 +65,16 @@ except ImportError: # -------------------------------------------------------------------- -class ImageFont(object): +class ImageFont: "PIL font wrapper" def _load_pilfont(self, filename): with open(filename, "rb") as fp: + image = None for ext in (".png", ".gif", ".pbm"): + if image: + image.close() try: fullname = os.path.splitext(filename)[0] + ext image = Image.open(fullname) @@ -79,11 +84,14 @@ class ImageFont(object): if image and image.mode in ("1", "L"): break else: - raise IOError("cannot find glyph data file") + if image: + image.close() + raise OSError("cannot find glyph data file") self.file = fullname - return self._load_pilfont_data(fp, image) + self._load_pilfont_data(fp, image) + image.close() def _load_pilfont_data(self, file, image): @@ -145,7 +153,7 @@ class ImageFont(object): # truetype factory function to create font objects. -class FreeTypeFont(object): +class FreeTypeFont: "FreeType font wrapper (requires _imagingft service)" def __init__(self, font=None, size=10, index=0, encoding="", layout_engine=None): @@ -542,7 +550,7 @@ class FreeTypeFont(object): raise NotImplementedError("FreeType 2.9.1 or greater is required") -class TransposedFont(object): +class TransposedFont: "Wrapper for writing rotated or mirrored text" def __init__(self, font, orientation=None): @@ -638,7 +646,7 @@ def truetype(font=None, size=10, index=0, encoding="", layout_engine=None): try: return freetype(font) - except IOError: + except OSError: if not isPath(font): raise ttf_filename = os.path.basename(font) @@ -695,15 +703,12 @@ def load_path(filename): for directory in sys.path: if isDirectory(directory): if not isinstance(filename, str): - if py3: - filename = filename.decode("utf-8") - else: - filename = filename.encode("utf-8") + filename = filename.decode("utf-8") try: return load(os.path.join(directory, filename)) - except IOError: + except OSError: pass - raise IOError("cannot find font file") + raise OSError("cannot find font file") def load_default(): @@ -713,9 +718,6 @@ def load_default(): :return: A font object. """ - from io import BytesIO - import base64 - f = ImageFont() f._load_pilfont_data( # courB08 diff --git a/server/www/packages/packages-linux/x64/PIL/ImageGrab.py b/server/www/packages/packages-linux/x64/PIL/ImageGrab.py index 9b44135..66e2e85 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageGrab.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageGrab.py @@ -19,42 +19,52 @@ import sys from . import Image -if sys.platform == "win32": - grabber = Image.core.grabscreen -elif sys.platform == "darwin": +if sys.platform == "darwin": import os import tempfile import subprocess -else: - raise ImportError("ImageGrab is macOS and Windows only") -def grab(bbox=None, include_layered_windows=False, all_screens=False): - if sys.platform == "darwin": - fh, filepath = tempfile.mkstemp(".png") - os.close(fh) - subprocess.call(["screencapture", "-x", filepath]) - im = Image.open(filepath) - im.load() - os.unlink(filepath) - if bbox: - im = im.crop(bbox) - else: - offset, size, data = grabber(include_layered_windows, all_screens) - im = Image.frombytes( - "RGB", - size, - data, - # RGB, 32-bit line padding, origin lower left corner - "raw", - "BGR", - (size[0] * 3 + 3) & -4, - -1, - ) - if bbox: - x0, y0 = offset - left, top, right, bottom = bbox - im = im.crop((left - x0, top - y0, right - x0, bottom - y0)) +def grab(bbox=None, include_layered_windows=False, all_screens=False, xdisplay=None): + if xdisplay is None: + if sys.platform == "darwin": + fh, filepath = tempfile.mkstemp(".png") + os.close(fh) + subprocess.call(["screencapture", "-x", filepath]) + im = Image.open(filepath) + im.load() + os.unlink(filepath) + if bbox: + im_cropped = im.crop(bbox) + im.close() + return im_cropped + return im + elif sys.platform == "win32": + offset, size, data = Image.core.grabscreen_win32( + include_layered_windows, all_screens + ) + im = Image.frombytes( + "RGB", + size, + data, + # RGB, 32-bit line padding, origin lower left corner + "raw", + "BGR", + (size[0] * 3 + 3) & -4, + -1, + ) + if bbox: + x0, y0 = offset + left, top, right, bottom = bbox + im = im.crop((left - x0, top - y0, right - x0, bottom - y0)) + return im + # use xdisplay=None for default display on non-win32/macOS systems + if not Image.core.HAVE_XCB: + raise IOError("Pillow was built without XCB support") + size, data = Image.core.grabscreen_x11(xdisplay) + im = Image.frombytes("RGB", size, data, "raw", "BGRX", size[0] * 4, 1) + if bbox: + im = im.crop(bbox) return im @@ -82,11 +92,13 @@ def grabclipboard(): im.load() os.unlink(filepath) return im - else: - data = Image.core.grabclipboard() + elif sys.platform == "win32": + data = Image.core.grabclipboard_win32() if isinstance(data, bytes): from . import BmpImagePlugin import io return BmpImagePlugin.DibImageFile(io.BytesIO(data)) return data + else: + raise NotImplementedError("ImageGrab.grabclipboard() is macOS and Windows only") diff --git a/server/www/packages/packages-linux/x64/PIL/ImageMath.py b/server/www/packages/packages-linux/x64/PIL/ImageMath.py index 392151c..adbb940 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageMath.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageMath.py @@ -15,15 +15,9 @@ # See the README file for information on usage and redistribution. # +import builtins + from . import Image, _imagingmath -from ._util import py3 - -try: - import builtins -except ImportError: - import __builtin__ - - builtins = __builtin__ VERBOSE = 0 @@ -32,7 +26,7 @@ def _isconstant(v): return isinstance(v, (int, float)) -class _Operand(object): +class _Operand: """Wraps an image operand, providing standard operators""" def __init__(self, im): @@ -101,11 +95,6 @@ class _Operand(object): # an image is "true" if it contains at least one non-zero pixel return self.im.getbbox() is not None - if not py3: - # Provide __nonzero__ for pre-Py3k - __nonzero__ = __bool__ - del __bool__ - def __abs__(self): return self.apply("abs", self) @@ -152,13 +141,6 @@ class _Operand(object): def __rpow__(self, other): return self.apply("pow", other, self) - if not py3: - # Provide __div__ and __rdiv__ for pre-Py3k - __div__ = __truediv__ - __rdiv__ = __rtruediv__ - del __truediv__ - del __rtruediv__ - # bitwise def __invert__(self): return self.apply("invert", self) diff --git a/server/www/packages/packages-linux/x64/PIL/ImageMode.py b/server/www/packages/packages-linux/x64/PIL/ImageMode.py index 596be7b..9882883 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageMode.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageMode.py @@ -17,7 +17,7 @@ _modes = None -class ModeDescriptor(object): +class ModeDescriptor: """Wrapper for mode strings.""" def __init__(self, mode, bands, basemode, basetype): diff --git a/server/www/packages/packages-linux/x64/PIL/ImageMorph.py b/server/www/packages/packages-linux/x64/PIL/ImageMorph.py index 6119923..d1ec09e 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageMorph.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageMorph.py @@ -5,8 +5,6 @@ # # Copyright (c) 2014 Dov Grobgeld -from __future__ import print_function - import re from . import Image, _imagingmorph @@ -27,7 +25,7 @@ MIRROR_MATRIX = [ # fmt: on -class LutBuilder(object): +class LutBuilder: """A class for building a MorphLut from a descriptive language The input patterns is a list of a strings sequences like these:: @@ -178,7 +176,7 @@ class LutBuilder(object): return self.lut -class MorphOp(object): +class MorphOp: """A class for binary morphological operators""" def __init__(self, lut=None, op_name=None, patterns=None): diff --git a/server/www/packages/packages-linux/x64/PIL/ImageOps.py b/server/www/packages/packages-linux/x64/PIL/ImageOps.py index 5052cb7..e4e0840 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageOps.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageOps.py @@ -21,7 +21,6 @@ import functools import operator from . import Image -from ._util import isStringType # # helpers @@ -39,7 +38,7 @@ def _border(border): def _color(color, mode): - if isStringType(color): + if isinstance(color, str): from . import ImageColor color = ImageColor.getcolor(color, mode) @@ -55,7 +54,7 @@ def _lut(image, lut): lut = lut + lut + lut return image.point(lut) else: - raise IOError("not supported for this image mode") + raise OSError("not supported for this image mode") # @@ -222,7 +221,7 @@ def colorize(image, black, white, mid=None, blackpoint=0, whitepoint=255, midpoi return _lut(image, red + green + blue) -def pad(image, size, method=Image.NEAREST, color=None, centering=(0.5, 0.5)): +def pad(image, size, method=Image.BICUBIC, color=None, centering=(0.5, 0.5)): """ Returns a sized and padded version of the image, expanded to fill the requested aspect ratio and size. @@ -231,10 +230,11 @@ def pad(image, size, method=Image.NEAREST, color=None, centering=(0.5, 0.5)): :param size: The requested output size in pixels, given as a (width, height) tuple. :param method: What resampling method to use. Default is - :py:attr:`PIL.Image.NEAREST`. + :py:attr:`PIL.Image.BICUBIC`. See :ref:`concept-filters`. :param color: The background color of the padded image. :param centering: Control the position of the original image within the padded version. + (0.5, 0.5) will keep the image centered (0, 0) will keep the image aligned to the top left (1, 1) will keep the image aligned to the bottom @@ -243,7 +243,7 @@ def pad(image, size, method=Image.NEAREST, color=None, centering=(0.5, 0.5)): """ im_ratio = image.width / image.height - dest_ratio = float(size[0]) / size[1] + dest_ratio = size[0] / size[1] if im_ratio == dest_ratio: out = image.resize(size, resample=method) @@ -281,7 +281,7 @@ def crop(image, border=0): return image.crop((left, top, image.size[0] - right, image.size[1] - bottom)) -def scale(image, factor, resample=Image.NEAREST): +def scale(image, factor, resample=Image.BICUBIC): """ Returns a rescaled image by a specific factor given in parameter. A factor greater than 1 expands the image, between 0 and 1 contracts the @@ -289,8 +289,8 @@ def scale(image, factor, resample=Image.NEAREST): :param image: The image to rescale. :param factor: The expansion factor, as a float. - :param resample: An optional resampling filter. Same values possible as - in the PIL.Image.resize function. + :param resample: What resampling method to use. Default is + :py:attr:`PIL.Image.BICUBIC`. See :ref:`concept-filters`. :returns: An :py:class:`~PIL.Image.Image` object. """ if factor == 1: @@ -298,7 +298,7 @@ def scale(image, factor, resample=Image.NEAREST): elif factor <= 0: raise ValueError("the factor must be greater than 0") else: - size = (int(round(factor * image.width)), int(round(factor * image.height))) + size = (round(factor * image.width), round(factor * image.height)) return image.resize(size, resample) @@ -364,7 +364,7 @@ def expand(image, border=0, fill=0): return out -def fit(image, size, method=Image.NEAREST, bleed=0.0, centering=(0.5, 0.5)): +def fit(image, size, method=Image.BICUBIC, bleed=0.0, centering=(0.5, 0.5)): """ Returns a sized and cropped version of the image, cropped to the requested aspect ratio and size. @@ -375,7 +375,7 @@ def fit(image, size, method=Image.NEAREST, bleed=0.0, centering=(0.5, 0.5)): :param size: The requested output size in pixels, given as a (width, height) tuple. :param method: What resampling method to use. Default is - :py:attr:`PIL.Image.NEAREST`. + :py:attr:`PIL.Image.BICUBIC`. See :ref:`concept-filters`. :param bleed: Remove a border around the outside of the image from all four edges. The value is a decimal percentage (use 0.01 for one percent). The default value is 0 (no border). @@ -420,10 +420,10 @@ def fit(image, size, method=Image.NEAREST, bleed=0.0, centering=(0.5, 0.5)): ) # calculate the aspect ratio of the live_size - live_size_ratio = float(live_size[0]) / live_size[1] + live_size_ratio = live_size[0] / live_size[1] # calculate the aspect ratio of the output image - output_ratio = float(size[0]) / size[1] + output_ratio = size[0] / size[1] # figure out if the sides or top/bottom will be cropped off if live_size_ratio == output_ratio: diff --git a/server/www/packages/packages-linux/x64/PIL/ImagePalette.py b/server/www/packages/packages-linux/x64/PIL/ImagePalette.py index 2d4f5cb..e0d439c 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImagePalette.py +++ b/server/www/packages/packages-linux/x64/PIL/ImagePalette.py @@ -21,7 +21,7 @@ import array from . import GimpGradientFile, GimpPaletteFile, ImageColor, PaletteFile -class ImagePalette(object): +class ImagePalette: """ Color palette for palette mapped images @@ -216,6 +216,6 @@ def load(filename): # traceback.print_exc() pass else: - raise IOError("cannot load palette") + raise OSError("cannot load palette") return lut # data, rawmode diff --git a/server/www/packages/packages-linux/x64/PIL/ImageQt.py b/server/www/packages/packages-linux/x64/PIL/ImageQt.py index 2edb0a1..dfe2f80 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageQt.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageQt.py @@ -17,18 +17,12 @@ # import sys -import warnings from io import BytesIO from . import Image -from ._util import isPath, py3 +from ._util import isPath -qt_versions = [["5", "PyQt5"], ["side2", "PySide2"], ["4", "PyQt4"], ["side", "PySide"]] - -WARNING_TEXT = ( - "Support for EOL {} is deprecated and will be removed in a future version. " - "Please upgrade to PyQt5 or PySide2." -) +qt_versions = [["5", "PyQt5"], ["side2", "PySide2"]] # If a version has already been imported, attempt it first qt_versions.sort(key=lambda qt_version: qt_version[1] in sys.modules, reverse=True) @@ -40,16 +34,6 @@ for qt_version, qt_module in qt_versions: elif qt_module == "PySide2": from PySide2.QtGui import QImage, qRgba, QPixmap from PySide2.QtCore import QBuffer, QIODevice - elif qt_module == "PyQt4": - from PyQt4.QtGui import QImage, qRgba, QPixmap - from PyQt4.QtCore import QBuffer, QIODevice - - warnings.warn(WARNING_TEXT.format(qt_module), DeprecationWarning) - elif qt_module == "PySide": - from PySide.QtGui import QImage, qRgba, QPixmap - from PySide.QtCore import QBuffer, QIODevice - - warnings.warn(WARNING_TEXT.format(qt_module), DeprecationWarning) except (ImportError, RuntimeError): continue qt_is_installed = True @@ -81,11 +65,7 @@ def fromqimage(im): im.save(buffer, "ppm") b = BytesIO() - try: - b.write(buffer.data()) - except TypeError: - # workaround for Python 2 - b.write(str(buffer.data())) + b.write(buffer.data()) buffer.close() b.seek(0) @@ -141,10 +121,7 @@ def _toqclass_helper(im): # handle filename, if given instead of image name if hasattr(im, "toUtf8"): # FIXME - is this really the best way to do this? - if py3: - im = str(im.toUtf8(), "utf-8") - else: - im = unicode(im.toUtf8(), "utf-8") # noqa: F821 + im = str(im.toUtf8(), "utf-8") if isPath(im): im = Image.open(im) @@ -196,8 +173,7 @@ if qt_is_installed: # buffer, so this buffer has to hang on for the life of the image. # Fixes https://github.com/python-pillow/Pillow/issues/1370 self.__data = im_data["data"] - QImage.__init__( - self, + super().__init__( self.__data, im_data["im"].size[0], im_data["im"].size[1], diff --git a/server/www/packages/packages-linux/x64/PIL/ImageSequence.py b/server/www/packages/packages-linux/x64/PIL/ImageSequence.py index f9be92d..4e9f5c2 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageSequence.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageSequence.py @@ -16,7 +16,7 @@ ## -class Iterator(object): +class Iterator: """ This class implements an iterator object that can be used to loop over an image sequence. @@ -52,9 +52,6 @@ class Iterator(object): except EOFError: raise StopIteration - def next(self): - return self.__next__() - def all_frames(im, func=None): """ diff --git a/server/www/packages/packages-linux/x64/PIL/ImageShow.py b/server/www/packages/packages-linux/x64/PIL/ImageShow.py index ca622c5..fc50894 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageShow.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageShow.py @@ -11,21 +11,15 @@ # # See the README file for information on usage and redistribution. # - -from __future__ import print_function - import os +import shutil import subprocess import sys import tempfile +from shlex import quote from PIL import Image -if sys.version_info.major >= 3: - from shlex import quote -else: - from pipes import quote - _viewers = [] @@ -56,7 +50,7 @@ def show(image, title=None, **options): return 0 -class Viewer(object): +class Viewer: """Base class for viewers.""" # main api @@ -127,10 +121,8 @@ elif sys.platform == "darwin": # on darwin open returns immediately resulting in the temp # file removal while app is opening command = "open -a Preview.app" - command = "(%s %s; sleep 20; rm -f %s)&" % ( - command, - quote(file), - quote(file), + command = "({} {}; sleep 20; rm -f {})&".format( + command, quote(file), quote(file) ) return command @@ -154,23 +146,13 @@ else: # unixoids - def which(executable): - path = os.environ.get("PATH") - if not path: - return None - for dirname in path.split(os.pathsep): - filename = os.path.join(dirname, executable) - if os.path.isfile(filename) and os.access(filename, os.X_OK): - return filename - return None - class UnixViewer(Viewer): format = "PNG" options = {"compress_level": 1} def get_command(self, file, **options): command = self.get_command_ex(file, **options)[0] - return "(%s %s; rm -f %s)&" % (command, quote(file), quote(file)) + return "({} {}; rm -f {})&".format(command, quote(file), quote(file)) def show_file(self, file, **options): """Display given file""" @@ -192,7 +174,7 @@ else: command = executable = "display" return command, executable - if which("display"): + if shutil.which("display"): register(DisplayViewer) class EogViewer(UnixViewer): @@ -200,7 +182,7 @@ else: command = executable = "eog" return command, executable - if which("eog"): + if shutil.which("eog"): register(EogViewer) class XVViewer(UnixViewer): @@ -212,7 +194,7 @@ else: command += " -name %s" % quote(title) return command, executable - if which("xv"): + if shutil.which("xv"): register(XVViewer) if __name__ == "__main__": @@ -221,4 +203,5 @@ if __name__ == "__main__": print("Syntax: python ImageShow.py imagefile [title]") sys.exit() - print(show(Image.open(sys.argv[1]), *sys.argv[2:])) + with Image.open(sys.argv[1]) as im: + print(show(im, *sys.argv[2:])) diff --git a/server/www/packages/packages-linux/x64/PIL/ImageStat.py b/server/www/packages/packages-linux/x64/PIL/ImageStat.py index 9ba16fd..50bafc9 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageStat.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageStat.py @@ -26,7 +26,7 @@ import math import operator -class Stat(object): +class Stat: def __init__(self, image_or_list, mask=None): try: if mask: diff --git a/server/www/packages/packages-linux/x64/PIL/ImageTk.py b/server/www/packages/packages-linux/x64/PIL/ImageTk.py index fd48000..ee707cf 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageTk.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageTk.py @@ -25,17 +25,11 @@ # See the README file for information on usage and redistribution. # -import sys +import tkinter from io import BytesIO from . import Image -if sys.version_info.major > 2: - import tkinter -else: - import Tkinter as tkinter - - # -------------------------------------------------------------------- # Check for Tkinter interface hooks @@ -68,7 +62,7 @@ def _get_image_from_kw(kw): # PhotoImage -class PhotoImage(object): +class PhotoImage: """ A Tkinter-compatible photo image. This can be used everywhere Tkinter expects an image object. If the image is an RGBA @@ -209,7 +203,7 @@ class PhotoImage(object): # BitmapImage -class BitmapImage(object): +class BitmapImage: """ A Tkinter-compatible bitmap image. This can be used everywhere Tkinter expects an image object. @@ -296,10 +290,10 @@ def _show(image, title): self.image = BitmapImage(im, foreground="white", master=master) else: self.image = PhotoImage(im, master=master) - tkinter.Label.__init__(self, master, image=self.image, bg="black", bd=0) + super().__init__(master, image=self.image, bg="black", bd=0) if not tkinter._default_root: - raise IOError("tkinter not initialized") + raise OSError("tkinter not initialized") top = tkinter.Toplevel() if title: top.title(title) diff --git a/server/www/packages/packages-linux/x64/PIL/ImageWin.py b/server/www/packages/packages-linux/x64/PIL/ImageWin.py index ed2c18e..927b169 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImageWin.py +++ b/server/www/packages/packages-linux/x64/PIL/ImageWin.py @@ -20,7 +20,7 @@ from . import Image -class HDC(object): +class HDC: """ Wraps an HDC integer. The resulting object can be passed to the :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` @@ -34,7 +34,7 @@ class HDC(object): return self.dc -class HWND(object): +class HWND: """ Wraps an HWND integer. The resulting object can be passed to the :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` @@ -48,7 +48,7 @@ class HWND(object): return self.wnd -class Dib(object): +class Dib: """ A Windows bitmap with the given mode and size. The mode can be one of "1", "L", "P", or "RGB". @@ -186,7 +186,7 @@ class Dib(object): return self.image.tobytes() -class Window(object): +class Window: """Create a Window with the given title size.""" def __init__(self, title="PIL", width=None, height=None): @@ -224,7 +224,7 @@ class ImageWindow(Window): image = Dib(image) self.image = image width, height = image.size - Window.__init__(self, title, width=width, height=height) + super().__init__(title, width=width, height=height) def ui_handle_repair(self, dc, x0, y0, x1, y1): self.image.draw(dc, (x0, y0, x1, y1)) diff --git a/server/www/packages/packages-linux/x64/PIL/ImtImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/ImtImagePlugin.py index a9e991f..21ffd74 100644 --- a/server/www/packages/packages-linux/x64/PIL/ImtImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/ImtImagePlugin.py @@ -19,11 +19,6 @@ import re from . import Image, ImageFile -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.2" - - # # -------------------------------------------------------------------- diff --git a/server/www/packages/packages-linux/x64/PIL/IptcImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/IptcImagePlugin.py index aedf2e4..b2f976d 100644 --- a/server/www/packages/packages-linux/x64/PIL/IptcImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/IptcImagePlugin.py @@ -14,19 +14,12 @@ # # See the README file for information on usage and redistribution. # - -from __future__ import print_function - import os import tempfile from . import Image, ImageFile from ._binary import i8, i16be as i16, i32be as i32, o8 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.3" - COMPRESSION = {1: "raw", 5: "jpeg"} PAD = o8(0) * 4 @@ -75,7 +68,7 @@ class IptcImageFile(ImageFile.ImageFile): # field size size = i8(s[3]) if size > 132: - raise IOError("illegal field length in IPTC/NAA file") + raise OSError("illegal field length in IPTC/NAA file") elif size == 128: size = 0 elif size > 128: @@ -126,7 +119,7 @@ class IptcImageFile(ImageFile.ImageFile): try: compression = COMPRESSION[self.getint((3, 120))] except KeyError: - raise IOError("Unknown IPTC image compression") + raise OSError("Unknown IPTC image compression") # tile if tag == (8, 10): @@ -165,9 +158,9 @@ class IptcImageFile(ImageFile.ImageFile): o.close() try: - _im = Image.open(outfile) - _im.load() - self.im = _im.im + with Image.open(outfile) as _im: + _im.load() + self.im = _im.im finally: try: os.unlink(outfile) @@ -215,7 +208,7 @@ def getiptcinfo(im): return None # no properties # create an IptcImagePlugin object without initializing it - class FakeImage(object): + class FakeImage: pass im = FakeImage() diff --git a/server/www/packages/packages-linux/x64/PIL/Jpeg2KImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/Jpeg2KImagePlugin.py index 37f1117..0b0d433 100644 --- a/server/www/packages/packages-linux/x64/PIL/Jpeg2KImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/Jpeg2KImagePlugin.py @@ -18,10 +18,6 @@ import struct from . import Image, ImageFile -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - def _parse_codestream(fp): """Parse the JPEG 2000 codestream to extract the size and component @@ -180,7 +176,7 @@ class Jpeg2KImageFile(ImageFile.ImageFile): if self.size is None or self.mode is None: raise SyntaxError("unable to determine size/mode") - self.reduce = 0 + self._reduce = 0 self.layers = 0 fd = -1 @@ -204,23 +200,33 @@ class Jpeg2KImageFile(ImageFile.ImageFile): "jpeg2k", (0, 0) + self.size, 0, - (self.codec, self.reduce, self.layers, fd, length), + (self.codec, self._reduce, self.layers, fd, length), ) ] + @property + def reduce(self): + # https://github.com/python-pillow/Pillow/issues/4343 found that the + # new Image 'reduce' method was shadowed by this plugin's 'reduce' + # property. This attempts to allow for both scenarios + return self._reduce or super().reduce + + @reduce.setter + def reduce(self, value): + self._reduce = value + def load(self): - if self.reduce: - power = 1 << self.reduce + if self.tile and self._reduce: + power = 1 << self._reduce adjust = power >> 1 self._size = ( int((self.size[0] + adjust) / power), int((self.size[1] + adjust) / power), ) - if self.tile: # Update the reduce and layers settings t = self.tile[0] - t3 = (t[3][0], self.reduce, self.layers, t[3][3], t[3][4]) + t3 = (t[3][0], self._reduce, self.layers, t[3][3], t[3][4]) self.tile = [(t[0], (0, 0) + self.size, t[2], t3)] return ImageFile.ImageFile.load(self) diff --git a/server/www/packages/packages-linux/x64/PIL/JpegImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/JpegImagePlugin.py index 020b952..2aa029e 100644 --- a/server/www/packages/packages-linux/x64/PIL/JpegImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/JpegImagePlugin.py @@ -31,24 +31,18 @@ # # See the README file for information on usage and redistribution. # - -from __future__ import print_function - import array import io +import os import struct +import subprocess +import tempfile import warnings from . import Image, ImageFile, TiffImagePlugin from ._binary import i8, i16be as i16, i32be as i32, o8 -from ._util import isStringType from .JpegPresets import presets -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.6" - - # # Parser @@ -106,27 +100,25 @@ def APP(self, marker): # reassemble the profile, rather than assuming that the APP2 # markers appear in the correct sequence. self.icclist.append(s) - elif marker == 0xFFED: - if s[:14] == b"Photoshop 3.0\x00": - blocks = s[14:] - # parse the image resource block - offset = 0 - photoshop = {} - while blocks[offset : offset + 4] == b"8BIM": + elif marker == 0xFFED and s[:14] == b"Photoshop 3.0\x00": + # parse the image resource block + offset = 14 + photoshop = self.info.setdefault("photoshop", {}) + while s[offset : offset + 4] == b"8BIM": + try: offset += 4 # resource code - code = i16(blocks, offset) + code = i16(s, offset) offset += 2 # resource name (usually empty) - name_len = i8(blocks[offset]) - # name = blocks[offset+1:offset+1+name_len] - offset = 1 + offset + name_len - if offset & 1: - offset += 1 + name_len = i8(s[offset]) + # name = s[offset+1:offset+1+name_len] + offset += 1 + name_len + offset += offset & 1 # align # resource data block - size = i32(blocks, offset) + size = i32(s, offset) offset += 4 - data = blocks[offset : offset + size] + data = s[offset : offset + size] if code == 0x03ED: # ResolutionInfo data = { "XResolution": i32(data[:4]) / 65536, @@ -135,10 +127,11 @@ def APP(self, marker): "DisplayedUnitsY": i16(data[12:]), } photoshop[code] = data - offset = offset + size - if offset & 1: - offset += 1 - self.info["photoshop"] = photoshop + offset += size + offset += offset & 1 # align + except struct.error: + break # insufficient data + elif marker == 0xFFEE and s[:5] == b"Adobe": self.info["adobe"] = i16(s, 5) # extract Adobe custom properties @@ -169,10 +162,11 @@ def APP(self, marker): # 1 dpcm = 2.54 dpi dpi *= 2.54 self.info["dpi"] = int(dpi + 0.5), int(dpi + 0.5) - except (KeyError, SyntaxError, ZeroDivisionError): + except (KeyError, SyntaxError, ValueError, ZeroDivisionError): # SyntaxError for invalid/unreadable EXIF # KeyError for dpi not included # ZeroDivisionError for invalid dpi rational value + # ValueError for x_resolution[0] being an invalid float self.info["dpi"] = 72, 72 @@ -182,6 +176,7 @@ def COM(self, marker): n = i16(self.fp.read(2)) - 2 s = ImageFile._safe_read(self.fp, n) + self.info["comment"] = s self.app["COM"] = s # compatibility self.applist.append(("COM", s)) @@ -415,7 +410,8 @@ class JpegImageFile(ImageFile.ImageFile): return d, e, o, a = self.tile[0] - scale = 0 + scale = 1 + original_size = self.size if a[0] == "RGB" and mode in ["L", "YCbCr"]: self.mode = mode @@ -438,16 +434,13 @@ class JpegImageFile(ImageFile.ImageFile): self.tile = [(d, e, o, a)] self.decoderconfig = (scale, 0) - return self + box = (0, 0, original_size[0] / scale, original_size[1] / scale) + return (self.mode, box) def load_djpeg(self): # ALTERNATIVE: handle JPEGs via the IJG command line utilities - import subprocess - import tempfile - import os - f, path = tempfile.mkstemp() os.close(f) if os.path.exists(self.filename): @@ -456,9 +449,9 @@ class JpegImageFile(ImageFile.ImageFile): raise ValueError("Invalid Filename") try: - _im = Image.open(path) - _im.load() - self.im = _im.im + with Image.open(path) as _im: + _im.load() + self.im = _im.im finally: try: os.unlink(path) @@ -618,23 +611,23 @@ def _save(im, fp, filename): try: rawmode = RAWMODE[im.mode] except KeyError: - raise IOError("cannot write mode %s as JPEG" % im.mode) + raise OSError("cannot write mode %s as JPEG" % im.mode) info = im.encoderinfo - dpi = [int(round(x)) for x in info.get("dpi", (0, 0))] + dpi = [round(x) for x in info.get("dpi", (0, 0))] - quality = info.get("quality", 0) + quality = info.get("quality", -1) subsampling = info.get("subsampling", -1) qtables = info.get("qtables") if quality == "keep": - quality = 0 + quality = -1 subsampling = "keep" qtables = "keep" elif quality in presets: preset = presets[quality] - quality = 0 + quality = -1 subsampling = preset.get("subsampling", -1) qtables = preset.get("quantization") elif not isinstance(quality, int): @@ -642,7 +635,7 @@ def _save(im, fp, filename): else: if subsampling in presets: subsampling = presets[subsampling].get("subsampling", -1) - if isStringType(qtables) and qtables in presets: + if isinstance(qtables, str) and qtables in presets: qtables = presets[qtables].get("quantization") if subsampling == "4:4:4": @@ -663,7 +656,7 @@ def _save(im, fp, filename): def validate_qtables(qtables): if qtables is None: return qtables - if isStringType(qtables): + if isinstance(qtables, str): try: lines = [ int(num) @@ -757,8 +750,8 @@ def _save(im, fp, filename): # CMYK can be bigger if im.mode == "CMYK": bufsize = 4 * im.size[0] * im.size[1] - # keep sets quality to 0, but the actual value may be high. - elif quality >= 95 or quality == 0: + # keep sets quality to -1, but the actual value may be high. + elif quality >= 95 or quality == -1: bufsize = 2 * im.size[0] * im.size[1] else: bufsize = im.size[0] * im.size[1] @@ -772,9 +765,6 @@ def _save(im, fp, filename): def _save_cjpeg(im, fp, filename): # ALTERNATIVE: handle JPEGs via the IJG command line utilities. - import os - import subprocess - tempfile = im._dump() subprocess.check_call(["cjpeg", "-outfile", filename, tempfile]) try: diff --git a/server/www/packages/packages-linux/x64/PIL/JpegPresets.py b/server/www/packages/packages-linux/x64/PIL/JpegPresets.py index 387844f..012bf81 100644 --- a/server/www/packages/packages-linux/x64/PIL/JpegPresets.py +++ b/server/www/packages/packages-linux/x64/PIL/JpegPresets.py @@ -33,7 +33,10 @@ Possible subsampling values are 0, 1 and 2 that correspond to 4:4:4, 4:2:2 and 4:2:0. You can get the subsampling of a JPEG with the -`JpegImagePlugin.get_subsampling(im)` function. +`JpegImagePlugin.get_sampling(im)` function. + +In JPEG compressed data a JPEG marker is used instead of an EXIF tag. +(ref.: https://www.exiv2.org/tags.html) Quantization tables diff --git a/server/www/packages/packages-linux/x64/PIL/McIdasImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/McIdasImagePlugin.py index bddd33a..cd047fe 100644 --- a/server/www/packages/packages-linux/x64/PIL/McIdasImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/McIdasImagePlugin.py @@ -20,10 +20,6 @@ import struct from . import Image, ImageFile -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.2" - def _accept(s): return s[:8] == b"\x00\x00\x00\x00\x00\x00\x00\x04" diff --git a/server/www/packages/packages-linux/x64/PIL/MicImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/MicImagePlugin.py index b48905b..8610988 100644 --- a/server/www/packages/packages-linux/x64/PIL/MicImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/MicImagePlugin.py @@ -21,11 +21,6 @@ import olefile from . import Image, TiffImagePlugin -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - - # # -------------------------------------------------------------------- @@ -51,7 +46,7 @@ class MicImageFile(TiffImagePlugin.TiffImageFile): try: self.ole = olefile.OleFileIO(self.fp) - except IOError: + except OSError: raise SyntaxError("not an MIC file; invalid OLE file") # find ACI subfiles with Image members (maybe not the diff --git a/server/www/packages/packages-linux/x64/PIL/MpegImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/MpegImagePlugin.py index 9c662fc..a358dfd 100644 --- a/server/www/packages/packages-linux/x64/PIL/MpegImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/MpegImagePlugin.py @@ -17,16 +17,11 @@ from . import Image, ImageFile from ._binary import i8 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - - # # Bitstream parser -class BitStream(object): +class BitStream: def __init__(self, fp): self.fp = fp self.bits = 0 diff --git a/server/www/packages/packages-linux/x64/PIL/MpoImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/MpoImagePlugin.py index 938f2a5..e97176d 100644 --- a/server/www/packages/packages-linux/x64/PIL/MpoImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/MpoImagePlugin.py @@ -21,10 +21,6 @@ from . import Image, ImageFile, JpegImagePlugin from ._binary import i16be as i16 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - def _accept(prefix): return JpegImagePlugin._accept(prefix) @@ -86,7 +82,10 @@ class MpoImageFile(JpegImagePlugin.JpegImageFile): self.offset = self.__mpoffsets[frame] self.fp.seek(self.offset + 2) # skip SOI marker - if i16(self.fp.read(2)) == 0xFFE1: # APP1 + segment = self.fp.read(2) + if not segment: + raise ValueError("No data found for frame") + if i16(segment) == 0xFFE1: # APP1 n = i16(self.fp.read(2)) - 2 self.info["exif"] = ImageFile._safe_read(self.fp, n) diff --git a/server/www/packages/packages-linux/x64/PIL/MspImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/MspImagePlugin.py index 7315ab6..2b2937e 100644 --- a/server/www/packages/packages-linux/x64/PIL/MspImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/MspImagePlugin.py @@ -29,11 +29,6 @@ import struct from . import Image, ImageFile from ._binary import i8, i16le as i16, o16le as o16 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - - # # read MSP files @@ -122,7 +117,7 @@ class MspDecoder(ImageFile.PyDecoder): "<%dH" % (self.state.ysize), self.fd.read(self.state.ysize * 2) ) except struct.error: - raise IOError("Truncated MSP file in row map") + raise OSError("Truncated MSP file in row map") for x, rowlen in enumerate(rowmap): try: @@ -131,7 +126,7 @@ class MspDecoder(ImageFile.PyDecoder): continue row = self.fd.read(rowlen) if len(row) != rowlen: - raise IOError( + raise OSError( "Truncated MSP file, expected %d bytes on row %s", (rowlen, x) ) idx = 0 @@ -148,7 +143,7 @@ class MspDecoder(ImageFile.PyDecoder): idx += runcount except struct.error: - raise IOError("Corrupted MSP file in row %d" % x) + raise OSError("Corrupted MSP file in row %d" % x) self.set_as_raw(img.getvalue(), ("1", 0, 1)) @@ -165,7 +160,7 @@ Image.register_decoder("MSP", MspDecoder) def _save(im, fp, filename): if im.mode != "1": - raise IOError("cannot write mode %s as MSP" % im.mode) + raise OSError("cannot write mode %s as MSP" % im.mode) # create MSP header header = [0] * 16 diff --git a/server/www/packages/packages-linux/x64/PIL/PSDraw.py b/server/www/packages/packages-linux/x64/PIL/PSDraw.py index f37701c..762d31e 100644 --- a/server/www/packages/packages-linux/x64/PIL/PSDraw.py +++ b/server/www/packages/packages-linux/x64/PIL/PSDraw.py @@ -18,13 +18,12 @@ import sys from . import EpsImagePlugin -from ._util import py3 ## # Simple Postscript graphics interface. -class PSDraw(object): +class PSDraw: """ Sets up printing to the given file. If **fp** is omitted, :py:attr:`sys.stdout` is assumed. @@ -36,7 +35,7 @@ class PSDraw(object): self.fp = fp def _fp_write(self, to_write): - if not py3 or self.fp == sys.stdout: + if self.fp == sys.stdout: self.fp.write(to_write) else: self.fp.write(bytes(to_write, "UTF-8")) @@ -72,7 +71,7 @@ class PSDraw(object): """ if font not in self.isofont: # reencode font - self._fp_write("/PSDraw-%s ISOLatin1Encoding /%s E\n" % (font, font)) + self._fp_write("/PSDraw-{} ISOLatin1Encoding /{} E\n".format(font, font)) self.isofont[font] = 1 # rough self._fp_write("/F0 %d /PSDraw-%s F\n" % (size, font)) @@ -120,8 +119,8 @@ class PSDraw(object): else: dpi = 100 # greyscale # image size (on paper) - x = float(im.size[0] * 72) / dpi - y = float(im.size[1] * 72) / dpi + x = im.size[0] * 72 / dpi + y = im.size[1] * 72 / dpi # max allowed size xmax = float(box[2] - box[0]) ymax = float(box[3] - box[1]) @@ -133,12 +132,12 @@ class PSDraw(object): y = ymax dx = (xmax - x) / 2 + box[0] dy = (ymax - y) / 2 + box[1] - self._fp_write("gsave\n%f %f translate\n" % (dx, dy)) + self._fp_write("gsave\n{:f} {:f} translate\n".format(dx, dy)) if (x, y) != im.size: # EpsImagePlugin._save prints the image at (0,0,xsize,ysize) sx = x / im.size[0] sy = y / im.size[1] - self._fp_write("%f %f scale\n" % (sx, sy)) + self._fp_write("{:f} {:f} scale\n".format(sx, sy)) EpsImagePlugin._save(im, self.fp, None, 0) self._fp_write("\ngrestore\n") diff --git a/server/www/packages/packages-linux/x64/PIL/PaletteFile.py b/server/www/packages/packages-linux/x64/PIL/PaletteFile.py index ab22d5f..73f1b4b 100644 --- a/server/www/packages/packages-linux/x64/PIL/PaletteFile.py +++ b/server/www/packages/packages-linux/x64/PIL/PaletteFile.py @@ -19,7 +19,7 @@ from ._binary import o8 # File handler for Teragon-style palette files. -class PaletteFile(object): +class PaletteFile: rawmode = "RGB" diff --git a/server/www/packages/packages-linux/x64/PIL/PalmImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/PalmImagePlugin.py index dd068d7..804ece3 100644 --- a/server/www/packages/packages-linux/x64/PIL/PalmImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/PalmImagePlugin.py @@ -10,10 +10,6 @@ from . import Image, ImageFile from ._binary import o8, o16be as o16b -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "1.0" - # fmt: off _Palm8BitColormapValues = ( # noqa: E131 (255, 255, 255), (255, 204, 255), (255, 153, 255), (255, 102, 255), @@ -141,7 +137,7 @@ def _save(im, fp, filename): bpp = im.info["bpp"] im = im.point(lambda x, maxval=(1 << bpp) - 1: maxval - (x & maxval)) else: - raise IOError("cannot write mode %s as Palm" % im.mode) + raise OSError("cannot write mode %s as Palm" % im.mode) # we ignore the palette here im.mode = "P" @@ -157,7 +153,7 @@ def _save(im, fp, filename): else: - raise IOError("cannot write mode %s as Palm" % im.mode) + raise OSError("cannot write mode %s as Palm" % im.mode) # # make sure image data is available diff --git a/server/www/packages/packages-linux/x64/PIL/PcdImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/PcdImagePlugin.py index 6f01845..625f556 100644 --- a/server/www/packages/packages-linux/x64/PIL/PcdImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/PcdImagePlugin.py @@ -18,11 +18,6 @@ from . import Image, ImageFile from ._binary import i8 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - - ## # Image plugin for PhotoCD images. This plugin only reads the 768x512 # image from the file; higher resolutions are encoded in a proprietary diff --git a/server/www/packages/packages-linux/x64/PIL/PcfFontFile.py b/server/www/packages/packages-linux/x64/PIL/PcfFontFile.py index 0741246..c463533 100644 --- a/server/www/packages/packages-linux/x64/PIL/PcfFontFile.py +++ b/server/www/packages/packages-linux/x64/PIL/PcfFontFile.py @@ -56,13 +56,15 @@ class PcfFontFile(FontFile.FontFile): name = "name" - def __init__(self, fp): + def __init__(self, fp, charset_encoding="iso8859-1"): + + self.charset_encoding = charset_encoding magic = l32(fp.read(4)) if magic != PCF_MAGIC: raise SyntaxError("not a PCF file") - FontFile.FontFile.__init__(self) + super().__init__() count = l32(fp.read(4)) self.toc = {} @@ -184,7 +186,7 @@ class PcfFontFile(FontFile.FontFile): nbitmaps = i32(fp.read(4)) if nbitmaps != len(metrics): - raise IOError("Wrong number of bitmaps") + raise OSError("Wrong number of bitmaps") offsets = [] for i in range(nbitmaps): @@ -229,12 +231,17 @@ class PcfFontFile(FontFile.FontFile): nencoding = (lastCol - firstCol + 1) * (lastRow - firstRow + 1) - for i in range(nencoding): - encodingOffset = i16(fp.read(2)) - if encodingOffset != 0xFFFF: - try: - encoding[i + firstCol] = encodingOffset - except IndexError: - break # only load ISO-8859-1 glyphs + encodingOffsets = [i16(fp.read(2)) for _ in range(nencoding)] + + for i in range(firstCol, len(encoding)): + try: + encodingOffset = encodingOffsets[ + ord(bytearray([i]).decode(self.charset_encoding)) + ] + if encodingOffset != 0xFFFF: + encoding[i] = encodingOffset + except UnicodeDecodeError: + # character is not supported in selected encoding + pass return encoding diff --git a/server/www/packages/packages-linux/x64/PIL/PcxImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/PcxImagePlugin.py index 397af8c..6cf10de 100644 --- a/server/www/packages/packages-linux/x64/PIL/PcxImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/PcxImagePlugin.py @@ -33,10 +33,6 @@ from ._binary import i8, i16le as i16, o8, o16le as o16 logger = logging.getLogger(__name__) -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.6" - def _accept(prefix): return i8(prefix[0]) == 10 and i8(prefix[1]) in [0, 2, 3, 5] @@ -107,7 +103,7 @@ class PcxImageFile(ImageFile.ImageFile): rawmode = "RGB;L" else: - raise IOError("unknown PCX mode") + raise OSError("unknown PCX mode") self.mode = mode self._size = bbox[2] - bbox[0], bbox[3] - bbox[1] diff --git a/server/www/packages/packages-linux/x64/PIL/PdfImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/PdfImagePlugin.py index 1fd40f5..47500ba 100644 --- a/server/www/packages/packages-linux/x64/PIL/PdfImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/PdfImagePlugin.py @@ -24,12 +24,7 @@ import io import os import time -from . import Image, ImageFile, ImageSequence, PdfParser - -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.5" - +from . import Image, ImageFile, ImageSequence, PdfParser, __version__ # # -------------------------------------------------------------------- @@ -82,7 +77,7 @@ def _save(im, fp, filename, save_all=False): existing_pdf.start_writing() existing_pdf.write_header() - existing_pdf.write_comment("created by PIL PDF driver " + __version__) + existing_pdf.write_comment("created by Pillow {} PDF driver".format(__version__)) # # pages @@ -219,9 +214,9 @@ def _save(im, fp, filename, save_all=False): # # page contents - page_contents = PdfParser.make_bytes( - "q %d 0 0 %d 0 0 cm /image Do Q\n" - % (int(width * 72.0 / resolution), int(height * 72.0 / resolution)) + page_contents = b"q %d 0 0 %d 0 0 cm /image Do Q\n" % ( + int(width * 72.0 / resolution), + int(height * 72.0 / resolution), ) existing_pdf.write_obj(contents_refs[pageNumber], stream=page_contents) diff --git a/server/www/packages/packages-linux/x64/PIL/PdfParser.py b/server/www/packages/packages-linux/x64/PIL/PdfParser.py index 0ec6bba..fdb35ed 100644 --- a/server/www/packages/packages-linux/x64/PIL/PdfParser.py +++ b/server/www/packages/packages-linux/x64/PIL/PdfParser.py @@ -7,25 +7,6 @@ import re import time import zlib -from ._util import py3 - -try: - from UserDict import UserDict # Python 2.x -except ImportError: - UserDict = collections.UserDict # Python 3.x - - -if py3: # Python 3.x - - def make_bytes(s): - return s.encode("us-ascii") - - -else: # Python 2.x - - def make_bytes(s): # pragma: no cover - return s # pragma: no cover - # see 7.9.2.2 Text String Type on page 86 and D.3 PDFDocEncoding Character Set # on page 656 @@ -34,57 +15,55 @@ def encode_text(s): PDFDocEncoding = { - 0x16: u"\u0017", - 0x18: u"\u02D8", - 0x19: u"\u02C7", - 0x1A: u"\u02C6", - 0x1B: u"\u02D9", - 0x1C: u"\u02DD", - 0x1D: u"\u02DB", - 0x1E: u"\u02DA", - 0x1F: u"\u02DC", - 0x80: u"\u2022", - 0x81: u"\u2020", - 0x82: u"\u2021", - 0x83: u"\u2026", - 0x84: u"\u2014", - 0x85: u"\u2013", - 0x86: u"\u0192", - 0x87: u"\u2044", - 0x88: u"\u2039", - 0x89: u"\u203A", - 0x8A: u"\u2212", - 0x8B: u"\u2030", - 0x8C: u"\u201E", - 0x8D: u"\u201C", - 0x8E: u"\u201D", - 0x8F: u"\u2018", - 0x90: u"\u2019", - 0x91: u"\u201A", - 0x92: u"\u2122", - 0x93: u"\uFB01", - 0x94: u"\uFB02", - 0x95: u"\u0141", - 0x96: u"\u0152", - 0x97: u"\u0160", - 0x98: u"\u0178", - 0x99: u"\u017D", - 0x9A: u"\u0131", - 0x9B: u"\u0142", - 0x9C: u"\u0153", - 0x9D: u"\u0161", - 0x9E: u"\u017E", - 0xA0: u"\u20AC", + 0x16: "\u0017", + 0x18: "\u02D8", + 0x19: "\u02C7", + 0x1A: "\u02C6", + 0x1B: "\u02D9", + 0x1C: "\u02DD", + 0x1D: "\u02DB", + 0x1E: "\u02DA", + 0x1F: "\u02DC", + 0x80: "\u2022", + 0x81: "\u2020", + 0x82: "\u2021", + 0x83: "\u2026", + 0x84: "\u2014", + 0x85: "\u2013", + 0x86: "\u0192", + 0x87: "\u2044", + 0x88: "\u2039", + 0x89: "\u203A", + 0x8A: "\u2212", + 0x8B: "\u2030", + 0x8C: "\u201E", + 0x8D: "\u201C", + 0x8E: "\u201D", + 0x8F: "\u2018", + 0x90: "\u2019", + 0x91: "\u201A", + 0x92: "\u2122", + 0x93: "\uFB01", + 0x94: "\uFB02", + 0x95: "\u0141", + 0x96: "\u0152", + 0x97: "\u0160", + 0x98: "\u0178", + 0x99: "\u017D", + 0x9A: "\u0131", + 0x9B: "\u0142", + 0x9C: "\u0153", + 0x9D: "\u0161", + 0x9E: "\u017E", + 0xA0: "\u20AC", } def decode_text(b): if b[: len(codecs.BOM_UTF16_BE)] == codecs.BOM_UTF16_BE: return b[len(codecs.BOM_UTF16_BE) :].decode("utf_16_be") - elif py3: # Python 3.x + else: return "".join(PDFDocEncoding.get(byte, chr(byte)) for byte in b) - else: # Python 2.x - return u"".join(PDFDocEncoding.get(ord(byte), byte) for byte in b) class PdfFormatError(RuntimeError): @@ -196,10 +175,10 @@ class XrefTable: else: contiguous_keys = keys keys = None - f.write(make_bytes("%d %d\n" % (contiguous_keys[0], len(contiguous_keys)))) + f.write(b"%d %d\n" % (contiguous_keys[0], len(contiguous_keys))) for object_id in contiguous_keys: if object_id in self.new_entries: - f.write(make_bytes("%010d %05d n \n" % self.new_entries[object_id])) + f.write(b"%010d %05d n \n" % self.new_entries[object_id]) else: this_deleted_object_id = deleted_keys.pop(0) check_format_condition( @@ -212,10 +191,8 @@ class XrefTable: except IndexError: next_in_linked_list = 0 f.write( - make_bytes( - "%010d %05d f \n" - % (next_in_linked_list, self.deleted_entries[object_id]) - ) + b"%010d %05d f \n" + % (next_in_linked_list, self.deleted_entries[object_id]) ) return startxref @@ -247,40 +224,27 @@ class PdfName: def from_pdf_stream(cls, data): return cls(PdfParser.interpret_name(data)) - allowed_chars = set(range(33, 127)) - set(ord(c) for c in "#%/()<>[]{}") + allowed_chars = set(range(33, 127)) - {ord(c) for c in "#%/()<>[]{}"} def __bytes__(self): result = bytearray(b"/") for b in self.name: - if py3: # Python 3.x - if b in self.allowed_chars: - result.append(b) - else: - result.extend(make_bytes("#%02X" % b)) - else: # Python 2.x - if ord(b) in self.allowed_chars: - result.append(b) - else: - result.extend(b"#%02X" % ord(b)) + if b in self.allowed_chars: + result.append(b) + else: + result.extend(b"#%02X" % b) return bytes(result) - __str__ = __bytes__ - class PdfArray(list): def __bytes__(self): return b"[ " + b" ".join(pdf_repr(x) for x in self) + b" ]" - __str__ = __bytes__ - -class PdfDict(UserDict): +class PdfDict(collections.UserDict): def __setattr__(self, key, value): if key == "data": - if hasattr(UserDict, "__setattr__"): - UserDict.__setattr__(self, key, value) - else: - self.__dict__[key] = value + collections.UserDict.__setattr__(self, key, value) else: self[key.encode("us-ascii")] = value @@ -324,23 +288,13 @@ class PdfDict(UserDict): out.extend(b"\n>>") return bytes(out) - if not py3: - __str__ = __bytes__ - class PdfBinary: def __init__(self, data): self.data = data - if py3: # Python 3.x - - def __bytes__(self): - return make_bytes("<%s>" % "".join("%02X" % b for b in self.data)) - - else: # Python 2.x - - def __str__(self): - return "<%s>" % "".join("%02X" % ord(b) for b in self.data) + def __bytes__(self): + return b"<%s>" % b"".join(b"%02X" % b for b in self.data) class PdfStream: @@ -382,9 +336,7 @@ def pdf_repr(x): return bytes(PdfDict(x)) elif isinstance(x, list): return bytes(PdfArray(x)) - elif (py3 and isinstance(x, str)) or ( - not py3 and isinstance(x, unicode) # noqa: F821 - ): + elif isinstance(x, str): return pdf_repr(encode_text(x)) elif isinstance(x, bytes): # XXX escape more chars? handle binary garbage @@ -471,7 +423,7 @@ class PdfParser: self.f.write(b"%PDF-1.4\n") def write_comment(self, s): - self.f.write(("%% %s\n" % (s,)).encode("utf-8")) + self.f.write(("% {}\n".format(s)).encode("utf-8")) def write_catalog(self): self.del_root() @@ -533,7 +485,7 @@ class PdfParser: self.f.write( b"trailer\n" + bytes(PdfDict(trailer_dict)) - + make_bytes("\nstartxref\n%d\n%%%%EOF" % start_xref) + + b"\nstartxref\n%d\n%%%%EOF" % start_xref ) def write_page(self, ref, *objs, **dict_obj): diff --git a/server/www/packages/packages-linux/x64/PIL/PixarImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/PixarImagePlugin.py index dc71ca1..5ea32ba 100644 --- a/server/www/packages/packages-linux/x64/PIL/PixarImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/PixarImagePlugin.py @@ -22,11 +22,6 @@ from . import Image, ImageFile from ._binary import i16le as i16 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - - # # helpers diff --git a/server/www/packages/packages-linux/x64/PIL/PngImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/PngImagePlugin.py index be237b3..ee9d52b 100644 --- a/server/www/packages/packages-linux/x64/PIL/PngImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/PngImagePlugin.py @@ -31,18 +31,15 @@ # See the README file for information on usage and redistribution. # +import itertools import logging import re import struct +import warnings import zlib -from . import Image, ImageFile, ImagePalette -from ._binary import i8, i16be as i16, i32be as i32, o16be as o16, o32be as o32 -from ._util import py3 - -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.9" +from . import Image, ImageChops, ImageFile, ImagePalette, ImageSequence +from ._binary import i8, i16be as i16, i32be as i32, o8, o16be as o16, o32be as o32 logger = logging.getLogger(__name__) @@ -86,6 +83,16 @@ MAX_TEXT_CHUNK = ImageFile.SAFEBLOCK MAX_TEXT_MEMORY = 64 * MAX_TEXT_CHUNK +# APNG frame disposal modes +APNG_DISPOSE_OP_NONE = 0 +APNG_DISPOSE_OP_BACKGROUND = 1 +APNG_DISPOSE_OP_PREVIOUS = 2 + +# APNG frame blend modes +APNG_BLEND_OP_SOURCE = 0 +APNG_BLEND_OP_OVER = 1 + + def _safe_zlib_decompress(s): dobj = zlib.decompressobj() plaintext = dobj.decompress(s, MAX_TEXT_CHUNK) @@ -102,7 +109,7 @@ def _crc32(data, seed=0): # Support classes. Suitable for PNG and related formats like MNG etc. -class ChunkStream(object): +class ChunkStream: def __init__(self, fp): self.fp = fp @@ -180,7 +187,7 @@ class ChunkStream(object): try: cid, pos, length = self.read() except struct.error: - raise IOError("truncated PNG file") + raise OSError("truncated PNG file") if cid == endchunk: break @@ -212,7 +219,7 @@ class iTXt(str): return self -class PngInfo(object): +class PngInfo: """ PNG chunk container (for use with save(pnginfo=)) @@ -293,8 +300,7 @@ class PngInfo(object): class PngStream(ChunkStream): def __init__(self, fp): - - ChunkStream.__init__(self, fp) + super().__init__(fp) # local copies of Image attributes self.im_info = {} @@ -304,6 +310,9 @@ class PngStream(ChunkStream): self.im_tile = None self.im_palette = None self.im_custom_mimetype = None + self.im_n_frames = None + self._seq_num = None + self.rewind_state = None self.text_memory = 0 @@ -315,6 +324,18 @@ class PngStream(ChunkStream): % self.text_memory ) + def save_rewind(self): + self.rewind_state = { + "info": self.im_info.copy(), + "tile": self.im_tile, + "seq_num": self._seq_num, + } + + def rewind(self): + self.im_info = self.rewind_state["info"] + self.im_tile = self.rewind_state["tile"] + self._seq_num = self.rewind_state["seq_num"] + def chunk_iCCP(self, pos, length): # ICC profile @@ -362,7 +383,13 @@ class PngStream(ChunkStream): def chunk_IDAT(self, pos, length): # image data - self.im_tile = [("zip", (0, 0) + self.im_size, pos, self.im_rawmode)] + if "bbox" in self.im_info: + tile = [("zip", self.im_info["bbox"], pos, self.im_rawmode)] + else: + if self.im_n_frames is not None: + self.im_info["default_image"] = True + tile = [("zip", (0, 0) + self.im_size, pos, self.im_rawmode)] + self.im_tile = tile self.im_idat = length raise EOFError @@ -450,9 +477,8 @@ class PngStream(ChunkStream): k = s v = b"" if k: - if py3: - k = k.decode("latin-1", "strict") - v = v.decode("latin-1", "replace") + k = k.decode("latin-1", "strict") + v = v.decode("latin-1", "replace") self.im_info[k] = self.im_text[k] = v self.check_text_memory(len(v)) @@ -487,9 +513,8 @@ class PngStream(ChunkStream): v = b"" if k: - if py3: - k = k.decode("latin-1", "strict") - v = v.decode("latin-1", "replace") + k = k.decode("latin-1", "strict") + v = v.decode("latin-1", "replace") self.im_info[k] = self.im_text[k] = v self.check_text_memory(len(v)) @@ -524,14 +549,13 @@ class PngStream(ChunkStream): return s else: return s - if py3: - try: - k = k.decode("latin-1", "strict") - lang = lang.decode("utf-8", "strict") - tk = tk.decode("utf-8", "strict") - v = v.decode("utf-8", "strict") - except UnicodeError: - return s + try: + k = k.decode("latin-1", "strict") + lang = lang.decode("utf-8", "strict") + tk = tk.decode("utf-8", "strict") + v = v.decode("utf-8", "strict") + except UnicodeError: + return s self.im_info[k] = self.im_text[k] = iTXt(v, lang, tk) self.check_text_memory(len(v)) @@ -546,9 +570,49 @@ class PngStream(ChunkStream): # APNG chunks def chunk_acTL(self, pos, length): s = ImageFile._safe_read(self.fp, length) + if self.im_n_frames is not None: + self.im_n_frames = None + warnings.warn("Invalid APNG, will use default PNG image if possible") + return s + n_frames = i32(s) + if n_frames == 0 or n_frames > 0x80000000: + warnings.warn("Invalid APNG, will use default PNG image if possible") + return s + self.im_n_frames = n_frames + self.im_info["loop"] = i32(s[4:]) self.im_custom_mimetype = "image/apng" return s + def chunk_fcTL(self, pos, length): + s = ImageFile._safe_read(self.fp, length) + seq = i32(s) + if (self._seq_num is None and seq != 0) or ( + self._seq_num is not None and self._seq_num != seq - 1 + ): + raise SyntaxError("APNG contains frame sequence errors") + self._seq_num = seq + width, height = i32(s[4:]), i32(s[8:]) + px, py = i32(s[12:]), i32(s[16:]) + im_w, im_h = self.im_size + if px + width > im_w or py + height > im_h: + raise SyntaxError("APNG contains invalid frames") + self.im_info["bbox"] = (px, py, px + width, py + height) + delay_num, delay_den = i16(s[20:]), i16(s[22:]) + if delay_den == 0: + delay_den = 100 + self.im_info["duration"] = float(delay_num) / float(delay_den) * 1000 + self.im_info["disposal"] = i8(s[24]) + self.im_info["blend"] = i8(s[25]) + return s + + def chunk_fdAT(self, pos, length): + s = ImageFile._safe_read(self.fp, 4) + seq = i32(s) + if self._seq_num != seq - 1: + raise SyntaxError("APNG contains frame sequence errors") + self._seq_num = seq + return self.chunk_IDAT(pos + 4, length - 4) + # -------------------------------------------------------------------- # PNG reader @@ -571,9 +635,11 @@ class PngImageFile(ImageFile.ImageFile): if self.fp.read(8) != _MAGIC: raise SyntaxError("not a PNG file") + self.__fp = self.fp + self.__frame = 0 # - # Parse headers up to the first IDAT chunk + # Parse headers up to the first IDAT or fDAT chunk self.png = PngStream(self.fp) @@ -607,12 +673,28 @@ class PngImageFile(ImageFile.ImageFile): self._text = None self.tile = self.png.im_tile self.custom_mimetype = self.png.im_custom_mimetype + self.n_frames = self.png.im_n_frames or 1 + self.default_image = self.info.get("default_image", False) if self.png.im_palette: rawmode, data = self.png.im_palette self.palette = ImagePalette.raw(rawmode, data) - self.__prepare_idat = length # used by load_prepare() + if cid == b"fdAT": + self.__prepare_idat = length - 4 + else: + self.__prepare_idat = length # used by load_prepare() + + if self.png.im_n_frames is not None: + self._close_exclusive_fp_after_loading = False + self.png.save_rewind() + self.__rewind_idat = self.__prepare_idat + self.__rewind = self.__fp.tell() + if self.default_image: + # IDAT chunk contains default image and not first animation frame + self.n_frames += 1 + self._seek(0) + self.is_animated = self.n_frames > 1 @property def text(self): @@ -620,7 +702,13 @@ class PngImageFile(ImageFile.ImageFile): if self._text is None: # iTxt, tEXt and zTXt chunks may appear at the end of the file # So load the file to ensure that they are read + if self.is_animated: + frame = self.__frame + # for APNG, seek to the final frame before loading + self.seek(self.n_frames - 1) self.load() + if self.is_animated: + self.seek(frame) return self._text def verify(self): @@ -639,6 +727,97 @@ class PngImageFile(ImageFile.ImageFile): self.fp.close() self.fp = None + def seek(self, frame): + if not self._seek_check(frame): + return + if frame < self.__frame: + self._seek(0, True) + + last_frame = self.__frame + for f in range(self.__frame + 1, frame + 1): + try: + self._seek(f) + except EOFError: + self.seek(last_frame) + raise EOFError("no more images in APNG file") + + def _seek(self, frame, rewind=False): + if frame == 0: + if rewind: + self.__fp.seek(self.__rewind) + self.png.rewind() + self.__prepare_idat = self.__rewind_idat + self.im = None + if self.pyaccess: + self.pyaccess = None + self.info = self.png.im_info + self.tile = self.png.im_tile + self.fp = self.__fp + self._prev_im = None + self.dispose = None + self.default_image = self.info.get("default_image", False) + self.dispose_op = self.info.get("disposal") + self.blend_op = self.info.get("blend") + self.dispose_extent = self.info.get("bbox") + self.__frame = 0 + return + else: + if frame != self.__frame + 1: + raise ValueError("cannot seek to frame %d" % frame) + + # ensure previous frame was loaded + self.load() + + self.fp = self.__fp + + # advance to the next frame + if self.__prepare_idat: + ImageFile._safe_read(self.fp, self.__prepare_idat) + self.__prepare_idat = 0 + frame_start = False + while True: + self.fp.read(4) # CRC + + try: + cid, pos, length = self.png.read() + except (struct.error, SyntaxError): + break + + if cid == b"IEND": + raise EOFError("No more images in APNG file") + if cid == b"fcTL": + if frame_start: + # there must be at least one fdAT chunk between fcTL chunks + raise SyntaxError("APNG missing frame data") + frame_start = True + + try: + self.png.call(cid, pos, length) + except UnicodeDecodeError: + break + except EOFError: + if cid == b"fdAT": + length -= 4 + if frame_start: + self.__prepare_idat = length + break + ImageFile._safe_read(self.fp, length) + except AttributeError: + logger.debug("%r %s %s (unknown)", cid, pos, length) + ImageFile._safe_read(self.fp, length) + + self.__frame = frame + self.tile = self.png.im_tile + self.dispose_op = self.info.get("disposal") + self.blend_op = self.info.get("blend") + self.dispose_extent = self.info.get("bbox") + + if not self.tile: + raise EOFError + + def tell(self): + return self.__frame + def load_prepare(self): """internal: prepare to read PNG file""" @@ -658,11 +837,18 @@ class PngImageFile(ImageFile.ImageFile): cid, pos, length = self.png.read() - if cid not in [b"IDAT", b"DDAT"]: + if cid not in [b"IDAT", b"DDAT", b"fdAT"]: self.png.push(cid, pos, length) return b"" - self.__idat = length # empty chunks are allowed + if cid == b"fdAT": + try: + self.png.call(cid, pos, length) + except EOFError: + pass + self.__idat = length - 4 # sequence_num has already been read + else: + self.__idat = length # empty chunks are allowed # read more data from this chunk if read_bytes <= 0: @@ -686,31 +872,84 @@ class PngImageFile(ImageFile.ImageFile): if cid == b"IEND": break + elif cid == b"fcTL" and self.is_animated: + # start of the next frame, stop reading + self.__prepare_idat = 0 + self.png.push(cid, pos, length) + break try: self.png.call(cid, pos, length) except UnicodeDecodeError: break except EOFError: + if cid == b"fdAT": + length -= 4 ImageFile._safe_read(self.fp, length) except AttributeError: logger.debug("%r %s %s (unknown)", cid, pos, length) ImageFile._safe_read(self.fp, length) self._text = self.png.im_text - self.png.close() - self.png = None + if not self.is_animated: + self.png.close() + self.png = None + else: + # setup frame disposal (actual disposal done when needed in _seek()) + if self._prev_im is None and self.dispose_op == APNG_DISPOSE_OP_PREVIOUS: + self.dispose_op = APNG_DISPOSE_OP_BACKGROUND + + if self.dispose_op == APNG_DISPOSE_OP_PREVIOUS: + dispose = self._prev_im.copy() + dispose = self._crop(dispose, self.dispose_extent) + elif self.dispose_op == APNG_DISPOSE_OP_BACKGROUND: + dispose = Image.core.fill("RGBA", self.size, (0, 0, 0, 0)) + dispose = self._crop(dispose, self.dispose_extent) + else: + dispose = None + + if self._prev_im and self.blend_op == APNG_BLEND_OP_OVER: + updated = self._crop(self.im, self.dispose_extent) + self._prev_im.paste( + updated, self.dispose_extent, updated.convert("RGBA") + ) + self.im = self._prev_im + if self.pyaccess: + self.pyaccess = None + self._prev_im = self.im.copy() + + if dispose: + self._prev_im.paste(dispose, self.dispose_extent) def _getexif(self): if "exif" not in self.info: self.load() - if "exif" not in self.info: + if "exif" not in self.info and "Raw profile type exif" not in self.info: return None return dict(self.getexif()) def getexif(self): if "exif" not in self.info: self.load() - return ImageFile.ImageFile.getexif(self) + + if self._exif is None: + self._exif = Image.Exif() + + exif_info = self.info.get("exif") + if exif_info is None and "Raw profile type exif" in self.info: + exif_info = bytes.fromhex( + "".join(self.info["Raw profile type exif"].split("\n")[3:]) + ) + self._exif.load(exif_info) + return self._exif + + def _close__fp(self): + try: + if self.__fp != self.fp: + self.__fp.close() + except AttributeError: + pass + finally: + self.__fp = None # -------------------------------------------------------------------- @@ -746,7 +985,7 @@ def putchunk(fp, cid, *data): fp.write(o32(crc)) -class _idat(object): +class _idat: # wrap output from the encoder in IDAT chunks def __init__(self, fp, chunk): @@ -757,7 +996,147 @@ class _idat(object): self.chunk(self.fp, b"IDAT", data) -def _save(im, fp, filename, chunk=putchunk): +class _fdat: + # wrap encoder output in fdAT chunks + + def __init__(self, fp, chunk, seq_num): + self.fp = fp + self.chunk = chunk + self.seq_num = seq_num + + def write(self, data): + self.chunk(self.fp, b"fdAT", o32(self.seq_num), data) + self.seq_num += 1 + + +def _write_multiple_frames(im, fp, chunk, rawmode): + default_image = im.encoderinfo.get("default_image", im.info.get("default_image")) + duration = im.encoderinfo.get("duration", im.info.get("duration", 0)) + loop = im.encoderinfo.get("loop", im.info.get("loop", 0)) + disposal = im.encoderinfo.get("disposal", im.info.get("disposal")) + blend = im.encoderinfo.get("blend", im.info.get("blend")) + + if default_image: + chain = itertools.chain(im.encoderinfo.get("append_images", [])) + else: + chain = itertools.chain([im], im.encoderinfo.get("append_images", [])) + + im_frames = [] + frame_count = 0 + for im_seq in chain: + for im_frame in ImageSequence.Iterator(im_seq): + im_frame = im_frame.copy() + if im_frame.mode != im.mode: + if im.mode == "P": + im_frame = im_frame.convert(im.mode, palette=im.palette) + else: + im_frame = im_frame.convert(im.mode) + encoderinfo = im.encoderinfo.copy() + if isinstance(duration, (list, tuple)): + encoderinfo["duration"] = duration[frame_count] + if isinstance(disposal, (list, tuple)): + encoderinfo["disposal"] = disposal[frame_count] + if isinstance(blend, (list, tuple)): + encoderinfo["blend"] = blend[frame_count] + frame_count += 1 + + if im_frames: + previous = im_frames[-1] + prev_disposal = previous["encoderinfo"].get("disposal") + prev_blend = previous["encoderinfo"].get("blend") + if prev_disposal == APNG_DISPOSE_OP_PREVIOUS and len(im_frames) < 2: + prev_disposal == APNG_DISPOSE_OP_BACKGROUND + + if prev_disposal == APNG_DISPOSE_OP_BACKGROUND: + base_im = previous["im"] + dispose = Image.core.fill("RGBA", im.size, (0, 0, 0, 0)) + bbox = previous["bbox"] + if bbox: + dispose = dispose.crop(bbox) + else: + bbox = (0, 0) + im.size + base_im.paste(dispose, bbox) + elif prev_disposal == APNG_DISPOSE_OP_PREVIOUS: + base_im = im_frames[-2]["im"] + else: + base_im = previous["im"] + delta = ImageChops.subtract_modulo( + im_frame.convert("RGB"), base_im.convert("RGB") + ) + bbox = delta.getbbox() + if ( + not bbox + and prev_disposal == encoderinfo.get("disposal") + and prev_blend == encoderinfo.get("blend") + ): + duration = encoderinfo.get("duration", 0) + if duration: + if "duration" in previous["encoderinfo"]: + previous["encoderinfo"]["duration"] += duration + else: + previous["encoderinfo"]["duration"] = duration + continue + else: + bbox = None + im_frames.append({"im": im_frame, "bbox": bbox, "encoderinfo": encoderinfo}) + + # animation control + chunk( + fp, b"acTL", o32(len(im_frames)), o32(loop), # 0: num_frames # 4: num_plays + ) + + # default image IDAT (if it exists) + if default_image: + ImageFile._save(im, _idat(fp, chunk), [("zip", (0, 0) + im.size, 0, rawmode)]) + + seq_num = 0 + for frame, frame_data in enumerate(im_frames): + im_frame = frame_data["im"] + if not frame_data["bbox"]: + bbox = (0, 0) + im_frame.size + else: + bbox = frame_data["bbox"] + im_frame = im_frame.crop(bbox) + size = im_frame.size + duration = int(round(frame_data["encoderinfo"].get("duration", 0))) + disposal = frame_data["encoderinfo"].get("disposal", APNG_DISPOSE_OP_NONE) + blend = frame_data["encoderinfo"].get("blend", APNG_BLEND_OP_SOURCE) + # frame control + chunk( + fp, + b"fcTL", + o32(seq_num), # sequence_number + o32(size[0]), # width + o32(size[1]), # height + o32(bbox[0]), # x_offset + o32(bbox[1]), # y_offset + o16(duration), # delay_numerator + o16(1000), # delay_denominator + o8(disposal), # dispose_op + o8(blend), # blend_op + ) + seq_num += 1 + # frame data + if frame == 0 and not default_image: + # first frame must be in IDAT chunks for backwards compatibility + ImageFile._save( + im_frame, + _idat(fp, chunk), + [("zip", (0, 0) + im_frame.size, 0, rawmode)], + ) + else: + fdat_chunks = _fdat(fp, chunk, seq_num) + ImageFile._save( + im_frame, fdat_chunks, [("zip", (0, 0) + im_frame.size, 0, rawmode)], + ) + seq_num = fdat_chunks.seq_num + + +def _save_all(im, fp, filename): + _save(im, fp, filename, save_all=True) + + +def _save(im, fp, filename, chunk=putchunk, save_all=False): # save an image to disk (called by the save method) mode = im.mode @@ -799,7 +1178,7 @@ def _save(im, fp, filename, chunk=putchunk): try: rawmode, mode = _OUTMODES[mode] except KeyError: - raise IOError("cannot write mode %s as PNG" % mode) + raise OSError("cannot write mode %s as PNG" % mode) # # write minimal PNG file @@ -874,7 +1253,7 @@ def _save(im, fp, filename, chunk=putchunk): if "transparency" in im.encoderinfo: # don't bother with transparency if it's an RGBA # and it's in the info dict. It's probably just stale. - raise IOError("cannot use transparency for this mode") + raise OSError("cannot use transparency for this mode") else: if im.mode == "P" and im.im.getpalettemode() == "RGBA": alpha = im.im.getpalette("RGBA", "A") @@ -891,7 +1270,6 @@ def _save(im, fp, filename, chunk=putchunk): b"\x01", ) - info = im.encoderinfo.get("pnginfo") if info: chunks = [b"bKGD", b"hIST"] for cid, data in info.chunks: @@ -907,7 +1285,10 @@ def _save(im, fp, filename, chunk=putchunk): exif = exif[6:] chunk(fp, b"eXIf", exif) - ImageFile._save(im, _idat(fp, chunk), [("zip", (0, 0) + im.size, 0, rawmode)]) + if save_all: + _write_multiple_frames(im, fp, chunk, rawmode) + else: + ImageFile._save(im, _idat(fp, chunk), [("zip", (0, 0) + im.size, 0, rawmode)]) chunk(fp, b"IEND", b"") @@ -922,7 +1303,7 @@ def _save(im, fp, filename, chunk=putchunk): def getchunks(im, **params): """Return a list of PNG chunks representing this image.""" - class collector(object): + class collector: data = [] def write(self, data): @@ -952,6 +1333,7 @@ def getchunks(im, **params): Image.register_open(PngImageFile.format, PngImageFile, _accept) Image.register_save(PngImageFile.format, _save) +Image.register_save_all(PngImageFile.format, _save_all) Image.register_extensions(PngImageFile.format, [".png", ".apng"]) diff --git a/server/www/packages/packages-linux/x64/PIL/PpmImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/PpmImagePlugin.py index c3e9eed..35a77ba 100644 --- a/server/www/packages/packages-linux/x64/PIL/PpmImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/PpmImagePlugin.py @@ -17,10 +17,6 @@ from . import Image, ImageFile -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.2" - # # -------------------------------------------------------------------- @@ -139,7 +135,7 @@ def _save(im, fp, filename): elif im.mode == "RGBA": rawmode, head = "RGB", b"P6" else: - raise IOError("cannot write mode %s as PPM" % im.mode) + raise OSError("cannot write mode %s as PPM" % im.mode) fp.write(head + ("\n%d %d\n" % im.size).encode("ascii")) if head == b"P6": fp.write(b"255\n") diff --git a/server/www/packages/packages-linux/x64/PIL/PsdImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/PsdImagePlugin.py index f72ad5f..cceb85c 100644 --- a/server/www/packages/packages-linux/x64/PIL/PsdImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/PsdImagePlugin.py @@ -16,10 +16,6 @@ # See the README file for information on usage and redistribution. # -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.4" - import io from . import Image, ImageFile, ImagePalette @@ -75,7 +71,7 @@ class PsdImageFile(ImageFile.ImageFile): mode, channels = MODES[(psd_mode, psd_bits)] if channels > psd_channels: - raise IOError("not enough channels") + raise OSError("not enough channels") self.mode = mode self._size = i32(s[18:]), i32(s[14:]) diff --git a/server/www/packages/packages-linux/x64/PIL/PyAccess.py b/server/www/packages/packages-linux/x64/PIL/PyAccess.py index 2ab06f9..359a949 100644 --- a/server/www/packages/packages-linux/x64/PIL/PyAccess.py +++ b/server/www/packages/packages-linux/x64/PIL/PyAccess.py @@ -40,7 +40,7 @@ ffi = FFI() ffi.cdef(defs) -class PyAccess(object): +class PyAccess: def __init__(self, img, readonly=False): vals = dict(img.im.unsafe_ptrs) self.readonly = readonly diff --git a/server/www/packages/packages-linux/x64/PIL/SgiImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/SgiImagePlugin.py index 99408fd..ddd3de3 100644 --- a/server/www/packages/packages-linux/x64/PIL/SgiImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/SgiImagePlugin.py @@ -27,11 +27,6 @@ import struct from . import Image, ImageFile from ._binary import i8, i16be as i16, o8 -from ._util import py3 - -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.3" def _accept(prefix): @@ -164,7 +159,9 @@ def _save(im, fp, filename): # assert we've got the right number of bands. if len(im.getbands()) != z: raise ValueError( - "incorrect number of bands in SGI write: %s vs %s" % (z, len(im.getbands())) + "incorrect number of bands in SGI write: {} vs {}".format( + z, len(im.getbands()) + ) ) # Minimum Byte value @@ -173,8 +170,7 @@ def _save(im, fp, filename): pinmax = 255 # Image name (79 characters max, truncated below in write) imgName = os.path.splitext(os.path.basename(filename))[0] - if py3: - imgName = imgName.encode("ascii", "ignore") + imgName = imgName.encode("ascii", "ignore") # Standard representation of pixel in the file colormap = 0 fp.write(struct.pack(">h", magicNumber)) diff --git a/server/www/packages/packages-linux/x64/PIL/SpiderImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/SpiderImagePlugin.py index f1cae4d..cbd31cf 100644 --- a/server/www/packages/packages-linux/x64/PIL/SpiderImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/SpiderImagePlugin.py @@ -32,9 +32,6 @@ # Details about the Spider image format: # https://spider.wadsworth.org/spider_doc/spider/docs/image_doc.html # - -from __future__ import print_function - import os import struct import sys @@ -219,7 +216,8 @@ def loadImageSeries(filelist=None): print("unable to find %s" % img) continue try: - im = Image.open(img).convert2byte() + with Image.open(img) as im: + im = im.convert2byte() except Exception: if not isSpiderImage(img): print(img + " is not a Spider image file") @@ -273,7 +271,7 @@ def _save(im, fp, filename): hdr = makeSpiderHeader(im) if len(hdr) < 256: - raise IOError("Error creating Spider header") + raise OSError("Error creating Spider header") # write the SPIDER header fp.writelines(hdr) @@ -306,21 +304,21 @@ if __name__ == "__main__": print("input image must be in Spider format") sys.exit() - im = Image.open(filename) - print("image: " + str(im)) - print("format: " + str(im.format)) - print("size: " + str(im.size)) - print("mode: " + str(im.mode)) - print("max, min: ", end=" ") - print(im.getextrema()) + with Image.open(filename) as im: + print("image: " + str(im)) + print("format: " + str(im.format)) + print("size: " + str(im.size)) + print("mode: " + str(im.mode)) + print("max, min: ", end=" ") + print(im.getextrema()) - if len(sys.argv) > 2: - outfile = sys.argv[2] + if len(sys.argv) > 2: + outfile = sys.argv[2] - # perform some image operation - im = im.transpose(Image.FLIP_LEFT_RIGHT) - print( - "saving a flipped version of %s as %s " - % (os.path.basename(filename), outfile) - ) - im.save(outfile, SpiderImageFile.format) + # perform some image operation + im = im.transpose(Image.FLIP_LEFT_RIGHT) + print( + "saving a flipped version of %s as %s " + % (os.path.basename(filename), outfile) + ) + im.save(outfile, SpiderImageFile.format) diff --git a/server/www/packages/packages-linux/x64/PIL/SunImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/SunImagePlugin.py index 74fa5f7..fd7ca8a 100644 --- a/server/www/packages/packages-linux/x64/PIL/SunImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/SunImagePlugin.py @@ -20,10 +20,6 @@ from . import Image, ImageFile, ImagePalette from ._binary import i32be as i32 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.3" - def _accept(prefix): return len(prefix) >= 4 and i32(prefix) == 0x59A66A95 diff --git a/server/www/packages/packages-linux/x64/PIL/TarIO.py b/server/www/packages/packages-linux/x64/PIL/TarIO.py index e180b80..ede6464 100644 --- a/server/www/packages/packages-linux/x64/PIL/TarIO.py +++ b/server/www/packages/packages-linux/x64/PIL/TarIO.py @@ -15,7 +15,6 @@ # import io -import sys from . import ContainerIO @@ -38,12 +37,12 @@ class TarIO(ContainerIO.ContainerIO): s = self.fh.read(512) if len(s) != 512: - raise IOError("unexpected end of tar file") + raise OSError("unexpected end of tar file") name = s[:100].decode("utf-8") i = name.find("\0") if i == 0: - raise IOError("cannot find subfile") + raise OSError("cannot find subfile") if i > 0: name = name[:i] @@ -55,7 +54,7 @@ class TarIO(ContainerIO.ContainerIO): self.fh.seek((size + 511) & (~511), io.SEEK_CUR) # Open region - ContainerIO.ContainerIO.__init__(self, self.fh, self.fh.tell(), size) + super().__init__(self.fh, self.fh.tell(), size) # Context manager support def __enter__(self): @@ -64,10 +63,5 @@ class TarIO(ContainerIO.ContainerIO): def __exit__(self, *args): self.close() - if sys.version_info.major >= 3: - - def __del__(self): - self.close() - def close(self): self.fh.close() diff --git a/server/www/packages/packages-linux/x64/PIL/TgaImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/TgaImagePlugin.py index b1b3513..fd71e54 100644 --- a/server/www/packages/packages-linux/x64/PIL/TgaImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/TgaImagePlugin.py @@ -22,11 +22,6 @@ import warnings from . import Image, ImageFile, ImagePalette from ._binary import i8, i16le as i16, o8, o16le as o16 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.3" - - # # -------------------------------------------------------------------- # Read RGA file @@ -173,7 +168,7 @@ def _save(im, fp, filename): try: rawmode, bits, colormaptype, imagetype = SAVE[im.mode] except KeyError: - raise IOError("cannot write mode %s as TGA" % im.mode) + raise OSError("cannot write mode %s as TGA" % im.mode) if "rle" in im.encoderinfo: rle = im.encoderinfo["rle"] diff --git a/server/www/packages/packages-linux/x64/PIL/TiffImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/TiffImagePlugin.py index a927cd3..74fb695 100644 --- a/server/www/packages/packages-linux/x64/PIL/TiffImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/TiffImagePlugin.py @@ -38,35 +38,19 @@ # # See the README file for information on usage and redistribution. # - -from __future__ import division, print_function - -import distutils.version import io import itertools import os import struct -import sys import warnings +from collections.abc import MutableMapping from fractions import Fraction from numbers import Number, Rational from . import Image, ImageFile, ImagePalette, TiffTags from ._binary import i8, o8 -from ._util import py3 from .TiffTags import TYPES -try: - # Python 3 - from collections.abc import MutableMapping -except ImportError: - # Python 2.7 - from collections import MutableMapping - - -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "1.3.5" DEBUG = False # Needs to be merged with the new logging approach. # Set these to true to force use of libtiff for reading or writing. @@ -279,8 +263,18 @@ def _limit_rational(val, max_val): return n_d[::-1] if inv else n_d -def _libtiff_version(): - return Image.core.libtiff_version.split("\n")[0].split("Version ")[1] +def _limit_signed_rational(val, max_val, min_val): + frac = Fraction(val) + n_d = frac.numerator, frac.denominator + + if min(n_d) < min_val: + n_d = _limit_rational(val, abs(min_val)) + + if max(n_d) > max_val: + val = Fraction(*n_d) + n_d = _limit_rational(val, max_val) + + return n_d ## @@ -310,25 +304,21 @@ class IFDRational(Rational): float/rational/other number, or an IFDRational :param denominator: Optional integer denominator """ - self._denominator = denominator - self._numerator = value - self._val = float(1) + if isinstance(value, IFDRational): + self._numerator = value.numerator + self._denominator = value.denominator + self._val = value._val + return if isinstance(value, Fraction): self._numerator = value.numerator self._denominator = value.denominator - self._val = value - - if isinstance(value, IFDRational): - self._denominator = value.denominator - self._numerator = value.numerator - self._val = value._val - return + else: + self._numerator = value + self._denominator = denominator if denominator == 0: self._val = float("nan") - return - elif denominator == 1: self._val = Fraction(value) else: @@ -370,10 +360,10 @@ class IFDRational(Rational): return delegate - """ a = ['add','radd', 'sub', 'rsub','div', 'rdiv', 'mul', 'rmul', - 'truediv', 'rtruediv', 'floordiv', - 'rfloordiv','mod','rmod', 'pow','rpow', 'pos', 'neg', - 'abs', 'trunc', 'lt', 'gt', 'le', 'ge', 'nonzero', + """ a = ['add','radd', 'sub', 'rsub', 'mul', 'rmul', + 'truediv', 'rtruediv', 'floordiv', 'rfloordiv', + 'mod','rmod', 'pow','rpow', 'pos', 'neg', + 'abs', 'trunc', 'lt', 'gt', 'le', 'ge', 'bool', 'ceil', 'floor', 'round'] print("\n".join("__%s__ = _delegate('__%s__')" % (s,s) for s in a)) """ @@ -382,8 +372,6 @@ class IFDRational(Rational): __radd__ = _delegate("__radd__") __sub__ = _delegate("__sub__") __rsub__ = _delegate("__rsub__") - __div__ = _delegate("__div__") - __rdiv__ = _delegate("__rdiv__") __mul__ = _delegate("__mul__") __rmul__ = _delegate("__rmul__") __truediv__ = _delegate("__truediv__") @@ -402,7 +390,7 @@ class IFDRational(Rational): __gt__ = _delegate("__gt__") __le__ = _delegate("__le__") __ge__ = _delegate("__ge__") - __nonzero__ = _delegate("__nonzero__") + __bool__ = _delegate("__bool__") __ceil__ = _delegate("__ceil__") __floor__ = _delegate("__floor__") __round__ = _delegate("__round__") @@ -484,7 +472,7 @@ class ImageFileDirectory_v2(MutableMapping): else: raise SyntaxError("not a TIFF IFD") self.reset() - self.next, = self._unpack("L", ifh[4:]) + (self.next,) = self._unpack("L", ifh[4:]) self._legacy_api = False prefix = property(lambda self: self._prefix) @@ -531,18 +519,11 @@ class ImageFileDirectory_v2(MutableMapping): def __contains__(self, tag): return tag in self._tags_v2 or tag in self._tagdata - if not py3: - - def has_key(self, tag): - return tag in self - def __setitem__(self, tag, value): self._setitem(tag, value, self.legacy_api) def _setitem(self, tag, value, legacy_api): basetypes = (Number, bytes, str) - if not py3: - basetypes += (unicode,) # noqa: F821 info = TiffTags.lookup(tag) values = [value] if isinstance(value, basetypes) else value @@ -553,23 +534,29 @@ class ImageFileDirectory_v2(MutableMapping): else: self.tagtype[tag] = TiffTags.UNDEFINED if all(isinstance(v, IFDRational) for v in values): - self.tagtype[tag] = TiffTags.RATIONAL + self.tagtype[tag] = ( + TiffTags.RATIONAL + if all(v >= 0 for v in values) + else TiffTags.SIGNED_RATIONAL + ) elif all(isinstance(v, int) for v in values): - if all(v < 2 ** 16 for v in values): + if all(0 <= v < 2 ** 16 for v in values): self.tagtype[tag] = TiffTags.SHORT + elif all(-(2 ** 15) < v < 2 ** 15 for v in values): + self.tagtype[tag] = TiffTags.SIGNED_SHORT else: - self.tagtype[tag] = TiffTags.LONG + self.tagtype[tag] = ( + TiffTags.LONG + if all(v >= 0 for v in values) + else TiffTags.SIGNED_LONG + ) elif all(isinstance(v, float) for v in values): self.tagtype[tag] = TiffTags.DOUBLE else: - if py3: - if all(isinstance(v, str) for v in values): - self.tagtype[tag] = TiffTags.ASCII - else: - # Never treat data as binary by default on Python 2. + if all(isinstance(v, str) for v in values): self.tagtype[tag] = TiffTags.ASCII - if self.tagtype[tag] == TiffTags.UNDEFINED and py3: + if self.tagtype[tag] == TiffTags.UNDEFINED: values = [ value.encode("ascii", "replace") if isinstance(value, str) else value ] @@ -595,7 +582,7 @@ class ImageFileDirectory_v2(MutableMapping): ]: # rationals values = (values,) try: - dest[tag], = values + (dest[tag],) = values except ValueError: # We've got a builtin tag with 1 expected entry warnings.warn( @@ -689,8 +676,6 @@ class ImageFileDirectory_v2(MutableMapping): @_register_writer(2) def write_string(self, value): # remerge of https://github.com/python-pillow/Pillow/pull/1416 - if sys.version_info.major == 2: - value = value.decode("ascii", "replace") return b"" + value.encode("ascii", "replace") + b"\0" @_register_loader(5, 8) @@ -705,7 +690,7 @@ class ImageFileDirectory_v2(MutableMapping): @_register_writer(5) def write_rational(self, *values): return b"".join( - self._pack("2L", *_limit_rational(frac, 2 ** 31)) for frac in values + self._pack("2L", *_limit_rational(frac, 2 ** 32 - 1)) for frac in values ) @_register_loader(7, 1) @@ -728,13 +713,14 @@ class ImageFileDirectory_v2(MutableMapping): @_register_writer(10) def write_signed_rational(self, *values): return b"".join( - self._pack("2L", *_limit_rational(frac, 2 ** 30)) for frac in values + self._pack("2l", *_limit_signed_rational(frac, 2 ** 31 - 1, -(2 ** 31))) + for frac in values ) def _ensure_read(self, fp, size): ret = fp.read(size) if len(ret) != size: - raise IOError( + raise OSError( "Corrupt EXIF data. " + "Expecting to read %d bytes but only got %d. " % (size, len(ret)) ) @@ -765,10 +751,10 @@ class ImageFileDirectory_v2(MutableMapping): size = count * unit_size if size > 4: here = fp.tell() - offset, = self._unpack("L", data) + (offset,) = self._unpack("L", data) if DEBUG: print( - "Tag Location: %s - Data Location: %s" % (here, offset), + "Tag Location: {} - Data Location: {}".format(here, offset), end=" ", ) fp.seek(offset) @@ -797,8 +783,8 @@ class ImageFileDirectory_v2(MutableMapping): else: print("- value:", self[tag]) - self.next, = self._unpack("L", self._ensure_read(fp, 4)) - except IOError as msg: + (self.next,) = self._unpack("L", self._ensure_read(fp, 4)) + except OSError as msg: warnings.warn(str(msg)) return @@ -817,7 +803,7 @@ class ImageFileDirectory_v2(MutableMapping): stripoffsets = len(entries) typ = self.tagtype.get(tag) if DEBUG: - print("Tag %s, Type: %s, Value: %s" % (tag, typ, value)) + print("Tag {}, Type: {}, Value: {}".format(tag, typ, value)) values = value if isinstance(value, tuple) else (value,) data = self._write_dispatch[typ](self, *values) if DEBUG: @@ -854,7 +840,7 @@ class ImageFileDirectory_v2(MutableMapping): # pass 2: write entries to file for tag, typ, count, value, data in entries: - if DEBUG > 1: + if DEBUG: print(tag, typ, count, repr(value), repr(data)) result += self._pack("HHL4s", tag, typ, count, value) @@ -911,7 +897,7 @@ class ImageFileDirectory_v1(ImageFileDirectory_v2): """ def __init__(self, *args, **kwargs): - ImageFileDirectory_v2.__init__(self, *args, **kwargs) + super().__init__(*args, **kwargs) self._legacy_api = True tags = property(lambda self: self._tags_v1) @@ -1054,7 +1040,7 @@ class TiffImageFile(ImageFile.ImageFile): "Seeking to frame %s, on frame %s, __next %s, location: %s" % (frame, self.__frame, self.__next, self.fp.tell()) ) - # reset python3 buffered io handle in case fp + # reset buffered io handle in case fp # was passed to libtiff, invalidating the buffer self.fp.tell() self.fp.seek(self.__next) @@ -1079,23 +1065,10 @@ class TiffImageFile(ImageFile.ImageFile): """Return the current frame number""" return self.__frame - @property - def size(self): - return self._size - - @size.setter - def size(self, value): - warnings.warn( - "Setting the size of a TIFF image directly is deprecated, and will" - " be removed in a future version. Use the resize method instead.", - DeprecationWarning, - ) - self._size = value - def load(self): if self.use_load_libtiff: return self._load_libtiff() - return super(TiffImageFile, self).load() + return super().load() def load_end(self): if self._tile_orientation: @@ -1124,14 +1097,14 @@ class TiffImageFile(ImageFile.ImageFile): pixel = Image.Image.load(self) if self.tile is None: - raise IOError("cannot load this image") + raise OSError("cannot load this image") if not self.tile: return pixel self.load_prepare() if not len(self.tile) == 1: - raise IOError("Not exactly one tile") + raise OSError("Not exactly one tile") # (self._compression, (extents tuple), # 0, (rawmode, self._compression, fp)) @@ -1145,11 +1118,11 @@ class TiffImageFile(ImageFile.ImageFile): try: fp = hasattr(self.fp, "fileno") and os.dup(self.fp.fileno()) # flush the file descriptor, prevents error on pypy 2.4+ - # should also eliminate the need for fp.tell for py3 + # should also eliminate the need for fp.tell # in _seek if hasattr(self.fp, "flush"): self.fp.flush() - except IOError: + except OSError: # io.BytesIO have a fileno, but returns an IOError if # it doesn't use a file descriptor. fp = False @@ -1163,7 +1136,7 @@ class TiffImageFile(ImageFile.ImageFile): try: decoder.setimage(self.im, extents) except ValueError: - raise IOError("Couldn't set the image") + raise OSError("Couldn't set the image") close_self_fp = self._exclusive_fp and not self._is_animated if hasattr(self.fp, "getvalue"): @@ -1206,7 +1179,7 @@ class TiffImageFile(ImageFile.ImageFile): self.fp = None # might be shared if err < 0: - raise IOError(err) + raise OSError(err) return Image.Image.load(self) @@ -1214,7 +1187,7 @@ class TiffImageFile(ImageFile.ImageFile): """Setup this image object based on current tags""" if 0xBC01 in self.tag_v2: - raise IOError("Windows Media Photo files not yet supported") + raise OSError("Windows Media Photo files not yet supported") # extract relevant tags self._compression = COMPRESSION_INFO[self.tag_v2.get(COMPRESSION, 1)] @@ -1456,7 +1429,7 @@ def _save(im, fp, filename): try: rawmode, prefix, photo, format, bits, extra = SAVE_INFO[im.mode] except KeyError: - raise IOError("cannot write mode %s as TIFF" % im.mode) + raise OSError("cannot write mode %s as TIFF" % im.mode) ifd = ImageFileDirectory_v2(prefix=prefix) @@ -1606,22 +1579,18 @@ def _save(im, fp, filename): # Custom items are supported for int, float, unicode, string and byte # values. Other types and tuples require a tagtype. if tag not in TiffTags.LIBTIFF_CORE: - if TiffTags.lookup(tag).type == TiffTags.UNDEFINED: - continue - if distutils.version.StrictVersion( - _libtiff_version() - ) < distutils.version.StrictVersion("4.0"): + if ( + TiffTags.lookup(tag).type == TiffTags.UNDEFINED + or not Image.core.libtiff_support_custom_tags + ): continue if tag in ifd.tagtype: types[tag] = ifd.tagtype[tag] - elif not ( - isinstance(value, (int, float, str, bytes)) - or (not py3 and isinstance(value, unicode)) # noqa: F821 - ): + elif not (isinstance(value, (int, float, str, bytes))): continue if tag not in atts and tag not in blocklist: - if isinstance(value, str if py3 else unicode): # noqa: F821 + if isinstance(value, str): atts[tag] = value.encode("ascii", "replace") + b"\0" elif isinstance(value, IFDRational): atts[tag] = float(value) @@ -1654,7 +1623,7 @@ def _save(im, fp, filename): if s: break if s < 0: - raise IOError("encoder error %d when writing image file" % s) + raise OSError("encoder error %d when writing image file" % s) else: offset = ifd.save(fp) @@ -1702,9 +1671,9 @@ class AppendingTiffWriter: self.name = fn self.close_fp = True try: - self.f = io.open(fn, "w+b" if new else "r+b") - except IOError: - self.f = io.open(fn, "w+b") + self.f = open(fn, "w+b" if new else "r+b") + except OSError: + self.f = open(fn, "w+b") self.beginning = self.f.tell() self.setup() @@ -1785,7 +1754,7 @@ class AppendingTiffWriter: # pad to 16 byte boundary padBytes = 16 - pos % 16 if 0 < padBytes < 16: - self.f.write(bytes(bytearray(padBytes))) + self.f.write(bytes(padBytes)) self.offsetOfNewPage = self.f.tell() def setEndian(self, endian): @@ -1809,11 +1778,11 @@ class AppendingTiffWriter: return self.f.write(data) def readShort(self): - value, = struct.unpack(self.shortFmt, self.f.read(2)) + (value,) = struct.unpack(self.shortFmt, self.f.read(2)) return value def readLong(self): - value, = struct.unpack(self.longFmt, self.f.read(4)) + (value,) = struct.unpack(self.longFmt, self.f.read(4)) return value def rewriteLastShortToLong(self, value): diff --git a/server/www/packages/packages-linux/x64/PIL/TiffTags.py b/server/www/packages/packages-linux/x64/PIL/TiffTags.py index 82719db..6cc9ff7 100644 --- a/server/www/packages/packages-linux/x64/PIL/TiffTags.py +++ b/server/www/packages/packages-linux/x64/PIL/TiffTags.py @@ -24,7 +24,7 @@ class TagInfo(namedtuple("_TagInfo", "value name type length enum")): __slots__ = [] def __new__(cls, value=None, name="unknown", type=None, length=None, enum=None): - return super(TagInfo, cls).__new__(cls, value, name, type, length, enum or {}) + return super().__new__(cls, value, name, type, length, enum or {}) def cvt_enum(self, value): # Using get will call hash(value), which can be expensive @@ -120,7 +120,7 @@ TAGS_V2 = { 277: ("SamplesPerPixel", SHORT, 1), 278: ("RowsPerStrip", LONG, 1), 279: ("StripByteCounts", LONG, 0), - 280: ("MinSampleValue", LONG, 0), + 280: ("MinSampleValue", SHORT, 0), 281: ("MaxSampleValue", SHORT, 0), 282: ("XResolution", RATIONAL, 1), 283: ("YResolution", RATIONAL, 1), @@ -182,7 +182,7 @@ TAGS_V2 = { # FIXME add more tags here 34665: ("ExifIFD", LONG, 1), 34675: ("ICCProfile", UNDEFINED, 1), - 34853: ("GPSInfoIFD", BYTE, 1), + 34853: ("GPSInfoIFD", LONG, 1), # MPInfo 45056: ("MPFVersion", UNDEFINED, 1), 45057: ("NumberOfImages", LONG, 1), diff --git a/server/www/packages/packages-linux/x64/PIL/WalImageFile.py b/server/www/packages/packages-linux/x64/PIL/WalImageFile.py index e2e1cd4..d5a5c8e 100644 --- a/server/www/packages/packages-linux/x64/PIL/WalImageFile.py +++ b/server/www/packages/packages-linux/x64/PIL/WalImageFile.py @@ -1,4 +1,3 @@ -# encoding: utf-8 # # The Python Imaging Library. # $Id$ @@ -21,16 +20,11 @@ # https://www.flipcode.com/archives/Quake_2_BSP_File_Format.shtml # and has been tested with a few sample files found using google. +import builtins + from . import Image from ._binary import i32le as i32 -try: - import builtins -except ImportError: - import __builtin__ - - builtins = __builtin__ - def open(filename): """ diff --git a/server/www/packages/packages-linux/x64/PIL/WebPImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/WebPImagePlugin.py index 18eda6d..eda6855 100644 --- a/server/www/packages/packages-linux/x64/PIL/WebPImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/WebPImagePlugin.py @@ -105,7 +105,7 @@ class WebPImageFile(ImageFile.ImageFile): def seek(self, frame): if not _webp.HAVE_WEBPANIM: - return super(WebPImageFile, self).seek(frame) + return super().seek(frame) # Perform some simple checks first if frame >= self._n_frames: @@ -168,11 +168,11 @@ class WebPImageFile(ImageFile.ImageFile): self.fp = BytesIO(data) self.tile = [("raw", (0, 0) + self.size, 0, self.rawmode)] - return super(WebPImageFile, self).load() + return super().load() def tell(self): if not _webp.HAVE_WEBPANIM: - return super(WebPImageFile, self).tell() + return super().tell() return self.__logical_frame @@ -233,7 +233,7 @@ def _save_all(im, fp, filename): or len(background) != 4 or not all(v >= 0 and v < 256 for v in background) ): - raise IOError( + raise OSError( "Background color is not an RGBA tuple clamped to (0-255): %s" % str(background) ) @@ -312,7 +312,7 @@ def _save_all(im, fp, filename): # Get the final output from the encoder data = enc.assemble(icc_profile, exif, xmp) if data is None: - raise IOError("cannot write file as WebP (encoder returned None)") + raise OSError("cannot write file as WebP (encoder returned None)") fp.write(data) @@ -346,7 +346,7 @@ def _save(im, fp, filename): xmp, ) if data is None: - raise IOError("cannot write file as WebP (encoder returned None)") + raise OSError("cannot write file as WebP (encoder returned None)") fp.write(data) diff --git a/server/www/packages/packages-linux/x64/PIL/WmfImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/WmfImagePlugin.py index 416af6f..024222c 100644 --- a/server/www/packages/packages-linux/x64/PIL/WmfImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/WmfImagePlugin.py @@ -19,21 +19,11 @@ # http://wvware.sourceforge.net/caolan/index.html # http://wvware.sourceforge.net/caolan/ora-wmf.html -from __future__ import print_function - from . import Image, ImageFile from ._binary import i16le as word, i32le as dword, si16le as short, si32le as _long -from ._util import py3 - -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.2" _handler = None -if py3: - long = int - def register_handler(handler): """ @@ -48,7 +38,7 @@ def register_handler(handler): if hasattr(Image.core, "drawwmf"): # install default handler (windows only) - class WmfHandler(object): + class WmfHandler: def open(self, im): im.mode = "RGB" self.bbox = im.info["wmf_bbox"] @@ -88,6 +78,7 @@ class WmfStubImageFile(ImageFile.StubImageFile): format_description = "Windows Metafile" def _open(self): + self._inch = None # check placable header s = self.fp.read(80) @@ -97,7 +88,7 @@ class WmfStubImageFile(ImageFile.StubImageFile): # placeable windows metafile # get units per inch - inch = word(s, 14) + self._inch = word(s, 14) # get bounding box x0 = short(s, 6) @@ -106,12 +97,14 @@ class WmfStubImageFile(ImageFile.StubImageFile): y1 = short(s, 12) # normalize size to 72 dots per inch - size = (x1 - x0) * 72 // inch, (y1 - y0) * 72 // inch + self.info["dpi"] = 72 + size = ( + (x1 - x0) * self.info["dpi"] // self._inch, + (y1 - y0) * self.info["dpi"] // self._inch, + ) self.info["wmf_bbox"] = x0, y0, x1, y1 - self.info["dpi"] = 72 - # sanity check (standard metafile header) if s[22:26] != b"\x01\x00\t\x00": raise SyntaxError("Unsupported WMF file format") @@ -128,7 +121,6 @@ class WmfStubImageFile(ImageFile.StubImageFile): # get frame (in 0.01 millimeter units) frame = _long(s, 24), _long(s, 28), _long(s, 32), _long(s, 36) - # normalize size to 72 dots per inch size = x1 - x0, y1 - y0 # calculate dots per inch from bbox and frame @@ -155,10 +147,20 @@ class WmfStubImageFile(ImageFile.StubImageFile): def _load(self): return _handler + def load(self, dpi=None): + if dpi is not None and self._inch is not None: + self.info["dpi"] = int(dpi + 0.5) + x0, y0, x1, y1 = self.info["wmf_bbox"] + self._size = ( + (x1 - x0) * self.info["dpi"] // self._inch, + (y1 - y0) * self.info["dpi"] // self._inch, + ) + super().load() + def _save(im, fp, filename): if _handler is None or not hasattr(_handler, "save"): - raise IOError("WMF save handler not installed") + raise OSError("WMF save handler not installed") _handler.save(im, fp, filename) diff --git a/server/www/packages/packages-linux/x64/PIL/XVThumbImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/XVThumbImagePlugin.py index aa3536d..c0d8db0 100644 --- a/server/www/packages/packages-linux/x64/PIL/XVThumbImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/XVThumbImagePlugin.py @@ -20,10 +20,6 @@ from . import Image, ImageFile, ImagePalette from ._binary import i8, o8 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.1" - _MAGIC = b"P7 332" # standard color palette for thumbnails (RGB332) diff --git a/server/www/packages/packages-linux/x64/PIL/XbmImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/XbmImagePlugin.py index bc825c3..ead9722 100644 --- a/server/www/packages/packages-linux/x64/PIL/XbmImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/XbmImagePlugin.py @@ -23,10 +23,6 @@ import re from . import Image, ImageFile -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.6" - # XBM header xbm_head = re.compile( br"\s*#define[ \t]+.*_width[ \t]+(?P[0-9]+)[\r\n]+" @@ -73,7 +69,7 @@ class XbmImageFile(ImageFile.ImageFile): def _save(im, fp, filename): if im.mode != "1": - raise IOError("cannot write mode %s as XBM" % im.mode) + raise OSError("cannot write mode %s as XBM" % im.mode) fp.write(("#define im_width %d\n" % im.size[0]).encode("ascii")) fp.write(("#define im_height %d\n" % im.size[1]).encode("ascii")) diff --git a/server/www/packages/packages-linux/x64/PIL/XpmImagePlugin.py b/server/www/packages/packages-linux/x64/PIL/XpmImagePlugin.py index 2751488..d8bd00a 100644 --- a/server/www/packages/packages-linux/x64/PIL/XpmImagePlugin.py +++ b/server/www/packages/packages-linux/x64/PIL/XpmImagePlugin.py @@ -20,10 +20,6 @@ import re from . import Image, ImageFile, ImagePalette from ._binary import i8, o8 -# __version__ is deprecated and will be removed in a future version. Use -# PIL.__version__ instead. -__version__ = "0.2" - # XPM header xpm_head = re.compile(b'"([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*)') diff --git a/server/www/packages/packages-linux/x64/PIL/__init__.py b/server/www/packages/packages-linux/x64/PIL/__init__.py index 59eccc9..f9cb157 100644 --- a/server/www/packages/packages-linux/x64/PIL/__init__.py +++ b/server/www/packages/packages-linux/x64/PIL/__init__.py @@ -9,17 +9,75 @@ PIL is the Python Imaging Library by Fredrik Lundh and Contributors. Copyright (c) 1999 by Secret Labs AB. Use PIL.__version__ for this Pillow version. -PIL.VERSION is the old PIL version and will be removed in the future. ;-) """ +import sys +import warnings + from . import _version # VERSION was removed in Pillow 6.0.0. -# PILLOW_VERSION is deprecated and will be removed in Pillow 7.0.0. +__version__ = _version.__version__ + + +# PILLOW_VERSION is deprecated and will be removed in a future release. # Use __version__ instead. -PILLOW_VERSION = __version__ = _version.__version__ +def _raise_version_warning(): + warnings.warn( + "PILLOW_VERSION is deprecated and will be removed in a future release. " + "Use __version__ instead.", + DeprecationWarning, + stacklevel=3, + ) + + +if sys.version_info >= (3, 7): + + def __getattr__(name): + if name == "PILLOW_VERSION": + _raise_version_warning() + return __version__ + raise AttributeError("module '{}' has no attribute '{}'".format(__name__, name)) + + +else: + + class _Deprecated_Version(str): + def __str__(self): + _raise_version_warning() + return super().__str__() + + def __getitem__(self, key): + _raise_version_warning() + return super().__getitem__(key) + + def __eq__(self, other): + _raise_version_warning() + return super().__eq__(other) + + def __ne__(self, other): + _raise_version_warning() + return super().__ne__(other) + + def __gt__(self, other): + _raise_version_warning() + return super().__gt__(other) + + def __lt__(self, other): + _raise_version_warning() + return super().__lt__(other) + + def __ge__(self, other): + _raise_version_warning() + return super().__gt__(other) + + def __le__(self, other): + _raise_version_warning() + return super().__lt__(other) + + PILLOW_VERSION = _Deprecated_Version(__version__) del _version @@ -71,3 +129,7 @@ _plugins = [ "XpmImagePlugin", "XVThumbImagePlugin", ] + + +class UnidentifiedImageError(IOError): + pass diff --git a/server/www/packages/packages-linux/x64/PIL/_binary.py b/server/www/packages/packages-linux/x64/PIL/_binary.py index 53b1ca9..529b8c9 100644 --- a/server/www/packages/packages-linux/x64/PIL/_binary.py +++ b/server/www/packages/packages-linux/x64/PIL/_binary.py @@ -13,24 +13,13 @@ from struct import pack, unpack_from -from ._util import py3 -if py3: - - def i8(c): - return c if c.__class__ is int else c[0] - - def o8(i): - return bytes((i & 255,)) +def i8(c): + return c if c.__class__ is int else c[0] -else: - - def i8(c): - return ord(c) - - def o8(i): - return chr(i & 255) +def o8(i): + return bytes((i & 255,)) # Input, le = little endian, be = big endian diff --git a/server/www/packages/packages-linux/x64/PIL/_imaging.cpython-37m-x86_64-linux-gnu.so b/server/www/packages/packages-linux/x64/PIL/_imaging.cpython-37m-x86_64-linux-gnu.so index b4c2545df645b7d0551b380e88e4e6862047115f..dfab3dfc00a77160a7539716417dc225c0ca7996 100755 GIT binary patch delta 188939 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 LWJuqtFU0=??I%Gv delta 159224 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 CY2XF` diff --git a/server/www/packages/packages-linux/x64/PIL/_imagingcms.cpython-37m-x86_64-linux-gnu.so b/server/www/packages/packages-linux/x64/PIL/_imagingcms.cpython-37m-x86_64-linux-gnu.so index 661a5a2e771b7d7627a9a542aa7b807100ebb7d7..d74739963ec9c7d4ff247664464c07d968f0a90b 100755 GIT binary patch delta 90 zcmaFxkm!9~sR%7^^31cIk5#tWW?87Hm%JN*5D^ak(H$8LBtm RT+qutIe&%f=E*BUIRMqI7s>zt diff --git a/server/www/packages/packages-linux/x64/PIL/_imagingft.cpython-37m-x86_64-linux-gnu.so b/server/www/packages/packages-linux/x64/PIL/_imagingft.cpython-37m-x86_64-linux-gnu.so index fb0ec2c5a45aa1844565f13dbfbd8f1eb4b1ceda..fd645ecea2302aa7d566112ce6ca1fe7be525d1d 100755 GIT binary patch delta 12940 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 aRPeCs^)Ngwj>XqQlnU-!dY2e02>%BijnlCJ delta 12990 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 S5=%!zG6LcmwUIDZ5dH%Zsn=ux diff --git a/server/www/packages/packages-linux/x64/PIL/_tkinter_finder.py b/server/www/packages/packages-linux/x64/PIL/_tkinter_finder.py index d4f3419..3049306 100644 --- a/server/www/packages/packages-linux/x64/PIL/_tkinter_finder.py +++ b/server/www/packages/packages-linux/x64/PIL/_tkinter_finder.py @@ -1,11 +1,7 @@ """ Find compiled module linking to Tcl / Tk libraries """ import sys - -if sys.version_info.major > 2: - from tkinter import _tkinter as tk -else: - from Tkinter import tkinter as tk +from tkinter import _tkinter as tk if hasattr(sys, "pypy_find_executable"): # Tested with packages at https://bitbucket.org/pypy/pypy/downloads. diff --git a/server/www/packages/packages-linux/x64/PIL/_util.py b/server/www/packages/packages-linux/x64/PIL/_util.py index 59964c7..755b4b2 100644 --- a/server/www/packages/packages-linux/x64/PIL/_util.py +++ b/server/www/packages/packages-linux/x64/PIL/_util.py @@ -1,33 +1,20 @@ import os import sys -py3 = sys.version_info.major >= 3 py36 = sys.version_info[0:2] >= (3, 6) -if py3: - def isStringType(t): - return isinstance(t, str) +if py36: + from pathlib import Path - if py36: - from pathlib import Path - - def isPath(f): - return isinstance(f, (bytes, str, Path)) - - else: - - def isPath(f): - return isinstance(f, (bytes, str)) + def isPath(f): + return isinstance(f, (bytes, str, Path)) else: - def isStringType(t): - return isinstance(t, basestring) # noqa: F821 - def isPath(f): - return isinstance(f, basestring) # noqa: F821 + return isinstance(f, (bytes, str)) # Checks if an object is a string, and that it points to a directory. @@ -35,7 +22,7 @@ def isDirectory(f): return isPath(f) and os.path.isdir(f) -class deferred_error(object): +class deferred_error: def __init__(self, ex): self.ex = ex diff --git a/server/www/packages/packages-linux/x64/PIL/_version.py b/server/www/packages/packages-linux/x64/PIL/_version.py index e2747ce..1af2909 100644 --- a/server/www/packages/packages-linux/x64/PIL/_version.py +++ b/server/www/packages/packages-linux/x64/PIL/_version.py @@ -1,2 +1,2 @@ # Master version for Pillow -__version__ = "6.2.1" +__version__ = "7.1.2" diff --git a/server/www/packages/packages-linux/x64/PIL/_webp.cpython-37m-x86_64-linux-gnu.so b/server/www/packages/packages-linux/x64/PIL/_webp.cpython-37m-x86_64-linux-gnu.so index 24eca1136e55b2161d85e7f0128c609f8df478e1..3f4ad33cf1a21f8035862296a2080972c55c9186 100755 GIT binary patch literal 39392 zcmeHw4SZD9weLwnFnn}o#E(X#<*0)MD`|oR;|FynpJ#9aF$s_gI2n=&i493^W�e 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 literal 39352 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 H|V!O@mQ1{X;VN}xFLzGc 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 Ybbra*(5!}a(`Mc?bFCcMUvk_3136a-yZ`_I delta 52393 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

  • Y)WVcPScn3`tHcY5fqULb% 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 delta 44899 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

    }YBctT=yPkzYGZd>rBF6FgXaAQS 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
    M^rL@gD%u44suAktu%*M1FW!kmDDTO8*!ojM(b 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 LKB#Gb0m}71DnWWi delta 65178 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 blABxh?oNO9(&u~3Cz@tov+U45Sg!v8CWKWu diff --git a/server/www/packages/packages-linux/x64/PIL/.libs/libwebpdemux-e9ec482e.so.2.0.6 b/server/www/packages/packages-linux/x64/Pillow.libs/libwebpdemux-2db559e5.so.2.0.6 similarity index 98% rename from server/www/packages/packages-linux/x64/PIL/.libs/libwebpdemux-e9ec482e.so.2.0.6 rename to server/www/packages/packages-linux/x64/Pillow.libs/libwebpdemux-2db559e5.so.2.0.6 index 3cde1b8710fbc5c89b987d5d5a18da9a6aac8bd1..26de7af8e84016241f94cd5e66b57364143d35e6 100755 GIT binary patch delta 126 zcmcccjPb%V#tlm(7&$jDmB?lRQi8G#>`V-dnn0|o{F0bVL4 delta 126 zcmcccjPb%V#tlm(7&$gCmB?lRQi8G#>`crInd=wR}PB2A7|%hY5O3!~J@ip4U*#)(FWsj10n Pdd2yA=6VKtrVI=KVpS{g diff --git a/server/www/packages/packages-linux/x64/PIL/.libs/libwebpmux-40630b44.so.3.0.4 b/server/www/packages/packages-linux/x64/Pillow.libs/libwebpmux-ec1d5c76.so.3.0.5 similarity index 57% rename from server/www/packages/packages-linux/x64/PIL/.libs/libwebpmux-40630b44.so.3.0.4 rename to server/www/packages/packages-linux/x64/Pillow.libs/libwebpmux-ec1d5c76.so.3.0.5 index a04c69cda0751c967c09728355c8c1dd04e221f1..2ee2558ec61f629c29716dfc34e6dd3d9bed19db 100755 GIT binary patch delta 7674 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 Oi}Tnf5jI2AuKy48An$qr diff --git a/server/www/packages/packages-linux/x64/PIL/.libs/libz-a147dcb0.so.1.2.3 b/server/www/packages/packages-linux/x64/Pillow.libs/libz-a147dcb0.so.1.2.3 similarity index 99% rename from server/www/packages/packages-linux/x64/PIL/.libs/libz-a147dcb0.so.1.2.3 rename to server/www/packages/packages-linux/x64/Pillow.libs/libz-a147dcb0.so.1.2.3 index 1ce02c2742229e3ad505bcfb5701547166bb1dcf..0d6b630129c67ec869f273a3d10983419de37725 100755 GIT binary patch delta 27 jcmZ3nj&;R4)`l&N0U?|@nMqZ8#rb-M+ap65&oco4l@|%` delta 27 ccmZ3nj&;R4)`l&N0U?|bFt9x`gz-ER0FyNd=Kufz diff --git a/server/www/packages/packages-linux/x64/_cffi_backend.cpython-37m-x86_64-linux-gnu.so b/server/www/packages/packages-linux/x64/_cffi_backend.cpython-37m-x86_64-linux-gnu.so index 7b041a62e04a4539c95695ba9f6de3eb5d63c57f..c66494cd225cee690b10bc60398065d4dd037903 100755 GIT binary patch literal 853840 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 z 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

    T5Y=!#IGA3}wN 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 Gii@+@A5!CE?iB$`LXtx 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

    tf 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 diff --git a/server/www/packages/packages-linux/x64/cffi/__init__.py b/server/www/packages/packages-linux/x64/cffi/__init__.py index ddc3614..7969abf 100644 --- a/server/www/packages/packages-linux/x64/cffi/__init__.py +++ b/server/www/packages/packages-linux/x64/cffi/__init__.py @@ -5,8 +5,8 @@ from .api import FFI from .error import CDefError, FFIError, VerificationError, VerificationMissing from .error import PkgConfigError -__version__ = "1.13.2" -__version_info__ = (1, 13, 2) +__version__ = "1.14.0" +__version_info__ = (1, 14, 0) # The verifier module file names are based on the CRC32 of a string that # contains the following version number. It may be older than __version__ diff --git a/server/www/packages/packages-linux/x64/cffi/_cffi_include.h b/server/www/packages/packages-linux/x64/cffi/_cffi_include.h index 37ea74f..3129150 100644 --- a/server/www/packages/packages-linux/x64/cffi/_cffi_include.h +++ b/server/www/packages/packages-linux/x64/cffi/_cffi_include.h @@ -261,14 +261,62 @@ _CFFI_UNUSED_FN static int _cffi_to_c_char32_t(PyObject *o) return (int)_cffi_to_c_wchar3216_t(o); } -_CFFI_UNUSED_FN static PyObject *_cffi_from_c_char32_t(int x) +_CFFI_UNUSED_FN static PyObject *_cffi_from_c_char32_t(unsigned int x) { if (sizeof(_cffi_wchar_t) == 4) return _cffi_from_c_wchar_t((_cffi_wchar_t)x); else - return _cffi_from_c_wchar3216_t(x); + return _cffi_from_c_wchar3216_t((int)x); } +union _cffi_union_alignment_u { + unsigned char m_char; + unsigned short m_short; + unsigned int m_int; + unsigned long m_long; + unsigned long long m_longlong; + float m_float; + double m_double; + long double m_longdouble; +}; + +struct _cffi_freeme_s { + struct _cffi_freeme_s *next; + union _cffi_union_alignment_u alignment; +}; + +_CFFI_UNUSED_FN static int +_cffi_convert_array_argument(struct _cffi_ctypedescr *ctptr, PyObject *arg, + char **output_data, Py_ssize_t datasize, + struct _cffi_freeme_s **freeme) +{ + char *p; + if (datasize < 0) + return -1; + + p = *output_data; + if (p == NULL) { + struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc( + offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize); + if (fp == NULL) + return -1; + fp->next = *freeme; + *freeme = fp; + p = *output_data = (char *)&fp->alignment; + } + memset((void *)p, 0, (size_t)datasize); + return _cffi_convert_array_from_object(p, ctptr, arg); +} + +_CFFI_UNUSED_FN static void +_cffi_free_array_arguments(struct _cffi_freeme_s *freeme) +{ + do { + void *p = (void *)freeme; + freeme = freeme->next; + PyObject_Free(p); + } while (freeme != NULL); +} /********** end CPython-specific section **********/ #else diff --git a/server/www/packages/packages-linux/x64/cffi/_embedding.h b/server/www/packages/packages-linux/x64/cffi/_embedding.h index abd474a..34a4a66 100644 --- a/server/www/packages/packages-linux/x64/cffi/_embedding.h +++ b/server/www/packages/packages-linux/x64/cffi/_embedding.h @@ -224,7 +224,7 @@ static int _cffi_initialize_python(void) if (f != NULL && f != Py_None) { PyFile_WriteString("\nFrom: " _CFFI_MODULE_NAME - "\ncompiled with cffi version: 1.13.2" + "\ncompiled with cffi version: 1.14.0" "\n_cffi_backend module: ", f); modules = PyImport_GetModuleDict(); mod = PyDict_GetItemString(modules, "_cffi_backend"); diff --git a/server/www/packages/packages-linux/x64/cffi/api.py b/server/www/packages/packages-linux/x64/cffi/api.py index 32fe620..999a8ae 100644 --- a/server/www/packages/packages-linux/x64/cffi/api.py +++ b/server/www/packages/packages-linux/x64/cffi/api.py @@ -141,7 +141,11 @@ class FFI(object): linked to a particular library, just like C headers; in the library we only look for the actual (untyped) symbols. """ - assert isinstance(name, basestring) or name is None + if not (isinstance(name, basestring) or + name is None or + isinstance(name, self.CData)): + raise TypeError("dlopen(name): name must be a file name, None, " + "or an already-opened 'void *' handle") with self._lock: lib, function_cache = _make_ffi_library(self, name, flags) self._function_caches.append(function_cache) @@ -799,9 +803,9 @@ class FFI(object): def _load_backend_lib(backend, name, flags): import os - if name is None: - if sys.platform != "win32": - return backend.load_library(None, flags) + if not isinstance(name, basestring): + if sys.platform != "win32" or name is not None: + return backend.load_library(name, flags) name = "c" # Windows: load_library(None) fails, but this works # on Python 2 (backward compatibility hack only) first_error = None @@ -935,7 +939,7 @@ def _make_ffi_library(ffi, libname, flags): backendlib.close_lib() self.__dict__.clear() # - if libname is not None: + if isinstance(libname, basestring): try: if not isinstance(libname, str): # unicode, on Python 2 libname = libname.encode('utf-8') diff --git a/server/www/packages/packages-linux/x64/cffi/recompiler.py b/server/www/packages/packages-linux/x64/cffi/recompiler.py index d6530e5..d66ff7f 100644 --- a/server/www/packages/packages-linux/x64/cffi/recompiler.py +++ b/server/www/packages/packages-linux/x64/cffi/recompiler.py @@ -560,23 +560,24 @@ class Recompiler: tovar, tp.get_c_name(''), errvalue)) self._prnt(' %s;' % errcode) - def _extra_local_variables(self, tp, localvars): + def _extra_local_variables(self, tp, localvars, freelines): if isinstance(tp, model.PointerType): localvars.add('Py_ssize_t datasize') + localvars.add('struct _cffi_freeme_s *large_args_free = NULL') + freelines.add('if (large_args_free != NULL)' + ' _cffi_free_array_arguments(large_args_free);') def _convert_funcarg_to_c_ptr_or_array(self, tp, fromvar, tovar, errcode): self._prnt(' datasize = _cffi_prepare_pointer_call_argument(') self._prnt(' _cffi_type(%d), %s, (char **)&%s);' % ( self._gettypenum(tp), fromvar, tovar)) self._prnt(' if (datasize != 0) {') - self._prnt(' if (datasize < 0)') - self._prnt(' %s;' % errcode) - self._prnt(' %s = (%s)alloca((size_t)datasize);' % ( + self._prnt(' %s = ((size_t)datasize) <= 640 ? ' + '(%s)alloca((size_t)datasize) : NULL;' % ( tovar, tp.get_c_name(''))) - self._prnt(' memset((void *)%s, 0, (size_t)datasize);' % (tovar,)) - self._prnt(' if (_cffi_convert_array_from_object(' - '(char *)%s, _cffi_type(%d), %s) < 0)' % ( - tovar, self._gettypenum(tp), fromvar)) + self._prnt(' if (_cffi_convert_array_argument(_cffi_type(%d), %s, ' + '(char **)&%s,' % (self._gettypenum(tp), fromvar, tovar)) + self._prnt(' datasize, &large_args_free) < 0)') self._prnt(' %s;' % errcode) self._prnt(' }') @@ -699,9 +700,10 @@ class Recompiler: prnt(' %s;' % arg) # localvars = set() + freelines = set() for type in tp.args: - self._extra_local_variables(type, localvars) - for decl in localvars: + self._extra_local_variables(type, localvars, freelines) + for decl in sorted(localvars): prnt(' %s;' % (decl,)) # if not isinstance(tp.result, model.VoidType): @@ -709,6 +711,7 @@ class Recompiler: context = 'result of %s' % name result_decl = ' %s;' % tp.result.get_c_name(' result', context) prnt(result_decl) + prnt(' PyObject *pyresult;') else: result_decl = None result_code = '' @@ -742,9 +745,14 @@ class Recompiler: if numargs == 0: prnt(' (void)noarg; /* unused */') if result_code: - prnt(' return %s;' % + prnt(' pyresult = %s;' % self._convert_expr_from_c(tp.result, 'result', 'result type')) + for freeline in freelines: + prnt(' ' + freeline) + prnt(' return pyresult;') else: + for freeline in freelines: + prnt(' ' + freeline) prnt(' Py_INCREF(Py_None);') prnt(' return Py_None;') prnt('}') @@ -1216,7 +1224,8 @@ class Recompiler: size_of_result = '(int)sizeof(%s)' % ( tp.result.get_c_name('', context),) prnt('static struct _cffi_externpy_s _cffi_externpy__%s =' % name) - prnt(' { "%s.%s", %s };' % (self.module_name, name, size_of_result)) + prnt(' { "%s.%s", %s, 0, 0 };' % ( + self.module_name, name, size_of_result)) prnt() # arguments = [] diff --git a/server/www/packages/packages-linux/x64/cffi/vengine_cpy.py b/server/www/packages/packages-linux/x64/cffi/vengine_cpy.py index 536f11f..cb344ce 100644 --- a/server/www/packages/packages-linux/x64/cffi/vengine_cpy.py +++ b/server/www/packages/packages-linux/x64/cffi/vengine_cpy.py @@ -275,22 +275,23 @@ class VCPythonEngine(object): tovar, tp.get_c_name(''), errvalue)) self._prnt(' %s;' % errcode) - def _extra_local_variables(self, tp, localvars): + def _extra_local_variables(self, tp, localvars, freelines): if isinstance(tp, model.PointerType): localvars.add('Py_ssize_t datasize') + localvars.add('struct _cffi_freeme_s *large_args_free = NULL') + freelines.add('if (large_args_free != NULL)' + ' _cffi_free_array_arguments(large_args_free);') def _convert_funcarg_to_c_ptr_or_array(self, tp, fromvar, tovar, errcode): self._prnt(' datasize = _cffi_prepare_pointer_call_argument(') self._prnt(' _cffi_type(%d), %s, (char **)&%s);' % ( self._gettypenum(tp), fromvar, tovar)) self._prnt(' if (datasize != 0) {') - self._prnt(' if (datasize < 0)') - self._prnt(' %s;' % errcode) - self._prnt(' %s = alloca((size_t)datasize);' % (tovar,)) - self._prnt(' memset((void *)%s, 0, (size_t)datasize);' % (tovar,)) - self._prnt(' if (_cffi_convert_array_from_object(' - '(char *)%s, _cffi_type(%d), %s) < 0)' % ( - tovar, self._gettypenum(tp), fromvar)) + self._prnt(' %s = ((size_t)datasize) <= 640 ? ' + 'alloca((size_t)datasize) : NULL;' % (tovar,)) + self._prnt(' if (_cffi_convert_array_argument(_cffi_type(%d), %s, ' + '(char **)&%s,' % (self._gettypenum(tp), fromvar, tovar)) + self._prnt(' datasize, &large_args_free) < 0)') self._prnt(' %s;' % errcode) self._prnt(' }') @@ -369,15 +370,17 @@ class VCPythonEngine(object): prnt(' %s;' % type.get_c_name(' x%d' % i, context)) # localvars = set() + freelines = set() for type in tp.args: - self._extra_local_variables(type, localvars) - for decl in localvars: + self._extra_local_variables(type, localvars, freelines) + for decl in sorted(localvars): prnt(' %s;' % (decl,)) # if not isinstance(tp.result, model.VoidType): result_code = 'result = ' context = 'result of %s' % name prnt(' %s;' % tp.result.get_c_name(' result', context)) + prnt(' PyObject *pyresult;') else: result_code = '' # @@ -409,9 +412,14 @@ class VCPythonEngine(object): if numargs == 0: prnt(' (void)noarg; /* unused */') if result_code: - prnt(' return %s;' % + prnt(' pyresult = %s;' % self._convert_expr_from_c(tp.result, 'result', 'result type')) + for freeline in freelines: + prnt(' ' + freeline) + prnt(' return pyresult;') else: + for freeline in freelines: + prnt(' ' + freeline) prnt(' Py_INCREF(Py_None);') prnt(' return Py_None;') prnt('}') @@ -981,6 +989,59 @@ static PyObject *_cffi_setup(PyObject *self, PyObject *args) return PyBool_FromLong(was_alive); } +union _cffi_union_alignment_u { + unsigned char m_char; + unsigned short m_short; + unsigned int m_int; + unsigned long m_long; + unsigned long long m_longlong; + float m_float; + double m_double; + long double m_longdouble; +}; + +struct _cffi_freeme_s { + struct _cffi_freeme_s *next; + union _cffi_union_alignment_u alignment; +}; + +#ifdef __GNUC__ + __attribute__((unused)) +#endif +static int _cffi_convert_array_argument(CTypeDescrObject *ctptr, PyObject *arg, + char **output_data, Py_ssize_t datasize, + struct _cffi_freeme_s **freeme) +{ + char *p; + if (datasize < 0) + return -1; + + p = *output_data; + if (p == NULL) { + struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc( + offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize); + if (fp == NULL) + return -1; + fp->next = *freeme; + *freeme = fp; + p = *output_data = (char *)&fp->alignment; + } + memset((void *)p, 0, (size_t)datasize); + return _cffi_convert_array_from_object(p, ctptr, arg); +} + +#ifdef __GNUC__ + __attribute__((unused)) +#endif +static void _cffi_free_array_arguments(struct _cffi_freeme_s *freeme) +{ + do { + void *p = (void *)freeme; + freeme = freeme->next; + PyObject_Free(p); + } while (freeme != NULL); +} + static int _cffi_init(void) { PyObject *module, *c_api_object = NULL; diff --git a/server/www/packages/packages-linux/x64/cryptography/__about__.py b/server/www/packages/packages-linux/x64/cryptography/__about__.py index 4055e29..218b238 100644 --- a/server/www/packages/packages-linux/x64/cryptography/__about__.py +++ b/server/www/packages/packages-linux/x64/cryptography/__about__.py @@ -14,7 +14,7 @@ __summary__ = ("cryptography is a package which provides cryptographic recipes" " and primitives to Python developers.") __uri__ = "https://github.com/pyca/cryptography" -__version__ = "2.8" +__version__ = "2.9.2" __author__ = "The cryptography developers" __email__ = "cryptography-dev@python.org" diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/_oid.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/_oid.py index 4b08722..f98912f 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/_oid.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/_oid.py @@ -19,11 +19,16 @@ class ObjectIdentifier(object): # range 0..39. All nodes must be integers. for node in nodes: try: - intnodes.append(int(node, 0)) + node_value = int(node, 10) except ValueError: raise ValueError( "Malformed OID: %s (non-integer nodes)" % ( self._dotted_string)) + if node_value < 0: + raise ValueError( + "Malformed OID: %s (negative-integer nodes)" % ( + self._dotted_string)) + intnodes.append(node_value) if len(nodes) < 2: raise ValueError( diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/backend.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/backend.py index 7e9fa20..96fa9ff 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/backend.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/backend.py @@ -94,6 +94,11 @@ from cryptography.x509 import ocsp _MemoryBIO = collections.namedtuple("_MemoryBIO", ["bio", "char_ptr"]) +# Not actually supported, just used as a marker for some serialization tests. +class _RC2(object): + pass + + @utils.register_interface(CipherBackend) @utils.register_interface(CMACBackend) @utils.register_interface(DERSerializationBackend) @@ -292,6 +297,10 @@ class Backend(object): type(None), GetCipherByName("rc4") ) + # We don't actually support RC2, this is just used by some tests. + self.register_cipher_adapter( + _RC2, type(None), GetCipherByName("rc2") + ) self.register_cipher_adapter( ChaCha20, type(None), diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/decode_asn1.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/decode_asn1.py index 47c6c65..7639e68 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/decode_asn1.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/decode_asn1.py @@ -64,7 +64,7 @@ def _decode_x509_name(backend, x509_name): attribute = _decode_x509_name_entry(backend, entry) set_id = backend._lib.Cryptography_X509_NAME_ENTRY_set(entry) if set_id != prev_set_id: - attributes.append(set([attribute])) + attributes.append({attribute}) else: # is in the same RDN a previous entry attributes[-1].add(attribute) @@ -857,6 +857,10 @@ _OCSP_BASICRESP_EXTENSION_HANDLERS = { OCSPExtensionOID.NONCE: _decode_nonce, } +# All revoked extensions are valid single response extensions, see: +# https://tools.ietf.org/html/rfc6960#section-4.4.5 +_OCSP_SINGLERESP_EXTENSION_HANDLERS = _REVOKED_EXTENSION_HANDLERS.copy() + _CERTIFICATE_EXTENSION_PARSER_NO_SCT = _X509ExtensionParser( ext_count=lambda backend, x: backend._lib.X509_get_ext_count(x), get_ext=lambda backend, x, i: backend._lib.X509_get_ext(x, i), @@ -898,3 +902,9 @@ _OCSP_BASICRESP_EXT_PARSER = _X509ExtensionParser( get_ext=lambda backend, x, i: backend._lib.OCSP_BASICRESP_get_ext(x, i), handlers=_OCSP_BASICRESP_EXTENSION_HANDLERS, ) + +_OCSP_SINGLERESP_EXT_PARSER = _X509ExtensionParser( + ext_count=lambda backend, x: backend._lib.OCSP_SINGLERESP_get_ext_count(x), + get_ext=lambda backend, x, i: backend._lib.OCSP_SINGLERESP_get_ext(x, i), + handlers=_OCSP_SINGLERESP_EXTENSION_HANDLERS, +) diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/ocsp.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/ocsp.py index 7420f65..e42565e 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/ocsp.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/ocsp.py @@ -10,7 +10,8 @@ from cryptography import utils, x509 from cryptography.exceptions import UnsupportedAlgorithm from cryptography.hazmat.backends.openssl.decode_asn1 import ( _CRL_ENTRY_REASON_CODE_TO_ENUM, _OCSP_BASICRESP_EXT_PARSER, - _OCSP_REQ_EXT_PARSER, _asn1_integer_to_int, + _OCSP_REQ_EXT_PARSER, _OCSP_SINGLERESP_EXT_PARSER, + _asn1_integer_to_int, _asn1_string_to_bytes, _decode_x509_name, _obj2txt, _parse_asn1_generalized_time, ) @@ -319,6 +320,13 @@ class _OCSPResponse(object): def extensions(self): return _OCSP_BASICRESP_EXT_PARSER.parse(self._backend, self._basic) + @utils.cached_property + @_requires_successful_response + def single_extensions(self): + return _OCSP_SINGLERESP_EXT_PARSER.parse( + self._backend, self._single + ) + def public_bytes(self, encoding): if encoding is not serialization.Encoding.DER: raise ValueError( diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/x25519.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/x25519.py index 9aab25b..8708834 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/x25519.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/backends/openssl/x25519.py @@ -4,8 +4,6 @@ from __future__ import absolute_import, division, print_function -import warnings - from cryptography import utils from cryptography.hazmat.backends.openssl.utils import _evp_pkey_derive from cryptography.hazmat.primitives import serialization @@ -23,19 +21,7 @@ class _X25519PublicKey(object): self._backend = backend self._evp_pkey = evp_pkey - def public_bytes(self, encoding=None, format=None): - if encoding is None or format is None: - if encoding is not None or format is not None: - raise ValueError("Both encoding and format are required") - else: - warnings.warn( - "public_bytes now requires encoding and format arguments. " - "Support for calling without arguments will be removed in " - "cryptography 2.7", - utils.DeprecatedIn25, - ) - encoding = serialization.Encoding.Raw - format = serialization.PublicFormat.Raw + def public_bytes(self, encoding, format): if ( encoding is serialization.Encoding.Raw or format is serialization.PublicFormat.Raw diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/_constant_time.abi3.so b/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/_constant_time.abi3.so index 4a658ac917ff310457456dbc7b23312316136e76..5c2fee49fbf53b7b604844da143bcbbbdbe35487 100755 GIT binary patch literal 33208 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 Ydj51fEsaDnetD1Lr~47+BMmhE8&70uy#N3J delta 11241 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 S)Ig=Y9%$-S2C7B;)BXnqa!|bh diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/_openssl.abi3.so b/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/_openssl.abi3.so index 46bac0b0370c5e8ae327c9090d2ed01263f35723..f8af81dd563974331c81a4b3d9087af7606e9ab2 100755 GIT binary patch literal 7323568 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⪚3ci! zho52hAKp+ufL~|#A0B8vgb%cy2<~Y;F?_7~KD@1d0-tJr1P?Wz!o3B|^UB~=t;hLZ ze*f#5cj3O~J$PI56?nt$Km50L|KVM`|L~srEqI`Q2p?%ag10pv!>5|>!$Zv{@bZE> z|M0HnQ+QqT89dg!)6DOGTk|e_pm`78(|iRUYd?MXNb`00!0tbMruh~;(R>JhPR}=j zk2N2|E3VnkK0LAe4{vCG1W(mZ;T_Fq@TumVo$~wN*SrfK+x>@6G+%+In)l)ELgs$! z@Tukl_`mJ@58S!Se7=P6s`?S!(cdeK;eqD+@RIroJktCK?rA=S4>g~`OInZf{rvua zHr3}ZysEwjUqka1xUYF1o@zaHcti66UHuk3(0mC0q2?oaTk|nI)O??=`2_APtoI*y zSMw?SV)Zk4ta)eW{QeI$@4^R~_uymASKx`}eR!t%I()4806xzP<~+3Ep8b2W@TD~$ z!Bh2P_?nvU!>j5i@QU4kxUcyX-cUb-PqiLrm;CNvaRpW{9HeODJgt(*0f;ek3H{LW*{eO2J4t zUGG;Fcvtf^cqsSb|Iwd=*Wsld%+E`k@U}Vuys7(Y!Q&gu>#G9~)Cu7yUas>4_utg{ zfj88N;rnSleR#5>&JWyICxM6RjNtytrZa)3Tbk#X!p~MGgC}1%of&+rjO}DHCbOO%e5!qp;S0TF&S4)uSkkO#2#@tSn824-X9V|_Fr5i}piT-uU$4^)KK+h) zozCEiJwHMI{8Y6b7anT93~$Rl_|Gph`%{6(WAi$#!2@-C_+Rwr@^$#Qr9bz9`|1Sn zhtz4o2R}5O4!o*P2)|XG2;SYxbb9cHIx&1N{XL65y!s{68Nw5Le&C<8zqbJIZf80Z z_}HEwx_-|vgLmK6`GI@7FXspO^OLIM!Ur?cDZ@+Zc<`&$slcmK)2YE7b$s~3`g8C) zJju-Ks|lZOp|5}7UyIFoZo#YPoAca(r|N|8weuJJET2BDqM&GBj;K>bUJsr5CP6)rMXZ9z8rx%z` z4?f-8+*b^*>%RJMr(^DG2v5~X;Hzk#NAS`^djEk}wa+QMtWE|W|K4csGs)ak>6YfWbechpJXzB(g#_gAJffloIz`SD$KVmvf_&}Wi z{^g&U_l*|3aj?0s4m{E8D}0t@4<2hhG5j0)eV#tN`U$h1A-tyO8GQV0)0x2&x%0#P`MF8=<-*5bH}_SB57hDC z6Fv6|y!0ot&oy|gjt_s$o*#Ji&pJQwt~vqyTW9F~2VR|HIvseZP6)qAod`ZXPUi>S zRwstvr%oSUI^J}K@Iajeey%zr_+YN-OyCW5QutNsWbpAZrZa>4>Nxx4&(G=le$a(C z0-YatRUHq0nK~7Cdk@p8!98_+_%Z6#;nm$trwK2q6TnZ^_ZKaA_#gfJnZCYx-G%U$ zel8lp@T=|jU-0xAeg6ed)-wGBKD58L3GYtz^B;Js`%2+=>-X3*c;gP8 zANn`VdYo4N{QT}z^E!3mrFBfF4EI+v9S@#pe=6|tf6eo%!P~koAO5sDb$CP1r3v@t z0sIYne&Eh8%=7BN2YOy1e0lr+11}wH_NNE;wa+np3GH(qURuR;hVZKPIf2jfvUy%3 zxc3Qt{|*oA`GJ2{oeb`1KWFgix;j5U%AcQA)N$eMzFAKh9&4XH_>b)S54^OC-hbd# z?XwSGM1Rky4j=4j_PGi7w9f&21Kn2(-kwM22i~ynKk)668JUhjNpOJ?F8PCr||pL$>83VW<4`_ThGhc zFMob^vfqEft0SEsxTAgc;6K(rSK!renobQqt(x~kAO4)~s}3*CZ|vp6Yoy`{&P3S^ML{g9Xg~l;NK4%Y(0~P6eKX&Q|)sI-%an&5xi74ogRFweU9OQ?yC=PYafR2 zK%T(c>WtvQC1!sna9{hA!k5y|B{F#Fd7U5lSo`A~kUu}$*v~I`dsEXX!xQa~2cK)t z4}5yDxvv_$s{8Wc+v{~vhflv@*3*O!w4MNdy4KTz4;D1*>A*{RU4-yU)QRApo^KCc zlE?6y)#=0Io>|Wj?rDD#cwL_tBY5cnvp*AfV&8w@8`}3Dcw;r4A9!rve-6x_pO!i< zyt{_Z58Scezr*jd=LhaAr1L}9^YY<$|J;0kQHM9yTlC}K*J{G2>ICp-?D>I@*Ea8m z9e5%S;qTb<120`@?yE=FbC2O0+Rra|`*nSO!DHQ50$ogetXo*(#%_WZyH ztLpr~yY~DXls`X<==bzoc(RA+>@v9W7Nsu{wZcXGx)S-UUyDAe|{F!pQpI+>4#>2%J8oC*@NGyeXhW}Uo)K= zysdrq;b++M15eJ=`GKdpuK@mrUSBPEV||?;c%b!!@XNHG2tGK~tfvPbYdtaiZ`z+e ze7vGr&k)|wdJ_1p_WZ!(Ma+68@Kon8h5y!`A9$+Q;|xBQI|t{_&y(u7aPM@po-#bq z{&?_*^?I+sr%&npz(buwAD-&D*WrV8O{WR>wa+d1ORt#E!8ZI|c^`hrV`hE^|I%9e zdq9We_ic4~55Ac^gMUX}o0IQsBah$*zrM=HpVt%kj+(C=n(yo?@4z3DkKlXB%ZKGV zKa#iL2g`@>xpMdLeCGst6CTO?@H6By_&M_W5&8bP@*cb=&)}EHYn^=Ou$#PP4M56XM+!#_0r41TZXYscg}TmQz)NAL~g6Zq^tGhaD2-+4^^4*V(k2>xez z`M7-NzNO6Ty#@cP=7;eAle=NQ^SZnV|EIhUpUG$N|H|t>&i5Bw+pMz(|BO6?e^FjL zKHsUxBlv3a3H+P#$_e?-`tlBZQ~3zqzR5ht@`?G*5qBDI!B0_V2%juv_Q5?V-`QI8 zP57Q=Gv9}=tIiDWe%{R2f0FN?__%rB=)u>MXYeoRIo3|jceY;7^dtB}51al3-qd|n zqI_p}c?Z7E&89Pg@1^}u8@!4VdV0RU{mpuxhu`ocb6w|*{QOPwDm?y+IS&nZeP7cF;P&gQ4*XEPUb=Am z`s%~&>nnk;tJl#4ZeL$h_!^pb&&=QNx>}D1-%9g7e80!d`&9#O*B`*``rB~3{t#~0 z--X-t$8fv;0o<-XfiJzEd0rFvit;IZExFsx@7wxv559%G2H#oUfFCJu!Hv7@B zJz-vVCHQGwb6+03bh}wk1-`A;Q-$xfoay`U#=vyy@E@qtfLBg3>j~f`bz1NP)oH_< z`aP%+KEA=MCxRcVP7L>kX1))ftN8)^WO)MjZ#A6}{9MhC;jui0ceVZuJ{g()ch1kB zhlb`|_^;IW;KB7~ofY^A%dPhD>!k`mP0!1RJL=ToZ-?gV^9FqG+trWz0et)`vz``w zsP%{N_%~)gg8yFgUHFso7+$^Gbo%hWYJLEJO`gC9x0ucd{+{N?@c9lj=Rbv)bYB_# z)0&^cmz6s|%b$l(`{}}0(tHWNmfV9+?=bgOfp4aHA70gU>+tP0AHaRRAGY9oXg-8D z^nM<}x7R**;RmS`!yUbU_TfipegHp7p1|W@>bb+u)%+NKsXT*wZF3%G@b^wM?)LJ} zx32jzyd$r`V|fk!NxiP?@Gr}o@Kxn4cun4c?V`cKXM_Th(Veh5ENK7yYm zpTK`E&*0a}XYfSsUXb7ar{rb$|H&)xcjYzsd_OVwTZex}-h|(Iu9qr?=J7d_mL0b9r*|z$tUohJcC~?pTTdJyBFs7{~>u9KDOr{{=DXE@EuoJ?c>j* zI{XdIH{t)0x8SdwWu8k1zU0ZqBlxQF9{ii~K73R85Wcf~1V30lfgdl=;AhEa@GIr+ zMfv@|TV94gBCo(__WcL`g68Y+_vKCal9A3oydv+wHu~^ZfpgHD89ms`(21BY6$J z_$g*Rb@)p1CVXRg3%-ZE1D|T05qys3d+^iceR%m0v(6#>TFsB(_sb{n=j0juZTSqo z(5dFS?j`yCUq)Vre?wk@Zy~S2e;}{J50f|H$IDyri{%~o&GHETkh}+fN#2J$r)mG; zOUp;_r}X|dfv>9h48ERx2H!^RUYg(k{pDr&(eeuXLU|2-jl2&3oxBNuO5TFMDeu4+ zJl*VD1YcI(gRdd)!@naR!uOJo;77HTd6 ze^B%8W%>PoPF{uw>QvzW)O-!@o@w^24qsm0gm18^nQy_ruK5mpQ+Wj6P2PhaEbqgA zDj&ixk&oav%O~*r`w*0jJyV4RbGd0CU3$o)YlI! z_->l-zz>#3@Z;q@_*nPVho7VQA^b}D2tHM30>4x98GIz4!C#cSSLFBqO?eq!nxp-P zSLHSM0%z&`!@Xa*egYPWw!w-}X;gR|y_;H$_z|WOu@N48V zcp`VN%@-qBIc?JHqyaspA*8ao4C~v~6@)mq^c?Z6iJc7@a_u!|>`|zH82p`z} zhfm}a_&}WuK9bMi&Y@<1+^h2Y|E%WA@VDd@ctxEW{FCQs|KSbIH{l(53m(fm@I)TL zzozT<;F;$8@QpM-gzq9B!8`H^ymXkk-wa-r&)^NYdv$*Q+wwB}99_2pzfoR;KPIok zd+ImgLwO7ScXc}O`OY=>8^Kd`dhq2n--p-aL-=;`5qux{1b(DEgS&^Db@Vzyk!H<&9;AhI+Yx4U)QNIkI$t!TLWA>p2ugmN3D|Fo^ z{7!ib{wH|{{&#r<|4`n8FZ?sJ&OUq@`4Ik1`3SzXd;;G?p26qHXYdo`?l1HEf3~~~ zzfN9(-z~4fACuSNJ8r1+4{z&vwcszQ(}DLiAHn~v`5t_Up7tNUf_wKpoe_NNOHF42-$L^ld{6ldeu&(?F2Bzw$;3p`}pSsALw+{Tv@(8}Bya(S*-iHVBA$+cU1V3FqfxAbVb!PCY zd*$E1V2wcfnP7r;J=a2;P%|QH{|!fspnOO+xZGS)O-!zm)GHAc@sX9x8U}=9k_Rt zd5#g>&iCMT&G+GtYJZ0Cw&q9ho_qpNhsFrgb*qrMc$1E%;jMbl}^_Bly1Z9z2rw;b+T-@K`>A-zA^G|0vJkf0fVR@5tR7 z^ZP&lCE9=ZGV%(1EqM*Txx5Y!P#~4*aXSuL!=Tya(Sx-iPlg zAHqBG5&SIq1b&G;gI_D3!Owrn{JySxbHV<@?@^}$kL>=#pVxdH{(b%X|4sONns32N zv3Wgq;48@^_{Q=cysvfk;S>1~zO_0d_|EbP{1ABt-{=o!pJ(v7ns;x>@BiuYGJKCm zO{W6?^u@+&@ZI(Ao7Len-ER|KK3ebp^naLs2Y!Xt8Nq#Zdhnz5d;5L(qx%0Z4B=1c zzDDr9)tSK8I?k*!ga1kYj?fJLiaPGC`Tf7k?mxVx`>Mbrc@6%wI(7Izqn4u4VJguf?m!C(8M&Oh9)CxZ9w`G+rXxp}^Q_~-v*`a}3rM(hEAUx? zySL}}-}cJ|UV(3Wky(EYzKYgghp#Pf!ne@>pRons>~ift{5$GI@TR;6Uq$=ehwrQT zA>8i6sK6)ipQw|;&zH~OSIgaDe*f>1m*JP|eXIgM+3r95F?H(j=j2WJKjkg>Nawi& zZ|d)CG7^JVzK z@(TPUc@2KCybgax|ISqtzJfmQTJR0!9r*9niQwt6=JnEphdMuf_)zN{!k>_j;F){^ zpZ7}h+%x#H@)>*;xqD}R|689hoie;<&p-T4{r~=IaQphL!#CD-oA7PqE%*}pKCuJe zOY;%@Xn7BQro0coMm~h!EFZxil272NJcE~xG5a}#*W~V9`Tc)Ooig0L%5*AlyU#WF za+I$KOOjT z@(6C%(<|^kyr#|&KGb?f@EtTif$uNR;Hf$@_{o}g@6PYPdz`u7GQ29Uz%Nm!25)G- z4sXkw@LSbs!5^1*;5~IBcp~q?GkKq`{t#}T;|N{~&HhZ_HF*Y~uW#mO@MYxgJ^B5& z*Db@F>Q~@vs8fT7nygZaWkB z&FW-uJ3oVaKQ_FUne^lOszbx;=|05s5zwk@#KYSJW1iqO(gO7AyGx*+`cYmAT|Bk#2KTlqP z59BrY!}2=(Re2NsiEGXMw&2UkJMh)y5qzrq?ZLmR`96Ff`4B!=K7yYmpTO-o$>7&& zeg+@O-TU(U|AM>>|F66PU;H|=Z#DQ=@R9m8_>#Xe`%s6kAaBCIEpNfM zmv`U?%Om(n@*X_XI{WYoG(Uv9Cz|z-;1&4*Gd@P^A|0Z|u&+mUj{W82QufRW0 zrv_i*dhI{Fr%n^TlIC0Rq2@dA4K*LZzc25>=g9l;ljTGB&*dZdo$?9%QF#Wp=X?fF zHSa!<-~WHf%kWR#VD_^DpJ;z-@ULmU3%~6O^YgJ7{@gRB--ll*AHeUG58FE=#*PDm5}X>|hlH?A`4Y{7R`zYYJ7 z?zaP9R{aqEs^%m3e(HDO&uD%C4_-9?-f03)_1|Oo8GUnKGr0H2;^yBC8|BZ5^OF8O zRrnfOPaE!Qz6;+#^JDmS^3sF(>+UOWz&r9T{3o^#KgaeT%J;9ZefSNw55L>?;g8t< z!}9vkqb?fT&x$;a>qwazI#)Hy6YmcQ;kT4xoW*mDlw{u=Xo3E|Gy zcK!JE(uJR+ege1iWB5gycgFd3`s$b9muudK+xZ6kmzodZc0FDAxpw_XV?FD z!TRA>*!9Ez|N7xqYQ7EkUe>?+4Zq+Q=6Ma^vF69{d(}_j!+G`Za6Xa0ukL%s%kZCl z&Uh1^zPH53=cEsx%BxT2`)4j=IyHDt?!*1fmo)$W6+GU|cmrPA(s&b|G>ixE=_bZo z@Ni?}ZFu4v@4(}YjEC@n<|BAl^IiD3ZaO`9TlX8&)$hXx+J^z$(R~f!rLE0%NAOtv zF?|O!?>?1(z60G?2_DKDaQpvTX~G9O4*}eshZfwPhc?`vhYsAHhY)VhLje{UuaqL{xE=hnVBEMKd1RAJk-4N$NV}y{dWoe`vuJBbq${Uz?}2(Gx^S$SDW|Y z3H(v5Cxur}G@T5d9&daKpB`g;29HlR?mU}cPZAn;;nm}em*DNAjhEq`<~?{xUV%IE zD!ls>)33p&#~SzH>5<0ka8L6Mc&Pnp!l$}!01xJxehc1^x8dGVX1)Wjsvp8jnxDd* zSIxO~p36TkPybzl+jCWe2a#D%8y>44()Hh6xa|+&wm*e?f7kk-$NKf(CAjU^;I`j} zd#~wz0Dit+Ujz82cbM1R5Psno&HF|IA3tUGZ3GXVF+PSjG(UkS&zboY?muZfqfd-a z;lW>w&)`*coWJDvdGNTIcj04s37-DZ%$MPw`X0P{znQPlpDyF`}&fye(uFhfUuleVaYQ73zS^xfg10Mdv zobxvPyPEI9o!8C$0Di9K$8hHjGe3o2qxn*rUw^3iD*RT>H{q$~TX6qPy?)`Ld;rhX zpTM1|>16O&UV0(F{#0Ite{p&9KH$T5lQ-ad$piSl@;1CJ58;Q)yYQpsG5mP>03OK` z_!;ss{9JhozfeAf$8zVz{C-|7FTt;qd+?j&9e8ql`Qz``oR{)_XO8g_ye%)oO9z?x z4*dW3UoPmw+lQD=8J--dK3(gd!Tq+Gcm9^YZew3{;C7ue_~0mY{_lTx8t|PH^Lf{V zM;DlL9>A+VHvJZSyua}_Jdk(b>7iymga=0$kKkkNLl>SNX6AcvU-L1%`y(^ohmYlB zxT8)659CvLN$$Rq-~aSrbKMd=l$YUMou3+fe5~pC@a|mWb$DCnya6w1|J(5I>O6Gd zvCcyXx91^(+w;(c+w;(a+w%~^?Rn_K?Rgl$?Rgl&t9mX8+@6OK+@6Oi+@1$F%RgUx z9!hX~9x8Bq9;$Fp=b;7;dmaL~Jr6CoJr8ZTJr7-YTj!w%zfh%!|i#PzyrPBQ@A}38Qh+S(yRIBZqGvnZqGv%K0eyKPCInH zu0yzejuG5G$1dDH#{qnAJ;x#ZaXrTbZlB`_ZlB{AZlB`>Zl7Zcx6d(y+vhli+vhlg z+vn)~J^x(nb9CYMIacBJIo9F!IX2+-Iriv!jxpRm$3EOX#{t|v#|gas`K3Po`X`0Q zOB&DMq1=5fzdz&8nE4t!SlYM`xBWWY_FHh<@4@Z*W4P`2;kG}5+x`r0*YErzf4{cx z!fn3-xBVvEu0Md=ehY5<5#08NaJ&8lZu=v+?PqY?FTbAO2k+D7`Fe0?apN7hoe$x5 zege1iDcsK2-uU0^@!@v92ectPVsxL-1! zz-=dk+fI49)5ouG*L;`b*!6gD+o{8Crvta^3E{TWhuh8sZr78-ZO8p*e*LyngWL7^ zaNB9YZKnsXI%c0^_+SC!Be?%}^Z7f2cjqzl&RhBQ+fD^;J59JI zx19`bJLR|Y>-Xj}_vOLc@0)$7z#VxV9>1-xTj1^aO+Tco6Txl254ZgZ+^#=`+x2H~ z+jsw!-v`^T!R`8ey4?r3?YH2z--Fxr$8fv;KHT<4aND23?fRW}^7m`|F5LDjaNBRf z2d|mu9>9~gj1S@Q>&6qfoiD$eU#IPR@T&S9xb25+isAKZJYBF7@#z z)&y?*DLmEtaP9s4dTif^`#M)Wxb4Sqd){Vn+jl<5U)Rnz;kF;Z?Rgu*Z9jqA`SOSP z>)O5tx96<`xBU=q=O=L6PvQ2w)jrCv$M$`=o$tYIKZe`$HiO%~^Pl{6?R*n%`vKgZ z&mr9Q6SzH}<^SfdYx^GDp3e^4_CvU@^ErXrehRnet>%0`_w}Cb`*1togWG-#x94pJ zw|(am`Rm&GCfxP|xIJ$}xa}u!J71nBe_h-6;P$+A;I<#a?fe98`zhR>x7xh<_1L}- zxAQ%??ZI(@izwC)S;9A>-)Z^(Oa+mGS4--p}& z2yXi`xa~U&=I__`UAXO6;I`j{PY*En8^GI#8Xv;#d;+)gWjDW0JMY2md309&-GjCN^s|j8@WENe z%Zuc%+ts`W_cY&u+xZagpK1CNxSdbogEP#0ZPEX|9v@!Sd=GB>F??{k>CfPH-uYzy zy6I_Vz6rPU0o?BA5N_uaxZTh4V)^UZc@J*)vjeyDA>8ig1a9Y3xZTg%r~dbPe7N1u z9^Ce0xZTeg+|E0t{B`YqHsN+YfZP2X!tHzlxBFTCbpE<_-h?WR+Q+fD~=J0aY;&2;*3+nK;^CxusUF&%fw{Q7OD2Dcp_ z9^Ys>Ex7IU;Gv#x47d9;g4@mvZadCr^Xs?!Q-Rw~6K*>J-0n|Ax910LI|V`aC_Y*++H_;+vnSX+v|pKd))|buRDaNkC^>T-~)O2^Z9+S^B&yJ zci`PrALxE#cqs3~1NjW@%bhRg*IAOg z@Ts0x6F!y)@KD}@59ASis{I+jPYw0=8sHmWV}8$b46hzy&dH2^u<^Q=zu&360r%xS zc%XituK5vse3-fJ7~VeI_yj&Z)c6b@%d5-f*I$y?;N3Z<6T(xiKY|BZ=LlZ9Uh9N+ zuQlFY9_x{J;NCS_4?MZbcm$uSGlI8oF!K|-*4g<|em#jigs196@ac`FKZ1Af(RJbJ z9mYFf&R=(Mm+=tp-DW(3SMM~Qz_T08IUm8_kZ16jdc?JFxb!zbKH1EULk~iR|s}sQ6ns341S=anKAszU6>O}Ajeq-*d3tvzD82)p0 z2Jj6uKP>PO{3>-O@b9XV!oMe#+_0k~$&$1$DacH8kIYe@otnzpTy>zSK$Pc_r|R-ZA$(hQFdt3g24S%?f-5 ze@z{?l7Eidt5Yg)5B|0~Rrv1e)C#-~|4^MKysb`9;BEN)>zn-y;U}sS6?hN6m^yv< zW$FwHJb`~soiY3-btVO#!98_m@CVd!R>(g`>m~RK>Ui)+)TtDB4ZfN>b@;RDG~h4E z1NhqNwBfI5z5{<-9>Kq@P7l7;J?4EThJT>W0KTz034GpLOlJgNL_UFUu1*I3jOM5C zrRAj+^Uv`s@-loCc?G_;u3LkDOY=V5mk038Qm&#l4AF9)V z-=g^tp2%bPBl14{&+;LBKV5eO|3A%-;cv)O_#Abn@OL#oga21vUOE4~+*{4L@(R2P z@94Tdd@*(E1>S^*>a^frP^VqsA^fN6bm1$j(<|^k{A_iG@Mq66|Nco*;A8kj>ZI^P z)X55b2ES4r_v`uRRnvWy3fzPLN}Vcvb9HJ3UWebNP7}VfIzfTA;rFN$!Vgj>D)1hB zq)s1xx;g{+`SJw*xH@C_Et;ReCp(+3e=@o{Gx*)=IIHBJ8@`yl1OL3d2mh)(hOaJ9;78o4&v*EL^!@t;o@pO4_`K_x&xOx7@OE8d zD|M#uM>Ic!|55I)mVdrGs#Au)qInPguDlB0T^%33#LztVI(!*<3;tDkyTC(uOV{nf zkNLp7PJ8f`)$haiRc8p_Lh}iHJNX!XfI2CBFU@E0nLgKM@U}YcH}cQxD0NEk@-F6n zJ@_1Ts_>txQ-jykslyLfrwRX=Isv>dZ^MsNCxqXt`3U~7yazv8oj&||%@5%Jlqc}x z)EUD+d51Z-6L?emlfjQyX9oYWI?n3(=eUx*1V2d~5B?3!SKw>O>u_J*fNv&m!?%`q z;5*2B@V(_Rd>8oueunNVf&W1BBly1Z3H)qzGWgf@=L=K#;p&vu$nXC#@-jS<*WjNx z(!9QW_&J(yz|Yq@1NhH1--5^T4*UXjB6wf(-2#u{7ppUX->A+Ieye;0zf_$G`~l6U z@Qz+DQ}{LNIBVvg%X8|u@K@wz_;u=3;CH`hem-9A=st z(tJM~7I+tayE-v^ruFpU^XTjRA^c8tM({;7KZbu+K81Vo8GJ=~`J4IYxQ5(=uP^uE zb$PwOoACQ|UoH4<>a^ke$V2!e>U80AG~a_CEg!-c)%QmU{3Okf;ZN$iDct^hl^Ogj zb!PC1I_|gf`~NG=m*AJmJ@{YMX~M73d;q^)-iE)dP6!`qK7xBA?QAHY-j z7@o-|@Tq(TpUItCem|YN^mQ!Ul{es@ln3y)bYE@wvYPL}SCvQbkJRbGH`jbz-~+hh zo6ofbzO_1|0-wMaP$z?Lug(;{yWCkTzt5jkrvyJn^JRD>ufUg7rv|@T^FI70c>}(T zIsyD1&9~r>$vg0`s1w0o(0muZ@gwHE#qh7IGl0LL&Jf-*w1nJ zx7Bgh&OgU_er?w8!WWg7;hU>dfv=$XDtuMB58qCm27D{cH{qG?s|DXxoeq3Ebwc<~ z@-BQIbz=D8n(xDplMmr-bw=Qv!(Xuek9b@-j?G~tOlL4mj7 z_p1}apHe3(@E&}uP9Of9I)egF;LoZvhQFlFq`))y|EV*Bzpjq6Uj8{+FTww*jtBop zol1e%;2)|}hcA4$d7p0-cmSV&1M_-m!4f4Zejset|dO>#GyMzo$+M{sVajzNtD9 z{BX^8;U~&t_}1zS;FoEB2)|A~f!{7q;lGtn;XCTO&bRZ=>yMgu;eV5t;k&C-fxoZ$ zDtsaRo{tZ2sndWjtNA8;C3y>eusR+12AU7yTgbccqtuDvKh%65zP)@1KT(|#{A+&l6 zpYj^~BY7QuuddsKe=;$jj{$rMc^m#)bwc>pG#|mgF7LtbSEmnOUGoEYO`gCXQfCaG zEookllLF7+V|8ZmjdWdS!~FBIUV=~5@!*@QQ-Ob1UW2FV)Zsg7zER)-{8e?@@IBS( z6nF%GTb&;KAa&vbAHY9SCxOpZXH?)5_<|dnuhTMkq|UU!osII(@zd&*;ODASF7OKc z3+mM1m#O0ycmw_wbprVH>a+^H17B602!4+`-2#u{YpXMWkJT9#_z1pZAoe zg*Vi3HqJlCroKOQ3%m^9S)B^JqfWKJefSU6X~28xGz+{1KUkd(e5g)X;9dC9>csGO zw9owlAHq*oX9Qp9Uh{b|F7On7wmMVzvg*tV+}$Mqe1EP^8U9UmyaKPn`|9}cE!3$O zcoTlJIxYBa>a+_ygx{@B7k;=py#nvUA5>=uKU*qQz`Ho{9EeO;g_h>DDVKjp*n5& zUFviSJc4hfP7glO`*U3219(%N1pc(vGb->2d{1>U_}l7C3*4#apW}h*l;DfqXI>ZO z0Q1V!LL$h z0toUEm>nS#`Sbm(=MMcptukIz#w}>Ldj|hOePc3Sazp=KU}$ z@EQEu>bP6xpX1lmDHXT}-$I=#d@Xfq1zv~mpiUFMtvW%0x8Z?0A$(tTq5|*1_fw}2 zpR3NGz!Ui4>Wty%sxv9@4E|$vX7KXv=Jn!yC;uF+m*A(VCE8Y?XhG zkE&CG->Ug?fmh&vRHp{NR~^5=8}R4V3E;n1r&Zt`_{-`<@IR>2E$|rrnmPmc)9MTh zd<1_>oeBIob$_x@c*dOFYqCJX>~^M`R_NcuW^B=@Gq$|g@0b1S%JIX%|G9j)G5PP zRmUsvDtvWyeE7!d)C;@`Uq_u5d?$6<1s=jTQl|^wTb*8k_u*TrGlaL*NeX-n-%gzr z{u6bw0-wQmR>y7RpX0^qlnUH~@2O4|{tI<#1zv~mr%n@|s1p=;8$L&!5dLR%q5|*1 z=c?0(zp2ikz!Ufh>WtwFJz!p^lLF7+r>Zl9FR6~RP5wDrFTu}I$Ad4YPNl$W@Qc)` z!>j5v;Ool+_!a83;ah3GQ{WN&T6KEx@2e9R_yB&hItlzo>Wm6}0>4Y041Tye(*k$4 z%|FNc)G5J#tWLSWEAWTaslm@y$1m^({7H2Jcwe1Xfp_4~suRKQR;OFwG5jTU2Ji>f z8Nw&>5&SiECh%7^pTggfPvLK?<7}6Ij`RH9yxv{-qVh8Q19d9!9rSzMRrs!QA3pD< z=If{i{Byc)v%p*MMbzoQS5hY|@Gkr_>csF3)#(@b5dH;qM)0OO;{s3NUs7iZKS-Tf zfxFx1pYKZQl;J0-;}v)nzPdU-{Csul1>S_OqfQHcojUCT58)fB(}h2vPOrfG@GaFD z!e3A)Dey6TJ9Sd{d+KBbK7;S9j=MwtIev0vUZ)E9FIJ}xze=4(fd_PT+VK0-=@fVbzh0dlJXI$y@B#dGbrSeH>Wm6}0#DS* z;H3x6>uXxz&iC@q@j-P;@UN&-F7OKc33Y1lnmT@gH{j2z6Tml7r&Zt`_)F?U@TNN5 z0*~RZsWX7L)fpD}2>!M@6Zo;}qy;{Of1r-j%sWm9Kg|DQ}6u!tq=5;zN zaCfKt^Ict?GTc+gEAT3O9d&&88tT*wyb0e(off>VPP@QE_?GH);k&BSEAT#iJ9UQe z{nbedd<@@NofLkQI$43w;Crg$en0;l&s3*W;2wNGb*k`7)TtGC9X>~$Cj2IKf&y>D z=c*IJA5bSM@E-gGb^7pU)fp6c0zXxqG5nwEObR@MpQFwUzSzU&b?WS#e~#8m@Qc*( z;LE8~DexNn3U%u6HPmSocmTgvogTcdPF&yv_|57h@Ez3|75D^xmpU2z5Ot;n?(CA^ z|NGP_!B11CT;LV>!|K%FSF7U}cmw{VIsyFG>a+^H1AkVX2>z5h-2#u{FR3$tzo5>r zz(?@c)S19vS0^p-Dg149oL%$JaX$TA#VznM`~!6=@K4#F+Z4DDpSP}`+rXDqr&-`F z_#*0b;H#++n0|P5AoiwBS!_z72m?9>ODYVE&!b zT7lQ$hpN+rZ>RMK@LlC?_%Z5)@bfP)`y3T`5B?K%`tX*nJ1Fo3eu_F{_+jcy;8Xp6 zNCrPsof-T@b({dt@kTvI_*v?B@JO8s{4{wDezrPwcvtfc_<8aGey%!g_%Yuwf3K|r zzfheB{xfxY@GCVR!>^GK;1{Wrz;Ds~2!5}80>4z94F0I*r|>_@ogd_%;}z|2zoYq9fp_3Hs1w28SEmbKK)>%4!*5n+0AF15 zL--fuBlu9A34FN^&HF|Q|FZr4EBL+YID6!u;~JWG;g>&Q`epdT>QvxsUu)*81>S(K zqw6-|+sj+S{E)QRCosMCiZCm+I}Q)dJ}SM%cnPvL)4X9|zinZa+8 zyL;xJrGOkZ!;3%m*cNSzk^d99}ne^Va9oz2bXMHjx%W9Gc| z;9rpU;q$69gs-ak1YQcvb;s}p)Jfs?{AUI3?v;ODYwNlt_$G1>zL2h4g*P-`EATpe zF?E{oUDOE*ybWJcoe+MQI#Gf5;7hC1ho7jz=C+ZB~yJ&t0Z^=jSGu4^E57m4M59L#MPaS8U{Bt}_ z^Dew6FT*cWrvkrH^Humj?!$knP6PgH%{SpAc?*8CIvw~^nh)WrybJ%eIx+kon(xDB z@*(_wbw=>{9yjNI3@^!3_@nAf;Y(|N2CvH9R{r_^Nu4r$Q_Xwu@5`(3XVmfGZOzx= zr^uV|7u0FNf1&v{{5SFto~hG?uYQvGc}1_l`|vl_8N#2|b&~=g!>8(`@IR}Q75EJP zwmR;Q^3U;kbxH;9!QWS>3V%tRT7lQ$^K44E|MhX7HLi&c6BQXuSlls^h`8Ri{$mHTc@<)Zx3S(K+z#H&TodAA~I;{flz)w*pg8xRHZh^<}bJZEZ|DevWz(?>))S19v zR3|O)DZHsgg>Ls2)^fh`u7G4JcYlk&J@0mt~)Dm_kjHKeM6lx zd<%8F0iF;-)TtME6F$$D=J~eZJFC+!@DRSJI$ii%7n%Q0N3X#9@Xx9Ui*1)u|MC z4Stk5b@==0GzvU`pQuh7zR*+VeYjKL5&R5wdhk!H6BqaZ-cu)me^s4PfluIQ1V!T+Mp1RkoB7WfpNspA}+e~xFU;}&=s{+2ow_?7BZ3*3i)s7?cZhdRvy zZ^0M%j`=+8!2h65Sm0fFNu3z}qB{KoAHqMc&ItadI^zOQ;a^r~3ZL(3^Zqj{aQBe> z^Ib)qGW^r(cm-aC*VOUhORG~a@Fsjibz1OM)oB-a2>*^cUHB&I^a{KW-%*_*d}no% z0w2QzbyD~N>SP5zgYT=3J174fk5s2r;2!)?b*k{=)TtGC9e%7jP54>r1O?uPN9u&| ztJR6%H^_VNQ`PCihngQ0cmnULGloB;&ZNLI`1$J0;LoVz9GZWQ)=Th<)$!o}RHstl zHTV_k)Zq*N(Y$Xo3Os=SQk^z@S#>%E9>IU5P6Dr}GlEz3=g1TIK%ES}syb8nT5{*G z{QlphP6@u5=F9MHeS$SYu+#L27IVa06$QjR)Kfmcc~M>k5s1%KS>_L?^b63 zzgY9b0w2NeRc8XfTAj4Or|{pY;~buUj<=}e7I+yxQl|pHPn~Lk`|wB9X}}*>r&-`F z_*k6|{4eT+1>S`}rA`cgMV)?u58)GaM(}^BGcNEH{+v2f_(Ffu*DVF^9+7{(sXAqN zSskyytMHfA@!?-rr(WPqc&1JZzKJ^R0uSN;P^SyuRh?de_u*4@hVX;bNeX-n|Cc%` z{CIV;0-wQW>bRZ!b39X>Qh|H$57nu{FHxsf;B~mOm41#2zd@a#z}xWo)Cu8oaFRN3B ze^H%Afd}xV)oH_5SEp0p5!_R!2d}FW7x)1FWpxtxF6xX5d;+hilfm~_XIkLSQTgY% zvN|RBG3t~HyaKPPQ-hzOj$hyn_!{a2@XOR`6?g|;QzwGos!q4SWB9u24B!u{Gc52C z+*fA;e@30Oz^Cwy)p6$LpW{E&aSOZ*ud7pm|3{tb|D)^Pa;EVZM~5u%ue0nn){$CerWr^Lotf z_I})M@BZq#d)^*)7M;2LLv#{nM9*>IDfwk|GV+t?WMe!pZ__Et&!ba{@rwLvIyL!Kbm}qQ zly~T~<=>#wiSeHNIywXS59kbId@S$MnaUrbGmG)WnbC9n2A!1rNjm8m&&qpr^78-D zDa3e5{%txH`O3cuulH(<*X4aWP5F9sS~1>{-$|z@eyT6+OrO=%iviBY%lb zPJR@fe2f?6i9PuGkNiwJl^Czdm!i{)&DJMgAF zL#Hj@jrmTD_vGu*8ORT&GmP=EJWFRPKc3Dk#uMj6&v6qvDS3lVI>xi|9G$%U5;}z# zFUj9Qry}ptsm6F+o~P54-%h6$;~n|C>Gb6H(&@+eP+p)jmOn~o65})Zj&u^Aj-KN) zbdoWimKW({<*)x;c%9~Aydd9=PD#EtopOv<2&0~(&@%{UtXp& zw9^^MtN28IFrAtF)6CCfJb7;Pd@FR)@+;_MX$&aR!j`6JgZaR7S zC+QUApTbM>pU|nuFJQhJ<8}GZ=``hEr_++(j`!ppyf5$JWBCA|$RERJ@<&)_;{52j z%$ZNhm;FPy{?qa?oveIa=5z9m@Pho0bV~A_nJ>%t#q09J@P_=Oct?IJ-jz4;q5N`u zB>xINli!Tb<#*!g3!?jfFP@PtJ=d=pWsvZ3Uuc3IrE9nM$hr}e+t)I zO1?6kjC?ibv+{NDynIbMMfo<&m*hL)75VyfYVr>n(9n^c;7glae3C`qT1L=w#)4)5*)v zp;M4=dSqBGb47I{g?Q%Byt7^84vbVtgh) zhEC#h(R2J2on(xst=jcr357U{&c;eFNIlhxlNX_ zPDTDKoobBNbU7%#{_NT(#v(J9AxRem^~x_lctjTmpqKTM}1-;qu?#{2T)=nUn1 z&>6+}ME)^4GkKZLJjRokN6+_UI%)agbTToXlb=ebAU}>yF~-aC2A!(>WIDANZ^%DQ zrzLODX~%e1emdDX#1+wV zTzE?UT{;>0<8-nyo|oTArzn4#PASGK^1JEOZX@-N}@U?;|V^84rv zcOa59q9r=#Tcjf!xefhFPFUyV*x{#)j2@~82Jd>uM1 z`Tv-2%Tv>Eopj}!(&@|J!u&wKIX;rVlg>oG1M^e)zW7|eEuG{SqUUua^C|hsct*Yx zot*qU=JWD4UX<@nr!2pL`HK8@ye8j|PD6el^G*40@vi(Icu&5>6XASE@|Ezhe0_W_ z-wID$9o_$3@QnN*JS+bQUX-7Sm*f}YHTku8UH)ynDgPk*+?M~C`HuWyyeB`B&OrWG z=7;h*K9+xk&Q!ka-@VQw7gCyYp0W!Z%d~j-xDv%Po>k8 zAI*GA{!zRmKZ8!mFTxA*3+a^PS1@0eckrtGGCFnn z4a_&>x8N=L)pR=YbGHiL*Xzm;dL~>~eff2ChVpZnAIY!AC-QI5naS^9{d4&Pc=DR) z`F@*DTK-4oGx8aplix+BAYb;$un)x;FUx;Irz&5QPEEcM-jM&CPD{QO^X(Y#${(iF zm+wty5aT2HALvZv$IzL^_+0)Jon$9^j-RBHit&v6IXXFclTJRyi}IK0l;u~@sl<3q zzRcd?{cuBm6P;#^x8-l3)0N*trx)V``6_fq@`vb*V|*%Ki_TpBS2~F=N6&HLDf#+z zGV&MbWMe!p-;_>K{`#lF>$DW(75O{q)a0wtsmFLzzAc@$d;>b281Kn4 z$MW6jOyxV$nZM`B8K#@{iN0#&}(RJe{We zbULjV@5oQ0)03Y^ryt`(`6+b9@(%C2Ch{RZlb=Z^ac%S*XUr$%>BGYPDlPvsovi#~ zo>xx(1-u}?fKEw%BlBhX5Adq|VmfvCp}cQt$RDKBl3zimBfpIKuKaPlFaIK)q5N6q zNAef(iTqkRGx@TA5BITojHj=Qp6~nFhm3q>Iyw0bJZ?e00rN%qR(M%{Go7k@SLSQ- zL-B_EJ9Jv|6Pa(z&&9j)JLvS~1+Mc!jF04Z)0xPtbfz&rmk;SAzZyNSD_MUk#xwE< z=;Y*0){~F%qWobxW%+HarxN2e`ETho z<5T&+=*;C=I*IF}=eY2c`~^B0d5KOo#`E&TK4JYud4oS>zBt9kx-s6D*XRu8 zGhXkb7@x>LL1!jk@@d}Z#CYjPbJkLONCXd+5~U zv&A{eFQwCx??tCAKM?QAzd)xiKY{sy{B(RIzn0EKo<1_XzNYd5K9}D}C;9d0Io6m@ z$=i5Fek+}v{0i2emyhTa<#*62%P(kz-zQa(Klwr~@&EtVkbj5AZOZS)+wyyO+^+oB z%=hGf#s~8I>5SwrFh7>B^pEiRn#v!bGnZ$XPuv(iuZ5@NkI>1;-$5rE<9Yd`bc*tw z=#*l-BL6L&ntUHR^%!r;Cv@8K!{~HkyeIz?oq_x`I>Q(r%l|@WD!-7Q|I;|M*$e*LrlmCNGKgNgh zIi0b5iCK6(PGWo}f00h&o6&Pzl}<9o)AE<;WaV$8lZ)|!e2IO-{l6sNo=!Q&tMaAj z)a8fJX~cL-z6_m?{75?881KtpM`tKMmd+@~C-UX#%;a@C^B7Ow6g}S*owU3`Cllj2 z`AT#O^3T#K#&}u2DxIqQi*#x+-jJ_OrzO9UPCLfC@-^x7<@eAT#P~@5W;zr3Z|O{9 zd@f&yPV(mHIsS`ID#kPN_37l~ul;AZZ{%aVD9_R<%h#Y&iSe5Jt#lglP3SaZye)ql zovwUqI=vVl$Ty=ilJ7!i9OF~@JLt^iAEcA$MbB~JDfw1(GV+hn$;NnIz73tC{F8J_ zFf!fd=j7j~Q;@Gnrzl?wFUx;Qrz+o&`I>wSydfXaY00-^zAfJs@5;w?`tncleY$~s ze>xNS=a`?$Kg4|U+tG751y9LacuxLR`g!^F%$MbN;uZN%@tSBaa!KBF_T(;3J3RQ>{;xjgY~SbyR>(Q{dNO1|WN;m=bUd5TUp#`E&m z(<#a`bV@N^k*`drCeP8S$9Pk|7M-@dK&KPqJ^2Q72J#Y}VT_OEZ>KYrSLn=QJaJp} z9P@Ni@*16VjA!NVrIVL8=oDhSB!54hio8Xq8sl~OK6IM$4xLtvcjO1t>B)O^`Y}F~ zA4z8{AJCb|@55*EkJ3qeH+qhVqxe2ijHl(Fpp%tn>EvR(AaBqq$xC#~FWXC3J@JA)Qf-PvmVnGx?0pJjRp#==pw`PFkM%F!$RS&&j_= zrywuUDaLqN{!Kbnd4o9phzbN#ntyf6O)^Me?l$nRLZ50U?qPV#%v{a==! zf0dHI1<%QUxp*HU-cN{6Sqgt<-d4J{s%f4`Kr%{_cK{}kLxxse~L~~zCN9jd<(oH z|2LhQd{^e{^8N9){0O`wKOP^*PsNAw^YE$sQhX-A4o}<>-Tx&&5bi%I`FEI4%YTAr z<*%cYmp{UMK|aMx@)hY+ByI#hxC3CEe;^-m{~yUur!$eC zw0Qp@pVOJkKTRk3{ph)TjOUe#@r?YlbaL_roxD6#4fp4w{4zRa`9*Xp@*K->B?(7ZcpC92l5-~jO1hH$MWRSVSlFbTj|X0Jg>wLqUU%ko|4}|CnGQL zxLNrR=;Y-;q*Ihv=#=D-(W%J)k4{bg0`v74Z^|E})0QV+2=~cOjQ8ZfrZbQ?cwWO8 zAIm3nrt&VGS&SzJ(Q};ANy*pXd8K1KE1%KH%QvA@i1CvAc{&yOi04&}@w)uKbei%x zot8XvOn6;%EvR(Am5NqNq!QYa*S8yZ=+L}UqYuLpR+$L`IdA#@^8}V#&}=89i5^4TXaS-K9TQC zXC}Xm&OFAGKa8I5ZgkS}JLzQP_v1PFUUUlb$C)q6pTW!W574Q~U-zGIKdi-gOTG&8 z?HKRNGt3WSd?J4<^V1kl-V@#DcQK!e@tk~D=JPRLmLJ4?CB_@_W0`NpcvpTZ^Su}! z$uD4jEdL@tm*0#heiYreKAw@^jc4We<9Yc(TvtW;nE8_Y4|q-fH@q%?25-ub;BnjX zH@?W{cX=A`$&aNokZ;cXP@Xw9e0~|rKTc;Ve>a_(d=EVFiJ*Wh*erF5F|TbXak@4`FsFVN}9hs^iozs861Yw3*T zPcc7<@tOQaI*Fe|&+&OWN%=A_h3hjd{}!FBd=2Jv^7Zh7yicbjKXMTMzI{2ytMVVv zsmp708Zq9I|By~czBTLb%HM+zFV?r{oXfIr*b_Uj9eCEPoQO z$e+U-^2C3`>!>MD;$8U)cu&4MK9aA4kL8=|?s!Z7209)2fy{U1AIAIg)#wc6 zCo(^hpM_8489FohMa<9TU%-?1N6&F1I%#>A`HcKKcuu}Kor3&_%opVk;AQ!{=v3v8 zF<+BEfj8tk(rL+`XTB|e&Huu6+m-K5r!P-2Kaj75kK`YqGm&r1{8YXbK9?U#C;7AJ zIqt}OO1>AKkyq*DhT(fxlG&&Zcdg!@lcp2CarwegaC6TBub@aM#Oj5p!BszmHD>(5WFj2flgokQRWBo zv+$984LTF~#mrCTFXMChx^$8cM$hqj=2P;GxXv^3P3Yw0chJep_oY*mzmrZ`KB7~R zpGl`Ce-E98{Lgfn@|W3$Ndf zyicbmKbOux{$u8c@(1y;{Bv}s^4~K*lRt$geic2(Hl39G1?JQ8*S;n^->m%0bn^0* zm@mjPcuD?sIu-e*%va^x;C1<}bei&=nQzJW#XIsl>Gb4>G2f5zvHV!(Co!IQD0(g@ zF`ta_to%&ob1`0$e}?&TjMwFtGT)G2iMQlGX5TvUTbb|5zlZnbKch30|BCsM{4snY ze~8XZ{y6h<`BQlE;pn;imQGs!Eb|%pOL$KHXF3J>QcH!`S5dw^UY7rzPF21t^ELU} zctidiotAt9=G*eO<6ZfG>Gb7!<_GcuK9VneVAzL=yvY1iz9&AHFHa}=Nc0>JXFe6< z8F`9MPF|&xkMW{>6*^`4DRe6G6Y!e+O>`RalbLVI&%oRAb?J2Fmondze+3`N-%4jB z|333$`OomF{2g@W@;sks6XWPPE<7dQmQF@qp_7$2@w|K|Iz@Sp`I3B$SLA!psmY&U zAL=pQl75NvKugbrP*X0+|Y07`hd`o@{-jRQvPEY;-^L_cF z_)y-VGnW6G`H6hV*M@VS$#0~Scr<#BYcijduaBqYeL7kB=FI2h@4^f6AJZwxi_Dkh zd*N02gLLZhLzr*KKa98Jzo*lYpU8YyemdTlKSgIKKcD%L{8D@(e}T?S-eG<&zX4DF zCVIZFJt$lcY58r;XXHP?bMlqw6y*0aUz9(Dm*p8cRrw#8ugRap8}d!*wB&Q<+cDmi zZ$qaq|1X_^Jn@mRpCkFZ=}hEFzFs<&FNe?N@1>J`EP9Sv9yb-^8Tl@Ba`FemS=g=w28+1xBUXfo&rzY>wsmFLzemR}Cd`zbk<30Ho=?vt_ zWG{5U%07_Z9jrPGiX zYT-I;%6G$C^2_kHyo`6`HM}eT5Z;r21MkaE!w2#XK9rB}k-Ymc?vwJz@rk@iXDaXG zGx?A3x%@FaF^OJ36&^P!&*3Tg08h(b!ZY$IkDHahoB5plempNvo)Gq}Ab*yAQC_4| zl8^DSd}aC-d4l<>d|$jKUk|U#zl}HKGrTE34sXfpcw2rB-jTQPt~|r@?a4R6`|=V# zkROZ>F4AP=1cOQ zF<+BsR%QM2ud<$=yud(>jAI^MEo>?udrzAgt`MSKrd{aJ1hfYtP zSUvbi{sa1Rd4>7pU!vyoU|4qLpA28pNzn$x|CojB-^~--zXaD65=2L%- zuK!u)bMgW6CHZ?;PfcD~Gpwg2-)*se`GEP6{FBVjKJ`R&{U(JU{qo#m z{qn?HSik((#roxmb;5k&Z_)K<_&6osicVhM+9m8~U0$KzlsDE5kK2>qvs(DQ#(nv> zPYKt7~tpH~Mj$y0dS{>#ws$}`Ll<)w$i{762)$MV`ktY4nOb5BLr zU;9;<&&zXoL*8KhP5FfWP@X?E?DJT@H$Ihr7@x~e$CH1LuKyxDE&m#xmEVcy<-f#> z^3IuI{bl)-`Kml|T9~iP2Xvb9)tPV0H^;m3UGTpAP<$w_<74>+_*8!8<>B=*mtVzv z^6BXQ-+-s(cj8(3lzqs{f5v=KKE=!OWFzczRi4G`@+D3W^G*2*cw4>!-j%-_@5}ec zhw=~MWBEz=RNlhp@*D8vKcf3Tz_ap)@x1(Rcu~ID8C>V`=a{d`w`9I9zvpUO|c=kg2io4vz@~!Z;yoh(@hvI$tNAaQjG<+<-2v7Vox}Q6r9_~bN`Wl zlJly_7w1)#FV3qbUz}H6zBsRjd~se)`Qp4<^2K?z<%{#`$QS3;l`qa~B43=>RK7T` znS60xb9sa7D)CJ8TvD7%QocCflzef%X?bebaPArT;@n%$Mjv;;`}U5Vk9+bt*TYy| zD~HETJs0g4);su>*LB9u$2s{%=Wrd$3-nv^3H^?Iz{frLF=vJQ-dH}`pY=bl^{>zR z?R=b*KYDGr@0I0?eoH>tAoP3k)7XchJa>Iq=Sbe`1s}_Eo#1nM?dIT#e@CBhhkjC? z`F5C3$rtl!dF6Xyz9H{*gE!?Z);W~F`h4ZDK41B(&sV;9zR7v?`7WMUTE19+R$lsU zSbtgG`&RI(e0B@_Ab)iq2CvE+%-7^I z=KFT$hw=nIm6xswk2{kO@VPwkCD#9+==wWf3|^8Ct`1(7*YJ+K@`W(pmDhOOseJOa zFh7$Qy20o6YlCNBjIKXLCodmd7v}5o9Nv_7=y&9)FNaQ7KKW|!v7P>0-uhmcPrMXe ze+5s<3wS}k?U%yuo$1NvR8;5>PehTv)`GAjm@@Kvjp4U*GS~cw3NZwi{ z_(YyqJNQ)IdsFb4yhJCpM06hte4LYC%>I|<|9&7`w-tGVk6ZE%`__|RM}H)rFh7%D zzc|Mwwf?t;bII8GI46H_@x0`v^}@cj(*W}x?&bE9;e7v9PG<)7yHw&a;DS--r?_nk-b2J8RHu+ow=5z9ovp*$yW1BEv zlYijW&~M2H%=hFcT+jOxdEs55KanS17uG$KpFtnzEy#Vhi! z<5l_h@Vfk`ctidW-je?jZ_A&@yYgkf9rn2=Ul||B-;59CTjFE+uJ}ZLFg}wXhtK5= zJo)!(ql7AU5$vf}ndXwLEakze3@(J@j`TG~IcX{PKp+A$4xvo;nMb|%IJ||y~ z*JDYZ*^c$gFI?PjqR~&uzvY@Jm1vv(e-EE8|HKJ^5XR_?`+TdK^CS7E@rnF1_)LB|o>(Ee|5xKF`4hiq|K-;+pOfE+7vx{xKD^&6$$#{N zaG$BjH{kt4O}-i4kUz>gTk@Cjj{Kc;dh!D2HIRRs&PaYU&vzow`(fwbO`JBAKeXJy3`xjw7HF<~mhMkXF@&cW{JaOH+ zuiS5E_Fck#HMMed{m0SC$t%p4a^8lVZLMkWAK4|f=}#!3iFB8qU)bL9y}vY{5g0*-oPvJ1pC>LSN;+@9s6H{ z59EVs@QJ+hMDRp9y8g`Hf@kCj`UUv_ugDYh8}bR>kym)!fqZ~Z5MdUXAx#rowF zykLJiJl~4_pTQgUXM%U+mFI#F?9T_E$TR;Ao?Iik{@TUsy>cH&$vb#jKEw0!#3i9q zlc$)k%MH2h7*xUtzu_PwWxa(~%GOxF^4j&R9OVG@MI%t?2qI^t1B8 zp5bvz@=5zArm@mmQ`>=lbYyZRg z<%xa6d`CXu;TblpA__}n1*Lz7mIE3}fccIggXAWik@>7`~$s5eiqqy$QVIQ> z{Ljpn*wNlRYaKX_Z7*eiHfUfL&kUtXY}-yr(DN^}bH!XBYh zlxKDe-ju((e)+5Gm%qAx`K#-fzqJ*Dr5X!t-j`4-4Lw*O>3h8;6GZ zzC1x^D4!h?=Ew3DUdTqDZ|dMMUzE=d4BnJyuG%16SMmnlwqG3PyYkkR!Ta*T6~Tw{ zPCNKmUSmGLQS^Crz7XaM@(JrH%6p#+^G$jEiSYYVTJrSYf_LQ)FyE7xm>kS19^pYrZ?{m z;Z=E-*Iiw{>T_KG^0(t{`R;gEUZ&rdAISVr{&9RPzYw3wufgZ?v#$u}lFUW-|0d?s z^1JY?{FiuM{sdl>zl4|NP4=NGU-9{{&vp5RcvHS3-j?_1cjfys-@own)$kXnK}C} z|5+z=+VWe^3*ME#iB4bs4tyvt;$!(SSBL&oUSmCT`GItjTSWK&<9J$r9-fu&_POx5 zdHI#h7v*2Y%ko?Bs{Ds|UH%B(l%L2sw&j0gzAJwL@5_@fg!3KB--M6l8{<>?4)|QY zAD(MVDa*ggbyAf-K&LLh>C&*yrhMvYy z)0MYaPhb93d?>#SAIpdMRQ_9hE}!AacSiSr8Ge6gTE04-mH&Z#%gcXzP1v8J{N&4m zm*sok8N4cgJC9qJZ;v%eVSUINz>3L#Hp_ z1Ru(`z{m3U;Zym+_*{Mxp4=+B{}4CIqXf)C{-d@AqIPj4N4 zUWcul`lGTdG670j)`|g*O|bR@(I^NQNH-PL|Oik|AzM`Rrz&`uRq8?&3sdSHQtur zgm>k4;C=ZJAIcxW$MVPVsr-lAhOeK@cw4?c-jz?52%Wxs3+9LNP+Uxm#xBNopv+^78yu6PWkjEKexuy@;&gZ{DXL2emq{3pN*I0SKw9o^>|(0$D8t%_0w!Z-W=* zyWwT|L3mYO#q08u@uvJ7ye+>3@5;Y{_vJsphw`7{WBJ4QRQ@M?E?;~-KeVE*hIm>2cDyQo7had|fH&p);%)g?_<4F=`H{@`<)`68`Pukbei1&Ee-WR{ zufvl&M)&h(JT1Qq&&uz`^YTaVqWt!Lct2B?KgoPm{tRB1{||4_=G6y5*N;A#0!_+;9(ru<)cTmBN>mA`J8a9(}+oAIH1b9^k{1y8;&x}U$s)AGOLS^2AfpF#emEx4b^ zUy}@8mS8S^3}bynLx;*?;+3cvb#Rye{7fZ_4+>+w!CEuKbIQa3AZ-Kf(M^el9+i zUxH8NU&rV2AL7Ykbf15Nr{z!MS@{yL3;UUuuYwol>)~bjR(Mt3Vt?xL-I;I755e2= z6Y#G5b9i4~;&nHae}nn4{4RVdzaO8=AIFosMECy%JS~4c>&ePj$BXjCpXu$}_33p0fO7%va^-;dObDPE&pf^KJPz@UHwGyf0sTePbwJe4Sw| zUwoZmDu0mvTwY`S$z7xS|5xVI@;RQBue3b(8TrO|QC`H$@`LfJ{G)hXelFgWUxT;h zx8OthJ@{DOW`CygN130?pT(2AMfdY{ZwUL7mZ$Nod^0>R-w7|uKY*9z$KqA_xp-ZE zG2WDa1#iojy^61Y%5P!5FF%0K7eo0y%#Y=d;8XdobmsEEF`wK$y8qAPY59hHzdI{W za(~Oq*TRePx8Y@Z0k6vU!t3$^&#Nh~FyEG+jCbW1;(htG_)z{md@SFB^(6O*?&pNp zMOyw0o|XR(&&$&*gx5t;-sbzNW%*l~ugVK}UA`aQlpl|`{Y1VIo|V5B&&$hrQQlfT^vm+a_w}ms2ye@$cvt=s-k0~ePKNR^K9;{><#1h1zZvss`A&FNejuKgpNtpfpTo=Yuj5tukMX*E@%{Iv{JwVh zdplkEgic@nPkbnU86V4+UzL59zXhMm-;O8uiSF~Zcv`+Eo|S(P&&xl87v<;RW%*@z zRlfBwyx*(Kzs7u1-pAYWA>Nfgg7@Wr#fS1|@v(e~)!2Xe>L-Wq&(7s5GoRcyy8l@` zEnjr9F`kd{VvLt#yei*{_0;7hyeU5#Z_CfZyYegXzWgS9C@*tA8O!fwek!jsKbQZB z`Q(1l{ZFLBIi}@n;aT}R@VtB%yeO~WWqF%*R^uxCjKJ#Pw3cN0+^81*d%YTC>KM>vjzvF57OL$iPdOk1bkz7x0;Vn=n6@C-B7n(S2^QugkxQcjX(rBkWsW z{!`|M@?YR%`S0LC zem>rmUyHZp6V}s}-^F}i{%d?Fe+D1Rms>CF+f=?DK9|22PaYWE{{!)~{3JXpPi_z% zH!r`4`J((ldHMQy zQNA@^mT&Ua(67q(X1*@3;7$4B`$S#&Y0UTK=i@{9=kc-pMtmy22cOHwc=C|wKF{#9 z{B;|%&+-lNyu5%H<@@1f`Ehtvel}j0e*tgGzlpcyci~<6&+xwdaeOF$0Uyhkdu!OA zseDa*E`J-IJT$uh@5R&dz45I4C_FDe3optq!^`q-;8poOcwPQ0yeWSIZ_Ah1BboAT}Ow!DmY9>dT?aNoihw=^au{@7Y-aibUA`LLl&_1o++}Yru^sBt*_E$@_vKsTL;245 zSbh*bm45`E%Wq(v$!c`}&u2a@|0C5jPs@LdXXOv!dHDtGTTwn^ zzARso`(#zV@#oop`FrrDd?h+<`Es4m>B@h?ziaEu|MM8%my~xF_jCD?zYX(K`9{po z<=f!NW1{=N3!auA{HM^*$|pQ-NnZFEKW|)q!q(xsZOJ>#_vAM+Kayuo2>qG-VdhiE zMxR&WC5aPs=}tXXT532bY&$&3sXQ6JD0zjaTI( zye^;MP5FQDwtU&`!ajH9>*9TR0Uyds_*niyd@BD4K9`?{CqEk9{}!H>e+kdZ@5J-+ z2k@f&&v;q>Z@en6Ev|q0a)q#;P5BylTfQmYmG6M}elR|lABQJD7Ty0-@wEK2cvgNTo|k_aFUr4-m*qdk ztMcFAb@^ZMru;>`EnjX2_Fw)Myf1$TK9ui-kL6{2DnA^b%TL6UCq(zZiKpdX!L#z) z@VxwfyeNMNFUz08tMZrex_reQ!+tj9Yv679Tk)=Z8@w;y6CcWt!pHJc@TvTKd@jEV zPkubQ|2N}l`48}{e1zxa_ni^`JW`b3_?h5k`R&YC<-ez2m;VcI%9rBvT3fyb-j#2H z_vPE-Q+ba2{9OJXJb7YtKljAb@(CEMe->;E8DZ2mvVLmNib?5N7 zS@~P>ynH*nC@`AK+Hel}j0FMiHaQ+@^WZFvvx$_IE~{!4r)|06z@KaEf2uPKIo zo6A?ilP5>_e`7o?e=nYu?}6v#hv7we4KK^bTvt{3r?`2o!5VLHS>M>)A&&SKYT1-`Te0km1pp|eDUYgWIek7TQZ-P?}lgP zhv0en$MB;3EW9jVX1B2Zs{AtM>+;{R4^8=X%(vxt;$8W}cwhb$K9nc8ZpZRf@Tq)L zd@g_Q;`;w&bpH>))AAGWto#BzFYn?-`K@?aelK2?{{gSd|A{x{i+{J+mM_WqcI79o z5YD|X-{;csK4B=oo%yjmO@Aui6ralrc=D9!{%3f-r{#MxpOqJw&&v;Cz9>HdFU!xz ztMcpdy1dHcHsy<-%h#6QLZ>TVeEp#>|2gwR`5*AHd|zHK$y1~I`ETaa@?~}p=bn|P z@w_~X7v)>vW%&}9g!k=L`FokK%Xh(>@&oX;{3yIDKMn88oA^+E6+V_d;B)y8 z@Z@RH{U73K`NMct{zp77pW#LMvU`McEX&uxtMZNTx_oQADc=Qe%Rhj3<%i>a`N#30 z{49JdzZ{>+Z@}mByYS@c(fxk_Ps=BGR{jq>FMk;?%2(Kv{gBj2g>WB8%O7JtEB_asmoHTc`&^W- zj+fjTFUYD2gru-Go$Ps^9s zi~GNP6+AEB058h7#LM#S@TzZoZ_1Cw+w#-#uDpf!<=5at`8V;g{M-0c{(XEd z{|TOKMECy}cv}7kJS%?=&&!wIo9kb`GG3OigIDF7;dS|TcvHRy-j?r=cjZUmefjbD zP<|#pmVXwX%CEua^6%iuv!eTd51y8f@vQs_JTLzbUX;I%uN#!*t1P~rAkW}+`DS=i z{%*W2-x=@9_s0A3B)^wxDE}byWBIZ8RDK#hmwy&dek!{EU&3?p$*JM*W0d4O>=&-{ zs{BH{F24qE%5THl@*mkN7MZOj+tL%b~i9bT3H6R*pcKRWDl zQ@$SFmA@VD%eTRY@*+N#?}tz26?`uLD4skwy3eQMY5DnhR(>g-mwy#6%D;t|<#*#% z`95C?@AK>O|6{%>e-v-apTfKH7x2D(sbj)94&`se$MUuCsr;?@T>kT$!t+X=7v29n z^J)2a+hIN{U-`n|dHJq%it_#Nvb=&<<;UW6`6uwE{CvDEKbUju$}eTUFTVyK%5TQU z^4syL{QvN|e2gcX(fvRAi(x<0^1m>jl|O^$@Z|Z?^{;STxNoH8YvWn@rg&byEnbxGhL`0>;#K)$H-z=nBtyu*B7eiJ^F--(aqZ|3*KPv!SAKbQXsPhJq+{|TO!KaXeSOMfKn zPhP${UX^c&*X7&dP5Jxrw)`->D?bJA%Uk$R-oeN6Tk)y=hc_L2_MSu;CdU&H)MV)U!uqLFW-#$yna=9+`Rm7=8N)^@v{63yehvEugh=5oAM6pY0HOrSAI90zWjIiP`>!RA!GTY zoXb?c_vs=avcA)mXj^*ZEYw_Tu`NZ;2-_jqd**cv^l9@Bg#%#qT4_%a5j0l(*~r zJ!JXf=X_S>C(^0Qn~VF8yoa~t7t!g;U;TSH@*9{R%5THR@*m?<`Hgt;vgkfPil^mM zJS%@5&&!v;ocoM?BfKnsFJ6@&fY;?m<4yS)cw2q}-j#n9@5}GThw=yUvHS^qD*qQg zmnS|S_9uCHbpMyf)AH5vto&_wUS7nD@YHO78t|691@Fn* z@UgrLpUM01rF;nA$j9)?TVkG5ctbvex8)0XU%rG-z5eiDd;Q@HjZ>MH*Z-Pt zjQQ8#w~#mBcaXQ>sk{w;xV#I0ro0b7MLvZ8vwRGn%BS!T$Y=1Sd;$NVd;GWiXTcvQZ@`}>Z^L_8oX0NwM0p>6ntTX9TRw(=NIr#sSw4er zMUg!3M)pPhh$~WM@((j+Q;8)k*o44W5 zkayuH%lq&{^|(X$edS~LW93u$^W;nTCGs`=&RXXU{8;%8{;wLRa%Oow-zcxa&yqLb z=gC{}PsrQw=RHDwhA)-x!`Jd5{9^eS{yX^;o@gCr@crZq_^sqi_|ft;{NC~nyd&Si zpCqrmxxD^;c@2Kev*Ny{0Us*ghQHyG_<2niK2yFA|EPQnf41H)ox;DS{0#mR`2zk& z`4WEJvvqxdA1L3zZztcu?=P>srM#ZU$!qY>e=^<&ZorRMz6C#7-iD9mUHF;uKK$MC zA^hX=F?=PT!ha;6!GAAbz_0d>Sm!1D2J$uhR`Lz}&hpAz%j@jVv8=)GqkIG2mABx} zl(*q8k$2%|%KPxSdBg?tIWi+l~g zw|oPCn0yEC$tziTo%`|{`~~s`{1x&R{0w;;zTX$)y3~cArF*GeE0ImZ{WRIoW~vf+49QU%j^8*yGOnTe~I!9_-o}Y_J^?7gM-DmtY2OD8GQ;OTL6ZTE2$&+kOyt-+_tH{j>VTkucI+wiZ;yYOGj`|!);L-^mlCwel2zd%2CUce7kehF{M*YJnR zH}K=+JNWVP%Gu@hy!QvxXZT3@2K*7qx8P?e--f?U-i4nd@54VKAHpw^kKx~yPvO6m z&)`?c7w~=0iFH`Q50tOrhsihamV5`_=R z2>11E4EObI3g3HufWJ-SFW?u*m+*sL9rp`sxW8X`1NVO4!M(35|5;v7@825yK<(28 zym)V%_cr|VntvDmZFwL5OZgCfg?tP@T7M@vh2K!0>pO$*uX!%u2g{f6Bjs!Oz2zHt zN4|qUSzdW(d7U$P4gPF-1O5_u3;rs38~zMkC%f>obp7eWzp4E-guhwikKuFq6#hy1 z48D>t;n#d$^k)sfnS29p%6ITDd?v=JysNy<$0%QePtJ>c1O6E0TkyH^ZTRuZcj5mc z@59#`X9%AtKZYmsnCBE;m(SoG`2zk9jlY5C@*R97uguEp`F(i}zL7WJm&;r5ea?;J zYQqnZci}ge_u;pZ58-!{kKxD2r|?J0XYjs!0e`N12|q=?hX1>K1AmKr2Y;u$^6v8b z&*e4vr{oRzSLH4EkK}FmujF0$rSd*Jai8JWk&odwl274>%4hJq$QSVY%a`zDI7kq%F zyz<`i`X4T@!S63`z#k`X!F}J_hWoy?3qMig^x>z;hwwMb$8f(+p2Gb)c?N%<##z8G zlrP~I==H`LzW47P;C{WmgZnTHc2j zx^4{NZRN-CwhZ{Tl{@8IXiE9aKi|0D7m{33Y+ z{u6l{{#$t$ewn-vzm8s?58(&N$MD<9r|^5pXYh`E0UzjoVF`bx@@x3ZYy8qh2 zPglNjUU{7}c@6$`-H$ZjUCpxvKVRdt;h&aw;a`{c;XjiP;g`zC@N0iiJ%`^!K7-#@ zzJT9dzJxzqzJ@^Qh zdbZ#b&8H2|uB4{C@H&yqd>2Gk8z= z1-z;J5jkAFt zFW+ z_m|J$hshW42mAFWyrujaeoy5$@CPZsgCC`QKu{z&-_{!DpgQC|O(~x z@*(_MdjDYzKS(}>AL;iw;dhfS;17{6;g6TE;eGiA{v!Df{%`WiN6PDero0B9$=mRQ z_4AZ2{4UxTefT5fL-^C=WBAGPDSRTI!QUxgz%P_9;a`)l;XjaX;FrjE@atX}`>68K z@_IJpHTXT`4R}}Hf}bdF!$8jvkKyMiKZSo>K7)TvzJUKkzJ$N` zMe#k|Yxw^uzk&ZnzJpgktM&g_dHruJufY$KH{f@cx8V1ex8aYMcj1jM#C-bjf%0Sc zSU!cnUOt1LEnmPF@+JIp@-_T>@(uj?dLG}wf2Mrp=FOBi1@MIL8!JE$upTXxv zj6a8OKNG%yS1%0D;gfrYFX5e!hp*s0`5HdZc`xAE527C%c=C!kzgu`GkH_7?GkNt> z|Nnif!QHny+Cg1c{Pxcjz+`}($nyKhNe?x*`! zfxB;2xcgRvyKi;6`qqHEZ%w%S)`GilDcpT)!`-(I+GZ_t|}`z}>eh+Cg1c{PxcgSX z-M0I^=%Ay-zISPZ3=haGPwITgS&5Yxcjz%yKgz%eOtoaw-wxd zTf^PA0`9(T;O^TN?!N8d?pyM?a-V&DtH9m2D%^dm!QHne+Z$?kFLJ;;qKc2?!FD-?%N3NzK!AT+XU{uP2uia26x|PaQAHvci$Fp_brFJZ%erQ zwt~BFYqeE+egJk@#3 z;C20cVFq{K=5Y6I0e9b4aQAHuci#&5Nb}sl-M1~=ecQp^w`5uF^WOL0;O<)$?!MLN z>RTP|zBSeY+Pu;tp<1B>Tvh10e9b;aQCeRci&QY_Wd}XHr##dz}>el+>wR>0l24cvX( z!riwW+#4# zY~b$O7Vf_7;O<-XE9E}BZ#B64R)@Q94Y>Q(gu8DoxcipU)wed>ee1y8w=P|M>%rZ( zKHPm9z}>eYU40wD-M2B^eVf4Dw<+9x%i!+Y4DP%-l*0o;8X!riwK+}F1;+-eXG&cw>sQ?Yrx&NCft2%!QHnM?!L9* z?pp`$zIEa5TMzF0g+APU8^GPSA>4hNz}>eg+Cg1c{Py82eY-M0el+egU46^o?%NFRzRlt8 z+XC*s<#6|H33uOCaQAHuci#%QuWuW;`?iI_n>oA8HT_lP}z2c5znA@9JqZ;f%f@bqK)y&(8VK7jWgTix@x zLwHB|3B3Nw_&e??eDd`03_hQS&*16(!sqbn;o&)abX52fp1dl21@AmFd=1af4=>=! zG2t6{c4&C=E%fI#;T8C#A6|uz-XC6rZ}qr!_)5pygjY467QE1WI`HiN@wfx{Y7#z# z51ti1f_E+mAHydP2%o?^w+)}ctM3e7z?&Zk&*4Qod<`EQ5?;Wor-yIg&Evzj@c9SB zck~B^SHF$(uJclZr>~8C9o{@4yaDfgD7*J?;*^eN*I<@05Fzy)e82Z+3AJ~F%qZypxjhj-o;K7bdR z=MY}~Sma0WOpiN;uk^T6c&h$n@QL>6>`HtE-)jBW@SdJuw(#O(hZ(Pl|E6@J#F9gV!Gw`60Z}`i$V!Gb2BRr;iR_z~{>6 z@Lcm;!Y3b(aaQp3G2v@?{mAewyz{p39XvZFJo#?_72eh9BBKZEy_pTn#296pdQ;dS{M zK9U#krhE&Z$anBm-qr8%Rrb6pPm;SlG42a`@a#*+?MaN_sq$mE^Ly{(HGZDO`p=Lr zUJyQq*B=`99SivOLE$-krTh|}J~;9#_0_|@!v7d z5I*{D_?YhdLAcj#3irBYaIf18?sc2Py>1J**DZ&8-Ij2#+Y0V=E8t$YE!^w2gL~a7 z`nwkQWN+W#Ubh*k+dc^t1>19`7o6Yh0u!M$!N-0Rkcd)+#4uUil9bsNCFZbP`& zZA^FH;9j>W-0POXy>2tO*KH2>x-H;dw;b+uTf)6=E4bIKfP3AxaIf1A?sco^bBx@R zQ77KdslwA^!)x%KKL5>s|L1YMZVlwUZcVt?tp)eGrEsrX8}4=Mz`brgxYum}_qq+? zUbit_>o$RV-KKD_+XCMD&!hG{v*z$(70=fN{Jbol?>6xIe?`9Xqw?#t#>*pLg=b%l zd=q}=+auqCJKu#Lt?xbW!JQw$k9$^(KZZL$gV&Q-pE*4HTFie1pXz&y)^O){@XwqP zpO>B#<#kK17XPlp4?R2P-++7mZTNZLj`2J2y3X$a{$#Ds5bp7(@LcoB;Lhjp=W6^V z-1!asCCYE%J*|KB$K`dKDqn+p{1*Hj%BOJWd+_%v--kOthJWTAwBSJ=ci+yMlW@TllkXANd`8bj9QLoX6V5<@LPdk77P`xbI)O@OvxY zgF8QkAGbSl&*NrrAMYCe`Zq?tfET*|N`6|N|2r;k?is%V_k3FL^NTp%6rSn&--CZx z`99q9AH(0Q?@OJ)i?77>b^-qneJ^KKXgMhspb6oC>_Ed=;K){096I9d8rv<88sykH_Pta360Qo-88Y zfe$_z-i7DN_u$1xBHxEkJ`p~E_mm&QFVpc(;6C0d+{c^2eY`Wck9Q9D@h;##-W=}Z zUBa6mj^kayeY_j^+n*8Ft1aBeyQ5zi<0ro;_sz#!fzLk^`6_&(aq9Fu@(p-T-h@v+ z9r-T&IDIcz4_@pa^B%!}{E2uT9K)TT!B5{W)@=@Veg!|^)A2fL4R?MAzu7@CpJY>B z=j>bYywigJNYBeD+|PqO_^mX4AMW`~;a<-S?tBjSdM@G4Z{Tx1k8k0=@2LH*M)U;m)_71eDdq^`utV>slYQ`A6oE-=zWY7?tBma z!lUB)(1$xeg?s!A?tBjS_)EC+JGjqp@;~Ku@cFI7?|N`te;RP#2esiJJ135}15bYx z*Q){i7>z%K`+7BnKS}uv?)#J+K2UxMA89@t_{)^v!s{2s{A<4{ubbDi4)=Pd@V9IH zHasa}{6738vv?n10M9l53H(d=6n^X9M&H_S=lgI!-woh<`vbqw{ekc85B!7f4?NZRO8&QeykAki0{8kf;onle z1s`erF1%2_2lsvV6n-DQ{>k9(XAVE;)^Wa;aIen>zR`TP@Lcn+Z_Dd*m0Rd~0{8yv zz^|ix7w+{O!EdPi7@qt%_SXXL^~~X3&mH{FKh^88|0^Gt*Ru}4^$&EsaOd0bqcr~x z-1$B{eQJz9gfF}f@cb!}pTalF&){|C7x3yKG0qY`dUE(0?)(N`^di55w={m`cUWiT zYjEcq@ZR6Y_$|7|Z^QE^MZOE4DBp)C$`9cS<;U>k_!xfzZ(jd^J?{%m;f2PT!Rt?q zaTf6EEyI`a>{;P!cuV;Wyy!=M3m^R{=DCCSHBRM{^7$%syfye#`3AhM$8Et^%D3UY zXT&_aaOeB*(bFS8gzq%|7@j>X@>96;GkE?Fkzc@_U&8aJMt%j~9$MSehc&!@tH^KQ z`QyTO@Q(78-Gv)j6UN^=c!dJ?V;rU}DKZREg z4WGg5$}iwe<(Kf@V`7{&UHJ_>dvxS?@SgIOKa|%$e^lga@Uij@c=5={x8TmV;feBH zc&_pL@Z=FO{t&)Vehg2Jjr8?bhK-c>1vLHQf0PeDsjW@8E5XU-@Hs z{j&!}z6N)`0WTgH`4)Vr@!Rma@?E&|eR!`O;}7A^kKy?PB0q&^n$HZLD8GO&m0!Zs z`^WfexbqwM=$Odw;LcYrEw6umzsT3%Tg|5dFYX)p7QEI7Z^IMiyKv|G@cMmXoFUx# zF}!~7$WP&^<}-uW)5tI2edU+%;+~OT!zapb;MqMQzk@H7uk6a}pWZ$4HF%+X1D@Y4 z@-2AfHsNi!ujgI3ujhTZpTCB1KOc?Z-j7qb_sb0K*U1aGUnei&e%-jH>-E?Mo;^Y9 z4{vIHDt{`kf1-R1-c`N<_wz*yzW4eM_wz*;?tCAfK0f9@gpV|zF}$umOyM)-XYkQo zWBdiYepvVtUfd;o4WBB%fv3vv;LcYrE3bdnit%gkrN(c-6XjcQ=iBh~&M|%$zSH=9 z_~_`!58=*_;n|%cKZQ4L8$N^QcMM;^onON9J4AjB?`r%FJimS9cW~z`e=e{8=%~oo z;A4&7fTzvKx8TmV;n|Uq@4^=vzYkB2i2M-l{1{$8Jn~ccM&oDjkDn0v0-oLEMtff8 zZ{X>3!ng4HN#Q&AM4tSmyv~`t0xwRDajNtehd1EWSB5v?O?eAGkf-p;Yhs)>e6D;4 zp57tugSzmhya%5@IL7b8J4eSj1N!a5hwxlJf+u?1F+6{0j5DFP!l&>;p20_VjQk8< z?}X3cy}O35;Q1rN*YMRn!V7r%xbO`;(YkHn6XkdCO!G`GFZXct#2CK|Y z`GaHK7Vy;r!gKn4!k6&+KZI}Ko!7;Dw(zF*#SUJ`lPk*Sef#!9_gvp9@PWp!!oA;X zaPRjz-21%&_kM5EHP05@`#ptwzqjGu?;X1KbrDX z6P`Ug&PxaG{n&+jKlb3>kA1lJ;{fjcID~sYj^N&pW4QO@1fD!6j%x}Zyfi$6&()t9 z-1~73_kPUb-j4-c`*8#Je%!&mACs$;`{VssfqOsJ;ogsZ`0CxU4g?)^BYYdmXF5upeIo$hk3HN?1;NFjotCi31-uqMd-uqMd-uqMd-uqMd z-uqLy_hT3C{n&$hKlb6?j{~~);}GusID&gWj^W;q6T0@}6z=_)!Mz`6aPP-CytsC} zzFNV(AJ=g2#{%yCxPf~=ZsFdKJGl2_a`ke5ydNuY@5d^G#3lRe5sFa8d{XWtV?)Q;KbiI!>hWmY_ z1$=wLjrZKSOb7$XK;_dhI{-1z8c5)JGjSBu2WtIkKcm#-W}tl@Xop6 zUAV{Z!99K-J~>b80Qci&@Z!CZU%>siIoyxCg!^%Ka6fMHcjfiz>2YgtKW-iF$8Es< zxLvp(w+FAD6URG*`*BBbKkgXr$6dhvxH&x2d0*50`~vsmZs300+P+v%jbDea)Q1+_ z$D6|axNW!}cL+~E8|yiOuP#&%;eOl^VNfU{3+byXYf%T<1gTze-8KfJNOgc6Mw&%T(5k*qa=Q=P=`-WjKAM$z(;=< z`7Zoy<$G{{&cF!%9_7by|9!*^e!lW^cwL`ku!es``2wE(I6l`Rsg~E_i^^Bv{@jKJ z+@IUfg!}JzI`DUWCf2_T_vhXW;r{!q5!~yO!T($HpTV=A#PKfS8|7DUujdwiiSj#m zq4lg?zr3E8D_@7F>RT6HeO~mf2e1D$=0AcTp!^tK*YVEaw@`i#_wlaa2YgR|?+kZ- z2R}mNCpRdsgO9fbf0*(q+<#BhgCD1SAKugPj^WQxeggOS3;1cu=Wriy0e_wH8+cux zV^iC&ybkYIz7F^GCxw4X`8GV$_(S+b%8%flPX_;<@-uk-;^^BNeyQ>W+<#w|>|Z|K zpZryyGXwYhTkxwtKl-1-GtH+5zn=1acu)If3itISgZH$aIs8bCzl4vj6W9L@{O-zc z;f3a3y+{K<#Pz2J_xWnU{rr`}J^vou&tHAGpTEX%KYvZ&e*Rj(k3A{+oWqM>#{SyD zpQ3znKzSYNKZ|?|?!Wg;;ogru_=y_75ASLGG5j0*#@~}p;Qm~!9R4zmzl3LBIBw7T zNL%=;mEXbZH`ME~T6rDbqI?7H_36Oht$Y`r>3BzQ=f`m8=Wyp2aOcRgl#kczQ-^zf zy6|fa^?C{J{*2%k>ho2`aL<1R-&f<$;lBQ?;eLK8;LayEEg$dq_KE#ff&2Qzk|E~wVRjM z&GWCrJ^vK$ezxK6XCLnM9KhYTDctYRWN_af{s)Q#-i4ZeGti-0PXb zeZ6YKJ^w!3*Z%?B*Z&FJ*Q+Vq*Q*8G*Q*@v>s0~w^=bq6^{RG@^7`z3{Ra2-Duv&9 z7WX@Cc<)zn{U5^ z@F(khb>Pkq;7?b62zP!8|3~FBxbr!Dp!^a(`eR(*c5r{5UUKUzSs%F9zXA7r+VD>n z@pqjaxbs8!C+{Bp9Kn4(&)_G#CO&6)2H$)Af&2NWfTw?r^+_7#b$IAGalNX*z26&f zzu(n_`~9vieDD5(d%ut1p3fNW`OM&cy*G#Z_1+5p*YE1*5%AvU<2KW4zaL;E2_k4En6E%Kv zSb2S%Z^7OF6z=}_;6wfVs1NUbG0xW*{kmht$8hh*1^kCTUU=@$y@z{0Zs49z>l=Ue6KS*OM{a`5D~vnZrH*72Mb7HQeWG2S4R1 zaek8{%j?$j`}uJ9p#k^!ZTO2WiPw`Ixce}GAFJ~_gnRv`@W(5k!JW_HzTPh3zJBiD zXWd@wbG!2T?7jZLKcx9I;Lf+<-+M`1Pde~S-=i^rr~eW28Nz+Nox*FrpMtwTYxqI; zi}4G1a*fzuwPtx8ZhUU+$2#2eN#VCvz70<`{t*5ERy(Ch6U{2Q8QAMSZh;fJ3S&o3E#r1|IYqm^I6J)a%? zPyYSPJC~2k&v$kBd3wLJ0Z%K@lOFt8?~i@dhx_Nz6ZrF#pTct;?*i`k8*_N3`-L6+ zXFlH6l^iepx5_u*iH^4mA8GzQy7FUqE?>b%pU`y)o_;F4a+mV_lWWKNx8eCZ@*VnD z!l&?u>v%JGuJLpDiJDK%6H(-58%fuKZN&meVf8hQ9gtF{w|0AoAOI|?%%hBzft)u-1D#A zv%GE}RK5n!^!`!{{%Pe?xSx-P@Rjl-c&6vy4E_VS@6>!fdxmWpk{r*)2 z?&qTx-2F`9{(FZZ{Byb=9Kk)G41PP!e+GB|m+(|QPtx*nWj~C4T7gfB@HX7zjNl$; z4EH!|_}uFcPxg)HyX4;Gd45Lu3f%b?+~5C_!o5B{_&;j=KHRV0#_;DUKY=?xgXdcR z4SfDPT|eQ;|LFR8pYl4STAu+tyUH#0+{X>+SHw6A_~9Sc^%L&-7x4Qkzk!c5pW1!P z^L&Exb-4SS!f&tltJ`p2PloWT==Jaj?)hi%1C*b^onOLp_wat@<4Ud;>s)~kT#3%m*-h%{uOw3%{Z<$UC%oMc-qjufUo3hxZgJ};O|;?h)_frErhmgTK_*C3vRe9m8|2=Mp|TGS*=Q?;RFiYnPAf)#^zd?s<0M z-~YLK4&VFx1Mq$SIr3w;k81(<@Bid*_o{&V?+Z3?|Nc_#f#u`%?=#ooo=*z*?=!dI zUY{Y{JJKuoc^_+OWs0sJ?#B?j`AJ&MBatx@*aF3pTa+PX`J5-?)A^%Ur~Mu_xf+(-&KAKcfR(J z^7{KaT!;I5lEM%FV61-|?(0Jz{(qX!0Pgur;Md;8`b^=@FW??OhdW=u@1*fJ@cgFn zJW_dRd42Aqd=;MR{;maolJY6s>)C@pNBKV7<4@sdD4)Ui{=69Od;xd9_OSBt`ux`6 zKEEmaLz+(;p4=?fa|GY}`=9Vk?@Q0&pV#;ccydULU%J)a!z^Rd;V?s>B@KDxz=Y0 z_up@h;6C0A?(d_Y!Ts~fHT(>{4_3fOTA$>&@;bQB6}XSL1^0TUaIa?%{!OhAS(RlNVXgr~ZH+`)amk|&hc!RMN&lfiEi$6tA26w&%_x?)ZiC+H<=~u-58o_H_ZHpGlrvK3@MlNCn>W@3+94N8B*p&xiN^ddv9zYWiW3AHbW+PvHLj;RU>^ zd=5|Km8X=C%k!+l3*~F@p5~dtJeyvaY5&u^}tRN!-;M|iI92Wi6n z{U9y4zaJ!p`}?`t@akDQk8poKNEhz!2kF86{UCj~zaL~k_xAz8{rw;#xW6A{4EOhg zOz8eTAh^FDB!m0=L1u7&Kgb;J?+01I{rw{UFKH z%6;?qgH+)Devk&-->cPx`+K!gxW6ByN7wg*^x@u*L%8?j2=4tjhI>C|aPP-C+}{tf zfcyJFa=O1~7Vhr{*}!kB&-d8E{rdwu`23{X?0H?0JiUCrdiwo=3cT~O$XDUpmxkBj z>5Ib~@X08=39rjr@PX#phBx$iXdSqZw+rw6dpvHBuH)^)NBa{JJ$}+JuY<>L z!99Ko&)*&M@4`KP5AN}&@cMZ%P6i*HAHINl{2cD_cW{rNJhObf&3TMpgM0is+~arQ z9=`|g=(vV(k3WKY`~}?O=kVm*nEx8?@e8=euRW{04wH|>ICXe+5#EA({1oo-2lVg7 zIO8kv>`HtAFK&2~Jxp8R9^c%83Zi8rsr+gIW}c)EYga|j=39VS=e zvn%o4@#Xn@9jYgkeS7+C_pCz$UKH_pK?C^eDzR=exbM@~@cfE6k6U<0-gtI-K7QY0 z0PiGvT)2Pku!SeeH=a`--}wRD`5C;f?`7D+SDJroP#*upo9g$R;e|fGs|SCf@_o4T zWB4h`PvCw(Z4SR`D}KJYfIGj0r_YL?(^a2aKCbK;(UUIxpYIaK+k^Y>O-At7D?f&h z^tcPS$Isy&zkq*8<8R=}KgMxYPAnhS=asL*bIqp(_xLH?sd)Eh^ z=<@+`c=5dG=Mvr=gjb$lJ}&<}H-%@ zXN+HYL3#dly&v0z=P%Se;iG%SI8*r1?~0$tWpJP0B|OzWN?ur=&tRx^hNmZKJ?R=} z1ot>&xW`$--K#CUesVnS4nCJRPb$yf<8;;T~rR_c+P$|9?IWxW{S2 zJx(9)`Apy*XA1W?E4atm!97lLa(Vt9rv>*oJ-El|!#z&rl=ApJ_a9!|H~y}t1@D{^ zeHg<%&K&M>DlfW{$AvpThJUsb*XIe`_r+6q_VSo#2KRmO44%I%@^g4G4qw1W%IEZd ziu@A3`j_w(JW+lPPc{Ay?!N;{PA#vepLgo;V;>#s)`0tbwc&rSd7H>i`j_K=VF9l{DDpWxX~y5( zEaCHubbkaNeLeDPc%jc>E8yw#>U-w7f#=F6FD~20k>=lq z`}4g!@cI|xc)Re?qhdZi`tRd>_2KEGBR_yAH;VZW;mx1kEcyUnY5XyKa!~XkgZB=I z@n`hQVxDt&dP1C+1-!0#F5#2QW1JPd{*Cy&%>th3{EmN9KEFTG-$hR0m&<4H8~q|) zhb-WClrQ0J`5HdnC+>GP@VR^kU&|}MEzkdH8ovgwT_?tG!(XO+7ycS~AAYuc2){r+ zhJQvrgMUN5giqdetv!7!;GK7eZ{W=%uDK_l{BL<3o~`4p!e1`0!{01#!rw3N!?S~9 zJqK6f3;1KN8~OZ7ys|CN|C!2H;U~(w@MCTemYR=)Q8@_g>3d>y`1z7Kz) z<}-lT4~cm$;1AaLIlQfWA+N(zc_02n`2aqU zFW@)S^(2SCO8LrVn2+*R_)PgO{6cvTUb|Hs?+pGO<>&C0@;ms!TF>Oq<$3;E1LZ_(k#wd@5hVFOV1TuGX`0d3iox zP`(KtDnEpOU-=Pys{9iEJLOmKT>07+<@sD&eXGMa%J<<1D?fl&4~@Pp;CFHV;SZBn z{#u^T@$xFXrSZG)e^$N+?C6L>@UHT-eP7x0eqjjNXD^L*u- z@S*ZU_$!qk!87HT@OLP`f-jY?U9CKy&nRDqZ2`5C+|pTm!n@8IXllWUac`8;_WzLa<16ZsVW0L?#x_q9G7 zcu)B)e4>2on&o-EPmi0z7s`*}pH+SWFO*-y_tWe70$#aIoR`M6%JVtGum9l<<%jU^ zYd#}*TlppY56Z9L1LbR#@_eqR`PAW4<@@m4C_jMb$}iv-D4)YO%2%#kp3hg5ufi*b z#d>z(zfishzps1-uc<$C_!E@h!B18`*{3|uhUU|TzfSoMyrcXSUMQczU!eJH;D1zp z3qM`?)^*DBJWrm&hnmkA{zc^{@J#tN{9@$`_@(m3-<9XHzvkbBH{?V3G4c_7srfA7 zPf~sb-zs0*w>+Pdl&`~Uw~fB_;b$m6fTzkY;O8ly!#^XhT(>-*AIhunzQ*suf3JKG zK30AP-{*iht~q?B{0@GQ^2zne^IR$4h99kb2fkB&3V)dL8N7aY%yR>Oit<}{TlrSC zJkL{q`U&BvVzJM>4Z(P4TpL3OO!gtCK;s2xj2;Mj%)@KR-vhpi< zNBP zGx*Ik{v6&{eg}W7^2z??c}|sY!|$kk2c9cGg+E;R48B!<1AmtCTX_9;u|BOEmgo6) zAHlcEFX5k4eg&^JV|{7| zl;`sU!?Blujtgdd~%tl)+6wS&v^d6M#Vc;!wp|33VDl{9n(E z^<2YWE8oD+l<(kY%PY4jug`nrHTe7G4fsdpE%;~TZTLZNj`?@tUsApg|Au@B|8Myi zezANC|FwJu|ATx1Pc+XZ{5tYA{08z3{6P5*eyF^1Sb68)G*XeZ{e5P@R@PWn|!%vaV;Afw$zdwS%`<*i2Mfr2IY6~ zS8M#rZOiNY+B4&LYw+WgZ@|yi_$~N3@;3Z@c^Cc(c_02ym&AOA@K?#l@GokdDg0aV z8T?}T0{+=sYW?BAQhp8J$~W-K;D&d1Af)FL~mR08_3)6gXLZLQSv_g zp7J65G4e5dAfLitA)mp|k}u%r$(Qht%h&L4%Qx`f$anB-zctpaazuHZ50Tg4cat~Z z50bawU3nY+GCSSlWmM`I#$k*_z=(@Lo?U1@4Y(hg!jG~K7voa7CwVFzY?Cq^GoA?X9*u28m}8y^jn9o>5cFLp4W9h1y61g`7J#E zW8`=6kv`8bIST81i^x~#hlE$*>CcXf`!D)W!|U+;;25Vt|8;m1Ui>M%1y3)I@l*Ow z!rSoTvKXfa_un7&;fek}YXJA(TV?R=Zx7tF4m0?C8@_;7mCxbMFX5}-#5iksp?~|o zzHi#+F428Dys3O0p2~ah zS6?lTs}E0Z9Q_}_>+&J|Uo_4LUescoF+9~c6Zk0_XA1W?8N8=)X7GW=nZrHK0zT3> zIsEAwX9>@BTq}5{an|q;PGg-5xX0PhHO?0PQH`^Mdz|DBh>xl{Q(_T?3LcBjZ!;mM1_Yw%GkyiR{!cmrO)dw3I`>b$hz zqf;WE!jl(-x8d2d!#nWN1H!xTG!5_3uO8RWKK%}nAHef8@&vdxtOK`7z-uc%t*Trr#y<1$?D`Zs6J7 zBEN;#_4&&?_*kACUGD$ZpVtge^}VrGcs_{7ZNjTnea-{?(@TSJ8!P7Hh{&o5} z;cfae5BIM*rvV&QT2$ckOErJ^5x0utZNmqbYyR-t z&0_p9yz|${PvCW($0@w2d=4-4Z~xct56q8>d2Wy&92d3^?& ze+_;E%wr zd<(y$du?qR8|CZp zKgt{M%jGTj)$SfWOyT>=JMbIIyYO4f$M9q16Zo<64E`P+?+pGC`2zk0c@F=UdU3d;pc&l_BZw>C_t;2o14Y-fD3HR}~;6C0I?&EF4eY}&G#QPBc-=}0< zXV0BZ{Lk!fJbn`_eEv6n;NRr8f8%k5jQ?}@H~zN2$=6=`|FHMeSRVjoPRK8>0b*JUWr zX>|WyuXE0|`<%0Tb>;i{{rB<5^m?Cjz2E0t*X#X0@AGh7cf{^Fn!Kwfe^rxr)8rRu z@^dx$W12iwlV7aK3pDx7ntZM%zeSUmY4Qg&`4&w+Ta&lTk^SP=$Qo$!4w}57Chw}r z8)@=xn!K?lKUb5_*W{_1{AEp^rpaS9`2bC>zK|wLuhQhtYxPHHa`~k-S$MN1_i|{K zjM3yTXnH1U^20QFjwWxe$!BPCou37o{BW)QTupw2CNI+DM{4rLnmk^UmuT`9ntYii zKT4CAY4Vnue1j&JJAJaSLX)@F>Tl8HZ8Uk6CU2|B9ZlX&lkd^wM{DxEn*10|9y2Av z+XPMCOq1*W-a?Zfr`2z#$&c6M9W;4+P2N?LchKbBH2Jfd{9H{gcYI`FswS5!U{ao@ z$>mCvln>D4@)!N2{3=Z@S74-kgeE^pip1ZWHF+0JK1P#w)#MX3`74?{N0ZBy8Cf_( zlgpW}lox1nITMufxtd&!XriDS%0x6mzj^0muPaif+Xe3G`Y+Kq`XX%pD9J+ z?*>hNmL{*zEUUTa%}0@;;h;fF{30lV7FD zFV*BDGGu|VQr=9H%NrOaz~So*W`ON`8}F^uO^?M$zyUO{GX`Fn`!cUHF*n7 zexD|9r^&N5c?V7Yk|yt}$?wFVy6zntYKaPt)X+HTeKdo}EfLCZDLu^E7#mCZDFsXK3>2n!G@h&(P#^HF;2z7isc`H2Gpp z9@69`ntZV)U#7_)*5qZH{Ao?TL6hfe@(NAHaY#lMJeW|>N^90`D6O97|jv@Xy3eh;sz~j<_lD7=d>XHzOV) z@K)l(hzAI~k+?Z=s=yx*#}RiE_+8?|i8~0qocIXh76QLc%qgN9Bk)Va@x*)fL(us- z;ugeJ0zXB36mf;Xvxr*~mkIn3F>WmSFYtrJobtIv0^dg*ATAJiEO8s+9D#2o=9JGJ zBk&Exoa(tF1ips&XyO3^UrEfVotrA~WyA@@-2}df_*mi&0{0|7j<|)uXA*Pj=Eewo z3Nfc_?w-Hd{}YHi5LXF&3~@)|3V~Y^pFmtDaC71liAw}-NZg6INZ@^U0e2=Y5cp@} zlZbN!{*Jf{@fd-35O*aWA@Ek>lZgiiypi}6;#7e@AWkIiCh)t&rxJG%cscQD#4QAV zo%nR(7=d3RK7)AAU*h=_cO$M6_$lJ<#1#V1B0iJ2OyGxz&mt}n_(5V$dE6p_?<3|^ z$1M3z&nW3h(`##mAEhQ0D(6WUq+lN@CU@{#N7mb zmpFsCgTTv)`w_Pg_;upTiDLwQiMT)Uo_*r^6AvJ+68I_ND~Kxuo<)2mahbpm5f3CT z5%@u3P7&N9f$t;c6u>PIcr5V{;v9i*C1z^xjuH3y2>c*1Q&_i1;QNS~y1E4dk0oZx>gEW1D=|}5cZ|R{5Hm$} zM+kfkF;i1_fWTK0GbMFX1-^_po4A|67ZKl2+(F=;#FL0y2z(~-1H>@`pF+&k(cSZh zc>csW#8mG2#M&#}YqIoFnk9 z#7_{95%>n;xx^y`zJ~Zo;sF9*N&FOXs=${K7ZP_9_#)z`i8}z}|Nr~%e|O-2ci?|_ z;D2}Ee|O-2ci?|_;D2}E5bgli&C)`#^M((JNy{r6*Dzcm*3L%9w`YnQ6O)#o(!JwQ z{4e$t{_niK;{vGuma2YOxGKJV4(qK^|401>qJGl84yb?f{I#Jq^))?Olz<% z?UViET5I;2g{xo+vuW@8oRs%*UCj712B%F;c?4!+(t^9j9S*f;j=eI*N!b$)J2xYZ zT^IW->NObVUFZGZ%|_wq)4k>wq^)lXL3mjM*~S=PHdn_i>Rz@+wgcr2E!^0`jV#Q$ zntna!YC7gzO~;(8>6mjh9lvT}&eintS1kOpg*jK!>vOK4*ZV<(J|-#I_6r1 zj=7ej6mL*I_6rEj&m%`bA@_&3<9o>J6QD_-~zq;8LPaz zg-@~YX%;@!!lzsKObZ`x;j=8<)xu|3_)-fGu<#`oZe!u*7Vc)@L<@86RKH&hJD9kE zg=139@`e__8d$ioRlk{zmknwblY?lC2FQ5K@wTzio){R^+ZSWE2LakB2SH36)7Zkz zEZoq-8o$N(-@z=;G4)&VF&uBUr(KMR+grG;g%d1%xP^OIxTS?JwD6G@M)QpJUtr;r zE!^3{$5^jz;&x`UT52lpa1KD;wY#+t#stDSahBK3oN zy&?{SqE7D^O<(u2yx-#=qY+sS{Z|as_1DD>jPmuDGM=zQ(qDu7(t8C?*H-M4B;%pVo2o%Xn)sWG9X?|}1uzqg5; za->c9o@?K$Fb3jY?r`qk5e`G!5qNIzqhi{5jXRBNC90-PS<9NDib0PcSKn8X#<dwx>7cIx6>C_Rb#6mLLMfND8XD7USu=$G<)`AZwEQC$zI{^6O8#4@b{>1Q zWsJ*-Nm~A(PA$aUaPInwddDA$Td{H_Z$xKeW*dHoWdky`0@~ zcHuS#*G%0T9`|5gW&8}Lh(dF4o75eUy2pfKGocNwA38ezPUsIFmku0%RBQ$=X-{Br`3`}l{mWV569{DaWrXi)p1tz`!+~UR$#$oeyyR?j zuX{K%+_@3th@WYB?@zq1*N}d}b-f1n4gS_^P~YHRgVTba4a^8NPYag!%X@#^scFHj z-G9#re(bd08V+Y>1iu@W5&R}CxW3o5y@vG~9`4*#s8Zu`{=F@nn|O;5OW|~)U_S*%HngoH-Mth zq{ZRDw?_<(5m7Tf_iQOF2?sVphyekyG(PuqDP0y0yd$LV329eIGxEpJO$&`LOADp+ zx^hTNM)2owpzD!%^yp^q?i&re#T6+A1&Mv4)hUb*DMc&Chu0EsaLPUW0dV)S>Sbnr z<7R$p#-DTxCtEnt!U-0RvvAEuQ-8IED=l1Z;Zh41Te#4|Arq6oA|!?bkH#@FtV!d; zJlFXe_hri0OnXIKdm4q|zA3+#flfEDW7kR2wq#kOmj-jSp?5bt?99XGvZ~OhNZ<{?o`jDM>q>Mi~BJCc;|gsUBOb( zvZ-jddkaFO^ux^VWhyz7d~g##Gx?oh;W!J|;Df;0`07?$xYEMq7B01Lv4smQ9I|k> zg|jT2Y2kDWCtEnt!iA>)tMPL@?=JI)vzuZ3oPauF{5&0qxkwWhhmxKcV2q!8n&Q@5 z@kr_G?CINyI!+f)-!>rXd+T$dZ`E~%z9QHD<_^qu4B`w@u!UH6&j z@62lreI+P$+Z zD}5(Pef_U8^tGVAtf>0>c={Ss-=&_u{jsvYpKlWV{dlOMuMDMbLR5Xf@dEbuP1JGz zs8IcVRq2~1^{vOsgot4>7al`><)~Y?zt4O6Zlu0Np1$EqUk|D8y8ec~4%C+&Ro`Gw zUu)_c>ghXD>HFqW(ch+h4Sf}jp)WD2zF1G+TGVlxdiquZkuQ%+eHS8%YyHikzDj(U zyl#J&@B-eyan!dIb!7gl^j#wLopY(7uN(DMmmB)rN(+};xYWYM7A~}K$imqc&a!Z( zh0`r;Utj%^)qV??Te#H1#TL$b&(v4E-o)uYAEV!Yx3ZUs3;$)|RVI#GZQ`tLCa$*X zC%#C%~8=L-yMH|w*7 z3eFZbnDd6yJ_PTkuIApk^bD#B5|o zIPjEr)h+TW%qISbiA-(Eg*534P69%cD#C&0sNXmEp2+2=37ukwvjr_#g-T+EbBWaH zV}`TEoZ(E88k~7Q$*#VQhvQUz%p?qJI#E z^bD+n<|_RIIcu69ng2Q=GLZDUjU~BGwuhSmyLTZm6zgivNKf8{@~b_$o4)D5{*l*H z`o~~o%E~_m(mlZXoP&8s{0C^8@{UEqJLXM4eK*U=D{+dU?8U z1ItVXT`4s<&;2NS@PIVn`Rl;Tm4Wa67Cng1J6d=qXaAQ%q`Z8b5GI|*5l*;kCd$Bj zK@G-*jQrcVAVGI+fl64F2?w5#Di7UVKe|L{aDMzjw)q3PYxjTCT`>ml`3sHk+;uR* zRlkCM!LND+VS7BH;|e}A=hIK5&z7Td28R3vQnP;YzYjO`W#*W;dZ}4I(`s+} zGP68;xrximOk88(%yOfDV!Y*?csc)IyzSRR#uKc@<@a$g++xV>gF|)Sry`ncKpn9% zSH(rSiuc0dYp&)!UoL$D9zDJS1irJEcxd6k=lk#vUqfpJoUR0xHpmsV)1(IHv}#G< ztEB;WwD1t}TX^+&X&^rDSGGQs^x?%Q2u-TOdcmKpvPMwi4B=m+%5b%V=9QolVs9)j`z{TRCNgG5=2#;&)?N`FDHqiAVeziyX6=|Oub5MWcK)x)}@;Nf7JDXh5 z^56#PPkZ1`5w*S1n@`s%e_CVslbimQ$*=OT!6!F)f`QfiZpnIff%*U5Au&!{)RFl= z5a$z@usD>o$jbjw>K4y3{V!zsL#c&}OHKbP-C+7xc~7JL+IrZFe@Mn~eJ|B%QuH!iA#IZwtY0=TY9FP*TJ5ahbQ)7w(*mQm((vhI5emZ?R0R^Wna_#gh&DZsj>9 zEud}CbC+av8Jbl}M*uJ;ci1u|c^%YTHVpM&f@dEMusjsQ0?-8YM zwA8oxT%*4OsINH5=&xJ&wS}t=jFaCo%Il10kDXD^c*dP3b3BV#<&9@Q%Ham-tQgN$ zUBughB(e$n<9j??90|LVqy}f$PB~!YM+Qu0d_z0~&;R1r0OPtgV768U{`y)PkjEB= zalovCfmkmM?(N$^l{s*%k$J9Ds0@^Iz|9}#jj4x^RJZ8spJfkH4>~egW9kPt2n|k8 zVPN7N&Xm<^JWZuaF`f=)e~@KNTI^i><}qSUnTSG;r;SjX`DwYJTGVkgN07dDUTKV@ z$SL(P5R3J>=pf>Caub7JZfKJ^9%Wg4O+U)4Us_<|Y72*K{Fqt4W~Pa=t@tNoQv z8T#Gwd=n>I^~)_>d7@cA!NTd*_?d2%XGV?J0k40XcB6mic=7rpAolNtm7;&~W;`rF zshfEadzB}c?ae;M#BtVmQhdBwp55NWg%4VIx`{(peqrYu*)z=g3D)(AIc9mtu5XnW zPciCyGW?1n&BS{%(r3@T$JZ~;FIJXJ|i0A*p(K)dtI_7)mw&VF5;1%abnJ8pDKMS=P z&uau#qQ>(QdSyNHqWa=_zu@Y=K}<3~kq0wZaR=D_Hoi4-_8i80!8Z!M^D3V{YVoZ? zjOtUrzY6(7886|Aa~1z=;iS0qEi_7LcH=pJ6(g4#JW)~9?mW6>!eH$PfnZ76kJ){O_zB15T z8sL1t3I^JH2EO^uZx6^urZ39CmlI?UQj~$OabK}0&f%Uj_I0v29LV!+fY}A-y~;qY zGVleCIq()e2m?-g1PH;%Z7$4*`Yp={^}+JuHjoqdZg7!chx7gstpzhzvl5v3&ej2q%t*QkF0~Wd#8S0I@wE6$TgFFf8!r!)`5AW#n0|x_cEA|te@54=VzS`jh_i` z!mQ$Fpq8JnI2u3qnEae_rlL1K+ zwfMOTHyY>bo7W#dFFWDT_?i7Ln6DE*kN8I8rxicHIz!RtW>)e=AFeiP@$(s}!C8e< z66B{9KhM2e8EER;fW^<>#|jP3aAm-XpW9_I&XMl&+XIWA^OS+VaqfXVu;S-5&p;pF z2CVqmTN!v-84&Sv`x}a*^LL_uQQ{}r;RKsWnoeOQ(DZ6tMVfXbT_ZG&#Lq1(sApVv zl3zz5c^W-_x`pG6eAF$qaLB@TdAU_y+4{ixGAEhk#n~2~VB(s4Ok8Qr$1*KkW3Ka7g4>YJVR&*3ehbJryJF1jn!r!DI^A zLdw&eqA|74L}&d4gJmihVC3gv-fN@==XLBt)0K{-0njuYnD|xgc3x))k)JTb+JI|@ zC#nds3suO@yg6tzuEM_jMG$%Ck@rjKmT;gqq};6+M;g~d?93{mGhsLV3hD?AhVDs4 zy@Ou`xAhA;&e{etJw6|W+(K`S+H|5XNCa#!s3fEX_s{3j!6N=se7QeT?+4$oYUWo)1_C?-~)^ zyZ(F;ombwqT6))90znC8HBxJde?}E`Dy(|$ zEBy4km+7aV&Wk9KGllU*IP3y1oEzNg)FenposClNn`faq9rY|SF5;;A{+=VqxZOMN zqVJm*9CQ`6%#2>+I*J?U{EFiwxWB>GGMlTrU;fKWXiu%5M)u1qJ^9nZU)|EiCLgnG zyeZDu&n`a7teDtfKoU4XLCO) z6f*6VTDW|vSzi2*i3^vTxZJwFa*t^*(HtLzzv<`I7PXcB7J0v=NW9-NSH9me20m8+ za)}YGjH?FA_@{(_7IXa|`vr7eoyp-@^t62MOb(ndWzt#V@rDEUSK=RVz=NO3;boWL zGLXH1BV6Q6P6hUr>4SV92195LoV*B?ySG<1+DRMndF@$2ym2#rYpoA%ls-5ES799> zrKW@O!5yeVV&$p#ba2}3LWn#cS|B|O!|BOFDqqRDU0Q&bw-VCzVqE0880S8OBQY+X zN5$fEKmBF|xAqze!#VJ~K0IV5&#cVES~1s<+M*^0$=!=_FX4Mj1)U}pV33sO%+9Y} z-{*LFGhI}Tm(?BRIeq8TMG(?I`ePi6%)hZuj^S@hWJu*JH<-5{)K81xr#ap;2&Me{ zIB}Dm3>;5^mEb&j+jDro@nEkWAz+E~ZQ@ymQgZRIc>b)h(i4IncPN_dz26h(^@HbP z+!Rs5{rz9aGxjf!^3JvLN>9$OQ@ck9xwih`CY$T^b@=~o>;EJF7oc7B^WR(dynl;e znP2|nGVk7N{KpXt+yR^af1WNLO*qg_+A#RPxjz0cpo{TP$qrPp`43SP{tIax{tKzj ze>@P$e=0s8|DQqZ68uL^!T;xRFUf!UL8yNIbHJ~||Ai3#|KtCh)5J}7GH}e||HA)M z&s6+Zdg}7u>xa#M@+=zvJ$XI+uQA7mI{g3gsQ)AXi_k8`|H+JsGB7iW=g518bF`lc ziupJfIM<9i7pS}bInHB{`Nzw!TNDmFy{VSiK`C4u4orv8<8261oKf_`{hRbCo>BY- zbp+kNlYt%Ket@`45_@57xbG>XlGtse355GjLdq8;<8$|*t`p+@59Uoo;0XsVp>jp} z-oYJsWfaGWgWLK9|LlV~(HIQnq|*BS38GQ`<@|N2=7 z$%o5f_`eYE?Kmx#n7(ta#U3>Iz7f%t@!rYu>^6km>H;Uz!(XsQj+5@;TNsaTMqC_Hk0sA!QsVx;%bycnNQ@Z z-1s6Cb3$|ne=PQ3oAg?3yi)>H+Fs{UT+)`^kTW;Y>3&$-m_~|BExD@j*ZN1v9DKc^C z{U)~O57pNCU6xfp*}`!aE?;BL7s{V8?0NGa-UTuL`55z`MW`d^KR{ys!{SiVIjsRB z>kl1J>SkN^iY*+naG`~Ze=yruX<_?%8(aNxYvvpMtAn$5n)d40x2`YUZq_fiaB&~w z{EdiDd~|KR-ckHF*;ETZO3GxG9!D ztUyJO@)HH&;b$M=AHJ46$`A_*U=^W?3yMLh!MT2=j0JJh0AnE64v#rX8F=wSzXrHQ z$2ApYU`q?3!HH1@UW&v(MzgnNaX66X+W?~(on9H3pbR{Ny?CY#eWd}cP>TKKWk;(X zeEV;|J=mhcr801j)Zkp83^?Lh4#T`s>@T0;-J)r}4OGDZ_m`D{A5;&%#MUf(Fr5ZM zlbmp1LAe?Q#@*(`7cvy%b@GoO6nnwg2<{d95BGx66g;s>1ZE0Sd#M%Xfy^)33FlUEHx%nO!(G8AM7XJj_n73lZRc)M4s?2mVw?|_1vsxc+u*mG zc)o!J-y5U#-g*5cO)b7}L9cmUzwY_Q4v%~1VSbN1Kr&=I=I&xy?-%?yvdoV^D_veDfUVcka`Q#f$O2G8dPq=oM9)C}KmpoBAqaYLNo6Y9RCQTQXijdBib@>X030dGZH)L@do zU54!z+V`%U1dyB*exW;p{#seY^Z1RFya?Yg`6iOzyT!eY{;2UemKHcZuU(Jvc{=Kd zXR#89HFp}(cUvmeHH7NPej!h>*-sII?hl}-%23Sf2nW# z7^8hT)K|JVTKksp0`_+t^*w<);(p$t^j#wL%{29OqrS|j`bK&BI#J&_p1$LizTfAF z{$6P6t9lRm5~J!1c=|S>j?>iB_Yn~L`-0TB`%a_31=LrwC|ZBt;|1(*F7<6j9ns$h zl)fQS-!rDZRO%~?s&Blf?`-Ou;ORSE>1!hO^*8nHSqptxQT289^zB3)=TcAKHX!!* zEx0TA9lpcpZxQu{o{!ew&v*g*JBRviLLJfHN0h$NQr~N)z5&!%y)c@-JWpS5>RXRG zLf-{SUmL0KI#XW^^(9AbUy`Tq*EP`B)@$F7K&+t{g$Bf}HyKd0_l0W8O#AYC z9-};aouI+lj5@;F@ygooROSUHx9dzU8mRN^g~#J7d0PCd{tkvqV#^+uKp|;C^^I;r*u*4fi6@O_G zGj%Qts5JB>slgfYx=b>d=fVKfB<5jD!46?yzHbA}!?Zkiywu?Qh65m4o{M#d@-q3p zF~`_joz4Yn(P1aVNN?GK#Thtku-$nHH=Kj*MwD>9;U%z#gY8(s;7QBWNdqn4=qj8` z<-1r5@HR*A-fw{udPMU2VPqcmDnV~7e`Lw>_}tn1u^zD1&AirlzHX?%#KpS|zPedo zm^j(O2}MSHaTA)E`l=r`aiVp7TyL|y<^&Tb9%16jEoOTX;*D~Cukv@d353$`-Ow>c zxtoB`oa+9WxY^WK_=kxz+nM#tP5%@A+NC2t#K~|lca0nR&A7hK{CPo*?LW)tKP6Da zuWc*_W5o-$1=#`NX~|pe%+=7teyd@i{hm?Hd5YPfhzvOg*We3%~~WiI9*h;#GE8F3EuqMJCRjH z{{DqC=wap1tzZmOS2SWUzAyL{+EReHHY4~S=h0u93djBv*V3^+2}#F(k{*cNUFF!3 zb9e*j`D&e<-mCfbp{*ZstwMEaQ$zVE2fZThbZ{xWK1yVWaRxqw0zB;8j^_GdvL~O# zc(K+k-)ZpK&HUQLr2*4FDlPxcwEQ*sOY`~!)8D)QzN%qNhZuL^n@#b`Kq|h^xs?rK zz9oP9BQGftirt20AyfN+`B!?_jv0_?Bqo{{4<4-b0159J-du=ktV8XLo9ppP z#1s8I#4Ufwcv8C_$0;#SA5GLxAL;9HX_%99QSPoh(L?d=p08y{$pM||@!J|GhaA7$ zuWQlcb3`B$3l>jH4bHz`k{x9dM#@=rF4IbLb5!kRhOP zndC^R!5N~g9xe^QL&f;N8>gS-`0v{QBSt}_TdznB&TrV#Wuz>YA&G%(3+zAQ8A$PM zfa@^yU)6&QWnhjna9JegRl&eKtXPX4e6h^$EvkZnqKJV^slho*8F1kgDhJ~_%=w;y zY~KbP7|^z6_O%jCbT(pBoVREO3^;-5YRzHOQnVX6aG2kS!Wb0lR}|cac#1p74;$fQ zMqB4M7moNkYH~5+p=qEg@}ny`0?Gqk@{mdGx%+0qnQQYSV?D;nBFh=)X8(t|WzIAr0%M&|XUW6kR;zcF!wW8%^p6DKw>^;M2FagCL~W&hi}zS?@ei9edz4muv`>r&&ER6o`3Gx*xBMi>gUI=~x#E0Wfjl3_QGp&Qa?CROd>n>` zA`T5hCX42YpGZ?Caj|qL) zST4r-5r&D`(##lX2H_y(U-7(GFtg_kVJ1FrI_u!nb~rGKBJX`ae)B3L|9Kv1KnoF9 zQa<_vrZ|&a;$8Z*ycFNBJ_RDCV&X^y^Guw&@W#Ez|KxQzbumd^=i>y3H|~jUg;EAd z4bCR)4YOPC@TrJ#@AcQU6Y1k+bCBOog}7Hx9^1GSQs=uV43#*i{vu0;B0}ciF5v5Y zp?vnRUl8NK5_y|e@FqHMS4;1ng8Dp_bTt$(V0I)2k(#2jGGO*l`zKojIc2=8J&$*B z4r((_{(!tMvVQT8&*Sk4?#4oTK)EaFjPklx!r`}KQ!zI%Z6qHXupT`#)fwMf1wytVeNkYx=;rV$Q&j4F&n z2miPo^F?jF=pL!TISFSz=&cSKuB{hMC*K%G?(l7Z`J%R7)JJM?-g`zGQ2U~oVHUnx z8-}o6^xGsgy?hg5bG>LEZa9aI=TO3F<$b71_r8b@i=ENB>qUE65`A8Y^H28+zZh5F zdQq}0uU#)HzQTCEZmBgs7MfW89tjEHcC3V_NZg3{s0dCaZV&tgwFxuyf1%Gr8V)a2tJPZ!3gH}#@(?I%wOno zZ-`+2;+lJ91oIc9+>0WZzo6)z8NvL;FZYB9<}YZuEhG47;)W62j`-*Q)V7zuNayZ| z;I70QBUp6*U4gaVXZaTd>VESlz}#nv-OPuL{1o+9@(07*R+xu#JOJhoTDgrRcFXTE zpLg~v&=MIB+)`_P8?ta>H}iUHeGcCrGWFRw`*idAY%6}ITlrtsUQ=HPqoLm3EDOh3 z@w)gXtA5DDaobE>Xz8ooXOgj?OLv&{Gp&3#(dtj(ICL{*{{fqMK!{ zrzTqCP0gRCJsT&kHp@$`{-s;`EAfMR`tvCK$!K4l^^B@-?ELl6-tQ_qIo3 zXujW(_m@gtpMFv0ly6{6kvU}ph}73aoAAO=(raBAjQL9_N1#juS|mt+iYtnMwKXU}ZZ=akh?fDp@yo3_2%q5MHQiC%Ud+{8i(xvrN zrS-CKV63pdPULPqg!M@?V0{Cw?INz-7Y@9NI{pVpt_&;dyMAK(_c^i3`iBS=PTB+x zR`{Kjrc^5?^O(r@L7&BIA{a6GPUTM-LDzX@w;a57E#lx6c2?Yjr-Q*O?_T_0KR&F# zuXQf60B!uTUIvlt`UlMynSVa9PvncDFOk<0&ci_u=ATWF02Uy>tuEyGg^S0-D4*av z5LY|ieAr3!s;e$>L*E~m-^cI#zwx{DF0`{=em{@thnO?H z^FkedcZA5~_s5+*exHUii{Hy-A^6=w6v{7OTl{`+x8iq(w0G$Io+>ps3vePr<9CL% z4t~#io=uC&?@PtC;P*$U^N;u)D>XQsm36`In-M|;zq?TF0r@@eJIU`@)Fi*ZycagUie^n`(VyPXNB!{v`)*&4Uf(r?>KwDgsm`rOh-4E=7xPV@VzSigB& zpRYV!CH=E@J>5I+SNHq8-R|&aD~lPF^Tm0}3dEg{UFC&67Wn05g_<{Dg2JeuFEu#% z*!rbcaAg1nFrHwf(NI9?U(AK@7o=i5LP43vS5 zst4tcxCc)8EZKuR8W1N!AAMHEA=#kQ zh2SZuOW*2CAH!Fl)Wj#UpBBTRKQiwz*MUdgDflnuJ^Ggj#jcK)-)6$9&hO-hjq@RH z@*^fLf7Ha8R{ey0vpg$gV6|TR8(YWq+Bb`^UVAC(h%K*Ifw){ajm4p)w#@*!YN&qy z1f_05fuYY$ws4$SxIfv(%33_RxB0R4v(du1S3YH+^C9xff!`hMIf z&%oKf4bXoy2R%_42q^>B_v0FS20ooHZ_y#2mwopu>7b_w1NeU2U3mFP_+mGzw9m`_ z@=+VH43U6BdgCv*fs*jXQbEmHZ`AX+F?85^{L$KpiR>?=e{Ar}tu}ETzQtAg=35Sy zOXc^}Exv`31qi-PoA(d-wnA!fzQlni(!t`}kSb-Mvu^_y-&#uz&i%@O#kb$KD+6nv z_S*xCZ*NEqPJ%LE@okQ0V5Bl|$b7p}8CZ_3bo`p|9ZrKR#kaD;Xngxn@~s$!sFz*DNgDBsG=)#q zX5SmcENv8KDB|=>M>wKbWo*X#;AC)f!Q)!z&h#3 zC%uz6NZKZWzZZEnr71M}&@&kvPP?~jDxI($l>TOXf3 z*`}VxGF0*RxGg@-lp36PY`I6_Q@dZ4fuX()SbX~Y7oovfdtmYD zG^xSqrwl~+)Cwx)`=Q{|18`NrrxY4eU!@e^nh|_DW2xj*7nG7u;Zb-J;M02YsxF^$ zZh`n(PQbe5!e@K0ZzPLOqR}ANTt-EIwT* zH8`uV&mDzN8^j_Lwpp6`Hem5-n$+M7R|c&3)E;vY5n*3IC;fSZ#iuX7m4y8pCnwm0 z2%px>(fD*a9-iRS50KX7)2cTmpEjeEe0q(Z4L(iah*6hM-56R9#;4E?sB{26WqIX_ zPw8lbHovJe-W|5_Q2BK7b!b5yJ{8Zdk5ApVs;AM8H|d{@cf0>1pT?co$d1CNiDFR) zd|HY&_%mSfsfX0y9H|UgeEN8o>cJ4-1}r}1OAXE|I0s_#>F!w?pSHnO1)t_YT9;3g zUzdEEj#BdJI(jzv)P*smE}yC>J{X^pN1)OH_>|z4d+{l*t#k8<0eZ zb1qdp)AHc8UiRs^|E(dKv zaf?Lu5(inj_%>i={~xKZFg&0PoD^9Os)B*nWN|pKuE1{(s?6Eu?aIJ$%D{WfzanpE zUhWwfr3@T$_J6oC@J&(s2o0iyrl>cVJ;!wcY|gv{<+mAt~0+p=0l(S zI^mjn_;r}Kn$eZr`6v8ZkKqjjawa1OWwfyPRnnEW3H)0Bh+hL1zwVG4oa2=Ni(mac z1EYN#u=sU^GO*$S*#nDTKXy?)h*bs-nO`qU4bHW~0Qj{4?k@OsLq2rd{Q3=1Djev~ zBJisV>(=F0iJ<6q`F)R2?354u@T(Ma5S?F%%T1j1vWW{{Gja6-6KC}|uv#yCFO$7P zJk5QW>xHO8SDFmKa5|KwjHBZ0`qA*7$ofioUqhc;-Ot1!3#a#s_Wo`k&wgXt?}9qw zUhfad27C@*Ks;Y{GGHX0m!Z^+GxfRY&7$ewMFs5NLR{l?K^>ugzS4h>)c-9#E24jd z&~NHHcv}=P@U1d%r!v6x4vbbD&^g`?s89x$2L0Y5#zQV2s~#LFH8@8q1I+(mpacf0 zU|{#h%D@oc2C85{I~Vqf)Zn~=eQ+)RbHahUXQ;e++&E|ZP^N#_9hnaycGzLR?)NfY z`c!U{Jjgm&D7yw1F$v^&grFAXeApJ2c;lw^{Q@U>2nw11A&^EnFVFqCw9w>sPNUyj z;~mv@+B>T9cS^nTuYY5Cn|jOFi1N1emM;+H$JARsRg@oHZ}~`39U+;H8=y6fhTD|>^mL}mGXV^`<%Q% z%CmaY4!*3g|)vHT?dmCfh%H$@=Kj(EA2WIMs^jdfD+G)08|3qouEx)(A7K_Lfa zq)^!v9)(_bpA;$)*VJyE)xOVkE=T|R_)|DQ@Mm1EwS%VSJ8oPQe(3Qmx6I3@ zKiE_8>@b-r6yYW_o>gs7H@QDM;)^C$Jew~yI4_KqG*Ra$;DTai{scTtM1vov_%&d~ zv%yk>(?=Ol=P0~*wtuZMknh`o70=$08l0UtmPMkga}-`YdvComaH?+uO5S$ z;HUmQ@AuZI`~UJ}$)JP3sx%kOegu~x))a8mjT{_|!G1QMv0$lq4Qbs2>Ji{)(GlUW zC6)u~g1#vk@2Mriv!vnpyi*tgu_zY~6yPfF6O|83>9TO(J|UG~b)6=qWq5y2Nagoi z&lM(WPj@~l)=~F`0~M&_-~DEI9Sf!Oml~Wd*u!VXKE?xdZiT~(({CqJtvvmP$cB!I z)1BfMGx`L7;s;_s?%zs~swryn^xJm4eM3?$BDwU_Z%5b8KgqAF7{Vg_`e)}m7sE|* zB3=1{PYhe2*J2MCT?z8-b-o8wd%kmII*g(ucR5P5^PTCQ{6fkroMaD=CN6UlJ$xH+ ziJN^{T|PI%ee>SG>sxB``5(N0_xYu0tRnR(lGNC8!aWu5-|Z<=q~3hLUs4xI7?&w34kmt@HI_TWCep|M-19KHMh^hOh^8sl#MY)PJ^4bMpLWqR zC12yo*HND2$=%RsV>}V#hn~+=FRdq^;n!5k@PyP3K$`mf$n4%|m&#}Q%X|hAUoc`u zrShxE_Z~_>oeLtC$@$qOQiJn3c7jPnbv;_~a4MrW2Fs+#Aw+GB;xbmTTuu0`Jt(5_F&WH(96$}jaW(L>#Ho$yFn*g>_ zGlMta4ZKC_oDrN_d9UdW%Q$ChWkm&U`c(#h-Rx@( zEco0UEM3k&cz?U=5_|lZA>QB4;rrWDzMsol>&55W@h`#cvZ!xygYR=$P{6&fX}tvL zQ|XVV;AK3#6oWCCF+B$lbWod}Cgk41TiG$s>t5l!f81J`FysWdh zjD4am%~E4!>3fcLwQs{Ca-=L@rY!aKZHbpn6_2(m-V|1l5XV^tlydA4FrJr$%-A|S=K~RUky36;6 zn1@#Mk(Ki*$M30TipudRnXW=V3E-O1d_M>-ZKbGuU#OK=Z!?F*E#Cg3QHwSnu*uf8df@g#D7v4r0nTa4S6 zgAuX_k3&Qe{d;2w8_O6r`lp~TDh*vEU5s}UbVTe-aXsP>7%S;`@VON)dmWdd0Y&EA zY9aP=$$Eav0W0k}uz?tzGRm8ve}9*>aqw5XOH|S(41`inR0G<@%D{HAGJhDtig-b9 z6Y^OxVupMhSOx=}L@5Kaqy}fl^|A*KNCSu_;&f-VH)5V54aDaiUF#Rq@%>cwM%FkX zOuBtJnj?PJun=W}vY;Y=rwL!FK-iG`8>l3{Qn49zn7JPOrf`&Jo}$`(q}1S?uG;(o zNZ{OcA)N$!Zr!L>O#EPRFz!^pf_}lTPyvzUH? z$uZh4zd8|lKVyV)PWl_1D(ZR5gN{69=t)7OCl9Lyo*NOb!Jps)colWSZ!_^dwO-fu z8YX@}${9&6)35nEHQMhbqb>B%LEiZOQ{ia*_e z%e?y$S*sXyT~vSSI2IrUI(tzbpx!$;&?Aw6lPZvoI&MalX@~1*9 zoeGEDdb{X>?oa1HWct%_OFe%|M_E1o6oX2_pQcNdhwe`+-x3;}ZNubE5&qQieC1D7 zxB2j=UoMsYREo;udG-Sr%$DZeTFcDuL@*!a zjSqL1k~%o7*xb8{>lC;OdDBg}%FDdun*>Q2G$ICw`%s8*E$%hf3-Q*uH$a?$N@7vv zE!07ULnrhPZwL*}5vr?iL{sRbBkM0t4H-!Oi}k`>r`p5KP}9XCzFP12 z)RT9i9NMJZ4W%5|KhhWd^YLf$S!i3m&?ns?{ZWB^=`iPa! zy(e8L95`0lIC$z}jXzVB6W*;1SmRG)JRdPUl-}f*`qudKt{UK4Dg)N|vxXxIcc`zC z2K4b~>F8Q7SNYt$64Vy%T8^@M#-AKi65~%(-)*+?xeKHQXE=7AdDq4G^DGw8L_RkH zrfc1`zI?7#vh>+xROa~83Rlx-E6>6Ib)Svoa|Lwk$U4Y>W&F7jBPsoN&JgKe_2zT4 z$z}SPmCt2+ay9;x#v1_IxFzQhJ>p@&r*T2RM zj_O~1JRg4NM!)p8{Hu}F;IvW(EdN^QC8?Rd4Osrge3ei5bsVT5S1tc4^%BT^BSjB% z{~8LBnctW*mxTsr|3J;ZdY!5KD~4*l;jljc`sFa` zUzImV|9Yc4xB~ymJ{$j!?qA*Lg8yazx^|_!`)A9Z)Sus-MJ`A2uLMu7{41f!f&FPy z(LeX6k55G#>h-5v7At?Mxc*T5=}cT!*Pl9J&zo$t#;Zx5&)%kN9P)UTEHyZ5u+dHf zmOl;hveG!;1}uMSDK$7ZC6)SqYDPp|(>2&2!CD-}zrv;6qKZQ`4k5%D7Xc$c6i?6(eXNc*}s4`sbVB(dEN@5DNo^^apcN{dY z3^xKhygXOA{{^AJIbJnyIj1|<{?(ez!TJ{pxo7ls zq9j)+>8oeC^8D$wyr}kYmwrC*sxu588v92FosTf{<8GH~`L8M+z7adAGEnH@yz1SO3<5I<=b#rg!C5t>4-Zn_)~Qa zsnCyft>w?!o&m|9aukw33*dYVPNAe*=953O#YIv1)9$qY9)EH%dt?0SBwJoTe@^Tg zoj=)d1noR^9saa?(l>vqI@QCU$wi7k-(39<`I90wI4L--5hec2_lEgAX`q%rUy^sB zNr*pjEQ!vaGE@@$xzu;_EdD$oH8}IJvs}xcui#FCKSfv7y^0IM7O56qP@784CVe{852@A&y)e zkUtAfjLx6Z{YL!3?=P9S^els4_yL*2F}S;%UT>v-U*42zv5D8}z- zLV}JuO<5%rn==a!v(E3!tjeLj+**C7c>3HyLLZBrQ9|E#NT_cq`x1)n7Db<1_@nWA z&+2`@&v*s*=H@_!GXZr(lOGWZcRQnn!lcbVv4OSU2OEG=H`CO&JozrBc1dUN>m1{L z{3UM!vV+L_CF8gHJ%a{9`5JyGf7}3Ppx1(y6z3=X@+bXr`|@?kNh6r^0u;lbD-W0e^IA>ZgNNSdu8db8s{+w zIxo>QGqYP@%{djt;lOCotnJPPqFJ#^3%mze;1>SJ;ENc)^z&s8&9dT;cV51p^JNLg z!+iAfWpg>X67T=8Ilj^$WO-uWwoK-!L!<`ho{MD|vd)*qdvm>&SNb);JgW%lq%!cK zn$8520qcC(@W)gShWR$Yd{sMNcC6Ikym^uAfpxy@?>WlAUsw3;K@|*W=gUf^24|o$ zV4W{}+A~n73>@2Nh@c4nQc4cE0SK&8@{=`F2)7tX8MMmcI0FP5X%!&aO1et1C>LVAZ#99sk|&$f5af<}vm9Z<&`RUf16*IW7NvKrIHn zg`HdGd6xg)tpSSSBz z#q|t`!Sxc%3-H5~_~7nf-cCHTNd-xL1J%cO zr<&A5u2bLpis?J*@?C#FtaniI{hyp)oY@+->)k)-D<2Bp$LcG2<8QyaB`$-@6`AK3 zcb+GothIlTGFLs>Q>Bggyh?IQoS+S+)vmrDPnQudtc-)uJMz&1QXKo^`4T$Pe?pul z;>W3~P{)7zs2z@YLTYf%QH|wqZovRU0Uc?gXJE2#19T+qG+qy7;B)K@ljmnj1Kzom zww{6GeH)-7X$KcSdq~^^XS^~Xew%e!8kC0{A^YM_&p=I6))tVe>vW{ z#men!;p9qG=ElJ(xSH$@CGEv*B^)@0O7sncTAmlt4pY3;-phGzxe?lq8J}w=1 zA-36Z$AVw|4I9zUFD@XLQ6qN~YDCs=oscKrNcmbf@l(T}+-z%n$^OJFFSc;j$7Xrv zdlt6JLl!PxYt}Ee%1bR=ZQE{p@hmvk$ zT#rmYQ&H+xTK3|s{Ic5WZ=zKmdfRA^Te{rD<;zSQdc(w(uNhdIZ{OQn#e;DdIlEe^ z{w<_%yYoD*5_t0`t1LCam4;8&weLq zzYnew_K#Kef2I0R(rJZ;{cTX8?Ei99bo-_C_g}NWi|YA&7gD(0$*b)@u;{-}zejcGsGs-OO|(I3^GSg$>6d(nSUN3d%p5bw|9EyVq~ zaGTMd9F)3orarf3b2R(PR zp0-A_{t=o?cKxhq;GXACb$4bJ7t!0TLtee_6` z`woCwZ=M&#b}rv$!6#on87JS&J&(mmdyhhWroI0WWT{=H(aygK5=URBIp{tvGbe3b z?C@#wNj;6dVdeo7_QSZj)+66fDm)wo%mZ#kjp{Glgoy?p-E5n$=K8Plzq})$h5pg| z0{F*tZ$0?}Ao^b$7UTCOxO*Cj2Qesh3#So&n(Pn_yTw57uhWGrL*MOg=dVO*K&@LdWL3fb?ZwJKZ{G&0RLD{W5~T*GP#I9`US%pK zKAfuzeBD#_z~8!8S)>P-Nexa3Kp*EvoIk^}8 zTuY8{lIZc!ie(YL7WXvxxX$=G`d)iI;9$SU5NwPVs}Xj!8~`~X#iL94Tt?k+ zApbnSyugBsn2=%~N8-&f z<;qNa?jSh?dLD5Et`lSIudH-P9-$gm{(u}~(^bRPOS>4^PlihD3(FtCUdxej0vuCJ zpnK4o_zeE|BJo4hljd?&Y5IAR3+++NDf1sqBo|hZ6Lr5cJ&_?V`aHSdpyOg0?k_VK z)s4pJ2AhzJJ!g)KtL3;@_x--9u`tSU@$|4UKhE;x^EqCwb<>Zo!!Nbp`Dc$vydT9L zGX8ctN5uO8u3`i}4v-P}H)`d`D88_|v{@wH*N|-oi1(RC81~)rBoin1FmN6I-*b-@ zZx51Rh8l>Licg6iW#*S#rYdsIM9=+^48cm@E__^SaK1T7vR{2i&SUZJN0ouoeH-xN zI%q)mdPQn*@{|Gf9XY0=TTr~;TbcbZ$!`z5xULMmBQ-dklmYb}IWMl~Wvd?C=G#D( zitEb2#ZrT_2IngnAR^z9d-iN{Nv_O}aeir}qVek#t1lAv4WgGSJw4%UNx`R3&VW1? z7ce0ABvm7u5Zd>#_pl`5hsHS{XJA7Vf~V80$ZVYlaH}o8Rv%~Z(@kz=;_TKYF1N~S ztn$isM*TYZ#hknCcz=N351+q(zxsuzv5doFMfHTUlv~H=-Wdt98^E5N92I0|qKbe1 zGi%2vKzd#vH8|g3$CeNGFGN%A_rou}R~b0nw*m5>X@@cpD>XQI%0OXl6d!qJZ4@7O zpR)vBE+Y6ih_RSY2U(mE{0gb+eQnj*jO$Uv=zSg|0%#FRI_G{ac%CdSsr^uFWPVe^ zP!{1&)b&m$E=KUE_Is9QWG-;3!~11ip33;U%}ov*_<5JzbqLS<)xYXK?=!pC_q+?_ zkcd1QRsPZQzFZBezjuuKyoXLu&-()32CU~DkQ$uFl!3_ezPp?Lyx+rJ70){tV)J=# zg~N%-)?Fy#^X|(hAfET7_wjk3CoYNdyvrC84)(kg;9|IU^*-;Kzs=`e+|+#Da()vl z+Jy0S?HQbZqK;_tN+1rekJCsf=?So3o4@6t)J;q=^tpu=F1F@7aTd-t$A332-qe@e z!o(q~yxJ-+Kgz6Mex`}j&oXeG@%)E74sARy{S&uFWwX|J-VE+6mUC8}eklCb){EAu z!Kw{*uo=&+@w`2DUxb0-z71I8`IkYV!C7*=G+>SAr+XWrf1l>J2iAE0z1j#JqzqW& z`I5U;51#gIpvoN2@0J>zUyhSKh>Yi-oJ#U~HcE7r zJe&s&*@M%38?g9%tkmG-Dgzduca2d7{(XwyTV(Nhfz;rfs0>8-+<+=;`8*JDNAS5N z#ZmZtLpRCieJ4vkZ`>>S{1kZ|H9s8y7tzKWlh1GbfkGeoX=RMb&%$s^ov&%ZpI7qu zjC(Q07<{*>FTPybz3goyf-%eY;?GLV7Q^o7i(9FED^-423zWy;OKI}rOZ4(y!HTz= zo8>3fmJ9XE8=`n+JDPoXM4On=n*Yf11}qnrZ?nq#2KRJ-e|ap+_rkoJVU@edz0Ce5 zUtr>LYdoyH&@4|l*1*DloAYk)56<;YzFGQjRR#rxy!^PbRNFf z16qjh&vm#>k+^ABNn(HBpL4T#S(I9z_vG|=S z@eS0sgm}FacbB@CArFNZpFtbImf(C&eC|gm%E-?jBb!!+roH?ioAyCQF#jqDrCoec zlz`sR(_2r8pLUH3vd{RVQL+pwfMxyv7!m@O7oMcBKTMu zE^2y{C5^_@Xz!fM$f5Gk+V7n%AcfHOT&@5` z&a2n=eKzmD)cXZPKKDhn3}W+Z@6!&a4bFtXR`5@rsd$>-5svm9L^mHz@z(hpdF^Ws zq4vGg>Yr7+J5k;bcH}|oHZ?-4TqWnuC*UtC5neSWc|Bewa>x}0Q+*r?eUf=om-DtSVPp$8(w(zpM_ML>A z`FPKc<2jH2l*#$_M=HC!2j@G;W9$5Ed(Xhi6a5B!bs$f9dTP>CvoPo-Kb$+(D7i$ZZ0e|}l z+TLnIsloXfM;zq&_n%Z|u(uNp(l*L2Y(S73px6J!Qm>O zdlP%deE!ycLEt9u`F9Wo^!<6!&|2O7g0|nu=e-+Oas^`jkMeoX1XJ+5?cZTeW5|j;Z+)HVkoOBV zjgtN~sD-${_3sx9`~gPs1nm8SWKTXHp%eQB@^!e)xF5 z?6TtHt5SnA1S3V1_!#yK%=c};ijOOlf#0y_OaoSY{LzapDZUL@@$qF9UFIkQR($;M zR&|TMIL_}avf^V%YH-d{2CVql$#cMLW#EwG;|@3y=6udZ9Dxw=@o2;oF>~5-Y(4Su zrtQ*SR1Y-)mM?Y<3I^Y?3|24^j{&4ouY^UfdU?Jsq{UKu#tw}C1QDB5uR^$4NC8L13J z=I_0Z!A+^1zt2Y85iGot;wba?=Rg#u>OE0T61HTZ0tvU0j1dxQ>rn+9DC^;&^9y<5 zWB#7K+{{NaSD3iQ!lla(%-=TG92$SKcA}js9$UX}bd|R}bm!52>1FY^janXBhmCSR zee3s)J|3r@{*k^7Sp3bG8k|wefc^VMQ$hHnEF ze@~PeoCVF~Ey|;Vh&NYmY3uFB-|Bq!jbiT{2tD@dzt^^KnPl(%C?|Ud;R3SvSh6_6 z-WHr+ZlSC`-X`xtA$VKg?;DlAQ)bE^8LtMA3zo$vQ~y`JB1 z{$Q-C?sHDP`*W(Qt2=#TKShbp``%;_SqaBD*p$6*It#6V7}H)L+vPt#$M6>@&Ns`2 z(~S9q>mB{R&o$y)J+EnRjb;dpu(ecwW4(+MCCKJF$ONLvrYf{`KRseBb;uH!!hD&14{DzQ;i2zan(}$2ey8F0h>G1AQ@~3m;61P zy|p}n(T}0MJvc_}J+AHDZP*)c*xP7)AETEwTukBOG^eSr&|DgOt=Rd-x^RHkDSF(W zi6E*%YQd~P>J&4cGQJyYu`@Q`I(CFRrTQDI5l)mKw@JkbYmpdFsQrM!Hw&%gyX2dT z@O{nnulO#dE%JC6r(5H2jJW!Xc6AGzZJ`B*VV5k(H|C=K`LU+6KOJok6~*Q^*3QY= z$uDx;3F~u4oRx4_iqW4uw6Z_Da1p}krP%ZzD4AgNFOW9TEGIu`mJ<#h9S`~7dm zMn0Voj@28-2%kH3=vS)H|JvUOJqoRX9GAcJ-iAN9pK#8HE4r)suOp0;6D={a$^nzAyK z1?vX9y~6RhD|f!1?>`R?ur$Bpgxk0WLzf3-P-7bJfAPZ4LY&7p zir(*|w_)zE&%0E18M{G^I^9pjH2U+%C!+(sloRUh1ti zobzqS{dw_f*ZOh?VExYTQD^OeAANu0`un0CoXMC*FEVIPX=GoWe3eEoC=1q6JjrDm zx&FTBvnREK8$CO4-`^+;R)%(<^ArmsdH?eT;$;s$iIE-z^YlPzYztKBkDFenvXnR7 z7P530&XSj_=c=(+$kz$fQrRs^S-!SpLSJOv7BNq`!gV|rc(}WevTj!q+j;8zmW+BX zm52<67HUi@WIlZrD7yLg^*B}kzEJS{q7n31@&)XN*JFFml)Rdy)yk>I3-_yDK7f~D z!szi&_Wkzjo*lUK_?v$F=M3J4paYj4FWjelaEEf>)Z>Dx7t`ZjoF#g!;yEmr9$!@! ztiR~6M30M*`J%@G@T{K87<#PGM(MFDo1w>RI8s250qQcG9v5=R`d`xH7x$_w^%kD> z0_4T@n6n#B9eOOT_WOEl{LV$j$BR6#Oxp?j;rHWLskyB*_K7Nf^yqkA`M91PKgOeO z%Ek4(@}DEMTrT(QfO>R1uY62dum)=fuKoDO@6it4uI#l3_MNdF;jdQ~tV^^5*M9tE zwu5^-J2+qtOohox2utuD7!kSl8 za(We&88`6&WJVQ^S;&mfzQq5RWrqE{at0IUB6$(=yfP8C9rx2A^Lti~KmF!>c2WJF zGz$k+QIjg zy!ODQ-$#`NtCM!%((k>tgXcUuaOpQjJ2;GI*AC2|M{OX5#K29 zhsmv2J{D{7YN9BOJzl}91Tb`oh;ggJ?a6>1!aCqFGq2Dmyz6?tKkuk`&vxD(!ZMYE z8X3dnfTv!;`fUf+@ICNWNoi~%T6y-1>g?ru1$rrOk(p!3p2M>hs>9o^Z$%g5;W!=K zNC)!C*hx|7vHie59@Y9!OSp!8<8HlX*u{f9t=+k1aBN8qR2Hlj+VA_g!?hm6Xd+|d z^)QQX=*SKv{t7881vK=p0 zemnf=^@INMnXRl5-Ly7tD#d?zx<+Ldh-k>a4O|=94e)`(!DGrnjg0TqJ_zow4*kY9+1{%$?FOYz`wpuz&XW~w zg6F`fPRAYAM;*n2^&B37v*)=~=VuU@sPhH*wpX-Cj$5oBnyG>BNw!0o_fe4;_^#w6 zSvK%BD0_d9&x5wIwY>UdHaqUK?nm4h53Dcn8VU8e<6`>UMcq)Jn@xS@eP`@H1X80z z_39jNpSi=OS9`o2fxR_SlfAVA++f?QcG!HC)jj~PEZ!C&%aZbuCH=13l6rz!Fu(6L}_e&&kmRsv&zPR@%jym5!%5yH6+i| zSuvr5?m=#e*B&q{xa`qAxK&xOYG?;@l>_GWUi4rqMot;?dwX_3l{iMRXO#u(9Xwm7 zx^GbqnAZp3;Dh$s!O!Qt_TT^3l2Z?YY1IOo-YYd!wG9=>9=1J`=| zg+wjP{+=CB`4lDw3C?KuC=1qmmg<3PJ${4j;McQWdqCwo2H@g$5~9^hJ8<1kK6;1l zLAG|_P5F+QsfDs&ox%$)>iyS`wervXY|lzuH>EI}q5h}lS#zN|E||XI0Z{!181t$6 zXQ=+NY018yybY=3UGJuzL-d>F{{5dFxES0ozKDKPH(pe~3+;jRujog)^!pb*u)dEc z(qZ)bgzezM8Ltjp`n^FrNYM^l`u+4aef3}S?7*ep=adEOC%h)Y9=P=TnC;+p&kkJr zjn@ulYX>gzFZ7>;jKjhd?O21e00Oax)^Fao#`qh^`N1rw|7es&-{|cqg}(XwR-xY?nzX_G zYjHhpGDCM@P}*{*mc_HD{pgOv8U|<%YZ=Od^>hk{%4-j(I}U5w!D&6L#c2mxclmI@6~oQ8um@=e-gK8= z=HS$=!oXUOS07~Dtbmb5Rt)(+qQ(9Fp{Xa7=5o+T%}vc$noEXSp}DO%lYcVg{9Uam zPQBjN3BmP6An)|=>#J>R&-!ZkuZ!qw=pR{_Qq&dJGWq`n&CXwJ#S)LD3aE#%bbS6|r&41EQPij8u}eEsE3 zF1jysgYcrc)|)5#Xb1OscHo+?-&Pi^ zrC%Gm=D^H5t-shk`2KsZJ#fv}f6zVXq#d~C>)-5Q?K#g5T=R9FvS1y?!&--~IWTkF z{I#`46t5k4)3sy0xn5bYricUX|K@33&-m^l^YyrZ()JTP0NUj(3&Qx0&rRu5#Lc%=Vmoqs;u!@9Xs~PEil^@qOgY>lrfMUz*0s zZ>+I6OZFuHhBDv3xSt1PB_!N}V%hr_ccN9lf6ff3h^h8qk<)m?C?ntB+R)pn(%92D#@mvCBOmvema8RcJ7vM@woeUAvcLcQ2OK*-E{(kh zX0b~HclXZglz9kVXLZiBpp=s4YKNu`55QYxF*t)`$1V{}@U1fEx@(3c$2Vc$D~q_l zpNptxl|_BUjY8Ra1+SriapvFE{^|eheX@CF_TRgK_K#aPYx|?Q`|5n3EOD*qzQ(i) zY?)@o+vR2`2g=?jt7F%9VSQiwJ+nY@j;Z$;Y)QMHH#qliqnauGmi>KdZZCwpO5dSh z?Cr?+-Yrw__3HBjtMHwJqe1n?qY~xFA+>=GOz>Xl~+m<&o|qflk5_fk1c zeiDM}z2PpwRT}%KI?cnYQd~kfE@(0C$O*gv&(1kN@*4yA%?YLlZ@q4QKs$)>?0`!M z#}z%5q8tp=4z5xT>_lqQQaf0Aq@0QLqsm~bf_Ct4+<01@FnY+Jz*d4;CK7I(RU+NX z0b>R-sn)eBlLFr|f)m!pH7b)b-^c%F1v9DaeXsURwX%8G`FF54+WVoN@@Yny-al$V z=ZCCLyH!5%>jc;{HNVov_mMlUhI3q?XL2w6YpHF4)t zq`&umpLL@r>$RrAFa5lm+XfT}u8Fp-wKrN@Euv zqHX>BjDOMMc#n998U;&Z&+s5mewlV0{k7jFdK|q+`>m)PEZ1rGM;Qh&nZ4rK0n?5< z9@;^X8c?iaJlthoFXDDgR>GxxAt{TmH19u{5`5A5Ri;cW3|W#gJJ5o82eG7-eP#A* zs}@#DydztOX6DOFc-NORPhV=M?61bl@}(wc@Cf;0rTr5JQP;19Q~oR~*=~OjLpZ)q z823@MF<$HSA7i0@uRw6t*@9@L-^AGnv=_4}TzrFVdrfHX z*hbyotF*nJnKD@ke=_YI_=fS}*wFsQ+V;M{G1gGq-lr%@{wsSYGL8PuqP?83_BQhb z_IDcXO}Fhmt?fOa?ES;E*Piy$uQSG{K#^IN@x(blr!-XKiSPAg?Ue{IWPSO{*TEUu zwZ3f7R7UF3*b3|f6zf=D{sm{*Gqh`cdAJEr!}@YNj*-*K)|c1GX<^rwZ#3g+SYOUo zr+JvzUF*w%%7S(LQ#Am{`tpXi_4@L=|H6K_^<~<%D$95A0IV-_-U23M`Dl@7a8`7# zFPllS{O_zU-)l^_hpd}b)c@=2%lpOtaqA1beu8V5IU1vmvA!&#EI1zN^<|-5cC9bh z*!8aUWnKqUzj;lJa)^Ex|Is}kdRkxJzpPBXW$Vi?i-PKPtuG&JBwR~lJAS2QShl`g zh_h_4qS;;Us)Y*0@72T2vRq#trl6>M*ZQ*1uGj0!98=$-XXo>t z?;0pQ2cO69#hN7i^PX96Tx36f8In|%b+7L8BMQg!p25n3^*tWd@|wAx_YC=ic97uN z0Y%|>-qS=`u%6QnT>J6Swu3MBdhNjhILHMngJRkG?7){; zU*z3s+Qa_kI;Vcy))W2qN_xJtb&8_D37PM@&Tpe@9+n3sI&E&72T>f4fQ{lgukTTR-nHl z*a}_fe~!gzR0F?vZRjab+{`G;_~`t-)T6QP`F<7mla@oLlc2GMH0u6qTWB%2J0$nl ze;`2pd#Q8ft-aUA{P@fe{PP6$i<6x@Vv5Mb=D3x;_6#7FtW&vco&*g zzn6-8@kv-_%)+mwW`2#mEI|A>ua%Xq*XxaOELRyN3!xFLG76N&7h**3(~m+gyDuLv zsS;eTJNL07f6px!9hg+sfw$B~g*6SYoPbbf<%_K^rc%2&Vp@T@f0bs}A5!~Q@vV*g z2^6+5%f*Aj{hnD0doB0>pJP7Qf@5SXxEv+9|EH6zgn!;jp7>Q5ezu{s>5d(k57Hhq z>;>`$7-c=*oS^~Qe-Gzab8(E=e+MPne^%MQDb27yg7#y~cmsI{FEi%1_)E z_0`5&p4V3`v+Wtm{XR{7hK-Tp7RK*+(e0R_GL!}Dc|470Vz|~QNINL}Q1!sIzUpK}`FORms#_9Q-=gTOoSu zU&G^iXwy7fZSM8ZEm{m)Kk+ICdoNS3g+EXhtgG=LoN9Behq~KeNE+(dflFn|j2 z__uQ4S`VEVqI*!;vjdmf-c}Z@{@Q_SJ@kU@VCjDpBHwDeM?3fx?>J#KKg{Zg%GNA^I*e{=~wI`e?~*!^YF!xPq#`Do|JFTV%23{NfX z??M+twj2U4_WO@94;k}8AZwZ#Z}JqQEcp|SS$sYJ!TXQRFLjOAJ1}|v&i5eF=SZaT zSrymcD^0>WONQ-d&~tCYHWy5M>X5H)D(_SltS|9In2F^2d!_4YX$My+2Q@P8<&A+n zE||TIZTfM@3$hLx%-1ImU>$T5ZYAZ>`%xa`X+AlCz<4{Y1N**#Sg`KUfz?+Ictc{r z!IM{N2N|9nSbDhE4sKQ!tgrBxoIRJnSGpS4UPk1vx5B>tW#r7VpPYSs(q;0<<72jC zP=0+bE)E9eAu3_=aWa=yuD@5RC#e^HT#mSZV-I~g?pJEaC9#^QxHF$n>#NZ3LNtC= zbX;TF!`#sfJ|7GuPBruyD0<2$+t2^lG3L(~Td=AN*8bOEcND_B|NN3YgSyshA8_R5dhOYd@gJV@%a)OzLB}c!)_>nu@^`J* zj>c#QO+7ns&7f~63)bJX1J`;j!*=k|X0JUsV6N9XY6o%Jfor{Xv+ZDzcHnykJyl&8 zSnKiPhQf2#L zd9RrIQqLy`(;M@p3EW$Aag5~4Rg9GTUoT6(K2rt7vV1*IfPBdbqgUsA^<1<|ul9U( zk-tYNd;zZXV>H*_Q$^7|W&0T%dy_5aE8ZUGtNCg}WwBsgizmq(wO#MG-el*+l^$}RWp7^+Oq@Z1#gse51!Kw9@Y+A@3%f?J9ul8S40Qk zz%g^iYX_CI1DzN4%=rh~L9%w>EiZVZq8C1CrGq*;L`8qwu5^;J8z?*Pg>xItBg7x-0>ax#K4!Gdw#^?J=*LeTw-(DTK)(c~F zX56D4+^igM*y0^UitXSP&km?74qJM~Q%5@}#v2b5?k>3<3qFCk#CFg|JMgBf{4xid zDhgz4rZ^b?r1g20*43(R83aG-qQPVGk%wx6lmplI2m(=ZAxmSM zd3L~T;W9<{V41RDJ)<4CzDF>_cCcl=S47MfE>pCFyS0O>v;)`o2yV3<4DsxM*}`Rt zc5p^rMeE;qWXo&d`X0dp^)#Yr?Z8{MaG9bVT%jyj4~hePk6_6Roh<{`aTLDD_Xu9= ztw!R`JP1kiN1Vl##F3f!|FTcnnBOCqr!yO{1@;bj1jttEg z=lx^$Sy#S9xPQ!=RF*2P`^WrqI#pg=>s4s3`^Tr11?wo@2cZsJ_m3yeYX>)acHmln zzpX4-8QOts{r!UN;FI^f_JB%u+&|u<9W>DnTu+8A85e=J+1R&?l6N|I7oR;_Gk* zNBt92bLjeeIa0&3eq-kSzJ8DXcHq+QbK1ef+JQ^IkJ%31deAJ1t0E?;#K{VtoM^!p+YfPRPK4B7vnjzjfpvD)MK z+cgss`5eERoRoQ?RcYXk_LuV43d+8h7P9|*%_*0jFMdB6m2Tfpy7r%MJ*|aY867Iu z{p6WbN@xA?$eKddIyk}$ru>S><#eERX5UXn+YUN; zc0ipu?k5X=Qa#Al4z$kl^%JW1RC8(U;dfLIyy?twKRHS}XeSOZPEN+iBKs8WVG`pc zT-}@73Ia+Yw&hlbJC(|svl%L@z>x@}+!Cq{P zpa%=#U@sh$;4z5wpn-M}S;+R{TRT{%ELbDO!T5A5cOr$1hZW;;C}h{)Vm>t^^J{!B zKxw%@kH7rOcn`MK(py+RAIdz&@E-5g}Ig`zDR;F1_ywNNtziyVZ@a)myUq2rm z%U%)T%`5S|XDE)5=RG%~#OFPg*^KwwxY=L!yyxT!JnzXi?FG_X8TJD)Ese7F7j66d z2sW%^H)($xP@=zA2{9|-!xPB7GJlikueh~gFOY2755&9LW6s4m`x_`ZWt2A{*P{Yg zo{rJqJ=jo{<;rDcq(@ZXXPl&-&u-wm+<~KI>cE>A%DM z*pP0OzmC{bxYfsZSbhmKiQ;p|n)f_^Pm`)$GY?q1M{)2NGdd~j_9msVe_dw3iPI-3 z>u*h}md4)88vbG1n7>%-p49W$cvk*^w{z;+{dpWUoVxDDA}2wc97H?YfEqO5pbKd)7O@zEi(0&zbW`U#|$nC0S%X8)5q4fvV- z&lVh`^snQ&QpGdWj3CfXRk?-AX&Ptej%;4J+t${StULY>Z^p_X*dUm$`T|$3zag6x8 zutfR$66p(nrQHm@;b^R%=by@9S=% z-uZ&aJBz$J;9}OXJ(i&?Skc-+7fj=hzm&S%?!mpD9oYAkx(EN!8@+Gf8827MM`cC~ z{yucH-GlEIdhNjh^uVz_R=^y{+;4T%4l?LKeqXm1Oseli4Y$VPy+64ZyqSLVuR}Y3 zU-ydc)#Y`hKcJm6>Q9g3vSI=KFHzc4_M3_|xqcom$r1iNB&&#ez_q^E@9P%+`SpMp#-uTpvGGxi__7$gHX7F4V|)3UzsmQ-X!{>tVfkA>YT!yOh=Z2h|^ciRw&Q zpSLRNklP=ptRIIau?%NVz?pI|SUZ@Nl(`9ES}7Qw=x|nEE!yKhu=nYIn?wa}!C$qN zt-q(<@zC8VQ5D8k$px^e0^YCH!~I(RdKQzOAJe49hj-#XtxhtGoU1VAajPw^b*HST z4gfW#J^sCROuMW*#wD{4#huboq(uo+M)E^z(p6_okk z68$w=`9JF+^%6wAvpY6gSKEINx+Qu8+8Io7KKXQbpcC%HQPlw(Tq(Ue;6ZSWX;skP zIpgOVGdAG3q|B1cGh>HZwP6lFDT<4FU&i-OchY~4aL=G4#kKhN_@g1oskdEHBcmNo z#>@3dnO}E;Qg0s$aGP+_*WAP4w+@o#HQ$|7p&;Y?X9_yVU2JNn%#*lp>d?Q#UkYX+ z0LbN!I4MkTAOcHcK0c}#cv`m*n>bm zL2K3>4dAajI;>^+XvUjCS7iJCA42oyWV+k5qQsk5rCiFH$>4 zXlMNH{Y(`X>b7 zJifiFT-{ZUah038%ICg=Z@!Lmpv|aoc$l-Di3v)BVF%D zUB|nx_Y4o^K)N+x8B`6qi}$;|B-mQ&vzg1)>|ZAkGuLa%~f{u znc!+~=qkH;xZ`ujA4xCn>oL;h?+RDheSOhvptH-9&thH)Q>wpH(xh@w_e=myZyV{-S*tayLq_#=RV)v{(rrU0G<3o{Iw5h zzr=NXRae=#ej)Zy@jtmAh-A-wecac>tp|7eBsehog9D5*92jL+f873~8vg$A?(q-i zeDQJnbN9#HU$=d?{@nK5$Gh$O&EH7&BH3>U15W;t;&w_O5b6SGlpP9PcV~bIy6a zZgQ2Ixyr3vW%u~(zTWQnz^!-p^>)vfH@f__ag}dymD{_@D4O|-1DySJ$Lqd+-2HPN z?;a1_*DnekGLDA>qYMYm@+8FPEJwkBv+U**)zCa1MdNrB%laEgYhKHEexK?p$GOUh zu5zmD`w}7LkLwxs6J6!(&1QR=S;l_Zkq+{0=aju&GtcnP*6wPRiVZzXO9&J_^al*;Yv}{p4f)G`Pa2P^@YXT?)@@P~?M- zEVSd7HOBBykUC+fHmflnZCJ6rY4PyA8Q+fmJ}E2u=tgeaMODCGA00?lTeJN0W*m=C z{_zDoc49ofIXS+jb^d-B#D`X}mv>jv^GP+6wy+)Biudjfbi-Dh-tQYkzkEldksa5_ z0gNk-MMQAA=LP&c#w@%QGjoXJ{fvw9tW-pvO?kG-^Z0(>Jh$9u@Z3Aq!7~SO$&<|C zs1=@FhgXN^K`4@EBHBZFZcZ_HzMAiy=Sl@C63;sHOP)KY=(yf}gmD$J2%bxN_~Ti) znLKy%Y?J3|H2Bo#xO)wrGhj5R&s4-EJR8_?xBYVrJl8>yJd2_2P@ZEUGKW6z{?I$m zehO41o(1$vo>L}ko{R2dT_uWn%6rf0+*?$hlvnfR8;Q8~vz4NS&3+N%=N7FBPwzlKixQ%hevk0D*(C&w4 zd;xhT@NAQ3Z8Z4gxu=`K(|X3iGY?~d@SKQR$@ls9QU{|^B+q2Dhw5`Tpg4HG`7iH0 z*DFww^x2qx$@9?DI<5*5R}qWgxdu7shi5uIFjX3RglC&P2cp3z&*@zap7UTdsLwRS zB|KZ$anH}I56_KJB+n9PJCtVzRPEsTK%RG=!xgAVJa^GAdA|IV%~RsaVi7zCq1_M9 zj`$PG(%3mX+vM4Te_QEqe!n%z;F$!YL7s7lOL*@8n~rIZ=U%#Pcw6N_Z}wpn3L?xUyLU&(Uc2!*ev2Ao%+)o^A5%$F+$+o?SW_ zJo~_CkY_yN5}wD$>$q3oy?*@N7K-GV*Cia!&JdY{=auh!=h=c6DDrxKHvLkcJ?*$^ zNnFV+f@fp2`{CJm19_(KY?EhoH2CCs_AY~GRTvHOEW%hIJQs}9JnKu`vr#0^G_;56 z^9-Okcz*nzcb@wds7U(kNWbJ+(T;2K1zzWpCl$|K$T>eed+jFAXc{wlwnKwYp36EI zJaZ9JkY^U+5}w@{DDOA-;R_Y`-4+zdGY;*cJeSH07aTvIT;rYROa&?u&(p{$;kkOO zj;n*jmBS+RITh`GcpkpM|-F~qaiW}&o5Vb=XqR#ilon8^h=(# z?YLS=Trn(y=V9cWAD(sgl4mT>HhG@k<6EB}++pzCI?BN_8*vHGeyEjvuiyMKcKR;ez@8>_5HpT%bTj;#rA)$#c_49oOV$j4O{t@SKgD^TTsCZaGS0H}hS$%spMR=4BsTBQLzS3;3Ii=gdLo`WGWhdyt4$2-q%3REPX zYv`9eM~%=t->uBJ(pUt~j%fG8vl4DOu>Z-kO`gZs`Q}+S(csw(MuR*{?$kWjKcVBE zu#h@fgCcomp*@smEJWtudGsysJkKjok$4WGU-E2Z$93=@j4O^s@H~y2^TTs=HQsMF z<=H0BerWKi&n;~Yo_im6@XSG6qR-)|m3$9GQ3r!iB+o>&hw|JkGh8s=U(NB(bEN_m ziDw=9CC{CY>9~4GT!k!x=Mv?lyzx3>XdSGZk?O&jxnf z^UrZUs)HhV7DL;iJjX(04t?Ie(mT(73REPX1@udvQy$ekD@a`FEP`h*wEN*X8@C+T z|K!;w&xyPj@i%^6hZme3&pU2|(IC$l#3ekpr|G!6e#*QmK#@GN+lAxV6e4r*{CT-| zp4D*y0V)#D(ez86t?jtp{e*GFvk0D*(C&w4Ol9VK0?#&io{C15Kc0IM44&3-2hTi= z1;TS8Y9-$@Z{%+;j7E_>lhGck&)qV^1@ryQW!`zNSD+&CY)rr8dFT-x*N-NY+=XUw;$tfj3RlKK--}_GoWgR zJ|B3~JI~q9&2UrJU7I_vk+r}@SKTS$@jka3w-QpXb;ur z5t-qF`TqVA?>x6FP?7Z6hJMNO)LC>xeHqi*#G3&CeQWUd+^8e z>)v_JRG=d9JdK|5eAmq6g>E(;f>*Vra)v4eO~*Tcb@Hdfg$>9*hQg7Go?Bo-6;NdCvbcc`iYb zJk!x0s?TVM%)#@^Z0|geD^QX2*^7S3v$h>q1&J$$Mesa~ob$yKTMXF$EsyjS)& zetyu*;JLNGgJ(A45}y4~EBU_SZ@kva5v%Y5%VyD3nSc&?#e@*I__d47JHaiy^co*mKdhiBYE>T@j5HhES= zgHN7yuQhl!gV7+*lIEJ{`hGg@YVn+p)}Tn9S!fUC84Hm)cpjbWo#%N4DiY5@^h=(N z?6^j@U|ex5g6C=EoFASsm@={d$+JzKr#SZe%l9o!44!-YI(X(FF45<3)Jnd$y`FIo zLXkWZ(H_ckv&?Y8e1G*-?>tv3P?31npFGwmg5|&9hCO zQ~W=FAJ^F6IRi$6`bnSqyE5@*E41IrMq=9Pd2)DNvDk7SJzw zPU&s)Jj1xsSp?5sX!pZ29YZ|!KY6yvb0EilfBL+xk-_se7!C4_L0rOf`vW@e6;1fw zKmm&6ncXxT&!!NWgXhn)z4NS&3kXn=c#fuD@@#F#RZHTEXAwLrq1_M9I6TtE{wL2i zc~<1JZht)YG&FcxDGr`_7z>2wMAS;Y*KbUoqfsQ!WVDCsbGOWJ!F+%7W$!%KD^QVm zHl|reLnD#cb>x)s7O3_(Jy(v+)MLpC2?i32%dw`?uTa~hIs6M z@@$jmYL5N>c;0%I!7~X)gFNF9m+;)*Q^(!5A$70|Me@wKCLGTMh|IyW@+|K>8{h(Z z$oHxAOP+VxaV@%`1@lS<#MbV>8B8a*yJ<3pwY9=PnsPqiM|Kx!(WyxvZ|iGZ!HRd1fIl z;n|IWa{n`sz_>f2NS<+M59PU3X1L(^`DCVdo--AwNIXv?r-bL~WF1!zi7SUi=yNLC z{qQ`EM>5#|^JB;4xvl|uo<@;83+spDnF5hH z^m*+J?>yV_0!7aECG<;u4z%OCM&e3k5j@+V-4D-QSR!NplV_Ve*K_Uck7t!wgJ(S$ z4e~6;SRg!CcGWza|F<4IFF}z!)6pKP&uECu!Sl;!z4JV-Kteer(%hW{ZF24@*K{!vp=36)G>H&O>*$eMqI+PA8JLP6D00lD3WJ9+CzD+ zl^HIW@6Tp<=easB6!Y5&iUcF3rl3Y|H-pWp6j`G_Q!K* zZG-1{7!B$(8F2~E>UP{K9%bB>P$bVHXgieWV2I42&s(N>=h;nxio|mb{gUUXyEV^R z5?30F;Mo!Fes~_n5Rd&&o^A5n&avMg&$_h?p3Pu1$g|`M&2xQc9e1_X96#5fNS;|} z59JvPkvVuCo#LJ6c?BvG&q4G{o{j9dMz&&HaV&!8Y2=(Ao>~7P&!#-vMqgL{L+d=Ac5Q^lPi1tvPn`MRz=KHIYz4KhDKtCn{poYunQGEJWte=iQUM^X#WUMdDdNzvMaPF3s~Ai7TB&@a%1AkP@YB|Nux&~ZOfjXVobB+u-c;dnNM$Q(R>e%d?F>bQUa6^Z9)`X$fS zc3huVWnA$rf@dYP`{7xFAs+jmJlo`Xh-1G$o_k^po>qGY&peC;!gC^OCEx2y+@nz> z&t$ZR>T|cuaKU_k^C|B<*DFwwcs8bA@;vk>9oOV4#w=egS*JPR=v2+x_Qm3(h5aZg2&JX6sgs?Q@b!v*vG{R!TAZdafp>9Y;} zlIN*J9oI{h$g`M5@GL;i`QcfBEk*2q@@$jmO71oK<2kpo!E-r`2KAYaxP)grJMMiI z8Fw2L$ukD+p*-h6)ee0Q8SkCvLj&pL8{w3KI? zJkP)An`f73gJ&NY4f2dfT*C8sTOD_11@b(MB6;Rj4ac)HMCRamcs546AD*LyX9~|YdG_;vzj?Nj!Luri26+}?ED)XxZqq#5O5C$i zB+oRohwAeTpg4GbJk~qU{R&hheRiZ@@~mjbwWzc%c$VC%c7#udXNcpgU1`QbTe2YJTwY?EgpG|qT z$#au`eQr5#@Z5WogJ%xn5`7Lwt=bP+RR>pc5Q^lPi1tvPn`MRz=KHIUdgr-Pfr`Yl z4*inn&Kq@HlmE%M3RwitCCE8HJP%{b2K%2p+vK^OdpZ8*_i?`%JZHdYP@k!YOL#W0 zjHN@(}PGjAe!Ch%;N=VCPY zt>pU(iF-7PJ0t|At}a}9FN56_av z$@2)$HhCUGgHN8*&lo)C!DvvQX^2aBwy@*gc9!3>YK$UzmO$H~JTstbhdv(|>Ye9s z1u7EHUGz(yFE`gbTS;75EQ04CwEN+i^D%kO;n^n7m(k#p=dC{(Jd9rb4%+?jOvWo# z*#G3&CePM<_sZY+dF+(I^W1d~o`o0-gy&4us{8k#)(crlpMuYlH zM_j_QogMeK8_BZ`isTuC_E4U4plXLchYa%0bD{zjiRWSDl<-{KRP$^lab>dzo}qiUSqx=Mv*-8PKV>!86tD=ymFv- zo-KHRBG2!$>6iNKX~)$=;!0)_JR76k56`qL@=W2`CeNN|@X7P+4+hVwFdF1pgt0() zE@-TIHeX1dvr#0^G_;56^9-Okcz!&Z2bJ_O>&s>BQY8dnnJPGQ$PO&nN%t zo##viDiY7r$SL8u`WhYALHT}24vWy|RJ8ly8ILVm?0@oXlV@%2-TE6pdw*x}90sF7 zo{5M{c%E;l<8FIjEIgk^kvt1egyWe4kva5v?O(j}Y{v@}Ip3GiFZDUlj%(4qj4PEz z@N9#2KRjnoC(pq=+vGVB4L*5RDK>c4gV7+*VvGgCbLG{V=Zfn54%ZSC$uk}8q56!5 z$Q(Sse9$}3;|f$HefFYX@~mygRZHTEVG%qJBj^0^EWs8n_CI;H$@38RZvE-=gMh(v z>s1b(*@#Pc_Cu}Yd$m6N`;J~Hl4m^HLwT;187`Rb&!&3kxj=!6#Iq9plINyB>bOSs zW?XqJg6C}HoFATz*JSOm|GX!paj2unKbfAVaT=O(W8{OPmq zF@t9_7!C3)Ij(uGkJE8?oj{&zP$bVRw1@JHg~%K{kM{A-^SlBTiRU2tCC^57TYBN^Gn(g&ogL2pC_ulRgqU(%ow z>mgn!_(pHw8xeHq-{CL)_3zAgZuNa&5UgJG_okAuRJ7zV<5#;?N4VIgCBBlu3|I>-dyAkIOf4q+!GI*b>>)>5@RP&yRTG98q z%<78wB-D_1A07hU4Ml2UdGAJ(Pu`n|DKhVPi4VMwU#a7(kNBwXgQ%ds*CBh!dop!i zZr*AA$$K}Qn7n(U!6)x=2MyjcU^J-jR75NKZeaIk-Cwo7Yf6VsSQgTQyjO|T!tx$0 zGpeugq$fan;GIY3)c3?#n>XSk?~$k=@2)t4yle3SmYa8p=zB1okayYd0UmPb+vD#6 zRyknst_P#!y@TU-@nPMcl~<_#Y~b&KTGRf*hpexoj$L{Z2XWZGVwV0rz-aU>sOPNc zFMD{I4+qJ(eVlldu6w%2ZO88c_M%H-t!>2hU4O<^nRS>HzeeH){-y?dHJ`M~4~%n` zFFIalV@ZVjUm7y`PT^X~-+E)&*9PC*Iu5>B2vPLX4YeFUHq;>BOQaunqKv2Bp@?V2*9~h;6Wj>5Yh%#Oruci87{gM{LrA}$=0n~7O&K3C|vrfVc4h^^d zNPsAVdiFLSHsUplJU(Z^xw`&#e0>q0kZ&*X9kc4;5Yq0B_`(br^1GT5*B{vrk#_=} zn7pT;!6)xMMFwxHrh|9hH=6fE)XID~KSj@nBTz%$NjwDOb4`(cSl*k_hG^%>*0PiAAXJsCff>RE63-N%z$!_&v`w`do!JwyceUvC-0&A4c_BnG^p=n zL@WBPZuh7DWX(HDI&{L?OI?HaLXlcn-YMv-Pu_O{qz8THNK%3K@XIyt36m7>hfqP@ zZ7FN;uD}aeZr*k7C+`$GF?pZw<(v1}y$0{9FdF1t^p)nl;4 z&-AbF>3a;`^I$Z{I}Oo_zFXM+>3c}?ZYUi(VVy&IkaxaFEv&xB$_(sly*CgbJ@781 zbIv9+V>It|2Nmzhs37mYID)*d;RP%=??Kp7!2SoFn7q4jufgB_Ox-UH-pyb%$h%~p z=DohU?$3k=YO4F0Rj8r9XYdg4?ygcHoW7&cSD*SmMNE6~gJeDf;SD-?b^r z$ofvFbB-tN?D+P*UQ6`dO2Rv4Rl^bF{W%Smo41-To6?ENyBzc7md_2|dn-G5=j>*G zxc`S*(f2PswY~?ShP-d%A>bXQQXw4gwP^CmdoeLZ<{cyPf%o=k9baF>C;NY>puXoL zd&&DD>b%^%)qJ^@PE6kAm@j+pFnAAx(V)H)5v}k(e~Io-wfi;ilc*u@tw;~@o+VNX zJDzk#Uw!g!4UisqXVW?L-OrBikzR^-4+#(Ze>j4?f26^3^Ujm!S)J*`(# z<*`o<-sdVgco*)}yl0|T^xgL4WqSV)HRRoghk$oOky=>ZyV2y6_aOCnoQT+?(*XJ{k9k!FvXb2KAkaXhq)* z?Ed^xv9{t}Q#yqGKcokFuM(++3E2DIOwjI**K~zUGLJyemj}$E12JhuC8swdhXhq-c=!);dY`awJyCrJKyDAR>?;Rqwu=>uB8QGVcwXow!0{ZHccO%L&vc9wE zociu&$5$Wmk#`3P@0e8|N09eH8Z0;O^e*I`Kqn^efoSl_d(TG(Z|fHa@4T(-4|q>R zt?0XJ1wDR`Kn-~(@euH?sZt@FzBi-EC-2q76q$FN#0TE{&*}J9M5*!nb5u~@E0De9 zJ(4;vH}AB&$a^!Ln7n(U!6)yb1qSc&FdEc%GNKjU)$RT?|5WQcN;-u7Z=?r#FBGYT z)prW|>XY|f0O^5u4xLlq!_R8onV%?qKZFYMZi^$xy839^{=bQVXl^u`(n3S`Q8cNDsUV>74qW`IF{d4e@dOo{S3e?u#SH`x;)r za`P@qB=50wV)EXE2A{m^erWJ+2BSgVC7U$w^`~`zw%w|EuR;y=J%fjUcXyQv;q)Di zzWUVnDPoGO?^KBoyc^i@HAj5pT}#5l{x`Chyx*nH%gwuBIC)3YiOG8<8hr9z_HToC z?kNZFEJQ2%?uJ^KFW3F^3Z?J%s3GrqJOsQCh}6RBdydS=zVtl>AU*IdMsA9}SN^Eu ztB?4|dl4$A?+G}9ygTp$mYa9p{p3A|PE6j5(cqK!t^YE3C&6e?-*M6(tWWlz)cxtY zPV0LIYRG#z(xVePHbSLBIDI!oUw!JkHf0%E-|28JyxZCFt;kjSZYAMi{~Jf(ZHS$; z7mB;a)syi4OjN}8A(DHMcT+ksdACM`Pu^SB8@%_PaPZFAp!Gc*wW9A8A5>QFpA0|^ zdEbUZD5NNr3gLLKMUzk7i-E}l?-+>>zGGH1975hFX|cS#)4G#)XF4%?_e6tF-p4*L zc%S>u!MiX|^PY)X(f9l{n)f8skar&(LLD^}sfFde8%;iWZxTuo-}i}^_@M9O#X7!U zR%_k|P{X)#k-p?Ti8?PY?~?n-dpDh!ybqzlC+~6Z8@y-0Xi(p&2v+pn!0u01@Rs-K zYf68x|BdwEe7Q=b7MAy5nUQ_XmpuW}gTC|Voa@1f$2IR2;LYJ=Br1rzD~{lNS&J7i z6!#Es@3R%QBJaU;V)9;%2A{mEtTlMogV7-G;#|#pWkC05+dW#}3sFOTkH;bG*eaO8 zr3p8FpOF;s#rqI3MV>E{B|h-3ZpYUg@yYldCGj1z_9A_$@0y4&3~+C}m)u0&XRHw3 zGtuCa_uMrG@8vKWP>wAA`;i5l{*%0r;<9U`@`yfb7*_QiV?KziU^ zgxnN;FF0oF;U=Z;mry|&Jc1*r?^e8k<<@tb8_7F^PE36_K!Z=-*R3{q-v*;W-Z9c2 z?tdTE{h41;^Ug;NdC#M+!Fzy8g>d?gMPGf6-xWob5y$T|Nh;{Og&p576%_AlBs}bY zzo&R_q``9YF1Vh&W9h`?y%G&Rd4I6V;Jx*TgLgKf6@B+Zt?0Wx`Xl3achrz~Gadro zC)K41$9pOI>XY}&%>KyZNeOaO^u7LD9p8i~#rs`UP~Vw2g8J@3otK+;uXyraN+%}o zc4+X)yURZf-hE&+sPA~`5BI+h>;BAdrN{3Bs3GrMNsnXJB#~O!@gxC#^~t*tWf_@w z7Mu(3ZgzaXV7!y@yS>DR_rGxn$L|BQ7z*6m_521p*+u{iFuD}aeZr*v;9W@Pvj6>GTMvkj08KqES;FV_oKll@4Cwk-pyb%$h#y*^Irdz?$3(zdi-968tQun4*~D) zDiy-%I~slUsqa(76j|S?5+C&4z>cpP;v?@`5+3%yk-g;oE_GgR-lK(gG@Y2d`}ya+ z>`jArZjpm`7NQk>cSEh(Klx1aZjT!BuE#^b`+!I-tiI>SjOXcs8#wd)Vv3vhP-d%A>bXQQXw4g zwP^CmdoeLZ<{cyPf%o=3I=)}FE8ZJXL4D6h_LBEQ)OopiH*QVdYw5(~T^$WRdG}sy z@E!)EL47A8TH$^EOWmJ!TQ%>Ks3GsINDn^WiNa;Wq2YLUMqhpMZViwgcxS`8=)0dC zUwy;;P`fjLFAsp}BX!6N>6EJz;9WU`g-^ahu@vYFj52AwlUI!Ua-;=5H za_hUJ><{jy6O(rf|NDdE{$cQ*0i!{Erz+86{@dcmd1JyF~T}2h)kk`;h90g#*;IE=TqN@h$-^;oh4$#vNV@7rKB$U8>*!~O5ibblr+(7f|eL*DZwJ&sueR4RlU zzhfa*pZcySs*Jc_l_p6AeYddV+c#hHZYc2`v(7;W@`ySWxWp~t&cQYP>@%yB@G~swJl@#!$@0XeVk;jt~ zh*tEy{u3SFx`0}ryo(CTJCm};_}zmt55?_qf3UIaS1qLzlXrFh`&C`$8NBWgB>J1 zy#I|O$on7-mYa9n)zo(aotV5UqQR%W_q=NGwhA4*^A@l_;5`wwO5gSLe(VU;karRf z0q>eB6~gIzGn#zzUQJAq^&Kbif%pFHI=*#v)qd>fsGz=AAbZJsWccCRqrQ`4$$K-M zn7mt~!6)yba}3_&VKk`kWJD{xtK0qgWs&~-%P8p(_P>!HjCjm-w&aJyxZak@~*%OSZ;j}szcr>bYk-Eh6bO!&(1b@SB23a@1nVy z_kyjuKaVumyl0_?`X0tZz`LbNg>d>lf+nB5cM?-%eJ4tM;C+6Jj&EBt#rsE8koPuZ zFL}R2otK+;W8r;-PE6j_{qvswvcY>Ej0Sn9AzIOQ3%fso_cZT@(jn}BBR$AFU!)dR z-(zJ)_BCG)1V|6O3+bHtp82un-4*ds-;+^6-hFWdd0)c|SZ>~HYEj=~>BQu{01ZC% zUH2t}cQY6b@-BHr^IpGM_owd~&3hGUsP7p(1iZVeR0yZmYK6&5zg26ipMuYl}lm1|RvVW7!d%D*54%CqMa-;`&k5H))PTx(@ zSD*T>O<6|PcRHPOJZWdg*BtSYcPj}G``nP`ks&MCGUr*^K$dfszKgs>BQtc3JpGa_s%kS4};O5z7r9x@IL>c?$5rib=3PO zCs9M*Tag~*Jxin(c0B2fzWU_d8X!IJ&ZcwfyPq9jTf|3w_mJ?g|BWNa`$rlqH}B-j z$-6V1n7mt~!6)xynFjB38yvg~pVz!+qE?OHT{Q1Ws3Gq@JOsQOiqyjL-i;=oyf+b3 zWPQg=eBgcj-#WhLh>yGvqJsKfhwLTq$<%qdc^6$u-n;3<}$U436LIm=g~R!J@H?f_r6|=_efNb zcUK%i-nDoE%gsAZcn_u%lXpe`ysJz%c-Mo`An)Rtn)k{)-Jc2VHSdL}p}xoS5b$oV zQX$;o9s=GwL~3F6ogp)_FMW>!NDsV=kej0K z1?zNt^Y2i+UqS`-{RoaA?^e8k<>p-?^JNB|nEF2Cf4;nKn!)=v7!C4{k^W$PvOQP# zC(u#z&PNS-&qI2U_W+d&;q)DgzWUU6ManX=zSHQO<4FrUzOIOmBQu{$v^KdlMUW| zU^J-jcbsjAUp2%> zeRq)Xu>XxC$on7-mYa9lZ@sWSNuU#xcTY6?-;+d1hp_*R^dRqrBDJvkPC;LN z^1cfoJ@C$Sl4L*5KPd9kagV7-GG(;=+7R&-|z6-4^k2{GN;o^6rZx$om>zz;g4>I!)eV z>BQtc3JpGa*PUqaZU&=4-X%|I-s|7d{Rv#7^}Px;)b|V?0^Z$KDumN_H2UgO-=~Nv zvc6L#KJac}$JZ6{k#{W#5BuN9Uh;mIIxjcxH9wMfG@Y2d7ofo>?`7i+-nnl(cxNG6 z(RVl0s`)Zb^KOqC@~+22!25tmEv&xh$c*eu-%|k61Mgzwrs#X+TROh^4HWN1sGzc-a5O5#;?j4VIht>9f>#Q#vtu z??;1A-dn~Ry!Wnj@XndQ{($#z)QY|XR$cx56V#CRZ8(HNic+Z%j`vzL`Q*Krm?HCz zk@&!S`wAUjSHy=C@%U%p>8fI<%i?(O}m#--%FmQGCG)zRRSckeL;9}8qxF3fHRQb&=|O$Z5~+n9PdcNkK6$qWNDsWT>74rRXUA6`@ey|q z2@m_xM~qZIFhsGz*pA$!StGG$(F-gzge@7;7_ z@?MMvpZXp*(%?M}$U436LIm z=g~R!J#ne#-4^jt-y=~$-d%A7dDr3vEI02#=g507otV74p}{BbDkBWu^Xzh zCGSPldAWJdmix;yOG0>0^nZUj_i=;wau^NrPDiw&?{;*>{qJ8M*SuSzhP3bAFdf;7z+!TE;Sghmgi}~Bxp_C1`^yYEG4);D z|NZ54j~TpggV7-G80inzC)*e4{$xI;dFP{syyqc3$a{cFg>d?gMPGgDyCP*7S>I`N z&hey$9be#4#rqlw5BuLwDBc@su-v>4pW=8DOD87p?P%~ho_vsI@ZP%6!8;q#ioW}y zR`gvT{ZZdPK@E8~<00UEQeB#GyqBV{K6$?kkREuKAUB2g`hV#7CZs9e@1lbG&cqSa zcMs~k+`LBz$a^WBn7sR;!6)x7!wuejU^J-jc1fX@72TxJgj*)ln!D48|gvb`69Kj`W`DYvaj{vK!EhXyO7SQ@0s&7@2-fC z`kssm^6rZx$om>zz;g4BDI)K&bYk*8wcj`Ix`Pbf&0sXhyJU#wy?(Cl&xApm_bSv- z-!pg!cz0K+5KiCG=&MhCpCYEn`c9Sjz`KDR-@bv0cP$AI``^f3@_v^(FE{VBhTM<+ zKdha3d{jl&h69KQC?Q}VA#Q+C10xVHhGkF!qRqaE7;yteAm9gr0s+Q_#4Tn}fkD8G z3oucEQ5MAz7?DLJzz6|FK-`F<>435+kbq;p_nfM_-F0(s-+R;jkMo;TMb)YIeNI*N z?M`=Xnnc%oFd97a{q_h=?{%*P>79#gneX0+@_D(eTb#HLc0+{pj-xKn`+G*slJEI^ zB75RH3qrck`xt7I`CdL>=2sW_5#NguAik%g2kD(g23A||3s>;-Z<<8cy95m$^-g_I z)7ytZ4Zah2J-DBI^>?|R9UbDt^VniUNbh&JJWBoFV;ERt#djjs>XGk8grzgzGch^q z-C5!HD;-ox(G^d5^r4Zgb|Ti#F3&ynltwOa1q zClMjNi->FJ{W7Cw$#+kz)uZ0+A*2hw^SG#>_dP1VWvj&gJ&4o8^KZf$dY_^JtF8Bi z??~^SG>NWv2^u`=T{>LTyZq%Ky>~qz^?m_S=DX}kxqm-}2NYFdNg>{yH2{McN_*a^ged4)O-1C zxt@xpQtvkrA-*%wh1RtS!`PgcXCR(OzDrmo$Njqx=Lf#)sr=HBAL|{(`QiIdP`<1; z@~gJqql!uIGk>e1cW*R!)O*1&P49OwsG;{vB+Gnvrm5)p_p<-U{kt6^r1vG%1^Y=c zqh`tXGkhX@;(IcLbiwyw)F$)&YOc($F7l)OWDWv^K?Zuzev(WER>j-p`z|kTsr$)l1c>h( z^dPJtCy{I+O?L z{S>2Sxu2w9tseDmL0CHLolBGR^KX^k^nZ%|B#qO<^KbMZy^qj<)zq-Y}HbL(jhvWxg}sl6pUa2}Vqe*nVo1wwuelljDrgtU=HTdp> zY+3JmYCVf$<^CPT3&Qhnln3ekCZlG__fV|Wqu$*iqzk=Q(B%C5`)R3n#pPoE9)SSq z-3dKN?;2!awe{ZmAJTg$O`_|)91R}zKG$E<`w|Rl=zVyw)ce(Jxt?BF55Ir;G9twH zSn2}3+lf-J;`>K5dDMF!$>hv;7tRlSpU;x{Eo&_FK7|13y#v)tde0%wtF3oqen0I; znnc(8{4vjZKi5ywdm#oj^d66FneSF=J!NYz6?$L83&Qhnln3d(iBYrUdkUY(p6-Jq zA*2hvchThh{Ck$-0r}B>G7ACHI~_ep@8)D+we_yGi};>GljwRM-RW8HrhPTNZ@{32 z-WLW)z1Ke_*OR_V>b(jP;`@2(0=)-{Qn2E?HrDEq@6#lcGvC8GKk(g5nl-910a{e<{Vq)BwWC!@jRdAa=#P49z$ z4bpo>9~KeMzY%4=bH0_|KlmUbq<2T^0=}a}DOl;f7EK=YUcxFlzP_x_`C&iVIaB6W z_Kp1hZv=?%MW|lldjxS_ZNBsP{f4zPiLQ5+_x)tp?V8?WF{r_J7i7!($@v*_J&Oj` z74PqyM1=G%;_|@nUovWzeD}m!J?h;aLb~8PkBbU=-=p%Y7*JR6J&^Om?_Uzvcs_WN zMyx8hJHA_QB))snB)Z;>(BP5p(%Uq>%clqFy~`){egRSDJAS)-z4H_zr1#y_1$avOS-cOV0 zdbdD>N4=-@(DZ&DgBpAfN4Cs&Gqs+K-{pSNkQapK-zX2#dljQ*srN&CB6~V72SZ2~ zd~cx1={`7Pn$&y81+kw@LV)z{g&w4L3>jE$y&E&%578vL-seB^taqL6n%;33)X@7_ zPpS9vsd7DK8>QZFB0_v;QWxmmO_YMw{(S~b9{DaInViqdKAa!)uBYD>{78hY2~_0aS0N9B5^&z1Z4CPYZ@g(wfw`$16(R(!`|tseQV zNmx4bJ)S0~{iK!3@6a5ve>dm!@ccVX=)IW+thU}83P|r*nnc%o2^u`=UC>q2yJ&Kd z-g(HD`Mw8H=6liA^7AJH5h1;AKoWk{8`icZVYPh-I~`!&%Ym$>q&n_ zeg8Kir1v_M2l4$Bqh`6Eq+qEY^=?5}I`f@NlM~;)Repu@<@bMcdU*bg9<-kvp#iJP z?ec!|!-vFo3QeNxy%P-{`99ED)7w8$=zTIOD$2j%7RmPvM49hpA4|O-L4@@7p-XaQ zTK4a?x<&teyT7ie2*UjGm;2_nB(%113Ao(9XZmJmHuSF{nS|cse6xKGecO>v6mHi2 z4wiMVtgI9|`4c!l=>63MnO|MxNBj3)1PJeCsNUqt>4!_)3fyD#nj`?m5v z>)YP*Af}~7Wsc%HSPuE54};Bh&^b^CjcIPee&2XK&*d@5GnVuGn3_6Q9#LO0svf2UEa;*QPB<9>5^73trTCe`)df(DQJm)@l5U!D=9|E`Ww{}&MD_0=T( z?|fhCKNDfvbcRqr=%0WE!Y{%;NdNta8oXoqeRKTwoQwTt3n}Kj-?!%cp#Raa!TEi# zM(F=FqEw0>prlFvzXGR-=s$cV^G}oN`gcczNBzfi(Dcv5paK4oxZq!{uLkqKTJb+d z@{bx~{+UO!{zLgh_r^bjb)o+XnwR-UBFqQpcN6ks{y9DHk8aFAjT#aD-(~)3QeFQo zXz-|iX|kq&`RE}1ccn=EUqF=CcM0>qO7V{{^H2SVf9BDw|9(Wh@=uDn;Ggp&{vQg? z?}L?+e?*yolsNNGbr1>thy08Ar%6fwzl=v?vq5B|l!9TCB z=Rsd?W}N@bzD8pE|NSpQ{x48MeCKJ(cb@r7CA$#E=cqgf`tix`sSY|rU^^dz&fBF( zfa_o+GVxkN&XRJ{!!_~zsPbT*s8AnL*8QkX);~^&S>zc z|Cm;q{+Spwz&|n;{0Fb=%zqUB_e=g!Lacwh;Gb!%s((K|>Amp}VO{9I6bT6ak&(ek zKjg{$bDH3v)6BjgvOGaUSC{{PGXFH0uK#*8c+|i222KC+`-1e}^(VzYqQ<(W>{9$A z%KW1n>)%Z9&ooxm|1-qB@(;;e=--m_B>wLW%JZ|Gl79r5e^fg0FS48nwyLXt_7diw zCL{eX!mStf<9Wk4G${Q)#0|#9^M*0kYx-wmP~!g*jOp)#j0OL^F8aRs_VvZxCyEz^ z&p)Dk@O#&3v+umNLH71K(Z2IJ=Qp3PO)UH@!i!y^z%>hGVlzp4Mdh+ zOfWxtXv5DB{CP-*>)@W@ ziS+-N>#EfM95ZR9e^);F-PJ*+crMWj!n)9Z9_D5k23N_m{HfYP|64iFQh!tQrRQ+p z(a=>Zz@7dpn17ngq(2(G^4~(!-#;u!{|(nE{t-3!k7NCxmimuD6Z4P0#8(|=(Mtc1 z(BhSU7K=X@Qsuc^(Ce|roG0;rmpRY!Y^ndpXkz|R@1*|&R0q}6KaXDztfk3x{j*wf$!dnwWp| zCBCLz!~ce!iJJF+t`JZ9FK4lw`R6=|{~_i)js53iG%^3EchY|k)?How^Z50^TAEDP zKg;{;fnir^`j5q+0sfJz;D2z?x^7_pv9AjL(Zu|79f5yl(UN~Y={@P+3c|YKA9D-- ztK^yaq~f3R1pnyE{L|3Y!sv7GtmJc<8-<~++ESNlJjn1AA)_{X}dtAE~7(tj;Yrt6=D z29Np=OVIQmi$MeYBUi!yfS`3XWB#!&!9SXqf373&&n#N<&nLYn{aZm;H~eF6!GD!J zGykgi=RCnb`ZE7CbanaX*JCL(nXZ4$px0w=@Bi_d{{H?!`fm^{gMUN~{;y{KXDa^D z#QdW#@l}Uew9@}0w0OP$uvpIgbDqS1KXabtGZg=5V*ZJHy8nc;|G&xn(`35-S!nRe zf1IZOSPUBAAGr$t`v$G+3g#c{68xiy`R6(U|IDJ5{#~(RkNUTQux|Lr+=Blqd1g*m z{Bxe*AAOmB8oIjtzrp)IO{VK#6Ad2qKhQ+e-`^)l{|(Kg{xc9Y_>X1&GZp`6V*b&W z`DYfb^#2Gg9`#?&Vmb5Ac@qD<&3TqjQ~aZe`A5Ao|KaTauQC5LnXZ2p8a(PhELPKh zECvnmk6Z=+y@J-&g!#w11pjDa{<)68KeK41e^;#7qyDWRtQ-C@x8T1@o|#h>|C}fI zM_=ZjhORFE|6u-UGF|_gXz-~2fySEteqWIO8=5Nq5jFU4%KT4J{G*BaM_=ZjS+vss zBeZzbe>scg%s=Nz{NG{Dv-~l|Kbn|-)I0M}bx=+H^Im2CX);~^EHrr3e^?_;|FIY} zz&~;o{NEn5t_0>E>k|BYulO`KQTr{j<>EQU77ln*L)kXn=p@ zD){daw64pUf2>RJk0$1y>j?Zai&pw~<&)kU{}9#<|Cn3wUnS4XM-=~@C-_HS=AVYH zrv3@9F#j}}u76E5c+~&EWt#r}?m_x*h*A6_YVdy*^FLAXk0$0HeVKn|(Mtc1(BhSU z7R#A`&Xf30Gv`@8LGh0!<{$OW{8JrNSN|O5pC&Wuj|PwW54%*;e=G(K@Q+*t|J{Pt zC7wTIDE`sJ{Bs?Z`p;oJ{2PnsZ(aGM_r^bjb;CdA7W`MqvwW=LpYsI&=u7$!K%Ujr zKkqr_pC;4w&q9Mo{SVaB^!MKyr2mEniho26{`>O&gLUze$DoP%M_=Y&)QpAxA900v z(tkON<;*|lN&Mep&NFk2;vY@SKkA+Nr#h%E|Iaf2G?}h{O*DAae^^~j|FIY}z&~;o z{C5pn*QLDwj8^=kiTUR`!v4=JTJp~)y(j%!L0C8ZbIn2j!Bz4se@OAqd4hl99{hht zLswJ(U*|IaG#Tmt8w3H1ct8FtG${SwLe$0k@dxT?`uqPZ^cR2sQeW2f3`F_!5Zk-8 z!?1Yx_Xr|{lMh{dxhe55KDn|owiCi~_c8wdVjEY6C*9YuNY>m3|NRS1PH*mh)y14& zF-0KrJ1B4DH~krr-y#ZERXy;&yQ{x{NyujYX)F`}Xi)mQeEv41U>|C^%}|7c?VxsJd;vuMdbpY)!5Xe9*3Dy#loK+yY-^DwvA|EuI#K2q_| zd4hlRW&UaCs!q6i|F_4}%s)-0^WO>$N`JTfU!>{p?-b1cB~t$xh?4&PMYApy+x{bn zknBEm0bi?OJj$Umwj<)Q02-^mf5A#U-h0-tNY4Coe%N=u>L~N8c=(@?tpz0u%N|6#Q>{l{WZ;$Qsz7m^qJ zr^@wpy5wS^|4Bqh|00wR7T4*oQvY>`oAmF=C%h-_+mox#pGVKb>P5-eNG{8TS7yKv7^%ce_ z{t;pRQ9jUr5e|OAKjJ3+d-4hIjem001^<{_@UQZVM}EBj4CMU4Kjp{#pXKv6j(Ucx z|4c5W6dFp`eVM#ZroX>kkp3Gge;4}CK$Q6}yF>Ah2=k9F(7z0D3H}i`>AwwP zdgY&0bLOA(BmUdU{CXijvHv5&{G+^u{3H<*8e*%Baqf`QGXf(2* z0(WwdfR|u((4Z_>fvAg@V0WI^EO-cmQVE=)dwxgc&n0lKja=e~_(@cT?iWPJf^DcE zSkPp$v|ugb(gN-8!MgHE@2L)2k-Ii^&{h2DH13W5dB}iM8my9xL6Yo)kCQC*UqeZ9 z9ZZ-+$~B~(4nFvD&Xr~Up?x2LtsgJ*s4Zwz-H&N#@aV@U<(eP+Zw&I|o!_M&V-V$% zxEVj0%8S1b5%MDiUEs&Fk4Qff5x4T=U5M+kE?#97t?MGlk6N50>SD{EWRi36JE-i( zIz*^0UPjpqKfawvemq4zz58MP{Sf2%`P_UOQs18j2R)y2`T8vNoMwg(gHmzu>w^R= zf{Wv;)^eST9*-7g6eB`ryo1_;8S%=Dg@{Wt)a$cEz5#fui$-LzO%pO}fs8I8^= zzly&`3m@8Xe)#@J%8%<}D*I60%Gn3!*JoS|u{5c!fA64TaH)U68BPBppBS1{{jk`^cCO|E_^u5r=fKHTLc{rF7;3SP1E0pK@I&AczyK! zr#Hy;EvqNb=VC;df0PgOpQ8?kg@~K_(xkfnoxST{a9Y#92>BWM=bcsjQ`W?PdQ-(eBFsO!K>y}=Fw6I& zIK)l*=R-`d{IhD#{G)aS|JTX<3Y#eY5n=w(Md<&;9Oj>ThRgqoaWvF?8cNrHE*jKf z?3Vvin*KfvYUrQ9>m&XX<@zd&{T~tLALT>)kHJ6UCjArnxcA0Cx$1&{OfL9W`K2R2 z!9V8*{wY7^zdur}j4i)50{UOTX@~EBqe*rBOVHp^|AG^m{zb^o&_C~2#Xn_D{O{P? z5c1;YF%S{vA6=mT4rBjE+@ya##PrHPtLDriU^W&UX>UH=wn@Th<4aZP_81~v3g;PnyzE#&%giq-dDBf|Wne4xMad~_k=CjArn zg!jfjx$1&{OfL9W`IV{P4{OKyfq%-6`4`Ve%bQ0)|JDyN|1_zteTwXZ}&Ug8yq|emn9TN&XRG z{?SF~|KfHMEt7hN%m2&_=AVYr^&g1_kNT$`)AaXYP(%L&ULWy)wOn6eX%nG;F(S-A z$_M(Fq444{zb^o&_C}N#Xn_D{MQ{W_n(1?F#qTR{TCbiKjJ3+^C6~J{#i9= z{!zPv|0`vF8TZK7!K)Bq{?SF~|Hos@KlKck|54)pLqqBM_pZkM$FJ${!=Q%#3A{ey z{|dRjq+x3RM}+xD`9S|=qZR*%oAgiQ6W$yDTtm z5%-^j2GNz=aw`5F4>9aa2O*2I5Vy5b)Z<{w?4|17-l;Qc2K zag+Y}5YsFFteP|bs9nK-Gnrp6KQKoweIKrpN7))KYE{M z{ZoI`^!H&3oiMT3{}DIopU5Y?H~z_07yM&#!N1Bc z=SIap=Lh~NKXL!Lm-&y2fd1J$R4h%Z>pu<+Uitq))4vG$8T#jyD*h>J;(yVf6#s}Y z|L8*etLJZVh@14!hnQaZXVskfN9_v!o67tuS}Xn$VgAuY^3TuTGO1_S{10dTX((O) zqxX2$Kea^D--kgB{S$b7#D5dHzPeZ+uecZy<{#w){cB)xf`7zK`X}-U?~Q+Q)dl~U zT=1{*%V?$e=lsAw<;VQrKY{s=je!2y=`>U%U|6bF-2>BWM=lxglPgxWH zNjTql#RCyx{?P^cPrqC3|A?FP&xe>^`DfLf`A6*v{x6sLP|T5%-@)5zs%Ihl-_1b^XVo!K3~K-)Q<5 zAwNU^yd#Q#%9{A6`WE~n!u+EP^iRUU!~0Jh;wJs`A*NUUSv6<=QM-cw7@6OWB*i}> z%s;va{h#GcJCk~b%l}er^WdL`()E9#8vFm(n*KfvYUrQ9>m&Xf%Jm)UqWDLI`A7Lc z|3bX*7W+TqCjArng!jfjx$1&{OfL9W`E^2m_=ouYGtLkEQ+~{U6Mkq=9vuPwvxkuW zu{5c!|2Q;w<^L;9|03jP=%4qk;-9i6{tGWC{t;pR(FOXS8m#z7+@ya##PrHPtLDr< zYFF^zK;{>Z{8;~0h%o=?BJ}T%6tVwP&v5zggWERvr=fKH+gIcMe@N5chd~Yf6L@{Z z|7B`@0~G&=F#jkY=-(Va#3A@c+@yaZpYY!JCs$qYkI4o9D!=Ld75|(c_^14s|0fDa zwDL$lb_M_SWqx&$pWq)6<{w>z{;D28JnlcKUuydM zFsPw_0qbET#v^H{SejJV|NIEg`WJkm>0gBW4E^&CD*h>J;=it6@s9}ek1o)E z7AEHXCk}Cw{`nBoEB~yTGykYv!T%*Pzl>7FKO)ROx(NNheUSO5p5gM}r62Q8L+Sdr zK!aEQKiBm4VNgT=1YRHUUq`KPt>PaM<{#w){cB)xV*f|nq<5#}FVg#KUpn1AXSHvheu ze;P{HzXcjR>YrMy>F>j!hW-h>KH~o(xxVx@iho3yf0PgOued|;kGM(yL_XoY@lUS0 z;2)C<{#Aa3s}=v8ANZ&InE$(wBKH4U5zzkv4;4$3>iUgf<4}%)|C-C}+{~B_AIe2}~D=tQa`A7Lc|4BU+|A?FP zPvjHc8~^003;r>=;9uoec7x)d^8^2sAM?NaHs(Jn0{S<`YH|OeNp=0tV-BzU@6z-y zLVkw+d3zN9lr`Uf3Kai{F#qU6`+pC$|08bFKObUx<)2k^<{z~y_^-seDZh*l75|7Z z|L7w3|L)8`^$eH)c~~u8|I$#p{xi_vQUBDPn*KfvYUrQ9>m&aEQ0p`9KZr2@C?Dv5 zWT@gFag+Xue8PLpC;AyFF}Jx z{R@gT{fm&Fp?}_g6#tYp-+y{5{t;pR(S`W$CiRa)+@ya##PrHPtLDrpv0=9`#S%uIcZ?poablyguUpf?8iMwf`f+ z{G)t`fA#!rA>tyr-^$NNK>uvse`0A; zUH@_3_n(4on*K$|&(J?_hvJ{ICjOIh75|7Z|L6k!PjyxNBW}_^A7XmtpH*|_AGIs^ zuaNoWyrB3;g!xAop?`m*i041lGhF^_@li6LhSK#v>V5x7{Y2B>hd~Yf6L@{Zf4N-W zjvU25BFsO^2l{uy#8@u={uyzT{)v3Td*h#6b-_O-7yPUIl8_(oKkYa_@K57}O@-y_$`&98ySrh+-`HFu;n16JE{%NmE{o@cf z>7NfVz4FhhIrER&75tx-`NbnYvHv5&{G*G||Ml0Hf9e@7{|TLW|EHmJ{cEDZqyDLz zHT``U)X+bH*GK%Hk?Y&BRPm1p^N;d@{$>A=`Y%M>q<^`DfLf`A6*v{(qJE?ZEjY_(z2KM;E#OBSq~0)H7WEYyFw| zr=fKHk9yyKQa5V)`!J}Xe*&+M_&+Vzm!tGAMuhoC`9S}S8B+g+h@13J9U>`@ax3 z>7NfVz4FhhIrER&75pES`DN6U`maKS`9~L_|I}pWpL&MN{{=;9upJj{F4w zoFDk7{KWm|5$4|?0sXgfDaF#Hy8g@2;8FjA_ci^Cke{J{UV-ADvL^n^`Y8SpVgAtt z`WLGGCk}Cw{`nBoEB~yTGykYv!GEdDuNU%T{Z}Ev{G*G|zX?*r{fByn&3_vjYCa96 z>tBKfkNT&s(e(FWP(%L&ULW!QlU!e?e=7bFVg6A*(0{~(ihsmS`X}-U?~Q+Q)dl~U zT=1{*TeMX1&-sCW%8&Wq_yF_&V+8cy`X?GHmL}EpUycTk`WLLy^e;kwhW>dUDE=vH z;=iJu;vW&_A6;nw=_vJ&L)@f)KE(9OKda`tE^_ zF8@7RGygP{u74{uc+@|2rKZ0RgBtoL@cM}VALRNfk`(`lF#jkY=s)RtssBR6P5LMD z3Ga=6a@7U@m|XC$@=Hg4tbaSs5ByVp;{J0T^IsAH{kJAD|1_zt|8g{V)W6_eP5&a~ zXXu}|TJcX=6aUj2EB+B-{?P^c&q|T{$02UgKObUx<)2k^<{z~y_&*}^JJd+=j|lUR zE<*or`O=7&+&#F1|kJ=UdAC~zoYN7Z?g!xAoq5tdr&@7XBhRc7C7R)~lrR(1c4IcGReM{5d zhd~Yf6L@{Z|5tK-g=f|Nj|lUR@}d1_y3~Im;wJqQ`GohzKe_6He@rg;SNX*wKfyoe z2mUEP=D$Bu#QuLM0{U;ghWV#Sb^Vv4!K3~K|J3v^LVkw+dG9FxDQn_CL+L*d5#}FV zpnqX=sec^eCjIjvrdR%1HD~@&yMq6NGQS;Xr2eZAVgAuY=-&h>;`J}}44eO}nSUBe z*S{4SJnEmiRMX#wK@I&AczwkG0lB{T9JT)=!u+Frp#O+LQvZdBoAgiQ6W$yDg=PebYY&qaer{Zrr6^!H&2Q0{U-l#{AQyy8g@2;8FjA z*ERi%ke{J{-V((>Wlj7i#jE=dBFsO!K>tNerT%ez{%4yo|I{;F{%4B&KMkepKe8J4|JOAAeHhfxKY`ar{O?uzcU1d7BFsO^ z2l{8A@C5&eoAgiQ6W$yD7&+&#F1|kJ=Ud z?~(Z}dQI_<2=k9FLjS9fBJMxbGhF^_vHtUEC|&=f)wut^s_E~;poablyguT8w_IOF zJ;gsF%s{X_9jSrh-u8Y=z~VgAtt`cIms_($BNe?G+Y%0H{- z%s*;Z@c$o~UtQ$K=kF>+n16H;`tP2~{8P_x`CrkHhMG@9>H5z_gU9_Rb%Cb84}%)| zC-C}+|6Ou@ix$Z5A1+3O`A7Lc|6c0;xe#%a{)v3Td*h#6b-_O-7yPUIDqfM_KirP< z1OJpC^Zyp#Kg)MUK>ya!y#Ldry8eyO;8FjA`I`Pk$j{I}Z;|4kvL^m}VST*ffrv2w z=mPzd)%hETxJmzfi0PGoR?V4z)UM!vhsH43q#{U0zO@AK-HS|y5^%4I?a(!k0Rrh~Hn17TH^glI*my6H;BW}_^kxzJU{FAFL z_{Zdef0bV^;X;NMPl4{)l=W6;FAwNU^yjK+e zlr{06@vVCOiwN_NF3`WMztletag+Y}5YsFFteP|bs9nMTr!v1C->BEWh%o=?BJ{r< zDdPS^J;UX{79ZvFX((O)qu$To)H#~|J`8H;pTO%Q{TwXZ}&Ug8!{Dzrqg` z|A;XE=pyt#TZj3lp5gL8r|A;XE=pyt#&ihX$^$eH)`i+@?8cNsybR&eiK2F>j! zhW-h>KH~plxxTsw8ber2H)18>>i_vg%s)-4>%Sfi9`!HC(ey7ueun;evlai8HSu4TS5N3a z5E14dU7-K!8dCo_#7+9=Lrkyyvue)#qjm-VAIbcBAwRxVJ)%>RZ6=s$$@kEKa<{X2Wtzu;L-|03jP z=%4q3;-9i6{^Q?~zYjkU5#}FVp#LeQe;nc_{qrHFSN>TwXZ}&Ug8%h0zv*ww--lm? z2=k9FLjV4J{$^6oaQR>Hzrl3>p`mpB=c2(Y|IcXp`!J}Xe*&+M_%D>}tGGq}{!TF> z%sQ0fBGQr|I{;F{yXsbJD-Nq^>60={7uc$^!H&1G|GcLa|CBZHU$>3o9}(ssU7-Jn zOQrsCh@14!hnQaZXVskfN9_v!Kalxl+^G0Rg!xAoq5sDE%s=%En}6QQ=F?ER{>{+f zQUBB@HT``U)X+bH*GK%nFV`23-#O+L7bC*_qkL%pLE(w}58@{M6ZwSq#y`30f`3dd z_*eN&e^~L)`GJ4RkNN+!7W2O*0{Z8%{;@Qvu78$y{Rf86#tYp@jv}$ z#Xlmsy5N3H}jb{!u>AzwSMXf5c7tC-MpJjem00 z1^<{_@UQZ#xJl~Yj`IWmlppgyI-U7n83FxU|H}J6O{(kP2n`KT7aVlj{2St_J_pH2sT^ zpP_%=OvOKC&HI0jdi{$C^N%jjfAhJ)gd0BpkGM(ye2D3le^$+zf7Gtve}&BN(DUl` zFCxr8x(NNRLW+3)Lp{Ug{|CW84W;Y9vl{$Q)%5paP(%L&ULWzlT&^!2>*Ey{Bf|Wn zd`SP3QvZdBoAgiQ6W$yD(c+@}jQB8jz1~v3g;Pnyz zZ>#m)s`h_Gn17TH^p8>d&qBma`X}-U?~Q+Q)dl~UT=1{*D>R<}aDL#Q@?-udoMrys zih%w<{LK8*q`Lk)(cn@4f=QbGMaa+4KW~cSpRy+Ym$g;T{}EyS(FOXiE>rtI;wJs` zA*NUUSv6<=QM-cwe3@Tez*Oxcm<}Mnlb~p>+K_qrs#8sgG#- z`!J}Xe*&+M`2VL|U(!aYe=#D=KgtLCXJF&w^LHWQCjArng!jfjx$1&{OfL9W`Q>~h z^>4@dfq%-6`Tvw(G?g!nfd08hnSYv8*MBk^JnCOCLDRno`5F4>O;-F<*2I7M(YlbA zzW)jl<{w?4e>^5;{o@cf>7NfVz4FhhIrER&75p!e`4yJcmHZ>Z{G*G|f2!c0dWOq? z?vKnr4Q0|F4IcGR{Xb2A9|kq_PvG?t|BL1Nk}j9}7bC*_qkN$MX1wtr_($BNe#vo|L6k!D~$agag+Y}5YsFFteP|bs9nMT8#2E`J>n$)h%o=? zBJ{sY@J~I%<-hd>=AVWl{eO>&B2oJ0rZhr>(*Hd~eY3kYO+M_){{Eyd=@Z}VzSlw>HCP$ZEvjeoFJ;3q`cPlak7;+M4fV|)dazf{ znY25H__BX)=*#W8LOlPc5p@0M20j0Gsei#(P5+|Tg7nXOSn_obqT>GlH@U8Xh>-p_ zpo`T1O1@y)-_;ELQp0INxkvL*I7t6N2_TSQe!Juc%?xf6YH+o`Y1L z?@$E#KSf;xCsSgHlQ*cLn)+Y(f%&Hqbp1=v;FbR|n*Kfv8sHyELrd)cd1773XZ_QT z$xk5eMvQi#w@^T!e+;g^d;+|JxHKSM@TvIclinNui;8y#`+Ga{+q9l$6vKEAejGi$(suCX{xC8^dH~sln1|Q0Xu(88d|DaX zh}N7tW!-J??GHREW6^3O*f-~#{~J^y)Y<5lMt-))Ffxw!8R_Ftm=aV+2m9vuho{|} zc3;~4X%F1DHTvo(-}as~Ey0=D#Wy>%p}#vZB7AJ6*U`G*I+_Ud4;5%6jo>TMlOEgr&&o@SCey+mIhM(EciT&)3sM6!xRq{_mQV=9RFC#T` zQ{JQb>Cxc-7FhfF44;5TUApmeGD+?1=L#@s<>%JX($6fUr1HNC`ST_^1wrz&A9^AG z<8-GYKf8+jL;6{ENcf3U3-x&r^;s;c^BVsxBZZqkb0rT&4NfUW9k%5i$&u9MIEqeZT{}^U^PAsv4Z*eRFSIO!qiSj6cLV^*)qRkt(H|xs=Y4Dnj~1y_AZM`Q&|| z1Hfh7djWkqWKc=NF`cMVn(Zkb)b4gvWb7*OBPi$7eRGcUuF?ui28B6?QJ=@&qIxQ< zg^||Nf3Q2wI%rgrZ+1`Yj{UGZ!h?0fgKh(pH~9-5{Jrv?blN80rhkAvb%SK4=u0T~Sa*z?fvVDctymxEunx64(@ z*o61^zkWa~;a~nv;$^Xqk7%XWjf>gf!(Tga$0;WDq z3ji2=kK7Le432VZzqJ?jksVcoa?~=6@(-sW=w8@NPJ~%7m;e29G|^=g#MR_ST4iqS z`{g*tK2-DhkHLMGc0BwpJBR;3mCL`22xnz^Fxet-qZn~uFF z=CRO!R;QNmlyB`-_CE|sWoO#|R>qV5y)c2ehXnM0caBN_OMwIHzY8r&|8ps%|7Ju; z|3$oVUH?SvMnU?Y-5o;z=Ex?r{^y8EoBdDe-vNaep8n16)%0(V<G^sgwTG$YBTl-v?@}fA4DZe~+gBnwMPafBQaL{cpjLR{VcS=SVM1VCFyn zMKk}{!36(kQT*3gaS`#42=mV?H}TJBsJvh0);_x{g#OKujRXHk!b$%Qpf^nZ(>49u zV|lLlKU{39|Hiv5^-pE}cg(J;ehW=A` zhR}c6ekc8>k;6{>1GVtc6;y{r-<3E%e;PWpEMz2WKK{4P!Z_E?@P z{(t+-p8uhi`d9L28Fsu-RsXIs7PS9kU1I-7liL4BPpeP+KO(&U^V0SGpU<)Y|Jy_8 zKMC1{-hZZ%!%qAIwJ`VpJ2m~+wgYOIO*R3^oGg*5KaH~Se`5Xo9?pJf8$_F z{oC##{dYW9RsTf9^!*>p68k?|l>Q5rlKyFk@cz#$*Y(fmvn;^>Cn5A-jLT_g{il(` zPW%J4@bq6iNYj7Kvo7^tzQb1kTQH;*|F{lqKQo6!27LlREEC>yrhj`Z&lUf-7uo8+ae$@%0|ft1 zSJgieF`a)bOYn~trGM#PE+zgEVg7mLy8iimmIe6V976xi&is?ZPW%J4@bq8YU(4$Ef~^*|7o8x|Cpc(|5+yeFU1Zf_(zM<|Bid>5&wuV|GaWt|3nZQ%>TzB z^e@BV;J`nUaMHg6=nYT*=KVDN+hcjI_#eB?R{xECE%jgd1@Hf}s_LJJn9e_zCHO~+ z(!X>w@BfG}|GaWt|9n2n0{m|bp?`B^6I%aiT znXwg{5Y3%}o{ty#|1+*W8CDtlK7!;%E_CQM>UaMTXolYOG&AVA#AP7as0%zIvw9wW zQYJa0?xt?AuetTl%odD7E6>*wbd z&)?>3vDJTLFQNZ$&=1eCmHurn=I1|81oVGg=+Ey#bdqs?4e&2g{y9`8D}OthNOpP# zboz>>LV4;>%EwSID1S)!M9N?OvV0yipU*Z~4>r0ls*Q01&p|EThnPr=+th)2A7TZN z<2txK-1i~o_%wf(JTB_t0Q@=jR*2`(S8lfTqYZ|ndNBF%#zo{uCrqH~A=r;Oe+}$O z?~)zmSR&g|fEKkUeV!ogSdJjskwv{=M{gxJ`wsPy3j`zM$E2Q`A6YY8`q5#d ztsf0Aq(yyH;t5%0Y&<5gs*hRIMLe)y9l#pdkXO*8_Nx{Hq#-#7k|86g7Ys=f<)rOb zKO*K-9~t^{JB$75V_5Fw#|0o5nf>ZW56zF$nJ)b(__wVePhdz3KR(_-e&k>RD?d(6 zGy8D|DwqAZ82?21vBoF;s6c=6V=t5-KNeA;hz-j)KZf#I8M;1_kX7jVXiMxn)W>)r z7#TkXb=UkDiDkOluR3n9_2YP&r61qzAU`UmTKkb991S8|e=5CrF`=+?`HN6iHfcvGTGaWm^xQ?_{P+q%vSST|pz@eOWnwNk3OIwGUrF~t(qU*u})X@amPAaKX%_@>BjHh!vt3KQ8-D&1N&7SY_B#?{%^C zkHSZ+{b(-Z0Y9c;jqJzGXi|RcyI#HkNkWkPs6o9@AUlM6+WqPo6pxc1r~d8a#{8`_-wAnjbZ>PFMAj zzQ)#%7cr!TA5U(g`dIXT)_&BG@j!hH!y36hnxIM5#}fQZ2<)tkt&1QTas_z{IJ$g12=lKi-$&SI)3-!@VRFi(5??=#Szlujzq5W71$DRB* z1_UEhAA3_YKT5{A^y7h*wth^&kQVjv_PgZAbWC97M_Go52kIlWlQiTknpAz1^sFZg zq5fpZW+*|1j89hv$_yGiq7FqY|RzdHP`tsmcZ zu=JzyJo!;J*4mGB84vjJHrB`mG8#?FkJC5FuRWmtoEJV7D_tRM+UMA z?Z->RzJnjTfM8_&SlwRpW6KzqevJ5+tsng{q(yyv{2uv{jtQ*lW5;N7eKf_k$9{Z? zCgn$?o$|g*{mGBTT;HYsLzvX;MF39M zuAR{P)uMkn`7x2$cc_mQpdm8n$DFpBA4~q?(vN$W+4|82LsEU1-VdCJkEi1O4@{uy zqsse%AAC(+ej3F&i1!0e3GORnS0Sq254?1Md_Qn0f@I4~>IGYRKs#9_LGK6tk83Ej zFMILf&7eB5ct7v}wqfZ@81Dx*Z=>nmUaZyo`+>i{ZL9x#H(Kg{f}bB2jtrsyorg*P z(dYvIg#MFIue?jOLsaSi^I)leO9V;(3n)R-e=9Vqs{i9C8mE0~kp3LeLjPgJyr_#X z^k4iZP5(6`1n-{TkIj0^R{u7b!s2|mV>$DW2^Igr@Bb}(P{af0^*NLgEB_&y)cLSv zUK4SDqW+}(Eb0a2dx<*HUVqny8&0~fUZ!zx@&3kl@YZQRN&wZ7IUj1Y*8FLNWx6^a z>g3z{@p>yuKL-4h{8;vYwI4Au9`Iuf*2sQbhbHAm`}*<)cszpS$0-ya`B6v}VS0aK z3ZH$U_o2e2PJRr4<4%6$0>Q}mF)2y&BkO*be*A5ztsf0Aq(yyH^7#;t39Ra4(tW1$ z`XH9bb}T@PIz>pSxOvH(Z_x~_~l^;ijoBZ&haM_PK_!r8LAEKlm=h2<~ z*asoVk5{Qo%7! zemqb@epK9J?MH@;2llH1tdR|wiYB#R4X%*q2lXdI(x?{-Ywz*Kd!$)`tcK* zlpk9bNIwoCNPet_66D8pDiqWCk-}$V==w-QR-yN+Xky>Nk3OI}GJYht)cojqNV|NQnKc0J?{5Uks+K*(!wby$Ku|zJ9VQ5kN)x5Xm>%HCxk{vCm7wkAH%+t@0 zd?@KuAE#b(^5aQj-@%U!Krk}<)#B!wA8YP%=|}s2*!pn`hNSwSZ%YdL{NZ-oWbpnU zCQ$VuU+?9n+;keBl;w{h?i^|~KTY53U#$2QM(E@8!^%3&#u{XSG z>&JUnTl#Te1^H2Ury;odJZ^5v-{{*t*^kbFX5q&qtdRX^hZg0>->xPhflpo6n8_mLxBUmB(@g`c7AHQEoe!PMR`7wb-u<+vy6b!15 zPhSe*N4kEFSopD>YPoUDZcSg{>biVn_==+WwvDW6>Z(@IZb1 zUZ(tL7HAfJ48jW8kA`Sbemr~y`EfBKsE-HOkLj48iXZ>@Mb*doenzwKBl$|{$4Rs(KmMISf7Gq+3w)S5YQc-A8B!#AA_+*SNqkh-)#N(wyC8bd)}b>DC=to9@wvL zJFff~7iboKEXE4CJ|0Ai^5g3_=}(>RLWKNi!y;Jtu@(vj)yK0rA^b>2cA@LzIkMfs zkF7v4JU>=9(frub$E6=JzuNlIA46Ky$F2POBOMb|sgEz{+q?OG^;K`9S@;oy&5!*k zMvL;};Wx;SPZ1$MUS|<3{76J?1^IFIxe$IV)?bHMoag6|iIX24KzDe4G>_H%Xpc3z zs*g4=+xoHba!Wr_as9{NfA=y357fs$@J)omkKTc1;m0hjkp1X}7Ujpkj?npWGa}?i z0~W!;kNJEy8vE7gXG8e02$$i|^)ZHQcc_o0KruW&<}}v)SmJZ(N6blEKiXhOi~6`a zkNoI_398h`!-gO0?=YH$AE&TF_G1-Vlppstq4VP{M97aPSOg0{YJ=#Y`uOtc5Pr;h z)ya{^ReTFhQ02_?J;1uij=f3qST^h3v=6Xif=W!7*ro0&I;j2&TJ6yr_?Qfo9=H8tRw*h(e3<nE@ zV5q)RHABYvdHcWVNn!!k#!gH{lW?LWdB?`))Rr(#e#~kl+Nef4bD5X=Cu2GIN3?xi z8TdX*`S;Chp{P+WHh81-TtCCdOMhCRjr=)}nx&7qx5sj9{h7i= z7TTYRm!13>K(*meKe<3OGX6}uMDr)Bt4n{bdfL{X1{l(!exAhj6z4xCu&SR~e>T_8 z0j!btw^z^<@F$b%r^`dqpDeVIKlku9Q0i|1@ofFs&qWs6pF_B`g|45KK*7nMV?Z=A z{_MS2^QWYXOMhO@vh`;Ih9rMX?`K74kw4Qhf$~SapGDv4y|;7V{l&FpK}S&um9gj0 zLiY3;^#zWfENZ)SuKcl^AJ9hjY=9nAKH1Pt+7tBo#jbqDhW2F=E^ncIX-YNWP&Y$> zCi~Jg+;gW>ZOxb7SSamld-&Y3_e%2O`Yw`XsCQ$Vf>`!5;c|WUDNBZ+AnoRy2`-}8v4cf?` z7r5+8{aY}%tv|K-Yz^&Cj((4}xDR}Xyqx?=049;~r$$Z9pGH_O)s5qQpyF{`e_pR) z=}+_%gQIf4Tt)f2}~m6&xk0^pUEjM{iz{;-^JqhBmStoU{yaS@HiLme_;Zv`k8){ zxqh~bQo!qeGzI+m6Zx}Zg!E@J+Q^^Y=uG}(VL7(-vyF=^v_HL&W$69w4WQuU&tV`M z8GknaaRCc6epg~&2bccLlE2qt;m`dT(&9ca0FQU^`7cbM{89ITlsi9H&j*gSH=4!s zf##@hK83zVi*#vY3VF0(6g?!^i!d3qj1|$pZ!U$;ROv@_;qxzwbYw=I;LrJyK5cpx8 zsTsjP^l_Wz?Ufz+_tRBVZ2f6~AuaBU4{$lg zV*<6GDu2kBNjC;6`y-P7AeP9+EI!5XVt>w|CCHze^@`Z&jH@w z4z;rOCmC_|`Dd=5g;*l{GYl=lpP&3azG@;4jNS;6B`rvZ+?1IUw6+kpH{>=GJ^JhttOMfn!Wb02G3~5n6r4y-sI$;8<`k8Zs$)9p8 zk^Lz^i}GhkraW_&BS`*akr25lLncdqCL=COr|SC`XP~T;KWWG^v_E^wo&Bi~>LcUN zsneQ2HL*Td_4C+7TYp}}kQV;j0mkw9&+D!IIdz@MpS!U{_NOWSh4Saod!;}15F~#} zP^;w6cjB!9Y-5V>GZB1rx$At7>8ei$SDnTxn>{lxNF8~S<0DaZTU2_)v^Pis&g8GmAqYyPyr z`drmd@i<$5-uuPUpL2YFD{NuyPYmK({bXW^TtBI3QT{yIUHa1sLGq_236Y!9W3=?= zbn_7YOhK_Z)z2Wu``Z9Q!l8b0foNp>ne?;fPZrka${$~btv?Mgq(%KyVh_Ume=MN> z`jlV)Tx0U*AePAfEI^C$XVlNJRDG4PFCa+%j3gm)Q#SlX`ZE}D+xpoLWu5#UAN+MiSLCV%e664{@o_!r8b zAAXeQPdx<5pAyt6{OO`zpYFpjw*Cx7u{rs(c#@MpZ3zj7`WX*IBjeAY|7!k>#QI$M z^Xv#)e~$lP>CZ$ye=6dv{TYO~w!f{z64{?=Xi@%ruFjuv2$DbDNr>E(?0aSXwCCY% z_P4cA*2$k8j_1!ygoJ}XyMSn9{8?S1`Lm^|OMm`&z}BDs7}BDCUc%dP`1~U#u-e~N zH!=AW_mlMJ09uqkOG{+^>_m|KSwcdfe$?}~xrp1=Pb{Ccq3;J}j?Z^aATcL@T7&w? z_!DzP^QQ&Y=c;}lyWiHI_rACEXHPo$Qy6RQPYmK({bXW^TtBI3QT{yonR@+$Ao)|1 zgvd>~K&Lvrp?3Q65dKU-u{qUG60!_^{tO@_9O@?*h(^YrN#AMyWMO@-{Q2cxTYnm0 zNQ?RzGmQL+X8|o<|1>uFa}Y~pe-@xc`7`P}_4)@v@@FIok(=`CUDBVyh}+iBekkkY z&t@7apNi}I)C*V3Qf2$DZ7NC>=t zKUCIFBOc!7elQ=(I@QnOhn)PGNJu#NvjT`l#-BM~Y5pvUcIi*QyKVhxgCQ;ICv_zG z(+Lw;)z6#;CV$GYME0iuEy|zlucSZA5hQ=INQm5&KI-}PWW;Uj=M0o}@@J0Y>(f2o zI{Q-})JMjjQwKGFYGQq^>Syy^w*I_`AuaqVz%w$u{<+NBpHr8b{J9%TWPh6CUnqa( z?Unx2Ly-I_L9J5#43hP;55w5{GZe+<SsIrW9E+85ie^&3;{Mk~^r9bZvvGu1vhP0@kbHk~A(lLS6{xXi@%*+9&;a0YUO-Bng4%JM^wJy*?d`xNZIH zhq6xo)J2w|{aK0a+sU6}Kr}M`>@C*(DXHz!pZEc`{!GA-R{r!Of2LystNm^7MJ9hb zqOjSYb7)ciY%P}l97T})*+N3(rsVphKWh-T^(TeT+R*!3U1S;BpJ+nDp?>-R(a89d zyhrn=JJ#o_exB=R>(B1pmj1kiXP9{XQ_I?)WW=@oZ6TJ({tQEl@~7n<=}&J2$)6S^ zL~cs`yQM#kczB!p!F(v|R6k{o=g&k!!oi;vKr}M`%=t|7XGu+${`}s@)}J;Q(xQI8 zyPf>$gbA$bXHE^1Kjl~=`%{1x<IROJskV z;$Im4JTCvRwH|`xPYG%j{(MfV()qIw!`S*W6vgJ`PlcmDZ3zj7`WX*IBjeAYoti%* zu|8M+eB-nA=lBjwfA*x2KNWwFfK~4YBV;`A_j(0bBO5doO=M8toS*zPH`Jkjj=x(% zkPJ#AC2~_HV{kSonaAM`uFChhu7$Er{v^>rA@6T55fTpm>;j_fPx#+|QKb2^<$o^y zx$6#FfBIuci~6~q>n9x(SoyR1cT@eu{YTn!04+xS6v^{vCxT?p5)vXeW&9{<&s@Z9 z>nE1a+R*odS&sE{0*N{K(;C!Arha0!YyPyr`drn|&YrgZy!WZ4Kg0S{{S;oX_9q5$ z?S7DnC35+sqDA>rYrFKP6@uhXO%ej1-@&szE}zr*`7>L8rl8iG>Swj%{cQjt;ZQ%h zKr}M`OxmXTlZExU@+b8+TYnm0NQ?R@?L+>=vw&6iw@DQye-2`a?9T$UD1Sz6lm5Jb zAo(+rguwapp!8=j;(2xX zY2nW_@%jf7SnY3n@fG4){d7cOvp?s=my6@?vwrf=yGh>Pjv`3@Y#||XQy%Rq{aJ&! ztv@Mz)`s5S_V#u1Cz_COsGmMSG&24qZ_)hej`g{!pXO<{{_Ngt>Cc`{R6mE#TKkhG zZff-@~0Cfu&STMzlnIjpL19v`|}~1 zls}Cgk_EI3LGou7DUqA9FID<8iN~?_=M0o}@+XG|3hB?DPn`X!59%Z1@?KQ*yD zSM^ib)z+UEF{Fh*Z*(Vr7X51N&#BX<{q1fnk?m=Uf1%Ewd4H9kPppR^*;9gAg*`2m zJ^L_>?fy0twdUkch2#CYEfL{RKjVRDWcIf~A8G!K#QI$M^Vpwl{W<<`OMlMs^U;b^ z*8U7aTswc(VTtU|G_)vx8ZVaRGY&!Wr#lIeo069z%cngLZ}WU-EtGZgXOQFb(U%Ab z2Y+?}(a89-dV}WAmXj|1@prcMr$2_YsGse;zolaWtNm^D36no@A4`7@phfvJ3F z=eCl`oD#-B;+G=H+NK3D!6NVWB+0fw}wpXb_xXi@&Oyj0fD3kZ@wBT0zdl%*J(uWy49x2>Q3P}a$xBW<1hS&8l2$)96DG&26| z{ZR9#g3@5V!Rwh0og1``e;6PX0s_5)Sp#2Z%<-pX9ZgKi#oDSM^hPldV6yKd|)Y zJ3fC7m0A0fjJUSHEyNPppJ8Y*{CP_K{SSiVPYV(Pf4@zq20g!S#KYU%59UKzr~2vS zc>YWzBpm!%0YoF?&z$!)f0p2z#$EZ-zJsklZ7`%o{S<(4y#B!iR`oNd)Z|Y&mdO4T zphfxfXsY`D0|d#RED{3#BujrLBW_ziXP~T;KQWH?>pca|{?rHck@4r$YR#XTSf49@ z-b%Lh=S2)@;m?WI?}NBe%W=Iso3@cm{7`_ArHoOWm5 z**%Mf__BZQI52sWzig%YcC$qK9<$j)H~Dg>6!~(yma|Q#{~NH0em9Z72EDj4wm0Hx zoBI}V7<16y6;_RoZd3cUcUwfwXf`G8baYJ5b^bAHE>xb5ZrF1j3GvLw=q%z-LK`;r z7L0{|zll51)4ON#8-b9v2$QvSSi{4Q#g2Yien0wrC~x?eTYGeK{QK;v8u+TS?}w+| zn|5E?{r7E+zWO%$jFfC0=%yTmTI10ul!|`#041=!XA%B~)QW!o z1I`GFr6{VGaKzWpmlH<{=JYEnD?|uiJ}17vjS2{(#v&uBe@d|aqgnq_@FDdd8vOls zQ193^;(P2|=$rhmrf>HWp>Hkuy;sSbg2-UMEZizG-1^~P+GxKWq0ut`pSAme@2TqJ z0KV9gl0RurnIudqOD(NJ3T>H;$DdZ=ktgg?SxTtTN^G(G2}_0k`4?r0q?l;2C6Pia ze=2|1R-}Z=q&=VS_uhMU&vnl4?*8t5y`ER~oOAcR=brOE-*fK${rjMF6J{ZL6`y-Y z37MtIQd;yV{S3y_D8kxZdN+=t?;)-5T8#d(dHvv0oma*86_1J2k3Slz8viSK{X=V% zOzQ-DWOgUrx zQ6k2F#p68wDB|(QF^=))wbk5DPmKED5)b1)^D6!LqmiodZ^q+~)+on+!u34=MYS~k zgHc(D@yD9M*|4(Xj~0cP|I}ap$Nw#9#5(-oZ~PZY(T;y_jX$QGG5#nK<6k_4#~(#J z{y4@l{^&3J{EzW4{_kC(AAdAbHU3R`{Lvca_>URL<1ebE@gIQ7N{l~pt*7xvi$aV) z^_TzgUnq@OhwuE2|C>^@Fd46z%vz+FAw8CNB?^TEzn5S_{Z`1 zqczI$pW2wmUsOxuKMa+X7=PqiPvakY|404hfBff3Bi3Puzww_dMLYhjHU5}##`vQ| zjQ@;_=o_`4MiGxcj&Y1XuT2%>f1!u*FKMiw|7fIQ{1-Ol@keWvdsKc<{9{wNXSUwl93e-!cf;~2;I z^V(D~{ug){|HwxA@kb*SR7>N39^IPoopQ+gKjd03<3Bm{ z{*U_0|M*xc@&NEi$6Y^Zya!{-65G82^4g?*CtvMy$iOit(@b{&(a1@b^}H zAHMmVh@LNmd>*j<6)F0`t?XfG>1s?teugy)CB}oZjQrB1q5qL*Hc6^P!6V4co`^SyJ?Z zFHIk_F-6%&Z2u8=MYvoqKCag6FOBtOJVo>EW9y5OkNukh^)XD2p2^XlSX$Z#d4+w% zphWmcT3pr0A2m=)J`Q3glaE}3lha2UuZ`jP_~Bn#A4_H^eZ1a)0Id349wBK?>|&)BI()Q2USS_)pV@qj zz^~f!{^Kx8$wvWZGWnQfaB})c;DcSE2)TFTKAIXZmQM_yqcyFRt~h{mtB zvX9LuB_H!KlgUTA!O7{PDbkC0e(iC8`o#rWA48@oebhRi0E|S_ls>M&X0bfFx2TqU zoF{gYq4LKF^okcB88t%rXhzX|`xrV^@-enBP#<;W=&>9fK2BkZvX8t1n~&nL=KdoW zrQ{=%4ug*rgOk%o6w*t$KGxRO`sn(+(#Nmo5`bQ4n$pLjYE<1?R7*Z4qS8Hoq$1mT z@zED8(&vwA6wSAf?o%Wm{nrQT=dL&1OkKLG}>|@qCn~$WYO&^m`N-h&t$wwj` z1|K!haS9)Wyn2P_|?81^3hrBBtxw)(a5%5 zd}Lh|%EtzDo_`;8o|8tfF|IGb``hK&QuKngrjOZ}qU@tLO2qxkiJ7L46qJ&WSULpBNLQ9p62{hswE%IQR$vPPT+FA`1nPv zTB`l&LW<^leK|T_8o?^Kz5spX$kFG2WcnD5Dat-tqeS>fn{}SCKaE2v`G};$;A6AF z$>}4D*T(RCj5$Z^W6QHjA0O8w06SM}e0){j9o2cFTJo_RmF_-@aJgQ5T#Xj#*O&1W z&9{%OS(1}4F*T(RC zJax9#$C6B?kJoXxfaf2pG(MJ|CLgmzwd5lQmF_-PpjW*3I6vh5%OHy8+sCqTl8<#O z1NG5Ujy{m1!$%wB74}i~q0L9}OI6J0A1Eas1(?a?W0Jwi=_85P#_)WMiq!g;GFIv1 zMqWT>qG`(g$31un7SBIKwdA7>D&2j|K(Bc5u^{CBv?E3H?PJ-->934JRVT!Vk zyyZ3@g*j&a$VDmn$fU#IBgNq4^bv*h60VQ52(6EkQ(cxn^rYQTEwan&Y#$7dy z^<@%D$;UuC3_jv;sW{x}qnKB(@Ya`~^xx0l0*zMO-|i`+1knmjQ~H>|+t(OTE%_KM zc9Nm)ZxfJhz4+*Y7U}ax2|CZekNDBj2zFQ+sE_TVr056VrRean8dH>gj6#XnpU#+B zi~1h#|3E4ENW@|E)}SZRNQI9=UcJKeans+8B9gO<+uzkb)%p3LnrO7bNBLQlKkA`r zN*}e45udUpR<-2g*zeXzhVl`OZ0p6xLuirS#|Ctse;;*5N+Z}9*B9XZ?eZt2=mqbX zK4xQzvX9;<5k3<3ny=rcpp<;X(qYIShYe27{IP&nukd_aTc-7Kfht&c4uls-1pqx`Y+ZHo&NaD3IJRfDpv_7T`Rr9fK2BkZvX8vEHXjM&Odq)@B_Ek|7<{A{oSZ(QkY2*|vF}%{kFF0X zeUu*}AHC2trH`e@sk*hOmVD%((%nZYvaJ^%51~ayRF#iv6wSAf?&*?`{&NELacr;@ zJ(8ot$8Jnf_A%=Xn~%b$O&^m`NKIWi`Iv}GcOMDJwqAU65m8k>O3-=!eZ)T~jbMk@1NE`}0V(>y*C;xC zti}{&AEQtr_NOx}AL%G1ABl7reAGb4DSQ<2>J^@kfMjn7awgyt}h$VdH#LWxnCN=#<;!!?{Ak6lA;&9V)~ekDat;2 zqeS>fyP=M;|42b8`G}>%;N!5t$(cVE@ah$wk5xZueH{6p(#M8U0&sG+1;FwAV+TJU z+a; z-A55F*Ncy6v`Ft`JVo>EW9tCP$NrZC^)XD2p2^X%zVty}VIMIl5k405Fn!cODfu{v znM^)%4NguUX}mUu=VM;6*2j|mN+19JfdH&}N#mp4cT_z~R7*aZpwivP3iOH>A8Wq1 zqN?^EgD9GBAIt8Oe5`vhP#-{8#B?A^Vt#rYZLydoSVle~4dLl=MkNU_f>|k#2Bu`e=&u67K!& zgne2cL+(}jDB=C-NHk69V-deSq_?P+d`uMY)Cl$Z+z9lF7ayr1_ovM$nr|ON`$|5> zP7l;aT{(IzM~9D7n4;_>Z<@_V>NxZDxm=Wzk4!oYK2i)$P9IT7FX8%la*x(W*Z(Me z+}pi&OErq-+ei04l8^pV1NCvNw-h~+ zqr=B;Oi}hR>v@}xqOPWoNhl>B1L-jMh{L7gaHo%AUcJIwUmpEl>!Sr4t+>Bk_$>iw zg{CQeT)UmBV??#&qb@4leIy{;dhrpB7U|cQ5_Fz_AMw4U5$rG}P#@dxk)j`*Owr+E zHKr*07=;qCKRt1|_4yZ+l8;0>3_fb0;}kv$dG!j<$3wfdK5C-T3Loz>fO=?}(#M2v z$Vb^Et6K6g7?timqLFRA_-G*1sq)7Lbe?}7b?%l%uraPL!28?fcS+F;CYnBGV~Vnm z-Y5}13R_ywKTt|OV(BpWIBalo=8pxudWGj>;7+ZNBdJOs8+ZXZ`J4s7@%$tCDEZhW zswE%IQR(jE1TNQ$j|8!5seCM?Xuj8%qjyRpSOwP?ppP6m`uuFu$7oDZ_R$(8!bkDH z&HZT{O36ng9R?qp4NguUS-due=i}~gwLZ4=RQh;$69L#cLE~c#zdn~IswE!-D)stY z5iZw@kMBRX)Tw-or)a)?Z0#ZW*grl{AH(G6nH(MKOCRJF_7Q^;;iIsN>7xcp$;Uy= zWb%<~aB})c`WU~1e5`s_<6|k`-pmr!l8+p5rxEJ@Wd(Z0i;oi_ z_aB2Onr|P=x=B9PWd-V^ryPACM~9C#$SdrlEYs#=L1)v)VU&`O0?cIcG0EWM^pV7C zV|YF~ZP)sk@^7V&i?)%EnP{4F|8W^VUL7T>B_CDAlg>~+W}sKR_{iECDt~mOXuf?+ z>niz}J1$TkE#>Hm934LDBd@TJU1M!NvN~DMKTt|O=3^$4k932R(??UJmvHZIZ`rE# zF{F#qN5?P8$4E3y=_6t@RreOvl8*yeo80#wBhV{ee5}}FMOCdY%_y30A45|lA7h^h z)JI)8dMrnWk5ibU>?3cC&Bu(J%=?#Il#-83It)Hi3{FlTQAjW0`nc{(t&gsql|F9W zNC0}FX-XeA6;O3+Q7!qXk4kqRsmQioe7y6S6;f=}^DS9MF zhmYNuqU>YVQ#Kz-NoM|-gi`V`kPd^7I9w_Ycls#i)hoR9<*F~VK3bsBiu>EUiwHm~ zG)?IvVjWe-h-%5lflsWF47I)_AlrKJQ5f?6r39Vl-$#71G=d#60`;-IqZIw%lN233 zR%42?k5MQQ`_rbknLg4{Nv_xur!Z0p6xiLb1vs{FA5o#)?2o!g}mY>ev*@cwprk`%pQl<8wO zrYQU9jS}G_s=etW1*PO8mJWlD!v-g3{#d}PS9m@y*r@e!BvI*O&jtc;a-;>o@%&@V zUaH9zQyzrhf?wpNr%D5W`mQ{M;5P*;rTdsgVx8E4oV*nuO$FGAJ_P3$LmX;sFr** zL8ZHoB3!N)AK$OBqN;q1r)a)?Y;7<3*#B6dK8DHBGdViemp;fV>>~yx!bjGP*84wD zNtjhfrH_XEe0|jjjgNDq2PvAd5I=oK$M zCX1*lAA=~GZy(EUm3*ul9;lC=a`b^59X{G1udt7@VKyHt63;O||AJETQGl6DJ|-EQ zoIa9xZ4A%H&+D{4rre_RaZMiOkC|wia{n;_lNsOtA*v-GgT+h_wLhJKUh(4N)m4@{ zm5+`T&9{$fZ6zOb9}Uz;OF4QXM~9F4$Sdq)*HD{}r0dN5u^FZ0V?Jgw`A9c7Iej!m zdI|Ubc5lAc$B>(qK1xamz(_Pr>EkmzjKK2`Q7!pcES^+^@-YIv;>AZQTBP59G^1#~ zeGF|Q`5601pg!u#(PKF}e4N4*WgmGD+k8a*R@=xQxhN$cnRFO@q!^r>KBACb!u7Fj zt=31^)=D4WenbFzp=nAVi}?9iYf&xvn21XE^(7VA){BoMv`Fux8b$N%qkAjKNB<## z`Z#uz6g`ro!^dt+QT8$GA-j)rE;4*fLMizeNQc2k94-}yJAD-M>J{GlQt*-1M+-Ds zaew>p3i8nkO;h@qu#~D}M788&Fe=@BBp};*@$vopR#escQi9I&?<4+3X#_i@2kK+{ z4N~-jgDEzrxWCG4WqwM(5{BQ0FOR;E zOAEPl2TDsvV^(&`{uHm*poYFXIx+ia`UUu7^{N>wEX7I5{qFJMjI`$)=;G&fg*XukkzNrL!?*SZ>@U7lY#tePjI|dL@3x{DEsFhojOAhi~F{;tx$x{QlSP?~4&U zUU0xR?XwOm~`(5jZ^cil?uAEPl?Ugq}-@v5zAes4f-^*_JsTqE^s zV_aW=^Lu#fyV?AH<2aOZ{-?tz{~Mgn$p6ST z`urFA_XEFLs`as@xzfkO3kkr^|7v{X8_&N*wd7-7<(_}za=rNY{>@N6##1!kKDJ&Z z`PkntP#?qO=$RZH_ZNMTSJ+1kN`#LSY3BQfYoL^T9K=i}AGro6r;jwO;o zk}H)y#xEuxtM1kKSjo4ivqZJzV>T+?_m3;kD_(q@c-xAq${&L$nr|P=u8@4J>l>(# zo^teo934K|Ag{2Gvj5n8B+WM0m%}I}9|f4n}4B*T(SHmk)EbKBhEN`uKJ^ z`Iw2ODfb^sU#IF(qFVBigGzTFGtetud?cYo`uoq06wSAfX_rer=JpBHM@u<+B1eah z`p7HnV^?pxkLuR*Z9_LzI_ahm3)lt6{wH8a`ae^4j-p5McGH*JvJX{ z$>&nvmq+KKlze33F#7)5j}QijJAFhUy@cyy!6L1Xu1%CaE_#gs^g`2=KK^=@s#}X{ z$;WO~y8B2)w)Ns8OGH)qs7BFz`{>?S^3nh9Kz$r*Bt?(p=x-4%pd6} zB_D}6jKBXHja2w3 z(uE>Rc*~U}IcgfcLk{8%WU$dYC?DV~Vnm-Y5}1QX{PA-zX&?v2+;n z$6K$>eVoAMdht>8 zf)!P@zAU6@zSozd^`#N4g6j*=M~)nQemB#{XiQP|(HbSfNAdI4`~Of%J|gKb_}FZ4 za{9>PwJ|&&8$*2mb&S%-$8*WY&VOrse3e7hd7@hKu^g4|K8kR;UVL1Q78y}hKE_it z-#)h1lYH#&8mNz9a`a4&j`gJv@(TNiL5c8DbjM^pVDEV|YFi zUeo4}B^N7wG&7!mbkX>jI+c9P64jEAVW@QXu>!r~#m9`0>&qaD=G(`zizFZGQUdkS zQ;t56qr*oVy!?z3)sl~@sC4%+1HIzK$A~FbR8{`yNYQ-zm=-Phn0rT{K3dAr6FEA3 z)JI-nAGSJ{XpTzv{BZ)8>&3^bA@5%n zQZ(P|%h7YC5v+pi3(!Z79DV++rjOB>qU@tJN`#N1D%S6xqm+C^(qZti+2G{#k;Q9c zcs_PMul2E|y3)tPS+u_FyhY=qT{czciE7D56I8nUD8l7>@$r486;-vqjHhV6eQZ5P z^0B{dpgxAl(K9(Z)|WoWE9@f%CBjGHKW6@@fl~5u5Hp#4*2k16rH>oOlaHBb znsWbf874E{{~@X+A63On54Hc8fnM?AW5Khbd~~E}zI{xKlzhx>6{wGva`Z%w4j=WA zSJ=m{n`}O^j+yymGfK(Fe9UC>k#2Bu`e=&u67K!&;%u#tAyt(=_IykLMxtp-A2;## zwYR92eAE{^$xuEgzMw2@me2U&rf=~>8AkB;lW7O2q!O zsI~d~aOo%|ABl7reAGb4DSQ<2>J^@kH^ymw)I_6IK1LFNdT5%`#~Y)mx-8zRmVAsu zrMr)4WLr-@p0J{-d~87H`S(%hZ)pS@Pxie7N7>0>sgDEsJ*65%6tv-SJu zC?y}UbQpXbHaI!+#{yox!t;^yjMm4IGNq4xj}w5C*H{3Y&p(Dy^)68@`Dl(xcONHk zxn6vH@t74=V~6PwJ|&&}4F*T(RC z49(E`Sn`L`$2Ct;f>_mDnOFlZI(mj8yK(Bc5@v7L>sC*2fXuf?cJ0ba4 zcU7Q1ddkrUa&-7;gS^5%%C5BeC``G)cz^O?l#-7E%w+O0$>8Mlk;H3bcs}kMt@SbG zxYEb1LkPf3G)=kxSjo@FMu}?4$852a40V4y1HIzK$2$*M>Qp{DQZ(N_rX7=f%)KH| zA1&qRi5wk1>LahPk6q1dK9c^jo`0Z}e9Xs8CLierC#R35NH5{u-`+h^>to38N+08A zlaG;Tn$pMpT-{q#OFlZI(mj8SK(Bc5ablJgRpp}@Mf2@r=uyeX*vkX;QCE&0%hBQE z6s9Qq$ZKlzvEn}K_s>yEJ~HVr_((B0IekPSy@cx{>2a-(uD>aLT!T+T%C$E+qc zA6c!e=N~8~9|P$y_=v-$;&7*rVqU$%TVJjlq4m)MjaJ;>KF;e)D>O~%V**#lh-%5l zU{t#MNIkIJycKOdz^n!+_kJ*@_?4vhIgpZ>B*5_YP zNF(nM zF4v2XA`w;PVtU^rEhS1H4Id-`J1^1rsQmy{=ZR{`$Fch>&3@poKl}Z z##1!kKDPcS`Pg4SP#?qO=$RZH>q{Tx74{K>65*rimFE7m21?1tLCj?Gk!x^r`bguo zF+3mT=~^F4ij_V}`VxRuF&ZED{Fka{iE7D58&taIj}_<@FFsPyBE6466wSAfWd|i6 z>*@vSqo*8wAV-IfHpnaNqwHdvkHSvo^RdGyB_9Qt$>d{_!O7_(iPy&PeEjmD*2k0s zN+0F@2*6A$S^YzUrB_H!KlgUTA!O7{PDbh>0_qX5Quk|rxpVCJy&L1Pu zG^LNy|B#Q~qFVB?36<_XMxa-`_{b1ZRr`--6wSAfp?f7CW1|E0QCE&0%hBQE6s9Qq z$h*+yBW;_x|Hwrt`N*Wh;3LK0|2r==(|g(}C!LtBeVS9l&l;ZhBInVEr2&|mnFZbd6FRG>aJsOpj$p08DFZ27Mkn_74Me{wshwhU4b!@Fb z=XYH>dMrn${EyjV|4en&y3-goHlpFI0Mt&grd zl|J^|!}%XgQ~LO;Csnr=)sm0hsC4&{YR!&Z{tngT+R51$(+FpG`Ru2SD8iQkXX0NG zG-1C=nRs;aeBjr?E3=A-G)rjJP|<@`^F zQU1rJs`5XI!}W3cUagN7XtW}KT*R-xw?fm@J~GHhjHs4CN0x}H+CP?{ z^ZfgW|3(_Y4(A2xV|$Sl{ouJ29X?iLin5PUC=t&m3is7C@<%#K$wwj`1|K!haS9)W zC=S=h&;QZ-sEI}^e7xI@0MtX%ls@k7Le*u}t!l|fXH>fTh(@;cvc5Dxi}d+p13J&Y zk2+sVBiI<%hrY?Kiti`?UkfXr;oHoUC#UVj7n=8}_(pT=Pw0EglgI7-E&0lV0>sgDEsJ*65%7O)ckx(3QEaGEFA_PhYe27 z{o?{&y(+nXbbSBy_r0|~j%-u*#v1gqfs0`!q1N1uPT>0>meDEnxQ65*qGf$1X-rQ{=$4ug-)1}CSF zEM6PK^YQgPS|3}!GJIT8@xupS;fD`y|-vMNc)dfD01#U-Vy3#AOGWM<0+cqBh~r4 z2A3JXYfy>bCD{6<vMsyzOW z7~@aTeCLO)U&!NMrDFU8SU-lz(K9(Z_7{DSH#k4UphV<{!ue)?sDV<-4+k+*DL>>g zpEK@H(s=C)FF)+PQ|n{NW~GmRCli2GXK8%2>rBee{&059H|Z(FS>heUz2s66xn%kTXit-m*Ubic<1XfSF7_CK;TZ z>qipuNx1vZq8?fwQ$APvxaM{OFcVEv?my4LWX9_sqFVBC2)5jP%s{Vr@$qVs6;<@!}&xL{<4{M$vrx7`j37 zG4}63ebkks$8vP|IE5+7KJrf4d_=us`p88o`N*Wh;3LK0QuIiU4j;QQMcK!!lQthoFPlClp_F_Kq{HAN4ws6<( z&@`owH`-Bk*&kN5CQuKlo zrjOZ}qU@tLN`#N3PfZ^wC?y}UbQpXbHaI!+#{yox!t*gLS?lA-$4VbxjwAplk6Qp7 z&%c&(^)68@`N%<~yN?sNTrWP_im0mmv5=zqUSE!`l}4}%t}j3zIdb&*$4noiF-6%& zYm`*@ILGu6hf?wpNr%D5W`mQ{M;5P*;rV#_cCC*sYm`2ozL9+F{9WT?B|jd?6V;NB z*{F2)QH0C&;^UVatf(p<<0+bNA6q|?eC$6OsE=WC^h}P9^`#H;3j2sbiSRMvRntce zl#-8wn91ZL*Wl#zk;ZFdcs`y;)cRPmTIr)-0{K|=o5sh~mQ+1UR7*aFq0-&Q3iOH> zA75N=MOFD2MA3ZvSe7UGSodq7K6=X02Xb`yXoI}MKFW^ReTd(GLn-+vz)U6|lMGHy zA4$A6hUepv4q6{mRw;c{yN&?NMAMY}k4NIEdX%V^eDp-6yN?;@6)!$Uh^Q(b9Vwb` zAJbM!KIZ-ssE?L%^hAyhAN7$}*vGEJHXp@tX8zcWQt~k$Gnss(8=Raznj*b~dw)Bi zoz};Y50yT~bN(2KrYU`Vb`AOHEvh9Si&5$BV+4A|i;oi_^G7p^=G({64!a%mrH?_pfb>Gs zls@*hARnzowd7+xD&2jgBHMcLQG|?UL{;UFY81`4kM8eFKKlO@sE=dIrRb3y9X@tr zin5PcrFI_|nLZ|=lza@N!{8$hmx{xkK8ktu3U7V6<7Tao7HG8M{&r6s0ceG$DSgy# zPSr7@TJmx1Dr+P|Js(Rzw)Ntp3tFW2QG(9%?<4*_X#_iz1nOh^GAa7OA1OL~ti}{& zAEQtr_NUP~rjK-#l8;0>3_fb0;}kv$dG!j0`&uR9#kV zRZBirqtZQpL?hdJ@_`oVeQZGI`S($0sWgI(aeV>a-!6Ywie7Ng^f4P#lzsF@iSQA% z_(J3TVJRpjAF*^8d>l47IrGN?UcJKeal=hoA4irbeGFgv_^^Wk+#*$ zA8{xpACYtzd~7y2IeldD+8CaX%Wu&7*pjRC@iayQ&p-BQd|YuWRp*In$;Wx9bk83} zxLhwjerak&Rqa27xcp$;Uy= zWb%<~aB})c0>wZ5!CuXyos0$U#a z`Z9>3`S!8wEy>5a9|HB!Q;t56qr*oV=oK$MMqFk^RppP46wSAf zX$vJEbH5AJM@u<+B1eah`p7HnW7lq*kF@%xkIg70AM-Jj$w#`u$?2mh(o4Aaw^gsz z`WW)2(nraq7Y+j{YlAfl>#RHJCVeRQ8E`RKnRP#?$UO3@=ZI(+QL6lEW? zzP0-h&p%K~J_gcZ@DYbg#oO4?wGUoEPHwXRIG%rW!_6i>|0JpP%HN>Zj_;WBByhiGrs6YR*rm5D)mf1=l4_`z8 zc7CPtk<80ao~V|5G)JZT`ci~m@#5qAe_2sg>&tkG=G({CS(1fNmqho#P zgS^5%Vo+lE7?Gbmxoy>7t4EY>nRvF5MxszjLcYg@CLs$9RV*Z(KHzD6zSDG)%4?<0 zN$Ah(zt%+S<+YhgFSkaMm$$ZPyi9FC)z67)$;&WQx_eoGUh?AQoeQm~Dld0aG~Zt4 zyexTn?~6da+$KlAlcU2+bL1KJ^7CfN%dpP1BT8S(HoX*~lDxcw2~J){7|OI>n)2Ei zo|kF*@2?&5lHtYi`O1C`3B*XWQMo_)iaGTb)zarHm!s11qW^s52=o$rspRJ?ztG(O z8lSIhM$rr}K0aSL^hL?b*i98)!uWh;6FJ)T91WkZJP&yWy;>gq`RC+=K3|DXac^6D z1Fbkm{;YzIUx^y}kmXd&W{4R6uZs1h0rHEu&z%@`q#9zJ`8mtb`D0i^ZT`4-hSI~A zb;!d5XqM8$QeJQF5Y>{09NT)M_mGBO@#3K^T4X4b^M~Q#B8ukQ!+kGE9v>>=+n$-|B0;ohU6 zuij>UoEY^@q_Q8d|H3E0&qA|p-}CekJ^`GMCeSCqpSXcPulp@^wBhHB?|Hh%_`G&$ zT}%~jek_*vcaKZeIu?v^h2dT=l#<($z9o}hCBLxr}+FsFVoohe5&!>Rd~jD-kN5O=P#&~#xoY(!{d1XHMa3gKbt;A z{tXIgJeP1MDaJE_S64BfXIBj|p387Y9C|#f5gV8Byba1jjb{_9-t&0Yn<|axRk(J# zuhEaEo>%Vo{(T-z%vA-}KsxRpFRM${vqZJD->ZsBYyH-LK7NIz zyOQ6}wB}qZs+_Nl&&Lmz2&<9o`{2Xb`m_u5P+=!JM* zvyPzC{iAVz&;k3sB~P3Cy<$|-es2xt9_{zCaK$`dcGt>O-5(@i`iQ)K#`nQE=D)+s z!HcwBo|>%m@-T1cve8E6`o5PrJt(RrFY8h1?j;Mo#IviCUcL``e{ds3^X=uCNs^c8 zp9Jcqi5&fUjt(#9Aseul&-2Mk7k=J={a-t*K&3~1sX{|g9=!sU;i^=tcit z8cmQ!^tv^HdRaeSivIOS6dhg`W6H9Z2T@|nFEz=_l%Gs5si-6`SL0~%l7_a1^0I(e zzwo@wt)umFxd+~BwC{%e_NYQ-fm!nzI zh*rV%1^N72jy^xn^fDS#mc6t_iOmb=m#%frG1jA|s3b3^*>p*1p`lE>9*yADFFY^f zYH7W!%~X21h7-ufRT?i5XOow=MYZJRKvZSC6rz{BczHF#imLMRI7RdA<&$xemu)Kp z^)f(?KAfW?zjQ|4VK3*R#OCE8$}dayn)&6#hlZCgFu{2}GL&h(B=OoBo|gyD*Ls;U zR_Wzw+>PM&Z%YRStmRJ!Mv8R#W1UVag~B9)hp6wSAnY0pSr=6(>U zmzHw$M2-$G^^tej%dQoYm;U7CpZ%tnLR3!ld=;ocv`R@dg27EdX?G~@-R z722ru^2TZM5+kZ5FXK?@?j-@)*^8ISVwF>QDM2s#_Y$8WdFk+8pkB5=DMdfHjH1KK zYD`)7G72TO^(d0Oy!M0XB@LD2r7eyoFC)-a{FTx4Ubc)>dTGe((at3n2*>l?`#HbliE7D9XECy& z-XBziOZMVrve*@=yo{%4zSpCzPe>!W|D8a+43nd0a&+XEKFB-lB?cua=JUEFJaWZr zVG((M;U8;3p}e%o2J_8AWx0l$ZQxC6W*OjE&3!o1cpb=e(}h<-og4N0g$`EHdU@?} zrI%k%Qhs?04O8Zq(n~47JSVCpFPl*5o?jNAm%MoCixwGCRbK9 z1?r`)96gq!!^P>)X5@o#53^=Opy&M@#;>EFw9(xcy!2Q=P9j-ZD(-WzP}v(utc?fMIp4 zN41Yp^;M!;@^b8VYh**MM@h)eUc7Wci}d;BPwGtHUfMq@dFin*P%j6DO3{zMNzvhD z6Q(SCc@8DQOVJ?H%abT2FL&ZFcuBxaW-o~-58;ht6wSAneGf?^`up5Ky^NEizrfLv zUj}2!vX`q+BD|zEsco!Bm!Ooq90z82X=>${gL6W9N#oToJTE=|(t25vuJ&?}ysY9T zDe}u_Ts=!vOI{YE(tZE30=?wPi-@Z7GKix2_OfiSvneYo$ zw-(ism%*rX_mYZU^5Ug0TBP6aR-uTWdFlU3pk9vsPl_JN(cxt`rYw7zHQVlG zuDKpfLMeF}h{NEe5Kp&wzk4UjLwG6T)h|3R$Bt^fT#AcO>~}xjMbrMB!!o2u{hxU zFQQuVQdg`Tq3(}P(B*sB@1Fi4l$V7R&9|4M{iPADg6j+L{wPO|KK~`t%V6x9=v?ybfjp$y-d4T@-jCkP%kaz=!qO1Ug{(7u$NuaZC;B1 zZF<>^Qpzv$F|*0bw`P8M0p%gQMDyAjo|jQSX}#RrSLvmE2Z4Bio22k^EvKJ5M789l zE-KygOB#B~iU8CUj4%J(xF)E<)3?$UfxC4!~0*jNeVAJusGoTFO#XoR4sW~ zEmn?D>roW4vllN7&?0?)`H(u(x0kcf8TR+T;Q9jG@6NkhivIp2)5}CmS@v=VN`#ja zb81rOmPg-=Qu1;k4uh8!J54Wc-gyZ#qzrG$}bDhOJ2OZ^QEOw<>hXQ=G)7ho|2dMCIsr`HaYs8935VoBk!=6pU2z1Y&4(O zeTP!=@;+uZyu7-_^fDjiA@WO8UR%TSvhN42mmxirUS8)Hpht3(6kf*sNt}9%YRSt0 zRJ!Mv5$Gi^Ud~60^y^VGisswP(C(6#vCjtTrLG)3mZQVVDNI@Rl9y%kl5|s5BfsRL zl)Pl(FnBq!$@DTD17XEh4;U3lN4Ug!NW7W|3y?wUJh02 z{wN9A*^8GhXp!E_pVXPYy|n+ghF-(Ko;kw&yJt}np-?(!5VdciZMm)V%I z?4>tKgqMUO^ZqCWrQ{_Rhrvr~f$8N!l!x##gIB-syiDJr_3}e!rI)+WD!l(?j0M86 z-@TZZtItKX-TXp9<+EjaR?$ygd4i*2|JkN-qsLzpUaWDe}u0 zJOse^zldtd%K%im=a&`eB`;nkhs-a7D4K6C%aSE8>oNlM(o>E;kfXy(8{{4KQud_H z%Yx6$4;~#xDS0Wt%!ZdJYdv}&7xVn(nOAaJx7O^^N@Gg%jctPUS>RJ z-XDF0Qu6WwW;VQJePXUhnJ5q8C5qS9@Vvxt(|YNer1bJ@K6&ZIO;ULIY9m#*7S)oM z<*0PeFRADyFJAhhMf&}2HHzljOZP;{OaGC9dO3ER6g`ro!^>_=S@tsP3GzbU7nF)` zn@h;~vsMJYhBg=fDs6V1xtn@8@JG;d;|5dD?I^eO^rg=rwQzhNZ6U9Q;rXfd zmDW#9T$Ez}`|er-QjZ&@@RN*YWB>a&wVA3VKh06;?k5`A+KZnCXp!E}2I@}Ve(H3P zMz}GqFUb9GdntOsV-y{JW@8GopWZ03`PqJ){T#->N=vRW{oI0M$j`s#F(oX5;;g1N&&Jh+6$9_2CW2(**)smkBVx&X8UQk3G;9)=f z{pwJD##1!kezx8!jqv{Af%+LHN6+Nw@Y4rVnEk|{#OCK%PIbyZ=?n2S*bA>V{roe` z@be9*!_UWSOh2EZJfxo_UM(x>NBX|YcQ+Y&?rwhG)fuZ@iqCv9dh6iP~TALnB@Lp_e~u>7n% z`j#&qRTQ=;qRAX{-k8@FKtp>0|@DO`l8E1%uak(Yj|Dj`@bPV zd>_HYsLPjvkMTXeJNmT$Py4>@?`_|&?|S~;--PaHO$vQcaN99eA|f8k!1t9d#hLm0 zN|X8fN}FMfOkX$3-=DZN{tq-JIs41foVIkvvXtyU_|w+&(J;zBP5HB9?IQRaOyzTr zp_7z0#}wq5Z~=}yv?F!@*%Mp zgEN{t56RPxAzDvsFuvu{9V`CO?&%HN;Ojm0HzrQyJSCx_)-FixsV;@9gs0A!TS0hg z*-G-1h`!?eM}6cS_O$CE*;9vq%%7m$hzjyF2Q48_53oSvqpeO)4UmnjyjfXKGjEbS zy^YgR=BuQq$%XEon&AvePq!~87T4m8Do+#AwVoDyMt}Gx4zRYsw)`{!mDb?vJzao~ z$G}$3)2r`Qgj9Q4PfjY~=@c9U;pxB)lBeT?O;4LJciGc(D6!|K{dLUm+8v1s^36Pa9dF+EWIvs@^=EY$@fZbGc=e_7wezyQlFugEBuo#@nE& z_p3dX4$^x1Vi`fayW$V+o|dB08hm|zdKBGRX-{9+wq$BgO(L<*wfGdlRZuUz}!FWL1tk8y?J^oUhmsWf`|)g4kf;0TNO-!E1*$!L&uf=APrbNhV!eA1 zr}NO!JNgU#P7ABgzo8R zt;2V(m6pw=Usy>*DIWEeUV_8uK}C#tziHmbE#TGDaFaYS>ao{xxyt7imAJpF&Mg$4 zVz`CodUu}d{oR9k?w($X(|9`jE%NZjeF{%)=o=l_QzNccdiv&V`uqP@{Jq`NDpXnq z^qxj@2j{zZ>bs~SmfBNGic<+sgE6;wYJ};jPjksr`hQJNw;?OArz$A1d&+x*JRR?6 zc-qXTKf_Zhub#rw<*)kiwCXBpz55(z7Wv8D(^V_oJ$1wxjP=fupKicyQ+aeZoYA@7 zCCn?gJZ-&~s+FFe#W0sg*RJ?`yQc?i2K1hqV;nHPE}kaawq$Bg2WX%w;i*36mLE^& zT`76G1f7F*?t{`}h|8Yd>nnSD?nUx6AElI^p5)V?;VBAP(|Rs|{PfK%AD$k#Lh>{U zXZGM}@Y%+6!m%J>Bpo{e3TkqV**KG21CrZgv z91c^gcPn^}68Y)bmwkAu$1N1=-BsMeO0Rdfncof?%G1K88c#18`=8zlPpiu;Pw`x> z%uhegBTtW1{JlLtZA7JIK%bu`atFKRr(bMae6^?BC{86jjmF&a<7sfLi-TkTB=LJzS=?}lf0p=gtpBI!;wl*I=>YqRT zZVYVYo{wkDt_WG3?ol@+IbOe;N8t=lXS{xQl zlchZc6X|*RIVjgWFF%bN61@Ij@rQO_d+Bb))z@_D-paoI(f|#$LaKe;M&T;qYxHHo z_!`ha@-@7N>8ms5GW$9gC3auyrkfuLJlWmwwUt^jF`){+@Cuo%Jo*!q>wG2gsvDlK zRhLNl>vNoj@>eB&^?lp$g>Sn(^Y?FWqIVy3LVP28J!3qb!aEQ6O$5m=5Rx8zS+v_8 z-h+OI6tDJQg9>Xj2N>C6B~KQ#Yr@SO1W%TRq9=_Jt(Dn~3zKUnZ!l(6c9)eu-G;KM zcrU|byx(u)2>RSe38rd!^uBHu=i%u%;a51}7F1X#Y;Bw{Uz~6g{)-<$MbHV+gv?c3 zg0orgTF4hKzNgohIx_?3qDGIWznGYTU+&%hZ<;jpv%bRzm)?S@jUg?MK8;c|5)I8* znTU74q~S}haa4KqVN}pN$_g+=>EYxg=7Y`V?%}QIogwD)r6gV@&Gqbz-@8N}DxC+9 z)W;KzcRcK^c*g_3Pez-ER*FlT79(BST(pdwyn+;T=xyu$kecUf`9JM4GSwOR>FPyp zeyZcVN5c_^S$}G2n%C*^qj8ZgqELwD&;31W9a55 zuAbD%ZE-HyPfiz`pMNm5*v}f2+Wka7Y`$2Miwg3SNk_s@iXqPFCknYn-2W^63;=9@ ze!5>QU0Q#%EC4@$EO7I)@gj|%9oUqVM{i3J!)fK8k8QgZy`Q7#Qg41bPNfsxS8+ni zPYYC7VDi?axmg`O+F2m*zMBY?|lhCp%i>CmB!4%A=>>afY93=<%6r z{#k}D_2#GA6gpv}iW6FXj!dpNq25nBI-!f7+zTZ?YdSgo)J2K#^Ax5u`)P|($ijq2=d?O8JSP6T0|Gzd-8b44eypVcY-gzTM{M77Qx; zIgL`gpVX(#_3JPyc>jY*$on5doYPMdFPowK%mZwHex}utE^RJahD-CCe;#|?%};fl zSMBFH8qN#Q4yPYfxciBx8O3)*mEAv&&!!X3NfIZt{0u>bbwYjq$;TMF`H8D7b#hyr zOZJnKX!G+ArWX5IgHpSn;sNHHBXd!~`yV=z_CJO=r=KY75nT2^fbGvu_gd1W^+(GB z@YC^CH$NL|YW$30Kih5-!)fh*235+>QFN&{Ki^IwKlfFf(DJhu74Ck<&0F{m>K)3PiFDV_3-o#%Jpqu#p z3;cUAg}iKr%0Ep2oBT`)`~Itrd})o1OY@t58q9X{lU+mOXDZ)+O>cjOpT{e8|FsM~ z>dnuWndGNY#R)AxAE3hBPdhrHi=W){BtL7~IsMc{NyYvLQ=0j-MXAMy?%xZaH1kg! zDtP}xN7DYs0O!mj)um3(z`5`jw*Akcw)Xtf7Ng35 z{zkC{i1N?-KbU~%cmlK@vycEyG{`yfPZBSiq5RAPY=8M@+Bwpt%|*j-X@2w1win&} zRL6OhexBg3^|-+7P}}pveyFg9Q|~99W|XJ>&xh=1&dq1|d96}@@-c*Ne&VW0o!l1Z zlKm`hWA}3!bBq0agkrm&*nOrSI-dNDqa)#`vmwsmCkm^Y%l-$j{rTyBwsdLz(Xasg z+SXbOr?vli-F7>q_j43I>dnvNV|f2laY8Hq+=~hetbYGIhE9ks z3%UP^lsfrzE2p16C=u(|T1+kGlYvr;53OIRL(TiIbW{+ZL^=|DY9Ni^FP!UFAupSu z@=p`MCO_dnf3726T4UqV{N|s`>27|qt7`oG^)wCV^qbD`vj-K{aO(XmLzjByjVSSQr`X-6k?@snFc^0Vefr=Pkg5q_S+lx9C|QEK;7{H5t94i&urp(APk zV~BJ5$>L=*l%E3_eSdzoo+Vw{{u=_xKYgdV`RRo7D%Y=-88nirBw zmwNN_=SVu?z65bX%g+y}uuiD=6G10*@sl1Qb#eyIg}<=vf3{z5^K%OZmHnJXsohWN zX6yM6D#%X(CL#HmWQcS6N#bQQl%IKk?a$A&@{?F2#q02M(K1|`-~4mK6gNNBabBgL z2!40j1!#xEPs!Yh;ne$yry1pG|Fduu`I*yFoY3+!1r_do@-c>Pe&YU-I=L;*CHq-? zopE;K{{1xO76bYS#TFpiKVSb%4N6nx(R4iTf9Ocs{}|+)`ycEPT=qYJO@6|^fA4-; zy0rdiSO9*aCb{|9__xMS{u?x$+v3G=TKk`csIZ1p@8>9b)SI7%yy3d9;)Ir;vuztL zef}9kCq$Qp-2a@CI{EaqPCtWDVtf9Bxy62-M6umZ!PllAI-dO8Mn}TWdB`L93x}UV zUN%GJpC*9q&rcos(i$6=<~RTB$aeFSU8eE#*9YWh`ZZ_x*@FsqKg-ag-u&D+j8537 z;)Ir;OHpB+Q17Q5ozTTk?n%kdnift!%~4X}Cj)bu{oIUVyPwGI=KU8PPkyS>k?^z0 z5a;ld#miDUJ>hsS~ z^r$yKCG2NkoH(K7XG^90M9>Lc{G|UWb#eyIg}<=ve-1Ub`)P|&Wj}wT*zRZemuCK< zevP3MqRT?= ze}0!b`E)aH{DmX`6!NkeD*rSA zY=8Nuj(lm2jZ5>Je;PgG<|q58#?KqZ`+qJ!!_WB2z5fS2>dnuM>Ae4`IHBd|QdGG6 zX-6k?@ssxBCJ6G10*@soZ;>f{WZ3x8qT|7>q;Tfc6>pfaD+D7E;|`c?Fa_524F z#HRq0koZh8z&Y2iBwjW{`I!gU~YuYc;rOidlaA|(?&*x9N`KgZcD*b$B?0?V> zho5&VxBsCTKpK^b>_Wg3JB~u>JYzen`5s{%BbMe%=`6=4a#28b7r; z|7>e0hSS>r{P|c#I?(5zqv%p^emV}|{ZGXSEk7+#;hulS&s`zgG|ynRnc1^G#&BjKk8(g^;->8FsF%~1KL31Iv4Q%AnE#>S=j z%|9caaPyO0s_`?GUk;z%;0!;H+g=XW`&ouA_2#G9K;HjUoY3-96BX`$+R+JJ{N$EM ze%4&#^wS(Aw*3$0Gy}RB#TFpiKSzFZj=BFq1@C|8NZS7xeqKjj!~Q2moY3;~ ztS#Z`*RKdVp^KmNVyTlea4!6XZU1wqp50Gdj4J#28^v}%7d~LV|B#L+KkG3I=>yHD zZ~`*{+1`Jc#LH$VKl1?FpPy+5rAwQOhT+ou=AUEh-27C>d6jP%y7}3- zPvhqt&Oh7!C5F@5|NLs(&g%UfMVET>)9_L9b6>>?t^9K~D%|~yp%bFZLhgU|N}YT< z+UaL7N-EZ`HJDor=t&e?fN1@ie^zy4{i5Ru&~0=i0G)?Ca%TQ1oqpjNex9~%XZ3!Tp+~*>*~8Bd8&#ap^7Cn>o*%ZO z6T0}x{Xz1xrmoXZU6hFZ^HZ48%%?3%Ek2ZgPP}G){tFevCz6f?pUnn1Xa33JWiynY z0~mdO`Dg3*(xvUcAdvi%`H-8RPB^b}{VKhO(m@Zj!?FMQ5*1cD(EAyRF7@W8gipAy zjyR#^XN&EG`t>VC<{y|&HIEf`exa~h>~KQsDOGt$ptRFIzn zOhWQA$q?uClf=trC_nQ6+n=9lyQNE;imRt18#mc?$G$TDV6+eJ6{Z^ zwf|{|3U@z8(WTz}Jl>u6KNTmm{M?HQ>x6ngW9WqFvXJ|qZ>3H?UBl_8CrZTnwH8y0 z{bZoj?x%2(xqnVa1^G#&BjKk8(g^;->8FsF%~1KL31Iv4Q%AnE#>S=j%|FNf=jJE- z8;zg8deCrAKkp1bdr)Bwr+)ofhA#Eyrx~BHQN;-@KQ(P9)ca{iCv@?XTO|2ebFR}* zU6cqvPhm>4pSCEq`$@RQ^b>~)-v7{%wEr>0IsIhuvKh+H0gS#sKU=?+E^UAHK=RL; zfo^^};k?TAYbifJ?16ST)~}Z;_55%sy40JWKf4mxedmZ1T7G^&g#}jcCxTAs;wOE( z)X5n*7yiPw|Jhy5=I0g+D*HK&QoEnjt=8*bsNnq%CL!;C3~^3BNxW=^@-q*x{rQ=; zO}ezXXc;ceZ~m#f%*{`AoLA{*Wj7km3(yXSpVv`g4W~Z;#M6xOwEy`qg-$r}PS5adz|l&zM^b=pz(cfav}`^Vjo@4Ky83fX300 zNI;zpasO)pF&6+%HWv-UrTNW22Yb2ssgCn1{p2T-p9{x6ng`4~bsKXIQ)o!l1ZlKm|H+wSKy<`(<;2*q|k!|yQt z(DA(g;n`nOx*8`q(@zxk2rl~{xbx?y`v&RK`lDe1_{qE5&CkY9HGV$3g@$w6DKVVZ z{^wm(Si`CJa}+)5&ClcQ>4f)HoY2ZY_oBi&q2A9JIw86&5n>g3a9PCq?SBG#|9 zm|Dyy1Em%p+W#~yjxzT@sNnq%9ZCBiq!E*k{r&TWyljTbKTY6{{DlAdX&w2}8XK49 zH~&mcb@P*5pz$;2ej3i{C(rOR2o=_F>isN3mwNNltR0=OQN;-@KQ&Qdolx(m9i7m{ zPwslj&zirSeww3%R!?L7%D|jvKsTe<0z~WA`?JmW&(rY)s45)^K${G5j{C1HUN%Gd zIe^jkmw&ddlP+!lpMm6`w4QE$I^n#^^=l>PpB`w3WB>DdrSi{E^r$yKce9^;e~1%W zer~Chp9ngki=XsQq)yJjx$qaZ{m=Fjw)}Go29^1oMybVz@=wvftmi+dAU*|{gv4i( z0nWL9PU2-Vl%IKk?JxgK%a<-~E?S05^P7KKba(Sp9p_d0S=5Ho!3AiC!_V`mu+o7( z|HRXb^0fb{mP996)X8meF4<4cF`J)%Ftymv8kE}o zG)*>NKg~r2`N^as;U~oq=kybWJ%Y>r2eAG5>AqIFwEk#W0Dk`L>gH$T8jYX(ThVZC z`&|sDwg34yD%|}XMVET>^DTqDui}JO{#k1StM@a8PKYiGx&Qe{>g3Z$oql?vq+Gy!aXe(K1V*4Vf-zxgLW#m!Il zYK@;EgAY4cIX+< zctaf}p_}F3S#8V9XDCOr0h}C-3;TOmvpHx{$nyun2+IOKVNW((oft6Qs=hCxhTeL`V01x^Rw_Xy7V7R zE%vhpr75PLr0l(`&aE90krz=lA_Bjo0!g1nnx95}m5zg?5%h;x&e|FPNzyH~8sc|S zQYP~E`JO;|=>1SnKdQy`3 z=qHS*iDMG}BxT}5_+_4^Yfxzn^kZ#pzu{GD!a+;bZuBho%Qh;Rh~M6sOaqPoCFLh) zcUg3(0r#`!y6~%4$=SP-v%f5Dg7&3k|D2NjV{-O}^62Z)9)j>BpQrCqG?sqR=LEe| zAbVGNbPZ}RrgdWcHluxyUzj|(+eOLa_WzcA<=4rR?~JX*|4o0EjUR5FOs)9@5tbVf zN(bybSxzUY&nMtHwgc5K@Ou=Nlveb{b4G9MKyOrh&grpRr8)Kuj$!g&SV{`0;C1!urT`u)UELw!$!F#0i6ebJ?sysTc1Z|wi4M*=}EGmufRviPmn2NLa zl#Zk0@cYckS>?lHDt<34d1AxTb0{Td@4+M(@f&{pb!RO8!uWCOQvT`ezUytrPfjZ} ze^Hx%H|UJt^OAa57czf7UM6TX)5lqEfbhHY$>`q2Eq+b2qc4Pzt3;FI38`2%(u_Z)3DY zsi+k7Q&dV}SFv7~qP$c;(u+v$SfZ4?)%?HTbMBqFcXnp2HGO`+HRt^~&+|Rc^PK0L zd+#W$Q-Qy0kz>c-xeY;jD`o?K$*dO}e}xoT1b=s2gcjAt-v!R9;cvkQaqxFhYoY&s ziE!M4znUmKiT>j}$??G6=)VE72YtZTG4Yp!;!yhg zyCU4M;O`Q)72mmuhrbQbT8Y75qxWt6$N)uB|6!d<{kIduSoPm?$C5z$TxL`Mv0iNa zrNRJP@VD&(w5T@z=3ZAd{Iz>84*sqcyUI?2>68i5al3f9R52NrT z`j7KWg#H74R{aNhV(32~AKVrCkMveY|8f#MUTplO!n9lPx9wcCs5buomsK_V zwVM+Me`oe5$2$qKE8y?1yTcrhv;XJ=y_yL8&HAs6-yeS;6My}9@m%OXlvfLXO=S=I zE}S68(tpE*{$uYk^dAZ<$6r3Bo*4c2wv8XNx10J8>s0DLCef)>@rUn}E%f+yYoz7+?54_zqq-*+Ut0{-$*coO}`c_u>tfj+DL13fYHU+x7Y zll~v+t&aXnmObbLK97mNud(5R|Fc3mk_#ybY%%=Whz1a9mg=x3oZ(BNAR2zQ>uBxK`n-vFtd(Rj8Pmo;!e;ZI( zIsW=UuOmHT*4@ z84rKg3H|pC$*zb$6jqME?VM*K^dIQ6>OasEL;wBt2+5@WBfZtpe+y&}`he9j@i!I4 z(0^Y?xM9(MPq1y}`(J3S#Ne;d>o$I5fFh~?uui4^+X7;&`tQOzBL2s0>OaYC^VZ z=V7(QfSWdl2Q<$!emgrdVEps2gJdb8zFdTRW1eU9eU)Mhe>CD@j71n*&cimz(RrWj zas4uA8F8So582l9)TwXQB3DA`+fl$146a|*-`;%%lY2txvqV4QVBT`BdYQ1Am7RzA zfh#T?Z_G1{s+?bpoMD^dGav+0tnPW(j>}GlpQF=F`~)Jg`n8DFJ2Hu%8iEn4I4AQy z$DWoEaSme}>v@GVOh2Xu3pLQbCeje5XdG_%3w|!cSj5j1wh-rGp0C2^VZ-#_u(Skx-b1blAKoYXB&D&0&kPh0 zK5odkpve+=8Rm0O0XK_GhWI$6N-Gu^k!1#FT&jC+@r}Zz{nEbJv~~uqpwlltBidR*HV2?OVPuua)6xE&z{7oQ8dS`32h)-vuGmOVzyZ(e9Fy;pZHT z7ZX1l;gy8aFESWvv2Tkk?n-?8IJvS;2|s(z;D8^ltAL*`QE+nnY@`TJf}c)PZOqNb zSa$p@SZl>k14vWgXFam5_{kWMF7dMj1;o!3tU};t2$q&mNFLEoG=3Tg^I92x1_R)y zho3v9*rxap2ssV>)V%m)_}TWniJvI{s5=f;L+Lxq!s0aT*)=FI#Tnn8C2=L4l0EyM z0PJIt0Zsk0)B@P}_N<5^Bz`LKk4`*iV{QYCMf^nkqXBCy_Uub6EdieZa!vS%`}Q9u zN%)LL0pZgVH36S=5Gvr4gZvowY=bbTmEorq04^qR+Wt{P`&2IiMa0o*`bX<8l6X2< zywp=M8+yx>(6EvJ27W7lLG zKmJ@ve&D{)7tju3Bl!$+Z1IA77S(p}BGE_`0Q34SsHqM(uG1bdav+?RkUL%8-@?72 zjVv(ZR=5}B(ssnWFO=K%mp&+S_I38-ouM3uBXXap!u=sv^Qz(TP#_K-k6l6uoLCW& zfCY~~ps;d0HifoM1Re)~J_{b*peF_%8!(= z%dx_VM~yVa!ecf?muNheomVwH4)DjrV;$mg2xnJOKmLHi%JJw2e-eSmEzj8a|I4zN zc-&uuWCD+$qP$vooGW|K8{tqn1|BD&IFx=Dd#{McN7=SgJdPm-5`xE-nvEY{FE#Ku z7wcBw@gd~c@c8>7iN`xoKs>fZP2%w=X^Mr%`4nBE@z|wl)$q8bFb*D9AiN9v_gO>& z7XA1ZW4}@Yan9F|bJmo=Y1->9pwFTodx9RqCCXmsCXr0wu{G(fj($v*J?NhIV&d@^ z2f6X(rx9*g^kW$cE63x0Xtl)PvE4))KXO2k(2q@_R|FovTLNON`q5dZhR~1eP(VDs zffY_XK1d10!eeu|1PRCErY2RxW0whW@VK`&CE()hD(c4#D6AZhgTbFf;BkS^#{X3% zvGJHfGJ(e#D6bwKWe@rx+!KhQANQq_8`rV-iu&;@6jqMMe#AgR^y4hAjUOKu8+i0% z-3mP3h#VUp?I3fXy zehi?nay)M5tP`LgTYx@`e!L3w#L$l$cveh2)+fEy(T{%FgFawROgw&%<9VEaE{br& zq92#>?7mWay#ZP+F?ekBw2dDbph%v7V%-WnmMjD@R{gkXbOV9McThk)jz>-6F^>|8 zg+~Wmf`sF7Yon^+vBmf}c&yu!5@^lYRn(9BPm0HG(7TDina<5RZLP zUM)O!lRb$09|U|yax5-XiOpo9($p% zay(84e-eSmT_bG#|MR_=csH|LN#xk^_(LOs#|KeB{pdtZ;;{}T6bp}~EJ!pSch;#I z9(N6ogU34$Py+krMkHXd*PT&VIUegl?Mc2Asnd$p4x^BB2b66Zo zUogi!uT{Kz*bp-drN1h2SK|_i;$0^Q3BRvE#*gZgTiOaCo0@3m@{hs$3ff2FN6Lg^ zwkyk>gMSDurLahJG=i@tcu8*oz9ZNDlzd-76R3ihsIu_Ng5We%48LcjV7|+L*~OTH zM2a%uD7z`kor!K}GTw z=2n*`AH8?p<-A)wXCLR@n|NQsSNh?{38rH%4Q~s;%MxmXTOeeC{v$fi)7F50|0S66 z@s5WvGjp`PIohxKl^cyOlxiq*X@BeYurl6>ktqrFz)s6O%8Vm;=)&8AHs0pzSaQu`hpG2{`F+62f>GW%>PTg-2x|t70w3_ zr!)r>PyT*^EsvS-i}DxG74ZB1ZQ`ZE{q}!;H{}}dy!yB)uhWfxgFcHs>Zim1&`SHziL)YJU)C5$;AF;2Fk02$5yfj z{SXdo3HYe}OJfux{>|PEZdma6H}30Kj>mq)0J=T>^Xgd-+xYSEn+6{JShoU?HzLP| z$Hy*Fguj@D0^+eDY7&pzNK-647EyGGu+LUJ9uHjr)}35GE*KIAkMAM?hx6YzA`-Cp zivdRGDm@?E&RJ6er-{cFpwFTouL3cZ=AG2V>m| zJYI?%8y+{Um-i>mK>_jjI}lAg7L%q}cpOU6C0al3KUOt7PPso09zWVaJkFRAk$^=% zzJS8Y@wf#1Ndz8~L7zoGHU>R0^kYrZBjVrFtBJ>zKS?}xnG_R`vr!yMpUmDX;&CF| zRvK@7j~GY@9uM7T<3|c868dpF)~&$fE3ZW1@v$^%uQe19kN2P^@t8>o#lqtb79<*v z4;-l)9+NS@nDOtY_fZ1%IlGGb@jet*j>lHeyNST#uz@!IdtZ);$H4an9{Zvk!=C#6 z+itQ4eE|+@W9Y}$C`SDIr3g1H_F7@vO7VCeF^~{E4j5qLhZ__LJa)sn6?m*m8m;#F zxpiqW{yk0Nanm5s0zAGPIJP5|4E#p;&k;d{L_Ie=bq56u7_xxk-XF8GI>gdNM#(riB?r+7=kM(8zdrE{G7X5hO zNSGUO{KtQw)e?ipE_d1Z(GwI2{n!e6Mc{Go^HF%biN}$|Wh^|l zq39Bg#~lZ&hQ}WL;^48y|A@!FoLxnGz5Cm+1mfJk9R>a*0*@>E+W7zVb20H)voXoU z{(2tDtA)pvjYJQ6GHyD=z@ztTa^oiUUQs{ZkHX6B^~1zKLiFQ;J~n==Dl+gm9qU%$ z@lNE}^y5AE$n%&y6cCRWq9*YeBu%mKIFq7F1RkyDF%SGE@p#hnm=$-LfQ&ki`S2f# z;EQKtpU1R7zI-0sdLGk2c}%{r>hk%+s-DNJ>rLXq=P}=5IIN)P^O#{+4}uRTIgdF}UNwE# z1*68?zg!w3URH{Nf>p!gf?jd(`1!w-z^BhdBw)egdnl|N zkJ~wGTBOs&V++t{@fWWGJ%me?zqnzyfyer!w>o(A%N}&z*NTD1uZ6$(z82wz#a~=> z()$t{pa=ywP8*MndfNDr0g7b&8|zl!v7|5xkIogw{cjWykK<93c+8`OV&Tz2m6vEd zrtGO29$WN?gU5%q5Ra`nyNdo|J_;+xV>jsCMBs7Ctv3G8o){C4`!^eS9F6j7;c>3) zLFav~7Q}y;szaU!l<8MjZXvnHb>eJZ(IBZn5!W>I4IigRyP}9xp|XO+WrV zL7rEig9765cOaU0EGA8{@HmvBOEey}U#f=3Dc$4X@$9`8X-;xUsFiiO7=EJ!pS9XqRr$7IYervLbd zxM5nKv#Y2dzlq#1jkBL_1-+XHJPymZ@!$J&Ogx_Vqk+f1D95m;?muq-LG++6z+r7H zJc|1~|BjDv!(y+mIO%TY<;Aq|p}tzF6ApqvIqVH{A?c zfXA0fQ!G4or|1%mN6$}H!{e}Saqw931vSEGOdI8WWG5R+Af#u=k4k@d6Z9t{(%$Ktk}iCC|o>U!F4XxCHA~ z;PFZ1*zoxKXlbt>L;>}q6E%s)I+Rc>JeIN`(RfV$p=x;CrN+VI^D8KUePbdLu-NMY z6jqMMdeFOxz+(^4XR+4OJ_Yx;V(7<7Vs-vFI>HT$ zeta~tI^+0{|3IrH29I63+W65E6v_BE^oqda-ceC_9Dj{*{~HCwC$>?+#p{D?+~W3NYnKZ(HO%3K@&zkV_%9)I}Ez~elW zR|}8RWe<8XZaT!k<7gBk{>|Pi>c_j;wo?D`VPYU5`f)*yjUTH<8hD(Jbt~|ACvxoi z@n?CTCl3Y0`fB#oCJg)2#2am4^Jgy%Rk$^=%jyWkF%Q z;}6hkiNRxw>uvnF3KR+bSPyzd;PLa}QFv^4rPPnbC?Fo6!wM%J@1TTY;V}&^LBjDk z`kSiZv7Ivx9&cPm33TG@D(c6}P*}OW?gRcL0*|w@ZT$bZASNE)DmL&q3FXzo;{e%% zz6*!7G4x{&it+si_FhpxUc$DO;xV5XNQi!%@*f*NX1fhMj>5VXc)S)lHvRbXbMpDY zOcW50NvKIYt|Lvc@Hmd5ON4&3o)6aA5{<{T{2pv6pVczogU)BRHu9OR*RC@`IY&OT z#gD?4;+d_^B^1MdhegD|H~iugs2M20w_!^SF=X2wuo@sb!K>BRaOxDpEzIGjFZ@y1 z#p0u|%}?@v@5pyy>w!dzo@@q^2%96~X$KN`H`9 z0F!u_Y#-Z+7pdQhYzR_je}-&*CYGppTj zKF*XMvF4*~A$JETVoV%LrH+^Sd6zOB3pz*nY+-+oMSzNW5g=kiSyAw7|L&c)8M!mwIM?N^E=N z|NIp2@?-lrco_p&htl^vQ~@soQE+noQp*JO>EopvNVNDbeL)iV7VW>ZXIzf{%T**9 z6)g7Xxd&t5Whyem)@T_4vlDAa0Ok!8nSg=!0>IpUPfej+o<#`(b3dvQFjsJz5x_K3 zz8KOS{nFy#|&4K*A zK){$euw>eg`ucCq5KzlN388iZ@F&z(kwX!vH8K5D;%x*~LL9v5+piL=bw3ls>&*e| zm&kI(dx+l+`mTb1d*>R7kI47Q);fD~L&UdNaQm_tb997vM3dT@2stc-+ixbATMFhL zf6rK<&kw39b4%gM&%{s$bBkpUdJs3QDAE_?0NiqM3v;bGKwCM0;%g(oGzMFkx9_v8 z_K~6;nO?9J?JgA&?h~kCnnoGVx~w4zT&yE^%#5$j=UfTY!X}~#LR+Eqbdq zzx+J;{`c75VVd6-Z=m>&Z+#fhhPVyiGIWC;j>8f4u8@(yOD$6A&nM~FSnUKLX6mn$ zCJDs+F;F7rb1VQN=6MnpLCjf$!tbG1VS+7q*tg6t7D-L52KhfVr3z?vcA`?m`{$nw23$2WI2l#GDF|h56;@ z8#p-`UKdC>SA1Xk}vj>Kv&=(b-4Rws{=S14{k8MWK_s7$Q>N~$7Q zJvZ{b1M0VzsG=hJ&4yR~H~=6f^aSt}19`E&pJ3g;zqb68@HVe?9K3z;UjuI+-BVS; zN8wGAJ?M3Ces9OySN-GS%?%|b9G{L=9ySVZSIQpr=W#)c!$#q402X*C{RdDGg|{0~ zaB{qzfLcok-nz81;jJeK5_oF``3t=5y}Kgb?s`KWNq>tn;_dy*K@IRWoVbgNx0X~< z@$lvc?oS7A*DX6Gymh)X4&Ii?jVHeU$$3}FS&72iNMq~zGVTo6@pkuJaq)KI4Fhjq zpib3>jlx@r>_NZC7&Z!T-NXUk!|dIz->yW#$?-Oc5>AAE+tSj8w_o}hcv}JmAn^7i za-#Ly<!QU2RXQ_*bh zTUEhF;cdL3XfkpBPP|3=Z_m7GAnP$XfYpEdwoe3*PYQz@cHefrMg7#7Z4A5wq&@r` z1#$6mj_3sLTVG0uc&RO{dqwxHs`hZ!|Jm^JF(~FFh5t4Yi&$Xh2IQLl8$P2YY~rO| z%YiYMOg zCGKM4tqE07g7B6iSGk^nv*aq_ttr-(z?)^iV10h&{}xNUo$PyThb}UK7WIC+ci*Nw zPuw0Y&xi3o#ESzcwCw*P??U{=R3J^w^>CW^83uqpOWeW@dMMAR`wTTn593@e(px2~ zPxCupoM4Irv6WDZ+_25U%>xb)^**uLLY@A0TZ9{y`wSD=w$k(C1_TqjJ^kkedR%DZ z$3Rdd?lW|R!a(3Ilzyxiv2A(3oilg_mt-hiM+py*OR+?VTYvli6SJBxT7*B$7LM)QwtknbD0b8&vOlS?e|`HCiN}*ZUwUtI6Oe`nG!t7$?D9G^Y zSN4pU!oP*h;`=_|6S*;;FMa+scGrw^ulT;t0u)M#p6vP3cHlb!SGDI$|9LsmZyi!u z;eDUGgmCym$%@aH{tgRnzVEXs)`dXS={#Rr>jHu){Cw%z;1rP$i|0$<>p?Kt z-uHRYeT^u9Q2NU#tBVM=NIJfK|Zvsc<<)}2)bI|`?(w33cvTWn<$j= zkE*=?^L(}qM}i*0Fw~U){Db#={sW^c#?h0pJ_KKmGk>?4UjdI-EI1{5y#72Bl~M7O zE-wnb5lY{DD_B(}%~NWR-zCW&^h_N2Q}aaPDF<$eU^*(EGH;17Y@aF*8@1nfNcNzA zbiEuldcT35xcuF%9o~Ij68PLoobvFnS``d0%6T+6)C5a;T z7m25QIkb^fd4F}6#(V>SE>+%ip+!DJzQw2;=btTPCExafgN&G1s4 z^G^wHeVdwit7VVhbu%s9y_`aI@K#6mpcmt~mw0mrT(K_8a>sAR5TC#bDLnZ?rqthL;== z#7UMyb?RqBhSLAL$;3-Ahq$a{LXUuoHp51!vpv zw+a-8@iz^NTHxRF1!-d8dTGzGub3-|^=R!*_4DYT~b0_MjKzI64OYZk%cikR%5%@z?$i7WjE= zHu1)=59;;U)nF%73Z<_>1rvsoW!R+!3M??>b0Lvavx`hMxEtC_z%VV28oa>p|KhyI zJ#uc=D&2;|PN0aB<*B5uKvn{WU*<({Xzqj0Y^g{+Sd2pA@HwagiNhzRaB|~CqZl|$ zr3#9J!&B9NtDthZ9czp`C{@B=J*+#yxkqE`ziIEB68^q#6bFB!o;BdHQ>`ZcvSbf> z7LKQ5;O}v65xA8dF9!(YZyRwd@K+lp#vUjdf1jdKDE$UDHPoPizgZ|aIsWdWtU;9b zwDC9hOdI|_?P|f_vsl~$e>Wl5)PpAeZrx*SSF=z^{53>viNC)CoLrJ<6a#;SR6z;C z-@a)Qe^YTLTqXSZ8&{6MOaFUH`0Lv+4*rf$GT?FV4b{Y7vFt%F#zA-t{M{*69{4N= z2;=V#;#TUv+_?Dbgi6qVs1Sv}7AQD5{&quaB?f=3(roza1d2FWssA7=ssC~+;_r|B z2L6gsDD)pxfyCdllR3HZqEQU|rBVeY2!CJ0S4($?|aYheDzMP+Q{f8nL*NM57q^E2Iia5dOZ$ zHktUFiZkCT;m@zw@E4r>MFU4sBpw(n2cRrzrwGV|1J=%-_yk7kz6%_^czvpk8pz3L zjt5Cx0ar$I7ZOeMZuLz-PKOJFc+<|W2#3)bsiE}0vm@f3B}>;ErD>t`ZK4$Ms8aVG zXjfvCGzq0ILy5$Z`)>UhCLn}Tj9eNc?Kdz}ZwI;=Je@0Y59l7w6UPGGxZXUgTK4JZ z?Cb2eQum`Chj_Iu9*GHONA_ofjq+)2OUr*8RHXNjX~lapqF~7ToVRK%{OSYzSojs3 z3lvz=cJ_gJf6kQaI}%?l72i`@EWfAJhL7dcu4nS_GT~nGJ4v(tLmsS_kE`4kab`;q z3IK8Vo)Y*g>d0>_`2~N+;I_{#$ThDP@26Y27*i5a!zWO}pe?r61n@zqVi7UCANht!nc_o^l)X5F&`Z&uz1!Z zRB^fIS;|bP1NSxdZz#cE7NY)2KVF9;g+rnBK@xG_P{b&+9r&J7aFiupsZR$Ug{G*9 z-0~f9;pVS%h!4zr_Jk9zLE2sN}j(uACr+UIawhk z%4=AZ=&KW{9xu5rvR;h)?p_qcy^lIZbb=_&4JK#@3;aY!Y37ty{rM|@D*3(Fg&R=( z)YOd5Qa_$4Iwrj8B8Nf~7up*j+j1jy_;?}*H&XktQk8;W=5dd4Y4R%BgZ?qjjA?{k zk+8;%)F(Tcuy#MG@5YJ|N?|r~EjLnCTuFTgum*vl^dgiI=MSK=RMb~bAe(!OHep2_ zK3Ca6E=KgU^<3q0GhU>3tZU$F1n^biw53RIYL+v^UH)UR8`2j11UuHYr7P%*e`ZAc z0~^Kt)wNW>9jGm~)iOb3+zed|5HUj7+sE1M>=;&_x5BXERPeI@pujve=|e#pw_v$W z3a?^D03b@@N-&J`1tL>TQ^Q|1TO90&ydr!HEYJ&x6_*Dmj^%)lMFt##0XJg6M^Io6 zc&Qw)6oMoql){z#!2ydX7vy+96ge18YeE9F{L=99KT*?Wt{Y%1_A!<%#AAH}t_{Ot zfc_=cmw-h8xhN-RN}=ua)#xUaJ{GwI#O`HWq?YYxhfO(kbtt>wfIMhp3g-I z(Z3)hfRX2k9E<4J2KoKJuzfZF)jr(o@b>7j6jj*ch@qmluIx?Pk-P17q_n(waQvI76M?om9Fdsc7ZhI?jL@%Y z$5iciHPCs>L#YJEq}x*+!P>v4nCF+l!5G=1uc)7*@N}W^Mlam3kH*t=XdDAiKaC-t z@-P+Y)kWcH=r|T%8ZNfssRs&Aj;CC3QK*tC;wc{#$zEgO>2EOm^zr0Ovf=60s}qW+ zT@G9Cf3|1uz|$94(gIJr&)|@s$pI2z}KIxy09>06+EBrxK3Q`l>+KK>1#48dAGHweGjd8{7A*a{&Q6 zes(*>vp&7H=4pRP!xsvix0e*4-+8Qn7e7z z`nnHniod>cKxJ9(RtzVM-Y{YGZiOHW5Z!AxdRv3n(`HG3Wr?}+pKNQ;_aG!o_xLen z@Y+!xYH;V=5adx7AQ4^-BqH4&*$?+w1JG-5?xuP+|6?#DX_W^Zi&Q#mkB50ora0HD_c`BUlKK()$m!dQ{II90IK$W$B72iILCGRb-Q{KBd z0Oh?8ypr-RL4hgn*T}(>%X{K+o4j8_r<8XoTI+*By3nMTawy6>6BLHhTOdhp9tU^n zTb?8NX6R2JgcX*rzvgWZbKe3q~H@luc$`kdGK<`v)hCA{_92cA5Wew&{rruodekAS(k$t>$i&XTy)eX&$XZ{EYIm! z+d`gqB3H=sL9FOddJiNi&sHd}D9=wI6pK7346eF7Uy*{stlX8!GnwO3o+~ah=-Pxa zL+MMHggmF5h$&AgFMrJxR3qO;3&eNs^S}jo--)jtnOV?7zinPUN8A1SPfsF4+98DY z+Fy-I*!1fypQ?wp?ncOJEwX;ndx@-qkr)~6x{gLW$Qd887LUqNKWSy3alfIrvXvF- zt;$e0(B8f6W`|a$)g00q_*pc)p2Oey9{fbfF?=#Ye@o=tEOS~iX9{vGdJGkBK^L6) z(HBXc{B||6?|kkU81<80Ly)L=@4%Ws_DUJ_*N=~pwW$)3J+F^Tbkf+U-AZQHERvo4 zVAO8RY;?L|969upwi^66Q@?o>+2$+FR$f>gJdO>S-WfT;-^JEU-j@sd|F+vFsSn#j zqX>QYXDiJAe$=684TjHZyKE5lcK06D-!lUmwvkamScS-b zAh-mSS=T%K{o-)=7YrNrZFGEVBi}Ey7F2XMcVdi6bUAz^_WOH3dYlW{C8k>8d)zOe zP%h?p-{T%k&QaW_d0%VYddlB_=plR158=iD zl}yxqv=))V4W4o{X9JHv=NF7i@)tH8=TqIjbROE$M;dok+0R2xu zp}4mfGoA*ABl_J&&?XjqPCwGf=5K7rpmw~*_6Hh?P31Q&g&3{=-?2z+s>=S~A)Eau zM5h$(LF&6cSj*D?<52VmvP=%9AxHRsSQ@a7*e||1)>8bhW|NGr0AN~KNe1w0#1nXYN z=Sk#>`JV#{g?~O2Ih2peD)7&V=Q#fPY7|vjKGHw`NN`oir!xP%sh|&$p6@O;=o@KR zhfT)_}!%A9GiPdLg#05cmV#NSrc zzEB5j)IY??{w}F~L_TVvQfOtcBSx{WufK~^0Q3_6fjtOJkoF*Qp0!wQ{; zdCm;}jDgMP1wx#d4X?#BRs>0WP4f&WxhaP`UercCX_w~IXKXs10K)J(e~o` zcKudNSS*7FQO46hCo5wa)Dei3p`f8+sYCx5dg?Qjnd_jc-=oSB#D(J&Hwxk^e2;1u z;3D`C{XMEc&1<}XT%dCn{-HP3LDh0H($qlB?29OKoJixhdssIJ7YEWw{|6}}v!#Ba zA<-dfU^MD$EA>Y~3A`|hxhr3{7f65X;^qz<3`6+^+P|{_KJxebQN{DHBgvhsdRiqF zV6ptf?o##VDNsLt!IA0^@q1aRF0J6>C?ACVl~HWo2h`*HVfVAXX6z??TQE>%oKKvz*3p?az z?#}mx6tCDHX)DXQ8TFzPSmRll=JIzGrQ?uxX(4^_0SG>8b-^wq&q~IB1r(lhT%JLDlW%+M- zHpYJ6fG?SBrTQm|8o+IBzM2H<5m_^9;vZz~SN-ESfY9SY&0G8@)EkG+QD(?LQ1ik0 zH`&r7Kd`5@_wDJI-?OLRnP*QI&$Xx5y=zZzd&iy*&atPD{@0$a6O}&aZF_m-O}^ui4Y@ylPJu&#Od zyZ-}Dsr*W=a21|c$qnd*7cKla3~z^#F{jj$t};`R8T~zD z^mni9ue)A6DAJ!A7=u_t(B;ofU?9ZfU`2)*?$%oXr zE)8`x)YW=*r(TD|Ecy!}kK_6xU`X|Q1R(q)+UWO-q0Mx*e!DH*UGFN=OIW|8J%0iwPE6PMWlF(=6pd#o;R#O&zsVwSVBPVcuC?{*VJIk{oDQlCv?jUVw4bUU> z?X;N!kKKD4O;msP{;DQ&MKx0|oAvrf>h-qPi_-7@TB%F}WoC{Gbe@H6$0@~FRmDxC9Dr_wM# z4aq4(kwl_bbJg!3hu?WxejDUZFGMeDz%TyEJc=6qIv{)2OUNF-+)>xzfV7c&pNibM zbC8R~!@ZGMuvjJv9zbHrTA3I#B3~N<16(GEq_FUlRPjHhp@&4_9}y@Qt%lYkMmD1(m;b(0S70uA%mg--N(M&$b_X|qLMC~_ z71o4M4mp)a;gTD2VG7qnm4<$bhxM?&g^XCzGoypja08ZZ zf`h3c84oB8=Mo)Exidy64Hpm|q{ZL8rZ(j}2v}K^U8m$r5Isoq{D?FqtM7T8D(`^4 ztbd9_8U&%m#f4D8g@{3N-kz&{<-9FV`<9EYm$Bf+@0&x0dX|v~=*pGR#>G8_;$07? z%k$6Kf!w{y3o8(K9i9rV`I^DS%7qn5^=?*t3K9fd!#Ons;DRY^a+bkSZc>_~Q-?Bj zMZWK_@P`p=gL1U!a zH>99s>=ynW^)V_9leyO4OzDM_2s}=7NPVPu!#XAKR(3j$?0jo$A zg1)(^p8W%9XYu9u3&6kdBLKevJ(tu#{iRR~oPhIFu}X?wuHjI}uM*>HJ8V8amv(o` zLN?IbKPndUuLJ0|KS|OF0=hke4r^$1k|TcVdlwj`V=Z7;u4jh$#TVSpdP>T(^#iXp4O{5D}N2#Eicc}nq%d<%{RAIyEL$tQ7mfbH>6Rqv1UCrGqVrG#U4a1%zA`U-;;OcBVL zEcQM)pLt6Ha|F|}cV&@7&GK+f7kpsIs^0LoRR0pH0M+lt_44&+Cp$2Q?8bnJ;{B16 zJ^G?tS04jjHPY6f|YXN1C6u1Fu zED&sf+lotJjFE+Vh-G?%zO@`n>&Pm4b0mU&1Y;f8n`6}98Yc6qHDTTZ-36};&tLWE zNs2cGY1m09WQUsU=d6^4k0s?Oi_XC=KaB@Bif;!Ry8Ki40F1IQDIc!uRXJMUj80V0 z{&sCch0qOo+BWB6aNSXojz6IVrTFU%ZNBU79BflNDGPHlI$)Tgn5ODmr+EKHagO#K zpxj|;O17Bapyeyzm{Bb++8o*hsB{p6cap;3k^{TbwE2v~`h_-#;KEayq=_ugk(!E^ z>)G$hNW(zByN-uKo^Clcg1MN4^pn69^#v)Q+9Qd5 z2>35Q>B|}?Q-e-!91n1&XuTH$xxtO-82U@>i~Y}tC*?@wA1G5jqoH;2)-0g{z=q)W z0_zUF>2*Sr_%1=?;3FtD{J03d@oLZrFO2mQ>?!A__npeQx?92~6tn<_K|RoXjvOUuew?lNrm>>mBd}0J?)f$=-V?}#pT`t@r{7owg8BAMDd8U@P0Gfx2{9UMNrt1k z?+WsC2IlQ7z8{6u|65Imhx#8~NuTG%DK&76ipAnACcIE_h*>eX8Cu6#yhmpDV)kDg zWC^lKihrgg<$JUaz8_hCh6PHRE4Y`b!v!%-lJ6%FSmvQMq>+OvV;%k%iB(y$iqf<4tS?(jWb+ODXDZEeT{@BnMm~H zYO9^vpEza6@sA^Z;6)T%!c)L2+m`0~_7}8*k!L>^3m^8MRe#siQ1=nO(x<-T>GhWk zJ*F1n4Pd2e)=FjKs~9EEvy{X;+=KCJDA$|&o;?53Lj2MBvsb;#<%SI9VHK+r=x;K?xxxpeV+Bu7+bVc`l-OQXjx;Yl%9Jd<=xS=N4X) z=f5E}M;n-N)%XsfP!d+}J>a#|UrSlI%30Vo3BT}94bVXn^8#HP(6wleSOwmtftvcg z#geio@$bd3(O8W&6mK(7=Fw|WIZr$Yl%Zid#%_%<9iQ=!a8M2@Pr=w@`tV?w)fZ0n zSt%JxW==+T#VhP{z)hd^Z-$eb=!ZMX^;?dC^ZYN)K_jXePC@mbNiUSXgMVBp3Y3LV z?&E$lQ>kmWKt?)JJ1lTjJyr zTG;!eqxL1&ff((B+#XtH>aLa?e1x1+CRT;EK@GQU6$8M8HAl(VV-rTidXNO%&a86k7 zI*XlhzH>JlYb(eIre%FY+CuauUeu($gg|pc>?I)2Dt01N;4)Z%L5hs^q|aU`)^lqv zl*wh_fjU4Ji!2G69$*e`1O3k8fF$O85)(kr!84H!w&*)Q^y~5WIG&B zoL$ycZ0z#2<++gm3$T>Ze*zwz#p&oo5_BO}0W?*=FcE`6giub5Os+)yY8lss%YQ?5 z8L9#mi?DNCo|jeX&QKPWx&mra+tU23wFM0ab-cNyyPp516i+bSb2Mpq0|cD1VKKU< zGU8T7d(2c5rXuu4q6N?o6FC&3m2LD-ZZ)<}GuX;Mg#`lk%A&f1vTkfyFa}PEaI{^4 zff@A+9#Q>Iw$aDRR_=#j@%o@vwp-sCAgZtoJ_X2x9Mvf9&x<&#y@c6bnYfPWq=&>!^X(#Xp*eJ(6*QJlQpp)H0xiQB3xL z*qPd75U!MpNM7Let*E6mRIzwOUrNL5Ci=!JAhbxMacr$>*Qn#mR5}9_bhIG~mNv(q z;Ldg!rw9kGW1FMaao#HXkNzq$5ovGYC^!p|LpBqY`vm_)fxr`v%#K_MPVA6&6TXLM zY_Fe!><4v z!Kp9X;@`3^bloH)4W{b%frUhMzE}sif60G6BBJeZ*F#C4;G27(SBj+cBkQ$o>G)-4 zn8%%?`k!Ug1e-#42hTEwd(JMn0{o^Y+;($$eaUan*b`?%o``v?$+gw2&kOcO&O0ic zCu)m!03+ZXEgp$n^Z-T(r~T77I!>bZ<2z8}k1^T=BO9pswMhQKWRvm71X}|&7a$WZ z>!4cA9jcPM0-ZR*?LV`(pBtQ_S2Jat4JrBX$w^aR$ z`h!Ngu7Dz{AB5t}D_adcjg9zc)LMC&e>pw7YdbwBl5Pxix?GuBs%m(m9c;W?^?$-J zkjwuT7rmPGFXDg~ZuDZeQ%H9Bb4`2Y&+hNpk*avl1-p3M?%Rm+wwt*>U&ET7RV}rR zb{81y12x^F)Z|Y_fC>cd-AbM(lrp@|xa-bVyib8nwIi+vsG6Vw$5f``0TI}y3Oc+a zh!sA7-!0Ji5=^pLe$sBe@n+-pf=hdkeZ!k;rfNP;CD;`WOnDl`s`eR+EF*Ac7{V~d za&m5`>VH8}8ggIPcAYEh`0#5)9Lkk+%$4++;E*P2NEcBHkh?CegYja>Y%oj|?K`s^?SDEKmEvUB{JmNSSa6^7PG{#NC!~ylPCEv#b^v z3$(+qy0bWw ztDr|T9|;yy5;MT0IA3FK7yy)r`CJAUg!+%unD{7>q~S2-CpB|xc?t7NIFhrN&-WK^ z!B6biU?jG$GkuGx-WrY)G(#ujP>enW5D)tpyGm2M8{qszQK|SABQrnggyQ>vrP=`v z!8-leWsoj@1Ye=QD($4$D+f0-ZJ@s8??g{ z$vAAN_`I_-Ya#tx#m5BqKd6w~791nLo&ojZjx>(R1{HM+q%2dH??_eyeQN?qo85Qi z`JZayEKA7%sf3pMVQ1M5E$M2h{$Wkj>JHo-a%CMIUX8luo|e3hf2BXs_i4i&%=6y{&GURIN)BHS2;=OmOLHWsXmBxHKExckFJqR%XHFu0 zc^xN^4&`ZjCfFdY1;02^FboSXSM(BgnfPFk=qeiuaN0()*839R;Vd2|iA^T4W6{)3 z><8n`jrIKk=@7rX{{*?2j^_A%FTosQ*9!H7T>)d3X*u|l&4ZJnoKQY@hx0&eULYGr z5xeFIO%S4WVNGjmh56pJS6#j{MNRsAP!aqh#92$z1}R^!pfhn`kn-qSJlix#8MX~K zxpw@Eg5`r$<*C)KEZyBgWn@zgbcZEu4JZ1W;SJHa1`?ZaL27skb77*hF}VKx-=Pq8 z8r-Y;&Vu4G!ZS#p6MP%d9hcdD;(9GD$46RIm_XF&NmV=TUZ0fRo>qg$?EM5zI z26rH!gZ1u`?@LK;DSYLLhJFDvQz3&8H-ZSqkmnYV7-WC|)Ps~j(Nua+^*93NE1nmZ zp~4)0(f26NWw7uXEII1Rq1=LXU~sbo7F`|CAMu+lDtPj%vFI1bprL%DTJLGv*CE*eqeE8LE^0Rg;-ht>|^|#CC zUbjbD+jXd%m-)BTv!}L88`VVLF4`3=av@ZMFaw5j7B`oBw0^4$7ro>GL5dNKtTPrz z37AC(OkeSC0j||R>ufbJLsGnaH<0y%X)hsOP}4^Dc7bo5RbFr)$V23aKZY<%Hhm1f z4FXX&G5507hrxO5DP966K(NV+%)cN{!2`h z@ZAh(GcY}l)xnwOxOv;0tWLYp-}nfBAlS1;P1=a%U_`chfr~0CBT)8Q%fL&7>EAp}JfrhZ+kZsh-?aXwjeayGA9!Gb~7T zYOC|J{u+KO1kwigg#?g%V)FhDNaLwp_C?jOk&FD&{LH^VK2(egVSYY#x>xrY{STvR zOL{mp?B|F8y^N_9oRI@dpTo81Ylk_t-7KQO7ZW)8PpKWf2y_+MM0DdJ^)%GGTDPSNBMH{{BNd#u_!*irQo~L0a#FPo59PMGpP5#zL+_m$@uXaERVHu7Ui^zRr z3C($q2EOmn2g|&xmokqT$F3zO-4|0?r$SjP-Zu2M2Edz?pv#h6^__!kXYoUre(-hZ zGwH98rOl+nl51 z==lG^-~}kL#S?qO#8Fa?YXs(fFN3<^BWNkw_V-^i2k9VQMMw4{)p_!Mv zj7L%HQ>6;~Crtvamel-uD@j6g?%-NdNe+d=PhKEw!B z8K8msMhnWWzj>q~&P3>T2t#`%elW%j;K8EOQl_~Avjre<`_BbtjKiFAPzW0VTS~MD z6YE(mjB=Z>nN1De36($`%efe5EwBqN+664TaY7wJSrOlp+exdC2WBw+ZyTA;B6B=T z7GqTSo(u4orA4S6J|Dq@gJsJBgOJ*4QpPyca4yDj!row;ypDi9k320AHyOBqAcJW8 zD|AzA-G4plH0-bYDh}&!C$2qE<>eI46Wl3DLP`#^pcMI3kJ%wH;vIL9T zGnX6TZ0P?J@ZxJ?+4D%-*BWIAjVz?;%k!*(H@UjInk>9l?-p(iU0FDlMF;_7!TDsj zw_V9@-K}w_6=O=HhU59in<^7L1XAW2X$mfv{PjJ8OlNUjD6imDpi$tGco0^&jv<6Y zoH2I@fr2B3vH@sfXc{jLWl@trNXm5tFGuGt?I6^`-@gZM71({A*u4}Zh1JgiR0_@` zZE{B;T#%4p8P*&Shm~t{4nGwu&f*+mlO*eL*@j&{_=>?g!q9m+=E6TY(Po_JT>KQ6 z7juzoKz}t~xM|PUq)veH|6!ast@q6k?S5ky!|*fWFSF8ORB{#{Mj`hakD)wxljxlO zA?+zD(WIKj6i54X3;0BjHif%UZ2`CY$mT9qUx(8LVYSi@kwU5ft9CMVPI!vJOu^HS zN!+(+;w;X^{CHQ-S0;LxBuqG*V21iJOj2;+AFKxKIfAoA72!wfq3QL-sjkbkn@@>p zH)6ffsE2iHk7tbEH-ez^FMA1um&p?%ZiCar?ZdpRuat?8(Rz565vLB^4$;0)e5s(+ zv&@T(6vg{6%q>p(*a81@dX`Q?PRQLrT$RFpTz?Sz8~*#oV^S6=XpW;~(WByfot^yy z_hSRIvwl*%JMNaaSr#{@@#rsDdqszF{z-w5&!v& zJm-eJlwfO4Tu)uWFz(dS)D?;^6JyEJtb@waO_8Fm?9Edsu`5L&1~02To`;8VK0!~| zA0q-1Vv92MZ}jI1WG5kXm!GBQD_vKk^l#Y1HEPxo<>_b9Ssu?Dy-x`BS;|lXeB*WM zCSA#-pC$^Ap<5+W>PQit@ajg6F!=O&yx$r*Gcgy`f!J0VIrC)>?pfipXQH1{nNv&g z&NOm1%ADFb05)=V$Q(qQ`8+#EKPYqRC|*A5#2osL7^|-0?QP_w$((wM_XZ=Uxy-4r zc&{>Y+Q^&+iuWQTCtK#6A>YNzp1aGOG{yHXMrBTaq<_;8b!mEY`{{ppQAM89l zfq_YYs0~VuyBLhHYAeg0riah}IQy2aq~l_vf|nu&$AtUGDcL+0!(jl21S9kOlR4!Z z1C2ZAKkS9BBZ-r{pouGabVhG7&)3eF-)DHx4x7^(11axupnPqgnzdD#*cip;Z4$*- zOQxhZ;5!1NkAUDDK^JdwD8AhyD||A~^{IF_icE3aMW67ZT-C4PU##bBI29kF*g5`} z5RShJuo2tuz#5_;z1u-3#%5#$)xuimHfC$zo0Q%dxN5(kIP(Ox3fv$r)~p@M#Bx;R z8Xv%X;TahVoeW}Lhw{hr<*f)8o=nj`hn%CXLUa)RWWM%3`IxUwrVVkHO`s9M|B&;( zFeKxG;{NMou1o`ajEkjv=}z>Sw$YjQFM zpFL=KDaM$WF%BhzP%?x>wxL}ciX2gSgg$CgeTQp6DXI97BFLJ+{fP23?$2UU=v@rA z^jtIm1(b?0G)<7o0f$Qb83WxEsNaD{X(RY2TW^N$+4nENkm1WXm4y@bU?wg)YrJ`a z0FSd!WFe%8IQfKrSRKxB;@S?vR5#1iZZtv4DO115R6Cj4B~!fhiFUmDgPLc{)Xy?i zN2bWaq~Hm-AKD7{m5k-n`kb|tXv17m^^R?7iQ^L7BWMHxi6en)8p|UT*ynt0DNQLt zq_oVo13Ro*ZAJNyZ8savn|MsNZ@TbWyuWZY7)I4%juqe2*pdYY;g6vS(%cR0rY_Ze z7a82rh*ESY_ZUY>+DZdeG890OntdqVbrqIms^a??nbd0cH==C&X7moeY2@@mPWemD z;u|4#>>+!6VD2GbL$6|+!*-zuvC}yhO`OGiKo=D+Wkm(Q%fE3JUyH`&%UQ9O7=TKP z8potOxCSy{F&?2scx7+fbxWI}djn7U?;4cEfQ?w;Vr2_Ow3>@~`Of69v*Kzfy};i= zMetedd)ePK^cQ@Pdpm6t&S(_h<)Fy0H-TG{aHmG>5%Mx|BDo?@x#4IYF1#q-|G~vY zhBEO>`nr@pOb*Vw@J`IUK+1Y`(_UJ0r6JA*j-mQ;(26S*h$9`t4v(86q?#iI1OApw zA#`>O#(SDfWg`W{t;tk(q-wdxqD_DNs_iboFSrQDQr&}-~JPJ3btC6!q)`6SD z-6H!rD0ATEAbKQnq?>aTZcYayN4hyj;pVh6a-^Gcw7%jcaM+J@bB@Bz$ux4Ln{!lA zd>KX#-5j`l4f5vUf|SYMJng7*=B7N)&;Qbg#3|8H_r-aEyri47zUznLF2(S(!Nv7M zkyV4KI%X=_m9<=Xn$JrFx8XD(+#d&Mf&t3kmUs@QUyMpmkZHPAf!;~wepXb_F!+%0 zIv#CsCKLUPL^>1QjRgA-b}*-`2(Kryzmw;EPQIxzPg^gqWq9@>P|y|25E~sMV&KwJGI;9O zOoZ+mBXlo92lYhQSn>S|H375M8q#+xfmndR&-zOTf?*sdd>&_@7aq|n#Y!Gthc`5R z_oAHlt()ayv+%+SFE$G|BMWuUD!{P5IaKp7UA~dDgg9}!<#Fj7GC0CoF29eLX>zc6 zZb_rsoTKw<2#yHSaK&gvzP9GVjTdgk0~;O7ukSGdY}Oer4)E5(U~zZV__+wAo0#G_!1u`kMk?uVZY-iwF9;8i>P^@LV<2en=P z{8XnuYdqo)yeM6SQa&o?oz5RSVY=H8 ze!#2EViXI^%@zfc`0j03mzDBLH2fB0!zsYfuGj z`9y@b1#P5eYk%0%A5m(C*Okc|kupN;-c|VREWQ%7Kpu7GKpq#PgW$)Q z9QGq1r^CIH9NvCFI@Al#D2Z)Ef3#G5GpPjV^vL^jxNjQ>%!F(Z;DM;?mA4o92tPfb zdT@-l&>3Cz75K$W!Nu}P}Fq<;;ZB9UK6!A(vD zpi!v!=21wG;Ez}j{xKbRN2>uM7~(0$6#NjuIXbid!|;;HD-`eNOz^5layL9og@?Ho zj>M%>bPW3mD9=T)%l|4jPbkXF$FgZH$ze#d0DGEX=#x^ES{~?X8*+xW+;Nv63}_sR z`7_+)-9&yZ!X*{af$=EU0bantQ(Vr_w=QmiL@Veg*yJlvACqg%v-mB5pVJe%6A$fR zQ^9A2eC_eWlaHshbU0JSd7`s;n*?t6w*cG?pi4YaZakTJKtFM}sYrq!p_RegPULMH z{caRO`L)DhGm^?wFahjZh^uELsuR?2cJm_zty$%)f@>%RyidpT8G(vhfjBFZLw_?H zL;H|d?kPfXHpql1zsEmNrC_UgZlEqz71VbcpPK5FfeII*HOFa&can)CQ2MS2h#}07 zr|m1R33WPrnCef-5Epf{uUvQtD2o>|R;$VlgHzSyVa@S`jQ;Msy#F&SRZSX<;Lvh4 z^EWjKM|H@+>TBV|Ap>tTQU#iN8sJ@vB*4qa4(^ZbcV)HC!2MJ&$So*zX}e+C#DO;t ztWEV2r1z=qP+>mWaNq53jf?pkFk*Rzvn*F=B6%RYx_e&I_byy*kR7`Jlb`kXuxs;p zvrsF~^A~_h%w-pzhf$TTTl10&Fpcl@UGHETxcJR#N!z%1-+@P6@NxOO`Py!tGvI;L z^}#_f+Rowy05^11zgdRu2&M`ZHb-XP!0f*;G4VteS6tV@Qh_~+=|T*_hk5?Alwv|8 zwLNuAUglv}*05AuH3Q$oy{KW$amuadgDO|juqLid6ebIkocUD+|pAm^TNiuSAb7 zMmB>r@TuJ*!pih%DnpOBM+lSdMhbL5 zMX(3G#Q|*e5R5@WJn7m3oC`ncdNmT#eF%Okj?e^?aJL=YHRb~Roc9JFM0-|8mrH>w zsT>-^Z!0;1ei?Gj7QELN_2E-$N6pI#xbl1AM)8!|<&Ij2C+}Pae)2L(p#8J>T9V#- z7@kstp2C$xUWzhgq53})kEp%!d=i#@J6w6#2ZSj(DAY2JzdOYs^V@o`om zZa&WH>jy47iw{vEftuYgynMLtFd$C5qUA%Rt7YkBEM=F$ttb_bU%tncKp^_kML*|A z_$9L@cSzv0gkMWE(?7V=fZzRa`JKi0%5J~K7lh;^qT|sUPwtxKYX|eS-*A3c&?G~x2M*sS{JHjSoEIJ|=BmV!m zuCcYf4f<`nayiNd?Ndt~HVh{-3*dkB_>z{{J^5KtON< zh=N54H7Y17QBfiwSxLgKZUhwyiYS#zZPgZaBUo?2O-Q!uD)mxnZN0Q=>8BT|wva@H z1d!mZMZ8}@ZS}oI1+@a+$nW_&^WF>8etzG_ZcSG)D_nEE+9Tjd3$_~_U(J1Xv=RkoNSuLYu4YK6~qhKa29CWNS{gGOZQ0@UR(;| zLueXvw;u`!ObB!m9AKwh>Xl{RCMUIxP_fk5IW)^#K1X37=wXf&=bF2K(Vern*0j2)=-=d`7Om;sm@sLSNz(L^d`*Gd6TYW zMxP4Jj3i#l9_frE{!K6t6cgO|X9v?Gvd@tm`Or;7mj+pDSon)=QSoaq?XJ;q^wqV;?M>y^j4N z`ox5?_ZL!UGaY2kmef;6AT%SA_}Y9~Mb%`JqiTDsGMp-^kEVWSJ(&7cr~5tXLvDNW z=b`a!zvX+mx5c|gdS$akkjWzjGg|RZ-IhpaqhRUZUX5jxwBR{{WATp|Gsm+Hv(kCYenIEs@17rfdyY zyj1s6CJr6npJqX>##7AijXdNiLqWtXb_q4}mn85% zA)j*iGqCpHw${6gyhW`O_HNAB< zHos8o65fXHh`-ww-!KgZ`1zeMz_ZdRrbvNB*u+zj9h66q@u zmAUqYTz#R6_Nw5NcB&0FR8gSo&a8fZB_D(N>)hhh3TYhXw#sMG(a)Pb9p5(|tj76E z4T(H@?)|Ru-<^$j#^35${ z_<(UZ3r_^C2u4OSC)F?+@z3@+VUUCxR5}Yc)3eINa=}J;qLL!MLCD~IfeEG{w{4AEz0TR z=cI)!$D$AS?bF@fHawD5%Rk65A3$#S&=)WH>8nV$crOtYvXRPp%+L8XIdb{1;v4Rh-?lOI+Hj$a}1*_QHp_$7uILAFJbO+us=_F=2^DGCo8 zW31I&HH_2ZVyeVio=*yQykFcreOQHvIr4`Ep)(={9Wz4gK4bI)5AXfsX-<57DU5LQ zpFuhO1b?#f-|Ur%ze}uRvdl!z!gR-~JbA}Bm`wvl_AYE;VSmh|ezz6WLW!58j-7Oa zqfU={H+nDz1vny-IZ>iUnkspLF|K@;>)YvAHdV1Y^(0a8u0)GNLdohPhRl({RfXE> zlhI)`n}5~CnYW`cZPpFK<7c^X2Aj34i)1Pn+aJ<~=?kK6^LD`(V*7gx_>5xKl#H)! z-c~=o*)U-UiDY!hHgEpV4ELKfe#6NLW!~c#6X{UCOF3lgCWh*(%Fyn{>KFa)DE*@0 z9jae+yo2B8zR9{q9;DV>p5#zowzAKH|4ozjdZ5#;}gboU>d>(2H zQ>XW6o?iAX$Z-(lpl(rSgp63t{w`E;iH(nw-E5rm4n!v$+WtROO~op~)%-X1Cc zxVF#6NI7%<-@~I`443oYli@!6{d=^}hH%I3N#UI@hVd62)sfiFQ(|gyd}~3U?R)4W zGK$6e+9}d{*v~)j6Pg~%82{}|<`4~{x5!2;$phcKB<&rVR$K|mJBu20|gjhM^&ypJ8bjt_axwn zIug4@DXUb$TM0akkOPe0ACsi?F24>mNNjk;%DcolNB8ii?5=<>1~)@{Ud6vr(q@B*quI>vP%^! z{s#rVf;_}6HBJYijLbt|iN3X|s=>@%5&7_lfF^I9gHU+XvmEL=y)>Mxfl8<2h;~VP zc+_`v!V7H-CAFqBeJ`K5^;O7%dqm-2d~8O&8OB;><2kr;`pE>#_>w)CaC}=qxEzk> zPTTf^s`9s^eO?K!+#D`{CA@QUxa0Fl;XY4BMr?{ytX+r;(^?XPE7wLAZXm4swwN*6XH%~KP%$g5P0uWR-;j6HYH;PbjJ?EX-WgZ) zLs5EN>@=UpLj!@*K;0DWokR-W&_p@v{b>37wdK!5`|$8&xZ{gSk;JA5)h+&9o}Ixa z?a$RFo~)JMZy%oX;@5Muon2xe9Zf z44+>c*;v(-g%zwa5N!C&Dw1k5-U@blpI*iXvXK=qdGg_qVAD9^O41NS;hjzt64^`c z(_%gef|(4&;L2Fp%qSD!Tvlqbn9mxqon*EZra?5Bm~k44Yr>8Ot6vuAu=!s^Qx~y{ zDT+iBZ}78N9%bZlIIzLo+w?Lny+w4_iY0F{bmjon+@M1wYW0iO9Gk&>f!utXgMw}w zZf+=3+;XWSSDnHn7V0G<&s?%1iQY{9lz<|uwIf3qo8n|)aOKlH^u^{| z6l$Kz-ty<@Jc@85ohQ^hb03@Xz2=K7R?0L*HboM> zB5^Fw@eRdTq5DV2V{{KT=!k)!Tg4Rd{u&F0v>nvv$y7B?>8B0JVN3}#VLaginLqXZb_Iix-aH$MTwaFJ#Ok=$|7 zi;zHt4mNbeMSJKX2$B0``-EJT-hq_Ko2hTiW}HDrD6s*1M)0O9EfrOg=q4k>6^lxP zjnz~fO)Xkb{-JqlbsgsV8LLC2f`C6&d=W|ZhFHX!y1qpoqKyOjgkwbBs(29GuYWGo zD(5yNfQx#Xs~e>3H8;z*aeegLw$8mo>Zv5x`?Nf z?5U6^9iXbO?!nVx_Ef;rFnhvRYY-2)`XkAGr6CQG-DP8#i48?0@kw~`?f`^jb67GX zRWu-VWp}uu#4`=+tUK7-il&^$Yi+8iqgHF0jp5YH(hQ$t zvu&5kH7%S7?;Tn8z`EdS?6gT^!oSEWDo>g(maf~8lm@lKz* z4lOyuY)Y_*P3^bF7{Cssuhn_p`h3MCRG3gXu(p&nKB(G^@*&K8Nw>eF^W| z+tvJU`v|ytqMTowwpS&#z8^J4JR->dPH&SD--KcRJe+&i-Iybz@GbpMeE&PT>8R1< zB+*1Jf|>3;4b{cEcM|#OVPGF>eF+v$e`fm&YxMZOJ<5qEy~Q5qy5Y8~$scYekmw5M z%(5ti8{+d;a5@FMUSQ7Wk|6V6v*;`7e_Azh;c^q@^6a6ZnXQ#{jJsq7CCAyiqRAgI zjJ~eKH}Dy)gmBaPCNoJDjF#AnfQ)dSVdu-C_|{30g7$Fg1_>Vp1nAEp8P3N=Q!P>k zqsjRMRYO<)T1R*}&-a`+u}MKn2*CAqaEW5!)F#hkXnj$eNY^Ibj*fb}cGO#(&wHYr zFdpwjM!iaW(A4q!)h1r3O}tlI{#m5_CG1I&_=g3ov?3!oBm5DYxnyYZRomz5aG#yw z5r5ZvpY7q)Wd)IruO~%EY^x5g96d;jywHfRtBXe$bKy6!Q^KQOiBPiqm1v)Ixcp;N zY)5!2W%8GU@RVM|Up^uEH48QC$B;LEVM(iN!FNSxdn~_zaJ7%pg+U z4(+}kc&5xGAJJY8)5UJA$ib#p_vIzN3n%icKql0x<8E#qVKREPfzfdf-=}pREVJ%Q z-q}JDZYIHoN>Pn%2me4Gi+F_%R!eOW#Ayloj#&j~6N%0-p>smBgDcVZJ}jhl1;Hf; zfJ<=If&z5Z!VuF@(fp1LW?TxcdXZpqp#+<|$>eq*8uoU+(3ym;<{W2JJ2i!z-KrW4 zlaqXppPNqPE#v%kB+qE4@-=Pbicb)BF>_!$3G{Q_&hy4QV(1- zgzxY&fAQ`@K0FQHLE!kb`x4q+`4e0Q01cfUibJOjd?Pv7CfmEI%#!R!(|@*bWweXc za%Z}Ar_`zap*<70@~2aez3-8dl=BIRs-w$wk+7welGU-43~u?-qzs5eL98Vu8% zn_9y)bk3fX2{ygWcnnXh6pl@D-V5PB(}Pn@b*yg|d~N=JgNyW;1vt+I##JX1REc#C z$ibwi_CTogbYBOnpEMx>mz3JN9DV1KcA}q4ea!{L>x^q;*yk0D)YuP0$nK&8>Mr;X zh5c4rEgCPdK^Sa^^X{FDo+7p2JN%k{rlZ-mf2B3UL10|3&v3%NvLsv>U&KrOIL@vu zVZ52wJn`Hg_a{~YX`!^8%cNt6WO>%W@uw}Tayjo_(${p(`k~J5RR)`OK;~!?Sv1eH z;6Pj^HjM~DY+<0mv6&KO2M8%t5>0#-No>&F3AJbyH_VeSBCC?xQ6K2!6L+&+h#>wb zT6ke8{p=e&{Fs-A(`oMFEt&0q@brGtff@&>E43y=vM!HGUz8gUb`H1Rv~b1-+G2D9 z(@B)9QMS8;)eV5`+?cJC1CT5;-1asT527|%SDR0T6{ey|g&xxp9Vt`M!m_fiW3u(G zphwXya5;>-$6cktrnJeP$EV3}so`#MQ~Z&O_<;u1#l+Q_7^oEc%~3I@Wu5si6T1yR zRFb@w_8fF|V>1Kpx+C3S1B#D)az+ups9zu;{sfBg_Xo@KZV6gKU}>hJ^)?P})r_Il z=kValpRyCKAPDte6fP`DJj;26=iXM7rW>vj0-e=EK-Ot4Ll}ARuo|a-=`!APxMkW)a8hPX|AY$)@)qxxE8KM1%6BF$)9Ywyro1%DlKAyS z`vn_sH$^oY9>7V`OXvi3tn&muk2e>wB6!o8Jcr{g%Y>dTxo9aRfpx~|21b?_#y8Wz zAx4AB()w|{>~Ak*c2?Td%2@wK_6+CBjZ+0q3CYpJZ*!$FK%*RWL#=O9KOH^qS~@z& zM>g)q*6;2SZ0ZNQ`u7EJSwOJiYte^U-_FL{ znR)+y0BfUMOE*gnoz1DDrR@NfM}4sIE}$gYe5fwY;J6kznSNQxGlR?`Be-!NG7>DTytpPp>(G0c}DRqL6#ggurM#!J_`zPx~Ayi*)sYY)Ql^&iwyat@yC91HK%yOy9? zPwg$VrFN!~rM%NCRKsF=t`j6OT+|>M(+(-(vNb8xQ{c;KkoKE4yBhCM+z_HdXd`*RyY|tX}_2`M+?^c$s~3#i}AXlHViG6?nmCx4Vq74`xv~? zYC5MoLY;w1q)bJ1vFSrNAFz8O@qG!F)rP-7*V>8;OM*8jZa>Yfq)Fb2b6s;c@|(4& z)di(XmI8^=6?vs^@Js(PzceQcs9xByo&GlHd$Tz@uSseZ-C8^9Le2@3%?XS2UCARf#F<-+Q*B4dQU!T(hj}Lj%68q6Q71!o2ZiNH>#lN zn1ex9D#94iZe02}c%QRzT<$JJ>_(q(yloj@Az4}!OCjFo#B0Ou@zomq)(hjVYJ9k9|+#Dw*J)sS06Q$Q>qo2rtHXnW)IBE z9`m2spHguK_yPZ!{XE&!mx2Gq!r=kc-98MfP~G=&gmZ0pnDkZ|V_dI_-6d*{12<#! zbii6nKZ}HoD!rJ}X­S2K|OBPAOlT&x}Lt_h@}F;+Yc9Xuumg<5s~o?70$ z(yzrDBZxH=@a6+iTWVtoA`xnR*45sovWD|a>cX+#f%vVGb-pLd=*I}eAwGytEOf;@ zS9W2hy7YX5yvrreRWcI>C%}yR|K*Y+mdvxcQ-`$A=T3r!T90%k4$s2-F#WrY>mw`N($z39#Vr7lO-HnV5tx-*x-$CcdLb4$uj>~ zO%A??lPb$h4kd}l1>tG1#-I}0Tm9b;Ldeu%Yoe^`Zn|V_WJal8!^f@(-fgdNqS_!n zX*jvdRgy^&x-C!%nwUd|23ICb>%OcT-KB70pTx&)T2%OocL|SfZ}~B5m+G3ihb3HW`Vg*tw%ZcTW33-+9T(ab?)?6t4v>AvM3=7H#H&&}t^Tet_tx$z2^P4k24O&JS8 z`G;O#Y(}~S*v&7QB?pJwj3?bz=X`ay$SGf;j5ctF643^RGU1Wee4?5+Z&#@GA!?Lj zaI@MTt$4&S##*tSKeK*khWqqK{N`rX0fZ(Y0(#t)$L&2^{xHA%$@%38WK9uSu;8`Y zQC~+B_7p9&>lS4xE3qRw#%(Er4;VjYf>qVGLkoB(Ac>sOpsZ;4=Eh=KI;?<;~wQ!IO~9z*|d6*NIw$d8Z2AQy}2O)ABAen_B(1 zWXs#MdZ5Z@^}~P~ry2@0IPRONfTpz86#I z_Fwy|n$XI>!C{JV7ea8!pqLJs z{%uX!-Aa<0?v4J90AII{Vo#!&-s$+ryPbs>L!RIkx#ceRC*`ic%9)_N3Ws)M1Wmv+ z0GuF3<_Qwx6W>By{sf3nuft_EbP9OCzt>QB0#TrL^e0drSoljY+M<~z-(b8sc9_;< z*~nfZ#Ye69jazDfN&Pua&cpNcqpD|-X?%XM#tDiiHawK zjk-E!K6b%i)8BZaN1e4qH;1fjHn|<@o=~`O|9HB9D`%hE+OrY}k&4b>Q==>Iy4CgK z4JVP7vmH9^UOjluovb&^|2K94>YI|LY_oga8cr4%|2E559m|OQSf^a85l{P4e$6pLdK`tzpR9kE#b8f(A-#t89LuB? zzY~3*Xv15)+tG6*{g#p@b}`n><#~lW_+3q(>IDN-y zILlSq-TPs;m@IFy#@vndX+8FY_B{7+)2BvJ&z?HeGSzIyS$~BtBiGl&-{t@Fciy7T zZ7G^+3Zu6YZr$8)wZh&+ZYX|j5iF)S9#T*wNW5LAYfoDuW!~0I(A`39p)VnxrMg#h zd#LqnYi>OTG&i@707kO1EYY#}tw4LBBG!)#Hr}Q>S{G3C_kl4?N)2C9Tt|dU1fxxV zc`MehteFkxQbVZq23{lauX+cUJWcTk9+|tMsdLMwMKRc#pOc~jVL)XL6Urst?F*c% z92OGNB8hcTxUY0FeubsGj;+RNsNXbu`TW@G0v@K9cAtVHQN+@|IJUZn-cGf*FORJ* z)Z1zH_SLb~MS6?c+tx|iNg53a24UA`6zYeV}f&C|=KHdptqJ5hcW zb>;G@s5?^r6m^HzSK~}OTz(XFL+h(?q#aaW%|1y(Z(yz=t?*W55!bHiM8O|AD# zE8ONv|KRPyEc6D9LWr!oBLC#LU!>Q+oB%l3r)H8YA1SHTXUd20EBOO}7Mo#r=V!4Sxu2-i7d#uXC29J(%OO6XKi;S->uKOW23(7Qd3&KN`tOwL@VqhIr5Ot#y&k14*qA55vipZ? zv=C)9FVa{{Jt#-G^ie1lPQQ*22SNVf+&^9F{o_)0vk9Q<8o;#xBfEaQ?}MCmf~1!^;buiKOE>4uH*Fd$PVS_S z7p=usVh{!%o&dH=GoCtRVveV7ZeWr~pAVQ&>tlSMK7mI^?_}@hUi?45AlbXaD`~Fj zq2D3RHHFD3Ma?xu`a8cTlYOt|8g3e#(!05)HwO`$Yl`)EejjrBHrEi!Vah(uHTxu| z^lPr^r@!<2le2Gg&A#LWn`?q>cQ#Nl#4zwwX|+*n^L(nLJ_o$WRn^n#?PWONTrJ?J zB&w>9)!Wx_*vA3y=c?*&_3mpp1j!lHTvI~Mz~-6($tfkx^9Sm0%^>rN&CQqppW_3j z2Q=602d4Ws*9=Zh*{^y2{`y;U06E`kt{Fnkfz35TlT(H?&p%LqYY3$=Wq5PVFmeuV zt~n?PIRXux!REPryU+(AU@s9^@f%JjDG$jK>GWSK*5hrjH0fff$9nxIDo_w2ZsKj zmDmL=0WgHjut&fQ_8!#J4hPIJ z%{3zdb98eJd&E;lIxt5hr;Ki{;UYCl0L*Cr5im#jkAOK^kIgm50OrKznlXSmp}D4< zMC|q=@v+G%$2Zp;=O+N>c>fVFWBo_KoS?_%niBytskvqxU`}qXsUT5zPy*(p&ydppJsc~u_LZ8QP5C@9^wu_lVeBS zg9udOEty0&zD;rMdMT?9`0Mk{A z4>I4*+vq>iNBU@;@3ObNBrGW`voQn!(hW@xVQvw zx}V&Mzp;cj&{l&tPUr8$-zuSTl+@Q$L)i-6u%~D-dXZQ3)&QGnbs(qZNWOmTI8~II zc=bC2upCvD&DCPrU()*KBow(~6=MHo5hd?Mb}MH1%cPA|x)jAq|6#!}JBBCHxR&rWu!iixyt(&K$ya#sf)LsOnB6@WA z$f~jh#8M?3F6o>J5Bp&!DUvEWn6z-mJB3oH<`ybzDYXQfw#ns0#HMTPL3Ff-F?wLh z8%ewxNxT+Hyd3FB4~cZVUlQr)Dz0w$FxYUqzGWUIa_Jw-wo;n;F*S|dF^`yd!T5T5 zeaG4&g&fj9D_PZi<9=ItscOEh=neb*Rgt_)tC|~%w(u+TMna1BdCn2$7CK2$@|1(|WvH~?gH7sIljVm}TJE5TM(SmoqUwjYUpFl0C3CN902tzw+ zyZp*Hg|S`^9ErERg_H;<-ZY2?MliH{M-^NOA>yTGv2Ogb;L0#7IPC>i z)+XMK5JUkKFAC$AhqL!0nP|eC9ABz{2Dy$W{u`cq3~PPdR5u_^ou91_v7rtRFsYN;gDhtiDfaD_*lA8u3Wy4>vIIx@0y*tlAv<c83xlo|-B;dFKn!QJ?CBZCII=(E?5>(Q|3JvMFT< zK!%OStJ9n{IkiMP%D;$~e;zG=C)@|he5czQ(h=_Ss=0ac%}9A_?tE75sv7YGjS8-O zf;NQ`8+Se%TD(T87E?sCB&b3q_?6~r#E4=UlsY#BE$veB=5#7?#{ z)AGx>F>|Ah9d_`G>JH@d1`~4BneW#HmuR~-xbn6M+8!P8N%3t(el8&)$^C(!%l7UbxrLT{nxCuv%KUGOELZml z3NjX`J#uj}0nMbD`QQ5 zZXe6N!_QUZ#Qfa8K)&Ky)ya;{9y$B)-Ieo{Gk&j}e)=Y&9GMdGq4ie|D%))n@aoLZ znYnMc;<+mat3OUw4*jv8C~kJ_IF7HV;3f`v3>RqCKAtHpxMUUzg7?(XIv>2wmXL~r zpuTSBWAAc|Ahwr}5!3q@rL-uQrjea_8qeen_Ud`SIbwJQh+|+u>F|n>+Z!{nMjfMC zahE95s^iSO#A%ttxp|3t7MJ?mz9274&t&zCO)*gQd0BcUt5=LW+!<6$^Ro0zRxwvZ z2e&aL@G5TCubfOc1^!nT9~D#QV`E&qABQ5!T%b(jW-{;bGi_2pBiW=vsoVU?VT)H< zu8-w|_^7Fg0o{<-V2=>lO(ElCQ2qW<`}oc{3Lq2(l$0D@kupX|wVdn!3nyS8CiT;#SmKl=W_9iqSRy-&;>0oA%?*$Gm@pTdy5sn^EQOe<jx_onpE=qw1Hr%Vzl>aATI_i1P6 zB{n!vvGMXx3?@os(Q8y7B~redRn5OD(h*}Rkz%X#O7%NR?MPne+0XSnM$c(Q8yAeZ zC?q}T=v_j6jP-H4gs(KOrS@8=966}JNrrWJHn19abU^<=%ZUK9MF0nSOnuI+RWgf{ zqK_OBZpGrSQiO%d=T<2tO3AEJw&SCb89*klrm9Y-Kc^@2{7v|cf7Pv44k5qgd?9v) zV5TO1d#k^0!49Z}6hEQdLdsR_7E&X*P~|^XEA@f`t_uw542rcvac>e8`zYM=F(^#s zy9^3XwqEY)b+ z9?Quyxwhgzs9-gV3Z(*L;>CDv=j?yxh>_m#%O1>z z&d+^KX)&hlab^@4`^=fdmtOWtf9CQ$`^Mrgw6__Xe3ljhpW0S~+i1M&X>9=1_0=uu zt~~O7HPZzCPfryFa?!i8_7P`I$>C$3wbRs@ss5GB8Fp|8KB@Zt)PQ&X%w64We&!*{ zyw3_weD63iPa%_!_90zn8Y`#s;Nr5wD3BgOfu${_7#{LA9A)|3>{*b_=z9JO+M_HA}% z)_dq4(I$o=juQjiL^*9p9yzk{?ua$9XFLyW^hux99YmnR>ia6*EKJ%xFW{+@ImOtb zvIi$Ddqq3hlxk6_nqan6TcHCo&jFG5 zsdq;XNL!K1u5#JimAy#WP;>W1ya>Znu@y^JD(%WV4o@$tGSN5?!lq2pc z47Bzmf3>;}4TQPS~MosuB=M0CCk$wxR~|Kore$=}>3+tRjgyX>T2mq@J{G|2{!#zwWj+2X*QIeSM--~!N%^b&adZ=r66ty3KRSW zDmA)+n@OuTj1zYR=$=d(1@4f-p8q~_kN5b^bAelG1t_e6V(|A$-}PV8MNO5baeL6` zEZc5|q1SyEAsGK)S~&3zI`$bBD zoI8(l8HHqYZ7~0+o`~$~25lMN0~&dcHwIl*6`NzangBJuiY(na7{ORg>m-bg~K6z4#wg zSD3yS9XW6QW>?1?Ht;1}{J9Fm`iDE|;|!}HpHTUq3$EI39pHVn-e#eG#9LJaEnfF|!B!DS3jT#9%E15_O19b-{8=uGE$!Wn#=BCGBBOXiHR!|rl z;_;)Ll?okqk2~x{%(1Y&e?@e#;ZR=e%8B4j2WmLPA8Q7vTuZc10N`OtO!JFj8FwvcWJB-J!c#hxOa?Ni1kf9|~I4U&m zz-OGDOHX-WzXgd(2fnobyp#JhE)*+ zi$)??#(C9Xom^CDV#^yho6f}q#`*wrPq0CJC}E{5Ai}|FbZX4%=`X0+>(6)ks6=av zQt$7lNMFz^5-D$oFxMW&$a28dw-hl(>GLbVPTMw$AhH~Y!U)8?zt;GG(~5eR`<{)M zXtK-%ZMxF@LBOSJaX2}Qv@PDHd?q{Gp=8P5VvBb%DT^1C5rdc-_9a=JR6}B7oeF-1 zjSt4`>K`J+L8#&lHjhZD(!S1n-Z8mv>$W7`RNRLR-Y=^hW~H{oepH)?2?DC^5CHFu z%7Fo(Tr;5SST|4mU}J~)AYZS}qEq*d5l!a92l%Y(dGPQ{t<04|UW&9TRWINU&AJ!0 z4l7O9P`!qj#$kFHtwSh&b{6v>+gqj(kclF#{#(&ZAx$Z4z%Ml$A53y>J3}?Dh;kV{ zBJpM0zJZ=hch?X@Hu0u++RUs*wRpT{VZ3H!(I3SHiBIj&|)cwSCC z{s;JVrA>fe_p2QgD6YHRmSU?b$rXo|5d4Eauz1N92A6rM?yt*x#8$X+lCUc0u|k7O zhq+YQN|d_UQtKKVozd4^GyL)C%8D#1`+$S+s_;zDhUK#BJ6BFqjmlkT<${e`+39A* z`Ac2Cd0vu#o`Z9XOZ~|IDomike>jGQQKUK*om7JuC9o#v& z3aSR2X@xdu9?z}cyzyTZ1az>X?xp19s^tYS#baS-EX_32#m zzFg^b9;(q8iGXomA`#tU(N#!&fp~pCRUNM{){j-+)uQ`(ws_0FC=kD`=guwS6LKks z?xvEuVKs|--i1?kb$1F(25=T(Tt_(Mue*}p!rcpS?r!pA{!R4_@jk2ByS^4tPHx=)BP7(Li8S4Ux1N9dfv756oO51nVrz&Nu&lr6Y@dV9 z6T1xWyunlf1Cog>nWt~X+mzj-?q%z6QRf`|NwXZZIW!{+9|T-mtrlyTlmc%QAIv&O zL$B*sOI>^SH%V{H*0jc2ZhU+ry=i~-e{KJ7{$JV;kN>yEANY-pw-K9Z_Z!)EUqHO6 z{B}FI|EMs6cYgsay*IW)*kHpNzK4WC z=qA!aF~|p5%Xd^YUs6_#uRB>EdP64c>c&}s5BWR2EC{93zeHl#{DEnlp10<6d#|Go zry7h9_~Q7qa5_alMu5*xe(N4vvY%R)KFD(5FQZqPb%$m7F2BEtDzx>kwp$ry3C%3@CW4(~;akgrW+b~h89-UHW~=l1}4smr+P z4JJ-71B-h=ws;X0R$Y*`gte~0mC{%2-E}5esBp}CSR*!ToKr?N*v$B``z3;_c4s5# zW=eY(9F5|JGSU#S@o*8_VC&0w#Q#+|->yuG198nVvb>?qS~-I(A*1R^6;7XBBY)>B zpo^5`H%Qf2vBRn%9)hp6fHfTD+N6xFHYjItd#lR+K@c*{JleJU9D%%`A=gYlf-&=b za-8>zrfmI<_4G@q^+)QDRL|`v;m95W9tYXl6amnkio1$);az|7`!&>hoh!Ufg@w+Z zg`*U9v^?{SJX+eVm^Ru6e+@Jve3^&d ztDo?Nto+uGGq8*}eLUMSPmK0ErXC;=o{%sE%BEX(p*i13TKNvwG4)GCn8(FMv&2R1 z7D)HH)2ot&nLfyMfYjH2KuNgjD4+h@ynTtlPvB8BesR;ZX?Yar>TUS30m+9O6qDX( zL0b!C?JeH7s)dAkU1}W11}Bg6dQTyMtn;cuNDynk)BE>Sydm1V*0^&+k;GRhx_gcc z4&U4%0hM^cq6jDLc_$|>SnWNa`c=s~?~$0}BORr8UO?WsI+wId^hzNpY%)bKdq)#> zT}&q@Kx<>$26_j%{t|8UL z;~_lw!N2m1LK8{NF54w_Z{ncLCLNwA9c6Q9xNVzsl~s36irFB1q~Xo`8m0TSO|cw!y!QFWUs#jf5To zzW29~$anfvwf>&ra?KUs6HeGZK>9~E7#dWKYpf0$+XDMw;!@BZ`Zn$KAr8f=iK(8S zp5V96YBxL_fqt^hZ)AFZ;2N93nBB2M(F?pwIVK}dO!3m=-WvR)84uqAZKST&RZGDt z`(pD6gZM-51pJb_UeSB1=Ie926G9i2IW_h#)r1uAR{+mswU2p4OStPrM)P{t zE?*m|FV-3v9>CKPQfAhrnlMdI%V;h2FGC~^s5g?8{Swt~g6`TJp4X&HwYr|j!Id>L zG0lbP?)pn6-2&zv%%(wd;W$=-cZ8ESJ9X%186C30rtBT3lvV{B7ecCVa`9GIXRzTy zd%weN8T2saz=DILkFIfvfAqx5ROV=LDFW>AakDHv)3V`LpI&lo`@0u( znF`dLso&2xQme=Z)9ib9?P}il98dnpJH~zg1$L>-_lXz1^kIeQ=evTdI@!Wt_xLrk zy}usnPl`|R7M>SKKW-mE_*KirPl+ePsWmHj@_snVYP^51eB4|uU(>r z%Xy0?f7fE%$@LNs(Kpsfzvm&Ee6XF2^4GeCI=)B-5>>xO-mN3L_v^uiM#^xe`kFZb zudlb`g{4IaruZ>-C?VfVeuI^D7=0hqifTfSnC@=DJR{Db}SiCZPM9E`q}=J*vj-T!X(FLxWHJ$cC5F4M%u-wbYd1#4(aDczEJ&(mAHi_igvN z57+Ub$|P6WaMHJsqHam3<$emZ!J2{9FYsrLot{Ybzf~2T_jX@t_Gjne}Tq>}q>&39xcodUws*rc^@uTkNQ}2E{YT2=)RE-H=Hw|3muF*@MK&{5# z+41yk;hL4-m1>cELG~fpdtkhQ@a4DVA-~f*Opw$=GitiSa_8M3GhC?Q(Sj6y%*VPOi^X!ey?(sptwi5@2K1eS8kY#ZD@JqFrBd*k_{%H8YA{mRPKtK2nvm;1BI zUFFKfD3`ISalD#(4XMNp3 zH=o2s9fBe`eZW^_q$rwANW+`_s>ECVl<|?*I!Zm%^}4SwWb!rTeB}MgWvv4W(qZRz^PV5$Ha2|;g@ss z@68T~-P`2zdnO+Z+JHRmirkp3C$&oRy_+xR^5mWLZL8*oRzmZs@@1V)tx>+_%lAsH z$P|h|Z%t8-LgynAy!R2945%ag@ALDgD*u;*EWfXxpIjsUKwrB2v_S#y+9L+KNkPso zr0ZXLOTIpl>N)CVRomqDme!z8NRY$^v`q{eocE7_hY$7o1=>z_39pbKNq_HOtZ&>0 zY`Vk&8)}(EAt&t{sVgJx?-!5-uiLYC9^Q4^iQS4n~TYo+U+AP^WpMVAA8^xt05pIKzA5)*NM z(LiKrv=mdhGkosjVF)srdURR(E(-bi;4ks&@L!Tk*Swoe|50ALW(s*hpnFXVHhw4$ zNS(ngHlZ=`-Q$A|+Ds?Ne^Ut=!2u{0H<$86N}u3>+7f=xCaw~=HdKue^t5bUAZ4ywQjz!nR1Rel$rAG3V%LsFbq1qeNWwU zJ|4@LnfX}5CNm$;<=OkoK{jdzP$oBiLoJVjkJa+Ec!OHb#-}*c(xGJE^l+#xj5@uk z$NuN6JpNEOD_<=flfH0eR=)LQn^Gn8!imhRd^;M3Pv?0}B4avk3Q8rPn%`DcVy;^_ zrWJD5$#3yRR)0GySAI->`uJ?R$u-2GSMCP-2y$}m_2rS40&mGCxGY^jeyHV5^~z)@ zusXk24nCY-Nxy8p_loqGrQT~A0L#)(`TB)-vFNlc{fPe_YAL5c+l4fH4@l1+2BfyrWue9?!4!-9xGMFE1J0?xkGIG$@N1LE1aZGwTJqkD&@XGqrdM)J z&`p54{XxMC*yl+$3qys9t}F5FZrAmmD4Sc|z)a|%0=Bz@P4W|Bo9S0SD)c=M>Uzd^ z)x;Lkv}XD3Bp%nsRcuPetl$U3w%u{?LaU^mg15HzvtZZ{qu8wt#=8#D3xgAH>T^NE+b&zP2;!&7$tncc!$x4$I@ zC1$K1%!inFLnhL*<|bcV_OFfzGkt5z*IW%3uNC5*r)Zx)FwJW_r@Q;?^JHGU{@Z?I zJF~5X>dwI+t6y<5{RGb1QQ#Dj-TOQ)_j;gyYH7HSbEtr6kE zshd=P^0@9zv(Dk;1wGxz@Qd3!VhdacR)VW;QMvgYYw;G`%n5`XDzuvq@6m_J`VtCh z<<_2_3T4zxs9| z!CPkjyV^N9ERb~%IgfzQdH%jnDE0I1?%mz-FM2Gz#cH#7L={g3Z~TOBL-^5@76lvM z)icgnBX_JN==saME&lu-{$AIITW5)P#3QFUV!zex3S~vXhLx7!?0m6QXz?{=ql=j6 zV>i%LKo0B0@K574L43w+{a5}pJ&+V%&j>Bvt(7A&CgNXCrS*5MRqID=3Y{0R_-mtPq&gUlN*%j+zlSUCDVOyIm z;8SDgg^^~7H#9S|!O~W%88kJvR;gDgRV@Cp+l34B~LlJKM?%$ zc4m5y$4>aqrLn}&q@;h|{f9{#h-)5pf{bpkc`amz@7h8XTKyaTWagz`)KK%(O?`30 zb9~lv3c3GT?lP4-oN~;c<*%8BL-S`Vb@6L#BK+LG&g*X}xSD@(l);7R&~i$$sqmmy zr)Pyz=a-6r_*Pe)JP6m)N*D<*+jS$o<9QEvPS(&S?dq-Gt;a)^&dFQ-1pJFW@`fKo zD?2B9ei~sZ-fhzt-i}wT@OI1SoV?3^xeV}L2}UPze0k$W)gJi9_P0*j9_(lmxuG&W z(fhidMn9X7lGhh|g~A6b(zhg}laDN;J#E{lNBqx*iFbui;IN9)g$Ls zyYz#UKG~&jBHe4cl6EB@*{J8M^_+U-Wjzlk<}K*~uxi`kzJ05TZ+p9M)!W`|(*w86 zZj-k;m9|qL{q8IM{PSa>8EtIKDdTr!uxrlkT*iIct}ONrq7T_8hi8aPgB0S75Tqr3=C6kZ6ofe6P?eI^Sw%;$q}@><)C>Kow{Lb3Pjk)lF%$s?tJpqr1S zQoBYcSv@3#-H(xdjjr12j`fKoCJgiDELF>|IVcNbSh07u!MNri+;6*MgS?+yqH3## z$s0G=a1H3;KYP%SK#br)*Bn%8%A=U$+q7BbxNVbix2arm`az`(=z|b`osq=!VZ4yy zwG5Y8b=}DD;xE-L!A5!f;o`17W$~KkC!B1&ho82ek^=26p3FR#nh@|Fds&qbok3+( zj~r*h$&?C*lYg^hl=9SmeY`VOivt5}@r8Yab+Lj*r+-qz>f>D_7z%HA=J_N9mV_U^^KtD7Z4k>`7xKT1m#;sve8q1 z>TfSAHAN^NKUc}g#_jwKQC7cz-sNZN*Sr5_xhw`7Zc@vVc2ke=IJoUmN6fYmOh1R*1urmcbT0cq%8MS(ht}Si{2AzsiQ<&h(D{} z;7>-LMpR+k z8rU8h?azzaW5&N?$UwKn&wwNN3T?IX1I$BpC$M#-BCj2w69U)#Ba*xhE6dn($6*!w zK53D}kKE!fs{k7Pxv#gSCsbZNoj)03el-dFA9|v1z$Ca@E38Q$27gu!|)^T8$T0B1{-G}jRWIAcHyFr^DPBd+WQsj>H- zI7q#z-3ssi{W&kdLtc>vp%X~|0SI~Le{%ctbv|Xo$&pyhVjQ4q$NQK&5i3F#DYA}; zZr7TOn=QZdTL+jY|LyJK8uT}`D9w+d7P(rWYI_)|6KhwWlOdCL%SKyN7Rwtr=RfV! zhf2E=`rdnLFauL|f@%rS*fU+X?7VhEe*K=^%>2K+Dz}MYH}3@#_^~YbX>7CweQ_SS6!VpbuU@ zEl~GQNZ=aX=*~M|zbH`m5Ae@#dt;G+#Mj(I0|Rw`*^3H|I$uKWM$5gG+a}(68#eWP2rn%xWn^`=Wc2q$Z|fiikIPT2(mN+G+xg+XcgM!!UvaiEEOr+i%KOY4 zKFD#z%L43n2<1`Bha5W$Hf-d<8~>_F5}TNBRyiDMc6guRUyEzBbMrwmdf$7E6F1l- zTzn)6%7?b9$QInOyqUk(j>NXa25;iKnl^1Ok}}B!!xppDEev>%zd11AE&WtX_o`&j z2Jg6+9KgC-0eb-~)D0QOCYtNyQK;owuxtx~+3J7rCnHjSkJFxa{(4_zd^kJdVS~X% z2la9*#k?{afa?%`&JU~gs-yfJWZq;#`i{Mtk4b54XI=6Wp7FTe?me_cs6V{PN^kQH z*>0~FnKfibjCuAw?|NE+Rm2%OZn%e%MmDi{IQh_W`|`c+O^L@<`0^K3_>tuTkQ!Td zEbD<~ENNEo?j443qzo$_W$T~!TNOv3?Wb=a&VXDhatMqiY6~AO^+lsN58n}C+pB2^!q^t^c%j;=67$VU|lO%_{YBI&3Z;%lRlA= zvNY84FyAAu$MJ!6L-~g}K;9c`nbFU)A?5cM=O4cIomugJEg2Xn?@nw8CDwc24ysM& z4H+wcjhmpa-@j`P@)`HNZOpaa1^WyPR8_nai-?on^seAj{$i-*#VjW* z<0-=lcgt0926#Z_qf04l9%1WM8w_P`W5yZmG<@Ut=j;2yeBbpC~wcw7ts@F=CBL%KizMSq2=aZt*5ncW3v8~sh9h+jnIKuNIFdVJFe%? z7@^KIJHkom#6~6r$4PxOvSTOEyKZY_5BrSwhyMDy(I;x%pH(cQQlRfrfhj;m2M@|9 zK;|%;880S@^YlxTs^5UGddJ7N!pHYsW4@iIE2j7Rv(#ea!|w{UKCrs~eunSBykjk94b{-7Ph|=7K0R{K)ML#BdrvO73PHKWE=DL39 zk+$~m{sbKuktJENoUseDWYE-e)Ee^L+U(4p;=^F0mV8~yGUHQVJ<;00{{09C_B#R# z1@7~rkC{raR|Q&kT$pK!9b-@R|NgOD)01tLH;Cq>kG7etGH?86;uU1YRch?0_vu_o ztxN}dCw31&LEqp_{flFU_ZoU?b!HTP&M2JM$?B4KZ|h0N;t7u+yVll?u3ycm`WFZJ z{o1Zit(`BPL8nlb{_FHA7+QXRA}=+4dh>gTR*N{xwZ%JPC>^;XLoc70J&V|yPju3$ zKUbMvD#HPSN>;yip!)X43`wsZC6aRVdYdLEn{%FxoNqU$J1 zx-PW&L;c+stB^F!PVWsKBdMz1J-EV*&w@=KP-BDz9Ot=GgIjUlgNrQIS$Vs6&xJi@ z{hYX4+YwE-P?BX5v1&bCFeC22UIdmW`!;XCl$=pCXzFhCru5&{Ezdh{RAu>nUZ~|? zv~_h~64vmbRv#fZ!L63NoN^7;2}5*CZsiz3>0klqqHPc+Z&KcEE(;#-SkA**H6#6;8_+QvTBFnN1w zzm40-v}&+CUDR3rA=^(w*u(m#nzRkY(M1ywb<-q8lKXKOjMv8UQ7@_}}`J)+rpn*y&wVpkkfgro#pWR6RRp z_X7{>&e2OHMs|89^rD1LCHO`PEIZxa&&KG~hBlNMcTgOiQ$@c-%wXT?jHn(u?`nV| zU_ju*7D@$bp;rkJRMH9rGJk1=xVI%>lvTsV1GC8>!`>6=X7_P%wV+GT3-S;R3o)L-WrI*{xVFo81|=UxXpOUQtuh#+9O zUZqff{F>(@Np3SY!F!h#2{v9X*v=lvz$&3$9SMQKKBP9Is5ehdh_4@+S#dc&L*K{U z%wI2L(WhAz@SSG#EoJSf&1%~8Q+K1sujpHy$s{i?T3%X7!p?Pq?RaBuW z7ZhI48p_b!BmnDG6bt_+w;A`)tzwx2?$GdhT_|Mzr{p~0GrpBHs*usS+Gy-Yr z^KgN73Ul-bwV2;rs{hMJ!Z#07bPv9{R**AYn6A&Y+fIAgYVRsG*1Q=)T^P8Q&j$?# zOZxBTIJU=pHhqRUhJK1*JB=gx8qKV8%oMQcTzxgHjES@-rwQu@&9)KXJ2yD`X?QNe z(6mPud;lmduK=Z=u7|Vpj}DPJlWc9GgYeXeXA_^4@918!i(=hNJ$=IzlU=XKx=DGB zkz9G48q2%C;S=hOclU}_F794R=foz*yJNBF;_hX996N1s_mN6Gb#eD|`sD_M=k*(2 z+&!s?-zkd3SE;8#>#*!3dRbf7+25}1EyeUiSK7QJy54T#!$8+-EtF<|(YD09p3y-B zB22a5cpK=?Hf-Ra3&mG|N9m>!X$2*c05=-`XxPAH8iRkT+2 zNgnghhlbD`MB9tk^4C*DnQ#^Io{02EHcv16GT3ks%v!79x}Kc{7@0qBF2#J;D^#&)NZp1ihR4=wy;nCb8Wvlr_kU*IOJfh{-OId} z#eS~$4>Io~V@veDUGIIXD;AAL#?qlm`?t~t>1kZ`A&Vx2;_nR)Hq7udzalf(pmWUG z0@aCKq4-ur8!X*zlxTE8fa)P+pb8IuebXq%vs0}ORJJ|fyYs%b-V&E*wAJVd&8Us%-00- zG=u5G%79M0(^!nRS{z(7p_>$HG^^=U*(ojXK( z6+I(x5bku9CFybyS(=d`gSnBn5^k%47iJFl^i9sF4~vo zv}ql*`bUg7n+ciMh8@Pd*8OK@6;N>k$?yoZ3{vw`{lCPe(fMg-KQqJ1Q+&ff)Xvge zzXXJ$0uS`xfUOg=KcMfCr3N>C)8e7jGcgy1WBqm-Z+cqUPcq>01fQs^-cQWZHugdYxv`TH+e@Y~Ive$$6 zNaA3$kXduZWLvzY+esm(nXkD2E#Ph0F(5EIlDITryyh=AAP3_-ZxeFQ^@JbB1KS-J zTZx4)N7|IXmXXg@$!YZ3W}RUyNuF6%@mw(as+}xhVf9YxY7Ucj|39?73wV^p75~41 z1j2QLf<{FQ8Z~$gDwQbcE(FKj+Y9!f5Avw0oRIz?`n+}?u!3GR8>3U;hy=WqRtE<#M!1LwizBfm}baZ z?7R8UzzpWSsjqflx_z4tiyN8#SteOz=tkqo!p`FdK-Cl_ws{Nx1@m~KFrWCSERWkB zp(iu?4B5+^8-A+0_JhOa5iTOH_wd2W(pWv+`WXeVbwu_&fnEu<4Igo&wU8Mx7=fR% zMnuB()AT(lUO1v8oa9z0S1g|zn>Ri+m6tBV_3F*>&W;gB*RBFff0DVh(3;2Za(>FQ zplLY1Tx2uhGXGoZe@pcB=UMovea9mPGSKQ2>#R#`-jwj7BlZj57NVfKT_eM{Z6ZOd z$z7DiuDX9gxLzA@O6aXTb-RwN?X7?+B!}0M7+9Ig*v?{oGkIeybw#0%f4qAs>knsD z>^?s94*PnC4wQRE>qZO=S-o5=@htDS|7s_BYvC+Ub*pcQ$3~nywSP>!G=zhV-m&ll z%fq*RO~!plwKWIX%mryY>-|Wu9p^!^in^) zOzCPflfR7X(KfxzPd`fOIvY3XM{x*g%O8RB{{I{l9}Eda+m|C0NmoPMbDIah0wG0- z_lR2otl&!GB`gm`k?pG?a6N#DHJb*n*4{huAu;zDlsDrrE8aiq-dwB|hT@N6d>Kgu za*rbHQC7JGrHVCJK?ya3&BE5c#(*zu=ao_YyRuzPT*H6EYa|9ws^sT|{5ThF$3!Tp z@&3%44(c=dp`78I9EwDco(xVi|3F-pmIp_E9F<$IoD<^w%^`uO;4}I{g{Xp>$(T1j}(K z{Rk0>ZwkZpZxBj+)3bKak{BM$_@o;!v%fOK4<(DKx8~+04recb1=7cuG zE)E6SD}1D<=8OzGHKQ5X;d(uTY({sdk$ZrlBpBV{`cW3{<5;tD`?Fy6b?>A<$ABnm zyhb8CG#`lY(6Mk0U~ksLJ%fph6}(|SLX*CiQkF=lq(XO+*RRmZx{aZ5^G2q8@<_m? z@nQReAnu*bl@1oCF&CDefV_D^dKk&kaP!z6(Z&a;c)}}B>?{a3d_ylOL(J)JjHOj; z(-SvRpy_9SYZXf!ed~}3viLl3e>iG&>VZX~hRteg!JTCjL}bWYz{BEg2Uva;YaL@E zF~qW+BFJIyEH7(;;4p5lvYcWAF0R>+7A1?0O z+ih{L3#BQp>Dr*Uj|**aQ*Ciy9oDh9@*gU0{>&e&UCJ-+yi9SYtGIY+K2F_w&gfG? z84Gf%^!olkP^A-oxQrow86J3SmA3qvGO8(Kt;%@)&ZV ziy~OvXz@1)|HRUKx8P=QBb62Qu5${0&F@1OP>{32$d@yADNuV*qR;uH6v0=Gb(*n; zW75=R`K8Fx2OzX00(7Wkr48TmFS8hN~$1*8{asz*cO_}*^ z?Ayv>?)^K}BN86Q>4)>3M8v&OHB|X7B%pC!Qu717r%-Su_$IHN;P!v6+SyB0=v$pSu%uu@Xsp}Yt#o>*8btN!17MY#zr4z!bJ-RA zis50@SI3EKsp@VIi7(REAOS>RgDI@Uo#o5FE|llR0x)<*6G|fT^qT3E`6;HIzSaDcRFR&_Pt`PDWovm3VQP8fKDo90^T)YVQr+ZXfYE@qx#~9( zN*~C7c3z}L7Inxzd5`Q{s8}|;+)Aqll5Z28j?o_7c2l5xNuc<#4&Oy()%Gcp;7 z(?^0b5`L;Z(cWu1hGPZggEcu(xw3Bx^sN#iz3zXbzL?B7t?3s)kgFdu>02JP>AcR! zL}^VwVyLU5>5PvC-H-Im2fq7=UB8CH9ZIVkQOeMNHeOQYv=~nW%_kAfMjw$W@d;}F z=C*FI-S{|eloWe|w~$w6pfTqvYY9`^FJPXKZ274oVyWx+cO#^Hqzy$n#(Phhbd0T# zrM=fa>}S+AZO{1fi`7HhooJ5!LRt<>zZbQ%$A1~nU5lB{(sIVWcN^GZiKQj{hPp=; z7rzKoyfS`p8AR~`F-t!cF>E#WsPUa2Q{xvtQjKdLmWHD|2Wxzs?};?n7fHXtN+GEN zhm)<|XaPG3QWA~q5}bd~&8x>Vms2Az z*_&;;8yzT-eMQ~dq5Ac;=W*lw+jgMxIK_{0Y?^2x$M(o1Sj=-w)M(>>n9q!oOZP&s zmg)nW{bt>SuqRtTy2mK;VwuYV=Cn^WTO!Lq3jL0ZP>?M%oSXq)pvbPBi;Uk{of`SO zPX}>rbJl?qSpJ5&d>BQAZh>Qe^>zzxw7&+nn@glk4}uIS@mZXbaXyAEK3bpx@05pS z?!f~angYL|BD9gw?hgG#O6ys&q_*SH+1ftWh}`t=Rh2HwSWA3zWpc{E+KZ5$3X@Yx zY9}Is^iI~4)}Btxz~q#&+EFprH4Vl6<8XZiB)C&fK)-iHY%;12^X{(mTx|J!1+lKZ zOA{-w_s>ILLxY6q&f;*tXwe+wuKi=X4zNJrr!^io&gv&`i!J}KfZJP!Uc}eqH*>U% z1zYN@k{Fsvu8GDE$F!Vtlj79r-<%z~dS z%aWn(XBj{rqV<15bOpylogk3VmxLI`XAN!laU{MEB2<_I@v}W4pkql(OV^N(|dywn>?2QkvA7xU@9I48`aKY$uU|k%*W?JC;A^pQo`pOw-MD36~%O;+Aw}eN``X zqXj3wpXr66YtL52sC=|BLIFNRGz)=%o#`hn!9K)6SqO`R1`vX?nsb15{Wnuk294i{ z>dB2HN7-DBXC)|a8X$&)3Kk=kzRbksTe^Bpf6khw9Y(dZ36eIXcXY=aTr81x1ct*9 z-0@~~$GRwQ4l@S^X4VfEGg%x7CRVV#jN3_C?Z+&gXU9%wgF2^W-(dc_v4QRsG*R(_ zX!51_;Y`B(*$c~PVgnh`vcIPD({lC*wfm-%q*{5yy+9{tJcL0EZW(Bsk7Mrf zD)df+sg?)9N0c_zSc0DIjeeyVY5>r+s*89bG5zyh+4Y#n^qD!~K#lVYQl;= z2FVlmOva6E=uolmaJ`&_V7J~v<82?sno<7(>XDJSg(t0?G=2(9FCX)hJDRD2`Q9KM z;O$KBYlz`-k)w1fxsp)YGg0+mGs21LaW{2M{{gHTDcnYRkL6vaX9$Jrs#M)JaC_64 zO3}LM-A@YF|BWyzt?o>wWF>M}&|?qwvOV_Y{j3aXxZ`cZ-9fwxdWZP*PznmxeZib( zVXgqiTMB?$e>4m_!G{kfBd>B+nE!805^aLaR+4eGZ zO54S-5pdP1P<6V;Yj`Q8N>Z7iuQ!kg&z^!5DCo_`$b3kqF2uiD`x zPY|@H*W*RZo)^5;mOnye#imp!Shg=9@%WXkf-C$e`4IQ->W zi+Fot*YxnLJ|cQD?(dMl5I9f;A2r6knOA}?Es44pm5y<1%e=pw2f0p56w3+jQ;{Kj zo6aWK4LS@Eq9gJ1rXEi4c^fQ>k0Y{#LEl0I@ei|GW9+Zt4H)!qeJ&8#jCNH!UcwJ1 zh-S!X7Fb(50sG@In)sGde+Rwc+vXU+0TWFz-b^(Zq zyS;6Y&<@d7kwb+Af)T91%U~Pa;^@ z;%D(ij3BZWC~&{19aebE&bEq-zJ{gUL~6a$Ih6+~eoSz~l4+{_!x?xIT_g z34o!ffnd1dPf*0(e0zEjjl8=gK9K(-MEt{|ssU9s6$|zk9~V}+RVDmm^XugtgMe?{?IkLpOMGegHeFXHYS2ff%>4L561a{(U?)US z;dj^ys?4@Ine{3);JC8~lmA;3E!yZ(0u}O8`whipU~zC%!2O*PC;JZz4p!+}-p^ zg+;hC{byjYr%sLB%OKDw!}BDO^oi~3?j%4$_aMg<5`jO)!qes9`iqDP-_}a6knjN| zkeM+Mt{0EhZ&hOCTej%t{&qN|Wn|}%U&i}h6V*QLw9m0{FCy;PSM7uLxK?*8>y%L<74(Tt923@5+L}|v3rv>QnZ8{Gp_K9waMV0bbVmZ1X>aRqB z>F|Io;}17A@++c6x>l>30oHF6lc|wIY&CYUU(%>f%P}1NpGW^cRHup-yhBp8dMl-( zb*@d?JMdSAu5IAB@({4&sE5V)P>}5>q}uU{#S$g%C@>TzgAzZbk~W=D!XA6T@z0rZ zwS_aIiseW z7yZCsRX(f*({EZL>J?P|DrqlsVj@0I_>K=)Pwp^TA~ec?SuqgJ&`NQNl>U@-Qo`&sS0f<8#YH|45EL ztRnFOcP#obcWmX#9D5$#H|%u3sbiRYmk7hfvRIdED|2m0N}v^Q^<#~F7A^Sk*lL9R z`Gd${SayU$ke?_BM4v%OBx?VHsW2fGuD z!h1lN>EhS>L@5aVTO5BFn$JK=0JSB9PGyTS&3uKRKbaiaJO<@{z{`HYx|^0 zTFJH#jiG(pCUc*rZG+j%wY_5A7j1jaJhafZvPm0=wx`Y3x$Q~Dse8^q(KAe>oFbye z`UITj6EG&RD-s_oBCAB->7uj)G2<9+|2K%S?d6_RB6^Nifj?4Nr}`~b5+ChTHcAv# zir~|78|CM)hYoaTZ~OnIQOr!lfFqLFY4o21%6l9Ar+J^qj4NiUJGP7`f_QPr?_XaB zR^pB={Yz*YPlFw^R0x{7PQOMAF9MBcl1nCU5YL z<)>9HWR&>xvxTI;V_6-#QB9Hl+^n#)pJ82xzXt1~nEl;IezKsd=Y$acyTlRXh|7)x zGtU*3Gk4W4tp$JWH9G6jC!+ZKAB0`-2NT7mAz+murkINuK(r@-IO zv?+%w(BcP*6-bk3fy$R4ZN>F`wAO4kvuG+8ui}S_5=!3uAXD!fPLj3QwHc()53_vUia=6NIG&#WJ@H>dVP4NSSX_23Kjmm!9 z4=h#S4L|Uh0&n?&KPgbX$(Wh60iD7->A$fn8E3}9Z@;!i96t09jdRd?aw(q zzcjMkf-}rPdu^AMbJC|z?V0P(OlD(6m2SZZAke|qUK4Y6GFNd{kHzQn)ibux91?vt zXo6jQiEQ9&d-;dDj94l=>;|SC-9G=-Vf)(nYdcm-V6DAa-xAb0 zF8Iu3Xj`h0>=yjhoXXceic3}%mFhDoj~(o3{BHgU)Ej9DX3@K~;3gndAMeC^bEI#* zo%r*H`-+G(&~cgQ7+~nIkFB}`PFE4w+)ZQ3r%&a-ocWU)=Gc74DBr)|w%Vfo0dfoW zRz4IO)ymgh`R1s3+*4)5>`p;bR#U_YZ+tH*+Lr^~_%aI(wDI!3Y`aIP37)lWazQA#)N*n{wtpE;kbWMra{3?Mv_ymk>$Blc zI^fJB6?680M&CTlUd64%!zNQBAX{ztfP)ZK`ygM(QF1G+M(4|r-0tVsI#cL9^+`Tg-S`EUHs;w0Q5{Z>2hc#b-QmkU z;H8{SXyD7lqj}gfKH9iIbOF(su7$e;x@OMkNLQ}>hhNtkDk3-F`tXX(^}XG0+4YqE zD~_eA8U9QG3ZXq;_U661qumuP#VcnR^#y*%NOE>^KFQt(MDc^1&zJ8ioUv;+@$tRP z`wX@FBVKUHqDAx8#KeC=OuJ&tFhmqAPi}9@NATx@0+{&`AB1zv8N1t&*~0g)7`)E+ zE}0o$;HsktJEi@y+j7dTb?yB0$N3y{Qi{L2Ce!VyVYhxai2GKql!F|Bp7Md%E6(Dc z1|_WJ5>nGkNX?YzcB|-K%f$rSYA63rjTi4}v1`1FU|W>4UPiI+ zHn&ynu_w&Wt9lVNA>*um5ruN$0_p$6OnKH``ze923eGYzuOH2lr`=6R`O$EZbXooFMz6f{Zi z`DT#SBPL#KZ`~nJ$7sh6}84ot!Jt4^3dUN2yi$PkiVGP;r@sm3b z(tqy)_&6TaGlTT^|LHhLmyw$8PpbOEj`l2n4=e*>&WUvAyF#>flUdU7zjYm}$jPzP z>1Z0x!uZ&YKwx#Mpm--xli#y4F7MsyJP1SbB?u0}4-5E=4*$LAw z+!-6PGjBy~$m+y@b_#YMzC&A_<%t$rD!*^FlOL{FckNbFeolGYSLD~8#m;gIPgQoq z`EKP*Q)v9n@ZyPmcVFgAEZp7pyw+#4&i)Dx*Cah(^F~OdRlcCN|5!g2`UCa5F;l;{ZT`^}< z>RdncBV6h?)-8;KW%EJk#a_{@dvrd{5yR7{qRv(n5{Bsxmfj5i?36#ovg;Mv{N;=o z@|&muKa`*Ly&icpGe5!inVbyFXB2Z`#reR=FXfg->dA9O4bBv`Akg;LUB*ZVC!eI+ zlKhgYK2I~DE>LCMMnm<*>!2DB*(UZ=9@{DN{x+Ri&Q%{j)(5;EKxv*n(Y|iRDit2c z7j9+V&csJB&B|_Ooc`X7)2P$JKt03lop*-QyBh=b)AY@-Oz!W6pUN}CGAV+?^_LUN z(9F}&?6y07u7Vm@Za?R4LAVq17;oLaO`l>?Aa~gUqSNs|>}B|kF6dIX^d;G_NzVzJ z^oiMYg@>+BufJz6`TMZ>39q;>C!8+5za#z=f^cHl6?C{=@8fwZqZ6CvsBKfj8owG8 zGKNsgB*`(qioAe4I%w53Hy54Cd_*?T^ba(8AW#VGq^h@o||MJyvShf*8 zF{UnzuC6T2%Ukwm0sPblI4uXDNB~{B#2nmjd=b6{AlY)p!+zaQ-|gE!MCr5Y^pfo1xr$ca>R3&c~KZe#=6&H4OA^suQh!=y)#hanEb+P9mzD{#fyR z5-&nQmsqM8E>`OSJ2#OJRi*`v{NdIVw{6L;cUGF-%v)y=PWy5_Tl8=-0u0e}s&u)T zdzg|?c*cFav+C^X%)>@vFq;AMPBdhOXKCFCNX33hp)9%Q zwD41ryy(nsx&su>Ms63E z`lT8+Kv#x8b-a&-BdpD&GS4d+3f0c@veunBg`teKYc*cvlb7(@`6^Pkn%BFjH%49jg7*+fSL1mlV`5s(uM)0UfwFRDOB`SEV(=ix2~)y6wi^D5j7pFG~BV8HVe>Lemc6 zq?`rmN&*&h&w2CTMz&TvZl#fB;4s|m4XY|z!VT}JpN6#fO;xc0dprX~)=1rVs15&0 zWvZO%#lC!5X9{1nBTQ|$l-_aDC^x$>m4@U5$8=BdY2 zo-`#de5?4?)Pt+sJ4!W_jGq$*ahI4|g#xkv(Bb_V4|f5R!Gp=dZtvE`n#XUE+?7xwBf?&fF4T&!ZHKQxX;cNA@u ziGEW{XVNa;3Tf4bw6tF9F!L|kc#MGm(HZz80UrdgnV{+NEc{5pi~Dq_cTd4@<(>mC zyLC0d^?*pvFkJABo#EfcKGIue;a@e%UklHEsiG~M+>a=8gsedp(I9(O?kC}@gF6hc zse5%8T=g>4ugcjDU#DW$@Ypwz#on=Kz=N&ud8Eke&7&kn8?P3TPjn`7m~!uLi9E&- z*#Y@JO1>&Uz8>{>fc)D}Eb=o9@|8j!?TmZ_Fy1p$f);*>o@2d>HdYFHO=sx83VJrs zwC@83G-%&51pjWrVhev=2l%sqPyZ_D&p>Z54tQRnyYEK7sq%Aba|~%}syY&* zjoS5@YyW2a zyNF=}-Xpj)w5-dpnU~3mHN;WI(Mb4#ZP(qRnd}Ln=1_xvknU$bq7fD$PF=|CPTtG8 zY_#z@oo zI8rS5@TUU`ARmq`ALXJpoYb`n(-&&qp_CJCl$~7q*Yud>7h3r4D10Tuud=}WxBKv8vpLO=L*?uHNf}{$CINII&EEcUpWS5Z2r^J5B z?I&VCHTE;fex~pdmJ(gosXxc3#iq@%p9S`_$bMSvXPy0Qwx4Z$gr(eEwd&{7qID8l z?5D(j%Izm&KQ;C<$$lhm2}>mLHCMczw~=-BGsk`w*v}&SX|bPm_Osc3w(${`n#9-L z@Xu%?Lzbi>`zf)Xa{GzcPmTRdvL7>Sz%nWEb@y=nsTNC}O`Bss3+!i+{j}K6I{Vpd zKil|-mMP}q+1IwQj9D7(f?T6MvY&GMiP%q#{Y}QhwOyMI$3k;%O z))PCxbvAj9{VcGbMfTHTKkMvgv;A!2BSaeLiLZNy>tE*wh(b(aQDi?Q_9L5QQDi?d z2qrYiex~pdq85XwkG&5>a-B_{V?PV*XOaE1*v~rq*=#@C_z00ETjJ}!@v$HYp|9Xm zWIrYLQ*J*I`>C;?N%kWJhmdRri7yX2Un5NSPQ14*@41SX!}Ybad~EV_Rjv72tU{~v z3qz@Kc~P$2&oUc=$!j|%bume&np~Zdx|*cY?@P)zNj<(VslX%|cjukU!rv2Q7@tI) zle(KE32U*=NrfiqzVA!wVUlkBzNDTc-E!3)$a*Py;vUhk?=`oK+#|Y=q7NfFv7&Eo zvqdY`;lO zAa@-+;(gY^@a2KD)&xRder~7awwE&cZeO32Kewa4=gZ#);RZ3>%>EYrgoa{H*t}n# zevoI4DH2)eJ2N zwJq`YQRJ@?y!EgzK}vp*o>YE|&d)D*f+j!qEC5knIC+IKntB`avfT3$iB&op1ft#B zO5Wy>rWdXFTQwLPkpAZQkQW7iq1us9aY{jOmQ=hly_Af(`lDQY|H#ER>WA>9N9N$m z8r6BfzDzyV>iy+tOUMZ^XC?1WL&+6BCGAjRlmh1Q7Cmb7J?A%L;mO9#tGR`2ft)w) zJ;wL3m+WzVlT*GtnyCTsqT5Q*-i-2s(8vO?#jo^Uztqy!N3@x9uK3X%X`5_lGla!J z)JUsZt(Pz7HlClMYgG)^CoBL(rqHY-q-f(c8Twb`(Es@+=zsI) z-%o!#X51P2uRSJHK=+`4w)?P0G>+r(gG(H{)?fEVZauzwoCNKJ8WSwI_Bk z7tAAYmAUq!d*&}e*wJBNYLOUGkpHe9$nQ2xqF&kahd@7GKP$t}t`I=L4}b@22Y3~e zo|uK7BY*(jSuFf=XvN{fJReog`EpR+m$%yToW-%iT>NfB$FR`X92y?#AKY# zbJhAkJbH!ZJSFGqkMUS?zufU@1l7E|TP`Sj+p!5CEh$EnKAZ%9oj*$q^oW>ye~}@3 zBkaJvM;W-}B#(TXyx$yxq9W51^qYQX))!?zfIhX^u`T5=aE)z{ItXTaPq{hu*KUvA z;>buZ0Tg;4&lOF^-|e4J+CVPno@02NXLO;M>Q)}RwNJVNGN!P-rU(eefO&CbTf)Bf z#;Pcx(%UwN31O4aQtOaSm{X5Sj$~_PV1CIJJGNaJ^E-1)qjsSw&9ecfm9qM3)Be=) zaOxOQvtU=@4p*%Q7z-a1%OjLGz4xwuEF$bXb%CkrpH#hhA^!#ZsOcT%&HWeqdNlP~ zy_yI369wPQ&kpdn3;vot;RAZkfgV*TOV6(YdSnDpm`;4{(=#rE{{adK=s808!+YY7 zHjWbfXwj1kziT7#n|{i1JfZ>Z6>U5%Q_ozu^@3Y0xQ7j#)P~E9?G9}&`v7;DH3(wa zPQUy-FO*vQkig!wL;BY5OJ^=DkVNP6+2B2#7%v%>hr;!}=p=V+C8v0a&8TB_&z>Vn zcd?pV&-$Fkg^_r4=yn!)ju^ZNmO#ip0r1-yH@-jgRT)YbW@!Bv;y zmC;6=5`>zT3F` zj;ypVx5m9sSJS_!(q!jVyDF#62UKpL?Xs;d5IUlSHjk(e%4zfA!joz9h}yiw>uoy5 zw7Gl&6t~qy8-GrXZ2QPVE(luuBGWme1!_8{XE1u`oRmPX&49{xNx(1E zJT?AMUt;R@jo&N>25rLaUGrSHX$#Zrw$W=~+t}xrw!$@;ZIO4L4O)c#9yeQCWY1h& z`*gN#eyC9hSCnDOEI$B8gDhO&Zb zCJV{0S2-_vx1%ffIY2E>!fW1tR;^o~6588qbl9I*70F&oV?@FKya!epR#A)fd54*s z8u0b&dR|@!&E||5ER3R9HKWMPTos)eMdfzpu6_f{b{Q4ex!XQOb}#4{Lk|YB8+?GlFu@s z#M*ncapTp%R|x;K4uE8T`&IBS16K4HLCWHH8$@K5ztf#Yp3SZOUT)EhU8edNq^kb4 zL$)`($&wtYt!ZtTNq)^4y6W84u_Me+1f2HGK0OmM_07+z?>NzOEcBTA=E_?W1+PP+ z=3Myw1>b)59`OI4>4kE&NtWK9W#~OPhu%M|r~K)AmLF}rEJJTD{FQ>AuqV7bPwl09 zLRQ{NowhBp^SW@u-zW>y!57JP7CvsPoL8zQ=hrc|s`FafH)r{4Y;uEiof$vWF~@jR z@wX88PgvKhVFLh;`Tv5Iz-z;jg|}g6u8l?BYw&XM(H)2v3;gJqGuNgvSS-JbrG6WN z8vw>oI0a7GAU9mq&g>9ENA=0GcY-W@>m_tw`ZE3l|Gb5?ut6KH9|LS`@~s<~N}`DI z>a5$b?vM@?`*MjpPvUc>v!>UmfzGIbW=jJ+`22YC`6hxzktnL^GRUauUuA6YnI0Qmwwl{%0L zxx>BpkybA-8=;Q&n6Zj^YUyh)*B18Y)sCwM&ukzgaEde4If-2dg&W@d&h$(n@Kw6z zu%XqA1*#I{K;D?#Ai}ca1I~8=d&D|`7IM?*c(}+}|4h z2?sH+=G8Uo)Qq-$ivI&!8pd?(4Fn>PMH_z=u3w`c_C-akmCzOL;4x?FUcbX6n1+e9 zKC8lG&Z9cFixn7CFekAA2rqU&W`GV(2ojqKn#Q1Y!u2hLG_@@=ttTXY`UNC4{f(c^ zE|>!T+w>Ci_5L3l{%ALvw%?+SGBRm;q%-{Og1=@@c+4A77@Y{XHyEu-v{8>8A-08+ zx{}iLLT5aqgy(P{k6C$*Obnd``O@=78^e5?qMh^gRKBe>JwuL{E(UWjKNGvdvH?@) zXmLlLoY%XP6No5`Mt>X9EKf{Qs92`NtV%X6bQJoslcO6zllk;zl<*oDid1Cj^ z<3}cTUlu=XXiH-Eg_vW}z`66uc}|{ny#9B0!PjXU+QOLglEP1$@GDpkpG&hFdfFuK zPHs4XaQ1!G$qnTSFZA~XRjD8Q<9X`caG4F6ybZR0sw-x%BQAXF;|x-KL~?(fA3#dU zVMm$ph_-r zjLOL`;fwr+a-QA>4mK1qfNKIiWgdVKKlI}*Uo(!0=@%HC7~xUmam@c|IRNB+qtu<9 z_^nGk^;4}){b0JPYdCSOO;8|x8NUr3dXXBFwVx1XQVu7Ly!xa^6Gi*m$n-FiA;Q)? zmL6h$`|UNB7fB|>(gXZ-#!q>=&;;rjS1@*ie><#3N!8AT@^qR&(B4{qD6P_&txwuo zov3|meEJy!8&Umx<<|ZoKOVR_6qCL?8-3DqNcl&sX@;Y*?me>9e!pI)%q% z!>VX{SSCF7rgWJJ2o5^O#?!?e!qd`)9l}%6JDKUhKGvOHrYVu`dbTbUXgFa_q$eNT zIuU9`jqLh^c})|!Gvm{rzunsxh_%r_j=3pgdRp_>{BVC#TyakE)GqtAtW38tGIRC+ z?mjU$Y@yC9uK2Nq%9f|Oek7eA6R&+<_B83p*&yxxShuowBeW>oxQUYq4U%f5D=*yrB9x=Y4z@$>vU zINN`(J2*EFx3_n85*oUeyXASbCAUhjyM5Ms;65R%eM$b_o4hfA*jKx1{|@pCcreFY z<=34TQ;shB)ZN`L)b?J-^(ttOvj5#4@_X=u?Q#0qXZhOFKQb}2A*CvZ#W*@S#@1th zdrVMHNJ;SLh;%htnDp`Wn%|3Gf>YKtL&W&2+!jks;L6E4g)Fx2)Z(EVtKHdRDthYT zFxG|^u9Ci|B2qBo&mku;s*4-y&8I#RqaWy@gM1HEQ%S}M(rZu<3Egk=k;p$5sh(t z0EB00LB#|)T;IwM?_W$?9=xGLt$d@_JO%0$ei#5fS$2#cmhE}9i-9|Lpnht`qaE3U zNVh{;k13YVQSNCcRk>5q>@(1D>3h@fIcMQEd&RRr-0};CF&+!^ytD7w(OxyVHJX}` zSDoh#d2w~BG zk)L><{R2&Wdj2jor`!hY*g)yxhv(o#H2RY<&Py4+7(?tPY2V_QT%(dKLOVB5`VMN( zjcYb5d@C6&Xd%$s;RXz5R+aZ6p8tOpN}Y@48RICH_q?9%L18jR{Y$2wO`D+ua4hV z#jkO~J4$3~iqeqH=j8B>KPz{`7!*rHhT7Hz<=;+xP`+$@DE|Llz*^tch8njdt9MPaGQ;f#;1Mf+qyLuZq96H%3dty^fivS z-8zqu)5VTQuHfNCAiJKs-K$Y7a{+*R0miTPbmkW2*AB8Xxvs?wEmEr)tA*{8&b8~Q z*{UGF&p6f0Bi1mBKYhTvU2^>sm}b-c!h6BP1nGRgP^;TM23Y{a3$fIq`z-|^#2!Tq z!76#o#VPN`$sBjOOSS)NdJLS5h21T*(ODC8y>sal)x6c*6e7_c^Z~L_AmswVL$&|} zr$2kch%3l?^=Xs$Z*DuWbN5JL02yB*UXRbY&E(!#=GBccH%Lpo6WdtG-KC3YCvW2) zyD7EMJ2<7t8;iXC?2lrv$oyEUrP=!ucO^U&ap0c}^~FSKqx%>fA4FOu6}(@;)UcWV zG(hSG?+yzw(^jjHDE)a)-T@@^{)*NHfhW*A`>}gxu8qG}@p*WU0RMbQG4hr;9W*q}1Lgt>n+niH z>F3Ay&h3AD9~diXJ^onbe2e$jP^bhqS>C8;%t>$kgOuYHphaSI%zQ|N{z=m(HSBQk zEeqw7`lcu{Rv!2r0HWF{X|2;%i9|ZHPBMl5S|c%1iHVelYT&)?ca>`Mi(OJpYeEB1 zaN)p)Ue~0t4BwE zvkYbZZKFisXkDQR*Y_aZdri*3ozW#GW(Qfl?-3RQ>aiU2EziB1A*4b(Rr3W*w`NKbpkoaS{uHa(-jV8Tr67WPNECL)i&# zjInN*s*IeYw13&OooX;u!x6GiG=!am8Lx^w8f4xE8(9*RU{X6xng`S7&6E0XLD#g! zcIZziW?6&?@35b#y%HK?rmQ!Jta9s1TlnHdo8zF@Kz>>Hnu4d7(>$rAML;$ek;*N= zHKO5(L|?I!*}o((!|^CT;9dS{>7 zlii=z|Hc^8qbW*CHW_{VII?-i0tFpRhOc(1Tw8#j?{^meVBudycHW`Q;{WOtj(o0! z*l6P-;P%A-kw(hPKsEi-;2HK75o(De$Kl*lmT5sfUR3@+b*AsH%0FABTp-x2z7%ei zY2n$onogK?qog0#bf;^Z3uy%X{=+riI1H(gzUB1KJ|s^Ueee z5dnQgz}p7uZ9#p}8LF$GypcdXVM?Hiix&aJ+ELF(y|!2^ARBfYI;Oh~9n+n~J8_bn zg?AQ*igUwmL&tRFnGWgB;svHyqxN1o2YVxGDshI7wXe|3Oy9-B&syIQUm^-WF;xv@ z!rB_8AIyYrTPS>P-Ef+Hd!(eW*4hgN@{){n&Us+((89X--i=@~8U`iW`bQft=tIMu zLQ3<#{1@zpo?Al0{bPjAQ`%n4kp}{K!mVS*Fb6dJHAmyf1NP-l>}nz<5-yxBraYRe zQj(1QlHbVKiN+cc6Rww>@18T9y+Qw2qH&rcYkO`tR$h6vH_S0ovE(?rgQhuT>|E(y z9vkC)5FPwg{6}ue$oOmH6Jz)%jk*790mb&yIF&oV?ZHbbA#y zc)t#~T5N^?9j=C+SKDHE#yl$bs#RNHrZ@^!+Icz;8OTv!+0Na? zE#=+*8>J>qs{5pAJegIU3wKNYCy5<;=g&gd0OFem#}4I zI}zbzPk>RqR@|vAq+dL307*tSlHN8mQ~z+io-#~dWYFiHhw`c|4EKPKAFlMI*yOJ-<4yJ&m`RvYm{^eKy1 zyLUW$Ozkg? z+}B<+NxX3@2JsB_1A>F=<3y^#&7pNb*CubL0jqrrg33+pO`@G|-jNU5b8W0wK4kat z!jocmo3vB&>Ym~V`(M$W)wJmxpo1(joza_H6+ z%SSJOO-8S6c+Qz<#LmN<`b%_dQ!qaE|lXz!wlWc(4`GAfoT_y>?P z+KrHZEx{&&H~oSii%k4?_$P{=Kcl^!FSY%a6`r(26(0tp_#OU63Hi>5$_ZXhaQfla z?-5zn+AQaS&SVMnsHuXHM6GmBP5*-K%J4I@9e`)%QyyD~BJZj*5ouVwiO?Sc>Xb~{ z1e>M^{n1U@FB#Pn-Q3OC=7|&JwpTVC6Lip_3hg-lt(oEf$S-~_j`>6Rtq#JZ*X;zh zGyWWYzmoH}j`Vd7Gx44gPi34>FA2qqvO-F|sWao<+tALCM8C9|ukW>CKci1&JkBkuQ)b8%8jr5$$hAL;1H2tf)M<#NuKoW%=GlLhM= z+usghXKJKFd%9yghMlREozgpnyLW8w4*meRy#9zrk5K~NM7dSGYFZdVGp#98#X3^$ zE>rhKSp}I!W88lf^NG5%2lC;>IGXq%FY#VpRpRN=BAZDz4hj|%%!}>!No>dKGd`#T zMNZ_#*p62d|1DCCM@lGufPQY%&*nP*W8QpfgkyfZtE3hpL-GFlxyJnDRq7W@j89Lz zXGxCNy(o@IlTT7CeggAM6#zo(~4=A>CwW^xTl>1F%}C(+H|`A{2k`j>jke!n+u)}YSE8$kb3``A0p+`GP|Ivo2X z{V16%pC9@Oj|cB>aMY3Aj4b?wCm*G_sB~*X*VAuzuSoxa2+E9al40eR=C2*`*sMy4rK!(vH2=o*U^sPxHteHVH7AkT?E~ ze%QYa_0^fY2XFQ5Ir&fjq5M!2^7<(Mw4D5go)fe5u-}>j!I}Eg-yOs3&pM@d2sf5c zjBHyj#fGJX?SQ5}H%?Y?rli$}w~2QaUR%X6xXeVi4julw=qrhRr+ z4_Te+UmhFs8NQtGw}?9_>wavl^HO3tGHUM=$2+~tD_*&F>&k`swWXA{BmC4dA&ksC zW&4UQaWA~Mx*sl`s`uIL%YCj%c204t`+ZCFw^XnW_|X5NS9~B#uR{M<=@r8NL9Z!& z4|>s;UyQ-W`uKk4WptWnM=U({?O19`4cyZEt}b(}ryle)y>+{NJ$|35vbi7lT`V=d zhH>+%WJ~XPlj9518N6D|$Xxeu6& z51sp0MtGoXjXm$t*EQa+DzUo*-B099z~4+VyV-5*@Xle>D&5|vy5OQTg1FCjWe$@o z-^s=1E#@%7)<2_v_PU&evIgFA;Bv3nctHIVbekIcMf>}`P2NJVYt5*itpQR8vc9;0gRJZo7#zJ7zdTl(r9>v_NiVf=# z_^~E??a6-OTfIRxV*gA5ef$F61WDU{taFW`C#{EL?K;`WS{h2=X_g2X>>hVL0u7sv$lUu2)*m)W z_Pjc%I8%eVPt&w0xiMSuzuAgwg=~7!R_hT^1{MEmn5no~K&kl479y!auWXkuxJ<igi$4#Vg7d%)u*uETofEM7y8XV*W@GdrcP>y$pHQ~HKZ>GM0KZ|<1>c{97T zP89FW$_ACn)`aY`O`*8l*2?#FWaVS5qt-MnBpitUFpbB97rJID+dJ?shMh zuL?6v;iR$F1_kwJqYPKf;Rnv*^5R_l&f?)6!q}sA2!Bs`5dd<^Q}BP4SCavk-0U_e zoUNa;SX%yoR;4SPNjGZ^b~Ptp>Jn=;HA8C3)`#^$D^X&)Ui&$Sp3#PT-|Gz{PHqyP zaF-U-f!^q!n%^b-MqQyO{WYDTEWG~rAj5Xfad=~URQBOO2vC3gEc1VIAi?DFBhU3~ z-I|z|NnT@9adr)-fP_!NNu833=U;+m)S6Q)ok@}#IN)}=ItfYW-mB;9c#6l`6H3>g zH|JBhd}`^r6zY8mcjfm?{r2>m<4*`}O>E1Qu8Rb$3+-MZW;Uen1PAB@rayklbk{&U zd>6hd@ofXtI+BKN=U8VOKfL>@&C%yHD%Uj4HciO`G)?VL@rJnzD9qj$5ut+8A3y7Y zpC_}*ssiR-sv^WwK7aW$=PqhS z&RrhlW7QrvA4=7-;1SicNX>W2g@z9O)?d1SHj=#4UQ>)#<&L&{eExyIEsMWO__f>V zfd9bG_;ckQ?;195-tA){!Rabd^by9AzrIa1O{nq`xHL7Y zpo~k2ze+6CRmU#zn`|=2cC^|U{^yIX!AK(h0Ya93-NA`A_V`|ME)zMYLk|0QUHZ)u z6!A%57^1OFPk;h{eBf?BbGgmZAu-208<8#9GQCe?sVMIqu4fC{Zqp?r(s1{;m=X{& zj824F*O3si^!0;2bC75Dd-S)Gg8r@=lH1?qroZo|lY;*KT4$3%e}7EifA#krUg!S) z4KdmF%DEp{QfY7f@iMV3r=+h5%_O*ejPqG*Wd5 zl~$egEh&}m;~U7UE4Rh=8mrBfuQX>{H1T0xV)Je;BLL(*zXmsKJxm7k8dZF#1y02Bs-xa#T2&%zRg9>7Mb^qH=crPfL2HcwNDS0mtgo%+<|L*==o0j(r*{G6 znSyHLmCoZD9i20o@sFPw1{;m~%6;&iQGhk~rPh>g8QX&;hOu=hP4m{$LX!zJ{Y#q0 z%Hh$*b&RRD$6~nsH$F1VF#Y4#`Iur`Ady0e9qfD7(Fz^yd#wKF8#ek{2)z4FHT-|G za;AnI`)BdHU$J>h9eo`R9boiI(O(Rs7k#jr`Go*7%Z+07=ZzwReNy_}q3!w zghwzBSeVBI)78Q(P&`LkqU(2xZyRE8E>iqMHvSgHziQ)K6#uY|zfAE0dVfHN_9H@e##8ZsVU;d_NmMU-3`a_y-mLb(yWPXgfO66D7`} zKe^Ei(-u07d&u6FD-HE){NM%~Tu4ykbFB$t$;#5zjV_gFVnq;d_wSKD+@%t0yw5k7 zj*#~S??dD);$#Fcop)_x-8YD>yAk@Bz0Orgg8`cv2OTP}>6UbfI}zvoTG3)80n zuUVYsclJD^3X@HLBW%<-n3`HMLTpjdk1fz7lCJXIiJBa(-oqTEVVPW5%~SCeo30-h zU9zwrE)**PV_%N}daB?CN^B~Jr8L(NI|iHB!5kTA1b>YYht?)oWx&Xy7YFN;x0F<% zW7dh!%jQ~lt2b=4M49;Dq3f&dQ{Stiinyi7STjeB0-@R&-gdvC!ITRj;E67I9Lk_4 zJ)iR`k>dUS;Ji>;uZ5{4+=ey8W%bcW9Ub&PR$9om7Y(B+<}BLAwATK{hF$Z3ayA@u z7I^{)(y`a*75lz>+sZk;7AxJc{}bNv#vvUcI_>9_-XTY)bPX&O80`P)nW`6gGG0BCKDK8ch9{#a z+uk|nZN~1i*!{;9jCSN)>{=7z4;o5)jw8wu!_XX?7+yT@T>Zw@xloVBS0X0dH65ms zG7QF^bvdg!PViEH&~eBX7Eo`+ZQXc5>ysM>e2+ zPk#?jaJKS*ig$=1@BQ%1ix|lmxY81!38gg}i&Op}7w7Lvkely7hIRQR||g zDn}p?S8U!37;oyo8Irv0SsM+Gt)oPXw>-0gszKG>)y@MoG>O^NRXdNKYX^$i*7;9* zs;8ts>#{dlQ+?Ln1;2WU81`SYX-O*v-M6pdRoQ(0{$5(NDD=eKgHRuu2j)M5Ei@Uc z(bTY;K(=hAIQLP!@??2gxV{dE);h^N>M7Zs{#2rhlZXKc)z~Eg;jabgroETv?rwLJ znvgN~=3*zIiG@b2&NOyH>OMCqQNu~-&aRu(RYWemn&0N;pb9*(rm53V7$U& z)TtRSLGnCJG07a5rKXS&?&oeJf#BVBCO9|bmu7QaVMFt6sGN|uWEhLNlaTyrs7&L?4Ons~^2MiVjo!o@Fqo#$I!lWS zj_8?+cAuG~5ExEU?+U}d7Q<99#8M}OyoDCaq5#V@i$$5rd_f}cQR0!r=75OxwFGw#Naaqbo7=iS?s8I4kFB2apfHib0f z04-d9n=rcMNcCx(tqHR!RuL<+X8_LV;ofR)ZNjyF&g$gvNSOV*# zzQm7XtJl6r%@?l6n2nZQx|xr6)y3AfzN=|w8+Q(IOa!G*3sx^GrbJMj^ zO)61;zLF)UBXY*a2K?^ z+KutzN2JjE4tWSY6SuRrA}yS{jRxz`rgPk`Mrb)sWICJ7TPsHVOX`2utUpfDC_)a# zGbxh7@dgskw!$kSM*Y#KJDMV z`KG+b*?8}5B5h2>ViQxR7_jM=_Z!pu5U|?2n4j4xmwHmV0B_tA2Xc~@5m^r8B*lol z^G`H;&k~gi7ariH&ou+UMo>(|khrug1F*&d*a!d)G60XasGW3sP=hg+dPZUI-dT1E ze8aSlxsR_2U|zE@3VYKmOfrS;H@)8S2W zVaoFjjRN^xo0DadbVJsEkO>>?HXOt9(DWJoJO_MP{d$lu<}MU`xL(gVa)1!7uhEah zvPEi#a8mkFuxMd4{c@bb?8WHZi_h<8e6-CPWMC{a97iNOa}HU9dqwduuR0~XE=WM( z+r9v)*KKOI%(jEwIQW+ezuCrn`+)#G37aNuA6!7$^J@#Wh@W5;%Oe~)H&bGeqD!XI)Jrtq*oCg0IS8_+;Zbg` z*({hM+vlojVSraem(&3a+@FA3@)3C`vq>%5T&5aT?j>ggTfBR(hZ-w8j3u7i6g|y4 zXSyW2Rn7FbiO;cT1&37h-bC=|n4s->f1Em-qD#&fy;0Dbf+40q#8{=qDh|D|?LUxg z>6;kG!T4YVR&!)pyRYWPu&eK2@Sn$A0I6M1tv&d?Aa2r>Zl0yyNcCCT5ZHs?)3c*J zxzOy}0GhpoW===^eTBaQ;i41%zhvKDW6s=1eomnWF#v-)BYS+Zxfs|Z>OTAuaP2f zpPL@ZU%6-cJe!~UExs+-b{w83R=^GSK|i!7e5SnqGQ{Z4b$*UqaM}?mgUCJY_p{{> z6nsza!=Gy^K$f~mwrcP>Qx4yp`uOmvIa4z5SNsq7aD9>Bv>>>0qN-H&nj$-XxkwpHY-9;&DT`ICsoiF_%(KaaUsp`H zc;B|Ee}9Tgjku3U$xXwPaJ*;sM$p$<`Jh1EyG`4=|FXqyj}MEvx2s6Z8gZsyM0>gY zuw~<-`j3lZ6>nd6UL|jCRXV-rR3%y{e|cF|#kSgaSdT3Ou9Aa6GeUfwK!mx=#=z&# z!EL83gx`N^SEse2(R~Z<+((ocXZHE2~$0ttYPfOJEF-5(xE9U+~oK z4*q4h-v*n_=Et5lHyr4fzcXTc;^Q*RIJ<{$8>SKE&J!y)*kg$%Wn&fULdxl>$`C@* z7fsjFmQ~KnQrU50*V2t)F*q?O#504mzhZfhpr5va65_-4y3p1dI`gb3jCx9bEEVa$ zIsY_v^ z^96M+DqC?4PE~cHShU2^5Rwm%0adp$K#pM)`R$<>(=*2G+5U|#`5jrTmir5;Yq&ov zK~H60)(Z_g52jl;0(w&##k!q;(Is*60r=hw)~_f{4JA!q1{gf~VP^a`R9ky&Lqt`g z(eD)QM&Y@_p4I9V>Xqs8*_Lt>CK5d+D+fl&cCKSDIQam2SiMd zjZ0OQclEok(0eB=Ycbn>+UwXQdVJoe-uiR2ZO<>I{Yu8CZpo`o88_0g0_}2CjNL!- zqFyP=Ms;Ot7s}hVtpsEFRe4^Qv(=-erM2&jPhB=Dy85(eiF~A=R87OvGb097JO90G z4*j?f{Yb{eWHbYUnYFTuw~{)Huh>!hu6nX)eCm??mgwsIQu@v8xy&&{PFLbPcB}2p z)PP&+=!?lkj7vRUPtzF@&+iU@J~LtJNKoh7uCeR7I)qLd0S3FSf6VJDdvs|I|M1Vx z)gf}Hb6O#{IPS)a5LYEMBVJU;Ij^($@4(Iv{j_9Czsu;zrd1k$sbMcnH>Q0H;W*y@ zeP!DB-<8ew-Xyl4J$UojKr6W8FYI@yZ9TD<&_n{Ho zyM-&}+$vm#s_y#HYJ4vm+^O+hs!|h6yH@ADH$Ly<@y=#F_IV+W;$lPIsQb-#q4>{Y z$S~Jms=+bjjdUe-2ct4kkzDT?+rTl*P9&Q#2;&qozVgZq_c>JHJro5lPjlX^U;X6p%1%(|j9ytI8%BtIeSK z_!%@`c5*TXD6It?OXdk%rVK{FNucz$vhZ4Y-zPHye3Rf8XW)!{D45y8CCNdv|b4I&1{*TTOQm=2+XoTY7&+}2orQH4*KC4V<eKh~(QlKUDuDJoqJHMZYrrP`AbVrZcz4YFpn zP$0xSbR#WvI}X6K<^^u@gGELhLH*fZjcdlIX(>t z2pHvHeiDyVBjMe=)ps-I_O64?EJU$1}GWuCsOtE;Q4tGlbK>(d806FHxv zdxs-4_Ua^TvdGlU3-v7nYi3P8vGavd%w9PplkfZbOmJEJD_Lu5YaO+ zRx=Bpb5xVOf}H_TBiVy!R{nDk^zr3YNpvwz^LP}%>u)9Fi*&PWXu1c3>d|^R%;Ko+ zdYShd#27`)_Y($Ez*fgLa{z{($i~!3R5Fgv7jv6l&x{#OF@-INu0QiI-l$so54Bf$ zGshYqG_A3H6mDau_Y@z$P0(R6KYaZa1cX4P*mtlHsL21eWPKUQ4x@pQmR!Yp zAYF5XKa_Lg0BGl?vhCS2)uG?UG+LzdLi$*LtToU!gEb+Ntp_X+cN4@gO$C?%b)xtU zl*RVPA}tYe`SWQmLg6kPw0asG^!CpihuW``ylpw0%+A|+DQmx?Tu+cIe>|-#>RU!E z4fzQW%Z6}%rW2Bm->o70l4jJ-|C`MqYAKdy(w(*!B8uVtQhjRaSUI}dn|TuNv@0X2 zm!hdw^P}Wdv)2SI1_ydUuzuryE6Sn)C#e>D1%->}^{H7^Yyy_1D_olXShw;Dm!|9R zue7|v#dLH9fBz`nKm6Pbo!Mj}o%{E^tUrz}SSkhhrdsW0!<)+u%aZo{<ivtx;}Z^`k<;jn*vY!5sfS+TWIH*Dui%OKYzWeZ(e^Qz@238!JK;Oe?p) z4f)cyT5RJEo!COL1r<);I-Iq@o%}+VGb> zO9!9D_NQj)2(%cMc{gLBi&MMAZv#Jc7ayR*z4$riH}Gdk;OAjSZx;R+6j(+eotz0k zyD+5H`ehf`&7ki|;f77Pc^l#)Ei1*N+Ekk}wM6{xd>K62=SPX(l6Rp0sl4VtzBKPo z3GyymFZrd zUgkR4vr@~h=>J+Zi7D(WUaHIbzq-=`#hn~|F?Me;54UjNF@i?*_jMn$~Fvd8!%|1Z-ppvx+Ue>M*O zTZ5K^KsS_BXf1D~Hnlvjt>-}h(IUt*h%z2sZSP8~#>w%!prBVIyzqeOFNwnn`u{9# zQ?mc0Geq{E@aM(=ls`9(!|3;Sm;IYk}iB}^n z!)Sc&Vo_i^1PQc(h(zX99U6{W_+>_ZzugXyf38U7l@H%Oz-uSl}9Y|Ev|6_b-M_SW~r12IZH~u9>W?%Az$V;Rf;gR>Ih3QyrVO zJVN3bOoqH08x6vt;YXH?QwESK}d-(TKbMPNIFP7<7 zcDYVVJ9$Q0_}7AW2YH}!&B`jPWvCts3VDCrY?IKW6Y_eJL-RwVWqV@DeLuN#WBBGg zwa{zahh~P;Sx%8(G1v2+`$2ey@1CDuW@)vo=6c6cSmB|LLOm}5Aw)ir(de0fCKxYK zH7LzL#cHU&S`9i?waH|tI3K|GjNM|G`*|E7cH{^8^;$TZS~sFIUq;l-68rGsQM_Uz z>}j4fpWi@3okP%tIKMqWf-4HIS9lL&3<0kXahyK;XXEtY!ETB~IT(m9DQ1j|*5=hw zNPKxiN5Gfyxv})F#!GEtlcCtG>J0xH4}A&UmL!C5ud}cw9oAQz4}DF zQcQdUdi*pQoJ=zmKUImJ=CH;n z@YB5%|8M;C0Mg4_{%r|AJw=Rh3@pX@Zk=8O>UTepu++*=tE{5I-Z*>)!cFt(Tt}w@ zKTVK4G=BQ3*wNnARFS{Ei~L*VP5r)yyNGG?$A*Z|ev#DiZ)oVS2J_mW5S33)e)qLwpLPWn~zhkCOo_F?AcDd-g{ zW@*~bQ*xZ-$EaP4Q=rGkxah0qS9#B#%AqYC`Wn`$MS!i#*%&*oXBC@e{FCbG8jH=p ze?%z0EmXXMii<_t>gEpx0qn8A@lkBQ*~x=3v@X||f9A|3JrLecUIP8+t`>tVsB(*4 z)7;e5855k9??uOL1nz9a2>X0qJb^qHoeD_wlSiFYoAC+cVVZAXH0OIASBX4$RDOPzi5x^XsTX0dly(YyYn@~i#* zp0xYa4ny_dRc}`5Nc;$IWyfRT!atN1 zm&hokTkB6XbLdsx7KfE~h2M+d*0mSe(AE6D%6oUbPv4tGwD=9}4;AHMq$NW=xrpf2 z%0EGWg)W9};Z@dOw!iDkG2V|-exq|~{>2xOf7#cjD<Dji=+-M3E3S6LB1NPK>1%N(mliJ0W$fx;eK(96zdVbjHwH zT@H>I^Nx5qmioyZ-y#N|n9_sY$VHq3$A{;2?u)){52o(C{{WrgDEHUwUD$XduMUix z_amQ#B!pWv+Wc7mll@+AuNib{YQ7ENosqQa8ky9Gn`(p!Jo(8XBJ(mutt84@LYRQF zUPJs#QSctKuG6&f?NRWgR$b;ckxnT9%?Lt^yyOCH6&p97R*4f^$uUM<@;_HWz zmLV>4=LOs1JffIQPV+mwU%nLoF7w_7c}DW6?l$#QwxcUQ*UGo^8bt#*favwLYLU7s zKi&kmi`VOD`OWBmFy?*6X0d|!N82XqgA*lAeZ?&hoI~ZyTpHlVC%{sSoci=t3x|8l zYn*UnBoLLUTS&pF!=q`OK|V`H_2O%P@17-=npQ=Yph61x!RXwM9`8C!88R_!)uw2YN_+-qN??}==ydhE>6kFxTniFSsBIBUHkH6WjxU`9_}*ktBe}1T{G^j zjC)$f6I{mr${1NMV;^PQn2i4TwDO6$Ce@T_^!ns+Zhk_(5?Ve_Mz^LmwI+1(kQHDXHZB2qh| zjh%}D8$SSWW$}H_5eFX#)3T+((2X3cJ+i+)848_nJhS%=fqqlmNA>4(^jmVG;O+@# zBVIm-^7GKDnt1C^TpOB@Jpw1r5sY<@h++*&}{9D<$k*0TjOeBt@@BhVb+{;*AKDO}tf< z&nDIKLrHb?7pQj5GyyfhiU_G=%T1HGzLRbW&pM7)G8tyVhHweKo^>R^ zzOI-OX>F|-8=m!Yea$zQPYKUDv^>V+5wT&fADP)^6Q6iBFY;hIy3cV|_CRtU-nDG3 z=JiW{6$#H8Q$8*;VZFi$9+Mbgv>KPHn4f&9liqItlft?;*x&Mxg)5_NoUQR!(D55q zR^qG$_guq6i7jzbfvS!`Udimkl~C`@M{P%FfNexqntJ5-hY4 zT!Ud8GTNRIt~}9QiZy*lvU*fo51mc4|3iAq#Br&GGU9rb0rj@?LW*Q_m9K}S_t7H` z4`gp}o3|StoMthkz~g8ik0AjbgMBV2wy|W~Zqq*qxHjQ%C#NFBE z_?RQfo5_miAl+^ewC0jb`>)tvsuBE5zqw~2P7yMpIWO^#QD_9$bUyQP|8^?i4#!9( zU*_$?T|$wEcM{y1(fEXW`VP+Jf^!w$?azr44ws#)H^u3*GNcyfFLc5|m}|1HS9GS| zL6ozqsngB#5h`wP?zSGDsEa$PUq*C_maJ5yhM;w@|2zTo5RE&FfI8M#y)kw>UuHLpO;49R)*CP4g>R$MnF@-BodVkwlSDR0mINF|f)q$EK-TC}X zL4-o@{=PrI@0(v8sRYw(%DtvqzV386PCal8Y(-jXzPDd}pW>r1Dvu)g;H`pyzn{{y z2Ec>&x%}(+@KwG7Ru0h&FAUb*-j^Bi0WaUHgcja&R03MRd1hd}_R*(>5^g+gfM09g zbNssGG5tD?@>u|_$Dxa#Hy21ZzDuHU=`8ywOB}Xg4qe>a=THnBIMEI_yC3S|TrysvBVLL#~7$VD9aU%zbHrxvyZERABB%%f}ACRi_vE`Zb~)eZKmngs(L| zHHU46VW9XjKNpk2K>tNjMOwb1pyRcd9n?Pn)j_%+NH)84_4g|N;p|yPFoC@L@n4RA zZhoZ5KayWeKV2o<%v>q|uv-2bxnQKkeol&nh822afw>f2W>DCITj}i$ArWry%NJw& zbm13{Fw|emepBR^e^So1;-lq`UnV~KU-@M%nJIs_%KQ9MEdOW98^2(C=R|O(D1o2c zufX36@`t;gW^!`)94UA{{}kbk177~zF8m{JP1L^~`R6EOz&|@EYwZU3=lc;IzHrp6 ztf|@S__Swt{^`jS;Dloq@l?V;)vmrLPAl@yD+PKzzN{Pn6zAVF;oPoMux(R%?;q!; z;N3L^5?1EPF`vZ==AeUqNQ}$vrn+W*`9d%dIgLDcQ$-^T;; zxcPU#kHw;^y!+(p2hsKjXp1b}=ii$hoF7gFPWSou!EOHg{QG-XZZ75KsOrM}+xpQ4 z=id_fB>p=6UvB<=^YH&M|E^SGxB2%WSMQ<1x1Xr?)ttwImV0BVyHMbN&A)5+S%3bW zbW_*)cg_A<^1AugE$YAa-jahJn}2hW_2=K6Z*cSPUrN&&zz&9y*6#T4sQ_JAr{NU% z@1_q6vuPmzHUB=Z5;p&;1eqt0*~y=iizWW+{F`0k`1L5I?Y#=>mPur_usnm(IW9%ltvyb?P$z>S-LuYkzl~vn5a+=j;fi|J(d~ z#T$-)2H>tF;GYf7zm<6RVDaVaZ|l#$4cq@;=HGMBh)eagp|k;>KlQ{Szlarm{(sN$ z%iF?j!~7yEEXr@E@;<*5%MYP^F#kFR&lDx_@Vz!P|8C>py>UX3e~R#4dw0G0cQ=>+ zZt~Aj#(;nBQ`Z0E{CnAl|6~5GIiSn@dyuPd58>y_#U~2%+MP2r$^& zNL1B^(1R3=r5_dAvGg;djCby9jvIR3t6#TpIS%GqPaErjZy2QJWt`k{imN$om3Imn z4M#(^jeM~9T!vc9ydSV9iKN=JeeU(q%84DWUOF2;d+Z2lW!}oMn!8qcU#n8)fx6V1 z;Jney2W#29EZ<2ARJe~X2V2f^bokZrem~9mFrb2NYhuf~{X6viz5aNyTb7f^A$*SG zehm14#qRm5orV-kwc^wHc$XoT!U%g$GR4y6)y?zB8g9Cuq|&CoIZ92Pr>4yJu1DFW z%2aD>esJ=~jl<1y=(YP=vw-Kns(vORtSSm{) z_2U0@-QM?ZDLuj|P}7brd4fHNX=Q_FwEsSu2Sb#cH5%e;w39mfb*U^_;@f5q2D zM(Dx%roaf3d`9?aj8kI%4H_F_1aR~FeGkxb`cU_NANDr={`C6&zRFv6ZP4$-u&uD2 zgVKIyp+LXq$W-We?D0xkwQQe4pSO9ppiFk@a}Lo;`ux{~yuW~o>+|ghN}lufi0jV_ zkKJH@p7$30`EA$!eCc5N^JBk1xxdYoA5*KjG`lo>8Fqt8chdEX1|%nby#!>uA8F!h=D$VpXR zqhGBp9U1ht-RW-`mGJ-R)a>TC?Vy}Z3yAySAmSbLra#9O_6}KpPgVXV@R?JZKcxI& z@{6m2O?A%0BQ57Ce;w`Yl7I0r8qx5u zy6TG*GhQ*+bc`p5eMr99$K>E+sy@QQnyMT4oq|_kjbP)CbH#?{yg1y%CTPgJq|Hfy zP5!9gI#hS{?`~?14t(D$uEo8LSPheS<1)d>)KxQjd2WFN89NSB%y>M^WhMw=3|g?)JF0j1x%!P-S5%a}63ra3M*D&_uY{YoCdUz(>Rq$WZ0rjR zRAXf;z0W@EgE()qHdl~E`%UH>hWSE!+>=!O_*hxzxYRoDS3Bxz4egc{4DIR+oSpEp#h_$nFuoj)w8*m!uu5kq1)Hdx2-`9C0g1B6g@^|K`Vz&u#2tH&yJ-#DZ&X6BoB`JaJe1IV-&6AIcHU z0^PVkL+r$p>ryWjFN_uE-v=Gub181~O;^01f8FrT#|rZOK9~O{<(EF%HUABM{%!pH zI-waA@{Mcg+$bY0hCpCsA+K<-5lOY?R~6@jNXu;C=Vm~-BK06^m0Gul58S<-(f|ng zE3J&Qysa|YNa#}L%OffC^J|)-phG@IEi+yI736P!-OX2DsB8pKUCKVGvU4d*r{#~7 z;A)vq#=QKfvIna&vYP8s<|>s*`(?JaGXEeW*#Cx)+8Cj3VdGPe#sG#@@U>(f)+vr(=NP_^A}$ZOV2b z@Q}9@o=7H|e2rpX<|zw16jFKZM{f*KWjeu&*O}>)_~>$f*QHMj(i^&_r>C#Bh@d|< zv_492bU-KZ()lM{#<|Tc&{FPU?ga)IU1RElDD+tbpu2Jdd3#w%3 zk-P|r!cDn5LC<@NC>C#W%HpTkA&IlIvMl2=|ELyyyhT>pLCWzxj*})eVnm0gztm6O z*e!nOtV6lzYeuVF=R5{C%$;v*lKCACWB%#OL4DuU;`-69`Ir4Vl0DJ2>Ak~g(;j@& zl47&GOBTcC^8IW4p%)EQql52_#KS5pr=!fjT)wB}Y7hxy>4)wVsLY_F*LHT&pcvN0 z`Q6Ci^z}$qa|V<=UA6Accm63PNl{Ds`j@TGD`zroA7avu8Zx_Fv;?HsMQx(6Fi{D7`N4t0%)emkf zk+CehG3h)_J!mCw4$hfDiTv|#^}!0QRKDgefCyTotTkaZk%ucYBcG*!JKf$@VEt1< z`SY(&bKxp;CA;{{dn=>K&)3L(Q!Mjn1>ohEeb|rnX*5KIhP~d{s#<;N)tc}5UGxDw zcZoJQ4T+MZKR!ip|5N?oe+s1jC{o2IKcW&pmHf0N)%(gU&w}McN`+*&Nv;8%vAW}d zffqS5Dc$JMxvgpuFKy%P=i58>u#_g3l1eIrG8!wGpP{49v?^Q#0}TmaIjlA0*gkhJ zF%WNBl=5imV+&j74E^%J`iu%lL)oMLQrw;$WUTi{s zvQQE&90=@(RN+PfvEnYP&?U}`?}Ma+&5O z4v(~aL~1U=KXXn3)nNYkt1@4^(3kgKg2ApSv~Zy!uy+wN&_Sw4l}G)`cT(l!Rrw-U z`7s91Rqis)izih=J*>uUpL@-6j@(5#d%2u05!z2gz$o`rmpj}fBLvlPk?PQM+Hn2q zLnyhmE9o*)a%(bn$Gk)zaVxu(G|!h`$3%)dag|;_jJRygag4f=?Y2O~*N(U7f2(Gk zktx-G8R4*>Dbi++*-5mEeuvo`4(XZm2zMMjxgt@?g(|yAwUNCeckM7OL)iH0|D%cB zopiFH&A4?am|Bd|0A~cmdn4v=Qjob1hLmv}c{^>c6;RUBQ_a&z zNn?8bsIIzUPDqMWYG5rUMSszBr3OH#VP%i_Ey;}B3+j%gtJLOou&d;iCcm-y{*cv= zk7VWaCX134%9&k3rq`6Q$R90xy}q11YUgloS|WhHDR#+xa0!K(FZQB{e?NMefpO(u zW%mJ7YS~@;dd#sbe3!VBS%GRR>zOzl3x5b(bP;!OunvaPvDkJ*OD z&szwOF-9B2h1j}Ni%n1VkOj8{1${fPlUpCq(;EWhdj~6_PtCVzDnHU9L&o*1!>!Zbg}9LHZhN+>2tU}AhneP@qW6KR2R4#qGfWd# zasLtK_7%aOm2Q#}zl_{(GyBy-XW5;NN{_8;6)=K5VgOyo{ryEvzS`x0uWA-1Mj#o( zO_F8acO96MeianD-PPhhe{0?oe7gvd7$8avbm}1`@m!_l zNS!;%&H{E7>mqaxzku!D%(=BHb|cOU*cs&@V4$D6JE^7F5z*e3#Oa2)orCcn8%42A zlIcY>`GP-&UMLI<-cwlMj~2;~V6^;)o{(FY;%FIFpZ@pDVZ z!CodYA>nz|6?RJ#Q<5>YQ^MylU5^=6ptf~^y)PH=kK@E+<{MEG8;f|&4}hFlDz6Hy z{=zu=r^Qf@fZn6_=36YvjW^-dWqf|UettbM8?5&Va2FA&!c}TiEcJ+3#STqMYtqfE zLWvm!7>)TQZZdcEmt5`8rabrQ8o!(gsA&2Lt<^fl)?n%UR)29Ji7c!QfCX#EXN&MxCmY0=_}4IB#=*KMJ$5SMfXe=kWie>d1E18TR@em- zB(8K75^we~0LYyJf-=vtZWqLewf@lh9^vM5B#f9fjsjs{eAaSGnrB0$ll^b*^DuX} zzv}p-n>-6Hix;;Ai%QPG;MRB_({;kmHMZ=T94C8EZl&9P)3(+D$c@sMv2wqb3-Y{h zFIPU_XjI7s54+bkgtg_I?pZT7lo-gd*ff%3qo0wA6K*=60LO~L_7#lay6aop2dE4- zRB)hHRM1?zaQc(Ld$o2DjF_k@1p}SPDaHHoPR)7G=)DZYBH7L0CiIs}_YYK_En9uO zBhN!Y)JF!;>G}Ysi{b&C<-r3uh5j^VqMvS1KgkDC^VeWv1TYX)J_wq*f%0wB3#g}W zoB>Mi+Cr`YXwF0Do_o1V`U$~FXNq}{vM$?}lv(%}b z?1*}o^!tI$&;^L;=1Ulf9m&Zkn`QAM@Ewz=k7N&aWQvVO%^ReKQLD)4)VzPsWpuY` z0A~`zNs5?!^A6Oq15QR6uE@)c$4t(nonvwD=&*(*XhnBzmI_#3vnYJSvjX93x9QMM zAu8=?p2ojriG*g5=63+nojatB_hfWmvypKJk0<%6{I#o;nYvlnnU@GRoav<7z`QK- zJk@ICy0nJH)-3a@otHmY8`liCnX4#@5wR%1Om+6hV!b|Pzun6Was$Szj`}pE;qkt-ykggRwKwSF7 z+@;V8U7ltA@KM@?VT!V~%UtF2&TG{?{8fApL|bl}vSvnBkk9+{cP#(8d7E-uC3f?p zf{Pz0oyK>(s7QJJNgFjJrH{(wXzp;O6#VCoD#ZuF?m(8cs>g3(@NR6$c9W$LRxbV7ZJGf8lKA$O zu78xj&_CVATSL&7jJIig|9^}(W&dB}ZH7Rk{{N4+c~B`g0AO=Q31X(-zefh+ZT2(k zjW=QSe;se>JG8*#mFT63Fq~uRvk^4j%lK?PesbgQ(DBjK<>Qer|7H9gN?LK;b{n5t zYkV^iTRnIR@%W~)26f(s;3@y&lKk)fkNm#=GUBTVjR$GB_S*g@79XQi|1wB!~WTp>h#?WL)X1NQX6*Cf1z5_IUi)(af~U zDRrsg%#o&?O{;Ko+jZqXbatt`LGUaMr*3U}vQs7jrAs{U<2@HD%tc6>vok#t?AQHg zFY15eDU4HWFaFm7f14o+XVZrcji&a;b5E!{0-%LD?CkcgQQd7GT8*)bIF-EnALS)5Zj zda}+9dGEqmQc2={*c1x-mxL)7bSva=@)arCHO%wFkh3(sOBi}!#s32m^*dd# z^8R%7#v(Djzswt-VLO+=;nCEeHNOQ7#5$({FVd1VhVFO&2#$Prrm8u*^=oWqTaxEK z;p}7RX_bq#=q>Zy;p8c1L;#&Zaql4Vs^ZT<0-sK|+4!3EQWyLgx~1V@eyFCr%@15& z3g(BYnjcQg!F_GXi+o|OsbY-!^*}a&R}DwKS|3V{(1o~P_NWRw zPI9j4>nOn!Q$EPj6wPOfk8+lop009%<6&QZA$r~|#b2VUG+d9Gmih_*EqmSEgGD7) zUEeT{CW2^w3Fg}~3+bDcrjJzmX&;eJCo=Yaq8JLj?j#@Z#SJ}B?&kp|Os;eIpSSPl zw3CsCyj?$ku8@D(9)AAI+Y9+M^?G--(yq*)r&HUBR~RyjyNt&c%&wDbMuey1MMwE2 zp?_dmd3yPE(Xz#QsZ{jK40;L?)Lt0JnL!amV*4|N^}?Xz6~4b1UI9Aow-&=^D?M2Z zZ_gZ-#~F>&qdC+fe|~Z?e73^w0#>c+KZ^3cL9c}cFF(APzfobWqD()^4Elq@mBsLH zMf6ZHe6rxLW`r)iF?<>#C0|txKMcR-D~sWMls{AqAFuqYS%LcPowXa`<=R{-IZw6m za~$h881OeByrJU2-cSr*t?)&~@Bs=>E{6A1cziMZ zD}`%|;UNkSFNQZ&xT+Z5Na4z2`1j(EP%(U}!mEq?bfxi6F?_MYi;LkY3ePKss}+8- z7(Pqkdy3(c6`olP_f@!|7~Wdpi;Ce&g(nxoy%io`4F9|<;o4&OVTFem!=ETzRSbWs zaAh$(QQ;8b((%#S$-Z;1;Z%jwyZ9j7QxM!E!D=ouXb!Q_@L0TH7WGA!zwGHDrTL#e zW(Vc(q=N4Gd7-W|*?DPrx}3$6C&r*=X3F_96H&ds|H6*rnwXZArPo={4Jpx|GQAc8 zc78$M%Jh1=Tlns7;TyVzuehhGOZl_ArSJD(*ZL3XmcCcFa8yP}UYxzjG{KtIKHUIA2 z(zoiCzOGySBe&~{&j+RHjvuClr}uQSw(t7<@NQ{-_~Dgq^*_)p{M&Bf8s@oDemV2E zUBe@~Kogw{0rUit?CvY*A3pL-S9oG3p|~t ze~ut19Ax~WwNhQ06U~urXhhyFmpkKmUHVIp_C7e91z~1njwDu&tR_ax^V(uA%S{p} zyj>>Iqf<@o%SO}VCGl4Liu{?8|5CB$rO|NRVpMiko;O(0YbKF)iv#IpFSGkOV|hNz zwpYUD2Z(L{SZ4QUQagm&_3n$Fe29&{Ul}ev{owF(x9vEIPdsVrP;iwu(!gH(9{Vl9 z#VkmSULLHsv3CgB>SggxAlVsZr#r+A(~tNG&(fPmgTN*~iP_uj%MkNxAHOXfeh+}( zH0lh+$2i=!5N-o~eci`T87|$?@Y60+0l(Yv4uxaK_wpzC`az^|T{)W%;ifBXoR0ho zWlIftEa6Bie*ikrNnTmO>B{bp&e$Q8=+{1mhi*iN(}LK0(zh-bWY)`D+ER0|5B9ZsSLk*X%8Z;cvC3d|TSW7!~X~$qkgV{S$X7_k_UJv2`nTV;jq1_8DRN;kY*)M^h>@OwI<$V z?@0VUNWI@L`>dZT$D;XZqz3wg8Cu#VmG{)G?gCH!S^Tn2*gKlSi_|ArGn`{x(&inB z=<&}+kJ0I|`M&w>)bfx!EM`P=F3aNuWVfpeb69skk$zff+76BP+Ml_>j^PR0;Qlyf z7k@xtJH+c-$!jV?iA_u@G*H-HyQ+8I)gZ+<068PytzYmO!I03x;VKEOqd39KmM zhmZJxp;_6C7#I|^*ZB|rv*greyCSBB6vUK3+<2&;J%sHXk#2ufCAjU=|`+aG9{->>h8^HG0Exm2}K+FjA=MoGaCr|+F5+Bf~ zZF*&w__paYyM%53OPhETywr7yIcNT$A zOv(D=bB+J$mv-&31BrKGl3dck*j_M>0fuE`<5G$GgN!rbzl~o^@XDim)*#suRU6|l z_%>bmETA{6^EG?en70)TH$DoiQ{QsO;;-cwag6K66|dvz{rbQxZZL))eJ`R0@78ND z$W38h=(gXb4o#MfPv0s_6HQi45(>PjXL^X<^O$DgnH69tA0*nU?_82v2w^qvU;+^z zh*d^q`cdr|%ZBSha>@qI^?$PEP5^MersSaB(Pl;wAFw)Edle=#zEQ>0tIB}1SLBBU zp<1qrY??Mh57`6A=2>*Ma~JJt2X;BW{4_sUom7zgrDtMOY}kD&w!iM^ffKjH{0$it zU>~5XDY7fLc7X0@6nyd@kK@B4pssbYf7?=}9t$_i;ZWCBg`0OKF25)L6vhiQi)8;w zB{srGe8qS#WBrl)H9(wc#qTfz=u(N>uT5X4et1C~XS(Zyrdiz5r85@eHR}T6k-JzV zsDC2auPI^G+=ZHL4~1G?-j3a?arB{#H|;9s^98l&$G~znHq;s_^lS6As+)`#zT$XD z%rnrKqh%;a=H91H1i?^h^iI5w3k|w~ptnw!>2{B@=r6)|ZSXAvRjE7P?0<6ME&B-& zQVZ4Ln^6};`jAC|6N;h~kQ}j2{xg;s-=hEoZ~wrhB7(b{Ug`45Cf-@UR>}e z5bI$XSCTQ0gI?R0bn{pLKaaBJ0h5%@0{*&fbr-6 zH^?_hPq$&lyH~Eb>p!40Py`P8a&RQO3JH|eaL>s&3v6#^nKS2nBJ6BvJCO9v)d&0I z$Kf|JeTM;;v32^6hXgNulRMknG@X*B7j6Aw;~$npli!vlKPgMDC>!-kqHif4u713X zIQyC0N>~3N)ju?-|L#9-xc+eSQgeB;nY z(+*|ftWZwQcOcs-JA<}na3h;{R|(oaz5TZ9JZG?@;gIxAdUL$-lX8xnH(nB-XjwF} zr5C1ent^1pC|<SRPx;4a1|o0o1gB1=evapG4_eEEPFFcT zoJ~r%{D$o4Qe@3vxh;Sbep7b8z2cn0rA?5agqM&gE zmANO6KKz5a#@*gjyIhNw#*foRJC#(XujRe3#L&idv@DdUNhdY0NnqTkZo|aRN)*no z($7?JJr5JKZQGKA$w}M&d6TTX=MwODI&BR4a{S%o>?ZPToOmOBtASn`Uznz|RY_tt zBY7(Dq?U2(`x(7q!Z__*O!#hB0SyYxIZe1A(AI4yT?|Vb40GBuj=tx?S2X#=YUrDH z`Ev46Q{;zt?{xfN%W;#|MWxlv)idT%(1!8l!CZZT8^&ifuGE7;iBluTrWX58*&5-h z(npTk_@%^=>6=_b!%a^KhN+{t3i>Mn{2_Db&-vVK^(#kodPh0j79J32AG; zwK&|gE1=Rz*J|P5yv#7Xz(mT=TIQiVdrN+Ox;E=~M&fyE3OZ0P8>W%$g%10n!oIZ0 z-rs+(k()mWSVB(}FZ8IKu{rXGoAx0?&;{Y9MpeBd|2Wzl4D|dmg1S|TFJQel!ppDe zM_a_H>1XEg<2A8h*IoF*q4?wxU$t*m7|+RtyzhZ`^h@hyDOrhAQ4C!uA2ALI&)Rz` z7plDPk2T4#Bw9n(%eM6?hFQ!#y#)Oa(3?H8)!9m>Ky^6*8{+uA;uIME#*UPxC*E^1{}GPJfsDk=V)I zjz|R1Lja;;u(8tVxthPdSN>3hY!f<(0_X6NTufg+%AfA&v~>Z2de_q2}eDhXjFmScT*$gVs`45&IR~xd`jdOp;?@Pdn=hQ%Sq3Bb49e~ zju4P9ZS}4=K+hjLU(vD{WE2(dQ#K+5IdjYD z(&g24&1>S3dhM8|ZT+E78iLVG%ex@R`%gj^dw}dd=XIJZ@)PxAN)qJ{Nka$PTT(WS8~ZOr$*CHm}lekDcCy4NDle+47SVPfn|3mc4)^R#H_6>)Ts-17H~L zp_-Q9Fac+8%}1$R_O(~tpPmUB_I|YWr=HR96HAgmZF%{xBR?!^m<%y)Q_6=E8(!7*ACAHz(7IBA@bB)2!g5YmuS$|XmtA&n zwC8!u8JRKb=!Y{M#f{LMj9j*py*`k+x?B%2h-oUF2Y!#dyvWcVPF{_WAD8+#k{t&? zL|tTSra5Vcppkn9RGnt{BBw36dsQdeMU$Nb!MIe?uc6%;i} zwVdc``Cuzw1^3PdaQg$nI>-3(xkJ@7akOK{W-Za=`)2r7;5D}rS(pDcQL?vkd@o%< zZd$6`GM}uIh~f6{%ZdJS8#AJ#xl?p3L?F{8P+^bn04XsoAoV-R}# z`$T9)hIZ%?QpS0*?yR?^TtQ$aPLwiYPnuAYlclDH>!@1nm%oalPOfEZUAsTs66!`s zFHmpt_EE=-V@?eUAFp`z`|wcLT5+Z(~#6(>rx+lvIyJkkN`E7yps= zXC9SxW^sOEUf_mmI~RDh#)z*@Us_(*{B_)`OW`T1(;LTCC7Ag=y>OT6?3_@6(*A0G zp;4iMYU$59q?;)+vDEN5w~Y{J=7}kq8g9}!|2Vk|`b6Zo)N0=T$P8?7%JgBGZCIs# z$uqbo@(S(;@oVeS69$5D;<9n6*T$t5q~5Mit!o>j-HT9i-IkYM&cj0st>R(WAtFl$ z-E~(CO6>n)>WfJF@^bHwcI7+1ZzO#gHw+IQ+}u$g9($-6>5gV%jwRna=`*{;c z5NNul2MPYZC6jzCwOe(3Y<=qWaj7;g3AOi~!ui}nWG2zS9+&!YTxvCLBT`>jZ+z}O zNpI61A5wY2#arML9e$3-|$xZ)4=dvZQ+(m!i`Z~R!F9y?rOYO_f5`Q`C`>CMc- z(-vM&QYW%{{?KtX-zRt~rHiLJgI}WGH2*8nm(!18|2lu?5#GZ<&oQIf3U4E>DpS|! zpixT$N<0vi)E_wxT50mdw%oSt z(XgaorGCbVk<=`Eb_(&ajhM!J?J&0#)57D2g$;03xLI0$ZO6ifaI^L$C3LotOo3C@ z-~q!q5|}8}1JSXF9K4dV^PMpjpRD5YdoeEaph$~;3)__oLJ9_3=E;d64Ih?199}$R zX!FbP;vrR{`{qEmS~SkwJyc@PsZTB%HLhl5qD3y4LSr4Wn^6Pp-+;PS8}g4SR(U(t zS>|T#W=68QFobwGWKgg^lj}5FoC&SAl&|*=E#+A!r(V{oWgD$p@M*Zr`%^>3-%1e96&lJ+P~m+v!h^sG)WKJ7?RTO!;jZ~StSD9(GLT*&%s^-K$(MM+t!iZNyfdvDL$L}ZyU z4uH7PxQ8qe_Ct9%J#B*dfX_B#M$J64KMCU)ixnf5*7Lag_;HvkJC5p!FJp0(ddlm# ze`EGGo%_(=0s!?%x!SxTf0em;_{KAdl)^QBgwBl2%`9@)`}#qbtb6D6r@wtpS)@e{ zzGA5#k9O6>@Pl#>F%iPYR7dr8^!TG=nqzdu@Qtz_Vyvnd(*(zM;ih#$9(1`};V@Vh z%RE-S7yx*6i_E1Ha9^AEwqRGgP)4s}8@@WsI-iCFDK}0;#QAS1hnqUp0_tI#hs${6 z6)vN^zObD~mV5z5l7`HFhKU$BXTrb;IQ zNe_z+7v@6)Nb(|e=y_&s`|MSO+%`UV*@X# zI(+7cWo|P^o3Ye8b85-rt=xRGkbOyvy+=UGu$I0IQO!u|Q!a_esM>Tsj{P&0Kz)BkWx`*QqJ_fVMpe1)GoqD)RKqphD* zM)6`9-FOMXp8P~J^$a*0(ON zh;960bmLd>+d|n_!qd&aL)qf!u$Q!Q3Wn>+_Z5fhO}j%gYjh+#%<<#D`UmrkF{66S zv5|L7vMW87z;b@sLtNRrx|F3@DYp%xxFh796pUnlaZEBLDAR>W46e80x}eCJ#k#hq zuKWZOW5|j~HcU7hgG}_>mH^9->C)Sr|K4He05Ab7opPbs&e@3R>1iQ)^v2&*5T)#5tIVrKRAMnmVTE#3Mll?wtY+b zN6&h?{yDGVzxU5@!#>`=vT@@WzF=`=Uy{0IO;E z3o^4N+S;ve8>j7NrU1iOA4O`ucK&FzhFRrpOqq0aoAmgq#!ryKA&wO}-g{k1b6T;P zVR~lUMyK809Hw8#8+}AZn%vj1K+*i?j|ZxyiG#2TP?k)uoi-_<^qU1rUkb0;z%(CU z=0Ql~xiCIWH%aeZZ8AVLt#CE{P2Zb4+W*nP2zpsCwxv`F8`v6kwe zOmUv)2)y3QgYNVRGBfDCJ9a4$_|*jk0&h=SAn;ZuH`b%CoOn9=K1`ASLf=#7b*1lL zW(D+hYU$_RV@A#r^QzHoVnW}2BiU9*--Q)EeRJCT4(0)Gv#U2qUmLq3;df5>wP4R; zTS$q@_DiJ)XrGQll8VdDjHb)0c~J|MH?@q-vfZY#jQ0Knh79?4jSKvBb%pEl1(;%i zQhutYgy8%^{W5LthWf?vrBI3PYlCAOeedtS-6?AR00)Y37|FgR*nNor%aZ;yfA@vA zD=NH4U$X^R(`bm19BtAV-Ly;COU|Prh& zVyj~1Sn0WnXHuB$3pcQKBp^aOWBn6uN;}8`;|qQkz@JCcPpWS3HRFc(*;?+~U~p_- zoL|)78?cyEZrWG|{TiA*-y1#dPrro_lnu^97=H9#vA=YFoWA2fM!tr5!0)J?T#*=HRW<(91H7)? zhBBeXpR{=%Zu*ccjX(Xej_;cm^KA!0-gav>qGAXH-qeA zTrb)CixV7M79zg1hy*@)#R=lGZKxNqbwRHZvGq~VOz-(CN{1EijZ02pMeDCpuYSvh zM^<%RytlFS%nt%BMw>C4%N7jC{qy@U0A)Is(R25h8e!Bw}bV6VNb@mB?Cc>@g{ zT#}_{PX!OTT{(yMyboA3fG*ZL!MO^W(F1mmW#q-@boL5);o}Rh2BQ!}+(5r5+f80? ziq+LDkN+x?J(aTd#I=)Ok?bLgn60gm>^OaDmr*EPvZsNu`~Fkh_a@f;`M+CcxuDA@ z`RpRk*y+4Sg9GD2H)8J>m3*6}r1`W7#o6r3RVmrHC2?g@WsBoIsZ?b<-;rS$TBY&} zuM=F<<|QJdg#YOHNcKulbL0CRz8DOr_3#(7-t(6UxuShcFkc%c=#vFh=dOnAp|?)}ST`X*YOzIR=T=t=$EG z7jA165Atfv1g{_KHg;ITO$#V*T`;FVUsNOU^oHZKVzW*esj3ruMzW8&W_h7tRIX4& zU^~4}Ld_~saooP9u;1E1#9z=HvfcB(vU1I&5g)W~Fa1hWQ-KwZboFn6O?zF+=7Ua-@4J|AbQ${BkY!FDTIx_s}j*iy-7yX1b3`Egn= zj>kG&u(x!fqCA9f6Vi8^q1mS)EQt~qm=5-fquu7vPALA~f#1PrYegkpRCqREi;vif z(vj>E;v7Hg-3z$o=FTBLgM4{uNpAXewuVXJ4P5Aj&lxR{;)h5mbCMA(jy5H-ltp{G z`u8XqX{(*k-==h=`QxO(FE-v}Oz7}?-{JSox&Xfz_?3<~XMHdG{AlXCIa`1P5Omn$ zUFT}sxqtxntS*YNR?rRtzBRi1r%*4`mgsUtq29MHDXF*g{NR`oFZ=g3CQz+SzJ0a( zUE$q}5Bo^A90CGq4_7)- zEj_XfY>@}a2j6y~|joXDNUiDuu?CskKm-CvK&g?OH!hS0U!86GLS zVGuPW5}z^mQ)m0{Y@EQjPhu8_AlODs{8#tw^ipnd6!nE2DPvnCCKrk;QvY7x-^9yv zc6S}+edMqT+PlmWD^t4%tGS$BvW~UqgPL?ul6+w~{e#uU1c3$3!CG=GdTSHTHx}8<@jFUI!n6Kk zbX7n7!L@9NZJztu)3-{PXOs*#&rpf%`3|E8e=6Z8b*7sb|HC18fLpRfC^17z_0=}| z;M_Gtumn1r!rs}J%E-YC;CK%!tD_b8^a#OK4~kEVaQ_6{_6LjdJgCE%dquFpzKx9QZK;7j))!5N>miB zq>7({R$Viq&305WFTv?IMx`vY!%gy-8pMa2 zmK)yBR#67n41aT`E=3N6wWF(5Nk4B`O9zL$;ii{Kh-B+Q3yfBEz{a1eAGR?*^Dh0P zRv6y_EBgV_WOQ07 zlyLK({BaaZ-`YTyaoW6>L*p1CscOVL8|m&f7|wZ~1c69a-NLEpchN_&5y>_Xw`e1E zZ=`c61E=v9rH7|8snAYnvmek}bTrS4iBmW=?48ELe`|SWX6L$f>wZ|g{fn3q@)!4H zr4q014Ww8Ky`t5t{Ncq0z;opmTe}|7aNSF(#i7N~nY@YbYPdRq$r>`` zz4d#o!o(*ct>z7mF3oa)_b<8Jt=M^rm0-e!viIg=F7nYJa*mkK`;#Ain?bPs(wd)n zZt*-57`2#@t7G+N`b}O}iJYE&s}>m1^s`YTz*62(!us}778SPsp#B-FDdp}BaJaNz zl!s+vnM;svYr@xMNQwc6rzq^CVqfyJH={|l@kjdYBmdlz<7n+Jyha>d z(R@GMmVc9fBH1ln{THlP|9I8^{8`k0rvYgoto^77wq}qr+%a9s9@e8zlj7DbrW%V# z^Q(J6#0LN_)_ar;OpV&rYaCThBvy77RmV<5W~MC5Z6OnF{E0KO(B)@jHO1!ELfkon zhyY>~gRWt%ywZnN<6_hPqTxec^tA-Qco$p8#t)DbWCMSNuPS`*Rk(y|+q;UU_pfGS z1cnZ*jq*gdMtP1Shv3pcZAPV6krEclHM zH&iKD~1ZEuW@o_7$`}Z_>MEaf}ByrbqoOH4EMs%5DhZD`qB!= zRo{b7VG=vx44cHLu%xa6KNeJ{y$oFZDdcxw*%3`JEKNxW#UoOvXo3_fehLcJUv?G_ zn59u6D`kAg7;*gPj zgVO&_dURK2J&ttx60Pe}XEO;<~dFlL69DkqXuLpW0i_Z#i)10q-ZZi8> zk-N$#x6Wg|fv$&|&++HyNH*ijU0*1dpdQu>M-ZR?jY)Xn>yQjMD4L#W62m`!Il?jF zVB;iC!&K8xJ6NAIUkEr>VXl^{LM>sU(YNc)_B@7~IO$l8!?YG<5#jWac1#2c(949^mOt~NhE z3lZE%KNr5Cvj%(_%pT`WcIC92sdb3k-B@3~m+U!V0DJdCsxF;0s}P*IKuKJHV_9QOLz=R)?qO38VYg zX9lYLOhus1+C9nP4LB7H=@QtgM3VaDU3U~qMzU`@PQ6U!P1RX)3agJfh5A;jKHU-NTHhhc zzlZ9(SNU%&b-FqsT-`&Fcnu@Z-*l3y; zn=82(!xPAdREP+8#SK6ABE8AO9pUMX#EiN_hA0W{0-7Q)W9B3n&UjLk;Cv#Ite4wqneeXFzd8|up+Rp9|*!rY020a_L^;;PcPnX+UF8y>$vx;-kiLv*NOm1hWC-&InQH4qS~eLX*^xxKyD*tv zCjla7)fsy|eNt&Xm{2P#C0$Xl*{zV@*y%d*=eM;UFX`XFoMkNvT>2WuX=i*uERECh zQ#&K!=XffvW`2BhBs-yiN9uE9^EW;RnYy3@y`2DF;>^4#KgMMeWs&q_)i(Bhw&7;V zwy=(#IJsW<>N3#+KJ>ufJuKRCr&60dJKRY?f6(t#>hn&W+$WTqOd=6S5CM_AD~S_L zRnTP5{S>HA{mBX^f3CRnfR6dRgz+4)T-Vr=Molc6QQ0xSN4y_Pm+-7(4qP`Sb(`%^d3eOf9&tqr(>J*6|3ZBj5V3QJb}5$J$2chgTGGzKdArr zm5e)yFeF0>q1K*2FDzwp!5Z9UY*t3~TOp%$*PF_ysVM>mID)E-q>njpEtsy&A7!1` zL=kspXH$l|rLoviA--9fXY$fFy{lk)AG;=TzNpoYb1f!~Vdh&Y+y&j>a%6{J!2$P-U}5uM|30;#(-p?jw`=qW=&E(`G_lAtM(71EsRnX}b&5v8XJ!DcN+XZN$r5Yx8ee^r=)))T$Q+gC40*_pKh6%3EeIgi$Koje($^FYAc-E&H=BvEhPSXCgAqVt0cY?7QxMV~<7HVkHQLY~B zd4ES|ec5i+^}|RpyIAc5b*De`Hh>{ye*g#KGRHZcKk1%yoRM~88)D#5uqXd`1^Lz4 zaJI{@fVZ2={~iO??MG`JjA_1eg5|p?(rLSM>tj+T+mIVMgF#Ft+%T%}L$dPfe^S ztk)vhP3X@6aTDDGX-SULQh!99bFBKwIX;>{lMUm0NRs}JmSh_jZbMNT(K|vrJv+n{ zpBp7^!DZ$rFi_hGJdXa{Rn;5ibghBdrxg1Mv2>Yo8$-x&38!tq)rLrtmxS<~(4Pyb zJQkn6sy`C-s){v|wI*mKS$h;Dt6$DJeoEb10Zb#M^ULOsWAojlqe%MAoI z{9OMT6&)}3h_|HPDN1~U+5SjjzKvvu2c$AOeYqSu>86TFEbrinv?HKXfxaf^s=Ac> zN1>c?$R?%bm>>2hGyHcWxeEMewV2rd@EFAY`NmBRU>{2NPrZ|>2t>c3oR{5Lpr4e^ z-`rkH&w5CO{;oqu_A1$#=jCQRFJHDZR{+Dan97do5lw9t%^bIGO6xpS?+F!l4R>*( z7hIJ%Es{MsXiIJkO=nIrS}b1{2;k8mSTapUvXU2Wa!`Rl9zH<i3{Mz%65$nI~Pgzr)nvKyhf$7}{6)3igCCUZ-UsvX}dOcIEyri8!&!kcVU>)mp z>7oNZri+Y+?mQYEnq;bjQ@l!%kk)mzks&8CWgA3Zd~1KCGr_OD5396qVXrIIbLU6R zMRuv3Aw4hc=xyk84brHPnmL}-yvMpantoa^WyE#H-EI+OZccQUCB3;dkJhb4b6OjK zGKcOoJ3K44If_`Ua$O%ROe-SoeF*hEy)Wock97SEWzHNXuL9?g zw|_JfT^mgufpYwE{KD{ahjEqt#a_r=p8mzU?2wAY2~C{l=$u$8)?JVNVvg{{f3m8= z0l~rwb}R8&&^~ykU0d}wzq67x=~SEsTtyCDnPrFin>#8)H4Cr$h$}_3xxJ6cu}JnV zM}Sj4gaD_(lsTCmm@=f=9)k>lft7#xv;mL|iF;kSomEZ@u6fIf+F~(o<=Pj~*9{0$ zn^BH4#ssns7)3dfJ3_L&;BMSZ?wx+dm|1e@1xic2?)qWhE6hStU_lhdlp@r%Iy&LRuXHZqJ{_K1od2{NK0Wk~u z8}q;N#|!!W_2(PPzsCmh2k-r2dXfCH%5QGb>VPNJdm~xyvz_m+3ESiR$kC*d>U&S(qLX}fkuJks?7jWHw8dkz* zA1WW4ca{7ivT!$HA}c!tNK@)+%n~CW)3nchK!2-s<_sBY)Y%!H?gSl!V~$yyL~347 z49qV8jB!R?P4x-kCL3Sonst8S%Sd(?;m4W9dE|0!^2v7Rdys9-I8xc+EU};~%%{Ak z>6f)GGJ5O@6sUBP%09n-S$~}DSJINib>^623rKPnoRTjOi1Ash=9Bn|k!*y_?SFtX z&CUcTG14(>X|G1@{w5yHNF}h3h^Ea(!yEUgPDLyUf1R~3kp7JA@)M9(GozVP%Y*Ha z!!qSO{oPwn6lJ{4?g>mv;^X~u(8~LDDfgO)^R=p-{B=($CVq&&bLt)pTjhOzf;{%b zr}{O=QcudomaFw6gkK~Zr9F_S=3N*m0!I0#E&2!-y@R6ngtcg8u{&(-c3zBv)Es|g z6X!E4LqQ@e@zfx48j(&x-xqOQSV!#z(thwmDRyVz$R3 z*|Qu%H@_386JH)~yinXE^Yyn_hK}?13vz!2b+`Y<)&b^Vyv6kYSUVH&sH&vzCn1rb zXafS`Hby5ZjHpCWiECPdbZbylRNO|~5NF(8?11AM=(M428{@u@Ix{Mcj^hp;1wvQ? z&ZxLE;taTQ+o-q(L?z$vU+3QL4*0(B_dUP|m9-0p!Ai|yFnGzbI|3hNtFJ-PMVOg=d~X$R>Ye?T<71O01` z&gmVUmz=U6Q&kE@(Z)>UvAyVK8R8sFM~0RqXUOwnb#&b0_e*A~@IOi2Er#D8GW6(By0oTG zsBipG3h^AN2=z_Xx#zLNLVa&N!#$6$3H81ABA&g4e~>+5`!3wpMXQ%9}}PI zG$vw_9oBA%1nmm~fHOSc>jSieq4l4)7(>!Ynnyc9=KK*uqe0jCaXgIEUhxfB5xXK% z1vRrm9R^8GF!E${EDGv*Sp71Y3LJJ{J}#hIuRWqlOkagFa|BnLgOeEqc}EED0fWn4 zLd`+{X=j31otNv93v^JvPc#*lGd|XHOsZGc>WR%pPl10TnyO)&?PY=Vj;6|$Wu$=` za`D#xulVXLOHxnbU1GIWUGa@2_5C`=qIb>tPmZN%^$)SVP}79>x7B}Es{~8&^(C>g z+Uh0sD`jv&O?3f%x%&*Xc|iHP>epf&q1nSow)uI-Yl?qYR;HdRIjHIl<>zTDZm;RB zCRj?R>X++3FT8Jt{p;j9+eei5M~tIj5xp1NvU6l_@)I>cRJgOf zAyyhcrZ*8JBL}P8K2kYdmk%TL0&zWNFKSvIdIHG0VwG2Dn`tl?d^3SEd2HtdifkL* z_8639YA1YE)L=RXDiD%!Z?K|OK#*5|lu1-O>(QHl;oAtl1)v7w()83hz&{4^)NQ|? z3CX1mi_cxH;T3AsPIB@q%M%k#zC-4}-HUe71OuO<$)BrM^3Xr|)$R=dD{yESzllUs z)*_y;JjfWKrwTpQ>1l9w9k2!Vqcq2xDh`)$-yRh1np#03B{(yJAQS%BUMl~iO0lXY zU{z>_^g^gnK7SRo?Q%_h%eHWvxbjb!B|!CM4WZ$V?mY1FeBwnEQ11J#3vwtoKz0x^VHb?)4t<%tFda<=?6WKbx*uSa5oJsY+ps7j97K*g-zkQ3*=DzPX`QzMxPK87-q;Rb&`m&H0isj#tM|SCN3CLeQuxFegW1{~*t7pJe>It7r_9;=$b<)EZi@xwUd_J29~tGs z@N|EZ%P}eTiH4A??!z9@;^kwiujo_1qAtxKScab#0j&rM>c=qqQT^@Yc}(!mzf31| zKi!6mMN?N)WL#LqXY&-{CmmAm9R}$d+U1#HYIX9nsIXH-`V6E&~6yjO$jT)X2N`_)G}+Zx;s z{QQ1k^#;Hj4xXgvixOLfE<%~ zP@`q8lE^M2IGM`{kXB zEKUxCtbb+8gVqAf3UBsE{G5N{Cr2v9hXWo5GLl^A{gDqu5!nuDn?9-L3=cG#Xfp-^ zv(X{exKQ7btorNA$E2Q@@Df#OjFfW8PRaMIfhAAr0q=eXw~~>;yuHsJ zdsn&+p-)nlNXu)*t@mf zL%iEeWF#+hENNr?i-Ej6^ULyb2Y9?QKvEzt)AcT*cmGfFa*Rm&1wC`EFsV&L|7Up- z1O7L8dE=X$ygbUIFE1C_k&Ux7a>(t9m#XJxr{^O)cr8ux)YngGPXwV(1xC?AIy0Qn0Wufrq()=J4PFxX zZ-yRB1@ZiO8qcrH-!%aUl6ZT;6GIiLwrN=6z5$!8t+oi ziELWghSh=?=hJ>qQ4rq)V&_>Q8-t|7EzNJHs=Nvb?7wvBc7b0>jwEc9*^%^-Y)6r+ zcISrcN{Z^uYuFDl?W^5{gk_PCVf^JeZW2@Hd?_AI(>qy{QdJ zFb3-a>f}X#UMQ|QAt?RxK09=)qRb+`T4o&%4-NQgA%!mQX&y9ziH>3I2~jS>9rcY= z2(9MoRAM&o!(|HfCn?;LtgMM}=6+zI`+cz4LPNt^9q1MsZyscHldHVj`Nm*HP+ZTw z9RGVfn#;27JI*kL`fM7JHo_v*VqQ2S{<}Ccl2+vWbBC*~qm34c`9d~l1gD+d7K8Ks zX9ESdOCBz;&%&97fXZ}t_L}o8u$Dl!Sy6_}ae7);=!Kq&wBkJdCxFA1C2f9hvT|>c z+2Uk+?ty_!=j8d)f^fX|ST{=nlmBQ7Sib5S6O#JJ6j`-`?g@H%AFz9U5Aiz|pQwtY z2W+R;_mrt)+Z0o!BG#MQ8@_?-UmR_}5p9eCB*Ld{EI+(mjkfGrbZ&t?WcgtfT^9I@ z5f<0#@w9q7^Ao$XOo8{oHk_9%V40|sM6TV74?xV|e-KKUvw!Q-`SwR$;~CT|V^0LT zv5d1FRnqn>gN#E_5IgRBlUaL^F2mRpym%eV@xm$FaH>-yW z>l2K|!j3`snbm2xP~_@k??yu@UG@oBa!j;_8WZ0i&dBcv3xoAms%g28cBsFt*=O_E zuI*`|vog2?%=D9Wo9ut-Z+RfBu9m~$D3wp5avNqWje2{Ns1s9C@mpMp(%qi*>#VSK zr*tIBcpL4#g=Y87x%!vKhLKXwwQFm&OT&YjTQ10TU@3Lj+jssDh`M_2VN^M9#oYhr>aOij#QDd{XY zPyc`4zQbK5dlyzhPBLFWE2-fBNBgiowf*LeYqrL5Ccf6y`~19u#^vg@#?3+psc{_* z-*RG=%%kAqVhQ~uLUK$|@+Kv}NxmFSkD+U{ z1C9Z6YQd*IN8>*gPuYkZObWI z{Z^<^=}5vEttQ+!K-jOE>vOJ!gm4l|r&1;pZNHg0%6xkvWjmGz`oUW{m24bIBLJ~< zJDs8+)c7Fu;Kv)&Lu4qHAT;~+(ClT=>VJl&OSy1Huq-;{pLOZssQP8Gn5DVt*xS)X z!EH7xH+gI{eN;(7nHr`~W@CD}+&jU7hubwaCf8LHK~+DVeG|vGCEi~q+vSkw>J(Mu zJ4~9Qaq8XSOoHZQJ9!b#OyLoJ{Qf2Q5r#mGP_e{KxaSNLKeBrR8ey|yTdE6Z?ojDD zR{ADA{*6cFS^xew`uay+nO*@Ci2H%K0AXK;@E#$Ix3Zfzs+>xTj!h4(s7qd~t_?M| zuoR^gmLe#9K-V=~7io=6Oi^Ms8i@(P0jf^>5OGvJ|L{ zrbzYD$@@jqF*XiJd5V1PF3G4O)J>}aeeDkexADK$e;D{zGoOf4E|Q2joVyEKzG4}` zpgR!)TR!8fw{E|!7-@eK<81F05lkPjA){$8Az=OEF}SYMYX?3*U#=;DV!CW|<#NDR z{-l6y!y}6OMw9pJoArT(wvp@2aZDwB@mkv=ra3{)>}`U&jLzmf!71{2c3PLn#u%(C zCd$15Nk8w;P*9Pw+YbZ!RD`D#Gl|~#O(cCYy;j{5~-y{2?zk`QI!7+Gk zb;Q3Y;XD@GUCD(ygH63ADWt%-Zkvvw_)o&@YmKU26RW6I`mMFz=a(}Os>hetf2vJ_ z@=-}5k)}0Zmr)0p;~-@VmP;rfa2Z?3!EbWRISUwu*j+ORCMs^o&f&Mb&XceIhKjyT zZqC8~xq04p;~!mhm}6aW=mqUf7dzGs#lTV_(BYu_z< z1p^C{rYKU}mS6S_)OeW}DaIi@wwM)WYzX%4fX=43S)!H3ddF{4j+J7k59B4NUQqwG z(-F>7U_2pzIpG@-%)YU$-8Ecn^4)8Va7su~Y3_Ek`m=Hd)%MJ}b?M7CG9z4U zo9FC?enL+DSS*~mM$LNw3@xvz2mQnoe|;fn{iTn}6Wuni&- z914jWL-iEwSPWmxMD2JHp>g(bU9p$r6T6NKC)lndZSnJp(FrfkVIm%*Q#3lq$o{%? z#KicVElT+t>t$zl|HT)@y!>S%cczA}zmlKW0Aos-?i7c!pqyV{)4))Za=C${6`Z^~ zsif))u5#GIW&i-&1o+07A>SF+{ee~N;+w`#t2Z>eLG?~VH2Y~bN!$QTtxl3nGsNSR z8LzcA`40Kz;ax2W-1~dK{|p#h!u>UwPd7Nb?`T{lL+%~G!q(Fc_;7#)*GZ*Th|^|j zaV;6D!8XV{lbhA#N*?6CCR!uO>59z>HI6sbMkh%cn8$GpHj7+Bi3H*Go4KXClGF}4 zTR+&8s1uT!ykoV;rRxsBim0vJ2qXIDIAX4fJ;$UkEai2yWD~Z27m7T}At|ZnSL_cG{H=xvI_gTzenBv!ZYvBmUSO{{ETIAW zbMcg4*@>u8>V`3j=X4^hLxqiXfQB<)LyjA#6M2Fdlsvk(81kGlDuW_&$cupPIpndn zM{Ow+Pl0!&+vqc+v@)C;wN+>-rx?9UrpP(ug{Hr)_73qPhv__Bs7cM&UNlEKaCe*0QvZ=v%_nqG8s@>y0@e*vnCUwyg4Zz}I@u ztZ`qWe6a-ZnvM=5Rhqzu3mhW&0t56V?t|~Z7pMnHU8Odf_}@C-K%O1J zA3xA-t=H&-tTYf8=a2qjPyb5>j6zIx$#PfoU4Gl11LgkBlAg@SgsJp^_HEAEnI z6DHZ;g+uf_q6apk2dk*JV#1b1+7HuJF3C15bML6LEi!X&g`w2crKnLEW^s|(j7ZS5 z7GxhxG$2gNt3gCsV+#I!IQI=;9_~I(mwXHqZ_;HOp7f{S7HJ2YfSro)zT8cUitUvG z{rV#?*}wD7*&iUC6Rn{Z%iHT}zsI*Vb*+))uiBjcm;|U0VO0IP*KvKb&5-&yEo^@L%+`^-y~F5V@GR z?-GM``Q)v&ArfC-5o)~3DmvX&G*%VK-pW-Z_pUcu6&(hk2Eu0yWwIBz0=uX{Eigf2 zoOv}+1$z4hwBmA^XF6UHg2(K4BM3U?hBNj2&A!X{(5IR9=}vw6le6RhcmLFeNcDR8 z-xfQH(oaB9;D0-k-f|OAV})-G|Dylx(7^w8xJ29e-?)Uk{;`yWPGVr~`@h|B&$2V; zrIWp#dQoOw%ga#3bg=Gm+^P>&vb&bPRVHMFw8ee!>j*~wc+_iqOuHLr`&})CQ$H)5 zdBe5rS#TJy)j8HOP4>{++k0de-@Uh^c}@%VurznplSjOGQ0OJl{5fUxtg zFre#K1-Kfmwc$)>cX$mK;Fk#gwO@eGuQ#w~ip4oU0?e&AdW0I6fzVbLN!!&5UB5zY zO8rW!UPj7}Iq$@Z(Db={il)cy$Vs~uzWa?uZO{`sn0=M7;dux(hIzsQI+68eM@h~a zt*d@BG<^>~)eU(QI1GLzaFXI2FMCEe1F`#K8Z(k^QWAq`d|~OBycvNhq#hp1{#moE1|)H}IyvQSMa_7&?Xb1(c1oh|LXG_-T_`>R_E@EC z4J~YhY;hbmwI%@ob_xKz2gk_y#Nwt7pTT&7TN=dA)a}YZ;e9koIeQX%Cfei*zKl{r zqN`z8dqN!Ijj|C9)?cDo*7H}XfDXCBPp;w)3Ap1i`mh@xlzAwT6n~gA#?vY1RSpU@ z4gx1tN%b;!L{mFe)}@$|JFNdc8lNWXAqd2pUZ+Cb(ZHk@F?v7i}ne#}1+{N=} z2Z;aZ<@wNulngHq$2S&F8EW8-hL}O`?3d?n zZUmo2oaFrSb7wG+2wrASxq*k!_3FA*LYdP#7uAFkJLqRxS@m#|Z1or*bU_&}75c3O zwfc>HUF{iqU;MtfNXb7Me?UgmS=W1d@JiyVe-1S&(j|4fp?U+CNa9`U09gaCaq8ZD zA&VQ0R1K^|1`9B`AiUR2EChZLjuUv|rmqUprz92J0 zr!CP}7EF6JX`_@I{H9;Tr?Nh*x%km^7C#Eurkk@0{ln_+JE8^M?OrwwA=XX*R-4SWb{||7#@So*oXe2qn9W& z@4B7kcjYO!-<}>2x38F}Qv-2@xB>(fawR%Xo_q#l}&MKE(J?lED zV{ra<(w9Ina>;tp#gtgc|6<4)ieteFD&qH?i*co81G+B7#FlUr;ZK_kiQ& zUNtG#)ynbo2QCFmw3q!I#S5rCf0m5%%faGXI0}_+`x9$uQ)O21f`O7l`om?h%bsfO z8mpRh-J~@;l6=+M-f&IS`vZBe-YbxIvt71tZ&K1Igvi-1`TcO`R_zPz7FXPIkpwMW zb`YdE1$78i6xu_nJ7)=tP^E5B1QAgUSLV~SZ+hj}8Qf^VBtF>It+Ej8-@DvZ&=B8iwhz%O0c~O_*Z+K}2B%NXb8L1l#=)?u^+BE_0LWV~TIsKz^qr z&jlUJFI$|zVG$X3{diEWWBa{jRPVuhTtmT}OOPIV;i>Up^-gr%d_>?!&nW2+B);-M zK|fal>F8aw?SIqHFk{B6R#X0-vO;+eJbQLb*mE=)=fc;aTJmWXxDr;i8U@y7#kdU*LidHQFZsDbB6pZ;jcBijz*P zT1iK7#>Q{YGn`LwS5J}X9h&?dtCWA~6w6WWoElF`fFWb7`l-16W8zU5zfqY{7u{+Xm4%z(i$g6SL1=*Y}cQGFvx_W zz(CB&<>TP%crvg*-8f;tS#R%}*qn>UOxdytszxC^-oxh@h1HHVzosSX$g_+Ku|o<5 za-DlMxcflH&WPt$VH)BZhX{lp&!gl$Zd^NazU;31f^mIcpYG#2mmik{tTpPed%={l z>_=jKT9nzjmgZI-JCEcts2vGjG}ZJ#o9QKvJT$h&$~Z(&e|F(zAP@mx*LX?m#@I=I zzpn8HnU++(pa+>*kIL&ejf*^6<(Hw&#kUt31i{rG1^zJI=L++xR=O557NjN~ zxi@I>UqiW4jF)ic2ldRWL4UdH0KHERQyulq9S>}xui=l@z?MNC%fa^PQqAw9nO%4Q zpQOJJATB_udLpUmGXTegQPTJunt3*s{HS3?lz6Pt1)5pLt!?SlKDktIjY8#na&R|LmsjPu=-*dahi#euN_|D>dtU@=OHE;$!KM>Vr+_BKP)IFFD%W@j!hHap? zkPs$>{CpKSM&fgnxdZuF$p7c(R2>b~5%5JQDwq32n;gD-BYv?$V;zsC;i@+I3^f z-(BAn>Z|+QtIhS5CH%wNe74Xi35j=SFnT{{GL`NN>=0+gY%ZTEcdKN> zrzNpio?uMzZUk?1lRs4(%YHKK(^bW~7dK60Y!4IFk4rv;^C)lUV@Y+o2DYow3UkSlExCLvMfy-tF7P#I;m#{aZxBII#IhD`8ll=eJ8n>J!rr%GZKn47Q zP_V2mZ+QojSk6Cs8}8w;Tk9;$m!>l12X)aHuqfg#cd7cq``bV*r8%Cy*xi}Z{NK>O z*tNT{+~{BH9pG2I9zR9)e*PDX=Wu2L6d-N8LxF8WNzbcmoYd`94$CgG0u2z2oWAbh zzrVFWedggmM|&atkowK}+O<*}-*jzUND1$v-dh!AcPhlU%;9@j_%uCrum8RrzCVF4 z`yoDzZt|Q{j)6X5yI%`fVgxeZfjP5_(*#F>-o|>c5a8T>5IC?x4T~M;1YMi5(lc?J ziDG-^CboX2z+(e*FN*C&{V20Qh|hvj`1tQze7>}t9}HbuuItcI8_ycyr(3as*Ux4j0H#9E)n z3m-ezYrXl7m%UxAUUh9{d2A~Z5YtiF69f#%POZk+Y|dS=mk}0QAtZz575V&M+-6{H z@WISRK2B0y#CWXgYL)=eJA3QRBo(X>>Tp5r6%lG56x%JF*+;d%g&1?qhLf1bn~|7i z#5B8%*DBe>COY^mbbPE{yu)c8UMvvqVe=|{P7QNJJub)g1bc}`YOM0r*T`izHgebr zkRNL54Q_ASitan>+?PmW%xCWJtbcHhcGef0A9S&*5K~{`!D|W!8|t1ZHuCN8hR-u^ z=d=8hV-+pH`N?sW6Hu4p!!YmW(YBw?xt>_%1UuVGazUCLDgG*Qm;`(3uT@}#8aTi; z#d>O3V&{>1*D>gZn+jA-Zd6sR^sYnbrJYaNMZ5HCz3bTKPp-(`f!{8iIhw*9 z3vd)VB%_2R47nYdaOObXWsd_)%o?k{8C>5iI<`g*V05FNi|v`KlaPNmmELOW!}#YT zCWbC8>jy$#`@sK-9wjB)g@))5uX!c}Q3OP22u|8m&7j>kcHtIkp#E5Iv+kJ7MqoO- zyE44pkzu*!8)6@}RPxvE2j{+dhJCWlJX35*{*wSg*O)727H|X@Us+#@#^C_`Ukc(e zPjZ#z{2%3h;-jhY`Gde!64O4f(&PAg$Z3<`7zxZ@PK4cjYW%T&3MJI<;fzx0FaXSI zY1uYVcPPOXX;eJ{CWWS8BSo;T?)0}0W^}KqzpH6jPC@+HiTp0yI57xI8?%I}h@UkA z3hx)bS$!#op6Ox1L|#%S;yU4_+i%ewDQ+F1?}P1oY*ELDoUbsCUe4aWhHCQW=n#Gt z`ou1EQo2`;$c;{W?2vj^PGW13Dj4mEJjB+oPxA$qEWWXz%hu<*OyjF?9ToJ0&@>=* z2xHz4Rtx_|pMlpPZ@;8QpV$5ODd$zSA}hVf8F1Yhx^V)G1@>R+xHI^!R7|Ht1n9B~ zrpTOadD6>Ba`c3S%_k+lPrj3U`9$&&VNs4sE}f4f zl5WR?*!PEWZVW$<7Hko}DpDNVzI~*_HZr2}@t?c&;p*ag?(OzPu*L)?shA_<@#$w~ zf82FrS3!Hjr$m!oxe(oHpU(gjyB9;fKU16cpJO_^+Igd$)uzkL(V$IfEYEFu;THT2 zeW+dfu_7EFeG!=&yS&*<1_(@o;3E~3{SZmH(7|!MBJoQ^+XL)B?@n3M1yx^Y{bl)L z$Zr&CJdet>ah7-!Gd-Gmz$#CytluVA?_H`FR3lVV8S)%Sm%Umg+1P#06CFi3^U6Ag zxo6VolpV3RdoHIKx%~Ei^9DlpEp`vZN5Q?{%uk#`X7f06ceka=Jh>U7{?630;DH}q5|H4*dAbbzO^wd##|JP4n+ zIJ}W5p&md}4B&{y=Zo^9P~&s7NHA58{0z(uK8(&M_=NJ2qXBmbnt$yLU%7`O?}+)r zdcR+S3`2(JZsrx5zg0MO(+tKwyRHWd{p8uM@>^l{CLFLNl5%Sn)rZ3EqbGro4e|z6 z0}pkoyC^%$S-yO(6QDvX#>x(=1-GP`?Y1SFP9x&oAo;7fDvGM$do9=bXp$I{oLWah zAyQ0qg}dIOFUH2#mxY?12VJr?a&B#cso7J8F#3;rB8X5R?Aed4`WgiIy7TZGZxxPT z7h#pS#0;4Wope>qK)Tc!E#0K+Uksh>{Xu!?2Q9|M%Giz?4c6}>b}}PqUU7x-uU%-{d)#M<&5}-Un`4VpHSjz-ptb!LG|9M zORQICHqbB$r>VB=nJ_ZfKaxYqJAcRV$HJo`dibAo>?tFd*b+}u4*u=1kJx)a`~v;i z`~92tZ}*Y26C7)HY-GJLf+eT9J0ajI{Us?iXO)TPg>91GAm3prHmXnOCd33PGt z{kr6jW0LE*tp-7i9W7>MDP<~H9+9Zrxgx}50uB6ABTk(O)L@#|{tV5S3R8*iY}QNKHeNZXizqRRO*!TMzOIFD8|2mfmkLOk^RthY9kfqM?)E-p?-31Bz&I$ z@M|qd(q)-%Okj`PnFBiMy;FO#t>+8ubsxH>_sJg37%@4~Fq-p60#Y#y7WPJceps2_WUUG)`|pI6MRyQ#)a%v2-IdX`{BlcVdh5AteM>MYv1GS|+< z>(tIlwQ~a*wVFlGU1ZjgfGr{kQ83dvb1LyPuY!7=F1(7MB6Z81e98U|Y>w{*l-sKGe zqU;XR?QR?+Cs*7DcYZJg2s`Bw9wy-IHgqE8tG;l9e;OQU#$e_ZlE0;F=1}ALybNdV zr2>@4{04u5&1T?+H(}Q@OgqAALFinQpVFLpMKyZS?p5tZ^VQautpoqAwr015Xtg7p zk(H4>o<1`=H?8*z`jBMp)Z1~r!KbF4M{Hr4)LdmagG)yQ?Gq3LM_M%DIeT)=w-la( z0}b`L^_IZ294W#CV9Nt*FD}BhpO+V9Z=k09`Xe=RT=r??%=oIceumjeRV};@zP9m& zcpg{z)4b_6)fUXK=R-ku7?|C(wFQD4&Ww|kb}G%0MHGEKTQ6l@Wk0a2PpddmuNtK- zZQ4GL8l19L6fY!sTZ7m2)|)vzkAY`Y>Nti4@pZmk^dw)ynK8os5j~i1pO$6xt8%#+ z-;+}}S-*|GsQY?u^hIgTGRXj4WBLKi|a$Sw1~0u!oqK#*cJfRYHjIm zz${_cSL?U<#;({g23bEGl|h$|iF^Cdt5f%h&zFiSja_siW`#uPNAI_oEbgx69heZ7D)a5htv~&R z=NYmU3iIc|z1Wsjo!M`{mgE-AkyW+XcSpc-KsNoZ`_$p1{qj;w~rjG_M2gvTyCw-)8{XnV@LQ0%Tv>}tYf_HlbT-co+@E4HV^Om+4?%Z zp+6gRy_Rzw&cbH;V?%GZDsP|?2(Wl7xd2)ewZx%I>%dCCzfyO~O=EhPEX1+C)^+Ur z+1mZ~)?JqtwB5#O!TQ*uUgDoe>QayP!DjGUpJM*WoLXw*>9wl~AY7PSAl-Wk6>Dl9 z7$(N0>J91ex9)c{qIS;1DZ8Cq@z-gXwux$v?Gxzubn_gwD7l=2y%in(oc?p?Z9|PZ zX4o*IDE4JIHTyfL$vI1Qc-oni8w|BAzFR5`59f295=L*05ArS`;nZ=5hEqMY6xHd% z!%87A)Toi>OYK^3(%&7%-n`UOcEn%Z@1Lv&S@=0yB{mF$8n)06cgXJJeqj9xHPulz z*t_;-`}H5BT0ml0OZ-|CGAfRpb1(7WZY{>5wMk1qrtP8LmQksh+t{Ga%%>=-Y}{2l zn*pXpyNlQ%w3c3xA9oNS3g#S2zKzKCNX6=nkuoKVvfs-h@eejerY(>&G2Gd-0zNiy zfA@k>RUi97`K%alp2}dT=orrU;I^?5ew!Mf6u;EGj8@MS<7jPKFM+G;LG))hzKFEN zY}t4R9KgZ%>P4Zn9r-+jD9liN7LfL}mguQU062bF3_5G{5BnL`Oa=D6SZVnT4c${iJjT*a^dXa|HS=}C)o^YAs4IF5GB(Qib0xJj@t*R`)#w}tM{3r7`zcEo%y%4vKJ zLP2O7kX6M{#B)!R3Agj`Wh8yrsYj0~av~bed<11;g(kjWfW>y*q`=Z>P(Yx211e6x zfo(~;FF35X-#|pJf8Ip_g)^V~pL94Zzmewc;5u)LaLfb;9r-(p%5Q0aA#BPyp4@tt zb<*t%vvbwHzC)I&@b`|QFBYKYrMXn(NM?EL^beiTR#FMdsQ+sytd+AMcG{q z&pi&$MZ#0N8J=ZXdUw5EE&gF=a3;K+?1;51&jDQUe>V^3|F zx|UtR76oIco?S{My!%6{eo&? z)nT_w%XRAL34P#%=APlq`P2)4wy1~8?@^A1x9mg>?%4jh9%^Yo5FZd`%R>;etTl1n zh_Tw=h<17^oYBRmpqm{7U76Zah>i)y>kCGC>hndVCo*Fxm$#3=P#<70YCz)%dSeX) zHR2(2^&BUt#ha1+1W?)2O=~pp(efMnsk@0;nfCcCD6307&;XJ#I?g6%sN6Gs(BZ7C zFw&V2$c^7v`JhUhJCaz6ZzGQr=_+2B+0L;jTB~_Ozer4<>)5 zZvgJ+yEd!}Lh={zEsfySqn#WgWCz$BexUF6TrWm#nat9uu-~F#3(kM(3})nLpb~`EEgkRQ?Yvk z^s~m}gNDHND-ne`05*Jd;`y*OsQ< zCV{tJhT5+Hr}v7dBkVWuIuqtM?3v29C|eOKgV`+E@YWGo!0(wi@!Ox9)_KoV*xWSp zN?v;PUF8}DR_b+Lpu@jerUB9Jz4sf0M|SlRZ{Lz$h6l@=Mmnh%8T#xm6%O@5Zu~`% zyF~N$KFEavN$cP#wm_*>@gHv||D#;3yz+k9D8l}gDYt6Ygy-m?MQUOmlGf#2bcHo- z1~a@N8zy9otgmTzcuobt%EpOdUykKc#6)WnAKhsX6o?S6sF7rvhy1 z{-TZ(IlpilokzdTzr>%cTkhbK8Dm%^i~w)@4_yr0)04L>$}9sq=t2}*l2YDagh0Gn z{&TtZvZpPQ5EhJNHy-}t>NzE-2kiN(yyre(cDP&TKkFUbzJfa%L^-&@Q0(0Z93c+( z1okWA!@+l5415@n9J~gtcZR`dFQBi&nR$R_``F_XuGBJ>>PIcvGJE}kd;LuA^_L8? z!u|H(e$MZL2+BU2jJ8QTty{blg!Lzpe=N*7La11`xP&)upOd$Zp~M#qI-b}NImA6x zkmLySEdB{woQecxqV*GiS{Aw7J-S{8j%AG4Kl%P#-#?xiNZ2y{@xw)$8=g`xYmD>9 zyWvxbfn{LHZ114nbWoZb{D}m~5U~Dvr{)XrTGNdFS&%}XpjUC*G}`OHLTN9p)Nf)! zP*=Wsaax7;c>|U8EZH8#T1y=aIZ_Vi@S){#L8lKm5`yMyBzRYU%xB-5IS5^qipyCL zNncYkZy&zTINyIWV^pzs*-l$i;cQR@%4fsxZDl>P6;@6=q=*`>4Prspc*j5B2G7lW z)Lhc(9dVgOJQ+D0QW1&XF~4=Xig*-;1^WZc9dkrlB$>4oENi_vK8VZ*e+z;0vunJu z>;$W26`~kV%BJNS{BlKn*MOaH>6QVN1698HZY>kuqCLW*yaTy|M^ug>CHHn^@tX95741u5r`uj}z zluiqjItDT;f0i6(V6XCa`21&EJ#GQ4vWQ?otn(h8DcAd&lopHwZg^gE=dS>-+VnQ=K$tI8~@cAWYteLznUJMaTX?6s;j%icha zKll~=_D>4vRpVuqn|?eLdb6`Bu{oVD79lV;hWDj}cgx=Y7d`ni`zq?gpREra25qu= z!}p=Ie{%2xNBI~iLQ_nTk~(R%l+=qWaGJGz=sxdbpC6aO;w^a$TfkpwB@-%P;*HN# z&uG>Ow1CC8>zeN_ps8WMtM7q!*VN-z($s&lgP{4y0=U(`kJtG6=tHqZwEA-@0o-f6 zx&Dy;(mpDf*=Kt*b$Ab~a%}He9mwViLyuU5Gw(ZME)X%26Ukkkm__eF%n=6Nz(?Ta zhDJ^g3gGiXN=YtT^lny>u?WALPoH$~JqsI~m+SKcyvlZWeEdHE9}r@@8?Q`ccSFMK z*t4HXgblsX--o#ZdL9KTDAwZTpi2dPT_OJcU3;e%!rz{Qf9qesA6E$f4@duK!B2$) z;!mFbzX<-^{P^J>0`TX0Rfr*OOA0&cW59PC7i-U_gEsz~z|}7Af`b?qZ=fP%Uql?8 zukk$>Z=R=fsOr6!dRYiKz()iabYLE^hX5x7NY`Xr+>jIB#&Jpn+dzRNWSc9vLtub^ z4DZ_BhiTbgf4=jNJ9S+3M%*rCE+G^s6}LohDbDue!ee{T+wMx(gI{RRO_TQY^o)Q?!xA|Fs3MXMy&>ko_!aC3de+ti`Tg~ew&O-z~4tClZzR$iOFUFt#rNq^m%@x zTNG#m6^_f>tiVcp$i|POoA8;tRHMR3T^?TYPl0IOEv`qqPN;C$&ok_69rhE2{bIk* zRe`gmpL!RT)&PiK!R%fU_#^nknRh7Y5dDK0EqfY3P9LY58o?7^{Ub3r_5IrI7wvQU zLFX%pL=0zs!XcG8lGiPR&=&~K>*of7a|o5X08HDzvi>vfxN|}A&oS^GP;5V()V>uo z<>%7md)~dsEM2n~9)c2Q@B6b|{G(kAk7eRPhcEP2vv$RFBL^C%gANo)5~~(19U$rO z97(g@L6))q++`PThs-R2s?PY2<(F4>E-bA-i#_;q(gt=eEU7=go3ZG_r;jdAa-E#i zqbC0ndDE~eKUhyXm*O|$AFT(~d)1PqPrbmjGt4{Vow+S`=7v$l=zP)wY#$xKJk2f-P zU4?8Fgv>w>8-f59d3`2r?3%~vRA?k_yWQ(^PY)X!3NrM5&5r`QQmHdAHrS;~9IQt9 zqs7l2RI}4#kMK5>_z(YoOsyt5YGdzEz`B zZRT|JWw|om*H7x!#9gkiX!%8cl)LXth?{+{O*N^*h^DK5OOnyJ6_v#|LeZPdJ(hjh z=#OsJo{~?qj0*QPu9^6^vR$J(kK0ICK+~DkZ(QpqBeGItxOo~*2D*$ftlc1 zBQ+e1v-k!A)3!hi*qR-JHm%Q*Q(_Gy zrkZj-rJ=;>{GgDQ;l}N3Z(jI&T&uhjIn#t9c?^B&HQitml31mI@u~VX*B_}{CC-k2 z#Ar?hMOJ6Pg7uoe??Mbji&|Waa*nr#k|WRPEWuf_LI{thOkRFp)J`seQkV0|CqC48 z5+Jf^RCmC^846`k*nqD#NgUy~qqd-a_QR-_>GN? z)5J&gBT^c4?7-SoT%;)uwy^?m$A6z1XYCbl-x^eg40E zy=^rXjCYs(qM?;SiW`ira{809Z?})Wg11ig7+b>Y8^UI6X3qv^v&y%RrekSoL72#0 zcB177{1nMHh2F%vS$jvTLgTL zfA0PSh_1w3&li%lM7v=VpO#thT!3%nCirOY1%*X7iRYsHsTUT0AGAq%XNLOBLR`E2 zdd;ra0l>`XlxQK$L8JDEQv$pG+<$bl>#661QMh?WfT7Tzi~Q{!YPtgyP6pSX(M<-6 z<`mUz!k;EChgRdA{LHC1w%d0jw1A)77kdQ8FDV*YiOeY~reFh=fw#FBzBkX2XSe`< z4%HR@cDKCd$BRn@y1{bBU!|*?(tjw?T_Rjm5=mam#WY>9^SDzXOom9WM_qO6WbQwX z_NW`udQ4hLVUNP8HvK88piDTvzWnk_!=0^6v`p#JRI%;2j-$Q{GBIzq(?6EZR zaB@K|DxY>uQ7O_^-<#CRKlLC(;xh(s+bfay4`j5q^9E(wV){08>5<$E(i!Tj$K(2h z`bIE7xOicFh3h}%ZmqE1(Ci==JAK9y(kr&?@Uw-Q%frbKe{A~Dy#!d7JUklzxgyjw z5+WSILwJg&Pk~B^9!vM1O!pIylchB8dyERb5PbYO_?Q?@Ad-%`o;bLJtI< z=)^;X++&<5Vx3BFvfl-8?F@Fwyc-X2u|gj2wI;2A@!!cmyKTZ60gRfo%s!9dM)w!m z(EY?{PiqB{g>pBZg8dhsCwa2}85*G&yT8MID28&o-N#4~YRP3C>Qp+T{(;Y9D;G0y z(+a@rQV+{fNGFL@HvB^~k118zgjN9NQ9Xp;(fCW1wgTWrP=4ZIWwE|fl*a0qwb(IO zRo11_o{$nsH<))jiBxx1M%gPkDOI@>jhy-Ce8o}i-0RrFV5@6yCPRqOoqOvktIHv` z8B_g4r2@D@jjfQFvi6BpGE4jn%DqCN zgk2V)jKFo(e^U@xC~=VLOh503g2@7ZzOS+!10#VM#AieQcVwO%y|mP8#D6R4lVzHd z`v^&N0rB2_w^yJE1_Nx$AkYMiU2YQ}%?O&gL<-$K_M@I2c1em?E+vSU(`>$@rWaiqXoc{4wmxD5Ex1B-}!Dx}i-- z^BT2dQ8$)-+43^&fX`Mfm9xTyLHTR-2H=s4|G3VZe;l2+Mq@D;J0=G^Eu`~)q+2wG zhmSeLjp6#=MAOezj)$+d54Or1)yIv^epKRA7vGAql@yfD(YU7t#YX6ua*|+2Qct(? zE?Lrfl)_zi1Rz+9hGuTfFXuGlss)}=53>MvU6-7GC{!k=*YJODE)H2W?o=uwG_RCO zW;kw09meN;r(qFz45B+>a&g|0n1C!T;xq6{ZY0R0Q|a+`A70G zbCO!xjrk8Ofce(~SeLZeSKF;zD~X-fCgu}bQKya3cfb9MKLKPv+90&rGe)O%i~;Q> zjy$IitxqFDyQkHE1jGT@Ccr+M)xV1XHyXxu4)AUPzT;y&2d=u?4KsLG>_qt_?(-GfZZ-gyQuYnjRgv`EnsQk7 z$$?s3*Pp2|O(!m+A1%Ug-u8|buhO48$AZA;1rt#A_8-KKy&duI*Fk)(E8y5MmLFa< z#AgRlj*USfSi2+V^fM*NPL^;4{ zJuy#!_XDUy2d0;v;J(73FI(8LF`=$MAr~vTXkG3MZiYw92z7$~mwk@kIk@}sa5wW< zOJ?>`rgBqT+2?6&@T0&G$xa5+Ry76lquoch(Z6yi`K^pc@6IxXGq{b~4yv{b)l!!; zcA8shznLimgYBNJ52Kgq`&$6ie#FL-DP$kqD)a*Pt{q<-S+KfKWWk5!5uFb?zJx!K z^zl6+$!#O)ld;-Plt~vWFD)tAD0o2S`xSE$Y<^RyrJv4U}W z?7`iO=>vY+T~{!!^-4wZX4AFk*-#R?p6s)vl|Q}*3kR~Ff4K#>xo!bv&v z)+K-K4Tr8E;OjQDLS6NFl@<8Cd34+~PS&Q*VeU9a?b%H zjK#A^AEsf~$EIm7g-=W)Rc0FqWW16*@2YZ6*Lx1d50*7ZQ4rS+bFfbV>(s-UPCc9u zMLnFoV9O%TOPbg}zcFN!)CUNOHu<o*J5lj0^@!VzsZC9&81?H5aHMT#g&k2y#IR&@tLkxKmfqCeGzeFDH*pK9PkJOEugFbN+ z=q~ShL5~vj$rD3sTZ1f(7StR6yrM4ksKhQD>f2b^2W4Up6?)(*^I`nezs+-44zwJW znto!zV)>tv8m*`$^2gbaYfvyA1AmuDH8;o{B0AGkx%Gn-Xa~GKl4#y^|6fIuqqr^g zB#L6pBI|aItoOi6goQzY-sqp6$NSGD_y{HT0GV6AH?;B{qp~D+u~lzcdMuPjQ)A%p zW@`EXKKW`|wk7ilc`=4_N9jpiRTWLv+ZaYA>%M~Z{hftBS!I~(CJk`E?Y1eM0^vS6 zA}G}2X`(WIO*!-N#e#OL#TP|$dxLE_@U*GN;rQI}`!|68@Oy*Ds+IA%&Xa!oLbm@q z?EaD^Y@Z@jm%=$WNn4z8u%7KrXMelLLpeRMCB(1)LZ()+GO0ak8poSLhUkd{BX z&r4KedqdENJO*9p&8Lv{R(nDv^v?*xYP3Y!~Wa-vcTL?$HU z7{`(prvo2)4xOMyfc&joN#TIE6R?Fy2EeAYV*-BIu(EhB%4#P_Q(sZG*66PSi%|46?sHO!kZQ8p(6Vk?hhT{H3FQpSu@^y7QkKxxK5Pm zYQS*j30EenGToYPt$9Rc-nA8}V(y*?7@67$U~jKEXyKRmFFJqzp}@1NiAR{<-D2v=@}4I<$AK zOTd;%k6`WU5YAE!=fvfB%E)LCYCH`pxjbC6qmuFfb$T@_xH=pWf zXr1dN)EMQJbH{{c+W9c%&?(z-lQ7eFN!}sJ&IDM(8G_4;vd=Q^%#Ep@7J5I?%v|N&qAUjKQBS8tkaw9=USSM;emFXUu-71M`QtYTNC>$Ef zeju3UaBl8w=XbDZ<1xFyzRy8Win2%YEcJ|Hb?R8x#HRZfN7_f)rzde#kq)dy=Xu!O=5$Fo@edSmhI*iX z%rNi$Bwcrv8Rj=T!0QEwmq$dl2-eMBAN>u$6AbWA4)9C?26Imyutk7Fta?7?^0Bj1 z$@=eC+Tz6Pl0F^-waVNgW8vG00BKn(3N(p`%fAJ8E{d{& zm+)yr$&`K3(`U>5qFquP9t%q4f{8BpxKFg#TfC+Q8?F3`Rxct?U1qtf=ALS*ky7rs z)8EH!QNBmia06cyuKLo`n&=ak!4T08g)3DQjWKz?(-vBcp1l71uDar1Yw1^1H{@JK z+rw8-BFnvXDAIRaWqYf#uxN&{)-3CR8=g>`vU>t5`%jrRbuSyrK|O zKW%5L{qul|(zIhD-ebP3E<#7>P zIQ8dk8bW=nub^V1+bFVVWQlPJ7_D|yc*nC8g>orKe1MNT!h>~G zdF*zV2@YU~*yYpl6dx!HQ}cI0JZiz>&|LcibFTf~{``^%Q-X*|I7K+saQo2+a^iB| z72ThC>yuz^(NfXWm}sxhFoEqO$jX$i@fc2 z`PqdMoxadJhLy3;1^O?Pco4u`(AkslN{!{hx~}Xt;B5}lRwR`1ao!2S79Hk*UgQk} zC(EC_Jf&`R`G`Y}J5t;VNB{=-W$;FKS<;H2Kdlc7;x%l1u|kh@KXW^Y_|e6W*Y~wC zBi$^!OzS*cMmqs3!@#1Z?HsPxc?b?GRvnlh?Orcpv22mk3iYX)(!}CWqp~qDRpdsji~>rf_DrZEP^E8J^R+t6HY>&8g?wS;maBX|&k~ zAaFGOCvaLFd7g73RRa>vZ0oSyEo|^cW58jPoz3dJxA)DXemvOL6v)Xx_glM?XQ|}B z0q$1Pdx=uwk3aJ9SMKQG_Z9qOz<0b_7_TFHpELf2CjX=y@3)a@6QK-Z`djR&W(g?m z5l>|2VY8pJlXq&FRF5r%M{&r%y}?*Uq42bimeRCPLh=r$BeCOsIN#rws;P*tuC490 zqJD~I7o3MS)LPNkfqdW&*Quh#ZFUqkzGzZ6gSR} z%URpv?bL!NSgo6q?yRY(jolE{ZGWZ_Vt)>2u5@dtvi;%I-HSj@ij>@O?=?2PniYW{;%sja!heCTgk#s8QPFWqlv))Kk}^ACSDeoMS+F`l?4xqn z$)D&laC&gOJ~==B80Z+|h-B}5J7?v7qZNFl`m4}%4wbPO!Dt=wRW#lEAV(%gQ54V9 zk8d<=h*`&K90R-^1}-N^+6t&?coS;VkP$2lE;9T3KKkX@!H4HX82$dWFl(2L2o0 zh;SJn04MGXfQ9f=2mH@*1=zj^KsUk;wr|>%`uT)1qHe|{*U#%&R7xzRhS3l%CJk^l zer-6lr$V`kc{?Eq4)MaDdgaN)cF&KGn6{RlvN4`JBr%Hst>bM)V96~EMWEP{2ljE8 zg471K^^M%gd|^mnc@9|^nyxq&IWcG4tp{75-O>sGyL(KDi}cbYW&=-A;>M5|S`(VR zA1mz=f52cxOBJ8b(@R%$V`B^7Fs=g!6XACS_u!gcGrl8;|7nqn?APHCl{u1#HW?>e=)G zRr@GAop<;nY}&8`q#!P-)k`4Ptr+Epm%ei@5;7k!+Q?S$ML6>c6k>#~-8fEk>(Zqmv42dG zjZ`U>v-n1Tjqp`byHwFSQz@hPGA14I6e3hDpZ{u1`n&_^Jyo=atEdzC1b6SsP4w4bE4o7B9be>EW_k}TB;B%&*SG;q5qbdy zrZwdtI+az-YFO#3m2c@?QLUl=TI~#+MH*9sygJGO=}9akxc`t8yg&~NaILqu`}|e# z`3ZeSt(gv5<89+UuMa+_`7D9iB3x`04-(492m{EAoThZ3cK|GcoNprSydEPritrY|7??7H(RGGuuq%_eZVw~cY1Ga}p>I$pBJmU&Hi zI%qd%9-84p1bh~T{$9j9WZ&k8^QQ)vSie8SpT6s~_2NCx8eaFj48k#Emszvg$^fG4 zr>igC%GH-^k*4=hqJ_k#;mpUb8z%e)Bc&Dwz@`=rS7(OKy`S3u0bpQ1g)?`#@wl%F zJV*iCY6>hGM!1($8KnzWKZY|~qcP~`E~v2zvOn-CXYYhFRqp#Leb>@G`>(?9ZfWY( ze<|&&djsHn;tbefxXhYz0!0<~fx?l!g-GZR9_-bD4*zw+FM6|oD8!$+MNKHwPwzQ~ z94BOh`RHZt16ezV0!*KMCwLigfgG=Q{MbeC7@9?1Qt)^B@WflX?_Gnb|4Pa^ekr`h zVen2B`~|>=Ghs*Tn}RI|Hv5X9pY4#_yx4Fr z=*tcLL7>Pk#H0&no^)Ur3Y&5L0DE2SUZ0@XVWE~LHatcwSuB-w$$JExG8Ya-*c|8gDQDnia$SLKs@I61=7#NIjSMPW6s*6@0xX6&UTls&}*=3*L@LI0Nq5`VT>g z3@Ueqvw2tst3?NbPS_*(B+b3mqRh?nu%)}abz_ve=-SHMcfD;noAJ7JAOkg`&-Mi_-t2iID!~X z4kp|&DHJG z`vpgj4fV>PO9!N?ih`LZ7bX?(=ke_K9eg_r;2SCU{_txdBdj9@;6Qc(e@y=qyv<>` zNWY>+8uUG+hjMqW=iAii&h=cza>Cj0=xiDBT}Fd?DQ4U_26sIJYxrMF@bt6%zMF$D z*!fT1U(LV!M8WJ@pMU?!X5Lri-^aei`=1Nm8I-PD^6wM>&HIA<``B+n%u?2o1U&^$ zpU?Zu+`BXykiO{H?FOzqNGfqQ8yJ2HjXq1r!$AP2Jo)$th)Zl&#Px85*5K@098W84 zzmj~2*-w!#c>T9B9%kiNi@x;WV`v|HUIdTyiCG={cJRg8`ji-HELIZ$Y)yQZ8RqEZ zgPTpSbSDLzUddT?%z-1cw3}ULg6ouyt{^P7vl*nKoW=cUJntm}oedtoY;m`|8-v69 zyG%NyDo$M5{tMTuPY=hFP- z;u}Qzttf2R(0CXzD>uM8U+?ad(ouY=lr3(O-2}HWsHT$^0Hf(-aNX%blxuU564SLv zNrQHwL=+x^t3GD8hd$-Ecz1j5)b-dNjPPr`|kZ;w`jcl`I@Ri(6O>}@@xlcn&hY% zYio9Oj#ZuSQ&Zxeu!nN*+ZbHc&osEHE=Dr1>3mH+@KUe3M76T5YFKemZ$!@t)Ef09 z{Y}w_dP1TuT@UFJL{a)a!A-0#^Med$OzazmLV$n%Wq^&)M?I;74KbY*kt#g+IbkzsEPW#HS&2_3 z@3uYwuG%jJfYn00yKW8q9VUM1vs5VRR^J?Gmu=C`+DIU~oh1{zf~X?1hh(Q(r477` zqAXo9Q})z+`kp|&x!nPEJ6W>RZ4I{a?IS1{>E#`Pkx&$zg7qlN{{V0KWVGQh@0jHF zuO&{@VuDag!%o`%4kHR_opfll>fHXTf(5|JXIG)s$*b>MVpH2sqn%jhGuYW#tf|g` z_~^wX>ZD(3@bz0zKV}|-^t{w=Qn5&3=Bhs$3-`299pibt0?Ygitunc&+Yo96G!~C(?b`2pE!!K3SUSPgaKBQ2O7X6n zkXz!-*Y#_+Nz*)fiRxanxp(k@K-G}{gdvZ$%6jqT+AmZ+|HzaUwNG{xPa#1%o@ zTAboOj8)E^H{maH81;qxyY=+1tkqNAA5v@f6Gk?V;Lsjh>(4@;KA}9`d%{qR{a3}~ zjgRUaY%QH{)t|UG&JM<6FTDz`_-mUw$@XQCXi?%Un|igCcize?;V?*x>>=zFNCUHW z>qdJyFD98n2G<@5NWWW*Of#y(Sx*=X>}gHv9ezA490P;jttPG*T;+TCd@R!kKdq)~ zGk3_6Uz=HKO|CdG^N^&#s-_291j5S6WwSCZ+NK(0228ZRJwa+#0}#r0GKT`q|Fqso zRFouaU~2S&U5jkJ`$m*s2XJRj_RqvSVJ9?F75A^1)_#$SHIKemtL;ygFiQS4GulO= zB;KOLbCj6bIKBN6m)J;RHb!C#7gUT4&b(8T_?j`n<@b~pb=@aEkmJXZ|C53v4+qq^ ze|dS_KZjFw$P2~q$BB);khnv{*v$=CdpKaf)(F;Qc1g9c@CxNo{P=Tu@K#PJQ}9Fc zlgoUn>S-BB-gZ_skW8bvzDN@)>a8d#9#e9FmwJ)5P{7xp zgbH20i95c7`voNUts4KP3d2TbJpzLvR$M^{bshHo^zv1 zY9{Q1b`6(MU)oC~63;vpFU~4G-prYl13UB<>cmg63FYt64|lWbvJYgX5OV z3e_1*;P>vLqVl5pgTm}e-LT4iy|s<&l4owhawks&l^hm)`ZxD&ASF4`;juT;wWf!V zVN^$rzgRq*JMl!Dl)w-0V8Kwl4!%&LH2Jk(#9;K^L`#Wd?!I2Qsx96W zuUvCw|M-YCXln;vb&8eZb{}`8&xYx}F)@kUu5@^Ftg1mp(ei$xd!|dh1sPzf9q~4> zs*})P*ypQ$Nc;;p0Z2Hk|`e z*;~^&5LJs2)j1GVi->Ag=G%Rn&grwB?RdTnH9$56H9$5FY*9ngguSx6bK?~t5kqI<)%b9FREsxqB_G2~@m1Q2S?+dzKX1z>O^n?|78$4asrAe0w1$J%azcS!ylTA=Tcuw+|aINiWt zdn(lLJ<0v>;gOxv^wxRfGM@yyj#I7m9I9JKJjVPz>)K0fVRyr~|LFN7>fjduPE}Se zzWy$3O8UZQXy0v*CP%FT&JO`6n5RPImU1D~_XR&WfFOlrw8^rlrgu?Ss?dK1t8sJ5 z=_9s8@}tyiZiz{hSbwL+ro=Lzj@p`6RQQjIF9tV$EC`)!cPI_S{W;UvSsKstmne%J zx4-6j`9LpmtaiR=(mYyr@!j_=SM%(F@yh4C^y?&fE89hean502Gt&}MIxBNsnYZFb z5jM%?O;d518$Xo1SkW#VPCOM0<;QPw22+{e+Zx=juhndpciCER(D6KA0hC0pRJtS^P=aEp3A?TQ{dxv+PAQ&bdtn|ft}T8i_y>j|=kqYB+*=9x`bmvw zP4UaMnY%QK-iqsJ??DY-Ra2`53p-8RUoKq7GfmS-z+=$li;QuSTK_JIEw%nC4O^|h z+_{_Kl%>N*0#dcE{C2O-2C-r#;8Z=5#_QyP(>I5h3X0C|~hDQxQtpR)uZ-4gQrG~D3H3LJPVTg5Iha5sp3A_mqEVK3OA z#8~s3;#rwirB}Q8)V}yu2axn=JR+najY^Q zi8B!+suLNEwnpqAa!Q>ZlWV4}$@b<#A8$pkroP^aGqBsA)ytiuf4el^{|R1u^P^ZX z-pVsdY{#0J08crC+-I?=(24sfrwWjBC|~>Yb%3|xyL%Pn(0TmKgz~&T$oU^e@c zc#V!kn_%`v98x^5;(~ayMMaJ`o3_E+!d$#71yvfsfp7UYbvCq6R{!X%wprCAZ3>g< zMc#^gV8yFU}8ZCg%7J)H1tkQcixT^=ELao@K#Z1BE&ZeHoR`LR3rY3@Q{g zl%L>8Tu-Dmnuz^E!p!n}H+o&ASZ3n#eh!NjBDQ4Vo&BBAcD$%^lA=6}JyaJ^dpzKRwK)-l9q z!<<@GEelf!Pxv}XroeRVz^)Gur9nFnT z4TzXQllLi+F-hOWLx}K6{$&`muV*0eN|0t@-Up%5KQ$F_YJ_V=_)0%27Q@&r{?Lux zHa3(rF04(;{8bId{b?eDW%dYJ`VDs0h&=LZ#1qG59+ZDncVtqSI;+9k9JeJdd!KWntCu>5`W^oAl~K3=)uz=qkP?6f25v* zj@te#q_3>Pk!szEbxyG0*aX4v8=h8ogWc0 zTs>`r$()^NuhnD?IYS(sn&`R~Rp!_!6?3i}g6Dwv)e=U6M!#VC2o5cUME5n`hR23P zh95JFSVzyJbdjknX9TBJ5s4+_Bx1{BAheJYyp>I&ghW3L%bdi%vnrqR7S1I_QsWra zQQQ1*#Rh)ku-v-X!y;}e~vz#UA=q&@~!gJ_Ih~(^~9YPi3 zTjMVh)KVV~B?4px5@-!4XRj?D7*sy?S$Fmj+eTL9v5zNqa{T}Tn=DQUF~}Z!L2I+& zCY)2~wn3|(U(>j{hgG7+8@Ire+*(E+1591!&>8?JqWC zx?}Da!F>Z7^im^8Q%n#;VNQL#`jqhV06u3|s-qzH*8QCgt_`|_P(BA$x%Gvxkpr_g z8bLNtm;50Vv#6}`a}9Q)&Rg-ZPOqaQ3l5i1jIO;@*J3en#3wn)HmiF{7!3U)lsuI9 za=>_Vhtdf-To_+Flzp@_C#!8dkvJpOinya?!ltN8+Dtvx&GKJ!vRKRBMhEtoOVEgVMv2uP*cd_9dl91eYzCP-=gROZsWt1fNaX}$kN zPD9@uCupTpyk$&Vra%i?IE}g$$6~1<=3jDW@5HgAwz?V^vMTSU^}%{`HVQE^9hBtk zQ|7K>*JL5riq6A&3#;sUFfZ@g`Sr|m7Vrb(uX;;7Gdlc=td~QBVQ-cR_f5Y8l-g!& z*72EJ%)82VGN0okef?T&FPhUMrw zK1V;Xwg$(vk0}lJFYO;PShjf)!46D7b0P%n`#JTLtvA1P!@mY3PqVw6KLyN5%)RaaC&zCk}^bE@FhgNA~ZZxpn%Yo-7VG!1pwVMD9emZ$w{j1p9;$6UzC2 zq#ZB(nmE{k=PB;3>@%CLk$>;F``y1zznKX$yb<57@shSwC$y?rATu7 zA7xXjY ze7Z7=E%$^O*<*pwU-%}%ns%wx{?W{MmBXD#v}<<+pkFoYD8-Rw><{eNw&5ts+y4)Tl^Q2=#ujYoOKDFr zXz>-|k6Jg~eD(|J=DjAdtK=6$5+~LANj;00(ABe;Eat6dL`S?hxs<0-9km&k0d+;r z{{^dT;iURn6p!K1Q>A=K8~`yl*S*S-%PW^Aw;!IkE$lx;@xVERq3 zE(mjuEp(=r@~nT3y#aWYJ(_woT95Mfc1Er7gFxAR=a|VTm0EEg%Iv{kCZC`D@bRJC zK4{P2qJcJSQVzy5^%1lygE>dM5`(#jRr(%5A523kU=MyltZgTS*&8hGC5FYNU|TW& zImWOhV$#8-m*b0!9iF*AdKMWaF>K}PPVwI3a7uxDH?9-d1q?jD9tBu$ZXy;=5al(KimG<%x8q{ydDlw>JJ;Wp~pW2hYo1Xo`Mn<1P86;y#!&eT1p z&YgfW7@onWF=M3{U400(kskN!Kx4cv`0-+WC&EGjLT=}bADviizMvs|!UF9dtoHj- zN4rRkrky@>7oIZNW~9?_en`OH7A*K3UO5a{c~+qb1Xrw$pj@iwrS4&Qzh_nD>iN6s z8K195j*Mkr;d+1Vp?TMP`wlZGbiF^%zI%(isVdecD$AZ;$S-1T@(l!ziGrh={?HZc zl7r(|!SM(b5NkuOD$4d!;ez|FT)ZJ>XQa4A1*l5)^yUoiT7XF{;@c4+U#Yq7#se8e zq!8@XF zYkZ6+b}kX+Z+I@z#c@OX5*0k4#Xf;aEAuc_Y|%7H^TMdk*_#fS%Fozbt z{s<*jzU(c0f%Yf)*A>-{c*i6t21?=I!~@Djv}F^UOTI<}MS%{_K(=W);pNvU^~AzY zMB-r4HxLJ14g z+HUAcyF)L{fF9A51^Rn;*RZ1YYe;p(_58(J^9;pyBeCS4Y z!ij+x{_;Qot=eAB70nTDCK}UdATPyJf_n>(J^FbAwT02#!+c9zGgqh?&Fg#%S@{h| z>$mwEy7LA$Fd^PfQGFW4Tt0nmdox$j@jTIs!OHh^K407)T%l_O(6OSU6z{wK&u&qf zO?i#uS)99WZm~s$_!SF|Bze?_;j%JBdBQp8f5mCqYiKCHj4|<~&`*7XQkZl?_p|p| z1-1S?O{zb6OjwxqqBxax9!Gobl-?X1a7zi{pTQOJfGEZ={gh%x zY}wDKGg=h41&5?;QM?2!6)cL|a*N_5R%jN*nml@sxm!ZU$5g9@@irQE52N&eYIE7*+*7l);=nb+sh>Eo|Jq*5zvOl&Quecm-$`MoYM(`DD+d*>I zjW%2I@|m{Ag?EpCk8xcrPUp{K=;wFvg!@c-DrG|lcz^bcM8D2)BFCcSyQLh$<^fYZ zmhrkV@y0bn`9Mdy>k#K0e(RLtFLx`!TFDIP6qVMvUYUbwM>|pHV$0WaAF*d#x1*8q z&C=UE`lD^enk3Y-G}Hw#BB+5=2T$^gDsLex5e=`h?u;7~Z(gb9#MqzHhs^u&#?Cl+ z3l4a|cC!w^Wlba@vFEQ#M{p;0T13!;;7yI6yKsKGjn0244!4!7kL>Qbi%J!?KJk4m ztTu_lU^gblYP;g5e3cMa1>)k_wG`IAu5B{4K>|CshI|KHwqFF?j^)3})oYqJd+LQ; zZ**opsQGJQZ#H~IZ(wJ!w$oiZOTMxlc1{C>*|en{QrAs+da=zVYIgtvNgtH?%XLv# z@F&<1{XMWVY4>)4mOKXCzDIh8i)hmE(mt;7AvA9Nvi6F?_Ea>w_fGpUhDp}EQ1w_E z41Y}<*7}4=Ewnl|?(gTV7+~(1a;hZQIid0DDn!Sf&4@SEZhH#&K_ zpr3M}_@9CAUm9I(ZtqK)ooov(V{2`=#)U?7KsB+ptJM$bfGi_}^=%3}Bg84>2Y%;5 zL;lXR5TbwCIba2QjPKez_)G0+MF@7yP>cLN5*`+0l zLY#9^PR&GUm>^iTUZB2N!lm{OiLZXbpk2hr_McF|M$9N_#Sb0jI!dx~ic6n5M}#R# ze3tV0f{fq|)Z|9|my}gGcIoKz=oh=?qR6h7{V6rLb&FcwR4wVKd1{%UTFf4HQb8@b z{Qp*dlO+T$`G+Wf9Tfy61^Em22b0}QLpOlM&M?WO3%*%y(`{cvj#7o327bkPV{Mm$ zFW1h!uARSr9JXWFx%K=#v6G+Qx&4SKK23kjHd|CEb$MxU-l4ianKRSkqp82DMQ#qh zverLw5&=sukNZC95q7fg9U`b*+%A^*D%q55_rmYq>=FrAOi&gBy( zsmx}sstWe|lSlY(mkB5C;7IZ@*MFdS{N5kEqRPjveMt&{d*SKC^AZvu4fBgDP((1_ zb^&X?e<1yik3!Dct}~7-M{We>{~$kebDC(%{~zTk^%F{E2;EOleoO-# zBRz(8^*Wi?>|VU6_WXFVZO%L!T^e2OUo<=Jt~qjQT`1xt;p;i!7Ur_(P$we%SMQys z#B`mU2sdi%;5jVUQ9p#MKP;eZbl=81l$q6HJ|HXAVgIh#45$K3U*j}3jkeqADZUJk z)S!o*YHHA-c|Lh7^|3vh2~S|1uxY-!oFvWQ?w1`we^_6`tIhl12&$jnO70?O9E!%r z4vZ3kv5fkF#!I8G!!D`rZe|Y@R+Lz2s`8f3r0$#5KQeTVJ4H_jbM|AGH|r^wfJEkB z!D2HGztd2y%lQIYV3YpkV7q%;m_4<)H{POjQIyYxGy;*pB7Ig0GnsKnh&{Nzmo{Bg z4v}7JJ}o%VPXhEkagu${hQC1|hUd0|V;74VA5r&!yOOfbg| z<@Ul<`oo72+im`S?l_pEYfeQ;-c=NV+<{MBXWW@o)J6?ib_en{nH~Of_^{#aXCyQ4 zQkr#x_5~FofzGC^?>|9l9LL>NQq6rDwL=9fTastaDb8-PzR@pRZ!rEcJmv|fK4Ib% z@`Je?IJDhjuKlob3yS=Eglx&i!F!8yt#&oJe&MntfdGQ*0{l?JR;^K5coWI^ZW@qT zwj0p^7Shy3K$rasB^4dJKwD*Q&}L>Z-$7ZdOKbhv%qH`vX8p8?*;>O-D%(e{7&jWx{Gy*9G%ka0pUrLS@6y-8ooBiNDFzi{emdjDE!tWKOfaO!=u z|IUx9m7y>4Pn3HPWu==x_xlFYLM`OA+Qw2&2gRBP_KjI?tnBZYD}^i`nv37fdD$Gs z7$6XrB)8)xFr1gIbLRkGno{P% z|1rX12=_(xKa*2RX>t8Uv4+!%>wn~5gO80hobImokh8b-Dk>F`e%q0u0Epq_yoD)DdfwxsoY=UpAB!8PfJ7-<_D&JQZ?x!d}!7PLR4HSF1>x zn!29Ok6&b)aYnVqRt=h<^HO*6_sg@R)_+jGF}40*G!iyHYDPR)e`MFJa9)Ov+mIE< zE7#yREJW3eSf4YzIRMs?AQ{Rc;(ZTB@c=Pj02Ad)+y zc4n6%Y1a?0Np3&tN-jO!`N*5VhI=@fPQXOAt8}L=FLwhZ-VZ5o`Vjf1G^PeL~_GmfXa9!-~54 z&uT#eBH;BC&PY>Q`FZ{S{HlQk^S^aC2rqbd@osx1`q@RnRjBSd?6{Oiw(Rq_eBoNj z&j+_(FyjU8C0xB(sU~To z1p_c~i<$MaKd=uC6w<-W7FANeiW5z?BS@M(r>Op(QBNj!^z|0r$yYhvzw}P>orITe z<263>1)|#D$p4%*{be~!NLb);IFI5Z$sI(MbKVH8OL@nOabR%wef^72{0?L%k(i6d z(-J>j)(1>?2A8$<(Z+%Pe)neEHEvXhPa8ff54ASH1A z5;$qeH_08S3op~dnqmt$9@g8nIXAz;+c$F2RD43gmD>VVU5OivR$ys_nh#krb7E0& z`@OrmtH+ijuaO>mLtu6q=MwWeS?#CI>!c%5{gp5sCzzy< z%)z8{OhzU#uljNPTD<0~@^s>-<#$q(<}5-QRZ(|r>x7bC_22P(>-OH8I!vkMcCT=_ zYC)WK+t4C^XfO|SjU8IgU4Vyt`lE?O*{Aa3=3*k~cwnxasE`OK@?1&$!NNGOPm!JN z2Fc;sy=Z+_OQC;?RG8UMtxlKkY_eqANyy{V`K>rtp7de*{@WhkQ6ikz$S}eysvG&t z??6~ljy}Tae)F2f-Me5B-t8T!HT7?iN||}DW==3tDd1<#i;9q1an#;Xa^>6Ta|*71 zr=wLxk-h^TG3WY`{D5uG*+h1}vcxa0&aC_tbcbxLiG|Ryv8&_$uR0heNNelb()#E! zEX8l+`YCf_`Y16oTpWC-IxO9j_DZ+2f|Aafn;PQ*Q!S6 zZ+{TXbS}{03+gsi)d6vT(K6oS&DU_=wK!hciSLj#ylzbEAIQ|B0bxZrXxE==@9dAm zv212hpz}TUWz>k3%J8h_Dk4t>%v~bk3G&?Ux=ag zuL(nmOARkw_c9NS@j?eToXD5NN$KS|4^CVAaemdMFhC`4`j4! zo~$2!Zztn9-1LZ6EPC$+I=n^Kic&(FWucQ}*ma1kJqC&UP??&J>b>+p8qe;}pLpj2 zjg9`rn@c$2zd(c1DhCUp*s6C?61p*RI`^Y-U)Y61a$tKQkh?uGMJi&si$Y7g21{Ry zKY^~}4E5G^GjJWanu+`g6CfApczoq;)CbWlz!%y9fJ+Joq=;yklnlgL=7lCY(-b-9=*;($MI< zR&zVjWj><*ffd2Sc9L*l1*7}B>demZncZDCal%70QCqX$^O;YcZGx!R?`<}Feo~^k z7j1$nW5Q*8R~dy@a$HId`fUQG@td$u2>jx^CYb7I{2f>a^Cv`RILWA-*nIKm+6)1+sgXJoPM&tmsx1=Ma=1KbMr4e?$>l~X0HD&`Ta8Hd@b|x+s1JyB_9O=~aQl0tS zrfy!2sB)(taw5b=HLP8oz?H|car4lH{CTMr_bST04Nrg_Z7>{5vp46CJ zS@9e67Zk_=URuHNIHWR061BxSqjQFA!lyUhN+<;Oz6LkP|-kl zi~Ol$bcO-K>`a&URSFztP`ZrAS()^3ei)(j?WBg6u_LHSOBheK-^xf8B`{~Uo5rsG zvMtG~*=(xP%SczH9CB#2>KdM~^7g^q63=@Wj!#c+9-F7T$wg9DdKMe5bNn2&@@2Sb zD^c8aV-ElD7AIE+FK)qM3^%EP3ghlPN%7(gCNlLikHMoxWVcYGwg`URNg=;a{hlP} zq>M28O6616U4;PvV?!*h31N>_hW3`9VyW|AFYK#r4WNN~zFO~(R>w#G;}M$hJfoP!j-G*X6!?k^9cph#D9iXC6Lp;3*Cujg?bYdcp?w%J=DQO@&CK?wv~h-Y4y+OB0XG}xB= z$7jB^dXTEP1Z992%qS}HleQ{#BnCE)HR&!b-IsWf&k-I;MP5qsULy{-h}tnDld=1G zsjbwMIVRRN2bu)hpS}vT5*4IA`yt(5JwZ)<8)(6Hxf52Qeexdlo2kq!e0qn8TFj{% zZ>GV)5zePKt^Jq$hd88#hitSL_xEEr?xjU9oXNUD{FDqsD_^bhe%D!*LbyGGR<|Z) zL~E!o;SBSz&otS|Iu1pUb#18Ink95H*Tgc>#dgfWa*W`kF~jkq>9tfB{k+>*oH z%J|)}O5E~(*O@)Rs-a%t_HuBWmDokQ1WG_l;ef8AZUb8D)w@(`Q?~0(wXbrE-I%=o zvMiFe%;))A!_xT3a;iPN)9wbk|N+_6LK{VH9%SEkWB`R0~35Cf#IpX;X`X z|94hzcC2B$fkwlAJ>k-i%%^iK!oZ8zE}P99?zcCW%e^2={}As+iVQZej&3&`$tGBI{(HT0n7REG8ff(0I0G4Wls9hDGnJX;Hwwc zWS%9)EV9a|H;`p_%aB?{m5&wIRQ}(U+_O`8?0NND+WR8*Ay-OBxb%W%D7kBzBf0QQ;=_C#y0{O7F7W6!An$g1dCm4`PrbyDVWcb>|E-Wqx? zmh@DLK&+}}B#G8VaFLr>4PdI}K2p!g5;z=28tD?@!d#geEO&V`Og8 zsb+F`D}S!52DwsbJuxX>688{}i{=_2aShlUG|cs^|6`TJH7ThF1Wa;gabg&;A9O|bxZP+|d$xKd z-Z-y;!LGf+_3c?+oImCv3;`><4p_d|QWrdV4i^;6#)ERAl7eUfS3_1BP&<#(~na5#F+jf$t+Is+(zsWg)Nlv$=U zN7{>HZ5v&M*HfY0P!Gt~po8`&)SjKhP;>Q!%lIQ@OwvZrjAtlgg=Ku-WgMf7vBHdX z)_-N(X$+0?TH*R#>a@xS24k;K#ArEAaxWXok)4eil==fSahXsAa=PRfU*zRummK8c zH7P#eKSMK=nHfUW{P1|@lnPFQ2Dh>5i^yLBlu>V3P)?mXpVD={h8QSe9iKi0UNyVJN0=S9uO?ieznw5+Z z`%~Ap%)tOY+=iflIT>F#rGmTWIJ##Rdj|UBXYqO0Y<8plMkUlk*&a+R&z~IsFQdEy z7dxxJ3RBVDROIUTHFao@qIwFNcV)j$*{-#bzTWWJ{!P;Co;c|C$5bO5_!l7;Y`&z5 zG2AS69qe-&Ud4>uB}}*)C$KxuU$jkCgq8~B_TD@;JpmHDK@-cud?d9~&*syu8i2C}t_q)} zslWra#{z|+AEIr)GzZNvpkbkTE`lf4cAm?>*H`A(kOaZE+;DZ>D*3n2U)jHEj5M9k z1CTLScdFOFbVl;OrS(%nbEWe#aO$i@?9#TkE*Han6f#jraU=uQ9P{$I1y5pD%Lg(iLvds6g2o6o{HczSH?@e`4#ZhFuU;IUJ69G9tTG~F-Tk` z{fHVj-|K%H7|!>aQv}T`l@;~oT)cVZrmRwbX#A3=GCPx6cdd8Kzr==daAb9kwCra2 z0$-*Y$RjO9gE>{b*eg8?_GZ&0xZdJ7`)egSmv6Oxc#qcQ_1)FLe(qS|0^3(^xPJa* zgpLzQ4bB}+Rkg;xk>ohmrTjeQ^2c)djop7;`Ef~d@~b~i#={?lzD3pr!iWRi>cb6{ zP)Mx%JLTz)D(~jUE&i*M%Q^2xI}p#mpI}~zBsH&$h-{G7alvYqbI!EVz(<_^;>}B> zpVfh1EgYQOewbG(A1d~b9*Nxn7tjuJ&4%i}Zn>>{sh{ers5SWDw?d!+GmS*WKMaE( zu5`>{s{-(c7m2hQXUM=i=;L_NwBzsv_6u%a5x)|?+AoQ?0^J%&w}Ng$)2kG`J<_89 zMXc?L9!1FgR%gh{jXyj=v5=k1Z#?H~fVyhY3o@=Ja98zpuw&~8xw6Kh-Gc<=+FEgPCH!5p2*yqI09NoECcD5zU@ z#jREGUheq0pL~LD&Ts*J5o6%4NT2)dJ$Et>zu5?vD7xA(43&-8bA`R0_w$Yh+w$J302kBwcqdVH$qJ_7T$Q~U~r z@GvqR>MwM-*1DV{SpOF@IF3_4H|pL&*0aQZj(;#-g2R7s6X>ulm*l+v*@1|}cirlj zU-tGqb#sY{k}7c?E1fum=q6hF^QzA(84K^wI67Hs^FH7nErQY1+=A&oem&E@j9^XS zyp5`8G0+s)V{`Bw2ize>*X;}_66d@6Fy~`OXj=ASZQE!Amhj2r1@cC&so=ijMZ4K^ zBD!&KbyLP%J#zcE+`0e850=qV#M0Ouj^UN}hSvZ;o++sa4xET=#4f9jo@x77r3|uT zHlWPpK9h)90o3^bC2XxHhi+O;o!VD*-K-`|lRF|+(ZDk&t;SG&wLg29M^Xz(v90Ul zZocRC)jX8*g-KUlUB5S`dAW=em$QTl!t=thZR=g)DMs~a>F)946rsyEICVemOW8Vl z4lD1e4ODj3!6wY(Vju3N4>GiSX~_|>wnkPLI&$;6h%V5k-EMTMlqZ%jQ zK)`R#caCX47=Lid$rK5mJwYecyMsPwg@FRp^8%5(1%P{5FRp;iqHh(zetf9hWJf`- zwFDZa0gH)thrzx%xO!fHmN!D872Nqcnmv&a{SOJO4!@jq2X>S>RdgOS-KpZueV%@- zuqSlFZ3$A}fN8OYM(byFW=n1JA1fLt%6((WP2~{IU=oiKv^*2Apt@p?MJBIFo>Ebi zm=jBW!3h)7{Hj5SBRC%SRzYY@WSOvZJ3@vt`Zh-tn1RgCBRf z%)b?hQ2537-23&so3w>ikwzXbMpalEoHUOMev@C6)HlW&-%Zh;m)3ddxL_dwiRy6s z4=8sN9~8&YD8M&7BfLSu(}GEtyGH7jN=jTUzm|20TSQnrOo6=;N5=hl>3qsa!&Bukb|6TFixqMCQ&6(QN;yGqLi*n z-0{5I-h9?R$+Zy4Q_Xeztl81q2xbGf6^wWxKJ!V_W&hFYF_L;t3<!&DMln)0W{Y34LA3H(-F>?Z1>LG z{BVSpzJV0S-NhFe4JK=>?Pspw3<|m}&e50+v#*l3#rgC@Bu3+x8)6a%I!E}eK z^nSn+Yg_MX8j=IyS_1*Og66D>rya4T|7a36MYy%5D0?qoqyCk9ske;iZ{B3vSwyST zs66if!`(8Awo;)Yx$tF+eP>g5sJ%bp?vaIU@1u9=I4uS(!c?L_-5IfEg{0*Z#s=~5 z1|W!Xr3vWIegtnCHX7x-9j<&V)w_7Yc_ zn1G<%9F!tCVpk42uIbOO?iTV=(mxs(J%$HVr*;!Iik(TB{|2p%Tz7e=wNbPhG$Q(M z4(^%>23K}Kjl)#_?_i+Tzu(rz%x2sJ|9v9SR5NLjOpepE+MCw7_jgbW6Ld^)TXTO~ z>VQJrlELWC7l{xRAqHlpbufDn#T|ZFyU%kku7AwVVWH#)e+?Pc%i$a-*W?`&%E23h zy7wJV`iFhi()1*_W@+ktgr(_(W6{+xcDBA}AG7XPK|gPcetu%qR4r5?Z@g4OdKY-l zt^$@&?{cmiw`-`YZ5Bw)zP%m#j{8+IZ+j`UVnw#+kc_vP;|B-`4}42FTgTWaOZs>! z<5;%pof*|jdq!wM?-S4ix}{?N{{zWs8Vqhr>OA={fC;Nj9Y9^M;Ar^@+ET2SoB)&T z6mPzvLL4+0{Avll*F?W@_bQM7C&y^qg7GDBBN~)6h7b0~4+%dLBmN4tzI%&*WP`ceH8x9)v0mjnVXA<`)Yvn4>Ts{D%Xq3XmVGJXR`kf(KU+p_EHBEw z3D*npDmTSwzY4wQ#D7y)T^$Mkvz_pNiBltS5uoe`IWD_7`0T%KYREnsZjY-3tpy>O z^BZk_60^hoV=}o6zF6$c-c*B-QD`)EaE1IBeeZv4vGl^ao;gZ_8U7+|6ZbN{HL;x@ zGqH-=6E+xO+@BJ9YlkjLcO|yMl zN)CH$9(}Dc96$!Nr7Fn8PD~_-nI4((hs-eQsbtS?N&a$W%I(zuYQvB?NK)6G|8uIU zpTc^wA4U9!Rah{(NFtz3EP+e2-wx4x|8>?K=UfP?e($=MI@}~#<)`Lb-xEuJ-=u@} z!M}JD_u(jHcQ%u6r;>J9SMF^M$A|1TL?$1@xd#R_FnejgR(Q`}-XEs%gHjEst_d?6 z*L-_BO=c=@90KMMAw^cCt zi22mV+O7qxwzv5JY#y+2S)z*j_iH;F-7Y@&e$K}Fk1XR$aPH9qirkgr=2ybaOf&cz z{Cmp)_~d-mChDWMH7j+XHmyR&vB&AbPpjUV%zxTUZ=mr0@5KEFm8tt?fy4p+f;z6F zj?80#uH4>2DjrF59FoD#YC_svn+*4WKaC;GXJ=uS4zOZuZzU zv=6zPN=3Rw^|3%l81h7IS>E2Hxl~U`h<~CU0A)-60cau?O@;S`HFe3R!qmguRM6#l z4J6W^XDQ?uTP`bgoJSqO*T{|0qXGL?WG{BTZ2X{=vg%Q-|CiauGjJUVyB5hN&Ya<; zUm$D5-y?mb4yVhm`Gf>qi5>e{!rv=iQ$ohwOMQ(PC$ZphY|p89y!1T~Gu1gCAjJg> ztp!i<=qKe2xOH7s{ek|H@}b}bq4{c(?gj=lUzhV(%Yw-+*vS*dU5KF*)PCr=%V1VN zjk5(5S0{S}6wm8uBj6`x-X*K}(rK`+xYL@kTN$<$+{*6grDB3n?pogBZ;BvpZ9l@} zr+M`D<;*NBQ;bYm;2)tle=hJ$Kfnx59wjNbGx*!fZ2ichc!-#7NW|wNeJfc(7>NACb z`dIui0msfyZ013tYI$vDV{L{U)@U#?Ux0xGfqV`Qp0u0eHw$FLv_=jT>d{QJfK$aH z3^QdU=YuyK5Uk#AWoZSOgBTZ3P9A(+_xX5lG8 zHo|fzx%+ju#;~iPMJwsrYM0=m9KUu8^fmFBV8{f`Z9&qdT?E}7tF^g~jMdE-me5s%i>x)!HTy|fgzxUI^P89;<9QC-}7DxPr>_pwJwId*Ar zY--)5+#Ym;`Dp|P-=v)D$~A$WN6Zbop(*y$(xCYg^pu%&K*3NNW&PU(9C}rEy_B{y ztgCVG*FG4Egdx2508ID0hq8)>77&M;wjuU;|0np&njVNn64{xbpbz@1SldB-w>1np zx=WcdX;mBb(Zw*MNkxx|EaLu+R!^p-jzq^SGcDCTN1V-=n)c|~dj4qo#oA7CGj+&=Xiu8y65rH&XlXctji1q@5@cj|zG?cjm< za6U^!_eZ(%t0?c9ZFEI)M4#iO|%jm@^j*zgxoP)63TWgu**{#)zKH(r1NI#4%%Ny@99wzw$6+`S zlEetC-c>j?7;(aj53|AID`>&_P)zZ6`OozySW>L*0$R(;5|7KPYj}bheqZRBV9D1h z$LV0I{UV;2!AFrns+Z=29FM(uM8so%f_)|XC$iewpv9v~BUZdV7zG~|7x_r~4_l{L zJ*rF;+!mC)>=v;lz3)Cytg#Rc&tw2ejd_$W6QDi`2l5W{(D6O5Ndt{~{J10C>r-eU#(gAaURfQgWbyZl|Q(=PzXp8B)*o5c%_#a%*A@>GPg7o41?i_RGzCKly6BDEsNyUMBCc z-D=Z&HIe1TcW{clTkj{G7rl@EjouU7cB=0#bdTTI0e1Yl848mB4ql0Ja`gK*?l9x~ zKu!~|vm(GAsmbjXS508KnS2lYd1gsty!eUkP5Jo|_ZMneV3n|rBs~A@gxqwbY*2fR zyIr&f=|f{}mHc&=+1#lKV9Q!_pJjKmd|a`gWcHjNf|?yov$G4EwfSM26u;q3mJz7W z?vYOJCenfwtsF1=t!uIV#(1ZNM4<~s++nFDEb#vPMfYk(1-AMa+$!*}F~VW(v`=sZ zF9N{v|K#>j-ol9zjhpvxa4^h|7jNj^6z)HgyUXf-)p_Q5^1yZ5K(<-c)a-mSd^@v1 zCU+mVrpXK{OYYvwOMj0CN*-KTvM9M5G5=KeWpMsW3mFf~zs_n&?jFbKYnSiPf)5dW zBzJpW`ZKf)6g=cBzYq4(SGe!xU-3PJzuI*`{?N}F&{Y)4PN3bW|Bq^Y*~?3PjStF^ zdYbp-ZjR~g?`l6bUpwQLd{hS`h(Mz)W%ALXtgXH3Z%pp)Lo6Ct63~w7k$(@m@=|he zu+GWpCVQws0=|XWdKx519z)ET1HSqTXF!t4O?V8H?@7vV&7V83vx@GN(lWCeg8Z*KQbrZs0Jc= z(98_n%do7kmtH`zWpOX9c-MC?<3=>Wl!`bE6l8ve5$ey*h`AvF71bz0@JYD;%tbg707xaXEYgPFa zFMTo@DS1GyWbcR$lh@4P6py;5eoVkGJ+pRHhb)uko}=R*Hgf(FtDp3TN%EIB2wPah zrns69&((alm0;<&0AftU`icmm=s4DXa9v4AAn<2V{XjP)R|hvMNAnf&S*Cu>^F>x7 zHJ@)})=tLI>(1R_Z;)+{sj=T53*;silTc`VW^YZFFfbhRFZua#-oo3|?dDVC%%;q% z@tFfx#*24!za5c^mnJ+GyNZp$qez#Uux)v`0O7zK2r?Xn{Drt`hI^ z<*3{j9i*;yBd8r`dWY@qO!AIbChNeZx8T2|S-7t#oS6k}toCoyNROAUQZ^L2Cow)( z>H(G7WevB$L10@q^WuV_F>G##fCXF>Wfze-xyk~+da3t#;ltPYklB#E!o3ZTie!IG zLagmx$}y&=-&ruG)1om&S{WF8N_Yumpn=&@s=A9(FMTX6 zwF(kR27LbNe2F)MBOlUapQ8%)%wJGpVtMD8bA-e&5B9?z79AHaGt&AkIMw8!)HNUh zM{e8pdv-sHV)RVUZvJZly(-ep{0^#CfK|d762Lf=rm&7lnv%a90<4Kk(IKs0Z3h_Q zN{pe4b~Nc)Du`EpTz@8r>aHsbnMi84Xdm51L07z#;wSa&@~oENV5UtD0afBgv9>ML zZhN5i2A&{Ec}T%thKP)!wceHnb&=_EL~f^n`E z=RB?s_H?^;C%r?$^A;UK!I1d&`6=1&;byJQX4^Ue2{&POfA7G zHk+~+r8n}rTA-?rN8PGL-An7FH+ta+uh5ep<$pkJkoEJ|T-IM&)~=Vr{>_Z?EhOCq z6xM;7jlolvKXG?watrHo9yh0xPw^vq%o{I#B+34OP+VE`3h;%yk<^ns`zxg=_ZN#h zH@?eqPsk;NN^wr2mK>Sffp_fNyhO9lTcjJ4qm#G4;u(;bSE97RAXWph`c8+0LZopZ z7dVouOityF6=l2QtFk>$w$5Y&pYlDskY;l7xScD2pUZ-uJ)b`gUs0z{A|>kVaGrf% zU5jLyw2r~5hv`>g%eKD*quYU8gSDNs>`)37>@V%sGp6Ig-a_3+#Mb`$J50h`5HH@+ zy@~U8nmFNlQcUgLAz$s0t}J1CbDt+E5zq88DWS7iQ>uU;5c+Jyi^6L3UDfye{+s_6 ze#Z*6$M@_jh2IB$>HF223cv6DrSErhnP0wrtU`O#zoSR{V0Vx2ub)`hKS@u8@Z0)e zvq^lN=#zY>(=Y$2uu<)CbND)NY2hbr<_ha;?(_PF!tbSD`u_c!3%_f-+OvH2j>7Ll z_xO(ffQwt{WgA{}DAIuphCiN@!A|SASBV%tGrSaltJIauT*wI5V52XipTWuPL%oHK zl!v9a|H0_Tt?n&G1qJZ5_F}*b->Z7U(^}0nSq0w_2Lfg=ZKucxAS;CpLPRgZTI zi&t=dSLcylHvO0UGFIzQvbI3MP3y#!5(h`-m{7z1$m7PW%o=Hy$jI6`96;ny&!m?? zj?!3{VSFat(6G3_QnIHkI*Ebkg*o|-6|CsW6Ju>dDFQmT-ijdAqWOiTQaa7mnn}R} zy+Yh_$}Q9*pnp|erlqKjkKPs*B7oy4ul45T5v1ZO38b0$OZ&*GA6yy)WGNVKp~HD=N?K)S)NQ@few zX&N;Ge~wt2D<0>_|H8@S&Tx1A_>r^LtS#l>_uAy{QZK3KFjZUEmw4$B!tB-r7pPWN zHH{&SrDhRnLWZuvrQH|f#UF7L*i}qQymGC#@N;3H`IJHN5d@zRW|TGkA5vS(8QvH& zgk00(nfl??-kBZo=K4}^(0C?s7ftgtv^qn7)_U`I2=Wo@SLGe_Yjcf|tIYM53Y0X8iQeW(M6*(Tm=aLTKZ}9NzVud_FLLK(qlf@r>T%L=jQ|{GUBk^xiBDCC zS$7@TO@SCxb}RbwBZ8!TJn%x`=a4g4(;GLU2`*tg2~zpqPg=pz8sv{?3!T!XElwJ_ zzJoS&cEw9iqLsWXaXN32EO8>wID0tA-n}WDtfM}3fYnh$uoS61`%7c2SgN$HYtxA1 zI|gQ`7I{B$gs2CaE@t2$Yp#6egXpKKfjN`P02A?XT_cTABh~~sa18xqwW8RiZhw^A zeb|+kGC(!Gyg`%jpZ(eQxDk0OcQn&ZbF5sqs2a7#o9i}NYXYOvTk)N8JckZv;`{>h z@y`#3S|QpYMy)m-?PQQH8j5$0*Y;8_*wsRTtn3WVzn6f5Kaie-?gZiBcUQ^f z;61#@bK6=TtGx7Tej4B5+-1>TE%Ko7QumSKVy4p+8@f~UlN~25de~mlwReTu1Asg+ z7|xGXdwuim#o9#6z&B3$mlozX_;!K0>}q7FoL@<&%fFxUOZ@EFpJ$YRQ9ghB1!T#I z(fb_sg$n?m{f%X*0za=&pN`9?$S8b0>*`;AV~DRDF(1$8;4;;JT)zHzX6kS;rR3*K z%in?w)QVnO!B-eI&s$M*cvI=twaiN$1lV)mbhR64@nNZG91YaDFnlnSg`_do#j>O{ zpVHS+L-W*WHr|=>b;e}okZBoBZe@BoPEb?aG(enSJ1GDkjQE%7V-$Jxx;lpNdeU9P z+Gi}#**r((a!eZ}?kY|Rhn_E=T?-y3VmoP2NNg+(A)C(J?3lM$sXFmC`D^^aOqhTP zGayc2q502R9c$^t6Lexgj$pmCukPjfUjfg{_RG-|aZ+lVr;e#fzOy}^xo#vEz5BJ5 z+iNqmW46}<)rd94Tauf$3lsDA!wAMRJ`9;1$-5yFbwTOb=Q_|=RV;v@#K5k<0G~guZ4N9dB1n&g-_yt%6;Wu+C1wRJ-l z*}vQ4p-R2m*ilU}HBQT{iE1368fOrU$W^){KH|CJHEXiHRpo4|jQhPZ&&8V`(WqIL zjIni$XeVq3H6!U+2e2^W#ZRmWddD-bX4a_e*Xdi_9~IA>fR9KquqS%a(l1zQ-zD?M zv0_m1LX6(q$}|5@bXRYqIx=gM9cU$3-ZG~Qsjln*7fpQhD>Gv<+d$vD`mSZre0>7x3ac!_bi&-o&6Ebwkre}OTxItZUwmai~ga)b1SuF zUL^YvWiQ)p*GBpSV$?XL*REJ*O3|+DzUoU&ai$|Pz_0B~Gre|YOPQUS4$Adaxn8@o z+ZZZ;ROSS~w%FxZAY1OrDZO^jQZ2i)&)9oyahU%iy+-_?(EsjHlSm^c7(}>>={9j% z`k8z>j*!*MYz8!K(PSrp&B$7Rv0I3zRP>YoKjzSlEtVXVsf=iFw{w&#y{!(Q{>{d*-S6S@L#t=%$xmbU$|RH)rQXlAuN zk)tEAwq>N~%5>GfM_ZigfGE8cg4B6$AOZI{R37ecV{Lz<% zc2ad@ayRA?U8|7XU4nlPAjrg)@}2pCl-AJpl?Q z(5-HuOfcsX=YaBWY6%fjjlf&hR<0V6L#*azJL4QoC$c4%K0;Iw-=cwR$0L)9mmWq& zcO9ZuDsNF4?>&4ZwarqXw4RF7EUDZ-y@`ozS5LpLW*s3jR|acWrG49AK#?=ea6Yr* z^PnSH_}$H}tM&bW(%eC<8F919&!nUvY_iJS9e0^CU}e=6L){5s>s2N>)PPiNo%1&+ zO$BI18*j}^t~VC?GV`}v##QC~1UG-n1H@G-8$9Wrr540#-9BGg@cAA+XOi|AtV9BF z=lok44r?QfvSGKi*O&XHp_zV&(;*RWKKY15c(g>_4=HG)3!p4wXvM%vwdn zUVpLvf=J0Z-6=VzM1XGkrhukrfMdN@=c*~4>uy+0{o&Ev)}<+GNB@F`DK_Y-RRAtx z9U3gM8g(6X%ATB%egbm=j{H!DsW)u998FefYtVk8OaG11OO)Q3RJ#7<_6w1-otKsp zAhK%t^IL^ox`GwXz;yv|q7%+lT^!pme>1UCj#|De-A z%MA-qRc384c{7)G2q7rhlzvnUABM z`ddn`A)P&Do_KpO-H4ytRL@i4m!hud@*l{|S&Q6ar5tpC2S! ztTR=iVdg(ZZ(ON^!MUI3<37|j|7n_Nf!np^5dLm(G(IS*shBmjT9I}Mr->uqyL{Hl zGSsbx!RGf|Ha0wrO*kl!2#0Vx8?=Abzc^RxoS1!+E(y;Vex;I=;Wxb^zka&x4oWJB zCD#=Pjib4~jd1_XON9=RUNxXyLuy?9$d3mzrhn0WD){f6xLdw@-_dK)IYqteR|$D1 z+^)%8|3IwmJ@5h{d?y7VD6l7Ajk;H#19-szB9xoe!1mKHMW8Bb1%*Y~x3=Zv4bnB= zTh*!T`h0qBt9#dvLgd>%B{@bDz`6a34Szl4kY+L?>ZmAo>lwrP64+)vf@%6ef#tIM z_9E=BWfOueMGQ`@F6Wi|(;_ySJrF+8qTzs-*}1s~|KRK(9pv7F|9R>A7^9pyP2*~O z5W9}XE(}O@HgU9RI6cS)W)JHswAh`U#h*~`aGk^I&iP<V~%GAM*KxK&)C+6uKU&lnNh05|e}f9F1vOt5|bd_H8J=RW6d=bn4+ zx#ym9?xz&WC_FECu{*(w2QD#xo<`uAju&qwUh@rxj2?Qhyl}(=Qd0_DSj*(@UhA#2 z0z+6aD+>ursZ>%&C4RY@aD+9X5_a&WV+Y5m{wo72xQbuL4hmiUAAQl)zmFXJK7wBs zwAbKAsDH0@SbLw&!S96c_;(`rTwz3P`oUZT-3_J~T!M@e@<*c+(wN`KAXhOFv8Rat zs48{L;h1{F`n&V5g806{NDmpg!wxMQn<>?p`pM+$qQ!OlyTZnkSd*H@CHIYGZPemU zY$O|bslu|Jk%j(4Nr4B>Q2+$gA$1dyu(D`{9$o*;3?4&~#FvS2bGJ--bE^=a!L}%CM(lc@rT^}(+jquelSCwvUsOn>k^U0?%8)B*MJiW2V#RLS_o#Cz80pbh$H^g zpKAYr7(>xs>l2Qsf1sAiMAHb1<}R^8-;kxHo7kE!vD#2c8)%w;3+6NOc0rUi>FpNGa=g|r=!7jKx6_h@ zGw}%+Ritrm>y-&~c9FT)dbjIyf7SO?etoiA^_Tn9w-(OWy<7M$?V-)<%+9e zjPh?e)FQ!2#=?UhSuSx3pL@=mQ5py4O_m#iDd&3ea48*%QnN}bu4JHOP{7LQM&&=( zf~8D8mTXjh_W@XX050dX?iaRMkr7}OfL*jE3D5tP02=^g;@l>XW%(dRWs?MQrj-?O zW&KislWpLFCC&g35a3}3xYD(5q5!Al16u2LyboXzfWq%NH|;F*pY70T3K9I|@{Xp1%$_m)*=w30UxgSr(Sh?gh%qCQs#F`7rCWG`5ii)g)!UN5`^N zJZb*t{1fw{EJkx@cP=^;WPorV877o&Lu7@!VQfdss zSENzw*FTX$6Wfb9zqBtz32{2<-GT!0H zNK&9KJxoQzHPg5+GU&i&X0vA_k$l7d_DXeX zcE9!sG5QQjHv4KY`w4@f&gSMz`kvP0FiIp%l-Zlu7sf!v(}ZrLhM9bVU|LzC1=0Wxb+4+w)6s3oROYu&0A!r5W+4rU5C z&Ls%hyN7jSY?jsqiJ=Mj7>~Bss~h^~kL8O| zTXr$ou;)Dw1y1YDe9Gty2<}=jOPcTvE>h4p|3#y}}~T&EH0qiS0j&Echo6TpU|e#-GV$ z1?gF9qqj$=brJ)n@FkC9_D_2yvP|Sxylrc}VQZ2va|XQaWpCN`{f9kQ&F-_;vaj~{ zhOKRmJT*w?!pXJzzINDJ0Jw8bc`yq2dwioxKb%rWAI{S?hg0Ifd|1FzwnI-YC)={G z!sXk`pYyCXZ`;dN!+2iCVH(fWS2b*n>R;=m@A}vwsoeop8<%|? zw%ti>^^6=gWQ^EMOnKpL(SP?oFOUDcOmW@(hhwgG$A5I38U&8FQ_sJsq3NPMS$Z%@ zDSxGF{qdKM5w}RlB+4eyZBQQy!Huv6F`G#T^%kp0o+5HhEfyH@7A>tw9QRzaaPntRaOC@Waah zwDC7AVoVvzj%R^z^WJNnq4qwQ*WOk#WUn@qA^)}>?Amv)it)bFzSC9TB1jIeWLMu+ z0%W;$$jV|1$G1lJ?M!{kbyCZnQ+Di0AtJ&@Fp>}f?O6df&!tfRkk|W#vUj7@@LDr! zXZ|1zqA*bEig@i!8waiT*%8*9O|Ht08C1y>>81mPy7cG?!?*q#$apP{G6$(MZ- zuH&^{sG9RJbQ|9~8d>*T74ua^G1;;h>jOXezZQ6|3UmfTX9AF&Ze@SzikPS(a@aNM zwN~!<2dzAnR(9*(&ALB^B5@q5c+);7GLp|jiaVXVyJaKqq1d6Ofbma#NQ@y?Vp0d& zjuMPJCI5St9`{X@D+%l&z1B@`ydS?b7^+NtZk!O-iu{Xc5@%3F9nTqmkv;16!LiE3 z_M!0s*)!?CqbvEz5;%rM*2X(?D$EM3of|+SVd=Z`Ep1l#aCn*2V;_~c zJ6Ucv%&#i2VOXT`U>L3_*AV0ewWBu}4hHre2G)k5GZ=>J?lc)0{&oz5x?oxZk!SPHjm?H~C%Slv@pR-62hT^zK6CRJD5x{$B2 zb6ceZ%cvnB&Z4#K<67B=R=N$q^F$S=Vdv45>~yAMm%e*9AdSUXew&1J`-O|(O7da| z;QWg&kcuRJOE9S{`U?2x9#F5fiXv*0AGC69kb)4AJxz93o>ZqA&0}2s?;cM5Xy9_? zqOFZI&Vl7+$B0LC#cvS0`~$!h6ma8_D!1Y1c6!x#mPj&n-PuS?fva%i$0Ekmb+&3_ z`9Y1L*ly)pRc-7(cib_ZD!s%KIq4PFrk037q9vi+>eNzGV;n=nYN)h2b+!BJUxUa}@^o5MeALxwHWNyd}tilcXZa~ex0kX^Ji4oo9ep96Y}s{Pf|y`o~6*Ivz6c0wI8_rOO;>lmW%=oYAz(SlWR!h zu{5~ajh{cF_m0lmq>W|vFpY2PHLgJs3gocGCZ^hD-jv2dbZu=dKyZ-{rws z>yWb3`$ko5jV-_DsHNhE-G$K5MP$hi0l*ee;c<^Y*%~_izYH^$=d>v>QiwDTt4=?4J3pC9s#1Bk{8i%;E3R(8&b$`YcpVPpQAhRxb}^h9tA*`dEsUvv zbe}!c!k7S3OGLN+;5h=GDd6iI$fp+sQ!}|bd$bjGGhegk(WpFsBzb9Mz;*84#Bgen z%p)X?{rfl8=R?rNNTb3=N45=tEVbG1h0cO5VBNAZYyyaUDw+|~7irn4)QJ z9c^(VfAGr?DmfJVPI8D{6EqW+0QGf8)99urvz^l1!hTANg!x~l6h*P1D)Q6;H5D5# z$FK3yf|`*Vk4{e>PQwK|BzCgwPXWRP_3~rP_H^sm+^x-=RYaHKcVgM*imX(TQc}g|*nuF@^6!CZPY4pplR>R- z;|E8?spQ%V#Ra@p?b_(k?cbdbsxGi*$m18ddjw|-q`}!bknR%`+!5Vy zMi+k*s7`7!0;RNLfpSg)g9FfP|}@zdS79VP^Y>EJ#$`;P!pV<1oCM&w(FX?equWg zO}fx7jLsyn{e;-Xt>76l8aG3&O}_EjpCh*|tN%x+kuWRs_>$N@DbjQU5A|0SoERTi ze^sv&|lA1paY zWzm?8C2|#BVSHgQXsVx85L&Hs7-2n-XKV;7a}wAJ^mT<{Z+>C8<8N-C5?ORO*Ptg4 zm(x-&)f2nD<1OeT6~@lE74qQ31y7)uCx&Bt>3F@mVpV*LtpM3(3U%L!Ru{_7;nlccH$F_` zcb^6@@w5Gq%y>%d*gbNi6yQ_1_5nhW2RkR8@3B>I1hIy1jvyjUf8^PSVzv>*bjUE8 ze06oN@&0`R)?44o1*EX>Ft1I z)lCpVp3k4P-25A>Ag3JNEchRE!@VOSk#zyx?My$%>f>`e(GS7#`_K+YKp$fg%NrC_ z3~bl=3PRhF+d#mo6-Z_Zua8bz_TtXt5@qB*A-O8McojL9{{ai4$ zyiJSVR3ik7DeLgZ&hM6ma44B;5IOkC+wFO4?4_UW5_=_@9$yeG__Sj;klM(YXjIw? z#zZ?~i)0t^X~$ozTU@xB``!wl4s|@(_3qARgFAsKx!kstWq zG-~S;>yJvMq+&u5aXw}B=4xg8%H;auSN(%lb^O7&8P2O+cOEvAZ)nAY!SOZL{Em&e zTakzn$_nLQ^5bG$0wPV{T3@(3HFbR(kLEnr*vu0?3-wq^vqP`d+*w7Ef*Fjv8K%)u zM*9)|_#RCSeoiCUXYBZ)v7_lP@e$;+l8`n>y`CfkOo*<&axZ+*1#*F9t9bKUoZaL&4UV6wLjVGu{9 zy>}t~3R3d&r;qBaOKjhF=KhgIS{(L8fa0WwgR5wI@SJG6usP7<<@i=KHBaY%gmxN^ zVWKoZy+X0m_(A*_%MW(d_*2h&)MjN{3@fC*yxy`*U=*A0g=JG5YWU;cEm!%KYA8SAAsuPjZj z&&}@@fmIn7Rc!MQrS_nGL2K12?58G|g|iaZf|2GLEF0YOHH_5XWe!pj9d}S0wyEbX zWk16YWxL7!-vGUih~wM=Jq8qJCQ$9 z59Bb}_!RlFQBoHx09Tfq#yH>3`M)UW;NMj-^F@CAhxe~ezRql!a5mf2bD$Kibo1YC z?++_#Qy5~=PBmet#g&%x9L#Gk6?=vO+N12;p)jfrcAu=`iRD~f`{jPI6UP2H{;_yd z^10}%@6HB zqjT_Kw@L#3TY(n=?v^_54DZYpUW-gCGE#^wi8BqB4ptY_yIvyL8H@Y%ggsZV9uPfX zJ;7E13#l}ClgYgfjXwrQOMV8ZTfWx?d-TN0`e^b$IW0kTa=kybzw8rY`&tL2UECeX z6tX=L3byU0;=nK$>TQ-Zm$%hP&OC&cXreGBT*RPg>PGR2ZJwi^Q+RjOlN>|0G!ZAJ zs!O5`Um6XK_18=B9~bZ zUTVr1!-xdw3wcKhv8k>1)9gL18BaBl#-n+sDlY7<47qwtuGJ*n66i)15Tl;aa2z=+ z4(00a;$J3WEjSUCnwnrPOsKMwEBpuc?H?L*5k8aJ@T%U+zPIRv`O5sXQky<#A$w>DL z8GoaLuKeX&%il^(93yj=%{2Vx<-UyPsr?PRUsI@wx?AW1#u91#i8`P7de7LTCHt^O z@mLbSpWC7&M~F~<7fn6mWQKkf+~3zIW&wJ4bL&QGaC^n&q;4^?)M&1We~6{ESlE)i zDX-&+{CH;KYGTQ>2sut`(|o;ZZOW}fU!URDC%4k&nrSwEkV`Lv&C@sAdYI#qQ1lL? z=pRA24Lgh{9xlCxq$gC84|5D!2VS~WQvn^=d|YCDPM*MB_;l&wu-RXej=sM$HkMFq zgj)Kn9PhUHkYJ*|6~nuC_pW%VsX4{|sJ&RvlFR99{7uG*W>mrx)SB-3laqJ3Z5z(; z`iZvAjo{?Zu&<~d+ESOWS;%o;F~@3zUow3>;(a(p8w0Rb1l_0zY()NPKBP0U00pHqNqCkjChVe0yAq( zA~ZLhDuGtzWnLal%^IPaZBoT!xF8o|Me-^+Ni7Y!KofQ$CO(ewT85$(ui`ZY1Pknl zn&g%olkc`$Gwu^KKy8U8v;M-*$Z6BUcFSFL#%>rVO^VYq_;2pfZB_L&L=A?82Xxlf ziN6?~!ZNah1m!&b?HOT z+>U6hwpdGkO~p%>zho1rQs%Ifovqjsf6pc$x0x=|nN~ z-_c+D!Dz*bSY_SVi)b&?bKg{f8;8N}*x*LRE9$~mYQo^EitUj`Vb4o+_Ko*5+KbKf zTE9nuw7=KMXpJS&WE2c#iL5}_sdK#Kw-Lt^f*-?SNFKpEzDcEWKa4Dx3c*4z(*L5Mg+O8r#sR zk%%-t&R-d>YYKa|E3m9 zEo3nt;Aet39Sb=r#_b|am+_cw;*a<;VGbxUdkwF;{g9J;=gi;_kl#kKUHnV?YYZq? zhxHMSR=4+aT@`r-`WskX1h^g)*|C*r$Nt8fKly`jXxYYI$yJd?Eh)w=*qF1L^z%#j zmRx2VA}%i6HPlA~?vMY*jfBE#2mxZH-cnweytjuL#q1Uk?6qD*yXpD!lOY?q$&lAk zj-la(MWCS_Kn?Wf!GY)!X*3C)0fx%EoFa*dNdCZyYj)ts3i5BZvEDY`iIQVg(nQRf z#l7x|I4-tFX`fK)#8Q@kFqYm;@`7`gdflae*JVi_Un*?-ZYCf(ZG}obDkyd7{t}XQ z4WERN^ol#jmo+0)!v5eZ)Q!?IjxC6PNMdBsr?yrLbswq4VbqMW7WZ1O5~0)s_nmUJ zG-WY>SB_}duf1vcPAv2S&e>};M4Mx~_rk-!vm#K-{ z6k8@|TDSEY^}YDG?Lnm<~6sYwi_Ds@un#HMDfE=hQcgo&xFLJ?9N(j$v@h zwbl=>;<-5o)2lH->0SW+Q}=7Ykt(OPtEzbR+Uo;(*4%D`65~&HJVRaevg4+ja z4{tJHs9}s`p?E!;9Wl;^7SWkoA*BK7#@U=@+E2Ysq)?}wi2Y3*==?7SN-8UAYMWEs zaToNVi>a$H&?<`kx=L;u+x!y%!6T)BYA6Bk0!$rzf^k4v@t3`=M-45GJ(vBK`EGcy zfoYl`-e5CKoouP6Wpxc-_Jg%Z%;qs1HZzzEA3~9d%d?+b{_pG;>=fNjRTQw#)~lp8 z+UR7qk&}%?ZE|&O@&!~{T|y3u?HgxF@TyngXtt^@ku-Br48bd3U+?tWbDVzL`8oAN zaE4P%(0EbZn@fsVqilUA^$b*Yz`wi`HPgnN5(3&&#$gn8Q&t6 zQ%%LeWs#<<=&_4_(Q`cAdW{|{AwDb!gg=M})3CN!TQpfhSz#4pT0B?Q4=JnTv97Lm z+}9;Ycx)2^iV=uKKz z7o^{jp!0K$VS3*WF4GMtJfoaQd`-K4Pe}x@iQF2jCwKdBcm_vDQ&()A_d2Cl#<)Pj@NZ{1<*%3#Lw4z>LGR-{;xh)P3bPT8G=2`d(P~!90p0&k1`@9&^v6bZ*3l<-BC!ed zbb%kb(@o-=LLI+hCGo5CL}ZI~{#nbo4GLED(`g7$shf0x7FMHcRW+m2v{5T|SJ{tP zi{y0QCGdS$Bx?dlmWmB4)uo=cj*g$}IzNnV_m5nsQ1v)Jt5*N8^R#Jp+TGt%hX2Pl zcEL&MJ`jg#w`8Rew8yT0veZ|sJ)_Gws;Wu8Tq9{;w?viHCbvkmPM=iVxwb|-2a1^A zL=ln3nPlP6Pi2&_d~@^zk1hoRmfL$;c(OA5KIftZR%WWgWiisY8(D?2r(XwU`jBWV zj^18V;LC|Gv7f$<#0=J~>~tI7;B$fksC|KMk5q_?O7k;|67h|39^n_~!~D%USH|H1 zpSXY=7omfr$(Q_&af4ii8j+_2L@R!hYXwb6uB%R072^FUE8BhfkXZ&rqM!aU%2|+F z86CMweB;-T22Ha5TgO&L8WV=bnzAtzr2W?@t{OB~w;VqG{wsqnt1FWQ&b?8i0`So_ z1@HS8JRd+<$vH4M?`W=!8l^ou*N#W0t?eEp8cPZ1(c-D|*r~qaT6`2OMwXS2D4EA# z!!;5(|Nck%v-{su)3A# zxi1eGaeSWbg+ScJ-yy|fv(=xN+$bNx$dNDBq^@7DUP45v!DR|cgT2Q;A&ogdrnpE` z(x_y!_cVi{8Rp-PinMEq^ho=IX5ixtwjnPK;?qU)^~BDeT(# z>>_q3Pxb_ZuIEu0E$O8|WDLOOs>pe$kM$T! zi;kqyELF?>Q{NARsYn9GXsRw~HkGXJlqI+8Cjwjsj22B6y19}U8$y3wTHrx!+Z zs#;SU7q7(1(wg*Sms$b zQ}*RMS=9Jae?D;E!LNE!N@`Ce_eC3FHU~AyHw}xZI8T8V4CVfhKKmSwto!xI3?sd3 z5}&e!mew}g)%DQ2Z#z4FW6y3V{X2f&udDX|Ug@ta%x} z6M1{8dAD@io!Beq*SYz3YD6@- z%6obMZ>+CK!wr{2L(P#zy%1pPet{6ov2LZLDYNhRUSQub?dlSLJI;#YX$Td4CpMj5 z7$<0_ibHjU2Q6|aFEtfk#2**e3s?0oMYtG~w?k36PAXescaz83kX1OPhpQkL`u&M& zK+z9+sfmShG+o)T&^5E;k-BCRFj7mkhsg{y0rGA9XGV*c@GsiXuFbShSOv)9aY3O} z(&~Au_B+vr)!G{R^Ugr9(_zIZW_P{#RqRKmEZLeE6%K_;<4gqS?%Z0+$4dT3``f-f zxi+w0$N^+zGGA-}&1yxDVqWf8)MI?u_{n)ff|<4^yO0%`iGyJVp!_X{V8=z#z>ht$ zsOk*VScm-c0!CubZg~qqe?)D?w~@wssk6=-J24#pNCy*}{mb7sw4EdCch*~zP5o!K zSYl0NQS1x`9qLfHg^>T=`7&;fG(ODBL~buR$er^m&Oo;`v~y&-v7V8X1nlaHe@2?L zNhfn`BI8Sx@cdJUuJs6ZnmrvjFLCYQzOj{zsp%bWSx%Qt@8}Vc$s6`Y$6ve_XPdC= zAkJtrSEym-TbJxXbM4UC?{!zdP{%E#bu{PMi#YsJORxoGFRS6+3PFEGRds4$ zlsNOzmp>-cAP##W`L9sI5k>a7>g2%c1k zyXZf&kJWitnbp^>Rp;0D;oEl{xUzYdx;B*AUoh}m6s(7ReZXc)k_}^Z za%fq0FLJqknAb9xOc{?>FNx)FhtBY6vinQ##M^KabEBJ{3|&d=w(8r+vbFN;Ua=ak z8q%I96gz>N2sDRaRD|%kRjMUKIA)P7l(G#J)J*brUR<)Tx3Q{Q^7d)4Y>2 z8{nCAaBp=mXHCH_LfiS&BdWe8^@!V}E!9EY#8iAJ0n~~$kepF^>crarW^24-1On|fFWIL_s~GIne*uWPt2SluFM zkoAr+=r~T}LP@s+Z-p$RJ`1RD8xOhC7Iv2we=JuTUT*AscGRTqS8+9|78R~bX*q*M zzPGEezk*Nshio<`9iNrgC5z7A-Ji&yCiUIR$qQa&5JHsU8A{LB1OjQ3Cc}s7sG6PE=+)w{B2s_G z$Esj5_aWGQ0yY9QNwcrZHQL(R)pX`*q;Wj8mT&6VJEuoLkx{WKl9109L08>DJ0`oS zq7N|}Y@-3uX;+qPJrZr`J~?B$*@K)RU95lNO1R8o*2~)T!B2ab8gc;jkiX|3De~fB zuYF=jMqUhysH5XIvi|}*ZZZ1Xf4cFL{ajk+mM=kqn@ckpu$=MBjKjgnukdH%SYHb4 z{PTQoa^^ke4)lC9P^`*E$)%XksVDx!_iF0e+7b+Fj&SoRRyqNyX@UxG_L?MScr;kTf_03A)Vq2S^^@-ndXW6gsnbP9PPSzP~2b?B;iiCZt96eN265 z0HkwHWZs{6Np6Qz%-11T#g0f?9_CVnv9Vw$pB{aAWYN!K5lNRQXE$SWKb8cY>Gt*J zSMUf0l%5@>a|=vOR-DscB~~LF{XKR--PqZ(mxZ;Sm6|;``7>Dw^hupmlpLf(;(b#m z4fT@6E3mJ?*v{RJ1VnsaKE}VlGd~42${x|Zl~t!<4}X`MMLRr4qQoc<>aS^FGt20|;AZQ!>We~#LUwXq8( zRz!>9pG>ScWpKO$BL{Qg7>tkj%3ie<@6T+je)(fK%^8^kRi%kMsl{e!kv^<|>fJ%F z|I53@K3QvOl8@VvBohL%+oRlgWPak>{K8Kp$01jB`W0l#4urfjKg=s!!~wnh5xAi6 zL3xE6xg-+;%Hqq(QZSgj8IPVXnUy!p=ab!^{u{)qhk??$NN}E%iy_rW(`-?_nunUy<;Aj%uU2AmLlsyZ><{HCQUy;RoQvf5Dg_zg zSwyJ~{($wO#dfVM^7#jWRjCPM5-(OxRFWJ4WhpBg%LLC!pB1F2o}!C8Mu-krKcs=3 zxPikUZ0?W@R{JgM+)AbO%VTj6z+eCrR`DgoH|>Q=Xe5D}inFrZ1dn#jMv_|})3)Wf0HlFc|i+_e7K}*o}g!$BvdE=?tlHyAa1q_7VRKa znk~PT0xIWrq0-~)(BVQeda;Rnb%OJ=+3I@@?OX6HC2g;^;Y#SU1+hR!eh>0n-kHpr zufxYeaIt^&LBx@ypkkp*`pp3K#s2S4bEq%Qp}w-vDZpr0=$TRc$sdQr8-}!|*>qDQ zAoMp$t;$yyvS~3gFl+ea`nsuD(UYk$p^6bfcpz# zY?ENpNe)VS?98RFVs4vN!~F2nwBM2z#3QU@R$7gzP_nRWxN7b1XHO75L*L198?2FbaU}73{*gcCH_9#FmBkN-LD=;p-_CHRq-Xtyu^#6 zvR7IGl_4A0F4BGf>q0LOPIB7eT^{;I2PAc(N)oaCRhy?cphm z9wOx={U8nvi#%1#F_Z za{Iu*9A2g}tc$PGrEG>abn653O)#zwgOZ=V#kb?zP)oU!6kbZQ$MC=?OOy^pn)ap& zma)E(dGGL!HTTj{LqkXBE@l>Kyr~r+^BRAvQ%{%K5-j@Gjj6R9h-uZ8fO)u1U3dND z6w^lzp2^|!>ywcviX_)N|Ik>mvxiK~Dyob$wy8Qak2Mvm<9}BRn;t`)&3?`wFQWxc zb^n9kj`?0jrW<-cfZwc+gFU9;}O=;;fHcFJ`mNAH=Un@!f2U{#R8@8XReo?RoYUhAcPUIi>Kjd+}U2SFZ(hg!}`0rfI1CAwAQ;WXSK;GYt~QpC3n$yzrrU|S5 zYSNgrUJJ4`8e7Ga^&iWnvBCstQ?qxG2sXRv)oW2tvQ3s=Ws_0j7W$xGv5_vgf^GQF zYmTAmTgR6Uj_uQMRaJ<-MH;n!N>0uW_X?3ZEI-#5YBGc8NBN2|cG%yx5rf24iS2V{ zPxrqbR|tD|PT4mC;D7aIFV+%;Es9-kvsKLh{P%lFNj<|5kEnudp9Ew89PHH+wZe>=$zJsgS0Ey_wrJB)&u@ zde>`sH-t{vYgoBkabI12yw_U||4~ZAia|lbCgfWstSTnKq())DKVeuTl%WdKE9@d9 zE!+TFmt)q1723xZ9QI=XH8oCR3S@3%h``|`Qf^P#R2-<*SC+=7ie{0S3#G~^(z=bX z7xsUBv|G95*UCClC<%wHZXN6b67A8WHqpEJQSbjcCuu5 zCCTK9PJce{<`N7&>iaBxpW?pTRxbIXnQq(Z5(CcWe3qN6RfuOC27KUK7@6d1`WE}~ zR8;fOxcPH6J9n8szdBGyjOAO&fJcUM$ethY_z;=Tfbm}eQnBKimpa;PUUdOFT~^8+0DNf}(@cll-faBV#*8*ETrKk?pQw}jEA0V`u8Vk}=%BsFr4L?Oz3jc- zGVpM|Da08DBJfX%G-@AeCvXIaMWxoX%!y9yhES=q#<*ISXnepTTPPuo9c*lXS5c)f zZ4nS#n|!Y}`Hi~VG{wqucys}~w^o)ej5Nt~MBAex+s|ms+&r+gW~beV!?(MSh>$qk zI~yIjPDd@>$Y1uAc7*E^UxjBr6P<>?{ovp5|BYzks?t#GL4HPrB2DkJyyoQTn%)m; zeW*@dJHikBM>aWjj#;TgOcF6VnJJ|m51QIyv@hNEJX zJC_f~e-AbTIeV)0`byJAly9m{pI_9mx6z3_;Q}Mb5!DqRM;iYISY**C3@+p0_{QpK zQ%Xc7*aQ{*CWpgx(R0xh7tg{#mqt_7=Bf1*R~2aX<;8jkMHi?6|!Og)g*A zY{a7(EU$IxE}(i4xa;c39dG0i7@Mx+W#$RkQ-VfI^!^5~Q_f;r4a1Wv`_)#+7?~ z3uo?DIe(D?^x7mtBP)7Ez3R0b4P?frflCh1Sf+Qq<@?;stsR_y(;S^|FeAfQ8Fb5A zUFD5NRQpbOCwGe9_X<>!XHbSht2KPB5WH8Mn!33xOpxH)-QyjJR%kA}n)f(={bGGnEEwsW_W` zr>z$LiU|?{Vneas(QeI--LbfnTFP4}unRCy=vbxOat8rItAT1}h+uXT!RaUwU} zdbW5aG|6;39?Em;b4w-gnM-N+67?&mhpr;K-+nC$%AtT_FVb?d;52`Gzzr4LJ-|`u zH%2;cJc1dx**}pi;sx@5x2+J$(+j|++CIM`4_P&aWKj#EJkHyC)@wDNUX}E(bz1Hdcg&0O?UI`ODQTq!_qm8l?TMEplNc;t~ za7P!L^=A`*M;i==HF~Z6F#X7AJMZ6%A0sy_+<;gGL~SzL+B^46&1kgGkp(igw-Z!T z!UCyM`s5(}GXgLjiVCbmU?T#szFlBH3BdL-R6bF*9aK?JG<~xXn_m~kPAnvF`*zwhm!gTt=0&kLwLw`J6;vx`tVaT5Z zw}C;7Sdqsc#82w!xfv2Wovkdrf#qV|1r}|$nGsxR?11(a8s>FL=W#i zNV7b#a(dnr57u3Y0P7!?`QHZ^nremgD;@}khW86a;F;U|MVc-Yg{GRcMg*}ZY_s?v z$*Ib+;Zp4*XqFV|I}gQrusufNop53~*XI<}?zKr~Szh8j+3n-dOap5eXY}}TW{<+W z9wk#v@)KWNT(hpy=t1%*-P6SB3F^yjPjDqh5KkKhB;d1^o~Vlh-uDx~HzY2QA2GWl zUo}2tWe+dh#L&+zx zrNoU*akkA$XAXO&{_2Rl zL*!+YH^R26SMzR0CgXYV(|7a>MAk^7{AhK?f)=6Oe}WH`xZq-CXCay)6@wJoZZ&Gc zcuJpZ`7DX{e85ejxeyKaS5EIjM`wdP3WWG4$x*4&o5H-pmfAmmyLFv;6lv7mZg7qu06> z4Cc7B-N$^{e%OZ{m!lj%!yHlO69!^cU9maR_zw*)OE^F7D(NmSDCh)T;-HEcE5g^@|a&~zmf*U`$yM#>l6z0Thr?R$CO9_`zk z_6g;mVlbk1KCmmtk*8CITen-=a`~-Kpx!!p1BE!*>eb$c50nK!|{o&B~)XJl0$ocXij6V_&x%|5cbQ~Le`R=VDAiaVAlg?(Qr%xSBpz} zxi2&LVisuG8+gj$X9LsojUxIaCzWQ+0mVD|!pvUJT=xx2;YNZDP!1kL+GW~l zx{2&BD6xBdOrFHw-E@KGoZ{Fg3L#Oz2!)dv)>0q(&p0;n9S8w%%~);p?c)DWT+l)=Pjhju`Q*LDLc^B%1HNlE8n{GWcKX- zIt4TZ?u8g{i6;N;oKW%U{ z>GZM@9S1mj8C@u7Bq^iPKHfgiqXc9}PuCMLN2}m()@w(&*+1=8=+aG>Ky{cuU(k!- zdiGKmJ~fVFXMTcP*@Oo)B(XA#6i8+VtxnRr>g1XzMunWgJcJG&F}Ni_84FJi0gtJE zHZCQ$E`thx#sEl~dmgo3P|!7b*lGe8knD@@Yxnvf`Y3-Et^*msyGwI}kXq^jTx+GH zfw<^=1diHW8Kg=4ERp%#;on1quw zI?1;oX*ioVIq`n4PH1V$B#&$F@iLNZ#6+kmi~28qVe624)0BKcEf7z%`@%Z?gD-Yd z^$De;!a)sW?D91<%B~!%M5UFAK8sk`RF1g0=lqBVa4tHAN&5*>ir0SBHGByyZ#&Lw z_EPgo>9(@`i+)tQJ1SDY(e|3%X44u=TuM|Uja#f}>^yymH15H6*=rrbGvxBfp25b$ zZnmJ$Zf0&FB8o7Z+-y_AKRY}~GgH)2wbM#wL(&wXI2+XKH0QbobymqvgQ`z}YEYT3 zeNLhJo&&4}|Pnu%o^0Ww@o298szlk*(yQ(ZCNUAT44M4AVZyw-p4 zYW-Yaulocf@r3a6!Nol_@5o`oV&+UxP@{H)-#crfk^DR z8wPP9vEd*>B$n#*ZQoF-M|e^pb2VVcpK!c5bSbjaE2@5+>~~=qqK`Leg$O(GpI$l2 zPQER|R)eQcxv=QF0<;)R7dEp86KZ|IkY;)i9t$A586LQq-Fv z^M^D`>~!vo7M6u|W9~cObh2WmPE)k+c7MX+Fcaw7N)c9xKk=n57m+=JtLC=(#groQ znW0(0L~s2u54KLZd64dN>)@Q!^X{+QD)sb@s4lpYi#4I1mWA-I%h87;G|Ib|wsMb? zXao75B8*t5!HVss5&uRC&E6$+b;ZkqC`GscBjo*P4^0fNdL%KJFQxt+e>dU7|HB_x zuS_r>#T+`1YHSW=bw}?1D6i9itUN9Kf-m)t4$3>ByFBXqCit%TIijoV^W4x@kryh9 zLIMzjK%puB_$8kkeHr8QCewxgKXLtV#P=$Rgs zz?%QhdPe5ea|rd+q|VDV{Tky__dLxH5}bb{g;SjW(-$?(+`Qu5Vg&wbcOiK7iFAy1 znjBQ>zujS7u<4}>gslr`oX|x*vzt7~I{kyVGFwEpADk)s*SvmVB*{84Nutlmju0DX zYKo-^-2-7s+O6Uvb!wc7{SyM969A$GRm}dwjZ(JNrWbuf528tmL>7wrd#2rPDyrSo z$6m0m?OIG1x^i{0n%QP*lwXq93-bZeKwwlwFFqOMdU5{wZW-I8EoXX4SSm~!3%0%YfvGg{>wkylRZNC&?{@ZNXe3k4qm-hcBkg_>BET>zaq#qPb!DdhKKY7kg)GzPmTo&=G;-WFJegGUU z0C(fMjP@R&E$tI*wW>+qs}-pxwOG8wpY;CMP*iaCw*eOr34s0`DpvBz$4Hsp$#D8L zbcw@c&N`t~Z6wd*WN7k*1CE#W;~-hi!@`rRr2UOfvlD7;A~!qVo!@0X@1%Cx00KX7 z>-?+`>wIG6DLbw4^#+u_S8^Ur)N<(G^&acxDYob~>T@X3c}Z-5qFMFL{*9F88TqdhEWqHA4G_^sdhi6es$){4KqcyONBj z%fI|h|Jbg)ky}=D^a1nixM*=-T8!i-9CwGiB@m1JHBDdCb4W1xmaZr_B>sK#$g@ayJvk59g1U|n;{9;HWahI<1djG!V$X%($C3?Qo zJ(ueFM)y2I&p6WxW|W?1x@U83y~sURD*Y_?9M$uQdQLCi0?SIS$C=1%@>G9&;%vU_ zA2$8lM{ZBgpU!)E+p=u$&!P|7-nKn)ia=m6+U3>@Hs`OgbAQ*fkI5VY0R3$%qF--u zu_o;-Wx`~B=+f_3`U;o65qN*mGV6=4=Lg;M7CqnNp114yCifho9DkmB4(s`9_gt*! zOWkvco~P+Ky||6M)?YInQ~mAc!^=}wf5!m7Q-4R0^uPPt2@<`@E4I2+^#Ac+){>Pz~aa074Wlh(UgfgAfS-5xYh;goCdKWakY`xtBA2JLKY1P?56~iDt6vhChC;K3bd9T10Lht-^V4(5 zo8en%Nd=I(bJizR)LCas4qU8?Grw|G{7&hMF6y2mGAw28G%Ecbm#$&-Z^Cwvyf#PX zxo4XrSG#8of`6%dwmCA*J=+{P**)7FImSKP963VI>1**nVpg=IjbS^2Inl*~(o2mm zt&O%HHN)!tpPXoJjuQp#$f=T%z*zIBV{jpChT12F zCh-$#{GCe_T6wc`tHfd6;8VZQVgc_3yZIpfkNRgeO*pbLNqz*`)p93>45g zHM!P|40qOdV$Jb}I%U%5$|*I;7j5N4?Y$q%r`ip*a1zE`@-Jn}X}vs&H)+O)1vA1x zMv^FjpgIRN$)GkFlr>rfbPWAi8kLZ4r&yClp3B}XKgJr z&XY0mHGSB+J`nq-7xWKhWT49IT}^`MseORb)Xed2>Ad7FL+F$l<@8~q? zUj2%?TiWX>+=<@B@P~vBI#pm%TqO9!jG+*XFP*Ga}Hs-XY)SR&u%j=v8T*&dJ6m-ih8iV8ZHyEJ`cIrM3z^OS z#el)XO1cNm#mh7mv(UxJtS>-?QDv>)kU5dja_V{yv&iyJH(J9f23OPl`02P`bS`R9 z7K6vd$7}rwg;_?+L9q=K>wj}5dXOq;#B2SbtL;M7_ThJGdlkSAcf2_p8h;HX*wr5ODaFqZ^ywjStE};mSQ3HaF828#!HK$+IfB<5ZPg#~*rPC(^Hk zI7XbT-v5Zk`4gx_%wI~2Jb!eipcQoUBTNQVAn_-29OpNrc&(>X;#iYpuc<=UvPKlf z!U9=$Qz0wwB-563+}+&WK5O>4CR+#N8@V`?lIoi2eFY6`{Y1D{>uBzhqtw7ZoB&n16p8n`!Hl4bzC?qB#l`)Pa6`B zG9~L1A0Rc)#_zk|wS}C4ZzJDA4Z{MfAft8WuG5=rx^?UNuB{ll`$dn*=H~zcJKUNTT{jdDT=VluKa~QJY$|~!{onG869ccMydohEh_*LruciMM zB?K)5kHkL*BhQ($1fD)@ z5RDTp?{k)#w!u%(c)Mvqxw`Q$TRe-!pm5{NqiE{tuz&LN&g5q4{z_=F2Ba*asb4gV zBvW0*UsFqrlK-#r`UT}(+M_&c^3!Vm|ED~gnZZ@CqcZ4k=}OCSQf6-OWi+SX`T9*I z@|)RYHRY15rpqm9v7j=yIvj2KdLR6|&HzE}21=@FNb>rVFV8gOsHE6Gzr|F^R;9!h z8KdKZreUN-sFsVxxl;>OGf{!09<}3y)cqP_AIolQx#IN`13<;Fc}QOwj>_c)*!Bh$ zV2@7A(6CH|=C*M`U!kd*q*df-sy?K=R?`Om^Pha%xpif602)691BgN#4a>?RLki2V zeF$3W7de_HKG+0Z<<{BBg&N0fO}q{ds*j!9-dp9hsND9%=cHNj33p|gIULD4AZ*qZ zSgi0U+lnydtD7Cy*EP5I{uY~DC?yC+o0Eid{3Y4@yWjHd(Yxp~n!3lZomjkG&52`u zvp6IighzlRg8)Lk~tiMRKekV=ICORm}W4#-fBWgqUAeB&3dRF02?qP-ti zY0;$pjC?s-utwY(py;?G_&ysSX9C_GVz3S<_noO#`k`ZIFwaA1NHm>tg|$yTBOBv* z#N>ojLL;e3J+ypl=h|dKtqIzf?e^Q_x@6K-4-WWw=R2kt(Pp@nJ!8JgO$mxy{9hS|1st z0WRs{qZa?UtISIAT;AUI<**8pT2zN(mmFRenlpeoVR2_7ck{5a#I29F2?wpAc{lY= z%@xiH+Q#W6a?~;cAM>7lmIJ-6^RX#vN3gsjBRK@N*ZZO&{Je4b z-jo{^|4^U7PN(%TH{NVF()d--G>NMWdMC$`#znjNYfx-zzUoOIUyy9p12*Je^_tn6 z{h*rWA9bir*4W;;nQg5~Y%iKw$r41j!4rJ0jdOBLai28-ElTYX)t=5LVvSIeTTxVEF)eVnH|OD#rX_Y99Xn$79*G^ZV$l|Hq{NOZ<8{irqB*f+Q0$__ zj_UYHge~@$s2a&#ik-~izCheLxWBsy?)Hw4y7b{uLL@Qdvlr#4B-tz`*1~@qVupeB z(I3E>J^7x<&-W4_kp)+)#DKz*%^Hm;0Zyz{-R*brW9+`y+)3U2f=tXA1t;6D(9r5% zXEzhX_jX8WSSgSmw(KGQ)f$~4ZSe1W&lW?|7x8HOH%>v{MY>bZ8{gs~)qA*ZUlnm=Hh(pIjE1Fz3pf)|_v$|!= z!-RYMs{wS*EL zs?#Tb&h5Y0tq2%nvt4P(J2Ey?MT1lch4qTen{8)ylP@c(7y?7M z;*-eS_1dV3|5;CfJ#X)0qN5Y3=n=FX+OG zy7u~Fd-Px6lEo#VQt~kaHXkDUsSW;pYz}2lpI!1p)y2~O>u=fjw;vl==hk|B0JDb{m$j=rg9#k z99J*mYNy@6lC6fRT6^UYXfXkB8Pnqo+P4G-VEsRTck6%S)#Ssm=rX=}Eko7f19$G> z{adJMqO~|%ZE%MPPUj#!dR8yEeI48|gF9GopYIHJir~ID(md6^q_JL0TFsM#nAZ~J zvEzBK!EaSXIVRz&J+Fmir2J!w~e=>W5rY*a@?dnFcd#BB#x&Yre{ z4|@LwrlTe}<^5*=qu|{%j~Hg3Euf#`fg~Uu0_godG#+}_*lTtbM;3WQ>XP2T$Wva) zd{4WU9QXe|4F81ktzG;-kNGd9G>(Q&J=5QlNM=q88M{XMmStV@c+#z zJJ|5H&0j~VbcsihkKUba<0_@%&*3QCx_I_Ad&#qk5X)-sHvc{=C353vtdwkuC~-XE zkUDY7cAFx{GPAuF#W>1%Wa~ltO`9O;?^PK||G?nB7D*sZ^n^P@a9>SeVHb`0GoXg- zmxNvMmUgmoXX8+|*TT6+DAP>edsOi~WnD_v>>6cgxl~ZU-WlqfkAV6uP|WGOnA)6n z3hp;M!@VZB%N$(X;N}W$z|L?F39j0~)f(LCz-14hj~eIB#|lE(XILY=mftD=O*`km zSo!;tKe2`@z-V}Lb^uobYWnt#9C1s153T<6kz*$Pc zbJ6tpU85E2e^n7pPx#DcHbWDYdgs|#n3=illjz7-O&S!`?$MDe7{w88hw0Wcy_?!C z7|&=y4WXI4?>CC(1Z-1$a9*FYe&e=FcgL5VKl+77$($-aBHHk6s4^6qd7jLYQvRKQzTY{amTt0{+`IW7PivJa1ejIiK@)> zRTIqbv*_x zPp7%Bv6w^-U&)rT3a`q;(oP5+8R}MOQ<~O_-z5b*W!>v1T|nmR#Wcb`Kb8rf%FM!i zutEsDR}qMrYdp8HTV_C-5RVSutSbN+`D^?`?%w)=GmbC~tx?0izF5hoH(&Gp6$m85 zcjA@%{Nao%vW^*3RC55KpL)Y&a;*`H)gm~i+;U%LIcE_sepU3;h%+V_4s@Ooj|7+{ ztqKq2kn!3D4MYS=2COzWXqB&(c)hJP|FWC|WmV%(ndMuKK?I3lNAq6t1bPW8VbsN? z%^f1?V!zJiIRar3dx>?-*+tQ5mcyV%t(XbTgc_3kQYAS%SQQ`B9SO8rfzC)^1$@|0 zAV#s(_A&Hys`$Y*CkR@4# z(*42O$#7{;|K2D(r=)&u)-e`$FW;pqKb|^nj8>%T*s7qDIEOcuIxevSU#L3P0?uma zt5%ZQlGO7Hspl%AzCooQF7;$p#H(sMRlVdRs(OyaI<0fdkVKv^4)qt{DFSRCJ48^b z?z+(9mylzrcBnZ)x4?K>;9}JRXVC&1tdlL(0w|}mGFqS_*fCe@q13vI*B&GGYLD|R zN7c5U%<PTSVrddPWsixpsmu*zSX z@oL8Yn(npqdV#b#%XBb#>ds2VfoVSXp^3&7OYEca&gmla zAnp1FA8$NO(|MW{g+Q>}SpLP0E5K+OV^&!0E66DW(JTUNjL6dC`P@CCLipb4I@b~H zAE~@wFnc3I#`=8b`lx#vn2@p~EZl!tl)kP?FFNbx>8Zxmty7Ix+Kd5}$e3D^MBXMw z;wFTzVZ}q}kgbp*VPYK4JTRWWCdE};M7>5TG zwyomNC*B{#md>~WWUM%GDX!^c8%XBWOxmH?^Fuy_$t;W55{r ziqY1UD92Rr44IwFFv?|;8>7Q4=gc8$oHc_~Y>1Wv*1wa~m9xdCD*ZV=?{na^LpHk*D3 zjR{r1n=|V7_Eze5$tX;7iW4@(lTNSiBb~J8<6e92Ex+81E0b81ir0Sr`DvCXrTXq$ ze1*MpFDz{poZi7_B z0AB(`UwHdvX`P{)RBH*}|8*bve*0bF|B;ISwSn%Ble%Bkc2E1bVo{>H7V(h_$s;w< zw0~iyX@3ajGwM$!E&ZFJuqvQb$&(jALEh8)X%hIIpI`jgt?vwyAaRo{+Io40{!RQ?u*F9XC0){>xV`OH z$Vdp`FG#s0%p#$Cx->9!<%#$yJ!du@!}o+L|Avh6H@xkaKgKWL%cI*XalA(RIO&pi zpSn-^;yU`Bc`hDwGA<}j1j{*Gnl#u^t>$GftJN{h;_i31e@XYv85+F=mS!|~8-}iV z%WALmTFtfWtEA=VQ;8OVe~bNdF0%L_daxQkI3EFru)2?Sq#J|A=d^u0uh`v7VkG&5ta*!*Z@F@K*ai62*Qj^^xIhOMRim*YoSL9b^l(om`4%YS>N6*=@)VA@H1Jt8%4hzXj4Yu8 z7q2Aup}&389d>SCNS+WQB&MJ>NzSEmEjjUOegOt{EVy$@)Pno=6pm>(uOuzHzd=r8 zsC!I_;&U!%Uf=zNM84W?RlDwemq>UHfNYD#^AC)DLr4jU%M<&CXcFQWX$6v2V7V1o zQxz{Xs^Zzl@fHre?oncuFT8^CrZW#>(2huOd@M6{6kZCtf3Doj$dhTm!On`9syJ=q zo5|I;?xypgQC~rED+QVDr_Y8?@0yN|VTv!!=Jx@yRekHGLEahixd4=x8LO{&T)K}E z1Q#9~LWq2S1xERH){;)zyn;qm2YaODXv|4oBini3;f>hCX;@2b0 zQQg9IzhgXsa`y;}lj*u2k`hEm(J75X`&~%`@jJ{+zOBA+-h@5eP4meCD2gBS)@uv_&LUw4qLC^tJmDn95AURHd#!-vpVeL~iR54E9Gcn> zZvj!3CtTj;(q1XCCY1yKQU8YK%v%U$e89r3kO(lNM3c#7kaB8Ij!sUK2*|Q{Hp#tX zzQlnc#IZEr!-`I|TBaU%v5Rq!vMrdS_&1je@1`A0?x%VsS z;VH1(4PPXIb~Xo=$3w>oUn2;G?khA|RrR(+k!qun&%HW`hTY~aW-CP2e1(up*(>lG zDPljOn$KRSn(vOEswiOY9QC_Q#c3EMsU@4-?A#Kh!DNN~*2{vjIatVtyH4T*7Cu)& zU>8Q>vpEYd8!*go+uUq528f6<{3+ktKpQG#7)gi3Z>^Ap(cQ7{f=28U=#6d7jT)t` zgqLm&R5Xk}zI^5M9d7J8;$gB!iv7F7Jqp5vmM*EC_{$^y+uSYVHFS$WooA#IB)z&< zam9GI&HLP@KC2E$6svk{v*L>$l1((^ zLL*+U=vMb~_VrS2mQ);C_7q~*(B1Ccvn9Afs3cfmoy_haSF4dmMX`;2H^8VTWF3k~ z?5d0gB7 zg}KT1P*Xae*?g)lIFKx+XF`I>h}1HzbIgOnF5;%JVLqo8!02`#S?! z<(q1R$+K*Ml=miCjPlf&)gnq@(k{0?WlV4?_-}2oB zWJ69RE|;tsc=F_(3m7RyeM(h3?#r|{Wz>;Ymw* zxkH_NPj#i&_lrCC+xHNZ%IVwXidkgejg2w2?~Xq+nf2gsmm0;LCl^wLI}7)buw5?% z`JCgC=be9KBJs){xPj3T1dsD}V^&y>3jJKV(VYnbbVHfhEIY!q+mLmscHf+k81SkQ zOFwn1hUu11QR^2dYDSiZJTCqUE@l9ze-}BB12M?oJdJwIT2M!L?)amYOIyRA6}U+i zI-DNuPrQV6VqB|3geoNT#L`dw-f(fuVZK*$h;(Uc;$~i)w)0Z-Y3b_!a~X@<-DfY5 z+oYyPhnvk$=<-KO`RWuP`t(p>n$<2k23`1QdOqj&!$ZYCCbd1?;%XpUBwgU%gdQ`S z8$lsM;9NkW-R@IXK)ZV(B?~vQpj|C-R&hP}LYuyBYgiiXwqj@&z1MQ6&dMx~WgKg~ z+o^`BIhUEut3a+8T?GA8I&9{eL0K78|K-1+THVKHHjD8@iixDqvLTftpRV6*QVMzJ z;!vY5ZujS144rDwK2sCrSk+gT3R=Gm<u?D;3$tWGcqaSfAzF z#}SlonNh!tE|HX1Q&dX@<%o+)ce9*KqWvTGC_N|ER&>U6$!z|XCV_trdeP$_QN?w@ zH2;hqf?!(IZ;>gATMlQ#kTNE68T0F>A$JQ3RZGJHykufr$Qw%cB_Z$)r0-Zk_H9P zF|Pz>46Q3!Bq%`D%CG38GBL|~T`%6ee=U(AhHsDXW5vB+T5}Qa@=x+@lKf6=2$hgA z=6J@K;quIBSM06pG+AA-xVId$sWGz)A$sKB&yfq z2R+t-wpE_k?$sRFWNs}qdP}Chee!@bj9yE8*B7>k-P$bvAy8Wjb}1kduR_PK%ak^@ z#FKZaDN2Q^n3O92I_lVOCacs+{w2i?)E|#LzYX&|A~NMdUn)lMx24@!XKWD4Djh?F z7AAMe%x}Wk8b_NshkPAE>qKMe7I4;+(36~EpiH<{QauL_D6L7MMEn_ulldp8OUF!bvEb$RjF`(+t z6O%qZvcSVM1WYOfHKwj)PTl#XPF#8OucjQKOlr}CvJaO-*>i&!?A0Aq?C)3LhBInv zTRT79)?8_d-j=P7PPy9$%h>@uzbQxb>Q96YXJRpHyhh!<*)&=&CSJxJ>V}87GfC1p z(}S^HLA<&7Y&oYA?HOvh26*c(uu2NMo#nn$cQNjl?}`jv6<`f{E%Qk-O&=)p%2oEd zSR0WkvQMqDv&+ldrf+w8u?A^t-Rex#dsHQ=blo#|$oi8NKXbfacQhb+df3hVKq+5WbR-K#?J-|u zBxuHvaPOv`77IHVM(P^Rjy{H4(eH;djvdw2`eORP~#N1{M#SS z-$}Y!jZ@MooQA^rY%O^}yD$Uob&~w45=E-O<=_6$j+1mlHCjoh(Bf7I*Humir)ao@ ziij2;If%5>NQMok@(NoG7H*Z4;Z$C)GH#M~664vvPpQUg#7qxN>Y%2m^=H*^=sZ7J z5PPk>WC=uMYhnfdeZ)R2>1KbX+Evo2GW#iF>lcs-dPQv}#BrL=yNcv=D-fq%tVKH} z!+`ti9}C6xk4OgLAW7g6Ex9d4v>FmTq8-n>^7$+HoVZaVKLF$nY8-IS&2w7nTEdMqQ4|i=`6AbtgH2WsuUhl0*1G$<$E*^nb%W zNWPwuaGPMe!oyYzwq&7NfI(A=X|2ycWNONZZ8YN12cwTRka_9?ky4%Pmd0#|?!{34n1FZpvR&l!M{aS1ZDrj_R*dAS4zGV9LWEP*CQ|)rQ9R>L<`te%|4N#~6 zooLRtR9rx(YC49{If{;v$elC5F0gkykpbV@k%Dj0BFSe-W$)&&&H!30Qm{v0kLsMl z2l9`~2qVb9WEV(yx6+@4>C~tBd8Y@?*C!_Wl7^WbldcIYl*=Ca6_?8< zEc=1ZtxU?7ijC0Cj(YVD_b%?W0$MD9gBiL6$hpY#0jI`!0jt%SS}A;g_=Dez|Kd;f zi~l*m--BNWRz7Tmt7oJrX07ESRiSqG(ihZ0p5M0$MR>9>FbluTDe}^|txNYwz<9h5 zzNsF*0sjV{q;aqR&+z@i!`H^?MZ{#k^hp}Gct7~mH3+deMF_V#lWu>7KZAP|cY4UO zNXy$|G>Oq6@vxFQ%-Pj`d93}jJi$c^a^H(g`ZnJv;g4juB04V2swfL`(z8Z7=Cu2p zC7d~w1=GDh^oDwN_3>FUe!r}vzpqaKsR-!qj^+6EQHJwQfavF2#5$q_Xx}--*kUST z%D+SqJKh7DW=d~m2xIUCnYc))vffv4Ve-I9-^zV>vTf%M7(t&2Fpp)*9{& zRL)x&o8aG%Z~A#@d@C;bPw@%=c-)Vqw4A2G{HD8bfmjq-8Rd877DvyVsG#1Z8k)m2 zmcD9@*M0p&bg*-aYUBQT*_X{?b9hhW;>NO|38SPt1HbmFP-~mWfyR23JEJ^}aHMQJ zPdQlt6N+gr=iUX_DZ+Mm5e%VOn9zE z3No@)vS4zr`;f6!dU)(`?HAV(3)`sWo#MWF9Lo#uZXM?xnUbSF;r7}`_~C>SD}1#w zMl;vAupi3twTpXaHK7H&m-ftm*p~g|H+tkBB>8{UBY(Wl?eEHXyHj;lx~NW6sXBw? z5t0X@f=7TY_I&om+zZjmR+<5 z3yRLk<;E_1x!qsUEsnhxSlFxP@Y1*BI)rzn5$V~~{014W1xCvr8ldsv ziu1%f{`ZVE^`BbtC#Cg`I@yTO{LwYGC_CDxl0^x;^=`op5qXxtZU6kaj4{zaTCt_Y zR(VIw>ndz&h=a;8G zgj9LBK*$t`G9#4vJU64vry`@^0x9mw%t}PLE;hvV3@Q3KGMiD*vP*SAn`M&V)!}7~ zs}sR54gkJB-5(y+iVDxQ7ilVf zwqHC?3LZs=YN-`wvOjqqPQlcmwjmYprLYOv*`jNc4iK3wq!$-V6Wl zJ^XS-eGmMN7wUo^l@A&Czvf-HM-RLud*L1D;r+$lcrW(whWElNHG(K`H$Z#KW-D`hs)FLp_XFAqGFV5jdE~kq0;`iH9CuB!YYz> zl2{LKx`8KE=(^vxW{e4}M~o|$oSZUQDC3McM5c1qtZ-*P#Yih7cD=^dTJtn3%{cCR z^AV*UI~JwhIS*76w!gMG-6e|_eIP;Zr$PUW%pZKHLggH|<1Znnm+`=o+BdW6NF?(Q zeMKGaj)P?=Y2Wde^k+F=;(va4&_17cOYWd9;^sT{`P`B5`I>z{zn$@U#J-=`$md** z{Lp>NZjmo`d$WujQbQ03<*kFW>QHJjB~1GPo=-b(jN;{Ruk1%8KN4XVKS58Q;L3pS z&f-nuxT>~Su)b>+mxtUV)7p^To;-a?Dqa?ik=3yw)!t3$z^sn8^g9b4SshQM-|5pV zHq=u6C7sc6Px@U(Uv#Ar*^k{JmXLE?Mc49PoN;__%^!%fgVlpuDdA2KFqKba`G-Qw5r&ja0 zd?q9Jvv1MfsI))0i#07GDUCf#SogGFLdS3XarFE7d)OiW0e=@CvJZ!5@^_+WpU;{6 z{cznrpELP8zVGKu{yul#&zbyv%D!dq#oxm~km|DkNBsTHt3CKzR)d7Ur@rw26@P#K ze52PH>G{Ta6aLfr#=pULW*T44e~fQG^ILzuT)L>Ixd_8oV8^HD%M1RwPXcd$SkFp1 z2qC+BvcVd*zcKAE*!AZwUZd_rl#J1sJNg*nzVbNwSfh@KD$93?M@VZq4~wm?F3J2m z4{Up7i&m<1a){y?u3mzSseNRj$GIxsc0)(BF3gWcL*)~KHP?FQluwS>?}pg9D-5wS z$LP%oF}E9qA$L6l<=Vu8`qmKJu!S|F!_MhY+RAQp*YZHf2wh#0J@-TIht1+FF$G6& z;TJU+9gBH+x~UvQItF?28jdaFMCsC^s`77*`s+|@kcb|@N!9f?0OX#Clz%r4rM1+> zVMv`&AZG9Zd8_S$j+cD>xpSi~;0S>>PF(uT?bGn+|EPU@V!Za*{n*~^BMH8*eRMo4PrjLWaQf*Xl1H5Dn5(g9 zxP$9L*;X~`{z$trC3c;&MdofTh?MU#ZkNF% z?mf|4yDGB^jQYO-Vl9jDIYTHFzlWR?6*0fAJ@wd{vubZ6x=|Q;4s_Ie_DSrcg6N3} zadv8vbN*^a&}=Hl3}P|i=qFk2F3)0L(0-G6@~V*dNEU^;FXJ$v6sQ(xdX!pAI_UN5 zK5c?F=H;ws#~QQgcu*&5dz42>i=P1Jy6zmJGjEZ?M0^0Z0>&cx?c71s&pnGWlM-1k zEgwYj5qxv^#&?b2n*%MV?beYbQiXbuvS)RyR;xJ4ACW@S&HC4?A~V98 z(J{_III@1@Z5(Z`VqB5a`q5ENZfwhUoc)jkj*~6t?4X_N9?1+0PsNL4yY@s6hS)1L zuW+7-bt`oezDDBwtCsS{!SO7YXhh^E5*zt%Yvu3-@w$3jfr(ii{}MfH=OUoo+#_HA zknwe>gh>>Yp+iJ0@b&-xvGgJ?kJ@{dBud>5%BPW31sHXfJ+tO8cy z!)5{dyM|c;BarCgN5BPGT)0U(-UqML;36a$@FXAHsljspCE&?ExQN^!nXkcD_+TL& z@DHdrsjn9>@hul$p}`V=O50J|C78y?g;Ou`5jtRn`&K!tcJ1n;6su%FEtY$7Nn8&Z zgUTfBX3}|a()z^qVL6X&3^H` zUZm?M2g<46tz`G*Q{meTJVlpOFjdJz_lxfi58q=NA8yM%@%<$e-=s`@YYyLEJx}!T zU90iE!%q+TuF1rAY9_v0_ls}a!MeV(@ko8+d*j1(C0*YGGw~g}UwjXE`1lcgr|gaI z16g z?)2nwnQ6`vi0n}J#Pd#OF2Y)OCkryu{0x3g9+U~$DQOM^;>oMX!5vi5Tj+?yFP}A$ zL&l%}LBb)#FBvXlm6Fqw6Ay{1l!N?BgYLP#xzC{d{hDnoAOsT+YbDx5Cif)1gq_6; z!HGcsW}=bho>++qhw{eFFYz0aUdV?#Nvl>Nl6ho+7%iWA)go;lIJtS9Hb-3j?{??T z^*_!9;^}u;m=Q;LHJ+X$dmM{2EyIMCQ(qEq3AJI!yz7==;-C7XAs_GInt6`rVi#_A z>&M}_YmZe&bv>1)DM9h4a=q~=xh|Ak?PG&f&pX7~KDIz!yz$asCrJ;+q0IG4iN3@I%roQNYKSY)21jVweJs|$iT8i`Jq{1RlUb#owhX2n)ttq>cLzNRg5C3J^^5~5zR_Pt1}TDbHzRpy)(G$v zuM>2FM|+6>aQAoJ9hiSQy`w#lnFAcFvX=D78t$2OGy6FmF(of%(@|1dy#G=ACHBKF zaYoxUR0?m!n=mOd@&++E0OGN%S=F%1a5uU)Nh3gfy-XHf${IW-V_pHQ|_ zc(Lr)YCqZ&!MM!kW$s#;fz+?EoQ6^I(WrdQvJ0FCMgg_g$KKn+457;$6EG^*+X|>= zwa*Ic#$_EDMs|-|17o8}WN*Z%O9Bi#B#Q-HZ4Bm}}IF(+BG;q%par}EYCB?qu__u_HwE_f*SsIRy z#_2Zu5X+!6t;;b4X#$}g?p9m8JId4nr6Brti809`RPj38fQ*G8q#tUkLZWecwRTBBLRgxCF ze;7%f$xtln;2l-qI`?lARYSx+?B!0UtW+Bqb^X93BwUyQruO2K7uM`z%Bfemxt9)- zF6WrxkvPY4ZYWTBNEgaR9AV7ZM{Inr2)aM!4k|IuId_*&?bU%h^14?YtW-*U8RePH zL*bU>!Tj;%K{44k-qC+}?Rr{Vc#WU$=QU=dz4qm`&!w;S;wQB(qK_%Uh7v{qHeATQ zpV{0j$y3ZYP1SoZW)%JFH3keg$>+rJJ}1`Az)+G(9+f9Y-xb#;Wm7e+^F0Qcq(#f`vQ@ z3vN2plY(f0T%1ua=afx20}`^H=Q%66N6}U*09@+b_2&pa@$*i~@gAioeSAvf zspAN%dS&t?%u9d$*}E&{va7gAx;Twb#eNc=-k4&0cl<$`rIEK0mig9cVfN$yAly;fTkg2$|)}y-t^vUa0n;?dSIkYn{$eEx#~Bk}o7>f1aS$RyZw*0jLH@!d0;IO#F6672EJEZGzbo^!j8Ar#j;&lNuo6QnKMV+-z zysRkh^XMCy=ZZ&t&W+ppT(RGI$fX=chHGY!RPi~ORCdkh+2mnrnok*Mi?qI!qpoYk zIwoE%epaPj{)B40d&5$7*7YE@Fg@O1BKGDJR{UzQ5>Psc3e}u6^=Iw@7#s{rYhVNw z@`7y`B48w^;X*}F28l4ld74=3`0neQ#;ay#1Qj+q?@Pa}qxX1c5x2V=<`!f%$=H^h zjX-&F?b%ylyDLTXOI-4~T<$X$D*(QilDkx>3=FG30h1G{+|RZ|Rp&6O!vz*V{2KMx z|FYs2!R6GeC{arqq>j}{_k@>Jy_QYW6?#M6TQF@n4D%zx!H@_G@LY3Zx=NGW*p5_{ z;!-6%lQ+A2YB>PeUYRu<)JpzTlzX+_hF}&8*b`hCFM{sh*@IOq{x_=N%}gviyTm;* zCdLP`j>X$>sZlqP?-owwm~3wObfqruGKC>XgO*iu6k&+eG{vp1)2RlL%A0z~{3M-1 z=snd-)Fn+3?|&*WS#-ej{Y)7S^wR2e(90N&lo0NlvMPROiHM-Pg-Re@cZpbj??mHy zmFTva+`^uohCo|*Zky!Og|vvubr2F{X4{?{VldahT}1_{f_nt4f0LUfrjctZHoj zTokFEz>Xz}zX;y$){puUH|bxh!Myyy2|540Mu!B>7jd1+^5Qa&{dY2J)x_7#XePjT32~EX%f21 zT!!3(^g6B}pf)#7nLcC6bX}V|iD6(hU32M;Q9w6J1?x@{P@>p_S!F~_ZJIJGI_28S zrd(!~^|tbs7pyGiKNv)6g=INA0+?>)00IK_SMS|04q*p?Sgsine3z3kJ3?TvHy=vRqD z-afCBPk2&ixRw}=hS4}K(6+UR>v&4rc}>Wr%&6KB9kPc(pGuR z^?q}J1$nl|s8n15)Oc1NFw$X2~VN^hp6!7Pg0emOl`xNnpy#K)aJrEd0yb-d`kaTAi%EyEDN_?=F zcwjnl;oLo~G>cK^GS!icMUwH5y)q8+GX5}~QPQ0?SP~z)SK`Bs#yN+Pp>12xEd3gS z2J6VojPpSTbQQ8z4yC5!ad_YBpTI?tp3}X>eJ5GTD!5|m0!?GhHvK_a8$=kB#c^#< zN8$$!{R|#y+%Z??y8+V~@pL49=s_Pd?8o~bK+JDeA#+(Hn){L5{8IY4{chW5Mcgzr z;u-y1fJ*El*Ha|mdXUo3jmDkMi09<3o8+Y{X;p=~m%YLsQy3~;QM$vPP9)nM_638b zG!OAw`;E4wAkKG6)iZ}oSD8+}J$I|ZyVhu2=j7ilZ{S@UvfDu3X-_YnD}#47_n{LB zY)nb%JN6kvXxinrYfl?C&dHu<&fOxEQ!vq%Od{)!Ga9pF`qgOsglKjE3o3D%CG}iM zO$mGsIobbEZ{1mDX{WHRJ!ZH$SEM0muP9w=j~P)4QQPecM%&XzQJ-{W6!J|y%aYfB zUkbT&l`2$~3hXuZm=Lv+Dp{&Z(;~L}zg?yA(ksD+}pG0M-nAFF<;3C~W z|HCTT?|4m@s?=mvsftqFPnY>!bhXsSKI4l2onErn>VCT3oZCu2)s`+TrFKz!`mD?< z&Hmr1($lpRp=vcqYPHgy-v9t{SYyu<;j*8&lfSU=e3({bXRV#gU~!)JW^p@7<}{Ok z9)iz6yFkhj={!NzXP(?;VC!*PbDjP0ZzPG9(EphreQwWxguEzN6!&~F07~Dm=lw~3 zTkZLOPsqNx2qCnm53Vd-jvN+; z>}e&TvT3ODB#%Rcs*uW#&KxFGv~3q%GWuV-{5&wMYujF+daD;*)J+-BO9>Rb$7uYH z*Mu&xbWdrgS-Ml2euaq^ux}oYc!%uILZw|Hd-`Y-wKu&2++SDPYoM0`i4wXv%WV4; zrH06kK)($8E67CY&!AhK`1!kHb% zuXh!N+G8%GEk@kw)fa*;xH@mAs&s+R;3FK>uWP)H-iczN%JPOL-$U%ycSDr=HPyCn zo@Jjg+kOLP4B7K)X*siWjXhtaN%iy-B4LzAtIrqV3OP}q5TN;Yn!5UC9^(Vl6_~2S zi}gt2=*pWic)(_BJjql{CgVv+wERw#aGRYFk)ye7wWLDPwh}rixzb)|KP}?sMB+62 zc8ts?9^sYNAMr2964BA}9?H{_QemQ&6gfTU2&FlGO(iW7vcDGc6&HM7x{mQpwTLpx zwIte~>vma05%&Cl@|VuB)pAd$lo~01nEx-}-^&tGZD|)#N-IcM>vM**4bqn44;i^j zUxbW#%Tzh7_PmumpcE3V{Mrw{#NQsOK{^Sua_*8=`H7!$?@FZ>UPLX(jBXd2;svD_ z4sAj&U|c-KN>0c1o}FyJOE^RZg>S;KCB+28r$v5wy3vSWAu-Cn@cPzkqP#AYk6AXo z(?qR|b4EO)+AgcR5>aQ3(w<(x$1nLU>#24Zfo!W4?<*Ym{byH&Sc7Ork%V#Kaa zJXFs_u~t4fCxx7>*b3r~E@8Ul7N9RWLrz7ZJ*&XE`Agousqn40;k-$A=|_;+xZ#0v^V98^1~{$cZ-gsQ%5Y~&#;B#oMBInD;xGSs>W#C zLq9Scj&8EQfF-+BDn33{SvIW6MjH<+5m7T5KT}yHp=j{2Wuu=k?XQGG+CC-wh(%=n zR3+il<7V0DMfSUFrDdy*{YJ7$B6|H9vus4d-fT2(W>^rVtWcJXXy*69kWJFpNznw4 zbjt~6l%zs2Vv)vCxL~Srt?Wp6m_l|pcz|V>@aLkEY#-%R;}=Uo)Xe`2K$OqdbLH5p<0S0mZHQ`S62Q4lUqd(y#xE3R<31<#ypS4pUIXE0(3o# zxqjHLm+|K}8n2TH)#X8^QX+D$(RhBK?L+1~AMh@I6OA+Tx%0GiJs*0veN?0#dbPb5 zR1ba1ddtUG`IxKz=ExU$%`3Yqn@?uxE4=j6KYjVApZbT&s)LgAHNG0^?*S}GNaokd zZp?RnE%oD;iHk~FH|)lB9m>9iO}TXGy*^f8w@|vJ<5r)K&n;Ot*2(^(-DSTuwk&%g zO4%&Se!_Hy-N)}!tg@_Rv2ndwHf&MZb=myf3+N?&@8S2AN~h#Le%~HfR?;M~yElc( zE)VjOs4Ody1iR=jNzh7nG?dNE=jUGjf5=`!e<9uP(|m5*$6UVAUTivr6j|6HMq5GI z`83`tUgt9n;m6jdoK2Nq!LB!*!HjWR$CeFV2!>B3!zBn^w4{}3g~~X1zRk>NjafF> zCLvt@MOOiZcmgV1Le=H^!#gCYW z+cc>eehO>|>$2Y@N4GQ(#G}?|(q&L4wK3a1VThVtBD3n*C9Tx+Q@*|=p!FaV;?y8E zyW|z-8cdHA(hyDMDP%;144b6YjK9>zGylm(w zOh_ih5-QJFXGBxp`m%9BThhIvv5{o1E?x@WRVr5u)8UkVI)a}4Yp*nld8%w&zP&-( z!Luox!UdZAyw%8(`6=VH?BIZXclqDXiC zcS1dL>H@fcJ|A0F2qR$XE((>thxk0MWSAZ?OJAiGm%+L7X;P7LURNT{PiyHGp%v*~ zz;C8>Co-kG8R?b;yFhaf|D(S@hR-pU-xonfBoMUw>?O$1({$;V@NU^zh|NY3Dy8W2 z7uX+5GMPdo5$5~AfT%ugG45y$+tAT~2%S0f0fpk4-4`%fx*DR}GKq*o}x>5kLjwq7&l73-861=CWUY6Wr zvPDeIvhgeeN@~hd38XMB=?bg{vceNp4oPWH2xaA$iayyTr7P-qI9w5@684Z(*#Kr} zt>48#D!bJ^^Z~pfwQHVd-|Fup*^-v;*F3n__vFc(smzEk;mI?(lt*?I7L`?fIH5=C z-@0uq7rqsAwFRTohyWjoS957dSM+qk?wN~Gj#=i*A2#63G!uF%0uec*{igf3!&&6F zTf>1(mBm+dcO109&xYT5Wfm5_PFtynPAz};IIndU?yePC>|-3#ZNFK^*8B#_vSJ+p z`%P|v*~XQ?-P-0WeG5AHSGsCppyoPrG2GGJ4E*RKN@wyGizGbWS2+}2Lz|2n8vv_OZ za-#h+i(dCO`cG5nF)P)vEOt9ryZ<`$%Wh_d;)q4iu+}DFjF-2JEe;j$sS2?Ezy&b4 z{m#``FHu-!WA*;mWdD?>_OaR0DG{6Se4Jd#=6)Ww(0?lmrC%28(j_#FJlVg*7PN(ms((_O#e%ame zj@K`u)Os8{Gn>TcOEq81b3FNM(2pYB*H-4p?(ey(V?ykcrOtoWcg4@kHNvlzwzlo= zO|wORQhxAl|0Q1K@^Zw^*C0UEQOw`MgK6iNx74rqZq;KwQG21M@ky>Tx$BfxZsq(~ zE=@W*6t}uxplGH?9Y%`&)}1@h$#yJh9P&R|SNuKg+DpM17cdtN+98Eb&UvQay zWa#JOnK_*MuB7yteZu7{W{fkNo+5ohGPPtfLN9zq+{WcOs!!hiy4QXgBF%EoXH`%Y ziEeZb$mQyoQPQBp=~1hkXjsc5#_1hr#z*|bJx8;kQ76;qi2bS7XS$y;lK)RN3Ypp&BaHs`!sxr2XUS2rpVB%ONQ6{)^faZCULQ6a+7KfZO@oZvJ9Az z3x#`B>loG=+|A2$wQ~JxB}@EvGMi>eK6CGUJ8;o(A0wX{q0OdSNzm~K_t8u0TlP-9 zTvFd8sav4QY??=c4ek&h60TIY+OtbY znB^XUg+kcGk(N_f;sr9s_4piQ3I7s~f_A?w8o7;1l;9kegmSRE-s4?fgKW&~@+Tnjn^9?{8J+oVwOm+K2lS!}d!P z^+D%JD$0SyP))RZd{x|sf6bHtbi_ej%1whuaR9aE2oT~An^2@YejgQ&Et}*uh^Cu+ zX!X?tw~(EIXRW002k49;OMK*$axa$Gj{CIFAPlgyy20KJ+ph}~??F(^iG+<1;lc0R9FHe5{TV>tu~zuJ=_lmU`X$Pf zZ;m_x5_eoH+`;i~ERp^3>%wO>zgF0qUr*kLUr&E1fJzl+6@o+`3QsI|ubr>iHN~y? z14*C3r==9^^Qjo|nok$M!0--#r!tu5TJ|m)nAV0Bm&nyBBBJnGkW3(=72V7C@WdD! z6yLS(njduh3?|U}nDz`wb6V1zRzO`DQnUc7Bsp!m`FX~+EdK`S-*Cx}`}k_ro&}x= zYkoq1y(#vz*>tfgw*L(zRn1xYR!b`&P5*Z-wB(WudD>rlPWq>A&(1r(uRXgS$ZXGD zsrEcfdLXlTXwNE5&(?M6_H0Yha}D(L$Uy61NitkkV*;?4(Kl@43$!Y>wN@s}eT>F7 zJ0~og6?M}|U^E_IQP)*-fzdc75Zh8as?Dg20S?D2PgQ(8 zrr)jujN2vo)aJ*8n5(SH~vqZm((KB4b$n>9h6aJoxJl&> zYDk_yE?1B|4e2Y8i3-wJL;4A1tb+8@kbHrZDoDPD^cTqC3esOg4iHFxcKD7zAdmJF z{egO~UyGY6{hEA(U$g092u!@opO*LdqTzE)pY)dZ;Xl+lpKllfmE=zW@rgNcDxdfo5cS6KDD;TNH zt*T!YJz3^hCphP4Q+d`!^H{+KpHVNH?A-A>$GH7Ap2G1-c!h7YH-%XNtnaEhRPK^w zp8l4qI$xAVV%{zS`M$*eM$+C2*&C~dE)6vt9A@%H2-8S_y|#@~V2NsXKRK0+CE0!z7}~4945u6dGKKG;@KHL7E;UvgC94ltH?%E7ewr(kdU0LMnw9P zcb&qhj{sAu;dXWI3V9V;w7jmSqTIOa%WK45Da$n?uaN*|*8jDDt zs}(X={R}%1S=3ga$518$jM_pB{x}1+h2FVVKZZxmeI# zr_9JP3XtWTU^E_p+}6(rlhJryz+TA+5__+9)Ow@tJW@pBHQm^9M%_>uQ5^5m6N!o; zjzM3@(%5MWl|oT*H)P!=EVqm^;^(u2?;g)=l9?VCl^J!7=t{;P_0IU?k2gy+{}P?q8*c==j5p)=<=-%orRpR?99!c9 z^YHVyIbfB4XWT9xYwS4=3@BJH1rz-zuwDw*TftU&u-*!mtzgf3uxthEqhODEus#aL ziX>&kJy?!{_Y%)qG*v*TIy0kw4f^<+QZ6ioI(|-$081U!X{+Q1-t* z+9fkT5%VF8KSrIT)|bK)zf3MNiXep?iwVj?7b3}8n_TV9gt)+c@b~OXu)4LLJS=4e zxs2#6oL+G@Yz8C}4aay`w*iRzhl&>_Fjbxf29F-MxFWoUXHPN&0&(cM>9?nN;;pS zIk-Ph<^!ClM16i7kl8(KLT%Ni!U83E$s1GU!f-?%APV2fRLMD=JFkdw5Zg@zy^kp) zQZ18{pm9f~RM?rpREDIJc~J&jsTf3Dzeh@=aiE^Yyro`#D&8?cD{nPG*iqK#jK-h# zN&|cA`z8SPP6G+bC+lngv(vynI{pp7K51Z1bOwN&G$2?r1wgI_Y``=U!d?Iwldqe8 zYBljB|7xxBHluzsPnK;c15mETWW+U_WDhN|l`kzab?}8{06q@x1B*PnxrnpC(cae1 zH!b^Mm7BgTQg)u%G)D4|-8=t=Hu9gZ@^`e*FM2^RAr!PoVSYJ}OSVLaa1*mQxr{w`PW6;sFj)9JbUSii0l|V5Qr^sqPO~^{X(ADmMN1(~CzqNCds3$`q zO6Mbk|7lUZ0KslpBj5D@_16E!qaM(~<-Dtc4HsqTE!iK9g5H|FIu%RBmZ-5Pb zAZ+-EP6-?Oz#OAa=7Zpb6@6f^=4PYuY*OkWealn@J|xX09|Kw*jK;*rbLo_|IQ8&KS=mQnAv)EgzC0)&Gm7|NkoX&nII3 zY8Gj1c3Mgbv~+>>6R79hDkW6OaXc%1;nc8TzTGYC(~D)$)ltD*oFclx!7BKFDa7d;SF_ z2Wv_SSWouHPqXQ3Nq^0_<6X0)J58ti{_*ZUQtfZN%OT@`Hr|~r<-ES|`^LMzs@DJ6 zcz47@N+9)k|DTO_ec{obi83&vM@ zo*n6_JH$fsH~s;>2HYh2;NR&#Re4YU_1d5QQ}@g7U;jOrq5nwsf3N@8KXi|KEK~n+ zE>e`}e)OL%@Zak{w%mK@KdG#Hm~`QPqW^@NNB{EQ>A${v>pw=3|4jcuo!^!JjsANM zN)FbP{73qa^q&6v^ZxXo7k`GkT-cKs2Yagh#uqJz7_(nvI*n$f$Y?yNqOQBNCn;Ebte)8)*bv~*6Pas82Ob0ZW_p>Va*Tp+uI8T)?~ zwTx4BdqnJF-vnnS^v0w8M%aGaUH=i^h))pgI3hJ(`rqAW{Ey;{7M;bSMM<7EvDO3W z6`d-OzG+DBDDK`bu5gewb_ zk)`YA+1vYHci-?Vt#SUJ6emglNo%NaI&SWX#7%EK>;PJlMeOu?*oO3a7^{ek->ipW z$Z|Mk-}SJ}{g&@r4{P)HU)sF&u&v&DSa{#{uqviV{{Blg`xULw8HkiGP3^yg`m+Bb z&|V5E^J#V|LVekP5om7(ecy+&|02+A1@-n{LVekP5ojL;_4Z#vec68zXpVwD>SJL4 zMWDF~>g~UT`m+Bb&>&E?{}SrU{)<3x8(OONUqXG^e-TJufyn+#sIOO_egcvGmr!5! zUnEVwKxF?V)R+Aif%F%M?7xKivi~BG0|df)S)}g)c`Qo$`!BDszLPvwE$A?WVxcx8 zS6Oc01CO1P?dn@CKv|UG@4ovek3R#S9QOw`PI1i|OTr3Ca+b{0GscSvrkZ|R^(=B`B=JuwUxoO-_*_+s){t9#}w!152hZ z*w4PDzmB}O++^-!`s>KvK1kT!;mM7^Z#iLKxrvm&t2G%6^4iA>2U~GVN z&X_6qiOx%z?0t03xLn?Y>Yc5R&Kc*+d!Bk{=c9852SB3(`l@#}K00TdDDVB$JNq7; zGme(`eD%(@N9PP2;iCikt9N!iI%njfCS}tDQ$Th+-eSkY-1!!p9?6Gbe}CO`i|})5 zw#Iyz`vdWRR+BS{A0EAi8$FA%qEm4(cV-qcy-FvM9o>=Ys|q8%uNJ?eYebcEx@e2% z%ECM(T>Wk0N8n)j@V^!zlB1u{3vhx^3OmLxtW+XCs^Z*D9Odm<&Wg?*-QxW9V}+^z zmVaQznmkMJ6RM%dO1I*7tk>NPb7#nR%D-ECUd)ofhy|?SmB@HKh+%^5MWgO09*h=t zONT?(U|C|j<0SQsLyx~;l#V5PMdH8cWweY5*lUcs$Fc$KDvsvGcKyVtf1Ed~ntV8Q zSmGUm&kB#lJYfyA;d)ogV8^BJxb?-eZFzi9UPh(dJBO(DCA3{-X?MqYN)M{&rkfE& z!ZykLGy07-3P%HK5!*|EXHC^J<)Z<{Z(I+^s_t?RnWCWsfSNDxhnpXxm&ipjxI0`_ z(v5F@?3?0fRqUIeM6DKx&th}nGOnc%qw`NxyHb2mtfmDIsegyy?r7X`HO(sUSbXgI zGvkGgc#p_DFYRkT>K90Cv&kZ#ny z1nW}~qfP?U5vPZWBx3w&xr{%)_4F*4W4K5ECdWS)D}@iS%Ap`SQ2Ed#L?ytTcS^!* zACqvV+ws%AY`0p$pXIMOcs@yVDDH*icE^6QgH>#v?6#hqbNdR!(`*VWwEahdHgPl0 zFh!a$_x@kwXLCRGcL#kINUca0P?6*Xv~*gcrPbk(NarURDnZD?oF3qtfO&iUQS*MV$DBh(@zyO{j;G) zQP#7;E_)c+zLeyCIZe{biFy1#EVXk?Inpn!*sUv}|g|vMIp4#|tC*Q=jk-e5t!XJlUs%M?+$&i#wET=A@73ItQ zJGm-;7!aj%07}nlwUca9C`2D?*;pT~NIXGN2*pfj5KqtZ2sebwaB;^oo}Vu+i#^-D zN~nF|L8yHgbSmu~V&9amN?vJa#Jl(Pu|#^4wXaEP2ZSX)SmL%K3d2KPHW$M7hnO8I zmZQ-BEJ9%~jqN&X&IxFlyBkT75St4cKYm<}&TMmgv9Rk*WN@ls=V%))ivtb`WCfOX z{7mW75F0>=B|68WAX`^X*=Bzc^T{`^$3=WJSRk-Le;zT1}mzr27$e_;}xHu1oLNtc>*6g7Mo2=Rr>z@ z!K;R}*o)mQ;%1{1n0w6w=!pk1#xq&PNXXj$3qy24uPmhD2hu-MjREZy#e5UWWLYI7 z_OXOYRG3?C@zEkDza^WJZnrN*sJU~;D(J^#FzOy4A&y1GSPLBH%I5^vX&m{Q$~|8T zEa$YuWg^q@krznGqyHegbsRa8WpRL&0z4WZ_n%-pwi*L^FAPT8NK%xTrjz_gl4R>7 z+$)*yLit%3h(63#wIBR+7njsrn0({Wpac`p{I6@3){j0vDP|g_n8^ka?h)PA zDahQMnYTuqqhKrXshDoo&Mxex-Y?I(9JgJ|-e%gbi8?D{yjH%yh;gAmcDq@(i|cLl zYMA24d0g^fFO#D_{kZ{xc>Lh5vZoN6RV_^;exA{z28s;&n$+Ap-hUW%No<0&mSz0G zaM2xn=lyhWOFBJ)BWg!y*BW&%N-fYlX8DRapGdg_s+=jxGbCtsp*#XL1KjNhG*r>^ zdM_r7W-sCbBK8@-2~!Q#w5&`-bItOLN(yg14gaG=8NFcgQ8hR{cHdvriAy{h0arqU6CqDzo0Li1~OKA{)yzV2^%>1SJ1#rr&s(cEk%tTxy z05FY~Tp)RCXJ>b384d67-0`GnnRNS!H}iT?E_Au*7nCxa{TH!ko7(Z$8|>nHPp7+2 z&XLXjn#*NhJ*Q^4=s->l;GMnAeMIynwa*hEo4z>j#FiENixiq46XJ|)Hg)i~MUm)s$PN96`PiU zT})15ALS~Cd1BbEkr=jOpNKggp)-b0r4iTxVJI?Vd)QyxmQCBn_GH)O#Xcfr<{$fr z;B-e$X0l<_)j}ygS?}S&@d?n_mVk`GQ^`G0208rjF|i{Ys41$nzpKI#oguf#c zAS(HNpL6b=nJh}*&;PHV51D)KInQ~{bDr%y=Q-zud6uS)xZJN3NEqdu5M!)2Io_9R zB*GVr?!|0Z5 zlFVwRND+>4Np}C=KXLlrOT$K-u-QEL)K%mW@C5~YnatA$skAm^wl9TbO{)thCo_?+ z`nB-%rTQzc4}grkzM>Al*+V+M#y2jvN|u?sn?f1m3;u(I$vdp^u-_Q}`e%Yl3vf?q za7L^npIrazRm@~FCkx8}vh`KZ_#7`eD07JYRhxo1DumcM2pfG8WY^0dZj>!A1yDAtt%a~cBKL&nD;aO_dOgp*hMFC`g)tZ;EBcUZ|^3qYf` zH^?Ze%8s#5&CSzLN*9F9|4du3!^nRr@?$&z!vnE zvbY#Dca@u;;I5|WL+W9fr-pj$jIKdd5Ixwy0Ob5pMrp49f@voXn}Ek?9xC0xmeINa zg2R%`qbMpImqFW2k>28|4RD5Ovo&U_8YX?RrxG05FYH}iQL?jYQNYAU`^2G2DVoS0 z0Rff>S;8Q(F7m9n`lUq;%a4|(lHIc&N8|kdT&6ADDW_U0m8&M;lg-xlE2Skws7%N! zZ=3GZezz1J;-Yk*+>|!D#b6#hEM!v#TR~Vr|=d|b?~05faMzTSAkO}AMBCvt+J1p zbU$jSFH7-(y2trczkq+1*Yb~RQjP|8;8iL#TN9Ev+Vg?3WZHqXbTGaL^oG%|-$}n< zk&8TBgr_>TiNmrPMYm(y{-B5W-6>AT&H{>k79|{haK^!5s%MGSd{^`v_{`cU!R4 zVi9JFV}S6Kk*&cnN7c@f5hVZzmq&OB*|J%?xcPeungEGu?8U0JKqI}u3N%aqI zd?96JgvWo(%6xu*syBnAH?sddV?LCM7szg1a;+BZ49TFPT!!dP{<1ExmWeZ4re_(k zs^j@6A(89(A+faNNl)C+-_z9H9lrn`Td)Lmcp(Lp*y?*ftXUJ3a~Jtkk1I1bAEP31 zKOfpq8qIK-)BdKEV|c-6-AR}mPiVM@+y)~yw--+fyKqI2yy?K3OF>e8XM3vtC{U?6 zPAJD;xd=ewPLCxR$T|4jAkj3z;$hV}K?OOr@#PM96yRAL_RAT2ZasJw}WGAH3Y$EXU{O zd7|4(wR8Qlx_f~F^4^mr6rUP0U-m!1ll#^Se3_QX`{(&fSLO)O&}Rw#MO@y(gQ2K~ z<{=+7b{7+3B6rdm>oB%&*Nc!I3z#U(kff(dOuDKJhP+v#dz zve#NY&g&u4V#LS6TFgwwd6|w&-AAa)U-~e|TJo~`EqnI=tbXpME$ic1oj6~Wi8}eh zoW2fOjM$wZFTYFqodte4pRq%oAsnDXoY`r_zBVW^*B|nD3MjL`yF$!}Rq&%|BM#^t zC4E&8=2Sts$MQXje5wUZqaz?fq?lOTP z9+6N_s7t%I@EE9mt6Cz{;2nPpw+{jtvF?0uX9XMX)A69kneM_RMtl&>1P-i$FR5~R zU&gQUtWaVS=Te>ajFe42;g>w(FlUx{KV=o5s;B*~G$-*$xvW|(46KkhFLqE@cQu1PpYBB;Wiv>%r_6LpFUwP;D`PFOX3hid=8Gxuh z50ln5vcBr}`|oJz#6a&Zqejk^NKWy3C;L0ojO^#Ck=t%%1ftjbOTD}-Wx0bZA)uQr zCI)^+gr>=XkQYrm$>5MyAwS#>i{SdfNntn<(-hdhrkY(GqVD#uDKO&uiFqf>nxhB% z8jJqOZ^U%cZ}2ph4;x?}WMVrY3h-DBUkJ41alZyZO>rq0()bnpRs%IlRK)-W*rWI3 z3mSRlUKV-T1{3BVVrE49LL~$fSzOCzoL&mz3qikpwMO|_$b7^v^L}D3VMKKaKg-SC zg7-u^J0QBn$IrQ;WX!*gPog!d^+E zMI(t1?pBJH_kK zZbLv2PIh0>^7{qyUECyF9k!Ny*)O8&24SqDr!qq7PPf`@>N{i%bw-mNN2#A_rNsOe1cGTJj<>Ne_xkIfA-ow=1S5Lakwu5hS2Exs{DY$zOveg})( zhg=BAmEa>FJub-Z(-g?TBitF%1k~!0LBeGL2jnUT>$1Q7J*v-{e@yhK85%J>`#SX& z{of`Iq=nZ$PZcO7ZpgN^xA%+W+~=%8b_hoo|JN!^xpY=(9;*Bk|T|%z&lM}0e zxkw@pDQ(BHsMdBhS{hS9XytmTAoS0ZO5>%1(7yvsA`CxsRn+hA)-HiWLzIf@OKaM` zC!ba#u1Yd)a!cNHx6}cSGI!=BVTFHOHtdlRsHvm$;$8N$`~3?9Z=8s01mH}i8e=jR7^z3JkwOnrSm{X; zZ}9|2oaFVW+$ps>)NI|WU@-4GL13J!V3cOozpZ8cEU7Pg)Tw`|s?R)hD>vt*&#!do z=jvC9@;{|nzjhtOQu-AKJDgmq@MIY)8O-sjICrL@ZKR=Tj%_wK6WI{<9w5Q*xlMDB zPaVcS4-~O%62WG@!HHpim4h1E=Bx6%qy5}nnre@+WT!^^3@~=aF&!NiA)V)zIEE4- zrbeNmPy4Guh5LY&W-Sw+PH-cfZi;U&lgYU%p8XF@&v~?@;@QjyFimft2+0rvTrn0N zo2~u|JQDfrUc9kKRa{q1MpJrbPfE`qzD9f@6D4aqajmj_guCgPJ-ojy3%@Fu@nz({5+FwN8jQF47 z677`DMuRCw>_VS*z{DNHWy2>_j@Vl=5!H^EeKTbhp1SHVw<>2qz5-bB88fSrz%bXX zdJbi$asF_IpDB7uvMKJLAzZkYjj-0-wfkfV8QmB;%Uq#y6Pm4;NMsL`tTN)GzDf(@ zS0_nEL$mb|9~BoA@-e^~iX73`*}g<+0AgA)54+_lH4n3AK{!4Cl}W)K5MCx&lWgH+ zcI>b&{8cBwZsAVeXhU}LuI9ss4+%Vj1xToINX3^x6ink;#utIpN3` zWK;`xF%5|Cn%~WS3{}c_F&_w&>@;HcWXuL$n4)I`j{;J4{d7P|PDiQsZSF^6GJTs@ z#s5-X!zYVcn)n}306*b5YQN@XA!UYN^Pvl_d#wVO_G^|ixBO{v_%t^-;8xLVag&z0 z;EK=J*rhzLo?VUv4u7Vf1J3nl9&*7A-?Ok~XO|oi9KOuk$c1#)^<{2%!F7LJflGJx zo+E<8kEwRRX+LJpAnn6U091w#6F(WHGA(eRkRlYh5crXGno8=R1kN(-0Mz+94`Ecyw*(V=-+F z?j7ma&=Y`S80TKBhV_*E;mvte$1b z;!I#7BeGiIy80cFMe+2NBarFkPa}pU^Ip4)R9AUs9Nry$(?^E!n^>;_DgVrgIKbZ= z4cn1uW7}whIJ;Fn5v)7}Yk@HKAC*z921VtD8}S*ueF`d9^7qFAzdIKocEe|8h~1Je zH2q}0D!elhsaNAXeAJ!ojLEIq@0ph7!ggn!{gAp$jy%_eTD%7g+Hm=I3>r-SlThKw zb@WW2x;#lbw!@PTwFfoM4CP2rq1Vk0RF^9cW7IUK2it?n1>;AA3Sahdpr-iJ#dY|X z)$P!g%U6#G70z5EN)iePXOiC_19p=r6{SFa3t*U2994%o<8xp=mSALcVl?H@S}K)^ zlsS7&THg}0w{77AXZqh(un0}%jcy!>O>}s`Lz0JJw{!b5!U}q*S|vQo4dW6tRB>6rKD#64pP=v zdhHEOu3v;bAhOSSq?1zizO*haD(wy##k5zcTG#&c=D#hA^rr8?r*b8w3BS zcWE2)0$|mAVjZS)9>sJ%ikQwIk)e%&c2@NLn8~a(;|7N7AH>&-5Z?mx8vL5%6 zYki~Zb!ore{cY-f(X!tAceIP=m2K+zB+{bd*2$cDDv52)q{}nOd6-@Coo1Fs65*Gr#5&r|9 zHD(>vw4v0~a-A_H$qSWRk?QBxR{j2>RlmEp>Q`U-MPGK@-fmxJvdYntz2dlanoiVu zq5WFtwy8Bzd`?Hd=oHub03BR@2miRqI~M`Wdi2^1>$LYjw1s?kFK@q{jfALMVs{Gd zP`+3D<^R~Ge7P=f-_~yLZ*Eh5x-P%0{qiH)lwU-7HJ-7B5-m)2pWl8>Uz?hDqmeb8 z6~9y+E4(77h-qHAl&LG=2DJ}v*>SB2^D{L|u7=$35&2LWUe^@72^!v(TiYeXwQb=2 zJOiHaYwUf*5`-RYAHaY%0GjO<{WIeEL?JURRJM`^_*%=uenC}yc6*egx0O8Tet1*; z*oLrxMt=KfJWi%+ONRNI5-v>_)sHp0A0NzVmk?9i0JtmN4<)zrQh4rCj-SY_%0HXg z$^zepASwN$`Qt|2?v?GgYq3+UCF0kl+f9#WFMw$NI9<~ruYGV2wgGn-Ms?>osvmNK zoThiAWk0r{Kr+Y4m+FW1G(Mp?-(!u8pZzCPydFQHtA;l#1yAKocv{h=3-FHQf?Q4< z)^$O8&K4KsLku|i=bNp=Gt*wky|5IH3)eER?pjPaju>>k64xaWS4X^GD+idNk|yRp zszar6yl3u_)?QaqleJd?px0g>Eml*$$nma+Gv^lN;aF#bm)&bK{z^ILq=ifNRXu9& zMTm%}xcBR%@+~Hcb3~*|)UKTSR_k^6 zY`^u<>Fi}{0x3nvr~O;_seL(%U&OcY<>Z}}$3A$MkZ)B9AuaKQB&7O}n`G;c-Z}A6 zUsWsY{XCp3-bp#~hJ}#YGkik-B`mv9V7|=Oqj1URLB#W4RE3fPK~pkknaXOx@t<)5?;MA*P&K~8+Hs@L&9mn60!(Ogf}H>hRtf1c zvPQ(eBTXf2#LnvtO=aD_m>)V#<%bJMQ|UrH%gImaEk!aj%OrhzUY$b2TlGK_XH|=z z<6M@|I{jq)@$`1#OR^d^T&JHLNB?#Di9Ws&3~`Pk$~jsaQ_I6(E3RiLafx{mVH6#Y zcs!ph6w1z#vJ`!cKT^~UUrV+E;m>qlN~qUHPUAhyCeaQmO@&2;`&2dwy6_ADM|T{K zu643jI$Y34rK%A6enMbMI8p#Vz(Ypb%3$k1_v*BjKN6Szv9y&zZX$}CprX=N#>m?S z;JI%lZDpM_#(U&UoW!sUnv4&5EAk062I;(&=Xp|jD}Th7cJo$7{YJ%0B?cWLOa#sec+?9!WDtBeD z&Rw~UB}Ns1eTNm%B2IYJh!Ig()}t@`TR~1{P4P29jsz-FSDvDU5DVfmCT{Vtx!2nB z52qiJlHK8HHGtkzN!$QCH;pA-iwgqMu?!>I05Qpf+GQ$v*lbuvrwmS3X_5d1APQf`tc_DQJZld9wGYM{FQ zp5(Le7CDxe|CKV>3OJO3K-J3N;8I5!#3gT}>1p8`g}&^=6N1(7R|r-u&lv;%Dizhh zzYpF}sWfq_AG$q8F?MuJlLVJz9lIAGt}S^krICwU6Xai`*oGX@I6#oQfYrnyDKVf( zvl7q$3!z-pvOS4`(Rw1?5}634=Ba*L(#_NB4Wrz=mN6m@*#c@BToyFqe)wMJwOo$q z>AaS)gxK7?mUH=y#)!@&l;GyI6sWwG0>0>VknM0Fh!sf4^fi8`^I8gEg;ZY4S58(7 zJIGjBk)^7V?h_*B-Jjd*wbgjP8%9|Bl1Nm%6- zeg^rOlGAcK9jp`WqW2l$ucTIahwv%2%KImYS{^-_ED>^A+-*iT3TxlqdgbWTg2;pDVHr_6+wY_)JJ`QUQZlTK*qMlh{4qs^FsJ~;YsuH>Bn?sh)4 zgx}qDD#bU7Q?Syz#|UlJI@P;Rr`D-PaG_0F3OFzDg?+5fZ3}UuLHtepvewNGIl7O> zx{pFy;Qxmr?y^<3eKTAu?F*j|z@DtW0oRyx3Qk+H#&pClm1w>Fovgen`xr{TtjxH( zK5HF4oH5k-FLG~)L-JJqOSX_z)Zaj*AMRF_WfkUOH)o^!GMXenoJv+{Cg9}1 z08+0VeW>zZb|SvS!nb6sTLiEq&ccPg0TnKB4%VeZ>HHU+-V%gWTJM9pTd5QKSXGVu z7bj2UU6EzUQ{e<~a}D|>kNuOfx;sFW4f`V{C+>c&N!<=i}#E}0r^0V+g^Q;n9Ilol)CgC3iC*R>R# z!>D!gR8DEF0(M=C&A;avR|Pzoo)3l`$G&9^bWdff^sN%+aP6Vwt@w=iCgeorttf)U z_D4=`2_QLq-ZYe5zZ8(cs>xE>3zUsIsPXgc&GtvRj!hCo2dMNF+-Gh zS35vTiK$R|B~PoITW&(qc_r+NX<_T8nM>8Gp!q4=D&(KhcQ&QmL*o zH)&WBOm32nA&4_23>#T0I=%oxe)uaV{DF?Yo>``PFG#`1&K{U+bSp&DZ>N=}2U7S5 zxKU}j9-z#J$hF!ld=Z6P=bMNW*xxAerX2fXjrhqF!|%W&8HXih@!?A=c9t58n$CO@ z`O|8_$uuE5ca{A&Kro-q%rjA-<-CnFzlbY~5OHH7Y^0r~%}m7IWjHr!L|iFsZc7Kr z{x}`?Qh71+31$e66XnQ?W^2ot8pr9pE?lh>@B{@(z`HaZS8(=!I*P4CeZY@i>KDXX z<$oODen=}+)`{(NWgd3FW+#`Z43G^ctXQzEn*So(%?*uK-hma>)$}U3p*&fZ6*hvF zxxvFZg`ae&DCAo2UCLX24ZgwU4OPC!SUNNE1J=WT-Nz=jU17-td5)z!N$#kj?@(8c65F)ablVGGoxlR z3vtS^C#yKyejLYrNsD$n(wfeP>&`c4ztU0sl#YN?YMasIl}fmjllAeF{_HdbR@h=n=u; z_q-+=Kf~`i)&*C*uCk@ylh0m|pYAL^&+QI4*XQ{T3TfKis=%dv9-qns_|fciXotUZ zssm2@J97poP{pSM3SVawGY0W>;*xaEieZDqz~#tXIsZlb$@l#-twRTV55J1;wEv}5 zH~jA`=ih+z|5%>PP(WCBk6}qf$GGgCtk$si_hoUpt=|lH7DU%rA3i3&|7s^irVsi~ z3Gv5pScVY4F2Yc_GwAhm1_|@RdxZgC@h=zG?dobUV zY0FRM<{&VZ#JYj01O}MvQh08k+76zV95FuyskzUAsb&kne8PoUe6NDpD(5ABM3``H zsRL7q4lrlBFo&Pl9-iMG5hn7p)5!u+@&nA1(R7-gUtF1yN28|<*Qq=jMKZJDX7`)K_!*-h`7R!&pVkeE+!NAxOJ>a*6t$lD+A+P7StD=k`;-C@4sh$) zSETxzs#n#fo=h*){4G`Qg?8!QLpsUzF( zGV5#;2VO0A%f4q_{Cn|n1&)5qZq>gNQvK84uW9vsa;x&!wR$#NmH&OK@2~LPrOBle z+YZmC+!3fe$rL*eb>@|Btv>D4da6yWk5Yc3p0|#dl2m_fNI5lyhA>l#zGz6&gk3 zaa#r+mF?iM8#!*t?x7ZV#N?W9kL$#2z!OCXu2~2^IzRudQZDj0b)d7_kPla#$|-U@sFc{;uff2cxSy z1>^`if@Fz#zChw^^NX^g^Gzm|Fp4eqsGagF0EkiTvEHdf;MR^)r&9s2VxOjcdJv zwP5fI<=zfeDPf>l4vY%Fv={u z7cX772iB_iV{9MVMeg>D9Yv2^Y~q(HkItH)u`%LR)C^Ds|Hp_wMalBYeicwElsxU1 zQkHWF3(P*8bo^bo90`4lM9_ai4QE5@ z)%K6`R1%Y+PD5;Z$-$e*@`AzQ0IJnS?l~aIWTgzkna-}b9oFMi*nJ1j)Tb-za zTirR780L3f>sP6YUpsn3y=rpOS`TP||EmGIdZ0Cc9Tx&% zkpm#oaY^7u^nknG#i{&q+{o;6PzZZ2>g^dtP6jH2ZZ$VYen!9134IwGbOMK~>+1&4 z3IsI{+Hxb_fz?_adAIfM39Bfc)(IC;u$4~eZSR2W zI5#o=P}bE8@9?0RWvjau@Lwp08#EHc!2binO)s#2w%M9KD5V%G?oKI&fJ#Gff$z4? zq^kL`%0hUOx~=>8w=d{pmsB5P6j6HOC4|Y<6Q}Xgp28Kyo7ax%U)>>aIrYid4B5H}gkSh*EU);t>{g}R(Ocm>y zbI}(MQ2NL8#q~7i=4hUx@Js27t{Eu)h`ufB$n3x$JdRa^;Z{C;k0Z z8C&~Ad8a6=_{GG?C5CVP=LMkgA31Rwd-MtN7IM?5qQ)=i2akI|W!;lPTLppI39l%9n zHtwl^RCTj>czJJqlY;fH5uy-RN~&s1TzUp%4B+4kt47+puw1N#yM4oR<+=MZc@EBUpNIcdo(D(W=i&$DIWk8-r}i5NPt3tdjUMbt z9G_Th^kBXbKaDfev-r|b5I(;O68w1a?;@9)qIpq4y2aul2apxk5igQPAJp; zG?ovw#{6Ah)bs#_gU0d`1IaRP0P`WI*2U-_hT?Xwb&4v*{p`y}dPgR^JyDjtCX1_= zk{4|#E7=~oQfbR@virYiATcMqs3F?ilbx_$3-=^Y()r%`!^6qGxA2jN-^?Y?D0lXS zWVn+~eMOfC}|EaSuW z0^`MzStZx|vm<}!-@K|G%s{(&B1Uq|dkePxK+(v)+j&%`^c%>3N$pg2wH4{72) zxgefKsb0>P)R6MZm2k--RNK(b3+La-=nv($WPk^$F)Wzqd}ko}{Phf3z`H)ceUBK~ zQ&sia!F0mhQ{O+{bVcK@ zb3@6RNDs+tKedc|^*R?da7b?lh!^lSN^{||Ja2wOB%}>k?agEjfW{I2;?*#>{z(BaF4e!nSF1) z+}@N7dvncod|d~U-q#urWfiVSX3H{@r*K1IBaMgb$I)C%W~{$@fi3;zRnV^Gm9`r^ z4zlO-=ZI+r!~9~Oh51DYP7)VA&HS4rrCl@s zWQX~Wu@9q!)OfEM9R2o8Bm9=a=P;g~#zzg2qD5JL27B(NiJB z!H&Vg4T1W;w0UiVj6|TMG13eA4CH&Dz7Owbthkz&MqK>xn~@< z%;&TizXOSQHSUbV>O*t#iVfBc&Nn&fp0~j>nv>lgCjI&()N69wm<>vLqjR!FWVwd} zsePcNThv$_r#!`$qgCbk?kagE^{l`X=_ayf#4dtB{OYD}p^#lZrcDA>R*+<+_%F4l z&qKHdVE9fko?FQdDV)nebb-AT8!Ue(c7E_%%w0afU4JfE@|6+qD6LVqz%f&sIH459 z%~h#z9siE=m-6pqId78$Hlyp&M%S@~?`*l^+@ej+2HgbYQhk$Y4ia>Nl zAA5kqpToE~&!iwY43I5g_wk!qZ-=syFWJw*gHbCd_m)?FqRyRc>gMpdto}(1FHrL7 zyspr{FUi;cwsN19A*kAhMl@pO)Ke*2rTma?;Sp{zA`A)IhZW<2Kdn}`U7fvi8Q`WiGny~qD=y0Md@8S zK}o}mjaL`Gg9;rnijb|eM84x(686yO1t#|qekf|)@z21oXqU#Y)VP0jbahWbGk!S) zvL5I!NNU&U6keq8UTaN3mc<2e!)XG!PW}K%2-7sDtKUw_INc7#9!z37+ z-TdSP)IR|})|Kao&ndzPAO|PFC4Z{c*HghcJmT&W#9_p`;;oNFSB)&NyzI>oU;4M=;^d=!8LcJm zy-^{Vi7^SgTT?nDhsmE9;^wbMh+dFy`D4WE z@^eH84+Hpls`VeT-RO9MaPFh4g>Eg@CEW4PZ1+K+H!aluM?I=rn!1a3vJSA?+Ix_D z3tozTYs@>UdQO+qjhIadwbN@CvCO_dit}rw3g;OLbr)x*%@YJwh4)~M_Ym+NW)0MM z57Kx$7rNko(Qc)*TQwz|oZiI=jQ02Z6TbH}<)`E)D3@ho&ypj%l&qe2EaxXFllG}~ z)|1MlZ6>M;y3Z=4y8r4E+1(mkVM|a!$!)4bcT>U^?X2k`jmjOXi&d$#{X%{g?0ibm z3j3~gFUT0|q%#)tW#y8II z3O)M7*U#@%)X?cQr0T$jY+073L@?a(tAj_Io3^K(l_`a9U^-OZmzHFAf=Dl=?X|+R zY9wnw2`WPBNR$hYs^G-cWP4L4q_g#;267_UX+7*<*SRHjNc~EU&(|q@5*-N%0DX47mew1$si=oMoNes#Kakq;95u5;c3FL@`GtIu6aP zDvch@iS%X?8Tq+%x|fPwCg%I>rC=hO1rw<_E-~6SaFmbuo&-0gz~9+&fW1`l$&CI7 z#)Zs-gmJ_K5(hNbjJ4MPTzBefHYYIX6-~bJ6*;loy~~7~ooG&6fAd zZOAV-`}mtSDm<*-srOY4^uK76bvdDgrd5tz#ywb;86T6b_Ku#%G?p-dvP;J(BeT}N z^JLKp$2LpDk<6K09m*v=qKq#abZTXhiiO5l!yJQzGEH~$ zD8`uC2J^IaZ2#L5s6L2&>`Y1C@nR1zwy;pi3$ro0^FjeV-?fiRwi2LR{ ztqZgA(75&31zSCy?>(VTjbU>G#XFzm+0%i?bpUVNn!8|Y1N#*Cs&?x&cQ6*!0ih06 z+nh1}=qDrgIlWdL+7sQ&&m9s7u1eHY60(UIBr+Y(eD_H8F)DvgtoBTH?X#Rx3QJ?f|cgVFqX5t8U;iJB3r# zFTf|C0T-NPz?tu@g*yC{AwHNI_0AbMwjE{;I9b?BaLf@LWx?DTC%F))d8O9oO2!=f zsO*J^(AQ8Y6g@Qmmg3NYL(MV{i>iU4YKRfLF=TFtZaY8JXytOTc641s&1K%2j*1^d z&T4upsavUKPv8t!-yC4KoS_C(o;a$)SQw`@MMw3fzvmW%z@>bIPw#JtHsrYa*{L!6 z90!rCdAJ>LyVW_mZc7aoJrk)d=hs}86&l?bPou@6WpavC(yV zRDA_&%lW!mTX-GRhb)Dx3$MAu>?<93jK0L;HO&0zx`QsvV`1tP%*-~JFSW)wTNUh} z2F)246wN#gs`RuUn}MV2zIOrVw*s7MNC0Ox1P8TlC`UDvt%L~*BUcVfr1Wj;^~W~P z3w91+>~N$Adko+H7|Rd-gsiRLVLCJq^fH;F-Kk3;1{?ht0Mi)4^{d3?{nuo z&Tq?E-Lxf~`{EorzW0WG;^lm7e%SP8nqJC*wnkY{L0sv0gBTr|16kIBCV45*1G7WZ zpIm>VsA1WOlu#XAuv4zNQ8SC(`$GRKlUR5^6umvqL%f8p-NIPi{0BAsM(jbVv2tmC z2}!N&s}$D_puin0^0GEp+lffW;*qM=bzvcF5S~nMP~CXX{RI+~I8R<4D=*E> zlj{BYWg#!^AATko7Mc3NUEO}K{@=7GEA`*MnokXM29UlU)Y~)GI+wR+$Bow~#yRf*kJ2VEjh zN)T65N+vKxVojQF&CN`m4kPMK+cM`%22uQYbxRF;Yxwm8$sNk=mQtwms$9v}jT> zplJS(`I2xSKi&3U68_70o;|&V{ItT)!EKQ+rUOs7GNb-WTUtF^t)BO^dOq0dSyult z;rUuU=Vd0d`NE~QBDL^%HUWxJIMj~w?vq#vpLWNd& zVM95`4c)zgPt;izHU~}$cG`mpRwBc=M-Tdp#WM0{BL&8LqBirQ-MaW4-caKG4vGX!3^^%Q;tDTn}QZHHZlNdh0?#NEPWZU1v&dVJ4rIl;M7CJ9;-Ittn7L$HZ zy{scMBza$vy#5$(sM89=d=oqab=UB3{q6j-{AT`f7f2pD72UP{*j&$~x@umhyQuk@ zY*y$PA+1M0)4@RiRPB^FQV)j9zL>WzKdu#n>?wP1*ZwJk{gQ{O#!@#u2mWz5_de8$!XIs`n;0uW_gcAng zQPQ0n0M1ci70FAyfldw4Z~GawkMJrGUDtnXQA1e`EV-`9r}VEJ<0b3o$%)>oedg=o z%7(^oJ4XLAe`L*Mua{*((XAsZDjO=i>zaDfP9VCzniAy@q^u^C#h-{jV6JB^c7Cwr z!>TR3^g7>#W}mtEl7La}T~U!7;gy+q9O8NcYqF{*h0TtLHgWB({R5rWftpjKs*8M< zuX;R~sTs9TQp?;>w7)5PNvQIx#)H1(Mc%4!xQTmRb)Y7zJQ+OG>$X?JqJiaYJmf1c zSy8oD#@kCcLfX>&1iX0{Dp;Bh|7UoUQUI&L$`hzL*6EAGuQkUy$m{1&qGQphjI7artM)X#?9i>TL(}VO4oKHC{QFe z0g-&nS>9zQqbXRud31m{54)`oj~C~mOroJxPY3D>`C1>K&E*msclE^06t4g_Upg^4*d|JO5Fh%>RgU}5Gi~?!h46K&O3I9>b zE?1)Dj2GU{BuyO^mG_bIl{ikK&gSTBYdHi$Fir_2#^){AR!uu0b37Bxk$L|4p-vm< zlqAlkg5^+N9y8&ic@A594+ zUCH7xRCzUDaER{AvnqwC;MT>Q$o-$I@+MI{C~BBHt{n2-Nm-Y?$5B}=m0DLE16^d= z)3gqJU(KeF{W~b4`AGcJNix6G6FuMl(Rq21V_}AqrDw|Ls-^}I=KJc$(-erk^mB%8 zRzBg?T~!}RF`Tmc%lI~lj}P&2ianmM3O|iy#{7)-j!VqWTd-Zgrq}r?CoeqAIAK}A zsu+x{3J}%P%E(D7h`rW2SC3H_-LR!lETylzt;Z;=W{n_}dJm+bF2S`kK9U|1FxWiF zzDY5LYByAQmR0?P0UX|Etmn7Ezp|&fVPJ068JRrfE?QV!rplbODmPJlhb=4&DE3Nl{qTB;UFYBv%D zkA8Q85i2B`5eAfCTGS9WZ6-+IA!!On0oJpIOocU&jhC+M4!tVvk^ZQO(NZm9z5Py zSPYHWvS7rn7XIN@JRw%}AWmo%qoMrPXVs6RjM!-67>YfHP&TpDKb1d3fMd!|@EevX zerCB`9(TZ+Lhg;=P{w8OE$q|Ih#2CG%V_Jr|92s;%SAu^epVv41F{l%yB6>!Uk{(oP&KdYQIvgq?vYr zJyEFabY7T@145m{c$3cQ#ojOEaOoOQukVRv{x|`f&CzIkl z>ztY5;O?+)nm_@#;Ys-miO`a7TOX?jr<-KQpPbv!DpC=6xj-;U7B4R7?QujTFW$gszsQHkhOIAPDNRx3k(X7U!igvR)l%6R zCTrLSdQ|1qb9d~*LpdeUSp1;yBm%7ViQ?ZF@ke10X+=^5r;F4NkSYRC@;1rVenRmO zK6BXoLhk<_qKuLG4)&ycpuyU6;Ra!yf}qzH6*K^m;^-@3)TM;^Wj6yGOoaWG6T=b-fhb_C{>pgk@&IuWRT46*B8A^8umoC+$o5GndivLBi zyPPGe^?Su?n#HC4!4w?o$VI#-r5y%|$-YvTK_Gc|NG|0+a|BEB8x^aH;dJhAyCB(T z!2En$hk9V$NBHsk4b+hAw#>9>|EM$Wi{m0 z3}oH?p6<|SI_r*?E!iZF{pVDD86kI^Whh8cT^OZAg}I}`+*xk!V$77NQ_#mLSu#dy z6bM8gK&N*I`%A~GVNzpc^K*H;8!yNP9vhKm@Dj)0ps}p2bs1n;gPfo&ftdo+~H&9zFv>P zZeYn+A9Q5IL%VJ%4rJY~hTakEWbs?NwDDpdMlk+NTCLctDVXYiOXBD}CHo(ey4Ly& zBkZvs=1WntqivkhlCCS3d=SVLHHaHu+(&i$GwT@IO#`y0sFEoZ2WFzU?P*(Mj44|WWFS|q*LbU3YRl+%J98~Wlor{Z~Yh|5SW?7J9 zvaLi5QDaAwb?|?cfW7N>v}iq=+YbCRhWo~(F-!p270fFf3_EBHLtrR7?u}SY8bb*O zfuRAyE^@Qd$h~T1A~(rJ&O{|TwnZ$9{WxMrSANl3Q)HGF{KYfX(4>u!eJkbC{;p`y zCDImVsDLim$MLxwX7MrYmwOzJ7HYxxD^;-X*uOh zWG~P)i^T50G=nb&*FPUnUB2&l-Q{XzSd@1Vb&S5aM2h@cMlD%9&nYs+DIyb3irh#M zS6SN^Q52oUL}Rx#Uh4V|W+;(Ce5JP-Gwo>}!Ask-)iR${@097w_CH~}D=AY5!DuAQba6e ze*<+VwTsf`p1{2cxDrRom|sJG=7D5NR`v{;Utt3nE|w{S%p4m}5sEahc~*wZ@jn7} z5YAJ7qu{-kf7~w52fkGESw{)-;(DlRtS^|%p37yEtn4lgNhpPQO(;P)Pzn)mx;>QW zCxbUj*7&U3UZeink@)~;(-Uh1o2~mV>xiPLnnkRPm-T<*pXCqnkK1@J>D;~FX`&q! zDw)D~a)+2hq|2vvlp(-bcj%`V;k18Y4IR%{mFH;04y2p(t0p5!iEV`vHFbQERa_>Q zurrrpgI4o95a(poRmmEV0b^xO4R?#Sl!Pca(K)4_NCljzprD;jXR60ZtZI%^$}mbW z@!Y{35>bq*$EKXO#p8P$-%5 zxhgM%l~U`Gfx5ncQ1k2-q+Q+}IOhnQlZ4IG{Zr+VgDDXa8Bk(J`!o~fhLZ#w)csPz zJ{v1!0N67@3ILbm$g8(UAA`$}WA>tu)7%|+gC>^Tmi!eC2x`(X|IlxL5->O04&{$uNItGG%772<; zdgn|b^bXCn?@C$4wG8V0;(Z|n$I067UFBwOQ{46M06jD0i0m-_c4w0xDK70~|Ej z&Y>6nm^8bV?v1awbmS)LnXB>Wt2P950^(+vTh+&0P;q7Yel)Cu`I@MjA!|ovD`U>0 zHxp7)d*D*0^?qy5o7(?a#b>;VZjjt#uH;vq(3!uT`8tVHSl|Kxw)Hthpd#*%K|+QVFSYXD#zNol;l!)t9yVO-DHT^aW{AC zMaj9Rk?;CxU`yeX@b+`2QszZ-^hICJ)VVr?|h4` z4JJ?Z2AR_58H?xfUR^20#d2KY6Jh;7(b+HidM`>2E2>CFa=qo=x0(WJmSp&QHg3!A zv?5T`(|D2X(TO)DEqKl;@~o|D#P_25Q8b;At4ng{c8MhOKuL%lt|#4&l@#>|rh+$uJsm z5j2U^s1T}bqgegA48ZmN&Wb;}@mW0A#g_P6eMQFI_RErUNfd(eSdC$R*sNQ5f`+ZVDXtz=Wvf^DL_qOWC{W3xFzB}4n64`hY!=sLbj#GmI- zA~%#MRar7N!ipaNoF771HPn@Hl0~0FDHP|lkM_5bO{)qV<*Zy%J!TF)ez1H!g)U@I}@g&*#rEL9| z)@K*Wh(`vf{d!_T7~k9T^dx<|bvB2bPBN|ZVm|STjOPq`i7WJ;SWa1jd~<9V&%;^I zIjTHS>XU3sv!lT0jIG=AtiId^EkDG;u(oi1Z9q21;b~BEB#}lQppPPymK06ZG|}C%&6_iyFlFpu!o-?>+I%5q&fkTKC5w0j)z_X&u0&&f|3{TT>@Cha;gzmnW7Nm zD2h4$xx#n<3UAc}Nh9%*VZ6mljz9&axInWYP=imiE7D1{!=Q55hx1n=9i=0I8rW{X z`aK|E=9ZhC{X)D9)>7xFaFM0V0;|D+yq!=XnUm~-Z@SmjfBzTyR&SD+v`f&Zs?8OO zlt%0;)M}va7c#hFP+AP`%||o1f7z|Pt9~e?)V!qq;v=Q_Y>Go7>5sd`#yJ!QH;hf* z6NE@A4GI<~E%J2f6w;*azFSqlnk=aX8ucdiViO0*gYJvLE+@pEZ3RY z(2T8Vd6Gm^h3)2sgxK*gv)F=i350*8rlBMaT<;HA)gOyIuL$UsbR%A>N{;h~IDJ0e zn+IVuppNqod8!~Xg(Kp~PdXYDBeCtH+8B}hu zAXR|o2m=08BeqGk1doc4fXrkZXB2qI`vHhqQ%WT>0z9M^hZ26QdSlCeYwaI}lH;>D z;A9|ZQObyY?|{n-XwOeFM^;S?nj12tSm}N9opN&%(pO&ix;kp`2z)TK6MS&fE^$V_ zW!UwG^J>)}51C(4Y&WtJ^G`sn&-c$(^ zud&BTpO&ylsJdgs&X&=rJ4%?Cm9>mkX!aR^SzC9i#%xg#8SSybMIWb>#)}%aOO5B8 z8Y1_p{(3ZiR|tNqTQsEbyPY};zok@?`I{WL<7WM_pj|_iAS(t9{N*^-v+#GF!+7L} zXe4zi&rEUy$o~Vk>XIDx++o1V&3}c=*O36uCDD0vA+nuCEJU#njvoBph`mX5Ioi;O z{T(#R69@?U^-R&UrKFW%jLMAVyDEr0Fwy6*pXR0h4N_%%;8G??W94AitE}k~DUGgT zORy1pTG*en-hL^|PlGw(XO9H<7Y>K9xw+v7BX$;VSseF{G z+|;P~JMb!_+gui7b?qL|5ekTaKUpU=49<|gV z-dps@A>N4^=9!)fbeG(d8wz9RN?A*x8?wuw@KD(MT7?&lrV1gll7m4Q$@-vDpgz@Wo=>vqpQJOw9)i>xeO0K z^!6OJ6za2jf74N$#3_oOWnnTT8m6>7nN0`_Ku+39j7F(S*m|A(&`0e`h*KV!GTZ$i z!4l5jlA)Z(yB2(KH0@dE+se%BgP5*;BR`Yqr^F25?q5L)#ZrsP6qd&v&gO6>!aJ4O z_k_IbnztZtb+Q`~0j}qh(mLs8K$iV6Y{j7aK08S(Qa&m8U_V;ob34_o=O~LGUYUUp z`wxuT{*0A~6geU!RLCIY1(c(z41_jje4Z#~ht0eP!seT@x?4~oLcB({$qpcysOjg# zC+H5sdMyCurfaN6xNwVXCoUvNwacjehbSAiSVxWvR1-KuSw#L6v|Ucx25a??^~ z?vRRCUG1M}J@_vUg;}E$nyRjpv6}dlSM~#k{bTq+TIy>}zjNu!4R-{F!i8Hyg>SPD zz3Ed&&xI2e*r@eJ>`zd-tfbJ0|4qb+I9c*qpFLZ6LHS2N<~9uN0R3*-A^QJsKuGC- zUN2t`u^s(S0mYS2xk`Ntg&9AyvQ>wi-^&UPxU9ajL{Momy z2TCMN$gs&N2IXrz(jAXo%x}h1-H#{Ntc2E<$+S#}7|*a-#8~2PaV@H36iSw87`Q)6)1Du^VWWoK;$@`2*+W!UIuJC^VxI=iNv4LePhbg1k7s#w6;Xs;xI^dCW`((36bf@Y1Vxk_ zSqTMlmEeQ)b6LhDor?Z|g)}AAyW%!A9I)_kcz7XG&iGj{S1SH&Dkp6s;8j zueNA?r%F>vwF`PjUm7j!6 zLWI3a8inNFz3Y%%__P-84AjjLfe1(s-ryhC5_SS3JxW7Bi~82o4;Wn7Nd8l-YtIuI z(ewD|t}Oc_$l}PWweM^Z&qjqLelP&aJod;GUo);O#LMYbfx5}k{`&xJ(Z1PyywiT& ze{!7mx}@3*)X9CR_2Rm&{dyNl*yXH7fQv=1dAGhs@4auTK#$GNoz(rgI9+ z&=eTSS0ECtX%cxa&GsxGurnPHs*l%zqoQV@ZYM+Cf-C-U_;`#HKltNVTAw&E{ za+@Q>itrl`;553CDw%O|)aNK-?VR1NQyPQGshryQeLrKd2V+w`G$BUzc^!R+WZ`SQ`2TVPKl!8B;an8Ha)KY8V2|6AA(o1DDI- zW-y{-UlJW9#KAlqV#xSbb;5-V)a3zFM-pJY5dvLy*{Il*1fgUyu-{=*#Oo3?X<$s? zQt_Z?g)sv|tg&1Lq?uK6{#6)7MmWraqQ(UJE#h@_VE-szwh@}$d2Cwb?OQX(-DE}4-hd$)wRa*Biuny)F}9e1_5v3fu`XRapK^11u~ z1_LpQd|tGX6)9ntd{mK6FOp3Z_@BG2Z{VP?sWwxb@-y8|(^BOR)ICPK^^&pGLege@ z%OE}a34JE!Qoy;Mf{%DsyQ^vnK z2&9t)QcobkgeWgWZMRia)Ru%07^1o2ccsXS_Cz`==C;pQS~e(!#6cO@5kK+_Z+YPg zHORJPkGOuub3%vzY2B|%!RG#dgN>a2h_+Q8UD0|*cm%^5p(k?Arb{vdkT@%hwYStnl z@nEE5St6G+T*wn8b|l=a<^-EF6&TX1qD9tvWKpMvN_Yz9Rg+ucXpThN$*b@{lwFv^ zBT2YF7;Rwn4E|yT4RP^>OK#6MY6D`?Ce{Q=$RVWQa31ScSu>Z4R&v(}>H_;sM!<$+@QdEKiP*c-06BLjWb!Mr<~f zL(wm?7`zcEM!-_!3}#1)^wiuT1xTewl{bbfp=7A!!urQQOie5?k`}>z|0V$WO0z`p%5$35*ez%~K8 zm4{f1HY;0Y59>BIU;GR}J*g`A3@}mq6gJTRaHx$lb3==!oM3s5zH1Y~T7T$wZG*EU z=x-vp(&R7lP}>cm*v&{|zwAT02nW{SWAF^eEsKz11*U~r7W02e8O%~#Te04|@i)}Q z=4#F~5v(%=8h}lk4iWjZf6=W?UwlfN4t|c3^Bbu}~lhH_X z9)pMZiM8m^k%eE+)?=^kb2(qMl_FSV=O4hQW7KV5rwxbE=u&3d4uyX zEZ9;@m`B@1yu##rg%99oqM;y?ui~%v%b06RWGG=Avb~XdK_B)qUE@UaIMYOnDRSaZ zhp+HAzoP~^t7C7*sm-c~0;o29F5VZ{l$NngS6>z!tudV82YEuASHjj>`f}I;vZ1>8 z<7j{P z8+P#<$V{)ORnpE&5~o`uQybMNniC@^R1*KYcCx5UTFZkzUVwN_Xh3@F)kIleOTmaa_gI2+W)DcuV(q`xG%ADiZ zR6!|TXll525ZZDZ{^}+g-tQI6c?H@!%XMAI_NSGFkOvtVGY}I=+4on!WWd3z@Y0(KO1i@HRcf!^G1)0U55?*C~ zih)j1(>1U^p6<%^Rk;{#>|EmXu+geqAG$UA?Tu8vm#cgaD!0M=1k4vZS%Xo7n*khc zcz?wb@L9Tq9aV<*ZrXJ%dw?5{J_4)_DGkW)4sGWZ4U;hjL$VM!enM({Y~n<1C~Ig+ z3qH>O>08 z0@9JnYRZ??_JlD3BrjO8DEfw+bN(UlBN-I;=|Ngl(;s<~91PNR0B(cg+_AJWM^QXaFQT`|nO{`_L%1I||%PsfGhm<>ja;mS}Qr6A$$UE@;FJ%Lr zNQR$25}au}!+A(>*1lx*ziv$H#+P|TxU;q;7v!-vj}zs+G(OS4$t}(iZZmeJ?&8e3 zRun!L^5m_7CKp8sr8<0IxG&s*hYg0oomzAiqNo*_ZNjwWI5)FMMvzi85n+m{s~+4> z8@@u{3PFdd<}LJ20Min>b?1&IxKI`Iq7azIa!E2Jz zT~oKXCcn2pPT-A3Peon z_o2nip;1o!x|D3n+^ClKc^lo!YkEp`j4iN6{2shOzB*kLv*7k-5Tm6yfU5Fzb(ztz zLN9CrBwAFHRTq0okAV(Ggz~~Z)2XUi*P2E2sY#C{H13u>bh@{gFu+IeSM16AOYXg> zDt!*2*sdzh0KDoPc+K%mHR+<{_6%<=*yUNyz?9)-mWTa_ zoK@-l1KEw;_>!F`J+(Mp3G;68Ze9TI0RJVg={2(0WUyQhb<4wc7*F{}m3#sm7%6zf z(5R$SQ8>x(c#hld;Jcdik^W#>=5o$aoy1f4=6sENMETBEzKlM`wL&&A94#!8*AfT9sPGcBe&v+v*xV;mHWiYbiiJj(50}l~08!+T!>(iB+lh*h;KQ zt@d9fiE$tNiLdD%war)A7zsvz+FT9R8x@8#%RCzTj(=p~4(aardc4Mh&>lrfJatuJ z2fPQP9mK2aPmQ18`D{56s7YS7K_MT9uL-{3PmVuX_xoK>#Qj(j7x^|4ALH8ePfN7V z!@xYCCVeuezJ0gj#jxBJ>e~u;t$%9)B8tP;Cqa*R^2j{J;a`zBqb7YcrWKvCWy|Wg z(Y>ePA3pGep!;~WiG8hqAB$v6m%GPrtr<1G_?oFS#?2=X1F3}Jpt}P}9^l>q+}X6y1z7jF(}Q6$T0q9v?njMd}Kd0M<F5{0$~zc4nb%*pY2NR4M$j4DSpIoJ<&Bm*gz9P9ci?pd6449jap zAX_5y_|~Uwklxaci3Is$@x>3)`A@~J-{SAFpRFS2NK$D;;Xk&XM~p*-TJ0SqAocxt zDiplRhIfyY^@7NLgTI+3UZcXy5Pj6nwS%PC6Xc~zp`gY=)vEkeEZ@<+p3X-LJ7_}1CB-u? z4lN+q3fKBClxPUI*Z(FM00OaI{Ru6fj6#Uu0NVD|j;2wz|O2uVJA+z3QD642U8fbWW_%Rtp4a4XkB@$yN zD_?E(o^ud{AuyV=FoZ#jCy&TW5KL@CtVN8;p$x{A^}oLarJJK6$;Cz4O9`C+X$?04 zS$4~)dvG`Uw_0vgu@~apbWy2}B4EtBD3C|2>=RnR65p5LF0@j1{9~g7qXl@Oe-aRC zQ$Ol#Mjwq)zEwYMSMU?*(uV==KO&WXbO$zypY!C_QFcGxD%;}13?a?!yxQ~+;jU(fIm#KpS@DlwLr>!`~k&(yDe}p_-n|aqfS!9y}d)%^ORPVCQzu$m$ z&SQK!x->opP-~XRa~SI{-c?eKKIC>lBXrKcY@2j6hI>W@h=qiub)=YZa6KH0LB$emBZjEV||q#`-YU&V%t| zKs1c>e@y(`6uLOH+?V_rOh`V{x(7$O98JR>dZgoy=wyp>pGtr;2P5e%K z$yD+5HO~aI>1(3{C9Lm(OKfcLy^aU)ZI#J{zW1t_aJ{Nk;ugAoSn!aOlO_Ubc42CX zq+s=^ib}u305Pf_*@nxo6$xG zF)}=%eU%ObDjV$no{u0$={jUc)OTj-f7_pqfs+*u(bbxO=m^>bL4zxJ6%|g|UB}K? zzCQwReHhP&)&@v`92xZ%3dODQ=Fye$1si($AH1OBfN+*c$cf5R_f>1s<@LzxKNIG_ zT!#!bZYMuZeENYK*c`LXO{|Uh^5I*>%5hO=ZASmqp)B*QNNKh)Hn$Oe49?j2Bu*DpDl%^UyA4O+u`b&aCAsnoZqdF#JUxmo(pPa$+y#ANE-Sbnc{QZz9x}_|Hb5vQX=jn@ZiKF_iEPSn&w0#$CRP1!qulIOw zRyP%KNhVnvo`Yv<(-#ygo=)TMDL1;eH#-ob&HeLe3ATn=<{BE+%X-Iaw5B=`^$SL0 z$i7eV`i28k9txfeP~bG(EjZlSA`C^T7xyrgzR4&oF}W7m;|F_+EY*x=}Av#u+%S&aFv)R3=Y@wOSI~h{cQ)w?EQN6Ya?N&rza=Au>1)xqb^WwH4PE&wNTJ zNQz`r=M?mt^O@iBVqLGuve39hBPJ>HTjl^~*v?FLpeVaee!gO-G1vM&lAp!fVTj>T z)y3Byq{S2saEqzKSWIp4Ul|at7CZdz`y&~+IcPLZ7k%KMV~p-2E?ENyy}cBHOz za=NY9+KZ-yoXg;!r3;og5<=Pxri;I!Grb!RB~Omu>uAQ73_v?kpZ@M(L;l)g@5UY~ z5aY-25nKLL)in2SdOe3Nv*T)1>*bDo!$|k<#jP|V-#!M!$*T~}q0H?t(wu7r(z?-W zzSO{Hx-#B;&~kG7eZ`())(-zjDhQ4yTUMT;Ul)r%wMVCoI{#{9xf&JPbLFzmmyG@x z+E=BYyNe_#&zVBzix`KfrJ3W0q{BBG9_XDorzU;q@HO&+FYGLH^1yC+Lc8 zeF~!s3mzvucW9Dg_8deadLMXg^xrQaqjR#|iP++oEQl^&`=~o*nQNv``HhEWk|N1e z3C$lPSoaTQs@M1ml<8Vd;Ucr^NF0Uq4i8Hnr!>T_N!YdOC@n8KOvXyH@orGm8imSh zJk=f$A2KH63Hab&6n?a)0X8TA&oelekTVC)$nJ164ziBEFxxL@`Xx{pB8mqI93oJM36l)Ii?Ul?4WM0nhOyrw?ygsAduI7<+xRpP?D1y;XbrOez0d zy-(hJX`}vEi(zX?z*|(fqmoq?t3z_-bzpc@=lAS=4hoaoy2V zxs8~?KlmKUm9*v)_xbns+4bLiK@AS)C#PLjFoZ_~+S-9gD}qH7jJ0Ubxi!Y8HtnKB z3)aq6jLJK>l7tPM96vQ|S^+5yM_?{vZptxjNBnb?8sl#3}x+z0jD|W1B%&8>RHMyD~2;b93t7 zy2M&}O60d}J)$Bxx!t%u0k;C;BVfB&k*KLnU&a)U+Vg8o!M&$lik$rWD>-s98jt3* zw$X2*r@jf1xs)A2pESF&k?*SHM6|{b-^bGvOX6u33LE`3K%#%n`X*?M(^$&}@;i2r z>s7=KZ@dgU-1xY$!*`6_QGbus;7t6>Au3~L{k;a~)(jl^3Po^k7M$@8&MTl|(hytQ zMt>~Q47xYf0ll+5YCjRh&@a(zKZ|W!MchTokeX7SquoGgBS=) zK`)Sv=)ru;hBL9+D}ILi+70gm+U-62d*G~#5xhkEU(9`UZC z-yL?kjqKDcdzii>F^GM1`rlL zw=kX$cKBq+b6jzPpj4xVM>w3dtn3$#nlt#^c_a57nh!b#`S-eB(J(i5th6#$mqnfD zss7(WT{#gLRIxzhaV@Y<;pYzjiS0IaR%V)d(q;f0 z0s!gbl6N?c!hx=GbA4}mgZE%p)#2uCH76V^cfCk+zL(pax2>>qa2En6^+Hko10UxS zE?x2{!(Y-@wMC90%X9~)wDu!=my? zH{zdX%U}4l^4tGI{(H0K1HFIxQHa0RVZlk+@&|sc{B-4?oGpL8-XD$1BPH{KLD}-1 zJnq!~r^sKLEg$GT5tV0kLHqB{w*PD8rz`(E|IM~v?}tU@S!mM!Z21enR(|`F4|7Xj0^0-s`TgYFUEg$GT5tYYrnEt;r+y1YWpRWAxtjV@t?}vru zaV|O4;C~sVkEqf6WK5}Uy!M~>1n>7|%Ri|1PdlUZF}Lac9pt{tKO&{~(ro$dkMlk` zTRzbHquKJW>HXep`DJ>4XHx{P|8%{VX3L+i_e8e*sd}HBEnlPed$Z-YKgRnzuSf6( z26{g%TmCh@muAZ^)BEIX`RR}Hes8w?`Fj8K{Rm$Fz4hLhP2WZDFGuNk<*-ss7xX|H zGT)dNRL{NAJyJj9LuGisfg+T0#(4Oe(Y~F9TrR z#D4L*^NKh~9M69qW6fze>m|lK$*j`F9!GuKCU3z$gnp`jOezfVmsmlBYD?!mk$q}S zPBq|V{x()_QGRe0fWmwoJ@R2N?;o4|vH5_Bl&e$75oeyo)rJtwf<|a|i9~Tj`W1ImcV3YL= zz#Eio8=ubSO_tDRm9W~pM$@X&HFU?a#FblOV0>A;?$nale}tT>Jx<2fy7#fmwEk9~ znnxU>%1@>8)|=di@9;s3i+UkM+;pf=jj7Bu;tqevmz$ZxFDwK%vTLQM-BY)63-Q!9 zSL5j3qqx$lc>c=7sPv?wrWN&v5yO&reX(Sk$H@uslxW>Q#RxCQVn#s!SrciO9DI)j_wyY1;H4N2WMld^TKdd{+;nbp67nHT7I%AHs;Wd;vDC_wv(rF+b7jbGN1N$Flpifa`qO z$%p3tCjSmw70H)@^CZt2iG}6l>zD^k{;@0!)_5XC|P!`5Ts zJYW{O=g!R9NIS7OtwDFS6X_78MVa8sEbF4b9_cUj46@)k=>Fp>6b@9_T*bmspiK`V zsBt#j?w;fV`IxQu_evM0b`w+g!C-?4zehM;I(j33xL`V3AK{Mb?oXFjE4-LoSBSG@ z{@!c+v2XOw!{mZZu`}PV|1BIwt=f^@c)C^|OU|&Eb1IK1^Anhq@^Xju_r6CF1nV(o zUdyM;L8psoX@+v}RfD=ge9^R}zSDiovDPpi5iU;JxpBgK_!{Z$eQHvhFqNcZWq>Fk zfW*GTS3E#axuz}C`)qyFY1R(aW403al?5c>1VPErU%5Dv{i z$k5Bow&^2VXVaGmw1%f)*g5~oNYn7vp{)HY%3tR4PgMR>{zran*IUMx^+K!T!hEe-{O><3@w*TS?CfLkO>Z@&5_?k#8JxXI!ao|RvnlHjxmP0=JInyba})L%s_ zF+WY@&c50@E@rBBjY~#BWN9GQhG*s8jL9*9lQlaI#s2iKcF3Zzn!T?9u`ShQJv4s; zKt_wl0Nu*}22MzOvp1@ut*>_8n{B_GHXhJtm1q_Bk@JdVtmS2ul%c-ue14*4RxYBM zuij%8t2#2zWnytX)I6e;G}k?|IY3P)-DtJlqzg;Ftz$k~2*m3h#NEjkt+U7QJkz^= z%MO;o7iYi6T9yhiO%mM@yI)|AbYPyLOe8O2Eeh$>x^CzE)0E$H`Tvlc-yQ$>f9tRL zKz044Q=_R9zt&;!``7zx*%#JduR`&#zs726E0#gzX&@p6r#}*FnWD$${x2**AFzIy z$_MKQX0HN&(%p8BqCh+4$S2L1^+x8Olg-g5Qvfit0pky$3`6a7Bd3$^IsG@8EUy1L z{@%U+iVbjy0LS=g%N{Z(sw*C0vMPNsGoO{~J+U@=AG5dK zCx`2KhWRdfzn9Z&Zhq`P?_u8Gc_Dfq_@Leo%a*@Q@1@!DDZNjQ%1arU)$stjW5;Z< zjwyS#88qvo&9Z2sq*O7UQXT1rsSJL;c>a4NMT4)HJL{}`n~M6QHg4{|z8f>9l*_&g zw)R7OA%9M&Z5}$SeIGO-e;wpt7&tkY{?nB}kEfq(;7`|0_F`M$9m!wwMY?S&Ifo}- z*V}=`^RbqD_()LcRFJO zq|Tv4_sqFk9WmDWtLQ0;BR8I$D-{0HA5_U~KqOeZzg3}Ux9mw_diR$3@TVd83vin+ z1mVwq{=e_Yob#d1?0lqiQe*mlk1MJl{;VJ2i)rbutd^*wfueSdYRrcHN&an^oakq3 z8<&R~$2_mp#iVw2FupX8H;a+Rc1B`rs zzt$qP?>>A@*8R`s5i?TyM_i}m#9OTjQvho|(8dsv-1hJNtE`DG61uLTO?|{p<)QEQ zcR^j|&U0D;iHA$qiNYjCBfK_5Obts{8(l zW4)>?C*JVnKalH16LMt8D5>s=_+*L1$BZY5^ zNNf1Ait{f5A1&|-z?Hv-uD+kZcY*Rp0mT)sUt}MC#fR2J>yGDWoRTcxd)*V_f9)|zR z>=d%U{wibTK`6Uu45_8vHVpIpNf=0oe}I(m8g*2zHr!(Lb|ssSJln^A8U=|o9RI&fLGrpzWS%ZYaUbaU7A`zQ!Ty@QsO#_#MA#V z^a$d=w@_xZbu>kTSerclIqM-#hY^jMBJ)Nt#+Vz~ggiNtJ`;T<4xs7s?@-YnHyKTX zf4O||4kLpg1bfp8C%3LQvBr&#@KI}-l^*fIJO-^zFfI2=b~#pf8$!oB8q^g1lT%gm zmqani9A4!#<(X>p^eym*0Bklkig!D%PYxuGtMUu@&1cg?oCWh3Esw|wgcTNN6 zQBz)^(@vTvO?sK=3M252s0E@w0a`_j;We(ONH+ngyeL{Qj=%CR3{WwGvZFgC`qm^X z3-g1=sUV)7C*++Ff_s=DMts-;_#6K0xQFTfMSs8h9fZP2COtzIC7egDV64d`szBL} zr5i*zC^KR3(RpG=AySy?QPa^NKGHwG$41A~g%KNEZQ!1+aT3Pg1E|84HRiQ+e1^QW zT%2*zx_)_TOAfgr=cPlIeR z6#j@uzw{na+Geoa+3S~UyD@!m931{_)72=|dJ(l6=j66_UrI&u#R>Gv6Z;%3eXHR^ zM6-a7Gif7V`HsFbe2a;Ge^bIFz77x}S9SS5gC%^hmu}LS2 zUA>M4p-pXQEhkMkCf^D~GwcRK$QANw)IWB#noO6I36!`&`iDXeXTax9jOO)WeDTN8 z>B0mP)tz4MAYDoZ3wpE*7>6JdS{CNNz}jTD@&WY>bc``Sb_jd77w?+GsohUo{IdcEK2lPBp6mhUOEK-%zwRK}dQW#d zrFw7;Kv7MKCT@!FvXp=uhGqSMoyTL(9xMa?Ug?PdT2PQW{>${0C4fIF96t`{L|Ik3 zvJ@|+YI^lqSZ9N3U#~*SAPi2zBHmvAs;fG~@9Bx9Jrxqlqm*(p>(BT?K80T;v1mJs6zly^?u@X6U7k9)6Hyirf#gpTU@-?(bw{=@Q zeJO#*mL`VBQ=VqY>Fo~bxDx_p_XK&34)rMCImFe6BMsOhS(hgE4`AADf$OGuD^l=W*vcyfDuVv`TXe%}iWWKBs zH0tJuY1EWIIp*Gd_=+hOF;`);yw_2Yxo?1PBF!&@o8is6r`TkcGqsY+syf8)vb%##NJ3jZR(fMA+u|d<)^3? z&!F~AfStA9dt$tHh^g|({6t^tj0P|ONJo!WiECK@wtv8*e>|r!FQ+~66wyil$2;{| zydY~@af`eStX2J8tGEuOxhn7C?0g+NnFNcN&#H0W46=texVVjvSs%oq9!wFq1g0s<^BVufqt0R+(;6sa^N2ZrcZ-PGKQA=9iTUHn54^?& zdDJ-)Ge>YgweZeb8r%`hD)YolywTd};EgnR8~no!9&UT>_)za~X@f}DYX^d>M=c@6As8jeo6<#+uudRf9O!iY2EQR5ga_8fL zhg+k(CY^8(erc-)@Jep`%xjc=*eT=|g`-;~zg8tTP>EfPIO46%Zt2DX44{Lw_1*_q zbEBr6L3Zl(e|EM=)jK4R>@_tUTjqu>aFjWs^>aQ!+JgoD&flr6)qK%Hxp$yzs6sg# zmt2#%2J5l#9T7ZV)jL({XKZ{Ui*ZTdjb!aoh z?5KV|>l_rO{?4A8w9Q}agNut5_9v2u-w5yI47?Qz=oG?xm^Ib^2@gTaE&zQD;vm(F`A&)oYV>GAzw&I6J&3-S~DrB5!@Br^c%W$LU~wUEM&{w?Cv9Q`W; zuP7J3>emz+)t`MAc6Bingyw_y`RhJ;lT;)0tUog317>%kE7p~@KFUzQO5tC4vqt>d zR-Ith`{}&b67!bWaVvAyDYh^f^4jKzpQyY6Ov7VmnLDGxzAJ1v@^p7GGA$SyS8LoqK9MyJuGFa|Ak3{0O;3;q!s*T`MM;r9qpN5?Yy|D3rQxyvJ`al4RliHa zs2{ldY3A()PDq^dKmrS|CauI78uy`h?FNcKro>oD(=irG|51a|m9JZT@&I!$@AHZs znEedQ4vDgZ4NPdEzDrO3);x8MzG6$nYu^}1p6kP7!iLe~( zXOB_;d|&+&1J!OlJK=u%=eX-_+i5>TDa@aZ&RCh;-gla3jf<~b_h6p_&Si{@wcKPx z>E90k=3|6?`9`1{%lKb4S&vs{XPR(+$8DgRs~lwzeU03@aH}7VLNYFK?7YAqz%mX~ zQ2|yQ9UM(9($!G?62y{ST)ETcLIdSZZ#UFz(zV%EKf?exKq03&Fly%C!NG7nU(Irj9D_yynr~q)4;!$dJ911OME~?`L2o`NwSmHHy z3Do+vvDA{}GX>yZlv(fi7rwH&t92wanm>$8%p`B$w-21R*ni|VS_>pfr^Zv7S-r+f zf!I-5z%S%Dudt)ils><&7VwHvtNohE>C~M>CGQS^(;aO9# z@aCJF>pAe6xIzCZ%4qxLs^q@v& zpC1^5G$=b7Oi?hO_gKp+SFWeZ@tBuo12Pr(o0D#X6*eXo*{0!Zs<_#@8L4Heu$!kZ zW&=5Rj(I1u-toU!rTKCJ0NX^5aK60b-e|u3BVc1K3rUaW%j-zX*6m+KhTuwI+I&gm zcCrS8ZAet9xfLoJ6TUa|6G^%;0P&Ah(M}qd)mKr}iekqTEzV!hbOtwaFfnu3N$Y=E zLsBo98;XAkGFAd1Cky&%JhfW)F)Ru0nne9!{8M*=eAWk7()~L9SfU6cWf~4uP;Vs5 zZf{NrhWIK1fhV_BdN*oYho{~)p~bvo+shZEmR2<%-#gjfv&ySk9$WBvkJ#4NtDCPX z(&Fy6*w!wt8uR|SdK449cl$!`@fG>Y0bOic<=kyH1b{VliaTO_7e+A{row!aqMXMy zO6qR~HmHoJh=kcZzKai|3Clczpa!YMQ|2;!M&hAXTAd2o6kw~ixmS;ogC%^s?vWdc zf6T!!jm05rRP-=YBRjc<`>Q@J6rrO^^y@v|?@-vM9f0!y z*oF`i)XxqQH5T`*O>L^F`%(`1<=ePgjAJ+-CN3i49^b={$!$HacsJg2bZK+Jfum^K zHGk^pQ&Lir*V(R?#*7(h@5o93=aA>dw_t;a4&)q+3a!5CCg#OY7SUc&gNV7tQK;EE z9$3ZgtcBN3v4{o68S_M%8byuVGtwK93qf{yA{MX1l&~~|Z2lFxiM494uI8!hDjRm3 z)piJYdE=HaFUIRWnNvmBiqz62Rfkowy4)12czNdIa^JdQV)Nys6KIy`E$WVV-IgU) zgDd-Lq?c6ZziTDBmM7`#{Mw$ZPl)s|n6!RX<&#T`pi8mWG@KTP;mm*@L87n$`PRZ* zO-SKS8F0bNK#1B0#akeA9@ojTGHnq7mS9S-=Bl@X)f#7WTa`e}3cI&%lacWHA23+s zJr66TD4(Zv^e!n`a+HdGLYsqrq-KX;%+7VH1ECW>eKziM^k2khFo%&F>4Um%h`}f) zz!;x{Hv}zb{TNFv&B^jzWvSsOBcE~-_fz8S|FgW#6WiWGro0CB4O>AqD+sgMxyuo$gv9@BOwLuyS;{_~x?N9~zV@mXS;4$#0ggE)D{ z8i(Pr3i01OF8{WzU!_)J@p~Qh4cD^62HO&79*HVeN*A-U)BmULyXEb4X5}Wy+HvPk7;QK`E62|A}+In>UuLgNAj1!3m^GTDH)=xr4^ubL69K%sTU} z^DJD6L}fPfFj9JrGboI+ZcQ4+tzzM{b1*_W{eic{Rs38|)(Plxalx#2co?CEDFvNj z=?hFtVYQJXd`-oGQtx^jgVydEg{W>m8tUx|^_=5M@Ue|&sFE|@PHusCC^Va+lYY8W zS1zIIxKpaqPg%_N^rNMBk*&I^E9TX7qzXzo-COB3-9ck82VYsiD?8#W5Asr*7`%mo znOs-E05~Xds6L2o_=aEtv^bu+4`!IHB;0!f9J;GgYy7cnD`zq3#RPL+_1ec zF^FF--uq7PBQzoPx`0fzUiGVFEMeo~gWsW-)omx?y4&}0dt|y6=FnOKr)KM`O|=tV zG4*16>(-izZ87hrCCTl3GuBQR2o2g}a|Z0<-NEtm1^KbYRrQ2m?b@ehZ{d_$Ta`Yj zl$nd*J)AU7IeJW}<1V(^(&Fm!uXGne5%*RfHZ0FS{MpT2>BG2nk5B2F?IIoB2VaLV+F)S^RRwXPtpcK;w zY&q=&t(JZv25lS!F!?za*Q9r`!8eAfU4u{jUpeO>M&F`*@9_gG8$V1;aCzzLaYAvxpg(Mb;|G3H_2zJ();xl%>2t+^<6nD&Ji)}R z%zz7T)nbZEgcgZ!i{M+kOvswZfa$E}*eI~Xuiost0AcIwJE@H?iDUV>9GCfU#@M9K z#l(_zT>kF#*HX7bzB9BVVO- zcjPBZoO0f6B>ZTbMpgaV;0K^!vwW~WPv17}Zb$n1FV?f(`kWzTmveAM2g8}J)X>(D z#`VvxOe_u#ClAaX9Lisf$}D|iC)Y^NEySKE?bw~bJhnBfOU1#vMMjWbc%QA zt5wV~CEn};X6!AErRzu}e!)@9OSHULe92#~CuTZ&s?>L>=a5>3T-K{aa2~=CA)Bq6 zWK}I90sZ07SFb3X;+@><0Zb#j^_s(9Z}tkfce7X2|2p?|ftP$0c$?$iL7Q53p&XOc zE{tRE*zKunB*jo=w)SCO+{WsQW6e~R>;lD2_JCvAt`tgk6?l!u*#iMzCfNf4R4&!S z#y)s5^PoB(|I0q)1OYJv}9K3lKS5zDCP2QO^)e#Vu!ym+TBRL$G;^+osf&|cS4IG$X~ zI9h#KAGVY8*PQ|FZqfjy6}y#kjM6>)Y`K?{iOF!EfXF z?KR~c@#KzO*o7NMOplQ<@AnFJ zQdLkX1|bL+>PXbmx{q1>XGlQ{H|b!@GF9HuG8_!{yl&ho6q50ImK zsO1nF8dywPsMD3=8H+54Xsbjju#r~6U-Uv!r+9}f@_scLbct8bFS%@hP4UW>W(Jw5 zzI2ue7BPSFqk1r(bna$`~_a>GN6S{`Z6FC6je3X%-)MSpKuP*Sh1# zV30K~^8b-x;$sbr_)C8Bt$f@wG%%KK_D)$AEF~viF}108O%x_di|49pYE<)ZupvS{ zSnA@EGKI{qq9u`jvMczSe$uVS{zRYzdhE5JmWf!BQ)~GmvnFbra_0PBOqntzwP5RO znwx5tcJ@fUlv*0o#XBEw-I!XsVA~MPO63a~Wcl#kB1Bb9-J+Ox=c43}Jw@6)hS=dY z#8`ngE~;;r*>yD8yc=IcmYlo2a|inJl4D z(G~lIe4+k~)1jokH4VcMX*@o2#XdGrrp(>!ok@DT(w_;_vm)bSnqt!1YubSw9_R~# z&v-C7AZca?ubM=z2(PT@cupmVuN(lIa{qDV%v>m>Kf!Pi+=o)-_%7mKG3To!Mevlh zi1zVbD$x||X@rs_TgNNMJ9mXf^<%3L^dqYdv~|*!nR^Cu_!pgH$&Z-A&*JSHBmA3z3i$NjM;h_xC1LlFqaq21Es-P6jGjz`uv?R&w9OF#EW%#uTOX- z&(J@+zXRXqZ!~H*Fp>oJ2^Fbu<@^6tFUvVzEXeoiWs!Rsc&lFa2&=hCFTKJt*X!l> zuuP3!ZVbze*2|l`I6kpc*(~Xa>5h!RG}pf~;nu0>K#B96UfqqxYY0>Uh1LeYf)|9+ zW~>##un_#adYQ?K)3dSW-Ib2EaWYmetpNSH3wj}Mu^R+c0E!u(1rL9%i*jdux8VSI5jFuK`iPoB_xDyx^zV<&MK=%Zhm7w8F`5yA@f z%J3EF{GVWlI#2%P73jEF}Z`u_1o`PW3e~gV`r7>V<7D`Ogcsp`A2ld~A z!M;XWsw(0}pz74S<(tSpdB)N%map%5sS#xv1z5G?}?>7Np z)Xz#Qy~YV>ergWha&OrJ`Xe_o{O1GXi)9&kZ}!^ra_Ak|k7Q4Pbf@6r0#YT`L!9CL z?Sj;9Uh?}eooISWFqkKs*Q_rqFsRO+#HUtPV0pp2$cN_GqoWV;X1`CzVTQeJ4$|ZC zc4C%YA6EyqvSi>^qeHx=dE|wgc5Rh{Q-k>{xSuaoURz*$R%&u3k<>*@T15cwIWFQl z=DYW}SL|`#)JMab+SN-V)k_fKCoqm^+5%ANvb*wGYpt3ks-n4|A=X?~t!=%cV5A|t zZgi11+hWjj+HNOg|6h=~{oQXz=2LJ`uL}=VFI;j^C=MP&X=skE89iy*C^+<&nd)c9 z^S6oFZMZl~XnMEgcGx{nE8S<33t;z?iU?qk-XqmR;2T+vT`3iWYHS2`!e!A2X23Gw zc{9z}Bw54upJT%R7 zxlMaf>Zk&-G81(Vjq!&+heE8&L!U4MRXHGJi|nU_2z8bDhFk} z@QecTkcb_RFfZXY*OL)u!%l(#Ig_exWxVfQdNsMYBufS@;x|kSHxq)er4b=; zlKejikr!NM44$2F-RQlOR)<1Bqt|d2!-RMX;Hczyh2%8L>X#44|>FT-Q6S4l+ zq|XaruoM1hm%!~#<0Ahz>t+8B+03Ty-$L4;6_pMyw;Fb*1{)Vwk|NBCV=Y6$r}JUv zjs>|Ov-6l{wle>)5O}vq%xgRY;Dqp=V#Dl9Okj2NlkwAnT#6V!_13_t@}B5nCx0!B zO*7|BQYRM%4^lq+;iSUg_zb|!(k?PYF=F3ugEC}QiTBiA@t)(0YQ6b+K{Gsnj5sD= zGIS7%GtDKu657Xqz$}z8S26IBF~8nPhKfX)swxY@A-GzaLC(M+ywk}=IP3@8;NCFL z)rMqt@MQ9wVDr*RY{MT-OOGuKK8Il0meTZtjA=Rb6Vc*y`bcV7b?Q0X)M#orEzV?4 zjBR~GzBSy;{*JWtVHgwT%mp_Ur8*XD91=@?6{}c$`3&v-;3oo;sgp-m&EXm&wpEU9 zt}3M4O^tlE#@&=dj#ub>ZpEaVb!D`ig*WB-*F|KE37#pR#LpoxazwL)v9hxh>BJE6xIXd)tbd>4PXYmmAN$^j3 z^Xbr*bswDj1N-2FP$apDA4>)TnWl~^3>Jv_LWcgv3?()gA~9whe@QNX<#2o*t5Ucy z3(m1%w!ZO&!Am*y!Qp48-S}J!-$d1$yf+Q4cd%n;+%> z=!Wm*kR?Jh+YIQow~f^Q0bw|VXc0?+eeh4PtVt0~3+wJz6EJHI>W08K^vgXt@WWYT z>(1RQv6k8^cq|9kOczcg3{p7Z&C+o?h%tCw79TGbBft*qP_t!bd8|vYq$m<@X1Yc!4;Mo_5Jm7x(#LWdqg)zCdZq) z>wQkK36AJq?i~mfmivb*clPz&%k6~KbBx*8Q&QQ3W|L^$Bz>@(zUivhykHsziSV&5 z`?U?4hF_02@`g>g;^+{K0~{LVv%eXQEQjS#@ff3v)jBp)m0Ot}L%5z0-*Hy8p}q>- zoCeRxx#GC6>c44#G!NXdQ`I5GefZElI>;Ym(+eU0+A1~33oVx(U9M-zl|w>=MzBg* z==0;dAu%;-zacSV*-nca6&Ol2j=iEW9Z65GX%Zv|I=11gDQwWSSAc@ToE*AOcL<^89%DZ7Gwus;*S-f7&C zoj6T46%+`RNvsjvF^NX7@cWuDphD{v@Cm360#y#_pZ0UM6lN_}?K%~ZIS=rr3N@=x zn7GK29f(T-@uX-8oENUZRbT*6I$MZ0GwXv_g&ZUvCJP?I95a(<`*>q};&7b-nCO+) zmY(gEpHMp0E5E(8f$U!Sz2;TrmH*8aFkbnirT?<;PnEXwH{R^b<#rkh0@#(Pn%~X$ zxr8tM+-4|~j{hLC0-S}$BE?TCtC3TvtbnQYA{u`W!!Ux;P1HM{?LM6~s46Y>kHmOr z^eaaN8i0LsKaJKfY}^=HJJTDlyG+Wm=Mh^(gwD>)dO6en|NongIaE#8tom(D-%ULd zHr?4JXkxLMyxa)|o&Hi=?Os^`NjdGOapkYPPtn4z^k^_ktIYjA{;v1q`^FHnaOstK z!LIjoiw|bz)Leg2yY@#MJ)8)>AHc>1rK-nY32GRv3Co$}mQfhZ#b2#Sy%jSUcEHwM zIYxY;$p`(zZ z>wo0P)a4hv7*gn14ah=&@=_y_yZ$fMalNlT@@Fqic5E{;uckr)0~XFvwH0uj6YnJv(cDZgh1rHDW|W) zjm#W>Z+v{Ka{XH;;k#UT=VrUx^vb^QQ7Etcx_fmlWf6$9u~1awUrO$S;ohC%>;*o` zJU4cNxv|(W$>awm5-7+Jw%sIGT?g?XdxCipmcht5}bt61f|T{Ij1|u|%yClypM2EG$tJ2LQ4gyJk_34OUz81B<=e`co z*9H2D%_STx;dnMMzhfR#fnqd2e|q$SFh7Im)SJVXafKR`JrXG$UV|!jv=V+RS-1<~ z!_-<`%!KRnb{1T;uIV(gaJucU7&w9&<6bClxCiyTy82@$;cm<2UTo)Za5eeC)SA>g zilp!;7QnEoU7&y+aum66JvYhY@AY%$2`v=__0`XeG&xLAvhT(!n1 z+;%QMkt2AI>!8V)$4gT(YqraxQ{<2F-rp%=mwoep&i2zO7lZ^GQoD6gQhwc{NZlTgPu^)W9 zH}E39op5X~R?zY@u-kP={h|SBm!XS)5E(jCS$#tC9tx@e*yW*#5NU&xdTn%ap8pU0 zP3Y>I+rgz6d#}xp#V*qcWZLfpGTnyFqg$rj{XO-05j%xP;=7mriDr+f0z9-G_F^pc z(_z;o{^Jmm+jkSXm#5!U8xr2^S!ASMi_l1;E(E{UU-Qj{+bmIPbN|6K&p&xWc%s$v zHjt9%C+US)%h?oa)957Y$1}5Z8cK;+%g+U}(WR~=H4E78h)08?iExNYf)sJ)+=1<5kgnga3cCdGITzaGk=KEAda^n(}x&ahcj2DzDT{Y z;G>?&_wxN8!C8_~I;mc{<>`X@bGaEhfu2L>=Q6}v#|iiT(Kw;07NCq7Khb8xlYx0O zPpP%3_uXMd$p@Imu2OCXv^p?st4Zcu_=o@oryK574u0b__}%ZgL&Q+o(T&MQr)eLhKR}EIK5qx00Gu%Rk9rQDC$1{WVYv zCKE`tH9Q}A76si*bhQDUBA`MSpyRp&JxxGwp*M}bk^a!F|2;Y_xjtV(Za%9YBR&1G zrx<^!jhYUA#iQ8M2I4Oz(Zn|r@C~X@{kJ^SzL4*^{U;K*-n;%baYy1lzrVFcr<|gm zyXBfJf&N)Te8)72v6epwc60w}q_*9}v+KDV$UsP;U**u}$=gMry9H4qN$t;pc!nU> z^W6o9C3R?bh@;71ys+Z*)N-doHjv%1K&(Z&PPTrEzjrm`y3fvqviR6sCZSdgg*EYH zG-4ZRz4$`7d1QbHRcJenrav2TwKk^v;^tmc<2L)8`cA zDIDtsxnq5!8|y8#5$OT3 zmRB6Iw_KGSZ&{r08~-(&C5NFw13y5oy48e8{R4h06pOVe3JNzox%LAx5(Ym5P^@KF zQd_6F)KXG&s56QT!G9SZp*}>nL~Sq*D|n@8M5 z0l$`g*YNs?#4#P?3M}JjVQm?kM_i>`-*>qz^j>vGbqUSPb4I;*>Wq;c)v8adl_Qr4 zQ8JQ`)H6~L9zBk8g_#VMwCn1^)+1boy_Df5GPEA)KJ?~;0#(f9Tjv8%AxGX3ZFh?a zCLPB3is_~Kg066_UYq{KNdHNMRtzHmZkFc1%mSy7i_>P-)DgKMo_eO~!x=w|=f6<0Yjoelxdv5p)ba}7J9b;e>Y1;X zFOOlP8c>zLsH&WB`Y%-FFO12m6T^HofY^hxYEvI~j&c5`*H*^ToRWGL{J`fYE+3pa zfV%U76HHK5vcub+UyYHe2$ zhYxqk>y~q!e}@=Oo<+xkZBt*@Rr%)*s473VD0do^3UzCjUB0<)1O2{EQ;tC8jBGMq#Y{4NfDQkMNAjs*3g39L7nc zLVq@xNCTR2X-Bn@FI8P+;Z5*&&F^3bGBGlKYfXAarIml$O%eX_VX2v%Lfq>2+)r+0 zT{Cx6e3X-*zT=mw)E7bA`ohs`_?n=?CAxPNU0OmHu1UPCLk>6WOKNA^G}sb6e-#3@rtZw5nz}0n&`q@!Z`XLoy;0Ni z3T%(B`>#52MWEjdQ)c3Q5h#ay>J1(TaDM`EV(DXxIJk1dW&quF$R=|`1Y=9!bwC)oVlo`X(JW; z8AoFwPH-00Mt*w6%CilOeh%e9y`vH`%}M0_F7X_(e9J z$WwLt2zHZe(ihY4jj>r>5|G{vDC(SsJ;G}o%fp1acUoigB~owfWiB9C=g|_d3b*1l z&Lm50)>kSxqi=P^#b`f=@(E5Yj908pl(f3o>LYqn*1wK|HK{WTX)O7vBy|KCi{lj= zy~e936$K`L?b3Z*5H^3JmAJS#B2RVd;(|clhDgwwI__?MU$=}jR}@gV)M0r$g+<-! z94ucWT`094;PPBa9{vM)cQvdi_Pa+m0Jir}3i^emMiZ?}H&*_-rUC^NvaC2o};^Hl@X>T}tig)>I zg~Yrd^_k?lO;h6DjAuD<(ReU6ljeS~$g+mfUSDop_a0vs&wsW#o?r2j*X)s+|MAxo zdni#(RNs`?v*H==hF88Nu|SC}-;&r%iSlUtCa}GgIOAIq`zZ0}-;!9U#Hw#e+(n58 zd`n_qCHDQ6#9fv6AxoNX!nU6hmw!uQehm4Ws+eDedxb z%wH5V@HLvxkC}ApQ{K1KF@!R zQ;aIIH(%xoe&AW*1`-hrXBJkcrr^B7%*{FZk76B1*%a(-;{W;e=B{8JcBTkF)rYt> z^MpS$ggoCe7`*EA#Rb)=4Z(dOeg-C#k+h$Tsu8(bJqmHzxPxr1M>)B)?jk2)Q`M5N zcGXAI!=%?#oLQLItF^}EY9*I+$sdsmxfN^qy?yV058us5i{0fi8s@b0KUJ{2D9OQ} z2+*Yz7phqt2)tY#>43i9kT;PXK5XQco%slTD#NuL}Iq*A}-P z?=qE<$-mb=UOm#{>{D`2eY{a0JH| zpP`yYD&mr6KlD0$-vNWk&E~<>O8*u_WxBe6JCM^8N@J;x=Fxp)~rXY|K-9cLh)uE~G7d{N>sAXF^6rWJWyX*Wmv-(?Bg)IO72o42B( z7W#KE3!s{!fG7G8KY;_4z7#?{^1FG|(+=Gth(0yr#G1Mn<8@tCzqVn(0fr?I8(v_rZ*Rr~3Ph8~x<=2X;KW-{>cH&@M7UFtHFs$q@Y>RIk zPhK0(OPn3*gxGu>z1%*?MF6w`7Hc_`N6ZA1&xhX+{c$hVNIMM&|IT-MYpk|jV0lJV zl861p=`msMc3kH&B7|M$J=Rjo>rS-*zd-O`93jJproGJmU99CS@fxS=IeBGCp4WIWkH#>LTW}JFH7wI&9xi|x z-*<-n)LL~V$5PsHZ0}lr=2;Q*Os`6hE72kK#tBwMPaTbf0W~#ad{DPfWZ5@k7dg{# zm+YidYISWw`gC!pyNP3hypwMhPo896^Mr(4Hc@&dmCg2>GUQ3=TWdJ7q2{$gqADaVA-sI+$YrXladHgTM_W5xt2u#pRUm zY&N~Twr=SJE|+DGT6K>hVdk_S)T9=GAK*lv43;ZY_YITCBKMNQU;_k zveqao@VbI!krdDJch-Jyd~$|$Vjr=N`qb8gj#b8mtYVkPa)s=3k%SpTPBu}97$({b zfiS6;9Lb49XY@waFynEB1o+u`wqnlw1&QAEnktGQ%-~7>$m978VmW@6tSE zm4#&ye`T1fP@#7mZ=DWrO@g=9BqqRM^%LT=Sfqj1?64#Ew8QDvkKSw@@pgS_XEU>1 zxe~Ny9IR91ork)4U9xm=?1XP&&=q1(LQV?asDnx`JKw~NRE@Bu|9AhNqyA?#&b=EQ zuIJ&3Hooq}0A_l-f{ZX^zs}pgt>+sB?>K`O{K~q$5$cKlk{8-8m%OO0dq3JBv+iHU zcf^FQ2>vwUfeXYE$txA0UB{@qiHpaTUtJ>uro_eiHkRiaV3D{$_s$g;7iPqTM3y>J z;(}p>788k!qFixtc8<76oMWQmH`KuCShGh(q9W;PjYLI(jn-TN5$OZbI2YDUN7G+B z&Ck?Oe^2LAnf{_l8Tr97B5a+TJ%e(}hjQbaZ!?OoT!ND*=RFQmFRiVY+FDzC)mCj&6eQdNST%rL zlq%qjGmH>GAptb`erxSBlS#DS_x%4n51DiJ+1It#UTf{O*IHZYLv~hMvQEonJ;dyH zu6Lbgb?QNVjgpXwMo8Q2Z5oI+Xn4eQnH@9fLf5kpVDo;3xK@!-fgKH{7bKQ z50G8f`v=~7U*oO!W7MVV9nUgB5MA$r9jtdkKl!GD9G&a^Qd#eprq}zuo$I|S$I$J- z{UVBe?VRX(k4U^PUAReMAf4;}ydWSF?Wc!r^h2kUaq7DN)pA|w?2eTkfnt@2twAvsqyQlc*8Z!+Y@IC2}rI`qAv3b6=>i?w`o=?a4UI*3M3!V1ui(iHCJ*L+i8p? z>RX*mCe|bBx-pH<7UvmRghpUI>rRae(`Dj5a$53@g`MOJJtD||w71BSE zC`2gnSl3lDU2?WBd`WsOU6!7n5UG)?dx%Iy8>!zbACt~MnR;WfuGC>z?mFSCQ}cl8sivv7f0o@Dlg*dqX1HR~B|psrCyAj56u0g$8X z%?3H^KmcwgShn>U9FWjZ;6UeE9bqy(M`Kkk>4(}U>V>f?DSSykWKKNR z(XOwR)8p*}0`+1gq4VSNkUc+l2z2jIUxUnY`xl3w28!M!jWd%(d=W^nG41F+OH-vD z?r$Q4;o7E>`=njn7Se6CaHQWdPcLa!ohpI6kwJqE(sKDaovc*7mD!80U+Hpo^l9Jcy3a5?ojd~)L?7>C^{hPe^ zr(p6Rnp~s59f|aHBy(@v2Ftk^yx$l@0>6!i!`vQYPqLT-N(vgf4U`lGl<+Cy1$NO# zC@=6cchPE@H2VmJ`cMdMaHTt63OeIdd&W|mTFDiGmHG=*Xl1O$N!4;jVqcHqv`c$w2~r{?A4}ygrh00954^x0-(G1J-c|VDoa0P*>_cT(a(_oYyJw3 ze#|#-w+Bw<3~bG!w@5&HgBsw+lfh;3VrL|O4bZhd=xmF-8RW5?D?tZzC9(j*HjH$n zo7f|$V6GV#TOW=Q$N9z4A*r`ZfZu_Ec-+aYm0Y5MTy0ksIpa#~suE{hsa;j-j2miK z4RytTU8XFkO20(xMxzgX{@<#9JzK)W){8%ubU`#rq9pkrc?TyV#;QiyZe@-f=1#{A z2kSm5}-7|F=zYdytF$d&}fEInmM(PoH0+*c1A@;Z-o$HVL(r!%ter<1HQ_FY} zYIwhEUFO~BN9BH_>43Ttx+)kW@7L+OhQ`0#j4%28n^LZ8f86zN(sJUoer}jWGt%9D zC#vTr*{;BrPmBH5q^|Bv#e*UvU5Nh{pzN40`j+{O?R6_Kp&1uHzTpeu(D#k$bAU`0Vr%K(thEL*>hXi;V%mZ$Fc7<3Rr9(S9NO zjI@FsY*_MbDkAF|vZ9XPQ`U!GolTnd3R&qdd{`#i7VVsS1-(iaM<3l0J6t$*q-?UG*<+*$Nc&R1mZ+jo^xf00(x<$KcvJ)29{U-Z@bhjz(t-!;@! zlBSGpkkx9`)lzfWEAxXc2qEHQlhWNd(C zGvSVxxdT%Mf-|MF__$mfEPAY(d}T<;UM%c(oSOdoiyU! zcUI;^!^4C0d8adfsJnIxJG!L?e!*$+eSYZwf=?GyUMv99CUx=l?+5M|duqg6ko0xx zm0{H6{>}2O?bw;dFF7r}pDk99a85N7s`y5bU!76DYjoDuLAm+x= zez8(19_6!mn@TpVqBAdcedL=F-R6D9(9S#2^6G(cRGC7-z`(kaTB;BYI4Zr}uMFbF zefR+p^N$PEi%GLsX%&@kl#fH@<9&Q&Z&Np&Z)hZn`h`kLjCyT>xEALSC_pN~9(J2X zlJBILTrZ1+bFwqJNP-Kqx#h6Ah^*-|XQwL1o?7Cay4mA~nzL`YsL;UQzP!XF38$gI z%n!_O$%)jU=T1Ql*yA4hk(x8x@5@?EjDD_~$%wz+;l6PT_5#1rqIJ@$lo$K-BB?~| z3Ph7ql+T0K=I*^o>sfd+48f|os-#Fb;SZ!zqAwI#@niXc`!v3qMnp*rFO`N8qp#t| z-Nj9Gi@p9y)!F^K)a&1cRON;CHT?-v@9bm_$=-TZ$S+q(n63@FRr+YRibOkzD>|Kf zhProqeH!Hn zojoO|8@LfW=9+CHp4e|7>m~&Rre08Wsp9eLw!!1NjVv}&-6fiUvEaodyi!TWt+G^d z5ygd4lS6ky?!*5plgw5`Z0Wcu*{XQg3QQv41;z$!Fk9TQKL(X9*JAKZvqJu_^R&Ut z`NAJb8JQ_)Kz#Z_wRD&JnUqq*j!#pGK%KchurlYB97usoL@%vN8fy>JX46VY zOow}-jBbxettKJ)KF=~=os?;*Ql?MuHjqZ@0buhd;ZDFqKVQUEh%3f z@92kZn73bwx7;o%JpvCcS4qU<SQQ|TrXG3f^ z4!KQ$Ln$6cGlIA(QE}O)*pWa1mRs?qwekc3oR5F}(uMMZ-5Y-auOV$p%oB;lq$%N* zYVvt;Pnl_8{R1Iccp!`6ttet7)Im}CVfWo1Fl$b|)G3xfrIzz(tvqAWn0QnATDI1T z@9|l^D#r%M0b}I8Jkec`u*wct6$j_4@A?RG8X*v^gY&3#LyU@`kVMdbP2S>5ALB<9 zwDMN5p8aY?y(9$^&&gjSk2>{F^MbRq-3o#{+UQ#+s#MVcxx4BWn?y6J#_;>Nz(;(l z3*57yi_WFE8n4E|O&S!vJjHFXWb-VXceuVCoGEdkYB2t#FL3`K$P#qMxc$IUvg%D; z%P_B^+dJID;7pKn!m4O;0ZFn?6@+h8o7JJk+qx+kvCBd4b?vV)U8gAsv(G zn4Y3#=m(odL=-^`&s#%W4)o4ZLtiqzok|zPZfapz>T@m{Va5MdOR*d-agYB?F<{=y zbSA4G)`G^&^t&H^U%GSmLv-brRdi(~IF_ng%xosV$B;Ah47sTgrYa56Sw# z!^CqDN2^kUH89t*i)+d9>*b2o)duUu8{}5j?D@`I$N)^}uv&2jhM|UeU znWlfIiY;mClm7@lRKeAeLQ{*f_AlMWqo!uEg)IU65$A>xP#)K<5xThjD?>Z4b7(hc zPclQhjP@AX*slx?dyn0&dv9i3OL_e2xbBA#Gp-jp$Mp{#*I+ZQKV-%=pv$;^O8%w^ zMS$0=kf9v&c&#bREiS6{==~WM)RhMH)=-TXE~FpiJb&$o+h)lW-5)kX9VuY+o_+q zdEI@8v|xiUbahT(3(_3Q_=_zC9Xs6b2E=LXXJlC-vV?4<$)aWuW-C2_45`}e{Zv-Z za@i9t#?VMRgb!TJ!HC_Y=N#^MFjXvswjn9?Qay*!p;l@<4^zi*83Xhj`hJqYge7ba zNpOa!*)N{BIn=^X^0NK5pbuAGO@c;05jl(foow%v&(PYKsnkx*lsgT5AJ(WH(E_)( zV3=pv+GLDby={h;)6JuyFU(#opb&k$>H+k0jgCsJ3#yB^_Y2esIp)lK9!C)WjPaXN( zmb_kRz9dX|Rgs*57`QEHuO)Y&PAs(+wAbtNPX5N*XT>%-Q%jhtv-Fss%bj$JY9I(- zKSj1Hj-lhYVsEuSP@kd_YOs^}psxzi{J^+A(qe@gR-e!?*r|#HZU)k7$BmG1H9NfRrrWYLebv)oCEvgk|Dx!~cstvL z<75TR1*Xvr0GcVlV@^KGu2n;5A8zU(S!hIOY!CifFlEc&ea-X?IW>>ZhN)njeU6q})Th*@@ zDr1+!%h!;rb0UfU&ny5SiT>Nj#M~u@Z{opS#s-`d4k}5CR!itjVtDhc)3m__(%>ph zW*s*SB-fG~sH_WK%%U1SxOX=m2SUN5{K*fL&6)Kjv4Jv^^3ju~=Ch<`aS-nE^#ZM` z#qBF!GxxhBdX){$mS;ULOvs2FUHRQ(@At`B_5*<^_rgO&PQ4mX!@8`Kx5q!k9dM;j zjvy@eMIa|K?nRsA*J#k6r*bI3pUEH?gvgY!0-bMb_T%11I7+_IJ<}R&Y)9xk@lx8xkEcJ{AoG>wMGN{rQTtS z{`W+qwW}$Y2HZwSk!7pt@fAz%F@Jbg!GxUgd zRVsID1dp>MJ#RmTAc+SFHo1XKyM4aoq0YscmAIA=+UhE@-iA(XtSRI%oMl#h2 zi^OP&F)_y{xrflt+Bv;Djv=Q&^Ck)Drz$Mk) zJW#M@$C4*aT8X4Jl9p!gnf+(?^Sq4tBiqmrx_D$#w7Avy7_AI0_%MeB#NB<>fzSr^ zY<)`maBO~9*|BWS=6_2)PM_rwt`M8eN{?TVV|PLEU_ z>yTe%DH3@q>|6rX8mLz>h9!8GwhiP1b>etjB|1#u)4>Hhb8>}g59Z}FoCXU_FVP4O zlvi$Vjv@rAbE!YtR}?ae z9jpa))Ul|*jgRo@M0(yj1to?*LpgkiN~W9K5y^mjq=jW<;r!%yI<4}SjJKGyk`j6P zk$j$2lAn}|HT1i5Fdyx}sEgT?c`^C~Z)6-vG1KtiBUZM8W8#Lb-tK*XE%K@0b)f!D z=2_^A{k9SjcOFsc2$mVWBQHC)&+~E_>(_jwln+n;H$iKq<)>@Ck-Fbu_g2Pqwcgy%;94Xjo>C5&FlWF z2R!IzN(CEsN?zd?UGmQC%$tzB##qY851ss_l3ZQ+%g}(~FEdqu6&7>N`56{-O`65{ zDQ8$rj^y`P%(egjS&ZUC7N7b3_aHu@{$J%Y`-gY(nS043d}a{&QZIL|Z=)Ymo+C6n zvtRxkJc~GUM;xvayx9WC7+-on9JJTC<0M$#cEOwpAYqYHC75%?*u=0i!p<1MoO8eD zVUE}dgfW|_*%Yq%B8@q9Qw4KQlG5EVN9c9P-fsxDr;GuAZU%q$MxTB*t{<^|4Ix=kfm+{#&Hi6mT$$>X8PmvImU#~B}Wt)65o`Tu%6{Yz%<_{8md7zuV zJl(H&$4$}CR4Fv)(`+3&*Aa8U?VSir241?y`6uY>pzvJfPd)*Fvh_2$ zm!Sntulz$YuzB-c~O%LNO+c6A`<&#CA+f%xPuy^ikbekcd5gIl9W1wJiu@ zV%24o=-vFaacvJdxBG+kdsStJ0t>fFAqMk4SYwWsM$cd%>r~+Qt$Y-*3^s&v{y>;p zthvuh@9u7K>-y&tW24<_+}$&r7&gZ8wa9(-W2zF>45iwBBh}ZyQ^w=uZ3)|J!(|-x zu46zEJ9n#u95925aPskPbjcX(1@H^FKmxv2NbO8 zppZT4LVIl&ZUr6(8yxztv9Xqk!10<`bRn0N423SAbrib1F0~rE=S6i26SOj|QgE)x zA2}l*e+7Gs=mFMOvnmMwGruG@gKZizVB6)?Z(ogaVU-cBy}gZ476KNrkyC9`i#s1o zOK0@*xR0Y8>6RwtWSf|e^|1Oy5g+BNB|ZE!`j4;a?}={ZSE~k}bP&DLgE%WzZ3c1P ze;q_Ekm@>)e}1*%4F5*sL!ik_&k#yy+8;doPiORu)DoQn4iQC~}ra_(UN zVK}b5UXnLP{xD5!5RvGRqgbL1oiktEKVa(jxvY@k>t= z!_TA}?qYgiREN<@XIv>t31sd-{Q}81z~uW99CSx$zMC+-rHz}0q!!bkP+~}BaKm11 zOoU|iNc}$8Ajbzwf|OnM2!GP^_^MQJ{~<1-ZdfYyiVhI6^(@KDq#@1c&Ll&8+%TVB z-R12^+PS^Go*ZYY8YNulVoi{s^ z3lkT2lr@s>I}raMz|EJF3sYx$^jyLXI1lNP;wCGQYINM~u|%vG5ID=x9Wf8@2JN*R zk=u^%Byyjq@=pCnd_-*#j<$KjJ!MS`GhVj*C;Fy>32=rKI zj+`(k`Xg@e`5-`=WjO)Mp6r*2ABQs+_cvBri6J=YU}jeeghiv-;*JLw<2Mu>i;o*B z#;y=r?Ak>iWn9UbcMjS7H1$u*u?=!g_NV?R^XB|;)Dk%o0SSsAAg?Xv*}bo$H~V;_ zME)hC;Pwo#c6B82f&d0JbnJ)Tc##gmEMB){JesA7&tom@v0)q|bHYva(vbWM+x1c` zP$&B6h&`)>E!jL4aKwI2vdj$3T8@FfKR#|yetcY^FImcRPQy>6kF{u{`BmF{ZEQC> zVQK7x)K7yAW2nO5*~3(y#=a zV$Me8%3NHuEP(jz!CacMPijX%dyqrl|xTeZqO{8*^ zP;1&mYTP-Fp;a;tg0)O5iTt8*&nclqE_cH291|>SuC7@dZha?WueBOof4Fa>oHr-N zaWnH(B@qtCs}s}KAeFOwH0#azM#z50imzebo2^YdLpX-@ZL>DvS2Ui+wnmEIiXg6S z3pQ0Lfk%*vh_MK}O)MncNB^n@8Fh1o^+2pkgU;3dNX@POP{n6~#8vb@WFIVh*Q!}z zHSWaA63Z#gMi@gvBNA8)MKlYY>u=>75z4BlChDhU?jywiAli$|$^843`7_pB_xdRw zWcqn6j-W@m(iy)~nIAllO6*Jh#5LsLpS^yLy@q-%_Z*68Mo~dEgCWw3e9!77iHw^o z2teOvl?kJ_X&|^5u2*DS^AeB_I=KxY?N+JvA1n-84sQ(p_1$DZSkG$ks7&H zcNTDt*ek=0pNL)GjS;)8+HNH*J?jrOO}I&{*}4CHbD;iauM0)eDZB*3%AkfSzq6bX z?m0e0YgIb3t*lgL!wrb233HDl!E)c|k+0(km#wy1Ijs&X`cP|}CSwp?rGwtY0|Rr<1x={0J+_AovnuA4obP*eA2{BA5YS_SE`G z*xqOnmhJwT(z}YL+xyB}-E`g}iJyQ7$vaAt6M6IKVT|uhf%phg!tuR6z6b6-TQXPd z569oliInXRSFFF|o#aVcq!Ri&t>nh?!>QxE^5W0oj5=TyH(BK}AiKbjTP=+{5+OO(DD8jUX5+#rTYLfo`e&Zu#L**+JG< zdBM+egcJ{6!G>MZRHFZ#Y<%<%7;~`+6h>}<%5zWMn`>&!F5D?E z1RG?NsPWu83sT)#vX9#FDWWFjI?-k&^j`PRdN>-qvxTGY?&01YjPLImEarBPU0lx|MD~auXpgt{2sS1M z7r#krF#h=$@fKfI@v8WNFB|s_h5;166>R);u+{p0W6NNwvRZe9Ter#0?u)RFV9pTX zjs#y3@CEg_HIf*$mzSL2rVoRgK9GemswCo=k-;IV64!LJZmxF5R44B8PfiTt()A}w z7Lq?w^KQ8DLsSCX;#b}ITp6i(C!Ibtl$hQTEKUK##?;{Wq4sbq!78sRDGeoN_|ln* zsfTPdL%7r{Ay0yuZM^sWG=( zjYqv28??lXUg;W_^G=PK_qF={ip+a6@219H-D*7I)woSd%;+6o(MKv3vLJK0lVmFH zoo>k0Y*%F7_w#Nl?(J19lj+sj#zzaw_#Bo)FmXvAsZ`$myeBU1VymB(?uE#C_x#p|m3eh@hW z{$u&Jk;f_~ki_xT&Z$=4HzR@1ltFgkGRVmC{}3 zc*}XDM6gcaMKgd&hZ*jRI_rTF!7fvCxbH^Ex}1dSzFaiAbY%mkBMEu1V#F8u+Dfu z(T+O9a&h*c5+t_B$d{C~1?ukA z+K8pFs~ZJG=1M$nq2>xJci4qSfH!tzJ2;UOTc#p+mYUG-aEHkqkFs^iEpbbEMlM#V zSJW_9%a-&!%o#ADCA^J^g(0`4p&xd)i_k?Tq`X|5*l;*$@pMGu81^2eu(seTR5}3+ zG?LP8_ZtKy6tUtyAR`vl?43^7FCA!cZ=wV+ml1e2GM;kS&$|B9VQ;6b^nf|nM08dxOfnxehVH@}5&SQf*mlCTY7lh7N8#_q|43K1xsL4%RR z^(EH@mr{qgpa`fK>RMnPMwk(2(m>r8D#(dR!7#5LL_PQIr%WZ{5GF?N?34YWkqFy! zmSzp%bcP^xNKm$*hzxp9d&oWx8ojg0QBxDaM*|amh)<#~etHp3(o@7%1nkn1B4z%5R4AQ^qI`_IK z4K#lYH3)HfAZ4q{_5~I;(`V2$`3%2Vh0z65+ATB1>g76+wZI#H}+0)3(|TT6dsH;B8>N({**k4YO?j! zLLXRHN+RTJO0*iA#pv5aDni@q-mPdKD@eyKa&IJoJ_1$j{K^>w^7GLW#Bs1q0=_Q0 zhhL-EOYBmK`YRD@bv@;apMAx#K%I!>DrZ)F8K_&YFT33p;z5rSU5;#=>wZhBE{DhE zK}@xp+}cVn?S4&bac`-RZ)Owm%t$j?q9l?fNEvssDG;3jcIElhb#MMjNwFtj@zwEz zD6-O5aaBoP^e$bjtdmyv?q?N)&NTL6j}OdFzE}r~s3`I{Zfj2g_b6 z?zWcwmSsPBD^C%-sy1RL1P<=U%%l*m{?G=?sh7`O(r#BRY~0z~uGh;x>KgmVx4E?; zjOpA}t}G7)qGi`#ClyQiYRU(Nx8R9zJSe~js_l>6HRnq8vtbT%Yuzh|L6O$Ijn+D= zYn45GB1ncNN_%n!U*K>4cw2s;ZVfN-HZ0=)Lj4PtN`KB}H3t@*7JxL?SMpxO5V2nQ zk{^$j2A4@%Q~e0O3S)2*l5bohcTC7WiZ@n-pz#U$xak95b0Tj|;_gbKBriD9(NFly zCV@n}=_D(@d%soog_Q`E1g!YZMCT-NH6;Af3i zMXTtug8l=6x+ez6%%IJBn1`ywWTKAG4BW|%`OOU+S$~p?9xK$t&+(KfviitH1y;rW zSd#DYPuk%x!HNUX{zC8zR#>grx)-4HpZi$Ed09~^LEoKfuoTImDPq?bF>s{-^`$(y z52CIWteebOBF@c=Lr(Q$R!wySCrvMyAzcmVtLosj(|BNSGbLE@R>aYI=ADnKHZkgT zE+e)TM_QXhwxURgs}~Xlt3iMq_kl9*hB25!Il-2yiX(H+32`1>bAW<^QmxJ5#GFGM z6=WBjNTS9oUeR`yha4K@W@z3sBw(EZ4^N+WS$2R_wVDMcwO)z2FA?=jo#I( za9K<+x1%fkzSBB$X4vcZuR||w8J<{x@nPxBP((KRP=^T-1R%_b9nP6~w@Cs@w zjxDupMFZzaA(u;jICJLA#6=zU+SWbx+QzoQ8;+K(NaQ|L))-2JeOzE$_ImtS- zw>VL{UA1$9Zo?Wo25;I)1i;3YQ*>iB=nd(0 zwUf6#F>GY~lQCuO(ZTis_Eq6c$zVnEyyO2>$@hz#X{Y${a^3VnxbKD#8}Ax+xQZj` z`Ejq5F&u8{!*alT6jS3xODG7UNRK!V&qmUCiqPXa#l6-EK)#BQd)Iz_`sV+VzVyGO zKTCR;GiZdGi6~cOcD&}Mcmqf;n|AjI;uUd-w+9}aOqV4avCT8skfcO9gE1 zaFUa9-~oviR$&2lH@{TMWx;lbY>6jcB=PQE# z=0M%?()SMf-j@gaEpc(R-$nZAxuHe6%ph_t-wxd`ck4GQrR7$|QTn~!u%Gw`^m_%H z(u(yQ$2kR?(#-rZWTTbwr6cH*Pp~;qS1vQ@ye#M)ajIAiJ1i$5*iR5%H#**kM#E(9 zTru~tklhiOG#5Fmda>LB_o5D4A!XGxc@q^vd=p7i#?47!I593ijPMywM9)LgI8Yh* z`I@kRdAUF!@C7*O!PjNhBLqg}_}qhhO$ ze*+^FBtk^A3)aLHuQ=GjGCs%ADGO?h?TGWN=CZFw%8h`?T7 z$V((KL?vm1QHgw#v|o_Tg#txPFVj#opoPJ>XH^+s?&dhq0JA+XDQ18P*2|VRLL-UX z|0L#t=Ti{%LXB-!;Q2?TNzv6N3f`7;&7ZFb3-lfWdR$^P6tPUv<}4mie>&P7;I=`G zd_bAEW-iXgm$4vvDTpozv)ewH4X~hZO~t`ze;X?Vj*)X4FS2t#7vDu|?N7LW=5a(K~IV**7p{ zvD%QW8^W-?!+CN9g9~M3OIZx)iG*G#dqyL86#G+A#!VY%rnG>{gXnxh6(7d7mjRzk z5qFo0tWm!)F?LKKyu!K5U%sxft#`%#xtwLO9>)Y5j}7J!=9ICCyi;&ni|-o4sxdh4 z6l@KZy~943waFr8)D>$2i^Si%p%N@9TWdE?bV7anSbVTeL>GRB?l^!e7_5xSP$@G_ zvj0!P$^{BH!I#p5K&`2RcyO#4#ALoXRSU`XV1IfZ;ZDc~h_j5_NyvNyg!qvw0uPGo zKFhU%{@@)UjADs$i@>D)fypbD@t$M0H0G+4L@38+_D0Fq_M7@dASury+OTYzWlJ+%&R_E zcU!XENRHLUYo&X{>p9|wKa0}^8hgve%h9ze-i+-_=0WNfm#g~be0r2TNY#sBVLcRK zGyHfM8%=Clhc!YXFo|x9eVVjUuxGv-0pfG;Bk2dr%F$ly`106W<*kxJ!HTB&ElDmN z7I9-bAP_;M<{Uc54Aid%I?1K{5e7h@o?~>klK!5+dX)ZJzWr9k>-6`#VpU-_^TOsJ zvzz^kB~m@IyvfK>!=c#TWVKAM;z{v_l8 z3NL8$0zgR17Xnq0FCH6Wx?1(rIa*M#WVoHs~@YWqMn3q!Y6 zM(fp)u{}wiuvZ#P>&aU1ht|qg$yvlnXPLpvx)Vy$R03XOYasynj5JwSJ-5h0+3mi* zRe$Ah1%J5C7vw2klyQWxl9Hl1km-m$tfX4P4pmW)Q!O`z)=9iE5M9I-F}-+8Le>|$ zD^%wdsQV)$k?`YOyu|@k0UE|#+1XyNG<}T=N28CLb+kF_c#(=nw=ipg2Os7!-ZnY# z;Cg-FRA4SkL$uob$ZrXq!@d<``4UxIE9BNk>^I#XU1(Y;rUjMpMVD0>v9TkIpcNGZ zEY9(;8jNr8XzhA=ZAh?V z)GUzGL-SW*LdH2S=dheOY8z60&82vCVr>?m(~OzEy*aQ@;*z=1K};3Uk-q0Eh}O6- zpoC?MGAl&sB8JGuO8_nXrl*C%44^kM!FLYUA=ckZRh$T8i5aLn8-VDR>LQso(-i}K z(N9MB!;Eyer)nc6AS(DIb6fvU+DZOW;c4Po$o{9lxBo%0Y&`1);O?OHn7?q)W-zwP zsbnqR>8>1l8H`wdnuiG>ll?mDIQgk8W-t%?PP!pFYxG^!TPFItP>-OIGm9JK*5da|62*K|m$eARrQ8PI3olRNf(rH)H%Y?^lYMkdZ}MQg`IZB1^3<2{FMado zS_!;S6Sr~UY-=PD`zp+XYB9(MjfiJe2$02+>QomT{M<~^EI#3Q+@(o(Dv^6eY_$tm=o=aP6Er)g2z5ENW=H4ni=wJ%~{ zUosQ}%%B1nGEt-pQcgYd3?JoatSE}vx1cqrX-~2&SONh%87eyxF=Ri%5w1zJx9I$d9|Y;|B^%A8-x=yQ_) z5bIfiwpY|sstnaaME~Nmu9xKdJjt?4)|ujZ2Vb(3mynooM&yt#aSN*wE7FimvXBwx z3Ez|~O3q=@4tJBDI7ELRG}I!tLsz*J8Y=ny$#XyfFySUD&oFULXuit5Yr&%oOq2U~ zGvFmHxsx|$vr|7IXCq;IOYqWau`I*)Ou3ReX^pUiv~aA0;}lep$#M4;3)o^OTF#&n z??h*Z`;I0?hX)((17*#LP7E-nPjs&Biyk0%jks=N+%}?f388>db~L+4Y7Nx+p&$tB zB`8Bcmj4Auggc*dI?PHG8g+|Fkx<%oPwJ-@cQWqY%HKBVuh=B#@u(C;S4eNI5o#bw z`I>YpN!8rEu(wBG;rDpf)h^@^>UX`N`Gr^?BzG_Z`lp7_JLFVakEh+p8K$p8psb*h z&}OupI)l3gn@1E~=l*}!fS z2e!cT|F+P{w;mRicwG-2G-pDlH$8cEmwnST`4lhRdNbAQjqp)f78r9JW;`Hk{7aM? zxmw$ZU&ydp|TA(t=J@$aX-_Xn4Un@q7F}JeI~``V*~WOK2=zSa87kN^Yk}pA6sjIpgd8J^gXmE(6ERIde~h z6G+|j88UZJn~Oc=CA7G^OhN+7Kx)0xGmt*p< zV3kx7vfH{)Th^;LKJ1gIj>v@!@vnmAFBR&Rpb!{xNneZmxp?&R`|9iZt9Dl}=racT z5Yp%=I$m?F7`Ef^TzBWU6l5VO_tARhJEpXwmaZ8+yU^->G$gok6a5pJt2OuKn_Fm}i2Y$kbRh)IfX1tYJPc`c5dRI|YH^=tjO+u< zRgWvFo_)YERDPy*>@u3%(O&J(@->VvdR4_2^H+sfd4oiNK)!&F(qUzE2XunDLzD#| zgOo1h)AK@;VMqzOBqSqqACLR+3EJ=aKTsN26^e-e19FNws6N4ifot*>Y7_cxFamgY zClLQbvz_Zr`$Z*Y9ij%y_1R;-!g3hE+psVNn(lKp@99VB#I=Sq-Jg+nC6 zp{`S=HGVIcs6sMa6<8>q5HbtWdQv=)GX;s)C}rL0T7;t#J_`KulSiSE0wRW&lRTB= zVEj{Gax4#6-y;rQUs5E9#T2u(td=MPXj$=W7fxtw5cSrQj#BN*pMq+HwL7*0U9OZX zshg{?Spuiy5 zL#!j^6>hDUQY$GqO!R505}>4MN{9Q_Nm3+sl4e&*BrUXB=d;Hl{+q-iuC55-}y4aElX!w<(|%?(jFDq+&il@38_+>st1cv$DzQ(Xxp<(z|V&l1;#StXUJ?|FJ#aXZi} z-P|e53^FtWLy)0JMefg_Ejrz@9V*1kTE=i6*w5JOWmO3R$UEuKXZIc+Q2+<(?xnBt z?Z=(puI16_hXZw+WGKw%2)(A3wIO;S_cT~21o>il_8F|Jzk+^y_e{6Ac^)cGQ%I;l z-uDjajD)9UC>~zdFV&&c52vhIN3y(a>9*jR z4Df9kAam$rZ;-<~!WcCM8h+I7exzdh|&mwzj&@9%uU5K}*RKnC#4YF{=zk*lxFSsTs6ffRKEV zKhSsWfVB0Dw?@SePf3D^!)|}C$OEJ%xA7+<%|63i2?Vx-4Dq?brLo9Rvcil>01lbk z(<@CT;dDuf`?6Se&O?=Uib)+ss@Lc*ygGhLf4mEXTijI!?duBCrIlfR$JAN>7XjN5{-B@pXiD-S@m*YO ze9R2~zo3W|sDDv%i~bS#c}wG2pr?!WC6bB4C76v+?~X>!7AVz9k;nLxLDciSb$G6P zna3XwZ-7s}dl@8gbPlvF@ZfajNmeC5Qw@>u117wL94d|n>P10bzBe_-;|IG@Zn>8R zq}?bK9@b1BW%_^JU_iARxOho_z17UX-$@c~)auSs;6)oGm`rjJHD~mqEkWc__Y2Gv zshGRnv|@##r4>hSWsM5XT%nalzwaGGo?>cThCN>Ncq~V~75Jf9l_Na_{-}@kWZ@;c zZcP}L-R{1BN|&SGQ0Axv?ayWq^=&ebtl6UE9!_^yY(@GyLTHy2sC$|L2?D-nc#C@W z3)L)irsNZ5z%U;XxMz9oE|mf@CRu7gn1~s&s){N!Id5lYyT5B7{aszLsRs@*8AS zcl`c5AT?2MPSVG-1gKFs{PuR!v7ZBnr171l-=@=r>8^d$#>e&iQR8r(oG1QakU&Bv znq@9vx=i65sQ-;1RG{>Q`QBy?`V6k?dqS z$Sjo$AqKgBKg2eLTXO(EHwLUKWmkmA!F}qC%>eBuSwOq_ki?H>ExJel#{Se}?4|g( zc8w49Z&Z&qam}|%L+${`AU#B;oGgM+2dF2iz}SU?{})3l<3*$xuq>cF zrpbMW8KlhllD8THkvdgB?7*yD4p}|XjuMp^lF3LqgIVBBa zk7EZpu*JF~5ybiWb%|%+m};W3&c$_~F2O)u1;|9IhcmZ&sp7~JBxGd;ktn&auzH+7 zl(>;y#y(d994Z;h(Sk}5{+Let6ueLblbnyFQ@3a;u9ye$R*|($ptRPl@!dZ6Vv*-S zE*m-qX<;%8+_^l11Oc11@V&6ZER|ybW|250^wm= zNX+J_wKvw2t%U#Tu+A7EE$wE%>5cI}H|e^l8$-9^ROkb93Pyr|(VJyqOKk+~#In-$ zwZ4M^Mr-pKJ?!<3dj=ObmygTG^u(%ZD?VtiX?-8hJNtc{?d*f7ve|hh-CCMau~|fQ zjW*zC3K$phGhQ~Ucap5$m8>EUOFF0Ij+;%#e#b{c0>P*6Xm16Nl8Z=(pVW8E9vJT! z+<@Gc6PVm)kACnx?hHIkVtYDqzdihRN!&={(R5<7ed6~eaUF?A(ur&B{vi^x?|Xv? z6Bo}H{T_G5M86sD=-D734}^N1Dj8=kc6yzz4{72+MU_rvE(#`JfK_~6T{B)nmr zRD|Q+S$Uh60`P7mvPm#*6wnSR@oFH*OVZ1nSQABhELR@dXhl5OF5>oy!ZH$$;~u zkaL+oL^vRRxxL}?JbrN=yPQws@j_ot7)g6lzP*7+D+A&m42bXY^=*#W144Zp?a2l9 z_=4Yhp%5#6K<_^3vKI!SM2n|TnzNT@y?UMU53>ELBU-9{VpJn1m&hMkR z70p%s7XeTmFp=;@cJtZe{jpIIr?*7Q7=tevjx9BZ<9je6&uhhPaKA)-z^~!NRPkbx zAnkiFii$Q9EcZZcK>fzM_jJMoN_aBk>%n@anM!7%BYLWYWBdj;tdAU@AN>v|iJ2TT z7b89hY&)X8P0!J5b5`@HM0>1dde8~_=wj8$>w@uhzO14nFZ0iTV-Dtd@uY9I^qrnt zHS6dt=48X(y6bPZpCbdP*_b+2`5IdAtzjn*lae>@dQ|T#s(ADEm72kuWMDAMv?@fi}+UUut;a#@@u@oipJ<`k{CUp(yGXSe)t9*R~*`S;wzyVfy z{z`idfff6AwkK9{PQhD<73-|>W=3m4d2JHPNq~Ea>DTtG^}nE_VsO)&Rh%2!nSN(6%aV}`)3m?dd5RaF4q_g1Zt*+U7E~o}=zu-M#<*x0%$@@pZeo{a zqIoi269PQg_z?tPRI@Acc`z|3H?_eVC%*5_guJTak3)6}Gso6V9N>!tc)19B+flK4 z`S1k~mABceMGo0qyjoq*EX3@i`o&w{TEAh$Tna4R(iHD;zuJ=1xofk2V)sERwPEMu^Xv(E&iH&J4wyVkzHc)uKK=phI=;4tJ)vNw?57HsJj()0 z%O97!$RBsUVB`;Ohfu+zl6}?h$YkV>2buHqX0(*-M(+5{Z_{$e`mFOt<)2IbMpRcUFJRD(dWi-@A|=vdTLX3X1n<(G%+9zFj&%*ts#Zd@MRZRUj_cXUKGo z@#b%byFwFUy(NTnB{_F26A8<`XcUeja&5Hi62wbH`gED}NoPilaAlVfr+8XcVfQu| zgW7+s&>|-eqlo(=AWA(X@=7hK$af?EwOoD^C!Q#uA6bpxi5zryn{O|QWyM{2bMiVv zO;_gFheW3}9|g^NYB58SO_L~lou|&Ln?@tunTnXiXfE~jex!d{|{I8kn zY3Yu+=NO7ne0W@eFV^!))*qLih{_WXzW33|IaelM|Fhg_pOcxFW9aLs`7GvR$tsia zB{I6tkWXrfE=j#Y{tO<9c-@JMHd$5L&Sh#+_RPgia(@NbMAT24%glM_;3Mmu+j0Ea z`#V9@ewN*qu0J`F5oE1TK4IV&ozex4cjAu@3dokDz{0?^e&hU;2#sP-_1gr?Bo>H) zlCDcfJ8L{@35IUGBRbIo$uZYOlL|E`}dc`<#7LCkcG<% z2xy6$bWX*}IfXVpDRWk%vM<9AxnQ#{^`}2Q0LzZ~Q%`o{f0w8P@B<_LcYbI3z~M6_ zjA{+hQw!2^1pE{PzChw`yTsjwI{?8xo-~w2UxOl8n4?*_b|}sIVeWytoxlNjEP9S# zErnI;c zZ=U%?$(jiQt5Jw*$(<9Zzmm^1sq!9KBxibN$R_QvV+_=vO}5n5#hm>6-5=uLfU9x& za=HBJ&1$;^RgXXEBL`YQ!|h5$jV@Zm)L+5YPWWd8!BQZ$a34Luq{jY|Ub`DmSbCyU zxViCY&x%cf2NGm(s`9Lw&m=79V+yQwk~WvwB0!SwlSILnyhFy<6QX$vu56ghm95Rt zA2gL*Ta$x^BO^yuq~$1)n=A$=YL8-~Ol+{q8Y>rGC~}nLTOTH%tjJNNX`xi{l)VCn z4J_8M{V~7|l!*y6rWEco%%woP-&aSGFt*CI(ob}v!11|E|3vAzZ5S*!yP+)l;o+N_ zfGWNrk0`QzsDpmr@*%zj7Cp;b?LFdC`wCA4qC^20wD$(>PlJtni9+`gIEM``io}Z` z4jC|7t(&XtpD4~5=Sw26oh`N;c*%XL2=^Uga)NLtc=(3(O6(&Pdci~tYaD}bhdS{M zi=9^Y7c%vVZ(Z+HsikM&+qD2d+%n`%qH1=>x0J!R?+Ba}-;e`FmAIebKY`*{aPDw) zJ<+$oIVkz4lH_6Nh2kBya(`iez)rj*^;~8j#D4#{^nQQ7KTW5_;m1B;h?4U?*|g)~ zL8BTG2CBuD+v8bx0e{}i*TXv0Z}$g z;J&Zr46nnq87|IkcCYVJw6ndht`{y-V!?=k-P4fl>;)67csuZb16Wxx;hN7oS4@+n zU8*a_i?D|(fvJqL>sV`*y%|a5^<&wzZj z!nPS=u?kc0orZica>oB(*UKH8R>*qUjxSU9K_o^397FfK`F_Oah%~o6ad5Vp2<`jyefGmL+i4> z#lBlTj}D3Xq};!uMuwuxvuf}Q(8$EB0kHeQRyr#DLZm8*eUu-#{~i_NIIomL%c5$I zLeV`Ck+UDlC_I0bD|KSK8wrF~SJ$uO=M71Mh~Nn{kHX;^Xlc#3JWj)FuJl*e%*~VQ z4MJjA(`MoH$Z$~Oa!l;MKjuIKhm!W4gPK3Oz;l_?J zk>WOjCSoCsqv;8OhgMoBf5T_w9tiwnd&GwsUT8CM?sAW};+qg}Tu5#s`YGbq5Zg{) z(f(|SJ+F3noB{xWeR3|Lr?H3s5I`c~Z0>+nwo=wRmzl5Dou2rY;bswE0k-3ASH9mO zARd41V4Kx6whf?imG{=zHds@h26zf`^r0#bx!c)qsXs%(k{OaOG5o1_W%t(NUiKUI zd*<5iG&j(Y!K@b=Uoy(%zEyH3MhP>|ai>ZV4Vlih^J1|mFfB@639%A9D&H=Qu@Y9o z`LkuOAixg9`Ey?Jg4s3BwWK4(nIy5i?w zpZI^`=POX}ui)olFT!tH-Wd_8`97FQ*Y!MJ&ugxy7yB^bRRoX*!o+6 z&^ySX{3Lbj^&K))*IXn1ReA70F=i>PM&1k8+?iKJ{0T1TF57_%eRbj{U$rbsPMjwt zMiD0SdTy=n2$yXl5>Ry+>dZr7M3fA?SS~m(_m*RhiDwLZU5-O0o-qwf!$ZHUElk*R zJD0ONq@#o3#I#=AkB3)(psLMk+=KFD17&-vpQXNT#IQg17ZGEyV`-PBOQmS*`w<78 z$*iS%a+ml;_%9Ro6Mx3QLn|is%q2|IM$Aqd!-+~faW>{iC0KDab74+dn|Ka%sPjyn zpb02~+PdI~g-+2&)a{4XSUn4laCkx(e^Oa^R(uOJw8c=}gQys|=Xv1~?dhQSDs!W9 zmcW+YZ}X`$OmU~Y$38?!l~TlC{Zc7n9u!gO97n~1Uw)-^UjKN_B4Ei^e<4;Ho%B}D zhu;zsh9yQXa;Ylzvf&>XYOLzgUola~WjzfC z_Z5@9k4LiA;uMlC4k6_o0@vip&nh!A@JNSH+pP5d^hw&*|Bc>@A9NPHXjh9WY<5&@ zaYAByFozx(L!M_p!S-N5(u2nE#qrQ9{ZDMM>C-;Kjp1>Q3a z9MlV4^g_aOf4E2Hqy@XXt9dG08CY1)7hKBci;`}F_MycMYVV?F1`!24bFcw)i@0ci zH?E^X8Ly%zK>KOwVH)3r?}h9S1%}LKi|bC-$^B2T>_4f0bmC`PS)li%ruloY;agCK zC1RSe>@NPK^=Ji~+0$S9Q&ec#4axnr5^viZyiKg6MwvT7yn|3g#($YQ9>l(jDj3WP z*~V0=#a#&@1{T2J?iQdyt!c_`_&oUbG}|1E69tO--lAjIlWI`9E#26jDUzW-=~#A9 z%J`=voEfD6^i)rqo|Yv>WGz?J$DzciQ-!`^%(q2tcv{@wNtcAtKZ*8%GxVY5Y&e|p zMY0>_5>8FGjQu?B(}hf_hkA{CeB4}IW{xUz8OMTG&68?&CI~<&4Wo~SM`Hc zGXp>V_sqbtBfP(ba5tNSlkIPr635yC11;WfX_5~+`Op*?ShS?$$6UVE5}Lrl)wnt*T)qKA0RBd7HY-&$&bYpY z+n^u+dOpK7kbQKWppVypHqNxwIac{Wt9U(s!?wI}EfMB_DlX;7oexE^4XIyx<52%i zV{7>f3G~Std<2+s+g{MV#&5raRZq|!kM&p;^$crPD7!m;6)>u$ECPTsowb)VZRRlLGFA<%W@Yeq#UB%>@p=X5aRTZSzhZJfA~^ zDompM$x5>7I!N1$Ho5B!53BR|<@VHrz&Uu{_WY?D^9~kddKuaJ`bzqemUU!E*s-@j8fR#+{St>|2Aso2tggcQ` zpbG`VQ|KX*0F*a(=3=4ZJKS$k>Pp-7oWrv9v7P<9m!X>e`TsBd>v~?aPtha$yhw+e znD1|zpnC^5@*cG&?kRG|nTHYX1w63OmN$*Nju~Wyjhm7spHE%llK9$<{9!-w{Wsxa z6+e@mfwGm81p$z#{ttWa0v=U$^^IppfS|w$0vZI%U}H@bFeuoha>+;nXJ7`ffPkPx zk&6lhB?DN61d~|C=_u8DX{(mE_TpRX<$bFZ(P9EKfCw5OC=!9lMb0o>qCgTrlJECh z`<%Ii;H7W-{h#mozdR3VEc2=A*M_*wHb zeyn-0Cm~FD3_;Ac3#DoK9cm$IG#)guJEb17j3aoc1MrxAp4B{C3S_Fb(4PL#(_&9Y zzZIhz^Zp{~u6pY@-zna>S#m@-dP-~;_-FR#<#5f(F(m2K=Y99I|6sQ_hN0)G1Otr5n4==r>mZbvbrryaSbK zwSq2=q}9Vj8TuU++>dGm&(h1-Asg0%4}fC5u}riqt#lDN7_0bxb#fRTBca~-g{bUW z=@fk9i00Pok~Uc112LyJZwxENh241*iJ&nUkPw}YE%WzJFh+yi)GB%kU`!@F+*_l9 z3>nv(kXzv+u98Z@4Nd9UI~VuxkA-k?BQ|$N#PW_sZiR8>jxXh6M-dUB&E~q67CCjY z=%@QZy(N+iiNHxQS$)XnhqOq3iE&}Nxenf;_@QhQK1*0S**{{#ZxAu1m2rPBbO(Nv zyo!u>YQ4~0Pw5z}x*t0%kD%=oBZG9m$1X#5o|$qjQnHYeW!zz=bOViOsT$)=3 z@34&!L&$vetxN`sF>fIyn*eMC#sJramylz0DbE@jj<|APm_(Oo#Gal(?763l9qjiB$w?N5YtMx;2Hg& z>mU0yW|oqDUpq=ZPjqB#>$lC)*Wncdi<`RZ)PrF3cotCKP{Z4`$nafgp<@qmv^|bRqZ3HCF|`lH`&Xoiw1-Ti++I#T8Blo z`X!lG~gZxmh&-=XG5I65IL zF+74l6(ibcBEP=mY-1sA%eXlu?h`S`r*nm`;S-_{$COHyPwSEjpMptBPKZZTMI1dKH?O2p!6;AD# z`vGu_OLIT2cgmEmN;Xo-sZc`uGgPx@v zD^|B~UZH+zX2eQza^$eMV`}JnppW$*^tTgvFg?irBRM=5EH1ZCP0XWwhIlcrMseUS z-jdVF9#>xJ`-Q`K`QGc0yTkmwvBQd}|Nf+FUEV#pv??Alo(91kxZ~G*Mq7qOCm1g< zF&3|geXZoIw&Yy|;o~(;%Uo%=^Rkhb>P<<@a`=<_;>O_N{w{;DBBQ?=TAg$bWX9@c zo6EZw_XsEE;<7qj$EF%s6*Gy^VJAg?|1@vN;qTHHNw~2c>5Rd}xes%oarhISV&xay zJPmsgB$>K3Cs$hu1cv&%9TIfZn(og{Ng{YSaV2X%uNOCyuBixT!F$GZeOl5Z zFk3a%MCWhZ;E?R;Knf+3LZ>jFis+_-jffF!Sq=@u2;K#3vWy-deaQo@{n;#HlS4iP z9bv$OsjR6G2`C9}Lh$KBvVY75W!+|d!9i|Za*UI~4P1L+VU}(-G{xwJKA3ce?nCGU z>QG9a#dk#L3NV3;S5gEQ4#GYRw@lOzt&#nq3&KVn^hXEwHbGg3zkOdtQ)IR~U__)D z5GUDP=!z_3Gjj4cJ0eV>F>D!lBtb~4lQvq}Pe2mTN5!)Qjmk1C8p(-utnJVzMk%;j z^^Szl0zQX~c}Qc`>BQ5n4!)q#rc(1$`I?l5TNb@*<-E{wW6zUX0^ft|Zwh2aR+0XY z`QnUm6d7=}pBRw=6bmDl?GS90#vky(7R2#VXtcSu6S&6<+wc%_pXrI$=-z9zl56k* z<6T+GTiFWh;wfwCgMuYU$_|nxa|~5iz_j(sDi`)5VjA7Es|#% zaS<`UBvf1xN<`dzi~U2LfPmRK*zsvJ?7w6mSjvjkKFWbaFad@K28oO!k=-025DT~- z4SlPI2kZz&cTDC}9TSBeL%)L#pvFP2E$o1|Kg3eMI@@mNv~82w#qbirG=3zan1>dB z@TFSs39&3p6}{+d1NmurZUBjiy028-BIQMtpVMvCzOvjNfH4f=3fqmG`Cq5d#tvg% z2EUcH$kp{85L}qMknNA z_occxWD>#6lx37)BE0UW81{E9s_2H%ig6whUTPf#N(}S&unqGkwZrD$1uK z+pT`ZD8cvxy5MN|ds1IDKB*&H?BuY_WRhTNkYTag^og+wpFz4@N&-pD_4n^C9gRtq zrW3b+;7=gUMbf60Ab?`&0Fen0Bcy@O{>9aJA`+p>(OiR_FI?1#3j}bq8OwFlX!HYn zPh`iFEl{@|970?8A%4y@E)nkEmFG1eFCAOYOuQ{GqcSgJYi{;YQd4K&Xzs0aM7bKZ zYmYxj9Hc6(a-G6Ft(`JnHWQ)p-uj9Wb8EFL@}@kp@B&p8JJ7ZXW^Im+EV^f3=s(vhP8|S93QL;X3-H zNVn?GWgLb~2(V}AM0VeXFPlQWRg*!43o{5+6T9&|c%QlgwYq+FdA4o28Qbz~U%AOA z+eZ2aRteBc0hCt)gt$wo#v^zP2kkMH5l)J6ay@dCoYM#^rRYXH6=9hYWPnuL zUW4jVBy_HKEpF<>DL~_KcF2)Z#*xu9+wb-%A2?;{0W!Ba$igK;KdxX{973CUd8QK~ua3h3 zMvRqc#y@~FPG}EO4CCS;2yT28zVe`El#RbbM%$&Wgso4Q{X(WG1DJR7`)9?g-I? zd3nTMV(=h5+605EK^m1@z3I$&G^%!n(+MNud@?i znS-lYV;(LDJc~`AjP*=ugcDjK-k=yHb4L+T9c51_k%J;U#nS(runNF5gJt|NBd1IQ zunCQM*@p@z;RBYQ4`H2j%(z;8IG20V!?=oTFh1Ggr)b9~N6B%_!g~?Y)o$33D=+(8 zAzTnfVGcTj(io-3j8Lh7ZDQ$U&*Nx$tiz*7uc$nx{~i2X>SLoY%1*2I16*rr<1NSb zt!FtpT+{Y@KXr_8Rvbvg#O<;jH1e?pJJO$Y^+2g@H|9q20BMykx+)F5ff5mjwj)LkIy?e_ zbH{Z^h^?Z?EU+*9xUC>F*@*Ea4?AuHP}c;=1uR;_dDKZr3AQHbF5`xf`WOBthBLI_?@^@sxd zL9U9S(fr5591zEidob$oSF~4SO7tbw7#)4F8#m*{vTd&v5ZDqFtq{97M$$F_p_sjv z)nH;v7VDBRJDcWTt&~B8WxiwPPZ$)Fsf`d~k}7dDj3H*`Lr4}vy1dX1FtLG;r=+EO z*M$?|`=WNqekhGBJkEI!9RYV4?=ED*(aHXhoXBl_-cMEiYd|yZhS6L1Cc#pv;`cHv zn^H7@Pdz>oo&IQ+I1Wt01EXR=okf%`MpJ-+oG~)+gvtt)SC;)MRY3#VCf!Q8=rh}} zABirJ;!q~6Kw4rEfA9~gwhHDziC=#p?_~@Shoumco(ZZf_aKP@wg!f8Hs!Ac38o|g zHhZ_qS!e=t2{2DL6Oh{kWXESpA>oF@&Q~ zvZhfDDr}2g0;03;cl}KMs^PdL`jTptM_=s5-|%A1-3y2sdrnc&s0S#E>Y)r&5tZ*4 z=w_yEv6*<;CLzE)bw&-`{b$Hng*_RSg)>K%R+dO&l6}lje&x}3_H5`4yszeyK)|9& z$1=+JjQ~Q38fc}VT4XUxKY~ZvGu@^?m8oSeJ+cfW#jKeH4GvC_4E2jO^3q1KK#{(* zQF{FGT(BFIRSD$>mw_ysW7W+lS9IO#1^Bau`)k$~;+_AEEyON!8SgjrIEo2>u`Jn3 zZq)Sjpqk!34{oxTKt0PUX=q*4j!~$~ZbzQg*ooo(VK=~eF9E9!+XlF8`p3uOT?c-w`5ke>ju$*8ZMIcPT@!KPAUe-oz9Hmg};l|Fotw4@hlg0%Jci30$RU@*RzkagiKN~b zWvVP5Kqs&C1&_e0;XTYSotRS$_bD~9=+{FbLJBVh-c*99x9^llO!Y;uaZ_t7i)j-f00R~IuOZ&yLix34)MpO1cLB}%cIbDbKHBhW4E@Gb9|lCNwCMu0E{5rdosXM}7ZmZ>+y z@*kS6Jvvk&^4E8wh&M_m70 z4S4MTS1!>1uEg1C`51qkbX3=eCYtgFH~XKnQryVB z>P5+ok$V>5lEYaSqTdO0F*InT12N-?OjE28>JC25{LN|(}67f&fF;rAfnnLcu z#!S8UonESk8^Di@m~1D8>5;e$)*y|@F`fsKk$MjbK;atIEJu^^wv}VJ%F!G0z&t>_ z*BFS8oPfRfh7)fXWXYc2%GxQ!O(^US0fkU2Ag$yt8Ea8!THO0A>8H?#NQBVgT(z=5 z=BCgM0CB#=3XMW1a^O)#4lSuuFI0;|ui}NXNJL)4siEKdp*naLtNJZ_4DR1~S4pNf zz{t3l!!?ShTNmlce~(-wGS|Kg8m4Vb~__@MMh5|E=(0P>#+2 zP4IjF#Cr^6ISLw9oD&ja`vjE9Q07RG#H0>l=in|zgkhy91(~oE9*oP5K&h;Dr?fH; zrvZ5-p_hKqgj`x#Eq+xh$!VqXe6&in$D~$8@{&AOUT!X^yd;8^x+0R7O|?=xfIqN% z2Yc?)gHnI#aHPQfIrIbkHRZWu61 zgxf=Zy|FD~9Q**ERy**sh7k#@g-8N&a<)%49=+3wjq!Wd_bfp2??_wl;LamX-Fp4x(d?~B?{wcIC}vry

    lS%w@t-gs%wb#u;sAE(n-r)k+rUy>O4*Dz6i#R1fqk^nm3W8# zHB?(O@H*Ks$b%jF%iU^4kj;-YMCy2e3X+~{GcYO;03Z7%BIxyn7LI z5GO+rOvD(w2Hh(Z@TTHYZ!pdj0f}Wwx_3-Uc$C5e>suQ%Dm1{Zl|3KrKlUA)g?5pO z2yW&<3|%ZkjmMylM(1N><3vlk_ka|OJ({EDN0@uqlb~NhC>!uOrYAt;upi1Oio-7$ z6JBS!**Rr%m{=}EG2Ne=RKaav;@p%wf(#@ZlJ&OFseXp{w>AjEey-df^^cek4 zox)S@!06z-h2x`qljB7Bf92`c-)WjZLMzY9aKc-JBxq_*s8dEEscC4ZjF40MfH{Z(JHa;)=vU%SAR^Dn5iEw?n zsU&>!eC@4#e>3yxzNAzzK=XVDur?Pi_r>G`J;@x+^RBY;PL0n?#%Z4S7gpXI;`5TJ zn&-{8^0tl7ONMKnx4)IQ8X_Wwu4KmMd6TWYugB+YiC&-m$fQF_Ox_k?zG>zw{UP#& zZpDu|@2gXCJmTH&C>8Kz!#R=?af9*s5AYY_1^%Ttvli;NZOy%uRQPfT!CW9v;W=i^ z#!?xN@H)7}jweVfOC~EjudnqryL8SF9bt^n@My-pWKD190G_&cx!kdeFHrYB`A>)< z|DXe(>IoZKAI2}neS-0H0)YEle~5S15sjDNnBc7xnaHz#==341+iW{EWfGSfs-KcpknI>L| z{{+3t=E3b|xWIjOT2Gu;NDaF=Zw<^?`0&v6NrN%*U>_;_+>#%gmJgh_mf}n1Xe)Em zdX|L}X3R83ca>{6!ty{BO7`yLL~UGQTUWBbZN@qTslHt+ zeHQJ39#HlX{yK_B*@{J8gomU2z_AOho!zWTR$U2CoPy*O1{ zb|-q(@sGP%$$J3a6z&1KF%G6m(td#pcuGBc@ePbd0!~AnCg8vPi4Y##BNl}4+a`Vdo^!-@kixc%q=4odhvp#i zmx4PCa7}QN6}T}LouxV`lU8*%$@fLSMBCRbx~ExdXaXanGZ>Qz?_!nz?{a_?aXI!H zlP0Q6?V_2!_#=}RJsHi^Uov@$L;E57NY7Qb0|%I+2L1{C%{|I~M`QZia|`-=HL|Mq zEP#R?dIhftvx%&$8QFUc_miw;aNQrlwmB?>*ty8{YkcDkFmj)k#A|c#W^YCc5UT;~ z`FSO0nmo{{v{GtR3Lmvu8eu!2_W}VQ8Y6KBQlm$Pcs51)bJ2Q4ylb?1k`Tl19shl8 zl`QcOn2vIg9Qri4LT}K$up!<&B`P?+0D9`cm+M!_35fo}Q+&5!NMjJw;bIxrb6Oe4 zakBw)-q@q)LGa|HG)J+kO%nn&oKcqbvHxX`ymG|rr56xZzB0%u%P`Obe?Y@J-rh!5 z5g6?8K2YEz!}gj8=v2X=`FX*1ci9Qg*xuQOQ@i)R3I~eiO-^stlnDhK%^+n zKU=+s6V)iU9ENtoz$@)w`=RMe+hfb~ywU%JpWH<2*-_t{pSq%4JU@LksU?1z^5nmX zpAxyor6j)qKNbES4O?^DH}KPcLH?4_{w@4;>OWBZ5cl`yClLpT1dMf&=MqFvk;4op zi~%CR3i~-$F$l@(`S^*GH;=NqN|$tF+k|CNaiI1 zTG?&L!|CYWAK=_Aj9Dq>rGI;kjlC|8t9%vS>FWm1HE4P$@@HmH0HMw8HJ)V#y44*r zW&;}Rl>@zpMd8fYRB|Rq8(xV3^tRfPGs*J{>eeP{WtXCEILmZ_R?e9rLX^L zU3dxScRE75{5i>P@8`~vng-nq`Go)*?eSEY+~CS6cV<-Buqs2;0N=H~DL++`uHQ`Vn8WzZbS| zoPlqR@{K3SqxQM646UGh&*EYbt<&%n{I}zOrV;opC34eo))YQ$?6HHz`DVQ3cGgzpk~AqVv6hF3LTJ%cBU9{)*5dv(NJVD#N+ zee{>Tf!@%@^-#@-k&%IiI)IJDFTO@0GXo$dhb|r$7jFUfqEn_bb+YjhN+Q+_ROu@T z33Je5Xj`<&ytRU;$|+0H<-J2QW$vmJOHT|w^i!5-Z7SY|Qg{$=BXA1=?KOTe7JpH} zaJi!unn}>eewkyja6rF0@t44n9vp!^Zd`erB>#Y=Rzlyzk*XTYR1s~z8J}^NWv`+< zu`pmnFoxSg8@HJ8z*3EyfC$3IYNcyIckG&IrT3wQZJYIBI`-57VU*R0(;!}0@4rTfn~c(5ABsv%=MP> z7|JT${U3lQBE~6%-(uXJ{EGKOgv7!MRH%n1$ z$|Hlgmf;vyz0rOo0cxeWNX3Z*F?l=QOCrZ9J@D+WCBrf=lHeV0E4*F$S3Idc8leie zMd8RYbXNxk) zD_##4ZxV0rl)1{Y;>}f$Qb@f7yvgWuVIIf53o7WGQz(ne8M$aTYCn|DaDgDg`KRHp zfW5J7Ea7;9aj)^-XuyauQK%R{q8~y;%YtZw@w0Y9uhmMP;k-zYbi$Rb+yh969p4C5 z;Gc)6y2lG2WO%6IDaM+Y6p|0-B0Os@;(sGf55q4ZLOC4P=jZx!umD2HTmM8`IN7Wh z@s!#lQf8NSdOPT?AL`yN8(?l7!tGdRcDZNI2>-yn-dcxkt?vD?s9J=}RzOtDSZ<6o zt89~tdnm$B@I$P587157%LC+eAOCc4y=m)wpupM1$QTlr1YS+T#$;g|l|DHB=y}YAs1cj3fhu zY36^36pMUgKPmku8XjZESpRK6=?L!Y_AN-(oVyUq+_nds1jZ$*Q7UEzrqeW>zt3YF zYJbuWkOJc^7ni2_yI=v=7cBE#b&Y`O;h!hX1cO z#wsGn9oy>^B7Bm%+l7QGQYSG|W(#HxLh3NeE0brKBEs&5RL+dG=P) z%-`YeXR!XKl8yEMFY!kNhT(B2)mpO0#c!P8A2EamJPFoiF6Ou8;x;19xe43*j_i-L z$2R~DV_?)dGCl&yyu0gnmmC~|VA#(3&$wL-vN_uY^z6pMZaAj|eYU;P9}_IpkM<(R z|BUhssl)rG#zXOJztQdMgpYVKEH)b$vZwVs^}(uYC27N#!-DcO$WB|phS5IYVI;Q|siZjr6l!{~qqUlh`v z$1G}{S{@F@(kGt&A4ce(1m2IQKMh`>|AAjc>HlPe{-=h-(m&$8ME`VN+~)ro*1#_R z!esUXByc1GBaEnGUw97tuNxWw4#NVfxEv$YH_$J|-B6}q=94I~WYUgIOw2BM_PIcBKb$0j4U zDLD{fBp+o;&LnB23!$Mv+1E-J$OBGd-i`-lYWx^>#;uK(071Zy@m7=%h#o3F-t9O# zOY1TPM5-KkUoW!4Sn(9>nO(Z`WUjw(2ZZBxE0l+rpuv|ZxQe_3ZOTu)3(9F_^wWhf zlps&WfB1M!3C{yS&w=;(Ap_GDoJr*v5(1i_R_^J$Z46Xzh+i-c-$MYvetFy|LEHHP zK84t(%Zjmr zMK4{-G-wbH;{<9SOz8FA_2g}%9VS4g-whi-n1k*Xcmj8fQBRuo#A_&utLk_P6Sp`p z{K;WsEo`YYlt;9*cafbZR+D*R^>TGc2Cf&z`&^&UrQ+#87)J@=ivfBKN7~YWG{_3D zF51Wjby1f?fSK1-gm*;cF$+J(!s>E$NFl3zW!Qgd3jfYr-|<}P8~*4C;_Wp!5?qLt zB{n{ww{}%HX{EDK$m!GAI5di9TMwT_$Ndn=YJ93z8(k*h#A^phEk-j{a5q5O{)O@W zZ=`)%DG`W=^*Cr0`UIQ+CQ$Ovq@wYMae(&^e34qB?Ss6NbJ)oe&j3mr_&AjvWX(0v ztWq+@-oXQlTz{Mfdbk#(Uo~{mRF;!yUyMo{qwm2*Lrg=b9AbGeN`FBu7Ap85M+O5c z8Hup;P!WFx(408sne1JUnRU@!`m{Z~NcBrO7QFqSPUorpiQE_JE&Jvs{awC+my2TF zXng9zFytDnN!MPl)H4_$8fJ>5%elww%-#(@a_?C{q;i$4Zx2IL>@Me{r&Z!sz^x6C z6E}jgP?1E>08(W?!h0mpc_>x7MbTH^unuocp(IJm0mFkLJjJW8!jEjG;YPfL6G0#V z)Rz4LiMYrBtJG-_$YPIxdWMRRLm{iNQ&X!rY=>@v9QANPsbm7u&4jY12e%+Gx*wyBKdUVFHvafPuGFk~h;q9`)PC4JT=j z=VF;)RXXZJlw|SGzxJlZ}G4b%St-cqwy;AC%KIN2<5IJ|i|UDq%~ zpMFM`A{C-nAVCC8{*y{#g#Qv{;thGqt4S5>3yhIMK@u*LcIya??(Jr#h31;Q8ZB?0 zDpS1g>E@7?Dw!V92b9!SbP|3)Vf0z9lzsZ~<#A@AD3yH)=QODPWk;9HqAL70-Q>hD zp(pm#y*(eeGWiSjPSOBbn}#DANK4MTKYZMwK!z_H%NdFS}Bos z`mmva`-GE`y@wGR&vuk?dJAv0<{OSvn&=ePp|MZPd=cSte8G3)YfK{?q!0^tKB3yu z5nyD=X8f)f4A&w<>9|Zd+9qrEr+s^HWoXb z=+|2v6M_v3fr1nFUo1V6gKbjys$*mpL&q<6mK-g1E1lW=J;$Feu@#Xxzy@tQjCDR-`pFKJJU7R0qEGZ}}1{jzB zuW99|8p%a@#rzcjMFOBm02B#;A^}h&0Ez@akpKXsBL50O=s*JIgJ5I9s1^9RwH!Zp z)Zphw_&?Wa~yZpaMqkj&q$K_~V@Kn|N zfx8w@y0tiXv}#+RVsVkPIC!wCnoqZ^2=1;rz^6&&!5vjc`E+MZa7$GkpE82MDiCCG z(f#&-V^CE&A0NyS0tOt5iyZmES5FQrChR*_1eX+z%nwv}PHqaIHLf(!Va~~I>Ul+= zV*1Hl>KQ<8Ke<_EO=VAbRmd_>cC zS4}JDV+P1^Uk#t`w}T!x@ae%E5ac1yqR&Z3KC78f9voCPG$+_tB-P-rR1m!CY?Q0I(bI z{~`gPldORqsOT`i@(NI{dPDG!^S53Ba#ep6791>}SRa6)4Nda&RjyVF~ty0spu?9xOgfK2-R$5tf`~tc`s7C{i zD^8AI5vd4_0$6LA>M6IXWAA^=q}yv|qN15ry|@G(w3-enM<5AssdwA9vx6aeP~MJv zR)7in@R*d&k%qA&Pe=*$XE&RFz5;D_<6 z_~G^jU=xcZ1MNF2!syBlCr>fQ_*9o|XGAjW7HC;Bae!R#y1i;YxpN1TUzi9CO#H@I zL0(!A7DWVy6!$+zOi$0n?Jn#XG~jFmhG%(T-{MK-ia8tuPGZOb$u~e3KFnE0pcv~w zt5Uco*!85rp^Y)Jq~NVu^m?#sRfyEyPM8pED4sGiaOdeI2F54ZeR>r{yagpw4JHeM zXADUljuxFq)FJPY-&t`4R9RB+^m3pNDn(??XNu*B^ExRRVLqvS<4lZzs!e8(EI#RZ znaSe~t4D;ziSdURuRHn8lN`gSGs&qk0*Lx{NQFuPn;yfxY{af$hm*AeSvT2u9U|Ox zVtc-b0G{Rau0_8I5Ht)8MYk=Bc3WQ6R|KOY#9wNlVo+71Dmj1+J3V(Zc8o+Q*r>Xh z({`YuYgL7eagqD%6*a3;t`cRDNv3>La!RC-C3iqI#0UubDLyI|$BK{O3-h;KVakw- zIn|#8pPs*6-XTaTrdRLfrvnk0axUR0o<*`iYD2PI5s@rIyS6$2Aw!;kyg7=;=~bVR zW(WVB)k2I7FAhZO#{1|MF$my&Lb<}Cu?VxKe|{AxaC`M32+$pP8ee@J6!;&`b7{=MbIXTWCDav?`YbH^YA!29{d`5H3C8|s&x70?R5EO)wq25 zhVGkHtNSM6(2@Pby5;}ezj*x}$~&r}{$6qA*wyrI(T-jz|Sq^_?c9LpI-QXj~zev=iui-5TamdF-EOU z6&im*9Y=BS-0^Zepy;XN@8bc*j~?HK2Y@(uyc!R^g1e6&z+Zscar`JA0B+0iIy?Ym z@HpoAA^{s*TtH>UyMk4e94L4CZcm{28qbQ7(%k*tpXu(m&E2os-R}T3`fXUbsCg2l zo?t2J_rbR?Tw$<*sbpBO%eK)8tFZR^t;-~SC`6`1d%avFrPEuD4|gngC1RR)dOyR< zjOSd5obI8wufUwPGkB_MBlV$jqJb3wR4Ke-t`j+c;k+AJ+XQ!4)i9TxLhlGOJf+r}o6fyV)dRH0zCit9WY2Y)U)fW&&(4&z>=&lN4 z0b@}OIDo!0o-^Np(>lD*T?PGw#XtO-G-NHG3n78v9Y7Xy;T0$M3E3J8hGFjZRBh&r ze^`h|fDNSJ4oHuagg-Ymc(4i+4-26{76FRxaF}@~l9*g@sl1DVTdFY4Fz=Fr$2pU; z2@oBGPx*nV0Bb993lBh(exT}F0Cu1mm3%jwapx*3KO`z}22nxE#V6MZQ33iM>2p@J zpJfGO%;sHBhVk*vRFZ196ky&g_IxC-V2l-unRk)!fR*<@Mfm_1NOtLb$;ml-3!4wS zkHxY(0ei+9xJog?s-!T`$K*kBkTF5NN^&Q`?F*1Q38Yq7RER0pR|9C%Fc!8X%`e38=ow<42Y6<162G_^v;)shawD0G@+;p zgF-42!_6#b2tToapee&ls7W+sm%o2yUhprEr6!wMarE zhDj1kF#%{%B#A7>unqu8EN$-pTRfm(fiMN&XsA;7iE2?|k^E-ODYDlSUG+wvM882e zO&?}=->79S->u7?6*aJ3etv};Tl^LKegfgs#$_wV-0!kgI(eBa&(}jq8}=MZtU&I| z+}=$n&>u5FdzI6PYdLvq2&Oof?~a#|_YG&o{!VUh1+w?WG<*q`qsZzk*~)wfN3;<& zuR`8(RC%%6yA#>doj5**I+4{`QptR&aIQd|%uBe)^m%LKzf$EN;@oN|ETbi`^k#_~ zlrWIHhiX$c+SE3-LBrEki)xX#0VrOoT66K50a9EF}8=%piXCQwX5{$48oVB~MryhXYyl7%8U$lhJGC<`r0 zj%(2v)gm1&Ld?{fuBt`XqeUI#S~OAh(L^*UA5GF!lX{~`UE-RQubMOqXwCzQ?G%bX z0*aT%HEEW@Z;{LQOfkft%l9IsATUitDZ45)2&EF6H*B61d|cM$zGpbWqtNB5c|S(; z+Ql_*5t?^G?k_oB?DDl)MN1Ky3cp=wdEo?SFC3AZTI`112mN* zy~=Ur&2o?ry|)pFT&7ZC^4Uh^A*#*cK ztCUsvx-MPSSq?1H6&9^k%0`97l`3x~u^6K2+zBi)6&5{IN)55dR&^S{B1>U$sY);_p(`XVQYk5{_G(p0Dyki$s!dWUXwC;9TQ8M2ok$E; zRb~Q-i3*ACDkY0ZWGN(a$TbRyt|~<*7S}5{V}Qjhg@vY4CK8L@s?L01F;8L9PNmFZ zy+2a5%tO5hUdAp+R4I6?M0eRGudE=6$RMfqS($0!$S1vWxk@7^5t|=N-M=G8xx7DL zq5izA{=A|7tim5~Q`8S9@&x$`b)e4PK0Ba7Q>4e5?BL6@1J|@YtdZ#wl&HTXMo`V3W|R0>SX`qUEkFsj*iWt--eETeYM7 zMY+gw7y8R@KsO-?|KTB>Ko_#u|9F*mv`qdoFTZ04QvTvk+&|`v{m=Zd|5+~fKkNOb z|BTm)%cpR4FL&16-pz1GS$ZV>QZ+#A3=o6eUOIl2)RgP~Svkrd&R@noQr-UoyN4d{ zG%xvIEe0xAaf?=OEgve3_J#1jfnz7!J;SgLiNi1M!-TVmII_{R>(_XpE4etcHyMw~ zD?IApAFi zyi%~OUIwQhJj#|o{Lc)JynilkE5{tl69RDV_*`Wpg;|V&(s22yc;@YiX8W<3jf7^l zt6R>NVrEM=vn8~gEmWf_O);~5iiL~S7#`DQ1IutFDDm%P=6MTwK(W;d(Y;1%fNoyq z7PAc5gIF$=GUqksUbA{~E3@6!a<-vnHb#A6wi{Z`*2Bz}YG!MXY|Rl{6;_Sm$rXY! z6hlPLKV`L0rqnFc+AQ;?lsT_4FYHyIFEX?FTh6w?%+|%sHUrt3V|j^LV^=fJ%_f$L zPJ4|fTPU;Vu&SOTnl0#l?}nh*)2v?g>t3Uvg);A$Wgs-AOc)UtTj=|$&lG4zqGKNgkga*^=b4~5 zAu-Pi*p|(Vxq)iX$jeA!W-ws0twgc=88wv*I)k zfxizh<2u@SJg{TMzT|eB@EwP7T9TRNWv#Ym!^_H&QW~sMK^)^qv zWvRDCcr!j*35G7$sDcnYE`AWcZ5|!hamrexo4w<(?6lfb<@B!&tt+u5dg+$4_x3FWNl43X`S%0 zFcO&~hLNJWAIDD~&ZT&39Q76K0Z%^%F6eyV+FaiirJo>jOZHcY<_t39GiLy;bSwUZ z3Xl@fDWkq`&iYTWQW@nRx4D*&OZU-v%$>2_xpaR57<{BZ?Q$1RD!H<&7G4yN#@FS_ z2A{1@$47W`Hz#8Y+UO+eAVyA&NdhtTi-Y_wq373$o(7MKnr^k zcJ1H}V+&scFT!XW5$Sn^F9~7lw2Y|M9_m@tk@hhIodcSq-AmsG5N3Jd>^d(}Hk^EG9=~EQRJoIee|f;c?Jq(8NG*h=Z=a0_~U@avKH5m?~<>xj6Cl$N(_S zzp5$bsEesa#wy|yk`$lF=*5s5_%#{J8gCeEri7qGxbS$3G}7uW?nj&QgG2wD`^~nz zStCa!j{Ewb>bOyfQ@;KudT>;t5(wY7Ct2P1?9xll@6!KyYeg1B2M8R}Wqic3Y_y{j zdvA{KaLT8P;5;$HhtcZxKlnAJl$=I@uLZ8$=nuDrI{jLNz`7#^0wq=NeoOKQN-yuY z`s5Mar+k@$kyB?M;Tu<%KBD{VFH=W&r_`s6@XoGJ9nn4aOMIA8mpQ^WyDn=)_i_P(UzL!VF!TTQfsjaCC+???3{?A`*`fIo$A($eBqiXrF|u z?z^;|p;d3j{~bt~l7v%SMM+6BwD2Z;8`n1FgjUp^IX+W4igKAFybH-w+Twn;96Qna z+jp0z%}(t^=SNKbQ9+uAOC6OVzBL5tDE|~!x$Zs4nKXT%eZ z%>S4zk%+6)lm0XaxeoHOLpg)!mcg>W)wb{yBD+_iC570Q*%7Q(WF6Bo*29rV0=4ia_7{dt8h|-x@L9 zD41&V-iIEBJ3_GKs5S2i#_7-y&X>>v2V0!#Q!YRKEY*OS*@iuVyGqbsk_6&0>5#lks}+Qg$_t`=pn8~YRd2?0rXr4H zy01ZAPLW2EVD>D#;v0MRPSWSXJ<48G#1p9JNDA-(y0w$JYZH}^s%NG1h03x0+gXb5 zG<%tOCMQcKv$L(Po~Edw`sBV;)fB7aRTHJyKhyo^b^T;;#5Z(*?`GYvUwf^)lf?o0 zO;|f>WyzRf+0{AdYG?gkdL3aSfmE`GwPrJk%h%oIn+ExLALQqJQ+{@Hb-xqh^B#!L z`;o*k)6?ah3GrEgo>^#$&yAk7&XT>bTS!fxP_%QlEXT}giBH?|?!Q* zxY5HM?y>f}9<&d9Imo|wV6?M{+Z1>piSaONRbo6$ZbJd3 zc$hrOc^;m2l^72*QxY3@fh10v}#;0&p)^@kAKFcx#F_gLykZj=^Jp6P89zuAy?F~GLj;G2?@3~@o z59Mo-@#b=tue8boh$@e7(eg>sTL^tXV7T#>f2O2mqGT(UPO(bcti~r?AGT z;`yrhJl3AW@?)&>`Br&+Gs|n?gXr7HcJ8J>wsQNWd0gbViv;t$(z?i&K_-&%4Sw`+E;MGtR~=`BG)c_g6PR zhI_}1H(CE-e`thXef)k)z&LZ9xc~$jvhXt;99CRKeV56aYl qfhV=Ydu4oI}2f= zT3241kTA;s*Nch)n9CCg`UL#fIq9{>_P?47t$A-IC%gZh`ADJvo%tX=5qu#kORInX zub%mMpSLWLbJQF-!r#9mhC=gg50}3%O}DInFzn`b6tmuWX3bc$ZO5n?`avu39MAJs5Q~#)8`HyD-DM6Yq#O z<1?$p7BCgZF#h@bFJugMt2+^1zu(5^VBMP7@us*Z5nER>tjt{m?7779I|m2Gn>Czd zgTkG7sVWjPpkmpcV%ZXEJkDi!x5Mgtoxudg9N0;Ib9tv+hg{p3yTMt1h!@i{>ki%TPLP~t zQQ6D3?c*On(Hg=~0DE8>Jj6|HmZ)-;RH+gI+c%{nO#a(=oWyMl^N-{ubeFe>CPQFH zvXRwF6g5BPv)X2BKM?e~ySI(}}?4 zy$&_&-U-Pq*w?<1=x`qZtr_9MBs5>qz&PqBD(aIw(i1q)8|eufX(fG>c=vS;=MhW@ zyU!#UJGOyc7Q27lLjSlDdu!~cnNc(@)KTmu=~y8njst5@)ScKfi0!rJNN5m5rxQG- zfG><8-(}SvC8S;wge7wgmMd^Fu()=Z#k6-=JS&tln-{?rXF)(ji>v6A(2TRDqPQS@ z!9JfLY)%i7VQOMg-Xbyh)$b>YSWCKavm;i;wi@;V4@H3wU?s&S6GmArMp;^x2*0Vx zqy1^O;!w$uQU2bOa2jKXyWI|#Zvu{~?9uCMV5oKZrlvYO1z4^D8&=LvJ0MPP<-Qdx z{HkD*SrD!l6YQ}C)Adg4ur1J6_fAc5cB;gl7jPJ!ih?lz=Y&%)w7zN?r`lN14N;tC z)4zf>EK zzMd}MXiSb^9Poh4H`DI&6{Nd-3o~85A{4^bcu@|*8Su>W6kc+WmmneIAYZ|Uh_~mg zhj7K|JshK>Mvf@ad8UBch&$;wXJV^I&f=NsdS0ri5w@)|wU}c?N`i^<)G|SPz1AHu zz{odnW?s4~2uCiFw33cdl9#E{k5~eg6|F~lmP$Vb2Y+YD$AYf+gp$o+sMO@uD< zhf0I>dR*R{m*DFBZR8Qkgu)Q1F>6NZZ;7qQ8zLhyamx%%`Hk*kzv#kLd%g`mb0My< z-mgyBAJoP{yJVhYz%D=ey`*iE`)ygo&4>tc}6isgaJL{{Q^*fyPA3N(marO#0dj*}n);oJa>DlG# z{6kk~xDRxO`#|T1fZ^5RK_DU*XEhcA@2I!HOG@>N!_;)GEWE5=d5b4?Xupfv>S9cF z-=xJ}6RX7zZb7SyuJ8Z-`YnzQ(lr_O<>Tey6yQ5Q zT#^crJ=;gDt;=uNxzwtMgSyqD$KYoIcYlh0lg~+1tDZU!Rvfh{s1?jC23ZT1<7dJO zWa3_>RxtGqK7QAoN&qP*kV*onVM(<|2{^R^r(F8f+)}JmFKWlLM!i_bTum@31Y;L4 zVxa|?OaUWXjM$Ol%ah-*GkH9^Gs&a6=Efv^jHaZ`igi$$K?fze+{}f(jJwx&B=BVc z&NV2XmUMV1(KiWv3L(~#gVJ|!V-cT=Z}eq}^J5WD3%Idd6dhmk{r^4xBt#yDZxXiH z+Q2`FR7lY~ft+ws>KMNgarvK0fzn6&DmQGf`KlERCs&S+a^)kc?@h*h%;^&{mboOwk4vC3FDHL-AN}GKbH#H_6c9 z8Ix3ad2u+I!^lOoxg2V<%XbT`K8DMeh92vUqhb|^VUUPO3E0la_zHGece@7a%B~D7 zg2ss{mg=#aAz@5YY&RTy{Fmx4*T(8EL!y1v($l|QyHUyrwY{h&8MVyD=srs^{TQFo z3cHX`+xRqxPaF9(jZX|KYfR$Pn|MOF3K(a({4g!GG}9VqzK@0WJWdw-&DWX}iPK+a%!pDAD}f@&qN3rDMMcBy{K@1GrFcI#c>V3EZQS3+?|~-5sg|Rpmyu+@$3P0=ny*ozjVOF7j& zIF_|UQGK`6c2K_IBAek^s4XY3_HT9T5!)q8+Px{T_LaK5lCM${wg=X}R9BAUi;`9? zX`g}bv+9C@wZ6K&ft!C@XYlG9|AHL(xJNSXmr9hY_0gF#12?}@S1X^D=jfNADo7%4`VCdVczcV!v@8s`?fCpB0d2 zXW~qPR_3&fV2VJrfu$5q(67biOEcJL$=gy)T85{-e8Xd;Y6`6x6C1t7>Mrnt52n~Et5JBW~xLdt5` zNKsz_2IkqiU6OPFLO!bwz6ihS$Y295-?Mi7kxxhE6Ut0YM{qNkX_KSHw#he`Hpg`Y zz?qo}yd>^M1weE-t;sD_G_E5&p)r^HCge1$Mn@?uai^xASI_>wL=cE6%&M)5W{yE+ z6HyGDGgT~O%R_c5#%vUVmqgP^tsS(FiXnJhTGj}^s{=-YOdqmX0nsA%<>q!}m_T7e z-X3pW=2;!u;&Ap#@m%zLMEv+!C+)=e*>8;>m4flJ-x@zkG-3SguQSKbb}5B38~f{I z{2;=p_DMl!THkLWB|si}qvi&$n8T zSsCh3V;y#U-RH>?R=%J?Uo6Us$u;N(ZC(E1_ycisL38rM$afPiiPRox4TB#eEI|xR zhZTJj&y^uk0u*7^DaXh@g!#CcDje>#yt(~2aMyER)zF9>xNG@WM&PbxU)2WgD*g)F zgF9WFug2sA+cB)for@sxuEZdMz`GaQb>%Ma1CWJ3gMj#{oHYA03}i46<35$kT>hyx z@0S(Fl1e_;{Emi_(-*t7;oG(08*!6!(gWL#lA4}GU7b%VX-p`*T=#d`r2D|NILO1j zpeGZ+%eWoOb2!cx9hK_QCtRqRh5!@EWPX3^$2s+u9H@m|4lc{4_oU1J8}g0rFHPg$ z77q>}bJU3t_R(S_MBVYVB7Hd$qOSNb@vcBZ)U_XW-Zz@VC~ppJ<}iSG93BbH zL8LSXVQ&s1vl)n-oaQjbG>4I|U=&T9cfS3bh6^!Uz{7B8F&6R#BbW1c>1Cv+VP6qNi~B1J}*GvvAh*2fp{g zo*ayZBdM!@h>G5`;|Euszw$%G^=k8JYq`3x9d7nY#aLvVnyc`AwF5tErsL;5p7+7^ zpAREDrv==fw>c5>3!cK8V)hq!y`J$b1!Y-zVUq5hm^v9!AUZyI|M_HQ(tQ}*cUUZ%}!UT#393ceYLl zZeg9c~cAL-g!=4YC%^$@ZjZCA;wCSaloUmo~z}Fjf2cQM@?cedRCe zpYFdk5mUIc{s1l&cKOqu#@B?pJYf7&(CN!0{&p6|<9XA4(0kHRW^lt#)cA8hS5ndk1Twb_e_kM*5J>v`l z1{lvGb9k#z%CU+If7Q=-BV2fk@O)p<{FEfd%B-b&Ruq3K0OR_ zj>CNDSmgy!)xLZ1WVP>2<{I+;dF>{93yndk$76n0 z2P5%onT|dX#@Y}H<9l>?Eg!oYXY&%?TaF*}oVO>a>fO$fyN(^z%NV#1 z7Xy0}`7&@r$ueYvYyhY3oUH0|tl~gc{j-RWBrcb~!w^FH-G;=3@OITchyqzj`Uj-p zQ@?8CtN+8(>tl0Y~ouA=dd8Z~&VM2$;SGy{p5NLW!$MHDxPc%x2)T?E3; zL^F;9?25Opy1FZ#tGkL})DX^yw|I*#c+z7;zynZ({NJDMXJ!(_{l0#GUN17w(_P(N zU0q#WRbAcBDu#H06D6mb<3FLD__SbiA(fZ~=W~-#d|IA+oA2I=-P@h+ZIXMtiMI@1 zV+jZ8_6vD+q!ns>T#>1JlDSbWMc0f?jG!g@e9HlQ`;r%ejKy*GbpJH8d!|%+Pd>cJ_9yg51Zm02l2r(yc)Yr%$5q22L+LGH>i$dRRX`lM-9 zuiD7;kT@75ba&;4n=BshlM{?z8Z-%LY@hr3EW|gEv?BV6Sz>7)deXmOa4^6r1->0L zgwJa)3AB9GjgO+A5QvW`;^8UA$Nz;pZZQ1V8gk!d=Oc76=BB-Ku7Fh00D zB=E+i+`r&;|AGMlefX09@jbdne+01mn~lK(0%aSoTQjt_WoXutz?KiPI0XM?YUc$Y9C%(fYDFT+IaGqN=Y8_`Ye~{?Z}RoRj$|uG8=N47>dV z<`3rJ?{a($MIdGwbZGQTzDs*yP3>0h9UB@SI%%kat4}V|)eJRdOZ|V={IUC!-_&Gn zlUF;>tVLYbNCTw*lkE@^w;u~w;tt;t$GG(J68UG~w{ zecH~POPQLiFL=AAQlEe6{Xg-I_Yic*vM1L3>QKjSwN{qgI1UhL-PP5w>o6rTM# z!&x04%GU4j;$YdE{7j8kw)<~gTwV5#|K=rmZ~7w_W`}nWdg?hxi44%ZFA;nR% z*yLam@adf0Dgi(n-ooWnWy}4M8>ty2qAR%4u;-*>NAxTXG>$0s#fN24^X$uP z?kfL+n%yTITeCZPHGRqJqP$_d&dXNb@w?8;QC`8W^KzBytTW|>!!SA zyUxo~-uzwXbywa^yUy!T_RfsZF7W6{`nkJE??rmWF4B9GeiZ59mOhLoo zc{U`^7Rj|hl}kQElQsHU^f#tugA)yt;1oDCztg1EHO%m5YQ3mLR4vtlWSOMwwP1Y6 z)IfYxd%6GS71d?0`fpxbp7)wRayeCne}YFQ@Q~t>;e0IkTW&0bNtQS!`6(;3yK<-U zr?!CfWlGPFe#NO|s1}j53D$laeUDBZmv?NrGG)F=cMvu zLp}2XjiKITb}4(&KYQO_$;?*f4rCm+YyP5Sjxs;_mCRgaF8h_tuF8DqS2DXP^TuDv z%v0v&zmnNqnZtf1vxhQ|`<2X|%G~o;GJ7fWM|?%QB0_Ive&jO4OW>zY;OiUPZTk#$xZmZQ~D>Lt>*$w#CI>V+o;|?q<1f|Uh2Nb zrP0OgZ1m13m>6EE<{T3T5gb9Sx5*OPof~~~m+*NoJv;+?4t_E4`aa;?l>UNOsw$Y) zVUqty<~aQgd7Non`g23OKe7mcxAR(ul$Y~apFclQ@%$6o-76wy#efX4Jp7Ml?Q!hOLt+=dfgJf7hhED3tg?>0-rx} zHNElHLsAM!$)i=>kQ!c=Wm;^pW&WG0G$+H$CUp`pf%BJcURoI1&ytD7DBibzcl4Eg zA(rrOcmW2c{r!E@IZ5F&;bSgk%2%Yz7d_{r9A*!r2S6w zUaKq|H=vIK@tuDLRn|oNC%zXbLlH0i=r?=&{Cidu1^xZVGjGr73Z=Maf&GrkJWUIW z!L7m|Ht<@SlsYjZyQfvwK0|ssx+abgC&f$SRJW*DjUTZ>-T>F{d@`$}$0Uw%K$8HX zb#oDoiB@@u{x0JTGOF2aHbcp&#`99$T2)A8N(2#Z2A*fhHLoR*x5D2rlN=leLNSEL zoLx-rK5u`6QJEd0!hrkgd~D#er+~I5$O)uEd(+%S_=kFgD+{xdKWM%Mnu6pd0@T=i z4SyDCF9<)<3%fDaix$d-L~y>!R7N(3xPgmygkWL}#pw4fg6p=NF2`o(C(d?>^-BD9 zS*|Z}j!U?b1d5vflIHPd!zDByXnKm~5{hzYzP3Z_r>cSgt#d}KsC*&p+0G7AyzlQx zZ`Q@sVux81cEGh?-_DWaM zESkwd6bm%{gY1OP7j_!ei-9(mJ_}EQDl-V=!18LP{_qYsjseF&(*~6dsO+Eklj6st z1$7K%h1~Q7}fs>`r?mAlSc2+@*vr zBqZ*(eDaOB=-b8kKjxZ~RB>x=F%9V-JeM~XM_r2k7-!M#!_7!b?SXxST0c<32$*_d zbZJfe(BnZ~)5o)#EJn?f6keco@hcd71=+%Ree3TQw zCNaysXv9YF9^Teohrev#?Nnj@V?|qNisnLxB{mqI?(>D%^d5M%Yj#Mgi6u|&)I`=! zO>AnRiMA|S3EfHgV_o^Nv;(TK^1_CenQPnb_2vTry9te6?LF{=K(O{QM=)X2X*?kp zW68OnfolX3#JtierUHMY9ulP%gYCUii@{5vgPbC7A=nUXC51}jrLRyx z>p_9PUrv!(9<|GXzT+{N)nKq&4IUC`Y~Uo?)jjKzxA%}VJ=e}%2DX@iHEmhyAN$6+ z0l?t!hE@KCi5gx9;Pv;{_`DJ{Ox4rblx%ynZ zCF^KOc0_7={Ls_oPawaf#d8yMuxB+b%zMoFMev5@&g8`i<}`l>V^w)eJJ6r^{GHwl zJH1DzbbjC2Ul*$?*a^P#d#tK>r~FRu%;$k)=#!n#rq2Y%mLWJu(<-q}lP_M{#df)M z?6_q64PBWt^>oZFBDA;!c$w=1raaw`o&^HXdT?h2(7<8P#NDiJ^cj6Dj&4ABQ znXGK_M;-&0q0#S$;vo)6ANo=)uLA%nbP}=z(@!af@{wZgC~OX0px03V1j1i*v79#6 zUumMoI{X9YrPh;@^?}XH^Fyzi)o5h)lQZG1SJyS0pZ}fhdqG3n_HT=yc@Fug^U_+v zrok*F>l3rdh8iz**CM^nl)Zr9ih6WI3ocooyaqtGo^?>O@h4e7kJT`WMbYTCK=g+I zC-Jz(XqK`y-DFAiOjS=+J}y1xJ=g)`t!>>$1?PW7dA&TrnxDFccMx z%dR6Pcnw&XB@8^HP_nrMSSq*G&U~2hE9kKP(`4I6ns-pWzp9O2mThs1On?Svx@{@n zzo62$xnfXOp+7RzPB@TSPlH}+-KOLTHo06g>KD$oK$Akw5>mIC73!H<p4oK*W-{=PSR@Yz<}m%v-dJ{}C2c*GrKBW5>1T&Z4lmM^f1G zkEf@kPu`TQFIgRUUX6;u%6+Z5zxRrG^C9DcMA9I%Pb8c1{~IN+eJbUjKKh|<$X+*3 zgR!Fz0wSTUMt!p(3wI>z**_BM(DZy?Xi&*&=O^KiY4oGSaSpC}@#kEKzBKFf*vW-v zs({&7OC0Yqx!t)i&-_8DCymR$n%FATniIT&?8|ViMS&SicFjqpcOMt@`Tu+^)JM?Y z#!G5fBO4se0ji@lcN*#X$K#~bqg~gv31_vujQk7_943%Z*W@N?CXOl@6IS!7I=b2O z(uTh#f`}Wc%q^S}L&ps=Wui;Xx=$rQS~YKahjLAr*4WS*n;0fUkSZzQ!N-iPP-D&a#p`lRcMz_&d@giv2dE~B7aCI&2BMz21Cw8p z==hWO&{PIAtELP9ePTjrCt0eNB4N-R&EhRR5(K z>zMFYewC16qO7N8$u^swpU|8IraIcy+@rMcDd2ZnUR{_Gs4dZ8=b9WQ5Q~3!*?d7osw-6W28`jh2kaD1ULY377|Qd7f`O*GUXT;xS%zBMqUwfBB#lr^soerI2w831lJ_$ttJuIdrNI@QyfO+8nu@de-- z09Q_Q%nZhJUJS;NUVW^CBv#I2kDcd-MBSy@#i)rL?W3TTVzK?V9}|R>>qF(to$Bb% zM2_pS;R?njyqt}hr3E!*>qCd&Ott&-J2v7rsr$S-`dhbvX4X!h+pW^9buI7g?+-5i zGAF1bLtPc=q)&rHvpVS~@xFVbJuzCx+Mj{vcVWA66w9~6Czg8-sKS(8Q}Pf6<~3l_ zJ2Nb!t+^!tF;#r#vh5pF%X6fK6#oLm^obzTpUNU6u=MYY@1w;YzI8KFxZX|@<2QkCe{*qgVf}SQ ze(;qGZ)kL49#;u1USC-MN=_hp1^@X3K&J)WTUY4vRjPT|!-2AQ{nvMg`}uy#hG5n^ z$(2l-G(Nypr{LbZHqLd@MMZoOJvqW#kL7sCJC%LB=<*a98h)gLbbne;%TvF+1sol+ zbk^h`QfG^K^AuYwsT;G??U8?hm;aQ_=fgZ-1-HD(=WYl<3LdnWGsiMS{~BzfSo`)Z z?dyXFEpH2_+GDJzXPH|M*VfO}&>@zb&B7r0h1B@Dfh})ud86{6iFtv8PV1F?155$w z60oFAE&;@&kE`eRUOim50vj!|^;D(GEE4M^2k_d_9+>s@`y|^{OJ*4Evl>EL5!dB9 zK@yC#gnlOv+c1B>nxgUkej|z|`}^HpR8JXyzXyxv+TX{D?z6v77d>fzpD$|RHyDo; zt<^7I>te4rk2NVz7-@xJA50REC;VTztrM$!X+}HrK*A|5MtYt!MXL<6A`OSyD zq?p79p59&{o&HFuY!-aK(VM@LKPP!X42d4FoR(4`&F=qZ8I4UVHh=2LgW?T(x!gm^ zP5$uIuf!Xq7y1INv6fY={;ZB`leTvALThEl`+mHGR)$`Or_l3cehi52#>W2m$BmdF zQLa#5XJV@{4VtEtm$*`O#CtzT!IV4OdJ5xxFZf_z;4v=NnX$lYksPI9b~J3vjTL6a zXMF!krU|{fkm4+Nf#@=G481_pp1NOX94-*g#XG=E{l?n8!vfFKVhZ&uV+psse%M#pfmhn+2K{Q9coH z6~0P==0Eei$kufTbtUTol{T2sr-moa6Nu%LcC}7_zYvcSFI~#q zvSD{7{cSr-XQ(U~o|f;cJ61JVYtk&UZLUdF3O-)iUp4yZk}P3o zEI9dY=@@7d?^-u6$2;P^y8vw!1T*ddDHqf7+MY9&@XOEVO6&Dy4OqAkHt-s z()`l=)5)Ka7waaSs0B=Pe_HsboNH$WV+RluQ;mkTAiJ@O@Snk1ja30N?>BZ{McB&n z`JcVC3p!^GF*1xw^^x5sE?%Bj-EW2e+4VJLKTNsIeI8faf>-RObvmo=pdh!)_4@{~ zSsgvFq90d!$t#?;9_gQ5?c3Ht-y>+jikxOiQ#-nh!@fU4-vjT<_5hnx@+Z)AB2aCw z1)2_2Ihj_ht420;~&za9>$H8wL*!+|f=CZ_vJyrNj5Z=sRXq zFPOpeXiZlRl-7PLv5VcJ*`i^DR2RD%3~xWefBlENE244XBrsyqjRlY9LOrV(-jgHE z{UJ@2!P;%|M--y!W<=}YLc#HI#X>4LBDnZdY~mMuPqLC ze}g*69sMJag_+l%crC~PZv!|#^ZGNdc^TmC-eZOT*(rP~6bvT@7O%*w^gp|q5%vGM zE7-|<)$l5qagD%$nyf7~{eB1%rUo~wLt0nYn7<)IU7#&}n*FZ2dwa0o@?bUxUaF%< zDK03~TX9V$f__}>;)7FD+ZrW-rW%!s_da3^>#2xWvbtGYL{7f#|2JlKRC9PR6?B-x zo<-wZc!Mq8w{5e8+&AXrYb=rNLV-8o()=_o$t#)Aa~E1`H{SO-;F(pXmxJ%Gh2>T| zAjw{u_!)k?ng%Rl8MHum8s*K*ds5i_qdThOI0`CK>U$e0Wu79GR70)Ev6y8VO{QRM z@UUQfQqE93e1j}sv7%OED{`e_P7%|u94^RdtooV9Kw}l|A>bFAyv8bww86s~t8m<0 z6AZ?N4>RL8Y;50oJwo&*p0*?@eg6kgyl%cks&;Eb6VyQ4J%Ofs)gvwP&Dxku&A5jJ z{`lQ!Fw0!|+eu(Iy9YJ6*?LQ$=|L5>ldfaYD^&DqingI2Ef7e6Kb>kHB9Jo#a$hHT zshOCf7z<8DYczlFF3YFRqegGuwc*@Jq5u^|J3Sy*IvjFRVx znVY_#HaD2!mlUhapmOu)J7JaWuC>cako^DeKRjNs{^3B=Yc{+0@5xSF!ZSnDoUX`} zQ$ySHo%LJ3IMW5!L6Z(pc~W}TPus1C9<4!^pW-{j7CJ&pmteFja%;Kd7Aw(L+-C;} ztEiOJykP7YVtMOMGiB?fp1Np>Z$JW}R5vI!zb!9)NNRQXD|UpsR%>8O=9i!>hSg~f8=w(upO$y>$~`$RvtB^^8;qepZRuPW3svq6P}M1VB^v-L}It(2R+2P;`Nff z>yjZ;DRqjrFR-tG%YmEUy>r%W72bTPVGbiEJsX_GZ1nl2oKhXzGZ?Sjp$TmFUmJ0c zQEPnU4$e2Q!P1LC&92VklICT_P6~UzaZ3k4d%ZxHrK^2h9Xll<_Y;Q1;EmAh*}pR> zTNSn8Yin`iV0(t{ccj-J+ZEFXq_Ak{z}q;?)qx_1KFh2_`=if6`~8`3cxd~tznnI0 z!^v8nhzV2tUv#<3_6yc-O$>E-JhuTn&KDkdl)&*g(VHw^avtzFaCvrIaT$pzu4quH zC_zKXu2ddq`n|2J_Z1{tDG`3Py*UkU#tTrf3?2L_cK@*B?xCy)^Rje%7ub+flXW@VgHn8$3T2E4t1LJ= zyHvtpydz51FWNzWPpwAbuM5*A3}5#M#_RG-Ih=v?6e;llp$l&?_k2!6*7CT;(Y5xQ z0v|gX@7%|-8(voE88I3899_!HOYbgC4(SfClrt|6qNo$mT2xXa_04)}S~HJ%`F5xE*0bL+5((lyCc78(nwDn{ z(}OH{X9bl$N$KQn^x+r#IWiBqlm#>MJ4P5*^>A>{#hI z3CX)f&QK^FtHNEyE-?Att>t5wSnaLuloFais$8IHUkbT#o}l7xqypo-^?}8q`430MeYA=dkSkOk2w1 z5ThBp@skH??1#Dv!aK62^omXyV~3Os*g*BvsGf=ZY1SXq=F8Ld49?WkG5*EPKWwn! zoWG84V>QF!{ZnDx?--hb#AsVf>EYC3uD*v2&1kLLeMZwSY#ltFYM=!iXcw=b@nW zH&@EXZk8U_W8}&8g;Ia84<}HC=dp}VOxuN_a&;tANdAWlDB$pydo6{3kx*!#`%C)$do^Y@{C!3vh^!APmP(* zedRK6b-gp>hmRM^SYo`MrW#M?e=xz0mo*s)OsyS|DWLJXp8|;hf0|`Erp7Bod2_}b z8~5};hxwW6?+Eg3e;=ig*WaL-eW&ejkp2$)U;X_Lg}nau%=9;CeouM&86;c3!}ROb z^K1Q8kT?BZwl3Y@WUcLQPy$N*9oD(O&r!hjH^ft_zY)rt^Jo8}zliTn>rt#~OsDua z{9`O`UHK`r{IavZOdhPd9`!TJb3(mTlilyAub(1H@XP{V z=m5MW$%#(3bEshv{$gj90n68{|cBt2MpU9Q{zDbP5q*+v^-G{aVE8gmYe$zRfOF- z_2Jr$wh#V>0gQ8yX4FU)RHG4p!y#I5uU3w<_$}sk*4vU*%DQDq$@=h;E_!_5VWy`j(|2@m9H^Jh%#QMWmLrQ>}K z`;qVDzzl(V`pF!?oqlrGjh=qOxJs>Y{Hgv&Ck zTxL72d#d`WdxDLZZocc+)3@b~=<>zu56l!$hdv}Dx>(56gF_&U?s3yPxKe1{^k1>( zdK`89R&tUf`YI1JgA1ycnS6k-S)&QJyjp$rN1h;CRd8gWSEv?1!k#SbgS4VV;1Na9 z*UZf%;PtU1F_ltG3V-BESGyU7)nXIQQ;x#UHke~ax+aE@l%cnrbV#~2=CiF7sWk+3 z_fHlB;>mI4=PQ5d4@j=sjhs{TM|G+$nWcK>Dt=Je%gB~2DNg*`4f?ff8T2RqDpsf{ z${$KpT>pezrvl=FsM1m7D=MtmL_HurtaDjWxze1*k$g|~=#uoXUsY^75N#wGnnvsS zt%z<<>KmMCeb^f@P@-iaaDqa2{E=O+P7ghi-hL( zHh3qxj7w(a_-+xJ2p$$V9%7fWI^jRG0)|a&sQMJ?44b8@xjX5R)IVE_n(4LDBdcgy z%V$DTWc|u)dOX|Cv72qZ90e)c9@;-e)7FonO1r{tqqNvMIKL366d@lW6HmojWp^ay zUsdQOo63C(9C56P9%2_9k=BW~ls=TA>-iLMbX{T_vsy*N(N;ojNVRvO>b-jB){2yR zE~#?oEi?3!R#In^Qte>x1UsmMb3J{ilUF0(9Jbl2Z;@t^LMKH05vka*!DA$~A`kJb z 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

    paDAET*``gUH*W%FvXhwOjx;6zfCbBvi^J)-|Tv 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ⅆg3>5}+ry^95O!axD`m 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 z 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

    P3bt`ad-@gJSv8|EZVdy%|b0fs)%fRQ1U)K)F%~ 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%0A1HNJZ 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

    B5#(`6pCcc~Ng0H`zX;g<&?*Qu-* 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

    ZBB$?zB?$Ic)anE1oSot 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 z%0A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

    ^Ha@gQO<=fO(lV^X=V)Hbs$(IG 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�!jDhLzd5z z`^$2zd7u54Mbhek22$)nOZo0lC_b-@f^p0h@1IZ0%9dDmI|x4?0O81DbLa4X2u$1% z%*|mplX5>b$$thmzd454A4}(vtgKi>Hl!3M(#&;uS^`m9MfJnRCkOrx4?ZejpC3Ar zUfKid0Ue+&2idqb3OrIjk4i%)a>~~6lB`(7*dah~NICZ1t7UX0$qo2&*$)}kg)Z7z z(0V!FW)oYg9Kc#lHkRik`;}Tci9C@>uRkTy?hiN1=zo@4yc?~Qw~1uLtJz8OtylG~ zq@;D>Go&D9JylIkYF?0(Lwz51KPq?Gr1ObAp7Q{Bg8tAnO2LWRl$3Xz-yZKfzZXXM zHO!PJ__2EQm%l0X{MGVOhDwTcVLuh>5l}xD{)itlWdeUgS9tk*R8027YC~M0?O3p( z6<=}T3)3Z6gZ&<1 zj%jl)l1i--)KB@V>&RP@ZHY;oCI|)Uq|v=hbxK%n!~L+xQ^1f5MG#s8rgMwMHwKBPj-jR{nS3 zh>vA;3W0|!A~0SFt1&|O+@KhjOO2PM)m&hfVau@v`StNdDVfEY>><*_6%mN zeL47HPxz)}_+5)|(iU_JcCOT`ZrR$G(HpZ?wao^3wqf=76}47t0HhqcvDaF?mHBjy z%!<~4ho#A5G>;X@o zr(a{t+USGKS4>6@zNqh#czt)Z*S8bglG6HZr=?NtDgP9#TLX5GVvmcrB-h9tG^m!m zOLS@Gd}(H`EctApXXV=87O^JWx1pp9*d6fYmK5fZXQ&3EB-x8T6rfX{mj;EqUm=pr zzZA2R@PHL$wtwqnxzEYMGpg2rd-zuKrQP=*ln?j)H4*Utbby5Oad^c^6Z1%i{eXRw zjLp>0u}h|ps2Z1KbTPEwEuI!=Na;pV`7co84K$)D2`=o$b>55kbuj z?Yr?4o7HyfOU{9ntKI}W;gn0F-uCs-Fb72Kj$te1(@x=rZmL)2G49c)0!+i>G742( zXjhAockGeK8-ya!WEK&{n4Q)`eUypTZB>9b)owYu9`}Z34Q9-EQy<}7%`2DPkY|;$ zsGs%M*;J#O`}EMxZbtG`m4visYSV1PRNv&4U3GZ~Nx%p_E^CXc3<4=|TxHloJ^q@+ z3H3$vHg_Yv`I92Mll|i0X97`yP;098SeRVzr}C#beDhIraRA7Dc{MkO$MoP;OizxV zgUyO-)ZTG$QL(v47R0O$^OH8;hqLARK~GL-QEDKx5aa6krJmMCUU-T$?o4a0^j%Q& z$jMfk(;k=eF>|;1r`h}hNO9rkWgiv0mIaP}dQ&*KqD267nae5YI^4LGhD!sy3bEB^ z?hilU@|jy3TT)eJvQ%p2k5Z+An-pK({>H79zWgGmZg{R=CsDL0$pJ%3mTfe`(~4x3 zlu_^9YZq?gl(;^@56sV5iNr^C2;4q;oFO;RvD?n}*xkt+N20Y`#8XDlg%Ztq~1Cc$+fk#>$8r@1^Bm9dZ-c56zbi5PWk5lPa zVwUsc&bZvWg%NrrI)Nq}`An*UIzf3w9Mf^#6xR`~4-hs7LTmGa*Dk*BnY$WWi&AIi$C+sQcYWq69&9DIuX4f#MIG2FP*_*?M)c2W@lxw- zZi0?Jlm;FlW0pfvAtn^%N}FL~;@%IS#lp-Z_tJ!{B(#&&TqShQ5b|cxDy{e`#}{c8 z*MYt04XQQzBg1Sky%r2t%w^q*PA91Yexg4iHE14>yO`*?$B67sD|YR$t2Z;uAK9g_ zUm=;I13Ij~aq>i`kf7uuCHc{`rjH8XRl#|QLA(ZjskXvdMq%yGW(GcV=$+JTB)&3k z479^FUS2v5cH03Uod_*^aOBeavbyg8id z3TKd;GkiJWLoYp-VANAVGd>&9#X=-3QZ*>YlM?F ziO_3pp>g&Y$v7eoJ_WBUA2=8tNVG$d24BXPQblyGYR0J#DmjrC z$6IUfzs|EDDc`&DYPS4`6Qjax6eo}ZN5yKx+`)Z$ES8#VFA^pGd(}kQWdDvatAxre zwm4@Mca2gav1?+(Jex2}t=#7->UxgdWi%27TeUOphXu~z4%dWRNX7ejD&M2|R)c|2 zflj^cuC%ky;dtjFE2&o(M-MU5T;p9W8|DR&1Aw-ujq^22j>zTYvYw$G?y~G7p>05t zqh2-Fe6>=mb7fQHZrLFt65!&T3XAA+YiTbY?ta5n>Jic6jV@(uJ+@TWNMFKzzucI@ z&9T2vY14nU^%Hjk)gL*T){)8nC3#|t=E{U~M8p=h*-SXruazSi@hZ82%sR$ToTNyj zH+c6Rsm&<8Dmst&_C8B88~a7?$gxj@y=i!Jt6sRU^tSi`jQuhRg^OmcN1IJ8TDeHo zyzv>@kx_bObP<6B9jxoA=HYlX&pXv<<+I2^Q8_^RkAANnQYYHGT@fP@5_>BJ+6eEcH^BUK90vK6tvB1N?0 z&zi;2;jUAFHV16y2medffLp&Wn}Aky3ZjF#UfO|47;exy zNy#D|c(S5(M(|Uw(DLlP}D!Wo;)J08a++Pn5g;Bfx zEFXtn)_^T}PRrk><$hcjG;xd`dqeC9W=Q*h(a*W`5<3)H+^XtF=o_Jr&`mLdJc;TE zb@ZFyNOm6{uyY6BxBJZPGEyxg^$swmk7?c3jvptD^A1qndc|hIkINzEsnF8YkA(Ws zejV1=wq_J^ZiqK^iFt=Jl4SalvDG$a^{P^$s(-lefG4Ygf!`fyZ41L^%HaUAoh_n|$Kl-SZKS`bRQ|OEF=8+pUAmU*-Yrr2Qd${inQdJ&R84W3O zh?4(km_;N(AEx$B`^(eM=jAxGjd>aGG7+5P9B$2)+LZpg!~7!YmvS6*apCmThtD_0 z*Bgp}Ad3Q&cYg@X)LbxMx0B}S|X@svCsnKq?HY2Pnd?5pTDij~_ z$3sefk8kgbMCZ&&G8=5>MYRiA{X1CzwqVZj26>@!k!aH60)D$RgR8i%z$sd1nHKE( z$jo8gwJOAkjf7E>1q&yomTdr_pm{`KvZsv}zlCKDoC?^96T*R;!KLK&? z9LiCL9NDJgB0%iY`#61BaZ_{afZZ(DrK52`EnxWy$q;PgdqGBag%qU z`1%xHxnAan;iQvtv)pTShx{30z>v`-k}a`4`SM ztbvNQ(z3lF&@7%&>V}GaSC2)S8-)w&dy~9w!D-kkITo{1+~N#an{$#90S1h9fzrP& zkQzi9^WWIaF=CIV6)qvp`xH_ZXl$)1U2HbXYlApD3HN;r?$V6Y=nN1kyL8P z(OVCrt#NYxl1l7wJg2NO%JC2T2D9lXusmF*PU|u$BAbZ`D&xcBs4msfg_qu<>O6FA zqC?bqo77q8WaVv@Y3z8K>_Vr$D^z_8$u5zZPQ$MX4Pxo-^e0nj&+LS9t8Olxeug4J zb4jteESdqY$ZXl3U!52`@3}dQ6W0Xgun#tc z9uN#fJ|;z}NljUE{{W|wq=j?b@fJ|cprx6SYHo&|?O9~tQF!%S+Ai_LDT)mR?8CH3 zPreP9$UYvM{eS{#FOy3kG%%@jy2>_+Y))x1yQNPr$1^S@qsmgyG0TY+WO*>2P^6+rP$p&4RvT`}ioNC>r zs{Ae`RSM{6vge_nl7`e3DH(rS#T8PujBKr3{BbL&f2^vD^Y{}|-CyI?tpkDLkADJM zK`@mY8#*x|U$F;z>0@z{-DAQsCKYq*Fi@34P5LO2b#uTVz>TCfW~s5%ciXK3ip&>m zLfKYk*h_v3J=p90P<8hg8SGo@iDK)*6lZVrsp)Uwpl0X%OKBuT_E&S8J=u@LC^7q+ z#?S_sKXi990Y-)e%o=?Zqh4KHVjXchTk)Q#E*up6kq6+jTMbDGfvV%SmYTbJ32T9Q{(6B0fNch5lgbSWYga;H#*z?;&xNn|>C%ljd z_xSWA;orBHUn1c{Pbbm`yf5J|ev=6IxL3lZ?fGw&@WS@|0SUj`p8wdFgnjM#qY{3$ zJ^!Z?E^o`6W2Us-2-%*wIPc}?Ljrw!lV zjK4855dLfUdvWltR{M)rz7BuiOket!_x{dS`}a=yuj*eX|7)l9FU!8q>0eg7e@t58 z0ppgY$n$RDzNd1!Cg~%&ZK;pID4DWrhRaq^v?7>EFz3LpQ!^a@+j0~3lK18G6>EjI z*WGmO*@Zf%jw0Q%6x;!r?1p}-j0o(pgx>F}N*tAUl7k)J3@!bAys~=sXipcql&9WBTs<5E%8 zB>pnpbzj0QSGkhFYhu&+Q9BlULW!fY=&&P_WdQ$4cRIxy7gKBo-|dAQacZNTD`iED zP^al|#LLrDz|Js4E&I=tF;siK<9yxG1xNJ$9!H!VB-m-Y4xm@_Qdr?CIB{xgN@t33)=gRUgf!B`SdxWx1#G}#~-fM&v z20gDfgg?U(zjAh1Y?h@)-(o4MW{GHB@FSITi~aFF$)=gFNVpTl^x0qX&QLKW$^pjD zucQ0}$FDbltY1)~6ONOL*{;1nK4Iu8QJgvZx;83Maxx|DbwSxTHevl821vOg)0aNT zKIWA_9_DwK-S=f?1+~AA{c2ZhbP$zFueR7hz*Wc*^A)8pegOPb)F@i9Ws43WUaxvs z8vi+e07YEZ_c&CKc|;o^_DCRzK1f!TuI@jnFJ6*VepK7$FSeS>cn^uZt2kvxZp96| zF}{zI(D!*{(|q0j}YUcBr`Yr@;pFKAfEF?{md;a-^0~0R9EY$9 za@?pYjZRz5&vvM}*)4k_jxFo$5C2Kced!lm*i+TK#Xfe6)C_wv#o+#>(+1UfB7hZ9 zS@mgRLBPuNAT=+$RyJZimaCt>^7D~Q$ad)@nN!fx+Dl*D)jImN#N$|o1xgeh zodX*tDZQ##n%4Q#sp&##`pJOQ)8Auh_lo^4yNxUMb7 zBVWFTykrd@XIMWM{S$Yt#&M#xi|M!jdHgw8m zfCM_5YpMI5Auzn-hc*Gv>e9YQTlN69InL@@%2`^I{nqnhHz-#sL0Qc;vI*p6U)3&G zM3ubY6}ZDaUZ7%i9gZb%LZU(Yq@R{n$bM9*Mfb5wiPbpp4Qzw2Ej!f=6ZjgW6fVEn z&l%?0Xzo%G8p_EpeOBk~-M?)=(+`#doHNebFFE{!B>T`cq=pCVZRXqNTkQq~@D8+8 z`#-0?u08BQUsqpV5@+_mcj`OYLVfeTp+5AZK;1sx6E`$OoQ*G?srI!`?9Ffu`cTpW5kc)mby1n}qw?DEY$Cub_dVK@Uw4vs$I^_# zOz(3{Iq9c7ur0iUJsM^Z-VAtdl<|l zw=Z}jR4v~)n_i0DkG=l-=GN-FoLYQR3*5HIzM4AF1fkS8DgwRz41-^=^5lMmpEh!K z&|xUdqfChXLFv&)QK2)P%;f8%9;*HxU&ukGYAjgRd{?Z{son#n724R-d zP6DB%o)c(Z z`}afWiobKMM6G^yx2M|pWz6(r(AtN*B67lGC{7)*uyn3qr(O$Ru5_tRtj|1R-$#PT zvAIA@>}ceLNv!%?>>u^Ru)tg>)m+QgLd1$K477wOtxP-{lvSWef*Yk#%At#mij^<)sa!Pjq^J!S$uGAicX&LgqK!E63J}D+G5rr^vHsbeW-5h{xR7Gm=p(_2f%LB=2gu0-j_4@C6xWf(68yoY~yG zenR$3+Yxgm*$>Idak%d- z|8Ulyk~y-@en)EDC^ce;*j8h))c6)PQq!6CtN{NL-dAO4IKYd=Wk=wjRTH_=q&vWC z#*vZ@>2|LD<6}x~TQ0_8;ue`FUMuEEQ5O+&g_9;>ec*6X z#eA6j>rnC}XM*;gfpXu;7E|mv9yaZkGn&4m?^SBQ$#*J*_^Xe|f`3E!P-`?sV{P(H z+uNcU)Pgan+@Hv@uSruY(;(_Ohmx#ZdZ^xIw>~K{j!4%dsYr&$lV6Bg7wA(HNTouy6%6?GIHuCZ4zBbj*fS1V-ecepV2TJFmhJC92TDGlb(Mx42!k$+cx&eW)@)Enldg#njiE}yZ z#oCscaUIK>9C*dcw`Bh3%IADd`Ks<;UtVP7`(&k49uDj~(&&P@2$p3kA0&s0)nX+> z_ur9&w~_!pyJUw!#A`%|$Z;KUTn&P+GAQhPeV4BeQ+|gv{Pgqt4*M&7?t)D*twCtW zvR9`%*u0-cm=Nqim)f%OK62s(+Skf2V8)nr?;|HfSklTj$=|2MdMtF}9IfJYK4d-f z>fF!dR#N#ZU2|bJ)Ey655CQ%nKwBHDsr2 z*TBbyRp2psVU+hQ)8%k!R=qJVDl?NKf`jw(0^yr^T6@$mp<8&m(YjJ^z_B%xf5Xrb z{IGIKZx@`yXSBP5j{X5tKcUzqXOxx&Z#WG&J$N{s+GK%=UPIA%&9Og&%=mmTqFQz% z;>C>(8%J9sKN?4vt-HN{s3YXurk+nHc{9l$Ws-_?WB+c5$nS$?ordwnc2sGdaNOnO z;6g3?kij`hq3B%8w=eH%x2kJOqVl<#K%1usrRJJjGv5VI8 z76n|(^J?YM!wlUVl`YoDZ;(aqSBggo(P^0b;~wULgQD!ysW>oxdS)PbdaC`u;uUYB zA9~)Zs&711zpA1R)z z23C&9Ig+mD;UzqtZI9H{HoCSrqf5>a$6sW(s$(^gzU{tDpbReL?k$QELRz~BBMO;k z-?-RrMQ@ZX+8V~Rzb<-*z@+E~2)U=|10G*_skLh@Y`N_u- z3PZ9ytDAsk?H$ny+#xIV*Z4d%`itI=!+88yg*ifPWpjwXkV>^ zZS9As@$1?b6YkFKkNi)!FB*Mel*Go^xv1i-(NSCgmd(U(}mIlPhkC_&e8ZGM*;+l^fe_r=^@D}A1GiBV7chPG;nI8Du`tleez zhac*qho`#=^B=yaD)!pByN~WOnFCQ^22p+S{mam-eQ0}$Vd0S(j z#p_F;MMS7Zb1CG)P+Cj_g}-Kcvak;J*w>!p%!M*an1XXa74O*al_6hkrxwBShkfC@ zTZd@#C+D|vu+-gAEc4YvE58>Spqib1QVhEo4VfqtwelQl42=K8aBbj5Vk~3g+(4+w zrHA%#sMJM>rY#t_KpL^j|E3fOTlM;GTsi)d^m|D6ncI2=J())$xOv)4nBkML>KOO& zU5llO>w#5!N*#KMDPJl%g5xL1h6XjF1^B;2AvF>8NHlvp$1Q7C3Ty%+NxTUqY@Q_yi4)Bo`dtR0G!4LGR2Z&OFr=zlr zubmS(;<9hgXYG^)p?aF&F5I_7V&A&~A@r;ESta5A`MS9$>V~W`Ulor(G^pO4&xQUk zN+&s(4*R*Wwu23kLUe^30CmhYh{QNaz-x4dn)s3wAu2S%nYwresYNwk%)D(b0*#sA zFM~zxsqc|rud0v^$u!WZL%)>6q$jRUbm%dsLk~&p7Xze2QL!^r^SV$*b(;;z7&3$l zjQ1yy-@cxnGvPa`ViseTKxRmv>l9p=6ZO%0{a{y;8UoH)VfE9egOM%`Cbxkx)&b)P z$20aF4jAIGzKu;$cQ~`UoL%@#R=m-UCy3}wviSst*k-+IBGowZk5UiEY51Dd`hqvn zWl4gDPe|$yiylh zn4?!+ry%apvA3iN{s`w$uyNz@pk>=hTcuw_}O$a4@@5v2w$0E9vr z_Uddj_i{7QFkN<82tBS7&_x8*%GH~R)Op{yeT<*dp488tOe_C|RD27O1}*{+R`wa= zSK6;Xx}nwn&5cBw&N*rYt>Lhm|5>s&2OT@*27B`;sZ1-sMF3VT1vJ<`+iQTFggI}i zp2!ixG-|^)!4+D$*uw?nh-O$Nh6t9hLR@+I?+*KCt4kc~zjS8t(WW~Ce}*e7v0CIHHT8aWaDNGh4&;&iz5>W_Xys-5N3&@=P{cvluStk{z6tDPE3 zHCcXkT-eeY8^nIlyU{sGhL1nsm_Q8(yjSlMaAZi>)>Z0FH2ZIqpk2WOIh3tkwzDmq(5- z+~jteuSOgae-i%&7y;hKB4<+c+Qd9$Z@eSUdYtAy_0#=At*5vjo{-mYo7h?Yt}2j5 z2lGdP1;p=iWY7+*{lt|VWgmyD)I4Wc$&eh^RhYc@iC4db>Z4;71d25Cg!{+a(R+y3 ztNx9usr623t(J9z^Ne=vUMZEoqAGXRcbN~`Z@`H#!?>3-o=Nu8W2jbGpi=lLJiyfi zeKGcnrY0D`(IW_buMiNdX*qx)XG8a@!D!EVNVu=Gn}L_39PU9?9dTf*jR2dN8=#q8 z@Gig3q1xQu;2d`Dkr>MOqY+Kj7W*13BAIR``J5eL+XdVr1_ej(jQlM7e5bMViQ!>k zIf+eDF=f5=swCBe9ydz6qA~B>ZWisv9&`AD(pgeE)vleXfUi}P;A-y?ewhe4LCujV zuuqWbqM!ZYZ|FDkAiaDMQU%5zMqgo!$5d@t>PT@~lB6@<@v(({@E ztcDW+FU<*72M$;BXH?v=CgimcxfISAgLFf$+DZiU{z(m+cTp?YfnLzKUKL?KQWbU5 zOGsDz(7Er~lKI8<`k}nK51MZuxJ;<=73Whg?&S<=L^i460awbm!FLrH<`CwL^C^8) zF<07d(eYihOleJ>Ahn9<6LDw;EVr%ogmFMA38&nHr!Lg3&iIEE2RWmJ>={-!g~L>ksYZYbrSs0=ckJ&v(4`Wk zUdQ5huw1}XuiDQhG0ARZEs1TMYiZUfH~t)l82RVs-@*;PRpwINT&&IC6xp4jLlbTO z>LHeUwl5j?QErjAYxAF-mz0WZZm!hkugWh;RY~b8$>*i;DwVQXk3>}kcu`m)H4I5E zuT(W?^OySa%T*mJj-vUur2D)P-GuVe^fwe;az@dT44=35EL+Vy`&P5gzSZorZ#C!a zTlJi6t2CKkg6E90qHFK7Z8g87&)N62;OtxNclNFJSFNsujm@QTE{^QZ68^U`=MGAK zHo^W&;v+~!3HO&2sYVz3tPA@&-t4aHFrG_%`L`6E#enYrzhyv!$Fm*KQ15I9G(2;*t-`5i+iLFF zx5}tI+g6zi&aSUCnO~B9mIIo3@9bL5FJZPl+rBc#pKYtGEN9zls%rIY2DDo>%78xi z|K@mh_W$boZLzt~Ip{Rk8KEW&NcT+Ax$uiZAV;@`xz$B}ZLzjgq_JGTct5;Y#Aq~M zmGvz42Hu-QwU-qzH{rjP7oUR2VttHo|C3B6)Ptkc{?|)kC615gs7B72t%vwm=Ek!Y z-nAB`YAdwm-WD(ZC%3S-pn}n~KgNEKI}(UPqfsV}G3&MY|J2coo{%}LGU!2Lx?Ha; z^|YAvk$o8wb4r58nCB!zspm`iBB9iCQm-80L9NzQ_Lw@%2prukH*ER@%~&9^Gg;jJ zWCfEad+;U{ytX-*jHXhKVsebou@czq4A+6y?Q%&CH_DZLFc32E2TiYv zDyO#U^w$UvYV}n<&{}D*J(=2C`4fI_X*HKiyvp`KYb2Vbo16XSI`a6;W4g9nd`q}R z=;mQ=c9|W7du@IR!u38^WE;JCxK*3~vsNRrGb3%k5uQ$H7NK2PX~(>*&m~;g9m4a~ z^QX23!ZRdWYNu=&X~*Klv(ol^7q?>wTsTZ$a|nFE@Iq4^?Rf+|t<$xS{pKA&7l~y> znzF={wm8XLC4@BB>n3%6#_F!kKjp757ATTk;&!?8;5lIS+F@^hK6 zjd_%>6utsxGhgBl)rniGzG|cD=}xmgdRII=gkOgq%B5Jls#EP(68g%vog?Q@y46Rw z47bu+vW3)^YfB(thPIrck*U7rm?2wjAVr7FJjA{dreX?0ktxSlY=WKf#=f%1u=;!A zdrGOU+@5n&T4is)F^%>)vo&DoYY9n@aupmoZ zc@?*^6C*>}ukdQi`}UAF)x<|ir`=yT}X#64I!q@j~DrcxoW$T+1DBN#oLk>i?rfT!gh4Wo$kwD=wqK@Oc zOd>S~fQoeT$?zCL!E4g?2MQzPtJS^C?=|k?!bN3&YEzXPW=vgHXzw7CKAH}h>+A@R z3BvlR=HM27(#^qN1`A_lC~Mymz!UJb=YRT){NmJ28I3q2m`yGiaP%2D_P2X{jXvYe zE$A@H&r$k}0h{=q!S~ncGi1MP-}581KKSIp-Y>c_l9bfJJ^}THSS5(bPO3dn^0CmV zM_l5@OCQ&C%CGWW+?KB)8vCeodN}3H?LX+eU$=Mtu)Y0WYdYoc)c!}3@3i)NebOnv zYX60{d<{{nv2%Jj#q8L=gU{w}$@Xf&*jMR?F8Kl+7Iatme2cPnF5h2=Psjg*=!C4F zfu|GJpwz|LSW8ZSsJWj{^hd>h)O;f)-jwf z$p{wK>)J1Cf`zP_zpVAAtqdLSqGQ?VFJGyZ=TR&e9vaV78!TKQdHt!iTKTzBy;+0n z(p7dKvek|KkT%7A9)Hp=o~SiNwDa5-aZ`e#wPicZ+R*k>g)2+b4J&<>k)OWKFw@ui ztm0H(;bJW;CtMswU@|7~1;g$&a_$%i8_gx*>~6tu=DCOt#f2MayDs2r4i-inDC$Zl z`@?#xo>#*-P5#+fzxgrXJ>V=Iw6hDun zbQ}m|*86zrT5x#&47;`6>qSEUV_0tBcB25o2W8=^SxsW??!!rx<4t2OQoVOI4jU5r zgE;K8+^d55?sY+m1;c|}!NR3wb~KqOU-bJmo!_r_{AG+B?z6f>T_r^>LrOwmgt|uI zQB7UYf%bN7S)9hTq>Jx-1fP7Q&N*u(zm@6nffknW45N?V{MciBnJc_CtD0Dx-SK%t=-37Fb;W}qH8hm%GZ%-po+?~iN;8?Yf++9=^^#)U zt(%FvR+#j@CEAW(#bK3nzjIgNF zMUdij#X&{sC4MAug#wknPfWp51P_ST4Q`(`{Y#Kq_WJ4IR@_TxWx#AJjT>zyXZdBUhYOPI zX%ECxULwVMDAjDC7B}3eRbEewFPuG47pHb*%u+4Ia{ zR~$B&26wpw;bAgsZIXRmFx>kjKS{-fpOU=w=J1F$sYTi=i;4>)H-{(m!{F_eNJ+T# zs#HBKiX};r_5v1e2lSrN8^gWn`fi3T5&tYM+^K8NFZ8AD(95G*`AJ-12V5UBAC`ni zT$jOA7zwzR78kB1Q>{OBl~%ry9BhQ#c*ei-DCamO;owy*C1L!Vim&{`#E9?wll&U4 zrK_3fb4>nxI#JiAt?4g+*Y%_H z{)v8V${K=G7RlExNjQ)^QJdD>h16pcwT%lYwsDP=UBaK(N+&OIyCs)P3LHw7GUedAJ52~(@FjvlBR0ObjnEwG~7K;J0g`Fqyw?#65lMjs7hb} ztBd(MnnB#O{gMw*XpE8{^AVB!izP&@)An}}JPCLFleGO(jga?9Dj}(KZNUs(ySQ{l z^FgZ3E+ljPMqw*ROhiond`|wA*~Cp-lO^Fs5I`NO4fzn5R727txfJNM23P=bFy8Ex zWu$=#DmX0lpNInh>yvA@Dk$}UQnJty=^C|tl1WXVc-j#dln#IHcIM5QJYrzj*H zqGW8JWNojgPL-yf!+jJ)POm9LJ=>)@)yQhWWo#MYb?MURD$oN7X+hY1+Df-1OZ5sF zM-*=|?i_>yES2q`Fvu1>Q*0Xr5}iQv_Kt@FXKCPG(q+5kv>1A_gt^ zqSOJYf3-xnF$MezUs7IZ>~t3nRhXHwk~A3fzlk{=-kee+zzBmn^gE3~Wr!S=UI>H6 z8JbWW_&9?K7b`wjJS7auXjxnEbJ+9eY<`=Nh}UTquZlv7IodpqAey(5sPYw}DICAj zRl~Zm7VBOM+fEVd8v`arMyrg--u?l3K>#5XVX|PaEG>8v&k00g{Q{BQ1-uqegbV*Z zfr#C^*gQm*x120Zxg=#6k$s-xw4DL`_`C3``-KbVwZ&iG z?k3KNZ0}>Fts%Q=lM3h_A=RELxuMu>EOzl8!siHx+ueaQNe(-8HjLStN<73MpP&?5a^^ zw@O)j-hSwmUCHvE6--;Cn%h{>k&!)3L0m3pmA?SW9XX&eKYYkEcDI5E>U3*I;Zn0 z1Kg6Jb1GSc&d_xSbaqH4ntLeZ}{?Nh}B+aT()l5o1BI1B*)EiFcC|1un(5|?V57mx+5*J);3 zdMrz{XZFkr9b9QD9*l z*{dcBpog!RD|Yt|rZpFv`-<`4ABoCL0m>kB#P*QD?4T$YOtayJuz*1h;UV~JE9`O@ zpP+_oi4P>{AY81}@0+}ejI z&>La%_m&h?g|>E@v?ySt*~rM7Bm-dN!qG+=T~2>R71_qXiw4b2uq4e0M@l&DQ`k_A z0wc05hgfL__#8eJ*w%NRdx!|8txU{0w38(>hSQM3gkrT-#cKK?iI%p}n^nQIC2*r+ zQCecA+7>UQ7*rL)V`FFjWcrGbnTdgW8#i)sw>O@n_sQrs_ZFM6KxAKbvAMh0jB*tc zm=#;n-^0>h$eIONGofb&Z7Is`PKTJ(wm8VHHp07W+gt>03a4KKLpX@t=7wlsYOxR! zEhp6~B80XwG=w9Brh&Bjn>cM?3*nHI!360fgM$Y}T-7BYOAywfDj44eVO3*vO$e)6 z3#U8HY@?QKrxA7=go3b&jFicB8c}qH;}jylhOml?6cNJGjPz!WVg~8W*AX@>IpTyB z*udyARY+j_I>IU{(o(z?MQ3mZnemX-gi3rjthD%a0xu4x)zFfV#4rbCa58B2$67MF z0du{$-lc6n8&`@>lFe)%b;u|?*?w~Lm1`8P<=_a#1snAsw|%~ME{`bUNT7*Z83}vg z$4QnmsT|bB)}++r`%-=3`#DwGXPe{WJ6(AL$Zt;eq@r(s_@b~sSyY1ZN?Yb4*}2-Y zf5=@IsRH9X>~iO{2%@+nTx4<0joSxVf+l{|g&%dZMebdbACE&8Dj{+hR)Nbf3p}Xp zGcn#TJRokMC%aPV`kZGdjV(BqrG~j)ohGLnY-E zcx?N&_%%V4QPbt#{=XBUn+*ivhh26qH!0<}SsFLRfV&j`AqAY#a7^4_zZnw{%SK9; zE6E}^Hernd9I4U>=(k_EOL2s*J=eg(ljZAtcO|~g2tXtzlso#^XwEokm-pQPCuDaq z>mEEWHY(1?p_nUlqP5gemo)){TWL-9&HEIx${zrs;-?6IBe%%SmeN(|6g@cCWTJ{^ zJ;b;G=qlyUO2MlTvQNOZX_rn4xY6&4rme$yg6L0iPA!j9SY4?39>e??RS+h-h|%^b z?*54ys2+?t1Eur^%bx^hIQz7xf(DB8hN}W_q`4hCbJag|R-lz~`_4gab(;U|*iKoG z)wNC(Tj^sv<(S)HJac)#>Y{X0qT~~I9SPVF6V}-O7KiQoz(!k)0{imB=R!MELF^dk zSIIaOS2kD>9JQB59i;x2SP55;<_Zau1dUX5MYZb_3j$5){*eOl7fLRR@Gojj%;snO{wZMI;kLj}w)P6g#RlkWITl3~Ex zSqj=h6{`T+{6mGq3OO~FzGcXi7yw~VKzmMnR|_Xbwf1(Xhfw5en+H#v+|wHUgF2Fj zZ+KT;vX-8nb?u+YI##ki+F5_BUe1#9G_%p3<+Q1~Bd=7XV#zS$?qVw&FJMPv>59HY z@jSw?V#|FHWqoOrZXS5QNWkG7QvEkuk8JO%hjzOZ9|tO0N-rp^dpMmkxnv=w!S`GeeZ~trSGnWIO6}{Ra=4GOTi*Mv?n;Al z_aMhGKbPBM@`MvGeFp~xv%cj#0xZ++8xW2$mZNG+$Qf00VA|>*Q^SG~e-bGD%b&p0 zwO{U01sr!cr`;!4_UUW^WuC=EePo+gJ9*O-ojYi=hm5dWt2fX9C-GybF+AF3j6cD? zsf+!KZcT})w~vV<00fvO`)5#I?md+nc;oUprXI*5>Y-#V`ya4(;A53X4S2xg3#Znu z0%vPi?yj*Wb-Lxi(yI7C?jt(=6JagUzvX|V+^7?KT4Vp=_(O~nN`aF4S*yuOL7IR>jKU_ zba{w&4lak1kVL#k0+@TW$+1;K+N)Ii?i{De*@-GORi((vmKd-U1kH7vG*v921DKvU z(y((!O)KH0GyJJ-fQM@(tCAcIe9TWpke+E8O6&z!lRcAs)?`mn&`LEIi)ZoCt87Gn zHw>>1QsqE*{7M?=Z;Y2#BHNQm=IG1k85h=1@iW7jKP*o5xVBfoO8y3G`2GBHt*%I$ z^B?dx5cJUtmpya?7kzkXT?AZY-Z3I~V~ay2edJV%%{f~KCH2z73xd|UGD>qLGD|?u z5ln*GIsb$&1DFGVJrtD3im?tT4&TPf@$>aTj-H>dN#l13zs0!L`DI<&`kwVTh`C;975^*oIo`Mj%a%7z8`V~Ax{k^PRrV4xjnPMj~?8!C_^D(hui{|w>N z3b|IR-nwax4{S- zbh)|gi|7Y{DG>4+i)L87C%ss7T$mXIj;;^#_@j3@-R)PgI-8B$S@5XXztU_VE*A+0)Q{+X(uM>9#_1|q3DUpCCYWp=@FW0BRBET`UgR;JYn43)tD8vi5cIb^ zM_5rK#N(u-Z9Ncpcsxv9IXu&gEJA?2A;?;r$+W;)+x)vuYps^lw$}D;TWfg{-dSsX zthGf-A_araZpVIWYhs=KmQ&-esnLF+RoO*-^*WnHMrWOsWi7GJPLy&@2c31clYhkj zjQr45`t*bxg@pTNcka{mz!KlOwaX9JDDePle4YI8Tyvsd&pNf%{}%W@I`s|xlBeRF ze#y*~=+_)6cX7O5aenz``doJteOctRI*igCWT7dvAMZ;$eSUoS8|ZTxHhhj8qz;Pk zp#B@+IePLN`mv;~A7+Ps)JwUW4}1lE{uRId_(u9O)U9YUn_4>b=T+c1qd&Oo{(64f z)JB&dIyGJ;aDDHa`g0Q*9lFS_BSDuVuTgH+{xkZ6sC?La1ZCO@Bw;mxe|$5$&iv4+ zR{X4n>fEvO)VP;VYuc9*oh>r+1hum%vt{gxLzTq(Bw=NnN2Kfr+J+_q`HIBjOyN(s;w4Q}1aFH#1q%aJJL%wt!OBjluxKyObx2F|%qhyqpIvOZav!_O4Ne%$zpK+M7}A zMKQsxgkmpPLzXG_ZjkicV(%tN?^EpM@#)E)e#KsN7!y22#a^x)2R(+$&+@GDPxg#f z`Aa?Hcq2g4CmB82!jJGwMXBzV3TA+61>{~g{(Ibq$VV1Q>FI~m z`^sK9J3i);ypqwoAznlzn@+{jI}|H0oMK)6b+OD2#d^n!@gn%YYAw4%F;Bc0o%~nD zJROQ<$BU)>>tek-6w8bk>-w*Y6?7<;9xvAIYl}J9??2Jd9;O>Ha4o1`p9;<;u0a^f zdpy4PI@n=6qja<`EP2nH6ws=-_nbDC+&`(8KTG7#>WKmEC+jgn*vh}?MD03XBnjee z=U+@hjfAfA?MTu_ZPi8*J7o{8e#v?Nv`zeJ!Z4?4(Lrt2#rzwZL9=s>@b5h{7&)Sq zLU@Gnge%9%0}rVB5e8+$nG=`KVP6r_`vnnFiUJKaj=Mod$TGVWiA6RG8IF+~vQi%u z>qw!us{~PvqfZhUiVXqmZ{$mke92KLIV^M<2yaSOQd>fVRh$kO-jy=&ylAL+0TqOq zWmyV!2PDNrhi>}OybJ7PA1zYrI4L+u39`~TnH>(+4IPqu^_}f^rl5Du;2+&OY{bn&_2S_<|Mp-`|GTD6ePBw_l&N?BWZJaJ zS50}~o*Pg|BEQD%(RmMYGfD|&(lh)&AA290=|i898Xhpe6*aaW z8p0{b4y%NljCLb0l{+_ibgTDETo3l=XIEYpa0t8I?)ZdVX(HF^vO@p4_{#msFmk zD(BiNm8_@C2xyjj2SS7u6?`OU|>K4EkYV$v(_7|z{ zQEsMi%~?DQEXnWvD9~5>yqkR1oqep50^JqU8|yGO*0uR{;*20(Z+`Y8K5jGF+-9oL zle2-oUoUB-zck`iji|&;r27Ss{N8b}eC9?6sv-pyP36UrxzGntgRN|U%I*YIHb7-p z0+HeKer}Znb*xJiP+aNWsLfxbTkb~(=eu9j&5s2>PQE2!aI$+|FZUB(+bY2aXAcm>x(IAXbToK-SGchx!YY4i66%$PPmIusPZAa6~KHHq-@7s1p%T z>Gn$s5jcH_2~7v(yI-P#84BW(ncliK^g+{u9Z-<(e#d8Smdk!zZ>Ps^E9{wL-M5?F zl;5C^?|+b@@r@i`o@n zMuTX7-obV%4z)b<>Hk}y1^_FMhQS@2RE zQ5+u+?v*_+IlEFfx4<>9jNg0I=Q`0?XMU>9-y+#$Bo3wW&O9?D+4B-jRr&E`f4t-{^Ag}YY|NzQ%- z5OZm^lCkag9`xsJXor;chT`nNpPc!kLaD_F_fir5>hZ!xFq-rYV| zqt6`WcCdJqa=KOUj-FotfJ}BE(dIcHVBmRM{fkK7JKDS$9qqmSVJi zB?9_8NNZ<$Vdeh9^pkwO`h$bXikISJMQW!1g1#Z3B4C0=nH%8D7ya-&6Odvh?*`@} zu+Yv&(5OE&iZ|CbOAbly56Ab1<4;A$BM>I`cg}hB|M>gvI6G^*%5DBnyzkyT7q0k! z`M&!wF)!wBG@8#b|0mvepZj09@BZ3Tg75!t-*?YJ9VE0An*RUy-5q+Y&Pp+QuaYxrs4}t2g6TNhIM76SaF+X?f48+MM*exa@Q< zdF~?q<#=n)c50NE0a9=2*lqN}HvvOuz-3wbD zo_c2VIYi%jW^_8ygU*cZK{O8eT0@a@J0YNO@xz(M_$45@yIKCE;Mh6eGOU*sOL%KS zr@H&B4;(W6y2fYy+0&m~KI>gikl%)KkB1-lD9H@X=C9@OjgJ2gJ+cF_WoHIe2@6qT z3_t#~Caj~So+3iNb3X70&3tLiQspo{b#tS6fU>FQlzT=Hj%?4si=!w=C`x_YCjPTW zcoC>3@Iz5O@_81|loMY{1nRDr{pM~U8AnJ@YsAuq20!pjRlyUyO0eu{9(=Eri>$cO zqk+hF?o~GW)7JXg%BJn}nfpG!$Xh<;Y0 z=Alb?Fr1Ra_VgugmScPEHy5F%n~VJUfzRZ$qs2s%7Jk_?0~kbsXG@?;1@O3o79H8} zT9d`ed|8>YiGSmlV;3dltvH^^kD*$NRr+4i;QWFo2IUvbW|p7p^X|jL%RD(%ZuU0g z%ceHclz~q(c51C=BgzZp+iENL3boJlpj#ZUtWsJU<9Q850vbkle)wIYXp0jXk4Y7O`0N3}!3gIS<^p+6|n~d?i%-%`p45z*S?rLdqD=qrX!(Z zhJG_qKFbFinDq&c_2HQSP01xRG}Lm>8*KG|Qn(-}!yU&@Gd+gitP{Vv>jm&(gY)~N z?&^=?h{vpho*JKb3+Ufi&b||aXYXO?VqxDe-31-M2TAisyeHh%3Qd0HGh@2dzgqZ8 z{QGM2j}rT?1XBs3>ks#xLuIs!-fXQ>UaY2z_(V9UTba*Li%>X&yo?$w+!)+=of;$* z68J`2na_Jy!Kxpq*+mpO&<3@i%&#rFmHs4*W^NHZAZCJeU?tcRrf9atyn+LZf+qp{ zV{biFctUcMG6w9N2r>KSXM&jzJXy4DrhD@7j76?0nZm5}YVT&8y)hrr%v@Od|Dx?m z0HUn6KclEv+F)5xSy4>|WyOe=mKGy3I+KH<;FjjdDkuWMpjhS-P)y^PmF=6Am6es1 z8IdWVB5sLhidku!ej}!qrj`r;-|v3kodvOc|JUn1x%1uSoO{nb=iGD8-JpTQZA6!I>=-xL7L)?zJ3Ja||Ae~@W&xcUl^YGUxs1GsY($H@ASoVL z@tCEOYomV2My*N!e-ad`gvOf9i-`#yb({mK@PN!}9q{aV3}D+adXf5q^iToyP{^ZU z)F-2jkD$=A*kr?ENdMFYTPoLS7=gd25HcpS(qt|a=pCDk%1t$x!K&LH5+VrZitStp zx}!jjAsK&5McvU2U=5NSYhtMz0H_`StoRLLcb)}BmZ{IFhI1IX5U~{h9zv!%mZ-A2 z=L*&a8@_0Y4Skf64OmQy!^acg{?D0#DncLyB-EAr+FnEfJMtwW-z+PrvPn2ME9gj7#i$B|NUmgDmHK-w+&U#F%POE5 zU0E%zpW$CmGqZ7kX@o)9f z)<}JHgg!bB%aoS;E4~)Stp? zEbd#-=lzhWACDv0sXysES%Cv3>txPy{LpubR5LRp3#9&}7C^=Zk#3C_FSED*)V#^D3Aq4D7P)Ou7RU*9QlELNClGzT1Kz@=^-FcHTto}=LUsYow$ z{C#@-*uPJ|Af@GWw&&v1!1~8{-x?YGeSJ`SV!Y2ZOYh$-J&-y-9htLO3;Ujmonz?O22*onxk(4opv{KgMV zXs$_c=SEa=tBiXB4&Py`$^qpPv|gOv(wCotZlDEuKrthd%`0uBGQnY%L#VH-I_}6S zopU1oM(WG10^8wN9L|d%PsyLUqU6jufFC2^YrvO|(0~_DQ~@_4g3IP(2=rwMw3RbL z1=;~Xah6kG`nn3!+0RtLYfCF%#rLvL@n`wX_=Ce1PrQhw^~=|blK~OU9?Fe_+T|T% z)51!AIltuO`OZr0r@{v8HlLu7wO50_jF0$&F(WDfJ5V~HnnHQDuscZPQc8ApDmm6k zUv?e7yoLBPhgUT5gpT(D{K39Se&2(i8vLOW{^Nk(_%iQD!bMFaGw9zzd4Kp}?)>cl z!j@OFQv|IWv{=%+tRsQHfi!h~99%v(p!`-}`DX*mZ$PxS(pR30p+0d%rWjMhM>)ia zyipkUHb!BmLggjccg0=ARnB{sUjk|h)!iR^K8nMUr$zRyx z%_BFqbHyt%vtLCTH&caqd7eYl*EaWEN-^XMM4Cw=A?$S_cd4o!bQ6%u#%VNX1&{1k zD|iJ!+Q6SG^%jA!?1pmL7G=y|0i*^^EBOdHW)Yj8VYT-tvp3^Gl8TXtlnAdD6h%)F z&CWvvI4wbk}-`jImG_g$_x|`nDIOhud0*p3T=EE@2ha=P`szk2y9S$W&oV>3L$k1mdA?d7V{@Ee;)ITcWr(9>3wt{vCz;c z=If7cBH>Xp(q6d@bYsN?yF-3eiNw=h%6I$NW7BW(?FTkhln}p<3X=Zya3U%PRs#P+ z=sF)(jrt!kb<-x0S0lOiTtNcpGfJ31Xm@#~0^lL}UzHSrdzuGl=Dn|oC0o$1G85=E z`u_^znkoj1hIJeS6e|6*S&I`Id}Y+de3q%dP!8T%0Hf+_Qw5)8_Cu5H2xCpJCxl8s z;QQzD0kgT#t8-BXNc}yfoLGUZj|KFn7!LzqvB7D&$q~3~*m*O~GeB0}Bp^OA#8Y?^Y`)Mm2*Y=MB!=(f zov7Y%0Rkm(8sS}vKZ;qa2(Ct0jc=gFAj@ir13G(0;q^+fmqxs9&hsD8OS?WgfHx*D zEt+6ODQ>Ywf0`=zvQOnh__OQ*{E_`I<4N?xD>Y)Q4U^Uv_LG__YM7r549cI#{CO?q zuVeoEo9B;Y{=1OB@nzJ`Ki)}u!CEpsA_Ol@l@y1EINPok3j^K*ScUgz74;`2mxsi( zy;=EjF)G{Ae$6#cfsE#lk?QI5;2iw!iQg5XV?nQgw}Cmnt5%76KQL%!b>E6hP@U}+ z!-X^yimv4o?;Yngn@Gp0xzx>b*=VJShb&c0e1#yi~%0$&i42$ z<)>Jr)9xpL)ez28;%}dKSR6!JQ9Kwc7$q;a!3Y<^-R(zliGuP1QY*=~(9z&2tm&;% z+O1dXRY~g%@yd~P`~#s#9CBQ8nbhGMFrzXkmAhd5orhg^a-9o^t5>gwH6QMrqjY8=sQ%5g0{yYQxiK8Gb33EEm;+k_;cEUIGvx)8wZCP%0n| z-bqiwZ8JQXvs#%;CK7Gv@wNc>mttbg)u<(eTfIX49_4)o7&Q56F26h)gW0**z%(>T z*#O=LCVlA^bXg@2rl7u&*d)F@0>5!qNolMDR2QdX`cfX@=Vbh?j^8v@QcoiDAp9xAe+5>Cv zHbFo3-<-DO%{wZ|PQc^>CZ(%Du(Ps3jVnSN?wz?v#6sz)&o~Cq6E7z3Q2GN<;~F2_ zp8Tv-`-$|v1B|g4ZHBp%(8q}Pg8PR9Iiyrs(=Xd}Wwj+rj8ERhNG-I`?;zRx?I87+ zK9KEWixZ^$|IWl1OS~*ee zix3nCu^(kIU#5Wla&p=qri?om{NTywIaqD-@{5OdiaO^wAG(UXWI`@-UdgdG`iJKW z98=psih8_{Nsm(4Ud)6q#G@dWpFrfE^IL@|V?<=pJ9gcn%FUdGczTRSW*#(6TFqI_ zYQe{k0oaV5AApqsbqru6KqXM2D&poe0m70`aKG@S#xmSe{CFWSHit;|C5KqFF z^3=btkpXXqhUm*~K$15Tf7J2bh2vIq4JZ%IVH3Xrk~=S>5^7R*Ax3*U8+OeWU=zx9 z*#uN?`FWzj9pB|dWA$hIVBQ@7alZhaY^yCu!=s@O013~(Hu)45rtzp>a)%A~l^cK6^haE2Q}INre%Wep zo@qgxzU*UUI_3Up@cz^Fi#~BqMgW-jy$k~m0zJF zr7T2Ab%CjxPv0*HE1Jg|#LZ|j=*yhIhBeMYooU9Y2lS=9E@(ODQ}~R+o3|i^v59l? za=yHaWv<%HqoJmDI6QqTXYP2!sAQ!MZ-nF4Emv)6RdE#PQl(}o`Wc2Vz}#MR&WtI# z+x4Z-1A=}Tj&HB$3TSPpA%vslmq39XGNrQs&s1>_@~Be~&Zi`clyeF)|5L#t%KAoh zCX5X^l4%oB*jaesGVPDXo3wsqkD*5A+EJsvM?y_uMFWtf6$xJ++Kr^PmelI>OIo{r zN498Y>qiza9jOW{x*@LTG3T{7>mF&xqGES+!2`PfygI;|4Zo zeC_3Z8vcCfzQ#+md?;bVQwQa^pg`cR5xBPk_f7sPb|X6AF2cKW@#04eEA2Yg7@+@v z{}aEx%G{;Q&7!m$SG#b&ah=zo&G&kzI!E_*e%2l})SIilsUjNfsK6Gl5O0#NzT`p7 zbkI7l7lZ9`PK5N!;#+}NT8YlpyEuicjc>(%_gbYtLR^a>X0Nq)CLBptTz!JQ3NTQb zl#N*1vAYZ~7i%o#uo^kTqSFFKhd7?5+}RcvY4A$*8+ja!2iA1oTXnV8nQ)BjLiCS_ zrzd#J36hk@+4UTzdl7`lowfnodnt@X*IsM%mzL5U&Pa{kln>8fow>XVI=WhiY+cSn zdeI)MyNiL9!KJ$B2&e<^pST?W>Gz?ngIm?I5nI6X#a(R}j}kCEW%fN9n%GX~yo}tA z1@Z0%CU->A_e>hmPFM7c#?VF4Xg1fo!<4VESyQwf{$~s*HMP3iy<8W-c~^0H0mP;j zH)fT!1yyYxvjK-h)sj|Ms6lxOrMb4pl8q}(6}gm*EcD5;K*`8`0+R74=2_k!&}XKK zLgu1BC@7bexzd^IbCGK@bD5gwx|+G}WUi->OZK9_W~fvME9I*3#)!@@1qAd1?2F69 zaC$X5TdJNgAHSYvKal%zTZ8*z&ap4C(-QRbsKK@^j3IaoqstiW9d-<5o*qjOkH~f+ za)!irBMollBT<{3mGoO6YbvrT`UVNa^u4Q#^gTuugj) zIe>EX!3v_I+^1T(C>9D8Ts4Uhv2H1ErBaK{9MJ~=_u^1b+Jc~GY=eYPA8YH0Y#hAqm;np-9q_(!s z3aiBk+^84lFX_EMu6&J)-(X2pHnCP1Vc)=0?zLt7!YA%;YV{4?z&O&r7Kf+Gyv&1p zVaA5wDm}CSbDaaq7I24Zo)lsK*MZ8vSklvDA+~MPx7Fhddf@gbmmfbQvz3YJsuR1d zzo4q9{fNpB2;9@diE>JaR>+D%Sa)St%K4$sKWVD?T43tf7bR4#r>|d(Eh_O8+lO>T zDi8SjZX)MHQ40KJ4UgU_UY&*dJPoSQ3)IDefHUsTZzCLw` z?SZTCd*yB9s9dF%T#Aw;hXsW-8lA&u-^MB{N?|^s6XMV%d}9Uo)mU9>xQyKhGQ)S_ zx$t+BE<`ypYEKg%&qM59#`bubHHzGbhQMx!6tku~a5Imyqq6QtEJ3Y~7Z$&`$H}-u zIO^9yh%qe*tK6*C>}o=I|8rUv)50siQX@Mu@;O9SZc!snU@s(n3T24%s`paqXDe+` z5gg+(w`uBqjx(%xM}65&M0p0|$>q(O9J=buHcz`yzr=YV+PxR%$El9aM*Ka;`3p7$ z&#lpcKcNs3OE){|0*$~#N!+c3v&nV?9I=V8mk@1tn{bt6)Cp^?=h=3_D2%vapBG+*{AW`_&H^`(1J(vHjAap{|WNm%Kc;!6R46Y_OVJW?B0Gy=C@7yYQw52-i% zQ)^}v-F~DNM(TH9f+ICBTfYS}9I1)am%WRak{@Bi=$GIcAAm;5!+|B8wY4f0B3VUI zRb;sd)*Y+ZInGsIvMUUz^`+OK=9y48WtRh{t)zy7AKNtLD<1hCfvcrH<2)BP*g)4^ zFsn_-p*L|8RF{y_s-lZ+p8jDrzI{WllxfDFeN@kgsY2XK>*@Hh8{(LOv}HbVRI1(s z|N3N*66t*aBo%g-eo3O*n$4m$zoV+%^W#V+tA0r_te+9Oo_O`d!`AOcugnF%(ze&5 z>D$kobd2(084`~8|Ylt`8*~NxC&a``^Fuzn8x1C5UQflLLU`g!8 zvb%7x{C+B&NTnV2i%`wq4DwQDvnb=(4)odisLmnlyLNsoM+;FSUeuvncXB%mls}7c z0b6Fuk#cRw!H|$XA#rGO*(?gL(8&7IJ0Jt5iucf($~&^FkP&u4AQ}r|gnt8aHRoiR<}W(T%dx8>{C4pXh(@yMnVq(CKC8(w@-(@dDao z-q}brRqOz1FkFYBp_SuED<7+BBZvOofRRItx!$#Ctz<}!pS)SA!Fwm*;f*HOXyu9}oR4E>+Z$IsCY1fGFC9uPMCb4xCFRf| zc6!-VRNsyrpcT{6G0lcJRNqEG8Sey$miJmz(xzY5S4W|yI=cqc7W#>5=^}hAfViB8 zkQtB@Y(8bD_av%bNv`t_#K|%p7PY;D@dJ85Xo;i9j}}7MN9jxLU@)i($N)E%L9bY$ zorb%!VD=)MPa?z6mMC zjKzpr2@O_uCw@ug38BVKX!&7+j?e-TQ1AT~gge7A!|ovNF~e*ZWK(eSb7My^yJjzg zpx|GjH;#n%3v=$L+Q1ES1vemCsEwUx8sNpHxNmPGr-j84=2m2kC0*Ckz9BiGE@F z(x*5sQ4!fZ!(bQ-|B+L>x_LbLPne~!VqQ5;wc{ME<*CQz!0@>XoAM!IBn;l(d9iw_ zZrRtQWCgd+fiFKSJIx>yR+#eHTU0=}pwRmuj7B1hYFrF90=t6dAoX>iMm;+?5xtA; zK!ArH#sgynjLDvU2?_s=se%VkfT=$*rIT+T1LK=2ep2N+hS5-%A>Lv{E3X}<>A8}% zFMD1HDMadiK=3ZWm#_a+gZ8M>8W$T&kKVVC0wKf+u0L$OPU*{TLkX`Pe*_5xuaa*( z)>fGCgn_N~<>BB|n`KS;!j;m1t= zZd?pS02#y`UfvrZjsiV;M}Y+^yQVAy`odK4no64+vEy4PH*XQ52^iO@*R*PMQCEG1 ztK#sI1oarT#JfV#tOfNCg8E|kjV!u4^JpzZx;y)ak0PRf#suYXe$OOCr;BLnZRbel zY{XXdZ5YDComZCZ4lBA8+Z54t?U0jpkPk(8(GR`v1$=Ei&Gi?mQW}Y>*l^)w>Bab= zU(yOs<9J8HnFamc7iyuVm6xuq+E!xtjO3m6*fUPUb)j}8^ISAd@G&AWdMTZ8N3I;g zIF}Ohtg>3X%%O5SSy_2SFt|*78;Pb0ZlY;6I)LT2V288H&5iRhrCy8yUAgMmcI2Or zzFmg9>dBbzBbPf|81mjytfkuFl;9P*bzltdcnFIS0|Cc-A3&HYo+dvo2VO+9upY)Mo}7;k<=gKHkBvO0-Meh=7KD zjm^`-s8II3zE2hvdK==8e8}<B*p2iS|Mx1s(&?VEb#=K=Nhw46_srX%o-<-)oS)8`sOjpM8kQwdt%GGCr z=b8=}r7FBW{9XKy@Dkf~Q#LX;Si6 zo5_(N=s*~6*0j*at-89VUHOn`UlK@A+;g%8*7&|lTwP^JF+ zUm(^;m1A>vBmB#bZH3`MKvAaJ?%KGlv#51Fk5PpI22N0-mDPJgt=XFujNhi{dN>lc z!pu?L6O~6cz_q)+R5}6$2SDEAPgKADwwvU-Wf;3l_DheqShV17w%gK^PnMSPona99 znWLd37wDXfRPhU?e}mD=(w-jES+JK#I-pc{@(Nr!l+`auzz9Dy4ta8rha^8A*;JeW z@jgI^o*GUFM{P8k6RhZ|MD!AJi;hxWi9|e>xdRqH*sDkfhzSA&nap3EexG>^;O%DJ>^kZ`E+5O=MZasGIn>Wrs@ip9~$QF^p}uys!pKoxz0E{O=}5bW0>%Hr@YZK*hk z$XymzpBFdL0+N?rNv^~)Q#sf-#9DozwRi>uBe~Vn`y}Sp06i5qMS6Po=JdLlUlE#} zVZxj|6o=9bwvt*r%)T-V=LNBE85wwbb}x;BaAUog4WW9)sNGa0^58MG1$g=av0p6FX+l^Oi__L>=pE#TA?_#t2MnH%%ZYB){)dUf-&=iK- z)IhdkB*(ZXoDd&Vm2dZhhU)R9Vw15JKO=F1X)2Bz;!rMLXSS5%RJAyph!dUrK`gTY zG)y-9<*G5^;A6Sn@TW*!kJGlyd)$IItPp#WnNBe~CR?KoJ@sYkJ@RHaHb_*P>s!`t ztW`%gI@$mSR}?RBhpyh$8a~w+yT{xP$Enul>XPKXsNG68lPp#`E<#tq&VLC>E^=@^UgPh9C_EjbJx)MRcG~AF%(9>C1j$|DhoxTzXgkQ0<<}0HHIZJK=W) z$>Pep`98wM$2zO0psD=+CUf~fXsBV(W#2=(nnd0Ld|^$0aucXpJ{%uAn4^3eGT+nG z=$V6EZ{C^EVVL7!8Vd|&*J?bEr+xyg3C~@b+8<*f{gO#druGN*OYR4jf+k!ffT!n0 zEbbC$e-!%vKCFZdZo*9f?N8~K3~6e=H5O+#OvY7$DTS;Ve-lKvfLkDFX3%%4^7cN# zGQ~XZZ8a+TB_~X-*0G>E)E>^dxkiQJl3ZMscOb&`4eqYnk5lR4u0Kt#Z*Za&T*A&6 zVJ<({T#hBz^1@c-16rHQlS1RlA81pa)V4gno%j6!{fncXxH$m4wg!L%_!=POS?s;M zORw=mW0SWD`MH_=i1${AFs3H_X!2f0d3J48KXmxOFYkWjRU^F(>Q6BdLzH)p_}=Dy zzz6PE{1S2qv4MP&V+1!wcqfWs#0(w~_UqWTZIo2^8SG8({jf1tx`aJ^`4s%F!0$8J z!%{zEy=>+_MX1cqPzYR^#B|Auh!E?{Kk+wiQWwmlz9C zBT&Xw0=d|8<;2*rR2&CXe%ye)^fQ+lBEiXo$0G`lY@qo#^CZ8a$oS!DvpvGdwXJ-3 zr=h@AZ>P0_UovI}Q#_>x5rRjGxiE(1olV=hk#F^jU{V}*L;3g2IufxjDGeds3s3+TkUC8-0+7Jy67i6 za>ua_Vv(Z`^;IjmjARD^5-UZYczSHO2>Z{t2@gtAiMjcRFeslzE|WM< zglH@o0e0h9=|4d0Fb;J`r|nb@fDbWaya%smaG*sG?9}5{jJB+fRoSGb_O|!>rJ$H< zUKm89J{M)Kvq%2|PZ=;J==PYfk;jT#PNL9W92WrORoJeAJ*$uNwvPz7|9s~UC?ja6 zwekrz#nYoVPT(rH&7&86r;>+K-p^oQ`SaU73k~y-Re%-HutS=}sQMtT?K#SjN6w%RrcehgE))8|Q;gpW@cT^qK*GCLX>}%e zYaRfMbQRu9)HNgi1|IZ_IOAmZOgjvHXc~rpVoN^mAIglxpSJjy8;(C?a9sD)O8iL0 zt{kUfA+3!?`e?JE0&%#i=+t+{CVeyxUuWv`cU&g(@{DgI-6->zwE$gNzf-I5STrB8KKwiLB+tSD=EK#98;`hD zEQ92&MMnHf#k1Il@gVtOyxqM81-GmPu3<62P(uv$$c29ZXVM?WkHaXw1qYLvQ20%l z_`prq)ri4AUVW|Gh)9rwuZkb9%|s%qgarAu%BoXJj)&??zh^VydrE6CN3SyD@>%S5 zHM_7h0dD*C&A?(VM%kXl}E5h?at<_2wTzE3`2aLx0zAn4_gzHbt z6T0{#y4c`Qws;b8ykwoJ`P%z^C_C!$aV=H2lSSmC*kwIWG@}WKXyLC@m0vt z3%_|t92a4L_~>`A0rGCV442&_D_$8-#lP`LW0&WFMe!Fsnu>qptF#i^h;KT03+2d6 zQ!ngndTl+_hP5=XIZFc4vm-N^1!ET3mbzPfTtHG~-8iZf8W{ zDegLaeS@cqyCB?~pj&Bn_cI^`Pv=zQ*$Kwh4DfWpduh9v$;L+zF#x#7bWhN&K;9^3 zLjG@WoE)t*j)yBdiO+hcmmdLMU=Nog02QJ zu!@om)GitggLd5pt)83hx)nB;qT;E>BR>f`G;Ux|EqSe~TLd*{{zM8V z=wP4WnR&Dl_R20;MDn)+q+Q&TdK0A`CetnqO1sRiA5;)%*jCQ}ITccHRks?8kAr5H z*Y|N4eGi?Ii_+rW4h4Ua1%Hzbhhb>3i$#vq6|Vgd#ITM(gyQ`iJ9#6%iCfu`iLS!Sxkf7G3bQ8a|zHH4R9i7SI^nn1V96 zyap|)!mnh*F2IQtaG+Tj1w5k?bU>fF7Hb`5#-*-clT7z&)yb(g>-rmTYjFQaTt4K0 ztN=!gCMra(8y@Ov7jQlU8!5dJSZngn*SWqBa$dMn^WYimF)wW}!&G69ec{CK2>kwg zdu(in>y&~s!P{O27+W4t?Yk2EuEXz^;Q6i2v;Kwo|E?t1Yp~gdnTBJE$mx@{3 zNPBEQc3_K57TB7Dj2#VZvFR;gi_HPHSf{|& zxf!J)2`Q6Pvw7Y{|qnT3~};JeZQ{ z#Fo<{wyDHs7TDnD2<8$yu_d>NZ8Wi^3v6(d1Y^q~Hs?ufjXx_j(1M^)EYVDgrL}pb zD3)kv3t|bbMx|7-v^TF5#S&Eg2eC|Sj_vHkGPyanvlGh^&9R-GSdMOv?d-&IY;$a9 zCzk2Wv7Mb*W;Mrlc4C>+9NXE6WqxyPXD61<=Ge|oEa8|87L>CS%c;$=orPF7$8;7V z*&K@$N2}*WF}CB}J$6>tV%rb4ao@_J^K3_2?;F^QqMoO6-yx3gyW=r*LmvNT6pw9Z zkA>_V~&$u13=7WCM$*{KeuG(pTK3*Y1MR`QIAaBEQ89wsJb&uFzyTTyPka2tfx9NkaLACML*8jO|CkKN zj(utD^(U+P%W&z^wM$)-GJ44Hg%^gsuyDhTx5;q!>{hcwXXzf5;p?w2dHuc%M{Sm2 zhYm3v#`ccLk>LXm{PsZ8qen_**rUgm9-sU$eufM$zubAbl70IhGTgQ6tzAj|zx!B* z+qONh?a0E9uaaR+%`G)!etqsm8Qy$z#my6+9vv^k0RxN!Qty8{T85`i?L77RRX^M- z!{NhC!ymfn{jX(s;f2W;E->Bjg$yT8uAcnLlKqMdZ@cZ=+umr*eL{x6{POWH4-DJ( zvJ78&rQa*FwqJ9B3=baMbMUK+PhKO#yYKFC_xR~^BW3u_H-o-;`KhsIIg!0@4Yws-p$=BACqBtcwG35 z#K<`^Jbd`*;X|$eXeYyU>&{(wQI-2U8Qyv4u{(dQo%)pw+qCK2CaTjpH_33^xS8Xw z-2G*-41fOl)1M2IzJ5lA*I)nQ_1Atru$2r=rb|rSMm$s~L$~`Pch{HBeM^RKz4hi> zgLO$qWcc8N-Um0%{p%wcKJ`@YQ{NuH%_hT!hW-t+UwLns438gQcibJ*m@mWq`(N3A z&3)AyWH@!|uTxh)e(ZA@W@eUUUi{Pg`(*gtcS+y9Is2^#WO(t#qc5%)aPtQ;?B8G4 zzg55478$<$a^IIrzrE^G8LnNcUwg$W*A^MxbkpLSik`b?gbbH2uU-E5l(d^=*sfid zc0DgU?=Bg>_ulOHbl3D>D8qa1DY|FxEsGb)u%zVHlAKR2J0Qc@*!8hxO_@t%n3nc< z+Fifbj+SAoR$;Be&j~$WhVQ)d#5=uu+Mbl*efMp@?}G(DelNqix^{KvZS>U2@RCc? zFR6R5+a?*>Y`ts+`A^&-!|mJSw?F*+2M!tj{`-O7S6u$5QHDSL^zKgstUDISaMY;# zM*VohlFwvVUVdqL_a{0omErTx4|#rmUG$wYyzaVZue)iP{ahJ#>sHsz^H=(E87^A% z*COxT4~~?f*IVMfZ2ZRGWvJKp))&WKF#ZWH@Ke{c{fQ?UOD;ha<&NbLX;`WEdGaBl7ZjaeZW%mGwo|xUcK=GQ9NCtV`<) zy04Yt`|m&W{v};apUQCY;=PO4j466hhRMkZ$I+jVp#JFFYl~efyr-7yH1foig09W5AB5=e(OB!&hHj_G-$N zjw%^?Jm-13l(c(XhJE@R?(@f*`|D)*%rlwKtp6=`lnmkW2>Ng1#>+O|x~1e#8Qyr~ z!W%7*49k__q)DqLJ@fItA7uE@L){)qUv$ZC8E)M=ee0>WKa7&$WtZh#)-d_j6*Bzf zll`AmkDBb1;Rhc){6VMa_+>I2KmL>PlXq^pT!x8>_a;_$oVQno7E61}`SwSL%kU8P zb*+my-cyD#F;y`y9US|f3=bT5;lPc~6)R`entmZ)7-hsBP#IUEWzO!`EK> z=(Q=~BX`Jf@7~Auw$51Nm0?DPD?`6;?RXhhR&K8REGxUU3~#w*=`9&gj=5WgRaMtl z4czn6Y#Dz4z2p03GhZDm!!BL&yX?y8c|wLKPkwds^PBhdlVL(abi$DI=dYCE6HgR8 z@$;@;lVn&_w5I5>rF;L9VcWJ5ZDX$JaH|X-ef0cC4bQfJUxpuj^!rDD#!VR@!`-`= z?@k-JsZ56Fo!9fc{9C(Bli`(DPQCJ2+MRo3n40=j>TO3?4wd1SEt9wGfBlo&Ww>C$ z^9!Q8CCrrJ(@&>9z4EYehz$SybH$%8+}%u3(=G?e?4O_oO^~kqpO- z$r!Wtj-_*DSX_Lvcu(2ES7g|;=dPaLHRS&y!&$S=nbrB>HqXj%)26gdwI40NScY%B z@%|g8bBF&d!ykYA;K%rc?XSu(CFQx4TaMKXl;Ou8ANlw<%L9F7c-2*3tM6Dn>BN&C%J9UAZ6`jy@s~j| z3=ItrjqDs|km2CLBL{yJ_S#P}eD1k1&n;bj%e69`IPvX?gI0cXwG2CU?A|e}*QFUU z{Ohlcf0gv`PLbixouhUxDSbU#hSR3~GHu%nC*GE!!7#_rXR-AX8QyWnzB^WJn{-Ns z@4ox=yT(2Po|oa5Utam;ottJJlwqe%=1%29uYOL3k3H7*u@0`*B{Cd1@Y;cQPk1p@ zhM#`A`_oN>3o~Wd*ywINckH@dGVI;^VDFRbi>qZgbLO2hr!K$pqzvcI9Y1%=sUC4M zJbLu_(Z&vky2$Xe&%Xcc)p2Sb()r7CMR(#$@ zhI{sWzGuSduV%?GH}{R);p@KbCBu~~Z(Esr=&5&P*t&Ix))D%)m&tJ0Fw3w4G9k=kCWl&pKtyA!-*5l zkzsZ9HP!uoeB}`tCM69{dac!)zsd01Z-;;TzWa>=8J>G?*K*M)loUDZ`5{8gbF0fnDE} z;qA98w{O_&JSxNN?9a0E>NmHQVf*%m_ST!uH_0$R|GWIR-rKcJhD(d+^(hNDMM9Q}>4;$aycJGT1RlXv|(L52@MeD%ZT`JHNH z7;#Ol@<@el(5-K7{$ons<3q+SePQHxD>9{KCn%{qoAeyT2K+Ci+Wnb?&s@G?zbL%s^R$lshQth-2dgZH!W}X-aRF;rr{McU_fZsn2Eb7 zXYS*jDOiMWhkwJvtuy~(4*VV$i9eHLxDf{DXZzLQcD_XJWhv)QvV0y+!`dG{mWpj} zIM+WyADwI{xABat`Yr)?Js|^j$myfg@e4Z{%JtEu>LxgBisOzqeKdiJZw_ zjg!aht}Ls~6RO9yLE9Ib9@_oh^daXBw&|+x_Jqb-U7Zbf;~JZ8lTBB}m8meh(L2Bs zdJWgB!fjuKtyy|#-0t?{t<}|7s9$YcI^he`@preETzR*rYqUUNGaj&2Z;VJVuHuSu zd4ldwz_V7b3AbW}+IWDcO*Y|(iMl#xckQ)(ab?b(H_pmx^Mc)ok2~I4TUz%1xX-QC zHIV~7-EXkF7YgpN8xPrxC#}`%B5b+_yGyYfYwX5dwxu^7n|rF@P;PH)_1bW2bycKI zw{@VWE6AOW*Nu#a5{!-3O;|!*7m=XbVr`8lD6n7L?w&80$gbOIZ*4bJ*mT>i#$z_) zVQXvbQ?ORoVd;I3O}EOnbjnrJF1TdFu2BibJ%D6e`rECSJ8u7D&>Obu)sePMD-v`k z5{y6Es@F!?bz5!5qiA@zh}%fGRm_F-1l>v7Ce*f3t^M`{Ba*Qs&FWxrzQL~B#)5WZ zH6FZYN#ERCBtQ0=11;R1Y6H;?BocFAN5fXNLmNn0-73~e5EOJ= zOER-p0R|LSA+h}guxW)_*H!E?d;q}$d+QE(R&FbLnpHtx9|ff}sxu}`?KU=stwNIM zI*<{w+#S^rJiKPyGKYZ zXDV2)3j6(Qz{IuaXEGRC4yk}VsZ7SgS|M}?>7ZuS@@-m;da`fOq6R{oM`6LW=|ENi zB8lcfa7Y3{>KX{~22E_(gW!4KqTJ}P4^5RdReC{vk(C(1>IcxV?7U4ltSMPha3$H4 z4LT@jg(`%B?3$p}f$U7%r3oBpEQAeRsY7S|$o@hfqTMZt6Lz%xoj9o!Y)PCJSX=it z{GBxY7gAJ3(k}9KI0#!#lB1VFFIA?{O;k%~B~4XlB~9$vUG~;klho}*Z;+(*vK!E? zLa3lxGy!5iO8H_3>l#333KON9{Jb`ta6nwbG9H5@5CXNJ@khbGUZEzsl$TBCto zO4dC)X+m~dDgQ7w30|Q}tn-VLf2{I}6I8btkN$OW5{(5bOL1CsnmEl17ANdA{C5W@ z97ce=91N1C2EQ~_F;)53q)8o)=23r%9z_=szB<6LA5amDR2T(~2Lx+l@KZ^zj!V#C zq7P`LqKDVOaPkdJ9KyD$Lz7g9QuRTTL4{FQh7;c|5}fh`PNO-%1eF1{lf0@P)RdqY z7KH|6A<4E();p7X7_6VE}@~(~>laK`ZQkEKL<`BibvZ37Se+diDRYG}WKAG&Qgn z6~8o<%f0|r#o*MNwwTIL|MJ)*#$(v{6sFU;?foCko9fs;XbK@s6`C~7`;Vnb75aY~n*_)CNRQSnf_@{7jfZ3}SX)DV z`=?C{G|57R$p8P{vuCC7W`ZDCLz5LWmTFuYYdz=mH#WkbmnOjOl4J=sKYd2s?dZ9eJ}hJ|CuoT54{lo zg@q^P5Qri?f;XJX+bj= zgsQZg%hUhU55Z$63p8g0uFJ(h#QW1gm31KNcXS${mGhVj8tX5Rnb;SJQ9(5a%HeMi z^oF-VSF6tVj;fBS2(^SA))=OW5Iwtbx5y2DkkM;5itADBhAfoh`8IgGkONmPBp6Te zD2eM5#zxs(BjFE4Ev?3>*fkGFZ;aK56UnwswHRE$MjrmS(P`)BE)EMSK?z zXEv*>uD>$jYOS++rsFtLCj6>f#Q{%omJ_GH+O#&d7Wep8#D(Z|JgZ&>3?hbCIP(Dc zW;LS!F*SUI$A-nvl0CE^66Ay0O6vrii7rd+Q#DjZnK8|S}A|mSaop_`) zug!-t22aWM#krEaHXq0s1u=ZXA`bVR*jz_(R$|!d|Ov!3yPv%&)RqkcGkd0SDt?rkIyiGV{ z5e*U8qg?d{>f?Tr$>Ir#ok|l94Ou;waBHs>h3&1Lc>GvZ&P6<2= zoD`|=G?dF9qhj=(?!^+w&SmT_yhr#)(5ZxWoOA%e=&hClU z{p_~&X3|Q#y93Enhu`aQ)s@LLIMR9tj{0E9WEWpK$N4ij*AQ*!@9A)xNmuQvGb8^N zv$4*C1H)KT0p@g^{HmV$8<$b4tHV8SbAiNUJYcHc*ukRv(`;N*y(Ubz0WmmQ#<#K; zRM)kG?N>ni;{hTBcLDiG6HWya7{?y3R3=gs_`DjN{U}?H1P_<1y3Bqg>;tt_w3&uMRiqR#`l6aghTMEXE&ExSgqbZ3nY% ztI2p2Z3?sKPFRc^32ZS7Adf|N5?R`rjg7!Wu*Qwd$o5nKag_y)&}~C5Gx#UcY^*l^ z#k8eJTM3G>nIKCSlsD%JDX|H)+B%Zd}XT3(a`DbZMw&0^H@uzt7#(on}b)tPmt z2z;LLAfncTPM{B{WYX0Fk3}>AjX7mJ$Oh|b)tGi_M-e~;Y9xB=^!`IkI}jMvUQ85= zKtvFmjp|}NhS>FNMkFc?lt8``$U#m}4){S$&<}M-!UDBnB=%Oo06_u9cnp+8(?vh5 z1sPYd2qIV>_1Z#|_3Q%>7=TG&V>Kfi)E+^-nXgLg6wnA1Cy~^yAx`|CMRnUz5}gEM z5{#Nt?HjEh)Gk0(=c8FmNmAW50$<7s84nu&LQ*-B7LxgD(2iQ&*Q6x-Y@_HiwG6YO zL88k7vxqK}G{@LT*o)X#)!~3TAN0~~5bXtd2;X=Bd`if=t)e>*p)4qb_CUNyClp-+ zdY~9_LHNL~=q=ejTE_q_L;-98Bw$GrpO`B^Rm7sdwiC_ja8wyI6=$-o*o z2`*&!kf1Rx$wC*QTTp{76a$Dq#ei(P3bi1$P_7PC1%=sH$c)Yc?-LX>9OT`248#`V z*-Qo+2zGu;GEfmD0}wEwnEo9ZAh*o(%K)^VPX-ntsoqD~|4Iggdan1$K!Z;PsH^`6 zGC<9YR#662_Fqp?s8a<1lJFnMz?OfO0qXh%XOMv^q%G29;NKVr%GnTzw-^T&2mzof z7K-ES$APM|k%4;fvKR)=Bm)(y3@mLy2Fm|`GBA%au&^Z=m>(nqEB{p)*n&P<@0S4# zGCmntjHJ4MLk8@I`F~GyRnt(jfSklCR1O4%Bth*cCg5K=MyLaXIyz7R(r(bKBWfLV z-8=wU=^qC;x+1pX|1%CO{AU@Uu3vlx8Q>Vf(GM+9)%bro7%ZX;plLz|777_45B`TT zu=MZy1LQ=tt3WagHa=76v~hsUfqd*V!L|Y8z~cX(3_w?+!&{Ppc|kHz|6j=f%~{yd zKcVi6M5mykG-OFyj4-s!PQem_VuLYR!(olmuKOC+5DXzP%+hYy2y=6r$ck)h!=P7# zv%o0X=(9iJQXqI?w+dTmsc#%u{J$9o>d^pnpR|RlR2hIV_Mh8AFiQVvKCqIEa0VGz zh_rc{3}E)cp+Fe=YA^if^MMLdvO<%AMM4JV|K~D5sr<+JfUvkQno1$45c7crV2Lfz zG?Y5d3_xYdfG~upmgIb3KGhLvNBwlR^8s2V<*Eo!8eo-hYNpKv#LPgL>o8`kIY(oj zI!@Gd>$M31I2(*9FsrjRT?3~1^EkJ|yux*y1~qD3QN4~c1e5MNVfC{Et3XpQJaW%B z9@Kq}R?-Gy2Z8fBUo##BWO6Ld>X`Yh-7OYh;AQHMonuY~%rWiAwg(2=ra~?$?7~5H7(eI{X?U;rXK*E~1O- z3fu*+O$hETLK>Y#!Wno_{UM!z{jK6#^#EFnPj~;pwwa~c-*8L>Dgl`pJ(r`(>#0Aex+wGBR|lsxA$qf_3q7Y z(Wf^j(4U7T@T1D-$X=fey11wc_OnXGe-00P0NQf zZ*{+@AYb0l$LY&U%GVruTlqLfb4OlR_{4%8d34(q1Fv$?x4~|^xDa=1cO|ec<%TvE=!lj#qxefPaE4sU2*Gkl@r(OcI<=S z-mE9KHyPJ79%ak;et?#Kj@2EGJ6hK=b#vn%nc}WQQgH=oahCseySdlR-9qvT3sQ2^ z^CtR!I5Kj_W#?u@j>~YWDN)fOgYq+SlalO_#+&iKagmYTjFG1Ng2-+$-C{y+Nza&c zOOXadd}zNdLxwo=i=2*(f`Yt)knC>hj>G}+Nj(z_vL~fDGX`W#apY#FJ5sarT1;bn zdbjM;$}oOJkC_|yZH=>-=f%>Yjhgb%yu_;bxfg^Q_!&$6h9cW6hFbNcM7EJkv zq(Ob}R^gpqYM{*=kYpK{JY=LJtsnzLB1~CuSgfNEZAx<%i_G}6j7WCmrsd^k21c+x zDLL6Gg`&Ylg&B?jf}4^C8by3zMovbW6VyRV^9%Bvc|MvIW{*qB8K;)cD9+C-a5^Sr zOv%n2=a`5J6=bL6_$YZM;G{CEQJ7IMDWkxVR#fQBn@FPiN-{MqCmVDNN=>kVppy%- z(QvZLZ6QOFOl))vtKk1gL!I(d3Q{H(in#ou)ST=zbV6FelzeAkRC-20l*)F&*|fO8 zd|(ehI`I*JPSnbQMrCJC2~j^luUze?tbv*!f%2<|BeCxQbH8p5Yl11>kz_R)MUkLr z5o7GemKA2m50wo<5-kZDUBLbhP{rS;&C<@C5G;Gmido{%SkQbLHn66UTZfRG_#t)y zEGRZOh7}f_1fdU33BWoiJ}J>r2u91vpp3>i3Y{s=qQVdn4@Dv3vU4-@)R@$iLUg*I zzR00|gRzXVprEx4`T(pKVi}g`NJ3Zj%gzM{^DA+HWu)v%-?xD0`=atFNSO>RCOC{t zczT+~LqUm>6MVTPGl+=37Du7VnEW&gJvL166l*I`1V#o#um#QXFiPZz&(6=vC>WZb z4lxag@DX5Of7?I{)JH*%BW+@Oh$Y^UILJ0I*^!@@o$KtDmj=W#3Lo7>v_EQM5vV59 z(^CUJ(kABnQ$T-wfMtA?6(1^DVzMMbh*R=K+xbzH>-$8@ zwNbNoW=eKWM*5w2mOalInGJ@3%FVu?F&Id5HSRCSD9lGiGqiC+^tWJW>RvJCrTdgE zM~#fM^ejh85%fHU6Near((^D*wVT9a*qa3bRrs zWUv`oploAMBXCB31VY zJ|fkeQ}Trr@b~1r0--ZR6N|EQoY}b;x-q`1)nOJ{5!tnw=s~UDbMnS%Mv{OjqYLwj z3eqyv4p7;KZ~`cgu_dTE)R*zLL@P)rNe8{_$brd9o;W=L6Cqr$?;u&z=Ai?VHO zPj+EpQAUAJu!2#^euK`;2m;+qBxOBBK6A1?Npw+8cJ2hnL}!sudc-#|12$h?rlTOk zSyZ6Pw@ULM_|2kN(3w+6vs4}aRVE~rHG`LSc_6uhbEDZ}h^20j^(-h%0aXI{KvjRR zfHAlT(_H`*{avgIo9utpg3V3AXdt7~#4zi~$(C~uIdf3UYf}RmnXX}h?JJo@U{{U& zNhvu+8LBx$h0ZRD5egbpjBa_UO3g0u`T0CJo?_~Y5uKyTs4uRWl&Dl8GAUO{ zL;EHVu~__20;I$TMP?Qh^u?Ou<1I-^4zndGeuynGnNsLW6L^EaF#cJfmDEU)&e}`L z$`PB)n_85qYHba#?H-FcnKKkHDeE2}-#!%7Y`zb*4TFc8>_XZDP;yR5l$=tkIDCLb zmBvk^LdGOYV*%tJYJoP9)fAZo8AJ@HpMl~|&R4Ul>?{oALC|0tT294OJg5UdWVZ(q zN0chaxUUF9wj&R=O~!qM8sihcKokO;DH-En-=WDCkxvy}F>cXN5;=m6gS3o-((W&dg4u-A*rwAQZbwx<*7q&<9yI zD1y8YXcGm@SY*|RDjyx4oerIs?VRGsg5B?{NPyyH#=-(;KDi=53`OG!tfj0}x(Q~X za?|qir_lJ7ctu|XC{1P!n#TQJkGljivaq*(wbi<*fEirQXP?@=&d2l{&-NTt6c z-V|6~j#1j^-E3BFwhGXN&9sf^35x9LnolM*Q#~>|NP~(|wMI6`6xUXB} zlL%PHBwvkvXj*^~0nK;RpL$#XBNr!Od=bW-=zX?=J{`Df*aRN|*~ieO z8M!pPH6zvq;XPebJmS!}|dpB;bqkfgCETuFX1} zd5)pU{d)RyYTf8B8HhQ%TT0Ln@1vdQZPDgn>mYzJ)DGlKJ;~NzbVH!uNRWfmOSU8! zMxY!8&89#!=5xUj_iEQ@Y4J;osQN_f`%f$W@yH23);20X2skvHMd(T z#uYGv1OA*`P7E-vsdOXripmsZOv;;(ksczvM?O^~XvsW5-j3`-jNouDXL6c8B_xn1 z162j9ipjhw6Fv-oJ0NNB7;w(YnLq!GQ>{#9FU%+u^Eb(Cw+Z5kFTeDNN{Mcx!Vz9> zI*jQ~4wxQ~E66Jn9vV4ch7zL#UbrEA#xmO#>}4eM7NQ)Wg3xuWW=ej(YGDKy4ICbu zfl!6NS)|!otSP!+IKq+IEU#!Zw6@x9thTRj0=Z0(B`B5kRp&nrVbJ@EF(D_V(5bo3 zL_FirWqmU;X$OcX)pih?yqVb|;tDiZ3YkQdhAz+`QdQGapjlTwB~_52>RD%Mp%5nd zO%ToFI8HInSG&`i0;I;~b(V1|>#3SnvtVK3K%EJnNmfR2w^Y@MDCYi{K|=k|&8(_q zZ4~mcpr(yglaxBJnN^TQe~oX_L}F+?6KE1>QDkYKb{{k_$s(`>W(=O-r4)<{vMihv z!GT%6D0T%1Uy!2Okm^8Bqn;8%qh9z@2%Ztz0tI1k+zY@8C$hQ@q8g6@DGuhQJIyc2 zauDZ4bKNF% zCML#QAG>P3s;%CTGlc(`?LVC*17iJ*&q!&c2@-J4Q#g$@@pAYbn^=q#%qME&pNNn* zWD=di{MJ?re2!v~M_t}(&Zxe!l0}=1dxG+ToGnCx?jaT+U@_lm=1fY-$Y%?bf10TN^K1eGn(H)7JN$z*e9hK!c=5IDtJq^9M_R)Lw= z_Z;yZ9BvD^FLM-JRCtx*3 zUC|NCPa_8PJ5wz(Cc^tK1Z0?)6=?uyvZ!+pLRLX(Ny1LiexHd4{Hh{gl`J+mBuGF2ji|6hO981+{17n`wvT6NJtIrAHRjBeGtBXz+|cfM^y+ zfoT@6p^w2*k58f@I9NpU)qy%pRiB)L38cb!g2x9&vbqv|n;$L~O|(Ht&I1S_(DY4G zyFi@^r)OZPGg~ZgP>m!E!iu9NVIiA0o9A=1BOqReVaQslh!Cx^B$q6797cPD6P^Ud=MSUF&Yacw%JsHdw zurk7BUVm914FW8Gp*J*I$>A6CnLKS-hn)pMRpAQnjmXPd`$lWAgsLf2R!Jq2YzVv3 z$HF2>e5phhee3U3Up}Gad>s<>rTPCwTmYL2ZQ^%;sl@xQ>y*9XTh>K`MDsyuRXMBFBV1vv1b`KtF9ueaBj|e3zGmK0zcIk> zfl6~gkVHYEpr6FTbw1cSC=KAwoX8cjmWy#4Kvo9au0g=^VV&o5@e1-o`vmKW@TC;y zggDYNGqW9B4a>;Yj9YrkRqKPE57h!8#}2g*8rVOOhURWIm3%?6E$4xmxgq||Ny63u z-hddPLs+nUdJQ zA$Uq1|9mULfxpF~G9obDHmC}S-ZlJG#}x5PbP8f*qyCS&_kgdeNdNyYV8M>P>$PJ6 zk^qXGkOGmA#1z1KNrObv%uOg(*0!$euGqU`+jT7~>e?IjuGqVasJraidpE!L^UTaS zbI!dt@cn&vf3N@l!sMLu%rnoFGxM2eW}cbjFjzes{PlP!#bp?B)E*>I$dlUra1A;L z|K1d+_)VgK%{8P+2WqHpD9e+qbr)mQfM2Svrf@uQ_%%L!vU9%)j=#k;N8emoO--E` zO85n#h#jc_kuE;5eMMz$SrKbjyhZ6SO|}$agOyQy#Ci;_TB%g}VAi|rgB^0l6)kOCkZ92Nx=IRKYS7Ljumo?S3XhYSNwXA%~ zL^ijjW#y!czDxgD)xq9N8Qo^aYqqN~2A1&fn}*l3_jW2ckGJ}c3LMSwAyBac>h#M-T$)wV=CBi8ob zcHz})XGhyy29DhcxnV^}F6qv8mRRf4vUnhq)7>mbNok3nt`pP!wzu~5G&j}sHuQi@ z=|uCK#}3XIdaJ1KU3%Y?kf9pUl+5X3{=K!Q z%1pzzcC@sz3SyonF~cjfghp_8^K|0u((#v_e-tGr;TF&Ip^GJLQs0qitskAp>}13` z&2-(K;gkZc_BkFgU<~^qV|EkkoMdcbBzlZN;8>sKNhm8EZRaimX6d}b1V#pbVG<+c zAZT@JTwQ4?hDo)Rm8qIZh4g}&&T8#sQe`!%Db=E!IATdrWpPQ0`68N1K&z^qKsQuW zQUbs_Dxi|Vsllk8wY7q#p*B=)1g6R>3ya04#x!^*YC=h2u}z^WN;cj}wiq;lsoKII zkriMYNUv;G$+AHzDg}7x32IZ?v4`YIb>+3%|D?uM)>RZ2(qye?UB$$T$|)6Y8r%=( zyu7&UDr)Mgsw%4`0X}Oikv8e7Ond2cCSg8FP0y5|#uniV)yLpPh8m?;S3IIJM%5V0 z7$XW}hI(UIGs()#Jc+S~!e)vM1;#i{W>3^=7j;-|*@U2pcQ-r zQO!@yBXi)!Lx#l~i;M{jsim{GttrJYBHh*8D1%B3VyJO04eK+Q85;@F+lA!mqK?Zz zUvzeRYZ7h9(q=7LQ*EdqFK`0Aw0ykj*|cs$aB7~-xks?US=?hCL&93iKGEHH5|xgN zi<{A2NAnEk5@xBd4cyU-xsNQ^!>RXbXUT&Z8R}>yEh;u+T%aBgHRchkn1m`FrDa7} zdTMuFh7PThC z^WqUR77~crkT;v{b9%OqmTXExsh6rlrGswU!GWWnRLC7WKy6Yws@))hQW1RTia63(LyusxfSZXkLQZkRi`9sTx^o zS1u`;kf*J+A(KUy9(1C_jQGdZ<%PI8snW6vwy%^- zRsKnZQ^i`hhKXE#cC&kmbP^~a1ZlLoK*%m?Ou#CYzy&L@YKcdX?j(2&^nie(6~YC# zeNy15eNphFN_z0*>?BP6cM`0DV3cTgWSafqfq-cCs63b%Q?;EWL+~@I6oV=;wn!#e zDgwx2k-2xPMJWqnF@J;9E^Y%s?#Zl2g#oIm96D7mIyUQ$(o&c*kd!kKLA5C^G0Kji z*jlIi`$}q=0-y!a>sn8#Rnjk)O{yv{nZ%erkc5yhQTm2dXJ7x3efBP!P<(NW)x%@s`-6`-Ck~6mZ$x+MEdPWcfH^ zf@+7A{^Wd(YEC}IbiNUa)Kf=r_S=?5k(t?W{8PmhHNwYm!>l)$he^~#y@Oa>tasrg zy0BL>Loe65>N34f9hH}t$XpmO3Clv4q)ZxT=Y7=hIlh8mf@V-9U}R}QH$DLjQjAd# z#f2zI-itM?j(VtAv{r|EnBUqFnA}-7(_4W-xnUEFEZH*CtB*|4&eegD__?XndbaZE z>lb1#2Utu`P$kVeh|OQ{C@F9&BWCaoxQk9>3=C}VBOIb4%eAcob)-pexfZl_1h=~D z3=Scu4Ote@9d|kmD0|eDEGsX;N{mTcbah7Sv@CEpcJ?wE9`n@HhpRW9fQm{PfYq1) z(d|pVC}(G;FHMCzioCN}yv{3#RTh6JVj8H4$1MhV=?E8uBqw>Ix@j~~dORj?$5ar) z8An+^uRL`BU;J5PlSy@Z3PP|+5Z$-4skf2+OZB!qLod10=}=8$NS7YRY$=F&U{)-q z8=U%KvL!)uZ#mKDv+mA03o#F~H8a7|Rs{+i6W?VZ7`mb(6qS}2GCFpTfJSgn-zg1~ ztwMFxlS=|}MO8(LSp%xHY?uznRpo`XrIpo_0)m_Ma-!{XiUs3wC1EU%Tr2Z6j#o5D zQNw~~>?>Nyv(1I6KK8*_Jp_Io?8vp;Zb8u2kKj=&lsP6xEeTj0VqSJeC#RXTa8QXo zK_}Q@9D9~oN43TI`}OFqR~MrX!^v7Konb|Z$HWR^(S*Y48jln#c%#%8 zTe|dc#U&FNb+giF1PaNnVe%3}8k0IjW)j}fn3-US*^gNyYb!D=H7xVjrp$tamE`w% zwxcw>zK4xo=HSeNt0`x*WI7Hdmh}YlP+Y>=`vgfR!;3voE@Y`OcreJ}yeN+{BTyK{ zV4*sEWFeNavO?7Qn60q^fvUvO2=y21{y^aL05s492-i*`W}Ql+ER<_$H>&GHFV%7Bd$GJ}^% z&O%}1uTP~-Fm9Y^Izgt;r9$WBYeZSS3apn#sI5)(N29q)a;h~!rX5CobV)$1V1-ZL zzuahfa8+Gic5{`>+>?6CQ%z-Ebx}!5ruM?+Z_mR{ALu?X%PXT|V-RMJ7*Id=(j|YQ z(uxR2o6HGMJWAgeH5&@ZGQk9dhx^R}RFZ&_1)Z>zSICsNjuIi16dn{Jy?wSoZ=VF` z?QHmDn}&1_+<5TjJp(1{e2R4t7h?yt0xk{N%Eu*5t7?R2>E2{z$2Ok9f;9`aB^7q3y znjgsb4_{L;x~3BwQnkl(WM7E(sWxHS3l{oGnZmmZr0D}A$RMfVeqlM)My)+nQb@Pw zO^Bu)^DzU$Y+*8aXL1r=CNkJYYuY*gf1rKZMQ1c{0 zv38TGs&F?{KtTmnmPsD4`WtONwB~C7fa;=R=k2G?OJte^7J~kk8l%B=pLL5R*6srn088 zRJsK89tN%B>c%^9lWK?qDU%CCUZ50NxxtJDr(qOV_~AmI38b0nH_1vMRVL27RdFYc zsWV-ha*@kinpvzW@JQ_bVy13VZJkF$!YrRho=1BA%y3K;ea4g#a^vxsXv`s&l!@bD z*)tX<6^J!Dr7?~O0{X-ttQpWV1&m>9@S-e{)wBqigji+MDxiM3iD&WXIHkI>ynLM4 z3%e2)Lx{4;^pG_Z>S~LzjnYiiXs;iom;(p`Fm;=v1SX{++Hi);5#>BDDHO-tQlEwy zEBcU3XG^(Ysl{B8W3{xRa?w8GRLWc1ND;NZI*X@MPU2o-V-kzNRB}VDwVk|s8dt)o z-@F0TXTKfrDD%vYaZ(|+11gvah~O^Ngp3Sc2fBv9j_G?*#A*vo1I_T7QdnIfHU}cq z^JI8gWaN898zXI1PR}zX#ym)oiPe$=RJ6}kB}`O^boX3Io&q&PeX@6_?79pN!BaM- zw#;c0%o=vdNv(_vMKBe>?`HK;`?6LhjLg|OmW^%B_Mibv5D1ZO%E<|L_&Wyatleof z0nMCv69lrW+wSO{fUUQ?8*5lQy&ZBpGDkx)_oU|@#DidUTCWFd1fepu1F82xw<{06 zRv^#1c~q5+NFjvuc)q%28=gyw*$yj525~lyOuz-36-9Qu93$r%3PUz!!lQ?Zgh!0z z#tNW>IOZ)#71T(9&2~vjeUuvr;Z2A;zC2g+PE&g15C3jZA$e1+-A%$osGVD{-?m~#!f<;2f zdChtNvXx|kL#97f7YUC^us)11_#&VBbvCBE5|Ei^OIa|qPhbvr*oDN6NE|hcO_?&% z0JR{NV-vK%W!XJOgNBCxMydCnrLIgiX2PuOh*A@55ela-Qr`A9eepevNjjVCIfbTs zmU(08)2Eb`7Z(*)7uT50TVgILOBbr_$%C{JH?)rs!`c1_+26|P!pD#NaCA8n+wSX) z$Z#z!AWE)-hcxhOo`O+rnBen-7x008aV0~ZVHUjS%VR+UPF}E=@~5UUarPN zSG?%7(YjPqP!5kMk%tk)Jp35cD=2V%0=EGZvp^BbMWwK(#41xzB4&Gr>4?Jgh1Bp= zM_%KBUTWn@k{NVu!9hxf?jLRBc-@kjjz~3a&L{H9gcu~y?RXE%$x&?Vepa1V7+RNz zF;?Sz1JrV?{cDRRn0FBFGjz)hnxc>##u(CwlcViqCq;}|J=6*gCGWmKC_BLv?Xx@+KTU{dO zOfriV4;H~KFF+j)7xa&X0PJ$50k51%D3N9Otl455T3#pn_a>KBvbrWygDMQo|i#XA%)I(ubO4k&s}z`cn6(Jsw-QSdHe6x| z;!~ZW!lbeatebqFIyHM|TaKDif$~vLyT^rPU!9wGp4tE4j+pB)%bBi$o1+cQ(5BtIzug!;WM<5H&w*v&s02lDw&hS#xq zgs2&%oRF4zn5CkBb}v~j7a!TCE^`iYsCvNe6G<;?>r9=-xqS&%F^LGUw2bhMZW0h~ z;t8VnNPb|SY{FVq*%+$ZWqr_$Qgoszqq7GMwBsoaK8Ye^-H4<^iNNIM0AE!5vW@+3LABcZ&9ZnnlyChr1`qU zaN|3^xuaS?{uKA9=IF2bbaQ4fP(nrmoX#5rNys@JLw6eCeFkc$FdhP!^OWFE&rQo( zN{|Nk=_xZu5j?3Gf%(!wK(jXT#F4U}no99`0sm14{Qj6TE z@y$KSqN?hO@yV#i@Pr(r&@`f_xxH&R2Oss$88&Ck?y22J4I4Rp^aytt$?(R6f&Pf{ z&TvJB7UV-dG$lqY=Aaoll0_z(W8b{8-{%VU5}0WaGx;Smbe)`l!e?qYJ~}nN)cd$f zzkCJl?z3MJx%Hf#(!qfxF`2@=OsSMC7}fF0)3b^K}t_ zcX*{v1WB(SZlP2w;lR*d5~Cj~V0AE!@uwUxV1Isjgaan~l?OSPu3HE7re4O&HQ$`B z+scxjSQl%2yq|pe$^wdv*uFNIQwvOZhc%iWj>0v^ZWX&3J1JLU)IQzLmYTsP8)rC< zQh$DWGxIM8c!qpZRUD6g?kOcRU(Db!{pHJ1t<0$pV2FMj!;|CQclbdwUaLF4uwOnF zW1A4%)5=Vxoa>YQ{dxz_h2=;YWh+NXw-jHldHLv6+{sP!8o2XmUbTW&?HdB75`f23`p)n|Nh6jX7T}5#1&zhr0#G z^Xd_oQGYqVwLgEmE~xLBg(_K-Qn)vVI?0|_nd<50qg*m~-z#+}lFo8QzY}D<$0AUv z47KY@vgRi^h$mBzTn@jdEgH^9{GnXoGo7;)n4K@w^ZJiBrnSMGU0$f1^)JuxIR#93 zv&+*~rRF95%Ttt=(Q*zsfnu~ge|v6Azj9WfTzyT*q&#~+Ac~P5xRqspxlET}F1H(& zL9yNHB0US)ZB^F@Gt4U8(s)VnZW(?NlS`9cQGTsapEai1%_A}C&a8+1j*#ymN%IW= zeLrJ{UR%h%onmHE?J-97#fosc13kLl<=m%XD5$^aiB`EAT$C?t7#RaM8-FhTc!TSY zü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

    %7rtr1V2cSK4 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 z�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

    Fb;pA-n*k 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≈#>2Nr^G=#SRMR_Jyx+TzgnBS#9v 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

    2H4b){FPZW&6;b>lg2De0P`P{pOs-yGQza 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Ö?&4tvHxtQCkeS{Lm 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%0Ax$IADm` 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

    1. s_YM~?;tgJl?{A*q+a-8!7xJCR5zHq$=_wEzF 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%0AtkBlA#HIc=}|=v*`k&E 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 literal 5627248 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%0D@Wu~# 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 z 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%0Djd2fWLPGAdw|X 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≈om;CSmY{kL)6God{&}tbHtOVPrByPmV#n?`i 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®gbGtOVSX@RI%mAbnh|N zixdC(TgLl0iR0MQtNeKP>d$`$0b&gLs3Hkeo88I3m!q3qWncQ8_Pvg}Uz_WJ-7J0c zJYW0(jP8sxMD<~J!=5k!RjqPA<*V?)c&AIcH|fhiOXbU_KW*~sWfeGp3KU+jwYyFg z?LPb4lCAMOBBCq@b*F(YjE{Fzwr~=(DvnPh7ey4N5NrDgE@muwYv47|#n!;O8>##+ ze@fvOP>ZzX!Ce#^;i$NU4IBsB9fCt`}LTaS33F0brGMy=y(1 zRFC~Y+1KsI{Lw^+++(p~3T!<_W}dAY*$hzZII6X`0L2_`{ZD8{747xBl3i6ennDA; z^5gH>nyx_nmCG-jyILq+$3p4br6A%tKN1uq#H^K`1YLr#E zwLZYuWB*BrXS2W^e0xdNK9wb^lz52Sf3RrWrb<~L?T2YSFzV`+R#VYF%YY0(^WYP^ zdpGqu5=B>$bE8{D1yC8>gEvr6*NVDbPWLs!H~T0l?8&~H%n05>%6OoYVqhbxfGNU4 z^6==wY5=IouT>K}mGhJ-9$vnTF0As&UAY;vxo)gS`fgLM8A&mtHItjKdYf45*N5;L z(jm#TW=h0!pA zHc;|e1cE1lP>9AS2lMtmOWB#mSB&!|T(1&tk}UaTJRYbcjNt4}8}rdS(c8 z9-wwp!l*mq7dA0=pJ!2{?wMDNYVDKLy*V|D_Wzpp!-*2GqJS5$$NWg`w>mYa3e8{@ zYiKfHRfm0hu*e&%v^;`Q-_xH;T)VQc2f*%;MVK(lSTX5(b8N@^4jIL_+%ZNoBSY6x)_sVxbnkb7B6=y&egDn(PIX!=xEq0Uzo2&LWB?RCL)9cN zPs`$UWk+q-rtO(5ha{S_4@gwJg{a`&`K}kHF!(2Ry*aLZeAmdBjuxZ-X1mMF_3w*k z0{*IEXno5xfK{+Yv-s!%KC}X3Tb~)hQ=*-AD3|&p-7BHf*T$cv`V-6R*A~&h;cIAB zJV_ZBP2S-87HuEha&xgi;Vqa&0;&>CK0kBMuKwK!dN$vTr52ClG2}@HOB$JmEh35=ga^Cg0+#K4gxQ zWtsXFiOZ!unlATCKBVX12cP`9{G_fcEmH~%)AQ|zRJdnAlkRm;kWIJj1EyPQsA_ey`aaZySpTP@k#fk3I$&2(YmFyUUPCe*p_ z(sk+lX&m%vOiX*a@TAqD6GRp6PzGXbcWO?w$*Ax(gJATfd;5vB3hh+hEx(|=Ka-)@ zrG+~fXra7EUl7q5lkXt>v)vhz9~=aI#29xy$IDr=EC2o z$K(yB{`iINf)|!ssZ`;064Sj;>T^r6zNPnD8C#KVF#J1xo49q1-B==XUeL!>;>duTx^zBdZ!cF6{=&03+p5K5;G&3F3w1NpznzakO z33h$!=VJSfZUwx;uU8FjBcM`}%sMtE65YQQ8tq+!$_Hff7gzf1pJ4K_sp-2`;SN7H zxK+=Idp}E@p<&Eqb!>QA;#NGtJH{ls|0wYMrS-Te@Lvcg+PK^JYQQ!n#s+hJ8(cy# zmN+u+mgru{mngwb0V-rNn3d6C*8;-=>GzXuqnnV2i{DIick(%nyKs7LvJSMXb-LbQ z=3{QF=$pl#rRVS`7FC(+VYSAEl!2U^++SwmnLb)W>7GB!Gfh&a#Jgqk<4wKV{jHKd zlkU}YUAW9*jPKRv!ufGnW!sX>aH;&l1z3D+X;lT@QR}OJMg^|Cig8SrZ8QPeqP}H3 zR=ZPwwtZBBU06%_w2#H}){nRkJyyPUlOjWY&u4|Tj56S2Qa5sigmy9yyD=!KF}1gR z-;et%;ZgkeRIu@=kwiE5YK#^>55Cg;V4LsGv1@9krrdw|k5)HBAGu55_o;1i0VJcY zOIj=1_lLLICk;-WP4`svg0|vxZg( zCAv8tZH+tEe4gTqf`23B=Gbtjedqd*w$lr(e1-ICce0PJ zant=r(xv$b^;MO+RdM=lUaD~0=I!)hr@}gF)68klvTc^zBLw6JbXj9=PRiv}9s0HV zugcB&-3gl#-OSry;_>NNuWdgE>&hn8JCwxvje6PAxszKtRtNu$4(Y~~_CxPdpE2XL zA5@k-cXFFu2+O_$04Klb6(=cyf4Xk_=;>L<=1Og~QcnssS4GWfm61A(oDTcL&H-u1 zN2!FBuw_}?-pMcSl0P?x!ZxF#{Z&HV7e%%$3j-hh?8otZ)XwI^v3mB|x3cgt7{(*q7{B(X-`k8hhmIWKuvdB6tJ?KKO_bX`Hj2>Hjd~YOZ^pTbM#x>Glff_9^uI^5@X`c)7_W#kspcpT9|C#myWge z7qrK*NN?z$E~kIQDqP_)F20KQlj*GOqfzcOM8{y^zur(ns%-p6K0V7r;-52++{pIP zoz4^MoB`)?=*h`1GP+)+FPT_Q1Xu!7SE$L+3}M|6wbk!+a4EmqUzd+RSGvpnr-@G2 zQ3}+!HU%`KcBhXsx!pLU(^?uzF@8)v>hmOoIuh)l#v%x0$N4c&>i!`yWk^x-cMw>#HW*j;CgsflTMAz|7M6T zc|C4k_d!A}h0wNMNwn;9qE^c;?C601x9U5p<$QAc^W{TqM1uSL^-NNbaFB4 zJ;YnlRw|21*sh!1e_(NkjEeyX4VugxA{+gh!NL!T4Sdhm=fM;Fqyj5Xe%(EeaJH!p z@>eaFe0eB+DuYGx&!ZhlI@*3rj0CF|ZrR~pV|pcVy7_u`K_Hki1Rv8q z2|7Q2sr8GmOj0luR^@IoOdTJY%xk0D-2Fc^KC9Wud_+E|0ZI3yO}kuy0k`EYk8Ax= z)jB!NCYjv#q$i{_P*c244RE7J)4?I7U z>-~tF!tHd8(JABZJ;>|Dd#H8w%}c0b+S^qwBw;>eOZtZQ1e$#;aqAJjm8 z=h(PGNUU;g{!@~n#+_aYB;83Cz)Ni6VUf`fj~3#*Ts}CpxZF?Gez8dTm#5T4>Yy;+ z6ldo|xBUOUTXaXLrWoHFfgtU;>0uZ$J|jSR(U@mKw~9sZFvYWooJ=KsN=+M~iE=bm zh?HoQ+8iCG?DUso{cP&OBAqwjPb}!g59n;|V2#lGPevDN?L%Yonotj>P<1;s`;x`T z0co(*UmS8NCW7GGHNcJU+L=+U{q~{c&XPQvU-~|IKD2 zg!->n2bf$%2GAQ^%UA4(9vu`Z^cr}e5Au#3u8;a7;IT{F9|DiuC&&4*b`k{_4Sy33 z5^GCDbOuVbel)n~p_C3g)G3s-VfmUjcHN|_{IGn&*wTjO8vp4h>=mUzgS*WFjVxv% zCH^g~CZHlWX5bGmWaVs>Wy?uvJA!_z>c_}FewHiB)b0)z%WG5=J0zM+&se| zHL(tTH$A#mb?XAo$Y2!@d#!i4kA~88C7xA5Eru%FTyLNjSEW$FZ+YQpU0dpdM7R7| zc1pvO!<_v)tP>L5)xue}B2nzRMEAd7ZeI~-gZf|!!jD3U>q+FsmYBqJEmd-h1J*vJ z+8txowd6H6qp_i-Ke6nb5b;%#(xYwuZI++mzOwKwAiRCN{Ci?}f5*)nV#VfFg_rRf zTe><19mA|AciKkum(T%)696vB`<;2dteq2uQ$1^9N8KxXSN-uSWmpa4R*2^9Xm?6{ zl*IRB{6zO{me=btRv1jk@(6VB?EB+ldak+EI9-$H&MFo*0P4$UZn{|;m5Ug#RX^u#KCC=V{ ziO&ih$Z9;x)ao<0f4Lm3rBxTxrdrxbt%lT#F)@5i5iyG0Nhy(-CNN)%kV*GbujU~afq=5X7fM~9E7f(t1lUO_TQ>y<{uA#??fzXz zp$^GlAid;X2_y7-Bw_(DN{G2{TJ&aGJ^LqR99n>1F&(cJq(KOVs}g zOVp8!{wXedg(TBP_xY^-YKP4U{?qu}9aRccyTeL>q&u(_sBwFj0(EYDDbV0X7Wl!| z{g4q_{;2vfLA4GSK>R$0^pXO;lLjem?4tiaTz^XD3YQ5x7J`lY+j>-N`odRqzH(%qA|V723n$9?&>(7p=ReZ zSznG@oak;cem)H*G!8sAWYi@>zN%2!n0(lM-m01C-oKa@t0`(mm75>9_YJr$F7zFh zO>{qQ$tZ6&J)9!+1`aVI9^NjKirU&CIU-1tdQ_2!mgG)Q8V{ZTOiMIF#7nx@tYg?3 zRm5R3r@Ui#!K1Y|k=I*eaiwC(l<4Nj-grR)?-A+f_jw6i&SdkS%}MW;2uzw z=>3F&h>66)-e#zCubV3((Y@3rZPeLP8Kr(sbpO(lnLK>gi2Po#?iN~mSvi31(=xfc zIrQ9@i-p5qs+%!jgBuL#$A#j#yfSWLdGSfhE*=fS6$M9KQfi&9Ruln3f5B}#r$1@w zYW;WUDwE9(E)z;0Akj{%#I2)>D9_+CPrAFFmAc})HJWrcIso_GF~RqiVR zzldu!gqKVY2lAy-8@RNaHWWw1p@Fmq6HT?@z0WaNgdEN8KdoN2t$~%s{t8wUg8r0i008Tsc;n2{X&WL>mJ%}cl)(}LB>Q% zQRBI}P}lu+Y~&tDHZu7g3I~!SUKKlWKI==L?C>73*C`75Q?-j1$K=nr+9vNWV&g#j zev&qHg!*Z7+KijKGr4iKQa5aAoqPK>m+Kn8QmW5nYS-qN``fROs;*S>*=2|2`4ZjU zYiOx<8z8(P)w@LZMiVRFVpe`H6m|nzP=oz?xwi3nJtW=x6Uc%cd|YSnd9q$!q>uYR zJ7)0Hj9~eXY~MxLqNTem-uCMQ=0cL^ZZ&fWRdb!4>Zr{w5;aX#@7Qn4A;C|Gl;8S5 za4WVSrTsh-{Ab#wxgAg8byCjr=ld?dXrA>)&CcFi+t-HELfVQfEt7?^DPp3u_aY|X zHq<)Pa5t_54ZU`vTpd0aRwRk!p~N^Fmd4E5~G zC3%LIe!PsAwqFJ>J^f8crYjTR>XN+yx&CEqTy{moMT}(D?zXXyPW9qafR0v_mR9#{ zh(XQmXd|Z0Jse{8#lp@`oh|M(U4=U(j1GjgmP-IGeb4fkHo2DKih%2Qup=b6k)k8S zG!TPOyCmt(3NataO{>dJt; z-TUv~KFZFV#FZa~U>cgAdC)74dn+98XEEQ#Y=hY7rqBgqjtclG-ddrJ^zx~~H7~i_ z)*AhITQiQu?|eMmCAJ8HY}i#k?hAT@YWgvHX)V-_oyVSU%^1T&jDXtgO|p9pT$dXJ zWINn#fA^TQ#YC7&NZJ{Gb{PdIZ2X#2;tJrFdUJW$^&ueX>x)b_A`uC?#4qj}mxye#tK0W6eYJ2g!=BEThN%2ou9{W8zQj5qOG_tf zo$YA0V99fRcr!X__AQ*uT>0kCUA`TC{$;&Vu3N%hIvvWKnc*COt$`M{zxcMv{a$T? z?wd*xOBeGe7RyU6VJQ9hg7}^rTQ=RPeA}P0(@KJOu1#@k(C#S@9+P4EGtj%GUg7V# zh`=;?a;DMDJ<_@F)ak_MZ28iV4Dqh?D7Qd5bW^TZQ>3lv8DDDLiHeJiR2yB}cSN#{ zq89$|QlQSAR0>qPGyy+Z;lHMd>0AeHw?wyg$oMNNK#(*ClzdO$v}n^&iY~PD=wq_6 z#828w%S=3@%qz^`Zj?H>!{(u{se_YR>zKQO`Oq)u_pI&sLOM62PTNL(xy{}t2vX26 zSoV*Z6U^rMmrV_Wj>S~&&7lgCJ9dKKn8Eq)Ov%{S^}7{#7JY7|UWQ87KbPJN_v zuv&B|)ek=oH7Bv-gu+TI!Ssm^@Su6SwaZKb^hm##yIZj}?oJ=;_x!9V)r)$XdS@N{ z<8q)204j~=qCOQHtMQUgTXfXDc=ODC{AecofcrHAk>R2i-ej@E?kb}EVThh<6jj`2 zr9t8cN11y%>D|+Ej>8Qp8!CS^OdDN?QGKI3_S?mwQso*-fjW0^DbV2dEd{2y38g^f z-h#8jSZi^^7U2A@q+Its448DTxlV&e@7TpGgFvpbE@CVNN8{^ZYp ziUvLEhn~LK{FoFq9S}kn3F(p2Q5SS|@?bHYSY_B3iK8x&O720%g_w4xLCMZ*zNLO- zmc#~PZf;YO8Vh!!GN#YUDUx>*NV2CPb5h$;1N;+R#a(;u5iwiZ~N(ug%|hJ zd&w)Vmb_c2{Tsj0I-O-2D9iL!ibpTAcsF@`N^lrUT;c79@z` zZ9q1-`nbRejKsp>Huut<-d3IB-WO-{egMC&6}eaM3Dx|za=pzTHJuJ9_6L%D&vl_A z65V6M!=*jPJaVWWa0U69s>RGwP z1_esB2~q9auwzkQRl#1}o+%y>$H$&BK_-ikTyAFuX%xVPP%MYcda1;m9JoU6oTux( z3o>70zeb%wpKY!p#AYb{89KwxVM#>;x+-46NP*P-=Oe||Yxk@yD)BOD!|vCQ7Sp^R zz{tj}%cktH->;N+p7MGk%(PS~5v4k`lB|}t7|bcUVVK}g^1oz}~rbP7AYT99v(&mL&iCbbyoUNdSDax;)zE7}7 zq_r1n;BRz4onyap+g{~AO$~OJmjczU!vb1{(7@7e_tHX=XO>5mpk2dhdfxul=r&g3HNmlbu3WuDO%s-!_`Y*z;IgPrh){td-6TQThynsR9^ z4gy4UX#bM2IG|ef`|9ng5!;JaZi!0#ghAhGl@AEtGV8HD89Tt=S?7)>%@gUnki*u$ zAEcj|F5E{MKrk4)JIbG8bKf|hu@Qi67O>qN;(Fsh%5Sss3m*rc&I3q8w=OebdJLv0 zEg>F-xJYF>%^Zm*1zXqqm3Qfa`9szPJ>Nkf7UWm9dYA9NugRT&AaDPW-|Rr;afp;} zO<`WkWVwUF?5?%{)O5;~7#%~%1k=W@QqRERn`xtd|2#Xe`k=c(pWyzmI#vflSe6uH zc;4R^u?wOPD%0c8jYS#vG()nW1$m>3Dc-i0Ovi8xvybqJ=6YaU-2!y zrT%o=&r==zI<82Hg;bbnSUagL2MBH$hh50XuUM)*;jvwK-G5^j&ie{3mNtM(_>d2G zGX!iOu-TA)yUrG zj{YB6h2x%p_#IE1yuyCENF8MSbSdP?=ztrW*gnc*2-QWqRZX=y{ojd_!BfU*y?n8|kJ z3vY8CeWWShRuzqvXtgs8Jw_*92WZM}Z?cnq=gFu2BJz35WQ{+WA}4c&)`+bX9?mKV z!eF=9m)HKOsB0yDtL0TqN4?lS*@IK-c9Smc{cOD+(H(y6{j`EESfc|Q4TU+3!7$z_ z+Tzsmx+tf!c(x9Vfp*Hc5i3fYyu$v-%T2Y~t;{2Ij4XAQxerrDTZVZvnCJ-|%BOc( z$Hh&oSkYx+9oR%K3}UK;h58#vkjef-c$hoRpcbf0NnONPt(tKmRf_u+$8E9h_*t){ zNQbu9el~Z?3nS(%-qDnk*STz=cZfoiM+vb5n`Z4qyF~X*F%-i@eSH!WwDsi=NXY0U z`4y@LWU&g_;=SjJNmdQk-T`dNo{e^aM_0$jRCf-IiyDY287peXmLp<4Kt#Zw9`-{# zNYmrHhcfvSE1QmnmWl3JDn2`SQtpWDy0*yu_BLxY*BEN2+^I<;=ySqSTwCfE5w#B- z5c9BeKHm0-#;0j#`OGKDZ*OLa&+k`J+avN))%VEzai8}xI;F_(Jvfv{y}tF>onEqk znivrQFo;m#&LYzzaR4w}G@Q7Eam!s{IEl_Z&jM0lUC><4hZFD!zYD^6`1EMqr+^25 z7Xz*Q_|vvN^tezgs$nK=Wgd9A@)hneBxd+mG`u5vS)gAfg6)%9|< za0Zd({y$p}cvPEt?Hp#jnODwU#tnV*zFU3cU!g|oECz~u9ib-{{{?mPq>C+VGkZ0i z76UdoVtZ<%K|C=(vTV8kzR<&lP}7 z67Yj8DVnl8=(T~J_lIj1=skyg{C0lbe*KgJou8nUzy0(QOwV80()@q{IJ3+uOiLQ6%r< z8%Q8PaD#xxJ3OLBB??OJK#3B~LL#&0q9`CJ=jmM(@#TEo2&hQnCcro>MnT0>&v(Vs zQ+y=^3<&`i#23U<@fB2FdJPan4dFHa=c%5VoekjK?>^uEd>}j1U0q#WU0q#W{U&C~ zfEFuzL{v7BCxGPiH_#+T9#9aI zr{??>?~0Ai^{<@a;DFj^7ka+LP}#9eniS|fXQ7n4uz~k15yZB4=|~{4iTNMQn%N-W zpY15sb~;FL*TncM&J`$8@7%QxlK>u`n0nIoS@6_dEoXuR07L?LbSIkp75gBMdha-R zDwLobzrseaULwVvq6U!5%TC9eWUv_}*N4!#B!) z*#s8ttVL$1odlF20J=88TRnMb>lQf&0worGB81gH|IRcPzu<;d^=Dqp8bz3IrFeS1>zY^?pg`o-g1{-(9EAsNNtjV*gZ^CBuvV zz9C_6%gOkW1MN$@#E=j0qpcu27k_nOn{UjDdgJrzxL zG@)wl#GhJj;c&)Jf4dTlI(L-D;A{ehJO!%hRjvuNg)bny|6q7(?kuC^mxbImj@x;9 z0uJTOP`82If$H@RGR$D^xdP|ZxHPDxBjvD<3>Lwrp5r6yLRgcxqyATgF{#)bzJQ$Y zN@+hWr6=XBwfVf%h%6n1tG(2S?&&m~WeO=BGf0%Dnru+e_^rzikynp=${e*UFhQq! zH^t6hkwvlLB2-Tm&jA{{ifK^gHB07>2rlG|97=yQil`QTjq0<{tzv64tf86Kpz>Cc z;w#EqMT*DdeOcbB+jT>vVUP-AA%EVgfZR-5!+N)?JG8k2?VLeU$zW9`S>>T$B|z#NJN|4}jnSP|!+B+?XH?ATzz}g9!rnp;XhilFhW+5NETrJ{wCLAD zbQo9-KoySh5k{r-NisIRVQ**OVembt@!k6C_;4LP8+J0*>n3;ctltoqg;by==ca}4 z4nZSv=}{>gMab&x^cJIaySN~4mEA7tfjUw@D44(M)?&l#9K--4dN+o`yeP4Qxe_*v z4{xJ7;LnZ_{8PCtDfPH_PuPqLKXGRw%D*rhyv?fvlG_%sJ>{`gLC(A_@(}$Fj`Bd0 zY$v#o0Q1De)3~*2BoopIzl5x}#$<8f0CwROYENnuQ0VG05`xx+vt|mvt&0)47PdZg zLIxZ9!#8zdqsTB~?FRusa^aS6(1mqO=z(fxBDnS_N1!2ZQ^rBwF1(Osk^Ss}>SqW? z??MvXXu_TBg?oZ<57I#| z%st=eyHeSA;XX5_fwE6mkNnim*N>&d=}HqjV*gfZYq)=)I*ojiV;hd}@ICD^@aePR zAQ|3DS)io#RNh)#!JW4Xj!9Te6N4!}S$hlZT?}=;EDMF!a0l(?|A{SL6`zgv3KpJd zM5g%8y&dbv63uiy8&t>&6snunccz?lHDblSLa@@+Ac_74_t}%~t0)IOJaiAg6m<92 zbbIwd%u1ns{5k;YVIX!zX$csu|T~nq(#S; zT~}Z07L%}_4p;uObop@#;S}F3w+C5%G6t#&N=3Al%LZH@`)Rm~k4A%L1x>JnSy6#d zwx4z+TKLh^Lv#U&_Je53rN>^7R;t&d4C@261fLPGv{6l$Y1K6HP^#&V|D$TM?PrgE zdYk&mtCvpI+2(lcv4ixIqtCQ{+E~TaO!_pbUq(r=AyGyw zVS--S^oO2MDJE_h9cYZvKG(@DdoUup`)a7)XxHV4=d!0Q0GRl7cb^)kW4Qz|GkSii zqrE3;T5nFaYGjgQi`w#~7&Z?=pQH0}*2ailO{xx*-_EP+aG?vCK5_{vZu2gZ>jEGM4}y!o_#iG03qmRh+n@>ksL;15qs#tpoBO|QCMqm~6YjX70PiXC~L zQd~6}46YRHU@$62D;GK5qtK@>S+h_3C_>B1MwZTz56-t7)?v3ltbg92H;Z!WG!F-& z(2*AX6NU~rBDjwc9Yr7NH>y2OoQ0p4_KJ5cl~JPO;n@22?|a~3;^7lG_YX~(E{%7F z?7`#>RwiO7qRQ|=FCvsB9Eb4BA(TGOObfj-7SYT=A`$m9@lw8*_Nz2E|AR}*_p$@v z409m+)9?{_tIGFkW40a^M^XN6e9ktK;?h5fH@{=;SBh zB~Y7>cpHoOcWXxI#0?`UOS{wq$1v$IJsR7DB=GeC`6SL@YNIBz$lQrxeoq)Qp-lXN zHM85u{h%o2M{UkH*he6-f7V*bkHx^QQG}H5Wp7z}gc#nf>b9G^aJ~lPe_qScq)Psj zqLpUjg?b*O7y}0I4pWsJ`(s#_4TL=7Ig7u-!qOndQvrPGez7xhamHWUE{4=B0e^69 zySYV1On-S~4-YZofXG{;x_`-Ai%ifP_fnTVv!@lEZZ8Z}u7H;|P<=KsXnfq(hq{{l zm0S&Omn6Si7himU*w}^Ob2h-^PdM`%4wo+nJxgdzsZ+8%e5U=yn<20Vzni=a&-8aQ zydmiyQ*}Uxc3u_?pSg1s7i-fD~Nc0p?a+oLj(HPyZ+OW(?HZ_GUJ6 zv-|8{wKuzxzV$^c&#&5>n??X`ffw%3_U1c;yU&L6*n{@!TYHRLWMxZ-{0gXaXMzLe z``C2-6>AWR4=wVdPwVh$JC|Uv=Qos2a+>UL zX(vk9N78S{hd{b@J2{+uO(C8O1yAGKZTP4Adlz*x9yJ7=d8&> zUDxq*I|^d=PuJtMtychMEkv_t3iE#EeR>6o$;$9q$yf>#SO)Udt`T%497QEcEqVu^ zuK8u#J4F`VCH{)HSV88;f%5&jzUNAP@7MLs`R6>;_kM4E>&2{2onLx^Q|HrC?K&5f z|7)FdPmDTs%%SRBj|cM`Fn58fJ6z?j91h0)J%Carmm1ALtFgbMmFs%fa`2)1eKMmpH;Ki+vV~0Xh#{Z32F1`3EW8;G|$sr9@m3Q^Gj-bxD+C} z@!4J8x5-@|4Y0d!(wnRwX(nlNPs94t64KZ6;U&i*`8eX*7vKG+?R zWqn+oh?>^+MHXhq(>Z6Hsatutw_^!ps1c8fC6Hm;0RBq0Rylt4d6v*o1FQ6hRs%d2 z>mW5yI@uB1OaADHZNz7*035arQw#HIkULpzOaD=(`2{Sk9tlfJbUrkG%ID_lgx2R$ zIF&n6G(aD()=!K#4r3p^9|V7&D3GS#$B`-cqjWpx7W7}&_fe+50_jl~PfJ}?pd8@J zXelc9rbGu$0Fb>%2rlN1(q64BH3L;B&6V?Zu%K<5s^UqccbX9W!Hzx2xhqFbdjjPW zwrlm>5mflggRt#%1Fi>{Sh-}%&jV9Y>;74N5oqI?HQ$3jRl>z0h09Ac>9<#R@l|1E zf^MT9Uu4^(NgaesN7Miv*`(vLwsde&wy00iaf40Avy!*;8Zlu{WMNEE|4infhcLvf=JTJKL+%@Xc$5YsN5Pbl|^+^^o*4sUl%?7a|z#Z;N9NMiH;B zz^rUi*D=1z=5;04Iyc_S`Hn;Df#FQw8>ThnhrNuWj}E5~jwO84Sx{+YPQpGBZ`ByA zvCV5<;=5hMIX%AX!xW4y%1E-ko|QYOXv1;(;d2CITJXCbLs7!Lych73p!osLWHjJ{ zxM5M6ugH4lF%45o7=+%APz-Eu#v(iaEVlQ^{?6g>T|*-KkDOW{qWlE{k!~)20+Ee4 zq4p|wL$eVQF+ee!u>KDK1%p|4uZdn@N)vy z|Ikp^5Q+pQs0&2iYgMBG7Uwk=k^No#6`!F6n7BM~f25_Wzk*g;WPdk*1?@1ydXy6* zvhJ!G-&Xe`b9-JL+|L7XHY!hn`y8P~`9Jt0YY2`tDUteYs~e84223|2GCAEB?wtSW zMBJDp{^`STONm@o^QXiijX?+g90@ahj3Vmk&%XpK@h7_~|$$`aS zW~qg(zEJE#49%@~3q;@BgikVn0$NBJxu0L2? zcOb;dWZ7=!Qo6{bbX~T;%GVTB)N{CnEm*%X?K~^zg!uUgMr-G(NrCFWvgG2rb+e-U zg8;ka?U`p5k_4(TTfoNAIMkNtHq?E71|YX%k(Su+C7-gPW7;QgRqc^TsP0H5P07Vz@nrB0&)|ZE-4k9 z!`tIY;|ZWqcYkTd0ve?k(>B4ZClosuWDK*koNtB zkoIXnQR^00yjYEY&~wLe9?vtriYIuE!?j#UR71Wepn+o{aHtw2K(pf!qQXbaY}h)- zMGVkc1iep#UL&BI9w|WH+Bp4Plp}mYju2q)y9!iOtLu3_FTQh#?_7=VXle0%2*;U> zBodDz+|e423v#XLPXdJVW9S%<#B9Tr=s!oCb8qBTi76cc3=@c9SY>l*iJU6EEqsBV72|qoU@gR5IMwF?kDRVpy996G$D8NE zzLL)Oj^DF0M7$(Im(6kRD2o$7|U0d`7h2k6mcYO!281uM1tO3iZMOvq3$`ASVUuIZ%zY19p3J z5rZ#}orC(i#*3fO-tx%F7q+p5)#1^8lbJ799U<$kI%~bkc0?loo(M+=hW_2A+SRw! z*OHFw@Tc~Ar+}cN2kBVf|KM^$`QzTER`nB(Fa_VT)G4o_XwjZObp{ocb(l2Q9RY&Y z#D@6HcFZ!dev8%7iUq9eYp4Lm!4hsLz#VXVY>rO=nlnCpMjiEg#+cB~TnAbc=ZVg~W?uYh-Udr6y27;8}c zA_P_$2UEWnYht27EgG zMC}7_u+x9wroV?&M!Rm$cUsV+ZPJ?)$J%*o`pt<~w)vjW=KE&vx4D2VMTbcF%mr*j zP5>Cu5w+-PKi071^;XufvEKD4>;c<+PiXUfv-jJQmYUFKh9!*{&DO5ZXxg_+ha~QU zv&Y3ybFkl_)#?zbK6_b|+WDy9m+>u1?Hp+GSJPONP~+zTz_5;e6_Ffwq&pq5Lj&p&4odV`4G7YDtmmnSbklhF1>cLMTX>GT`x2_K|O5#9IkgHxj8Jd^J zA13rqp!!q7Q_vE8K=C#W0Q^+K_ajZNeVuHto2p_XuoYrU{cpj?F4391WsG|U+SmH)AQqs-aI zo`{?<4#%w}&B8%-!!C$4Ra65mc6VyRV}AsyZ$?p3z*H2lhBXfXn2aAS08v;~f$AOj z7U2NgSAW3L-8)@?8vxMw4^Mf_w5Q$~f=hzICDHfRY@zY&WA8<@H=AovGq^OUcxeP-(ioO0cc zlCvKs!RJ4VrvG#?H0d^2H*8jN-hVW$7Gc!({)#u*AfqR~(>g>qh*30ytYhB+0Q3p= z+j6jn^1uzH>l6DZ=OW0k{y@!g;^%ZZm44f-ucFoG^Q$Gy8TEZDrj^dm#Gj$r_|u&$ z9{k<#uP_@s5@c2h!Q)_zj>YDKkp|X37)&vNDJJ1h32amYHtLo5Eu3Unv#Xf1S;Ze~ zwvb^qm{oj3RRdb-jEQC^c7Bq7&>ysEc8t zAQtp;kxw-3cm#(0MH|$MtO2ps{1smVOWrDO@I((fcEjy5=CNCO|Y_)^hZu<@;YJkWo&LQZF$nZXD16-;3vz~4c9o71D zn$Lm+e@eJG9&`A(G`y4W^z|-sFIV@tZ2)Mmf!Cv|1Qy&9Ypc*}fuclP8 z?E2*CsGx`Nt{L+Bapc;vOvg#4@5jRZ&`cscbYW4uB}lBMB1v9d<80Ae2H~dQPXZ_4 z&L-R#fs>O0AR~k;YYW#MaC&3sDWn7Iu+rs<=7ae43{rw$MSBmyuMaUAO5#^QeT5+S zq?w=aW+qzPYgA z$EirHh9L>~HcR+6o^Zl9FI;=V^%gj}AS_{D(59#<$DafZ!25AOhkrlx20g+*9tEB> zzlB}!I4_1f2*(=c0PKI{Bshie8=!*L7GuAy`pqjoBT_0Y!M+vup zaF5#K(Snq>(O*A%Gp}+lM9!R0>Xc}|_IZc)X6upAf4t8NSI}pn{Fo|E&1vj_dc}bd zTzwOLD9xAOFy$|tGv1=^!x#L(8PLt-3-&0PvDVS35bRLnEu!xZx9-MnmsZvMK~rn6 zWOP>k($cqiauvhYek5Jy^M=_s2UoxIJb?i@{-aWJaLs!$Ib=J^IeF+A-(jJ{qT6~k7?1VdG*a+6#k+Kay7DT|e1xM=C&g3`UmKYy{UN{WCz^e8D7hDgN zbFZQWU%d(Ip!J3$q-xCNyc7>S!g@dT?vJ_?$Nfnd$+AP60XgLFj-5`&SgM?R7XMdz z0t-`6pPD3t9d5KBNRn!5~$D{ZhKMWh;)z_ol<6yJY2GR+JoWQ;l=i=Bm z4I-qQG$?XKMy%*x0@asNp0389+IsvES%utPbqeI^nqCQ!6|Q*g!HFZ1`WL$rCI&{c z8eopO=lQZmSRHo{hp#LT$KY%XMf+B!BD2OL(K%`P$H^M0!ThgrJtCVtH;-(FePv~2 zL9Rgf2DzLYFluCHtVYHWC7k;2qzJiBo0Xn*rhhCMrQfTN^$=J7g?j#pkeG%3(;6$OTLAI z!7VDDcs+#<*7Lm7Ena^L*-IZMTL7pk*zp=w9!nSm{9_<_B z>1iwpZ9^*}8C! z|FGaMO#1V6UVdD_pr;T-eq{X$KR!9h%a5a(>=Y1}$bY2Tv-NQN$R?)_=11H7+VJDA zI!l`$&%TN*7hH1?KV~xgCMguOO@bcqBdZNRvfA+DQYPJqT208uc?`NALF7lDU*X59 z6TSTKGudxITq6IG>W9X|@gsBFA^FiZzc&21L}zL9H3w}Yc+KQCk z^Z5c}U|Mi7Ge}wk0MB^1kGc@RD062k&3sn~;QV;fFaYhl;C>{7;qvtTK>x1?Kv<;U zLA?9IyTn4S;v2c#cmaQzeJ*q3G+=8zqR)efPhxLBp&%a4TW8vv+w z-7i#Mfp=f{cedOVyhaF{?i0QFJ&6eQJ<_NfmvNS$;68yY%E8GluseIH7Z7Kq9RvF5 zE_oLegrfb1yf_3u1tnNSk+)5p#ly|5jYrw_gYg_p)y(p}Wq=N!YpxTzu^$d6&~-G* z_qSq{IW6Z%-mZeJ@Fp)=A08&@NAnFPn~# z&2V7m{-8QM(T?(aB+8=qM!NPOhpiLpns9@_$wtcZ;n4x9FtM>vFeQ|`LyY;5xnX#8 ze9G|r?Gyct1FC}2^IAjsDtsolTyRJd@YmkmTAL1@1fzXBsF$mFG;ZlS9U}70EgM;GQ*Kf+gaS-^xk(gfyKRUIv5u$Bi z-$NgQ6ASMn^UikVeKG>CMN-1Vf#CFcS96*NsFwS09kTpV06RU;<8E3rO9{pIITTyo+Z&1M+_j z;OgJA>_R5;zhBVkcKr!X2XfnW851-hfs`{je`IRvnbf}mD!vU+&=QIAj|RX5nHI!U zLBTnI(JqiIwG^Nr^N&{AKCC^!TcJ_E4WqPzZUAC^DZ|9^Y+XpGRq*rsEaPVN7zNiV z*e0J1svl!9ADL=c<2XcuxU+4h(DCVe=Gm_)tC@lwauh5<;)J1D&Z|^$Gp}`YAwTU2VwB$x)AM zeA8@vr)hjsZG1}@3vR#J_=?+~;f9JX9)62IK<=-v-=2l7`6akngl7zX!iHd!Z&g%w zP^#(bJFL!gZikV165e3HUY(DI9YhU49|X#`NI|J2mr1(yYB9Su^Yij=H4AX?F0>sKjtTm6Oz4eq<0sf+OH8en=uhd_JRanc_R$nYe=dU6b>k^#3He4t)WLln(y99dYwR2anak4@fXSbnu^a@c9zV4;_4^4#tK^AmN7&zDftvn;DDn zLkCaL!Q2-bi||7S-=Kp}mtcPA;G1J$i||DU-6cUM zK(W+t9x)bS03R-`iXVlQUVnmNqWkMbgAiA99R48geZ;9k8ZEI1!}&B;i#@iezX$F) z!ewbVhVzNvAwpFlABMH4j|aY#@M@*tWjG)E5-b-!+XG)r_-YN$aDm?;qUgeBdEk2z zeujo;xWIG5)72l=qD&9`rk;QwtKk_g@Vvpm1E21Je~a*aG(5uv{SXwJ2y@^cBz(GtXE>kuEy?g}5az&NP55;* zK4KAu^NF9548Ia#4*WpE&(rV>=M(=Po=s1A>k#I^rxAXVhG#gR_+uV;E{F84|J9?u zM1R%x+udJ~u3oEdl3iQAROqwi*jlg7{ktrFy&er{6z3A61*_22D`T4Uv!krEyRqs4 z-Nzph^8#aTL<~pJk(O5MA3_WcY`+@j0@pxF&&e~!^mrn+0(9qcT6N3cvoMb^iIF`4Mb4pw^h+Ugw*~#93xur8{+)2Qph|OJJFC1eMFTjWD5#cCnL>M~7lRAQ5b_!cxU!fx$ zg^d&=bPC?D4pjWIQ`kEDYfy*?M`QE#%>%pt4IW4R8<4E7PDJDzX8>Gd<7Qkucy&ty;Fy1r%CM0 zM3cB0put!r!}-Mj02KzfLCDU5dzWwp8jj(78p{FH-vjgg8R~v$W5#J2f!6*jyeM6)^XWhG}k(m*;bw zMw4(ZsKlv1R#_q1Vo}scDKb~qxAd-8y#guqfylT1KyH1pc^_ko&%Un+KczVN2!vL>>@pNq?frZc?$`;0*S#w;1VV34t@{Cf_l&X10 zL0&@M`LT)*8P7-TCCoQt@Fk`E2+9n~-p<8exeDJg*VK*S3-Pg`h59!_^7z1T0BuzM zt~ETS1A`p}8ylKRI3zXnZ)Ap>lxC?;Y9I_+dutk#@`F!oXgYt8bcFtmR5>w`bT_H3 zrOPF$qoiX)Gwh^e?WA+vq#16~5jxkSBq=}m#D-?_2f1FUeLg5nD zc?_Ej@gV60JLx<(X%9E)Se+|($HyZ4;1e5~#UCWSS^q}nJ24R)X=Jm>?kzr%x^X&- z*icNEOVUYp(rPzpFE{CxI@jwYDL?qchGz2z=1m!Y@!+-2iHu~ssqIc@9|95shS<;? zJIM@5E2&qysdL=a6Lj9QBsD+y#PpT*$goNWFz+=^WTcOq+U~wcOf2H`Ua_HlnF>kR zJo(^totwI^oBC#*_v`pcj8bAl``byLDq1X{AN#^kv z4^k^P^#C{ZB!oe#xdu2f?uiW@WG9)=Upz>?!%aQNO|84s8xq5!*wDc?c(tUHlr3(` z!FEcZE5s`wadi~|&Z@4%XAM+7^+L20^n!1(*tHDj6Zb=JVmvemAP(Hsgj)x1E>JRD z;BG*R_1LrhJ@5kwKTpFmT;SU!!}syPrxAXVhG)3I&q4p^!JqAc|0EsohK6Ujz@L;1 zpXGsnj__F;p5X#tjegF9KhpzWN_d3{50sbT0{_Qk_;e3^G2yEInF;8lK^N;_Z{+cOcAxe~a*aG(5xk#OHd(6R2N>FbBSp z@GV#igz_?+PrP3;{04+M@S_R8Qo}QxPkbr*Nl$s#Abrcb`be1zXMHyn3zB$uT6;^_@K4;gE~al;Iu_5 zx@S`%AV)8N0b4SQ^%}6G2*Fr|fC(n^-S{PCaq%Ci z@fQ*Qg0}@fd1H%DGX9nEdjy5Xf9p5If3|FXFG6@AR!lPBXTnF&T2hDintY9ZQ+vX~ zJshI%|3c&=lR~`pC>WbgNIvn6NU6u+T$h!pnz_=5qWvmjtr;ZDsuHpONUxY)q@{Yd z5gkwssV?nLiT(5G>Dh`V&{KenJk!VnheG zRIWO>mTj?*O?TufQOnU=TFoE*7pyjg!2FN=l|12uxj?FHzk(@bJ5o?uh-~H~yB)FV zlxse*j{IxH&MVZv)7*@vJJO4ZX-7T`Yw?ac0BZRlXCWk0+o2M7zG*YpD49=IX|@@$ z3V|2g=1w`OUi%{#w+J4Q0~^no#PiPtp6UeSfk)sqp55_PA`m>^k@dy>1^-Qb{m9}s zcRXBuIk9)3x^~#rWzSbO3%{TTbbV#UC$=` zTZgQ#4}IYCkT?FD`nppZb|IRLUGLudnoc}>U>HiHLcJ%|m#5x;bn8p@`>@Jp>t${J zijAmJ44ZWCVa=9Sw#HxaK7!w|`wj@K#a8y$L-re?XpR+VPR&8b@jP)w`(lA+aiJ-w zaP)T}0^wk($f3le23PSjrau`a%~Ef1EcChU^0xqHzD6`-_5Y&p{TD1Z#fqf1ACzd9 z_BjojI+v=_o1DB3)&K|fEC~(J__Sd=e?;He&1lB~oOfLEno}(vH&7bru>FnJ;?;F1 zyrbtAGtKEtQ({T$724721WMQhH9zLy^tK+qi|L!@OL~z4oBQ7ME8{QOtu`T_;%~(j zj53`k`^WThHC%s(OtG`cu`1@|h-AR5;9wwNi^dLg$8R>Lv@5;lkfITc4xWkTu204b zMtl5hSVIaq<9Gt6Q-5bz4^Y{O32_2n%-lW>oHUTE!WubC{-sW;!in;@ynWKOH z8S){)WD|Vjcn+mb%ZV2ZY=vbY_Q3Lh2`NM%MWjC>Ac={?J#{?=OkHqCBb&T#{*Z8E*L|L->bu~Q}4_6q2A7XmHqEb;c&pxG@%C;KqfNGcN?eMauY4M9$Q1u z|2n6`lXnC{cVHEMlUe@?2`yP4l$lFR+9`t!u35m#5mu|K@`(xPz z57H2jh*U&48p4qXf93rUwL@wNtSXurkg>@(02vXCIPn#*#K;TL_2l*8GB2dZjUaoJ-(2({eK}pbQ;*Epy)9BJbI^84wa?1|8EKf z1B@~h5Bfw;K6v||n_E!F-(#P>m<8Txi0!VO-Bu3`W|~)#=0C_?d^pO*dFp7v_qj=O zS3%rWE?!&SHtqu6F*e>`leaSIn(Xr!4>8_NSKoeb%Uv&#yEfxpN9^qJE<2{T(J}ce zx$pmwVu#LYmUK=V$j4}pX0432h4uK>ux#xnD5YNLS3%Z$Ga<1)tw z>X2G`uyQSm&e-;Cc2xG**6zogtyx9zg**KiFXSSv5QFCbu^;n}Yi+S}yD@vs9|)0Q zywi;hLUuBgPBf3h4x~Ni&f~1#r15ELGwOHZJj%_lj87Y@oc<4T^U}$b8_)Rkb*Xx{ ze{3d4Yi#*>_7~tkTJXQE#m9C>R0tR#fon&+Mo@sSz`yoGkxLn$QmWkXDK8a1tUo1P zVGWWV#2iw-VEBkyJIJ5%EAnM~TsDA6$kzvLrLB#g6)C-LB71c zlS9at(=TfI`akoV{3rRcyT$)A`Fi#z*8lVWFYB4a{a=$Wy@5~t{IF;7LIW2s+%s7gupgn1Z^XKXGKdA_b)fkXv8?aKMvvuqMlJI3|29`W*_V#z$R8v{=a zALk{;VZB4Y1+ptDZHTC5mdBUj}{2Uh%u`rGvkjxbvx>o@{qYDQs# z$X+JTyXB(;uLR6UIe|v@=%J|@Nw zHCG`Tb_TDpxkWi6{JEi=EB(2na&GqLK9*C4H2&OYbE@R`<(wzw z_syL7^1C>v4!;JLYHpBU?A65))amK`0A}pvEXv77NJf71BuE9ni+kr7UN(C1I7VvQl;P0=nmnQ+hF zp}i?a$r>wTc5^*kAoP>S2)c2c!^ddGY;2DC_)sRmkV1f?@!!M#f=_frYs?+ZnrjlS zjve7^++0eFnk#1021yCSOR@OlIwVAmj@;fI$84esRsECn7R+WdwBBG@;cXBoW`W~* zk5s}s-!b7c#2I0eB$paB;kHDYE_7tS;t<#nxF1*_2 zTjV=U-w?A$xm1uHZr2me7pD)aab0Ee-5ZLcm$U{Vd;H-~gC%>c9t$-Mg^}&;g3(C_ zip{m5k`F?;p9S-GhupeM!6vr{Q$2!y25!jU7o=_dF!XoUXIIR}z<4|4eRW|_)U(Vy5 z)tr|>gSozzEkKQVyrZ+$ABSjX`NFGfkwy}IwOX*(5UF)%*23c$9_@KQ+PzV7bCK!` zA!&Rpp&tO0t&TngfpdiqA{?Ie;yg{3Vm1N@mN4^p%@a6V(DhHq{)vtp8{x3?ntTm> z0)XSc$BH?e2M_-P4oRj9LW=MDrA`2$ESWHDGt&th{1t!aJGZBAz>DR}$5lxcT=u2z zf2p-qZetjPM!<#M^ZyC^PpGNv>U{;j7W}CN zNUOS_A8m}OINo|&q~$>AtE98^M8i524%sYXC)Z^-+PcA}&!+iR#s)Y&=NktSwA&4K z0*}hd`u!0c=d-u0jKPM+5)Z0cU!1NdM}JXx?nEGjXB1S7`ss0K7kf>Jc%Pm8inD9V z1#Vzpz!~PyKI&n@nnQ8@3vxI{m=zI_uAQi@0(ehmRtKot_y@=x?RzX@Yo_5(f|=m* znr)zAJ@k;=M3s=gK=oA`^Q!=mWXYIcMiR=(s27p+1}Ps}bs~L|Z|q!5WNWVSoT$9D z<1UYLZJBp{K94u+(t1rFr@v_1Uc?`7b;Q}|g;R&K{hOb(j_8AfvPHbNg*#Xy(&-De z(C&e%C-P}sD=hOhQA*PhY|$;iTb(vG;^Zv(5iq2^yw(19zqg3Hl@kMX0n57>ta z^RCBr&ude+Qpj-l_i{C1uP&CH03xm2Q+`hP@Uo8P!pwHzYmIWug||+fcqQ5^&Z9E- z)}m+ewaU37AyOu{8lXgIVE8(8DF(GE#k{#4X@aEN`IiAB&f8dtzo^( z3Vw9!`DLAlWH0}n`3^axoGxv{>OiZIlZzYp36@*9l^6D0H+A3h`ed%7r7;&n=r$Vp z?fn&71aQ5&5QW9@V#9ro&h>Zeg748dnrtMGE4v(5vW?5edT6%(raFH&h;(EM^zF$~ zNt2){!o5T#Z30Fp8f=d$#ZHtxl(?Pua<5`BPIsM>ZJzc=(Mk-_W1-5CE6!i z=XO~M}v@`*HGJ#GKtfj9YY{i2eeT^@$-h`$hs^>we|Db7_i62jDeb`aX*G}`MDX!F)WY)ZSZUcvaMurdYtc|>RO zi#EH_Dfw!jLw*jsU)>0H-wa1q61!!dpywk`Ls;In>zVC)7o9?%%1one-b2&km@&2f zEvbP}$p$s*ZM>o-r}Mg$+)cs!_a>eQ7Uq3vAaxwE2<5~UzJ4jk3;eKiQ8=|j!3lf{5;;eA;l+$Yyd4Zyxd zDDYkYS4uz+we`MG<~L-$zSanK`NcJouC7Q>Fo!sB5|-9XP;R|cijJjxUV>QcJhn;U zweVRsJs_s9+O;l)#PlUG<1{gY+6tz4-8LDR=bQL-wG zjv5Kcboy_SJXe~@`r&%Z2jB;*G!TKP02<_Fhz*RvB_ptWC`hP=Eg?uswgCy3r%c_B zfgBhRA~wQfgD}`2PbQ8r2&ODE&b}chz4U$qtDbq9SRdm!5No8c)VSOiM>rh?LDDDF zcv?6169Z!lWzz(G(rXBPSHB@aV9z2ET$~^l7zG+}s2MgKgGi(PyY`e67{zzx^jDvJ zogi=_Qegk_ebPS@|6B+ETP+}2mtW(@xIkTo*uW)r`JrR#gnq%@_%!H4x#Z+bJ>E)| zcSqQ5d250ljSMOAIXX|Tyxp&3DQ}x0dcPuX!*EfbBX5nAQk=y0>+*JR|K3MErR5vt z?WIN|@8pjD&*aRF8boAAU6dfIS;PRQQxheMM_f{J*LC>USbt-&E zW@I)q>Ez91D+G@jcws+~ zSRbqX5tZBS-Wu7T>7O+l0D=5hNVGpX4Ie?PmXwgPP<~UmTg};BSloegzCqV8dM161 z`)da4urh|-g0Mh!0YX45lahkUvw^B6019hiU%UOwg-npSTI~JnQ4ZI>jqJzqrNhA3 z$o}^JSr;J6=47slv~={(8jKL5Ab&C)2B4G7F(BR7Q^FTi3=FHN`Tyg`qCVW zPjN>6(PG$Qe*g5J5fH$gpd5xNdH)A_3IsDg$7e8FJSeh1-5FR_h=N@<5<%uR|AL}E2gV1?qP_>>0fdMgI{9%n-OjIak~f1z$W>>+ z&G}eG)g8!tO!Cy zm6HKHMc~GJNZl3O2>2Hi4;^1$mp-1{oW}7}z`{+h3+kdHuw1q@1MXD+w9gP69ihh8 zFHNt`L@E?&^w4-dLaT}`;cPMaHeXWLQjU4(>{Ietnn}OfgLn^?)KZ!ZPL6Cg;D>E5 z0;N8`lZT-`#JHgKw#ZntmUX4B*a8WPP1^^A__T|=6i%6h{atK5#F{PUD)s)zq}ZCp z{EK;CbGBr9D8wCr*v=AFIO|+s$BlzC<=&+dtStV-$o&*8DA-=eQD+K;(gK6lLn6x2 za61^UlUm9;z)?7sLWqz9^7TjiYrlMnfFf?6e4S>;?Uk==`)iMU9VuU-cDu_`fHM_e zWvOSS#P^~y6XiwClTo_n7ho7^w|B#Qw2TZy>l~ghDkF@;JcQvjPw7V4_yyY7S2O5u zh&au$;v5t`nfV;BoOef4YdngKtHc0^Ux18se-p$3RFZkfe1=Hke-Ii_t2^WL9g5gR zmKQ?wTFf7Ukxe*1$+^cil&gZd%TjPLWJ{za-G9#+s2{xJ#IKJcOVfka030F`?uylV zw{DOB265C+L2ESTnlW-VBAZ)+*mi&sxfRO9E3gK0e=bVd6w2LzY%sOM26_)=6`y%^ zW<6*0tihcPbMO)Q>eiiRn%u6 zHNw95=^zGh{so~P2gU>PK>TDt+Wzr99pm05Ejrl5W>t#_7<^ zI!nFwPY$-rbaO)UJ`Re}K`*+OM`am!`-r@P1{FPyi^=SXJ>+lwcOwGi3&G8!gwK1)GOmk#&T4Y6c)%7V5 zgyU>E)(J+3LDc?1y3rzZIai4JRD`ih`^_@FKQ&-Y%tRwdM@xfDZp#{OO_Ne#3|}ZE z2JzY6BHe+pv=nKgE|OUFn`wwt{VXW^LcaU?YN%KldP+(=U$i)@5hq_^_|c^9h;;P$ zr=>mGIuQw|9!V*b1wCO&du)U+0o=Pz&h;S2OJ+--w$?ub7m%a869*a5MIuOPt(w6F z2#-ZrrF`08WP6k<+r_wO+LJP}jH7U+I8k~(deQAjo~X6{yERe;a8t#LsZTJNL!+Y) z?DdU0_FWyzJ`3YX!GA#V-tQNYI19N5|BgaAB`t>O7#yruYg%mlNXkRc(;XgS@?Cw8 z5@8V8SHd`x|G+&RMTVXOG^nZ8`FWTikm@C*%d3k;$SGDyf*bKikwj|GDZ&$5g@B4{ zMOl>rTHk>dzXgz5UnaP5q!yrWkoVbucM-89&6_l$ors7Z z4mI!!_Usz@kqMyHU->@tN0GJYW?_>}Vqn+$KxB&_2NRLO0gP<8Gdp(MRrw&tO#X1m=X)+?jD}9e|XBi_!YOXks{tY&fU8j}C>>*Y zwhAxP&{sl!@Pnr94A2&|W=W4~t`nKvK0GQbvZ!arXsUuK(*}WAwgxbA>x0ozX%xED z_~pnnf%a%y)b(i+NocpYXt%4nC#A55L7TEHzD)XBXl;)@!1L<0M+(kVdZg%t6#f0< zvs5SzAyb7qZSYro0O=I{{1jezM@wKH?IajyBTxtk)8~(1u@APDf`xqO`SVwDy$peS z02oK{q4d!K^uzhotvl#GOdHqSf+N5SDt6+_l&$sz-}Hhc<9PlHzD8%W8yONEfUy^p zL4AF^cXV*dM=;%6Ln&L-LmPp_T$GNiVaU+I%vF}XjcA0)fDowB*m0f)ko^?!--Jov zZrTWHqobJl1j*b>>$KJMu%)fX4`{9CSAy331g)q27qoUJlD4#hiENzL;g4?j=2Eb# z{)gTvOF!CUl&pnN^iY|1Qv-$X0wsT&dl0Wn2axucpJ#c!wBPZ)F!+QYg+)HF$i6VW zjI3muNe87F|E?7DL;jeHBn_=gwAVoOAlUtAFki31{0>|vzS@uQNBn#knP({L9eaM~ z8R{_YPd&7J-TySRcjapd(1?6JV3YMNI#rRcIy+zu0+P#i_hPA+*i<363_ni2MALTu zL%t}EEaYrS+(e0*!Phnt6{~ORof2~e>OmkrsFDsPP+QSRepR4s`}$DzS$LP!CmdW& z>St+e-g-NdBw#fxDjgO6CJY<9Do{igDt;1b1oPYXOY7@8{6nWcJ_NfG^|5!6T_0Cb zwqPFyP22S>hxE}#On*u$0ta`Zp@%0*B`gDyfK@sHS*JV%Srd^8MPFiXU%$D%xb;ia zIrMTzd%nOQ&T}=XjL)EhaLNG);dH3@ayHf-zys?Gy4Gl4!2CBWD z%w9*N7HyDOhO4$yKS&lYe%dyR(#NgYVn(hFziMc6mKi_OSXpIh4WKDN<2lo|SYRBf z!X!#0?^uMRK|Ul$dx2!$)3%72?ApIIwKm2af6gKJS^b2UpOb~36+kKcd4|7R$j|6A zEVtvtKcPlgxfn7b<=mp`KS4R8X?Iu*5su0-mcNrY4@bACN$dVQj?(^W!;jK4Jq4?} zp{Z4yE3Ah9zz=QsksrHJ?Z_pUwzj9nKXDJywr!IYI>BYgw0srlx5YCnpIcwtb%h77YQ{?qd z?S>EHOlr#_GFT(T6lmpD7haL`o`0*?hk4w9c73ZyA14jaBQdq(Nhm0L>L(7l667Xs zNME5!&u&L!aZVj3TN~f<&M(0K7vQ`lr&-z6Vy1NlP>KU^0mwpg>i=F_2VkL3mZ=rx zDy&ZmM2inZS~^VZTWr3PjucW+4yBGiFhEC6#qEgJ{YhIto!|?cI*kZir()xmRYo<3 zI2riQsa}i@G68_9qQlV53^&S%x3Tf1Dw;DZAA@aYJ!Ak96JSCP=YMB~@^|_xvA!4$ z*JPx9$z2(clZ9#o(t$}8R{{iHIkpCVUc}r=J_$x^vk<}|_6tkU5*Q^@{@S5KB$5?8 zpQ1nT9jAq>%NuB34kt(lVvZK?i?n3;r}N@MX8ZZ0I-e9^rwCPUKm>T1fp5VW{|Et2 z`;P2~uddckdH^EHLAsf#0p}rH=coM~bKP%dv;olcXW-p1GsTf+j=+J(^rOufkzq5J zZZ!24W!-G@zg^g+enYz1pq@nlzA`$k)1I}#nu6%q7Ilo!U)lpKBgy^+A7g*wOdf)m z+rVtEMN;z%yp6B_A$`V(E@~_SW{kyo3IZSh3AQDOrbe=R+*YIoHDn|HN!{ci4P+?& zwll!V)Y7|(>8kvUaP%h5$V4a{l`9ZXlJf5{${izVOLx>A~4zlh0oHBTjy3A^&ZF4A)h=s65?9zwZ=IX%H8<-;~f zmpNaOwI#DjD~7HE$xd}456&S|YZ0l-p;l8Rnc+6l{j z{FS<2M;`;9M5~&GVi5y)?FV0Uuo^w!Tv_@{ga&%1=5U@L~!5lq^ z!txo1+5uwOA9<_zA1ZPn`g+xhdg2x=2kBh~;%&b{7sP3OBwXmt{C?xfFBpnm<;{=E z^^bOb{X!*+r2fI;lhAaa*=1U5g_?_OAlVrxRUmSpwX{3hw@tyZh!WM8aC5-=6Zr#C z@jJDuK|5u|t)bjm81fhU;%^|vmdC(iwwR(*pJ9_xj{-64gOVopP@gFfHclDbZ_q@&S_)IXTN?9)4W{^;&&UWL!V!U4JB^I(Q zGRA#250ZKeQ#Kf#u;dqgwOF-R!!+A+FRui6gRKa*oeX#@EX1pmq=iujJLX-FcRJ!~ zQI^npgIo?p({4c!PMM}JtHa}{^O!VqB=;D_=%2!;0k>=hIQ1pr&}7KJQL+tn2gd@v z?d$&PwcEy31HI2#yrUi^v~&j!Dc63|(%OcU4j3cGZw7Z+{-pIO93-eMSSSP*=mCPi zVm9!TuuEyso~`jiS{(eBzUmYerE^RBJtPG-5_zSLek_F}yVAdcho|a68#P?QI;8cE zqfwiZMWgIt5e+mFk&BpG|ChrT+-?`hAwC7`OPu|%p7rDQS_X`NP&}+$&@~)Bmzj^C z-)ue#ieE}zC5o&@Ab;`vxV8Gq`W7xBFFgsHXj=fnr;Sl*k7LNMO+>m{BgK^ZYtUBq zWELv1JIccNM-dt{1zTH8Y%gjx;**JZg zBdosy{PC$fkUVHDAUmKmE(}GxPJ(wPXs!#H--`f~k-fxOt*&Mmm3WC-O0uMu)a=o}w3!2^;%Fho;LyROEXt z8e08ByztDt6?k^$NDAmfFx$U?>oJg*$%g}HSHj~8I< zDfEE>=vvVS4ws$r0j%a7NX)=Ldp$z=i?$x z)E9-Mx(ZRj=-VyG;Bq56gQ5`l6Xu*45V#yOZGk_>hjwd+zRMTDdJN2Oa6_4pIUsm zJv$fQ!@kj;k4)@yXUdiLiNHUOB%qp!S&Dnylyy=y?CC*%WM8I#`c0@;&`ZiRy^jkB z`#CyP7674LT(vi+ora;nG`Q;vT^|f4%jCSaKB^q4tQnZok?F7!;I^t*M`*B=rHc`O zJ-_~nM-V2BcMa$XmMmdy7}2si{FvwuaH48z&hY302GckC$2(X$oG%7@F<5dA4BuIA zBH=>TYwm8NJ?^#6kNc+&MKsP4k@Q?^7x@#Ho8xVG^kLSUk^8=pvRd+;K+I-SNUSt# z7CyK}fI8V4kW*PFm_z1g{)&z?QLj5%hQbvO07*b^B8Q!qDNx*%M>-l$cgG{q1sj1L zgrZ3FBC#}}`MwZXPH;fuX6v9C=ee|@{P)Ax+5`s8rs26C3W5Fvf!L>rJ0sMlD5=C7 zNzEcVz6TymYe-K5x6)@C?r%6wRNw$ou>m0DKqzHzO1vm{)o@HxR(?rdz{E3GI?~U3 zB;5T=RvG!8w+iX+n~(Itl80HI%C&d*2}T#NK*8t|^3%-7Q8!_eG1TClf!K5c@v$;+ zZ)+1He-D!JMOtHs03wQ8<=ROhAQB1Jh}7ich^2HOuuypTAe}x72;=ia5!HH_#ZKue zj|W4?S1rWf*7&J>x9368erJ-(1r#WoSa2y=avw`ZzN|zpYBq3z_9b=!1C~UC214mVKY%$6JuZ+LqOs2R7f1LgsB8A$qXW=+3I17qH1dgN>0Fttx z<;oTbzpP4dWJ}A1n6im_{w34Hi7YhU_)pS;F=|?geSPV-T@z@o$H2dp1*r=k=YP99 zg?q+P^V)@b_!o?7f55PM<%~D+qWM;A9ueOJgHlYgZ&dN6xQaC8w7gaEHDc)cRCkoh(Mndx-0T?3o>%?`-fh+?OSHL5+XD%yet38OmT&kiHE#mH?4L{n4rx`$im z=%MnbSo45$^8SF6^Ujo^@?`J={@_A1DBW+p2;!XuxTh^dzt!{{XO-dwLXxfzb>}gf zt^s5M*Y9Y$qZ@b6+F^91?PB@78A6Ib(W{c`{5b@W*A}6_6zwjl!-Cb}0 z3?|(Illckms0zR)vBl3uTV2JwHJROJm|oK!jXo+7e|^^7-_1{ITBwI@8o zs%=t@7(hv5b*q-^!(|?54RJ)f?tXxE{F2B^G;Q_OOo!!{-+*s-x~86Zz^@z<*z{A^P%rNdkXZ&t==4oe&fI#h)u`U{jNcP6$v zPy@?&*e24c-p%S1P}n%%X>W&_NFH*8V)*LUCReZ8YnT?!eoQh`(RQKhWaFZ^3IK{uUko`Yt!VV^aJ@I(}`l z8-FrD6Y2AG{LWw8_+bD|#COy2M<(L0!D}M^$2+8azyH}yKOL`$_>Xk_#Xq_6FW@y1 z|C)}!b*CF2!)qe`ejWe7k8b=Hye8sr(ebbEaN|2B#b2c3*EYHFCj&H*K2OK*-0sE? z185??n~py+5q}L{6Y)Pz*5%*krk{@2MEplO{^G4}{0n$Z#J{HFZ*6qrV|Y!(->>5z z_`!|eg4aa+Ejs@7xEtRwDgGiIzgD^NCj&H*K2OK*+~UR$185??n~py+5q}L{6Y)Pz z(&gXmrk{@2MEplO{^Ct;{0n$Z#J{HFZ{6s|$MBknzhB2c@Vy(q1+R(tTXg*E-?{M} zlj1MZ@oT?z<4*=?BK@U^z%Wqv-)N8V4awh=+kAIw^Zm&BWcb`R-ycoX?f)A${}=F@ z$p1ARf9uz7d-1 zs(>JrzxUEV2mQm=^E{k;Q7d}2vBwy)?e5A|;cwLi9!i!@btyU8p`<}=MJUV*@z-o` z9eBAW1Vn)f*-P~j&hF8BTbh&~>9E(s^z?`EMX;;A-#lW~^Nss^vHOsd!rWga-7$pG z(EF=u&};KKm&fB|;r3(yw70=sYsv8dv^71HiMGyr?Mv%cl2gHsX;%!0*<3pH3w&ysCSif|?ie{=GXu#04njzYwXLbwrxQU8fB}8Okv?uq z$=xQk5e9k=WV2Bk199j0`C@eG!gnMTkN+rrw{_8Xyd_+3p>Odw?9ewHFZp?W4tK(w zeJc1vlEAzhvE5Ywic*j}>3U7Md@^^YdKmFFNjcG&G}Uen0w8E?=8yp!`EgCX8vX|S zi^di6#Wwu-y(A0es9W^oPp7hm z&K}f&p1Cg6d11vNTI^rbk7uKO{uBLps=$l+EXC9>pdaYRskI}6hJIYSQN{dr1oaBS z>gu1sI?Ao>!kgGr-ltp0K68WG4G_wGx(s|!UWlDtVD$xGgorSsUX;%BYEwiVPW_q@ zejS0L&_6WtcB`vN&jl+2*|?t~$di-YaIenK0(p&>@V3&y>JA#A$&AZ_1;4MVBVrub zshs*VYOVI64>has;|K=ppFx4w7CO$RfH0VUbB-A~s*K&j)ZfU^^mN@>pH6 zg7)9OP>pC;n~b?D?Bt1{WPpULc0Z#tzJ`_1;*AEFKxE)3V^Jn9urU^<$=4%xzHabv zRPPmQkFR2|z2~NCNUyTP?V=6r0noaEZ#Xn)pcAZPh9}WFh7BBIto2VqsGGS@6mR9| zCqe9BRCcuMTm*SMSaIf5B@ zTP=71SYLuRP>nx4wo&cAk)W4$L}R#x$NO}MR_s(E%KGWTV)xt$?bSI9%^i~=m-FJ! z&+*;|$A$+Ge?fT+aW=+@qTJJU(UY{$B1Ykq zCI=O%w_d^vmmi>O&Ul9wNqaEB;W@r9G*8;Y{h;j#;$BS)b(EnFI|YMa%*#c^{(|ks z?X-Wu#WH{+_wjb)KAwQ{^ZL14*c!H9bgJU8s9$7RL zc&R_GI^+K?$n80*D8PV zHm#^OZso(aZo97O9Z;_rcI}FMjWpmX${=K5sh(^HAf;IsTX62v>A@Ec=g<3=7wUGx zRUtZjM-?y!_VhL&HA9(2;Zpm;-*AvQ&ZYE?zs|Vv_e){&PFy7P1;1$&HgW5Ilw`=h zMu;1KkTm;r1Oee1;TKG-ng(n}zTsUx%uyP%ZHFaVXMI2KIP@cwS!jJjSI+%I{+xpY zEdMD7BTt|tGvb0?XZwQQ9z-Eye`B#f=kR!DI~-Cm6PB&_;c}BRJfQIaIm?86OG176*KVx(L#MPg#%1K z6~dKi;ZQLEY3g5iU;=^4fe0Mwp4<+#S&FYHDcEIHvQ6CG!acd8?8MkHtf;S*KnvZi{1kOTlinlNgxn zRX#-N^WwT7yUBlbK?2Pc9)gbhwwyD6)VsKwNPI4pNoCJ#da!opwbrC=RX=L$vuMzz@$}6*`WhP{z=0Av?w~-9xzL#kK}hsI zfwqE`Sr9I0_L*fAo9p z#aY3x+Kcx<26U1lakMeoixcg(z4-lq$Kn*acLHLth1WxrXfMvhM0@cZl;hMIgX$rO zkZ>4`*^Bo^3`b-t?!<_AZQF}Gq$^FqeuX9Z@Auh@KYN{SC(&NKJ8F>{k8Cf#4m08R z+l#-9+)=~Y7VX7}T#*ASkrmS;W-lH<#1ZVpBi9msu@@)E&FsYsP!uyUW-p$L2yHLU z{71GICmQh|0Z~7LCjTF|7f%MBU@xAHE{QveJ27)ZRYW;9ZAZ2jm-&vx^(tg1CT^Z6 z=4bNem@E%biMNw-StE4@Yn@AZAvDX*E8MPJvLs)o9V1|aDdX7<7v}7j^ zjx?1uK0aG&jJNYd2hU3S4cZ=-IBKRKGm=7yy;xlwz6J4Ai>Uim`k3({Y?Y}Cf6tRgeDf)LwC}d^?EH!QCmO}S|9|tv9vWr!_sF&78D!ywbuhK^e)kc-6@a$ zEygIQ<(0Aib#v^>?f#Jo{}__~mG-qe@nip}skp*P4z zDMaoVrKbQVm_Cm?M(NMi-zWW^SZ0G2p^KdP>LE=zz{ANB9vn^Q@(OI}o)XhnXL3A_DMHwp$&PxkXXPk%892 zM{j6>W(P2z7L0~lf3pDc=_*KRoPui8-vQ9~Wmf@#oa+1+lX)=2ZkuuGRUw;k+l)Wi zvze^pl5kx8scHiTqUDsA(2OIeymc?+lt*V#PN`q**6+p6Gn^Z4kO_Mq@jT->)QNMY z;^b{Oy69-a#fh9AnZZkBR+Hu@mP{)rKTJTw`i}MbYicgD$IdRMIl~Bsi~+XX^cIB)2%^@f4l( zxtYAe#2E%`ap98g>+?;XVels#s4a!}_2w$|D7~tQ6Ce#f8V!?hCtPgeAfKQH zbr)jgSP9!xobCYNBpYCyY2-lQ4YXIgu0~~W{D%2_H0!PS&GU?3Ip5qc4!lRsH+N2n zJKuZ<34}9=5XGNwUU%njoo^obJoPU}YHy_7-hBK`Xz$Sc-)Il#)t`RhjXS@-CLz4< z^Z0ZtA>1_~{Op$a`~?Z&HJ`<&UzQM#d>WsAQ$jdBAzXmdZiw9#LW1be8k}ys!6gE{z+fwCr|Z$r+-qy`+w=5)TdkLS;~!^dZDE@ z5(Je4IO*gRwMGA=cQ?p6mz?96lC}BCIr&iheai%Yk#CQY{u6?q$7)pQk&pwhzvxun zoL+>~U-1`tX@zs>wpA@*MJ;e#M_=q%B^=Q|>8WVeK5@nQ)++U&Rzm$R`X_DF6b%2Q z902sakGlFwK?l|?RgKi&@=vK;q6AJQWBy4SH6fOS-iY;I*H8bX)kys>`6s^-^wyl8<*H;2g0%ex+Ky*z;-7S#GeKY&qh3M42C8NMq&@C%`zL*s zWg(YWB`3vh-tg{$wyy~-v}e1z#@$GD{>kw*$2gGN{tpo z63r!2H&mEWo20=nra=xbn+m?CCP~IRH3xsitO*Yh1@|Y@bM-fYUQq1KKxWgrhmZyv zTLpT-%Ys!Y+&|uGIp&`pg|3M!RQfKK%uUaxCDpGKex&tij{qk%kK)IXPsfBIpEluE z98ea$5T@-lH6i?L!unf~5MGn8{$7?4 zj=0xbAm^rpaC$=cflcx2cV0sH&5z^LixR@0e&kLM4JwnjGkBD2EEC z92t_suybS}MF>=g3Bm z;}Jf=m7|-n=*AP%_tk!zo&JMmc7qQLqXNb~K+6TKj73wDYro2@{WdNA2V>Eh{F#zs z=gdKdHVC(lWtfsGIojGeJjl@wInrG@q@pS9?Hswt0lZ8RynLG}rGbfyjr1RCw`Zqs zu*~jtUg-5~m1R`kq#y)StoQLPe;?UGGUueW+z+ZU~C48a3=iqXR^)4*TGJ@Os z;hY5g%gp-_mo@ttvtL1$qVT{R8rIZbVz0~8?bm+S#@djK3n1^qbnS*K%)GU@uY%h= zu<2`pzw0(o%D`4lrN02CkXMh>nxf?0zPf=qs1Lftfu7|2@7cnQ!_2CFh)Tu(uyMHY zNg6F?a#xq>R6gYisV`bPuD+sj_0sccNyT|z!-B0Od56#Xdk!{L|74X@Uxcky8kJOc zvr-)8Byv?pJ`e8iXUuu46*AFB=RB*^^ET~K0U$Mcch>#N>?r6;3h7aw>ioZj8)T&f~P>b5z;sh^n zhNNZkcZ3%S%aJfBGuW6?+F4R^`1|LfNLj&@9Keu4kBY%nU10{(upDMMH{k>4JYbV)XxP)Ryj396+KAKeOmTCabr|i- zJmi|K52#iI_rs0ReHhgEbv%0C(if^+NrYRrU-Wug9uj!kPhI1)?qRxATmSU<`8J%d zaId+*4drp@r9in9AAm9wXv*-+O#_rh<;RFaP0O5`B9}vVDDyP9Kf|ch2U4l<-CM~2 z!94w*RD9&(|LF{1CW(^@Ys#DO4+aK5_AxA2Gmto3k( zKy1L(c^Po%DGC)%FFH#)4mTpX+Fts<#Dk=(tS@PCr zk(J@GHb5hohEG&oly}gdyqzwpx1*U_PN-Wq)2wDYT~x2e*$LLve7OU<9yKpTk`JI- zY1RfGKsyM?4n}-vFO+6&v!MzqLS?dRwqw3``-0P}a z`C1?}=`hMxZ#=<`1}r<^4;fGwgw@s3No#HKkF*TBf zVj)G$)W|i1+n1p$ZKNx}E%XBFvd5#iUH7MyD1z9|-Gb#PQu$o(&^Tn$3W@S!As#ag z5BE|6)cD-ZBiG7*AxTBL6GJ6EaKA>dMg-=q#iKZQ2|3fbkt)RmhxDJ*kgLzkP6ReM zf|>aZMR_z^d`qT!`k38K*5*iSN!7zg>FYx#XZT74mcQFHTki$q(~3& z39L)iIf9%*Z*jP^M`S1>wH&D4JuM|k+*RnX_5(*x&pO=Po{NiXZxf5FOaXr=OlD_> z9^shr*@4Op3R=mH9d5hJsw|n@a^R+m93+_V{=D@s5 zCPrOh4ypq_d-b2mHK0j7xDdk^uH=-0pKI7Y$ytj^0oJ*$pa4iCsjg6_g}nf2j?8!g z>`cM28Gb|N6lV!ds7~Uz)yaazs5)7yScdy_S(lm+5JR+kG1dJc$$)VW9BYQ8Sa6$R zRKh^ZE{oi#a2ZAo2d1(NK>Rl@tYfG;-3*I&E!KnKna%Pr<{m0|D zeW~ss<`;ZHUM7B)ptiv4EIU-%PplBe{|GgyzhMB)v*16}A1F6J2Hxc;*}jXUXo zsFIKgX7=C%NGE5qDZfd*a4ILg-24f6arBO<+st*C($xJ+k~In*K- z9;KA^2dtrEt%6O$$!K~m{*UkyiH%>oe6I== zKLKHi9^gox2ioQXtRoQNew9HK&9LWRhB)G6H&oA<4DdGofWjUu!Jt$e$r8 zwO?hYueG4Y7y-4xkk+yEA*qs~tXZ>srwnOVyFCq>14)y5hP1bHK%FuIYJ(vi zT{$u&pJC^K5@7_?DMOBO<gZzUfI4La)G0%bb>%=05ObWJ z1L~9!P^Szz!Ih(%n=QB4nY4LR2Qa-!NY%d`+8^7-4D zjLZ7~bkawe@a$m(X_q3-J!nEJ+jkQ~#o<9P-rWW%xz0@9 zXXfoUgI~eT3C82r3{E42@?kESaV~{qGgt==#s`pR_h7B_hg$iqwxLVf!TpGFF!BYW zT=HqSb>2H}ePpB>1bX6p3GP+9^r!KHhp?m%R8D; zlLmbkHV4-<)lnCw$L>F(64#j#tQ=PHn&w=&rdbjm-TK$BX&#HUuGuwBEzbabD%%D5 z?S32bRqCrj@=3@SF*bT-(C|PTOkC= z8mly!3VgTgZzA#MrZZzzJ6|-k(U?q8A+pZJQsdKZsuX*Ng{(iQL2aUOcv}hjX|rqtlYEQEWmp~ z$Ym^8RL4Pof0CdBhk zd}XpYZ*K{%l;kzY#SfD@dj9jOwS&_Wc+u*jf?ZP|<8;YB5--Z+m2tef{(b2Qz(Dge z&**-KK&E+ZAXlj?I7cw}fcH$s0zhr~p?Od?hcpdf$>dRI05tHOM_l%6vVRL6ZWCyu z`TwvQ$!>js;}5lUSPInG`ODzVtpgkWU{1Q$ERJe^o+9=Lj`K}mJPJI%G(~S=i1@ExalzNd?BhXiW{5^`ur@0Sr=D1BVHW}tg>~GqvSFkqpbILJiMd)` ztLLcLzcH3dcWmnlv9Zp>i9sz5;-aesMd9c>ssM?N%etx4~bfUPOKrr9IrO zj79cBKCH7Dpu_hCA7Z-g=JcfcIZpW^>+{GIpvwtEF`bT$ZWR9rKk#OJI4>dmW>tK8 zQ9}6B#jbRRYhf{R2D7*3T9@Dme_dZaq8K&wUIujwMmJ$lb2+Ht@+AJjxPln4&4lim zguw4iGlXNYa39=!<~}nSohO&TK%b8K?ST$@@ky3X+lj+NF}lFBxB}p=H3vf*8)xabS#5RCLp5>s^c)PoX_;KJ_0qy zbRBXI!#I|N!|eS~az1R(rRS^x{mE7Z02Z@wuFw(3SNpQn^rGcAOk;JGu9dIN2>p_g!+pR#=bcP{}0yh z0N`s_4t_@Uz|UAOekKkzI*A)>eBUqzKhq`~okE!a+~~9*NB%rSBX*gjT(TS;SDU3*M-F1Qst^RqFtl+(0V)gR5#IZc8+*(I-t^7>Ka<+fqe6Cb0`N`2G z%jLM{!fgfEj~@7vaD|8C(?qWwcnL91guPVlI9Em}2j#`&sg7jt;!&&QHD+VZDD;nZ zz`eP4q?MfXZ!DliwL9T#WF?%9d;@1AX->@922y7eQiz(IuGEapS4|zkC8LaxiHyjWwm%f>UXz!iw?4CFDTx65D8c ztC}M8ti8Sr)ZZMl<6>RQbUy1;YkmU#GIW^~)MW5TU`>)YFl#B!J^vlFlNg!X4^4l=qZ21xH=nS)@!l2s^$VJXYOlyB+(dQ)hdodd?m(P~;*hyXUm}-_G@hf^ zeJnni5XSw0oI>~a5W4$A=+2E3y2qa_7(iFwa%gU)x>H9|+EkVLn|QgIpO|GLi;MgX zleA@c=B^x|z+R4Gqd998C!mPwCI`{0j_wT}0$^YWbBX6lfCB)4o*Wuy0E@YCBKqF- zAMV#8dT{}kAUyJn@otIq#9uRy9%9loJT;ZznLHbrV489~10pUeSZB!^L?`BIXWP2hY~5HO5Zu8xO{u8)RkzB0V#^wJAC2=ayYJQ7qtl_szuutoK{h z+@5-LF^*rvi279>OW2=wK3A!S`H3C~c$k_TRO<54m5Xo!GrTDLujt6)l!PN&V0R&M zGXPGM&%vi0r&-zRC24&(TI^*;CG|XtB&T4`5Y#Yo;N*FxtaarGSj%OF2=4DPGXp)u zm2NHfLz2kE*k!1C$jczBjQX!My;H*Y1ab9CHGj~qT^QKCEn2t@+g<<2<|0P`lPX);rA%)s2h zn$!W=E8Zh#jQ0m;FS579RLAfZ0&n)~HND3Up=A7QpF%wH7ia@z&u4 zvINYJRuuVms7KC}aK*=fQLc3JFt0d#9rqkugK|Xj->vRR+6@If4oSf@zEq#|OO?5q z1D$+vcv@Ob7K>Z{?ue>M(DT-Rc}9iX&?rt?a^0H@V+4 z5t2(`k{b0hRsG-b{mtEK#_R(K?2!2-5-Q!tnW4^qznVv}DDa&+4f(?ZAf~J|9mK|+ ze+Cb9F=oRUUU%x-9E;wXV+>2sG z;Y+bB->^r#3EcXn6}LPK&6C85huIlu(P5JiLGvqzs;Nlj`= z`?ebKXqe|ZK~mp9MskpNid29AXJVR+k2)1WHu56~Iyz#VB~lt_hfjS9%Ga=bRr7!g z?T`9-ROlF%tQ-pyiz^3ft{ZcD6t!noE84k0ScHHJgr^ZC2$S3(+=WOy9$`N`hv5wm zh<}8q9L-}b8`fyjI|xv*=g=-ZJ$ehq?YqduqDb-Dkbeo3X?>FP#AVNb{pF``#Os@{ zNeJ(IJwDw^2zN~gKl@sI{(^+?npfk~FG~nVUWrdntlvt=f0;Xfg8V7F+~7`#I1mit zYG{2AXPc2Dp;;Q=#h4rXs7HqVjynKR< zEn$=R=jAlVT^cO@_BkfV)y(@sebGbs2@<-givSj)c^~GVI$A`bn+Yw~cyUjMn<7{q zvjwod-05fH#1xMDRB#;@&VZ*o=fQm_ZWh#!yd0{;FL<@IwOR1R4Y#+17Cr_;BLi-w z>c8astpAz+$>-2J_xZ-}@jt1~ApW)7{+9lxRB&f^L{p*xlY#%qU(>fQ`an7>`u68g z!+%%bZo1&>=D@d7{cxIwuSI>k#|2R~%Cw|!mzP$xfP(Q<7ooo5v13w;3U*G-EzbM5 z_?IQSpNj-Xxn7)%$4r*1t1-G9!)+KtM{yBT#<=vAqGr@5T(fp=!{9(Sd>SR4vj{yk zYk2P#u)^ersnP8)go$#5lhl$^nXgWLh`(}Y!wfd229~mlg?3VvD=8)Lc#-uDD&`gM zGgvV))*%B49Bu9V5UavwR7|>TO2x}dmC)M9_9NtsV0KThnWk0FrI{Y{b;)kQLAP&KubU>Z66tlBwl%JSH z#ysla2#KW}DM`!4zM9r3=zA*{zxDTme~1X+d&|r4>}pC6v=>8X%y8c>?9+q)IN&<3 zb@3b5{qQ5NH(^$I#Py~lz`!_wn~&4v&h@5%k;iTyRo~VAYYh;5`5P z795_BHd}DCyZ~ra+5ZSsTyNe7<&aPS;p2=YyK}EM1P%+%jo7Ym!SRayH63-@+siaH zQ7YT&59O-$QW=k~Mj#R=P$&v{I9!&hJ}yCT;#q|ruc&`p_*b>Bt+u>=Jx@gc=K6I! zK)}qF_3O?*$~V`qZ}a3+)~{+rH($S`qj3w^<3m%T3)m)r5erhYqfg`l@eCgz&!S;?u2!aMy(J zv(LKnOSdtzJ_dt&SFJml^B!(QvGc@fW1YI?$`qHMUfOdIO)`k86Bz@h%_?=D6eI6K zk>{><7omKR0B;=pavo=i6pr%`O5wEcff7UYN2TDi!9&Lw6@SDcEo4H^gq6t%(aes5 zOZfS;RA^Vn9yan)Jw_hnY5wH!rw3l@^BQ;5aDnG`SvJqpckjYZa8m1vnog)=QU*?D zcf+OPI8=fv-!bwsJc!0IiVn#Kf;kN0f7EK^At?2$GY(b`w65IvnmwW8X8inogjiapv#3=qgl#RdeP_vAGtY8iV1v3;J zi4bsE-2vs1>4{vO`T5@Xi?c90b0#u}f@5^rYo??tz~U^bF)Otwwpp5G&XUQ0rx zTG)sd$O|d@IARKTAyK>XfHaFwYG`g`PCcNb_TvcVRP6SJKE!;rx&O_>&f^fnmUvM& z=nD!%EZwp#R+~?x^)e2jo{>IUt4_P0K>GH6;tTFLu_$;5o{>j`ig@QPe_1g+(N-1+ zQSDV%peXfeJnbve$12bhd5a3Rn#O?T#o;%I4`_sn3%1<={qgpqyyZo_NeIr;`lhV@ zNui`?>5tK<7zg=H_z}4s$SHpdcH?qVz}`2E!kq_!;~+ScsDcjD9ySjS7e~X0cl=() zioiD*)MADzUq`!`!x*6#N!$4QMnL~vT7kc|g)Q{il`>S7Zz0m?^diA!nY$(U21krV zpTu9QQjgqHJ#sJVk$Xc%?%RfF`|omSs9n;Qxp3Z-jQ5B4wIP}+ctnaj;)#~mewN;= zGPQEDf=`Z@;27}pPus4Pr5^zeDV0QqCBM>w&$w%u5OPnPT5r1`+^wJ( zFXTbk$?hLcZEIDsP$UQ7i~Ir+nW|}_eKqN4B=MQ&n7pW`OcaZ|p_5frBViE!hSZ?D zE17hkH6rds4iWV8wWk3IOqytUowZngcV&kgWIU`f|W)% zYZXT)e?lV~KzNWqoG0hKh3Ib=?Fk?l1cbSPA<}t^P{o^eP@I18Q^#8JMH&=puCzgi8>)DJrxMg*))#MmTztvU(wN~#q(c8M>mZP zZlxy<(nRTrmruS_r=ug7tD^LLoa9_k52FLE^ek;z-$`3ZHQoimXI-KYoZ&!#@r?rT z9jwntMNsSL1G!>6=kkUp)^Hw5!CvW3dw=x5uRnbT`w31}?&qfKZ|*lQLPvxN{kHz} zYz@9_?*4`v{=53qG#7lIYto|S%qz!e_}u%=sJ-%&e-MNUM4M5jCH*ORSM+_ZY}E<% zIr~j-OZ&|vHmLWTz3}PYZ}KW(y)w|~Z`mtj|FO`u-vNKQCLz4<(fD*LE(}Mp6?b6H z4>NJa5yn~2xRse9Z!SODG_A+)pXClMZl$&7L7+C0@{{?zUhBaYy-6y#yAA6o!9qm$ld$;i1sViOXzr={LW@ey7S+^FgvI`j3&9C;O+1iarkcCDEQ zG4LI8?`9LO9k3P`>@)7GO@9a0B9AUN(fxaBPg;A@dSlTt@@Kc!NlZ>+gX*_dV9MvJ zbSy^JXFyCxYjb#5$KbNIM$!7({V8Us5Mp*&YJ>Nv%s@Y1unErtUq>-*?7On6WB0hb zX=o1Q#JM{Fr_X95orKVn>)H(1`XW4>J#RC6Gxin;c34q&E51)cS=^H7!Ym4$AG4xh zQ;u=RI)yV+Wxj&V#vOAIS27lo%C~+@#%{&dMv4QO>e8=vL0Bq88txel z?_F%+ zV5C|^ALb{ggj3kvsx_jBs}~W)Dk4)QkJm=lV~CEv!Mr=!chXjW-hs+3Gfp@{b0jcd z@(G1_qwNI0bxW3Rw?FE%Yl)m~*Kdy90#l6MMPu=ng0>fh(OKlVd_roKQp z`3ha$DSAL3-fH-LRp$Vo5x%-sJpx}K{U-`VIsGdBs6%*y1GUBIKQsup9|P$TKPr*^ z6;5t^Rkv_V?nWnTo+bjq9j-)S85;Evp0}1Q3Xd9q517u;v?4SqlOFFyeH}UjlL}hb zB5PAaA!zvzRL(aIhaMk}v)~${%~DjK6sOY%;a{EV3m(id<}4>}g9noXWuZY?4TG*v zE}iJNzRg>WvxXZxhev=vOmExUYb;x2S!$5{0zpZG;T7@nxEVTYu z{}A4XzAM_7nW)*JuX%o8;{&`x8wUpHW?5-B0nf&6Tr&8Iuj*OBYKIb3P<TY7 zTCutXHAeW-c=bZb*6WYRhLeG-*<3lSH6rg~WZdUj_AL>pjNpmLADWp7A~7nTVrkrc zhsrG}hdbm=e)@6%R^JbKQ!yFS)N-sM)_1~2RCu_Xjid+%=@rB#6D;Id?1;^=@5`nb zT9~ai3kjkH426$({F5S=;aB)325}xiZy0br9tl2-FIIzL$pT0AhZdA0cOl$`j4vtJ zX;jeGfht3w9s-a0V85O<^asuPkBg-X=AuBcwagc6#8t#iNO%UGQDy-qzg5S((6}oZ zWS-!TR&eFwF)C*utt5G+PfX!_mV#Z2Sk@4BKiE%(x*yFzpd$Zzj3wDmKfuT^W-moJ zG=QwF@>PB!$(MJ&8I~sMg5`(<2zV;yn4;v5f=vJkk1Zs58|nbmF=*I2%=K&*vcMfm zmM8datGUvH!1e4VA2-R;kDJtw(dQq&suidJGo){S&;zFow%axT#9uvKuFVq`mhHD1 zT}(PQ|76>PNERjoeTHnb^y}^!@a&PHUw7Xp z5MaJ>VUp*f#i#nL74v}`(;C*u0WpJLH{v~>EbNEnJ)X^R9!bd8b?qC1%hQTNJu^(J zXM1@&o*t+)#6Bz4gJ*17@fn-cgOOX&EFY|CB@fo59*$g(2zk;#=s>6d4eGaWE<-KV zU(5LS>g$z>{v`gW`)(zdm4S5l>)oJP^2|0&)U*>&U=*mni*p+qc8pWuO>p+W` zgp>r17w*Y*zbp*~U`x;(M_0HM%@Su}q5 zD?jIyqaf$ZWe6b)=Ja#?3Y)wO{IJ1E2sx+F`n0feOCYnbU~{3h+<3UQFz>U9HGvy^ zRp%l%DCv@ZAoOv_Tyr&k^0#O@ulOTKif`7%zg^9b6(_ckpepVaAc2mf_MQG zXxxA9?E;5UnTpc>g7u|43iCFDO&Ifrp^L@gA-G$52O%vgSc9+o@#PD9;W+5tS`+4| z3u=97@LTd6@&+5>2v94$MScCu1HIJ&b!m;yNMj zD5K&l9rvKb9fi1~jf(em+(Qy~G~%+1iZ^xK!xEQ;xXwn!Q#$SuiR+9wDCzIiasQCG zV-VNHsJKPPJt}cs5SJae4sa}#a5lnS16LsYn1s6`d~Bcu;m0L>EW*bH`Xc;3tns(F}wr&g5KwNF!&RsyszpE=DQ9J#N|7I`L1L>FY`s^Zx}Ebi*E12 z0h*g}jP}j7yfhLSC#2*>yZumKqymMi&%_txnGgHOOgon~{%PhB)--3o+^AkP}Cc{9b{JrGzZx2^Cm`34p(;75cZ!aj9(Q*k>7AqNU?0Zdq zjBQ#UY;2PAx~M&duWADE5+q)xzIF{0D;P0P|5kjm!7tdB}I7&iAzB zyN>xP67wx$zP*q@@Hp6Xbj3c;EU{KovB4`eu?ym$uYFkU9>9En2|s+XV1MQ_?pbLD zr=@`~{))K*kF2l`0n_ly2P8ZykV0t%B}sajG(*FHAE;Kqjn(cSFssQT{nl70Qio0E zv#b?Yp(yPteR~d5rmlDlfQL#Y>insEA#Ihk&<+9yb}K!KE$siS(Es0ca5SEna*>wiM|@M9ZPs7~NBlj7IAQWD%^` zdW|Qotsuw4*_Gj}HfF-)oIlZsxRO3Zd{tzMnjog(%OQwg3NV0YpCklPjs2&LMd+{4 z)2HAGM--&J+cm^kWjR9f@a;eF5xNEPY-tA`rbyz0%nEb@e`%;5oh3>uUPN?tIm6*z zx3Q_yzGj+s5?1jq-TTO0$YrnVY>0-f5!kMRKM-eSty!c_&BtHIgsQbMXFUstJKuIL zrsvqyTg~M4P21*UpmL0g_gKLz_?cffV5Ej-t9k{+$&l}uDFr9uLQF&87&dSpQslS> z&%>-&k&W1GB6b#=4NuF(!4{)8B06#r>J+)vu2;P6^g$#G47CfeDinB(1+=2vo22c9 znCo0H1PtqqKyc(G@+PT|BDSyUFMw6MOLGs=#l3;I1t$XM$V36jHPF7Q$5`e${M5M1 zoWL?yq73HcHnif7wi5JBz+5vXp9{)1F-mIP(k0 zsTW&yf;4*#c_>#T4E-HQ#J1#*ger2=fu`y=bo^8uKZEfb5D#e2Bu=9I+Bc#w%1U^% zT?}ZgpI|{2XsvdC&jkQPNie;!CRTPOvZ=oGH?o44!{r$QK&XLg+;aw z1s5WO^E>$yoK{AL7|1Zkmh~W0raS}`q?T$egrQTI20BRp~0X7bo-f)$l+#+)Fx z4R`3;3$oyBR$f<#UyRQa_z@z-JjhV}y2+f%sDBQVP}k?Hn$5wS6qgxQt?LO2HISd} zQ$J+;!K}VVn(Fm0rl0r)`%y>-hyh%HJK7B0PzJ_jj=i{tTCk2fENqoKVe7|d>LP!_ z59srD4eNENfTmrEFg|pghSBb~uj+on=W{YTJp+iRp$0tx|B5o8^9|rjp+TvM^n}GE zX73Uj)FUz7TGKQp$H52aFD@POOI#T8N~Zh0XoSbag{`UaVfb*0OQ(NpYigM@FG7Pd z;_A2U^spTDQ}cnahLvfhz$;cnUMI?=V}NqtA_;Ur+n}0L@J%lJQ3ISWE|jj4FdwqYbbmjVsTmrKOO`8onAYG%Tw9e5W1s^zjDdEII94sn`#5R{o}Fu@7NC0 zY{7%@;y?%bmuz=9!Y2@&ec<41Yj7@-LxB!(QrYfcy#OQE-CQ|A=5INua zu$qlV_~;=q!G-2DmkgVx{)Q?bMoi^ZS}2@u$VR=^@=;erX8i;2nPR+zc>uBL=o;3% z{_No|Q;1lhlR?>W^dBCS`y1ij?)1>0k#Y0Gni?Mt4N8kk4-JZ6PcWS!&Bw+|>jTuk z(OqjrU+NkIzL_@%8~Yj+G|-;eFW7iO;EZ77DS=aijjaQxU}~+wI!LaDW^j*N%J7xmPB{Pnb8{_ggEfzri106)w^w)iB1HG%uY2lDf4s zhAdh>VZN+Y10Ys#s*J*4_f#2wV;@r{NGWbe?v@Fo2B8~$8_7~Y(Y0sA%Pr&g2XVeymvzSphInnb)CS2)u0X^bHtS#T#^NRW0@=a)vH=bS- z=(E}S1z{zXM6M;T0T_j9YBOpc#}5|4yH9r(!K<=t8#EFNh~9=jVZ9n&O;a)J(Az^% zei#JHaIcF{1#4I3n@}Z&tF@JDjZ9@Vjx}s-{&0N?O-;q>^eTGB+^0dlfz(7XheDI- z2u(wC5JRD9q$4zq@s3(i&D|;*{rpcj0(|Ks3<0@BtbS{%SHwngFZKQ0|> zsrH#+%O?nHv)@=aM;Ea9pEXrm+Q-s+B&2H-r&zkSjkd$h#;+Ow@yCsC3-UrdKMW1Z zaq~OmkLQmRSmNa4L2>*M`OUa=eGW{jD#r-J+6`YW{33s1dx`MGw-0>9)jzhuOrM&G zN;Q4$-DD!>B*bX^g4|BpmJ1 zIb)*xAsjj9s4iH#>!G~?rP!G&kx7RIp2^MNnH+^@aw0s3xHlbEWU2gy{4F5-3H14y zrXD|OAK|({73H8AoF!A2BHK2ea;OE1$oj>;>1678@%~H**M37@iU>x<=fE{L&N%Z)B*Vd#*t~#cx$xnu@*t)9M*P%J=yq6K{%Kr1c`NuqxakrlPYtIiSf^#Qe!e3=rKwj>+z0rG#=sOD+hz)y z!YFU6@r;UR7>MF5K>sRf&GBWjU9QbF*W<^*S2Ek3gmyIwhO@C~anawg>$?B$a%=L~ zf0T3VZK{Z6Js$3Sk1?OYeE+cfU(9^ce|Nr{m~Tf%^#2CwzZsg@JMziOROkF%!k4a! z57#B6PfbW)>5Q{XV3`!SBZ9mwY%RxAWCSCgNtIt3KGrq|b2K z!%&{kPr<8;P)dvpG0Py0tx$W`aw3*yjLN5R0$2d?5uP?0nE>i8#6^w=>xtukkpFC8 zTj@@rPn7KLhLG;;b7Z?~^H1qcxO6n?%|vgO!n`f6KKN(Qf(HS56u3bp?NI@sDF?v_ zJfk8Ftx{o_Pxyj|k2fm2U?yWCQ(wq)7`cO>Uu6e69rqJuY7AZQY?rKuQ-MBZ4= z5gS*G6)f_C7zq~a$uvmSP>tg+()?hq;|2RhMHeQ@!DIO5(P|lx%_7Nmk)bH!bjBuu z@88kjXp`e0fBu#2LTZ}BDu&Tbm7oT6(X8k z>jmb+Wz$^q!Io8`>*H^QQT`@(`MCMoghQOf`C5N4#XTSO{AWJcZ*l%F0bLT?ZYFE0n_dl-oCdQYK zYp)4Plf?d?7Z1O*_enHgUF6*s+FQ(Y8$Z*2rGIxs>xuPmVtVub{WY2o{Y!10KFF1R zT;6ac)kO}p0MBAq`f2g-2*1NqDGtBm`H!uN zdViSpA*vs#%1|79E_k3v0QXxkAS0uiCOv0GNT^do_Y42}ob%albpmf4?a8rcZGiUk0oE0m&q+Q~CTyU>;Vq2&W}i&(d3dy?$*dY} z|C7d0KXMR=M^A##W(`0~DMsFaO!bm3RB;Xp*&IRacJ8y|Pego;<`lctnX4Tp&<@d# zJe|M?c)$Fzn_crC;mA$#;hPe|=?UQn%Hs3qC4}Fc>P{C0KVhtX1wS<};s@KzRXNT! z^FV8tg5Qg=lv7V$%F~hn-3P)C+RPkT-cG@Ai%LH=wKSb)a}^6%VW^84>W`Pqz}&Ym zY<($G^E~QFDDl?~%JJe8hZjXwL{2QK8xgJnqMFpFBZTMAn`s)Kbnkf{67vPKwL#wuctu19+7U?wn8@`fE;6DAf}hnHu~$HIOgI z0QUp#hC!WL1ui$OePCftL(6C~y>fz9tJycdZMib!m3OTw4zRO4M38qxU~`PHu4SBE z3zXyaZ#w*oymRhQT2!tST6uxR#lsfPt@KGhnnf;%%ibYSDNYw0qMQ5Zt4hNpihT_S zTxeu~CgCB1zp4W)Td< zKO#Esn$%`QIPm9hiF`){J7MYieW(tAM7wV51>g;`8~H{KtUJ^bAXlCez&Z-$3oE`c zDj&m#8M-A$OtpDjlas$iqd=9OBh>onipX?iBHyt4pT9*oAri(C4Df%a5rTfcG!i*m za8?eefZKj*b3JE@F_+p$=r$UP$1am*c0f0f5pC#bsgL+%Ie;Abm%uj&vkTRflTDE+ zw&n|ba?e`tyQsIpp@30r;c#f3dgv53HlvHP6WdBg7b(RdfylA;UMz|~dv6on#c3_j z1TGK`Mlm+Uq4K%XnE{!nBw^w+(dPgn9RuD)YH^i^K2MJy*;M@a{fzPAs*I6?Sa?8f1D#{&j)E>pl-YXdE(aBi zlG?e64qcjRh6cjqs$(%!d1h#88VqFHp$6P;AYJ6+ib7q}w&?i&r}=sKKA6yeZig-; zoBK?h9+2I=3^#Y&&+F}T1^NT?qw`cctPGuOVEuKGxya|t&qVzu_xBV*(op}NM|DAR z4wM5YRVBKKbYc5cZ=?QaZ7}R?Do^qRJ`YVx1+br-cV6H_^^{cgT}^ViRHa($JXOe} zu3>qt^^kPJctzyvdkAFGFgo2k@OCOdP6*+u&vaJ`;efB!}DI%z4 zuKWaURAgPV{OqbI2Gw2nCnt%qxthx_5K5DpfiHF08y(>P@f8hZWXqs9eGBO0kU+FHkp>2#{ZkzDu4BcEek2(*JXQH>+ax~zD%hcxO)8flN8(03c7Rs}? zuJ+%VuiKXa3HN#+uKW^UKC%6T@^j{^#S%$N1C1V(SAse<+4WvspWz0Z25u zgEP~&JPH9^!0G7+f5=kTd<#wwM+{`S*TEW2y>lJ&LUNO7e>tKclEStRAGkALirKS6 z-TnNoCU7UJk|832i^&{Reg7)!K*fcuryTX*BA(PjYrRl~XB%23FS#E>GT0&(npi6^QI@T==k5WxRuIqt&Hoh_xO7t2M`7;_1mk zxpIH~Z#v~!rXbQ=P0D4;06T?8lw<}ta0fvjX> z-ZEqe4}iVF=W_X@*s_s|Z5nPz!e>eC&eY(xJ!a@(jcmWi6Ip~F&gbEh_`QIMO$x8A z+}ICM1Lz(DFD)9K2Ef4hV5`8XjLbn~g{K?WAH$u_%x=#@nOk(Re@DhX;4(H7qsJ)_Nj?&N&X#H*JI&G_*+vCRR@AZJ~1 z%5;yJXHTcf+jKSR7j#HBUyrXUP()IMuB6}(vC#U!HtO@yKA7rkx|p#~!@BK3F3ht+ zYmeWG;G(j);NpuTwQ7u3lY`Yp?Of;MKA84a^9vSt)^-ppUT`PO_WR~v*)K_rJ{Nv| z?8B>U5+-H4-sS>whabg4a487oAtOd$IGPVO7!3}vKtRE{tj2W7orr!8mi=<1X;uNk@e(T4={52>n zG=OYo8V1E2+61z&R>9XK6r-o#Dqe~*C$QPk)fUoKmo$pfv z`DiK=m+yPL8)zF*Xn6(e3H@6|x7m7lVDi-y@3nktqjE0>hPb=%3*s(__tWR_NC0E_ zrz`p)WtY0AH|(#fHljI!4gI+c?K=ZoV3#*g9>QrRZtjb=r7hys+6x<-ipGBI$HNQ- z>y1j;zl8>5*F3>~V4T`&OSZYlS$TW>hF8*c--vpUSrv#54``0B572v|`W%zOvMx09-L- zVpyU7=(i60F81-wTU=uG4d)%!T>K9;4!l#Sv5hoOTRrmf!pa6-b4?3e;Sb&Jc^Q=# zTN?yu*)SGccnRmm^_b0}EIgLIy8djT18Y^Jjm*EQEgIUcfVO%XzH6SukB|@L@$Nqz z)&OBA0FNQ+;a73Z8I<_VOrgXwxFm8-Kc1KF(e$1JhWF;B@ z+EeGHkD?@%dOeO~tpQ#(eHIVJZ9Mv_AY3O^`|wkP#Wl(Yr?ciOaRa1&qs<2&Y%$*@ z%y$m*p&$8Msvkloz;!-jPXec_zgtSj=%tF#>@jKwrGYCvx=f!tyXi?xCAm{9XBP-= zF*O*0j#846ItHBcLsY@x4j;C|yjg@wYu4gN<{=j04E4nB!?Np^60!DuRXM1(n#?*@ z0F&l+RHG)LO#ZU^2VLhI+`!1_hRQR49iFq99PTh63J<4Q44$Kp1P{eS4NtTHsyUbr zc((3p29NDdF5Be`7D@=wa|dVUVu%j}d=51p10+5JAc(|vP;%4_$VCWzby~LSxfDZI zHz3=N$WedL5jl)FZ(?dG9;cX=nN&JRa<@s${mWZYTyl%K3)Yw)Hp8q0O?g3Q7(cLB zcsZPyihD)bR!VgAY`WGqGBqs1Jq+kqJ;pjKx0HTlFH{c$k{Yhk&f2WffRlH>7o5Cq z^AqkDxz(dY0Mo&@W+8=G-2r{u-LOz^CfMfTYYt6{_f0gAU|`9L4eM$PJ=j#wyOwi zKO4Xc!KLY!80~9t)NrK0$~LgTS9Jy9;l;-|c;0J^`d`{f+(ag#xWi9;m-uXZ2Q49H zx(NrKKS(sck78OaNuZb?a9aNejv2Sv8(i`ua$u^I{vI zXFjfIV0sJxz^drmBu&xgxQEn_8hurjQdFaH)(H+5BA*#SJ*y&W_ZLNv9hBo<;i71LDA;%-F?+NyU z!)EonGzE6YT`=d=RuGzrn}Z<;XV%fQQNet9l5mqD)hu>8iXL=F50oKrk8<1pp}tcv zu)4lGTB;9T%tNopsVwGr90%~1a=55<#g(H-Qm|i}Quxt<5vHE+ ztio6IF=3z=ikh471N3x2^8$*hSL_q35jurE5IdolcVM|r9m`g@fD3er%Y_Q3UV>T7Yj4;hTlznlk(VzUxvP_y+$Le5bONX7JsQ8Z~^E9}&LH z{s)`EH>)2@;ynzaka!mSWngzBf>4bJzTpnQe@X$Bw9Vl;f!*n+o= zzh&?go;bdtw!FjLwl5WGrPvAylz!k$;LIhQ<;3GujmJ}>aHhoIbn~BK>bZpRzJRSp z;T>ij79&$^&}l__%LcvXwhBQ?VZ`V+z>RRRM;GuWCEiyE^^3fT20)AzfC%dwyus+R zFxmH~6`T_|0V@SG8NbMVA@C#maa)BlzJgVynbv8 zqaC+AGfYS1uoA3CUiIpDNWh_Ky&<0NxU_YWy7&r8#Bd@tMz+emZcBn1=Q`Z40F}ky zqiborPA2as(I|n^2Gk=e@Ut^3jS4FAprMr!A&0l$d;=tEam zANWRVf>`zle1*n!<8~d9!)hs(Q7a;X3l>Pn?!c({QW}+mNmfZA=m|uT5J)<_BPPY2 zsdQ@w4d#ij>PG-t{W^YX-o}r^j}IP3`K@1L|50P_KfY%^k=xz*K4QMb%y+NOcZBg; z`Q!h}czusc(sASUxsJ#Iu+7ISiBpAx^B<1aoWxdcbhV<#EAamR-FV%82zZ>d-5IZ| z!32*mUfc%h@mhvHI^$K$@@JrYbiCR#pNy9~pNIL{GM_zO@ZS!7CLAW&R$MZ_a`kmJ z1O5qUefr69WPy074E8>vydVyjqjg9$#o=+DY?*aDlgTbN3bz#nZ-G$jFVaTh@ly`R zpH1tF>I!8igmc?$b?VE9n-GzW>f|6-b=46$jPT96C3OZ_`%F}tnM7B4P({PmUt0oz zxYhn{2Ou086|b_qbwzG{KfON{Wm~g(;W^0ue{~oFdN~^aJcaq+t6#+E7yb{}Q<(e| z$26AWAdQe^tC=q)fckeGk;9s52q(3G*SssFU{sWGC83tQ$STYX!2w#K^rgre4i`c2 zk=BDuy{b4mp0%jO8PDkl0Oyt4ppCqo%SF__1&6u9esG!5D|fNlP;7yn58-H%W|^+Wfgzih&-A8NTD<8?b9-0JjW>m+GscC?+9x5xLxSzl%O zLK|3~%c*N*dvI&SOXe7^q^51Qg2~Cx^9ayF)6A*34{{+;y(ZATI5dkzVZ`9PBlAN| zIwD}W0K#+MVV8$#z*XJjrB!*SyV^gQW20ecM;K7cjJD?epu4mcw&)2pnU+`ed8WPm zMV(zv(Eg5Ome$a~0tbk+@k>(0?}?(mVkH9l!98eaaYBt-zzymHm>Y1a%wZxZbvF!6 z@E6C#_se;s`tnrHAzJzb#zWSHy-7Dz3-GR>d_DPH7{cT)dlLl9;?NbltoV*TLo)WH zVMUgGVDtlW(I6sQ4cFB`g21t+T-xIdsBbeL(h7}ecBm9I4Gc_(Eti;hRUAcV6Y2;s~O(C1g$iwKj%3o#(^Q+Ys}DS>rd?exF&{u>q`gu zJS)5ZPlEbxU^N-GT??GB(5bariV7^s9Skf4(`|-g8xO$GEI1R@$JJ3hAGU!k1)le+ za%8Bl(R3+YLZtMH{kZ{F{RpF;%aDzDhV4rey>pZkAJF^ZSL69wd^vdD+Ww|Y=>U=q$21KJq)jg{9B>Vc@cjQ6<{zusrbt+ z!DK(0X+*$prFxigr+f!I@FV$_m?iqrb{11;*6t5`j`r2AZ0pbeYEanI+aK=PRf1=Y z^JMvISEm=|uNxT7$oJLOcJSqI7!c0t=*O8@x7xKG^FQ>3vresD-ZpjXF$-Dc9yPsS8J}Oc8`a|t1fcie#ISp;3`||ho4^QuazGir8>pJ-J@sQv_ z3)UNc>jQuCj@l18<{vZqI)2b!5X(d%Fv7n?7%`G?bzIuaLRs|JB0qX){B3Ku|B$9V;ukxu@?Z>*b zwXIz~)lU})sm3HM0o;JNpj1IzcwfRMC?G2NK3_BMo7_Zfzy1FH`0>!(d7n8mbLPy< znKLtI&d7}>`P_(p3(Ctjk6C+x^e@DQ3d9cypH%3bPWZ+VdhvyPD5Sqr^b^y+NwS&$ zUnAyI&=2wZy88YW%6E!tOiwl`M)3Fc!Xf;s%q6_bB-1=(63s>|1W|A=MJw>eI!);f}e5rioVXdTeOfP^F8e4 zQSnpw|JuRTThiV2+X>!U;8w3ncb%td0?BgZz3rOchXrja&^v+U+A+|NIF-rTQ*J-MgA zVfQ;(Zrc`jIGH(jpChc;6DCclUMsMu^VGZY5Xv;E`b>38DSf`P=-nJDh^)<#Kbe^s zo!-2?mFl9kS)XN1uFKB;gsBnb@TaZb|W9@yXxA4k*P^|&yo{V1q<_fh}6+K zs^@3ENDa7`81~Q_@v+}bEoO!cFUBCtpHylFz~lV-Cv5EKxcmwwEm!8UFOW$AM4=aL za+^Qs?JnG@eg8=FyV;u0XOfCG`kczPt8>kxE1mqmyN<+;h{~D_&7PS zIf?#<3J{5BO<@hA@EEsfW7H$%{g#gOy>2tF$EUw4{zv1HGFcWDxZa=4_+bg=f)Ssc z=cd2tdOtA}F*!vEYFt$4ITrMWNc{VGynB+x^RUXfo+#&$mT1XqLfoRSN1NRAmqqWe z+!nAY23sX@youNd_IGvT3P-7allX>mI}4kAm?-0pgMr%%XGYQwyI5e&rk~lV+o|a- zuEj@{sUNN;rSoWuJ3LT_9%;&H5h-c3OK;HV2^;ysIq0qW#AIU&pT!%P+S$e2y))47 zq$Bk2rN7}`dDFwrtmXRCCP1`T-oA4EFwk4lr#qWa)i;@#%3h4=8S8|U)oZ$Q)A}3| zZF*jRki0j&mcyTQ`m=#QGn#E?SpON68EcZ?<<6${Xbwtl{)C(v>s9*mBtkIrTkgzg zQLaekO{@8uwFUecYit=|XDYY9R1j(2RO}8CBGP7k2xKa9d+GrKSMF5&I{hJ=Yd==p z>w+Wr=ImGEYu_i=IUnZmxBa8(&dis|3!hD7*sj>OguGKI`^2G{tqOjeCu|g@nXh+Z zZx{Bfo!EPsbPRI)UXvo| z3ps8x7u|bJ@vD{Zhve42R@4}@)u62u4MN+KZ!jRFz1d(m{leL}0;$ZVO`FQxlC@5) z&OOX58b!-e4{{k;7znoO*}{2N8pt2w+it9XAsaW5>eh5#JJh=iz1hr-mau(3cZ(ij zVy)i4P?wPru{&J`|I;S7&HmCFrHt&j-^i%OM(+}$D#o`G0rP(EkZ zO6Gn~@@3a85{`q4H^dOfA0rJ!$!kVnWODCAr=M54nd2Dn&0BlBj86&R!5W7p;|g)2 z{%C9N!J2U4D5r*7wTz9=Gn~8kDnuHtI}rPD8qli4PdS$@@9 zs-0P$ZHqAR`A1PHiKDM?M;w)WOz>T2(RhR*B05Ut7nqv7>%vu4DtQqnlA+Pa^y|h$ z3}ns98pU>Eb~K8en)#51WGiG#OWu8F^T~rlzb50({bMLi+efc(@d(yb20>*&#%vL& zY!9^f{IBkDWr9D~u2J_|2M98O@Uc-HgW<{FHagI?8gKNlE74F;kVvP**OJpF2Gy)j zgtv}vbft#SVSZl*0@&H~0^RI&2Jnmocyzuw8qMn6pg7kaFo|svl1lfQBk`cfS%*~) z5b~g`L+a$OX$ZVdyb>N%))1$X4JLF;V9Z$$C7V7{XamtRl<@&!9OBQldzFu}IIO&+ zxtT(h&jyoEP!RYG-%X#vjcePK=52-ER6d3QibNXBptiI22&xeTpTIN&l~S*iurbK% z6c=EDfE2uvk~ggo305MJ!8#zXkR!3P(Bx+BMnXa8)IEgZoKnps)znoXr{9Ei{5ih~ zC<0+7yq${2wSG755p;_&DAc%>DeR4s` z)3R&@St^YIFoupeTU(t4J*VpHvE;k-5>3^zUkWb%faLRKChlc2a%5*RYa4pO;W#Es zy``7w(#^sZ2f^y@37)fCrHuD|<%46>8nmQt{5yX@H#-Xc>AV-vzA|OMrhXaGU5Lqj zho6z$?^p}+L-yRFKHJdI_jctQWNEUt`Mv^bVk8_0=DT88D*F&zo!5M~|J@<4{~`uZ zx?8fmYDeO$?A`}>;?UzzaAADNZ@Kh>dScVXjshK>uO-WSxz7Epd3Rpj%+H$>`DJzU z4%gw^yJS_>Kcn8J#8s?|#1HAw1!CCjpj>B3pS!(2cjI<{+}-KTTXS;PC%-b9x8~)p z^&rYw61_XK`JH_8Wyx!;TA7%DvYg!SWdBW)vmi0r0E6=&_*?ltd?2l3aQThJLg_lf#Lj(-t_oBdiPxA-~@L~dh)bqMTEI-HtzKBF<$MW46lJ=OCI za-3T232>n}qv{y9dIc)m=E^z3i6O7 zF1n`hsMXhHp;G0RWXy3fmL)S4sC<=a&`$N@VZ*Qa)A$qqB>P|ZJ?b-mb#PW*(8-UG z#ecXbet+R#WboTx61`rAVIA{v(0{+Da?E*8YB~RWmvkqP&hV`r`=xV*_h8Tb|0cZM zt>DqeaZYY}I{o`d?K{b~?-<%Qk9_{a_PwB!&U**(wYA~Dfz#$mHeG#{z}Es`Bb4AR-~f-Ua0S_ z3RuzJ2DiKNKN3G?T7FE09|h$2AM!)H&bHlT37X_bp@_IbM0DrJzw7TaQ~P_tf8O8! z+4djy_nAHWyT+yM?~7CFGwvPgb1&Xo%mGJge>eE1zo+6C3jYd&|0VtXj!wR%rrWWF zbf=Q8v%fDCo@wM%ycNRhSP?XGkN%E5aZ;XLYuh~)?*-xY7G8>+>p8xAwEvUjWZVC70&0Kh-je_S zFYPbWH%tGI2_^Y7M0Cw+`H$OQv~_ELNc(?k|Cj&6_E*8(+JCj`W#+k=DfOE27WI0t z`3UWA@J;)t;-4=383zAL+P_)lnD$Ri_t8H|cP8mN+kd6-%(zd*dqH@;h4+8o{#wl1 z_J5jy+CS_6L;J56U50*X#GUOgx@I+fq5Z8@m{D;0br%3e9#q#G;;@i(YLqcDs!2am zxZfcV8(R?nvEKS!_ztI^9hH3+9uo0Rtwfmad?kY0+Qw?>&Uw`bam>8YWMs^ooSMr) z#O}6auv4oIRh>lUzoethDo%NCLsQ!24>R9R&Fdx|_D#Rj#V9F6*P%`&%)?Zj#Vl?D zixXuYF4*ngNUt+$3_VFVF4!MP+K^em;-vU>YPmDdI;H+el0*M-e3|{*`uF&@{8VR3 z^7Fkn;pf2TlKtVaq`s(vtj>8E3V@VE+ecE@`H9YU?| zL>&rhQXl(Vc^fy8M*MzjTmFby^P|M{J;7Qh<}W03ueCW@^c>GtDcRi_(Oz0%iw>>xGzvSX56Hv z`)niW&LLgrxGxl*8TYApuL#c(9vn~6Z!suzz1QV9SN1Z8Pd-Hb$CR;O?S0$3G>h;s z+ci73+IBsX{)e%X);k4A2BhzQs{iGa#MbL)Dg67M=)Hm)8As3u*fnRpquIkM#ZJwg zCTt%OtwJ%*aB7WTCaNV@FEWjCV`r-+&oon3E|oHE0(dy9o*e(9S7~|siYTiaz0wiH zv*n!Q_cHy05Q4=xSj?=vPG$3Msjka~wQeh-5L*v6_dEN+oY$$xgIry(?X$>wgSPFH zig$tVW(m)<&lLXJ&<_ZO>PwV)h(C>~i3TXq_c{~F4fc`RXP9lD!L$#f;XiGkuJwvo zn(W{I{Tf9-$F+z5qd@lRK_l(A~Yw30k#}cOV-&zvlKIjxo85yg* zVyv@jJA>8@6UE+>@idj5J@YH9}9tD6gw{q3t$$20uNie-3gzVKpE?E6_>uWsW} z2L%)I^>_3j{XKse=LdJX{JCWke{P(~pXu}X^JpEV^83I;_V=DA?eE>vSd{Ye98R$& z=JV&GLHxNwpQDC3{pPz)zqyl~ezRse{btN_`aPzMoPG}~AE)2F%EsxpNV&MNyI1SS zTV#G>cW<#@`hmF%_+dZGIBHPit*@f-s2-=hZ~OgCt6|?6D_sWMzyFNj-FrI|GWpji zIrH357|;IbQ|p5L(Z&|QhMlmnkN-#RJ;24_br<}7mEMXh^2eR7+YYU+mwl-zwyDa) z1vgpQCh5$BoX3;1ulp2SFZb#Xpb8h z73x;8l&GE54xbxbrsEN2sY<^9plM(QkHu*bC1-W!lDPl%M`Rwk(ip)@0vg}pG|6vY zIyUXOF#!C$Dy6k9%cO-yqHQgcgx-!?_&?E-)<*~}e`rksIu~2Tr7I3uNL?kV=3qM4I;3%$R@r<9= zF(wb)qpul7QXuHy$=B+{_D%i?=E#jP7R1u;i#O>(gfiqya1M15q+0%NYE-AR?NPzq zi1yza{lMJs2ocj24d?Pn=AQ~y;tsKSvECZD7uKrj0Om~`>;Ty>Fuh%xh%VT^c8BHF ze!h7;Tubxsa?g^pX5;xvtEpsnU;2EKg{P#j@O?1Mtt;EzjeD-3ue+^fdBmnA`+LN! zFX-#JFvF}yu9J*Ss#<}Z_V4?-`mz~JwbxRWFgD`z52`b-NPQ;?Qeo%^(BHiu=Rsyl zzZ}3t4W0CLZ-;vs9PM`n>lgKFdqKFfJHyY_YvJeXcvehkz{!4Lw?EI6mfBx`1y)LF zzZ1SzBj6_`jWjKZH3^kg!qM2`CVnbvH#jv*352}or3>e1qec8?tK%R)X_Y5Oy)|L4 zCG5Q&>ex_y@Ni{RVj(%7;Vw`)J`QH}p^nP7+I3Yghw5wS?&cBUMvsW(T>se`>T)!+ z86Cd8-uAbjn4!^kGm#BilyoIA^Vud|zzpWId}e;D{{KjI3;0&4vbraPZ;MsdW27}I zZ6ZQ~Q2l(Nif>(IfO?HkD}@SDN8)SByK_HX{Ie!?__mR&HUAG%)GY@XH@aUhSH)%( z?|NC zd2Q9hE%IiL;wQtK%Nj)!?mP9qSh9Uqis@388l@^F`@)`9i0t^|;f~J77J~ATeN4ZO z>m5|FZZzgenPQ8%a>OzWz^Gv9MQ06Q(%iG}x6Xsj3*JcMwd>rdw+iisQ%~1h->80T zHvIr4hC`9Y9lAxR9#>RBUony=-uGI_u#)X&Xfb^SuJHs|a(>YBHmU1B)|X}8M3?R# z(A)Dp8{Gg-)n8ew_4w|7Utb<n20 z87v@QM1qYUoDx6m2=Qep@$M1g$E3thIzs%^l=zuPh@YJjKd(nTn<}RL0u+7LiF9hQ zSo8~^_DhMEyyzDHc=vdTl5X*8zm)X#J>#3Y$4jPkOTWd&qmWs8)Trdw`K?Ax{Z^yu zn|27NuFva{Flj04m4$(`#t3Z)RSxhkJ=H9kSgCEC z5lUm_#Hz{5UP0JMrXJ~gmM@>(@iXp5=#6#bC;ypL(fF?yKtr;>#D?n*TlMlB|KhJv zQ0qw5BrRI6nPUiGJrv*M zr;5P%(9$n~ERBbRr_L5&!h_ zA*^KO9Z`L7yz>>&32R0$SF;AD2DWln5u~Awdpg0=|Um;Xf7Vdt-C3t}fnWABb{9=6JlVrzGmq4?^|l*mP$r zohGPm=}zvEZZUfHU8(a)(qC+ntBh@`A&mobAZ~~lCjX93#kD`U+?LkV5ZB?c6!H)?gwue#Lg?(6$ISV(P0W%bun6fI<*KMZgd`=5RVs5X+y zH7Mmhyj?tu zRS3-N6QGTy`X|zOiB3DvxsAeHG^8+8eHc-cFf|_f2VKR9mp*tEUEF)sZ~wX-BDWD6 z%f17shR6-Vjg{WQr{V4SeEVZSjj~^+l&$5k3$w}Chy#8dRn}Em=bjrut3H_P+`E!E z^Squ}X@=v|IvCi!q-T1|m4+R?s|=&UZ-F;5JyP;dBVV)0oAqKZO0ssQ+5?CQiSBv^ zwu|@}_?F&-+3jyYrg5v}tu*fq^N7VNH#VZMB6dMeMJyxK@dF&d*leGzhp04nID0*n zUupQ*5H|G5XY9Cm850NOj^j)R6SZT$T z4B0WKWU)VBw#Y*!N#77j8fOzW!@@uFaU&&Xs=+#4%-VLh^7V`3sN)}Wkpqu?X*$YY zKNX(s^fz#L7QAqxabo1|7suIC%I|ka%8x6&+9zkzD-ngY$@#GQdkDeba&FqaXYrKK z!X0(0rFPbB2O9$xGAF_=03GaX$nxV5rT+95Z4k>I2uNQq^9AAge45@hk%a!DBd+W=Na-Dy z!;A$e7NPoqVB3CqW3nS7x@M5rzXEjw(e+=9>o4oS=Lzo|gJ+zp!st_!cOiMxlvR(J zDkUy7;+}qsd%lwhcaFa=>&M&J`1UumpGpE=gQUCGKwU7HQ}j!swK3V%MG~8|_U_!j zNa`2n)x&AKHK7=hS^YT@bB1M<-pisxUvn9BKXbC}(AqzaWse4=wmV*kvC>g|nhvcK zLH`s`qw%2^0A#}7t$jLKI2~#xi*nKXK&r;uQ@7qNm{Z@(9ZHq~N zftU5Ex@|?tZX+*WonprRYbXv$dATwg8`55Znm#B}eP@1J!~ZpR1S(>qk&eCe zFbpqo7=an;n7{@~Ipbhw)pB<@L{yzcfrb8k4thdsR-u^MLpYjwCsuli%HHH(O4$to zr!HP9vAWqme+ueGuzz)A{oqtE{ecg&>qqbT7xJoO33vzC>omQG{W|3F#kN`ABg*vO z97@wX0cUH~3uuXFCx^Imu+x7QZO7yf?DxR@pGf^N4Bh2#IaUIu^uK@`x#!s zu3zPuk?J48J`^x*1^M!iY~sSH?CY9u@_^xImhIi_gyftm)l9VD$g0 z<6za~#E&a>rSwOgzjU=e`*~$lCec|!%mDQe)VN_WK_^A z25G@|l`c*VpfvWCqp@%M+wQ{y&O?!sl{ee>-!SdcbVOdJ^;RnyWBF-*1vjSs1fOPx z-A$kIPm8jDhtgq6@1Ab4&DP5*G?DGUA-}Qyn}25XFnfQ~jm^t3&BQLMJ8iK4%Sl`V z76(?hAM6~zvMeu4InT9QhX+h`{CkxZesXYPQKKMaNQio^C`8{lMw!r6<*<|YMuPp6 zBtNKmpjq+W2IVn76gP2JRC%I(l|~xHp1ubW@0C1DcAb4wi~=~H4OnC43wTJ{K7N1l z(6(#)rmohq`k2^0YEbpzUX>?SAMRZ_q55!oWvFZCEIF^%t|@cwZ>`-><~+8ltmZ(~ zbhd|YztWA1M=$x;7*g!ww!PJ~i{-fLY}zR{k$Vnq0k6hT9{>Gd5btTYu{k-hWBrL) zS}Ug|^?coQP{}u;VUGdGpHLhn{8BY2{F;&UCV# z^pS57j4IwX@1McA6U7jN0pF6#mgK$`pp<>n&hn-2?rZGOh%p^jrEm7XrP5Wxv_1Zh z`e<}-ZcL+me`k%z+KiTQ9Mt$P>9ead(*Nl%uLgC=@#h)h`Wa-nHo1-Y+yrA5$vN0z)XMNUA&*}{={~> zJ`zlZnaTMtqJ7~Fm17p1dtKEx7TlSBP1VT@?##Hg>VyTjzpCnI{B$N}_?`M)a?iN! ze~(SmhH=wLX*Eq%Uom*RJe2r}K`pa>&5_fAoavlD$2SZVmF(}wht4C9v1Wa&w)B5F zkq9b0q_wOM9TKGFe%~DZatsGNidR@W&RWY|;!XWbdr(fQKbqT!ORg*XQ-;6oexnbk z`Uy5CL(uTi({=`0FF_35IIu~V~Mo)ltd_V zKtQHHETK-g8;D{DH6zk!`Jt><_9b>tHq8?awc z0QVX~{Ao<(;|oub&13g{;d~*<$3GFTk$AguZ3>qAY8Td*72YbuhWDywnvXPqKTSU1 zqw_OtTOZT}?Y+pw`O1D&-l@@P0tabzy2j&rrv=vxA+=&bN5_*HRkxaBOuL-e?Ynn& zbd)Xzb^ew3)SMqK_x#Yp&jpw}#*L3;Is18zQ!R_-(EgQKPVII==#uc*S<=6-Zfqf7 zEG*jrhk5iqaU%f+8M{Wfs@>(^iXn|ug>L}Xdy-#x-^A)SBlFDrWin&p@cBZn1S>T% zk-M7NL;Lp=^u8yE<(zr7Q^dV9p$$oX73d3J9yV^UzQ!fL%JhZL4jVT{UzN$PseHw1 zQnH;b!2JOLtQL9qSiraZc!(+flh~rLsd2Gk9pfn^9VJs z>5an7f(2DGF;|io-e_unn!#;kBRi^z_Z5L#GUe$nx!qu~<@NzD`1rlC-=cTlFT%Nb zcN-^w;*A*d*&mT3&a8+3e_+h=FEHj_+;*zIxa3t`{N1;iYCx{3M%fY@&8oR8-<--{ z5WhXMuy}vCsKtM)6zvHQr3pRK6^U`ZJ$~EiBBy%WK^%w{hHUX-z3f;6*pQ7EoKPJ&p`YvF+k;d+e6OMX#d000Ub_c05bZ}d1*R8n4gol zn0`-xm$XTl@2ZLaQBn)&(vl`Ai5|aVAB9<7Z=@8PaZ}aTs1TC^y$HUs0SDi1HY}*z zikQQuQiE-mzu9!m%9rf79{=-q7*L?tEY*9iJ?WADbe>}68@(G67+BYcKg-0 zvAmeUPmcU%rf4yeKmL8nMEi*5o=4Ss|1X$G7@~h~13CWV3fQ{RyG?bI<&>LpI=2SN zZ=}g@BxW*ARWWg){eMh3r&+kMZt??DqLlg?R+}rlm=_}4tMo1hQ`}~bvnMBZv8Y7# zfJ54r&*$tBSBC7K_^+CQ1IS|1DXh;yC7zsEO0qx?9^0^pMt;tmN5zMZ`#rPLwXi*y z24%AAd*p?*$(9Ama`I!%xu4G6zFYL$ImnIADn!egpGU$^dDdR@kJxM9)iEq~YC=Hm ze5^jO+{gy`3+7`2Mi+*+6*iFLhZRWeM_p~0xUd&fqWVAjrZUt3$oJ=%3@e`!L^@rL zKh;7Wk6VIf9Hg~laH;Si@^MV^A=3NfM_U!dTW!f{T&%LXfWb>Y=cziY}AyuPr~ z>372z1^-s4S;6U7HC12F6lzLv`rR>GU)H&u)30^`K>2bjKz*^M44FpFNK}|T68gb# zRjjjLIW=iSBwmKawjKQwO}yzRPR(ZEiDzx3N@ue96hja?rTU9g^PJ+JOpOms#B%WU zXb8U_t#Vt7Z|E*fK~Md$#=uxXo^s>?dZYg-P03s&h45xMiI!=6)iF%x=>8SO8zcDo@?I<#InGn7jgEJ-Nz*KP-J;bh zy)zW`)`er|=ey}^-Qv}5aa*Lg&6L^1v!>LMWj9^tLei7rYSpiz2u?eR~iq}Tc-y{u5H;`_FNw=MqBI!*2k)n0bZgWs5 z8t;Exq5p5`v{=8fKJavLr7h0D`i#Jl=3a^bC zt}|wFWwwTEBXG8&h{`7$lWL72SyWXtjX2IUqIhfD@s~E@>?1Vdd`oSz>3TF`<&hil zDx2uvHsZV^H{x(x!y`4~qmqEMetZ`YPacQnUgkyJW zc2%R^^9xhu7Q=#+0eU;R9I0(95SjNpPMV;38FHP2da5mXjUAb5up8BcNXc#y?g*P> z_dKCOi`PfKI8sY((jzuuxNUV8SvZK_#%rIJKzz7O;%z?WN(u#uR#1h`V0lo))kV#Z;`vC#G9t2o+K$%QA6S24_U2pqebf~;{7ut z#m#PU3rsc=>VYOQA?+Gl;q`{vg(PPNO{RjwR{E|E$L?8S@sUnzV)v}(BevuP{zkmL zl)lGJU#~rzkW%FM7V5%olX&`6>BB z`kKTe$@~r72z%KwAZ{Cm*fk<6zD{R54=q%YDxDuAcbf4zYnf&N+( zvB1=;D}O`(uafzv(!Zt)Kb8IuQ}gdZzYciKI;Jas!~enE;PAiPTMkzfmj>`u`s)lV zpg-sbiLm#)+V_cW`GksSUqgRu5}r!`UIR?2Z#f;61~{1m?W7%8lKyh9EmX8AQDUOX zY`-S=qIHSO0Cnz12Xt->7p+dz5F!8U9anw+)XhH`By8oMn5b$#ip$jwYyn2d>dAG6jl>rXe{=fxaaE8^|Y@g~V} z@%c%V73pBfVec^KW3h8XvGcPc)hlywrkCTq%oE)m$g$$r-QqoF;lTPMtQ zgu|h_Dx52R?9^VVT{-+$u}Ild;eA%&9gro$;3%FC^V|b(xbYz`swWDCU8gAI5;I8a z?E<&@lY_ydPH#G?+YlEb~7MgP>^XS}rEf3uxCZOBqL{cy(z>TlBj>hxl|;UlZD zvWWLO91_!b0?6_)$zK5nyXhYqzG7Dajk3UVk!PV8jv}zf!B=9y(Y3T+PAE3vGvkXm zht}hpFlKvf5aJu}HOw;bMZBI6FsFzWoBuw~&qQ%TJ;wd+^@WpI*O?~B<1Z-Xb$7tz z?J#-#L83I_6Qo@aO^-Ntw(<=l$HVFE0T!HAP*`wUK_S5D8#<=D&Ydqtv8Kp(YRe46 zd1TtK6i1bEkBLP+%y18E)Wg$*5%20{>F`>X8B`ixe-5udqa{MR1^2e@k&ZES8D#2~ zZytSz1EaF2HFdY&ggIP?12`&p4R4fi;9Ww%oT97Yz`MNVqI=D1yzkf^m~W~-h`&k+ z;Z5#$>4khNJ>P3xTzF4%t3RcoziAuVeaJNQW2T`sYgH%GnZt6*>WaBA;l^+3aPehV zR(C7E+d26k-BCB8qb`Jf12O3T@d-pEa_UC&#e2mU@U;u{IsE!~W0cR_`S(l z9pX5U&}xOkg}BS>W<=#Ip%hd8wj5{4O}zU{In5vBxw!|}sh`~uiM#sFcXJOj_=JtG z-VUN}>Zq`&IXzHGde~VKA=Nvi`p_+2YfM?;2;(%_7UnEJWzc#&`OTIHE0QS8(&!br zy^JHpkh7-T8=a*EruVwDgtKJCMzgbI2g}lYaf<3=Rn!ho^2+P73PW|b7p8~mrW9s` z>c$mjhUzK{vqE*z!t8Qjy+U>2!rncZVC~Rt2{wD>O%cjoMN)#Yr%E zHe#ZL58iVy8#STv751@oJz?^3u<17_6ibI^QxO%l(vG6>At$J}=h@vGt;VGt8~ue{ zMWlD{P;6qB+0I^Wyj3EER;D|vkpc7$BM-8ukwQ`Zy}sEgLKyhlc9|AJv6rQ$3;h~$C{LSm>P7i$G|VE z2Q@egZ_wqcj+qguhf{NfcF4?5tvHQpUu@TrTq|V$COKZUGs$r;(=yx}so{&`w=Uh&=p~%@+0%ib zXH@Ut!3^HiaN!TKnJ(hIL}^2i12<+BdVTcUr_jLI8C4sDc9PneLtlDKt?5W3=txZS z?ACIa=z9GNG1f`)pR>;qoVIZ$g6%Htt2Xvm?0{gVHu~crZ;z*Gn|=aQotKk+gGub9 zXvwF%B{yx4?H?B!o}LvQl1~SztLT8Kk&?|-56ke3r*0TqUIvvOmeMB@|l>|V&q8A=7n%~b2HT%4=@Ggli??Zg=Q0{UC!I+p6YTgQb0^(s*ZYUQ^KodNw zc}tFWet!^-&Rs_U)QkFrASLXLMxadW8_Hd8gI63w#@^*80d#WPuyASKn#*S>7d8G( z3e9ca-aE8#OGigqS}rfwZ=k%~uy=j|;DzrC8p>_+S}=9FvCv??YhfG0-dboJ6k51d zfaWbGpXPT+JK=Oldei3Iye;>eHoTgALcBD^fwG? ziQe9X5xFmiz4aoiInjIJHk;e?UNc2{ca{MQ*|ect2wDRVAmQ?`fg93tS9{#yo8THc z07F0Ys!}^m;fKAqywT%w-(;Djwz9lZ z6lrbk;n$Shx4h*dX~HC;lAI&W^P&Eghf%u*Ey*-J{)_ zphu`n!@_O3-UHf%3FS6%c27%_qKl2Wt)blQ-o~)^qMBn%Ky=tMn=ZM&*Z7c<8miv1 zoU*xlcRx;qp_lx^-UFI_zJyYd0kuzn(Sus;kO*Y@i3mIx_FnfM(B4OqSGz@(CBW=| zKxXbi?`0@z-fen7(0-qIuTvAXh`@BQB%Rt%$>qR;=uML?t3bId;J#>+Ta+aP3aD$7Y5=}xHZ;l^!4GKGP8NFi zIzCAJ3O`-;LOMVDFdARfBuv(J>1pG+Hc^Idn~#~-Eo|3>yiI0J@BTb;fGe)-jBKd9 zT<~YKW1u~FMd-l+oddFcvVv>A96LlgcKEq_05zSho9E45{i_Cm%Q@MfVz6-(&fwc$ zH0j(pZ`7qTEpKvMHb=g~N-*cZMq52El%<7X*C(^iq&|>0_e;pT;t1pg>sLdcwxKqP z%KvBjF6k2~IavAiNHt5pSXo}Ax|t^fLk9`>=l3&nW@hTeS~E5Q3oUO#R_uY*Fw8qY zCwBJ=aeIpQfPOvW6os?x1$?BnW}kajNTzO@;^Aj&_P2U`AJyY~Z*h10H@kfsORU$6 zdy&x{K?F0NObBaK9Lf=vTCFDjnlFt%=czuVulUmV6P{K4&@YW&^bf_K{H5{R+Kfe% z)0&+f;20&z%icd2(_E3;xt}0>-Na4D?L@(v^pdC2DJS z9xzqd%Rc|ZU`NKw{`5>ko5_Lx#7)XICWp=3Uu-8%|NIFQh_&3k(-((heP0C1eoH0i zi`j3Pa8qUHd&8k|)Nb1z9<-EIV_s|aQZQ7gzm;sUKZ}>HA(r!d{~eXXC>;_T&i%UD zZ-W)PISX^JT1UYPbF{Abh@=h8e8Yz&p0zp4`3|44lP@7>rT;b;@*XD2v~S08ZtObN zMVlLrf@^4r{+nlj%?b^jZYw?GM5SuY&gVz}{7pME(_#bu_d5o9h#&n!5v`SVNi2H> z5Zb6#Q%NlQ7?I8jrw=(C-d(1%alLxg#~(^v{HL$X;QV|vf9`HL)ZxE#?%@u<&j&>O zZl(P1U-U_b|JE!*b-4cUmtR8c=u(Z~c|oakkvwBIKo9Uol20Oo{H@&dkGl#Rciy~C zet+YQgB^(%y1qwVPW+`^_?f(HofyHlq;;2q%JqZF$z$ao;8Tn>ieh84YByAUCpI#N z{`6h3E#UP9b;qVnPCR{SUhyGl;8i3!nBj^qde5pHZ0HEePBX%^DooOi>Vks+0q3r2JqAUx_ zR5RmxUi2N;N#6_pwy8<_TK!L>&?jgAHELMe@Y`o_t&>~6*xgcrfd^XC(zpXqGnqbC zyeYWU+C{%H3@v^8bh<};=qxrU{Wse+_$u3C*-bzRtufQzftAXqs!_i=MzfR*d0_-ek(_Onv1{hTTg z!g}!==)@J|l#k2Uyxw*u4FaqVA(|G7*};zQSPV5MO#cUzQ+~cfWPYZ(oGEgMp?fmGU zKMRD!G6o6hM+Ws&!ruXxO~)^Yie-lYsZD>Xl0A$4F%~=U{OiKLHNd`+sOr+Al(|zY zek7(?li&OsnY1LTlFeiabNV}yLBMV@St>xDcpK<;mlAGgS73ONHv?Bu@!p;`y^ z)0+Jo#j9EmajwZQy!Ta*5*s-Kp?dG_Hw0e-j=x&*RPR}$s!Kyk=G49?MIPi6%Y+eQ$j6e(kpLnhJ(d{<)wasE;xxmRvo-{{#1J z6Nu9qvJK3nhU{OSUfH{~+)TUsmuD!Pl}<&f-_0_5Q)NqQd5!=~ILbtFwBh^ujt~98 zU0h-BqgrPS0$>fV*mY#Dw=_=$oo48-dbk0hs|2Tz01GNJ3(oo$0#?Svmv_!XV;ctR z5CIeL_|W|e$vaPZ-vXkG=sd-Z4fyG)aNFZhBfHLo#spV~?0gZbFD8A1TA~quRh@F< z59H-{T&??klT-b<^qhab@ZBZaja*u|D-()Bnf(jE`M9)0+y?iLHm z3shyMvfx&Ond&9pjd3Gmx#lTSQUF^|KO2m&t!F|>D_U2w(TV?tn80M;&d1(m_DC(M zFK}K{$?kMTz&sfrn))%zOi|oK@@<50E*n_F^Otd}Q*_?A0K&^f_*4tH3_w8mjk^rt zBxtylm${+HB|jIE<75AA5cU~VY!R*qkAJjTrFkC>_mD{+)bN5|=E z1nn=I_v_7hpS_u8?hDkBz?{&TS6#H1Sm4he&5rhl=rmui@-%^-h~ZR{{x z{H5&Kq&bUjq__$>ZMcSjU;ip&)%0YiW*h)xF348OR%0C4>brO`*Z9?d(NlYxzUA6c zmqO25#sBGcEz3jK=ze7?X;9*66@OPq#;T`Lc=cTToZ;Hz7S0CWu?~rcNFTl$Zx){Z0LMb%Y=!T{m#ebCQc52Q6H8 zb>VrT>d(?|IhE=ZuPNSO?{?h&k}-WeQ)SrVziNt?8?t@c(!>~5=Y`OfZt1Emp;fqj z-^a9HP)AVIyG*Bs#@zPmmdqc_JZ=@X$#LzC6Be+OGm zQhK}%SFj&7Avk5_UT23tnd!l>0xn2RJ-Psf)NTq*3SHv-Y`L>!Q{oyc>}tdYt$|ZTCC^;g`HJHabGnmcgJ#M6VpO6=)aCA5l zL*5wwA2^b}{0b$n+0I0-t|DI&37O*RytRIXGKu$n@OB(m=;aLjsZ8hRxgq@VU%UcM z3ln=#Exn<7Z93?}w(w{6#D7HiH7WRF$wAyz;w4n2qPVHluJMcny<*U^B__`S$B`!& z00v?0T;Oj#Ma^Jt1LQ4RY7zF{hU{5mBK~TcDSq2v|Myt`xm<(_%&VE}TB{YQf94)U z(Wmj)FaVtJ?{oiX1W@PuOSb$np~eT?NA}4g{i|&Gh8W`J61OY_o*(H^ev!(Tt^Y`q z%g_oi6Za3)a4%yvIJ7L=z)PFo?9ZohqsFZ`r?H7Psr?CY%XIgU`SM#T-g|A|Z$sRh z3oY1)1yW;EIUUYj*4JX3ki_Wp#C9qPmTCSaeJ^4|^%;EV=3UEzH`8ixNS&M)(}9;4 zuUXcc`Kv)QMbvw}k?z!yaB(k}Y~ONc3EmezxuNRl(1LmCS6hEI$r{}CQh!pd>b%$I z)VxTh#^*7`-}fUq4oHoCj#x6guBu3xT~qaSez-e$B0rgFRs9>YAq6TDr#>wL7J!|W zygzu~tvxflOR)hffB#B%LMrDai8#Io5mnbU_6kbrM=6U%0ovBLskdC$i4P5$(M84r z5E`?BkNXT$(mKD}g6|~F%Y*M^?$h|zV78C{Hq3z9M*U%^jG!)dINdoV)#;u3$JmDN z3d!g@{e`EF>M!{kFdDuemhtvVV{+XZs@J%*`i(RRlP_g#oX5x*NcPfix`r3;M`(PF zGlUE{fdV@F_gyL@rt6}^>E54_ei?Th)BGO_uI|j8K&T(Om6*iJlhmEV0F1oCC0cBl zG=tgE*cj}~H&mVz@%BYyF4DTJz>T@g8nbgc&cZl4G`3^*u#VY-{kw3Ig+xa1rtZIm z>ffc9hFSb+yn#Q-`dqL2Tr^qrF$t3WGgSY!@TD_#!yjSlZ}8h6N%8MDwqXRQmcRMn zJXgl2KjCCx@VAJ=>+A?%r(YTVU1w!i*f1K&7x;cI2`%4$NGM6?in-AFyGt$Kk!%Zh z<uTIh@>1*g)(p@7A=xe$K`o0^`_YcwBMc)&|iN0}`K52&5|7i++ z`H9I4$5i^z(VV-_*BF(>NbP#ZC>>B%U?@wR)&pM$!6%p@J>CwNL@r+%Ul#vUrX8EV znd0cxeW2?(iA4XaU$vY|@JLX{;$-}es$~43ubB9}M2IZ8|Ef{f5aLhcb^J;8gJ;0^ zADg6pkcgW}u7+4rYP^WN<5-qNyicqI^Y+MoBVJm#rhkg8#_tEhJ1NQTBuCa!U83Bn zaTFbh!2PTH_l#aleUhnreKB=2shuTx)rUqqH7g;l`p_Jw_7&0~o70?{2BIO!A)%da zRCby3U~Ace&1q#$V~2JoPNx4so~y>>2?pk%+g*PrfCAQoSKDHBp^-qgx%+Qkani}g`sQitvzX) zGef3!2ew&y_Et?|X_7+A8jRrRnF9^0&c}Slt=;3)-azT8^cAG^XD)X%=9($xWzn1% z@q61ZO}`1%OYv_|k7|_ag&eQEnSL~J0{uwBGRHd@j9cX+$s(r=%IBjeZ9YBWrw930 zADZpdYD3F3ZtXV+VF<-te5dA0+9Ez?-GW23T@|EvG017$6Exp>NqHNzpRRlLQyC_FZ4^4*lzWrUq%h+NcEb9ex6#dL5a(NK(_YX zg6h4Z>KTHs8&Ad{PYDDKWrzkwXpDTI&EJ0?S+Rk_;qUj zOg?7kVd3F41Be3%mh@KMux!5`A&tzjlStmOa!{B=s#W4W#}khIJwHpJJM#S-kL#7T z%oT#MxpZ4=6{UZqxL7HE!F0>KqU(8;$FZW%GXgazGMu`}V9RGq!OC2NqWus2NV1=B z4urL_Poexf_bG12KJfMdti8obG0JV<=f*c? zm)9^BsevJBfiWfW7o2NW*Y`{!HykDTi)n2w$?Eu(vxNobo2!CMtM`LroCd@Qm`Una z3V5xJIgsM7#I{qb;k>B#Ve$UwjK_|P8TS!3x-_F{-+(1Fm*7}h>jt5&I+yv6M(z53 zn>cEp6?phodr4efLOG%>>Bc9gbm{YKj1H1y%`})R&%kA~m*>B7k0?JBVU zZF4OTa=kOiHAw6K5BKqDxgSQRwYtOY9*A?-#xE3ow?!KnR8hrp{$zIsk{b@@CZ%p+ z-MJJp>$E3BOW>KyeBXlKR0?>dd4&HnJp!+87I=6{!8Z48`dzIQj4 zL4?06&v+B~7yiXe{w8C&|0zQau^;$$UqBA5X!a*TwTcfmqJ{>%yiww)806ZG9}|;WbbeoO^?u zv3Pr`PQwq&)m7ib4@+9rKvSOgx?eq(nyM=vQg)ubraO6gay|7*Q>VHR`0&1A*-@t8 z()kn|C>l1(skw)kq@wZro++K0MW%>VNnOJwgRV7U?JtRKl)S><%jCqvzmo7yYm^`} zfbRk5TA+mLuLRwS{;LTk^{H2`m;Aq|Q?Kqye?hnOT?K9ZrCK6XuZgrlSv98SSEKwo zMt9~Hs-Gu3Ba>6{rU>tK@Qj$9yu90f6ssETM-4OEQHP`i#AYHHcRDpX&5FjJR^!T5 z+9hn~RF>^gT?(!IAZB414Jp4Ck3DS5Cf0F!q;yUOa2;EB2?c%YOoBlK;SOq6O%h;(iT>@lLG6|(#XIRVp#mAcc9=->@H4xo#kM&$BMX^3duqj7VP=)t~UrNrGUs2nnxE!bE7}A>uR%$6A62~<`$#Rz; z=f0Lm$#Unurkob1rUax2UKri#gU2{`pT-xGR?EVzd!{eOH%L~duB`XT#Ft64(=RKN zcWlUKUDbP0&v&c0?7=UYQzQR+=m`BY2lvMSe+&*nUv=)5-2lL7X8Pbh#{tbS&`)5i zfo51}rh#giYM_}Gnq{Ec|1i)j3(YoAX)^|zZK1sk^p{C!FAK$X6dGblXm1P60eZ`= zCUuU5$Waz@v>+o5$YkYfbt3nZL* z%;2o!BtMslCrtk1u2oahBRBh((Astyz7aJgkh`J!g%EC5OWpe6Nu={1yinsTaUSTQ z`dZ;>sniYcqnY5%vUqwPC8^&nJBspc!Cn^LOa?qJ#Mk<=+nZIG*vUaxpa+a5>4mJ9GfujvW9F=RzIK>$r{E6R8dtPE9Y~ zfcq8gH)pyBJ~S>D=)*J)Kpe>Vyxn@>!wAz6Qx$(AaKoLpAsQdCE@IxssXQ+d|5M@P zP}JT}?HJXDXlydl2`{0TFLSyVEx9hQYMUu;Cf4-BHMt>$_UlcSDy=GzSO-&tjomLm zkGu{8<>DrueYiSQuQQL(vI5Gne0811_2nMdCRVxCt?AL+mdL^;b1s5mUvna(cs&<4 zH&nmlgo@U>Z69ER>$c(c#>w5|7O!J**Oa`gUA)fjQ}*=Vg1;?okQuXzq1&bh{ zc)1q&J2Jm@q6ZhGR2M!v79lbfKcvx%(O7e8T>ZdYhaphe|Jn^g%qZL}4mr z476tzYAPH#TTC3*lj!M-tE<&S>51_E6y6+%j!9vh1nrje7<*I#!Mm0ORW$4ne!S&|Yn4FeGX1!ng#$=88q7U{}g#urCo z?ng4L;ps=pq2bez$kmH2>-6w$S9(Qg{G_+P-zk45CyzuKOt^*Jkv^}iVj4G6KjwaA zr1||!GcIDiE{J6fQvL(1T$qIXAJ*}zytNdy3e46s?1L*7emU^ta)6d-!S-8T^Lh^8s!QFn`#4rmLz2vrS^*)TW?F{9<8Yx~$mQ~M6P2?JF zv>0tMNg7nukiWLQ38v7e&2wJJlmIl86X^MVP`B@x8DuH;#*#GWQH9XNc-E_?gf%p; zb~FOlQ^wz@`cO{hsJz(3{?1REJp!X9Re!=DOH{wfZN1(}-{o#7m+1wvJ&siju z6QMH6jq8CrIX3dwBW_e9qr0VW-1Mtxd{#c^@7ZY9{81irkBU@xoafxF_2aW;{Bes` z0>?9=`Xi=;7!2+bm?^X$I%8I0U2khzxC5v$X|Nj>k@Ow@-~03>=UFIUyPH}^P6B}= zmXY}(JzJqa1^P2s#ojW|lFMw#rfV<%Hc}!jP~35*utGFweKmw(7V>r_v=LBYi~`&vyo zZppzpyAv$VIu=8W|Iogj9qHFiN@#B`grenf4KaNBXJq+VqQ3}nmWEHqEnfJ{!-*`u zQ`i574~Zp5_YLOj(70%PdcLt9jh#P<_28;-ulxlRnjVSw;fCD7VUBsrv|*T7ThzjK zYB6iXoSUaV3BTEV!&0pB=vC=yPh!KlO*nY_Q)Mx|r5C}fkz@Q(6c=!rO$)oVa$iSw zS}cf%D zT74*Ij>m6tlh-U}c_WS~SvO~2VvhLLP^NT6EtP19t5_zgW+<+6_5~e6g!;cbsxN}` zoqE+Vak4np>F?ERvPHLs(?3(m!HWZFY@}_N?u|=7oH)80zS}xViW~Jldo{Z79O+gYqUjb(c+WkwG7cZX+x-mfgJ@@VrooE`6p zhj;JnNZHSEW7*fH;8*p;mozvrmVE{|G}KY8*#imbU*fD?JLwrctb&a={O_jt1@yOIK zmi?<{LrRfy>g{@^f8bkc6yc!{5H`%v2_S$0cK~1%b+t!qz*T^B*oRL=Vw4N+9<#4j zF7{PmeO8!H^Fo$B&o-YK;A{T#TNyaI{7p5O`QOxrXsdr#JK_kSw>ovcQ~tyCsGqKb zzG`OA+Wl2uu}-w+kcqFpaoe?(T}wZM?Ao8Ae{>PgOe4APeaQ3Z z^W15x=q2wRE=#-P`e-csc>=na%NF2i*-Q9{wE2HoLZ?8=;_AyM&!UA9TK%| zlQmF!bLA+vq;Dhmx17t(?do@Wo1?Atz0Q)eT<6y>v7b1nG}87?ICpiO?ylx6Z-^ob z(EI*!3BxL0dfcTfTt0Z7XIHBUM=`bf{(HAyDa?If-e!g!oq)O;hBOz3cSaB zPkre?AAe5mN)9@U7Elv6Hejc|QT^PK)|+SZz0$<*of~yyeVY}=qfW_(x0LFIO+D1s zRQWBu1K)C)ThcNYDSIa(eO^x0bPfxVSLdXR7ZVpi8ZNOEuAXFSS|SQR`x%r^vhb%Z z{1YnRzbE)*7XFZh7YqLd!F8er#}-)lm4g2bxY37_?Rl$h&;Ag9#|_a~-%mfI7RmPf zfR9L9A`-vYw&#D@_B2D4#SBBdt36%Xa~JrxoOh)5yg3wU+Y&mkE_BMCaI!(mEP3xt zG}Zh*RQdx%_DBm~W8r@h{PX*Phb{bnEqtx2|GwZM3;(%=pC$Ykfp^o7)PL!{Gi`0Z z1)bi9cU(&UJz7;{`EUB~{!df;Z`BWrH#Cwr=9!4Y16@`99#zd$Rq-{k+H_q%lU)QU zA6n_;oU&(mgMFTRXqF}F8h-p?B6gT1cEvtTz{IyA>vhW41?H-ir?!P+ z7@ISci1&jw(w4EISMp^{Euyi~D#9Ue2M$9uD%*Cc52s^&v4^H^W@@7YS8r8Q_i<=y zdd=U|&ls91>y70Nm119f=+v=hEZ)S>^Y35GSe&lL=f0wapCb6}f?s3dgDw1f{Pd2G&Ud&z=iQF4k=ol z>W^rG3*voF;DX}8{ThcSf5H#O;P^0&_5GNzL`VGQj>v(1(ULdjl-nKCOpVljUJKmU za7A#OZuMK_hN9BFbyjdR&p8gA=*je|Ta>VR7eZru)f-YVoH}g{VXWig-6Z}Cg}sB3 zw(T@_B>n?C5iJ3VVi8P4d+|8xw!MpMSt%Cd-Qj(&fxergUD8>TkEC;$ad8c|rYA2? zGIiR;rV*YHlODVW=FPXvyU@a)frtKl!2`klT?;=+@EL*!g8oDcznvfdBEhR|KA9GN zz4AXt@IcVFk1^%e2!9~(9{OS|`!65U#d&2DijQTtb@F9lZ%fxZl?Z?DWB=^G>b6Yw zd{8ywH)>2eMcD)S=4X)oDYie~vp*yGF@o)MN#r=LLr!_asXd1eJvcUs-*Ehzj?gJP zDvwEA%vYe_rtjpXs5?J#r|o1c>Qed18$KcLfPEV2rAxqRIAGyh1^;}nf&W(UgBHG4aQVvuf3)&MBS&lwy}*RIU-lI- zI97TW-$A`kB}lyo+n*Bq^L_hsAwT|-zhojpx0pvw&j+A?hNsZp>~ioJ52aV}g2o7) zpQSbYx22>EN?fn+hx^FkZ>oTo{T5+3?$o>_lvwGlTK;YSS8wg)@(Q75e_)6$>R9$_;krv#B5Hv&K-IX4g{-@{6ps@ z&!!cyunjI1TYbsD@V%WKiMNpY4ZjiJ;zNH_VFuiC4Y)u5n1T4Xg4H~V_*X6bkBn=7wBR)so?+qT!arMZohd`l_Nbx9;C~Hx z&-F)X{fA}PSoN|ib?L8g?iygp0rh(_@K@|M1H{0C0rg*k|H;C~3qKf8w+ep0g@3LK z;0!39Fc|uY3Gc6(LjFU+H+y5*XR37mF`m|ez|R}@XRG~bw?7~8<6rSqX0Uv3&E5?_ z|LoePb3euZ2Myi+Nay-Emc0SQuKmYYb_?GcQNJQ_PbHUq_R{}WNq_${0&n=q69_wt z%INNNzf1UV<1^`B*@AOae@oxRZhDi^L`#;>{YX1?b+U7%vV~ya-f!{f*oY4>m#8`~ zV)mced)}$Nx6&cXAw9d4AAhC_`@->~?RSaWc4_U;gURnZHS@dVB*W^R-9}Ht%wlx> z^!LRJ|4v4?l%aDC5d)U~ANJk^KB^*H{7+}!Z-*U4ZJbt<5y$QZF+tRB(h0Xo2O@!l zaT{EQah?k(9bnWEFaf)#ryWL}ePfn4&)J0D(hSEz}!%je`wDNA(*n_!^~% zO>IKUxIu$Jzft71j5z{|q_?oG6wxu`8cCO})*ik>XkuE%cr)F25$UOA6HBzF-|^&= zMH(LJ21@IYCB32Bx%A&o8>Dr!j}GLgv<6kZ|+vjuy;h^gVBa$#QI*6Fw4PUYQ>`^{Q@E7Lzb^e+HSX?CSC zCqq&kl{qy$q-wZgAvsgS4}KvVcURi75HBKzT(4f-!ZX57vvAq8uw*YvXS{b;^8~(&T`H6;t#WVGN`PY{;pfSbK({%wsq>lzIH9 z@txZ~6v3Cy?0A+LGvH9m7$aw8ETX9BfjEYm&SEc6>9URU%Vn5vCgV#|z{03+oIlNn zkoNE(sUt08GWn8jl-Qa|F30z%R+QB-j0?Nbiy?w5nEFn6JCgsAOrn;~-x>2*V&llI z>6k1$LswMk%T>^dAbw$=nSNZsfNb`3;ia(?tFlBmehC{&|w$PCny&%RzTa z6f3^o=cX8Cf<~DVX~PThZl#ew&&YpU-u)H%LV3d(lX#tTi_GX20+_9c-pQ$BlKxTM z`^yfWH%dzFY_JM>lRJE9+m^@@M~%m1Jkkl5+}WZ17QzwEc#@P})^?x95dBI)NNJA| z==bVPBs;RDSOSl?kG>G%JYV#WucLqbRB122#$1F=hoUh(ZTx#gS@|tKOwRv_fMqB`RYQao zbsSXt`hZSjEYg@!W@CP(saxm(J>>WE#a$gQMIq>_<_nMwu*dz zYs>v}Yi)Ytfy}nIyWVTNf9}_owB37hYg@_59c`me?rj@+@<3bB$-}Lld%Iq1JHGgK z`-sl`M82#64=Wrt+$r!+S=;L>B4j9%KDYHX0Ng4O{DNW!^Q3YUn_- zn%N4a8WE7msC2h&nSVMv_Ng}*HMO>Qx_VS40Nz(!I3j`G+Pd$HS}U{li{5>l;oW7A z_1^9FdB!O9SaZ}@$fVsMwJ^6zc5P|fF#nxwnVxUc>eDha_kh1$;U~XnS5zJ^mU;LQ z3&3Y$cRE@0B|3sW|?jXwP$txVaj)_&W_)1T7Zly*e~ z+P-~y6YWMyzcmL$U|S#E2VbEkV*(ss{2+_*Hr4ww1&kqJDGyiO!oy?+kj28&T$?c# zA9XEs7*pz_uElNuU#gKN(cjM98|A6iM#FY*Zu{sY?%(dRFXB9MHZ9z}yY1LX4&Z-f zUjpgUBMW9Lsz+;gf6%rCQg>_7?yj~CCy&$E-5PTw5;{D(8TFn)cZ6Dftmtnw z!dv6<+1kSwhzJu&x7T84fUQBDr@pOcq52^Bz!GtQ=Z~ECDyA_0$h}K^>((vNm_45R z=b~tTZ;6z{Y&IlcR2}iT!(W}(dTUuqbM@%czR~-uOOD=`?_1iN0*#)Z<}W!(dluLD zBUkeK6}La~!f{$-WGF#u_h28BkDGwMEa#2yCbfs0g(#D@T4*uNZ=Fb9NUoiXQ zKIg>)F5NR1ZJTsUY|XYw-^7+|8y%#Ut@Myuy3$3__mF!;evtXQ^tg@5t352Hxqo*G z=TRtW3Y(MGn83_rX6{)gtv@oJsX9!is?5@kR9e7VPib!5E9B??#a^iN-qA8qW%{-5 z9cfNgCS_4#s^-X?W~w?mS`hb{c5^MVVp!k#zICgcnJQ}KbnIixz~p++Zc}ZOKgc#M zcfTgDl+oJ|0%~6m;W3DTK?P-gD>5h}vssZq86Fuxnxm$>&_J5Yl>+e75JBzfZrgD8 zn1W_M9*%XM8*7~s*?HDC3< zg`9;H=K#wV@cUVl`<&hr>P?Rg{&ceKqr3OC-sbeaTm+syZO*P&Ti0CY?Mi9e(sh70 zr0@3K>+Lq`atq$J=-u$*d%f$66jyG!w`)V|nlF0y8&%Dg<|w*0uXW#7`2h7nHLaeq zyVryBkYsKvYV|m~)=Q&W*Lb|WDIj`J*t=OxduvP1-LJO7-kbTHd%Iqx+7DaHo!-|} z9c69Lb{%i~bJr(kUwOJVweHLD?xQLnvR6yd-EXwsmgD`HcfZ>8M%$m^{6^okdamng zQS4c9=6yxp4&%G5wCo@f>D{li-bSWs-YX)29%?Nw)4F-RZ&$YN8>y;esBA{}kG}im z*4xNb?R{B<+xOd=>+zPZnw>(wZUmLL+{zb})~{{dH#%0gTh-lCa`)EO+eUl0t441% zt3_tsrJ8Q`t#rnQw(R<&eQ}k<8YA-6`>Ly3Z!3v)v#{W8>I-BtZIOQFv-#Uoq^e%y z^d7Z}EOeZ1K1|QN&+jK~A4#{h+&}jQtI=c9bt2EKDbqG*%h;^3GR&*{q@!JLsl0!P zh9~VOwZek@yxg4Ztjvt`G}*TI{kOVrGR4Bqwa>r)Z+I$dFPrMKO)jst-97jAhP%FO zn=|)5+oIC(Um8DdjIDh77i(rro9wBswcYwP+r(Su&AV@|d+xk1-!p&yU0;}c-&d|l zS@944OVZHcDP4kdAUSgL5B-JK^dYTNF*e>1r&Eo`HEsDJvh>LH+%Lye6GGOB2lsLg z>(o`8kFhDjJeQCtc!BX*+B(zO4{j5s$k<_iE-9(q?O;)h`5M<*^|5lSiRnwN+*R`Q zZqXyPnDe~j4|AQV>_7u5X|PIo3#-HwvFR=Q(tVb98{gNordw$S4nPI}W;y-M^tgs( z5#oSdCzo&ZvNsmWDgLFyCQ?%@ zlgJ)3GP23cLN6fA$&rj4GBN|Vs*GI8$R#5qaGlD?lZ-qv(gSXlkuMqfWTXWyR~ZG8 zfgyBHYT$g8Q79ROXd@d6Nl(@Y+@dMTgPvBmU%KdTxz<#Hf`j4KO45n>kNP*dgGOl&SusGuyHIL52SUcT(8)}*W!)Xe!hj8l(H z>PEvN0nD(k<0w%XsENxUG3zsDPO;9+$u;#cJ_&z#qfAOf-nDp9k=e<78DjVJzA3l7 za7-i_;URWkm>7pvALsTyC(75zble;_TP1oIlj&*Y#7a!uu{GYW`O|J^j!T7>)m-sP z)r!*8r8_x@7hB&5d<~l{>d;nIqYLG>tZT3*NVM)etXR3C|5pkEvIxlOswKw847(** zg&lHlsffuqqX3nzsBK1{Bkb8TPTRTA6zGv|v>l&~$CN+(Ruqp>=uC`oRd913=73c(4t;}G1Zm>!$e)F{DHyH2c3G^ygtxRWoUa(4f zGGALh*?^4FSf zGP82XQUpM2!jqLMl}nZ)0a}wdL68^o$WlZ=YZ502l9f-EA_H1ek(pIMmLddN(`i|; zXX%KPXXv?<=n;xM!>%etMP+%06`B&=D|s36v|XOqv86;`l_$AG5p9*HYJI;$Q#YHn2G8*P|X&RbYy;cD2K;^G0qgLj8$0k0(XN0IdZz%ghqmoP-%j+w8G;wg>or5HY-dC%GG4^1u( zVgxwNq4vAPu*gyN>@bnzXJRPl9nM-JH ziaNVaGBH)mK>Q6Ef(6$Atm@tYOeb!D%jHDw{y6;Mg~dxWH)F5t@yl%%<^(~;^rfeI zPp70Tyxr}%v&d0yRZ|snEQhqCu}52Ykz5h5h1QCZyPSk!$HZyXSgXh7xAz8lpwNPy zF*f%mcW!JJW##`T8Z3yA9G*7$i?*uD3ZeHw>!0JRkZ2^x(flIDxoVKFrE3JoMKC!D zgi=0OTlIhhF}Y!Au*&M^YU};nmpJ;SqkM##{TM5ix`XqJJe*L4qF%=X!^m-XgH?k( zgcS}&`J9pD6nlf^gPmL`i;}RpgAWiOg$g{*m)(vBhI@lI42^1u{)L1kU(jB`Bvk$G z>}fo5y25$POSGYEuX9JRe27}A(g3MaDhbvORqHib-`zK!ojMKCnbO8Bf8~u4C5ree zgpywTq`RR|k1V8v4)kvGHBPqC&tyM`>V_o(AL*vlB_)T662#K937c=)0AV2#3No4I zS(~n_4H;8oO~Ms6 zT6}5sHeaaT#%Y}PNUaoO_G!yEummX9?GF>Wtvd1*4w{7cO`@XtdAz7{E zZs1IVM*GIrL7RznR~F#Xz2Qm=sl8ZlM6aaj7LgHgV`@#&mbLMba4!2LTsyXj-_yp` zDjpVBKpNz#NaCVMu4ujJOm$JjveCRJGDz-;Y`|!>1sO0svuw+KA1C*VNVJn#zf4ld zIjo17>1^f*b+R1v^_2yT{ywrAQY@xooY(#b*IFq*U}zlmMR;>c)tX*V-&~VQ&LDEq3>Tu5 zNh4=4Iq8H#G|HrtGlZNBt!cTDlR?fTD`Nzu=z za{^OI<&YXlDmUOJl}qXzQh5OvsXS8WlFAR*N#&Em+vw?nz%Wt;q|PIyHSl#cg{02+ zMHUMMz+q_bw&c!^b%Feja0%m9{SdTjO(PY%U8hQzJtAUqjU`wQxt2~jO1H{HaJgzy zgY}48(l6rGTr$VHYSM!BEHCLA@oFxa<6JfA!Foh5>78fH%qv_q8Nqr4u+y1Z(=W}; z@vfT8U_D|O0VSIrH8Zbt)noS?a3E78Xmd;nm*EEOXW52)Cv4w5Dlh z<^)$wt}tHuP-~iCW?tp0$%6-z$*%DtGjpP=CO=q@SazEIrPa*5+Er5!tVb|At!c|n zAc4piUE``L4AvJ$J4wfGDdnDI+*6{L@Sb9=QLjAFoxM@1mHYl|vBX8uX}QpsM8D@2 z%jTW!@>d+m^gBoBH=DlRH_k@7GvlN?7wTn@Zb)K!;aN$y2_2Ypo4|odw+S4Wbeq6| zNw)#)N4lqyTbWF{r^ZNkWrB3yf_!VxWbxcBG+F5tsw4OGr^(2c$uv2(UpA=j(cU+p zij@Y{t&36JN`vaw#i(wjL3Qh5RJYQgx^*$CTWL_;x){~1G^lP}jOtbzRJYEgx|Jr? zMI<)F8DEG6zXtNV&gyg4S%oB*A|FG3>wCz+!vZ7izY2LmTPFSl#i>#sIxIV8Wj5NN zcDi^@5h0w9lah#KLcy7u4%hJDFpq;8l=I_>YPTy(xZV=1gSOQ{+r%02=S+ahRi7HH zgT&QA;!d!Xb4|clSAANr4oX)Cr8~iL{z%a^SZ;EU)=-lWb#CwkWksH*5?K5pq6z|%M$GVa0%PDQCD|byBjWYY3VbRg|kdImZkqpnPlrLx$gdf=rv` zMg?mNlFR)>p{vU8U(Oz^%}b(o6)+QOZ5rZ!t6zqk;1msu_oe}p&421}-SggDhQ z^~LJzRbkuN}C+3i^x*#p)v2$6!kUU;HBc_ zNW^LRo_>@hW;Z9Ml5@c=vr>%OwN-;0sPh|p5R7-yE;6QD9JTO`9{5HM6-iDicW}so zVWgTlX^vVrMGu_fg!xvwqZSs?1B(!~s=SrqsD(H5z#I0OIhl@Hm_iRsAy!wGqZV!; zs`uB;GTDw=*nnv0H<>v(j#_wtDDu~uIk}En7=Y;eUovy@9JNq?ITl!B=HxqSA^mcC z@M|-tz)=g`mqUh3^D7D+wdboL`GHwPW0g5-FNhw3eu^H$CoWNZ>*#s@ONgDbasP>PQpOtZT zdMXv|fFp?dS4N?ms)Z1UAn5eCCRu`&=uc!c-jqg>>moNbSc#fiMx@!y9ZPOnuoCsO zjLL7#+;QZl2PHDSjLZ{e?iJ)_1S?TT%ji60=8h*fGgv9@V1({4bFU;fD_Dv8Sw?BP znOjP3b`bYFYNRHbxn<<$1S?TD%V>!uth9Fmxw*kg)XXwshOF(iUqxL(skoTg~QF+CYnWl^#}x+hZtVzpWmXCU&`cRGQHT)T2^}&Qp&{ zOZsIVMcz#&P3V9AK50Tok$#=Iy^_#x*K3(a4k_5!_iQeh%U-+hzLRr%>y8ok~j3} zSw)2JGbaE477l6l4Ddsv+~1P{7W^k< zfawFu07?Krj1k%7zajwmEFYWfT6#Y8s`MwK784V;E}JUOw-xhN1M>h3T%2-B8QF3{ zUo?E3uT>HQtot~uo3n+oor;m4aBGjR%Q-%Jv%3iy>^yjg_^O1#3)}DGtI`52iNhn> zr@^DEtTACjc5!?oRV#&!$QZQaOex@Mrja29e2b@kQovlY)cbv8guu_HbH-Ym zkT`y5Lf~oBIbW?!NFGZ}2z+fiXREad31p55fwxWPT(veKiHO^8X#xCgI%lf235mpI zLf~=JIZv%kNG9S=MBahVP3J7NHX)&$R(z2?DiF?5YZH>ndnN>aH=Q%o+JwZi(d4Cy z=XrwVg^u#`@xHG${aJ{3jPC)^9OV~8e=McNg7H5qzsP;<0pypT#PA@mXz+zNKb6pf zXL8Pa$Tc{pz~Lv+cNGFRBq*!7L)-yGyeX-2`Lk?uAWt2lH9=9Jm63XmgR<|NtcMp{ z{SlEX+R^h|!$L{r_rc5_e+l<3-m-k8mmF=})6;k?`@Yruaz^&1IwQ-!vO1LS;HpiR zI{$kzy! zA)DUinVibX2y|D=VQb=GVT5kku2?~0J%)#1cEb&fF5H3M;c4vE7EbVnj(Z~0;HF|5 z6P`HOA3opbJW(CGk!0u^PH7en$3Hl3vclu?^za1TdDItrP`qZjMD;KFCvF?*SKVmO zZdi%0UyLbGJSykr>XK2P8mUW`wow_=X`)CAg&yazieUaQdXG~MPh=rV;VvZ9V{jg} zND==~LKCeTHHh*fz0RGU;HY7qNPTKWaHOyCB=YJOwa*y1RGLu=`So|7Q7YXig*+>_ zIL}sNhEWRn_Di2pD$^*1yj%7erLv4t$iIU>qg1w03VB#glF!zz9HSIFnRTC0D%U85 zy!`XeD3xcF$_p$$TW$G9iTuD#XDd-)lqd*Xl~f|a!CGScj1q-`k)ieeh&MyFaYIu1 zlkME%3Fbpct=`B)RwV~--cTuf%;G+V8;0-vUW8>P6f@Am87*Pxrdf2$0nVb>#~dVU zf|DhTtEdE?2A{D)+)7#qFRE$aUuH(DBX~; zXk~|cB8%aCL&p1XVW~BV9TK-WBR3iaJYuCJhDzgQ!5FLM+iJeCxG{(u>~W3t1o>~A ztSGj0Cs`=-&RT%o-AUGncxIxC0Wh%9JIV6+!dVNj=R3*DkoYVEV_^Gtl0_jZrGX1T zu}`udUOsC9Hiaiy3co#T0rrO{Sp}i97GSG*GB0q~!1c3ZJeePuHZYKl@6D*=>Q zAMav-g@K{wjA#7PJT5CUo#Dx>j7-#`1&WC+pIW+`XuS1wIBQ_G=Zx3=m?Qt5P6`omJ*aP)g4BXr2}Vaw^PoWn?7 zkdMuwH>sBNr!-AONosWm@64hlQzN6wyrGY1rP!CQmS$Rxc$%YGjqOXos;z2HZgP${ zw6<@XbB&k!w>eMQxSrAGd`kOTItFTU0jMi1&9t&2rzPhw))^X#Qgyj`+g|pi_+~n~ z)pOzCZ9O@gArma_G=JG$c3WV+B8SzXF0aImEYHRqB@J_w@TGF>Q#?sqm0rrbvR}q( z)+568yA`2>+j?5svt&DnZH5NZUj$8^=SQAi*31(tsRa3vVa@Y6TfCw5(F;i??4h8% zrAd@m$uIGf#!`RycJ3i@TyVW0ttN(PXp?v-4xNxq2@81Qa7<2X#lEgYT7}IfSEeze zd|g{59%W{t!Cs^0HI1{fbMe|O&ebxV*~wIJ_xat1wf$OP&clK5xhfR81S(lDo?vAH z*@n(PCq7Ndts;+Mn`+*M#bvs>mMeZ|5Xq#!5y+6lyx~%WvWCk$U9ok*)pTWR#Q5Nd zoNpO2%)_B~FFtQA!I`~cjTXot)K0K^w%QvcB+)O02{rx1g4ke+Pcx5QjZ_tJB zihw5jZV@~!dV5SOGD&I`yt5lwu%2TOaGnK1SIc6$HrLxUb zwn}B0sVtSsG*g)>m0_kbR4Uy}rK?n$nMzZsR5O*TQWi61;qV{@qi?jaVmHFUrEtZW z-I#&*U^&8Wb!Lx#)m?I8*~L`!VBam)xg(GfuD!v*Z@Ad(~;ZMQgFEl~vyp?Ib1#dqEZ_gUwEx7tA zxVrG<{s`gcr{L#X1^~gyPr=DonV{sl;Nd88GyukGS+3@L8`S|+mR~im|ic{MD*@a{m1|&8`0yh#U&PE{tXG)+t7cjGwp5sK85VnNZJhIHHTwm2TDqBvI(fS_?Ei)#I8B zRXGSHt6(*JpvcO54R3nG)%hN612P5FWhtZPZ1%#*hg647SA<^E)~rI1^LvnK|(kX5lll<0&i%W@g1xm1SG0D#$Ms1y&;WK}vRWyydgJ!*FT~uGgQDQ)2oCR??;|?}eT` zN5cBN{7Lk{!(tkZCsrSRpv@jIKcC%&wlOp_Ux@$DlzFr{PB`(d2py{q9ra=&L7%^m zSAVv=5+6xT7{?h~7E}KqW)*1X7%Mr(3w0PyO{7+i=fog@PWO_udgx~_^TMcpgVtoY znLb1ZehfHVzl>n0u)lkUx}h!PD2KXu~p!<)^4|w%~5;W9FQouY8MW^~8~F zV~4bLOVroWeyyx1pR8*6x5t-53-J4f>&o)kje9KIS3)-Rhg56|{pj0#O*`fMqufs~$X3L&y@far;+(O}%l=9_Bk;V`3@9~;H6b_Q5ALSfnqTN55pXb+0 z84f|5r*VTU#xA&<<1(D{6JN{TYo)6cj^hCRptE)?mSiPO}GRJ1cKe#-V~tA(;xAHeSjG!yEpD7|d+KHA&FO7=)L~ke>fuLZ9%1S0kgaX8 zlCkx5kBDwV{&6KGUu$|-nj4usn__M$K`49UL7iPsMr!bByNo25+=yQlz|sKUJ09V8EWiQ|%P~+)%}z+x+~wvzkBi zr}F24X=?Y=W(}6RT{Axl)_Ppkhl5p<+^&X?**K8-^-s84;PtvHKIJYzh1XSmgq&qv-L27s1eaai8 z0j`GA-XLvoeI13BXcFLXR&VfuX~GG!ArP{6)t03xg%-B%jqRGaJzVyPi~>d2WyRj& z0$!R>4`;bX)>ryN7uK08)D zocT9s4HGddT$#OYvK)3>LX)#Q|0;S9TU7303DdV}tBM@8ZiXB!+6xrYR$a$wl7|dr z>E9U{93o930}0wVpS+Hj2QW~&j^iJlL{5Nyzm5|hABo(+RU|m%nL;8@43w_pT&Ideeqb~Sj&l4Y3If~~ zxsKDDY7$xl)5pVs&D5kWH3lL27!r=mzc?dkTwF@`Pv+K*S}6YTpYEVjwPnNUEV;1q zhR!u15tihiji4anH~5h*>3BkjFZ)0qLX#cgM*`~U1eZNI2l1+VH9zGQQ%>R@6x(FE z&8cqX%*b=AU2>2ICPE;C@(nxD5!{2z+1c<2uK#St!MzUyw7_t&Wi+!fTJ!Y2QEmCe zU-Bu7j1$Unxl4F z^bJzRIomdQ;{V?02L2}av8Nu(4P}C^qwq?yLZ79l)kB57245Z)fo9!vP7#x^4)>7$He+X`RCt`L4V!7r{y)a7$10=7DVaV45H`Nv*y} zCA%-YZTKQTOM&LFQxMKTaHG4p?i1<}&DjVawgM18n>WE-)L}~PPd1#stM?6d zC33f>vDK<=^sp20p&;t^jh)Hfp$?r1Hy}xXsjjEG>@@N1_zs(D>9a<)T}vUc&9q2p z0=$qo&$L=6cZ3wsaVoAquB z@kYPCBaWjDC%jUs$P?P&;Zk+z1Q(nvk;SRy!6yn;NkyFhjj^B@*Q#B0gS?R{MD==( z{GYhSECRU}4Ym|P<6bv7@&JeX^=U~+px@#_KuVxls2c(jPWkI87Ds~q<65&w21SNO z9^jCwJ|hVUYLN5H5@=)UhJhrDA{2`wVc{QVD5Rb&iVP=cA|;UR17DobI_z$y44n;;r9>5-;J|_tYWa4qNL@p)H0SSfy^%RRE$qNLejy%BUMjpU8 zpgu1NL4Kf4p!q;Y@iGxa!UWSkSnxFzNNez;J;VqPud{oe!M- z)DxL98j*A-t6&V%YK$keT!b-*d1LFWBo(tPVivf-I9k}OZD6A;LIYO`$r7ViYqc!+ zZ}NpQmq&D>W^E2Qa5aJAgzI`JOHjzV{Nt^#oydLYQaaF`OzZUozd20W5IPLDhL@!s zvVt+%0VOQRO`tAgVauvlYe<&9EN~@f-GQ zGTtz(f0*ICq%Xb8^azV`lY0c8xYFpZcRa3oj#DxH7WVN9BS0w(!$KQECk(cs zNkK{#ama*BDzd%!5tm}AP&!!06W5wWFf^+ZzYnmFhs`2suny>43<(;fI&LM3_%AYy zAV~)atRs$O2t~v_1nk4q$4}3IbtEAfN(u280sA=DM3M;-SVtVmFp6+}QH-T!4=(j& z!8($Vz&q=*C;|I;(=3q<5?DtZ$q0&Yvr+8b|6&%&fpsJy8A%E8I|2Lnwpk(!*a&IKwiDe?m|1e(vwu#Wi4qX3J0ih_V#IGzssFxW<{JK-dC zT#3Z*hFmzFE=(gf7BG>zLW6mXW1fxkgw#%c0Om0n=JCA&m`59ZE6fAKq$K8HGnq$> zbtrZr<|D!~zBycGf;v@#oeZ~z4ts)Adt=OlTO?3TVICu5%tI|&S_MZ#j+?xuw&x{P4EJOt*9)>g0ut= zH%OHcy&JRL^ooc*uYw!pp@ZJg?#?vM8PusiYb|DyqSl_G2b|Ly8u4P`CX;b04;L8= z-3e86^9(ncjO1C-<1PENVUPuxl-2@d=r<31=M6=VJ z=9X=T+HQpB<|lZC=LO*sT9LsW&^l?GHihm)y2N-XU}vQb3qFyjzE7F`b@QbZMe6T{Qe*n! zw~MN%tpD+B4SOEvLO0;>HaB_JgAX|CGAf&_8CE-eWO zWLvELq)57}c8DN>bl0UPkU+I>GfQN+YKICE#QD06BqWe+w^=09RXa?OK)UNP6G))i z=bI(6T(x{MLJ1|Zl8`{QPcRtLl5AJ)2tfkruFFm!foe<4CMl8QsvRjv5a;W1l8`{Q z&9m0}TvzQmf&|iCmzzL>uHXq1NuI0rTtR|ZUzeAJBtOs~b>zEhM+pMRcU^u0K|!Ei zparhl^W=e1tt^qDgysQPz0XkW8m0y5ShBhhKbgqo1A?JA` z_G`SMUkV9SM7^(X2K=}yn$B9%HsL#6Y~>7|s}`Mb*7*799wq)$5d>|m#pTW8B(2pF znF3M&kf~PL8*CaZ^@cVI7Q;qkL&dW9v}H=at=68g*kswEl#(?E9gmbN!fjKlQoc~MDL>s*xhhNW;RY(MXly+UZ=EP%mCS= zB=>M=ODJq|AHC1kWyP|sbhi-OnOJ4B)FCvo+N0y4#0Kr1)=wYQhyJRF%1I=+7Tr7> zmp=5@+K>Jsi^l11vAXIyBANcm1>XVbuTniW#po|lr1O>PC(dF-$*(A~L4=71Z_;6p z_HspNx6*(819X@p1x7^}yh(>|PNKsijTb9@t3iPEr5_3*WecS!Y+^uRvBqqWafGp| znUHOgW<`93pS;yvwt;< zB>xj7RbwmiI+{$855TA z0xqmTFRsO3R?@S~?*I|8p}>${MFLGqtj?wWQ}kCB74(3mW2_m24$H}&nt7M;VAA0@ z5mtm3yHzoZGioIUgivIccd!*2EarKN4uhe=pu_51cR)HURPhWt9AAJR#ptkFeNl-w zxnh9gkaZ!!oSM!slp2s=wIKbXkx>*_oR6{tb;RW+q0cx-Luvvf`jt{|+Ff>smuQui zH>)jg`AgnVG&p*{BD?PYF5QjGZ*ls26ZDt04*gY(K-PS8T$~6`fe4%W5+(ea_DA@G zLBSMxUih7#j`K%uh>TG=L<(8<2Owd^HQ3|a zNt__%zRMrls=9E0?6e;rRb2b8%;un+{z3jNcgt~$4FcRE2Xu-{i>D7?<7un*$bPA> zv6Wo{hAbF_?oX)yqQ7g*U=BekaqdZX1C((BbGp6vaoJ_Z8xfX!p#qX&iOT5-??t9* zVzvx>M!TReNW^MNl^pk5dPDj4j&tt)u$P1J#H(so*m%ql7#w=FvBl~q2Kc!kGx)b^ z2WL#rI%qRrDX3`-jgsqq%ptQ!6h;BjB5QP~@I*Bp@|lWHCO)x`KXb7WQ#Pm0BaGEH z=hlu1yo;X5s=}uESmthBtK8OjJbV7<#5u=3*o%ox3OmPOg}A3`2ngz!A2_1X%OORD zL?#ah2%Q-UWZ-MQft|m2&id4HKre}!&a>7TLDtuCk=!3nFQbdEA!KQniLQwchN=p_ z&{hzJy+wqiA9}KLh0qHWvriK(om);Br=xP1Wv+YAjOXgPk<4iz!G-?teo+ecw5MKr zhHt@UVTwsi%w~xFXQpX z{?5~iM7RNc>A?{)U4-BfYT$F{f)~-!xzihL_6FB9<4S4=vFnzqhZTKZpeyu3VyrD}%w+BA!+&OZIesczb{`OMERVv zIk-ct3F#d5rOXmuT`8qP6@uYORgxoAf6lhP$U@b0`P8RW(VK!Gea0-BIsjIbo0ZK5 z))in~Zx&4(04vvPr*1Z|ejlvc&7$c8V6}m@-N3pMtQ}_2i~+C~gSFeh`lNKISu}G1 ztkBg=1L;#BRRbTyu44eCSkF(j8c3f3=?D{P_5euTG}UHcZ3b(xSu|$=tU6d72G;dp zEj5eg4uG`=tZoA<#G+C+i{=f0brx7_46I0~H_tMQ<_~~%HdtpHSlhvRhgq~>0IYX_ zb)JE>1FVb8qJ;xsHHvYVAyW_825kON^&&lVQ;*)bc8NdCqz`M=mZL27XNISwbY>d! zy?Sh+culP4MAGjhZivi*R!DlyO+?IQvX>0?i6`z532JbR$p^o$6m$rKXGMFO-Ae{-3bvb36V?8#Zruyia%2fpZ@kP-a3#vOi#Q}oznVWOTGMz@#x+JA`ZFo*&9)`8-77x^ z@dAhZeaOx0*Q>|t4a_^{RDhqAIJc9jxliUV>t=#?2fZ@EdqAzK{V5azUZDz9NC~g8 z*yQI>kxK2idbIkT{Qse5eW-@t_oTw>t@1b3tVF6>os7%FNfl`jRu~9ng?P1j%~ScS zKneV4*$n*n@JEvnb!!hl$|j>TJ2w9G)CBK3DP~mdFl&|U*NU|IHS+B?qk3uhIxEk7 zvR1!|2ihP#y@S@i^D?5e%0rK*cO+I&a`f8UnBG@DP(C@g?@ zk=iiFuiYabwNt*dG({e}B6L$E?V6vdHV zk?t_MSm9*|!6<{E20-PlHX5KR7H)|L+iMy|KlO z2APvWCd5NFV`<5y5Y^2xNn~QkOjQ#?+S2@Y)(4$nTLB`QwtN_Kaz*E0wg3iIO41q_ zlY1^~!(bHcGGuGjLVML%XyQBxR@AjgnvyG>WK5ckMyph((VPv^rgpP=lx*cuCX8Zr zfS4x2oYZ`!cPYUK2**PZCmCX zB~a(HTSC5eW)l%` zZg<DsPB+!o2-)dWqu1^KM)qpo%!yV~BCn)V=OwH@nfCHG|#-DPBVUqc+W zeUiG?d^kz$+4;Mq;2H|PLSnOphxO{sx97i}p&pJ&?lI!59h=+nzgs_Y3;o+ZmG9h5 zcU;bANF+rZ|3?-(e2oVz+Oo~iN;*V4X!cjn!jIQPuR0pnWhQzx@g(DS|J>pJ$k1Ql zbBXwrZjzTR=ec!KNy;1g(ql^)746|qL;zSCl>`Ouo5!FpXeKUZ%BMU%L>O7Z0|L08 z*n~NdABiUTYU?CR3ek^qyst{I;{}^rJ(j!I$=fRA;ae0c>sqI9wC=Moj0%Z7exS;C zDqtgU`m zVsMQLKu_p53-q-+-?Ak|QOg2x(C(2N_wv1#QN=QVBhbiG^X;`aA@T#$u zxRXi4FB408z?c{1CE8vBLaQmKCWabkbHueZS^u?usz?8#Oia z)qur^Ng~%?*mg_T=C&_(y{-DauVo_{L4ZOi=K=1LyjwY!xC_KKS5TaC>A z8QavNXT!-gJ#nzCI1Z6_hr^U&``7;QM;X`Tf2%oNQ~&z^uI^XRC}kUE{JKkx-`RHK zcgZ~CcjaBiZ?kUvw$CtrQ}!6Ywo}HhTWr_(H@nUFT_X0y{973@ew%+|{I+wkWwoU# ztui$`Yh&g&)2C)w3%6=d6x8L9$k~zovev6IC+OFHi%~gSb5j2ciZQFaL{>#6Nx#Q4RpStzF+s55;WcD*( zzW?@#b54JySx@zOtCmk$KP`8v-~VX!=E^~nXHEpMN3;mq6Xe_hv6 z`}yg2)%@|g?(1DQ1irXxR?kfnZhY|O7r&IUXLWni-pYO1A8g$J&G)CiXYJa0=!t`M zACBnQ5&d!J%?E6!_MZIJ={dc{#}AzN{jqy`93LM({MYUUAC-P`{L>eXK6J$W_QTs- zcVzC=-}%P7uk0?|RrA(kZ@&Keus3FH{^6Eg+s@xQyX_aP@2$Of-5slcyXIia7n-pUS0C-Nh{JHTl;wMyHmcG|D9K#Sn;#zKOOSpH-GZ|?_d9e zQ9pX;hbtque$)Qw2j6<~8~+j>6FL-ps`0*u$1ORs^qHpnmrZ=+^z!E4q(15W?egEP z|6}f-{C{}#_nZH1(649w>bw8CedRenzwwtp{YCqKT=>`9SN;0wj(`9BU+((zAD`-e z-t}DInN`pByfEQ!55Dx`i<5Ovt^Nn(x=(qSV@L?`JB{IZ1CE~SqbGO<}_=9;kHpZepe|&jl zVv47wCri2STHkyu%Nv|jD1{0d_dGH=lCOZ?oLAk!`v@8^4;%RW@kUt+=1al6zNH9* zIS(`Yq*A$3DyMHLJgUr7^~Z5ZBmj3--%{NFoyX;YBwU$NDx+_y3`%iNA*oclluGMc z3V$o}xDt_6DwR^YWpX4v$J4@h=d9%$E##$eIVr`Pv)*~k*SOjmObt%ad}W>5GKm8z z{pkBxef!uJDZs}I$4#v*jGt=2z9oi&j6k>639Z0Y^*d%r@F-I5JyRbXWn6B_+ z3G$p=PZm24Ym)Dal?DMqX}2FU34C8XMTX(~0t1%fmug6MeCbviL2J~7(7=Id`-$TjsWXRcR!BP|NWw=1{P_ zo~!F;R##PBWMU3;O1uTiN}E43GEpHp7SvfqRWp*n z`G9K^V3tqS^dvBjh~{6H0JCnYYLdYCBAP!f0cOEeO-%yhj%a>$0?bOO!iinHY3YEg z5@41{)s!SKPKh4yMaEs5^AY|AgSv&%x}!$pLvxM=v!w%AQ+%$~_;h+Bs9(UEDwN(x z)N($h3KF%PM~VC-@F>7}3GlgqbCba50M1E(M*_}H0*?Tkl>iS1oS6hB=G(lC1b8Um z^dvCe2Ii$Dz(l~*Q)6Il)gpY<%^RdTKwIUY4;(cY1oa~0`*o|?0eo>yat~Y%lJooa z0PYUvotLQQGD?h!RYMhH0H2!xUkdn~B=F|}k4%6|0FOul7Xu!i0AB)lSQ7YRz(W(@ zivSNv0^0!(PJllLco5*6(|mprQ`k{+IW4@9P7v>xA5q#G)JL0LU^BabPp+{gO@eE| z@`b)#Kv1E1mnG`Cni6A@nlTaZr3o<3BJ|HEfhPbiNq~t|r57iGO95Y!0AC6C;w12R zz!xRJR{*vrfyV*MjQA)?t zKRks;^v=!LH+t%E{39lwhRe$5#O+9o`OToLGPe`nC6@Nt9e=n%IF>TGJGWZ=m0{r) zP1xSO*u#CQ<^UmXTCo&Y+}U%J=VtCK$28~Ik3aXQYRVO#{;ep*xwGT*pzM4#1{Zk? zy?7?h%lMfJyPGC{JnL*)QN4|an~4$hB?k|4+*;9B#%>ftIR#rd<4H{|A;Tv_YL^?%51 zj&{=?(euo!3PHiq7mAGG!2Mu57$r# zKb*yhg80d2d^k$)YIbg|ZP`P^kx~xM;%35ZiK|AZO`fNhbeLVhkI@5LbS!Ohm(v{Dl)kb()i=Y0+51<6= z@%o!qvXP)!s~#M8Er|T%t`T(OuJ(kESA<^nY}*^!vaL7N;tf77>%_BdAI~}Ox`WS) zFy{@e+qR!bmD`SmT0BG=1Ia{hF#HoK89L_Kwntz+p_YoA_1<9PkL3+PepLm<1*kCR zyau)(0h8A!4Dg;PCe(XnXTJ9X^S#mm-ur&+y(`arPgM9)-}nLE`)=&LE6#lHJLY>_ zggxW?5ENyWqIEai)Ysmbc!1o`6#Mj3LbqO@>1#QdF2t&sIDoTdIuaY; zE_^&#K9T!d)$HLOzL0al*u8>q1^bDQoLdP8gbM#(6@+z#A2@D?A8D}!KCKQ{7l*d_ z%UILdnxSqQe?kZgNSDC_eRNn zZ;%HWT+3zKllKox{ z`@Q5+$gQ&9ODZM%y&Cp=$)ylqWxtnHO7?p-?DvvOA;rpmFR7I5_iEVhC6_{&mHl2) zDcSGUu-{8A1z~VR(#LyqHp_0W+1Tw#UoZQ2c4+kVEMMp*+(_)hjl>QW{9O+4eBtVO z`q*49AIX^dLe=x=_eI9gf7mg{lSpS2M3#9C>JiRkjoSS7! zzy|$fKZV;Km693K_&(||xd)K#Y1~6ZU75<&p)b!?*7w2^3@)oUn?Z+F3vq^HSuKrR z22aE2zO}f|{J=*t1Q?rEtwg?#z$5d&?mXf-(vlv? z4Ldv`$BQB|kWLLS|DGO#WkqO+1LN0J@+<*1Ht7yeFde2h1YcJVrQ6wx>a<(>aMD_D zzIBN*aKX9YZtub-i-F(YTL0qkm#HAWKx2`XkC;2J)&t zIE;|Ew{n+Evh8GZF}afdk*K%LX7)v7a~Zi3&k!dvwIhqN19&sf;9f)#^ z;On(tN*4EqD{{LHd6sU%A#h%CNKa;0;ZZzdoxo4(^(qG1G(jFe9bWXw}juR;62o8akNf4U2C5XP|0NTAH ztKk#=@XTU~zqPzrrd*6ml#@V>1((3u5-!2lh}_0(gHNpP!zV;@k<2HQT1@eYw-uk5 zB78zO`Gl!6JCjem?F~*5KA{VrNGjErPe>`@6T0w;q*8tPgp?9Kp$nf#D%F=yNGahH zy6}mlQhoV^loCFn3!g|T)t665shD0cxm27_D6L?ePi!;z1ZMjNk4U=-K^(s?;?Rm) zRpNreaCf#2dG$N89tm}=hm5E2G7+WpvE|GL_2>&Xz%;6RbmxDp6o~UM+sr3<5*OCa z^&(8L<2G1Gu~0j6jT_TT{JwRo8EVd*H?gIaaZbz~6>Q$Qv$G&Ee-vk9L$y;|R%I}a z(tb>12@Qzz4Uw(~WE}tYl&CvR#!)v_7>AUFbNrsUJ}bINILE4VYcRbi+Afz0pB{(! zKaO~*t5c5<@22TxGCOyNt)ZglgfYm9YLe)Yoo|HRaW-??OB|PE`@-VLIFvu6toy!0 zzDPbw*pBFY!FPdbrxB0p&Dedx|5(&2{UjGl!YhyJi zdc7z?ufG_h*JUw!ZU4VYudn-i^tv>eUf2FVdTs1C{y(MHa*q4oq1W8|O{UPexItp+ zor#XzB>IYSoAe%#LCU2NItfvJIKQ)!Cg{#(LhhmDQ@c$f-f|`pe+E(t5ywW^t%3yT z7K46Y_1~f2`+u86zrU-WLBEZt#s>Y~JP`eUegOLY(*fvrJ^{lN`Np%Fknis3?TUOi z@!|9U`X*dvX$u#KXFLwUM8Ra7ejVgwYHmz<_Q*;Kldji&xMm91s|cY+G#ljj*A$$4}rn)lD57ph~H3|LK-))cC4yD=phuU+r5kMo|B~CYtT!;WRu6No7&`InWr}hvp2czFCBG4c;0Ng)2PVU$ zLhru#6d!&=^c7;!37*(}YKiB8zM`6o?Fp5IQdfAwBV{YYU0XJ)%XT&tcV3EqR@}9= z;c8}`1u+w;SfT>WL_NABAOd+(x*x9%8q)LOJ77 zEK|a9%tqK=cyVY);~E${(HebY#}PY+2g&E6xOSz2Mfv6YZhx2=3DCOc!xxh&2j{=u}8nczD4Gp$YX|&OJ8IbxA(V;epr0-I?$DB%c|+m>PSt8 zZ|U*w-rmIvFyHFqJaq+c5KWsi0)t|_ zh%S3&l)N2Zy5d88dQR?EDiWfosqSHo`&_emC3quz-3Gd6v932mpG zTR^3HNU6Wkmh|Z@+9NsrD#K0tkJ~2y`483l&?o(-*1l)gu|}e+5a>yxX~+oaT8E%p4Rk zJksNOI8BDYCS72I#;O6M?*X9B!HIJmVVXMU{dP4vO^6|NnY89gm?oNw3JfyB4!=J&Vu-!Jv;Z>a1W%28kFW4e2U?Ct5W4?6b2^mGEu zsbiaEJL#?;{E`zHIY>YdQQa1Lr{nHxGg9zW!Y-+G1TIQUZYBMs0?#==?C8A4U}Sxu ziScG}an#20Vm&U_9@!20#FCT-g)>G{FYd?#so_jt=`8>5I%X8pOO6? zOORXSLvGN&k8_Op!Q2ws1mC}(Zdu*&dr-+7AOS940NMUTj9PDQ+7 z{Jk_oW1nX9v?2iFL|z#y(fu5=h@wTj<@@m`A4bnPj3GhBYEdc?+QPA*TGY}wMcBE2 z9I90KS?aI?R4iolNDal1V&=fjLUmdBXHryDacEyJ1}-I4^Bx%?r9lMx*mtg=BED}- zif-A;c=LUmePM}$D+H|N7+*>wm+mn>b(8KSaJ)LuTl|p( z*r;y!*DDsW%~p+jqo$uhWD#6MBhHbfjWbG{Cs-%VL*iK!0~QHzG{DgSivXf&kuY28 z%|QaZ5a5LX2LVLoYq}%z+OdzBVgDS!&jB0^5XG-4EP3tN(m-1Q+5rv$i264@h8Dvc zXfVKw01gF+5_mrYtm?!_2U-pAVt~T{q6*#^17guL!+r_CO8^cBn5{MaAqK?yhb{tG z3~&TMyqc|u0WlStVJ`uQlDLl0+P%4fg{nSGie}h958(3v&H<1YxLE^$J3F4F(MApt^(8_s}W zBWl#dO4N8niL#O$8!wz#uwso3d)X)!AeiK2T^G^Av;6ct%bllJY^R2thR_ngMp02v zv7pQnnuRXp|NhK;zq=bm@BZHF!hUC-nR(`!XP$ZHnP;Ba-DcqQbVk7uWMD!*b6+tW zg9olw$M(6_U&hdWQw*!oE7Hipvg{7|1s9XZ;YF|yhVo8}u;$mp$W_|RDo~T&po@y> zW1gWrf6US6JB>MhUa2uh2ktcH*hf=ijvCx)%(Il~k2$Jvr!nuUOn=N#hdYhAJyiF{ z9F@4!m}B2fjX7#@r!nVbC^hEH`c7kx{Wvw|sK?1M$B!;G=BUWYF~=^Q8gta-1Nr97DUtP9y84yBo#yp+yjqINBT93)b&6wma|rtUjIG z6>|`UM@*P$Kb7tO#^BVJ9<$7vLs*HUbLz3?>b>YT{x8{E!2;hB`E5AH^0eIit&la= zInf*#j^D7m@|yyzW#RbPY;&%b@7Vc)*1BvhZ-nDV37w5B^4w|M3TxH5>A66dF^9V9 zSoqWm>()v$=U`Pbj-F?RV*^nMYkpr5yDVVFDZQ=2qE!*SEYSXpw+^%g`jJ??taDSB zPYD4`pvgdDEW(xb$}ZySb>#4HjQ0h%IRz><*t{$>V#i14nEo_^#dv#1q@UeRvj*pw z#YJm6yhd8o2M4b^zj^K+H2&? zq#A8~iSs}srG8D3V-F4?F!XLkb8Cuhyw3K0QUDxCWCi)tdpB+nXH)=_!{a|ShRSMb z3RjSpS>Tw|f7SD0p)&|th+$-d3?ruWAUXK3r&!DQWte*iWvZ2dq1eqbUYi+C-$^4H@IOx*%uw|0G*eNwc^ZC6QH42SZY&XD zW~eK~_hY3+`nH*NsCQCpRw1m)wPJN}Zc@vpemxyEH_iS6r55uFQ^qaj3|hB}`WBqC z>e@4k=e6%<^(;U2*NVWdA=QCz`J~|;;nI(5zHIGIGn>ra1&jyI#3ryX*xl2iPKA zKJglPCRAFZ4zYK0YyH0U%Oa=pAV@~-w&Nl%k^RKaet((b`Jv*Z%ktIhG#LT3Vx06#<(2@M!(RxzHapBTcHSe@mbcndQngHH> zZJMjf<0W}iJDmXzB+i98DSESoZJ!%ze48BC&l-ODL|#4>T%_TeIX55)q`S61A*q{I zUS6GN9k>R!O;#|CEKXOQ=iB$@*8Q0;4K0mS?F}?6p*nDC*y720=vWA3bY{>~1%@{MI_SB3(#=D`SmNCP#b9dv}yak!vLm4fh ziJK>o6P!E<>m{=_G|>n$c42O4+TWjl{*dz6S$W~=jq%@pADxTJ9@>;xxHS}A94dON zXkk2yh?aF7W9D5CZT#%v@q722vS%Q$aBI>0Vf;Rf-(zOH${wnrB_7TUR?g*Jdaj%d zoUx@##=@q74eh6HS~X*9*YcwI@x0R-7R65jW+rbj&e+_gXh!BKy(cDq%NU2N=Y=!A z4NlVA$Xwj~xK~CX+`Q(J&2!)Ac6BK?H0|9p$;VCKNPN#&8w`*6@TKFrFnlMWHqOip zQ){>>KJ&Whd3SE=2Zg#oma2GV#)vWV{)~Tal^n^ooCpEKGq(1rDw>bwEj(tC5Jw78 zi>sk-ZE?71-kiwHt>@mp`_&sS^(sQx4J^<244D*l&PX4H2|}&9wx39Sy~0JS%Hxmq zo4Q#-V_|6GwxIlmxZFl8jPSc!Mp1Ob2s*G<* zYK~5tG%0#Y@A8b9AO_iqp|^>;dUu(zg;AInox5o*gSmNN#(WAF&5X{ydeM-p=M5=Z z5GtA*9iCMl?Oq;TU_AjV;M?dz6mVW>2~BJf<0NMCnUp`+e-_LBQ$FTo%XC+tlrq?7;sTl#v*21aMDIbt$fU>u16vDXl8k4pU}juu1DXH z9h$hx_UJ#78s)Jux&LvK>0&x`?e|f$sXb~S@xraq4~pg#Er@3gt%zUK&`~jFjXFed z@X(Cy12?sY;*T9>C(tZ)C=~z4VQy-b7p;n)oeA|TKcb%P17~dOlCe0gH>=Wm6FXI% zDMD+=Sen+ArDKm`x>OX+uPSOmyo|rOqG8c(*YPweBRNyJOS$M0?cS&!NK4`M`hH2} zpq@lMRI!Xw!RTHR_pVfB+bljh650Hj!Yr=feaUDMdR2(q*3?S43!C4MB=oPA+a9Kd z@qfU!NV}G1?Y~dz1Jdxqv9g*YhFWZTnZJM4B@jEhwDr!u;n*G7rgtHWK=tnD;bCa? zPhcy7HB$i-Ku4~h>((>rv(qu71kB7MC>bwV#_w>vY$_<3_x2+x+O@wbsB7;Mn2tbX za(3-FoP-B}m!ey?nXf=3$NpZS-@yl4qFvkgCGl;sNXhr6@eq$@D(>qONK8Le6N6PX zmCtjg;n)qB&bo(VW3vk1{H=-APE^8>Ol(?#}BrJc*%o|EmVC?MFv1g__U(yGkjSRrRjG% zkK-{gcSJ&AHfYCS9>VxzUSdc>(b<>`b)SJ((mNaby!K*c7psx-Rl=)mgqn~gXf-2O z9y@Tu>Ju^X9o`o2!_+A+$cT3RiWGDC7hM9!cm0T;(K&aHPHY0$+izf*=z8{$69bk< zc(3>$$Lo3HOf&T`Iut8gb13y=m+t$C#~sq-#*!yZu6`Z$a9UV;_;_j#PX05Wj@Qlv zVtRi*o37#y_E3`tD|qZR%lulEvq!uu)adQ6`hl?3Cv-bOWvunpjOP>@EUpI&b5o*A zAfe|yEl0U_)>5nK@p+1K%LMrmsgx=f?g|3Ffh1(O-KF>L663e8*xu1}y9Fr;0iq36BXc&v zW<;Ex9QZ;zY+CGK)97~d3X2Fkl?fnNd&p4y{y(W*If1k8(8Lvi+Cab@Z5VK_Yi7UM zOJ(*hXwQ*m#cd=^uP9oS8%a6Q`fvNwf4AS?JvKCpT1$B!q~;hx*w?(r9wAn?FOX(G z)mS&XFny2Ja@*fY&0lR4biSdzsO4Uc&CDjwHlnlqbBknI;n(EkO-V@% zeNr634V;e-w)+S~VPt}{jOo;Xu1);9V?syAf$DE4dKkwxWi>@21@|C$jd&bKXvL%k9g9$?34e$y6L*G1IDhJh}9fMvM-WyfFBfHzsRt!pWg$+4q5M&??B z2Ky}=FWpfu-!$XwVF{;m(0tc85~v(ZV`aBdkD~|;obiqA^R=XLF$Uu3a&ERcf1vtq zPnCEyx$FdG)Au41`P2!z_2c&;{UD)qBT3eq5TS<*1Sjxq8tCNpgHiG7I!BrA^oCNK z52n<%uPtSKgJsg{mo!GC_P!v_gHSocdaEuRng(5@uzPK8Vz_G(eCD|?GDd5P7k=@N(THSUpnWjC6rw<$o!Je8N)FbDf z*bt7cXJvGJP&&FGYl5-mnyz)NUrFoc%L0pba`WW)Wt78P({aW@b}-zVMbUj8;L~hZ zUt?u|%k$gaCSH-me3%&R}D{&>l?clW{l;|J7j?Gm}PZfj=ES+U`{hlX;gzFuweCUVV?aP?VvlnUk592Ab- z$btNX{)rX+v^+zN*ok7n6T`7$G_;zdtge>U1s_lUU)wGPcB3ZvV`JpqL=UR6HW6UZ zC)i2Vdg=(KkB9I!>vnL$at}Z2c4XF!tExU3rK~kH@e7#n#PfJ0e&4Dd*qAJx=)>sP$$3?= z)B5X?;2B@!ji{d2FmL?3@x3c6I029n{XBTGi(wmoTsb$s>RK{Go4%4WH}9&(vrgmD z`Jx$%SB9%QDvP(2m(HqL+&(3_USW!(o1)w8+2%qfX6)$7=#0cQc7~QSaX zx&@tL38`x*+P*U=&}Ya}ONzN}eEMLl%F*~}oDxH!35`)}s=VgG0W{ALTq<3O^Wq+o z*Rital^idLvF@4Q>}``Ca!HevbhJyVcS#LO%6CaOl4O1WXSn)ee(OI?65G$6+mChq z=BpC}8Ew(B&-i!Nl+Y+F@Gb6uUUwG@QE&&U5_x6GR!;;Uy*8qCd!$U{R=Dyg5ot~G zCIRKU>RHP)Ma*tifz~N73Sa$tl42Ek{Iu_ma3KV}xu9vfD^-;&^^xYWC$EC_P0Fqt zmo3nl4s^dH=s!KsT-(5XWEU^1jIKb%+g``To!Bv-h^P0DqRp0_v;R=gy)N5~g*Mih zgfbwz-C$LMEaR#}R?S;=m*syKtI&c|nB3b?u@MO}k*f;6wh(s(W z4d$_d=mMpm)~vMmV-{?*D}jIfDtmRjWEzVky7dDn8D^ipA|380U9a8`5!!;CBG@nz zsoAMJ>HLTL(Zr7Dvv~3EFxYq8k|6D<3d zZ2w|A^{*)Zf9u~l{aydcZU17LYwDtFpME~&`ne;C|CMR|JaZ!be0{X-=S17j-kM34 z9_esL0O$I755TUUTqD3jOQkoP#Qks)UY& zM-*yEIp_R)!=87Hzb1sz9er1u7-GCi!bYyEh+mOWQTp}xqld*0JFJ{d1n!Tv-Vjfu zEyR%i!t!wSvT!EHjqKn$7GQXoUlH9-kqPh6+aosOiIEW*sELzQ_pLu4`)1{JsaYXD zUe^Ap=xI|Ti|V##MBWME?p3aLTbTx-=z>k3Rs>&Yt*ZWdM0E>3T!D7!l~oyEhoVbB z{s}@=GEMf@DUvXZwp%1S7H~MeH+XzV;Z2p*pIJl`*ICw1o4*ys^AaC1zkPnQBAdC$ zTHX=45#@pNBQ_q##)czzBNrhCPuoYsuJc08R!vonqnoOeB|d=bBUX+LwL*}QhMsa{ z$)1)4WL3OtcPWPou88zG^nC{S7IC8XH!^~tsixL9ri1i{c-I3K58;WS1+L0eesX-R zTXWs&E5kybAiNKqR6m-3W7pKC=EBcSs7LZOE&Z; zD!lCxmD_LH<_=*c^u#Jq?n<}fq}^i`;H3R+Wp4?^M}g!$;$Z!QV1g6sDZ#s+6I~kL zdE5P0xoHKCLtW!p4@4KD`Gg;?ESepzgQkJV{``}dF@7)0V0AMF;o_H)Y7_*&Pe1wS6hn;QI662b^cq4iWK{*Ee@0WQKC`fwvjDC$^$Bd2-CW^7qa16o89^4F>?0I7hHkwCw(kl~udY zV8gp=6BbNFZAs>Z&sGUN>t!jY#y;Gj%4VywdLbY!4^`(48*1}n;o)|ux(5;FDG0L7Bp-2q#3y| zeA#VHhsq{K()V!nj3S0BtoGXfSXn*0yof=vpNZR4?Q(OMJ=kzGm`hUo(~^_TBk8M1 z^z^=B>R|nM5ZCf$aPpg?lx5Xm{Y(6w24e>jzoWS%m5(AB2&rP1kgf@EYaY3FxDy+x z%NtKT@<%#$AKN1O-5o*>PhjB)>Da~LL_Bj|Djfz}`Q>ZDq zzd4r)tnp+&>dVZt)9kb9a`T1nkeg3Ax%tX+}W zeDIsJ$Is)(uzUD51^;LKj!ehzTk!i6tkD_2(fgFUtX$(vMS(n8fxZJO?IJiXUg zsSNAPb9v%lJ9F!0FJxP2-7fKVn5G(JND$BW32$P);Ezdz*f(w4=CLqQq(shNHnstzU6^!ZVGCs1d=uV^x0q@?0PW)k}?tRef(wi|$Kc|N;!S@c$vjg z^>Jf_K5jA#;A~NP3hiWs$~U57zQ? z26OcJCM{d>oKd%6Czi$tBF&fj6f)18YDtq;$fxHV%Gm-bXsX$bYRvT%YQLA-Q}a3L zzd`k(Gg$ZW?U}ebTWv?b2C^w&e_Ds+^@nI74^I9&Sa9goto1znaBEf;&LBey%#Dkj z#JX3>(RS~?84G-{`FI<d()dhdBJ?Z8E~u^}MYs@(l#3JsvrFJ{VNRuePn@Y%)j9jte;0@vhxOsCFEI zV8Ddu7RycI5QSp`${mXz!jt{$G}*>8U0-(>S+!~3W5Q-v81xn9ZcVD;B- z8;9p-)DV?G7CzkV*zcPEw7^Z?Y+nvSv0?e)>YMZG=H^5z@;P+5?@^m*4a?D*Jor*5 z?b&n~$t;9>9rde#Y5Q0cs=_YA$Fk#g5Jx(QEyY0m#X;Ep5o>XK3I%U`7)Y$nlR+lb zSVBQN!{NjKP`X*WH#^bIr>tIyA(l+_B!WWhj{egQ(vNuG`_xj*wImBkvE=RqASOCvZopCJi?U7|K1#M@S&Q@n>O>Jkl&r@&G_+wN^ftEsC z4As3*9XZvNji)3td%fDNE4xx(k<0B-BWN6Ti1wpBM46d8{zznOVZR>zduDjNc&0_=S4wK@8ss1SXSzTYzBlE#ZxGD3_PLySb!CCX>^nDEInT78rtiGC z|6TT+zOx?pze^s`cliVUHxAW&*Qd&t>ihkB{rs{beb0W(|1KGz@2ph$d3W($o+>|0 z-&0fNpVN1Js{AARo_)VxUrwdIvr^?t^?gRFe38D(Q{@NfyFOKZ-bB7<-{IHScbdNQ zQstl1cUG$WBl<2+m9NxyeX4w^zTc1e^_3Ord-nhN-z5X|os}v-k9n6UPnDmh@2RQs z&*{59RsIou&z|Dfms6?ltW^0@eV>skU!?EyRQUn=u1}SpH-YcjxBK<=ou==+RQc!h zos}y8h`!5HnkhL_v}ag?~(!f&PtVMOHF;L^3(J^HC6sOeb=YT zKces1_xbhZRO&k`RlZc;XQav(>AO5tet^E~Q|0H4<9qgPetmtX={qk~{yBYTrOH2| z@A6dnN`2R-%9rZ<{it7GS&_bHKjMFv4A6I0s{Fh=`7TeDpQi7rsq)Y1yFOL^5q-~| z?CSIH+;2bKEM&{*xec%!3^w=kT@^h*3lQ4II8^S>Ob%Kt;;x5hF~mQ+O@?rZJ=BFK zDA6vfVVeB*?)2N+3%TagSQfB2W@#BK49D-#S*uyHAXBv-(3Y8{x;URUvn}BH*>27A zS321%mRp(n4EY!UBvbuGuvUn;)mFxCM}j%GLww?v+7 zZ&1A{Id1Ed|Id56kMH82hR)DMMbERJJ&nY%8Qcv#bX~aB$YcPjMc|)rTC|&P8ce(<2k7cGB-;E?j9g zz9Ayo9-U|5g7wm|QO1=!m)z1hcfQ~L$mLU}9}I4x#vA$DbRB=1^#{Fk^P#L;*O$w5 zen)=dTPpF^TdC5q6U{TvxSgZZ>Qeki=!6T=gO^2ck2u~mCptRHbckQG2ldDkq4(`& z99#Em?Wz!4^e5D)fSgS_nrObBKNcU_AFKA)4U?VU`rC&ZrH40NvoqXC!L^bd{4{`Ledco)H@n(oMNq^D`d_y>qlODYr;xi_xQ%U>%@_*5x%@P3Ham7oHcnDy zT)o+n!2!GFN1$p|2o!To$Lre5uuJxY1ibg4L= zI_u7l{sa4Ucn&w|^bfH?)2Xn0>L%HK3};erE01xJn6nQu=1HHG(^bX@>ecW5l~K*} zLKy(;?qBmlXMr4laC|;E96e4pi`nvc)c781@88SbNi8_Un3YdLC(OxkGHJ4O_K$XJ zpDOv&)=h}EPYS(h|9#jK9V4Q1B)RPsm?q^&k2lMi7R8J3$~ipR%5*dDq0XtcL3VTg ztu?Z?nE`-%y7`(&Cc|@{y(Xml*_@Aaf7%butQNS9kaYE0Y5ufnHA})ubL`z4t>xu2 zC=_Zu*V?OcMisJyyMvVIEO#|XQ`!7yD03DWG(^9r1lb$S|VItV~xY)t%JejcG654t$TGH zW$U`_-=W649MoR~b*C+vs>Sr8MEiYd`nduUXtNVtX`Q2VC0)Ty${DwHVPQP}fKcOw zuFBI?<@lYeY&>y$#|Yhg`GN6K*Hs6*w4(K{n!njGJ4LycFts=BMH2|HJHEmbA{ z37o%w2sPgB;FlZ({J5Rr%LM;I8a(^ov@J60shn$uAD!v@gWB&UJALn*ziFrZyN~Hy zzHO)P;gc~jd2*qyt$*Uy`_jIV-=vwZD8s~02?!@|z$ZKLEDN(=Uf;j&)c#NN&)O+} z+*Ma%xdHfERDY;!+Kv(2=L2*l_t^Cmlp=+fwn8LI|H=gde9tX~xA zVTYoAUQJ(|BD47S(uOr-`!{OaK`!?peKi_L2^sQZb9O6x3zOyZK(h#oij*WK zK>hFOyoZ?e@cIpW4cp%&-rm;~VtYXUN7rbHT!@bt=NE0}4^!>Zdy4i0`uprp87lGaS^Loq;b{p z)yC;J2&qTTvU^CB_jS)nzg%YyR#TSvGNR+M@>O#EMt$+9dYYx5s2Vv=&L}iFVZ80} zp{~a_sq!JVa@*r#6|l9^V_&bOzh9;I*SpG*I-bfkQ6gLU=XHxDsn|PPlf>gspYpjEb-WWu)WL$2BbjZq%QCY~$6-;F(ZjS^B^}20BmS&!r zK=2*^e9`XOtp0@U{dT}t!TJwKr_URg2-MA;r${mlsVU+}+!pAn?qihCmmS)=D@AA65JZITE@$ny zLEAvAZ#P!vLQ+Tj|P8bW}0c4Q1HyQzz~&2)Cq(tHRt9tR#xWBKEbOQZs`Pu;#Z zYs2sobl5j-J)y=?g1dZYxDNz3P;d`+w%7dRywz@5&ej%snB+iggWbwYu)b)2&SJPt z$vpVm&XtdmCI~;o>`W_3t>Z{)Km~j@o2__F?L3{yQla(t% zI$kqWqd>6{6ICqTe#L&s3!b<^N{UXRZ3v|PVYh8Y3`O^1ZFGC(rimH`z1ato4P~0O?W6hTYg>7w zJ3Xt4-;mMN?CQUe`W33`AgZne3yVO8EsDC-G}A$q0%bBSh$ktv&unUQxqDe0mzztz z-_c?17YW@!NbQFf2v(Q0ns4HdZ@>9^0CgUD6qmCWlggmIPlEV)FRD@Gk|y~vlm3PP zyD71)f)pqh8&c5pq04+inThXqbX2xw6}U`Fe&jOmQs&z>)0MO~I`72Cv(ag+RF1KF z`^8`⁡oVv5ux+sZYoIa8-J1F}t{7Fz@A4nyfI7m-HnahL|;Hcka7k%+MGmF0i%L zssYA3tNDC>z;A9iPg~&)_{TsoF7n0_CnPHPPOc|J8?;DOME!R%+1kW(IP@DlbkGDw!_BpJ`u6 zD)9|2FM|_Vr{J&{0P&I8rsc)1+Cm{8k~gu$BFN!ZTNTQMeYvsI`D7>gFv417wx4b{ zF`QI_IaZ$DZmBmnfU!UAosazutRO2*;chIGv|A}pu91NV_BZ~mjNjVd9hhLf_4DR(7RStO=B>#Z!(hWzKqrn# zwijyDQrC1Xf1Dq^x85DykNI&H=a%;R_2p9#&uKS*Cxpd+N9*L`^e1i4?0&%-{arsK z0ygjI7B4GJJiDZMRPfnzL1e#n-Q^%vvRsxe0@>; znzW$}GW#5iV2LXN6me!)BiWa>no0ks@-=x@UJSBKmYk1fuUb*cs?p1v7AuL&zjJTgane6oW>0uwQLx_1W8(QL z{3EVqiz}n=;FD=y-V@ZNQ+;8PSZ@}FbUc=Uscty5krwpk6xmKijQ$J zh}R54(=v%MinHh$j*>e#XC|ByYMen)ca(4|zx?%J+wSnqz{9K)mW@}G3{dI#0{<E&jr+{#0Lww!vD?RwO31l()KbQk9|z`+1$yXIt!w2Xew_V+b1a+=Z{|M$~f z0-@5`!MI#Y@#a(7i=Wf<;S{nz7QEkgF#D}{G>!hR^q|ET5f%%+@H6nGfa)`?k@dQ zR)N|1-q_lGzJqTvZ{y3%g(y3nKugo9^kF+4|D-z1odugZ>Ne-qu#oZfC%(clPBX*V z#F;LrJQ^iE++$%)&k*W)Zt2L}NRFLKb?Y+{=iAY1{~wQ{i}N>t^c0@naIEe zDb@e#^!zuJe?KQNyXeo!0J{GF(QogHJ$|7-dnVy8_u-%2D+!;(?`V$jlH*faj;?hv z>Te3a-P7|2DF55uyTotn6`sp&$@jy8ZhYGMCENSyc+OA4&+_5B?*hLAUh0~{?;X)+ z25#~x{4&$?|Ec^_ca7gFv=&FdyM1~b{7d*XCE?HV;jh>;*&nN46>l7Mx_S9n5}B#o zS6~&KWqx&n#Qk#CBC~R+B>tMn{!+AZq#&DPVgx$Toqgv7%N%v{zjzHh1S7r4ldG(U zKiK*&IlgoKFPA0jzx${4zkkpFR=>uh15p+_H97d<-Pjb3OftsFk&J-p+SlvxF5vrj zhTl{06$3o@WHq~!oNQu4j`;uZ^zr*1n@BSM1Lfb}bC>+J6hJqAF97A{KkNL@&gbWo z@DqIaXH)YziQfUQrOnTC)c(bXrQ?^Go?oi`Z+q+#zjFa}`0ehu*S7mF;CDz8{;S?z zf70YlioZ@fhDy@->$D-M@fWLg=C2=mZbi=jcmCSNcwPY-Y2&|j-Ifm1)$hSB;D6m2 ze!k!`<7r}p^Y=$q{SthHMh5O4j;Jnzx&HV0h5nzLg#VKd|ExcoU3?8EU%q2GPUo)&()uq}>)ii;kNyAc z|M@E5_5T3%FQcea|I_m`ZU5Q%?_&H&%Z;H_@L?i zto(j737_l3ul%L?e$Q;b{-xbL`V9Z2`p-?mKkvieovJ@Meh0jeHh!f*CPD|Lk6&hb z{s84KX$|Bxj7EFXSlYQ87qBV})#*(Gw0ye3MubFBWb zcwX(0J@Uu*Psl$cxjznbuTbd|x}%sANOv9K?=r&GA5~V*4QFf%XKZQB>`CklnJ=x; z*T0`r_hlAA1LLP)0^445JIzeq$Zmz}Cj?6E8LUt6!LOWPz3yOeS%y0j91e8Nc$3Bh zMW43!^XwzR=D{ivd05bq2bzbHZ4Q3IUTDp1&CJ*PtMOqJpH&{`X&!u|4s!(Ejb?}UneY#&H|@U^3d*6signL_vlZt|R~Ed3yIOt6`Q zti{dRPMd#ol`YI;Hx=i3D3nUmpuutKZ_v>XvZ4s%s$eDS7lQ zWVbzu_bg;5`+z+U_>r(S-^2PC2zdt}#N1u7KjX(eKrOR_VIH&!&Pi7p))e6V%KH(j_pYIeNcD*)(53vEj>baGIjghSl%KZuc8-pVc}x|5!+EPaFp6S9(uMML z`=kwA5QcJZIY(K`I%NS+~7sWIw)Np|-m1`$qcKZ71SM&cFBs`xo_3uwuSY z;`4bvE#<>St>+cDoS&$kFNfLy=Ycla3#eOF{iSD-ddp0tIbN@)@OaggF(*{i%2OTH zG6a|cisMQYCN2Chc?9el|J%xpPl)t!%CUKY_WmBfDPOK^f~hL~Dsph}wO+Oo8{v4J z`DC8znP5$o-sxH`M8dAHBV+ukMpV$i<=8xZbKtDb_JVh;`rt6O(Y+Lx?z!DJGtO-$ zv{IXAQnad`0!PDVHddQrOShSmHpx)6ZbWp;i0FFtQ}6VAW7_v)h}^c}A_D~G$mG){ zzAINb_*s`v$eo{w9}}7a=ZVdi^N$^4Q^PIRb~Y91kC{wdeI=Y9j&;GnwRgCTfu0b& zPZqFn-H9~04T~cmtkF8vyNGu_xPo65ol(5V4iIcILKp0H{=yR+b_!vowJ@L^6#u&28K8Nz?HlKn(ArNzjek{}wKV7A?Rit_ z$qc4acbdbpG)MGqd|7a8mOI1UCb;GOE!^Y4S^3fahbiVQTrVJI;$K#jFmpy1>@7O& z4dOmmtTm(7q-ao&CyNcvB@k;8ts#8GT2uUO8jNB<=*srq;fzs%#3sJH{p49To=vypdVTP&EBFfA zE2>Hh$3qHOF^Dq~TdqpEs!?UXp~QDLf6nF2){qUW{vHSfr;6x7opgrJl6h zzZ9fgxn<-kRKob{_0E#knhZ>YXnj`C1d%CmFWnBfy(*UiqV)5W zHo1a*EYz4Oy2o?=s2XqhNsX)WIBdBYX&Y=<#WZv@`dq&n4|WC5SHZh}Qt%}eJdT2) z#@-I_7y*v?3E(6F_OXBi0c^Snh)&r4_#@a}BB*xTZh@dC?hN&zpoR!)4p4Fkjr8 zXEaD zR8CI{xRvng-I0ofC;9$ml&a|RX;UpJ`zE##l0J~H^#?a%_~a*xY&}g|&lTKKzLCn& zhjxz#fttH*AOg^O^K?m-b!O8y!l;`&gcIAh!rL(YNl_wi$-!PH%DH9%VAf;3bS}b) z@p4|}@sbxnM)ka4>)|y!U8HvMy6F~+Z%HX2(=ER97i%<}x7(k zUV!Jg;)fCMvM{=VXCG|iRl20w9-K0wXhSID{ql?r6dQki<;3j)?NqDZ0Z*ueE~ZZz z_eTVOw;`NKG?9wvdUGbkLy6g+j3FFKH|fANU#EoIzvh^X#L@+kzj*UbW0DvH2YKHi zzKfS7&LX88oVaKt>|$VN+i?w>tXF%nGD$U&%CB!NU%W+n|P5w zmWavI9u1wnq~rSI`&aPu>g@80>U zg2N|mK`6GF8(+~@!a8+C_7T_QZnUmX^nba@;crXVXPRyl_8dDT+j)5IL*jA3kCXa> zb$nc2)0wu8k~>sKpM^Sl(#dSFzD8UPWpO`3Gjv7y%(qL+W(xUTz+xV(|Fvp~F1LL% ztA4N(I@)S3%9ihJaPq@so3ApYdhVom+CpdWh~#PIvHF4qpkBr36q?o+r-JGY_Wr^8 zB~+krPW9J;Rqn&ZFc3UI&WQoVrZ z7_hj-;@kkgS49_EZPxPm%BpByfq87bAoB`DgiACfQ1$ZVOHGXl8!T$2F<+!$u2?1y1+WhQ)KQR0J)&S@3FxNI;KH$cZNIIk@$_GA&Am}D7h(j0^@q{* zj;Z!5T3^sYV(j1cA8oW1nr%e%heR!Hc=~{1l9`pwXi;vDGWz@N9T_cbuh^{@gv;zv z_3zhdCJpD0?pwi@mJbs*lfe11^@fV)T)7ce#_kbF3=*Kf-}VV^OYO|c-mxknTdJyC zEWLPF8lpb5MFK!X6$OG%wBVMU$g=HIPhu-x#eV&v#Xrt7INRU6Grq#0M~m%XL@yUMOi`Z@bU zVuroVY!nM6?ntM{|FGXI?dtZM3qMNRZ(i7Gv&nj47TMh-CJDRe#O8Tra^I;BWG8HN z6M44G^Ikm5oHn6v_miI9)*lL%oqx8QKj>chkg2OI* zC+x~4GDk|p#B%~^_(^g){6+~syI-^KUsgoH%(~f+)df{l^9V1=A^^CHR;BA;ng6B4Ms1(b1w-wgMdGc;x01uu`=U9XOj5n>Xfqg>7 zq!Dl5JU5MfPTh}P$NvY@)9b|g^4Hh@0|s8t+^W^34k+>;DyP2QA;t2TBYkp2^$NWQ z(Qr)~(&v9?gOQo_^Mx`q*mi3(OcjpbjB^?B&Av3%Z&;brB>N&AEuxIMj{>&mw#%gM zuGHsjHAG^DW~{%XDWFNNnnzk9yvX?Z@}M&vc6_;s-E5l{mE!@zs1$5CM0BoR;5nlb zuj+Mg3;8V>&IBovl`EJJ>%*#!j@skd^tA=+2dj_X-t=BDv-yp7Z(4r_)t93*kJjrK z4QF!HAxuVUFruH^!I*Te>aY8;OR(WA>GpMmsJ!ntq~W=Pe4{s`6DK6~M00wtB;U+^ zzcb%7+Haq4dTQQ^jpeu0w8D{d>3W}Uj$dl|CL!I(+B0}Yz`M6Q1z3N-^&ACEFnc=- z7~ETd6J5=;Pswi<^U+ah;eG1`bUU{!wjki60LO`` zQUxGJp}Ft_I>N91W|V%_%^thcL?0UP`C$NMMc+H||4DBR-Dt~SnYYxE@58QH2U@2C z*#0o<(fyDVIq?yRc0FJ_ct4mrIdOP*=lElhx8(Niij7fM?$0Xc$-h*&4c*ep2_H_J zX@(yh`mpBdW~0+58*5!XXYaE8e^O5(lTr5hHPpz{6vDSK4L&(AW?Xu^iOH$;$sg!% z*SfiO1_q+kTx*3J)8^VHm=t3AEund zjAZd(!-M2%uGFyR)QZBP#v#zv`SHul==1HjYe4v{uG_71pJu_GWcqz|%p33fwt!}S zvO{XIX?ms?;VtZJ0589PZ_sh|;jw?a`MiZylWrw8@UQhtYdlQt%N)?0-u{iMdI`D- zbH8`PyqbC{@%eI;^8Ul-Tg?trvlUJipxsbof$9tGT;F~wb2s%Ro`eLtp9-TBzN?2h z3Cg>eoAz=6tB6_mibb~JR%rd(IAJY($^C_DS?J}SL$2Pxz^RZi5cS!qNp|w9zofb3 z_a=aRydPifXc6#GfB0{1!u6NWVO7DE_O`G&4Y8(ru9PNw5na@~HdQgG$dgm$1s9nc zDaMFQQs7_*h>z<vnMugms&7(Zx@BDKVZ{)Q8-FC@`t6sNPZO0 zLy>@L0rTN*6+&c%B7T&u9Gy;hn&XXV}w+i-L#k%X-Q%KT%I>-At|u=fqLX7#td8w4dU(uMnb z1VLa=KB~|s^qzVZOQ0_?)y1LVXm(=8R*i3{@kx55`43V}m(qbw@@iZcIN>26Q}W^r z;1l2b^U7Bg607L$gjt=s>*)~hlBMomOm64y5@`XlH4qfI!yo%6RZn*d$-Q|$HAbqg zajl)Xqa(pdaZ0~uD=R+MNkyl5agOSlo&olH_&wCPS^Q)T=g{prPn+0F8eMKr}lQrf8i7+TV$mZxOY~MEW)Q2XrG$CL9GZV5Z zt?*v~@RvI?6{tjqPvzA9D`ew~CLY}2%X{nxyl3veX(Ky^XR}t{_VfmX`8=c8`$p$ab z-eKd5T!CH0>rtg2k1J%eSG`Q8mZDkVjCN6fC6XgL6K!um?HwKYH9P@vdPmVJ7bd~K zr?BX}^P>ywbpWtQqmO$vJv0g{hE>6%Z^@VfVzR<89jrLJwBYR6KMLk56;Z)OCgz0B zl#of759+>VQlB9;9dnf?&QJjDVjK2n)U}4L^vLKoW;LaqRN0 z(TuhiZ~ytSTRt8HZdxvXNXN%@CUvH+G&S5UH1S!2CS|Xag`FUo8#y0dZTzN>AIuKc zSdz-5oe$Ne1JML%f3l`{F=IsyW@3W7e?n@3YOZT+jj?Y}Q; zd3Op*ef!ty@j7!ciy=nU11(Cn3-*Yts$j5r&A6^KG{EFmud+lIVzQ5*$5Mgc2&gvln&OP#w?tM^;Dz7IGvxKTeI&pTu?N8 zRU|XUY2_ZJ;%R-7<<_Li1)E!#Qv+?3LW&AQujtI$rCjC?)?c8qQZ328VMUTLTs9?z z4q4}rwNuFgmBc|-*%PSPV=1rVhR4bAOJ9>}*Sli3l93>U`|kaN-c36hx!cqyAF(+= z)E+-9*ziY0B8Pe-f(`fDUtLbG=~;V6CVcjkDv7q)t9t1S9c;M7gA6vDZGQ^m7deS)`Y0t4V`I_+vV?m}fcv6{`jXHxy~`_b`La;Q9F-wsehORmS)6s*FS*+SED;HM(g3Pd53!R+?Arby&=EoCFa z?9B4*1l3huQjlAt(dFF7AUpLxp_Z_ob7O)_Alh-)J`SPM`la2DHDTql=lF^9z{C!h zgjDD8{s6k!XzIQ|s9#5lFCy=BHQhi>wxyI@y@VWdwoTtzt`1jL8Ckq&@CB85=OO<7 zU%B@+`KYz{<7N(>E9xR)6MLZ!;IuZVc%zTU4_{Dd)qR~it zarULhi%RWBYGNf*Nd8^fS9OsGp(#c;VDTlAZQA`lo1ba(`y}&|4@lYjSL^K!Sq{Z@ z9?Y#17O-qafFYn(8@XDQDA{fzL#K|2&cH3Lc#)X^wl?ZmrG}Sfk+nyMDk$yt$SJ#H zv9w({!j5om)Bd*FlD$N{)27k0y4mmp&MztdbB_-`EsCD2waq+6UdLjN zjF*i?>;DE#8p(g_A>z_?xQ~6|J|=6s!J(8f(?bEBVtrmOrRTIqKh$Jk+Q5htnug z5~kBXv)5AH<4KIR6B7FHzF*3!=?ClHxZde+#Uj6ro#2@+o%`5wT?)8sw$s&;2aleg ziKH3`-1~V-Pt)yOr>8wmNPD8_rAVIiPrUiLwEGbc5KKPtB*G}=UwwLd{!Pj+Ugr2W zx3hodaR561#44bye`$ACe6htY@5}T|!td?F4<~G#2cN|6>8`pz>G}U=e@6Q#<7xQS zrRSSZ$-f^;@4|obDgYgRGl6pcuPc)6dG_*3S>rZwM5o6WIRhP46`i9%-~AbXGxlrG zp z(z&UG@^=xi!W3O=PN7(S_Sxs6F0xJF$<5hR%hKZNN4a$I2|2`3MkqQ{_SMN#fjPZAy3j`lJU|Xq%F&efHYMPr z_x*4oVpL|EIj>{|&bc6Q0bK3mtQmG`CXb&cZuI!v+OMhBNUFu%`V(Hf7P7iOX$8$dl7uxqqnK_5AKs?oG;RNAZ`;O&y6i_U z`zbn33yq{JrmxL{BRl0!qm2&hx{YxBPD{0zmRXycFFylsDQu?uMScc8y3oQo6dv$_ zJJs*;Uq#g3Cqy#vqKVEse97?1Y9|?nTbb@l2iAu$VI}EVdGw3WS@iNu!`*w~pYL{d zXS6tJu@mn>PlYdG97cbVk{9EW<8Up{X|%Vc$%~)h=R!0j@f-3>__42XBz721K_5tA z`115!V2HiK!|#n{yTb3CZ+DVs{|&##+8zB)*%kd#__=X9)2u-+NTC?q6^f4ElX&Ls z63+vL=WMNS?!M^Hj_;4F{)h4Pu{)&`b~iTff`Cc9?p(Sn`o-6S*Zj2c6@Tv}&jY@^ zeBdKbUOvk!I(BMcPh!2^>>iC!a751Kbbu9ln%5BB<) zMYAWTb5crz^`A@iwu%X7vo6+pylW0f-~^$4d^VfYw2jb>fcv}Lg+O)6ZP+F@x4MnA z94_nM^^_Jod(rzg*#h!8`%fwpo2)YN1T{KkA~?zE-y7v*yUrYhBE-Lvd{i9o!|~sd zoPKN9BF;E5Z#vgPmAnmsCb_sMUYR| zpq(=S8~%(h{g>2a-dbSwsdM;k*Ojv>qHU>=nruVZwcIc*e4Lm86MKS zT2lQ}TRN7vPTbwu)rA9*UUCh|PE16fpJIETHvfd_X1agu2Yp!k=h-P`Z)Nj3gD9RdDihZxt_|1S zHZ~BsAasTdT$B_GAfCQ=L(h9o;aDYu{tuZuZ8|nzhYy@N=t;O zC!$f(^bHzm&o0T_ss%Yk^R@qq^>FPJNNZGwHJKVe`qC6#YjUH+6WIdc7M4<(en|q*drSjp6jq4|Nvh==tg@$@N{WH#@D@_i}PC zl&n7Cx(#wppV)%y9_R@35-AhbMBEE(P($l}VkGwGZ?nT|zcjpJNxb$EUNh79{dCy9 zGP;mqVbcBo@VM5C6Boe`O*qszPJdA?J5E2Qz&D8W1;*RcvSNJySGUQHF8AU+MSf$( z#JS2NNxh6m<0Nc76TyXxsr{PgeIESW_N$~)sb?zH<3UEA@i5iNT56g?jh_MRHob9v z*)aj%9F^TO0SO-R<(=lXbhM8Yiq%FomHibB7>vT6E$ zf3W{u@|?c&QsoEe`;1ii9{PSJResArzNe^Yz6<~cilF2 z;_oOCuqKfvy1XK~g@dh@;&}>lbE74cHBq(xuu(!-9$AvDojQ7;I{Lv`wxdY(+0Zh1 zJI!83s-;B03>*E^{yt$#)y%j3y^GFw?r%OarTw3dUgg#*Wy(Ib2kO=v-O4ZInWYVG zt{v?Y^?t-U^O3?`pg301C;Mg^FRzOq&`A~EDY}Fn=en4iTK*ZVF?DEj^(}lPiDAhw z%B=nX-+<^Gb)I+_iff8yy7Elh+ub!7jp*#w!Pv=DIU*2mbe)-XfK2Uzu&cK(f2XTO z9zyWHsnJY=3||0LTR)!3KXy%?L>IL-cUJ!i!SWm$@;fuL0j+RW}tEK}QfT6RQT z{~Wbj*$B3O?f9=zJ*p5B`Vl;>?W%4yu8GGK#Qt5NWwM-q8*RhH0c_Y9d&8aw1S{%o zE6&0+`@xQ%G~w2n6V7$-2t-@WEbVOtd>5s>#{`08^O(S5E%JpT zPLZPRb3K$p-g4deYmH5{*qR4nKNYT^u!D~8bFpgF&hayIIdeJL0bPKwt{nDIMU@p+ zL^o3(mCXfxopl~4Q-$Yyz8Ma)^RxL$erY#y>mq5%V+Se#+d32Fi^y9Dm{#-n!!#sB zW+e-qts`8(PU=+XjI=^m`h_M_C|oy$=l+NYbxeV6RAf5%Lp$s06*(K>$eY!{hL42{ z=N5%BX&2bpV(DTFsS9_}1z}R^140PlaW3;*T6R8O3;vjz%b=gXlfz4%W$5s`@qm|3R{B?iW0BzCvCsP z`90mKf1gye_+b58`Vsw*+d}wYnsLv#IA>3jYKDF+LRTp?ET{KY+i5lJBUm-GO_KxQ zcza|50TDlXP&G-zHuDve5)L}pqhI|s(r{T-RF65tvns2;EX7SPKRxYjKk@~c`fB0XG7MFs)|+T zGSC;-YD_r=s@vYTW?(pWb*?$0SZbpUHpqU-TM(Td+E_sIO$x=w{b3Tn?42ZPY%w$kMW^I8PC#< zDqbVUZ)_400EjbtgUtGLv=6rMW&cODyx+qheyb=9Iw#e*S4C|w=6^ymO@iSts)e^t z;;b{Tj?$Aj!MI+*b}w$fLQ3;v>a;}0EW=eT^aI&8B3V_ji?W*^w|UFWaW+GD(3HW8 zBQ*V2(#jqJAXxvs{!SKf*~9wTa4ska=4HX?0#>l$Rxjy2l6+O@FXZS@VE4+{t=Xa2 z9@0k!-ex1M9ckBlF@{!Dr@uZo|^ihP_?YC^qKCNM<00fT0DFicaW#()4HGL&Y#7kzi_R%@~-saiIxP8PAp{(vCR`JKp>tsAey9C=fqGyMr zSOb%e`z$nsQT5^tYc0{qw-RWCX0&*m(v=_N=@mB|vfNKXZ?Gh;dPlxWRY z0dXH&5&T0>Lq33BE`@^ie8b_!Jk&^%vUzUnrE3-SHjfm%qd{tO{+^af$gPXZ(5yh8GW5O zPcUv;-QXpS72?j)J5sA-US+I?DK&~j;-A*|b84ej2z)oCYghcuMn#P}{eg+5MX#0% z(qf_hUcLEvFu`U$FtxcZ2Tz6Q@shI@yv&Zx4la=-PppoajfB4mI&ork3;$S=YI=Q) zEXDM|v!}soTgvY)e}OC5GS>121=<7HXKV{Vn4b$#TFuns#i$fP?mWp=_c~k zgb?vHqjk2*HnXW!Rk2ga^WjXWdn3OsZHw19>i%;H)Me`Bilm9D;OEIZ zxfYjqi)p{%{Eo|-HWeH~+DmVEG|Hd5TO z>(F}zOWdOnay-?3lCvkH5kf!BM@lFnH0vZHRhItzVEq8(QDuyU5bPlfeyRFDa^&D*U zo{Ty_*i5^ft$drA$ttgTcKb(~9M0acR*jN&ON-LD9W}@NmY;e%Sd1`9NvM$4dQrzs2aoA zsO9D_{5Ci6PCK$!7fv@~AJIyR#*X=$iwN>q4utHZ4h;cI8Wz^(p|k@fbIk{T(B0on z=KKn~vgUFGBARy+KD8t;Ps*;F&XE03YTL5XrGineivOcP0Gt(u6r-pkH0r90z?f0N z|47S|nE|1kVfRQ7xI7fRe#A&NEX@~DjA!EA-ZJ!NKA*uNoOXjnRRtr>@nB~CdqsxA z#2&O|*QLhMz_~c}SM$r)XB(SA?(W5wpMEWVjd#7xni%RW^CT8~{4R!}!<>QShpS-> zE)(28%)NQ>g`^%>=Zk_c*(URl%dz*Y5_p!Uop*&A#|RI}e-~om0Di&OgM>%NB8$fh zR%q0dA$@wB0|)|O<4vTB(ZSpbE1JA1IWflP%t# zcD0BQ88{jLz0$s`$N7K`rrzgd7{kpwJo3mYIm=9F=!&AZg7>Nw(j7==KwFbcVA*uB zk1$ra{%8)NJL$p`y3KM;GMrUPs;RE4_H;p~k0dV>xHN z0sXZTa^5W(ZpN***`4QKp}HPLb!9yI*lI6VwQ^mP4Po9Cy%0sv6@j{!98>)ZHEL_& z-o+fxFQ2bJ{}251!UD#aLTT~W(RcA{^6w9L&P`To%5{*(-b|C6uiA!XQ(3?~t`9$M ze6i#J*D&ikGJ^NbB6~#jkGkSm{{+9ov1_xNR_I5(q?*Q=(&obZIVSNR)>&kM9G{d& znJixuA(s3=4iDLR)x^gs(H&P{7Io}?PeYdL>G{^kM#yof&eRk42l5YyrYW3%rc*`9>wKrS2N0bR%h{DnN<qvzlT_u;6}*ZFQ{GYX;ggyyH{&UKhYrZy zG`S5Eh@B?G?AUSlg^8lEtDV?Y<|*!hF;z6a6NWirzE0hClpOPWF#>BzMc&QiFLG-j zKJ9kiM6(K<1AwNE`GgyOh~l(@zP`}p%B^gq+;#l!T<)2lDOb+I-djt2IErC+EsCqG zxV`y5!mK5X<4NKx32>jjp+@cdz;A-ux&9~Z3~}uwvrpwi(T{1u)gdtz=HV5pX@4F3lwVE=JKYcIF#j6uavo0` z|9tg3NB!2y?9=D5*PzddZ&~`>OFbGSONL$t|3Bv51U{-F`xozo06~czlqD#PjYbWw zM2SOGq}v3!twC`Bfk8zY1QakpIs&pJkVI(PD7cQ!xG?UHsLa3^qJ#v}gjEx05R3?6 zk=wK(EMX_)eZQyf?d|~1@_z6A|1Y0UZr@vV>QvRKb55PwP8rn?aEHx2x!>hD+=m$b zntbmIf5Y#iu2)0*|BNO7iogbmiI^W1RgJqzMq+TAyio?j*)f{8KN_`iDE8Ny@#!jF zX2T-moh7I+s`X0)zfPSWWIF#r-KP-16oACqWp(+muW1fli*B92*= z98JKR$xkB}gP-bf79sdOxG7woaDKBR^W$8jp8Fr=H!GAMb2js<{|EBRIX^!K_ETXg z>Ad}l{iPR4(0`RYD|9zz1!aH^vFZ&SRZxmOB>iL))hcW6A030xf1r115R;06c`e77 zupw_iTk`wna|G3t52&Xm-KQCD%2)7N+G5mdqR2vmZorvCL+<{9-6|7&@p)$(vvEFk z3QiraN-uQZ9$kzX8yYSxL502}aD{rE{{CF0I0rfkA2^Fkp4ZImLVfPpvMMItQgv1v zaSV>-x_7tFb;n1+BVBZARnG2vR;4GMweZ;pm0atNN%v&qrP|$0!^8^O-R!VeI*Kk2 zHN(`1W_a%Jrusax3hGnT=Bh~kw;x*t|6b1_iRYkWK$(8!!2VGOt4?4W7a6hOSoUM- zg^x$UO9uKJPebwVRlRNjT5iVsZjP!{1}aoN^9pd5r^@wL} z%$_K!a|BAeKfUWQR^|p&CQJm2W%Aov+5T9CKYH#!94H6=xdR)KI0pk2I-@09iKW{D zW=52i5d>1+1J*$;P3Qm{#L0dzRp*j-qFT6mb=R z61Gto4O4prUg`Meg+GXED!8KSy|N#OsyJ zdBo}BwL-0wH@|?+y)!?|F?S*!m31rw0?Y(9=5!2j?uGp3$SaRVqxMccV=bhzmwK-U zC!}}%1y$Fgc1Z0xaQN4?moYGE59{_fYQGRTr1lxDO2f4;BH^tM9@I~P;ZR>|!ILN? ziWOrN>ji$_lRLfVSxa^-f1xDqbBl(^a4w5;he|u}2_}d*P!f0B0K*#&NM&^`$v@GyAsWg`o5MW#~(b zvEA4O$gn(XTo>dOd|7Ai!i9bpsaq^B5Z|BiXMa2XHpb6v@tf%{V|)qX!?@Y5#*l0s z^k8gWORTu^k{QG zTF)W;?tZEHo#N!T8;A5rKftH*yX|Qsy)@>v4C)eyvEcl7+_naMyc)*8hTnUl%=A5% z^4s6W{7(6l-)%$q<2v$tKsbFXet!^7f08ZxYB+s>-~JXRzPLB}-8P)w!|##d^i%mg zAe{b5e!m({-;v+`gCY8~;&);={mIk#ZW~S?;P-%V`XT&&HJskb?>#uxq3G8$mEZn& z^E;(0zuSh>Z##wW0pav(`29gR{Zf9v8czQyzx_DwrtrrN;dk3`dMCd}hSR6=dq6mS zSAM@5PQUFWzWsHf`mf=4VmSR$ezy&$|CHYY!s&P+1FFElp0l>G0VnpefT9ZpZsDMh@lf*vP>9o#*wBjEhOBcmNCMjPc<+tB63cx z6o16G!jvyQg`Nw}V1I%c687hp02QXl6gC(F(4ad^G`9+xnTD4hSl}0NZ8S3@Rd+uH zFXVzUZYWTSlOL>c6(DGN7d-Sq-*RZbL*EgLytrd}xhlX-EWjNs0H)!ZoHPsTe<3YaXY->EG+^8we(WhZr>-sl0TEEQ4Q`1Xh{nt!GXO2BUTkrNo0)9S_5 zu-k*rhIKgAF1A|~+$M`=bdt1xioEJ89*0M#)ScK@0}ym;`a^)h?zIirih|vfI9RE_ zbQ6~A)Q~ZSP@K)Y;$~S)n`|md%mPJ>X)L<;R-%UyhbfUIpmWpF(LBytBmgbYt9wW}*=&b`&LB5Fj0xkm>{#}w& zxlCK3zxfaTNH9Q(4dKESLZIN@%V;0B&F@l=%11-xD&73FXt`=2-ph9EVQFV>4u z{;eOPBzuck{;gp;B*SYpb}UUIjo|PCock`j5|wX0YaScPo3J3Vl#B_9@EqGVUD|!i~Uf5iDCZ%4YOu zK!^Se@g>k1NPztaEmfD+7EO`?muNQ%6^XQtVNMMPkqa1)4>{QDR-%TyQ2i13Uh@uy{f#Y0-f0Q?=|38qry8XI2njHR+~3^#Tu;o4Qjlgz#v zyV?p^mwCt|uv*57Q}8JUfLgyW2>aA~AnfFSoB=oF0syRDr=P$fNRw&qLp+#fpc_m> zx7HM_czQy(QT+ZjCN{7h$uJ3TW4JVC?FH!iz^MqJ-)yWTLV4_6%;{#R zLl&ra4{~)Baiva~Z~1sLd*40ppcM`+LY1aVTU8P2rE}|2La23s!d@VFl5KRdkGg*l z<+VN3Bfwcd@GfjyZ#SsSmv#e6AF^0_V7+FB$sm}Cri$5#Sn>Hd8%gzDg>WIkW5vAs zKntWvK{}ujl!?J@9AI-0|S<5Q~CJ7a(MFY$MmRF}$P#L-`;mN}(6r0^$X3 z00t=pGzW;)s9%JcVkzD&5EuQ-6PWIXN=`HjALxuyhvmbZUo-YSpyG{q~*alW;rqw)my6wZ<=SH)k+*IyBvEPkAF>d&fYZ z&q&a3K}}>M>~qY5A)Of_y8M|-q11#|TIKbKvF2k(7eJsOPYqBERltoZp_XA8CP3pz z%Pgc}VQL^HQ|$0%d@1?&>!$QAwY+Q;8jNnt4mF8+=0`BlgWx6U^N|r+_N|8~LKXT| ze~0yWF&1s<*NGiD>_0gXQO%N(UwNJew3NQ5JKmFPgO|X3rbVCfBJQ^E;b!yW`j6MD zt?icrf>b@OZ$$`wAx*eR*+^TTB~8_&HD`34u*LOesx+;Q(v&YU%=a6Z5iTGrE1~U9 zGAw;woY7?GJ3T)IpEvcU)H~c0pb?A@FP!9LaQ8kt?zgdR7j^xppQ`iC%*80lb<4uJc>)@EMkZYTjC6(>pGNqTuNd#UEfgl0taxMK}QziCRbb zLsyYt!R~UAMfMUPg!relf%0I^{x&jQl6>H$8(%WKlVSruLnVazfyGKJ=f4TDWOoo4 ziLArpab(gBQ`1wC3DlMJPW1nVK>_)w)(a*0zLYhe=pp7Dri%(h9g(6i?)ShPt|cT~ z|NZBvVMk_z@tKeCy{}lt#T!X(u?g8ukO*j$lBV7Py-8|r=;{WvBT0uzBjbR~r(Kx6g!dXJLhZ09m07tM2J0h^c&CFxnQ|zma zIz56qfwRH}4Haf;8$h%Fx&jgzxC#%Ezra;sjd{w4FL$WfFa;qC!rZba-D|wOVDrf6 zzS3(f*=G|bGlTe<5l)EVZL{wDq40t1#*VM*;o zQm!bCsN~RL1GX$Np((=g#RGwgCtrahrQsD2?4mJnQHecED3xdzsimHeIU^>dixeVH zC?3L&tuSQ`)3iVuRDw!T7IL4KN?WI=z^5pB zpd^f&(G#&&@4s^_w76pn&pSy)i^r+5^kiA?8_lxR>4&j-1SXhG?ba~&>x%t{Nj4-< zgDo#}ER2h0QtL;|6_g7ubQBE-$f$V&uLcALJ7uf#jJ8~0$~T>K7wLubnLjE>3-_#R)PTk?!GH9J&lc`R#SmLFT4hb0t~ z6`1^h9Q@t^HJpg!^U23#k5MmEisSXud)J}5@8nZn380_Ve?!pl}^k%FwI57WNwl(+y>J`2Q z>-5VZS`5Dx;Rpt{Ur3r}xZQ@qUV`KMHt05f{{)c%Uc(se3;UAiENf98WsKgB5V%F^ zfkZ3a+oT4N@B$~b0;Dp-bJnv$e{R1~n7$%_ZXVLA!+kHRBs~nN)a$OG@n(HVHu8I? z_0ZpeJz0E4DxWfM9!>*RKw|8A#YkgP>8wcC{lEt4J!Ci)I1QkSbO` zf=wPES?u}Fu$s^*N%1Nu^H=QR6IvZ&4y4sQgoJ2djLNQSLaUBKtF2_QFs*XYh#{gt z20*WS4crB1z=aNQX{N9jV_ejW=y@TbmXf)6h}si6o_n+CWhg_prA3OYYA4eogGE5 zGo{$cxn{;lIf*HAkP>q#II4r{=OdPO^Ffk3ix{n|Db}0W4j3WErg!{(2_{_ zO9_9af?p#>p^1M!;bm?o5`NbUfUkR3%JXRid`T1}i_;=`xwIYCpq0M)sM+k8*avSw zl~m|gPiOp&5)07763{n2jfnzS=sS|vl*|T<9!&srbs{D4p8fiwHz3$al9xR^&}U1| zfjuBC3Gbqff#v`S$&c^{)gUBHSntnmWqVM;5`co1ILQv$*kOQ-#AzhdpGnh!j^ksp zlgxvK$EV@&Q!-w0K&IM~i8ybnnAd}?1m`g?EG2_^InL1s0w&C@D}^RyVP5uV@qwPG zhJF*^Fmod`3h{PRXpGbW{STP3jv^bVs}3RM0?6cr+r4P3w0ESf=r9xR8H=MRqlGC~ zFe(Y>xE)2&OiP9b_rxGL%pQ76m3EPsf|wQ&x?C?6Hoty_ap)*2Ca*YvBb*r6{`ovI zS^2i)KVGO7rYHOFZlV7B<^eJefEFK#H>3X^f=)fup8W;3CTh^M6p)zd?FBZj6zb@n5{OwMa@K7#%#IgPE~K9#&|nxIpVSnrQRq%7@e z*xy*vpR9PNrxAKog$}23c~hnmDM?sWgT%ew+D2; z|1Y3BuJfqV50!`kI7Tf~8fWyym}G3)$}@74v)k|VK8Dln)o!TM9k?%8y6l2qftNEf z-lvnkp|z#=e_T=dLk)+u<*arY(0qfc;l3C++AS!}dEQYZ*G6zEwn@Q0oZH5tuq^yD zMk~Xlvo`h3GU3d)S%6Wev8%&r^%;ccL~B_8@o*)W>>{9p zHpsv_3?eBh7;kx}qC!V;7#JIJ^m}_5ow8cLO0!}15r$1~m`ps`i>cJ_Y4yhHaacp= zYyh{v!UQ&V?BMVR*C_R$w+VOV&qN9FT>?5-^dVc329XOkNaTwhQ38I~Fg&k3LGF;n z1!b6sZ49r$1$K#M5<}D3ewINO9B0sn-UVK2h;rYa*AQ*ZpMfNf zqEsdX2jxMyxWERLH3mP@_WE16QpMa#GHM=Xo3p1mFkjvlmoiZ+?=h_eWl5hwv%pHv z-VhmV)0<Gr(zM(1x6(25Ub>0-41;>5X zrKAQy>Gj&z!i6>Xk6m-{J5xVPOG>X0#0BD^{j}_HA?R2Syi+RB9`rfU(LKabGy=($ zdCECyQyiAeMrOIp?40qx*kj%)NqXL9YQr>}=D}hTfF$GaJb?ihuMZ8w!KdAMaA55Q z>>TnO$qTka858t%w}Zf^n_K7nfoh~ME)6BY{w^rvwr^@tYa4edIoA9CK-I2RsP2G8 zfJxhK2W2rrj+s;ZQJQ(;FW-cNQ9-y^1y{iJI-c(qNQ1xh8}`9cu;3vWtIP20e0tefo-|CyTf={-7)F((&xu5Jn0?dDCVx1JJ_|KCMZs+F@?13d zORtE{NN+$Ud}JA8^_wFRzX>p`Pt34^gInvHHlb)0y=}m$Hp)HAd=32t`PA=ilIlKn|VZz-nQ4W`Yr+ zI$|coROign63~|MhF95ediJJH&(ZKSE38XMNxL2t^Y-o@=$72K85`+o=BP_sy5J4G z`BDyu_Q#h=G(m3cOoRz6;~AKNUQR@fiA7f{R%;1nVsJDmcr}<<=~t+GOhr6=5fme= z+IJAoopBEs3i@V*LqY$j`)WCU5u0?NuF;2#I)v`-!+n!)+{Ri%#lyaV8;-Qt3Ja!B zEc%WZ_Q>v`vI22juar;4)$v2Y){*5!8%#hZhO1tOs^AwhF)kU6ccm&b=ZivsLus=g z$89WXe`I&0#n7yE;0U=QOy3BL9}}sd>^GEeP!{?p!JX_VIs@#*LfMgKKA>z0GS)3B zJL$&F`A5+!g|b{Mvqd@L#|8IX*XfI9kcfBE6U;Boq~e!Sd`-oq^akloc6BGI{hWm0 z7Jsun;5!5YUCjEIL>B0S87NRDZfIZvnGiMf(8U-Yfa(FalK1oKyAC1~S>H}XFZHF3 zXo_ENqK}V6Z}xXov4w*{J3FksQg=jsy97e@Jr@1%>YIP@Z`JqeP<s^- zx?gq9!Z5dJ-rTQ1dE&U56Cm59(7@JMX>75@+}KN4QEALObvFAJb-{h{t7M2-5iR!0 zG!W>q7h&Mp02;wR{YlSP&IKPy@LK?mIS_T{i;{m1jm1AYRFHB-j#HV`X7KrOzy8H{ zrq0AJR2Et;Y==0L8nZ-wVkAq;`nZ1UX;GE%?NN@Aq->29_vi-SV`&EdfPc`vUvR8A zvlpzg*81Hf7Em3V$H6gY-m|@qqA{!i_pp@YMO65&&!Pt7u|y{tn42l-^S2XAcy5jn z@*gqgr}QtomD14B-OW){z+6NSIGQj8;V$OV61kkC@hSJR`QZNDXiRE&HX!}*+rTB9 zdEmdH_c~1Bnr43+R)oBNjMb;y%v!3R)mXWKQ7G%<4%RX<|8J)v|2Z!pf3+(bYgqJS zl4G;D?-IslEsiHEnZ86uF9G>V;QhX7Hk{bD+amm}Kvl?$2+oD7eocJ5c>DCw=rWK# zUbw2~iDrBA9kq#C89_hg6GmWKuwRMLFUp=9E4g=YU&~dVWTA(53I=os^qR9#oFo+^ z#yI@M{RAKw2Fk(hiZ6`)2+|ItBHCf`6wo2Z8({z%@G^(P+jk)3ICuZ;FCyTwM#S+0 zMOMe&R8y{}w-dSEiF}n@U-7e&>)il?BTkX)K3k85+jI$0JVB{P18W$dLKZf;65N+Cg32ymx`)43Th!;prui@PSd^;gB&oT*J#s$n{PxG}4EvW$Acf{iT{;LOgZul@ z)*RqZh4s;m07D-QT#ua(|Du1sLhyBP-%Ng*DC|P{8l0pjPom~vUB=Ru3U#cCuT4RO zB^xV%**`dnu>M3lY4kG~c+De8IcFxMmrnRfkIe1U=MOt!H6MQ&=QM>ML%=|h2o!qV z-1GV)(4zsoctmwLGZXZo5O&Z5_hBNdnRe{ZbB|?J9#)*sMM2>x?B@o6mUmw~h9xW1 z@I~{$2cl33Wl`;`uG+KxBW-r4f}&_B;BIKa$}wRG{E- z&7@y^@bBUDDww5GSy&6kfW3GjLN3Z@(f`~ec@mS$5gsExqp-Pi6%J!9J`*GR>oTwd z1K$Yty?==%@Mr^rBih^Wfo)7G^oMt085n|aS78m$;VDfnb%1=?U>c0Api&!C7X9&V zOYZR)><iS153>{dkgLP< zt7Fz4o)U0h7TIkZ?W@+ijyg5CBbih0{9_JjzRKZsow^8Vo#Ga4g;PXtivVTm(=@YWeiV znD0iu#c$zJ@;n}<`>N=b&rhCHFZIv{1!x^O0!g{(ay`4qGukMksv zzU~Z5s1Brjj@+034W!UNypHs$&~L)-F))g?ARnR2w_xf_f8L0?$Ba73s2>=WX+< zMxA9;S4IsmqFS3#u$V2&aTLs=ry5aZSObu}S}^Kk7UOqD)JJ9%PTW|Qzt5;dvSeK^|SdRuz7N8P$VPoY&De7*PYwsJlW@e>bA;Fr(~@x{|5hFruzBqtZjErW;W) zX4JiilG)lF`oZTE*F27H2JJI{hqRAA^>maaumS^X>RXI1J41#C=VHf#pvxuGFq9ndYr+EFp(6?QA3RRz|+dv`LX^M;OtU zG5XJlMi&M3{}=0?)omTy)AB#q-dE z7{|n`@*zDo>1`RgNy5{~|dvne=pjb3LA4i3@eDWHo8YS})}vY;}T`F}kwgMb(JAW9#G z53K5l(A@|udAsA?qmrw+C90q|09d7OB*Dzv+40or%kbqW;_9qoG|IJErLu7->?1k6 zfKFWh4?hATg2?BdImksC*zL!%dj(iw)h?J3gLwg$vKU{zR5kWyt&3%Iq?$wVdaQ0^b9lB20z1$|XPtO)q?uiDP zXACrSAFoR4MhHqui%OZ~-ShKy;cwYL?nVu`3hJE2E%2Dt~o&vnNZ#SIZbi#Ax(^2#? z02O10qEXIokWPP?P@K+fx<09Cp4RXZo6f;HcKv+?Ju1USuGC;@atmB(>3_RQjbCne z$O$cAe3B(GYtFt&7*0PtT}(GEy~+I%*sZ;$1gs3iJM=pCD7+uU`s#|g0}^ilqq}4C zaT&<#$k}ncf{tt4U7DO(`PNM0ZY5%Imy~gb9&?Zkkd8%Q;K0O5h5pxia!dBjj-pe{ zt}w3bNtBbl9a|_|&ihc#Kz|Wm=*M)=DH;3i0FZtQbSIJ8Br7hf>vw%azEm3WHRRpf za|RxOY}SH1LG9k2hIHH}nzuLh8jFoKAMe2tkJw89nvPw?IJbxm)WLQTs(h4$WT{IITbZ6p|FC zWL;ymELV*NuPb^HR=1f&Ka{!nDPRG}NFZRZbmmTMO_VENF3z2vcmr&KkCBi{?y5)B z9uJ$Y!)OO`CdO*dU*0GU<^)A9>&L#-7|OWzDZ)6MMVUm4e=Y4$9neO51K# zdg2XHstw>f$%+v8Z{Q#V{;KcgZ@O$Sw&s5aR0s|2&(~Kze7vz(lxShf$D?6CS>lm+ zJc_TZ+w3-hiA*C~2eEUF#3Bgy+@m&rC!MzD?4Ln>sPhK$*;7Y{}*86kU#N3qbFwQ?FO7{~cCk=MmvQ<$*-=b$04-H-(G z%CH^?lPk{vOi3M#+-Nt`MxfjzVcZ1XSsZvgOefJ2e?+w+w1idWmsEb~$d9^UJl%Ga&UA9g?4Yd)PC7OWs+r^?4^jH2Sg?cHl4)fCC z@iRBpfZ3qA^ft$0F#0Vg&g(=>8Tf5F$Yo*O2_u|>t?+Cf+0_);JPwo~%)99jiW~I} z&wyRNLXH%AZh`D!Y=P9T?yuBE56H(HY!5T-pk!tZ!vJ(XxD0kdYGNWd%lax50kw1i zeQ0BR3oZ@}#;ccw~YX^ewPhRD#UfCfsP*w{JpGU zVcewvknX#wK>is?0y6=qx^@y+RTmy@Rl;p9b2OMq*gpu;TUFdL#2H9y!^P3>WjVkc zGeHGYE?x#GAO9H4%)lhnw8O0=Jh zL9*M+xVTX-8^|NIV%omG7^~B;Yt04IFh4tr)`AknQ&`F@JWS*GgW+h7Uf7=;T%yKF zMc)$6aW33+!gV0ry9V4!!c9FFZUEuxvOs?q7%3wE^T!8Efxs}cWQJ-p{P*AzXx-6~ zmR1LA!JmMf?l{|HQijy(f%ysWF$HlU(n=^?xKJdPtq8ZoMAa*ydu*`gb3IIdx0mV~ zKbBv$_n6bSf}uh${R5+wZ9}V8?2QV&<6+7@vwKO7NTUP~4>;Z!Od{PKMFAEc_V451 zEM*1OmP|r!$_o5-5;zNk4EVS+*PwBUW0)Srmmq)G4~a;wy5Rlr8lXy%-QQ8fE?u=k z2q!W-HVo9A57gAh#aAg5H4L1N)Z~rDP#?kPM$PlAfH_CQq(97o)UDayOD8U2`*iC) z$7N4v4(CW6%TN*Q-*CY2z%sri`vWl+SS2ES{06+?{1}#CR>@k>3o%Wq^(}5dL!CIJ;`NAnfH&lz-@!t^s+ae%3+CGv`4V>q z^SdIPpQ8w7H|f!z=_a37-k&C*ia{t&vwz1ty{Dz->4Q!h3u}4sIGN9>nT*1A3*@Ks zTfmp$jjOw_7tl7(piNd7_komH6L=s6$5BH4M{Gqb|9?U~!fOY|bua z&eSp-=CL7l5d_l8o>yDSr@UR=Lc96_76Buj2W=UiOEWxwRBH@J!g~$EtrC8Nvr-(k z*O5LkDflI&NBUS&!BR!)a7BA^e(08UDkT~ zR2IhMdItFm+rI4Svr|FtAtdHwc|NObXKSr&S8F&W&1kh2GeC{a;58RdPoIO5u$~E9 zIz3xGgJR%aFN`0kE&-lP%zWYnyshM8Q~4ySd~{@z;A~Zz?&;I*K|rN@9_;>LVQUY* z?RZaT{iquRx2l??@3USio8D!GXV6c;tC0SRg0s{pu@u+S=L~SNfPGpEJPRgiI)&2Q zh#9+ZA?{Lz=!1jmJM~L1l=13t##=*3^z$-4VP-5B3pWd8oDfQr)Fk5`M#dUibzX?q z!crT4OZWC^3xCVx#jIAn*`><4jl5k4adRs)kMG1}34N7X?f42#zFPA~LnWUh?ji+{ za#Qf(aNId-C!lltde*0V);VX@@B<}p;Vj$Jy)Oi@EZ7>&c4^Fqiag^|MyCH^DjU7qX?Z4EL$b+RfLDR(qX! zb@A>r-^r&-@xQjbZ0gfn@KTNcy#by;7F#Gx)$m({Y6)J3e#O%g?49nJ9P1g@8tP`= zf1+>9xsou}@Y^}f&_wGhr5mP@(SGg@O-aSN>28b_A}Ix}yDgGZ5Z*{iq4gpt6$n#m z14wc{jVk)I1(Dz%MshjzZz@e+Db%#V%SX)vx|aBVFb0o7v3Lw?jmKylta&8y6S%;e zLcYw~Z`TU%-KkmcIp}*fb23urOh703`1Ro5Q<+cO@OY-1Z))aLyRR&3dkf#vte;!> z9vc6huWH^;2Yo6oVJM!J8}R(gAVew zTB5UZ5r=U#Lw;rCm3-SHabxEp4rfaka+q)5XZtDTYc zj2tF#3T;-YpzX)V{eo8D6xy+sg7$Gn9+7Go<=iP4Coml4oSNBP>SGl2AR<3V%tgBf zJN_pB`&!j+#{bU{nVkMMyzTRy%pAa~x2o6qIK-G{zD4zzX5{Pr@#SSt*01(;^;h~@ z`6YH}H(#K>0{`Fn+W2*(hj$oXM}G~$N7xa**;j-3F8&`8H!{(VbO#ag9sai?ML=@w zhZMWZ%ZAjK@v#%oTLshO$jOg4RTIgC2$40C?k_JJ&IH3zppO2X;G-5uxDAMR__ozI zBIzcCJrIw;9p#Q8^`(5Q@ddKBwkUTXLAit3*JN!2yVYkTPC%jqzLVo?P;pevF*VaG zjMCM=*>`eWnJ+M|+P5w1r{=yxS(RYKso=Ii)+X@b#Om*T+p4<&(1&d@Fmx;Cy~a^lX41hS^Z&OS$&YvEO**_pwLl-9K!zzB>Y8@U~1<5U-^~--BQF5 zg7D0w)R$UcicEeLx&U~)ps7S&>xib@(bZqYp!*LZ-7&$swEkD5uajbl7%#0q4Kyp5 zm54MGRRZZo{8uZ{CKD{G-=jqQO*GGZ|4%4D{fM0iE)${m`1kle^_Mmg{%y@g_!Wzv zqXB%$)vYe51$^_fHldl&5~TKC-=}7)m6vt#uf?Yyu|ul&`4(hV;SG(5w)1adi>)Xx z>zZ{qT3&r`W^F{YYE}PFk!U6YP18)Qb3Q}I20~3Z#(hAx?6$r#|0!P;8&8;Z;KsRO-JUN@p}k``5C|aQMkRR zO-|*l_&S0zD>0)Y0J8^Co1?(oXXmZ>IxNx1=ODiVl9XabzE7<$S8RWBLNB5^jFiXl z8$g;`Vu-&LGPRmwR)fU#l0Q({i0U*-^#f!xAlX48si4?WIo*h>9y$F&9Cm&Mk#sw7 ztrgis>JvzH9I5N2cuN7mIxR&JSjSW-O3EYq(w}1~Fx&BTW>w?)P}YxlIl?=mb zg$XR_u)@Qsx|8p#4}u^1`;P`e?p@ z#VB!(j*vJ}-RB@_l7(;T%t7dBXAXN6kI{d^Bl9nKOn%Q zF^31&;XgB8D^%Af;$yO{{GQ&oufbbRH@~U|mD4J-#C0RRKl$YH^)3L1g_=Dw+lyTt9-s4U%unJ~hN>){jZ&}t4m-{wkZAtQ_ zRB!P4svCSgt9`zksyF*K1Si^jOZ*#Y>sj;tpi3|s<0l_1orcW25`D}3YkV^@VP*Rk z`ca+CjKs%%8(<2}$n4h*5GY}9^in;c%~R@6`EIKJ(KoPumv349LHt+wI-_G~=iiU_ zBfjnR17Kt~_n-A$18ZwWrv0GL2QVMNu7N)9?B9j=Bl!1AedEwSHTRz~sw^0mA&O)O z!8c^~i}x)-Z+E0WD?qp6+g`nwO|UV>_cp9K-_hy~CEs~l$SNnIu2tFuhJ~iNUxy_^VL>w zE-!lm#x7v1Sk8^Vi$InUG^o*-p;j~-{A^~ww&yhSXc_pI3%%(D1 z$!s9D&4BaTro5~t3@v_#beN)@EGwzdraP6HL%o+tz1I@| zljHFiWWyt;8zLv$T`N+w+gG{{H)unijFpe|u3ZSKllRT8nuhywViH}8d|FneO~MYk zYR=x5(>lhrXqlE(rNVv|xN(V50&z;7`vh)4Oq9z7e5(Y)ofs{lkHp{?n5QQ;lkbr+ z&0NFrot_xun%H2k-{G2g)Ly^OHL=!SU+0>**Is|zHF3MWzR|U4iI%m|=5j2v*ROUt z09xsC0CcO%0nnW;2S9b#qJ>)4CY!6xhngR2!EbB+U9L8-Y5t(AO`+zmceN?d{0%OL z&tAVq5LF3^8bJ{dq}yDJHfUM?b5KMiR_GiX?DcCU!7f3uUyyDTq(7S3N2ZD>%5c=+ z7gX9_f50_-v%UU1*KlCl;u?-({oJIW=T~FmSuL}@>kyvLpzHW&E?U}E^|l>0vTI_Y zR((`zc*a$=#15tAn)snsyJy(xGVAqQ3S?hw;aZ){5>(obqL(^LwA-b>sV{oLrb*aTGt`4 zF-XF&Etj|sq20G6xh5{rsyDa}`A8-tLZ>=we<{dpeeP~pBf*Qp_MvdA8sPx-!1rql2?_yLw^1R1Md;Y zUxjto3F~e$;F){1A!+9`Fd2Tmr1DFupIq}Ht7WeF5RkQCKh3}CoVKdki*^AQ3VR=d z0Pi-N??Y%NG+zU0UUgLSuQMC301}Ld?d0x5Z$nq%<0zZ8s#f#+T~!U5zrs}osN>P* z2O_FM4DlK?4U*Kd0jofS?I9jHKTCsc4i!T2AkAJ%T-A2X|BK=wa1VvlI_Enq{JIu3 z*r`kx9ko+`E~>Rtqb>45GHtH;%T(N6h%N%RLqhSh86t?E4G?im=XHndD|Q1j95$Iw zv72H&5Pz4+dT7@D2J4;2bTrR|UH%IuL*H?4yzte3!D)u=C+zZHFqvTh3NK%X*A$n{ zN8|kTKjF0^*vb}HR)c0avdFawKl>KR*H-mYqki@;a)Ar|KTE^z6P8&i9JgLLYBLnu zR)r*5e$J?$t?H*n{p<&?{VOEQ{?4DH3tDntLK(J0qvChv@tn;%J>-;Rm zI!rm4c7|BW$}(2tiKd2a#OQ)nsA=Lx7&zfU$GL`Xco3pYUeoL`ha_V0hRh$1NjOL; zFJnfb;+aDhF}Tgq7-lr>)`EninBgoNf4T}L(S^+<-L`BwXy&4#Qp%aKjI~hQp;-KJhP7-wi!0`VtI1~*-pzl72~v~ zt-v{9r`5Sa>rx4it%UBn!cp8301k1EQ(iXZ<~=dN_K~|9BKo(Q znX#Gexjn=6*C%YZqoc01_4d0K)Y_`I@EP3fTF_wguWPlS;vTb#1T)P^Q7O&)U$vW4rqe+X)`CI~Xvo>k5kIy9=Tz_q__5Q&%`>3tYYND-P zFtBH~#Q%e_ zcwj>C_zJeHwctAZl<%4`WEf@eGzn?;-D4X+1S_SP~wi zIW4df|LgI;AA5LFF0^>vM%2Q#c%y5J88pnbbq{6JdHt0u`2u1?q{fOTTdLw>2XyKZ*+2%jM zlKGEH{Fdv{``WUOUxaSbhR%ML&*ndiUOEZ(fkeQ(l#fF|RtfSpB$3ufll zJ34Mp`L3x$*7$12)$#>X4CAW#QVO%ghRNwrb3;(d%|=JeK_Hg44}5^JJsKtC^(g#S zzB{|eo~ZKO<9pQNIip84o(+~gTluV&XZ2Pyn;OBtNHC-Q&gabRhamn*Im4pKkT5*) zKDrs-_sDx@4Bu-ZBuP1annTW#hLi^Saj)9Nzq!6^AoT6Uz}!IS+m7+MfzY=Zs{kg# zMKf#|v7@YtJ9dwha0=4@KI=Ep5C2XME~GjBoopzba{&p7P&uyirA4$* z!SmpCaz|!n3>hO6oW`$V5EJ~2ZWfZ32<7;HrIr4ZM)?mKLaayj3K)diFh}KDG$V<^ zuqeewIarjPL=l)(Yx7sSYM`37x)$AJ!wQ*e(fFjS9f*OVs&UmoDFs|tqdQv>jovfK zvNGB=3o7ccs|M=ml*Fu8F&hw5yFjol05+!CqGEnP%=QI>Z2_>&+OR;*Nh=P>cAs>oH6vl3iNiBMsJ7rC0mW&ZUuyNr_tNt9le+8?N&h8 z4;sB4-r18OWQ+7(KTGfRi}YRxq_;!wh~Dn3^mac;Z?{9>_X&KRz#kWQj2zGF?dtzc zZ+GTj^mc8~+xg7iZbOp)c&N9N56bTr^mZGPs_R|zeM#sOhc8PSx7oLBd@aWAN#j=f zHozDe?n@fC-sc;?$Cb6vp5{w;9a&~iJA$7j_OvtUP}`iV;**AqF;|7T7W93bjltOa zp@kZF88a^a?=dB%(P*ne45oN6YXd_p8gn;$|!Hf*i9SBu52W`*hqGk~Pr&|x^EC@< z?PC4d#rm;}^DuE3lVO?2D_L~n3ACRWLM^sUCbvtSY~+keL)m7lGLh8dRDXRGR-g=!sZs!5nrG7a;r+Ell_&TA1()wJ_lq zYGJ}}h#>q15`Gs#KxDjw$UY&mPl&ush`fwM-UV#vdw~ap1w04~cn}uwAS~cdMyhgyEXBD$0RM>~)Ub{iPK zHQ9g9O&D!4PR9_w3cD|`o46){+bh~&M?QC7{5QKR=KW`X7*tB%^;^G)~INszR@$f$~AI6#Sc(t_V z1Am-3;GbQdQf`?_LHWbK$XLGdxY2+!f3YQ3{_MstI&b+ie=jn=?Z)rFYX!*%!}9;p zuUX#zjo*Hmh&3~&{U~c)^bu=LOovg{9LzcW zAzo`-lZ`#-yR7aTwTd##0a-G-Rwb7{AJhKU=(#Z+<`O8%*|;{lHn~)NFvU^LQ%UP8 z(jQyX{H{0i%e)AAu121%o8(!8P{jRQoMNYZR?p+E-wk5IjiNRlV{F)yy)xK$^pvu z@R!@%a>?BmYy0Mh;_%ZZPf%3k?F1D649~fyKN9oSdw9Kq2Qi#Y`f?|LGQ7)~3>P)K z?{kz0T?^+_GNkK)`wQ<%5?>G*sfVqznK_OT^o^=_7CzGXApE}s<%*$Lo?b-J>xw0{ zXO*K7t+^dO5Ud$pgIeBc>*P*ApWQ9Pvv4ONLmtS)rOP}VJv1=<2qa7#^%ILzsTCHm zAdb9-*h$Yiy=`$ic*#~l@XHC!^BUuD64dFqfn5u;%+cBzvMv4L#1_~v}XWwCUAfg9^#J& z4tVNu*{$~tDF&T1etD1uf)B-hTH!rW8QwW;qE-1FSmh`!?}T;o)v_wC6~54+3Sn?H z&=oEfW3$pe!PVXK5CXRsleNNsFabQ^#N!7?1mSm4&Ux<83STKjP~&C=_PTa}j-wIKjn4MgvHC~CDq+`op2YY_HG@I|T5swm4R(eBwE_=y)s?ps- z%e&*s$=Cx-Cy9nfJNAb>MU0vq(f@uc-DmB?$yNOaygEm)zC2;vF&L!hYl{szGr3qZ z299}JMKr@D464J@Util-+>E)ep&L%|3D@Y3)kbvF=O1rIx(*E#J%0?1nU7>j>>~Be zK=?bj&ffw4O37(vrA$BQ+cPNCU?v`-6FdS zudIw^bHvKkt2Xy7SdTC=7H_twuD;rfy7KBm9tp38Zw1sKxK`yaRRCY|h^|dlVHw{O zlTp#anOK2XrEfijBWq;H;0N>IMJWkwBs>k)u!%cF+&Q5C1KYyQddG&(Y)ViBKM5Pr zJu5t9CYR>jX>-RJL{jYsM>piK5*h?7`;CdJ$qG}hLILzRetNTFow%|rLGOivo#Xcw zG~66=r}gF4OkAOVEw|S2N)4?LKK;fZSp?%XIZui7xEq1YGFx4BLuTpF4K69sxYvW- z^dCQiQ)PT~R_sF$6D8NgP>KWJ-`5a2R}0=U{9HmR!um|wSnyv({J_%}ylk-c(p$(+ zh3$U03Wt$b;EF|Rh@6YJ&*K@w;cJ%`bKFdOMYo~ zM}fn=Oo7h@6n^jw|Gekwi~hw|5&`sRVM;toyPU<>R~=Jz?OI`v0jUr#4kWB7IjSf( z$R2^CL17l<{}*>f0j}7Ahw|nG8w=%%`?d=x(4jm1$`a7x7$_MkF-4w#K|I?3wB##v zzE9w#qy%X@=HwkZjlkhgM2i^wuz}ur5-X7KP_QYVkJuw(>d@E^9^$7Z>9w8lS&^26 zNJ~ZDpZJ5nQR$u$ojhaP!Vc;+<G+VnfvXWb z{@|R@w^kup5-WifhpS#8mx0Np$`{5MyjP^PWzZ;3S|>+QF5W(^t6tiZ^7)awS-Dt|$D((EPt}P|IaJvT z`UKBnew0MQAMFhITh524|GQ~0*XF2(JWUPS%xujoJAqE# zJM|8W;E<>AmG^)YI)Aw^QW|fzPKyV4C$!?y%fJUEWAGRXeLEMK1^&?TEcUlDu3co@ zIL6(6SX68}Or>*HqD=eVH)JHg!eX1it9idtfbk(x!N&RvxKv z@Q#ptfh**JjtafOMo+sYWz{eufp&3+v3V#C?WRn2qZlYd=To79rN*S>x>w zkqLzwz9AvI02&VF6tqIT%((QyGBSxy+0T~#c3=Y0XW5byqL_M|DE zj_#{8sui$ z0yB1NZAJjvwahwa5Cc4GW!R7VEz!F}li5U{zJRFYTBriASRKNRG?mGX?;(BO3HVdo zK}6nZHvQgqc&SLU;Tsl1SPO;6myV(!Qp<&rB_yWV?=EbQdhJUBU4SRd#(F&q6T%qA zgPM%7KF2n76!9WYH1$(JAq^z%XpM0~F}hkrri?=*xLU8r(yCdm0u9N9mwNF<^#Q$; zOX1lyf!E@1-465f}cbFk=D0E z>87JF;cDy0ucHPtA5WvyOix~Gti7Z}<>)xej)O@FNF{#7_x!%dLNKXZl$ zm&}NXnUJ?!^#BF5Co@t<^svtM5Mk}`xN$k?RX|WdfC1KrS0a$vgQ`Ul3#H|R3?lZ%<&W0v*V?Wq3 z@M#EuJam;56G5&dCFHN!Q8W~-sN`!bGBo+(wYK1k@2@rNv2(gI&{s8y-hlRq;LuBu z8YhtOUwwEPO10yfruxC`x`m(e6t_B{Fmr;d&55pF~n2 zh52Oy5{&g{z?uBa3s?iKB_J1N1Rp=E@{M7>?AgxA?FKWqfk*`XXWqZY8!5n)o6xmk zGKG^ero9OZd8+g{`uA>g>w`F9Y|edCsU>t!vPlpN}tR>La+`-Lsun)yL96 zv)((77r`H(pkf+tzkUGCkIBrn5oXgxyq_{j_X9O}E>nw0bO^)?Uc1ud& zis)}EK&pJR8YQ*ez|w;ULOJneob zKXF$482zz1e}X%KFr>*=lb{%12d?-a$`ZMM_us_BzLC35eerE9@PFnxvz&t(&Vm&$ zM@iLG*65QQkSl+KVs2tiEDK?147vQ#lNPTx`w(L$&)8TlY-AqmX@Ty-+D60Co?P2d z7A%Z|w}I2!e9%W2VSD!D&I~9bPnuivHt&ug%_BmskHN8NNH9jrb$TbXwYN8npt{tw zZaE!wy7dI#U=*-bX)1#r`elf46j2=%=ivbjeb@>MemveqXX#g61>u!Dv`!p44@bye z^)@g0Frsj*%`DVG74i*4p;8(GjIyF`?3_=<{VA|*%r*$tn{6-^Z;@^ACP2N- zH+>LMO;x?G5M;K&o&!>$huH>yg25ebgUAGY+N zw_I9YFN?diNH8!baQ+Go6rhB-e9^<=o~U`IC&uc(hvh~$u;5B;&MwXV&QavVluz+Y zP`ZRZ6wO|97;}B|N^14s7sj~cPD0K)7czyAnF1*}oBGXBbPwTYp9|ld@Vx{+@DOTb z!uL-;1}Cr&(b;>PxCu=-7SlYN*}>&D(rb1g7itK1S!tQGcb z!|(U-9sE}5U2n><8qAONeD$w)!&=doz{FA<>F&)L^CjqPfGoK}#@k>~i)rvpYpo2v zW{?=o)43d2gucqp>O9(OgVC7Ca{;2XistX&hktq(WG`1SMeg+1W>vh0$iRSUoPxGn z%os^oDx{DZ4`nOaDI}ohjt*~ywJMGhzdQSy3G~fo5ly?M9Xm}_0)4YT1@Ep#O z!A0gA4Q!Y)y_uF;3CCb73_XWiCZZ0P)m<5Nvg)KZVh#LnG=Z7NI>M}O4*H{{53>+c z-;svx>}}o)pJZ!n`9`mt3(J;|b zPrLP1pZ*Sln2x=;q7?7DYH$p|z+|9Wib{YQPKS()0KS6iDKm_T-)yYRmyWXDf~d() zl4EWoDkz&EOFm)~CY(|$C#MqXur+=_V(ekfdOZ`Yn4E}bp8< zwiR0vZYj&^2e2D?&k<0;5YcDA@d;ir)vh1L2m@tJ2+u|%W%JeshCQ>az%*n9u}mrs z>x0AAN6G}JW-UJ1>wgjV=J8P#S>Je?B&31h4H_jXXw-}bMNN>534(M>H*{+vaaczf zL_tMGMd&EXZg(Wto(3G(8J%$-*KrvYLr_QvA>ay#3*yM)LNzT0MF_~!zwh_dz1^L} zdEe)G|M~fmPTktisdG-9I(4cl_B<8(!=w1V?q5jayJya|$o_T$aSPi34an2=lRniz zlxk30*8Oap-9#|fqLHkAY4tK34OZY3|1jx(ijP?;eG0 zm_?GsD3pq7Uxk~4`L|CHW zcEh|4*t*-(q1fvI=$+#Srm6m2ks2A){Yr!j5l&`G@{-6q%HXWOa*69RGmmZoV5oC| z`sEQKD)T!l;yU$>j(Eq4xLExg76)WKr8)Bv#L1MxAM<#VSujjOXTI;74irLkgU}m%eKz>Y zelmiOp*h@KiS<6LVb%P?hIBq`a$FN3&xRIeyE}*k%Bivg#@)}c$cS9LgIoO$f^~XH zS27v035C?!&D?Ttf?Ex4Kt{SRd;y*dfX%r@b$>60T?v??XB2WV`wvOIXxRc;6CQsC zDo}Ml^3C3Jq|bCNAW-(Is}c6FTlM;}6+%MHKe(QH4yw^g^X?Nctf>Wjj`}35cV7$+ z!Y)8`F#c-2pl+sASMofnW8eGkmcC048UOG_%k)b5_-bTPy#QPEPbhBjo4a;4DyVa# z2gz4C9`!IU#CEQD82*ICVD5c*!+O`zoZl@E;pzLowXUXbJD}Y z{9VJDY4`+RWsghoSD+DkEGXA5&-?d3tNS-vuwHU5pR{wO3!TNBf~s#rgCo@EpC5?_ zk2riMf=3#IJMwX?GzV;Ags4#Z7aU2$cK%BKl$+D?uJ+RGO>_yPoUgJ6@@UVt*cwDi*18E zQNz$56pJ;}e!3J1dVB)tjjh?%GT+Kv+^cWvwKRfv%(sO39!5S9&UG7fD|az=!KWaF zn>o5E<3YQb;0J;TJcUU>&6T^e?rRiRFMM_+j&(vt0l_-|I^)*0J~IzXBBWt9 zox1Ki<1?3&t9hr}ohb_KK^+E4gSEeNc&Gw9!qBHCS`03n~5QJ`XYfXx@q zD2Tl$`Kd^b8^PPtz~39IP8H_612SMR8b5nkre?esQJHcJvbWapGJ5p-A;gV~KDJ5g zrOUE(&iTyQ6A*BULVt9xQs_IJ1*%T{9#+)my<)6K+J0x@P%qs*ApWxWhohP-PyOW= zQS!_~Dh{(Sy4{mnhUj~Auxe7Z7z00G$Cb?5@|n`U*fH_0mI)Cw!>KAZ!iTDPh-_4f zKSgv43a8|UfGqM|G^}*`3D};@tCN0}4R?x0OL-u6jFkRCn3f`E5%()$<}2Hvi{ON@ zHC_q*Ya<#0f#2dYUR8dW#o#80%c0;(=ZpL)3-=*IasI-%dp25RLY}W|)r_u8Eo(&M zUtn&ecsf^91-wP2%?XW5{I(gacngF1(qSu6`iu7)AEJbk=TT_91nn%(u=kJN?Lo>G z(}eCX-+TNA^Upz6d9ecd!-@Qn_W6OYeBU`3Q(GQ#|4Dq3sMvF+VFrSsrjOu$6E3JX z54meMk({{q^d#D;CFxUv!qX}r!XjTdBO9v*f7vD@M0{uyy5e~wh^s-A@3t)k{QWU| zOT+ex>+xgr_ZR7))2%srHb~h|(eF<0@}*w{ZB@-}gqhZHleR{cJ8mjUt=rdUCk;QRqrIKUx0hc~Yl?-CzlY;M2LVp}T01y|yX|Du_851UA;lLyALC<$ z=13Sigrz@xWZbh5od{o+Lv3M03pR+VHzOi3|3F`uKFiV-mLS2_6-qnl`S!656xDbG z1eMF~wAK~4vfAFzMpxKDU@;q8xQ1S{E%g2*+LO!d!}2ioml0c;B$QBbBuwYy94fy34O-q zd+Ocp+P>_YNDgi|qFYy>84c+Ov}G;YQ|AZr%K<8>6!RYLJBfXN8Z=berzZUhcA}9X zJA8RjnXkxLOuq>@Q|80SZ-ma{hdHZMB*`)~saXQV9wLK@|1I6wPJjlapIL(m4AK=K z&UC72TyyY?+f2LM%Q!2PNAS&uXqaK^x8xq9`fVi0o=c)^criC>%$h&rSNUY^vQ_WZ zs5;=2?DlUO2*A(-q!73|I5R&jFuWsE&qp0;)V=HRmn9E$#b0pk8h*U5m*|}5)*~qM zoIt?ps$OT7JZ9-2D?+R`?b1l!-TWJM3k{`(r-4%&)bEljvpE(})0|OS!E8Bh`%x`E znxie$pxc?KNRMVU7grsc1Xa3g8<4548b8VGAOs((QNvLx$~P~Q^n-n@U5v2lpZaQz z7(uA8-u@93)*G;Q3~WGQ9ga_6v>OywJ3kgmS2NS5FxF4uLDw?;$mT;B*Fk=SVX+&) zKh2rL@Q44Y_mER29GU;anMXgACGcEQFbqxIm>tb^lgHQ*=mbZYxS9;~DFX@$Dn5V` z>S^8Jw+N&5?f4_L|5-=BrK4Bb(N&CY&itG8-JBV+LO`OdOKm>ldcB4Q6s%K`Wd!XK zSb<)P^61NX;mperi%~NRfdSdC5#`~V^W=;Osk;uh z)8H>_Ua5mv!Knur1k==nQC_TWFjO_sdi3j|9BkIW62&^*@lUJk@qp55*0cv^5~3t& zQM+!5nuQm_bYH5DVeN8 zy6mF;Y}L=k*!t*1py#?JVvm6-S@hD#pa#2BKCQ^QUTEl_P!R>>6kM!A~oxVQV z;p;MTbxzD!qHd}MOr+AL`6WIY|BZZy993u46`%)6 zq%>##4iE|S6PIc9RBy+O74F>w@$K=t#20zFfO;-@FyE@*sO}8>_!czXjfCR;b(r2I z{k5gB_=@xN2W492+rTbmVl(O|qGmcIuUd$VM5M8}KT@EN;5T?6%UJXZ0?~Z@B=D_f zp%TDbb&6mDkfI}FY(TfmVKLGzVmG`V!&9s1S*kwPoH@GrVmaL@Vxl?oR_n7lGm;3s zWQDlDxZnr+E`&?YKwR)>ylO&oX0DYSF8RHVG^!s20zpTK1h1WtEeZV+2_x-KvW9E*PG8mJ96Oc{-JDi!XuE9u@WfW8e@$sU3K*|`^w*fflN_iJ#{vDAo z@P2BedOXJhv4y^}%teScsxM`>LDwLx-hB-?8G!Euf7$KreM=91h`wSpu%I~GHL6Ej z6*>{~tiW8qpmhBzFOfUjwsCb}@*?UMew{@4O<%l$Um&h09 z5%(BjJ-YpfA>qgfP}uVrdi8JavO*wE!fah0E(v}zC{6Cjisg}>RS*J@bnkIPgOB5x zFB|GKLgY_hI2+c=%#*wWx%nF&xE3(< zrsOd@i;Q+k9#mtl(G_h2fWWaNet<+W70j8a)NKyMc@s|oPXY~f`pu#F-tc)EY8VOp+0LIu7Q>WghEjBOx^<+F+Vnwfy@uuB2)P>uH}6W86hqJ zHAyT>z^`tiTrbTCJc1|>>eu)vOu@&A%mI90S0aHA-96@SrtFT}m{)zN4nTDcW)wL5 z!8NFd6tabz;0Mx;dm>~4&>EP@CLW`DB{d*KK4C>hUqOVWU*KT`qnaWmoLPJ~6+a{N zM||;g>wJKNL4gFp80A24p>B70XdZa3(2^}rquKc2xG>^1M0m|JqlUz3ePM*CwxSRg8GT51w$)KR`7cbTh*7?I z;%Y#bI&@x{FAKAk2&x*k<@?e}sW_hrn%xR>RUW}a&V03!2nwz)N?G4w>9r2@8vEG7 z$N!=IVl*r5uboRBm`zWpOHVWFDK*ae%?2+|G-%6vx;^Yvp8;~n2l!-SbnPz3-hq5V zf6CaO*AnAH6Q@D7@~2VmnYR@h{!M zL!I2l1FM2N2B&8{#EXA0)^u4V&p2XmM;08wK8L5^04@T-E0h?K1Kid) zFz!!Ak1RPT>;iooc+1o29$6mw$6<7IRQMtOd6$SB0SsRWgCIFGsB z-LMPU*7}37oQ7@P+zs0R`zmv-=d`sfMkKlWtn!#^-3`(7*7e>lYa4dp?a6IOte1ps zr>%9T56Na`cb|H5Z9}wE>-sM5d2pX7V$K=iL@bt(_(qnstZG~9dekl<_l6%Dwiy7- z(`B32+~hs&16F&^kPJ^Be!E*Yxlj85VZgsluuKbKa5vDMi2!a{0XBBzly}))(PaZ2 zNG&v%GuQ^h*#8=Xoe96$3Oid+IXS6Tn5*eX`#x40Q@r6qci5LfTU!yw3wB)y6EEHT zFQBxCII6ic0|EH;_|2of$kc*LVO6;OH(|A|+05tI!^j*B0B`BNPM$GJ6pOM=4mG1*vl{{2S)(@<`?zv79vjq=ECx z9nJBb$@Pt(jQ5eYN0}=XWj+gK`Ae>I8@F`k&*c~eVu`59v(bmybUn5Mfm>`0Za|1= z>oXD` z((p+f{)#Bzk=&L?xrNW8s3d-!&zQTeyli#>W|#`nA5;lf0+RqmF!?1On*}DP<^Yo; ziAhpZ@CY!ui*zEG1b{flUMXX6W&a%z}{?RGc5 zeng4e;x(06f!+E({;k4TVr!Sby_WZWFp7D9CGG1uFd9ZLT+#f)+n=o9`J*K{zcW z5zqulB?`(JU*Pc8WE8k-W*2mF*NiMk_u?nRUE?Xpbk_t5I=gGi3*f%q7IsUYfpf#7 zpj~^umCnJoCj$z@JFa&?5DG$+TGMq)@R}+*0@o2(=#8ac=^lCc=x^IjMXv*8;@D^O zIjBFyaWN`mO2&de`Y{zEvz0*_xc%lHq%W4phA5tIN8%cJhMa%7Mzn`ATEvgUR)^@1 zkequt_}HZY*=FJ2aG-1_XtseHdpNS%TPe7Og)<7wbPzqx#E=TGeXsRT)eYE>;hrDM zp5v~Y5B6Aal)oNOlzTKLr%`LN(u~X3jBqbFAm)&J_JV}{=Aq?u#)k%>PfNR(0pvLL z?iO{Tyop?z<0}Il56^KK_v3Wxd&d0@F6W0vXb%bpj~d3Jod}o>IRD-WcOPL24j#mr zs{+V*L|vL=^cbEKJcvVrbSFW~AM%YJWAcLs(~S_#ABefK$mnrZQSczHHvSPELCiHS zqsR5G;K5Ao=!2LWD~%qvRt67t)(6E9Gkv1bQZ-2GkV~`*hh?|BeUYc zqw|c#;#`1>OK_jT_u$e#O$q#T8kw19EZvA}a89Vn1x?jEf(Pc!jk-@i*;v|WEX@F| zrF-E)^LziKbzXB_#iV+y4h&zU+`yV(o!?w%>1mhr%fN%i&|Q|+vs4W(x+#0FDq1@a zUE;ij2C|H$J+o|^vW zM{aPy*1hOF#QG-fPKoZs=$;*-(-}8GVwD4mKQHVuN*?((CoRgtV2G^N&F*C!B%ytG!-4eR_AGCoRo*@gpB$=~ z^rhc%2pq8ZD5pbBP*M0KVl8fsyRo!yS65A6!xwCDl&zh&Ct6LhlHh6RM-^r>tqm3C zhg9NuDUEIMhHm75Se(dB?Pt)1@<{)loWOGQ-Xy4Q_7bcTDmi^;@n?7jx7~w{4((hY zY{EtWh@9*16i-?pP7x6sd#|D%4M)3KkN zymR^uiKCO~uGj_3%k~`1`po3x(gkgp=nlKska z^MHLfbOL}>QPxuRcetCKD2J6z9I9Adnu30;57`LocbmBdZq%9)+m!4a(*41MX+|gq zHtpm~;+RYd{pS04xZQ8=gS#Cl(ue(G-eEA$>ALsU1NRO;>^j<1(dWl-#;a)!c#-5) zyy@P#!g09VoLqqY-0=l@-f+4%d|8GUewN8|t&LD8WpZvC!*) zFL=v3Df)rg3q@CZ)33@%`y@Qn>0Zz{`t4?gI*p}U%+VQM$2VyW?uN!}ulWHAXFu+B zG)lqM(&ks*^f690n(bb&YRk0z0&npLY;?5K>)63oSM|WE_c~*B#zKeJ@uigfN}Al{ zO&^}kCUe{i8h-rf-3D**YH2dt>)6gF8%_Y6D4G2@N^WQi=dc{MnF~N)HD>R#03Dsv z7E-j?381zEGnZ}V0nD@4EF5NoncEgjw26}K;ml*3y#VKNLyMlb;mqp*XL?6Cd$G-Y z!0C8!=n)&vULD{>$@XyOv&{m)`NbpiZ?NIa?*J!;sXd$pY_kw>zS`;u+i(_ifDHufwj&Sy8o27vB{@We_ZZ+BV?*J!CwuiHnZ4LySi-z3!PaDqC4sd1x&b@A2h?Lfj zdIz#)7oa`O`KI57c3=v$;5JYa%45wp<0nYNmi73D4~uO-uvutW2D{<`_}BdIl>Gt( zSjc6A4-*G@uPx)Qwz=r4Jodu}47lEK;hGMN7Z}%LW1x%hUkc-XWebZjec5U`5OBqn z6V4O>(5lZyz%iQrQW$rWEh`MRSP95qY+f3b(L#&mHsrY?XHxk#31}{x90@@Glym-P zHlUSl0ZrxGB$S10b1a}7k?ZMXLpic7l&O511alzU91k!TeE;MZHke~OfSKUi1en8f z*ycpQx%SW}J8d|}cYrg&w@Ek)*yd!w`Td96PqX2i*a1#(pXS>noTY4Y3gG-K>%vAG z&dD9%L`hB0NjS6F=2XDBu=}UK*l!#S-3oC&^7!s%q2GXdv;r&|u&a0WWSnc&+boW0oQY{0p>)2-LraL()i zr_Hy2%5lwa%D3hZYqA?&gw``&1;qE3pB=Fwo}B`*o_WZ-G%^&gbJhIB8QW&$FTli` z6O1hLZ!zZIVM5;-z{e$JzhbFh4@{UR$n2Z(UuWN9&b~4PPM~AK{@WIUgMkRlzB2W8 z`^~Ahm{YHCa5hkJ`qh8GS(@8{saNLRoZp^zi#hKKjpYFP?9%U!NMqa0(b+QT_WbQh zSAY{Kl?&iJyH-470XI4)1-ewu6~#h86E4aFXfJ&H^<_3_Fn2?%(4eKVt*8|On+$U= zz&7!+<@;^e^4h|d;91cr1U8Wq`G9TOJ1bY%u=Q#STY_Pe11E%B0NB>deYDVqEx#>n z;JK7pmav^lA}$1Izn=9Z3>$jX3fh8};M62&!l``$T6IwiCM-}1hOMwIXbCn=f+m8# z2%u&5uEDYctzp>uwgoN0qe;+27WD^cW$QO>wm~au3tECflfy<9k%{%Yzi#>7hOK{F z*b>~CgiWOFK)`lj_EV?Yu$8uj&1TJOHCrYj6rtb(gx8LKncAR0I8a0Aeg}&WSasS> zsoTJXFvM6>sz`}0wkGT$t)AZJ7j^?ma&kuPY**H9QWcTdh5RTgn-3%VaQy5c>`Czl zDU)i~MERsbEJCphxl$C1a-iV3Gah(J+FqS9uNrpQRGnDlVi)qJ=%`cAC`u{ zN|{@aPZUm3ixWWO1O`OoNI>2A$8p!%P*>XGI01DkpC&;TZG0?1{>um1i*1lc+7dYd zaw@kbVHTxvJYb&lON$7;V!%As7RsqGCwMjqvn)L(0_F{W3RT-MkGG|9D$EJaO~NcH z@?^j~eD3qN+AvT2EtnJhn}k_(xG8{n+xLBs+AvT4EtpYQPq;~#WkE0%Fy{_&JZ+Ej zl;46m!OTgRMQ@!3n4j$7yxfL)>TkiEVCf{xviu1E=DX*PXtiOU_FFI~7&{5GXz4Qn zbIH#G-nC&4{1(g!_D;eqi@n)^dHKfA&$eNn`CBmCOn!4wV*X7+&((>{zxRD|Pt1mX z_HRM2r{Ev4ly=qZ`^~vnf%~J_Z7uMmbA^n33#TU?%j3O6jCr}|@pt@rIs7yEynOzd zdR|dQWS*-ca^5iay_663%$o-`a@IBhNZm zkKIPywo{C|FXyIT@S7}uWV$2J-`{6TS_9M{sQs6ixeuqUNBMB>LKb%S%PkmEliRlf zJ$Lxx?^k`sA~DAjyFj?t+x~{NPARv_b8p7OX`5M7uf<`{+Zj4#os`|76t+Xz)X0Z(I+V(_lX5$h%CnR5bSc;THBf*Oy*z9u_tGWZ^Kr8~ z+QF8wv*Ln`g5hR{fbRq%;eZb}4qA2n!9(!0x*eAG=zYNb5+rUDEKfodP-_HA{#R(_ zMs4xBn$4F+`adkV<%ER+p}59O4kJw(v`L8NwAcXJ*X%r4FY1M3+sr7v!7d z<0?h7!kzV4(zWRBg6X1u+g8u>`Txu z$0gVi>1k7O2q*8;Votk0FE+BgFlb^yK@Nw>-f$U9p;h;~5Sk=ThF?;X+p{ViE>U2j zei=R8;E=S<<&n{n72BB`rS_U$MtRwWn%oPS^$ReRo%R2}TC>sDb^o)zT3P=mef?k8 zS`is{zza)0B`NH)6&aXak|JdeMqfrbE9MpXpVnY3UB^)X_KEtmRUAQ}nW#p5PeC`u zvxsJQ%_!7-GmPLdM^z)_vwQw7hsPYF=cK*`oQUAuFdlmv!PR+u-xnrl?4b3dYlQg| z?)@)bhuMV>kc2b8c>Q9TC~~L!6ZT~@V_}A4#zDze5Bv5|khiB(Mn7-bdS7sjV`#Y7 zLZ9LJX{edIa45u!dwzps#+H~rvADQndhkpFD2iF{9X0hhNme3f{}GhOU~=e!DNu zdzu4R$#z$}Z8qS|{Vu65_K>^w?`W^ijh_|w;z#a{!AX=&YjG0gs!cecLvJJX;D>lb z0ef}!N#vCKDxZ=5c7GZL+Erun0gaOrbzFfuuoIUZiXf(hxMn>qRWCIUK1ID60y4Y;1*q^Lo$0E8S zd@Y~)DNxRtN8^JQgK&*%9I?Xj{Q&)22ld!LAWe-wAp^UX^jkJUHzlekcKcZ^h&z9z z7H3;GQEOyWE;Kpv&Jae9ayl4g| zk8l;P;=uXt&TJf*yX-4s&R8@Wi75Guu1ba4Hv87U63w2gGp=Gwnl8p7FRM6C*N>B3 zsDBm781=`t==$*r1?%_d`t@58>J*fWe#ISln|_hy+onX#N1tcSZsYOQ(G|!=`4lNR zQMatNOQNyZiDsks>FW3DvZ_g^ExHTQpu*@&y3-$6$^Vq(dEZ5^)Wwt)zsRa`FRS$E zw3wAP-AcOi!o}*H@2tCo68Cjf z12J_O_*rp3er);h=4!}?!RrrU0>deYv4PHEN%*lo9$5ngn_0fK)m?cMP$4k$~5-pp=ppv@}^r z#|zR?t~q*KdCCEI)E1^0p|=nO&C#VSPq8BPC~AX=^3T5;@@!l}P34yrhRt z#{jEmtt^9*?PDOX8tO=Mmo*y^xv4FoD@<9TXoYCDMS*6 z^Fg*dc+?T_zZx|{ubHJsm*@TI*RFdN25FQ$u~cU`j^n}13bmCjh5&CinmQY(MUUAoCJR(=~%MY=s-xH3mQ3ikmD#|xy*W=HgA z1pMJq`som@5E#`xrG^m`J?8erQH&n&q(e!$(KSkOBmO0r_V(zLL&Z2`8~nlNi;OSG zheH_LQK><|F+}a0*a>aQd0(F<9UQ+7k!;{0s`FrsHk^b{>y&a6lBg@A4tl$yqEhM@ zy>LyI^7p}9hgrTz#c#tzAR5ecOw_%2sN{y=ftZr}E;CydOfmiAw1SYM-qmpii#EWD+_a7nK<~oJ>~BWb&ExXbK*~+FdmrcOy-NN(M3XC3q)X zq)N6Q25tgw)+ZW_1t#uG;YBc79`We3-ID_La+PJC4^%rl(xdbeQCn_{q=yxa!EQ_YDtDc^XVxL3lVP408y6&m_7C2H36)5lDOIeH}n@;)3N ztn2aCVVrw%86lDPAiy*`g7;mh>9`}pCN}*J09J&}>d`Yn?U9oHy9WTVFqm>c&%zl2 zPKDFeAQbY^FAZOlxvq4sBz>skZ-TB3lCd5K+zgzltC1IP3EDkWx2@X82lP}I#@G9T zbD&T?h`-4vhX5%*6PT6zZD$uaW6ApIkA?unu?O>0eZ>gopj&Xt0cQy2 zSTpIbr*kG<*ohdm1iix0@v|ICeEQN9+x?^6>AP8C+5(6Fpm$+X&sk}YTuBjFm1{FTyiJq(QFxS0nan@g%0ET& z2iEfzsZ=ppRgc;sBBPdw+^T+rGoLLYV^4{EUdbYI)*RCt?J5ivn9Il?jR2l zQc4MJ^V%t!+@dRPbMR;($3gS^?i`4vncc|mxOTlh0M45NU3zz*4@X=52v*SoVxCpt z@Gc05VNzfy;{9j=oyKdQ>SFX4ukqokhi`d%;%=ONM`x;MKt{-YfcoxG>oTPI z=pqk>12bR03Ti+thhvw`2a0K74s!@Hcntb1WzJOe( zH3aiTp3pbvi=LlTrV77Ki&KFCGEDR3kiz_?K7nxh+ z&V^ap1#;ye;7c7PsbUF2;jLas#KS#-5Z!L-aj_ z_aNFg37bI8>YRLzW#A4zBKbSE-t{#RgMmCXKc7Y9w!yJ<iY2ghy_z7@MX`Z9UOThP?b5WoLc7*| zuz^kN;^qqTyVzfn@|{PwcpFEd+L3nzOP%_1P%4)n%er%%4&Y}6&;&S|lGSD8QF4q}C)D);(2H~0#x(^?b zOVaUT%k6IZ!D3~Cxk_Dw*;)@n;3}}>C)qegjHObu>f*udpf7O2&FX|30$5r0A*%X? z8$f)l!)#QKy@IgW(x)*P>qJjg_0oDEd0Q4*3tYf1RBycVUS6h@tYkj=19`+gOh9RK z73W~No*Q(;88cETk8<#$6Y#tC@-8=3{ceYV&Z4+8Nt~F z*`4KNF`TnuCr#*#E&`@%my2;H`D_o`VSHs0Bikqw&m}fqLS}s`JkYq3x}rKb=_rI= z)S4RQwDZtY_Q!SNS4i}kn?a~n`Wn>-iR?u!3R|bqQ|1d=%`U`RKfx&UXa}e0J6wEW zUiglEK`}*?s*3B6#?h(Kli5nMI;IKOXFByJKj-nV^?pyTRiKwH@H?x(e{c>>3P`#X zm<5(YAGp|6ANAUYxfRD^aE|bFsX?z_%ha1l!RZP|;5>Kj*RVX*k;GO!j2~OV{N*i3 znBEPPFtKA2^PvbRK<~81z+LNN>3_2HV=1Lavh>#aLveqz7tvf0#^j!Dtf1X^vJSEu zN(wgZrh{2xFC^->->Fc?)g8t-i6&!I@54w^B}p`!$gg6{NU&DEqmnQ7S(0D>TmRmC z6a5>E{_$mC-M=W`c6QfpBs>(gZLkqyegpZTpYz2kTR+$Itfz9hD+)G(i>XtAlmVe_ zSXGm+wdZ%ymLd&&Ql?#P#3}3uSj+^fvY3;@LGg4_5I6SAh)PjvN5fTo&&VzGZSK= z7(9e{kqEdggmU5p)K>OI)ss@U`(0o>O`VRoiy$qk!m&T6j34G3+z$^P!qs#*#U1>i z)E6GWbE3`!av6}u)KPG&Oz43N-L;Q$ARk55EBIrR_40q`q`iv)j4SsFj6Mz!BrZ3m zerDnJ!7PkNekYEHT+MY+d3d6{d)!Yfjt{XNJs>gEZCe~4-;NR4*9a5Gl@vd+j?=di`3 zIu9EM5RjK*gAlhT=sb0NEO~`YABIjoryNpPW(g;b`)4wl(~oF$Ds~R5n3rwY?*%m! zp5Jsuk5aLt^*HDW`RD^66?`C zIv!}y_j%#XYQ4TOLfl_&=47LX45KpErrE?kh8)oujEwd;k}qSMz;DTVwh6UutolZX zkb`_NF2&(P-nba?qm`sB^#g9Xkl`VvAc70UQmAsVSFG`u3(T$Ep~qPv1{ym1NVw8~ za9!#Ud@;->pspI1p#ojMN}lc>tPu2d;rj(;s<95kQmjb_<0Ac+`hvgWoc$mqu!Fm2 zWI}baUTdQU<)dQNe0wIig&){P>N?RHKqIsXJ;oBu+Q!0}NPG*G2M^#p{cUwpP8@? zT`4V<7x?UF=B~RiQwtq3{XnL&_tG_jFbv22q>HB^Y0$$MY9llszqksR#P$^0UGX@6 zY+`HumrdMrmH~^nH##vNy^9*+QCyNv5P;X_^d~?R(o(b$u^d~M7P$941CgE{{TK5l z>=zu)e7oB%xLrbT7bMfot&p}@rh`^0r`v-AJB2kkTh-ZBnb^?!HqcvZbuQ8BFmbFv z$Kq=CSt7BHh3}OMSC$*0KcIWTBb@_TxQX&~bcIWThj~$;7Q9hW!?dWX1YX&H(7@(| zHuh*PwltzRerVArdRL0hQ9!Ac{n0_b^ar3^h(I@y+)FzDNl7L}r^&9Krn}m!ZC5v( z$*vlU_!0@a+e^B;28Dx1aGe=X;#=x};j(U!sZVKTQ zma?u=;7(z)`V+9lH3Lkjvz%%;?l00j@G3Cog^D~*9Xgf;t#un;B~r_}Bn?reh+ui2 z*d|b4-+fjMe@Dv7=a~P6u^gsZI2X5F)~ysF`&etFWJUZUv0CAJg01Sd3o%iWA-(|# z5RTH7Bz<**ln0qwV~qEM*JuKGm9?Y}@Z1cRoLx|=-h6dmJh}sm!{Xh=TVmg6VRouj z6Lts^!t5s05nYCiI?G|$#)T(RviO+gA!N}qCNe0C-40K4s$+h|_2m}!Hw*T~+G2>) zj#yk~k4tC<&r1d|%igmYiou41EIfo4F+x3;#8Op`{1}%}>?!_s$Aqs}OipzpiC=y}KDe_VVyeIkLmc&WS1D2k^`w4hx=^kT|bXZsTi`%3V&H zBz(;-u~CNQU2f7L(5lsp;74T0;D>S5c!n@8j&0Oqr+!%%P->Fg$+UmyER*|CIINg^ zl3E6n7V5I+cp&w%E6nJ!uI=d@0`yoZPuo#s>bVrEijpgO40ai)8G-5XP9V%YyKwWU z*%aN6dB$D)Gf5}X{rl%JyDUMcaY-)q20g`0d=tX)Bjm$fj)L{-dm$awvVVa|KD5vr zcqsY^BB9n$W5W1sReeyWyY^Y&tnNuxxdoZg#@%QmDTP%!E9cd7dWC@uSF;oULZy@8j$Or-FgMd?IcKb4J)jZQJSI@a?-$a|#1z6G3Rz(T9ukK?--y%0S0Qxj= za|J%!wOogy)Q;y+>WL1e#<3LdDda#L%>-pPYGD~-6?m}6+=~s((qOz(;4)d<1>>24 zF5Eqx&vdM2g7Y#QRX?hJX8f>z}8!SyaYGhZz^W`F8CFp~b?^XI9FzmXq^*nH@swCG4UkVrow$FJk} zGr!p1gO>68fsFlDddUm?-gMAT?|ve`bCcz}@OyHy{J~%GJu+E7%I^n~<^OmX-pR}h?}9}6?$Z97$#iKy!%pWdKZ71(lRdVir!DcxcV|}N;CEs_hWexrubC7Pw6~TGjRDJ@nu+wu~Vazi^MIdgBf6c66!T4;rG)S!1bTX1#3RSYfwgG7h*`gR0x^`8;q^hX8LiDs|1 z!Z`?!lAQHMh|`}xJTG6bBUfa%QtPh12R&k}>fK!;LS7wF#MvCS8ntgoD>No3V25@2 zQaj-*JK+r^;1)u-Fo8W_a<=FXwPIIyzX}!dNg=6>a`jnVEN}*1nI+Xnx?fCodJ*B` zEi0bDA1zY4zjjD=X1!(KSG_5YOnyE<`~jgdHih>>~EL>eyH@?OnkphZis2 zhrZDrMdLrJEHsXs@~%RQFPx+9(M2{chnR@Ru4cK~Ub-Jk|A~IknA4^o)vwChHDTLK ztOMM&7a(t)8$Zcz1Dsn?jnu9#Wl`t~PZ=0+%$@n_5i3-v7Fi+Ohirv%)Lm96PwlD0 zI>5B_EZ|X{e-`%3#k;FF@S3O2@6yW2Z0)HKpis0OWvh%oKMj%RuKk?`Ci*OZd9FP$ zwXZ-#@d6Kl+pn{(VAcigvqqTpcaUa@^;PWfd8ZCD4&u|)+F=?@DJp{kUWkA{5yFYQx3HbJW~uqOsn!XXpD}Nu8rYf6-pAAxJC6m zNq2G(Qu*DQrN2+0)C$gXLE!Pi9t3>|exrkx2!4T}^2ecHC#hq=Te_(|un}2=F{Tjv zv>0NVap1b6-mceKK13Fjbg_r`gN`UVeaxc$pfl~?m@$6zf zq!^szQ0#M13j0p0EB#))Wxp7qv64Yc>(5}khS6S~B5+kfO%u2b3$7;U>gXU2_y9qI zDy~uT)#8;JZoc*+8(|{uZqTiXM2wm_6l1kV+{ele?Bfg?wi* zA2;mV{G_|9?&zWyl`+WaozE$86=!81otIRj2 zeZINO2Ll%JQSn553z=_r`+TFB4{x=^m%w*b5Ek$d&T)QmJdUGLK`p|dx^ZLQh!@z^kRO0BPI{U@;pN%a+q5LUoYHrBHLP~e^5 zApTtsk>jrAAZV+)5qdxZ+BSaK6RcC+T8KhSvOy3HK`GIQXugDLN+HxqJ z5F4+(M)nC5sOKbJ<{9`6u2K(6f>F)2iA^_XrXK9*uB|4%Bi)bt2MF=c2&3aGYVcPp zP#^pgl*mPlRnA?@WgGH;^LONTBP^LwNaufy`QJ><|0wd{T3IWjM5Y;f_cHUPQICq4J=vv$mZ*OmSq$j z2r%mMouc34xrA#8JDCNcYHhaCZtbc`d~PP{@N*!*C891 zY+P^Y;;?e#8Jaeg=ycu^>xA1YFG4!%uDzUHjC3FW7zSr1!V8YZLEmul#xHKfcNmLE z@0cq#9gm2z)yCq>@U6}Sf!KD5Y(&tsG5vKg0vKZe5R1PgMwdD_`H_SB`iXteH;F#9 z3C)@6ukO~vFi~wZ77t)Uo`Q*TufA{6DsyURV&oDB8l8KF?-BjgiC@S29to~WXN0?K z)7&gL44YFQnCK7A<%;O;49>%IxeS7{C4>1026d2Ysl_^2ir}L<$m#nz9pv==o(^*Q zejY(!p_8%r2=Rne!pi3Edpd#YJwOW^N zA`WT0Ui1Mf!^dRO%gG2#3I3WMI2M7a!Cy0QMZBkAnpn+H)L2BjGLRlz<**QIEP4@9 z(HX*;F5J^SGy`Bk?++9lMZcaoQQrYwBxC6W4*?ltDf_WGS@J#n5Y&AqVHHH}%f}0} z#3o%~-ZECxq1uZqwyA9$8#mWrM+_RLdf|9_>Hbjl70Xppcg>Saw}midZwLcXfWAQV z?1sK;g6rk{FE!wDs=q~8tXB7vCFO*o6&OUcv{f}g5A#iGLg7*t4tqiq5%w|cb~FJU zWAQKF9q}IaKzkmKkAd)?!Ia>nvH`moH!4_B&F{5@c?SqV7vS)7L2Q`K->@PF`ne-j zN5vjPEQNu9t?H9j5w@>Vsdks`4x9jUY}E#T`1YdMHt;tBrLoWPUe3w;$RyZ_#qTQB z-SRWP0!^vcusto%kj?grsx&%Zv@Z&Dt`pRM_M$Yoi)xA(v=1P_wfjOr$L+SZ_NC6h zyRQc2C**>x#7Y4Unyfx!qE7e%3H*LwKRF(E`MX--R?ykFXCr!q5_l&GtN#_K96l=! z;H*F`J5Lw=JK|s(D9;QWk3V=KL{1w8fqqByS&XDl69DXeNoX}HqF}N%*`UwyL z@aLXPvv?)&29(XrQv;w*vv7z9X~5(%pXR7D?C7OrUJ`-1YXzrmwalWazas%Pm4o2R z)ZBAD5C!9-*Ki5N+{GJp?y!~nR^--M?v{3L$H>hsg7ra0Nj(5Cs_XBRGrmKMt~1u) z&Op3S=WYCx#QL+#{X{vsrPJ9b#HkDo}r*h>8j zsUomreK}Y~AQ#mSV%g5f%@Q16RmWKQ#VSs@_QSl7iQhBXJ9kR&cEU=p2S_X4mQTnn z2MMVRb)^OA$t{2hhJ?Yfk|@;591L@A3dy66Fa=Ep(&O8f_|3Jrm%5GvAFbpgen?L} zKh#D))Md$te8rA?Vruq{u)c-8AhesX?=mC@^@y67iH4B{+MulJ1&JR4?klMD@A?IwB=q={Uk; zQLp17V>I>%8*7??)lhi(6AUlYVe0*|KtP!ue}V4v`ZzxQxpiD!1SyC-d>;-7J%-5C z_mM``^=GQwRlEfmMyz~|-}FP>FrMW#(`14Nnq4%$r5Ug6QEQ-T_{<>T2BM4*_%uyD zS;&fpa2-1T+e1{(IS)Q9)wihhDX{d`a`p#iuflMNrK0!GU8D@r?Lom*?CMI?Ne9Gd zXBb@fNI8_wcs-4y%a*@l^%!Nb++scLuKfdI>aZD{w&F(o*xF!x2{7{bUumkPqYd@A zWHHdCn(-5R(gXmwcr&UefJE4&T*RGR|F~-}Wc}{;^*_$~2cv#D&6=A3;@`}FEAtz6 zf9eJ!6Nc!Ij6L{AJds+6=4n54*G^#hq3zo{pE*B%1nr%JoXPfZRK9T6 zP~v@ql~Kz13SY2!O7!7vc}mTvWP6slKquqz3ne5md3>Ek`@{q z-Ge{PP?#jDt`Ki;wj-(neGN_mZxpI3XmM}?FSOLPoytSCjy;59F3-~0>p}RN1O}q2 z08K0&P;Cr)BB)W`XME8YzA2v*+GmI?H*d<1J;JOwqJkb&Z9>_qj|GO^w&Q*yyUsI> z`?TR@9(0O$;4Ty>O$(gNE}tnQfSy(jWKUB2F`1R0ZS~^~Ot|QWtv)+jDuy2Qh zGUgiFJ6d}T@AbegMdKD$FgaLLRbnZvU6+l}=YZHB9yV5NIyfPUOXyh>UNeB*m66Wq z1IV)E(%`_oY1+T=(%@{^W%V;nmjws@g5WE}8@9i`2cN)v?^OTMfgH67flI>!_X@~< zb1+;C_o4CO&db8tzu<3<`ioUYa;T71P=DQyFRVG}!gwePosJB3lwSlZOJE{RD|uLP zS=Isl8eF7=yY0+92Ox^0Z`&hQE<}P7LH}H9Jdex}KDSwA{3sK9&*FdTrkL-i05Q#K z9vXu5g^nUSl=XOWD^hYJOC#}E6qDS|E?Kz>O~yhJC5uX*Id-h|YG{)GNmI05=J{~@ zGlKDO8BpLh)enSH8#)hrjGURXYSm zlBgwQcwf1O2Yi+2pDzWT%69PRqtTyIjOb3O0lGuuuya)2B^tP#{-_Wi`oeJXS-A%f zYrrW7S7N(>dAom|q<@ugb^CTYR@cakEIs^{`?5+C3=6~t2?k$gHEg{&btDBvk ztnc4=U=sD9J`FI8u2tJ(D=oV4L?*HvFUqm-bGOc)+U_@1+xYNT>ier4>Newv;coX` z*zUWi-FIobZ&$l-Siw`qFFdR=^}F@6)9whQ+)Nf87C3EB%6Av0rj!p4%V_hB{^z9D zM{$3GK7|lCCX59$Jn!@osN4#(!ELTJH<&-mBpF?>14rpOU8Xc=+3PX2zCmT0+S+lT zL9o@N8fa@jUU5Wb)g(N6ni;G@%pQi%*(@E%QPZsoqA#F{g!~*)SAhCfLN#Nh$DmSm z5c{hfHi}Ccm(`T-*mOD-s|(aP`GBg0uhUh9{>tH3t{SYrxXKQ6rpAT&1`btV{%5&f zVs{?XfgE+e4&7yQVJ<``asiptVB2wIOS{gEEGxLWvGum`%)E0k9`aqR z?QY`#t9{tXz*vuf+4n;zLPlqUS8h=U|3(wR8g}w(+-ZSrwwp^qs%Kg94m*sycq-|d zlezE=45^C8+uwGh<0~lG? z;XFC!2kcp}b#>~aVkYE~*0x9ZU1?exezrthdKSd_49eW@^fXGt2P`e~I%|1cT#xTl zF|9maAFR)4ToN1}=qzO|d$R~G{fIUopQ)yHrq{u{^HGtSsKYf3k3=|jBIJ=kLnUkn zZp;w3pfbreXRNA64Aio(D8MYa(3r57>nW43YR%+)3HgkbX8!_p2-wANs>a9UuS|_< zY4Rgqy^#FKQIGKhXdVocPjC($WY)komI+&yH}E{%K4)V}dA?J?$8)5<@LSKL@4mwc~=U<^8D!yGhi^nPPg~cuew_ZLI%0g8nHF%+&R+O?hY+~3V zjS$~bDc8@KD>ud~izJN<#(K-m&sAu*v|iM<^^2|6CrGZHY65bpJJAdKpt8J=7Oui< zVr`(k9A!Pyha%}iWImb)B#9p6p?S94)vB{A>V)mn2*I9^rg}-`I1L8dx-tkaK?Amo zkfSqkkB5|qYdE3H_S+8_s&bqT@zE@V>u;tOc%U*RknWN?z1X~g zQ?*X>hjr#6@Sp`aUf97tgm$Iy7>lojIAjZjw03#u0pL^nW5gn_IQRh}v3RjX3?6i> zxXOA^x3>_hMEORqKu>rjgNzU!1?2>@V5Y6wiA!ot$!@*@X zHh!j)#<7oU2!Dn-mHDQBFKFmV$zfIX_+NCEkF6|QztP{T1R{)`y7>p&I0Z)|Os#3E z+tYOlpUwlK|of|9CIDZ+8;_8Ub+BKOlp0@q-h zN%--5VO;pf_{|?Z=8>4ZH>h_jj8F)P+~EQD^l@0mI8+Z~9Cye6iHX=BnU@c8L#O=V zrIed$JzNYZFqg9*$3aj;*T6uk*O!Q*^gIGehV+cSiUgSt$)f7*H2R%2MO-|jW-MHS z#OQd*0n*!tqTRH$uh?Ywddnlv{0RrP|Zh?9N>E&S#?C0tM=H;r%i_Gj#5D_A{ zBHf)UNISlwfRnWy6?^QQQssu^Mt5j~RwW2y@3HFZ{oX()qxvf{L73P3LBa};JxHA5 zWHO1)iLDt5urH)0NfE>dFNdwf<&sG8Kgy>?hb6jM!+z`1nTL>xl|oWLDm^$KZAeWm z>KRyA*+xLOkw`%YTGUxq8)I}E5b~p3(gtd>pg2 z@CgrD&NZc+O@Lg^4BxAYqnst+GypVGXX6xdX}JG36e>Nl^tkhEi2n9$SjR{hZ6S zVnE5Or7pArcxn&|Yi`^pl5wZn2O%4cqIuEx;F(~Vg{bd=MeYPLWH!Sr?7^TFsAs<3 zA0L$Ff?~SZlc3TJ}`VaRew~2Y38Cs90fiUP(>ioIfZ-e4)uxrP&_C%jW?WW+XR53B-&x?UEk~ZZ>FD7KdTJ)tM0a6L z^vT_aIDZk1k67q@0wlWZ3KS7C#yuj(_hZg7FLAWG)MM^R(U=qV9c)xIe+9EHZq8YB zIZVemk;zuCZPTg+W~BSJJ5l2pv>kg{<_~Z+G<%&Ky%h|RSkIltTBf$C1#TBlpu9B% zJy1(@pcH{!ruJ;+=cLjG)@f{S=K|#96@|3#=P{qVeLi2Z-et_KU7}nV`!_f@`XaMt z!sC;hhc6zsM!o^S!or^y|UX%5Kos#cHHE~alV?XX%sK?^5&%-W&>_VQ@tuk;%lOZ!1W1v z?7_pIl7~5VVYSE{awZY@paW6e4ek3|n(Xfj^U+_{=dR5FYyxg#y+r=E45c&+3;$!e zhttogGC(~GHn-USq*V6r{+VX~Vw?SEOGaV;8_+Q|H4Gr-489S1goF|cUv>L$y;mE3$s4xSR7NY_b^;os(NI1KK`Q*m(>cO|(Whn?j%wY*xG1bWMw$2EIZ@I41D^ z_(Vo4%K+>#Y6_;@ThBhCntY^EAeB>zVISU>1T9zc)pwh;T$zIkNpo7RJT6}&pdyce znJp<-#zUB_0J#GpnBB0%vP8>u{Dwf@!ByAkP;Nm7u`4V+4tyN{!s6prSBvL@k4r5+-VMFfN(LMrYmCZ4yvzQI;@bQSneufNN`5Dp?GubQQuSBmP7iv(eZe1Om1A3il$%XdVAMXJL^A_nueb=!*H-1*6 z)>oRW?*-PE+)ty3(Q+m=zmrhSV@}?Ak+Qz+AU|&8{wzoMQ)CqRQ6}ACy`YR*FtEjs zsr5e}NWga@TUm)RdapA2M>d#{Kj25a1nC~-HJj{f8Zaem3k=9iom@kv(bl`iGc-e8 zZ!&JHI$xM=tDZqm=SO%Bl!4Xid$1{H(=*VC^ zpOC2u>3aycgGbT>cj6aQ+ryw+gfNL!F;vTgvwBE581^*v)(rbp^;xrJ-&M6({cK&x zu4&JwWjCQP$Z8>St3?;l4#^4+}FzRz*b6g0n*0FS8T&9C`V0;BZz1|X448{O+7XiikXlJ~#kllJ3BA5=v z@cPmA0(6?|qY;Dky^%qr6U%{7SV=KYK2u9zLBJu+w>7DBz{hB8utsA@T+$X##|%aM zC#m!$*rFc?W*lOsS4dAz*=QCGaiRU!^^B@8hJPQulXI>mUpi>0S96P%Agw0?Y*Yfh z8k^PsM!PUgJ`en=%tIWgw;n-QtV1}`g63LPg@(HNJ0u|e2|GQ)Dy_27Ul9g%Um=vQ zcb;%3kaW0JJ?i4r3seeeSk{*la77cUhbCF5?nMR&=t5pJa3-qdnv>UWYPeLlk1Qy* zNR!a0xx@G%KiU}oE&vN@i=Vj@`n9cU!`x?U_s*o<4=Z3JbP4KEe}+OC%|>$xeM=)G zmq1Z>(A~xrZr2O}AT}1wRnc@lI z?t`YmvlS#F=VlWOsh*k%v2#0?dG1;m6fBXMNJhC#lvA^ji+abqXgwYshV0h(Q%(O` zefV)=OwpGo&5YxO7q8s+VFC=@~>IV&zz5i(4iAjiE}g1BpYvkT0!BDD*5 z-)f7DU+zF}*CMOB6qB0n4en+@Nw0=-46@d}(Y6AJG9In2MOoVpk&V((C_pIaM!_fz zs_xn%27g6o_4!Y|{=qYG2^EOT9~c@aa9_L|1Y&70U0~~?2D3lNINT3VEq}GZeVreo z!C?6pfW(2sef^eHiCc|kt@Vq463prNA7V|FmQv~sEC4Q{#dOcm102dgK-Mr*7y}Z9 zMu{~FPg{NusuI@Alq9WXIMuulw3wU8SR3K+m$$?l^`qzWjZi86V&Za&LJY@LS&t7a zumse6vWKe>kmijygEY5S z!9R6tL(8ebR)?AlTOCK>F>55ASwQ5A7-(7c69J4I-=C!}66E4mqAyYwKgs!BobIc+ zuq1Nx(J?IU%w1Hp-C6MGZj4SLIVbMxp!W;BeL*_#@hD0Q;QlnadgSAeD-DW&aF#DE za4h~{I;eg)$@l8%b?6`kl8l>Ia5zH?n{-hIUI9fZ@*HO^vXnpM+WvcR+Nx`y53yY zn~;A|%0CoK5Ush2;`%If1mqhXhQ&*w{0J=7Q`dBA^N*Stsz2tapw7bJ`*C#~H16n^ zC}_#A_M>~;MKZegO4Tks`o2l)X)-E3GZv5DCJB(L3Z2l(4T;fKZoarNasGD(B$dwX zA+F@2)o0(cZh*{=m?2-z?!VRMx| zBF$w!+2%Wv`PbBM_{Aid2kXGd(EW6nDqB0Zq83*2wBV2F<&j~X;Pln!qwCD9a$F30%WrFhJ9wb0u?Rc0IHR%F2>ls(BW`&9LIYTX@caReavTIOs+UQE*y83RXe_ZWtF*O!sSS~0CV?c}!~LcP zP~l7hgnPm*`F?BfGnat9KF|O8KYqQCGw1BR_S$Q&+rF(eps{rCfJRoSC>uJ_$ zuY4LW%t~3es*-;eKf^!qUe-Pq=cY`$+A`a$yiLl>Fdp}Q}+r8yNS^r~eKRDonl8apZST-D|0>7lxSXqd@l zNW$6Q?>y*FVMG;7cn0N5-%Z3 zM*W0Vs{TT=?mU(K)$31leL-%Oi}e#fLs^sH`1QpecIj?lgZ@~{Io$8GJM68Ip-}9l z&bGDwhG_d0ZH;y`w9^wTSYEKgK6qufg5&12VeB@onnJ>I@{J+{&l8Z!;x`Qo*Vs*{4%2_u8@98nyMb^W7|4^mnS9i;m)o^=o!wv=Cqf5$h7R|{Kc}bOT4O~h>WQAb z!Yo+Xww}Z@rhl7duds{;tKcKc_{dvp+3i*V_2eDpyp0qy+AaTjI%(HPvnNb{G#DA4 zX?d69%VwLQPVT8yC_28Fmt)$Th980*@$a)X(2N$UR`v@csTXT z*PZUH`Xw*SN@k?I&g#$W#iAG#M>{WaOUP~t?eRF>B0O!gx0wD7kkY$@CG^xol$G?k zv!&UrlpQJsG6@B+J0GUC>j9?A)r1;4_4z|}0bLvOM5~nlvy|`Tet|CkrJN_5s9!$H%h(&d z)b>Y(9Kv5wr-3EDzW7^rD@XL?!d_G0O?*7sUP9wVKe!3 zH7_NL_5^1(n@h~Erl2VYLbu3z^crVG!}UsoPEv+i2hKK^z0H_ohkIHm5Yv%YRj z`MTh&uQ!8L*)7lb%0HhjBR_${+M}BRE^$p}QBCI5ozBE>qO~6e8}#c!nY7ZGNBCN7 zuTJTzcyIBqcb)Zhj39J@t{Xh-tK64}e;stz*L)!&OX$+>)!)rJqg}nO)jb}}@(F3k zE&SfZGYj7@px7`FP+y2QROowcX<^w1X@$PUT&DC@Os9~Fl8QIu+{e`j6as3s~ z#=>+|#TSE_k^#z`1q4=;PH&b)*^)659G$l(0_y1%03~u zbl2ptqnaS!0wI=G$*MH$WL z`mwJj+Fy7HFCpeEy3ti0&QIa#AD#7;!{KT1x)o=Btr!StQ+oCoXs}AKP^b*SO}kp{ z@Gn;3#c%nWaGr|hLH|-}8LC!wRaRGe+`B>1>rV^|>&u z?0cT)d=*ch>Ze5`VB{uU|^qkgDtb*Aa~ zauS42{22EjfZUP@_s}|~lyeZnvt^ovkM%ew9s>`Jq-}q3`00E(FQ}qpv;0~wIwac} z@oRBcOD~o~s!Q_Y%Ps&f0{~rZb(|`hl(Lj1Cw(T}A@Rmr&4MLPHScw3d;)KXeJ@yo z#AjLqc1+1X?0X3>!L$Q6@c+K{7T?7z1al)bz{*S9F4G3u{YItDvP$nm&VELV1eW;? zf3$i3#dzfG5yjqm{6>>FX3OmaFg(d}RTJgx`p`+XIOMWNsJ)a>20To;l-==?7hif- z(Jj>ZV97b5&Sy)n;QaGoSGeYR5V1&AsZ)BkGN)D&jBmW@?9MabLxJAgHs2pU{0) zM4d^C^@hYoe#?gH$-k@L6-(uNcyfkwOO4!xc}kyHX7CetFVsFosG|qxi)n1iqipp~ z3ChlIWckWvJ~y?)qx!d!Pmv*ZorAyIOD<Sp#U#au>RdLml6e;V@wU2^MnJz*wrchI3edde6OCQggw>;M`YJ{ea1Mn<8-K<&i#QR zaWVWmBnVBu0cu^NKu^wh4i%k3Zd&bH$Kh!}Edg6V!>sI0fht)S?ji&?-34Wyen91C zcnwPw_vhqZ)`ejb<|3-qoF5bZmGxrX*yj-#;c%xS(by!nvBTi3qnB6x=*-5Jjis?} zy0I^*#)KMbrMyD6JXO3^P1kUsF9yJ+LkA`~Zdd99g@Dx`NR|+kAF&T8z+RK|P-(nW zF&`t1M(%gTJoXm_E6qHHq~-W3UIz`cay~t)ngOIPw7E=bj!x8M$Bd%yNKrYF*rjOe z7>ed6ijGu8w@T4R&n&t`ik==9$LC5_be9wr^VJ3F>r!-GqG%iAkQg7K{uhI%SkGAM zdzBkUpjIzH=AH>;i~xxM#MN)Hw*fN){>;}r`zwB$oMp?+_EpH)aI-S{sa?zzI04|; zTVhX9M~{>9=2(?SBsX@i>WFOV#9mMgcP+yaBU(HVGh}3DpNU!3XdoUYY=#!L96_W~ zW`}An+l3N8l%frZqWd^OD_%@e|G1|q)KLn_QNUz6G${jh7ot^Xb&V|3tI5s;wZ~s_ zhx5HkIc2G`hKx|F`Ss4`U&%H9+cLtV+346qoWgKF=gq&0%PQjZf2dHgeafRU`T50r zIGc%`CT@#~>6%e%? zgq4;^3-_JcA+B)gKqV!F`VEGI`C)d0Ff3mUo#?2PlBCZi&$#pRpGp^rQG~z9c@5xE z2@vl7|NBqlt|k$lfqa+#9S|f}|3LYJW0V8R?L^e2|7+Q4asf#>p`)F*`zSAzXxcQV z-B3=ZxSpuAqU{)A8C-8vCx0mO*hBjSBSY~-MdRI{kF>%ESUy6pOKxPWyxc}(>Dq~K zQZ`PVN6>W)Qehg^5Br`D2 zc;;hS5*b=3o-@}50zrNRlXs_;9JtHw33|(2;x=I-5>StnBRO*2+r4-OFX0$lVR{4o zS-nhW>D4}D*&Izh=3M!FE!@hnql-E1#SyUL@D#;waw>s5-CX`)G6u8w%G(8>enSvsigKM0SYlHg~~3UFZlLzGxw-XZ}$ ziFuPDcxh)8Qua?7DQz#z(3CzN#XF@$MllSk-ZzQ^v|yAsqXU z2C9IH&ckEl12s^wf#xp-|7L*?);V;NeY7AOYcF4?NI3=I5)VSc1MYU3dbCJbfLvz+ z+n*5V=_`f8clT$LkPeuY=YZR^^vh%fAfj{NEo4e|kFXP}+VxZu;s|LH)Y%Q7n=V#k z^1~)^mb&Cy(fub1R9x2YFV?(Tdy({CuCwa?fBm2JpE}ONV1FTtJ!0W{_ z=~U{#F)5&>|1yPh8DE%WeV>1;#PLcNrS7KN0O?EAaFll_({*j*6HqDomK6P%cwDTZ z$KIo0>iuk2zl@Yv5A2xfd-Up(v|7Sog#w32^oxwcvnUz(UgoPjv1$1LgTzS~PPyEZ z@2vf*ILK^6kdI-s0$p@>8wY4bDLc3P9v7juV*7WiT9(NDT)C?!Ip$b@myHRnr-T!zKsAEZWKe^a zet@xjCGSE!V6-u?_jtm@M6!n&gPL+$`N=g>U0( z@KEC8qnXhK-OlB#=%bOMJp#p)HNndb%a9 ziG-2RC`ErK))c2u6cr}1DmY+c>0gzzASV_&odfAD@LB1vwg3O99`APto+6gnPSVtY zij?bs(|(IYoPoCMUlfJEo9%q@fh3RY8?Jd|bT5}jhH8DY;-3ujLh3k&?ue_C?P{1^ zdk!fY?oWb$)dhbfyDNAP*th(0!VImDURRBA*UaTSSzd^9c(F8Ak!bAO6iu?z4Aw)n zR&lcnOURIEbWiO21$ugb&+B}GHvs8+L6i(586AlD8p;?l^u{u$FTOTQy#%zo_?tXY zG=9!Gd4FBB82R~#7>lEQREH>;HC&uv?CItFrQLzFi2f&{pE72m|F1dLsjda6!$(TY zRXY##p+;&u+!tZ!@QAanrrT9LcxE4>Bu)-z^6i|kNv$CAv{|l*;QvalwOARb)4QD@#NIQD!Mx6J{x%mme+R+j6ie?s*_Fy(|B-(^fg^D_Fo+ohI_e=8 z^JH&6GD`9!M1CSo*foKI8k#)qD<3Vt*~Yg99P+*TTWNKcS@vRj=OSN4J5U0VdpoOS z79oh_;VfJ}ESqBpC&lB=EsCTMvIvffCg)D1I>qON$h~J_6O`}Gl3q3YWP(|qPld7N z1ViGW9^TU$_j(7~g{^L4X$rVpfz;ozr}yM&9v_58UjY{Zi_M}`K$fHAR8vvp&TNwv zxuO9ZipT_!?fXfzXuw+EPiivO`pV^eXsG>s-}fKn!Lqj*)zRkkV02eHe#2ptpxPe! zH#2>LuQke&dAf&ffNY$U(p?-=2<Sqzvu|cE$Y>4N=8IgT-mgn} zPf+0XzE>|i>wS0iUTv$7Pc5IW-hTvb2_2jQ=N$E3_S?F?KUck%V_;q1_fYSDe%AX8 z^*(ggdlm@Szw~rh7(M0PeO=$3C+~)LeU~Zk`gMJmCGW1_U8wr}L^q(_OHA?j-8=PQ>5wI%70L0Cqobyi4)3P|@JU}Q|H$r!Ekwe0TB+dt#mG=Oy zN}SXrVANwD0rRwm-!dnqJU8!(Sup6zfoN%=c`k&BUq;C(9~0kqx(Z}Grl zLorF{-`l0Vr_O9|KE<3)azD@?mEFqa3sc3bZdn~~Z=sB3rRc|N7~%Ep{u*;yuh`GT zE7tSvO0fx5ubc_L82H+^`5zilgB7b&R`Ee8Z=PAc59LKYWjNnTl>Zs!?Hc0VWF_fA zlsJ(Ect6tX496dDdyOM&X#8S`n@Slpc~ma)(H}(s<)H*20?h4 zqH)Y0qjZs6XwNW1t)4oVK}1|gYBHRi_jO6Evw z<)pbo6OutHJr8I(G{)TiRq_<8&59NBl@sDsOBJLW#{TliUq=<^Dh|0|vdBKiivATMuWQt`VZzfo!}%uE&8Kw5%fRKM;)V115L9=q+7`B{ z_AWa7RodG`Rz>M4u0!h7UdittRk^Gcl+$b=dktECeS}S>XL2Dxg6yT|!CNym-@FS4 zbjIWWz5Xo{F079ldtF*A;b>JH#q#?pE9#3`(O%UL!o$b}`VO~HuF#=Bg*Zp$4~8W| z1)asMrkwMo)IyRkS1fOi8aS6K+|e*Y&7P6t*WDiJ!wN9x*^4D&I9A%pbZav;)Hec) z#dxcWLYREKG?f%cT4INsMSxART=H7Ew)iBsiA(5?e=M8+~an086!B_=5IroI`G5uO1n ze6PxWU~v30d3k={peHh-o4jSMI^}J*$cXOpwpm6gQMP+zM7q4)(B*A{*Q3~IBhj9oZDI0_Xcqtm5$#R>xQVXzhOr?gB1HIdo=EPue(^zj!Uu36v(Pq z9C<{1-4e+J#Y{*PtxAi*5wARyQ=0SI%%iydvX`=I7O~Pt9mDZ_^#^<*I-#fP3p^n9 zzrRI$FFm`f8>&jTy{bMbzh#f8)*Po8P@EXjn9DNRA^aoOQ04-dHIz&>F3P>IJqy30 zs$VopK~|w;vWT{U5|hYu$;q|0=U1x2SyxfG>KUFnSMof6v?dFf9AmFj`tFOm+{poy zGtVsdIVtx>ioG)LMi(Ww7}R8QtYt4{)mKbZzVq&Dot*<5$-h2C1OBxDenA7C$RCZs zl0r3cJ98yUjF<`@3<1AMMQD^MOFv6J`uKDvWaM(2uY5j`;#A|-DyRQh##rM-XdSYB zL)HyA-J_C0JqejN{`jbCU`hhkfP4uH{tWJ?EF&o5I&+USQ?caBX64-)?Uw$aEyf(W zCDG0T?UoGa2G@!k*XFzh4{jjQ@B&s5acIP%_0#C6`23u(~eWx$|w5s zxcizPp zdNY!9dd+aTMI@l2AH4yPypBp7(0io&y;Ml`TtU-4=P2i(Mu$%1`6`xEK`Q1+MY~Bk zRnF;|xI-$O1T+dcJqNVEG&zOMnw?CxCt1*Wtgl=y z+lEd*Sn6Z$c|obSY+$;tJjOeTLpu^rX5WV*GQ|J9RT>o*P^?Fzy`)ibibS(Wksp7N zMe3TO@mylYMc)uCSX&$!be^~`uWSaQ-7Ip%kiSSs4tobF1{`)fI7%rnWS!m`z~|CC z+@yW%_~3!nD?8%cd_d-p_@D5^b!rA7_}!_txLI~(mdQ8g8~dB#oOFVS@vGR*l{<;( zy!RFDvc7SHtDjOR|MWm{GU35u;W9~mgZ-*s*sN+?bUihk_o241<3kHuR6m>Gz>DQW zEgxcmg#T(*%EARy%q#t|Aa^ScS$73n;j0>uKMr=Iy9q{Mh{~!@%Ld9B-H1tGjHG|k zND27C(+~Q}vVZL7nkX8+SvgmK-}x23i@3!m@tteA*`??rwovcRFf0EqW%`Zo8SFQ- z8=di0+(wy}SIE_@E6+_-RwtEH?5n6VwAVwTy(HfRHkGk&2-vLGEgNMlGe_aRI5)v* z=wBiepK(9yufTWjXB`dxgZo*Rl9&b+Hc9Sh{h9Lr@_trf%KfYiXfxTX?`H)oySx8k z2bug0EzQYmgYI3dG`X+!)?&m#bgc7+Ax(e!eXUC=qwi~pR~XlGGYok1wf<+_*Lqel zLZP~^^-Jc5pLSpC9^S|AYmJsN>S|&UPx`(Vb7=Rz)|Y6d>UM=BaYeWeKlV6#QL-kb zRKjqosEg%YZfo@r{runE*HZaIjO`31@dn~owjNejwsy%hUao9yu>3pxjaBrM_2?x; z5xOE^e`L0;*YYHrX_we_+zgW|Poaa|{dIPu@112_eexeLy>0qF)jEG|5gWW-u4A2O zTW2?hc6cmLwP`nS^U;(GSJCM4EBG1kwwr#gJ8hiuyU5UEW+d1iU@008w+2m=&7Gpq zp$xg~b*N|PV1~EG@~$RvHYyjp5!VSt!<(M0sBHy6cD+2{wSPvNOZEFMG9RZ_3Dig>c;HP%I=|4=r&Co|r1pFIJE^zJoPH4w-W@yJ# zmUo+fEmzOH4W_?7;H}p-z+!njQ(sDJ=Q^4tm&+Qwja(`N>Zjc(V`)Qfl)bD*8pW+v z3UPHf+T;2M|LJ|QBG1H{5k~b!#1@c&(WLTs<&ANZx=tyvo_t=-FT9D{T{ha_P=+@Bcr*) zzrL-}y9ITVy6dO*spLA@2r5@S%|A&nXwR)*rnMb6xI1Dk?sYQswplq!Dwt9#2RJg_29T7_CZgTKq1!I3Mq9?kpO=GU$obd8&fk-)s4! z>sNhV@D-J`cnbf-^-`AL+u2WfIvI)>3166ACf6HB%PnYiNyqn2w@C13Wyd|fR~7+i z&=VzB1tZV0|D$HiWrNOL$?Xk3a4Gw--OcJ6v)KE{J*Q<|rHL=TcZRTLIilO3Dnk1R zh<8g1%}C)X9FcC_lrvh;(BkF^kuLb&xwEtEL{-UcWhdS(z1WJRX9NcvEd9hPsBMWP z=&MrPyenF!>IcAFT*g1~PUc@rCoiLuOfOye;D}z!VzY8ErIZ)frF{D}@$K$UzQT6* z08w2!s+YKTU5c(s6s?k?=c}T^8tTwel79M*LP_CES6AM|*QuSqVy&p;rm3C3=C4wY zl{fO<7pP$t0_8)Uh5Bv3#M?5S(kgG@AI>)>?SvJ+Bi#xQ&kSE;`j%N@wj)y)e)r}# z0`^MN$DP$`-*Ph=V{>FVI&ik#XhuKI84_7^!SL@ld?UImC+cJb>{`oMZW<`(mK;>k zEW2@NWcrnn%pcVjVrd#n1NH`Evl-o+Gc+>unj5}iolpFa zF?sVNuf6{B7e2BIfWIrlicDL%>fM9vy9i#iW`V=opvjwn-C`M(YRMQLDgVM_k4)=R zz`a!~Zvjv$*)1{clV&-{_H29M;uk7YS$5JMP^^74+j}qnm0CE_BtRyX9s44E_Cp8!AXPBWZ3t?AM>yJ+=NG_K}6Hu6o}03 zeap&*Y{uS>796)CKdNJ_xWh~zOk-7a4?MEdjPB1E7Mc5{=VtxL4_d-`GYQxScp2^e z8Ij5eV+g>0R^Cj@I8?AE5Sf3@Cw;FPTCkkz!N@sRHhV+~Hc3NgyTECgo($Z0S$9XYFE{2(`e2mH4D_t-2y|bAb(bjBT zVUASbWv5#Sp0t?C%Zajmb*9hsbUn z1T7oFI1F|*jTh&AOq*p2@2x^CYHM;?d3%!}XgAR&wUJ9Y!GLRIrJ|Fl_+p;(4=Zkw zK2uqBduA#KJ{$*(u!?H`$@YH;|X@fQPtQjzKcS(;IzxrTZx z-2o6V@#^+g8l^T}cWuX~R&D&}Rl6W7a2nk50$#@13eQ*AV!R{(xb$KHgm@%xr6R{n zd#h%dad||Z`1TlVQ!J+oP`bP!0h8L5yjY>=`{Z&3zg)rhy|W^mIn6{1Z&P*y+V`72 zLz7^$Jc%mYM*T%f{?^GW(J|XFXbY%8eTCKnpnQ5oj?&PfE)^>i6~XJ%D|W3^oVQ5z zl7AoGrk-Yk(p-C+YX0F3zyk~;yZ+O0nAa7YAU{*%@ae4seE!*0=DKKGBExh4Va>PC zu1Wg|O3nL+6=$7Y5iHz_VD#w~A<0LOWSsO!2tC2{J-ju%NDUMHm-lE87%?( z1JmAX8CwlLZ?&5Uk5cPNi~(5YvNR8$H`ve}ieVneW(I)t``0&FRGODi|Cio~CXaM|H zqdhb-2=}j@+Nvs~bF#%%rmZ32YiCK9hV+}S^i03`@upRe=uWnQBlwAN+VmU`f3J7I zh_NbTv<4({PrbtDR1zQY$^e>zkMhY4^-lpn82o0iasjA8r9_@wy^giMr`!x^7|^G#35JRpp_PKHcNh{*5NBe!9)@z1Jem0nZjId~ZIIVXO!k z%#^psL9I{4p!W=o0p7pjY`jzGkiZ@x-3IoT$LszFXn_4?@oN7@lPCz)>F~Wb1U%~@ zy2T_b{I$M9`{kCgJ`U>Nz#xIWOZ)!@4Y0rPKWH*Z`#}NEHpma{`+o*$Z$W!a_(GTO zKTEVPhV~F$lRx-bZ%SbE>-JS{gFHkjc zG*YS#bL%QQnPRGOsI?dCS;ulM|J_JEB2#YCElM?7OsS=2xnW&NHcc#Jo$MB~I3DSJ zq4}U`ti|#4E%U9h?DOrH(&cnfazDVloB74xF8rtSix>6$V#LJH=meuAF~NA||Ah(0 z?yL3@@3K6A9sOYnW}XOQpvBxs-W*_~iy zhwo*D@-sKV$V^NyIQj9JTg*#OnP6P-|KR*0Ik}K~9TG3FIFfb49k|gyYYS-Xg(ga8x!Z&%J|F?cmjmn%6VP$?nwGZ zdBd6GyEsB3;S`9f#+{UnZn&C^?!$YB@6Pf4IBN4Sd|c?bLkLL?pYtrYImgZU z_M3vC)3^Fw`5TZd`?+x>7$N?VVCYPJkMr$aPv|A%(G*9X?o%9j@f;!v@Q=WFp=VL3 z^H$&YPXOufh5QpNARPDU44+C_Q+RACAtm?AYtDW5VjCtsZ(0xD5#7MS9B!a zM3HB&^Vdgu0{LkU2((t$4;{z1G@`ThkrVB5m_3jy|MZn+pT9z*OT}Qc`CMlbHG^a~ z3hk&a@+=V?BowDar7`XOu}k@@&Y`K}c$_zrNTb2X-JIdx9SrSi589j%x31-{b$xrV zU~{mbBj{-jhW4}vL!BAEm&a0HesNJGoOy20&Xik^9NTMuwpAUcn*lOTaB*{|=ZSGT zCnNCf9wsnP0rHfJdSm+jW?f5O4(s}kSULbx_vaKHV(*Oa$?+FCFK3P^j!fvosGc4j z9yTs$AFi{`?NcVV=87Vj>12oP?|Ws7&`+)o1q+B3*2szF_KfFVng_i*cnQy)SLaES z9EEZXgR}g-75_Di(qSlRZELwC4&3&%Lg;aD3mv>7GclR}Lcsx8bUH+z%@-X*b?VXiE zgV<@g4v@HyZ&zy+>MhSH!60^u&*%}m+E_Qi9^>gyX%3U+gZ0DpRVBjSMW*zb;CuQU z`-?t$Fno|y=k5@rU(g;2KE!p{Sog!hw|u?y+0ObQ*#~y6t4+B(CFjqnm@5@Y+zY&X zf%p0a++;Zm-jgZtq*RDfim3HNp6mkvU#}tA@aw0*`{us|Z*&Sg!6**zKhh_;;k)yc zKFJLafBY;|CK(8T@Jse++Wf9B}2#LrpTw(F%LPpv|2w@5nm}7xj6d%QgqDdCqpOt_{z5k$P>9b{&l5{(F@N- zo4b{K(^W#DNl*58eq3A?@$0a36a(xI=#;G)LL1p!XxqsJPPdd$(?}TEO$~dZ@oHVhbY{2eOUaZwuZC)rHNhrr6ngM z9B$lG;;sYN0#z`o+kl8erE+OGZ`9%`g_cZA+^?=x{@4ru8vcSV@Q?A!g)a#c67auz z7W~)>z9+jsLsWG}77AVQt0?NA{YoQ$)X4dI^^gK>nc1kD;T+U^`ka&cIai)L^>bhG za`;||ewWwnyw>n?KONql6nHHu@LE3|o|Ay5J(0f& zDY?b9>gRT}T%YhmUQ&L@xqucwTRu`33c&5qthgn{(GVJzP|DT9?9>Z^SuPQO(`x`KmcXvM=lTJKF zR`}2y{m7N~p}G1om&bhl$fe(*ef48s9{cOZ{))R?MO6k4G}xz>r;WW#^x&ECi>stH?#1bG2#OCEn#L;`j2t?S6yt8n zX!t5F=QpmVBCEJ*xqC&8?5=!<^05Kh5Bqme)_wj5^ijyFtJBI~4n|(e2-bhcP-f=6ubAgP!F<`)+k(QtqLW^`neG!Ggx32>H%}1bBb> z%QA$DK!@d1_@-dwyF}qZT5O{zT$0Y;5)YztT&55OtAm~>lS#bb-xNnmzEsBiEk4-w zArWTz53?}m>So-pP{)+#zgTP^RpV47+FYymCNs2q3i$PKI%6PBUQVa+x~Z?_HA6W zPiaEUFN-3R_54!EICPZl6otp6w-?!C&S@_yI6Wj%{AGH*U(+!*S}|Z+_$J#hA^0hp zIu&~Z7BOWeIdl|L$;?yIrBktdibBuWe#K%g|Ez#dQ}{=XN9?yw!rv47yE%HM{hhkk zQJqd*vWOD#Drtfxp^~z%6nZLq{KbE(yUz5x> zE}P*AjdptW($PM@5DZVmQ6!8)XGunId|ziRw~hgMU#xxPQFM?VPn|_6>2Qdp4BBlv zkmq~Z5&)D$>b1@Sc?5Tr-@X36`(vY@IU=4{Ff=7Ut(4B4$S&zlGFp|m;HbMolm|kZc%8rj=-IBt(R8sT?0Yc)SXs+#+2O8N=+O3h zDJ(d?nS4mHgyvYJWg?}~pST0#xg(Z-(TolNV#N+5Ma=>Mm+#n#%%$Fcttt4NQ z4!UC3JC{R9LY=j67f9A$6iHN^hE^y0X+@Gsi3HgD2rLkpoI|)JWTwtZ2Ss8jaew{{ ze^&+gSD{x`u83N!Zj*D@jpwmo$jVd2zS69OibEj@^%YyyNIzp8H=jqcyDs@B)FNME z{Pv9$4uB1pI)~&@g^r;YV}1N!`0jx>FxHv?7bb=<$xrluvBceS*6$`Z1R z0)7VRAN(X;bn?JBQC;yBv{Vs;1?wa{_*2#&WzaL6TLlQ%3|Cm9C_hxgIZeZgU;P!Y zH!+`}KHMplFHn`Z?qBQt?$8m{n=c9NzV(#;@j1|e-QoV4#aE|eDejLwn3Y%$mXCrT z*fEM-;FGpP;QysqlV~Ke=ZfOO>xKU#7u}7_I$x_&q+NUu?-useAHFId2FM59wsDMB zzYd^;{gw~3n*1&6D-u0%?85T|hTMxDd@*1k67I;}49Nf)E!&z_zO3Ylvi?t$UPs!% zM@#d|CU*O7>6K*@yQh&GM>n=u91_}#kpU+O->!@2#~gK`FPT`g^!77qbsr(LNkau_ zKgr%~98;P4oTC4O{?c0HjoaL=jXx|SMPrM;qB&5YDS4I7rHt3;sw-5tB%fTahkSBE zE@wB%=Y;(V>I>5u8oFI4LwCJ^x0{T0WE;GYXKju_sE~W-xs9PHJ z8rz?z`-42)9~8QApH*uuS-+#{{;D075oU+Wd~weEpwpM;Y#}2dsKuFX8SfMqI`8p8 zWB&;}(DJ6xL(vUFy-6uWzJT#@l7h~uBPSHIrr?l}HAQz4M?*H|ArB_9ur<=PDL1Lq zWBYh?Q;(G&=UHVv6TeLH0-e()At_(+>|ebp<7WR-@&DXxRt-V!yI}2_5sOzPE?`w1 zP#MSbL0^XB#lO;bH?RkW$yXkx5SQAOpH=Vd`z^dmH2A8Oy4vOr=#@hq%v5&Jej-P) zRQ*svv8%oc4^+{&-se53(vFUA7qaMOYZ)APtBg;2mSz){uIslnQlG3HOdVT>%~!ru z6&>h&`7wES&6&juLHRc9PAU*>PY90=tw*C**EqS-nXYAKFvsKD+3l-N%fLXZU8m{v zRSO_gJrQ{MkB*(EI1w<4^W|1|zBD5=e87J__AP9aAM? z0O*oWs*n0#;;>5`0A6&Q()=)pcXTsfU_mRhAj`DKbeBxu)vjZfhXXW;Y0e~nM(zrZJGH%Nv8vM-aZ z6;A;8hcVuLG92{JZ}I408PerOZafjxo1#BrM-=Rt=KMKz544EzN!q> zCZEl+EolMY;_3h_m>18eyfbvZE|I9O!gwjIMd(hQp_c7wRAH5v`^B^99jy9OVwc73 zHv7xYPj79{*-4y}~P zOWYKtA{4FG>`%}N+mE0zKNjD*Wq-ooNaR0DhVEYvy;!jto?RR!n=3ke%Z&*4_(q9K z_)=f-z`qw9aN)BzN^aLaDg_1UOW3z-bsogXOAt*a5NtYkS5#n}auX~Af2#P?jPJg7 zaDGBa@=O<;FHho}QZHfSg7$?1QGrf?O_A5pRe3@a)KcWeAJD{mqG_C~-$v^|(_YNi z_3S4eU&XBa0tKo}{#pDq|HSp{?bLOCxKH~jDe%oPssZ9fD#+sA(o!y^M?2L-ZdKM~ z4}c`68Y=54M6XsSb;h;&GKS6kU`P7=Z)DjD{ljo?$2{6{dq|szqj`U z`Gv-T7lDp%35EwcgC7#Tjs11?_T5r!)*q63dl)Z-=gN6kM4UpUxCz5d0{Sw*f)e|@ z)%lH!@K4oO^6aU~ajbSpkzd~<@L^k7=2Ml@jtCkhk0@}utTMkH&hxtL2#i^S#mDMCJr=J{w z&-TPl$XwUh=L{Yp{ie%KKb~6Vpl?=4mm*nxpt`dBd!1m%l$V zD|^zfmUrU%UF0K~-%S~D2r`E7lrIN`T+E-BIxpPABS_~0LN-CPR0^|yjv-;NWRm?A zL`UVW-0myqyolyt2_`A>G4`mIlg}w(YSO}yt$siY#q2dwl=X*P#zwLYA_W3aWEnh0Pe+X%he2IXF;%LF3gqCGHnl9#_0134|WhFJBcB$V;qCr!&HRxlX;L zoh0iWm!Zsd^6xxGT&p{1gT*@GBze@IJ~xC<>Se{1yp#aJ_d+L$IEjyhMDEsER_v&- z@S10}=-n(uX`j^|#kOL+hy?BY@|*hmB?`Xyh|<0)!U8$pN5xw!f6wg#%K61S&Zq8k zULGv8Fnu$Zwp^F=M+n#^z#>_L4#9tqQfsjoJt}DayLOLaU8m$;Eexj)F)#=L@s(19 zAQhe@jsxD_gK>WD0`L9Zu;?FC%il!#WPS+pMetiOr&;+RkFI=a$r4a;$qLhe69HUo zT&n)Ayq8L96-{*{UiyA1{h*Y-PWV1yuif~!$^4j#r6&f7oq!&In@LvV{4UVmS!d-v z4QpC(`n(KrQkOcT4hoa9po*p+7uUg}r$u{=SDdamH`lo<`6J&cO8)5U3`+j!?_8h! zQRrNm{1J36;)fCzxNCsY@=C*X^pu=-CRCAp4SbtK=ZmIxbg)R`d!?Np!y@TN`OJtE z=RNIimT*#rGmVL5UcGL&DIns#5nQONsX?4d6E*NpP+bCgITx$A4ElvZA_iOo%9q z>+D7P6kFnbyx!^~oYchgL)ASjUs1am?d)DOo+09YVmo*KR$}-*Mhi;q!Gn)eA)ZEJ zm1_CLynI4ihyr*sDB>`Y*#sku(G+x>yeCCnsB>#t#eRocBkdzZL&E~#~+>OROw&n$6AVr>1>=Uj#QH~uT?2U=b3ZW z3}qsj6jEi&)yvmw_%j8*$@5}?uMnXT5Ok)}M9a?;_DH*IS&vA0@f=0Q3h{>qX*k7k zI8;r7as~m!-4iOKpc;j~kPHer&ydGUwCPTK^i;BmJP7kGQ}1OcFa8?Zf?+O{V*S-H z^IFLM{v%q2{lYDaB2ln=yRa+HfL-jue#$Lh=$8L@n8rmiv!~+H$1OjY_hPj74iRlj z0CS}!cPdT;56P}^r;Ex36xC3rLf8d-ibVyf=<O6PGP=9uficDC^v)Y;w`(s+7_XB3Is7aVNMop)oNvO$Qei3; zlpc^B1}CK6mOL$kh0viRlF&hs4-JrpfR>v z(CJ~xZ4IP;bP&UY$xam>{F}E_;jD2KR&pu){s`~13>WV}Xx>V(2bI6j<*$|UB4=I8 z_n~}jqB1yTd_Fb;hKUbKAbq{st>onk z+U+<;w@29tx_&FVu{mH%R~EaWKaswlCd0D61?#h5BIQ1py4kapJ|pPTfw>3#TH<{f6` z5)HMEZ%WD_#TkH|KTGMss`Lf{tmamU#sO?60DoVKN(ST^vKQzKUoH+>6GxBgVm~iP zOG{ZFQ6m`NFT6s^DREJIg|_TtPx@k)@=EC1mc`4}$1bP$DeySm@bzm4rX~3QQ_f2t z-|hQ1&R>5-sY<%(9+XbVlkgu`EtF&EYg zUr0yoAK`IF_=ODqd>noulRpQ-FJ$v)L->W>{BgoB4qZ@o{!lPG)hc?pEqVS|GzSUf!_bn%oz;Z%4g(tl)L2|Jyb0sSJ$3EgaoeEFd z;afxTdErUKGwlpda!en0_Fv4KPbkvxq`jtZmHNIQJn4XGcZ4S$F?~3pC3%&qbUUTh z_vztD=%hY*lyM8pkg%Tb2kZj@jMnxrJ_tlIuaTgY6;iEmm+Y`x+5K@FPkJkE3quuz>UQY|;C_QW$t-LeZqN}||6M5O9wV4t$ zmry;C**RbN!K}lkaTx3uQCz^xlvW_m`}~J$liu2}~ zo|8oJy2b+C4Fu^m35!MtJRkBrB+}<<6o46Bkp-M+o!5*m@uH(x-r$rm>H(y`Hs%<^wh2&_0^@NqQJZnr(yS>I}vI&Ua=&7T8rDs!gsnOjIExi?Wn80b2q zbx5SV=L5rfJ%=z8ReH7P1gKnZG1zZMt9t}s8hK^ZnVwS?`FNwtvy3&CXNBe2ZG|6U zXg7OKdTQ+^8A0QCK*Vt;GT6lM3R-VR*Z7Qf@;M2VImQ++W6;#E`68&%9@5fGC7Z{i zYZ$k!Hgb0ySyVbIvM6WK^ed4Lf-ToZ>w6H3M#LIrVjTB;V0l)V_F7O1z>@~Nz08Va z65tyBwuXjbapO2fbh>2_7qmE!DBg8IAQ$!{h^fXTU>^*4b`i?LJ}Dz#soG{lw}K2z zYxR31Z-%5GmSQa;u||hY95)i~K1ry{dLjtML=iSbW)Ju-`U|#^mS)4BMiZI<;v-<2 ziK6E@K@`2q5Dheu=qC6_GB2DU8o1y?{+Is$S5 z<9!rXfK1G!32uV$V1hQ7C*dq2vu`UFB;7Si{wGX3U^?MS*vX^;Ilh9M6W|8hwFq=n2KXiqC zR3uC>9OYovelN_o12(?eLgeJD&(ueo|@+={auMZ6b1&0SPx9%^Vh)=^cPlQp%EnHaab7vjsgM1Y1fI+f9!c z!|5mq#sCyVE>Kx(Ji!Kk# zjm>CrXeQAoQTp~SrOdHK0Rs0whsLsro4(CxR#lWPpA7-Upb$c-6N9h&BqZCnzu(p%J%Sm`ZB1K2MTo?p$w9J>v^ zQ>FyTI4F+Rah4&yZB!sGJMmFl;WXSV%im)8+hk#LTwbGB$gl)K@Ez?vQ1}+t$0Pa< z*2CBGEC-=^DAOBAcn0s|Bp9ctK_Y>J!j||_-s8~IUnf?@AG3@OV=Lchn;tAD`Ij~b zt%UYu;ZeUA`$447fwvEKi4Nw*gp$ zq#gyo2Fgu04Ww~DgajGwg&~-Y#zD<~NQy{DRQeNS*eX^8jqwjSI?NS3tHsCA17JqiLJOgU(4O~epyY@6$i%>vuV z^ozbb?{`~3j&J^L-faN#pD?|m8|GQYF4M!86L^c30eN;9tNqQMhCrnEO$?5_g5IPX zih2XyM#Px@z?Pi3(*n%E5@sAoGf1<5kSqWV;{YC&eF#Ccqj+U2amHZL<>HaqYbDbH zGP6arvcD03Y&L?Md3e+ve>S~hapqIaG8_*VgX?j5JuRY!D?M;B-m73NLSS?&VFvOI`LExy1ShPW2=Fi99AC3-UvCM3r(?NxTYBojfr>wV&;oe-VW zY}8}2uG#aeHy*~DHodE`8gtNMbCGG&|AFP*FMLH#5F|Gyer%^`TGMmT^wirOxP2(h zYkLLkopzga1$TvM2DXAZ$8xPY$Q^|qMY*E`6Uth=Ic2YAnIi7WX+sq&4WoZHC_hK+ zeXBShI2D+bNcpX+hYntfyXRF(N7M#RtmQ}OmFI!6Jz$|?YViJnito4-v|uE!6}jO; zG`f8l*;pwG%h-ipn<1=d`A_f*pJ=1KS=>69@U+sE@X8uvqkTf5CBxi^>QgGO&GkR3 zBQpp80!4@utrQP~<6mRr0JoxVylpU2rSTz(ftsH8X?eObtevI@B_SpbAC4he!?3Cb z=lC6z9C}5#QqwibU#m<@LK>A<`IiDBj8zTdQRg6s>#P9@yk|bfg6r@lFeL%MA=D>PKInVax@#h zXM%o6Y&8CanlNczW8nguiMNbm(MEaa7wA5vwWo4G>St>|wLEN}}+zf)Z z;Q6t83Cn3mRp~xcIao}Aeah{cfd{BDW8%m=jhT2_GFP{o#r`f58zSb{0n1C4q6m>g zg`(DdsL}&;({mK9JU8H}!|xNz0cmheI?&I|;+5s2Uno5owvO4)0jxeUR-Fk`TE-5K zV=q;9PFO`$pXg6?jmv^tlq%F?TTS|*bAEvK6JHiNWYRT8Ci%^%KFfQ^?!fYH!j~86 zU@61146P^FpmTBWnC~vJH-T!k73uAW8mDFbrEp~Ul zjG%advoO5T9-v4x`UBzvLa=ohLwK+aC#rXE)F4(3p&`Kg0g7UU#bRJO0W-&owqBza zWN^Dpk1S0w2BRQyrTH#iVUw2T__}+WgLKV zTi`WeYP62xMqxiJt>{5C^DWBWvSuYBEIfy;Jft<@5|L3^RAOp^=e`z~h4r0vLQs4& zJS#FZird#Lf-I~j*~%^%jWWdH!=(&(o54?#HHt~!7Vu-_I=TSu zxKXBk2^SEDktHekjOhJ>FJD+Fyy$mmMcSnk0WaPd*lr7u-in_JZ6*oQG8+1bP*$l% z(>R6`cy53xm(qtAZa7;l1*|kZ;yf;bE5-6{Q3xt6c?NSLufm*o96fLfiHd!|wKR&j z&{_st^vN6p3M|OH1LbJLno%-kVhm9sV##7MRf$^uwaWKr#(4l&FyN6TZpI(+Ha2+< zdsZ;h7d3g@Q%hEhwcaM-N@{ zny~oFarIY^umDS(X&MyAVV+Wg(?u_fD9*Q!>rSi`s>z(#Xs{28_f>CsqacXD%(5c$ z2Qxo@Mch*xtGrai*$>?|D4UG9IRVdJ)C^)NT!vdMx=(B}@>tAF&QoKzrz%11-HQ@D z1yL23&4{D)cHBE_6g8+&LJ8KudMvvrpAaJ;$wngOgP8P+GPk_z;4gT}kC3gx?L+x_ zW!8n?SM5az8QMb@64@Z?Pb)u*xru)liV=;BKC!QrEJ`>+hNe2^5el8H_qE584 zND>-aBZq0k0TEiM+2cB9mXSpRneBc)THgc1%XHRX!zv)t4VlHE#cI4TkoSWy8m#!`4pyMwbd&oc$CXWdeK!mc736YZNx z-M1l0WPy))?jY>PT<}FUy{+tLpn>o|JV!<2`N>`@YYu`L>uQ?<9)uOl5o#8?#L(^( z=>%aBx!Ib}pohmX*4j%+n z?3z@Li>f7qxY?bfc}}T{H5$E{u6r+X&>+l)_l(jN9S3`{WyPRoGS59M1Q2V(0y}QA zpW&?bdS&ZprHt`O;~;!CU723twnNO-y4x)XH9@W6Ja#nvJ0yeVNxZ4cWu{xJmbhi6 zyB&v_>4uowSu*9=rkrDYz4D-V0V-(g$b$2j;O^lDDt_lWhEdjLB{Przka5uR9#&$$ zNSMs>*D7xmtBPQ@!OJXRkWE=kD{GU?Jla^cSdR}q!}P3z*9^yEv|%!>Y=y~K;ZsvL zr7cz}tTer5vlt+rou*fv0cWdCByTIKe*yC{7S}Ife!E)D(^y`IvsiLOORy=*Vz0N( zZU+UUf#p8g$U2~A;ON54Y_@%rhlko5M(8UF$JZ zDYIOAIbvFq8Ch_VtnrCoEWFX|U9LbL!WyaH!fAe7dDyza@~X{L=C|y+LcAjZ4_i^J z7sv~Kp*dg@7h6?9qF;jW_CHY0ya0!CYa1wlWlLMcEWK#0XIS&?lfaqP{qZf7dtnosO#H5y;ucja<%Wc;Z<(y8fADw?e5`YD(W^?R+ND}l%@!$O){!^>H48K#Tt z#+=P)HY@@lk)K%XxA$8qxmuFn_L1=+Lo3jiL_e0euO)>tBDzuQ3l827maiK>W~i&x znmt-k++r;Q;O^KQNCs#f6@O|!sm^o^i>?Bi9Nt!6fNC7g1cx5oX+o&%PCrQdfO-#{ zmP?{s#{+Dd@~AuHNxjUuWD}{Huc*DBa&*XM{84$=<B`TsDkC1{)P#3qr z(sP!Kis$C2xp;1#eZHV2gb0FS8~sB+uz=XZ@b9uG2_{Zj>-mruigj+>7`+rTbMu^P z>kTfGDx~y)oY+|0@E@0e@~&QOv!d@0_WFp+0ao`9p&SmV97Mllhm_#F$`L4ZC!LOZ zlhz^nF;@a~1V--TA?IDCk%BS>LD!ELG}G5A^r52PZz}pRCl>2ZG4@dLE2yftZbNy+ zDh~Bq70TIw{`67%{iYU*)u6uIo$JgTj=Ur>ZBdlF{Cbnl`PHgxDMX`@@wrDk{SyV( zRiN?IC^zT4r?s_(Bun@G5SzI^y$<%!m2O)raxgJzu_7*n&BShDdbJJAkM|n9g9=uc zabgoz-uWkp4N92=imVQd{<<;(RNx=W7$b*GfGY|sVSs{=J)FEytkVpe(WZ)=Wti3U zfO~?s8<}riblL+q+fZ>rYGe#$a^|BVmOgx`mgTabW>*@dw_rqEgrnf%9#&K?&h-Ji z6O=nx8l({C5_UA5^Ne#@&*{Kx zk9Af;oL{^pXCO)g4|^N9uoWZbxUM%H6MyP(se;_rEtNo*VuN%64N78@4amZZ zoOeYAT|a@z@}s=ps)~M}loxNxK_Danj=~buz2#Pf1z>FCpaff@D2uS)M-n*DJh0%< zh{D)&B(uG2ZxQEOts|m2M7gjlG{WW zEe%mWV{yjxu>Wy2_(M6I13?jK@?%j)@g=-bEs;#xdp2NN`W0^pt3zwg_KV{U z|9^@P+H;b1hfg~vdLRT9!J{gE`Tx!Mpa-mMBbvY{sO-+K4|iNS>~GmKjRIr zJpcbZKB#phNgT)^Jo{3`8~z{hK)(h%emqb=-f*z)W>OVBOa5tCL;Ep@<<3n|gF1LpNBeo4&XoyN)}#-)u#?4o$Om=0JXUy&F61#yT^ z!&r4EafnBfZ0WB_(EYDCnJw?i<-m(WtPpP(%-JFS@Yf_0!5|%fxJBjC{!dt!`k}e#@zNKN9zU~3-I6X% zzv5@Gat&SueP0L$7HsRtS+CESYK)dQn_YhIITy^2oEQDT`eLjzy?a}4oD;*<8>1g! z+8oaL%H+7T5vJf_ne%>%zq$P3a9yH=b+UMK)mAwk^ugA*c*Q)$Q8qX3ZY|A|T|N8l z;?uHQf^+AG@)iUeUL|#m{6~Zz z8)`#7C(*YnqnmJ6Fsq-FC!7stbEWCg(RU7sTmV_%>`%N6OB~I`tIb{bRY4vn`pGyN zeIdj5seOgKNU3?VL&_~-ko;2e{E|4=HJfv7b%IJjU8_x95BzmI&q4YxwvI&`fkTZw z&pH7;_%NqP#u?8$e~9AM$&cIlUu5C~&u-ArRUE5fQ?Oofu`Gr*Tg1E)the#&IbqTI zM(ax zj;Q!If91Tk?^f^1(whMIdaNQCuJ5VP;N=y#YSuMmvpJ}bMd)RITi<%F$vapmk-T5)SlcBAs$ zBzpcQX>0jHAyuTc0@4y?-6i0Kak=bNM&D6vgy=T2Y8g=nJX}pv5&5^k(|mWm)1D0m z;$e9m;td)80ln}K9mCZ>n9!v*a+_Rn_ArtAw-M?|oC}YfW?IBi)u_W;YSW^bDw zte?SFBCH=pElc>e){o0oD_DOnxjYx)f&7)p^=eg;ZXUcZV=!Caa5a8y+k@}6m?Is> zpVikk(qcx#(O7l#9v>?_1uK^?*b0tTn7G%S;!-z>LHqHoyz~!9x4vJ3yw*!xViPSt z*RY?1Ja8ULJWlc)<}~FH5#3l8oV(P`Z&}{bnsJI@alG|!`pG=`wAKi@^CQE|7u)>> z6M=HShTv_K036Jk%{58OB@Ps2?)%L5Z4;}aYuU`b_@8*+O+1qnFJTTCCCSu4y2&>b z4=Zy$4;=#=tH0V`&y(#B=xvhy0qZ-<{-Dfwepn_~#SeMtu^qizg$@qV_W}U1=H*J6 ze98wsSic{I&E9q_ZfPH=gswJ0BPGs+61M!LD$XrvI0<2t5qRz4=V}+IBcN4g=6bi@ z_fiopbvfXL(V6C%FE%qR?1HWrab$Z^u+^P2*k*Iso?6_&`bYg-@eJ_=eEu|>|LNuO zZ?ySzuKYs86>-h`hgi;VrP6TOgEMb7cRyh#;%qY%_&sm2ll*>dqjtVtO{iGSP=JLk zf0@Tb3`+0cKy5=bWHMvz;Ki%OK45`R={j=+NEM9RE#Yo9o9y2<^A&$Za<{5gVjj49 z$=B2Er+je;_0$$QSD~KH@c2mRNq?pyl_v6|KI}Htn=#wC6Ca7(V)+_*&5_~_>&(BX zBR~$ILjce7H<7eI5sB#-l8d0fRz|%PZVv9}E=o38u91c>q3{}+{z*W2t)RRrG@&Y9 zvSHu|LfZKP-*|lfs-hc{1?l?Xx+MeyBWh&bPhBF15qbqD(l5+0%m_e#qEIaGc5{UL zUJ;I$UmB>4S987B$M3I~?y-2IT)fctl_#VUd>;<1(4F-df4e8u3*RB-b>` zJuUfOW3K+Z+1N>cUM9YVO;KK{l>)HF>PKYsk?^-;56%YFkE#&b^^V9Mi@JBI4EcZ?Lu*MAR%#3(=? z?9M@EF4crsyBe!ms62jA)E5{a{;#;b6zA%^BQjv>Tm3=#^kj>$MUl2xkr@)!v zt^pWH-;Okn;=90hxDS#&A@-o>ssZ007auYNYBwEEUEda3nmfn>eN}l^=iCO3_xA}z zV$vKsX2jjh$&^4h&@HO~{Jt$R5h8&?X5^XexhxZC&{Rlriw$d1@HqtgcmK`aI`e!4 z)!4QDo1S%v^Obms5^)7=YIKQ@keE1yMDKjSLW4@v^zYA?oIUAwBePWye5NzglSc!A z_}I<-?53Z!TXUx5&ta|P1fS_hI^S1)GrTaeL9?{vWNp<;v;l2iQ}=ntu>2Tj1h20U zuZ`#S4=*qs_*)hpvAC;3H5?+oJ$O`C#FE99k@r=>x}Q1*>znCIjAJCIpC?)q-?)XM zHtvL-Po_H0PNlqbag2<7*dt(mMR{g?*7d5wWOsuYtfWUF`0YBAV+%~ZNNDfK_*^ox zkr%$bG9KwfJed=ilrzX>Ptd+lx@Ow&aP`|{5l}tR*A(jS8 z`u!`2xAb`YyI+!)CA4bxVH8b{`U_muKif5w-!#ZopRMXgsXuW{@gyo3OCe0C|8Q{tg^f z2?#YaEzFB)Blt{UcxBD&P4_qqOnHciFABhAjz8Ncfna?bnU&ng6g1uMijAe1xvsyz z7=!hFXxqZdO9m3ar{t@Y&E0UbdO6dV^ActS@qty3ixhNHPf#G#7}V}T;R^-rEW$2E3qZ(&p?gb4lO zQyv>?es!Wp^-ezWN|)Hu(^k0Vk4!h;(qw~n z#7hqQCrBJDBz8S3jYP2-w_wU_TO>nHVDpqgfu~3dfMh@rZb}(DXh{ z?~w(0e()ez?|e`i>)(<-h7$dnR=N_6l+c;u;{)xQb0qk>Z5YiGZzF*FI8k!rtcZUR z`d?U{=wsR9U+7u13(=h+D(%3OXiy9m5$8n6PNx@zjJ2^AOzAWy(x`bDbePpwdyBc(p!UAaE4uYtmcnhYTE;(K0<2p)|7sO15EL1!6A9jhHZ20`ShN+ z&=LT$1JRQpk2;DKZ-5AD1}00ypV=Ka-&n?B_n4mcSf&y7JHZk_KbDBfoJX0`CD$#} zpbAYn!6ZE9Hm5!qwiRZ(W39qI?%H6q4?jpQw9A{?pNY3}eE0Wi zFa9i|or2G5FPkS^M}J~7LsfUc9Mz}&ns)7XvF!)zAEd0`$0*mwn>I>juzre~shd^+ z$}e$0h5d8+=`Vod`~3xwH!-~cbk*f8088vF0K#b!O2n-P0%)?Z$FY(}5$kb7q|hh( zPwx{^x0-H6Y06&sNBBVnNXKCd(2@<)m8;< zY4xok_KiLAk4*_TsPmyHAM4NG>tp@q(|oK)-f$0K@myQaQH8;t9mN9*EfcMT+f{O} z44-jGZ^vscqcQW>U!^gAHH%IAdy3aoQ9_ujv4wb4Nz6n~tcauKo9REG72p^AY>Byo z5Bq3DYRths%8T;cfC(vQwQFKE`%pj8!>#MkDPy9|3c>iER>~Xxt313hz>_M-n^n<`q;Z`mJYy=;H9jfwRL&RrO;8(tKUqI6-f!5%zy0u|j@ zot7j%D~Y~I>>BB-@(jUf2#_V+e8YT(6RcMRIF~gAm71Sb$x~FpddsZYXk4s9s|{&( zWw*WWl@+E$d}E?Lc&z6|8l$z%W}*v&XX-R2-hE+=e$XNBb=X=;S{}D4vW&4Li9h?6nxyY7>|5~2GxoO+6y_Tlot)P zKg5gPWY91o>8;&9PpBr{m^@3m7`pa*g)ibB1S%L4U1n8?QRT+ZC@QlNw_8lIe?DMpgI9Rl9 z&j(f1;6ZuUcnS#nc9qT7%5YEOI{7hG#H+YT&8@bL*9uon*9$H2l8tx3$0Z_~SI7C+ zF2VZ$P|(UR-rYj8x$#TQR-|iHv?h=^m27xOQ_QvTZ`z=Lb1E$)rr181`q2g9(yt?3 znn&CHHyoW(uqZ=+YFDn-=D+CM#U*RlG<95TKPez)3|LvZGbCOC!FRERCye9&WPJq=Xx#6CTD3cf4wLE%puL>~PHB`DR zc;g=hdo|Al6fFl5@0E#YN1wto^c6oh?Dc-Q_qS^pNsVDEya;EnG>X_eLAYtj>6II2s_yXCR{D%fdfKPtre zalR0)FV71Ps|iHHq4+4c+W5TZKrwuu7tZJBB=HAiRW~$*8+v3Oa7U0^B zmGR-MwO^MmtLYxy)ip%`;YD)>e2X?QkXN@p$M5&m(E7Gm$9T9c`JVP|-3LQ{DlE7q zxFehDJgrqJRd1{d-DsnFSko0dfer4J$mN_OQRSD}z4T8uKdeKZ=a{~S)^(UjnW|@+fKNOp4>HxHB>yhB z;FgElV#AJ%91igAR<>?IPBP!N!vy7oheh7s61j)xeM?`hA)F(xwLm{@_MIUv6r%qZ z#wP&H%fh-QoMm#+C#jE z34tt&UxB2Up_-nVH0AIO700JAn^5x9qkW26IR^`ZcQfrV1WzBRR`))=MTM4dUk%4{ zUykmHK5mEmE5RSG-m_svO|H%v{?&v!Vr%(V>H4;2F~NXGKWhJQzfjXuG0J$!h}&RR zEA$?i^lbLNI9}49#KemvTKH+ZR?UoWD&}A9E%B1hlo4zfHiX6?Oboov_ttIY8X}(?waNTLWn#%MeUh=@L9)p}@TXyHJ zW5U(rSyeUEYqr?@USolies9t ze=nZA9hE)%1IND9wfio2FV^a%X)G<9x9n?P?n+uVGaEy}%R6h#{5{?dy0W@6gDye^ z?*?7r51M9RAnp#IYbWN7ZSJL9L4FSZgo9Ph8viZ901tM<`E}e0m^l^=cE1hQzeox) zZ}IAeO*48+z3SkX7>r7w^rPvwSH>pf*)X5EYg8S@*$0~awc(BxdC1DAHX}6n$8nk@sbzGpn{&yaa=Bo)4L6@o(wv)T-z?1q~afkBwOtHeTzIRtOrSr^#5<=V(7>EA~$D>G-bU^#0w&R$~9& zV&5~fOhI%#mx6JjAI;}0y#p1jc@B@gaLRO0Z2>j#H zr)+r8>W29<_Dmk^-{-Ww!&0*(uyT5DR5$G1cHXuBLKiD%v`z%`&|cyj_}Uz3kJXUo zcWS?5tji+D3%L*FyAM0*o~1`l-`z2zO)#UceSWYrel(Es2T^{1zkIaU*ZS#;w640N z*PYhqEgidVyuGu}xN!B6a9JK-o3W?2%lYro_;82=yZ!LtqhNV%E1bA!PNQ}lH>lD1 zy3c@93CCvlzCR+E*94=TemIUxeHaK$l?6<)$F9<+-ZDS<%=~DlHR(JDuj)gAPcuV2 zhqRDvli)@VlIb1m{ck>PhcIuR9HmL(Jr@9gTMLu<_0k~06Yt*gC&=OKKkB^~uW#3W zVp!+Q=|KN?1Xm=9-VDm|Ej~^iE~cD@$6QYxs5Tt!Q~?A&?8QFpne^q!E5nOqgK-oW z%1yr(RAOiht6ESE2)i{x>HNW2`R+0CbbeV@emL{HX__5QN$DJR$2%*$-7&p>LgTGv1lxr!A}zJV z_6yD%X5Q|!S*p*5=c!*Fd}d%p{f1z}zS@8FtWjhNe+CC4lle0=5cwT{$^s}a>!yVR z5llQvdWmDkN1R&;!AM!ori)k4tMPGdHr81Szr2)1 zk2@!X8Xt4DE>x`uzuVP%F}oH+sfr(P8imX1k#~<~9oPYzjky|M%9#i5-f^(rdWntb7Y2um5sI+3>BMhwhcc9j(ijEIwxb;N??vwB(UjDM zpq6L~abzqbgR9VBnRtlIo)GRva2+d!51T=oDJhjOh4!M;y%g1W{((;B(F+t0dYgF` z&P&p+?oH2Hx|KXKG4T>RXcj*nZo%X5WC@U9LO1|m@2cY@TS6E->T-$17EHHe* zPary6@E;5OOw2K{PKA8(Yd8bgM>+GQhKP;G5ri036^{_ic0a8odFwG0c~M2`7Spd2 z(x9@B=nDomG@hoi-;!ikw29BOh|es)j?AXt@z1} z+=+y6Ei@y3?2n(!o(xJW${`^>Vmtu;94^KKH$$zAbs9)1ejUw-`fEh5Y01S#bW>#p z{h_AY4Z4ctPAa0X;psv9>*Oal?lJ&x3h^5{)N*m-zNL1Dad)N_H||t1#+{>aPg3d3 zad%hhH~(PVQyF(Azq9mmy}bpL!9GN?UgAJXza|pOEblnZh(jtE$DAV>TWmxzzr)R) z_TZ2HGuFO4{Vm!S^Yhk+_P6M_vVx0^SXWLf9}M#zs-;Fitn~G?e8k(QHjMhlEsx= zqw$zYhpRl70Rn-2IYa+q^A8&G-}9gSFZnF~{VkI3ITXgD^UviDjF~s+{Bv~H`N#Ix z<$u6){m=Ku_PuK0`V4uF@nHh-^q{N}WX=cq4Zr@G{KRTC?>en&PFD7Gulfe4*}W~xjFkm9C3Zs&`{Y|D5`s*2|Xzj zAE%?gl=U|+Am+hz7d%A<^S!?ldjFzwJ28r_1@D2T1044IM$xa9@!MSV8|hbdO&EEp zJUZB2m6he272E($|3 z*5{$Fx5reR65C;cYSZ0GgeieeaQfAi+{SPpKRI76;)UVTZ}6(h55-SvD+~U)8Eq|p zmX_sh=KVTGT(>nh_{aPCfy-s_3W599SDY9~_w%RK+f4)uK?J zGioVomJ(OyMb}GPo>xBL+p3)H=Be?z9=bU1xcGG=0<}kTY4EKZUCpkc+G&CPgY^gS zZSH^$2^Ke|di!zl@)2#dLw5<*%N`pvMDClp#LZ|6@6ww;YZjT41J!DBmVKI%7604o zbr0NZ>XA_^*_sLwO#?bV+Vl25p1^iZP?<=pcL&*Yt%eXU8AwHQylRnO(4ZNv)ikgnI zy_B5)$6#P&eE8sSHSbx#IOQIux<6^X(MSJ~Rh$;%Y}t!LEmtGQ!O(JeLm{W0VrK~y zlyt+pM!fr*;BXz9(3@!_{ZVm`B_uHhiVYrJnt&iVj+7ulB2=LsklW%a=39;Lbs=={x+U=enjt zr7e;BeHhO{H-q7WwNhMSMmoqMOYE|PVYtyMw|ccXIpNCQE;fn&av#7GJId4qq z_L_AR?8cEKKIBwP&CUIfS#F1ooW<+OnEdv#^Hf>4ByVYlt}L4|rC&vUUl|+2;uy(l z#hC4t$j8BFip%OZ)$Esi--nMCSvKo1m(Fvw(S_l78SDR=4rR65yVk5-+QBY%N>#;2 zcAPa5WA5T`bc-5!+rIy|uw9QevzLx;+r`=QNewOZ4!~vAd{@cU?Cs&wl{J-NER@-A z@S`ZjkR;f!is{j1cF#u{lO@o)#o-JB)MWy9+Uv~YOpz9F7fW!-TP*tFGi}NFshLPV zEh#$VcnQ-TN2jW`E^9LA{iYYsO=0`AL#EUv-lG{@dz8@14NuvU>T=PJ1~ZvzH$S zv6ktT9@Vkw>#eFu>M=epry@Qrr*!#@+p){yg6a$N!a8>w{{j%W*V9-idF@}!6NbldYvW5Lh7wgTT@jInW!Pq?a@j$#z8q?uJ7cUR~0vZHd{_mN=g2^x@Mo)V+Mj$Tcj#nT@i>bWaF92w)a7FMR>q+0a_I=S|UIlp8&@F)Unxi zun;^gAJ62P^-V=0iFnDOGuY-&)ZV~z%}vr~khqr;hr2{~yLKZ0n$wezZ~TC5(}RIJ zLr9mUQ!lsr>1kknlc^$CHv}lS$HWG`k9)p-`1lrTqA6W5eIIWfVp!EuRoeFZv#Uy5 zr=0GoMv<6oE1|lta!dzWY8nbC;7wcCe_+M9m$cQ)RVnl27uu?IebL$^r#2~RCIM4Q ztDl%jg*iuBPIQI>V?_dS+n87m2f} zvS^&S=s^4%7MZ$Vt#_AtrHdlFM3?*LD3jdJW`DN-daT(>7flS_vM{+c8Xsn-z{90@zDevWdm5aVB(=W;LIUO(It`r~ zIt?e4d9vxj0C{?WnRB%E^kXO&(SxPHIsIcv(Gv>T<73z4nG=jYr*qh0Q#Myn+%vmv zkknbnU~>}N?B*P>7Xw#vIUqB@gE&>dGHwy{{{z_JI|BQc!u4%uoeijuB*tc}_lkUw zB1ndc9gVdJu8RJa8Hr8JH$|`pu>p;x%sjJ}FC+=64S-~7FJ&QrPlqwuCdy-zfz?eN z@Y>4P<|X%?({3F5VT?y#Wxrq?k$rYR`dh4=(}nU!)Dw_REin81#wS6C^D;*}odvHB zg+ly^q=EbuVhBQfx_0XbkFe~JPedHid<^CAbuZ&oxuNBylk=wKmPa#(7xoIuVs|vt zrJiW@(LX71^JA`8)IM2vD)Aw?eM%Jk|o?cZtxU#Ae6LhN8s(Rqw)T(ND7^y$h z_?-ZVcYpnAv{~{<;+4Wl{CR0t{xQv$(x~)ysTr~pXM!yP#?H)VpS#g&a)S-U%zM+B z^a>NankKCWk$L=37&_VYpVL%Tlp!$R#6Q+xMHgm1Uewcdx;WeizF+o8tak=PUxplH^}$rwXN#*jP^{jr4drpf#xms`rMn%b`1>Pw`H zYcU;#qM3`u(%Rk4azSrGjU8?8-S42T?ay|^o75Ivx6?%Oc?v$8CeeCMj-keLsFrNb z)Xz!P#Dz}N4HoE_HP9gTWapBn6D)jJgN-<%)Q)to>Bmo>1Z?i7C|n9H1ER3UXbN0m+_f5K`U`$6V?KlZwG^Vo#n$1w-c{{DYyUOmT`l+&Zd=gWL%pv`h zj*PfMOJywI&~C}j;IAsWA^1!MtK-s~;YUSs>*v>Oz)7?wU#D-8=@<-WS5ppYvWp}k zwr$y9o6kOBw^%go5Pfhw{G89K7*cYZxu_2tMCp>6chTtDpaX4Y&%LFst65}gK5T1V zH@(stG}r%4!+FsS`1q?>D!Lyu4Fegqx9xpM0<57M3jE`@uqH<3nN9Hd=N7Ayj)j{o z=HtDCR5y=&ubLe-5od<$uH`Ceg1VKLa^V^$o2s`Eqi$o64SgV-M#$10=rW{!PcAao zYD);q_ ze2E4fN&J>yK1r0RM%C}^l(s)=%Bjvcm78tq7aFD<5jSi&|DmlJ19&tLfNWPIvCkCt#|PUnEuzTt;vl zChwS9?)^@5W?JkjK#!G_sAxG)(5p$U!+96*kB_f>HQ6`Sr0d@#v45exn#Y~|@pJIJ zeI=D!Cc(Jwg4#3Wqj;yiHVn^rKNSD?%x|~8w!8K9-S}}fI#ZshIEU?&(X2UKf1SeR zV_+rJK&C@ov-xn8bEsQPX5F@&$SHN(5DUNHOTt2{`SDGm#VL^sAX6vKEH&?pf`$?E zz{?NYRixFtHH5xc{hpy}Dq31Cjd9M}fXKM+gkT`Kzt*we&W)}e5dIWxg*X+PhiI>g zn8GU@1Y4)epF$ASylUcCY;8NBEeNbzE~%MVfosJC^AK38h<=%v%;JDQX>yq0<-ccZ z&Iz zttFFtIBjY4d#cKJ=Xd+^xhlWRr|R_l{>=O}oaN?kpTqvg{Pi9A-{gJv?Ln-atIcp1;KT?dC7;@R)yvKYv1O z#{4z?w*CA`{Q%zAPR^RYzq<67mF~}9swopuEA8g*Ay@u(mG|c_UA|o9cQSuN01vn)DsY-A3N^OSN0Y>idE#0=LyKPyPdcu8tK=NU^Kq|^tV{gK zsXLKH?wzb*&E=y1W@?K5sbtrk=s(q($)%a(E1||W)RU$ookykp)zio4QRD&JT6(=k|0d~08scg8l5v1b=!8Mv9i!ejrmMnuU^#D7fPA)@+b zGwfx@?~l)9^#^8@7w--=4tJxw<}yZip};?%e=MTx?sovNYvW2b`1^K8+D|@$KOryW zS>fj$2|u9mJesglCqppPf})C6{MCR4OV!{Xty3^wMe*KE$J$-fUc~>7N@lDr{E7D} zdaIeEO7W68*WnWgAHJfLwqiqy4b?y^nC!^HbGd@8JNxuSw`@QO$?SzGDn6g0pvLSN@wz0rzgNXjDZd z$JVlcXs}b$buU%jc*(L#Z>Z)HuhLw~6hkk0!n^uGFI)1cn%(+dj&0=+wv}crmiJfM z>2-bv@sha|vjCZWX-ykX$$v;nTu)n8jjvtiN$NNUC$tru`Zso$o6S12It|?Ni!5+A zq?&uvD>FJ>=Fy{VneM3pJmQsEL>UJ@R>=MUPS*fR8GzPNKOn#?^2Xn>7wI&~2@6ka zrYH|tNEB?vLSH2G@8#oRZjk2N;eqd4!wePY=}Tz0n4S|KBBY4ENxY9lhlV|s^Bpve zJ~m!bcTYDjy{#MR)0CdNP{zKxvYq^t65Gu;r)cV%O>`iC;U`02XO@EIU1TSz+1xZt zCFCJx?0E=zY>8t|hbPtgU`wkDucHvOF~5 z04^9M_ayMEL$F>k z3;0zQ8O^`7!FrvMH!lf5WyBLig~V@CxO_!&aOz`H_>CVJxlGE?_Nrv;zj;6bq;9|1 zBHKK=tM=pRWg?~gN-ePj;lsg*R?6jTHHBZ|M-cUUFf$Jq7mC7;vk*2nzi7E^Zuug`^Tk z(fy!tK2DL`=`N*P5e%fp1e44R5=trip_?4!7LFL5yy|3G5 zk^enppJ<@G-GRcE1s_RsmTl5>jz;)KS2w~&6?X1p>rA*pDo+x?;5tPRF=x~n#OJuQoETr*yv zTY9?lH8=P-y{tQx74JRMwX$VDDREn{LydR3>mk;Buwpsw?c%lfS1LW{@W46QF4~)x zh#wDi)rdiZwtgwX z2k{)=<~NRUH@3M+8@ft#)@B}G0aE{nC}rghS$5#8j>pnE^Bx!$i|ns?FVqBo)=4r= zu;F(UPrPaC)Ph&dR=jtuI**s!exZY*zytlC6r(k^gL7(na=!shpySL{HJYlIKdd?{ zC4Cs_!P#GJMP$zO&=hj(`CH57g@Xzba-olW@+WHF|45xQ?OYU6cyTs@GuI$m1My%nBEfQ$4jQG35I-@<2E;y(M94R^4R}+pXb`&%^Ty^PHtB4MPc)5 zF|R(E7f2W^{6dX&jKL~8(u|kg>RbRbLr#VNeo3ipc@-v=7;V#Qsg0kCul6!ejCK2G zWzo;=pC{-9oxOivb3pd~*+*b?;h%Ze@DC8ZdA`4Y-f_wf`zP|JG;m<$XaM&N#ZY?I zeHkWRnj8BBOZuBl56DfYZcEu$d_*^2*&a#?sajRNRtw>x0x7t##E|x1Gc9{0t<(az zlLCnqnj@)c{xEhMKBk0Z=2iu^ZEx*btGI~DGe=@?shS_tcvW$P&F z1BqN=zC1y(j|nHSl=+a{$`fNt%zOGN5zNJquKwNz0c|$3X9!U2^5ci>1#rn8b1E$l z8&Wi;^oz)`Rg$*nyBP!UJEZ+j8`ajLFk3j*`IPlhUNY!_-817 zLe8k*Gbfj59k2mBd1Q}3=^N0>Z`BPJ$)B@11S?*qyB|6T=;>oB`3_aHYw3VfvSM{)s*#e_{A}7`(0h4OGN;G#snFOJfv`Uk&T2D4zeE&b-9NaKzHK zJUPpkZ!3Ac#kp4dvy4Ky?#roSkecUQvxP;-w%iLyr?xv2;Hsv5a|YNPH57Cx$_AKf@_N;>bh_l`fgKXGMKmjm~JpZnsj0`SjrL+mcV{yz$L2 z+nafd6dP%z0l?Tzaslo=m&X|mzhs5l0pd%F3d`eV9qfrO2S_2&34oa_7Ci{Qb)4Uz zc=PqE8SvTY#UE`Ee0FE8rZ=&x=PBgi+hpPU+iecMQ7QON^x!Kd#qL%#eM_sIzQ}$s zh1~RctNVc}8!x%_T_5s@*^}M&B1= z9RbtmR-{|7-fvJ07T9e_k3e!)tzU8mRYliRYZSG>xG0r#>v2@aZm92!HU2vKlk36! ziH#z$5;;qFQt#r5-6JlScJ4Zd-n&s0shI|=5db$e)8GyK zaDf+U*YVs#4*_8pBx;aWlu+g`h+7TwL%~}XC%yqHx9*w{NHmjO7%%0_$!y9j*V(Tt z*@`T?^+d}&6wl11!P#HXeQ4(NT$!9QS%syx64-t0Y<|T{R_af%;#ElXk)OV!p&7#x ze^6g@Lh(~_o;!-4rOPoD$Qv1arq|G#PS1JguVd~LF}4=Z*Y0K}+p5#6Lb1-}rCVk! zPOM=HJigfkH0o)VdIH}2_P6Y>ut@?U>3{IjZ?x&bo1Ox5q5}}ngm|qYXPm`aYBSg5 z+dCi*vR>3HFHDX*?`iJrN%BRVBsFyn6+mG%qO|cUZK(SLT=#eT2g&(oxb*HWJ*ug0 z=uJh3%g(6Jbb_2RIdytu&|vbtBdHfJxsmGTiXVl!;7uPv!k&V@%$tj=R38W2-$~PD zH}Cob-F)@cIg)5n@T6ArCUTcrcuXyHkXSj#o#QU28~VdGGhR}vzB+k*{az(kS~R=y zvu=6`vXVo*5v|^4p_=_ZqM5u%_Ff%@YS4k17GvvA&Y zggUz1c2r9Vtxwm_{b#y@S9<*%m+I$=?0yD&{q)c1XRg=JT(6%OAofI;bU(6I!7y&K z*$5F@WwSd<>mWVnV+6c@4&DzZIxwnSJF^!9ubrVG>L6ZH?B&0{)uH1)^1VZNtJ(8K zcMiQti3FzfU|Q>~si`Cjgma)_yC?1fab_OETg@$(Y->yO(YeTn_tR1eJN$+R**@zB z(@xV~4&Fz+>G^x1qk~>vA1|b<_4KN-XQig){1P|J^If%@ZslN;SV;l@{9*pa9kzg7 z^dS0B$++ef-D>NAfvOqfyYHxy!3%oPV$Ck$&8wj1_c07$Ek}8UWVs`@V{l6}xBuV> zyN5cv*mmaVTEaws?H+|DBDgU|DGWr8vUq=Ch{gLF5AP?tHfD1hZ}DE(r1eQB=7aAo z(bw;$99rlf2-bhVS;n?ngP_8*DNnwIu!or z>0$|uuf3LezKmAQ#S3x*i7Tn)_^MN6YDiXRV_yFpC?R(LX z6J2DH)NH6cGDX9{tz$X7tFEd?8!)f7f1IiG9}&;o$>H(R^)9#NKCs%!vFYu9&p-H?vmOS z(*2KD#PR4hD{|(UeUt1BNU*!xR^V?f@VAL)CMM8;k{V$wZL$MN&4-{KMic-~8=Gg2 z10=~?4I8GqRwRwl#3<6G*P#__O5)>3o>3X_?9kq}`8#j#-sgT%dse2F&FsCJ!q|Rb zRk&?f9VwA?xCX6@6WStN+}UgXYd{w$I1pdoKp=9q^|Z8yg<4IFNxme)vDeY_*jzL1 zVRXM>$pccUKNUI-LgVUX61_-*TWz|(pxXFu+7|73<4m&r1kO8+61SU1@sGW(rm0ez znwM(ZG>zt(>>;0DS$yfL?+9Hl`Lm!XzQ1}-3=ICT+0H38DcpYv{hVZMfR9@GfL-l? ze;2GWbun#q?!1+WZNWyF?#%omfYvbButK#rz!GcrZ&+P(yt+D@+Z?A*;`HZVT)21| zoEXkMTC3XGBFOZdCpfLF-fZ3<;TZg8nv8zL-24ZzvYQ!v$9EiRY!ur4Lv@(yk{E2b zok9r4S^&*vMAWJt8|IK0YWx+gHih^(?*{(yr{aeROhx@Mnu<2_<=-7^c}l?Sct(Xp zjy8r>5MAZK3q|K6Gd;7X4|?Q+*yLOb-OaQlh*&QG8LXeCH6oKEZk$ZXtPV19VCUU# z20*FNg%&Rg);Hd*r7Zl&_InsPc0QnsP-Bh;(>;4IgEW|DD`dBlxRuoynoz;>g^nNc z^r@50bveqqtQNh4O#)1`n77#=IYb^5#&{X;c1w+K5*`U8U{7NS&}=3#GvgRnU+ zGUt0;%MQ;f8$8^K4LB8Y-P0^j&VdS6o-Tp?$`cyzrTjB*R>pXToXmJ%8fD`+Jd&}0 zWR6$XzFFh_iOtg+?@s$yjL7-Lo8T?2j62U%wz_e<`@eO(KU)?3 z#!ACWjXcu4{_c5-0m5$Dht>%-eyZ_J(fDr67~jd`7+=ds*&k;3pKts}K0L-uLid|| z($d@i7;pFVc)xw>myB2IWLE_%N!;9|^TJN}q4K-HC2Ik9XZ+Huf8I{(+x=Bosx@E)T!IP-7WwwNuaN=Msl#@@Br(({M%TBup1I7!_bhbiT!y*a4YJW(0TEmD&Q5N`+uwcbRF*{+SHW+^3M#(T?YuEpH0dX^2_AXFAki4Avsov_lK zSjIwg-uYG+{krcXT{>0{pXpat+7!Sze zN`rXJUVMh*PY-7DTv*Qd^ZIR01PqWeG8U@^w1!t|hQ@BOzgE-`I&a+6@UZbyuNydH z9|k%Z%j(HuE(n%;Q!UN^?KbOjT+F28x9#LhH(OScVX@692t-E2PRS!$+YuP+@^u2f z+yD^s}S+JDk`*^$nmi3KF}!?{NZ9mpz5%Zgx`hMILr8?*jTPy^U24|5;(i4Z+Q z@4yV!EoPa^hiQ)O>si~D=7Rp{>%sK5yWirSD7yk4I~z)7Bm^>A7wG1%QWlZgmUBvbE}a4L}F0_|r6miO0}$C|DCwDZMG4isOKUEeyhFHOMgB%UDe zdR-aatJ6CGYD-Hqr#k>0QLR*3Z=m?whq<+a#x?C)(yx%qWA z*UCoDb>4;DFQR~rca*M%_NAM7jXKbP9)7~45BX?-+P{*j>4I#J1J(YWJ83`dAIG~| zVJ;ix%u=v?F!kDl zi#If)7-3Cx!#w|$NQdYEpzNP<@VQ`)u1NZy&8GFC)Sl+zKV82J-i)x zv$+@;?5-ND7Z)C(JvG>%_Xq7g`$O77y*CSR--BncFp?*w;4!+AVl_ft;YyAbAZFDgBxQc#I)i8b}Cn?F2pHig&$m?{Yx ziLv&xOnOMg?`bx#ff$FYdgZxN3dfS>-|t&DFEjIT4Q^3lE#pXy-$zo1K;*da0g?}_ z(lGI+*N-KT#0RcQxg{CNE{T^(vGRxvOEt-ml)_DMtm{M7;th!-Sb$bAN&MZGb@MNQ zq+_549SSRs_N@GY3I_=mIyQ%_!NWpc{Hr5D(dz~-;hmt>BU8{~{AA9tcj3*(-0I}4 zHNwZl2U9c|IV_VN7wZTf>0v<%&HT|yT90EL2Yp0JrP4vA!F@-&LVYBT#hfHXNl8-I zFf3xxE%)fw<|WQ2(cxSA8gtMi!nD1yAB5viU+ImYf{)Dh$1HuBTld#~8`<0Ayzi3? z=jCAO3s8abcy(LD>goH~6Krd!?#mprz^h!j4735JA1Cwbht;U7>EeOiwoEB4((PAq zZ!20kg*#ki7?uT~G(X3<0w%vR|4dAmE%eF`)P1i?Pyt?|3f5l9v>mb4=|{va{q@{F zUX*VyBCXs;>2-c%y3zxyL(pg^6*T*(2M5asK1^n2C%HxB@H}C$F3}x*=M_D&t~P1KDd4T>$ASQ)Wg%f_UoF5 zCXVDrI`xevmNauOb;KxBIx`QSu^AU8CiTy3|H8!PtncjnJ=?)|VdBB8?{yj9(gfEv zUx+`|&-XvNE(6}?3lmc^#uJ-Sm}q8~^2ej^Q`*6|WB!z^{Py@QOpM+EzCu$++RpJ) zn0W9HneY`R-p_!S_#Uwyu|1Kkb82>hjYkL>*dd}|pWb|5!AXYWIL;{I+u@k^y}SFi zax-FEw^$d^`e62A`@VbA``WSMC9RnLO-$Unahu0a)RsBrF>LWa@Z@K{N59JVtB!xV zz*)|BK02hxI>@8Va#8BrSb&${fL0Tf?>Zu)E;6(Oap)lz-itk*RN0@eSpKkHMUl5WkJoa?j(F4# zuUqgT9ouf-St+nl?vQ2R#ZTXb^yC*lKMBX%yB%9-6Jt{Rb-X)rS%1?-m?vh&iw0@l z@fH2ug>+jXeO`oMDlInr$L@$8j2vBIM*ITodG^sdjh94d4i)#_-)?J5zU#viYTT1t zr@#9fzkGRcG=)v;VDvfzInekC5ZqHJ?)p?8!oJmkiY4sFW;qzST9XI-d2G4U8N zbKSm?rk|Ij3r<83B^;jIcYW%cmT7HInzeB`I=8L0`>^JW{c8t#S&(?;3-#j{mPeaY z)_;fcjm$$Ey`;~pcBEeWgH^sqd2DoU1wv6L0k)&Q$%7|I`__@)gU6Q#{PvVzmeK#t z^20mJ&yMFx?B90hf8N8${2teIk7iX$d1mE`GG_H^CdJWFuzrJ0AJLh^j9KsiE2Z%v zrFf4kOl_7Qcfj0cb6BLxv6Fq4`E;rd2T!^*J5$Go1Ap$)IX}ip{*LK3!3Qma~B_V$M#QA@wP+ISN~pXvEBXI9+oVK z3wXT%CWs2qcbVP^aLcT{X2xN$Dt39k94PI1u@!D&lJ^TR1;#RCkrQ2}PJt0bpNRL;lWqW@s{Up(ds$!G!lZEMg zcMjge4XUd2!o0}g-m&-F`>c>>A3H>eVFwMOczk^_k>aMqoRN?2bSH9dJW?0Bo?O|e zDu;==da z(Vo^)khw4CC4SwYZ>0EieaTyBBJ|vwBw}I zvKzB^jl3D24+pdRg}v-ek1y6y+jgn&Q{+~^#Zov*z(gp_Z7pCV&97L6w>`jqP4sHg z?W(+c306|Ke8?&v7(O(ZA4Oh>~J;CA+~fxIa&f zhIx4MjZ`0*{9o6sDH{M@%{rQ=Dc!qjTqN4K8|WsY-(!}QZ)eJP2{5~3z)%TMVN=R; zR}J)NO+c5LUC1DaUZhjqPaSH?Sz#Dd=IcSuS~WnGd=64i!w#H1gsdf-O%0WpvEQ-Q zRKhfn&xz_SH8fo2FgznD9n@fK(`@{YDCLe}k0$I1Di4dpOua{%zme+>hwc5r71!ZG z@nh%H74pK9L9TgL-{lD+y|Lf&?;%@_4%GmWmP0c1UiL!sBZS1{$C>!GYbayC&A>LV za~))rJNJVZL^-&daD^fBM)NdtYS|@73P;@;%PgmL;#WdUwWiJljn-Du|lUL1-K+1DI=7rZQnxCNKiD_cwhcP{J9 zNI+n{{*B-aV&H$KGo0wbHnGs`VbxwK8f!EaT_=O~d}?UIR?-w#aw)iPXYQCo!Euw| zZbV{K56ksxtM-J8Y@Z~+VJ4^Y1ycQo2MzD%M zj6lsS`^Szo%>a5NGtrOc@t5_Yg*ZjMG?7Ocr)`=6}vQ`_XzDxGpAHNNT^N8 zYQWa;!#-mEt#_tvHGgF{)X-V8WVM*4jT(KcS;1`bS|5Y|R!_@yvlYyj z$Quh`Ux}(@?adt`t(q|A#*#m z=b>OdLnkb6hsf#L3r4UP)O_GVCW0t)`seB*@-pZvFWnfK=RDqX1u<(aU;UOYj69pX z->$QCy+7D`H7_S;Ye!C}uO|)^^WPx3OO=y1w9juMKlzalukFpB+{Em^yHiAZ|B}>V zwZw8=MKELMGq>BTQ0Llz9m&n|7=_l*<6oF(*0U-_e>an+)p0r$<|Hxr@Eve8ZN!Dj z8B2~RRPj(JT9#^cYTh^{yHR5`GeBXKr~N2yOX=}m)m!^DBW%1b$KSt2gua~fK8Ap1 z#{M?miBk^MlMAfUQ`vQK54Dr?cQ(F8aiVDE_~;@vzFo4$cMa5;8sCdQWsGk!If8R2 zJ^k$Xw%y{7FGTTn;|tjFU6~r6aP5z8Gvh^z$qE@QQVi+x52 z^qMzeTvf62b$kfc-$g%_&7FlFXq)kywcP*0Ts(!Fj3C8zk7D+<3L5%RfqP0A3R`Mx z+jz|@5i_sM!!SS)-`eiXT(BHn z#4UbJUh-P@O}kMG=GClIR0)%8anT3gbwlwHZ?54OO-#C@fEw;E@wknjY%jxjLc1N5 z|EY}e6qaN#Xf>W%M`ZSbL)nPB}Fzzx{V~$~js2 z?Z2Z_F3ier{~et&IV->YcXZ0sto-)hb*;6DXRqDn%hzFjUyn<7YQA`{CMAu^pCu&$ z&iwM9P_{y2!dMBhi*j#>W$o)=-;ntby>R?j_+u)#uFR|R0>S!6m8h_mGSRegkFnxD zGKmmgJ73YU?SsPg zkCMb&v3di!z}&VBLl9Y@b6u|s@x1cb;MmyQ(9G=tY%zm3{Q-chVq^2_w)Wx8Q)*ri zyuAA#2K3-XlB%LIV#Nn%ccVxsKAo$V?D*m@BVyNm+_5}%#*GwR9qEPZ(U1=Df5a8C zcVO0p?fmV|U&O7kIhCdJBZpz<03)ya1O%Ks7X++`e1?xsm-6_rYol+4>V7zD%A>RP zpe15L+Zr{?mUia)Xh}|GbxWcL+qdIidY-nw%!WL7xi<4HMjd0KKO~M&nG^+<54)~t zNH9JdG=)2!Q8Y9mhN*MVrllQ&4du4I*72CRwE-qJx{ZkRUu^rCv;DrtgVN3wt}* zb`z)@@p)Fq1x0?PTutk3>H^akw*r>J4(nzAOVdMCHt`igcBt`Kem4D)f80wfyYh>x z`QHy>YtHQ>tpUMJ(Gd4nt1}n7)t9n7#ZK53(9ZJvriX3ak|U@~gvC6wcs1U{2s+J6 zI|h;qLygyxpZqh&t!F%o$xwE;+Xm8Yd~Z}V*N3aMw7E}b&w^rcsAE_}^6Xq$Oz>5%>wA z%nut%mInVygUuCIF=_UpP5WdouZ^OywW{WmL9ceunIBkjNgMYAh;nSfM=5#lk4Wa@ z5Hd81hh5&joPQ$wbC|K>2mYBe?bh7W=Y#fq{10@jR)Oyf{d8a3xF4W3S?o<0klv(y ze=yiPVK1<^1nNwWSF=RmMR2VCFbf zE4lR=YCM-Jtb+R}Xw6oz-%K@NHtgwYeh!GC^^V>#JP_*u1@$j&j_k+7C%MU|4jV1@RD{Hi&^a`yIDbD(Z&j*Ob}y74N?OqNA7( zZq$llNMqUhu}BG5=bMwl)+4~VhG*boNiN+sY^u3g=WO53A+`Q@yf0$BM`n!2-RBNA zSCS@Hnth+_=Z|{pzvu71VyF3`lRc~dFlOo2pe!Fpw9XnM%sCH4y1|;aPmzzsbc_dy zqSRN2gNQabG>y zRPP);v9{&iZTy4x*2(whOnS$9!y`HC^JDRaohe2S|Ir-o zc;D&uUzWJ}zvhok{Ne7M!Ef=U`=9yD66AiTwIa#bKX`EK!pk%#K0g{gG)um3e}0Mm zk9>Q+dubNEnZaCqF`IeO=ERbLIsueJ{ISvP&oi;n?av<`{hgYkzu4$=!qE;X`it*K zueq@#7-_1g2o z&DX1*{tL$(YI;8lYBEDtJY|m_k+E6~pg^m?Tl7g>CISs@HOJ!ewEK^c5QD+=x^|^n z;`gt(fxTV7<4+3VVF#bJ4d_xAdx0b#nwObodcM8ns2z#<$CH48TsfhayMKC1AE*7e zwQa%L4$(Tnj`-TGZcACD+jUPLau+8Bl!H?qagB6H-h=+I?YQ9e_IZPN??!|}E=j6$ zo5DHEbz83aj(2*8xL4`@Dc)%Y#WKGqWPKl!^&QCieye}``gdo2pPThPAnSWB@?K{D z7iN7QmG!+x)^{tCNoM^wvcCUxQ2YGTvcCIeeg8hI{wkP#X8U(%eGknl-y`e0GOK*o ztnarDXy5){vc6Bu`u;PLOeQ>&vc3~V?ehm@<#)>Z{v>NYuE?riob~FS)zQ6fZ`})sieV1gzla*hb_5Dr1_U%29_5DWH{QfiRyEg0l#H{-Lvc5~R%3ry( zTf6z#o;APE6}E?OX4ZEo>-&MM`m?gW6Z^Gq?}@DME3&?ev%dRhwbwE0dvzAQJ(l%7 zE9?98tna_<+aA7iv%dRfegBw6U#s?MU;l}${6DqJ*M6MXROicE+44u~?wF(FPW{K9 zr|Qr8k3UAH=RdxY$PtMAEp`L-4&|H=_4z!T&M)&H|L9TpI~#?)p^g3$|MB+lSNi_% z+y^7uSpWAwc<@gjM6lw>XlF9_J*f!qyw)Q*FV6|6n9IpOK2*A00XOKJKL%J*RH)jKhxf#YkpCC zDQ%|CO*-HDKJJ_F-jo?QZtX4RnVCZ3ViYJ-yP%Y;2p<2rF7;cl*BzF%v%b)GUnQRV z6x|X;N}RVZ!cfXX-QGAmJep6r4R$hT%^fH~eR(d_s9`&O!iD_ukJrOlgr+S|PS~wx zH2pgF`Ydl?=*{XWzPJwU{uh$lLyc;M^Yb=Vq30GqFV(R57cC;JY(nXje8xWyAph^g zAAYxMBonuqS0yFt^7xnf!$)?`cI; zuCD%{V9=o81O<&sHP)zDu@WUM5s-`|GSN^sP~2%zi#zH>v9bhbqD;pDT)No0wYDx* zYg=D6Mg?RGxbGVZxYavGKt)+x$p7;__xGEbAo#w|KhFd6yZgE4o_p@O=bn3Re*SgE zkH30d?k>lbr}#_*f^tZ>c0_0X-AE`Cq+V)fv?LdX_pW!C1Q{S@%5Ei}13J52a0#S2 z7ZkviWN~*RfeR(6swHY#Qv7(HY2{shWWv+qc~VjCdf>+_-@nbbcu z-#9bO$|2Lsnn0SJ;C@K~{|U+o2XDQ=>a>XKmq+Igl`W%jdW3uZJdd8dmJ&b8Jx>d%PD( zUQRYU&DAw(J@GP}U+E!_y>cziQ*cFw)g+mtXUH_tpez_~Z;u}C@n7dW2XvaD!5cj0 z=I)TRaL{Rd}>uMaFFRrDrs5*q@a~?N*S%(AU8K>qygaFd`oFDfxv+oJP#(>#R303$^Ab@=Pvk0{&0H+M-r(e;clA~3C{B{Nx6cxm;;hN=+7R~x!-77jj6`y6H?(ccb%7cmF&^jn|WWc`4MFm~$`X*rNQ7)f4DF3|<>)ptumy?Spi^2m#^bOW&W={;n0 zWxq@3M;=*HSMy$^MGst}nHWuN4K+<=P5~s9i-N z60@&;Ct#bYn*wmtRL@HH5Q$nM2P)@@Gij+Ox1}R9G$@KkfrR&d-5-_NtVW38h*@`O z5Hm)ote?4N1TThQ1I^Zv4ZSXWzK)^xzSYeY5Oq@a{` zJ+;Yeq%;ewa11cmu7T3$Bc+H(hQU6a13e-JYCy^plLnT?tJ@P=O)w>9YAv^7Ai^Z7 z{H70`k7AH)~Y z<@M9y!5i+AEbUca=@AvEziiYqkKduP>Da(JE|a+4cQI#D3)2bJ$f|l8 z`;|y?83DT#c{cxViX?|n7hl*5*}Yh*TUWaqUNCR zo*Z31E^ysxK-uy8{QNT>-7zZH|5)1cVIn-gsk3uk^LrF3jsGNdpY-^KSFTL7^6jzx z6TWDVZm8d{FuE^#7cL?^V{oYX48DNft3I!Ep8w3 zv7YQ6tx_O-z7Jg{52_(+>speDsRo#rS4Ov zEF+HyBR|t_dn_OG^j4R8$S6sIzHC1@R7>3_dSYb!xb!1nB&>51o>#{l#>Po9n)wE6 zCc^eIt)l&c#aHvYo|SQ67k;M+vwLZzL9%d=v5#HO?6eMN2LWvWpK7nR+81S?BO1KAMgJu^Q~l3e$-hz3 zt^zEvf+H&AQ=KZ+A4crH`(ydU;f81ER77>KPB}nTe^dVjFp^w(7iqe8O1y ziC^PJ{Yy!anNz5Z73c|f6!IfNqdXPQh&iU#z^wt z1Vo-Ko;+8#w`hGioPV8T;INSvJ*VQgd9_n~1PAlqQ08KaBt6V&c#Ge*DYCcck;K8T;#;ij}uYN1-Sg zmc@5oH=?YzsaJYLNn*pU@iB=F<)o)LlUb4a#Ep1`eR6(Xl{e3FTg_eefh_c)I^@hj z56%nDu-vj?Ydbp@=jbgLzt7vm{}cTV^?y;dE<4^J=9piG<>>mP`l#SMO`zakq`av* zF+9?QHasF68C%iRT&)-f@gIQ;SRmlMy#!U~au-=8Fg z_liH>k1oVdc?W%citF*N@ilYJb1+>kH;%~G zq8D7c-%}g*O04XL1-#J3p_Tj9(`(I9NtTU}$mnCki|OaQA2safW9chc6Oc7{G&*xp z={?<=dR49BB)g(0(xQDHyF^wQ_woD2d!kRR-b>P^{1dY`?t{P{k92XbRjbKj@54@I z4`FLMK4)z6`2p2+S=y2OjQp2-X8fpjq%(a(YUDC&WLkF`Y5Fs)?wl(tgBqy}&kpe|5k$khdkUPRbx637qvHsX`J)Q@E`CB592+ce{az&6eK z^(V(uSG)I^zu6u}R<+C#mP-nO1Q=!4A-kj%Q)6c$%r$5t))M) zs#{p2$Dv^FWw0#Ps-Jp97|EF=1WXSqZzf*#OnTo}y<4r{ze%iK^(YXDM(SuHmKso* z)v_S{QLqg)?V0K9j%S%rPN}Y9th%LZBU80fB9l@UIpI#xKxCJa%1CdM7>$nn{<1#x zkwk{bjMKnbt{1D_FU}Y07dO^?#mm_S!5Vi;2-2h0(11$b?rg*<7OM>a4?S73b7Ynn zTF@kSIZcoF1^LClt?`_Au^q72} zmyE)6xUwKphWw==wVKX$fh>OX_n|^o4WLS%CzJq%?`Ag5JQMys9m3atLI#K?%Q|WM zw}3wX>w1&W@wXf{|Lcl~$bL?pW>xtr+1Sg<&sW!OJU{*i~xfijq6@%VR{1eux z_4NUm9csa!dCk^?gv7}iWSpw=nCpChYvEZtph8mLZ0 z{!9?Diin`TORYXEzDbIt{=xt25~{IV{Cp~JxtUKo8a}Emk%PHMyYbU}n-MbP+l(Kn z_GbF_;%6!_J>S;09`-}7JThpb=@u$tp$p*eNnIU#qLh^$+s>21_Iz7qUE6w_U6Jsp zKXX2<=5`AEdN_ooh~j+v*O;^)zb%r|rMs*Yo8f-W?Bngm7t58`zeUqnm(TT5Q@nB# zs~xLXvho&MlQ4a(0uoY0ZWCgu>nfWG$bNgGOuq+81=gP!vq&2pepKj#l-l68RKKcj zY#`q}QMr;B_suy_EPN=Ed8))zAV{h~(q|;WUDC~JJhdqC5pNDWAufXsWnj8D(DZ9a zkEvL9#BODgmWN2VXI!M^&;07_YoC~Yp^*iy^g+!)^K$kspQ4YylPkLJ8dY2oNs2!M zsz#-#RZ2UOOu-SUCzi(tB%H6Iraj@Iskf;<@pLWK)V%@>JzeWaG`L=lt55%3{73yP za}|Q$$7jZNMo|}XcKHtGtLkEjqMyX#v17QS!3}@GN7lZ z>!(&0O>R}MN}A4}&8uRi#o0}M%Ys~aPi=gV#I5x&Mq92C#YI{Uhx2v35zuREMKCrM zq-D<{3D79lkeG81F-1-P42|@Y3Kk{M@0G+-r&ackrfqodfi~W^A-#4b>4cWDL%oL$ z=Cg`TTceF&IwsXy83R`bJQ#OXq>_~y9^ThV<>lRm^xRU)xjGgwy>XYh3akc^Z2Y(b zdl)I&9hM1Mx7LeXuPPJw#qg>udm4?Kyh|iFa^E5+Yp4GqEh!_o-bhqpa7oiUx&Q&D zU4Jmnm_94r84^nKY~>XdzrjaidY{I0f0N;s5VTvebNPrShE}5J?MHj`0AJ?>rV%jh zgb*|?wV*EbKb6;!*Ih0s7EC$W5)sN)xi~S*y^j9DIOvWmu$@kHaM^69D%;8>|H|&s zk9Mj1sp?rY`DLpIT5~_LiYMP)m-a2;KWuSv_ECm0S1&w}JtFs^@3&qq_v0&NDHpgI zmh{o(dp9yDjg|cn((6)7*1y;?KazY166*2NbcVZ`9>9l`+Oq~RJ~HbMq&1Dww5gC? z@d)vQS4L=B+9Bc+eNz9i8m6(__>+QU1TXaor>9ajeUtG!v^Fy@pm%<}U~;CM)!ZH| zlI6Enq{44`R`=(9zSGnwH;X_IgEP5uQbTHa1764fbG8`LMs2Ftg{_FCxI5@sX)M)S zEN!CpApUb8pS7vpZuJqqjtQ#Z5-QMSZD^NFRK!$;b!nk%NZXb--Mo^(4hch8@V81u<0nA-0kn`c3nG~mF&@tn6h3y>5Fbml+KfV0iJ#2$x`RCUOVv{RhQQDg z-R_>XPx<$A*Z;!??4Y(&$QZoP^4$lDL#NOUQVZg;78hwrfe`#9ek{7^?g6=O3M-Sy zdP1yS%|WWu*@sFXmG4P^ha{BJZ2zzM4M#q!vVZnoq?XzDlthw0M`LX)h4mFW)1*aD z-}0QIuM5V-=t*}##u-s%?+W4r|D*nK&ohY(rpj4-j!K_hTD7Vn^<78L96yB8g|PZ@ ze%c;HHhZ$ljUYy|cDX#6YB|32UPI6G*(&nn$}@m42H)Ig05}S+TiS7RE2}zyDn*Z{_DnL;9M4F~qlzB?iMtadY1Zi5WhYMw0Ic9}n}N>Vsw9 z0iIAlXwY5DAfx_SIzP=PDTh1HC(S&9Bq=`aT)OW%8)w#Pq<}3t2$rmV#^W-zY*RgOA3PwA<8zU+(>}!Pc)kaU;VkPn? zhf;IsIFI8&r*(FYJ;ifR zsnNMM938QCIVO#w2(7C*i($z$YoeZSV`D=vrDr60O2FD6Qcn$j zzuSX|oDqkeUSuyUE=qjEfuTg*XkxB3ID~Xw)PQ%ks%7a1R;orBp&$T8ez(A+y(5%c zGv^*ImR1wEr>B4aTz5FRHQaLj4*AJhwTwwQlv=1#ryDJtEWsCM9&e3ESe1RDDUp2X zqNUIpN^Bq?_8x5u;BzJnBSX8-h={gc z4p?nbbtu!T-=-al>b_~xI z*A-MTc?(qlUy&O@6^z|j9zHD)D6oGuWF;%D6Ml7Cx3D?Va&!-xdCKu9=V!&-^Z@fi ztt0L{dSL@$RQ&Bu9?5D$!_smKbB|%GNFUpO`q#{);gMN0N^uu?gsSL|WejF9sR5N@ zBRha%Eofqx1H^&?LLo>A(kQ{|)@N)ehKL5 z33}@YyL0LZIRbSTQ&|85XZo;)9g!CNI>)+_eUh#vp6M1+ zl3i`i)3%FJx-Q+%%oWPHX&z}giDr1qvVY{dQGBuI7)Ui(H6ezTb(Gq?g_5*w{0a+3 zZG#qdC!eV+*AgRkjelr1BKW_XAMHE|l*gZI1FO&&OG>Ak;*5@4#xQB+a_V31KFUQ? z%j*#SO9SAdiT{?!#-`3iGfkcDX4MR82M!Tvv!oAdNYAoGMVHez2`>oQ*D6MT=1`o* zYqdmiMc=YAd1jO&BE-+owdW6A+#J6v2koe%290dsO~sr5QmDK-%CeJ95o_3p&5s4lT_5Gm(g_;Vh0mDSE~K)zjpi4FUJgj47_^QyG~#4i*Ed z<39_=y_^i#`vxG|CbAE-PzC)PSU@Yt1k#CsB-GD(2g1ikdSvEFu#8yxp%+z0VpC_l zPs8|yx))y>EB-82Gan}sWJo7glAgjHLIsX%6Qr_JL>7M?M90#JH?1)Cn2}NAKWwa7 z8M$r>g)kP0>eQFVz!nwP44|`*kv+f^n{njz1W z1Rw{+WYC517@z(ROOMR#W+jYS6=WSaxmOg*)KQA< z18p}9MDSBLuF)grGZEd(bCg9J*@m+jsC3IpKzYjb(pp$j8FCUAnK_4Tc(iqAmYr-8 zwRg~eSo}b#OJXL!{(?Nl4-jHqkA~d%*{C?)Jhox~j28TW{C*L2CX88`_A{1~nAW(q zvx>a1I}mR%XJTEbEh&^--0GrcDA1 z>}DEYGuUQ~-d-Cbo%eB$2Lkm9hM0*4$a>~>0(;?T?nk{)(10K;%1L5afdMVEVhA7E zThP#Zd1kB@>?qZAS+Ki(#p>|j8@UBrVo>%dE7Z)Vc3lG`GGsqkuZqHc=Axgq=vv~9 z0A-WZh;_in()-$xWH;%|;P*V68xI_@8yE+Rq0bw{J+_UNBNst5S=ZOy%y2Ux;R| zDm7Wly-LXJq9Zf=mfGgqmsbu3auLbrOds40zgUYSEg!>TnkVrZLCd>hHtC6&G9c!; zxk$he#!M;DC|Ke4q!Wx&ITkM!phF9=h)`o2c51|c#?)oyZZr+x6wk|9Qx7PRhi#wE z4#WK$y4L(%dLb40HD}t&pqlIxhKSmLR`xqeS*6Vto$BFL+s`v9g9Qe^CaY(U`7-2d zRa&dSw-&F4)a|YO1T5yq`t-{}%Pcre_At(MRFk1b)FC;%wg56sbk+l;ZV4|yffh1Q{!v&97w*v~>I302%JBGQbpwQ8z%gWNm@an0{@$sqAvcP%ePb&+GTI&&U1e$|K} zCI6gqTQqgMI&VkC`>|qhY}{pK^s>{4JT{V5r~m}l%n3%z%_PySkrkjfMhwF01VIp) zsgQ)bQhNkK8k9Be(D|D9@gEDI)&L*}t;9m0YD)ge(Ih1c0ehI7g6csHkVecy#RSNW z(K2RI_V)~|ty99px+BUf*t#*f#VD>_&6L#IKC_aTXpOO$X*&w=x*-$E7&Z0`;G8$G zkVbBw@9sKNy7>66#%NYiK3I&&y@F6cH>{&3R18)Hg+he~a`!xt$#wW1lvpu~*JC=p z)F2t~1wz>;`7cLbTc=C$myj-d(v$38sdM($^Y2!Wf3(`U^oR5Bm(QOZN!CDq$&M0u zIsYAb{65FD$YzZ7FdSIgwUtnVB$3v?nfWGX3Zxo~mfOazNNah<7+^RpU^&M#hXYGl z>eFVV`As1{*uJvWe{nS=#6EA{7g|U=LB_F~?*AsJ@oDfD$qkvgqHC!IW94qZAH-+K z)-vBF(8z(tB1SPIsluxmn1JXj;J8MK+9OFhv-&_VhUK~@y?c*9VqUQh zZ<{7Vi^}jM1vQobKFA8N-`Zq({~p9=h*yF5(aPP)$$_1WffbF05p=s-;xn`BbEhBb z>#M%}Tgf7c4ZTqJlhaim;~{$XB+;_*Mq>}b)C=Za47fv)`LNIPSi6Q9UnjdBIMvJ# z$rPYdMn1nGtucL1IjFM3G(VHsldf^I4$|eE#nB$in=aJ|rfX}3RUHW4Q`|IKZ$Zx) z6JYkxTZCD-Bznw!Cj5Inkz*zI(b_4qsgLP~9 zwV&DqKRB_WcO*ISGxif9+o9`WpHt=*BJA%`N@x+75m3u%rd7eU9KekYQieS~0c{u`jzvP}u)URu-|GV34AmySQq zj;0^IpB{$f`Xf4Mp#O_V13kCl63zDnwCwe33hLMV<@L7my7Z+LsAIPEs+h9uZ03OE z8CEuAHkbk~cEdxi;75M7cbzMOhb_zis-=%#wgzTXx6~9neE6dh(uxMfS zq(NTxf+-yaWG8~W7+Z8Pp4T&KV~t4eKS<;5^`ksDnR)_PenTaaz_2_*c}iXkTtHwsR^YH|47KeSco zxT@3}l0!2^?v7cCI-vr=47uzOt3x*bD*xe|sL{Xc-X=*Xa?B_Apt{=a$X=*8Hh$HR zl7B?5(~81QHIASn1#=~^aP7WA>+74&&z@tcE7ZM)c8!hcJDuQdXUE5wq|ZlbC&Ewu zN<#jcc@0=*45(Tf)q{;l@h5QNSa7+)J7eobGr?42?ydtS-F96mN=D2Pvznu}pUT@C z%6%erB|o&nilD!&l;ysBK9ZZohW|g1q0sQM3kuGl9;(}v zD<5sug6$d5G)jgiMQtCkaryOkrM9|F?3 zYIK5HkRW20uX96Uh)lWc-L{4`E4|Bk`(PNvJ&Lu5CL%2ti=@+cDJqs)YsVF*5k;;$ ze6H_!_tGNfSOkyWDln6DhC36MeLX%k5X(3};NkqI0&a%FZZ z^1|%S&LIS*Eme_AfWohIY{2{LtGt6-(7L}T<;H)8F%mjMc}pEqlr&uT6KlsP3>{}E z=xJRxDx5TNq_V=@TI=iN^2ogSK6Zbn)AjcmFin=Hf%C{xxZZz=^2E4dz@rWQnr#$?e~wtr@j< zH3jpfsP6suXm1vU13wqh)*F;>`sVrCl<(KdcXI&GACwQhPuKcxP`=^h%U;Bw6t@3o zS1sT*X`}YY1=bMX)X{r z8+i0z{GSh}uNAY-hrMu{5699bz_XnD^0CyT;#2u>+Ro7m!X~oFY@la$Oce36|z2N%ZBo#wve3Df&k#nM^MX9ls9rNk{#nH5ZaxDb_B}O=VC1hgj(=SVH z{(Qci`Ew;1G=Hw)*9(@{Jq2kuGm{^>krw6^$9J(7j;-Ly^FIJ+#|<7HJSzKo?o~aL zzE@8j^<=B9&1Mprw-=G$8qBxGygQHLZdYY4C3EVlth~q+yuZWUucaInw-9UNnfkoy zWx`Ei7@LvuwiH#*-9RfC=r zab=h*x!DchN0%!TD;2|^UW#(EGbphCQ}g?ntH|TQFD&}hwm;gyRe$!*jz!s9n*+a> z^rl&LL`OGf?q11<9Ea*1cvhEV_}7PHcy>U+9iR4*m7|&q@INem$B(1z4lA*UfXD<$KZ&+d#koCu%|&tLoM-)RD%XB$5K@8m0^1W8ZQTwc z@U%XQQX#ExdYh?n-;ZjL_ zm-5qYs1@>Ksh*Wk0}823uais|(`WY!9#gK7W0ggBzf5J7>0bXj^SAfNft2XJan=w@ zkK`Ii_tj4lZMk}KOKfDVuTWa9O!rIYglQJs`S(`CxFE~5&DKEo$+L$*Xd@@O54J79 z%v~fVVr9K!nPH{Rmm$yfAyJbNIc0>Kl;sO^=+oS^lo?f256a=t`1)i7Jeu3&VF1oeQUpdFAC3 zZ}E~38<*rdz=v!CMFhN~YGih5_OCsWbMcofuAG;*WU*WbUswE3t8i(XOAwMrdAR?w z=d{F;r++H-a9!F??n0};Z4VKp+&51h(z(i>WNAn|QE80Vzn|qVj@34m8)4gpn-%W1 zC4Oh|x(XsWte&DF_x67^d`73o5SU*x ze@yvS{uOmh5#5-x2KH7(v3*)r>c@N%^ddvruFc)k+|pFXWKt_k#U?6?4F3YrBbV~5(c|P=oc{(8Qthbl}4^bh%ab!_S=JP z(+NV|Ec>*39dZAu*eiVo@!lOL1$xqW#Lee$EQ@@@4sT7z=T2v3*}aSn))wp!k^dzC zFan;Z>xU6;}k(OMZT}_4Da5r4NtF4?J8opB_u&Jpu>vhw!9McG`K_@2CGP zhRgA@!xYI+SDiqE+w_+^NUq{f8|Z%iQ%yJgUu3E;paX7yAC9$6@Qpw73JdKK07s@{ zP2)n&M-+LGj~v%_p3nIgMV2d4lG*t_@;V~3+gRV!@viVo-aV0gb0_-DXR3yuP4e>Y zZtb;|L?c0&S%!AP5`U>7+Nvel%LKRc70Lt^6xR?V|2`bbze@}F)tI*Jm^_lIGSy$c zykk)y6|z+-ur2y-0qIWcTdwEqcpjGA0F>)~E7VkI$GR%}+P4U)(Ht#*1g( zUBdVJyZ&{XhOxcbhl!7D_MWtsw?h7!dyYC>9~12r*nZ!gSmK!SZh^d%laiqe(aNswy#0-*8gGzzrDvpT!64GJTYjJjhcA{2Bn4La zflbe2bN)siKeC(V;LIL6EijB{p3*?3dh)(&JKdvHBi;CUF2h$ts$ODkJdW>+gS_4P zwy2XOiR^e5qhb6!ej+#S25JsIy`N3~GXnegXQ)B;@eR{Ql{agEAQ{8BXP5x5SPqTq z2kLk8WQD`~^BSMrzMK24++}mmR(dZN%9pFLU_R#8H+)s1MAUu`p*|Y9iMtsu$7|(Y zVn__*!bZKtlX}fouZGCT*O)LUhfn`y);4+*%#TOcTjkAycN97&r1@p>-V%DJj<@WQ z7SrG1KZm0k@vw7#0vb`R4OWrOy67*$g!J1y`M^$JDISHCIa7UZP|4nfmFQ}~BLe>4 zwENf)%h~s#7j}eYu6B|6FVB5IjPDiyRH>6^Ng3S9P5 z|LFE$7okN7{W>wyF~?w=$Zt_r``BEEvhNvNZKe*v`xpn2bh;t6%3Z_~n$M;kq8maK zq|+d_4^>54E+p3Y21UPkUfg1ZI|mT5DQcbFJb9Z=9Q#ZF_Rk5E=M-PPXDYo^TNhxY zmCokj(Rq~J00~FGtYGvH69VxotkM5f;po2#5RCqrXZq1U%tk-we!=)eIOJ(hAza#3 z@0pJU#Er928&9O6NQ+d0v>jijMqe)&weOw-=_NzMA&cL@Owwq@$7`gn+DBv1^!I{M zdR7HST%u8$GT5Eh-w)DQ8|Wz-qn@t1Qi!iNdILQ@14lizV0X2>n;X)byAO6^<592S zXu2*OieJ-+hGN-7hC;_9Uf!|sh_UQOk}SKFTx@bfj=$*nze0YO9@#Yvzw088n~w;b z?WCu%$6Xg6*qA;i#x!lH`8M9S?Ju73zw<2pJpnixQ)kCQXHR}lIa_%8GR*jpGX8{& zr^edrVNdvQ9LzU@!7S-uK^F1}Wv0*bl z<=D1OmR?<_<{rOTi`41I+OTU@mH_2g2qCdg&jFga2SO!1eO ze^?`aTR8p(>3)nO3+WC=mg#nT4??;{S;ns)h*Y~+bK>J}>B}q9M^~m#=zk9es2k}Y zJgenq@-af&q?*uX@-wP3@ipXk1RI&unEvS#26&w&ktB{8fQqF&v9biYbKtu9n6Lhf z;__dKWoF|2?_#Mj=rg92vYu@Zk(AR0w!^U3^!W_?=wtse6R(mEyyA zT$tHDF{M9gt4IT5LCgSRo*_mkqoo3@C7%WuX)&%-a)2ij=Tr6Nrnm{#ZD9212h8kf zgQi&>@}tz0@{Kj!m_6HgvIy2qTJP)D{V~H}rn&`V2UiQLqbeBrAO4J>T5Y^9}8a4m#uNTak?nbpCXmGaimR9{9lOoo}2u}3N+Um zJdUk_3d~l41cMuI6j&Pj{+aF=D=kCDHe{=YFf~M~hS@UJ8-&3A<_R7H*9}&Xl z>0&plaD{DwfEI|Di!?0%xke?CRl}ExvGQQT8!v z%;8(t&L_rFL-8Xq>>g5uM*7)Po%$D$)6W4~q9#&lW2XB9pCdd;S1=7EYWC0pw!=v>Dh1@*IQ0kzdcr^XIq&%(?f=yoB|8MDC&I`#uc(d|d z^`R^b+r=^?;egv}3U0@P5b&PD_w2@IuRS{Vo*ngdt)KBZIyc@mSCs1}_jxvg-_qbKa z%kTR(!%zE28=>sqDx|Wm4d@9C%LzX+{yqOJa1nxM?n z&zRI}!Y=Qji@E&tNMS=MxBG<{K-&-xPSH51CF{uo3~;mwFo*)lJ9XE90AEH8f@{xcFUDK@- z5$Ku9fUfcCa4-&eaMQBJ^;1QBw~w%nU@3$x-%af-%9DCTYZgXk-bqb~ja2zpKB|`K z8eo6AESEk1LQU+=!{aBX#+IcRzs0I^aBo}Y5yn`B7f_5rDAa)z`W=q8en5t{DF4m5 zg#SW4+M2lt@5lUA_9`E{H!6G`;l?3UA;6i!aRtPtJ?c^);gw)$)v~DB!kH_!0PpHc zav0Qv2{|y5(^avIrpK0b-Oq6WSzYKGr1hnQ%?Bbuwp+!L#HAc==FVgv34b4N#71<>YZwUmNzFWwbqsT}U!-$^WIjr-Ga zHb-JxelI85DtW(cgz$G+0sbDG1O6g^G2rlVSxUAeu`bIoyCZb7hgl*+TpYWMp;n3vWCQ8Vnqy?Q6F zTBI*5brM*TJw>>;afzN-pL@?Sc!^aQMe8AbLV7Q$s!o+)b|YwqZ|!f7_>?MU z`ko?aXtRuqH{o$cNKbXC&l^*p$WIM9+pTPTp?|*TIeWgR-M8=8|7}H}x%GcR{2mEh zd;1o9$;H(yd%q{uF{?|x7yEjb+Zoek^r_?4=$LxFN5q!6s&h=$Dx(g!D@kILdo zJt%XcE~VM#dVMR#yaJoQhkj&pq%`FMwP1jslj>9LGO~FdCgA#g=@)YoBu*6y*z{&;yXySXIG-uhYZG5@t;*K)12QoT^{AVQpB5yjQEuv7H7n(J6GJJ-Hn_1)0JJ+bv=!b2KHTZ=_c zS!qj8ZB;QsRO#g>JCDd&*YUoFn2x+dH8`8bw6CE4;FTy-w3XqQeLHtbqj+WJs$zSD zo=I@vV<@i1ce=lvCQX_@9M(+)u~OJgyX${sDWdhHq3k2WhqBRNmAcwZYdhNxQO7gY z|814_OSJ3`P(67r2I@4gT6OG;EykS8Re>p`gbw^X7O^TP_-bB!lz!~y`+lu+A7$+oFUD0C}-TJ5+8F7TD2VEYx%9>UO7cztf^XMYbzL!EA~mnBF*IM&M)O2 z@A9V}%Un@0CYE_{2KAZD#nSZ(S2pQQ;6FS^-|WY4{=5d?C@am+;cBeY{zxgC5i3`q zOGs^O;B~w7Nw`M8f&bmN4u?yma}!^JTZVwsb0^_4FV_AB zm{s9^D3`vo(l@Q#YWmvMq)&ZktLd*Oebb7qrXQ+a+_v@dJ1c$a544|E{mZsm|0_zL zy7l(gzDoL@TW|jrrT+l@4=H`>*4w|)$}it4d}}|Y{B2t=|BBLo0RD%RzUl3))_bP=3!JXkY1@wqE{Fr7zz?`(N|)9rQK++wY{5{gzcZ+y0io)I5iO1oXFdIpuHL zdi^6x7>t&Ro~I#rhvo!cVtApF#PDeEI9t%&)fq-&!TC-g^6&`SL^6O#2&K z=${gv-}?9->dW_3GuLjR{AJevt(U(s>-(>4cW zcQTxBRLV7af!20N%l!^1JCg$}zfP}fd5_sx9DhMarlryL`XWqdi`GUiZW+j0%=O8V z%5+PuKG7`NNkgmFXkSl({%b4n{O-4Tcp5(3Dm?l~x<8k_wy=DFzdLX9{pTmUU155#zFek+9c^M3;;(D}r~Xj?so;nD zzbpO!=WFU%Vg333-|G91CMx^um$%S=b?l<8m*3f!e+M;6cK?F%nO={rge?DOuGI3# zpP9b*DqQkn7#?=B!e6ck!__H;2k~x^~S$a)tZrSla9}Ke|TXYJZ#N*koRON4!7}Omuc{>Q1O>d*-C6TIs*Em6>YY z2G>^gbe==8MAgoYA>6NIPC~@KVk}Hyh`PSZDx#9NY}k|+5F<1#kIdDb?ZO)Q#nzSP(2-Ts6aO?jEQC261T ztbyO^-te%KH8RP=85t?!=a4GY#t28Je<$QeZkmq^rc-!NxpaP{K z_W7baD114Gcd-vK*1}qoYqI_9APu^a)!^)Ix*@wTlIcly)6;jl>xi@KlvPXTY(sN^ z$uPUV3^$f<^f8iL3US8LkN=Bi(9T4X$5C2pp!Rw$T^qC`Oad3$itfW&XLwDQvh~k)8a}onaHIv+sr|tU=eLuKN_;_5@c04Wxor#RmgADD!l5 z`PCj%%Tc{@c#=JrUoV&7bfX_*sQWvACtvnl>)K5e&1f{ibAlJ=YJg4bej=#uwdX7=;?~`I{OLUW=ZwP@7$j zrNVtzS3LI!@Em^u{27kNPt4=^jU{;;AI&>`A&!Up?*PY7JqwO|0!G$5kQHWv-s>~F zCuae(;aD?Aqa+tw>zj@8sj%>4+l?bpNw{lMdR*JHr8xQr*N&n>tDCV?5$zV&NM~kXNX) zNW-CyjnE=@A_9u{(sdu%;I93px4ldbFH5CI+$=O_j`kr1Kp7~y3u{`=R|~u zuF%2pdU5#;9B)(p5zPycp4`;)Qg;;ur)s*8Q$za6m4NChw}n#)2_0~?F!Ep`&Ba-s zpBTL_ry}(kWR+(3rrLbE*XrfNXoz=vixv9SM?(3fZx4kl+r#j%jc*d}^F|o1&MG|m z*&uB4&FhNl{ZHf@>T6ISnXj)#;a3-j<%b=h@WR)_aP@8qmxT3YdZpeVT$e9@rNTGm z%b%-oGGG2=g%>_k2+xsl@~L?pTk7hwBA%qpb}PZ(Ed6nR74y&F#g1bo>0jpdY@Kb7;oU41WT7%C6zU zZ!1JIrS_B^^UBU?_>HB*bfYO2r_PmvBTUbo*ZO>o>2c-URA?&e@(iWwNxc^1+&J|H z@3gr`N2mw50$J>y<&)z))0hz zjc3J`5iA$~JQcg~ke@_b7v`}0Ct-I7kKJC@5EZ$@t_H<2f$uPRlX=~J-FC%I+j`1w zL(t zhjtPROSu_WJa575?9pFsD!k86SG9l0ez{?jZy$V|Zyc8@4%X3gqv%3UeO2MYjO@P^ zn?c@mPf>)A^0uoC#nr2BgMi;*$!MGGBi zhz4B^44$AoX zoavR-c>e9*;du9bOW`k{3d6&eD*WL~KHO!$6O*B%I{*fRM2R7hW@%kze*(xwV2zJ* z`_K|OAB1zBlIFHHW>;|v;h3>3lKG9~RAS*vWlA}Z6tKyR=u`z}+ z;vAZadr!ppr|A;RG_~TKbGazB=`i*P)LG`_h1)mE{T0657+?ZIDYjw-k|F2o2Vy0X zy3jx@*X4t&xb~t}Z=_Xow3FS4tj1#MQS{9bH)M`Q7K9lPY}kKr=S^2^6l zV;^{@<`?&kf~N0GRG80Gba|ukZ#2v zEA$d*?Yj2nrssWyuWm8`DwNrMOrTEdjNT)wm{H%^@t?5%#r2&Pyxg6GuK^i@GJ~y_ z5t)*08$oz!-2of;sc=)NNU!zK|EAYeBW2sOzXGVRzG&+)bj;5mNqQlF{p?TB`-;hW zu_gO65FX~oFTP~uT>Dk4M1lO(_Y3R7{CU* z*IWm3AUc3l_%gVXiD234>wnEU_`0v`zA(;s~9$@f|;-(GL<&A}^VxWcBJFSimQ&dqCp>Ge`i;#SEB9y>npf>cLoG{6?1I zgP>Wu%(@zF9Suxb?_Jiyc3&dXYwpd#dH9?h8UeG+{rRemM(J6-N+A1@Vb-T!v%>t; zpD*GrAUh~uKxS)?RD%DbvYy}2pK?{Kjq@>Ugya|%+5jSS)KF_dZF`1|Uq%I0^VF4d z`HHp*@7Zk`Nb#eFlvxDYD#1O-y>N^Ny;O7E0fthRdQCEG-`M!K8`6h+^N+V(%RyY_ zDc+OmTOOXO+lF#>_>QqV0oG#9DKvQxqq*o@$gWfUS=DiRj(*@S64xIlHyiJ|nn`8x z1Kh4w*6-%O(d5Rvs@T=Vt2{5zy@z_1Fq2}|xUoU>i$q6}pT)68Qw95i$+!ElZb*Gt zK!;bnz=81baBTEwWwG&}VQJ@X{1@wuVEwH%IHD{d680hpD**u?PC-PsQjt!nE3+B^ z4f}DdW?VC@ij|7;dj59C3eZafF|=G&XQ(p1s!Q zTCJ_K6X}=D1nEYqccO_Wg+f1ArEq)S(+!YTvDBi}mAH`o@Ay&W? zE7aI*O+KlmtUH(z4e~_%vyM%jp|rCfDFR@p!CYkg4fGT6u`SC@8*ZYWk1vOQjv=f3 z>1vfmO;*MV%abBHC5s*Kwo4ws?KgGDeZnhu__3S9{Ud_-utU%MU*b^9bsRF=UwC<) zumGz|O`x8|?k;YqYOZ|%Qh2`fWd=o??iE&Sjr#+?ECUPVEU)8cUE<44qOpQ+6Y7!qBHcWrwy9&j!Ny{klH1C1HcGT zCo?(%?nuHNPZ+lH@}ZwEk30>@SKY4pQuA}{&%IHPw_$%9ywP_VUayLSx*_gOSZ*wJ zpa&`81?F)6DVuHyAU8J)mgq@UFZ(?nW>K6IRju>FyL;tCDiK&mL1&GbNyW{BnPrO_ zaWRWOnYNxqXkkf-JhIKugCj{PH2r#!IlnkLuj$fQ>Rr?!bg%J%?^2(*uVPY;ERq~Yx=(xFr)}SS)i%WI5*Srv2kSSK z_gXpkDQeq}n&vd|UnsBC3fhC?vJYR=#?hF1FhFs81U=}YMJX6h#-mG8sIN=4w`~BQ zRP)jGRP*YfEhECtlNluT+ady|_dlza;>u$`IS}aS*U;Kh@ehA_5u(6OP%A5}sJ`gb z)DoFD=J>Ilk5SuKC%Egc_NQZ$k>+t$1#cPb-YwT*knA)sOZq4L(jXydMH&Tfm#@1S zUXhD`-&DWK-0)$aJB0#m`ftun1^64TPOjn2buAblU-xx*@h;kWq4GyJ&mU3#x#TZ2 z(KLBT#;|P{Z=Qd}Z1T?{zudW4zUj&*cG?AwN0sl_8S%C|;4j z*R?IIsLTxoRNp(l^VIsnqV6h*XPvculsoBq`jug+M-cq8Sk8R(bX*GkkDEeDP@EwE zF4*wNOPJiR-WjfUeH#?6{GTv9tVZGd{=fPFg-1W;(>0&bSId4gf63Y{rZ0X?iC=7k zrGb*N2w?(MB-$rHV{%IM9zV+#vpXrmO=^f_g)S(Uxg&UsW02?BkW+#`KL;|IplXR=r>w7T%{i!JS7ZG=sn_a$CFm zT8HkwdC{S~BjEF0W}2Y@yscT7dKvFifkn}g6qSzReyeST&YX&&B=LA|T+?06aM^P7 zLMvP3{+{}p0cRVFfSk7tm41zgs#Q6g@&zZ@-Mli1KRJwX<72I@GwRuW06_cuTR%m> z=LsTp8fc~((r_^cHa-154t$**9eIB8zw}R@4GR0$^BQ5t`uE-pKDW}peP8+R|JFaL z`{^QdaHtGn;gD@p)PjV2U8Tcnx83ck6W!DrZTIz97@zd*S2XVru^|H8h4)P8?;?Ug z#roUpcJzkjuKFS<@Fmgd|I%Mw0xsu)=}JLoS~ zdO?3LrTJWc_h#ww{ryWpfB%#Y`&)nE|FOUQRDS{eUXbr^@elO3Wx@Y7xWp#fx#@`> zKQDZclk?vA4q-X?5uQNybh{!KGiW+rI5l^L+w*(Yrz_{P-VCy9p|z}6ea}@m`9N-c zI$7cPlVP~JLE-=TPZ;jC@hQSz-V%oUW)-f>mw!v)LHY7a6^@7HO<(d->Lxf_trped`*CyZ1r+F4y;zMfP36H{>vDPomz& zTMxzhD|tEVS*(4YcqS0EC&m(~Kk=pZgdovh0HHr`PuW>~fmc{QozJI(c0sH^J_WG; z__T8m|0&S*N3301@t*=#f5Zyb;8QT_&t21Q!k%3wmgYZye-%R*;W)&jyAA=A-U)P9 zTS7vB#D(nN`8FhOIL_h)i5u__`!*!bW(6XTA@Qt#+P5Kb@Iw0zka*OODE7ORc_iL^ z5y=c~tDrT=3h6)7Yw0|QCHbcuy*;LIUcWHxUWFI7h3VBdD_rugFx;z$!gcxb8|Mz0c7-;jAyV`r6Za=*|<2F}*Qs_9tFd+~6fJ)~manMSn5*s-C#q>>&5cARX{ zJMJv7m(1-YZBL=w5&-YLf8jz$^R+SkQ^_qyvS-ll*W_a!w3@n?{50*}kba`l1GL(` zNbX|2bu~kJ5wS_nzoVzyfnBqp;0ou-EU|XjK2vrq)PlE1KEj&FaV-_8nogoKL$_(O z>N3^+TTst%5$ccoO9O-L7BZ3HO49P%i;xl!LH#Yv8 z5Zo(O)u;PWRRN&!>fn0P$L_cQ!pN+bz)1FTN;7^a(4}Yy_p>+do4{F=b)#+=QL=(l9d-@nQJ8@0l0k>d8T%+-HXalb%qADcdZh6Q(#{|>v< zll|NFa&b_r{mqq6G8w-7eK^1Ro~v-(-C=mx$qEm8Gz?caC>+1vhoz93D}pGJ(&8NP ze~uHqQ#nL^?R})dilrYksu3=4wlG)m0d<_{o~!sxr>Z*W-AdeTIj;337;E)gyF243 zDz-bqwJUBF3%gOd(i{)8A7Pt2Um=Tbl0w+gjb>d>4XSht=s+wzs1nsxPg_e7-|O+d zbQQyZN5Cb)K0lX#8x3w@e%TJHtw_soU*vbfpMivnr?9>Md;dAlFX;a%|A+qjJM#Jd zV*=5o|K;lNR{Q_(7W!ZQ1O11%{y+L3ONYZ2$MI)qL{<{WB+%P7!pfGl(wwga?S#*c-d=IL@U8LB! z4LhJen;*1PmqS$Te!8%E<0;#3CJ=&C#bvWZ^&)#GJM9ecL@~3O|v_0_j--d zFj~B9amV=c-u`MUoE2cXNm~GCt(2N}&3{K=)GCm@;nhv>2e(I9ub3ZjuN2(>#Q-_D zfe^s$PS_m2ru#cy)%kF4JSyc@^?pifhN3%q?@g`QM$<8IW)|xOv%S`2i{mpu-cmL0VKz+t$;%0fSr=}pAt^Duou2T)r9r=dr_cFbXMb%d|uI<)LJ$+Ib35WpkJH&iw~7&=FV&iC|b zCEfUe_42>Fx$O%Yq)<$3Qu=!4!>+kJzfqp1AWwx<`{jUhvM>mx4X}1R?M0Hx3z4%~ z8h~eF;evY0+W#F1Y!uV$s41-B8%~$HYrXqSm1nBo znjV1S9)xwMCL&)Y&E2kW`$(hwYzNCbuj%EgMUXC<8&tb?GS&WtYO{;Tg|;KNUQAD~ zBwrC#*h`GJF69Gh?rg-}?9JrWBXgZiZ)MK{pZ@!~>~z)P$1&0(M0Y&K18GNiXb;Rm zTMTr;a59o}IzSFuC42bVjgg;FX#R3eUo^~rCy@~xpb0G-3D9l}M8 z_dA82LB6pCzk!cb@a_JCuM4j?izFXW#OE&yu6kQS$MU>zd^<#1$wXTE4#p`7rmY{w zchU)-#ON}emKo{NevP(omtYQ~b8|XQcYU&t<0cvMU+NH-&rXzb{Ld4L*s-})+eZ9NUPi!VtQ@X)llDRWo zMq*WG;{7sL0zn2^&dDS!G}@H%?wl{AR>rGm$F9M; z8l66CB@l{Xw31JABeldJX8QJYz2I-k52g{Ty>qB8?{Oi|Je!wWpF%z`R~6mY6_qw^ zgZ$oR56a=qU=l>VX1DL#M{13E6aYfUtmc76o;KV|z%MbT0+{{|Xs-E1a4KqRNcXE` zXLfjF=Ai2aZjXnQ{CI*)nLs5LRJh|l6W_VYVa4I_4+&URa z$5oO+@>km>;!y14u7F;K1FvX|eQVpL#GgvSeIytnvU`*IJ^9Al-`Sn3F?G@+CO#b- z)BEx;%Wd_4EHxQJqSPC*(&{e`!ejGwl`$o`PF5I<(5vRHUu0|Hg49#dNZmVxXq>NS zr+-w0T*B8vv+=^x36Do;zb2E;lT!)TjZrI$%s6oe*zcm~9F1s4PmPbv%)Y~)qc-7d z++8$O^)l}c>sky;;N?)MZp0jps}@n*OB}=}7LE<)aDo3T8F}%L+*y@Fz0WJ{fa_CV zcAOT{lU*>8U7ua3S>uM#6iv{OyW>M(Pc2@DacRr_X*!H(@|%xaG&{tLUVEsrKP z6(^QSG@JCd*!X8+HA^CmZ-$LD{kbl+p)O6ocu`nyd>u`V(ZmZSOz@VGsy*ax40b4rC?;hlLJ6O3YI%4qxK^blECJ;y7* zn#P$CD`6>2VaZ|};48*EB$)(wRVpZ`uQDmF7S&zxQ{Qa|^5x&;1=mA(6cV zojJ;vJ`rdpLuXo=>#*9}@YC(l%J9X4J-2FUV`@I)jhOD42W>C(M3S=C^aIgxo9ENA z#mqXmM>x)NMa>|}Y%Frfv32=Lb<+KqX_bA%O4J#0l2MS;b{A<(qqE|yI|G&PFuavU zTWyODbQ0+z$t7T`Vf?pk|M8iBPUhHCA9r^q)pDZk5x@WY<-VT|3$gxy7X;BS=VCerZNaAnpnXIt(&xc z11?Z&Hq}KMH)&;l$&%hBSAB)(o8;%9Z<1X|;E|Rn%s|~43I#*C(Zt7iNyF)Uq~+&~ z5|9rjaj^LDVT7|)tT56Cb~f$BX~$=}c({v*#VDovzyNoX8EesIly%Py$81rAd)+Un zfVWB3EyO?c&E!xo&ai&fr6+>sbxn;D2&y`@qD?H-f_5mZCzQhfA7^g@A9Zp6|0fV2 z2yue~;*A;=Jc*i0M1+-~8wr&PDk@qlcwbm|6{P5e3ACGjZPtD;w=e_1}Vf}*}KY(B4S<9YEoh+x5!zt;~(~av)eohWT~m3;-BV#&abP3?aVc zNSK<;L(msgmbU(hL2#RTZE81QO1gLFf^c(tVy<6%(TxvEA79BEifn&vHy1BcjLOzO zYxpuX!@%TPK_J!ATjOlzrw5O&{cj{W27=T#&8RGiG@nfu%zGOXfEIs-p|W;vfDpE+VnJ z^|D#Gk!i=~#yw~Ex6V`oBhZN?nePp?XO<`aqZ4}DJL`5TTA4eUZWCB|zI`CwZN90L z|7<`J!DKjCx*T&a=HBH)cAzF+xSusqCnl^LGP!(OMcByXg<=LP-u!?Gd|PwyMUI;E zjit{+-d_aD2MHz!_so3Ipy)Kd%uIj*v5C=gLMC^KbuQ(S&lkCU{P-dm>CSZ&l2m)~ z>p)A5G|#6zotNMo&sW^%UKJ+WQD0O=h);0lcEg{KH@+o9TZm;kFjBBXm3O19u|gnM427{^B_=C{W_km68)ZBwU5_c^Xuo*1Lv_ z^fLAaZa`NqF7dwlV=C*}aF)B7AhQ+;A;CdKHR)WHuJ;n#^9LNq8Rp8hojS)qut|}rx$S z9vRB?giglc&8qnD*>(Gyr+0 ziNNtHU3Paq>)G!Oq(D~pUnCFt-V__a^0&ED;`ZFlfj;AYwU^-y%6obx*%V+lp>%#e zHf<^$xg#p(N?uxCT$(+QRm=FKRk!~USvOs1L+#2cq}4n|rr(SHjbEYl<~(5Bhojhw z-UcQ8I2qfiO_Ah4$t=k5GOf?Kbbwc%8CTi<%KFF?+l*}f zC=pq=bdTq5=oFhc1iMG>=2_hfiEE`-r%T1x`@mY^O(<+3*hq-S!!<&70Gt;w37WR> z{@e{D&oBi*Z${@{9NmQ_Ty*H|J;F}dba`$efjx;|JjG1ANilX`T3UrxjjFZ`=8tKbE*H? zi=WHl?KQzW-}jCknz zl-$2Yb9Xv(;6?jYlt}ECRW+@zi2V3X6j@&{e7*z!AIoj4tRLuy&)rsvXeU&KPKvvM z52%~@%~$B7?@WKWj-|Tiw9zpP7xfd_?j88TplwS=XO8SzpQ-EGsbOHQ>BB9tQtTz) z#ycLo#W;@uXMODo-M2cRD*Ey&ghsbW^Is*Ye$7AX&9<~ZdkFGQ39X3sj)@X%ic7Nn zf-jn6*&acH-3RgD0t6y{c1@6wn9hDgLh~y+E;ezQd>J`~!mRma7=_*n+gxN-NyTPS#9V7({F!;o=zW>?ksun9I&XhiHW!ZbHO`?^-BC5OAm5GSwRHy z4rw+ZPc`zF*>$w8vsJQ106Y*sD_ySu_7N*PvOLWSF}yN!zzd`?eRLbRFxPih^>WZ4 zMBAt^z8}F}3{g-c8zk0|^EVXMk^V+*+s}?f{if1Fg=!z+jcH#z`b;Bretz1>@0ma(dMJ&>k}u*iv5#xXRTnm z%f60kPY~6Hda5brD-G)DD@0`(LH8$PgJG+-dbSoO_r-d#4}rrc1mlZG^BnjtBSUw_)M_4o-^a`z_z?El;Nc`O>g2iE-`;}=vY za=n8-WaFoXbsRrIxo7Cntowq zm9gu=R&7=ynYC1JdMmt1Y0Mg&|>$Jtu>Km*&pO{HGK5MkF^k=D;#e6 zNGbU1-1($}UHqYGs2^!w3~sSbm3Q65LR7tkfacoJ!#IQ7V)p&o#}8nr`m&Hs>9CNQ zJoF_emm6nUS>h8>3}O-i#O?@U25EP@tkqyliCMGN_5O;G-PLku+-tNzA#sn-wqD;< zfrwCrCT5Ba_#yvcEYI!;P?)Z_!}1P2aOH*O`!@{)Wbw0^pF&P~lcRFf(&<2ve;7wE z1AmA9`O(k4{)wKoqtb^ph3TQ)m97f(Qx@$FcaWZRL-@Vo0j2LPl)qi+udfZi4^1ik z(J#Yv%~YkUg7T@Q!3DvlIoQaE&>}WJeV4V25 z#&E6cch#2~hpDMI>(eKe&t1R!T(@hcXXmE(yA7NhOCOCx?|bWGP0yjv9*r$y`reAg zWvXjz;;L8HuUp!`Zol>xEw(B?@VVG;W8IIg3>-s7r&z=%1Rid6%#i&dgx~*}DKt5i z7Rna0muOr)Cpd#)F=@7DcF3Z9(fNbjIN+rPIZvgyw8v2ne7i`|b1<9!UW@eNu3DCz zjz43mxfs^G`Sl8NV@-O5?e8pmu_nbC>`E^KuP92V7-VY*WX~)qrKj zZtR#TN50J14IMLe4sF?2vIZ3Qbi>;?P*SwtAUvBeYE+_LnxfuwZfzmU_vTTBMNN;5wYRHKaang#_?u ztqLY72um*2x!-K%w`xUdNaH*n>b@D$153!A53Y>Wjb3AT|Rv1pD2lxuvP4uejtF ziEoTG#g+}-m#WC<($&$%Vd!0oP?j0Npe`Mqxw=og&(x+NGXiC-IP-POWKfGU=aQLv zv&k`@>(ufNAMdpijAwC)n=O;^EY6gVNM;1%S)6&cWip<{nZ|D;7|-HN$mw+&@k{N~Z+efEX+cq+ioU3kQ zAk<)g?q0q^V-{)dr+JuWs>x!ymH3FI%c?lo(BOZE$Yy?Pz%}(^Y2JnED0;FZY#Or= zx=&^zM8sEI8Zhy8FFaMB{&9JhKpUpV>-e$UwH4sl0;_RXg@8Cp0a(K6hAf=S&CgwB z(1DW;<`~a-ZJzPQa41`7PCb$kC45+YYOc;2W*j*qezDif#CKo3;!^YW*jT$Xv8GjG zap3dJl7{ZjsZ@3&ok+c%?M)q~Q)kcNSAN1|5}t;y(mFfy{thzS2nH*fdyw^s_2*XB zgGm>K>qDO%m458%Fg>)p()ZpJrfW9*iu6a+>n zR9^6kmf4}-IhY)ALR=PUevR&?J4MaoKl+UJ6gSjWMHF5Fh+G%q!O2Rx(tY!Y*6(Ri zyS3-mkglK;l1Iry68CS?el3mpYJGB8JJkT-YKU+Ou8afr;V%0^mS;{KJk^$8CH*(VcE z=iWB`B{*s|n_iaJtJ~e(#*HJzR*6jRv7o$`Rpj3eI!@xs-f>)x)diP+O-GbY-#+qW z={a-flt-S_b>(JNm-llC?MBg)Q_tCo-ZZCElzTesw5apalxcBCEd#z9Y zT-H8sYJP}pTU-}9o&BU1qP0bu$0O&sSB&1r59x&VE)doPm}l=ju;*oJR-cR^VGgfU z*0bGd8r*66vFwGoDKVx~<3{A0ZWl+c(~NE07)2knS+j70tWa*tN7y6M-89kDzPiLEM8rct*}%urcq+`(HTf4%6z~J~kOz~Rd=QW_0S{+< z82@45iCn)2|6(7AB&8n!-z7j>3UIaoY-VTF)*(~T)%Q`XQZxTVM(g(<;%N5MG43^<> zzwVZBu7ZDr{qS_#i&aOhxR6$GR-UKZ#oiOMuocl4ag0IwW?Q?f3 zv&TrwiR)!D&XW6y`-mPx;6VX_*SV(q@&rEZI|!Vo*LTtPD5LLWh4zdjFD79to?mD1 zrTN5N$H`o7mdyvF_c^3xSyn~iF5KG#q4$QMr`OyGy?bp%@3957^mf?VHmtvt?A0a}s%$VDh??NyO5lS%ugc zV%wQop2qGmxtzBNISAsUrn%}* zz+$|v;tyt-r>h$IE8`9(e;s5);Q?*|VxD+)Rgp}8I%9cQO{(0}D}R7B%%Z#{k7O^WLtK1>;DWENE^N zKFvEVWexOOL_3s<1$H2LY@!IUFbIdQhRolpW`Q1@hp~&|&*036&HOnsGvdGe8J-!j zi9dCj5gYk~Ti6EvG-O67+}fDTh;{rKml?5^KjYcI@Ml71#Mk^elRXN5CS^u^$)EEw zBi8WeBALM^i&EwJ`LCw^_Rlt+=3+J$(P^%A>!R}D$?(Z1@oRE3NU@8+#6(d36=sGK zwtnvZPyGrthE+!ZvZOH@_@7F;+z@;{gs;j$z}w6`^FuQvrgrL(&wWOpe{(0x*O|QF zSGz$${->-V%$`9_>*3XRNU$4=Jki`+gv`X+Z@9^RHM5021_cYq!wj-k+Sd0$?&2W_ z8)W2%AiqQ%0Oyeg`7w#_#rd3v9Bz=>0)8)~?ooiV&LHik#`m=|?jd6adF~J4RNNkL zHW=j4AA;=fA;%cx_CEwEqbWGY8Dy5k_x9-D9&)@vKKnzEcYDYQ1}QI*@4=b4nwrl9 zDt`I*L7WQ2BtiV-`yd7bah@O!{yvDlv5CwSf%I(rTbWp@)a16YtSqj7eb004BpfZ8 zhA_)#v-gDGVR~3w_i-KZ<(cX?{D}`7%j^cArdc&Q8GkdA+ue`&DfQr#rop9&aTX{s zmYGmB*(MeqxbN~zr~AoDKdClJ`%v{nmtNua_toG0F}bEJSZ=~snRb8rwbz+Y<6UiD>4v$w(@u6or| zNHIEtzY0q|eN7&~l(CzvP5g*1HeGojwIBqDc9Qyo{2l63f0ty9wx2i{siE6E%_jm4 z8dkl_SFlH%`CE}_rQ3(4FTBI_Ce<2g-4|>jqqU178Qn1n_m3hvK6vg!KE~25;$##C8ku_hd)oAGp-4Ytn6w(+P8(_9vUeHHR zP%7B0$7l+h^`HCA`f=7Uk4`R4i`{tcJO>rvlDeP16Rr{!_fcv0Vu>fL*$WD!JSZgP z_cyzbH5+QkJIpOWy%eo(T5dwL(3{V}RJ|PhiN0C+qvh#nAX>^(6x9jI0wBX?zU!Jy zUma7P-j0`gU&hHw<23UQEoxKd1;qV7TbcN6?lRAhe$c1C!=T^JF}09Y|G~$lr5~`$ z0x6Km&a^(-qDL`Wqhz<;&p)BtOxJq$O@AA(fotij;*p>Uy#UaBh0A;M6Hn8Rg!{JN z+r5R}C|m=I)eQX8jxA3Qk^%etN z9gJWl(*+K0)trI*ZTu7~Et|%+?gV>RgVGFa)W-8`YWQC%6-jC{n8jV#&*vDAf+%8> z+h1C^E`#Lh2vfe!e9@5omwbRY&w7;{@n%{Myve`&e2wmd272{d7Q~8XZs?>0ya?j3xlfIkA&G&ceYgrcWi_6X2>0rna$#ka4fPvr;HLB z;q2KzFtqz0%h0~O4<1o_1Jz-_;U5*(?GUz(*L?OSsA3tf6Y44jx&rErawNKy=&!__ zATc1fji;NuwIo$4-5r0_Oj#VsTox#bTxZzgZY5W)+e4ziph<1bAO{AFuyX4PCZJ8USkAvMm z-t#NerJx9b1_Wx~V0TOK^(Q94IkFVJ(H%c<=e}i2=*@=*Uns+2=4y9*kiWa-+iFVw z=k9QypXx?_6IX_s`wC#D8{bAA-EgLwdFA)*phr(nET+>w+JG9PJ^!+BN)#Aouc+UhV4p zLy)pR(s!v|k><}xd~e@h@{m%&xWDj2koS2=sbZ1l-+n)2Vg@yvHg?7L)S5UQh{@8| z@IrU)d0(kBEceU1F_nuoFH=kDRxjcu*HOpvn@uo&L6PO+6()J7bxrtK>f= znEvkF_pPc&W9eHh*W`eE?)FdyxS_w)GQtft_fKZCehqdH@GJYIHD$QR6C%Z?@OwVy z{#MwpN40jBJjHy~lDvy4o>FM@_LTGlWH$E!Ujscd_NJMVyDMBXZP4F~Scp*sZkt0C zqHOnYH7vr9WAf0$DeR9}SQApOV1t_C#_dX_5Ge4n$u}GW_~;VU*z6eCZC!}a*ZZQrpq1CZPk@>btU>VdA7>*{I*1~_dy2Q){U)__AZ2Mmb`#CB{Xk&nYIj#H zbL^MDXeiwhY3tjxv3tCG)5iXhPo-4m(BKLT-AUZ8swC%1>>qWN=k-69ywkT+<vV3cLS`;m#H=T;M zEMoAiYqW4YO=y+a%kIN~<@XN({uB7>CL8`pate5Se4gB z+P2ZCbz#&JyTmfb*}gT>R*mWyrbQ&&1$h6G{rM(;FmcmqBGc`E zHm=WhffloLkB)`Ep=wa@W}uDq-1j=WUpkxF&0Rs#8u8BVY zB&=HHtJ+Yy0jGa|Sl#QDp!5D@yY}TsbAk>u9#IlWUZlRMR-0IMerI!QSF1E}vklKj z;qYWnfDOG~sD{pdzZ|3OXzvgu52h2i~fm%iMOUiFj6 zE_+3ij{w8X*G?^BG~1Rm;2#^QTdLkcSV-))U+NG8{9^jwOr+?d?gw(^C!XNRn^CE) z|69WT=T6+3AOAgsfqai+B?%L$AMoQfM}9ZYU&uIBFU!8licpx!lK6hhmY>5+g0Vuo zVJGzZv%GC&j%@<2{Z8P01pIFSpQbGcgpCDq;t}A%)&+ppdm%|dPDtwBPLXek3c$Ak z93Isl1jpA$grcH*?S}SK&d4scRT(*y`=e3kwU9a#{T;w|Q#E_O?`5=QRroo3T$r^Y zpGCZIPvWn_ERdX(M^Y7j-VlDyb_uh}m@(0N=RsbN}|HT`o40@k?QnguC`zv}?Z!B1V$GpbuHzSo88bAE(KV!V2qwx0e;tQaBWk z42;j39?N))a>vjpXmE6_>8imcoL8nF^xsw~PR44tuYI1rm;bzr1_DnDdRe`USY=Z= zmdVdY|CAyV(2g_hkP|PQLj4+ziDH72^r)*IiS{G1fLTrp4&y3ud@s@OpO!(LsZY@} ztIa<%yREOP4(v4RVJ0$VUd~5;B0uDVpx^SJdEhenzto5RFnw-UI(|x+9-2~m()nS! zW~$Qnp5fDZHBEdaF~w08Pxq;Ryu`=LAgFK1oaRZAISl93Z)kWIMxSP2xJ(eAnAM?R zq5rZ&@&3=x#ZrsiB~$(1wGkci`UgGa|K}b*P3RQEiyPLeEOj0v*R^kd{_2`jqF1E( zNb1EqyKN9a!u;>cP%ZTi;MChXvP7VVOJ!f}J^_mQ;X{|3;+t?eO|Xx$M)swB*k$T6 zL>s*ERsgVAjdcC8dMO%zknTm?T5mHgW ztCzR^fVRj+w3lz}Olnu@F;_SwOmRl;c&SNoV}Mg9TN7J1QG{PybQ zc${P^?*9>SR|@#|2fqacXr@Y*sg?^ha+!)5fce&}DuUkJ8*zTIO|k%<^W(sjBkNPs zQ49;N6jz==h?7j8qv%p>V%fE^(xrMWPJEh~AWQr7^41d7gXw9%wTJ=@-N9C|{4fxH znV~f_z`cWJuWxp$VH5wF1*#|1^)T=pgFWX=BxKWi9CxOnH#Dv14sIPk7GXT%?#Pop zvBONL+L`uDSKrx8Q1OZwI!}Mpg1K{Xz>8OP;+EJ?`CQ+$pfd905_iu$u^{25SG(9E zSJ>~QKIN8O)4a0GHSJrrY~fDGb9*=PUp$+dYnbO|D<5cVL=UUu1*79S$(WQ{j6JjE zh@jf0w>uMTpwl_2PBiVuTXfg#Q#C@B9#p9Gm4&W-bnPdJnX!zK7|^o>JwAZG z%0u5|>x~>94QpoT+Girn{>kNTwI8kI2?m%w6F$-SgmB%e!6~@K0o;BbZg3Glh4oMM z_3xzm-)!|g-XulE?;`W^HH5GC@LzG~&;2EU|Cfg+Kwd!}7q{oCkv)8S4iDNR*BUC| zq_;5MzK=C0c>I46{#bzD6sI}asm1v5lB}!hY`mpag=EjFk=jdj;@`Te(qLFtkAWL6 zK@-5Mri9yEB?$zi#}pJ@=yV zRi@_jLk!2Be9yH4{~OW($^WUS$UTHv+`0<&k04yY3mKEp+O)UFw~VmR*>jE6Ob*qI z@%gP5F8cEF*}HeX*5Zk*cGv&%%l7P%fU=*?)chB=rSe~@{Jurydr&?*(K5I%M*n&D zQt-_N-;lYm(w#w>hRohwfehLcd2)LkN~}BFH0^ZG+<8p=Wv)hmwK<|UW@@fkUtyB| zXDg}j3FF1#Tv;7e8hK)SKHqKVxe__5Gyja}e;d51PZ{l7Vx`YXS{wcB6)e~HDcydSHMI3g zBWlH&+;=pot$2d+$4c$bXyCK@W+v^`gVr+SRW(JP4SkDlCZU@#RZ@^9+ZH`~3j2=kjGfEb`x#EE>=px;H>`>)-LY-#6|J7sJa=lDJ&l)? zbdI*jwr$IHht@xO5Ur1@_0#B+_yjZ~lNfLokakyc!!R6*+t6Gi|!qDD{b;DaP4h4%1A&3|` z*BM;7N9q54prgaXC~wcKpv~nO$vx8pgs&j1LwwN|X)3M1R`s*^C*-#hRev+kP`Y}K z(VDqGT3oo}e#&ikkNh(1$Mpx&y+hT^S^oS#IQ&O5npzo4pMql>6TVsvlN{h#jTJ;R z1K*KPL`p`od_3`tR#^5snVNHsVo^ljyoapWy1dH1@CXUok*PI2B#E-Z6TlK+!Of-U zPqR0$_YM1FmsfHx<>>{+%7K#KE8I_nkevQ+q8cs`b%W>+!)y*!dhlKPSd zTB_UaEljw+@ZG!Vy>3dh?frt=T||^~bFLw(TYG9zlpRQ2W4KL@G=IWCRxc+`)QrK| zWB6_BX8K4jn&8&;xl4&0>i*Ac!0n*_?5jEFm{0K3oY$qLMyzv}QUOFAvo8cUWBFqD zH`DbJ57(!!B$Ue9_@8H+x||uhZ%w5cyyrH)g^h6u$HZ*ASNW@51jH(h|4Ct^Y-K^3 zaDR#a+D_z`P4L?Yqe+u)U~|Q+nN|+ZJxW$E9Wa_`MZ+m`=8OdPzEcAe5C1Z8tQ(^hKl{or`P~3|7?IhN_+kZoh~cZWvS% zNs`i~wS4iob%*7P^|WOpm9);_pSG*`C!C*W!qjdxjb7ODZlmK;@pKTy9acrCcDPAxC{Vt-w*eXbASF%z^tqia>y|&dzE?=!fDViK%X# zZIXZ+v7Rq>4*8;CxaSKy2#GYyCnuIZj4KUx{JYU@l4i=xzQoqQm2NrevggG3#hweZ z)1}GcYpC0ri`{;{rt5;5BF)$Y+QZuJIwW6P^)ek6PcViO?|)^08J_PF7rQ^cGf#t$+pgqu%k zPHSwnndk09a8hB6hIL#g1>^T@1$)k=phoUXXd_T05hb;Vuedxylz8^K}#{$ON z^hPxN-7WfnA_x$Bu$-Fu`nUkQ^02t7z|K{D!k3EAGYmsrqN|C3?Sd~m@Fmp0d5655 zBpe`bY03q5NnF6S7xee=al!F8-}#A3eoH=bU%W1JK_|a23N}R+5#9YBLdtVy9v!nB zEDFE%#P!#3WG#}jNAj=ykmEUl1i8X}*gpzFM(eIFfM+VYt*SsH!Br2HvZg2FjNX3- zueP?HqQaS)_aT{<-n9#)J9=E~XIDO?5wIt!j#c=$OwCcx^#E`k#ZOc5(|z%~Db7f_ zCn;`?l@NNH`AZLOItosdsx8U!Q|Oxw>=ZW9l#>yK#F1Qwrr8GF>VtCyMy%Q=jAv z`*y;94cHZ+B0fZ>+P<=1FDMW7e@3|x1a$XZEA6CK%I=jI&;cxSVka7XGiZYW8YRd|_lu2k#+}aGv%6ZttrZrZ>^U1Ky7`36`|)e1Q!X$|XL`8Jq93Y}&He9b&kr9-|Xr*9T#(AMzzZ8a)A6>Rrw5p1}v6n@5Y=!p(efbFXOn z#1h7{+D67PHMla$#%|^bGCHnyYkz7nmHLIVDYyZOKB|xd1hUFLOBs!m%Z&xpo63`W z8gn;NIr@jG`<$%r8QO7|x82PLlm4!zeSLc_W8;1v#Jz}Mu(yMe_asKqMD@gGp83C! zVRSkT?B@S+f;b5tgzZg&4|e-B*qHore)dOvEB5zea@U^9`N3m@!t;ba1C=g|hUuX@ zD*g4CFkRDK>BEi*(-pH%AssK2e?aL4!^7`GZ&&)ULiv=^Uyt1HRH6+d&ncm0Z-)=)G4!ukDCX{T37WU-1C*$-TL zjOLe}JS7Pa40NL!M}%WhB~$StH$hE7rzLH7@x@QDS2wNaki0M-TOT#>nmYl1RxIZ} zcp4o7$zJnSWIFAM^d+7QuX_YBJQTYlpic4ws;yr<(uk7%#M(gpkAcuCF4RhMhJoLm ztja%DKW4eBF855WsXT+47mX*B_1OZW!=(c*YY;4rER@&E)IhS?f1%<-W@JjNV6Ty}4d4|t3bo>I7MsxWVoT6T0-~8p;k$MAY^C+2P z$w(oKn8B-pbOYzF77-bJL-}1U(vIApH(1-fdcb>POv&?v75aplhwQ=-gFudj7ADVt zF76;PNNRrYND}nO484$>wCjk-U;>F^l1zo?`N1M zJWxVxo_0*GvoG_w2(XfXON@d!LFVo=4i`NFLP3tg`GMD;)&`?%E#!Qc+dIF*iqE{^ zy!aXV2Q|Dlbbx-N1!<6<6I)pD)`s*E@;sxPT8m>hO2Jp%tqIvVpmEJBV#UC^cT=PoLIsPtVG;X2ua zB2O{VLPGh$hg^|lSBQ*Pj+Fem4o^MUd}H*wua7iuQhP!EdQlTp!FSO={z&!_aEd?8 zf~-R(mA#`w+3z1c3H4y~2u3Uv$)5#-7P6-XFKK~pnvSe0VNiV)k!G2*|Ho>|3)Ohd zsSHL2?Q-#1z}>-H2R!@W->boQH2WI6LhZ#QKp%rF4ZQjrwkvx#AE6s&!=Bom=(~`I z_!PDyd#k}T@`-mWH8*xc493#4j9sOZ!>*%fgkNUm&pXmg|E!m)f4WR#L3^@y*%xas zCGzderta%w7x+-` zGWnM6M~;-3y+Znh&_z2HPKsB%c6>`Eg%=_e6b;9A1zCSz-EC(J zEhj&c7-19HQfpgq|9Rf(cP!t$dGua#sQEE->5yGyp?m*sW}aNXBF)E`gy480Q*+(+ z48bBki4WqG_meZLczn$Fpz>XqA})@t|Pb`Sq}9si5f>(OgIW5+hK zyggA#jA+bu=Dx1`VHGD-V(r6c*8bG!k2_;qd9@=cxPC@cx62gnOKes{+O+{cNoUY55{nZN&GJLvmYauNT$bSV+M8%o<7haHH~6LRD6 z%)J?WqI>U9xG&I^4~6>z@g2;){7Ye3g&TCH=FSm4S@&dInmCVDh#~A|yFRz+F8ra1 z(y#LrIZQ9Z4_XnYWn*T{TSpqbYMz8Qq*1t0Q+abKE!AQUrX+3*1GlKGoR5V0ccU?^ ziybPp%)xbBYjCyX3Dang>0-mQ&|Uiv*<2NEUQ_T!ahg{2YxIL{`aMJZMna~(Xp6SF ze){Eyi=o&PRPKn+*@<8ulh5-~|3}`q65qQcJH!^)Z1hOnIQ~RiP7$hThmi->8ye2l zt3V~4HQI7KP`NjwEvA%YDq8qlC{(@5Gt9Gs-(n5a8;78oCAiB$o>fFQUb^$yQY7=J0c}^oX6=)W`az<A2Su% zW7ywT?HcZv`@E%e{J=0hbcxcFhKA{y*-GDgh))xvEpy7~)c;f>Qfl_aXop33_Gw2y8di!2uv-agAL*CV{;`ah(^9F0efh|dr1 zTdmd#Gq3UOlICTJgX{6tq_>ORJS^>~*|RZu$tp3H7D)5WAK`kr8EqLwYg#YhpSE-O zC!9MkS4cjwM{@gpiWK+cLX>k?U>g(Lzqda%`eP!!0p+iKGD5zRL!DojOOEH7qbdQVpI<*)l>J&%*JW*IpG;4-<^VlG+YoL?3`)&(8nIg?U zVTM{bC3$obAc;FCRH`L0Fq3g8xY~U+5+5mVr)t*z)}9p?o$eTBhB0ofpt8EZDTM)z zT@!vd?u8-x=>4iWcLl?FOg;4H)LRyu;*)9wVXCw1^S;?TWnR2dwnCJSyRGQz*6y^5 z1><(2)Vp^dKt|gjxDE^0@IV;LE);E%wK5!svsCQQZawn%Q?Puos7FcQje)w%$;|;e z1wtDT%D1ULtI5?-MRq8I5y(Lky7oQV z@@WW#Kwj2^_Ur(#{OmI|htx$%%uhS4KbxD|sif$O7G7@J4NtzdX##R z{k=|xamO>;5^o0jZHcXI5348g<)EvJ-P;3kL}xQRWt`jnh;X#@-c&eBx?m9$=XiO4 z*-2dTy>LSw-(7?CO)VuEn2smINQUa=(U!k>%Dn-r8|5I}^&v@IkCmDp9Fi-{7ZiB} zD7W^{j5BEe2-@7Ar5AGQO=Dr__8rWZ3drjl2DAQ!@`52>9*O?aU_dpR(7a zFCUQlbaaXr`8K!%km2%Tg(=ZFwMOphrXWkTdUPZ<>zk$xDv5XF&w!FdYqaGO8=i{o zx-*D3@S8!@F{0=GV?GW<5en^(Jz%yRz-zY#+*N?XsjBr{J{g8+OCrR>{CJdNZrw-g z+nI#3u4fWvYPO9={G8?J8`=1a&Krs(9%|GYNJQuT`WkIH9c-=VhuA|oaH{a$>G2K* z@95Nf&z1p1l_&GbpQ_(GJfai%e$-$?6~Bw>ce>8T3HOIV6Yzv-qBiIoZ8^c0E>%CT z;dcju)KF7)JfMNA#!E%#;1~w~Q-a*VERTir~LwR7Zp&2h2kE;sXXRJK0#CVZfG8`rsw zD51tm>{~to>NMCWj1qp%EOUBer9UZb$?(W;77lNGr(}4fZ58@(QdT({QRd@+GLy4UoPwbs=ykt&V-#K!f-ewEye!FX)3Vv0N&jg6u7qTaW zo;s}sAnzKKtl%px>k@54KP|~#LK6G-s@w~bAJLYB$!u-ppEljK3i;w_(75YASdVrA ziExF4A(qU+UoBJf>!aX1@rdhIx}m+8OvUonyW%juCUE6fZ{u6`t8jcJ{loEH+a=#K zf3f?_9~|G~CvG*q4{<5h=ym;{z)F)-+0*dNI33N0q4mBTS)Q3K%!iPs*M&9zzl`VN zvwS=1n3S6cu)*XZ0F{j^8bE$r8`)8ZEe_QDZ zbMA9@$?GheG8pJQ1?7}U<4!$8o5R)a5X6Pf_VtFTw>bFzkmLO1zXne(fcxO!F7q$kz24yM*~8b3(eOm?8d+1$^G_aN@1{&sGEk9Y=LqG?I6 zP`BPn1KPZ5Td{v9)bc&aa2LKCTGK#Bf4&=^H_Ufxf6wE)CXa8Xdc||%r6InZx5CGY z4wD=^fX3;_JHD-&D>J?4KPs&&z7HS`AcXJtzrbg@oHA($&AxI_EOqPvRHSiL?6 z7j`WCg)WCXoeh)OQ1xD<*RkdHfe9W_wj-xs(SBR&*b9ErY3G>Qq5)(+d?>nTt(fg{6Bnot}_PZ|L9Nlipq1({QQYU{rSQ6{B-N~ zT(bFl+9Ut8Z}(^St;-+v|F8UtN4KKKw%;lbJ8u}Q{qJ7E{`X|PKtix`uDa@wj;*Kd z-=K0o>|~5qS#BtF#FkkGUp=wF?(%5as;MeLgf*nl4bzTj<%}r`a^nTsjo4}Q; ztNX>HI4QnDdqA^ni~IoF-LHSQQBJ~EcPm~4c($FR1g2s+k?E^>`?we0TIah+MnhFxT|WTuk`fs>+$=;Nmv6?s;`uPAJ0uMyMbXU zN1E9QaHD^Cxecyvq(O>T=NYbQaJfr`WiUX+`e5<#-hB4|b(yK1WB_0f$d1Og|M`1< z6K469<@KLPkXB3qH`{O;Bijm`xVb|5Z#mV}%g35VPN+8~8m(54Jdifm>r6{>s7IYP zk*l4|e^674*u@~`a^UUSo_u>bK$1~w{g2@HvL2!Rr%$cY<8}_yLkB8dw||(f*-`1{ z{$aXeNe$@*+l1*pvz6{$DF1-cW%=?IJ1Tu^0lvG^AMF&DAG+Z%(y#6prfafF_b$|T zyVBzd01ls&sX}@-9vm8J1X6~P`vhcmA%s>c?IKh#5yc$tO<4X715L zr0??Msdi#HocUZ5S_DATKX-b#-ZTy#&N&^QInly6Fb!=l+$^kRlj434_vr{n?D}6a z%yB~zUI?*yCO%WjpGQh|_ms%FY1H6%1 zh#XxO$;{~r-Qx&2>Z)|tl0Ul_SZMwHjZ7DN;F|GzJ-?l^{p5shno4iDyHP)>A*uae zebaP3ne;{%8h3%#2vaEIXIb>0)FRgvod(_Dgl8p`-EXhdpkUlq17D$mZXdWuQ#j@Q zeD;f_Pcvt_>DRGeu+0}2`EL2QonRyfLCT{2@>ka6iYGTzc$81`+ZEE;j$WvKf_)ZcEjWJ(R!^vH!HT&Xf3Z46{kgC9tR@muSMX7H%FhuYci zV_mTWwd5o83bRLL<59yS$u>)9JQcb07aX10LSx;3THQa~wzM`iq~KwvVK|@Fs^u=a zLbQ@ERHS*9$UCZN`#S?LHEe(agQFjvSDtIg%kzM~xy}qSPrI?a>0GFRy=8Rq$g;lb z6B^Dg$$-MEq42@~G72}p4G%_HYDI@~cS=LB*ea~9Wofw`OYZCnVaW`Am>aoxTNB>G zhr(CjiA@Egbfo!p;5@KRjvw*LXz}Oc8PVC>T8lJylAzP)`HjoDO0}H%pIk`Q4ZP@X zW-7&xvhie?!v*tJ@-*T9Hp!E{U?M)0f zkXLr?fjWQzKzr$?_1pM&ab`0zqTY?`q%81S=Ps&~fJ_#TrfGe*Nb<+@!V8tm&~pLn zc$$1NU!UCxB<_>v<${g6;O7sQVB6i%O}YfD3o(rBiA((4*~eCBf+}GUqc$^Vwl#wy z+(%Ac3nL%COp~UOY#Z+Z?*3rrVEcxR-QgV5Wd8~yVy}mn)P$^m+oNPQ0$ZK>D|kAz zHYu;@XXQ!d26t#}q*-x3xK!ouBaS3WXMO34Y%Q74H?%xFgcDXre4T`EH}K^ik{;!Q ztkEwSFr0 zD#&tANRBwJoaSZkqfm1+2mTUfBKfn8d4^10iWsC_4XGTbtwNQd8B|fAwqhR*0{P~z zA^C!(G|kS+N0hf;&Q_VL>=lF8NT1=%WnX?En-1oW5C2x9qjh>haIDpCd~AyXJfXU@ z&vF-PxsbHzLsAW^PoK^!Q|!8JC#Gk8lR6Hy=?Fy`t1I^EY4a_xLp{J(V=MDV4fw#l za;)^qW6HBTv!^NOZ%AA7g9+DP9a<{(BRkePah}TI0j5avd<}`cuczy;#zSg+x%(Wa z8(SmLg1I?`gSK0Kv`xU|anL!to9eQ5yRp>I1XmM^-*c#MI*JP3((I==bQ6F62DI6| zAq4zs)>&xzo3G#pOra%h*XH@*_?NaOI<$UjwTMoMR(?Qq{qaPf!%=ed)aYs1MYJuT zOVm5^WhxFAei%s)DHq1refA=T)F+uLdH6HL3^%GF#q)0cmlB~0MA=FSal&ZbpCS@q zf=GZTDx%k()}D&Je6#e&H)|lx8h>i`1e=f49&LFN?5%;p`%VxSt%nl=><#Gqp3lJi z+~+};7xRNI>yO9%!e?}OeDsv;(@-}!eo`Y+=&?3D}o4(#rN z4e3%?mtTDW*mFS|(1rQu9%k60Ex%Laqx@4CDA2qK>$^KusNPy~wxIUh8tPF&O$92y zZf8drxF#Q1e#v(uj0G~3?*E^ozNAi>PI5OI?LHP_4G-WG0k@kZ_C@z#T2uZ@y}sP1 z=`VV}p)V}{Dx*1?P4k6FLCXGCPqqcXz4mX~nCUW|L6R=eKYKaKNVMe|k0bX5%@n@u z@yx|&%V$3ORb{97EwUF#nF3dK7b!EDE(hij-i!AP@`uqpWdQnlS#Ph;^PY94V))}4 zZ@psQklqJ~xgb`UvzMlZyCXD%J&&}V)AqnhQTXZ}gyPyVrdVnP6|JTSJKoP!GE?&b z4AT&)o5OS9pnv}{p-+A4W(4?9UDw9@q_Cr}Fk9vutMlV-nUwiEWljUry&yatwx5ta zn!?OqHi2K5d0-J=%y2`v$4tdE;JNd79Cn7yc6Kl}mf7{-{c4djpH=?Eb)hf^&^w_I z+u0MRABWHZtko!CS7F%PH+`tAg}e69x)@(cxOm<7KciBs%xc#aSY7uVUcv{wdNBah zY(tH1)!jnUVQ=UyTps3cw9zg34w$^Y8cTO=YA=oVZ))$HAU@h>a^$FVU0ED$yD8it z9M17I_lEh;a*OR(+@D1ba)ma(#VU8l{sK0V%wI`~`lex0Y~uTx+{A?~Q?tWGw!pcA zk*%ts!?h`9p8NwY=Np&nrd{pjZQ$p1F}b7D2glOq$u1JV3?e@dJLR^|%lkY z4D_k`R5$f7c@@Ph$_ybgs)a36Gj(71yQ){f-`Kl#mVu2AyVGl&Wqbvd2REdDWU8YU zfZzg7GU|odp^w^~R)m4E*#)pNI!Grs?+RV9yrMi8v+*Flq5;ZcV1Q=<=>7nZCzW;N zC_2J-bV)b=No(Azk7)X=c8~pu05-_Do~1h4`i)G^F_`l@!mQ`EuG^H5m1Znca9Mmiz5AT0Swp_sr1v}0 zSM8E)x5E2(EPOfZi)&NirXeNq^I)67#*16+e{^4{E)(tKo6lPE(ZePY4xx^Q6ds%S zmd;fy?EY}f;cR47Eh_{bA-Ie<6DK8)IL$)N`9qiQH!Y7+m!jxG~*%7~z z!TsFiVPZqVC0_(*1nUxQ>}73S;nw_7lw?PwhX=<2i_bQjR`dMUQXWkotOG`!$J4C; z{3EbUtuSuco@>YM(l|0Sb4({)EuhBUxw=`H%6bF+5YR|R1MM!*IzV+hw_Tx-R~{v{ zS|PT&=y7AKX&&C4PMf58J`P0f!mA&t2OqXA8|pQ*y;8TGk=~D^NY!(sQ&|$fit2`S zY}^*E`BtwQnVH_n{rhrp{Ui=xjy3rK@OB0a-}~lW0I<6cFuOdg=EVxld*Lx_-n$R^ zYTN#x=B;#nee;OJ4f*Uj#4>V3>zjTjHI;q!x0$OEnxefPTRsw!nVD||{M9VfSVBJy z_>0kl!TQi1DS#Ym5oFSs%)QUmDIiY>+HweO33qJ;{gwVr-3$3~*g9RTNA70&oUe3q zx6uAI^c1Dz_z>%R=zqa;aJDs(aT^u7FGMj}lX_i3J#R6IH0S6|{%2tEV7C!}!<#f$xY|#Yx4;Cxyh;nvlMv*q+}qI2JjqsY4CZbE zcyxN7`o-9K{337%h)2p4@SJ6=bW`ymXFknr3DW12X3%sY?h<}-uEPp>MYQD{zPH}R zKW%^HpK!ytEUWppfa|hXi9VyTl|^OsXeO#S?O5mjiuk6SJg-Y|%YBtvB3-pH@;5Kh?W$wEk)9%1>0~srk~SYUY)z_-aoxR|gU@ zH}gc9aMqB_{t{O6lyM0jFUj43e&lu*|9N9ne75T3F#5c5e@$pH^`V5F3P`vf)n~52 zD{qB+j0cJ6Rd#O%$oQh=BtU(fqGIy=)6v3}^U%!mle>nJRyqhSt0xIHzF0Q#pN;bU^7<|D5LyLU0(OICVYbv;fx)nN&46^hDxnunbjyt)TRqmejYQj@yXzS;Aegw z&pliggP(fBe+p%@@<9#ORm~%{@giPm@X{gike>s74&^zYDRJq?h)wm;{qb2GT^1i} z?X?)uv&?g3wYv{AxnF8rg3i~mh8^i^ zSE1Kbr6+X_zgG-Y`rbnM9hLsNB>X= zST&M&(9!J6^c#OErX*r>Eo;~<|LMTTiqBN^wG#v>TGkZLa<;5_zU)OE%j))oy&44C zD4zf-lufo%te(eUE5$vWbHT*%D+9j3<|=*g;~Lpqr(NWoo>!6z26m+aarim2xFLNW zD86*(vBhWVEJz$;OR{fK>+<5>Bzvp-a*dX@bohljx=8#AeqnLY?&onv6y7g*M+Xrl zXlJ~tr^kFW>a)i?Qhh4+v_Cca@_Oqcq%3BtczNM6YtW%h-s8#yw&q92C1}a@wD8Hl9hZV|q zS2~_AKXmp^qKcMuu{P&7el)klqzh3E&{u|aev{va?dxq_)8K`vcuzYGGB4(}F zJ2SMMKiO?Q?4Um|{v%|bISPsK4JvF9?EOasu5!;_xJh%f2Q)9Yz*NJLuRh|H&&uw) zSvw^(5|;Y*c6*AkMnqWqwqe7v2eE#+74j3KHV{HZmu)XC-b6U%OBD4io0 zB-)ia9CJ#MzLds{ur^+n>YC;OjPfh{(6lx0(X_Bhid`_@F6C%T$2G=aE}+xMp#IOjM~TH>vcRtt7jf=qn>U|T7eR6cRdJZ$veQ=JpOw-C+rMSW)v-#qNPTh!ZG7TxobweHgO&Fv} z8_D!Wtat_HT{oUQTUB)j0C6n!rT0BrUc9cSQx^&D#qJ;=dB>)03^_N8s;)pR{`a<(f`3dt|1e zYuV_DYoww)IEC0@cp9M7CB^UbB-(NY^?RWx=@kmw#VhFXs3#?Cuf~5bvA^zo$R4_K zJe{?OahngKt3036(N&#sVBKG7`ZO}BU#z=JyyYGdEH3IVb<_uH-r9lr*t{j2uN6y_ zUf{xXpV>c0hIsGzj${luJ?V?13_8TwET6BVO&soo~mPk>(y6ct%CHBz4w} zfuVoHz^qrCwc{pyr+M62I1O$+4v6#}SsCf2?ZVA}Wu{2ER?shvYyHG;X5%&hyY)Hl zU5I~1wBVlcJo(;fSzXUvUD7erA!Wqo_=FDXDq z6=2eb?&IxRQ=g+PKNr5}*7!F42YfTYXHKsj^wAyrz)#~o3Hhr}cct%L8>WYD=uP_8 zy#85}Rr=LU!FMxJ|H$>O`m()+EfV&1EYwB#5vb|D>5~0BA)S!7#4YKNUVCg=X<{2K z>Rz6dOqB z${@SC{WbbH7olsStY@c$m#BZ=)Lt?TPt%sWwrCR-bx^_s3J9j(`P3yOl z<8ISuji(jpK|go22DisqF5Y#!RMC(0&@SX5RX^WP%%}n({gmR?WpNt&|KF_hEuzb@no(U9@bK83QHO)V-X$bFQXoEO|hC{hrQTvSEr}+nzskG$8 z)aKMW$)a+ndn@YI)vZ7Eef`bbXr!VZ)6ea7xrJ}?H<7=JT-uq@A$$|RMj;(ymHZgn zKhkSVe}0@cDAH^EAbw079_e-FaDH4kCerJ?G1#roY>MHylp1qp%HkptR`YF^-vYlx zTP9Fpt87zk7w}Iw$USI_yYvys_TZW-EC|0uTh0``&7WfUDQ#18Fa`%9{!{aOrp#-dTRyQ@9`+;Z_BdNa_{is-|6QRt5s z3nN%Esg5VQP!tDf9M(nEG%gS>KozWS?^_eI=a^o(}@iJOSM z>VmjRgh*T>MBNsTEP>_ZXd3SpUEEE-L-KDOr&F(NFVB@JzM^XUW?yQ2b9%L}aUCg} z%nRK`L5+t|BlhCNOB~}Qj;l|7o?B?+Niu%3D(sedVewvrM=CKW_`Ar{2;0;a_HB*I@6~kjfm+nkwjp8T)&66cb%v2G{|^HV_0Z#VScBFVP4TW^8z>d z9xHc)t)NYt%Hpi_V77CtrcGTU&5E0sZ;DB;KkycnLbNbX;hu=aXJjEJ3^d;IJ>5*C zsu=Lsgh?_mKB2S{uKiwpkq-4!Dp%V~@$S&TMlnsSDc3o+Za(vZ;5FYsL7R%~TAM!N zl^Hz;!KHom6K~zu@kEerXmiw>_u}94!nI@PnWqZn*Q&*{PzEH2g2erXVro+uFv~XU zetx_Cc~MytMQy*yM!gXngeN_{B#tJ$!d(FM#d3G=&uH(dc1td_-U3ioZ%ukUMx;e< z*WCg#j0aWrYyK%rEiX?_j)wD#8O3aW!Hxmo47Ud@p%phP{vqn(?gpYpPzWC`nghA1Oyi?CA~%J$hTurj6zP9dKr!UO0>bI`c(q1-M>5g#!}# zshT~zX-g#1d=e>OPMRq%a_&bo$pv2@hVlXZy>vw6$#Dr90?^SOQTSp<6WHpTwscE8 z&bJ0GCJMnrAjmB?y;&>;Ve&5(1@~=u5N2dIo`M<8dZC`2@ha*)c{~R6#OPA~Ik9An zV7l7BUF_eoF|>Yr>VqfxXYcMXNcAZPwT{14hjBW>0%d}RQs9H}>aKA}k^bRBDA%Wt ztRgsErefVIcCPaZ8yyzs2+%%=vXXrMfX{9N%%6Wdi;3GopMe6A>z^!R;o%|Iicf*( zUPO3yZ)cI(4nGn+DKZ>+ad?_%OUvThwA4VIrj3<}D`M#(=}6Ot@-S~h|HN6Dvh8Z; zMv`{9eB$$*BmY=C>jrT^=>`Z?a!9vk!rf)Tk@ahZfH%>Uk+y;)Q&rGN)tzHs& zqO3>ciE$OBgO~b<{+TJyW+wL^-q^lV<`>UKj$V}cxg{b;zb*)SkAoK5HOZo8$I>WW zKPU9ywt9|rAMtZ~SbDp3w+1%)wM(aOKX7U6xAmoS8aEuon$YJqeq5qy5A$0n={UDvl_6zW22lBLFJpjhoK|{pBzcVe>clUO?wAk@JNsfRP1mTDFe^?%YTm$4t-P*~_Y!EjN17d8 zeR*T;K?Ju3q;_c}$$E+gvJ6W^q}l8qrOz|@cx|V8_~0*yX9QSXX1FKKdPsAOk!Cui zS-(@{=yd{0o^1^geK-}VeL2yVy^|Re@L>xV)l0Io$nbKPnDxz#q(Xv5l3$U^UTh_p zS&C_YGYGS%S&r=(SGfBRlHwXk-N~00`LJho)5-W)_7`_u@cl-<=iXI*o9X9#y6{v_ zm84E61iQ_6*Pfb}T|pB4pmE4Sk)*C&DH>?HFEp8X8>xXyF?Yf@3&o~z%D9RWvC6Ad z-H}g6e33ai;M1kU2frRkDz;bHxy0P;t>zj?d_&Fl><#kav+<^)%mD(O_=V^{@Jsv@ z`k+Y=itT4Q11o(o@8)#Z^^xRzDr8K` zKE8GhHSeUlW{I9ZrK{Nxwek`N;4L!z~ZRVCgw|Ix${ zyK<2@EZVfWQ=B8Jd1l1F89fh0hX+ccOU2uTp~f1XqKcHbx6IQ*}}2AWyZEphKo%hpC$)<((a-Gw2JEz8#_D@pf$<6fAfcQg0C*R( zX^YVwWHru}=G?oS)pn3hWL^s0Aj3J`hCi%dN5^5kJs@I#kUE0zS4Z@{<2U!j`@zV1 zJ++$e7nt9vA2N^H@eH83eD)ZtP?NQj$-&H>OkND0n6fW3P|uZyD`NQ)AHFZr{(^gY zJK)d`m_Rf8WWf^()*JLY#^asHHPW~oC7S}4_$3xkS2%cwofz!0>B7{FhaW>C&NW%6 z8zB*5Ce5Af(876giB-J61TI z%ejGg!V0qsSjZz4x0%e(#S|V3?x6uPclOYp-fRz=f%cfb{a_z;3gtztZZfDfP#0#< z5I0dTr4FV{$798VcvvgTKB&bQ_#8d5z)YdtxI^ZRdIOen7-6eC9dFu}qOj6=!{WQ8 z`Gh5yu<~Q*8$^v1DcnqJls*eJ(lct@NL=_|k^WKdMUi(?KSUmYd>-CCxRQG96ruPEB*yGJx*eYN1^?iVAD4Ci<1LW$p?7>Y+M z=VFBE6^G}5GS{#y%_?hjMgBW(=YE*=dlRs_bU7Z^4<8-9=H7ph)&J{z)}KE;r8ZlJ zUrJP{HUS2ad^?D8I_@a=nk$rtF!8W^ZU(F}cSyU850D6ZO4UGo$JKx}o_Td8G?Tau z4aGoVBUIXsvttm+9L7avsdQ$DIM5y(#3I}t9%J?w4^`9~Ujtx5@l6lZK0o#(S*iPA zK?;(G=Yn?QJDCf#;*}r*?0(7hs?2y7GQ#&LPJ{T~3DLoWn&+QFGS$Df@jFRs7Co;q z^QL3%*qFb7$8>o4cp|rMVW~Ef+x6*)1j$2{D?=DDNurrUOg!r5p&SmW{YP-dj#X<# z_j6Q1(F=bXW=oRM63A*${~CjGzXihsa+gd-G9fVUxt{5p^n!bbv^#t^1g`}bstpg2 zd0Rz#f|s`Y+?WLdTZ(IaVParIj_^@$ZW%q;LCoHW z3Jk|s;~{1ry~$UBbxJHfO_qbHwS%*c`*onj-%#&2^l^jc-V~frGp_gC>mdbBh3Xdz z`9WngfkJh2RCUH5QB#QfUGCAJ-M0e?&-I>-=Xt)3D9rt9=eYB{pP&)HM*OOA=X%T4 zgcTW2Jfb!F+x$f^sl)+VF0Y}c!7zem4{*ZD;!tMr8ktGc3BK*2?2Ap@({VYt>5W<| zS^_~|=UFNT*LaGbT81pfd!`{vrxy5r>G9)2dpY~0Eam~u&edqZ(HG+4mcuxbzRG zu8choT)q1dGz0W^p%v5LL?~V|AW?(*{wTheJ%+H27$!dzAqEfvP8jj{doZEmeNsU} zC4PhoKoK7xY^*7xeSz2v?xjcyc234u@eMSOQ2Fs+Xahb7oS1JRSA~S9L98bqp8sI-!F!alu zzA?+W+jt6e!!+(5BeSQkb_dYd^!Q6wgByj5h(E2k26c#gBm(d$ZnI|B&crz2`?f#w z9DgJH*h5^`OLqx832)&lzGY{b%?e?+hJC z`7kVRMLG2y0-*4E{HO`;Ahvx8)t~Pv3NT zrt~z~_0NJm)$l9~KASTd3I+gLTpa_5I)5E*yJ!aRdAXe?%|mXrn^~zRtPl| zb*6*4f%1wz#;6b(y~)UNDH)xo*D0en8CM{N767syIOM$thJwCVgjvd{eqec28Quc} zJEa!(db^Eyma}QW1)}VSFlY3VV(hiU%^GU=t&_4a7Z|HhRQOJeXU?~bcncA7yRa!o z$$f&r;@76~ZZA1^fAz|&iCT(m+0JO0ZKZ-UsVN>|J8(C8#Ty>P; z>l(zSP#=5^Q9sOfbTCOne(XWrwCb-{u+dh4cJS@sX|Ipdg%zjC{t?` zsmL?#L!|5b2=<(7Bo!?U)F6$Z9;r@Zs$CBw6(uRXlq)<$w?o!YXWZaB1<|~3r;LV) z9je%jRK|2wdKcQc(2R;#*<&O(+0!+NWrq&`Agr*JRc&FZozm%3OKBX-Yt^>}w z^Y7@qV5%Fr$Vij#;=vu*q06C$g!333Onnyx8P%6CJI!Y5c@y3#JtbpbGh_Hp^Q&_F z;7z8(6Wk*WuSW2KeINDAR;j7?vABCsTvR=bN-_~E^%_(0Nv_e5 z&kuZ@?*}(p@8bh}Z;b5cr{2x?hqNHdszGp=>U1iLZB77f!{xIwDkVPthWNWiJ z-y;EklTZ~k;s*nHn_fB*fRsH-vZgk{(jhoL0NU3570dkBB6@)=rsS4%hm;#BlTk!5 zo<(wwZeUsb@SgY=3U? zSvm=0iyoCz{g@6prsTAx_D3OE)@-~)54mzIV{91>fRT3pGxFJJlFP|4@G!tG-MpX4 zaMY3><|LWptG@DS4U@^IBxFvI7S@;bMIz%BRf6m(IHd%r??41l->IDyw7B;{&}-33 zi{1ye9>Dt-8?5*7A-=ELX}zaz=6mdB^={D{*IQIk7Va%2a9GKbRD6MmHJth`|0UsD_)-`e;(-ZetK~LPznA>b$~L ztgzE+%0B*6|4n$W-ekc){&Bt^#5ObQAuX_1WeQR=%-@z68wFEu_Ni-8$TO~NNcP%=Bp z@rYS-60*|_bRV)qzm)}3+hFQ6%sDFKBgm*G)Nx2Cnp*A{9Y$(#{0IYY^?e=TL}`C8_3)Dx z{2FqZ)BN+uh-p5(xOPE;j7PSwX^aKt!}x51={?5+@hua?c!Kz@k}Iu&irJ?CFrYbk zICHSuXqd#xvPxU&F09=0~w$#@!8Y&(h3yQ8Tiv4 zh^Hik=K#EM#R}$vaRl^Jyl@XkjYi6#=870w+L*T5Ypi|S{!$#^kPCF%MCgk1kw7ds$!BI6OX+WnifT>7b;D^@1L35I1DndJW&TSvQiYiz1dWBem z!?uBju%5!B4s5MzMde60_d4T*3bjOe|`;urWRg}4@s9f{fkI_#u&3QSk6%YqS_1UQLRCd zm9vG09%gAbu(X4sJ5uEa;w`=f!s6P zgh)Bv-)_u690msWGlt4Y`2G)S!jkH)!5L%YFQ^C%^8RPo-|+PqOx=Vu#!CyCvmVrF zeBJ_?2(#K(j0z46Z-h=1S5aq+ScLmuH1|f#QkhcDf*Ue|8K7k$OBzVH12|U$zimb} z6e?~Ag0ZNqm_i$7V|Rd;(tQ4kwBP835?Ifb(W)ORhpweP+W+K!9X2Sf`3>==z!h1q z+U0rE6wbVw0eGbs5hHFPD#WN9!pQ~Jr_;ZLe`QR&#_50+uydOF>m;m$Fx(@)x}`rl z+Y6WUIy-Kq?R=8JVzZ|#SiRT#0Xa48L%&xYyAi%xGc z_53f!;Os}BzHA4wq6c4v6NV|FcPG#;x&Tp*DBsCXEUQ zl;PE(xhs`KVbK>UZ?H*ultW}NgjYoI{r{czmj5rcx4-uy5a1Q)3EyaQxG03bNC3{L zB>ibc+@-hmLnq<}vpFQ=Bi;8tIwajp%E8u=S~e(ZNsCg8*BzmhWr|W>i%^R9dHYPl zayyS7>;5Qn9>e*BzyY+zYzJnS!7s*o6a4RSo=n$@p2kn0#%AANa(^SD4p&?ZKH}R| zxV;>2zE8rD^U=}y5CYdwnM*jTG22P_MW=6kpt5iW=fuJ`KE3yqvDK*g(UkQs#(V$L zVK}ZoyxzZ~XXx&T{DAgM2~_%bI0H3;w=#TbU$FosU{*91WFKo6jty3~gvPmQJN{8b zQzCu%UKQ!*4^=;xM*I1dF8v&e4Xh!@5H1<5A7>HvXQ*>A14JG3 zUdvGm(((TC-bm{x?Tz-^<_{cDImh1~pMSDvIz^6G;(3lCHs4dx5bJT)tXvwL2W`gq zzoE!bAxc^*^klP7!cy|6Wy*Cr%15XC8_1>ShLZV7#=cQBR`mAgTJa{tkKUBO?LGVo zNak?_xBYxia6&uIUCtc^@w{aGugsR5iIzY|{&iqLvT^GEqbPAc+k2Wonx;^(NG2{QhFDycQ&t zy{;#`!2y zFa0Ni>IkCuCEQc*#H)pn^+-yDTo)fj$O?&52+p#^yTfy39b6IeOc{%Ei9FjBG^ za%DFlN(2-Igs$*`2L6BrAO<7f6L@zM-tkhzc(fh*s&^4kimHj8l8fk~4SjWbX35*h z%_@o4W%Ss;A67}FgAsw*`dm-R?_FH%olH&3@xa%9D zmNlk4skBo6gb}enEmr0!E{qo89V*!!;SKN%1OG3z-nA^Zek{wa=Thx$Q~@-+HKlY2 zAi$c%EU)wYShDz9&^S`YsrH&)`OJ&SOFqoOSEK64QLNaWYd}eQVI$42wc=_p65}E- zZf}E=G%Q&k9EoVwyvGnAj5lw^FHl@`Mo$P4)hX*&Oh$fk#Z6eYD&Ie0AizNd=V@h1m3Eux7eCL)i zEb;>-jY#8fb9yyx*)`6J9r3-_1|F0+fe@!%s*F=V#SSYWHD!V-KSde-Giov{JZQ2r zs@fF`c%TRFCrO?LH-T=Z-{{r%-C@#WlkpfLS#-l-ToX}@bXrk1pwb@51v17jl!&Vt zasNe(@JqxLM2s&&(AUpjLJ(r5JUCYGC;LjHA~oInBt}Wm9<|heACr%OKLJ^Yj#CLV z(2-1ZEI{w&#Jja+XDZmCfvR!`p4*GG#+jd(4Zq6Fx!p}C8^FZ%65*Gzf)c9{kCM?F zEzEZc+zZL;N5&8d$~b96ki@hVWG978GD|IC?jQ~aDLM@JX)n6s2{hculY;$;BuwUQ zMqZRG*>7c4S0VwlMgSU>bFL4=UBP<{h>y1F9`OqcO?6YE-a9~eK9 zvAX-@RQSt?$H+JDbw?zXJjNoG`rgg#kr4b8Vc?OzjeU?mLuoPK!Zt*01cP!u(h|G}4N8Ac3*EMrJQg zjG?a)VdI}wGN%DQ?V+JiURC)Uk%<37x8ijv=mYB$Yw*;i%cxpHe@AN841Fp9I8-mB zt6tcOoF-kW_!t$xs&jn2ihns8uR6Z~^{Y>Rkx%Jn`AI7B-e`K&?j%piTbvAt{XexR z%jr1izoV-;&rp8@6Hr4_6h?lt8sONx>kko!>ac06O@ zA3z#dfEQD@R{AT1HTNcERSi(nZF&bQO;U$6FxlS31%uVDiPB*}Vql{&4ZWnOIO<=( z{vE{LUdo<6B(xLbirM8-$=>0#AnPamt&lXrHXz5$b!r$qQ#1n>6x%hh*6dm)4`q6KJTutO-`LYn>zZENOdK!$NTi1{)OV`Fhm-ytMA)*?ho`EX z80)q@%@|Z>e$~Uwze&)8!KKDu=lq@k&V#`@)BJec8`=hYjfmaMnXrfe;Ze3Y%e>sU z$;dtmEio>m$BH~Wto7fxry%A3R~{@>YD~GQ9=33w zReswZ{?M*phI{T7>^6(ZG+c0x-?4&r-gJU`tb^`S-~GAjVV?=XyIpNsp`FeY(& z?*w1xg>YI?1)^ZZG8{%#IM<06upEdeu%q<^b{OyB;DQH68ZN_mdn*nmT#%eW$pwyx z)J`R@-itNfd8~zOUnqQ25tNvjKs4 zEm<)KAqzjJJqi41xmX`VAgVRqsgUhVvrw+%O2l27_d~QKM?6)l`BE>X6i@eLR{1xv ze8IoH{P&+g`LE3a{{JTU*Gn_HP4^JfEk?S~aF7}NrNdtV^%v^;ESLj`m5VGYFET!_ z2HOiJ=##m1g`+Dts#}p2OozdG>I{^Fy{Au4#kTfTz@JGM#dTEc-0?LeSd7b&S0ZW3eL|3PJg*1`VeA(-#U{1zP8o9~UUS?}XpYw-TXht_*)i0=d5vECCN=lj*s z`~ki{AI*O^-ye$Rzn$-2ysh#_FCmMl!IA|Ib=z9@uA`Xn!KLU4+PJukB<3AT8w7ke zhTtpOxPfi7Hrq_Tl}WV@ZLL-x|3jhk6b zbfhSE8B)kL#rz(q)9XLn)WDlos4UVsEnPOR)fnQTm1fONN72%lp1QmFVotT_edT%CV3|}9% z;5=!8(DoK?Prlk9*@yEE61oVzv5u-DZ(?@fS3;9=H?x$7!eI@sm%c^lWwdfVY9Vjp zqk!HC=(&A-H)^Ir=nb+H^LzxPlSp5i=urI)U0L|wHhLHPRyC;yj^L0*)=6k8KswnS z*v?r_v=i){(0UZl`%Ug5M1DM0+-HNR;t@cUdq>y%V6T?K#WSdjw!!hp1Y4>ZFnAk* zaj*0xb9WqVUrxS7VWuPpibvd-MEx!xIo-6dxddrI+@C44HvcM@h!tq2%T&OqdCN8x zS(Zu0yYE|^05^#%Jx=mR>O~*T7%}il}^#)*nrgTU+Ce<^c+~xDp-*;V|*9HWDZ#6UQGJXA($snz(+8 zj?dC^K!sUp8UPZs!%cI61*mZpzDUE>9r`oU>WcRwtxhppecmdezcUrw2JX7HYJXl5 z8-i1|PcQvk)oZ|&g`fxZ7DnnVM!gjF@9L1vjqxV)38mC8CaLoR!;N?dTITVW#K`fN zVxF7{1u+u~#xQ++g7bx`Sr#v!2aR)A_0J-vXCHDcF12zt5_7to-g zX@CK<12h>%0?UJ0QWv{keML{?4rNKP#OsRwd{@=*y>uSyc>s?U_IjqVp53=_LhS0$ zHD@tU8BF-C{G{?n84gY^7Q;afIK6Z_%as|&UT!?geE{W#vXLrE-|TN#o;dMYp9D*} zUoYwlRV%38JdlqLhee4R?-x)`2{hrX?IO&3Ks~T%{HFpkg1@CF?lJba^!Hv#UmbEi z>9Z$7Qd2h66ObH3U+ql*UG^;qbG;-scRMhFjfL7cTosXL(Z}JhZQ}zXV{0||?SN8? zU#Eune)TIR|2zPqh?n}=M;M__} z=7_bK&bBB%=-ebTus?G|MW(Ygb9ALvv=C)L;})M$RPF5xj|u1bYLVXy%Nq=GI6&F& zgIBCW-dU&z$zt$n*K&*s2d77@yUXELp>5FIR6VWS_X$#a;hiQHuAnNMNbT;^j`Z)i z)5^V#bQzKn%=r*i44S)!ndUvEBRd^er33GuWd**<8eQ%EYq%Koma>YK-r|rC-D$&5 zSu;L>Mlbmb{N??9SQmeJw9hZOI5acSP&1w70U%ymadCQ4yYIxXPmO1Eowi~uqP#QY zbeZwyu7jL$zb?S_9>3+V?LW|0))JyipHQ5o-68FzU` zhrO|@Go0{|;lMmDQzh1xz#{UI!Eo+mgnhk`8Cb8IT{=U$l;VKu(g~fr^g?u;bZIsE z&eH4A4<&kfM5V{smNj~f_cHjwC|d9BQ_yyvZwEVa8#>a~|LD(eM2@1syV3YW%~}r$ zKh~D9&kFzn`vU_2?n%7s!z;X>h0Dx%%G2$pdkeWaT80t|OmovJAJ#?AxxEXR97?zVV>8JK>yWd-g`9-bZ8 zg_|WfDZ9eIC7p0@yxzZuT@;M9`}XpvJDHS&i@U?7-fPKywyvyb*yc=h5uIP8d{=*p)p3UWoTOFArXQx+8P+m)b(w zy1)TEP`X*p+=I)*pmCE?2ZqTt-4pnpjpYpV*iOWI0-?+iVCmoR#DBK)Fr~7$B&m1K zZ-S={&Za5xDX7zIdGQIXfAkUWM7oWSr(-L`w&>21f=cnN4 zV|2Y%^b5pk%X--QXYNkbH*;%ouKcTvqDEgV4x4`_qFdK=@ z;E6JB(1qT!;6lO!|46tLa_(TUroaSnZBQ+yrVM}(zQw;b9_@B-@$YO44MN_?{K}ql z_QpD424bx)h~l4igIspNTL-Q=|8|Njf7?w#N}n1EiuMxlW%`fyn0uO4dF`Lo9%tQ& zN)$K?lawcTDKJsx9R?x??zG}9sF6hradmEQ!Pv7T-nTBa&knB@uN8A6J+uxF%!bkN z%hizF+k=U9znmv+5fXkE*Suop}C(pdNpjCK?j0w5k~bJ^c$n&`-uNo ztaks)NP#l?s5@aP8(Ll)dD!16V<8SL0N{R9IlnpodUC9%ol zA+{evon!Zry%1fO~Fg{=}^LZviB8>G<|&j)@oo!{t7lp|+-$u&-W$rUmBlDR$n z8Ln6{Z&vFXcVPAae?}slBdv0EK%BWw3|?VaXkU3r7=8!J@2(3SvE%oait_kdE(y3(6^B9XG3F&WMSzqu7W{QniAwijmQUp` z|AeNWKST@+U1bxQESOr($kQcqY}wT+?q$aHW*lyID-*4FF!fPHh7JxUt4cR_fo=T> zg@o~FtC)+zF9nO?&cI6JL14P<9#!lll;8>81{ZKmMlA}Wh5;*&IR#_S#Tv*v7SOD} zic%=5d^3QSYd64C?|lm9XAr^aj+~BS9*B%beR5!peoaAR zzBowIug(ap0*f|XIVbVxE{+pqB`0FWPm`Iks1oxxLQu=6A%v^;s-fMsc31QdV+Cb6 zZ%Q|o3DkPIjL8Y6z>QO?vOmL~Fy0tW4YcyX#zhtFyK8lS`$@j+ke{;``LtT^E&2i* z)T5JpDO8b~m(w7`V~vALu)FL{bdR1N>-&WpLRiro04vfyQzA@70gwpaV2|DXj9lmH z?RyAqa%x4wLNK;?3gH#h%jhJn_*n!Ae$smwEFkh3xN>>cX#z540FI`>78ZBbyKrN& z60_ZsJmgUDUV}LH{*5c}OXp19&$)r3n0hxbFf!syoS9ZmVrG;77$E*nUZ@T zrtDmPb)JT=P%L)5%*iaYI30zeqGDn|Vc0}n8y50BT2p~xt6JBB81_aT?o^JavVw#3 zV>lo~cdXL=`LQSYK7e1a4y`g<1Ft&whaaOHi_KGQ(cjSRfy#nU3JNYdPyZ0A1c#OZ zL-B#X#I^%TDgiMs#*p?vXMcf_hX)3wls<-sUW0l8<$!49x;;xjB`ufsqWP~Z!XW5_ z3t?dvuN7r-0_Wr-@@=r^b`-8EWmO~brb@n)iVLee|90FMIq(r)NfYd;0RokSa99AU zTnWgfmuS2b16}5sjsr*o&qe*q>GOjs++XanIwt_bfhObIzX6;(1su>hSEv|iaD@LY zhTFI-v~i^IA;wJ>$Y3Pq@p0@N`u9~Grn< zT@f0H24j8`8y6ucnY~Zzl@%O7|CN2QREQ~PO^00tiJ+hbAq^qUZMY-hvSV4nXj-K6 zUZod|N%x%{`Va+2<5+)Z<8nqI_GqM?iNWl}24ZqkYN^ILq=o zNOzQWmqJ~bIbxM}8bMi}PJq?o<{Yzpe??NkkwJ4W(9_oVZpa?}iTA=wQC;6mtZyc$ z^-Z-m10TIRgSUUE2e17wz2NAexz)%s?>t%EtX6ytfS?aoi-i;E!K~L%$54x^eT$U> z2iGWs=*G)D>oO}6qzNkeEusyj8imHKa6rl7FsSStHaD0$q6jn?hh1HhNi3i>4+Mnz zvh!4ecqZ7j9mJtFN2ZnuDF#!U{8(=%B9SpKkzYAedUZ^zTG6Y_N-ZOm)pUuAS!Ehl zGuOI|v1`Setmpu~MUHiwk_O<#3|l%DpRlZd0OgnI2t!kIJAQ<97`4~5z=H?sc#5fT zJ}RBR@Hm0g#)^~4t9DB+#AP$?CB(5gm#B238TSa{Iw-&##;DJz)KR7pLoKzVQZr=* zW&-vbTt+^u4oK#-q*Y)_O;P9o_2z{r|3U!Ch8yG2+Duc28M@*JvOUXe?USs12rM4e zcnHCy%D$cj)53x$^)Vz5CE*joiy0nZjx2sJ#h8E%tMos<-^%Z>fs>IZ%#)T3-utlY z3Jq|{yU1bj29i)TROQan8`nC&v;Ws+Mcd8w}Z#eHs3XmB6u@O)7hhBjGn2B&o?TS0`qxvH_ zk(#w=9-L2mMS0BeGaJiCT_@Y?Dtk-S^+MrqVrf)k&klNc5}!>g(HT-3>i#Gno~xsk zCU&UQq*J;2*hIjsps7$BDB3*#7NUPSl};~xoqz=s{(v&esJrjbo)50V2s$idL5&~1 z^c|#8!!!Z`vY(Ia#sf@U&3Yo^O|6z>Q7Kvv43x2=@`eH!`;<3e7^(A;a9k09fd$;# zH5rd$)mIi0xKcMSpup3FPDwct6Ay@784T!Zyue^{0*rHx2z}6X33N1;zpNF=iV~v^ z6ujfCPp@|QbO!V`{EeOS3C{!?a~N@Pq8_ zThMl;?<|z+@FfET6c+^n`oFeW90`(gdqG>SccWg~3yI2ZL%J2S@UT`0OW_N|*q5U; zzvflzaJ(WX#wY&)msieIGZ*duJ9Fi3ER*G;x!(FDq~$ zG#;aRbq|NJWRG+R{E-3}j2$(w3>_e9%Pz(4`XAZK7ZeDnUt2f?Ie`GksVx?^LQOJX zu)H*sXB}!Df+DR#02?s9_)R2?mgRr0!}vFjgiK(X2`v<2m|*Fq!FUtAMkWj4tE{I6 zNzKV1NnoxbKNXg=2^*Mbq5v17a!N0C1ClaMK`S_GSycYgJwSY~D?sHCW&WT#;}OOk zIDwtP2@x8BCfMA)`H^g`n7e}_F`15q^v;D&VgYYvgO&YTFTINOvdRwip3fu?Fv%jl zbPSS&rU9pV=}icRYoh(v(LU?EW4i$;caGrS5*Hm9+rHmTC3qsF^8u&93Hn3j&?7@h z*}KNy3^}{p)EY#~Lu+m~fXK#GM@1g-FNi$}e%VngRUPSIIoE)9uJ`UMiNg@x&Fw}? zt!nsQOvx2;%SI!01N?+-VhZ6;i}QWVZDx|{zd&$k-+P#u$ewO{lz^dd#j0gfRM?T5>jUg|4V%xY zN-nXLWrAoFfb!@DH-J*}X<&=^W~IVs9c*5eVu6yr>>L|M5l1Pq=c~s|N3S1Ymq*#o zdRLav(EkHP)#%CJ8?)Y*ZuI?|<{r{*Ja97qOLmzoCkC1#&T69vdYrQNABkm*6|?K^ zfUgass;@a#4BGpmmG(iR@ClaIA6GdWzpFI+P0489^)#%JRhCMJeHZD5KGu4U_p3A+ z4N!3yM5pp0=D;rpF8zU3moY5l6aj*7a zP_BNPjy?owo`drSAWfjdc%wolfQay20IY+kq{oa#T+SL%T?t{XG}0ee1_;Re0<0(1 zV#YufEO^8HELbiZxRwP6Q`c27O}&wcS4-iC^VV2u(H2IZoDC~d%NpS*h?#q$aBw6; z6C-vKRVH(Dvw}Cblf`frH(ouA`2vW!`;vlthe6iS+*>(TvjeTLH^BS>kfs2kH|V7p zhz{$(e5lu64xj==fqoAgrLCNGR%QjKp>JE9^WF@XMd&f*kj$~D5Bx$^)=#9j@FQyd zgX&7rVl3mW;#bPMwLW6|C?a;-G&Ji9Y1VBWn)THoRnzQfvpTj1CUvMyW;IUKp$ox_ zO*%w-jFyh=Sst$Fu04M+YcbpNw6tf60B>1tm@TpGcXDNS0;@0Wg+_%w04r39Onj>S z081HQ-fd8iJ{)O0(f zgO74MR4dwm7&j)HWb8L3!Am^07ii}0KZ4^hlw+th#Kw&Fz)N`1iq7FTDr@H;AZoC` zB3>W84fjSMz?dbw5XheXonkytKtcb#yS>bX*xv-lU668U#1^>tH)bCM_|sQHO?i3H zo9b|n2zy3Uc&2a24Bp$%Wz0a9Qf3MNTJWegEx=sGz_Fg27w}yryNRh6=3-8n{@rfw zTzChY^FlcYcceu`Bpx*%+IBOx+IBN)qPrRMR)LGV3Td<9m{+PV8IY_m$-*|<5^pj# zH119A5q<&lH1Okl5|>_L<5IxXwf?yOvQw3qud(y?KpwgQh?!s00VxYXRb7yB!vV9| zg3-~)7}|u<5S@=uj`uBm^u8*GemUN~mt%0lD+O06-~pL|M$YytIkWOEt@Yla5&GgL z*w>shCV{7O-W7h&8Bd5VyjRhljXw3OJ%MAg$j2&Z7l-W~GIx3};vUT39*tPDoM+mv zgPC}gSs>2qu0kd(Ze?>p;h&YyXD&|qwbs{Y`}Aw%rV0w;is=1&lZ0=wGd1bsD8_In$P2tZ7Ve+Gqkrnhh_B+J=k zJb^D|a?}Ste7Io1jf;WR#?YQr^WvV^jL`>uqm8#8iL~^bOM?S0pb=!C3Kld|mW%by zsc2A=*&O>m9QPnlVp+Qa`uALltcfMK^+q1cM79VXB%?{cwc#})U(xQ7y0^%lJf?Ce z7bl_VA8>r*u(I*5_moPVYZ7zbQ0)D0_<(cl;O8*bh@-WDhn`ac`~5qP7PLXczmFvs zw2bkcY}!o(zVh!r3jg8fcxM*0jqy&Sp@+7tKd#Bxm9icw&-TU9)oEalun`!^GCO@A+fx*Ix&z0oxDaP^+H;?ay}t)Q;*y)lMFF!XorJPw)@e$*u`MVN>(L zuwf}Kt_jA*HM_MpdilO{2g*H<9q3?Rp`~~#b|iUv*BpR2it&~i*o3JfFd<%hR_C3y zg-0gLoaMv0O+8Ri*mnD@nVAgtt|)As<(+w_3Ts7+fri2(y3c!?q^vA#n>ovSyL_!I zY@M!WyH(hC6X(?e?b-2|{R(DJ)Nx{yAyn48S})x0gms}_*oJ4p>qgL>}=8NN-%Te%soNv&uX02TtpBLBD z;q5g(Ck`$f;|jN<&Lf0pPLir$_qRE`1EdTWpes1yoEK+)DcnvM(a3@|9-9iQ7XOi6 zv(FcRgF2Q5mg};vgg$Jz?J=&@YFfjw$q$7!@dT% zfTF5loR+)Z9GHQrNIiJo_4jXEi76z+xUy~TsArUNV8 ze>$0UxX(WcH8|bzHJ-c9#RqUQS!*iCA1+jHT93b4{59flAN~&Eul<$` zCcvYbkM(@i^3ll0K0Xfd(eA+^0Kf&w4X)q`V>Q6crZfye*@mA?I39pGSm1z`q6f-# zAtqgWbxd=HvrjnYmZe%spwc}8qXQd*74kuM#$*StiuL$IPT%&dz^0Dl%_?t$_@?Tn z&~6LN^oO0^Goqi|qt~E1TDdsj%fd5aU3PH5U+MjrQvQgp{p;{vo>{dL6bO;D>f70U zGTT4)eHXrv{fi5+XP=T4Al9*7D#zb9@!r$S)ZrTU66p_5dwFKXo_J6DXTE(v6ua5v zM?yax%5VFhEZ=6DCG%6~_Y7<{^J;>|y#4K=sY4@vkP!8Z7g6`Z1TIRA=r7mFB@3zQ z&|EQ^>vFiBzbZ+aTyu+-wsl?m8qL)Q5iVad-nXp-JqfL8{ZB$r8jWnn%U{K82f)(m?B&<7kUCrWW)j5K^Hco~ls~!Q_)S38t=qe{gVD&v#%y4i@NC^I ziSaO7#83m8)ww<0))$4h&R(C{E)-Q~tIwVopUf6Abe#Go8}=s3ps{xpa&FzuN9Z_B z`|PHLT7Kj~x}L0Cy8c;OUYL-|a}@YxnSA zRBXau15#{VXHhX<(3wpJ{+js$+%&alE?mnC`VPY>j9ot}~UXd=2#b(XycfykzoTih}OvOf{R>}dAk0NafE!$^1I za|JS|ZLR)keJN?n<%#;(uTP@^Kh&?bDv4=}EEv%8Z{2bgz zijcxahBmp{n1>}ZfFUGoDI3`VjL=%FcFpyj%SmCu6U^)&ru0UHC8nUH(BsG;@{#c* zcac=tA-@$H9k0e%i0rnyLsOB)rmrxLbo@@(LSvQ?@T00bBfgc)xWJYcG zABp170g#VC8HFc8O>`rIe*JGz({0i6(6s-X^z`Wwtlurp3r6Tw=O zwh(M2X7Ia@or~W?L;`->h1R$X!JT@bT!yMm@{Ld(calx2(-!jZq@uj{C1g<^^*M_2 z4ob+Pyptp|DK85lx8|BK4T6NwUSG7p1lod_H2BlN6-YzWVOsJ(itR|BN(_$DXZ<>} zw$OI~aj7u{E~+}!AF3trO8;&2#eQO^?-qQawm61O`c=Ust0r}cO>TD+=Q$PInr~-C*zlf*`m?R z3JzilT!os8dn&Owz@+UsoH?R0>>%-F1!~Zxy|945+izSt$_FP$_);b`d1Y62tJtZ1 z`JiiG?8o{VnM}5cMWD;AO|E3cAk8?|`xO@AF5hCbKw80uLs<*h)WVvPhuAc=9#mWd zu#8kKU>k2sRc%biuQq%mmlG^q>qs6|+mdbX|8D|W<+hL}yhMIZ){StDwG6U;g> zDKk(R?q|2BvO`b6RSW!koL--aI>8x|0cXIUiMMbslm3wY#}F6+B$^f>8wNx3pcOI8 zgL5phQPv%)I6F8ci8V9-=Jqv+?~5pxuZhJ_wESU2cc6c88mI4a6yefbLrVT)vh0pS z5=dREx$H=_>d+=*0oGKD@up2)AKC{60qjJRC*hWh0s!stH#V~u$&;NKCF%W;wx;BE z{NzKaudM-9n6VEIF8I1V#gK^8_!2^Fj7qj&V$VSYkb?yfipuKWpuW|}w{iFe9HnjD zWEPRdmj=Z4RLNAqzr!TK56yhE2t>`s1K+l{Qw-@PLXwNm$w_=p9m(gd>3rtqU>2Ar z6;n8Ds?>%LNM_(;Z8&=ip)a)I=pu%;X~WSm41KK)CrS}&(uM=AC@MdWk1JSD{xz&8 z|3=o6e+%o$pM`qnP9x4W|7z~h`YYqKqHoa;dhn8(%Y#|{Uq8GFhc-h)A%8{WMc_9c zm0;g!8e6t5BS3LFH!C@huba{9SgZeo;qB=6r3{4F?fpO)f_W~ywzeXVZDEr6I`T1I zP__vfF{R+Ofe(Y(Peb+?zBTi~g;Cm85uLX}D%Z=+>{uia1}i%jhGy;OAiH#Ex3yy$ z`r+EgA-nW>x3xF?SnXNJ-jlF&TYK}5)&4tVCnxB(?am*o{7&TVb==Bb9V%zC2A~h* zk$W;<1o!v)TlyZadOb;7$aCTRuCULLLOes=ws<7J)bJrwuU}$P!aGs1agTee9&?59Kc(nX zfv2Wzqb_|7%bVOR@3kzj29Mm+k|m;1p8FUxLneXTJ23+=>mhlz^NUxe0!*reFKt@| zCRjM2#e};Qf@9jYwUq0?Pd13ug}_#k>=4)`q8b9d9gZf&%or2)ldOfM3~ECwT0Jmx-MF;W^2O5$$~OAhN>%yB+lP1s9hPeow_M7 zcA+{dHdQNX0lcgZM=d6=l2(Uk2+(Q0B;d2D?O?x{Z1_;* z4i4{QXd5YY+h!DXGHYOiw@G}6r6=K$I})`*^gRhb;Qb0%f~|lh*t154e{bVzQTk+k zP=$4@pH+Vyty*ei{bn_2a?I@01Q@GEZ-M}W*G5?ZPcDZMB{yw=Q~Y(=*3m}9CbJ96 zwGnQRpL8ZdNer!L+(?FM8A@lUk)a%h_Aw;ge~6(x#^J2O?^`m1L$RNvEhDYAosT^v6B6mL?$GAVN-VrjYz`7{JcF1*%~wfvkf3?)kb6`lYK+cF#!wz(mY@dTzg;=WOL1x4LgcT zcmlq61hhSUqV&ThK5w&=Wis=ropbwBbUNPmN z{wkIN2>1y*f1-WQz*b7W#I!JpOxZ+U6ZLhFS(ywv*X)sulTjl`4)Lo9qT~qpw4V`_ zaFE{Q4v3|okuPGS#VIsb24}i_MQVAUPYpYm<@l@u(wwurg%yr!@CaT8D& zp+3AvT3p+V{5zSX896Lk#49w?x>*R`*72i7nRq8m79Hc&gb8S(q$uSec0Y>Vi#N0l zZ|IavQYWCo8;fqTC>ZbT6I+2MeE6WiLP_5-TMOEeTM;Qmz`~MhcEb>UHKEeA+H$@| zpyJjjx_)fqsU|%i36C&nx%&6*fRVm;@Af1mnF1PzSa6) z^AAk1uVa=g2a~G-e`~;e-z)>i{|yv@GH~1@YT$%`E=mHGps1!A@V04M(Klcde8tva z8zh~-V~Fv!L3ul8(7=~;ZQ(#OVY60rJ%Sh|HbokT2uGP3R$x>ZQ5YyWj3-~m&{Bh_ zsogjYMx&gz(SY2qI9qdy216jPAY-@@65HfM!YhPL-~pZ%oSPH6gdi-X$_ndqBwGJd z7WZaNkO;Wn?+P6ij%SmHP#&2W%H)z6nup1?Mky>d_(B-JU<}ui`NH^^1AmRiNSIYv<$P(ynq`qIp}djdSsnMQY~?X4nJHjPw{qimpHYf(1?L2C zBSW=(2pSnsc#Pr@^`wU(VT=8Zf4kbJx2_}qt?S5t>yFQVx!c?g|HVcp$RWyqx#t<> zzu5S~R~!GW>&$=aINR5WKw{&+k&V&r`0o#Fj@kL|4{W*}m;a*Z4*VAzfp-4Ot>Cme zE+160E&j_!NBOTbI?8|1d=bshMx zz!%}as#Bu;SNgE|C(HvOn4A>t%U0;CQK7S;k@cFK7-)qWWsdW0DrOnUH)qn)GK~u zF%xizZrCnKfed)oNQ7=V9AUtC%d0yv6Z}IfI!0bh4vvTFIT=^=A$lh2pl|pge%*B| zhuntcl3(+8E4Y#?#FeY1|L=}p-&Pytv%;^Lb(@`OFC$KcQ`q<`SYJne-E1pI_%+L^ z158*$MmAH0Y2O~v7uw2Gtg;(^{n*y7{2C=wr2P@5?OdwxeLvs_&$iey7rq<1h(Fz; zlbF<&O>p6Q3t{zfORk_C)0Nee61s|1-ImFv{r^6rSN-P+#wJgM@i`38uc2c_PswdA zw^~cnjsWXpELM7}#qj|kc{ImQH6N{|RIAIb4wl!y;T8{;kW{do$VY}F^DtFCIOvorNR|EQ7#!>2uk(yhGq)kdpTG2G*%MMO+X2VBNb}+9emhN#V zq!EAn@OOv>WmfFM-`B9)+!Hr@TKMD+qom{d6}5G5@Bk2|8TW9AMd^{6Eh@FBe4v$<`? zAxHxj8p1Q}`(r2q>*}U`#)F*IPzbO=C`A^Z=$_J z7q+0I@-rOh*Zk2xLV&3Hr`hSk9(Q zTn4@6P_}LdgXf&h;J5tr72n5=VsHzIu99P%Q(DtbzOLk}*bDFF>nfQ6`1L!!e#BR? zAwI^})qFj~P!&V83%E4NPG+FdIA&gFr!@!%T@?gKL`g#FBt&8g@l~xzIT|?EH?=Y^ z*PGqztyzD%MarQQK{SzB(1xGxsz;o)`0Z?S%G${Ax5_S7R6X&d_I5IcIiP?W=$B<2 zbG6JjE{D>#St@0l5*b#HY-e}<2VDg|{q#iL^EC~rgiBFg=>81jAlV@ zXfTl)@tx3ZsGCB&ZpBBjsy5|C?XixrHifQW&_dbzu86Z)soNkSB_b_|1sK3aeiK&l zmSKQuoqS{yrA?jo9|S2K09Fw0mJbn-(0yNZTmS#U{68AQ>3H-1cx)e{;WGcz6d=k2 z8h$PhxF>vKH{*xXwM^79P0Iw0hiUL8^M9L~{{{V`Tt`2wl#LDqR#{W!N3zj@nANh; zfk0J+J3Ohl!+9tOWz+C1X7)UUXnFQ$#S0XN&=$U;Udbi6-yxs~m+;!S#7_oAlqVha z9Uvv}ldo<3glG-@6_r{1Lh+O5Z2W{t*mV4^4Byd_lXm7W_O!$j-dBY$j9}jQjg8;@ zSVQ>z{{S%?pGaqx=Wf#WG<;I1C+HTUImCIS~bLBExzQ5Bqu;uUH00_{$Geqh=i1bN@h5 zG8I|;rM?4ysTclIFZ`vRy3MqD;xDbf{U`7j;JN!wVSf+-Nyp(OU0_vMMI*>du!zQk zoU{&>Enw8)fi^9rZT?1r&iMNwtVQ`pmu!L|lYi6;|LBOAZs%{IGd@5HQPxqnPBliw zqeZF-zpz$)o#5{PaFl}F2LEQXoZQouC_n=h3v-ypQD9Dmg? zWOLznJ^pG#6)=DDVDoPAu>;TFvUIr%5a480O8J48=ms>unVl18#@fq;}J6Aa@Jiu$=}TxDz2|Ww;k1tR4{e9YSIFAdw&(~Z zc$~kakrWV}qZhW)3Q8+F1vMZ7s_@Lba9{KnHm0eHrcDoQy8*A5DO{O{&?YFk{(;{H zPt`}j4z}mp7!ARZ=Rj=M^XoWIqpS4SIUKs3D3Ah%@*e+}uo&M}fS!Bicvy`!&#}woC^FcYuW|N=UAjyAn>CHc@^xi+OaM#Z&JTpld z%KUWHjMNr>Lfrlw{G|W9CggbU`dP(K`+3FZg-_@tuSDAdBBKQhkMKk|5ndY@$JI=< z|1J9&8zo?zT*(cxG{ssblhoJ9yE2Wz_X&CO-e}sW3}57@{xyq#cIvF2QosdW3-E|EJZF zHCLc=WoA!-8b#*TFuI(N>d>DkPTDxH*8d`z&MdK>J@J#LP|EwvP-T2nZBrq3i?%4r zh%RUf0VY(q#1A*Mbphi^w09fzt3TDu(jE zGVmF`Q^nAZg&UOUR~*k~uE8wHH7^}8-{J2Vt>ODvprgZSi1Kqg98jkN){X3Lb~9@V z@xo78AE1^k-7v(CoVp(3#pLyw=ObJHApcI|SKudvj7h$Tf`}o43UOo`I_Njq zR-7zE`n?AEkCpz*XnK@j8fTG)v3HEz7`=0o!t)~h7Wuz37O#%xSNpfP0@6AVSkF$3}kjD<8`BD87vygrNp?L&4h6)kONH&925N(*L0r`=_y8YXRIP)_&1yxBAQt9i9ZWTt>IU4NK$HbJ0T6>pOy#jS<9 z!w}BPw4&)y$cl`2Jpy_eyda=<99?L14;`4b1>#5W5?A3d2g#-Ab&SozW9970qK6Pu zc&vco;zVR!0TGd|A@Ia1coF0K1C}xMYn;Y^;kyK5jMJ@Ptnmvg7;p5lf-d8Gu4I`l z$=GiN)7AQxu?0r06?>{tV+AiXK0;9I?+E1O!137wd@;{EfQ-(in+d%PQX5Ln9kx~~ z<8+=MBlbX!kASmnt6+(85S|s%T}T9@oH=c=KwsAYNxBkw)0>g527;sSeU@4zrKZ`- z`f245rWybc$@!BicLnmMp`|aNM>^8e0d2u#*NVQ;&hXx4cEnnzv6_=B(6~0nIA{f9 zjelFgc%#k=x|IHzX_JgKR&2U)pA{@H-b7GPJ`z48LZ|YLCx?OWYo%XuhfTw;!n@!a zSD5hoMj{wT2htoEk!jm7$Q9lxn?n?s(?Yy=4XnIH%iDxW7t3UAPAk(OAPTe%(i`lF zX9Iaj?0=cuihu*aUEvZWJIW7Qss> zqL~d`%N77}IN!8MTWvtf8m_J0a)s9aT4_M|O>4g3gbzyj(fU{K0DNC)t9JlC{8YcB zORWnX9BVq)`{5ozt)S`#d z95wjfvxj_7b0DVaOSq>;-!{QOb>NeT58oZ(|1578AL!^b#|}O)Gc-vQmhRXRx)f%o zCxY109D5i}K9Q**{iHca)0kMAIPW+rtUCCzHPgS672>OW**VhVH#j=D;RN{c2;ZXB z!=&2|x50RD2+~=aV>90XP!mt^IU4vzy~QrRZLm_Jsi@7wLDOcf_#6%nB)$0`d|vW8 zzq1g@wo)|)BNOey2aEvVw-aKwn25~`01*IB3eT+A*$Kb&E|cj$FcK&=EL3OucaB8a zz(?-6Lou%)TuHQKJ2!+LMHf;tOxUC`mp7ZRr8zkISMkf42vjg|xhwLK+%%fv=A=jx zRAu&9rzC8jDkZ0zB&wgrX#04)4Jrrp3n~Onp*s*jr`r33vVAvwLMvPJiPp4(-_bAK z_6d6&eF8^Ks!yhw;9yOPT$kkW`QSh3uMYW1cG4^GiWHr{j3+4wV9n92R~ZTV|*h&3Wt|+of~hg#wXO%43HYNUmRQk7#zlaJiw5&)$ztgd^ai>`3XZ` zA%v2=R~aAh^+mjfYcRyz0`UZwF&EJ*$Y=~+3C5C*=gd5Vjetbul>-a87;?GCqyPkt zhHGH2fBL_vlS0c*ina;25}!U>R8^HpSThmMo>vhe2`GyQKtwtIy6^|YiAWxqzcHhK zR)9yRHaB&2#ONO7AD7t?Mhx$Z{VAx+=`SkLCClkA{5#&i3mH? zxOjeBGqz5mpetORSiaA+ZYGVf*@CEGQUk3$=6Ov(mN)}=_bjv zj!E(&NrY0O;{x0D&6)m&ksKcpdI&UE7(M;vJpCL_ohf>tSzl-14obKQZB8=I?>0Y2v_Ze2#xLMV0ieW5FGS=Q`Odl1xC&1A zyMFg9UJK7-uGx8mM`Ttc;(3=2c4@%GNrv?@hUHq%*7VlcTSH|3<;5j*D_Weqj5PZ@9lZYrw2~>R)gS z-O)Dii^L0?HlLSJ@yX$_j^sb|UH#xaJ3jrd$KIb5diO@hi0ysSmxOP>eCWdeteO5y zrK9SD+>`HGUo-#3n2+xH@TGx{JKmf6g17PWw$!urbxQ}|?~Li;pgh&PPv3aTS@tl$ zS@Bjnrm@2O*2Ce9p+wdQnSZd@m8EYE#vUN2L(E0?@K|?(X)>h+xvtb@d+`# z`Z?qJI(o%QA5wVVz1i`P zos~DG(?7?wWgACi{=Gf^wiR_}=#L(D?0rAyw;$|tHuU@5>u=nUu-&oq`3dRIHTF8C zb;S+WFF$s=85o5B{f8AMTjY_}mSrEI-z|;`HmE-mgYzo& z!A}qW&z{@2PIY{lQ#@qtl}|jLRejo`i5q)3F8_YnzxGY(zh>bD3v!1&xY@C>ddS+- zdVIMk=gP;ko+zGZ{Bi4*Js(MVcJY9>lJ01|@l(gYHZNF{+ke^jQ-&?P;K6;DJ4Oxo z)y==1oAKGvEuokHURvUqdUfB}DLL9H8CUcltY1FRF|+5iul+k0J+%KX2WOu=?-!1Z zi=LR+>?N9I?111FCypZUU(H~)6djk6ukzVUVaCzJ0R?LKSCiBHb@ z&hhc;!oGQx4m+mHNp#+fy-Uwr%eq04?b&2j5>pZ@c)hbn&m(xme* z>eqh2QS-$wANlLIm%V=I?HRGtE;-Xt@lyMz|D4qC{EM!8?Dq$5eaMmCx?tj-#V4M7 z(L-M>zw4zc$La0|wQIim#Z&ixwCTFS->ki6=5#N_@0^*l@A7$X^4^|1i$b`FVH~ZG4;S;?#&4SoIBWcpC+vm=lJ?D1s-6MXI zOiusU4^>d3gX`rhwBnbA8AH+Y90Kl=g>>VBL+}2EqyCnD-afdP&ZQME#y5R3riNp` zgyVH}L!&2nZu8&-$3%5)?yWuCqt2{oNQ9f!++OZccf{%`t6&xh*Qr<1_3D-VDjHlB z+Y?o6jE-PML%e#6%?Rvt2X^9us)M+M(}hCxif|%c8}*crP)1K=RiQY^!??bqE{RWB zgK~RUYqm8<}pF5?RmEzux{1XspL4B@@-SLQqTfs4>Bsfx9wPo#>mYntk z*xOlWCO9q~b=n*Fdk(dJml4=I>USSF081jS6UDA!Sg+XUnoyGbEb<`1z6qm}-_VwA z#m|4-qh@^I2vk)Vu8O9_jFJn=P}zi07cAFHV&4mVjyQJ;4tFivKg#_yZgtpJ5pwAz zQ*aXflZpy#p*8@Rcs9PU zvE9+`7>2)g+zP1&zSk=n6EjlwB9mUR3*UFa>9wPx38+A9;cmR3Q|}m%vJz#(C3sRw zD^NM=p3_n`r?iZ^9(et9)a8ll_Q6}IJ@6Z`yrZxMjLsdX$__MmaFK1Z$6poWso32U zSMchAI-mh5g*ro^S-MtT^82}!snm}#4 z5-WBBcT9o%?~WGkBoZ@9=7WeoN@>wY%?Ck+^^`hy%KnU$!+Hv8&_~5<%Z>udP~cu`+mZxbKXOF zE$&fw1|5M4l2iyKmIDKSx^z^(iYW= z2oNxFq5?)mi8fkLw2T-f0+N9ln9)QjB5GZ06qhP)6PJn*%tUz{2U1(RX#dsLYF%p= zt07__ED0*g;)bAt2=WXOSq(e$et-AQOeWO-`@ViYhI#Hi_uO;OJ?GqW&)vvtPYKp+ zac{_!IsjbXV&5L$0$*#2E9xyCw`+E3_J+KZGo0BV&IEe8R)~ruI^V-aNznqa(Tb7y zBewXy5BRnOV>k5%_hezhsc7C<6zJI+jO9M*eS^y+-sty~AH4~B-{ck5*0HhN7xn3% zzEK5!5b@0+W!GGuC@J&8iE^!Hrs zG}DrPPhk+~uVAeAlffZe;u@=nv;AQ)b}rEKGj>hq`G@o_p--V?g_pBokh2^kF&%17 zHf@0pt`~9oI#YAKiv!M>JZDUP`u29-5YEImte4g?pLDkQFO5H}S7ZDWr#CCqzD$XdQpx)?ysqv7r$eqH@ua%8+Vixcw|-&cIRQ;kTzcDv@jOHJ!6l% zn!jDrR=JzAzzLMB$8_gXXvhg-vhz8;X~22}W#U|0vb*Vqbitn7MNUbVl6k5wh5oS4 zM!$f&u7Ua%sQfG_uYo$;;EG+yJCdycZ4C^WnjagJ8}NM=&*?@D4s_y}*!9n0^-A6ZXj^bdNi8zXKTq<= zj z@O>5F#ct<)0A#5cDa~LYgJlMT=6PH}{ux{I5lZwp*mDV%$nX0?c1a^Fa%*xtL1!a? z0cU~PCxZCi9r1Up{C!|o%3((si(XeGhE`&$#!))$X{(Q)o-WpxGC|!+S z85nY5QDxNzdN4t!gyP2^d!*$39S!(qi1)tX28NWxyl*TSGvs>ggEP+vfLp{f2_Fra z+7CIvusno}yi8vv0z-1K(Tf8^0x>1i41L{R`MxL&=Tvgj|5qLYVI)Oj54$arHZ zKz=#^q~EGpOC&?Po3|7O=|Z=t9HYo(=aCXNK1{x{WC^z8Ap{6nno_c4NbXysh6G;q zO!8j$rLP%r0fteVzk!k^2#{{JX2^mqK(wX=h2fo%V3PONl^A+682FnP7IHJZ91sWI zwPIG`t$Yf`MZ6PIHsV+yE!O_}T45)z(vB%+L@-qnKA3#HBxirXr{LSvZ9!*)2w<#e zW#ovBDe+6zCJhQY-vwfm2Lyb3f_O+i3EUEj!5->a5O7*B2l7rBvUt7YkwSIJ8gl2! z&lrV=18e}aU`Wb z3i{TGXyp8^75ypbcfJRTo5aTVgYonuUplb_{P~2LZht@MgVfEcXxs6IvM-vyhL$bO z6e;$r9m?E-)3Xjj-nAg)m2jwE^{W09flF|t$QfXI*yi|sdzA^{DDe0}erJ=R*SCrZ zgl{`FkvcdC%hd|;n1|<9+2pf=8DKfhzWFwJXwX@gf!+}$xvf7)h6m!kM~X|!44U^y z8aFoH`)qPyJ87fi{d$r(!SLIA#6vZhR`8I!3dvYv8SIR|47TR1R)$jOvQ^Fwid_jV z9%q1~+YNp$#2kMuRSG{`vG|W8@p{7+gH{NZ#QS0J#@}REqEv)Sq?C|&tL26$h+la+ zH@a;n@ea!jB?2}QZjczUtgwj&l%5=apXG#718guAgE0Q%r=%om6N10WaKyCFdAwdN zHmvRnq~!`i9dI81jm>Fp>q;*lZ&+cGlBc*i;+&NyrUV=~@VH*@rM<$|Y^rk>z#v1$ zfo*OP2nZ-Uled(hK&StiQEF2E52Y{fDwjIOf!G4`^0<1lXB$w z$@0amSYLMN9`Wc_=<%6X4fVDT6AAmy(RZ2oL<4JC$+j;u-~LO}@g0X3m1@5o;6Ay7 zcj^Nrz4e%#_H@MRQdj*3nH@Y>Xzp*wafvhMRmAULi*ula%}|vd@4);L7UL_+c6pik zaemX;R_W}n_s4jkzWLoejXv}Jv2vzf^9vd7d0ZzpF0c86Jl|GlIm2i3J9&6{%b3g0 z!@KmyLiq?Q#g_Y#)aC{F1|K@xkz^l(5OI9TSzW4mGo?v%AaNYy62-`umz8(J9ow?2~ zrd_c+^O~3D5m0e+9OrQ(Hgz@F*^VSTh!qpQ8PNA_PIZK3kz9(=2dH4f1WZ`!%+nS2} zke{i-dC!3-t9<)>xODgJ25P6@xnqCO`6FJ3t1MgWeQ1*IZ^WA`3Jv5! z8uvsVYw5-{N8E}vpE-MOIOo&wz)$?K9;vQ#TAEu5@h@VR<~qxrW$LSRKV6jPETyMl z%w9T{F(5WAUwussZZQG4RtFxzF8qF9v+rI0C!(|%0Nfq0x_NYojZDlhG_6ba+^T*e zkk+EfddKWtUB=9%#daA%j%`Shb6y(fh569uOk~b?4_rC~iQ?w?pm zar5ZbM|#6EEC$i=)U$1&eNXUlX<*#uE~m&6q$Fq zU}y4U1wit6e+=2@r8nM686n4k1+{HG}g#$WS z2D`rNZ}^eQ`425OLFK%ZW9QM;n2hv(7(d+F%}bmxOi!iFuXGlY@;58!wh5G3g@ekvx)WS-R6DH$Y}<~&|n|7j+cJS{M@bo{T`8B zl=VQhee%2UJjkU_UK7+UheCA(OWKrXk0o>h~4ygaFgN~_rE_fcbsEj*IK^p{>{`{H+&3v4N)omNKQs-|t-V`e6MIqB<-Uq*(B-3H;|9rA5+18Y`|H(W>2VZkl7a^VY$W z95>{XBzi|s%F2htJuO!kfW+PMG1SiK#P8bfISrENG`>)*d-;r^CMiVT0=_3Tx8_Z9 zGHG2py>CXocWFmvE_jgXjw*QdZwIY!Vv33^40H3}=9&55hjO}_Dy~>SKCIc{OEzhs zb2rb~mdxat_Sk1+{d35jCe4@HbL+tgAznZvslq#EWBY;}Z{4q{pnXA?>dEa33L{<^ z5~^Lh#b3L=hIg-4wlB!##^LD)3>D5w@9*Z5yDz%JT9(%>t9jKcZ@&;C!M_}vCRu1KV zNWO;X%b+?`d!QH!^|Vy&+Jlyi#7HtG)$3W*r5S6-2xMPQ+(D~vQmntYc5kw}mtHa5 z9^II97FE`@H*_Dsy0ACEAhSQG5HBa%%6gD@rk-9Vsf$S}>25x9^-*^YALZ?fx_axb zf_lHR+24GiOJ!YhYJRwCQAOEq?_=xPJQAv%Q}PU4^-Mj2(P2`4aTXVhdIx9k4CSA@e1?n2V zI)CffVn09_7-}0xeB+p@P4`Oi{@8hL>A8`^ zZTh}obcIRV)uL{S6dL3n&pn0V>EGz7IJoDHz5_OMCe8!xX&%-M10Mlu(V7FTIYC}C z6RGAk<_`G=o;U0ipUnk}Z!?UD>OpYBAn^x3d$U-Srwbm+Jr%LuCAigvvPiXya>6+) z1~z-6HD-KgByv8ea6V-w&mq3vCGOL2=^PxuZ9qWiSlGxfaVHp5-WhVW1F`%P<(K<;(De7=oYpM%C#FD(?6CJu zHN6W>?=q>Gdtl#Ok%BT@P){X(3Mh8Us=$m1cqcH3<**8j*!uB1F}>}Cfs{^V?0@(M z%}`7)4`FRj45RdjH|4MmN%oIqW(ItJ+J!op(JUY1C`xE3SS}-K(TVU8o*oGnf0J}d&Q~!n4@X)n zVnfjsZ}dm(&k4t-k}|$Q%gF1Al1Q*xX>*H{PgT z@$gSSXf^d!KD;x>N}i`5w3_;m&9@4(K{?GEy6~v>MXn?GHLXsjS)@=AFq=Ex7|clFD8Z=(L6S7*RLE{}{~A7>T)tj{TT05^F1|o4K60a%DozCbh$QP|Qn-G)x;3i{d;#U?Qd!BFXJmblHTqW2TG@F$JOh$S+rdq@&jA^MiTrn7Rs zX!EAv^zd;Zx!yO2soQE7pv|pXveRHvZn|&U>V)pewB;EVFtyrzreR_E0aN)m>`h8+ z)&?c?>l!L-e1<=r^efp5Ih^%=M!ynIff6}IzulFKw&9_*8sTh_R7shnBRqvZR60@j zExjs8Qct52uKpx(Ct~4mxL*8KWUW(o4(^H18NZT3 zZ@sq*9_?u=21M?4ywAM)Uc@ZiGk=Mj>a3cJ_V9@XJd!f*piLbj@OxRThV#j9tm99o z3YO*pd=0qML)R~iY@?Om$_(PT9q>jkCCw1$?ixBF_E^a?0Mkjw&FY0d-gihB-A6&!aXYyFJw`}6 z*Jr`DWLurTL5kKm{m}YOQn7!%(^0I6V*Un6P2yU3lr{gsPi0B$om)KanLI?Kxk=XM zYWfd%RmRiH&8r$k{|6NQOP%&0)^uV;{H$}B|7lON$3G$HTc7dwb!^Yt!-}%+Bd4?4 zw#IlJAzUcNnS0NdZyodo*c(zq;h;CT!TZL8p7Ln2`hx~(POxr$b*~25%3xix`p6Ck z-UQtwSGe>I(%meNK>nI3lhp*@yxM8G{TR0Zjh$28-hvaY`FkjKQC?m9)C+6M@CE-y zLe2d-{8IaB?(f1c%}?TEl15A>Oh-%>vmvFwr)DU5(*$*2j;H$mn)|wVs_!PWlN%~q zR=tkd(Yv(=yG|YKeZ${16#r??jGWq$J*J*$o;6O5M;8%an2#wlH-F^LI6qm|V_Jff zVzC}PxULNWUD*)Oe6WjiP6&6!eSpEm8J(M&e$}VveY|CD@yR3p6ngvRsrX zk(*z;_o8V$J-;BQ?8~V`(Yf3chEJ<*CA&e88JMY`^JY1L8Mo}I?eylkzahB;UyKszwc0ViC7T|T_K;`9hpD{0wpDo%|qUc%z*Z?1~mCTPhtp}9de%~ zDGcNI0%2zhp6Nb+En8Ubl(XoKUTL6`k#4mkyG4$7-|x3Q={E33uA0FYMfzJkxNvxv zBi;AU!64yEZ%~>%`a8xjoBS*xBNKyOB_s{DNJxCj*ORdmAwKKWc!)B{^Hc7?Ph?@}Ee?xj@<$4(+7K z8lQnn+?e*a{0$eFas`tqXTxwcB-p4<>q6pan|-UXO7h3-T_o22gv{hEKB1(fLU)yH zaff}QSfMw13RX=*Q`C5!L0sAg#9{S@dtaTUsuDkgSR=dKa!bOHS*W=!GZ?0@i}S+p zyfD#Iwowrjf5QaOSjQ(r7)$MQbF!G!A377C(4-ELb{`;ym!5hgW@r3DBbi_DX{>AQ zft<(H??(S=a#K`LD)Ms-x$d<>Po!k>^6w3XhMRq2Bs zcivg)TEDqowFV`Rk?L5vS^My)t@x)wVT~93)HsS;p`MJx~GYt*3o7vm+;U%sdhA!+j`DWJ%3R>ZvkHK?o)KHHE7|3 zraQ~C;$bG9ttFhWbD)Aq&xCY9w!(Q2+Y^!>!rSdUxB*I!ehk$Q_oLT#)8aMqE(+a^ z=A+e3_LX|J80L4C9g1;Aw&7{u8(UO5UQnORw@N!kb|+S2S&q1_CqL{YDiA}A+nx$% z9oCl$lFOJ`d7}@aEwUe1QLJ`1efhe<#{)DK&L$b$on2+5y)$nG0OhQxTI)_m$zVe+_YZxPwkGcxYcio^sM*ZgqG@AMvsI~a%0f~a zzqUvh9L)E)rx{GJrNXI3nc5`zp^`t1KE!=`z3=gg#WmEuTf<;16!U~%Lx-R`<&;mUEGb?P-Fl)Jt$!M;hO9A zCIeDrHZIGHZwWZ_-IuWDCb2@wZvaiepb0TlQFq`Em5NX*@f09wx~qbkzTyPYM)mqo zQ4aUNnf;yNMxXy2fE%yE4Kr-+n!Uv)|4GTeB^kPgVh2Nq*ujRiz%?44%VI+wYbc{OyT-aHl?l%HN<1IgI6|^b3@3Tf}(YL82|~Z;%ZD z;$a}Hbx$-=xgr*}eRFO8B-JmiNjzYc+}eA^V_W?b!_Eg%*^m7bSc^!zrMLzPbq)NA zp-N#bS))reB^l>?$JbuzEGF8o!2OH{vz&Bv*!j#ZGZ`IX+PTHujNgyQ)4zFc4tS)F zbXrkXr={)9gKDnf>jHkI2hG>^!Oo*;kxF$qI(ADc{<~y7S~0XKCM02J@O;>?}Smr#V{*X&X;1) zm2?JJ(((8O?gO`B`T;pbYoE@RCP}h;_90LmhH2caNN+MjsQxzm=PuSO_JOkF;ML8=H69n7jq`8Gs>^_X6NCvze^+YmtrhwvUL= zU!sU{%f;@%5eOg@UmsGqetl$kSc^Y(t0Tv;s@BA;QuAu}ZUi#53I(km_t_&g5H3(b z7A5+Xw5>4x<;F7U)$?e-Z?*f*;oFmK3sZK3b*tH&D$K+W)YRi@&nv9%8;XrF5?a6| zYY1jy9b`@VL4P<1+5T5ZKKW}`uclUw4B_;ME$zaJTzMVmJ|5Mzmv_P8hgd~cG~ zt<$d7(A?^N%^Wcu^l1ggcpF{4(YGk;!zbM3x68IiseF~&c#d$!OLy*Oz@pzHQy4IW zU&1bL6J^^aJ4lcj9igziO&YSsO?)B!BN6broq*3CWywZCDY==$@abPdnY_2_Kq`nM?p_5OwmKobvVzSH|xBvT#h&z0(G z?Ov(y!q{t7%PlxNz%0G zw-Q2}bf($g(EH~QTv7!ZY6wUYc&N)o?5q#248^1Ijus1}zI8QhrSlbzQCQ30csz{3 zYj7BoY?W9jho~+NY=yJkEZ%A!@bzAt(}q8hnjVt|LKsZENPZ8RhtqQnXe+9AhpH~2 zw(2}kG9I{z*}It%ETrCdIrs0{XIh4%I~H{{4t`Ysl*&3XMG!x zS()b9b~NqtD$uBh8~>%|No(BaR@o7Pvr1V~Ej#nT&#b-Hda#OUgKrB3>o#p!PJKI+mKaI4zHOb8?FI%6VDip3P}k+r+xXNP@rN35%(_ zFv)_`l#X_}W8XxC%*_h;2MXL}mnUMHr^AgPE7v%bpXIQ@~6P)By@f zOc9FKXvs~W(0}fP?smC(eOImbO)0t0S>%t8-74q)5#8@&ru0wuK;icJytA|(QW1Nl zq=urZXdM4~+&fM`fbd}Nj7~fXaAn=*$X(XobVq%95Cd<6Ad|_%1teP2Hpa>W8>^%h zZwrOw-$VjJvHJ?$z3{;x98Mt#Ez{r@H!|RWQPCfh=&xPK%D@&=zrSqZlz&Uf#u-q5 zZSn}>Q*@tuSN?X%6p=mejBQG|^RV=Y>5Z->fiqq1Rj=Yur01}?rb67afHTa;vS@M0 z8E58Nrn!yp!b3(NXFHOxs2aVAm!2V%BGHWwI*@X--FKLAGpo2GS?wj>DvnFH+e~RD zNRszYdWn=ZniaL_C!^C~Q$*|>ioG#C9bpMAUQsfrvTC7>)d0C#L*4VA-c;N2vCEXb>ZA(&hsOmR{I`N-T zb6F_fdwfNF&~j|jIk@gAy^U4p`(u}QFeOC9!?l}>0y*D=s#?NMaDY3~A_|nfZV*jd z(YS!R;L8o$WL`G9A4EDPppT0IYz{R8bf_YJD{IUt0%{i&)vcHs&^Q>oJ1-C$olEz| z4vSq}==OVITQW8}Uq-j5K@cD!vWVw77I3g&90B_YC7~9NXV@!-f+_Q8%N@0Ql95w2 z#fk*Ea?Km}ORO7;AuZq?vl}MB)+r^S0QT?gztR6yno={anJHArees5k^eqy_q*wcc z_~rKLX=R7L9^9C)jjY*RmS;^bQKDaC^_+ivfy zg=kG8$)A*;hr!fF{=7tAlLqH;fPAZ4J@dhCc7WObrK5eT6WSeMzcX zLYAOiG&Gwa)0y-)n(xNWGybvW-IU90h<$%u{0nwF0$ zG=2)Imzc|vLE0X3TLV4AR+84ldBjgD;wKMz63fmk!ds_THr#zLYFwQmVNdJvPx)w+ z;WKM@t!^GNBmp`T4lA4$aHi$D&&HKlJL07VLx&$O3E1HhnV&>5FZ zY=fz)T!Q0XvO%@H3=rKk>qhFdu6eeE)Tp*Of2X!JqN!$hiN_lqZpfP`^7N=ur*61N z1!5|&5GcsI>38%%!)F3scqs5m0=`-A<0Oykm{)`xBR9z?a^b~A3>ldC~TCr6(f$S*#72cvI&q~;P}PF^yMa=~uyOXGP)7;s zB02sCM;jS0+xQJ zuE&5%>^B{|LwzJR7jToZx+&^B&V8xJznI+D$N=`<=5& zLIYQpEs9il-{>-YbR;8AT|CB_g4o5Ql18BTb-J>-b5XZn&mf1LDJ@SNP=eH z{<58gq~lbq-}xJ~nGYjyBmj*HPIVNU5h&@-Hjy60cPOYm1`|rUW2L(TYOJ)|#F{i4 zp06@iuZF^=rStgLv@{Vg8QJl7v+BH2fW{I3B)!CGgB*D*wtDMkkUg8R2eL+N`>Lm` z@s8)cznj<36J?Z9k8%w4DDFyXV8CHQ$Hv~{ciw(3$1Pqiq*z;D@s|tfNd7{}Wo?n- z*yy~nMb!xwPnZ;e(A{zQMvYIO#vaILMS4IwPNhyr`4TlC_tYLtR{zTFeuegWw#}GS zzpGXE1y(O}FMbchMsTPl+_Sq1n+A89+nMs|_*H0nukOs;e;6`reZufZD+oL>W+I&* z8@WsgWwD9GxIM0wP|B-ht><`_ya`cN?GNRw36<@M6wpz%3yVdH)@PBY(~QAafMSdL z`Npj@I}$SFcEDxgRsMz@QX3;b8t2mTv*R1&=O-_!yW5_Dzv*`Q8+HMY{Hy?=(dcBR z7`}GCyYB@PRn2dE+{ou_nSayB708`dV?MP9YQoNbqkKfVP_CJ)=*XIp=X#@?_`$lp zlrlb{M~->4CP3Z;Ib?WO7T?Cb zyv}db2&ZVp% zj@}gTJ8{G&jzNz$O{SG=G1+0sb!in-*Qyr92=s?Jr8byk%F?u&s@U z8m4c`q0-vDJ-mK5nRcad+IEz z-A(94VJG<_zRM)kiO)Ov7ojQu8EbPHYlqTR{st{gn%$0_=>2*z7vAN;a9!3_Km4)NIKXpd+3#sF@-_hfoUu00?TNfvM|Bd$U|3M` znx1&#xpYs|GL9a?ghfCf!i3WQFKPkuB+fh(VdTC}$g1C*eFSiAZ}}U3DgvM3qm!sK ztb@Rve@zp(jxnD(9}|D8pJ{zfTuw!y_}Cm0%<8Q+e&&|Ma}SptNt7B_;S1I9ch!*1 zf{Ci(@k|XhfEt<8@PN$at?bz$bJbT!-jIQm&|GZr77MSYWSuBK_!W51&EOpXsChOe zu>_GYBUIvTh@P!_61_+>wPLVT>oy8!B)xiqYE_OE)i3Zp!c~tLq1=s}o`fiBx*g9g zHvoReh%t^wQ8=F48fq;Ug&t>I5lQ`=as3icfx%QqP({@}oL!x_?slkAl_Jenc?$&? z53sMSi%8hub3bxDuKO)3qo8Gvk5-HZX#KkgS*udewicHB_*sQJWoA;) z9rF{jzCZ{q^-BD;5}h?yH2&HqUPNMIDv7f09rT4* zWs4Dr=pKpaDY-4eFoxh};jX(9W+} z<%zD~I{m7}irg@sJivJJt^%WlZo@b;6rLp)gd0IdEPbC5C>}Yii$Ro;d2e(iwfYGr zT7nbT()YnA5tvK)5w2=spQ3h!Cfknb;BU>|g6flWNv*&3yPODDOcd7a?Ny!dTXURB zuXck`tfKrxQHLAU9_g=k4bb6-LicY+9bgLpzv|`@*ziU_2GHi5{;UE*t?qwr)xQes z;tV~=a`B3$hYS;1-Nq@}KR{uXC?U?nMl#-OGTJ>wd&;-NDz|rpn8Yj+Q~o&GPy(v= zL`9Ki9=1Y6_Ny64=Z3peNZVda$AN%zXWq7*rF#XlBmn_ucb3DDhEx00GI6F?9z-B zhaFZh0~mw%igzZ%>NC854&XEmFVQYeSL>yt(XU3GyP#EDzXaLS2ANqSot8q>-ykaY zxV1lwr*VKS{}0N~mDswyu2l?kp*mtjNDdrV@XNHsN7T!X>qwrrF9{r$b|?2e0IZFO zqq?;V3oGn`3YQJ6$GvSl(_$Yl>ZV^~EJEWDn|7YkZX*rf2k1s~<7>S1$4Z_k(9YP} z{%rVRHVSoGh&9p{P-W*?#2dZzHqq!=K3Z`h zo}2p_)<>H1m<4PB@QTFFEA2>RsqV0Mnf}*CY$>?G^Sud(ivPTPn+z2{!a_+|XaUze{A8cjf|8`Ay9624m&-=ki`W zz6fVJaASUvla1l$R1@OT4T@GT3UjYne^oFna%PxS3LOIoln8!+H+ldL3@`9Layrum zYH#sAq?IJ6HSBz=4H)Gfe+ynCW@)4}Xkem}T+_d{CEp#VRkz3>9T-dju|onFu%A@D z+Fvt`P2tfZ5(L5gkzd+=f64_Lli~Q4J(3k=`|dt9v5VSMcHQFrt;KsLr)NU7Z8<=B zA6g+GG+CHGW4@IPmoe1LAr&Z$aTGQRyV<46E=^=YW=)R$sqo2|ZmqoS&9^IWbD#xQ zOex8M62p&758MbmtgnbyiA^ISCyL4Z$^iU>&Zuy{P6Jf0frK=Z1}BD^=2&`cds>b) ztCP|86elvgDge~9=+hLh_R}HaRV9}&Mz`>xg~456vFp}uuxs<(gAyxAPPf^8%&&EALpDX=C^1&CvxhIBHdjB_MUk}NnoetDZ7pstOkaYtGC`#D5r_-Q1D z++h)IWw&y3k~gY(B&kSHS6DIJG6v~6i7#Xa0g|MtT=n8kB6LRLRO;{0M@#?n$NYdC zyqOgvNxdu$^se zXb;6%!<~e2u(AR{sLMLd(WI=kEBR&O8N&vZc!XD0T-`a}6QsmRLLwba>37vH!2ME|GcYYqt+`Ff2H$=C13 zc9O5(liXRpx*PnFL7n7FYcoF}Uq2&RaFQ&HhBtaS2^o1Z{EMDoyS5jnL-~dLC9Z^X z;$w#>y@a!eD5X>s4{7*Gk>gbS-tJ=kT|Z&pnfxX$>?|36QuPMgGZmSh8O1N@S%tG9 zp)repL#C6$*oMSJ<4USN@5ANrd-yPkjoHR))b7Na2xvb?I<0wRmg40($jgV84n25* z1gi&s;+O2{C&5m7@QA@$BYSA^j91^kkS1KIgMfyOUC@by z*N8v#o5nrVuEt5k7?y$zOINX={Y6KYeoFT6fz@9p#!}Yu5pO&Zf{ST+W6(?7WMm;K z^0iSWaTCST`I0JNBv^I-pmKUuAd6I`{AotJL@2AgrR!=#S1v$_D&|5R{J)K^${Np3 z=wtXlppy=Tf$7Bmp(F?*GG4s@Ss;t|rzDOu7*l-zptr%-$^PsWssF|I^`y%Fq{gr3 zxa253enlo{#;)_ao3X2Irm-`4>WwLvY55AKgd9{jfE$zTHO(g7b!}qCYbx4`tMhCx z?Nq@-N&8JR1^TuDWvYa8^>ez~og%RGj5kqCy^KtWR{oWD;f?+iJ>nP6$dBm_D;X{Y z6W^OoHT~B>j!OCHb#+z|T_CO8L$4qow$Q&-XkJF2$d_4&8a2(bcZWo!tt7IswSpN88-z$nBWJ z*S)0*bndkDtDW$FKj$KiOl)+I;5*%v?*&CzC$)n%vxdSRzx(lKyOsR9mu-@^;^7CG zcA18{=XL=j^X)vRMZj(^T4$QZ<^DA74w}aNdnaNH|7?Kt&F`o=UOLVYu!c=Y?hTNo zok-CV;EZ^>|02ok6g(oGWR4)YFOd$znPa)rK;UoqGx?3nOydiVSthR8&5W{zbb~r4 z-4ll5jxL#&lkSpBgjD_Uks+FGO*$Ob%E#;zEL(Rj73NRG+2)$hJkfWESU8`|Rs@bN zQEo?9dF#Fr&4%m0K=a&(dt|uILAwms2b#*H9XbG~cCbzST?4yO$8+2>u43Axh=dzO zdJ;b~(py87#P@!$D&hq{rsl>Kq%?iRA2WSo9XmLS2w%MPgsao#bHSQ8wxhfy?gNMc zdLw4QE+jT;4hGic#F07>y6rPrZ~Yv#W4*CP>|WZbLJB-X0e7ju{sUNtKVj>cWb2t` z>d|o4_@S-m=FauZ6oQBlr0ui6;eCO>e`tM!DQJ%m{ERa8_yBv)NcGJ#>o4KhPkGOe zbz)1w`faAA2fD!qCS@7>?{83KuJOG?@h>AL<|gBivjMA;)t-3iJ6Cef>UAM{SHnQV zzl1;`st$(1kXZ_#bs^QY_^slKB;88fLhAa@E^8> z{w&Sm#C=pqZ&BSV?@1@z1w*M#hnL084tY+m-)lR0Ui+fL2)k=PuHf{@`>wgS#n{rw z%??}R2~n~BjFeu-x@(A(?yE2t-bszn3 zYvvNTJj=f9^B?A1sR{5j$ws8(LFMnFkGDT+)~{Q#&S&^9_02OkKKWB8jG)~f3QR4z zvz?NNO1yNw5Hy{G>Nqe+M5DO{ms{;x-H+g0 zR=c-wKdvizRdDMC$`}j8fkgL#OC>Vv#0Oj+DuwrBsa7F3?rA<$Ui=L=ON`?M*SwR7 zYi(|lJvS|Pr#K3MW%bvkjK)6DY8&(?oJlCuZ_b(Psw*zFA97c|$FzL3TYk9y5nq`6)*iW0%jAgQG%{vBNx*ChbEE#9tGThvg{EF<(0OQSP?({ zmw>nfY%$IWkWrsOe?%Iaj%ASZb1TSuOXNNzzW&ALZG zhY+?`#G)lD;fA(blgn7&(U%Cd9FXYs>Nez?lJde|zeJjgLo&x;6=nAfIy}|Rdm$lh z1jOa6PSyVNYnzHmq$Y_}k?U|@iPmuL0u%S8c6)~w@^3}SwU(hv7n|?Xo6{}Fr=8?o zy%?C|-!`zT+0)(u)dyG z23LQ@Gl3uQFW+l8vDU^_s%`VV1F2gZE$?t&J~DY>0~;4dcS9;G}s&cFB33tl*D?U?}HCPA;zzt>xaj zV%41z$%@!b#heQ8Mit%($AVhWVsEgauA-#8LR;FkhEg74Gq_~fEaBn7&($Uwxw0Yt zH9yAbhrPC-hjA<;+EdKAAz&s5poItpd<{6>=9u}U;-Gij5RHl%af zS#ZtmuQcWb{5Iv?!wpae%R{!3T|P{}{2kT=yfn`E8-{O((YGlRu%JqWVDn_P4>15e zm^fyPxmx@%&Vc^?l0q8y-}tEtn-+2f9l{{}->@i6*1gnk^gprBga!hLetg7=g~p`) zjejySvV#v~WDEtYbVO_mN=-sSCePTmzkwUL6O^3Ay+4!e_9W3tm*L*CO8b5=qxoWH zw|4xn<7H;lU^ppU0My7@v%PPkAu=lQ@YEh)YAx@*_5hODT|F5uT{NVZ7;a9hxvPG* zJO>PIoYThEmo6kT*o# z^1b`9iwsB8RKOeBonV_m#$ToD$}=>LfhI|0d81ArL9uT>2(BH?A-pSabmU*eOWV)P zYDI5Km@6SW{NF!OO$Osm{J2DaQ?>?_9yE0jw-3(q*6E%%u>E{k7Pc0kW#nL&Cy{{4 z%=`q%3$yXcKTNb{wIg17c6R<0<^QcCA7=cAw!p6@{z)t_QxoI~#WgI>oQPuAO=ZeuCjcBJux9qYeuaW7`%Z`6KuqwibX zqc8*V-+A{#3n0_qAzhG?xg?9Y27E{dy{I=GWQf%T@k% z${$*9hiho~qq!UXr`?!3nJ%wh+n#R<#g5e$fNM=K?|7)AEj3c2M)Y9C1W_fltrZ-PpbCt2MKR>RlI1QQ@Vqx+HV!&@Or4~=#aAw2Si7ytzWmC z8`BW!NIunT&s7byLicd~+V$*Kex;k-8~j$zUV1PkXQr4r*SbXoby$3^bb*dDC&mYd zV&)tWSI=JntG^7zE-2>rXttA#DxTzRY3?Flpjdms3gyieCdU=Y&wLyl_WaN=!b!1) zZAr5)oDP3p5?!_1z4Sc#98ERwEqdQ&lDq;iK7%{-TV+1=*T7x!-7aP|2Kfr`DyM#*@qav+A(l9(hKtru~ z1F!<&$k57-!`3g&s^6Y#&g>EKwM%OXQ_NQoJoF|kj0jb{v`Y2@7WP&JX%>$9K^7iC zu~2L@EHu{_oEJJR$fb~md4(B*I^?FB3M~Jo@hi>09Zm4>-Ukf-3jY`WUErTk5j#<0 z1A+4?aIx-98o+H_hK=sf;i+ra!x-jN2-Nb)awye_HB^fe0!3N!pL#7pEE!x8yRO(w zBh4{9t!{6*WF9VhuPQOG4h4j!NgTx zGLvRhSi}!=NW9hU#mH@LxnZ#QyYl0Gju?xv2RNm4ym$3rqBlRwGMOb&8#Di$@UaDIW*e+HHc=k6l*lKnxj+{#2I%03!l zP{`XEUF=?ozhje;=k&ZUD}EtL?i;HXu4%m9P+vOuZMyLFbCH*f3Mjq~pN*X}_QDM1 z%YaY!`@T68ns$G--k3tE*qp!PVu>Pmw~jJ63-AuH@IN-515t0{G2fZ90{G&q%pJk< za4X(QW}+{tTT+ZZ0*^H3yK}%rV`bAiva{uZPy@Rj(aPG9xz*e=azNL8XxGgM=R>v* zxx?<3)IZ2>`bBQ?E)LR~OXg-s9F3XeLqh3s z{{RalbWhBKj1U*CWZ$nMQ+~TFji{BOatSU1Q@can}ir4Ue6#!Kg>5 z3YiIFdLPJhyU}uP<5ckBO(b*POaBsXd)%w)IMnpT5=p zhTEaia^m4EPI%r*bK<6Z5eqYI`0mSdJno(*>dIzl$LK{oSFMSegAEaW)XxK>T7ykD z?=L2a7Dx_5wfBWQ5uZEg#@)J%DAh1-pd*O!o!j!TB+RVTtmbFx76e%e{3=oVH~us| z%b&FT-qVQpKgV?3?0e|AC8_bTHklJS%ve9$?-$R#NEF3RaK{&E2VVMK`!qk8%7kfT zLgytl&Y<^Y`hK19$$pO*sPDfnPJfpkqwn?HlW+429DSE`l)qo!k&f~=>-+kS@|WxT zuc`9v?_#5`xo?bPWovbzi5c{szggv2EC{0ocU4)eX8h-CWlu z>EGezFPBbwqq;w%vTCOZF|DOkqhu3ncFSxg1I*Z8KU){BoN4gc<*Xu=P^4fRi3)0& zr7ick0Xj?cAk}_}=DSmFqo?AfPkeC>*syW3N3L!XHIi!2Bq*&n^qSM=I^_9jUs%tO zk=IygD#Q}DxF;>g159r}tRCcB?c3ZKwnQ#!kTb*m)TJ5(x44?`*wu=H$=j0HAsnK# zZR92;;~$uf1O7R1!;|n*dB$Hl)!;0+6P$MV(-mmG)kcuq2P4SN4CIXa5Hxs(77Wiofr#LheptqnX9ODK#K-(esq`yam^}UcgpshTYmgzh9t@L+6Vm04^j`E-B`!^ls-_dupqx@`r zFKo2s)A#9#DM9YIAddWzn1Y=xa_7RjwBQUw{M?yf38hx9PbDD~>snd0Fyw^tT0Ob6 z)`;`vWHdg{7jiiJ4T&>0B%k{p8EM_mhafVnS%e(FyiafRYXAeziROy8b10d*QSTtV zO(@?TelmO2H>b3Sn-(v0Lsj3qE$>?`QZ2!{&C~8@k!9-HTmdf=6gl1P`+?}hQ&tVr zO%1!;ZAVGUA1Ly@)7Xt9$@qD|xrz4$tS!}%%je23a$5z-{^eCtqDvS{2rASD6b*e~A0 z$Sm_zAm>bJ>|#J~-ma@)(Es#udtsoCl4@b&5qVarP3GEvQo($kw}{=>j?~`f?(W!D zT}W=O!}3P8|Ae`*d(uR6OWTS3Hoo006m$zn)ZuZ8@aEwTz4^At2T$y ztaF(l9ao+(r~}&SK2d2Y(z--gcZ$LBU;WIa&Agv9{LXx~f|+}VoHdNZI0(~0%i;Bt zz0sqAFn4O5umo?07HUPu@2r%GV{y)9EgS+Es_C=y+ypL9YR9&3?w_H@Z9T&D|FV?~ z_83uW|1Rusd)GDpwgSKvU|Za~@H^Z5jFtX|D1}huCI3#DFrK*4fM`uv34zwzMEtuQ>YR7N)*$F95 zBi2W=<4IERc!zudpSTAusizt))k8#yRpi#&vqbq#J=6r4JmmtzGfsfmDpq2 z53WuC zu9_UUEL_%7eL8Dex_PhkluPYE)txy9-o7s9%5SWpq?+nGUx|^kc*2cf*8YhGbTkic zl&XDaj$>sYUOM?8VL)$SF~QmC#|hp$>wX#}%}j@WQpb%geIQPUNM8h_`-hE-!lWu*`X%qyWfH$<=_$2=3gI&%2J5?=M5BdIu?p>$vF|Fu_mNTD>-0ZJ8a5|x+)NKH4#4UK{ z0jiFd{-)?~_8SJ5(#QXEjBR>9q-AJjd@}nD*WhTmePD^dW@?V-{_Z>*S4oJCNoFn< z&3Iv3+>;S*vs~}zB5y4_6wbbae!-Iy^-Na!9DEIFIPVNgQ(i*n`;1>?Pf(lJ+00D_ z>S%kRB!}sHPaVlM7$H=x?QpB-wQap?_w}ASps}|>k5jb84UOE+PO09JuZ`!GT2nV7 zHmTlOMFV?)K!E)LEL&NAeRvb%%T0)#s_QE()_U=QvcNg(q^1rahBWoQWAc(;5=j(4)9krnZWnd%V$cB&f!+ zREYnOM5+)V3 zFD#7o(u!w!h&_Mh&Vt&nyL+SiF^xJ0bbjqR7FMqA?(w|P#Y78qAd|(sCpX!N} z6+AT_S11-@CuFxL=U`O0hvDy}cmwm0yOWPLO`ECxqg=;}|7$}T@|iT#4N0a4v<Zp_@ZBrE+Mg_2;Ek__ z@VeDgkEV!6lu=}Dxh29iI2kMTK*oBvj1pQ5D;5o*irAgSe89BH#qs;QFbmS|HO@iB zZYUBXj*@<{&d3!h{C}Bd@h&$w z%?#yiO|I?ezi{kA_L;uJlPW;!e(*xw5QPt?>nqs>x|Vfh_f3XWEcp-!;oc6*!l9<3 z4SX0NmfE(fD;aCKgb*6)Hkt8^p>_H~$wE4KZ1pB{pMpU-7f^a-utBNUspO;*XDVnN zm+z6y1F1nS%#l~juEm(ja3c~B;%yYwlk7%FZhN$&ed-iwYIl#CtNWJjE5N3NhfOT< zKK2mn0M2|+jCe)1RY;P(Es~#rBrysePO2BnPf^5cT)KgCjf0r{NPIp47*P||JO-Nk zp#pSVA@3s~NJSnxbg*~kHbj9XX3m3NDO#>C8QR8OV^Nqw=jhsrHEtct0jANsWe6p- zd9eKFKN-e*qi?9OwTsy2yeOx#Y;uuzrp`auflw2vHD*1*I$71PBpv}g<+pm9ILur+ z^<~2)6rmqYOx-eHqxwyy*(`RosZITNDosj^FqkwXsYm=Z=XE36%AEr6t}-@>2S+&_ zVeU3Ei`;zfx3?%&R^5PWcUxX%?6y2yq8AFi(VyW00np7GErxcE0(9l;IPW9d(P>Eh z2_&9hmHYf5@@aIPx6LYImlanMpsysJeOzVir|80p$dO{XQ3Yx9wQ&0~RAC4YZt>n3 zjSI810)2g{*{o!E>ki{*?K;wQ%K_rrk4Ky^nrtXi|1V`t4^qB(Q5R!+qdJj5GV{<= zMi{|(dO_k0(loAAXbe(_^=0buw|7SdwxJ7fvY$rXf`SVT$HBHAY@pD6xgZ5a8w}2j z*XGXec<;xJoQC3qmMI)`FS2S?K%_|;81-A+de)=WGxhuEnP@;y95@&PLUXeeiyE^VuUQsA*W0CfBM1qh6H>kf5PQQ-~F6EmUw;z~1U zUrR=OTo*(pafH>1zSNOOzhm@5p0_Tcs<0LVFsQmYBN`$>j9ZL~(DE@=#74ByOf_>um?>u6F`s z6^0Yl58GyZRcMox6+Dv$uLae3XjY{pkFlnF{55Y}>w zQoc7`Uv4e7YdZms9esf==3`}D9bvj5dH|}8!CoO77BAg#KFjdW8xooIvml`EzGt>E z&PSR`jD@}!3w;@u!C2_0*bHGU^i|&N=pz)MN6&)!P!+CVIAm}X&Mqn9xj#5r*>i(I zT|xI2axxBmg_Ld2iNWat)jdeM1nR`Q(lYjhsKurP_01#{hc~q%GBh<9@N$S&>7DP) zcpx-f`n*ECIn1_LB`FS&H~I;pCG}!>sEk!HJn(Me17>(A^v?Vc_JNB*4yR-S&X9r! zZRc5eGULM*_XfgIvIrPcrUkMHRNdlEHEoQXiZwN3Lq*vy7#r>cp&1*vmq&ixPzu`> zpXz@=Pf_A#ZC8qy-W0Zt4Y74qO&mvZn7e<&-2KapQuVM!$Nj^N=K8`}$8hmPVh}KR zp5oE;fJv{rhonSrrN?f=r0_0{7DE2r&0M$r$F6&mW(t;C|7Jr9fsc5%%^_ynP5=B!ab()_CTvzGz1_KZG0GS(EK{(C6w_NR7AI+KA(TxTk|z<7UAF0EH7*?_babx&kt4A2VAwjP6~HZ%~!;4RoD>Egd(f=(wBY|5ERMxF!u%>H2kI2*E2(v2x2vmX$$aJ&Qc~!%P9p z{=Rv3^5};OwRS`CU3O+z+qoOE-rn6^#6UCQXno?PQn&&v7$s6N@bsv+5|H_>m>$t*05zK1Bw? zSZ~S|%fQMx%rj15-JfX^!-hBdA&Q+IIy7q7p?`%L%uumUIKd+ZRgX_QQ}0kx+xJTU z_=wz)ZuR^lTf$Sa?r+(*spjxN46m|KG~-WNew}?uim!=hVYg9Tn{j+P12#vVKzkEU z0HF37dvWP#TL)VWXjjMB=x*q7$av`dSl(bURcF}!)t^jZvHK0cMIVP`l8Jqsya~rH zmNlEtS!%hev}%ThcHd+7C7?4u1}gD6Op-Orn!mA5()eRoF?WE3BVKwX<=j*HvC2UU zdMZw6*T3w&|9*g)beJg}{XZRW&8zd=$1f*NtRb}R-K_HsjXsOE8*qu+kJTj<%yzQs zkM-#Mp15;P=Wq5dWv_3CoO?Tevo?H4e&_Gl*rG%7JAcQ<79Wz|>D#aK3a#tP2<>(} z%WY2Ib7ie82uMzY5wsw{bF!R&Hc|)~2w=#D7;L6yI#X;X{O>&DWCApRCa5!B1 zp$8L)87fbtoEg>8Ty-=l%U}?(VF{mTYndrqe)}R*BH`&n(Nk}+$kwz{K z39|WQ0F@KTqKex#+c8U3v^~W9V@{(-d)gOrLEwhAnc2%m};;g3*8(H}&r$CDm)(nP+quz?sda+-kx!1hm*{ z#%oqI!MLZ!mSSf8$qykW`a2-;$xRL3=(l{CA`*_;X+_NJZ!9!A6AyMlbxNjPn9w-@ zyN^L@JfKs4k^8|vGy}m&Gc7aUFj@gPaTn1ZOU*;JnucVF10GP_dHH6~e&l%* zrx`)V+fe2M)Pj82_{h~P1i()mwEbNe#<;Q7|!f|JfTp0#m6t0JWXWZ`Ia~^3*m{@uDmr!<mW3r`nyzPnNZE=6LXOBF%(YyBipa=Jx;n^PC z7XTX%4$O99F@)B+eRB-Cv(7M#OWaO9DIe~0!{pLRu!xw`PqXd10eMLKa5~7TX+^w} z4Wet@TRzQd-N|4|IZ(>``!Oc3t_8Nxo*v|;^dAW}{s;2Hn+MBiyF2|=<9`qtku7UU z3m+X|^3VoN61a{(+FG zV6*mC=EYn0Z}4IIz0tL%Td^F*tjc^?KSgHa3DbY04Iw7}u&lyP28_9pOj<843{y=Y z!Y%`^aovHIiN#iChMvXBAIw>9lV_<;XxfBp>^^8ww*ALWHzprigTb3m1=y;#XN}MD z?78_KWBh4u{clrN(mgAg@_-=RInj3W3~I=DD?<`B-P0zmc z5*w&jK4Cd|T#D))mg=(rCU^IPHut~)%jb`6F7F>^?Ts=0XZDNzL?L}vO15Z6U)jss zlP~nB9$`XB8j5?H8+b4oyfR`Y@VkHj*!A+SU7YiV<~Q%|8qYO*2yuXjFjBI5Y1_&M z+L~;0)A40+#`#YE8ZOzzQ!Mhv(3WR3rU9Ygc zu1&pBWW?+l-sk@Kx&KRk>};V3w2Kkdc~_+N1H)?A)IJpD`|QWtlUKlRGbTcNCx6R- zNu}-^&+NZ6i`Xn09j%40lk7UI`{}>1RtUHz3z5^cPUbALo&@a??F_=^&Clu&a7ePV z>)CHCUbz1DAj~+z{rt5IGkh!BKCE|-dli0gOMIhfBt~SG(d+x@QnFU z#CcKPz#KgoQR)NA#xpF&#lO*=aq|w>UZ)2JG@fo#|3#|%GKp;;W%}<>`MTIL%S4_y zp`j9=8FJ0`w1Mt$QNRNfZdXyDqZ!(K#O;7|?_t`d)*;W#oXHTcyFTu*`e+uV@iHy!dpsMTMrOrP$fb(ZqU%7YQa39oHS8iVSt z+WU=E(O{lbZ$)`pVdL2r?v=-pfO~msf|EIh2s${kI4Qe&$bNn2ko#_VZ~b8Yy?uo*dZTHtEcoVjzIJ9fh+Hel`Wre3Ahhs%6m?Ofa#g**k*)_>c zWsy*kqn9vk_O3}=!#VTyWil@1T1;iA#O@5Tu|)=;wzZfX|E^{cQC%0Tdq=TWF|1sr zL%UANlt@*-%wM}FC&Ec0GFd%L6PK=D*6RNeIYBRPO-d* zOtpOQ*KW!c9`OM>EianW?Q$+!Yul8~1!t@qc9sJP2eKfy9@2VeEbnLjAL`x&KC0^c z|G$wfXmFAO7Od!?!G07Hz8uWPpGm0oeou1Z2j51EL9_O#biBxwD1ErQiDc{{FnknS0MY=Q+=L&a<7p z-engz?TI25cAV;E)lHoKrrrjC*XK}DU2eKHUgzkS!K~odr&G$Y1Ct^!i&b@pf#z$m`>j?yCHh<~q)G?Mh#zx^jC8`A?Ys zdnZp%W2-&}eVce=T-r)O*Cs)Wy@}OhkBn zH?qQt(})M86A#%v8EZV1YoiIrrY6S-mRcs3#I#JET}GEg(RLYQVcQroHgw^U6w}4v z5sUCbS%dHZXAAtuO2T8R0ICAtvQlF~ArT{7TUOI)s;T&_q&gUSjBQzQf$!2HjZjFg zxnEeeB+h`Wmh|%trjrJ724uIWClMq(h7XO}}{Y0wVq!{1ed@u3}(--^R(>I}%U~HS`T7po)EsGIy zEm2VgTB55;CRfQf*lia~i7FVLZ&|QFv;?YRS{5u+S|TSJw5;C{yBL`Mg!L29mLODc z%VLCkGAh2oqgvq3VB_()w*;zUTH-a<1_5K95HFRP48k|~wkWH>z~X(6(QP9q!$&h( zj6WyoLn%WszVu;?p}oFy4BJUYQd=~2>alW*>6YBWMaRoq3l%0SuT(s{UGFti0(hVgx^#@qB}wHl3sVeH@#KVUj_ht*EkMK|G1h z*^*b|$KY%kV^dS?!-myh{BRDi1h%np6cc6aB(BaPV{GcJ#1o{!$}F-|Y&WRK%n@ev z{G96&kHnMLH<&srx6E_`5gVNH9FHX5aF0%gKawQ; zvrdMt$voa>ExQ7Vs+c+$rzTdp#5ZFnqSZ_ysg2Bd*z5Sp*=U@&;(W_K3B8~RVyB{V zPf|@g^GT^g-G$J}C^ufLbE2ltwMhqYTQs9gCRJ-zos*M*-Vg!ndKGIH!&FiL2`yjJi%j+wfX~MG{YT0k)bx z9yQdnfY8V%LXAcrf3loWt!x^qX?!+J7xfntPjHV>#j!@jOI&T?oTG_HN)yNQgOr1~ zELrM|Ga8ltlL)$j721#z=zh23eE|I*3NulZU$-egHV!wNMaFN zR8K6%ajj~y8d*3Yos24tfsN4#O*%3+slVG|Jn6=#870$r(g^z@Jy>i%bO{#P5ANXS z|6+Bt29vI{JM7=9WH4#T7l)$b*LLqEsXxdu56jq+OSk)8w|@fjdaPIY16lopQu79< z-85cPh&IkD=K(QIFK-4MF$70&jt`{Dkn?7w3j>Ro1t z=p`_C;|_v1Zy|V#(Go_>It;##!G|N4G&NtJQ*9sgKnLW?F2MW*c*KN`{?VNNm#ClV zZ+()}80x5w|2drD;J?useB2P}eKIZ$J;ie(y&2EF%X}_yUccDf=Xmrj4S$)NC>UW` zJ~w(KL?)4D=Xr1`)nn@(~)qe$kHTqS3S>Gg7M9C!a85#b+%o(AoeqZW`YYO8d^CJm_*y z7kg;+I#M^h8y`mZL`R-II(IPX)=h3-nzvL~R9*4OnSIhBmNAAD715L*)r}` zSjimU&&%Fru77S0-m2#FnGK8cbrrOsb+DfKuZERzI$lcU^0hG6e-#)FV^AVu*zqZ$ z@4qV7EDo;X#cUE_pnn*`zoz^lVK3Bukzg5f9pd20DuaP`l0?4@x4+E4o-d)H1Tp>! zZuZ9*+rIG6ruKY$>mTdx{%O8PZ!Er-xuVc_$c_@Q`7e0Y3{&R(iGtk3cTqVZpQx(n z6i4OdwC61Fj~)0>?&rW5juP+>%Vu?Tc`<6pSCCbC$jPw~mG`7u+)9giJe#nsZs@z1$pTA)0Zw5pgYH60M>|^Z= zT4ys^qXxMJ;@CNpKBm|o?VLY}@&WxFnOu$vTEqFZXrUDhK8g?Q*-2fYg;q?^H*wyC zyYdnUe6PXzZVl_NEuUI>cNWZclvz0ThD|G2dWETz(O+(Ef|m~a<>Q9k*_15G`a5dT z$pqCJiC`TU0%lL%gsy2Cki znJ=4|Lapd#3!Ya?T3FA)9w!#pN{{$9Koc*A)IR+%)o0B|7wubqgcofK^aTss?`N66 zXh{=nWM7khpJ9U;znYVF2OmwmqHB6smkPg$xP(kJ5{d)X~YJB$3RVgKoE~b}NNOJt|tyBc<#~CgB@0 zC2vkAh_&Bye%kLxy(J$}CGyeeU%=EwH4iyG9lEr=%&V`6yp zO+G)5df)7%Jbs6mdNU7_&hV|nEZ5x=EPqgvG~;X*^Lu=Z0JC~2lEZSwFM`Vl+A^kH zhGOV99y0Iq*N6pJv6IcoJj^p|4d*$J*hwGZ6YH?XvRdzHkW`yw`G=%y8RJCWb%tlY zvS#J5>@iwcuq0Z})utSsk3_Pp;8oG$#>I(?^HWg~wTCp!uNdB8+_5=R3 z44)R+=OX-0T<4#Lj@)QA0O4^h4bF~2f0&Oh=HJt)xB1Z?8i_^Hw4cAD-VkJw-Q|nnH=-~#$!FF1qmq; zOoSW9>g>n%8Ue!yJoCJb_Bhi13>) zRjbmt2QU(B^MKI|wB-C3Y}DqDj(+D<=16e&{pPzbpcHBFP+Xqkc+4hNjHVQgvZLCD z%KSjopN1cGOx}awf{uY&slf&8%96SW{RA5jYiBTWaxB|(u(H9mAz<4($gBB1>M^7Z zzoCDcJVu{H|it0{9O4m?*NDLN2S_$jD_%4=u*2p;%|<|>lj@t^gSCtv)%gR;Ll+? z2;-YeY;^0_JW`2;B^w|jL1DcPVjo->wW`aYqGaSYvpLV~%&;#;lz>bWH;>YO+fiD< zpB5GFlLk@M~bipSq4Q~V^g!rG*z!Qs&&v@XoW)haAjK~S3Rt(KtNCeRZF zbyTR@R4?Ch)pIaz5^ENZYrN8b&8L&aXQ@$OT>uv2Gh`(6J-LNsG92_fC}6YCTB>cX z$*ku4v2eLI6XC2ia9?Jrg=%2Z#raIPItn@$rC_fOk06I*MWgfqRqV}7l|67F{jBa# z*QO^W2(*`p%ajuI?D14y*}V98~0c7Ln#5IYv%Ax4JjrmSQ!0b7RKHA%OE%A= z|4s^*<{_+WfoNR>8GoPf}hUipab8IwcA}OOA7N2Iv%=;gr2H_ zx~`!74Oin54BbzNa?Ss^e4Gqyx;N#JJC6!XzoF3A*zwhj;Ru zZ?fr_8*W+c`ANRx=S%a}!bSP>mX@dHtz&IH5OtB&dG$wJzV(immV`=-LdqvYqgIS+ z&ueC3ck?_4IMy3FUJMEzVkp91bN5sO$Gj};PIQcNvMfuaYH$(VOD)Qf+fUai*uuw| zLp=V`#rj;;;ST_O0|vC-)Zzq|>lsfenDzr5(HefkXHxZ@ODetvKl|uVbHfYZ=UR9R zUlJK({?#ZAmAu35sD>KD*RF-~rJW;RiGvTtNlta>$LOHs{yfWTTFkfj2d1@ncaIyKN?cyetRC=ePGiqy z>?#RJlWUPqRljASwTeM`~{9`?KO%K$;}G9HD_ z6nm{O3z>tTqcs#Y#vE@M4mL#J2WjYI6;f#5@I2r6dluncHad0MK%gVx zX~E06cK{|&I-D_jkW9W&P)=P-0Dq{D7CpQ%{#~b|AY+1hc$RH1%uUGZAO^qtp^5pY ztMbDXmuboJ4u$?ZQaM`7F~1M;v>u!%p&6L?Ft<)T{xG4B>z?D+wu_{0t9aD-F}YiwA@Xr8B;mk%`Qv#d8hpGl=4=t zrmbcSMedI3x;g65uYgdTtrcBWrE9}D66rG4#Yg}km)Rg2UKIXX&#UvaOy5g5@2oJb zZrbG!Y`jvtgvJ4s0z&{P65232Ht*;z|ISr#zh+!4o%Oxd#cPhDpI)(An zLyD<9lsff0mD>;Htnt-XE&_=@j=V)v5Bhs!R6R=r;#9nbbX?L-?v(X~en!PoV9EWy z-u^pVyK4?HMYM!=Y|W25WtC5H5vLae=`Togr+k8KBEu){lp{XWTFntYE#easwyWuH zkz%zwWtoqpK=QJ73}6Km)a1J--CffRa8?+#zQm;Iq%`HdP|5Jp>!PLz|0MOxXGPse zlo5}sgR?ioF5_4kwM{q9>#8|BZB^$!N+RhA2d`BkhBb1+%n^9Ihuz(m@@y+)EyP4F zSinYu@XJ^@imD*pg&&)$VuKB|U}&#=O~dyln`vj=L~1h)_OCBm2`z?24}{*b6WjXH z>uU&UU3yHP=QL7+0TQga56C|=UTlJ;Ps-0Y4n($cRL<0Rn*rE|6IogF+? zMLaBZ+;@I!%R1db=KIE?1(b}65LQilo_z(u-s#%J-h||EY-tW$15Yk50NtVI|QQGY8_`%QCShlc13He;cB+%@~0 zVC3|)=SH55?wSVk=58NAn=4*>VcIV?dj&k*2X>*lCbs4SzMy2PZeV~1)$7&=SUDfi zmb)hCbhlq^dbaeUO)12XY*et#MwppSVibvH_Z!L~g^%4xQy~+B=jb0`PyT9k|zQ~gUx4FdHceb~gy=LkladlUi`W!vn zB=)}5Rugu+MTPobSQ~R2MU?N8?Py29$!1oL17u`KuiIp`H(8Vivje3 zU3AF4tv{MpN9!$S;baZ8-=@2@Nd~gje9*?7vMA_TkBy`f>OgULB`Wj0Ha!mHV(T}% zyKjYOLMad+<>q_u89_q0GI_pmwzOO$@JchBwKhv0DqYr=Mi|NB2cP88S@BbvO55GX2f3C)G&a4eAfXT493FPx578WAli`*lqoW>1r#mvPPjBe6AfX3mNVsBp@H2eAm>#^5 z4{`cpKWzV?web%=xBUZWl7H|;F!!CPfAEz$>p%1lT4(xCD@13tE;QbCN{#Un$}>B8 zQ?%EMt5CspIxjJm6 zf5?AF8sEGu;V{|FH=Ky*H@fU;E_YShOn1rwKDm3=czbU0U4<(VP0-1FtV)~WPO0aU zw`ZM?qcLJ%@u&Dwl{VC?uXUj6y9yV>#4n{!7nA-k$IIm^a0RA(k}- zS9?;{cvDt;doJ_#takT2!jAJwh`k)W##T@S& z6KxO;aTScwn2d$4Y<^51bS_KQ2Tdm4`1^a&*I(@)Eg?g&ev+*Zv@^J3 zr11e~gZZ0n3DkASfbP->e><^GSRU00qtOZ9lTNsWW*wKVr&6aQ;|^!TMYLl=KirnA zAJ)xG=m#DBdAxpTYxKimTR$+N67N4833gc#)emj(X*5V4_i5T3iTyZD`k^>LQx0wGHMW`P#44tL2 zkYG}p#Hb1NY*r)ZL%^FJ35)NJphs9bVKf#hDHPWi^(1qFGfU!@o6gP#|FE;XDI459 zm-_BOWvCysLHdv%cS@KJl>Z*}k=#A$FrhLce2;ijR+&E3XZ|}g-96X&?!c8g%7@Rq zDO=qsD?!&#A=7_nR+JDzS^pv0g+}%9LF%iH9}{t@eRAs=q!c?9?`j$37s^2 zm2{GZcBGTCUl-4!lO|36Mmp*0V|5bmBjMd)PSanC3WD9c`8z$5&~vi+rr(sLpX#RZ z#h&u{D*Z%{3`WrvF$1&s&1!g}iQ^F4{G-gEElq=(vFp<5YE%u3v?!RjvZc=I8cfz% z_Jy)m4maXM#Rh`e68+T|fzzC3l5sOhRuTQn< zE>&FB|3d%;GYkk$gF_KH9;p;BXuRS~Ufg)<0JXIs} z={0hebuqQV!5=xq@i<+{b&f|(H}WUAd8QjVmxrRNNr&iTd3}dCnlRRnJZ$$P$L1&c zktO?0KN8B*k>n1~a!0%;*$xakwPt}pYQ>f2PB261U7RQ6a@}*sI|bU65~7R+R5;E(|u)YY6>KIxD_~ z)a&~^^qTRd?EaY1W6|Umk{YTsf{mXA!8zM^2vWh|7ppD!P3ISSYX#mAC%+JG2=p8V zp@tw8!@y+-^kSh~6sORw#-l1^rc3>*Hd>FQ{?t-1_6E?{>QJqo_L0~#^ekvCK#BQg zU7Xlo%KNp)y!Slj{qVgl)7K@xqm3Bx`y8F|W3mOe-eQyy^lkGq&ThGWv8_)U$r7wF z-^#n$QHvGzqMe*`mfI9?v=r-AdFsiTKH5M%hnA+PrH`g7@mxE94?C(rQIm*L&DoRr z7&+hJtP16X9=xS+ie1ayy~Nw|mC-x>w9@h@vk+8bt%iVu@82Qx%R9$MrHgM@gk#?C zLB(8?iwz0pMk8Mqek`lJLya5`9sn8lxc#uAhqsQ#gDfx5&@gJD#mpIa1n(RdyJ@++ zpK>2W+mc&rUN#!XaT;Sc&A|%+!~Mk#3#0T1UK-EmnEwnGh>udlbhzV3$8nJ&}8N73?>eUvc-(_U6N zTh6p6X`Z7z-rYW~adT*xtG zXiqWdl$3jnd+wOm37nv-ElLe(vGESwr^+d^YL+QCn`-YvUozQxDaw&27EEgX)EwUn zlcB>of1o z72@Mt%LwR{Gm6t)3ZBZy)vTc)ny1c=2Y$&DGgZo%QY!qWy{ctS+1|XPj(Pd`25Mx} zKD~Jfj=m|z74}?4OInm+Z7FrWmX$UvF?_Cyp&t6!gI-O+y=J1K{28-E;SEf+BuJ%K zt}xVjfCU{|RI4>$jjrefloC6Y=;2~hz`QXK+pNS$v_nS&*fFobe4-N{ha#F5nL!oD zydHct!lTIj@7mCGv^>SC6f~Xgg15^L2TzY?`*~$zTllvP&xq5&_kbte}$d`vI(v0T6ity;*BzBl3;iwVeV~Mi;Fx!bl7Ti& z%F2-#n8x5o_5$d68c{Hx+;|^0LA3bid(qFI(;|s4(RxRsQws0%Q6k7O(1yLWG-ZuZ z|Bm_H4LaqCBAbGDMPaU@Y3;=w4L!9=sYpV$gGNtk4@2L_qviZcssSQRw@nNCbs@AO zeoiH&BPxn|9(A$cy`gKog8JOn6j*+fKIy)s4~)`iSxPvVZAvL;u>!=4e-shUu)lPV zk}fKdMKVT_;9*~^j#%2 z3-ptdKB}bCm2@Uar8oan!VzfZ{Qod#xvhBJ<`-RZ9aSBv+)vNsr&Ej2r(K3+U78`~ z%^u@;54HcPAw-PD?Bi00r@45IAJ z{AC~%nhUsu!}jG*3x;uB3~S0qaPH#Vy-$KMm#Mn_XP7NqzK1gB5aar%m6B=|p4V;i zjy%@=ey%t4B#OTwWkI2DUgm=)8)M-t)veZEEDx@2(@t$VV;>fWbeJOx6rr73jDfQK zm!k<3v6zS~F0%DhzH3L+5`ke_=c!z0M+At-_4w9%D%aZ)9M!kc!+P$@4OVeVwe|>S zaApD;w{@l`WwpJrSiXHt=yI<%q6r^+7n?SP$q`!1kR5w8RkqU{2a>WmIbJAa+3{PF zPK~D;G%OF(TcFN87NTC$4o`|Oa;m?;u4xk?RH7)ZOpX^SQ507t;@KNEs48=uhxz0< zrtc&^dul$q+#^bIx(H{Zq%5QPY%+!hS6w*4Ai3C+K^v_D$s44YZpJ1X`i{Vr*MR~b zco@+UPOKiE{f@y^{q8l$ z1UwnA!v>IH=tgIH=Gqh+;}i-W@s)tnqli+B2(hARq+(y~psLmd9>(1hpG~1`dE96h zx;)CFFxTL!G_NUisV5`KTr6SM?gF<>f$?}JaBR~qo4e`0L^*(n#cahZ_H9su8^AST z>b5z`?y$h%s($!u+ZxAJi$ZpWmh3Rc#Z{IhXcZOOsL5$W!neYGW@H;(Bt-s{M1tW)H8 zr+Hqj_(@sjd6VK_%SH*A*X=zMR|DtNW|w7IrqapV16fM_DOjW6cYc9YC$V(fw&lx#qji3yuD`<3R` z!p}t7sC;gq2|p9rY>Eh&XZl5(!E$Yi$MM|q6dO;DBN&lx(kwG!y$M;VWOT-3=2B5X zd^nEZ9#eKmWe>9P3z|F!lx&cVUz165SZN-P<9Em;t1-~x_$@V&D-C`t*?~9c$5N&GzpPaEfBG*$^||noF)SeA5#?q_Uo(|7E4W;D-4zFGNbfWvN3j<8w`l8 zrc5Xvvv=3zgeLhb4s@BRi&}glvGsi+1ukX3c+xQjUYYe2|K{w34ZhQ+( zg0#+-$j)BLri{!v%J?;P%O6hrX1ax2`A(u+{*7*NSIx^@W=fy2nwuv#di}R;_xi^M z-TvG5yZxgMxvQK988k`WrI^q}$N4{TMO5d-wNb4S{?Ep^|5HBD?LQM&DabZAD?x~_ zOMvGYXKN@HPR8B(PHNhuU@wE z@R=ThJVf-cU%{dAg^sdQ6kM6E@M@>R>#_+qSL?APUypTqoG?U>YxFpEtR6S(@$Sj) zsu$FpirJ-LpMpjO&EVg#NWlsPwF*`$Sfbz^1vLbdmklzHafY~YeVid2^L|FZZM@ep z8>4UYjobIHs2zMLa{&c&?uwgT`}n;wG8)Ll$%#2D@|opyeVcwWr-<2pvu;>TeZ3tx zHJp>Qwj?1HNl%cjNHi-eHiRGU)br>B;cv+o1r6a#6NH~OR?DeoosN#g#0amvo*u1VbgFHYH; z+(U``|HUbvC3jTte>vDr#YWYrt6R(ukTi;*H@P1_1%^2 z^;Iwe9%UZ?UkvknUCrWUK07o5R*a7Gh-5frC+5i7lAVohwLmVXS@vU4sv@F(Mzvz1 zo);E)=ZQQoT%w(g(`{R{UFm1rmZX7Fa~t>H%H_f4iA8fY^o^SvGGbW8=M%(D|4;GP zBGu!5L_=ylw{hb^xp{a)B9Ey|wTW4-n3zjuV%93=*YdwivehPXiz1^ws|{+mVxpew zc9Z5~#U%XK;H@UMNwKr(PTcTzz5%%3SYr4lM$_gR?)@^HBrhFLz^$GG?tr{>dI4kQ z^xP(=f3kd$88NH!pR$(r_kNQe!LzvhU(3qG#=4WVPMkjy_NRzbaqJ*zwrD4p;{0Gik33g$cA^|r> z=C2F?DTMXwl2xUwS8q%A3weEQy}pN~S-rl;wTsE?`}G|2^SmXPz8B}1pVust_{}-| ze699KUT>J7f0X$CHn+c%XWW)3$-VxzT7AlZ1zpM!^eD&Bp&UGUR13XY1_ znFQ<#GojOj*(S_4;Sdv!?V+)y{tC*^56-1#4HtfeeTq>#ILy@i%XRA4a}*0{%{c$* z{&UAmPuqr^HCeBx3aj=^*3aVsf@00JcC(2wsTQV)y$mNbMMWnuMXZl7>ECnv|Hm$k zSIm+zcbKFid%VZ-(*EPkQjr;EIo>Q4*&`mwW{J%pW@M(wYH6BemNZs*tf%a8ytLY# z(`Z-wJF!}~ppO(4DqPxfu~A({TNWRqEq68!Pd9pOg-L_9+}SwV?k27^F{sL&jlXw_ zrW!38s5500bgA9RN>ZS&s)J?n1Wg{JKWCvo-%HY-5%U~TWi`)p zaPfk#FvDJ&-0Lqk?b}rE>AuX%WlWy#b)F_}@EqO6(|x(8X)RaTIz8Q2c$(hjlBg_C z_qRPwtfHQl?diVK)3n~}pOx$BzRJ_I!PEU6Z>x6Rj#&MUSpAMz{f=1uj#&MUSpAL_ zxnF^e8fOmGOyW=D%E{4?SJ@6vC-wi(t1RX2;fknZiBd50)c(=7Ppc6*yq*6SJvKKN zyT*r?PwutlXej^7y|#nVQ%LM0nr?^Yr z+n0JPQJ*hK((qLL*R0Gx&RsFEn%(kMh8p^v7~O}ZR!!O@_v&$amUiT_n9hj1r2n~l zmCz1J!-KYO6-AZ?%J*u7H!-{-r)sPjT1^^BrGGaE4ACNq_GXLh2A8cZTbuqpqFFVa zMKElheM_lboEZI)1lhJ9_`j1D(E;wDi%$4$bAf)p_3m^O#gql|zuPJpWV&~Zm+?F% z(Y+g==-y3Abnm7ox_7hb-o2)Zk@0`ouLi<;$W+0#PAF*Y^oF!w@sEPdKd5Fla^vyH z`HBA}TIPgL3l`2HanD0$aR_47;4oS%krw~Q%#LxM5`DXxJ+x-8Wv4UaTGj8eLVw#r z{~$I2j7W7k81^2M=5o}z9Lrsf6+xT`_I@q1BZ_=QysRkl6}K+(4NoodjZX9WSp;I{ z@BFOE)h?(m+6CowS24F@)QHU=MZHfi>OG)!QSULSMZHI)EpYkAq`UkBIu+(r7v`*R zy!NT%wa@*JebyTJ@q3T5S$=;_Fx~N5bMI?DYhBZj-rIY$wVj9vtM@}km5@YA@z`e; zFU08wxLtsIR!)7*@>I?ObmgpY<*Y5tSzVa3`M+9=dVXRQhn_NB~*2XO3H|gTuGT<=Y&Sx0wBM`B+`JE=huH za}_mEwsEqsQy8ex7^vZCp1I93jpf4%8CAv1bt0l#5vOAB*x@$jtcJ8A-=ZSl3Rlw_ zSJT?Kv9n=0ft3lYEMQ$&)VtU!>J9AP!0tUf&0E#CkkMyM=`4O+{u-T8QCkDj zzV((g_PAwB9$VpWp>F?Y);h`TNk%qR@|Q3EQ{uN{G%T%_7$;z zefX0e#!zaub9KxnPfaMtQ`3;+WdVN8PKUQWiy?}h@%TpnvDmj5Ae=v6A4>x)Ksta2 zoR@*K@GH_(lZJtRm36jV*142*u3gsIc3G<_YvWhI+5YADjt+iB{{7%_$cB+&qlAhK&a!JEQ5T3)hpTVM=H;t58Lkb8Whu4V<%Wx}0m%#YtINUjc{ZRHJikI2kq^ zgO3d-!-kU&9JkruAG(@h!i4{e&zg-W_d%3%5#@exwi8j#M3l1-%>f<{l1nAN16G z2y-8fr73Q|%2Trk=H6E9n+9{wTIk_et}lU84V-0mBc5$HqG4{k5#b35$!Z#rVMsAm zFPrf?!Z00e#_MG>9?UHU7CyicK2bQr2ROn92A&mV;FAh%l!1ja!lt@Mg-vxw*i?5I zczBe7Pm1$5U|``)a^Z}!X>i&!W&}?&RF2wX44Qjn@AIdBZUPVDXhuRaE9F$z3sN>06rb;w&-ozV!mu=vG3;(^0Tlt z!B_P6zM_|V^3VPSZ(mw5{@2g^?amjxqk?z8_U3(qLqEDWyyUF1wFiDbtofR5y>5H| z$oF@rAFcWD?~5KB@iM5i{5P3@7XR!XjX-Me?cXubF%pLU&Rop+u!fByVCtUK-?$;cwBsL1Nux9{(* z-~XPZAMLaD?X%L-(gs_D2b1N+ZdSK$mdoY(nf0@uk@dX$t^4n{!r|~s)=Mt|;*NW* zd+)U#ee}_DtaHu*RMBPDWtUl9yLR1TZP^0I-;c4zjIp|R?|zzf+G&8^_q_G|^VaF7 zpPpysqPVP#}cm32S1 ze*9x=;J|@TTTeetl|~P{zR~xcGMK_S>nt{{`!X7px8)Iy_@N^9&?- z>RIdAXRYz$$Cp?oC6MCtYpiRovEF|B?X#`3&xRx~Z@0E@w|e#Jb+dKz&5))%-AYfl zzVn^$7{`)9IXMO`8U(_W#8C$xp0TUU}t1>%$Kr*}V2v`}Wo^e({T~ z*4C|%ZrcOa0}ohUueZ{wtb~LsR$41pT8kDfT3{_$04e+2Y2A6JHGB5#Mys(Al1~4X z^{Zc5ZQ8VX%X;fANLzZfb@kQOKmPHLjn>AEkoZr_tYyoroSd8`){-TVx_+)Tcdqr_ z?|!$;Dl3EJtvgyBJ6anyY#3*a8wcq-g{)A>8Z~OvAFMz8fhM@*H`Z@{W8HMqP5-j~ z^)H&@{hn6Op4Rui_r1f`;lngZ#*eHY{m44&th4^d`k()yX?{GznlZz2I2>)Qwry#m zr}tQU_E=|}amEyD$`qPv*t^!d?^<2DbosOO=RebApFC(i_@H&}x#w0{RaG=yWU4iF zs#RE6_`3D_>onmzhpa<~tiS#3Z-24=@)w$N@kQ1}7g?{q`sxp?AN+tOy}O^)ub=hP zpZ@fKb>IL^o0)Ir=Ub_%scWsZYiZ)(KdpcM)B58d|5#uZ6wuUTJ6oMQTVH(f#b2$z z{*@-b{VwaSyR0EYhRm_%%%SODxDVmCRn5`$Cc*2Dc!y4Cw5nk*1>#u(lp@l`x?uxKlKmYm9yCbBq%J$O{PMw`I z2%&^!ZoUO!wAQRy^KXO@)=6K8@L9FBwT~cl;-LnF&2qcls}M3+>37)(m(|qNbR$9q zOHB(POxEVjo6kguV6C6*KzOWHty(QdXkf7q2O=!id+)v1A0dI&+NU5K*5#L9z8;}~ z<+hGM7_7%0d#o5Cfb|~e0P|Zn+;GEqm>w3ad>dxBPC4b2UNAYVxbizNw{_)}S2|&8 zSaQKDFtgRWckf@o#IWX_UYOUq_10S#!L+bw<7}AKI(YD48<-SU{nbBUPOGA#A_t~~ zW#9TP%xHb^!3P^)LRk0eQ81tN%U}NTCYTNu-uOM3%{u@5^Us3GVC7{Fn9I8O;)~CK zsbJ|PU0^2b(n~Kr7bb$W=N7^|*5i*q{x_Hg7B71hX0fii>Z+f@B(QqNRG7nh^UXK^ z2vflFg|M+E-hqp_`r9(w2r8W~ae&Gj^{HEGhM zpVO#_#J`$pOzYu?A6`QvA{sqwX*}z*&pvb0Xo$$+CK}6n?X}l7(@2QQk6O_<*3qL! z-=k3wng6+*#;~rv_S(m21Vm@X4G`aY^2sMpf#`@(+bbcqHDSVp-Vhm4+H)(!wFV3r za1f#*Qd24*ruD`fZ+rj|5v_NB3Gu8RJ$jrE(GameUktIVE3UZWQiz18J@`1pv3~p8 z-(Ce#5V@*1A%=D2$dMmH1VnG@Oe$}+YuD}}Dvb!fK8ea&!-o%lm`Wmwhd!fn*2f=z z{2G-)B>!@h%2=nKdg`@Q0@1waNszZZ9?t}jMnr!w0A#J(ZoBObkVI7b^#D05H#heR zkV0e+{1#-a=bn4+2uL8h`Ryp&%F4(~4vKs*I47j-IWcA*BvWoKYkWWA=t*0P?PFsG94M`1TqiZvEBE$j0MXi0lb#jJ_@ z7h&F|<^D|b$(lZe`H~fwhWe9sY>WAl7cmld!@}A;L$iuYe~K9p*EC_a#J#WLZm1S@ zh_|TqThy#t=ONfyT(^eim33Hv8jw|JL>-HY?NlqY_#aTi(qi97ovRfe#+*tz{sxec^{WyF2n_&VeX}+9zm?dmAB#^$V)i~ zH7lv?0{e)2CLwO}W?n*EWG#M#nH9HwfLV|>osU_Q*6Dy5mNg%SnwM9xA9j?Le;V~E zEqM#&5%?* zj=7Q7atUTgR=quLhP1@bVQYB>>9{qrjx$g@vd$Y($C838P@mGWZ=()nJ;I2;r1yNx zimc9V+(~J}n-C*u`7<$J(i)fJmP)EGMf_y7?nBK>DqlnGN!x73+{)U%i1nuk^7{USdnl`!hTAM{GZS+!?=AziC~a1O znvym@7j-M|VGr)Aw9B=aCt0^0xW&?*?;+N*YW;DW<>f5HOv*Za2Qw;fvNi6Gyw!5t zK6!1|;I7MhW}}v6m1bjh<+c3JGYB75&qB>f>kP-tOS{~LTP~|G1obE_`6lW{)?qbf zL|PszT`Mb=gIbrjy8<^uUdazo_wp|Oin^1va^MEa8ZSppsdu464rMi(F=z5-e~cS1 z@AG!tL|La)+zWY|C9%#4W>#KnCT_31<$AgY^2$G_J0Y$52JW7E75h+s>TMKZHss~a z#azoHwY^SvK)t5F(;bl(z6Y}=H-6wgGYw2#uiVeVRQm^72x;3(@7vmPj4aJRD zuV4x8ioBg!bYInL%%l6L-bW?woO+pCaEsL|dI58--sru!jq;lB!flcFID&42yt_7Z zr{t}Dk8Y)`@pHJt^0qtUPOBH#2lqz3rnA+{#zdWknU;5d2zNofma8$x@+zIU7qS_0FEfO|>xH+i^G4yZQ;{UA=(=xZ(10*W=cy z_jfmLi+Th9q&q7wU?<%~3)P%Y_ffs^!S2cp1*LN8grGtjfjdNFiu-{$DfLc|jPF|n( z{a?doPFA<3d-Fah)VW$$G2=cgwa|Zknq!_WA8I%)Y5he}@79b>a)eeTveJr?Kw9{PCMIdlvCQ| z>HN^mP{FMC$f>rEeSjiPJ*7YWg-#h~#l7?3bK@8MO4n9!{GOo~+sr~&p&66#FMgnj z6ImUifG8mfh!P1ZxOHyz^{EZf^;JcF>Z>EeitO4fD`FLa>T9r|R$6Z4)QW_2ciJ^K z)sEJgvs79`iaHOOAjR^+-kexL;zB5RRv{F08Y&b*!%WCf-u>8mi!dRb+!$NWBIvAC zgit+>P3!iZ;`Uva+R!g~eQ6;i;yw%&M?*Uc!8Y^hFWgn^fA>_)vJA;$8MWTY+z;aQ z=Xw28SZ;bd%S~@$;l%Cm*tJ>is++P8E-tvK^p=SeZ@R*;grU=K`$w`WhG2rlW&@Iv$OY)dzH*Azr}fn zRdCx){Qq%w68m20EV%mGA=eBZ=qes|GFCqM2=SMHvGxDU((L}u{%7+nkK>IGvK{w5 z*MsqE&dqypa~3nSO^d`Nj`TO(*zzp$PC#QQ&ov;0@70rzJAw%&F@-GLgCF8#2#g6WHu6I#r~PF5}77 zRapIW*-!qz)iQ22Ik@e`@$7UM!bx)Ony|Cs6xO4puv(?oRa2W@n8J#tt*)8?PanE+ z_Pc7T(+X3=~CnAc#5WL7f;uYf}9kQ2@+Z0aA9Fey(?#xt7ZvMxkGh> zt7a)rjjo(eTs4b;+U&~t+*Pxfr)WB$M$_>WO$YpFI-Xb*wbX{P)|Iox#ysN6IbdVC z$CY!$h8#@?lxRAhqUnGVO(%S_!1qG%b%JkZVag^~&PtmKi(EPDZOlJ*B#y`yodGhWjhcDxVzu+! z8a4FXMW&_MV4hysN-f<=E!~QiE^KvkW_DpKwR9`BbSqjKI9^~^9?f^$_Y>N?ciY}$ zTK685%8Izc-Yie(J*ZP*Z&oGr9&;AVIKWxhdwh0b?@4_Mdr!|T>^-|5OE5ty%)UjN zBWJ^rzIMJFTeAa;dqWC2akzmohhskQ~&e@C&OT~l%Om*T7aHIVzYVXf@SX`E?jZvtTV1bbSiv!`{^c6L>;r*#s0TF0=b^?ZA!zK6>a zkWSRJWBw2nl6&rvIS|M(?>q_Y1KrSN_;NHvS(~4-SN1q@?R%+C3vrb7FEGFMK8<5! z*R!-*Le?iBI8L9@q@#2(MHOzOv!UcZt{v%eCWga5}+A zC&7(;7Q=l6!##n3>7=egX6B6n_UGZRHJD6$tv=2R1 z-Nh_Pv-%1B3;!7YVAXG%$+Y7^9$G5&4u5Jg&D%GFb7*Lp{$2H3SQx_qE33RvzdJ`d)rM2dE++;r1^0yK$MO+AykGuo0b?Ycf@1oTkZ&+hg*CO`earYFfeRCv;P0u4vSP$$8) z*&!Y2ecZ02BuY|uRfQi_f*%|GGNI2KC=-G#p+U1uXqE}NGT~Jwl*)usSqgtDzf47! zU7Ic3iVbcRI2K^TX>yXxOBTu+@t(r@QxG9it6(Lc!qp1uBxXxvQV#e?h|+P z0G|>VyE1isC%qrlyR9`oM1O2Bk-bUY5I!0BB{5Mx0r)Qrchq}r;a}FM zQW`Oq(MmPzy~(J;#+H>5E1nSidV!ajJOOwe#W1xoQK=>a-c*XS8}_Hh>^X)a z8GC3|VcLNBT0hY-a64Ndb9G1vOs?Qe+cB@i0jS`iz8N*a6 z(y~%}P6i$em}}84CjxJ`aH3K+TboKDz{!>RP@c*f&Kv}_h%K!sWJxRDij)nm+GJt8 zA3REAj?0edN#=OM0R^A)TDFW};v$llLF4vVzevD@Kyr6kJikb}h3HO^}3yXa)!!%MxC%;6KAd4H`D;isN6xpWBGoNKgZV ze5_>m+>Z=t=2zoyhIGt0#FDjjR8E3eu^vq2vqZ^KJ%{5jbz+RUmAO$^QFKu*1hayT<&R)6BZjDKt| z;J3+|B1KX=mS1JakbP_$aQ3=hndgQw@UFYt`A z)$`_Np3%63DBQqdk`s{naD{6QPozCu;aR{FDGyf+eTLxLmz8smfg2Xwo2nJjB(S%y z)+6}L#Iqxqxu2|iECNz)iu7m>@$InE9Y}_=8>fUhX$^Gv@ zUZgsZ6R8XIjI0TCk8BRS9^MsrCA=^2r*LE7*>LkC!5NEor7PTL!bTG|rw6)5b_Fsb z`vUDFje(R%bKn=@>cCIKb+t9Ohu7EE+!WrXJk@Cm>rA-Dgqzc9T{9z)aLQMdnQF>3 zVWSC~Q@>`J?M#^_Tw}t`?Wko9wOmdu*HX)k)Uugc?xL3asAZ#aG@F{WtShx^qIO?U z@@{JTaljX@3(O6#Q3bcu*31kCj<26$s;T7^)$(>z%afOBYPPFIUB70TE$U~=Y$q?{ zLb{05Ry>s>AA=f;r@G6-fJ0G5ggElGuDp^1wXU8epYt@KhNlT@YhCRpzC%#jMBK#p z2uc?P4oBd_0}=Qz6oC(SM8t;`X_*FCIy{JQ6LM~4U}i~u;P#Tw1BWNn1VVtT=_znM zOE&}#Pkb+M7+_s-9H1i%oD=bEr>0Z(*Vc3`Sy$`IDT&m&x=z^5(}Y#fZDJTsD&0Wb zM9}P7x&yB69;lDN=yeeoy(R*qUt6*=;3;ViY?`n;P&c8ewkC&cuAI_$0-GjA0-H)d zL>~HpX_<6U%pq8g8Vb~fFA5w84@wVYgeN%z_2Eg`ft2v<{6Np}h#`Scc*NL1PI%Dd zs5T9B51$>_5gwBsXdj+V(c#(IfxPg5{J`PxfFXgd;qhYwo5JJcsgG1#95_PHIB<7G znUkloY@RCe2}Ta#b>vu{29w&j0X&~Wx}8`hQ~*RcEFX|Y!=Unva~*n-91BiFiQ_BanDGZ>!9M||spQuonq!_WF^)CM%!;!NDu>bLpkmY0@OaeR zf*PzI3P6pPUPGe){5A256?p5mB+s_BZDV4jnldQI6)^*+5a>qdJ2eYp0syEE&qFL9)&8Utj(rgpM zC%@5@byc@N@>A=YWsK`Anaf$2OGRKWXH|Hf(IWjb2f@`-2j>@neRm!6kDLjzw zXobhg6UmNN49zFFc5JO{ma(g|WG!b^j5Q#!m9r{tGayl9vnnPFhrle^(OG4lX9$E}neZzEt1=-}CS1y{9ZURJ zCA&?@RA!mVM0}5ysem%UE}Jn{g-=l7v(TjZg!g8St-WH_b(c`G)7aaF(_3;{pg;EY z-{D=gi$+^}0(~(DuZH*4E*fry1KqHozrt!(P2HasI68H8r$ALhwV?G5bjGm$98)uY z>VdStXAHy#<~P(OgZeNT)W>m9^QZ1_Cs18UZ$MoV2URuoKs$lzN-1?}DXC!Z#;_YD@+diG!Ly^^11Y7JP$5T=x5P!UKN2lXLX*`OeKlunS`Zrjcg8x(bqB23+( zo}n8w91HbCPDtpa-fJOYw26D*YWzM%&u;h-zk*IwE=ngV7en@AkgW#U7%R|z$)G-l zgmF-fAZvqy>%-($dLp8F5j$aDVz)j3eN zpBU6@7?gv2p{^G~cZ(pVog;{8o5+l6YT({pThmPrM4J*&?j{GK&4k0XuF{FY+M3c* z9Q1BNrCaG9WY-y37eSm?MiA#f1aTf+ax_p}vNW(22V$ihh&E(%wJALm*op(Owe-W< zah(SQz^U_qec)X>APnB61DbPGlMSXmJdf)(;BB6}u>&71fvuHDp}CKkN&EXgKp_WK z;&Aj24{!!P3lGWlQvg&{_UTukeWcK%4OF zc%Io6-zN|1X*MJ71Qqc-9VlmCc!V>sJ3NL;w#aia&_}AA8&yssPY>LizTrXWIXN|3 z@n>SV&Bi&IT`^dB1}e|3v2x^yU?Uv!pJqHhw1rh48biP~J1TXrq{a};%T^hlxkvKN zOS=7H1|KTN$&km!9o9o4<>BYfQscOMUp~fBIWDv4$vHzeQbfXPC!P|7jnUCDuUP2V zBMN}v9^vRj9xq5}sFOg&)=MSw#~X%v9@`?0d52Z2ct;icTtDuQ3ln#>g4E_&+GW zSNL%Og2Ue2uHUc52mGEeS!P$fr7T>4qqePjO>JxA$I8K~xAZDj;RoX5CWf9M-8ZGr zvG{cen{wdu$DM-w&G7~Qe;A}96;B9+V_sJq|9oC-&eN^sZ|N2M^#lH*?*<Y@3B|ws*zIHLr&sYWKenicKv#U%{iIq zoQI!L$^ZTO(!Rejm6~1gh>9rhFWKS2Zd*=&Ms|3W>(OpV*%yO4io3PG=Yf28>;*NB?b0f+1 zt;e5uicZ>_h|LX`B+4s!#bj4lXP(!TymCu^WJ}8oiSsc_4$N{#YE(pcqr#~x(n}7M zx+7~#4oq{0mn)oFmv(%r)Z2%?zJL$5|&Nh9kBbZD2;pqg?KDJDPW8NL) zDLFXHomZP;epcE)>+PRyDK=#GFIsf)&(|;kqYtqmfG>rd5r=$=4cY!#Z~tsN#fJP6 z!uCxe|ARa>&aG_7_Ro6zXIm>lo_g&!ggXECT2jS;BqU_Uh(Ln{rejaYh%IZP^Bc~# zzvJp^072h1oMigg`Y!o7@dB8V9kbm68xy0Xl_<9S%%M__2Zpe?Q;T8LGi@_&z1>A^ zueYJ5iz?a4GP08e^XqvH?q|2Wbw+Zs%6d3>N(e$$+2#f(OhYml#hEN4`qajZzvIo; z;44WsvXBjY+O@c7l8Y?lqUG1rmS1tNkp_agJc7-SwoLpVf&xm6=XIf?&^J7vWq3Zz z@O)N`=YJ#q`G!3I4tZ*K&VuC?t~B9#6WaVfwe*|ujv+8o37P90^Q*K{sw}B}VUKTx zpRxc8TV>%Kro{OwzN#dlFU4Q5l=f0E_`#UQY41W+Y2q`DTFxt(%Ja1;C0Fy4YjoOT z%lxbuZhqFjV172EoR1pCO$hT5t})?e^LdY*Cv4|wvh#>7Nw>>{`%Ktq!se2p=uXPf z59R2Ga`ZzvE>n)eI`h27gqzK0%26uH(GTV5hjONLb4Pl-yoM*`+hxLiCTujJJsA*s zQF7K|{!FA8b&3hEG!|;q)%M$Utx9g{mLKWyO96ew09ClpJU5!Kxg>*_Y7^F(aE%E! zn{by2_nENKgeN7TJ#x}1(Q1h&Q8!X6GZk5BOwxK|F1M-1;q4_;I=jQ6k|`bB;ZI7Y zv~h<&FRAb5p89rrNquMc)Rp{na8F&uPaF5tchXCS_7|+7eFbZ1FLz{p$W&})^U*9JqcErvRW4ApiRs(oarb}&Yo6Ov6d+F)q3#o!n)v|D8;^^u_z z`JvPyL%|&p5`jQ=`?h+&E z6Y!-<-4oW9ys|HU;);@I_vM%3N*#4id{1HNqLNoeyCb_wUK#F=AS%V~2%=Ktjx>vx zO4gO^D0Y`@)ANMgYPShZz;RD(P$)QC-4i1UOFt~xIn7l(2HyB-=G!cH!4}^5+4XTr20V^P!sCb}?T1LhFW zQV*y|J*KR5Ph3`VV5Pfsf635)s~&{ZBcq$@kR9L#YWazI{4?^m(wy(P&P*^gIAL=oz*sXf#hkC5-;Vx+6jUVbUtiP#; zeyGRJTk;F4A2dH3x0b9O4wMH=hVip+Ysuni?t;1pOV;XVYss)uVDgQhHCs#WghY+x z<7YkjiYS3^{4|sD7I(p7^6|5ox6zcxH-2_)W%NP&avb-aCeLlhto(4>k{#3X!-GEZWJ-T`ct9)T%Cs}#U_Rm3+{Gt;2J-2a{P398lD+VtHn2>7ctl%CUwDk2;YPlZ zaxmZc8Ob+(ZZskr9*|lxr7!u~i!H*_Pc50!gM6o%Bm?=Te0<~QF1{(>X-14ErIk$S zj=|;lGJJc1YIwoZqNyspgB>Ys6gr8eU@|KdQd#;Ml|3s@n{zx~t#Y$y5 zOzxg+i95o||KWU$kp>X0FLunEp{QqPxyx$g4o8P@9QR#dQbNAdO;yuKIY?18q+AkB zSuI<1Uy7oqpuaCNX!RjwW-MiOG^It8IPO!=+cZL3lTxMYY6w&M;%Lfzlk%^MR%4uP zNLJ)hM4TI__&@QqFS2Y6qh9%ugSEOe29DSGOjRs%DRCu2m8`yMbb;j*(0J%#5Bv6O)rJxMwBCc|hyG^s8m)x21$ z7=`92)uo0H&oHSvU0hybN?aPFp;B};EP9zq(eL8&e3PP9DO3;qInM6Bm`#_LpS&YZ z!{mpnqsilLUu-Nd;WZ?lj`#nT)2~=G>$)@5ugKH<*R|;yInTxMj?Y?|87ui>JC2$T z2cdjE^&}K-ChZRd`(*4xKa7 z;|0NZ#lTP~hfXjQ%ApfZ3gyrVCxvq8RHi~XbV{%Ar1Y^JI_(#wQ&h`r!AiPL>*=g* zWAJl31D~Nlhwvv1ILcqkvi-Fz+h5DF{k1IoHKrRPwY9Fkk(JCPMAp~3dPKI>){G7_ z$WH@?{4`+5PXmT}a9^W*IT+;SrvrKUX+z%BZ&p5fT;b%y{|(fC3w1sO4R%0-kD!74FIDw~WKgYH0nsC}MVJIciB+olN2>Zk zRsE32A;0VRisNL6C||F9YOH2Bh78}V{9`I^mv8*5L$-f)!j3GmoMrs0tP-Tko<71G zavI;tS-LhhfrMX`W&Elv<5y)FzbcD$M_Y|ol~uAWHi<*-EaOpSkvlq#gEy5`u$6HW ze)cg^QtB*N&Ko~#TH#`36>Q**pJt7sWEE`D2uoJMu2y(c!aAd`y5AYS)cwxrLHE11 zMssB~y-F6-GSRuRK=H(7ft98EiHXjX;X?`MjLyP2ql0kHXamknM=@hn)1hQ3Pnxmn zFrg{XYhp0a%bu@dB}_M_o)-5Vz|>PgUo-VoY^KbLHD$KA$ABi{duSS}p#Oj^Jojhn zNgj+b0U=a?Ip!N1=wxb#Ssf<6!jtkfnKag2)d$apj`KN;yP8?2GR+`q)~VnB$KJcZ zM_F9|{|N~Y1l*{g5w%Tgtnpe_KtZ5nWg{C&6blL}UMh-It%7V6m8+Z7Jg%$MOKV%L zZLQT-TWzZtqXxn)fXdYyqTEDymIwh<2%zl${h4{5%?7dG|Nr;<{a^pr|MilWZk~DO z%*>fH=bSln=FB{7d^R6$w}RM1D$%}^fd?`GjM)b=`%NPaH1lC$^U>^};A>;2$={;# z>OY23c-z=$@^`4H|5NZesrjlx?J|`h2ij`t-2ou&GhHp{8w9O=rU4zLwc6?Df?QcC z>Rk2d3VeB%S<*WbacvMiG%wRixsXh@+B(>NPsL23*6=xnfvO40nR4p_T-~lWF-?b7 zfqRZq#=FgDia^5QbnXA#tRg?LMH(ow$e+th5trXqY8{x?MMcV0L4rNKGD#Z9^8@gaG^m3)MmtmR}~!DrVWofDWf$NTb2 zq@ziDNwJ)pY-GUvxgd|Gkxn8mxeKtZI=0>97eHC}4qg**1> z3-*yjpYCM2GfCExl|>c4&2b3_t5pUkQ=U7>z;ETV_L2CcV)vRx^L_b8=R{)j^FZ;6 zE9cDwcE3Avp1yBCxL6%Mym4?u4SN+Ij34!XsWPVi?`M?zkykDfuY^vG?uqli(U?3v zYMMH)|zwP3Vpa{pvyJY0r_N!NNhzmr9o9|z$XNiGN zPVWT0cYOZWz;7C+ug*AhgXpw zzq_Yt2qer7DyIeO{T<725V(VnqX*XRYNGHT6(QEaSm zEOnSpLEo7lakjf$RFvh+4bG`vIhD_&^@=#n?mI=GQ9TDV^N>FkwG1AKPvo{3@=waj zLNuSu$TIY_q-vGNgXuRM+R%*>x7Qy{fBL%nPWW0Ki?}PE-JKS{w5Km0J&nF1|6Q9uGc!L&`PDO__&DwuY1ohxnVk!m{*O4?ydP0? zyl#n!7Ug{&m>Sj{I}3Ho47aE#oRYKYg@L2BCL;Jn?}vfFgI}DTrK?&ZjT|DNqO8Cv z1p2z88h4}^fpOv=qbuTr+^SRereZC}R0bmOcLu+PYLBB_-A(+|$M~6jCO?rx*ZaTh zoaN50+MN=^XZY_u-IE{hSUsomJhU^^n*;@{mi}QRKK(^iAc9B6yccm+*X!1f)bd!% zf#}`UbEaP8vsS+DY$?f#wPaVGrfTST7gH51-org9hrZh(aYj{d8!AQLb*cLXA7( zI462#BsM88D^TSK9L-(kwO$H23WAGqxFB-T&pRSN(O|^+z*DY%|9?cWx)4A0IvSep z|L5xeJ-anu1=qMQf1g`JYA5-i4DfRR)KB(HxbGNHzwQ!PVBmx=&(3nYybCWO)I#*( zM!;OL(OyKcf0>h8u@X5;JjpSNZOWO;+u1sb*OQ7 zln>+$VYcd^3xD)n$kjrYL728-hmok8BOqN#mQO#8PpEb~?bHeR`Um)-Hy`inY`gAu zrXz+)@=Q6yr$^dRn3R`%<6K#aVak|#d5?SubbpSF2zeQ{e~ zX}Z3N)MqA(w)}(|1`|{3=>|(CK<7&df*bn1G!mqD#&Ltw{5-3+G;@Q0sJ2JCtzXfW zKko1BWZXN_mP&XNeMttt(pqtBP`k==Y-3xbdZcsU(LA&Wx9mY19`gAM^Y(N*?`~FI z#ojy+s-2^D?=M_%J=~Z@jCZ#pT~Nl?2iaA2 zFV`pInHs8&z@RU4=2x$&ypfwl3IbI-Xo)B6+V^-0)$X_H{6N(#Jtews+0i+x?slPa zosUXsaJQQW8s&*IcJ4YG%VbZvvt2JAwo0+M+}R-k3SAkxDs=U{nTgnEoWo>p2;8f| zL#h6qN+a>yxdx}NsW;MZL7=*dOzM2X)YuTjE3-P3YAgTU^vc+o!v8oci{sIL!-_oweEG5U|2$p) zOqz$h+qU`jAJ?}2P^-MLPMGmo9tdMy?r#^Zi0#h_R6S3+dQG6J8-GK!*$|uBo}{+A z-&1pNO}&na7@>9>CZk1W%vTL|((z=*vzxAhPwy^-PhV9fhSkP#_1j>m)z|I*!@a5C z?lUyllC58sQc0xW#9}VR(NlbIL9A~e@W6%SmpPj-zzQP`n{&#YjqVlyXcnVaKWu6p zTu}E8eP_kB|Fh0n@xHOk8l}bmOFQrspx@} zDtfHk`9y!a7T15lgBC4U^*@kG7Qpmre&$jiL}f@`1%k&~U|c~(bt+JGHg$yJ zm-L1kVXH2ocxg`wV}J_PY|5=(v0D5+d!7#YZEeE$WW_ACe zEMsviz%uHe?B9|~u0|AF<(qG|82!@?r2+*`I6<~Rqx4lT|Oqut$oEpMSzOL z2Nc!))}py+D}6c*97DB_tJ5JWhuixjoZkMiDDtPxS2&UU}rpLx|@t=dqz27hhc zRG?-$mG|2bs1BRrmBnT8DTS{-C%8oSpHjWyG&g@h3;5&~mBD)kYra)d?Cx8TLDA&z znSIp%Q0@El+Un8t$boFG`f$#j>2az1Oax5y`7GHP4sOP@>v1lFaH_8l>nb&}s-YB? zayEr(mzV-wU!#C!hvcN)sis%_^?vPZHvjkJ*WE+8Hmvgou*p5l&^|wgYL{F1n*=}6 zwv)kY_p8821|nVmM95NCEvz#6?R1K}R}1*J)E=sR+7Pd6chx$s4Y1n}C__GX_WVrJ z-9n#3wNq66BW+4RwzplX&rx%uYQA zRT`)oOQTY!)qT`D|7W=;vJ%Ih|2BPz&aIXv<>D|;zg*9!*e9W0HU+BokRcaVvkaBr z?Mj)M{&&>sNrf&vtdkSUNQD%a^o=yj3G}Nheo`LqI4T9rr#s-8dpTOd;}H4;%l zVYp`27CL-vUnx&(yNvP5t1v~G`&Ii5w&-!NbwOOl+HS+ps`aB=b{KvYSkHMHj#9Jo ztdo>rZPCcZYNYBMxN^Ip>U6NrazDYMM2oF4uf*@iNG~V4o(OcE`U>CujX#!0OK)dT zUI3QM)u7klLL+=B@>vw{Vkp>tiXJJC-&lah_-!(f>8)=AQeLZa&xwBpIbrurHxupOCPxjR+<rX3AkYn&9eXy;fESHD5T8Q(Zs}Y| z>7iB&U(+>F`@$E^FhBSOuaXW8(q5IRtZUP!w095fK)2TBy3$M}t+Z*Yb$%xZxvjae8m4QmEQ&AFxPI$|hTo{iB~ zS!_x{R&=sdcV2K!Bt9;`=?BIx!PN@*`Je6Q)8JcV%ASUTMGS6;&C6EK@#OTIH~E7y z?nTVw`(ikR0uLyLwhX_i)Hn=XKr-vqX@)<$$2NiD`HUACh05SBqK>PPm4vsD$gmef zwUv~sivmzTg&#v@dOASW+&WR3?9lBTCxEqmTH8UG7%IOt_mh&Hsmvxl{mQrQ^NbFe zPGi9}O^12!>24WQp?i9h`pXyZNjPiWGf2kibgukiIhCtpQ?lAkTh&-0W>}&`RTfx2oy>KLYu(Sb?oY+~W=G#Q4e-ug!W$^M))2E@;KBb;l2W~_-;lee z^C|W+K=J&<1z*SZX5ZeodS&HdvbW=MX>_DXSSU*a1h9LTt#4r@HYG1BTHxg-M^mkb zXL1!6qgZM=Op>d+ znpy1TWAFOw-H{>Z{m`Xl&Tg}c)oQ)ieTF+Hj26+6X>QoQchlK$=K}H9NAu(_kzXfJ zB|DB$bU*0xRa&_3R|)K&>yRSBJPr&#u;`Fb?Ylf$2i5gF`HYjZ5xzKkf^pX14X4 z4YajnJm$ee{(R3$_2*ky*yfskHF&O|K-DeaA9h+AVRq@tJ6X){#>JaW=eT#19v!=K z&&t?FJg>Neog;7tJ9FJ-2#z`(q;NT22W}0))5-dlMf!C``C60a%Y~Wmo^<6`5@7d? z>3guvxe|jBq~6esEpnL#jtCV-D`k0aaXY^uF9~@OCuFVfRpJgve8h8Bc}f8#>-iBM z!w!iv-rvY_@_F$I`gER1F@c}@Oj6vx9#YJ{70py7xb*tf?lkS*YDTa6DOEj206x9s z-Q&7jrh;Zb67lWTo;KgVO+E>EyYWa>EU6%Y!D;mP`vW3 zP%Z8|Z@jcj^LgVKA=v{Y)6O3J%W1dIbRZdyUAi$lG4PXh^!dz}nhh0N`;*R}r~H4u za&Uf`vpj-ToESK`Gpf(QLA{eH{@?35XC+ru?oG{1=bxCF|B&*3Hk^DTd@`$dmIfE! zh_DPi3_$D}YPlIGJ{5p{dnKy`<6}Am{D-UwEc^f;{*Iru!m}O{=G{I&VC|Ab`@L&P zZ`$amyCzAOC)yua3r>ko^g6>I#(d)}4PC;wc(wCoW}Tm~edmriN(+~D&H{JI;Z|bL z<4tgP$Z3dueRQR468;~bm+JFSNnfOHCyURJ<6dfJowaWFO$Sn!U*sC8CuTtcaI$)iJOw;_I#BGbh7>>Z$_q}tZvfp z22^l&sk5WpNgB(FN!raRRYTF=M8-@m>Q=Yh)_x1MyAJi1ISmq&i{%G{uKoSOY=Nlo z!Z52v2{|xlM8=pVx)fD70g+pnhh9go!tB{@{4{K{OF+h-e{8?Xoi0W0t>l%*yA&nA zm(GuOL|0V?(y?o!Ca$EJ6=-JPsXI?y?u5|}Ped7Xef1tY@Dbv+alYXIFI$a9~q~=-b zUz^72pMp$ueg8urt2ch0>9rSs#|If_{Y4(dG?3^;d;*KbKxSO!N3^cUZxTFnP--dWm#E&d@j@Cd?=N&Y0I|Ma;OwwjlU`pf5%pCX^yn%=C>HX>Nfk+KGgf zH;<&P`)8~V%ABvwhQgP|p~jA6vzcYsd5tvY7C}?ky09GO>|V%CC1|%(wFY+P)qQ1# zw@=FlXq``r(PlAY>iJf@I4goeNoYR=x#W8(c{if{c9o5Jt2`0uS)M2Jdd1;w8kpIGc3eya5V1)-M33>j7d+% zOAL%V1glST(T{J}-|O>b8yI0}GuurUqIkJf|I>IZY}w9~HT!?X8NeC*+}P10){zj) zJp)^sZ4(VO^qB-vQ_%)>e7@~?bw>uL>4nzvOo_)b3h*2gQx|vOKX#blilzrV`APea zWC8M7gfm02ud}25*n6c}RLkV|ScYrH0P*^N^VcrJFS*_raoj=gW}t2KjTXUUQ7OB{ zS#nGF)Y=s$8qP%ZzBbd`XDURel$k1E2^O-~sK6xtkVh1+q|<13S{H_uBJ~aK9>) z@&i`)z1#YAB28y6Tjxidpwe-c#mVFL!7x& zPaF6)T?$ma$nU@-S+PYY#9Dd;s%EOA*s-y`x$FnCCLz)z)^c?8C;~;IVx8Po|`O)=Pu;%9- zQ&jR_cz|sF5;?=>H`OyPf-hKQ)BhyRq#CNd3T*1+S*TZB4E%CDcv(gB*){Bqrx7a2 za-V}gz1@)Nlb~y;w#1fkSD>k;@l2Jb9$Ue4RFFIcKx;qv{<@5q!8_%@l<=9YzVyns z!|sy&!pdo8<*>WGiAJ*f<5T+^Zd6c};m$x+Babj|pj!99=xbeA7c1Q(=r$u}f(zyJ zfGtY^>mI23je$QpQ2p05ygQL4a~o)jZ+&*Is@&o}3^n~NMEU>Z3L@~YUJebZ%U%O^ zrt0OGVtT>z=zao^NcGjms^4BGghCtT70^v4O zm+x1qeTaJOAjvE1%gt@ek((h`o7o^=@f$W&q17IuzKqxSFYZu1Kj)`Dvz}8`PwFbk zU-C<%lB|8<>xXEr)el!s9cZ*ebgb13{TK`E``QmxtC4E;*T?RiWz_mNQ>&yptYJDj zdYl5w-m)uV1R25Hh+qn!#OMvFjV9N(H??jqDQ@BmBP#Ee%4_1@W~HrR=VQ4v$6#q) zX;X)KdQ2L}VmsJyj?lCi!|Fj$G>D6B)401|T)8{L&=lVs9i{X!l?yEf7;RW{A#WXt zNlVmKvwQgA@&Xte=SN!l{$v@!FwSYM7ORK;<&zgj+J!H!JYSTwE_GF36a%-nm3(xXK(w8Ik%b>szYcR(YM0 z_yr>Qg(~N9oyTwP!!M-$Ngsu33z*aELeQ=L;f&$^@@O8^K1#`^ z`GTWED_EceSHj7#@#l10J#)6mGn3~Ikn>iK`OmZH+k&QH-h3pRYD4`b>Qzr?og>{M z5_}Y~)>{?URzEj7&c0pfy`5^`{#4H1A4(rV2qK~LP+RW5``a|@pFf9cwck}2Q?Dmx z^g36)UVXV4@B&}0cyfzolV!ce#*!6SO*Bt^GQsC8gxw$02MN--2vVSG1{H^DueD_Q z`z@@Jj^TCZDh#hjo)^0s$s_)^zt$}m zziqtNvoXOh1w`^$|EC>9PKZZsjXEzN{W1zeeod6GX7Z?m+02UbhoTNO!o$6n7;)2{r0j$(62213;MO7Ao?kLAzfPy zK)cI9|G1i6-K!kU7n%n#`^Nt@#BRQxd~~-nDTXt?sA^ebaN8L`TU4{pOB0R;D8{&>Om=Dx+P{88oi$Gvcr)ji+fk3x?> zM#3Mfm%$%V?BRp>Blu>TKV|_UEdTK2|G*#fpawkhH@9k8nnxaoN8a-N4-#SbWa%t4 z$&r?b5oeUAUFXe|d7H^kt@N5pp;mgm^x~oE#EX{smm`{egm8ows-;hNx z-|-`N=$K;hU(9w;-HCpJM=;;}ba2T=9T_R#dFM|K_+*byFmGUKybfY|I=R_jKawEtFj_{i$RKOHR%5$&oP)8{nA^@|M5-4b-xR?fmJlV|_A*{jc}Zx-m?KH(IF znH)7OFT5go;*#c+asIXC=Y#Ykk*jB1w$uvO&c8|o?L;q&I;dt%ZSKOgMtPm5Xey?r zV;iaZUs=>6 z;oIHUf3F4ll`{2xi$@kSB4Eo~edH1E`x|YiPt_cIUPW4iTp-)-9@CxEGAfcBu^bZG ze*~5KfAQnn3rpt1Y)=kvMLTWRm-^jo1OGe0-}+7X;juwEm1h~psxy(*;O^)NxP9-$ zVA$j4=Wd3egFV+5*o0*rEN^Nuc=Z6AI-ykmYzAJ}sGW|qBgG`RkrmD|vq*EklttpK zf{lvHal(|dcDcs==xw9g_&y;E9~PC>Yo?YH-xjEPm~PD2KSkbxi$k?#G{La7qxQQ0 z@XW0KwBM@x*iQ`^ijCGzhgMturLM{&w7$n5ORy6aD+18%^G~05h#%F9>wdTgJ?1%= zuoXG*w7^aE+5_KQLPK@hxd4F~^Ezt>`GE?`h}EZ@V|<5qmg98HSMbsv_rnYJ!6AVM z`T~oo`%`$fX`2%ti18xN8RCYEP$`*h%-tto(^{2Q%ym-La2={(hbmYoK}!dBHW<-+v<4 zEG`Xbm8wUpy;`I~tTC1v>U0FA z4R3yR5$=ksf%D3TYPD1b{2YOg<=OIS20JgNh=zIR_cg5Rn8$we9O3XisATNS;I`xu zdhqqjxAo_PIrL{5HPN4Esi^5?+fEz*aD-2ZGD}Y_#5s32>{=GTiYS#e(H?f!qkqVG zSBGuf#xGh@1C1#5_0}&M{rYG4@%7O-wHHu(bI@QB-*3RSux;0z!%GZ&;83*|Reec%dPZy*ScuQQ)5IXtr#|*C|L6xOXIp zx}Wg_7hN=4Ld<#CfOeT}2MTjVYdpcGZUVg{4qNOqGU^Xx)Q?s)O>C8hoRP9kd`v=| zUs^MT&5|j(uzz4yhds+fHKo~sS?6b)r*=HGGfz2gudL0fvc!_6@DyxP{a1t)oRcdiBDvWei$rKBZUDf~+efz8^a3w$sL+d_ z&&+`=j>`)>h3=0}@DH34$-o({WvI9~fy`|g#LO$9+LJ^y?MSrYtNeQS>XmZwRq`nq zpW0>Fy?gwgR9&^D@U}NhD6;#jt}OHCG(GIqXF_8&#kZ+%4#4gWw!Y!i$N4=|OV?+} zF!I<6u7(Bxs$O14gG~vo-vMB5FJfA1{(82J11;1{n>DQYX z@SFc^(6hf|VVfiz|zSlc5Sz2bA&wHQlV|q$^YKz0|)ssD$G0TT0 zx*VzR4(FHkTWUh10{6_I0I`Ew@sA*)ea|kma-dpm*3AY@c=q>Huc_=-8ZJkNv#p^3 zC+YtNeSMn~Q2N#ul_<(%z>q}lanLAo%AyFt4XU-UEYUk#$Eyk=*(hy&4ue?(HrLGX zThx)MMcXC?)pOKBVW4W2+U5-6ST3^n{;48-kkD*d#Zu&QiRnu(bF16KPcZl<8)PKG6_^R?JhP=?=VdR(S+jh zAbN)avqIVYT-+{nRwy@g*2V3Auw2O;9y|PCd2V*)5hSxwTroE{@>p5Fg%e9(-Dqgq zeaLH~DVtNv+(~9UqY#{V;K#hLdkL6UzH=MPEYmf!hm-6MmzE_ab#rJ`I)@-rw!&VWWLoe3FLGVCb4#j% zy)mPX9Mq9}I}O(Yk(E3T-VD|16Dr^u1KL)=8CL zg{bnY(B?uD;P{)ZUD)w(*p`MLHape%Xh<@4dcC-@hD zM-QGyr~Ub#_1V|fsLsQ-3Mx9LJXBk!I)2Shy}bN>9Us9Yah6%2mbedGEi0+n?Qocu!h=g#wf1$(K33u;9Go7* zXT~oXI-iWhrR`hjenV^8w-@E0G&hUL`HHq3Ux3Oa!2u<*_-bwv(~q+-E`T z(|p1;6xocawj1TrMYB>9T5KVK;nRxUqo4qL-+_dDT6)9IJC5%zykKa(jl$#$1`N{PTC&*-Tn8KZyM$yzKB5KpivUs615zV!FxxWSum2BgF|D!P{Z(35YH_Ff&N7W1h>Te-w*T?C z-C~3Xj^VAgJBao%!?)3GUt;b5uT9@5UH7^$N%UFxA4onjM|yp7Q9<1s_U(&$J3(*d z2!JMLA+mtN1h;#u@P7}oRhrNw3KJr;I%G88!Mz&wu!UTw#zFJhF{pjQ*sNuxPIWkU zhn;Vc(PGbuZuvC0n+4pxS1EwsY)0G~AC?Ps?W#E9G#K)`w?ESn%$n8rPiVwl*j=;O zI`;uPCe@Q+KU<$6U7bBc*Jts+>E`9_)J^u2g%!=GePBjTX#GwqGgC;Y_9+N!=cXIf zmqgclRYO5Y{eh@We+|_xfP&1!rhq->soilvM+EOjy^btwjE})?RL|kG0>y3nYXy*1ab*0bIwEe*4#vJRozvp zB++N}i&{{$NC5k~4`ng#0@bHD!lre~bJkL~ z;+!2g+qbw2ex|UFl>0;+i&e4EzI{Sw2vR&vKCCpAY>p^uNHF9w)FjO5ub1REv*$Hs z!1%Vy_dwl!;U{W^(}gK_gst!lDs1`(d{k~YL|6lWOTZm`od^+KuAYJF-a6LYB4m9p z{<@`qG1r;=TcMDJR+y}d4}h}-sAZH+-N)GvHn3BFsZn@?U2o`6tstD_1h_9$dyVi7 zk*?3g_m&sHH#IPQZdOG4qltaN&6sj4?}JXekjhYPZ!NHhB5chx_k zNAmzW!;$wk@LL2wg`fIN_%j7RTkxIRz}H=8yL~wMT1!3tHH3V!l|G@`UmS8g*8YR~ zZdHA+(Va|uCkQ^S_A|%tpMoC*eBEuf!6$ej4nIu|>V%`!r)HO32fSj_N=$^RnMVUv z>qKU*R_pSVodq8;WVe?SOxj>3)){Nf{NnawBJq{UFAUgC5p9E36_W7v;>2N|TD-}4 zoC6Pt%$eGR3nbE49~GiY%&Fi^g`$;!L|FH>P*Ah#vghoqn#cKg&8p}S?2SOxgR0w3 zsUN`>M*G(7v2=L!`OaA(XTE#lS2)b8H%%SON{EGhb7Ty{LdbJ}oYUHNoc2@1N~F~i zy-d{`oBo-he-6#Rf1s#=bx);y@-`#-AFGvL9^A^r zG-#?Hpcet!+MbQd*e?Tm!aC1@Hh%m#aR|6xM?lW}cqAWN^=4vu*f~AQ%)_1(pKDweLNlo@C?oEmUG#k0Oo4l&ZRULO49(m`(wyL|d?(gFciQU498FqHE4*=v_0O5M zpfN|vw&@M@a;$&5X)ibCFp*{%Jxzx?ns!Vl3f(TY_Cjher1q{PIo?^hUUjeW>Ru%~ z!MoUF0765|U9__*?qDmX&SU)fLxwx=&BERGpxAx(MMEg&x4VmJ<8LIj84)`-yK;G~ zuc|Qt>#FfB4^={G?0gi@fvFz64W??$L2$CXwULc;Y`e6_#+mdtKh80?Z)==m=Kj34 z!pgK2W)FMCJ{#u#{Bp~|($3Ou($?LdFlwXb4Vs*7W~_;;TT-uztaa!f&4O@*TMwA; zNtds>%uayDFS~1vwLX3=Et25-IP%r83Ny=@laLxIgC9~zY&VXAUHTmrs8$HJoaW2{ zHWrOF*|SZbB2vQ`LkUk^I^(}~5VBJJY_s*-e2O#JCB*7z%xzkui7X?f}6gf5F4mVG;sKy#QbUuN9y|tLg=4p*Ho|oeI6Ko(A|fO~cOAwHXN==#^cA&Y&el-buqtX2i*Ebnj?@*wIeymIneJ;33J(*t zuoll!y;#5mV_JRV-u;|W<7E!}Bsd%%Q!T%tOq*I-Numn}- zYi7R(soZ0{tYv=I*~)rfSzoMr>g8vhsw^!W-I-oifuA)>S*Jrfx6;e{nteKh{8h@5E7ZN*%i8E?X{*g<4f3)Y z{j3|6^?j8p^0J=yv&N@Ob@H-)^opd$P~;arjOWrRSE!LeSxsH*%2 zynJ1P#MaYVKVPI(zOIN-c?G$XU+?FOzRJJQ%m1s*|AU_|N-FaUSlADr#ygr zEWi%_)Rklc+~Wbr*8mR7_!C=_s@G_!{1`8LlFb&ycwJZQSK(@>A@j0ZD-R)^Pex&Q zN0dEtdz9`BEQ~nsnH%iFtW&$WXMJfl`m63^k}Q++KTx#{GM8a#b%g(k1H@ISy!fqH zTA0_@6DSZ#w7>6JZSxy9PqF*NJqm`f3wxvU*jp+zq*Pn$+=|zU;Nfrk6XbE7%@BnTi;=m4+7&zeX<9$UB3mShk_aT`L_5YS}q>~@mOE_#^9z3A#SXSoW<-UODWtDqgII@M22S1K1c zmQ^5s9-R~3J%v_J_w&E1=|Ex?;N}gzXyzUJ*KGSylQ(94-Q>g8R#KdR4q}xJcxB zP$cpodJV|ssSVve=h;f`AMesa5l%7)&ZD4au@A>sE9gI@1v%`H_L945ss+2>w#SGT z8xQJ!QH^-tiGMV6*+tBxqr8{ksu_Al(yeKFMtsyRC;I_Yyh{&w9cZ@aE!skS@^u^DG?qHNu*+x>*UTX(#HxfSPa z$K>YytyjGKlE$=7v95ZInkSyX^wBmRh_>$JxyP#uiT0)7WZY%R(?MVBo_X2HUeJPD zLn%Y~D^*^OFO^SI!u{wp3?wOCPp_M?_Dooq5G-2P^&B)JZ6ozFJcarY5hQr~39WRn+?Y5f`!Ia~x$6vVORmUDherqLLS-nKTw z^fSee=2E2U+o7F3qhP0vbPr|!s`1ZHrSU+ze)W^^Ba~&34fkDTv^30J$HG88QM^=A zoJ2f5nll2`Afc31*FD0v@@Sly_h4FC4L0u2`%}q>0avFY60To=Ng~nbY99nEaWFu- z1Z@V0CdaC7v#xeK^WLbEQser$DPu3=W63?(+rp zCqcbopq@}&#tzS{YwPcTx?51<8{6NKK>flPH>dgbIOzlRs5;Z%69RXQ!_2hW+8@6@Ey|FXjgNKC8t!&1Qs|pY6Fr4Rt7Eg+X4&A4`QVe}ucw+=K4lDL{Li zx^h4AnmV~nQ#!urHFZ-)Q;au@YTM2a)J{j+&JF2y5^868#(9v;{;9p2{r0Rom04f= zIb-dx)3dKW-;we~7^Cy_Z~W0cf%e+afgypzQ_&&XxII$Cp6tiE zHG{wRskWQ=v2yS6_fM(PU3O9iuT%k|_^~hfwY+6y+k^k1;GYD(X(?1`9Z$7=nu1_h z;fk?w&2mp+vs)xRWG|`en zd$_8+k=oi+d8(>>hANE<7XPuwPhVPLp!a7OQ6?sIo%>@naH~-0_`H#6`Hg-3=XTC~ zOMU+R#r8B7A#4oi;(#&Ja4EPS8BVdzszNX{o8j8wEQ_;XPjr8NA5F%`^(EZA1ihai zNyJBaAiNcWoj*IuX49blO~Y+@_RK(iFD9%|>ODnTj#(6`efur@FLKI~$exXnhOIe~ zep@F;Fzf$;GUblC#OWcw(7Q~9^+p#)oMO6`d92D@FFtl=d7@7zp_Dk|Nd7d<@ZuNm z6kW$>4Asg9+%ex?PFVRn%BH%5^-n9m$&~@e z_Dws5+>|z!@lIY4G5$--zL)EKrw&V->y|f*xrZ<)NOAso5+C5vddv?r-Pdk0X51H$ zQIg%R!%e}a1#RWW&L=$$rjqAS?I`u#=x6=F#ZNu#Yk=c^m?5(^KF3qdh@P2K{?;PV zGkW9mfWm=Wz3Tgbl>AggZS_P?*(sqKDC5Mvw01?sMXshOD5dRY2co z!I9;TH80wny7A-8sZIRm()9(2({Mw^V|-$ezA~$s^?qkH%yC*;T=_> zU70scUF)t$&gB99NI%?@kLZYht~)=!xFk2rty#v=VQNkex&xEzOuy?^&MuKg%TT^? z)hCm;%)7zI8WSF4V{griG`Q{RibTmopVNQUIV&-sM0b?`d%di4W|W}DGXbbU;jP?6*HWkV=895Xg*!^#lGN z&JR`Se!2>0fhCUpI#e;y#9iE>3BC}O4qM_u%;rs3fhyh3ToRatwbbbT2}oJ^TDBX7 zg5rfNuI{xB)m}y^a%-}c%Q_<8Y=EwFJ3nAcJ*QgJ?bvXTizulwjmpa?^ZtYSY84S9 zd(tJ`6HP0U6qWeBDWMn(7CthrjU$UD-KME(Z|Wc|ZSu{%kPPc34?>@Rt<~1NCbrgE zKL$G*W?N^SdxYs<+VW}baKTOFr#=(zIl*-VE_oL$q5WOiYnCZ8;bMYYcf3E3r-i`ZAJvw+ ze`S>dz5YTiGEtq)+)3rWXI4F0mBGx{M&jLyg3JlpzE*^}$XNBf9CX~pZYZ7Ta}@2# za=rOuIheOaPqx>3xR2khq2l)C9J6FmVC&7$#{YsC_Lo^(-J*Wp&W}%zc?t0UKKKjR zPH?Ck`3tmpZmq>k_=g4GeB3wSHGO@6BO32;jmjsRChSOM*spa*QXNA$mh$*MUg>vO zRlzZg8>bWeL%2S$p z`Ssa(>X#4iPkH+xjqb5Cci}zFt~_4*sqoolWcFJy`CX5F=yq6RBhEVWKGpewud2-Y zK)q^Ja;@z@^viE=zk}MxsYtbr?r)K%%=TA5^sVjx)A?rmt!O!#VAfGJIYG|qoNuH4D*AmLJw*qLC zH;EBQwj<1LKyex5Pn_}ieVwzwr?i^mf^UZcW$#hR>GFv)s`!>0_T}&)#z-~-Kca}+ z&UQ8I`+mdL6GDkDM^`utV;ed;i%wZ?0#Z+z3%tzkqEUdBn30sf0W@C}owd_maSCSp z2sR>6!MNz*4+5P>h2fFWZq7OKMw3~Q{SJQc+`PcOi#kv)(f(gf=d26Hbejnlsg2Ik zNUSNlVS7PIO)vjBpXZvJP-qiVH5c;dsucIEk!WZJ>TZ*`iUeR&Q#BJU+@%H%CMzz_ zUKML8^R}KYGbG6ytsiK zi)+I4=DLc0y8^%Lt?8KSVSVOuIIuP;7nz#WMyAAOw|$twVsMpZum5e{D))IS;_=pW zXm9z-XR`msUr!NtZN|bd*U&__Zh?F6$TbWWy;ls@1qN$KZSeFI_rU~al^1c6C|Z z2c?fWD6M0>em>JQuK!_Hr7+I~7yAi2|H-YeIH?$6>xbgF_3mVZq}T5X=M!F~lDfA~ z`d{^NB0E{?rGtyZfmxR$Jh!Dn4WHzPJFO;t73oWr&I@&VGm^M~4*oP1>a;47xR}SX zl(P)d0C%HT?$i9RlkBvYH@A2tKc(c`qM!^nxd#d9ii6;N zAw3x07t({_uk(cTV0d3h4Lm}+=)VhTxR*3(uhFf%bjOY8&J9%=x>MsBW@#e@y0xI@ zsPuEbo(?!5;lJqo4@bDhjZXu%ZH_e^~@#3ZA|{7nTJWhjjeE4ZF;ph zIomKjn*_QpCD~w7@Oxm^1(=vyvl})PB!9|FD~@Hc&$1gf79@+o&$btKzAkn6j6G`2 zv_qN?2PE^s-L~tj3p?8~zBA)2bKXtv#3y9S%RXTapg-vGl#^Ex-GCg(fc4PYy3>?mT*~| zlP*|QCV~qAHf}IujLN#&mnSjdi7mXqtihttF`=4{!R0lj*19U|w>EmRd~0~mq`J5k zDZ4y-ZyV#P<`OoR*H->YXATcCtUUT)S8Z&IprI@H4gBx;U7ms8S%Xtx1$Jh!A;ca? zBgRCYMy%wlAhS$KO=YU2CMd)nOI~Xf7WZi+&STqT=Qe#MvutSH>a zfvOs_K*nN_k;GBnVQ?|as`7pffqTs9p2rmMP+aQpox!)oFr%2ta>wh5D8La#J;Tm* zMcpbK-ABg2bdwS*FoRcd%BLF1LK$o~13u0jfD2znH)hKx=7j6L`;3(|@VFVB5$+al zv%EKw-J;tpr-Nmd!;!9S*%IQ4^m9JXkSda>NYz}-pP#3=%{@_RM7@Gr1tN(H)8^98 zOg;_vWFR6rH}kEC{pjTO%$%|P7)xDv7#p|+tY!RwB1U4gs2i`!i~90Ax~LmH)RXzW z7Pru~OU4FnZqRol#uGeUtz-J)M*zwZe3;sz)Yh${-=~4t7Q`qVhem=!pF@xF zd{W+=i)dqhlwdDvRYFO|p@eY=n{l{pp)R2>7qPuz@JVh^P7g=VnQ8h%dPr=jZ-%0E z2wufdw4{HMCl;CWryWfC67Iz|qLUaZE1=VI4n0H2%Zv#yH!y1`iNPt^6cL_AVN(=H z6phikKEG1~_Yjc4XkDMzX_3GoM{y))bP>te0q9?;Iq?AWf1C%8{^dmxpZ1VS#51EH z`s;}R6lg!6|KDz)byN~ItXlgX`$ZCS8o@mvxEB!>3*dLDi0PE$E zjC|&fnIt{=z@8$+XL0gA^QwgTgJIAFxxOHIF7N&ikE0pG@@%%45Mivpn>#HMbuByn zn&|;{dSi+qYh+B9S0Y@f2wB7G2mNfCPXD(jFE`VO-@jyXWJcO_#-0_MZu@WhrvQA7 zk7vrEr2X=u&j4~gz3n8ETg)VA^E2t8^EZaWLfn(Aa0BR{P7gOoXn88mONLDn|Bjb_ z$$;}cgwZS#v9?ClqUMo%;%`p*0DG+4gutwGoCeb6tM)moS8aA0I_*l_ksTScn-$S` zAbJB4?L9s-x1G%;<50P*TvhhAL+9q&+=++IZEtg+tKFUZgPdLgZPgC zbGxv*BY9i~eZx%X5QGC}=Cei$sV)znvNSMj@_-4f#qi0MGd~1o9UFEQhgN-}W#YQh z#Hj3wF>6X{CKruA56I&uoFAAq`uOpy7@bU@b{^1#{|1!f0p0fBfO0*ciT@3#y$2Ni zZ$KS9pvrFrQnzjoB_=_}6dfNufZ?4yV0>uRetH*n)~?#p=|D+MwCIlHaOeoX&q@B- zFq_Bk?;lwRK<9=U773-#;2?2$irx%0G=Y+PSSa?%AVB$~ z5MaFMp?p>CETqt5ruH}psxQGsPEzB)lt0^!1im48SnN}9%zZJoVGz^rS0Gg5_32sl zDIDY`|M?9|bDb}poekR#qjbpG>U;^fNFqXP>k+@dMi^N%XR2{vXndwH7CQ7WxFqas zpoNx(WRG5t)Ce73P#rb(>Q=*ZsNu6C!6y{kG)V7&fwm~2FV5@r$RCAEa7FOFkn^UH z*%`ti2r3O*frp|XZ*efK8U%KkA=~N^FB6rJ11_t<0}c+Saak=5_?bm0Y%l`kFlsg+ zpdx~U&JGd${9cbdX34{%ak;b9;ACj?CS+14J`qyq#~*)8lnM8GyhdapZ##VyPUaQl ziCgk8T4J8y>fj1zmr1k}{h*RbGOkC8*4wFh{h(f5W;(k_3IfFF^K^p@9oWPe!$#_h zYaSPZTFBYqd?}V<07Fg_&s1WD?-LE*`SGgh-uS`NkJ<5SGLIl=7?=Sx+)ZaqT6m=y zJom*zFt?S9nZk=n_oHxdE^8s4*7JnyIE>^fBm|;bVr?E2f64ImdA(lpP*_D~50eB9 zq(?n|$%>1!vSDkF;7*T3$Z^BgcFOKDlV`Z%NS`s%M1u9+G0Y)GS_=E{;)CE)*k}p# zc^`ZbZxAYV_LG!oY=yl)L86*_c$m?Ej~q}wVjfDN;0~?Zw)fC@i8MyEz43dGqKqAK zHdDx%#^2(dc-O!|Eu&4W#98c?BYOrt=Upm9^q>}l_iih05JwB z?|flvM9-&K??X@w7!YEx7EzNK!r)G}HJl|HxD^^WiJmubnWEa!m4M`jwC+W=3Y zOHd9#nMY9z<%h_HkTz$f{DjZL?*D5f)3n0m;(Un8Uz`g{DA28~qqlL8hlr1b^1)K0 z=b_e$52gXiE4VAIGfAfPH_y_R;%~8atN#8ARU0M>GknitcHrTLk&u$o|3L+iZ>j?s zRq3;}p|+Vcne`TF%Hz#+ag$B9lX^R^SMTX0O5buMGqVP{?QAP!lU76|(u!znh)LEcqE82jB57@H zXI93-SRW{8ZqzB&+`zbK?${s`p;aB4se^nn)zccaA2RA&b^!{&rv)}&CM}fApv7_{ zmC!wT|Wv0WFlHZ0CTOI{Vadd6nidcmF9yPYM$9ir&gyx`m! z8;xbS9ERAC=gf5$Vztuq;F1{|Wl{!LByzRqpQSPlTl0f+1Fx(MF2^EedYjv@HCKSL zc!Mh%Hs&&c2AmH${4b&c9?W;@teF*jRC;3> z@+<-N2qC;^xmIIsq`^bwr3{ilp#ODL8YI+9GKHE%TByz z@_JBnrM6yS7)beF>9Pt2wzFl%5P8$3@Gx}oW=kIxP1^^f(q`IDqcT5eO&o*D|3sHn z;Nc?yR&6t2?y_C_u-oPE6l4kj&PHbnLXnNBLT6_U5d_qv&{~*Jn1ubNV&%v}fBpHmkfuMObP#;-@XOQ77 zLk6rA=l}{9>og?{#zt1mJjUz~4(4ShH8z{USdyj&X?Z3LH8z`7x2VCYJ53F$uq*C& z6{``%3VRb9h3Ja48V+kCrIAp*;6Nr;qpT#^+;I>_8iyg@jI#g+!93eM6MARbX0y?tq4Z@T^58 zJqxKD)}lv583O6KAKp-3;7VtCay6d|^!?ZIKp2-^Yt$6(FXO&5e!ELY%XeqIb{9^P zOU$_I4o{wO*%@~o?mT&|jI+%6^;q6mry0IGG@4RT=dC?B`JEpD9@4RTT4*q9{Bda;PR{ze6<{K~HdC{D$|Nru$ zT_M+*JZMe;hnhTSa&4J-1^Kl)T=|_}>pQ>JpkCkkwZ8Lfv4s83uVr_e59R9n&aZ_R z-w&b#%*J8E+ z&5qs@MTX@QY!Yk$^w7J1EgUy(vt!6nB<%sN*s3i+v$eP)o2@~ovx#+f2Ism@eWu_# za}0i+`)d+9NWcYz?5btCza$->m>chmZ+KZoCGRJ4kL3H{I}VOpbLIy35?XU;rATf806eZiK7Erwo= z7NvdOZYjvy-BQ3K&eCtt>wQBnpbfp=H}vW+60H-xCN{Mt(HPQ}dcl?Mr6fFhWl)Rl z*&~BHI2?6Ql;8hBYH>eHBynDgJ^i425;#ioCZ~7Dh2q=?LbQHqyaYCzOmsQk&q77R z_bkx-r$fV>_N;slf{+NzS`ex!FKP+Zgp2mFtL^6NX`h}7^t7J{ zs?mX2@96of5YfC}YvUTA5k&{|1dvYK_4};ym&8Vv?OCf60)>jF%`0ozoD<2WX9TYI z+)?>Wjy47_d_=f}tN<}Ag5)Mmw* zixw{^4_cV}EBR=A$XO~Sn5%PP>yyleblr zi9!e{mAEU_usJW>X=x-el0%5oQk@PEOQw^ZI_k*r#c~eC=-eh{I_XH~1depl{N}t) z2Xtn!(|f_4kVA*wN2OWaP{nmt>53yx{fOb&(i&aia1!k?~c(TTG zdp^C>*ZTUF)*KP4;p=%dceV@Fl;xDxT*f!+E^8mEnb09rbFogdXZ9$~UlC`n`SPhR zkKEw^IbhUeKce@?&UBWA9U@#I&^#ve0*i!gJTPk=?Gv_Wu9Ph0P{c+ZfY_Zp9+oL{ zR&Wk4SIpzQ$I~{lBF_8d>H`95RTtHA0cdiJmp-4rb|jJ$c=Y10wNq23(BHdSyo=pY zN$8^p2aEqG_CgI6#~&$r);x2sKmiOUO@+GR!-i5-JrzQ1^;62%Pt7o_gy+L@*srgk z7_g$RrKQT9rgCS&MTr4FDtE5qSdjB2w-}`96^fr7ieE?z%^Y__UoFfF?$YH1!9^VV z2N%S7t9aWT!>vRN-Y5ogw6mgSI1#k@H52#N4Be-2tb&@sU)2oV?=LMZMBR(b*NeuYXs_Q6Y)DcXB%~Cp zga(^oq0*Yt7L-z8)_Z(t5ygGUUK3UAN@J0?pEpugCLOA&Kuuk807#S+`Z7>`yQic| z)FKq4FH+!8>;oyM@#KZIsz-@v@ugTtO!?TbmPt#r=rcm?*cib1$ z3#0Qc2fdrmz2<5A)4f|)r+!N&c0;`VzN`Ck>rUn2xE&w-UEi$qy;z^+)pdaY+*LD4 zwnk#$1ajT4uHmlOMEmP`ZfyS=MfHzH&6Qu!&%>AKyn}Idf1pppx50$={hjfQJF+;o zJi2JSASanG+)8xlcK>*<_|V*V7K)<~Rm)*c*##Wq#k^r6=R7hWZST&3YiNwx@bo#i zUWWCFERNy^W^pJuHb48U5d(@jENm<@PUV*M+g`bv53g34%j+)sDez7?Vh3eibmhwXNj&IV)Jc&CH62dednDW{h+G`Hy?R2uZM z^9`5R$XwI;Ut|9AQP;dse0**w-j_4gnpyJbb~pOP48uou)$PermHC{?tw>Dn&h4BL zr+3jH%h6i=xanC@;)*|M;em1aC;2A2P^!7uHCt7gY3Xj+S!Ql8RtJ zRG3?9&MNO#V2E{L3R(eD`2-)lJl5D@hE#3utik-E{xYXqQPW4Je;nS1U5*~vnUjm% z@@tOaHXH_mC;b`O&OY*IWR890&&XW+$e)qz?IV9icCe598Ogcu-29p$9l5VEFe^a) zvo7tNb#9lu$}*HowjN4&Xs3sBc*xPinLOm`;Upf~>*07FI_Tjj9y<2zk{5V{L$P!0 z{YU=yOeJpp+P`-R_!HpERR}=IWu4hXy?y!^0ds98O!adGL@mtd$|}my{>E zyUf1jiLO7W;O-0h9OhUHf@X0(I^?^S_S$RzUVCp0 zPB+p?1tU84jBMF8rKP*Lqjzj+m%p)Pcf4cIi7mS-OSjeJ?p|u9xEpFl-~E`3yo52n zX7sp!?&uxY(mkSOcdT^1CVZ#1bWbi_kDLt9Y?;<~1S30oM?tt{_mtAUl-5Ex4*s>8 z+!K$PrTOS5{y|1TuNBLP{-fRJL@-OSi}W{Z)&{D9P`e zSH;=tveNAx8_xEp_W4~*BTD-^Hk{#4J(|7v)uv=kZkWG`Dc>@6H=FmFNY3267m1u{ z66xt7T<2-+=EURHBW#v^BE$ zBymKG`i>4M7nm3=6_VM5F+k+Ln@W)PkU&ChTM_3e8yv^sv>EA zbjki1^fUf`)Zo2;ivRtZ=2wea8A+c(!9O-yK>17FG>Fcj(a#d|n65b@y6aD)H4b-4 z6UQw&WiILaenh=1`nQ>yQ(7i__nvWE3G(w z$D2U;wdGdbhxYG764(r^sK*?2Ery}ZQ3Cg!tpvo75x#$k-cV>-=+`D9n$}(qp|>=o zH_Xx7`@f`5L*l;^#+QWgKRqtKCX65M;(M;8SH(IvQ^!X%ZF8+*<-xa4ld za~}+>lzx%HNMCIB#l&P`#nS#!5Q?{c3bEeSu(ZF}e9z&F|MY)BWof?>ins1k$er)= zyR?6Vg^WTBOZ!L4z3hIa=Vz-e(~MgtSOuvjevHBXfp~xGt&^AbpIGq6?|j$j$1UVl zqpTuae5F6D%n0rMw}{`R{U;cd$}9de;Vs+314xZqT!Q|r*?WD-X=%TTsj1?&uU56U z^beyo7c==(b-$~zCWoG@3iWB}VVcUKTLXWVy9cnRnkdRMw|LaD4;OFtXO&n2JxL3$ zrXQ}Wj$ZEW8E1jb5Ky>Bc&@IYryo%-$Io;$=8)BxME4HlZXuj;NAQa&y^I=gg*nJh z?pZe!u5NaOu4k{f&edDBRtX82!DAhR$DmX1go*~D_w4@VM+DNiHIhn0&myB)#7u?P z>f(1C#hc3}bd}5joc=7Q`aNj_t1fCe4A3@7aUPtQbG>!c;TCxw>*SuX-2SpXI7Z&n6(e^>q!R<8bWl zNjJ_}U02!jAOPkY9DmR7a^Gf@y2GA|^;V@pMJSalDh2<_o1t7WJ2{yA6(sEMylT}n z7ke_XJ$DgH`Rc;@WA0l#_C9O(^lZF!nK1pAc$3}6hCfuQTwBd0dhdI=ODnkRqcW3Q zQr^sS@@G}GHzT~(zZHsA0NEjgcMh_S$a|4jpyDYW=(8J{`}LRyJ;S$xhi}$Zrb{+@ z_jvAFolm%*x@P5rAiEo37m-3#!M}PrIeu!x2drxycY(C)FM>vh@BIz>IAb=W+j#4D z&{-bYolK4Xrkvtyr&#{VEUIxWL9B@cpKm@mu0kfvQU$-{P?fKN${5xpk_Ng(y~H(CZ?C% zc5uMS&}q>R0EpTTuTa6~2#x#P_x|HC?+u3K@7Bug>Gp*cxo?%DVHdU>p;&(jGc8Ao zT|3xvB*q(jggg#06TN$8bFjQ~bqVSDGKsL|Ha*imB@u7^5SaugB@RRv4s&Va6s9!X zRl7d;9&dK!>Lj|>KLV!O`moZrnzMsK?Ue2JitN9E;QD_=iY@CZ zRfc+wN0MFrX+48^DEQ{X6tHfWeL8sdLBRApl$tvh%U0jR$c?gn9F(HqmL1$!tGD1I z`I9s5>yk(`gAe}dmca}>210ID2|9romGBv!tNI~cKe0ZYG=j55 zewhj~q95eYSe7G?W#hwFfzxGN%MtJb7&Ohz7{_ZOYL4S)1^NX?GDQyl1$sl?I}IL3 zx%U3Lke;Nm;a`kT?sNV1rw$DCe4vId;z#kp4-XFX?6kJ4Xz7&10K=JEe-Qk3HJ976 zUTS(+SWk%J>ua9Us97br?5l9I_XSA8j|z>+tQFb!n2bk77Bv2?6<2wWay8gK);zTW znHiZwa1e|MQ{7|ixck?c6zd{+miX!`XcEeba!V3TQ<5ut(KJs1||lFEGO-YS1HnN8!yPG zW~E;Gb?-aqEs&@^`+k}#-n;gLfxXYtN)P5|#;S{yAB|@(x(t}7=HLxJ`(xcw+}?Dt z_gE22of?*{uhzm45+2oAUCG6=Ji6P`UctB88in<>o}kqHH}mBl;xF;Ls)nD{x9}73 z@wNva*T4sC16x!x(-=^@pTFoCBH63`*qE3RtXO7T#9OyPppgDrZ)L=j){pYF6`i$W zNaKfZRjjWwKGLiQS5U+K;#}PrzjjQnu7piRDvMt`DpyzL>mlU232;Awj+1dJ%?cyS z_@i}|ZMBt%eR6Qh4SHm#cCy598Nk&VDJZ*o;o`Hjv<;8VgDqOmQp?1m9vK!s+ox80pXg>7-Ei!Kn zpHQ_goIBE=-=tCCtn;Q<-#Mh|E)kRI)?T-C=nkDy2U(+e}g3J2g&6@=l zUv?*HSM5_m4Xe#aneh^<&Hp6uojVdTsNLqWJ0^dh+T4BAJH; zU2ACPP|0a&zk`;0-J_a}jJ z@3dICYxc?n?W=GS46L^C+bDaP)wTCS=7V1k>4o#f9<6mQw}HoAZqy6YxA`0``NE2p z{?YN)Su}DidEV-|`4I22ppLhGZ)v}X#9L3anVZe@mf3jKe<9fT&mS^HsE#lDI-oRB z;k?9}^|i}2mukI(nA_@F`eTddcwpS)FcvogJwXBr+YhyuE&XE`f5o+3v16m0ybQFZ ze|XccHBTGq=4qpjpQqhQR>S^}#gqz5uc>LdR#wh5&!tT*@|=k0lKaS1ymb*M3Oe!t zK`SiiTVYV3px;=KF2WVmOA7j}1xYOxv_?T5>KSiMgh3A}C~ZM{@KaFtD(Er`as!~9 zfv=!x7PObXxMrm!yY~x&{LdGFYtl@`PH4 zp6>yn_X6$%Y1Pm9Sv?f;-AjRd2uL^4y#!!uXWcwE{?q#jC=7+qu~?6@3YFnatlXjs8(-v>FoPOs zIxV>Uzf-&J@h;xpGiJ@S5*y!PXYJb(53-Jk)yxKy=%d~F7BT*~r>4D|=xO1wJ*ncYr336I>LKgbbs;_PopaGYFG_4? za>3}vc6w>ote!>^up;7_0j z^Xuhqt5}s%_VO3~q?&p3w3`kMeScxbs!v(oH9q?u@lTcG4ZaDGTGARfKI<09`f5gM z64NN06P(iqX>7q9KS&!)U&FAW@(v}J!A-5^Xr2H)UO^`bK}z=;(98qi9h`s^=tZLuDy+-W>!K`Z?)oQQt z$g0umNb(n5|5Zem`5_Xp>cG9ZhGGvr4ZjX}>sq(F8XArBY(D?*2M21{gB)4YvaZCa zJunPjMhZ1G=EX8;}pa8-M77OZ|^IyEb`R82?x z+$Frzq(|9!;Qb~(?&a+7{<|w_t`j|$KS%vvL4x{I65KJlSRU#pE#9|~mu5`J?FhAK zR8YfnYqT?qH8u(^#3M(3(LgX+Zq5Jihy=7gcyS)2L%H3f;3%1JKe=Y5=Em?pM*P>} zhX1*I9RI(2bO`@8k6HP@9sD1r0KedP_{Dz;|L+d|LBVU}at!@C;CtrNh}5inf;iW6 z6_SUo#h?Y}02Q2f4LQk=eSiQ;h@$xsuC(87uiGKSU%UvZvmoX4^_x{u^XeZ7o?m5+ zW-yOpOy$aL-9h^otbycec`viKrMsMkj?+J^uKaLm=P+V|9cZF^)+yeq2X*RvCPR#E z{m$UwiX&VNy^i{b@?Sf-<_X}7hBl$&>xZ<%TSWa5PV-+e{(|KE@*gF#c|{6&AG zu&?|;uMYJF?~(4Yw3f&kG%a5N@h!8wp(e_3^q;@GQlN1h2^CCMA^b(cgUwqmgAhZoTN@?YAUp3%o}4s#@*y z_XK|=XEmKAlcc{DL+VlyH_h*T33)3Vq(W41WbRu7PcbkndK@NDoQwVfE@{va!=f!L z4?HR^2m1%^^R)NCWK=dPUHYQi&)|I&t=?+gGbeFqv2zWM=C5ARbPHx|!7NgtD${!D zUGI8)saUtV*b~!@FE-yie&7P$7XYE9eb}l4qL9DnzKb=7?F)X?q_t4@1o~@=^54xi zVlA*fs6;fiWcGq-`I{#(<9{tUTe?rpEj$>#cGYG_ZI-Ap5WM-4KI+g`0>cU0)MMf6 zFfkp#2&u=Y-&`9U2P%q~NLE><4a1 z92waAbF}v#reJjw@hkn9H6!=UL@M`ZTn*zb3 zYgk!rojNfU3v!p2cl4csN)Q|iaK^R^K)-}`nR|n|+XW$~h2}48&zCH!i9OAe3B3M} z1dEB9m+~*DiLGO-R7M})YowL zm&1hG6=gNCjue-$+3vgp!i=DuUH*uChrgi^DFQ)F$Hx;o`pO)cw)$aQKKnZaP*hV2 zv*dF`s%>F$8@J`cWyjG|JNiy+s~?^(+2>%^`AA`Ss_mK)n2F&2czj3S*tU9Rt{vUO zOP?0|#no*KOWW#Ckb88;kyG00N0X0^?h&QfpAt5#?b~D8>c=W?9Y;>?=sO|R_U(9E z{fWw4$6@i-R)2DBzNECK6n+uu$W+@EP~py5Zkzk)w5vM$;*53M>c_+S)5g}fYDy6U zMF3~hPi?C|O)}`{bG%J}2Id&0?V?qZYO6oJt^N$$A5qpYawbLq@YcZx)}~Kvt3M0p zVKLTr#W`*DXQM)l?;?9D>(|-(8I#I=gLjs$#|Zj+W-?WsY5Zy`cWGJfN8?ht%O=Pi zdSa$A$XzxucV&473#0N(^8hf*i`(-tB zkJq?aK`Szi?cP8|lXPWYAPz7u&(T&>r0Hmm%1OY$L2(o#;!) zAKE6<#Fg2`Et&X3vQ3XabRZLZHH%Si{GlD`*j6620qW&+3`$&|gj?}K+784{+-ZMr zHvZ6dVCgo9-vTVby3nz*HhJvT{JrPJununG za6$Z`4?=f4ED%)aI<`gl z_YlK%G(b}9NGR(cCKE43=@W~XGO;ab|5d`3YKH$oRIbsOEm>b_M+gB3hXBv|YY6SK z#J32%Eu^?S9ouYqb}3?jp7mc**4qi-0Wiz>l zYNW!GE)}widz-O3H2H3zL)D0q&s~^E3)zJK09ddW3Slr634-F4pj1Rd(or@kJw)OZ zYN+Z+_g!kQT575<2+F9Jc`Dv68jp5SXG_jJ&H9;GXEv{a-7wzU zvLURfw#yTHTbBAOjDs$GUhG|uR#lnaBX_J*CbawUuIIE*hF#c>{xi~MYg(G^<%WIa$COORQA zn;_FmcjG&nO&-xRTh(>`IT_A0w56B6MR0$5>6r(=_pNvy~w4|vHvHU5p`BFU1&o=iuFIxGl`SvmIdlu|HGL1hN$2c$3cq`rFyir+yKV5XjKay!Y zn*kwfEwmfCTPI5H8?yde*Y5bN*Z5LhY+r0&Zt9p!;~~0V`oc1LlrshMK&J5k9V>4^ zSf@;rxg(Xo@N4v@*A9GE-EbGCz>1=8`yiE{^h~V%()^eOX@8$g7hF5Om+qH-G~Kwl zE=GrVbE3OGKZTcv=#vMsvAtRU1NExy_4zUC9eem*rpVY{CcFgnW@CS}CY;1y!CiOl z_RmIr+=l7-)LE=nUYDTSyrJec0Aq(9o{vAo`|A&NW@BrabmHnTm%6F-+1U21f5ed^ zc0aCl>Lk0evB0GXQ+t6|y$f-L0q#!WHojU%9~6J+S=XO$o}Qn?TTQWAT_;o6`kWhJ6eZXO`^S^nM)!`0|MlTj9g_cTyh|0VEA>d zWn%Qg`@Q_{sXVlNJRy3}3oB%jmZHM&%(A#4Hqi5 zGHSHKMvQD&>t(Is!LW%5+pn;t37fHOa!7+io2E9!H9N{C&C4+jT-dg#ougIx51TqQ zY!4jU-t`^Viai`QSy5xwj?iclt&wugmNisY@Y2L|UiP@r-u+rh`!%HD8q#RFd3=p~ zkJn9OwXCu9oedO0nl_)6fl3|Goul0VCcli&X?uEu)6K~WOmA=^PMUl(*Xj)_-xCb0 zGk_fmK4rcSS-Yh5T#*q`=S95&R%O zmd+m!7`(*vTZ0ez`nw2zkS`PR{{%ji@b!R%&T9stsZoe^AZQigrR!AILv@1l-Qml2 zwi?gM^3r$IRR;-3c=^Q@UjC+r;53nL%wCtueRol&@voXPjdimb{d$dcGrh)agBs5A zY~yoTC3PJStmVFSwZd2k$#DqGU zrN+8BT0U!>MTB*omB7!3#)tgf$UuYU?;}OUKFVM;hwmuPtgi`4e>(Pph7FZ8hR@@^ zHanM2`WZOKSPs9sQ0x$O_%Z$v!Uk=<$XV1YAU!7noC5>hi1rd25uGgT29CiK)(7lH zalp)hq(d4}($6_uF@!7auTL|`BN_GflLa(^x04BI=TGyJ7Ze}s&-zO4sIj#z6FY$C zNZNlHG9LoOfD$kw#XnCMa*UI6v_$R~C~J-kY18Tz_Dfz!5*ZQpJ^|VMg_T-A*2I;d zHBdXmX}3%cGr}0Bmir0pBk-VcYXX)WV6;LqA&t3=#w8g>oi-H%VXr4{AfnUZ@rTr9 zF%CYUL?(d6M8w>pz!Zm6gm^F=dk!iBDx)tH@+c5X5_sScvTMl$5Wqg;T+k-r=Ob=5 z8eI$*CA!#wY55Dkq~oESX6;e0TMacWjKm*$RkN5;(D@ip9jw);AjWC}lWC&INpm)N z@IY8>=Vh!jX{glT#SZJ#ndjxle9g{oO; zFMHV7^!%6~rd1m?Af{tHobEVsdfMm_H|d7KxQq`g`G2#71e5$|dVXRf4YFn*)KVFB zcMP0yc|LJXI{&!9viUn*uZupGxwvul8Z-bqfnN0VY<^5-*iUQvP+{G0zGSKZcoxy7 zJK21j(ehtNLp`0pkb5GOE0(Dbb4cj)3}bwzOFz=QG5#V%KxSH8-nOh`7LSy)5$enzK+BH zcioN8yLkT(#(H_I<1T(We*36cQPF$xg>@D4;{A14a@AJI#~YRXb!GS_W5QotSFTf! zbNpItS2D%2w#x)v^nvr@3#T>YZs5T5!c%g!i}=*e;peI{e�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�g1OFb zIeZx`dlft+>t=gFEj;2k4KqL4R}4t&jSzXE$fUF7oEgjBh$C>+s6@FDk^u`gvkQch zrt&0v`e~-zJ2iX&!^z(K)*#v!PdcG5zF%S}bHUphwy~liR#Bfr4q634qSV5xyzeU<0{Q7rSzh)k<2IF&Qkt+rghm^`a}_ z>yYHT?&N>K5w3sDq@WTvx&!Hf&zEu7Z5-aHN`22vXw^UTYp;@_3O0bx?j|dOYE%F) z50<_D*qZf2JbOU8f}AA&<;sRkbYmpPt`DAaVv&^SQT2xv2J37@lRpE5F6fKVuwEYT zFIajGf0l{*A?c>ohxWX>33}7>Ozz)h#FMmTY4DUVz%_Opnu}wfUhrmQcxHAbr%k{J zXs^ut%#U`Ewl2zIvo*MV(*pF){Qct4!1@l5**LcE&B^bJnr6{*EAcA5%yd`0HpMdz zhcx>M8L}|STJnAOqL0J%^MSuB@Wph2MSicYr6mQfR6Ikvs?vzXR%(FTb(igZv+cl& zb0E`EAIxU%w*4h`4PX!#9cHX{?a{sS!5)+GL+%-39l>Rnoq}LKeAQg&=1Z8Pk!;ev zQw)m+j#FqF zL4z=_D1qqla08c1!QPSE!(3tqF{}Y>X8HcZdIi;Y)u^)fUA~f;V)C#gIW+*~$a(d8 z?LiZhJ^HvwowcVdCnG|n#JGb;8OuH70u${4JV8#*M1J8Xk(q7#t+O+AzlQG0mZ~M@ zFOc?q9e^@vqv9u?$#LbE@!1f-cFRDnz-KXu!U)6iSb6Kyo$scx zc?dB4Z6c>O2H$>Sv(Rkqe#3ig&ihUwkZFwtD*1KeW+iudOl?>?(i(R0rHnVMsAUxV zh7Dy=qAP?~)J}RcNh3n$<7I1C)~YeLLlv)S!~V;d{?4TPzDJ*s+K06hEipm+>0)L6 z&hhVA>XD}QO#B6UM=;Di{SOOaBx9jgSv6ZbZ}Fid>?A@{jTBod0eAU(PJ`UMoyM|t zUi^D(+QS1WdZ#*Z0+Gr*@D1Ko+y;0`%GJxucC>8=SjyoZqc>k-UE%!}^cwUa^_ujx zEi`?x#l@DJ>rCsnLtGUaH+N1DFqtl|LtSUuhbbL${h5Wp!7J~w_Ck|;ONo~7agKcQ ztsWr!J|9Y-ok#Nomnv{Vr}*Fur0cV`ME&Z};K9KupL6+MP@Q2KN09(NCVZWioL|8+ zzORFYa^zc*;PC{n*0!S&of>tyCS~W+e`S-FXW{s>mFP9}d!RQclcU1UbN-KwK?@-Je zQWHj`G%Bmn6+W1d!NoZeRghWV<=tWPbt0c3_7~(!i5*3@$WRBWy|8$>O0adkiG@Yf zpZziM|CZ`99g1nb4cu|0%zy#XVo8x>iB`jR2Id+> z#Ct=rC-RJXESAYT$WX?_&wT#f$HF5>ost`!$R+tRJa`66_h3X?N06mSjV!F7y9c-j zv_ShhkN;^cHXfa%Wbey?mOi7hv@bLI1fo}V{yd{IEk_6`$YWo0ivQ1kJKL~c@cspNhay=R2cV-u1S$(O&~Srjc(YA&AC9!F zcYEUiTLN%Ktt7AK$UT&W3eXm;6^gk8utO)hINUn!6+|=l^vAJU&|)5s-$UxQqjsGI ziD5EE4?3c?3%xIlkpXJkamibhKXkN8*#USf;%aAJ_D#7=iIuObzx=8}B5NlH+?#ug zq}^L$gZb*;wEUy;`gd7dODqNNLeReOk#z=ff9RjbPVyqkbDYQ?{QJ5GX23nHk&xdKYy2?y}I-(uWk{JJQ4T3XsiAv_1?E+@Z-?}`m^AL2*Vnk zEfhd|Zdx1*9Fi~tR-1#P7NIu!0rN<0?%B@=5e_)vONCh2>P2~-)YQu^!4X04!YMlJ zvE%IZ7B-Cp)K+5-GEG^JY7L*#%u)7jF^LJ}-H#7?5i)GNn`)xPT)vud_9K`3VD-;D zSv`L(p|T;C2D&8L7|Y~@GgQMMB5oKdEHQ}SWG`}3cib15DkzkR?uA;vdq!fQb^!5E z#x?W{rL#jh75~Y+?^7BK6EbnP#jy8d;J-14aR-=BXIe_o!t z8q8m8w_aBGzqMINC1dLP)3&OIz=u^Eoa1cjIku8q6FZfH=LQGwXi`EhkqC2XbPfr} zlAc+0Uc;MG54nT0bx9=9vrtEJU6v78L!|Rj$BmqHXPg)CpFPt4%^3ej;wT_9I03|Y zyub6}fZ~>f3W(6X7X6}~nh9Vz(2z-@%v&!2e94*Fc0TT|EV zzMw_%n%0&FpN{O@wwhVE#iuc!;Nto3MQzhdmG0c}p7cDM|7-~JOyg@0HlsO_)Z2(1 zy}u32xRxGLC4S4l_vOKuoq;G6vPT8Wo$7j=-EhaqXdMK{)bOsTo68dzm@CW&#)kfO zyvKi)nkrB?lY47pt4+}-+(;R|N8s9+(VZj$qJgP|Wi{xBGl@DF-7z%@a$LxeAK@EX zE2ZKd{?e0|Yi;b}za@g+r3$_D*7lrVpLbNtSrn1;v95;O%}G{T&L%&3H4`!(Ll0E~ zp^3t8Ot^E}&z)7*#5(R7IG2QiYGCr_RUWlh`|^-sa9`qlW zbLD&(Yo13vvX(jkC95p=ZSjs`m`LrlSU2yCQ&u1WFNvY9RYIfd~x`$&*#~xD1i(n(v#E53sBBd6+IyVP`LTjC)`YyDr2QQ|8 z0lDM%06zCV970L#Ul%rbCeJ;aPvpd(@E~$)L*I7Kwx~M$RVNqBIblRsow&M>AmCpD zZVC#S)8!H3W4p}@f0w8ds_ZjlCdBt4i&)DPS@=*aJ=U@Rcm&@E&2bgIXn>2&aF*9ks>3jU-Wrrk{pckT0C_Up>m5DtpFcXi z+_q($<~@0&HYX_4I~~-+plR>kYoZ6qxHGk%-!9vi9f0ESdWYd@f=b-J4Ou-=SR8Cu zlTPkyFJpvsGqZWOHf_`9qP&~qGibDi1^o9DIf*wJN55wG6;n9eRT#6AV#RX)VUUDQ zZ9&l!as*L$tFykA$w2U7Zhu4!9gAZPF>TN;Qqj6UL5kvrKLCQuc3Nnoyv+;u2Mu9W z#H5@dVD@k94x!G6oAZ4bvMu74UnRLjOrr?v*~W}^lAnc!`%ld^bI?$-UZIb*BrMNG zI91=e!}(I5YW9h<&Zp$LwIYv(MiUMR`2MfL`nZn9;Zr`2$*w5tO(r4dO!?F+Q)hGO zW&8b|qeTg^=o?!*uZt_3c%LF&@kwt!AN1Ig2Y-+#=!|D)=%)OF&YH%F%pK6KQDhL( zGW;3v_p}?*QVg*CJ!51=q@JysR1=Q{H!}NBzoVJFO-)mxC6)}M{-VOs@wi1A{4k}V zA?$WE*IS+{oUBWSHBNhK*Opo1*@6-7%|!q`@dpyQB<>nPS~QoJE=6Y043(c$u;mtY z(EZo3FUOo?mLz89Vcl-a%tP=^s!ZM&tjAS)^|296;)NPSy_|RFfnel@4+D5Z_8^Wj zU`qWD40Q^KWO~elj#N(L&$>AU4-pJ@j6pq!74fl5s!cxsY5ZTc=QAfKF$I#mNAX6K z-y+vEBwL7lYy9SAPef{{Zt=rfMjCn?(ebh!Mp_Yap=fNC-DgLbMmo{!@{%*h%_il| zoTfqCmAmj*$U1aQgqZQ{&X}9;W#xhP-Vq8i~eyMGn;E67TFwgk2t#vU4pF{ zVz(Sy;KEjZepYdjzrYR<$;4rXZwKeu1iZRi2z%CQsgqt=1i7D@B;5Pz!6tRL3*GEz z(?kuG*1(+?nK_jh4J4lF4mM$CM7gxA+piZm&(p( zk@SP0IeAO=ENw!+&_8lj<5eZ%MDfH1ZEmSy4v2@{sAxykm22DSFT95Yuu7eE+?M{5Y z|EN%d58-wOiBHGj_}ZOj2?%}61deIp_#Lsx1&|g4;(LdAVLVTao^&z={8M-eoxCkK z*;JI1Pkk604uG_s&VuIXXkHfBni8p7cz?b%m*Nk%0-jq8^aE4q1nxDGmVBctW7aev z%tl{ZRIHY=a_?1Qu#tNoT^e>blSGG$_v4{2AH+{(gHh2Z{DGaUKoYc#I_C}ljb=DTl&NOZC|Dd2V!@K37XN z$A4}>P)q$rKhSl1*q94#!yH_pEk_^mqdQUEcd@G`uh4m9)sc8;wJP{?AtQ3BXlE-K zW*>~OJG<{#gVCnj5uCC*ZIQ5-C!SG|;)s#(7~Ir<%CMN@hK^*lI6Rm|F`b2ryn177 z7f-R~d;iLv`;#YHYNj<`rRD2c+=rjd9qfEy_1pW?Tv>cqGV3NHJ5*c!HOa(A1_){6 z?dgF7L@s{{-}cIsI6Nc~I|m%GTVQ-*N@}`6r3TIA;?zk=i54kEpFQuB4h%Tc-5b@&_$cB5uL`{a840l zSyxOM-FFmn!guVn2qL_k^=RAIw8fRTGUY;J{KUABQsbH;q-!|5>;ck3+FkqBkK>?= z+*2cX>Gx>rg$tS=(bg)0R_vB-i1y`dohM#Rk+D3@1OC%@e5QV+A5{Jff$HP0(kqp8 z(*ccE?;m+?GZ7CV#-XEmZS2RX)zDf(!zD7WIB@?PU}?OGW;_6Wbm&FLn*}AmZwT_T zWl8#YV3CHV4utk>9SCqBcC6P$hBCD=+5qN&iknhnZ;=5$Z+$ITNDkdo`O5XvjZi;nt z-L`c@JX>;7^GoVzD3OOO9|RD3DGBeDzOk_ihV!Y#Bd!@s&s|YD`0&JPF!qQZfCY4`}+Q{k@#4ew~EMcDS8!GABGscH-;m z+z9gHS2JdC8(UU0*jtPZ{5P2Ow8P8~@SLZp8)Tc1Ip5zsBq(&Th6e(~l%<0LMQlM+x@Z?%UL_< zWzj$16jizrh#v;2)}KiLpYOlmAI)-#eyw@AO9~RjT1sD)(EsxAqNkPdbkWc8x)+_g z0VC9jAo6#5Ncz&@cigf5p0J#PmdPPGX;$gGXJBjrX;h3>M8aWog*W{(Yk7gbY-%fu zf9P2DP}O3z0ULiDK6V=tUK<KKQZ%_~-pz;r93WT6uZEgYBI(_z&NaQ2 zI0WMjmsN$~!3cI~Fv*s|^~RwC9u_nFZ7+ zt8H-7wnD}G7#69cjUvnH9DNXEK~5s^*!9q}+MnyqL2eC(qbtBhaUYw-a%yJ_uxw43 z-PZqnjV|8G#re)Qc^qWd^}C@icaQEcvXvXLC9LQ!sb%-Zw-`G7Ot8*oiOdS`Oq3@C z5KKc?$+OEm`9GwgahaT{SmU7=+rnFdyxFKOhO|Xe-~l50`|EI#6^D|?WZ$nD0xh)W z%3JC@@YpIevto~EMo_u1RWSb~TYHct@r0T+UYRcYyqkV$&)SFM zmTlA`#TSFg zrdl{&K)Yp+mQ|;4wjBtZPy-w+ezIL~$tj zo~*L646&{H|Lj!Eq=xuzM}db)jW64^hb&87DMSh&%~$9|u*O&+eSL6zb(Zz{A%(6K zx3Xsgk3@%!)x2Isyr~nx(;|`C&b)a-W(S@}LS#IBcJwWHC-MxoMAUKQu3=ssN(jZj zHWDHB>eEk}ycK@+D`KlOEZ=B0Prq3YPiLNUP4m~AW`p=0dr2|4!HUE?a0XFbk~=a8 zAP96qZxtfTD@e#1QvC0EG#3)TF=$+nlyk(7QliRDJR6TH5YmJV?3*pY-(=74Mx}VI z>pw&B&U1Ui9%3IAhBG%O*6eEb?brdUf*=-VYv>snfjWcRwVBdUq9b65OYplo47>G2 znslyd>osRP-V;Z~Sm4mjOg$_JxwJ|=7k+qF2 zGRa<)Qg5k+taH3-W}sp7TdIOWtO&mlSanJK?Hq~K-yG5qzW8T*wTzJ_r~g)b8eKM% z-ZEtb#Wf@X&2%OZUi`p9vAdl3{84U_2F0&hZbKa+uDn10|7&)*(^dWb!bmatA~GY% z{l`*k`x)et5dVpHNhKwj+txg%Eb$y+p@lBV3xV8xRMM>?d?lTaML+7BvDPQPA1q|1 zfdmw_<_GQg;L?Ud9olNupNbA50g~lO8;o$THpv42`b#VB5A$GQYL0~ltv6=Sbkjd) zcTCRv-iUE6OVv4MYijjS(#fdY;ZL$&5Byk6@^fqMov)q+2W2yhSPiKu$1bnMVq4yB zv%=G^&vIPaHADl|8H|QS;eO$hUtox_)ungt#9*p %wpzxBLHFdgeW@lLPFl{n%2 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%0A`` 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

        CzU|Oiy^|;_G}D`*;$yK2hq&1c%=M{ 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

        K!Ju2*ckLgL@m7enT4(E%j(0*vest;0lhr*z zBUAIXyjgvAP5 z!m}X@uY0F$f6w#0v=h{*ewVwI%O{tHy{#);M3EA`R0~?RI4k=9<@4xxg{;r^B?n!!J&BV?@-%Xpp z`F+=QLEoI6-eLV63ze@Ds^vGC+Balr-^)+*NL?B-@zr)KhP7z-pWUxo7dqU~cU~jq ztD9f?CBIplp#72SPu^A#th|2sleZ?v9_HnjUXf3}^>FZOd*=k%2E_#r?sj73^>28B zhPP_f=lfn;f?o;R@odj3&jk&2eLAQ~?>QlLBW7K{Lv+wrA? z%{vF}Z}W1qF^k?*UZ@(oC248j;L)~kySN@pRn~2Ks_=$O_XeLE{N&k$7nTRbA31t? z-=QJO=HGu#yZ8PNl#s<2c0AX%k<$0^#`QaUMg~V@kI(A8_12Ifj$xNmwpA>SzGgq`0cANgk*J`-EiB_`$O`EP5p4d;-5p@ z-NTc&Zl4?6^^M>($EL|aov+{j<@wOpx)jn$f+wBK~*LL`Qeciuqf`rL%)hK0QG$l04e-@Q)> zUA67g++Q9J8PfjH;-|Zh4mq*0__bp#w+HWC((TFp7bBIsejWM1&ue>x+}Co#$P?9H z3rV((J308h#{b!Mjc9%G!{18=2bbF4d%xY_14?$Ut=CQJlBTpyTYiJP$zMS^O={e5 zazsS%&ZZ$>ZTN9j@br)`S5Ke!S8!Qe4^C&__pH4%@dWc zW50Z|e%h*_qw9WnBPVh5Ks`Iv5=G-A~I7rIYh(F6W;e@}{!t(-YBE-My63#S^EW zd31kpKS$ZXqBGu*YL@D|((}TCe(E;7YK?Vcl~Hx()>hhfRPH)6WytDNpN71!ZRc|} zci$USZ^SoIjo<7Y5`AXDcO&x$|7Z8>;C<^u=lnfWsWoND?VnB@99(;1tK3O@B9%UW z>`klv-Q=Jq4Vv`Y*7Q=)mU;VaN$VE`4L&;|(j;XZNf8B3JpbvI0``B`y%JdIxt^N)|OHEy%isaB(El`6qit5vODB}D$JR;f{=TD4%Ms#2{QAyukY zsTvXzT(d@Sa8>>bQL0z3CLhAo|5l$Z+rBiR?VL4*+u~Q2Jv?~K>D(@THpO+cjQryK z66-fv=JT7=E}M15goK+3yq=1iSc@_|{1h+OXI3oD(0APOYs~%QlSW1*#K&4vMnosX z$5_~TJ5c?Z=5`)Sitk6ewO?-b>uNt69H{L74RZ6ZJI6*w_BQ>%vu}@Ytop;|m4uA0 zJc9N^=q7#Rg47?fm*2C`uzTHdrOJlaPhEW%9)-Ih2V$TvRE*^+aG5s)`^^RX6gKu< z1y1!edF*TDG>$TU2ie6hfAed?X=(BU^+V#5;?k7Z_|%Mq7%Ivo8T1v9rwxXOeq|O3?_ep>LE2PN#Yu!*27M z&Z6BYwy8Vh9{FP13k$Mb*~Lb-yZAv+Q&>K`(j^zP2hAVC#kq>SF1!9yoW2<9?}+-< z@DBC+c*6Z2DS^IdDQYqFdDUV|Ve|#gC0MTXSaEoF296RF+##Ukz>d&-_HVrPV)&*K2+H z>g})*osZi1^}a?Xc2i8Ue>;yktdw&Ojl^z`f2Nf1uOt3Bd?VrYh(B7laZ1;%cMZG$ zcFs`ZF2CjU)rEupnV$)_{7d*C!bbl~_`liyr?67aX|(f{74ELvW#jhN9(nre^s)cU zc*2+bi_Vf!r>|BSefnxwj&sNO?c^a7yNyh;e>;yk?DUA!S65Ctef3k@Kl1_Mk^iDo zg}4rQUbk_JuIu=hIRAD&37bpYfIPI*Fi~+zKFVKUSdPt}V+#+>DB_)@u!ztex{|6H z_|MPNPG5cewtr?2VMG5#XLH%sR$JF>cK*-x#i286rq;l`b>STE;EB`lS3VOB?1Nv8nIB}Ey|0=vYm7%x+e*wIzs z?WD(6Yj}Dbok(9L`lj>vHU9^CS*`+Gp4gPXiu$T8yQ?V2>9!8cq;Ht3H7x@MSi&sR zr)%v_<>9@r5gyjFlJiM>6%(H_G%htGCVg~E#zSO`DKQ8FN|$l9+Gy4?+*zjZreuk9FvYF?G1|4| zWf!_#-kf|(>vo>jmf`}vH|BKI3`me9)BK(%O-xY+>2_t6l}mc2GsB}^ik8=MCcYyS z@SpigWnh+(Ro=8Jt#CqBs@+AyL}`Y@=9T(6nE{6MSJghAC>A=53&_d0*}LcDXB3GT z)f{Ij*;Ovorap;$dnM=0)t#<0SKo&%umJz395=xv+y^<<;kbw6emIeR=IVBiA98#P z=>6N<cC#9BSt}vbyK+56Ordot_#M!zei^HY09y3J0GkIVoWb9+73JZj$V=<#{FP z>OhI_dO0MyK7)U{7^9efgi4WAo&6SN}y# z{)~_L>4t;a#AV<6+`e;HzIuImNqTra-M*w3i^Qq;02F!MmR18SNh1;xDhXA)zXL6y zl?3Ix3jQTjra3GF2UtQa?b|bq!qcCAd^bj|PVuRgUuE@V$BvR9tLWO?&H`H}3qM!e z(ePlf#ZIV&b?RiH3YG66$X~_F%VdB}`Xv?OR1<;2D`Nyb5tYVkl^&Ot9vz?F zQPu1!k*Ucl+8-64J~TclV{mF*oXpg8l#A>1&w5d*aY<2fiCRlh(H^rNMb?1@&Qh;j zm)sSp{q?hGvHdDWb5qIrI?|a#>ySC8cjcExhi(Rlob zVmQmks_ZcQm5x-! zzo6idDpjjhzpjS9x=^!L?K;=jH7_*;y0vhhozSrGh{zs2d-d)U6&({BH`sSVb;8fn zy)Z*&EX^q~0x~B{|AaJkW4>7#ktC6e3mi^r2iixbAsrr!Q;fmWHDTd+-)LdXvNTOI1W5XqM6kR*K6#{z@*rQ@#N_3pW zw8k=}UzF(-1-wxO4g}Vi=om#)=n<&U!=%7WV5q`GFB73MMJltwF1yoX={UL@Aryu} znW0RQ>0x_eae>!ern(tf*z&k?)gv>y&SZCryRgJnV0WsrLU*>Uz%@;sYgPrxBNVgD zmN$Y)X*EQ$t(Tg4y{ytX)Sc3Sbvh)Ub%8OjYnEwBTu+=n>1z(u=GOu&sCjO(8lgCH z=wC-=(_zSG8d#Bxi;Ia?DEn5YJyZ3^4A%VitV~sI&$MfLv2mK7!)f@jClMXa2qiu? zE=s)z(!;b$98H2TO@cL5BBxU&ay~|;g(#K>_<9Qu z3(s`1-OF->L%q99e|yPT`9zFXf}C!-X*SVN=shqKTafKcv3WdG3*C-@_=Zh-DJ(`f z9Wnk{_b9K|?aC~czHt(37O-6Xc5` z67{n+#*I`n+m}yVt3RLgERmaRl_Fu}tdUm)sQKlKVG4*)L%2a5BiwoZ>=l7UBn6&SX9*R7WOIOqU##oJ*!-dZ&6p^QKg4IWz&Vxr!FP4(wtL@ znfEc5FMm12lpf069&J2BrRwwJa#)EaOD!c4mb7ARv5CsY67O4ZQW)2c@Yu3_Y7(po zinP%`0@a_w(47&oM>7+Zr&XP-2NpZshA-3RaoJ-i@?N)%nJABOZuuyaoyWi*V0Y&w zsY^SCN=#~kMVFY?w$%J|@r>ygVR`_yyp}LqF=KaW1xc#u%AyCWxsjQr<^?{f=I}{n zCSg2962|j`Po5BbQm5oQ?BRNg7$Z%h-Dne~;j~7Esx@C^sA^m)L!45#X1hw9S~HcF zL@v1tq{WhFBs+yZz#q09sIhB~G zwDcb8ne8@@w}*OSO(qwo$>jQUJuXVurbP}mKHfiOiG(A54}9Crivg; zAw8Oqet=c#52@viN+hs;P~5H}XTBq>CwYab)OZ#%W5wr_>va!Vsa=iRu3d}xV=6LPq17rHmXuxi0u*CZk)^yMUDY(28dhVK7~B@a zqc&LdR=jk2B*Af3X~8TeiLB(M$%3ZD&8LQNIO7W(x{K;TT%;1?N}|i|F7y;;QD3@? znSV&2Ncql`?@1dHV^Yy8o+0#?9F`b&S&_F8Q*ndSs7poDR|Qq3=y2wFZ9J$(e#VO5 zB2O-9liVqEEBI2?oe_qT1Zxs10QxDef)YAz4jxyUJf{-x^Gc7_sici23GuN?n%7;( zA~v^-m0+jWg2>e3L|WXX*!If&3|@qBm8Liie?s*{_Dvrjd_n;rz?mc9S^YUoSKTGz?Th@1$6ZImpv&qquq&TS4xzfL5oL`8bED}cqFn4-TB&9 z7d=q6AW-?nt8J!-3fW>fCB)Qt*;Cq6A%ad~(~ow5(Ynpx;5Q;=B_Rlg-#_ghD# zsp1i70U@LNSbOwRM)&Ea{%gcPPV56$mD)V zH#$IAB%AX*Ir1C?$kWr(6JycY#KItz&v&uCpK@B4aVD$Ca(sU-71bBnj2R3TWjSy;X=- zNGtCq%L2=a9?wo9)JqRciI{YH?CC~x9blAnXv543x$G#hd#wCpQqRk_#-+s$oyx#V zZIArfdn+^!j z8;g8Lq$m{Sx=M}OWr|u{UFyHc)k|P;QPk}DYR=Fzk~j|aiMH9*!xUz?L_@2U#9o+{ z1uF()F0ZwBZ{s9kRu>z3D+qm>eIhE+)P!m!<<3{jqgG+5i4kWm^C(5`!YtWqrJbw1 z)MSDgSQ07aca zn2vSY;|d(;lLCdEcuuDX`n5BTeODJjlr8 zQIvYd=5ou!sAdpiDxgZFdiut3ovi$rgtw^eN(H%i?^wJmCnhuc`qgmjUZn1WH z(~3ABEjG@?xS17J*-=?oV5<8iX#pWxtD&39)l!^dbKCNXRH;RhEqdX zW!AaaV_b|#Tzadi4-|>zmwIXB3JcX*MTC?hrlgpIRO>jA$Uw(qQwM}vyCp)83|QSs zg);r4o1^RFDv}XsfRx?Qz7DK<=@OgbEkit~BPBV-i0)v;y}T^XZ9{`$09&1Xk$LEi z2S{v*S1aSWR}sfc9*4aQBt4i7etmOxC(Mp>EAH04HTA3 zlU{TsUDBs6^4j!_DJ-C0?q);2Ezjt2@t{gBJCn1bU2X>T7#2}cp3Pof#`a=z+0f9J z8IrSN7?w=qje{Jmagx}+uvDi(Gv^&eF#=@6-`Tk{4( zc6oU=)umd*M2Wgqz3;SoYTJ2hOj=oi*H&sR2~#tQp0Hgj=`@H|9$(|)buXz@Z-HWS zWcXSS$@-{Ri#+=l-yB0!Y=(4OQM9NHh&q)gLlK_|Z4yr%o%m#`Pb-Hp?mV7RRUkut z+&1kFu>rx*XME(7SpqD1l!C&T948HlZqlOpY+Ah#L&K7lrG@ELg+-Uq1jvF>f=mN5 z|DZ;f$qQr_Lr8lgci18AT(L({9~8V=5_BPp1|Dx}VWC&ircqQU%Vhq_fjP)fDhzG+ zlSfHT9iqf0$0`m6OYu=jQHsk}U{hj^l`JJcJKw7$BFokmcIbOBg(|JAEsrFaJo-$l zvENFe4OGVg3NNb^m4qv4Nr@>O66O5~qC4G0@X&_EncNP$_A-IuuqUe%y`+mtr2^)P zC;`OM{md)mG3(@{5c>KUUbRI`(*rENr44lg-ot#ClLknNy0%Uj$)sqc%ozl(6H-^w zEh#ON;-$|L%Tu6_ebe;mXAzYf7V8fL50jkPqZFxA>$F+rr;+tZ33G_nIWZYErk&Wg zpYH3p6cjSYA5|jxM;+_3GA`~Ju0$oJ#akF0<0L~F_A=4IQinX4RKwgW4=tJ1JGD>` zAe~OT){IG;qs9sA6V9XPbLy5v8lg$UBl;K$;?xzyX(;sQiGtJ43X4@b|Jo!g51zU> z;Gf(>qOBK1F@?d5lsZq!hJ4j6bESq{W=RaWOu86ynKw1$GIwgoWq#F=%WSwR@1rgL zsdC&t`?!7far^A!_SwhnvoHFFebLwL^D?0?{o*$4i`%d-Zo|H~4g2CY?5p~^eN`X( zIrJFf^+iBxVs+ASC^9;`6ev~(Wr|0YmeZsjb1D@yRcSfR7#0n+shf)W5~k1Vlut^k zQ(pI}7)6&C$?By&PvKP#Y9aMs-=nCGAOl5OOQ7j#k93q zQ$IPwAT~nEn`r7ZgppeAs5g=Kxj3ss?W~&x(TvYhopxEZ4lEi{TEcrN`J?sF0;Z}| zHBWMs?y@IECC2G)N=>2NC3i@_Ykq-R2}ycWc(cytTVyx-TH5vJ7czxg;fjhR^U7al zxqGjg58RcZH^-A@*5Akl8nQf@BGRUiv_XQBS?tP_Zlr3%krt&+($c?@7ZmfH2~OU@ z^NETxy>6$IA82&t7w4Ck+Dgq*l*a z`AHs^g!uyWH{&Q)>Sd{=lQDI%qp+Y%?M!>vUJF*cwDN3#P}dPGT9YqwrU~f}F~O{! z$f9Vd^0!lgS=tUebeJB;RKvQ~ZBoOZ!qs>%ffl;r4`c=Og4Jrb=1^GF5i zz5`z4XCX%3FIRUV@P!Aai=EPev*x?xcGDy=__r1Ce!RMihVF^QCURYitr2RU(P?(?gYsw!zv{~^i+?2cE0COCY^puHl4$%wlYik z6sgJqr%@%GhI6oREt|tCL{hVv5p;SEJHX_WET%iOvAr(=s!eNL;>dE6=+G1ys{5qc znXEA*6U&Rz)q8JBj+Oe)r!+(_h1txC>s=^kxss?|TR6iBCSCM7Q;S-vEPm7J;p*&& zSGq$oO(NyDqEcaQd`t{I7KMYQ&~5R`vL$bM8q>~3wo{&Coh4d2nF4ZJ98Pr}D?rn# zcCM`PQRz`ukW11P+1~5t}$z-IHr~uu8@hS#nfd3fUyjG0#_8T)HwWIX)@f%0>lieEJA$x-wa| zwprQ8!1_$Fl_fu!xnj;;eH^Xk0f0w|H-}lwLqK}Vp0s>2*-p|D3Yk4MZQt+(JUzy z`Cyb$RK!e!%-6|-uTEF9K2cg`5wFp!H_xkSQLMHC2HpkP#nQ2+wzcFL9zEPuz;MXr zjpFka@tTu2M%k%r%a=V&B#1dlmKm8#l})KKb_>`S>a*f-%J*Mn!hyYIKDSIjveSw@ zl--9MDo#V{DiOUSMTNsZs`LosInJ?h_(v6fms34acqLX`#uf>dU(NFr(nz@Mh51(I zu9c}&gJ7LXubgYEWNuL=+L>bwFDl3k>lwjRpwAiZcSh*WUNTo`5BH+mC(P^=U0o`= zg_=U7-`N8vrw9-2Jyo}$%}lD%w3$htQ@0>e-GVp`3%$Zs3mA(CjWmo!^pI&z^%N03 zeW!?w2y?Sf)M+mY3kx^7r2a$}-rJDj(q%nEbM+WKLyb^edT5_;J(L^ccj>N99g-zN9E$4m5X~-F792q zxKHKcu+V>y|HB3GWKz-SeFD9%klIF&P61C+ke;%q5S_b)$ih4PLI{KMRI{K-? zOzAb6X}=xqT)j;?+BNmAa4wUMelC-aelC-aT$e0P1e{7%C<3l3P=iwkXo%GS4H1Zj zzLMr!R+L_;{@#&vuPOiLahCcDfq7z%{xMx}qqz-e+qID4@yw{_O8+k{E-qFrCmtuO zgHk?JiIh)OBIQz*NIF%Cq)*c^BvK-%s*IPZSTc4x*k-JL7f#-;ve4Qwj1v)Ru|qWl zo1JCTfKRFgsHuBoii)J$k#6I0w=?NYU&f{GgjC<(@%b>SZA)bOizZm@_3A4G1R=C} z>@HV2opfpP8Nd#fbg;@L_t4lfCtmK4$tyQQ^_rIHWbRyE+hM68VD+wu%35aY1B7&0 z=t-Dj>z$ZDiS$_lCDKJPc4*5BA%U;_%*Kk-e<=G@+F*_XP&1Wr)v6SVh5YoY!;`Nt-1l zRlUJR+O!k14br5i$t>F5NWWsA$nt8K3sjObSku{&r|!>6qrXj7hy^3@l?F;4$>sig zpt{%5oEobwnr@P*~l?d-@@WPvM>fxTpff8kn{s;}HI;FQlfGOglK_Y&z1`(RxpZ<5FrYI}KD zeWUkpn&@CbQj?iqU-K~Lw&x7t^(rR|LM;6-%#C5Pf?XP{&~r(qH7k6{)G~HwG|PZ| zPLy}j*e%3oI+zYB(?Zm>ByYK;Iq{e3%XH#qjGs-_rwAduwESuffZNT!D!_Z_<$ev4myPWZI4fUC}G0{kMqW0MusprTnRogJ&`z%is zBRzetixHSiQ0Q+HD185twn6q7CEM-A>@SxIAZHX`;8a&Zjapn=67>%Y6?>GaA@RQk z;eU@(UO_UqLghnvUrBu#Rv%}|c0J};nCr8%N5^zWse;sPuI6zl-#wJgsKspR*I)3} z-mBBzh+u7%1zgi@@n?g7=Z^XwQ@J!b^0l{xDSxslFlAI~ymffoa4C;^^DrbP(KqPl zqXedq7*mKnAVeAs*7DSC=z6o_GeZ+&G9!Hv!whbd8NDeonUUtmFe7fi8Sxor#O*gD zK3{5lTR+lMeV4>%f&J4MhFnsj%T?35Ts4iH%rQDW<_6R!)01x2Gtwdb`#61D7FCA! z%Bl3o4Wa2Jy~H7d!({JK8l(S|v^1G=VzDxX2`%G7MyIoLP2USs%JhQBFjpy)uXADv-uDh4&&E?FIO~0scNRayEtc2@eRT9}p0ZKQO#U&%p2=Jp;lc z!UNBbKQLS!OZ(4H&mth4u0?=-{Dh~ZrNqU=4~~zERf^JlT_V|6>t!3gBa8f?gGQZ6 zCryq>eHg0b}~CsJk;_sA)25B_{`tAFbAYD zt7?iB6X-L2DZ_Y1l9}=~a+%Mk_;S`Kr+6E3$w5OdZjt*(GxU|E`Y|4Jb>u5`P=JP1 zLjf967X@lin*?f5r37loKp{|thu5S-k^@tMATT8e0#kw@FeRc9kP^`dNQr0!rbJW% zQX-iYkP;CDq(lS(DG@mMVN>mMVN>q)2l&C6_5~^bD3vS}_+QWOAdd}P+Ln@7% zv4K@rRNsy8g=?QIF}nL<;TfF4kFneksRhzl_+;ei_pT_{)W>Wjx0gBcH9cGK;2uwpMn? z@;?&h;WP;fs*W#6VX`vIseNNb-liYycQa;SR3?*|>=)*J2$@%lA0DSUEZXW1FMQJ} zpfA9A_&5u7KoRqyR0c7;kkXxQVTnt9Q+HHUibdaGtf`DjPm#H0*3Qy$m_O3q%U9CU zhFWx|DNuHaQ)^40?v%GJQq{MWlr)?c-7R8S9AQ*%4%J0wtz@-Ft;W@yrl_VcBc>*z zMDqp=Yuvn(E1O5Ol&VYM?C4L5PuJ6~eqKP=86F$sD_6KJsm4bCp?q&ek?%z+!%OLi zD7mFpIw5%EL+x?mWriWgi9q*i9yOHC)o`DNwaAmJX&GWPbs>f`bX|<=LS3LmOG`}= zOCEO-He|>tJ}I>78`6?6S;|+FCKsxHR9+LQ6CkRV7*w^yq-e#`_frK9>G~lM!%QTo zGBJ+Z5K~Y2#JEK)X;Nj9DiLVkg2Z8!pDR$J6QYL4g=b0?mzihFb!tvc>XB+tld4Yc znQ5X)-BTA+$d`n)?>U%5<&1&fh9Z=isM36?8H$Fo%YZD3N*W_MM5kCynRwNts)AH~ zx>+W1K&G|!kynP`ujpqxIioq8m&7m(u?fB1rp*rkA(QngU6o&JpL3&9A63~4waaiHfij9DG-k@1>*6gKs>$_ zs3ArQ)DR;D;_;J?Y#L#jO+8GvsfXz{dk1{u%rp+xUtE&a-w3->z!IO?A(>cg-meQcjK ze+brmA!5K6A|46J%Az?74~^`txgtV)g=;QWWP56^o?(%ZnyWYK0Sa$8#zZMGi7^3N zB%~dY4mDqg&bOy(;q1I)l1l%*6~97SVx+ddk{_woT;i8X%Y$F)EAgvqEBK`@Qp2Uv zP!*)U&?Sbz@bego38^(y4XQ3xK&>TPaAK0wZ-c}nSGf*af2TpLujH9{{1swyRfl8sYtWJRlzz!6bOF};Xf7f+qHSnYT#v1#ce zEJJA1Em}vM$>u)(U^Ra#Q?ZbN7T$<=nslYjsZ^JmwY;vn%2TOwF8xt8)Tq>ANoxc< z9Ky5#jX#nqwD#$tCPCAX>xvAE?7`cds-C!I5hR@N1bg|gmxUfCuMes*BrLOn9zRHA zC>7i2-d2DnU50vim$z(KR+&$_twM+)CqUps{{f_G^{CjVZqAYvL=XlOY$zg(%8+m;g%&pU5!-CV>qy!43{^LKb904!B@4* z5ljI$c)$zmIiDSz@Hgqa2ru9+CaeUeLMfENG`J0>!xi)vLKN2+4KWZ4L4>6eKMm4h z1dN1HFdF8=3&dN%@qP$KKLj4(I+mv2GoRFP#fyN^-ve;L49Zd4WSV< zh9=Mynn81D0XINPxDjrGo52FDpf$9Cw$KjRLkH*xouD&xfv#YMZqOYJH0wSRY z^n_l}8~Q+B=m-5_01Sj%U=Tz>G{itG#KB+~0z)AlhQV-1fJ8`wWJrNqAr;af9Y(-N z7zLwY42*?wFdinrM971DD1bu9fJtD3Ot6CkoR9_CkOMB547o5JZihQy2F!$6P)xaN z$31Kh`{4|ng>&#TZ00^M<-Xque?SiY8{uZK!c9N2YcZI zI1FFG5jYA(Fa_M;0WTCo3CxCL@HKn`-@I zxI>97z{&TD8$1s7!C>W zF? zq(U0p3M1h(d;*`sLHHcLfG^=II08$tw;aC4{SB;0+hGShOnM%H6|fRk!K3gPG$%bR;09<3b&y>Tb)g>AhX&9P8bM=d z0!^VAG=~;&1GIz}xsDq--UK&;1zJICXaj9wJ}iKTNZVhW^C{vy4egNK!ErXsfw|Bg zSqJC{cjA8;I^n)TysID?9R$G;0#%?YRD)c|gU;x8fv#YMZqOYJH0wSRY^n_l} z8|rb6J{qAq~=D1dN1HFdD|dSQsZq&NrUp z1jv9%V1rDsg9Dr(KTiArWJ3j(G|X5c@?F^@FLk4;>UyDrGjI9G@JNvr%GP!!DNnja$U0ayzQVI{Iv@F+Y6 zW!RerEzz$5HQ^a}7S=&5#K9A=8X7|rXbR1sIkbRK2!n8lfJo>8J)sx$hUZ}|Y=xDu z3Z5km>)<(fg0zn&jdyVzN7z2x{c!h(0Wc75fk6-j(U1=XPzXgZ1>E2PFBC%wOofNB z_XwTSP!eQ@gzJ2PeUVQv*32P1J)p03(vr_&=}cl zm;-ZR9kS=(c~}okklhJ)!QJq<UPCt)!6We5y~co+u5ApsI036dcNZiUv^XalLZ z(;yv2z(^PcqhSn;g>f(*Ccs36?NFdPyf5t1Mo?t}M9`(F3}_Q8Jm5I%wf z@G*P>pTcKw5I%=P@CAGchv6$Y0(ZkvI0j$CH}EZd2j9bS_yK-|pWpisNZG z183nJ{0zUquW%kNz;Ez7ybf=`R@esHVF$bkZ^1qAHtd95up9QkJMb>N2e*?~bKy?d zMjE!m4tNvZg12EOJPMD&}U7|?!$jS%!fNj%WRkfcfl@f?1nw?4!jHR!TYcmK7f6&A3lVS-~fCKpFjg_w#H5y zXo$Nl$4`-e1_$ADI0Rq7mv9)qf+KJgj=|UP4SWmV!S`?+et;k0CpZBo;S`*PGjJBp z!Ot*|^Zvr|S2zzB;5YakF2W3f^!>r{Pq+k^;V<|buE14LxNpliJOs<(VR!^qKx=pd z8(U!;SU6`ZxEt<)dtn~j2lvB#SO5>eLRbXyC+*5oka}nVcBJij5xLY+H^NJ}rOh$g zVY#1jZ{;4#{hcF5uqExdoLlarlr_1pa)0ICN}2ngrb*g`nVeV3^ju6E^B#BNza6B0 zlsegpp7aH~gS0KuH`TAMf&9!ir zcymw+LO&Qpc{cueP!)eQr~)BS1Aa#T96W&P0(7L0IUDyKa3@IHSQEWkP#gbZ{3o$F z7WXK~hS4w|LWnztR?!hl@vb4e5;VInGk6X)eDaThp+Fogk z??Zn9+>3t=ercC?z%#g|O&UYN7 z9qWj{IW&b9a0A>3&7cXi1UG3MNB&NL@h}lA$faI;n6O9S|7kx++Sl>KGsaxT7_0pF zOvYlyxJ$-d=JA?&j3#3;8IMiDrnL3aw!Mv8#>;=eW!Qy(C&*a(Esj?>O8d75w~U?t zgumcj{O^E_t9Nshv9+|3@8gzn^dCbBxnf^dg(>;ci_aSU9KTiO{fI_;qyNMA(y7Sd1I1b4x0$ZtkZ z#=AFhT*z?|+=$x(U7$Y6waqI=p~Cmg|uIk@Vj_1?j^{Kk6+o`gYTC-wnIKOPm;phAA)@ zT4PK4rRDphMnAO^@tP9;ILGE3Tfhy_5}HBzerqT;OS$f1!g}MjbKFndEYg|{IpBiH zup7Db6<4A+l{kOn9>dX&|0Cl40^Q(4I1j(VMfd}LgA4E{{0_CTH%g9B2g>)qZ$$Pa zc5mW%GgzP%JWITF@B`k|mIEaP&klhdSp*DUOOokk|6?-z5Qyq5_jD=y40?CjDsW24c;Z_(8G8Zrk5@7_4 zgmg%NAut>oa=y0Y?{eIK!DXld-Jmn{g6_~2dO{>bKyR=@59k765DxXQ7s~N=(%g(= z1858_p+4LI4WSXVfF{rsn!|N44r;(8u)%o9fC;bxo7G8cRouZ)2kOH0P!E=oN3}R+ zLkRSN{%{KngaI%J`axfahA7y9-Ou4mI0Djl{sNA|S77wD&*DA<(&zpTeuUE?eezTA zEl3~zdpHaS;ShWZ()T|H$3Xh!UvvBh-UR8J{|*;H`sYTU{Q~Z{;1AdiAHyf`5qt>y zpbfSfkms#A9>BjJK7gHY6%?-TZw{B?FSr8RU>EF$_hB!*3o^!e2ll|*a0&i|{n$SS zU&A+W0FJ^5Sk8GLhDSi=IgNRlZwdPheu9%=%yk~d{V{w8hhPP99tD}ZSqZD4HRo&t zZJ`@H#eH3jd>_~1#P1~D6*z-L0Ak+VG*o@SU6AIAK@d&z}71qUxQcS7`zKxU@L5fcVHX5PTU*d z4QK?7p*ggGrqB$Uz(dd-+L88&*q;DPNvq6T<=}R~GVDDJkH89839H~ycnnI=xx(=! zxC!2aw;>a|Ys5BmfcDT4s)7w3Bwi`UX;22YK^C$Ph+B+%DlEjEkL*p3A3{T9)j;L| z%kV!$*h2Ug_X^}~IJSniun+lT$i_*0^xuNFVJGZ@-LMDVfp_6OkhQbD@ButR+%Lrr zZdqsh5I%wf@G*P>pTcKw5I%=P@CAGchrzslb{qZz(ozFz!F5m*T%2bLVIfcrX2J}Z z4zu76m<_i>707@h$OA8wKrwj04F!-3*^mR1!3B1(!6e88CuD>EZac3r(Od^n?D; z6q-Rjh=LoTKHLP+5Cb>E0B8=Qp&O(?ceoWs!AOXOIIut~Xbpp52n>Zb&=%T3JhXrY zFc5Bm8z2;VLIk8iIz&Pb7y-jzIJAcj&=C?K5t5)2bcQaF487ob2!onX9csXJ&=ssu z3mQRfr~|#B4>W|vkP6{29{v}3?;RgivHx+;W;c}pq1V7tg0zr?8bgsZNFXF3$s#Bk zHp!AiQkHB2!Achp5fl{_6%iFXA}T6+X(}kqj_qC)RJ?kTree+W{+_bCDVE>s^}L>c zp1@~k&di*t-!^mRoVgra0s1knV}S=Gf(Hq^A8Y{YK^i=l4kmz!-~qz!1slOQuIGXA z;A(ImVg1R&Tq7Nd|8;2dH0VS89IzJ51+}08%m!{y1w5b}RDuZZT}ysvx%UjX8XCL` z6cIiHw*WZ7Tf{|ys|f#{>&Lj~2JYWRnEcHIwSsKj4``!M%B0{#QO z1}DKc;28KEd;yMw6W~km73j^qMc^myzmI%3fa}1Y{gsjKL9mv4wtp`y6-_|4pP@1(tLDFxUUW-HiJih%l1@J4_%k>^`7XL2XKX6Zj*YW>| z`!o0r?Bn_ka1Q@#xOKQ^z?=Ag!uVh0r9e;E8<^tR}0(amCKiH#+8)eKMqM30N?N(3ScMFxue6Imy6P2`-&IFVbX zK5wWaO<5{3RODw$@Dg|eJPDoxPlM;c z%U}n16>I^|fUV$p@B-KlUIG6CvJNzxe2fra>Ik+uvh!ao=c19yR9FcnmDPahBkUIN>}3*bd?o;>z|@4;5E6s+W)YlxdA zdEh<^wt}u)KZ*Mkcp7X0&w$O~QScae96SNmf$Pa@F7CD9DenCz>qN`AXD{fj0K4x2_%CQkP60uOTZ+M39>*o7z~DkVc;U*0DVCo z=nqdj-Oacxt1>}JY zFdj?U<#1u>E`<7I?^;;qx_AqUqQn)LK|U&Kz}d-#DIZdI2a0sfOrrM zhJgVf4h#kn)FT#mK5gxY+Zwb3T|q0*1+)QeL1)k&bO4<|2)K;4sZu? zx!^OxKLz*VKZg4-`9A_S0sr-^1H}CgybC_y{trPvFbh1-y+gna#9aWtfS5)NT!_6NhfPtcXK@(|7{?R>kKdfB!Db19%O=%U?NBdH-SmuQSOyB zv2VH8e=Y1AuIB(ZY0lw(4UT|(>irz<3*dS1AFvO+2zG$&;0^E!2qE84KoS4vwXHSW z|1CFONqJX*+wngRO7NG0Sa1hv?gDp%d%${dFSrlf4;Fwt%AP~oJGu7{uAc?nz<#hB z%p`6#ZaMBw+`}MsTuDqBIFR^SG59RzH^3QDQ(0^lKTHg&LqAaFgn4qOXv01LoEFdqa03kU!< zkPqCT49o?Upc>2pHJ}_^18TuMa5eCNDo_Dtfnrbst^%c?5IDgMPyk$DCMW`3!B~(0 z+Jly0Bp3xcfQ}#nB!WoL3UmWWAQ^NAqd_My6$}E|AO=hZmx3uE1*8Hy=mC0yabP@1 z1HC|R5CzgfXV4mq0hfR-AQlVFZ1p0yuFbQOWexN@X0J6Xc z&;rDPFc1tvK?oQKqCqpz7KDT5ARb%{+JJT-2Mh*Rf@$C~FdbYDt^h-!hu5Kp(?Hgu z7U8ZX+(EbnI$Fhb4*u`)pT&O$T#f%Ka4Y^9xCOuo-r_n6EFt|>;5Wh^Bd@uH$@%TN@=}*n|UyJSp1Q>3h?pkd|w8cnZu^1^V7Bec) zj0&_m95#o|>aYblY{3p&h{G1Dy|vHs+s+OwvJ7-Yc9)tluz?O+xWlH=%#YUvCxuDP#UpJw z6mPRivPj);8PMArAU{@yBgtlW^eB{ah8QC^>!C^W)b;Rv(SLnF+rLL$O{S6@@U(kTJHd;@&- z4e;d~;Hz(dFW&&ae7zDZB0%HBpPEa)rZ~ZCiWs~m;o$WSdW0z$0a1+?-GQ$TB< zw~f#1rP_!9FWp82wD%?G;PZC$c{};MraYwJF22yNKCeg-v=cS6`nu2R8*Zzw`@Bku zw7%}M`nu2R>pm~vLt4Ik1AX}h`9g#ILVcwL`35VSs7U?BX4D7u8iE3k-akWZ*G*+ z!f;y}ZiMbyjB+hTxfY{bl$lmri&3t{DA!_?Yca|VFr~PW-fE;rA8Yqpje6OPcG`^c z&?j2F%_z@i+;21Pw;A`_jPh(oc{VdYqn$RRoi?MLHlv+3qn&|9xq(Kxffh5sY!A5&c zq6s$IYm!Z{(XL=){DQ?ef~taB8*UrJ6&)(!qCv&&V7MK1H^iu4sOcK@3^nQ*YSc5- zsArgwF3d<5W~2)<(uEo6ni=WBP1i^tZlsSjUE{u3b39_r@rX6YBi0;`SaUpL&GCpe z$uZWX$5@jfV=YFH#afz)$s)i`9WX#Tn*Rc+lhi}21Fl3#|7%2Qv)q)haH`ir>SX$C z%^j9N{*N%Emsw4-Jc`qLIt&Xr%@Nt#5jnyUsj1J=+;M2Mrh;%p@*EniDUL&+(q*+-ydKS_ln~9P6pv;niKm?yj^b%= zdODb%j;5!d>FIBJ2ACeKMUno8;`Q3cYbuW`Ybc#$^pn|LrfV@hR?}lMJz=KD>J736 znqf9ydT*@F7aQbF7wq*(Ei|*%*23#+>Giep`dWK^ZM?p=USB(}uf6HBcpG5}@P>Ko zXYtn0;;o;>TR)4pewGmLz22HyynSG4=8X;a`kH%v-WFNBEwXs)Z1L9F;;VB9@4X$p zzRq4>7q73Y*B9yab@TeVdwo$}pE=Y;mW#Y$eZ9VZUSEH&&o|+S_J$4e`eMAkSg$Y6 z>l^I#4e|PhdVRyZzTsZq2(K^RVT%^t7N%$RsQn7_<2Ql=9JYZDTViql;{K|*zoodp zwYYy^asS}r{vm`AqzF?1fCyy+#Ht`b5+!LuK^SNT!a;M;0z`mTpfzX%+JbhVJ?H>B zf=-|_=mNTeNYD**2X@c{^aQ;?Zx99gfQvw1&<{w>2Y`Vf8Vmw4AQr@d!C(j&3WkB< zU<8N<7lQ;a5{v?)!5DA}7z^kZl?0MO3P=Uxz<7`b(!m5U5oCZ#AQNPPY%m$*(5>{L zh5ob9e-`@BLf={FyFmIkSU`L*eH=`hVA2GWCYU}BCS5S;g6ZR6`Z$+%MWMyTZs$J{9T7p2$ABaB$UkIHZ(i8Lo+!n%JAx~X{tiw*V zng+Nfs2JLjsb^cw4A6Z{okJZqLk$~R*J4;9?F?J79TU`U+>0V^XIh>X)0nrIro6>8 zi5p-F^#D_-2be+~YjnT@Tk(M60bB`2cO{64TW+mcEkBBQx5La6xz?BBbwM;|Am5HjjG64}+W*_3p)I(gE zcZl1TreNXn6D&Vn@vPe=LbBtMZbejo;mEm(d+ zshC9F!8S04a>WGZ&zo_%dyHoUE3<~WEgF<(M3|BYUSisZhGDM#i%Yu(a zh2k+N)@GQRvA!vh#Wy{*Xp356Qv{l3LMPJ`tqreDCqtV~Y&L^DZQ6tnOU58hn>p1p z=f>u2IKU{&oCgOqGqSgu%wY}adpO9dM)Y4|#UkM+RP$N2Uz_%;hlFYVHrj7n?YEuw z+g|(ap#2tTzlGXw3ybb3&FN-1dSG|`s=INel^f7qFSEN|X!k(vzV1P~6RbIQ{XV;X zgI&MDuHRtSZ|I@t*+Wm#Lr>C6zps}b*GrGRx2UY!W>vS z$P%ap;~L?Nf)>swXs$Lt5CPXJz!7Pz9fct3SWIf^uthj*tsS;D4qID?t)0Wx-eK$D zuyu6UIyr2e9kwnGTUUoI(qZf7uyuFX><(KGhpnf>*2`h*?XX2TY<(QIiyXGT4qJ@F z7VEIZIc$R+wjmDNP={@p!!{hMF_s6kWmloCAd{rDRZ$7iRz=0r*^KfMVplU{km-pr zJ+WT4gZxZpr0rg>jm1lIDa*UggNa`muriljbB61c;hKOPqpyVqz)RYqsCWWobyPf7 z(_=F|fu<+O^aPup5YrQCdcsUkGt(1pdYYRabJ2$>(1O5-rD>OF0?*P+A-^n4$mCZ< zprsk2PEQ~*&(cCm&_YYlLQBv>n-y6;m=~bU(`}m17bf#1Jxqj$P{*hMO@0_&F|7=* zDV%}~;S_ARp@th~xSb8Ri{VBZZa2dnWVkVg8)vwKwW2;AZ)*m<^2|Ygj9=3+UEu@m z(Sh!mmqPFan~o8z@d3fY2I3f*Aj7n4VNimFqs1{|Sxu5_<5v$1@LmQ8cM{7#(_^GG z96i$j7Ok{&EK%UGE|9t55^It6Beg85lpi+@$BeKT^LVRacvy}3ztx!kTMbLZYRvzw z#{A!E-q%Ub$J$w3eHACbs!fOktbqeu6$4zAS{L7(5FTI=4Pdi~*ObaE-dTLBh8EwV zprxy(Un<}Q(*viWj|kCK5guI^;R!UObge{4uo)6!dO}T4nCWR|dcsXlbJNqp^q6bp ztU|^NaJdJ#W;<+7hpoV2D|Fb32J{ZGdMznaaRr!CCcu<30j87*FeOnym?28MYA8T^ zEQ2Hp&>qW($7{Z|G!sV{9&e%gvkMYi&C;!A=~lCJt693$EZu6BZuKfbvvjLjy45V* zYL;$|Fgqp6^z<=37nz=(rl*(b>1|L*7sKt^e?iy74oiu}a03k2YPf-hYct#+!wtsO zy!y5NyQr1n)*8~@Vh)%k0x}nNG1x%}$>1L>h~E4s3KLgz>iLk$W}u{$Wc*>Z7+!C@ zEMMqh+WL#v>&upK*w&Y*-W{^+;k`%9Zr=rlwC}=OvgC$I?TbNe_%2xW_g#bzsMK_f z-a8AUwWeDP(SWP>1s+{?z`8~XL%0xNgowF;j51{-UL(Ma_lhI0q%wpd9VZh4bg=o9 zA)vYOpgGf3?J0D+IrG@%J7rlr@kov{V4s41EHY=D&*2a=-w{Z54nHfcEHdMB^%ExS ziDkwy+H+jmQOah#eso0RXfxjXO=7JCzpsQF<#Q05-Tzog&Rx|`ZT36WjZ>LR=ad$4 zW<}TD|dlQJ{io%TH_Kc ziiSjUC`4XWsk_XjokO0KY(BrQpKkDOjir!B~IljZvwCG0lsB+CQ>M+Gw zR^yUa2AV9V5VD83{XOlR~{w|;7D$YaEModpxRLWUYa-ON( z!=WS`QRuNpb8fo#s2+naGb=gh!|Z8$;v8pbnX`azN^@F?9C>0-l>;cMDl1A0?Rizs z3J=F?Q3#{q<3~q@9Czq}9T74W9D##R`|`h55u+SazIacawfh}AD+!HsB4^}eo5r$2 zZg(UGhInm+}wOWudpKqT~4Y&+2KW=h&cs)UKTL)- zT7Q|&uUdbZ&aYa3nXZ11=nT=g9lm5EEokx*qW zIjU8TR!m8glTqS0{>ePnLC?48bR6T*AmyK=8#eqOrQ-mQf0T}|?Eh6d^IXU#8dI-+ z_0u(O3{C&5^o<(z*XbKK?yu7~ZY1gbPi(}nsdi;mp={=$h+Ucz_M;mi0M5kIG$AKv z$l-W$SVc`)4f^~~(oyE0ri*JLzY;loO8)%v^G|2y=S>H{dXL(Zni*&7$=O>5&FbfT zXqnc}*S|fDi|cDNv7dhDKPrdX{ol(mn$(~i?ZhByMYP7*((~q7K3aR5ikITedU}s1 z)Xq4QO!VeznNZ2UO=q;lOlMZb$c0$H^9%j*Ya*T7P`9EG{KwVk|Gs7i*sHY@ri<;` z4Vs9N^SSlEzo>_qf1;%H8^}iaYobe}7AgNheo6m0KT>Mtdi6kF^5Ef3HbXxyP~$M~ zae>Cs-HqoJE(n9F{rQQIr4>;+DaDzVSR=Q}lv_F`jmNHM3{ z6mrnvoVfg9y7B8hH zS2zDdI?(3y|A?+gnVy=Oie_Z;!wF3G(h7SnlPG7g%YJEP6-O!-+s9W`)-dZe+hH8} zDQr^(lfvY&al@jub7IW?)A;=_(#dgj&O-OBa=GCjjOeE9SYF z0naj$|4li*^xne$kL7spGb(A;PdhREPkYPP{y$9@Ji-3EX$A7GTL_R>VZ_gt9qk)9;uirw7KmRuPgJJphjCymkPesu z@`0ogOG5H#17?G-4tIS3*FeJW#eKl=--o-= z@ZXR7py8MI^W{(O?da$4gkRD~cxU{Qr}(?zmpsMa6~E*u{+>p9sdFzQz4+x_b9rZT z0Fd|1#V_yN%X{bImv`^wU3Bs1g4IC&r2d=nkHy`J`zVn5i2pGl^%4K$KESH! zr3;OgIjYLU$*d_CM;7x`b%Dn`sy4-0&G~cY@@t~G*rlqpqik7bOD|IHDlFbYS5acM z5$s`YQBUA;dDqQ3ww-lFl8Yl|H70U(NvX%-F2cm744ESNrPgYnoSKuDo0pj9$W<)Z z)wl)~SF*sadu2Iumdm`VshCw!Ik!S@Tu$ngtcj^9>6zoQsED~1r?t&@nd5TG3GrGv zIjOnXbcddC!92~(H!oOZ^0vmPx7oO)dDv&Z9FnHxrRI9mYKy^ISI%a!wOUoW#hh`L zc^9+I8z&p})RI+JX@yt0w5tq`C?rG8@7Fhk$YQY3X*rGJWh&qsD-H>*acS9V=h*6( zv`V|ui6nh|CY_v<>Xl7}9(PP7Klz1aeiF+Y>Z+}7Dp;3qLx&DgCDqk#?T2AELv zPt_c5&P=`3F2kEXELq$g{a zDGj2v>%^SINvV0MIk_q|*`8hh$}g*_7Y`ab*q)MBFA0nARrc)ENf@afkKJ9uiQTRQ zv-WORc?>Wl_$1cBk~2~hbCme9GBc*Bq{NiyylL5~3M;fQTE;%XK6GG|CrqWJPK*|7 zG{GL_8K~@`&BIi*{3WH1PtUaL{?yDAyGpHf%hALY#R+!B*~0Z2pPHGRGc7wWHKkst z-dDa(RCzg$TuJ2Du_}9Fa<0AC2zxGrOjJr@ULwMQKX1kKOXV%Yxc0R~uVk1JuGL>^{+vmzJA24puV)rY(h4evG6|L-cStY22@qd^gO3eVdFZuc;PR z%}5=em^>|CY?OSxCQX#;j(0Vghlh@8GD6Q=@*9z#n3tE6KP5FMecUvyt$Ij$l0$@_ zUlO4=4lvf9ZF!WdqA(vp?^NYQ`8+f6XiCLZm9KSH6BsRjLW~>Jb8{W3Ir)j1DWU+=6Elo(jR$h{9Q9=p zxm_7vBR9RSrNtt&YbxY~?|f%9r&ksY(i%`SNc16Bu8KLXvPw59NDp$+GOFhvtY@sH z)i^^-tCN?>DGcq18279Z`9+o5kSn$GvQu@nSDdQbeC4USBe+v>r@K$p?EuxYPt~=p zI90c{@>E@;9CY!k`d)vkE)CRz?cm6Dr|K?%M(MSuY>c<&=4-9Wa=R*Wb2IGOSsByf zhQtoDm%BJRw@71j^Zv@Rc@h=lHaz)mN#vs&9%>cE6jc=z8`9Dc8_LW(Gd(xYo||ot zk7b!XHqoAvlO&(NF#hagokc~Zx~gQd=&q@@S65cr%PM)u<1FKmT#?KnJ=M;N>QW4c zBF-!>u91hY_DYgg&a_i}u}dX8D=I3vraktVJginyA)eNm8Bl_=tn_Lb5Q&hq!gCVn zA&~s4D&102y$YDY^@?&;Rk5z%y<29qlBY7m&AK*-sB%?TmAY6~lrv+s(u_O&A}T6b zbW}5Wgvc}Z>PmZ|Jd$+L8HKadxS9&>$)R5Na-O$KFHrYXtv+*^ZA;!-sPdY^5~@V6`bE@Kcxv44 z$|^cf8#(*TGA9zMQE;_9-j_P$7ifl`=4CyO#S3X#zILtmO1=yc9i?(a1__1dn`7XY zw%ApTxX{PmmxF}r1Mj=pkK+BZtZ>csyV5(xFM9&2ooFOqHnMnF?<&8@HPcyBR_*Z% zu3?4EJMwyXS*5cmU!x?gnlgg<&cfL>JQ1(o06nHiAM1ScD!+ikwk!0SdBb>0?;lcK z?JO+u3(&eazrsg3dTzy42F>V~-X0Kgcj;BsN!#dGo!aI)J$8h4Wff%5n9CXp977US zRO-}FYVwx08-R!Z@&I4xo=5az(3g6Q2>2P+@JcH;rIqR|%1B_zJB93obG+nc>SpQH z7_Dm!8E#5Lw814YMXot9C3CBwCe7=Sgq7v$So`nmzU=UQ-FM(8@EF$t9lx*p4F7fb zZTN@dO8j}y4F7MqKeYS4?rZQ-?azBVefHe{`hN5Kya^kQ-uwFXBNh#qle?-Qqi9*m zO}}pJaQCzyZhSVYjWf0U=FkP#4Swa8vEMFz;hJWrZ|~7_`mD@_c^|lLJ2Yc!SI?B4 zZ68^A=F`?SZ+0K~>WR0LM!y&P;Hc;ORQ{{Q$Ky(aFTLn&)M1Ry|!<=`nQ1Lmq$77jElbFmvzTi-1=1DfBHofm%X(AUG>%B z&+pqju&}-5lBr)Tf3$i0&@PV;soU~$T6q48&m0`|+PP20fBDe*xnU36Oa8cF*OP`m zV+}Y4YJW9C6NiVT@v{$)P7+~CROa|GB$-^ z$xm{6X4MPOpB5=22UT7?GfoeZhl2LL21E7}Q#jXIR&CGFq-ugawpPUr^^0fo2x_5< ztyr$IA}u;8*)Q5%Q&3h~$ee;*5Ea!4%6Kf5peE_hrxK(9m93?cT@nfQzEMT;V2Vb# z^{s8bn+Yg)#U)5YxodEOV!cqymLSthXkn#m=FHNt_scX&aJGeDs*Xnxq+IQ>5XJwB2aAPsn$nP zu`Dfvrj3~@DtE{6GdoU|&Su+}R!z+yMjA_&Iq8#9bz8LosTP*Z@-w##`Yo(-`%M{4 zsz&QHPFimr(o9+IZk({v^)IUr)E_lmPqIj`U{3U|+nYkaq97YcW|MaWhZ=R<}p z_IS$X3?8B?T~4>Ebh_NC_TnLNN=xSPlzi6^H*{AoL?}~F z<0cQ|K4Gr>a`cSUz%RH_h<}+U@157%A9;6Ao4o9lwq08_k9=ao%7MLm z1V&AtJSlQ)a<$! z8sv75ja@l^W%#HeEic);VOihU!2yFmefwbK`LnMNuXd*l{qER-fos<+X%}K`)+{e~ ze23}T8C|F5PVBPdnVU!Rnu(>i-PXHnM0i)XCwa)a)yq0YM5u@ZI}e1PKD&GH(YN<^ z8fXt6c;fgQ7rCpF2G3u#$hz*fo4Oo%dsnN)3zr7%+qFM*#*DG{?Ch}-8y;NL>*Vpb z283IhH{Z5(>G1WpuIiSNoYivMvp0^InlqvE-rcVU)wn9$(CFZ@i zUu!qRnb>3Jo;}uWTNV!;o0w?H&Pi&0?d(aTS1!1@d58)L>Ds1c_jPNQcaq-j*eaAG zv~0HQ+~hXr&%H6?*yp=?{C4Kx=<2F*!w2?i8PmI0@I_m;%#U5R=%!}j0WDf=e(`V^oMGG&Ce2ENsWKw_Nhw@xw8v&+Qqqch_ry zix=G(+&042_P4W##uUv+>HX zyJt|J`Sa(iCmy&t`qOt0ci-^9f*!H4Dt73Q;1N%3T*Z=D(D1gc0^8Yp2K0=N4T(R0 zdhgIp58ilDN@8kY#@LMT`3n|UPJX_>-{Sd;ZEJ74vBS`~z+wCLyw&W$?n5m`#fFb^ z&rXbsXk}@&ch4Ka%N8sTt)87a?83RXMjn0V&CVB2?~7l%dU4ySlhZrRU$`(}@6Nrp z-_9MrBrP#LG(Il$;-bRw7wz1+QytiIxaE8AzR_X(mSyqb)|M?-E?m`OY*JEyy_dDu z>NN{mmCeW)c=X-3x@_98xcAUl+tAZzcEzQQO$*t%dv`!tVOGqjxaOk=_GlhGcI;TS zW9zChqXxGavt!H3Q9F0-vTWYCqW|`-D-tr2GF#+LPHh)Iq}j+%j~wV)G9#_;wVtd? z)~{aK_2`j(9n+E~gyrRoYhUddKVrj%`S$NVKNy{oG%je{GfRf`?bU2Rkux>w!r3!9}WgToT0W~X(0@5tV^GYXP=_U#ec&t?q{jvZnh za`M=|z8%{%>%v=yfwi;KFJ8TRend&Zg#LYdhV@@}>x#|{Q9Mab(%gZN_9nXS03`D% zB(R0<+YXsO0gKF_sd)^^URXVaE-Hh3N?^mOkp51JoIz2sG;JG2_ocZT5CO*+_DzVC zBXs#{hBN}wv%#ue>B=3D$xui#4buINW-Mb!%3%M^h>W%j>t34G7ScJ-knDtXQec&1 zh^Y4v6EZxb7}Axn`#Qu=Uxp$BadDnu8ilyoME6~Qjl&_&PZ^4%ba!7!y$DjSg~fWq zY6BVa(})B&WHFX*dk@wf3+e1cjJP4ABE;Vlu;DV;^gN{g1SCHnR_=<}+lNRQ2pMdK zbcQ0vjv$&s5M|#%)+Z5{(;?Bdh|7+U>jgws9&GUhq96qJ+>7XoVCW7Yeik$A+acfI z5Es`%T00r)SXl8qY`BaeDuE=nAgYcaTJ4bYd$20sEbM7VgxDar5?IB}Fxw#Iqln)1 zh?#YWqZyFw4#?*OY%`Y9qin_*uKnSRQUuS3*rK(uUzy^p|-^I?&2SUd&s&=GPx zhRFR6@wF1svIDkXi`cG3>`q4%3A=AV?9YIe?1-Zb#QZ))rI7u4$S@x95stVS2#ah- zY?VRM>k*$*5yz(yF{=?%r(xGLL}@Kz`T(M$E$n>(HQMfEL4T((8jEJHP{L;P+*%$-0Sq`@w=h^V!wyWdcKT@g9+5uJ9_ z)k;{ZBkVXG_O3={=E164P@7#*nY~dP@@ZBDyQjeR-@%$wQ486qmy?LqYY}BfQ9b(* z{l6hPV^MEw5eG$xzfq{3ZLs(W)Z})={I#foaMV*a;w>K0+Z**5i|Aa88Yn>}tVZk( zMZKLs4faNyZ95U2Aa|Xa-K{#B}2{;bU|xKX)@h$8aCJs85F{Pc0|HhNYpMQNY@{O z^}m2DcEZYSV8;h2b`e8qg^WBj>seT!4Q%rcEb|4!?xs8E!`4G!{|z*6FeLjn?0lBt zc0-EC=$=m!*d+5VPOciLejS~jLCG-vyg8NU8T|Fe*372@FtBC`t7kc=3(6}I>s66}d6oR3I+0P*@R;@|;DI2JM-f|%QgSRV{a zw+iTK?}=)OMTDP54LpblPlOD|B5oESCO?OS=fhgJ!Rm34>>kK+H{>6SNSlqSXoafT z14}MIB+N!UoP%ZFL7bjOw5~?1O@Q%rF7k4NaheEu!!zk2ASU?EJ9OL8Im_(^%S}&3-S>*oCxXfp~xhP zveL9A6dg))=OY4kGwe4aQufg03m8%hq!$FMhSQZRA(J3Taw4RAm}V?vNHSpmWr&Pm zhIKE^3W9X@G9J_|=!;%l(s3WjI`B(VTdwF}XzAm=w=Rbi_Dn@!mu zw=`HKkzo#ol;1-1-i(-8jyOt$WLH5xufrzkh|+_I>_morK4f};Azy*0TZCx23HIIz zJ1&4lTEgPv5f5RI;~qrr0mRqMh?ZMm`=yBOiHO|{MA1UneF0)W8CJ3)jwT`I_aQ1* zLG~*l!!X20IO3)SEV2Tzl?h4Tg7}<(INptjS%{e01G}apO4AV22M`s3u=iW2fw8c9 zDlC+RNC-rXvv0|2MTDh5`jdi~fT0dj5V@}*Y8S&2Zz2Li5uM`@tD%UyL$K>uL~{Tt zXea97W=K8|7JCylVS#0KiqQ*uWuo$y!iIe8k*qh=VlP zB^?oUBkJw|s;>niXCb1~g1TA>OErTXvtaM>sLT{tbs=iAIVv*{wIQElSFrmy*#01_ znTA?OLcP3&Sj|L~y@~4CkLW*$=v1h;C5VGm#9uh7XDKYcS0>7c`3%%R3)ItC#9Jt$ zHwg6@faqL|8c0VaEJExCqu$;?4cZWAixH)7pDA^r|IK z6~A0{u3}We4_Oc0kkexF%96l)9{*@j_f7|oUA}QrUZ;H{Mz8$fy-%0Vyz6t%!u557 zpL*e!$iw%?Ol|xAy~Ud+y?0INfby0}%lFzmmB;7q8yq)qF3Q;VV7}x2$HxI9Qnwbi=~|dF0B1S+InVqWWKcb?S)@GDQ)gv zHfDgdd)6z7ze?NZ^|-!`v_CgJJ1sFc&AYl~Tzi)sjb#{5sasY6V+_~(v{Qe!>){!q zxlH6K9~=X`DO`mtd-1-QtYESGb&gA!A@bl_R!&)=Ev;^NyRkH+D%;QZytuV(`iDuq zJE)))AMc2*eDtySxb~Ay-F!T=#jjh;`c=7OJXNe%X`2hbVTP-U>;^;+Ql7#Ro;;2=Gp;U? zN35QFx9%a4QP1ky>inXD7~Sy&%PxwTf_eG8T}fb+C#oW>~yVLG{CDSa#%uSwEk)3v{_(?90PkF?|qhYctWu01{hx)y#DSNH# zec5@`FCk1t#e1gkc!v#J_NcNVd*9gFsIppCkp04q9cL_?mlf$T>Dops*8EA8;UqVG zZyNz&gk-X5$`?X8b^=@#QU>e2`eru&SI#|D!+4jJZEp2q28AgU3wx?%BZQr;dj+m4 zDMbS1&#zT%;A1C}(u(6r<2?UDje*hnteUMTvea9@bF@dN)I%~QCuhB$VM9~XU6WvU z=)3XEzLDGI&v<1uA&P;H8|={^K4`DEdl$>~-t)c5DkYNC8JiFrt9$DWb#*?^cd0h} zGmCV}4F^ds-o_Bp^ir)ElgJbO zD!WbydXCUjDWqsmPtiloF7^+eN~g{l;!ob*jEw>1nSlMz21SNMcKI+Y{$r&D7iv#N zIFo`MoH6csh0Yi~NpY3aT{4eQnAlSm1L4W{ApS1h-^Ishl1^-pzbQ}B4PsB7V!uwl zZ1~GhNzd_Jj7!f*ZQPc!nxWHZOT=4cj#V`p!%j0KOSX=gI(Xy<$sfuDStj*E^=u-?Vso(k6rYm#xr{I zCekDA{w|$-4#TJd50lWtcF04|5V|aPvb{yyMuVD>jyBpwt~|fjNf$ljDiam;x9N3) zHj_6>uh+H=g`w*UGvkK&>gg)b8uio39vH1tkO6*m6%FZsSy?*Z)gV@)=-U#i52^kK1X%UZ->3YOLd8vm%VTTB3nbb>f45Gd%&|abGLjTm9 zX+usm9(m!YsM4hkAYD^fRs#k2S4YT7cI^1klk|^h&ZcSgFY=X}{PHWIVX}j(Q1)a= zcT2oi`^%WfUugw9NlS}lds1|AV!gWcMUU7CD|c#dOnJ07BiVOfJC7|2f8G0k*?w%; z(rW5ckEQf{{klf)GiMpwwOmC5?d&vTYc%^{*qH}KIOTI12tP5WWaE^#9onWiAqcS+ zAqc-5>owkN_g|%FuVHDSpYbC7l`}5cK4ip*i`mKL(H_Pddus}$W^4q+_NG`^){GZr z&tC;QJ^TpO1GQ*7KI}q%<<45!{n22Xj&>gnr4ssHpL+7m+aUrB3*6`TcPYp3H3Uh3TxJ^(b-Z3Z#r`Te1edT zlEw~}rqX$-rCu^$e%f3|>p_ENw9R|+vWGn*E7vcbzDHBCvu8*1ex$w+Cfj%+7kc-V zq|df|1!~)@v|WZO-QXL4`l>fR+9u>$c}+DVrDd{23=U@{8E2FOTchN!N)!RVSjxzX3=H<$vw# z36t7P8KawzW~l!?^tbFbn@84KP3vVS5``J4v`3pAG)gS_`zJE?yq3Gl`2>#o6QxtH z2upa0Q|);fyfni{j4G>&Jc^fc{fR}inRn-I{UOqHu{Tav59UBT?dC15H@1M#3Q=m-B$rtvrHXlQVcc>n${;7^j6ABxi&piKZ19aCwSEC=}az?>m5?!tNb+TvIJ(J^A= zwU#C$M9dL!c~sFADyo)=zP3i>(?r?F<6`#a$>Gr4^mJ*no7c!;khj$Vi z%)J*zcuc*(N!b~>k}|KRqQX@sz9~jX()euqq?9}@8-jSAP{97{BKwr=ObIiK%M`==o;Sn8z}UafQr*LZzqr< zQ5U!4oaLou^OPZcjjK|(5u036$s1t4)W&tqAfraAW{`2G%ac`=Bd@7=e5s8PU!rW@ z2`{bnU28Y^((9L)u53#c>(GC`J}ALiP{>ANW8QAik8eIdsEKYVleG`+)g)=XnmRN# zHd8#QMWxxiM4-PD%eUsVK(vj~XjU%u)nLX1YW8N3Fv`zd9plZeL9l=34WeA4=Mog$ zoS+;z>G<@rWjM^j6QYU+ng3Nn)KvedQHC-dQ@@4@yzHg7LAl>NQ@0N61gF7~eP`j2KN1D>S75yaNtbcry%^`nYylED3}haK^fssfZ9W6>b4)&QF7!=-BkSIN>~JL zJn?XdEV}uL3V2Vb(NkJPziZLaDzT=zvZAuQvWBhS+P5{0wOwuTFG?1KN$92T94sB{M0GOVhKN>yU6FV0JpPEUG~j|?S=j{-}JAUobN;619uT%FJw z)x1Dvc2vDl1mW^6gMkM7$b$iW);o|lPID5-F_UfMG$c7Y*Si$SGG~=63&KEpE3>MK zofV~5YX*}ymA=wVN7z;0ikdP6MdQ*j@T6MgpK3f`vFBmUdGjzO#$>*Vsx2+Zl45^P zwq_UNFLe&9tSVNzo#^W~RYMK+3S#c*4{ju1<;WWspR2w3p^_$Lt10QZ=}D}-Vad`K zy}};W@hkW)nBEOi8kU*2e8>V4aC`VX3LYs&zgPLa#LMe=>B*wqxL4=^N4(?c1MS0* zdY|RE#2z(1GwV&1RZ%uimXWLKJwnh(NsGePOZLrp^p#=xaIAdnQmo@Jr6tR)WY(Oc zy)&a!{;(s)R!%7n%%sRs}0Mfa!h24H@67Fs-4u2Wbb&{peN zEHpl1D>7)%Oq!<&BkiinXq^_~sGy^uQr($|?aDW7u}ratU9#ZgcO~uf#U&^DT_p0l z0xRP3vY|bh2}ChjI(=bgP;QO9>Z85F#?0RICS!l=w`R?>vqPTu>&S;`ixJERPrZSD z9c)jlWYtj217l55yUu3u7;~64s!QdIT~$s#WgrX6T9_{=v0hse{oBIXzWqJgNO>Qg zG#J-o-OkpXG;kXC0uWcij)0>ey!+pyBWeB)ye2`1lw~rE9;jMV3vz+KYGz^l;K9a4 zQD&~;t3~0MI)yiFHS%MkX~gm-l}`)7B^9NzI+|lF{P?kH(V$XOTT5A9<%Djkp!`I> z4^>Rnl-sM*8quq~k}MKLKJOak{eFSib-K*fAGD@tBgA~_2V=vhin7hQA{MPaGxSX# zy_3bpj8b8URP=T4n6q{74Ln=7IQndz_-%u9Hv@Ml;f*ToE)>hV#8sQ1K*B6h>Y|mmLFHyml1($jt63Z>T3cD+@tiJM`IfadO;4{V zDV1;P>6i9NEWybVZ4<56l@S8kuC2DyfNZS%d`E8L_|*Jt-T}`_Y2vnWr(2YTUa9;^ ziP_odnd1#RJw;QiMnw#RyBCjYgF>4jN$Wsm0V(x=1j5`&z(GFhCerE60Zw+SDm$Yx`o!25y6fFd6`8- zlon@Pi~RN8#3Nwsmc)vAJlfP(=k+IMt}xFjkff{+ZEZ=U)pEI~| zO8uJ%wH49PDw=om`1D4q8kd-no61XGHS*FnBSTC7;!idZm6VjIyY9M6b?MSY-FV}T z>ctmdR6Tn1P_?zSDmyz{U3~Gy>XT1CQJ;VQxvHwFQlX)ts-U1ijT$vdjTtjWU4Q-c z>dGsxRI664QfJPbQ5!aFPzMeiP!B%%pz7bB)7By*)vv$)s-A!TdG)~uA1EHOs=a&n zs+(`VSuI$wK)GBl^}`Q8sO8I-tGC{IOWk|#y=v~*= zbWrcT_nz$2Qk^?@R+A=8l0A2-kT0p0m6fUE$B(NQUU)(6+qX{@@&4~sS6u}i=c>mZ zdrZai)%JDk*2(^Ib^iQ$b-%f9i%CZcsgY_EdA`%u!E2{j~b*v(HpQLV{}6 zteKiRb*d^ZE>_EyEmJ{3L2A#QJ!;snVXAra=4=VGsGDxONv&MDQtjToTYdG_S1Lb0 zpDlI)s(0_+s-~t!-FDk;YUa$Ds#~{i>dP;`R9}4Yh04pzQ%8>;m3_wQ(4j->>Z`9- zCr_S~{rzg-z=5iD>(=VdJMUD32M<<{KmNGdwr!ib=%R~MSXh|q)vK5K&wu`-zW@Gv z_2!#zs*gVUNNwM~UH$UQFY41zKUHyYacb7AS?cY#-&RjP`K0R9sgp`iPgk$J@`{=~ zd9u3Wjyu$;Q>WC46DQQ>&6`ysrqIV9f2`{2>eRu52bII&P)nCCRl|o5SFgVMs&YD= zDkmpLUAS;Tz5Mdaszr+yYT?3#DlIKdm6n#OyYIeR9XobRjUPW=-FM%8YWno)@@|2e zIB}vHI&`RN*RGwKH*cQm)2EMmc<~{RBhX~Re${Phr0IKYn9vWR+n9NnY!+}>(uYR z|E^+UVpPYD9o3>mi&Xpe?bSmMJ*3vGS);ml@2&y^1J&)f->#~wtJR~AKB{)@+NCbP z{Bkv6!UVNs$r4pwUas1-X`_OJgH={mmdeb`Wc4ytZQZ(6wQSi^?ccv&b?w?!J^b*) zYR8Tp>bvj0LvVW3>eZ{&HP>9D4j(?OrcIlsZn@*#b{d!eVQK9=GiJ=lVSqzn=&N9s_vu7=pI|ry@DQC757YdM0g!#n55mm%F~|#G z*mDffhYa4YF!i-`^l=#PVuZv(h~pj@D~67)gQ#vqm<)vwRv{RYVd4}9Z!e7hZwTQV z2K_CVJr9Psh7MY*)~+24(LYQF?uMayLF}VxC5d0pPF_S@% zcjN}qQ4i3mGhw#Abks*MMsJvKD}yr!#=e|^+(@HYW=St+Aa8kt<0A(HnHIGZ5A=@9n;gxVDlC|l@U&m+ukg^0@#JiImQPJ=13 z5thG0X#Yd7yoeC}80NYX!PpK)7zfc_iZFWwMz|TlcP~P2F~q+b0y&C6cpPRI8d!-y z*#QB)%ixB=^gl6xCt%pA2%|uVbUO_HECZYh@dY82jzA~_5ggqRGPginZz32jflyjP zl(OG<7liyYg6$QAfR(|Qy{v5@G~Pj&%tP?lQ8afWq&`7;$-e$S5Dc{_ zwSx$|%Mc9bQ3Ty#{?8Eln-PdZV31`9`(T*-4Hzg6f%**0*&3lN?-NaffiFTB%lix8 z!QlA_{24IOWQ6MtD3V7J9Gwul&%uln5FE`>6zJvXFA@G%Bk1pkv2Q~u>_=Fvhq1p$ zkZ(X)9z%$ZM8Hi#p*@9gruonAw=h*JU>9u_CfG|j?ykgShqzmvQARyK*;w%xyyT+*C80uNM9hy zGSNzTNYmetKx@%vyODYm(BKEq@&#zS=4jHZkhtBiX`2}rT zgywz=ZM6;Ubtl^6RV4HPB;gJ;`CKH~AS(oj#CjL4)CoyA4GFso%ODcX8iXcFM03qT z138dxr?E!vLc^3I!TyT`T#wZ5h}L)tO<#xx{11}uYc$f!!ZS!&4_bC67RIk=xI2(` z8A$9UXt@(;@&v4vP$YFKR={IO>XvB0Q}UiKn&VqBoUj0Hz#=%0X6lDjd;&>*814Ba znqdtV%FS3owOADU&-=H;~!P@Cn@5{|h*h;0OKA#PAPKG82W=IM)w6B} zgo?HB5f<3^N4^9yH!HSamM6_DC$E0JPpMSc+q? zbWWnNqR{@gViA3bh0qR*>oc_T?^t&o(7cbL@&ARD_a4^8-B^~_V+p*51$r@-STUOY z4=lAgScvyx6((agCA^PC zG7l?fDHhOXdG{DA^L4DF$yhBDvDCVu!5_xrx(I9HN36YJSSIhFfh(};dSf-T#{yc2 zrI(N8^f6Z7S6F&AXw;2ZW#41L4a6eYiY3q$Eq*`N%oSKCm1ynxSa4xj&sA73DOjKP zV6m2A9jwOEY=)(AIof#$mdbTlESF(*zaC6AR#3thNhS)XTBD{*C1{8;iL!7VgtnSubHNJcs4I zKul*bmBic@Geyi1F(JjI5)(|O2V&}q87wB3m{wx8iD@b(vzVb`5{mgFW|o+uV&;fR zC}xV7p<=R&$sy*om@{I|$uwdogd^sig_wY1 zK8vX<=A{iH6;nq{V=>Rgyc085%sDYn#at7UdOian=C_!OVor#g6O&V>Rbryc)I!YL83-1c!ih;NQxKU-$&^pbUYRzDsV-9vnWl(oE>i%R zD$4Xqrj*AZT$$>~luM>KGF_3WmQ0~!Iw4alF>}RSl_{r~>td$M6h@{NV)Dv#Pt0a9 z(Pc_0Qvos0#f+C}p-dfR$|vTqOf_Z7B~uWYa>8DK1WJ)O0 z0+}Yr)JCRLGW8R)Tc#K?1s3yLrg}0p5))gdA~Ic)DU?hZWg08fYMEZi)Iz4jGG&q} zwM?&MYAPnWOsiyCCsS#e4#+fBrjIf$muZqr8D*L#(*c)Od{!+KtH^6@r*9ILqdmje@?DYx(Iao_vT z^sU?S#TDO2j=1#`_cwid)ZE$I+G77n+ux-()-rhR6Bpy;eG2)2Axjwzf@}Of^I{|| zFJMuSlsrt7*I7o(6Gh!q|6W3JDE3s6Z}Ss8qP)G)s=NVSN9U`UeE>qe$ctgxw`ROHz0=ma@GcgM)c2tMr+$3%Vk@Dti$ta6>IW5 zdhu>Sk{|)38u2Tvaqsjbk8X5 zfrr+EJx40`i?RK?l4|$NM(PFN- zsNZpZWl)4XW*Oa6|F)=mgxsyzHO~Io=hv%|2{pSVY$)^6sZ-a5!L7@ z&q(djhdz*+ZBYNFhEz9F<;liW{yRCD!ncUdeg>AaW!tz`FLLtc!;^6jy9c9Fd0-;0jZ>-{z4Nq4<>|1@1tP+FPKH#lVl+&{Hzj+>nd74j7-aoE>XonPtOWTf3% zI=Cp`En0--_1xsd>{R_Z5dze~hkd=TqG)N|!}8q)A`h~YQnTgz&h<*uW9JOk;wPqz z8>}ZGt>NQwz)blb8&BxuoiGpF7*$ro%Vr+)H9h~zSLeI+=LgyYYk5S&9a-bJ$$m|k z8kLxoi>l!{cBUhPXWgQS?0Q(eN>x*F+9w)~8!1Y5AIVb){SmZ$I8VMXmztB4m6O2p z8Tm#eo3v%?6g!f%&7az%^6SFbX9|1DV`4~51Q(yE)1pR2d8kH$JXDjtZFc#bIJGoi zKT~7#&ehG&Jy$nYfd5#|xw>*7VWTfQSGVJGAC^x!SC_)|S;7Spx4Jl(5xToU41&4-@jyBV7MJU5CWogTG!Hzx4j$ zl2^n0%=ks*F$<&>ovYhfaIUTvi2r2axw^jiC9K4S9-HaIY5eU88-^>8xPuMSNWA|& zreE@En4cN<0&x!jlefiXKGNtlQ#SvU9{Kj2&2K1<{qpyhAO2(MAGZd`FF*`TdMxJV#)I-vsS!xY~^p=F5MJ!$%M!Yi{ieR`%q2n9}jHU z`O&hqmhJEVeEZ!`9&Ddha7~Y0+3k;ibJuU9l3H{teQff;FZ;xoUEibYsY~3UagT1E zT-{>aRX5({e!1tCrR!I|-aT*f!r#a33~xVedj6haFYO%Hcj3aCo8Fj^op&Pe>31$( z7T+)6!!A3!wjB7DtIuuMR>xfK=(p_g2b1ESU;2H-#2;VTv$ENh2j2c)>9;qOB;T98 z|Ij5{e=mA!@<(x(C3TD6r+&;(PY!?Vs`H1}4{ovPy^rJPHNP}+(=KP+dwp(yxS+J# zCwH%!@Yy9F%%An?&$CBfZX0mX>k%FA{my#+(3|f^A70sE&E@-t<=lT_#gM%1(fh8* z9=ExmUEIKa1y|ni^;Ol@0Uxf+jULw}bpOwJo{spzWsac zeC*V%KfgJ*o9p$pyI$V9c4Fq3Iom#(t3Hmue(IiHu^m_5zx9TSjmLkk+x2SL@m7Ju zZav*%!_l#Yp9~u8*d9^(=%YW)?)}i*ZNF#yI(|WXciXtkG1I%>GyA*4zg-&i(z?aKVO)5e)8t$Ce7Nk?1syp+rR4Yb^8w;T(dCjK-kScKYA#$|0p$f_UIQQ zJ70a%TSFeat6ylmdUE#9wQrQ~ja{%NY)0^-gG=s_k3+Y`N{i!ym$TM3!j=^ zH}Qwr-M%yHh(lzMqWPb-=7}t?u<{Gwd|Mgx9;jQ;oR$67q!1` z(V11R1=@EH+VR_SBRx-6W^@_($DTzC&Yl|FI%`$kq9xy~|D$S+GiGStgSMeN{~z|= zJRHle>mOfR$WSs>s8ED7pfqY!qS8Pr4Mb=lQ-(?k6_qp(LL^igl~RdD&66QRXi$bq zN=hYZukSi9ba&tH`+dI0?>&y+@%-^VC!cHWHSfL8;c}hVY3-WV-ygkd5{vV4m-%@2 zNLyLejAc%5KFmB-KY8ejMANC=7S|U!Tqto(|5<)Fb<$C(T*sfO z6NUrdoE&t}wyxW27B6*>Po{{M6Q|8G71UFW;}=lb`*`1&`v-|hdr z|NI-@e7teRa~AsDxO>(f(29=OW{!kC+Z>h?w2!=F$$9 zlNPSMwXZf?SIgeYW@Wxbu6bdD+^6m9+d3I!jZf`1!g`X*`8Bs6=_zlzW8M2l`@woS zL4#|`oHI-Yp6w|8XjVs$oSG;{_A)Oc??U>t#g9+ zo4my?my>4n8};-0qI)l2IeYtmo+F;NYlng7He=;(>oT{Ru3cH>Jmf>++C2ZP@CC^i zkLg#fUOq{==3S*z{qxVW0`3_7*vqIE%NV8dIfqm-B5pM3DQ;ij8L{T7&*026=5Fn} zEFE@bMw;x2i65rosPR{pPrF_!-}9iX+OU=NZEZAbyKg&l#M0vO2Zx2zmiLpLtmG5Z z=j^D+j%w=fCQ6sym#!^pTs~yUd~XF0-MmhYiYfc98;(s&YBPov`8j>|%aVU%BeOR# zt9zB~Wf_+LVy52SP2Xl+yr$zY&3omj`)9v}ovT{+;C|Ph&JxO%<6bQ)?x~WLw&>uu zt&^?yE;oKU?0C{ut7!M(b#mbr0~c9a_uYQs@cmc!hn@Eyl^Sx(t90tTAVbBg@k28& z##Ek}@^wu5#_jX-6`JNQU3JyZwDwF{k88H(bC*^9*zsXewwqyW_?*iDR*}x_;xq%J z<<`0Psy8|2DQ&D!oYl$jSgNDh%kPc(vs4S~8rqkEiT&98kA3Vu=d@oa_3dLs)NECk z{ka)9eBt?X-Kvr|y!UoG8x=j|YUbl1=5wY8YsfG6j^ewv+%j(8HCXsy*VtP_^~v^& z>(9D)=?6(=hOA^Y-(IQQRJFux@2(x@th$`!8pD_I4@<<(?&g`VLUypFTh9G-o%u*9 zc69l}p=lvs4CV)^C%D#bl2~5h^t$-DQ&jGUb+6>#ZU7bI+)? z^GsfzQEQmksl2D5$4ujfLbGUV)!cns6^!2p*Ifzpo|bz1TiPQB-x8bHUDEmL)jh;J zn!gUe*Tp(#!I6ubjjzwq)y=7&C>EtEzr_D~k!xWx+iriwI!tCk;F;C8tPk9P<*`1; z8z;6q!Zdb1|8zKAe#*qPhs&`dTgo-eHzgu!)2b^kmQFkIYuh~8FR|s(eW%v;AAMqK zm3%w?@}^AJi{4X)RK{j|Yb4@pr!Q;L{kFPY_xV}gOD1_z_K385PLXdq$;sAf#q<+b zs#wp$+{upf`yEo7cWuin?uH@-ka z@w>dwvs$AUcYN0B8t$?iqx?p!Q)%d?OhZS#kU<-Fco~IXJu4M?Go2nZalN9Oxw((* zrQ6?1jXx-C`EjppkL%}iE))bz8hT+y?Kbt|hRG$hAMOp_u6V=sq;<$B_rvkNigPYj zb(2%sZy3IK#QTmf53U+LJUXRx=A0khlpCx3WV)S?>^Lbc_khXbO6T?o8n`vpwE>*oSKC2mW|Gd0Xh+ z%{eNwW0&_$O!3*8o3x-XJmLHjCUdphbPeeMDa(Yz{xS_tJ=(`^f7S13`jeucMfDSO z4*a{63nu}(^##b$YJX#6Xy;6ZMZ_t=U3GE+5PN*$T(e&km~m5bWEK`#eiHM@N7Zu|KuRtK*=ocndE zT4Li6bLYy&LY%V9C%XIotrq*dF5ld~`uT$sSJ%bl51$vQt)(D&^whZ;rEAtz{nTrR z>{A($;1~AV$HCDg&-#9>YxM0z$)A}A?pfE^*qyR}vGYZ@vf%i=+hotQ+&^i)KSKZ0 zBiwNOn~ZLA(m&(;{ieyE6G&}(d|9*!pOu70D;4CeI+4NusVW9>s$%^pJQ(w=Raxd{t(9Wr@fH2HKsrXJ3;oR z&7Zki{r}uQt@9-K3v=+#`D&dPK`)H?pYzi?4}xBTAk4>~Isfd7VDo3bKXpRC1--ES z=`YCt+ywo!z&WbejVOha@g~^AKDC9 zyz=daYY9PM{PIBAz&A;ad^QQ2tM>KrlN$i&M{qLGw zGD`Q!xq0Pj#LNCi&j&6aQc=kjJ$EMh&Q`eMuKr_pRiUr1?A*Rr6+b#yj9R#Dr1)a- z;T}bAgNF3q`?+7uy_qHR3X~GhJXC%E>8eKfh-1^f`j^mc?}CGpdgU>nKX!~fQZ_ia zL!SLZ<)^PKuC8(4_VAd^nBJ*v^C#V!V~ZEex^=j+@!_B~0Y|mIyuEWJ=-!*zab0D% z8;wp*Tib5mcmpr{f^Xc{<8jg2`ZnE`<#w#@|EXr@q}%NNy4hFrA_lYii=L(_MZK-8 zGzU!T`LN1dIjFQtM*ibVOCOK>pd6F^zI0@X%BDGCr*$Jc8$H$C{$aZ7=~K*bjKPr7 zO1bHACna}d!{x!3M)<4y-Fq=!$07Au{&gL%z`S#fS%Y@27c;&$uzvEkYlpW#yMSTW zpKsf;uln4sqjOFd=1yHC-T!%)iz!8~AA9w3)cEjbu2tAU6Rm`-?eSChrbgLa zbDLs5J5cZN{VN*EOd%hZ@u_oJG*YbR}$|5esBw{)!0@k-zLsjsD8k1xJ-ZKL$^rFM=1 zvpT=ZXs5ZVvr2CbYiHNHBYnjDpE^s07fUu8)VY1kQ`5;Se;n)Bb7I-<2=$@?(xnln zz8=3*@#=7Bhsd+5+ezBZ@~#e-sV%h?5B*u=e5vcp12XKm^E$?jI#wuH7d3F~xY+Jwoe^jRKP zZt{3gzw!3l`v-Pcxi7WUw@!Rt=ENxj+bwe6yVt92uY$M?>rl;^Ulw%TdouBvmYvJG z`PtgPl1Ft~68&UG*FhE~`y{S99lRI_H%82@sIgk8H=#;nQlNtNfm4SLY?|}aZOF$D z7bNS?&qG&gluQm^krnfOxF}p|ide7QuFrxuFSvcv_{QSy2_+rwwVwB_RD1Np{~Z7S zIsX6G9{*8BlK;8>{V%@$-On5LpZA}C!~2g9PK?t~IMU(s*21P`)u@|S%x^`A;*t?DZNaDT7qkK6c6*^p8dP$|A$*THec zS%a^oKl`+4tjY7!4LD-Iy5O{SnwFW3#qx%YRsCb29zU5NA2u>qQw{W}H! z)Eag!^1jJ(Ww&wadfkqU%qkd@Guy`(>q}*P+b37sN7n3G`D4b#U9tvykE--~d#thG zr-a(Vv%@+?ci!WWeR|P_4@-thy`A<;yyU1w(4+Q7Z6+O8)G8QpaM5zVvRxq`qTZAUx>em80bobpqF&y72J(L?6?Nh@hpb$M#$9 z5_a=~_J{(5Qr*4AL-(+k9$zE&_a6CcbH{_R&!i~#K6~3EI%CH9;IR!k@h01CJN622sF-y0w$+OVx*jv;Pn|#c zq3R^ZqaUvXTb_uj?{=s(V^vb;F#WnS0lGueQ-;^ZmP@|BX3*{Sfw^P-*YP1%zoL(M zMAkpZH@LQRnZ)qS4~uJN$t_&?wb!jsmF!i$VrHzJV0UK8$@;C2&llP_o-4Xzms_&Q zq1(I(TPrrFPka5epsein&O#*%lOaz+s`vW7^eyyv>ABz1C?QUEIQngHT;}lh*0x5O zh5`Evx12qhE|c=H<#UgdyN>~(^#Qc8lc&$0PR|m%I19zOg<2mXN)Ogindup#worbP zYCenFg1L3e^OenyTedu&_eaeLDn3ig6FbuLTGQ!4RME4NGlfb}@Q1Tdp@5#Jrt(^% zXElAsQ>~HTjE(1?rp-F%epLK&Dy{TM^>S^ff~}|;g~(SZG%vFMU8uunK0Uy>WZ}wY zsSQ2pY&ye+s=WyL|1c7ICz7=eL70HnwdbjTnj)FDT--#|i&mW`DGf=~pQ$vL z%l__3DjQ+daH4-5QqvrLe3nxU#=o1=kvxu$0;(bYw`nDD%Q*ig{yo}BRJK~^@g%cJ z|BUBGb(~sMe;nh16Tf9)vna}yow%`@_Q)+uxIewh0E{P`>J z)MY})s2Yo?*ymrwIlww#KByU_W+g3~EYML}BSzdQS9 ze<*^GcS7^Hf1CV0izuqFt4RF&>=G^{0zq z`yJL||Bu0m;{H(;sCj0EGrsk_6dkm`PX_wGOF_4+`Lq#+^w**ff~=*^7d`T~Y-w|< z=7ZCp%6$t5m|!zrROr09W*d3`Uqm8rQAb3{D6dd=NtFGMbBcycwN(750M*}5K$n)` ziq3*o=FgCSKNSBcl+-)|p?c6C(?T3QrB6%8QqYaIW0-=ZsW^H&J+EqCTrTBv3V{fGS$q4*Hx zX#Fmt_5Dw{_Wbn?MXR)Bz4&o`>(PebOE^c^O-LgABernC`mZs3ga<=gEvb5&0UgE* zTh^0Vwg46_^Yrujy}pZ+uYr^A`~`!I|L_rsn#~?r~rXCNb(i{;|330?{ z5{)AGQTqx}L!yU?o+7lP_IaX>r|a<}LHB$;ekC*!BrlLWjpl^tN8q}0 zqxKSN%Mi6CI+;NKgh#iKrG)#)Vq&7Uh!X!>Mrx4_>B&eWZocg-*tGaI6Z(I?<`_~U zTOow#{npMST+z z2s&X*q@&nEe_CTwUXTx#A1xR_uyAI|kEYkr^1%WRqeU`m)4!?SMg6-%QTN09l zYy}(g5#o`Id}$MGMLI!7KJ+Tc2_m^*OR|=DLX2QR-YjdeCG(d42tF-2nq`8msE?w& zf}!9;5XJawJfgk|w$ukvERhXak)OQq{f0QL!bza-Iv9x4FBuXQ8jRW^fglqnonS*$ zuoc=QBhqa0R}7JjD69}iu%Q?7BTJzzauM8`WvzaKL`W%$-I7m~o5Ug;QJ6pa_q#tr zUqlW<-$YGOzCZil+}D8)%np~kR@)7My zk&S4#2$L^5(kPzbE7}!;j38{Su}CAt6=DcBf?O20xh-f%3)zI6w25@h5rkOHIYmBX zC(1%bqFAkc65=-ZLnLp_`#V-kf11bCJYF(yoh!J|b|L7~~)CdFt?2o|h~5;TKJ2ec6t z>_xg@l9NbeBlraqBd{=9L`AU#n_v0NV(++#FHQCDL3(CM;jAfC}G2a6LG zmnK&!$|ptnh>8;hY2ryPPE=f)@<~xX`s^a z1jig?n*t zRDq}h$%!X_aq=e!yOu^oyG@u;V2Z*(2t4|5= zlbm#oK#!;%+0nE!0_o*RPdxb%NKd>lJuMd)8hsmrFkNj3!qm2* z9Hf`06JDNXN1pV=GvY~3I?{{YM%!qTALVXC5To2}2x1hw4doD{+@zN$y*%lOCqDw| ziKl*wHriYCOIK#0I|QPl9YL2`5@-^mNqSAv6Hg#Ydg7ba!c|`|6&LS8<^-bRL`hEu z1frxT`yRv-h?1UonpR=ziBfziiZ4uoaFjJ40OG>55{QyskMzP2i5DZDAg)RF1fmq5 z{Cf~jAWHFx*CcxaQPPur58??#Nl!f0t`cojw@S284Id4v%Ogj1hsvm)R2}2ZKP`l5 zlxdX7)ydTn(I6tn%IK$#)wK|&!8N!X{SXl~mYGq|@ZDTWQmaXmFxpsE;_KuDV7C1XETC{kv zo1444hliIJ-Rt)A_g}d(ARsU>C@7fL?G6nM3){3QJUk*|+qNA$cJAE0J2G+8RNZ)o`W^VcuV zofrSL{4~{)cXydjML2+@RDpef(*2*YDf8f=M#AE^v@O0!_rwTy2~vb11ZN+|zd9|{ zRDi!pyyyQ{nfqTkd>jo#=I$=Oi~qVk>Fh&8^YNVTymXu( z(HtHgn~HM%YH`}+TDV*|3F&_yKxdjIUYX$sGb@h4{--%CD?17Inp$GYD|y^9Z2_|^ z{S3DgmO;OgeGt>Tj>p6=#sL|JKujS8Ol{)X_hIUwHD(|;tGNn&!@jb_RnMt(j4~Q` zJ_MHv&Eef?2l!k&hz*?`PBqAFaAUkP%-gzxFAlr{X=g@aW3L&oZ>>IaX!=Gq*GBQ$ z(2<}yWIyyhav8UVo@MK1K7ow0dwJtAIm}C(0zHi*!D+G@eB57v1=n)fgnl-lJf;^L z^mr=VTep)R^Hjkz-TU+7IuCHlcVEbT9tEMnsccvuRk){X!Y(T{fl*~1^ULsqw6hl( zEGq>=`(5z0*AQ6U{voeFxg7dD*W@ z{MRrjuTW)$L*L`mlS44=O&%-{j>VAq8_{FU01!KR0o$%!z|BtEqpx^5EB?F#@1N9Q zOPDV9OEH5AgJD=yX2!FJn4vu1jGeRd@xJmJoL}I8(xBE=>uL~xH02t~xqe_7rIwKLC4(=S zeG+D<&SnW;c7vFIF7F;E4Vx4Dq1|{rSgOC3dp2#wn3vmOK;;pf&=iCAzU^>ddMR9QzIQX#$CAV~kfkkrID=i1#Y>tJq51u2Yd&A||C(zrp5buxdiwj3f z;gnPIJk)O-{=3fKYVYCL6NjQ%>UkcVa~Ay7R`WJ(3$d>MWSsHf7Cza~h^mIpm{D+! zE7&f9>A7)C!e;@9pBm1O5B9*~GzC=7JO(@WFXXcdPvNqF81}BuF$j{XWra1>kRnkE zMy?}J(liIfTs_dLS_zBXuKnAt8>!Mw+}R@^p!FHd1;20^7DivyARQwve zCsp(7QSI=&p##dbSA*cJAKdJ^39RpF#aFuyhr&-sSyH(v{JXA`+eSWzklBSec(Vi_ zr+gLV9;Py_tYR=2@R;d*I|PrrNbM{h%G?n7wq#jnLYcUfa*_{@GT#oL-4e(+>^_}i}_dBOX)h;X_=2p zA1%gFeo?U9%n-CHJmFgR>*!T@h5PJ_gw6|XVZg)&cztIZf0*EcIgXdv*TsrZ^-Uc+ z@1~`!Y>oNrwAq+rFo!QYI1Rh|Ho)0^v(Rk&8D{%Y4TouZGe)HvO;#G?zK_$vSn4{w z(S3(^dW6G^aVKH!(9ir?UJzbu`;A9xWk6QVA@H<&4Ef(fS#)SF#=Mb%(NlCF;D<9) zS8~LWbAPag(8+LXR5JIKv4)E^-aP-o4IJUz#I+^v8YB*z+89UcG>~c#iv9hvLxOGi>wQP>4I-kKdqU+V*=T>$>PFJb#hG_q^`|krk@E zWXU4fIwKGEgj~UbG4|XqtPHJh`$6pUXOQTk4Y!u{gvBQgbJ_C%Ru-A)m?@8Dk}_0G zdIw5L`>-*EDOh|m7p4UrhVPZ){K$nsoYVCoPciv~vb`GEQoRAV{Y)0$+ej63=8j=2 zhQGkC*K46$;bjaKQ-x{K2{8GY8>@aa5eFS!guWKiP+@O?>UUL9t8g}sI30o0Unk04=?&6b zIT)9Y;0qsEz?QbMcqyp>Gy;}G=;s}f)ASbS7M#az;*I=A(L^|;?#Yfzzl6$FJ=nap zYB)KjFU#886-~;fz($4dK+A~1)W*x`P~OCK>ZqXfsnrueA$%e&2!?Tf}jZ8^ZTF;xMp}K8UG*0&$a3U^_({ypNoN zE9TenPFxZWlR5#DsY?2oQEeb0p9Z?abJQ+AH|1Nf8pC4Z}^FGI9DscW{ujgz6W0n11RJ8y;7H?duBRL`VeK zE&dGG_Wy+5e(LbbDh`6)mcZ+-58z#wNc8J1fuH3Ju)DG(Z2H-UchUHY7YbK%y_I|5 z62+J;RZf*kfj`*r3hteH0K3dDg5t_v++Jb|lofuW^Wq%*-0+4ahUY`x4_|H@k^xFm zMtr2)c06GD1PTXOgS%e^U-a?;PHO7FqRpRS=k{~imShJ^J0A*-0|rx#-h7@iDh_l% z8MC;{+E}1BgK3`oj!FyFn2m}fnss~uyEg~mvx4{R?E`uwW9Tj@ZyOB*JMCf?>=jst z8S?4FV{wPYQRuO#7H+>Y0AD3>yyz;87ec0k_US6tW03`vCWOIP{W#FvH~*$($> zEqKvh3D7syX6uVmVCJcrsCH{V8ok}X7oE3;U%{tYRB8ZxZIpo;l~mZ|x*qgsrGozI z`!H~c4pd#81lxKagFfq&u}}NX_yJ?s0e5HgN>jnb&z8dAC+oneT>cwlEW?`>YN15@m-ryIe2Qgu4@FsgM*IKVb^ShdBmxrQ%8*l8^K9CB=Ph_?`ALEg$ z&v=5OEuMGo3>tpMVAao+wG(R#X4CGm+;1nKo#7T%_QV!^Umt*g1#4kUO*MPs|Ir0 z3b_8@92`D&1zhi#2u?{pAfxOL`}1G$__oEk?5id7Gg$?vZ_MNc9ZtiP$Jx9f#01{` z?8F=f@537GfVXDbpxvHOI2G>=)lNropRX-!PnwSNyWPef1|868MHoudT!$au*Wj)U zb?9H^hf9k~G12NUTBsi7F)OEH*O=M7?HUExHKsc=sQv|N0~BG&^gEb%vkJT$lHfHj zfy=oMFzNdXj#`I6Jo5_+I%^I+KX7!u^a&(}n)5{#6R=*e^EFfbT;tGt9#r#sMTk}@iFSp%^ni@>8>6`VbSY*5n`c>eG_KN~j&tzz52 zjgkX!>?J^%tS0K*S^&vOJ)yI0Tb6Xm101x&p!#zqG_F*F&)f^!7}zuET1m7Di{gd9 zl5uQc8GM~T5xT1P;mrLRrc%xOCT&Ylx!n&fCwoFz^+wdS?*{1>)i|E+PrO;!mQQ{Y z0Y?mmvE7dTDBtB3JN$SXdZZTOxpfJ!ZObdxzGMn6i|Wo6EPetrNFJCqM zCYG683&B7+@yC=)V+^-Jpli#EpdHJQ2CL(3D2 zN>wmlwvf9>_`};!UX{+DC{1ff@ zv4VrBTN94+?PlSX;Q6q+!(%wS_W+c4h{MNmD^Pz+Fu0_yVEf(IL5W-+{yq6I=6iJo zFNF%6Bj1zVda)FE_H>k{`lVm$Pk@@O4?gk@fU8y4;heK9EAHul(Np%r`)Un*oSKSz zuF;ZdjT_)wrzH@0-5tg9_TW*4V*m~w=qD}3`mfT%>zAFNM|nILP8-jk45)#=0bhBa zQ&MoU=R1rWa~uN9ig3;}FjVj)q1L4?~%m~qe_bzl$dH~0wBhYzz!3(~OvL{%{DU;vw69RSNV zTT$-gMUc%Nh!?J1V#hU4;Z@7$?EA4&P(9I~7fZi`2W!URg?WY$bmRgXW5hvzR1o7G zkI~)WdBmf#do74EFX;dg9Gqor)qe4 zD+qq2rLi3g{h=mG8}o}TP+3QXhf^K?eG%eN^~?!b$9&vXEHE#Gxj9qefaN`QSica>XuTN8;MI7AMZnJKC0O*)f&~N(gv-8%&_>D> z3)|#ifk!B0CHG-*Z_FTJ^j$u8*kU+8EQ9~3*a#28EVSH6Qwjko#w%FVE8+9^D=dK_%Oznj0WZGa6I{ps_l0tQ%&=Vohn zLePr_W)|d+>efX(bD|Pf9=XB&R84VA^$=drX+K1o*zvwyyWpiYNvJ7V3qi}ASgElX zIyoHXBd@H%r7x1%q}QjQ>h&EM?pK0M4a%%A^C4*52;-~FuHn&>+I;YWx$shdA>YIn zLhKw>s0|p6O_J}R?I2~e_B{m~dJe)4msUf$R|-0xdxiQR=o#9RuX%%FcR22}7bm{& zkABvg+%@?FWV`3E3h7I*VfaygcHTCqKeia(_YK7HPM5%M(*-EgC;~lcXHb)$&&Czc z0;x!4RC6ANrw=_~#{T1>ttRL7{3{;Wegju~cgE8z(_o`bE`&>}<7~sO&^<;DRX;_; zmPhVvyw6Bf)^p?G(Ra}P)hL757+RdsPe2pIQj|;ySF$=IyvAqcbQbt%t8R7x{|Yi*Zef0}S!2#`fI``8Wd^ zJQBU0@6)*rrm3^>ZolK$-f24KW&FZpef3#*ZXguWvDvO_KP=St;%#<~1>>Ss`0n^1 zT(D^*d@s?(HzhUj{b~?o?X-bIr{|$kzC9{TEC*Y?D0X`n!^dO4@=t9_aKx4ZbiCjS zS#RI-`7@&-*YFYd&!sibSG;5e-3~xv&@OCWVh1x+#_{pW)9|uH1haPJ=;U-2*V}}m zTZu1v1@wa@3Yu^ueiV*-q065Bng?f=Jic25t2+uB8zKZ{GT_8PnH7 z-h{7cux%NR8*>XxEJosm(39M5r9YaSvBGMzllUn33_PnJ0BZGg|Ng~fOq6oqd-ptn zIR1bQ3fc?@X(cdm_fGgizc1$OT!=MWGob&YuP8HdHaDEQ6<%1bMfJm@pr&1WG`d(1 z8Qu$_#N`)64L#2__v(Y{?VapH-4KWvCjoPlPT-Usm-txYM^Ks_!rXlnV9>T zMxhHFh(2G2vF$dn==Pf3DgFU(51O+*SMEV^ z%6#s(pb>hhZUdd5!T8!Gk>`Ytz)fbS z*cJaBIDA1V7PtS3jT>dahQEe;8mrl-0Y6b=-C7h2?~g@AXV}YjAF*lA5Dc6<4lULk zg5rinp~YxCi|mRrtIP zhwR<}*ZijNEq2+sZOk6%sJH;<_o-*DS0@9XA;k+lPUD1=N<9AN9sDq7J6u2Ejdx=< z@`^dnVUy8Bmh`*`b1zHalA6J&uMxtoV-55x9uDEQ8Ti_|2Cd8@aqAU%);>%Mf&vWD zYV>|M{$(?K(E0`e+phEcfSoYE7qVIFCxdvt1}JDu0o}eQxysgJoG&ej<j=|XWVrTB#H5nViBXL3fC%ELl7M3-<$0aB4viLxAwAW5zDPwlx$GT(u z{_R^(VII!=esjkg#&HmuaT=yKMf2I0pX0F!O|W~|YS11xfa{x`!DP#ssN?()bp~od zijpI|`uGd2tmvLj7v%3JxPer*4_F6n1RJN0JX>iaI48Nlw4BMfKKlc9Xww0^ANGL# z^JiesbWgU|RSOSCTEenf8}Pu5(aiDbh(-fnr@YNyZ1TfoaYbA#ztXh zTQ!^=J&!$G5rNy6Wn+_1BldV~0pX!RD3uz>W=(R04wduxr?Knk{j8ktT(KB;6d()9 z7>}jP2LV$$34QnOW)0IV;K942Y^&Q4`2ItO_5C~z)!!`w2kY_B`JN|O>C*ST7pCBi z>h3tMJc2)c>e;&1RA#YPX(i^tP+8 zpX@jIx@0-)Aa)R?9`{AX`x9|`pbyKZ)jg+6DInx5#4j2TPs^|E#bAZ$1l_Bx+7aW#*17}Sb4z4Oj@b$+t=ydW3_{(OY(wYz8 zaiAxfSR25(jG2(RJBK;<48^uy*C8ZxKias4VCbv+AXnpwdde=eUX~FbFlZwFOuvYB zF=cq}M;WW4&)yb82l3RA7h(A$3rMg1g(EtYz|FBkuv+st>sMLa${QLlj)Ir!3;5*Z1TYzx0!sH}aC6xW z*mXS`^DnpK?CvS-AL`BQ&(499=Qn`;8E@!4y9hTnx#Fs@>0IKgDOwxpvS(st;23fS zCY#KL5#3_ggX7O|-jvO-qk9@2RoTJ@?>!5fhfl*2T}Qf4=Z3=@EZ}670h6459_5!L z@J;zvc%MIbmA;n^S}y2HqbqGjWh6k^9^Y8q6pTFdjn@?rt-kZb8s>H^3LE9sFB)6qX)6!+&l*gzXa3F-h+@MjhzF zzqrrE7b;#%vG5JJ#isGBU4S>77US%QD|p6q4R=j91)~xTXgU=KnNzFS$6jTSUoFKp z(sL_^{ifr%EPLp;{vLeVXA4O~&3Js7KAIGb#pPLBQ2X3Uo^2q7r}AFXJ~NP zrgz{tGnC0sGlTW(4uG$nGxXiE8TOrs#W}s_f_YRw(3SVX;*E~@?6xXDGtdZL*oI+n zhvATY?I>RJ%|+KKPuSf8dLE-)0DtjdICl5A!+*N^LB%U^wqjUYe16@Adxds^%XjbL z<_&wHdhlr+(SHo=TY40q&0y%Yp&Sy_EX*=@&2@Q|H}+x$+UPySty zxPJjYB+2mf+L2JRLXj_6<%G%iZt#B9g>W_02%U~DhbtLc%%@{t{ISjgyd+m)p-~z? z{H_PgyS0%2s(6HLOztuL1^uA3rxqT~(gFLx>ui7TmoVQVl&^Sv6#{P6;+c%8$oq-0 z#v@n2CPWDycpt_e8kf06?0w8JpMcpa79b<9$nvZ#(KhEAuKD7IAGfT)J1eVkQ#%vX zezppCpB>IWwd)3^;K;Pqbsby(l~aZ=dvXlZw=9DC$am1$ z&;!%2RPNxq+s9w~3w&#vboeh> zSh@%BGH)B49k`agbG;44C!e8Lr3$7*+i~*;-_X!B6x(d9!p_gV`Fqa-IJROw|M^@D z`mT-ROYDpBv++4zFs?5y*69lMah7oKt^<7!(H=9#?uKK78en-sDo$6HrL`}wv7HAJ z@xohAm|WQr%?ECSE|xvu+eQN{)jf~%%I-0xt#W8~z77-pzk;;8D?66<9j6$4M4P1`uO=nm=k>-BJ2-K=PgCkd8$EcZ^Y{H6s$X)e~Z^+fb$YFihJhMWS zYiEm1QHSwYwigbcG9AkUJ>Z-}6Atw2&Xb;5V=vYPb&?KalG9N>V*7Z!c32VI8cpHW znEt@dDk3gs*gHxKr+FrWM@lmETGAIwi4R7(Oci^FPkP?OK6c zH6jUq7WLtwWs3bTAa@8^N-3GqC&HF6=~sDvUh6ife|d;H#@6!ESsMr0Fka zovxPQ-MbO^qq-;T8M+0shU6e$J03Mpe!_0g?tq8053aBL0Tu6FV$Y|!JoQX2Ug&#> zmpLwjO^(U<>ct5-)ZU2Yy?=;J;$8Xp_(*tr#h6cTu)~o>lUYj2S&Z**3M&nBVARoE zguJ^@meGezNU#R!)7wzV@;Y`iIl@$WM?+Uy&vi>?2)up&0IR_r2aP!Z!)@Q<%3phV z)4O$e+oKnoKG_`ab~53vzdmEfcG>vB^fJu3eV@HL5k!Bl+=n4m>w(R@0Pa`x;mf#F z%)KHS?w$!?TJaa~jNuHNQ*sm=_DzBN+yf+yd&AZRV{p`tPB7lp4&H{lF^{t&@JUDs z`DL66bH6dO;O}^U@*pN9D~(YOhoQLeB!*q1$MdrRE}wE^ z5n;}BfBg$PzwkJ`j~)P9C060^Jj8NI6o^}%sWHPsbjJTsa7 zng}S;_{b)Il81uNs!Yc`86I7-<3>*+knUt*nExS&-xY=)m$dNq7dlpUE{Cx9iA=n1 z177cUoi92!6<>+d_dN8Oc;|-GtlCo@%uEY-FNamI(q11^uV!Jtwff*^BZcpb3i-zX zcaSun&1#;kg8KG`eEDuUSk`qWPWqsVJ1XUQi1R=U+q;4%$M%QL7K^dWNDgpSCyY#w z#ADMgvas{Y(979{MRk`4%V+x;F z_<4yaq(miK!$@dR8kB^Lh6rhgkV+boq@rXtR3uTFN=8Jo>aQdr4P<1blqi)V={lbK zdEcAv&;7fv^E}4)I*)}Pm-nrAhr0MWuA%apoH|Qccl=Ju7V=Le6Ca_` zLYYn19Yy`FO?1ju0zIA4{AJcp{M_uu&u4t61mV1jYbnQA>A!5il7qNBYype9SxTtC0}m)#W-fg+n#-GRHws*Yhjg+p1csq*d_Ox+S!x;l z5kHAO(NHSn!B}HyK-XmFgC7_~skKun>|Zoj(z3vrFiU!x(FQx!>o_ninYf21o4dS@ z@|xbWR=fLnBe2q|&EObF;oNbK^=n`J{_S4Gt$!F7S;Dg2-t| zFq9RRqFV7CnN&JCQDCVN{_e4 z@E?avsikQf+bVq97k-?;SfdDSj=zlJwlCm+YpC#tK*#BGU?mfV(oOpcdMf0c7rs|w z_%H$2=2WAjYy&c0I6x=lJ?YF4_d{s*S5EL;O}-;u z;nJ9C{6Wz~w2h8Nc9D=b`=-T1YdmTFgY9fc7@RTpjbzY^-1-~h2hc_vQ z3qHu@SbAr~uvV{`#yBY9)1DOesxT8tXJ?Uib_zBB+{E_Ch>?caXlRXTL*0aC9+-8K zhBt4flVVDg=6H;K37t;$!o9kDq!fwj{b1V!JyrL>UE1g==uefkG{-6rh5ldp*w;Id z@_svC*8U&Z!^f_7Oe&8;`c;mxz1ul*aw^r6ns?v+vF}G~;h5a~LUfF6tF%=gTM9 z<97>2(u!2Eu$Q9OAE7XVaOT>wiSAel`P$xKsuVgA&qG#X*X35q9uR@cQMcK=?r(>=@PywxP9DX(apR3R>B$i0B;zsUc7XDZQF4D2|*2#=!IG^ASGzTTUtGR2e8Cu;Bam)QPVK`lpud5cP zLjOW?3VTG^ck+1E&^8zagmBGo`ZQ;!EEiq78-CZi$vXHkbsl>`n(cNMFB}&0Sqcz0-WKL*x~-qGz%Nv-7C< zwFsB6Iz)%A4#(22+whSJMD_e?*qVKy4ePpbSvR9j~Pnqu2I9Mp={N@JQ%3# zqb(;DD0oO3@BVp`^fiu?MP(R`h}eZ{zwbEL{RacW4x#DDd?p;p!m~RDwe);Mnpm+l z`GaYemaX97Cu5$luc+R-L($`A@~jPNwEJ2IlL!dH;EqS^u8}%QPi*3MyTWlyPL3~k zv?kxa1omUDpyNkBN9e;I99p=O#W(BF&o{e-?C@AD3|_|mWsSwO1LADM<0Aa?|H*DY zn@%dFjuho`lPX@D^PD(C>TP_;T?3Y3rK-jMF6_%5*JYv7{U8FybqvyNj+1y(~Uahl&A2e#BDasSsEl+crq>;w&cg>^u z%cA+2jHhsMJ%tkf9G9ejQ=51>wa0goo$gfp9KRXj8xzoI^%lv&=2W?%g8h7(i=@p_ zOzYYTXu4&x)%Dw{T5$*Y&ex_P<7Mc_`A2l|#aW72GMi4UokXRb1E^-sA+|B+HZ{d> zWe)cn>9F~I{_}MRoK!@4=0i2=A8ErPm-&-^^i;OMRSvh(Jo&y>Co->fLV%t%ERS}x z54$g6L}?g%rq@niziq_iHff~oJkGB8DbsnCblz^WmA2~_voQmWgL1TQ>eC1Q?&C^G%nV@1_Ftwyf{qlYdlNB^<0-D< z2K6f~p{O-}lu&k?2JG*}YPr26VSR!!HM-f}_^+t^S;F?-E1)^^duUWkGX)AB)^I)% z-B&~4c3gq713UTAVN;NnoI=l@Zld2~rZAT%9hz#QL%tPH&`Bwj_G#(`%rIcMg9@`IR;L`R-*pXaB>z8)o*{=2Y%a8M`<#w=GuTF!v8et3v zf3i>(X7z5E+Pj=O_Nr6+se|;sV=KkPJ5g=2KkrnFpcbWGKI7(Cy5-k|x=9yM+4qG- z7=*%Xp%}NDvy-F_tMekr(C?8YY|%Vdl6-29IZDF3l(>K`v@}JT))L;nD3Iho*3*Xw zTTJ*^4zYI!s8qR?Z9cY^^i(W_yr?|2C=TJzJ5N$-$^z1u^$}ik%pi98Gu4X}VfOiE zz;-K_n9)S?hb>v9$}bu_RT)l|L0A}@k3oN5P@ t~TZkvb>+dZ{%)D^p3#+tsNLH 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

        2fJJjipYWF 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�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 z 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

        P;9iB@UjiA9_NC|@+%YhI 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

        X}dAsAuV@%^Y<{siRu#qNAQoOBYAok7bPjMZG>J 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 (eMAqN-xJS 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

          - {% for student in students %} - {% block student %} -
        • {{ escape(student.name) }}
        • - {% end %} - {% end %} -
        - - - - ### bold.html - {% extends "base.html" %} - - {% block title %}A bolder title{% end %} - - {% block student %} -
      1. {{ escape(student.name) }}
      2. - {% end %} - -Unlike most other template systems, we do not put any restrictions on the -expressions you can include in your statements. ``if`` and ``for`` blocks get -translated exactly into Python, so you can do complex expressions like:: - - {% for student in [p for p in people if p.student and p.age > 23] %} -
      3. {{ escape(student.name) }}
      4. - {% end %} - -Translating directly to Python means you can apply functions to expressions -easily, like the ``escape()`` function in the examples above. You can pass -functions in to your template just like any other variable -(In a `.RequestHandler`, override `.RequestHandler.get_template_namespace`):: - - ### Python code - def add(x, y): - return x + y - template.execute(add=add) - - ### The template - {{ add(1, 2) }} - -We provide the functions `escape() <.xhtml_escape>`, `.url_escape()`, -`.json_encode()`, and `.squeeze()` to all templates by default. - -Typical applications do not create `Template` or `Loader` instances by -hand, but instead use the `~.RequestHandler.render` and -`~.RequestHandler.render_string` methods of -`tornado.web.RequestHandler`, which load templates automatically based -on the ``template_path`` `.Application` setting. - -Variable names beginning with ``_tt_`` are reserved by the template -system and should not be used by application code. - -Syntax Reference ----------------- - -Template expressions are surrounded by double curly braces: ``{{ ... }}``. -The contents may be any python expression, which will be escaped according -to the current autoescape setting and inserted into the output. Other -template directives use ``{% %}``. - -To comment out a section so that it is omitted from the output, surround it -with ``{# ... #}``. - -These tags may be escaped as ``{{!``, ``{%!``, and ``{#!`` -if you need to include a literal ``{{``, ``{%``, or ``{#`` in the output. - - -``{% apply *function* %}...{% end %}`` - Applies a function to the output of all template code between ``apply`` - and ``end``:: - - {% apply linkify %}{{name}} said: {{message}}{% end %} - - Note that as an implementation detail apply blocks are implemented - as nested functions and thus may interact strangely with variables - set via ``{% set %}``, or the use of ``{% break %}`` or ``{% continue %}`` - within loops. - -``{% autoescape *function* %}`` - Sets the autoescape mode for the current file. This does not affect - other files, even those referenced by ``{% include %}``. Note that - autoescaping can also be configured globally, at the `.Application` - or `Loader`.:: - - {% autoescape xhtml_escape %} - {% autoescape None %} - -``{% block *name* %}...{% end %}`` - Indicates a named, replaceable block for use with ``{% extends %}``. - Blocks in the parent template will be replaced with the contents of - the same-named block in a child template.:: - - - {% block title %}Default title{% end %} - - - {% extends "base.html" %} - {% block title %}My page title{% end %} - -``{% comment ... %}`` - A comment which will be removed from the template output. Note that - there is no ``{% end %}`` tag; the comment goes from the word ``comment`` - to the closing ``%}`` tag. - -``{% extends *filename* %}`` - Inherit from another template. Templates that use ``extends`` should - contain one or more ``block`` tags to replace content from the parent - template. Anything in the child template not contained in a ``block`` - tag will be ignored. For an example, see the ``{% block %}`` tag. - -``{% for *var* in *expr* %}...{% end %}`` - Same as the python ``for`` statement. ``{% break %}`` and - ``{% continue %}`` may be used inside the loop. - -``{% from *x* import *y* %}`` - Same as the python ``import`` statement. - -``{% if *condition* %}...{% elif *condition* %}...{% else %}...{% end %}`` - Conditional statement - outputs the first section whose condition is - true. (The ``elif`` and ``else`` sections are optional) - -``{% import *module* %}`` - Same as the python ``import`` statement. - -``{% include *filename* %}`` - Includes another template file. The included file can see all the local - variables as if it were copied directly to the point of the ``include`` - directive (the ``{% autoescape %}`` directive is an exception). - Alternately, ``{% module Template(filename, **kwargs) %}`` may be used - to include another template with an isolated namespace. - -``{% module *expr* %}`` - Renders a `~tornado.web.UIModule`. The output of the ``UIModule`` is - not escaped:: - - {% module Template("foo.html", arg=42) %} - - ``UIModules`` are a feature of the `tornado.web.RequestHandler` - class (and specifically its ``render`` method) and will not work - when the template system is used on its own in other contexts. - -``{% raw *expr* %}`` - Outputs the result of the given expression without autoescaping. - -``{% set *x* = *y* %}`` - Sets a local variable. - -``{% try %}...{% except %}...{% else %}...{% finally %}...{% end %}`` - Same as the python ``try`` statement. - -``{% while *condition* %}... {% end %}`` - Same as the python ``while`` statement. ``{% break %}`` and - ``{% continue %}`` may be used inside the loop. - -``{% whitespace *mode* %}`` - Sets the whitespace mode for the remainder of the current file - (or until the next ``{% whitespace %}`` directive). See - `filter_whitespace` for available options. New in Tornado 4.3. -""" - -import datetime -from io import StringIO -import linecache -import os.path -import posixpath -import re -import threading - -from tornado import escape -from tornado.log import app_log -from tornado.util import ObjectDict, exec_in, unicode_type - -from typing import Any, Union, Callable, List, Dict, Iterable, Optional, TextIO -import typing - -if typing.TYPE_CHECKING: - from typing import Tuple, ContextManager # noqa: F401 - -_DEFAULT_AUTOESCAPE = "xhtml_escape" - - -class _UnsetMarker: - pass - - -_UNSET = _UnsetMarker() - - -def filter_whitespace(mode: str, text: str) -> str: - """Transform whitespace in ``text`` according to ``mode``. - - Available modes are: - - * ``all``: Return all whitespace unmodified. - * ``single``: Collapse consecutive whitespace with a single whitespace - character, preserving newlines. - * ``oneline``: Collapse all runs of whitespace into a single space - character, removing all newlines in the process. - - .. versionadded:: 4.3 - """ - if mode == "all": - return text - elif mode == "single": - text = re.sub(r"([\t ]+)", " ", text) - text = re.sub(r"(\s*\n\s*)", "\n", text) - return text - elif mode == "oneline": - return re.sub(r"(\s+)", " ", text) - else: - raise Exception("invalid whitespace mode %s" % mode) - - -class Template(object): - """A compiled template. - - We compile into Python from the given template_string. You can generate - the template from variables with generate(). - """ - - # note that the constructor's signature is not extracted with - # autodoc because _UNSET looks like garbage. When changing - # this signature update website/sphinx/template.rst too. - def __init__( - self, - template_string: Union[str, bytes], - name: str = "", - loader: "BaseLoader" = None, - compress_whitespace: Union[bool, _UnsetMarker] = _UNSET, - autoescape: Union[str, _UnsetMarker] = _UNSET, - whitespace: str = None, - ) -> None: - """Construct a Template. - - :arg str template_string: the contents of the template file. - :arg str name: the filename from which the template was loaded - (used for error message). - :arg tornado.template.BaseLoader loader: the `~tornado.template.BaseLoader` responsible - for this template, used to resolve ``{% include %}`` and ``{% extend %}`` directives. - :arg bool compress_whitespace: Deprecated since Tornado 4.3. - Equivalent to ``whitespace="single"`` if true and - ``whitespace="all"`` if false. - :arg str autoescape: The name of a function in the template - namespace, or ``None`` to disable escaping by default. - :arg str whitespace: A string specifying treatment of whitespace; - see `filter_whitespace` for options. - - .. versionchanged:: 4.3 - Added ``whitespace`` parameter; deprecated ``compress_whitespace``. - """ - self.name = escape.native_str(name) - - if compress_whitespace is not _UNSET: - # Convert deprecated compress_whitespace (bool) to whitespace (str). - if whitespace is not None: - raise Exception("cannot set both whitespace and compress_whitespace") - whitespace = "single" if compress_whitespace else "all" - if whitespace is None: - if loader and loader.whitespace: - whitespace = loader.whitespace - else: - # Whitespace defaults by filename. - if name.endswith(".html") or name.endswith(".js"): - whitespace = "single" - else: - whitespace = "all" - # Validate the whitespace setting. - assert whitespace is not None - filter_whitespace(whitespace, "") - - if not isinstance(autoescape, _UnsetMarker): - self.autoescape = autoescape # type: Optional[str] - elif loader: - self.autoescape = loader.autoescape - else: - self.autoescape = _DEFAULT_AUTOESCAPE - - self.namespace = loader.namespace if loader else {} - reader = _TemplateReader(name, escape.native_str(template_string), whitespace) - self.file = _File(self, _parse(reader, self)) - self.code = self._generate_python(loader) - self.loader = loader - try: - # Under python2.5, the fake filename used here must match - # the module name used in __name__ below. - # The dont_inherit flag prevents template.py's future imports - # from being applied to the generated code. - self.compiled = compile( - escape.to_unicode(self.code), - "%s.generated.py" % self.name.replace(".", "_"), - "exec", - dont_inherit=True, - ) - except Exception: - formatted_code = _format_code(self.code).rstrip() - app_log.error("%s code:\n%s", self.name, formatted_code) - raise - - def generate(self, **kwargs: Any) -> bytes: - """Generate this template with the given arguments.""" - namespace = { - "escape": escape.xhtml_escape, - "xhtml_escape": escape.xhtml_escape, - "url_escape": escape.url_escape, - "json_encode": escape.json_encode, - "squeeze": escape.squeeze, - "linkify": escape.linkify, - "datetime": datetime, - "_tt_utf8": escape.utf8, # for internal use - "_tt_string_types": (unicode_type, bytes), - # __name__ and __loader__ allow the traceback mechanism to find - # the generated source code. - "__name__": self.name.replace(".", "_"), - "__loader__": ObjectDict(get_source=lambda name: self.code), - } - namespace.update(self.namespace) - namespace.update(kwargs) - exec_in(self.compiled, namespace) - execute = typing.cast(Callable[[], bytes], namespace["_tt_execute"]) - # Clear the traceback module's cache of source data now that - # we've generated a new template (mainly for this module's - # unittests, where different tests reuse the same name). - linecache.clearcache() - return execute() - - def _generate_python(self, loader: Optional["BaseLoader"]) -> str: - buffer = StringIO() - try: - # named_blocks maps from names to _NamedBlock objects - named_blocks = {} # type: Dict[str, _NamedBlock] - ancestors = self._get_ancestors(loader) - ancestors.reverse() - for ancestor in ancestors: - ancestor.find_named_blocks(loader, named_blocks) - writer = _CodeWriter(buffer, named_blocks, loader, ancestors[0].template) - ancestors[0].generate(writer) - return buffer.getvalue() - finally: - buffer.close() - - def _get_ancestors(self, loader: Optional["BaseLoader"]) -> List["_File"]: - ancestors = [self.file] - for chunk in self.file.body.chunks: - if isinstance(chunk, _ExtendsBlock): - if not loader: - raise ParseError( - "{% extends %} block found, but no " "template loader" - ) - template = loader.load(chunk.name, self.name) - ancestors.extend(template._get_ancestors(loader)) - return ancestors - - -class BaseLoader(object): - """Base class for template loaders. - - You must use a template loader to use template constructs like - ``{% extends %}`` and ``{% include %}``. The loader caches all - templates after they are loaded the first time. - """ - - def __init__( - self, - autoescape: str = _DEFAULT_AUTOESCAPE, - namespace: Dict[str, Any] = None, - whitespace: str = None, - ) -> None: - """Construct a template loader. - - :arg str autoescape: The name of a function in the template - namespace, such as "xhtml_escape", or ``None`` to disable - autoescaping by default. - :arg dict namespace: A dictionary to be added to the default template - namespace, or ``None``. - :arg str whitespace: A string specifying default behavior for - whitespace in templates; see `filter_whitespace` for options. - Default is "single" for files ending in ".html" and ".js" and - "all" for other files. - - .. versionchanged:: 4.3 - Added ``whitespace`` parameter. - """ - self.autoescape = autoescape - self.namespace = namespace or {} - self.whitespace = whitespace - self.templates = {} # type: Dict[str, Template] - # self.lock protects self.templates. It's a reentrant lock - # because templates may load other templates via `include` or - # `extends`. Note that thanks to the GIL this code would be safe - # even without the lock, but could lead to wasted work as multiple - # threads tried to compile the same template simultaneously. - self.lock = threading.RLock() - - def reset(self) -> None: - """Resets the cache of compiled templates.""" - with self.lock: - self.templates = {} - - def resolve_path(self, name: str, parent_path: str = None) -> str: - """Converts a possibly-relative path to absolute (used internally).""" - raise NotImplementedError() - - def load(self, name: str, parent_path: str = None) -> Template: - """Loads a template.""" - name = self.resolve_path(name, parent_path=parent_path) - with self.lock: - if name not in self.templates: - self.templates[name] = self._create_template(name) - return self.templates[name] - - def _create_template(self, name: str) -> Template: - raise NotImplementedError() - - -class Loader(BaseLoader): - """A template loader that loads from a single root directory. - """ - - def __init__(self, root_directory: str, **kwargs: Any) -> None: - super(Loader, self).__init__(**kwargs) - self.root = os.path.abspath(root_directory) - - def resolve_path(self, name: str, parent_path: str = None) -> str: - if ( - parent_path - and not parent_path.startswith("<") - and not parent_path.startswith("/") - and not name.startswith("/") - ): - current_path = os.path.join(self.root, parent_path) - file_dir = os.path.dirname(os.path.abspath(current_path)) - relative_path = os.path.abspath(os.path.join(file_dir, name)) - if relative_path.startswith(self.root): - name = relative_path[len(self.root) + 1 :] - return name - - def _create_template(self, name: str) -> Template: - path = os.path.join(self.root, name) - with open(path, "rb") as f: - template = Template(f.read(), name=name, loader=self) - return template - - -class DictLoader(BaseLoader): - """A template loader that loads from a dictionary.""" - - def __init__(self, dict: Dict[str, str], **kwargs: Any) -> None: - super(DictLoader, self).__init__(**kwargs) - self.dict = dict - - def resolve_path(self, name: str, parent_path: str = None) -> str: - if ( - parent_path - and not parent_path.startswith("<") - and not parent_path.startswith("/") - and not name.startswith("/") - ): - file_dir = posixpath.dirname(parent_path) - name = posixpath.normpath(posixpath.join(file_dir, name)) - return name - - def _create_template(self, name: str) -> Template: - return Template(self.dict[name], name=name, loader=self) - - -class _Node(object): - def each_child(self) -> Iterable["_Node"]: - return () - - def generate(self, writer: "_CodeWriter") -> None: - raise NotImplementedError() - - def find_named_blocks( - self, loader: Optional[BaseLoader], named_blocks: Dict[str, "_NamedBlock"] - ) -> None: - for child in self.each_child(): - child.find_named_blocks(loader, named_blocks) - - -class _File(_Node): - def __init__(self, template: Template, body: "_ChunkList") -> None: - self.template = template - self.body = body - self.line = 0 - - def generate(self, writer: "_CodeWriter") -> None: - writer.write_line("def _tt_execute():", self.line) - with writer.indent(): - writer.write_line("_tt_buffer = []", self.line) - writer.write_line("_tt_append = _tt_buffer.append", self.line) - self.body.generate(writer) - writer.write_line("return _tt_utf8('').join(_tt_buffer)", self.line) - - def each_child(self) -> Iterable["_Node"]: - return (self.body,) - - -class _ChunkList(_Node): - def __init__(self, chunks: List[_Node]) -> None: - self.chunks = chunks - - def generate(self, writer: "_CodeWriter") -> None: - for chunk in self.chunks: - chunk.generate(writer) - - def each_child(self) -> Iterable["_Node"]: - return self.chunks - - -class _NamedBlock(_Node): - def __init__(self, name: str, body: _Node, template: Template, line: int) -> None: - self.name = name - self.body = body - self.template = template - self.line = line - - def each_child(self) -> Iterable["_Node"]: - return (self.body,) - - def generate(self, writer: "_CodeWriter") -> None: - block = writer.named_blocks[self.name] - with writer.include(block.template, self.line): - block.body.generate(writer) - - def find_named_blocks( - self, loader: Optional[BaseLoader], named_blocks: Dict[str, "_NamedBlock"] - ) -> None: - named_blocks[self.name] = self - _Node.find_named_blocks(self, loader, named_blocks) - - -class _ExtendsBlock(_Node): - def __init__(self, name: str) -> None: - self.name = name - - -class _IncludeBlock(_Node): - def __init__(self, name: str, reader: "_TemplateReader", line: int) -> None: - self.name = name - self.template_name = reader.name - self.line = line - - def find_named_blocks( - self, loader: Optional[BaseLoader], named_blocks: Dict[str, _NamedBlock] - ) -> None: - assert loader is not None - included = loader.load(self.name, self.template_name) - included.file.find_named_blocks(loader, named_blocks) - - def generate(self, writer: "_CodeWriter") -> None: - assert writer.loader is not None - included = writer.loader.load(self.name, self.template_name) - with writer.include(included, self.line): - included.file.body.generate(writer) - - -class _ApplyBlock(_Node): - def __init__(self, method: str, line: int, body: _Node) -> None: - self.method = method - self.line = line - self.body = body - - def each_child(self) -> Iterable["_Node"]: - return (self.body,) - - def generate(self, writer: "_CodeWriter") -> None: - method_name = "_tt_apply%d" % writer.apply_counter - writer.apply_counter += 1 - writer.write_line("def %s():" % method_name, self.line) - with writer.indent(): - writer.write_line("_tt_buffer = []", self.line) - writer.write_line("_tt_append = _tt_buffer.append", self.line) - self.body.generate(writer) - writer.write_line("return _tt_utf8('').join(_tt_buffer)", self.line) - writer.write_line( - "_tt_append(_tt_utf8(%s(%s())))" % (self.method, method_name), self.line - ) - - -class _ControlBlock(_Node): - def __init__(self, statement: str, line: int, body: _Node) -> None: - self.statement = statement - self.line = line - self.body = body - - def each_child(self) -> Iterable[_Node]: - return (self.body,) - - def generate(self, writer: "_CodeWriter") -> None: - writer.write_line("%s:" % self.statement, self.line) - with writer.indent(): - self.body.generate(writer) - # Just in case the body was empty - writer.write_line("pass", self.line) - - -class _IntermediateControlBlock(_Node): - def __init__(self, statement: str, line: int) -> None: - self.statement = statement - self.line = line - - def generate(self, writer: "_CodeWriter") -> None: - # In case the previous block was empty - writer.write_line("pass", self.line) - writer.write_line("%s:" % self.statement, self.line, writer.indent_size() - 1) - - -class _Statement(_Node): - def __init__(self, statement: str, line: int) -> None: - self.statement = statement - self.line = line - - def generate(self, writer: "_CodeWriter") -> None: - writer.write_line(self.statement, self.line) - - -class _Expression(_Node): - def __init__(self, expression: str, line: int, raw: bool = False) -> None: - self.expression = expression - self.line = line - self.raw = raw - - def generate(self, writer: "_CodeWriter") -> None: - writer.write_line("_tt_tmp = %s" % self.expression, self.line) - writer.write_line( - "if isinstance(_tt_tmp, _tt_string_types):" " _tt_tmp = _tt_utf8(_tt_tmp)", - self.line, - ) - writer.write_line("else: _tt_tmp = _tt_utf8(str(_tt_tmp))", self.line) - if not self.raw and writer.current_template.autoescape is not None: - # In python3 functions like xhtml_escape return unicode, - # so we have to convert to utf8 again. - writer.write_line( - "_tt_tmp = _tt_utf8(%s(_tt_tmp))" % writer.current_template.autoescape, - self.line, - ) - writer.write_line("_tt_append(_tt_tmp)", self.line) - - -class _Module(_Expression): - def __init__(self, expression: str, line: int) -> None: - super(_Module, self).__init__("_tt_modules." + expression, line, raw=True) - - -class _Text(_Node): - def __init__(self, value: str, line: int, whitespace: str) -> None: - self.value = value - self.line = line - self.whitespace = whitespace - - def generate(self, writer: "_CodeWriter") -> None: - value = self.value - - # Compress whitespace if requested, with a crude heuristic to avoid - # altering preformatted whitespace. - if "
        " not in value:
        -            value = filter_whitespace(self.whitespace, value)
        -
        -        if value:
        -            writer.write_line("_tt_append(%r)" % escape.utf8(value), self.line)
        -
        -
        -class ParseError(Exception):
        -    """Raised for template syntax errors.
        -
        -    ``ParseError`` instances have ``filename`` and ``lineno`` attributes
        -    indicating the position of the error.
        -
        -    .. versionchanged:: 4.3
        -       Added ``filename`` and ``lineno`` attributes.
        -    """
        -
        -    def __init__(self, message: str, filename: str = None, lineno: int = 0) -> None:
        -        self.message = message
        -        # The names "filename" and "lineno" are chosen for consistency
        -        # with python SyntaxError.
        -        self.filename = filename
        -        self.lineno = lineno
        -
        -    def __str__(self) -> str:
        -        return "%s at %s:%d" % (self.message, self.filename, self.lineno)
        -
        -
        -class _CodeWriter(object):
        -    def __init__(
        -        self,
        -        file: TextIO,
        -        named_blocks: Dict[str, _NamedBlock],
        -        loader: Optional[BaseLoader],
        -        current_template: Template,
        -    ) -> None:
        -        self.file = file
        -        self.named_blocks = named_blocks
        -        self.loader = loader
        -        self.current_template = current_template
        -        self.apply_counter = 0
        -        self.include_stack = []  # type: List[Tuple[Template, int]]
        -        self._indent = 0
        -
        -    def indent_size(self) -> int:
        -        return self._indent
        -
        -    def indent(self) -> "ContextManager":
        -        class Indenter(object):
        -            def __enter__(_) -> "_CodeWriter":
        -                self._indent += 1
        -                return self
        -
        -            def __exit__(_, *args: Any) -> None:
        -                assert self._indent > 0
        -                self._indent -= 1
        -
        -        return Indenter()
        -
        -    def include(self, template: Template, line: int) -> "ContextManager":
        -        self.include_stack.append((self.current_template, line))
        -        self.current_template = template
        -
        -        class IncludeTemplate(object):
        -            def __enter__(_) -> "_CodeWriter":
        -                return self
        -
        -            def __exit__(_, *args: Any) -> None:
        -                self.current_template = self.include_stack.pop()[0]
        -
        -        return IncludeTemplate()
        -
        -    def write_line(self, line: str, line_number: int, indent: int = None) -> None:
        -        if indent is None:
        -            indent = self._indent
        -        line_comment = "  # %s:%d" % (self.current_template.name, line_number)
        -        if self.include_stack:
        -            ancestors = [
        -                "%s:%d" % (tmpl.name, lineno) for (tmpl, lineno) in self.include_stack
        -            ]
        -            line_comment += " (via %s)" % ", ".join(reversed(ancestors))
        -        print("    " * indent + line + line_comment, file=self.file)
        -
        -
        -class _TemplateReader(object):
        -    def __init__(self, name: str, text: str, whitespace: str) -> None:
        -        self.name = name
        -        self.text = text
        -        self.whitespace = whitespace
        -        self.line = 1
        -        self.pos = 0
        -
        -    def find(self, needle: str, start: int = 0, end: int = None) -> int:
        -        assert start >= 0, start
        -        pos = self.pos
        -        start += pos
        -        if end is None:
        -            index = self.text.find(needle, start)
        -        else:
        -            end += pos
        -            assert end >= start
        -            index = self.text.find(needle, start, end)
        -        if index != -1:
        -            index -= pos
        -        return index
        -
        -    def consume(self, count: int = None) -> str:
        -        if count is None:
        -            count = len(self.text) - self.pos
        -        newpos = self.pos + count
        -        self.line += self.text.count("\n", self.pos, newpos)
        -        s = self.text[self.pos : newpos]
        -        self.pos = newpos
        -        return s
        -
        -    def remaining(self) -> int:
        -        return len(self.text) - self.pos
        -
        -    def __len__(self) -> int:
        -        return self.remaining()
        -
        -    def __getitem__(self, key: Union[int, slice]) -> str:
        -        if isinstance(key, slice):
        -            size = len(self)
        -            start, stop, step = key.indices(size)
        -            if start is None:
        -                start = self.pos
        -            else:
        -                start += self.pos
        -            if stop is not None:
        -                stop += self.pos
        -            return self.text[slice(start, stop, step)]
        -        elif key < 0:
        -            return self.text[key]
        -        else:
        -            return self.text[self.pos + key]
        -
        -    def __str__(self) -> str:
        -        return self.text[self.pos :]
        -
        -    def raise_parse_error(self, msg: str) -> None:
        -        raise ParseError(msg, self.name, self.line)
        -
        -
        -def _format_code(code: str) -> str:
        -    lines = code.splitlines()
        -    format = "%%%dd  %%s\n" % len(repr(len(lines) + 1))
        -    return "".join([format % (i + 1, line) for (i, line) in enumerate(lines)])
        -
        -
        -def _parse(
        -    reader: _TemplateReader,
        -    template: Template,
        -    in_block: str = None,
        -    in_loop: str = None,
        -) -> _ChunkList:
        -    body = _ChunkList([])
        -    while True:
        -        # Find next template directive
        -        curly = 0
        -        while True:
        -            curly = reader.find("{", curly)
        -            if curly == -1 or curly + 1 == reader.remaining():
        -                # EOF
        -                if in_block:
        -                    reader.raise_parse_error(
        -                        "Missing {%% end %%} block for %s" % in_block
        -                    )
        -                body.chunks.append(
        -                    _Text(reader.consume(), reader.line, reader.whitespace)
        -                )
        -                return body
        -            # If the first curly brace is not the start of a special token,
        -            # start searching from the character after it
        -            if reader[curly + 1] not in ("{", "%", "#"):
        -                curly += 1
        -                continue
        -            # When there are more than 2 curlies in a row, use the
        -            # innermost ones.  This is useful when generating languages
        -            # like latex where curlies are also meaningful
        -            if (
        -                curly + 2 < reader.remaining()
        -                and reader[curly + 1] == "{"
        -                and reader[curly + 2] == "{"
        -            ):
        -                curly += 1
        -                continue
        -            break
        -
        -        # Append any text before the special token
        -        if curly > 0:
        -            cons = reader.consume(curly)
        -            body.chunks.append(_Text(cons, reader.line, reader.whitespace))
        -
        -        start_brace = reader.consume(2)
        -        line = reader.line
        -
        -        # Template directives may be escaped as "{{!" or "{%!".
        -        # In this case output the braces and consume the "!".
        -        # This is especially useful in conjunction with jquery templates,
        -        # which also use double braces.
        -        if reader.remaining() and reader[0] == "!":
        -            reader.consume(1)
        -            body.chunks.append(_Text(start_brace, line, reader.whitespace))
        -            continue
        -
        -        # Comment
        -        if start_brace == "{#":
        -            end = reader.find("#}")
        -            if end == -1:
        -                reader.raise_parse_error("Missing end comment #}")
        -            contents = reader.consume(end).strip()
        -            reader.consume(2)
        -            continue
        -
        -        # Expression
        -        if start_brace == "{{":
        -            end = reader.find("}}")
        -            if end == -1:
        -                reader.raise_parse_error("Missing end expression }}")
        -            contents = reader.consume(end).strip()
        -            reader.consume(2)
        -            if not contents:
        -                reader.raise_parse_error("Empty expression")
        -            body.chunks.append(_Expression(contents, line))
        -            continue
        -
        -        # Block
        -        assert start_brace == "{%", start_brace
        -        end = reader.find("%}")
        -        if end == -1:
        -            reader.raise_parse_error("Missing end block %}")
        -        contents = reader.consume(end).strip()
        -        reader.consume(2)
        -        if not contents:
        -            reader.raise_parse_error("Empty block tag ({% %})")
        -
        -        operator, space, suffix = contents.partition(" ")
        -        suffix = suffix.strip()
        -
        -        # Intermediate ("else", "elif", etc) blocks
        -        intermediate_blocks = {
        -            "else": set(["if", "for", "while", "try"]),
        -            "elif": set(["if"]),
        -            "except": set(["try"]),
        -            "finally": set(["try"]),
        -        }
        -        allowed_parents = intermediate_blocks.get(operator)
        -        if allowed_parents is not None:
        -            if not in_block:
        -                reader.raise_parse_error(
        -                    "%s outside %s block" % (operator, allowed_parents)
        -                )
        -            if in_block not in allowed_parents:
        -                reader.raise_parse_error(
        -                    "%s block cannot be attached to %s block" % (operator, in_block)
        -                )
        -            body.chunks.append(_IntermediateControlBlock(contents, line))
        -            continue
        -
        -        # End tag
        -        elif operator == "end":
        -            if not in_block:
        -                reader.raise_parse_error("Extra {% end %} block")
        -            return body
        -
        -        elif operator in (
        -            "extends",
        -            "include",
        -            "set",
        -            "import",
        -            "from",
        -            "comment",
        -            "autoescape",
        -            "whitespace",
        -            "raw",
        -            "module",
        -        ):
        -            if operator == "comment":
        -                continue
        -            if operator == "extends":
        -                suffix = suffix.strip('"').strip("'")
        -                if not suffix:
        -                    reader.raise_parse_error("extends missing file path")
        -                block = _ExtendsBlock(suffix)  # type: _Node
        -            elif operator in ("import", "from"):
        -                if not suffix:
        -                    reader.raise_parse_error("import missing statement")
        -                block = _Statement(contents, line)
        -            elif operator == "include":
        -                suffix = suffix.strip('"').strip("'")
        -                if not suffix:
        -                    reader.raise_parse_error("include missing file path")
        -                block = _IncludeBlock(suffix, reader, line)
        -            elif operator == "set":
        -                if not suffix:
        -                    reader.raise_parse_error("set missing statement")
        -                block = _Statement(suffix, line)
        -            elif operator == "autoescape":
        -                fn = suffix.strip()  # type: Optional[str]
        -                if fn == "None":
        -                    fn = None
        -                template.autoescape = fn
        -                continue
        -            elif operator == "whitespace":
        -                mode = suffix.strip()
        -                # Validate the selected mode
        -                filter_whitespace(mode, "")
        -                reader.whitespace = mode
        -                continue
        -            elif operator == "raw":
        -                block = _Expression(suffix, line, raw=True)
        -            elif operator == "module":
        -                block = _Module(suffix, line)
        -            body.chunks.append(block)
        -            continue
        -
        -        elif operator in ("apply", "block", "try", "if", "for", "while"):
        -            # parse inner body recursively
        -            if operator in ("for", "while"):
        -                block_body = _parse(reader, template, operator, operator)
        -            elif operator == "apply":
        -                # apply creates a nested function so syntactically it's not
        -                # in the loop.
        -                block_body = _parse(reader, template, operator, None)
        -            else:
        -                block_body = _parse(reader, template, operator, in_loop)
        -
        -            if operator == "apply":
        -                if not suffix:
        -                    reader.raise_parse_error("apply missing method name")
        -                block = _ApplyBlock(suffix, line, block_body)
        -            elif operator == "block":
        -                if not suffix:
        -                    reader.raise_parse_error("block missing name")
        -                block = _NamedBlock(suffix, block_body, template, line)
        -            else:
        -                block = _ControlBlock(contents, line, block_body)
        -            body.chunks.append(block)
        -            continue
        -
        -        elif operator in ("break", "continue"):
        -            if not in_loop:
        -                reader.raise_parse_error(
        -                    "%s outside %s block" % (operator, set(["for", "while"]))
        -                )
        -            body.chunks.append(_Statement(contents, line))
        -            continue
        -
        -        else:
        -            reader.raise_parse_error("unknown operator: %r" % operator)
        +#
        +# Copyright 2009 Facebook
        +#
        +# Licensed under the Apache License, Version 2.0 (the "License"); you may
        +# not use this file except in compliance with the License. You may obtain
        +# a copy of the License at
        +#
        +#     http://www.apache.org/licenses/LICENSE-2.0
        +#
        +# Unless required by applicable law or agreed to in writing, software
        +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
        +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
        +# License for the specific language governing permissions and limitations
        +# under the License.
        +
        +"""A simple template system that compiles templates to Python code.
        +
        +Basic usage looks like::
        +
        +    t = template.Template("{{ myvalue }}")
        +    print(t.generate(myvalue="XXX"))
        +
        +`Loader` is a class that loads templates from a root directory and caches
        +the compiled templates::
        +
        +    loader = template.Loader("/home/btaylor")
        +    print(loader.load("test.html").generate(myvalue="XXX"))
        +
        +We compile all templates to raw Python. Error-reporting is currently... uh,
        +interesting. Syntax for the templates::
        +
        +    ### base.html
        +    
        +      
        +        {% block title %}Default title{% end %}
        +      
        +      
        +        
          + {% for student in students %} + {% block student %} +
        • {{ escape(student.name) }}
        • + {% end %} + {% end %} +
        + + + + ### bold.html + {% extends "base.html" %} + + {% block title %}A bolder title{% end %} + + {% block student %} +
      5. {{ escape(student.name) }}
      6. + {% end %} + +Unlike most other template systems, we do not put any restrictions on the +expressions you can include in your statements. ``if`` and ``for`` blocks get +translated exactly into Python, so you can do complex expressions like:: + + {% for student in [p for p in people if p.student and p.age > 23] %} +
      7. {{ escape(student.name) }}
      8. + {% end %} + +Translating directly to Python means you can apply functions to expressions +easily, like the ``escape()`` function in the examples above. You can pass +functions in to your template just like any other variable +(In a `.RequestHandler`, override `.RequestHandler.get_template_namespace`):: + + ### Python code + def add(x, y): + return x + y + template.execute(add=add) + + ### The template + {{ add(1, 2) }} + +We provide the functions `escape() <.xhtml_escape>`, `.url_escape()`, +`.json_encode()`, and `.squeeze()` to all templates by default. + +Typical applications do not create `Template` or `Loader` instances by +hand, but instead use the `~.RequestHandler.render` and +`~.RequestHandler.render_string` methods of +`tornado.web.RequestHandler`, which load templates automatically based +on the ``template_path`` `.Application` setting. + +Variable names beginning with ``_tt_`` are reserved by the template +system and should not be used by application code. + +Syntax Reference +---------------- + +Template expressions are surrounded by double curly braces: ``{{ ... }}``. +The contents may be any python expression, which will be escaped according +to the current autoescape setting and inserted into the output. Other +template directives use ``{% %}``. + +To comment out a section so that it is omitted from the output, surround it +with ``{# ... #}``. + +These tags may be escaped as ``{{!``, ``{%!``, and ``{#!`` +if you need to include a literal ``{{``, ``{%``, or ``{#`` in the output. + + +``{% apply *function* %}...{% end %}`` + Applies a function to the output of all template code between ``apply`` + and ``end``:: + + {% apply linkify %}{{name}} said: {{message}}{% end %} + + Note that as an implementation detail apply blocks are implemented + as nested functions and thus may interact strangely with variables + set via ``{% set %}``, or the use of ``{% break %}`` or ``{% continue %}`` + within loops. + +``{% autoescape *function* %}`` + Sets the autoescape mode for the current file. This does not affect + other files, even those referenced by ``{% include %}``. Note that + autoescaping can also be configured globally, at the `.Application` + or `Loader`.:: + + {% autoescape xhtml_escape %} + {% autoescape None %} + +``{% block *name* %}...{% end %}`` + Indicates a named, replaceable block for use with ``{% extends %}``. + Blocks in the parent template will be replaced with the contents of + the same-named block in a child template.:: + + + {% block title %}Default title{% end %} + + + {% extends "base.html" %} + {% block title %}My page title{% end %} + +``{% comment ... %}`` + A comment which will be removed from the template output. Note that + there is no ``{% end %}`` tag; the comment goes from the word ``comment`` + to the closing ``%}`` tag. + +``{% extends *filename* %}`` + Inherit from another template. Templates that use ``extends`` should + contain one or more ``block`` tags to replace content from the parent + template. Anything in the child template not contained in a ``block`` + tag will be ignored. For an example, see the ``{% block %}`` tag. + +``{% for *var* in *expr* %}...{% end %}`` + Same as the python ``for`` statement. ``{% break %}`` and + ``{% continue %}`` may be used inside the loop. + +``{% from *x* import *y* %}`` + Same as the python ``import`` statement. + +``{% if *condition* %}...{% elif *condition* %}...{% else %}...{% end %}`` + Conditional statement - outputs the first section whose condition is + true. (The ``elif`` and ``else`` sections are optional) + +``{% import *module* %}`` + Same as the python ``import`` statement. + +``{% include *filename* %}`` + Includes another template file. The included file can see all the local + variables as if it were copied directly to the point of the ``include`` + directive (the ``{% autoescape %}`` directive is an exception). + Alternately, ``{% module Template(filename, **kwargs) %}`` may be used + to include another template with an isolated namespace. + +``{% module *expr* %}`` + Renders a `~tornado.web.UIModule`. The output of the ``UIModule`` is + not escaped:: + + {% module Template("foo.html", arg=42) %} + + ``UIModules`` are a feature of the `tornado.web.RequestHandler` + class (and specifically its ``render`` method) and will not work + when the template system is used on its own in other contexts. + +``{% raw *expr* %}`` + Outputs the result of the given expression without autoescaping. + +``{% set *x* = *y* %}`` + Sets a local variable. + +``{% try %}...{% except %}...{% else %}...{% finally %}...{% end %}`` + Same as the python ``try`` statement. + +``{% while *condition* %}... {% end %}`` + Same as the python ``while`` statement. ``{% break %}`` and + ``{% continue %}`` may be used inside the loop. + +``{% whitespace *mode* %}`` + Sets the whitespace mode for the remainder of the current file + (or until the next ``{% whitespace %}`` directive). See + `filter_whitespace` for available options. New in Tornado 4.3. +""" + +import datetime +from io import StringIO +import linecache +import os.path +import posixpath +import re +import threading + +from tornado import escape +from tornado.log import app_log +from tornado.util import ObjectDict, exec_in, unicode_type + +from typing import Any, Union, Callable, List, Dict, Iterable, Optional, TextIO +import typing + +if typing.TYPE_CHECKING: + from typing import Tuple, ContextManager # noqa: F401 + +_DEFAULT_AUTOESCAPE = "xhtml_escape" + + +class _UnsetMarker: + pass + + +_UNSET = _UnsetMarker() + + +def filter_whitespace(mode: str, text: str) -> str: + """Transform whitespace in ``text`` according to ``mode``. + + Available modes are: + + * ``all``: Return all whitespace unmodified. + * ``single``: Collapse consecutive whitespace with a single whitespace + character, preserving newlines. + * ``oneline``: Collapse all runs of whitespace into a single space + character, removing all newlines in the process. + + .. versionadded:: 4.3 + """ + if mode == "all": + return text + elif mode == "single": + text = re.sub(r"([\t ]+)", " ", text) + text = re.sub(r"(\s*\n\s*)", "\n", text) + return text + elif mode == "oneline": + return re.sub(r"(\s+)", " ", text) + else: + raise Exception("invalid whitespace mode %s" % mode) + + +class Template(object): + """A compiled template. + + We compile into Python from the given template_string. You can generate + the template from variables with generate(). + """ + + # note that the constructor's signature is not extracted with + # autodoc because _UNSET looks like garbage. When changing + # this signature update website/sphinx/template.rst too. + def __init__( + self, + template_string: Union[str, bytes], + name: str = "", + loader: "BaseLoader" = None, + compress_whitespace: Union[bool, _UnsetMarker] = _UNSET, + autoescape: Union[str, _UnsetMarker] = _UNSET, + whitespace: str = None, + ) -> None: + """Construct a Template. + + :arg str template_string: the contents of the template file. + :arg str name: the filename from which the template was loaded + (used for error message). + :arg tornado.template.BaseLoader loader: the `~tornado.template.BaseLoader` responsible + for this template, used to resolve ``{% include %}`` and ``{% extend %}`` directives. + :arg bool compress_whitespace: Deprecated since Tornado 4.3. + Equivalent to ``whitespace="single"`` if true and + ``whitespace="all"`` if false. + :arg str autoescape: The name of a function in the template + namespace, or ``None`` to disable escaping by default. + :arg str whitespace: A string specifying treatment of whitespace; + see `filter_whitespace` for options. + + .. versionchanged:: 4.3 + Added ``whitespace`` parameter; deprecated ``compress_whitespace``. + """ + self.name = escape.native_str(name) + + if compress_whitespace is not _UNSET: + # Convert deprecated compress_whitespace (bool) to whitespace (str). + if whitespace is not None: + raise Exception("cannot set both whitespace and compress_whitespace") + whitespace = "single" if compress_whitespace else "all" + if whitespace is None: + if loader and loader.whitespace: + whitespace = loader.whitespace + else: + # Whitespace defaults by filename. + if name.endswith(".html") or name.endswith(".js"): + whitespace = "single" + else: + whitespace = "all" + # Validate the whitespace setting. + assert whitespace is not None + filter_whitespace(whitespace, "") + + if not isinstance(autoescape, _UnsetMarker): + self.autoescape = autoescape # type: Optional[str] + elif loader: + self.autoescape = loader.autoescape + else: + self.autoescape = _DEFAULT_AUTOESCAPE + + self.namespace = loader.namespace if loader else {} + reader = _TemplateReader(name, escape.native_str(template_string), whitespace) + self.file = _File(self, _parse(reader, self)) + self.code = self._generate_python(loader) + self.loader = loader + try: + # Under python2.5, the fake filename used here must match + # the module name used in __name__ below. + # The dont_inherit flag prevents template.py's future imports + # from being applied to the generated code. + self.compiled = compile( + escape.to_unicode(self.code), + "%s.generated.py" % self.name.replace(".", "_"), + "exec", + dont_inherit=True, + ) + except Exception: + formatted_code = _format_code(self.code).rstrip() + app_log.error("%s code:\n%s", self.name, formatted_code) + raise + + def generate(self, **kwargs: Any) -> bytes: + """Generate this template with the given arguments.""" + namespace = { + "escape": escape.xhtml_escape, + "xhtml_escape": escape.xhtml_escape, + "url_escape": escape.url_escape, + "json_encode": escape.json_encode, + "squeeze": escape.squeeze, + "linkify": escape.linkify, + "datetime": datetime, + "_tt_utf8": escape.utf8, # for internal use + "_tt_string_types": (unicode_type, bytes), + # __name__ and __loader__ allow the traceback mechanism to find + # the generated source code. + "__name__": self.name.replace(".", "_"), + "__loader__": ObjectDict(get_source=lambda name: self.code), + } + namespace.update(self.namespace) + namespace.update(kwargs) + exec_in(self.compiled, namespace) + execute = typing.cast(Callable[[], bytes], namespace["_tt_execute"]) + # Clear the traceback module's cache of source data now that + # we've generated a new template (mainly for this module's + # unittests, where different tests reuse the same name). + linecache.clearcache() + return execute() + + def _generate_python(self, loader: Optional["BaseLoader"]) -> str: + buffer = StringIO() + try: + # named_blocks maps from names to _NamedBlock objects + named_blocks = {} # type: Dict[str, _NamedBlock] + ancestors = self._get_ancestors(loader) + ancestors.reverse() + for ancestor in ancestors: + ancestor.find_named_blocks(loader, named_blocks) + writer = _CodeWriter(buffer, named_blocks, loader, ancestors[0].template) + ancestors[0].generate(writer) + return buffer.getvalue() + finally: + buffer.close() + + def _get_ancestors(self, loader: Optional["BaseLoader"]) -> List["_File"]: + ancestors = [self.file] + for chunk in self.file.body.chunks: + if isinstance(chunk, _ExtendsBlock): + if not loader: + raise ParseError( + "{% extends %} block found, but no " "template loader" + ) + template = loader.load(chunk.name, self.name) + ancestors.extend(template._get_ancestors(loader)) + return ancestors + + +class BaseLoader(object): + """Base class for template loaders. + + You must use a template loader to use template constructs like + ``{% extends %}`` and ``{% include %}``. The loader caches all + templates after they are loaded the first time. + """ + + def __init__( + self, + autoescape: str = _DEFAULT_AUTOESCAPE, + namespace: Dict[str, Any] = None, + whitespace: str = None, + ) -> None: + """Construct a template loader. + + :arg str autoescape: The name of a function in the template + namespace, such as "xhtml_escape", or ``None`` to disable + autoescaping by default. + :arg dict namespace: A dictionary to be added to the default template + namespace, or ``None``. + :arg str whitespace: A string specifying default behavior for + whitespace in templates; see `filter_whitespace` for options. + Default is "single" for files ending in ".html" and ".js" and + "all" for other files. + + .. versionchanged:: 4.3 + Added ``whitespace`` parameter. + """ + self.autoescape = autoescape + self.namespace = namespace or {} + self.whitespace = whitespace + self.templates = {} # type: Dict[str, Template] + # self.lock protects self.templates. It's a reentrant lock + # because templates may load other templates via `include` or + # `extends`. Note that thanks to the GIL this code would be safe + # even without the lock, but could lead to wasted work as multiple + # threads tried to compile the same template simultaneously. + self.lock = threading.RLock() + + def reset(self) -> None: + """Resets the cache of compiled templates.""" + with self.lock: + self.templates = {} + + def resolve_path(self, name: str, parent_path: str = None) -> str: + """Converts a possibly-relative path to absolute (used internally).""" + raise NotImplementedError() + + def load(self, name: str, parent_path: str = None) -> Template: + """Loads a template.""" + name = self.resolve_path(name, parent_path=parent_path) + with self.lock: + if name not in self.templates: + self.templates[name] = self._create_template(name) + return self.templates[name] + + def _create_template(self, name: str) -> Template: + raise NotImplementedError() + + +class Loader(BaseLoader): + """A template loader that loads from a single root directory. + """ + + def __init__(self, root_directory: str, **kwargs: Any) -> None: + super(Loader, self).__init__(**kwargs) + self.root = os.path.abspath(root_directory) + + def resolve_path(self, name: str, parent_path: str = None) -> str: + if ( + parent_path + and not parent_path.startswith("<") + and not parent_path.startswith("/") + and not name.startswith("/") + ): + current_path = os.path.join(self.root, parent_path) + file_dir = os.path.dirname(os.path.abspath(current_path)) + relative_path = os.path.abspath(os.path.join(file_dir, name)) + if relative_path.startswith(self.root): + name = relative_path[len(self.root) + 1 :] + return name + + def _create_template(self, name: str) -> Template: + path = os.path.join(self.root, name) + with open(path, "rb") as f: + template = Template(f.read(), name=name, loader=self) + return template + + +class DictLoader(BaseLoader): + """A template loader that loads from a dictionary.""" + + def __init__(self, dict: Dict[str, str], **kwargs: Any) -> None: + super(DictLoader, self).__init__(**kwargs) + self.dict = dict + + def resolve_path(self, name: str, parent_path: str = None) -> str: + if ( + parent_path + and not parent_path.startswith("<") + and not parent_path.startswith("/") + and not name.startswith("/") + ): + file_dir = posixpath.dirname(parent_path) + name = posixpath.normpath(posixpath.join(file_dir, name)) + return name + + def _create_template(self, name: str) -> Template: + return Template(self.dict[name], name=name, loader=self) + + +class _Node(object): + def each_child(self) -> Iterable["_Node"]: + return () + + def generate(self, writer: "_CodeWriter") -> None: + raise NotImplementedError() + + def find_named_blocks( + self, loader: Optional[BaseLoader], named_blocks: Dict[str, "_NamedBlock"] + ) -> None: + for child in self.each_child(): + child.find_named_blocks(loader, named_blocks) + + +class _File(_Node): + def __init__(self, template: Template, body: "_ChunkList") -> None: + self.template = template + self.body = body + self.line = 0 + + def generate(self, writer: "_CodeWriter") -> None: + writer.write_line("def _tt_execute():", self.line) + with writer.indent(): + writer.write_line("_tt_buffer = []", self.line) + writer.write_line("_tt_append = _tt_buffer.append", self.line) + self.body.generate(writer) + writer.write_line("return _tt_utf8('').join(_tt_buffer)", self.line) + + def each_child(self) -> Iterable["_Node"]: + return (self.body,) + + +class _ChunkList(_Node): + def __init__(self, chunks: List[_Node]) -> None: + self.chunks = chunks + + def generate(self, writer: "_CodeWriter") -> None: + for chunk in self.chunks: + chunk.generate(writer) + + def each_child(self) -> Iterable["_Node"]: + return self.chunks + + +class _NamedBlock(_Node): + def __init__(self, name: str, body: _Node, template: Template, line: int) -> None: + self.name = name + self.body = body + self.template = template + self.line = line + + def each_child(self) -> Iterable["_Node"]: + return (self.body,) + + def generate(self, writer: "_CodeWriter") -> None: + block = writer.named_blocks[self.name] + with writer.include(block.template, self.line): + block.body.generate(writer) + + def find_named_blocks( + self, loader: Optional[BaseLoader], named_blocks: Dict[str, "_NamedBlock"] + ) -> None: + named_blocks[self.name] = self + _Node.find_named_blocks(self, loader, named_blocks) + + +class _ExtendsBlock(_Node): + def __init__(self, name: str) -> None: + self.name = name + + +class _IncludeBlock(_Node): + def __init__(self, name: str, reader: "_TemplateReader", line: int) -> None: + self.name = name + self.template_name = reader.name + self.line = line + + def find_named_blocks( + self, loader: Optional[BaseLoader], named_blocks: Dict[str, _NamedBlock] + ) -> None: + assert loader is not None + included = loader.load(self.name, self.template_name) + included.file.find_named_blocks(loader, named_blocks) + + def generate(self, writer: "_CodeWriter") -> None: + assert writer.loader is not None + included = writer.loader.load(self.name, self.template_name) + with writer.include(included, self.line): + included.file.body.generate(writer) + + +class _ApplyBlock(_Node): + def __init__(self, method: str, line: int, body: _Node) -> None: + self.method = method + self.line = line + self.body = body + + def each_child(self) -> Iterable["_Node"]: + return (self.body,) + + def generate(self, writer: "_CodeWriter") -> None: + method_name = "_tt_apply%d" % writer.apply_counter + writer.apply_counter += 1 + writer.write_line("def %s():" % method_name, self.line) + with writer.indent(): + writer.write_line("_tt_buffer = []", self.line) + writer.write_line("_tt_append = _tt_buffer.append", self.line) + self.body.generate(writer) + writer.write_line("return _tt_utf8('').join(_tt_buffer)", self.line) + writer.write_line( + "_tt_append(_tt_utf8(%s(%s())))" % (self.method, method_name), self.line + ) + + +class _ControlBlock(_Node): + def __init__(self, statement: str, line: int, body: _Node) -> None: + self.statement = statement + self.line = line + self.body = body + + def each_child(self) -> Iterable[_Node]: + return (self.body,) + + def generate(self, writer: "_CodeWriter") -> None: + writer.write_line("%s:" % self.statement, self.line) + with writer.indent(): + self.body.generate(writer) + # Just in case the body was empty + writer.write_line("pass", self.line) + + +class _IntermediateControlBlock(_Node): + def __init__(self, statement: str, line: int) -> None: + self.statement = statement + self.line = line + + def generate(self, writer: "_CodeWriter") -> None: + # In case the previous block was empty + writer.write_line("pass", self.line) + writer.write_line("%s:" % self.statement, self.line, writer.indent_size() - 1) + + +class _Statement(_Node): + def __init__(self, statement: str, line: int) -> None: + self.statement = statement + self.line = line + + def generate(self, writer: "_CodeWriter") -> None: + writer.write_line(self.statement, self.line) + + +class _Expression(_Node): + def __init__(self, expression: str, line: int, raw: bool = False) -> None: + self.expression = expression + self.line = line + self.raw = raw + + def generate(self, writer: "_CodeWriter") -> None: + writer.write_line("_tt_tmp = %s" % self.expression, self.line) + writer.write_line( + "if isinstance(_tt_tmp, _tt_string_types):" " _tt_tmp = _tt_utf8(_tt_tmp)", + self.line, + ) + writer.write_line("else: _tt_tmp = _tt_utf8(str(_tt_tmp))", self.line) + if not self.raw and writer.current_template.autoescape is not None: + # In python3 functions like xhtml_escape return unicode, + # so we have to convert to utf8 again. + writer.write_line( + "_tt_tmp = _tt_utf8(%s(_tt_tmp))" % writer.current_template.autoescape, + self.line, + ) + writer.write_line("_tt_append(_tt_tmp)", self.line) + + +class _Module(_Expression): + def __init__(self, expression: str, line: int) -> None: + super(_Module, self).__init__("_tt_modules." + expression, line, raw=True) + + +class _Text(_Node): + def __init__(self, value: str, line: int, whitespace: str) -> None: + self.value = value + self.line = line + self.whitespace = whitespace + + def generate(self, writer: "_CodeWriter") -> None: + value = self.value + + # Compress whitespace if requested, with a crude heuristic to avoid + # altering preformatted whitespace. + if "
        " not in value:
        +            value = filter_whitespace(self.whitespace, value)
        +
        +        if value:
        +            writer.write_line("_tt_append(%r)" % escape.utf8(value), self.line)
        +
        +
        +class ParseError(Exception):
        +    """Raised for template syntax errors.
        +
        +    ``ParseError`` instances have ``filename`` and ``lineno`` attributes
        +    indicating the position of the error.
        +
        +    .. versionchanged:: 4.3
        +       Added ``filename`` and ``lineno`` attributes.
        +    """
        +
        +    def __init__(self, message: str, filename: str = None, lineno: int = 0) -> None:
        +        self.message = message
        +        # The names "filename" and "lineno" are chosen for consistency
        +        # with python SyntaxError.
        +        self.filename = filename
        +        self.lineno = lineno
        +
        +    def __str__(self) -> str:
        +        return "%s at %s:%d" % (self.message, self.filename, self.lineno)
        +
        +
        +class _CodeWriter(object):
        +    def __init__(
        +        self,
        +        file: TextIO,
        +        named_blocks: Dict[str, _NamedBlock],
        +        loader: Optional[BaseLoader],
        +        current_template: Template,
        +    ) -> None:
        +        self.file = file
        +        self.named_blocks = named_blocks
        +        self.loader = loader
        +        self.current_template = current_template
        +        self.apply_counter = 0
        +        self.include_stack = []  # type: List[Tuple[Template, int]]
        +        self._indent = 0
        +
        +    def indent_size(self) -> int:
        +        return self._indent
        +
        +    def indent(self) -> "ContextManager":
        +        class Indenter(object):
        +            def __enter__(_) -> "_CodeWriter":
        +                self._indent += 1
        +                return self
        +
        +            def __exit__(_, *args: Any) -> None:
        +                assert self._indent > 0
        +                self._indent -= 1
        +
        +        return Indenter()
        +
        +    def include(self, template: Template, line: int) -> "ContextManager":
        +        self.include_stack.append((self.current_template, line))
        +        self.current_template = template
        +
        +        class IncludeTemplate(object):
        +            def __enter__(_) -> "_CodeWriter":
        +                return self
        +
        +            def __exit__(_, *args: Any) -> None:
        +                self.current_template = self.include_stack.pop()[0]
        +
        +        return IncludeTemplate()
        +
        +    def write_line(self, line: str, line_number: int, indent: int = None) -> None:
        +        if indent is None:
        +            indent = self._indent
        +        line_comment = "  # %s:%d" % (self.current_template.name, line_number)
        +        if self.include_stack:
        +            ancestors = [
        +                "%s:%d" % (tmpl.name, lineno) for (tmpl, lineno) in self.include_stack
        +            ]
        +            line_comment += " (via %s)" % ", ".join(reversed(ancestors))
        +        print("    " * indent + line + line_comment, file=self.file)
        +
        +
        +class _TemplateReader(object):
        +    def __init__(self, name: str, text: str, whitespace: str) -> None:
        +        self.name = name
        +        self.text = text
        +        self.whitespace = whitespace
        +        self.line = 1
        +        self.pos = 0
        +
        +    def find(self, needle: str, start: int = 0, end: int = None) -> int:
        +        assert start >= 0, start
        +        pos = self.pos
        +        start += pos
        +        if end is None:
        +            index = self.text.find(needle, start)
        +        else:
        +            end += pos
        +            assert end >= start
        +            index = self.text.find(needle, start, end)
        +        if index != -1:
        +            index -= pos
        +        return index
        +
        +    def consume(self, count: int = None) -> str:
        +        if count is None:
        +            count = len(self.text) - self.pos
        +        newpos = self.pos + count
        +        self.line += self.text.count("\n", self.pos, newpos)
        +        s = self.text[self.pos : newpos]
        +        self.pos = newpos
        +        return s
        +
        +    def remaining(self) -> int:
        +        return len(self.text) - self.pos
        +
        +    def __len__(self) -> int:
        +        return self.remaining()
        +
        +    def __getitem__(self, key: Union[int, slice]) -> str:
        +        if isinstance(key, slice):
        +            size = len(self)
        +            start, stop, step = key.indices(size)
        +            if start is None:
        +                start = self.pos
        +            else:
        +                start += self.pos
        +            if stop is not None:
        +                stop += self.pos
        +            return self.text[slice(start, stop, step)]
        +        elif key < 0:
        +            return self.text[key]
        +        else:
        +            return self.text[self.pos + key]
        +
        +    def __str__(self) -> str:
        +        return self.text[self.pos :]
        +
        +    def raise_parse_error(self, msg: str) -> None:
        +        raise ParseError(msg, self.name, self.line)
        +
        +
        +def _format_code(code: str) -> str:
        +    lines = code.splitlines()
        +    format = "%%%dd  %%s\n" % len(repr(len(lines) + 1))
        +    return "".join([format % (i + 1, line) for (i, line) in enumerate(lines)])
        +
        +
        +def _parse(
        +    reader: _TemplateReader,
        +    template: Template,
        +    in_block: str = None,
        +    in_loop: str = None,
        +) -> _ChunkList:
        +    body = _ChunkList([])
        +    while True:
        +        # Find next template directive
        +        curly = 0
        +        while True:
        +            curly = reader.find("{", curly)
        +            if curly == -1 or curly + 1 == reader.remaining():
        +                # EOF
        +                if in_block:
        +                    reader.raise_parse_error(
        +                        "Missing {%% end %%} block for %s" % in_block
        +                    )
        +                body.chunks.append(
        +                    _Text(reader.consume(), reader.line, reader.whitespace)
        +                )
        +                return body
        +            # If the first curly brace is not the start of a special token,
        +            # start searching from the character after it
        +            if reader[curly + 1] not in ("{", "%", "#"):
        +                curly += 1
        +                continue
        +            # When there are more than 2 curlies in a row, use the
        +            # innermost ones.  This is useful when generating languages
        +            # like latex where curlies are also meaningful
        +            if (
        +                curly + 2 < reader.remaining()
        +                and reader[curly + 1] == "{"
        +                and reader[curly + 2] == "{"
        +            ):
        +                curly += 1
        +                continue
        +            break
        +
        +        # Append any text before the special token
        +        if curly > 0:
        +            cons = reader.consume(curly)
        +            body.chunks.append(_Text(cons, reader.line, reader.whitespace))
        +
        +        start_brace = reader.consume(2)
        +        line = reader.line
        +
        +        # Template directives may be escaped as "{{!" or "{%!".
        +        # In this case output the braces and consume the "!".
        +        # This is especially useful in conjunction with jquery templates,
        +        # which also use double braces.
        +        if reader.remaining() and reader[0] == "!":
        +            reader.consume(1)
        +            body.chunks.append(_Text(start_brace, line, reader.whitespace))
        +            continue
        +
        +        # Comment
        +        if start_brace == "{#":
        +            end = reader.find("#}")
        +            if end == -1:
        +                reader.raise_parse_error("Missing end comment #}")
        +            contents = reader.consume(end).strip()
        +            reader.consume(2)
        +            continue
        +
        +        # Expression
        +        if start_brace == "{{":
        +            end = reader.find("}}")
        +            if end == -1:
        +                reader.raise_parse_error("Missing end expression }}")
        +            contents = reader.consume(end).strip()
        +            reader.consume(2)
        +            if not contents:
        +                reader.raise_parse_error("Empty expression")
        +            body.chunks.append(_Expression(contents, line))
        +            continue
        +
        +        # Block
        +        assert start_brace == "{%", start_brace
        +        end = reader.find("%}")
        +        if end == -1:
        +            reader.raise_parse_error("Missing end block %}")
        +        contents = reader.consume(end).strip()
        +        reader.consume(2)
        +        if not contents:
        +            reader.raise_parse_error("Empty block tag ({% %})")
        +
        +        operator, space, suffix = contents.partition(" ")
        +        suffix = suffix.strip()
        +
        +        # Intermediate ("else", "elif", etc) blocks
        +        intermediate_blocks = {
        +            "else": set(["if", "for", "while", "try"]),
        +            "elif": set(["if"]),
        +            "except": set(["try"]),
        +            "finally": set(["try"]),
        +        }
        +        allowed_parents = intermediate_blocks.get(operator)
        +        if allowed_parents is not None:
        +            if not in_block:
        +                reader.raise_parse_error(
        +                    "%s outside %s block" % (operator, allowed_parents)
        +                )
        +            if in_block not in allowed_parents:
        +                reader.raise_parse_error(
        +                    "%s block cannot be attached to %s block" % (operator, in_block)
        +                )
        +            body.chunks.append(_IntermediateControlBlock(contents, line))
        +            continue
        +
        +        # End tag
        +        elif operator == "end":
        +            if not in_block:
        +                reader.raise_parse_error("Extra {% end %} block")
        +            return body
        +
        +        elif operator in (
        +            "extends",
        +            "include",
        +            "set",
        +            "import",
        +            "from",
        +            "comment",
        +            "autoescape",
        +            "whitespace",
        +            "raw",
        +            "module",
        +        ):
        +            if operator == "comment":
        +                continue
        +            if operator == "extends":
        +                suffix = suffix.strip('"').strip("'")
        +                if not suffix:
        +                    reader.raise_parse_error("extends missing file path")
        +                block = _ExtendsBlock(suffix)  # type: _Node
        +            elif operator in ("import", "from"):
        +                if not suffix:
        +                    reader.raise_parse_error("import missing statement")
        +                block = _Statement(contents, line)
        +            elif operator == "include":
        +                suffix = suffix.strip('"').strip("'")
        +                if not suffix:
        +                    reader.raise_parse_error("include missing file path")
        +                block = _IncludeBlock(suffix, reader, line)
        +            elif operator == "set":
        +                if not suffix:
        +                    reader.raise_parse_error("set missing statement")
        +                block = _Statement(suffix, line)
        +            elif operator == "autoescape":
        +                fn = suffix.strip()  # type: Optional[str]
        +                if fn == "None":
        +                    fn = None
        +                template.autoescape = fn
        +                continue
        +            elif operator == "whitespace":
        +                mode = suffix.strip()
        +                # Validate the selected mode
        +                filter_whitespace(mode, "")
        +                reader.whitespace = mode
        +                continue
        +            elif operator == "raw":
        +                block = _Expression(suffix, line, raw=True)
        +            elif operator == "module":
        +                block = _Module(suffix, line)
        +            body.chunks.append(block)
        +            continue
        +
        +        elif operator in ("apply", "block", "try", "if", "for", "while"):
        +            # parse inner body recursively
        +            if operator in ("for", "while"):
        +                block_body = _parse(reader, template, operator, operator)
        +            elif operator == "apply":
        +                # apply creates a nested function so syntactically it's not
        +                # in the loop.
        +                block_body = _parse(reader, template, operator, None)
        +            else:
        +                block_body = _parse(reader, template, operator, in_loop)
        +
        +            if operator == "apply":
        +                if not suffix:
        +                    reader.raise_parse_error("apply missing method name")
        +                block = _ApplyBlock(suffix, line, block_body)
        +            elif operator == "block":
        +                if not suffix:
        +                    reader.raise_parse_error("block missing name")
        +                block = _NamedBlock(suffix, block_body, template, line)
        +            else:
        +                block = _ControlBlock(contents, line, block_body)
        +            body.chunks.append(block)
        +            continue
        +
        +        elif operator in ("break", "continue"):
        +            if not in_loop:
        +                reader.raise_parse_error(
        +                    "%s outside %s block" % (operator, set(["for", "while"]))
        +                )
        +            body.chunks.append(_Statement(contents, line))
        +            continue
        +
        +        else:
        +            reader.raise_parse_error("unknown operator: %r" % operator)
        diff --git a/server/www/packages/packages-linux/x64/tornado/testing.py b/server/www/packages/packages-linux/x64/tornado/testing.py
        index ba13a52..799542f 100644
        --- a/server/www/packages/packages-linux/x64/tornado/testing.py
        +++ b/server/www/packages/packages-linux/x64/tornado/testing.py
        @@ -1,790 +1,790 @@
        -"""Support classes for automated testing.
        -
        -* `AsyncTestCase` and `AsyncHTTPTestCase`:  Subclasses of unittest.TestCase
        -  with additional support for testing asynchronous (`.IOLoop`-based) code.
        -
        -* `ExpectLog`: Make test logs less spammy.
        -
        -* `main()`: A simple test runner (wrapper around unittest.main()) with support
        -  for the tornado.autoreload module to rerun the tests when code changes.
        -"""
        -
        -import asyncio
        -from collections.abc import Generator
        -import functools
        -import inspect
        -import logging
        -import os
        -import re
        -import signal
        -import socket
        -import sys
        -import unittest
        -
        -from tornado import gen
        -from tornado.httpclient import AsyncHTTPClient, HTTPResponse
        -from tornado.httpserver import HTTPServer
        -from tornado.ioloop import IOLoop, TimeoutError
        -from tornado import netutil
        -from tornado.platform.asyncio import AsyncIOMainLoop
        -from tornado.process import Subprocess
        -from tornado.log import app_log
        -from tornado.util import raise_exc_info, basestring_type
        -from tornado.web import Application
        -
        -import typing
        -from typing import Tuple, Any, Callable, Type, Dict, Union, Optional
        -from types import TracebackType
        -
        -if typing.TYPE_CHECKING:
        -    # Coroutine wasn't added to typing until 3.5.3, so only import it
        -    # when mypy is running and use forward references.
        -    from typing import Coroutine  # noqa: F401
        -
        -    _ExcInfoTuple = Tuple[
        -        Optional[Type[BaseException]], Optional[BaseException], Optional[TracebackType]
        -    ]
        -
        -
        -_NON_OWNED_IOLOOPS = AsyncIOMainLoop
        -
        -
        -def bind_unused_port(reuse_port: bool = False) -> Tuple[socket.socket, int]:
        -    """Binds a server socket to an available port on localhost.
        -
        -    Returns a tuple (socket, port).
        -
        -    .. versionchanged:: 4.4
        -       Always binds to ``127.0.0.1`` without resolving the name
        -       ``localhost``.
        -    """
        -    sock = netutil.bind_sockets(
        -        0, "127.0.0.1", family=socket.AF_INET, reuse_port=reuse_port
        -    )[0]
        -    port = sock.getsockname()[1]
        -    return sock, port
        -
        -
        -def get_async_test_timeout() -> float:
        -    """Get the global timeout setting for async tests.
        -
        -    Returns a float, the timeout in seconds.
        -
        -    .. versionadded:: 3.1
        -    """
        -    env = os.environ.get("ASYNC_TEST_TIMEOUT")
        -    if env is not None:
        -        try:
        -            return float(env)
        -        except ValueError:
        -            pass
        -    return 5
        -
        -
        -class _TestMethodWrapper(object):
        -    """Wraps a test method to raise an error if it returns a value.
        -
        -    This is mainly used to detect undecorated generators (if a test
        -    method yields it must use a decorator to consume the generator),
        -    but will also detect other kinds of return values (these are not
        -    necessarily errors, but we alert anyway since there is no good
        -    reason to return a value from a test).
        -    """
        -
        -    def __init__(self, orig_method: Callable) -> None:
        -        self.orig_method = orig_method
        -
        -    def __call__(self, *args: Any, **kwargs: Any) -> None:
        -        result = self.orig_method(*args, **kwargs)
        -        if isinstance(result, Generator) or inspect.iscoroutine(result):
        -            raise TypeError(
        -                "Generator and coroutine test methods should be"
        -                " decorated with tornado.testing.gen_test"
        -            )
        -        elif result is not None:
        -            raise ValueError("Return value from test method ignored: %r" % result)
        -
        -    def __getattr__(self, name: str) -> Any:
        -        """Proxy all unknown attributes to the original method.
        -
        -        This is important for some of the decorators in the `unittest`
        -        module, such as `unittest.skipIf`.
        -        """
        -        return getattr(self.orig_method, name)
        -
        -
        -class AsyncTestCase(unittest.TestCase):
        -    """`~unittest.TestCase` subclass for testing `.IOLoop`-based
        -    asynchronous code.
        -
        -    The unittest framework is synchronous, so the test must be
        -    complete by the time the test method returns. This means that
        -    asynchronous code cannot be used in quite the same way as usual
        -    and must be adapted to fit. To write your tests with coroutines,
        -    decorate your test methods with `tornado.testing.gen_test` instead
        -    of `tornado.gen.coroutine`.
        -
        -    This class also provides the (deprecated) `stop()` and `wait()`
        -    methods for a more manual style of testing. The test method itself
        -    must call ``self.wait()``, and asynchronous callbacks should call
        -    ``self.stop()`` to signal completion.
        -
        -    By default, a new `.IOLoop` is constructed for each test and is available
        -    as ``self.io_loop``.  If the code being tested requires a
        -    global `.IOLoop`, subclasses should override `get_new_ioloop` to return it.
        -
        -    The `.IOLoop`'s ``start`` and ``stop`` methods should not be
        -    called directly.  Instead, use `self.stop ` and `self.wait
        -    `.  Arguments passed to ``self.stop`` are returned from
        -    ``self.wait``.  It is possible to have multiple ``wait``/``stop``
        -    cycles in the same test.
        -
        -    Example::
        -
        -        # This test uses coroutine style.
        -        class MyTestCase(AsyncTestCase):
        -            @tornado.testing.gen_test
        -            def test_http_fetch(self):
        -                client = AsyncHTTPClient()
        -                response = yield client.fetch("http://www.tornadoweb.org")
        -                # Test contents of response
        -                self.assertIn("FriendFeed", response.body)
        -
        -        # This test uses argument passing between self.stop and self.wait.
        -        class MyTestCase2(AsyncTestCase):
        -            def test_http_fetch(self):
        -                client = AsyncHTTPClient()
        -                client.fetch("http://www.tornadoweb.org/", self.stop)
        -                response = self.wait()
        -                # Test contents of response
        -                self.assertIn("FriendFeed", response.body)
        -    """
        -
        -    def __init__(self, methodName: str = "runTest") -> None:
        -        super(AsyncTestCase, self).__init__(methodName)
        -        self.__stopped = False
        -        self.__running = False
        -        self.__failure = None  # type: Optional[_ExcInfoTuple]
        -        self.__stop_args = None  # type: Any
        -        self.__timeout = None  # type: Optional[object]
        -
        -        # It's easy to forget the @gen_test decorator, but if you do
        -        # the test will silently be ignored because nothing will consume
        -        # the generator.  Replace the test method with a wrapper that will
        -        # make sure it's not an undecorated generator.
        -        setattr(self, methodName, _TestMethodWrapper(getattr(self, methodName)))
        -
        -        # Not used in this class itself, but used by @gen_test
        -        self._test_generator = None  # type: Optional[Union[Generator, Coroutine]]
        -
        -    def setUp(self) -> None:
        -        super(AsyncTestCase, self).setUp()
        -        self.io_loop = self.get_new_ioloop()
        -        self.io_loop.make_current()
        -
        -    def tearDown(self) -> None:
        -        # Native coroutines tend to produce warnings if they're not
        -        # allowed to run to completion. It's difficult to ensure that
        -        # this always happens in tests, so cancel any tasks that are
        -        # still pending by the time we get here.
        -        asyncio_loop = self.io_loop.asyncio_loop  # type: ignore
        -        if hasattr(asyncio, "all_tasks"):  # py37
        -            tasks = asyncio.all_tasks(asyncio_loop)  # type: ignore
        -        else:
        -            tasks = asyncio.Task.all_tasks(asyncio_loop)
        -        # Tasks that are done may still appear here and may contain
        -        # non-cancellation exceptions, so filter them out.
        -        tasks = [t for t in tasks if not t.done()]
        -        for t in tasks:
        -            t.cancel()
        -        # Allow the tasks to run and finalize themselves (which means
        -        # raising a CancelledError inside the coroutine). This may
        -        # just transform the "task was destroyed but it is pending"
        -        # warning into a "uncaught CancelledError" warning, but
        -        # catching CancelledErrors in coroutines that may leak is
        -        # simpler than ensuring that no coroutines leak.
        -        if tasks:
        -            done, pending = self.io_loop.run_sync(lambda: asyncio.wait(tasks))
        -            assert not pending
        -            # If any task failed with anything but a CancelledError, raise it.
        -            for f in done:
        -                try:
        -                    f.result()
        -                except asyncio.CancelledError:
        -                    pass
        -
        -        # Clean up Subprocess, so it can be used again with a new ioloop.
        -        Subprocess.uninitialize()
        -        self.io_loop.clear_current()
        -        if not isinstance(self.io_loop, _NON_OWNED_IOLOOPS):
        -            # Try to clean up any file descriptors left open in the ioloop.
        -            # This avoids leaks, especially when tests are run repeatedly
        -            # in the same process with autoreload (because curl does not
        -            # set FD_CLOEXEC on its file descriptors)
        -            self.io_loop.close(all_fds=True)
        -        super(AsyncTestCase, self).tearDown()
        -        # In case an exception escaped or the StackContext caught an exception
        -        # when there wasn't a wait() to re-raise it, do so here.
        -        # This is our last chance to raise an exception in a way that the
        -        # unittest machinery understands.
        -        self.__rethrow()
        -
        -    def get_new_ioloop(self) -> IOLoop:
        -        """Returns the `.IOLoop` to use for this test.
        -
        -        By default, a new `.IOLoop` is created for each test.
        -        Subclasses may override this method to return
        -        `.IOLoop.current()` if it is not appropriate to use a new
        -        `.IOLoop` in each tests (for example, if there are global
        -        singletons using the default `.IOLoop`) or if a per-test event
        -        loop is being provided by another system (such as
        -        ``pytest-asyncio``).
        -        """
        -        return IOLoop()
        -
        -    def _handle_exception(
        -        self, typ: Type[Exception], value: Exception, tb: TracebackType
        -    ) -> bool:
        -        if self.__failure is None:
        -            self.__failure = (typ, value, tb)
        -        else:
        -            app_log.error(
        -                "multiple unhandled exceptions in test", exc_info=(typ, value, tb)
        -            )
        -        self.stop()
        -        return True
        -
        -    def __rethrow(self) -> None:
        -        if self.__failure is not None:
        -            failure = self.__failure
        -            self.__failure = None
        -            raise_exc_info(failure)
        -
        -    def run(self, result: unittest.TestResult = None) -> unittest.TestCase:
        -        ret = super(AsyncTestCase, self).run(result)
        -        # As a last resort, if an exception escaped super.run() and wasn't
        -        # re-raised in tearDown, raise it here.  This will cause the
        -        # unittest run to fail messily, but that's better than silently
        -        # ignoring an error.
        -        self.__rethrow()
        -        return ret
        -
        -    def stop(self, _arg: Any = None, **kwargs: Any) -> None:
        -        """Stops the `.IOLoop`, causing one pending (or future) call to `wait()`
        -        to return.
        -
        -        Keyword arguments or a single positional argument passed to `stop()` are
        -        saved and will be returned by `wait()`.
        -
        -        .. deprecated:: 5.1
        -
        -           `stop` and `wait` are deprecated; use ``@gen_test`` instead.
        -        """
        -        assert _arg is None or not kwargs
        -        self.__stop_args = kwargs or _arg
        -        if self.__running:
        -            self.io_loop.stop()
        -            self.__running = False
        -        self.__stopped = True
        -
        -    def wait(
        -        self, condition: Callable[..., bool] = None, timeout: float = None
        -    ) -> None:
        -        """Runs the `.IOLoop` until stop is called or timeout has passed.
        -
        -        In the event of a timeout, an exception will be thrown. The
        -        default timeout is 5 seconds; it may be overridden with a
        -        ``timeout`` keyword argument or globally with the
        -        ``ASYNC_TEST_TIMEOUT`` environment variable.
        -
        -        If ``condition`` is not ``None``, the `.IOLoop` will be restarted
        -        after `stop()` until ``condition()`` returns ``True``.
        -
        -        .. versionchanged:: 3.1
        -           Added the ``ASYNC_TEST_TIMEOUT`` environment variable.
        -
        -        .. deprecated:: 5.1
        -
        -           `stop` and `wait` are deprecated; use ``@gen_test`` instead.
        -        """
        -        if timeout is None:
        -            timeout = get_async_test_timeout()
        -
        -        if not self.__stopped:
        -            if timeout:
        -
        -                def timeout_func() -> None:
        -                    try:
        -                        raise self.failureException(
        -                            "Async operation timed out after %s seconds" % timeout
        -                        )
        -                    except Exception:
        -                        self.__failure = sys.exc_info()
        -                    self.stop()
        -
        -                self.__timeout = self.io_loop.add_timeout(
        -                    self.io_loop.time() + timeout, timeout_func
        -                )
        -            while True:
        -                self.__running = True
        -                self.io_loop.start()
        -                if self.__failure is not None or condition is None or condition():
        -                    break
        -            if self.__timeout is not None:
        -                self.io_loop.remove_timeout(self.__timeout)
        -                self.__timeout = None
        -        assert self.__stopped
        -        self.__stopped = False
        -        self.__rethrow()
        -        result = self.__stop_args
        -        self.__stop_args = None
        -        return result
        -
        -
        -class AsyncHTTPTestCase(AsyncTestCase):
        -    """A test case that starts up an HTTP server.
        -
        -    Subclasses must override `get_app()`, which returns the
        -    `tornado.web.Application` (or other `.HTTPServer` callback) to be tested.
        -    Tests will typically use the provided ``self.http_client`` to fetch
        -    URLs from this server.
        -
        -    Example, assuming the "Hello, world" example from the user guide is in
        -    ``hello.py``::
        -
        -        import hello
        -
        -        class TestHelloApp(AsyncHTTPTestCase):
        -            def get_app(self):
        -                return hello.make_app()
        -
        -            def test_homepage(self):
        -                response = self.fetch('/')
        -                self.assertEqual(response.code, 200)
        -                self.assertEqual(response.body, 'Hello, world')
        -
        -    That call to ``self.fetch()`` is equivalent to ::
        -
        -        self.http_client.fetch(self.get_url('/'), self.stop)
        -        response = self.wait()
        -
        -    which illustrates how AsyncTestCase can turn an asynchronous operation,
        -    like ``http_client.fetch()``, into a synchronous operation. If you need
        -    to do other asynchronous operations in tests, you'll probably need to use
        -    ``stop()`` and ``wait()`` yourself.
        -    """
        -
        -    def setUp(self) -> None:
        -        super(AsyncHTTPTestCase, self).setUp()
        -        sock, port = bind_unused_port()
        -        self.__port = port
        -
        -        self.http_client = self.get_http_client()
        -        self._app = self.get_app()
        -        self.http_server = self.get_http_server()
        -        self.http_server.add_sockets([sock])
        -
        -    def get_http_client(self) -> AsyncHTTPClient:
        -        return AsyncHTTPClient()
        -
        -    def get_http_server(self) -> HTTPServer:
        -        return HTTPServer(self._app, **self.get_httpserver_options())
        -
        -    def get_app(self) -> Application:
        -        """Should be overridden by subclasses to return a
        -        `tornado.web.Application` or other `.HTTPServer` callback.
        -        """
        -        raise NotImplementedError()
        -
        -    def fetch(
        -        self, path: str, raise_error: bool = False, **kwargs: Any
        -    ) -> HTTPResponse:
        -        """Convenience method to synchronously fetch a URL.
        -
        -        The given path will be appended to the local server's host and
        -        port.  Any additional keyword arguments will be passed directly to
        -        `.AsyncHTTPClient.fetch` (and so could be used to pass
        -        ``method="POST"``, ``body="..."``, etc).
        -
        -        If the path begins with http:// or https://, it will be treated as a
        -        full URL and will be fetched as-is.
        -
        -        If ``raise_error`` is ``True``, a `tornado.httpclient.HTTPError` will
        -        be raised if the response code is not 200. This is the same behavior
        -        as the ``raise_error`` argument to `.AsyncHTTPClient.fetch`, but
        -        the default is ``False`` here (it's ``True`` in `.AsyncHTTPClient`)
        -        because tests often need to deal with non-200 response codes.
        -
        -        .. versionchanged:: 5.0
        -           Added support for absolute URLs.
        -
        -        .. versionchanged:: 5.1
        -
        -           Added the ``raise_error`` argument.
        -
        -        .. deprecated:: 5.1
        -
        -           This method currently turns any exception into an
        -           `.HTTPResponse` with status code 599. In Tornado 6.0,
        -           errors other than `tornado.httpclient.HTTPError` will be
        -           passed through, and ``raise_error=False`` will only
        -           suppress errors that would be raised due to non-200
        -           response codes.
        -
        -        """
        -        if path.lower().startswith(("http://", "https://")):
        -            url = path
        -        else:
        -            url = self.get_url(path)
        -        return self.io_loop.run_sync(
        -            lambda: self.http_client.fetch(url, raise_error=raise_error, **kwargs),
        -            timeout=get_async_test_timeout(),
        -        )
        -
        -    def get_httpserver_options(self) -> Dict[str, Any]:
        -        """May be overridden by subclasses to return additional
        -        keyword arguments for the server.
        -        """
        -        return {}
        -
        -    def get_http_port(self) -> int:
        -        """Returns the port used by the server.
        -
        -        A new port is chosen for each test.
        -        """
        -        return self.__port
        -
        -    def get_protocol(self) -> str:
        -        return "http"
        -
        -    def get_url(self, path: str) -> str:
        -        """Returns an absolute url for the given path on the test server."""
        -        return "%s://127.0.0.1:%s%s" % (self.get_protocol(), self.get_http_port(), path)
        -
        -    def tearDown(self) -> None:
        -        self.http_server.stop()
        -        self.io_loop.run_sync(
        -            self.http_server.close_all_connections, timeout=get_async_test_timeout()
        -        )
        -        self.http_client.close()
        -        del self.http_server
        -        del self._app
        -        super(AsyncHTTPTestCase, self).tearDown()
        -
        -
        -class AsyncHTTPSTestCase(AsyncHTTPTestCase):
        -    """A test case that starts an HTTPS server.
        -
        -    Interface is generally the same as `AsyncHTTPTestCase`.
        -    """
        -
        -    def get_http_client(self) -> AsyncHTTPClient:
        -        return AsyncHTTPClient(force_instance=True, defaults=dict(validate_cert=False))
        -
        -    def get_httpserver_options(self) -> Dict[str, Any]:
        -        return dict(ssl_options=self.get_ssl_options())
        -
        -    def get_ssl_options(self) -> Dict[str, Any]:
        -        """May be overridden by subclasses to select SSL options.
        -
        -        By default includes a self-signed testing certificate.
        -        """
        -        return AsyncHTTPSTestCase.default_ssl_options()
        -
        -    @staticmethod
        -    def default_ssl_options() -> Dict[str, Any]:
        -        # Testing keys were generated with:
        -        # openssl req -new -keyout tornado/test/test.key \
        -        #                     -out tornado/test/test.crt -nodes -days 3650 -x509
        -        module_dir = os.path.dirname(__file__)
        -        return dict(
        -            certfile=os.path.join(module_dir, "test", "test.crt"),
        -            keyfile=os.path.join(module_dir, "test", "test.key"),
        -        )
        -
        -    def get_protocol(self) -> str:
        -        return "https"
        -
        -
        -@typing.overload
        -def gen_test(
        -    *, timeout: float = None
        -) -> Callable[[Callable[..., Union[Generator, "Coroutine"]]], Callable[..., None]]:
        -    pass
        -
        -
        -@typing.overload  # noqa: F811
        -def gen_test(func: Callable[..., Union[Generator, "Coroutine"]]) -> Callable[..., None]:
        -    pass
        -
        -
        -def gen_test(  # noqa: F811
        -    func: Callable[..., Union[Generator, "Coroutine"]] = None, timeout: float = None
        -) -> Union[
        -    Callable[..., None],
        -    Callable[[Callable[..., Union[Generator, "Coroutine"]]], Callable[..., None]],
        -]:
        -    """Testing equivalent of ``@gen.coroutine``, to be applied to test methods.
        -
        -    ``@gen.coroutine`` cannot be used on tests because the `.IOLoop` is not
        -    already running.  ``@gen_test`` should be applied to test methods
        -    on subclasses of `AsyncTestCase`.
        -
        -    Example::
        -
        -        class MyTest(AsyncHTTPTestCase):
        -            @gen_test
        -            def test_something(self):
        -                response = yield self.http_client.fetch(self.get_url('/'))
        -
        -    By default, ``@gen_test`` times out after 5 seconds. The timeout may be
        -    overridden globally with the ``ASYNC_TEST_TIMEOUT`` environment variable,
        -    or for each test with the ``timeout`` keyword argument::
        -
        -        class MyTest(AsyncHTTPTestCase):
        -            @gen_test(timeout=10)
        -            def test_something_slow(self):
        -                response = yield self.http_client.fetch(self.get_url('/'))
        -
        -    Note that ``@gen_test`` is incompatible with `AsyncTestCase.stop`,
        -    `AsyncTestCase.wait`, and `AsyncHTTPTestCase.fetch`. Use ``yield
        -    self.http_client.fetch(self.get_url())`` as shown above instead.
        -
        -    .. versionadded:: 3.1
        -       The ``timeout`` argument and ``ASYNC_TEST_TIMEOUT`` environment
        -       variable.
        -
        -    .. versionchanged:: 4.0
        -       The wrapper now passes along ``*args, **kwargs`` so it can be used
        -       on functions with arguments.
        -
        -    """
        -    if timeout is None:
        -        timeout = get_async_test_timeout()
        -
        -    def wrap(f: Callable[..., Union[Generator, "Coroutine"]]) -> Callable[..., None]:
        -        # Stack up several decorators to allow us to access the generator
        -        # object itself.  In the innermost wrapper, we capture the generator
        -        # and save it in an attribute of self.  Next, we run the wrapped
        -        # function through @gen.coroutine.  Finally, the coroutine is
        -        # wrapped again to make it synchronous with run_sync.
        -        #
        -        # This is a good case study arguing for either some sort of
        -        # extensibility in the gen decorators or cancellation support.
        -        @functools.wraps(f)
        -        def pre_coroutine(self, *args, **kwargs):
        -            # type: (AsyncTestCase, *Any, **Any) -> Union[Generator, Coroutine]
        -            # Type comments used to avoid pypy3 bug.
        -            result = f(self, *args, **kwargs)
        -            if isinstance(result, Generator) or inspect.iscoroutine(result):
        -                self._test_generator = result
        -            else:
        -                self._test_generator = None
        -            return result
        -
        -        if inspect.iscoroutinefunction(f):
        -            coro = pre_coroutine
        -        else:
        -            coro = gen.coroutine(pre_coroutine)
        -
        -        @functools.wraps(coro)
        -        def post_coroutine(self, *args, **kwargs):
        -            # type: (AsyncTestCase, *Any, **Any) -> None
        -            try:
        -                return self.io_loop.run_sync(
        -                    functools.partial(coro, self, *args, **kwargs), timeout=timeout
        -                )
        -            except TimeoutError as e:
        -                # run_sync raises an error with an unhelpful traceback.
        -                # If the underlying generator is still running, we can throw the
        -                # exception back into it so the stack trace is replaced by the
        -                # point where the test is stopped. The only reason the generator
        -                # would not be running would be if it were cancelled, which means
        -                # a native coroutine, so we can rely on the cr_running attribute.
        -                if self._test_generator is not None and getattr(
        -                    self._test_generator, "cr_running", True
        -                ):
        -                    self._test_generator.throw(type(e), e)
        -                    # In case the test contains an overly broad except
        -                    # clause, we may get back here.
        -                # Coroutine was stopped or didn't raise a useful stack trace,
        -                # so re-raise the original exception which is better than nothing.
        -                raise
        -
        -        return post_coroutine
        -
        -    if func is not None:
        -        # Used like:
        -        #     @gen_test
        -        #     def f(self):
        -        #         pass
        -        return wrap(func)
        -    else:
        -        # Used like @gen_test(timeout=10)
        -        return wrap
        -
        -
        -# Without this attribute, nosetests will try to run gen_test as a test
        -# anywhere it is imported.
        -gen_test.__test__ = False  # type: ignore
        -
        -
        -class ExpectLog(logging.Filter):
        -    """Context manager to capture and suppress expected log output.
        -
        -    Useful to make tests of error conditions less noisy, while still
        -    leaving unexpected log entries visible.  *Not thread safe.*
        -
        -    The attribute ``logged_stack`` is set to ``True`` if any exception
        -    stack trace was logged.
        -
        -    Usage::
        -
        -        with ExpectLog('tornado.application', "Uncaught exception"):
        -            error_response = self.fetch("/some_page")
        -
        -    .. versionchanged:: 4.3
        -       Added the ``logged_stack`` attribute.
        -    """
        -
        -    def __init__(
        -        self,
        -        logger: Union[logging.Logger, basestring_type],
        -        regex: str,
        -        required: bool = True,
        -    ) -> None:
        -        """Constructs an ExpectLog context manager.
        -
        -        :param logger: Logger object (or name of logger) to watch.  Pass
        -            an empty string to watch the root logger.
        -        :param regex: Regular expression to match.  Any log entries on
        -            the specified logger that match this regex will be suppressed.
        -        :param required: If true, an exception will be raised if the end of
        -            the ``with`` statement is reached without matching any log entries.
        -        """
        -        if isinstance(logger, basestring_type):
        -            logger = logging.getLogger(logger)
        -        self.logger = logger
        -        self.regex = re.compile(regex)
        -        self.required = required
        -        self.matched = False
        -        self.logged_stack = False
        -
        -    def filter(self, record: logging.LogRecord) -> bool:
        -        if record.exc_info:
        -            self.logged_stack = True
        -        message = record.getMessage()
        -        if self.regex.match(message):
        -            self.matched = True
        -            return False
        -        return True
        -
        -    def __enter__(self) -> "ExpectLog":
        -        self.logger.addFilter(self)
        -        return self
        -
        -    def __exit__(
        -        self,
        -        typ: "Optional[Type[BaseException]]",
        -        value: Optional[BaseException],
        -        tb: Optional[TracebackType],
        -    ) -> None:
        -        self.logger.removeFilter(self)
        -        if not typ and self.required and not self.matched:
        -            raise Exception("did not get expected log message")
        -
        -
        -def main(**kwargs: Any) -> None:
        -    """A simple test runner.
        -
        -    This test runner is essentially equivalent to `unittest.main` from
        -    the standard library, but adds support for Tornado-style option
        -    parsing and log formatting. It is *not* necessary to use this
        -    `main` function to run tests using `AsyncTestCase`; these tests
        -    are self-contained and can run with any test runner.
        -
        -    The easiest way to run a test is via the command line::
        -
        -        python -m tornado.testing tornado.test.web_test
        -
        -    See the standard library ``unittest`` module for ways in which
        -    tests can be specified.
        -
        -    Projects with many tests may wish to define a test script like
        -    ``tornado/test/runtests.py``.  This script should define a method
        -    ``all()`` which returns a test suite and then call
        -    `tornado.testing.main()`.  Note that even when a test script is
        -    used, the ``all()`` test suite may be overridden by naming a
        -    single test on the command line::
        -
        -        # Runs all tests
        -        python -m tornado.test.runtests
        -        # Runs one test
        -        python -m tornado.test.runtests tornado.test.web_test
        -
        -    Additional keyword arguments passed through to ``unittest.main()``.
        -    For example, use ``tornado.testing.main(verbosity=2)``
        -    to show many test details as they are run.
        -    See http://docs.python.org/library/unittest.html#unittest.main
        -    for full argument list.
        -
        -    .. versionchanged:: 5.0
        -
        -       This function produces no output of its own; only that produced
        -       by the `unittest` module (previously it would add a PASS or FAIL
        -       log message).
        -    """
        -    from tornado.options import define, options, parse_command_line
        -
        -    define(
        -        "exception_on_interrupt",
        -        type=bool,
        -        default=True,
        -        help=(
        -            "If true (default), ctrl-c raises a KeyboardInterrupt "
        -            "exception.  This prints a stack trace but cannot interrupt "
        -            "certain operations.  If false, the process is more reliably "
        -            "killed, but does not print a stack trace."
        -        ),
        -    )
        -
        -    # support the same options as unittest's command-line interface
        -    define("verbose", type=bool)
        -    define("quiet", type=bool)
        -    define("failfast", type=bool)
        -    define("catch", type=bool)
        -    define("buffer", type=bool)
        -
        -    argv = [sys.argv[0]] + parse_command_line(sys.argv)
        -
        -    if not options.exception_on_interrupt:
        -        signal.signal(signal.SIGINT, signal.SIG_DFL)
        -
        -    if options.verbose is not None:
        -        kwargs["verbosity"] = 2
        -    if options.quiet is not None:
        -        kwargs["verbosity"] = 0
        -    if options.failfast is not None:
        -        kwargs["failfast"] = True
        -    if options.catch is not None:
        -        kwargs["catchbreak"] = True
        -    if options.buffer is not None:
        -        kwargs["buffer"] = True
        -
        -    if __name__ == "__main__" and len(argv) == 1:
        -        print("No tests specified", file=sys.stderr)
        -        sys.exit(1)
        -    # In order to be able to run tests by their fully-qualified name
        -    # on the command line without importing all tests here,
        -    # module must be set to None.  Python 3.2's unittest.main ignores
        -    # defaultTest if no module is given (it tries to do its own
        -    # test discovery, which is incompatible with auto2to3), so don't
        -    # set module if we're not asking for a specific test.
        -    if len(argv) > 1:
        -        unittest.main(module=None, argv=argv, **kwargs)  # type: ignore
        -    else:
        -        unittest.main(defaultTest="all", argv=argv, **kwargs)
        -
        -
        -if __name__ == "__main__":
        -    main()
        +"""Support classes for automated testing.
        +
        +* `AsyncTestCase` and `AsyncHTTPTestCase`:  Subclasses of unittest.TestCase
        +  with additional support for testing asynchronous (`.IOLoop`-based) code.
        +
        +* `ExpectLog`: Make test logs less spammy.
        +
        +* `main()`: A simple test runner (wrapper around unittest.main()) with support
        +  for the tornado.autoreload module to rerun the tests when code changes.
        +"""
        +
        +import asyncio
        +from collections.abc import Generator
        +import functools
        +import inspect
        +import logging
        +import os
        +import re
        +import signal
        +import socket
        +import sys
        +import unittest
        +
        +from tornado import gen
        +from tornado.httpclient import AsyncHTTPClient, HTTPResponse
        +from tornado.httpserver import HTTPServer
        +from tornado.ioloop import IOLoop, TimeoutError
        +from tornado import netutil
        +from tornado.platform.asyncio import AsyncIOMainLoop
        +from tornado.process import Subprocess
        +from tornado.log import app_log
        +from tornado.util import raise_exc_info, basestring_type
        +from tornado.web import Application
        +
        +import typing
        +from typing import Tuple, Any, Callable, Type, Dict, Union, Optional
        +from types import TracebackType
        +
        +if typing.TYPE_CHECKING:
        +    # Coroutine wasn't added to typing until 3.5.3, so only import it
        +    # when mypy is running and use forward references.
        +    from typing import Coroutine  # noqa: F401
        +
        +    _ExcInfoTuple = Tuple[
        +        Optional[Type[BaseException]], Optional[BaseException], Optional[TracebackType]
        +    ]
        +
        +
        +_NON_OWNED_IOLOOPS = AsyncIOMainLoop
        +
        +
        +def bind_unused_port(reuse_port: bool = False) -> Tuple[socket.socket, int]:
        +    """Binds a server socket to an available port on localhost.
        +
        +    Returns a tuple (socket, port).
        +
        +    .. versionchanged:: 4.4
        +       Always binds to ``127.0.0.1`` without resolving the name
        +       ``localhost``.
        +    """
        +    sock = netutil.bind_sockets(
        +        0, "127.0.0.1", family=socket.AF_INET, reuse_port=reuse_port
        +    )[0]
        +    port = sock.getsockname()[1]
        +    return sock, port
        +
        +
        +def get_async_test_timeout() -> float:
        +    """Get the global timeout setting for async tests.
        +
        +    Returns a float, the timeout in seconds.
        +
        +    .. versionadded:: 3.1
        +    """
        +    env = os.environ.get("ASYNC_TEST_TIMEOUT")
        +    if env is not None:
        +        try:
        +            return float(env)
        +        except ValueError:
        +            pass
        +    return 5
        +
        +
        +class _TestMethodWrapper(object):
        +    """Wraps a test method to raise an error if it returns a value.
        +
        +    This is mainly used to detect undecorated generators (if a test
        +    method yields it must use a decorator to consume the generator),
        +    but will also detect other kinds of return values (these are not
        +    necessarily errors, but we alert anyway since there is no good
        +    reason to return a value from a test).
        +    """
        +
        +    def __init__(self, orig_method: Callable) -> None:
        +        self.orig_method = orig_method
        +
        +    def __call__(self, *args: Any, **kwargs: Any) -> None:
        +        result = self.orig_method(*args, **kwargs)
        +        if isinstance(result, Generator) or inspect.iscoroutine(result):
        +            raise TypeError(
        +                "Generator and coroutine test methods should be"
        +                " decorated with tornado.testing.gen_test"
        +            )
        +        elif result is not None:
        +            raise ValueError("Return value from test method ignored: %r" % result)
        +
        +    def __getattr__(self, name: str) -> Any:
        +        """Proxy all unknown attributes to the original method.
        +
        +        This is important for some of the decorators in the `unittest`
        +        module, such as `unittest.skipIf`.
        +        """
        +        return getattr(self.orig_method, name)
        +
        +
        +class AsyncTestCase(unittest.TestCase):
        +    """`~unittest.TestCase` subclass for testing `.IOLoop`-based
        +    asynchronous code.
        +
        +    The unittest framework is synchronous, so the test must be
        +    complete by the time the test method returns. This means that
        +    asynchronous code cannot be used in quite the same way as usual
        +    and must be adapted to fit. To write your tests with coroutines,
        +    decorate your test methods with `tornado.testing.gen_test` instead
        +    of `tornado.gen.coroutine`.
        +
        +    This class also provides the (deprecated) `stop()` and `wait()`
        +    methods for a more manual style of testing. The test method itself
        +    must call ``self.wait()``, and asynchronous callbacks should call
        +    ``self.stop()`` to signal completion.
        +
        +    By default, a new `.IOLoop` is constructed for each test and is available
        +    as ``self.io_loop``.  If the code being tested requires a
        +    global `.IOLoop`, subclasses should override `get_new_ioloop` to return it.
        +
        +    The `.IOLoop`'s ``start`` and ``stop`` methods should not be
        +    called directly.  Instead, use `self.stop ` and `self.wait
        +    `.  Arguments passed to ``self.stop`` are returned from
        +    ``self.wait``.  It is possible to have multiple ``wait``/``stop``
        +    cycles in the same test.
        +
        +    Example::
        +
        +        # This test uses coroutine style.
        +        class MyTestCase(AsyncTestCase):
        +            @tornado.testing.gen_test
        +            def test_http_fetch(self):
        +                client = AsyncHTTPClient()
        +                response = yield client.fetch("http://www.tornadoweb.org")
        +                # Test contents of response
        +                self.assertIn("FriendFeed", response.body)
        +
        +        # This test uses argument passing between self.stop and self.wait.
        +        class MyTestCase2(AsyncTestCase):
        +            def test_http_fetch(self):
        +                client = AsyncHTTPClient()
        +                client.fetch("http://www.tornadoweb.org/", self.stop)
        +                response = self.wait()
        +                # Test contents of response
        +                self.assertIn("FriendFeed", response.body)
        +    """
        +
        +    def __init__(self, methodName: str = "runTest") -> None:
        +        super(AsyncTestCase, self).__init__(methodName)
        +        self.__stopped = False
        +        self.__running = False
        +        self.__failure = None  # type: Optional[_ExcInfoTuple]
        +        self.__stop_args = None  # type: Any
        +        self.__timeout = None  # type: Optional[object]
        +
        +        # It's easy to forget the @gen_test decorator, but if you do
        +        # the test will silently be ignored because nothing will consume
        +        # the generator.  Replace the test method with a wrapper that will
        +        # make sure it's not an undecorated generator.
        +        setattr(self, methodName, _TestMethodWrapper(getattr(self, methodName)))
        +
        +        # Not used in this class itself, but used by @gen_test
        +        self._test_generator = None  # type: Optional[Union[Generator, Coroutine]]
        +
        +    def setUp(self) -> None:
        +        super(AsyncTestCase, self).setUp()
        +        self.io_loop = self.get_new_ioloop()
        +        self.io_loop.make_current()
        +
        +    def tearDown(self) -> None:
        +        # Native coroutines tend to produce warnings if they're not
        +        # allowed to run to completion. It's difficult to ensure that
        +        # this always happens in tests, so cancel any tasks that are
        +        # still pending by the time we get here.
        +        asyncio_loop = self.io_loop.asyncio_loop  # type: ignore
        +        if hasattr(asyncio, "all_tasks"):  # py37
        +            tasks = asyncio.all_tasks(asyncio_loop)  # type: ignore
        +        else:
        +            tasks = asyncio.Task.all_tasks(asyncio_loop)
        +        # Tasks that are done may still appear here and may contain
        +        # non-cancellation exceptions, so filter them out.
        +        tasks = [t for t in tasks if not t.done()]
        +        for t in tasks:
        +            t.cancel()
        +        # Allow the tasks to run and finalize themselves (which means
        +        # raising a CancelledError inside the coroutine). This may
        +        # just transform the "task was destroyed but it is pending"
        +        # warning into a "uncaught CancelledError" warning, but
        +        # catching CancelledErrors in coroutines that may leak is
        +        # simpler than ensuring that no coroutines leak.
        +        if tasks:
        +            done, pending = self.io_loop.run_sync(lambda: asyncio.wait(tasks))
        +            assert not pending
        +            # If any task failed with anything but a CancelledError, raise it.
        +            for f in done:
        +                try:
        +                    f.result()
        +                except asyncio.CancelledError:
        +                    pass
        +
        +        # Clean up Subprocess, so it can be used again with a new ioloop.
        +        Subprocess.uninitialize()
        +        self.io_loop.clear_current()
        +        if not isinstance(self.io_loop, _NON_OWNED_IOLOOPS):
        +            # Try to clean up any file descriptors left open in the ioloop.
        +            # This avoids leaks, especially when tests are run repeatedly
        +            # in the same process with autoreload (because curl does not
        +            # set FD_CLOEXEC on its file descriptors)
        +            self.io_loop.close(all_fds=True)
        +        super(AsyncTestCase, self).tearDown()
        +        # In case an exception escaped or the StackContext caught an exception
        +        # when there wasn't a wait() to re-raise it, do so here.
        +        # This is our last chance to raise an exception in a way that the
        +        # unittest machinery understands.
        +        self.__rethrow()
        +
        +    def get_new_ioloop(self) -> IOLoop:
        +        """Returns the `.IOLoop` to use for this test.
        +
        +        By default, a new `.IOLoop` is created for each test.
        +        Subclasses may override this method to return
        +        `.IOLoop.current()` if it is not appropriate to use a new
        +        `.IOLoop` in each tests (for example, if there are global
        +        singletons using the default `.IOLoop`) or if a per-test event
        +        loop is being provided by another system (such as
        +        ``pytest-asyncio``).
        +        """
        +        return IOLoop()
        +
        +    def _handle_exception(
        +        self, typ: Type[Exception], value: Exception, tb: TracebackType
        +    ) -> bool:
        +        if self.__failure is None:
        +            self.__failure = (typ, value, tb)
        +        else:
        +            app_log.error(
        +                "multiple unhandled exceptions in test", exc_info=(typ, value, tb)
        +            )
        +        self.stop()
        +        return True
        +
        +    def __rethrow(self) -> None:
        +        if self.__failure is not None:
        +            failure = self.__failure
        +            self.__failure = None
        +            raise_exc_info(failure)
        +
        +    def run(self, result: unittest.TestResult = None) -> unittest.TestCase:
        +        ret = super(AsyncTestCase, self).run(result)
        +        # As a last resort, if an exception escaped super.run() and wasn't
        +        # re-raised in tearDown, raise it here.  This will cause the
        +        # unittest run to fail messily, but that's better than silently
        +        # ignoring an error.
        +        self.__rethrow()
        +        return ret
        +
        +    def stop(self, _arg: Any = None, **kwargs: Any) -> None:
        +        """Stops the `.IOLoop`, causing one pending (or future) call to `wait()`
        +        to return.
        +
        +        Keyword arguments or a single positional argument passed to `stop()` are
        +        saved and will be returned by `wait()`.
        +
        +        .. deprecated:: 5.1
        +
        +           `stop` and `wait` are deprecated; use ``@gen_test`` instead.
        +        """
        +        assert _arg is None or not kwargs
        +        self.__stop_args = kwargs or _arg
        +        if self.__running:
        +            self.io_loop.stop()
        +            self.__running = False
        +        self.__stopped = True
        +
        +    def wait(
        +        self, condition: Callable[..., bool] = None, timeout: float = None
        +    ) -> None:
        +        """Runs the `.IOLoop` until stop is called or timeout has passed.
        +
        +        In the event of a timeout, an exception will be thrown. The
        +        default timeout is 5 seconds; it may be overridden with a
        +        ``timeout`` keyword argument or globally with the
        +        ``ASYNC_TEST_TIMEOUT`` environment variable.
        +
        +        If ``condition`` is not ``None``, the `.IOLoop` will be restarted
        +        after `stop()` until ``condition()`` returns ``True``.
        +
        +        .. versionchanged:: 3.1
        +           Added the ``ASYNC_TEST_TIMEOUT`` environment variable.
        +
        +        .. deprecated:: 5.1
        +
        +           `stop` and `wait` are deprecated; use ``@gen_test`` instead.
        +        """
        +        if timeout is None:
        +            timeout = get_async_test_timeout()
        +
        +        if not self.__stopped:
        +            if timeout:
        +
        +                def timeout_func() -> None:
        +                    try:
        +                        raise self.failureException(
        +                            "Async operation timed out after %s seconds" % timeout
        +                        )
        +                    except Exception:
        +                        self.__failure = sys.exc_info()
        +                    self.stop()
        +
        +                self.__timeout = self.io_loop.add_timeout(
        +                    self.io_loop.time() + timeout, timeout_func
        +                )
        +            while True:
        +                self.__running = True
        +                self.io_loop.start()
        +                if self.__failure is not None or condition is None or condition():
        +                    break
        +            if self.__timeout is not None:
        +                self.io_loop.remove_timeout(self.__timeout)
        +                self.__timeout = None
        +        assert self.__stopped
        +        self.__stopped = False
        +        self.__rethrow()
        +        result = self.__stop_args
        +        self.__stop_args = None
        +        return result
        +
        +
        +class AsyncHTTPTestCase(AsyncTestCase):
        +    """A test case that starts up an HTTP server.
        +
        +    Subclasses must override `get_app()`, which returns the
        +    `tornado.web.Application` (or other `.HTTPServer` callback) to be tested.
        +    Tests will typically use the provided ``self.http_client`` to fetch
        +    URLs from this server.
        +
        +    Example, assuming the "Hello, world" example from the user guide is in
        +    ``hello.py``::
        +
        +        import hello
        +
        +        class TestHelloApp(AsyncHTTPTestCase):
        +            def get_app(self):
        +                return hello.make_app()
        +
        +            def test_homepage(self):
        +                response = self.fetch('/')
        +                self.assertEqual(response.code, 200)
        +                self.assertEqual(response.body, 'Hello, world')
        +
        +    That call to ``self.fetch()`` is equivalent to ::
        +
        +        self.http_client.fetch(self.get_url('/'), self.stop)
        +        response = self.wait()
        +
        +    which illustrates how AsyncTestCase can turn an asynchronous operation,
        +    like ``http_client.fetch()``, into a synchronous operation. If you need
        +    to do other asynchronous operations in tests, you'll probably need to use
        +    ``stop()`` and ``wait()`` yourself.
        +    """
        +
        +    def setUp(self) -> None:
        +        super(AsyncHTTPTestCase, self).setUp()
        +        sock, port = bind_unused_port()
        +        self.__port = port
        +
        +        self.http_client = self.get_http_client()
        +        self._app = self.get_app()
        +        self.http_server = self.get_http_server()
        +        self.http_server.add_sockets([sock])
        +
        +    def get_http_client(self) -> AsyncHTTPClient:
        +        return AsyncHTTPClient()
        +
        +    def get_http_server(self) -> HTTPServer:
        +        return HTTPServer(self._app, **self.get_httpserver_options())
        +
        +    def get_app(self) -> Application:
        +        """Should be overridden by subclasses to return a
        +        `tornado.web.Application` or other `.HTTPServer` callback.
        +        """
        +        raise NotImplementedError()
        +
        +    def fetch(
        +        self, path: str, raise_error: bool = False, **kwargs: Any
        +    ) -> HTTPResponse:
        +        """Convenience method to synchronously fetch a URL.
        +
        +        The given path will be appended to the local server's host and
        +        port.  Any additional keyword arguments will be passed directly to
        +        `.AsyncHTTPClient.fetch` (and so could be used to pass
        +        ``method="POST"``, ``body="..."``, etc).
        +
        +        If the path begins with http:// or https://, it will be treated as a
        +        full URL and will be fetched as-is.
        +
        +        If ``raise_error`` is ``True``, a `tornado.httpclient.HTTPError` will
        +        be raised if the response code is not 200. This is the same behavior
        +        as the ``raise_error`` argument to `.AsyncHTTPClient.fetch`, but
        +        the default is ``False`` here (it's ``True`` in `.AsyncHTTPClient`)
        +        because tests often need to deal with non-200 response codes.
        +
        +        .. versionchanged:: 5.0
        +           Added support for absolute URLs.
        +
        +        .. versionchanged:: 5.1
        +
        +           Added the ``raise_error`` argument.
        +
        +        .. deprecated:: 5.1
        +
        +           This method currently turns any exception into an
        +           `.HTTPResponse` with status code 599. In Tornado 6.0,
        +           errors other than `tornado.httpclient.HTTPError` will be
        +           passed through, and ``raise_error=False`` will only
        +           suppress errors that would be raised due to non-200
        +           response codes.
        +
        +        """
        +        if path.lower().startswith(("http://", "https://")):
        +            url = path
        +        else:
        +            url = self.get_url(path)
        +        return self.io_loop.run_sync(
        +            lambda: self.http_client.fetch(url, raise_error=raise_error, **kwargs),
        +            timeout=get_async_test_timeout(),
        +        )
        +
        +    def get_httpserver_options(self) -> Dict[str, Any]:
        +        """May be overridden by subclasses to return additional
        +        keyword arguments for the server.
        +        """
        +        return {}
        +
        +    def get_http_port(self) -> int:
        +        """Returns the port used by the server.
        +
        +        A new port is chosen for each test.
        +        """
        +        return self.__port
        +
        +    def get_protocol(self) -> str:
        +        return "http"
        +
        +    def get_url(self, path: str) -> str:
        +        """Returns an absolute url for the given path on the test server."""
        +        return "%s://127.0.0.1:%s%s" % (self.get_protocol(), self.get_http_port(), path)
        +
        +    def tearDown(self) -> None:
        +        self.http_server.stop()
        +        self.io_loop.run_sync(
        +            self.http_server.close_all_connections, timeout=get_async_test_timeout()
        +        )
        +        self.http_client.close()
        +        del self.http_server
        +        del self._app
        +        super(AsyncHTTPTestCase, self).tearDown()
        +
        +
        +class AsyncHTTPSTestCase(AsyncHTTPTestCase):
        +    """A test case that starts an HTTPS server.
        +
        +    Interface is generally the same as `AsyncHTTPTestCase`.
        +    """
        +
        +    def get_http_client(self) -> AsyncHTTPClient:
        +        return AsyncHTTPClient(force_instance=True, defaults=dict(validate_cert=False))
        +
        +    def get_httpserver_options(self) -> Dict[str, Any]:
        +        return dict(ssl_options=self.get_ssl_options())
        +
        +    def get_ssl_options(self) -> Dict[str, Any]:
        +        """May be overridden by subclasses to select SSL options.
        +
        +        By default includes a self-signed testing certificate.
        +        """
        +        return AsyncHTTPSTestCase.default_ssl_options()
        +
        +    @staticmethod
        +    def default_ssl_options() -> Dict[str, Any]:
        +        # Testing keys were generated with:
        +        # openssl req -new -keyout tornado/test/test.key \
        +        #                     -out tornado/test/test.crt -nodes -days 3650 -x509
        +        module_dir = os.path.dirname(__file__)
        +        return dict(
        +            certfile=os.path.join(module_dir, "test", "test.crt"),
        +            keyfile=os.path.join(module_dir, "test", "test.key"),
        +        )
        +
        +    def get_protocol(self) -> str:
        +        return "https"
        +
        +
        +@typing.overload
        +def gen_test(
        +    *, timeout: float = None
        +) -> Callable[[Callable[..., Union[Generator, "Coroutine"]]], Callable[..., None]]:
        +    pass
        +
        +
        +@typing.overload  # noqa: F811
        +def gen_test(func: Callable[..., Union[Generator, "Coroutine"]]) -> Callable[..., None]:
        +    pass
        +
        +
        +def gen_test(  # noqa: F811
        +    func: Callable[..., Union[Generator, "Coroutine"]] = None, timeout: float = None
        +) -> Union[
        +    Callable[..., None],
        +    Callable[[Callable[..., Union[Generator, "Coroutine"]]], Callable[..., None]],
        +]:
        +    """Testing equivalent of ``@gen.coroutine``, to be applied to test methods.
        +
        +    ``@gen.coroutine`` cannot be used on tests because the `.IOLoop` is not
        +    already running.  ``@gen_test`` should be applied to test methods
        +    on subclasses of `AsyncTestCase`.
        +
        +    Example::
        +
        +        class MyTest(AsyncHTTPTestCase):
        +            @gen_test
        +            def test_something(self):
        +                response = yield self.http_client.fetch(self.get_url('/'))
        +
        +    By default, ``@gen_test`` times out after 5 seconds. The timeout may be
        +    overridden globally with the ``ASYNC_TEST_TIMEOUT`` environment variable,
        +    or for each test with the ``timeout`` keyword argument::
        +
        +        class MyTest(AsyncHTTPTestCase):
        +            @gen_test(timeout=10)
        +            def test_something_slow(self):
        +                response = yield self.http_client.fetch(self.get_url('/'))
        +
        +    Note that ``@gen_test`` is incompatible with `AsyncTestCase.stop`,
        +    `AsyncTestCase.wait`, and `AsyncHTTPTestCase.fetch`. Use ``yield
        +    self.http_client.fetch(self.get_url())`` as shown above instead.
        +
        +    .. versionadded:: 3.1
        +       The ``timeout`` argument and ``ASYNC_TEST_TIMEOUT`` environment
        +       variable.
        +
        +    .. versionchanged:: 4.0
        +       The wrapper now passes along ``*args, **kwargs`` so it can be used
        +       on functions with arguments.
        +
        +    """
        +    if timeout is None:
        +        timeout = get_async_test_timeout()
        +
        +    def wrap(f: Callable[..., Union[Generator, "Coroutine"]]) -> Callable[..., None]:
        +        # Stack up several decorators to allow us to access the generator
        +        # object itself.  In the innermost wrapper, we capture the generator
        +        # and save it in an attribute of self.  Next, we run the wrapped
        +        # function through @gen.coroutine.  Finally, the coroutine is
        +        # wrapped again to make it synchronous with run_sync.
        +        #
        +        # This is a good case study arguing for either some sort of
        +        # extensibility in the gen decorators or cancellation support.
        +        @functools.wraps(f)
        +        def pre_coroutine(self, *args, **kwargs):
        +            # type: (AsyncTestCase, *Any, **Any) -> Union[Generator, Coroutine]
        +            # Type comments used to avoid pypy3 bug.
        +            result = f(self, *args, **kwargs)
        +            if isinstance(result, Generator) or inspect.iscoroutine(result):
        +                self._test_generator = result
        +            else:
        +                self._test_generator = None
        +            return result
        +
        +        if inspect.iscoroutinefunction(f):
        +            coro = pre_coroutine
        +        else:
        +            coro = gen.coroutine(pre_coroutine)
        +
        +        @functools.wraps(coro)
        +        def post_coroutine(self, *args, **kwargs):
        +            # type: (AsyncTestCase, *Any, **Any) -> None
        +            try:
        +                return self.io_loop.run_sync(
        +                    functools.partial(coro, self, *args, **kwargs), timeout=timeout
        +                )
        +            except TimeoutError as e:
        +                # run_sync raises an error with an unhelpful traceback.
        +                # If the underlying generator is still running, we can throw the
        +                # exception back into it so the stack trace is replaced by the
        +                # point where the test is stopped. The only reason the generator
        +                # would not be running would be if it were cancelled, which means
        +                # a native coroutine, so we can rely on the cr_running attribute.
        +                if self._test_generator is not None and getattr(
        +                    self._test_generator, "cr_running", True
        +                ):
        +                    self._test_generator.throw(type(e), e)
        +                    # In case the test contains an overly broad except
        +                    # clause, we may get back here.
        +                # Coroutine was stopped or didn't raise a useful stack trace,
        +                # so re-raise the original exception which is better than nothing.
        +                raise
        +
        +        return post_coroutine
        +
        +    if func is not None:
        +        # Used like:
        +        #     @gen_test
        +        #     def f(self):
        +        #         pass
        +        return wrap(func)
        +    else:
        +        # Used like @gen_test(timeout=10)
        +        return wrap
        +
        +
        +# Without this attribute, nosetests will try to run gen_test as a test
        +# anywhere it is imported.
        +gen_test.__test__ = False  # type: ignore
        +
        +
        +class ExpectLog(logging.Filter):
        +    """Context manager to capture and suppress expected log output.
        +
        +    Useful to make tests of error conditions less noisy, while still
        +    leaving unexpected log entries visible.  *Not thread safe.*
        +
        +    The attribute ``logged_stack`` is set to ``True`` if any exception
        +    stack trace was logged.
        +
        +    Usage::
        +
        +        with ExpectLog('tornado.application', "Uncaught exception"):
        +            error_response = self.fetch("/some_page")
        +
        +    .. versionchanged:: 4.3
        +       Added the ``logged_stack`` attribute.
        +    """
        +
        +    def __init__(
        +        self,
        +        logger: Union[logging.Logger, basestring_type],
        +        regex: str,
        +        required: bool = True,
        +    ) -> None:
        +        """Constructs an ExpectLog context manager.
        +
        +        :param logger: Logger object (or name of logger) to watch.  Pass
        +            an empty string to watch the root logger.
        +        :param regex: Regular expression to match.  Any log entries on
        +            the specified logger that match this regex will be suppressed.
        +        :param required: If true, an exception will be raised if the end of
        +            the ``with`` statement is reached without matching any log entries.
        +        """
        +        if isinstance(logger, basestring_type):
        +            logger = logging.getLogger(logger)
        +        self.logger = logger
        +        self.regex = re.compile(regex)
        +        self.required = required
        +        self.matched = False
        +        self.logged_stack = False
        +
        +    def filter(self, record: logging.LogRecord) -> bool:
        +        if record.exc_info:
        +            self.logged_stack = True
        +        message = record.getMessage()
        +        if self.regex.match(message):
        +            self.matched = True
        +            return False
        +        return True
        +
        +    def __enter__(self) -> "ExpectLog":
        +        self.logger.addFilter(self)
        +        return self
        +
        +    def __exit__(
        +        self,
        +        typ: "Optional[Type[BaseException]]",
        +        value: Optional[BaseException],
        +        tb: Optional[TracebackType],
        +    ) -> None:
        +        self.logger.removeFilter(self)
        +        if not typ and self.required and not self.matched:
        +            raise Exception("did not get expected log message")
        +
        +
        +def main(**kwargs: Any) -> None:
        +    """A simple test runner.
        +
        +    This test runner is essentially equivalent to `unittest.main` from
        +    the standard library, but adds support for Tornado-style option
        +    parsing and log formatting. It is *not* necessary to use this
        +    `main` function to run tests using `AsyncTestCase`; these tests
        +    are self-contained and can run with any test runner.
        +
        +    The easiest way to run a test is via the command line::
        +
        +        python -m tornado.testing tornado.test.web_test
        +
        +    See the standard library ``unittest`` module for ways in which
        +    tests can be specified.
        +
        +    Projects with many tests may wish to define a test script like
        +    ``tornado/test/runtests.py``.  This script should define a method
        +    ``all()`` which returns a test suite and then call
        +    `tornado.testing.main()`.  Note that even when a test script is
        +    used, the ``all()`` test suite may be overridden by naming a
        +    single test on the command line::
        +
        +        # Runs all tests
        +        python -m tornado.test.runtests
        +        # Runs one test
        +        python -m tornado.test.runtests tornado.test.web_test
        +
        +    Additional keyword arguments passed through to ``unittest.main()``.
        +    For example, use ``tornado.testing.main(verbosity=2)``
        +    to show many test details as they are run.
        +    See http://docs.python.org/library/unittest.html#unittest.main
        +    for full argument list.
        +
        +    .. versionchanged:: 5.0
        +
        +       This function produces no output of its own; only that produced
        +       by the `unittest` module (previously it would add a PASS or FAIL
        +       log message).
        +    """
        +    from tornado.options import define, options, parse_command_line
        +
        +    define(
        +        "exception_on_interrupt",
        +        type=bool,
        +        default=True,
        +        help=(
        +            "If true (default), ctrl-c raises a KeyboardInterrupt "
        +            "exception.  This prints a stack trace but cannot interrupt "
        +            "certain operations.  If false, the process is more reliably "
        +            "killed, but does not print a stack trace."
        +        ),
        +    )
        +
        +    # support the same options as unittest's command-line interface
        +    define("verbose", type=bool)
        +    define("quiet", type=bool)
        +    define("failfast", type=bool)
        +    define("catch", type=bool)
        +    define("buffer", type=bool)
        +
        +    argv = [sys.argv[0]] + parse_command_line(sys.argv)
        +
        +    if not options.exception_on_interrupt:
        +        signal.signal(signal.SIGINT, signal.SIG_DFL)
        +
        +    if options.verbose is not None:
        +        kwargs["verbosity"] = 2
        +    if options.quiet is not None:
        +        kwargs["verbosity"] = 0
        +    if options.failfast is not None:
        +        kwargs["failfast"] = True
        +    if options.catch is not None:
        +        kwargs["catchbreak"] = True
        +    if options.buffer is not None:
        +        kwargs["buffer"] = True
        +
        +    if __name__ == "__main__" and len(argv) == 1:
        +        print("No tests specified", file=sys.stderr)
        +        sys.exit(1)
        +    # In order to be able to run tests by their fully-qualified name
        +    # on the command line without importing all tests here,
        +    # module must be set to None.  Python 3.2's unittest.main ignores
        +    # defaultTest if no module is given (it tries to do its own
        +    # test discovery, which is incompatible with auto2to3), so don't
        +    # set module if we're not asking for a specific test.
        +    if len(argv) > 1:
        +        unittest.main(module=None, argv=argv, **kwargs)  # type: ignore
        +    else:
        +        unittest.main(defaultTest="all", argv=argv, **kwargs)
        +
        +
        +if __name__ == "__main__":
        +    main()
        diff --git a/server/www/packages/packages-linux/x64/tornado/util.py b/server/www/packages/packages-linux/x64/tornado/util.py
        index c1dc7c7..0a97a04 100644
        --- a/server/www/packages/packages-linux/x64/tornado/util.py
        +++ b/server/www/packages/packages-linux/x64/tornado/util.py
        @@ -1,472 +1,472 @@
        -"""Miscellaneous utility functions and classes.
        -
        -This module is used internally by Tornado.  It is not necessarily expected
        -that the functions and classes defined here will be useful to other
        -applications, but they are documented here in case they are.
        -
        -The one public-facing part of this module is the `Configurable` class
        -and its `~Configurable.configure` method, which becomes a part of the
        -interface of its subclasses, including `.AsyncHTTPClient`, `.IOLoop`,
        -and `.Resolver`.
        -"""
        -
        -import array
        -import atexit
        -from inspect import getfullargspec
        -import os
        -import re
        -import typing
        -import zlib
        -
        -from typing import (
        -    Any,
        -    Optional,
        -    Dict,
        -    Mapping,
        -    List,
        -    Tuple,
        -    Match,
        -    Callable,
        -    Type,
        -    Sequence,
        -)
        -
        -if typing.TYPE_CHECKING:
        -    # Additional imports only used in type comments.
        -    # This lets us make these imports lazy.
        -    import datetime  # noqa: F401
        -    from types import TracebackType  # noqa: F401
        -    from typing import Union  # noqa: F401
        -    import unittest  # noqa: F401
        -
        -# Aliases for types that are spelled differently in different Python
        -# versions. bytes_type is deprecated and no longer used in Tornado
        -# itself but is left in case anyone outside Tornado is using it.
        -bytes_type = bytes
        -unicode_type = str
        -basestring_type = str
        -
        -try:
        -    from sys import is_finalizing
        -except ImportError:
        -    # Emulate it
        -    def _get_emulated_is_finalizing() -> Callable[[], bool]:
        -        L = []  # type: List[None]
        -        atexit.register(lambda: L.append(None))
        -
        -        def is_finalizing() -> bool:
        -            # Not referencing any globals here
        -            return L != []
        -
        -        return is_finalizing
        -
        -    is_finalizing = _get_emulated_is_finalizing()
        -
        -
        -class TimeoutError(Exception):
        -    """Exception raised by `.with_timeout` and `.IOLoop.run_sync`.
        -
        -    .. versionchanged:: 5.0:
        -       Unified ``tornado.gen.TimeoutError`` and
        -       ``tornado.ioloop.TimeoutError`` as ``tornado.util.TimeoutError``.
        -       Both former names remain as aliases.
        -    """
        -
        -
        -class ObjectDict(Dict[str, Any]):
        -    """Makes a dictionary behave like an object, with attribute-style access.
        -    """
        -
        -    def __getattr__(self, name: str) -> Any:
        -        try:
        -            return self[name]
        -        except KeyError:
        -            raise AttributeError(name)
        -
        -    def __setattr__(self, name: str, value: Any) -> None:
        -        self[name] = value
        -
        -
        -class GzipDecompressor(object):
        -    """Streaming gzip decompressor.
        -
        -    The interface is like that of `zlib.decompressobj` (without some of the
        -    optional arguments, but it understands gzip headers and checksums.
        -    """
        -
        -    def __init__(self) -> None:
        -        # Magic parameter makes zlib module understand gzip header
        -        # http://stackoverflow.com/questions/1838699/how-can-i-decompress-a-gzip-stream-with-zlib
        -        # This works on cpython and pypy, but not jython.
        -        self.decompressobj = zlib.decompressobj(16 + zlib.MAX_WBITS)
        -
        -    def decompress(self, value: bytes, max_length: int = 0) -> bytes:
        -        """Decompress a chunk, returning newly-available data.
        -
        -        Some data may be buffered for later processing; `flush` must
        -        be called when there is no more input data to ensure that
        -        all data was processed.
        -
        -        If ``max_length`` is given, some input data may be left over
        -        in ``unconsumed_tail``; you must retrieve this value and pass
        -        it back to a future call to `decompress` if it is not empty.
        -        """
        -        return self.decompressobj.decompress(value, max_length)
        -
        -    @property
        -    def unconsumed_tail(self) -> bytes:
        -        """Returns the unconsumed portion left over
        -        """
        -        return self.decompressobj.unconsumed_tail
        -
        -    def flush(self) -> bytes:
        -        """Return any remaining buffered data not yet returned by decompress.
        -
        -        Also checks for errors such as truncated input.
        -        No other methods may be called on this object after `flush`.
        -        """
        -        return self.decompressobj.flush()
        -
        -
        -def import_object(name: str) -> Any:
        -    """Imports an object by name.
        -
        -    ``import_object('x')`` is equivalent to ``import x``.
        -    ``import_object('x.y.z')`` is equivalent to ``from x.y import z``.
        -
        -    >>> import tornado.escape
        -    >>> import_object('tornado.escape') is tornado.escape
        -    True
        -    >>> import_object('tornado.escape.utf8') is tornado.escape.utf8
        -    True
        -    >>> import_object('tornado') is tornado
        -    True
        -    >>> import_object('tornado.missing_module')
        -    Traceback (most recent call last):
        -        ...
        -    ImportError: No module named missing_module
        -    """
        -    if name.count(".") == 0:
        -        return __import__(name)
        -
        -    parts = name.split(".")
        -    obj = __import__(".".join(parts[:-1]), fromlist=[parts[-1]])
        -    try:
        -        return getattr(obj, parts[-1])
        -    except AttributeError:
        -        raise ImportError("No module named %s" % parts[-1])
        -
        -
        -def exec_in(code: Any, glob: Dict[str, Any], loc: Mapping[str, Any] = None) -> None:
        -    if isinstance(code, str):
        -        # exec(string) inherits the caller's future imports; compile
        -        # the string first to prevent that.
        -        code = compile(code, "", "exec", dont_inherit=True)
        -    exec(code, glob, loc)
        -
        -
        -def raise_exc_info(
        -    exc_info,  # type: Tuple[Optional[type], Optional[BaseException], Optional[TracebackType]]
        -):
        -    # type: (...) -> typing.NoReturn
        -    #
        -    # This function's type annotation must use comments instead of
        -    # real annotations because typing.NoReturn does not exist in
        -    # python 3.5's typing module. The formatting is funky because this
        -    # is apparently what flake8 wants.
        -    try:
        -        if exc_info[1] is not None:
        -            raise exc_info[1].with_traceback(exc_info[2])
        -        else:
        -            raise TypeError("raise_exc_info called with no exception")
        -    finally:
        -        # Clear the traceback reference from our stack frame to
        -        # minimize circular references that slow down GC.
        -        exc_info = (None, None, None)
        -
        -
        -def errno_from_exception(e: BaseException) -> Optional[int]:
        -    """Provides the errno from an Exception object.
        -
        -    There are cases that the errno attribute was not set so we pull
        -    the errno out of the args but if someone instantiates an Exception
        -    without any args you will get a tuple error. So this function
        -    abstracts all that behavior to give you a safe way to get the
        -    errno.
        -    """
        -
        -    if hasattr(e, "errno"):
        -        return e.errno  # type: ignore
        -    elif e.args:
        -        return e.args[0]
        -    else:
        -        return None
        -
        -
        -_alphanum = frozenset("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
        -
        -
        -def _re_unescape_replacement(match: Match[str]) -> str:
        -    group = match.group(1)
        -    if group[0] in _alphanum:
        -        raise ValueError("cannot unescape '\\\\%s'" % group[0])
        -    return group
        -
        -
        -_re_unescape_pattern = re.compile(r"\\(.)", re.DOTALL)
        -
        -
        -def re_unescape(s: str) -> str:
        -    r"""Unescape a string escaped by `re.escape`.
        -
        -    May raise ``ValueError`` for regular expressions which could not
        -    have been produced by `re.escape` (for example, strings containing
        -    ``\d`` cannot be unescaped).
        -
        -    .. versionadded:: 4.4
        -    """
        -    return _re_unescape_pattern.sub(_re_unescape_replacement, s)
        -
        -
        -class Configurable(object):
        -    """Base class for configurable interfaces.
        -
        -    A configurable interface is an (abstract) class whose constructor
        -    acts as a factory function for one of its implementation subclasses.
        -    The implementation subclass as well as optional keyword arguments to
        -    its initializer can be set globally at runtime with `configure`.
        -
        -    By using the constructor as the factory method, the interface
        -    looks like a normal class, `isinstance` works as usual, etc.  This
        -    pattern is most useful when the choice of implementation is likely
        -    to be a global decision (e.g. when `~select.epoll` is available,
        -    always use it instead of `~select.select`), or when a
        -    previously-monolithic class has been split into specialized
        -    subclasses.
        -
        -    Configurable subclasses must define the class methods
        -    `configurable_base` and `configurable_default`, and use the instance
        -    method `initialize` instead of ``__init__``.
        -
        -    .. versionchanged:: 5.0
        -
        -       It is now possible for configuration to be specified at
        -       multiple levels of a class hierarchy.
        -
        -    """
        -
        -    # Type annotations on this class are mostly done with comments
        -    # because they need to refer to Configurable, which isn't defined
        -    # until after the class definition block. These can use regular
        -    # annotations when our minimum python version is 3.7.
        -    #
        -    # There may be a clever way to use generics here to get more
        -    # precise types (i.e. for a particular Configurable subclass T,
        -    # all the types are subclasses of T, not just Configurable).
        -    __impl_class = None  # type: Optional[Type[Configurable]]
        -    __impl_kwargs = None  # type: Dict[str, Any]
        -
        -    def __new__(cls, *args: Any, **kwargs: Any) -> Any:
        -        base = cls.configurable_base()
        -        init_kwargs = {}  # type: Dict[str, Any]
        -        if cls is base:
        -            impl = cls.configured_class()
        -            if base.__impl_kwargs:
        -                init_kwargs.update(base.__impl_kwargs)
        -        else:
        -            impl = cls
        -        init_kwargs.update(kwargs)
        -        if impl.configurable_base() is not base:
        -            # The impl class is itself configurable, so recurse.
        -            return impl(*args, **init_kwargs)
        -        instance = super(Configurable, cls).__new__(impl)
        -        # initialize vs __init__ chosen for compatibility with AsyncHTTPClient
        -        # singleton magic.  If we get rid of that we can switch to __init__
        -        # here too.
        -        instance.initialize(*args, **init_kwargs)
        -        return instance
        -
        -    @classmethod
        -    def configurable_base(cls):
        -        # type: () -> Type[Configurable]
        -        """Returns the base class of a configurable hierarchy.
        -
        -        This will normally return the class in which it is defined.
        -        (which is *not* necessarily the same as the ``cls`` classmethod
        -        parameter).
        -
        -        """
        -        raise NotImplementedError()
        -
        -    @classmethod
        -    def configurable_default(cls):
        -        # type: () -> Type[Configurable]
        -        """Returns the implementation class to be used if none is configured."""
        -        raise NotImplementedError()
        -
        -    def _initialize(self) -> None:
        -        pass
        -
        -    initialize = _initialize  # type: Callable[..., None]
        -    """Initialize a `Configurable` subclass instance.
        -
        -    Configurable classes should use `initialize` instead of ``__init__``.
        -
        -    .. versionchanged:: 4.2
        -       Now accepts positional arguments in addition to keyword arguments.
        -    """
        -
        -    @classmethod
        -    def configure(cls, impl, **kwargs):
        -        # type: (Union[None, str, Type[Configurable]], Any) -> None
        -        """Sets the class to use when the base class is instantiated.
        -
        -        Keyword arguments will be saved and added to the arguments passed
        -        to the constructor.  This can be used to set global defaults for
        -        some parameters.
        -        """
        -        base = cls.configurable_base()
        -        if isinstance(impl, str):
        -            impl = typing.cast(Type[Configurable], import_object(impl))
        -        if impl is not None and not issubclass(impl, cls):
        -            raise ValueError("Invalid subclass of %s" % cls)
        -        base.__impl_class = impl
        -        base.__impl_kwargs = kwargs
        -
        -    @classmethod
        -    def configured_class(cls):
        -        # type: () -> Type[Configurable]
        -        """Returns the currently configured class."""
        -        base = cls.configurable_base()
        -        # Manually mangle the private name to see whether this base
        -        # has been configured (and not another base higher in the
        -        # hierarchy).
        -        if base.__dict__.get("_Configurable__impl_class") is None:
        -            base.__impl_class = cls.configurable_default()
        -        if base.__impl_class is not None:
        -            return base.__impl_class
        -        else:
        -            # Should be impossible, but mypy wants an explicit check.
        -            raise ValueError("configured class not found")
        -
        -    @classmethod
        -    def _save_configuration(cls):
        -        # type: () -> Tuple[Optional[Type[Configurable]], Dict[str, Any]]
        -        base = cls.configurable_base()
        -        return (base.__impl_class, base.__impl_kwargs)
        -
        -    @classmethod
        -    def _restore_configuration(cls, saved):
        -        # type: (Tuple[Optional[Type[Configurable]], Dict[str, Any]]) -> None
        -        base = cls.configurable_base()
        -        base.__impl_class = saved[0]
        -        base.__impl_kwargs = saved[1]
        -
        -
        -class ArgReplacer(object):
        -    """Replaces one value in an ``args, kwargs`` pair.
        -
        -    Inspects the function signature to find an argument by name
        -    whether it is passed by position or keyword.  For use in decorators
        -    and similar wrappers.
        -    """
        -
        -    def __init__(self, func: Callable, name: str) -> None:
        -        self.name = name
        -        try:
        -            self.arg_pos = self._getargnames(func).index(name)  # type: Optional[int]
        -        except ValueError:
        -            # Not a positional parameter
        -            self.arg_pos = None
        -
        -    def _getargnames(self, func: Callable) -> List[str]:
        -        try:
        -            return getfullargspec(func).args
        -        except TypeError:
        -            if hasattr(func, "func_code"):
        -                # Cython-generated code has all the attributes needed
        -                # by inspect.getfullargspec, but the inspect module only
        -                # works with ordinary functions. Inline the portion of
        -                # getfullargspec that we need here. Note that for static
        -                # functions the @cython.binding(True) decorator must
        -                # be used (for methods it works out of the box).
        -                code = func.func_code  # type: ignore
        -                return code.co_varnames[: code.co_argcount]
        -            raise
        -
        -    def get_old_value(
        -        self, args: Sequence[Any], kwargs: Dict[str, Any], default: Any = None
        -    ) -> Any:
        -        """Returns the old value of the named argument without replacing it.
        -
        -        Returns ``default`` if the argument is not present.
        -        """
        -        if self.arg_pos is not None and len(args) > self.arg_pos:
        -            return args[self.arg_pos]
        -        else:
        -            return kwargs.get(self.name, default)
        -
        -    def replace(
        -        self, new_value: Any, args: Sequence[Any], kwargs: Dict[str, Any]
        -    ) -> Tuple[Any, Sequence[Any], Dict[str, Any]]:
        -        """Replace the named argument in ``args, kwargs`` with ``new_value``.
        -
        -        Returns ``(old_value, args, kwargs)``.  The returned ``args`` and
        -        ``kwargs`` objects may not be the same as the input objects, or
        -        the input objects may be mutated.
        -
        -        If the named argument was not found, ``new_value`` will be added
        -        to ``kwargs`` and None will be returned as ``old_value``.
        -        """
        -        if self.arg_pos is not None and len(args) > self.arg_pos:
        -            # The arg to replace is passed positionally
        -            old_value = args[self.arg_pos]
        -            args = list(args)  # *args is normally a tuple
        -            args[self.arg_pos] = new_value
        -        else:
        -            # The arg to replace is either omitted or passed by keyword.
        -            old_value = kwargs.get(self.name)
        -            kwargs[self.name] = new_value
        -        return old_value, args, kwargs
        -
        -
        -def timedelta_to_seconds(td):
        -    # type: (datetime.timedelta) -> float
        -    """Equivalent to ``td.total_seconds()`` (introduced in Python 2.7)."""
        -    return td.total_seconds()
        -
        -
        -def _websocket_mask_python(mask: bytes, data: bytes) -> bytes:
        -    """Websocket masking function.
        -
        -    `mask` is a `bytes` object of length 4; `data` is a `bytes` object of any length.
        -    Returns a `bytes` object of the same length as `data` with the mask applied
        -    as specified in section 5.3 of RFC 6455.
        -
        -    This pure-python implementation may be replaced by an optimized version when available.
        -    """
        -    mask_arr = array.array("B", mask)
        -    unmasked_arr = array.array("B", data)
        -    for i in range(len(data)):
        -        unmasked_arr[i] = unmasked_arr[i] ^ mask_arr[i % 4]
        -    return unmasked_arr.tobytes()
        -
        -
        -if os.environ.get("TORNADO_NO_EXTENSION") or os.environ.get("TORNADO_EXTENSION") == "0":
        -    # These environment variables exist to make it easier to do performance
        -    # comparisons; they are not guaranteed to remain supported in the future.
        -    _websocket_mask = _websocket_mask_python
        -else:
        -    try:
        -        from tornado.speedups import websocket_mask as _websocket_mask
        -    except ImportError:
        -        if os.environ.get("TORNADO_EXTENSION") == "1":
        -            raise
        -        _websocket_mask = _websocket_mask_python
        -
        -
        -def doctests():
        -    # type: () -> unittest.TestSuite
        -    import doctest
        -
        -    return doctest.DocTestSuite()
        +"""Miscellaneous utility functions and classes.
        +
        +This module is used internally by Tornado.  It is not necessarily expected
        +that the functions and classes defined here will be useful to other
        +applications, but they are documented here in case they are.
        +
        +The one public-facing part of this module is the `Configurable` class
        +and its `~Configurable.configure` method, which becomes a part of the
        +interface of its subclasses, including `.AsyncHTTPClient`, `.IOLoop`,
        +and `.Resolver`.
        +"""
        +
        +import array
        +import atexit
        +from inspect import getfullargspec
        +import os
        +import re
        +import typing
        +import zlib
        +
        +from typing import (
        +    Any,
        +    Optional,
        +    Dict,
        +    Mapping,
        +    List,
        +    Tuple,
        +    Match,
        +    Callable,
        +    Type,
        +    Sequence,
        +)
        +
        +if typing.TYPE_CHECKING:
        +    # Additional imports only used in type comments.
        +    # This lets us make these imports lazy.
        +    import datetime  # noqa: F401
        +    from types import TracebackType  # noqa: F401
        +    from typing import Union  # noqa: F401
        +    import unittest  # noqa: F401
        +
        +# Aliases for types that are spelled differently in different Python
        +# versions. bytes_type is deprecated and no longer used in Tornado
        +# itself but is left in case anyone outside Tornado is using it.
        +bytes_type = bytes
        +unicode_type = str
        +basestring_type = str
        +
        +try:
        +    from sys import is_finalizing
        +except ImportError:
        +    # Emulate it
        +    def _get_emulated_is_finalizing() -> Callable[[], bool]:
        +        L = []  # type: List[None]
        +        atexit.register(lambda: L.append(None))
        +
        +        def is_finalizing() -> bool:
        +            # Not referencing any globals here
        +            return L != []
        +
        +        return is_finalizing
        +
        +    is_finalizing = _get_emulated_is_finalizing()
        +
        +
        +class TimeoutError(Exception):
        +    """Exception raised by `.with_timeout` and `.IOLoop.run_sync`.
        +
        +    .. versionchanged:: 5.0:
        +       Unified ``tornado.gen.TimeoutError`` and
        +       ``tornado.ioloop.TimeoutError`` as ``tornado.util.TimeoutError``.
        +       Both former names remain as aliases.
        +    """
        +
        +
        +class ObjectDict(Dict[str, Any]):
        +    """Makes a dictionary behave like an object, with attribute-style access.
        +    """
        +
        +    def __getattr__(self, name: str) -> Any:
        +        try:
        +            return self[name]
        +        except KeyError:
        +            raise AttributeError(name)
        +
        +    def __setattr__(self, name: str, value: Any) -> None:
        +        self[name] = value
        +
        +
        +class GzipDecompressor(object):
        +    """Streaming gzip decompressor.
        +
        +    The interface is like that of `zlib.decompressobj` (without some of the
        +    optional arguments, but it understands gzip headers and checksums.
        +    """
        +
        +    def __init__(self) -> None:
        +        # Magic parameter makes zlib module understand gzip header
        +        # http://stackoverflow.com/questions/1838699/how-can-i-decompress-a-gzip-stream-with-zlib
        +        # This works on cpython and pypy, but not jython.
        +        self.decompressobj = zlib.decompressobj(16 + zlib.MAX_WBITS)
        +
        +    def decompress(self, value: bytes, max_length: int = 0) -> bytes:
        +        """Decompress a chunk, returning newly-available data.
        +
        +        Some data may be buffered for later processing; `flush` must
        +        be called when there is no more input data to ensure that
        +        all data was processed.
        +
        +        If ``max_length`` is given, some input data may be left over
        +        in ``unconsumed_tail``; you must retrieve this value and pass
        +        it back to a future call to `decompress` if it is not empty.
        +        """
        +        return self.decompressobj.decompress(value, max_length)
        +
        +    @property
        +    def unconsumed_tail(self) -> bytes:
        +        """Returns the unconsumed portion left over
        +        """
        +        return self.decompressobj.unconsumed_tail
        +
        +    def flush(self) -> bytes:
        +        """Return any remaining buffered data not yet returned by decompress.
        +
        +        Also checks for errors such as truncated input.
        +        No other methods may be called on this object after `flush`.
        +        """
        +        return self.decompressobj.flush()
        +
        +
        +def import_object(name: str) -> Any:
        +    """Imports an object by name.
        +
        +    ``import_object('x')`` is equivalent to ``import x``.
        +    ``import_object('x.y.z')`` is equivalent to ``from x.y import z``.
        +
        +    >>> import tornado.escape
        +    >>> import_object('tornado.escape') is tornado.escape
        +    True
        +    >>> import_object('tornado.escape.utf8') is tornado.escape.utf8
        +    True
        +    >>> import_object('tornado') is tornado
        +    True
        +    >>> import_object('tornado.missing_module')
        +    Traceback (most recent call last):
        +        ...
        +    ImportError: No module named missing_module
        +    """
        +    if name.count(".") == 0:
        +        return __import__(name)
        +
        +    parts = name.split(".")
        +    obj = __import__(".".join(parts[:-1]), fromlist=[parts[-1]])
        +    try:
        +        return getattr(obj, parts[-1])
        +    except AttributeError:
        +        raise ImportError("No module named %s" % parts[-1])
        +
        +
        +def exec_in(code: Any, glob: Dict[str, Any], loc: Mapping[str, Any] = None) -> None:
        +    if isinstance(code, str):
        +        # exec(string) inherits the caller's future imports; compile
        +        # the string first to prevent that.
        +        code = compile(code, "", "exec", dont_inherit=True)
        +    exec(code, glob, loc)
        +
        +
        +def raise_exc_info(
        +    exc_info,  # type: Tuple[Optional[type], Optional[BaseException], Optional[TracebackType]]
        +):
        +    # type: (...) -> typing.NoReturn
        +    #
        +    # This function's type annotation must use comments instead of
        +    # real annotations because typing.NoReturn does not exist in
        +    # python 3.5's typing module. The formatting is funky because this
        +    # is apparently what flake8 wants.
        +    try:
        +        if exc_info[1] is not None:
        +            raise exc_info[1].with_traceback(exc_info[2])
        +        else:
        +            raise TypeError("raise_exc_info called with no exception")
        +    finally:
        +        # Clear the traceback reference from our stack frame to
        +        # minimize circular references that slow down GC.
        +        exc_info = (None, None, None)
        +
        +
        +def errno_from_exception(e: BaseException) -> Optional[int]:
        +    """Provides the errno from an Exception object.
        +
        +    There are cases that the errno attribute was not set so we pull
        +    the errno out of the args but if someone instantiates an Exception
        +    without any args you will get a tuple error. So this function
        +    abstracts all that behavior to give you a safe way to get the
        +    errno.
        +    """
        +
        +    if hasattr(e, "errno"):
        +        return e.errno  # type: ignore
        +    elif e.args:
        +        return e.args[0]
        +    else:
        +        return None
        +
        +
        +_alphanum = frozenset("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
        +
        +
        +def _re_unescape_replacement(match: Match[str]) -> str:
        +    group = match.group(1)
        +    if group[0] in _alphanum:
        +        raise ValueError("cannot unescape '\\\\%s'" % group[0])
        +    return group
        +
        +
        +_re_unescape_pattern = re.compile(r"\\(.)", re.DOTALL)
        +
        +
        +def re_unescape(s: str) -> str:
        +    r"""Unescape a string escaped by `re.escape`.
        +
        +    May raise ``ValueError`` for regular expressions which could not
        +    have been produced by `re.escape` (for example, strings containing
        +    ``\d`` cannot be unescaped).
        +
        +    .. versionadded:: 4.4
        +    """
        +    return _re_unescape_pattern.sub(_re_unescape_replacement, s)
        +
        +
        +class Configurable(object):
        +    """Base class for configurable interfaces.
        +
        +    A configurable interface is an (abstract) class whose constructor
        +    acts as a factory function for one of its implementation subclasses.
        +    The implementation subclass as well as optional keyword arguments to
        +    its initializer can be set globally at runtime with `configure`.
        +
        +    By using the constructor as the factory method, the interface
        +    looks like a normal class, `isinstance` works as usual, etc.  This
        +    pattern is most useful when the choice of implementation is likely
        +    to be a global decision (e.g. when `~select.epoll` is available,
        +    always use it instead of `~select.select`), or when a
        +    previously-monolithic class has been split into specialized
        +    subclasses.
        +
        +    Configurable subclasses must define the class methods
        +    `configurable_base` and `configurable_default`, and use the instance
        +    method `initialize` instead of ``__init__``.
        +
        +    .. versionchanged:: 5.0
        +
        +       It is now possible for configuration to be specified at
        +       multiple levels of a class hierarchy.
        +
        +    """
        +
        +    # Type annotations on this class are mostly done with comments
        +    # because they need to refer to Configurable, which isn't defined
        +    # until after the class definition block. These can use regular
        +    # annotations when our minimum python version is 3.7.
        +    #
        +    # There may be a clever way to use generics here to get more
        +    # precise types (i.e. for a particular Configurable subclass T,
        +    # all the types are subclasses of T, not just Configurable).
        +    __impl_class = None  # type: Optional[Type[Configurable]]
        +    __impl_kwargs = None  # type: Dict[str, Any]
        +
        +    def __new__(cls, *args: Any, **kwargs: Any) -> Any:
        +        base = cls.configurable_base()
        +        init_kwargs = {}  # type: Dict[str, Any]
        +        if cls is base:
        +            impl = cls.configured_class()
        +            if base.__impl_kwargs:
        +                init_kwargs.update(base.__impl_kwargs)
        +        else:
        +            impl = cls
        +        init_kwargs.update(kwargs)
        +        if impl.configurable_base() is not base:
        +            # The impl class is itself configurable, so recurse.
        +            return impl(*args, **init_kwargs)
        +        instance = super(Configurable, cls).__new__(impl)
        +        # initialize vs __init__ chosen for compatibility with AsyncHTTPClient
        +        # singleton magic.  If we get rid of that we can switch to __init__
        +        # here too.
        +        instance.initialize(*args, **init_kwargs)
        +        return instance
        +
        +    @classmethod
        +    def configurable_base(cls):
        +        # type: () -> Type[Configurable]
        +        """Returns the base class of a configurable hierarchy.
        +
        +        This will normally return the class in which it is defined.
        +        (which is *not* necessarily the same as the ``cls`` classmethod
        +        parameter).
        +
        +        """
        +        raise NotImplementedError()
        +
        +    @classmethod
        +    def configurable_default(cls):
        +        # type: () -> Type[Configurable]
        +        """Returns the implementation class to be used if none is configured."""
        +        raise NotImplementedError()
        +
        +    def _initialize(self) -> None:
        +        pass
        +
        +    initialize = _initialize  # type: Callable[..., None]
        +    """Initialize a `Configurable` subclass instance.
        +
        +    Configurable classes should use `initialize` instead of ``__init__``.
        +
        +    .. versionchanged:: 4.2
        +       Now accepts positional arguments in addition to keyword arguments.
        +    """
        +
        +    @classmethod
        +    def configure(cls, impl, **kwargs):
        +        # type: (Union[None, str, Type[Configurable]], Any) -> None
        +        """Sets the class to use when the base class is instantiated.
        +
        +        Keyword arguments will be saved and added to the arguments passed
        +        to the constructor.  This can be used to set global defaults for
        +        some parameters.
        +        """
        +        base = cls.configurable_base()
        +        if isinstance(impl, str):
        +            impl = typing.cast(Type[Configurable], import_object(impl))
        +        if impl is not None and not issubclass(impl, cls):
        +            raise ValueError("Invalid subclass of %s" % cls)
        +        base.__impl_class = impl
        +        base.__impl_kwargs = kwargs
        +
        +    @classmethod
        +    def configured_class(cls):
        +        # type: () -> Type[Configurable]
        +        """Returns the currently configured class."""
        +        base = cls.configurable_base()
        +        # Manually mangle the private name to see whether this base
        +        # has been configured (and not another base higher in the
        +        # hierarchy).
        +        if base.__dict__.get("_Configurable__impl_class") is None:
        +            base.__impl_class = cls.configurable_default()
        +        if base.__impl_class is not None:
        +            return base.__impl_class
        +        else:
        +            # Should be impossible, but mypy wants an explicit check.
        +            raise ValueError("configured class not found")
        +
        +    @classmethod
        +    def _save_configuration(cls):
        +        # type: () -> Tuple[Optional[Type[Configurable]], Dict[str, Any]]
        +        base = cls.configurable_base()
        +        return (base.__impl_class, base.__impl_kwargs)
        +
        +    @classmethod
        +    def _restore_configuration(cls, saved):
        +        # type: (Tuple[Optional[Type[Configurable]], Dict[str, Any]]) -> None
        +        base = cls.configurable_base()
        +        base.__impl_class = saved[0]
        +        base.__impl_kwargs = saved[1]
        +
        +
        +class ArgReplacer(object):
        +    """Replaces one value in an ``args, kwargs`` pair.
        +
        +    Inspects the function signature to find an argument by name
        +    whether it is passed by position or keyword.  For use in decorators
        +    and similar wrappers.
        +    """
        +
        +    def __init__(self, func: Callable, name: str) -> None:
        +        self.name = name
        +        try:
        +            self.arg_pos = self._getargnames(func).index(name)  # type: Optional[int]
        +        except ValueError:
        +            # Not a positional parameter
        +            self.arg_pos = None
        +
        +    def _getargnames(self, func: Callable) -> List[str]:
        +        try:
        +            return getfullargspec(func).args
        +        except TypeError:
        +            if hasattr(func, "func_code"):
        +                # Cython-generated code has all the attributes needed
        +                # by inspect.getfullargspec, but the inspect module only
        +                # works with ordinary functions. Inline the portion of
        +                # getfullargspec that we need here. Note that for static
        +                # functions the @cython.binding(True) decorator must
        +                # be used (for methods it works out of the box).
        +                code = func.func_code  # type: ignore
        +                return code.co_varnames[: code.co_argcount]
        +            raise
        +
        +    def get_old_value(
        +        self, args: Sequence[Any], kwargs: Dict[str, Any], default: Any = None
        +    ) -> Any:
        +        """Returns the old value of the named argument without replacing it.
        +
        +        Returns ``default`` if the argument is not present.
        +        """
        +        if self.arg_pos is not None and len(args) > self.arg_pos:
        +            return args[self.arg_pos]
        +        else:
        +            return kwargs.get(self.name, default)
        +
        +    def replace(
        +        self, new_value: Any, args: Sequence[Any], kwargs: Dict[str, Any]
        +    ) -> Tuple[Any, Sequence[Any], Dict[str, Any]]:
        +        """Replace the named argument in ``args, kwargs`` with ``new_value``.
        +
        +        Returns ``(old_value, args, kwargs)``.  The returned ``args`` and
        +        ``kwargs`` objects may not be the same as the input objects, or
        +        the input objects may be mutated.
        +
        +        If the named argument was not found, ``new_value`` will be added
        +        to ``kwargs`` and None will be returned as ``old_value``.
        +        """
        +        if self.arg_pos is not None and len(args) > self.arg_pos:
        +            # The arg to replace is passed positionally
        +            old_value = args[self.arg_pos]
        +            args = list(args)  # *args is normally a tuple
        +            args[self.arg_pos] = new_value
        +        else:
        +            # The arg to replace is either omitted or passed by keyword.
        +            old_value = kwargs.get(self.name)
        +            kwargs[self.name] = new_value
        +        return old_value, args, kwargs
        +
        +
        +def timedelta_to_seconds(td):
        +    # type: (datetime.timedelta) -> float
        +    """Equivalent to ``td.total_seconds()`` (introduced in Python 2.7)."""
        +    return td.total_seconds()
        +
        +
        +def _websocket_mask_python(mask: bytes, data: bytes) -> bytes:
        +    """Websocket masking function.
        +
        +    `mask` is a `bytes` object of length 4; `data` is a `bytes` object of any length.
        +    Returns a `bytes` object of the same length as `data` with the mask applied
        +    as specified in section 5.3 of RFC 6455.
        +
        +    This pure-python implementation may be replaced by an optimized version when available.
        +    """
        +    mask_arr = array.array("B", mask)
        +    unmasked_arr = array.array("B", data)
        +    for i in range(len(data)):
        +        unmasked_arr[i] = unmasked_arr[i] ^ mask_arr[i % 4]
        +    return unmasked_arr.tobytes()
        +
        +
        +if os.environ.get("TORNADO_NO_EXTENSION") or os.environ.get("TORNADO_EXTENSION") == "0":
        +    # These environment variables exist to make it easier to do performance
        +    # comparisons; they are not guaranteed to remain supported in the future.
        +    _websocket_mask = _websocket_mask_python
        +else:
        +    try:
        +        from tornado.speedups import websocket_mask as _websocket_mask
        +    except ImportError:
        +        if os.environ.get("TORNADO_EXTENSION") == "1":
        +            raise
        +        _websocket_mask = _websocket_mask_python
        +
        +
        +def doctests():
        +    # type: () -> unittest.TestSuite
        +    import doctest
        +
        +    return doctest.DocTestSuite()
        diff --git a/server/www/packages/packages-linux/x64/tornado/web.py b/server/www/packages/packages-linux/x64/tornado/web.py
        index 6e6e955..08e63ec 100644
        --- a/server/www/packages/packages-linux/x64/tornado/web.py
        +++ b/server/www/packages/packages-linux/x64/tornado/web.py
        @@ -1,3585 +1,3593 @@
        -#
        -# Copyright 2009 Facebook
        -#
        -# Licensed under the Apache License, Version 2.0 (the "License"); you may
        -# not use this file except in compliance with the License. You may obtain
        -# a copy of the License at
        -#
        -#     http://www.apache.org/licenses/LICENSE-2.0
        -#
        -# Unless required by applicable law or agreed to in writing, software
        -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
        -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
        -# License for the specific language governing permissions and limitations
        -# under the License.
        -
        -"""``tornado.web`` provides a simple web framework with asynchronous
        -features that allow it to scale to large numbers of open connections,
        -making it ideal for `long polling
        -`_.
        -
        -Here is a simple "Hello, world" example app:
        -
        -.. testcode::
        -
        -    import tornado.ioloop
        -    import tornado.web
        -
        -    class MainHandler(tornado.web.RequestHandler):
        -        def get(self):
        -            self.write("Hello, world")
        -
        -    if __name__ == "__main__":
        -        application = tornado.web.Application([
        -            (r"/", MainHandler),
        -        ])
        -        application.listen(8888)
        -        tornado.ioloop.IOLoop.current().start()
        -
        -.. testoutput::
        -   :hide:
        -
        -
        -See the :doc:`guide` for additional information.
        -
        -Thread-safety notes
        --------------------
        -
        -In general, methods on `RequestHandler` and elsewhere in Tornado are
        -not thread-safe. In particular, methods such as
        -`~RequestHandler.write()`, `~RequestHandler.finish()`, and
        -`~RequestHandler.flush()` must only be called from the main thread. If
        -you use multiple threads it is important to use `.IOLoop.add_callback`
        -to transfer control back to the main thread before finishing the
        -request, or to limit your use of other threads to
        -`.IOLoop.run_in_executor` and ensure that your callbacks running in
        -the executor do not refer to Tornado objects.
        -
        -"""
        -
        -import base64
        -import binascii
        -import datetime
        -import email.utils
        -import functools
        -import gzip
        -import hashlib
        -import hmac
        -import http.cookies
        -from inspect import isclass
        -from io import BytesIO
        -import mimetypes
        -import numbers
        -import os.path
        -import re
        -import sys
        -import threading
        -import time
        -import tornado
        -import traceback
        -import types
        -import urllib.parse
        -from urllib.parse import urlencode
        -
        -from tornado.concurrent import Future, future_set_result_unless_cancelled
        -from tornado import escape
        -from tornado import gen
        -from tornado.httpserver import HTTPServer
        -from tornado import httputil
        -from tornado import iostream
        -import tornado.locale
        -from tornado import locale
        -from tornado.log import access_log, app_log, gen_log
        -from tornado import template
        -from tornado.escape import utf8, _unicode
        -from tornado.routing import (
        -    AnyMatches,
        -    DefaultHostMatches,
        -    HostMatches,
        -    ReversibleRouter,
        -    Rule,
        -    ReversibleRuleRouter,
        -    URLSpec,
        -    _RuleList,
        -)
        -from tornado.util import ObjectDict, unicode_type, _websocket_mask
        -
        -url = URLSpec
        -
        -from typing import (
        -    Dict,
        -    Any,
        -    Union,
        -    Optional,
        -    Awaitable,
        -    Tuple,
        -    List,
        -    Callable,
        -    Iterable,
        -    Generator,
        -    Type,
        -    cast,
        -    overload,
        -)
        -from types import TracebackType
        -import typing
        -
        -if typing.TYPE_CHECKING:
        -    from typing import Set  # noqa: F401
        -
        -
        -# The following types are accepted by RequestHandler.set_header
        -# and related methods.
        -_HeaderTypes = Union[bytes, unicode_type, int, numbers.Integral, datetime.datetime]
        -
        -_CookieSecretTypes = Union[str, bytes, Dict[int, str], Dict[int, bytes]]
        -
        -
        -MIN_SUPPORTED_SIGNED_VALUE_VERSION = 1
        -"""The oldest signed value version supported by this version of Tornado.
        -
        -Signed values older than this version cannot be decoded.
        -
        -.. versionadded:: 3.2.1
        -"""
        -
        -MAX_SUPPORTED_SIGNED_VALUE_VERSION = 2
        -"""The newest signed value version supported by this version of Tornado.
        -
        -Signed values newer than this version cannot be decoded.
        -
        -.. versionadded:: 3.2.1
        -"""
        -
        -DEFAULT_SIGNED_VALUE_VERSION = 2
        -"""The signed value version produced by `.RequestHandler.create_signed_value`.
        -
        -May be overridden by passing a ``version`` keyword argument.
        -
        -.. versionadded:: 3.2.1
        -"""
        -
        -DEFAULT_SIGNED_VALUE_MIN_VERSION = 1
        -"""The oldest signed value accepted by `.RequestHandler.get_secure_cookie`.
        -
        -May be overridden by passing a ``min_version`` keyword argument.
        -
        -.. versionadded:: 3.2.1
        -"""
        -
        -
        -class _ArgDefaultMarker:
        -    pass
        -
        -
        -_ARG_DEFAULT = _ArgDefaultMarker()
        -
        -
        -class RequestHandler(object):
        -    """Base class for HTTP request handlers.
        -
        -    Subclasses must define at least one of the methods defined in the
        -    "Entry points" section below.
        -
        -    Applications should not construct `RequestHandler` objects
        -    directly and subclasses should not override ``__init__`` (override
        -    `~RequestHandler.initialize` instead).
        -
        -    """
        -
        -    SUPPORTED_METHODS = ("GET", "HEAD", "POST", "DELETE", "PATCH", "PUT", "OPTIONS")
        -
        -    _template_loaders = {}  # type: Dict[str, template.BaseLoader]
        -    _template_loader_lock = threading.Lock()
        -    _remove_control_chars_regex = re.compile(r"[\x00-\x08\x0e-\x1f]")
        -
        -    _stream_request_body = False
        -
        -    # Will be set in _execute.
        -    _transforms = None  # type: List[OutputTransform]
        -    path_args = None  # type: List[str]
        -    path_kwargs = None  # type: Dict[str, str]
        -
        -    def __init__(
        -        self,
        -        application: "Application",
        -        request: httputil.HTTPServerRequest,
        -        **kwargs: Any
        -    ) -> None:
        -        super(RequestHandler, self).__init__()
        -
        -        self.application = application
        -        self.request = request
        -        self._headers_written = False
        -        self._finished = False
        -        self._auto_finish = True
        -        self._prepared_future = None
        -        self.ui = ObjectDict(
        -            (n, self._ui_method(m)) for n, m in application.ui_methods.items()
        -        )
        -        # UIModules are available as both `modules` and `_tt_modules` in the
        -        # template namespace.  Historically only `modules` was available
        -        # but could be clobbered by user additions to the namespace.
        -        # The template {% module %} directive looks in `_tt_modules` to avoid
        -        # possible conflicts.
        -        self.ui["_tt_modules"] = _UIModuleNamespace(self, application.ui_modules)
        -        self.ui["modules"] = self.ui["_tt_modules"]
        -        self.clear()
        -        assert self.request.connection is not None
        -        # TODO: need to add set_close_callback to HTTPConnection interface
        -        self.request.connection.set_close_callback(  # type: ignore
        -            self.on_connection_close
        -        )
        -        self.initialize(**kwargs)  # type: ignore
        -
        -    def _initialize(self) -> None:
        -        pass
        -
        -    initialize = _initialize  # type: Callable[..., None]
        -    """Hook for subclass initialization. Called for each request.
        -
        -    A dictionary passed as the third argument of a ``URLSpec`` will be
        -    supplied as keyword arguments to ``initialize()``.
        -
        -    Example::
        -
        -        class ProfileHandler(RequestHandler):
        -            def initialize(self, database):
        -                self.database = database
        -
        -            def get(self, username):
        -                ...
        -
        -        app = Application([
        -            (r'/user/(.*)', ProfileHandler, dict(database=database)),
        -            ])
        -    """
        -
        -    @property
        -    def settings(self) -> Dict[str, Any]:
        -        """An alias for `self.application.settings `."""
        -        return self.application.settings
        -
        -    def _unimplemented_method(self, *args: str, **kwargs: str) -> None:
        -        raise HTTPError(405)
        -
        -    head = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        -    get = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        -    post = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        -    delete = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        -    patch = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        -    put = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        -    options = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        -
        -    def prepare(self) -> Optional[Awaitable[None]]:
        -        """Called at the beginning of a request before  `get`/`post`/etc.
        -
        -        Override this method to perform common initialization regardless
        -        of the request method.
        -
        -        Asynchronous support: Use ``async def`` or decorate this method with
        -        `.gen.coroutine` to make it asynchronous.
        -        If this method returns an  ``Awaitable`` execution will not proceed
        -        until the ``Awaitable`` is done.
        -
        -        .. versionadded:: 3.1
        -           Asynchronous support.
        -        """
        -        pass
        -
        -    def on_finish(self) -> None:
        -        """Called after the end of a request.
        -
        -        Override this method to perform cleanup, logging, etc.
        -        This method is a counterpart to `prepare`.  ``on_finish`` may
        -        not produce any output, as it is called after the response
        -        has been sent to the client.
        -        """
        -        pass
        -
        -    def on_connection_close(self) -> None:
        -        """Called in async handlers if the client closed the connection.
        -
        -        Override this to clean up resources associated with
        -        long-lived connections.  Note that this method is called only if
        -        the connection was closed during asynchronous processing; if you
        -        need to do cleanup after every request override `on_finish`
        -        instead.
        -
        -        Proxies may keep a connection open for a time (perhaps
        -        indefinitely) after the client has gone away, so this method
        -        may not be called promptly after the end user closes their
        -        connection.
        -        """
        -        if _has_stream_request_body(self.__class__):
        -            if not self.request._body_future.done():
        -                self.request._body_future.set_exception(iostream.StreamClosedError())
        -                self.request._body_future.exception()
        -
        -    def clear(self) -> None:
        -        """Resets all headers and content for this response."""
        -        self._headers = httputil.HTTPHeaders(
        -            {
        -                "Server": "TornadoServer/%s" % tornado.version,
        -                "Content-Type": "text/html; charset=UTF-8",
        -                "Date": httputil.format_timestamp(time.time()),
        -            }
        -        )
        -        self.set_default_headers()
        -        self._write_buffer = []  # type: List[bytes]
        -        self._status_code = 200
        -        self._reason = httputil.responses[200]
        -
        -    def set_default_headers(self) -> None:
        -        """Override this to set HTTP headers at the beginning of the request.
        -
        -        For example, this is the place to set a custom ``Server`` header.
        -        Note that setting such headers in the normal flow of request
        -        processing may not do what you want, since headers may be reset
        -        during error handling.
        -        """
        -        pass
        -
        -    def set_status(self, status_code: int, reason: str = None) -> None:
        -        """Sets the status code for our response.
        -
        -        :arg int status_code: Response status code.
        -        :arg str reason: Human-readable reason phrase describing the status
        -            code. If ``None``, it will be filled in from
        -            `http.client.responses` or "Unknown".
        -
        -        .. versionchanged:: 5.0
        -
        -           No longer validates that the response code is in
        -           `http.client.responses`.
        -        """
        -        self._status_code = status_code
        -        if reason is not None:
        -            self._reason = escape.native_str(reason)
        -        else:
        -            self._reason = httputil.responses.get(status_code, "Unknown")
        -
        -    def get_status(self) -> int:
        -        """Returns the status code for our response."""
        -        return self._status_code
        -
        -    def set_header(self, name: str, value: _HeaderTypes) -> None:
        -        """Sets the given response header name and value.
        -
        -        All header values are converted to strings (`datetime` objects
        -        are formatted according to the HTTP specification for the
        -        ``Date`` header).
        -
        -        """
        -        self._headers[name] = self._convert_header_value(value)
        -
        -    def add_header(self, name: str, value: _HeaderTypes) -> None:
        -        """Adds the given response header and value.
        -
        -        Unlike `set_header`, `add_header` may be called multiple times
        -        to return multiple values for the same header.
        -        """
        -        self._headers.add(name, self._convert_header_value(value))
        -
        -    def clear_header(self, name: str) -> None:
        -        """Clears an outgoing header, undoing a previous `set_header` call.
        -
        -        Note that this method does not apply to multi-valued headers
        -        set by `add_header`.
        -        """
        -        if name in self._headers:
        -            del self._headers[name]
        -
        -    _INVALID_HEADER_CHAR_RE = re.compile(r"[\x00-\x1f]")
        -
        -    def _convert_header_value(self, value: _HeaderTypes) -> str:
        -        # Convert the input value to a str. This type check is a bit
        -        # subtle: The bytes case only executes on python 3, and the
        -        # unicode case only executes on python 2, because the other
        -        # cases are covered by the first match for str.
        -        if isinstance(value, str):
        -            retval = value
        -        elif isinstance(value, bytes):  # py3
        -            # Non-ascii characters in headers are not well supported,
        -            # but if you pass bytes, use latin1 so they pass through as-is.
        -            retval = value.decode("latin1")
        -        elif isinstance(value, unicode_type):  # py2
        -            # TODO: This is inconsistent with the use of latin1 above,
        -            # but it's been that way for a long time. Should it change?
        -            retval = escape.utf8(value)
        -        elif isinstance(value, numbers.Integral):
        -            # return immediately since we know the converted value will be safe
        -            return str(value)
        -        elif isinstance(value, datetime.datetime):
        -            return httputil.format_timestamp(value)
        -        else:
        -            raise TypeError("Unsupported header value %r" % value)
        -        # If \n is allowed into the header, it is possible to inject
        -        # additional headers or split the request.
        -        if RequestHandler._INVALID_HEADER_CHAR_RE.search(retval):
        -            raise ValueError("Unsafe header value %r", retval)
        -        return retval
        -
        -    @overload
        -    def get_argument(self, name: str, default: str, strip: bool = True) -> str:
        -        pass
        -
        -    @overload  # noqa: F811
        -    def get_argument(
        -        self, name: str, default: _ArgDefaultMarker = _ARG_DEFAULT, strip: bool = True
        -    ) -> str:
        -        pass
        -
        -    @overload  # noqa: F811
        -    def get_argument(
        -        self, name: str, default: None, strip: bool = True
        -    ) -> Optional[str]:
        -        pass
        -
        -    def get_argument(  # noqa: F811
        -        self,
        -        name: str,
        -        default: Union[None, str, _ArgDefaultMarker] = _ARG_DEFAULT,
        -        strip: bool = True,
        -    ) -> Optional[str]:
        -        """Returns the value of the argument with the given name.
        -
        -        If default is not provided, the argument is considered to be
        -        required, and we raise a `MissingArgumentError` if it is missing.
        -
        -        If the argument appears in the request more than once, we return the
        -        last value.
        -
        -        This method searches both the query and body arguments.
        -        """
        -        return self._get_argument(name, default, self.request.arguments, strip)
        -
        -    def get_arguments(self, name: str, strip: bool = True) -> List[str]:
        -        """Returns a list of the arguments with the given name.
        -
        -        If the argument is not present, returns an empty list.
        -
        -        This method searches both the query and body arguments.
        -        """
        -
        -        # Make sure `get_arguments` isn't accidentally being called with a
        -        # positional argument that's assumed to be a default (like in
        -        # `get_argument`.)
        -        assert isinstance(strip, bool)
        -
        -        return self._get_arguments(name, self.request.arguments, strip)
        -
        -    def get_body_argument(
        -        self,
        -        name: str,
        -        default: Union[None, str, _ArgDefaultMarker] = _ARG_DEFAULT,
        -        strip: bool = True,
        -    ) -> Optional[str]:
        -        """Returns the value of the argument with the given name
        -        from the request body.
        -
        -        If default is not provided, the argument is considered to be
        -        required, and we raise a `MissingArgumentError` if it is missing.
        -
        -        If the argument appears in the url more than once, we return the
        -        last value.
        -
        -        .. versionadded:: 3.2
        -        """
        -        return self._get_argument(name, default, self.request.body_arguments, strip)
        -
        -    def get_body_arguments(self, name: str, strip: bool = True) -> List[str]:
        -        """Returns a list of the body arguments with the given name.
        -
        -        If the argument is not present, returns an empty list.
        -
        -        .. versionadded:: 3.2
        -        """
        -        return self._get_arguments(name, self.request.body_arguments, strip)
        -
        -    def get_query_argument(
        -        self,
        -        name: str,
        -        default: Union[None, str, _ArgDefaultMarker] = _ARG_DEFAULT,
        -        strip: bool = True,
        -    ) -> Optional[str]:
        -        """Returns the value of the argument with the given name
        -        from the request query string.
        -
        -        If default is not provided, the argument is considered to be
        -        required, and we raise a `MissingArgumentError` if it is missing.
        -
        -        If the argument appears in the url more than once, we return the
        -        last value.
        -
        -        .. versionadded:: 3.2
        -        """
        -        return self._get_argument(name, default, self.request.query_arguments, strip)
        -
        -    def get_query_arguments(self, name: str, strip: bool = True) -> List[str]:
        -        """Returns a list of the query arguments with the given name.
        -
        -        If the argument is not present, returns an empty list.
        -
        -        .. versionadded:: 3.2
        -        """
        -        return self._get_arguments(name, self.request.query_arguments, strip)
        -
        -    def _get_argument(
        -        self,
        -        name: str,
        -        default: Union[None, str, _ArgDefaultMarker],
        -        source: Dict[str, List[bytes]],
        -        strip: bool = True,
        -    ) -> Optional[str]:
        -        args = self._get_arguments(name, source, strip=strip)
        -        if not args:
        -            if isinstance(default, _ArgDefaultMarker):
        -                raise MissingArgumentError(name)
        -            return default
        -        return args[-1]
        -
        -    def _get_arguments(
        -        self, name: str, source: Dict[str, List[bytes]], strip: bool = True
        -    ) -> List[str]:
        -        values = []
        -        for v in source.get(name, []):
        -            s = self.decode_argument(v, name=name)
        -            if isinstance(s, unicode_type):
        -                # Get rid of any weird control chars (unless decoding gave
        -                # us bytes, in which case leave it alone)
        -                s = RequestHandler._remove_control_chars_regex.sub(" ", s)
        -            if strip:
        -                s = s.strip()
        -            values.append(s)
        -        return values
        -
        -    def decode_argument(self, value: bytes, name: str = None) -> str:
        -        """Decodes an argument from the request.
        -
        -        The argument has been percent-decoded and is now a byte string.
        -        By default, this method decodes the argument as utf-8 and returns
        -        a unicode string, but this may be overridden in subclasses.
        -
        -        This method is used as a filter for both `get_argument()` and for
        -        values extracted from the url and passed to `get()`/`post()`/etc.
        -
        -        The name of the argument is provided if known, but may be None
        -        (e.g. for unnamed groups in the url regex).
        -        """
        -        try:
        -            return _unicode(value)
        -        except UnicodeDecodeError:
        -            raise HTTPError(
        -                400, "Invalid unicode in %s: %r" % (name or "url", value[:40])
        -            )
        -
        -    @property
        -    def cookies(self) -> Dict[str, http.cookies.Morsel]:
        -        """An alias for
        -        `self.request.cookies <.httputil.HTTPServerRequest.cookies>`."""
        -        return self.request.cookies
        -
        -    def get_cookie(self, name: str, default: str = None) -> Optional[str]:
        -        """Returns the value of the request cookie with the given name.
        -
        -        If the named cookie is not present, returns ``default``.
        -
        -        This method only returns cookies that were present in the request.
        -        It does not see the outgoing cookies set by `set_cookie` in this
        -        handler.
        -        """
        -        if self.request.cookies is not None and name in self.request.cookies:
        -            return self.request.cookies[name].value
        -        return default
        -
        -    def set_cookie(
        -        self,
        -        name: str,
        -        value: Union[str, bytes],
        -        domain: str = None,
        -        expires: Union[float, Tuple, datetime.datetime] = None,
        -        path: str = "/",
        -        expires_days: int = None,
        -        **kwargs: Any
        -    ) -> None:
        -        """Sets an outgoing cookie name/value with the given options.
        -
        -        Newly-set cookies are not immediately visible via `get_cookie`;
        -        they are not present until the next request.
        -
        -        expires may be a numeric timestamp as returned by `time.time`,
        -        a time tuple as returned by `time.gmtime`, or a
        -        `datetime.datetime` object.
        -
        -        Additional keyword arguments are set on the cookies.Morsel
        -        directly.
        -        See https://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel
        -        for available attributes.
        -        """
        -        # The cookie library only accepts type str, in both python 2 and 3
        -        name = escape.native_str(name)
        -        value = escape.native_str(value)
        -        if re.search(r"[\x00-\x20]", name + value):
        -            # Don't let us accidentally inject bad stuff
        -            raise ValueError("Invalid cookie %r: %r" % (name, value))
        -        if not hasattr(self, "_new_cookie"):
        -            self._new_cookie = http.cookies.SimpleCookie()
        -        if name in self._new_cookie:
        -            del self._new_cookie[name]
        -        self._new_cookie[name] = value
        -        morsel = self._new_cookie[name]
        -        if domain:
        -            morsel["domain"] = domain
        -        if expires_days is not None and not expires:
        -            expires = datetime.datetime.utcnow() + datetime.timedelta(days=expires_days)
        -        if expires:
        -            morsel["expires"] = httputil.format_timestamp(expires)
        -        if path:
        -            morsel["path"] = path
        -        for k, v in kwargs.items():
        -            if k == "max_age":
        -                k = "max-age"
        -
        -            # skip falsy values for httponly and secure flags because
        -            # SimpleCookie sets them regardless
        -            if k in ["httponly", "secure"] and not v:
        -                continue
        -
        -            morsel[k] = v
        -
        -    def clear_cookie(self, name: str, path: str = "/", domain: str = None) -> None:
        -        """Deletes the cookie with the given name.
        -
        -        Due to limitations of the cookie protocol, you must pass the same
        -        path and domain to clear a cookie as were used when that cookie
        -        was set (but there is no way to find out on the server side
        -        which values were used for a given cookie).
        -
        -        Similar to `set_cookie`, the effect of this method will not be
        -        seen until the following request.
        -        """
        -        expires = datetime.datetime.utcnow() - datetime.timedelta(days=365)
        -        self.set_cookie(name, value="", path=path, expires=expires, domain=domain)
        -
        -    def clear_all_cookies(self, path: str = "/", domain: str = None) -> None:
        -        """Deletes all the cookies the user sent with this request.
        -
        -        See `clear_cookie` for more information on the path and domain
        -        parameters.
        -
        -        Similar to `set_cookie`, the effect of this method will not be
        -        seen until the following request.
        -
        -        .. versionchanged:: 3.2
        -
        -           Added the ``path`` and ``domain`` parameters.
        -        """
        -        for name in self.request.cookies:
        -            self.clear_cookie(name, path=path, domain=domain)
        -
        -    def set_secure_cookie(
        -        self,
        -        name: str,
        -        value: Union[str, bytes],
        -        expires_days: int = 30,
        -        version: int = None,
        -        **kwargs: Any
        -    ) -> None:
        -        """Signs and timestamps a cookie so it cannot be forged.
        -
        -        You must specify the ``cookie_secret`` setting in your Application
        -        to use this method. It should be a long, random sequence of bytes
        -        to be used as the HMAC secret for the signature.
        -
        -        To read a cookie set with this method, use `get_secure_cookie()`.
        -
        -        Note that the ``expires_days`` parameter sets the lifetime of the
        -        cookie in the browser, but is independent of the ``max_age_days``
        -        parameter to `get_secure_cookie`.
        -
        -        Secure cookies may contain arbitrary byte values, not just unicode
        -        strings (unlike regular cookies)
        -
        -        Similar to `set_cookie`, the effect of this method will not be
        -        seen until the following request.
        -
        -        .. versionchanged:: 3.2.1
        -
        -           Added the ``version`` argument.  Introduced cookie version 2
        -           and made it the default.
        -        """
        -        self.set_cookie(
        -            name,
        -            self.create_signed_value(name, value, version=version),
        -            expires_days=expires_days,
        -            **kwargs
        -        )
        -
        -    def create_signed_value(
        -        self, name: str, value: Union[str, bytes], version: int = None
        -    ) -> bytes:
        -        """Signs and timestamps a string so it cannot be forged.
        -
        -        Normally used via set_secure_cookie, but provided as a separate
        -        method for non-cookie uses.  To decode a value not stored
        -        as a cookie use the optional value argument to get_secure_cookie.
        -
        -        .. versionchanged:: 3.2.1
        -
        -           Added the ``version`` argument.  Introduced cookie version 2
        -           and made it the default.
        -        """
        -        self.require_setting("cookie_secret", "secure cookies")
        -        secret = self.application.settings["cookie_secret"]
        -        key_version = None
        -        if isinstance(secret, dict):
        -            if self.application.settings.get("key_version") is None:
        -                raise Exception("key_version setting must be used for secret_key dicts")
        -            key_version = self.application.settings["key_version"]
        -
        -        return create_signed_value(
        -            secret, name, value, version=version, key_version=key_version
        -        )
        -
        -    def get_secure_cookie(
        -        self,
        -        name: str,
        -        value: str = None,
        -        max_age_days: int = 31,
        -        min_version: int = None,
        -    ) -> Optional[bytes]:
        -        """Returns the given signed cookie if it validates, or None.
        -
        -        The decoded cookie value is returned as a byte string (unlike
        -        `get_cookie`).
        -
        -        Similar to `get_cookie`, this method only returns cookies that
        -        were present in the request. It does not see outgoing cookies set by
        -        `set_secure_cookie` in this handler.
        -
        -        .. versionchanged:: 3.2.1
        -
        -           Added the ``min_version`` argument.  Introduced cookie version 2;
        -           both versions 1 and 2 are accepted by default.
        -        """
        -        self.require_setting("cookie_secret", "secure cookies")
        -        if value is None:
        -            value = self.get_cookie(name)
        -        return decode_signed_value(
        -            self.application.settings["cookie_secret"],
        -            name,
        -            value,
        -            max_age_days=max_age_days,
        -            min_version=min_version,
        -        )
        -
        -    def get_secure_cookie_key_version(
        -        self, name: str, value: str = None
        -    ) -> Optional[int]:
        -        """Returns the signing key version of the secure cookie.
        -
        -        The version is returned as int.
        -        """
        -        self.require_setting("cookie_secret", "secure cookies")
        -        if value is None:
        -            value = self.get_cookie(name)
        -        if value is None:
        -            return None
        -        return get_signature_key_version(value)
        -
        -    def redirect(self, url: str, permanent: bool = False, status: int = None) -> None:
        -        """Sends a redirect to the given (optionally relative) URL.
        -
        -        If the ``status`` argument is specified, that value is used as the
        -        HTTP status code; otherwise either 301 (permanent) or 302
        -        (temporary) is chosen based on the ``permanent`` argument.
        -        The default is 302 (temporary).
        -        """
        -        if self._headers_written:
        -            raise Exception("Cannot redirect after headers have been written")
        -        if status is None:
        -            status = 301 if permanent else 302
        -        else:
        -            assert isinstance(status, int) and 300 <= status <= 399
        -        self.set_status(status)
        -        self.set_header("Location", utf8(url))
        -        self.finish()
        -
        -    def write(self, chunk: Union[str, bytes, dict]) -> None:
        -        """Writes the given chunk to the output buffer.
        -
        -        To write the output to the network, use the `flush()` method below.
        -
        -        If the given chunk is a dictionary, we write it as JSON and set
        -        the Content-Type of the response to be ``application/json``.
        -        (if you want to send JSON as a different ``Content-Type``, call
        -        ``set_header`` *after* calling ``write()``).
        -
        -        Note that lists are not converted to JSON because of a potential
        -        cross-site security vulnerability.  All JSON output should be
        -        wrapped in a dictionary.  More details at
        -        http://haacked.com/archive/2009/06/25/json-hijacking.aspx/ and
        -        https://github.com/facebook/tornado/issues/1009
        -        """
        -        if self._finished:
        -            raise RuntimeError("Cannot write() after finish()")
        -        if not isinstance(chunk, (bytes, unicode_type, dict)):
        -            message = "write() only accepts bytes, unicode, and dict objects"
        -            if isinstance(chunk, list):
        -                message += (
        -                    ". Lists not accepted for security reasons; see "
        -                    + "http://www.tornadoweb.org/en/stable/web.html#tornado.web.RequestHandler.write"  # noqa: E501
        -                )
        -            raise TypeError(message)
        -        if isinstance(chunk, dict):
        -            chunk = escape.json_encode(chunk)
        -            self.set_header("Content-Type", "application/json; charset=UTF-8")
        -        chunk = utf8(chunk)
        -        self._write_buffer.append(chunk)
        -
        -    def render(self, template_name: str, **kwargs: Any) -> "Future[None]":
        -        """Renders the template with the given arguments as the response.
        -
        -        ``render()`` calls ``finish()``, so no other output methods can be called
        -        after it.
        -
        -        Returns a `.Future` with the same semantics as the one returned by `finish`.
        -        Awaiting this `.Future` is optional.
        -
        -        .. versionchanged:: 5.1
        -
        -           Now returns a `.Future` instead of ``None``.
        -        """
        -        if self._finished:
        -            raise RuntimeError("Cannot render() after finish()")
        -        html = self.render_string(template_name, **kwargs)
        -
        -        # Insert the additional JS and CSS added by the modules on the page
        -        js_embed = []
        -        js_files = []
        -        css_embed = []
        -        css_files = []
        -        html_heads = []
        -        html_bodies = []
        -        for module in getattr(self, "_active_modules", {}).values():
        -            embed_part = module.embedded_javascript()
        -            if embed_part:
        -                js_embed.append(utf8(embed_part))
        -            file_part = module.javascript_files()
        -            if file_part:
        -                if isinstance(file_part, (unicode_type, bytes)):
        -                    js_files.append(_unicode(file_part))
        -                else:
        -                    js_files.extend(file_part)
        -            embed_part = module.embedded_css()
        -            if embed_part:
        -                css_embed.append(utf8(embed_part))
        -            file_part = module.css_files()
        -            if file_part:
        -                if isinstance(file_part, (unicode_type, bytes)):
        -                    css_files.append(_unicode(file_part))
        -                else:
        -                    css_files.extend(file_part)
        -            head_part = module.html_head()
        -            if head_part:
        -                html_heads.append(utf8(head_part))
        -            body_part = module.html_body()
        -            if body_part:
        -                html_bodies.append(utf8(body_part))
        -
        -        if js_files:
        -            # Maintain order of JavaScript files given by modules
        -            js = self.render_linked_js(js_files)
        -            sloc = html.rindex(b"")
        -            html = html[:sloc] + utf8(js) + b"\n" + html[sloc:]
        -        if js_embed:
        -            js_bytes = self.render_embed_js(js_embed)
        -            sloc = html.rindex(b"")
        -            html = html[:sloc] + js_bytes + b"\n" + html[sloc:]
        -        if css_files:
        -            css = self.render_linked_css(css_files)
        -            hloc = html.index(b"")
        -            html = html[:hloc] + utf8(css) + b"\n" + html[hloc:]
        -        if css_embed:
        -            css_bytes = self.render_embed_css(css_embed)
        -            hloc = html.index(b"")
        -            html = html[:hloc] + css_bytes + b"\n" + html[hloc:]
        -        if html_heads:
        -            hloc = html.index(b"")
        -            html = html[:hloc] + b"".join(html_heads) + b"\n" + html[hloc:]
        -        if html_bodies:
        -            hloc = html.index(b"")
        -            html = html[:hloc] + b"".join(html_bodies) + b"\n" + html[hloc:]
        -        return self.finish(html)
        -
        -    def render_linked_js(self, js_files: Iterable[str]) -> str:
        -        """Default method used to render the final js links for the
        -        rendered webpage.
        -
        -        Override this method in a sub-classed controller to change the output.
        -        """
        -        paths = []
        -        unique_paths = set()  # type: Set[str]
        -
        -        for path in js_files:
        -            if not is_absolute(path):
        -                path = self.static_url(path)
        -            if path not in unique_paths:
        -                paths.append(path)
        -                unique_paths.add(path)
        -
        -        return "".join(
        -            ''
        -            for p in paths
        -        )
        -
        -    def render_embed_js(self, js_embed: Iterable[bytes]) -> bytes:
        -        """Default method used to render the final embedded js for the
        -        rendered webpage.
        -
        -        Override this method in a sub-classed controller to change the output.
        -        """
        -        return (
        -            b'"
        -        )
        -
        -    def render_linked_css(self, css_files: Iterable[str]) -> str:
        -        """Default method used to render the final css links for the
        -        rendered webpage.
        -
        -        Override this method in a sub-classed controller to change the output.
        -        """
        -        paths = []
        -        unique_paths = set()  # type: Set[str]
        -
        -        for path in css_files:
        -            if not is_absolute(path):
        -                path = self.static_url(path)
        -            if path not in unique_paths:
        -                paths.append(path)
        -                unique_paths.add(path)
        -
        -        return "".join(
        -            ''
        -            for p in paths
        -        )
        -
        -    def render_embed_css(self, css_embed: Iterable[bytes]) -> bytes:
        -        """Default method used to render the final embedded css for the
        -        rendered webpage.
        -
        -        Override this method in a sub-classed controller to change the output.
        -        """
        -        return b'"
        -
        -    def render_string(self, template_name: str, **kwargs: Any) -> bytes:
        -        """Generate the given template with the given arguments.
        -
        -        We return the generated byte string (in utf8). To generate and
        -        write a template as a response, use render() above.
        -        """
        -        # If no template_path is specified, use the path of the calling file
        -        template_path = self.get_template_path()
        -        if not template_path:
        -            frame = sys._getframe(0)
        -            web_file = frame.f_code.co_filename
        -            while frame.f_code.co_filename == web_file:
        -                frame = frame.f_back
        -            assert frame.f_code.co_filename is not None
        -            template_path = os.path.dirname(frame.f_code.co_filename)
        -        with RequestHandler._template_loader_lock:
        -            if template_path not in RequestHandler._template_loaders:
        -                loader = self.create_template_loader(template_path)
        -                RequestHandler._template_loaders[template_path] = loader
        -            else:
        -                loader = RequestHandler._template_loaders[template_path]
        -        t = loader.load(template_name)
        -        namespace = self.get_template_namespace()
        -        namespace.update(kwargs)
        -        return t.generate(**namespace)
        -
        -    def get_template_namespace(self) -> Dict[str, Any]:
        -        """Returns a dictionary to be used as the default template namespace.
        -
        -        May be overridden by subclasses to add or modify values.
        -
        -        The results of this method will be combined with additional
        -        defaults in the `tornado.template` module and keyword arguments
        -        to `render` or `render_string`.
        -        """
        -        namespace = dict(
        -            handler=self,
        -            request=self.request,
        -            current_user=self.current_user,
        -            locale=self.locale,
        -            _=self.locale.translate,
        -            pgettext=self.locale.pgettext,
        -            static_url=self.static_url,
        -            xsrf_form_html=self.xsrf_form_html,
        -            reverse_url=self.reverse_url,
        -        )
        -        namespace.update(self.ui)
        -        return namespace
        -
        -    def create_template_loader(self, template_path: str) -> template.BaseLoader:
        -        """Returns a new template loader for the given path.
        -
        -        May be overridden by subclasses.  By default returns a
        -        directory-based loader on the given path, using the
        -        ``autoescape`` and ``template_whitespace`` application
        -        settings.  If a ``template_loader`` application setting is
        -        supplied, uses that instead.
        -        """
        -        settings = self.application.settings
        -        if "template_loader" in settings:
        -            return settings["template_loader"]
        -        kwargs = {}
        -        if "autoescape" in settings:
        -            # autoescape=None means "no escaping", so we have to be sure
        -            # to only pass this kwarg if the user asked for it.
        -            kwargs["autoescape"] = settings["autoescape"]
        -        if "template_whitespace" in settings:
        -            kwargs["whitespace"] = settings["template_whitespace"]
        -        return template.Loader(template_path, **kwargs)
        -
        -    def flush(self, include_footers: bool = False) -> "Future[None]":
        -        """Flushes the current output buffer to the network.
        -
        -        The ``callback`` argument, if given, can be used for flow control:
        -        it will be run when all flushed data has been written to the socket.
        -        Note that only one flush callback can be outstanding at a time;
        -        if another flush occurs before the previous flush's callback
        -        has been run, the previous callback will be discarded.
        -
        -        .. versionchanged:: 4.0
        -           Now returns a `.Future` if no callback is given.
        -
        -        .. versionchanged:: 6.0
        -
        -           The ``callback`` argument was removed.
        -        """
        -        assert self.request.connection is not None
        -        chunk = b"".join(self._write_buffer)
        -        self._write_buffer = []
        -        if not self._headers_written:
        -            self._headers_written = True
        -            for transform in self._transforms:
        -                assert chunk is not None
        -                self._status_code, self._headers, chunk = transform.transform_first_chunk(
        -                    self._status_code, self._headers, chunk, include_footers
        -                )
        -            # Ignore the chunk and only write the headers for HEAD requests
        -            if self.request.method == "HEAD":
        -                chunk = b""
        -
        -            # Finalize the cookie headers (which have been stored in a side
        -            # object so an outgoing cookie could be overwritten before it
        -            # is sent).
        -            if hasattr(self, "_new_cookie"):
        -                for cookie in self._new_cookie.values():
        -                    self.add_header("Set-Cookie", cookie.OutputString(None))
        -
        -            start_line = httputil.ResponseStartLine("", self._status_code, self._reason)
        -            return self.request.connection.write_headers(
        -                start_line, self._headers, chunk
        -            )
        -        else:
        -            for transform in self._transforms:
        -                chunk = transform.transform_chunk(chunk, include_footers)
        -            # Ignore the chunk and only write the headers for HEAD requests
        -            if self.request.method != "HEAD":
        -                return self.request.connection.write(chunk)
        -            else:
        -                future = Future()  # type: Future[None]
        -                future.set_result(None)
        -                return future
        -
        -    def finish(self, chunk: Union[str, bytes, dict] = None) -> "Future[None]":
        -        """Finishes this response, ending the HTTP request.
        -
        -        Passing a ``chunk`` to ``finish()`` is equivalent to passing that
        -        chunk to ``write()`` and then calling ``finish()`` with no arguments.
        -
        -        Returns a `.Future` which may optionally be awaited to track the sending
        -        of the response to the client. This `.Future` resolves when all the response
        -        data has been sent, and raises an error if the connection is closed before all
        -        data can be sent.
        -
        -        .. versionchanged:: 5.1
        -
        -           Now returns a `.Future` instead of ``None``.
        -        """
        -        if self._finished:
        -            raise RuntimeError("finish() called twice")
        -
        -        if chunk is not None:
        -            self.write(chunk)
        -
        -        # Automatically support ETags and add the Content-Length header if
        -        # we have not flushed any content yet.
        -        if not self._headers_written:
        -            if (
        -                self._status_code == 200
        -                and self.request.method in ("GET", "HEAD")
        -                and "Etag" not in self._headers
        -            ):
        -                self.set_etag_header()
        -                if self.check_etag_header():
        -                    self._write_buffer = []
        -                    self.set_status(304)
        -            if self._status_code in (204, 304) or (
        -                self._status_code >= 100 and self._status_code < 200
        -            ):
        -                assert not self._write_buffer, (
        -                    "Cannot send body with %s" % self._status_code
        -                )
        -                self._clear_headers_for_304()
        -            elif "Content-Length" not in self._headers:
        -                content_length = sum(len(part) for part in self._write_buffer)
        -                self.set_header("Content-Length", content_length)
        -
        -        assert self.request.connection is not None
        -        # Now that the request is finished, clear the callback we
        -        # set on the HTTPConnection (which would otherwise prevent the
        -        # garbage collection of the RequestHandler when there
        -        # are keepalive connections)
        -        self.request.connection.set_close_callback(None)  # type: ignore
        -
        -        future = self.flush(include_footers=True)
        -        self.request.connection.finish()
        -        self._log()
        -        self._finished = True
        -        self.on_finish()
        -        self._break_cycles()
        -        return future
        -
        -    def detach(self) -> iostream.IOStream:
        -        """Take control of the underlying stream.
        -
        -        Returns the underlying `.IOStream` object and stops all
        -        further HTTP processing. Intended for implementing protocols
        -        like websockets that tunnel over an HTTP handshake.
        -
        -        This method is only supported when HTTP/1.1 is used.
        -
        -        .. versionadded:: 5.1
        -        """
        -        self._finished = True
        -        # TODO: add detach to HTTPConnection?
        -        return self.request.connection.detach()  # type: ignore
        -
        -    def _break_cycles(self) -> None:
        -        # Break up a reference cycle between this handler and the
        -        # _ui_module closures to allow for faster GC on CPython.
        -        self.ui = None  # type: ignore
        -
        -    def send_error(self, status_code: int = 500, **kwargs: Any) -> None:
        -        """Sends the given HTTP error code to the browser.
        -
        -        If `flush()` has already been called, it is not possible to send
        -        an error, so this method will simply terminate the response.
        -        If output has been written but not yet flushed, it will be discarded
        -        and replaced with the error page.
        -
        -        Override `write_error()` to customize the error page that is returned.
        -        Additional keyword arguments are passed through to `write_error`.
        -        """
        -        if self._headers_written:
        -            gen_log.error("Cannot send error response after headers written")
        -            if not self._finished:
        -                # If we get an error between writing headers and finishing,
        -                # we are unlikely to be able to finish due to a
        -                # Content-Length mismatch. Try anyway to release the
        -                # socket.
        -                try:
        -                    self.finish()
        -                except Exception:
        -                    gen_log.error("Failed to flush partial response", exc_info=True)
        -            return
        -        self.clear()
        -
        -        reason = kwargs.get("reason")
        -        if "exc_info" in kwargs:
        -            exception = kwargs["exc_info"][1]
        -            if isinstance(exception, HTTPError) and exception.reason:
        -                reason = exception.reason
        -        self.set_status(status_code, reason=reason)
        -        try:
        -            self.write_error(status_code, **kwargs)
        -        except Exception:
        -            app_log.error("Uncaught exception in write_error", exc_info=True)
        -        if not self._finished:
        -            self.finish()
        -
        -    def write_error(self, status_code: int, **kwargs: Any) -> None:
        -        """Override to implement custom error pages.
        -
        -        ``write_error`` may call `write`, `render`, `set_header`, etc
        -        to produce output as usual.
        -
        -        If this error was caused by an uncaught exception (including
        -        HTTPError), an ``exc_info`` triple will be available as
        -        ``kwargs["exc_info"]``.  Note that this exception may not be
        -        the "current" exception for purposes of methods like
        -        ``sys.exc_info()`` or ``traceback.format_exc``.
        -        """
        -        if self.settings.get("serve_traceback") and "exc_info" in kwargs:
        -            # in debug mode, try to send a traceback
        -            self.set_header("Content-Type", "text/plain")
        -            for line in traceback.format_exception(*kwargs["exc_info"]):
        -                self.write(line)
        -            self.finish()
        -        else:
        -            self.finish(
        -                "%(code)d: %(message)s"
        -                "%(code)d: %(message)s"
        -                % {"code": status_code, "message": self._reason}
        -            )
        -
        -    @property
        -    def locale(self) -> tornado.locale.Locale:
        -        """The locale for the current session.
        -
        -        Determined by either `get_user_locale`, which you can override to
        -        set the locale based on, e.g., a user preference stored in a
        -        database, or `get_browser_locale`, which uses the ``Accept-Language``
        -        header.
        -
        -        .. versionchanged: 4.1
        -           Added a property setter.
        -        """
        -        if not hasattr(self, "_locale"):
        -            loc = self.get_user_locale()
        -            if loc is not None:
        -                self._locale = loc
        -            else:
        -                self._locale = self.get_browser_locale()
        -                assert self._locale
        -        return self._locale
        -
        -    @locale.setter
        -    def locale(self, value: tornado.locale.Locale) -> None:
        -        self._locale = value
        -
        -    def get_user_locale(self) -> Optional[tornado.locale.Locale]:
        -        """Override to determine the locale from the authenticated user.
        -
        -        If None is returned, we fall back to `get_browser_locale()`.
        -
        -        This method should return a `tornado.locale.Locale` object,
        -        most likely obtained via a call like ``tornado.locale.get("en")``
        -        """
        -        return None
        -
        -    def get_browser_locale(self, default: str = "en_US") -> tornado.locale.Locale:
        -        """Determines the user's locale from ``Accept-Language`` header.
        -
        -        See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
        -        """
        -        if "Accept-Language" in self.request.headers:
        -            languages = self.request.headers["Accept-Language"].split(",")
        -            locales = []
        -            for language in languages:
        -                parts = language.strip().split(";")
        -                if len(parts) > 1 and parts[1].startswith("q="):
        -                    try:
        -                        score = float(parts[1][2:])
        -                    except (ValueError, TypeError):
        -                        score = 0.0
        -                else:
        -                    score = 1.0
        -                locales.append((parts[0], score))
        -            if locales:
        -                locales.sort(key=lambda pair: pair[1], reverse=True)
        -                codes = [l[0] for l in locales]
        -                return locale.get(*codes)
        -        return locale.get(default)
        -
        -    @property
        -    def current_user(self) -> Any:
        -        """The authenticated user for this request.
        -
        -        This is set in one of two ways:
        -
        -        * A subclass may override `get_current_user()`, which will be called
        -          automatically the first time ``self.current_user`` is accessed.
        -          `get_current_user()` will only be called once per request,
        -          and is cached for future access::
        -
        -              def get_current_user(self):
        -                  user_cookie = self.get_secure_cookie("user")
        -                  if user_cookie:
        -                      return json.loads(user_cookie)
        -                  return None
        -
        -        * It may be set as a normal variable, typically from an overridden
        -          `prepare()`::
        -
        -              @gen.coroutine
        -              def prepare(self):
        -                  user_id_cookie = self.get_secure_cookie("user_id")
        -                  if user_id_cookie:
        -                      self.current_user = yield load_user(user_id_cookie)
        -
        -        Note that `prepare()` may be a coroutine while `get_current_user()`
        -        may not, so the latter form is necessary if loading the user requires
        -        asynchronous operations.
        -
        -        The user object may be any type of the application's choosing.
        -        """
        -        if not hasattr(self, "_current_user"):
        -            self._current_user = self.get_current_user()
        -        return self._current_user
        -
        -    @current_user.setter
        -    def current_user(self, value: Any) -> None:
        -        self._current_user = value
        -
        -    def get_current_user(self) -> Any:
        -        """Override to determine the current user from, e.g., a cookie.
        -
        -        This method may not be a coroutine.
        -        """
        -        return None
        -
        -    def get_login_url(self) -> str:
        -        """Override to customize the login URL based on the request.
        -
        -        By default, we use the ``login_url`` application setting.
        -        """
        -        self.require_setting("login_url", "@tornado.web.authenticated")
        -        return self.application.settings["login_url"]
        -
        -    def get_template_path(self) -> Optional[str]:
        -        """Override to customize template path for each handler.
        -
        -        By default, we use the ``template_path`` application setting.
        -        Return None to load templates relative to the calling file.
        -        """
        -        return self.application.settings.get("template_path")
        -
        -    @property
        -    def xsrf_token(self) -> bytes:
        -        """The XSRF-prevention token for the current user/session.
        -
        -        To prevent cross-site request forgery, we set an '_xsrf' cookie
        -        and include the same '_xsrf' value as an argument with all POST
        -        requests. If the two do not match, we reject the form submission
        -        as a potential forgery.
        -
        -        See http://en.wikipedia.org/wiki/Cross-site_request_forgery
        -
        -        This property is of type `bytes`, but it contains only ASCII
        -        characters. If a character string is required, there is no
        -        need to base64-encode it; just decode the byte string as
        -        UTF-8.
        -
        -        .. versionchanged:: 3.2.2
        -           The xsrf token will now be have a random mask applied in every
        -           request, which makes it safe to include the token in pages
        -           that are compressed.  See http://breachattack.com for more
        -           information on the issue fixed by this change.  Old (version 1)
        -           cookies will be converted to version 2 when this method is called
        -           unless the ``xsrf_cookie_version`` `Application` setting is
        -           set to 1.
        -
        -        .. versionchanged:: 4.3
        -           The ``xsrf_cookie_kwargs`` `Application` setting may be
        -           used to supply additional cookie options (which will be
        -           passed directly to `set_cookie`). For example,
        -           ``xsrf_cookie_kwargs=dict(httponly=True, secure=True)``
        -           will set the ``secure`` and ``httponly`` flags on the
        -           ``_xsrf`` cookie.
        -        """
        -        if not hasattr(self, "_xsrf_token"):
        -            version, token, timestamp = self._get_raw_xsrf_token()
        -            output_version = self.settings.get("xsrf_cookie_version", 2)
        -            cookie_kwargs = self.settings.get("xsrf_cookie_kwargs", {})
        -            if output_version == 1:
        -                self._xsrf_token = binascii.b2a_hex(token)
        -            elif output_version == 2:
        -                mask = os.urandom(4)
        -                self._xsrf_token = b"|".join(
        -                    [
        -                        b"2",
        -                        binascii.b2a_hex(mask),
        -                        binascii.b2a_hex(_websocket_mask(mask, token)),
        -                        utf8(str(int(timestamp))),
        -                    ]
        -                )
        -            else:
        -                raise ValueError("unknown xsrf cookie version %d", output_version)
        -            if version is None:
        -                if self.current_user and "expires_days" not in cookie_kwargs:
        -                    cookie_kwargs["expires_days"] = 30
        -                self.set_cookie("_xsrf", self._xsrf_token, **cookie_kwargs)
        -        return self._xsrf_token
        -
        -    def _get_raw_xsrf_token(self) -> Tuple[Optional[int], bytes, float]:
        -        """Read or generate the xsrf token in its raw form.
        -
        -        The raw_xsrf_token is a tuple containing:
        -
        -        * version: the version of the cookie from which this token was read,
        -          or None if we generated a new token in this request.
        -        * token: the raw token data; random (non-ascii) bytes.
        -        * timestamp: the time this token was generated (will not be accurate
        -          for version 1 cookies)
        -        """
        -        if not hasattr(self, "_raw_xsrf_token"):
        -            cookie = self.get_cookie("_xsrf")
        -            if cookie:
        -                version, token, timestamp = self._decode_xsrf_token(cookie)
        -            else:
        -                version, token, timestamp = None, None, None
        -            if token is None:
        -                version = None
        -                token = os.urandom(16)
        -                timestamp = time.time()
        -            assert token is not None
        -            assert timestamp is not None
        -            self._raw_xsrf_token = (version, token, timestamp)
        -        return self._raw_xsrf_token
        -
        -    def _decode_xsrf_token(
        -        self, cookie: str
        -    ) -> Tuple[Optional[int], Optional[bytes], Optional[float]]:
        -        """Convert a cookie string into a the tuple form returned by
        -        _get_raw_xsrf_token.
        -        """
        -
        -        try:
        -            m = _signed_value_version_re.match(utf8(cookie))
        -
        -            if m:
        -                version = int(m.group(1))
        -                if version == 2:
        -                    _, mask_str, masked_token, timestamp_str = cookie.split("|")
        -
        -                    mask = binascii.a2b_hex(utf8(mask_str))
        -                    token = _websocket_mask(mask, binascii.a2b_hex(utf8(masked_token)))
        -                    timestamp = int(timestamp_str)
        -                    return version, token, timestamp
        -                else:
        -                    # Treat unknown versions as not present instead of failing.
        -                    raise Exception("Unknown xsrf cookie version")
        -            else:
        -                version = 1
        -                try:
        -                    token = binascii.a2b_hex(utf8(cookie))
        -                except (binascii.Error, TypeError):
        -                    token = utf8(cookie)
        -                # We don't have a usable timestamp in older versions.
        -                timestamp = int(time.time())
        -                return (version, token, timestamp)
        -        except Exception:
        -            # Catch exceptions and return nothing instead of failing.
        -            gen_log.debug("Uncaught exception in _decode_xsrf_token", exc_info=True)
        -            return None, None, None
        -
        -    def check_xsrf_cookie(self) -> None:
        -        """Verifies that the ``_xsrf`` cookie matches the ``_xsrf`` argument.
        -
        -        To prevent cross-site request forgery, we set an ``_xsrf``
        -        cookie and include the same value as a non-cookie
        -        field with all ``POST`` requests. If the two do not match, we
        -        reject the form submission as a potential forgery.
        -
        -        The ``_xsrf`` value may be set as either a form field named ``_xsrf``
        -        or in a custom HTTP header named ``X-XSRFToken`` or ``X-CSRFToken``
        -        (the latter is accepted for compatibility with Django).
        -
        -        See http://en.wikipedia.org/wiki/Cross-site_request_forgery
        -
        -        .. versionchanged:: 3.2.2
        -           Added support for cookie version 2.  Both versions 1 and 2 are
        -           supported.
        -        """
        -        # Prior to release 1.1.1, this check was ignored if the HTTP header
        -        # ``X-Requested-With: XMLHTTPRequest`` was present.  This exception
        -        # has been shown to be insecure and has been removed.  For more
        -        # information please see
        -        # http://www.djangoproject.com/weblog/2011/feb/08/security/
        -        # http://weblog.rubyonrails.org/2011/2/8/csrf-protection-bypass-in-ruby-on-rails
        -        token = (
        -            self.get_argument("_xsrf", None)
        -            or self.request.headers.get("X-Xsrftoken")
        -            or self.request.headers.get("X-Csrftoken")
        -        )
        -        if not token:
        -            raise HTTPError(403, "'_xsrf' argument missing from POST")
        -        _, token, _ = self._decode_xsrf_token(token)
        -        _, expected_token, _ = self._get_raw_xsrf_token()
        -        if not token:
        -            raise HTTPError(403, "'_xsrf' argument has invalid format")
        -        if not hmac.compare_digest(utf8(token), utf8(expected_token)):
        -            raise HTTPError(403, "XSRF cookie does not match POST argument")
        -
        -    def xsrf_form_html(self) -> str:
        -        """An HTML ```` element to be included with all POST forms.
        -
        -        It defines the ``_xsrf`` input value, which we check on all POST
        -        requests to prevent cross-site request forgery. If you have set
        -        the ``xsrf_cookies`` application setting, you must include this
        -        HTML within all of your HTML forms.
        -
        -        In a template, this method should be called with ``{% module
        -        xsrf_form_html() %}``
        -
        -        See `check_xsrf_cookie()` above for more information.
        -        """
        -        return (
        -            ''
        -        )
        -
        -    def static_url(self, path: str, include_host: bool = None, **kwargs: Any) -> str:
        -        """Returns a static URL for the given relative static file path.
        -
        -        This method requires you set the ``static_path`` setting in your
        -        application (which specifies the root directory of your static
        -        files).
        -
        -        This method returns a versioned url (by default appending
        -        ``?v=``), which allows the static files to be
        -        cached indefinitely.  This can be disabled by passing
        -        ``include_version=False`` (in the default implementation;
        -        other static file implementations are not required to support
        -        this, but they may support other options).
        -
        -        By default this method returns URLs relative to the current
        -        host, but if ``include_host`` is true the URL returned will be
        -        absolute.  If this handler has an ``include_host`` attribute,
        -        that value will be used as the default for all `static_url`
        -        calls that do not pass ``include_host`` as a keyword argument.
        -
        -        """
        -        self.require_setting("static_path", "static_url")
        -        get_url = self.settings.get(
        -            "static_handler_class", StaticFileHandler
        -        ).make_static_url
        -
        -        if include_host is None:
        -            include_host = getattr(self, "include_host", False)
        -
        -        if include_host:
        -            base = self.request.protocol + "://" + self.request.host
        -        else:
        -            base = ""
        -
        -        return base + get_url(self.settings, path, **kwargs)
        -
        -    def require_setting(self, name: str, feature: str = "this feature") -> None:
        -        """Raises an exception if the given app setting is not defined."""
        -        if not self.application.settings.get(name):
        -            raise Exception(
        -                "You must define the '%s' setting in your "
        -                "application to use %s" % (name, feature)
        -            )
        -
        -    def reverse_url(self, name: str, *args: Any) -> str:
        -        """Alias for `Application.reverse_url`."""
        -        return self.application.reverse_url(name, *args)
        -
        -    def compute_etag(self) -> Optional[str]:
        -        """Computes the etag header to be used for this request.
        -
        -        By default uses a hash of the content written so far.
        -
        -        May be overridden to provide custom etag implementations,
        -        or may return None to disable tornado's default etag support.
        -        """
        -        hasher = hashlib.sha1()
        -        for part in self._write_buffer:
        -            hasher.update(part)
        -        return '"%s"' % hasher.hexdigest()
        -
        -    def set_etag_header(self) -> None:
        -        """Sets the response's Etag header using ``self.compute_etag()``.
        -
        -        Note: no header will be set if ``compute_etag()`` returns ``None``.
        -
        -        This method is called automatically when the request is finished.
        -        """
        -        etag = self.compute_etag()
        -        if etag is not None:
        -            self.set_header("Etag", etag)
        -
        -    def check_etag_header(self) -> bool:
        -        """Checks the ``Etag`` header against requests's ``If-None-Match``.
        -
        -        Returns ``True`` if the request's Etag matches and a 304 should be
        -        returned. For example::
        -
        -            self.set_etag_header()
        -            if self.check_etag_header():
        -                self.set_status(304)
        -                return
        -
        -        This method is called automatically when the request is finished,
        -        but may be called earlier for applications that override
        -        `compute_etag` and want to do an early check for ``If-None-Match``
        -        before completing the request.  The ``Etag`` header should be set
        -        (perhaps with `set_etag_header`) before calling this method.
        -        """
        -        computed_etag = utf8(self._headers.get("Etag", ""))
        -        # Find all weak and strong etag values from If-None-Match header
        -        # because RFC 7232 allows multiple etag values in a single header.
        -        etags = re.findall(
        -            br'\*|(?:W/)?"[^"]*"', utf8(self.request.headers.get("If-None-Match", ""))
        -        )
        -        if not computed_etag or not etags:
        -            return False
        -
        -        match = False
        -        if etags[0] == b"*":
        -            match = True
        -        else:
        -            # Use a weak comparison when comparing entity-tags.
        -            def val(x: bytes) -> bytes:
        -                return x[2:] if x.startswith(b"W/") else x
        -
        -            for etag in etags:
        -                if val(etag) == val(computed_etag):
        -                    match = True
        -                    break
        -        return match
        -
        -    async def _execute(
        -        self, transforms: List["OutputTransform"], *args: bytes, **kwargs: bytes
        -    ) -> None:
        -        """Executes this request with the given output transforms."""
        -        self._transforms = transforms
        -        try:
        -            if self.request.method not in self.SUPPORTED_METHODS:
        -                raise HTTPError(405)
        -            self.path_args = [self.decode_argument(arg) for arg in args]
        -            self.path_kwargs = dict(
        -                (k, self.decode_argument(v, name=k)) for (k, v) in kwargs.items()
        -            )
        -            # If XSRF cookies are turned on, reject form submissions without
        -            # the proper cookie
        -            if self.request.method not in (
        -                "GET",
        -                "HEAD",
        -                "OPTIONS",
        -            ) and self.application.settings.get("xsrf_cookies"):
        -                self.check_xsrf_cookie()
        -
        -            result = self.prepare()
        -            if result is not None:
        -                result = await result
        -            if self._prepared_future is not None:
        -                # Tell the Application we've finished with prepare()
        -                # and are ready for the body to arrive.
        -                future_set_result_unless_cancelled(self._prepared_future, None)
        -            if self._finished:
        -                return
        -
        -            if _has_stream_request_body(self.__class__):
        -                # In streaming mode request.body is a Future that signals
        -                # the body has been completely received.  The Future has no
        -                # result; the data has been passed to self.data_received
        -                # instead.
        -                try:
        -                    await self.request._body_future
        -                except iostream.StreamClosedError:
        -                    return
        -
        -            method = getattr(self, self.request.method.lower())
        -            result = method(*self.path_args, **self.path_kwargs)
        -            if result is not None:
        -                result = await result
        -            if self._auto_finish and not self._finished:
        -                self.finish()
        -        except Exception as e:
        -            try:
        -                self._handle_request_exception(e)
        -            except Exception:
        -                app_log.error("Exception in exception handler", exc_info=True)
        -            finally:
        -                # Unset result to avoid circular references
        -                result = None
        -            if self._prepared_future is not None and not self._prepared_future.done():
        -                # In case we failed before setting _prepared_future, do it
        -                # now (to unblock the HTTP server).  Note that this is not
        -                # in a finally block to avoid GC issues prior to Python 3.4.
        -                self._prepared_future.set_result(None)
        -
        -    def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]:
        -        """Implement this method to handle streamed request data.
        -
        -        Requires the `.stream_request_body` decorator.
        -
        -        May be a coroutine for flow control.
        -        """
        -        raise NotImplementedError()
        -
        -    def _log(self) -> None:
        -        """Logs the current request.
        -
        -        Sort of deprecated since this functionality was moved to the
        -        Application, but left in place for the benefit of existing apps
        -        that have overridden this method.
        -        """
        -        self.application.log_request(self)
        -
        -    def _request_summary(self) -> str:
        -        return "%s %s (%s)" % (
        -            self.request.method,
        -            self.request.uri,
        -            self.request.remote_ip,
        -        )
        -
        -    def _handle_request_exception(self, e: BaseException) -> None:
        -        if isinstance(e, Finish):
        -            # Not an error; just finish the request without logging.
        -            if not self._finished:
        -                self.finish(*e.args)
        -            return
        -        try:
        -            self.log_exception(*sys.exc_info())
        -        except Exception:
        -            # An error here should still get a best-effort send_error()
        -            # to avoid leaking the connection.
        -            app_log.error("Error in exception logger", exc_info=True)
        -        if self._finished:
        -            # Extra errors after the request has been finished should
        -            # be logged, but there is no reason to continue to try and
        -            # send a response.
        -            return
        -        if isinstance(e, HTTPError):
        -            self.send_error(e.status_code, exc_info=sys.exc_info())
        -        else:
        -            self.send_error(500, exc_info=sys.exc_info())
        -
        -    def log_exception(
        -        self,
        -        typ: "Optional[Type[BaseException]]",
        -        value: Optional[BaseException],
        -        tb: Optional[TracebackType],
        -    ) -> None:
        -        """Override to customize logging of uncaught exceptions.
        -
        -        By default logs instances of `HTTPError` as warnings without
        -        stack traces (on the ``tornado.general`` logger), and all
        -        other exceptions as errors with stack traces (on the
        -        ``tornado.application`` logger).
        -
        -        .. versionadded:: 3.1
        -        """
        -        if isinstance(value, HTTPError):
        -            if value.log_message:
        -                format = "%d %s: " + value.log_message
        -                args = [value.status_code, self._request_summary()] + list(value.args)
        -                gen_log.warning(format, *args)
        -        else:
        -            app_log.error(  # type: ignore
        -                "Uncaught exception %s\n%r",
        -                self._request_summary(),
        -                self.request,
        -                exc_info=(typ, value, tb),
        -            )
        -
        -    def _ui_module(self, name: str, module: Type["UIModule"]) -> Callable[..., str]:
        -        def render(*args, **kwargs) -> str:  # type: ignore
        -            if not hasattr(self, "_active_modules"):
        -                self._active_modules = {}  # type: Dict[str, UIModule]
        -            if name not in self._active_modules:
        -                self._active_modules[name] = module(self)
        -            rendered = self._active_modules[name].render(*args, **kwargs)
        -            return rendered
        -
        -        return render
        -
        -    def _ui_method(self, method: Callable[..., str]) -> Callable[..., str]:
        -        return lambda *args, **kwargs: method(self, *args, **kwargs)
        -
        -    def _clear_headers_for_304(self) -> None:
        -        # 304 responses should not contain entity headers (defined in
        -        # http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1)
        -        # not explicitly allowed by
        -        # http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5
        -        headers = [
        -            "Allow",
        -            "Content-Encoding",
        -            "Content-Language",
        -            "Content-Length",
        -            "Content-MD5",
        -            "Content-Range",
        -            "Content-Type",
        -            "Last-Modified",
        -        ]
        -        for h in headers:
        -            self.clear_header(h)
        -
        -
        -def stream_request_body(cls: Type[RequestHandler]) -> Type[RequestHandler]:
        -    """Apply to `RequestHandler` subclasses to enable streaming body support.
        -
        -    This decorator implies the following changes:
        -
        -    * `.HTTPServerRequest.body` is undefined, and body arguments will not
        -      be included in `RequestHandler.get_argument`.
        -    * `RequestHandler.prepare` is called when the request headers have been
        -      read instead of after the entire body has been read.
        -    * The subclass must define a method ``data_received(self, data):``, which
        -      will be called zero or more times as data is available.  Note that
        -      if the request has an empty body, ``data_received`` may not be called.
        -    * ``prepare`` and ``data_received`` may return Futures (such as via
        -      ``@gen.coroutine``, in which case the next method will not be called
        -      until those futures have completed.
        -    * The regular HTTP method (``post``, ``put``, etc) will be called after
        -      the entire body has been read.
        -
        -    See the `file receiver demo `_
        -    for example usage.
        -    """  # noqa: E501
        -    if not issubclass(cls, RequestHandler):
        -        raise TypeError("expected subclass of RequestHandler, got %r", cls)
        -    cls._stream_request_body = True
        -    return cls
        -
        -
        -def _has_stream_request_body(cls: Type[RequestHandler]) -> bool:
        -    if not issubclass(cls, RequestHandler):
        -        raise TypeError("expected subclass of RequestHandler, got %r", cls)
        -    return cls._stream_request_body
        -
        -
        -def removeslash(
        -    method: Callable[..., Optional[Awaitable[None]]]
        -) -> Callable[..., Optional[Awaitable[None]]]:
        -    """Use this decorator to remove trailing slashes from the request path.
        -
        -    For example, a request to ``/foo/`` would redirect to ``/foo`` with this
        -    decorator. Your request handler mapping should use a regular expression
        -    like ``r'/foo/*'`` in conjunction with using the decorator.
        -    """
        -
        -    @functools.wraps(method)
        -    def wrapper(  # type: ignore
        -        self: RequestHandler, *args, **kwargs
        -    ) -> Optional[Awaitable[None]]:
        -        if self.request.path.endswith("/"):
        -            if self.request.method in ("GET", "HEAD"):
        -                uri = self.request.path.rstrip("/")
        -                if uri:  # don't try to redirect '/' to ''
        -                    if self.request.query:
        -                        uri += "?" + self.request.query
        -                    self.redirect(uri, permanent=True)
        -                    return None
        -            else:
        -                raise HTTPError(404)
        -        return method(self, *args, **kwargs)
        -
        -    return wrapper
        -
        -
        -def addslash(
        -    method: Callable[..., Optional[Awaitable[None]]]
        -) -> Callable[..., Optional[Awaitable[None]]]:
        -    """Use this decorator to add a missing trailing slash to the request path.
        -
        -    For example, a request to ``/foo`` would redirect to ``/foo/`` with this
        -    decorator. Your request handler mapping should use a regular expression
        -    like ``r'/foo/?'`` in conjunction with using the decorator.
        -    """
        -
        -    @functools.wraps(method)
        -    def wrapper(  # type: ignore
        -        self: RequestHandler, *args, **kwargs
        -    ) -> Optional[Awaitable[None]]:
        -        if not self.request.path.endswith("/"):
        -            if self.request.method in ("GET", "HEAD"):
        -                uri = self.request.path + "/"
        -                if self.request.query:
        -                    uri += "?" + self.request.query
        -                self.redirect(uri, permanent=True)
        -                return None
        -            raise HTTPError(404)
        -        return method(self, *args, **kwargs)
        -
        -    return wrapper
        -
        -
        -class _ApplicationRouter(ReversibleRuleRouter):
        -    """Routing implementation used internally by `Application`.
        -
        -    Provides a binding between `Application` and `RequestHandler`.
        -    This implementation extends `~.routing.ReversibleRuleRouter` in a couple of ways:
        -        * it allows to use `RequestHandler` subclasses as `~.routing.Rule` target and
        -        * it allows to use a list/tuple of rules as `~.routing.Rule` target.
        -        ``process_rule`` implementation will substitute this list with an appropriate
        -        `_ApplicationRouter` instance.
        -    """
        -
        -    def __init__(self, application: "Application", rules: _RuleList = None) -> None:
        -        assert isinstance(application, Application)
        -        self.application = application
        -        super(_ApplicationRouter, self).__init__(rules)
        -
        -    def process_rule(self, rule: Rule) -> Rule:
        -        rule = super(_ApplicationRouter, self).process_rule(rule)
        -
        -        if isinstance(rule.target, (list, tuple)):
        -            rule.target = _ApplicationRouter(  # type: ignore
        -                self.application, rule.target
        -            )
        -
        -        return rule
        -
        -    def get_target_delegate(
        -        self, target: Any, request: httputil.HTTPServerRequest, **target_params: Any
        -    ) -> Optional[httputil.HTTPMessageDelegate]:
        -        if isclass(target) and issubclass(target, RequestHandler):
        -            return self.application.get_handler_delegate(
        -                request, target, **target_params
        -            )
        -
        -        return super(_ApplicationRouter, self).get_target_delegate(
        -            target, request, **target_params
        -        )
        -
        -
        -class Application(ReversibleRouter):
        -    r"""A collection of request handlers that make up a web application.
        -
        -    Instances of this class are callable and can be passed directly to
        -    HTTPServer to serve the application::
        -
        -        application = web.Application([
        -            (r"/", MainPageHandler),
        -        ])
        -        http_server = httpserver.HTTPServer(application)
        -        http_server.listen(8080)
        -        ioloop.IOLoop.current().start()
        -
        -    The constructor for this class takes in a list of `~.routing.Rule`
        -    objects or tuples of values corresponding to the arguments of
        -    `~.routing.Rule` constructor: ``(matcher, target, [target_kwargs], [name])``,
        -    the values in square brackets being optional. The default matcher is
        -    `~.routing.PathMatches`, so ``(regexp, target)`` tuples can also be used
        -    instead of ``(PathMatches(regexp), target)``.
        -
        -    A common routing target is a `RequestHandler` subclass, but you can also
        -    use lists of rules as a target, which create a nested routing configuration::
        -
        -        application = web.Application([
        -            (HostMatches("example.com"), [
        -                (r"/", MainPageHandler),
        -                (r"/feed", FeedHandler),
        -            ]),
        -        ])
        -
        -    In addition to this you can use nested `~.routing.Router` instances,
        -    `~.httputil.HTTPMessageDelegate` subclasses and callables as routing targets
        -    (see `~.routing` module docs for more information).
        -
        -    When we receive requests, we iterate over the list in order and
        -    instantiate an instance of the first request class whose regexp
        -    matches the request path. The request class can be specified as
        -    either a class object or a (fully-qualified) name.
        -
        -    A dictionary may be passed as the third element (``target_kwargs``)
        -    of the tuple, which will be used as keyword arguments to the handler's
        -    constructor and `~RequestHandler.initialize` method. This pattern
        -    is used for the `StaticFileHandler` in this example (note that a
        -    `StaticFileHandler` can be installed automatically with the
        -    static_path setting described below)::
        -
        -        application = web.Application([
        -            (r"/static/(.*)", web.StaticFileHandler, {"path": "/var/www"}),
        -        ])
        -
        -    We support virtual hosts with the `add_handlers` method, which takes in
        -    a host regular expression as the first argument::
        -
        -        application.add_handlers(r"www\.myhost\.com", [
        -            (r"/article/([0-9]+)", ArticleHandler),
        -        ])
        -
        -    If there's no match for the current request's host, then ``default_host``
        -    parameter value is matched against host regular expressions.
        -
        -
        -    .. warning::
        -
        -       Applications that do not use TLS may be vulnerable to :ref:`DNS
        -       rebinding ` attacks. This attack is especially
        -       relevant to applications that only listen on ``127.0.0.1`` or
        -       other private networks. Appropriate host patterns must be used
        -       (instead of the default of ``r'.*'``) to prevent this risk. The
        -       ``default_host`` argument must not be used in applications that
        -       may be vulnerable to DNS rebinding.
        -
        -    You can serve static files by sending the ``static_path`` setting
        -    as a keyword argument. We will serve those files from the
        -    ``/static/`` URI (this is configurable with the
        -    ``static_url_prefix`` setting), and we will serve ``/favicon.ico``
        -    and ``/robots.txt`` from the same directory.  A custom subclass of
        -    `StaticFileHandler` can be specified with the
        -    ``static_handler_class`` setting.
        -
        -    .. versionchanged:: 4.5
        -       Integration with the new `tornado.routing` module.
        -
        -    """
        -
        -    def __init__(
        -        self,
        -        handlers: _RuleList = None,
        -        default_host: str = None,
        -        transforms: List[Type["OutputTransform"]] = None,
        -        **settings: Any
        -    ) -> None:
        -        if transforms is None:
        -            self.transforms = []  # type: List[Type[OutputTransform]]
        -            if settings.get("compress_response") or settings.get("gzip"):
        -                self.transforms.append(GZipContentEncoding)
        -        else:
        -            self.transforms = transforms
        -        self.default_host = default_host
        -        self.settings = settings
        -        self.ui_modules = {
        -            "linkify": _linkify,
        -            "xsrf_form_html": _xsrf_form_html,
        -            "Template": TemplateModule,
        -        }
        -        self.ui_methods = {}  # type: Dict[str, Callable[..., str]]
        -        self._load_ui_modules(settings.get("ui_modules", {}))
        -        self._load_ui_methods(settings.get("ui_methods", {}))
        -        if self.settings.get("static_path"):
        -            path = self.settings["static_path"]
        -            handlers = list(handlers or [])
        -            static_url_prefix = settings.get("static_url_prefix", "/static/")
        -            static_handler_class = settings.get(
        -                "static_handler_class", StaticFileHandler
        -            )
        -            static_handler_args = settings.get("static_handler_args", {})
        -            static_handler_args["path"] = path
        -            for pattern in [
        -                re.escape(static_url_prefix) + r"(.*)",
        -                r"/(favicon\.ico)",
        -                r"/(robots\.txt)",
        -            ]:
        -                handlers.insert(0, (pattern, static_handler_class, static_handler_args))
        -
        -        if self.settings.get("debug"):
        -            self.settings.setdefault("autoreload", True)
        -            self.settings.setdefault("compiled_template_cache", False)
        -            self.settings.setdefault("static_hash_cache", False)
        -            self.settings.setdefault("serve_traceback", True)
        -
        -        self.wildcard_router = _ApplicationRouter(self, handlers)
        -        self.default_router = _ApplicationRouter(
        -            self, [Rule(AnyMatches(), self.wildcard_router)]
        -        )
        -
        -        # Automatically reload modified modules
        -        if self.settings.get("autoreload"):
        -            from tornado import autoreload
        -
        -            autoreload.start()
        -
        -    def listen(self, port: int, address: str = "", **kwargs: Any) -> HTTPServer:
        -        """Starts an HTTP server for this application on the given port.
        -
        -        This is a convenience alias for creating an `.HTTPServer`
        -        object and calling its listen method.  Keyword arguments not
        -        supported by `HTTPServer.listen <.TCPServer.listen>` are passed to the
        -        `.HTTPServer` constructor.  For advanced uses
        -        (e.g. multi-process mode), do not use this method; create an
        -        `.HTTPServer` and call its
        -        `.TCPServer.bind`/`.TCPServer.start` methods directly.
        -
        -        Note that after calling this method you still need to call
        -        ``IOLoop.current().start()`` to start the server.
        -
        -        Returns the `.HTTPServer` object.
        -
        -        .. versionchanged:: 4.3
        -           Now returns the `.HTTPServer` object.
        -        """
        -        server = HTTPServer(self, **kwargs)
        -        server.listen(port, address)
        -        return server
        -
        -    def add_handlers(self, host_pattern: str, host_handlers: _RuleList) -> None:
        -        """Appends the given handlers to our handler list.
        -
        -        Host patterns are processed sequentially in the order they were
        -        added. All matching patterns will be considered.
        -        """
        -        host_matcher = HostMatches(host_pattern)
        -        rule = Rule(host_matcher, _ApplicationRouter(self, host_handlers))
        -
        -        self.default_router.rules.insert(-1, rule)
        -
        -        if self.default_host is not None:
        -            self.wildcard_router.add_rules(
        -                [(DefaultHostMatches(self, host_matcher.host_pattern), host_handlers)]
        -            )
        -
        -    def add_transform(self, transform_class: Type["OutputTransform"]) -> None:
        -        self.transforms.append(transform_class)
        -
        -    def _load_ui_methods(self, methods: Any) -> None:
        -        if isinstance(methods, types.ModuleType):
        -            self._load_ui_methods(dict((n, getattr(methods, n)) for n in dir(methods)))
        -        elif isinstance(methods, list):
        -            for m in methods:
        -                self._load_ui_methods(m)
        -        else:
        -            for name, fn in methods.items():
        -                if (
        -                    not name.startswith("_")
        -                    and hasattr(fn, "__call__")
        -                    and name[0].lower() == name[0]
        -                ):
        -                    self.ui_methods[name] = fn
        -
        -    def _load_ui_modules(self, modules: Any) -> None:
        -        if isinstance(modules, types.ModuleType):
        -            self._load_ui_modules(dict((n, getattr(modules, n)) for n in dir(modules)))
        -        elif isinstance(modules, list):
        -            for m in modules:
        -                self._load_ui_modules(m)
        -        else:
        -            assert isinstance(modules, dict)
        -            for name, cls in modules.items():
        -                try:
        -                    if issubclass(cls, UIModule):
        -                        self.ui_modules[name] = cls
        -                except TypeError:
        -                    pass
        -
        -    def __call__(
        -        self, request: httputil.HTTPServerRequest
        -    ) -> Optional[Awaitable[None]]:
        -        # Legacy HTTPServer interface
        -        dispatcher = self.find_handler(request)
        -        return dispatcher.execute()
        -
        -    def find_handler(
        -        self, request: httputil.HTTPServerRequest, **kwargs: Any
        -    ) -> "_HandlerDelegate":
        -        route = self.default_router.find_handler(request)
        -        if route is not None:
        -            return cast("_HandlerDelegate", route)
        -
        -        if self.settings.get("default_handler_class"):
        -            return self.get_handler_delegate(
        -                request,
        -                self.settings["default_handler_class"],
        -                self.settings.get("default_handler_args", {}),
        -            )
        -
        -        return self.get_handler_delegate(request, ErrorHandler, {"status_code": 404})
        -
        -    def get_handler_delegate(
        -        self,
        -        request: httputil.HTTPServerRequest,
        -        target_class: Type[RequestHandler],
        -        target_kwargs: Dict[str, Any] = None,
        -        path_args: List[bytes] = None,
        -        path_kwargs: Dict[str, bytes] = None,
        -    ) -> "_HandlerDelegate":
        -        """Returns `~.httputil.HTTPMessageDelegate` that can serve a request
        -        for application and `RequestHandler` subclass.
        -
        -        :arg httputil.HTTPServerRequest request: current HTTP request.
        -        :arg RequestHandler target_class: a `RequestHandler` class.
        -        :arg dict target_kwargs: keyword arguments for ``target_class`` constructor.
        -        :arg list path_args: positional arguments for ``target_class`` HTTP method that
        -            will be executed while handling a request (``get``, ``post`` or any other).
        -        :arg dict path_kwargs: keyword arguments for ``target_class`` HTTP method.
        -        """
        -        return _HandlerDelegate(
        -            self, request, target_class, target_kwargs, path_args, path_kwargs
        -        )
        -
        -    def reverse_url(self, name: str, *args: Any) -> str:
        -        """Returns a URL path for handler named ``name``
        -
        -        The handler must be added to the application as a named `URLSpec`.
        -
        -        Args will be substituted for capturing groups in the `URLSpec` regex.
        -        They will be converted to strings if necessary, encoded as utf8,
        -        and url-escaped.
        -        """
        -        reversed_url = self.default_router.reverse_url(name, *args)
        -        if reversed_url is not None:
        -            return reversed_url
        -
        -        raise KeyError("%s not found in named urls" % name)
        -
        -    def log_request(self, handler: RequestHandler) -> None:
        -        """Writes a completed HTTP request to the logs.
        -
        -        By default writes to the python root logger.  To change
        -        this behavior either subclass Application and override this method,
        -        or pass a function in the application settings dictionary as
        -        ``log_function``.
        -        """
        -        if "log_function" in self.settings:
        -            self.settings["log_function"](handler)
        -            return
        -        if handler.get_status() < 400:
        -            log_method = access_log.info
        -        elif handler.get_status() < 500:
        -            log_method = access_log.warning
        -        else:
        -            log_method = access_log.error
        -        request_time = 1000.0 * handler.request.request_time()
        -        log_method(
        -            "%d %s %.2fms",
        -            handler.get_status(),
        -            handler._request_summary(),
        -            request_time,
        -        )
        -
        -
        -class _HandlerDelegate(httputil.HTTPMessageDelegate):
        -    def __init__(
        -        self,
        -        application: Application,
        -        request: httputil.HTTPServerRequest,
        -        handler_class: Type[RequestHandler],
        -        handler_kwargs: Optional[Dict[str, Any]],
        -        path_args: Optional[List[bytes]],
        -        path_kwargs: Optional[Dict[str, bytes]],
        -    ) -> None:
        -        self.application = application
        -        self.connection = request.connection
        -        self.request = request
        -        self.handler_class = handler_class
        -        self.handler_kwargs = handler_kwargs or {}
        -        self.path_args = path_args or []
        -        self.path_kwargs = path_kwargs or {}
        -        self.chunks = []  # type: List[bytes]
        -        self.stream_request_body = _has_stream_request_body(self.handler_class)
        -
        -    def headers_received(
        -        self,
        -        start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine],
        -        headers: httputil.HTTPHeaders,
        -    ) -> Optional[Awaitable[None]]:
        -        if self.stream_request_body:
        -            self.request._body_future = Future()
        -            return self.execute()
        -        return None
        -
        -    def data_received(self, data: bytes) -> Optional[Awaitable[None]]:
        -        if self.stream_request_body:
        -            return self.handler.data_received(data)
        -        else:
        -            self.chunks.append(data)
        -            return None
        -
        -    def finish(self) -> None:
        -        if self.stream_request_body:
        -            future_set_result_unless_cancelled(self.request._body_future, None)
        -        else:
        -            self.request.body = b"".join(self.chunks)
        -            self.request._parse_body()
        -            self.execute()
        -
        -    def on_connection_close(self) -> None:
        -        if self.stream_request_body:
        -            self.handler.on_connection_close()
        -        else:
        -            self.chunks = None  # type: ignore
        -
        -    def execute(self) -> Optional[Awaitable[None]]:
        -        # If template cache is disabled (usually in the debug mode),
        -        # re-compile templates and reload static files on every
        -        # request so you don't need to restart to see changes
        -        if not self.application.settings.get("compiled_template_cache", True):
        -            with RequestHandler._template_loader_lock:
        -                for loader in RequestHandler._template_loaders.values():
        -                    loader.reset()
        -        if not self.application.settings.get("static_hash_cache", True):
        -            StaticFileHandler.reset()
        -
        -        self.handler = self.handler_class(
        -            self.application, self.request, **self.handler_kwargs
        -        )
        -        transforms = [t(self.request) for t in self.application.transforms]
        -
        -        if self.stream_request_body:
        -            self.handler._prepared_future = Future()
        -        # Note that if an exception escapes handler._execute it will be
        -        # trapped in the Future it returns (which we are ignoring here,
        -        # leaving it to be logged when the Future is GC'd).
        -        # However, that shouldn't happen because _execute has a blanket
        -        # except handler, and we cannot easily access the IOLoop here to
        -        # call add_future (because of the requirement to remain compatible
        -        # with WSGI)
        -        fut = gen.convert_yielded(
        -            self.handler._execute(transforms, *self.path_args, **self.path_kwargs)
        -        )
        -        fut.add_done_callback(lambda f: f.result())
        -        # If we are streaming the request body, then execute() is finished
        -        # when the handler has prepared to receive the body.  If not,
        -        # it doesn't matter when execute() finishes (so we return None)
        -        return self.handler._prepared_future
        -
        -
        -class HTTPError(Exception):
        -    """An exception that will turn into an HTTP error response.
        -
        -    Raising an `HTTPError` is a convenient alternative to calling
        -    `RequestHandler.send_error` since it automatically ends the
        -    current function.
        -
        -    To customize the response sent with an `HTTPError`, override
        -    `RequestHandler.write_error`.
        -
        -    :arg int status_code: HTTP status code.  Must be listed in
        -        `httplib.responses ` unless the ``reason``
        -        keyword argument is given.
        -    :arg str log_message: Message to be written to the log for this error
        -        (will not be shown to the user unless the `Application` is in debug
        -        mode).  May contain ``%s``-style placeholders, which will be filled
        -        in with remaining positional parameters.
        -    :arg str reason: Keyword-only argument.  The HTTP "reason" phrase
        -        to pass in the status line along with ``status_code``.  Normally
        -        determined automatically from ``status_code``, but can be used
        -        to use a non-standard numeric code.
        -    """
        -
        -    def __init__(
        -        self, status_code: int = 500, log_message: str = None, *args: Any, **kwargs: Any
        -    ) -> None:
        -        self.status_code = status_code
        -        self.log_message = log_message
        -        self.args = args
        -        self.reason = kwargs.get("reason", None)
        -        if log_message and not args:
        -            self.log_message = log_message.replace("%", "%%")
        -
        -    def __str__(self) -> str:
        -        message = "HTTP %d: %s" % (
        -            self.status_code,
        -            self.reason or httputil.responses.get(self.status_code, "Unknown"),
        -        )
        -        if self.log_message:
        -            return message + " (" + (self.log_message % self.args) + ")"
        -        else:
        -            return message
        -
        -
        -class Finish(Exception):
        -    """An exception that ends the request without producing an error response.
        -
        -    When `Finish` is raised in a `RequestHandler`, the request will
        -    end (calling `RequestHandler.finish` if it hasn't already been
        -    called), but the error-handling methods (including
        -    `RequestHandler.write_error`) will not be called.
        -
        -    If `Finish()` was created with no arguments, the pending response
        -    will be sent as-is. If `Finish()` was given an argument, that
        -    argument will be passed to `RequestHandler.finish()`.
        -
        -    This can be a more convenient way to implement custom error pages
        -    than overriding ``write_error`` (especially in library code)::
        -
        -        if self.current_user is None:
        -            self.set_status(401)
        -            self.set_header('WWW-Authenticate', 'Basic realm="something"')
        -            raise Finish()
        -
        -    .. versionchanged:: 4.3
        -       Arguments passed to ``Finish()`` will be passed on to
        -       `RequestHandler.finish`.
        -    """
        -
        -    pass
        -
        -
        -class MissingArgumentError(HTTPError):
        -    """Exception raised by `RequestHandler.get_argument`.
        -
        -    This is a subclass of `HTTPError`, so if it is uncaught a 400 response
        -    code will be used instead of 500 (and a stack trace will not be logged).
        -
        -    .. versionadded:: 3.1
        -    """
        -
        -    def __init__(self, arg_name: str) -> None:
        -        super(MissingArgumentError, self).__init__(
        -            400, "Missing argument %s" % arg_name
        -        )
        -        self.arg_name = arg_name
        -
        -
        -class ErrorHandler(RequestHandler):
        -    """Generates an error response with ``status_code`` for all requests."""
        -
        -    def initialize(self, status_code: int) -> None:
        -        self.set_status(status_code)
        -
        -    def prepare(self) -> None:
        -        raise HTTPError(self._status_code)
        -
        -    def check_xsrf_cookie(self) -> None:
        -        # POSTs to an ErrorHandler don't actually have side effects,
        -        # so we don't need to check the xsrf token.  This allows POSTs
        -        # to the wrong url to return a 404 instead of 403.
        -        pass
        -
        -
        -class RedirectHandler(RequestHandler):
        -    """Redirects the client to the given URL for all GET requests.
        -
        -    You should provide the keyword argument ``url`` to the handler, e.g.::
        -
        -        application = web.Application([
        -            (r"/oldpath", web.RedirectHandler, {"url": "/newpath"}),
        -        ])
        -
        -    `RedirectHandler` supports regular expression substitutions. E.g., to
        -    swap the first and second parts of a path while preserving the remainder::
        -
        -        application = web.Application([
        -            (r"/(.*?)/(.*?)/(.*)", web.RedirectHandler, {"url": "/{1}/{0}/{2}"}),
        -        ])
        -
        -    The final URL is formatted with `str.format` and the substrings that match
        -    the capturing groups. In the above example, a request to "/a/b/c" would be
        -    formatted like::
        -
        -        str.format("/{1}/{0}/{2}", "a", "b", "c")  # -> "/b/a/c"
        -
        -    Use Python's :ref:`format string syntax ` to customize how
        -    values are substituted.
        -
        -    .. versionchanged:: 4.5
        -       Added support for substitutions into the destination URL.
        -
        -    .. versionchanged:: 5.0
        -       If any query arguments are present, they will be copied to the
        -       destination URL.
        -    """
        -
        -    def initialize(self, url: str, permanent: bool = True) -> None:
        -        self._url = url
        -        self._permanent = permanent
        -
        -    def get(self, *args: Any) -> None:
        -        to_url = self._url.format(*args)
        -        if self.request.query_arguments:
        -            # TODO: figure out typing for the next line.
        -            to_url = httputil.url_concat(
        -                to_url,
        -                list(httputil.qs_to_qsl(self.request.query_arguments)),  # type: ignore
        -            )
        -        self.redirect(to_url, permanent=self._permanent)
        -
        -
        -class StaticFileHandler(RequestHandler):
        -    """A simple handler that can serve static content from a directory.
        -
        -    A `StaticFileHandler` is configured automatically if you pass the
        -    ``static_path`` keyword argument to `Application`.  This handler
        -    can be customized with the ``static_url_prefix``, ``static_handler_class``,
        -    and ``static_handler_args`` settings.
        -
        -    To map an additional path to this handler for a static data directory
        -    you would add a line to your application like::
        -
        -        application = web.Application([
        -            (r"/content/(.*)", web.StaticFileHandler, {"path": "/var/www"}),
        -        ])
        -
        -    The handler constructor requires a ``path`` argument, which specifies the
        -    local root directory of the content to be served.
        -
        -    Note that a capture group in the regex is required to parse the value for
        -    the ``path`` argument to the get() method (different than the constructor
        -    argument above); see `URLSpec` for details.
        -
        -    To serve a file like ``index.html`` automatically when a directory is
        -    requested, set ``static_handler_args=dict(default_filename="index.html")``
        -    in your application settings, or add ``default_filename`` as an initializer
        -    argument for your ``StaticFileHandler``.
        -
        -    To maximize the effectiveness of browser caching, this class supports
        -    versioned urls (by default using the argument ``?v=``).  If a version
        -    is given, we instruct the browser to cache this file indefinitely.
        -    `make_static_url` (also available as `RequestHandler.static_url`) can
        -    be used to construct a versioned url.
        -
        -    This handler is intended primarily for use in development and light-duty
        -    file serving; for heavy traffic it will be more efficient to use
        -    a dedicated static file server (such as nginx or Apache).  We support
        -    the HTTP ``Accept-Ranges`` mechanism to return partial content (because
        -    some browsers require this functionality to be present to seek in
        -    HTML5 audio or video).
        -
        -    **Subclassing notes**
        -
        -    This class is designed to be extensible by subclassing, but because
        -    of the way static urls are generated with class methods rather than
        -    instance methods, the inheritance patterns are somewhat unusual.
        -    Be sure to use the ``@classmethod`` decorator when overriding a
        -    class method.  Instance methods may use the attributes ``self.path``
        -    ``self.absolute_path``, and ``self.modified``.
        -
        -    Subclasses should only override methods discussed in this section;
        -    overriding other methods is error-prone.  Overriding
        -    ``StaticFileHandler.get`` is particularly problematic due to the
        -    tight coupling with ``compute_etag`` and other methods.
        -
        -    To change the way static urls are generated (e.g. to match the behavior
        -    of another server or CDN), override `make_static_url`, `parse_url_path`,
        -    `get_cache_time`, and/or `get_version`.
        -
        -    To replace all interaction with the filesystem (e.g. to serve
        -    static content from a database), override `get_content`,
        -    `get_content_size`, `get_modified_time`, `get_absolute_path`, and
        -    `validate_absolute_path`.
        -
        -    .. versionchanged:: 3.1
        -       Many of the methods for subclasses were added in Tornado 3.1.
        -    """
        -
        -    CACHE_MAX_AGE = 86400 * 365 * 10  # 10 years
        -
        -    _static_hashes = {}  # type: Dict[str, Optional[str]]
        -    _lock = threading.Lock()  # protects _static_hashes
        -
        -    def initialize(self, path: str, default_filename: str = None) -> None:
        -        self.root = path
        -        self.default_filename = default_filename
        -
        -    @classmethod
        -    def reset(cls) -> None:
        -        with cls._lock:
        -            cls._static_hashes = {}
        -
        -    def head(self, path: str) -> Awaitable[None]:
        -        return self.get(path, include_body=False)
        -
        -    async def get(self, path: str, include_body: bool = True) -> None:
        -        # Set up our path instance variables.
        -        self.path = self.parse_url_path(path)
        -        del path  # make sure we don't refer to path instead of self.path again
        -        absolute_path = self.get_absolute_path(self.root, self.path)
        -        self.absolute_path = self.validate_absolute_path(self.root, absolute_path)
        -        if self.absolute_path is None:
        -            return
        -
        -        self.modified = self.get_modified_time()
        -        self.set_headers()
        -
        -        if self.should_return_304():
        -            self.set_status(304)
        -            return
        -
        -        request_range = None
        -        range_header = self.request.headers.get("Range")
        -        if range_header:
        -            # As per RFC 2616 14.16, if an invalid Range header is specified,
        -            # the request will be treated as if the header didn't exist.
        -            request_range = httputil._parse_request_range(range_header)
        -
        -        size = self.get_content_size()
        -        if request_range:
        -            start, end = request_range
        -            if start is not None and start < 0:
        -                start += size
        -                if start < 0:
        -                    start = 0
        -            if (
        -                start is not None
        -                and (start >= size or (end is not None and start >= end))
        -            ) or end == 0:
        -                # As per RFC 2616 14.35.1, a range is not satisfiable only: if
        -                # the first requested byte is equal to or greater than the
        -                # content, or when a suffix with length 0 is specified.
        -                # https://tools.ietf.org/html/rfc7233#section-2.1
        -                # A byte-range-spec is invalid if the last-byte-pos value is present
        -                # and less than the first-byte-pos.
        -                self.set_status(416)  # Range Not Satisfiable
        -                self.set_header("Content-Type", "text/plain")
        -                self.set_header("Content-Range", "bytes */%s" % (size,))
        -                return
        -            if end is not None and end > size:
        -                # Clients sometimes blindly use a large range to limit their
        -                # download size; cap the endpoint at the actual file size.
        -                end = size
        -            # Note: only return HTTP 206 if less than the entire range has been
        -            # requested. Not only is this semantically correct, but Chrome
        -            # refuses to play audio if it gets an HTTP 206 in response to
        -            # ``Range: bytes=0-``.
        -            if size != (end or size) - (start or 0):
        -                self.set_status(206)  # Partial Content
        -                self.set_header(
        -                    "Content-Range", httputil._get_content_range(start, end, size)
        -                )
        -        else:
        -            start = end = None
        -
        -        if start is not None and end is not None:
        -            content_length = end - start
        -        elif end is not None:
        -            content_length = end
        -        elif start is not None:
        -            content_length = size - start
        -        else:
        -            content_length = size
        -        self.set_header("Content-Length", content_length)
        -
        -        if include_body:
        -            content = self.get_content(self.absolute_path, start, end)
        -            if isinstance(content, bytes):
        -                content = [content]
        -            for chunk in content:
        -                try:
        -                    self.write(chunk)
        -                    await self.flush()
        -                except iostream.StreamClosedError:
        -                    return
        -        else:
        -            assert self.request.method == "HEAD"
        -
        -    def compute_etag(self) -> Optional[str]:
        -        """Sets the ``Etag`` header based on static url version.
        -
        -        This allows efficient ``If-None-Match`` checks against cached
        -        versions, and sends the correct ``Etag`` for a partial response
        -        (i.e. the same ``Etag`` as the full file).
        -
        -        .. versionadded:: 3.1
        -        """
        -        assert self.absolute_path is not None
        -        version_hash = self._get_cached_version(self.absolute_path)
        -        if not version_hash:
        -            return None
        -        return '"%s"' % (version_hash,)
        -
        -    def set_headers(self) -> None:
        -        """Sets the content and caching headers on the response.
        -
        -        .. versionadded:: 3.1
        -        """
        -        self.set_header("Accept-Ranges", "bytes")
        -        self.set_etag_header()
        -
        -        if self.modified is not None:
        -            self.set_header("Last-Modified", self.modified)
        -
        -        content_type = self.get_content_type()
        -        if content_type:
        -            self.set_header("Content-Type", content_type)
        -
        -        cache_time = self.get_cache_time(self.path, self.modified, content_type)
        -        if cache_time > 0:
        -            self.set_header(
        -                "Expires",
        -                datetime.datetime.utcnow() + datetime.timedelta(seconds=cache_time),
        -            )
        -            self.set_header("Cache-Control", "max-age=" + str(cache_time))
        -
        -        self.set_extra_headers(self.path)
        -
        -    def should_return_304(self) -> bool:
        -        """Returns True if the headers indicate that we should return 304.
        -
        -        .. versionadded:: 3.1
        -        """
        -        # If client sent If-None-Match, use it, ignore If-Modified-Since
        -        if self.request.headers.get("If-None-Match"):
        -            return self.check_etag_header()
        -
        -        # Check the If-Modified-Since, and don't send the result if the
        -        # content has not been modified
        -        ims_value = self.request.headers.get("If-Modified-Since")
        -        if ims_value is not None:
        -            date_tuple = email.utils.parsedate(ims_value)
        -            if date_tuple is not None:
        -                if_since = datetime.datetime(*date_tuple[:6])
        -                assert self.modified is not None
        -                if if_since >= self.modified:
        -                    return True
        -
        -        return False
        -
        -    @classmethod
        -    def get_absolute_path(cls, root: str, path: str) -> str:
        -        """Returns the absolute location of ``path`` relative to ``root``.
        -
        -        ``root`` is the path configured for this `StaticFileHandler`
        -        (in most cases the ``static_path`` `Application` setting).
        -
        -        This class method may be overridden in subclasses.  By default
        -        it returns a filesystem path, but other strings may be used
        -        as long as they are unique and understood by the subclass's
        -        overridden `get_content`.
        -
        -        .. versionadded:: 3.1
        -        """
        -        abspath = os.path.abspath(os.path.join(root, path))
        -        return abspath
        -
        -    def validate_absolute_path(self, root: str, absolute_path: str) -> Optional[str]:
        -        """Validate and return the absolute path.
        -
        -        ``root`` is the configured path for the `StaticFileHandler`,
        -        and ``path`` is the result of `get_absolute_path`
        -
        -        This is an instance method called during request processing,
        -        so it may raise `HTTPError` or use methods like
        -        `RequestHandler.redirect` (return None after redirecting to
        -        halt further processing).  This is where 404 errors for missing files
        -        are generated.
        -
        -        This method may modify the path before returning it, but note that
        -        any such modifications will not be understood by `make_static_url`.
        -
        -        In instance methods, this method's result is available as
        -        ``self.absolute_path``.
        -
        -        .. versionadded:: 3.1
        -        """
        -        # os.path.abspath strips a trailing /.
        -        # We must add it back to `root` so that we only match files
        -        # in a directory named `root` instead of files starting with
        -        # that prefix.
        -        root = os.path.abspath(root)
        -        if not root.endswith(os.path.sep):
        -            # abspath always removes a trailing slash, except when
        -            # root is '/'. This is an unusual case, but several projects
        -            # have independently discovered this technique to disable
        -            # Tornado's path validation and (hopefully) do their own,
        -            # so we need to support it.
        -            root += os.path.sep
        -        # The trailing slash also needs to be temporarily added back
        -        # the requested path so a request to root/ will match.
        -        if not (absolute_path + os.path.sep).startswith(root):
        -            raise HTTPError(403, "%s is not in root static directory", self.path)
        -        if os.path.isdir(absolute_path) and self.default_filename is not None:
        -            # need to look at the request.path here for when path is empty
        -            # but there is some prefix to the path that was already
        -            # trimmed by the routing
        -            if not self.request.path.endswith("/"):
        -                self.redirect(self.request.path + "/", permanent=True)
        -                return None
        -            absolute_path = os.path.join(absolute_path, self.default_filename)
        -        if not os.path.exists(absolute_path):
        -            raise HTTPError(404)
        -        if not os.path.isfile(absolute_path):
        -            raise HTTPError(403, "%s is not a file", self.path)
        -        return absolute_path
        -
        -    @classmethod
        -    def get_content(
        -        cls, abspath: str, start: int = None, end: int = None
        -    ) -> Generator[bytes, None, None]:
        -        """Retrieve the content of the requested resource which is located
        -        at the given absolute path.
        -
        -        This class method may be overridden by subclasses.  Note that its
        -        signature is different from other overridable class methods
        -        (no ``settings`` argument); this is deliberate to ensure that
        -        ``abspath`` is able to stand on its own as a cache key.
        -
        -        This method should either return a byte string or an iterator
        -        of byte strings.  The latter is preferred for large files
        -        as it helps reduce memory fragmentation.
        -
        -        .. versionadded:: 3.1
        -        """
        -        with open(abspath, "rb") as file:
        -            if start is not None:
        -                file.seek(start)
        -            if end is not None:
        -                remaining = end - (start or 0)  # type: Optional[int]
        -            else:
        -                remaining = None
        -            while True:
        -                chunk_size = 64 * 1024
        -                if remaining is not None and remaining < chunk_size:
        -                    chunk_size = remaining
        -                chunk = file.read(chunk_size)
        -                if chunk:
        -                    if remaining is not None:
        -                        remaining -= len(chunk)
        -                    yield chunk
        -                else:
        -                    if remaining is not None:
        -                        assert remaining == 0
        -                    return
        -
        -    @classmethod
        -    def get_content_version(cls, abspath: str) -> str:
        -        """Returns a version string for the resource at the given path.
        -
        -        This class method may be overridden by subclasses.  The
        -        default implementation is a hash of the file's contents.
        -
        -        .. versionadded:: 3.1
        -        """
        -        data = cls.get_content(abspath)
        -        hasher = hashlib.md5()
        -        if isinstance(data, bytes):
        -            hasher.update(data)
        -        else:
        -            for chunk in data:
        -                hasher.update(chunk)
        -        return hasher.hexdigest()
        -
        -    def _stat(self) -> os.stat_result:
        -        assert self.absolute_path is not None
        -        if not hasattr(self, "_stat_result"):
        -            self._stat_result = os.stat(self.absolute_path)
        -        return self._stat_result
        -
        -    def get_content_size(self) -> int:
        -        """Retrieve the total size of the resource at the given path.
        -
        -        This method may be overridden by subclasses.
        -
        -        .. versionadded:: 3.1
        -
        -        .. versionchanged:: 4.0
        -           This method is now always called, instead of only when
        -           partial results are requested.
        -        """
        -        stat_result = self._stat()
        -        return stat_result.st_size
        -
        -    def get_modified_time(self) -> Optional[datetime.datetime]:
        -        """Returns the time that ``self.absolute_path`` was last modified.
        -
        -        May be overridden in subclasses.  Should return a `~datetime.datetime`
        -        object or None.
        -
        -        .. versionadded:: 3.1
        -        """
        -        stat_result = self._stat()
        -        # NOTE: Historically, this used stat_result[stat.ST_MTIME],
        -        # which truncates the fractional portion of the timestamp. It
        -        # was changed from that form to stat_result.st_mtime to
        -        # satisfy mypy (which disallows the bracket operator), but the
        -        # latter form returns a float instead of an int. For
        -        # consistency with the past (and because we have a unit test
        -        # that relies on this), we truncate the float here, although
        -        # I'm not sure that's the right thing to do.
        -        modified = datetime.datetime.utcfromtimestamp(int(stat_result.st_mtime))
        -        return modified
        -
        -    def get_content_type(self) -> str:
        -        """Returns the ``Content-Type`` header to be used for this request.
        -
        -        .. versionadded:: 3.1
        -        """
        -        assert self.absolute_path is not None
        -        mime_type, encoding = mimetypes.guess_type(self.absolute_path)
        -        # per RFC 6713, use the appropriate type for a gzip compressed file
        -        if encoding == "gzip":
        -            return "application/gzip"
        -        # As of 2015-07-21 there is no bzip2 encoding defined at
        -        # http://www.iana.org/assignments/media-types/media-types.xhtml
        -        # So for that (and any other encoding), use octet-stream.
        -        elif encoding is not None:
        -            return "application/octet-stream"
        -        elif mime_type is not None:
        -            return mime_type
        -        # if mime_type not detected, use application/octet-stream
        -        else:
        -            return "application/octet-stream"
        -
        -    def set_extra_headers(self, path: str) -> None:
        -        """For subclass to add extra headers to the response"""
        -        pass
        -
        -    def get_cache_time(
        -        self, path: str, modified: Optional[datetime.datetime], mime_type: str
        -    ) -> int:
        -        """Override to customize cache control behavior.
        -
        -        Return a positive number of seconds to make the result
        -        cacheable for that amount of time or 0 to mark resource as
        -        cacheable for an unspecified amount of time (subject to
        -        browser heuristics).
        -
        -        By default returns cache expiry of 10 years for resources requested
        -        with ``v`` argument.
        -        """
        -        return self.CACHE_MAX_AGE if "v" in self.request.arguments else 0
        -
        -    @classmethod
        -    def make_static_url(
        -        cls, settings: Dict[str, Any], path: str, include_version: bool = True
        -    ) -> str:
        -        """Constructs a versioned url for the given path.
        -
        -        This method may be overridden in subclasses (but note that it
        -        is a class method rather than an instance method).  Subclasses
        -        are only required to implement the signature
        -        ``make_static_url(cls, settings, path)``; other keyword
        -        arguments may be passed through `~RequestHandler.static_url`
        -        but are not standard.
        -
        -        ``settings`` is the `Application.settings` dictionary.  ``path``
        -        is the static path being requested.  The url returned should be
        -        relative to the current host.
        -
        -        ``include_version`` determines whether the generated URL should
        -        include the query string containing the version hash of the
        -        file corresponding to the given ``path``.
        -
        -        """
        -        url = settings.get("static_url_prefix", "/static/") + path
        -        if not include_version:
        -            return url
        -
        -        version_hash = cls.get_version(settings, path)
        -        if not version_hash:
        -            return url
        -
        -        return "%s?v=%s" % (url, version_hash)
        -
        -    def parse_url_path(self, url_path: str) -> str:
        -        """Converts a static URL path into a filesystem path.
        -
        -        ``url_path`` is the path component of the URL with
        -        ``static_url_prefix`` removed.  The return value should be
        -        filesystem path relative to ``static_path``.
        -
        -        This is the inverse of `make_static_url`.
        -        """
        -        if os.path.sep != "/":
        -            url_path = url_path.replace("/", os.path.sep)
        -        return url_path
        -
        -    @classmethod
        -    def get_version(cls, settings: Dict[str, Any], path: str) -> Optional[str]:
        -        """Generate the version string to be used in static URLs.
        -
        -        ``settings`` is the `Application.settings` dictionary and ``path``
        -        is the relative location of the requested asset on the filesystem.
        -        The returned value should be a string, or ``None`` if no version
        -        could be determined.
        -
        -        .. versionchanged:: 3.1
        -           This method was previously recommended for subclasses to override;
        -           `get_content_version` is now preferred as it allows the base
        -           class to handle caching of the result.
        -        """
        -        abs_path = cls.get_absolute_path(settings["static_path"], path)
        -        return cls._get_cached_version(abs_path)
        -
        -    @classmethod
        -    def _get_cached_version(cls, abs_path: str) -> Optional[str]:
        -        with cls._lock:
        -            hashes = cls._static_hashes
        -            if abs_path not in hashes:
        -                try:
        -                    hashes[abs_path] = cls.get_content_version(abs_path)
        -                except Exception:
        -                    gen_log.error("Could not open static file %r", abs_path)
        -                    hashes[abs_path] = None
        -            hsh = hashes.get(abs_path)
        -            if hsh:
        -                return hsh
        -        return None
        -
        -
        -class FallbackHandler(RequestHandler):
        -    """A `RequestHandler` that wraps another HTTP server callback.
        -
        -    The fallback is a callable object that accepts an
        -    `~.httputil.HTTPServerRequest`, such as an `Application` or
        -    `tornado.wsgi.WSGIContainer`.  This is most useful to use both
        -    Tornado ``RequestHandlers`` and WSGI in the same server.  Typical
        -    usage::
        -
        -        wsgi_app = tornado.wsgi.WSGIContainer(
        -            django.core.handlers.wsgi.WSGIHandler())
        -        application = tornado.web.Application([
        -            (r"/foo", FooHandler),
        -            (r".*", FallbackHandler, dict(fallback=wsgi_app),
        -        ])
        -    """
        -
        -    def initialize(
        -        self, fallback: Callable[[httputil.HTTPServerRequest], None]
        -    ) -> None:
        -        self.fallback = fallback
        -
        -    def prepare(self) -> None:
        -        self.fallback(self.request)
        -        self._finished = True
        -        self.on_finish()
        -
        -
        -class OutputTransform(object):
        -    """A transform modifies the result of an HTTP request (e.g., GZip encoding)
        -
        -    Applications are not expected to create their own OutputTransforms
        -    or interact with them directly; the framework chooses which transforms
        -    (if any) to apply.
        -    """
        -
        -    def __init__(self, request: httputil.HTTPServerRequest) -> None:
        -        pass
        -
        -    def transform_first_chunk(
        -        self,
        -        status_code: int,
        -        headers: httputil.HTTPHeaders,
        -        chunk: bytes,
        -        finishing: bool,
        -    ) -> Tuple[int, httputil.HTTPHeaders, bytes]:
        -        return status_code, headers, chunk
        -
        -    def transform_chunk(self, chunk: bytes, finishing: bool) -> bytes:
        -        return chunk
        -
        -
        -class GZipContentEncoding(OutputTransform):
        -    """Applies the gzip content encoding to the response.
        -
        -    See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
        -
        -    .. versionchanged:: 4.0
        -        Now compresses all mime types beginning with ``text/``, instead
        -        of just a whitelist. (the whitelist is still used for certain
        -        non-text mime types).
        -    """
        -
        -    # Whitelist of compressible mime types (in addition to any types
        -    # beginning with "text/").
        -    CONTENT_TYPES = set(
        -        [
        -            "application/javascript",
        -            "application/x-javascript",
        -            "application/xml",
        -            "application/atom+xml",
        -            "application/json",
        -            "application/xhtml+xml",
        -            "image/svg+xml",
        -        ]
        -    )
        -    # Python's GzipFile defaults to level 9, while most other gzip
        -    # tools (including gzip itself) default to 6, which is probably a
        -    # better CPU/size tradeoff.
        -    GZIP_LEVEL = 6
        -    # Responses that are too short are unlikely to benefit from gzipping
        -    # after considering the "Content-Encoding: gzip" header and the header
        -    # inside the gzip encoding.
        -    # Note that responses written in multiple chunks will be compressed
        -    # regardless of size.
        -    MIN_LENGTH = 1024
        -
        -    def __init__(self, request: httputil.HTTPServerRequest) -> None:
        -        self._gzipping = "gzip" in request.headers.get("Accept-Encoding", "")
        -
        -    def _compressible_type(self, ctype: str) -> bool:
        -        return ctype.startswith("text/") or ctype in self.CONTENT_TYPES
        -
        -    def transform_first_chunk(
        -        self,
        -        status_code: int,
        -        headers: httputil.HTTPHeaders,
        -        chunk: bytes,
        -        finishing: bool,
        -    ) -> Tuple[int, httputil.HTTPHeaders, bytes]:
        -        # TODO: can/should this type be inherited from the superclass?
        -        if "Vary" in headers:
        -            headers["Vary"] += ", Accept-Encoding"
        -        else:
        -            headers["Vary"] = "Accept-Encoding"
        -        if self._gzipping:
        -            ctype = _unicode(headers.get("Content-Type", "")).split(";")[0]
        -            self._gzipping = (
        -                self._compressible_type(ctype)
        -                and (not finishing or len(chunk) >= self.MIN_LENGTH)
        -                and ("Content-Encoding" not in headers)
        -            )
        -        if self._gzipping:
        -            headers["Content-Encoding"] = "gzip"
        -            self._gzip_value = BytesIO()
        -            self._gzip_file = gzip.GzipFile(
        -                mode="w", fileobj=self._gzip_value, compresslevel=self.GZIP_LEVEL
        -            )
        -            chunk = self.transform_chunk(chunk, finishing)
        -            if "Content-Length" in headers:
        -                # The original content length is no longer correct.
        -                # If this is the last (and only) chunk, we can set the new
        -                # content-length; otherwise we remove it and fall back to
        -                # chunked encoding.
        -                if finishing:
        -                    headers["Content-Length"] = str(len(chunk))
        -                else:
        -                    del headers["Content-Length"]
        -        return status_code, headers, chunk
        -
        -    def transform_chunk(self, chunk: bytes, finishing: bool) -> bytes:
        -        if self._gzipping:
        -            self._gzip_file.write(chunk)
        -            if finishing:
        -                self._gzip_file.close()
        -            else:
        -                self._gzip_file.flush()
        -            chunk = self._gzip_value.getvalue()
        -            self._gzip_value.truncate(0)
        -            self._gzip_value.seek(0)
        -        return chunk
        -
        -
        -def authenticated(
        -    method: Callable[..., Optional[Awaitable[None]]]
        -) -> Callable[..., Optional[Awaitable[None]]]:
        -    """Decorate methods with this to require that the user be logged in.
        -
        -    If the user is not logged in, they will be redirected to the configured
        -    `login url `.
        -
        -    If you configure a login url with a query parameter, Tornado will
        -    assume you know what you're doing and use it as-is.  If not, it
        -    will add a `next` parameter so the login page knows where to send
        -    you once you're logged in.
        -    """
        -
        -    @functools.wraps(method)
        -    def wrapper(  # type: ignore
        -        self: RequestHandler, *args, **kwargs
        -    ) -> Optional[Awaitable[None]]:
        -        if not self.current_user:
        -            if self.request.method in ("GET", "HEAD"):
        -                url = self.get_login_url()
        -                if "?" not in url:
        -                    if urllib.parse.urlsplit(url).scheme:
        -                        # if login url is absolute, make next absolute too
        -                        next_url = self.request.full_url()
        -                    else:
        -                        assert self.request.uri is not None
        -                        next_url = self.request.uri
        -                    url += "?" + urlencode(dict(next=next_url))
        -                self.redirect(url)
        -                return None
        -            raise HTTPError(403)
        -        return method(self, *args, **kwargs)
        -
        -    return wrapper
        -
        -
        -class UIModule(object):
        -    """A re-usable, modular UI unit on a page.
        -
        -    UI modules often execute additional queries, and they can include
        -    additional CSS and JavaScript that will be included in the output
        -    page, which is automatically inserted on page render.
        -
        -    Subclasses of UIModule must override the `render` method.
        -    """
        -
        -    def __init__(self, handler: RequestHandler) -> None:
        -        self.handler = handler
        -        self.request = handler.request
        -        self.ui = handler.ui
        -        self.locale = handler.locale
        -
        -    @property
        -    def current_user(self) -> Any:
        -        return self.handler.current_user
        -
        -    def render(self, *args: Any, **kwargs: Any) -> str:
        -        """Override in subclasses to return this module's output."""
        -        raise NotImplementedError()
        -
        -    def embedded_javascript(self) -> Optional[str]:
        -        """Override to return a JavaScript string
        -        to be embedded in the page."""
        -        return None
        -
        -    def javascript_files(self) -> Optional[Iterable[str]]:
        -        """Override to return a list of JavaScript files needed by this module.
        -
        -        If the return values are relative paths, they will be passed to
        -        `RequestHandler.static_url`; otherwise they will be used as-is.
        -        """
        -        return None
        -
        -    def embedded_css(self) -> Optional[str]:
        -        """Override to return a CSS string
        -        that will be embedded in the page."""
        -        return None
        -
        -    def css_files(self) -> Optional[Iterable[str]]:
        -        """Override to returns a list of CSS files required by this module.
        -
        -        If the return values are relative paths, they will be passed to
        -        `RequestHandler.static_url`; otherwise they will be used as-is.
        -        """
        -        return None
        -
        -    def html_head(self) -> Optional[str]:
        -        """Override to return an HTML string that will be put in the 
        -        element.
        -        """
        -        return None
        -
        -    def html_body(self) -> Optional[str]:
        -        """Override to return an HTML string that will be put at the end of
        -        the  element.
        -        """
        -        return None
        -
        -    def render_string(self, path: str, **kwargs: Any) -> bytes:
        -        """Renders a template and returns it as a string."""
        -        return self.handler.render_string(path, **kwargs)
        -
        -
        -class _linkify(UIModule):
        -    def render(self, text: str, **kwargs: Any) -> str:  # type: ignore
        -        return escape.linkify(text, **kwargs)
        -
        -
        -class _xsrf_form_html(UIModule):
        -    def render(self) -> str:  # type: ignore
        -        return self.handler.xsrf_form_html()
        -
        -
        -class TemplateModule(UIModule):
        -    """UIModule that simply renders the given template.
        -
        -    {% module Template("foo.html") %} is similar to {% include "foo.html" %},
        -    but the module version gets its own namespace (with kwargs passed to
        -    Template()) instead of inheriting the outer template's namespace.
        -
        -    Templates rendered through this module also get access to UIModule's
        -    automatic javascript/css features.  Simply call set_resources
        -    inside the template and give it keyword arguments corresponding to
        -    the methods on UIModule: {{ set_resources(js_files=static_url("my.js")) }}
        -    Note that these resources are output once per template file, not once
        -    per instantiation of the template, so they must not depend on
        -    any arguments to the template.
        -    """
        -
        -    def __init__(self, handler: RequestHandler) -> None:
        -        super(TemplateModule, self).__init__(handler)
        -        # keep resources in both a list and a dict to preserve order
        -        self._resource_list = []  # type: List[Dict[str, Any]]
        -        self._resource_dict = {}  # type: Dict[str, Dict[str, Any]]
        -
        -    def render(self, path: str, **kwargs: Any) -> bytes:  # type: ignore
        -        def set_resources(**kwargs) -> str:  # type: ignore
        -            if path not in self._resource_dict:
        -                self._resource_list.append(kwargs)
        -                self._resource_dict[path] = kwargs
        -            else:
        -                if self._resource_dict[path] != kwargs:
        -                    raise ValueError(
        -                        "set_resources called with different "
        -                        "resources for the same template"
        -                    )
        -            return ""
        -
        -        return self.render_string(path, set_resources=set_resources, **kwargs)
        -
        -    def _get_resources(self, key: str) -> Iterable[str]:
        -        return (r[key] for r in self._resource_list if key in r)
        -
        -    def embedded_javascript(self) -> str:
        -        return "\n".join(self._get_resources("embedded_javascript"))
        -
        -    def javascript_files(self) -> Iterable[str]:
        -        result = []
        -        for f in self._get_resources("javascript_files"):
        -            if isinstance(f, (unicode_type, bytes)):
        -                result.append(f)
        -            else:
        -                result.extend(f)
        -        return result
        -
        -    def embedded_css(self) -> str:
        -        return "\n".join(self._get_resources("embedded_css"))
        -
        -    def css_files(self) -> Iterable[str]:
        -        result = []
        -        for f in self._get_resources("css_files"):
        -            if isinstance(f, (unicode_type, bytes)):
        -                result.append(f)
        -            else:
        -                result.extend(f)
        -        return result
        -
        -    def html_head(self) -> str:
        -        return "".join(self._get_resources("html_head"))
        -
        -    def html_body(self) -> str:
        -        return "".join(self._get_resources("html_body"))
        -
        -
        -class _UIModuleNamespace(object):
        -    """Lazy namespace which creates UIModule proxies bound to a handler."""
        -
        -    def __init__(
        -        self, handler: RequestHandler, ui_modules: Dict[str, Type[UIModule]]
        -    ) -> None:
        -        self.handler = handler
        -        self.ui_modules = ui_modules
        -
        -    def __getitem__(self, key: str) -> Callable[..., str]:
        -        return self.handler._ui_module(key, self.ui_modules[key])
        -
        -    def __getattr__(self, key: str) -> Callable[..., str]:
        -        try:
        -            return self[key]
        -        except KeyError as e:
        -            raise AttributeError(str(e))
        -
        -
        -def create_signed_value(
        -    secret: _CookieSecretTypes,
        -    name: str,
        -    value: Union[str, bytes],
        -    version: int = None,
        -    clock: Callable[[], float] = None,
        -    key_version: int = None,
        -) -> bytes:
        -    if version is None:
        -        version = DEFAULT_SIGNED_VALUE_VERSION
        -    if clock is None:
        -        clock = time.time
        -
        -    timestamp = utf8(str(int(clock())))
        -    value = base64.b64encode(utf8(value))
        -    if version == 1:
        -        assert not isinstance(secret, dict)
        -        signature = _create_signature_v1(secret, name, value, timestamp)
        -        value = b"|".join([value, timestamp, signature])
        -        return value
        -    elif version == 2:
        -        # The v2 format consists of a version number and a series of
        -        # length-prefixed fields "%d:%s", the last of which is a
        -        # signature, all separated by pipes.  All numbers are in
        -        # decimal format with no leading zeros.  The signature is an
        -        # HMAC-SHA256 of the whole string up to that point, including
        -        # the final pipe.
        -        #
        -        # The fields are:
        -        # - format version (i.e. 2; no length prefix)
        -        # - key version (integer, default is 0)
        -        # - timestamp (integer seconds since epoch)
        -        # - name (not encoded; assumed to be ~alphanumeric)
        -        # - value (base64-encoded)
        -        # - signature (hex-encoded; no length prefix)
        -        def format_field(s: Union[str, bytes]) -> bytes:
        -            return utf8("%d:" % len(s)) + utf8(s)
        -
        -        to_sign = b"|".join(
        -            [
        -                b"2",
        -                format_field(str(key_version or 0)),
        -                format_field(timestamp),
        -                format_field(name),
        -                format_field(value),
        -                b"",
        -            ]
        -        )
        -
        -        if isinstance(secret, dict):
        -            assert (
        -                key_version is not None
        -            ), "Key version must be set when sign key dict is used"
        -            assert version >= 2, "Version must be at least 2 for key version support"
        -            secret = secret[key_version]
        -
        -        signature = _create_signature_v2(secret, to_sign)
        -        return to_sign + signature
        -    else:
        -        raise ValueError("Unsupported version %d" % version)
        -
        -
        -# A leading version number in decimal
        -# with no leading zeros, followed by a pipe.
        -_signed_value_version_re = re.compile(br"^([1-9][0-9]*)\|(.*)$")
        -
        -
        -def _get_version(value: bytes) -> int:
        -    # Figures out what version value is.  Version 1 did not include an
        -    # explicit version field and started with arbitrary base64 data,
        -    # which makes this tricky.
        -    m = _signed_value_version_re.match(value)
        -    if m is None:
        -        version = 1
        -    else:
        -        try:
        -            version = int(m.group(1))
        -            if version > 999:
        -                # Certain payloads from the version-less v1 format may
        -                # be parsed as valid integers.  Due to base64 padding
        -                # restrictions, this can only happen for numbers whose
        -                # length is a multiple of 4, so we can treat all
        -                # numbers up to 999 as versions, and for the rest we
        -                # fall back to v1 format.
        -                version = 1
        -        except ValueError:
        -            version = 1
        -    return version
        -
        -
        -def decode_signed_value(
        -    secret: _CookieSecretTypes,
        -    name: str,
        -    value: Union[None, str, bytes],
        -    max_age_days: int = 31,
        -    clock: Callable[[], float] = None,
        -    min_version: int = None,
        -) -> Optional[bytes]:
        -    if clock is None:
        -        clock = time.time
        -    if min_version is None:
        -        min_version = DEFAULT_SIGNED_VALUE_MIN_VERSION
        -    if min_version > 2:
        -        raise ValueError("Unsupported min_version %d" % min_version)
        -    if not value:
        -        return None
        -
        -    value = utf8(value)
        -    version = _get_version(value)
        -
        -    if version < min_version:
        -        return None
        -    if version == 1:
        -        assert not isinstance(secret, dict)
        -        return _decode_signed_value_v1(secret, name, value, max_age_days, clock)
        -    elif version == 2:
        -        return _decode_signed_value_v2(secret, name, value, max_age_days, clock)
        -    else:
        -        return None
        -
        -
        -def _decode_signed_value_v1(
        -    secret: Union[str, bytes],
        -    name: str,
        -    value: bytes,
        -    max_age_days: int,
        -    clock: Callable[[], float],
        -) -> Optional[bytes]:
        -    parts = utf8(value).split(b"|")
        -    if len(parts) != 3:
        -        return None
        -    signature = _create_signature_v1(secret, name, parts[0], parts[1])
        -    if not hmac.compare_digest(parts[2], signature):
        -        gen_log.warning("Invalid cookie signature %r", value)
        -        return None
        -    timestamp = int(parts[1])
        -    if timestamp < clock() - max_age_days * 86400:
        -        gen_log.warning("Expired cookie %r", value)
        -        return None
        -    if timestamp > clock() + 31 * 86400:
        -        # _cookie_signature does not hash a delimiter between the
        -        # parts of the cookie, so an attacker could transfer trailing
        -        # digits from the payload to the timestamp without altering the
        -        # signature.  For backwards compatibility, sanity-check timestamp
        -        # here instead of modifying _cookie_signature.
        -        gen_log.warning("Cookie timestamp in future; possible tampering %r", value)
        -        return None
        -    if parts[1].startswith(b"0"):
        -        gen_log.warning("Tampered cookie %r", value)
        -        return None
        -    try:
        -        return base64.b64decode(parts[0])
        -    except Exception:
        -        return None
        -
        -
        -def _decode_fields_v2(value: bytes) -> Tuple[int, bytes, bytes, bytes, bytes]:
        -    def _consume_field(s: bytes) -> Tuple[bytes, bytes]:
        -        length, _, rest = s.partition(b":")
        -        n = int(length)
        -        field_value = rest[:n]
        -        # In python 3, indexing bytes returns small integers; we must
        -        # use a slice to get a byte string as in python 2.
        -        if rest[n : n + 1] != b"|":
        -            raise ValueError("malformed v2 signed value field")
        -        rest = rest[n + 1 :]
        -        return field_value, rest
        -
        -    rest = value[2:]  # remove version number
        -    key_version, rest = _consume_field(rest)
        -    timestamp, rest = _consume_field(rest)
        -    name_field, rest = _consume_field(rest)
        -    value_field, passed_sig = _consume_field(rest)
        -    return int(key_version), timestamp, name_field, value_field, passed_sig
        -
        -
        -def _decode_signed_value_v2(
        -    secret: _CookieSecretTypes,
        -    name: str,
        -    value: bytes,
        -    max_age_days: int,
        -    clock: Callable[[], float],
        -) -> Optional[bytes]:
        -    try:
        -        key_version, timestamp_bytes, name_field, value_field, passed_sig = _decode_fields_v2(
        -            value
        -        )
        -    except ValueError:
        -        return None
        -    signed_string = value[: -len(passed_sig)]
        -
        -    if isinstance(secret, dict):
        -        try:
        -            secret = secret[key_version]
        -        except KeyError:
        -            return None
        -
        -    expected_sig = _create_signature_v2(secret, signed_string)
        -    if not hmac.compare_digest(passed_sig, expected_sig):
        -        return None
        -    if name_field != utf8(name):
        -        return None
        -    timestamp = int(timestamp_bytes)
        -    if timestamp < clock() - max_age_days * 86400:
        -        # The signature has expired.
        -        return None
        -    try:
        -        return base64.b64decode(value_field)
        -    except Exception:
        -        return None
        -
        -
        -def get_signature_key_version(value: Union[str, bytes]) -> Optional[int]:
        -    value = utf8(value)
        -    version = _get_version(value)
        -    if version < 2:
        -        return None
        -    try:
        -        key_version, _, _, _, _ = _decode_fields_v2(value)
        -    except ValueError:
        -        return None
        -
        -    return key_version
        -
        -
        -def _create_signature_v1(secret: Union[str, bytes], *parts: Union[str, bytes]) -> bytes:
        -    hash = hmac.new(utf8(secret), digestmod=hashlib.sha1)
        -    for part in parts:
        -        hash.update(utf8(part))
        -    return utf8(hash.hexdigest())
        -
        -
        -def _create_signature_v2(secret: Union[str, bytes], s: bytes) -> bytes:
        -    hash = hmac.new(utf8(secret), digestmod=hashlib.sha256)
        -    hash.update(utf8(s))
        -    return utf8(hash.hexdigest())
        -
        -
        -def is_absolute(path: str) -> bool:
        -    return any(path.startswith(x) for x in ["/", "http:", "https:"])
        +#
        +# Copyright 2009 Facebook
        +#
        +# Licensed under the Apache License, Version 2.0 (the "License"); you may
        +# not use this file except in compliance with the License. You may obtain
        +# a copy of the License at
        +#
        +#     http://www.apache.org/licenses/LICENSE-2.0
        +#
        +# Unless required by applicable law or agreed to in writing, software
        +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
        +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
        +# License for the specific language governing permissions and limitations
        +# under the License.
        +
        +"""``tornado.web`` provides a simple web framework with asynchronous
        +features that allow it to scale to large numbers of open connections,
        +making it ideal for `long polling
        +`_.
        +
        +Here is a simple "Hello, world" example app:
        +
        +.. testcode::
        +
        +    import tornado.ioloop
        +    import tornado.web
        +
        +    class MainHandler(tornado.web.RequestHandler):
        +        def get(self):
        +            self.write("Hello, world")
        +
        +    if __name__ == "__main__":
        +        application = tornado.web.Application([
        +            (r"/", MainHandler),
        +        ])
        +        application.listen(8888)
        +        tornado.ioloop.IOLoop.current().start()
        +
        +.. testoutput::
        +   :hide:
        +
        +
        +See the :doc:`guide` for additional information.
        +
        +Thread-safety notes
        +-------------------
        +
        +In general, methods on `RequestHandler` and elsewhere in Tornado are
        +not thread-safe. In particular, methods such as
        +`~RequestHandler.write()`, `~RequestHandler.finish()`, and
        +`~RequestHandler.flush()` must only be called from the main thread. If
        +you use multiple threads it is important to use `.IOLoop.add_callback`
        +to transfer control back to the main thread before finishing the
        +request, or to limit your use of other threads to
        +`.IOLoop.run_in_executor` and ensure that your callbacks running in
        +the executor do not refer to Tornado objects.
        +
        +"""
        +
        +import base64
        +import binascii
        +import datetime
        +import email.utils
        +import functools
        +import gzip
        +import hashlib
        +import hmac
        +import http.cookies
        +from inspect import isclass
        +from io import BytesIO
        +import mimetypes
        +import numbers
        +import os.path
        +import re
        +import sys
        +import threading
        +import time
        +import tornado
        +import traceback
        +import types
        +import urllib.parse
        +from urllib.parse import urlencode
        +
        +from tornado.concurrent import Future, future_set_result_unless_cancelled
        +from tornado import escape
        +from tornado import gen
        +from tornado.httpserver import HTTPServer
        +from tornado import httputil
        +from tornado import iostream
        +import tornado.locale
        +from tornado import locale
        +from tornado.log import access_log, app_log, gen_log
        +from tornado import template
        +from tornado.escape import utf8, _unicode
        +from tornado.routing import (
        +    AnyMatches,
        +    DefaultHostMatches,
        +    HostMatches,
        +    ReversibleRouter,
        +    Rule,
        +    ReversibleRuleRouter,
        +    URLSpec,
        +    _RuleList,
        +)
        +from tornado.util import ObjectDict, unicode_type, _websocket_mask
        +
        +url = URLSpec
        +
        +from typing import (
        +    Dict,
        +    Any,
        +    Union,
        +    Optional,
        +    Awaitable,
        +    Tuple,
        +    List,
        +    Callable,
        +    Iterable,
        +    Generator,
        +    Type,
        +    cast,
        +    overload,
        +)
        +from types import TracebackType
        +import typing
        +
        +if typing.TYPE_CHECKING:
        +    from typing import Set  # noqa: F401
        +
        +
        +# The following types are accepted by RequestHandler.set_header
        +# and related methods.
        +_HeaderTypes = Union[bytes, unicode_type, int, numbers.Integral, datetime.datetime]
        +
        +_CookieSecretTypes = Union[str, bytes, Dict[int, str], Dict[int, bytes]]
        +
        +
        +MIN_SUPPORTED_SIGNED_VALUE_VERSION = 1
        +"""The oldest signed value version supported by this version of Tornado.
        +
        +Signed values older than this version cannot be decoded.
        +
        +.. versionadded:: 3.2.1
        +"""
        +
        +MAX_SUPPORTED_SIGNED_VALUE_VERSION = 2
        +"""The newest signed value version supported by this version of Tornado.
        +
        +Signed values newer than this version cannot be decoded.
        +
        +.. versionadded:: 3.2.1
        +"""
        +
        +DEFAULT_SIGNED_VALUE_VERSION = 2
        +"""The signed value version produced by `.RequestHandler.create_signed_value`.
        +
        +May be overridden by passing a ``version`` keyword argument.
        +
        +.. versionadded:: 3.2.1
        +"""
        +
        +DEFAULT_SIGNED_VALUE_MIN_VERSION = 1
        +"""The oldest signed value accepted by `.RequestHandler.get_secure_cookie`.
        +
        +May be overridden by passing a ``min_version`` keyword argument.
        +
        +.. versionadded:: 3.2.1
        +"""
        +
        +
        +class _ArgDefaultMarker:
        +    pass
        +
        +
        +_ARG_DEFAULT = _ArgDefaultMarker()
        +
        +
        +class RequestHandler(object):
        +    """Base class for HTTP request handlers.
        +
        +    Subclasses must define at least one of the methods defined in the
        +    "Entry points" section below.
        +
        +    Applications should not construct `RequestHandler` objects
        +    directly and subclasses should not override ``__init__`` (override
        +    `~RequestHandler.initialize` instead).
        +
        +    """
        +
        +    SUPPORTED_METHODS = ("GET", "HEAD", "POST", "DELETE", "PATCH", "PUT", "OPTIONS")
        +
        +    _template_loaders = {}  # type: Dict[str, template.BaseLoader]
        +    _template_loader_lock = threading.Lock()
        +    _remove_control_chars_regex = re.compile(r"[\x00-\x08\x0e-\x1f]")
        +
        +    _stream_request_body = False
        +
        +    # Will be set in _execute.
        +    _transforms = None  # type: List[OutputTransform]
        +    path_args = None  # type: List[str]
        +    path_kwargs = None  # type: Dict[str, str]
        +
        +    def __init__(
        +        self,
        +        application: "Application",
        +        request: httputil.HTTPServerRequest,
        +        **kwargs: Any
        +    ) -> None:
        +        super(RequestHandler, self).__init__()
        +
        +        self.application = application
        +        self.request = request
        +        self._headers_written = False
        +        self._finished = False
        +        self._auto_finish = True
        +        self._prepared_future = None
        +        self.ui = ObjectDict(
        +            (n, self._ui_method(m)) for n, m in application.ui_methods.items()
        +        )
        +        # UIModules are available as both `modules` and `_tt_modules` in the
        +        # template namespace.  Historically only `modules` was available
        +        # but could be clobbered by user additions to the namespace.
        +        # The template {% module %} directive looks in `_tt_modules` to avoid
        +        # possible conflicts.
        +        self.ui["_tt_modules"] = _UIModuleNamespace(self, application.ui_modules)
        +        self.ui["modules"] = self.ui["_tt_modules"]
        +        self.clear()
        +        assert self.request.connection is not None
        +        # TODO: need to add set_close_callback to HTTPConnection interface
        +        self.request.connection.set_close_callback(  # type: ignore
        +            self.on_connection_close
        +        )
        +        self.initialize(**kwargs)  # type: ignore
        +
        +    def _initialize(self) -> None:
        +        pass
        +
        +    initialize = _initialize  # type: Callable[..., None]
        +    """Hook for subclass initialization. Called for each request.
        +
        +    A dictionary passed as the third argument of a ``URLSpec`` will be
        +    supplied as keyword arguments to ``initialize()``.
        +
        +    Example::
        +
        +        class ProfileHandler(RequestHandler):
        +            def initialize(self, database):
        +                self.database = database
        +
        +            def get(self, username):
        +                ...
        +
        +        app = Application([
        +            (r'/user/(.*)', ProfileHandler, dict(database=database)),
        +            ])
        +    """
        +
        +    @property
        +    def settings(self) -> Dict[str, Any]:
        +        """An alias for `self.application.settings `."""
        +        return self.application.settings
        +
        +    def _unimplemented_method(self, *args: str, **kwargs: str) -> None:
        +        raise HTTPError(405)
        +
        +    head = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        +    get = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        +    post = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        +    delete = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        +    patch = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        +    put = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        +    options = _unimplemented_method  # type: Callable[..., Optional[Awaitable[None]]]
        +
        +    def prepare(self) -> Optional[Awaitable[None]]:
        +        """Called at the beginning of a request before  `get`/`post`/etc.
        +
        +        Override this method to perform common initialization regardless
        +        of the request method.
        +
        +        Asynchronous support: Use ``async def`` or decorate this method with
        +        `.gen.coroutine` to make it asynchronous.
        +        If this method returns an  ``Awaitable`` execution will not proceed
        +        until the ``Awaitable`` is done.
        +
        +        .. versionadded:: 3.1
        +           Asynchronous support.
        +        """
        +        pass
        +
        +    def on_finish(self) -> None:
        +        """Called after the end of a request.
        +
        +        Override this method to perform cleanup, logging, etc.
        +        This method is a counterpart to `prepare`.  ``on_finish`` may
        +        not produce any output, as it is called after the response
        +        has been sent to the client.
        +        """
        +        pass
        +
        +    def on_connection_close(self) -> None:
        +        """Called in async handlers if the client closed the connection.
        +
        +        Override this to clean up resources associated with
        +        long-lived connections.  Note that this method is called only if
        +        the connection was closed during asynchronous processing; if you
        +        need to do cleanup after every request override `on_finish`
        +        instead.
        +
        +        Proxies may keep a connection open for a time (perhaps
        +        indefinitely) after the client has gone away, so this method
        +        may not be called promptly after the end user closes their
        +        connection.
        +        """
        +        if _has_stream_request_body(self.__class__):
        +            if not self.request._body_future.done():
        +                self.request._body_future.set_exception(iostream.StreamClosedError())
        +                self.request._body_future.exception()
        +
        +    def clear(self) -> None:
        +        """Resets all headers and content for this response."""
        +        self._headers = httputil.HTTPHeaders(
        +            {
        +                "Server": "TornadoServer/%s" % tornado.version,
        +                "Content-Type": "text/html; charset=UTF-8",
        +                "Date": httputil.format_timestamp(time.time()),
        +            }
        +        )
        +        self.set_default_headers()
        +        self._write_buffer = []  # type: List[bytes]
        +        self._status_code = 200
        +        self._reason = httputil.responses[200]
        +
        +    def set_default_headers(self) -> None:
        +        """Override this to set HTTP headers at the beginning of the request.
        +
        +        For example, this is the place to set a custom ``Server`` header.
        +        Note that setting such headers in the normal flow of request
        +        processing may not do what you want, since headers may be reset
        +        during error handling.
        +        """
        +        pass
        +
        +    def set_status(self, status_code: int, reason: str = None) -> None:
        +        """Sets the status code for our response.
        +
        +        :arg int status_code: Response status code.
        +        :arg str reason: Human-readable reason phrase describing the status
        +            code. If ``None``, it will be filled in from
        +            `http.client.responses` or "Unknown".
        +
        +        .. versionchanged:: 5.0
        +
        +           No longer validates that the response code is in
        +           `http.client.responses`.
        +        """
        +        self._status_code = status_code
        +        if reason is not None:
        +            self._reason = escape.native_str(reason)
        +        else:
        +            self._reason = httputil.responses.get(status_code, "Unknown")
        +
        +    def get_status(self) -> int:
        +        """Returns the status code for our response."""
        +        return self._status_code
        +
        +    def set_header(self, name: str, value: _HeaderTypes) -> None:
        +        """Sets the given response header name and value.
        +
        +        All header values are converted to strings (`datetime` objects
        +        are formatted according to the HTTP specification for the
        +        ``Date`` header).
        +
        +        """
        +        self._headers[name] = self._convert_header_value(value)
        +
        +    def add_header(self, name: str, value: _HeaderTypes) -> None:
        +        """Adds the given response header and value.
        +
        +        Unlike `set_header`, `add_header` may be called multiple times
        +        to return multiple values for the same header.
        +        """
        +        self._headers.add(name, self._convert_header_value(value))
        +
        +    def clear_header(self, name: str) -> None:
        +        """Clears an outgoing header, undoing a previous `set_header` call.
        +
        +        Note that this method does not apply to multi-valued headers
        +        set by `add_header`.
        +        """
        +        if name in self._headers:
        +            del self._headers[name]
        +
        +    _INVALID_HEADER_CHAR_RE = re.compile(r"[\x00-\x1f]")
        +
        +    def _convert_header_value(self, value: _HeaderTypes) -> str:
        +        # Convert the input value to a str. This type check is a bit
        +        # subtle: The bytes case only executes on python 3, and the
        +        # unicode case only executes on python 2, because the other
        +        # cases are covered by the first match for str.
        +        if isinstance(value, str):
        +            retval = value
        +        elif isinstance(value, bytes):  # py3
        +            # Non-ascii characters in headers are not well supported,
        +            # but if you pass bytes, use latin1 so they pass through as-is.
        +            retval = value.decode("latin1")
        +        elif isinstance(value, unicode_type):  # py2
        +            # TODO: This is inconsistent with the use of latin1 above,
        +            # but it's been that way for a long time. Should it change?
        +            retval = escape.utf8(value)
        +        elif isinstance(value, numbers.Integral):
        +            # return immediately since we know the converted value will be safe
        +            return str(value)
        +        elif isinstance(value, datetime.datetime):
        +            return httputil.format_timestamp(value)
        +        else:
        +            raise TypeError("Unsupported header value %r" % value)
        +        # If \n is allowed into the header, it is possible to inject
        +        # additional headers or split the request.
        +        if RequestHandler._INVALID_HEADER_CHAR_RE.search(retval):
        +            raise ValueError("Unsafe header value %r", retval)
        +        return retval
        +
        +    @overload
        +    def get_argument(self, name: str, default: str, strip: bool = True) -> str:
        +        pass
        +
        +    @overload  # noqa: F811
        +    def get_argument(
        +        self, name: str, default: _ArgDefaultMarker = _ARG_DEFAULT, strip: bool = True
        +    ) -> str:
        +        pass
        +
        +    @overload  # noqa: F811
        +    def get_argument(
        +        self, name: str, default: None, strip: bool = True
        +    ) -> Optional[str]:
        +        pass
        +
        +    def get_argument(  # noqa: F811
        +        self,
        +        name: str,
        +        default: Union[None, str, _ArgDefaultMarker] = _ARG_DEFAULT,
        +        strip: bool = True,
        +    ) -> Optional[str]:
        +        """Returns the value of the argument with the given name.
        +
        +        If default is not provided, the argument is considered to be
        +        required, and we raise a `MissingArgumentError` if it is missing.
        +
        +        If the argument appears in the request more than once, we return the
        +        last value.
        +
        +        This method searches both the query and body arguments.
        +        """
        +        return self._get_argument(name, default, self.request.arguments, strip)
        +
        +    def get_arguments(self, name: str, strip: bool = True) -> List[str]:
        +        """Returns a list of the arguments with the given name.
        +
        +        If the argument is not present, returns an empty list.
        +
        +        This method searches both the query and body arguments.
        +        """
        +
        +        # Make sure `get_arguments` isn't accidentally being called with a
        +        # positional argument that's assumed to be a default (like in
        +        # `get_argument`.)
        +        assert isinstance(strip, bool)
        +
        +        return self._get_arguments(name, self.request.arguments, strip)
        +
        +    def get_body_argument(
        +        self,
        +        name: str,
        +        default: Union[None, str, _ArgDefaultMarker] = _ARG_DEFAULT,
        +        strip: bool = True,
        +    ) -> Optional[str]:
        +        """Returns the value of the argument with the given name
        +        from the request body.
        +
        +        If default is not provided, the argument is considered to be
        +        required, and we raise a `MissingArgumentError` if it is missing.
        +
        +        If the argument appears in the url more than once, we return the
        +        last value.
        +
        +        .. versionadded:: 3.2
        +        """
        +        return self._get_argument(name, default, self.request.body_arguments, strip)
        +
        +    def get_body_arguments(self, name: str, strip: bool = True) -> List[str]:
        +        """Returns a list of the body arguments with the given name.
        +
        +        If the argument is not present, returns an empty list.
        +
        +        .. versionadded:: 3.2
        +        """
        +        return self._get_arguments(name, self.request.body_arguments, strip)
        +
        +    def get_query_argument(
        +        self,
        +        name: str,
        +        default: Union[None, str, _ArgDefaultMarker] = _ARG_DEFAULT,
        +        strip: bool = True,
        +    ) -> Optional[str]:
        +        """Returns the value of the argument with the given name
        +        from the request query string.
        +
        +        If default is not provided, the argument is considered to be
        +        required, and we raise a `MissingArgumentError` if it is missing.
        +
        +        If the argument appears in the url more than once, we return the
        +        last value.
        +
        +        .. versionadded:: 3.2
        +        """
        +        return self._get_argument(name, default, self.request.query_arguments, strip)
        +
        +    def get_query_arguments(self, name: str, strip: bool = True) -> List[str]:
        +        """Returns a list of the query arguments with the given name.
        +
        +        If the argument is not present, returns an empty list.
        +
        +        .. versionadded:: 3.2
        +        """
        +        return self._get_arguments(name, self.request.query_arguments, strip)
        +
        +    def _get_argument(
        +        self,
        +        name: str,
        +        default: Union[None, str, _ArgDefaultMarker],
        +        source: Dict[str, List[bytes]],
        +        strip: bool = True,
        +    ) -> Optional[str]:
        +        args = self._get_arguments(name, source, strip=strip)
        +        if not args:
        +            if isinstance(default, _ArgDefaultMarker):
        +                raise MissingArgumentError(name)
        +            return default
        +        return args[-1]
        +
        +    def _get_arguments(
        +        self, name: str, source: Dict[str, List[bytes]], strip: bool = True
        +    ) -> List[str]:
        +        values = []
        +        for v in source.get(name, []):
        +            s = self.decode_argument(v, name=name)
        +            if isinstance(s, unicode_type):
        +                # Get rid of any weird control chars (unless decoding gave
        +                # us bytes, in which case leave it alone)
        +                s = RequestHandler._remove_control_chars_regex.sub(" ", s)
        +            if strip:
        +                s = s.strip()
        +            values.append(s)
        +        return values
        +
        +    def decode_argument(self, value: bytes, name: str = None) -> str:
        +        """Decodes an argument from the request.
        +
        +        The argument has been percent-decoded and is now a byte string.
        +        By default, this method decodes the argument as utf-8 and returns
        +        a unicode string, but this may be overridden in subclasses.
        +
        +        This method is used as a filter for both `get_argument()` and for
        +        values extracted from the url and passed to `get()`/`post()`/etc.
        +
        +        The name of the argument is provided if known, but may be None
        +        (e.g. for unnamed groups in the url regex).
        +        """
        +        try:
        +            return _unicode(value)
        +        except UnicodeDecodeError:
        +            raise HTTPError(
        +                400, "Invalid unicode in %s: %r" % (name or "url", value[:40])
        +            )
        +
        +    @property
        +    def cookies(self) -> Dict[str, http.cookies.Morsel]:
        +        """An alias for
        +        `self.request.cookies <.httputil.HTTPServerRequest.cookies>`."""
        +        return self.request.cookies
        +
        +    def get_cookie(self, name: str, default: str = None) -> Optional[str]:
        +        """Returns the value of the request cookie with the given name.
        +
        +        If the named cookie is not present, returns ``default``.
        +
        +        This method only returns cookies that were present in the request.
        +        It does not see the outgoing cookies set by `set_cookie` in this
        +        handler.
        +        """
        +        if self.request.cookies is not None and name in self.request.cookies:
        +            return self.request.cookies[name].value
        +        return default
        +
        +    def set_cookie(
        +        self,
        +        name: str,
        +        value: Union[str, bytes],
        +        domain: str = None,
        +        expires: Union[float, Tuple, datetime.datetime] = None,
        +        path: str = "/",
        +        expires_days: int = None,
        +        **kwargs: Any
        +    ) -> None:
        +        """Sets an outgoing cookie name/value with the given options.
        +
        +        Newly-set cookies are not immediately visible via `get_cookie`;
        +        they are not present until the next request.
        +
        +        expires may be a numeric timestamp as returned by `time.time`,
        +        a time tuple as returned by `time.gmtime`, or a
        +        `datetime.datetime` object.
        +
        +        Additional keyword arguments are set on the cookies.Morsel
        +        directly.
        +        See https://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel
        +        for available attributes.
        +        """
        +        # The cookie library only accepts type str, in both python 2 and 3
        +        name = escape.native_str(name)
        +        value = escape.native_str(value)
        +        if re.search(r"[\x00-\x20]", name + value):
        +            # Don't let us accidentally inject bad stuff
        +            raise ValueError("Invalid cookie %r: %r" % (name, value))
        +        if not hasattr(self, "_new_cookie"):
        +            self._new_cookie = http.cookies.SimpleCookie()
        +        if name in self._new_cookie:
        +            del self._new_cookie[name]
        +        self._new_cookie[name] = value
        +        morsel = self._new_cookie[name]
        +        if domain:
        +            morsel["domain"] = domain
        +        if expires_days is not None and not expires:
        +            expires = datetime.datetime.utcnow() + datetime.timedelta(days=expires_days)
        +        if expires:
        +            morsel["expires"] = httputil.format_timestamp(expires)
        +        if path:
        +            morsel["path"] = path
        +        for k, v in kwargs.items():
        +            if k == "max_age":
        +                k = "max-age"
        +
        +            # skip falsy values for httponly and secure flags because
        +            # SimpleCookie sets them regardless
        +            if k in ["httponly", "secure"] and not v:
        +                continue
        +
        +            morsel[k] = v
        +
        +    def clear_cookie(self, name: str, path: str = "/", domain: str = None) -> None:
        +        """Deletes the cookie with the given name.
        +
        +        Due to limitations of the cookie protocol, you must pass the same
        +        path and domain to clear a cookie as were used when that cookie
        +        was set (but there is no way to find out on the server side
        +        which values were used for a given cookie).
        +
        +        Similar to `set_cookie`, the effect of this method will not be
        +        seen until the following request.
        +        """
        +        expires = datetime.datetime.utcnow() - datetime.timedelta(days=365)
        +        self.set_cookie(name, value="", path=path, expires=expires, domain=domain)
        +
        +    def clear_all_cookies(self, path: str = "/", domain: str = None) -> None:
        +        """Deletes all the cookies the user sent with this request.
        +
        +        See `clear_cookie` for more information on the path and domain
        +        parameters.
        +
        +        Similar to `set_cookie`, the effect of this method will not be
        +        seen until the following request.
        +
        +        .. versionchanged:: 3.2
        +
        +           Added the ``path`` and ``domain`` parameters.
        +        """
        +        for name in self.request.cookies:
        +            self.clear_cookie(name, path=path, domain=domain)
        +
        +    def set_secure_cookie(
        +        self,
        +        name: str,
        +        value: Union[str, bytes],
        +        expires_days: int = 30,
        +        version: int = None,
        +        **kwargs: Any
        +    ) -> None:
        +        """Signs and timestamps a cookie so it cannot be forged.
        +
        +        You must specify the ``cookie_secret`` setting in your Application
        +        to use this method. It should be a long, random sequence of bytes
        +        to be used as the HMAC secret for the signature.
        +
        +        To read a cookie set with this method, use `get_secure_cookie()`.
        +
        +        Note that the ``expires_days`` parameter sets the lifetime of the
        +        cookie in the browser, but is independent of the ``max_age_days``
        +        parameter to `get_secure_cookie`.
        +
        +        Secure cookies may contain arbitrary byte values, not just unicode
        +        strings (unlike regular cookies)
        +
        +        Similar to `set_cookie`, the effect of this method will not be
        +        seen until the following request.
        +
        +        .. versionchanged:: 3.2.1
        +
        +           Added the ``version`` argument.  Introduced cookie version 2
        +           and made it the default.
        +        """
        +        self.set_cookie(
        +            name,
        +            self.create_signed_value(name, value, version=version),
        +            expires_days=expires_days,
        +            **kwargs
        +        )
        +
        +    def create_signed_value(
        +        self, name: str, value: Union[str, bytes], version: int = None
        +    ) -> bytes:
        +        """Signs and timestamps a string so it cannot be forged.
        +
        +        Normally used via set_secure_cookie, but provided as a separate
        +        method for non-cookie uses.  To decode a value not stored
        +        as a cookie use the optional value argument to get_secure_cookie.
        +
        +        .. versionchanged:: 3.2.1
        +
        +           Added the ``version`` argument.  Introduced cookie version 2
        +           and made it the default.
        +        """
        +        self.require_setting("cookie_secret", "secure cookies")
        +        secret = self.application.settings["cookie_secret"]
        +        key_version = None
        +        if isinstance(secret, dict):
        +            if self.application.settings.get("key_version") is None:
        +                raise Exception("key_version setting must be used for secret_key dicts")
        +            key_version = self.application.settings["key_version"]
        +
        +        return create_signed_value(
        +            secret, name, value, version=version, key_version=key_version
        +        )
        +
        +    def get_secure_cookie(
        +        self,
        +        name: str,
        +        value: str = None,
        +        max_age_days: int = 31,
        +        min_version: int = None,
        +    ) -> Optional[bytes]:
        +        """Returns the given signed cookie if it validates, or None.
        +
        +        The decoded cookie value is returned as a byte string (unlike
        +        `get_cookie`).
        +
        +        Similar to `get_cookie`, this method only returns cookies that
        +        were present in the request. It does not see outgoing cookies set by
        +        `set_secure_cookie` in this handler.
        +
        +        .. versionchanged:: 3.2.1
        +
        +           Added the ``min_version`` argument.  Introduced cookie version 2;
        +           both versions 1 and 2 are accepted by default.
        +        """
        +        self.require_setting("cookie_secret", "secure cookies")
        +        if value is None:
        +            value = self.get_cookie(name)
        +        return decode_signed_value(
        +            self.application.settings["cookie_secret"],
        +            name,
        +            value,
        +            max_age_days=max_age_days,
        +            min_version=min_version,
        +        )
        +
        +    def get_secure_cookie_key_version(
        +        self, name: str, value: str = None
        +    ) -> Optional[int]:
        +        """Returns the signing key version of the secure cookie.
        +
        +        The version is returned as int.
        +        """
        +        self.require_setting("cookie_secret", "secure cookies")
        +        if value is None:
        +            value = self.get_cookie(name)
        +        if value is None:
        +            return None
        +        return get_signature_key_version(value)
        +
        +    def redirect(self, url: str, permanent: bool = False, status: int = None) -> None:
        +        """Sends a redirect to the given (optionally relative) URL.
        +
        +        If the ``status`` argument is specified, that value is used as the
        +        HTTP status code; otherwise either 301 (permanent) or 302
        +        (temporary) is chosen based on the ``permanent`` argument.
        +        The default is 302 (temporary).
        +        """
        +        if self._headers_written:
        +            raise Exception("Cannot redirect after headers have been written")
        +        if status is None:
        +            status = 301 if permanent else 302
        +        else:
        +            assert isinstance(status, int) and 300 <= status <= 399
        +        self.set_status(status)
        +        self.set_header("Location", utf8(url))
        +        self.finish()
        +
        +    def write(self, chunk: Union[str, bytes, dict]) -> None:
        +        """Writes the given chunk to the output buffer.
        +
        +        To write the output to the network, use the `flush()` method below.
        +
        +        If the given chunk is a dictionary, we write it as JSON and set
        +        the Content-Type of the response to be ``application/json``.
        +        (if you want to send JSON as a different ``Content-Type``, call
        +        ``set_header`` *after* calling ``write()``).
        +
        +        Note that lists are not converted to JSON because of a potential
        +        cross-site security vulnerability.  All JSON output should be
        +        wrapped in a dictionary.  More details at
        +        http://haacked.com/archive/2009/06/25/json-hijacking.aspx/ and
        +        https://github.com/facebook/tornado/issues/1009
        +        """
        +        if self._finished:
        +            raise RuntimeError("Cannot write() after finish()")
        +        if not isinstance(chunk, (bytes, unicode_type, dict)):
        +            message = "write() only accepts bytes, unicode, and dict objects"
        +            if isinstance(chunk, list):
        +                message += (
        +                    ". Lists not accepted for security reasons; see "
        +                    + "http://www.tornadoweb.org/en/stable/web.html#tornado.web.RequestHandler.write"  # noqa: E501
        +                )
        +            raise TypeError(message)
        +        if isinstance(chunk, dict):
        +            chunk = escape.json_encode(chunk)
        +            self.set_header("Content-Type", "application/json; charset=UTF-8")
        +        chunk = utf8(chunk)
        +        self._write_buffer.append(chunk)
        +
        +    def render(self, template_name: str, **kwargs: Any) -> "Future[None]":
        +        """Renders the template with the given arguments as the response.
        +
        +        ``render()`` calls ``finish()``, so no other output methods can be called
        +        after it.
        +
        +        Returns a `.Future` with the same semantics as the one returned by `finish`.
        +        Awaiting this `.Future` is optional.
        +
        +        .. versionchanged:: 5.1
        +
        +           Now returns a `.Future` instead of ``None``.
        +        """
        +        if self._finished:
        +            raise RuntimeError("Cannot render() after finish()")
        +        html = self.render_string(template_name, **kwargs)
        +
        +        # Insert the additional JS and CSS added by the modules on the page
        +        js_embed = []
        +        js_files = []
        +        css_embed = []
        +        css_files = []
        +        html_heads = []
        +        html_bodies = []
        +        for module in getattr(self, "_active_modules", {}).values():
        +            embed_part = module.embedded_javascript()
        +            if embed_part:
        +                js_embed.append(utf8(embed_part))
        +            file_part = module.javascript_files()
        +            if file_part:
        +                if isinstance(file_part, (unicode_type, bytes)):
        +                    js_files.append(_unicode(file_part))
        +                else:
        +                    js_files.extend(file_part)
        +            embed_part = module.embedded_css()
        +            if embed_part:
        +                css_embed.append(utf8(embed_part))
        +            file_part = module.css_files()
        +            if file_part:
        +                if isinstance(file_part, (unicode_type, bytes)):
        +                    css_files.append(_unicode(file_part))
        +                else:
        +                    css_files.extend(file_part)
        +            head_part = module.html_head()
        +            if head_part:
        +                html_heads.append(utf8(head_part))
        +            body_part = module.html_body()
        +            if body_part:
        +                html_bodies.append(utf8(body_part))
        +
        +        if js_files:
        +            # Maintain order of JavaScript files given by modules
        +            js = self.render_linked_js(js_files)
        +            sloc = html.rindex(b"")
        +            html = html[:sloc] + utf8(js) + b"\n" + html[sloc:]
        +        if js_embed:
        +            js_bytes = self.render_embed_js(js_embed)
        +            sloc = html.rindex(b"")
        +            html = html[:sloc] + js_bytes + b"\n" + html[sloc:]
        +        if css_files:
        +            css = self.render_linked_css(css_files)
        +            hloc = html.index(b"")
        +            html = html[:hloc] + utf8(css) + b"\n" + html[hloc:]
        +        if css_embed:
        +            css_bytes = self.render_embed_css(css_embed)
        +            hloc = html.index(b"")
        +            html = html[:hloc] + css_bytes + b"\n" + html[hloc:]
        +        if html_heads:
        +            hloc = html.index(b"")
        +            html = html[:hloc] + b"".join(html_heads) + b"\n" + html[hloc:]
        +        if html_bodies:
        +            hloc = html.index(b"")
        +            html = html[:hloc] + b"".join(html_bodies) + b"\n" + html[hloc:]
        +        return self.finish(html)
        +
        +    def render_linked_js(self, js_files: Iterable[str]) -> str:
        +        """Default method used to render the final js links for the
        +        rendered webpage.
        +
        +        Override this method in a sub-classed controller to change the output.
        +        """
        +        paths = []
        +        unique_paths = set()  # type: Set[str]
        +
        +        for path in js_files:
        +            if not is_absolute(path):
        +                path = self.static_url(path)
        +            if path not in unique_paths:
        +                paths.append(path)
        +                unique_paths.add(path)
        +
        +        return "".join(
        +            ''
        +            for p in paths
        +        )
        +
        +    def render_embed_js(self, js_embed: Iterable[bytes]) -> bytes:
        +        """Default method used to render the final embedded js for the
        +        rendered webpage.
        +
        +        Override this method in a sub-classed controller to change the output.
        +        """
        +        return (
        +            b'"
        +        )
        +
        +    def render_linked_css(self, css_files: Iterable[str]) -> str:
        +        """Default method used to render the final css links for the
        +        rendered webpage.
        +
        +        Override this method in a sub-classed controller to change the output.
        +        """
        +        paths = []
        +        unique_paths = set()  # type: Set[str]
        +
        +        for path in css_files:
        +            if not is_absolute(path):
        +                path = self.static_url(path)
        +            if path not in unique_paths:
        +                paths.append(path)
        +                unique_paths.add(path)
        +
        +        return "".join(
        +            ''
        +            for p in paths
        +        )
        +
        +    def render_embed_css(self, css_embed: Iterable[bytes]) -> bytes:
        +        """Default method used to render the final embedded css for the
        +        rendered webpage.
        +
        +        Override this method in a sub-classed controller to change the output.
        +        """
        +        return b'"
        +
        +    def render_string(self, template_name: str, **kwargs: Any) -> bytes:
        +        """Generate the given template with the given arguments.
        +
        +        We return the generated byte string (in utf8). To generate and
        +        write a template as a response, use render() above.
        +        """
        +        # If no template_path is specified, use the path of the calling file
        +        template_path = self.get_template_path()
        +        if not template_path:
        +            frame = sys._getframe(0)
        +            web_file = frame.f_code.co_filename
        +            while frame.f_code.co_filename == web_file:
        +                frame = frame.f_back
        +            assert frame.f_code.co_filename is not None
        +            template_path = os.path.dirname(frame.f_code.co_filename)
        +        with RequestHandler._template_loader_lock:
        +            if template_path not in RequestHandler._template_loaders:
        +                loader = self.create_template_loader(template_path)
        +                RequestHandler._template_loaders[template_path] = loader
        +            else:
        +                loader = RequestHandler._template_loaders[template_path]
        +        t = loader.load(template_name)
        +        namespace = self.get_template_namespace()
        +        namespace.update(kwargs)
        +        return t.generate(**namespace)
        +
        +    def get_template_namespace(self) -> Dict[str, Any]:
        +        """Returns a dictionary to be used as the default template namespace.
        +
        +        May be overridden by subclasses to add or modify values.
        +
        +        The results of this method will be combined with additional
        +        defaults in the `tornado.template` module and keyword arguments
        +        to `render` or `render_string`.
        +        """
        +        namespace = dict(
        +            handler=self,
        +            request=self.request,
        +            current_user=self.current_user,
        +            locale=self.locale,
        +            _=self.locale.translate,
        +            pgettext=self.locale.pgettext,
        +            static_url=self.static_url,
        +            xsrf_form_html=self.xsrf_form_html,
        +            reverse_url=self.reverse_url,
        +        )
        +        namespace.update(self.ui)
        +        return namespace
        +
        +    def create_template_loader(self, template_path: str) -> template.BaseLoader:
        +        """Returns a new template loader for the given path.
        +
        +        May be overridden by subclasses.  By default returns a
        +        directory-based loader on the given path, using the
        +        ``autoescape`` and ``template_whitespace`` application
        +        settings.  If a ``template_loader`` application setting is
        +        supplied, uses that instead.
        +        """
        +        settings = self.application.settings
        +        if "template_loader" in settings:
        +            return settings["template_loader"]
        +        kwargs = {}
        +        if "autoescape" in settings:
        +            # autoescape=None means "no escaping", so we have to be sure
        +            # to only pass this kwarg if the user asked for it.
        +            kwargs["autoescape"] = settings["autoescape"]
        +        if "template_whitespace" in settings:
        +            kwargs["whitespace"] = settings["template_whitespace"]
        +        return template.Loader(template_path, **kwargs)
        +
        +    def flush(self, include_footers: bool = False) -> "Future[None]":
        +        """Flushes the current output buffer to the network.
        +
        +        The ``callback`` argument, if given, can be used for flow control:
        +        it will be run when all flushed data has been written to the socket.
        +        Note that only one flush callback can be outstanding at a time;
        +        if another flush occurs before the previous flush's callback
        +        has been run, the previous callback will be discarded.
        +
        +        .. versionchanged:: 4.0
        +           Now returns a `.Future` if no callback is given.
        +
        +        .. versionchanged:: 6.0
        +
        +           The ``callback`` argument was removed.
        +        """
        +        assert self.request.connection is not None
        +        chunk = b"".join(self._write_buffer)
        +        self._write_buffer = []
        +        if not self._headers_written:
        +            self._headers_written = True
        +            for transform in self._transforms:
        +                assert chunk is not None
        +                (
        +                    self._status_code,
        +                    self._headers,
        +                    chunk,
        +                ) = transform.transform_first_chunk(
        +                    self._status_code, self._headers, chunk, include_footers
        +                )
        +            # Ignore the chunk and only write the headers for HEAD requests
        +            if self.request.method == "HEAD":
        +                chunk = b""
        +
        +            # Finalize the cookie headers (which have been stored in a side
        +            # object so an outgoing cookie could be overwritten before it
        +            # is sent).
        +            if hasattr(self, "_new_cookie"):
        +                for cookie in self._new_cookie.values():
        +                    self.add_header("Set-Cookie", cookie.OutputString(None))
        +
        +            start_line = httputil.ResponseStartLine("", self._status_code, self._reason)
        +            return self.request.connection.write_headers(
        +                start_line, self._headers, chunk
        +            )
        +        else:
        +            for transform in self._transforms:
        +                chunk = transform.transform_chunk(chunk, include_footers)
        +            # Ignore the chunk and only write the headers for HEAD requests
        +            if self.request.method != "HEAD":
        +                return self.request.connection.write(chunk)
        +            else:
        +                future = Future()  # type: Future[None]
        +                future.set_result(None)
        +                return future
        +
        +    def finish(self, chunk: Union[str, bytes, dict] = None) -> "Future[None]":
        +        """Finishes this response, ending the HTTP request.
        +
        +        Passing a ``chunk`` to ``finish()`` is equivalent to passing that
        +        chunk to ``write()`` and then calling ``finish()`` with no arguments.
        +
        +        Returns a `.Future` which may optionally be awaited to track the sending
        +        of the response to the client. This `.Future` resolves when all the response
        +        data has been sent, and raises an error if the connection is closed before all
        +        data can be sent.
        +
        +        .. versionchanged:: 5.1
        +
        +           Now returns a `.Future` instead of ``None``.
        +        """
        +        if self._finished:
        +            raise RuntimeError("finish() called twice")
        +
        +        if chunk is not None:
        +            self.write(chunk)
        +
        +        # Automatically support ETags and add the Content-Length header if
        +        # we have not flushed any content yet.
        +        if not self._headers_written:
        +            if (
        +                self._status_code == 200
        +                and self.request.method in ("GET", "HEAD")
        +                and "Etag" not in self._headers
        +            ):
        +                self.set_etag_header()
        +                if self.check_etag_header():
        +                    self._write_buffer = []
        +                    self.set_status(304)
        +            if self._status_code in (204, 304) or (
        +                self._status_code >= 100 and self._status_code < 200
        +            ):
        +                assert not self._write_buffer, (
        +                    "Cannot send body with %s" % self._status_code
        +                )
        +                self._clear_headers_for_304()
        +            elif "Content-Length" not in self._headers:
        +                content_length = sum(len(part) for part in self._write_buffer)
        +                self.set_header("Content-Length", content_length)
        +
        +        assert self.request.connection is not None
        +        # Now that the request is finished, clear the callback we
        +        # set on the HTTPConnection (which would otherwise prevent the
        +        # garbage collection of the RequestHandler when there
        +        # are keepalive connections)
        +        self.request.connection.set_close_callback(None)  # type: ignore
        +
        +        future = self.flush(include_footers=True)
        +        self.request.connection.finish()
        +        self._log()
        +        self._finished = True
        +        self.on_finish()
        +        self._break_cycles()
        +        return future
        +
        +    def detach(self) -> iostream.IOStream:
        +        """Take control of the underlying stream.
        +
        +        Returns the underlying `.IOStream` object and stops all
        +        further HTTP processing. Intended for implementing protocols
        +        like websockets that tunnel over an HTTP handshake.
        +
        +        This method is only supported when HTTP/1.1 is used.
        +
        +        .. versionadded:: 5.1
        +        """
        +        self._finished = True
        +        # TODO: add detach to HTTPConnection?
        +        return self.request.connection.detach()  # type: ignore
        +
        +    def _break_cycles(self) -> None:
        +        # Break up a reference cycle between this handler and the
        +        # _ui_module closures to allow for faster GC on CPython.
        +        self.ui = None  # type: ignore
        +
        +    def send_error(self, status_code: int = 500, **kwargs: Any) -> None:
        +        """Sends the given HTTP error code to the browser.
        +
        +        If `flush()` has already been called, it is not possible to send
        +        an error, so this method will simply terminate the response.
        +        If output has been written but not yet flushed, it will be discarded
        +        and replaced with the error page.
        +
        +        Override `write_error()` to customize the error page that is returned.
        +        Additional keyword arguments are passed through to `write_error`.
        +        """
        +        if self._headers_written:
        +            gen_log.error("Cannot send error response after headers written")
        +            if not self._finished:
        +                # If we get an error between writing headers and finishing,
        +                # we are unlikely to be able to finish due to a
        +                # Content-Length mismatch. Try anyway to release the
        +                # socket.
        +                try:
        +                    self.finish()
        +                except Exception:
        +                    gen_log.error("Failed to flush partial response", exc_info=True)
        +            return
        +        self.clear()
        +
        +        reason = kwargs.get("reason")
        +        if "exc_info" in kwargs:
        +            exception = kwargs["exc_info"][1]
        +            if isinstance(exception, HTTPError) and exception.reason:
        +                reason = exception.reason
        +        self.set_status(status_code, reason=reason)
        +        try:
        +            self.write_error(status_code, **kwargs)
        +        except Exception:
        +            app_log.error("Uncaught exception in write_error", exc_info=True)
        +        if not self._finished:
        +            self.finish()
        +
        +    def write_error(self, status_code: int, **kwargs: Any) -> None:
        +        """Override to implement custom error pages.
        +
        +        ``write_error`` may call `write`, `render`, `set_header`, etc
        +        to produce output as usual.
        +
        +        If this error was caused by an uncaught exception (including
        +        HTTPError), an ``exc_info`` triple will be available as
        +        ``kwargs["exc_info"]``.  Note that this exception may not be
        +        the "current" exception for purposes of methods like
        +        ``sys.exc_info()`` or ``traceback.format_exc``.
        +        """
        +        if self.settings.get("serve_traceback") and "exc_info" in kwargs:
        +            # in debug mode, try to send a traceback
        +            self.set_header("Content-Type", "text/plain")
        +            for line in traceback.format_exception(*kwargs["exc_info"]):
        +                self.write(line)
        +            self.finish()
        +        else:
        +            self.finish(
        +                "%(code)d: %(message)s"
        +                "%(code)d: %(message)s"
        +                % {"code": status_code, "message": self._reason}
        +            )
        +
        +    @property
        +    def locale(self) -> tornado.locale.Locale:
        +        """The locale for the current session.
        +
        +        Determined by either `get_user_locale`, which you can override to
        +        set the locale based on, e.g., a user preference stored in a
        +        database, or `get_browser_locale`, which uses the ``Accept-Language``
        +        header.
        +
        +        .. versionchanged: 4.1
        +           Added a property setter.
        +        """
        +        if not hasattr(self, "_locale"):
        +            loc = self.get_user_locale()
        +            if loc is not None:
        +                self._locale = loc
        +            else:
        +                self._locale = self.get_browser_locale()
        +                assert self._locale
        +        return self._locale
        +
        +    @locale.setter
        +    def locale(self, value: tornado.locale.Locale) -> None:
        +        self._locale = value
        +
        +    def get_user_locale(self) -> Optional[tornado.locale.Locale]:
        +        """Override to determine the locale from the authenticated user.
        +
        +        If None is returned, we fall back to `get_browser_locale()`.
        +
        +        This method should return a `tornado.locale.Locale` object,
        +        most likely obtained via a call like ``tornado.locale.get("en")``
        +        """
        +        return None
        +
        +    def get_browser_locale(self, default: str = "en_US") -> tornado.locale.Locale:
        +        """Determines the user's locale from ``Accept-Language`` header.
        +
        +        See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
        +        """
        +        if "Accept-Language" in self.request.headers:
        +            languages = self.request.headers["Accept-Language"].split(",")
        +            locales = []
        +            for language in languages:
        +                parts = language.strip().split(";")
        +                if len(parts) > 1 and parts[1].startswith("q="):
        +                    try:
        +                        score = float(parts[1][2:])
        +                    except (ValueError, TypeError):
        +                        score = 0.0
        +                else:
        +                    score = 1.0
        +                locales.append((parts[0], score))
        +            if locales:
        +                locales.sort(key=lambda pair: pair[1], reverse=True)
        +                codes = [l[0] for l in locales]
        +                return locale.get(*codes)
        +        return locale.get(default)
        +
        +    @property
        +    def current_user(self) -> Any:
        +        """The authenticated user for this request.
        +
        +        This is set in one of two ways:
        +
        +        * A subclass may override `get_current_user()`, which will be called
        +          automatically the first time ``self.current_user`` is accessed.
        +          `get_current_user()` will only be called once per request,
        +          and is cached for future access::
        +
        +              def get_current_user(self):
        +                  user_cookie = self.get_secure_cookie("user")
        +                  if user_cookie:
        +                      return json.loads(user_cookie)
        +                  return None
        +
        +        * It may be set as a normal variable, typically from an overridden
        +          `prepare()`::
        +
        +              @gen.coroutine
        +              def prepare(self):
        +                  user_id_cookie = self.get_secure_cookie("user_id")
        +                  if user_id_cookie:
        +                      self.current_user = yield load_user(user_id_cookie)
        +
        +        Note that `prepare()` may be a coroutine while `get_current_user()`
        +        may not, so the latter form is necessary if loading the user requires
        +        asynchronous operations.
        +
        +        The user object may be any type of the application's choosing.
        +        """
        +        if not hasattr(self, "_current_user"):
        +            self._current_user = self.get_current_user()
        +        return self._current_user
        +
        +    @current_user.setter
        +    def current_user(self, value: Any) -> None:
        +        self._current_user = value
        +
        +    def get_current_user(self) -> Any:
        +        """Override to determine the current user from, e.g., a cookie.
        +
        +        This method may not be a coroutine.
        +        """
        +        return None
        +
        +    def get_login_url(self) -> str:
        +        """Override to customize the login URL based on the request.
        +
        +        By default, we use the ``login_url`` application setting.
        +        """
        +        self.require_setting("login_url", "@tornado.web.authenticated")
        +        return self.application.settings["login_url"]
        +
        +    def get_template_path(self) -> Optional[str]:
        +        """Override to customize template path for each handler.
        +
        +        By default, we use the ``template_path`` application setting.
        +        Return None to load templates relative to the calling file.
        +        """
        +        return self.application.settings.get("template_path")
        +
        +    @property
        +    def xsrf_token(self) -> bytes:
        +        """The XSRF-prevention token for the current user/session.
        +
        +        To prevent cross-site request forgery, we set an '_xsrf' cookie
        +        and include the same '_xsrf' value as an argument with all POST
        +        requests. If the two do not match, we reject the form submission
        +        as a potential forgery.
        +
        +        See http://en.wikipedia.org/wiki/Cross-site_request_forgery
        +
        +        This property is of type `bytes`, but it contains only ASCII
        +        characters. If a character string is required, there is no
        +        need to base64-encode it; just decode the byte string as
        +        UTF-8.
        +
        +        .. versionchanged:: 3.2.2
        +           The xsrf token will now be have a random mask applied in every
        +           request, which makes it safe to include the token in pages
        +           that are compressed.  See http://breachattack.com for more
        +           information on the issue fixed by this change.  Old (version 1)
        +           cookies will be converted to version 2 when this method is called
        +           unless the ``xsrf_cookie_version`` `Application` setting is
        +           set to 1.
        +
        +        .. versionchanged:: 4.3
        +           The ``xsrf_cookie_kwargs`` `Application` setting may be
        +           used to supply additional cookie options (which will be
        +           passed directly to `set_cookie`). For example,
        +           ``xsrf_cookie_kwargs=dict(httponly=True, secure=True)``
        +           will set the ``secure`` and ``httponly`` flags on the
        +           ``_xsrf`` cookie.
        +        """
        +        if not hasattr(self, "_xsrf_token"):
        +            version, token, timestamp = self._get_raw_xsrf_token()
        +            output_version = self.settings.get("xsrf_cookie_version", 2)
        +            cookie_kwargs = self.settings.get("xsrf_cookie_kwargs", {})
        +            if output_version == 1:
        +                self._xsrf_token = binascii.b2a_hex(token)
        +            elif output_version == 2:
        +                mask = os.urandom(4)
        +                self._xsrf_token = b"|".join(
        +                    [
        +                        b"2",
        +                        binascii.b2a_hex(mask),
        +                        binascii.b2a_hex(_websocket_mask(mask, token)),
        +                        utf8(str(int(timestamp))),
        +                    ]
        +                )
        +            else:
        +                raise ValueError("unknown xsrf cookie version %d", output_version)
        +            if version is None:
        +                if self.current_user and "expires_days" not in cookie_kwargs:
        +                    cookie_kwargs["expires_days"] = 30
        +                self.set_cookie("_xsrf", self._xsrf_token, **cookie_kwargs)
        +        return self._xsrf_token
        +
        +    def _get_raw_xsrf_token(self) -> Tuple[Optional[int], bytes, float]:
        +        """Read or generate the xsrf token in its raw form.
        +
        +        The raw_xsrf_token is a tuple containing:
        +
        +        * version: the version of the cookie from which this token was read,
        +          or None if we generated a new token in this request.
        +        * token: the raw token data; random (non-ascii) bytes.
        +        * timestamp: the time this token was generated (will not be accurate
        +          for version 1 cookies)
        +        """
        +        if not hasattr(self, "_raw_xsrf_token"):
        +            cookie = self.get_cookie("_xsrf")
        +            if cookie:
        +                version, token, timestamp = self._decode_xsrf_token(cookie)
        +            else:
        +                version, token, timestamp = None, None, None
        +            if token is None:
        +                version = None
        +                token = os.urandom(16)
        +                timestamp = time.time()
        +            assert token is not None
        +            assert timestamp is not None
        +            self._raw_xsrf_token = (version, token, timestamp)
        +        return self._raw_xsrf_token
        +
        +    def _decode_xsrf_token(
        +        self, cookie: str
        +    ) -> Tuple[Optional[int], Optional[bytes], Optional[float]]:
        +        """Convert a cookie string into a the tuple form returned by
        +        _get_raw_xsrf_token.
        +        """
        +
        +        try:
        +            m = _signed_value_version_re.match(utf8(cookie))
        +
        +            if m:
        +                version = int(m.group(1))
        +                if version == 2:
        +                    _, mask_str, masked_token, timestamp_str = cookie.split("|")
        +
        +                    mask = binascii.a2b_hex(utf8(mask_str))
        +                    token = _websocket_mask(mask, binascii.a2b_hex(utf8(masked_token)))
        +                    timestamp = int(timestamp_str)
        +                    return version, token, timestamp
        +                else:
        +                    # Treat unknown versions as not present instead of failing.
        +                    raise Exception("Unknown xsrf cookie version")
        +            else:
        +                version = 1
        +                try:
        +                    token = binascii.a2b_hex(utf8(cookie))
        +                except (binascii.Error, TypeError):
        +                    token = utf8(cookie)
        +                # We don't have a usable timestamp in older versions.
        +                timestamp = int(time.time())
        +                return (version, token, timestamp)
        +        except Exception:
        +            # Catch exceptions and return nothing instead of failing.
        +            gen_log.debug("Uncaught exception in _decode_xsrf_token", exc_info=True)
        +            return None, None, None
        +
        +    def check_xsrf_cookie(self) -> None:
        +        """Verifies that the ``_xsrf`` cookie matches the ``_xsrf`` argument.
        +
        +        To prevent cross-site request forgery, we set an ``_xsrf``
        +        cookie and include the same value as a non-cookie
        +        field with all ``POST`` requests. If the two do not match, we
        +        reject the form submission as a potential forgery.
        +
        +        The ``_xsrf`` value may be set as either a form field named ``_xsrf``
        +        or in a custom HTTP header named ``X-XSRFToken`` or ``X-CSRFToken``
        +        (the latter is accepted for compatibility with Django).
        +
        +        See http://en.wikipedia.org/wiki/Cross-site_request_forgery
        +
        +        .. versionchanged:: 3.2.2
        +           Added support for cookie version 2.  Both versions 1 and 2 are
        +           supported.
        +        """
        +        # Prior to release 1.1.1, this check was ignored if the HTTP header
        +        # ``X-Requested-With: XMLHTTPRequest`` was present.  This exception
        +        # has been shown to be insecure and has been removed.  For more
        +        # information please see
        +        # http://www.djangoproject.com/weblog/2011/feb/08/security/
        +        # http://weblog.rubyonrails.org/2011/2/8/csrf-protection-bypass-in-ruby-on-rails
        +        token = (
        +            self.get_argument("_xsrf", None)
        +            or self.request.headers.get("X-Xsrftoken")
        +            or self.request.headers.get("X-Csrftoken")
        +        )
        +        if not token:
        +            raise HTTPError(403, "'_xsrf' argument missing from POST")
        +        _, token, _ = self._decode_xsrf_token(token)
        +        _, expected_token, _ = self._get_raw_xsrf_token()
        +        if not token:
        +            raise HTTPError(403, "'_xsrf' argument has invalid format")
        +        if not hmac.compare_digest(utf8(token), utf8(expected_token)):
        +            raise HTTPError(403, "XSRF cookie does not match POST argument")
        +
        +    def xsrf_form_html(self) -> str:
        +        """An HTML ```` element to be included with all POST forms.
        +
        +        It defines the ``_xsrf`` input value, which we check on all POST
        +        requests to prevent cross-site request forgery. If you have set
        +        the ``xsrf_cookies`` application setting, you must include this
        +        HTML within all of your HTML forms.
        +
        +        In a template, this method should be called with ``{% module
        +        xsrf_form_html() %}``
        +
        +        See `check_xsrf_cookie()` above for more information.
        +        """
        +        return (
        +            ''
        +        )
        +
        +    def static_url(self, path: str, include_host: bool = None, **kwargs: Any) -> str:
        +        """Returns a static URL for the given relative static file path.
        +
        +        This method requires you set the ``static_path`` setting in your
        +        application (which specifies the root directory of your static
        +        files).
        +
        +        This method returns a versioned url (by default appending
        +        ``?v=``), which allows the static files to be
        +        cached indefinitely.  This can be disabled by passing
        +        ``include_version=False`` (in the default implementation;
        +        other static file implementations are not required to support
        +        this, but they may support other options).
        +
        +        By default this method returns URLs relative to the current
        +        host, but if ``include_host`` is true the URL returned will be
        +        absolute.  If this handler has an ``include_host`` attribute,
        +        that value will be used as the default for all `static_url`
        +        calls that do not pass ``include_host`` as a keyword argument.
        +
        +        """
        +        self.require_setting("static_path", "static_url")
        +        get_url = self.settings.get(
        +            "static_handler_class", StaticFileHandler
        +        ).make_static_url
        +
        +        if include_host is None:
        +            include_host = getattr(self, "include_host", False)
        +
        +        if include_host:
        +            base = self.request.protocol + "://" + self.request.host
        +        else:
        +            base = ""
        +
        +        return base + get_url(self.settings, path, **kwargs)
        +
        +    def require_setting(self, name: str, feature: str = "this feature") -> None:
        +        """Raises an exception if the given app setting is not defined."""
        +        if not self.application.settings.get(name):
        +            raise Exception(
        +                "You must define the '%s' setting in your "
        +                "application to use %s" % (name, feature)
        +            )
        +
        +    def reverse_url(self, name: str, *args: Any) -> str:
        +        """Alias for `Application.reverse_url`."""
        +        return self.application.reverse_url(name, *args)
        +
        +    def compute_etag(self) -> Optional[str]:
        +        """Computes the etag header to be used for this request.
        +
        +        By default uses a hash of the content written so far.
        +
        +        May be overridden to provide custom etag implementations,
        +        or may return None to disable tornado's default etag support.
        +        """
        +        hasher = hashlib.sha1()
        +        for part in self._write_buffer:
        +            hasher.update(part)
        +        return '"%s"' % hasher.hexdigest()
        +
        +    def set_etag_header(self) -> None:
        +        """Sets the response's Etag header using ``self.compute_etag()``.
        +
        +        Note: no header will be set if ``compute_etag()`` returns ``None``.
        +
        +        This method is called automatically when the request is finished.
        +        """
        +        etag = self.compute_etag()
        +        if etag is not None:
        +            self.set_header("Etag", etag)
        +
        +    def check_etag_header(self) -> bool:
        +        """Checks the ``Etag`` header against requests's ``If-None-Match``.
        +
        +        Returns ``True`` if the request's Etag matches and a 304 should be
        +        returned. For example::
        +
        +            self.set_etag_header()
        +            if self.check_etag_header():
        +                self.set_status(304)
        +                return
        +
        +        This method is called automatically when the request is finished,
        +        but may be called earlier for applications that override
        +        `compute_etag` and want to do an early check for ``If-None-Match``
        +        before completing the request.  The ``Etag`` header should be set
        +        (perhaps with `set_etag_header`) before calling this method.
        +        """
        +        computed_etag = utf8(self._headers.get("Etag", ""))
        +        # Find all weak and strong etag values from If-None-Match header
        +        # because RFC 7232 allows multiple etag values in a single header.
        +        etags = re.findall(
        +            br'\*|(?:W/)?"[^"]*"', utf8(self.request.headers.get("If-None-Match", ""))
        +        )
        +        if not computed_etag or not etags:
        +            return False
        +
        +        match = False
        +        if etags[0] == b"*":
        +            match = True
        +        else:
        +            # Use a weak comparison when comparing entity-tags.
        +            def val(x: bytes) -> bytes:
        +                return x[2:] if x.startswith(b"W/") else x
        +
        +            for etag in etags:
        +                if val(etag) == val(computed_etag):
        +                    match = True
        +                    break
        +        return match
        +
        +    async def _execute(
        +        self, transforms: List["OutputTransform"], *args: bytes, **kwargs: bytes
        +    ) -> None:
        +        """Executes this request with the given output transforms."""
        +        self._transforms = transforms
        +        try:
        +            if self.request.method not in self.SUPPORTED_METHODS:
        +                raise HTTPError(405)
        +            self.path_args = [self.decode_argument(arg) for arg in args]
        +            self.path_kwargs = dict(
        +                (k, self.decode_argument(v, name=k)) for (k, v) in kwargs.items()
        +            )
        +            # If XSRF cookies are turned on, reject form submissions without
        +            # the proper cookie
        +            if self.request.method not in (
        +                "GET",
        +                "HEAD",
        +                "OPTIONS",
        +            ) and self.application.settings.get("xsrf_cookies"):
        +                self.check_xsrf_cookie()
        +
        +            result = self.prepare()
        +            if result is not None:
        +                result = await result
        +            if self._prepared_future is not None:
        +                # Tell the Application we've finished with prepare()
        +                # and are ready for the body to arrive.
        +                future_set_result_unless_cancelled(self._prepared_future, None)
        +            if self._finished:
        +                return
        +
        +            if _has_stream_request_body(self.__class__):
        +                # In streaming mode request.body is a Future that signals
        +                # the body has been completely received.  The Future has no
        +                # result; the data has been passed to self.data_received
        +                # instead.
        +                try:
        +                    await self.request._body_future
        +                except iostream.StreamClosedError:
        +                    return
        +
        +            method = getattr(self, self.request.method.lower())
        +            result = method(*self.path_args, **self.path_kwargs)
        +            if result is not None:
        +                result = await result
        +            if self._auto_finish and not self._finished:
        +                self.finish()
        +        except Exception as e:
        +            try:
        +                self._handle_request_exception(e)
        +            except Exception:
        +                app_log.error("Exception in exception handler", exc_info=True)
        +            finally:
        +                # Unset result to avoid circular references
        +                result = None
        +            if self._prepared_future is not None and not self._prepared_future.done():
        +                # In case we failed before setting _prepared_future, do it
        +                # now (to unblock the HTTP server).  Note that this is not
        +                # in a finally block to avoid GC issues prior to Python 3.4.
        +                self._prepared_future.set_result(None)
        +
        +    def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]:
        +        """Implement this method to handle streamed request data.
        +
        +        Requires the `.stream_request_body` decorator.
        +
        +        May be a coroutine for flow control.
        +        """
        +        raise NotImplementedError()
        +
        +    def _log(self) -> None:
        +        """Logs the current request.
        +
        +        Sort of deprecated since this functionality was moved to the
        +        Application, but left in place for the benefit of existing apps
        +        that have overridden this method.
        +        """
        +        self.application.log_request(self)
        +
        +    def _request_summary(self) -> str:
        +        return "%s %s (%s)" % (
        +            self.request.method,
        +            self.request.uri,
        +            self.request.remote_ip,
        +        )
        +
        +    def _handle_request_exception(self, e: BaseException) -> None:
        +        if isinstance(e, Finish):
        +            # Not an error; just finish the request without logging.
        +            if not self._finished:
        +                self.finish(*e.args)
        +            return
        +        try:
        +            self.log_exception(*sys.exc_info())
        +        except Exception:
        +            # An error here should still get a best-effort send_error()
        +            # to avoid leaking the connection.
        +            app_log.error("Error in exception logger", exc_info=True)
        +        if self._finished:
        +            # Extra errors after the request has been finished should
        +            # be logged, but there is no reason to continue to try and
        +            # send a response.
        +            return
        +        if isinstance(e, HTTPError):
        +            self.send_error(e.status_code, exc_info=sys.exc_info())
        +        else:
        +            self.send_error(500, exc_info=sys.exc_info())
        +
        +    def log_exception(
        +        self,
        +        typ: "Optional[Type[BaseException]]",
        +        value: Optional[BaseException],
        +        tb: Optional[TracebackType],
        +    ) -> None:
        +        """Override to customize logging of uncaught exceptions.
        +
        +        By default logs instances of `HTTPError` as warnings without
        +        stack traces (on the ``tornado.general`` logger), and all
        +        other exceptions as errors with stack traces (on the
        +        ``tornado.application`` logger).
        +
        +        .. versionadded:: 3.1
        +        """
        +        if isinstance(value, HTTPError):
        +            if value.log_message:
        +                format = "%d %s: " + value.log_message
        +                args = [value.status_code, self._request_summary()] + list(value.args)
        +                gen_log.warning(format, *args)
        +        else:
        +            app_log.error(  # type: ignore
        +                "Uncaught exception %s\n%r",
        +                self._request_summary(),
        +                self.request,
        +                exc_info=(typ, value, tb),
        +            )
        +
        +    def _ui_module(self, name: str, module: Type["UIModule"]) -> Callable[..., str]:
        +        def render(*args, **kwargs) -> str:  # type: ignore
        +            if not hasattr(self, "_active_modules"):
        +                self._active_modules = {}  # type: Dict[str, UIModule]
        +            if name not in self._active_modules:
        +                self._active_modules[name] = module(self)
        +            rendered = self._active_modules[name].render(*args, **kwargs)
        +            return rendered
        +
        +        return render
        +
        +    def _ui_method(self, method: Callable[..., str]) -> Callable[..., str]:
        +        return lambda *args, **kwargs: method(self, *args, **kwargs)
        +
        +    def _clear_headers_for_304(self) -> None:
        +        # 304 responses should not contain entity headers (defined in
        +        # http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1)
        +        # not explicitly allowed by
        +        # http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5
        +        headers = [
        +            "Allow",
        +            "Content-Encoding",
        +            "Content-Language",
        +            "Content-Length",
        +            "Content-MD5",
        +            "Content-Range",
        +            "Content-Type",
        +            "Last-Modified",
        +        ]
        +        for h in headers:
        +            self.clear_header(h)
        +
        +
        +def stream_request_body(cls: Type[RequestHandler]) -> Type[RequestHandler]:
        +    """Apply to `RequestHandler` subclasses to enable streaming body support.
        +
        +    This decorator implies the following changes:
        +
        +    * `.HTTPServerRequest.body` is undefined, and body arguments will not
        +      be included in `RequestHandler.get_argument`.
        +    * `RequestHandler.prepare` is called when the request headers have been
        +      read instead of after the entire body has been read.
        +    * The subclass must define a method ``data_received(self, data):``, which
        +      will be called zero or more times as data is available.  Note that
        +      if the request has an empty body, ``data_received`` may not be called.
        +    * ``prepare`` and ``data_received`` may return Futures (such as via
        +      ``@gen.coroutine``, in which case the next method will not be called
        +      until those futures have completed.
        +    * The regular HTTP method (``post``, ``put``, etc) will be called after
        +      the entire body has been read.
        +
        +    See the `file receiver demo `_
        +    for example usage.
        +    """  # noqa: E501
        +    if not issubclass(cls, RequestHandler):
        +        raise TypeError("expected subclass of RequestHandler, got %r", cls)
        +    cls._stream_request_body = True
        +    return cls
        +
        +
        +def _has_stream_request_body(cls: Type[RequestHandler]) -> bool:
        +    if not issubclass(cls, RequestHandler):
        +        raise TypeError("expected subclass of RequestHandler, got %r", cls)
        +    return cls._stream_request_body
        +
        +
        +def removeslash(
        +    method: Callable[..., Optional[Awaitable[None]]]
        +) -> Callable[..., Optional[Awaitable[None]]]:
        +    """Use this decorator to remove trailing slashes from the request path.
        +
        +    For example, a request to ``/foo/`` would redirect to ``/foo`` with this
        +    decorator. Your request handler mapping should use a regular expression
        +    like ``r'/foo/*'`` in conjunction with using the decorator.
        +    """
        +
        +    @functools.wraps(method)
        +    def wrapper(  # type: ignore
        +        self: RequestHandler, *args, **kwargs
        +    ) -> Optional[Awaitable[None]]:
        +        if self.request.path.endswith("/"):
        +            if self.request.method in ("GET", "HEAD"):
        +                uri = self.request.path.rstrip("/")
        +                if uri:  # don't try to redirect '/' to ''
        +                    if self.request.query:
        +                        uri += "?" + self.request.query
        +                    self.redirect(uri, permanent=True)
        +                    return None
        +            else:
        +                raise HTTPError(404)
        +        return method(self, *args, **kwargs)
        +
        +    return wrapper
        +
        +
        +def addslash(
        +    method: Callable[..., Optional[Awaitable[None]]]
        +) -> Callable[..., Optional[Awaitable[None]]]:
        +    """Use this decorator to add a missing trailing slash to the request path.
        +
        +    For example, a request to ``/foo`` would redirect to ``/foo/`` with this
        +    decorator. Your request handler mapping should use a regular expression
        +    like ``r'/foo/?'`` in conjunction with using the decorator.
        +    """
        +
        +    @functools.wraps(method)
        +    def wrapper(  # type: ignore
        +        self: RequestHandler, *args, **kwargs
        +    ) -> Optional[Awaitable[None]]:
        +        if not self.request.path.endswith("/"):
        +            if self.request.method in ("GET", "HEAD"):
        +                uri = self.request.path + "/"
        +                if self.request.query:
        +                    uri += "?" + self.request.query
        +                self.redirect(uri, permanent=True)
        +                return None
        +            raise HTTPError(404)
        +        return method(self, *args, **kwargs)
        +
        +    return wrapper
        +
        +
        +class _ApplicationRouter(ReversibleRuleRouter):
        +    """Routing implementation used internally by `Application`.
        +
        +    Provides a binding between `Application` and `RequestHandler`.
        +    This implementation extends `~.routing.ReversibleRuleRouter` in a couple of ways:
        +        * it allows to use `RequestHandler` subclasses as `~.routing.Rule` target and
        +        * it allows to use a list/tuple of rules as `~.routing.Rule` target.
        +        ``process_rule`` implementation will substitute this list with an appropriate
        +        `_ApplicationRouter` instance.
        +    """
        +
        +    def __init__(self, application: "Application", rules: _RuleList = None) -> None:
        +        assert isinstance(application, Application)
        +        self.application = application
        +        super(_ApplicationRouter, self).__init__(rules)
        +
        +    def process_rule(self, rule: Rule) -> Rule:
        +        rule = super(_ApplicationRouter, self).process_rule(rule)
        +
        +        if isinstance(rule.target, (list, tuple)):
        +            rule.target = _ApplicationRouter(  # type: ignore
        +                self.application, rule.target
        +            )
        +
        +        return rule
        +
        +    def get_target_delegate(
        +        self, target: Any, request: httputil.HTTPServerRequest, **target_params: Any
        +    ) -> Optional[httputil.HTTPMessageDelegate]:
        +        if isclass(target) and issubclass(target, RequestHandler):
        +            return self.application.get_handler_delegate(
        +                request, target, **target_params
        +            )
        +
        +        return super(_ApplicationRouter, self).get_target_delegate(
        +            target, request, **target_params
        +        )
        +
        +
        +class Application(ReversibleRouter):
        +    r"""A collection of request handlers that make up a web application.
        +
        +    Instances of this class are callable and can be passed directly to
        +    HTTPServer to serve the application::
        +
        +        application = web.Application([
        +            (r"/", MainPageHandler),
        +        ])
        +        http_server = httpserver.HTTPServer(application)
        +        http_server.listen(8080)
        +        ioloop.IOLoop.current().start()
        +
        +    The constructor for this class takes in a list of `~.routing.Rule`
        +    objects or tuples of values corresponding to the arguments of
        +    `~.routing.Rule` constructor: ``(matcher, target, [target_kwargs], [name])``,
        +    the values in square brackets being optional. The default matcher is
        +    `~.routing.PathMatches`, so ``(regexp, target)`` tuples can also be used
        +    instead of ``(PathMatches(regexp), target)``.
        +
        +    A common routing target is a `RequestHandler` subclass, but you can also
        +    use lists of rules as a target, which create a nested routing configuration::
        +
        +        application = web.Application([
        +            (HostMatches("example.com"), [
        +                (r"/", MainPageHandler),
        +                (r"/feed", FeedHandler),
        +            ]),
        +        ])
        +
        +    In addition to this you can use nested `~.routing.Router` instances,
        +    `~.httputil.HTTPMessageDelegate` subclasses and callables as routing targets
        +    (see `~.routing` module docs for more information).
        +
        +    When we receive requests, we iterate over the list in order and
        +    instantiate an instance of the first request class whose regexp
        +    matches the request path. The request class can be specified as
        +    either a class object or a (fully-qualified) name.
        +
        +    A dictionary may be passed as the third element (``target_kwargs``)
        +    of the tuple, which will be used as keyword arguments to the handler's
        +    constructor and `~RequestHandler.initialize` method. This pattern
        +    is used for the `StaticFileHandler` in this example (note that a
        +    `StaticFileHandler` can be installed automatically with the
        +    static_path setting described below)::
        +
        +        application = web.Application([
        +            (r"/static/(.*)", web.StaticFileHandler, {"path": "/var/www"}),
        +        ])
        +
        +    We support virtual hosts with the `add_handlers` method, which takes in
        +    a host regular expression as the first argument::
        +
        +        application.add_handlers(r"www\.myhost\.com", [
        +            (r"/article/([0-9]+)", ArticleHandler),
        +        ])
        +
        +    If there's no match for the current request's host, then ``default_host``
        +    parameter value is matched against host regular expressions.
        +
        +
        +    .. warning::
        +
        +       Applications that do not use TLS may be vulnerable to :ref:`DNS
        +       rebinding ` attacks. This attack is especially
        +       relevant to applications that only listen on ``127.0.0.1`` or
        +       other private networks. Appropriate host patterns must be used
        +       (instead of the default of ``r'.*'``) to prevent this risk. The
        +       ``default_host`` argument must not be used in applications that
        +       may be vulnerable to DNS rebinding.
        +
        +    You can serve static files by sending the ``static_path`` setting
        +    as a keyword argument. We will serve those files from the
        +    ``/static/`` URI (this is configurable with the
        +    ``static_url_prefix`` setting), and we will serve ``/favicon.ico``
        +    and ``/robots.txt`` from the same directory.  A custom subclass of
        +    `StaticFileHandler` can be specified with the
        +    ``static_handler_class`` setting.
        +
        +    .. versionchanged:: 4.5
        +       Integration with the new `tornado.routing` module.
        +
        +    """
        +
        +    def __init__(
        +        self,
        +        handlers: _RuleList = None,
        +        default_host: str = None,
        +        transforms: List[Type["OutputTransform"]] = None,
        +        **settings: Any
        +    ) -> None:
        +        if transforms is None:
        +            self.transforms = []  # type: List[Type[OutputTransform]]
        +            if settings.get("compress_response") or settings.get("gzip"):
        +                self.transforms.append(GZipContentEncoding)
        +        else:
        +            self.transforms = transforms
        +        self.default_host = default_host
        +        self.settings = settings
        +        self.ui_modules = {
        +            "linkify": _linkify,
        +            "xsrf_form_html": _xsrf_form_html,
        +            "Template": TemplateModule,
        +        }
        +        self.ui_methods = {}  # type: Dict[str, Callable[..., str]]
        +        self._load_ui_modules(settings.get("ui_modules", {}))
        +        self._load_ui_methods(settings.get("ui_methods", {}))
        +        if self.settings.get("static_path"):
        +            path = self.settings["static_path"]
        +            handlers = list(handlers or [])
        +            static_url_prefix = settings.get("static_url_prefix", "/static/")
        +            static_handler_class = settings.get(
        +                "static_handler_class", StaticFileHandler
        +            )
        +            static_handler_args = settings.get("static_handler_args", {})
        +            static_handler_args["path"] = path
        +            for pattern in [
        +                re.escape(static_url_prefix) + r"(.*)",
        +                r"/(favicon\.ico)",
        +                r"/(robots\.txt)",
        +            ]:
        +                handlers.insert(0, (pattern, static_handler_class, static_handler_args))
        +
        +        if self.settings.get("debug"):
        +            self.settings.setdefault("autoreload", True)
        +            self.settings.setdefault("compiled_template_cache", False)
        +            self.settings.setdefault("static_hash_cache", False)
        +            self.settings.setdefault("serve_traceback", True)
        +
        +        self.wildcard_router = _ApplicationRouter(self, handlers)
        +        self.default_router = _ApplicationRouter(
        +            self, [Rule(AnyMatches(), self.wildcard_router)]
        +        )
        +
        +        # Automatically reload modified modules
        +        if self.settings.get("autoreload"):
        +            from tornado import autoreload
        +
        +            autoreload.start()
        +
        +    def listen(self, port: int, address: str = "", **kwargs: Any) -> HTTPServer:
        +        """Starts an HTTP server for this application on the given port.
        +
        +        This is a convenience alias for creating an `.HTTPServer`
        +        object and calling its listen method.  Keyword arguments not
        +        supported by `HTTPServer.listen <.TCPServer.listen>` are passed to the
        +        `.HTTPServer` constructor.  For advanced uses
        +        (e.g. multi-process mode), do not use this method; create an
        +        `.HTTPServer` and call its
        +        `.TCPServer.bind`/`.TCPServer.start` methods directly.
        +
        +        Note that after calling this method you still need to call
        +        ``IOLoop.current().start()`` to start the server.
        +
        +        Returns the `.HTTPServer` object.
        +
        +        .. versionchanged:: 4.3
        +           Now returns the `.HTTPServer` object.
        +        """
        +        server = HTTPServer(self, **kwargs)
        +        server.listen(port, address)
        +        return server
        +
        +    def add_handlers(self, host_pattern: str, host_handlers: _RuleList) -> None:
        +        """Appends the given handlers to our handler list.
        +
        +        Host patterns are processed sequentially in the order they were
        +        added. All matching patterns will be considered.
        +        """
        +        host_matcher = HostMatches(host_pattern)
        +        rule = Rule(host_matcher, _ApplicationRouter(self, host_handlers))
        +
        +        self.default_router.rules.insert(-1, rule)
        +
        +        if self.default_host is not None:
        +            self.wildcard_router.add_rules(
        +                [(DefaultHostMatches(self, host_matcher.host_pattern), host_handlers)]
        +            )
        +
        +    def add_transform(self, transform_class: Type["OutputTransform"]) -> None:
        +        self.transforms.append(transform_class)
        +
        +    def _load_ui_methods(self, methods: Any) -> None:
        +        if isinstance(methods, types.ModuleType):
        +            self._load_ui_methods(dict((n, getattr(methods, n)) for n in dir(methods)))
        +        elif isinstance(methods, list):
        +            for m in methods:
        +                self._load_ui_methods(m)
        +        else:
        +            for name, fn in methods.items():
        +                if (
        +                    not name.startswith("_")
        +                    and hasattr(fn, "__call__")
        +                    and name[0].lower() == name[0]
        +                ):
        +                    self.ui_methods[name] = fn
        +
        +    def _load_ui_modules(self, modules: Any) -> None:
        +        if isinstance(modules, types.ModuleType):
        +            self._load_ui_modules(dict((n, getattr(modules, n)) for n in dir(modules)))
        +        elif isinstance(modules, list):
        +            for m in modules:
        +                self._load_ui_modules(m)
        +        else:
        +            assert isinstance(modules, dict)
        +            for name, cls in modules.items():
        +                try:
        +                    if issubclass(cls, UIModule):
        +                        self.ui_modules[name] = cls
        +                except TypeError:
        +                    pass
        +
        +    def __call__(
        +        self, request: httputil.HTTPServerRequest
        +    ) -> Optional[Awaitable[None]]:
        +        # Legacy HTTPServer interface
        +        dispatcher = self.find_handler(request)
        +        return dispatcher.execute()
        +
        +    def find_handler(
        +        self, request: httputil.HTTPServerRequest, **kwargs: Any
        +    ) -> "_HandlerDelegate":
        +        route = self.default_router.find_handler(request)
        +        if route is not None:
        +            return cast("_HandlerDelegate", route)
        +
        +        if self.settings.get("default_handler_class"):
        +            return self.get_handler_delegate(
        +                request,
        +                self.settings["default_handler_class"],
        +                self.settings.get("default_handler_args", {}),
        +            )
        +
        +        return self.get_handler_delegate(request, ErrorHandler, {"status_code": 404})
        +
        +    def get_handler_delegate(
        +        self,
        +        request: httputil.HTTPServerRequest,
        +        target_class: Type[RequestHandler],
        +        target_kwargs: Dict[str, Any] = None,
        +        path_args: List[bytes] = None,
        +        path_kwargs: Dict[str, bytes] = None,
        +    ) -> "_HandlerDelegate":
        +        """Returns `~.httputil.HTTPMessageDelegate` that can serve a request
        +        for application and `RequestHandler` subclass.
        +
        +        :arg httputil.HTTPServerRequest request: current HTTP request.
        +        :arg RequestHandler target_class: a `RequestHandler` class.
        +        :arg dict target_kwargs: keyword arguments for ``target_class`` constructor.
        +        :arg list path_args: positional arguments for ``target_class`` HTTP method that
        +            will be executed while handling a request (``get``, ``post`` or any other).
        +        :arg dict path_kwargs: keyword arguments for ``target_class`` HTTP method.
        +        """
        +        return _HandlerDelegate(
        +            self, request, target_class, target_kwargs, path_args, path_kwargs
        +        )
        +
        +    def reverse_url(self, name: str, *args: Any) -> str:
        +        """Returns a URL path for handler named ``name``
        +
        +        The handler must be added to the application as a named `URLSpec`.
        +
        +        Args will be substituted for capturing groups in the `URLSpec` regex.
        +        They will be converted to strings if necessary, encoded as utf8,
        +        and url-escaped.
        +        """
        +        reversed_url = self.default_router.reverse_url(name, *args)
        +        if reversed_url is not None:
        +            return reversed_url
        +
        +        raise KeyError("%s not found in named urls" % name)
        +
        +    def log_request(self, handler: RequestHandler) -> None:
        +        """Writes a completed HTTP request to the logs.
        +
        +        By default writes to the python root logger.  To change
        +        this behavior either subclass Application and override this method,
        +        or pass a function in the application settings dictionary as
        +        ``log_function``.
        +        """
        +        if "log_function" in self.settings:
        +            self.settings["log_function"](handler)
        +            return
        +        if handler.get_status() < 400:
        +            log_method = access_log.info
        +        elif handler.get_status() < 500:
        +            log_method = access_log.warning
        +        else:
        +            log_method = access_log.error
        +        request_time = 1000.0 * handler.request.request_time()
        +        log_method(
        +            "%d %s %.2fms",
        +            handler.get_status(),
        +            handler._request_summary(),
        +            request_time,
        +        )
        +
        +
        +class _HandlerDelegate(httputil.HTTPMessageDelegate):
        +    def __init__(
        +        self,
        +        application: Application,
        +        request: httputil.HTTPServerRequest,
        +        handler_class: Type[RequestHandler],
        +        handler_kwargs: Optional[Dict[str, Any]],
        +        path_args: Optional[List[bytes]],
        +        path_kwargs: Optional[Dict[str, bytes]],
        +    ) -> None:
        +        self.application = application
        +        self.connection = request.connection
        +        self.request = request
        +        self.handler_class = handler_class
        +        self.handler_kwargs = handler_kwargs or {}
        +        self.path_args = path_args or []
        +        self.path_kwargs = path_kwargs or {}
        +        self.chunks = []  # type: List[bytes]
        +        self.stream_request_body = _has_stream_request_body(self.handler_class)
        +
        +    def headers_received(
        +        self,
        +        start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine],
        +        headers: httputil.HTTPHeaders,
        +    ) -> Optional[Awaitable[None]]:
        +        if self.stream_request_body:
        +            self.request._body_future = Future()
        +            return self.execute()
        +        return None
        +
        +    def data_received(self, data: bytes) -> Optional[Awaitable[None]]:
        +        if self.stream_request_body:
        +            return self.handler.data_received(data)
        +        else:
        +            self.chunks.append(data)
        +            return None
        +
        +    def finish(self) -> None:
        +        if self.stream_request_body:
        +            future_set_result_unless_cancelled(self.request._body_future, None)
        +        else:
        +            self.request.body = b"".join(self.chunks)
        +            self.request._parse_body()
        +            self.execute()
        +
        +    def on_connection_close(self) -> None:
        +        if self.stream_request_body:
        +            self.handler.on_connection_close()
        +        else:
        +            self.chunks = None  # type: ignore
        +
        +    def execute(self) -> Optional[Awaitable[None]]:
        +        # If template cache is disabled (usually in the debug mode),
        +        # re-compile templates and reload static files on every
        +        # request so you don't need to restart to see changes
        +        if not self.application.settings.get("compiled_template_cache", True):
        +            with RequestHandler._template_loader_lock:
        +                for loader in RequestHandler._template_loaders.values():
        +                    loader.reset()
        +        if not self.application.settings.get("static_hash_cache", True):
        +            StaticFileHandler.reset()
        +
        +        self.handler = self.handler_class(
        +            self.application, self.request, **self.handler_kwargs
        +        )
        +        transforms = [t(self.request) for t in self.application.transforms]
        +
        +        if self.stream_request_body:
        +            self.handler._prepared_future = Future()
        +        # Note that if an exception escapes handler._execute it will be
        +        # trapped in the Future it returns (which we are ignoring here,
        +        # leaving it to be logged when the Future is GC'd).
        +        # However, that shouldn't happen because _execute has a blanket
        +        # except handler, and we cannot easily access the IOLoop here to
        +        # call add_future (because of the requirement to remain compatible
        +        # with WSGI)
        +        fut = gen.convert_yielded(
        +            self.handler._execute(transforms, *self.path_args, **self.path_kwargs)
        +        )
        +        fut.add_done_callback(lambda f: f.result())
        +        # If we are streaming the request body, then execute() is finished
        +        # when the handler has prepared to receive the body.  If not,
        +        # it doesn't matter when execute() finishes (so we return None)
        +        return self.handler._prepared_future
        +
        +
        +class HTTPError(Exception):
        +    """An exception that will turn into an HTTP error response.
        +
        +    Raising an `HTTPError` is a convenient alternative to calling
        +    `RequestHandler.send_error` since it automatically ends the
        +    current function.
        +
        +    To customize the response sent with an `HTTPError`, override
        +    `RequestHandler.write_error`.
        +
        +    :arg int status_code: HTTP status code.  Must be listed in
        +        `httplib.responses ` unless the ``reason``
        +        keyword argument is given.
        +    :arg str log_message: Message to be written to the log for this error
        +        (will not be shown to the user unless the `Application` is in debug
        +        mode).  May contain ``%s``-style placeholders, which will be filled
        +        in with remaining positional parameters.
        +    :arg str reason: Keyword-only argument.  The HTTP "reason" phrase
        +        to pass in the status line along with ``status_code``.  Normally
        +        determined automatically from ``status_code``, but can be used
        +        to use a non-standard numeric code.
        +    """
        +
        +    def __init__(
        +        self, status_code: int = 500, log_message: str = None, *args: Any, **kwargs: Any
        +    ) -> None:
        +        self.status_code = status_code
        +        self.log_message = log_message
        +        self.args = args
        +        self.reason = kwargs.get("reason", None)
        +        if log_message and not args:
        +            self.log_message = log_message.replace("%", "%%")
        +
        +    def __str__(self) -> str:
        +        message = "HTTP %d: %s" % (
        +            self.status_code,
        +            self.reason or httputil.responses.get(self.status_code, "Unknown"),
        +        )
        +        if self.log_message:
        +            return message + " (" + (self.log_message % self.args) + ")"
        +        else:
        +            return message
        +
        +
        +class Finish(Exception):
        +    """An exception that ends the request without producing an error response.
        +
        +    When `Finish` is raised in a `RequestHandler`, the request will
        +    end (calling `RequestHandler.finish` if it hasn't already been
        +    called), but the error-handling methods (including
        +    `RequestHandler.write_error`) will not be called.
        +
        +    If `Finish()` was created with no arguments, the pending response
        +    will be sent as-is. If `Finish()` was given an argument, that
        +    argument will be passed to `RequestHandler.finish()`.
        +
        +    This can be a more convenient way to implement custom error pages
        +    than overriding ``write_error`` (especially in library code)::
        +
        +        if self.current_user is None:
        +            self.set_status(401)
        +            self.set_header('WWW-Authenticate', 'Basic realm="something"')
        +            raise Finish()
        +
        +    .. versionchanged:: 4.3
        +       Arguments passed to ``Finish()`` will be passed on to
        +       `RequestHandler.finish`.
        +    """
        +
        +    pass
        +
        +
        +class MissingArgumentError(HTTPError):
        +    """Exception raised by `RequestHandler.get_argument`.
        +
        +    This is a subclass of `HTTPError`, so if it is uncaught a 400 response
        +    code will be used instead of 500 (and a stack trace will not be logged).
        +
        +    .. versionadded:: 3.1
        +    """
        +
        +    def __init__(self, arg_name: str) -> None:
        +        super(MissingArgumentError, self).__init__(
        +            400, "Missing argument %s" % arg_name
        +        )
        +        self.arg_name = arg_name
        +
        +
        +class ErrorHandler(RequestHandler):
        +    """Generates an error response with ``status_code`` for all requests."""
        +
        +    def initialize(self, status_code: int) -> None:
        +        self.set_status(status_code)
        +
        +    def prepare(self) -> None:
        +        raise HTTPError(self._status_code)
        +
        +    def check_xsrf_cookie(self) -> None:
        +        # POSTs to an ErrorHandler don't actually have side effects,
        +        # so we don't need to check the xsrf token.  This allows POSTs
        +        # to the wrong url to return a 404 instead of 403.
        +        pass
        +
        +
        +class RedirectHandler(RequestHandler):
        +    """Redirects the client to the given URL for all GET requests.
        +
        +    You should provide the keyword argument ``url`` to the handler, e.g.::
        +
        +        application = web.Application([
        +            (r"/oldpath", web.RedirectHandler, {"url": "/newpath"}),
        +        ])
        +
        +    `RedirectHandler` supports regular expression substitutions. E.g., to
        +    swap the first and second parts of a path while preserving the remainder::
        +
        +        application = web.Application([
        +            (r"/(.*?)/(.*?)/(.*)", web.RedirectHandler, {"url": "/{1}/{0}/{2}"}),
        +        ])
        +
        +    The final URL is formatted with `str.format` and the substrings that match
        +    the capturing groups. In the above example, a request to "/a/b/c" would be
        +    formatted like::
        +
        +        str.format("/{1}/{0}/{2}", "a", "b", "c")  # -> "/b/a/c"
        +
        +    Use Python's :ref:`format string syntax ` to customize how
        +    values are substituted.
        +
        +    .. versionchanged:: 4.5
        +       Added support for substitutions into the destination URL.
        +
        +    .. versionchanged:: 5.0
        +       If any query arguments are present, they will be copied to the
        +       destination URL.
        +    """
        +
        +    def initialize(self, url: str, permanent: bool = True) -> None:
        +        self._url = url
        +        self._permanent = permanent
        +
        +    def get(self, *args: Any) -> None:
        +        to_url = self._url.format(*args)
        +        if self.request.query_arguments:
        +            # TODO: figure out typing for the next line.
        +            to_url = httputil.url_concat(
        +                to_url,
        +                list(httputil.qs_to_qsl(self.request.query_arguments)),  # type: ignore
        +            )
        +        self.redirect(to_url, permanent=self._permanent)
        +
        +
        +class StaticFileHandler(RequestHandler):
        +    """A simple handler that can serve static content from a directory.
        +
        +    A `StaticFileHandler` is configured automatically if you pass the
        +    ``static_path`` keyword argument to `Application`.  This handler
        +    can be customized with the ``static_url_prefix``, ``static_handler_class``,
        +    and ``static_handler_args`` settings.
        +
        +    To map an additional path to this handler for a static data directory
        +    you would add a line to your application like::
        +
        +        application = web.Application([
        +            (r"/content/(.*)", web.StaticFileHandler, {"path": "/var/www"}),
        +        ])
        +
        +    The handler constructor requires a ``path`` argument, which specifies the
        +    local root directory of the content to be served.
        +
        +    Note that a capture group in the regex is required to parse the value for
        +    the ``path`` argument to the get() method (different than the constructor
        +    argument above); see `URLSpec` for details.
        +
        +    To serve a file like ``index.html`` automatically when a directory is
        +    requested, set ``static_handler_args=dict(default_filename="index.html")``
        +    in your application settings, or add ``default_filename`` as an initializer
        +    argument for your ``StaticFileHandler``.
        +
        +    To maximize the effectiveness of browser caching, this class supports
        +    versioned urls (by default using the argument ``?v=``).  If a version
        +    is given, we instruct the browser to cache this file indefinitely.
        +    `make_static_url` (also available as `RequestHandler.static_url`) can
        +    be used to construct a versioned url.
        +
        +    This handler is intended primarily for use in development and light-duty
        +    file serving; for heavy traffic it will be more efficient to use
        +    a dedicated static file server (such as nginx or Apache).  We support
        +    the HTTP ``Accept-Ranges`` mechanism to return partial content (because
        +    some browsers require this functionality to be present to seek in
        +    HTML5 audio or video).
        +
        +    **Subclassing notes**
        +
        +    This class is designed to be extensible by subclassing, but because
        +    of the way static urls are generated with class methods rather than
        +    instance methods, the inheritance patterns are somewhat unusual.
        +    Be sure to use the ``@classmethod`` decorator when overriding a
        +    class method.  Instance methods may use the attributes ``self.path``
        +    ``self.absolute_path``, and ``self.modified``.
        +
        +    Subclasses should only override methods discussed in this section;
        +    overriding other methods is error-prone.  Overriding
        +    ``StaticFileHandler.get`` is particularly problematic due to the
        +    tight coupling with ``compute_etag`` and other methods.
        +
        +    To change the way static urls are generated (e.g. to match the behavior
        +    of another server or CDN), override `make_static_url`, `parse_url_path`,
        +    `get_cache_time`, and/or `get_version`.
        +
        +    To replace all interaction with the filesystem (e.g. to serve
        +    static content from a database), override `get_content`,
        +    `get_content_size`, `get_modified_time`, `get_absolute_path`, and
        +    `validate_absolute_path`.
        +
        +    .. versionchanged:: 3.1
        +       Many of the methods for subclasses were added in Tornado 3.1.
        +    """
        +
        +    CACHE_MAX_AGE = 86400 * 365 * 10  # 10 years
        +
        +    _static_hashes = {}  # type: Dict[str, Optional[str]]
        +    _lock = threading.Lock()  # protects _static_hashes
        +
        +    def initialize(self, path: str, default_filename: str = None) -> None:
        +        self.root = path
        +        self.default_filename = default_filename
        +
        +    @classmethod
        +    def reset(cls) -> None:
        +        with cls._lock:
        +            cls._static_hashes = {}
        +
        +    def head(self, path: str) -> Awaitable[None]:
        +        return self.get(path, include_body=False)
        +
        +    async def get(self, path: str, include_body: bool = True) -> None:
        +        # Set up our path instance variables.
        +        self.path = self.parse_url_path(path)
        +        del path  # make sure we don't refer to path instead of self.path again
        +        absolute_path = self.get_absolute_path(self.root, self.path)
        +        self.absolute_path = self.validate_absolute_path(self.root, absolute_path)
        +        if self.absolute_path is None:
        +            return
        +
        +        self.modified = self.get_modified_time()
        +        self.set_headers()
        +
        +        if self.should_return_304():
        +            self.set_status(304)
        +            return
        +
        +        request_range = None
        +        range_header = self.request.headers.get("Range")
        +        if range_header:
        +            # As per RFC 2616 14.16, if an invalid Range header is specified,
        +            # the request will be treated as if the header didn't exist.
        +            request_range = httputil._parse_request_range(range_header)
        +
        +        size = self.get_content_size()
        +        if request_range:
        +            start, end = request_range
        +            if start is not None and start < 0:
        +                start += size
        +                if start < 0:
        +                    start = 0
        +            if (
        +                start is not None
        +                and (start >= size or (end is not None and start >= end))
        +            ) or end == 0:
        +                # As per RFC 2616 14.35.1, a range is not satisfiable only: if
        +                # the first requested byte is equal to or greater than the
        +                # content, or when a suffix with length 0 is specified.
        +                # https://tools.ietf.org/html/rfc7233#section-2.1
        +                # A byte-range-spec is invalid if the last-byte-pos value is present
        +                # and less than the first-byte-pos.
        +                self.set_status(416)  # Range Not Satisfiable
        +                self.set_header("Content-Type", "text/plain")
        +                self.set_header("Content-Range", "bytes */%s" % (size,))
        +                return
        +            if end is not None and end > size:
        +                # Clients sometimes blindly use a large range to limit their
        +                # download size; cap the endpoint at the actual file size.
        +                end = size
        +            # Note: only return HTTP 206 if less than the entire range has been
        +            # requested. Not only is this semantically correct, but Chrome
        +            # refuses to play audio if it gets an HTTP 206 in response to
        +            # ``Range: bytes=0-``.
        +            if size != (end or size) - (start or 0):
        +                self.set_status(206)  # Partial Content
        +                self.set_header(
        +                    "Content-Range", httputil._get_content_range(start, end, size)
        +                )
        +        else:
        +            start = end = None
        +
        +        if start is not None and end is not None:
        +            content_length = end - start
        +        elif end is not None:
        +            content_length = end
        +        elif start is not None:
        +            content_length = size - start
        +        else:
        +            content_length = size
        +        self.set_header("Content-Length", content_length)
        +
        +        if include_body:
        +            content = self.get_content(self.absolute_path, start, end)
        +            if isinstance(content, bytes):
        +                content = [content]
        +            for chunk in content:
        +                try:
        +                    self.write(chunk)
        +                    await self.flush()
        +                except iostream.StreamClosedError:
        +                    return
        +        else:
        +            assert self.request.method == "HEAD"
        +
        +    def compute_etag(self) -> Optional[str]:
        +        """Sets the ``Etag`` header based on static url version.
        +
        +        This allows efficient ``If-None-Match`` checks against cached
        +        versions, and sends the correct ``Etag`` for a partial response
        +        (i.e. the same ``Etag`` as the full file).
        +
        +        .. versionadded:: 3.1
        +        """
        +        assert self.absolute_path is not None
        +        version_hash = self._get_cached_version(self.absolute_path)
        +        if not version_hash:
        +            return None
        +        return '"%s"' % (version_hash,)
        +
        +    def set_headers(self) -> None:
        +        """Sets the content and caching headers on the response.
        +
        +        .. versionadded:: 3.1
        +        """
        +        self.set_header("Accept-Ranges", "bytes")
        +        self.set_etag_header()
        +
        +        if self.modified is not None:
        +            self.set_header("Last-Modified", self.modified)
        +
        +        content_type = self.get_content_type()
        +        if content_type:
        +            self.set_header("Content-Type", content_type)
        +
        +        cache_time = self.get_cache_time(self.path, self.modified, content_type)
        +        if cache_time > 0:
        +            self.set_header(
        +                "Expires",
        +                datetime.datetime.utcnow() + datetime.timedelta(seconds=cache_time),
        +            )
        +            self.set_header("Cache-Control", "max-age=" + str(cache_time))
        +
        +        self.set_extra_headers(self.path)
        +
        +    def should_return_304(self) -> bool:
        +        """Returns True if the headers indicate that we should return 304.
        +
        +        .. versionadded:: 3.1
        +        """
        +        # If client sent If-None-Match, use it, ignore If-Modified-Since
        +        if self.request.headers.get("If-None-Match"):
        +            return self.check_etag_header()
        +
        +        # Check the If-Modified-Since, and don't send the result if the
        +        # content has not been modified
        +        ims_value = self.request.headers.get("If-Modified-Since")
        +        if ims_value is not None:
        +            date_tuple = email.utils.parsedate(ims_value)
        +            if date_tuple is not None:
        +                if_since = datetime.datetime(*date_tuple[:6])
        +                assert self.modified is not None
        +                if if_since >= self.modified:
        +                    return True
        +
        +        return False
        +
        +    @classmethod
        +    def get_absolute_path(cls, root: str, path: str) -> str:
        +        """Returns the absolute location of ``path`` relative to ``root``.
        +
        +        ``root`` is the path configured for this `StaticFileHandler`
        +        (in most cases the ``static_path`` `Application` setting).
        +
        +        This class method may be overridden in subclasses.  By default
        +        it returns a filesystem path, but other strings may be used
        +        as long as they are unique and understood by the subclass's
        +        overridden `get_content`.
        +
        +        .. versionadded:: 3.1
        +        """
        +        abspath = os.path.abspath(os.path.join(root, path))
        +        return abspath
        +
        +    def validate_absolute_path(self, root: str, absolute_path: str) -> Optional[str]:
        +        """Validate and return the absolute path.
        +
        +        ``root`` is the configured path for the `StaticFileHandler`,
        +        and ``path`` is the result of `get_absolute_path`
        +
        +        This is an instance method called during request processing,
        +        so it may raise `HTTPError` or use methods like
        +        `RequestHandler.redirect` (return None after redirecting to
        +        halt further processing).  This is where 404 errors for missing files
        +        are generated.
        +
        +        This method may modify the path before returning it, but note that
        +        any such modifications will not be understood by `make_static_url`.
        +
        +        In instance methods, this method's result is available as
        +        ``self.absolute_path``.
        +
        +        .. versionadded:: 3.1
        +        """
        +        # os.path.abspath strips a trailing /.
        +        # We must add it back to `root` so that we only match files
        +        # in a directory named `root` instead of files starting with
        +        # that prefix.
        +        root = os.path.abspath(root)
        +        if not root.endswith(os.path.sep):
        +            # abspath always removes a trailing slash, except when
        +            # root is '/'. This is an unusual case, but several projects
        +            # have independently discovered this technique to disable
        +            # Tornado's path validation and (hopefully) do their own,
        +            # so we need to support it.
        +            root += os.path.sep
        +        # The trailing slash also needs to be temporarily added back
        +        # the requested path so a request to root/ will match.
        +        if not (absolute_path + os.path.sep).startswith(root):
        +            raise HTTPError(403, "%s is not in root static directory", self.path)
        +        if os.path.isdir(absolute_path) and self.default_filename is not None:
        +            # need to look at the request.path here for when path is empty
        +            # but there is some prefix to the path that was already
        +            # trimmed by the routing
        +            if not self.request.path.endswith("/"):
        +                self.redirect(self.request.path + "/", permanent=True)
        +                return None
        +            absolute_path = os.path.join(absolute_path, self.default_filename)
        +        if not os.path.exists(absolute_path):
        +            raise HTTPError(404)
        +        if not os.path.isfile(absolute_path):
        +            raise HTTPError(403, "%s is not a file", self.path)
        +        return absolute_path
        +
        +    @classmethod
        +    def get_content(
        +        cls, abspath: str, start: int = None, end: int = None
        +    ) -> Generator[bytes, None, None]:
        +        """Retrieve the content of the requested resource which is located
        +        at the given absolute path.
        +
        +        This class method may be overridden by subclasses.  Note that its
        +        signature is different from other overridable class methods
        +        (no ``settings`` argument); this is deliberate to ensure that
        +        ``abspath`` is able to stand on its own as a cache key.
        +
        +        This method should either return a byte string or an iterator
        +        of byte strings.  The latter is preferred for large files
        +        as it helps reduce memory fragmentation.
        +
        +        .. versionadded:: 3.1
        +        """
        +        with open(abspath, "rb") as file:
        +            if start is not None:
        +                file.seek(start)
        +            if end is not None:
        +                remaining = end - (start or 0)  # type: Optional[int]
        +            else:
        +                remaining = None
        +            while True:
        +                chunk_size = 64 * 1024
        +                if remaining is not None and remaining < chunk_size:
        +                    chunk_size = remaining
        +                chunk = file.read(chunk_size)
        +                if chunk:
        +                    if remaining is not None:
        +                        remaining -= len(chunk)
        +                    yield chunk
        +                else:
        +                    if remaining is not None:
        +                        assert remaining == 0
        +                    return
        +
        +    @classmethod
        +    def get_content_version(cls, abspath: str) -> str:
        +        """Returns a version string for the resource at the given path.
        +
        +        This class method may be overridden by subclasses.  The
        +        default implementation is a hash of the file's contents.
        +
        +        .. versionadded:: 3.1
        +        """
        +        data = cls.get_content(abspath)
        +        hasher = hashlib.md5()
        +        if isinstance(data, bytes):
        +            hasher.update(data)
        +        else:
        +            for chunk in data:
        +                hasher.update(chunk)
        +        return hasher.hexdigest()
        +
        +    def _stat(self) -> os.stat_result:
        +        assert self.absolute_path is not None
        +        if not hasattr(self, "_stat_result"):
        +            self._stat_result = os.stat(self.absolute_path)
        +        return self._stat_result
        +
        +    def get_content_size(self) -> int:
        +        """Retrieve the total size of the resource at the given path.
        +
        +        This method may be overridden by subclasses.
        +
        +        .. versionadded:: 3.1
        +
        +        .. versionchanged:: 4.0
        +           This method is now always called, instead of only when
        +           partial results are requested.
        +        """
        +        stat_result = self._stat()
        +        return stat_result.st_size
        +
        +    def get_modified_time(self) -> Optional[datetime.datetime]:
        +        """Returns the time that ``self.absolute_path`` was last modified.
        +
        +        May be overridden in subclasses.  Should return a `~datetime.datetime`
        +        object or None.
        +
        +        .. versionadded:: 3.1
        +        """
        +        stat_result = self._stat()
        +        # NOTE: Historically, this used stat_result[stat.ST_MTIME],
        +        # which truncates the fractional portion of the timestamp. It
        +        # was changed from that form to stat_result.st_mtime to
        +        # satisfy mypy (which disallows the bracket operator), but the
        +        # latter form returns a float instead of an int. For
        +        # consistency with the past (and because we have a unit test
        +        # that relies on this), we truncate the float here, although
        +        # I'm not sure that's the right thing to do.
        +        modified = datetime.datetime.utcfromtimestamp(int(stat_result.st_mtime))
        +        return modified
        +
        +    def get_content_type(self) -> str:
        +        """Returns the ``Content-Type`` header to be used for this request.
        +
        +        .. versionadded:: 3.1
        +        """
        +        assert self.absolute_path is not None
        +        mime_type, encoding = mimetypes.guess_type(self.absolute_path)
        +        # per RFC 6713, use the appropriate type for a gzip compressed file
        +        if encoding == "gzip":
        +            return "application/gzip"
        +        # As of 2015-07-21 there is no bzip2 encoding defined at
        +        # http://www.iana.org/assignments/media-types/media-types.xhtml
        +        # So for that (and any other encoding), use octet-stream.
        +        elif encoding is not None:
        +            return "application/octet-stream"
        +        elif mime_type is not None:
        +            return mime_type
        +        # if mime_type not detected, use application/octet-stream
        +        else:
        +            return "application/octet-stream"
        +
        +    def set_extra_headers(self, path: str) -> None:
        +        """For subclass to add extra headers to the response"""
        +        pass
        +
        +    def get_cache_time(
        +        self, path: str, modified: Optional[datetime.datetime], mime_type: str
        +    ) -> int:
        +        """Override to customize cache control behavior.
        +
        +        Return a positive number of seconds to make the result
        +        cacheable for that amount of time or 0 to mark resource as
        +        cacheable for an unspecified amount of time (subject to
        +        browser heuristics).
        +
        +        By default returns cache expiry of 10 years for resources requested
        +        with ``v`` argument.
        +        """
        +        return self.CACHE_MAX_AGE if "v" in self.request.arguments else 0
        +
        +    @classmethod
        +    def make_static_url(
        +        cls, settings: Dict[str, Any], path: str, include_version: bool = True
        +    ) -> str:
        +        """Constructs a versioned url for the given path.
        +
        +        This method may be overridden in subclasses (but note that it
        +        is a class method rather than an instance method).  Subclasses
        +        are only required to implement the signature
        +        ``make_static_url(cls, settings, path)``; other keyword
        +        arguments may be passed through `~RequestHandler.static_url`
        +        but are not standard.
        +
        +        ``settings`` is the `Application.settings` dictionary.  ``path``
        +        is the static path being requested.  The url returned should be
        +        relative to the current host.
        +
        +        ``include_version`` determines whether the generated URL should
        +        include the query string containing the version hash of the
        +        file corresponding to the given ``path``.
        +
        +        """
        +        url = settings.get("static_url_prefix", "/static/") + path
        +        if not include_version:
        +            return url
        +
        +        version_hash = cls.get_version(settings, path)
        +        if not version_hash:
        +            return url
        +
        +        return "%s?v=%s" % (url, version_hash)
        +
        +    def parse_url_path(self, url_path: str) -> str:
        +        """Converts a static URL path into a filesystem path.
        +
        +        ``url_path`` is the path component of the URL with
        +        ``static_url_prefix`` removed.  The return value should be
        +        filesystem path relative to ``static_path``.
        +
        +        This is the inverse of `make_static_url`.
        +        """
        +        if os.path.sep != "/":
        +            url_path = url_path.replace("/", os.path.sep)
        +        return url_path
        +
        +    @classmethod
        +    def get_version(cls, settings: Dict[str, Any], path: str) -> Optional[str]:
        +        """Generate the version string to be used in static URLs.
        +
        +        ``settings`` is the `Application.settings` dictionary and ``path``
        +        is the relative location of the requested asset on the filesystem.
        +        The returned value should be a string, or ``None`` if no version
        +        could be determined.
        +
        +        .. versionchanged:: 3.1
        +           This method was previously recommended for subclasses to override;
        +           `get_content_version` is now preferred as it allows the base
        +           class to handle caching of the result.
        +        """
        +        abs_path = cls.get_absolute_path(settings["static_path"], path)
        +        return cls._get_cached_version(abs_path)
        +
        +    @classmethod
        +    def _get_cached_version(cls, abs_path: str) -> Optional[str]:
        +        with cls._lock:
        +            hashes = cls._static_hashes
        +            if abs_path not in hashes:
        +                try:
        +                    hashes[abs_path] = cls.get_content_version(abs_path)
        +                except Exception:
        +                    gen_log.error("Could not open static file %r", abs_path)
        +                    hashes[abs_path] = None
        +            hsh = hashes.get(abs_path)
        +            if hsh:
        +                return hsh
        +        return None
        +
        +
        +class FallbackHandler(RequestHandler):
        +    """A `RequestHandler` that wraps another HTTP server callback.
        +
        +    The fallback is a callable object that accepts an
        +    `~.httputil.HTTPServerRequest`, such as an `Application` or
        +    `tornado.wsgi.WSGIContainer`.  This is most useful to use both
        +    Tornado ``RequestHandlers`` and WSGI in the same server.  Typical
        +    usage::
        +
        +        wsgi_app = tornado.wsgi.WSGIContainer(
        +            django.core.handlers.wsgi.WSGIHandler())
        +        application = tornado.web.Application([
        +            (r"/foo", FooHandler),
        +            (r".*", FallbackHandler, dict(fallback=wsgi_app),
        +        ])
        +    """
        +
        +    def initialize(
        +        self, fallback: Callable[[httputil.HTTPServerRequest], None]
        +    ) -> None:
        +        self.fallback = fallback
        +
        +    def prepare(self) -> None:
        +        self.fallback(self.request)
        +        self._finished = True
        +        self.on_finish()
        +
        +
        +class OutputTransform(object):
        +    """A transform modifies the result of an HTTP request (e.g., GZip encoding)
        +
        +    Applications are not expected to create their own OutputTransforms
        +    or interact with them directly; the framework chooses which transforms
        +    (if any) to apply.
        +    """
        +
        +    def __init__(self, request: httputil.HTTPServerRequest) -> None:
        +        pass
        +
        +    def transform_first_chunk(
        +        self,
        +        status_code: int,
        +        headers: httputil.HTTPHeaders,
        +        chunk: bytes,
        +        finishing: bool,
        +    ) -> Tuple[int, httputil.HTTPHeaders, bytes]:
        +        return status_code, headers, chunk
        +
        +    def transform_chunk(self, chunk: bytes, finishing: bool) -> bytes:
        +        return chunk
        +
        +
        +class GZipContentEncoding(OutputTransform):
        +    """Applies the gzip content encoding to the response.
        +
        +    See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
        +
        +    .. versionchanged:: 4.0
        +        Now compresses all mime types beginning with ``text/``, instead
        +        of just a whitelist. (the whitelist is still used for certain
        +        non-text mime types).
        +    """
        +
        +    # Whitelist of compressible mime types (in addition to any types
        +    # beginning with "text/").
        +    CONTENT_TYPES = set(
        +        [
        +            "application/javascript",
        +            "application/x-javascript",
        +            "application/xml",
        +            "application/atom+xml",
        +            "application/json",
        +            "application/xhtml+xml",
        +            "image/svg+xml",
        +        ]
        +    )
        +    # Python's GzipFile defaults to level 9, while most other gzip
        +    # tools (including gzip itself) default to 6, which is probably a
        +    # better CPU/size tradeoff.
        +    GZIP_LEVEL = 6
        +    # Responses that are too short are unlikely to benefit from gzipping
        +    # after considering the "Content-Encoding: gzip" header and the header
        +    # inside the gzip encoding.
        +    # Note that responses written in multiple chunks will be compressed
        +    # regardless of size.
        +    MIN_LENGTH = 1024
        +
        +    def __init__(self, request: httputil.HTTPServerRequest) -> None:
        +        self._gzipping = "gzip" in request.headers.get("Accept-Encoding", "")
        +
        +    def _compressible_type(self, ctype: str) -> bool:
        +        return ctype.startswith("text/") or ctype in self.CONTENT_TYPES
        +
        +    def transform_first_chunk(
        +        self,
        +        status_code: int,
        +        headers: httputil.HTTPHeaders,
        +        chunk: bytes,
        +        finishing: bool,
        +    ) -> Tuple[int, httputil.HTTPHeaders, bytes]:
        +        # TODO: can/should this type be inherited from the superclass?
        +        if "Vary" in headers:
        +            headers["Vary"] += ", Accept-Encoding"
        +        else:
        +            headers["Vary"] = "Accept-Encoding"
        +        if self._gzipping:
        +            ctype = _unicode(headers.get("Content-Type", "")).split(";")[0]
        +            self._gzipping = (
        +                self._compressible_type(ctype)
        +                and (not finishing or len(chunk) >= self.MIN_LENGTH)
        +                and ("Content-Encoding" not in headers)
        +            )
        +        if self._gzipping:
        +            headers["Content-Encoding"] = "gzip"
        +            self._gzip_value = BytesIO()
        +            self._gzip_file = gzip.GzipFile(
        +                mode="w", fileobj=self._gzip_value, compresslevel=self.GZIP_LEVEL
        +            )
        +            chunk = self.transform_chunk(chunk, finishing)
        +            if "Content-Length" in headers:
        +                # The original content length is no longer correct.
        +                # If this is the last (and only) chunk, we can set the new
        +                # content-length; otherwise we remove it and fall back to
        +                # chunked encoding.
        +                if finishing:
        +                    headers["Content-Length"] = str(len(chunk))
        +                else:
        +                    del headers["Content-Length"]
        +        return status_code, headers, chunk
        +
        +    def transform_chunk(self, chunk: bytes, finishing: bool) -> bytes:
        +        if self._gzipping:
        +            self._gzip_file.write(chunk)
        +            if finishing:
        +                self._gzip_file.close()
        +            else:
        +                self._gzip_file.flush()
        +            chunk = self._gzip_value.getvalue()
        +            self._gzip_value.truncate(0)
        +            self._gzip_value.seek(0)
        +        return chunk
        +
        +
        +def authenticated(
        +    method: Callable[..., Optional[Awaitable[None]]]
        +) -> Callable[..., Optional[Awaitable[None]]]:
        +    """Decorate methods with this to require that the user be logged in.
        +
        +    If the user is not logged in, they will be redirected to the configured
        +    `login url `.
        +
        +    If you configure a login url with a query parameter, Tornado will
        +    assume you know what you're doing and use it as-is.  If not, it
        +    will add a `next` parameter so the login page knows where to send
        +    you once you're logged in.
        +    """
        +
        +    @functools.wraps(method)
        +    def wrapper(  # type: ignore
        +        self: RequestHandler, *args, **kwargs
        +    ) -> Optional[Awaitable[None]]:
        +        if not self.current_user:
        +            if self.request.method in ("GET", "HEAD"):
        +                url = self.get_login_url()
        +                if "?" not in url:
        +                    if urllib.parse.urlsplit(url).scheme:
        +                        # if login url is absolute, make next absolute too
        +                        next_url = self.request.full_url()
        +                    else:
        +                        assert self.request.uri is not None
        +                        next_url = self.request.uri
        +                    url += "?" + urlencode(dict(next=next_url))
        +                self.redirect(url)
        +                return None
        +            raise HTTPError(403)
        +        return method(self, *args, **kwargs)
        +
        +    return wrapper
        +
        +
        +class UIModule(object):
        +    """A re-usable, modular UI unit on a page.
        +
        +    UI modules often execute additional queries, and they can include
        +    additional CSS and JavaScript that will be included in the output
        +    page, which is automatically inserted on page render.
        +
        +    Subclasses of UIModule must override the `render` method.
        +    """
        +
        +    def __init__(self, handler: RequestHandler) -> None:
        +        self.handler = handler
        +        self.request = handler.request
        +        self.ui = handler.ui
        +        self.locale = handler.locale
        +
        +    @property
        +    def current_user(self) -> Any:
        +        return self.handler.current_user
        +
        +    def render(self, *args: Any, **kwargs: Any) -> str:
        +        """Override in subclasses to return this module's output."""
        +        raise NotImplementedError()
        +
        +    def embedded_javascript(self) -> Optional[str]:
        +        """Override to return a JavaScript string
        +        to be embedded in the page."""
        +        return None
        +
        +    def javascript_files(self) -> Optional[Iterable[str]]:
        +        """Override to return a list of JavaScript files needed by this module.
        +
        +        If the return values are relative paths, they will be passed to
        +        `RequestHandler.static_url`; otherwise they will be used as-is.
        +        """
        +        return None
        +
        +    def embedded_css(self) -> Optional[str]:
        +        """Override to return a CSS string
        +        that will be embedded in the page."""
        +        return None
        +
        +    def css_files(self) -> Optional[Iterable[str]]:
        +        """Override to returns a list of CSS files required by this module.
        +
        +        If the return values are relative paths, they will be passed to
        +        `RequestHandler.static_url`; otherwise they will be used as-is.
        +        """
        +        return None
        +
        +    def html_head(self) -> Optional[str]:
        +        """Override to return an HTML string that will be put in the 
        +        element.
        +        """
        +        return None
        +
        +    def html_body(self) -> Optional[str]:
        +        """Override to return an HTML string that will be put at the end of
        +        the  element.
        +        """
        +        return None
        +
        +    def render_string(self, path: str, **kwargs: Any) -> bytes:
        +        """Renders a template and returns it as a string."""
        +        return self.handler.render_string(path, **kwargs)
        +
        +
        +class _linkify(UIModule):
        +    def render(self, text: str, **kwargs: Any) -> str:  # type: ignore
        +        return escape.linkify(text, **kwargs)
        +
        +
        +class _xsrf_form_html(UIModule):
        +    def render(self) -> str:  # type: ignore
        +        return self.handler.xsrf_form_html()
        +
        +
        +class TemplateModule(UIModule):
        +    """UIModule that simply renders the given template.
        +
        +    {% module Template("foo.html") %} is similar to {% include "foo.html" %},
        +    but the module version gets its own namespace (with kwargs passed to
        +    Template()) instead of inheriting the outer template's namespace.
        +
        +    Templates rendered through this module also get access to UIModule's
        +    automatic javascript/css features.  Simply call set_resources
        +    inside the template and give it keyword arguments corresponding to
        +    the methods on UIModule: {{ set_resources(js_files=static_url("my.js")) }}
        +    Note that these resources are output once per template file, not once
        +    per instantiation of the template, so they must not depend on
        +    any arguments to the template.
        +    """
        +
        +    def __init__(self, handler: RequestHandler) -> None:
        +        super(TemplateModule, self).__init__(handler)
        +        # keep resources in both a list and a dict to preserve order
        +        self._resource_list = []  # type: List[Dict[str, Any]]
        +        self._resource_dict = {}  # type: Dict[str, Dict[str, Any]]
        +
        +    def render(self, path: str, **kwargs: Any) -> bytes:  # type: ignore
        +        def set_resources(**kwargs) -> str:  # type: ignore
        +            if path not in self._resource_dict:
        +                self._resource_list.append(kwargs)
        +                self._resource_dict[path] = kwargs
        +            else:
        +                if self._resource_dict[path] != kwargs:
        +                    raise ValueError(
        +                        "set_resources called with different "
        +                        "resources for the same template"
        +                    )
        +            return ""
        +
        +        return self.render_string(path, set_resources=set_resources, **kwargs)
        +
        +    def _get_resources(self, key: str) -> Iterable[str]:
        +        return (r[key] for r in self._resource_list if key in r)
        +
        +    def embedded_javascript(self) -> str:
        +        return "\n".join(self._get_resources("embedded_javascript"))
        +
        +    def javascript_files(self) -> Iterable[str]:
        +        result = []
        +        for f in self._get_resources("javascript_files"):
        +            if isinstance(f, (unicode_type, bytes)):
        +                result.append(f)
        +            else:
        +                result.extend(f)
        +        return result
        +
        +    def embedded_css(self) -> str:
        +        return "\n".join(self._get_resources("embedded_css"))
        +
        +    def css_files(self) -> Iterable[str]:
        +        result = []
        +        for f in self._get_resources("css_files"):
        +            if isinstance(f, (unicode_type, bytes)):
        +                result.append(f)
        +            else:
        +                result.extend(f)
        +        return result
        +
        +    def html_head(self) -> str:
        +        return "".join(self._get_resources("html_head"))
        +
        +    def html_body(self) -> str:
        +        return "".join(self._get_resources("html_body"))
        +
        +
        +class _UIModuleNamespace(object):
        +    """Lazy namespace which creates UIModule proxies bound to a handler."""
        +
        +    def __init__(
        +        self, handler: RequestHandler, ui_modules: Dict[str, Type[UIModule]]
        +    ) -> None:
        +        self.handler = handler
        +        self.ui_modules = ui_modules
        +
        +    def __getitem__(self, key: str) -> Callable[..., str]:
        +        return self.handler._ui_module(key, self.ui_modules[key])
        +
        +    def __getattr__(self, key: str) -> Callable[..., str]:
        +        try:
        +            return self[key]
        +        except KeyError as e:
        +            raise AttributeError(str(e))
        +
        +
        +def create_signed_value(
        +    secret: _CookieSecretTypes,
        +    name: str,
        +    value: Union[str, bytes],
        +    version: int = None,
        +    clock: Callable[[], float] = None,
        +    key_version: int = None,
        +) -> bytes:
        +    if version is None:
        +        version = DEFAULT_SIGNED_VALUE_VERSION
        +    if clock is None:
        +        clock = time.time
        +
        +    timestamp = utf8(str(int(clock())))
        +    value = base64.b64encode(utf8(value))
        +    if version == 1:
        +        assert not isinstance(secret, dict)
        +        signature = _create_signature_v1(secret, name, value, timestamp)
        +        value = b"|".join([value, timestamp, signature])
        +        return value
        +    elif version == 2:
        +        # The v2 format consists of a version number and a series of
        +        # length-prefixed fields "%d:%s", the last of which is a
        +        # signature, all separated by pipes.  All numbers are in
        +        # decimal format with no leading zeros.  The signature is an
        +        # HMAC-SHA256 of the whole string up to that point, including
        +        # the final pipe.
        +        #
        +        # The fields are:
        +        # - format version (i.e. 2; no length prefix)
        +        # - key version (integer, default is 0)
        +        # - timestamp (integer seconds since epoch)
        +        # - name (not encoded; assumed to be ~alphanumeric)
        +        # - value (base64-encoded)
        +        # - signature (hex-encoded; no length prefix)
        +        def format_field(s: Union[str, bytes]) -> bytes:
        +            return utf8("%d:" % len(s)) + utf8(s)
        +
        +        to_sign = b"|".join(
        +            [
        +                b"2",
        +                format_field(str(key_version or 0)),
        +                format_field(timestamp),
        +                format_field(name),
        +                format_field(value),
        +                b"",
        +            ]
        +        )
        +
        +        if isinstance(secret, dict):
        +            assert (
        +                key_version is not None
        +            ), "Key version must be set when sign key dict is used"
        +            assert version >= 2, "Version must be at least 2 for key version support"
        +            secret = secret[key_version]
        +
        +        signature = _create_signature_v2(secret, to_sign)
        +        return to_sign + signature
        +    else:
        +        raise ValueError("Unsupported version %d" % version)
        +
        +
        +# A leading version number in decimal
        +# with no leading zeros, followed by a pipe.
        +_signed_value_version_re = re.compile(br"^([1-9][0-9]*)\|(.*)$")
        +
        +
        +def _get_version(value: bytes) -> int:
        +    # Figures out what version value is.  Version 1 did not include an
        +    # explicit version field and started with arbitrary base64 data,
        +    # which makes this tricky.
        +    m = _signed_value_version_re.match(value)
        +    if m is None:
        +        version = 1
        +    else:
        +        try:
        +            version = int(m.group(1))
        +            if version > 999:
        +                # Certain payloads from the version-less v1 format may
        +                # be parsed as valid integers.  Due to base64 padding
        +                # restrictions, this can only happen for numbers whose
        +                # length is a multiple of 4, so we can treat all
        +                # numbers up to 999 as versions, and for the rest we
        +                # fall back to v1 format.
        +                version = 1
        +        except ValueError:
        +            version = 1
        +    return version
        +
        +
        +def decode_signed_value(
        +    secret: _CookieSecretTypes,
        +    name: str,
        +    value: Union[None, str, bytes],
        +    max_age_days: int = 31,
        +    clock: Callable[[], float] = None,
        +    min_version: int = None,
        +) -> Optional[bytes]:
        +    if clock is None:
        +        clock = time.time
        +    if min_version is None:
        +        min_version = DEFAULT_SIGNED_VALUE_MIN_VERSION
        +    if min_version > 2:
        +        raise ValueError("Unsupported min_version %d" % min_version)
        +    if not value:
        +        return None
        +
        +    value = utf8(value)
        +    version = _get_version(value)
        +
        +    if version < min_version:
        +        return None
        +    if version == 1:
        +        assert not isinstance(secret, dict)
        +        return _decode_signed_value_v1(secret, name, value, max_age_days, clock)
        +    elif version == 2:
        +        return _decode_signed_value_v2(secret, name, value, max_age_days, clock)
        +    else:
        +        return None
        +
        +
        +def _decode_signed_value_v1(
        +    secret: Union[str, bytes],
        +    name: str,
        +    value: bytes,
        +    max_age_days: int,
        +    clock: Callable[[], float],
        +) -> Optional[bytes]:
        +    parts = utf8(value).split(b"|")
        +    if len(parts) != 3:
        +        return None
        +    signature = _create_signature_v1(secret, name, parts[0], parts[1])
        +    if not hmac.compare_digest(parts[2], signature):
        +        gen_log.warning("Invalid cookie signature %r", value)
        +        return None
        +    timestamp = int(parts[1])
        +    if timestamp < clock() - max_age_days * 86400:
        +        gen_log.warning("Expired cookie %r", value)
        +        return None
        +    if timestamp > clock() + 31 * 86400:
        +        # _cookie_signature does not hash a delimiter between the
        +        # parts of the cookie, so an attacker could transfer trailing
        +        # digits from the payload to the timestamp without altering the
        +        # signature.  For backwards compatibility, sanity-check timestamp
        +        # here instead of modifying _cookie_signature.
        +        gen_log.warning("Cookie timestamp in future; possible tampering %r", value)
        +        return None
        +    if parts[1].startswith(b"0"):
        +        gen_log.warning("Tampered cookie %r", value)
        +        return None
        +    try:
        +        return base64.b64decode(parts[0])
        +    except Exception:
        +        return None
        +
        +
        +def _decode_fields_v2(value: bytes) -> Tuple[int, bytes, bytes, bytes, bytes]:
        +    def _consume_field(s: bytes) -> Tuple[bytes, bytes]:
        +        length, _, rest = s.partition(b":")
        +        n = int(length)
        +        field_value = rest[:n]
        +        # In python 3, indexing bytes returns small integers; we must
        +        # use a slice to get a byte string as in python 2.
        +        if rest[n : n + 1] != b"|":
        +            raise ValueError("malformed v2 signed value field")
        +        rest = rest[n + 1 :]
        +        return field_value, rest
        +
        +    rest = value[2:]  # remove version number
        +    key_version, rest = _consume_field(rest)
        +    timestamp, rest = _consume_field(rest)
        +    name_field, rest = _consume_field(rest)
        +    value_field, passed_sig = _consume_field(rest)
        +    return int(key_version), timestamp, name_field, value_field, passed_sig
        +
        +
        +def _decode_signed_value_v2(
        +    secret: _CookieSecretTypes,
        +    name: str,
        +    value: bytes,
        +    max_age_days: int,
        +    clock: Callable[[], float],
        +) -> Optional[bytes]:
        +    try:
        +        (
        +            key_version,
        +            timestamp_bytes,
        +            name_field,
        +            value_field,
        +            passed_sig,
        +        ) = _decode_fields_v2(value)
        +    except ValueError:
        +        return None
        +    signed_string = value[: -len(passed_sig)]
        +
        +    if isinstance(secret, dict):
        +        try:
        +            secret = secret[key_version]
        +        except KeyError:
        +            return None
        +
        +    expected_sig = _create_signature_v2(secret, signed_string)
        +    if not hmac.compare_digest(passed_sig, expected_sig):
        +        return None
        +    if name_field != utf8(name):
        +        return None
        +    timestamp = int(timestamp_bytes)
        +    if timestamp < clock() - max_age_days * 86400:
        +        # The signature has expired.
        +        return None
        +    try:
        +        return base64.b64decode(value_field)
        +    except Exception:
        +        return None
        +
        +
        +def get_signature_key_version(value: Union[str, bytes]) -> Optional[int]:
        +    value = utf8(value)
        +    version = _get_version(value)
        +    if version < 2:
        +        return None
        +    try:
        +        key_version, _, _, _, _ = _decode_fields_v2(value)
        +    except ValueError:
        +        return None
        +
        +    return key_version
        +
        +
        +def _create_signature_v1(secret: Union[str, bytes], *parts: Union[str, bytes]) -> bytes:
        +    hash = hmac.new(utf8(secret), digestmod=hashlib.sha1)
        +    for part in parts:
        +        hash.update(utf8(part))
        +    return utf8(hash.hexdigest())
        +
        +
        +def _create_signature_v2(secret: Union[str, bytes], s: bytes) -> bytes:
        +    hash = hmac.new(utf8(secret), digestmod=hashlib.sha256)
        +    hash.update(utf8(s))
        +    return utf8(hash.hexdigest())
        +
        +
        +def is_absolute(path: str) -> bool:
        +    return any(path.startswith(x) for x in ["/", "http:", "https:"])
        diff --git a/server/www/packages/packages-linux/x64/tornado/websocket.py b/server/www/packages/packages-linux/x64/tornado/websocket.py
        index d991fee..0c6969b 100644
        --- a/server/www/packages/packages-linux/x64/tornado/websocket.py
        +++ b/server/www/packages/packages-linux/x64/tornado/websocket.py
        @@ -1,1663 +1,1663 @@
        -"""Implementation of the WebSocket protocol.
        -
        -`WebSockets `_ allow for bidirectional
        -communication between the browser and server.
        -
        -WebSockets are supported in the current versions of all major browsers,
        -although older versions that do not support WebSockets are still in use
        -(refer to http://caniuse.com/websockets for details).
        -
        -This module implements the final version of the WebSocket protocol as
        -defined in `RFC 6455 `_.  Certain
        -browser versions (notably Safari 5.x) implemented an earlier draft of
        -the protocol (known as "draft 76") and are not compatible with this module.
        -
        -.. versionchanged:: 4.0
        -   Removed support for the draft 76 protocol version.
        -"""
        -
        -import abc
        -import asyncio
        -import base64
        -import hashlib
        -import os
        -import sys
        -import struct
        -import tornado.escape
        -import tornado.web
        -from urllib.parse import urlparse
        -import zlib
        -
        -from tornado.concurrent import Future, future_set_result_unless_cancelled
        -from tornado.escape import utf8, native_str, to_unicode
        -from tornado import gen, httpclient, httputil
        -from tornado.ioloop import IOLoop, PeriodicCallback
        -from tornado.iostream import StreamClosedError, IOStream
        -from tornado.log import gen_log, app_log
        -from tornado import simple_httpclient
        -from tornado.queues import Queue
        -from tornado.tcpclient import TCPClient
        -from tornado.util import _websocket_mask
        -
        -from typing import (
        -    TYPE_CHECKING,
        -    cast,
        -    Any,
        -    Optional,
        -    Dict,
        -    Union,
        -    List,
        -    Awaitable,
        -    Callable,
        -    Tuple,
        -    Type,
        -)
        -from types import TracebackType
        -
        -if TYPE_CHECKING:
        -    from typing_extensions import Protocol
        -
        -    # The zlib compressor types aren't actually exposed anywhere
        -    # publicly, so declare protocols for the portions we use.
        -    class _Compressor(Protocol):
        -        def compress(self, data: bytes) -> bytes:
        -            pass
        -
        -        def flush(self, mode: int) -> bytes:
        -            pass
        -
        -    class _Decompressor(Protocol):
        -        unconsumed_tail = b""  # type: bytes
        -
        -        def decompress(self, data: bytes, max_length: int) -> bytes:
        -            pass
        -
        -    class _WebSocketDelegate(Protocol):
        -        # The common base interface implemented by WebSocketHandler on
        -        # the server side and WebSocketClientConnection on the client
        -        # side.
        -        def on_ws_connection_close(
        -            self, close_code: int = None, close_reason: str = None
        -        ) -> None:
        -            pass
        -
        -        def on_message(self, message: Union[str, bytes]) -> Optional["Awaitable[None]"]:
        -            pass
        -
        -        def on_ping(self, data: bytes) -> None:
        -            pass
        -
        -        def on_pong(self, data: bytes) -> None:
        -            pass
        -
        -        def log_exception(
        -            self,
        -            typ: Optional[Type[BaseException]],
        -            value: Optional[BaseException],
        -            tb: Optional[TracebackType],
        -        ) -> None:
        -            pass
        -
        -
        -_default_max_message_size = 10 * 1024 * 1024
        -
        -
        -class WebSocketError(Exception):
        -    pass
        -
        -
        -class WebSocketClosedError(WebSocketError):
        -    """Raised by operations on a closed connection.
        -
        -    .. versionadded:: 3.2
        -    """
        -
        -    pass
        -
        -
        -class _DecompressTooLargeError(Exception):
        -    pass
        -
        -
        -class _WebSocketParams(object):
        -    def __init__(
        -        self,
        -        ping_interval: float = None,
        -        ping_timeout: float = None,
        -        max_message_size: int = _default_max_message_size,
        -        compression_options: Dict[str, Any] = None,
        -    ) -> None:
        -        self.ping_interval = ping_interval
        -        self.ping_timeout = ping_timeout
        -        self.max_message_size = max_message_size
        -        self.compression_options = compression_options
        -
        -
        -class WebSocketHandler(tornado.web.RequestHandler):
        -    """Subclass this class to create a basic WebSocket handler.
        -
        -    Override `on_message` to handle incoming messages, and use
        -    `write_message` to send messages to the client. You can also
        -    override `open` and `on_close` to handle opened and closed
        -    connections.
        -
        -    Custom upgrade response headers can be sent by overriding
        -    `~tornado.web.RequestHandler.set_default_headers` or
        -    `~tornado.web.RequestHandler.prepare`.
        -
        -    See http://dev.w3.org/html5/websockets/ for details on the
        -    JavaScript interface.  The protocol is specified at
        -    http://tools.ietf.org/html/rfc6455.
        -
        -    Here is an example WebSocket handler that echos back all received messages
        -    back to the client:
        -
        -    .. testcode::
        -
        -      class EchoWebSocket(tornado.websocket.WebSocketHandler):
        -          def open(self):
        -              print("WebSocket opened")
        -
        -          def on_message(self, message):
        -              self.write_message(u"You said: " + message)
        -
        -          def on_close(self):
        -              print("WebSocket closed")
        -
        -    .. testoutput::
        -       :hide:
        -
        -    WebSockets are not standard HTTP connections. The "handshake" is
        -    HTTP, but after the handshake, the protocol is
        -    message-based. Consequently, most of the Tornado HTTP facilities
        -    are not available in handlers of this type. The only communication
        -    methods available to you are `write_message()`, `ping()`, and
        -    `close()`. Likewise, your request handler class should implement
        -    `open()` method rather than ``get()`` or ``post()``.
        -
        -    If you map the handler above to ``/websocket`` in your application, you can
        -    invoke it in JavaScript with::
        -
        -      var ws = new WebSocket("ws://localhost:8888/websocket");
        -      ws.onopen = function() {
        -         ws.send("Hello, world");
        -      };
        -      ws.onmessage = function (evt) {
        -         alert(evt.data);
        -      };
        -
        -    This script pops up an alert box that says "You said: Hello, world".
        -
        -    Web browsers allow any site to open a websocket connection to any other,
        -    instead of using the same-origin policy that governs other network
        -    access from javascript.  This can be surprising and is a potential
        -    security hole, so since Tornado 4.0 `WebSocketHandler` requires
        -    applications that wish to receive cross-origin websockets to opt in
        -    by overriding the `~WebSocketHandler.check_origin` method (see that
        -    method's docs for details).  Failure to do so is the most likely
        -    cause of 403 errors when making a websocket connection.
        -
        -    When using a secure websocket connection (``wss://``) with a self-signed
        -    certificate, the connection from a browser may fail because it wants
        -    to show the "accept this certificate" dialog but has nowhere to show it.
        -    You must first visit a regular HTML page using the same certificate
        -    to accept it before the websocket connection will succeed.
        -
        -    If the application setting ``websocket_ping_interval`` has a non-zero
        -    value, a ping will be sent periodically, and the connection will be
        -    closed if a response is not received before the ``websocket_ping_timeout``.
        -
        -    Messages larger than the ``websocket_max_message_size`` application setting
        -    (default 10MiB) will not be accepted.
        -
        -    .. versionchanged:: 4.5
        -       Added ``websocket_ping_interval``, ``websocket_ping_timeout``, and
        -       ``websocket_max_message_size``.
        -    """
        -
        -    def __init__(
        -        self,
        -        application: tornado.web.Application,
        -        request: httputil.HTTPServerRequest,
        -        **kwargs: Any
        -    ) -> None:
        -        super(WebSocketHandler, self).__init__(application, request, **kwargs)
        -        self.ws_connection = None  # type: Optional[WebSocketProtocol]
        -        self.close_code = None  # type: Optional[int]
        -        self.close_reason = None  # type: Optional[str]
        -        self.stream = None  # type: Optional[IOStream]
        -        self._on_close_called = False
        -
        -    async def get(self, *args: Any, **kwargs: Any) -> None:
        -        self.open_args = args
        -        self.open_kwargs = kwargs
        -
        -        # Upgrade header should be present and should be equal to WebSocket
        -        if self.request.headers.get("Upgrade", "").lower() != "websocket":
        -            self.set_status(400)
        -            log_msg = 'Can "Upgrade" only to "WebSocket".'
        -            self.finish(log_msg)
        -            gen_log.debug(log_msg)
        -            return
        -
        -        # Connection header should be upgrade.
        -        # Some proxy servers/load balancers
        -        # might mess with it.
        -        headers = self.request.headers
        -        connection = map(
        -            lambda s: s.strip().lower(), headers.get("Connection", "").split(",")
        -        )
        -        if "upgrade" not in connection:
        -            self.set_status(400)
        -            log_msg = '"Connection" must be "Upgrade".'
        -            self.finish(log_msg)
        -            gen_log.debug(log_msg)
        -            return
        -
        -        # Handle WebSocket Origin naming convention differences
        -        # The difference between version 8 and 13 is that in 8 the
        -        # client sends a "Sec-Websocket-Origin" header and in 13 it's
        -        # simply "Origin".
        -        if "Origin" in self.request.headers:
        -            origin = self.request.headers.get("Origin")
        -        else:
        -            origin = self.request.headers.get("Sec-Websocket-Origin", None)
        -
        -        # If there was an origin header, check to make sure it matches
        -        # according to check_origin. When the origin is None, we assume it
        -        # did not come from a browser and that it can be passed on.
        -        if origin is not None and not self.check_origin(origin):
        -            self.set_status(403)
        -            log_msg = "Cross origin websockets not allowed"
        -            self.finish(log_msg)
        -            gen_log.debug(log_msg)
        -            return
        -
        -        self.ws_connection = self.get_websocket_protocol()
        -        if self.ws_connection:
        -            await self.ws_connection.accept_connection(self)
        -        else:
        -            self.set_status(426, "Upgrade Required")
        -            self.set_header("Sec-WebSocket-Version", "7, 8, 13")
        -
        -    stream = None
        -
        -    @property
        -    def ping_interval(self) -> Optional[float]:
        -        """The interval for websocket keep-alive pings.
        -
        -        Set websocket_ping_interval = 0 to disable pings.
        -        """
        -        return self.settings.get("websocket_ping_interval", None)
        -
        -    @property
        -    def ping_timeout(self) -> Optional[float]:
        -        """If no ping is received in this many seconds,
        -        close the websocket connection (VPNs, etc. can fail to cleanly close ws connections).
        -        Default is max of 3 pings or 30 seconds.
        -        """
        -        return self.settings.get("websocket_ping_timeout", None)
        -
        -    @property
        -    def max_message_size(self) -> int:
        -        """Maximum allowed message size.
        -
        -        If the remote peer sends a message larger than this, the connection
        -        will be closed.
        -
        -        Default is 10MiB.
        -        """
        -        return self.settings.get(
        -            "websocket_max_message_size", _default_max_message_size
        -        )
        -
        -    def write_message(
        -        self, message: Union[bytes, str, Dict[str, Any]], binary: bool = False
        -    ) -> "Future[None]":
        -        """Sends the given message to the client of this Web Socket.
        -
        -        The message may be either a string or a dict (which will be
        -        encoded as json).  If the ``binary`` argument is false, the
        -        message will be sent as utf8; in binary mode any byte string
        -        is allowed.
        -
        -        If the connection is already closed, raises `WebSocketClosedError`.
        -        Returns a `.Future` which can be used for flow control.
        -
        -        .. versionchanged:: 3.2
        -           `WebSocketClosedError` was added (previously a closed connection
        -           would raise an `AttributeError`)
        -
        -        .. versionchanged:: 4.3
        -           Returns a `.Future` which can be used for flow control.
        -
        -        .. versionchanged:: 5.0
        -           Consistently raises `WebSocketClosedError`. Previously could
        -           sometimes raise `.StreamClosedError`.
        -        """
        -        if self.ws_connection is None or self.ws_connection.is_closing():
        -            raise WebSocketClosedError()
        -        if isinstance(message, dict):
        -            message = tornado.escape.json_encode(message)
        -        return self.ws_connection.write_message(message, binary=binary)
        -
        -    def select_subprotocol(self, subprotocols: List[str]) -> Optional[str]:
        -        """Override to implement subprotocol negotiation.
        -
        -        ``subprotocols`` is a list of strings identifying the
        -        subprotocols proposed by the client.  This method may be
        -        overridden to return one of those strings to select it, or
        -        ``None`` to not select a subprotocol.
        -
        -        Failure to select a subprotocol does not automatically abort
        -        the connection, although clients may close the connection if
        -        none of their proposed subprotocols was selected.
        -
        -        The list may be empty, in which case this method must return
        -        None. This method is always called exactly once even if no
        -        subprotocols were proposed so that the handler can be advised
        -        of this fact.
        -
        -        .. versionchanged:: 5.1
        -
        -           Previously, this method was called with a list containing
        -           an empty string instead of an empty list if no subprotocols
        -           were proposed by the client.
        -        """
        -        return None
        -
        -    @property
        -    def selected_subprotocol(self) -> Optional[str]:
        -        """The subprotocol returned by `select_subprotocol`.
        -
        -        .. versionadded:: 5.1
        -        """
        -        assert self.ws_connection is not None
        -        return self.ws_connection.selected_subprotocol
        -
        -    def get_compression_options(self) -> Optional[Dict[str, Any]]:
        -        """Override to return compression options for the connection.
        -
        -        If this method returns None (the default), compression will
        -        be disabled.  If it returns a dict (even an empty one), it
        -        will be enabled.  The contents of the dict may be used to
        -        control the following compression options:
        -
        -        ``compression_level`` specifies the compression level.
        -
        -        ``mem_level`` specifies the amount of memory used for the internal compression state.
        -
        -         These parameters are documented in details here:
        -         https://docs.python.org/3.6/library/zlib.html#zlib.compressobj
        -
        -        .. versionadded:: 4.1
        -
        -        .. versionchanged:: 4.5
        -
        -           Added ``compression_level`` and ``mem_level``.
        -        """
        -        # TODO: Add wbits option.
        -        return None
        -
        -    def open(self, *args: str, **kwargs: str) -> Optional[Awaitable[None]]:
        -        """Invoked when a new WebSocket is opened.
        -
        -        The arguments to `open` are extracted from the `tornado.web.URLSpec`
        -        regular expression, just like the arguments to
        -        `tornado.web.RequestHandler.get`.
        -
        -        `open` may be a coroutine. `on_message` will not be called until
        -        `open` has returned.
        -
        -        .. versionchanged:: 5.1
        -
        -           ``open`` may be a coroutine.
        -        """
        -        pass
        -
        -    def on_message(self, message: Union[str, bytes]) -> Optional[Awaitable[None]]:
        -        """Handle incoming messages on the WebSocket
        -
        -        This method must be overridden.
        -
        -        .. versionchanged:: 4.5
        -
        -           ``on_message`` can be a coroutine.
        -        """
        -        raise NotImplementedError
        -
        -    def ping(self, data: Union[str, bytes] = b"") -> None:
        -        """Send ping frame to the remote end.
        -
        -        The data argument allows a small amount of data (up to 125
        -        bytes) to be sent as a part of the ping message. Note that not
        -        all websocket implementations expose this data to
        -        applications.
        -
        -        Consider using the ``websocket_ping_interval`` application
        -        setting instead of sending pings manually.
        -
        -        .. versionchanged:: 5.1
        -
        -           The data argument is now optional.
        -
        -        """
        -        data = utf8(data)
        -        if self.ws_connection is None or self.ws_connection.is_closing():
        -            raise WebSocketClosedError()
        -        self.ws_connection.write_ping(data)
        -
        -    def on_pong(self, data: bytes) -> None:
        -        """Invoked when the response to a ping frame is received."""
        -        pass
        -
        -    def on_ping(self, data: bytes) -> None:
        -        """Invoked when the a ping frame is received."""
        -        pass
        -
        -    def on_close(self) -> None:
        -        """Invoked when the WebSocket is closed.
        -
        -        If the connection was closed cleanly and a status code or reason
        -        phrase was supplied, these values will be available as the attributes
        -        ``self.close_code`` and ``self.close_reason``.
        -
        -        .. versionchanged:: 4.0
        -
        -           Added ``close_code`` and ``close_reason`` attributes.
        -        """
        -        pass
        -
        -    def close(self, code: int = None, reason: str = None) -> None:
        -        """Closes this Web Socket.
        -
        -        Once the close handshake is successful the socket will be closed.
        -
        -        ``code`` may be a numeric status code, taken from the values
        -        defined in `RFC 6455 section 7.4.1
        -        `_.
        -        ``reason`` may be a textual message about why the connection is
        -        closing.  These values are made available to the client, but are
        -        not otherwise interpreted by the websocket protocol.
        -
        -        .. versionchanged:: 4.0
        -
        -           Added the ``code`` and ``reason`` arguments.
        -        """
        -        if self.ws_connection:
        -            self.ws_connection.close(code, reason)
        -            self.ws_connection = None
        -
        -    def check_origin(self, origin: str) -> bool:
        -        """Override to enable support for allowing alternate origins.
        -
        -        The ``origin`` argument is the value of the ``Origin`` HTTP
        -        header, the url responsible for initiating this request.  This
        -        method is not called for clients that do not send this header;
        -        such requests are always allowed (because all browsers that
        -        implement WebSockets support this header, and non-browser
        -        clients do not have the same cross-site security concerns).
        -
        -        Should return ``True`` to accept the request or ``False`` to
        -        reject it. By default, rejects all requests with an origin on
        -        a host other than this one.
        -
        -        This is a security protection against cross site scripting attacks on
        -        browsers, since WebSockets are allowed to bypass the usual same-origin
        -        policies and don't use CORS headers.
        -
        -        .. warning::
        -
        -           This is an important security measure; don't disable it
        -           without understanding the security implications. In
        -           particular, if your authentication is cookie-based, you
        -           must either restrict the origins allowed by
        -           ``check_origin()`` or implement your own XSRF-like
        -           protection for websocket connections. See `these
        -           `_
        -           `articles
        -           `_
        -           for more.
        -
        -        To accept all cross-origin traffic (which was the default prior to
        -        Tornado 4.0), simply override this method to always return ``True``::
        -
        -            def check_origin(self, origin):
        -                return True
        -
        -        To allow connections from any subdomain of your site, you might
        -        do something like::
        -
        -            def check_origin(self, origin):
        -                parsed_origin = urllib.parse.urlparse(origin)
        -                return parsed_origin.netloc.endswith(".mydomain.com")
        -
        -        .. versionadded:: 4.0
        -
        -        """
        -        parsed_origin = urlparse(origin)
        -        origin = parsed_origin.netloc
        -        origin = origin.lower()
        -
        -        host = self.request.headers.get("Host")
        -
        -        # Check to see that origin matches host directly, including ports
        -        return origin == host
        -
        -    def set_nodelay(self, value: bool) -> None:
        -        """Set the no-delay flag for this stream.
        -
        -        By default, small messages may be delayed and/or combined to minimize
        -        the number of packets sent.  This can sometimes cause 200-500ms delays
        -        due to the interaction between Nagle's algorithm and TCP delayed
        -        ACKs.  To reduce this delay (at the expense of possibly increasing
        -        bandwidth usage), call ``self.set_nodelay(True)`` once the websocket
        -        connection is established.
        -
        -        See `.BaseIOStream.set_nodelay` for additional details.
        -
        -        .. versionadded:: 3.1
        -        """
        -        assert self.ws_connection is not None
        -        self.ws_connection.set_nodelay(value)
        -
        -    def on_connection_close(self) -> None:
        -        if self.ws_connection:
        -            self.ws_connection.on_connection_close()
        -            self.ws_connection = None
        -        if not self._on_close_called:
        -            self._on_close_called = True
        -            self.on_close()
        -            self._break_cycles()
        -
        -    def on_ws_connection_close(
        -        self, close_code: int = None, close_reason: str = None
        -    ) -> None:
        -        self.close_code = close_code
        -        self.close_reason = close_reason
        -        self.on_connection_close()
        -
        -    def _break_cycles(self) -> None:
        -        # WebSocketHandlers call finish() early, but we don't want to
        -        # break up reference cycles (which makes it impossible to call
        -        # self.render_string) until after we've really closed the
        -        # connection (if it was established in the first place,
        -        # indicated by status code 101).
        -        if self.get_status() != 101 or self._on_close_called:
        -            super(WebSocketHandler, self)._break_cycles()
        -
        -    def send_error(self, *args: Any, **kwargs: Any) -> None:
        -        if self.stream is None:
        -            super(WebSocketHandler, self).send_error(*args, **kwargs)
        -        else:
        -            # If we get an uncaught exception during the handshake,
        -            # we have no choice but to abruptly close the connection.
        -            # TODO: for uncaught exceptions after the handshake,
        -            # we can close the connection more gracefully.
        -            self.stream.close()
        -
        -    def get_websocket_protocol(self) -> Optional["WebSocketProtocol"]:
        -        websocket_version = self.request.headers.get("Sec-WebSocket-Version")
        -        if websocket_version in ("7", "8", "13"):
        -            params = _WebSocketParams(
        -                ping_interval=self.ping_interval,
        -                ping_timeout=self.ping_timeout,
        -                max_message_size=self.max_message_size,
        -                compression_options=self.get_compression_options(),
        -            )
        -            return WebSocketProtocol13(self, False, params)
        -        return None
        -
        -    def _detach_stream(self) -> IOStream:
        -        # disable non-WS methods
        -        for method in [
        -            "write",
        -            "redirect",
        -            "set_header",
        -            "set_cookie",
        -            "set_status",
        -            "flush",
        -            "finish",
        -        ]:
        -            setattr(self, method, _raise_not_supported_for_websockets)
        -        return self.detach()
        -
        -
        -def _raise_not_supported_for_websockets(*args: Any, **kwargs: Any) -> None:
        -    raise RuntimeError("Method not supported for Web Sockets")
        -
        -
        -class WebSocketProtocol(abc.ABC):
        -    """Base class for WebSocket protocol versions.
        -    """
        -
        -    def __init__(self, handler: "_WebSocketDelegate") -> None:
        -        self.handler = handler
        -        self.stream = None  # type: Optional[IOStream]
        -        self.client_terminated = False
        -        self.server_terminated = False
        -
        -    def _run_callback(
        -        self, callback: Callable, *args: Any, **kwargs: Any
        -    ) -> "Optional[Future[Any]]":
        -        """Runs the given callback with exception handling.
        -
        -        If the callback is a coroutine, returns its Future. On error, aborts the
        -        websocket connection and returns None.
        -        """
        -        try:
        -            result = callback(*args, **kwargs)
        -        except Exception:
        -            self.handler.log_exception(*sys.exc_info())
        -            self._abort()
        -            return None
        -        else:
        -            if result is not None:
        -                result = gen.convert_yielded(result)
        -                assert self.stream is not None
        -                self.stream.io_loop.add_future(result, lambda f: f.result())
        -            return result
        -
        -    def on_connection_close(self) -> None:
        -        self._abort()
        -
        -    def _abort(self) -> None:
        -        """Instantly aborts the WebSocket connection by closing the socket"""
        -        self.client_terminated = True
        -        self.server_terminated = True
        -        if self.stream is not None:
        -            self.stream.close()  # forcibly tear down the connection
        -        self.close()  # let the subclass cleanup
        -
        -    @abc.abstractmethod
        -    def close(self, code: int = None, reason: str = None) -> None:
        -        raise NotImplementedError()
        -
        -    @abc.abstractmethod
        -    def is_closing(self) -> bool:
        -        raise NotImplementedError()
        -
        -    @abc.abstractmethod
        -    async def accept_connection(self, handler: WebSocketHandler) -> None:
        -        raise NotImplementedError()
        -
        -    @abc.abstractmethod
        -    def write_message(
        -        self, message: Union[str, bytes], binary: bool = False
        -    ) -> "Future[None]":
        -        raise NotImplementedError()
        -
        -    @property
        -    @abc.abstractmethod
        -    def selected_subprotocol(self) -> Optional[str]:
        -        raise NotImplementedError()
        -
        -    @abc.abstractmethod
        -    def write_ping(self, data: bytes) -> None:
        -        raise NotImplementedError()
        -
        -    # The entry points below are used by WebSocketClientConnection,
        -    # which was introduced after we only supported a single version of
        -    # WebSocketProtocol. The WebSocketProtocol/WebSocketProtocol13
        -    # boundary is currently pretty ad-hoc.
        -    @abc.abstractmethod
        -    def _process_server_headers(
        -        self, key: Union[str, bytes], headers: httputil.HTTPHeaders
        -    ) -> None:
        -        raise NotImplementedError()
        -
        -    @abc.abstractmethod
        -    def start_pinging(self) -> None:
        -        raise NotImplementedError()
        -
        -    @abc.abstractmethod
        -    async def _receive_frame_loop(self) -> None:
        -        raise NotImplementedError()
        -
        -    @abc.abstractmethod
        -    def set_nodelay(self, x: bool) -> None:
        -        raise NotImplementedError()
        -
        -
        -class _PerMessageDeflateCompressor(object):
        -    def __init__(
        -        self,
        -        persistent: bool,
        -        max_wbits: Optional[int],
        -        compression_options: Dict[str, Any] = None,
        -    ) -> None:
        -        if max_wbits is None:
        -            max_wbits = zlib.MAX_WBITS
        -        # There is no symbolic constant for the minimum wbits value.
        -        if not (8 <= max_wbits <= zlib.MAX_WBITS):
        -            raise ValueError(
        -                "Invalid max_wbits value %r; allowed range 8-%d",
        -                max_wbits,
        -                zlib.MAX_WBITS,
        -            )
        -        self._max_wbits = max_wbits
        -
        -        if (
        -            compression_options is None
        -            or "compression_level" not in compression_options
        -        ):
        -            self._compression_level = tornado.web.GZipContentEncoding.GZIP_LEVEL
        -        else:
        -            self._compression_level = compression_options["compression_level"]
        -
        -        if compression_options is None or "mem_level" not in compression_options:
        -            self._mem_level = 8
        -        else:
        -            self._mem_level = compression_options["mem_level"]
        -
        -        if persistent:
        -            self._compressor = self._create_compressor()  # type: Optional[_Compressor]
        -        else:
        -            self._compressor = None
        -
        -    def _create_compressor(self) -> "_Compressor":
        -        return zlib.compressobj(
        -            self._compression_level, zlib.DEFLATED, -self._max_wbits, self._mem_level
        -        )
        -
        -    def compress(self, data: bytes) -> bytes:
        -        compressor = self._compressor or self._create_compressor()
        -        data = compressor.compress(data) + compressor.flush(zlib.Z_SYNC_FLUSH)
        -        assert data.endswith(b"\x00\x00\xff\xff")
        -        return data[:-4]
        -
        -
        -class _PerMessageDeflateDecompressor(object):
        -    def __init__(
        -        self,
        -        persistent: bool,
        -        max_wbits: Optional[int],
        -        max_message_size: int,
        -        compression_options: Dict[str, Any] = None,
        -    ) -> None:
        -        self._max_message_size = max_message_size
        -        if max_wbits is None:
        -            max_wbits = zlib.MAX_WBITS
        -        if not (8 <= max_wbits <= zlib.MAX_WBITS):
        -            raise ValueError(
        -                "Invalid max_wbits value %r; allowed range 8-%d",
        -                max_wbits,
        -                zlib.MAX_WBITS,
        -            )
        -        self._max_wbits = max_wbits
        -        if persistent:
        -            self._decompressor = (
        -                self._create_decompressor()
        -            )  # type: Optional[_Decompressor]
        -        else:
        -            self._decompressor = None
        -
        -    def _create_decompressor(self) -> "_Decompressor":
        -        return zlib.decompressobj(-self._max_wbits)
        -
        -    def decompress(self, data: bytes) -> bytes:
        -        decompressor = self._decompressor or self._create_decompressor()
        -        result = decompressor.decompress(
        -            data + b"\x00\x00\xff\xff", self._max_message_size
        -        )
        -        if decompressor.unconsumed_tail:
        -            raise _DecompressTooLargeError()
        -        return result
        -
        -
        -class WebSocketProtocol13(WebSocketProtocol):
        -    """Implementation of the WebSocket protocol from RFC 6455.
        -
        -    This class supports versions 7 and 8 of the protocol in addition to the
        -    final version 13.
        -    """
        -
        -    # Bit masks for the first byte of a frame.
        -    FIN = 0x80
        -    RSV1 = 0x40
        -    RSV2 = 0x20
        -    RSV3 = 0x10
        -    RSV_MASK = RSV1 | RSV2 | RSV3
        -    OPCODE_MASK = 0x0F
        -
        -    stream = None  # type: IOStream
        -
        -    def __init__(
        -        self,
        -        handler: "_WebSocketDelegate",
        -        mask_outgoing: bool,
        -        params: _WebSocketParams,
        -    ) -> None:
        -        WebSocketProtocol.__init__(self, handler)
        -        self.mask_outgoing = mask_outgoing
        -        self.params = params
        -        self._final_frame = False
        -        self._frame_opcode = None
        -        self._masked_frame = None
        -        self._frame_mask = None  # type: Optional[bytes]
        -        self._frame_length = None
        -        self._fragmented_message_buffer = None  # type: Optional[bytes]
        -        self._fragmented_message_opcode = None
        -        self._waiting = None  # type: object
        -        self._compression_options = params.compression_options
        -        self._decompressor = None  # type: Optional[_PerMessageDeflateDecompressor]
        -        self._compressor = None  # type: Optional[_PerMessageDeflateCompressor]
        -        self._frame_compressed = None  # type: Optional[bool]
        -        # The total uncompressed size of all messages received or sent.
        -        # Unicode messages are encoded to utf8.
        -        # Only for testing; subject to change.
        -        self._message_bytes_in = 0
        -        self._message_bytes_out = 0
        -        # The total size of all packets received or sent.  Includes
        -        # the effect of compression, frame overhead, and control frames.
        -        self._wire_bytes_in = 0
        -        self._wire_bytes_out = 0
        -        self.ping_callback = None  # type: Optional[PeriodicCallback]
        -        self.last_ping = 0.0
        -        self.last_pong = 0.0
        -        self.close_code = None  # type: Optional[int]
        -        self.close_reason = None  # type: Optional[str]
        -
        -    # Use a property for this to satisfy the abc.
        -    @property
        -    def selected_subprotocol(self) -> Optional[str]:
        -        return self._selected_subprotocol
        -
        -    @selected_subprotocol.setter
        -    def selected_subprotocol(self, value: Optional[str]) -> None:
        -        self._selected_subprotocol = value
        -
        -    async def accept_connection(self, handler: WebSocketHandler) -> None:
        -        try:
        -            self._handle_websocket_headers(handler)
        -        except ValueError:
        -            handler.set_status(400)
        -            log_msg = "Missing/Invalid WebSocket headers"
        -            handler.finish(log_msg)
        -            gen_log.debug(log_msg)
        -            return
        -
        -        try:
        -            await self._accept_connection(handler)
        -        except asyncio.CancelledError:
        -            self._abort()
        -            return
        -        except ValueError:
        -            gen_log.debug("Malformed WebSocket request received", exc_info=True)
        -            self._abort()
        -            return
        -
        -    def _handle_websocket_headers(self, handler: WebSocketHandler) -> None:
        -        """Verifies all invariant- and required headers
        -
        -        If a header is missing or have an incorrect value ValueError will be
        -        raised
        -        """
        -        fields = ("Host", "Sec-Websocket-Key", "Sec-Websocket-Version")
        -        if not all(map(lambda f: handler.request.headers.get(f), fields)):
        -            raise ValueError("Missing/Invalid WebSocket headers")
        -
        -    @staticmethod
        -    def compute_accept_value(key: Union[str, bytes]) -> str:
        -        """Computes the value for the Sec-WebSocket-Accept header,
        -        given the value for Sec-WebSocket-Key.
        -        """
        -        sha1 = hashlib.sha1()
        -        sha1.update(utf8(key))
        -        sha1.update(b"258EAFA5-E914-47DA-95CA-C5AB0DC85B11")  # Magic value
        -        return native_str(base64.b64encode(sha1.digest()))
        -
        -    def _challenge_response(self, handler: WebSocketHandler) -> str:
        -        return WebSocketProtocol13.compute_accept_value(
        -            cast(str, handler.request.headers.get("Sec-Websocket-Key"))
        -        )
        -
        -    async def _accept_connection(self, handler: WebSocketHandler) -> None:
        -        subprotocol_header = handler.request.headers.get("Sec-WebSocket-Protocol")
        -        if subprotocol_header:
        -            subprotocols = [s.strip() for s in subprotocol_header.split(",")]
        -        else:
        -            subprotocols = []
        -        self.selected_subprotocol = handler.select_subprotocol(subprotocols)
        -        if self.selected_subprotocol:
        -            assert self.selected_subprotocol in subprotocols
        -            handler.set_header("Sec-WebSocket-Protocol", self.selected_subprotocol)
        -
        -        extensions = self._parse_extensions_header(handler.request.headers)
        -        for ext in extensions:
        -            if ext[0] == "permessage-deflate" and self._compression_options is not None:
        -                # TODO: negotiate parameters if compression_options
        -                # specifies limits.
        -                self._create_compressors("server", ext[1], self._compression_options)
        -                if (
        -                    "client_max_window_bits" in ext[1]
        -                    and ext[1]["client_max_window_bits"] is None
        -                ):
        -                    # Don't echo an offered client_max_window_bits
        -                    # parameter with no value.
        -                    del ext[1]["client_max_window_bits"]
        -                handler.set_header(
        -                    "Sec-WebSocket-Extensions",
        -                    httputil._encode_header("permessage-deflate", ext[1]),
        -                )
        -                break
        -
        -        handler.clear_header("Content-Type")
        -        handler.set_status(101)
        -        handler.set_header("Upgrade", "websocket")
        -        handler.set_header("Connection", "Upgrade")
        -        handler.set_header("Sec-WebSocket-Accept", self._challenge_response(handler))
        -        handler.finish()
        -
        -        self.stream = handler._detach_stream()
        -
        -        self.start_pinging()
        -        try:
        -            open_result = handler.open(*handler.open_args, **handler.open_kwargs)
        -            if open_result is not None:
        -                await open_result
        -        except Exception:
        -            handler.log_exception(*sys.exc_info())
        -            self._abort()
        -            return
        -
        -        await self._receive_frame_loop()
        -
        -    def _parse_extensions_header(
        -        self, headers: httputil.HTTPHeaders
        -    ) -> List[Tuple[str, Dict[str, str]]]:
        -        extensions = headers.get("Sec-WebSocket-Extensions", "")
        -        if extensions:
        -            return [httputil._parse_header(e.strip()) for e in extensions.split(",")]
        -        return []
        -
        -    def _process_server_headers(
        -        self, key: Union[str, bytes], headers: httputil.HTTPHeaders
        -    ) -> None:
        -        """Process the headers sent by the server to this client connection.
        -
        -        'key' is the websocket handshake challenge/response key.
        -        """
        -        assert headers["Upgrade"].lower() == "websocket"
        -        assert headers["Connection"].lower() == "upgrade"
        -        accept = self.compute_accept_value(key)
        -        assert headers["Sec-Websocket-Accept"] == accept
        -
        -        extensions = self._parse_extensions_header(headers)
        -        for ext in extensions:
        -            if ext[0] == "permessage-deflate" and self._compression_options is not None:
        -                self._create_compressors("client", ext[1])
        -            else:
        -                raise ValueError("unsupported extension %r", ext)
        -
        -        self.selected_subprotocol = headers.get("Sec-WebSocket-Protocol", None)
        -
        -    def _get_compressor_options(
        -        self,
        -        side: str,
        -        agreed_parameters: Dict[str, Any],
        -        compression_options: Dict[str, Any] = None,
        -    ) -> Dict[str, Any]:
        -        """Converts a websocket agreed_parameters set to keyword arguments
        -        for our compressor objects.
        -        """
        -        options = dict(
        -            persistent=(side + "_no_context_takeover") not in agreed_parameters
        -        )  # type: Dict[str, Any]
        -        wbits_header = agreed_parameters.get(side + "_max_window_bits", None)
        -        if wbits_header is None:
        -            options["max_wbits"] = zlib.MAX_WBITS
        -        else:
        -            options["max_wbits"] = int(wbits_header)
        -        options["compression_options"] = compression_options
        -        return options
        -
        -    def _create_compressors(
        -        self,
        -        side: str,
        -        agreed_parameters: Dict[str, Any],
        -        compression_options: Dict[str, Any] = None,
        -    ) -> None:
        -        # TODO: handle invalid parameters gracefully
        -        allowed_keys = set(
        -            [
        -                "server_no_context_takeover",
        -                "client_no_context_takeover",
        -                "server_max_window_bits",
        -                "client_max_window_bits",
        -            ]
        -        )
        -        for key in agreed_parameters:
        -            if key not in allowed_keys:
        -                raise ValueError("unsupported compression parameter %r" % key)
        -        other_side = "client" if (side == "server") else "server"
        -        self._compressor = _PerMessageDeflateCompressor(
        -            **self._get_compressor_options(side, agreed_parameters, compression_options)
        -        )
        -        self._decompressor = _PerMessageDeflateDecompressor(
        -            max_message_size=self.params.max_message_size,
        -            **self._get_compressor_options(
        -                other_side, agreed_parameters, compression_options
        -            )
        -        )
        -
        -    def _write_frame(
        -        self, fin: bool, opcode: int, data: bytes, flags: int = 0
        -    ) -> "Future[None]":
        -        data_len = len(data)
        -        if opcode & 0x8:
        -            # All control frames MUST have a payload length of 125
        -            # bytes or less and MUST NOT be fragmented.
        -            if not fin:
        -                raise ValueError("control frames may not be fragmented")
        -            if data_len > 125:
        -                raise ValueError("control frame payloads may not exceed 125 bytes")
        -        if fin:
        -            finbit = self.FIN
        -        else:
        -            finbit = 0
        -        frame = struct.pack("B", finbit | opcode | flags)
        -        if self.mask_outgoing:
        -            mask_bit = 0x80
        -        else:
        -            mask_bit = 0
        -        if data_len < 126:
        -            frame += struct.pack("B", data_len | mask_bit)
        -        elif data_len <= 0xFFFF:
        -            frame += struct.pack("!BH", 126 | mask_bit, data_len)
        -        else:
        -            frame += struct.pack("!BQ", 127 | mask_bit, data_len)
        -        if self.mask_outgoing:
        -            mask = os.urandom(4)
        -            data = mask + _websocket_mask(mask, data)
        -        frame += data
        -        self._wire_bytes_out += len(frame)
        -        return self.stream.write(frame)
        -
        -    def write_message(
        -        self, message: Union[str, bytes], binary: bool = False
        -    ) -> "Future[None]":
        -        """Sends the given message to the client of this Web Socket."""
        -        if binary:
        -            opcode = 0x2
        -        else:
        -            opcode = 0x1
        -        message = tornado.escape.utf8(message)
        -        assert isinstance(message, bytes)
        -        self._message_bytes_out += len(message)
        -        flags = 0
        -        if self._compressor:
        -            message = self._compressor.compress(message)
        -            flags |= self.RSV1
        -        # For historical reasons, write methods in Tornado operate in a semi-synchronous
        -        # mode in which awaiting the Future they return is optional (But errors can
        -        # still be raised). This requires us to go through an awkward dance here
        -        # to transform the errors that may be returned while presenting the same
        -        # semi-synchronous interface.
        -        try:
        -            fut = self._write_frame(True, opcode, message, flags=flags)
        -        except StreamClosedError:
        -            raise WebSocketClosedError()
        -
        -        async def wrapper() -> None:
        -            try:
        -                await fut
        -            except StreamClosedError:
        -                raise WebSocketClosedError()
        -
        -        return asyncio.ensure_future(wrapper())
        -
        -    def write_ping(self, data: bytes) -> None:
        -        """Send ping frame."""
        -        assert isinstance(data, bytes)
        -        self._write_frame(True, 0x9, data)
        -
        -    async def _receive_frame_loop(self) -> None:
        -        try:
        -            while not self.client_terminated:
        -                await self._receive_frame()
        -        except StreamClosedError:
        -            self._abort()
        -        self.handler.on_ws_connection_close(self.close_code, self.close_reason)
        -
        -    async def _read_bytes(self, n: int) -> bytes:
        -        data = await self.stream.read_bytes(n)
        -        self._wire_bytes_in += n
        -        return data
        -
        -    async def _receive_frame(self) -> None:
        -        # Read the frame header.
        -        data = await self._read_bytes(2)
        -        header, mask_payloadlen = struct.unpack("BB", data)
        -        is_final_frame = header & self.FIN
        -        reserved_bits = header & self.RSV_MASK
        -        opcode = header & self.OPCODE_MASK
        -        opcode_is_control = opcode & 0x8
        -        if self._decompressor is not None and opcode != 0:
        -            # Compression flag is present in the first frame's header,
        -            # but we can't decompress until we have all the frames of
        -            # the message.
        -            self._frame_compressed = bool(reserved_bits & self.RSV1)
        -            reserved_bits &= ~self.RSV1
        -        if reserved_bits:
        -            # client is using as-yet-undefined extensions; abort
        -            self._abort()
        -            return
        -        is_masked = bool(mask_payloadlen & 0x80)
        -        payloadlen = mask_payloadlen & 0x7F
        -
        -        # Parse and validate the length.
        -        if opcode_is_control and payloadlen >= 126:
        -            # control frames must have payload < 126
        -            self._abort()
        -            return
        -        if payloadlen < 126:
        -            self._frame_length = payloadlen
        -        elif payloadlen == 126:
        -            data = await self._read_bytes(2)
        -            payloadlen = struct.unpack("!H", data)[0]
        -        elif payloadlen == 127:
        -            data = await self._read_bytes(8)
        -            payloadlen = struct.unpack("!Q", data)[0]
        -        new_len = payloadlen
        -        if self._fragmented_message_buffer is not None:
        -            new_len += len(self._fragmented_message_buffer)
        -        if new_len > self.params.max_message_size:
        -            self.close(1009, "message too big")
        -            self._abort()
        -            return
        -
        -        # Read the payload, unmasking if necessary.
        -        if is_masked:
        -            self._frame_mask = await self._read_bytes(4)
        -        data = await self._read_bytes(payloadlen)
        -        if is_masked:
        -            assert self._frame_mask is not None
        -            data = _websocket_mask(self._frame_mask, data)
        -
        -        # Decide what to do with this frame.
        -        if opcode_is_control:
        -            # control frames may be interleaved with a series of fragmented
        -            # data frames, so control frames must not interact with
        -            # self._fragmented_*
        -            if not is_final_frame:
        -                # control frames must not be fragmented
        -                self._abort()
        -                return
        -        elif opcode == 0:  # continuation frame
        -            if self._fragmented_message_buffer is None:
        -                # nothing to continue
        -                self._abort()
        -                return
        -            self._fragmented_message_buffer += data
        -            if is_final_frame:
        -                opcode = self._fragmented_message_opcode
        -                data = self._fragmented_message_buffer
        -                self._fragmented_message_buffer = None
        -        else:  # start of new data message
        -            if self._fragmented_message_buffer is not None:
        -                # can't start new message until the old one is finished
        -                self._abort()
        -                return
        -            if not is_final_frame:
        -                self._fragmented_message_opcode = opcode
        -                self._fragmented_message_buffer = data
        -
        -        if is_final_frame:
        -            handled_future = self._handle_message(opcode, data)
        -            if handled_future is not None:
        -                await handled_future
        -
        -    def _handle_message(self, opcode: int, data: bytes) -> "Optional[Future[None]]":
        -        """Execute on_message, returning its Future if it is a coroutine."""
        -        if self.client_terminated:
        -            return None
        -
        -        if self._frame_compressed:
        -            assert self._decompressor is not None
        -            try:
        -                data = self._decompressor.decompress(data)
        -            except _DecompressTooLargeError:
        -                self.close(1009, "message too big after decompression")
        -                self._abort()
        -                return None
        -
        -        if opcode == 0x1:
        -            # UTF-8 data
        -            self._message_bytes_in += len(data)
        -            try:
        -                decoded = data.decode("utf-8")
        -            except UnicodeDecodeError:
        -                self._abort()
        -                return None
        -            return self._run_callback(self.handler.on_message, decoded)
        -        elif opcode == 0x2:
        -            # Binary data
        -            self._message_bytes_in += len(data)
        -            return self._run_callback(self.handler.on_message, data)
        -        elif opcode == 0x8:
        -            # Close
        -            self.client_terminated = True
        -            if len(data) >= 2:
        -                self.close_code = struct.unpack(">H", data[:2])[0]
        -            if len(data) > 2:
        -                self.close_reason = to_unicode(data[2:])
        -            # Echo the received close code, if any (RFC 6455 section 5.5.1).
        -            self.close(self.close_code)
        -        elif opcode == 0x9:
        -            # Ping
        -            try:
        -                self._write_frame(True, 0xA, data)
        -            except StreamClosedError:
        -                self._abort()
        -            self._run_callback(self.handler.on_ping, data)
        -        elif opcode == 0xA:
        -            # Pong
        -            self.last_pong = IOLoop.current().time()
        -            return self._run_callback(self.handler.on_pong, data)
        -        else:
        -            self._abort()
        -        return None
        -
        -    def close(self, code: int = None, reason: str = None) -> None:
        -        """Closes the WebSocket connection."""
        -        if not self.server_terminated:
        -            if not self.stream.closed():
        -                if code is None and reason is not None:
        -                    code = 1000  # "normal closure" status code
        -                if code is None:
        -                    close_data = b""
        -                else:
        -                    close_data = struct.pack(">H", code)
        -                if reason is not None:
        -                    close_data += utf8(reason)
        -                try:
        -                    self._write_frame(True, 0x8, close_data)
        -                except StreamClosedError:
        -                    self._abort()
        -            self.server_terminated = True
        -        if self.client_terminated:
        -            if self._waiting is not None:
        -                self.stream.io_loop.remove_timeout(self._waiting)
        -                self._waiting = None
        -            self.stream.close()
        -        elif self._waiting is None:
        -            # Give the client a few seconds to complete a clean shutdown,
        -            # otherwise just close the connection.
        -            self._waiting = self.stream.io_loop.add_timeout(
        -                self.stream.io_loop.time() + 5, self._abort
        -            )
        -
        -    def is_closing(self) -> bool:
        -        """Return ``True`` if this connection is closing.
        -
        -        The connection is considered closing if either side has
        -        initiated its closing handshake or if the stream has been
        -        shut down uncleanly.
        -        """
        -        return self.stream.closed() or self.client_terminated or self.server_terminated
        -
        -    @property
        -    def ping_interval(self) -> Optional[float]:
        -        interval = self.params.ping_interval
        -        if interval is not None:
        -            return interval
        -        return 0
        -
        -    @property
        -    def ping_timeout(self) -> Optional[float]:
        -        timeout = self.params.ping_timeout
        -        if timeout is not None:
        -            return timeout
        -        assert self.ping_interval is not None
        -        return max(3 * self.ping_interval, 30)
        -
        -    def start_pinging(self) -> None:
        -        """Start sending periodic pings to keep the connection alive"""
        -        assert self.ping_interval is not None
        -        if self.ping_interval > 0:
        -            self.last_ping = self.last_pong = IOLoop.current().time()
        -            self.ping_callback = PeriodicCallback(
        -                self.periodic_ping, self.ping_interval * 1000
        -            )
        -            self.ping_callback.start()
        -
        -    def periodic_ping(self) -> None:
        -        """Send a ping to keep the websocket alive
        -
        -        Called periodically if the websocket_ping_interval is set and non-zero.
        -        """
        -        if self.is_closing() and self.ping_callback is not None:
        -            self.ping_callback.stop()
        -            return
        -
        -        # Check for timeout on pong. Make sure that we really have
        -        # sent a recent ping in case the machine with both server and
        -        # client has been suspended since the last ping.
        -        now = IOLoop.current().time()
        -        since_last_pong = now - self.last_pong
        -        since_last_ping = now - self.last_ping
        -        assert self.ping_interval is not None
        -        assert self.ping_timeout is not None
        -        if (
        -            since_last_ping < 2 * self.ping_interval
        -            and since_last_pong > self.ping_timeout
        -        ):
        -            self.close()
        -            return
        -
        -        self.write_ping(b"")
        -        self.last_ping = now
        -
        -    def set_nodelay(self, x: bool) -> None:
        -        self.stream.set_nodelay(x)
        -
        -
        -class WebSocketClientConnection(simple_httpclient._HTTPConnection):
        -    """WebSocket client connection.
        -
        -    This class should not be instantiated directly; use the
        -    `websocket_connect` function instead.
        -    """
        -
        -    protocol = None  # type: WebSocketProtocol
        -
        -    def __init__(
        -        self,
        -        request: httpclient.HTTPRequest,
        -        on_message_callback: Callable[[Union[None, str, bytes]], None] = None,
        -        compression_options: Dict[str, Any] = None,
        -        ping_interval: float = None,
        -        ping_timeout: float = None,
        -        max_message_size: int = _default_max_message_size,
        -        subprotocols: Optional[List[str]] = [],
        -    ) -> None:
        -        self.connect_future = Future()  # type: Future[WebSocketClientConnection]
        -        self.read_queue = Queue(1)  # type: Queue[Union[None, str, bytes]]
        -        self.key = base64.b64encode(os.urandom(16))
        -        self._on_message_callback = on_message_callback
        -        self.close_code = None  # type: Optional[int]
        -        self.close_reason = None  # type: Optional[str]
        -        self.params = _WebSocketParams(
        -            ping_interval=ping_interval,
        -            ping_timeout=ping_timeout,
        -            max_message_size=max_message_size,
        -            compression_options=compression_options,
        -        )
        -
        -        scheme, sep, rest = request.url.partition(":")
        -        scheme = {"ws": "http", "wss": "https"}[scheme]
        -        request.url = scheme + sep + rest
        -        request.headers.update(
        -            {
        -                "Upgrade": "websocket",
        -                "Connection": "Upgrade",
        -                "Sec-WebSocket-Key": self.key,
        -                "Sec-WebSocket-Version": "13",
        -            }
        -        )
        -        if subprotocols is not None:
        -            request.headers["Sec-WebSocket-Protocol"] = ",".join(subprotocols)
        -        if compression_options is not None:
        -            # Always offer to let the server set our max_wbits (and even though
        -            # we don't offer it, we will accept a client_no_context_takeover
        -            # from the server).
        -            # TODO: set server parameters for deflate extension
        -            # if requested in self.compression_options.
        -            request.headers[
        -                "Sec-WebSocket-Extensions"
        -            ] = "permessage-deflate; client_max_window_bits"
        -
        -        self.tcp_client = TCPClient()
        -        super(WebSocketClientConnection, self).__init__(
        -            None,
        -            request,
        -            lambda: None,
        -            self._on_http_response,
        -            104857600,
        -            self.tcp_client,
        -            65536,
        -            104857600,
        -        )
        -
        -    def close(self, code: int = None, reason: str = None) -> None:
        -        """Closes the websocket connection.
        -
        -        ``code`` and ``reason`` are documented under
        -        `WebSocketHandler.close`.
        -
        -        .. versionadded:: 3.2
        -
        -        .. versionchanged:: 4.0
        -
        -           Added the ``code`` and ``reason`` arguments.
        -        """
        -        if self.protocol is not None:
        -            self.protocol.close(code, reason)
        -            self.protocol = None  # type: ignore
        -
        -    def on_connection_close(self) -> None:
        -        if not self.connect_future.done():
        -            self.connect_future.set_exception(StreamClosedError())
        -        self._on_message(None)
        -        self.tcp_client.close()
        -        super(WebSocketClientConnection, self).on_connection_close()
        -
        -    def on_ws_connection_close(
        -        self, close_code: int = None, close_reason: str = None
        -    ) -> None:
        -        self.close_code = close_code
        -        self.close_reason = close_reason
        -        self.on_connection_close()
        -
        -    def _on_http_response(self, response: httpclient.HTTPResponse) -> None:
        -        if not self.connect_future.done():
        -            if response.error:
        -                self.connect_future.set_exception(response.error)
        -            else:
        -                self.connect_future.set_exception(
        -                    WebSocketError("Non-websocket response")
        -                )
        -
        -    async def headers_received(
        -        self,
        -        start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine],
        -        headers: httputil.HTTPHeaders,
        -    ) -> None:
        -        assert isinstance(start_line, httputil.ResponseStartLine)
        -        if start_line.code != 101:
        -            await super(WebSocketClientConnection, self).headers_received(
        -                start_line, headers
        -            )
        -            return
        -
        -        if self._timeout is not None:
        -            self.io_loop.remove_timeout(self._timeout)
        -            self._timeout = None
        -
        -        self.headers = headers
        -        self.protocol = self.get_websocket_protocol()
        -        self.protocol._process_server_headers(self.key, self.headers)
        -        self.protocol.stream = self.connection.detach()
        -
        -        IOLoop.current().add_callback(self.protocol._receive_frame_loop)
        -        self.protocol.start_pinging()
        -
        -        # Once we've taken over the connection, clear the final callback
        -        # we set on the http request.  This deactivates the error handling
        -        # in simple_httpclient that would otherwise interfere with our
        -        # ability to see exceptions.
        -        self.final_callback = None  # type: ignore
        -
        -        future_set_result_unless_cancelled(self.connect_future, self)
        -
        -    def write_message(
        -        self, message: Union[str, bytes], binary: bool = False
        -    ) -> "Future[None]":
        -        """Sends a message to the WebSocket server.
        -
        -        If the stream is closed, raises `WebSocketClosedError`.
        -        Returns a `.Future` which can be used for flow control.
        -
        -        .. versionchanged:: 5.0
        -           Exception raised on a closed stream changed from `.StreamClosedError`
        -           to `WebSocketClosedError`.
        -        """
        -        return self.protocol.write_message(message, binary=binary)
        -
        -    def read_message(
        -        self, callback: Callable[["Future[Union[None, str, bytes]]"], None] = None
        -    ) -> Awaitable[Union[None, str, bytes]]:
        -        """Reads a message from the WebSocket server.
        -
        -        If on_message_callback was specified at WebSocket
        -        initialization, this function will never return messages
        -
        -        Returns a future whose result is the message, or None
        -        if the connection is closed.  If a callback argument
        -        is given it will be called with the future when it is
        -        ready.
        -        """
        -
        -        awaitable = self.read_queue.get()
        -        if callback is not None:
        -            self.io_loop.add_future(asyncio.ensure_future(awaitable), callback)
        -        return awaitable
        -
        -    def on_message(self, message: Union[str, bytes]) -> Optional[Awaitable[None]]:
        -        return self._on_message(message)
        -
        -    def _on_message(
        -        self, message: Union[None, str, bytes]
        -    ) -> Optional[Awaitable[None]]:
        -        if self._on_message_callback:
        -            self._on_message_callback(message)
        -            return None
        -        else:
        -            return self.read_queue.put(message)
        -
        -    def ping(self, data: bytes = b"") -> None:
        -        """Send ping frame to the remote end.
        -
        -        The data argument allows a small amount of data (up to 125
        -        bytes) to be sent as a part of the ping message. Note that not
        -        all websocket implementations expose this data to
        -        applications.
        -
        -        Consider using the ``ping_interval`` argument to
        -        `websocket_connect` instead of sending pings manually.
        -
        -        .. versionadded:: 5.1
        -
        -        """
        -        data = utf8(data)
        -        if self.protocol is None:
        -            raise WebSocketClosedError()
        -        self.protocol.write_ping(data)
        -
        -    def on_pong(self, data: bytes) -> None:
        -        pass
        -
        -    def on_ping(self, data: bytes) -> None:
        -        pass
        -
        -    def get_websocket_protocol(self) -> WebSocketProtocol:
        -        return WebSocketProtocol13(self, mask_outgoing=True, params=self.params)
        -
        -    @property
        -    def selected_subprotocol(self) -> Optional[str]:
        -        """The subprotocol selected by the server.
        -
        -        .. versionadded:: 5.1
        -        """
        -        return self.protocol.selected_subprotocol
        -
        -    def log_exception(
        -        self,
        -        typ: "Optional[Type[BaseException]]",
        -        value: Optional[BaseException],
        -        tb: Optional[TracebackType],
        -    ) -> None:
        -        assert typ is not None
        -        assert value is not None
        -        app_log.error("Uncaught exception %s", value, exc_info=(typ, value, tb))
        -
        -
        -def websocket_connect(
        -    url: Union[str, httpclient.HTTPRequest],
        -    callback: Callable[["Future[WebSocketClientConnection]"], None] = None,
        -    connect_timeout: float = None,
        -    on_message_callback: Callable[[Union[None, str, bytes]], None] = None,
        -    compression_options: Dict[str, Any] = None,
        -    ping_interval: float = None,
        -    ping_timeout: float = None,
        -    max_message_size: int = _default_max_message_size,
        -    subprotocols: List[str] = None,
        -) -> "Awaitable[WebSocketClientConnection]":
        -    """Client-side websocket support.
        -
        -    Takes a url and returns a Future whose result is a
        -    `WebSocketClientConnection`.
        -
        -    ``compression_options`` is interpreted in the same way as the
        -    return value of `.WebSocketHandler.get_compression_options`.
        -
        -    The connection supports two styles of operation. In the coroutine
        -    style, the application typically calls
        -    `~.WebSocketClientConnection.read_message` in a loop::
        -
        -        conn = yield websocket_connect(url)
        -        while True:
        -            msg = yield conn.read_message()
        -            if msg is None: break
        -            # Do something with msg
        -
        -    In the callback style, pass an ``on_message_callback`` to
        -    ``websocket_connect``. In both styles, a message of ``None``
        -    indicates that the connection has been closed.
        -
        -    ``subprotocols`` may be a list of strings specifying proposed
        -    subprotocols. The selected protocol may be found on the
        -    ``selected_subprotocol`` attribute of the connection object
        -    when the connection is complete.
        -
        -    .. versionchanged:: 3.2
        -       Also accepts ``HTTPRequest`` objects in place of urls.
        -
        -    .. versionchanged:: 4.1
        -       Added ``compression_options`` and ``on_message_callback``.
        -
        -    .. versionchanged:: 4.5
        -       Added the ``ping_interval``, ``ping_timeout``, and ``max_message_size``
        -       arguments, which have the same meaning as in `WebSocketHandler`.
        -
        -    .. versionchanged:: 5.0
        -       The ``io_loop`` argument (deprecated since version 4.1) has been removed.
        -
        -    .. versionchanged:: 5.1
        -       Added the ``subprotocols`` argument.
        -    """
        -    if isinstance(url, httpclient.HTTPRequest):
        -        assert connect_timeout is None
        -        request = url
        -        # Copy and convert the headers dict/object (see comments in
        -        # AsyncHTTPClient.fetch)
        -        request.headers = httputil.HTTPHeaders(request.headers)
        -    else:
        -        request = httpclient.HTTPRequest(url, connect_timeout=connect_timeout)
        -    request = cast(
        -        httpclient.HTTPRequest,
        -        httpclient._RequestProxy(request, httpclient.HTTPRequest._DEFAULTS),
        -    )
        -    conn = WebSocketClientConnection(
        -        request,
        -        on_message_callback=on_message_callback,
        -        compression_options=compression_options,
        -        ping_interval=ping_interval,
        -        ping_timeout=ping_timeout,
        -        max_message_size=max_message_size,
        -        subprotocols=subprotocols,
        -    )
        -    if callback is not None:
        -        IOLoop.current().add_future(conn.connect_future, callback)
        -    return conn.connect_future
        +"""Implementation of the WebSocket protocol.
        +
        +`WebSockets `_ allow for bidirectional
        +communication between the browser and server.
        +
        +WebSockets are supported in the current versions of all major browsers,
        +although older versions that do not support WebSockets are still in use
        +(refer to http://caniuse.com/websockets for details).
        +
        +This module implements the final version of the WebSocket protocol as
        +defined in `RFC 6455 `_.  Certain
        +browser versions (notably Safari 5.x) implemented an earlier draft of
        +the protocol (known as "draft 76") and are not compatible with this module.
        +
        +.. versionchanged:: 4.0
        +   Removed support for the draft 76 protocol version.
        +"""
        +
        +import abc
        +import asyncio
        +import base64
        +import hashlib
        +import os
        +import sys
        +import struct
        +import tornado.escape
        +import tornado.web
        +from urllib.parse import urlparse
        +import zlib
        +
        +from tornado.concurrent import Future, future_set_result_unless_cancelled
        +from tornado.escape import utf8, native_str, to_unicode
        +from tornado import gen, httpclient, httputil
        +from tornado.ioloop import IOLoop, PeriodicCallback
        +from tornado.iostream import StreamClosedError, IOStream
        +from tornado.log import gen_log, app_log
        +from tornado import simple_httpclient
        +from tornado.queues import Queue
        +from tornado.tcpclient import TCPClient
        +from tornado.util import _websocket_mask
        +
        +from typing import (
        +    TYPE_CHECKING,
        +    cast,
        +    Any,
        +    Optional,
        +    Dict,
        +    Union,
        +    List,
        +    Awaitable,
        +    Callable,
        +    Tuple,
        +    Type,
        +)
        +from types import TracebackType
        +
        +if TYPE_CHECKING:
        +    from typing_extensions import Protocol
        +
        +    # The zlib compressor types aren't actually exposed anywhere
        +    # publicly, so declare protocols for the portions we use.
        +    class _Compressor(Protocol):
        +        def compress(self, data: bytes) -> bytes:
        +            pass
        +
        +        def flush(self, mode: int) -> bytes:
        +            pass
        +
        +    class _Decompressor(Protocol):
        +        unconsumed_tail = b""  # type: bytes
        +
        +        def decompress(self, data: bytes, max_length: int) -> bytes:
        +            pass
        +
        +    class _WebSocketDelegate(Protocol):
        +        # The common base interface implemented by WebSocketHandler on
        +        # the server side and WebSocketClientConnection on the client
        +        # side.
        +        def on_ws_connection_close(
        +            self, close_code: int = None, close_reason: str = None
        +        ) -> None:
        +            pass
        +
        +        def on_message(self, message: Union[str, bytes]) -> Optional["Awaitable[None]"]:
        +            pass
        +
        +        def on_ping(self, data: bytes) -> None:
        +            pass
        +
        +        def on_pong(self, data: bytes) -> None:
        +            pass
        +
        +        def log_exception(
        +            self,
        +            typ: Optional[Type[BaseException]],
        +            value: Optional[BaseException],
        +            tb: Optional[TracebackType],
        +        ) -> None:
        +            pass
        +
        +
        +_default_max_message_size = 10 * 1024 * 1024
        +
        +
        +class WebSocketError(Exception):
        +    pass
        +
        +
        +class WebSocketClosedError(WebSocketError):
        +    """Raised by operations on a closed connection.
        +
        +    .. versionadded:: 3.2
        +    """
        +
        +    pass
        +
        +
        +class _DecompressTooLargeError(Exception):
        +    pass
        +
        +
        +class _WebSocketParams(object):
        +    def __init__(
        +        self,
        +        ping_interval: float = None,
        +        ping_timeout: float = None,
        +        max_message_size: int = _default_max_message_size,
        +        compression_options: Dict[str, Any] = None,
        +    ) -> None:
        +        self.ping_interval = ping_interval
        +        self.ping_timeout = ping_timeout
        +        self.max_message_size = max_message_size
        +        self.compression_options = compression_options
        +
        +
        +class WebSocketHandler(tornado.web.RequestHandler):
        +    """Subclass this class to create a basic WebSocket handler.
        +
        +    Override `on_message` to handle incoming messages, and use
        +    `write_message` to send messages to the client. You can also
        +    override `open` and `on_close` to handle opened and closed
        +    connections.
        +
        +    Custom upgrade response headers can be sent by overriding
        +    `~tornado.web.RequestHandler.set_default_headers` or
        +    `~tornado.web.RequestHandler.prepare`.
        +
        +    See http://dev.w3.org/html5/websockets/ for details on the
        +    JavaScript interface.  The protocol is specified at
        +    http://tools.ietf.org/html/rfc6455.
        +
        +    Here is an example WebSocket handler that echos back all received messages
        +    back to the client:
        +
        +    .. testcode::
        +
        +      class EchoWebSocket(tornado.websocket.WebSocketHandler):
        +          def open(self):
        +              print("WebSocket opened")
        +
        +          def on_message(self, message):
        +              self.write_message(u"You said: " + message)
        +
        +          def on_close(self):
        +              print("WebSocket closed")
        +
        +    .. testoutput::
        +       :hide:
        +
        +    WebSockets are not standard HTTP connections. The "handshake" is
        +    HTTP, but after the handshake, the protocol is
        +    message-based. Consequently, most of the Tornado HTTP facilities
        +    are not available in handlers of this type. The only communication
        +    methods available to you are `write_message()`, `ping()`, and
        +    `close()`. Likewise, your request handler class should implement
        +    `open()` method rather than ``get()`` or ``post()``.
        +
        +    If you map the handler above to ``/websocket`` in your application, you can
        +    invoke it in JavaScript with::
        +
        +      var ws = new WebSocket("ws://localhost:8888/websocket");
        +      ws.onopen = function() {
        +         ws.send("Hello, world");
        +      };
        +      ws.onmessage = function (evt) {
        +         alert(evt.data);
        +      };
        +
        +    This script pops up an alert box that says "You said: Hello, world".
        +
        +    Web browsers allow any site to open a websocket connection to any other,
        +    instead of using the same-origin policy that governs other network
        +    access from javascript.  This can be surprising and is a potential
        +    security hole, so since Tornado 4.0 `WebSocketHandler` requires
        +    applications that wish to receive cross-origin websockets to opt in
        +    by overriding the `~WebSocketHandler.check_origin` method (see that
        +    method's docs for details).  Failure to do so is the most likely
        +    cause of 403 errors when making a websocket connection.
        +
        +    When using a secure websocket connection (``wss://``) with a self-signed
        +    certificate, the connection from a browser may fail because it wants
        +    to show the "accept this certificate" dialog but has nowhere to show it.
        +    You must first visit a regular HTML page using the same certificate
        +    to accept it before the websocket connection will succeed.
        +
        +    If the application setting ``websocket_ping_interval`` has a non-zero
        +    value, a ping will be sent periodically, and the connection will be
        +    closed if a response is not received before the ``websocket_ping_timeout``.
        +
        +    Messages larger than the ``websocket_max_message_size`` application setting
        +    (default 10MiB) will not be accepted.
        +
        +    .. versionchanged:: 4.5
        +       Added ``websocket_ping_interval``, ``websocket_ping_timeout``, and
        +       ``websocket_max_message_size``.
        +    """
        +
        +    def __init__(
        +        self,
        +        application: tornado.web.Application,
        +        request: httputil.HTTPServerRequest,
        +        **kwargs: Any
        +    ) -> None:
        +        super(WebSocketHandler, self).__init__(application, request, **kwargs)
        +        self.ws_connection = None  # type: Optional[WebSocketProtocol]
        +        self.close_code = None  # type: Optional[int]
        +        self.close_reason = None  # type: Optional[str]
        +        self.stream = None  # type: Optional[IOStream]
        +        self._on_close_called = False
        +
        +    async def get(self, *args: Any, **kwargs: Any) -> None:
        +        self.open_args = args
        +        self.open_kwargs = kwargs
        +
        +        # Upgrade header should be present and should be equal to WebSocket
        +        if self.request.headers.get("Upgrade", "").lower() != "websocket":
        +            self.set_status(400)
        +            log_msg = 'Can "Upgrade" only to "WebSocket".'
        +            self.finish(log_msg)
        +            gen_log.debug(log_msg)
        +            return
        +
        +        # Connection header should be upgrade.
        +        # Some proxy servers/load balancers
        +        # might mess with it.
        +        headers = self.request.headers
        +        connection = map(
        +            lambda s: s.strip().lower(), headers.get("Connection", "").split(",")
        +        )
        +        if "upgrade" not in connection:
        +            self.set_status(400)
        +            log_msg = '"Connection" must be "Upgrade".'
        +            self.finish(log_msg)
        +            gen_log.debug(log_msg)
        +            return
        +
        +        # Handle WebSocket Origin naming convention differences
        +        # The difference between version 8 and 13 is that in 8 the
        +        # client sends a "Sec-Websocket-Origin" header and in 13 it's
        +        # simply "Origin".
        +        if "Origin" in self.request.headers:
        +            origin = self.request.headers.get("Origin")
        +        else:
        +            origin = self.request.headers.get("Sec-Websocket-Origin", None)
        +
        +        # If there was an origin header, check to make sure it matches
        +        # according to check_origin. When the origin is None, we assume it
        +        # did not come from a browser and that it can be passed on.
        +        if origin is not None and not self.check_origin(origin):
        +            self.set_status(403)
        +            log_msg = "Cross origin websockets not allowed"
        +            self.finish(log_msg)
        +            gen_log.debug(log_msg)
        +            return
        +
        +        self.ws_connection = self.get_websocket_protocol()
        +        if self.ws_connection:
        +            await self.ws_connection.accept_connection(self)
        +        else:
        +            self.set_status(426, "Upgrade Required")
        +            self.set_header("Sec-WebSocket-Version", "7, 8, 13")
        +
        +    stream = None
        +
        +    @property
        +    def ping_interval(self) -> Optional[float]:
        +        """The interval for websocket keep-alive pings.
        +
        +        Set websocket_ping_interval = 0 to disable pings.
        +        """
        +        return self.settings.get("websocket_ping_interval", None)
        +
        +    @property
        +    def ping_timeout(self) -> Optional[float]:
        +        """If no ping is received in this many seconds,
        +        close the websocket connection (VPNs, etc. can fail to cleanly close ws connections).
        +        Default is max of 3 pings or 30 seconds.
        +        """
        +        return self.settings.get("websocket_ping_timeout", None)
        +
        +    @property
        +    def max_message_size(self) -> int:
        +        """Maximum allowed message size.
        +
        +        If the remote peer sends a message larger than this, the connection
        +        will be closed.
        +
        +        Default is 10MiB.
        +        """
        +        return self.settings.get(
        +            "websocket_max_message_size", _default_max_message_size
        +        )
        +
        +    def write_message(
        +        self, message: Union[bytes, str, Dict[str, Any]], binary: bool = False
        +    ) -> "Future[None]":
        +        """Sends the given message to the client of this Web Socket.
        +
        +        The message may be either a string or a dict (which will be
        +        encoded as json).  If the ``binary`` argument is false, the
        +        message will be sent as utf8; in binary mode any byte string
        +        is allowed.
        +
        +        If the connection is already closed, raises `WebSocketClosedError`.
        +        Returns a `.Future` which can be used for flow control.
        +
        +        .. versionchanged:: 3.2
        +           `WebSocketClosedError` was added (previously a closed connection
        +           would raise an `AttributeError`)
        +
        +        .. versionchanged:: 4.3
        +           Returns a `.Future` which can be used for flow control.
        +
        +        .. versionchanged:: 5.0
        +           Consistently raises `WebSocketClosedError`. Previously could
        +           sometimes raise `.StreamClosedError`.
        +        """
        +        if self.ws_connection is None or self.ws_connection.is_closing():
        +            raise WebSocketClosedError()
        +        if isinstance(message, dict):
        +            message = tornado.escape.json_encode(message)
        +        return self.ws_connection.write_message(message, binary=binary)
        +
        +    def select_subprotocol(self, subprotocols: List[str]) -> Optional[str]:
        +        """Override to implement subprotocol negotiation.
        +
        +        ``subprotocols`` is a list of strings identifying the
        +        subprotocols proposed by the client.  This method may be
        +        overridden to return one of those strings to select it, or
        +        ``None`` to not select a subprotocol.
        +
        +        Failure to select a subprotocol does not automatically abort
        +        the connection, although clients may close the connection if
        +        none of their proposed subprotocols was selected.
        +
        +        The list may be empty, in which case this method must return
        +        None. This method is always called exactly once even if no
        +        subprotocols were proposed so that the handler can be advised
        +        of this fact.
        +
        +        .. versionchanged:: 5.1
        +
        +           Previously, this method was called with a list containing
        +           an empty string instead of an empty list if no subprotocols
        +           were proposed by the client.
        +        """
        +        return None
        +
        +    @property
        +    def selected_subprotocol(self) -> Optional[str]:
        +        """The subprotocol returned by `select_subprotocol`.
        +
        +        .. versionadded:: 5.1
        +        """
        +        assert self.ws_connection is not None
        +        return self.ws_connection.selected_subprotocol
        +
        +    def get_compression_options(self) -> Optional[Dict[str, Any]]:
        +        """Override to return compression options for the connection.
        +
        +        If this method returns None (the default), compression will
        +        be disabled.  If it returns a dict (even an empty one), it
        +        will be enabled.  The contents of the dict may be used to
        +        control the following compression options:
        +
        +        ``compression_level`` specifies the compression level.
        +
        +        ``mem_level`` specifies the amount of memory used for the internal compression state.
        +
        +         These parameters are documented in details here:
        +         https://docs.python.org/3.6/library/zlib.html#zlib.compressobj
        +
        +        .. versionadded:: 4.1
        +
        +        .. versionchanged:: 4.5
        +
        +           Added ``compression_level`` and ``mem_level``.
        +        """
        +        # TODO: Add wbits option.
        +        return None
        +
        +    def open(self, *args: str, **kwargs: str) -> Optional[Awaitable[None]]:
        +        """Invoked when a new WebSocket is opened.
        +
        +        The arguments to `open` are extracted from the `tornado.web.URLSpec`
        +        regular expression, just like the arguments to
        +        `tornado.web.RequestHandler.get`.
        +
        +        `open` may be a coroutine. `on_message` will not be called until
        +        `open` has returned.
        +
        +        .. versionchanged:: 5.1
        +
        +           ``open`` may be a coroutine.
        +        """
        +        pass
        +
        +    def on_message(self, message: Union[str, bytes]) -> Optional[Awaitable[None]]:
        +        """Handle incoming messages on the WebSocket
        +
        +        This method must be overridden.
        +
        +        .. versionchanged:: 4.5
        +
        +           ``on_message`` can be a coroutine.
        +        """
        +        raise NotImplementedError
        +
        +    def ping(self, data: Union[str, bytes] = b"") -> None:
        +        """Send ping frame to the remote end.
        +
        +        The data argument allows a small amount of data (up to 125
        +        bytes) to be sent as a part of the ping message. Note that not
        +        all websocket implementations expose this data to
        +        applications.
        +
        +        Consider using the ``websocket_ping_interval`` application
        +        setting instead of sending pings manually.
        +
        +        .. versionchanged:: 5.1
        +
        +           The data argument is now optional.
        +
        +        """
        +        data = utf8(data)
        +        if self.ws_connection is None or self.ws_connection.is_closing():
        +            raise WebSocketClosedError()
        +        self.ws_connection.write_ping(data)
        +
        +    def on_pong(self, data: bytes) -> None:
        +        """Invoked when the response to a ping frame is received."""
        +        pass
        +
        +    def on_ping(self, data: bytes) -> None:
        +        """Invoked when the a ping frame is received."""
        +        pass
        +
        +    def on_close(self) -> None:
        +        """Invoked when the WebSocket is closed.
        +
        +        If the connection was closed cleanly and a status code or reason
        +        phrase was supplied, these values will be available as the attributes
        +        ``self.close_code`` and ``self.close_reason``.
        +
        +        .. versionchanged:: 4.0
        +
        +           Added ``close_code`` and ``close_reason`` attributes.
        +        """
        +        pass
        +
        +    def close(self, code: int = None, reason: str = None) -> None:
        +        """Closes this Web Socket.
        +
        +        Once the close handshake is successful the socket will be closed.
        +
        +        ``code`` may be a numeric status code, taken from the values
        +        defined in `RFC 6455 section 7.4.1
        +        `_.
        +        ``reason`` may be a textual message about why the connection is
        +        closing.  These values are made available to the client, but are
        +        not otherwise interpreted by the websocket protocol.
        +
        +        .. versionchanged:: 4.0
        +
        +           Added the ``code`` and ``reason`` arguments.
        +        """
        +        if self.ws_connection:
        +            self.ws_connection.close(code, reason)
        +            self.ws_connection = None
        +
        +    def check_origin(self, origin: str) -> bool:
        +        """Override to enable support for allowing alternate origins.
        +
        +        The ``origin`` argument is the value of the ``Origin`` HTTP
        +        header, the url responsible for initiating this request.  This
        +        method is not called for clients that do not send this header;
        +        such requests are always allowed (because all browsers that
        +        implement WebSockets support this header, and non-browser
        +        clients do not have the same cross-site security concerns).
        +
        +        Should return ``True`` to accept the request or ``False`` to
        +        reject it. By default, rejects all requests with an origin on
        +        a host other than this one.
        +
        +        This is a security protection against cross site scripting attacks on
        +        browsers, since WebSockets are allowed to bypass the usual same-origin
        +        policies and don't use CORS headers.
        +
        +        .. warning::
        +
        +           This is an important security measure; don't disable it
        +           without understanding the security implications. In
        +           particular, if your authentication is cookie-based, you
        +           must either restrict the origins allowed by
        +           ``check_origin()`` or implement your own XSRF-like
        +           protection for websocket connections. See `these
        +           `_
        +           `articles
        +           `_
        +           for more.
        +
        +        To accept all cross-origin traffic (which was the default prior to
        +        Tornado 4.0), simply override this method to always return ``True``::
        +
        +            def check_origin(self, origin):
        +                return True
        +
        +        To allow connections from any subdomain of your site, you might
        +        do something like::
        +
        +            def check_origin(self, origin):
        +                parsed_origin = urllib.parse.urlparse(origin)
        +                return parsed_origin.netloc.endswith(".mydomain.com")
        +
        +        .. versionadded:: 4.0
        +
        +        """
        +        parsed_origin = urlparse(origin)
        +        origin = parsed_origin.netloc
        +        origin = origin.lower()
        +
        +        host = self.request.headers.get("Host")
        +
        +        # Check to see that origin matches host directly, including ports
        +        return origin == host
        +
        +    def set_nodelay(self, value: bool) -> None:
        +        """Set the no-delay flag for this stream.
        +
        +        By default, small messages may be delayed and/or combined to minimize
        +        the number of packets sent.  This can sometimes cause 200-500ms delays
        +        due to the interaction between Nagle's algorithm and TCP delayed
        +        ACKs.  To reduce this delay (at the expense of possibly increasing
        +        bandwidth usage), call ``self.set_nodelay(True)`` once the websocket
        +        connection is established.
        +
        +        See `.BaseIOStream.set_nodelay` for additional details.
        +
        +        .. versionadded:: 3.1
        +        """
        +        assert self.ws_connection is not None
        +        self.ws_connection.set_nodelay(value)
        +
        +    def on_connection_close(self) -> None:
        +        if self.ws_connection:
        +            self.ws_connection.on_connection_close()
        +            self.ws_connection = None
        +        if not self._on_close_called:
        +            self._on_close_called = True
        +            self.on_close()
        +            self._break_cycles()
        +
        +    def on_ws_connection_close(
        +        self, close_code: int = None, close_reason: str = None
        +    ) -> None:
        +        self.close_code = close_code
        +        self.close_reason = close_reason
        +        self.on_connection_close()
        +
        +    def _break_cycles(self) -> None:
        +        # WebSocketHandlers call finish() early, but we don't want to
        +        # break up reference cycles (which makes it impossible to call
        +        # self.render_string) until after we've really closed the
        +        # connection (if it was established in the first place,
        +        # indicated by status code 101).
        +        if self.get_status() != 101 or self._on_close_called:
        +            super(WebSocketHandler, self)._break_cycles()
        +
        +    def send_error(self, *args: Any, **kwargs: Any) -> None:
        +        if self.stream is None:
        +            super(WebSocketHandler, self).send_error(*args, **kwargs)
        +        else:
        +            # If we get an uncaught exception during the handshake,
        +            # we have no choice but to abruptly close the connection.
        +            # TODO: for uncaught exceptions after the handshake,
        +            # we can close the connection more gracefully.
        +            self.stream.close()
        +
        +    def get_websocket_protocol(self) -> Optional["WebSocketProtocol"]:
        +        websocket_version = self.request.headers.get("Sec-WebSocket-Version")
        +        if websocket_version in ("7", "8", "13"):
        +            params = _WebSocketParams(
        +                ping_interval=self.ping_interval,
        +                ping_timeout=self.ping_timeout,
        +                max_message_size=self.max_message_size,
        +                compression_options=self.get_compression_options(),
        +            )
        +            return WebSocketProtocol13(self, False, params)
        +        return None
        +
        +    def _detach_stream(self) -> IOStream:
        +        # disable non-WS methods
        +        for method in [
        +            "write",
        +            "redirect",
        +            "set_header",
        +            "set_cookie",
        +            "set_status",
        +            "flush",
        +            "finish",
        +        ]:
        +            setattr(self, method, _raise_not_supported_for_websockets)
        +        return self.detach()
        +
        +
        +def _raise_not_supported_for_websockets(*args: Any, **kwargs: Any) -> None:
        +    raise RuntimeError("Method not supported for Web Sockets")
        +
        +
        +class WebSocketProtocol(abc.ABC):
        +    """Base class for WebSocket protocol versions.
        +    """
        +
        +    def __init__(self, handler: "_WebSocketDelegate") -> None:
        +        self.handler = handler
        +        self.stream = None  # type: Optional[IOStream]
        +        self.client_terminated = False
        +        self.server_terminated = False
        +
        +    def _run_callback(
        +        self, callback: Callable, *args: Any, **kwargs: Any
        +    ) -> "Optional[Future[Any]]":
        +        """Runs the given callback with exception handling.
        +
        +        If the callback is a coroutine, returns its Future. On error, aborts the
        +        websocket connection and returns None.
        +        """
        +        try:
        +            result = callback(*args, **kwargs)
        +        except Exception:
        +            self.handler.log_exception(*sys.exc_info())
        +            self._abort()
        +            return None
        +        else:
        +            if result is not None:
        +                result = gen.convert_yielded(result)
        +                assert self.stream is not None
        +                self.stream.io_loop.add_future(result, lambda f: f.result())
        +            return result
        +
        +    def on_connection_close(self) -> None:
        +        self._abort()
        +
        +    def _abort(self) -> None:
        +        """Instantly aborts the WebSocket connection by closing the socket"""
        +        self.client_terminated = True
        +        self.server_terminated = True
        +        if self.stream is not None:
        +            self.stream.close()  # forcibly tear down the connection
        +        self.close()  # let the subclass cleanup
        +
        +    @abc.abstractmethod
        +    def close(self, code: int = None, reason: str = None) -> None:
        +        raise NotImplementedError()
        +
        +    @abc.abstractmethod
        +    def is_closing(self) -> bool:
        +        raise NotImplementedError()
        +
        +    @abc.abstractmethod
        +    async def accept_connection(self, handler: WebSocketHandler) -> None:
        +        raise NotImplementedError()
        +
        +    @abc.abstractmethod
        +    def write_message(
        +        self, message: Union[str, bytes], binary: bool = False
        +    ) -> "Future[None]":
        +        raise NotImplementedError()
        +
        +    @property
        +    @abc.abstractmethod
        +    def selected_subprotocol(self) -> Optional[str]:
        +        raise NotImplementedError()
        +
        +    @abc.abstractmethod
        +    def write_ping(self, data: bytes) -> None:
        +        raise NotImplementedError()
        +
        +    # The entry points below are used by WebSocketClientConnection,
        +    # which was introduced after we only supported a single version of
        +    # WebSocketProtocol. The WebSocketProtocol/WebSocketProtocol13
        +    # boundary is currently pretty ad-hoc.
        +    @abc.abstractmethod
        +    def _process_server_headers(
        +        self, key: Union[str, bytes], headers: httputil.HTTPHeaders
        +    ) -> None:
        +        raise NotImplementedError()
        +
        +    @abc.abstractmethod
        +    def start_pinging(self) -> None:
        +        raise NotImplementedError()
        +
        +    @abc.abstractmethod
        +    async def _receive_frame_loop(self) -> None:
        +        raise NotImplementedError()
        +
        +    @abc.abstractmethod
        +    def set_nodelay(self, x: bool) -> None:
        +        raise NotImplementedError()
        +
        +
        +class _PerMessageDeflateCompressor(object):
        +    def __init__(
        +        self,
        +        persistent: bool,
        +        max_wbits: Optional[int],
        +        compression_options: Dict[str, Any] = None,
        +    ) -> None:
        +        if max_wbits is None:
        +            max_wbits = zlib.MAX_WBITS
        +        # There is no symbolic constant for the minimum wbits value.
        +        if not (8 <= max_wbits <= zlib.MAX_WBITS):
        +            raise ValueError(
        +                "Invalid max_wbits value %r; allowed range 8-%d",
        +                max_wbits,
        +                zlib.MAX_WBITS,
        +            )
        +        self._max_wbits = max_wbits
        +
        +        if (
        +            compression_options is None
        +            or "compression_level" not in compression_options
        +        ):
        +            self._compression_level = tornado.web.GZipContentEncoding.GZIP_LEVEL
        +        else:
        +            self._compression_level = compression_options["compression_level"]
        +
        +        if compression_options is None or "mem_level" not in compression_options:
        +            self._mem_level = 8
        +        else:
        +            self._mem_level = compression_options["mem_level"]
        +
        +        if persistent:
        +            self._compressor = self._create_compressor()  # type: Optional[_Compressor]
        +        else:
        +            self._compressor = None
        +
        +    def _create_compressor(self) -> "_Compressor":
        +        return zlib.compressobj(
        +            self._compression_level, zlib.DEFLATED, -self._max_wbits, self._mem_level
        +        )
        +
        +    def compress(self, data: bytes) -> bytes:
        +        compressor = self._compressor or self._create_compressor()
        +        data = compressor.compress(data) + compressor.flush(zlib.Z_SYNC_FLUSH)
        +        assert data.endswith(b"\x00\x00\xff\xff")
        +        return data[:-4]
        +
        +
        +class _PerMessageDeflateDecompressor(object):
        +    def __init__(
        +        self,
        +        persistent: bool,
        +        max_wbits: Optional[int],
        +        max_message_size: int,
        +        compression_options: Dict[str, Any] = None,
        +    ) -> None:
        +        self._max_message_size = max_message_size
        +        if max_wbits is None:
        +            max_wbits = zlib.MAX_WBITS
        +        if not (8 <= max_wbits <= zlib.MAX_WBITS):
        +            raise ValueError(
        +                "Invalid max_wbits value %r; allowed range 8-%d",
        +                max_wbits,
        +                zlib.MAX_WBITS,
        +            )
        +        self._max_wbits = max_wbits
        +        if persistent:
        +            self._decompressor = (
        +                self._create_decompressor()
        +            )  # type: Optional[_Decompressor]
        +        else:
        +            self._decompressor = None
        +
        +    def _create_decompressor(self) -> "_Decompressor":
        +        return zlib.decompressobj(-self._max_wbits)
        +
        +    def decompress(self, data: bytes) -> bytes:
        +        decompressor = self._decompressor or self._create_decompressor()
        +        result = decompressor.decompress(
        +            data + b"\x00\x00\xff\xff", self._max_message_size
        +        )
        +        if decompressor.unconsumed_tail:
        +            raise _DecompressTooLargeError()
        +        return result
        +
        +
        +class WebSocketProtocol13(WebSocketProtocol):
        +    """Implementation of the WebSocket protocol from RFC 6455.
        +
        +    This class supports versions 7 and 8 of the protocol in addition to the
        +    final version 13.
        +    """
        +
        +    # Bit masks for the first byte of a frame.
        +    FIN = 0x80
        +    RSV1 = 0x40
        +    RSV2 = 0x20
        +    RSV3 = 0x10
        +    RSV_MASK = RSV1 | RSV2 | RSV3
        +    OPCODE_MASK = 0x0F
        +
        +    stream = None  # type: IOStream
        +
        +    def __init__(
        +        self,
        +        handler: "_WebSocketDelegate",
        +        mask_outgoing: bool,
        +        params: _WebSocketParams,
        +    ) -> None:
        +        WebSocketProtocol.__init__(self, handler)
        +        self.mask_outgoing = mask_outgoing
        +        self.params = params
        +        self._final_frame = False
        +        self._frame_opcode = None
        +        self._masked_frame = None
        +        self._frame_mask = None  # type: Optional[bytes]
        +        self._frame_length = None
        +        self._fragmented_message_buffer = None  # type: Optional[bytes]
        +        self._fragmented_message_opcode = None
        +        self._waiting = None  # type: object
        +        self._compression_options = params.compression_options
        +        self._decompressor = None  # type: Optional[_PerMessageDeflateDecompressor]
        +        self._compressor = None  # type: Optional[_PerMessageDeflateCompressor]
        +        self._frame_compressed = None  # type: Optional[bool]
        +        # The total uncompressed size of all messages received or sent.
        +        # Unicode messages are encoded to utf8.
        +        # Only for testing; subject to change.
        +        self._message_bytes_in = 0
        +        self._message_bytes_out = 0
        +        # The total size of all packets received or sent.  Includes
        +        # the effect of compression, frame overhead, and control frames.
        +        self._wire_bytes_in = 0
        +        self._wire_bytes_out = 0
        +        self.ping_callback = None  # type: Optional[PeriodicCallback]
        +        self.last_ping = 0.0
        +        self.last_pong = 0.0
        +        self.close_code = None  # type: Optional[int]
        +        self.close_reason = None  # type: Optional[str]
        +
        +    # Use a property for this to satisfy the abc.
        +    @property
        +    def selected_subprotocol(self) -> Optional[str]:
        +        return self._selected_subprotocol
        +
        +    @selected_subprotocol.setter
        +    def selected_subprotocol(self, value: Optional[str]) -> None:
        +        self._selected_subprotocol = value
        +
        +    async def accept_connection(self, handler: WebSocketHandler) -> None:
        +        try:
        +            self._handle_websocket_headers(handler)
        +        except ValueError:
        +            handler.set_status(400)
        +            log_msg = "Missing/Invalid WebSocket headers"
        +            handler.finish(log_msg)
        +            gen_log.debug(log_msg)
        +            return
        +
        +        try:
        +            await self._accept_connection(handler)
        +        except asyncio.CancelledError:
        +            self._abort()
        +            return
        +        except ValueError:
        +            gen_log.debug("Malformed WebSocket request received", exc_info=True)
        +            self._abort()
        +            return
        +
        +    def _handle_websocket_headers(self, handler: WebSocketHandler) -> None:
        +        """Verifies all invariant- and required headers
        +
        +        If a header is missing or have an incorrect value ValueError will be
        +        raised
        +        """
        +        fields = ("Host", "Sec-Websocket-Key", "Sec-Websocket-Version")
        +        if not all(map(lambda f: handler.request.headers.get(f), fields)):
        +            raise ValueError("Missing/Invalid WebSocket headers")
        +
        +    @staticmethod
        +    def compute_accept_value(key: Union[str, bytes]) -> str:
        +        """Computes the value for the Sec-WebSocket-Accept header,
        +        given the value for Sec-WebSocket-Key.
        +        """
        +        sha1 = hashlib.sha1()
        +        sha1.update(utf8(key))
        +        sha1.update(b"258EAFA5-E914-47DA-95CA-C5AB0DC85B11")  # Magic value
        +        return native_str(base64.b64encode(sha1.digest()))
        +
        +    def _challenge_response(self, handler: WebSocketHandler) -> str:
        +        return WebSocketProtocol13.compute_accept_value(
        +            cast(str, handler.request.headers.get("Sec-Websocket-Key"))
        +        )
        +
        +    async def _accept_connection(self, handler: WebSocketHandler) -> None:
        +        subprotocol_header = handler.request.headers.get("Sec-WebSocket-Protocol")
        +        if subprotocol_header:
        +            subprotocols = [s.strip() for s in subprotocol_header.split(",")]
        +        else:
        +            subprotocols = []
        +        self.selected_subprotocol = handler.select_subprotocol(subprotocols)
        +        if self.selected_subprotocol:
        +            assert self.selected_subprotocol in subprotocols
        +            handler.set_header("Sec-WebSocket-Protocol", self.selected_subprotocol)
        +
        +        extensions = self._parse_extensions_header(handler.request.headers)
        +        for ext in extensions:
        +            if ext[0] == "permessage-deflate" and self._compression_options is not None:
        +                # TODO: negotiate parameters if compression_options
        +                # specifies limits.
        +                self._create_compressors("server", ext[1], self._compression_options)
        +                if (
        +                    "client_max_window_bits" in ext[1]
        +                    and ext[1]["client_max_window_bits"] is None
        +                ):
        +                    # Don't echo an offered client_max_window_bits
        +                    # parameter with no value.
        +                    del ext[1]["client_max_window_bits"]
        +                handler.set_header(
        +                    "Sec-WebSocket-Extensions",
        +                    httputil._encode_header("permessage-deflate", ext[1]),
        +                )
        +                break
        +
        +        handler.clear_header("Content-Type")
        +        handler.set_status(101)
        +        handler.set_header("Upgrade", "websocket")
        +        handler.set_header("Connection", "Upgrade")
        +        handler.set_header("Sec-WebSocket-Accept", self._challenge_response(handler))
        +        handler.finish()
        +
        +        self.stream = handler._detach_stream()
        +
        +        self.start_pinging()
        +        try:
        +            open_result = handler.open(*handler.open_args, **handler.open_kwargs)
        +            if open_result is not None:
        +                await open_result
        +        except Exception:
        +            handler.log_exception(*sys.exc_info())
        +            self._abort()
        +            return
        +
        +        await self._receive_frame_loop()
        +
        +    def _parse_extensions_header(
        +        self, headers: httputil.HTTPHeaders
        +    ) -> List[Tuple[str, Dict[str, str]]]:
        +        extensions = headers.get("Sec-WebSocket-Extensions", "")
        +        if extensions:
        +            return [httputil._parse_header(e.strip()) for e in extensions.split(",")]
        +        return []
        +
        +    def _process_server_headers(
        +        self, key: Union[str, bytes], headers: httputil.HTTPHeaders
        +    ) -> None:
        +        """Process the headers sent by the server to this client connection.
        +
        +        'key' is the websocket handshake challenge/response key.
        +        """
        +        assert headers["Upgrade"].lower() == "websocket"
        +        assert headers["Connection"].lower() == "upgrade"
        +        accept = self.compute_accept_value(key)
        +        assert headers["Sec-Websocket-Accept"] == accept
        +
        +        extensions = self._parse_extensions_header(headers)
        +        for ext in extensions:
        +            if ext[0] == "permessage-deflate" and self._compression_options is not None:
        +                self._create_compressors("client", ext[1])
        +            else:
        +                raise ValueError("unsupported extension %r", ext)
        +
        +        self.selected_subprotocol = headers.get("Sec-WebSocket-Protocol", None)
        +
        +    def _get_compressor_options(
        +        self,
        +        side: str,
        +        agreed_parameters: Dict[str, Any],
        +        compression_options: Dict[str, Any] = None,
        +    ) -> Dict[str, Any]:
        +        """Converts a websocket agreed_parameters set to keyword arguments
        +        for our compressor objects.
        +        """
        +        options = dict(
        +            persistent=(side + "_no_context_takeover") not in agreed_parameters
        +        )  # type: Dict[str, Any]
        +        wbits_header = agreed_parameters.get(side + "_max_window_bits", None)
        +        if wbits_header is None:
        +            options["max_wbits"] = zlib.MAX_WBITS
        +        else:
        +            options["max_wbits"] = int(wbits_header)
        +        options["compression_options"] = compression_options
        +        return options
        +
        +    def _create_compressors(
        +        self,
        +        side: str,
        +        agreed_parameters: Dict[str, Any],
        +        compression_options: Dict[str, Any] = None,
        +    ) -> None:
        +        # TODO: handle invalid parameters gracefully
        +        allowed_keys = set(
        +            [
        +                "server_no_context_takeover",
        +                "client_no_context_takeover",
        +                "server_max_window_bits",
        +                "client_max_window_bits",
        +            ]
        +        )
        +        for key in agreed_parameters:
        +            if key not in allowed_keys:
        +                raise ValueError("unsupported compression parameter %r" % key)
        +        other_side = "client" if (side == "server") else "server"
        +        self._compressor = _PerMessageDeflateCompressor(
        +            **self._get_compressor_options(side, agreed_parameters, compression_options)
        +        )
        +        self._decompressor = _PerMessageDeflateDecompressor(
        +            max_message_size=self.params.max_message_size,
        +            **self._get_compressor_options(
        +                other_side, agreed_parameters, compression_options
        +            )
        +        )
        +
        +    def _write_frame(
        +        self, fin: bool, opcode: int, data: bytes, flags: int = 0
        +    ) -> "Future[None]":
        +        data_len = len(data)
        +        if opcode & 0x8:
        +            # All control frames MUST have a payload length of 125
        +            # bytes or less and MUST NOT be fragmented.
        +            if not fin:
        +                raise ValueError("control frames may not be fragmented")
        +            if data_len > 125:
        +                raise ValueError("control frame payloads may not exceed 125 bytes")
        +        if fin:
        +            finbit = self.FIN
        +        else:
        +            finbit = 0
        +        frame = struct.pack("B", finbit | opcode | flags)
        +        if self.mask_outgoing:
        +            mask_bit = 0x80
        +        else:
        +            mask_bit = 0
        +        if data_len < 126:
        +            frame += struct.pack("B", data_len | mask_bit)
        +        elif data_len <= 0xFFFF:
        +            frame += struct.pack("!BH", 126 | mask_bit, data_len)
        +        else:
        +            frame += struct.pack("!BQ", 127 | mask_bit, data_len)
        +        if self.mask_outgoing:
        +            mask = os.urandom(4)
        +            data = mask + _websocket_mask(mask, data)
        +        frame += data
        +        self._wire_bytes_out += len(frame)
        +        return self.stream.write(frame)
        +
        +    def write_message(
        +        self, message: Union[str, bytes], binary: bool = False
        +    ) -> "Future[None]":
        +        """Sends the given message to the client of this Web Socket."""
        +        if binary:
        +            opcode = 0x2
        +        else:
        +            opcode = 0x1
        +        message = tornado.escape.utf8(message)
        +        assert isinstance(message, bytes)
        +        self._message_bytes_out += len(message)
        +        flags = 0
        +        if self._compressor:
        +            message = self._compressor.compress(message)
        +            flags |= self.RSV1
        +        # For historical reasons, write methods in Tornado operate in a semi-synchronous
        +        # mode in which awaiting the Future they return is optional (But errors can
        +        # still be raised). This requires us to go through an awkward dance here
        +        # to transform the errors that may be returned while presenting the same
        +        # semi-synchronous interface.
        +        try:
        +            fut = self._write_frame(True, opcode, message, flags=flags)
        +        except StreamClosedError:
        +            raise WebSocketClosedError()
        +
        +        async def wrapper() -> None:
        +            try:
        +                await fut
        +            except StreamClosedError:
        +                raise WebSocketClosedError()
        +
        +        return asyncio.ensure_future(wrapper())
        +
        +    def write_ping(self, data: bytes) -> None:
        +        """Send ping frame."""
        +        assert isinstance(data, bytes)
        +        self._write_frame(True, 0x9, data)
        +
        +    async def _receive_frame_loop(self) -> None:
        +        try:
        +            while not self.client_terminated:
        +                await self._receive_frame()
        +        except StreamClosedError:
        +            self._abort()
        +        self.handler.on_ws_connection_close(self.close_code, self.close_reason)
        +
        +    async def _read_bytes(self, n: int) -> bytes:
        +        data = await self.stream.read_bytes(n)
        +        self._wire_bytes_in += n
        +        return data
        +
        +    async def _receive_frame(self) -> None:
        +        # Read the frame header.
        +        data = await self._read_bytes(2)
        +        header, mask_payloadlen = struct.unpack("BB", data)
        +        is_final_frame = header & self.FIN
        +        reserved_bits = header & self.RSV_MASK
        +        opcode = header & self.OPCODE_MASK
        +        opcode_is_control = opcode & 0x8
        +        if self._decompressor is not None and opcode != 0:
        +            # Compression flag is present in the first frame's header,
        +            # but we can't decompress until we have all the frames of
        +            # the message.
        +            self._frame_compressed = bool(reserved_bits & self.RSV1)
        +            reserved_bits &= ~self.RSV1
        +        if reserved_bits:
        +            # client is using as-yet-undefined extensions; abort
        +            self._abort()
        +            return
        +        is_masked = bool(mask_payloadlen & 0x80)
        +        payloadlen = mask_payloadlen & 0x7F
        +
        +        # Parse and validate the length.
        +        if opcode_is_control and payloadlen >= 126:
        +            # control frames must have payload < 126
        +            self._abort()
        +            return
        +        if payloadlen < 126:
        +            self._frame_length = payloadlen
        +        elif payloadlen == 126:
        +            data = await self._read_bytes(2)
        +            payloadlen = struct.unpack("!H", data)[0]
        +        elif payloadlen == 127:
        +            data = await self._read_bytes(8)
        +            payloadlen = struct.unpack("!Q", data)[0]
        +        new_len = payloadlen
        +        if self._fragmented_message_buffer is not None:
        +            new_len += len(self._fragmented_message_buffer)
        +        if new_len > self.params.max_message_size:
        +            self.close(1009, "message too big")
        +            self._abort()
        +            return
        +
        +        # Read the payload, unmasking if necessary.
        +        if is_masked:
        +            self._frame_mask = await self._read_bytes(4)
        +        data = await self._read_bytes(payloadlen)
        +        if is_masked:
        +            assert self._frame_mask is not None
        +            data = _websocket_mask(self._frame_mask, data)
        +
        +        # Decide what to do with this frame.
        +        if opcode_is_control:
        +            # control frames may be interleaved with a series of fragmented
        +            # data frames, so control frames must not interact with
        +            # self._fragmented_*
        +            if not is_final_frame:
        +                # control frames must not be fragmented
        +                self._abort()
        +                return
        +        elif opcode == 0:  # continuation frame
        +            if self._fragmented_message_buffer is None:
        +                # nothing to continue
        +                self._abort()
        +                return
        +            self._fragmented_message_buffer += data
        +            if is_final_frame:
        +                opcode = self._fragmented_message_opcode
        +                data = self._fragmented_message_buffer
        +                self._fragmented_message_buffer = None
        +        else:  # start of new data message
        +            if self._fragmented_message_buffer is not None:
        +                # can't start new message until the old one is finished
        +                self._abort()
        +                return
        +            if not is_final_frame:
        +                self._fragmented_message_opcode = opcode
        +                self._fragmented_message_buffer = data
        +
        +        if is_final_frame:
        +            handled_future = self._handle_message(opcode, data)
        +            if handled_future is not None:
        +                await handled_future
        +
        +    def _handle_message(self, opcode: int, data: bytes) -> "Optional[Future[None]]":
        +        """Execute on_message, returning its Future if it is a coroutine."""
        +        if self.client_terminated:
        +            return None
        +
        +        if self._frame_compressed:
        +            assert self._decompressor is not None
        +            try:
        +                data = self._decompressor.decompress(data)
        +            except _DecompressTooLargeError:
        +                self.close(1009, "message too big after decompression")
        +                self._abort()
        +                return None
        +
        +        if opcode == 0x1:
        +            # UTF-8 data
        +            self._message_bytes_in += len(data)
        +            try:
        +                decoded = data.decode("utf-8")
        +            except UnicodeDecodeError:
        +                self._abort()
        +                return None
        +            return self._run_callback(self.handler.on_message, decoded)
        +        elif opcode == 0x2:
        +            # Binary data
        +            self._message_bytes_in += len(data)
        +            return self._run_callback(self.handler.on_message, data)
        +        elif opcode == 0x8:
        +            # Close
        +            self.client_terminated = True
        +            if len(data) >= 2:
        +                self.close_code = struct.unpack(">H", data[:2])[0]
        +            if len(data) > 2:
        +                self.close_reason = to_unicode(data[2:])
        +            # Echo the received close code, if any (RFC 6455 section 5.5.1).
        +            self.close(self.close_code)
        +        elif opcode == 0x9:
        +            # Ping
        +            try:
        +                self._write_frame(True, 0xA, data)
        +            except StreamClosedError:
        +                self._abort()
        +            self._run_callback(self.handler.on_ping, data)
        +        elif opcode == 0xA:
        +            # Pong
        +            self.last_pong = IOLoop.current().time()
        +            return self._run_callback(self.handler.on_pong, data)
        +        else:
        +            self._abort()
        +        return None
        +
        +    def close(self, code: int = None, reason: str = None) -> None:
        +        """Closes the WebSocket connection."""
        +        if not self.server_terminated:
        +            if not self.stream.closed():
        +                if code is None and reason is not None:
        +                    code = 1000  # "normal closure" status code
        +                if code is None:
        +                    close_data = b""
        +                else:
        +                    close_data = struct.pack(">H", code)
        +                if reason is not None:
        +                    close_data += utf8(reason)
        +                try:
        +                    self._write_frame(True, 0x8, close_data)
        +                except StreamClosedError:
        +                    self._abort()
        +            self.server_terminated = True
        +        if self.client_terminated:
        +            if self._waiting is not None:
        +                self.stream.io_loop.remove_timeout(self._waiting)
        +                self._waiting = None
        +            self.stream.close()
        +        elif self._waiting is None:
        +            # Give the client a few seconds to complete a clean shutdown,
        +            # otherwise just close the connection.
        +            self._waiting = self.stream.io_loop.add_timeout(
        +                self.stream.io_loop.time() + 5, self._abort
        +            )
        +
        +    def is_closing(self) -> bool:
        +        """Return ``True`` if this connection is closing.
        +
        +        The connection is considered closing if either side has
        +        initiated its closing handshake or if the stream has been
        +        shut down uncleanly.
        +        """
        +        return self.stream.closed() or self.client_terminated or self.server_terminated
        +
        +    @property
        +    def ping_interval(self) -> Optional[float]:
        +        interval = self.params.ping_interval
        +        if interval is not None:
        +            return interval
        +        return 0
        +
        +    @property
        +    def ping_timeout(self) -> Optional[float]:
        +        timeout = self.params.ping_timeout
        +        if timeout is not None:
        +            return timeout
        +        assert self.ping_interval is not None
        +        return max(3 * self.ping_interval, 30)
        +
        +    def start_pinging(self) -> None:
        +        """Start sending periodic pings to keep the connection alive"""
        +        assert self.ping_interval is not None
        +        if self.ping_interval > 0:
        +            self.last_ping = self.last_pong = IOLoop.current().time()
        +            self.ping_callback = PeriodicCallback(
        +                self.periodic_ping, self.ping_interval * 1000
        +            )
        +            self.ping_callback.start()
        +
        +    def periodic_ping(self) -> None:
        +        """Send a ping to keep the websocket alive
        +
        +        Called periodically if the websocket_ping_interval is set and non-zero.
        +        """
        +        if self.is_closing() and self.ping_callback is not None:
        +            self.ping_callback.stop()
        +            return
        +
        +        # Check for timeout on pong. Make sure that we really have
        +        # sent a recent ping in case the machine with both server and
        +        # client has been suspended since the last ping.
        +        now = IOLoop.current().time()
        +        since_last_pong = now - self.last_pong
        +        since_last_ping = now - self.last_ping
        +        assert self.ping_interval is not None
        +        assert self.ping_timeout is not None
        +        if (
        +            since_last_ping < 2 * self.ping_interval
        +            and since_last_pong > self.ping_timeout
        +        ):
        +            self.close()
        +            return
        +
        +        self.write_ping(b"")
        +        self.last_ping = now
        +
        +    def set_nodelay(self, x: bool) -> None:
        +        self.stream.set_nodelay(x)
        +
        +
        +class WebSocketClientConnection(simple_httpclient._HTTPConnection):
        +    """WebSocket client connection.
        +
        +    This class should not be instantiated directly; use the
        +    `websocket_connect` function instead.
        +    """
        +
        +    protocol = None  # type: WebSocketProtocol
        +
        +    def __init__(
        +        self,
        +        request: httpclient.HTTPRequest,
        +        on_message_callback: Callable[[Union[None, str, bytes]], None] = None,
        +        compression_options: Dict[str, Any] = None,
        +        ping_interval: float = None,
        +        ping_timeout: float = None,
        +        max_message_size: int = _default_max_message_size,
        +        subprotocols: Optional[List[str]] = [],
        +    ) -> None:
        +        self.connect_future = Future()  # type: Future[WebSocketClientConnection]
        +        self.read_queue = Queue(1)  # type: Queue[Union[None, str, bytes]]
        +        self.key = base64.b64encode(os.urandom(16))
        +        self._on_message_callback = on_message_callback
        +        self.close_code = None  # type: Optional[int]
        +        self.close_reason = None  # type: Optional[str]
        +        self.params = _WebSocketParams(
        +            ping_interval=ping_interval,
        +            ping_timeout=ping_timeout,
        +            max_message_size=max_message_size,
        +            compression_options=compression_options,
        +        )
        +
        +        scheme, sep, rest = request.url.partition(":")
        +        scheme = {"ws": "http", "wss": "https"}[scheme]
        +        request.url = scheme + sep + rest
        +        request.headers.update(
        +            {
        +                "Upgrade": "websocket",
        +                "Connection": "Upgrade",
        +                "Sec-WebSocket-Key": self.key,
        +                "Sec-WebSocket-Version": "13",
        +            }
        +        )
        +        if subprotocols is not None:
        +            request.headers["Sec-WebSocket-Protocol"] = ",".join(subprotocols)
        +        if compression_options is not None:
        +            # Always offer to let the server set our max_wbits (and even though
        +            # we don't offer it, we will accept a client_no_context_takeover
        +            # from the server).
        +            # TODO: set server parameters for deflate extension
        +            # if requested in self.compression_options.
        +            request.headers[
        +                "Sec-WebSocket-Extensions"
        +            ] = "permessage-deflate; client_max_window_bits"
        +
        +        self.tcp_client = TCPClient()
        +        super(WebSocketClientConnection, self).__init__(
        +            None,
        +            request,
        +            lambda: None,
        +            self._on_http_response,
        +            104857600,
        +            self.tcp_client,
        +            65536,
        +            104857600,
        +        )
        +
        +    def close(self, code: int = None, reason: str = None) -> None:
        +        """Closes the websocket connection.
        +
        +        ``code`` and ``reason`` are documented under
        +        `WebSocketHandler.close`.
        +
        +        .. versionadded:: 3.2
        +
        +        .. versionchanged:: 4.0
        +
        +           Added the ``code`` and ``reason`` arguments.
        +        """
        +        if self.protocol is not None:
        +            self.protocol.close(code, reason)
        +            self.protocol = None  # type: ignore
        +
        +    def on_connection_close(self) -> None:
        +        if not self.connect_future.done():
        +            self.connect_future.set_exception(StreamClosedError())
        +        self._on_message(None)
        +        self.tcp_client.close()
        +        super(WebSocketClientConnection, self).on_connection_close()
        +
        +    def on_ws_connection_close(
        +        self, close_code: int = None, close_reason: str = None
        +    ) -> None:
        +        self.close_code = close_code
        +        self.close_reason = close_reason
        +        self.on_connection_close()
        +
        +    def _on_http_response(self, response: httpclient.HTTPResponse) -> None:
        +        if not self.connect_future.done():
        +            if response.error:
        +                self.connect_future.set_exception(response.error)
        +            else:
        +                self.connect_future.set_exception(
        +                    WebSocketError("Non-websocket response")
        +                )
        +
        +    async def headers_received(
        +        self,
        +        start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine],
        +        headers: httputil.HTTPHeaders,
        +    ) -> None:
        +        assert isinstance(start_line, httputil.ResponseStartLine)
        +        if start_line.code != 101:
        +            await super(WebSocketClientConnection, self).headers_received(
        +                start_line, headers
        +            )
        +            return
        +
        +        if self._timeout is not None:
        +            self.io_loop.remove_timeout(self._timeout)
        +            self._timeout = None
        +
        +        self.headers = headers
        +        self.protocol = self.get_websocket_protocol()
        +        self.protocol._process_server_headers(self.key, self.headers)
        +        self.protocol.stream = self.connection.detach()
        +
        +        IOLoop.current().add_callback(self.protocol._receive_frame_loop)
        +        self.protocol.start_pinging()
        +
        +        # Once we've taken over the connection, clear the final callback
        +        # we set on the http request.  This deactivates the error handling
        +        # in simple_httpclient that would otherwise interfere with our
        +        # ability to see exceptions.
        +        self.final_callback = None  # type: ignore
        +
        +        future_set_result_unless_cancelled(self.connect_future, self)
        +
        +    def write_message(
        +        self, message: Union[str, bytes], binary: bool = False
        +    ) -> "Future[None]":
        +        """Sends a message to the WebSocket server.
        +
        +        If the stream is closed, raises `WebSocketClosedError`.
        +        Returns a `.Future` which can be used for flow control.
        +
        +        .. versionchanged:: 5.0
        +           Exception raised on a closed stream changed from `.StreamClosedError`
        +           to `WebSocketClosedError`.
        +        """
        +        return self.protocol.write_message(message, binary=binary)
        +
        +    def read_message(
        +        self, callback: Callable[["Future[Union[None, str, bytes]]"], None] = None
        +    ) -> Awaitable[Union[None, str, bytes]]:
        +        """Reads a message from the WebSocket server.
        +
        +        If on_message_callback was specified at WebSocket
        +        initialization, this function will never return messages
        +
        +        Returns a future whose result is the message, or None
        +        if the connection is closed.  If a callback argument
        +        is given it will be called with the future when it is
        +        ready.
        +        """
        +
        +        awaitable = self.read_queue.get()
        +        if callback is not None:
        +            self.io_loop.add_future(asyncio.ensure_future(awaitable), callback)
        +        return awaitable
        +
        +    def on_message(self, message: Union[str, bytes]) -> Optional[Awaitable[None]]:
        +        return self._on_message(message)
        +
        +    def _on_message(
        +        self, message: Union[None, str, bytes]
        +    ) -> Optional[Awaitable[None]]:
        +        if self._on_message_callback:
        +            self._on_message_callback(message)
        +            return None
        +        else:
        +            return self.read_queue.put(message)
        +
        +    def ping(self, data: bytes = b"") -> None:
        +        """Send ping frame to the remote end.
        +
        +        The data argument allows a small amount of data (up to 125
        +        bytes) to be sent as a part of the ping message. Note that not
        +        all websocket implementations expose this data to
        +        applications.
        +
        +        Consider using the ``ping_interval`` argument to
        +        `websocket_connect` instead of sending pings manually.
        +
        +        .. versionadded:: 5.1
        +
        +        """
        +        data = utf8(data)
        +        if self.protocol is None:
        +            raise WebSocketClosedError()
        +        self.protocol.write_ping(data)
        +
        +    def on_pong(self, data: bytes) -> None:
        +        pass
        +
        +    def on_ping(self, data: bytes) -> None:
        +        pass
        +
        +    def get_websocket_protocol(self) -> WebSocketProtocol:
        +        return WebSocketProtocol13(self, mask_outgoing=True, params=self.params)
        +
        +    @property
        +    def selected_subprotocol(self) -> Optional[str]:
        +        """The subprotocol selected by the server.
        +
        +        .. versionadded:: 5.1
        +        """
        +        return self.protocol.selected_subprotocol
        +
        +    def log_exception(
        +        self,
        +        typ: "Optional[Type[BaseException]]",
        +        value: Optional[BaseException],
        +        tb: Optional[TracebackType],
        +    ) -> None:
        +        assert typ is not None
        +        assert value is not None
        +        app_log.error("Uncaught exception %s", value, exc_info=(typ, value, tb))
        +
        +
        +def websocket_connect(
        +    url: Union[str, httpclient.HTTPRequest],
        +    callback: Callable[["Future[WebSocketClientConnection]"], None] = None,
        +    connect_timeout: float = None,
        +    on_message_callback: Callable[[Union[None, str, bytes]], None] = None,
        +    compression_options: Dict[str, Any] = None,
        +    ping_interval: float = None,
        +    ping_timeout: float = None,
        +    max_message_size: int = _default_max_message_size,
        +    subprotocols: List[str] = None,
        +) -> "Awaitable[WebSocketClientConnection]":
        +    """Client-side websocket support.
        +
        +    Takes a url and returns a Future whose result is a
        +    `WebSocketClientConnection`.
        +
        +    ``compression_options`` is interpreted in the same way as the
        +    return value of `.WebSocketHandler.get_compression_options`.
        +
        +    The connection supports two styles of operation. In the coroutine
        +    style, the application typically calls
        +    `~.WebSocketClientConnection.read_message` in a loop::
        +
        +        conn = yield websocket_connect(url)
        +        while True:
        +            msg = yield conn.read_message()
        +            if msg is None: break
        +            # Do something with msg
        +
        +    In the callback style, pass an ``on_message_callback`` to
        +    ``websocket_connect``. In both styles, a message of ``None``
        +    indicates that the connection has been closed.
        +
        +    ``subprotocols`` may be a list of strings specifying proposed
        +    subprotocols. The selected protocol may be found on the
        +    ``selected_subprotocol`` attribute of the connection object
        +    when the connection is complete.
        +
        +    .. versionchanged:: 3.2
        +       Also accepts ``HTTPRequest`` objects in place of urls.
        +
        +    .. versionchanged:: 4.1
        +       Added ``compression_options`` and ``on_message_callback``.
        +
        +    .. versionchanged:: 4.5
        +       Added the ``ping_interval``, ``ping_timeout``, and ``max_message_size``
        +       arguments, which have the same meaning as in `WebSocketHandler`.
        +
        +    .. versionchanged:: 5.0
        +       The ``io_loop`` argument (deprecated since version 4.1) has been removed.
        +
        +    .. versionchanged:: 5.1
        +       Added the ``subprotocols`` argument.
        +    """
        +    if isinstance(url, httpclient.HTTPRequest):
        +        assert connect_timeout is None
        +        request = url
        +        # Copy and convert the headers dict/object (see comments in
        +        # AsyncHTTPClient.fetch)
        +        request.headers = httputil.HTTPHeaders(request.headers)
        +    else:
        +        request = httpclient.HTTPRequest(url, connect_timeout=connect_timeout)
        +    request = cast(
        +        httpclient.HTTPRequest,
        +        httpclient._RequestProxy(request, httpclient.HTTPRequest._DEFAULTS),
        +    )
        +    conn = WebSocketClientConnection(
        +        request,
        +        on_message_callback=on_message_callback,
        +        compression_options=compression_options,
        +        ping_interval=ping_interval,
        +        ping_timeout=ping_timeout,
        +        max_message_size=max_message_size,
        +        subprotocols=subprotocols,
        +    )
        +    if callback is not None:
        +        IOLoop.current().add_future(conn.connect_future, callback)
        +    return conn.connect_future
        diff --git a/server/www/packages/packages-linux/x64/tornado/wsgi.py b/server/www/packages/packages-linux/x64/tornado/wsgi.py
        index 77124aa..b88bad6 100644
        --- a/server/www/packages/packages-linux/x64/tornado/wsgi.py
        +++ b/server/www/packages/packages-linux/x64/tornado/wsgi.py
        @@ -1,199 +1,199 @@
        -#
        -# Copyright 2009 Facebook
        -#
        -# Licensed under the Apache License, Version 2.0 (the "License"); you may
        -# not use this file except in compliance with the License. You may obtain
        -# a copy of the License at
        -#
        -#     http://www.apache.org/licenses/LICENSE-2.0
        -#
        -# Unless required by applicable law or agreed to in writing, software
        -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
        -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
        -# License for the specific language governing permissions and limitations
        -# under the License.
        -
        -"""WSGI support for the Tornado web framework.
        -
        -WSGI is the Python standard for web servers, and allows for interoperability
        -between Tornado and other Python web frameworks and servers.
        -
        -This module provides WSGI support via the `WSGIContainer` class, which
        -makes it possible to run applications using other WSGI frameworks on
        -the Tornado HTTP server. The reverse is not supported; the Tornado
        -`.Application` and `.RequestHandler` classes are designed for use with
        -the Tornado `.HTTPServer` and cannot be used in a generic WSGI
        -container.
        -
        -"""
        -
        -import sys
        -from io import BytesIO
        -import tornado
        -
        -from tornado import escape
        -from tornado import httputil
        -from tornado.log import access_log
        -
        -from typing import List, Tuple, Optional, Callable, Any, Dict, Text
        -from types import TracebackType
        -import typing
        -
        -if typing.TYPE_CHECKING:
        -    from typing import Type  # noqa: F401
        -    from wsgiref.types import WSGIApplication as WSGIAppType  # noqa: F401
        -
        -
        -# PEP 3333 specifies that WSGI on python 3 generally deals with byte strings
        -# that are smuggled inside objects of type unicode (via the latin1 encoding).
        -# This function is like those in the tornado.escape module, but defined
        -# here to minimize the temptation to use it in non-wsgi contexts.
        -def to_wsgi_str(s: bytes) -> str:
        -    assert isinstance(s, bytes)
        -    return s.decode("latin1")
        -
        -
        -class WSGIContainer(object):
        -    r"""Makes a WSGI-compatible function runnable on Tornado's HTTP server.
        -
        -    .. warning::
        -
        -       WSGI is a *synchronous* interface, while Tornado's concurrency model
        -       is based on single-threaded asynchronous execution.  This means that
        -       running a WSGI app with Tornado's `WSGIContainer` is *less scalable*
        -       than running the same app in a multi-threaded WSGI server like
        -       ``gunicorn`` or ``uwsgi``.  Use `WSGIContainer` only when there are
        -       benefits to combining Tornado and WSGI in the same process that
        -       outweigh the reduced scalability.
        -
        -    Wrap a WSGI function in a `WSGIContainer` and pass it to `.HTTPServer` to
        -    run it. For example::
        -
        -        def simple_app(environ, start_response):
        -            status = "200 OK"
        -            response_headers = [("Content-type", "text/plain")]
        -            start_response(status, response_headers)
        -            return ["Hello world!\n"]
        -
        -        container = tornado.wsgi.WSGIContainer(simple_app)
        -        http_server = tornado.httpserver.HTTPServer(container)
        -        http_server.listen(8888)
        -        tornado.ioloop.IOLoop.current().start()
        -
        -    This class is intended to let other frameworks (Django, web.py, etc)
        -    run on the Tornado HTTP server and I/O loop.
        -
        -    The `tornado.web.FallbackHandler` class is often useful for mixing
        -    Tornado and WSGI apps in the same server.  See
        -    https://github.com/bdarnell/django-tornado-demo for a complete example.
        -    """
        -
        -    def __init__(self, wsgi_application: "WSGIAppType") -> None:
        -        self.wsgi_application = wsgi_application
        -
        -    def __call__(self, request: httputil.HTTPServerRequest) -> None:
        -        data = {}  # type: Dict[str, Any]
        -        response = []  # type: List[bytes]
        -
        -        def start_response(
        -            status: str,
        -            headers: List[Tuple[str, str]],
        -            exc_info: Optional[
        -                Tuple[
        -                    "Optional[Type[BaseException]]",
        -                    Optional[BaseException],
        -                    Optional[TracebackType],
        -                ]
        -            ] = None,
        -        ) -> Callable[[bytes], Any]:
        -            data["status"] = status
        -            data["headers"] = headers
        -            return response.append
        -
        -        app_response = self.wsgi_application(
        -            WSGIContainer.environ(request), start_response
        -        )
        -        try:
        -            response.extend(app_response)
        -            body = b"".join(response)
        -        finally:
        -            if hasattr(app_response, "close"):
        -                app_response.close()  # type: ignore
        -        if not data:
        -            raise Exception("WSGI app did not call start_response")
        -
        -        status_code_str, reason = data["status"].split(" ", 1)
        -        status_code = int(status_code_str)
        -        headers = data["headers"]  # type: List[Tuple[str, str]]
        -        header_set = set(k.lower() for (k, v) in headers)
        -        body = escape.utf8(body)
        -        if status_code != 304:
        -            if "content-length" not in header_set:
        -                headers.append(("Content-Length", str(len(body))))
        -            if "content-type" not in header_set:
        -                headers.append(("Content-Type", "text/html; charset=UTF-8"))
        -        if "server" not in header_set:
        -            headers.append(("Server", "TornadoServer/%s" % tornado.version))
        -
        -        start_line = httputil.ResponseStartLine("HTTP/1.1", status_code, reason)
        -        header_obj = httputil.HTTPHeaders()
        -        for key, value in headers:
        -            header_obj.add(key, value)
        -        assert request.connection is not None
        -        request.connection.write_headers(start_line, header_obj, chunk=body)
        -        request.connection.finish()
        -        self._log(status_code, request)
        -
        -    @staticmethod
        -    def environ(request: httputil.HTTPServerRequest) -> Dict[Text, Any]:
        -        """Converts a `tornado.httputil.HTTPServerRequest` to a WSGI environment.
        -        """
        -        hostport = request.host.split(":")
        -        if len(hostport) == 2:
        -            host = hostport[0]
        -            port = int(hostport[1])
        -        else:
        -            host = request.host
        -            port = 443 if request.protocol == "https" else 80
        -        environ = {
        -            "REQUEST_METHOD": request.method,
        -            "SCRIPT_NAME": "",
        -            "PATH_INFO": to_wsgi_str(
        -                escape.url_unescape(request.path, encoding=None, plus=False)
        -            ),
        -            "QUERY_STRING": request.query,
        -            "REMOTE_ADDR": request.remote_ip,
        -            "SERVER_NAME": host,
        -            "SERVER_PORT": str(port),
        -            "SERVER_PROTOCOL": request.version,
        -            "wsgi.version": (1, 0),
        -            "wsgi.url_scheme": request.protocol,
        -            "wsgi.input": BytesIO(escape.utf8(request.body)),
        -            "wsgi.errors": sys.stderr,
        -            "wsgi.multithread": False,
        -            "wsgi.multiprocess": True,
        -            "wsgi.run_once": False,
        -        }
        -        if "Content-Type" in request.headers:
        -            environ["CONTENT_TYPE"] = request.headers.pop("Content-Type")
        -        if "Content-Length" in request.headers:
        -            environ["CONTENT_LENGTH"] = request.headers.pop("Content-Length")
        -        for key, value in request.headers.items():
        -            environ["HTTP_" + key.replace("-", "_").upper()] = value
        -        return environ
        -
        -    def _log(self, status_code: int, request: httputil.HTTPServerRequest) -> None:
        -        if status_code < 400:
        -            log_method = access_log.info
        -        elif status_code < 500:
        -            log_method = access_log.warning
        -        else:
        -            log_method = access_log.error
        -        request_time = 1000.0 * request.request_time()
        -        assert request.method is not None
        -        assert request.uri is not None
        -        summary = request.method + " " + request.uri + " (" + request.remote_ip + ")"
        -        log_method("%d %s %.2fms", status_code, summary, request_time)
        -
        -
        -HTTPRequest = httputil.HTTPServerRequest
        +#
        +# Copyright 2009 Facebook
        +#
        +# Licensed under the Apache License, Version 2.0 (the "License"); you may
        +# not use this file except in compliance with the License. You may obtain
        +# a copy of the License at
        +#
        +#     http://www.apache.org/licenses/LICENSE-2.0
        +#
        +# Unless required by applicable law or agreed to in writing, software
        +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
        +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
        +# License for the specific language governing permissions and limitations
        +# under the License.
        +
        +"""WSGI support for the Tornado web framework.
        +
        +WSGI is the Python standard for web servers, and allows for interoperability
        +between Tornado and other Python web frameworks and servers.
        +
        +This module provides WSGI support via the `WSGIContainer` class, which
        +makes it possible to run applications using other WSGI frameworks on
        +the Tornado HTTP server. The reverse is not supported; the Tornado
        +`.Application` and `.RequestHandler` classes are designed for use with
        +the Tornado `.HTTPServer` and cannot be used in a generic WSGI
        +container.
        +
        +"""
        +
        +import sys
        +from io import BytesIO
        +import tornado
        +
        +from tornado import escape
        +from tornado import httputil
        +from tornado.log import access_log
        +
        +from typing import List, Tuple, Optional, Callable, Any, Dict, Text
        +from types import TracebackType
        +import typing
        +
        +if typing.TYPE_CHECKING:
        +    from typing import Type  # noqa: F401
        +    from wsgiref.types import WSGIApplication as WSGIAppType  # noqa: F401
        +
        +
        +# PEP 3333 specifies that WSGI on python 3 generally deals with byte strings
        +# that are smuggled inside objects of type unicode (via the latin1 encoding).
        +# This function is like those in the tornado.escape module, but defined
        +# here to minimize the temptation to use it in non-wsgi contexts.
        +def to_wsgi_str(s: bytes) -> str:
        +    assert isinstance(s, bytes)
        +    return s.decode("latin1")
        +
        +
        +class WSGIContainer(object):
        +    r"""Makes a WSGI-compatible function runnable on Tornado's HTTP server.
        +
        +    .. warning::
        +
        +       WSGI is a *synchronous* interface, while Tornado's concurrency model
        +       is based on single-threaded asynchronous execution.  This means that
        +       running a WSGI app with Tornado's `WSGIContainer` is *less scalable*
        +       than running the same app in a multi-threaded WSGI server like
        +       ``gunicorn`` or ``uwsgi``.  Use `WSGIContainer` only when there are
        +       benefits to combining Tornado and WSGI in the same process that
        +       outweigh the reduced scalability.
        +
        +    Wrap a WSGI function in a `WSGIContainer` and pass it to `.HTTPServer` to
        +    run it. For example::
        +
        +        def simple_app(environ, start_response):
        +            status = "200 OK"
        +            response_headers = [("Content-type", "text/plain")]
        +            start_response(status, response_headers)
        +            return ["Hello world!\n"]
        +
        +        container = tornado.wsgi.WSGIContainer(simple_app)
        +        http_server = tornado.httpserver.HTTPServer(container)
        +        http_server.listen(8888)
        +        tornado.ioloop.IOLoop.current().start()
        +
        +    This class is intended to let other frameworks (Django, web.py, etc)
        +    run on the Tornado HTTP server and I/O loop.
        +
        +    The `tornado.web.FallbackHandler` class is often useful for mixing
        +    Tornado and WSGI apps in the same server.  See
        +    https://github.com/bdarnell/django-tornado-demo for a complete example.
        +    """
        +
        +    def __init__(self, wsgi_application: "WSGIAppType") -> None:
        +        self.wsgi_application = wsgi_application
        +
        +    def __call__(self, request: httputil.HTTPServerRequest) -> None:
        +        data = {}  # type: Dict[str, Any]
        +        response = []  # type: List[bytes]
        +
        +        def start_response(
        +            status: str,
        +            headers: List[Tuple[str, str]],
        +            exc_info: Optional[
        +                Tuple[
        +                    "Optional[Type[BaseException]]",
        +                    Optional[BaseException],
        +                    Optional[TracebackType],
        +                ]
        +            ] = None,
        +        ) -> Callable[[bytes], Any]:
        +            data["status"] = status
        +            data["headers"] = headers
        +            return response.append
        +
        +        app_response = self.wsgi_application(
        +            WSGIContainer.environ(request), start_response
        +        )
        +        try:
        +            response.extend(app_response)
        +            body = b"".join(response)
        +        finally:
        +            if hasattr(app_response, "close"):
        +                app_response.close()  # type: ignore
        +        if not data:
        +            raise Exception("WSGI app did not call start_response")
        +
        +        status_code_str, reason = data["status"].split(" ", 1)
        +        status_code = int(status_code_str)
        +        headers = data["headers"]  # type: List[Tuple[str, str]]
        +        header_set = set(k.lower() for (k, v) in headers)
        +        body = escape.utf8(body)
        +        if status_code != 304:
        +            if "content-length" not in header_set:
        +                headers.append(("Content-Length", str(len(body))))
        +            if "content-type" not in header_set:
        +                headers.append(("Content-Type", "text/html; charset=UTF-8"))
        +        if "server" not in header_set:
        +            headers.append(("Server", "TornadoServer/%s" % tornado.version))
        +
        +        start_line = httputil.ResponseStartLine("HTTP/1.1", status_code, reason)
        +        header_obj = httputil.HTTPHeaders()
        +        for key, value in headers:
        +            header_obj.add(key, value)
        +        assert request.connection is not None
        +        request.connection.write_headers(start_line, header_obj, chunk=body)
        +        request.connection.finish()
        +        self._log(status_code, request)
        +
        +    @staticmethod
        +    def environ(request: httputil.HTTPServerRequest) -> Dict[Text, Any]:
        +        """Converts a `tornado.httputil.HTTPServerRequest` to a WSGI environment.
        +        """
        +        hostport = request.host.split(":")
        +        if len(hostport) == 2:
        +            host = hostport[0]
        +            port = int(hostport[1])
        +        else:
        +            host = request.host
        +            port = 443 if request.protocol == "https" else 80
        +        environ = {
        +            "REQUEST_METHOD": request.method,
        +            "SCRIPT_NAME": "",
        +            "PATH_INFO": to_wsgi_str(
        +                escape.url_unescape(request.path, encoding=None, plus=False)
        +            ),
        +            "QUERY_STRING": request.query,
        +            "REMOTE_ADDR": request.remote_ip,
        +            "SERVER_NAME": host,
        +            "SERVER_PORT": str(port),
        +            "SERVER_PROTOCOL": request.version,
        +            "wsgi.version": (1, 0),
        +            "wsgi.url_scheme": request.protocol,
        +            "wsgi.input": BytesIO(escape.utf8(request.body)),
        +            "wsgi.errors": sys.stderr,
        +            "wsgi.multithread": False,
        +            "wsgi.multiprocess": True,
        +            "wsgi.run_once": False,
        +        }
        +        if "Content-Type" in request.headers:
        +            environ["CONTENT_TYPE"] = request.headers.pop("Content-Type")
        +        if "Content-Length" in request.headers:
        +            environ["CONTENT_LENGTH"] = request.headers.pop("Content-Length")
        +        for key, value in request.headers.items():
        +            environ["HTTP_" + key.replace("-", "_").upper()] = value
        +        return environ
        +
        +    def _log(self, status_code: int, request: httputil.HTTPServerRequest) -> None:
        +        if status_code < 400:
        +            log_method = access_log.info
        +        elif status_code < 500:
        +            log_method = access_log.warning
        +        else:
        +            log_method = access_log.error
        +        request_time = 1000.0 * request.request_time()
        +        assert request.method is not None
        +        assert request.uri is not None
        +        summary = request.method + " " + request.uri + " (" + request.remote_ip + ")"
        +        log_method("%d %s %.2fms", status_code, summary, request_time)
        +
        +
        +HTTPRequest = httputil.HTTPServerRequest
        diff --git a/server/www/teleport/view/_footer.mako b/server/www/teleport/view/_footer.mako
        index fb7f3e1..6548cc0 100644
        --- a/server/www/teleport/view/_footer.mako
        +++ b/server/www/teleport/view/_footer.mako
        @@ -4,7 +4,7 @@
         
        

        AS&L?Gne8$c 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%0A?8Ob5!@Y+U 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 CteaT? diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/_padding.abi3.so b/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/_padding.abi3.so index 7fe4749d2f9402750115ab04535cb8e6fb03d972..e809fd0892e889b29c68f866ffbbbbf137911a9d 100755 GIT binary patch literal 37216 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 literal 33520 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 diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/openssl/_conditional.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/openssl/_conditional.py index a39bb66..a293fb0 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/openssl/_conditional.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/openssl/_conditional.py @@ -99,6 +99,7 @@ def cryptography_has_102_verification_params(): "X509_VERIFY_PARAM_set1_ip_asc", "X509_VERIFY_PARAM_set_hostflags", "SSL_get0_param", + "SSL_CTX_get0_param", "X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT", "X509_CHECK_FLAG_NO_WILDCARDS", "X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS", diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/openssl/binding.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/openssl/binding.py index 9740516..1e0f34c 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/openssl/binding.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/bindings/openssl/binding.py @@ -5,6 +5,7 @@ from __future__ import absolute_import, division, print_function import collections +import os import threading import types import warnings @@ -156,12 +157,19 @@ def _verify_openssl_version(lib): lib.CRYPTOGRAPHY_OPENSSL_LESS_THAN_102 and not lib.CRYPTOGRAPHY_IS_LIBRESSL ): - warnings.warn( - "OpenSSL version 1.0.1 is no longer supported by the OpenSSL " - "project, please upgrade. The next version of cryptography will " - "drop support for it.", - utils.CryptographyDeprecationWarning - ) + if os.environ.get("CRYPTOGRAPHY_ALLOW_OPENSSL_101"): + warnings.warn( + "OpenSSL version 1.0.1 is no longer supported by the OpenSSL " + "project, please upgrade. The next version of cryptography " + "will completely remove support for it.", + utils.CryptographyDeprecationWarning + ) + else: + raise RuntimeError( + "You are linking against OpenSSL 1.0.1, which is no longer " + "supported by the OpenSSL project. You need to upgrade to a " + "newer version of OpenSSL." + ) def _verify_package_version(version): diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/ec.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/ec.py index 529391f..eef922d 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/ec.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/ec.py @@ -364,7 +364,7 @@ class EllipticCurvePublicNumbers(object): " and will be removed in a future version. Please use " "EllipticCurvePublicKey.public_bytes to obtain both " "compressed and uncompressed point encoding.", - utils.DeprecatedIn25, + utils.PersistentlyDeprecated2019, stacklevel=2, ) # key_size is in bits. Convert to bytes and round up @@ -383,7 +383,7 @@ class EllipticCurvePublicNumbers(object): "Support for unsafe construction of public numbers from " "encoded data will be removed in a future version. " "Please use EllipticCurvePublicKey.from_encoded_point", - utils.DeprecatedIn25, + utils.PersistentlyDeprecated2019, stacklevel=2, ) diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/rsa.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/rsa.py index 27db671..f20cdf9 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/rsa.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/rsa.py @@ -184,12 +184,12 @@ def _modinv(e, m): """ Modular Multiplicative Inverse. Returns x such that: (x*e) mod m == 1 """ - x1, y1, x2, y2 = 1, 0, 0, 1 + x1, x2 = 1, 0 a, b = e, m while b > 0: q, r = divmod(a, b) - xn, yn = x1 - q * x2, y1 - q * y2 - a, b, x1, y1, x2, y2 = b, r, x2, y2, xn, yn + xn = x1 - q * x2 + a, b, x1, x2 = b, r, x2, xn return x1 % m diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/x25519.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/x25519.py index 4e8badf..61a95ff 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/x25519.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/asymmetric/x25519.py @@ -25,7 +25,7 @@ class X25519PublicKey(object): return backend.x25519_load_public_bytes(data) @abc.abstractmethod - def public_bytes(self, encoding=None, format=None): + def public_bytes(self, encoding, format): """ The serialized bytes of the public key. """ diff --git a/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/ciphers/aead.py b/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/ciphers/aead.py index 42e19ad..a20a80f 100644 --- a/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/ciphers/aead.py +++ b/server/www/packages/packages-linux/x64/cryptography/hazmat/primitives/ciphers/aead.py @@ -126,7 +126,7 @@ class AESCCM(object): # https://tools.ietf.org/html/rfc3610#section-2.1 l_val = 15 - len(nonce) if 2 ** (8 * l_val) < data_len: - raise ValueError("Nonce too long for data") + raise ValueError("Data too long for nonce") def _check_params(self, nonce, data, associated_data): utils._check_byteslike("nonce", nonce) diff --git a/server/www/packages/packages-linux/x64/cryptography/utils.py b/server/www/packages/packages-linux/x64/cryptography/utils.py index 0b36f63..e895aa0 100644 --- a/server/www/packages/packages-linux/x64/cryptography/utils.py +++ b/server/www/packages/packages-linux/x64/cryptography/utils.py @@ -22,7 +22,7 @@ class CryptographyDeprecationWarning(UserWarning): # cycle ends. PersistentlyDeprecated2017 = CryptographyDeprecationWarning PersistentlyDeprecated2018 = CryptographyDeprecationWarning -DeprecatedIn25 = CryptographyDeprecationWarning +PersistentlyDeprecated2019 = CryptographyDeprecationWarning DeprecatedIn27 = CryptographyDeprecationWarning diff --git a/server/www/packages/packages-linux/x64/cryptography/x509/extensions.py b/server/www/packages/packages-linux/x64/cryptography/x509/extensions.py index f60075a..ad90e9b 100644 --- a/server/www/packages/packages-linux/x64/cryptography/x509/extensions.py +++ b/server/www/packages/packages-linux/x64/cryptography/x509/extensions.py @@ -948,7 +948,7 @@ class TLSFeatureType(Enum): status_request_v2 = 17 -_TLS_FEATURE_TYPE_TO_ENUM = dict((x.value, x) for x in TLSFeatureType) +_TLS_FEATURE_TYPE_TO_ENUM = {x.value: x for x in TLSFeatureType} @utils.register_interface(ExtensionType) diff --git a/server/www/packages/packages-linux/x64/cryptography/x509/name.py b/server/www/packages/packages-linux/x64/cryptography/x509/name.py index ca2a175..6816e06 100644 --- a/server/www/packages/packages-linux/x64/cryptography/x509/name.py +++ b/server/www/packages/packages-linux/x64/cryptography/x509/name.py @@ -25,7 +25,7 @@ class _ASN1Type(Enum): BMPString = 30 -_ASN1_TYPE_TO_ENUM = dict((i.value, i) for i in _ASN1Type) +_ASN1_TYPE_TO_ENUM = {i.value: i for i in _ASN1Type} _SENTINEL = object() _NAMEOID_DEFAULT_TYPE = { NameOID.COUNTRY_NAME: _ASN1Type.PrintableString, @@ -54,6 +54,9 @@ _NAMEOID_TO_NAME = { def _escape_dn_value(val): """Escape special characters in RFC4514 Distinguished Name value.""" + if not val: + return '' + # See https://tools.ietf.org/html/rfc4514#section-2.4 val = val.replace('\\', '\\\\') val = val.replace('"', '\\"') @@ -93,9 +96,6 @@ class NameAttribute(object): "Country name must be a 2 character country code" ) - if len(value) == 0: - raise ValueError("Value cannot be an empty string") - # The appropriate ASN1 string type varies by OID and is defined across # multiple RFCs including 2459, 3280, and 5280. In general UTF8String # is preferred (2459), but 3280 and 5280 specify several OIDs with @@ -216,9 +216,11 @@ class Name(object): An X.509 name is a two-level structure: a list of sets of attributes. Each list element is separated by ',' and within each list element, set elements are separated by '+'. The latter is almost never used in - real world certificates. + real world certificates. According to RFC4514 section 2.1 the + RDNSequence must be reversed when converting to string representation. """ - return ','.join(attr.rfc4514_string() for attr in self._attributes) + return ','.join( + attr.rfc4514_string() for attr in reversed(self._attributes)) def get_attributes_for_oid(self, oid): return [i for i in self if i.oid == oid] @@ -253,7 +255,9 @@ class Name(object): return sum(len(rdn) for rdn in self._attributes) def __repr__(self): + rdns = ','.join(attr.rfc4514_string() for attr in self._attributes) + if six.PY2: - return "".format(self.rfc4514_string().encode('utf8')) + return "".format(rdns.encode('utf8')) else: - return "".format(self.rfc4514_string()) + return "".format(rdns) diff --git a/server/www/packages/packages-linux/x64/cryptography/x509/ocsp.py b/server/www/packages/packages-linux/x64/cryptography/x509/ocsp.py index b15063d..4e0c985 100644 --- a/server/www/packages/packages-linux/x64/cryptography/x509/ocsp.py +++ b/server/www/packages/packages-linux/x64/cryptography/x509/ocsp.py @@ -41,7 +41,7 @@ class OCSPResponseStatus(Enum): UNAUTHORIZED = 6 -_RESPONSE_STATUS_TO_ENUM = dict((x.value, x) for x in OCSPResponseStatus) +_RESPONSE_STATUS_TO_ENUM = {x.value: x for x in OCSPResponseStatus} _ALLOWED_HASHES = ( hashes.SHA1, hashes.SHA224, hashes.SHA256, hashes.SHA384, hashes.SHA512 @@ -61,7 +61,7 @@ class OCSPCertStatus(Enum): UNKNOWN = 2 -_CERT_STATUS_TO_ENUM = dict((x.value, x) for x in OCSPCertStatus) +_CERT_STATUS_TO_ENUM = {x.value: x for x in OCSPCertStatus} def load_der_ocsp_request(data): @@ -427,3 +427,9 @@ class OCSPResponse(object): """ The list of response extensions. Not single response extensions. """ + + @abc.abstractproperty + def single_extensions(self): + """ + The list of single response extensions. Not response extensions. + """ diff --git a/server/www/packages/packages-linux/x64/ldap3/__init__.py b/server/www/packages/packages-linux/x64/ldap3/__init__.py index c352994..9bb5435 100644 --- a/server/www/packages/packages-linux/x64/ldap3/__init__.py +++ b/server/www/packages/packages-linux/x64/ldap3/__init__.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/abstract/__init__.py b/server/www/packages/packages-linux/x64/ldap3/abstract/__init__.py index 22ea8c9..29aabb3 100644 --- a/server/www/packages/packages-linux/x64/ldap3/abstract/__init__.py +++ b/server/www/packages/packages-linux/x64/ldap3/abstract/__init__.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/abstract/attrDef.py b/server/www/packages/packages-linux/x64/ldap3/abstract/attrDef.py index 21d8f3e..caffb53 100644 --- a/server/www/packages/packages-linux/x64/ldap3/abstract/attrDef.py +++ b/server/www/packages/packages-linux/x64/ldap3/abstract/attrDef.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. diff --git a/server/www/packages/packages-linux/x64/ldap3/abstract/attribute.py b/server/www/packages/packages-linux/x64/ldap3/abstract/attribute.py index 434ee12..5d33cc7 100644 --- a/server/www/packages/packages-linux/x64/ldap3/abstract/attribute.py +++ b/server/www/packages/packages-linux/x64/ldap3/abstract/attribute.py @@ -1,285 +1,290 @@ -""" -""" - -# Created on 2014.01.06 -# -# Author: Giovanni Cannata -# -# Copyright 2014 - 2019 Giovanni Cannata -# -# This file is part of ldap3. -# -# ldap3 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ldap3 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with ldap3 in the COPYING and COPYING.LESSER files. -# If not, see . - -from os import linesep - -from .. import MODIFY_ADD, MODIFY_REPLACE, MODIFY_DELETE, SEQUENCE_TYPES -from ..core.exceptions import LDAPCursorError -from ..utils.repr import to_stdout_encoding -from . import STATUS_PENDING_CHANGES, STATUS_VIRTUAL, STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING -from ..utils.log import log, log_enabled, ERROR, BASIC, PROTOCOL, EXTENDED - - -# noinspection PyUnresolvedReferences -class Attribute(object): - """Attribute/values object, it includes the search result (after post_query transformation) of each attribute in an entry - - Attribute object is read only - - - values: contain the processed attribute values - - raw_values': contain the unprocessed attribute values - - - """ - - def __init__(self, attr_def, entry, cursor): - self.key = attr_def.key - self.definition = attr_def - self.values = [] - self.raw_values = [] - self.response = None - self.entry = entry - self.cursor = cursor - other_names = [name for name in attr_def.oid_info.name if self.key.lower() != name.lower()] if attr_def.oid_info else None - self.other_names = set(other_names) if other_names else None # self.other_names is None if there are no short names, else is a set of secondary names - - def __repr__(self): - if len(self.values) == 1: - r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding(self.values[0]) - elif len(self.values) > 1: - r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding(self.values[0]) - filler = ' ' * (len(self.key) + 6) - for value in self.values[1:]: - r += linesep + filler + to_stdout_encoding(value) - else: - r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding('') - - return r - - def __str__(self): - if len(self.values) == 1: - return to_stdout_encoding(self.values[0]) - else: - return to_stdout_encoding(self.values) - - def __len__(self): - return len(self.values) - - def __iter__(self): - return self.values.__iter__() - - def __getitem__(self, item): - return self.values[item] - - def __eq__(self, other): - try: - if self.value == other: - return True - except Exception: - return False - - def __ne__(self, other): - return not self == other - - @property - def value(self): - """ - :return: The single value or a list of values of the attribute. - """ - if not self.values: - return None - - return self.values[0] if len(self.values) == 1 else self.values - - -class OperationalAttribute(Attribute): - """Operational attribute/values object. Include the search result of an - operational attribute in an entry - - OperationalAttribute object is read only - - - values: contains the processed attribute values - - raw_values: contains the unprocessed attribute values - - It may not have an AttrDef - - """ - - def __repr__(self): - if len(self.values) == 1: - r = to_stdout_encoding(self.key) + ' [OPERATIONAL]: ' + to_stdout_encoding(self.values[0]) - elif len(self.values) > 1: - r = to_stdout_encoding(self.key) + ' [OPERATIONAL]: ' + to_stdout_encoding(self.values[0]) - filler = ' ' * (len(self.key) + 6) - for value in sorted(self.values[1:]): - r += linesep + filler + to_stdout_encoding(value) - else: - r = '' - - return r - - -class WritableAttribute(Attribute): - def __repr__(self): - filler = ' ' * (len(self.key) + 6) - if len(self.values) == 1: - r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding(self.values[0]) - elif len(self.values) > 1: - r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding(self.values[0]) - for value in self.values[1:]: - r += linesep + filler + to_stdout_encoding(value) - else: - r = to_stdout_encoding(self.key) + to_stdout_encoding(': ') - if self.definition.name in self.entry._changes: - r += linesep + filler + 'CHANGES: ' + str(self.entry._changes[self.definition.name]) - return r - - def __iadd__(self, other): - self.add(other) - return Ellipsis # hack to avoid calling set() in entry __setattr__ - - def __isub__(self, other): - self.delete(other) - return Ellipsis # hack to avoid calling set_value in entry __setattr__ - - def _update_changes(self, changes, remove_old=False): - # checks for friendly key in AttrDef and uses the real attribute name - if self.definition and self.definition.name: - key = self.definition.name - else: - key = self.key - - if key not in self.entry._changes or remove_old: # remove old changes (for removing attribute) - self.entry._changes[key] = [] - - self.entry._changes[key].append(changes) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'updated changes <%r> for <%s> attribute in <%s> entry', changes, self.key, self.entry.entry_dn) - self.entry._state.set_status(STATUS_PENDING_CHANGES) - - def add(self, values): - if log_enabled(PROTOCOL): - log(PROTOCOL, 'adding %r to <%s> attribute in <%s> entry', values, self.key, self.entry.entry_dn) - # new value for attribute to commit with a MODIFY_ADD - if self.entry._state._initial_status == STATUS_VIRTUAL: - error_message = 'cannot perform a modify operation in a new entry' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - if self.entry.entry_status in [STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING]: - error_message = self.entry.entry_status + ' - cannot add attributes' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - if values is None: - error_message = 'value to add cannot be None' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - if values is not None: - validated = self.definition.validate(values) # returns True, False or a value to substitute to the actual values - if validated is False: - error_message = 'value \'%s\' non valid for attribute \'%s\'' % (values, self.key) - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - elif validated is not True: # a valid LDAP value equivalent to the actual values - values = validated - self._update_changes((MODIFY_ADD, values if isinstance(values, SEQUENCE_TYPES) else [values])) - - def set(self, values): - # new value for attribute to commit with a MODIFY_REPLACE, old values are deleted - if log_enabled(PROTOCOL): - log(PROTOCOL, 'setting %r to <%s> attribute in <%s> entry', values, self.key, self.entry.entry_dn) - if self.entry.entry_status in [STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING]: - error_message = self.entry.entry_status + ' - cannot set attributes' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - if values is None: - error_message = 'new value cannot be None' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - validated = self.definition.validate(values) # returns True, False or a value to substitute to the actual values - if validated is False: - error_message = 'value \'%s\' non valid for attribute \'%s\'' % (values, self.key) - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - elif validated is not True: # a valid LDAP value equivalent to the actual values - values = validated - self._update_changes((MODIFY_REPLACE, values if isinstance(values, SEQUENCE_TYPES) else [values]), remove_old=True) - - def delete(self, values): - # value for attribute to delete in commit with a MODIFY_DELETE - if log_enabled(PROTOCOL): - log(PROTOCOL, 'deleting %r from <%s> attribute in <%s> entry', values, self.key, self.entry.entry_dn) - if self.entry._state._initial_status == STATUS_VIRTUAL: - error_message = 'cannot delete an attribute value in a new entry' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - if self.entry.entry_status in [STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING]: - error_message = self.entry.entry_status + ' - cannot delete attributes' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - if values is None: - error_message = 'value to delete cannot be None' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - if not isinstance(values, SEQUENCE_TYPES): - values = [values] - for single_value in values: - if single_value not in self.values: - error_message = 'value \'%s\' not present in \'%s\'' % (single_value, ', '.join(self.values)) - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - self._update_changes((MODIFY_DELETE, values)) - - def remove(self): - if log_enabled(PROTOCOL): - log(PROTOCOL, 'removing <%s> attribute in <%s> entry', self.key, self.entry.entry_dn) - if self.entry._state._initial_status == STATUS_VIRTUAL: - error_message = 'cannot remove an attribute in a new entry' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - if self.entry.entry_status in [STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING]: - error_message = self.entry.entry_status + ' - cannot remove attributes' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) - self._update_changes((MODIFY_REPLACE, []), True) - - def discard(self): - if log_enabled(PROTOCOL): - log(PROTOCOL, 'discarding <%s> attribute in <%s> entry', self.key, self.entry.entry_dn) - del self.entry._changes[self.key] - if not self.entry._changes: - self.entry._state.set_status(self.entry._state._initial_status) - - @property - def virtual(self): - return False if len(self.values) else True - - @property - def changes(self): - if self.key in self.entry._changes: - return self.entry._changes[self.key] - return None +""" +""" + +# Created on 2014.01.06 +# +# Author: Giovanni Cannata +# +# Copyright 2014 - 2020 Giovanni Cannata +# +# This file is part of ldap3. +# +# ldap3 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ldap3 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ldap3 in the COPYING and COPYING.LESSER files. +# If not, see . + +from os import linesep + +from .. import MODIFY_ADD, MODIFY_REPLACE, MODIFY_DELETE, SEQUENCE_TYPES +from ..core.exceptions import LDAPCursorError +from ..utils.repr import to_stdout_encoding +from . import STATUS_PENDING_CHANGES, STATUS_VIRTUAL, STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING +from ..utils.log import log, log_enabled, ERROR, BASIC, PROTOCOL, EXTENDED + + +# noinspection PyUnresolvedReferences +class Attribute(object): + """Attribute/values object, it includes the search result (after post_query transformation) of each attribute in an entry + + Attribute object is read only + + - values: contain the processed attribute values + - raw_values': contain the unprocessed attribute values + + + """ + + def __init__(self, attr_def, entry, cursor): + self.key = attr_def.key + self.definition = attr_def + self.values = [] + self.raw_values = [] + self.response = None + self.entry = entry + self.cursor = cursor + other_names = [name for name in attr_def.oid_info.name if self.key.lower() != name.lower()] if attr_def.oid_info else None + self.other_names = set(other_names) if other_names else None # self.other_names is None if there are no short names, else is a set of secondary names + + def __repr__(self): + if len(self.values) == 1: + r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding(self.values[0]) + elif len(self.values) > 1: + r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding(self.values[0]) + filler = ' ' * (len(self.key) + 6) + for value in self.values[1:]: + r += linesep + filler + to_stdout_encoding(value) + else: + r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding('') + + return r + + def __str__(self): + if len(self.values) == 1: + return to_stdout_encoding(self.values[0]) + else: + return to_stdout_encoding(self.values) + + def __len__(self): + return len(self.values) + + def __iter__(self): + return self.values.__iter__() + + def __getitem__(self, item): + return self.values[item] + + def __getstate__(self): + cpy = dict(self.__dict__) + cpy['cursor'] = None + return cpy + + def __eq__(self, other): + try: + if self.value == other: + return True + except Exception: + return False + + def __ne__(self, other): + return not self == other + + @property + def value(self): + """ + :return: The single value or a list of values of the attribute. + """ + if not self.values: + return None + + return self.values[0] if len(self.values) == 1 else self.values + + +class OperationalAttribute(Attribute): + """Operational attribute/values object. Include the search result of an + operational attribute in an entry + + OperationalAttribute object is read only + + - values: contains the processed attribute values + - raw_values: contains the unprocessed attribute values + + It may not have an AttrDef + + """ + + def __repr__(self): + if len(self.values) == 1: + r = to_stdout_encoding(self.key) + ' [OPERATIONAL]: ' + to_stdout_encoding(self.values[0]) + elif len(self.values) > 1: + r = to_stdout_encoding(self.key) + ' [OPERATIONAL]: ' + to_stdout_encoding(self.values[0]) + filler = ' ' * (len(self.key) + 6) + for value in sorted(self.values[1:]): + r += linesep + filler + to_stdout_encoding(value) + else: + r = '' + + return r + + +class WritableAttribute(Attribute): + def __repr__(self): + filler = ' ' * (len(self.key) + 6) + if len(self.values) == 1: + r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding(self.values[0]) + elif len(self.values) > 1: + r = to_stdout_encoding(self.key) + ': ' + to_stdout_encoding(self.values[0]) + for value in self.values[1:]: + r += linesep + filler + to_stdout_encoding(value) + else: + r = to_stdout_encoding(self.key) + to_stdout_encoding(': ') + if self.definition.name in self.entry._changes: + r += linesep + filler + 'CHANGES: ' + str(self.entry._changes[self.definition.name]) + return r + + def __iadd__(self, other): + self.add(other) + return Ellipsis # hack to avoid calling set() in entry __setattr__ + + def __isub__(self, other): + self.delete(other) + return Ellipsis # hack to avoid calling set_value in entry __setattr__ + + def _update_changes(self, changes, remove_old=False): + # checks for friendly key in AttrDef and uses the real attribute name + if self.definition and self.definition.name: + key = self.definition.name + else: + key = self.key + + if key not in self.entry._changes or remove_old: # remove old changes (for removing attribute) + self.entry._changes[key] = [] + + self.entry._changes[key].append(changes) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'updated changes <%r> for <%s> attribute in <%s> entry', changes, self.key, self.entry.entry_dn) + self.entry._state.set_status(STATUS_PENDING_CHANGES) + + def add(self, values): + if log_enabled(PROTOCOL): + log(PROTOCOL, 'adding %r to <%s> attribute in <%s> entry', values, self.key, self.entry.entry_dn) + # new value for attribute to commit with a MODIFY_ADD + if self.entry._state._initial_status == STATUS_VIRTUAL: + error_message = 'cannot perform a modify operation in a new entry' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + if self.entry.entry_status in [STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING]: + error_message = self.entry.entry_status + ' - cannot add attributes' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + if values is None: + error_message = 'value to add cannot be None' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + if values is not None: + validated = self.definition.validate(values) # returns True, False or a value to substitute to the actual values + if validated is False: + error_message = 'value \'%s\' non valid for attribute \'%s\'' % (values, self.key) + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + elif validated is not True: # a valid LDAP value equivalent to the actual values + values = validated + self._update_changes((MODIFY_ADD, values if isinstance(values, SEQUENCE_TYPES) else [values])) + + def set(self, values): + # new value for attribute to commit with a MODIFY_REPLACE, old values are deleted + if log_enabled(PROTOCOL): + log(PROTOCOL, 'setting %r to <%s> attribute in <%s> entry', values, self.key, self.entry.entry_dn) + if self.entry.entry_status in [STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING]: + error_message = self.entry.entry_status + ' - cannot set attributes' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + if values is None: + error_message = 'new value cannot be None' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + validated = self.definition.validate(values) # returns True, False or a value to substitute to the actual values + if validated is False: + error_message = 'value \'%s\' non valid for attribute \'%s\'' % (values, self.key) + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + elif validated is not True: # a valid LDAP value equivalent to the actual values + values = validated + self._update_changes((MODIFY_REPLACE, values if isinstance(values, SEQUENCE_TYPES) else [values]), remove_old=True) + + def delete(self, values): + # value for attribute to delete in commit with a MODIFY_DELETE + if log_enabled(PROTOCOL): + log(PROTOCOL, 'deleting %r from <%s> attribute in <%s> entry', values, self.key, self.entry.entry_dn) + if self.entry._state._initial_status == STATUS_VIRTUAL: + error_message = 'cannot delete an attribute value in a new entry' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + if self.entry.entry_status in [STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING]: + error_message = self.entry.entry_status + ' - cannot delete attributes' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + if values is None: + error_message = 'value to delete cannot be None' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + if not isinstance(values, SEQUENCE_TYPES): + values = [values] + for single_value in values: + if single_value not in self.values: + error_message = 'value \'%s\' not present in \'%s\'' % (single_value, ', '.join(self.values)) + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + self._update_changes((MODIFY_DELETE, values)) + + def remove(self): + if log_enabled(PROTOCOL): + log(PROTOCOL, 'removing <%s> attribute in <%s> entry', self.key, self.entry.entry_dn) + if self.entry._state._initial_status == STATUS_VIRTUAL: + error_message = 'cannot remove an attribute in a new entry' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + if self.entry.entry_status in [STATUS_READY_FOR_DELETION, STATUS_READY_FOR_MOVING, STATUS_READY_FOR_RENAMING]: + error_message = self.entry.entry_status + ' - cannot remove attributes' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', error_message, self) + raise LDAPCursorError(error_message) + self._update_changes((MODIFY_REPLACE, []), True) + + def discard(self): + if log_enabled(PROTOCOL): + log(PROTOCOL, 'discarding <%s> attribute in <%s> entry', self.key, self.entry.entry_dn) + del self.entry._changes[self.key] + if not self.entry._changes: + self.entry._state.set_status(self.entry._state._initial_status) + + @property + def virtual(self): + return False if len(self.values) else True + + @property + def changes(self): + if self.key in self.entry._changes: + return self.entry._changes[self.key] + return None diff --git a/server/www/packages/packages-linux/x64/ldap3/abstract/cursor.py b/server/www/packages/packages-linux/x64/ldap3/abstract/cursor.py index ad774a1..9259a2c 100644 --- a/server/www/packages/packages-linux/x64/ldap3/abstract/cursor.py +++ b/server/www/packages/packages-linux/x64/ldap3/abstract/cursor.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/abstract/entry.py b/server/www/packages/packages-linux/x64/ldap3/abstract/entry.py index ee8bf20..b73c50f 100644 --- a/server/www/packages/packages-linux/x64/ldap3/abstract/entry.py +++ b/server/www/packages/packages-linux/x64/ldap3/abstract/entry.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -36,7 +36,7 @@ from .. import STRING_TYPES, SEQUENCE_TYPES, MODIFY_ADD, MODIFY_REPLACE from .attribute import WritableAttribute from .objectDef import ObjectDef from .attrDef import AttrDef -from ..core.exceptions import LDAPKeyError, LDAPCursorError +from ..core.exceptions import LDAPKeyError, LDAPCursorError, LDAPCursorAttributeError from ..utils.conv import check_json_dict, format_json, prepare_for_stream from ..protocol.rfc2849 import operation_to_ldif, add_ldif_header from ..utils.dn import safe_dn, safe_rdn, to_dn @@ -86,6 +86,11 @@ class EntryState(object): def __str__(self): return self.__repr__() + def __getstate__(self): + cpy = dict(self.__dict__) + cpy['cursor'] = None + return cpy + def set_status(self, status): conf_ignored_mandatory_attributes_in_object_def = [v.lower() for v in get_config_parameter('IGNORED_MANDATORY_ATTRIBUTES_IN_OBJECT_DEF')] if status not in STATUSES: @@ -125,7 +130,7 @@ class EntryBase(object): """ def __init__(self, dn, cursor): - self.__dict__['_state'] = EntryState(dn, cursor) + self._state = EntryState(dn, cursor) def __repr__(self): if self.__dict__ and self.entry_dn is not None: @@ -157,7 +162,7 @@ class EntryBase(object): def __getattr__(self, item): if isinstance(item, STRING_TYPES): if item == '_state': - return self.__dict__['_state'] + return object.__getattr__(self, item) item = ''.join(item.split()).lower() attr_found = None for attr in self._state.attributes.keys(): @@ -193,24 +198,26 @@ class EntryBase(object): error_message = 'attribute \'%s\' not found' % item if log_enabled(ERROR): log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) + raise LDAPCursorAttributeError(error_message) return self._state.attributes[attr] error_message = 'attribute name must be a string' if log_enabled(ERROR): log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) + raise LDAPCursorAttributeError(error_message) def __setattr__(self, item, value): - if item in self._state.attributes: + if item == '_state': + object.__setattr__(self, item, value) + elif item in self._state.attributes: error_message = 'attribute \'%s\' is read only' % item if log_enabled(ERROR): log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) + raise LDAPCursorAttributeError(error_message) else: error_message = 'entry is read only, cannot add \'%s\'' % item if log_enabled(ERROR): log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) + raise LDAPCursorAttributeError(error_message) def __getitem__(self, item): if isinstance(item, STRING_TYPES): @@ -366,6 +373,7 @@ class Entry(EntryBase): """ def entry_writable(self, object_def=None, writer_cursor=None, attributes=None, custom_validator=None, auxiliary_class=None): + conf_operational_attribute_prefix = get_config_parameter('ABSTRACTION_OPERATIONAL_ATTRIBUTE_PREFIX') if not self.entry_cursor.schema: error_message = 'schema must be available to make an entry writable' if log_enabled(ERROR): @@ -416,9 +424,13 @@ class Entry(EntryBase): writable_entry._state.read_time = self.entry_read_time writable_entry._state.origin = self # reference to the original read-only entry # checks original entry for custom definitions in AttrDefs + attr_to_add = [] + attr_to_remove = [] + object_def_to_add = [] + object_def_to_remove = [] for attr in writable_entry._state.origin.entry_definition._attributes: original_attr = writable_entry._state.origin.entry_definition._attributes[attr] - if attr != original_attr.name and attr not in writable_entry._state.attributes: + if attr != original_attr.name and (attr not in writable_entry._state.attributes or conf_operational_attribute_prefix + original_attr.name not in writable_entry._state.attributes): old_attr_def = writable_entry.entry_definition._attributes[original_attr.name] new_attr_def = AttrDef(original_attr.name, key=attr, @@ -431,9 +443,9 @@ class Entry(EntryBase): mandatory=old_attr_def.mandatory, # keeps value read from schema single_value=old_attr_def.single_value, # keeps value read from schema alias=original_attr.other_names) - object_def = writable_entry.entry_definition - object_def -= old_attr_def - object_def += new_attr_def + od = writable_entry.entry_definition + object_def_to_remove.append(old_attr_def) + object_def_to_add.append(new_attr_def) # updates attribute name in entry attributes new_attr = WritableAttribute(new_attr_def, writable_entry, writable_cursor) if original_attr.name in writable_entry._state.attributes: @@ -441,9 +453,21 @@ class Entry(EntryBase): new_attr.raw_values = writable_entry._state.attributes[original_attr.name].raw_values new_attr.values = writable_entry._state.attributes[original_attr.name].values new_attr.response = writable_entry._state.attributes[original_attr.name].response - writable_entry._state.attributes[attr] = new_attr - # writable_entry._state.attributes.set_alias(attr, new_attr.other_names) - del writable_entry._state.attributes[original_attr.name] + attr_to_add.append((attr, new_attr)) + attr_to_remove.append(original_attr.name) + # writable_entry._state.attributes[attr] = new_attr + ## writable_entry._state.attributes.set_alias(attr, new_attr.other_names) + # del writable_entry._state.attributes[original_attr.name] + for attr, new_attr in attr_to_add: + writable_entry._state.attributes[attr] = new_attr + for attr in attr_to_remove: + del writable_entry._state.attributes[attr] + for object_def in object_def_to_remove: + o = writable_entry.entry_definition + o -= object_def + for object_def in object_def_to_add: + o = writable_entry.entry_definition + o += object_def writable_entry._state.set_status(STATUS_WRITABLE) return writable_entry @@ -471,7 +495,7 @@ class WritableEntry(EntryBase): error_message = 'attribute \'%s\' not defined' % item if log_enabled(ERROR): log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) + raise LDAPCursorAttributeError(error_message) def __getattr__(self, item): if isinstance(item, STRING_TYPES): @@ -491,12 +515,12 @@ class WritableEntry(EntryBase): error_message = 'attribute \'%s\' not defined' % item if log_enabled(ERROR): log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) + raise LDAPCursorAttributeError(error_message) else: error_message = 'attribute name must be a string' if log_enabled(ERROR): log(ERROR, '%s for <%s>', error_message, self) - raise LDAPCursorError(error_message) + raise LDAPCursorAttributeError(error_message) @property def entry_virtual_attributes(self): @@ -620,7 +644,7 @@ class WritableEntry(EntryBase): self._state.origin.__dict__.clear() self._state.origin.__dict__['_state'] = temp_entry._state for attr in self: # returns the whole attribute object - if not attr.virtual: + if not hasattr(attr,'virtual'): self._state.origin.__dict__[attr.key] = self._state.origin._state.attributes[attr.key] self._state.origin._state.read_time = self.entry_read_time else: diff --git a/server/www/packages/packages-linux/x64/ldap3/abstract/objectDef.py b/server/www/packages/packages-linux/x64/ldap3/abstract/objectDef.py index 7fdc481..1f8609c 100644 --- a/server/www/packages/packages-linux/x64/ldap3/abstract/objectDef.py +++ b/server/www/packages/packages-linux/x64/ldap3/abstract/objectDef.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/core/connection.py b/server/www/packages/packages-linux/x64/ldap3/core/connection.py index 9d9211a..0f148e8 100644 --- a/server/www/packages/packages-linux/x64/ldap3/core/connection.py +++ b/server/www/packages/packages-linux/x64/ldap3/core/connection.py @@ -1,1519 +1,1549 @@ -""" -""" - -# Created on 2014.05.31 -# -# Author: Giovanni Cannata -# -# Copyright 2014 - 2019 Giovanni Cannata -# -# This file is part of ldap3. -# -# ldap3 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ldap3 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with ldap3 in the COPYING and COPYING.LESSER files. -# If not, see . -from copy import deepcopy -from os import linesep -from threading import RLock, Lock -from functools import reduce -import json - -from .. import ANONYMOUS, SIMPLE, SASL, MODIFY_ADD, MODIFY_DELETE, MODIFY_REPLACE, get_config_parameter, DEREF_ALWAYS, \ - SUBTREE, ASYNC, SYNC, NO_ATTRIBUTES, ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES, MODIFY_INCREMENT, LDIF, ASYNC_STREAM, \ - RESTARTABLE, ROUND_ROBIN, REUSABLE, AUTO_BIND_DEFAULT, AUTO_BIND_NONE, AUTO_BIND_TLS_BEFORE_BIND,\ - AUTO_BIND_TLS_AFTER_BIND, AUTO_BIND_NO_TLS, STRING_TYPES, SEQUENCE_TYPES, MOCK_SYNC, MOCK_ASYNC, NTLM, EXTERNAL,\ - DIGEST_MD5, GSSAPI, PLAIN - -from .results import RESULT_SUCCESS, RESULT_COMPARE_TRUE, RESULT_COMPARE_FALSE -from ..extend import ExtendedOperationsRoot -from .pooling import ServerPool -from .server import Server -from ..operation.abandon import abandon_operation, abandon_request_to_dict -from ..operation.add import add_operation, add_request_to_dict -from ..operation.bind import bind_operation, bind_request_to_dict -from ..operation.compare import compare_operation, compare_request_to_dict -from ..operation.delete import delete_operation, delete_request_to_dict -from ..operation.extended import extended_operation, extended_request_to_dict -from ..operation.modify import modify_operation, modify_request_to_dict -from ..operation.modifyDn import modify_dn_operation, modify_dn_request_to_dict -from ..operation.search import search_operation, search_request_to_dict -from ..protocol.rfc2849 import operation_to_ldif, add_ldif_header -from ..protocol.sasl.digestMd5 import sasl_digest_md5 -from ..protocol.sasl.external import sasl_external -from ..protocol.sasl.plain import sasl_plain -from ..strategy.sync import SyncStrategy -from ..strategy.mockAsync import MockAsyncStrategy -from ..strategy.asynchronous import AsyncStrategy -from ..strategy.reusable import ReusableStrategy -from ..strategy.restartable import RestartableStrategy -from ..strategy.ldifProducer import LdifProducerStrategy -from ..strategy.mockSync import MockSyncStrategy -from ..strategy.asyncStream import AsyncStreamStrategy -from ..operation.unbind import unbind_operation -from ..protocol.rfc2696 import paged_search_control -from .usage import ConnectionUsage -from .tls import Tls -from .exceptions import LDAPUnknownStrategyError, LDAPBindError, LDAPUnknownAuthenticationMethodError, \ - LDAPSASLMechanismNotSupportedError, LDAPObjectClassError, LDAPConnectionIsReadOnlyError, LDAPChangeError, LDAPExceptionError, \ - LDAPObjectError, LDAPSocketReceiveError, LDAPAttributeError, LDAPInvalidValueError, LDAPConfigurationError - -from ..utils.conv import escape_bytes, prepare_for_stream, check_json_dict, format_json, to_unicode -from ..utils.log import log, log_enabled, ERROR, BASIC, PROTOCOL, EXTENDED, get_library_log_hide_sensitive_data -from ..utils.dn import safe_dn - - -SASL_AVAILABLE_MECHANISMS = [EXTERNAL, - DIGEST_MD5, - GSSAPI, - PLAIN] - -CLIENT_STRATEGIES = [SYNC, - ASYNC, - LDIF, - RESTARTABLE, - REUSABLE, - MOCK_SYNC, - MOCK_ASYNC, - ASYNC_STREAM] - - -def _format_socket_endpoint(endpoint): - if endpoint and len(endpoint) == 2: # IPv4 - return str(endpoint[0]) + ':' + str(endpoint[1]) - elif endpoint and len(endpoint) == 4: # IPv6 - return '[' + str(endpoint[0]) + ']:' + str(endpoint[1]) - - try: - return str(endpoint) - except Exception: - return '?' - - -def _format_socket_endpoints(sock): - if sock: - try: - local = sock.getsockname() - except Exception: - local = (None, None, None, None) - try: - remote = sock.getpeername() - except Exception: - remote = (None, None, None, None) - - return '' - return '' - - -# noinspection PyProtectedMember -class Connection(object): - """Main ldap connection class. - - Controls, if used, must be a list of tuples. Each tuple must have 3 - elements, the control OID, a boolean meaning if the control is - critical, a value. - - If the boolean is set to True the server must honor the control or - refuse the operation - - Mixing controls must be defined in controls specification (as per - RFC 4511) - - :param server: the Server object to connect to - :type server: Server, str - :param user: the user name for simple authentication - :type user: str - :param password: the password for simple authentication - :type password: str - :param auto_bind: specify if the bind will be performed automatically when defining the Connection object - :type auto_bind: int, can be one of AUTO_BIND_DEFAULT, AUTO_BIND_NONE, AUTO_BIND_NO_TLS, AUTO_BIND_TLS_BEFORE_BIND, AUTO_BIND_TLS_AFTER_BIND as specified in ldap3 - :param version: LDAP version, default to 3 - :type version: int - :param authentication: type of authentication - :type authentication: int, can be one of AUTH_ANONYMOUS, AUTH_SIMPLE or AUTH_SASL, as specified in ldap3 - :param client_strategy: communication strategy used in the Connection - :type client_strategy: can be one of STRATEGY_SYNC, STRATEGY_ASYNC_THREADED, STRATEGY_LDIF_PRODUCER, STRATEGY_SYNC_RESTARTABLE, STRATEGY_REUSABLE_THREADED as specified in ldap3 - :param auto_referrals: specify if the connection object must automatically follow referrals - :type auto_referrals: bool - :param sasl_mechanism: mechanism for SASL authentication, can be one of 'EXTERNAL', 'DIGEST-MD5', 'GSSAPI', 'PLAIN' - :type sasl_mechanism: str - :param sasl_credentials: credentials for SASL mechanism - :type sasl_credentials: tuple - :param check_names: if True the library will check names of attributes and object classes against the schema. Also values found in entries will be formatted as indicated by the schema - :type check_names: bool - :param collect_usage: collect usage metrics in the usage attribute - :type collect_usage: bool - :param read_only: disable operations that modify data in the LDAP server - :type read_only: bool - :param lazy: open and bind the connection only when an actual operation is performed - :type lazy: bool - :param raise_exceptions: raise exceptions when operations are not successful, if False operations return False if not successful but not raise exceptions - :type raise_exceptions: bool - :param pool_name: pool name for pooled strategies - :type pool_name: str - :param pool_size: pool size for pooled strategies - :type pool_size: int - :param pool_lifetime: pool lifetime for pooled strategies - :type pool_lifetime: int - :param cred_store: credential store for gssapi - :type cred_store: dict - :param use_referral_cache: keep referral connections open and reuse them - :type use_referral_cache: bool - :param auto_escape: automatic escaping of filter values - :param auto_encode: automatic encoding of attribute values - :type use_referral_cache: bool - """ - - def __init__(self, - server, - user=None, - password=None, - auto_bind=AUTO_BIND_DEFAULT, - version=3, - authentication=None, - client_strategy=SYNC, - auto_referrals=True, - auto_range=True, - sasl_mechanism=None, - sasl_credentials=None, - check_names=True, - collect_usage=False, - read_only=False, - lazy=False, - raise_exceptions=False, - pool_name=None, - pool_size=None, - pool_lifetime=None, - cred_store=None, - fast_decoder=True, - receive_timeout=None, - return_empty_attributes=True, - use_referral_cache=False, - auto_escape=True, - auto_encode=True, - pool_keepalive=None): - - conf_default_pool_name = get_config_parameter('DEFAULT_THREADED_POOL_NAME') - self.connection_lock = RLock() # re-entrant lock to ensure that operations in the Connection object are executed atomically in the same thread - with self.connection_lock: - if client_strategy not in CLIENT_STRATEGIES: - self.last_error = 'unknown client connection strategy' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPUnknownStrategyError(self.last_error) - - self.strategy_type = client_strategy - self.user = user - self.password = password - - if not authentication and self.user: - self.authentication = SIMPLE - elif not authentication: - self.authentication = ANONYMOUS - elif authentication in [SIMPLE, ANONYMOUS, SASL, NTLM]: - self.authentication = authentication - else: - self.last_error = 'unknown authentication method' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPUnknownAuthenticationMethodError(self.last_error) - - self.version = version - self.auto_referrals = True if auto_referrals else False - self.request = None - self.response = None - self.result = None - self.bound = False - self.listening = False - self.closed = True - self.last_error = None - if auto_bind is False: # compatibility with older version where auto_bind was a boolean - self.auto_bind = AUTO_BIND_DEFAULT - elif auto_bind is True: - self.auto_bind = AUTO_BIND_NO_TLS - else: - self.auto_bind = auto_bind - self.sasl_mechanism = sasl_mechanism - self.sasl_credentials = sasl_credentials - self._usage = ConnectionUsage() if collect_usage else None - self.socket = None - self.tls_started = False - self.sasl_in_progress = False - self.read_only = read_only - self._context_state = [] - self._deferred_open = False - self._deferred_bind = False - self._deferred_start_tls = False - self._bind_controls = None - self._executing_deferred = False - self.lazy = lazy - self.pool_name = pool_name if pool_name else conf_default_pool_name - self.pool_size = pool_size - self.cred_store = cred_store - self.pool_lifetime = pool_lifetime - self.pool_keepalive = pool_keepalive - self.starting_tls = False - self.check_names = check_names - self.raise_exceptions = raise_exceptions - self.auto_range = True if auto_range else False - self.extend = ExtendedOperationsRoot(self) - self._entries = [] - self.fast_decoder = fast_decoder - self.receive_timeout = receive_timeout - self.empty_attributes = return_empty_attributes - self.use_referral_cache = use_referral_cache - self.auto_escape = auto_escape - self.auto_encode = auto_encode - - if isinstance(server, STRING_TYPES): - server = Server(server) - if isinstance(server, SEQUENCE_TYPES): - server = ServerPool(server, ROUND_ROBIN, active=True, exhaust=True) - - if isinstance(server, ServerPool): - self.server_pool = server - self.server_pool.initialize(self) - self.server = self.server_pool.get_current_server(self) - else: - self.server_pool = None - self.server = server - - # if self.authentication == SIMPLE and self.user and self.check_names: - # self.user = safe_dn(self.user) - # if log_enabled(EXTENDED): - # log(EXTENDED, 'user name sanitized to <%s> for simple authentication via <%s>', self.user, self) - - if self.strategy_type == SYNC: - self.strategy = SyncStrategy(self) - elif self.strategy_type == ASYNC: - self.strategy = AsyncStrategy(self) - elif self.strategy_type == LDIF: - self.strategy = LdifProducerStrategy(self) - elif self.strategy_type == RESTARTABLE: - self.strategy = RestartableStrategy(self) - elif self.strategy_type == REUSABLE: - self.strategy = ReusableStrategy(self) - self.lazy = False - elif self.strategy_type == MOCK_SYNC: - self.strategy = MockSyncStrategy(self) - elif self.strategy_type == MOCK_ASYNC: - self.strategy = MockAsyncStrategy(self) - elif self.strategy_type == ASYNC_STREAM: - self.strategy = AsyncStreamStrategy(self) - else: - self.last_error = 'unknown strategy' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPUnknownStrategyError(self.last_error) - - # maps strategy functions to connection functions - self.send = self.strategy.send - self.open = self.strategy.open - self.get_response = self.strategy.get_response - self.post_send_single_response = self.strategy.post_send_single_response - self.post_send_search = self.strategy.post_send_search - - if not self.strategy.no_real_dsa: - self.do_auto_bind() - # else: # for strategies with a fake server set get_info to NONE if server hasn't a schema - # if self.server and not self.server.schema: - # self.server.get_info = NONE - if log_enabled(BASIC): - if get_library_log_hide_sensitive_data(): - log(BASIC, 'instantiated Connection: <%s>', self.repr_with_sensitive_data_stripped()) - else: - log(BASIC, 'instantiated Connection: <%r>', self) - - def do_auto_bind(self): - if self.auto_bind and self.auto_bind not in [AUTO_BIND_NONE, AUTO_BIND_DEFAULT]: - if log_enabled(BASIC): - log(BASIC, 'performing automatic bind for <%s>', self) - if self.closed: - self.open(read_server_info=False) - if self.auto_bind == AUTO_BIND_NO_TLS: - self.bind(read_server_info=True) - elif self.auto_bind == AUTO_BIND_TLS_BEFORE_BIND: - self.start_tls(read_server_info=False) - self.bind(read_server_info=True) - elif self.auto_bind == AUTO_BIND_TLS_AFTER_BIND: - self.bind(read_server_info=False) - self.start_tls(read_server_info=True) - if not self.bound: - self.last_error = 'automatic bind not successful' + (' - ' + self.last_error if self.last_error else '') - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPBindError(self.last_error) - - def __str__(self): - s = [ - str(self.server) if self.server else 'None', - 'user: ' + str(self.user), - 'lazy' if self.lazy else 'not lazy', - 'unbound' if not self.bound else ('deferred bind' if self._deferred_bind else 'bound'), - 'closed' if self.closed else ('deferred open' if self._deferred_open else 'open'), - _format_socket_endpoints(self.socket), - 'tls not started' if not self.tls_started else('deferred start_tls' if self._deferred_start_tls else 'tls started'), - 'listening' if self.listening else 'not listening', - self.strategy.__class__.__name__ if hasattr(self, 'strategy') else 'No strategy', - 'internal decoder' if self.fast_decoder else 'pyasn1 decoder' - ] - return ' - '.join(s) - - def __repr__(self): - conf_default_pool_name = get_config_parameter('DEFAULT_THREADED_POOL_NAME') - if self.server_pool: - r = 'Connection(server={0.server_pool!r}'.format(self) - else: - r = 'Connection(server={0.server!r}'.format(self) - r += '' if self.user is None else ', user={0.user!r}'.format(self) - r += '' if self.password is None else ', password={0.password!r}'.format(self) - r += '' if self.auto_bind is None else ', auto_bind={0.auto_bind!r}'.format(self) - r += '' if self.version is None else ', version={0.version!r}'.format(self) - r += '' if self.authentication is None else ', authentication={0.authentication!r}'.format(self) - r += '' if self.strategy_type is None else ', client_strategy={0.strategy_type!r}'.format(self) - r += '' if self.auto_referrals is None else ', auto_referrals={0.auto_referrals!r}'.format(self) - r += '' if self.sasl_mechanism is None else ', sasl_mechanism={0.sasl_mechanism!r}'.format(self) - r += '' if self.sasl_credentials is None else ', sasl_credentials={0.sasl_credentials!r}'.format(self) - r += '' if self.check_names is None else ', check_names={0.check_names!r}'.format(self) - r += '' if self.usage is None else (', collect_usage=' + ('True' if self.usage else 'False')) - r += '' if self.read_only is None else ', read_only={0.read_only!r}'.format(self) - r += '' if self.lazy is None else ', lazy={0.lazy!r}'.format(self) - r += '' if self.raise_exceptions is None else ', raise_exceptions={0.raise_exceptions!r}'.format(self) - r += '' if (self.pool_name is None or self.pool_name == conf_default_pool_name) else ', pool_name={0.pool_name!r}'.format(self) - r += '' if self.pool_size is None else ', pool_size={0.pool_size!r}'.format(self) - r += '' if self.pool_lifetime is None else ', pool_lifetime={0.pool_lifetime!r}'.format(self) - r += '' if self.pool_keepalive is None else ', pool_keepalive={0.pool_keepalive!r}'.format(self) - r += '' if self.cred_store is None else (', cred_store=' + repr(self.cred_store)) - r += '' if self.fast_decoder is None else (', fast_decoder=' + ('True' if self.fast_decoder else 'False')) - r += '' if self.auto_range is None else (', auto_range=' + ('True' if self.auto_range else 'False')) - r += '' if self.receive_timeout is None else ', receive_timeout={0.receive_timeout!r}'.format(self) - r += '' if self.empty_attributes is None else (', return_empty_attributes=' + ('True' if self.empty_attributes else 'False')) - r += '' if self.auto_encode is None else (', auto_encode=' + ('True' if self.auto_encode else 'False')) - r += '' if self.auto_escape is None else (', auto_escape=' + ('True' if self.auto_escape else 'False')) - r += '' if self.use_referral_cache is None else (', use_referral_cache=' + ('True' if self.use_referral_cache else 'False')) - r += ')' - - return r - - def repr_with_sensitive_data_stripped(self): - conf_default_pool_name = get_config_parameter('DEFAULT_THREADED_POOL_NAME') - if self.server_pool: - r = 'Connection(server={0.server_pool!r}'.format(self) - else: - r = 'Connection(server={0.server!r}'.format(self) - r += '' if self.user is None else ', user={0.user!r}'.format(self) - r += '' if self.password is None else ", password='{0}'".format('' % len(self.password)) - r += '' if self.auto_bind is None else ', auto_bind={0.auto_bind!r}'.format(self) - r += '' if self.version is None else ', version={0.version!r}'.format(self) - r += '' if self.authentication is None else ', authentication={0.authentication!r}'.format(self) - r += '' if self.strategy_type is None else ', client_strategy={0.strategy_type!r}'.format(self) - r += '' if self.auto_referrals is None else ', auto_referrals={0.auto_referrals!r}'.format(self) - r += '' if self.sasl_mechanism is None else ', sasl_mechanism={0.sasl_mechanism!r}'.format(self) - if self.sasl_mechanism == DIGEST_MD5: - r += '' if self.sasl_credentials is None else ", sasl_credentials=({0!r}, {1!r}, '{2}', {3!r})".format(self.sasl_credentials[0], self.sasl_credentials[1], '*' * len(self.sasl_credentials[2]), self.sasl_credentials[3]) - else: - r += '' if self.sasl_credentials is None else ', sasl_credentials={0.sasl_credentials!r}'.format(self) - r += '' if self.check_names is None else ', check_names={0.check_names!r}'.format(self) - r += '' if self.usage is None else (', collect_usage=' + 'True' if self.usage else 'False') - r += '' if self.read_only is None else ', read_only={0.read_only!r}'.format(self) - r += '' if self.lazy is None else ', lazy={0.lazy!r}'.format(self) - r += '' if self.raise_exceptions is None else ', raise_exceptions={0.raise_exceptions!r}'.format(self) - r += '' if (self.pool_name is None or self.pool_name == conf_default_pool_name) else ', pool_name={0.pool_name!r}'.format(self) - r += '' if self.pool_size is None else ', pool_size={0.pool_size!r}'.format(self) - r += '' if self.pool_lifetime is None else ', pool_lifetime={0.pool_lifetime!r}'.format(self) - r += '' if self.pool_keepalive is None else ', pool_keepalive={0.pool_keepalive!r}'.format(self) - r += '' if self.cred_store is None else (', cred_store=' + repr(self.cred_store)) - r += '' if self.fast_decoder is None else (', fast_decoder=' + 'True' if self.fast_decoder else 'False') - r += '' if self.auto_range is None else (', auto_range=' + ('True' if self.auto_range else 'False')) - r += '' if self.receive_timeout is None else ', receive_timeout={0.receive_timeout!r}'.format(self) - r += '' if self.empty_attributes is None else (', return_empty_attributes=' + 'True' if self.empty_attributes else 'False') - r += '' if self.auto_encode is None else (', auto_encode=' + ('True' if self.auto_encode else 'False')) - r += '' if self.auto_escape is None else (', auto_escape=' + ('True' if self.auto_escape else 'False')) - r += '' if self.use_referral_cache is None else (', use_referral_cache=' + ('True' if self.use_referral_cache else 'False')) - r += ')' - - return r - - @property - def stream(self): - """Used by the LDIFProducer strategy to accumulate the ldif-change operations with a single LDIF header - :return: reference to the response stream if defined in the strategy. - """ - return self.strategy.get_stream() if self.strategy.can_stream else None - - @stream.setter - def stream(self, value): - with self.connection_lock: - if self.strategy.can_stream: - self.strategy.set_stream(value) - - @property - def usage(self): - """Usage statistics for the connection. - :return: Usage object - """ - if not self._usage: - return None - if self.strategy.pooled: # update master connection usage from pooled connections - self._usage.reset() - for worker in self.strategy.pool.workers: - self._usage += worker.connection.usage - self._usage += self.strategy.pool.terminated_usage - return self._usage - - def __enter__(self): - with self.connection_lock: - self._context_state.append((self.bound, self.closed)) # save status out of context as a tuple in a list - if self.auto_bind != AUTO_BIND_NONE: - if self.auto_bind == AUTO_BIND_DEFAULT: - self.auto_bind = AUTO_BIND_NO_TLS - if self.closed: - self.open() - if not self.bound: - self.bind() - - return self - - # noinspection PyUnusedLocal - def __exit__(self, exc_type, exc_val, exc_tb): - with self.connection_lock: - context_bound, context_closed = self._context_state.pop() - if (not context_bound and self.bound) or self.stream: # restore status prior to entering context - try: - self.unbind() - except LDAPExceptionError: - pass - - if not context_closed and self.closed: - self.open() - - if exc_type is not None: - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', exc_type, self) - return False # re-raise LDAPExceptionError - - def bind(self, - read_server_info=True, - controls=None): - """Bind to ldap Server with the authentication method and the user defined in the connection - - :param read_server_info: reads info from server - :param controls: LDAP controls to send along with the bind operation - :type controls: list of tuple - :return: bool - - """ - if log_enabled(BASIC): - log(BASIC, 'start BIND operation via <%s>', self) - self.last_error = None - with self.connection_lock: - if self.lazy and not self._executing_deferred: - if self.strategy.pooled: - self.strategy.validate_bind(controls) - self._deferred_bind = True - self._bind_controls = controls - self.bound = True - if log_enabled(BASIC): - log(BASIC, 'deferring bind for <%s>', self) - else: - self._deferred_bind = False - self._bind_controls = None - if self.closed: # try to open connection if closed - self.open(read_server_info=False) - if self.authentication == ANONYMOUS: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'performing anonymous BIND for <%s>', self) - if not self.strategy.pooled: - request = bind_operation(self.version, self.authentication, self.user, '', auto_encode=self.auto_encode) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'anonymous BIND request <%s> sent via <%s>', bind_request_to_dict(request), self) - response = self.post_send_single_response(self.send('bindRequest', request, controls)) - else: - response = self.strategy.validate_bind(controls) # only for REUSABLE - elif self.authentication == SIMPLE: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'performing simple BIND for <%s>', self) - if not self.strategy.pooled: - request = bind_operation(self.version, self.authentication, self.user, self.password, auto_encode=self.auto_encode) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'simple BIND request <%s> sent via <%s>', bind_request_to_dict(request), self) - response = self.post_send_single_response(self.send('bindRequest', request, controls)) - else: - response = self.strategy.validate_bind(controls) # only for REUSABLE - elif self.authentication == SASL: - if self.sasl_mechanism in SASL_AVAILABLE_MECHANISMS: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'performing SASL BIND for <%s>', self) - if not self.strategy.pooled: - response = self.do_sasl_bind(controls) - else: - response = self.strategy.validate_bind(controls) # only for REUSABLE - else: - self.last_error = 'requested SASL mechanism not supported' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPSASLMechanismNotSupportedError(self.last_error) - elif self.authentication == NTLM: - if self.user and self.password and len(self.user.split('\\')) == 2: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'performing NTLM BIND for <%s>', self) - if not self.strategy.pooled: - response = self.do_ntlm_bind(controls) - else: - response = self.strategy.validate_bind(controls) # only for REUSABLE - else: # user or password missing - self.last_error = 'NTLM needs domain\\username and a password' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPUnknownAuthenticationMethodError(self.last_error) - else: - self.last_error = 'unknown authentication method' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPUnknownAuthenticationMethodError(self.last_error) - - if not self.strategy.sync and not self.strategy.pooled and self.authentication not in (SASL, NTLM): # get response if asynchronous except for SASL and NTLM that return the bind result even for asynchronous strategy - _, result = self.get_response(response) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'async BIND response id <%s> received via <%s>', result, self) - elif self.strategy.sync: - result = self.result - if log_enabled(PROTOCOL): - log(PROTOCOL, 'BIND response <%s> received via <%s>', result, self) - elif self.strategy.pooled or self.authentication in (SASL, NTLM): # asynchronous SASL and NTLM or reusable strtegy get the bind result synchronously - result = response - else: - self.last_error = 'unknown authentication method' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPUnknownAuthenticationMethodError(self.last_error) - - if result is None: - # self.bound = True if self.strategy_type == REUSABLE else False - self.bound = False - elif result is True: - self.bound = True - elif result is False: - self.bound = False - else: - self.bound = True if result['result'] == RESULT_SUCCESS else False - if not self.bound and result and result['description'] and not self.last_error: - self.last_error = result['description'] - - if read_server_info and self.bound: - self.refresh_server_info() - self._entries = [] - - if log_enabled(BASIC): - log(BASIC, 'done BIND operation, result <%s>', self.bound) - - return self.bound - - def rebind(self, - user=None, - password=None, - authentication=None, - sasl_mechanism=None, - sasl_credentials=None, - read_server_info=True, - controls=None - ): - - if log_enabled(BASIC): - log(BASIC, 'start (RE)BIND operation via <%s>', self) - self.last_error = None - with self.connection_lock: - if user: - self.user = user - if password is not None: - self.password = password - if not authentication and user: - self.authentication = SIMPLE - if authentication in [SIMPLE, ANONYMOUS, SASL, NTLM]: - self.authentication = authentication - elif authentication is not None: - self.last_error = 'unknown authentication method' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPUnknownAuthenticationMethodError(self.last_error) - if sasl_mechanism: - self.sasl_mechanism = sasl_mechanism - if sasl_credentials: - self.sasl_credentials = sasl_credentials - - # if self.authentication == SIMPLE and self.user and self.check_names: - # self.user = safe_dn(self.user) - # if log_enabled(EXTENDED): - # log(EXTENDED, 'user name sanitized to <%s> for rebind via <%s>', self.user, self) - - if not self.strategy.pooled: - try: - return self.bind(read_server_info, controls) - except LDAPSocketReceiveError: - raise LDAPBindError('Unable to rebind as a different user, furthermore the server abruptly closed the connection') - else: - self.strategy.pool.rebind_pool() - return True - - def unbind(self, - controls=None): - """Unbind the connected user. Unbind implies closing session as per RFC4511 (4.3) - - :param controls: LDAP controls to send along with the bind operation - - """ - if log_enabled(BASIC): - log(BASIC, 'start UNBIND operation via <%s>', self) - - if self.use_referral_cache: - self.strategy.unbind_referral_cache() - - self.last_error = None - with self.connection_lock: - if self.lazy and not self._executing_deferred and (self._deferred_bind or self._deferred_open): # _clear deferred status - self.strategy.close() - self._deferred_open = False - self._deferred_bind = False - self._deferred_start_tls = False - elif not self.closed: - request = unbind_operation() - if log_enabled(PROTOCOL): - log(PROTOCOL, 'UNBIND request sent via <%s>', self) - self.send('unbindRequest', request, controls) - self.strategy.close() - - if log_enabled(BASIC): - log(BASIC, 'done UNBIND operation, result <%s>', True) - - return True - - def search(self, - search_base, - search_filter, - search_scope=SUBTREE, - dereference_aliases=DEREF_ALWAYS, - attributes=None, - size_limit=0, - time_limit=0, - types_only=False, - get_operational_attributes=False, - controls=None, - paged_size=None, - paged_criticality=False, - paged_cookie=None, - auto_escape=None): - """ - Perform an ldap search: - - - If attributes is empty noRFC2696 with the specified size - - If paged is 0 and cookie is present the search is abandoned on - server attribute is returned - - If attributes is ALL_ATTRIBUTES all attributes are returned - - If paged_size is an int greater than 0 a simple paged search - is tried as described in - - Cookie is an opaque string received in the last paged search - and must be used on the next paged search response - - If lazy == True open and bind will be deferred until another - LDAP operation is performed - - If mssing_attributes == True then an attribute not returned by the server is set to None - - If auto_escape is set it overrides the Connection auto_escape - """ - conf_attributes_excluded_from_check = [v.lower() for v in get_config_parameter('ATTRIBUTES_EXCLUDED_FROM_CHECK')] - if log_enabled(BASIC): - log(BASIC, 'start SEARCH operation via <%s>', self) - - if self.check_names and search_base: - search_base = safe_dn(search_base) - if log_enabled(EXTENDED): - log(EXTENDED, 'search base sanitized to <%s> for SEARCH operation via <%s>', search_base, self) - - with self.connection_lock: - self._fire_deferred() - if not attributes: - attributes = [NO_ATTRIBUTES] - elif attributes == ALL_ATTRIBUTES: - attributes = [ALL_ATTRIBUTES] - - if isinstance(attributes, STRING_TYPES): - attributes = [attributes] - - if get_operational_attributes and isinstance(attributes, list): - attributes.append(ALL_OPERATIONAL_ATTRIBUTES) - elif get_operational_attributes and isinstance(attributes, tuple): - attributes += (ALL_OPERATIONAL_ATTRIBUTES, ) # concatenate tuple - - if isinstance(paged_size, int): - if log_enabled(PROTOCOL): - log(PROTOCOL, 'performing paged search for %d items with cookie <%s> for <%s>', paged_size, escape_bytes(paged_cookie), self) - - if controls is None: - controls = [] - else: - # Copy the controls to prevent modifying the original object - controls = list(controls) - controls.append(paged_search_control(paged_criticality, paged_size, paged_cookie)) - - if self.server and self.server.schema and self.check_names: - for attribute_name in attributes: - if ';' in attribute_name: # remove tags - attribute_name_to_check = attribute_name.split(';')[0] - else: - attribute_name_to_check = attribute_name - if self.server.schema and attribute_name_to_check.lower() not in conf_attributes_excluded_from_check and attribute_name_to_check not in self.server.schema.attribute_types: - raise LDAPAttributeError('invalid attribute type ' + attribute_name_to_check) - - request = search_operation(search_base, - search_filter, - search_scope, - dereference_aliases, - attributes, - size_limit, - time_limit, - types_only, - self.auto_escape if auto_escape is None else auto_escape, - self.auto_encode, - self.server.schema if self.server else None, - validator=self.server.custom_validator, - check_names=self.check_names) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'SEARCH request <%s> sent via <%s>', search_request_to_dict(request), self) - response = self.post_send_search(self.send('searchRequest', request, controls)) - self._entries = [] - - if isinstance(response, int): # asynchronous strategy - return_value = response - if log_enabled(PROTOCOL): - log(PROTOCOL, 'async SEARCH response id <%s> received via <%s>', return_value, self) - else: - return_value = True if self.result['type'] == 'searchResDone' and len(response) > 0 else False - if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: - self.last_error = self.result['description'] - - if log_enabled(PROTOCOL): - for entry in response: - if entry['type'] == 'searchResEntry': - log(PROTOCOL, 'SEARCH response entry <%s> received via <%s>', entry, self) - elif entry['type'] == 'searchResRef': - log(PROTOCOL, 'SEARCH response reference <%s> received via <%s>', entry, self) - - if log_enabled(BASIC): - log(BASIC, 'done SEARCH operation, result <%s>', return_value) - - return return_value - - def compare(self, - dn, - attribute, - value, - controls=None): - """ - Perform a compare operation - """ - conf_attributes_excluded_from_check = [v.lower() for v in get_config_parameter('ATTRIBUTES_EXCLUDED_FROM_CHECK')] - - if log_enabled(BASIC): - log(BASIC, 'start COMPARE operation via <%s>', self) - self.last_error = None - if self.check_names: - dn = safe_dn(dn) - if log_enabled(EXTENDED): - log(EXTENDED, 'dn sanitized to <%s> for COMPARE operation via <%s>', dn, self) - - if self.server and self.server.schema and self.check_names: - if ';' in attribute: # remove tags for checking - attribute_name_to_check = attribute.split(';')[0] - else: - attribute_name_to_check = attribute - - if self.server.schema.attribute_types and attribute_name_to_check.lower() not in conf_attributes_excluded_from_check and attribute_name_to_check not in self.server.schema.attribute_types: - raise LDAPAttributeError('invalid attribute type ' + attribute_name_to_check) - - if isinstance(value, SEQUENCE_TYPES): # value can't be a sequence - raise LDAPInvalidValueError('value cannot be a sequence') - - with self.connection_lock: - self._fire_deferred() - request = compare_operation(dn, attribute, value, self.auto_encode, self.server.schema if self.server else None, validator=self.server.custom_validator if self.server else None, check_names=self.check_names) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'COMPARE request <%s> sent via <%s>', compare_request_to_dict(request), self) - response = self.post_send_single_response(self.send('compareRequest', request, controls)) - self._entries = [] - if isinstance(response, int): - return_value = response - if log_enabled(PROTOCOL): - log(PROTOCOL, 'async COMPARE response id <%s> received via <%s>', return_value, self) - else: - return_value = True if self.result['type'] == 'compareResponse' and self.result['result'] == RESULT_COMPARE_TRUE else False - if not return_value and self.result['result'] not in [RESULT_COMPARE_TRUE, RESULT_COMPARE_FALSE] and not self.last_error: - self.last_error = self.result['description'] - - if log_enabled(PROTOCOL): - log(PROTOCOL, 'COMPARE response <%s> received via <%s>', response, self) - - if log_enabled(BASIC): - log(BASIC, 'done COMPARE operation, result <%s>', return_value) - - return return_value - - def add(self, - dn, - object_class=None, - attributes=None, - controls=None): - """ - Add dn to the DIT, object_class is None, a class name or a list - of class names. - - Attributes is a dictionary in the form 'attr': 'val' or 'attr': - ['val1', 'val2', ...] for multivalued attributes - """ - conf_attributes_excluded_from_check = [v.lower() for v in get_config_parameter('ATTRIBUTES_EXCLUDED_FROM_CHECK')] - conf_classes_excluded_from_check = [v.lower() for v in get_config_parameter('CLASSES_EXCLUDED_FROM_CHECK')] - if log_enabled(BASIC): - log(BASIC, 'start ADD operation via <%s>', self) - self.last_error = None - _attributes = deepcopy(attributes) # dict could change when adding objectClass values - if self.check_names: - dn = safe_dn(dn) - if log_enabled(EXTENDED): - log(EXTENDED, 'dn sanitized to <%s> for ADD operation via <%s>', dn, self) - - with self.connection_lock: - self._fire_deferred() - attr_object_class = [] - if object_class is None: - parm_object_class = [] - else: - parm_object_class = list(object_class) if isinstance(object_class, SEQUENCE_TYPES) else [object_class] - - object_class_attr_name = '' - if _attributes: - for attr in _attributes: - if attr.lower() == 'objectclass': - object_class_attr_name = attr - attr_object_class = list(_attributes[object_class_attr_name]) if isinstance(_attributes[object_class_attr_name], SEQUENCE_TYPES) else [_attributes[object_class_attr_name]] - break - else: - _attributes = dict() - - if not object_class_attr_name: - object_class_attr_name = 'objectClass' - - attr_object_class = [to_unicode(object_class) for object_class in attr_object_class] # converts objectclass to unicode in case of bytes value - _attributes[object_class_attr_name] = reduce(lambda x, y: x + [y] if y not in x else x, parm_object_class + attr_object_class, []) # remove duplicate ObjectClasses - - if not _attributes[object_class_attr_name]: - self.last_error = 'objectClass attribute is mandatory' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPObjectClassError(self.last_error) - - if self.server and self.server.schema and self.check_names: - for object_class_name in _attributes[object_class_attr_name]: - if object_class_name.lower() not in conf_classes_excluded_from_check and object_class_name not in self.server.schema.object_classes: - raise LDAPObjectClassError('invalid object class ' + str(object_class_name)) - - for attribute_name in _attributes: - if ';' in attribute_name: # remove tags for checking - attribute_name_to_check = attribute_name.split(';')[0] - else: - attribute_name_to_check = attribute_name - - if attribute_name_to_check.lower() not in conf_attributes_excluded_from_check and attribute_name_to_check not in self.server.schema.attribute_types: - raise LDAPAttributeError('invalid attribute type ' + attribute_name_to_check) - - request = add_operation(dn, _attributes, self.auto_encode, self.server.schema if self.server else None, validator=self.server.custom_validator if self.server else None, check_names=self.check_names) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'ADD request <%s> sent via <%s>', add_request_to_dict(request), self) - response = self.post_send_single_response(self.send('addRequest', request, controls)) - self._entries = [] - - if isinstance(response, STRING_TYPES + (int, )): - return_value = response - if log_enabled(PROTOCOL): - log(PROTOCOL, 'async ADD response id <%s> received via <%s>', return_value, self) - else: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'ADD response <%s> received via <%s>', response, self) - return_value = True if self.result['type'] == 'addResponse' and self.result['result'] == RESULT_SUCCESS else False - if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: - self.last_error = self.result['description'] - - if log_enabled(BASIC): - log(BASIC, 'done ADD operation, result <%s>', return_value) - - return return_value - - def delete(self, - dn, - controls=None): - """ - Delete the entry identified by the DN from the DIB. - """ - if log_enabled(BASIC): - log(BASIC, 'start DELETE operation via <%s>', self) - self.last_error = None - if self.check_names: - dn = safe_dn(dn) - if log_enabled(EXTENDED): - log(EXTENDED, 'dn sanitized to <%s> for DELETE operation via <%s>', dn, self) - - with self.connection_lock: - self._fire_deferred() - if self.read_only: - self.last_error = 'connection is read-only' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPConnectionIsReadOnlyError(self.last_error) - - request = delete_operation(dn) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'DELETE request <%s> sent via <%s>', delete_request_to_dict(request), self) - response = self.post_send_single_response(self.send('delRequest', request, controls)) - self._entries = [] - - if isinstance(response, STRING_TYPES + (int, )): - return_value = response - if log_enabled(PROTOCOL): - log(PROTOCOL, 'async DELETE response id <%s> received via <%s>', return_value, self) - else: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'DELETE response <%s> received via <%s>', response, self) - return_value = True if self.result['type'] == 'delResponse' and self.result['result'] == RESULT_SUCCESS else False - if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: - self.last_error = self.result['description'] - - if log_enabled(BASIC): - log(BASIC, 'done DELETE operation, result <%s>', return_value) - - return return_value - - def modify(self, - dn, - changes, - controls=None): - """ - Modify attributes of entry - - - changes is a dictionary in the form {'attribute1': change), 'attribute2': [change, change, ...], ...} - - change is (operation, [value1, value2, ...]) - - operation is 0 (MODIFY_ADD), 1 (MODIFY_DELETE), 2 (MODIFY_REPLACE), 3 (MODIFY_INCREMENT) - """ - conf_attributes_excluded_from_check = [v.lower() for v in get_config_parameter('ATTRIBUTES_EXCLUDED_FROM_CHECK')] - - if log_enabled(BASIC): - log(BASIC, 'start MODIFY operation via <%s>', self) - self.last_error = None - if self.check_names: - dn = safe_dn(dn) - if log_enabled(EXTENDED): - log(EXTENDED, 'dn sanitized to <%s> for MODIFY operation via <%s>', dn, self) - - with self.connection_lock: - self._fire_deferred() - if self.read_only: - self.last_error = 'connection is read-only' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPConnectionIsReadOnlyError(self.last_error) - - if not isinstance(changes, dict): - self.last_error = 'changes must be a dictionary' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPChangeError(self.last_error) - - if not changes: - self.last_error = 'no changes in modify request' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPChangeError(self.last_error) - - changelist = dict() - for attribute_name in changes: - if self.server and self.server.schema and self.check_names: - if ';' in attribute_name: # remove tags for checking - attribute_name_to_check = attribute_name.split(';')[0] - else: - attribute_name_to_check = attribute_name - - if self.server.schema.attribute_types and attribute_name_to_check.lower() not in conf_attributes_excluded_from_check and attribute_name_to_check not in self.server.schema.attribute_types: - raise LDAPAttributeError('invalid attribute type ' + attribute_name_to_check) - change = changes[attribute_name] - if isinstance(change, SEQUENCE_TYPES) and change[0] in [MODIFY_ADD, MODIFY_DELETE, MODIFY_REPLACE, MODIFY_INCREMENT, 0, 1, 2, 3]: - if len(change) != 2: - self.last_error = 'malformed change' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPChangeError(self.last_error) - - changelist[attribute_name] = [change] # insert change in a list - else: - for change_operation in change: - if len(change_operation) != 2 or change_operation[0] not in [MODIFY_ADD, MODIFY_DELETE, MODIFY_REPLACE, MODIFY_INCREMENT, 0, 1, 2, 3]: - self.last_error = 'invalid change list' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPChangeError(self.last_error) - changelist[attribute_name] = change - request = modify_operation(dn, changelist, self.auto_encode, self.server.schema if self.server else None, validator=self.server.custom_validator if self.server else None, check_names=self.check_names) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'MODIFY request <%s> sent via <%s>', modify_request_to_dict(request), self) - response = self.post_send_single_response(self.send('modifyRequest', request, controls)) - self._entries = [] - - if isinstance(response, STRING_TYPES + (int, )): - return_value = response - if log_enabled(PROTOCOL): - log(PROTOCOL, 'async MODIFY response id <%s> received via <%s>', return_value, self) - else: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'MODIFY response <%s> received via <%s>', response, self) - return_value = True if self.result['type'] == 'modifyResponse' and self.result['result'] == RESULT_SUCCESS else False - if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: - self.last_error = self.result['description'] - - if log_enabled(BASIC): - log(BASIC, 'done MODIFY operation, result <%s>', return_value) - - return return_value - - def modify_dn(self, - dn, - relative_dn, - delete_old_dn=True, - new_superior=None, - controls=None): - """ - Modify DN of the entry or performs a move of the entry in the - DIT. - """ - if log_enabled(BASIC): - log(BASIC, 'start MODIFY DN operation via <%s>', self) - self.last_error = None - if self.check_names: - dn = safe_dn(dn) - if log_enabled(EXTENDED): - log(EXTENDED, 'dn sanitized to <%s> for MODIFY DN operation via <%s>', dn, self) - relative_dn = safe_dn(relative_dn) - if log_enabled(EXTENDED): - log(EXTENDED, 'relative dn sanitized to <%s> for MODIFY DN operation via <%s>', relative_dn, self) - - with self.connection_lock: - self._fire_deferred() - if self.read_only: - self.last_error = 'connection is read-only' - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', self.last_error, self) - raise LDAPConnectionIsReadOnlyError(self.last_error) - - # if new_superior and not dn.startswith(relative_dn): # as per RFC4511 (4.9) - # self.last_error = 'DN cannot change while performing moving' - # if log_enabled(ERROR): - # log(ERROR, '%s for <%s>', self.last_error, self) - # raise LDAPChangeError(self.last_error) - - request = modify_dn_operation(dn, relative_dn, delete_old_dn, new_superior) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'MODIFY DN request <%s> sent via <%s>', modify_dn_request_to_dict(request), self) - response = self.post_send_single_response(self.send('modDNRequest', request, controls)) - self._entries = [] - - if isinstance(response, STRING_TYPES + (int, )): - return_value = response - if log_enabled(PROTOCOL): - log(PROTOCOL, 'async MODIFY DN response id <%s> received via <%s>', return_value, self) - else: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'MODIFY DN response <%s> received via <%s>', response, self) - return_value = True if self.result['type'] == 'modDNResponse' and self.result['result'] == RESULT_SUCCESS else False - if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: - self.last_error = self.result['description'] - - if log_enabled(BASIC): - log(BASIC, 'done MODIFY DN operation, result <%s>', return_value) - - return return_value - - def abandon(self, - message_id, - controls=None): - """ - Abandon the operation indicated by message_id - """ - if log_enabled(BASIC): - log(BASIC, 'start ABANDON operation via <%s>', self) - self.last_error = None - with self.connection_lock: - self._fire_deferred() - return_value = False - if self.strategy._outstanding or message_id == 0: - # only current operation should be abandoned, abandon, bind and unbind cannot ever be abandoned, - # messagiId 0 is invalid and should be used as a "ping" to keep alive the connection - if (self.strategy._outstanding and message_id in self.strategy._outstanding and self.strategy._outstanding[message_id]['type'] not in ['abandonRequest', 'bindRequest', 'unbindRequest']) or message_id == 0: - request = abandon_operation(message_id) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'ABANDON request: <%s> sent via <%s>', abandon_request_to_dict(request), self) - self.send('abandonRequest', request, controls) - self.result = None - self.response = None - self._entries = [] - return_value = True - else: - if log_enabled(ERROR): - log(ERROR, 'cannot abandon a Bind, an Unbind or an Abandon operation or message ID %s not found via <%s>', str(message_id), self) - - if log_enabled(BASIC): - log(BASIC, 'done ABANDON operation, result <%s>', return_value) - - return return_value - - def extended(self, - request_name, - request_value=None, - controls=None, - no_encode=None): - """ - Performs an extended operation - """ - if log_enabled(BASIC): - log(BASIC, 'start EXTENDED operation via <%s>', self) - self.last_error = None - with self.connection_lock: - self._fire_deferred() - request = extended_operation(request_name, request_value, no_encode=no_encode) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'EXTENDED request <%s> sent via <%s>', extended_request_to_dict(request), self) - response = self.post_send_single_response(self.send('extendedReq', request, controls)) - self._entries = [] - if isinstance(response, int): - return_value = response - if log_enabled(PROTOCOL): - log(PROTOCOL, 'async EXTENDED response id <%s> received via <%s>', return_value, self) - else: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'EXTENDED response <%s> received via <%s>', response, self) - return_value = True if self.result['type'] == 'extendedResp' and self.result['result'] == RESULT_SUCCESS else False - if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: - self.last_error = self.result['description'] - - if log_enabled(BASIC): - log(BASIC, 'done EXTENDED operation, result <%s>', return_value) - - return return_value - - def start_tls(self, read_server_info=True): # as per RFC4511. Removal of TLS is defined as MAY in RFC4511 so the client can't implement a generic stop_tls method0 - - if log_enabled(BASIC): - log(BASIC, 'start START TLS operation via <%s>', self) - - with self.connection_lock: - return_value = False - if not self.server.tls: - self.server.tls = Tls() - - if self.lazy and not self._executing_deferred: - self._deferred_start_tls = True - self.tls_started = True - return_value = True - if log_enabled(BASIC): - log(BASIC, 'deferring START TLS for <%s>', self) - else: - self._deferred_start_tls = False - if self.closed: - self.open() - if self.server.tls.start_tls(self) and self.strategy.sync: # for asynchronous connections _start_tls is run by the strategy - if read_server_info: - self.refresh_server_info() # refresh server info as per RFC4515 (3.1.5) - return_value = True - elif not self.strategy.sync: - return_value = True - - if log_enabled(BASIC): - log(BASIC, 'done START TLS operation, result <%s>', return_value) - - return return_value - - def do_sasl_bind(self, - controls): - if log_enabled(BASIC): - log(BASIC, 'start SASL BIND operation via <%s>', self) - self.last_error = None - with self.connection_lock: - result = None - - if not self.sasl_in_progress: - self.sasl_in_progress = True - try: - if self.sasl_mechanism == EXTERNAL: - result = sasl_external(self, controls) - elif self.sasl_mechanism == DIGEST_MD5: - result = sasl_digest_md5(self, controls) - elif self.sasl_mechanism == GSSAPI: - from ..protocol.sasl.kerberos import sasl_gssapi # needs the gssapi package - result = sasl_gssapi(self, controls) - elif self.sasl_mechanism == 'PLAIN': - result = sasl_plain(self, controls) - finally: - self.sasl_in_progress = False - - if log_enabled(BASIC): - log(BASIC, 'done SASL BIND operation, result <%s>', result) - - return result - - def do_ntlm_bind(self, - controls): - if log_enabled(BASIC): - log(BASIC, 'start NTLM BIND operation via <%s>', self) - self.last_error = None - with self.connection_lock: - result = None - if not self.sasl_in_progress: - self.sasl_in_progress = True # ntlm is same of sasl authentication - try: - # additional import for NTLM - from ..utils.ntlm import NtlmClient - domain_name, user_name = self.user.split('\\', 1) - ntlm_client = NtlmClient(user_name=user_name, domain=domain_name, password=self.password) - - # as per https://msdn.microsoft.com/en-us/library/cc223501.aspx - # send a sicilyPackageDiscovery request (in the bindRequest) - request = bind_operation(self.version, 'SICILY_PACKAGE_DISCOVERY', ntlm_client) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'NTLM SICILY PACKAGE DISCOVERY request sent via <%s>', self) - response = self.post_send_single_response(self.send('bindRequest', request, controls)) - if not self.strategy.sync: - _, result = self.get_response(response) - else: - result = response[0] - if 'server_creds' in result: - sicily_packages = result['server_creds'].decode('ascii').split(';') - if 'NTLM' in sicily_packages: # NTLM available on server - request = bind_operation(self.version, 'SICILY_NEGOTIATE_NTLM', ntlm_client) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'NTLM SICILY NEGOTIATE request sent via <%s>', self) - response = self.post_send_single_response(self.send('bindRequest', request, controls)) - if not self.strategy.sync: - _, result = self.get_response(response) - else: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'NTLM SICILY NEGOTIATE response <%s> received via <%s>', response[0], - self) - result = response[0] - - if result['result'] == RESULT_SUCCESS: - request = bind_operation(self.version, 'SICILY_RESPONSE_NTLM', ntlm_client, - result['server_creds']) - if log_enabled(PROTOCOL): - log(PROTOCOL, 'NTLM SICILY RESPONSE NTLM request sent via <%s>', self) - response = self.post_send_single_response(self.send('bindRequest', request, controls)) - if not self.strategy.sync: - _, result = self.get_response(response) - else: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'NTLM BIND response <%s> received via <%s>', response[0], self) - result = response[0] - else: - result = None - finally: - self.sasl_in_progress = False - - if log_enabled(BASIC): - log(BASIC, 'done SASL NTLM operation, result <%s>', result) - - return result - - def refresh_server_info(self): - # if self.strategy.no_real_dsa: # do not refresh for mock strategies - # return - - if not self.strategy.pooled: - with self.connection_lock: - if not self.closed: - if log_enabled(BASIC): - log(BASIC, 'refreshing server info for <%s>', self) - previous_response = self.response - previous_result = self.result - previous_entries = self._entries - self.server.get_info_from_server(self) - self.response = previous_response - self.result = previous_result - self._entries = previous_entries - else: - if log_enabled(BASIC): - log(BASIC, 'refreshing server info from pool for <%s>', self) - self.strategy.pool.get_info_from_server() - - def response_to_ldif(self, - search_result=None, - all_base64=False, - line_separator=None, - sort_order=None, - stream=None): - with self.connection_lock: - if search_result is None: - search_result = self.response - - if isinstance(search_result, SEQUENCE_TYPES): - ldif_lines = operation_to_ldif('searchResponse', search_result, all_base64, sort_order=sort_order) - ldif_lines = add_ldif_header(ldif_lines) - line_separator = line_separator or linesep - ldif_output = line_separator.join(ldif_lines) - if stream: - if stream.tell() == 0: - header = add_ldif_header(['-'])[0] - stream.write(prepare_for_stream(header + line_separator + line_separator)) - stream.write(prepare_for_stream(ldif_output + line_separator + line_separator)) - if log_enabled(BASIC): - log(BASIC, 'building LDIF output <%s> for <%s>', ldif_output, self) - return ldif_output - - return None - - def response_to_json(self, - raw=False, - search_result=None, - indent=4, - sort=True, - stream=None, - checked_attributes=True, - include_empty=True): - - with self.connection_lock: - if search_result is None: - search_result = self.response - - if isinstance(search_result, SEQUENCE_TYPES): - json_dict = dict() - json_dict['entries'] = [] - - for response in search_result: - if response['type'] == 'searchResEntry': - entry = dict() - - entry['dn'] = response['dn'] - if checked_attributes: - if not include_empty: - # needed for python 2.6 compatibility - entry['attributes'] = dict((key, response['attributes'][key]) for key in response['attributes'] if response['attributes'][key]) - else: - entry['attributes'] = dict(response['attributes']) - if raw: - if not include_empty: - # needed for python 2.6 compatibility - entry['raw_attributes'] = dict((key, response['raw_attributes'][key]) for key in response['raw_attributes'] if response['raw:attributes'][key]) - else: - entry['raw'] = dict(response['raw_attributes']) - json_dict['entries'].append(entry) - - if str is bytes: # Python 2 - check_json_dict(json_dict) - - json_output = json.dumps(json_dict, ensure_ascii=True, sort_keys=sort, indent=indent, check_circular=True, default=format_json, separators=(',', ': ')) - - if log_enabled(BASIC): - log(BASIC, 'building JSON output <%s> for <%s>', json_output, self) - if stream: - stream.write(json_output) - - return json_output - - def response_to_file(self, - target, - raw=False, - indent=4, - sort=True): - with self.connection_lock: - if self.response: - if isinstance(target, STRING_TYPES): - target = open(target, 'w+') - - if log_enabled(BASIC): - log(BASIC, 'writing response to file for <%s>', self) - - target.writelines(self.response_to_json(raw=raw, indent=indent, sort=sort)) - target.close() - - def _fire_deferred(self, read_info=True): - with self.connection_lock: - if self.lazy and not self._executing_deferred: - self._executing_deferred = True - - if log_enabled(BASIC): - log(BASIC, 'executing deferred (open: %s, start_tls: %s, bind: %s) for <%s>', self._deferred_open, self._deferred_start_tls, self._deferred_bind, self) - try: - if self._deferred_open: - self.open(read_server_info=False) - if self._deferred_start_tls: - self.start_tls(read_server_info=False) - if self._deferred_bind: - self.bind(read_server_info=False, controls=self._bind_controls) - if read_info: - self.refresh_server_info() - except LDAPExceptionError as e: - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', e, self) - raise # re-raise LDAPExceptionError - finally: - self._executing_deferred = False - - @property - def entries(self): - if self.response: - if not self._entries: - self._entries = self._get_entries(self.response) - return self._entries - - def _get_entries(self, search_response): - with self.connection_lock: - from .. import ObjectDef, Reader - - # build a table of ObjectDefs, grouping the entries found in search_response for their attributes set, subset will be included in superset - attr_sets = [] - for response in search_response: - if response['type'] == 'searchResEntry': - resp_attr_set = set(response['attributes'].keys()) - if resp_attr_set not in attr_sets: - attr_sets.append(resp_attr_set) - attr_sets.sort(key=lambda x: -len(x)) # sorts the list in descending length order - unique_attr_sets = [] - for attr_set in attr_sets: - for unique_set in unique_attr_sets: - if unique_set >= attr_set: # checks if unique set is a superset of attr_set - break - else: # the attr_set is not a subset of any element in unique_attr_sets - unique_attr_sets.append(attr_set) - object_defs = [] - for attr_set in unique_attr_sets: - object_def = ObjectDef(schema=self.server.schema) - object_def += list(attr_set) # converts the set in a list to be added to the object definition - object_defs.append((attr_set, - object_def, - Reader(self, object_def, self.request['base'], self.request['filter'], attributes=attr_set) if self.strategy.sync else Reader(self, object_def, '', '', attributes=attr_set)) - ) # objects_defs contains a tuple with the set, the ObjectDef and a cursor - - entries = [] - for response in search_response: - if response['type'] == 'searchResEntry': - resp_attr_set = set(response['attributes'].keys()) - for object_def in object_defs: - if resp_attr_set <= object_def[0]: # finds the ObjectDef for the attribute set of this entry - entry = object_def[2]._create_entry(response) - entries.append(entry) - break - else: - if log_enabled(ERROR): - log(ERROR, 'attribute set not found for %s in <%s>', resp_attr_set, self) - raise LDAPObjectError('attribute set not found for ' + str(resp_attr_set)) - - return entries +""" +""" + +# Created on 2014.05.31 +# +# Author: Giovanni Cannata +# +# Copyright 2014 - 2020 Giovanni Cannata +# +# This file is part of ldap3. +# +# ldap3 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ldap3 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ldap3 in the COPYING and COPYING.LESSER files. +# If not, see . +from copy import deepcopy +from os import linesep +from threading import RLock, Lock +from functools import reduce +import json + +from .. import ANONYMOUS, SIMPLE, SASL, MODIFY_ADD, MODIFY_DELETE, MODIFY_REPLACE, get_config_parameter, DEREF_ALWAYS, \ + SUBTREE, ASYNC, SYNC, NO_ATTRIBUTES, ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES, MODIFY_INCREMENT, LDIF, ASYNC_STREAM, \ + RESTARTABLE, ROUND_ROBIN, REUSABLE, AUTO_BIND_DEFAULT, AUTO_BIND_NONE, AUTO_BIND_TLS_BEFORE_BIND,\ + AUTO_BIND_TLS_AFTER_BIND, AUTO_BIND_NO_TLS, STRING_TYPES, SEQUENCE_TYPES, MOCK_SYNC, MOCK_ASYNC, NTLM, EXTERNAL,\ + DIGEST_MD5, GSSAPI, PLAIN + +from .results import RESULT_SUCCESS, RESULT_COMPARE_TRUE, RESULT_COMPARE_FALSE +from ..extend import ExtendedOperationsRoot +from .pooling import ServerPool +from .server import Server +from ..operation.abandon import abandon_operation, abandon_request_to_dict +from ..operation.add import add_operation, add_request_to_dict +from ..operation.bind import bind_operation, bind_request_to_dict +from ..operation.compare import compare_operation, compare_request_to_dict +from ..operation.delete import delete_operation, delete_request_to_dict +from ..operation.extended import extended_operation, extended_request_to_dict +from ..operation.modify import modify_operation, modify_request_to_dict +from ..operation.modifyDn import modify_dn_operation, modify_dn_request_to_dict +from ..operation.search import search_operation, search_request_to_dict +from ..protocol.rfc2849 import operation_to_ldif, add_ldif_header +from ..protocol.sasl.digestMd5 import sasl_digest_md5 +from ..protocol.sasl.external import sasl_external +from ..protocol.sasl.plain import sasl_plain +from ..strategy.sync import SyncStrategy +from ..strategy.mockAsync import MockAsyncStrategy +from ..strategy.asynchronous import AsyncStrategy +from ..strategy.reusable import ReusableStrategy +from ..strategy.restartable import RestartableStrategy +from ..strategy.ldifProducer import LdifProducerStrategy +from ..strategy.mockSync import MockSyncStrategy +from ..strategy.asyncStream import AsyncStreamStrategy +from ..operation.unbind import unbind_operation +from ..protocol.rfc2696 import paged_search_control +from .usage import ConnectionUsage +from .tls import Tls +from .exceptions import LDAPUnknownStrategyError, LDAPBindError, LDAPUnknownAuthenticationMethodError, \ + LDAPSASLMechanismNotSupportedError, LDAPObjectClassError, LDAPConnectionIsReadOnlyError, LDAPChangeError, LDAPExceptionError, \ + LDAPObjectError, LDAPSocketReceiveError, LDAPAttributeError, LDAPInvalidValueError, LDAPConfigurationError, \ + LDAPInvalidPortError + +from ..utils.conv import escape_bytes, prepare_for_stream, check_json_dict, format_json, to_unicode +from ..utils.log import log, log_enabled, ERROR, BASIC, PROTOCOL, EXTENDED, get_library_log_hide_sensitive_data +from ..utils.dn import safe_dn +from ..utils.port_validators import check_port_and_port_list + + +SASL_AVAILABLE_MECHANISMS = [EXTERNAL, + DIGEST_MD5, + GSSAPI, + PLAIN] + +CLIENT_STRATEGIES = [SYNC, + ASYNC, + LDIF, + RESTARTABLE, + REUSABLE, + MOCK_SYNC, + MOCK_ASYNC, + ASYNC_STREAM] + + +def _format_socket_endpoint(endpoint): + if endpoint and len(endpoint) == 2: # IPv4 + return str(endpoint[0]) + ':' + str(endpoint[1]) + elif endpoint and len(endpoint) == 4: # IPv6 + return '[' + str(endpoint[0]) + ']:' + str(endpoint[1]) + + try: + return str(endpoint) + except Exception: + return '?' + + +def _format_socket_endpoints(sock): + if sock: + try: + local = sock.getsockname() + except Exception: + local = (None, None, None, None) + try: + remote = sock.getpeername() + except Exception: + remote = (None, None, None, None) + + return '' + return '' + + +# noinspection PyProtectedMember +class Connection(object): + """Main ldap connection class. + + Controls, if used, must be a list of tuples. Each tuple must have 3 + elements, the control OID, a boolean meaning if the control is + critical, a value. + + If the boolean is set to True the server must honor the control or + refuse the operation + + Mixing controls must be defined in controls specification (as per + RFC 4511) + + :param server: the Server object to connect to + :type server: Server, str + :param user: the user name for simple authentication + :type user: str + :param password: the password for simple authentication + :type password: str + :param auto_bind: specify if the bind will be performed automatically when defining the Connection object + :type auto_bind: int, can be one of AUTO_BIND_DEFAULT, AUTO_BIND_NONE, AUTO_BIND_NO_TLS, AUTO_BIND_TLS_BEFORE_BIND, AUTO_BIND_TLS_AFTER_BIND as specified in ldap3 + :param version: LDAP version, default to 3 + :type version: int + :param authentication: type of authentication + :type authentication: int, can be one of AUTH_ANONYMOUS, AUTH_SIMPLE or AUTH_SASL, as specified in ldap3 + :param client_strategy: communication strategy used in the Connection + :type client_strategy: can be one of STRATEGY_SYNC, STRATEGY_ASYNC_THREADED, STRATEGY_LDIF_PRODUCER, STRATEGY_SYNC_RESTARTABLE, STRATEGY_REUSABLE_THREADED as specified in ldap3 + :param auto_referrals: specify if the connection object must automatically follow referrals + :type auto_referrals: bool + :param sasl_mechanism: mechanism for SASL authentication, can be one of 'EXTERNAL', 'DIGEST-MD5', 'GSSAPI', 'PLAIN' + :type sasl_mechanism: str + :param sasl_credentials: credentials for SASL mechanism + :type sasl_credentials: tuple + :param check_names: if True the library will check names of attributes and object classes against the schema. Also values found in entries will be formatted as indicated by the schema + :type check_names: bool + :param collect_usage: collect usage metrics in the usage attribute + :type collect_usage: bool + :param read_only: disable operations that modify data in the LDAP server + :type read_only: bool + :param lazy: open and bind the connection only when an actual operation is performed + :type lazy: bool + :param raise_exceptions: raise exceptions when operations are not successful, if False operations return False if not successful but not raise exceptions + :type raise_exceptions: bool + :param pool_name: pool name for pooled strategies + :type pool_name: str + :param pool_size: pool size for pooled strategies + :type pool_size: int + :param pool_lifetime: pool lifetime for pooled strategies + :type pool_lifetime: int + :param cred_store: credential store for gssapi + :type cred_store: dict + :param use_referral_cache: keep referral connections open and reuse them + :type use_referral_cache: bool + :param auto_escape: automatic escaping of filter values + :type auto_escape: bool + :param auto_encode: automatic encoding of attribute values + :type auto_encode: bool + :param source_address: the ip address or hostname to use as the source when opening the connection to the server + :type source_address: str + :param source_port: the source port to use when opening the connection to the server. Cannot be specified with source_port_list + :type source_port: int + :param source_port_list: a list of source ports to choose from when opening the connection to the server. Cannot be specified with source_port + :type source_port_list: list + """ + + def __init__(self, + server, + user=None, + password=None, + auto_bind=AUTO_BIND_DEFAULT, + version=3, + authentication=None, + client_strategy=SYNC, + auto_referrals=True, + auto_range=True, + sasl_mechanism=None, + sasl_credentials=None, + check_names=True, + collect_usage=False, + read_only=False, + lazy=False, + raise_exceptions=False, + pool_name=None, + pool_size=None, + pool_lifetime=None, + cred_store=None, + fast_decoder=True, + receive_timeout=None, + return_empty_attributes=True, + use_referral_cache=False, + auto_escape=True, + auto_encode=True, + pool_keepalive=None, + source_address=None, + source_port=None, + source_port_list=None): + + conf_default_pool_name = get_config_parameter('DEFAULT_THREADED_POOL_NAME') + self.connection_lock = RLock() # re-entrant lock to ensure that operations in the Connection object are executed atomically in the same thread + with self.connection_lock: + if client_strategy not in CLIENT_STRATEGIES: + self.last_error = 'unknown client connection strategy' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPUnknownStrategyError(self.last_error) + + self.strategy_type = client_strategy + self.user = user + self.password = password + + if not authentication and self.user: + self.authentication = SIMPLE + elif not authentication: + self.authentication = ANONYMOUS + elif authentication in [SIMPLE, ANONYMOUS, SASL, NTLM]: + self.authentication = authentication + else: + self.last_error = 'unknown authentication method' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPUnknownAuthenticationMethodError(self.last_error) + + self.version = version + self.auto_referrals = True if auto_referrals else False + self.request = None + self.response = None + self.result = None + self.bound = False + self.listening = False + self.closed = True + self.last_error = None + if auto_bind is False: # compatibility with older version where auto_bind was a boolean + self.auto_bind = AUTO_BIND_DEFAULT + elif auto_bind is True: + self.auto_bind = AUTO_BIND_NO_TLS + else: + self.auto_bind = auto_bind + self.sasl_mechanism = sasl_mechanism + self.sasl_credentials = sasl_credentials + self._usage = ConnectionUsage() if collect_usage else None + self.socket = None + self.tls_started = False + self.sasl_in_progress = False + self.read_only = read_only + self._context_state = [] + self._deferred_open = False + self._deferred_bind = False + self._deferred_start_tls = False + self._bind_controls = None + self._executing_deferred = False + self.lazy = lazy + self.pool_name = pool_name if pool_name else conf_default_pool_name + self.pool_size = pool_size + self.cred_store = cred_store + self.pool_lifetime = pool_lifetime + self.pool_keepalive = pool_keepalive + self.starting_tls = False + self.check_names = check_names + self.raise_exceptions = raise_exceptions + self.auto_range = True if auto_range else False + self.extend = ExtendedOperationsRoot(self) + self._entries = [] + self.fast_decoder = fast_decoder + self.receive_timeout = receive_timeout + self.empty_attributes = return_empty_attributes + self.use_referral_cache = use_referral_cache + self.auto_escape = auto_escape + self.auto_encode = auto_encode + + port_err = check_port_and_port_list(source_port, source_port_list) + if port_err: + if log_enabled(ERROR): + log(ERROR, port_err) + raise LDAPInvalidPortError(port_err) + # using an empty string to bind a socket means "use the default as if this wasn't provided" because socket + # binding requires that you pass something for the ip if you want to pass a specific port + self.source_address = source_address if source_address is not None else '' + # using 0 as the source port to bind a socket means "use the default behavior of picking a random port from + # all ports as if this wasn't provided" because socket binding requires that you pass something for the port + # if you want to pass a specific ip + self.source_port_list = [0] + if source_port is not None: + self.source_port_list = [source_port] + elif source_port_list is not None: + self.source_port_list = source_port_list[:] + + if isinstance(server, STRING_TYPES): + server = Server(server) + if isinstance(server, SEQUENCE_TYPES): + server = ServerPool(server, ROUND_ROBIN, active=True, exhaust=True) + + if isinstance(server, ServerPool): + self.server_pool = server + self.server_pool.initialize(self) + self.server = self.server_pool.get_current_server(self) + else: + self.server_pool = None + self.server = server + + # if self.authentication == SIMPLE and self.user and self.check_names: + # self.user = safe_dn(self.user) + # if log_enabled(EXTENDED): + # log(EXTENDED, 'user name sanitized to <%s> for simple authentication via <%s>', self.user, self) + + if self.strategy_type == SYNC: + self.strategy = SyncStrategy(self) + elif self.strategy_type == ASYNC: + self.strategy = AsyncStrategy(self) + elif self.strategy_type == LDIF: + self.strategy = LdifProducerStrategy(self) + elif self.strategy_type == RESTARTABLE: + self.strategy = RestartableStrategy(self) + elif self.strategy_type == REUSABLE: + self.strategy = ReusableStrategy(self) + self.lazy = False + elif self.strategy_type == MOCK_SYNC: + self.strategy = MockSyncStrategy(self) + elif self.strategy_type == MOCK_ASYNC: + self.strategy = MockAsyncStrategy(self) + elif self.strategy_type == ASYNC_STREAM: + self.strategy = AsyncStreamStrategy(self) + else: + self.last_error = 'unknown strategy' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPUnknownStrategyError(self.last_error) + + # maps strategy functions to connection functions + self.send = self.strategy.send + self.open = self.strategy.open + self.get_response = self.strategy.get_response + self.post_send_single_response = self.strategy.post_send_single_response + self.post_send_search = self.strategy.post_send_search + + if not self.strategy.no_real_dsa: + self.do_auto_bind() + # else: # for strategies with a fake server set get_info to NONE if server hasn't a schema + # if self.server and not self.server.schema: + # self.server.get_info = NONE + if log_enabled(BASIC): + if get_library_log_hide_sensitive_data(): + log(BASIC, 'instantiated Connection: <%s>', self.repr_with_sensitive_data_stripped()) + else: + log(BASIC, 'instantiated Connection: <%r>', self) + + def do_auto_bind(self): + if self.auto_bind and self.auto_bind not in [AUTO_BIND_NONE, AUTO_BIND_DEFAULT]: + if log_enabled(BASIC): + log(BASIC, 'performing automatic bind for <%s>', self) + if self.closed: + self.open(read_server_info=False) + if self.auto_bind == AUTO_BIND_NO_TLS: + self.bind(read_server_info=True) + elif self.auto_bind == AUTO_BIND_TLS_BEFORE_BIND: + self.start_tls(read_server_info=False) + self.bind(read_server_info=True) + elif self.auto_bind == AUTO_BIND_TLS_AFTER_BIND: + self.bind(read_server_info=False) + self.start_tls(read_server_info=True) + if not self.bound: + self.last_error = 'automatic bind not successful' + (' - ' + self.last_error if self.last_error else '') + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + self.unbind() + raise LDAPBindError(self.last_error) + + def __str__(self): + s = [ + str(self.server) if self.server else 'None', + 'user: ' + str(self.user), + 'lazy' if self.lazy else 'not lazy', + 'unbound' if not self.bound else ('deferred bind' if self._deferred_bind else 'bound'), + 'closed' if self.closed else ('deferred open' if self._deferred_open else 'open'), + _format_socket_endpoints(self.socket), + 'tls not started' if not self.tls_started else('deferred start_tls' if self._deferred_start_tls else 'tls started'), + 'listening' if self.listening else 'not listening', + self.strategy.__class__.__name__ if hasattr(self, 'strategy') else 'No strategy', + 'internal decoder' if self.fast_decoder else 'pyasn1 decoder' + ] + return ' - '.join(s) + + def __repr__(self): + conf_default_pool_name = get_config_parameter('DEFAULT_THREADED_POOL_NAME') + if self.server_pool: + r = 'Connection(server={0.server_pool!r}'.format(self) + else: + r = 'Connection(server={0.server!r}'.format(self) + r += '' if self.user is None else ', user={0.user!r}'.format(self) + r += '' if self.password is None else ', password={0.password!r}'.format(self) + r += '' if self.auto_bind is None else ', auto_bind={0.auto_bind!r}'.format(self) + r += '' if self.version is None else ', version={0.version!r}'.format(self) + r += '' if self.authentication is None else ', authentication={0.authentication!r}'.format(self) + r += '' if self.strategy_type is None else ', client_strategy={0.strategy_type!r}'.format(self) + r += '' if self.auto_referrals is None else ', auto_referrals={0.auto_referrals!r}'.format(self) + r += '' if self.sasl_mechanism is None else ', sasl_mechanism={0.sasl_mechanism!r}'.format(self) + r += '' if self.sasl_credentials is None else ', sasl_credentials={0.sasl_credentials!r}'.format(self) + r += '' if self.check_names is None else ', check_names={0.check_names!r}'.format(self) + r += '' if self.usage is None else (', collect_usage=' + ('True' if self.usage else 'False')) + r += '' if self.read_only is None else ', read_only={0.read_only!r}'.format(self) + r += '' if self.lazy is None else ', lazy={0.lazy!r}'.format(self) + r += '' if self.raise_exceptions is None else ', raise_exceptions={0.raise_exceptions!r}'.format(self) + r += '' if (self.pool_name is None or self.pool_name == conf_default_pool_name) else ', pool_name={0.pool_name!r}'.format(self) + r += '' if self.pool_size is None else ', pool_size={0.pool_size!r}'.format(self) + r += '' if self.pool_lifetime is None else ', pool_lifetime={0.pool_lifetime!r}'.format(self) + r += '' if self.pool_keepalive is None else ', pool_keepalive={0.pool_keepalive!r}'.format(self) + r += '' if self.cred_store is None else (', cred_store=' + repr(self.cred_store)) + r += '' if self.fast_decoder is None else (', fast_decoder=' + ('True' if self.fast_decoder else 'False')) + r += '' if self.auto_range is None else (', auto_range=' + ('True' if self.auto_range else 'False')) + r += '' if self.receive_timeout is None else ', receive_timeout={0.receive_timeout!r}'.format(self) + r += '' if self.empty_attributes is None else (', return_empty_attributes=' + ('True' if self.empty_attributes else 'False')) + r += '' if self.auto_encode is None else (', auto_encode=' + ('True' if self.auto_encode else 'False')) + r += '' if self.auto_escape is None else (', auto_escape=' + ('True' if self.auto_escape else 'False')) + r += '' if self.use_referral_cache is None else (', use_referral_cache=' + ('True' if self.use_referral_cache else 'False')) + r += ')' + + return r + + def repr_with_sensitive_data_stripped(self): + conf_default_pool_name = get_config_parameter('DEFAULT_THREADED_POOL_NAME') + if self.server_pool: + r = 'Connection(server={0.server_pool!r}'.format(self) + else: + r = 'Connection(server={0.server!r}'.format(self) + r += '' if self.user is None else ', user={0.user!r}'.format(self) + r += '' if self.password is None else ", password='{0}'".format('' % len(self.password)) + r += '' if self.auto_bind is None else ', auto_bind={0.auto_bind!r}'.format(self) + r += '' if self.version is None else ', version={0.version!r}'.format(self) + r += '' if self.authentication is None else ', authentication={0.authentication!r}'.format(self) + r += '' if self.strategy_type is None else ', client_strategy={0.strategy_type!r}'.format(self) + r += '' if self.auto_referrals is None else ', auto_referrals={0.auto_referrals!r}'.format(self) + r += '' if self.sasl_mechanism is None else ', sasl_mechanism={0.sasl_mechanism!r}'.format(self) + if self.sasl_mechanism == DIGEST_MD5: + r += '' if self.sasl_credentials is None else ", sasl_credentials=({0!r}, {1!r}, '{2}', {3!r})".format(self.sasl_credentials[0], self.sasl_credentials[1], '*' * len(self.sasl_credentials[2]), self.sasl_credentials[3]) + else: + r += '' if self.sasl_credentials is None else ', sasl_credentials={0.sasl_credentials!r}'.format(self) + r += '' if self.check_names is None else ', check_names={0.check_names!r}'.format(self) + r += '' if self.usage is None else (', collect_usage=' + 'True' if self.usage else 'False') + r += '' if self.read_only is None else ', read_only={0.read_only!r}'.format(self) + r += '' if self.lazy is None else ', lazy={0.lazy!r}'.format(self) + r += '' if self.raise_exceptions is None else ', raise_exceptions={0.raise_exceptions!r}'.format(self) + r += '' if (self.pool_name is None or self.pool_name == conf_default_pool_name) else ', pool_name={0.pool_name!r}'.format(self) + r += '' if self.pool_size is None else ', pool_size={0.pool_size!r}'.format(self) + r += '' if self.pool_lifetime is None else ', pool_lifetime={0.pool_lifetime!r}'.format(self) + r += '' if self.pool_keepalive is None else ', pool_keepalive={0.pool_keepalive!r}'.format(self) + r += '' if self.cred_store is None else (', cred_store=' + repr(self.cred_store)) + r += '' if self.fast_decoder is None else (', fast_decoder=' + 'True' if self.fast_decoder else 'False') + r += '' if self.auto_range is None else (', auto_range=' + ('True' if self.auto_range else 'False')) + r += '' if self.receive_timeout is None else ', receive_timeout={0.receive_timeout!r}'.format(self) + r += '' if self.empty_attributes is None else (', return_empty_attributes=' + 'True' if self.empty_attributes else 'False') + r += '' if self.auto_encode is None else (', auto_encode=' + ('True' if self.auto_encode else 'False')) + r += '' if self.auto_escape is None else (', auto_escape=' + ('True' if self.auto_escape else 'False')) + r += '' if self.use_referral_cache is None else (', use_referral_cache=' + ('True' if self.use_referral_cache else 'False')) + r += ')' + + return r + + @property + def stream(self): + """Used by the LDIFProducer strategy to accumulate the ldif-change operations with a single LDIF header + :return: reference to the response stream if defined in the strategy. + """ + return self.strategy.get_stream() if self.strategy.can_stream else None + + @stream.setter + def stream(self, value): + with self.connection_lock: + if self.strategy.can_stream: + self.strategy.set_stream(value) + + @property + def usage(self): + """Usage statistics for the connection. + :return: Usage object + """ + if not self._usage: + return None + if self.strategy.pooled: # update master connection usage from pooled connections + self._usage.reset() + for worker in self.strategy.pool.workers: + self._usage += worker.connection.usage + self._usage += self.strategy.pool.terminated_usage + return self._usage + + def __enter__(self): + with self.connection_lock: + self._context_state.append((self.bound, self.closed)) # save status out of context as a tuple in a list + if self.auto_bind != AUTO_BIND_NONE: + if self.auto_bind == AUTO_BIND_DEFAULT: + self.auto_bind = AUTO_BIND_NO_TLS + if self.closed: + self.open() + if not self.bound: + self.bind() + + return self + + # noinspection PyUnusedLocal + def __exit__(self, exc_type, exc_val, exc_tb): + with self.connection_lock: + context_bound, context_closed = self._context_state.pop() + if (not context_bound and self.bound) or self.stream: # restore status prior to entering context + try: + self.unbind() + except LDAPExceptionError: + pass + + if not context_closed and self.closed: + self.open() + + if exc_type is not None: + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', exc_type, self) + return False # re-raise LDAPExceptionError + + def bind(self, + read_server_info=True, + controls=None): + """Bind to ldap Server with the authentication method and the user defined in the connection + + :param read_server_info: reads info from server + :param controls: LDAP controls to send along with the bind operation + :type controls: list of tuple + :return: bool + + """ + if log_enabled(BASIC): + log(BASIC, 'start BIND operation via <%s>', self) + self.last_error = None + with self.connection_lock: + if self.lazy and not self._executing_deferred: + if self.strategy.pooled: + self.strategy.validate_bind(controls) + self._deferred_bind = True + self._bind_controls = controls + self.bound = True + if log_enabled(BASIC): + log(BASIC, 'deferring bind for <%s>', self) + else: + self._deferred_bind = False + self._bind_controls = None + if self.closed: # try to open connection if closed + self.open(read_server_info=False) + if self.authentication == ANONYMOUS: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'performing anonymous BIND for <%s>', self) + if not self.strategy.pooled: + request = bind_operation(self.version, self.authentication, self.user, '', auto_encode=self.auto_encode) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'anonymous BIND request <%s> sent via <%s>', bind_request_to_dict(request), self) + response = self.post_send_single_response(self.send('bindRequest', request, controls)) + else: + response = self.strategy.validate_bind(controls) # only for REUSABLE + elif self.authentication == SIMPLE: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'performing simple BIND for <%s>', self) + if not self.strategy.pooled: + request = bind_operation(self.version, self.authentication, self.user, self.password, auto_encode=self.auto_encode) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'simple BIND request <%s> sent via <%s>', bind_request_to_dict(request), self) + response = self.post_send_single_response(self.send('bindRequest', request, controls)) + else: + response = self.strategy.validate_bind(controls) # only for REUSABLE + elif self.authentication == SASL: + if self.sasl_mechanism in SASL_AVAILABLE_MECHANISMS: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'performing SASL BIND for <%s>', self) + if not self.strategy.pooled: + response = self.do_sasl_bind(controls) + else: + response = self.strategy.validate_bind(controls) # only for REUSABLE + else: + self.last_error = 'requested SASL mechanism not supported' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPSASLMechanismNotSupportedError(self.last_error) + elif self.authentication == NTLM: + if self.user and self.password and len(self.user.split('\\')) == 2: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'performing NTLM BIND for <%s>', self) + if not self.strategy.pooled: + response = self.do_ntlm_bind(controls) + else: + response = self.strategy.validate_bind(controls) # only for REUSABLE + else: # user or password missing + self.last_error = 'NTLM needs domain\\username and a password' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPUnknownAuthenticationMethodError(self.last_error) + else: + self.last_error = 'unknown authentication method' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPUnknownAuthenticationMethodError(self.last_error) + + if not self.strategy.sync and not self.strategy.pooled and self.authentication not in (SASL, NTLM): # get response if asynchronous except for SASL and NTLM that return the bind result even for asynchronous strategy + _, result = self.get_response(response) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'async BIND response id <%s> received via <%s>', result, self) + elif self.strategy.sync: + result = self.result + if log_enabled(PROTOCOL): + log(PROTOCOL, 'BIND response <%s> received via <%s>', result, self) + elif self.strategy.pooled or self.authentication in (SASL, NTLM): # asynchronous SASL and NTLM or reusable strtegy get the bind result synchronously + result = response + else: + self.last_error = 'unknown authentication method' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPUnknownAuthenticationMethodError(self.last_error) + + if result is None: + # self.bound = True if self.strategy_type == REUSABLE else False + self.bound = False + elif result is True: + self.bound = True + elif result is False: + self.bound = False + else: + self.bound = True if result['result'] == RESULT_SUCCESS else False + if not self.bound and result and result['description'] and not self.last_error: + self.last_error = result['description'] + + if read_server_info and self.bound: + self.refresh_server_info() + self._entries = [] + + if log_enabled(BASIC): + log(BASIC, 'done BIND operation, result <%s>', self.bound) + + return self.bound + + def rebind(self, + user=None, + password=None, + authentication=None, + sasl_mechanism=None, + sasl_credentials=None, + read_server_info=True, + controls=None + ): + + if log_enabled(BASIC): + log(BASIC, 'start (RE)BIND operation via <%s>', self) + self.last_error = None + with self.connection_lock: + if user: + self.user = user + if password is not None: + self.password = password + if not authentication and user: + self.authentication = SIMPLE + if authentication in [SIMPLE, ANONYMOUS, SASL, NTLM]: + self.authentication = authentication + elif authentication is not None: + self.last_error = 'unknown authentication method' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPUnknownAuthenticationMethodError(self.last_error) + if sasl_mechanism: + self.sasl_mechanism = sasl_mechanism + if sasl_credentials: + self.sasl_credentials = sasl_credentials + + # if self.authentication == SIMPLE and self.user and self.check_names: + # self.user = safe_dn(self.user) + # if log_enabled(EXTENDED): + # log(EXTENDED, 'user name sanitized to <%s> for rebind via <%s>', self.user, self) + + if not self.strategy.pooled: + try: + return self.bind(read_server_info, controls) + except LDAPSocketReceiveError: + raise LDAPBindError('Unable to rebind as a different user, furthermore the server abruptly closed the connection') + else: + self.strategy.pool.rebind_pool() + return True + + def unbind(self, + controls=None): + """Unbind the connected user. Unbind implies closing session as per RFC4511 (4.3) + + :param controls: LDAP controls to send along with the bind operation + + """ + if log_enabled(BASIC): + log(BASIC, 'start UNBIND operation via <%s>', self) + + if self.use_referral_cache: + self.strategy.unbind_referral_cache() + + self.last_error = None + with self.connection_lock: + if self.lazy and not self._executing_deferred and (self._deferred_bind or self._deferred_open): # _clear deferred status + self.strategy.close() + self._deferred_open = False + self._deferred_bind = False + self._deferred_start_tls = False + elif not self.closed: + request = unbind_operation() + if log_enabled(PROTOCOL): + log(PROTOCOL, 'UNBIND request sent via <%s>', self) + self.send('unbindRequest', request, controls) + self.strategy.close() + + if log_enabled(BASIC): + log(BASIC, 'done UNBIND operation, result <%s>', True) + + return True + + def search(self, + search_base, + search_filter, + search_scope=SUBTREE, + dereference_aliases=DEREF_ALWAYS, + attributes=None, + size_limit=0, + time_limit=0, + types_only=False, + get_operational_attributes=False, + controls=None, + paged_size=None, + paged_criticality=False, + paged_cookie=None, + auto_escape=None): + """ + Perform an ldap search: + + - If attributes is empty noRFC2696 with the specified size + - If paged is 0 and cookie is present the search is abandoned on + server attribute is returned + - If attributes is ALL_ATTRIBUTES all attributes are returned + - If paged_size is an int greater than 0 a simple paged search + is tried as described in + - Cookie is an opaque string received in the last paged search + and must be used on the next paged search response + - If lazy == True open and bind will be deferred until another + LDAP operation is performed + - If mssing_attributes == True then an attribute not returned by the server is set to None + - If auto_escape is set it overrides the Connection auto_escape + """ + conf_attributes_excluded_from_check = [v.lower() for v in get_config_parameter('ATTRIBUTES_EXCLUDED_FROM_CHECK')] + if log_enabled(BASIC): + log(BASIC, 'start SEARCH operation via <%s>', self) + + if self.check_names and search_base: + search_base = safe_dn(search_base) + if log_enabled(EXTENDED): + log(EXTENDED, 'search base sanitized to <%s> for SEARCH operation via <%s>', search_base, self) + + with self.connection_lock: + self._fire_deferred() + if not attributes: + attributes = [NO_ATTRIBUTES] + elif attributes == ALL_ATTRIBUTES: + attributes = [ALL_ATTRIBUTES] + + if isinstance(attributes, STRING_TYPES): + attributes = [attributes] + + if get_operational_attributes and isinstance(attributes, list): + attributes.append(ALL_OPERATIONAL_ATTRIBUTES) + elif get_operational_attributes and isinstance(attributes, tuple): + attributes += (ALL_OPERATIONAL_ATTRIBUTES, ) # concatenate tuple + + if isinstance(paged_size, int): + if log_enabled(PROTOCOL): + log(PROTOCOL, 'performing paged search for %d items with cookie <%s> for <%s>', paged_size, escape_bytes(paged_cookie), self) + + if controls is None: + controls = [] + else: + # Copy the controls to prevent modifying the original object + controls = list(controls) + controls.append(paged_search_control(paged_criticality, paged_size, paged_cookie)) + + if self.server and self.server.schema and self.check_names: + for attribute_name in attributes: + if ';' in attribute_name: # remove tags + attribute_name_to_check = attribute_name.split(';')[0] + else: + attribute_name_to_check = attribute_name + if self.server.schema and attribute_name_to_check.lower() not in conf_attributes_excluded_from_check and attribute_name_to_check not in self.server.schema.attribute_types: + raise LDAPAttributeError('invalid attribute type ' + attribute_name_to_check) + + request = search_operation(search_base, + search_filter, + search_scope, + dereference_aliases, + attributes, + size_limit, + time_limit, + types_only, + self.auto_escape if auto_escape is None else auto_escape, + self.auto_encode, + self.server.schema if self.server else None, + validator=self.server.custom_validator, + check_names=self.check_names) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'SEARCH request <%s> sent via <%s>', search_request_to_dict(request), self) + response = self.post_send_search(self.send('searchRequest', request, controls)) + self._entries = [] + + if isinstance(response, int): # asynchronous strategy + return_value = response + if log_enabled(PROTOCOL): + log(PROTOCOL, 'async SEARCH response id <%s> received via <%s>', return_value, self) + else: + return_value = True if self.result['type'] == 'searchResDone' and len(response) > 0 else False + if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: + self.last_error = self.result['description'] + + if log_enabled(PROTOCOL): + for entry in response: + if entry['type'] == 'searchResEntry': + log(PROTOCOL, 'SEARCH response entry <%s> received via <%s>', entry, self) + elif entry['type'] == 'searchResRef': + log(PROTOCOL, 'SEARCH response reference <%s> received via <%s>', entry, self) + + if log_enabled(BASIC): + log(BASIC, 'done SEARCH operation, result <%s>', return_value) + + return return_value + + def compare(self, + dn, + attribute, + value, + controls=None): + """ + Perform a compare operation + """ + conf_attributes_excluded_from_check = [v.lower() for v in get_config_parameter('ATTRIBUTES_EXCLUDED_FROM_CHECK')] + + if log_enabled(BASIC): + log(BASIC, 'start COMPARE operation via <%s>', self) + self.last_error = None + if self.check_names: + dn = safe_dn(dn) + if log_enabled(EXTENDED): + log(EXTENDED, 'dn sanitized to <%s> for COMPARE operation via <%s>', dn, self) + + if self.server and self.server.schema and self.check_names: + if ';' in attribute: # remove tags for checking + attribute_name_to_check = attribute.split(';')[0] + else: + attribute_name_to_check = attribute + + if self.server.schema.attribute_types and attribute_name_to_check.lower() not in conf_attributes_excluded_from_check and attribute_name_to_check not in self.server.schema.attribute_types: + raise LDAPAttributeError('invalid attribute type ' + attribute_name_to_check) + + if isinstance(value, SEQUENCE_TYPES): # value can't be a sequence + raise LDAPInvalidValueError('value cannot be a sequence') + + with self.connection_lock: + self._fire_deferred() + request = compare_operation(dn, attribute, value, self.auto_encode, self.server.schema if self.server else None, validator=self.server.custom_validator if self.server else None, check_names=self.check_names) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'COMPARE request <%s> sent via <%s>', compare_request_to_dict(request), self) + response = self.post_send_single_response(self.send('compareRequest', request, controls)) + self._entries = [] + if isinstance(response, int): + return_value = response + if log_enabled(PROTOCOL): + log(PROTOCOL, 'async COMPARE response id <%s> received via <%s>', return_value, self) + else: + return_value = True if self.result['type'] == 'compareResponse' and self.result['result'] == RESULT_COMPARE_TRUE else False + if not return_value and self.result['result'] not in [RESULT_COMPARE_TRUE, RESULT_COMPARE_FALSE] and not self.last_error: + self.last_error = self.result['description'] + + if log_enabled(PROTOCOL): + log(PROTOCOL, 'COMPARE response <%s> received via <%s>', response, self) + + if log_enabled(BASIC): + log(BASIC, 'done COMPARE operation, result <%s>', return_value) + + return return_value + + def add(self, + dn, + object_class=None, + attributes=None, + controls=None): + """ + Add dn to the DIT, object_class is None, a class name or a list + of class names. + + Attributes is a dictionary in the form 'attr': 'val' or 'attr': + ['val1', 'val2', ...] for multivalued attributes + """ + conf_attributes_excluded_from_check = [v.lower() for v in get_config_parameter('ATTRIBUTES_EXCLUDED_FROM_CHECK')] + conf_classes_excluded_from_check = [v.lower() for v in get_config_parameter('CLASSES_EXCLUDED_FROM_CHECK')] + if log_enabled(BASIC): + log(BASIC, 'start ADD operation via <%s>', self) + self.last_error = None + _attributes = deepcopy(attributes) # dict could change when adding objectClass values + if self.check_names: + dn = safe_dn(dn) + if log_enabled(EXTENDED): + log(EXTENDED, 'dn sanitized to <%s> for ADD operation via <%s>', dn, self) + + with self.connection_lock: + self._fire_deferred() + attr_object_class = [] + if object_class is None: + parm_object_class = [] + else: + parm_object_class = list(object_class) if isinstance(object_class, SEQUENCE_TYPES) else [object_class] + + object_class_attr_name = '' + if _attributes: + for attr in _attributes: + if attr.lower() == 'objectclass': + object_class_attr_name = attr + attr_object_class = list(_attributes[object_class_attr_name]) if isinstance(_attributes[object_class_attr_name], SEQUENCE_TYPES) else [_attributes[object_class_attr_name]] + break + else: + _attributes = dict() + + if not object_class_attr_name: + object_class_attr_name = 'objectClass' + + attr_object_class = [to_unicode(object_class) for object_class in attr_object_class] # converts objectclass to unicode in case of bytes value + _attributes[object_class_attr_name] = reduce(lambda x, y: x + [y] if y not in x else x, parm_object_class + attr_object_class, []) # remove duplicate ObjectClasses + + if not _attributes[object_class_attr_name]: + self.last_error = 'objectClass attribute is mandatory' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPObjectClassError(self.last_error) + + if self.server and self.server.schema and self.check_names: + for object_class_name in _attributes[object_class_attr_name]: + if object_class_name.lower() not in conf_classes_excluded_from_check and object_class_name not in self.server.schema.object_classes: + raise LDAPObjectClassError('invalid object class ' + str(object_class_name)) + + for attribute_name in _attributes: + if ';' in attribute_name: # remove tags for checking + attribute_name_to_check = attribute_name.split(';')[0] + else: + attribute_name_to_check = attribute_name + + if attribute_name_to_check.lower() not in conf_attributes_excluded_from_check and attribute_name_to_check not in self.server.schema.attribute_types: + raise LDAPAttributeError('invalid attribute type ' + attribute_name_to_check) + + request = add_operation(dn, _attributes, self.auto_encode, self.server.schema if self.server else None, validator=self.server.custom_validator if self.server else None, check_names=self.check_names) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'ADD request <%s> sent via <%s>', add_request_to_dict(request), self) + response = self.post_send_single_response(self.send('addRequest', request, controls)) + self._entries = [] + + if isinstance(response, STRING_TYPES + (int, )): + return_value = response + if log_enabled(PROTOCOL): + log(PROTOCOL, 'async ADD response id <%s> received via <%s>', return_value, self) + else: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'ADD response <%s> received via <%s>', response, self) + return_value = True if self.result['type'] == 'addResponse' and self.result['result'] == RESULT_SUCCESS else False + if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: + self.last_error = self.result['description'] + + if log_enabled(BASIC): + log(BASIC, 'done ADD operation, result <%s>', return_value) + + return return_value + + def delete(self, + dn, + controls=None): + """ + Delete the entry identified by the DN from the DIB. + """ + if log_enabled(BASIC): + log(BASIC, 'start DELETE operation via <%s>', self) + self.last_error = None + if self.check_names: + dn = safe_dn(dn) + if log_enabled(EXTENDED): + log(EXTENDED, 'dn sanitized to <%s> for DELETE operation via <%s>', dn, self) + + with self.connection_lock: + self._fire_deferred() + if self.read_only: + self.last_error = 'connection is read-only' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPConnectionIsReadOnlyError(self.last_error) + + request = delete_operation(dn) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'DELETE request <%s> sent via <%s>', delete_request_to_dict(request), self) + response = self.post_send_single_response(self.send('delRequest', request, controls)) + self._entries = [] + + if isinstance(response, STRING_TYPES + (int, )): + return_value = response + if log_enabled(PROTOCOL): + log(PROTOCOL, 'async DELETE response id <%s> received via <%s>', return_value, self) + else: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'DELETE response <%s> received via <%s>', response, self) + return_value = True if self.result['type'] == 'delResponse' and self.result['result'] == RESULT_SUCCESS else False + if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: + self.last_error = self.result['description'] + + if log_enabled(BASIC): + log(BASIC, 'done DELETE operation, result <%s>', return_value) + + return return_value + + def modify(self, + dn, + changes, + controls=None): + """ + Modify attributes of entry + + - changes is a dictionary in the form {'attribute1': change), 'attribute2': [change, change, ...], ...} + - change is (operation, [value1, value2, ...]) + - operation is 0 (MODIFY_ADD), 1 (MODIFY_DELETE), 2 (MODIFY_REPLACE), 3 (MODIFY_INCREMENT) + """ + conf_attributes_excluded_from_check = [v.lower() for v in get_config_parameter('ATTRIBUTES_EXCLUDED_FROM_CHECK')] + + if log_enabled(BASIC): + log(BASIC, 'start MODIFY operation via <%s>', self) + self.last_error = None + if self.check_names: + dn = safe_dn(dn) + if log_enabled(EXTENDED): + log(EXTENDED, 'dn sanitized to <%s> for MODIFY operation via <%s>', dn, self) + + with self.connection_lock: + self._fire_deferred() + if self.read_only: + self.last_error = 'connection is read-only' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPConnectionIsReadOnlyError(self.last_error) + + if not isinstance(changes, dict): + self.last_error = 'changes must be a dictionary' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPChangeError(self.last_error) + + if not changes: + self.last_error = 'no changes in modify request' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPChangeError(self.last_error) + + changelist = dict() + for attribute_name in changes: + if self.server and self.server.schema and self.check_names: + if ';' in attribute_name: # remove tags for checking + attribute_name_to_check = attribute_name.split(';')[0] + else: + attribute_name_to_check = attribute_name + + if self.server.schema.attribute_types and attribute_name_to_check.lower() not in conf_attributes_excluded_from_check and attribute_name_to_check not in self.server.schema.attribute_types: + raise LDAPAttributeError('invalid attribute type ' + attribute_name_to_check) + change = changes[attribute_name] + if isinstance(change, SEQUENCE_TYPES) and change[0] in [MODIFY_ADD, MODIFY_DELETE, MODIFY_REPLACE, MODIFY_INCREMENT, 0, 1, 2, 3]: + if len(change) != 2: + self.last_error = 'malformed change' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPChangeError(self.last_error) + + changelist[attribute_name] = [change] # insert change in a list + else: + for change_operation in change: + if len(change_operation) != 2 or change_operation[0] not in [MODIFY_ADD, MODIFY_DELETE, MODIFY_REPLACE, MODIFY_INCREMENT, 0, 1, 2, 3]: + self.last_error = 'invalid change list' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPChangeError(self.last_error) + changelist[attribute_name] = change + request = modify_operation(dn, changelist, self.auto_encode, self.server.schema if self.server else None, validator=self.server.custom_validator if self.server else None, check_names=self.check_names) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'MODIFY request <%s> sent via <%s>', modify_request_to_dict(request), self) + response = self.post_send_single_response(self.send('modifyRequest', request, controls)) + self._entries = [] + + if isinstance(response, STRING_TYPES + (int, )): + return_value = response + if log_enabled(PROTOCOL): + log(PROTOCOL, 'async MODIFY response id <%s> received via <%s>', return_value, self) + else: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'MODIFY response <%s> received via <%s>', response, self) + return_value = True if self.result['type'] == 'modifyResponse' and self.result['result'] == RESULT_SUCCESS else False + if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: + self.last_error = self.result['description'] + + if log_enabled(BASIC): + log(BASIC, 'done MODIFY operation, result <%s>', return_value) + + return return_value + + def modify_dn(self, + dn, + relative_dn, + delete_old_dn=True, + new_superior=None, + controls=None): + """ + Modify DN of the entry or performs a move of the entry in the + DIT. + """ + if log_enabled(BASIC): + log(BASIC, 'start MODIFY DN operation via <%s>', self) + self.last_error = None + if self.check_names: + dn = safe_dn(dn) + if log_enabled(EXTENDED): + log(EXTENDED, 'dn sanitized to <%s> for MODIFY DN operation via <%s>', dn, self) + relative_dn = safe_dn(relative_dn) + if log_enabled(EXTENDED): + log(EXTENDED, 'relative dn sanitized to <%s> for MODIFY DN operation via <%s>', relative_dn, self) + + with self.connection_lock: + self._fire_deferred() + if self.read_only: + self.last_error = 'connection is read-only' + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', self.last_error, self) + raise LDAPConnectionIsReadOnlyError(self.last_error) + + # if new_superior and not dn.startswith(relative_dn): # as per RFC4511 (4.9) + # self.last_error = 'DN cannot change while performing moving' + # if log_enabled(ERROR): + # log(ERROR, '%s for <%s>', self.last_error, self) + # raise LDAPChangeError(self.last_error) + + request = modify_dn_operation(dn, relative_dn, delete_old_dn, new_superior) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'MODIFY DN request <%s> sent via <%s>', modify_dn_request_to_dict(request), self) + response = self.post_send_single_response(self.send('modDNRequest', request, controls)) + self._entries = [] + + if isinstance(response, STRING_TYPES + (int, )): + return_value = response + if log_enabled(PROTOCOL): + log(PROTOCOL, 'async MODIFY DN response id <%s> received via <%s>', return_value, self) + else: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'MODIFY DN response <%s> received via <%s>', response, self) + return_value = True if self.result['type'] == 'modDNResponse' and self.result['result'] == RESULT_SUCCESS else False + if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: + self.last_error = self.result['description'] + + if log_enabled(BASIC): + log(BASIC, 'done MODIFY DN operation, result <%s>', return_value) + + return return_value + + def abandon(self, + message_id, + controls=None): + """ + Abandon the operation indicated by message_id + """ + if log_enabled(BASIC): + log(BASIC, 'start ABANDON operation via <%s>', self) + self.last_error = None + with self.connection_lock: + self._fire_deferred() + return_value = False + if self.strategy._outstanding or message_id == 0: + # only current operation should be abandoned, abandon, bind and unbind cannot ever be abandoned, + # messagiId 0 is invalid and should be used as a "ping" to keep alive the connection + if (self.strategy._outstanding and message_id in self.strategy._outstanding and self.strategy._outstanding[message_id]['type'] not in ['abandonRequest', 'bindRequest', 'unbindRequest']) or message_id == 0: + request = abandon_operation(message_id) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'ABANDON request: <%s> sent via <%s>', abandon_request_to_dict(request), self) + self.send('abandonRequest', request, controls) + self.result = None + self.response = None + self._entries = [] + return_value = True + else: + if log_enabled(ERROR): + log(ERROR, 'cannot abandon a Bind, an Unbind or an Abandon operation or message ID %s not found via <%s>', str(message_id), self) + + if log_enabled(BASIC): + log(BASIC, 'done ABANDON operation, result <%s>', return_value) + + return return_value + + def extended(self, + request_name, + request_value=None, + controls=None, + no_encode=None): + """ + Performs an extended operation + """ + if log_enabled(BASIC): + log(BASIC, 'start EXTENDED operation via <%s>', self) + self.last_error = None + with self.connection_lock: + self._fire_deferred() + request = extended_operation(request_name, request_value, no_encode=no_encode) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'EXTENDED request <%s> sent via <%s>', extended_request_to_dict(request), self) + response = self.post_send_single_response(self.send('extendedReq', request, controls)) + self._entries = [] + if isinstance(response, int): + return_value = response + if log_enabled(PROTOCOL): + log(PROTOCOL, 'async EXTENDED response id <%s> received via <%s>', return_value, self) + else: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'EXTENDED response <%s> received via <%s>', response, self) + return_value = True if self.result['type'] == 'extendedResp' and self.result['result'] == RESULT_SUCCESS else False + if not return_value and self.result['result'] not in [RESULT_SUCCESS] and not self.last_error: + self.last_error = self.result['description'] + + if log_enabled(BASIC): + log(BASIC, 'done EXTENDED operation, result <%s>', return_value) + + return return_value + + def start_tls(self, read_server_info=True): # as per RFC4511. Removal of TLS is defined as MAY in RFC4511 so the client can't implement a generic stop_tls method0 + + if log_enabled(BASIC): + log(BASIC, 'start START TLS operation via <%s>', self) + + with self.connection_lock: + return_value = False + if not self.server.tls: + self.server.tls = Tls() + + if self.lazy and not self._executing_deferred: + self._deferred_start_tls = True + self.tls_started = True + return_value = True + if log_enabled(BASIC): + log(BASIC, 'deferring START TLS for <%s>', self) + else: + self._deferred_start_tls = False + if self.closed: + self.open() + if self.server.tls.start_tls(self) and self.strategy.sync: # for asynchronous connections _start_tls is run by the strategy + if read_server_info: + self.refresh_server_info() # refresh server info as per RFC4515 (3.1.5) + return_value = True + elif not self.strategy.sync: + return_value = True + + if log_enabled(BASIC): + log(BASIC, 'done START TLS operation, result <%s>', return_value) + + return return_value + + def do_sasl_bind(self, + controls): + if log_enabled(BASIC): + log(BASIC, 'start SASL BIND operation via <%s>', self) + self.last_error = None + with self.connection_lock: + result = None + + if not self.sasl_in_progress: + self.sasl_in_progress = True + try: + if self.sasl_mechanism == EXTERNAL: + result = sasl_external(self, controls) + elif self.sasl_mechanism == DIGEST_MD5: + result = sasl_digest_md5(self, controls) + elif self.sasl_mechanism == GSSAPI: + from ..protocol.sasl.kerberos import sasl_gssapi # needs the gssapi package + result = sasl_gssapi(self, controls) + elif self.sasl_mechanism == 'PLAIN': + result = sasl_plain(self, controls) + finally: + self.sasl_in_progress = False + + if log_enabled(BASIC): + log(BASIC, 'done SASL BIND operation, result <%s>', result) + + return result + + def do_ntlm_bind(self, + controls): + if log_enabled(BASIC): + log(BASIC, 'start NTLM BIND operation via <%s>', self) + self.last_error = None + with self.connection_lock: + result = None + if not self.sasl_in_progress: + self.sasl_in_progress = True # ntlm is same of sasl authentication + try: + # additional import for NTLM + from ..utils.ntlm import NtlmClient + domain_name, user_name = self.user.split('\\', 1) + ntlm_client = NtlmClient(user_name=user_name, domain=domain_name, password=self.password) + + # as per https://msdn.microsoft.com/en-us/library/cc223501.aspx + # send a sicilyPackageDiscovery request (in the bindRequest) + request = bind_operation(self.version, 'SICILY_PACKAGE_DISCOVERY', ntlm_client) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'NTLM SICILY PACKAGE DISCOVERY request sent via <%s>', self) + response = self.post_send_single_response(self.send('bindRequest', request, controls)) + if not self.strategy.sync: + _, result = self.get_response(response) + else: + result = response[0] + if 'server_creds' in result: + sicily_packages = result['server_creds'].decode('ascii').split(';') + if 'NTLM' in sicily_packages: # NTLM available on server + request = bind_operation(self.version, 'SICILY_NEGOTIATE_NTLM', ntlm_client) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'NTLM SICILY NEGOTIATE request sent via <%s>', self) + response = self.post_send_single_response(self.send('bindRequest', request, controls)) + if not self.strategy.sync: + _, result = self.get_response(response) + else: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'NTLM SICILY NEGOTIATE response <%s> received via <%s>', response[0], + self) + result = response[0] + + if result['result'] == RESULT_SUCCESS: + request = bind_operation(self.version, 'SICILY_RESPONSE_NTLM', ntlm_client, + result['server_creds']) + if log_enabled(PROTOCOL): + log(PROTOCOL, 'NTLM SICILY RESPONSE NTLM request sent via <%s>', self) + response = self.post_send_single_response(self.send('bindRequest', request, controls)) + if not self.strategy.sync: + _, result = self.get_response(response) + else: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'NTLM BIND response <%s> received via <%s>', response[0], self) + result = response[0] + else: + result = None + finally: + self.sasl_in_progress = False + + if log_enabled(BASIC): + log(BASIC, 'done SASL NTLM operation, result <%s>', result) + + return result + + def refresh_server_info(self): + # if self.strategy.no_real_dsa: # do not refresh for mock strategies + # return + + if not self.strategy.pooled: + with self.connection_lock: + if not self.closed: + if log_enabled(BASIC): + log(BASIC, 'refreshing server info for <%s>', self) + previous_response = self.response + previous_result = self.result + previous_entries = self._entries + self.server.get_info_from_server(self) + self.response = previous_response + self.result = previous_result + self._entries = previous_entries + else: + if log_enabled(BASIC): + log(BASIC, 'refreshing server info from pool for <%s>', self) + self.strategy.pool.get_info_from_server() + + def response_to_ldif(self, + search_result=None, + all_base64=False, + line_separator=None, + sort_order=None, + stream=None): + with self.connection_lock: + if search_result is None: + search_result = self.response + + if isinstance(search_result, SEQUENCE_TYPES): + ldif_lines = operation_to_ldif('searchResponse', search_result, all_base64, sort_order=sort_order) + ldif_lines = add_ldif_header(ldif_lines) + line_separator = line_separator or linesep + ldif_output = line_separator.join(ldif_lines) + if stream: + if stream.tell() == 0: + header = add_ldif_header(['-'])[0] + stream.write(prepare_for_stream(header + line_separator + line_separator)) + stream.write(prepare_for_stream(ldif_output + line_separator + line_separator)) + if log_enabled(BASIC): + log(BASIC, 'building LDIF output <%s> for <%s>', ldif_output, self) + return ldif_output + + return None + + def response_to_json(self, + raw=False, + search_result=None, + indent=4, + sort=True, + stream=None, + checked_attributes=True, + include_empty=True): + + with self.connection_lock: + if search_result is None: + search_result = self.response + + if isinstance(search_result, SEQUENCE_TYPES): + json_dict = dict() + json_dict['entries'] = [] + + for response in search_result: + if response['type'] == 'searchResEntry': + entry = dict() + + entry['dn'] = response['dn'] + if checked_attributes: + if not include_empty: + # needed for python 2.6 compatibility + entry['attributes'] = dict((key, response['attributes'][key]) for key in response['attributes'] if response['attributes'][key]) + else: + entry['attributes'] = dict(response['attributes']) + if raw: + if not include_empty: + # needed for python 2.6 compatibility + entry['raw_attributes'] = dict((key, response['raw_attributes'][key]) for key in response['raw_attributes'] if response['raw:attributes'][key]) + else: + entry['raw'] = dict(response['raw_attributes']) + json_dict['entries'].append(entry) + + if str is bytes: # Python 2 + check_json_dict(json_dict) + + json_output = json.dumps(json_dict, ensure_ascii=True, sort_keys=sort, indent=indent, check_circular=True, default=format_json, separators=(',', ': ')) + + if log_enabled(BASIC): + log(BASIC, 'building JSON output <%s> for <%s>', json_output, self) + if stream: + stream.write(json_output) + + return json_output + + def response_to_file(self, + target, + raw=False, + indent=4, + sort=True): + with self.connection_lock: + if self.response: + if isinstance(target, STRING_TYPES): + target = open(target, 'w+') + + if log_enabled(BASIC): + log(BASIC, 'writing response to file for <%s>', self) + + target.writelines(self.response_to_json(raw=raw, indent=indent, sort=sort)) + target.close() + + def _fire_deferred(self, read_info=True): + with self.connection_lock: + if self.lazy and not self._executing_deferred: + self._executing_deferred = True + + if log_enabled(BASIC): + log(BASIC, 'executing deferred (open: %s, start_tls: %s, bind: %s) for <%s>', self._deferred_open, self._deferred_start_tls, self._deferred_bind, self) + try: + if self._deferred_open: + self.open(read_server_info=False) + if self._deferred_start_tls: + self.start_tls(read_server_info=False) + if self._deferred_bind: + self.bind(read_server_info=False, controls=self._bind_controls) + if read_info: + self.refresh_server_info() + except LDAPExceptionError as e: + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', e, self) + raise # re-raise LDAPExceptionError + finally: + self._executing_deferred = False + + @property + def entries(self): + if self.response: + if not self._entries: + self._entries = self._get_entries(self.response) + return self._entries + + def _get_entries(self, search_response): + with self.connection_lock: + from .. import ObjectDef, Reader + + # build a table of ObjectDefs, grouping the entries found in search_response for their attributes set, subset will be included in superset + attr_sets = [] + for response in search_response: + if response['type'] == 'searchResEntry': + resp_attr_set = set(response['attributes'].keys()) + if resp_attr_set not in attr_sets: + attr_sets.append(resp_attr_set) + attr_sets.sort(key=lambda x: -len(x)) # sorts the list in descending length order + unique_attr_sets = [] + for attr_set in attr_sets: + for unique_set in unique_attr_sets: + if unique_set >= attr_set: # checks if unique set is a superset of attr_set + break + else: # the attr_set is not a subset of any element in unique_attr_sets + unique_attr_sets.append(attr_set) + object_defs = [] + for attr_set in unique_attr_sets: + object_def = ObjectDef(schema=self.server.schema) + object_def += list(attr_set) # converts the set in a list to be added to the object definition + object_defs.append((attr_set, + object_def, + Reader(self, object_def, self.request['base'], self.request['filter'], attributes=attr_set) if self.strategy.sync else Reader(self, object_def, '', '', attributes=attr_set)) + ) # objects_defs contains a tuple with the set, the ObjectDef and a cursor + + entries = [] + for response in search_response: + if response['type'] == 'searchResEntry': + resp_attr_set = set(response['attributes'].keys()) + for object_def in object_defs: + if resp_attr_set <= object_def[0]: # finds the ObjectDef for the attribute set of this entry + entry = object_def[2]._create_entry(response) + entries.append(entry) + break + else: + if log_enabled(ERROR): + log(ERROR, 'attribute set not found for %s in <%s>', resp_attr_set, self) + raise LDAPObjectError('attribute set not found for ' + str(resp_attr_set)) + + return entries diff --git a/server/www/packages/packages-linux/x64/ldap3/core/exceptions.py b/server/www/packages/packages-linux/x64/ldap3/core/exceptions.py index b5d22b9..29aed26 100644 --- a/server/www/packages/packages-linux/x64/ldap3/core/exceptions.py +++ b/server/www/packages/packages-linux/x64/ldap3/core/exceptions.py @@ -1,605 +1,609 @@ -""" -""" - -# Created on 2014.05.14 -# -# Author: Giovanni Cannata -# -# Copyright 2014 - 2019 Giovanni Cannata -# -# This file is part of ldap3. -# -# ldap3 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ldap3 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with ldap3 in the COPYING and COPYING.LESSER files. -# If not, see . - -from os import sep -from .results import RESULT_OPERATIONS_ERROR, RESULT_PROTOCOL_ERROR, RESULT_TIME_LIMIT_EXCEEDED, RESULT_SIZE_LIMIT_EXCEEDED, \ - RESULT_STRONGER_AUTH_REQUIRED, RESULT_REFERRAL, RESULT_ADMIN_LIMIT_EXCEEDED, RESULT_UNAVAILABLE_CRITICAL_EXTENSION, \ - RESULT_AUTH_METHOD_NOT_SUPPORTED, RESULT_UNDEFINED_ATTRIBUTE_TYPE, RESULT_NO_SUCH_ATTRIBUTE, \ - RESULT_SASL_BIND_IN_PROGRESS, RESULT_CONFIDENTIALITY_REQUIRED, RESULT_INAPPROPRIATE_MATCHING, \ - RESULT_CONSTRAINT_VIOLATION, \ - RESULT_ATTRIBUTE_OR_VALUE_EXISTS, RESULT_INVALID_ATTRIBUTE_SYNTAX, RESULT_NO_SUCH_OBJECT, RESULT_ALIAS_PROBLEM, \ - RESULT_INVALID_DN_SYNTAX, RESULT_ALIAS_DEREFERENCING_PROBLEM, RESULT_INVALID_CREDENTIALS, RESULT_LOOP_DETECTED, \ - RESULT_ENTRY_ALREADY_EXISTS, RESULT_LCUP_SECURITY_VIOLATION, RESULT_CANCELED, RESULT_E_SYNC_REFRESH_REQUIRED, \ - RESULT_NO_SUCH_OPERATION, RESULT_LCUP_INVALID_DATA, RESULT_OBJECT_CLASS_MODS_PROHIBITED, RESULT_NAMING_VIOLATION, \ - RESULT_INSUFFICIENT_ACCESS_RIGHTS, RESULT_OBJECT_CLASS_VIOLATION, RESULT_TOO_LATE, RESULT_CANNOT_CANCEL, \ - RESULT_LCUP_UNSUPPORTED_SCHEME, RESULT_BUSY, RESULT_AFFECT_MULTIPLE_DSAS, RESULT_UNAVAILABLE, \ - RESULT_NOT_ALLOWED_ON_NON_LEAF, \ - RESULT_UNWILLING_TO_PERFORM, RESULT_OTHER, RESULT_LCUP_RELOAD_REQUIRED, RESULT_ASSERTION_FAILED, \ - RESULT_AUTHORIZATION_DENIED, RESULT_LCUP_RESOURCES_EXHAUSTED, RESULT_NOT_ALLOWED_ON_RDN, \ - RESULT_INAPPROPRIATE_AUTHENTICATION -import socket - - -# LDAPException hierarchy -class LDAPException(Exception): - pass - - -class LDAPOperationResult(LDAPException): - def __new__(cls, result=None, description=None, dn=None, message=None, response_type=None, response=None): - if cls is LDAPOperationResult and result and result in exception_table: - exc = super(LDAPOperationResult, exception_table[result]).__new__( - exception_table[result]) # create an exception of the required result error - exc.result = result - exc.description = description - exc.dn = dn - exc.message = message - exc.type = response_type - exc.response = response - else: - exc = super(LDAPOperationResult, cls).__new__(cls) - return exc - - def __init__(self, result=None, description=None, dn=None, message=None, response_type=None, response=None): - self.result = result - self.description = description - self.dn = dn - self.message = message - self.type = response_type - self.response = response - - def __str__(self): - s = [self.__class__.__name__, - str(self.result) if self.result else None, - self.description if self.description else None, - self.dn if self.dn else None, - self.message if self.message else None, - self.type if self.type else None, - self.response if self.response else None] - - return ' - '.join([str(item) for item in s if s is not None]) - - def __repr__(self): - return self.__str__() - - -class LDAPOperationsErrorResult(LDAPOperationResult): - pass - - -class LDAPProtocolErrorResult(LDAPOperationResult): - pass - - -class LDAPTimeLimitExceededResult(LDAPOperationResult): - pass - - -class LDAPSizeLimitExceededResult(LDAPOperationResult): - pass - - -class LDAPAuthMethodNotSupportedResult(LDAPOperationResult): - pass - - -class LDAPStrongerAuthRequiredResult(LDAPOperationResult): - pass - - -class LDAPReferralResult(LDAPOperationResult): - pass - - -class LDAPAdminLimitExceededResult(LDAPOperationResult): - pass - - -class LDAPUnavailableCriticalExtensionResult(LDAPOperationResult): - pass - - -class LDAPConfidentialityRequiredResult(LDAPOperationResult): - pass - - -class LDAPSASLBindInProgressResult(LDAPOperationResult): - pass - - -class LDAPNoSuchAttributeResult(LDAPOperationResult): - pass - - -class LDAPUndefinedAttributeTypeResult(LDAPOperationResult): - pass - - -class LDAPInappropriateMatchingResult(LDAPOperationResult): - pass - - -class LDAPConstraintViolationResult(LDAPOperationResult): - pass - - -class LDAPAttributeOrValueExistsResult(LDAPOperationResult): - pass - - -class LDAPInvalidAttributeSyntaxResult(LDAPOperationResult): - pass - - -class LDAPNoSuchObjectResult(LDAPOperationResult): - pass - - -class LDAPAliasProblemResult(LDAPOperationResult): - pass - - -class LDAPInvalidDNSyntaxResult(LDAPOperationResult): - pass - - -class LDAPAliasDereferencingProblemResult(LDAPOperationResult): - pass - - -class LDAPInappropriateAuthenticationResult(LDAPOperationResult): - pass - - -class LDAPInvalidCredentialsResult(LDAPOperationResult): - pass - - -class LDAPInsufficientAccessRightsResult(LDAPOperationResult): - pass - - -class LDAPBusyResult(LDAPOperationResult): - pass - - -class LDAPUnavailableResult(LDAPOperationResult): - pass - - -class LDAPUnwillingToPerformResult(LDAPOperationResult): - pass - - -class LDAPLoopDetectedResult(LDAPOperationResult): - pass - - -class LDAPNamingViolationResult(LDAPOperationResult): - pass - - -class LDAPObjectClassViolationResult(LDAPOperationResult): - pass - - -class LDAPNotAllowedOnNotLeafResult(LDAPOperationResult): - pass - - -class LDAPNotAllowedOnRDNResult(LDAPOperationResult): - pass - - -class LDAPEntryAlreadyExistsResult(LDAPOperationResult): - pass - - -class LDAPObjectClassModsProhibitedResult(LDAPOperationResult): - pass - - -class LDAPAffectMultipleDSASResult(LDAPOperationResult): - pass - - -class LDAPOtherResult(LDAPOperationResult): - pass - - -class LDAPLCUPResourcesExhaustedResult(LDAPOperationResult): - pass - - -class LDAPLCUPSecurityViolationResult(LDAPOperationResult): - pass - - -class LDAPLCUPInvalidDataResult(LDAPOperationResult): - pass - - -class LDAPLCUPUnsupportedSchemeResult(LDAPOperationResult): - pass - - -class LDAPLCUPReloadRequiredResult(LDAPOperationResult): - pass - - -class LDAPCanceledResult(LDAPOperationResult): - pass - - -class LDAPNoSuchOperationResult(LDAPOperationResult): - pass - - -class LDAPTooLateResult(LDAPOperationResult): - pass - - -class LDAPCannotCancelResult(LDAPOperationResult): - pass - - -class LDAPAssertionFailedResult(LDAPOperationResult): - pass - - -class LDAPAuthorizationDeniedResult(LDAPOperationResult): - pass - - -class LDAPESyncRefreshRequiredResult(LDAPOperationResult): - pass - - -exception_table = {RESULT_OPERATIONS_ERROR: LDAPOperationsErrorResult, - RESULT_PROTOCOL_ERROR: LDAPProtocolErrorResult, - RESULT_TIME_LIMIT_EXCEEDED: LDAPTimeLimitExceededResult, - RESULT_SIZE_LIMIT_EXCEEDED: LDAPSizeLimitExceededResult, - RESULT_AUTH_METHOD_NOT_SUPPORTED: LDAPAuthMethodNotSupportedResult, - RESULT_STRONGER_AUTH_REQUIRED: LDAPStrongerAuthRequiredResult, - RESULT_REFERRAL: LDAPReferralResult, - RESULT_ADMIN_LIMIT_EXCEEDED: LDAPAdminLimitExceededResult, - RESULT_UNAVAILABLE_CRITICAL_EXTENSION: LDAPUnavailableCriticalExtensionResult, - RESULT_CONFIDENTIALITY_REQUIRED: LDAPConfidentialityRequiredResult, - RESULT_SASL_BIND_IN_PROGRESS: LDAPSASLBindInProgressResult, - RESULT_NO_SUCH_ATTRIBUTE: LDAPNoSuchAttributeResult, - RESULT_UNDEFINED_ATTRIBUTE_TYPE: LDAPUndefinedAttributeTypeResult, - RESULT_INAPPROPRIATE_MATCHING: LDAPInappropriateMatchingResult, - RESULT_CONSTRAINT_VIOLATION: LDAPConstraintViolationResult, - RESULT_ATTRIBUTE_OR_VALUE_EXISTS: LDAPAttributeOrValueExistsResult, - RESULT_INVALID_ATTRIBUTE_SYNTAX: LDAPInvalidAttributeSyntaxResult, - RESULT_NO_SUCH_OBJECT: LDAPNoSuchObjectResult, - RESULT_ALIAS_PROBLEM: LDAPAliasProblemResult, - RESULT_INVALID_DN_SYNTAX: LDAPInvalidDNSyntaxResult, - RESULT_ALIAS_DEREFERENCING_PROBLEM: LDAPAliasDereferencingProblemResult, - RESULT_INAPPROPRIATE_AUTHENTICATION: LDAPInappropriateAuthenticationResult, - RESULT_INVALID_CREDENTIALS: LDAPInvalidCredentialsResult, - RESULT_INSUFFICIENT_ACCESS_RIGHTS: LDAPInsufficientAccessRightsResult, - RESULT_BUSY: LDAPBusyResult, - RESULT_UNAVAILABLE: LDAPUnavailableResult, - RESULT_UNWILLING_TO_PERFORM: LDAPUnwillingToPerformResult, - RESULT_LOOP_DETECTED: LDAPLoopDetectedResult, - RESULT_NAMING_VIOLATION: LDAPNamingViolationResult, - RESULT_OBJECT_CLASS_VIOLATION: LDAPObjectClassViolationResult, - RESULT_NOT_ALLOWED_ON_NON_LEAF: LDAPNotAllowedOnNotLeafResult, - RESULT_NOT_ALLOWED_ON_RDN: LDAPNotAllowedOnRDNResult, - RESULT_ENTRY_ALREADY_EXISTS: LDAPEntryAlreadyExistsResult, - RESULT_OBJECT_CLASS_MODS_PROHIBITED: LDAPObjectClassModsProhibitedResult, - RESULT_AFFECT_MULTIPLE_DSAS: LDAPAffectMultipleDSASResult, - RESULT_OTHER: LDAPOtherResult, - RESULT_LCUP_RESOURCES_EXHAUSTED: LDAPLCUPResourcesExhaustedResult, - RESULT_LCUP_SECURITY_VIOLATION: LDAPLCUPSecurityViolationResult, - RESULT_LCUP_INVALID_DATA: LDAPLCUPInvalidDataResult, - RESULT_LCUP_UNSUPPORTED_SCHEME: LDAPLCUPUnsupportedSchemeResult, - RESULT_LCUP_RELOAD_REQUIRED: LDAPLCUPReloadRequiredResult, - RESULT_CANCELED: LDAPCanceledResult, - RESULT_NO_SUCH_OPERATION: LDAPNoSuchOperationResult, - RESULT_TOO_LATE: LDAPTooLateResult, - RESULT_CANNOT_CANCEL: LDAPCannotCancelResult, - RESULT_ASSERTION_FAILED: LDAPAssertionFailedResult, - RESULT_AUTHORIZATION_DENIED: LDAPAuthorizationDeniedResult, - RESULT_E_SYNC_REFRESH_REQUIRED: LDAPESyncRefreshRequiredResult} - - -class LDAPExceptionError(LDAPException): - pass - - -# configuration exceptions -class LDAPConfigurationError(LDAPExceptionError): - pass - - -class LDAPUnknownStrategyError(LDAPConfigurationError): - pass - - -class LDAPUnknownAuthenticationMethodError(LDAPConfigurationError): - pass - - -class LDAPSSLConfigurationError(LDAPConfigurationError): - pass - - -class LDAPDefinitionError(LDAPConfigurationError): - pass - - -class LDAPPackageUnavailableError(LDAPConfigurationError, ImportError): - pass - - -class LDAPConfigurationParameterError(LDAPConfigurationError): - pass - - -# abstract layer exceptions -class LDAPKeyError(LDAPExceptionError, KeyError, AttributeError): - pass - - -class LDAPObjectError(LDAPExceptionError, ValueError): - pass - - -class LDAPAttributeError(LDAPExceptionError, ValueError, TypeError): - pass - - -class LDAPCursorError(LDAPExceptionError): - pass - - -class LDAPObjectDereferenceError(LDAPExceptionError): - pass - - -# security exceptions -class LDAPSSLNotSupportedError(LDAPExceptionError, ImportError): - pass - - -class LDAPInvalidTlsSpecificationError(LDAPExceptionError): - pass - - -class LDAPInvalidHashAlgorithmError(LDAPExceptionError, ValueError): - pass - - -# connection exceptions -class LDAPBindError(LDAPExceptionError): - pass - - -class LDAPInvalidServerError(LDAPExceptionError): - pass - - -class LDAPSASLMechanismNotSupportedError(LDAPExceptionError): - pass - - -class LDAPConnectionIsReadOnlyError(LDAPExceptionError): - pass - - -class LDAPChangeError(LDAPExceptionError, ValueError): - pass - - -class LDAPServerPoolError(LDAPExceptionError): - pass - - -class LDAPServerPoolExhaustedError(LDAPExceptionError): - pass - - -class LDAPInvalidPortError(LDAPExceptionError): - pass - - -class LDAPStartTLSError(LDAPExceptionError): - pass - - -class LDAPCertificateError(LDAPExceptionError): - pass - - -class LDAPUserNameNotAllowedError(LDAPExceptionError): - pass - - -class LDAPUserNameIsMandatoryError(LDAPExceptionError): - pass - - -class LDAPPasswordIsMandatoryError(LDAPExceptionError): - pass - - -class LDAPInvalidFilterError(LDAPExceptionError): - pass - - -class LDAPInvalidScopeError(LDAPExceptionError, ValueError): - pass - - -class LDAPInvalidDereferenceAliasesError(LDAPExceptionError, ValueError): - pass - - -class LDAPInvalidValueError(LDAPExceptionError, ValueError): - pass - - -class LDAPControlError(LDAPExceptionError, ValueError): - pass - - -class LDAPExtensionError(LDAPExceptionError, ValueError): - pass - - -class LDAPLDIFError(LDAPExceptionError): - pass - - -class LDAPSchemaError(LDAPExceptionError): - pass - - -class LDAPSASLPrepError(LDAPExceptionError): - pass - - -class LDAPSASLBindInProgressError(LDAPExceptionError): - pass - - -class LDAPMetricsError(LDAPExceptionError): - pass - - -class LDAPObjectClassError(LDAPExceptionError): - pass - - -class LDAPInvalidDnError(LDAPExceptionError): - pass - - -class LDAPResponseTimeoutError(LDAPExceptionError): - pass - - -class LDAPTransactionError(LDAPExceptionError): - pass - - -class LDAPInfoError(LDAPExceptionError): - pass - - -# communication exceptions -class LDAPCommunicationError(LDAPExceptionError): - pass - - -class LDAPSocketOpenError(LDAPCommunicationError): - pass - - -class LDAPSocketCloseError(LDAPCommunicationError): - pass - - -class LDAPSocketReceiveError(LDAPCommunicationError, socket.error): - pass - - -class LDAPSocketSendError(LDAPCommunicationError, socket.error): - pass - - -class LDAPSessionTerminatedByServerError(LDAPCommunicationError): - pass - - -class LDAPUnknownResponseError(LDAPCommunicationError): - pass - - -class LDAPUnknownRequestError(LDAPCommunicationError): - pass - - -class LDAPReferralError(LDAPCommunicationError): - pass - - -# pooling exceptions -class LDAPConnectionPoolNameIsMandatoryError(LDAPExceptionError): - pass - - -class LDAPConnectionPoolNotStartedError(LDAPExceptionError): - pass - - -# restartable strategy -class LDAPMaximumRetriesError(LDAPExceptionError): - def __str__(self): - s = [] - if self.args: - if isinstance(self.args, tuple): - if len(self.args) > 0: - s.append('LDAPMaximumRetriesError: ' + str(self.args[0])) - if len(self.args) > 1: - s.append('Exception history:') - prev_exc = '' - for i, exc in enumerate(self.args[1]): # args[1] contains exception history - # if str(exc[1]) != prev_exc: - # s.append((str(i).rjust(5) + ' ' + str(exc[0]) + ': ' + str(exc[1]) + ' - ' + str(exc[2]))) - # prev_exc = str(exc[1]) - if str(exc) != prev_exc: - s.append((str(i).rjust(5) + ' ' + str(type(exc)) + ': ' + str(exc))) - prev_exc = str(exc) - if len(self.args) > 2: - s.append('Maximum number of retries reached: ' + str(self.args[2])) - else: - s = [LDAPExceptionError.__str__(self)] - - return sep.join(s) - - -# exception factories -def communication_exception_factory(exc_to_raise, exc): - """ - Generates a new exception class of the requested type (subclass of LDAPCommunication) merged with the exception raised by the interpreter - """ - if exc_to_raise.__name__ in [cls.__name__ for cls in LDAPCommunicationError.__subclasses__()]: - return type(exc_to_raise.__name__, (exc_to_raise, type(exc)), dict()) - else: - raise LDAPExceptionError('unable to generate exception type ' + str(exc_to_raise)) - - -def start_tls_exception_factory(exc_to_raise, exc): - """ - Generates a new exception class of the requested type merged with the exception raised by the interpreter - """ - - if exc_to_raise.__name__ == 'LDAPStartTLSError': - return type(exc_to_raise.__name__, (exc_to_raise, type(exc)), dict()) - else: - raise LDAPExceptionError('unable to generate exception type ' + str(exc_to_raise)) +""" +""" + +# Created on 2014.05.14 +# +# Author: Giovanni Cannata +# +# Copyright 2014 - 2020 Giovanni Cannata +# +# This file is part of ldap3. +# +# ldap3 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ldap3 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ldap3 in the COPYING and COPYING.LESSER files. +# If not, see . + +from os import sep +from .results import RESULT_OPERATIONS_ERROR, RESULT_PROTOCOL_ERROR, RESULT_TIME_LIMIT_EXCEEDED, RESULT_SIZE_LIMIT_EXCEEDED, \ + RESULT_STRONGER_AUTH_REQUIRED, RESULT_REFERRAL, RESULT_ADMIN_LIMIT_EXCEEDED, RESULT_UNAVAILABLE_CRITICAL_EXTENSION, \ + RESULT_AUTH_METHOD_NOT_SUPPORTED, RESULT_UNDEFINED_ATTRIBUTE_TYPE, RESULT_NO_SUCH_ATTRIBUTE, \ + RESULT_SASL_BIND_IN_PROGRESS, RESULT_CONFIDENTIALITY_REQUIRED, RESULT_INAPPROPRIATE_MATCHING, \ + RESULT_CONSTRAINT_VIOLATION, \ + RESULT_ATTRIBUTE_OR_VALUE_EXISTS, RESULT_INVALID_ATTRIBUTE_SYNTAX, RESULT_NO_SUCH_OBJECT, RESULT_ALIAS_PROBLEM, \ + RESULT_INVALID_DN_SYNTAX, RESULT_ALIAS_DEREFERENCING_PROBLEM, RESULT_INVALID_CREDENTIALS, RESULT_LOOP_DETECTED, \ + RESULT_ENTRY_ALREADY_EXISTS, RESULT_LCUP_SECURITY_VIOLATION, RESULT_CANCELED, RESULT_E_SYNC_REFRESH_REQUIRED, \ + RESULT_NO_SUCH_OPERATION, RESULT_LCUP_INVALID_DATA, RESULT_OBJECT_CLASS_MODS_PROHIBITED, RESULT_NAMING_VIOLATION, \ + RESULT_INSUFFICIENT_ACCESS_RIGHTS, RESULT_OBJECT_CLASS_VIOLATION, RESULT_TOO_LATE, RESULT_CANNOT_CANCEL, \ + RESULT_LCUP_UNSUPPORTED_SCHEME, RESULT_BUSY, RESULT_AFFECT_MULTIPLE_DSAS, RESULT_UNAVAILABLE, \ + RESULT_NOT_ALLOWED_ON_NON_LEAF, \ + RESULT_UNWILLING_TO_PERFORM, RESULT_OTHER, RESULT_LCUP_RELOAD_REQUIRED, RESULT_ASSERTION_FAILED, \ + RESULT_AUTHORIZATION_DENIED, RESULT_LCUP_RESOURCES_EXHAUSTED, RESULT_NOT_ALLOWED_ON_RDN, \ + RESULT_INAPPROPRIATE_AUTHENTICATION +import socket + + +# LDAPException hierarchy +class LDAPException(Exception): + pass + + +class LDAPOperationResult(LDAPException): + def __new__(cls, result=None, description=None, dn=None, message=None, response_type=None, response=None): + if cls is LDAPOperationResult and result and result in exception_table: + exc = super(LDAPOperationResult, exception_table[result]).__new__( + exception_table[result]) # create an exception of the required result error + exc.result = result + exc.description = description + exc.dn = dn + exc.message = message + exc.type = response_type + exc.response = response + else: + exc = super(LDAPOperationResult, cls).__new__(cls) + return exc + + def __init__(self, result=None, description=None, dn=None, message=None, response_type=None, response=None): + self.result = result + self.description = description + self.dn = dn + self.message = message + self.type = response_type + self.response = response + + def __str__(self): + s = [self.__class__.__name__, + str(self.result) if self.result else None, + self.description if self.description else None, + self.dn if self.dn else None, + self.message if self.message else None, + self.type if self.type else None, + self.response if self.response else None] + + return ' - '.join([str(item) for item in s if s is not None]) + + def __repr__(self): + return self.__str__() + + +class LDAPOperationsErrorResult(LDAPOperationResult): + pass + + +class LDAPProtocolErrorResult(LDAPOperationResult): + pass + + +class LDAPTimeLimitExceededResult(LDAPOperationResult): + pass + + +class LDAPSizeLimitExceededResult(LDAPOperationResult): + pass + + +class LDAPAuthMethodNotSupportedResult(LDAPOperationResult): + pass + + +class LDAPStrongerAuthRequiredResult(LDAPOperationResult): + pass + + +class LDAPReferralResult(LDAPOperationResult): + pass + + +class LDAPAdminLimitExceededResult(LDAPOperationResult): + pass + + +class LDAPUnavailableCriticalExtensionResult(LDAPOperationResult): + pass + + +class LDAPConfidentialityRequiredResult(LDAPOperationResult): + pass + + +class LDAPSASLBindInProgressResult(LDAPOperationResult): + pass + + +class LDAPNoSuchAttributeResult(LDAPOperationResult): + pass + + +class LDAPUndefinedAttributeTypeResult(LDAPOperationResult): + pass + + +class LDAPInappropriateMatchingResult(LDAPOperationResult): + pass + + +class LDAPConstraintViolationResult(LDAPOperationResult): + pass + + +class LDAPAttributeOrValueExistsResult(LDAPOperationResult): + pass + + +class LDAPInvalidAttributeSyntaxResult(LDAPOperationResult): + pass + + +class LDAPNoSuchObjectResult(LDAPOperationResult): + pass + + +class LDAPAliasProblemResult(LDAPOperationResult): + pass + + +class LDAPInvalidDNSyntaxResult(LDAPOperationResult): + pass + + +class LDAPAliasDereferencingProblemResult(LDAPOperationResult): + pass + + +class LDAPInappropriateAuthenticationResult(LDAPOperationResult): + pass + + +class LDAPInvalidCredentialsResult(LDAPOperationResult): + pass + + +class LDAPInsufficientAccessRightsResult(LDAPOperationResult): + pass + + +class LDAPBusyResult(LDAPOperationResult): + pass + + +class LDAPUnavailableResult(LDAPOperationResult): + pass + + +class LDAPUnwillingToPerformResult(LDAPOperationResult): + pass + + +class LDAPLoopDetectedResult(LDAPOperationResult): + pass + + +class LDAPNamingViolationResult(LDAPOperationResult): + pass + + +class LDAPObjectClassViolationResult(LDAPOperationResult): + pass + + +class LDAPNotAllowedOnNotLeafResult(LDAPOperationResult): + pass + + +class LDAPNotAllowedOnRDNResult(LDAPOperationResult): + pass + + +class LDAPEntryAlreadyExistsResult(LDAPOperationResult): + pass + + +class LDAPObjectClassModsProhibitedResult(LDAPOperationResult): + pass + + +class LDAPAffectMultipleDSASResult(LDAPOperationResult): + pass + + +class LDAPOtherResult(LDAPOperationResult): + pass + + +class LDAPLCUPResourcesExhaustedResult(LDAPOperationResult): + pass + + +class LDAPLCUPSecurityViolationResult(LDAPOperationResult): + pass + + +class LDAPLCUPInvalidDataResult(LDAPOperationResult): + pass + + +class LDAPLCUPUnsupportedSchemeResult(LDAPOperationResult): + pass + + +class LDAPLCUPReloadRequiredResult(LDAPOperationResult): + pass + + +class LDAPCanceledResult(LDAPOperationResult): + pass + + +class LDAPNoSuchOperationResult(LDAPOperationResult): + pass + + +class LDAPTooLateResult(LDAPOperationResult): + pass + + +class LDAPCannotCancelResult(LDAPOperationResult): + pass + + +class LDAPAssertionFailedResult(LDAPOperationResult): + pass + + +class LDAPAuthorizationDeniedResult(LDAPOperationResult): + pass + + +class LDAPESyncRefreshRequiredResult(LDAPOperationResult): + pass + + +exception_table = {RESULT_OPERATIONS_ERROR: LDAPOperationsErrorResult, + RESULT_PROTOCOL_ERROR: LDAPProtocolErrorResult, + RESULT_TIME_LIMIT_EXCEEDED: LDAPTimeLimitExceededResult, + RESULT_SIZE_LIMIT_EXCEEDED: LDAPSizeLimitExceededResult, + RESULT_AUTH_METHOD_NOT_SUPPORTED: LDAPAuthMethodNotSupportedResult, + RESULT_STRONGER_AUTH_REQUIRED: LDAPStrongerAuthRequiredResult, + RESULT_REFERRAL: LDAPReferralResult, + RESULT_ADMIN_LIMIT_EXCEEDED: LDAPAdminLimitExceededResult, + RESULT_UNAVAILABLE_CRITICAL_EXTENSION: LDAPUnavailableCriticalExtensionResult, + RESULT_CONFIDENTIALITY_REQUIRED: LDAPConfidentialityRequiredResult, + RESULT_SASL_BIND_IN_PROGRESS: LDAPSASLBindInProgressResult, + RESULT_NO_SUCH_ATTRIBUTE: LDAPNoSuchAttributeResult, + RESULT_UNDEFINED_ATTRIBUTE_TYPE: LDAPUndefinedAttributeTypeResult, + RESULT_INAPPROPRIATE_MATCHING: LDAPInappropriateMatchingResult, + RESULT_CONSTRAINT_VIOLATION: LDAPConstraintViolationResult, + RESULT_ATTRIBUTE_OR_VALUE_EXISTS: LDAPAttributeOrValueExistsResult, + RESULT_INVALID_ATTRIBUTE_SYNTAX: LDAPInvalidAttributeSyntaxResult, + RESULT_NO_SUCH_OBJECT: LDAPNoSuchObjectResult, + RESULT_ALIAS_PROBLEM: LDAPAliasProblemResult, + RESULT_INVALID_DN_SYNTAX: LDAPInvalidDNSyntaxResult, + RESULT_ALIAS_DEREFERENCING_PROBLEM: LDAPAliasDereferencingProblemResult, + RESULT_INAPPROPRIATE_AUTHENTICATION: LDAPInappropriateAuthenticationResult, + RESULT_INVALID_CREDENTIALS: LDAPInvalidCredentialsResult, + RESULT_INSUFFICIENT_ACCESS_RIGHTS: LDAPInsufficientAccessRightsResult, + RESULT_BUSY: LDAPBusyResult, + RESULT_UNAVAILABLE: LDAPUnavailableResult, + RESULT_UNWILLING_TO_PERFORM: LDAPUnwillingToPerformResult, + RESULT_LOOP_DETECTED: LDAPLoopDetectedResult, + RESULT_NAMING_VIOLATION: LDAPNamingViolationResult, + RESULT_OBJECT_CLASS_VIOLATION: LDAPObjectClassViolationResult, + RESULT_NOT_ALLOWED_ON_NON_LEAF: LDAPNotAllowedOnNotLeafResult, + RESULT_NOT_ALLOWED_ON_RDN: LDAPNotAllowedOnRDNResult, + RESULT_ENTRY_ALREADY_EXISTS: LDAPEntryAlreadyExistsResult, + RESULT_OBJECT_CLASS_MODS_PROHIBITED: LDAPObjectClassModsProhibitedResult, + RESULT_AFFECT_MULTIPLE_DSAS: LDAPAffectMultipleDSASResult, + RESULT_OTHER: LDAPOtherResult, + RESULT_LCUP_RESOURCES_EXHAUSTED: LDAPLCUPResourcesExhaustedResult, + RESULT_LCUP_SECURITY_VIOLATION: LDAPLCUPSecurityViolationResult, + RESULT_LCUP_INVALID_DATA: LDAPLCUPInvalidDataResult, + RESULT_LCUP_UNSUPPORTED_SCHEME: LDAPLCUPUnsupportedSchemeResult, + RESULT_LCUP_RELOAD_REQUIRED: LDAPLCUPReloadRequiredResult, + RESULT_CANCELED: LDAPCanceledResult, + RESULT_NO_SUCH_OPERATION: LDAPNoSuchOperationResult, + RESULT_TOO_LATE: LDAPTooLateResult, + RESULT_CANNOT_CANCEL: LDAPCannotCancelResult, + RESULT_ASSERTION_FAILED: LDAPAssertionFailedResult, + RESULT_AUTHORIZATION_DENIED: LDAPAuthorizationDeniedResult, + RESULT_E_SYNC_REFRESH_REQUIRED: LDAPESyncRefreshRequiredResult} + + +class LDAPExceptionError(LDAPException): + pass + + +# configuration exceptions +class LDAPConfigurationError(LDAPExceptionError): + pass + + +class LDAPUnknownStrategyError(LDAPConfigurationError): + pass + + +class LDAPUnknownAuthenticationMethodError(LDAPConfigurationError): + pass + + +class LDAPSSLConfigurationError(LDAPConfigurationError): + pass + + +class LDAPDefinitionError(LDAPConfigurationError): + pass + + +class LDAPPackageUnavailableError(LDAPConfigurationError, ImportError): + pass + + +class LDAPConfigurationParameterError(LDAPConfigurationError): + pass + + +# abstract layer exceptions +class LDAPKeyError(LDAPExceptionError, KeyError, AttributeError): + pass + + +class LDAPObjectError(LDAPExceptionError, ValueError): + pass + + +class LDAPAttributeError(LDAPExceptionError, ValueError, TypeError): + pass + + +class LDAPCursorError(LDAPExceptionError): + pass + + +class LDAPCursorAttributeError(LDAPCursorError, AttributeError): + pass + + +class LDAPObjectDereferenceError(LDAPExceptionError): + pass + + +# security exceptions +class LDAPSSLNotSupportedError(LDAPExceptionError, ImportError): + pass + + +class LDAPInvalidTlsSpecificationError(LDAPExceptionError): + pass + + +class LDAPInvalidHashAlgorithmError(LDAPExceptionError, ValueError): + pass + + +# connection exceptions +class LDAPBindError(LDAPExceptionError): + pass + + +class LDAPInvalidServerError(LDAPExceptionError): + pass + + +class LDAPSASLMechanismNotSupportedError(LDAPExceptionError): + pass + + +class LDAPConnectionIsReadOnlyError(LDAPExceptionError): + pass + + +class LDAPChangeError(LDAPExceptionError, ValueError): + pass + + +class LDAPServerPoolError(LDAPExceptionError): + pass + + +class LDAPServerPoolExhaustedError(LDAPExceptionError): + pass + + +class LDAPInvalidPortError(LDAPExceptionError): + pass + + +class LDAPStartTLSError(LDAPExceptionError): + pass + + +class LDAPCertificateError(LDAPExceptionError): + pass + + +class LDAPUserNameNotAllowedError(LDAPExceptionError): + pass + + +class LDAPUserNameIsMandatoryError(LDAPExceptionError): + pass + + +class LDAPPasswordIsMandatoryError(LDAPExceptionError): + pass + + +class LDAPInvalidFilterError(LDAPExceptionError): + pass + + +class LDAPInvalidScopeError(LDAPExceptionError, ValueError): + pass + + +class LDAPInvalidDereferenceAliasesError(LDAPExceptionError, ValueError): + pass + + +class LDAPInvalidValueError(LDAPExceptionError, ValueError): + pass + + +class LDAPControlError(LDAPExceptionError, ValueError): + pass + + +class LDAPExtensionError(LDAPExceptionError, ValueError): + pass + + +class LDAPLDIFError(LDAPExceptionError): + pass + + +class LDAPSchemaError(LDAPExceptionError): + pass + + +class LDAPSASLPrepError(LDAPExceptionError): + pass + + +class LDAPSASLBindInProgressError(LDAPExceptionError): + pass + + +class LDAPMetricsError(LDAPExceptionError): + pass + + +class LDAPObjectClassError(LDAPExceptionError): + pass + + +class LDAPInvalidDnError(LDAPExceptionError): + pass + + +class LDAPResponseTimeoutError(LDAPExceptionError): + pass + + +class LDAPTransactionError(LDAPExceptionError): + pass + + +class LDAPInfoError(LDAPExceptionError): + pass + + +# communication exceptions +class LDAPCommunicationError(LDAPExceptionError): + pass + + +class LDAPSocketOpenError(LDAPCommunicationError): + pass + + +class LDAPSocketCloseError(LDAPCommunicationError): + pass + + +class LDAPSocketReceiveError(LDAPCommunicationError, socket.error): + pass + + +class LDAPSocketSendError(LDAPCommunicationError, socket.error): + pass + + +class LDAPSessionTerminatedByServerError(LDAPCommunicationError): + pass + + +class LDAPUnknownResponseError(LDAPCommunicationError): + pass + + +class LDAPUnknownRequestError(LDAPCommunicationError): + pass + + +class LDAPReferralError(LDAPCommunicationError): + pass + + +# pooling exceptions +class LDAPConnectionPoolNameIsMandatoryError(LDAPExceptionError): + pass + + +class LDAPConnectionPoolNotStartedError(LDAPExceptionError): + pass + + +# restartable strategy +class LDAPMaximumRetriesError(LDAPExceptionError): + def __str__(self): + s = [] + if self.args: + if isinstance(self.args, tuple): + if len(self.args) > 0: + s.append('LDAPMaximumRetriesError: ' + str(self.args[0])) + if len(self.args) > 1: + s.append('Exception history:') + prev_exc = '' + for i, exc in enumerate(self.args[1]): # args[1] contains exception history + # if str(exc[1]) != prev_exc: + # s.append((str(i).rjust(5) + ' ' + str(exc[0]) + ': ' + str(exc[1]) + ' - ' + str(exc[2]))) + # prev_exc = str(exc[1]) + if str(exc) != prev_exc: + s.append((str(i).rjust(5) + ' ' + str(type(exc)) + ': ' + str(exc))) + prev_exc = str(exc) + if len(self.args) > 2: + s.append('Maximum number of retries reached: ' + str(self.args[2])) + else: + s = [LDAPExceptionError.__str__(self)] + + return sep.join(s) + + +# exception factories +def communication_exception_factory(exc_to_raise, exc): + """ + Generates a new exception class of the requested type (subclass of LDAPCommunication) merged with the exception raised by the interpreter + """ + if exc_to_raise.__name__ in [cls.__name__ for cls in LDAPCommunicationError.__subclasses__()]: + return type(exc_to_raise.__name__, (exc_to_raise, type(exc)), dict()) + else: + raise LDAPExceptionError('unable to generate exception type ' + str(exc_to_raise)) + + +def start_tls_exception_factory(exc_to_raise, exc): + """ + Generates a new exception class of the requested type merged with the exception raised by the interpreter + """ + + if exc_to_raise.__name__ == 'LDAPStartTLSError': + return type(exc_to_raise.__name__, (exc_to_raise, type(exc)), dict()) + else: + raise LDAPExceptionError('unable to generate exception type ' + str(exc_to_raise)) diff --git a/server/www/packages/packages-linux/x64/ldap3/core/pooling.py b/server/www/packages/packages-linux/x64/ldap3/core/pooling.py index 890023c..24a5b0f 100644 --- a/server/www/packages/packages-linux/x64/ldap3/core/pooling.py +++ b/server/www/packages/packages-linux/x64/ldap3/core/pooling.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/core/results.py b/server/www/packages/packages-linux/x64/ldap3/core/results.py index 4c08172..14f8f73 100644 --- a/server/www/packages/packages-linux/x64/ldap3/core/results.py +++ b/server/www/packages/packages-linux/x64/ldap3/core/results.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/core/server.py b/server/www/packages/packages-linux/x64/ldap3/core/server.py index c266f1c..43189ef 100644 --- a/server/www/packages/packages-linux/x64/ldap3/core/server.py +++ b/server/www/packages/packages-linux/x64/ldap3/core/server.py @@ -1,606 +1,663 @@ -""" -""" - -# Created on 2014.05.31 -# -# Author: Giovanni Cannata -# -# Copyright 2014 - 2019 Giovanni Cannata -# -# This file is part of ldap3. -# -# ldap3 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ldap3 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with ldap3 in the COPYING and COPYING.LESSER files. -# If not, see . - -import socket -from threading import Lock -from datetime import datetime, MINYEAR - -from .. import DSA, SCHEMA, ALL, BASE, get_config_parameter, OFFLINE_EDIR_8_8_8, OFFLINE_EDIR_9_1_4, OFFLINE_AD_2012_R2, OFFLINE_SLAPD_2_4, OFFLINE_DS389_1_3_3, SEQUENCE_TYPES, IP_SYSTEM_DEFAULT, IP_V4_ONLY, IP_V6_ONLY, IP_V4_PREFERRED, IP_V6_PREFERRED, STRING_TYPES -from .exceptions import LDAPInvalidServerError, LDAPDefinitionError, LDAPInvalidPortError, LDAPInvalidTlsSpecificationError, LDAPSocketOpenError, LDAPInfoError -from ..protocol.formatters.standard import format_attribute_values -from ..protocol.rfc4511 import LDAP_MAX_INT -from ..protocol.rfc4512 import SchemaInfo, DsaInfo -from .tls import Tls -from ..utils.log import log, log_enabled, ERROR, BASIC, PROTOCOL -from ..utils.conv import to_unicode - -try: - from urllib.parse import unquote # Python 3 -except ImportError: - from urllib import unquote # Python 2 - -try: # try to discover if unix sockets are available for LDAP over IPC (ldapi:// scheme) - # noinspection PyUnresolvedReferences - from socket import AF_UNIX - unix_socket_available = True -except ImportError: - unix_socket_available = False - - -class Server(object): - """ - LDAP Server definition class - - Allowed_referral_hosts can be None (default), or a list of tuples of - allowed servers ip address or names to contact while redirecting - search to referrals. - - The second element of the tuple is a boolean to indicate if - authentication to that server is allowed; if False only anonymous - bind will be used. - - Per RFC 4516. Use [('*', False)] to allow any host with anonymous - bind, use [('*', True)] to allow any host with same authentication of - Server. - """ - - _message_counter = 0 - _message_id_lock = Lock() # global lock for message_id shared by all Server objects - - def __init__(self, - host, - port=None, - use_ssl=False, - allowed_referral_hosts=None, - get_info=SCHEMA, - tls=None, - formatter=None, - connect_timeout=None, - mode=IP_V6_PREFERRED, - validator=None): - - self.ipc = False - url_given = False - host = host.strip() - if host.lower().startswith('ldap://'): - self.host = host[7:] - use_ssl = False - url_given = True - elif host.lower().startswith('ldaps://'): - self.host = host[8:] - use_ssl = True - url_given = True - elif host.lower().startswith('ldapi://') and unix_socket_available: - self.ipc = True - use_ssl = False - url_given = True - elif host.lower().startswith('ldapi://') and not unix_socket_available: - raise LDAPSocketOpenError('LDAP over IPC not available - UNIX sockets non present') - else: - self.host = host - - if self.ipc: - if str is bytes: # Python 2 - self.host = unquote(host[7:]).decode('utf-8') - else: # Python 3 - self.host = unquote(host[7:]) # encoding defaults to utf-8 in python3 - self.port = None - elif ':' in self.host and self.host.count(':') == 1: - hostname, _, hostport = self.host.partition(':') - try: - port = int(hostport) or port - except ValueError: - if log_enabled(ERROR): - log(ERROR, 'port <%s> must be an integer', port) - raise LDAPInvalidPortError('port must be an integer') - self.host = hostname - elif url_given and self.host.startswith('['): - hostname, sep, hostport = self.host[1:].partition(']') - if sep != ']' or not self._is_ipv6(hostname): - if log_enabled(ERROR): - log(ERROR, 'invalid IPv6 server address for <%s>', self.host) - raise LDAPInvalidServerError() - if len(hostport): - if not hostport.startswith(':'): - if log_enabled(ERROR): - log(ERROR, 'invalid URL in server name for <%s>', self.host) - raise LDAPInvalidServerError('invalid URL in server name') - if not hostport[1:].isdecimal(): - if log_enabled(ERROR): - log(ERROR, 'port must be an integer for <%s>', self.host) - raise LDAPInvalidPortError('port must be an integer') - port = int(hostport[1:]) - self.host = hostname - elif not url_given and self._is_ipv6(self.host): - pass - elif self.host.count(':') > 1: - if log_enabled(ERROR): - log(ERROR, 'invalid server address for <%s>', self.host) - raise LDAPInvalidServerError() - - if not self.ipc: - self.host.rstrip('/') - if not use_ssl and not port: - port = 389 - elif use_ssl and not port: - port = 636 - - if isinstance(port, int): - if port in range(0, 65535): - self.port = port - else: - if log_enabled(ERROR): - log(ERROR, 'port <%s> must be in range from 0 to 65535', port) - raise LDAPInvalidPortError('port must in range from 0 to 65535') - else: - if log_enabled(ERROR): - log(ERROR, 'port <%s> must be an integer', port) - raise LDAPInvalidPortError('port must be an integer') - - if allowed_referral_hosts is None: # defaults to any server with authentication - allowed_referral_hosts = [('*', True)] - - if isinstance(allowed_referral_hosts, SEQUENCE_TYPES): - self.allowed_referral_hosts = [] - for referral_host in allowed_referral_hosts: - if isinstance(referral_host, tuple): - if isinstance(referral_host[1], bool): - self.allowed_referral_hosts.append(referral_host) - elif isinstance(allowed_referral_hosts, tuple): - if isinstance(allowed_referral_hosts[1], bool): - self.allowed_referral_hosts = [allowed_referral_hosts] - else: - self.allowed_referral_hosts = [] - - self.ssl = True if use_ssl else False - if tls and not isinstance(tls, Tls): - if log_enabled(ERROR): - log(ERROR, 'invalid tls specification: <%s>', tls) - raise LDAPInvalidTlsSpecificationError('invalid Tls object') - - self.tls = Tls() if self.ssl and not tls else tls - - if not self.ipc: - if self._is_ipv6(self.host): - self.name = ('ldaps' if self.ssl else 'ldap') + '://[' + self.host + ']:' + str(self.port) - else: - self.name = ('ldaps' if self.ssl else 'ldap') + '://' + self.host + ':' + str(self.port) - else: - self.name = host - - self.get_info = get_info - self._dsa_info = None - self._schema_info = None - self.dit_lock = Lock() - self.custom_formatter = formatter - self.custom_validator = validator - self._address_info = [] # property self.address_info resolved at open time (or when check_availability is called) - self._address_info_resolved_time = datetime(MINYEAR, 1, 1) # smallest date ever - self.current_address = None - self.connect_timeout = connect_timeout - self.mode = mode - - self.get_info_from_server(None) # load offline schema if needed - - if log_enabled(BASIC): - log(BASIC, 'instantiated Server: <%r>', self) - - @staticmethod - def _is_ipv6(host): - try: - socket.inet_pton(socket.AF_INET6, host) - except (socket.error, AttributeError, ValueError): - return False - return True - - def __str__(self): - if self.host: - s = self.name + (' - ssl' if self.ssl else ' - cleartext') + (' - unix socket' if self.ipc else '') - else: - s = object.__str__(self) - return s - - def __repr__(self): - r = 'Server(host={0.host!r}, port={0.port!r}, use_ssl={0.ssl!r}'.format(self) - r += '' if not self.allowed_referral_hosts else ', allowed_referral_hosts={0.allowed_referral_hosts!r}'.format(self) - r += '' if self.tls is None else ', tls={0.tls!r}'.format(self) - r += '' if not self.get_info else ', get_info={0.get_info!r}'.format(self) - r += '' if not self.connect_timeout else ', connect_timeout={0.connect_timeout!r}'.format(self) - r += '' if not self.mode else ', mode={0.mode!r}'.format(self) - r += ')' - - return r - - @property - def address_info(self): - conf_refresh_interval = get_config_parameter('ADDRESS_INFO_REFRESH_TIME') - if not self._address_info or (datetime.now() - self._address_info_resolved_time).seconds > conf_refresh_interval: - # converts addresses tuple to list and adds a 6th parameter for availability (None = not checked, True = available, False=not available) and a 7th parameter for the checking time - addresses = None - try: - if self.ipc: - addresses = [(socket.AF_UNIX, socket.SOCK_STREAM, 0, None, self.host, None)] - else: - addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM, socket.IPPROTO_TCP, socket.AI_ADDRCONFIG | socket.AI_V4MAPPED) - except (socket.gaierror, AttributeError): - pass - - if not addresses: # if addresses not found or raised an exception (for example for bad flags) tries again without flags - try: - addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM, socket.IPPROTO_TCP) - except socket.gaierror: - pass - - if addresses: - self._address_info = [list(address) + [None, None] for address in addresses] - self._address_info_resolved_time = datetime.now() - else: - self._address_info = [] - self._address_info_resolved_time = datetime(MINYEAR, 1, 1) # smallest date - - if log_enabled(BASIC): - for address in self._address_info: - log(BASIC, 'address for <%s> resolved as <%r>', self, address[:-2]) - return self._address_info - - def update_availability(self, address, available): - cont = 0 - while cont < len(self._address_info): - if self.address_info[cont] == address: - self._address_info[cont][5] = True if available else False - self._address_info[cont][6] = datetime.now() - break - cont += 1 - - def reset_availability(self): - for address in self._address_info: - address[5] = None - address[6] = None - - def check_availability(self): - """ - Tries to open, connect and close a socket to specified address - and port to check availability. Timeout in seconds is specified in CHECK_AVAILABITY_TIMEOUT if not specified in - the Server object - """ - conf_availability_timeout = get_config_parameter('CHECK_AVAILABILITY_TIMEOUT') - available = False - self.reset_availability() - for address in self.candidate_addresses(): - available = True - try: - temp_socket = socket.socket(*address[:3]) - if self.connect_timeout: - temp_socket.settimeout(self.connect_timeout) - else: - temp_socket.settimeout(conf_availability_timeout) # set timeout for checking availability to default - try: - temp_socket.connect(address[4]) - except socket.error: - available = False - finally: - try: - temp_socket.shutdown(socket.SHUT_RDWR) - except socket.error: - available = False - finally: - temp_socket.close() - except socket.gaierror: - available = False - - if available: - if log_enabled(BASIC): - log(BASIC, 'server <%s> available at <%r>', self, address) - self.update_availability(address, True) - break # if an available address is found exits immediately - else: - self.update_availability(address, False) - if log_enabled(ERROR): - log(ERROR, 'server <%s> not available at <%r>', self, address) - - return available - - @staticmethod - def next_message_id(): - """ - LDAP messageId is unique for all connections to same server - """ - with Server._message_id_lock: - Server._message_counter += 1 - if Server._message_counter >= LDAP_MAX_INT: - Server._message_counter = 1 - if log_enabled(PROTOCOL): - log(PROTOCOL, 'new message id <%d> generated', Server._message_counter) - - return Server._message_counter - - def _get_dsa_info(self, connection): - """ - Retrieve DSE operational attribute as per RFC4512 (5.1). - """ - if connection.strategy.no_real_dsa: # do not try for mock strategies - return - - if not connection.strategy.pooled: # in pooled strategies get_dsa_info is performed by the worker threads - result = connection.search(search_base='', - search_filter='(objectClass=*)', - search_scope=BASE, - attributes=['altServer', # requests specific dsa info attributes - 'namingContexts', - 'supportedControl', - 'supportedExtension', - 'supportedFeatures', - 'supportedCapabilities', - 'supportedLdapVersion', - 'supportedSASLMechanisms', - 'vendorName', - 'vendorVersion', - 'subschemaSubentry', - '*', - '+'], # requests all remaining attributes (other), - get_operational_attributes=True) - - with self.dit_lock: - if isinstance(result, bool): # sync request - self._dsa_info = DsaInfo(connection.response[0]['attributes'], connection.response[0]['raw_attributes']) if result else self._dsa_info - elif result: # asynchronous request, must check if attributes in response - results, _ = connection.get_response(result) - if len(results) == 1 and 'attributes' in results[0] and 'raw_attributes' in results[0]: - self._dsa_info = DsaInfo(results[0]['attributes'], results[0]['raw_attributes']) - - if log_enabled(BASIC): - log(BASIC, 'DSA info read for <%s> via <%s>', self, connection) - - def _get_schema_info(self, connection, entry=''): - """ - Retrieve schema from subschemaSubentry DSE attribute, per RFC - 4512 (4.4 and 5.1); entry = '' means DSE. - """ - if connection.strategy.no_real_dsa: # do not try for mock strategies - return - - schema_entry = None - if self._dsa_info and entry == '': # subschemaSubentry already present in dsaInfo - if isinstance(self._dsa_info.schema_entry, SEQUENCE_TYPES): - schema_entry = self._dsa_info.schema_entry[0] if self._dsa_info.schema_entry else None - else: - schema_entry = self._dsa_info.schema_entry if self._dsa_info.schema_entry else None - else: - result = connection.search(entry, '(objectClass=*)', BASE, attributes=['subschemaSubentry'], get_operational_attributes=True) - if isinstance(result, bool): # sync request - if result and 'subschemaSubentry' in connection.response[0]['raw_attributes']: - if len(connection.response[0]['raw_attributes']['subschemaSubentry']) > 0: - schema_entry = connection.response[0]['raw_attributes']['subschemaSubentry'][0] - else: # asynchronous request, must check if subschemaSubentry in attributes - results, _ = connection.get_response(result) - if len(results) == 1 and 'raw_attributes' in results[0] and 'subschemaSubentry' in results[0]['attributes']: - if len(results[0]['raw_attributes']['subschemaSubentry']) > 0: - schema_entry = results[0]['raw_attributes']['subschemaSubentry'][0] - - if schema_entry and not connection.strategy.pooled: # in pooled strategies get_schema_info is performed by the worker threads - if isinstance(schema_entry, bytes) and str is not bytes: # Python 3 - schema_entry = to_unicode(schema_entry, from_server=True) - result = connection.search(schema_entry, - search_filter='(objectClass=subschema)', - search_scope=BASE, - attributes=['objectClasses', # requests specific subschema attributes - 'attributeTypes', - 'ldapSyntaxes', - 'matchingRules', - 'matchingRuleUse', - 'dITContentRules', - 'dITStructureRules', - 'nameForms', - 'createTimestamp', - 'modifyTimestamp', - '*'], # requests all remaining attributes (other) - get_operational_attributes=True - ) - with self.dit_lock: - self._schema_info = None - if result: - if isinstance(result, bool): # sync request - self._schema_info = SchemaInfo(schema_entry, connection.response[0]['attributes'], connection.response[0]['raw_attributes']) if result else None - else: # asynchronous request, must check if attributes in response - results, result = connection.get_response(result) - if len(results) == 1 and 'attributes' in results[0] and 'raw_attributes' in results[0]: - self._schema_info = SchemaInfo(schema_entry, results[0]['attributes'], results[0]['raw_attributes']) - if self._schema_info and not self._schema_info.is_valid(): # flaky servers can return an empty schema, checks if it is so and set schema to None - self._schema_info = None - if self._schema_info: # if schema is valid tries to apply formatter to the "other" dict with raw values for schema and info - for attribute in self._schema_info.other: - self._schema_info.other[attribute] = format_attribute_values(self._schema_info, attribute, self._schema_info.raw[attribute], self.custom_formatter) - if self._dsa_info: # try to apply formatter to the "other" dict with dsa info raw values - for attribute in self._dsa_info.other: - self._dsa_info.other[attribute] = format_attribute_values(self._schema_info, attribute, self._dsa_info.raw[attribute], self.custom_formatter) - if log_enabled(BASIC): - log(BASIC, 'schema read for <%s> via <%s>', self, connection) - - def get_info_from_server(self, connection): - """ - reads info from DSE and from subschema - """ - if connection and not connection.closed: - if self.get_info in [DSA, ALL]: - self._get_dsa_info(connection) - if self.get_info in [SCHEMA, ALL]: - self._get_schema_info(connection) - elif self.get_info == OFFLINE_EDIR_8_8_8: - from ..protocol.schemas.edir888 import edir_8_8_8_schema, edir_8_8_8_dsa_info - self.attach_schema_info(SchemaInfo.from_json(edir_8_8_8_schema)) - self.attach_dsa_info(DsaInfo.from_json(edir_8_8_8_dsa_info)) - elif self.get_info == OFFLINE_EDIR_9_1_4: - from ..protocol.schemas.edir914 import edir_9_1_4_schema, edir_9_1_4_dsa_info - self.attach_schema_info(SchemaInfo.from_json(edir_9_1_4_schema)) - self.attach_dsa_info(DsaInfo.from_json(edir_9_1_4_dsa_info)) - elif self.get_info == OFFLINE_AD_2012_R2: - from ..protocol.schemas.ad2012R2 import ad_2012_r2_schema, ad_2012_r2_dsa_info - self.attach_schema_info(SchemaInfo.from_json(ad_2012_r2_schema)) - self.attach_dsa_info(DsaInfo.from_json(ad_2012_r2_dsa_info)) - elif self.get_info == OFFLINE_SLAPD_2_4: - from ..protocol.schemas.slapd24 import slapd_2_4_schema, slapd_2_4_dsa_info - self.attach_schema_info(SchemaInfo.from_json(slapd_2_4_schema)) - self.attach_dsa_info(DsaInfo.from_json(slapd_2_4_dsa_info)) - elif self.get_info == OFFLINE_DS389_1_3_3: - from ..protocol.schemas.ds389 import ds389_1_3_3_schema, ds389_1_3_3_dsa_info - self.attach_schema_info(SchemaInfo.from_json(ds389_1_3_3_schema)) - self.attach_dsa_info(DsaInfo.from_json(ds389_1_3_3_dsa_info)) - - def attach_dsa_info(self, dsa_info=None): - if isinstance(dsa_info, DsaInfo): - self._dsa_info = dsa_info - if log_enabled(BASIC): - log(BASIC, 'attached DSA info to Server <%s>', self) - - def attach_schema_info(self, dsa_schema=None): - if isinstance(dsa_schema, SchemaInfo): - self._schema_info = dsa_schema - if log_enabled(BASIC): - log(BASIC, 'attached schema info to Server <%s>', self) - - @property - def info(self): - return self._dsa_info - - @property - def schema(self): - return self._schema_info - - @staticmethod - def from_definition(host, dsa_info, dsa_schema, port=None, use_ssl=False, formatter=None, validator=None): - """ - Define a dummy server with preloaded schema and info - :param host: host name - :param dsa_info: DsaInfo preloaded object or a json formatted string or a file name - :param dsa_schema: SchemaInfo preloaded object or a json formatted string or a file name - :param port: dummy port - :param use_ssl: use_ssl - :param formatter: custom formatter - :return: Server object - """ - if isinstance(host, SEQUENCE_TYPES): - dummy = Server(host=host[0], port=port, use_ssl=use_ssl, formatter=formatter, validator=validator, get_info=ALL) # for ServerPool object - else: - dummy = Server(host=host, port=port, use_ssl=use_ssl, formatter=formatter, validator=validator, get_info=ALL) - if isinstance(dsa_info, DsaInfo): - dummy._dsa_info = dsa_info - elif isinstance(dsa_info, STRING_TYPES): - try: - dummy._dsa_info = DsaInfo.from_json(dsa_info) # tries to use dsa_info as a json configuration string - except Exception: - dummy._dsa_info = DsaInfo.from_file(dsa_info) # tries to use dsa_info as a file name - - if not dummy.info: - if log_enabled(ERROR): - log(ERROR, 'invalid DSA info for %s', host) - raise LDAPDefinitionError('invalid dsa info') - - if isinstance(dsa_schema, SchemaInfo): - dummy._schema_info = dsa_schema - elif isinstance(dsa_schema, STRING_TYPES): - try: - dummy._schema_info = SchemaInfo.from_json(dsa_schema) - except Exception: - dummy._schema_info = SchemaInfo.from_file(dsa_schema) - - if not dummy.schema: - if log_enabled(ERROR): - log(ERROR, 'invalid schema info for %s', host) - raise LDAPDefinitionError('invalid schema info') - - if log_enabled(BASIC): - log(BASIC, 'created server <%s> from definition', dummy) - - return dummy - - def candidate_addresses(self): - conf_reset_availability_timeout = get_config_parameter('RESET_AVAILABILITY_TIMEOUT') - if self.ipc: - candidates = self.address_info - if log_enabled(BASIC): - log(BASIC, 'candidate address for <%s>: <%s> with mode UNIX_SOCKET', self, self.name) - else: - # checks reset availability timeout - for address in self.address_info: - if address[6] and ((datetime.now() - address[6]).seconds > conf_reset_availability_timeout): - address[5] = None - address[6] = None - - # selects server address based on server mode and availability (in address[5]) - addresses = self.address_info[:] # copy to avoid refreshing while searching candidates - candidates = [] - if addresses: - if self.mode == IP_SYSTEM_DEFAULT: - candidates.append(addresses[0]) - elif self.mode == IP_V4_ONLY: - candidates = [address for address in addresses if address[0] == socket.AF_INET and (address[5] or address[5] is None)] - elif self.mode == IP_V6_ONLY: - candidates = [address for address in addresses if address[0] == socket.AF_INET6 and (address[5] or address[5] is None)] - elif self.mode == IP_V4_PREFERRED: - candidates = [address for address in addresses if address[0] == socket.AF_INET and (address[5] or address[5] is None)] - candidates += [address for address in addresses if address[0] == socket.AF_INET6 and (address[5] or address[5] is None)] - elif self.mode == IP_V6_PREFERRED: - candidates = [address for address in addresses if address[0] == socket.AF_INET6 and (address[5] or address[5] is None)] - candidates += [address for address in addresses if address[0] == socket.AF_INET and (address[5] or address[5] is None)] - else: - if log_enabled(ERROR): - log(ERROR, 'invalid server mode for <%s>', self) - raise LDAPInvalidServerError('invalid server mode') - - if log_enabled(BASIC): - for candidate in candidates: - log(BASIC, 'obtained candidate address for <%s>: <%r> with mode %s', self, candidate[:-2], self.mode) - return candidates - - def _check_info_property(self, kind, name): - if not self._dsa_info: - raise LDAPInfoError('server info not loaded') - - if kind == 'control': - properties = self.info.supported_controls - elif kind == 'extension': - properties = self.info.supported_extensions - elif kind == 'feature': - properties = self.info.supported_features - else: - raise LDAPInfoError('invalid info category') - - for prop in properties: - if name == prop[0] or (prop[2] and name.lower() == prop[2].lower()): # checks oid and description - return True - - return False - - def has_control(self, control): - return self._check_info_property('control', control) - - def has_extension(self, extension): - return self._check_info_property('extension', extension) - - def has_feature(self, feature): - return self._check_info_property('feature', feature) - - - +""" +""" + +# Created on 2014.05.31 +# +# Author: Giovanni Cannata +# +# Copyright 2014 - 2020 Giovanni Cannata +# +# This file is part of ldap3. +# +# ldap3 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ldap3 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ldap3 in the COPYING and COPYING.LESSER files. +# If not, see . + +import socket +from threading import Lock +from datetime import datetime, MINYEAR + +from .. import DSA, SCHEMA, ALL, BASE, get_config_parameter, OFFLINE_EDIR_8_8_8, OFFLINE_EDIR_9_1_4, OFFLINE_AD_2012_R2, OFFLINE_SLAPD_2_4, OFFLINE_DS389_1_3_3, SEQUENCE_TYPES, IP_SYSTEM_DEFAULT, IP_V4_ONLY, IP_V6_ONLY, IP_V4_PREFERRED, IP_V6_PREFERRED, STRING_TYPES +from .exceptions import LDAPInvalidServerError, LDAPDefinitionError, LDAPInvalidPortError, LDAPInvalidTlsSpecificationError, LDAPSocketOpenError, LDAPInfoError +from ..protocol.formatters.standard import format_attribute_values +from ..protocol.rfc4511 import LDAP_MAX_INT +from ..protocol.rfc4512 import SchemaInfo, DsaInfo +from .tls import Tls +from ..utils.log import log, log_enabled, ERROR, BASIC, PROTOCOL, NETWORK +from ..utils.conv import to_unicode +from ..utils.port_validators import check_port, check_port_and_port_list + +try: + from urllib.parse import unquote # Python 3 +except ImportError: + from urllib import unquote # Python 2 + +try: # try to discover if unix sockets are available for LDAP over IPC (ldapi:// scheme) + # noinspection PyUnresolvedReferences + from socket import AF_UNIX + unix_socket_available = True +except ImportError: + unix_socket_available = False + + +class Server(object): + """ + LDAP Server definition class + + Allowed_referral_hosts can be None (default), or a list of tuples of + allowed servers ip address or names to contact while redirecting + search to referrals. + + The second element of the tuple is a boolean to indicate if + authentication to that server is allowed; if False only anonymous + bind will be used. + + Per RFC 4516. Use [('*', False)] to allow any host with anonymous + bind, use [('*', True)] to allow any host with same authentication of + Server. + """ + + _message_counter = 0 + _message_id_lock = Lock() # global lock for message_id shared by all Server objects + + def __init__(self, + host, + port=None, + use_ssl=False, + allowed_referral_hosts=None, + get_info=SCHEMA, + tls=None, + formatter=None, + connect_timeout=None, + mode=IP_V6_PREFERRED, + validator=None): + + self.ipc = False + url_given = False + host = host.strip() + if host.lower().startswith('ldap://'): + self.host = host[7:] + use_ssl = False + url_given = True + elif host.lower().startswith('ldaps://'): + self.host = host[8:] + use_ssl = True + url_given = True + elif host.lower().startswith('ldapi://') and unix_socket_available: + self.ipc = True + use_ssl = False + url_given = True + elif host.lower().startswith('ldapi://') and not unix_socket_available: + raise LDAPSocketOpenError('LDAP over IPC not available - UNIX sockets non present') + else: + self.host = host + + if self.ipc: + if str is bytes: # Python 2 + self.host = unquote(host[7:]).decode('utf-8') + else: # Python 3 + self.host = unquote(host[7:]) # encoding defaults to utf-8 in python3 + self.port = None + elif ':' in self.host and self.host.count(':') == 1: + hostname, _, hostport = self.host.partition(':') + try: + port = int(hostport) or port + except ValueError: + if log_enabled(ERROR): + log(ERROR, 'port <%s> must be an integer', port) + raise LDAPInvalidPortError('port must be an integer') + self.host = hostname + elif url_given and self.host.startswith('['): + hostname, sep, hostport = self.host[1:].partition(']') + if sep != ']' or not self._is_ipv6(hostname): + if log_enabled(ERROR): + log(ERROR, 'invalid IPv6 server address for <%s>', self.host) + raise LDAPInvalidServerError() + if len(hostport): + if not hostport.startswith(':'): + if log_enabled(ERROR): + log(ERROR, 'invalid URL in server name for <%s>', self.host) + raise LDAPInvalidServerError('invalid URL in server name') + if not hostport[1:].isdecimal(): + if log_enabled(ERROR): + log(ERROR, 'port must be an integer for <%s>', self.host) + raise LDAPInvalidPortError('port must be an integer') + port = int(hostport[1:]) + self.host = hostname + elif not url_given and self._is_ipv6(self.host): + pass + elif self.host.count(':') > 1: + if log_enabled(ERROR): + log(ERROR, 'invalid server address for <%s>', self.host) + raise LDAPInvalidServerError() + + if not self.ipc: + self.host.rstrip('/') + if not use_ssl and not port: + port = 389 + elif use_ssl and not port: + port = 636 + + port_err = check_port(port) + if port_err: + if log_enabled(ERROR): + log(ERROR, port_err) + raise LDAPInvalidPortError(port_err) + self.port = port + + if allowed_referral_hosts is None: # defaults to any server with authentication + allowed_referral_hosts = [('*', True)] + + if isinstance(allowed_referral_hosts, SEQUENCE_TYPES): + self.allowed_referral_hosts = [] + for referral_host in allowed_referral_hosts: + if isinstance(referral_host, tuple): + if isinstance(referral_host[1], bool): + self.allowed_referral_hosts.append(referral_host) + elif isinstance(allowed_referral_hosts, tuple): + if isinstance(allowed_referral_hosts[1], bool): + self.allowed_referral_hosts = [allowed_referral_hosts] + else: + self.allowed_referral_hosts = [] + + self.ssl = True if use_ssl else False + if tls and not isinstance(tls, Tls): + if log_enabled(ERROR): + log(ERROR, 'invalid tls specification: <%s>', tls) + raise LDAPInvalidTlsSpecificationError('invalid Tls object') + + self.tls = Tls() if self.ssl and not tls else tls + + if not self.ipc: + if self._is_ipv6(self.host): + self.name = ('ldaps' if self.ssl else 'ldap') + '://[' + self.host + ']:' + str(self.port) + else: + self.name = ('ldaps' if self.ssl else 'ldap') + '://' + self.host + ':' + str(self.port) + else: + self.name = host + + self.get_info = get_info + self._dsa_info = None + self._schema_info = None + self.dit_lock = Lock() + self.custom_formatter = formatter + self.custom_validator = validator + self._address_info = [] # property self.address_info resolved at open time (or when check_availability is called) + self._address_info_resolved_time = datetime(MINYEAR, 1, 1) # smallest date ever + self.current_address = None + self.connect_timeout = connect_timeout + self.mode = mode + + self.get_info_from_server(None) # load offline schema if needed + + if log_enabled(BASIC): + log(BASIC, 'instantiated Server: <%r>', self) + + @staticmethod + def _is_ipv6(host): + try: + socket.inet_pton(socket.AF_INET6, host) + except (socket.error, AttributeError, ValueError): + return False + return True + + def __str__(self): + if self.host: + s = self.name + (' - ssl' if self.ssl else ' - cleartext') + (' - unix socket' if self.ipc else '') + else: + s = object.__str__(self) + return s + + def __repr__(self): + r = 'Server(host={0.host!r}, port={0.port!r}, use_ssl={0.ssl!r}'.format(self) + r += '' if not self.allowed_referral_hosts else ', allowed_referral_hosts={0.allowed_referral_hosts!r}'.format(self) + r += '' if self.tls is None else ', tls={0.tls!r}'.format(self) + r += '' if not self.get_info else ', get_info={0.get_info!r}'.format(self) + r += '' if not self.connect_timeout else ', connect_timeout={0.connect_timeout!r}'.format(self) + r += '' if not self.mode else ', mode={0.mode!r}'.format(self) + r += ')' + + return r + + @property + def address_info(self): + conf_refresh_interval = get_config_parameter('ADDRESS_INFO_REFRESH_TIME') + if not self._address_info or (datetime.now() - self._address_info_resolved_time).seconds > conf_refresh_interval: + # converts addresses tuple to list and adds a 6th parameter for availability (None = not checked, True = available, False=not available) and a 7th parameter for the checking time + addresses = None + try: + if self.ipc: + addresses = [(socket.AF_UNIX, socket.SOCK_STREAM, 0, None, self.host, None)] + else: + if self.mode == IP_V4_ONLY: + addresses = socket.getaddrinfo(self.host, self.port, socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP, socket.AI_ADDRCONFIG | socket.AI_V4MAPPED) + elif self.mode == IP_V6_ONLY: + addresses = socket.getaddrinfo(self.host, self.port, socket.AF_INET6, socket.SOCK_STREAM, socket.IPPROTO_TCP, socket.AI_ADDRCONFIG | socket.AI_V4MAPPED) + else: + addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM, socket.IPPROTO_TCP, socket.AI_ADDRCONFIG | socket.AI_V4MAPPED) + except (socket.gaierror, AttributeError): + pass + + if not addresses: # if addresses not found or raised an exception (for example for bad flags) tries again without flags + try: + if self.mode == IP_V4_ONLY: + addresses = socket.getaddrinfo(self.host, self.port, socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP) + elif self.mode == IP_V6_ONLY: + addresses = socket.getaddrinfo(self.host, self.port, socket.AF_INET6, socket.SOCK_STREAM, socket.IPPROTO_TCP) + else: + addresses = socket.getaddrinfo(self.host, self.port, socket.AF_UNSPEC, socket.SOCK_STREAM, socket.IPPROTO_TCP) + except socket.gaierror: + pass + + if addresses: + self._address_info = [list(address) + [None, None] for address in addresses] + self._address_info_resolved_time = datetime.now() + else: + self._address_info = [] + self._address_info_resolved_time = datetime(MINYEAR, 1, 1) # smallest date + + if log_enabled(BASIC): + for address in self._address_info: + log(BASIC, 'address for <%s> resolved as <%r>', self, address[:-2]) + return self._address_info + + def update_availability(self, address, available): + cont = 0 + while cont < len(self._address_info): + if self.address_info[cont] == address: + self._address_info[cont][5] = True if available else False + self._address_info[cont][6] = datetime.now() + break + cont += 1 + + def reset_availability(self): + for address in self._address_info: + address[5] = None + address[6] = None + + def check_availability(self, source_address=None, source_port=None, source_port_list=None): + """ + Tries to open, connect and close a socket to specified address and port to check availability. + Timeout in seconds is specified in CHECK_AVAILABITY_TIMEOUT if not specified in + the Server object. + If specified, use a specific address, port, or list of possible ports, when attempting to check availability. + NOTE: This will only consider multiple ports from the source port list if the first ones we try to bind to are + already in use. This will not attempt using different ports in the list if the server is unavailable, + as that could result in the runtime of check_availability significantly exceeding the connection timeout. + """ + source_port_err = check_port_and_port_list(source_port, source_port_list) + if source_port_err: + if log_enabled(ERROR): + log(ERROR, source_port_err) + raise LDAPInvalidPortError(source_port_err) + + # using an empty string to bind a socket means "use the default as if this wasn't provided" because socket + # binding requires that you pass something for the ip if you want to pass a specific port + bind_address = source_address if source_address is not None else '' + # using 0 as the source port to bind a socket means "use the default behavior of picking a random port from + # all ports as if this wasn't provided" because socket binding requires that you pass something for the port + # if you want to pass a specific ip + candidate_bind_ports = [0] + + # if we have either a source port or source port list, convert that into our candidate list + if source_port is not None: + candidate_bind_ports = [source_port] + elif source_port_list is not None: + candidate_bind_ports = source_port_list[:] + + conf_availability_timeout = get_config_parameter('CHECK_AVAILABILITY_TIMEOUT') + available = False + self.reset_availability() + for address in self.candidate_addresses(): + available = True + try: + temp_socket = socket.socket(*address[:3]) + + # Go through our candidate bind ports and try to bind our socket to our source address with them. + # if no source address or ports were specified, this will have the same success/fail result as if we + # tried to connect to the remote server without binding locally first. + # This is actually a little bit better, as it lets us distinguish the case of "issue binding the socket + # locally" from "remote server is unavailable" with more clarity, though this will only really be an + # issue when no source address/port is specified if the system checking server availability is running + # as a very unprivileged user. + last_bind_exc = None + socket_bind_succeeded = False + for bind_port in candidate_bind_ports: + try: + temp_socket.bind((bind_address, bind_port)) + socket_bind_succeeded = True + break + except Exception as bind_ex: + last_bind_exc = bind_ex + if log_enabled(NETWORK): + log(NETWORK, 'Unable to bind to local address <%s> with source port <%s> due to <%s>', + bind_address, bind_port, bind_ex) + if not socket_bind_succeeded: + if log_enabled(ERROR): + log(ERROR, 'Unable to locally bind to local address <%s> with any of the source ports <%s> due to <%s>', + bind_address, candidate_bind_ports, last_bind_exc) + raise LDAPSocketOpenError('Unable to bind socket locally to address {} with any of the source ports {} due to {}' + .format(bind_address, candidate_bind_ports, last_bind_exc)) + + if self.connect_timeout: + temp_socket.settimeout(self.connect_timeout) + else: + temp_socket.settimeout(conf_availability_timeout) # set timeout for checking availability to default + try: + temp_socket.connect(address[4]) + except socket.error: + available = False + finally: + try: + temp_socket.shutdown(socket.SHUT_RDWR) + except socket.error: + available = False + finally: + temp_socket.close() + except socket.gaierror: + available = False + + if available: + if log_enabled(BASIC): + log(BASIC, 'server <%s> available at <%r>', self, address) + self.update_availability(address, True) + break # if an available address is found exits immediately + else: + self.update_availability(address, False) + if log_enabled(ERROR): + log(ERROR, 'server <%s> not available at <%r>', self, address) + + return available + + @staticmethod + def next_message_id(): + """ + LDAP messageId is unique for all connections to same server + """ + with Server._message_id_lock: + Server._message_counter += 1 + if Server._message_counter >= LDAP_MAX_INT: + Server._message_counter = 1 + if log_enabled(PROTOCOL): + log(PROTOCOL, 'new message id <%d> generated', Server._message_counter) + + return Server._message_counter + + def _get_dsa_info(self, connection): + """ + Retrieve DSE operational attribute as per RFC4512 (5.1). + """ + if connection.strategy.no_real_dsa: # do not try for mock strategies + return + + if not connection.strategy.pooled: # in pooled strategies get_dsa_info is performed by the worker threads + result = connection.search(search_base='', + search_filter='(objectClass=*)', + search_scope=BASE, + attributes=['altServer', # requests specific dsa info attributes + 'namingContexts', + 'supportedControl', + 'supportedExtension', + 'supportedFeatures', + 'supportedCapabilities', + 'supportedLdapVersion', + 'supportedSASLMechanisms', + 'vendorName', + 'vendorVersion', + 'subschemaSubentry', + '*', + '+'], # requests all remaining attributes (other), + get_operational_attributes=True) + + with self.dit_lock: + if isinstance(result, bool): # sync request + self._dsa_info = DsaInfo(connection.response[0]['attributes'], connection.response[0]['raw_attributes']) if result else self._dsa_info + elif result: # asynchronous request, must check if attributes in response + results, _ = connection.get_response(result) + if len(results) == 1 and 'attributes' in results[0] and 'raw_attributes' in results[0]: + self._dsa_info = DsaInfo(results[0]['attributes'], results[0]['raw_attributes']) + + if log_enabled(BASIC): + log(BASIC, 'DSA info read for <%s> via <%s>', self, connection) + + def _get_schema_info(self, connection, entry=''): + """ + Retrieve schema from subschemaSubentry DSE attribute, per RFC + 4512 (4.4 and 5.1); entry = '' means DSE. + """ + if connection.strategy.no_real_dsa: # do not try for mock strategies + return + + schema_entry = None + if self._dsa_info and entry == '': # subschemaSubentry already present in dsaInfo + if isinstance(self._dsa_info.schema_entry, SEQUENCE_TYPES): + schema_entry = self._dsa_info.schema_entry[0] if self._dsa_info.schema_entry else None + else: + schema_entry = self._dsa_info.schema_entry if self._dsa_info.schema_entry else None + else: + result = connection.search(entry, '(objectClass=*)', BASE, attributes=['subschemaSubentry'], get_operational_attributes=True) + if isinstance(result, bool): # sync request + if result and 'subschemaSubentry' in connection.response[0]['raw_attributes']: + if len(connection.response[0]['raw_attributes']['subschemaSubentry']) > 0: + schema_entry = connection.response[0]['raw_attributes']['subschemaSubentry'][0] + else: # asynchronous request, must check if subschemaSubentry in attributes + results, _ = connection.get_response(result) + if len(results) == 1 and 'raw_attributes' in results[0] and 'subschemaSubentry' in results[0]['attributes']: + if len(results[0]['raw_attributes']['subschemaSubentry']) > 0: + schema_entry = results[0]['raw_attributes']['subschemaSubentry'][0] + + if schema_entry and not connection.strategy.pooled: # in pooled strategies get_schema_info is performed by the worker threads + if isinstance(schema_entry, bytes) and str is not bytes: # Python 3 + schema_entry = to_unicode(schema_entry, from_server=True) + result = connection.search(schema_entry, + search_filter='(objectClass=subschema)', + search_scope=BASE, + attributes=['objectClasses', # requests specific subschema attributes + 'attributeTypes', + 'ldapSyntaxes', + 'matchingRules', + 'matchingRuleUse', + 'dITContentRules', + 'dITStructureRules', + 'nameForms', + 'createTimestamp', + 'modifyTimestamp', + '*'], # requests all remaining attributes (other) + get_operational_attributes=True + ) + with self.dit_lock: + self._schema_info = None + if result: + if isinstance(result, bool): # sync request + self._schema_info = SchemaInfo(schema_entry, connection.response[0]['attributes'], connection.response[0]['raw_attributes']) if result else None + else: # asynchronous request, must check if attributes in response + results, result = connection.get_response(result) + if len(results) == 1 and 'attributes' in results[0] and 'raw_attributes' in results[0]: + self._schema_info = SchemaInfo(schema_entry, results[0]['attributes'], results[0]['raw_attributes']) + if self._schema_info and not self._schema_info.is_valid(): # flaky servers can return an empty schema, checks if it is so and set schema to None + self._schema_info = None + if self._schema_info: # if schema is valid tries to apply formatter to the "other" dict with raw values for schema and info + for attribute in self._schema_info.other: + self._schema_info.other[attribute] = format_attribute_values(self._schema_info, attribute, self._schema_info.raw[attribute], self.custom_formatter) + if self._dsa_info: # try to apply formatter to the "other" dict with dsa info raw values + for attribute in self._dsa_info.other: + self._dsa_info.other[attribute] = format_attribute_values(self._schema_info, attribute, self._dsa_info.raw[attribute], self.custom_formatter) + if log_enabled(BASIC): + log(BASIC, 'schema read for <%s> via <%s>', self, connection) + + def get_info_from_server(self, connection): + """ + reads info from DSE and from subschema + """ + if connection and not connection.closed: + if self.get_info in [DSA, ALL]: + self._get_dsa_info(connection) + if self.get_info in [SCHEMA, ALL]: + self._get_schema_info(connection) + elif self.get_info == OFFLINE_EDIR_8_8_8: + from ..protocol.schemas.edir888 import edir_8_8_8_schema, edir_8_8_8_dsa_info + self.attach_schema_info(SchemaInfo.from_json(edir_8_8_8_schema)) + self.attach_dsa_info(DsaInfo.from_json(edir_8_8_8_dsa_info)) + elif self.get_info == OFFLINE_EDIR_9_1_4: + from ..protocol.schemas.edir914 import edir_9_1_4_schema, edir_9_1_4_dsa_info + self.attach_schema_info(SchemaInfo.from_json(edir_9_1_4_schema)) + self.attach_dsa_info(DsaInfo.from_json(edir_9_1_4_dsa_info)) + elif self.get_info == OFFLINE_AD_2012_R2: + from ..protocol.schemas.ad2012R2 import ad_2012_r2_schema, ad_2012_r2_dsa_info + self.attach_schema_info(SchemaInfo.from_json(ad_2012_r2_schema)) + self.attach_dsa_info(DsaInfo.from_json(ad_2012_r2_dsa_info)) + elif self.get_info == OFFLINE_SLAPD_2_4: + from ..protocol.schemas.slapd24 import slapd_2_4_schema, slapd_2_4_dsa_info + self.attach_schema_info(SchemaInfo.from_json(slapd_2_4_schema)) + self.attach_dsa_info(DsaInfo.from_json(slapd_2_4_dsa_info)) + elif self.get_info == OFFLINE_DS389_1_3_3: + from ..protocol.schemas.ds389 import ds389_1_3_3_schema, ds389_1_3_3_dsa_info + self.attach_schema_info(SchemaInfo.from_json(ds389_1_3_3_schema)) + self.attach_dsa_info(DsaInfo.from_json(ds389_1_3_3_dsa_info)) + + def attach_dsa_info(self, dsa_info=None): + if isinstance(dsa_info, DsaInfo): + self._dsa_info = dsa_info + if log_enabled(BASIC): + log(BASIC, 'attached DSA info to Server <%s>', self) + + def attach_schema_info(self, dsa_schema=None): + if isinstance(dsa_schema, SchemaInfo): + self._schema_info = dsa_schema + if log_enabled(BASIC): + log(BASIC, 'attached schema info to Server <%s>', self) + + @property + def info(self): + return self._dsa_info + + @property + def schema(self): + return self._schema_info + + @staticmethod + def from_definition(host, dsa_info, dsa_schema, port=None, use_ssl=False, formatter=None, validator=None): + """ + Define a dummy server with preloaded schema and info + :param host: host name + :param dsa_info: DsaInfo preloaded object or a json formatted string or a file name + :param dsa_schema: SchemaInfo preloaded object or a json formatted string or a file name + :param port: fake port + :param use_ssl: use_ssl + :param formatter: custom formatters + :return: Server object + """ + if isinstance(host, SEQUENCE_TYPES): + dummy = Server(host=host[0], port=port, use_ssl=use_ssl, formatter=formatter, validator=validator, get_info=ALL) # for ServerPool object + else: + dummy = Server(host=host, port=port, use_ssl=use_ssl, formatter=formatter, validator=validator, get_info=ALL) + if isinstance(dsa_info, DsaInfo): + dummy._dsa_info = dsa_info + elif isinstance(dsa_info, STRING_TYPES): + try: + dummy._dsa_info = DsaInfo.from_json(dsa_info) # tries to use dsa_info as a json configuration string + except Exception: + dummy._dsa_info = DsaInfo.from_file(dsa_info) # tries to use dsa_info as a file name + + if not dummy.info: + if log_enabled(ERROR): + log(ERROR, 'invalid DSA info for %s', host) + raise LDAPDefinitionError('invalid dsa info') + + if isinstance(dsa_schema, SchemaInfo): + dummy._schema_info = dsa_schema + elif isinstance(dsa_schema, STRING_TYPES): + try: + dummy._schema_info = SchemaInfo.from_json(dsa_schema) + except Exception: + dummy._schema_info = SchemaInfo.from_file(dsa_schema) + + if not dummy.schema: + if log_enabled(ERROR): + log(ERROR, 'invalid schema info for %s', host) + raise LDAPDefinitionError('invalid schema info') + + if log_enabled(BASIC): + log(BASIC, 'created server <%s> from definition', dummy) + + return dummy + + def candidate_addresses(self): + conf_reset_availability_timeout = get_config_parameter('RESET_AVAILABILITY_TIMEOUT') + if self.ipc: + candidates = self.address_info + if log_enabled(BASIC): + log(BASIC, 'candidate address for <%s>: <%s> with mode UNIX_SOCKET', self, self.name) + else: + # checks reset availability timeout + for address in self.address_info: + if address[6] and ((datetime.now() - address[6]).seconds > conf_reset_availability_timeout): + address[5] = None + address[6] = None + + # selects server address based on server mode and availability (in address[5]) + addresses = self.address_info[:] # copy to avoid refreshing while searching candidates + candidates = [] + if addresses: + if self.mode == IP_SYSTEM_DEFAULT: + candidates.append(addresses[0]) + elif self.mode == IP_V4_ONLY: + candidates = [address for address in addresses if address[0] == socket.AF_INET and (address[5] or address[5] is None)] + elif self.mode == IP_V6_ONLY: + candidates = [address for address in addresses if address[0] == socket.AF_INET6 and (address[5] or address[5] is None)] + elif self.mode == IP_V4_PREFERRED: + candidates = [address for address in addresses if address[0] == socket.AF_INET and (address[5] or address[5] is None)] + candidates += [address for address in addresses if address[0] == socket.AF_INET6 and (address[5] or address[5] is None)] + elif self.mode == IP_V6_PREFERRED: + candidates = [address for address in addresses if address[0] == socket.AF_INET6 and (address[5] or address[5] is None)] + candidates += [address for address in addresses if address[0] == socket.AF_INET and (address[5] or address[5] is None)] + else: + if log_enabled(ERROR): + log(ERROR, 'invalid server mode for <%s>', self) + raise LDAPInvalidServerError('invalid server mode') + + if log_enabled(BASIC): + for candidate in candidates: + log(BASIC, 'obtained candidate address for <%s>: <%r> with mode %s', self, candidate[:-2], self.mode) + return candidates + + def _check_info_property(self, kind, name): + if not self._dsa_info: + raise LDAPInfoError('server info not loaded') + + if kind == 'control': + properties = self.info.supported_controls + elif kind == 'extension': + properties = self.info.supported_extensions + elif kind == 'feature': + properties = self.info.supported_features + else: + raise LDAPInfoError('invalid info category') + + for prop in properties: + if name == prop[0] or (prop[2] and name.lower() == prop[2].lower()): # checks oid and description + return True + + return False + + def has_control(self, control): + return self._check_info_property('control', control) + + def has_extension(self, extension): + return self._check_info_property('extension', extension) + + def has_feature(self, feature): + return self._check_info_property('feature', feature) + + + diff --git a/server/www/packages/packages-linux/x64/ldap3/core/timezone.py b/server/www/packages/packages-linux/x64/ldap3/core/timezone.py index 728f73b..0c24a77 100644 --- a/server/www/packages/packages-linux/x64/ldap3/core/timezone.py +++ b/server/www/packages/packages-linux/x64/ldap3/core/timezone.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/core/tls.py b/server/www/packages/packages-linux/x64/ldap3/core/tls.py index befb019..1539b9f 100644 --- a/server/www/packages/packages-linux/x64/ldap3/core/tls.py +++ b/server/www/packages/packages-linux/x64/ldap3/core/tls.py @@ -1,321 +1,327 @@ -""" -""" - -# Created on 2013.08.05 -# -# Author: Giovanni Cannata -# -# Copyright 2013 - 2018 Giovanni Cannata -# -# This file is part of ldap3. -# -# ldap3 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ldap3 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with ldap3 in the COPYING and COPYING.LESSER files. -# If not, see . - -from .exceptions import LDAPSSLNotSupportedError, LDAPSSLConfigurationError, LDAPStartTLSError, LDAPCertificateError, start_tls_exception_factory -from .. import SEQUENCE_TYPES -from ..utils.log import log, log_enabled, ERROR, BASIC, NETWORK - -try: - # noinspection PyUnresolvedReferences - import ssl -except ImportError: - if log_enabled(ERROR): - log(ERROR, 'SSL not supported in this Python interpreter') - raise LDAPSSLNotSupportedError('SSL not supported in this Python interpreter') - -try: - from ssl import match_hostname, CertificateError # backport for python2 missing ssl functionalities -except ImportError: - from ..utils.tls_backport import CertificateError - from ..utils.tls_backport import match_hostname - if log_enabled(BASIC): - log(BASIC, 'using tls_backport') - -try: # try to use SSLContext - # noinspection PyUnresolvedReferences - from ssl import create_default_context, Purpose # defined in Python 3.4 and Python 2.7.9 - use_ssl_context = True -except ImportError: - use_ssl_context = False - if log_enabled(BASIC): - log(BASIC, 'SSLContext unavailable') - -from os import path - - -# noinspection PyProtectedMember -class Tls(object): - """ - tls/ssl configuration for Server object - Starting from python 2.7.9 and python 3.4 uses the SSLContext object - that tries to read the CAs defined at system level - ca_certs_path and ca_certs_data are valid only when using SSLContext - local_private_key_password is valid only when using SSLContext - sni is the server name for Server Name Indication (when available) - """ - - def __init__(self, - local_private_key_file=None, - local_certificate_file=None, - validate=ssl.CERT_NONE, - version=None, - ca_certs_file=None, - valid_names=None, - ca_certs_path=None, - ca_certs_data=None, - local_private_key_password=None, - ciphers=None, - sni=None): - - if validate in [ssl.CERT_NONE, ssl.CERT_OPTIONAL, ssl.CERT_REQUIRED]: - self.validate = validate - elif validate: - if log_enabled(ERROR): - log(ERROR, 'invalid validate parameter <%s>', validate) - raise LDAPSSLConfigurationError('invalid validate parameter') - if ca_certs_file and path.exists(ca_certs_file): - self.ca_certs_file = ca_certs_file - elif ca_certs_file: - if log_enabled(ERROR): - log(ERROR, 'invalid CA public key file <%s>', ca_certs_file) - raise LDAPSSLConfigurationError('invalid CA public key file') - else: - self.ca_certs_file = None - - if ca_certs_path and use_ssl_context and path.exists(ca_certs_path): - self.ca_certs_path = ca_certs_path - elif ca_certs_path and not use_ssl_context: - if log_enabled(ERROR): - log(ERROR, 'cannot use CA public keys path, SSLContext not available') - raise LDAPSSLNotSupportedError('cannot use CA public keys path, SSLContext not available') - elif ca_certs_path: - if log_enabled(ERROR): - log(ERROR, 'invalid CA public keys path <%s>', ca_certs_path) - raise LDAPSSLConfigurationError('invalid CA public keys path') - else: - self.ca_certs_path = None - - if ca_certs_data and use_ssl_context: - self.ca_certs_data = ca_certs_data - elif ca_certs_data: - if log_enabled(ERROR): - log(ERROR, 'cannot use CA data, SSLContext not available') - raise LDAPSSLNotSupportedError('cannot use CA data, SSLContext not available') - else: - self.ca_certs_data = None - - if local_private_key_password and use_ssl_context: - self.private_key_password = local_private_key_password - elif local_private_key_password: - if log_enabled(ERROR): - log(ERROR, 'cannot use local private key password, SSLContext not available') - raise LDAPSSLNotSupportedError('cannot use local private key password, SSLContext is not available') - else: - self.private_key_password = None - - self.version = version - self.private_key_file = local_private_key_file - self.certificate_file = local_certificate_file - self.valid_names = valid_names - self.ciphers = ciphers - self.sni = sni - - if log_enabled(BASIC): - log(BASIC, 'instantiated Tls: <%r>' % self) - - def __str__(self): - s = [ - 'protocol: ' + str(self.version), - 'client private key: ' + ('present ' if self.private_key_file else 'not present'), - 'client certificate: ' + ('present ' if self.certificate_file else 'not present'), - 'private key password: ' + ('present ' if self.private_key_password else 'not present'), - 'CA certificates file: ' + ('present ' if self.ca_certs_file else 'not present'), - 'CA certificates path: ' + ('present ' if self.ca_certs_path else 'not present'), - 'CA certificates data: ' + ('present ' if self.ca_certs_data else 'not present'), - 'verify mode: ' + str(self.validate), - 'valid names: ' + str(self.valid_names), - 'ciphers: ' + str(self.ciphers), - 'sni: ' + str(self.sni) - ] - return ' - '.join(s) - - def __repr__(self): - r = '' if self.private_key_file is None else ', local_private_key_file={0.private_key_file!r}'.format(self) - r += '' if self.certificate_file is None else ', local_certificate_file={0.certificate_file!r}'.format(self) - r += '' if self.validate is None else ', validate={0.validate!r}'.format(self) - r += '' if self.version is None else ', version={0.version!r}'.format(self) - r += '' if self.ca_certs_file is None else ', ca_certs_file={0.ca_certs_file!r}'.format(self) - r += '' if self.ca_certs_path is None else ', ca_certs_path={0.ca_certs_path!r}'.format(self) - r += '' if self.ca_certs_data is None else ', ca_certs_data={0.ca_certs_data!r}'.format(self) - r += '' if self.ciphers is None else ', ciphers={0.ciphers!r}'.format(self) - r += '' if self.sni is None else ', sni={0.sni!r}'.format(self) - r = 'Tls(' + r[2:] + ')' - return r - - def wrap_socket(self, connection, do_handshake=False): - """ - Adds TLS to the connection socket - """ - if use_ssl_context: - if self.version is None: # uses the default ssl context for reasonable security - ssl_context = create_default_context(purpose=Purpose.SERVER_AUTH, - cafile=self.ca_certs_file, - capath=self.ca_certs_path, - cadata=self.ca_certs_data) - else: # code from create_default_context in the Python standard library 3.5.1, creates a ssl context with the specificd protocol version - ssl_context = ssl.SSLContext(self.version) - if self.ca_certs_file or self.ca_certs_path or self.ca_certs_data: - ssl_context.load_verify_locations(self.ca_certs_file, self.ca_certs_path, self.ca_certs_data) - elif self.validate != ssl.CERT_NONE: - ssl_context.load_default_certs(Purpose.SERVER_AUTH) - - if self.certificate_file: - ssl_context.load_cert_chain(self.certificate_file, keyfile=self.private_key_file, password=self.private_key_password) - ssl_context.check_hostname = False - ssl_context.verify_mode = self.validate - - if self.ciphers: - try: - ssl_context.set_ciphers(self.ciphers) - except ssl.SSLError: - pass - - if self.sni: - wrapped_socket = ssl_context.wrap_socket(connection.socket, server_side=False, do_handshake_on_connect=do_handshake, server_hostname=self.sni) - else: - wrapped_socket = ssl_context.wrap_socket(connection.socket, server_side=False, do_handshake_on_connect=do_handshake) - if log_enabled(NETWORK): - log(NETWORK, 'socket wrapped with SSL using SSLContext for <%s>', connection) - else: - if self.version is None and hasattr(ssl, 'PROTOCOL_SSLv23'): - self.version = ssl.PROTOCOL_SSLv23 - if self.ciphers: - try: - - wrapped_socket = ssl.wrap_socket(connection.socket, - keyfile=self.private_key_file, - certfile=self.certificate_file, - server_side=False, - cert_reqs=self.validate, - ssl_version=self.version, - ca_certs=self.ca_certs_file, - do_handshake_on_connect=do_handshake, - ciphers=self.ciphers) - except ssl.SSLError: - raise - except TypeError: # in python2.6 no ciphers argument is present, failback to self.ciphers=None - self.ciphers = None - - if not self.ciphers: - wrapped_socket = ssl.wrap_socket(connection.socket, - keyfile=self.private_key_file, - certfile=self.certificate_file, - server_side=False, - cert_reqs=self.validate, - ssl_version=self.version, - ca_certs=self.ca_certs_file, - do_handshake_on_connect=do_handshake) - if log_enabled(NETWORK): - log(NETWORK, 'socket wrapped with SSL for <%s>', connection) - - if do_handshake and (self.validate == ssl.CERT_REQUIRED or self.validate == ssl.CERT_OPTIONAL): - check_hostname(wrapped_socket, connection.server.host, self.valid_names) - - connection.socket = wrapped_socket - return - - def start_tls(self, connection): - if connection.server.ssl: # ssl already established at server level - return False - - if (connection.tls_started and not connection._executing_deferred) or connection.strategy._outstanding or connection.sasl_in_progress: - # Per RFC 4513 (3.1.1) - if log_enabled(ERROR): - log(ERROR, "can't start tls because operations are in progress for <%s>", self) - return False - connection.starting_tls = True - if log_enabled(BASIC): - log(BASIC, 'starting tls for <%s>', connection) - if not connection.strategy.sync: - connection._awaiting_for_async_start_tls = True # some flaky servers (OpenLDAP) doesn't return the extended response name in response - result = connection.extended('1.3.6.1.4.1.1466.20037') - if not connection.strategy.sync: - # asynchronous - _start_tls must be executed by the strategy - response = connection.get_response(result) - if response != (None, None): - if log_enabled(BASIC): - log(BASIC, 'tls started for <%s>', connection) - return True - else: - if log_enabled(BASIC): - log(BASIC, 'tls not started for <%s>', connection) - return False - else: - if connection.result['description'] not in ['success']: - # startTLS failed - connection.last_error = 'startTLS failed - ' + str(connection.result['description']) - if log_enabled(ERROR): - log(ERROR, '%s for <%s>', connection.last_error, connection) - raise LDAPStartTLSError(connection.last_error) - if log_enabled(BASIC): - log(BASIC, 'tls started for <%s>', connection) - return self._start_tls(connection) - - def _start_tls(self, connection): - try: - self.wrap_socket(connection, do_handshake=True) - except Exception as e: - connection.last_error = 'wrap socket error: ' + str(e) - if log_enabled(ERROR): - log(ERROR, 'error <%s> wrapping socket for TLS in <%s>', connection.last_error, connection) - raise start_tls_exception_factory(LDAPStartTLSError, e)(connection.last_error) - finally: - connection.starting_tls = False - - if connection.usage: - connection._usage.wrapped_sockets += 1 - connection.tls_started = True - return True - - -def check_hostname(sock, server_name, additional_names): - server_certificate = sock.getpeercert() - if log_enabled(NETWORK): - log(NETWORK, 'certificate found for %s: %s', sock, server_certificate) - if additional_names: - host_names = [server_name] + (additional_names if isinstance(additional_names, SEQUENCE_TYPES) else [additional_names]) - else: - host_names = [server_name] - - for host_name in host_names: - if not host_name: - continue - elif host_name == '*': - if log_enabled(NETWORK): - log(NETWORK, 'certificate matches * wildcard') - return # valid - - try: - match_hostname(server_certificate, host_name) # raise CertificateError if certificate doesn't match server name - if log_enabled(NETWORK): - log(NETWORK, 'certificate matches host name <%s>', host_name) - return # valid - except CertificateError as e: - if log_enabled(NETWORK): - log(NETWORK, str(e)) - - if log_enabled(ERROR): - log(ERROR, "hostname doesn't match certificate") - raise LDAPCertificateError("certificate %s doesn't match any name in %s " % (server_certificate, str(host_names))) +""" +""" + +# Created on 2013.08.05 +# +# Author: Giovanni Cannata +# +# Copyright 2013 - 2020 Giovanni Cannata +# +# This file is part of ldap3. +# +# ldap3 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ldap3 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ldap3 in the COPYING and COPYING.LESSER files. +# If not, see . + +from .exceptions import LDAPSSLNotSupportedError, LDAPSSLConfigurationError, LDAPStartTLSError, LDAPCertificateError, start_tls_exception_factory +from .. import SEQUENCE_TYPES +from ..utils.log import log, log_enabled, ERROR, BASIC, NETWORK + +try: + # noinspection PyUnresolvedReferences + import ssl +except ImportError: + if log_enabled(ERROR): + log(ERROR, 'SSL not supported in this Python interpreter') + raise LDAPSSLNotSupportedError('SSL not supported in this Python interpreter') + +try: + from ssl import match_hostname, CertificateError # backport for python2 missing ssl functionalities +except ImportError: + from ..utils.tls_backport import CertificateError + from ..utils.tls_backport import match_hostname + if log_enabled(BASIC): + log(BASIC, 'using tls_backport') + +try: # try to use SSLContext + # noinspection PyUnresolvedReferences + from ssl import create_default_context, Purpose # defined in Python 3.4 and Python 2.7.9 + use_ssl_context = True +except ImportError: + use_ssl_context = False + if log_enabled(BASIC): + log(BASIC, 'SSLContext unavailable') + +from os import path + + +# noinspection PyProtectedMember +class Tls(object): + """ + tls/ssl configuration for Server object + Starting from python 2.7.9 and python 3.4 uses the SSLContext object + that tries to read the CAs defined at system level + ca_certs_path and ca_certs_data are valid only when using SSLContext + local_private_key_password is valid only when using SSLContext + ssl_options is valid only when using SSLContext + sni is the server name for Server Name Indication (when available) + """ + + def __init__(self, + local_private_key_file=None, + local_certificate_file=None, + validate=ssl.CERT_NONE, + version=None, + ssl_options=None, + ca_certs_file=None, + valid_names=None, + ca_certs_path=None, + ca_certs_data=None, + local_private_key_password=None, + ciphers=None, + sni=None): + if ssl_options is None: + ssl_options = [] + self.ssl_options = ssl_options + if validate in [ssl.CERT_NONE, ssl.CERT_OPTIONAL, ssl.CERT_REQUIRED]: + self.validate = validate + elif validate: + if log_enabled(ERROR): + log(ERROR, 'invalid validate parameter <%s>', validate) + raise LDAPSSLConfigurationError('invalid validate parameter') + if ca_certs_file and path.exists(ca_certs_file): + self.ca_certs_file = ca_certs_file + elif ca_certs_file: + if log_enabled(ERROR): + log(ERROR, 'invalid CA public key file <%s>', ca_certs_file) + raise LDAPSSLConfigurationError('invalid CA public key file') + else: + self.ca_certs_file = None + + if ca_certs_path and use_ssl_context and path.exists(ca_certs_path): + self.ca_certs_path = ca_certs_path + elif ca_certs_path and not use_ssl_context: + if log_enabled(ERROR): + log(ERROR, 'cannot use CA public keys path, SSLContext not available') + raise LDAPSSLNotSupportedError('cannot use CA public keys path, SSLContext not available') + elif ca_certs_path: + if log_enabled(ERROR): + log(ERROR, 'invalid CA public keys path <%s>', ca_certs_path) + raise LDAPSSLConfigurationError('invalid CA public keys path') + else: + self.ca_certs_path = None + + if ca_certs_data and use_ssl_context: + self.ca_certs_data = ca_certs_data + elif ca_certs_data: + if log_enabled(ERROR): + log(ERROR, 'cannot use CA data, SSLContext not available') + raise LDAPSSLNotSupportedError('cannot use CA data, SSLContext not available') + else: + self.ca_certs_data = None + + if local_private_key_password and use_ssl_context: + self.private_key_password = local_private_key_password + elif local_private_key_password: + if log_enabled(ERROR): + log(ERROR, 'cannot use local private key password, SSLContext not available') + raise LDAPSSLNotSupportedError('cannot use local private key password, SSLContext is not available') + else: + self.private_key_password = None + + self.version = version + self.private_key_file = local_private_key_file + self.certificate_file = local_certificate_file + self.valid_names = valid_names + self.ciphers = ciphers + self.sni = sni + + if log_enabled(BASIC): + log(BASIC, 'instantiated Tls: <%r>' % self) + + def __str__(self): + s = [ + 'protocol: ' + str(self.version), + 'client private key: ' + ('present ' if self.private_key_file else 'not present'), + 'client certificate: ' + ('present ' if self.certificate_file else 'not present'), + 'private key password: ' + ('present ' if self.private_key_password else 'not present'), + 'CA certificates file: ' + ('present ' if self.ca_certs_file else 'not present'), + 'CA certificates path: ' + ('present ' if self.ca_certs_path else 'not present'), + 'CA certificates data: ' + ('present ' if self.ca_certs_data else 'not present'), + 'verify mode: ' + str(self.validate), + 'valid names: ' + str(self.valid_names), + 'ciphers: ' + str(self.ciphers), + 'sni: ' + str(self.sni) + ] + return ' - '.join(s) + + def __repr__(self): + r = '' if self.private_key_file is None else ', local_private_key_file={0.private_key_file!r}'.format(self) + r += '' if self.certificate_file is None else ', local_certificate_file={0.certificate_file!r}'.format(self) + r += '' if self.validate is None else ', validate={0.validate!r}'.format(self) + r += '' if self.version is None else ', version={0.version!r}'.format(self) + r += '' if self.ca_certs_file is None else ', ca_certs_file={0.ca_certs_file!r}'.format(self) + r += '' if self.ca_certs_path is None else ', ca_certs_path={0.ca_certs_path!r}'.format(self) + r += '' if self.ca_certs_data is None else ', ca_certs_data={0.ca_certs_data!r}'.format(self) + r += '' if self.ciphers is None else ', ciphers={0.ciphers!r}'.format(self) + r += '' if self.sni is None else ', sni={0.sni!r}'.format(self) + r = 'Tls(' + r[2:] + ')' + return r + + def wrap_socket(self, connection, do_handshake=False): + """ + Adds TLS to the connection socket + """ + if use_ssl_context: + if self.version is None: # uses the default ssl context for reasonable security + ssl_context = create_default_context(purpose=Purpose.SERVER_AUTH, + cafile=self.ca_certs_file, + capath=self.ca_certs_path, + cadata=self.ca_certs_data) + else: # code from create_default_context in the Python standard library 3.5.1, creates a ssl context with the specificd protocol version + ssl_context = ssl.SSLContext(self.version) + if self.ca_certs_file or self.ca_certs_path or self.ca_certs_data: + ssl_context.load_verify_locations(self.ca_certs_file, self.ca_certs_path, self.ca_certs_data) + elif self.validate != ssl.CERT_NONE: + ssl_context.load_default_certs(Purpose.SERVER_AUTH) + + if self.certificate_file: + ssl_context.load_cert_chain(self.certificate_file, keyfile=self.private_key_file, password=self.private_key_password) + ssl_context.check_hostname = False + ssl_context.verify_mode = self.validate + for option in self.ssl_options: + ssl_context.options |= option + + if self.ciphers: + try: + ssl_context.set_ciphers(self.ciphers) + except ssl.SSLError: + pass + + if self.sni: + wrapped_socket = ssl_context.wrap_socket(connection.socket, server_side=False, do_handshake_on_connect=do_handshake, server_hostname=self.sni) + else: + wrapped_socket = ssl_context.wrap_socket(connection.socket, server_side=False, do_handshake_on_connect=do_handshake) + if log_enabled(NETWORK): + log(NETWORK, 'socket wrapped with SSL using SSLContext for <%s>', connection) + else: + if self.version is None and hasattr(ssl, 'PROTOCOL_SSLv23'): + self.version = ssl.PROTOCOL_SSLv23 + if self.ciphers: + try: + + wrapped_socket = ssl.wrap_socket(connection.socket, + keyfile=self.private_key_file, + certfile=self.certificate_file, + server_side=False, + cert_reqs=self.validate, + ssl_version=self.version, + ca_certs=self.ca_certs_file, + do_handshake_on_connect=do_handshake, + ciphers=self.ciphers) + except ssl.SSLError: + raise + except TypeError: # in python2.6 no ciphers argument is present, failback to self.ciphers=None + self.ciphers = None + + if not self.ciphers: + wrapped_socket = ssl.wrap_socket(connection.socket, + keyfile=self.private_key_file, + certfile=self.certificate_file, + server_side=False, + cert_reqs=self.validate, + ssl_version=self.version, + ca_certs=self.ca_certs_file, + do_handshake_on_connect=do_handshake) + if log_enabled(NETWORK): + log(NETWORK, 'socket wrapped with SSL for <%s>', connection) + + if do_handshake and (self.validate == ssl.CERT_REQUIRED or self.validate == ssl.CERT_OPTIONAL): + check_hostname(wrapped_socket, connection.server.host, self.valid_names) + + connection.socket = wrapped_socket + return + + def start_tls(self, connection): + if connection.server.ssl: # ssl already established at server level + return False + + if (connection.tls_started and not connection._executing_deferred) or connection.strategy._outstanding or connection.sasl_in_progress: + # Per RFC 4513 (3.1.1) + if log_enabled(ERROR): + log(ERROR, "can't start tls because operations are in progress for <%s>", self) + return False + connection.starting_tls = True + if log_enabled(BASIC): + log(BASIC, 'starting tls for <%s>', connection) + if not connection.strategy.sync: + connection._awaiting_for_async_start_tls = True # some flaky servers (OpenLDAP) doesn't return the extended response name in response + result = connection.extended('1.3.6.1.4.1.1466.20037') + if not connection.strategy.sync: + # asynchronous - _start_tls must be executed by the strategy + response = connection.get_response(result) + if response != (None, None): + if log_enabled(BASIC): + log(BASIC, 'tls started for <%s>', connection) + return True + else: + if log_enabled(BASIC): + log(BASIC, 'tls not started for <%s>', connection) + return False + else: + if connection.result['description'] not in ['success']: + # startTLS failed + connection.last_error = 'startTLS failed - ' + str(connection.result['description']) + if log_enabled(ERROR): + log(ERROR, '%s for <%s>', connection.last_error, connection) + raise LDAPStartTLSError(connection.last_error) + if log_enabled(BASIC): + log(BASIC, 'tls started for <%s>', connection) + return self._start_tls(connection) + + def _start_tls(self, connection): + try: + self.wrap_socket(connection, do_handshake=True) + except Exception as e: + connection.last_error = 'wrap socket error: ' + str(e) + if log_enabled(ERROR): + log(ERROR, 'error <%s> wrapping socket for TLS in <%s>', connection.last_error, connection) + raise start_tls_exception_factory(LDAPStartTLSError, e)(connection.last_error) + finally: + connection.starting_tls = False + + if connection.usage: + connection._usage.wrapped_sockets += 1 + connection.tls_started = True + return True + + +def check_hostname(sock, server_name, additional_names): + server_certificate = sock.getpeercert() + if log_enabled(NETWORK): + log(NETWORK, 'certificate found for %s: %s', sock, server_certificate) + if additional_names: + host_names = [server_name] + (additional_names if isinstance(additional_names, SEQUENCE_TYPES) else [additional_names]) + else: + host_names = [server_name] + + for host_name in host_names: + if not host_name: + continue + elif host_name == '*': + if log_enabled(NETWORK): + log(NETWORK, 'certificate matches * wildcard') + return # valid + + try: + match_hostname(server_certificate, host_name) # raise CertificateError if certificate doesn't match server name + if log_enabled(NETWORK): + log(NETWORK, 'certificate matches host name <%s>', host_name) + return # valid + except CertificateError as e: + if log_enabled(NETWORK): + log(NETWORK, str(e)) + + if log_enabled(ERROR): + log(ERROR, "hostname doesn't match certificate") + raise LDAPCertificateError("certificate %s doesn't match any name in %s " % (server_certificate, str(host_names))) diff --git a/server/www/packages/packages-linux/x64/ldap3/core/usage.py b/server/www/packages/packages-linux/x64/ldap3/core/usage.py index 187d415..7748c76 100644 --- a/server/www/packages/packages-linux/x64/ldap3/core/usage.py +++ b/server/www/packages/packages-linux/x64/ldap3/core/usage.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/__init__.py b/server/www/packages/packages-linux/x64/ldap3/extend/__init__.py index 28e5f64..32795ef 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/__init__.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/__init__.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -178,12 +178,9 @@ class StandardExtendedOperations(ExtendedOperationContainer): size_limit=0, time_limit=0, controls=None, - streaming=True, - callback=None, - queue_size=8 + streaming=False, + callback=None ): - if callback: - streaming = False return PersistentSearch(self._connection, search_base, search_filter, diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/addMembersToGroups.py b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/addMembersToGroups.py index d7938fd..eaf6cfd 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/addMembersToGroups.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/addMembersToGroups.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/dirSync.py b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/dirSync.py index cb18e7a..db403a1 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/dirSync.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/dirSync.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/modifyPassword.py b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/modifyPassword.py index 4a17fb0..0bf1c06 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/modifyPassword.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/modifyPassword.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/removeMembersFromGroups.py b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/removeMembersFromGroups.py index e415188..0998713 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/removeMembersFromGroups.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/removeMembersFromGroups.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/unlockAccount.py b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/unlockAccount.py index 393e08c..bc59b58 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/unlockAccount.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/microsoft/unlockAccount.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/addMembersToGroups.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/addMembersToGroups.py index 5583549..d649dc8 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/addMembersToGroups.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/addMembersToGroups.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/checkGroupsMemberships.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/checkGroupsMemberships.py index 1013fde..c51dbf2 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/checkGroupsMemberships.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/checkGroupsMemberships.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/endTransaction.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/endTransaction.py index 0e9a58c..18bc041 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/endTransaction.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/endTransaction.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/getBindDn.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/getBindDn.py index 2bc4deb..492bcdd 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/getBindDn.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/getBindDn.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/listReplicas.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/listReplicas.py index 804e8fe..8ccf2ff 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/listReplicas.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/listReplicas.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/nmasGetUniversalPassword.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/nmasGetUniversalPassword.py index a16b79f..291ae92 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/nmasGetUniversalPassword.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/nmasGetUniversalPassword.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/nmasSetUniversalPassword.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/nmasSetUniversalPassword.py index ee243ba..dadab59 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/nmasSetUniversalPassword.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/nmasSetUniversalPassword.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/partition_entry_count.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/partition_entry_count.py index 185fa4d..3d46c7a 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/partition_entry_count.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/partition_entry_count.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/removeMembersFromGroups.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/removeMembersFromGroups.py index df493ba..c46c275 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/removeMembersFromGroups.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/removeMembersFromGroups.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/replicaInfo.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/replicaInfo.py index e331686..057f934 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/replicaInfo.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/replicaInfo.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/novell/startTransaction.py b/server/www/packages/packages-linux/x64/ldap3/extend/novell/startTransaction.py index 2ed21c2..6179cb0 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/novell/startTransaction.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/novell/startTransaction.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/operation.py b/server/www/packages/packages-linux/x64/ldap3/extend/operation.py index 2998af3..c1d478c 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/operation.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/operation.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/standard/PagedSearch.py b/server/www/packages/packages-linux/x64/ldap3/extend/standard/PagedSearch.py index 30838df..f8bc7e6 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/standard/PagedSearch.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/standard/PagedSearch.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/standard/PersistentSearch.py b/server/www/packages/packages-linux/x64/ldap3/extend/standard/PersistentSearch.py index 1c73d4e..b25ec68 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/standard/PersistentSearch.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/standard/PersistentSearch.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -123,8 +123,8 @@ class PersistentSearch(object): raise LDAPExtensionError('Persistent search is not accumulating events in queue') def funnel(self, block=False, timeout=None): - esci = False - while not esci: + done = False + while not done: try: entry = self.connection.strategy.events.get(block, timeout) except Empty: @@ -132,6 +132,6 @@ class PersistentSearch(object): if entry['type'] == 'searchResEntry': yield entry else: - esci = True + done = True yield entry diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/standard/modifyPassword.py b/server/www/packages/packages-linux/x64/ldap3/extend/standard/modifyPassword.py index 0ec4fd3..7837355 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/standard/modifyPassword.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/standard/modifyPassword.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/extend/standard/whoAmI.py b/server/www/packages/packages-linux/x64/ldap3/extend/standard/whoAmI.py index cb9235e..a6c08a8 100644 --- a/server/www/packages/packages-linux/x64/ldap3/extend/standard/whoAmI.py +++ b/server/www/packages/packages-linux/x64/ldap3/extend/standard/whoAmI.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/abandon.py b/server/www/packages/packages-linux/x64/ldap3/operation/abandon.py index ccc3e88..66fcb6c 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/abandon.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/abandon.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/add.py b/server/www/packages/packages-linux/x64/ldap3/operation/add.py index a08e463..d0b95b4 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/add.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/add.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/bind.py b/server/www/packages/packages-linux/x64/ldap3/operation/bind.py index 78eeca8..43ad1fb 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/bind.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/bind.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/compare.py b/server/www/packages/packages-linux/x64/ldap3/operation/compare.py index 5ee03d5..2232f61 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/compare.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/compare.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/delete.py b/server/www/packages/packages-linux/x64/ldap3/operation/delete.py index df0aee8..2db40f4 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/delete.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/delete.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/extended.py b/server/www/packages/packages-linux/x64/ldap3/operation/extended.py index 3bbdd87..4b1ebc7 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/extended.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/extended.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/modify.py b/server/www/packages/packages-linux/x64/ldap3/operation/modify.py index 363e1ef..31867e9 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/modify.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/modify.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/modifyDn.py b/server/www/packages/packages-linux/x64/ldap3/operation/modifyDn.py index 174bb36..73c6da3 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/modifyDn.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/modifyDn.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/search.py b/server/www/packages/packages-linux/x64/ldap3/operation/search.py index 70088d6..b78d86d 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/search.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/search.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -38,7 +38,7 @@ from ..operation.bind import referrals_to_list from ..protocol.convert import ava_to_dict, attributes_to_list, search_refs_to_list, validate_assertion_value, prepare_filter_for_sending, search_refs_to_list_fast from ..protocol.formatters.standard import format_attribute_values from ..utils.conv import to_unicode, to_raw - +from pyasn1.error import PyAsn1UnicodeDecodeError ROOT = 0 AND = 1 @@ -379,8 +379,10 @@ def search_operation(search_base, def decode_vals(vals): - return [str(val) for val in vals if val] if vals else None - + try: + return [str(val) for val in vals if val] if vals else None + except PyAsn1UnicodeDecodeError: + return decode_raw_vals(vals) def decode_vals_fast(vals): try: @@ -393,8 +395,7 @@ def attributes_to_dict(attribute_list): conf_case_insensitive_attributes = get_config_parameter('CASE_INSENSITIVE_ATTRIBUTE_NAMES') attributes = CaseInsensitiveDict() if conf_case_insensitive_attributes else dict() for attribute in attribute_list: - attributes[str(attribute['type'])] = decode_vals(attribute['vals']) - + attributes[str(attribute['type'])] = decode_vals(attribute['vals']) return attributes diff --git a/server/www/packages/packages-linux/x64/ldap3/operation/unbind.py b/server/www/packages/packages-linux/x64/ldap3/operation/unbind.py index 6f1e713..4d418fb 100644 --- a/server/www/packages/packages-linux/x64/ldap3/operation/unbind.py +++ b/server/www/packages/packages-linux/x64/ldap3/operation/unbind.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/controls.py b/server/www/packages/packages-linux/x64/ldap3/protocol/controls.py index 197777e..658867b 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/controls.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/controls.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/convert.py b/server/www/packages/packages-linux/x64/ldap3/protocol/convert.py index e3a94f3..af3a6f8 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/convert.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/convert.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -188,7 +188,7 @@ def prepare_filter_for_sending(raw_string): ints = [] raw_string = to_raw(raw_string) while i < len(raw_string): - if (raw_string[i] == 92 or raw_string[i] == '\\') and i < len(raw_string) - 2: # 92 is backslash + if (raw_string[i] == 92 or raw_string[i] == '\\') and i < len(raw_string) - 2: # 92 (0x5C) is backslash try: ints.append(int(raw_string[i + 1: i + 3], 16)) i += 2 diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/formatters.py b/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/formatters.py index f7bfe0c..2638d52 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/formatters.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/formatters.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/standard.py b/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/standard.py index 51187f1..42f6c26 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/standard.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/standard.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -117,7 +117,7 @@ standard_formatter = { '2.16.840.1.113719.1.1.5.1.25': (format_unicode, None), # Typed Name (Novell) 'supportedldapversion': (format_integer, None), # supportedLdapVersion (Microsoft) 'octetstring': (format_binary, validate_uuid_le), # octect string (Microsoft) - '1.2.840.113556.1.4.2': (format_uuid_le, validate_uuid_le), # object guid (Microsoft) + '1.2.840.113556.1.4.2': (format_uuid_le, validate_uuid_le), # objectGUID (Microsoft) '1.2.840.113556.1.4.13': (format_ad_timestamp, validate_ad_timestamp), # builtinCreationTime (Microsoft) '1.2.840.113556.1.4.26': (format_ad_timestamp, validate_ad_timestamp), # creationTime (Microsoft) '1.2.840.113556.1.4.49': (format_ad_timestamp, validate_ad_timestamp), # badPasswordTime (Microsoft) diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/validators.py b/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/validators.py index d5511b7..3ab300d 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/validators.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/formatters/validators.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -22,7 +22,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with ldap3 in the COPYING and COPYING.LESSER files. # If not, see . -from binascii import a2b_hex +from binascii import a2b_hex, hexlify from datetime import datetime from calendar import timegm from uuid import UUID @@ -37,6 +37,16 @@ from ...utils.conv import to_raw, to_unicode, ldap_escape_to_bytes, escape_bytes # or a value different from True and False that is a valid value to substitute to the input value +def check_backslash(value): + if isinstance(value, (bytearray, bytes)): + if b'\\' in value: + value = value.replace(b'\\', b'\\5C') + elif isinstance(value, STRING_TYPES): + if '\\' in value: + value = value.replace('\\', '\\5C') + return value + + def check_type(input_value, value_type): if isinstance(input_value, value_type): return True @@ -304,6 +314,7 @@ def validate_guid(input_value): return False if changed: + valid_values = [check_backslash(value) for value in valid_values] if sequence: return valid_values else: @@ -347,6 +358,7 @@ def validate_uuid(input_value): return False if changed: + valid_values = [check_backslash(value) for value in valid_values] if sequence: return valid_values else: @@ -409,6 +421,7 @@ def validate_uuid_le(input_value): return False if changed: + valid_values = [check_backslash(value) for value in valid_values] if sequence: return valid_values else: @@ -481,6 +494,7 @@ def validate_sid(input_value): changed = True if changed: + valid_values = [check_backslash(value) for value in valid_values] if sequence: return valid_values else: diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/microsoft.py b/server/www/packages/packages-linux/x64/ldap3/protocol/microsoft.py index 89e5ae5..58e5172 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/microsoft.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/microsoft.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/novell.py b/server/www/packages/packages-linux/x64/ldap3/protocol/novell.py index 4be0acb..af8aeb3 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/novell.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/novell.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/oid.py b/server/www/packages/packages-linux/x64/ldap3/protocol/oid.py index 3f83b77..6dfadd3 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/oid.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/oid.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/persistentSearch.py b/server/www/packages/packages-linux/x64/ldap3/protocol/persistentSearch.py index e13192c..cb79aa2 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/persistentSearch.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/persistentSearch.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc2696.py b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc2696.py index 49846a5..66b647b 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc2696.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc2696.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc2849.py b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc2849.py index 2211c9f..953be33 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc2849.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc2849.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -146,7 +146,9 @@ def add_request_to_ldif(entry, all_base64, sort_order=None): lines = [] if 'entry' in entry: lines.append(_convert_to_ldif('dn', entry['entry'], all_base64)) - lines.extend(add_controls(entry['controls'], all_base64)) + control_lines = add_controls(entry['controls'], all_base64) + if control_lines: + lines.extend(control_lines) lines.append('changetype: add') lines.extend(add_attributes(entry['attributes'], all_base64)) if sort_order: @@ -162,7 +164,9 @@ def delete_request_to_ldif(entry, all_base64, sort_order=None): lines = [] if 'entry' in entry: lines.append(_convert_to_ldif('dn', entry['entry'], all_base64)) - lines.append(add_controls(entry['controls'], all_base64)) + control_lines = add_controls(entry['controls'], all_base64) + if control_lines: + lines.extend(control_lines) lines.append('changetype: delete') if sort_order: lines = sort_ldif_lines(lines, sort_order) @@ -176,7 +180,9 @@ def modify_request_to_ldif(entry, all_base64, sort_order=None): lines = [] if 'entry' in entry: lines.append(_convert_to_ldif('dn', entry['entry'], all_base64)) - lines.extend(add_controls(entry['controls'], all_base64)) + control_lines = add_controls(entry['controls'], all_base64) + if control_lines: + lines.extend(control_lines) lines.append('changetype: modify') if 'changes' in entry: for change in entry['changes']: @@ -193,7 +199,9 @@ def modify_dn_request_to_ldif(entry, all_base64, sort_order=None): lines = [] if 'entry' in entry: lines.append(_convert_to_ldif('dn', entry['entry'], all_base64)) - lines.extend(add_controls(entry['controls'], all_base64)) + control_lines = add_controls(entry['controls'], all_base64) + if control_lines: + lines.extend(control_lines) lines.append('changetype: modrdn') if 'newSuperior' in entry and entry['newSuperior'] else lines.append('changetype: moddn') lines.append(_convert_to_ldif('newrdn', entry['newRdn'], all_base64)) lines.append('deleteoldrdn: ' + ('1' if entry['deleteOldRdn'] else '0')) diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc3062.py b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc3062.py index cc3cf25..c720984 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc3062.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc3062.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4511.py b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4511.py index 8e07eee..07f67be 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4511.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4511.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4512.py b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4512.py index 7f38c7f..407b2d1 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4512.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4512.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -68,7 +68,7 @@ def attribute_usage_to_constant(value): return ATTRIBUTE_DIRECTORY_OPERATION elif value == 'distributedOperation': return ATTRIBUTE_DISTRIBUTED_OPERATION - elif value == 'dsaOperation': + elif value == 'dSAOperation': return ATTRIBUTE_DSA_OPERATION else: return 'unknown' diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4527.py b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4527.py index 874a735..6213daa 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4527.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/rfc4527.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/digestMd5.py b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/digestMd5.py index 409a2cc..48235d6 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/digestMd5.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/digestMd5.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/external.py b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/external.py index 30037e9..7bb8bc1 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/external.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/external.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/kerberos.py b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/kerberos.py index f84404e..07db583 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/kerberos.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/kerberos.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/plain.py b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/plain.py index 5327275..f7f7456 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/plain.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/plain.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/sasl.py b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/sasl.py index 375b235..30fe0e9 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/sasl.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/sasl/sasl.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/ad2012R2.py b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/ad2012R2.py index d0f3363..1712613 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/ad2012R2.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/ad2012R2.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/ds389.py b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/ds389.py index 4d49331..f0e19dc 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/ds389.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/ds389.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/edir888.py b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/edir888.py index 80499a4..8243a7e 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/edir888.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/edir888.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/edir914.py b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/edir914.py index f86c417..0a1d2e6 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/edir914.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/edir914.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/slapd24.py b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/slapd24.py index 23b86e8..1c66332 100644 --- a/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/slapd24.py +++ b/server/www/packages/packages-linux/x64/ldap3/protocol/schemas/slapd24.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/asyncStream.py b/server/www/packages/packages-linux/x64/ldap3/strategy/asyncStream.py index cfd61c8..631331c 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/asyncStream.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/asyncStream.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/asynchronous.py b/server/www/packages/packages-linux/x64/ldap3/strategy/asynchronous.py index f4da2b4..b772ad2 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/asynchronous.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/asynchronous.py @@ -1,221 +1,253 @@ -""" -""" - -# Created on 2013.07.15 -# -# Author: Giovanni Cannata -# -# Copyright 2013 - 2018 Giovanni Cannata -# -# This file is part of ldap3. -# -# ldap3 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ldap3 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with ldap3 in the COPYING and COPYING.LESSER files. -# If not, see . - -from threading import Thread, Lock -import socket - -from .. import get_config_parameter -from ..core.exceptions import LDAPSSLConfigurationError, LDAPStartTLSError, LDAPOperationResult -from ..strategy.base import BaseStrategy, RESPONSE_COMPLETE -from ..protocol.rfc4511 import LDAPMessage -from ..utils.log import log, log_enabled, format_ldap_message, ERROR, NETWORK, EXTENDED -from ..utils.asn1 import decoder, decode_message_fast - - -# noinspection PyProtectedMember -class AsyncStrategy(BaseStrategy): - """ - This strategy is asynchronous. You send the request and get the messageId of the request sent - Receiving data from socket is managed in a separated thread in a blocking mode - Requests return an int value to indicate the messageId of the requested Operation - You get the response with get_response, it has a timeout to wait for response to appear - Connection.response will contain the whole LDAP response for the messageId requested in a dict form - Connection.request will contain the result LDAP message in a dict form - Response appear in strategy._responses dictionary - """ - - # noinspection PyProtectedMember - class ReceiverSocketThread(Thread): - """ - The thread that actually manage the receiver socket - """ - - def __init__(self, ldap_connection): - Thread.__init__(self) - self.connection = ldap_connection - self.socket_size = get_config_parameter('SOCKET_SIZE') - - def run(self): - """ - Waits for data on socket, computes the length of the message and waits for enough bytes to decode the message - Message are appended to strategy._responses - """ - unprocessed = b'' - get_more_data = True - listen = True - data = b'' - while listen: - if get_more_data: - try: - data = self.connection.socket.recv(self.socket_size) - except (OSError, socket.error, AttributeError): - if self.connection.receive_timeout: # a receive timeout has been detected - keep kistening on the socket - continue - except Exception as e: - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', str(e), self.connection) - raise # unexpected exception - re-raise - if len(data) > 0: - unprocessed += data - data = b'' - else: - listen = False - length = BaseStrategy.compute_ldap_message_size(unprocessed) - if length == -1 or len(unprocessed) < length: - get_more_data = True - elif len(unprocessed) >= length: # add message to message list - if self.connection.usage: - self.connection._usage.update_received_message(length) - if log_enabled(NETWORK): - log(NETWORK, 'received %d bytes via <%s>', length, self.connection) - if self.connection.fast_decoder: - ldap_resp = decode_message_fast(unprocessed[:length]) - dict_response = self.connection.strategy.decode_response_fast(ldap_resp) - else: - ldap_resp = decoder.decode(unprocessed[:length], asn1Spec=LDAPMessage())[0] - dict_response = self.connection.strategy.decode_response(ldap_resp) - message_id = int(ldap_resp['messageID']) - if log_enabled(NETWORK): - log(NETWORK, 'received 1 ldap message via <%s>', self.connection) - if log_enabled(EXTENDED): - log(EXTENDED, 'ldap message received via <%s>:%s', self.connection, format_ldap_message(ldap_resp, '<<')) - if dict_response['type'] == 'extendedResp' and (dict_response['responseName'] == '1.3.6.1.4.1.1466.20037' or hasattr(self.connection, '_awaiting_for_async_start_tls')): - if dict_response['result'] == 0: # StartTls in progress - if self.connection.server.tls: - self.connection.server.tls._start_tls(self.connection) - else: - self.connection.last_error = 'no Tls object defined in Server' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPSSLConfigurationError(self.connection.last_error) - else: - self.connection.last_error = 'asynchronous StartTls failed' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPStartTLSError(self.connection.last_error) - del self.connection._awaiting_for_async_start_tls - if message_id != 0: # 0 is reserved for 'Unsolicited Notification' from server as per RFC4511 (paragraph 4.4) - with self.connection.strategy.async_lock: - if message_id in self.connection.strategy._responses: - self.connection.strategy._responses[message_id].append(dict_response) - else: - self.connection.strategy._responses[message_id] = [dict_response] - if dict_response['type'] not in ['searchResEntry', 'searchResRef', 'intermediateResponse']: - self.connection.strategy._responses[message_id].append(RESPONSE_COMPLETE) - if self.connection.strategy.can_stream: # for AsyncStreamStrategy, used for PersistentSearch - self.connection.strategy.accumulate_stream(message_id, dict_response) - unprocessed = unprocessed[length:] - get_more_data = False if unprocessed else True - listen = True if self.connection.listening or unprocessed else False - else: # Unsolicited Notification - if dict_response['responseName'] == '1.3.6.1.4.1.1466.20036': # Notice of Disconnection as per RFC4511 (paragraph 4.4.1) - listen = False - else: - self.connection.last_error = 'unknown unsolicited notification from server' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPStartTLSError(self.connection.last_error) - self.connection.strategy.close() - - def __init__(self, ldap_connection): - BaseStrategy.__init__(self, ldap_connection) - self.sync = False - self.no_real_dsa = False - self.pooled = False - self._responses = None - self._requests = None - self.can_stream = False - self.receiver = None - self.async_lock = Lock() - - def open(self, reset_usage=True, read_server_info=True): - """ - Open connection and start listen on the socket in a different thread - """ - with self.connection.connection_lock: - self._responses = dict() - self._requests = dict() - BaseStrategy.open(self, reset_usage, read_server_info) - - if read_server_info: - try: - self.connection.refresh_server_info() - except LDAPOperationResult: # catch errors from server if raise_exception = True - self.connection.server._dsa_info = None - self.connection.server._schema_info = None - - def close(self): - """ - Close connection and stop socket thread - """ - with self.connection.connection_lock: - BaseStrategy.close(self) - - def post_send_search(self, message_id): - """ - Clears connection.response and returns messageId - """ - self.connection.response = None - self.connection.request = None - self.connection.result = None - return message_id - - def post_send_single_response(self, message_id): - """ - Clears connection.response and returns messageId. - """ - self.connection.response = None - self.connection.request = None - self.connection.result = None - return message_id - - def _start_listen(self): - """ - Start thread in daemon mode - """ - if not self.connection.listening: - self.receiver = AsyncStrategy.ReceiverSocketThread(self.connection) - self.connection.listening = True - self.receiver.daemon = True - self.receiver.start() - - def _get_response(self, message_id): - """ - Performs the capture of LDAP response for this strategy - Checks lock to avoid race condition with receiver thread - """ - with self.async_lock: - responses = self._responses.pop(message_id) if message_id in self._responses and self._responses[message_id][-1] == RESPONSE_COMPLETE else None - - return responses - - def receiving(self): - raise NotImplementedError - - def get_stream(self): - raise NotImplementedError - - def set_stream(self, value): - raise NotImplementedError +""" +""" + +# Created on 2013.07.15 +# +# Author: Giovanni Cannata +# +# Copyright 2013 - 2020 Giovanni Cannata +# +# This file is part of ldap3. +# +# ldap3 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ldap3 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ldap3 in the COPYING and COPYING.LESSER files. +# If not, see . + +from threading import Thread, Lock, Event +import socket + +from .. import get_config_parameter +from ..core.exceptions import LDAPSSLConfigurationError, LDAPStartTLSError, LDAPOperationResult +from ..strategy.base import BaseStrategy, RESPONSE_COMPLETE +from ..protocol.rfc4511 import LDAPMessage +from ..utils.log import log, log_enabled, format_ldap_message, ERROR, NETWORK, EXTENDED +from ..utils.asn1 import decoder, decode_message_fast + + +# noinspection PyProtectedMember +class AsyncStrategy(BaseStrategy): + """ + This strategy is asynchronous. You send the request and get the messageId of the request sent + Receiving data from socket is managed in a separated thread in a blocking mode + Requests return an int value to indicate the messageId of the requested Operation + You get the response with get_response, it has a timeout to wait for response to appear + Connection.response will contain the whole LDAP response for the messageId requested in a dict form + Connection.request will contain the result LDAP message in a dict form + Response appear in strategy._responses dictionary + """ + + # noinspection PyProtectedMember + class ReceiverSocketThread(Thread): + """ + The thread that actually manage the receiver socket + """ + + def __init__(self, ldap_connection): + Thread.__init__(self) + self.connection = ldap_connection + self.socket_size = get_config_parameter('SOCKET_SIZE') + + def run(self): + """ + Waits for data on socket, computes the length of the message and waits for enough bytes to decode the message + Message are appended to strategy._responses + """ + unprocessed = b'' + get_more_data = True + listen = True + data = b'' + while listen: + if get_more_data: + try: + data = self.connection.socket.recv(self.socket_size) + except (OSError, socket.error, AttributeError): + if self.connection.receive_timeout: # a receive timeout has been detected - keep kistening on the socket + continue + except Exception as e: + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', str(e), self.connection) + raise # unexpected exception - re-raise + if len(data) > 0: + unprocessed += data + data = b'' + else: + listen = False + length = BaseStrategy.compute_ldap_message_size(unprocessed) + if length == -1 or len(unprocessed) < length: + get_more_data = True + elif len(unprocessed) >= length: # add message to message list + if self.connection.usage: + self.connection._usage.update_received_message(length) + if log_enabled(NETWORK): + log(NETWORK, 'received %d bytes via <%s>', length, self.connection) + if self.connection.fast_decoder: + ldap_resp = decode_message_fast(unprocessed[:length]) + dict_response = self.connection.strategy.decode_response_fast(ldap_resp) + else: + ldap_resp = decoder.decode(unprocessed[:length], asn1Spec=LDAPMessage())[0] + dict_response = self.connection.strategy.decode_response(ldap_resp) + message_id = int(ldap_resp['messageID']) + if log_enabled(NETWORK): + log(NETWORK, 'received 1 ldap message via <%s>', self.connection) + if log_enabled(EXTENDED): + log(EXTENDED, 'ldap message received via <%s>:%s', self.connection, format_ldap_message(ldap_resp, '<<')) + if dict_response['type'] == 'extendedResp' and (dict_response['responseName'] == '1.3.6.1.4.1.1466.20037' or hasattr(self.connection, '_awaiting_for_async_start_tls')): + if dict_response['result'] == 0: # StartTls in progress + if self.connection.server.tls: + self.connection.server.tls._start_tls(self.connection) + else: + self.connection.last_error = 'no Tls object defined in Server' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPSSLConfigurationError(self.connection.last_error) + else: + self.connection.last_error = 'asynchronous StartTls failed' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPStartTLSError(self.connection.last_error) + del self.connection._awaiting_for_async_start_tls + if message_id != 0: # 0 is reserved for 'Unsolicited Notification' from server as per RFC4511 (paragraph 4.4) + with self.connection.strategy.async_lock: + if message_id in self.connection.strategy._responses: + self.connection.strategy._responses[message_id].append(dict_response) + else: + self.connection.strategy._responses[message_id] = [dict_response] + if dict_response['type'] not in ['searchResEntry', 'searchResRef', 'intermediateResponse']: + self.connection.strategy._responses[message_id].append(RESPONSE_COMPLETE) + self.connection.strategy.set_event_for_message(message_id) + + if self.connection.strategy.can_stream: # for AsyncStreamStrategy, used for PersistentSearch + self.connection.strategy.accumulate_stream(message_id, dict_response) + unprocessed = unprocessed[length:] + get_more_data = False if unprocessed else True + listen = True if self.connection.listening or unprocessed else False + else: # Unsolicited Notification + if dict_response['responseName'] == '1.3.6.1.4.1.1466.20036': # Notice of Disconnection as per RFC4511 (paragraph 4.4.1) + listen = False + else: + self.connection.last_error = 'unknown unsolicited notification from server' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPStartTLSError(self.connection.last_error) + self.connection.strategy.close() + + def __init__(self, ldap_connection): + BaseStrategy.__init__(self, ldap_connection) + self.sync = False + self.no_real_dsa = False + self.pooled = False + self._responses = None + self._requests = None + self.can_stream = False + self.receiver = None + self.async_lock = Lock() + self.event_lock = Lock() + self._events = {} + + def open(self, reset_usage=True, read_server_info=True): + """ + Open connection and start listen on the socket in a different thread + """ + with self.connection.connection_lock: + self._responses = dict() + self._requests = dict() + BaseStrategy.open(self, reset_usage, read_server_info) + + if read_server_info: + try: + self.connection.refresh_server_info() + except LDAPOperationResult: # catch errors from server if raise_exception = True + self.connection.server._dsa_info = None + self.connection.server._schema_info = None + + def close(self): + """ + Close connection and stop socket thread + """ + with self.connection.connection_lock: + BaseStrategy.close(self) + + def _add_event_for_message(self, message_id): + with self.event_lock: + # Should have the check here because the receiver thread may has created it + if message_id not in self._events: + self._events[message_id] = Event() + + def set_event_for_message(self, message_id): + with self.event_lock: + # The receiver thread may receive the response before the sender set the event for the message_id, + # so we have to check if the event exists + if message_id not in self._events: + self._events[message_id] = Event() + self._events[message_id].set() + + def _get_event_for_message(self, message_id): + with self.event_lock: + if message_id not in self._events: + raise RuntimeError('Event for message[{}] should have been created before accessing'.format(message_id)) + return self._events[message_id] + + def post_send_search(self, message_id): + """ + Clears connection.response and returns messageId + """ + self.connection.response = None + self.connection.request = None + self.connection.result = None + self._add_event_for_message(message_id) + return message_id + + def post_send_single_response(self, message_id): + """ + Clears connection.response and returns messageId. + """ + self.connection.response = None + self.connection.request = None + self.connection.result = None + self._add_event_for_message(message_id) + return message_id + + def _start_listen(self): + """ + Start thread in daemon mode + """ + if not self.connection.listening: + self.receiver = AsyncStrategy.ReceiverSocketThread(self.connection) + self.connection.listening = True + self.receiver.daemon = True + self.receiver.start() + + def _get_response(self, message_id, timeout): + """ + Performs the capture of LDAP response for this strategy + The response is only complete after the event been set + """ + event = self._get_event_for_message(message_id) + flag = event.wait(timeout) + if not flag: + # timeout + return None + + # In this stage we could ensure the response is already there + self._events.pop(message_id) + with self.async_lock: + return self._responses.pop(message_id) + + def receiving(self): + raise NotImplementedError + + def get_stream(self): + raise NotImplementedError + + def set_stream(self, value): + raise NotImplementedError diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/base.py b/server/www/packages/packages-linux/x64/ldap3/strategy/base.py index 03ce56e..568459e 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/base.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/base.py @@ -1,878 +1,902 @@ -""" -""" - -# Created on 2013.07.15 -# -# Author: Giovanni Cannata -# -# Copyright 2013 - 2018 Giovanni Cannata -# -# This file is part of ldap3. -# -# ldap3 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ldap3 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more dectails. -# -# You should have received a copy of the GNU Lesser General Public License -# along with ldap3 in the COPYING and COPYING.LESSER files. -# If not, see . - -import socket -from struct import pack -from platform import system -from time import sleep -from random import choice - -from .. import SYNC, ANONYMOUS, get_config_parameter, BASE, ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES, NO_ATTRIBUTES -from ..core.results import DO_NOT_RAISE_EXCEPTIONS, RESULT_REFERRAL -from ..core.exceptions import LDAPOperationResult, LDAPSASLBindInProgressError, LDAPSocketOpenError, LDAPSessionTerminatedByServerError,\ - LDAPUnknownResponseError, LDAPUnknownRequestError, LDAPReferralError, communication_exception_factory, \ - LDAPSocketSendError, LDAPExceptionError, LDAPControlError, LDAPResponseTimeoutError, LDAPTransactionError -from ..utils.uri import parse_uri -from ..protocol.rfc4511 import LDAPMessage, ProtocolOp, MessageID, SearchResultEntry -from ..operation.add import add_response_to_dict, add_request_to_dict -from ..operation.modify import modify_request_to_dict, modify_response_to_dict -from ..operation.search import search_result_reference_response_to_dict, search_result_done_response_to_dict,\ - search_result_entry_response_to_dict, search_request_to_dict, search_result_entry_response_to_dict_fast,\ - search_result_reference_response_to_dict_fast, attributes_to_dict, attributes_to_dict_fast -from ..operation.bind import bind_response_to_dict, bind_request_to_dict, sicily_bind_response_to_dict, bind_response_to_dict_fast, \ - sicily_bind_response_to_dict_fast -from ..operation.compare import compare_response_to_dict, compare_request_to_dict -from ..operation.extended import extended_request_to_dict, extended_response_to_dict, intermediate_response_to_dict, extended_response_to_dict_fast, intermediate_response_to_dict_fast -from ..core.server import Server -from ..operation.modifyDn import modify_dn_request_to_dict, modify_dn_response_to_dict -from ..operation.delete import delete_response_to_dict, delete_request_to_dict -from ..protocol.convert import prepare_changes_for_request, build_controls_list -from ..operation.abandon import abandon_request_to_dict -from ..core.tls import Tls -from ..protocol.oid import Oids -from ..protocol.rfc2696 import RealSearchControlValue -from ..protocol.microsoft import DirSyncControlResponseValue -from ..utils.log import log, log_enabled, ERROR, BASIC, PROTOCOL, NETWORK, EXTENDED, format_ldap_message -from ..utils.asn1 import encode, decoder, ldap_result_to_dict_fast, decode_sequence -from ..utils.conv import to_unicode - -SESSION_TERMINATED_BY_SERVER = 'TERMINATED_BY_SERVER' -TRANSACTION_ERROR = 'TRANSACTION_ERROR' -RESPONSE_COMPLETE = 'RESPONSE_FROM_SERVER_COMPLETE' - - -# noinspection PyProtectedMember -class BaseStrategy(object): - """ - Base class for connection strategy - """ - - def __init__(self, ldap_connection): - self.connection = ldap_connection - self._outstanding = None - self._referrals = [] - self.sync = None # indicates a synchronous connection - self.no_real_dsa = None # indicates a connection to a fake LDAP server - self.pooled = None # Indicates a connection with a connection pool - self.can_stream = None # indicates if a strategy keeps a stream of responses (i.e. LdifProducer can accumulate responses with a single header). Stream must be initialized and closed in _start_listen() and _stop_listen() - self.referral_cache = {} - if log_enabled(BASIC): - log(BASIC, 'instantiated <%s>: <%s>', self.__class__.__name__, self) - - def __str__(self): - s = [ - str(self.connection) if self.connection else 'None', - 'sync' if self.sync else 'async', - 'no real DSA' if self.no_real_dsa else 'real DSA', - 'pooled' if self.pooled else 'not pooled', - 'can stream output' if self.can_stream else 'cannot stream output', - ] - return ' - '.join(s) - - def open(self, reset_usage=True, read_server_info=True): - """ - Open a socket to a server. Choose a server from the server pool if available - """ - if log_enabled(NETWORK): - log(NETWORK, 'opening connection for <%s>', self.connection) - if self.connection.lazy and not self.connection._executing_deferred: - self.connection._deferred_open = True - self.connection.closed = False - if log_enabled(NETWORK): - log(NETWORK, 'deferring open connection for <%s>', self.connection) - else: - if not self.connection.closed and not self.connection._executing_deferred: # try to close connection if still open - self.close() - - self._outstanding = dict() - if self.connection.usage: - if reset_usage or not self.connection._usage.initial_connection_start_time: - self.connection._usage.start() - - if self.connection.server_pool: - new_server = self.connection.server_pool.get_server(self.connection) # get a server from the server_pool if available - if self.connection.server != new_server: - self.connection.server = new_server - if self.connection.usage: - self.connection._usage.servers_from_pool += 1 - - exception_history = [] - if not self.no_real_dsa: # tries to connect to a real server - for candidate_address in self.connection.server.candidate_addresses(): - try: - if log_enabled(BASIC): - log(BASIC, 'try to open candidate address %s', candidate_address[:-2]) - self._open_socket(candidate_address, self.connection.server.ssl, unix_socket=self.connection.server.ipc) - self.connection.server.current_address = candidate_address - self.connection.server.update_availability(candidate_address, True) - break - except Exception as e: - self.connection.server.update_availability(candidate_address, False) - # exception_history.append((datetime.now(), exc_type, exc_value, candidate_address[4])) - exception_history.append((type(e)(str(e)), candidate_address[4])) - if not self.connection.server.current_address and exception_history: - # if len(exception_history) == 1: # only one exception, reraise - # if log_enabled(ERROR): - # log(ERROR, '<%s> for <%s>', exception_history[0][1](exception_history[0][2]), self.connection) - # raise exception_history[0][1](exception_history[0][2]) - # else: - # if log_enabled(ERROR): - # log(ERROR, 'unable to open socket for <%s>', self.connection) - # raise LDAPSocketOpenError('unable to open socket', exception_history) - if log_enabled(ERROR): - log(ERROR, 'unable to open socket for <%s>', self.connection) - raise LDAPSocketOpenError('unable to open socket', exception_history) - elif not self.connection.server.current_address: - if log_enabled(ERROR): - log(ERROR, 'invalid server address for <%s>', self.connection) - raise LDAPSocketOpenError('invalid server address') - - self.connection._deferred_open = False - self._start_listen() - # self.connection.do_auto_bind() - if log_enabled(NETWORK): - log(NETWORK, 'connection open for <%s>', self.connection) - - def close(self): - """ - Close connection - """ - if log_enabled(NETWORK): - log(NETWORK, 'closing connection for <%s>', self.connection) - if self.connection.lazy and not self.connection._executing_deferred and (self.connection._deferred_bind or self.connection._deferred_open): - self.connection.listening = False - self.connection.closed = True - if log_enabled(NETWORK): - log(NETWORK, 'deferred connection closed for <%s>', self.connection) - else: - if not self.connection.closed: - self._stop_listen() - if not self. no_real_dsa: - self._close_socket() - if log_enabled(NETWORK): - log(NETWORK, 'connection closed for <%s>', self.connection) - - self.connection.bound = False - self.connection.request = None - self.connection.response = None - self.connection.tls_started = False - self._outstanding = None - self._referrals = [] - - if not self.connection.strategy.no_real_dsa: - self.connection.server.current_address = None - if self.connection.usage: - self.connection._usage.stop() - - def _open_socket(self, address, use_ssl=False, unix_socket=False): - """ - Tries to open and connect a socket to a Server - raise LDAPExceptionError if unable to open or connect socket - """ - try: - self.connection.socket = socket.socket(*address[:3]) - except Exception as e: - self.connection.last_error = 'socket creation error: ' + str(e) - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - # raise communication_exception_factory(LDAPSocketOpenError, exc)(self.connection.last_error) - raise communication_exception_factory(LDAPSocketOpenError, type(e)(str(e)))(self.connection.last_error) - try: # set socket timeout for opening connection - if self.connection.server.connect_timeout: - self.connection.socket.settimeout(self.connection.server.connect_timeout) - self.connection.socket.connect(address[4]) - except socket.error as e: - self.connection.last_error = 'socket connection error while opening: ' + str(e) - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - # raise communication_exception_factory(LDAPSocketOpenError, exc)(self.connection.last_error) - raise communication_exception_factory(LDAPSocketOpenError, type(e)(str(e)))(self.connection.last_error) - - # Set connection recv timeout (must be set after connect, - # because socket.settimeout() affects both, connect() as - # well as recv(). Set it before tls.wrap_socket() because - # the recv timeout should take effect during the TLS - # handshake. - if self.connection.receive_timeout is not None: - try: # set receive timeout for the connection socket - self.connection.socket.settimeout(self.connection.receive_timeout) - if system().lower() == 'windows': - self.connection.socket.setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, int(1000 * self.connection.receive_timeout)) - else: - self.connection.socket.setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, pack('LL', self.connection.receive_timeout, 0)) - except socket.error as e: - self.connection.last_error = 'unable to set receive timeout for socket connection: ' + str(e) - - # if exc: - # if log_enabled(ERROR): - # log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - # raise communication_exception_factory(LDAPSocketOpenError, exc)(self.connection.last_error) - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise communication_exception_factory(LDAPSocketOpenError, type(e)(str(e)))(self.connection.last_error) - - if use_ssl: - try: - self.connection.server.tls.wrap_socket(self.connection, do_handshake=True) - if self.connection.usage: - self.connection._usage.wrapped_sockets += 1 - except Exception as e: - self.connection.last_error = 'socket ssl wrapping error: ' + str(e) - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - # raise communication_exception_factory(LDAPSocketOpenError, exc)(self.connection.last_error) - raise communication_exception_factory(LDAPSocketOpenError, type(e)(str(e)))(self.connection.last_error) - if self.connection.usage: - self.connection._usage.open_sockets += 1 - - self.connection.closed = False - - def _close_socket(self): - """ - Try to close a socket - don't raise exception if unable to close socket, assume socket is already closed - """ - - try: - self.connection.socket.shutdown(socket.SHUT_RDWR) - except Exception: - pass - - try: - self.connection.socket.close() - except Exception: - pass - - self.connection.socket = None - self.connection.closed = True - - if self.connection.usage: - self.connection._usage.closed_sockets += 1 - - def _stop_listen(self): - self.connection.listening = False - - def send(self, message_type, request, controls=None): - """ - Send an LDAP message - Returns the message_id - """ - self.connection.request = None - if self.connection.listening: - if self.connection.sasl_in_progress and message_type not in ['bindRequest']: # as per RFC4511 (4.2.1) - self.connection.last_error = 'cannot send operation requests while SASL bind is in progress' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPSASLBindInProgressError(self.connection.last_error) - message_id = self.connection.server.next_message_id() - ldap_message = LDAPMessage() - ldap_message['messageID'] = MessageID(message_id) - ldap_message['protocolOp'] = ProtocolOp().setComponentByName(message_type, request) - message_controls = build_controls_list(controls) - if message_controls is not None: - ldap_message['controls'] = message_controls - self.connection.request = BaseStrategy.decode_request(message_type, request, controls) - self._outstanding[message_id] = self.connection.request - self.sending(ldap_message) - else: - self.connection.last_error = 'unable to send message, socket is not open' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPSocketOpenError(self.connection.last_error) - - return message_id - - def get_response(self, message_id, timeout=None, get_request=False): - """ - Get response LDAP messages - Responses are returned by the underlying connection strategy - Check if message_id LDAP message is still outstanding and wait for timeout to see if it appears in _get_response - Result is stored in connection.result - Responses without result is stored in connection.response - A tuple (responses, result) is returned - """ - conf_sleep_interval = get_config_parameter('RESPONSE_SLEEPTIME') - if timeout is None: - timeout = get_config_parameter('RESPONSE_WAITING_TIMEOUT') - response = None - result = None - request = None - if self._outstanding and message_id in self._outstanding: - while timeout >= 0: # waiting for completed message to appear in responses - responses = self._get_response(message_id) - if not responses: - sleep(conf_sleep_interval) - timeout -= conf_sleep_interval - continue - - if responses == SESSION_TERMINATED_BY_SERVER: - try: # try to close the session but don't raise any error if server has already closed the session - self.close() - except (socket.error, LDAPExceptionError): - pass - self.connection.last_error = 'session terminated by server' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPSessionTerminatedByServerError(self.connection.last_error) - elif responses == TRANSACTION_ERROR: # Novell LDAP Transaction unsolicited notification - self.connection.last_error = 'transaction error' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPTransactionError(self.connection.last_error) - - # if referral in response opens a new connection to resolve referrals if requested - - if responses[-2]['result'] == RESULT_REFERRAL: - if self.connection.usage: - self.connection._usage.referrals_received += 1 - if self.connection.auto_referrals: - ref_response, ref_result = self.do_operation_on_referral(self._outstanding[message_id], responses[-2]['referrals']) - if ref_response is not None: - responses = ref_response + [ref_result] - responses.append(RESPONSE_COMPLETE) - elif ref_result is not None: - responses = [ref_result, RESPONSE_COMPLETE] - - self._referrals = [] - - if responses: - result = responses[-2] - response = responses[:-2] - self.connection.result = None - self.connection.response = None - break - - if timeout <= 0: - if log_enabled(ERROR): - log(ERROR, 'socket timeout, no response from server for <%s>', self.connection) - raise LDAPResponseTimeoutError('no response from server') - - if self.connection.raise_exceptions and result and result['result'] not in DO_NOT_RAISE_EXCEPTIONS: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'operation result <%s> for <%s>', result, self.connection) - self._outstanding.pop(message_id) - self.connection.result = result.copy() - raise LDAPOperationResult(result=result['result'], description=result['description'], dn=result['dn'], message=result['message'], response_type=result['type']) - - # checks if any response has a range tag - # self._auto_range_searching is set as a flag to avoid recursive searches - if self.connection.auto_range and not hasattr(self, '_auto_range_searching') and any((True for resp in response if 'raw_attributes' in resp for name in resp['raw_attributes'] if ';range=' in name)): - self._auto_range_searching = result.copy() - temp_response = response[:] # copy - if self.do_search_on_auto_range(self._outstanding[message_id], response): - for resp in temp_response: - if resp['type'] == 'searchResEntry': - keys = [key for key in resp['raw_attributes'] if ';range=' in key] - for key in keys: - del resp['raw_attributes'][key] - del resp['attributes'][key] - response = temp_response - result = self._auto_range_searching - del self._auto_range_searching - - if self.connection.empty_attributes: - for entry in response: - if entry['type'] == 'searchResEntry': - for attribute_type in self._outstanding[message_id]['attributes']: - if attribute_type not in entry['raw_attributes'] and attribute_type not in (ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES, NO_ATTRIBUTES): - entry['raw_attributes'][attribute_type] = list() - entry['attributes'][attribute_type] = list() - if log_enabled(PROTOCOL): - log(PROTOCOL, 'attribute set to empty list for missing attribute <%s> in <%s>', attribute_type, self) - if not self.connection.auto_range: - attrs_to_remove = [] - # removes original empty attribute in case a range tag is returned - for attribute_type in entry['attributes']: - if ';range' in attribute_type.lower(): - orig_attr, _, _ = attribute_type.partition(';') - attrs_to_remove.append(orig_attr) - for attribute_type in attrs_to_remove: - if log_enabled(PROTOCOL): - log(PROTOCOL, 'attribute type <%s> removed in response because of same attribute returned as range by the server in <%s>', attribute_type, self) - del entry['raw_attributes'][attribute_type] - del entry['attributes'][attribute_type] - - request = self._outstanding.pop(message_id) - else: - if log_enabled(ERROR): - log(ERROR, 'message id not in outstanding queue for <%s>', self.connection) - raise(LDAPResponseTimeoutError('message id not in outstanding queue')) - - if get_request: - return response, result, request - else: - return response, result - - @staticmethod - def compute_ldap_message_size(data): - """ - Compute LDAP Message size according to BER definite length rules - Returns -1 if too few data to compute message length - """ - if isinstance(data, str): # fix for Python 2, data is string not bytes - data = bytearray(data) # Python 2 bytearray is equivalent to Python 3 bytes - - ret_value = -1 - if len(data) > 2: - if data[1] <= 127: # BER definite length - short form. Highest bit of byte 1 is 0, message length is in the last 7 bits - Value can be up to 127 bytes long - ret_value = data[1] + 2 - else: # BER definite length - long form. Highest bit of byte 1 is 1, last 7 bits counts the number of following octets containing the value length - bytes_length = data[1] - 128 - if len(data) >= bytes_length + 2: - value_length = 0 - cont = bytes_length - for byte in data[2:2 + bytes_length]: - cont -= 1 - value_length += byte * (256 ** cont) - ret_value = value_length + 2 + bytes_length - - return ret_value - - def decode_response(self, ldap_message): - """ - Convert received LDAPMessage to a dict - """ - message_type = ldap_message.getComponentByName('protocolOp').getName() - component = ldap_message['protocolOp'].getComponent() - controls = ldap_message['controls'] if ldap_message['controls'].hasValue() else None - if message_type == 'bindResponse': - if not bytes(component['matchedDN']).startswith(b'NTLM'): # patch for microsoft ntlm authentication - result = bind_response_to_dict(component) - else: - result = sicily_bind_response_to_dict(component) - elif message_type == 'searchResEntry': - result = search_result_entry_response_to_dict(component, self.connection.server.schema, self.connection.server.custom_formatter, self.connection.check_names) - elif message_type == 'searchResDone': - result = search_result_done_response_to_dict(component) - elif message_type == 'searchResRef': - result = search_result_reference_response_to_dict(component) - elif message_type == 'modifyResponse': - result = modify_response_to_dict(component) - elif message_type == 'addResponse': - result = add_response_to_dict(component) - elif message_type == 'delResponse': - result = delete_response_to_dict(component) - elif message_type == 'modDNResponse': - result = modify_dn_response_to_dict(component) - elif message_type == 'compareResponse': - result = compare_response_to_dict(component) - elif message_type == 'extendedResp': - result = extended_response_to_dict(component) - elif message_type == 'intermediateResponse': - result = intermediate_response_to_dict(component) - else: - if log_enabled(ERROR): - log(ERROR, 'unknown response <%s> for <%s>', message_type, self.connection) - raise LDAPUnknownResponseError('unknown response') - result['type'] = message_type - if controls: - result['controls'] = dict() - for control in controls: - decoded_control = self.decode_control(control) - result['controls'][decoded_control[0]] = decoded_control[1] - return result - - def decode_response_fast(self, ldap_message): - """ - Convert received LDAPMessage from fast ber decoder to a dict - """ - if ldap_message['protocolOp'] == 1: # bindResponse - if not ldap_message['payload'][1][3].startswith(b'NTLM'): # patch for microsoft ntlm authentication - result = bind_response_to_dict_fast(ldap_message['payload']) - else: - result = sicily_bind_response_to_dict_fast(ldap_message['payload']) - result['type'] = 'bindResponse' - elif ldap_message['protocolOp'] == 4: # searchResEntry' - result = search_result_entry_response_to_dict_fast(ldap_message['payload'], self.connection.server.schema, self.connection.server.custom_formatter, self.connection.check_names) - result['type'] = 'searchResEntry' - elif ldap_message['protocolOp'] == 5: # searchResDone - result = ldap_result_to_dict_fast(ldap_message['payload']) - result['type'] = 'searchResDone' - elif ldap_message['protocolOp'] == 19: # searchResRef - result = search_result_reference_response_to_dict_fast(ldap_message['payload']) - result['type'] = 'searchResRef' - elif ldap_message['protocolOp'] == 7: # modifyResponse - result = ldap_result_to_dict_fast(ldap_message['payload']) - result['type'] = 'modifyResponse' - elif ldap_message['protocolOp'] == 9: # addResponse - result = ldap_result_to_dict_fast(ldap_message['payload']) - result['type'] = 'addResponse' - elif ldap_message['protocolOp'] == 11: # delResponse - result = ldap_result_to_dict_fast(ldap_message['payload']) - result['type'] = 'delResponse' - elif ldap_message['protocolOp'] == 13: # modDNResponse - result = ldap_result_to_dict_fast(ldap_message['payload']) - result['type'] = 'modDNResponse' - elif ldap_message['protocolOp'] == 15: # compareResponse - result = ldap_result_to_dict_fast(ldap_message['payload']) - result['type'] = 'compareResponse' - elif ldap_message['protocolOp'] == 24: # extendedResp - result = extended_response_to_dict_fast(ldap_message['payload']) - result['type'] = 'extendedResp' - elif ldap_message['protocolOp'] == 25: # intermediateResponse - result = intermediate_response_to_dict_fast(ldap_message['payload']) - result['type'] = 'intermediateResponse' - else: - if log_enabled(ERROR): - log(ERROR, 'unknown response <%s> for <%s>', ldap_message['protocolOp'], self.connection) - raise LDAPUnknownResponseError('unknown response') - if ldap_message['controls']: - result['controls'] = dict() - for control in ldap_message['controls']: - decoded_control = self.decode_control_fast(control[3]) - result['controls'][decoded_control[0]] = decoded_control[1] - return result - - @staticmethod - def decode_control(control): - """ - decode control, return a 2-element tuple where the first element is the control oid - and the second element is a dictionary with description (from Oids), criticality and decoded control value - """ - control_type = str(control['controlType']) - criticality = bool(control['criticality']) - control_value = bytes(control['controlValue']) - unprocessed = None - if control_type == '1.2.840.113556.1.4.319': # simple paged search as per RFC2696 - control_resp, unprocessed = decoder.decode(control_value, asn1Spec=RealSearchControlValue()) - control_value = dict() - control_value['size'] = int(control_resp['size']) - control_value['cookie'] = bytes(control_resp['cookie']) - elif control_type == '1.2.840.113556.1.4.841': # DirSync AD - control_resp, unprocessed = decoder.decode(control_value, asn1Spec=DirSyncControlResponseValue()) - control_value = dict() - control_value['more_results'] = bool(control_resp['MoreResults']) # more_result if nonzero - control_value['cookie'] = bytes(control_resp['CookieServer']) - elif control_type == '1.3.6.1.1.13.1' or control_type == '1.3.6.1.1.13.2': # Pre-Read control, Post-Read Control as per RFC 4527 - control_resp, unprocessed = decoder.decode(control_value, asn1Spec=SearchResultEntry()) - control_value = dict() - control_value['result'] = attributes_to_dict(control_resp['attributes']) - if unprocessed: - if log_enabled(ERROR): - log(ERROR, 'unprocessed control response in substrate') - raise LDAPControlError('unprocessed control response in substrate') - return control_type, {'description': Oids.get(control_type, ''), 'criticality': criticality, 'value': control_value} - - @staticmethod - def decode_control_fast(control, from_server=True): - """ - decode control, return a 2-element tuple where the first element is the control oid - and the second element is a dictionary with description (from Oids), criticality and decoded control value - """ - control_type = str(to_unicode(control[0][3], from_server=from_server)) - criticality = False - control_value = None - for r in control[1:]: - if r[2] == 4: # controlValue - control_value = r[3] - else: - criticality = False if r[3] == 0 else True # criticality (booleand default to False) - if control_type == '1.2.840.113556.1.4.319': # simple paged search as per RFC2696 - control_resp = decode_sequence(control_value, 0, len(control_value)) - control_value = dict() - control_value['size'] = int(control_resp[0][3][0][3]) - control_value['cookie'] = bytes(control_resp[0][3][1][3]) - elif control_type == '1.2.840.113556.1.4.841': # DirSync AD - control_resp = decode_sequence(control_value, 0, len(control_value)) - control_value = dict() - control_value['more_results'] = True if control_resp[0][3][0][3] else False # more_result if nonzero - control_value['cookie'] = control_resp[0][3][2][3] - elif control_type == '1.3.6.1.1.13.1' or control_type == '1.3.6.1.1.13.2': # Pre-Read control, Post-Read Control as per RFC 4527 - control_resp = decode_sequence(control_value, 0, len(control_value)) - control_value = dict() - control_value['result'] = attributes_to_dict_fast(control_resp[0][3][1][3]) - return control_type, {'description': Oids.get(control_type, ''), 'criticality': criticality, 'value': control_value} - - @staticmethod - def decode_request(message_type, component, controls=None): - # message_type = ldap_message.getComponentByName('protocolOp').getName() - # component = ldap_message['protocolOp'].getComponent() - if message_type == 'bindRequest': - result = bind_request_to_dict(component) - elif message_type == 'unbindRequest': - result = dict() - elif message_type == 'addRequest': - result = add_request_to_dict(component) - elif message_type == 'compareRequest': - result = compare_request_to_dict(component) - elif message_type == 'delRequest': - result = delete_request_to_dict(component) - elif message_type == 'extendedReq': - result = extended_request_to_dict(component) - elif message_type == 'modifyRequest': - result = modify_request_to_dict(component) - elif message_type == 'modDNRequest': - result = modify_dn_request_to_dict(component) - elif message_type == 'searchRequest': - result = search_request_to_dict(component) - elif message_type == 'abandonRequest': - result = abandon_request_to_dict(component) - else: - if log_enabled(ERROR): - log(ERROR, 'unknown request <%s>', message_type) - raise LDAPUnknownRequestError('unknown request') - result['type'] = message_type - result['controls'] = controls - - return result - - def valid_referral_list(self, referrals): - referral_list = [] - for referral in referrals: - candidate_referral = parse_uri(referral) - if candidate_referral: - for ref_host in self.connection.server.allowed_referral_hosts: - if ref_host[0] == candidate_referral['host'] or ref_host[0] == '*': - if candidate_referral['host'] not in self._referrals: - candidate_referral['anonymousBindOnly'] = not ref_host[1] - referral_list.append(candidate_referral) - break - - return referral_list - - def do_next_range_search(self, request, response, attr_name): - done = False - current_response = response - while not done: - attr_type, _, returned_range = attr_name.partition(';range=') - _, _, high_range = returned_range.partition('-') - response['raw_attributes'][attr_type] += current_response['raw_attributes'][attr_name] - response['attributes'][attr_type] += current_response['attributes'][attr_name] - if high_range != '*': - if log_enabled(PROTOCOL): - log(PROTOCOL, 'performing next search on auto-range <%s> via <%s>', str(int(high_range) + 1), self.connection) - requested_range = attr_type + ';range=' + str(int(high_range) + 1) + '-*' - result = self.connection.search(search_base=response['dn'], - search_filter='(objectclass=*)', - search_scope=BASE, - dereference_aliases=request['dereferenceAlias'], - attributes=[attr_type + ';range=' + str(int(high_range) + 1) + '-*']) - if isinstance(result, bool): - if result: - current_response = self.connection.response[0] - else: - done = True - else: - current_response, _ = self.get_response(result) - current_response = current_response[0] - - if not done: - if requested_range in current_response['raw_attributes'] and len(current_response['raw_attributes'][requested_range]) == 0: - del current_response['raw_attributes'][requested_range] - del current_response['attributes'][requested_range] - attr_name = list(filter(lambda a: ';range=' in a, current_response['raw_attributes'].keys()))[0] - continue - - done = True - - def do_search_on_auto_range(self, request, response): - for resp in [r for r in response if r['type'] == 'searchResEntry']: - for attr_name in list(resp['raw_attributes'].keys()): # generate list to avoid changing of dict size error - if ';range=' in attr_name: - attr_type, _, range_values = attr_name.partition(';range=') - if range_values in ('1-1', '0-0'): # DirSync returns these values for adding and removing members - return False - if attr_type not in resp['raw_attributes'] or resp['raw_attributes'][attr_type] is None: - resp['raw_attributes'][attr_type] = list() - if attr_type not in resp['attributes'] or resp['attributes'][attr_type] is None: - resp['attributes'][attr_type] = list() - self.do_next_range_search(request, resp, attr_name) - return True - - def create_referral_connection(self, referrals): - referral_connection = None - selected_referral = None - cachekey = None - valid_referral_list = self.valid_referral_list(referrals) - if valid_referral_list: - preferred_referral_list = [referral for referral in valid_referral_list if - referral['ssl'] == self.connection.server.ssl] - selected_referral = choice(preferred_referral_list) if preferred_referral_list else choice( - valid_referral_list) - - cachekey = (selected_referral['host'], selected_referral['port'] or self.connection.server.port, selected_referral['ssl']) - if self.connection.use_referral_cache and cachekey in self.referral_cache: - referral_connection = self.referral_cache[cachekey] - else: - referral_server = Server(host=selected_referral['host'], - port=selected_referral['port'] or self.connection.server.port, - use_ssl=selected_referral['ssl'], - get_info=self.connection.server.get_info, - formatter=self.connection.server.custom_formatter, - connect_timeout=self.connection.server.connect_timeout, - mode=self.connection.server.mode, - allowed_referral_hosts=self.connection.server.allowed_referral_hosts, - tls=Tls(local_private_key_file=self.connection.server.tls.private_key_file, - local_certificate_file=self.connection.server.tls.certificate_file, - validate=self.connection.server.tls.validate, - version=self.connection.server.tls.version, - ca_certs_file=self.connection.server.tls.ca_certs_file) if - selected_referral['ssl'] else None) - - from ..core.connection import Connection - - referral_connection = Connection(server=referral_server, - user=self.connection.user if not selected_referral['anonymousBindOnly'] else None, - password=self.connection.password if not selected_referral['anonymousBindOnly'] else None, - version=self.connection.version, - authentication=self.connection.authentication if not selected_referral['anonymousBindOnly'] else ANONYMOUS, - client_strategy=SYNC, - auto_referrals=True, - read_only=self.connection.read_only, - check_names=self.connection.check_names, - raise_exceptions=self.connection.raise_exceptions, - fast_decoder=self.connection.fast_decoder, - receive_timeout=self.connection.receive_timeout, - sasl_mechanism=self.connection.sasl_mechanism, - sasl_credentials=self.connection.sasl_credentials) - - if self.connection.usage: - self.connection._usage.referrals_connections += 1 - - referral_connection.open() - referral_connection.strategy._referrals = self._referrals - if self.connection.tls_started and not referral_server.ssl: # if the original server was in start_tls mode and the referral server is not in ssl then start_tls on the referral connection - referral_connection.start_tls() - - if self.connection.bound: - referral_connection.bind() - - if self.connection.usage: - self.connection._usage.referrals_followed += 1 - - return selected_referral, referral_connection, cachekey - - def do_operation_on_referral(self, request, referrals): - if log_enabled(PROTOCOL): - log(PROTOCOL, 'following referral for <%s>', self.connection) - selected_referral, referral_connection, cachekey = self.create_referral_connection(referrals) - if selected_referral: - if request['type'] == 'searchRequest': - referral_connection.search(selected_referral['base'] or request['base'], - selected_referral['filter'] or request['filter'], - selected_referral['scope'] or request['scope'], - request['dereferenceAlias'], - selected_referral['attributes'] or request['attributes'], - request['sizeLimit'], - request['timeLimit'], - request['typesOnly'], - controls=request['controls']) - elif request['type'] == 'addRequest': - referral_connection.add(selected_referral['base'] or request['entry'], - None, - request['attributes'], - controls=request['controls']) - elif request['type'] == 'compareRequest': - referral_connection.compare(selected_referral['base'] or request['entry'], - request['attribute'], - request['value'], - controls=request['controls']) - elif request['type'] == 'delRequest': - referral_connection.delete(selected_referral['base'] or request['entry'], - controls=request['controls']) - elif request['type'] == 'extendedReq': - referral_connection.extended(request['name'], - request['value'], - controls=request['controls'], - no_encode=True - ) - elif request['type'] == 'modifyRequest': - referral_connection.modify(selected_referral['base'] or request['entry'], - prepare_changes_for_request(request['changes']), - controls=request['controls']) - elif request['type'] == 'modDNRequest': - referral_connection.modify_dn(selected_referral['base'] or request['entry'], - request['newRdn'], - request['deleteOldRdn'], - request['newSuperior'], - controls=request['controls']) - else: - self.connection.last_error = 'referral operation not permitted' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPReferralError(self.connection.last_error) - - response = referral_connection.response - result = referral_connection.result - if self.connection.use_referral_cache: - self.referral_cache[cachekey] = referral_connection - else: - referral_connection.unbind() - else: - response = None - result = None - - return response, result - - def sending(self, ldap_message): - if log_enabled(NETWORK): - log(NETWORK, 'sending 1 ldap message for <%s>', self.connection) - try: - encoded_message = encode(ldap_message) - self.connection.socket.sendall(encoded_message) - if log_enabled(EXTENDED): - log(EXTENDED, 'ldap message sent via <%s>:%s', self.connection, format_ldap_message(ldap_message, '>>')) - if log_enabled(NETWORK): - log(NETWORK, 'sent %d bytes via <%s>', len(encoded_message), self.connection) - except socket.error as e: - self.connection.last_error = 'socket sending error' + str(e) - encoded_message = None - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - # raise communication_exception_factory(LDAPSocketSendError, exc)(self.connection.last_error) - raise communication_exception_factory(LDAPSocketSendError, type(e)(str(e)))(self.connection.last_error) - if self.connection.usage: - self.connection._usage.update_transmitted_message(self.connection.request, len(encoded_message)) - - def _start_listen(self): - # overridden on strategy class - raise NotImplementedError - - def _get_response(self, message_id): - # overridden in strategy class - raise NotImplementedError - - def receiving(self): - # overridden in strategy class - raise NotImplementedError - - def post_send_single_response(self, message_id): - # overridden in strategy class - raise NotImplementedError - - def post_send_search(self, message_id): - # overridden in strategy class - raise NotImplementedError - - def get_stream(self): - raise NotImplementedError - - def set_stream(self, value): - raise NotImplementedError - - def unbind_referral_cache(self): - while len(self.referral_cache) > 0: - cachekey, referral_connection = self.referral_cache.popitem() - referral_connection.unbind() +""" +""" + +# Created on 2013.07.15 +# +# Author: Giovanni Cannata +# +# Copyright 2013 - 2020 Giovanni Cannata +# +# This file is part of ldap3. +# +# ldap3 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ldap3 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more dectails. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ldap3 in the COPYING and COPYING.LESSER files. +# If not, see . + +import socket +from struct import pack +from platform import system +from time import sleep +from random import choice + +from .. import SYNC, ANONYMOUS, get_config_parameter, BASE, ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES, NO_ATTRIBUTES +from ..core.results import DO_NOT_RAISE_EXCEPTIONS, RESULT_REFERRAL +from ..core.exceptions import LDAPOperationResult, LDAPSASLBindInProgressError, LDAPSocketOpenError, LDAPSessionTerminatedByServerError,\ + LDAPUnknownResponseError, LDAPUnknownRequestError, LDAPReferralError, communication_exception_factory, \ + LDAPSocketSendError, LDAPExceptionError, LDAPControlError, LDAPResponseTimeoutError, LDAPTransactionError +from ..utils.uri import parse_uri +from ..protocol.rfc4511 import LDAPMessage, ProtocolOp, MessageID, SearchResultEntry +from ..operation.add import add_response_to_dict, add_request_to_dict +from ..operation.modify import modify_request_to_dict, modify_response_to_dict +from ..operation.search import search_result_reference_response_to_dict, search_result_done_response_to_dict,\ + search_result_entry_response_to_dict, search_request_to_dict, search_result_entry_response_to_dict_fast,\ + search_result_reference_response_to_dict_fast, attributes_to_dict, attributes_to_dict_fast +from ..operation.bind import bind_response_to_dict, bind_request_to_dict, sicily_bind_response_to_dict, bind_response_to_dict_fast, \ + sicily_bind_response_to_dict_fast +from ..operation.compare import compare_response_to_dict, compare_request_to_dict +from ..operation.extended import extended_request_to_dict, extended_response_to_dict, intermediate_response_to_dict, extended_response_to_dict_fast, intermediate_response_to_dict_fast +from ..core.server import Server +from ..operation.modifyDn import modify_dn_request_to_dict, modify_dn_response_to_dict +from ..operation.delete import delete_response_to_dict, delete_request_to_dict +from ..protocol.convert import prepare_changes_for_request, build_controls_list +from ..operation.abandon import abandon_request_to_dict +from ..core.tls import Tls +from ..protocol.oid import Oids +from ..protocol.rfc2696 import RealSearchControlValue +from ..protocol.microsoft import DirSyncControlResponseValue +from ..utils.log import log, log_enabled, ERROR, BASIC, PROTOCOL, NETWORK, EXTENDED, format_ldap_message +from ..utils.asn1 import encode, decoder, ldap_result_to_dict_fast, decode_sequence +from ..utils.conv import to_unicode + +SESSION_TERMINATED_BY_SERVER = 'TERMINATED_BY_SERVER' +TRANSACTION_ERROR = 'TRANSACTION_ERROR' +RESPONSE_COMPLETE = 'RESPONSE_FROM_SERVER_COMPLETE' + + +# noinspection PyProtectedMember +class BaseStrategy(object): + """ + Base class for connection strategy + """ + + def __init__(self, ldap_connection): + self.connection = ldap_connection + self._outstanding = None + self._referrals = [] + self.sync = None # indicates a synchronous connection + self.no_real_dsa = None # indicates a connection to a fake LDAP server + self.pooled = None # Indicates a connection with a connection pool + self.can_stream = None # indicates if a strategy keeps a stream of responses (i.e. LdifProducer can accumulate responses with a single header). Stream must be initialized and closed in _start_listen() and _stop_listen() + self.referral_cache = {} + if log_enabled(BASIC): + log(BASIC, 'instantiated <%s>: <%s>', self.__class__.__name__, self) + + def __str__(self): + s = [ + str(self.connection) if self.connection else 'None', + 'sync' if self.sync else 'async', + 'no real DSA' if self.no_real_dsa else 'real DSA', + 'pooled' if self.pooled else 'not pooled', + 'can stream output' if self.can_stream else 'cannot stream output', + ] + return ' - '.join(s) + + def open(self, reset_usage=True, read_server_info=True): + """ + Open a socket to a server. Choose a server from the server pool if available + """ + if log_enabled(NETWORK): + log(NETWORK, 'opening connection for <%s>', self.connection) + if self.connection.lazy and not self.connection._executing_deferred: + self.connection._deferred_open = True + self.connection.closed = False + if log_enabled(NETWORK): + log(NETWORK, 'deferring open connection for <%s>', self.connection) + else: + if not self.connection.closed and not self.connection._executing_deferred: # try to close connection if still open + self.close() + + self._outstanding = dict() + if self.connection.usage: + if reset_usage or not self.connection._usage.initial_connection_start_time: + self.connection._usage.start() + + if self.connection.server_pool: + new_server = self.connection.server_pool.get_server(self.connection) # get a server from the server_pool if available + if self.connection.server != new_server: + self.connection.server = new_server + if self.connection.usage: + self.connection._usage.servers_from_pool += 1 + + exception_history = [] + if not self.no_real_dsa: # tries to connect to a real server + for candidate_address in self.connection.server.candidate_addresses(): + try: + if log_enabled(BASIC): + log(BASIC, 'try to open candidate address %s', candidate_address[:-2]) + self._open_socket(candidate_address, self.connection.server.ssl, unix_socket=self.connection.server.ipc) + self.connection.server.current_address = candidate_address + self.connection.server.update_availability(candidate_address, True) + break + except Exception as e: + self.connection.server.update_availability(candidate_address, False) + # exception_history.append((datetime.now(), exc_type, exc_value, candidate_address[4])) + exception_history.append((type(e)(str(e)), candidate_address[4])) + if not self.connection.server.current_address and exception_history: + if len(exception_history) == 1: # only one exception, reraise + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', str(exception_history[0][0]) + ' ' + str((exception_history[0][1])), self.connection) + raise exception_history[0][0] + else: + if log_enabled(ERROR): + log(ERROR, 'unable to open socket for <%s>', self.connection) + raise LDAPSocketOpenError('unable to open socket', exception_history) + if log_enabled(ERROR): + log(ERROR, 'unable to open socket for <%s>', self.connection) + raise LDAPSocketOpenError('unable to open socket', exception_history) + elif not self.connection.server.current_address: + if log_enabled(ERROR): + log(ERROR, 'invalid server address for <%s>', self.connection) + raise LDAPSocketOpenError('invalid server address') + + self.connection._deferred_open = False + self._start_listen() + # self.connection.do_auto_bind() + if log_enabled(NETWORK): + log(NETWORK, 'connection open for <%s>', self.connection) + + def close(self): + """ + Close connection + """ + if log_enabled(NETWORK): + log(NETWORK, 'closing connection for <%s>', self.connection) + if self.connection.lazy and not self.connection._executing_deferred and (self.connection._deferred_bind or self.connection._deferred_open): + self.connection.listening = False + self.connection.closed = True + if log_enabled(NETWORK): + log(NETWORK, 'deferred connection closed for <%s>', self.connection) + else: + if not self.connection.closed: + self._stop_listen() + if not self. no_real_dsa: + self._close_socket() + if log_enabled(NETWORK): + log(NETWORK, 'connection closed for <%s>', self.connection) + + self.connection.bound = False + self.connection.request = None + self.connection.response = None + self.connection.tls_started = False + self._outstanding = None + self._referrals = [] + + if not self.connection.strategy.no_real_dsa: + self.connection.server.current_address = None + if self.connection.usage: + self.connection._usage.stop() + + def _open_socket(self, address, use_ssl=False, unix_socket=False): + """ + Tries to open and connect a socket to a Server + raise LDAPExceptionError if unable to open or connect socket + """ + try: + self.connection.socket = socket.socket(*address[:3]) + except Exception as e: + self.connection.last_error = 'socket creation error: ' + str(e) + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + # raise communication_exception_factory(LDAPSocketOpenError, exc)(self.connection.last_error) + raise communication_exception_factory(LDAPSocketOpenError, type(e)(str(e)))(self.connection.last_error) + + # Try to bind the socket locally before connecting to the remote address + # We go through our connection's source ports and try to bind our socket to our connection's source address + # with them. + # If no source address or ports were specified, this will have the same success/fail result as if we + # tried to connect to the remote server without binding locally first. + # This is actually a little bit better, as it lets us distinguish the case of "issue binding the socket + # locally" from "remote server is unavailable" with more clarity, though this will only really be an + # issue when no source address/port is specified if the system checking server availability is running + # as a very unprivileged user. + last_bind_exc = None + socket_bind_succeeded = False + for source_port in self.connection.source_port_list: + try: + self.connection.socket.bind((self.connection.source_address, source_port)) + socket_bind_succeeded = True + break + except Exception as bind_ex: + last_bind_exc = bind_ex + # we'll always end up logging at error level if we cannot bind any ports to the address locally. + # but if some work and some don't you probably don't want the ones that don't at ERROR level + if log_enabled(NETWORK): + log(NETWORK, 'Unable to bind to local address <%s> with source port <%s> due to <%s>', + self.connection.source_address, source_port, bind_ex) + if not socket_bind_succeeded: + self.connection.last_error = 'socket connection error while locally binding: ' + str(last_bind_exc) + if log_enabled(ERROR): + log(ERROR, 'Unable to locally bind to local address <%s> with any of the source ports <%s> for connection <%s due to <%s>', + self.connection.source_address, self.connection.source_port_list, self.connection, last_bind_exc) + raise communication_exception_factory(LDAPSocketOpenError, type(last_bind_exc)(str(last_bind_exc)))(last_bind_exc) + + try: # set socket timeout for opening connection + if self.connection.server.connect_timeout: + self.connection.socket.settimeout(self.connection.server.connect_timeout) + self.connection.socket.connect(address[4]) + except socket.error as e: + self.connection.last_error = 'socket connection error while opening: ' + str(e) + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + # raise communication_exception_factory(LDAPSocketOpenError, exc)(self.connection.last_error) + raise communication_exception_factory(LDAPSocketOpenError, type(e)(str(e)))(self.connection.last_error) + + # Set connection recv timeout (must be set after connect, + # because socket.settimeout() affects both, connect() as + # well as recv(). Set it before tls.wrap_socket() because + # the recv timeout should take effect during the TLS + # handshake. + if self.connection.receive_timeout is not None: + try: # set receive timeout for the connection socket + self.connection.socket.settimeout(self.connection.receive_timeout) + if system().lower() == 'windows': + self.connection.socket.setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, int(1000 * self.connection.receive_timeout)) + else: + self.connection.socket.setsockopt(socket.SOL_SOCKET, socket.SO_RCVTIMEO, pack('LL', self.connection.receive_timeout, 0)) + except socket.error as e: + self.connection.last_error = 'unable to set receive timeout for socket connection: ' + str(e) + + # if exc: + # if log_enabled(ERROR): + # log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + # raise communication_exception_factory(LDAPSocketOpenError, exc)(self.connection.last_error) + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise communication_exception_factory(LDAPSocketOpenError, type(e)(str(e)))(self.connection.last_error) + + if use_ssl: + try: + self.connection.server.tls.wrap_socket(self.connection, do_handshake=True) + if self.connection.usage: + self.connection._usage.wrapped_sockets += 1 + except Exception as e: + self.connection.last_error = 'socket ssl wrapping error: ' + str(e) + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + # raise communication_exception_factory(LDAPSocketOpenError, exc)(self.connection.last_error) + raise communication_exception_factory(LDAPSocketOpenError, type(e)(str(e)))(self.connection.last_error) + if self.connection.usage: + self.connection._usage.open_sockets += 1 + + self.connection.closed = False + + def _close_socket(self): + """ + Try to close a socket + don't raise exception if unable to close socket, assume socket is already closed + """ + + try: + self.connection.socket.shutdown(socket.SHUT_RDWR) + except Exception: + pass + + try: + self.connection.socket.close() + except Exception: + pass + + self.connection.socket = None + self.connection.closed = True + + if self.connection.usage: + self.connection._usage.closed_sockets += 1 + + def _stop_listen(self): + self.connection.listening = False + + def send(self, message_type, request, controls=None): + """ + Send an LDAP message + Returns the message_id + """ + self.connection.request = None + if self.connection.listening: + if self.connection.sasl_in_progress and message_type not in ['bindRequest']: # as per RFC4511 (4.2.1) + self.connection.last_error = 'cannot send operation requests while SASL bind is in progress' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPSASLBindInProgressError(self.connection.last_error) + message_id = self.connection.server.next_message_id() + ldap_message = LDAPMessage() + ldap_message['messageID'] = MessageID(message_id) + ldap_message['protocolOp'] = ProtocolOp().setComponentByName(message_type, request) + message_controls = build_controls_list(controls) + if message_controls is not None: + ldap_message['controls'] = message_controls + self.connection.request = BaseStrategy.decode_request(message_type, request, controls) + self._outstanding[message_id] = self.connection.request + self.sending(ldap_message) + else: + self.connection.last_error = 'unable to send message, socket is not open' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPSocketOpenError(self.connection.last_error) + + return message_id + + def get_response(self, message_id, timeout=None, get_request=False): + """ + Get response LDAP messages + Responses are returned by the underlying connection strategy + Check if message_id LDAP message is still outstanding and wait for timeout to see if it appears in _get_response + Result is stored in connection.result + Responses without result is stored in connection.response + A tuple (responses, result) is returned + """ + if timeout is None: + timeout = get_config_parameter('RESPONSE_WAITING_TIMEOUT') + response = None + result = None + request = None + if self._outstanding and message_id in self._outstanding: + responses = self._get_response(message_id, timeout) + + if not responses: + if log_enabled(ERROR): + log(ERROR, 'socket timeout, no response from server for <%s>', self.connection) + raise LDAPResponseTimeoutError('no response from server') + + if responses == SESSION_TERMINATED_BY_SERVER: + try: # try to close the session but don't raise any error if server has already closed the session + self.close() + except (socket.error, LDAPExceptionError): + pass + self.connection.last_error = 'session terminated by server' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPSessionTerminatedByServerError(self.connection.last_error) + elif responses == TRANSACTION_ERROR: # Novell LDAP Transaction unsolicited notification + self.connection.last_error = 'transaction error' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPTransactionError(self.connection.last_error) + + # if referral in response opens a new connection to resolve referrals if requested + + if responses[-2]['result'] == RESULT_REFERRAL: + if self.connection.usage: + self.connection._usage.referrals_received += 1 + if self.connection.auto_referrals: + ref_response, ref_result = self.do_operation_on_referral(self._outstanding[message_id], responses[-2]['referrals']) + if ref_response is not None: + responses = ref_response + [ref_result] + responses.append(RESPONSE_COMPLETE) + elif ref_result is not None: + responses = [ref_result, RESPONSE_COMPLETE] + + self._referrals = [] + + if responses: + result = responses[-2] + response = responses[:-2] + self.connection.result = None + self.connection.response = None + + if self.connection.raise_exceptions and result and result['result'] not in DO_NOT_RAISE_EXCEPTIONS: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'operation result <%s> for <%s>', result, self.connection) + self._outstanding.pop(message_id) + self.connection.result = result.copy() + raise LDAPOperationResult(result=result['result'], description=result['description'], dn=result['dn'], message=result['message'], response_type=result['type']) + + # checks if any response has a range tag + # self._auto_range_searching is set as a flag to avoid recursive searches + if self.connection.auto_range and not hasattr(self, '_auto_range_searching') and any((True for resp in response if 'raw_attributes' in resp for name in resp['raw_attributes'] if ';range=' in name)): + self._auto_range_searching = result.copy() + temp_response = response[:] # copy + if self.do_search_on_auto_range(self._outstanding[message_id], response): + for resp in temp_response: + if resp['type'] == 'searchResEntry': + keys = [key for key in resp['raw_attributes'] if ';range=' in key] + for key in keys: + del resp['raw_attributes'][key] + del resp['attributes'][key] + response = temp_response + result = self._auto_range_searching + del self._auto_range_searching + + if self.connection.empty_attributes: + for entry in response: + if entry['type'] == 'searchResEntry': + for attribute_type in self._outstanding[message_id]['attributes']: + if attribute_type not in entry['raw_attributes'] and attribute_type not in (ALL_ATTRIBUTES, ALL_OPERATIONAL_ATTRIBUTES, NO_ATTRIBUTES): + entry['raw_attributes'][attribute_type] = list() + entry['attributes'][attribute_type] = list() + if log_enabled(PROTOCOL): + log(PROTOCOL, 'attribute set to empty list for missing attribute <%s> in <%s>', attribute_type, self) + if not self.connection.auto_range: + attrs_to_remove = [] + # removes original empty attribute in case a range tag is returned + for attribute_type in entry['attributes']: + if ';range' in attribute_type.lower(): + orig_attr, _, _ = attribute_type.partition(';') + attrs_to_remove.append(orig_attr) + for attribute_type in attrs_to_remove: + if log_enabled(PROTOCOL): + log(PROTOCOL, 'attribute type <%s> removed in response because of same attribute returned as range by the server in <%s>', attribute_type, self) + del entry['raw_attributes'][attribute_type] + del entry['attributes'][attribute_type] + + request = self._outstanding.pop(message_id) + else: + if log_enabled(ERROR): + log(ERROR, 'message id not in outstanding queue for <%s>', self.connection) + raise(LDAPResponseTimeoutError('message id not in outstanding queue')) + + if get_request: + return response, result, request + else: + return response, result + + @staticmethod + def compute_ldap_message_size(data): + """ + Compute LDAP Message size according to BER definite length rules + Returns -1 if too few data to compute message length + """ + if isinstance(data, str): # fix for Python 2, data is string not bytes + data = bytearray(data) # Python 2 bytearray is equivalent to Python 3 bytes + + ret_value = -1 + if len(data) > 2: + if data[1] <= 127: # BER definite length - short form. Highest bit of byte 1 is 0, message length is in the last 7 bits - Value can be up to 127 bytes long + ret_value = data[1] + 2 + else: # BER definite length - long form. Highest bit of byte 1 is 1, last 7 bits counts the number of following octets containing the value length + bytes_length = data[1] - 128 + if len(data) >= bytes_length + 2: + value_length = 0 + cont = bytes_length + for byte in data[2:2 + bytes_length]: + cont -= 1 + value_length += byte * (256 ** cont) + ret_value = value_length + 2 + bytes_length + + return ret_value + + def decode_response(self, ldap_message): + """ + Convert received LDAPMessage to a dict + """ + message_type = ldap_message.getComponentByName('protocolOp').getName() + component = ldap_message['protocolOp'].getComponent() + controls = ldap_message['controls'] if ldap_message['controls'].hasValue() else None + if message_type == 'bindResponse': + if not bytes(component['matchedDN']).startswith(b'NTLM'): # patch for microsoft ntlm authentication + result = bind_response_to_dict(component) + else: + result = sicily_bind_response_to_dict(component) + elif message_type == 'searchResEntry': + result = search_result_entry_response_to_dict(component, self.connection.server.schema, self.connection.server.custom_formatter, self.connection.check_names) + elif message_type == 'searchResDone': + result = search_result_done_response_to_dict(component) + elif message_type == 'searchResRef': + result = search_result_reference_response_to_dict(component) + elif message_type == 'modifyResponse': + result = modify_response_to_dict(component) + elif message_type == 'addResponse': + result = add_response_to_dict(component) + elif message_type == 'delResponse': + result = delete_response_to_dict(component) + elif message_type == 'modDNResponse': + result = modify_dn_response_to_dict(component) + elif message_type == 'compareResponse': + result = compare_response_to_dict(component) + elif message_type == 'extendedResp': + result = extended_response_to_dict(component) + elif message_type == 'intermediateResponse': + result = intermediate_response_to_dict(component) + else: + if log_enabled(ERROR): + log(ERROR, 'unknown response <%s> for <%s>', message_type, self.connection) + raise LDAPUnknownResponseError('unknown response') + result['type'] = message_type + if controls: + result['controls'] = dict() + for control in controls: + decoded_control = self.decode_control(control) + result['controls'][decoded_control[0]] = decoded_control[1] + return result + + def decode_response_fast(self, ldap_message): + """ + Convert received LDAPMessage from fast ber decoder to a dict + """ + if ldap_message['protocolOp'] == 1: # bindResponse + if not ldap_message['payload'][1][3].startswith(b'NTLM'): # patch for microsoft ntlm authentication + result = bind_response_to_dict_fast(ldap_message['payload']) + else: + result = sicily_bind_response_to_dict_fast(ldap_message['payload']) + result['type'] = 'bindResponse' + elif ldap_message['protocolOp'] == 4: # searchResEntry' + result = search_result_entry_response_to_dict_fast(ldap_message['payload'], self.connection.server.schema, self.connection.server.custom_formatter, self.connection.check_names) + result['type'] = 'searchResEntry' + elif ldap_message['protocolOp'] == 5: # searchResDone + result = ldap_result_to_dict_fast(ldap_message['payload']) + result['type'] = 'searchResDone' + elif ldap_message['protocolOp'] == 19: # searchResRef + result = search_result_reference_response_to_dict_fast(ldap_message['payload']) + result['type'] = 'searchResRef' + elif ldap_message['protocolOp'] == 7: # modifyResponse + result = ldap_result_to_dict_fast(ldap_message['payload']) + result['type'] = 'modifyResponse' + elif ldap_message['protocolOp'] == 9: # addResponse + result = ldap_result_to_dict_fast(ldap_message['payload']) + result['type'] = 'addResponse' + elif ldap_message['protocolOp'] == 11: # delResponse + result = ldap_result_to_dict_fast(ldap_message['payload']) + result['type'] = 'delResponse' + elif ldap_message['protocolOp'] == 13: # modDNResponse + result = ldap_result_to_dict_fast(ldap_message['payload']) + result['type'] = 'modDNResponse' + elif ldap_message['protocolOp'] == 15: # compareResponse + result = ldap_result_to_dict_fast(ldap_message['payload']) + result['type'] = 'compareResponse' + elif ldap_message['protocolOp'] == 24: # extendedResp + result = extended_response_to_dict_fast(ldap_message['payload']) + result['type'] = 'extendedResp' + elif ldap_message['protocolOp'] == 25: # intermediateResponse + result = intermediate_response_to_dict_fast(ldap_message['payload']) + result['type'] = 'intermediateResponse' + else: + if log_enabled(ERROR): + log(ERROR, 'unknown response <%s> for <%s>', ldap_message['protocolOp'], self.connection) + raise LDAPUnknownResponseError('unknown response') + if ldap_message['controls']: + result['controls'] = dict() + for control in ldap_message['controls']: + decoded_control = self.decode_control_fast(control[3]) + result['controls'][decoded_control[0]] = decoded_control[1] + return result + + @staticmethod + def decode_control(control): + """ + decode control, return a 2-element tuple where the first element is the control oid + and the second element is a dictionary with description (from Oids), criticality and decoded control value + """ + control_type = str(control['controlType']) + criticality = bool(control['criticality']) + control_value = bytes(control['controlValue']) + unprocessed = None + if control_type == '1.2.840.113556.1.4.319': # simple paged search as per RFC2696 + control_resp, unprocessed = decoder.decode(control_value, asn1Spec=RealSearchControlValue()) + control_value = dict() + control_value['size'] = int(control_resp['size']) + control_value['cookie'] = bytes(control_resp['cookie']) + elif control_type == '1.2.840.113556.1.4.841': # DirSync AD + control_resp, unprocessed = decoder.decode(control_value, asn1Spec=DirSyncControlResponseValue()) + control_value = dict() + control_value['more_results'] = bool(control_resp['MoreResults']) # more_result if nonzero + control_value['cookie'] = bytes(control_resp['CookieServer']) + elif control_type == '1.3.6.1.1.13.1' or control_type == '1.3.6.1.1.13.2': # Pre-Read control, Post-Read Control as per RFC 4527 + control_resp, unprocessed = decoder.decode(control_value, asn1Spec=SearchResultEntry()) + control_value = dict() + control_value['result'] = attributes_to_dict(control_resp['attributes']) + if unprocessed: + if log_enabled(ERROR): + log(ERROR, 'unprocessed control response in substrate') + raise LDAPControlError('unprocessed control response in substrate') + return control_type, {'description': Oids.get(control_type, ''), 'criticality': criticality, 'value': control_value} + + @staticmethod + def decode_control_fast(control, from_server=True): + """ + decode control, return a 2-element tuple where the first element is the control oid + and the second element is a dictionary with description (from Oids), criticality and decoded control value + """ + control_type = str(to_unicode(control[0][3], from_server=from_server)) + criticality = False + control_value = None + for r in control[1:]: + if r[2] == 4: # controlValue + control_value = r[3] + else: + criticality = False if r[3] == 0 else True # criticality (booleand default to False) + if control_type == '1.2.840.113556.1.4.319': # simple paged search as per RFC2696 + control_resp = decode_sequence(control_value, 0, len(control_value)) + control_value = dict() + control_value['size'] = int(control_resp[0][3][0][3]) + control_value['cookie'] = bytes(control_resp[0][3][1][3]) + elif control_type == '1.2.840.113556.1.4.841': # DirSync AD + control_resp = decode_sequence(control_value, 0, len(control_value)) + control_value = dict() + control_value['more_results'] = True if control_resp[0][3][0][3] else False # more_result if nonzero + control_value['cookie'] = control_resp[0][3][2][3] + elif control_type == '1.3.6.1.1.13.1' or control_type == '1.3.6.1.1.13.2': # Pre-Read control, Post-Read Control as per RFC 4527 + control_resp = decode_sequence(control_value, 0, len(control_value)) + control_value = dict() + control_value['result'] = attributes_to_dict_fast(control_resp[0][3][1][3]) + return control_type, {'description': Oids.get(control_type, ''), 'criticality': criticality, 'value': control_value} + + @staticmethod + def decode_request(message_type, component, controls=None): + # message_type = ldap_message.getComponentByName('protocolOp').getName() + # component = ldap_message['protocolOp'].getComponent() + if message_type == 'bindRequest': + result = bind_request_to_dict(component) + elif message_type == 'unbindRequest': + result = dict() + elif message_type == 'addRequest': + result = add_request_to_dict(component) + elif message_type == 'compareRequest': + result = compare_request_to_dict(component) + elif message_type == 'delRequest': + result = delete_request_to_dict(component) + elif message_type == 'extendedReq': + result = extended_request_to_dict(component) + elif message_type == 'modifyRequest': + result = modify_request_to_dict(component) + elif message_type == 'modDNRequest': + result = modify_dn_request_to_dict(component) + elif message_type == 'searchRequest': + result = search_request_to_dict(component) + elif message_type == 'abandonRequest': + result = abandon_request_to_dict(component) + else: + if log_enabled(ERROR): + log(ERROR, 'unknown request <%s>', message_type) + raise LDAPUnknownRequestError('unknown request') + result['type'] = message_type + result['controls'] = controls + + return result + + def valid_referral_list(self, referrals): + referral_list = [] + for referral in referrals: + candidate_referral = parse_uri(referral) + if candidate_referral: + for ref_host in self.connection.server.allowed_referral_hosts: + if ref_host[0] == candidate_referral['host'] or ref_host[0] == '*': + if candidate_referral['host'] not in self._referrals: + candidate_referral['anonymousBindOnly'] = not ref_host[1] + referral_list.append(candidate_referral) + break + + return referral_list + + def do_next_range_search(self, request, response, attr_name): + done = False + current_response = response + while not done: + attr_type, _, returned_range = attr_name.partition(';range=') + _, _, high_range = returned_range.partition('-') + response['raw_attributes'][attr_type] += current_response['raw_attributes'][attr_name] + response['attributes'][attr_type] += current_response['attributes'][attr_name] + if high_range != '*': + if log_enabled(PROTOCOL): + log(PROTOCOL, 'performing next search on auto-range <%s> via <%s>', str(int(high_range) + 1), self.connection) + requested_range = attr_type + ';range=' + str(int(high_range) + 1) + '-*' + result = self.connection.search(search_base=response['dn'], + search_filter='(objectclass=*)', + search_scope=BASE, + dereference_aliases=request['dereferenceAlias'], + attributes=[attr_type + ';range=' + str(int(high_range) + 1) + '-*']) + if isinstance(result, bool): + if result: + current_response = self.connection.response[0] + else: + done = True + else: + current_response, _ = self.get_response(result) + current_response = current_response[0] + + if not done: + if requested_range in current_response['raw_attributes'] and len(current_response['raw_attributes'][requested_range]) == 0: + del current_response['raw_attributes'][requested_range] + del current_response['attributes'][requested_range] + attr_name = list(filter(lambda a: ';range=' in a, current_response['raw_attributes'].keys()))[0] + continue + + done = True + + def do_search_on_auto_range(self, request, response): + for resp in [r for r in response if r['type'] == 'searchResEntry']: + for attr_name in list(resp['raw_attributes'].keys()): # generate list to avoid changing of dict size error + if ';range=' in attr_name: + attr_type, _, range_values = attr_name.partition(';range=') + if range_values in ('1-1', '0-0'): # DirSync returns these values for adding and removing members + return False + if attr_type not in resp['raw_attributes'] or resp['raw_attributes'][attr_type] is None: + resp['raw_attributes'][attr_type] = list() + if attr_type not in resp['attributes'] or resp['attributes'][attr_type] is None: + resp['attributes'][attr_type] = list() + self.do_next_range_search(request, resp, attr_name) + return True + + def create_referral_connection(self, referrals): + referral_connection = None + selected_referral = None + cachekey = None + valid_referral_list = self.valid_referral_list(referrals) + if valid_referral_list: + preferred_referral_list = [referral for referral in valid_referral_list if + referral['ssl'] == self.connection.server.ssl] + selected_referral = choice(preferred_referral_list) if preferred_referral_list else choice( + valid_referral_list) + + cachekey = (selected_referral['host'], selected_referral['port'] or self.connection.server.port, selected_referral['ssl']) + if self.connection.use_referral_cache and cachekey in self.referral_cache: + referral_connection = self.referral_cache[cachekey] + else: + referral_server = Server(host=selected_referral['host'], + port=selected_referral['port'] or self.connection.server.port, + use_ssl=selected_referral['ssl'], + get_info=self.connection.server.get_info, + formatter=self.connection.server.custom_formatter, + connect_timeout=self.connection.server.connect_timeout, + mode=self.connection.server.mode, + allowed_referral_hosts=self.connection.server.allowed_referral_hosts, + tls=Tls(local_private_key_file=self.connection.server.tls.private_key_file, + local_certificate_file=self.connection.server.tls.certificate_file, + validate=self.connection.server.tls.validate, + version=self.connection.server.tls.version, + ca_certs_file=self.connection.server.tls.ca_certs_file) if + selected_referral['ssl'] else None) + + from ..core.connection import Connection + + referral_connection = Connection(server=referral_server, + user=self.connection.user if not selected_referral['anonymousBindOnly'] else None, + password=self.connection.password if not selected_referral['anonymousBindOnly'] else None, + version=self.connection.version, + authentication=self.connection.authentication if not selected_referral['anonymousBindOnly'] else ANONYMOUS, + client_strategy=SYNC, + auto_referrals=True, + read_only=self.connection.read_only, + check_names=self.connection.check_names, + raise_exceptions=self.connection.raise_exceptions, + fast_decoder=self.connection.fast_decoder, + receive_timeout=self.connection.receive_timeout, + sasl_mechanism=self.connection.sasl_mechanism, + sasl_credentials=self.connection.sasl_credentials) + + if self.connection.usage: + self.connection._usage.referrals_connections += 1 + + referral_connection.open() + referral_connection.strategy._referrals = self._referrals + if self.connection.tls_started and not referral_server.ssl: # if the original server was in start_tls mode and the referral server is not in ssl then start_tls on the referral connection + referral_connection.start_tls() + + if self.connection.bound: + referral_connection.bind() + + if self.connection.usage: + self.connection._usage.referrals_followed += 1 + + return selected_referral, referral_connection, cachekey + + def do_operation_on_referral(self, request, referrals): + if log_enabled(PROTOCOL): + log(PROTOCOL, 'following referral for <%s>', self.connection) + selected_referral, referral_connection, cachekey = self.create_referral_connection(referrals) + if selected_referral: + if request['type'] == 'searchRequest': + referral_connection.search(selected_referral['base'] or request['base'], + selected_referral['filter'] or request['filter'], + selected_referral['scope'] or request['scope'], + request['dereferenceAlias'], + selected_referral['attributes'] or request['attributes'], + request['sizeLimit'], + request['timeLimit'], + request['typesOnly'], + controls=request['controls']) + elif request['type'] == 'addRequest': + referral_connection.add(selected_referral['base'] or request['entry'], + None, + request['attributes'], + controls=request['controls']) + elif request['type'] == 'compareRequest': + referral_connection.compare(selected_referral['base'] or request['entry'], + request['attribute'], + request['value'], + controls=request['controls']) + elif request['type'] == 'delRequest': + referral_connection.delete(selected_referral['base'] or request['entry'], + controls=request['controls']) + elif request['type'] == 'extendedReq': + referral_connection.extended(request['name'], + request['value'], + controls=request['controls'], + no_encode=True + ) + elif request['type'] == 'modifyRequest': + referral_connection.modify(selected_referral['base'] or request['entry'], + prepare_changes_for_request(request['changes']), + controls=request['controls']) + elif request['type'] == 'modDNRequest': + referral_connection.modify_dn(selected_referral['base'] or request['entry'], + request['newRdn'], + request['deleteOldRdn'], + request['newSuperior'], + controls=request['controls']) + else: + self.connection.last_error = 'referral operation not permitted' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPReferralError(self.connection.last_error) + + response = referral_connection.response + result = referral_connection.result + if self.connection.use_referral_cache: + self.referral_cache[cachekey] = referral_connection + else: + referral_connection.unbind() + else: + response = None + result = None + + return response, result + + def sending(self, ldap_message): + if log_enabled(NETWORK): + log(NETWORK, 'sending 1 ldap message for <%s>', self.connection) + try: + encoded_message = encode(ldap_message) + self.connection.socket.sendall(encoded_message) + if log_enabled(EXTENDED): + log(EXTENDED, 'ldap message sent via <%s>:%s', self.connection, format_ldap_message(ldap_message, '>>')) + if log_enabled(NETWORK): + log(NETWORK, 'sent %d bytes via <%s>', len(encoded_message), self.connection) + except socket.error as e: + self.connection.last_error = 'socket sending error' + str(e) + encoded_message = None + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + # raise communication_exception_factory(LDAPSocketSendError, exc)(self.connection.last_error) + raise communication_exception_factory(LDAPSocketSendError, type(e)(str(e)))(self.connection.last_error) + if self.connection.usage: + self.connection._usage.update_transmitted_message(self.connection.request, len(encoded_message)) + + def _start_listen(self): + # overridden on strategy class + raise NotImplementedError + + def _get_response(self, message_id, timeout): + # overridden in strategy class + raise NotImplementedError + + def receiving(self): + # overridden in strategy class + raise NotImplementedError + + def post_send_single_response(self, message_id): + # overridden in strategy class + raise NotImplementedError + + def post_send_search(self, message_id): + # overridden in strategy class + raise NotImplementedError + + def get_stream(self): + raise NotImplementedError + + def set_stream(self, value): + raise NotImplementedError + + def unbind_referral_cache(self): + while len(self.referral_cache) > 0: + cachekey, referral_connection = self.referral_cache.popitem() + referral_connection.unbind() diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/ldifProducer.py b/server/www/packages/packages-linux/x64/ldap3/strategy/ldifProducer.py index dfdde1b..392239e 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/ldifProducer.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/ldifProducer.py @@ -1,150 +1,150 @@ -""" -""" - -# Created on 2013.07.15 -# -# Author: Giovanni Cannata -# -# Copyright 2013 - 2018 Giovanni Cannata -# -# This file is part of ldap3. -# -# ldap3 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ldap3 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with ldap3 in the COPYING and COPYING.LESSER files. -# If not, see . - -from io import StringIO -from os import linesep -import random - -from ..core.exceptions import LDAPLDIFError -from ..utils.conv import prepare_for_stream -from ..protocol.rfc4511 import LDAPMessage, MessageID, ProtocolOp, LDAP_MAX_INT -from ..protocol.rfc2849 import operation_to_ldif, add_ldif_header -from ..protocol.convert import build_controls_list -from .base import BaseStrategy - - -class LdifProducerStrategy(BaseStrategy): - """ - This strategy is used to create the LDIF stream for the Add, Delete, Modify, ModifyDn operations. - You send the request and get the request in the ldif-change representation of the operation. - NO OPERATION IS SENT TO THE LDAP SERVER! - Connection.request will contain the result LDAP message in a dict form - Connection.response will contain the ldif-change format of the requested operation if available - You don't need a real server to connect to for this strategy - """ - - def __init__(self, ldap_connection): - BaseStrategy.__init__(self, ldap_connection) - self.sync = True - self.no_real_dsa = True - self.pooled = False - self.can_stream = True - self.line_separator = linesep - self.all_base64 = False - self.stream = None - self.order = dict() - self._header_added = False - random.seed() - - def _open_socket(self, address, use_ssl=False, unix_socket=False): # fake open socket - self.connection.socket = NotImplemented # placeholder for a dummy socket - if self.connection.usage: - self.connection._usage.open_sockets += 1 - - self.connection.closed = False - - def _close_socket(self): - if self.connection.usage: - self.connection._usage.closed_sockets += 1 - - self.connection.socket = None - self.connection.closed = True - - def _start_listen(self): - self.connection.listening = True - self.connection.closed = False - self._header_added = False - if not self.stream or (isinstance(self.stream, StringIO) and self.stream.closed): - self.set_stream(StringIO()) - - def _stop_listen(self): - self.stream.close() - self.connection.listening = False - self.connection.closed = True - - def receiving(self): - return None - - def send(self, message_type, request, controls=None): - """ - Build the LDAPMessage without sending to server - """ - message_id = random.randint(0, LDAP_MAX_INT) - ldap_message = LDAPMessage() - ldap_message['messageID'] = MessageID(message_id) - ldap_message['protocolOp'] = ProtocolOp().setComponentByName(message_type, request) - message_controls = build_controls_list(controls) - if message_controls is not None: - ldap_message['controls'] = message_controls - - self.connection.request = BaseStrategy.decode_request(message_type, request, controls) - self.connection.request['controls'] = controls - if self._outstanding is None: - self._outstanding = dict() - self._outstanding[message_id] = self.connection.request - return message_id - - def post_send_single_response(self, message_id): - self.connection.response = None - self.connection.result = None - if self._outstanding and message_id in self._outstanding: - request = self._outstanding.pop(message_id) - ldif_lines = operation_to_ldif(self.connection.request['type'], request, self.all_base64, self.order.get(self.connection.request['type'])) - if self.stream and ldif_lines and not self.connection.closed: - self.accumulate_stream(self.line_separator.join(ldif_lines)) - ldif_lines = add_ldif_header(ldif_lines) - self.connection.response = self.line_separator.join(ldif_lines) - return self.connection.response - - return None - - def post_send_search(self, message_id): - raise LDAPLDIFError('LDIF-CONTENT cannot be produced for Search operations') - - def _get_response(self, message_id): - pass - - def accumulate_stream(self, fragment): - if not self._header_added and self.stream.tell() == 0: - self._header_added = True - header = add_ldif_header(['-'])[0] - self.stream.write(prepare_for_stream(header + self.line_separator + self.line_separator)) - self.stream.write(prepare_for_stream(fragment + self.line_separator + self.line_separator)) - - def get_stream(self): - return self.stream - - def set_stream(self, value): - error = False - try: - if not value.writable(): - error = True - except (ValueError, AttributeError): - error = True - - if error: - raise LDAPLDIFError('stream must be writable') - - self.stream = value +""" +""" + +# Created on 2013.07.15 +# +# Author: Giovanni Cannata +# +# Copyright 2013 - 2020 Giovanni Cannata +# +# This file is part of ldap3. +# +# ldap3 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ldap3 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ldap3 in the COPYING and COPYING.LESSER files. +# If not, see . + +from io import StringIO +from os import linesep +import random + +from ..core.exceptions import LDAPLDIFError +from ..utils.conv import prepare_for_stream +from ..protocol.rfc4511 import LDAPMessage, MessageID, ProtocolOp, LDAP_MAX_INT +from ..protocol.rfc2849 import operation_to_ldif, add_ldif_header +from ..protocol.convert import build_controls_list +from .base import BaseStrategy + + +class LdifProducerStrategy(BaseStrategy): + """ + This strategy is used to create the LDIF stream for the Add, Delete, Modify, ModifyDn operations. + You send the request and get the request in the ldif-change representation of the operation. + NO OPERATION IS SENT TO THE LDAP SERVER! + Connection.request will contain the result LDAP message in a dict form + Connection.response will contain the ldif-change format of the requested operation if available + You don't need a real server to connect to for this strategy + """ + + def __init__(self, ldap_connection): + BaseStrategy.__init__(self, ldap_connection) + self.sync = True + self.no_real_dsa = True + self.pooled = False + self.can_stream = True + self.line_separator = linesep + self.all_base64 = False + self.stream = None + self.order = dict() + self._header_added = False + random.seed() + + def _open_socket(self, address, use_ssl=False, unix_socket=False): # fake open socket + self.connection.socket = NotImplemented # placeholder for a dummy socket + if self.connection.usage: + self.connection._usage.open_sockets += 1 + + self.connection.closed = False + + def _close_socket(self): + if self.connection.usage: + self.connection._usage.closed_sockets += 1 + + self.connection.socket = None + self.connection.closed = True + + def _start_listen(self): + self.connection.listening = True + self.connection.closed = False + self._header_added = False + if not self.stream or (isinstance(self.stream, StringIO) and self.stream.closed): + self.set_stream(StringIO()) + + def _stop_listen(self): + self.stream.close() + self.connection.listening = False + self.connection.closed = True + + def receiving(self): + return None + + def send(self, message_type, request, controls=None): + """ + Build the LDAPMessage without sending to server + """ + message_id = random.randint(0, LDAP_MAX_INT) + ldap_message = LDAPMessage() + ldap_message['messageID'] = MessageID(message_id) + ldap_message['protocolOp'] = ProtocolOp().setComponentByName(message_type, request) + message_controls = build_controls_list(controls) + if message_controls is not None: + ldap_message['controls'] = message_controls + + self.connection.request = BaseStrategy.decode_request(message_type, request, controls) + self.connection.request['controls'] = controls + if self._outstanding is None: + self._outstanding = dict() + self._outstanding[message_id] = self.connection.request + return message_id + + def post_send_single_response(self, message_id): + self.connection.response = None + self.connection.result = None + if self._outstanding and message_id in self._outstanding: + request = self._outstanding.pop(message_id) + ldif_lines = operation_to_ldif(self.connection.request['type'], request, self.all_base64, self.order.get(self.connection.request['type'])) + if self.stream and ldif_lines and not self.connection.closed: + self.accumulate_stream(self.line_separator.join(ldif_lines)) + ldif_lines = add_ldif_header(ldif_lines) + self.connection.response = self.line_separator.join(ldif_lines) + return self.connection.response + + return None + + def post_send_search(self, message_id): + raise LDAPLDIFError('LDIF-CONTENT cannot be produced for Search operations') + + def _get_response(self, message_id, timeout): + pass + + def accumulate_stream(self, fragment): + if not self._header_added and self.stream.tell() == 0: + self._header_added = True + header = add_ldif_header(['-'])[0] + self.stream.write(prepare_for_stream(header + self.line_separator + self.line_separator)) + self.stream.write(prepare_for_stream(fragment + self.line_separator + self.line_separator)) + + def get_stream(self): + return self.stream + + def set_stream(self, value): + error = False + try: + if not value.writable(): + error = True + except (ValueError, AttributeError): + error = True + + if error: + raise LDAPLDIFError('stream must be writable') + + self.stream = value diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/mockAsync.py b/server/www/packages/packages-linux/x64/ldap3/strategy/mockAsync.py index 2891506..f9965dc 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/mockAsync.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/mockAsync.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/mockBase.py b/server/www/packages/packages-linux/x64/ldap3/strategy/mockBase.py index c933a59..7acf706 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/mockBase.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/mockBase.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2016 - 2018 Giovanni Cannata +# Copyright 2016 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -26,7 +26,6 @@ import json import re -from threading import Lock from random import SystemRandom from pyasn1.type.univ import OctetString @@ -224,7 +223,7 @@ class MockBaseStrategy(object): return False if attribute.lower() == 'objectclass' and self.connection.server.schema: # builds the objectClass hierarchy only if schema is present class_set = set() - for object_class in attributes['objectClass']: + for object_class in attributes[attribute]: if self.connection.server.schema.object_classes and object_class not in self.connection.server.schema.object_classes: return False # walkups the class hierarchy and buils a set of all classes in it @@ -654,6 +653,7 @@ class MockBaseStrategy(object): if '+' in attributes: # operational attributes requested attributes.extend(self.operational_attributes) attributes.remove('+') + attributes = [attr.lower() for attr in request['attributes']] filter_root = parse_filter(request['filter'], self.connection.server.schema, auto_escape=True, auto_encode=False, validator=self.connection.server.custom_validator, check_names=self.connection.check_names) @@ -687,7 +687,11 @@ class MockBaseStrategy(object): for attribute in self.connection.server.dit[match] if attribute.lower() in attributes or ALL_ATTRIBUTES in attributes] }) - + if '+' not in attributes: # remove operational attributes + for op_attr in self.operational_attributes: + for i, attr in enumerate(responses[len(responses)-1]['attributes']): + if attr['type'] == op_attr: + del responses[len(responses)-1]['attributes'][i] result_code = 0 message = '' diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/mockSync.py b/server/www/packages/packages-linux/x64/ldap3/strategy/mockSync.py index 4de6381..efd2c15 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/mockSync.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/mockSync.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/restartable.py b/server/www/packages/packages-linux/x64/ldap3/strategy/restartable.py index 3ffaac6..d739f41 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/restartable.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/restartable.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/reusable.py b/server/www/packages/packages-linux/x64/ldap3/strategy/reusable.py index 8d213c4..01bd9d3 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/reusable.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/reusable.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -68,7 +68,7 @@ class ReusableStrategy(BaseStrategy): def _start_listen(self): raise NotImplementedError - def _get_response(self, message_id): + def _get_response(self, message_id, timeout): raise NotImplementedError def get_stream(self): diff --git a/server/www/packages/packages-linux/x64/ldap3/strategy/sync.py b/server/www/packages/packages-linux/x64/ldap3/strategy/sync.py index fc7ccfb..fdb1441 100644 --- a/server/www/packages/packages-linux/x64/ldap3/strategy/sync.py +++ b/server/www/packages/packages-linux/x64/ldap3/strategy/sync.py @@ -1,212 +1,212 @@ -""" -""" - -# Created on 2013.07.15 -# -# Author: Giovanni Cannata -# -# Copyright 2013 - 2018 Giovanni Cannata -# -# This file is part of ldap3. -# -# ldap3 is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ldap3 is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with ldap3 in the COPYING and COPYING.LESSER files. -# If not, see . - -import socket - -from .. import SEQUENCE_TYPES, get_config_parameter -from ..core.exceptions import LDAPSocketReceiveError, communication_exception_factory, LDAPExceptionError, LDAPExtensionError, LDAPOperationResult -from ..strategy.base import BaseStrategy, SESSION_TERMINATED_BY_SERVER, RESPONSE_COMPLETE, TRANSACTION_ERROR -from ..protocol.rfc4511 import LDAPMessage -from ..utils.log import log, log_enabled, ERROR, NETWORK, EXTENDED, format_ldap_message -from ..utils.asn1 import decoder, decode_message_fast - -LDAP_MESSAGE_TEMPLATE = LDAPMessage() - - -# noinspection PyProtectedMember -class SyncStrategy(BaseStrategy): - """ - This strategy is synchronous. You send the request and get the response - Requests return a boolean value to indicate the result of the requested Operation - Connection.response will contain the whole LDAP response for the messageId requested in a dict form - Connection.request will contain the result LDAP message in a dict form - """ - - def __init__(self, ldap_connection): - BaseStrategy.__init__(self, ldap_connection) - self.sync = True - self.no_real_dsa = False - self.pooled = False - self.can_stream = False - self.socket_size = get_config_parameter('SOCKET_SIZE') - - def open(self, reset_usage=True, read_server_info=True): - BaseStrategy.open(self, reset_usage, read_server_info) - if read_server_info: - try: - self.connection.refresh_server_info() - except LDAPOperationResult: # catch errors from server if raise_exception = True - self.connection.server._dsa_info = None - self.connection.server._schema_info = None - - def _start_listen(self): - if not self.connection.listening and not self.connection.closed: - self.connection.listening = True - - def receiving(self): - """ - Receives data over the socket - Checks if the socket is closed - """ - messages = [] - receiving = True - unprocessed = b'' - data = b'' - get_more_data = True - exc = None - while receiving: - if get_more_data: - try: - data = self.connection.socket.recv(self.socket_size) - except (OSError, socket.error, AttributeError) as e: - self.connection.last_error = 'error receiving data: ' + str(e) - try: # try to close the connection before raising exception - self.close() - except (socket.error, LDAPExceptionError): - pass - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - # raise communication_exception_factory(LDAPSocketReceiveError, exc)(self.connection.last_error) - raise communication_exception_factory(LDAPSocketReceiveError, type(e)(str(e)))(self.connection.last_error) - unprocessed += data - if len(data) > 0: - length = BaseStrategy.compute_ldap_message_size(unprocessed) - if length == -1: # too few data to decode message length - get_more_data = True - continue - if len(unprocessed) < length: - get_more_data = True - else: - if log_enabled(NETWORK): - log(NETWORK, 'received %d bytes via <%s>', len(unprocessed[:length]), self.connection) - messages.append(unprocessed[:length]) - unprocessed = unprocessed[length:] - get_more_data = False - if len(unprocessed) == 0: - receiving = False - else: - receiving = False - - if log_enabled(NETWORK): - log(NETWORK, 'received %d ldap messages via <%s>', len(messages), self.connection) - return messages - - def post_send_single_response(self, message_id): - """ - Executed after an Operation Request (except Search) - Returns the result message or None - """ - responses, result = self.get_response(message_id) - self.connection.result = result - if result['type'] == 'intermediateResponse': # checks that all responses are intermediates (there should be only one) - for response in responses: - if response['type'] != 'intermediateResponse': - self.connection.last_error = 'multiple messages received error' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPSocketReceiveError(self.connection.last_error) - - responses.append(result) - return responses - - def post_send_search(self, message_id): - """ - Executed after a search request - Returns the result message and store in connection.response the objects found - """ - responses, result = self.get_response(message_id) - self.connection.result = result - if isinstance(responses, SEQUENCE_TYPES): - self.connection.response = responses[:] # copy search result entries - return responses - - self.connection.last_error = 'error receiving response' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPSocketReceiveError(self.connection.last_error) - - def _get_response(self, message_id): - """ - Performs the capture of LDAP response for SyncStrategy - """ - ldap_responses = [] - response_complete = False - while not response_complete: - responses = self.receiving() - if responses: - for response in responses: - if len(response) > 0: - if self.connection.usage: - self.connection._usage.update_received_message(len(response)) - if self.connection.fast_decoder: - ldap_resp = decode_message_fast(response) - dict_response = self.decode_response_fast(ldap_resp) - else: - ldap_resp, _ = decoder.decode(response, asn1Spec=LDAP_MESSAGE_TEMPLATE) # unprocessed unused because receiving() waits for the whole message - dict_response = self.decode_response(ldap_resp) - if log_enabled(EXTENDED): - log(EXTENDED, 'ldap message received via <%s>:%s', self.connection, format_ldap_message(ldap_resp, '<<')) - if int(ldap_resp['messageID']) == message_id: - ldap_responses.append(dict_response) - if dict_response['type'] not in ['searchResEntry', 'searchResRef', 'intermediateResponse']: - response_complete = True - elif int(ldap_resp['messageID']) == 0: # 0 is reserved for 'Unsolicited Notification' from server as per RFC4511 (paragraph 4.4) - if dict_response['responseName'] == '1.3.6.1.4.1.1466.20036': # Notice of Disconnection as per RFC4511 (paragraph 4.4.1) - return SESSION_TERMINATED_BY_SERVER - elif dict_response['responseName'] == '2.16.840.1.113719.1.27.103.4': # Novell LDAP transaction error unsolicited notification - return TRANSACTION_ERROR - else: - self.connection.last_error = 'unknown unsolicited notification from server' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPSocketReceiveError(self.connection.last_error) - elif int(ldap_resp['messageID']) != message_id and dict_response['type'] == 'extendedResp': - self.connection.last_error = 'multiple extended responses to a single extended request' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPExtensionError(self.connection.last_error) - # pass # ignore message with invalid messageId when receiving multiple extendedResp. This is not allowed by RFC4511 but some LDAP server do it - else: - self.connection.last_error = 'invalid messageId received' - if log_enabled(ERROR): - log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - raise LDAPSocketReceiveError(self.connection.last_error) - # response = unprocessed - # if response: # if this statement is removed unprocessed data will be processed as another message - # self.connection.last_error = 'unprocessed substrate error' - # if log_enabled(ERROR): - # log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) - # raise LDAPSocketReceiveError(self.connection.last_error) - else: - return SESSION_TERMINATED_BY_SERVER - ldap_responses.append(RESPONSE_COMPLETE) - - return ldap_responses - - def set_stream(self, value): - raise NotImplementedError - - def get_stream(self): - raise NotImplementedError +""" +""" + +# Created on 2013.07.15 +# +# Author: Giovanni Cannata +# +# Copyright 2013 - 2020 Giovanni Cannata +# +# This file is part of ldap3. +# +# ldap3 is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ldap3 is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with ldap3 in the COPYING and COPYING.LESSER files. +# If not, see . + +import socket + +from .. import SEQUENCE_TYPES, get_config_parameter +from ..core.exceptions import LDAPSocketReceiveError, communication_exception_factory, LDAPExceptionError, LDAPExtensionError, LDAPOperationResult +from ..strategy.base import BaseStrategy, SESSION_TERMINATED_BY_SERVER, RESPONSE_COMPLETE, TRANSACTION_ERROR +from ..protocol.rfc4511 import LDAPMessage +from ..utils.log import log, log_enabled, ERROR, NETWORK, EXTENDED, format_ldap_message +from ..utils.asn1 import decoder, decode_message_fast + +LDAP_MESSAGE_TEMPLATE = LDAPMessage() + + +# noinspection PyProtectedMember +class SyncStrategy(BaseStrategy): + """ + This strategy is synchronous. You send the request and get the response + Requests return a boolean value to indicate the result of the requested Operation + Connection.response will contain the whole LDAP response for the messageId requested in a dict form + Connection.request will contain the result LDAP message in a dict form + """ + + def __init__(self, ldap_connection): + BaseStrategy.__init__(self, ldap_connection) + self.sync = True + self.no_real_dsa = False + self.pooled = False + self.can_stream = False + self.socket_size = get_config_parameter('SOCKET_SIZE') + + def open(self, reset_usage=True, read_server_info=True): + BaseStrategy.open(self, reset_usage, read_server_info) + if read_server_info: + try: + self.connection.refresh_server_info() + except LDAPOperationResult: # catch errors from server if raise_exception = True + self.connection.server._dsa_info = None + self.connection.server._schema_info = None + + def _start_listen(self): + if not self.connection.listening and not self.connection.closed: + self.connection.listening = True + + def receiving(self): + """ + Receives data over the socket + Checks if the socket is closed + """ + messages = [] + receiving = True + unprocessed = b'' + data = b'' + get_more_data = True + exc = None + while receiving: + if get_more_data: + try: + data = self.connection.socket.recv(self.socket_size) + except (OSError, socket.error, AttributeError) as e: + self.connection.last_error = 'error receiving data: ' + str(e) + try: # try to close the connection before raising exception + self.close() + except (socket.error, LDAPExceptionError): + pass + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + # raise communication_exception_factory(LDAPSocketReceiveError, exc)(self.connection.last_error) + raise communication_exception_factory(LDAPSocketReceiveError, type(e)(str(e)))(self.connection.last_error) + unprocessed += data + if len(data) > 0: + length = BaseStrategy.compute_ldap_message_size(unprocessed) + if length == -1: # too few data to decode message length + get_more_data = True + continue + if len(unprocessed) < length: + get_more_data = True + else: + if log_enabled(NETWORK): + log(NETWORK, 'received %d bytes via <%s>', len(unprocessed[:length]), self.connection) + messages.append(unprocessed[:length]) + unprocessed = unprocessed[length:] + get_more_data = False + if len(unprocessed) == 0: + receiving = False + else: + receiving = False + + if log_enabled(NETWORK): + log(NETWORK, 'received %d ldap messages via <%s>', len(messages), self.connection) + return messages + + def post_send_single_response(self, message_id): + """ + Executed after an Operation Request (except Search) + Returns the result message or None + """ + responses, result = self.get_response(message_id) + self.connection.result = result + if result['type'] == 'intermediateResponse': # checks that all responses are intermediates (there should be only one) + for response in responses: + if response['type'] != 'intermediateResponse': + self.connection.last_error = 'multiple messages received error' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPSocketReceiveError(self.connection.last_error) + + responses.append(result) + return responses + + def post_send_search(self, message_id): + """ + Executed after a search request + Returns the result message and store in connection.response the objects found + """ + responses, result = self.get_response(message_id) + self.connection.result = result + if isinstance(responses, SEQUENCE_TYPES): + self.connection.response = responses[:] # copy search result entries + return responses + + self.connection.last_error = 'error receiving response' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPSocketReceiveError(self.connection.last_error) + + def _get_response(self, message_id, timeout): + """ + Performs the capture of LDAP response for SyncStrategy + """ + ldap_responses = [] + response_complete = False + while not response_complete: + responses = self.receiving() + if responses: + for response in responses: + if len(response) > 0: + if self.connection.usage: + self.connection._usage.update_received_message(len(response)) + if self.connection.fast_decoder: + ldap_resp = decode_message_fast(response) + dict_response = self.decode_response_fast(ldap_resp) + else: + ldap_resp, _ = decoder.decode(response, asn1Spec=LDAP_MESSAGE_TEMPLATE) # unprocessed unused because receiving() waits for the whole message + dict_response = self.decode_response(ldap_resp) + if log_enabled(EXTENDED): + log(EXTENDED, 'ldap message received via <%s>:%s', self.connection, format_ldap_message(ldap_resp, '<<')) + if int(ldap_resp['messageID']) == message_id: + ldap_responses.append(dict_response) + if dict_response['type'] not in ['searchResEntry', 'searchResRef', 'intermediateResponse']: + response_complete = True + elif int(ldap_resp['messageID']) == 0: # 0 is reserved for 'Unsolicited Notification' from server as per RFC4511 (paragraph 4.4) + if dict_response['responseName'] == '1.3.6.1.4.1.1466.20036': # Notice of Disconnection as per RFC4511 (paragraph 4.4.1) + return SESSION_TERMINATED_BY_SERVER + elif dict_response['responseName'] == '2.16.840.1.113719.1.27.103.4': # Novell LDAP transaction error unsolicited notification + return TRANSACTION_ERROR + else: + self.connection.last_error = 'unknown unsolicited notification from server' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPSocketReceiveError(self.connection.last_error) + elif int(ldap_resp['messageID']) != message_id and dict_response['type'] == 'extendedResp': + self.connection.last_error = 'multiple extended responses to a single extended request' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPExtensionError(self.connection.last_error) + # pass # ignore message with invalid messageId when receiving multiple extendedResp. This is not allowed by RFC4511 but some LDAP server do it + else: + self.connection.last_error = 'invalid messageId received' + if log_enabled(ERROR): + log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + raise LDAPSocketReceiveError(self.connection.last_error) + # response = unprocessed + # if response: # if this statement is removed unprocessed data will be processed as another message + # self.connection.last_error = 'unprocessed substrate error' + # if log_enabled(ERROR): + # log(ERROR, '<%s> for <%s>', self.connection.last_error, self.connection) + # raise LDAPSocketReceiveError(self.connection.last_error) + else: + return SESSION_TERMINATED_BY_SERVER + ldap_responses.append(RESPONSE_COMPLETE) + + return ldap_responses + + def set_stream(self, value): + raise NotImplementedError + + def get_stream(self): + raise NotImplementedError diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/asn1.py b/server/www/packages/packages-linux/x64/ldap3/utils/asn1.py index 6b0b0bb..1b6091d 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/asn1.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/asn1.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/ciDict.py b/server/www/packages/packages-linux/x64/ldap3/utils/ciDict.py index baf5d38..c51d7ff 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/ciDict.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/ciDict.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -169,7 +169,12 @@ class CaseInsensitiveWithAliasDict(CaseInsensitiveDict): elif not ignore_duplicates: raise KeyError('\'' + str(alias_to_add) + '\' already used as key') else: - raise KeyError('\'' + str(ci_key) + '\' is not an existing key') + for keymap in self._alias_keymap: + if ci_key in self._alias_keymap[keymap]: # kye is already aliased + self.set_alias(keymap, alias + [ci_key], ignore_duplicates=ignore_duplicates) + break + else: + raise KeyError('\'' + str(ci_key) + '\' is not an existing alias or key') def remove_alias(self, alias): if not isinstance(alias, SEQUENCE_TYPES): diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/config.py b/server/www/packages/packages-linux/x64/ldap3/utils/config.py index 36b57a9..e3edbf8 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/config.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/config.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2013 - 2018 Giovanni Cannata +# Copyright 2013 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/conv.py b/server/www/packages/packages-linux/x64/ldap3/utils/conv.py index 9970926..b000e30 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/conv.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/conv.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -72,7 +72,7 @@ def to_unicode(obj, encoding=None, from_server=False): if isinstance(obj, STRING_TYPES): # python3 strings, python 2 unicode return obj - raise UnicodeError("Unable to convert type %s to unicode: %r" % (type(obj).__class__.__name__, obj)) + raise UnicodeError("Unable to convert type %s to unicode: %r" % (obj.__class__.__name__, obj)) def to_raw(obj, encoding='utf-8'): diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/dn.py b/server/www/packages/packages-linux/x64/ldap3/utils/dn.py index 99705ce..c2a1e66 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/dn.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/dn.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # @@ -347,6 +347,8 @@ def safe_dn(dn, decompose=False, reverse=False): escaped_dn = dn elif dn.startswith(''): # Active Directory allows Binding to Well-Known Objects Using WKGUID in a specially-formatted DN (e.g. ) escaped_dn = dn + elif dn.startswith(''): # Active Directory allows looking up objects by putting its security identifier (SID) in a specially-formatted DN (e.g. '') + escaped_dn = dn elif '@' not in dn: # active directory UPN (User Principal Name) consist of an account, the at sign (@) and a domain, or the domain level logn name domain\username for component in parse_dn(dn, escape=True): if decompose: diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/hashed.py b/server/www/packages/packages-linux/x64/ldap3/utils/hashed.py index 33a2b89..e58d67d 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/hashed.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/hashed.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/log.py b/server/www/packages/packages-linux/x64/ldap3/utils/log.py index d65cc1b..228c745 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/log.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/log.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/ntlm.py b/server/www/packages/packages-linux/x64/ldap3/utils/ntlm.py index af32a87..f91776d 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/ntlm.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/ntlm.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/port_validators.py b/server/www/packages/packages-linux/x64/ldap3/utils/port_validators.py new file mode 100644 index 0000000..a35e13e --- /dev/null +++ b/server/www/packages/packages-linux/x64/ldap3/utils/port_validators.py @@ -0,0 +1,37 @@ +""" Some helper functions for validation of ports and lists of ports. """ + + +def check_port(port): + """ Check if a port is valid. Return an error message indicating what is invalid if something isn't valid. """ + if isinstance(port, int): + if port not in range(0, 65535): + return 'Source port must in range from 0 to 65535' + else: + return 'Source port must be an integer' + return None + + +def check_port_and_port_list(port, port_list): + """ Take in a port and a port list and check that at most one is non-null. Additionally check that if either + is non-null, it is valid. + Return an error message indicating what is invalid if something isn't valid. + """ + if port is not None and port_list is not None: + return'Cannot specify both a source port and a source port list' + elif port is not None: + if isinstance(port, int): + if port not in range(0, 65535): + return 'Source port must in range from 0 to 65535' + else: + return 'Source port must be an integer' + elif port_list is not None: + try: + _ = iter(port_list) + except TypeError: + return 'Source port list must be an iterable {}'.format(port_list) + + for candidate_port in port_list: + err = check_port(candidate_port) + if err: + return err + return None diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/repr.py b/server/www/packages/packages-linux/x64/ldap3/utils/repr.py index b5379cd..8ac9d0b 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/repr.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/repr.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2015 - 2018 Giovanni Cannata +# Copyright 2015 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/tls_backport.py b/server/www/packages/packages-linux/x64/ldap3/utils/tls_backport.py index 122a4a8..252c141 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/tls_backport.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/tls_backport.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/utils/uri.py b/server/www/packages/packages-linux/x64/ldap3/utils/uri.py index eada1c7..02c8e5a 100644 --- a/server/www/packages/packages-linux/x64/ldap3/utils/uri.py +++ b/server/www/packages/packages-linux/x64/ldap3/utils/uri.py @@ -5,7 +5,7 @@ # # Author: Giovanni Cannata # -# Copyright 2014 - 2019 Giovanni Cannata +# Copyright 2014 - 2020 Giovanni Cannata # # This file is part of ldap3. # diff --git a/server/www/packages/packages-linux/x64/ldap3/version.py b/server/www/packages/packages-linux/x64/ldap3/version.py index 32faf96..531a578 100644 --- a/server/www/packages/packages-linux/x64/ldap3/version.py +++ b/server/www/packages/packages-linux/x64/ldap3/version.py @@ -1,9 +1,9 @@ # THIS FILE IS AUTO-GENERATED. PLEASE DO NOT MODIFY# version file for ldap3 -# generated on 2019-09-06 06:08:03.928047 +# generated on 2020-03-01 22:10:42.830758 # on system uname_result(system='Windows', node='ELITE10GC', release='10', version='10.0.18362', machine='AMD64', processor='Intel64 Family 6 Model 58 Stepping 9, GenuineIntel') -# with Python 3.7.4 - ('tags/v3.7.4:e09359112e', 'Jul 8 2019 20:34:20') - MSC v.1916 64 bit (AMD64) +# with Python 3.8.1 - ('tags/v3.8.1:1b293b6', 'Dec 18 2019 23:11:46') - MSC v.1916 64 bit (AMD64) # -__version__ = '2.6.1' +__version__ = '2.7' __author__ = 'Giovanni Cannata' __email__ = 'cannatag@gmail.com' __url__ = 'https://github.com/cannatag/ldap3' diff --git a/server/www/packages/packages-linux/x64/mako/__init__.py b/server/www/packages/packages-linux/x64/mako/__init__.py index 2f150a2..519c9f0 100644 --- a/server/www/packages/packages-linux/x64/mako/__init__.py +++ b/server/www/packages/packages-linux/x64/mako/__init__.py @@ -1,8 +1,8 @@ # mako/__init__.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php -__version__ = "1.1.0" +__version__ = '1.1.3' diff --git a/server/www/packages/packages-linux/x64/mako/_ast_util.py b/server/www/packages/packages-linux/x64/mako/_ast_util.py index 74c0851..bdcdbf6 100644 --- a/server/www/packages/packages-linux/x64/mako/_ast_util.py +++ b/server/www/packages/packages-linux/x64/mako/_ast_util.py @@ -1,5 +1,5 @@ # mako/_ast_util.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/ast.py b/server/www/packages/packages-linux/x64/mako/ast.py index 8f2cf2e..cfae280 100644 --- a/server/www/packages/packages-linux/x64/mako/ast.py +++ b/server/www/packages/packages-linux/x64/mako/ast.py @@ -1,5 +1,5 @@ # mako/ast.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/cache.py b/server/www/packages/packages-linux/x64/mako/cache.py index b68b74f..26aa93e 100644 --- a/server/www/packages/packages-linux/x64/mako/cache.py +++ b/server/www/packages/packages-linux/x64/mako/cache.py @@ -1,5 +1,5 @@ # mako/cache.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/cmd.py b/server/www/packages/packages-linux/x64/mako/cmd.py index 5d52dfb..c0f2c75 100644 --- a/server/www/packages/packages-linux/x64/mako/cmd.py +++ b/server/www/packages/packages-linux/x64/mako/cmd.py @@ -1,9 +1,10 @@ # mako/cmd.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php from argparse import ArgumentParser +import io from os.path import dirname from os.path import isfile import sys @@ -46,11 +47,17 @@ def cmdline(argv=None): parser.add_argument( "--output-encoding", default=None, help="force output encoding" ) + parser.add_argument( + "--output-file", + default=None, + help="Write to file upon successful render instead of stdout", + ) parser.add_argument("input", nargs="?", default="-") options = parser.parse_args(argv) output_encoding = options.output_encoding + output_file = options.output_file if options.input == "-": lookup_dirs = options.template_dir or ["."] @@ -80,9 +87,16 @@ def cmdline(argv=None): kw = dict([varsplit(var) for var in options.var]) try: - sys.stdout.write(template.render(**kw)) + rendered = template.render(**kw) except: _exit() + else: + if output_file: + io.open(output_file, "wt", encoding=output_encoding).write( + rendered + ) + else: + sys.stdout.write(rendered) if __name__ == "__main__": diff --git a/server/www/packages/packages-linux/x64/mako/codegen.py b/server/www/packages/packages-linux/x64/mako/codegen.py index 8f9eef4..a9ae55b 100644 --- a/server/www/packages/packages-linux/x64/mako/codegen.py +++ b/server/www/packages/packages-linux/x64/mako/codegen.py @@ -1,5 +1,5 @@ # mako/codegen.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/compat.py b/server/www/packages/packages-linux/x64/mako/compat.py index 4460fde..9aac98c 100644 --- a/server/www/packages/packages-linux/x64/mako/compat.py +++ b/server/www/packages/packages-linux/x64/mako/compat.py @@ -1,5 +1,5 @@ # mako/compat.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/exceptions.py b/server/www/packages/packages-linux/x64/mako/exceptions.py index b6388b1..ea7b20d 100644 --- a/server/www/packages/packages-linux/x64/mako/exceptions.py +++ b/server/www/packages/packages-linux/x64/mako/exceptions.py @@ -1,5 +1,5 @@ # mako/exceptions.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php @@ -166,9 +166,7 @@ class RichTraceback(object): module_source = info.code template_source = info.source template_filename = ( - info.template_filename - or info.template_uri - or filename + info.template_filename or info.template_uri or filename ) except KeyError: # A normal .py file (not a Template) diff --git a/server/www/packages/packages-linux/x64/mako/ext/autohandler.py b/server/www/packages/packages-linux/x64/mako/ext/autohandler.py index 55afb95..8b1324e 100644 --- a/server/www/packages/packages-linux/x64/mako/ext/autohandler.py +++ b/server/www/packages/packages-linux/x64/mako/ext/autohandler.py @@ -1,5 +1,5 @@ # ext/autohandler.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/ext/babelplugin.py b/server/www/packages/packages-linux/x64/mako/ext/babelplugin.py index dbe2cd0..76bbc5b 100644 --- a/server/www/packages/packages-linux/x64/mako/ext/babelplugin.py +++ b/server/www/packages/packages-linux/x64/mako/ext/babelplugin.py @@ -1,5 +1,5 @@ # ext/babelplugin.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/ext/beaker_cache.py b/server/www/packages/packages-linux/x64/mako/ext/beaker_cache.py index b415c9c..f65ce43 100644 --- a/server/www/packages/packages-linux/x64/mako/ext/beaker_cache.py +++ b/server/www/packages/packages-linux/x64/mako/ext/beaker_cache.py @@ -1,5 +1,5 @@ # ext/beaker_cache.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/ext/extract.py b/server/www/packages/packages-linux/x64/mako/ext/extract.py index 8a1bd54..ad2348a 100644 --- a/server/www/packages/packages-linux/x64/mako/ext/extract.py +++ b/server/www/packages/packages-linux/x64/mako/ext/extract.py @@ -1,5 +1,5 @@ # ext/extract.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/ext/linguaplugin.py b/server/www/packages/packages-linux/x64/mako/ext/linguaplugin.py index 955a5cb..0f6d165 100644 --- a/server/www/packages/packages-linux/x64/mako/ext/linguaplugin.py +++ b/server/www/packages/packages-linux/x64/mako/ext/linguaplugin.py @@ -1,5 +1,5 @@ # ext/linguaplugin.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/ext/preprocessors.py b/server/www/packages/packages-linux/x64/mako/ext/preprocessors.py index 1eeb7c5..9cc0621 100644 --- a/server/www/packages/packages-linux/x64/mako/ext/preprocessors.py +++ b/server/www/packages/packages-linux/x64/mako/ext/preprocessors.py @@ -1,5 +1,5 @@ # ext/preprocessors.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/ext/pygmentplugin.py b/server/www/packages/packages-linux/x64/mako/ext/pygmentplugin.py index 1734ccd..943a67a 100644 --- a/server/www/packages/packages-linux/x64/mako/ext/pygmentplugin.py +++ b/server/www/packages/packages-linux/x64/mako/ext/pygmentplugin.py @@ -1,5 +1,5 @@ # ext/pygmentplugin.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/ext/turbogears.py b/server/www/packages/packages-linux/x64/mako/ext/turbogears.py index fdb7741..722a6b4 100644 --- a/server/www/packages/packages-linux/x64/mako/ext/turbogears.py +++ b/server/www/packages/packages-linux/x64/mako/ext/turbogears.py @@ -1,5 +1,5 @@ # ext/turbogears.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/filters.py b/server/www/packages/packages-linux/x64/mako/filters.py index ba69fdd..0ae33ff 100644 --- a/server/www/packages/packages-linux/x64/mako/filters.py +++ b/server/www/packages/packages-linux/x64/mako/filters.py @@ -1,5 +1,5 @@ # mako/filters.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/lexer.py b/server/www/packages/packages-linux/x64/mako/lexer.py index dadd663..6226e26 100644 --- a/server/www/packages/packages-linux/x64/mako/lexer.py +++ b/server/www/packages/packages-linux/x64/mako/lexer.py @@ -1,5 +1,5 @@ # mako/lexer.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php @@ -201,7 +201,7 @@ class Lexer(object): """ if isinstance(text, compat.text_type): m = self._coding_re.match(text) - encoding = m and m.group(1) or known_encoding or "ascii" + encoding = m and m.group(1) or known_encoding or "utf-8" return encoding, text if text.startswith(codecs.BOM_UTF8): @@ -222,7 +222,7 @@ class Lexer(object): if m: parsed_encoding = m.group(1) else: - parsed_encoding = known_encoding or "ascii" + parsed_encoding = known_encoding or "utf-8" if decode_raw: try: diff --git a/server/www/packages/packages-linux/x64/mako/lookup.py b/server/www/packages/packages-linux/x64/mako/lookup.py index 93558b2..476326d 100644 --- a/server/www/packages/packages-linux/x64/mako/lookup.py +++ b/server/www/packages/packages-linux/x64/mako/lookup.py @@ -1,5 +1,5 @@ # mako/lookup.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/parsetree.py b/server/www/packages/packages-linux/x64/mako/parsetree.py index 2881da1..801e48a 100644 --- a/server/www/packages/packages-linux/x64/mako/parsetree.py +++ b/server/www/packages/packages-linux/x64/mako/parsetree.py @@ -1,5 +1,5 @@ # mako/parsetree.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/pygen.py b/server/www/packages/packages-linux/x64/mako/pygen.py index 603676d..947721f 100644 --- a/server/www/packages/packages-linux/x64/mako/pygen.py +++ b/server/www/packages/packages-linux/x64/mako/pygen.py @@ -1,5 +1,5 @@ # mako/pygen.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/pyparser.py b/server/www/packages/packages-linux/x64/mako/pyparser.py index e41c304..b16672d 100644 --- a/server/www/packages/packages-linux/x64/mako/pyparser.py +++ b/server/www/packages/packages-linux/x64/mako/pyparser.py @@ -1,5 +1,5 @@ # mako/pyparser.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/runtime.py b/server/www/packages/packages-linux/x64/mako/runtime.py index 0e7149b..465908e 100644 --- a/server/www/packages/packages-linux/x64/mako/runtime.py +++ b/server/www/packages/packages-linux/x64/mako/runtime.py @@ -1,5 +1,5 @@ # mako/runtime.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php diff --git a/server/www/packages/packages-linux/x64/mako/template.py b/server/www/packages/packages-linux/x64/mako/template.py index 937d15b..3fd0871 100644 --- a/server/www/packages/packages-linux/x64/mako/template.py +++ b/server/www/packages/packages-linux/x64/mako/template.py @@ -1,5 +1,5 @@ # mako/template.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php @@ -520,17 +520,17 @@ class ModuleTemplate(Template): """A Template which is constructed given an existing Python module. - e.g.:: + e.g.:: - t = Template("this is a template") - f = file("mymodule.py", "w") - f.write(t.code) - f.close() + t = Template("this is a template") + f = file("mymodule.py", "w") + f.write(t.code) + f.close() - import mymodule + import mymodule - t = ModuleTemplate(mymodule) - print t.render() + t = ModuleTemplate(mymodule) + print(t.render()) """ diff --git a/server/www/packages/packages-linux/x64/mako/util.py b/server/www/packages/packages-linux/x64/mako/util.py index 07f7531..16e3c72 100644 --- a/server/www/packages/packages-linux/x64/mako/util.py +++ b/server/www/packages/packages-linux/x64/mako/util.py @@ -1,9 +1,11 @@ # mako/util.py -# Copyright 2006-2019 the Mako authors and contributors +# Copyright 2006-2020 the Mako authors and contributors # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php +from __future__ import absolute_import +from ast import parse import codecs import collections import operator @@ -257,9 +259,7 @@ def parse_encoding(fp): m = _PYTHON_MAGIC_COMMENT_re.match(line1.decode("ascii", "ignore")) if not m: try: - import parser - - parser.suite(line1.decode("ascii", "ignore")) + parse(line1.decode("ascii", "ignore")) except (ImportError, SyntaxError): # Either it's a real syntax error, in which case the source # is not valid python source, or line2 is a continuation of diff --git a/server/www/packages/packages-linux/x64/psutil/__init__.py b/server/www/packages/packages-linux/x64/psutil/__init__.py index 3f38058..22bb46f 100644 --- a/server/www/packages/packages-linux/x64/psutil/__init__.py +++ b/server/www/packages/packages-linux/x64/psutil/__init__.py @@ -38,10 +38,15 @@ except ImportError: pwd = None from . import _common +from ._common import AccessDenied from ._common import deprecated_method +from ._common import Error from ._common import memoize from ._common import memoize_when_activated +from ._common import NoSuchProcess +from ._common import TimeoutExpired from ._common import wrap_numbers as _wrap_numbers +from ._common import ZombieProcess from ._compat import long from ._compat import PermissionError from ._compat import ProcessLookupError @@ -222,7 +227,7 @@ __all__ = [ __all__.extend(_psplatform.__extra__all__) __author__ = "Giampaolo Rodola'" -__version__ = "5.6.5" +__version__ = "5.7.0" version_info = tuple([int(num) for num in __version__.split('.')]) _timer = getattr(time, 'monotonic', time.time) @@ -254,112 +259,6 @@ if (int(__version__.replace('.', '')) != raise ImportError(msg) -# ===================================================================== -# --- Exceptions -# ===================================================================== - - -class Error(Exception): - """Base exception class. All other psutil exceptions inherit - from this one. - """ - - def __init__(self, msg=""): - Exception.__init__(self, msg) - self.msg = msg - - def __repr__(self): - ret = "psutil.%s %s" % (self.__class__.__name__, self.msg) - return ret.strip() - - __str__ = __repr__ - - -class NoSuchProcess(Error): - """Exception raised when a process with a certain PID doesn't - or no longer exists. - """ - - def __init__(self, pid, name=None, msg=None): - Error.__init__(self, msg) - self.pid = pid - self.name = name - self.msg = msg - if msg is None: - if name: - details = "(pid=%s, name=%s)" % (self.pid, repr(self.name)) - else: - details = "(pid=%s)" % self.pid - self.msg = "process no longer exists " + details - - -class ZombieProcess(NoSuchProcess): - """Exception raised when querying a zombie process. This is - raised on macOS, BSD and Solaris only, and not always: depending - on the query the OS may be able to succeed anyway. - On Linux all zombie processes are querable (hence this is never - raised). Windows doesn't have zombie processes. - """ - - def __init__(self, pid, name=None, ppid=None, msg=None): - NoSuchProcess.__init__(self, msg) - self.pid = pid - self.ppid = ppid - self.name = name - self.msg = msg - if msg is None: - args = ["pid=%s" % pid] - if name: - args.append("name=%s" % repr(self.name)) - if ppid: - args.append("ppid=%s" % self.ppid) - details = "(%s)" % ", ".join(args) - self.msg = "process still exists but it's a zombie " + details - - -class AccessDenied(Error): - """Exception raised when permission to perform an action is denied.""" - - def __init__(self, pid=None, name=None, msg=None): - Error.__init__(self, msg) - self.pid = pid - self.name = name - self.msg = msg - if msg is None: - if (pid is not None) and (name is not None): - self.msg = "(pid=%s, name=%s)" % (pid, repr(name)) - elif (pid is not None): - self.msg = "(pid=%s)" % self.pid - else: - self.msg = "" - - -class TimeoutExpired(Error): - """Raised on Process.wait(timeout) if timeout expires and process - is still alive. - """ - - def __init__(self, seconds, pid=None, name=None): - Error.__init__(self, "timeout after %s seconds" % seconds) - self.seconds = seconds - self.pid = pid - self.name = name - if (pid is not None) and (name is not None): - self.msg += " (pid=%s, name=%s)" % (pid, repr(name)) - elif (pid is not None): - self.msg += " (pid=%s)" % self.pid - - -# Push exception classes into platform specific module namespace. -_psplatform.NoSuchProcess = NoSuchProcess -_psplatform.ZombieProcess = ZombieProcess -_psplatform.AccessDenied = AccessDenied -_psplatform.TimeoutExpired = TimeoutExpired -if POSIX: - from . import _psposix - _psposix.TimeoutExpired = TimeoutExpired - - # ===================================================================== # --- Utils # ===================================================================== @@ -876,7 +775,7 @@ class Process(object): """ return self._proc.io_counters() - # Linux and Windows >= Vista only + # Linux and Windows if hasattr(_psplatform.Process, "ionice_get"): def ionice(self, ioclass=None, value=None): @@ -1312,16 +1211,7 @@ class Process(object): if POSIX: self._send_signal(sig) else: # pragma: no cover - if sig == signal.SIGTERM: - self._proc.kill() - # py >= 2.7 - elif sig in (getattr(signal, "CTRL_C_EVENT", object()), - getattr(signal, "CTRL_BREAK_EVENT", object())): - self._proc.send_signal(sig) - else: - raise ValueError( - "only SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals " - "are supported on Windows") + self._proc.send_signal(sig) @_assert_pid_not_reused def suspend(self): @@ -1369,6 +1259,8 @@ class Process(object): def wait(self, timeout=None): """Wait for process to terminate and, if process is a children of os.getpid(), also return its exit code, else None. + On Windows there's no such limitation (exit code is always + returned). If the process is already terminated immediately return None instead of raising NoSuchProcess. @@ -1633,6 +1525,7 @@ def wait_procs(procs, timeout=None, callback=None): pass else: if returncode is not None or not proc.is_running(): + # Set new Process instance attribute. proc.returncode = returncode gone.add(proc) if callback is not None: diff --git a/server/www/packages/packages-linux/x64/psutil/_common.py b/server/www/packages/packages-linux/x64/psutil/_common.py index 126d9d6..17b6eeb 100644 --- a/server/www/packages/packages-linux/x64/psutil/_common.py +++ b/server/www/packages/packages-linux/x64/psutil/_common.py @@ -7,7 +7,7 @@ # Note: this module is imported by setup.py so it should not import # psutil or third-party modules. -from __future__ import division +from __future__ import division, print_function import contextlib import errno @@ -23,6 +23,7 @@ from collections import namedtuple from socket import AF_INET from socket import SOCK_DGRAM from socket import SOCK_STREAM + try: from socket import AF_INET6 except ImportError: @@ -37,14 +38,14 @@ if sys.version_info >= (3, 4): else: enum = None + # can't take it from _common.py as this script is imported by setup.py PY3 = sys.version_info[0] == 3 __all__ = [ - # constants + # OS constants 'FREEBSD', 'BSD', 'LINUX', 'NETBSD', 'OPENBSD', 'MACOS', 'OSX', 'POSIX', 'SUNOS', 'WINDOWS', - 'ENCODING', 'ENCODING_ERRS', 'AF_INET6', # connection constants 'CONN_CLOSE', 'CONN_CLOSE_WAIT', 'CONN_CLOSING', 'CONN_ESTABLISHED', 'CONN_FIN_WAIT1', 'CONN_FIN_WAIT2', 'CONN_LAST_ACK', 'CONN_LISTEN', @@ -56,6 +57,8 @@ __all__ = [ 'STATUS_RUNNING', 'STATUS_SLEEPING', 'STATUS_STOPPED', 'STATUS_SUSPENDED', 'STATUS_TRACING_STOP', 'STATUS_WAITING', 'STATUS_WAKE_KILL', 'STATUS_WAKING', 'STATUS_ZOMBIE', 'STATUS_PARKED', + # other constants + 'ENCODING', 'ENCODING_ERRS', 'AF_INET6', # named tuples 'pconn', 'pcputimes', 'pctxsw', 'pgids', 'pio', 'pionice', 'popenfile', 'pthread', 'puids', 'sconn', 'scpustats', 'sdiskio', 'sdiskpart', @@ -64,7 +67,9 @@ __all__ = [ 'conn_tmap', 'deprecated_method', 'isfile_strict', 'memoize', 'parse_environ_block', 'path_exists_strict', 'usage_percent', 'supports_ipv6', 'sockfam_to_enum', 'socktype_to_enum', "wrap_numbers", - 'bytes2human', 'conn_to_ntuple', + 'bytes2human', 'conn_to_ntuple', 'debug', + # shell utils + 'hilite', 'term_supports_colors', 'print_color', ] @@ -258,6 +263,110 @@ if AF_UNIX is not None: }) +# ===================================================================== +# --- Exceptions +# ===================================================================== + + +class Error(Exception): + """Base exception class. All other psutil exceptions inherit + from this one. + """ + __module__ = 'psutil' + + def __init__(self, msg=""): + Exception.__init__(self, msg) + self.msg = msg + + def __repr__(self): + ret = "psutil.%s %s" % (self.__class__.__name__, self.msg) + return ret.strip() + + __str__ = __repr__ + + +class NoSuchProcess(Error): + """Exception raised when a process with a certain PID doesn't + or no longer exists. + """ + __module__ = 'psutil' + + def __init__(self, pid, name=None, msg=None): + Error.__init__(self, msg) + self.pid = pid + self.name = name + self.msg = msg + if msg is None: + if name: + details = "(pid=%s, name=%s)" % (self.pid, repr(self.name)) + else: + details = "(pid=%s)" % self.pid + self.msg = "process no longer exists " + details + + def __path__(self): + return 'xxx' + + +class ZombieProcess(NoSuchProcess): + """Exception raised when querying a zombie process. This is + raised on macOS, BSD and Solaris only, and not always: depending + on the query the OS may be able to succeed anyway. + On Linux all zombie processes are querable (hence this is never + raised). Windows doesn't have zombie processes. + """ + __module__ = 'psutil' + + def __init__(self, pid, name=None, ppid=None, msg=None): + NoSuchProcess.__init__(self, msg) + self.pid = pid + self.ppid = ppid + self.name = name + self.msg = msg + if msg is None: + args = ["pid=%s" % pid] + if name: + args.append("name=%s" % repr(self.name)) + if ppid: + args.append("ppid=%s" % self.ppid) + details = "(%s)" % ", ".join(args) + self.msg = "process still exists but it's a zombie " + details + + +class AccessDenied(Error): + """Exception raised when permission to perform an action is denied.""" + __module__ = 'psutil' + + def __init__(self, pid=None, name=None, msg=None): + Error.__init__(self, msg) + self.pid = pid + self.name = name + self.msg = msg + if msg is None: + if (pid is not None) and (name is not None): + self.msg = "(pid=%s, name=%s)" % (pid, repr(name)) + elif (pid is not None): + self.msg = "(pid=%s)" % self.pid + else: + self.msg = "" + + +class TimeoutExpired(Error): + """Raised on Process.wait(timeout) if timeout expires and process + is still alive. + """ + __module__ = 'psutil' + + def __init__(self, seconds, pid=None, name=None): + Error.__init__(self, "timeout after %s seconds" % seconds) + self.seconds = seconds + self.pid = pid + self.name = name + if (pid is not None) and (name is not None): + self.msg += " (pid=%s, name=%s)" % (pid, repr(name)) + elif (pid is not None): + self.msg += " (pid=%s)" % self.pid + + # =================================================================== # --- utils # =================================================================== @@ -649,3 +758,89 @@ if PY3: else: def decode(s): return s + + +# ===================================================================== +# --- shell utils +# ===================================================================== + + +@memoize +def term_supports_colors(file=sys.stdout): + if os.name == 'nt': + return True + try: + import curses + assert file.isatty() + curses.setupterm() + assert curses.tigetnum("colors") > 0 + except Exception: + return False + else: + return True + + +def hilite(s, color="green", bold=False): + """Return an highlighted version of 'string'.""" + if not term_supports_colors(): + return s + attr = [] + colors = dict(green='32', red='91', brown='33') + colors[None] = '29' + try: + color = colors[color] + except KeyError: + raise ValueError("invalid color %r; choose between %s" % ( + list(colors.keys()))) + attr.append(color) + if bold: + attr.append('1') + return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), s) + + +def print_color(s, color="green", bold=False, file=sys.stdout): + """Print a colorized version of string.""" + if not term_supports_colors(): + print(s, file=file) + elif POSIX: + print(hilite(s, color, bold), file=file) + else: + import ctypes + + DEFAULT_COLOR = 7 + GetStdHandle = ctypes.windll.Kernel32.GetStdHandle + SetConsoleTextAttribute = \ + ctypes.windll.Kernel32.SetConsoleTextAttribute + + colors = dict(green=2, red=4, brown=6) + colors[None] = DEFAULT_COLOR + try: + color = colors[color] + except KeyError: + raise ValueError("invalid color %r; choose between %r" % ( + color, list(colors.keys()))) + if bold and color <= 7: + color += 8 + + handle_id = -12 if file is sys.stderr else -11 + GetStdHandle.restype = ctypes.c_ulong + handle = GetStdHandle(handle_id) + SetConsoleTextAttribute(handle, color) + try: + print(s, file=file) + finally: + SetConsoleTextAttribute(handle, DEFAULT_COLOR) + + +if bool(os.getenv('PSUTIL_DEBUG', 0)): + import inspect + + def debug(msg): + """If PSUTIL_DEBUG env var is set, print a debug message to stderr.""" + fname, lineno, func_name, lines, index = inspect.getframeinfo( + inspect.currentframe().f_back) + print("psutil-debug [%s:%s]> %s" % (fname, lineno, msg), + file=sys.stderr) +else: + def debug(msg): + pass diff --git a/server/www/packages/packages-linux/x64/psutil/_compat.py b/server/www/packages/packages-linux/x64/psutil/_compat.py index 07ab909..a937138 100644 --- a/server/www/packages/packages-linux/x64/psutil/_compat.py +++ b/server/www/packages/packages-linux/x64/psutil/_compat.py @@ -54,6 +54,9 @@ if PY3: else: # https://github.com/PythonCharmers/python-future/blob/exceptions/ # src/future/types/exceptions/pep3151.py + import platform + + _singleton = object() def instance_checking_exception(base_exception=Exception): def wrapped(instance_checker): @@ -84,28 +87,38 @@ else: @instance_checking_exception(EnvironmentError) def FileNotFoundError(inst): - return getattr(inst, 'errno', object()) == errno.ENOENT + return getattr(inst, 'errno', _singleton) == errno.ENOENT @instance_checking_exception(EnvironmentError) def ProcessLookupError(inst): - return getattr(inst, 'errno', object()) == errno.ESRCH + return getattr(inst, 'errno', _singleton) == errno.ESRCH @instance_checking_exception(EnvironmentError) def PermissionError(inst): - return getattr(inst, 'errno', object()) in ( + return getattr(inst, 'errno', _singleton) in ( errno.EACCES, errno.EPERM) @instance_checking_exception(EnvironmentError) def InterruptedError(inst): - return getattr(inst, 'errno', object()) == errno.EINTR + return getattr(inst, 'errno', _singleton) == errno.EINTR @instance_checking_exception(EnvironmentError) def ChildProcessError(inst): - return getattr(inst, 'errno', object()) == errno.ECHILD + return getattr(inst, 'errno', _singleton) == errno.ECHILD @instance_checking_exception(EnvironmentError) def FileExistsError(inst): - return getattr(inst, 'errno', object()) == errno.EEXIST + return getattr(inst, 'errno', _singleton) == errno.EEXIST + + if platform.python_implementation() != "CPython": + try: + raise OSError(errno.EEXIST, "perm") + except FileExistsError: + pass + except OSError: + raise RuntimeError( + "broken / incompatible Python implementation, see: " + "https://github.com/giampaolo/psutil/issues/1659") # --- stdlib additions diff --git a/server/www/packages/packages-linux/x64/psutil/_psaix.py b/server/www/packages/packages-linux/x64/psutil/_psaix.py index 79e3be1..994366a 100644 --- a/server/www/packages/packages-linux/x64/psutil/_psaix.py +++ b/server/www/packages/packages-linux/x64/psutil/_psaix.py @@ -18,13 +18,16 @@ from . import _common from . import _psposix from . import _psutil_aix as cext from . import _psutil_posix as cext_posix +from ._common import AccessDenied from ._common import conn_to_ntuple from ._common import get_procfs_path from ._common import memoize_when_activated from ._common import NIC_DUPLEX_FULL from ._common import NIC_DUPLEX_HALF from ._common import NIC_DUPLEX_UNKNOWN +from ._common import NoSuchProcess from ._common import usage_percent +from ._common import ZombieProcess from ._compat import FileNotFoundError from ._compat import PermissionError from ._compat import ProcessLookupError @@ -79,13 +82,6 @@ proc_info_map = dict( status=6, ttynr=7) -# These objects get set on "import psutil" from the __init__.py -# file, see: https://github.com/giampaolo/psutil/issues/1402 -NoSuchProcess = None -ZombieProcess = None -AccessDenied = None -TimeoutExpired = None - # ===================================================================== # --- named tuples diff --git a/server/www/packages/packages-linux/x64/psutil/_psbsd.py b/server/www/packages/packages-linux/x64/psutil/_psbsd.py index 2f41dc0..49ad1e9 100644 --- a/server/www/packages/packages-linux/x64/psutil/_psbsd.py +++ b/server/www/packages/packages-linux/x64/psutil/_psbsd.py @@ -16,14 +16,17 @@ from . import _common from . import _psposix from . import _psutil_bsd as cext from . import _psutil_posix as cext_posix +from ._common import AccessDenied from ._common import conn_tmap from ._common import conn_to_ntuple from ._common import FREEBSD from ._common import memoize from ._common import memoize_when_activated from ._common import NETBSD +from ._common import NoSuchProcess from ._common import OPENBSD from ._common import usage_percent +from ._common import ZombieProcess from ._compat import FileNotFoundError from ._compat import PermissionError from ._compat import ProcessLookupError @@ -135,13 +138,6 @@ kinfo_proc_map = dict( name=24, ) -# These objects get set on "import psutil" from the __init__.py -# file, see: https://github.com/giampaolo/psutil/issues/1402 -NoSuchProcess = None -ZombieProcess = None -AccessDenied = None -TimeoutExpired = None - # ===================================================================== # --- named tuples @@ -626,6 +622,8 @@ class Process(object): @wrap_exceptions def exe(self): if FREEBSD: + if self.pid == 0: + return '' # else NSP return cext.proc_exe(self.pid) elif NETBSD: if self.pid == 0: @@ -641,7 +639,7 @@ class Process(object): # cmdline arg (may return None). cmdline = self.cmdline() if cmdline: - return which(cmdline[0]) + return which(cmdline[0]) or "" else: return "" diff --git a/server/www/packages/packages-linux/x64/psutil/_pslinux.py b/server/www/packages/packages-linux/x64/psutil/_pslinux.py index d29ccc8..9e32f25 100644 --- a/server/www/packages/packages-linux/x64/psutil/_pslinux.py +++ b/server/www/packages/packages-linux/x64/psutil/_pslinux.py @@ -25,6 +25,8 @@ from . import _common from . import _psposix from . import _psutil_linux as cext from . import _psutil_posix as cext_posix +from ._common import AccessDenied +from ._common import debug from ._common import decode from ._common import get_procfs_path from ._common import isfile_strict @@ -33,12 +35,14 @@ from ._common import memoize_when_activated from ._common import NIC_DUPLEX_FULL from ._common import NIC_DUPLEX_HALF from ._common import NIC_DUPLEX_UNKNOWN +from ._common import NoSuchProcess from ._common import open_binary from ._common import open_text from ._common import parse_environ_block from ._common import path_exists_strict from ._common import supports_ipv6 from ._common import usage_percent +from ._common import ZombieProcess from ._compat import b from ._compat import basestring from ._compat import FileNotFoundError @@ -161,13 +165,6 @@ TCP_STATUSES = { "0B": _common.CONN_CLOSING } -# These objects get set on "import psutil" from the __init__.py -# file, see: https://github.com/giampaolo/psutil/issues/1402 -NoSuchProcess = None -ZombieProcess = None -AccessDenied = None -TimeoutExpired = None - # ===================================================================== # --- named tuples @@ -755,6 +752,8 @@ class Connections: """ def __init__(self): + # The string represents the basename of the corresponding + # /proc/net/{proto_name} file. tcp4 = ("tcp", socket.AF_INET, socket.SOCK_STREAM) tcp6 = ("tcp6", socket.AF_INET6, socket.SOCK_STREAM) udp4 = ("udp", socket.AF_INET, socket.SOCK_DGRAM) @@ -959,15 +958,14 @@ class Connections: else: inodes = self.get_all_inodes() ret = set() - for f, family, type_ in self.tmap[kind]: + for proto_name, family, type_ in self.tmap[kind]: + path = "%s/net/%s" % (self._procfs_path, proto_name) if family in (socket.AF_INET, socket.AF_INET6): ls = self.process_inet( - "%s/net/%s" % (self._procfs_path, f), - family, type_, inodes, filter_pid=pid) + path, family, type_, inodes, filter_pid=pid) else: ls = self.process_unix( - "%s/net/%s" % (self._procfs_path, f), - family, inodes, filter_pid=pid) + path, family, inodes, filter_pid=pid) for fd, family, type_, laddr, raddr, status, bound_pid in ls: if pid: conn = _common.pconn(fd, family, type_, laddr, raddr, @@ -1070,6 +1068,7 @@ def disk_io_counters(perdisk=False): # "3 1 hda1 8 8 8 8" # 4.18+ has 4 fields added: # "3 0 hda 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0" + # 5.5 has 2 more fields. # See: # https://www.kernel.org/doc/Documentation/iostats.txt # https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats @@ -1084,7 +1083,7 @@ def disk_io_counters(perdisk=False): reads = int(fields[2]) (reads_merged, rbytes, rtime, writes, writes_merged, wbytes, wtime, _, busy_time, _) = map(int, fields[4:14]) - elif flen == 14 or flen == 18: + elif flen == 14 or flen >= 18: # Linux 2.6+, line referring to a disk name = fields[2] (reads, reads_merged, rbytes, rtime, writes, writes_merged, @@ -1108,7 +1107,7 @@ def disk_io_counters(perdisk=False): fields = f.read().strip().split() name = os.path.basename(root) (reads, reads_merged, rbytes, rtime, writes, writes_merged, - wbytes, wtime, _, busy_time, _) = map(int, fields) + wbytes, wtime, _, busy_time) = map(int, fields[:10]) yield (name, reads, writes, rbytes, wbytes, rtime, wtime, reads_merged, writes_merged, busy_time) @@ -1179,6 +1178,7 @@ def disk_partitions(all=False): continue ntuple = _common.sdiskpart(device, mountpoint, fstype, opts) retlist.append(ntuple) + return retlist @@ -1206,6 +1206,8 @@ def sensors_temperatures(): # https://github.com/giampaolo/psutil/issues/971 # https://github.com/nicolargo/glances/issues/1060 basenames.extend(glob.glob('/sys/class/hwmon/hwmon*/device/temp*_*')) + basenames.extend(glob.glob( + '/sys/devices/platform/coretemp.*/hwmon/hwmon*/temp*_*')) basenames = sorted(set([x.split('_')[0] for x in basenames])) for base in basenames: @@ -1214,7 +1216,7 @@ def sensors_temperatures(): current = float(cat(path)) / 1000.0 path = os.path.join(os.path.dirname(base), 'name') unit_name = cat(path, binary=False) - except (IOError, OSError, ValueError) as err: + except (IOError, OSError, ValueError): # A lot of things can go wrong here, so let's just skip the # whole entry. Sure thing is Linux's /sys/class/hwmon really # is a stinky broken mess. @@ -1223,8 +1225,6 @@ def sensors_temperatures(): # https://github.com/giampaolo/psutil/issues/1129 # https://github.com/giampaolo/psutil/issues/1245 # https://github.com/giampaolo/psutil/issues/1323 - warnings.warn("ignoring %r for file %r" % (err, path), - RuntimeWarning) continue high = cat(base + '_max', fallback=None) @@ -1256,8 +1256,7 @@ def sensors_temperatures(): path = os.path.join(base, 'type') unit_name = cat(path, binary=False) except (IOError, OSError, ValueError) as err: - warnings.warn("ignoring %r for file %r" % (err, path), - RuntimeWarning) + debug("ignoring %r for file %r" % (err, path)) continue trip_paths = glob.glob(base + '/trip_point*') @@ -1649,7 +1648,13 @@ class Process(object): sep = '\x00' if data.endswith('\x00') else ' ' if data.endswith(sep): data = data[:-1] - return data.split(sep) + cmdline = data.split(sep) + # Sometimes last char is a null byte '\0' but the args are + # separated by spaces, see: https://github.com/giampaolo/psutil/ + # issues/1179#issuecomment-552984549 + if sep == '\x00' and len(cmdline) == 1 and ' ' in data: + cmdline = data.split(' ') + return cmdline @wrap_exceptions def environ(self): @@ -1839,7 +1844,7 @@ class Process(object): path = path[:-10] ls.append(( decode(addr), decode(perms), path, - data[b'Rss:'], + data.get(b'Rss:', 0), data.get(b'Size:', 0), data.get(b'Pss:', 0), data.get(b'Shared_Clean:', 0), diff --git a/server/www/packages/packages-linux/x64/psutil/_psosx.py b/server/www/packages/packages-linux/x64/psutil/_psosx.py index 7f28447..e429649 100644 --- a/server/www/packages/packages-linux/x64/psutil/_psosx.py +++ b/server/www/packages/packages-linux/x64/psutil/_psosx.py @@ -14,14 +14,17 @@ from . import _common from . import _psposix from . import _psutil_osx as cext from . import _psutil_posix as cext_posix +from ._common import AccessDenied from ._common import conn_tmap from ._common import conn_to_ntuple from ._common import isfile_strict from ._common import memoize_when_activated +from ._common import NoSuchProcess from ._common import parse_environ_block +from ._common import usage_percent +from ._common import ZombieProcess from ._compat import PermissionError from ._compat import ProcessLookupError -from ._common import usage_percent __extra__all__ = [] @@ -83,13 +86,6 @@ pidtaskinfo_map = dict( volctxsw=7, ) -# These objects get set on "import psutil" from the __init__.py -# file, see: https://github.com/giampaolo/psutil/issues/1402 -NoSuchProcess = None -ZombieProcess = None -AccessDenied = None -TimeoutExpired = None - # ===================================================================== # --- named tuples diff --git a/server/www/packages/packages-linux/x64/psutil/_psposix.py b/server/www/packages/packages-linux/x64/psutil/_psposix.py index 2457022..88213ef 100644 --- a/server/www/packages/packages-linux/x64/psutil/_psposix.py +++ b/server/www/packages/packages-linux/x64/psutil/_psposix.py @@ -11,6 +11,7 @@ import time from ._common import memoize from ._common import sdiskusage +from ._common import TimeoutExpired from ._common import usage_percent from ._compat import ChildProcessError from ._compat import FileNotFoundError @@ -24,11 +25,6 @@ from ._compat import unicode __all__ = ['pid_exists', 'wait_pid', 'disk_usage', 'get_terminal_map'] -# This object gets set on "import psutil" from the __init__.py -# file, see: https://github.com/giampaolo/psutil/issues/1402 -TimeoutExpired = None - - def pid_exists(pid): """Check whether pid exists in the current process table.""" if pid == 0: diff --git a/server/www/packages/packages-linux/x64/psutil/_pssunos.py b/server/www/packages/packages-linux/x64/psutil/_pssunos.py index 2aa2a86..62362b8 100644 --- a/server/www/packages/packages-linux/x64/psutil/_pssunos.py +++ b/server/www/packages/packages-linux/x64/psutil/_pssunos.py @@ -17,13 +17,17 @@ from . import _common from . import _psposix from . import _psutil_posix as cext_posix from . import _psutil_sunos as cext +from ._common import AccessDenied from ._common import AF_INET6 +from ._common import debug from ._common import get_procfs_path from ._common import isfile_strict from ._common import memoize_when_activated +from ._common import NoSuchProcess from ._common import sockfam_to_enum from ._common import socktype_to_enum from ._common import usage_percent +from ._common import ZombieProcess from ._compat import b from ._compat import FileNotFoundError from ._compat import PermissionError @@ -87,13 +91,6 @@ proc_info_map = dict( gid=10, egid=11) -# These objects get set on "import psutil" from the __init__.py -# file, see: https://github.com/giampaolo/psutil/issues/1402 -NoSuchProcess = None -ZombieProcess = None -AccessDenied = None -TimeoutExpired = None - # ===================================================================== # --- named tuples @@ -229,7 +226,12 @@ def disk_partitions(all=False): # Differently from, say, Linux, we don't have a list of # common fs types so the best we can do, AFAIK, is to # filter by filesystem having a total size > 0. - if not disk_usage(mountpoint).total: + try: + if not disk_usage(mountpoint).total: + continue + except OSError as err: + # https://github.com/giampaolo/psutil/issues/1674 + debug("skipping %r: %r" % (mountpoint, err)) continue ntuple = _common.sdiskpart(device, mountpoint, fstype, opts) retlist.append(ntuple) @@ -400,6 +402,9 @@ class Process(object): @wrap_exceptions @memoize_when_activated def _proc_basic_info(self): + if self.pid == 0 and not \ + os.path.exists('%s/%s/psinfo' % (self._procfs_path, self.pid)): + raise AccessDenied(self.pid) ret = cext.proc_basic_info(self.pid, self._procfs_path) assert len(ret) == len(proc_info_map) return ret diff --git a/server/www/packages/packages-linux/x64/psutil/_psutil_linux.cpython-37m-x86_64-linux-gnu.so b/server/www/packages/packages-linux/x64/psutil/_psutil_linux.cpython-37m-x86_64-linux-gnu.so index 3ff94fac9fd3e2740e4e51a8317d2a162d4831d9..61bc4a05e45802c65c89c0c2a995231fa94c90c8 100755 GIT binary patch literal 89840 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 Dyqscm literal 89424 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 QZm{Bz4NcVre*FCZ8$nVmg#Z8m diff --git a/server/www/packages/packages-linux/x64/psutil/_psutil_posix.cpython-37m-x86_64-linux-gnu.so b/server/www/packages/packages-linux/x64/psutil/_psutil_posix.cpython-37m-x86_64-linux-gnu.so index 6f33c93b5f31275778201970b151c21d4d74ffce..ed97a25099bea5cd6fc132e9df1ea888f2f5bfdd 100755 GIT binary patch literal 48536 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 XR@gvW>7K#lFMdc#tV=OC1r`4b2O%@E literal 48184 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 diff --git a/server/www/packages/packages-linux/x64/psutil/_pswindows.py b/server/www/packages/packages-linux/x64/psutil/_pswindows.py index 636b0af..99d5d71 100644 --- a/server/www/packages/packages-linux/x64/psutil/_pswindows.py +++ b/server/www/packages/packages-linux/x64/psutil/_pswindows.py @@ -8,38 +8,24 @@ import contextlib import errno import functools import os +import signal import sys import time from collections import namedtuple from . import _common -try: - from . import _psutil_windows as cext -except ImportError as err: - if str(err).lower().startswith("dll load failed") and \ - sys.getwindowsversion()[0] < 6: - # We may get here if: - # 1) we are on an old Windows version - # 2) psutil was installed via pip + wheel - # See: https://github.com/giampaolo/psutil/issues/811 - # It must be noted that psutil can still (kind of) work - # on outdated systems if compiled / installed from sources, - # but if we get here it means this this was a wheel (or exe). - msg = "this Windows version is too old (< Windows Vista); " - msg += "psutil 3.4.2 is the latest version which supports Windows " - msg += "2000, XP and 2003 server" - raise RuntimeError(msg) - else: - raise - +from ._common import AccessDenied from ._common import conn_tmap from ._common import conn_to_ntuple +from ._common import debug from ._common import ENCODING from ._common import ENCODING_ERRS from ._common import isfile_strict from ._common import memoize from ._common import memoize_when_activated +from ._common import NoSuchProcess from ._common import parse_environ_block +from ._common import TimeoutExpired from ._common import usage_percent from ._compat import long from ._compat import lru_cache @@ -53,6 +39,22 @@ from ._psutil_windows import IDLE_PRIORITY_CLASS from ._psutil_windows import NORMAL_PRIORITY_CLASS from ._psutil_windows import REALTIME_PRIORITY_CLASS +try: + from . import _psutil_windows as cext +except ImportError as err: + if str(err).lower().startswith("dll load failed") and \ + sys.getwindowsversion()[0] < 6: + # We may get here if: + # 1) we are on an old Windows version + # 2) psutil was installed via pip + wheel + # See: https://github.com/giampaolo/psutil/issues/811 + msg = "this Windows version is too old (< Windows Vista); " + msg += "psutil 3.4.2 is the latest version which supports Windows " + msg += "2000, XP and 2003 server" + raise RuntimeError(msg) + else: + raise + if sys.version_info >= (3, 4): import enum else: @@ -78,10 +80,8 @@ __extra__all__ = [ # ===================================================================== CONN_DELETE_TCB = "DELETE_TCB" -HAS_PROC_IO_PRIORITY = hasattr(cext, "proc_io_priority_get") -HAS_GETLOADAVG = hasattr(cext, "getloadavg") ERROR_PARTIAL_COPY = 299 - +PYPY = '__pypy__' in sys.builtin_module_names if enum is None: AF_LINK = -1 @@ -154,35 +154,6 @@ pinfo_map = dict( mem_private=21, ) -# These objects get set on "import psutil" from the __init__.py -# file, see: https://github.com/giampaolo/psutil/issues/1402 -NoSuchProcess = None -ZombieProcess = None -AccessDenied = None -TimeoutExpired = None - -# More values at: https://stackoverflow.com/a/20804735/376587 -WIN_10 = (10, 0) -WIN_8 = (6, 2) -WIN_7 = (6, 1) -WIN_SERVER_2008 = (6, 0) -WIN_VISTA = (6, 0) -WIN_SERVER_2003 = (5, 2) -WIN_XP = (5, 1) - - -@lru_cache() -def get_winver(): - """Usage: - >>> if get_winver() <= WIN_VISTA: - ... ... - """ - wv = sys.getwindowsversion() - return (wv.major, wv.minor) - - -IS_WIN_XP = get_winver() < WIN_VISTA - # ===================================================================== # --- named tuples @@ -227,7 +198,8 @@ def convert_dos_path(s): """ rawdrive = '\\'.join(s.split('\\')[:3]) driveletter = cext.win32_QueryDosDevice(rawdrive) - return os.path.join(driveletter, s[len(rawdrive):]) + remainder = s[len(rawdrive):] + return os.path.join(driveletter, remainder) def py2_strencode(s): @@ -354,21 +326,21 @@ def cpu_freq(): return [_common.scpufreq(float(curr), min_, float(max_))] -if HAS_GETLOADAVG: - _loadavg_inititialized = False +_loadavg_inititialized = False - def getloadavg(): - """Return the number of processes in the system run queue averaged - over the last 1, 5, and 15 minutes respectively as a tuple""" - global _loadavg_inititialized - if not _loadavg_inititialized: - cext.init_loadavg_counter() - _loadavg_inititialized = True +def getloadavg(): + """Return the number of processes in the system run queue averaged + over the last 1, 5, and 15 minutes respectively as a tuple""" + global _loadavg_inititialized - # Drop to 2 decimal points which is what Linux does - raw_loads = cext.getloadavg() - return tuple([round(load, 2) for load in raw_loads]) + if not _loadavg_inititialized: + cext.init_loadavg_counter() + _loadavg_inititialized = True + + # Drop to 2 decimal points which is what Linux does + raw_loads = cext.getloadavg() + return tuple([round(load, 2) for load in raw_loads]) # ===================================================================== @@ -749,14 +721,15 @@ class Process(object): # --- oneshot() stuff def oneshot_enter(self): - self.oneshot_info.cache_activate(self) + self._proc_info.cache_activate(self) + self.exe.cache_activate(self) def oneshot_exit(self): - self.oneshot_info.cache_deactivate(self) + self._proc_info.cache_deactivate(self) + self.exe.cache_deactivate(self) - @wrap_exceptions @memoize_when_activated - def oneshot_info(self): + def _proc_info(self): """Return multiple information about this process as a raw tuple. """ @@ -764,7 +737,6 @@ class Process(object): assert len(ret) == len(pinfo_map) return ret - @wrap_exceptions def name(self): """Return process name, which on Windows is always the final part of the executable. @@ -773,30 +745,30 @@ class Process(object): # and process-hacker. if self.pid == 0: return "System Idle Process" - elif self.pid == 4: + if self.pid == 4: return "System" - else: - try: - # Note: this will fail with AD for most PIDs owned - # by another user but it's faster. - return py2_strencode(os.path.basename(self.exe())) - except AccessDenied: - return py2_strencode(cext.proc_name(self.pid)) + return os.path.basename(self.exe()) @wrap_exceptions + @memoize_when_activated def exe(self): - # Dual implementation, see: - # https://github.com/giampaolo/psutil/pull/1413 - if not IS_WIN_XP: - exe = cext.proc_exe(self.pid) + if PYPY: + try: + exe = cext.proc_exe(self.pid) + except WindowsError as err: + # 24 = ERROR_TOO_MANY_OPEN_FILES. Not sure why this happens + # (perhaps PyPy's JIT delaying garbage collection of files?). + if err.errno == 24: + debug("%r forced into AccessDenied" % err) + raise AccessDenied(self.pid, self._name) + raise else: - if self.pid in (0, 4): - # https://github.com/giampaolo/psutil/issues/414 - # https://github.com/giampaolo/psutil/issues/528 - raise AccessDenied(self.pid, self._name) exe = cext.proc_exe(self.pid) - exe = convert_dos_path(exe) - return py2_strencode(exe) + if not PY3: + exe = py2_strencode(exe) + if exe.startswith('\\'): + return convert_dos_path(exe) + return exe # May be "Registry", "MemCompression", ... @wrap_exceptions @retry_error_partial_copy @@ -839,7 +811,7 @@ class Process(object): if is_permission_err(err): # TODO: the C ext can probably be refactored in order # to get this from cext.proc_info() - info = self.oneshot_info() + info = self._proc_info() return ( info[pinfo_map['num_page_faults']], info[pinfo_map['peak_wset']], @@ -882,7 +854,6 @@ class Process(object): for addr, perm, path, rss in raw: path = convert_dos_path(path) if not PY3: - assert isinstance(path, unicode), type(path) path = py2_strencode(path) addr = hex(addr) yield (addr, perm, path, rss) @@ -893,7 +864,16 @@ class Process(object): @wrap_exceptions def send_signal(self, sig): - os.kill(self.pid, sig) + if sig == signal.SIGTERM: + cext.proc_kill(self.pid) + # py >= 2.7 + elif sig in (getattr(signal, "CTRL_C_EVENT", object()), + getattr(signal, "CTRL_BREAK_EVENT", object())): + os.kill(self.pid, sig) + else: + raise ValueError( + "only SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals " + "are supported on Windows") @wrap_exceptions def wait(self, timeout=None): @@ -947,19 +927,19 @@ class Process(object): @wrap_exceptions def create_time(self): - # special case for kernel process PIDs; return system boot time - if self.pid in (0, 4): - return boot_time() + # Note: proc_times() not put under oneshot() 'cause create_time() + # is already cached by the main Process class. try: - return cext.proc_create_time(self.pid) + user, system, created = cext.proc_times(self.pid) + return created except OSError as err: if is_permission_err(err): - return self.oneshot_info()[pinfo_map['create_time']] + return self._proc_info()[pinfo_map['create_time']] raise @wrap_exceptions def num_threads(self): - return self.oneshot_info()[pinfo_map['num_threads']] + return self._proc_info()[pinfo_map['num_threads']] @wrap_exceptions def threads(self): @@ -973,11 +953,11 @@ class Process(object): @wrap_exceptions def cpu_times(self): try: - user, system = cext.proc_cpu_times(self.pid) + user, system, created = cext.proc_times(self.pid) except OSError as err: if not is_permission_err(err): raise - info = self.oneshot_info() + info = self._proc_info() user = info[pinfo_map['user_time']] system = info[pinfo_map['kernel_time']] # Children user/system times are not retrievable (set to 0). @@ -1035,23 +1015,21 @@ class Process(object): def nice_set(self, value): return cext.proc_priority_set(self.pid, value) - # available on Windows >= Vista - if HAS_PROC_IO_PRIORITY: - @wrap_exceptions - def ionice_get(self): - ret = cext.proc_io_priority_get(self.pid) - if enum is not None: - ret = IOPriority(ret) - return ret + @wrap_exceptions + def ionice_get(self): + ret = cext.proc_io_priority_get(self.pid) + if enum is not None: + ret = IOPriority(ret) + return ret - @wrap_exceptions - def ionice_set(self, ioclass, value): - if value: - raise TypeError("value argument not accepted on Windows") - if ioclass not in (IOPRIO_VERYLOW, IOPRIO_LOW, IOPRIO_NORMAL, - IOPRIO_HIGH): - raise ValueError("%s is not a valid priority" % ioclass) - cext.proc_io_priority_set(self.pid, ioclass) + @wrap_exceptions + def ionice_set(self, ioclass, value): + if value: + raise TypeError("value argument not accepted on Windows") + if ioclass not in (IOPRIO_VERYLOW, IOPRIO_LOW, IOPRIO_NORMAL, + IOPRIO_HIGH): + raise ValueError("%s is not a valid priority" % ioclass) + cext.proc_io_priority_set(self.pid, ioclass) @wrap_exceptions def io_counters(self): @@ -1060,7 +1038,7 @@ class Process(object): except OSError as err: if not is_permission_err(err): raise - info = self.oneshot_info() + info = self._proc_info() ret = ( info[pinfo_map['io_rcount']], info[pinfo_map['io_wcount']], @@ -1117,11 +1095,11 @@ class Process(object): return cext.proc_num_handles(self.pid) except OSError as err: if is_permission_err(err): - return self.oneshot_info()[pinfo_map['num_handles']] + return self._proc_info()[pinfo_map['num_handles']] raise @wrap_exceptions def num_ctx_switches(self): - ctx_switches = self.oneshot_info()[pinfo_map['ctx_switches']] + ctx_switches = self._proc_info()[pinfo_map['ctx_switches']] # only voluntary ctx switches are supported return _common.pctxsw(ctx_switches, 0) diff --git a/server/www/packages/packages-linux/x64/tornado/__init__.py b/server/www/packages/packages-linux/x64/tornado/__init__.py index a1094a6..3ac2bb8 100644 --- a/server/www/packages/packages-linux/x64/tornado/__init__.py +++ b/server/www/packages/packages-linux/x64/tornado/__init__.py @@ -1,26 +1,26 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""The Tornado web server and tools.""" - -# version is a human-readable version number. - -# version_info is a four-tuple for programmatic comparison. The first -# three numbers are the components of the version number. The fourth -# is zero for an official release, positive for a development branch, -# or negative for a release candidate or beta (after the base version -# number has been incremented) -version = "6.0.3" -version_info = (6, 0, 3, 0) +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""The Tornado web server and tools.""" + +# version is a human-readable version number. + +# version_info is a four-tuple for programmatic comparison. The first +# three numbers are the components of the version number. The fourth +# is zero for an official release, positive for a development branch, +# or negative for a release candidate or beta (after the base version +# number has been incremented) +version = "6.0.4" +version_info = (6, 0, 4, 0) diff --git a/server/www/packages/packages-linux/x64/tornado/_locale_data.py b/server/www/packages/packages-linux/x64/tornado/_locale_data.py index 91416d9..02e89d4 100644 --- a/server/www/packages/packages-linux/x64/tornado/_locale_data.py +++ b/server/www/packages/packages-linux/x64/tornado/_locale_data.py @@ -1,82 +1,82 @@ -# -*- coding: utf-8 -*- -# -# Copyright 2012 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Data used by the tornado.locale module.""" - -LOCALE_NAMES = { - "af_ZA": {"name_en": u"Afrikaans", "name": u"Afrikaans"}, - "am_ET": {"name_en": u"Amharic", "name": u"አማርኛ"}, - "ar_AR": {"name_en": u"Arabic", "name": u"العربية"}, - "bg_BG": {"name_en": u"Bulgarian", "name": u"Български"}, - "bn_IN": {"name_en": u"Bengali", "name": u"বাংলা"}, - "bs_BA": {"name_en": u"Bosnian", "name": u"Bosanski"}, - "ca_ES": {"name_en": u"Catalan", "name": u"Català"}, - "cs_CZ": {"name_en": u"Czech", "name": u"Čeština"}, - "cy_GB": {"name_en": u"Welsh", "name": u"Cymraeg"}, - "da_DK": {"name_en": u"Danish", "name": u"Dansk"}, - "de_DE": {"name_en": u"German", "name": u"Deutsch"}, - "el_GR": {"name_en": u"Greek", "name": u"Ελληνικά"}, - "en_GB": {"name_en": u"English (UK)", "name": u"English (UK)"}, - "en_US": {"name_en": u"English (US)", "name": u"English (US)"}, - "es_ES": {"name_en": u"Spanish (Spain)", "name": u"Español (España)"}, - "es_LA": {"name_en": u"Spanish", "name": u"Español"}, - "et_EE": {"name_en": u"Estonian", "name": u"Eesti"}, - "eu_ES": {"name_en": u"Basque", "name": u"Euskara"}, - "fa_IR": {"name_en": u"Persian", "name": u"فارسی"}, - "fi_FI": {"name_en": u"Finnish", "name": u"Suomi"}, - "fr_CA": {"name_en": u"French (Canada)", "name": u"Français (Canada)"}, - "fr_FR": {"name_en": u"French", "name": u"Français"}, - "ga_IE": {"name_en": u"Irish", "name": u"Gaeilge"}, - "gl_ES": {"name_en": u"Galician", "name": u"Galego"}, - "he_IL": {"name_en": u"Hebrew", "name": u"עברית"}, - "hi_IN": {"name_en": u"Hindi", "name": u"हिन्दी"}, - "hr_HR": {"name_en": u"Croatian", "name": u"Hrvatski"}, - "hu_HU": {"name_en": u"Hungarian", "name": u"Magyar"}, - "id_ID": {"name_en": u"Indonesian", "name": u"Bahasa Indonesia"}, - "is_IS": {"name_en": u"Icelandic", "name": u"Íslenska"}, - "it_IT": {"name_en": u"Italian", "name": u"Italiano"}, - "ja_JP": {"name_en": u"Japanese", "name": u"日本語"}, - "ko_KR": {"name_en": u"Korean", "name": u"한국어"}, - "lt_LT": {"name_en": u"Lithuanian", "name": u"Lietuvių"}, - "lv_LV": {"name_en": u"Latvian", "name": u"Latviešu"}, - "mk_MK": {"name_en": u"Macedonian", "name": u"Македонски"}, - "ml_IN": {"name_en": u"Malayalam", "name": u"മലയാളം"}, - "ms_MY": {"name_en": u"Malay", "name": u"Bahasa Melayu"}, - "nb_NO": {"name_en": u"Norwegian (bokmal)", "name": u"Norsk (bokmål)"}, - "nl_NL": {"name_en": u"Dutch", "name": u"Nederlands"}, - "nn_NO": {"name_en": u"Norwegian (nynorsk)", "name": u"Norsk (nynorsk)"}, - "pa_IN": {"name_en": u"Punjabi", "name": u"ਪੰਜਾਬੀ"}, - "pl_PL": {"name_en": u"Polish", "name": u"Polski"}, - "pt_BR": {"name_en": u"Portuguese (Brazil)", "name": u"Português (Brasil)"}, - "pt_PT": {"name_en": u"Portuguese (Portugal)", "name": u"Português (Portugal)"}, - "ro_RO": {"name_en": u"Romanian", "name": u"Română"}, - "ru_RU": {"name_en": u"Russian", "name": u"Русский"}, - "sk_SK": {"name_en": u"Slovak", "name": u"Slovenčina"}, - "sl_SI": {"name_en": u"Slovenian", "name": u"Slovenščina"}, - "sq_AL": {"name_en": u"Albanian", "name": u"Shqip"}, - "sr_RS": {"name_en": u"Serbian", "name": u"Српски"}, - "sv_SE": {"name_en": u"Swedish", "name": u"Svenska"}, - "sw_KE": {"name_en": u"Swahili", "name": u"Kiswahili"}, - "ta_IN": {"name_en": u"Tamil", "name": u"தமிழ்"}, - "te_IN": {"name_en": u"Telugu", "name": u"తెలుగు"}, - "th_TH": {"name_en": u"Thai", "name": u"ภาษาไทย"}, - "tl_PH": {"name_en": u"Filipino", "name": u"Filipino"}, - "tr_TR": {"name_en": u"Turkish", "name": u"Türkçe"}, - "uk_UA": {"name_en": u"Ukraini ", "name": u"Українська"}, - "vi_VN": {"name_en": u"Vietnamese", "name": u"Tiếng Việt"}, - "zh_CN": {"name_en": u"Chinese (Simplified)", "name": u"中文(简体)"}, - "zh_TW": {"name_en": u"Chinese (Traditional)", "name": u"中文(繁體)"}, -} +# -*- coding: utf-8 -*- +# +# Copyright 2012 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Data used by the tornado.locale module.""" + +LOCALE_NAMES = { + "af_ZA": {"name_en": u"Afrikaans", "name": u"Afrikaans"}, + "am_ET": {"name_en": u"Amharic", "name": u"አማርኛ"}, + "ar_AR": {"name_en": u"Arabic", "name": u"العربية"}, + "bg_BG": {"name_en": u"Bulgarian", "name": u"Български"}, + "bn_IN": {"name_en": u"Bengali", "name": u"বাংলা"}, + "bs_BA": {"name_en": u"Bosnian", "name": u"Bosanski"}, + "ca_ES": {"name_en": u"Catalan", "name": u"Català"}, + "cs_CZ": {"name_en": u"Czech", "name": u"Čeština"}, + "cy_GB": {"name_en": u"Welsh", "name": u"Cymraeg"}, + "da_DK": {"name_en": u"Danish", "name": u"Dansk"}, + "de_DE": {"name_en": u"German", "name": u"Deutsch"}, + "el_GR": {"name_en": u"Greek", "name": u"Ελληνικά"}, + "en_GB": {"name_en": u"English (UK)", "name": u"English (UK)"}, + "en_US": {"name_en": u"English (US)", "name": u"English (US)"}, + "es_ES": {"name_en": u"Spanish (Spain)", "name": u"Español (España)"}, + "es_LA": {"name_en": u"Spanish", "name": u"Español"}, + "et_EE": {"name_en": u"Estonian", "name": u"Eesti"}, + "eu_ES": {"name_en": u"Basque", "name": u"Euskara"}, + "fa_IR": {"name_en": u"Persian", "name": u"فارسی"}, + "fi_FI": {"name_en": u"Finnish", "name": u"Suomi"}, + "fr_CA": {"name_en": u"French (Canada)", "name": u"Français (Canada)"}, + "fr_FR": {"name_en": u"French", "name": u"Français"}, + "ga_IE": {"name_en": u"Irish", "name": u"Gaeilge"}, + "gl_ES": {"name_en": u"Galician", "name": u"Galego"}, + "he_IL": {"name_en": u"Hebrew", "name": u"עברית"}, + "hi_IN": {"name_en": u"Hindi", "name": u"हिन्दी"}, + "hr_HR": {"name_en": u"Croatian", "name": u"Hrvatski"}, + "hu_HU": {"name_en": u"Hungarian", "name": u"Magyar"}, + "id_ID": {"name_en": u"Indonesian", "name": u"Bahasa Indonesia"}, + "is_IS": {"name_en": u"Icelandic", "name": u"Íslenska"}, + "it_IT": {"name_en": u"Italian", "name": u"Italiano"}, + "ja_JP": {"name_en": u"Japanese", "name": u"日本語"}, + "ko_KR": {"name_en": u"Korean", "name": u"한국어"}, + "lt_LT": {"name_en": u"Lithuanian", "name": u"Lietuvių"}, + "lv_LV": {"name_en": u"Latvian", "name": u"Latviešu"}, + "mk_MK": {"name_en": u"Macedonian", "name": u"Македонски"}, + "ml_IN": {"name_en": u"Malayalam", "name": u"മലയാളം"}, + "ms_MY": {"name_en": u"Malay", "name": u"Bahasa Melayu"}, + "nb_NO": {"name_en": u"Norwegian (bokmal)", "name": u"Norsk (bokmål)"}, + "nl_NL": {"name_en": u"Dutch", "name": u"Nederlands"}, + "nn_NO": {"name_en": u"Norwegian (nynorsk)", "name": u"Norsk (nynorsk)"}, + "pa_IN": {"name_en": u"Punjabi", "name": u"ਪੰਜਾਬੀ"}, + "pl_PL": {"name_en": u"Polish", "name": u"Polski"}, + "pt_BR": {"name_en": u"Portuguese (Brazil)", "name": u"Português (Brasil)"}, + "pt_PT": {"name_en": u"Portuguese (Portugal)", "name": u"Português (Portugal)"}, + "ro_RO": {"name_en": u"Romanian", "name": u"Română"}, + "ru_RU": {"name_en": u"Russian", "name": u"Русский"}, + "sk_SK": {"name_en": u"Slovak", "name": u"Slovenčina"}, + "sl_SI": {"name_en": u"Slovenian", "name": u"Slovenščina"}, + "sq_AL": {"name_en": u"Albanian", "name": u"Shqip"}, + "sr_RS": {"name_en": u"Serbian", "name": u"Српски"}, + "sv_SE": {"name_en": u"Swedish", "name": u"Svenska"}, + "sw_KE": {"name_en": u"Swahili", "name": u"Kiswahili"}, + "ta_IN": {"name_en": u"Tamil", "name": u"தமிழ்"}, + "te_IN": {"name_en": u"Telugu", "name": u"తెలుగు"}, + "th_TH": {"name_en": u"Thai", "name": u"ภาษาไทย"}, + "tl_PH": {"name_en": u"Filipino", "name": u"Filipino"}, + "tr_TR": {"name_en": u"Turkish", "name": u"Türkçe"}, + "uk_UA": {"name_en": u"Ukraini ", "name": u"Українська"}, + "vi_VN": {"name_en": u"Vietnamese", "name": u"Tiếng Việt"}, + "zh_CN": {"name_en": u"Chinese (Simplified)", "name": u"中文(简体)"}, + "zh_TW": {"name_en": u"Chinese (Traditional)", "name": u"中文(繁體)"}, +} diff --git a/server/www/packages/packages-linux/x64/tornado/auth.py b/server/www/packages/packages-linux/x64/tornado/auth.py index db6d290..01dc4c5 100644 --- a/server/www/packages/packages-linux/x64/tornado/auth.py +++ b/server/www/packages/packages-linux/x64/tornado/auth.py @@ -1,1182 +1,1182 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""This module contains implementations of various third-party -authentication schemes. - -All the classes in this file are class mixins designed to be used with -the `tornado.web.RequestHandler` class. They are used in two ways: - -* On a login handler, use methods such as ``authenticate_redirect()``, - ``authorize_redirect()``, and ``get_authenticated_user()`` to - establish the user's identity and store authentication tokens to your - database and/or cookies. -* In non-login handlers, use methods such as ``facebook_request()`` - or ``twitter_request()`` to use the authentication tokens to make - requests to the respective services. - -They all take slightly different arguments due to the fact all these -services implement authentication and authorization slightly differently. -See the individual service classes below for complete documentation. - -Example usage for Google OAuth: - -.. testcode:: - - class GoogleOAuth2LoginHandler(tornado.web.RequestHandler, - tornado.auth.GoogleOAuth2Mixin): - async def get(self): - if self.get_argument('code', False): - user = await self.get_authenticated_user( - redirect_uri='http://your.site.com/auth/google', - code=self.get_argument('code')) - # Save the user with e.g. set_secure_cookie - else: - await self.authorize_redirect( - redirect_uri='http://your.site.com/auth/google', - client_id=self.settings['google_oauth']['key'], - scope=['profile', 'email'], - response_type='code', - extra_params={'approval_prompt': 'auto'}) - -.. testoutput:: - :hide: - -""" - -import base64 -import binascii -import hashlib -import hmac -import time -import urllib.parse -import uuid - -from tornado import httpclient -from tornado import escape -from tornado.httputil import url_concat -from tornado.util import unicode_type -from tornado.web import RequestHandler - -from typing import List, Any, Dict, cast, Iterable, Union, Optional - - -class AuthError(Exception): - pass - - -class OpenIdMixin(object): - """Abstract implementation of OpenID and Attribute Exchange. - - Class attributes: - - * ``_OPENID_ENDPOINT``: the identity provider's URI. - """ - - def authenticate_redirect( - self, - callback_uri: str = None, - ax_attrs: List[str] = ["name", "email", "language", "username"], - ) -> None: - """Redirects to the authentication URL for this service. - - After authentication, the service will redirect back to the given - callback URI with additional parameters including ``openid.mode``. - - We request the given attributes for the authenticated user by - default (name, email, language, and username). If you don't need - all those attributes for your app, you can request fewer with - the ax_attrs keyword argument. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed and this method no - longer returns an awaitable object. It is now an ordinary - synchronous function. - """ - handler = cast(RequestHandler, self) - callback_uri = callback_uri or handler.request.uri - assert callback_uri is not None - args = self._openid_args(callback_uri, ax_attrs=ax_attrs) - endpoint = self._OPENID_ENDPOINT # type: ignore - handler.redirect(endpoint + "?" + urllib.parse.urlencode(args)) - - async def get_authenticated_user( - self, http_client: httpclient.AsyncHTTPClient = None - ) -> Dict[str, Any]: - """Fetches the authenticated user data upon redirect. - - This method should be called by the handler that receives the - redirect from the `authenticate_redirect()` method (which is - often the same as the one that calls it; in that case you would - call `get_authenticated_user` if the ``openid.mode`` parameter - is present and `authenticate_redirect` if it is not). - - The result of this method will generally be used to set a cookie. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - awaitable object instead. - """ - handler = cast(RequestHandler, self) - # Verify the OpenID response via direct request to the OP - args = dict( - (k, v[-1]) for k, v in handler.request.arguments.items() - ) # type: Dict[str, Union[str, bytes]] - args["openid.mode"] = u"check_authentication" - url = self._OPENID_ENDPOINT # type: ignore - if http_client is None: - http_client = self.get_auth_http_client() - resp = await http_client.fetch( - url, method="POST", body=urllib.parse.urlencode(args) - ) - return self._on_authentication_verified(resp) - - def _openid_args( - self, callback_uri: str, ax_attrs: Iterable[str] = [], oauth_scope: str = None - ) -> Dict[str, str]: - handler = cast(RequestHandler, self) - url = urllib.parse.urljoin(handler.request.full_url(), callback_uri) - args = { - "openid.ns": "http://specs.openid.net/auth/2.0", - "openid.claimed_id": "http://specs.openid.net/auth/2.0/identifier_select", - "openid.identity": "http://specs.openid.net/auth/2.0/identifier_select", - "openid.return_to": url, - "openid.realm": urllib.parse.urljoin(url, "/"), - "openid.mode": "checkid_setup", - } - if ax_attrs: - args.update( - { - "openid.ns.ax": "http://openid.net/srv/ax/1.0", - "openid.ax.mode": "fetch_request", - } - ) - ax_attrs = set(ax_attrs) - required = [] # type: List[str] - if "name" in ax_attrs: - ax_attrs -= set(["name", "firstname", "fullname", "lastname"]) - required += ["firstname", "fullname", "lastname"] - args.update( - { - "openid.ax.type.firstname": "http://axschema.org/namePerson/first", - "openid.ax.type.fullname": "http://axschema.org/namePerson", - "openid.ax.type.lastname": "http://axschema.org/namePerson/last", - } - ) - known_attrs = { - "email": "http://axschema.org/contact/email", - "language": "http://axschema.org/pref/language", - "username": "http://axschema.org/namePerson/friendly", - } - for name in ax_attrs: - args["openid.ax.type." + name] = known_attrs[name] - required.append(name) - args["openid.ax.required"] = ",".join(required) - if oauth_scope: - args.update( - { - "openid.ns.oauth": "http://specs.openid.net/extensions/oauth/1.0", - "openid.oauth.consumer": handler.request.host.split(":")[0], - "openid.oauth.scope": oauth_scope, - } - ) - return args - - def _on_authentication_verified( - self, response: httpclient.HTTPResponse - ) -> Dict[str, Any]: - handler = cast(RequestHandler, self) - if b"is_valid:true" not in response.body: - raise AuthError("Invalid OpenID response: %s" % response.body) - - # Make sure we got back at least an email from attribute exchange - ax_ns = None - for key in handler.request.arguments: - if ( - key.startswith("openid.ns.") - and handler.get_argument(key) == u"http://openid.net/srv/ax/1.0" - ): - ax_ns = key[10:] - break - - def get_ax_arg(uri: str) -> str: - if not ax_ns: - return u"" - prefix = "openid." + ax_ns + ".type." - ax_name = None - for name in handler.request.arguments.keys(): - if handler.get_argument(name) == uri and name.startswith(prefix): - part = name[len(prefix) :] - ax_name = "openid." + ax_ns + ".value." + part - break - if not ax_name: - return u"" - return handler.get_argument(ax_name, u"") - - email = get_ax_arg("http://axschema.org/contact/email") - name = get_ax_arg("http://axschema.org/namePerson") - first_name = get_ax_arg("http://axschema.org/namePerson/first") - last_name = get_ax_arg("http://axschema.org/namePerson/last") - username = get_ax_arg("http://axschema.org/namePerson/friendly") - locale = get_ax_arg("http://axschema.org/pref/language").lower() - user = dict() - name_parts = [] - if first_name: - user["first_name"] = first_name - name_parts.append(first_name) - if last_name: - user["last_name"] = last_name - name_parts.append(last_name) - if name: - user["name"] = name - elif name_parts: - user["name"] = u" ".join(name_parts) - elif email: - user["name"] = email.split("@")[0] - if email: - user["email"] = email - if locale: - user["locale"] = locale - if username: - user["username"] = username - claimed_id = handler.get_argument("openid.claimed_id", None) - if claimed_id: - user["claimed_id"] = claimed_id - return user - - def get_auth_http_client(self) -> httpclient.AsyncHTTPClient: - """Returns the `.AsyncHTTPClient` instance to be used for auth requests. - - May be overridden by subclasses to use an HTTP client other than - the default. - """ - return httpclient.AsyncHTTPClient() - - -class OAuthMixin(object): - """Abstract implementation of OAuth 1.0 and 1.0a. - - See `TwitterMixin` below for an example implementation. - - Class attributes: - - * ``_OAUTH_AUTHORIZE_URL``: The service's OAuth authorization url. - * ``_OAUTH_ACCESS_TOKEN_URL``: The service's OAuth access token url. - * ``_OAUTH_VERSION``: May be either "1.0" or "1.0a". - * ``_OAUTH_NO_CALLBACKS``: Set this to True if the service requires - advance registration of callbacks. - - Subclasses must also override the `_oauth_get_user_future` and - `_oauth_consumer_token` methods. - """ - - async def authorize_redirect( - self, - callback_uri: str = None, - extra_params: Dict[str, Any] = None, - http_client: httpclient.AsyncHTTPClient = None, - ) -> None: - """Redirects the user to obtain OAuth authorization for this service. - - The ``callback_uri`` may be omitted if you have previously - registered a callback URI with the third-party service. For - some services, you must use a previously-registered callback - URI and cannot specify a callback via this method. - - This method sets a cookie called ``_oauth_request_token`` which is - subsequently used (and cleared) in `get_authenticated_user` for - security purposes. - - This method is asynchronous and must be called with ``await`` - or ``yield`` (This is different from other ``auth*_redirect`` - methods defined in this module). It calls - `.RequestHandler.finish` for you so you should not write any - other response after it returns. - - .. versionchanged:: 3.1 - Now returns a `.Future` and takes an optional callback, for - compatibility with `.gen.coroutine`. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - awaitable object instead. - - """ - if callback_uri and getattr(self, "_OAUTH_NO_CALLBACKS", False): - raise Exception("This service does not support oauth_callback") - if http_client is None: - http_client = self.get_auth_http_client() - assert http_client is not None - if getattr(self, "_OAUTH_VERSION", "1.0a") == "1.0a": - response = await http_client.fetch( - self._oauth_request_token_url( - callback_uri=callback_uri, extra_params=extra_params - ) - ) - else: - response = await http_client.fetch(self._oauth_request_token_url()) - url = self._OAUTH_AUTHORIZE_URL # type: ignore - self._on_request_token(url, callback_uri, response) - - async def get_authenticated_user( - self, http_client: httpclient.AsyncHTTPClient = None - ) -> Dict[str, Any]: - """Gets the OAuth authorized user and access token. - - This method should be called from the handler for your - OAuth callback URL to complete the registration process. We run the - callback with the authenticated user dictionary. This dictionary - will contain an ``access_key`` which can be used to make authorized - requests to this service on behalf of the user. The dictionary will - also contain other fields such as ``name``, depending on the service - used. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - awaitable object instead. - """ - handler = cast(RequestHandler, self) - request_key = escape.utf8(handler.get_argument("oauth_token")) - oauth_verifier = handler.get_argument("oauth_verifier", None) - request_cookie = handler.get_cookie("_oauth_request_token") - if not request_cookie: - raise AuthError("Missing OAuth request token cookie") - handler.clear_cookie("_oauth_request_token") - cookie_key, cookie_secret = [ - base64.b64decode(escape.utf8(i)) for i in request_cookie.split("|") - ] - if cookie_key != request_key: - raise AuthError("Request token does not match cookie") - token = dict( - key=cookie_key, secret=cookie_secret - ) # type: Dict[str, Union[str, bytes]] - if oauth_verifier: - token["verifier"] = oauth_verifier - if http_client is None: - http_client = self.get_auth_http_client() - assert http_client is not None - response = await http_client.fetch(self._oauth_access_token_url(token)) - access_token = _oauth_parse_response(response.body) - user = await self._oauth_get_user_future(access_token) - if not user: - raise AuthError("Error getting user") - user["access_token"] = access_token - return user - - def _oauth_request_token_url( - self, callback_uri: str = None, extra_params: Dict[str, Any] = None - ) -> str: - handler = cast(RequestHandler, self) - consumer_token = self._oauth_consumer_token() - url = self._OAUTH_REQUEST_TOKEN_URL # type: ignore - args = dict( - oauth_consumer_key=escape.to_basestring(consumer_token["key"]), - oauth_signature_method="HMAC-SHA1", - oauth_timestamp=str(int(time.time())), - oauth_nonce=escape.to_basestring(binascii.b2a_hex(uuid.uuid4().bytes)), - oauth_version="1.0", - ) - if getattr(self, "_OAUTH_VERSION", "1.0a") == "1.0a": - if callback_uri == "oob": - args["oauth_callback"] = "oob" - elif callback_uri: - args["oauth_callback"] = urllib.parse.urljoin( - handler.request.full_url(), callback_uri - ) - if extra_params: - args.update(extra_params) - signature = _oauth10a_signature(consumer_token, "GET", url, args) - else: - signature = _oauth_signature(consumer_token, "GET", url, args) - - args["oauth_signature"] = signature - return url + "?" + urllib.parse.urlencode(args) - - def _on_request_token( - self, - authorize_url: str, - callback_uri: Optional[str], - response: httpclient.HTTPResponse, - ) -> None: - handler = cast(RequestHandler, self) - request_token = _oauth_parse_response(response.body) - data = ( - base64.b64encode(escape.utf8(request_token["key"])) - + b"|" - + base64.b64encode(escape.utf8(request_token["secret"])) - ) - handler.set_cookie("_oauth_request_token", data) - args = dict(oauth_token=request_token["key"]) - if callback_uri == "oob": - handler.finish(authorize_url + "?" + urllib.parse.urlencode(args)) - return - elif callback_uri: - args["oauth_callback"] = urllib.parse.urljoin( - handler.request.full_url(), callback_uri - ) - handler.redirect(authorize_url + "?" + urllib.parse.urlencode(args)) - - def _oauth_access_token_url(self, request_token: Dict[str, Any]) -> str: - consumer_token = self._oauth_consumer_token() - url = self._OAUTH_ACCESS_TOKEN_URL # type: ignore - args = dict( - oauth_consumer_key=escape.to_basestring(consumer_token["key"]), - oauth_token=escape.to_basestring(request_token["key"]), - oauth_signature_method="HMAC-SHA1", - oauth_timestamp=str(int(time.time())), - oauth_nonce=escape.to_basestring(binascii.b2a_hex(uuid.uuid4().bytes)), - oauth_version="1.0", - ) - if "verifier" in request_token: - args["oauth_verifier"] = request_token["verifier"] - - if getattr(self, "_OAUTH_VERSION", "1.0a") == "1.0a": - signature = _oauth10a_signature( - consumer_token, "GET", url, args, request_token - ) - else: - signature = _oauth_signature( - consumer_token, "GET", url, args, request_token - ) - - args["oauth_signature"] = signature - return url + "?" + urllib.parse.urlencode(args) - - def _oauth_consumer_token(self) -> Dict[str, Any]: - """Subclasses must override this to return their OAuth consumer keys. - - The return value should be a `dict` with keys ``key`` and ``secret``. - """ - raise NotImplementedError() - - async def _oauth_get_user_future( - self, access_token: Dict[str, Any] - ) -> Dict[str, Any]: - """Subclasses must override this to get basic information about the - user. - - Should be a coroutine whose result is a dictionary - containing information about the user, which may have been - retrieved by using ``access_token`` to make a request to the - service. - - The access token will be added to the returned dictionary to make - the result of `get_authenticated_user`. - - .. versionchanged:: 5.1 - - Subclasses may also define this method with ``async def``. - - .. versionchanged:: 6.0 - - A synchronous fallback to ``_oauth_get_user`` was removed. - """ - raise NotImplementedError() - - def _oauth_request_parameters( - self, - url: str, - access_token: Dict[str, Any], - parameters: Dict[str, Any] = {}, - method: str = "GET", - ) -> Dict[str, Any]: - """Returns the OAuth parameters as a dict for the given request. - - parameters should include all POST arguments and query string arguments - that will be sent with the request. - """ - consumer_token = self._oauth_consumer_token() - base_args = dict( - oauth_consumer_key=escape.to_basestring(consumer_token["key"]), - oauth_token=escape.to_basestring(access_token["key"]), - oauth_signature_method="HMAC-SHA1", - oauth_timestamp=str(int(time.time())), - oauth_nonce=escape.to_basestring(binascii.b2a_hex(uuid.uuid4().bytes)), - oauth_version="1.0", - ) - args = {} - args.update(base_args) - args.update(parameters) - if getattr(self, "_OAUTH_VERSION", "1.0a") == "1.0a": - signature = _oauth10a_signature( - consumer_token, method, url, args, access_token - ) - else: - signature = _oauth_signature( - consumer_token, method, url, args, access_token - ) - base_args["oauth_signature"] = escape.to_basestring(signature) - return base_args - - def get_auth_http_client(self) -> httpclient.AsyncHTTPClient: - """Returns the `.AsyncHTTPClient` instance to be used for auth requests. - - May be overridden by subclasses to use an HTTP client other than - the default. - """ - return httpclient.AsyncHTTPClient() - - -class OAuth2Mixin(object): - """Abstract implementation of OAuth 2.0. - - See `FacebookGraphMixin` or `GoogleOAuth2Mixin` below for example - implementations. - - Class attributes: - - * ``_OAUTH_AUTHORIZE_URL``: The service's authorization url. - * ``_OAUTH_ACCESS_TOKEN_URL``: The service's access token url. - """ - - def authorize_redirect( - self, - redirect_uri: str = None, - client_id: str = None, - client_secret: str = None, - extra_params: Dict[str, Any] = None, - scope: str = None, - response_type: str = "code", - ) -> None: - """Redirects the user to obtain OAuth authorization for this service. - - Some providers require that you register a redirect URL with - your application instead of passing one via this method. You - should call this method to log the user in, and then call - ``get_authenticated_user`` in the handler for your - redirect URL to complete the authorization process. - - .. versionchanged:: 6.0 - - The ``callback`` argument and returned awaitable were removed; - this is now an ordinary synchronous function. - """ - handler = cast(RequestHandler, self) - args = {"response_type": response_type} - if redirect_uri is not None: - args["redirect_uri"] = redirect_uri - if client_id is not None: - args["client_id"] = client_id - if extra_params: - args.update(extra_params) - if scope: - args["scope"] = " ".join(scope) - url = self._OAUTH_AUTHORIZE_URL # type: ignore - handler.redirect(url_concat(url, args)) - - def _oauth_request_token_url( - self, - redirect_uri: str = None, - client_id: str = None, - client_secret: str = None, - code: str = None, - extra_params: Dict[str, Any] = None, - ) -> str: - url = self._OAUTH_ACCESS_TOKEN_URL # type: ignore - args = {} # type: Dict[str, str] - if redirect_uri is not None: - args["redirect_uri"] = redirect_uri - if code is not None: - args["code"] = code - if client_id is not None: - args["client_id"] = client_id - if client_secret is not None: - args["client_secret"] = client_secret - if extra_params: - args.update(extra_params) - return url_concat(url, args) - - async def oauth2_request( - self, - url: str, - access_token: str = None, - post_args: Dict[str, Any] = None, - **args: Any - ) -> Any: - """Fetches the given URL auth an OAuth2 access token. - - If the request is a POST, ``post_args`` should be provided. Query - string arguments should be given as keyword arguments. - - Example usage: - - ..testcode:: - - class MainHandler(tornado.web.RequestHandler, - tornado.auth.FacebookGraphMixin): - @tornado.web.authenticated - async def get(self): - new_entry = await self.oauth2_request( - "https://graph.facebook.com/me/feed", - post_args={"message": "I am posting from my Tornado application!"}, - access_token=self.current_user["access_token"]) - - if not new_entry: - # Call failed; perhaps missing permission? - await self.authorize_redirect() - return - self.finish("Posted a message!") - - .. testoutput:: - :hide: - - .. versionadded:: 4.3 - - .. versionchanged::: 6.0 - - The ``callback`` argument was removed. Use the returned awaitable object instead. - """ - all_args = {} - if access_token: - all_args["access_token"] = access_token - all_args.update(args) - - if all_args: - url += "?" + urllib.parse.urlencode(all_args) - http = self.get_auth_http_client() - if post_args is not None: - response = await http.fetch( - url, method="POST", body=urllib.parse.urlencode(post_args) - ) - else: - response = await http.fetch(url) - return escape.json_decode(response.body) - - def get_auth_http_client(self) -> httpclient.AsyncHTTPClient: - """Returns the `.AsyncHTTPClient` instance to be used for auth requests. - - May be overridden by subclasses to use an HTTP client other than - the default. - - .. versionadded:: 4.3 - """ - return httpclient.AsyncHTTPClient() - - -class TwitterMixin(OAuthMixin): - """Twitter OAuth authentication. - - To authenticate with Twitter, register your application with - Twitter at http://twitter.com/apps. Then copy your Consumer Key - and Consumer Secret to the application - `~tornado.web.Application.settings` ``twitter_consumer_key`` and - ``twitter_consumer_secret``. Use this mixin on the handler for the - URL you registered as your application's callback URL. - - When your application is set up, you can use this mixin like this - to authenticate the user with Twitter and get access to their stream: - - .. testcode:: - - class TwitterLoginHandler(tornado.web.RequestHandler, - tornado.auth.TwitterMixin): - async def get(self): - if self.get_argument("oauth_token", None): - user = await self.get_authenticated_user() - # Save the user using e.g. set_secure_cookie() - else: - await self.authorize_redirect() - - .. testoutput:: - :hide: - - The user object returned by `~OAuthMixin.get_authenticated_user` - includes the attributes ``username``, ``name``, ``access_token``, - and all of the custom Twitter user attributes described at - https://dev.twitter.com/docs/api/1.1/get/users/show - """ - - _OAUTH_REQUEST_TOKEN_URL = "https://api.twitter.com/oauth/request_token" - _OAUTH_ACCESS_TOKEN_URL = "https://api.twitter.com/oauth/access_token" - _OAUTH_AUTHORIZE_URL = "https://api.twitter.com/oauth/authorize" - _OAUTH_AUTHENTICATE_URL = "https://api.twitter.com/oauth/authenticate" - _OAUTH_NO_CALLBACKS = False - _TWITTER_BASE_URL = "https://api.twitter.com/1.1" - - async def authenticate_redirect(self, callback_uri: str = None) -> None: - """Just like `~OAuthMixin.authorize_redirect`, but - auto-redirects if authorized. - - This is generally the right interface to use if you are using - Twitter for single-sign on. - - .. versionchanged:: 3.1 - Now returns a `.Future` and takes an optional callback, for - compatibility with `.gen.coroutine`. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - awaitable object instead. - """ - http = self.get_auth_http_client() - response = await http.fetch( - self._oauth_request_token_url(callback_uri=callback_uri) - ) - self._on_request_token(self._OAUTH_AUTHENTICATE_URL, None, response) - - async def twitter_request( - self, - path: str, - access_token: Dict[str, Any], - post_args: Dict[str, Any] = None, - **args: Any - ) -> Any: - """Fetches the given API path, e.g., ``statuses/user_timeline/btaylor`` - - The path should not include the format or API version number. - (we automatically use JSON format and API version 1). - - If the request is a POST, ``post_args`` should be provided. Query - string arguments should be given as keyword arguments. - - All the Twitter methods are documented at http://dev.twitter.com/ - - Many methods require an OAuth access token which you can - obtain through `~OAuthMixin.authorize_redirect` and - `~OAuthMixin.get_authenticated_user`. The user returned through that - process includes an 'access_token' attribute that can be used - to make authenticated requests via this method. Example - usage: - - .. testcode:: - - class MainHandler(tornado.web.RequestHandler, - tornado.auth.TwitterMixin): - @tornado.web.authenticated - async def get(self): - new_entry = await self.twitter_request( - "/statuses/update", - post_args={"status": "Testing Tornado Web Server"}, - access_token=self.current_user["access_token"]) - if not new_entry: - # Call failed; perhaps missing permission? - yield self.authorize_redirect() - return - self.finish("Posted a message!") - - .. testoutput:: - :hide: - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - awaitable object instead. - """ - if path.startswith("http:") or path.startswith("https:"): - # Raw urls are useful for e.g. search which doesn't follow the - # usual pattern: http://search.twitter.com/search.json - url = path - else: - url = self._TWITTER_BASE_URL + path + ".json" - # Add the OAuth resource request signature if we have credentials - if access_token: - all_args = {} - all_args.update(args) - all_args.update(post_args or {}) - method = "POST" if post_args is not None else "GET" - oauth = self._oauth_request_parameters( - url, access_token, all_args, method=method - ) - args.update(oauth) - if args: - url += "?" + urllib.parse.urlencode(args) - http = self.get_auth_http_client() - if post_args is not None: - response = await http.fetch( - url, method="POST", body=urllib.parse.urlencode(post_args) - ) - else: - response = await http.fetch(url) - return escape.json_decode(response.body) - - def _oauth_consumer_token(self) -> Dict[str, Any]: - handler = cast(RequestHandler, self) - handler.require_setting("twitter_consumer_key", "Twitter OAuth") - handler.require_setting("twitter_consumer_secret", "Twitter OAuth") - return dict( - key=handler.settings["twitter_consumer_key"], - secret=handler.settings["twitter_consumer_secret"], - ) - - async def _oauth_get_user_future( - self, access_token: Dict[str, Any] - ) -> Dict[str, Any]: - user = await self.twitter_request( - "/account/verify_credentials", access_token=access_token - ) - if user: - user["username"] = user["screen_name"] - return user - - -class GoogleOAuth2Mixin(OAuth2Mixin): - """Google authentication using OAuth2. - - In order to use, register your application with Google and copy the - relevant parameters to your application settings. - - * Go to the Google Dev Console at http://console.developers.google.com - * Select a project, or create a new one. - * In the sidebar on the left, select APIs & Auth. - * In the list of APIs, find the Google+ API service and set it to ON. - * In the sidebar on the left, select Credentials. - * In the OAuth section of the page, select Create New Client ID. - * Set the Redirect URI to point to your auth handler - * Copy the "Client secret" and "Client ID" to the application settings as - ``{"google_oauth": {"key": CLIENT_ID, "secret": CLIENT_SECRET}}`` - - .. versionadded:: 3.2 - """ - - _OAUTH_AUTHORIZE_URL = "https://accounts.google.com/o/oauth2/v2/auth" - _OAUTH_ACCESS_TOKEN_URL = "https://www.googleapis.com/oauth2/v4/token" - _OAUTH_USERINFO_URL = "https://www.googleapis.com/oauth2/v1/userinfo" - _OAUTH_NO_CALLBACKS = False - _OAUTH_SETTINGS_KEY = "google_oauth" - - async def get_authenticated_user( - self, redirect_uri: str, code: str - ) -> Dict[str, Any]: - """Handles the login for the Google user, returning an access token. - - The result is a dictionary containing an ``access_token`` field - ([among others](https://developers.google.com/identity/protocols/OAuth2WebServer#handlingtheresponse)). - Unlike other ``get_authenticated_user`` methods in this package, - this method does not return any additional information about the user. - The returned access token can be used with `OAuth2Mixin.oauth2_request` - to request additional information (perhaps from - ``https://www.googleapis.com/oauth2/v2/userinfo``) - - Example usage: - - .. testcode:: - - class GoogleOAuth2LoginHandler(tornado.web.RequestHandler, - tornado.auth.GoogleOAuth2Mixin): - async def get(self): - if self.get_argument('code', False): - access = await self.get_authenticated_user( - redirect_uri='http://your.site.com/auth/google', - code=self.get_argument('code')) - user = await self.oauth2_request( - "https://www.googleapis.com/oauth2/v1/userinfo", - access_token=access["access_token"]) - # Save the user and access token with - # e.g. set_secure_cookie. - else: - await self.authorize_redirect( - redirect_uri='http://your.site.com/auth/google', - client_id=self.settings['google_oauth']['key'], - scope=['profile', 'email'], - response_type='code', - extra_params={'approval_prompt': 'auto'}) - - .. testoutput:: - :hide: - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned awaitable object instead. - """ # noqa: E501 - handler = cast(RequestHandler, self) - http = self.get_auth_http_client() - body = urllib.parse.urlencode( - { - "redirect_uri": redirect_uri, - "code": code, - "client_id": handler.settings[self._OAUTH_SETTINGS_KEY]["key"], - "client_secret": handler.settings[self._OAUTH_SETTINGS_KEY]["secret"], - "grant_type": "authorization_code", - } - ) - - response = await http.fetch( - self._OAUTH_ACCESS_TOKEN_URL, - method="POST", - headers={"Content-Type": "application/x-www-form-urlencoded"}, - body=body, - ) - return escape.json_decode(response.body) - - -class FacebookGraphMixin(OAuth2Mixin): - """Facebook authentication using the new Graph API and OAuth2.""" - - _OAUTH_ACCESS_TOKEN_URL = "https://graph.facebook.com/oauth/access_token?" - _OAUTH_AUTHORIZE_URL = "https://www.facebook.com/dialog/oauth?" - _OAUTH_NO_CALLBACKS = False - _FACEBOOK_BASE_URL = "https://graph.facebook.com" - - async def get_authenticated_user( - self, - redirect_uri: str, - client_id: str, - client_secret: str, - code: str, - extra_fields: Dict[str, Any] = None, - ) -> Optional[Dict[str, Any]]: - """Handles the login for the Facebook user, returning a user object. - - Example usage: - - .. testcode:: - - class FacebookGraphLoginHandler(tornado.web.RequestHandler, - tornado.auth.FacebookGraphMixin): - async def get(self): - if self.get_argument("code", False): - user = await self.get_authenticated_user( - redirect_uri='/auth/facebookgraph/', - client_id=self.settings["facebook_api_key"], - client_secret=self.settings["facebook_secret"], - code=self.get_argument("code")) - # Save the user with e.g. set_secure_cookie - else: - await self.authorize_redirect( - redirect_uri='/auth/facebookgraph/', - client_id=self.settings["facebook_api_key"], - extra_params={"scope": "read_stream,offline_access"}) - - .. testoutput:: - :hide: - - This method returns a dictionary which may contain the following fields: - - * ``access_token``, a string which may be passed to `facebook_request` - * ``session_expires``, an integer encoded as a string representing - the time until the access token expires in seconds. This field should - be used like ``int(user['session_expires'])``; in a future version of - Tornado it will change from a string to an integer. - * ``id``, ``name``, ``first_name``, ``last_name``, ``locale``, ``picture``, - ``link``, plus any fields named in the ``extra_fields`` argument. These - fields are copied from the Facebook graph API - `user object `_ - - .. versionchanged:: 4.5 - The ``session_expires`` field was updated to support changes made to the - Facebook API in March 2017. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned awaitable object instead. - """ - http = self.get_auth_http_client() - args = { - "redirect_uri": redirect_uri, - "code": code, - "client_id": client_id, - "client_secret": client_secret, - } - - fields = set( - ["id", "name", "first_name", "last_name", "locale", "picture", "link"] - ) - if extra_fields: - fields.update(extra_fields) - - response = await http.fetch( - self._oauth_request_token_url(**args) # type: ignore - ) - args = escape.json_decode(response.body) - session = { - "access_token": args.get("access_token"), - "expires_in": args.get("expires_in"), - } - assert session["access_token"] is not None - - user = await self.facebook_request( - path="/me", - access_token=session["access_token"], - appsecret_proof=hmac.new( - key=client_secret.encode("utf8"), - msg=session["access_token"].encode("utf8"), - digestmod=hashlib.sha256, - ).hexdigest(), - fields=",".join(fields), - ) - - if user is None: - return None - - fieldmap = {} - for field in fields: - fieldmap[field] = user.get(field) - - # session_expires is converted to str for compatibility with - # older versions in which the server used url-encoding and - # this code simply returned the string verbatim. - # This should change in Tornado 5.0. - fieldmap.update( - { - "access_token": session["access_token"], - "session_expires": str(session.get("expires_in")), - } - ) - return fieldmap - - async def facebook_request( - self, - path: str, - access_token: str = None, - post_args: Dict[str, Any] = None, - **args: Any - ) -> Any: - """Fetches the given relative API path, e.g., "/btaylor/picture" - - If the request is a POST, ``post_args`` should be provided. Query - string arguments should be given as keyword arguments. - - An introduction to the Facebook Graph API can be found at - http://developers.facebook.com/docs/api - - Many methods require an OAuth access token which you can - obtain through `~OAuth2Mixin.authorize_redirect` and - `get_authenticated_user`. The user returned through that - process includes an ``access_token`` attribute that can be - used to make authenticated requests via this method. - - Example usage: - - .. testcode:: - - class MainHandler(tornado.web.RequestHandler, - tornado.auth.FacebookGraphMixin): - @tornado.web.authenticated - async def get(self): - new_entry = await self.facebook_request( - "/me/feed", - post_args={"message": "I am posting from my Tornado application!"}, - access_token=self.current_user["access_token"]) - - if not new_entry: - # Call failed; perhaps missing permission? - yield self.authorize_redirect() - return - self.finish("Posted a message!") - - .. testoutput:: - :hide: - - The given path is relative to ``self._FACEBOOK_BASE_URL``, - by default "https://graph.facebook.com". - - This method is a wrapper around `OAuth2Mixin.oauth2_request`; - the only difference is that this method takes a relative path, - while ``oauth2_request`` takes a complete url. - - .. versionchanged:: 3.1 - Added the ability to override ``self._FACEBOOK_BASE_URL``. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned awaitable object instead. - """ - url = self._FACEBOOK_BASE_URL + path - return await self.oauth2_request( - url, access_token=access_token, post_args=post_args, **args - ) - - -def _oauth_signature( - consumer_token: Dict[str, Any], - method: str, - url: str, - parameters: Dict[str, Any] = {}, - token: Dict[str, Any] = None, -) -> bytes: - """Calculates the HMAC-SHA1 OAuth signature for the given request. - - See http://oauth.net/core/1.0/#signing_process - """ - parts = urllib.parse.urlparse(url) - scheme, netloc, path = parts[:3] - normalized_url = scheme.lower() + "://" + netloc.lower() + path - - base_elems = [] - base_elems.append(method.upper()) - base_elems.append(normalized_url) - base_elems.append( - "&".join( - "%s=%s" % (k, _oauth_escape(str(v))) for k, v in sorted(parameters.items()) - ) - ) - base_string = "&".join(_oauth_escape(e) for e in base_elems) - - key_elems = [escape.utf8(consumer_token["secret"])] - key_elems.append(escape.utf8(token["secret"] if token else "")) - key = b"&".join(key_elems) - - hash = hmac.new(key, escape.utf8(base_string), hashlib.sha1) - return binascii.b2a_base64(hash.digest())[:-1] - - -def _oauth10a_signature( - consumer_token: Dict[str, Any], - method: str, - url: str, - parameters: Dict[str, Any] = {}, - token: Dict[str, Any] = None, -) -> bytes: - """Calculates the HMAC-SHA1 OAuth 1.0a signature for the given request. - - See http://oauth.net/core/1.0a/#signing_process - """ - parts = urllib.parse.urlparse(url) - scheme, netloc, path = parts[:3] - normalized_url = scheme.lower() + "://" + netloc.lower() + path - - base_elems = [] - base_elems.append(method.upper()) - base_elems.append(normalized_url) - base_elems.append( - "&".join( - "%s=%s" % (k, _oauth_escape(str(v))) for k, v in sorted(parameters.items()) - ) - ) - - base_string = "&".join(_oauth_escape(e) for e in base_elems) - key_elems = [escape.utf8(urllib.parse.quote(consumer_token["secret"], safe="~"))] - key_elems.append( - escape.utf8(urllib.parse.quote(token["secret"], safe="~") if token else "") - ) - key = b"&".join(key_elems) - - hash = hmac.new(key, escape.utf8(base_string), hashlib.sha1) - return binascii.b2a_base64(hash.digest())[:-1] - - -def _oauth_escape(val: Union[str, bytes]) -> str: - if isinstance(val, unicode_type): - val = val.encode("utf-8") - return urllib.parse.quote(val, safe="~") - - -def _oauth_parse_response(body: bytes) -> Dict[str, Any]: - # I can't find an officially-defined encoding for oauth responses and - # have never seen anyone use non-ascii. Leave the response in a byte - # string for python 2, and use utf8 on python 3. - body_str = escape.native_str(body) - p = urllib.parse.parse_qs(body_str, keep_blank_values=False) - token = dict(key=p["oauth_token"][0], secret=p["oauth_token_secret"][0]) - - # Add the extra parameters the Provider included to the token - special = ("oauth_token", "oauth_token_secret") - token.update((k, p[k][0]) for k in p if k not in special) - return token +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""This module contains implementations of various third-party +authentication schemes. + +All the classes in this file are class mixins designed to be used with +the `tornado.web.RequestHandler` class. They are used in two ways: + +* On a login handler, use methods such as ``authenticate_redirect()``, + ``authorize_redirect()``, and ``get_authenticated_user()`` to + establish the user's identity and store authentication tokens to your + database and/or cookies. +* In non-login handlers, use methods such as ``facebook_request()`` + or ``twitter_request()`` to use the authentication tokens to make + requests to the respective services. + +They all take slightly different arguments due to the fact all these +services implement authentication and authorization slightly differently. +See the individual service classes below for complete documentation. + +Example usage for Google OAuth: + +.. testcode:: + + class GoogleOAuth2LoginHandler(tornado.web.RequestHandler, + tornado.auth.GoogleOAuth2Mixin): + async def get(self): + if self.get_argument('code', False): + user = await self.get_authenticated_user( + redirect_uri='http://your.site.com/auth/google', + code=self.get_argument('code')) + # Save the user with e.g. set_secure_cookie + else: + await self.authorize_redirect( + redirect_uri='http://your.site.com/auth/google', + client_id=self.settings['google_oauth']['key'], + scope=['profile', 'email'], + response_type='code', + extra_params={'approval_prompt': 'auto'}) + +.. testoutput:: + :hide: + +""" + +import base64 +import binascii +import hashlib +import hmac +import time +import urllib.parse +import uuid + +from tornado import httpclient +from tornado import escape +from tornado.httputil import url_concat +from tornado.util import unicode_type +from tornado.web import RequestHandler + +from typing import List, Any, Dict, cast, Iterable, Union, Optional + + +class AuthError(Exception): + pass + + +class OpenIdMixin(object): + """Abstract implementation of OpenID and Attribute Exchange. + + Class attributes: + + * ``_OPENID_ENDPOINT``: the identity provider's URI. + """ + + def authenticate_redirect( + self, + callback_uri: str = None, + ax_attrs: List[str] = ["name", "email", "language", "username"], + ) -> None: + """Redirects to the authentication URL for this service. + + After authentication, the service will redirect back to the given + callback URI with additional parameters including ``openid.mode``. + + We request the given attributes for the authenticated user by + default (name, email, language, and username). If you don't need + all those attributes for your app, you can request fewer with + the ax_attrs keyword argument. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed and this method no + longer returns an awaitable object. It is now an ordinary + synchronous function. + """ + handler = cast(RequestHandler, self) + callback_uri = callback_uri or handler.request.uri + assert callback_uri is not None + args = self._openid_args(callback_uri, ax_attrs=ax_attrs) + endpoint = self._OPENID_ENDPOINT # type: ignore + handler.redirect(endpoint + "?" + urllib.parse.urlencode(args)) + + async def get_authenticated_user( + self, http_client: httpclient.AsyncHTTPClient = None + ) -> Dict[str, Any]: + """Fetches the authenticated user data upon redirect. + + This method should be called by the handler that receives the + redirect from the `authenticate_redirect()` method (which is + often the same as the one that calls it; in that case you would + call `get_authenticated_user` if the ``openid.mode`` parameter + is present and `authenticate_redirect` if it is not). + + The result of this method will generally be used to set a cookie. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + awaitable object instead. + """ + handler = cast(RequestHandler, self) + # Verify the OpenID response via direct request to the OP + args = dict( + (k, v[-1]) for k, v in handler.request.arguments.items() + ) # type: Dict[str, Union[str, bytes]] + args["openid.mode"] = u"check_authentication" + url = self._OPENID_ENDPOINT # type: ignore + if http_client is None: + http_client = self.get_auth_http_client() + resp = await http_client.fetch( + url, method="POST", body=urllib.parse.urlencode(args) + ) + return self._on_authentication_verified(resp) + + def _openid_args( + self, callback_uri: str, ax_attrs: Iterable[str] = [], oauth_scope: str = None + ) -> Dict[str, str]: + handler = cast(RequestHandler, self) + url = urllib.parse.urljoin(handler.request.full_url(), callback_uri) + args = { + "openid.ns": "http://specs.openid.net/auth/2.0", + "openid.claimed_id": "http://specs.openid.net/auth/2.0/identifier_select", + "openid.identity": "http://specs.openid.net/auth/2.0/identifier_select", + "openid.return_to": url, + "openid.realm": urllib.parse.urljoin(url, "/"), + "openid.mode": "checkid_setup", + } + if ax_attrs: + args.update( + { + "openid.ns.ax": "http://openid.net/srv/ax/1.0", + "openid.ax.mode": "fetch_request", + } + ) + ax_attrs = set(ax_attrs) + required = [] # type: List[str] + if "name" in ax_attrs: + ax_attrs -= set(["name", "firstname", "fullname", "lastname"]) + required += ["firstname", "fullname", "lastname"] + args.update( + { + "openid.ax.type.firstname": "http://axschema.org/namePerson/first", + "openid.ax.type.fullname": "http://axschema.org/namePerson", + "openid.ax.type.lastname": "http://axschema.org/namePerson/last", + } + ) + known_attrs = { + "email": "http://axschema.org/contact/email", + "language": "http://axschema.org/pref/language", + "username": "http://axschema.org/namePerson/friendly", + } + for name in ax_attrs: + args["openid.ax.type." + name] = known_attrs[name] + required.append(name) + args["openid.ax.required"] = ",".join(required) + if oauth_scope: + args.update( + { + "openid.ns.oauth": "http://specs.openid.net/extensions/oauth/1.0", + "openid.oauth.consumer": handler.request.host.split(":")[0], + "openid.oauth.scope": oauth_scope, + } + ) + return args + + def _on_authentication_verified( + self, response: httpclient.HTTPResponse + ) -> Dict[str, Any]: + handler = cast(RequestHandler, self) + if b"is_valid:true" not in response.body: + raise AuthError("Invalid OpenID response: %s" % response.body) + + # Make sure we got back at least an email from attribute exchange + ax_ns = None + for key in handler.request.arguments: + if ( + key.startswith("openid.ns.") + and handler.get_argument(key) == u"http://openid.net/srv/ax/1.0" + ): + ax_ns = key[10:] + break + + def get_ax_arg(uri: str) -> str: + if not ax_ns: + return u"" + prefix = "openid." + ax_ns + ".type." + ax_name = None + for name in handler.request.arguments.keys(): + if handler.get_argument(name) == uri and name.startswith(prefix): + part = name[len(prefix) :] + ax_name = "openid." + ax_ns + ".value." + part + break + if not ax_name: + return u"" + return handler.get_argument(ax_name, u"") + + email = get_ax_arg("http://axschema.org/contact/email") + name = get_ax_arg("http://axschema.org/namePerson") + first_name = get_ax_arg("http://axschema.org/namePerson/first") + last_name = get_ax_arg("http://axschema.org/namePerson/last") + username = get_ax_arg("http://axschema.org/namePerson/friendly") + locale = get_ax_arg("http://axschema.org/pref/language").lower() + user = dict() + name_parts = [] + if first_name: + user["first_name"] = first_name + name_parts.append(first_name) + if last_name: + user["last_name"] = last_name + name_parts.append(last_name) + if name: + user["name"] = name + elif name_parts: + user["name"] = u" ".join(name_parts) + elif email: + user["name"] = email.split("@")[0] + if email: + user["email"] = email + if locale: + user["locale"] = locale + if username: + user["username"] = username + claimed_id = handler.get_argument("openid.claimed_id", None) + if claimed_id: + user["claimed_id"] = claimed_id + return user + + def get_auth_http_client(self) -> httpclient.AsyncHTTPClient: + """Returns the `.AsyncHTTPClient` instance to be used for auth requests. + + May be overridden by subclasses to use an HTTP client other than + the default. + """ + return httpclient.AsyncHTTPClient() + + +class OAuthMixin(object): + """Abstract implementation of OAuth 1.0 and 1.0a. + + See `TwitterMixin` below for an example implementation. + + Class attributes: + + * ``_OAUTH_AUTHORIZE_URL``: The service's OAuth authorization url. + * ``_OAUTH_ACCESS_TOKEN_URL``: The service's OAuth access token url. + * ``_OAUTH_VERSION``: May be either "1.0" or "1.0a". + * ``_OAUTH_NO_CALLBACKS``: Set this to True if the service requires + advance registration of callbacks. + + Subclasses must also override the `_oauth_get_user_future` and + `_oauth_consumer_token` methods. + """ + + async def authorize_redirect( + self, + callback_uri: str = None, + extra_params: Dict[str, Any] = None, + http_client: httpclient.AsyncHTTPClient = None, + ) -> None: + """Redirects the user to obtain OAuth authorization for this service. + + The ``callback_uri`` may be omitted if you have previously + registered a callback URI with the third-party service. For + some services, you must use a previously-registered callback + URI and cannot specify a callback via this method. + + This method sets a cookie called ``_oauth_request_token`` which is + subsequently used (and cleared) in `get_authenticated_user` for + security purposes. + + This method is asynchronous and must be called with ``await`` + or ``yield`` (This is different from other ``auth*_redirect`` + methods defined in this module). It calls + `.RequestHandler.finish` for you so you should not write any + other response after it returns. + + .. versionchanged:: 3.1 + Now returns a `.Future` and takes an optional callback, for + compatibility with `.gen.coroutine`. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + awaitable object instead. + + """ + if callback_uri and getattr(self, "_OAUTH_NO_CALLBACKS", False): + raise Exception("This service does not support oauth_callback") + if http_client is None: + http_client = self.get_auth_http_client() + assert http_client is not None + if getattr(self, "_OAUTH_VERSION", "1.0a") == "1.0a": + response = await http_client.fetch( + self._oauth_request_token_url( + callback_uri=callback_uri, extra_params=extra_params + ) + ) + else: + response = await http_client.fetch(self._oauth_request_token_url()) + url = self._OAUTH_AUTHORIZE_URL # type: ignore + self._on_request_token(url, callback_uri, response) + + async def get_authenticated_user( + self, http_client: httpclient.AsyncHTTPClient = None + ) -> Dict[str, Any]: + """Gets the OAuth authorized user and access token. + + This method should be called from the handler for your + OAuth callback URL to complete the registration process. We run the + callback with the authenticated user dictionary. This dictionary + will contain an ``access_key`` which can be used to make authorized + requests to this service on behalf of the user. The dictionary will + also contain other fields such as ``name``, depending on the service + used. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + awaitable object instead. + """ + handler = cast(RequestHandler, self) + request_key = escape.utf8(handler.get_argument("oauth_token")) + oauth_verifier = handler.get_argument("oauth_verifier", None) + request_cookie = handler.get_cookie("_oauth_request_token") + if not request_cookie: + raise AuthError("Missing OAuth request token cookie") + handler.clear_cookie("_oauth_request_token") + cookie_key, cookie_secret = [ + base64.b64decode(escape.utf8(i)) for i in request_cookie.split("|") + ] + if cookie_key != request_key: + raise AuthError("Request token does not match cookie") + token = dict( + key=cookie_key, secret=cookie_secret + ) # type: Dict[str, Union[str, bytes]] + if oauth_verifier: + token["verifier"] = oauth_verifier + if http_client is None: + http_client = self.get_auth_http_client() + assert http_client is not None + response = await http_client.fetch(self._oauth_access_token_url(token)) + access_token = _oauth_parse_response(response.body) + user = await self._oauth_get_user_future(access_token) + if not user: + raise AuthError("Error getting user") + user["access_token"] = access_token + return user + + def _oauth_request_token_url( + self, callback_uri: str = None, extra_params: Dict[str, Any] = None + ) -> str: + handler = cast(RequestHandler, self) + consumer_token = self._oauth_consumer_token() + url = self._OAUTH_REQUEST_TOKEN_URL # type: ignore + args = dict( + oauth_consumer_key=escape.to_basestring(consumer_token["key"]), + oauth_signature_method="HMAC-SHA1", + oauth_timestamp=str(int(time.time())), + oauth_nonce=escape.to_basestring(binascii.b2a_hex(uuid.uuid4().bytes)), + oauth_version="1.0", + ) + if getattr(self, "_OAUTH_VERSION", "1.0a") == "1.0a": + if callback_uri == "oob": + args["oauth_callback"] = "oob" + elif callback_uri: + args["oauth_callback"] = urllib.parse.urljoin( + handler.request.full_url(), callback_uri + ) + if extra_params: + args.update(extra_params) + signature = _oauth10a_signature(consumer_token, "GET", url, args) + else: + signature = _oauth_signature(consumer_token, "GET", url, args) + + args["oauth_signature"] = signature + return url + "?" + urllib.parse.urlencode(args) + + def _on_request_token( + self, + authorize_url: str, + callback_uri: Optional[str], + response: httpclient.HTTPResponse, + ) -> None: + handler = cast(RequestHandler, self) + request_token = _oauth_parse_response(response.body) + data = ( + base64.b64encode(escape.utf8(request_token["key"])) + + b"|" + + base64.b64encode(escape.utf8(request_token["secret"])) + ) + handler.set_cookie("_oauth_request_token", data) + args = dict(oauth_token=request_token["key"]) + if callback_uri == "oob": + handler.finish(authorize_url + "?" + urllib.parse.urlencode(args)) + return + elif callback_uri: + args["oauth_callback"] = urllib.parse.urljoin( + handler.request.full_url(), callback_uri + ) + handler.redirect(authorize_url + "?" + urllib.parse.urlencode(args)) + + def _oauth_access_token_url(self, request_token: Dict[str, Any]) -> str: + consumer_token = self._oauth_consumer_token() + url = self._OAUTH_ACCESS_TOKEN_URL # type: ignore + args = dict( + oauth_consumer_key=escape.to_basestring(consumer_token["key"]), + oauth_token=escape.to_basestring(request_token["key"]), + oauth_signature_method="HMAC-SHA1", + oauth_timestamp=str(int(time.time())), + oauth_nonce=escape.to_basestring(binascii.b2a_hex(uuid.uuid4().bytes)), + oauth_version="1.0", + ) + if "verifier" in request_token: + args["oauth_verifier"] = request_token["verifier"] + + if getattr(self, "_OAUTH_VERSION", "1.0a") == "1.0a": + signature = _oauth10a_signature( + consumer_token, "GET", url, args, request_token + ) + else: + signature = _oauth_signature( + consumer_token, "GET", url, args, request_token + ) + + args["oauth_signature"] = signature + return url + "?" + urllib.parse.urlencode(args) + + def _oauth_consumer_token(self) -> Dict[str, Any]: + """Subclasses must override this to return their OAuth consumer keys. + + The return value should be a `dict` with keys ``key`` and ``secret``. + """ + raise NotImplementedError() + + async def _oauth_get_user_future( + self, access_token: Dict[str, Any] + ) -> Dict[str, Any]: + """Subclasses must override this to get basic information about the + user. + + Should be a coroutine whose result is a dictionary + containing information about the user, which may have been + retrieved by using ``access_token`` to make a request to the + service. + + The access token will be added to the returned dictionary to make + the result of `get_authenticated_user`. + + .. versionchanged:: 5.1 + + Subclasses may also define this method with ``async def``. + + .. versionchanged:: 6.0 + + A synchronous fallback to ``_oauth_get_user`` was removed. + """ + raise NotImplementedError() + + def _oauth_request_parameters( + self, + url: str, + access_token: Dict[str, Any], + parameters: Dict[str, Any] = {}, + method: str = "GET", + ) -> Dict[str, Any]: + """Returns the OAuth parameters as a dict for the given request. + + parameters should include all POST arguments and query string arguments + that will be sent with the request. + """ + consumer_token = self._oauth_consumer_token() + base_args = dict( + oauth_consumer_key=escape.to_basestring(consumer_token["key"]), + oauth_token=escape.to_basestring(access_token["key"]), + oauth_signature_method="HMAC-SHA1", + oauth_timestamp=str(int(time.time())), + oauth_nonce=escape.to_basestring(binascii.b2a_hex(uuid.uuid4().bytes)), + oauth_version="1.0", + ) + args = {} + args.update(base_args) + args.update(parameters) + if getattr(self, "_OAUTH_VERSION", "1.0a") == "1.0a": + signature = _oauth10a_signature( + consumer_token, method, url, args, access_token + ) + else: + signature = _oauth_signature( + consumer_token, method, url, args, access_token + ) + base_args["oauth_signature"] = escape.to_basestring(signature) + return base_args + + def get_auth_http_client(self) -> httpclient.AsyncHTTPClient: + """Returns the `.AsyncHTTPClient` instance to be used for auth requests. + + May be overridden by subclasses to use an HTTP client other than + the default. + """ + return httpclient.AsyncHTTPClient() + + +class OAuth2Mixin(object): + """Abstract implementation of OAuth 2.0. + + See `FacebookGraphMixin` or `GoogleOAuth2Mixin` below for example + implementations. + + Class attributes: + + * ``_OAUTH_AUTHORIZE_URL``: The service's authorization url. + * ``_OAUTH_ACCESS_TOKEN_URL``: The service's access token url. + """ + + def authorize_redirect( + self, + redirect_uri: str = None, + client_id: str = None, + client_secret: str = None, + extra_params: Dict[str, Any] = None, + scope: str = None, + response_type: str = "code", + ) -> None: + """Redirects the user to obtain OAuth authorization for this service. + + Some providers require that you register a redirect URL with + your application instead of passing one via this method. You + should call this method to log the user in, and then call + ``get_authenticated_user`` in the handler for your + redirect URL to complete the authorization process. + + .. versionchanged:: 6.0 + + The ``callback`` argument and returned awaitable were removed; + this is now an ordinary synchronous function. + """ + handler = cast(RequestHandler, self) + args = {"response_type": response_type} + if redirect_uri is not None: + args["redirect_uri"] = redirect_uri + if client_id is not None: + args["client_id"] = client_id + if extra_params: + args.update(extra_params) + if scope: + args["scope"] = " ".join(scope) + url = self._OAUTH_AUTHORIZE_URL # type: ignore + handler.redirect(url_concat(url, args)) + + def _oauth_request_token_url( + self, + redirect_uri: str = None, + client_id: str = None, + client_secret: str = None, + code: str = None, + extra_params: Dict[str, Any] = None, + ) -> str: + url = self._OAUTH_ACCESS_TOKEN_URL # type: ignore + args = {} # type: Dict[str, str] + if redirect_uri is not None: + args["redirect_uri"] = redirect_uri + if code is not None: + args["code"] = code + if client_id is not None: + args["client_id"] = client_id + if client_secret is not None: + args["client_secret"] = client_secret + if extra_params: + args.update(extra_params) + return url_concat(url, args) + + async def oauth2_request( + self, + url: str, + access_token: str = None, + post_args: Dict[str, Any] = None, + **args: Any + ) -> Any: + """Fetches the given URL auth an OAuth2 access token. + + If the request is a POST, ``post_args`` should be provided. Query + string arguments should be given as keyword arguments. + + Example usage: + + ..testcode:: + + class MainHandler(tornado.web.RequestHandler, + tornado.auth.FacebookGraphMixin): + @tornado.web.authenticated + async def get(self): + new_entry = await self.oauth2_request( + "https://graph.facebook.com/me/feed", + post_args={"message": "I am posting from my Tornado application!"}, + access_token=self.current_user["access_token"]) + + if not new_entry: + # Call failed; perhaps missing permission? + await self.authorize_redirect() + return + self.finish("Posted a message!") + + .. testoutput:: + :hide: + + .. versionadded:: 4.3 + + .. versionchanged::: 6.0 + + The ``callback`` argument was removed. Use the returned awaitable object instead. + """ + all_args = {} + if access_token: + all_args["access_token"] = access_token + all_args.update(args) + + if all_args: + url += "?" + urllib.parse.urlencode(all_args) + http = self.get_auth_http_client() + if post_args is not None: + response = await http.fetch( + url, method="POST", body=urllib.parse.urlencode(post_args) + ) + else: + response = await http.fetch(url) + return escape.json_decode(response.body) + + def get_auth_http_client(self) -> httpclient.AsyncHTTPClient: + """Returns the `.AsyncHTTPClient` instance to be used for auth requests. + + May be overridden by subclasses to use an HTTP client other than + the default. + + .. versionadded:: 4.3 + """ + return httpclient.AsyncHTTPClient() + + +class TwitterMixin(OAuthMixin): + """Twitter OAuth authentication. + + To authenticate with Twitter, register your application with + Twitter at http://twitter.com/apps. Then copy your Consumer Key + and Consumer Secret to the application + `~tornado.web.Application.settings` ``twitter_consumer_key`` and + ``twitter_consumer_secret``. Use this mixin on the handler for the + URL you registered as your application's callback URL. + + When your application is set up, you can use this mixin like this + to authenticate the user with Twitter and get access to their stream: + + .. testcode:: + + class TwitterLoginHandler(tornado.web.RequestHandler, + tornado.auth.TwitterMixin): + async def get(self): + if self.get_argument("oauth_token", None): + user = await self.get_authenticated_user() + # Save the user using e.g. set_secure_cookie() + else: + await self.authorize_redirect() + + .. testoutput:: + :hide: + + The user object returned by `~OAuthMixin.get_authenticated_user` + includes the attributes ``username``, ``name``, ``access_token``, + and all of the custom Twitter user attributes described at + https://dev.twitter.com/docs/api/1.1/get/users/show + """ + + _OAUTH_REQUEST_TOKEN_URL = "https://api.twitter.com/oauth/request_token" + _OAUTH_ACCESS_TOKEN_URL = "https://api.twitter.com/oauth/access_token" + _OAUTH_AUTHORIZE_URL = "https://api.twitter.com/oauth/authorize" + _OAUTH_AUTHENTICATE_URL = "https://api.twitter.com/oauth/authenticate" + _OAUTH_NO_CALLBACKS = False + _TWITTER_BASE_URL = "https://api.twitter.com/1.1" + + async def authenticate_redirect(self, callback_uri: str = None) -> None: + """Just like `~OAuthMixin.authorize_redirect`, but + auto-redirects if authorized. + + This is generally the right interface to use if you are using + Twitter for single-sign on. + + .. versionchanged:: 3.1 + Now returns a `.Future` and takes an optional callback, for + compatibility with `.gen.coroutine`. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + awaitable object instead. + """ + http = self.get_auth_http_client() + response = await http.fetch( + self._oauth_request_token_url(callback_uri=callback_uri) + ) + self._on_request_token(self._OAUTH_AUTHENTICATE_URL, None, response) + + async def twitter_request( + self, + path: str, + access_token: Dict[str, Any], + post_args: Dict[str, Any] = None, + **args: Any + ) -> Any: + """Fetches the given API path, e.g., ``statuses/user_timeline/btaylor`` + + The path should not include the format or API version number. + (we automatically use JSON format and API version 1). + + If the request is a POST, ``post_args`` should be provided. Query + string arguments should be given as keyword arguments. + + All the Twitter methods are documented at http://dev.twitter.com/ + + Many methods require an OAuth access token which you can + obtain through `~OAuthMixin.authorize_redirect` and + `~OAuthMixin.get_authenticated_user`. The user returned through that + process includes an 'access_token' attribute that can be used + to make authenticated requests via this method. Example + usage: + + .. testcode:: + + class MainHandler(tornado.web.RequestHandler, + tornado.auth.TwitterMixin): + @tornado.web.authenticated + async def get(self): + new_entry = await self.twitter_request( + "/statuses/update", + post_args={"status": "Testing Tornado Web Server"}, + access_token=self.current_user["access_token"]) + if not new_entry: + # Call failed; perhaps missing permission? + yield self.authorize_redirect() + return + self.finish("Posted a message!") + + .. testoutput:: + :hide: + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + awaitable object instead. + """ + if path.startswith("http:") or path.startswith("https:"): + # Raw urls are useful for e.g. search which doesn't follow the + # usual pattern: http://search.twitter.com/search.json + url = path + else: + url = self._TWITTER_BASE_URL + path + ".json" + # Add the OAuth resource request signature if we have credentials + if access_token: + all_args = {} + all_args.update(args) + all_args.update(post_args or {}) + method = "POST" if post_args is not None else "GET" + oauth = self._oauth_request_parameters( + url, access_token, all_args, method=method + ) + args.update(oauth) + if args: + url += "?" + urllib.parse.urlencode(args) + http = self.get_auth_http_client() + if post_args is not None: + response = await http.fetch( + url, method="POST", body=urllib.parse.urlencode(post_args) + ) + else: + response = await http.fetch(url) + return escape.json_decode(response.body) + + def _oauth_consumer_token(self) -> Dict[str, Any]: + handler = cast(RequestHandler, self) + handler.require_setting("twitter_consumer_key", "Twitter OAuth") + handler.require_setting("twitter_consumer_secret", "Twitter OAuth") + return dict( + key=handler.settings["twitter_consumer_key"], + secret=handler.settings["twitter_consumer_secret"], + ) + + async def _oauth_get_user_future( + self, access_token: Dict[str, Any] + ) -> Dict[str, Any]: + user = await self.twitter_request( + "/account/verify_credentials", access_token=access_token + ) + if user: + user["username"] = user["screen_name"] + return user + + +class GoogleOAuth2Mixin(OAuth2Mixin): + """Google authentication using OAuth2. + + In order to use, register your application with Google and copy the + relevant parameters to your application settings. + + * Go to the Google Dev Console at http://console.developers.google.com + * Select a project, or create a new one. + * In the sidebar on the left, select APIs & Auth. + * In the list of APIs, find the Google+ API service and set it to ON. + * In the sidebar on the left, select Credentials. + * In the OAuth section of the page, select Create New Client ID. + * Set the Redirect URI to point to your auth handler + * Copy the "Client secret" and "Client ID" to the application settings as + ``{"google_oauth": {"key": CLIENT_ID, "secret": CLIENT_SECRET}}`` + + .. versionadded:: 3.2 + """ + + _OAUTH_AUTHORIZE_URL = "https://accounts.google.com/o/oauth2/v2/auth" + _OAUTH_ACCESS_TOKEN_URL = "https://www.googleapis.com/oauth2/v4/token" + _OAUTH_USERINFO_URL = "https://www.googleapis.com/oauth2/v1/userinfo" + _OAUTH_NO_CALLBACKS = False + _OAUTH_SETTINGS_KEY = "google_oauth" + + async def get_authenticated_user( + self, redirect_uri: str, code: str + ) -> Dict[str, Any]: + """Handles the login for the Google user, returning an access token. + + The result is a dictionary containing an ``access_token`` field + ([among others](https://developers.google.com/identity/protocols/OAuth2WebServer#handlingtheresponse)). + Unlike other ``get_authenticated_user`` methods in this package, + this method does not return any additional information about the user. + The returned access token can be used with `OAuth2Mixin.oauth2_request` + to request additional information (perhaps from + ``https://www.googleapis.com/oauth2/v2/userinfo``) + + Example usage: + + .. testcode:: + + class GoogleOAuth2LoginHandler(tornado.web.RequestHandler, + tornado.auth.GoogleOAuth2Mixin): + async def get(self): + if self.get_argument('code', False): + access = await self.get_authenticated_user( + redirect_uri='http://your.site.com/auth/google', + code=self.get_argument('code')) + user = await self.oauth2_request( + "https://www.googleapis.com/oauth2/v1/userinfo", + access_token=access["access_token"]) + # Save the user and access token with + # e.g. set_secure_cookie. + else: + await self.authorize_redirect( + redirect_uri='http://your.site.com/auth/google', + client_id=self.settings['google_oauth']['key'], + scope=['profile', 'email'], + response_type='code', + extra_params={'approval_prompt': 'auto'}) + + .. testoutput:: + :hide: + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned awaitable object instead. + """ # noqa: E501 + handler = cast(RequestHandler, self) + http = self.get_auth_http_client() + body = urllib.parse.urlencode( + { + "redirect_uri": redirect_uri, + "code": code, + "client_id": handler.settings[self._OAUTH_SETTINGS_KEY]["key"], + "client_secret": handler.settings[self._OAUTH_SETTINGS_KEY]["secret"], + "grant_type": "authorization_code", + } + ) + + response = await http.fetch( + self._OAUTH_ACCESS_TOKEN_URL, + method="POST", + headers={"Content-Type": "application/x-www-form-urlencoded"}, + body=body, + ) + return escape.json_decode(response.body) + + +class FacebookGraphMixin(OAuth2Mixin): + """Facebook authentication using the new Graph API and OAuth2.""" + + _OAUTH_ACCESS_TOKEN_URL = "https://graph.facebook.com/oauth/access_token?" + _OAUTH_AUTHORIZE_URL = "https://www.facebook.com/dialog/oauth?" + _OAUTH_NO_CALLBACKS = False + _FACEBOOK_BASE_URL = "https://graph.facebook.com" + + async def get_authenticated_user( + self, + redirect_uri: str, + client_id: str, + client_secret: str, + code: str, + extra_fields: Dict[str, Any] = None, + ) -> Optional[Dict[str, Any]]: + """Handles the login for the Facebook user, returning a user object. + + Example usage: + + .. testcode:: + + class FacebookGraphLoginHandler(tornado.web.RequestHandler, + tornado.auth.FacebookGraphMixin): + async def get(self): + if self.get_argument("code", False): + user = await self.get_authenticated_user( + redirect_uri='/auth/facebookgraph/', + client_id=self.settings["facebook_api_key"], + client_secret=self.settings["facebook_secret"], + code=self.get_argument("code")) + # Save the user with e.g. set_secure_cookie + else: + await self.authorize_redirect( + redirect_uri='/auth/facebookgraph/', + client_id=self.settings["facebook_api_key"], + extra_params={"scope": "read_stream,offline_access"}) + + .. testoutput:: + :hide: + + This method returns a dictionary which may contain the following fields: + + * ``access_token``, a string which may be passed to `facebook_request` + * ``session_expires``, an integer encoded as a string representing + the time until the access token expires in seconds. This field should + be used like ``int(user['session_expires'])``; in a future version of + Tornado it will change from a string to an integer. + * ``id``, ``name``, ``first_name``, ``last_name``, ``locale``, ``picture``, + ``link``, plus any fields named in the ``extra_fields`` argument. These + fields are copied from the Facebook graph API + `user object `_ + + .. versionchanged:: 4.5 + The ``session_expires`` field was updated to support changes made to the + Facebook API in March 2017. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned awaitable object instead. + """ + http = self.get_auth_http_client() + args = { + "redirect_uri": redirect_uri, + "code": code, + "client_id": client_id, + "client_secret": client_secret, + } + + fields = set( + ["id", "name", "first_name", "last_name", "locale", "picture", "link"] + ) + if extra_fields: + fields.update(extra_fields) + + response = await http.fetch( + self._oauth_request_token_url(**args) # type: ignore + ) + args = escape.json_decode(response.body) + session = { + "access_token": args.get("access_token"), + "expires_in": args.get("expires_in"), + } + assert session["access_token"] is not None + + user = await self.facebook_request( + path="/me", + access_token=session["access_token"], + appsecret_proof=hmac.new( + key=client_secret.encode("utf8"), + msg=session["access_token"].encode("utf8"), + digestmod=hashlib.sha256, + ).hexdigest(), + fields=",".join(fields), + ) + + if user is None: + return None + + fieldmap = {} + for field in fields: + fieldmap[field] = user.get(field) + + # session_expires is converted to str for compatibility with + # older versions in which the server used url-encoding and + # this code simply returned the string verbatim. + # This should change in Tornado 5.0. + fieldmap.update( + { + "access_token": session["access_token"], + "session_expires": str(session.get("expires_in")), + } + ) + return fieldmap + + async def facebook_request( + self, + path: str, + access_token: str = None, + post_args: Dict[str, Any] = None, + **args: Any + ) -> Any: + """Fetches the given relative API path, e.g., "/btaylor/picture" + + If the request is a POST, ``post_args`` should be provided. Query + string arguments should be given as keyword arguments. + + An introduction to the Facebook Graph API can be found at + http://developers.facebook.com/docs/api + + Many methods require an OAuth access token which you can + obtain through `~OAuth2Mixin.authorize_redirect` and + `get_authenticated_user`. The user returned through that + process includes an ``access_token`` attribute that can be + used to make authenticated requests via this method. + + Example usage: + + .. testcode:: + + class MainHandler(tornado.web.RequestHandler, + tornado.auth.FacebookGraphMixin): + @tornado.web.authenticated + async def get(self): + new_entry = await self.facebook_request( + "/me/feed", + post_args={"message": "I am posting from my Tornado application!"}, + access_token=self.current_user["access_token"]) + + if not new_entry: + # Call failed; perhaps missing permission? + yield self.authorize_redirect() + return + self.finish("Posted a message!") + + .. testoutput:: + :hide: + + The given path is relative to ``self._FACEBOOK_BASE_URL``, + by default "https://graph.facebook.com". + + This method is a wrapper around `OAuth2Mixin.oauth2_request`; + the only difference is that this method takes a relative path, + while ``oauth2_request`` takes a complete url. + + .. versionchanged:: 3.1 + Added the ability to override ``self._FACEBOOK_BASE_URL``. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned awaitable object instead. + """ + url = self._FACEBOOK_BASE_URL + path + return await self.oauth2_request( + url, access_token=access_token, post_args=post_args, **args + ) + + +def _oauth_signature( + consumer_token: Dict[str, Any], + method: str, + url: str, + parameters: Dict[str, Any] = {}, + token: Dict[str, Any] = None, +) -> bytes: + """Calculates the HMAC-SHA1 OAuth signature for the given request. + + See http://oauth.net/core/1.0/#signing_process + """ + parts = urllib.parse.urlparse(url) + scheme, netloc, path = parts[:3] + normalized_url = scheme.lower() + "://" + netloc.lower() + path + + base_elems = [] + base_elems.append(method.upper()) + base_elems.append(normalized_url) + base_elems.append( + "&".join( + "%s=%s" % (k, _oauth_escape(str(v))) for k, v in sorted(parameters.items()) + ) + ) + base_string = "&".join(_oauth_escape(e) for e in base_elems) + + key_elems = [escape.utf8(consumer_token["secret"])] + key_elems.append(escape.utf8(token["secret"] if token else "")) + key = b"&".join(key_elems) + + hash = hmac.new(key, escape.utf8(base_string), hashlib.sha1) + return binascii.b2a_base64(hash.digest())[:-1] + + +def _oauth10a_signature( + consumer_token: Dict[str, Any], + method: str, + url: str, + parameters: Dict[str, Any] = {}, + token: Dict[str, Any] = None, +) -> bytes: + """Calculates the HMAC-SHA1 OAuth 1.0a signature for the given request. + + See http://oauth.net/core/1.0a/#signing_process + """ + parts = urllib.parse.urlparse(url) + scheme, netloc, path = parts[:3] + normalized_url = scheme.lower() + "://" + netloc.lower() + path + + base_elems = [] + base_elems.append(method.upper()) + base_elems.append(normalized_url) + base_elems.append( + "&".join( + "%s=%s" % (k, _oauth_escape(str(v))) for k, v in sorted(parameters.items()) + ) + ) + + base_string = "&".join(_oauth_escape(e) for e in base_elems) + key_elems = [escape.utf8(urllib.parse.quote(consumer_token["secret"], safe="~"))] + key_elems.append( + escape.utf8(urllib.parse.quote(token["secret"], safe="~") if token else "") + ) + key = b"&".join(key_elems) + + hash = hmac.new(key, escape.utf8(base_string), hashlib.sha1) + return binascii.b2a_base64(hash.digest())[:-1] + + +def _oauth_escape(val: Union[str, bytes]) -> str: + if isinstance(val, unicode_type): + val = val.encode("utf-8") + return urllib.parse.quote(val, safe="~") + + +def _oauth_parse_response(body: bytes) -> Dict[str, Any]: + # I can't find an officially-defined encoding for oauth responses and + # have never seen anyone use non-ascii. Leave the response in a byte + # string for python 2, and use utf8 on python 3. + body_str = escape.native_str(body) + p = urllib.parse.parse_qs(body_str, keep_blank_values=False) + token = dict(key=p["oauth_token"][0], secret=p["oauth_token_secret"][0]) + + # Add the extra parameters the Provider included to the token + special = ("oauth_token", "oauth_token_secret") + token.update((k, p[k][0]) for k in p if k not in special) + return token diff --git a/server/www/packages/packages-linux/x64/tornado/autoreload.py b/server/www/packages/packages-linux/x64/tornado/autoreload.py index 1c47aae..eddb033 100644 --- a/server/www/packages/packages-linux/x64/tornado/autoreload.py +++ b/server/www/packages/packages-linux/x64/tornado/autoreload.py @@ -1,364 +1,364 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Automatically restart the server when a source file is modified. - -Most applications should not access this module directly. Instead, -pass the keyword argument ``autoreload=True`` to the -`tornado.web.Application` constructor (or ``debug=True``, which -enables this setting and several others). This will enable autoreload -mode as well as checking for changes to templates and static -resources. Note that restarting is a destructive operation and any -requests in progress will be aborted when the process restarts. (If -you want to disable autoreload while using other debug-mode features, -pass both ``debug=True`` and ``autoreload=False``). - -This module can also be used as a command-line wrapper around scripts -such as unit test runners. See the `main` method for details. - -The command-line wrapper and Application debug modes can be used together. -This combination is encouraged as the wrapper catches syntax errors and -other import-time failures, while debug mode catches changes once -the server has started. - -This module will not work correctly when `.HTTPServer`'s multi-process -mode is used. - -Reloading loses any Python interpreter command-line arguments (e.g. ``-u``) -because it re-executes Python using ``sys.executable`` and ``sys.argv``. -Additionally, modifying these variables will cause reloading to behave -incorrectly. - -""" - -import os -import sys - -# sys.path handling -# ----------------- -# -# If a module is run with "python -m", the current directory (i.e. "") -# is automatically prepended to sys.path, but not if it is run as -# "path/to/file.py". The processing for "-m" rewrites the former to -# the latter, so subsequent executions won't have the same path as the -# original. -# -# Conversely, when run as path/to/file.py, the directory containing -# file.py gets added to the path, which can cause confusion as imports -# may become relative in spite of the future import. -# -# We address the former problem by reconstructing the original command -# line (Python >= 3.4) or by setting the $PYTHONPATH environment -# variable (Python < 3.4) before re-execution so the new process will -# see the correct path. We attempt to address the latter problem when -# tornado.autoreload is run as __main__. - -if __name__ == "__main__": - # This sys.path manipulation must come before our imports (as much - # as possible - if we introduced a tornado.sys or tornado.os - # module we'd be in trouble), or else our imports would become - # relative again despite the future import. - # - # There is a separate __main__ block at the end of the file to call main(). - if sys.path[0] == os.path.dirname(__file__): - del sys.path[0] - -import functools -import logging -import os -import pkgutil # type: ignore -import sys -import traceback -import types -import subprocess -import weakref - -from tornado import ioloop -from tornado.log import gen_log -from tornado import process -from tornado.util import exec_in - -try: - import signal -except ImportError: - signal = None # type: ignore - -import typing -from typing import Callable, Dict - -if typing.TYPE_CHECKING: - from typing import List, Optional, Union # noqa: F401 - -# os.execv is broken on Windows and can't properly parse command line -# arguments and executable name if they contain whitespaces. subprocess -# fixes that behavior. -_has_execv = sys.platform != "win32" - -_watched_files = set() -_reload_hooks = [] -_reload_attempted = False -_io_loops = weakref.WeakKeyDictionary() # type: ignore -_autoreload_is_main = False -_original_argv = None # type: Optional[List[str]] -_original_spec = None - - -def start(check_time: int = 500) -> None: - """Begins watching source files for changes. - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been removed. - """ - io_loop = ioloop.IOLoop.current() - if io_loop in _io_loops: - return - _io_loops[io_loop] = True - if len(_io_loops) > 1: - gen_log.warning("tornado.autoreload started more than once in the same process") - modify_times = {} # type: Dict[str, float] - callback = functools.partial(_reload_on_update, modify_times) - scheduler = ioloop.PeriodicCallback(callback, check_time) - scheduler.start() - - -def wait() -> None: - """Wait for a watched file to change, then restart the process. - - Intended to be used at the end of scripts like unit test runners, - to run the tests again after any source file changes (but see also - the command-line interface in `main`) - """ - io_loop = ioloop.IOLoop() - io_loop.add_callback(start) - io_loop.start() - - -def watch(filename: str) -> None: - """Add a file to the watch list. - - All imported modules are watched by default. - """ - _watched_files.add(filename) - - -def add_reload_hook(fn: Callable[[], None]) -> None: - """Add a function to be called before reloading the process. - - Note that for open file and socket handles it is generally - preferable to set the ``FD_CLOEXEC`` flag (using `fcntl` or - ``tornado.platform.auto.set_close_exec``) instead - of using a reload hook to close them. - """ - _reload_hooks.append(fn) - - -def _reload_on_update(modify_times: Dict[str, float]) -> None: - if _reload_attempted: - # We already tried to reload and it didn't work, so don't try again. - return - if process.task_id() is not None: - # We're in a child process created by fork_processes. If child - # processes restarted themselves, they'd all restart and then - # all call fork_processes again. - return - for module in list(sys.modules.values()): - # Some modules play games with sys.modules (e.g. email/__init__.py - # in the standard library), and occasionally this can cause strange - # failures in getattr. Just ignore anything that's not an ordinary - # module. - if not isinstance(module, types.ModuleType): - continue - path = getattr(module, "__file__", None) - if not path: - continue - if path.endswith(".pyc") or path.endswith(".pyo"): - path = path[:-1] - _check_file(modify_times, path) - for path in _watched_files: - _check_file(modify_times, path) - - -def _check_file(modify_times: Dict[str, float], path: str) -> None: - try: - modified = os.stat(path).st_mtime - except Exception: - return - if path not in modify_times: - modify_times[path] = modified - return - if modify_times[path] != modified: - gen_log.info("%s modified; restarting server", path) - _reload() - - -def _reload() -> None: - global _reload_attempted - _reload_attempted = True - for fn in _reload_hooks: - fn() - if hasattr(signal, "setitimer"): - # Clear the alarm signal set by - # ioloop.set_blocking_log_threshold so it doesn't fire - # after the exec. - signal.setitimer(signal.ITIMER_REAL, 0, 0) - # sys.path fixes: see comments at top of file. If __main__.__spec__ - # exists, we were invoked with -m and the effective path is about to - # change on re-exec. Reconstruct the original command line to - # ensure that the new process sees the same path we did. If - # __spec__ is not available (Python < 3.4), check instead if - # sys.path[0] is an empty string and add the current directory to - # $PYTHONPATH. - if _autoreload_is_main: - assert _original_argv is not None - spec = _original_spec - argv = _original_argv - else: - spec = getattr(sys.modules["__main__"], "__spec__", None) - argv = sys.argv - if spec: - argv = ["-m", spec.name] + argv[1:] - else: - path_prefix = "." + os.pathsep - if sys.path[0] == "" and not os.environ.get("PYTHONPATH", "").startswith( - path_prefix - ): - os.environ["PYTHONPATH"] = path_prefix + os.environ.get("PYTHONPATH", "") - if not _has_execv: - subprocess.Popen([sys.executable] + argv) - os._exit(0) - else: - try: - os.execv(sys.executable, [sys.executable] + argv) - except OSError: - # Mac OS X versions prior to 10.6 do not support execv in - # a process that contains multiple threads. Instead of - # re-executing in the current process, start a new one - # and cause the current process to exit. This isn't - # ideal since the new process is detached from the parent - # terminal and thus cannot easily be killed with ctrl-C, - # but it's better than not being able to autoreload at - # all. - # Unfortunately the errno returned in this case does not - # appear to be consistent, so we can't easily check for - # this error specifically. - os.spawnv( # type: ignore - os.P_NOWAIT, sys.executable, [sys.executable] + argv - ) - # At this point the IOLoop has been closed and finally - # blocks will experience errors if we allow the stack to - # unwind, so just exit uncleanly. - os._exit(0) - - -_USAGE = """\ -Usage: - python -m tornado.autoreload -m module.to.run [args...] - python -m tornado.autoreload path/to/script.py [args...] -""" - - -def main() -> None: - """Command-line wrapper to re-run a script whenever its source changes. - - Scripts may be specified by filename or module name:: - - python -m tornado.autoreload -m tornado.test.runtests - python -m tornado.autoreload tornado/test/runtests.py - - Running a script with this wrapper is similar to calling - `tornado.autoreload.wait` at the end of the script, but this wrapper - can catch import-time problems like syntax errors that would otherwise - prevent the script from reaching its call to `wait`. - """ - # Remember that we were launched with autoreload as main. - # The main module can be tricky; set the variables both in our globals - # (which may be __main__) and the real importable version. - import tornado.autoreload - - global _autoreload_is_main - global _original_argv, _original_spec - tornado.autoreload._autoreload_is_main = _autoreload_is_main = True - original_argv = sys.argv - tornado.autoreload._original_argv = _original_argv = original_argv - original_spec = getattr(sys.modules["__main__"], "__spec__", None) - tornado.autoreload._original_spec = _original_spec = original_spec - sys.argv = sys.argv[:] - if len(sys.argv) >= 3 and sys.argv[1] == "-m": - mode = "module" - module = sys.argv[2] - del sys.argv[1:3] - elif len(sys.argv) >= 2: - mode = "script" - script = sys.argv[1] - sys.argv = sys.argv[1:] - else: - print(_USAGE, file=sys.stderr) - sys.exit(1) - - try: - if mode == "module": - import runpy - - runpy.run_module(module, run_name="__main__", alter_sys=True) - elif mode == "script": - with open(script) as f: - # Execute the script in our namespace instead of creating - # a new one so that something that tries to import __main__ - # (e.g. the unittest module) will see names defined in the - # script instead of just those defined in this module. - global __file__ - __file__ = script - # If __package__ is defined, imports may be incorrectly - # interpreted as relative to this module. - global __package__ - del __package__ - exec_in(f.read(), globals(), globals()) - except SystemExit as e: - logging.basicConfig() - gen_log.info("Script exited with status %s", e.code) - except Exception as e: - logging.basicConfig() - gen_log.warning("Script exited with uncaught exception", exc_info=True) - # If an exception occurred at import time, the file with the error - # never made it into sys.modules and so we won't know to watch it. - # Just to make sure we've covered everything, walk the stack trace - # from the exception and watch every file. - for (filename, lineno, name, line) in traceback.extract_tb(sys.exc_info()[2]): - watch(filename) - if isinstance(e, SyntaxError): - # SyntaxErrors are special: their innermost stack frame is fake - # so extract_tb won't see it and we have to get the filename - # from the exception object. - watch(e.filename) - else: - logging.basicConfig() - gen_log.info("Script exited normally") - # restore sys.argv so subsequent executions will include autoreload - sys.argv = original_argv - - if mode == "module": - # runpy did a fake import of the module as __main__, but now it's - # no longer in sys.modules. Figure out where it is and watch it. - loader = pkgutil.get_loader(module) - if loader is not None: - watch(loader.get_filename()) # type: ignore - - wait() - - -if __name__ == "__main__": - # See also the other __main__ block at the top of the file, which modifies - # sys.path before our imports - main() +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Automatically restart the server when a source file is modified. + +Most applications should not access this module directly. Instead, +pass the keyword argument ``autoreload=True`` to the +`tornado.web.Application` constructor (or ``debug=True``, which +enables this setting and several others). This will enable autoreload +mode as well as checking for changes to templates and static +resources. Note that restarting is a destructive operation and any +requests in progress will be aborted when the process restarts. (If +you want to disable autoreload while using other debug-mode features, +pass both ``debug=True`` and ``autoreload=False``). + +This module can also be used as a command-line wrapper around scripts +such as unit test runners. See the `main` method for details. + +The command-line wrapper and Application debug modes can be used together. +This combination is encouraged as the wrapper catches syntax errors and +other import-time failures, while debug mode catches changes once +the server has started. + +This module will not work correctly when `.HTTPServer`'s multi-process +mode is used. + +Reloading loses any Python interpreter command-line arguments (e.g. ``-u``) +because it re-executes Python using ``sys.executable`` and ``sys.argv``. +Additionally, modifying these variables will cause reloading to behave +incorrectly. + +""" + +import os +import sys + +# sys.path handling +# ----------------- +# +# If a module is run with "python -m", the current directory (i.e. "") +# is automatically prepended to sys.path, but not if it is run as +# "path/to/file.py". The processing for "-m" rewrites the former to +# the latter, so subsequent executions won't have the same path as the +# original. +# +# Conversely, when run as path/to/file.py, the directory containing +# file.py gets added to the path, which can cause confusion as imports +# may become relative in spite of the future import. +# +# We address the former problem by reconstructing the original command +# line (Python >= 3.4) or by setting the $PYTHONPATH environment +# variable (Python < 3.4) before re-execution so the new process will +# see the correct path. We attempt to address the latter problem when +# tornado.autoreload is run as __main__. + +if __name__ == "__main__": + # This sys.path manipulation must come before our imports (as much + # as possible - if we introduced a tornado.sys or tornado.os + # module we'd be in trouble), or else our imports would become + # relative again despite the future import. + # + # There is a separate __main__ block at the end of the file to call main(). + if sys.path[0] == os.path.dirname(__file__): + del sys.path[0] + +import functools +import logging +import os +import pkgutil # type: ignore +import sys +import traceback +import types +import subprocess +import weakref + +from tornado import ioloop +from tornado.log import gen_log +from tornado import process +from tornado.util import exec_in + +try: + import signal +except ImportError: + signal = None # type: ignore + +import typing +from typing import Callable, Dict + +if typing.TYPE_CHECKING: + from typing import List, Optional, Union # noqa: F401 + +# os.execv is broken on Windows and can't properly parse command line +# arguments and executable name if they contain whitespaces. subprocess +# fixes that behavior. +_has_execv = sys.platform != "win32" + +_watched_files = set() +_reload_hooks = [] +_reload_attempted = False +_io_loops = weakref.WeakKeyDictionary() # type: ignore +_autoreload_is_main = False +_original_argv = None # type: Optional[List[str]] +_original_spec = None + + +def start(check_time: int = 500) -> None: + """Begins watching source files for changes. + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been removed. + """ + io_loop = ioloop.IOLoop.current() + if io_loop in _io_loops: + return + _io_loops[io_loop] = True + if len(_io_loops) > 1: + gen_log.warning("tornado.autoreload started more than once in the same process") + modify_times = {} # type: Dict[str, float] + callback = functools.partial(_reload_on_update, modify_times) + scheduler = ioloop.PeriodicCallback(callback, check_time) + scheduler.start() + + +def wait() -> None: + """Wait for a watched file to change, then restart the process. + + Intended to be used at the end of scripts like unit test runners, + to run the tests again after any source file changes (but see also + the command-line interface in `main`) + """ + io_loop = ioloop.IOLoop() + io_loop.add_callback(start) + io_loop.start() + + +def watch(filename: str) -> None: + """Add a file to the watch list. + + All imported modules are watched by default. + """ + _watched_files.add(filename) + + +def add_reload_hook(fn: Callable[[], None]) -> None: + """Add a function to be called before reloading the process. + + Note that for open file and socket handles it is generally + preferable to set the ``FD_CLOEXEC`` flag (using `fcntl` or + ``tornado.platform.auto.set_close_exec``) instead + of using a reload hook to close them. + """ + _reload_hooks.append(fn) + + +def _reload_on_update(modify_times: Dict[str, float]) -> None: + if _reload_attempted: + # We already tried to reload and it didn't work, so don't try again. + return + if process.task_id() is not None: + # We're in a child process created by fork_processes. If child + # processes restarted themselves, they'd all restart and then + # all call fork_processes again. + return + for module in list(sys.modules.values()): + # Some modules play games with sys.modules (e.g. email/__init__.py + # in the standard library), and occasionally this can cause strange + # failures in getattr. Just ignore anything that's not an ordinary + # module. + if not isinstance(module, types.ModuleType): + continue + path = getattr(module, "__file__", None) + if not path: + continue + if path.endswith(".pyc") or path.endswith(".pyo"): + path = path[:-1] + _check_file(modify_times, path) + for path in _watched_files: + _check_file(modify_times, path) + + +def _check_file(modify_times: Dict[str, float], path: str) -> None: + try: + modified = os.stat(path).st_mtime + except Exception: + return + if path not in modify_times: + modify_times[path] = modified + return + if modify_times[path] != modified: + gen_log.info("%s modified; restarting server", path) + _reload() + + +def _reload() -> None: + global _reload_attempted + _reload_attempted = True + for fn in _reload_hooks: + fn() + if hasattr(signal, "setitimer"): + # Clear the alarm signal set by + # ioloop.set_blocking_log_threshold so it doesn't fire + # after the exec. + signal.setitimer(signal.ITIMER_REAL, 0, 0) + # sys.path fixes: see comments at top of file. If __main__.__spec__ + # exists, we were invoked with -m and the effective path is about to + # change on re-exec. Reconstruct the original command line to + # ensure that the new process sees the same path we did. If + # __spec__ is not available (Python < 3.4), check instead if + # sys.path[0] is an empty string and add the current directory to + # $PYTHONPATH. + if _autoreload_is_main: + assert _original_argv is not None + spec = _original_spec + argv = _original_argv + else: + spec = getattr(sys.modules["__main__"], "__spec__", None) + argv = sys.argv + if spec: + argv = ["-m", spec.name] + argv[1:] + else: + path_prefix = "." + os.pathsep + if sys.path[0] == "" and not os.environ.get("PYTHONPATH", "").startswith( + path_prefix + ): + os.environ["PYTHONPATH"] = path_prefix + os.environ.get("PYTHONPATH", "") + if not _has_execv: + subprocess.Popen([sys.executable] + argv) + os._exit(0) + else: + try: + os.execv(sys.executable, [sys.executable] + argv) + except OSError: + # Mac OS X versions prior to 10.6 do not support execv in + # a process that contains multiple threads. Instead of + # re-executing in the current process, start a new one + # and cause the current process to exit. This isn't + # ideal since the new process is detached from the parent + # terminal and thus cannot easily be killed with ctrl-C, + # but it's better than not being able to autoreload at + # all. + # Unfortunately the errno returned in this case does not + # appear to be consistent, so we can't easily check for + # this error specifically. + os.spawnv( # type: ignore + os.P_NOWAIT, sys.executable, [sys.executable] + argv + ) + # At this point the IOLoop has been closed and finally + # blocks will experience errors if we allow the stack to + # unwind, so just exit uncleanly. + os._exit(0) + + +_USAGE = """\ +Usage: + python -m tornado.autoreload -m module.to.run [args...] + python -m tornado.autoreload path/to/script.py [args...] +""" + + +def main() -> None: + """Command-line wrapper to re-run a script whenever its source changes. + + Scripts may be specified by filename or module name:: + + python -m tornado.autoreload -m tornado.test.runtests + python -m tornado.autoreload tornado/test/runtests.py + + Running a script with this wrapper is similar to calling + `tornado.autoreload.wait` at the end of the script, but this wrapper + can catch import-time problems like syntax errors that would otherwise + prevent the script from reaching its call to `wait`. + """ + # Remember that we were launched with autoreload as main. + # The main module can be tricky; set the variables both in our globals + # (which may be __main__) and the real importable version. + import tornado.autoreload + + global _autoreload_is_main + global _original_argv, _original_spec + tornado.autoreload._autoreload_is_main = _autoreload_is_main = True + original_argv = sys.argv + tornado.autoreload._original_argv = _original_argv = original_argv + original_spec = getattr(sys.modules["__main__"], "__spec__", None) + tornado.autoreload._original_spec = _original_spec = original_spec + sys.argv = sys.argv[:] + if len(sys.argv) >= 3 and sys.argv[1] == "-m": + mode = "module" + module = sys.argv[2] + del sys.argv[1:3] + elif len(sys.argv) >= 2: + mode = "script" + script = sys.argv[1] + sys.argv = sys.argv[1:] + else: + print(_USAGE, file=sys.stderr) + sys.exit(1) + + try: + if mode == "module": + import runpy + + runpy.run_module(module, run_name="__main__", alter_sys=True) + elif mode == "script": + with open(script) as f: + # Execute the script in our namespace instead of creating + # a new one so that something that tries to import __main__ + # (e.g. the unittest module) will see names defined in the + # script instead of just those defined in this module. + global __file__ + __file__ = script + # If __package__ is defined, imports may be incorrectly + # interpreted as relative to this module. + global __package__ + del __package__ + exec_in(f.read(), globals(), globals()) + except SystemExit as e: + logging.basicConfig() + gen_log.info("Script exited with status %s", e.code) + except Exception as e: + logging.basicConfig() + gen_log.warning("Script exited with uncaught exception", exc_info=True) + # If an exception occurred at import time, the file with the error + # never made it into sys.modules and so we won't know to watch it. + # Just to make sure we've covered everything, walk the stack trace + # from the exception and watch every file. + for (filename, lineno, name, line) in traceback.extract_tb(sys.exc_info()[2]): + watch(filename) + if isinstance(e, SyntaxError): + # SyntaxErrors are special: their innermost stack frame is fake + # so extract_tb won't see it and we have to get the filename + # from the exception object. + watch(e.filename) + else: + logging.basicConfig() + gen_log.info("Script exited normally") + # restore sys.argv so subsequent executions will include autoreload + sys.argv = original_argv + + if mode == "module": + # runpy did a fake import of the module as __main__, but now it's + # no longer in sys.modules. Figure out where it is and watch it. + loader = pkgutil.get_loader(module) + if loader is not None: + watch(loader.get_filename()) # type: ignore + + wait() + + +if __name__ == "__main__": + # See also the other __main__ block at the top of the file, which modifies + # sys.path before our imports + main() diff --git a/server/www/packages/packages-linux/x64/tornado/concurrent.py b/server/www/packages/packages-linux/x64/tornado/concurrent.py index 3a49940..63c2e77 100644 --- a/server/www/packages/packages-linux/x64/tornado/concurrent.py +++ b/server/www/packages/packages-linux/x64/tornado/concurrent.py @@ -1,264 +1,264 @@ -# -# Copyright 2012 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -"""Utilities for working with ``Future`` objects. - -Tornado previously provided its own ``Future`` class, but now uses -`asyncio.Future`. This module contains utility functions for working -with `asyncio.Future` in a way that is backwards-compatible with -Tornado's old ``Future`` implementation. - -While this module is an important part of Tornado's internal -implementation, applications rarely need to interact with it -directly. - -""" - -import asyncio -from concurrent import futures -import functools -import sys -import types - -from tornado.log import app_log - -import typing -from typing import Any, Callable, Optional, Tuple, Union - -_T = typing.TypeVar("_T") - - -class ReturnValueIgnoredError(Exception): - # No longer used; was previously used by @return_future - pass - - -Future = asyncio.Future - -FUTURES = (futures.Future, Future) - - -def is_future(x: Any) -> bool: - return isinstance(x, FUTURES) - - -class DummyExecutor(futures.Executor): - def submit( - self, fn: Callable[..., _T], *args: Any, **kwargs: Any - ) -> "futures.Future[_T]": - future = futures.Future() # type: futures.Future[_T] - try: - future_set_result_unless_cancelled(future, fn(*args, **kwargs)) - except Exception: - future_set_exc_info(future, sys.exc_info()) - return future - - def shutdown(self, wait: bool = True) -> None: - pass - - -dummy_executor = DummyExecutor() - - -def run_on_executor(*args: Any, **kwargs: Any) -> Callable: - """Decorator to run a synchronous method asynchronously on an executor. - - The decorated method may be called with a ``callback`` keyword - argument and returns a future. - - The executor to be used is determined by the ``executor`` - attributes of ``self``. To use a different attribute name, pass a - keyword argument to the decorator:: - - @run_on_executor(executor='_thread_pool') - def foo(self): - pass - - This decorator should not be confused with the similarly-named - `.IOLoop.run_in_executor`. In general, using ``run_in_executor`` - when *calling* a blocking method is recommended instead of using - this decorator when *defining* a method. If compatibility with older - versions of Tornado is required, consider defining an executor - and using ``executor.submit()`` at the call site. - - .. versionchanged:: 4.2 - Added keyword arguments to use alternative attributes. - - .. versionchanged:: 5.0 - Always uses the current IOLoop instead of ``self.io_loop``. - - .. versionchanged:: 5.1 - Returns a `.Future` compatible with ``await`` instead of a - `concurrent.futures.Future`. - - .. deprecated:: 5.1 - - The ``callback`` argument is deprecated and will be removed in - 6.0. The decorator itself is discouraged in new code but will - not be removed in 6.0. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. - """ - # Fully type-checking decorators is tricky, and this one is - # discouraged anyway so it doesn't have all the generic magic. - def run_on_executor_decorator(fn: Callable) -> Callable[..., Future]: - executor = kwargs.get("executor", "executor") - - @functools.wraps(fn) - def wrapper(self: Any, *args: Any, **kwargs: Any) -> Future: - async_future = Future() # type: Future - conc_future = getattr(self, executor).submit(fn, self, *args, **kwargs) - chain_future(conc_future, async_future) - return async_future - - return wrapper - - if args and kwargs: - raise ValueError("cannot combine positional and keyword args") - if len(args) == 1: - return run_on_executor_decorator(args[0]) - elif len(args) != 0: - raise ValueError("expected 1 argument, got %d", len(args)) - return run_on_executor_decorator - - -_NO_RESULT = object() - - -def chain_future(a: "Future[_T]", b: "Future[_T]") -> None: - """Chain two futures together so that when one completes, so does the other. - - The result (success or failure) of ``a`` will be copied to ``b``, unless - ``b`` has already been completed or cancelled by the time ``a`` finishes. - - .. versionchanged:: 5.0 - - Now accepts both Tornado/asyncio `Future` objects and - `concurrent.futures.Future`. - - """ - - def copy(future: "Future[_T]") -> None: - assert future is a - if b.done(): - return - if hasattr(a, "exc_info") and a.exc_info() is not None: # type: ignore - future_set_exc_info(b, a.exc_info()) # type: ignore - elif a.exception() is not None: - b.set_exception(a.exception()) - else: - b.set_result(a.result()) - - if isinstance(a, Future): - future_add_done_callback(a, copy) - else: - # concurrent.futures.Future - from tornado.ioloop import IOLoop - - IOLoop.current().add_future(a, copy) - - -def future_set_result_unless_cancelled( - future: "Union[futures.Future[_T], Future[_T]]", value: _T -) -> None: - """Set the given ``value`` as the `Future`'s result, if not cancelled. - - Avoids ``asyncio.InvalidStateError`` when calling ``set_result()`` on - a cancelled `asyncio.Future`. - - .. versionadded:: 5.0 - """ - if not future.cancelled(): - future.set_result(value) - - -def future_set_exception_unless_cancelled( - future: "Union[futures.Future[_T], Future[_T]]", exc: BaseException -) -> None: - """Set the given ``exc`` as the `Future`'s exception. - - If the Future is already canceled, logs the exception instead. If - this logging is not desired, the caller should explicitly check - the state of the Future and call ``Future.set_exception`` instead of - this wrapper. - - Avoids ``asyncio.InvalidStateError`` when calling ``set_exception()`` on - a cancelled `asyncio.Future`. - - .. versionadded:: 6.0 - - """ - if not future.cancelled(): - future.set_exception(exc) - else: - app_log.error("Exception after Future was cancelled", exc_info=exc) - - -def future_set_exc_info( - future: "Union[futures.Future[_T], Future[_T]]", - exc_info: Tuple[ - Optional[type], Optional[BaseException], Optional[types.TracebackType] - ], -) -> None: - """Set the given ``exc_info`` as the `Future`'s exception. - - Understands both `asyncio.Future` and the extensions in older - versions of Tornado to enable better tracebacks on Python 2. - - .. versionadded:: 5.0 - - .. versionchanged:: 6.0 - - If the future is already cancelled, this function is a no-op. - (previously ``asyncio.InvalidStateError`` would be raised) - - """ - if exc_info[1] is None: - raise Exception("future_set_exc_info called with no exception") - future_set_exception_unless_cancelled(future, exc_info[1]) - - -@typing.overload -def future_add_done_callback( - future: "futures.Future[_T]", callback: Callable[["futures.Future[_T]"], None] -) -> None: - pass - - -@typing.overload # noqa: F811 -def future_add_done_callback( - future: "Future[_T]", callback: Callable[["Future[_T]"], None] -) -> None: - pass - - -def future_add_done_callback( # noqa: F811 - future: "Union[futures.Future[_T], Future[_T]]", callback: Callable[..., None] -) -> None: - """Arrange to call ``callback`` when ``future`` is complete. - - ``callback`` is invoked with one argument, the ``future``. - - If ``future`` is already done, ``callback`` is invoked immediately. - This may differ from the behavior of ``Future.add_done_callback``, - which makes no such guarantee. - - .. versionadded:: 5.0 - """ - if future.done(): - callback(future) - else: - future.add_done_callback(callback) +# +# Copyright 2012 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +"""Utilities for working with ``Future`` objects. + +Tornado previously provided its own ``Future`` class, but now uses +`asyncio.Future`. This module contains utility functions for working +with `asyncio.Future` in a way that is backwards-compatible with +Tornado's old ``Future`` implementation. + +While this module is an important part of Tornado's internal +implementation, applications rarely need to interact with it +directly. + +""" + +import asyncio +from concurrent import futures +import functools +import sys +import types + +from tornado.log import app_log + +import typing +from typing import Any, Callable, Optional, Tuple, Union + +_T = typing.TypeVar("_T") + + +class ReturnValueIgnoredError(Exception): + # No longer used; was previously used by @return_future + pass + + +Future = asyncio.Future + +FUTURES = (futures.Future, Future) + + +def is_future(x: Any) -> bool: + return isinstance(x, FUTURES) + + +class DummyExecutor(futures.Executor): + def submit( + self, fn: Callable[..., _T], *args: Any, **kwargs: Any + ) -> "futures.Future[_T]": + future = futures.Future() # type: futures.Future[_T] + try: + future_set_result_unless_cancelled(future, fn(*args, **kwargs)) + except Exception: + future_set_exc_info(future, sys.exc_info()) + return future + + def shutdown(self, wait: bool = True) -> None: + pass + + +dummy_executor = DummyExecutor() + + +def run_on_executor(*args: Any, **kwargs: Any) -> Callable: + """Decorator to run a synchronous method asynchronously on an executor. + + The decorated method may be called with a ``callback`` keyword + argument and returns a future. + + The executor to be used is determined by the ``executor`` + attributes of ``self``. To use a different attribute name, pass a + keyword argument to the decorator:: + + @run_on_executor(executor='_thread_pool') + def foo(self): + pass + + This decorator should not be confused with the similarly-named + `.IOLoop.run_in_executor`. In general, using ``run_in_executor`` + when *calling* a blocking method is recommended instead of using + this decorator when *defining* a method. If compatibility with older + versions of Tornado is required, consider defining an executor + and using ``executor.submit()`` at the call site. + + .. versionchanged:: 4.2 + Added keyword arguments to use alternative attributes. + + .. versionchanged:: 5.0 + Always uses the current IOLoop instead of ``self.io_loop``. + + .. versionchanged:: 5.1 + Returns a `.Future` compatible with ``await`` instead of a + `concurrent.futures.Future`. + + .. deprecated:: 5.1 + + The ``callback`` argument is deprecated and will be removed in + 6.0. The decorator itself is discouraged in new code but will + not be removed in 6.0. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. + """ + # Fully type-checking decorators is tricky, and this one is + # discouraged anyway so it doesn't have all the generic magic. + def run_on_executor_decorator(fn: Callable) -> Callable[..., Future]: + executor = kwargs.get("executor", "executor") + + @functools.wraps(fn) + def wrapper(self: Any, *args: Any, **kwargs: Any) -> Future: + async_future = Future() # type: Future + conc_future = getattr(self, executor).submit(fn, self, *args, **kwargs) + chain_future(conc_future, async_future) + return async_future + + return wrapper + + if args and kwargs: + raise ValueError("cannot combine positional and keyword args") + if len(args) == 1: + return run_on_executor_decorator(args[0]) + elif len(args) != 0: + raise ValueError("expected 1 argument, got %d", len(args)) + return run_on_executor_decorator + + +_NO_RESULT = object() + + +def chain_future(a: "Future[_T]", b: "Future[_T]") -> None: + """Chain two futures together so that when one completes, so does the other. + + The result (success or failure) of ``a`` will be copied to ``b``, unless + ``b`` has already been completed or cancelled by the time ``a`` finishes. + + .. versionchanged:: 5.0 + + Now accepts both Tornado/asyncio `Future` objects and + `concurrent.futures.Future`. + + """ + + def copy(future: "Future[_T]") -> None: + assert future is a + if b.done(): + return + if hasattr(a, "exc_info") and a.exc_info() is not None: # type: ignore + future_set_exc_info(b, a.exc_info()) # type: ignore + elif a.exception() is not None: + b.set_exception(a.exception()) + else: + b.set_result(a.result()) + + if isinstance(a, Future): + future_add_done_callback(a, copy) + else: + # concurrent.futures.Future + from tornado.ioloop import IOLoop + + IOLoop.current().add_future(a, copy) + + +def future_set_result_unless_cancelled( + future: "Union[futures.Future[_T], Future[_T]]", value: _T +) -> None: + """Set the given ``value`` as the `Future`'s result, if not cancelled. + + Avoids ``asyncio.InvalidStateError`` when calling ``set_result()`` on + a cancelled `asyncio.Future`. + + .. versionadded:: 5.0 + """ + if not future.cancelled(): + future.set_result(value) + + +def future_set_exception_unless_cancelled( + future: "Union[futures.Future[_T], Future[_T]]", exc: BaseException +) -> None: + """Set the given ``exc`` as the `Future`'s exception. + + If the Future is already canceled, logs the exception instead. If + this logging is not desired, the caller should explicitly check + the state of the Future and call ``Future.set_exception`` instead of + this wrapper. + + Avoids ``asyncio.InvalidStateError`` when calling ``set_exception()`` on + a cancelled `asyncio.Future`. + + .. versionadded:: 6.0 + + """ + if not future.cancelled(): + future.set_exception(exc) + else: + app_log.error("Exception after Future was cancelled", exc_info=exc) + + +def future_set_exc_info( + future: "Union[futures.Future[_T], Future[_T]]", + exc_info: Tuple[ + Optional[type], Optional[BaseException], Optional[types.TracebackType] + ], +) -> None: + """Set the given ``exc_info`` as the `Future`'s exception. + + Understands both `asyncio.Future` and the extensions in older + versions of Tornado to enable better tracebacks on Python 2. + + .. versionadded:: 5.0 + + .. versionchanged:: 6.0 + + If the future is already cancelled, this function is a no-op. + (previously ``asyncio.InvalidStateError`` would be raised) + + """ + if exc_info[1] is None: + raise Exception("future_set_exc_info called with no exception") + future_set_exception_unless_cancelled(future, exc_info[1]) + + +@typing.overload +def future_add_done_callback( + future: "futures.Future[_T]", callback: Callable[["futures.Future[_T]"], None] +) -> None: + pass + + +@typing.overload # noqa: F811 +def future_add_done_callback( + future: "Future[_T]", callback: Callable[["Future[_T]"], None] +) -> None: + pass + + +def future_add_done_callback( # noqa: F811 + future: "Union[futures.Future[_T], Future[_T]]", callback: Callable[..., None] +) -> None: + """Arrange to call ``callback`` when ``future`` is complete. + + ``callback`` is invoked with one argument, the ``future``. + + If ``future`` is already done, ``callback`` is invoked immediately. + This may differ from the behavior of ``Future.add_done_callback``, + which makes no such guarantee. + + .. versionadded:: 5.0 + """ + if future.done(): + callback(future) + else: + future.add_done_callback(callback) diff --git a/server/www/packages/packages-linux/x64/tornado/curl_httpclient.py b/server/www/packages/packages-linux/x64/tornado/curl_httpclient.py index 4119585..b81316c 100644 --- a/server/www/packages/packages-linux/x64/tornado/curl_httpclient.py +++ b/server/www/packages/packages-linux/x64/tornado/curl_httpclient.py @@ -1,572 +1,572 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Non-blocking HTTP client implementation using pycurl.""" - -import collections -import functools -import logging -import pycurl # type: ignore -import threading -import time -from io import BytesIO - -from tornado import httputil -from tornado import ioloop - -from tornado.escape import utf8, native_str -from tornado.httpclient import ( - HTTPRequest, - HTTPResponse, - HTTPError, - AsyncHTTPClient, - main, -) -from tornado.log import app_log - -from typing import Dict, Any, Callable, Union -import typing - -if typing.TYPE_CHECKING: - from typing import Deque, Tuple, Optional # noqa: F401 - -curl_log = logging.getLogger("tornado.curl_httpclient") - - -class CurlAsyncHTTPClient(AsyncHTTPClient): - def initialize( # type: ignore - self, max_clients: int = 10, defaults: Dict[str, Any] = None - ) -> None: - super(CurlAsyncHTTPClient, self).initialize(defaults=defaults) - self._multi = pycurl.CurlMulti() - self._multi.setopt(pycurl.M_TIMERFUNCTION, self._set_timeout) - self._multi.setopt(pycurl.M_SOCKETFUNCTION, self._handle_socket) - self._curls = [self._curl_create() for i in range(max_clients)] - self._free_list = self._curls[:] - self._requests = ( - collections.deque() - ) # type: Deque[Tuple[HTTPRequest, Callable[[HTTPResponse], None], float]] - self._fds = {} # type: Dict[int, int] - self._timeout = None # type: Optional[object] - - # libcurl has bugs that sometimes cause it to not report all - # relevant file descriptors and timeouts to TIMERFUNCTION/ - # SOCKETFUNCTION. Mitigate the effects of such bugs by - # forcing a periodic scan of all active requests. - self._force_timeout_callback = ioloop.PeriodicCallback( - self._handle_force_timeout, 1000 - ) - self._force_timeout_callback.start() - - # Work around a bug in libcurl 7.29.0: Some fields in the curl - # multi object are initialized lazily, and its destructor will - # segfault if it is destroyed without having been used. Add - # and remove a dummy handle to make sure everything is - # initialized. - dummy_curl_handle = pycurl.Curl() - self._multi.add_handle(dummy_curl_handle) - self._multi.remove_handle(dummy_curl_handle) - - def close(self) -> None: - self._force_timeout_callback.stop() - if self._timeout is not None: - self.io_loop.remove_timeout(self._timeout) - for curl in self._curls: - curl.close() - self._multi.close() - super(CurlAsyncHTTPClient, self).close() - - # Set below properties to None to reduce the reference count of current - # instance, because those properties hold some methods of current - # instance that will case circular reference. - self._force_timeout_callback = None # type: ignore - self._multi = None - - def fetch_impl( - self, request: HTTPRequest, callback: Callable[[HTTPResponse], None] - ) -> None: - self._requests.append((request, callback, self.io_loop.time())) - self._process_queue() - self._set_timeout(0) - - def _handle_socket(self, event: int, fd: int, multi: Any, data: bytes) -> None: - """Called by libcurl when it wants to change the file descriptors - it cares about. - """ - event_map = { - pycurl.POLL_NONE: ioloop.IOLoop.NONE, - pycurl.POLL_IN: ioloop.IOLoop.READ, - pycurl.POLL_OUT: ioloop.IOLoop.WRITE, - pycurl.POLL_INOUT: ioloop.IOLoop.READ | ioloop.IOLoop.WRITE, - } - if event == pycurl.POLL_REMOVE: - if fd in self._fds: - self.io_loop.remove_handler(fd) - del self._fds[fd] - else: - ioloop_event = event_map[event] - # libcurl sometimes closes a socket and then opens a new - # one using the same FD without giving us a POLL_NONE in - # between. This is a problem with the epoll IOLoop, - # because the kernel can tell when a socket is closed and - # removes it from the epoll automatically, causing future - # update_handler calls to fail. Since we can't tell when - # this has happened, always use remove and re-add - # instead of update. - if fd in self._fds: - self.io_loop.remove_handler(fd) - self.io_loop.add_handler(fd, self._handle_events, ioloop_event) - self._fds[fd] = ioloop_event - - def _set_timeout(self, msecs: int) -> None: - """Called by libcurl to schedule a timeout.""" - if self._timeout is not None: - self.io_loop.remove_timeout(self._timeout) - self._timeout = self.io_loop.add_timeout( - self.io_loop.time() + msecs / 1000.0, self._handle_timeout - ) - - def _handle_events(self, fd: int, events: int) -> None: - """Called by IOLoop when there is activity on one of our - file descriptors. - """ - action = 0 - if events & ioloop.IOLoop.READ: - action |= pycurl.CSELECT_IN - if events & ioloop.IOLoop.WRITE: - action |= pycurl.CSELECT_OUT - while True: - try: - ret, num_handles = self._multi.socket_action(fd, action) - except pycurl.error as e: - ret = e.args[0] - if ret != pycurl.E_CALL_MULTI_PERFORM: - break - self._finish_pending_requests() - - def _handle_timeout(self) -> None: - """Called by IOLoop when the requested timeout has passed.""" - self._timeout = None - while True: - try: - ret, num_handles = self._multi.socket_action(pycurl.SOCKET_TIMEOUT, 0) - except pycurl.error as e: - ret = e.args[0] - if ret != pycurl.E_CALL_MULTI_PERFORM: - break - self._finish_pending_requests() - - # In theory, we shouldn't have to do this because curl will - # call _set_timeout whenever the timeout changes. However, - # sometimes after _handle_timeout we will need to reschedule - # immediately even though nothing has changed from curl's - # perspective. This is because when socket_action is - # called with SOCKET_TIMEOUT, libcurl decides internally which - # timeouts need to be processed by using a monotonic clock - # (where available) while tornado uses python's time.time() - # to decide when timeouts have occurred. When those clocks - # disagree on elapsed time (as they will whenever there is an - # NTP adjustment), tornado might call _handle_timeout before - # libcurl is ready. After each timeout, resync the scheduled - # timeout with libcurl's current state. - new_timeout = self._multi.timeout() - if new_timeout >= 0: - self._set_timeout(new_timeout) - - def _handle_force_timeout(self) -> None: - """Called by IOLoop periodically to ask libcurl to process any - events it may have forgotten about. - """ - while True: - try: - ret, num_handles = self._multi.socket_all() - except pycurl.error as e: - ret = e.args[0] - if ret != pycurl.E_CALL_MULTI_PERFORM: - break - self._finish_pending_requests() - - def _finish_pending_requests(self) -> None: - """Process any requests that were completed by the last - call to multi.socket_action. - """ - while True: - num_q, ok_list, err_list = self._multi.info_read() - for curl in ok_list: - self._finish(curl) - for curl, errnum, errmsg in err_list: - self._finish(curl, errnum, errmsg) - if num_q == 0: - break - self._process_queue() - - def _process_queue(self) -> None: - while True: - started = 0 - while self._free_list and self._requests: - started += 1 - curl = self._free_list.pop() - (request, callback, queue_start_time) = self._requests.popleft() - curl.info = { - "headers": httputil.HTTPHeaders(), - "buffer": BytesIO(), - "request": request, - "callback": callback, - "queue_start_time": queue_start_time, - "curl_start_time": time.time(), - "curl_start_ioloop_time": self.io_loop.current().time(), - } - try: - self._curl_setup_request( - curl, request, curl.info["buffer"], curl.info["headers"] - ) - except Exception as e: - # If there was an error in setup, pass it on - # to the callback. Note that allowing the - # error to escape here will appear to work - # most of the time since we are still in the - # caller's original stack frame, but when - # _process_queue() is called from - # _finish_pending_requests the exceptions have - # nowhere to go. - self._free_list.append(curl) - callback(HTTPResponse(request=request, code=599, error=e)) - else: - self._multi.add_handle(curl) - - if not started: - break - - def _finish( - self, curl: pycurl.Curl, curl_error: int = None, curl_message: str = None - ) -> None: - info = curl.info - curl.info = None - self._multi.remove_handle(curl) - self._free_list.append(curl) - buffer = info["buffer"] - if curl_error: - assert curl_message is not None - error = CurlError(curl_error, curl_message) # type: Optional[CurlError] - assert error is not None - code = error.code - effective_url = None - buffer.close() - buffer = None - else: - error = None - code = curl.getinfo(pycurl.HTTP_CODE) - effective_url = curl.getinfo(pycurl.EFFECTIVE_URL) - buffer.seek(0) - # the various curl timings are documented at - # http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html - time_info = dict( - queue=info["curl_start_ioloop_time"] - info["queue_start_time"], - namelookup=curl.getinfo(pycurl.NAMELOOKUP_TIME), - connect=curl.getinfo(pycurl.CONNECT_TIME), - appconnect=curl.getinfo(pycurl.APPCONNECT_TIME), - pretransfer=curl.getinfo(pycurl.PRETRANSFER_TIME), - starttransfer=curl.getinfo(pycurl.STARTTRANSFER_TIME), - total=curl.getinfo(pycurl.TOTAL_TIME), - redirect=curl.getinfo(pycurl.REDIRECT_TIME), - ) - try: - info["callback"]( - HTTPResponse( - request=info["request"], - code=code, - headers=info["headers"], - buffer=buffer, - effective_url=effective_url, - error=error, - reason=info["headers"].get("X-Http-Reason", None), - request_time=self.io_loop.time() - info["curl_start_ioloop_time"], - start_time=info["curl_start_time"], - time_info=time_info, - ) - ) - except Exception: - self.handle_callback_exception(info["callback"]) - - def handle_callback_exception(self, callback: Any) -> None: - app_log.error("Exception in callback %r", callback, exc_info=True) - - def _curl_create(self) -> pycurl.Curl: - curl = pycurl.Curl() - if curl_log.isEnabledFor(logging.DEBUG): - curl.setopt(pycurl.VERBOSE, 1) - curl.setopt(pycurl.DEBUGFUNCTION, self._curl_debug) - if hasattr( - pycurl, "PROTOCOLS" - ): # PROTOCOLS first appeared in pycurl 7.19.5 (2014-07-12) - curl.setopt(pycurl.PROTOCOLS, pycurl.PROTO_HTTP | pycurl.PROTO_HTTPS) - curl.setopt(pycurl.REDIR_PROTOCOLS, pycurl.PROTO_HTTP | pycurl.PROTO_HTTPS) - return curl - - def _curl_setup_request( - self, - curl: pycurl.Curl, - request: HTTPRequest, - buffer: BytesIO, - headers: httputil.HTTPHeaders, - ) -> None: - curl.setopt(pycurl.URL, native_str(request.url)) - - # libcurl's magic "Expect: 100-continue" behavior causes delays - # with servers that don't support it (which include, among others, - # Google's OpenID endpoint). Additionally, this behavior has - # a bug in conjunction with the curl_multi_socket_action API - # (https://sourceforge.net/tracker/?func=detail&atid=100976&aid=3039744&group_id=976), - # which increases the delays. It's more trouble than it's worth, - # so just turn off the feature (yes, setting Expect: to an empty - # value is the official way to disable this) - if "Expect" not in request.headers: - request.headers["Expect"] = "" - - # libcurl adds Pragma: no-cache by default; disable that too - if "Pragma" not in request.headers: - request.headers["Pragma"] = "" - - curl.setopt( - pycurl.HTTPHEADER, - [ - "%s: %s" % (native_str(k), native_str(v)) - for k, v in request.headers.get_all() - ], - ) - - curl.setopt( - pycurl.HEADERFUNCTION, - functools.partial( - self._curl_header_callback, headers, request.header_callback - ), - ) - if request.streaming_callback: - - def write_function(b: Union[bytes, bytearray]) -> int: - assert request.streaming_callback is not None - self.io_loop.add_callback(request.streaming_callback, b) - return len(b) - - else: - write_function = buffer.write - curl.setopt(pycurl.WRITEFUNCTION, write_function) - curl.setopt(pycurl.FOLLOWLOCATION, request.follow_redirects) - curl.setopt(pycurl.MAXREDIRS, request.max_redirects) - assert request.connect_timeout is not None - curl.setopt(pycurl.CONNECTTIMEOUT_MS, int(1000 * request.connect_timeout)) - assert request.request_timeout is not None - curl.setopt(pycurl.TIMEOUT_MS, int(1000 * request.request_timeout)) - if request.user_agent: - curl.setopt(pycurl.USERAGENT, native_str(request.user_agent)) - else: - curl.setopt(pycurl.USERAGENT, "Mozilla/5.0 (compatible; pycurl)") - if request.network_interface: - curl.setopt(pycurl.INTERFACE, request.network_interface) - if request.decompress_response: - curl.setopt(pycurl.ENCODING, "gzip,deflate") - else: - curl.setopt(pycurl.ENCODING, "none") - if request.proxy_host and request.proxy_port: - curl.setopt(pycurl.PROXY, request.proxy_host) - curl.setopt(pycurl.PROXYPORT, request.proxy_port) - if request.proxy_username: - assert request.proxy_password is not None - credentials = httputil.encode_username_password( - request.proxy_username, request.proxy_password - ) - curl.setopt(pycurl.PROXYUSERPWD, credentials) - - if request.proxy_auth_mode is None or request.proxy_auth_mode == "basic": - curl.setopt(pycurl.PROXYAUTH, pycurl.HTTPAUTH_BASIC) - elif request.proxy_auth_mode == "digest": - curl.setopt(pycurl.PROXYAUTH, pycurl.HTTPAUTH_DIGEST) - else: - raise ValueError( - "Unsupported proxy_auth_mode %s" % request.proxy_auth_mode - ) - else: - curl.setopt(pycurl.PROXY, "") - curl.unsetopt(pycurl.PROXYUSERPWD) - if request.validate_cert: - curl.setopt(pycurl.SSL_VERIFYPEER, 1) - curl.setopt(pycurl.SSL_VERIFYHOST, 2) - else: - curl.setopt(pycurl.SSL_VERIFYPEER, 0) - curl.setopt(pycurl.SSL_VERIFYHOST, 0) - if request.ca_certs is not None: - curl.setopt(pycurl.CAINFO, request.ca_certs) - else: - # There is no way to restore pycurl.CAINFO to its default value - # (Using unsetopt makes it reject all certificates). - # I don't see any way to read the default value from python so it - # can be restored later. We'll have to just leave CAINFO untouched - # if no ca_certs file was specified, and require that if any - # request uses a custom ca_certs file, they all must. - pass - - if request.allow_ipv6 is False: - # Curl behaves reasonably when DNS resolution gives an ipv6 address - # that we can't reach, so allow ipv6 unless the user asks to disable. - curl.setopt(pycurl.IPRESOLVE, pycurl.IPRESOLVE_V4) - else: - curl.setopt(pycurl.IPRESOLVE, pycurl.IPRESOLVE_WHATEVER) - - # Set the request method through curl's irritating interface which makes - # up names for almost every single method - curl_options = { - "GET": pycurl.HTTPGET, - "POST": pycurl.POST, - "PUT": pycurl.UPLOAD, - "HEAD": pycurl.NOBODY, - } - custom_methods = set(["DELETE", "OPTIONS", "PATCH"]) - for o in curl_options.values(): - curl.setopt(o, False) - if request.method in curl_options: - curl.unsetopt(pycurl.CUSTOMREQUEST) - curl.setopt(curl_options[request.method], True) - elif request.allow_nonstandard_methods or request.method in custom_methods: - curl.setopt(pycurl.CUSTOMREQUEST, request.method) - else: - raise KeyError("unknown method " + request.method) - - body_expected = request.method in ("POST", "PATCH", "PUT") - body_present = request.body is not None - if not request.allow_nonstandard_methods: - # Some HTTP methods nearly always have bodies while others - # almost never do. Fail in this case unless the user has - # opted out of sanity checks with allow_nonstandard_methods. - if (body_expected and not body_present) or ( - body_present and not body_expected - ): - raise ValueError( - "Body must %sbe None for method %s (unless " - "allow_nonstandard_methods is true)" - % ("not " if body_expected else "", request.method) - ) - - if body_expected or body_present: - if request.method == "GET": - # Even with `allow_nonstandard_methods` we disallow - # GET with a body (because libcurl doesn't allow it - # unless we use CUSTOMREQUEST). While the spec doesn't - # forbid clients from sending a body, it arguably - # disallows the server from doing anything with them. - raise ValueError("Body must be None for GET request") - request_buffer = BytesIO(utf8(request.body or "")) - - def ioctl(cmd: int) -> None: - if cmd == curl.IOCMD_RESTARTREAD: - request_buffer.seek(0) - - curl.setopt(pycurl.READFUNCTION, request_buffer.read) - curl.setopt(pycurl.IOCTLFUNCTION, ioctl) - if request.method == "POST": - curl.setopt(pycurl.POSTFIELDSIZE, len(request.body or "")) - else: - curl.setopt(pycurl.UPLOAD, True) - curl.setopt(pycurl.INFILESIZE, len(request.body or "")) - - if request.auth_username is not None: - assert request.auth_password is not None - if request.auth_mode is None or request.auth_mode == "basic": - curl.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_BASIC) - elif request.auth_mode == "digest": - curl.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_DIGEST) - else: - raise ValueError("Unsupported auth_mode %s" % request.auth_mode) - - userpwd = httputil.encode_username_password( - request.auth_username, request.auth_password - ) - curl.setopt(pycurl.USERPWD, userpwd) - curl_log.debug( - "%s %s (username: %r)", - request.method, - request.url, - request.auth_username, - ) - else: - curl.unsetopt(pycurl.USERPWD) - curl_log.debug("%s %s", request.method, request.url) - - if request.client_cert is not None: - curl.setopt(pycurl.SSLCERT, request.client_cert) - - if request.client_key is not None: - curl.setopt(pycurl.SSLKEY, request.client_key) - - if request.ssl_options is not None: - raise ValueError("ssl_options not supported in curl_httpclient") - - if threading.active_count() > 1: - # libcurl/pycurl is not thread-safe by default. When multiple threads - # are used, signals should be disabled. This has the side effect - # of disabling DNS timeouts in some environments (when libcurl is - # not linked against ares), so we don't do it when there is only one - # thread. Applications that use many short-lived threads may need - # to set NOSIGNAL manually in a prepare_curl_callback since - # there may not be any other threads running at the time we call - # threading.activeCount. - curl.setopt(pycurl.NOSIGNAL, 1) - if request.prepare_curl_callback is not None: - request.prepare_curl_callback(curl) - - def _curl_header_callback( - self, - headers: httputil.HTTPHeaders, - header_callback: Callable[[str], None], - header_line_bytes: bytes, - ) -> None: - header_line = native_str(header_line_bytes.decode("latin1")) - if header_callback is not None: - self.io_loop.add_callback(header_callback, header_line) - # header_line as returned by curl includes the end-of-line characters. - # whitespace at the start should be preserved to allow multi-line headers - header_line = header_line.rstrip() - if header_line.startswith("HTTP/"): - headers.clear() - try: - (__, __, reason) = httputil.parse_response_start_line(header_line) - header_line = "X-Http-Reason: %s" % reason - except httputil.HTTPInputError: - return - if not header_line: - return - headers.parse_line(header_line) - - def _curl_debug(self, debug_type: int, debug_msg: str) -> None: - debug_types = ("I", "<", ">", "<", ">") - if debug_type == 0: - debug_msg = native_str(debug_msg) - curl_log.debug("%s", debug_msg.strip()) - elif debug_type in (1, 2): - debug_msg = native_str(debug_msg) - for line in debug_msg.splitlines(): - curl_log.debug("%s %s", debug_types[debug_type], line) - elif debug_type == 4: - curl_log.debug("%s %r", debug_types[debug_type], debug_msg) - - -class CurlError(HTTPError): - def __init__(self, errno: int, message: str) -> None: - HTTPError.__init__(self, 599, message) - self.errno = errno - - -if __name__ == "__main__": - AsyncHTTPClient.configure(CurlAsyncHTTPClient) - main() +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Non-blocking HTTP client implementation using pycurl.""" + +import collections +import functools +import logging +import pycurl # type: ignore +import threading +import time +from io import BytesIO + +from tornado import httputil +from tornado import ioloop + +from tornado.escape import utf8, native_str +from tornado.httpclient import ( + HTTPRequest, + HTTPResponse, + HTTPError, + AsyncHTTPClient, + main, +) +from tornado.log import app_log + +from typing import Dict, Any, Callable, Union +import typing + +if typing.TYPE_CHECKING: + from typing import Deque, Tuple, Optional # noqa: F401 + +curl_log = logging.getLogger("tornado.curl_httpclient") + + +class CurlAsyncHTTPClient(AsyncHTTPClient): + def initialize( # type: ignore + self, max_clients: int = 10, defaults: Dict[str, Any] = None + ) -> None: + super(CurlAsyncHTTPClient, self).initialize(defaults=defaults) + self._multi = pycurl.CurlMulti() + self._multi.setopt(pycurl.M_TIMERFUNCTION, self._set_timeout) + self._multi.setopt(pycurl.M_SOCKETFUNCTION, self._handle_socket) + self._curls = [self._curl_create() for i in range(max_clients)] + self._free_list = self._curls[:] + self._requests = ( + collections.deque() + ) # type: Deque[Tuple[HTTPRequest, Callable[[HTTPResponse], None], float]] + self._fds = {} # type: Dict[int, int] + self._timeout = None # type: Optional[object] + + # libcurl has bugs that sometimes cause it to not report all + # relevant file descriptors and timeouts to TIMERFUNCTION/ + # SOCKETFUNCTION. Mitigate the effects of such bugs by + # forcing a periodic scan of all active requests. + self._force_timeout_callback = ioloop.PeriodicCallback( + self._handle_force_timeout, 1000 + ) + self._force_timeout_callback.start() + + # Work around a bug in libcurl 7.29.0: Some fields in the curl + # multi object are initialized lazily, and its destructor will + # segfault if it is destroyed without having been used. Add + # and remove a dummy handle to make sure everything is + # initialized. + dummy_curl_handle = pycurl.Curl() + self._multi.add_handle(dummy_curl_handle) + self._multi.remove_handle(dummy_curl_handle) + + def close(self) -> None: + self._force_timeout_callback.stop() + if self._timeout is not None: + self.io_loop.remove_timeout(self._timeout) + for curl in self._curls: + curl.close() + self._multi.close() + super(CurlAsyncHTTPClient, self).close() + + # Set below properties to None to reduce the reference count of current + # instance, because those properties hold some methods of current + # instance that will case circular reference. + self._force_timeout_callback = None # type: ignore + self._multi = None + + def fetch_impl( + self, request: HTTPRequest, callback: Callable[[HTTPResponse], None] + ) -> None: + self._requests.append((request, callback, self.io_loop.time())) + self._process_queue() + self._set_timeout(0) + + def _handle_socket(self, event: int, fd: int, multi: Any, data: bytes) -> None: + """Called by libcurl when it wants to change the file descriptors + it cares about. + """ + event_map = { + pycurl.POLL_NONE: ioloop.IOLoop.NONE, + pycurl.POLL_IN: ioloop.IOLoop.READ, + pycurl.POLL_OUT: ioloop.IOLoop.WRITE, + pycurl.POLL_INOUT: ioloop.IOLoop.READ | ioloop.IOLoop.WRITE, + } + if event == pycurl.POLL_REMOVE: + if fd in self._fds: + self.io_loop.remove_handler(fd) + del self._fds[fd] + else: + ioloop_event = event_map[event] + # libcurl sometimes closes a socket and then opens a new + # one using the same FD without giving us a POLL_NONE in + # between. This is a problem with the epoll IOLoop, + # because the kernel can tell when a socket is closed and + # removes it from the epoll automatically, causing future + # update_handler calls to fail. Since we can't tell when + # this has happened, always use remove and re-add + # instead of update. + if fd in self._fds: + self.io_loop.remove_handler(fd) + self.io_loop.add_handler(fd, self._handle_events, ioloop_event) + self._fds[fd] = ioloop_event + + def _set_timeout(self, msecs: int) -> None: + """Called by libcurl to schedule a timeout.""" + if self._timeout is not None: + self.io_loop.remove_timeout(self._timeout) + self._timeout = self.io_loop.add_timeout( + self.io_loop.time() + msecs / 1000.0, self._handle_timeout + ) + + def _handle_events(self, fd: int, events: int) -> None: + """Called by IOLoop when there is activity on one of our + file descriptors. + """ + action = 0 + if events & ioloop.IOLoop.READ: + action |= pycurl.CSELECT_IN + if events & ioloop.IOLoop.WRITE: + action |= pycurl.CSELECT_OUT + while True: + try: + ret, num_handles = self._multi.socket_action(fd, action) + except pycurl.error as e: + ret = e.args[0] + if ret != pycurl.E_CALL_MULTI_PERFORM: + break + self._finish_pending_requests() + + def _handle_timeout(self) -> None: + """Called by IOLoop when the requested timeout has passed.""" + self._timeout = None + while True: + try: + ret, num_handles = self._multi.socket_action(pycurl.SOCKET_TIMEOUT, 0) + except pycurl.error as e: + ret = e.args[0] + if ret != pycurl.E_CALL_MULTI_PERFORM: + break + self._finish_pending_requests() + + # In theory, we shouldn't have to do this because curl will + # call _set_timeout whenever the timeout changes. However, + # sometimes after _handle_timeout we will need to reschedule + # immediately even though nothing has changed from curl's + # perspective. This is because when socket_action is + # called with SOCKET_TIMEOUT, libcurl decides internally which + # timeouts need to be processed by using a monotonic clock + # (where available) while tornado uses python's time.time() + # to decide when timeouts have occurred. When those clocks + # disagree on elapsed time (as they will whenever there is an + # NTP adjustment), tornado might call _handle_timeout before + # libcurl is ready. After each timeout, resync the scheduled + # timeout with libcurl's current state. + new_timeout = self._multi.timeout() + if new_timeout >= 0: + self._set_timeout(new_timeout) + + def _handle_force_timeout(self) -> None: + """Called by IOLoop periodically to ask libcurl to process any + events it may have forgotten about. + """ + while True: + try: + ret, num_handles = self._multi.socket_all() + except pycurl.error as e: + ret = e.args[0] + if ret != pycurl.E_CALL_MULTI_PERFORM: + break + self._finish_pending_requests() + + def _finish_pending_requests(self) -> None: + """Process any requests that were completed by the last + call to multi.socket_action. + """ + while True: + num_q, ok_list, err_list = self._multi.info_read() + for curl in ok_list: + self._finish(curl) + for curl, errnum, errmsg in err_list: + self._finish(curl, errnum, errmsg) + if num_q == 0: + break + self._process_queue() + + def _process_queue(self) -> None: + while True: + started = 0 + while self._free_list and self._requests: + started += 1 + curl = self._free_list.pop() + (request, callback, queue_start_time) = self._requests.popleft() + curl.info = { + "headers": httputil.HTTPHeaders(), + "buffer": BytesIO(), + "request": request, + "callback": callback, + "queue_start_time": queue_start_time, + "curl_start_time": time.time(), + "curl_start_ioloop_time": self.io_loop.current().time(), + } + try: + self._curl_setup_request( + curl, request, curl.info["buffer"], curl.info["headers"] + ) + except Exception as e: + # If there was an error in setup, pass it on + # to the callback. Note that allowing the + # error to escape here will appear to work + # most of the time since we are still in the + # caller's original stack frame, but when + # _process_queue() is called from + # _finish_pending_requests the exceptions have + # nowhere to go. + self._free_list.append(curl) + callback(HTTPResponse(request=request, code=599, error=e)) + else: + self._multi.add_handle(curl) + + if not started: + break + + def _finish( + self, curl: pycurl.Curl, curl_error: int = None, curl_message: str = None + ) -> None: + info = curl.info + curl.info = None + self._multi.remove_handle(curl) + self._free_list.append(curl) + buffer = info["buffer"] + if curl_error: + assert curl_message is not None + error = CurlError(curl_error, curl_message) # type: Optional[CurlError] + assert error is not None + code = error.code + effective_url = None + buffer.close() + buffer = None + else: + error = None + code = curl.getinfo(pycurl.HTTP_CODE) + effective_url = curl.getinfo(pycurl.EFFECTIVE_URL) + buffer.seek(0) + # the various curl timings are documented at + # http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html + time_info = dict( + queue=info["curl_start_ioloop_time"] - info["queue_start_time"], + namelookup=curl.getinfo(pycurl.NAMELOOKUP_TIME), + connect=curl.getinfo(pycurl.CONNECT_TIME), + appconnect=curl.getinfo(pycurl.APPCONNECT_TIME), + pretransfer=curl.getinfo(pycurl.PRETRANSFER_TIME), + starttransfer=curl.getinfo(pycurl.STARTTRANSFER_TIME), + total=curl.getinfo(pycurl.TOTAL_TIME), + redirect=curl.getinfo(pycurl.REDIRECT_TIME), + ) + try: + info["callback"]( + HTTPResponse( + request=info["request"], + code=code, + headers=info["headers"], + buffer=buffer, + effective_url=effective_url, + error=error, + reason=info["headers"].get("X-Http-Reason", None), + request_time=self.io_loop.time() - info["curl_start_ioloop_time"], + start_time=info["curl_start_time"], + time_info=time_info, + ) + ) + except Exception: + self.handle_callback_exception(info["callback"]) + + def handle_callback_exception(self, callback: Any) -> None: + app_log.error("Exception in callback %r", callback, exc_info=True) + + def _curl_create(self) -> pycurl.Curl: + curl = pycurl.Curl() + if curl_log.isEnabledFor(logging.DEBUG): + curl.setopt(pycurl.VERBOSE, 1) + curl.setopt(pycurl.DEBUGFUNCTION, self._curl_debug) + if hasattr( + pycurl, "PROTOCOLS" + ): # PROTOCOLS first appeared in pycurl 7.19.5 (2014-07-12) + curl.setopt(pycurl.PROTOCOLS, pycurl.PROTO_HTTP | pycurl.PROTO_HTTPS) + curl.setopt(pycurl.REDIR_PROTOCOLS, pycurl.PROTO_HTTP | pycurl.PROTO_HTTPS) + return curl + + def _curl_setup_request( + self, + curl: pycurl.Curl, + request: HTTPRequest, + buffer: BytesIO, + headers: httputil.HTTPHeaders, + ) -> None: + curl.setopt(pycurl.URL, native_str(request.url)) + + # libcurl's magic "Expect: 100-continue" behavior causes delays + # with servers that don't support it (which include, among others, + # Google's OpenID endpoint). Additionally, this behavior has + # a bug in conjunction with the curl_multi_socket_action API + # (https://sourceforge.net/tracker/?func=detail&atid=100976&aid=3039744&group_id=976), + # which increases the delays. It's more trouble than it's worth, + # so just turn off the feature (yes, setting Expect: to an empty + # value is the official way to disable this) + if "Expect" not in request.headers: + request.headers["Expect"] = "" + + # libcurl adds Pragma: no-cache by default; disable that too + if "Pragma" not in request.headers: + request.headers["Pragma"] = "" + + curl.setopt( + pycurl.HTTPHEADER, + [ + "%s: %s" % (native_str(k), native_str(v)) + for k, v in request.headers.get_all() + ], + ) + + curl.setopt( + pycurl.HEADERFUNCTION, + functools.partial( + self._curl_header_callback, headers, request.header_callback + ), + ) + if request.streaming_callback: + + def write_function(b: Union[bytes, bytearray]) -> int: + assert request.streaming_callback is not None + self.io_loop.add_callback(request.streaming_callback, b) + return len(b) + + else: + write_function = buffer.write + curl.setopt(pycurl.WRITEFUNCTION, write_function) + curl.setopt(pycurl.FOLLOWLOCATION, request.follow_redirects) + curl.setopt(pycurl.MAXREDIRS, request.max_redirects) + assert request.connect_timeout is not None + curl.setopt(pycurl.CONNECTTIMEOUT_MS, int(1000 * request.connect_timeout)) + assert request.request_timeout is not None + curl.setopt(pycurl.TIMEOUT_MS, int(1000 * request.request_timeout)) + if request.user_agent: + curl.setopt(pycurl.USERAGENT, native_str(request.user_agent)) + else: + curl.setopt(pycurl.USERAGENT, "Mozilla/5.0 (compatible; pycurl)") + if request.network_interface: + curl.setopt(pycurl.INTERFACE, request.network_interface) + if request.decompress_response: + curl.setopt(pycurl.ENCODING, "gzip,deflate") + else: + curl.setopt(pycurl.ENCODING, "none") + if request.proxy_host and request.proxy_port: + curl.setopt(pycurl.PROXY, request.proxy_host) + curl.setopt(pycurl.PROXYPORT, request.proxy_port) + if request.proxy_username: + assert request.proxy_password is not None + credentials = httputil.encode_username_password( + request.proxy_username, request.proxy_password + ) + curl.setopt(pycurl.PROXYUSERPWD, credentials) + + if request.proxy_auth_mode is None or request.proxy_auth_mode == "basic": + curl.setopt(pycurl.PROXYAUTH, pycurl.HTTPAUTH_BASIC) + elif request.proxy_auth_mode == "digest": + curl.setopt(pycurl.PROXYAUTH, pycurl.HTTPAUTH_DIGEST) + else: + raise ValueError( + "Unsupported proxy_auth_mode %s" % request.proxy_auth_mode + ) + else: + curl.setopt(pycurl.PROXY, "") + curl.unsetopt(pycurl.PROXYUSERPWD) + if request.validate_cert: + curl.setopt(pycurl.SSL_VERIFYPEER, 1) + curl.setopt(pycurl.SSL_VERIFYHOST, 2) + else: + curl.setopt(pycurl.SSL_VERIFYPEER, 0) + curl.setopt(pycurl.SSL_VERIFYHOST, 0) + if request.ca_certs is not None: + curl.setopt(pycurl.CAINFO, request.ca_certs) + else: + # There is no way to restore pycurl.CAINFO to its default value + # (Using unsetopt makes it reject all certificates). + # I don't see any way to read the default value from python so it + # can be restored later. We'll have to just leave CAINFO untouched + # if no ca_certs file was specified, and require that if any + # request uses a custom ca_certs file, they all must. + pass + + if request.allow_ipv6 is False: + # Curl behaves reasonably when DNS resolution gives an ipv6 address + # that we can't reach, so allow ipv6 unless the user asks to disable. + curl.setopt(pycurl.IPRESOLVE, pycurl.IPRESOLVE_V4) + else: + curl.setopt(pycurl.IPRESOLVE, pycurl.IPRESOLVE_WHATEVER) + + # Set the request method through curl's irritating interface which makes + # up names for almost every single method + curl_options = { + "GET": pycurl.HTTPGET, + "POST": pycurl.POST, + "PUT": pycurl.UPLOAD, + "HEAD": pycurl.NOBODY, + } + custom_methods = set(["DELETE", "OPTIONS", "PATCH"]) + for o in curl_options.values(): + curl.setopt(o, False) + if request.method in curl_options: + curl.unsetopt(pycurl.CUSTOMREQUEST) + curl.setopt(curl_options[request.method], True) + elif request.allow_nonstandard_methods or request.method in custom_methods: + curl.setopt(pycurl.CUSTOMREQUEST, request.method) + else: + raise KeyError("unknown method " + request.method) + + body_expected = request.method in ("POST", "PATCH", "PUT") + body_present = request.body is not None + if not request.allow_nonstandard_methods: + # Some HTTP methods nearly always have bodies while others + # almost never do. Fail in this case unless the user has + # opted out of sanity checks with allow_nonstandard_methods. + if (body_expected and not body_present) or ( + body_present and not body_expected + ): + raise ValueError( + "Body must %sbe None for method %s (unless " + "allow_nonstandard_methods is true)" + % ("not " if body_expected else "", request.method) + ) + + if body_expected or body_present: + if request.method == "GET": + # Even with `allow_nonstandard_methods` we disallow + # GET with a body (because libcurl doesn't allow it + # unless we use CUSTOMREQUEST). While the spec doesn't + # forbid clients from sending a body, it arguably + # disallows the server from doing anything with them. + raise ValueError("Body must be None for GET request") + request_buffer = BytesIO(utf8(request.body or "")) + + def ioctl(cmd: int) -> None: + if cmd == curl.IOCMD_RESTARTREAD: + request_buffer.seek(0) + + curl.setopt(pycurl.READFUNCTION, request_buffer.read) + curl.setopt(pycurl.IOCTLFUNCTION, ioctl) + if request.method == "POST": + curl.setopt(pycurl.POSTFIELDSIZE, len(request.body or "")) + else: + curl.setopt(pycurl.UPLOAD, True) + curl.setopt(pycurl.INFILESIZE, len(request.body or "")) + + if request.auth_username is not None: + assert request.auth_password is not None + if request.auth_mode is None or request.auth_mode == "basic": + curl.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_BASIC) + elif request.auth_mode == "digest": + curl.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_DIGEST) + else: + raise ValueError("Unsupported auth_mode %s" % request.auth_mode) + + userpwd = httputil.encode_username_password( + request.auth_username, request.auth_password + ) + curl.setopt(pycurl.USERPWD, userpwd) + curl_log.debug( + "%s %s (username: %r)", + request.method, + request.url, + request.auth_username, + ) + else: + curl.unsetopt(pycurl.USERPWD) + curl_log.debug("%s %s", request.method, request.url) + + if request.client_cert is not None: + curl.setopt(pycurl.SSLCERT, request.client_cert) + + if request.client_key is not None: + curl.setopt(pycurl.SSLKEY, request.client_key) + + if request.ssl_options is not None: + raise ValueError("ssl_options not supported in curl_httpclient") + + if threading.active_count() > 1: + # libcurl/pycurl is not thread-safe by default. When multiple threads + # are used, signals should be disabled. This has the side effect + # of disabling DNS timeouts in some environments (when libcurl is + # not linked against ares), so we don't do it when there is only one + # thread. Applications that use many short-lived threads may need + # to set NOSIGNAL manually in a prepare_curl_callback since + # there may not be any other threads running at the time we call + # threading.activeCount. + curl.setopt(pycurl.NOSIGNAL, 1) + if request.prepare_curl_callback is not None: + request.prepare_curl_callback(curl) + + def _curl_header_callback( + self, + headers: httputil.HTTPHeaders, + header_callback: Callable[[str], None], + header_line_bytes: bytes, + ) -> None: + header_line = native_str(header_line_bytes.decode("latin1")) + if header_callback is not None: + self.io_loop.add_callback(header_callback, header_line) + # header_line as returned by curl includes the end-of-line characters. + # whitespace at the start should be preserved to allow multi-line headers + header_line = header_line.rstrip() + if header_line.startswith("HTTP/"): + headers.clear() + try: + (__, __, reason) = httputil.parse_response_start_line(header_line) + header_line = "X-Http-Reason: %s" % reason + except httputil.HTTPInputError: + return + if not header_line: + return + headers.parse_line(header_line) + + def _curl_debug(self, debug_type: int, debug_msg: str) -> None: + debug_types = ("I", "<", ">", "<", ">") + if debug_type == 0: + debug_msg = native_str(debug_msg) + curl_log.debug("%s", debug_msg.strip()) + elif debug_type in (1, 2): + debug_msg = native_str(debug_msg) + for line in debug_msg.splitlines(): + curl_log.debug("%s %s", debug_types[debug_type], line) + elif debug_type == 4: + curl_log.debug("%s %r", debug_types[debug_type], debug_msg) + + +class CurlError(HTTPError): + def __init__(self, errno: int, message: str) -> None: + HTTPError.__init__(self, 599, message) + self.errno = errno + + +if __name__ == "__main__": + AsyncHTTPClient.configure(CurlAsyncHTTPClient) + main() diff --git a/server/www/packages/packages-linux/x64/tornado/escape.py b/server/www/packages/packages-linux/x64/tornado/escape.py index b0ec332..03e1201 100644 --- a/server/www/packages/packages-linux/x64/tornado/escape.py +++ b/server/www/packages/packages-linux/x64/tornado/escape.py @@ -1,400 +1,400 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Escaping/unescaping methods for HTML, JSON, URLs, and others. - -Also includes a few other miscellaneous string manipulation functions that -have crept in over time. -""" - -import html.entities -import json -import re -import urllib.parse - -from tornado.util import unicode_type - -import typing -from typing import Union, Any, Optional, Dict, List, Callable - - -_XHTML_ESCAPE_RE = re.compile("[&<>\"']") -_XHTML_ESCAPE_DICT = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", -} - - -def xhtml_escape(value: Union[str, bytes]) -> str: - """Escapes a string so it is valid within HTML or XML. - - Escapes the characters ``<``, ``>``, ``"``, ``'``, and ``&``. - When used in attribute values the escaped strings must be enclosed - in quotes. - - .. versionchanged:: 3.2 - - Added the single quote to the list of escaped characters. - """ - return _XHTML_ESCAPE_RE.sub( - lambda match: _XHTML_ESCAPE_DICT[match.group(0)], to_basestring(value) - ) - - -def xhtml_unescape(value: Union[str, bytes]) -> str: - """Un-escapes an XML-escaped string.""" - return re.sub(r"&(#?)(\w+?);", _convert_entity, _unicode(value)) - - -# The fact that json_encode wraps json.dumps is an implementation detail. -# Please see https://github.com/tornadoweb/tornado/pull/706 -# before sending a pull request that adds **kwargs to this function. -def json_encode(value: Any) -> str: - """JSON-encodes the given Python object.""" - # JSON permits but does not require forward slashes to be escaped. - # This is useful when json data is emitted in a tags from prematurely terminating - # the javascript. Some json libraries do this escaping by default, - # although python's standard library does not, so we do it here. - # http://stackoverflow.com/questions/1580647/json-why-are-forward-slashes-escaped - return json.dumps(value).replace(" Any: - """Returns Python objects for the given JSON string. - - Supports both `str` and `bytes` inputs. - """ - return json.loads(to_basestring(value)) - - -def squeeze(value: str) -> str: - """Replace all sequences of whitespace chars with a single space.""" - return re.sub(r"[\x00-\x20]+", " ", value).strip() - - -def url_escape(value: Union[str, bytes], plus: bool = True) -> str: - """Returns a URL-encoded version of the given value. - - If ``plus`` is true (the default), spaces will be represented - as "+" instead of "%20". This is appropriate for query strings - but not for the path component of a URL. Note that this default - is the reverse of Python's urllib module. - - .. versionadded:: 3.1 - The ``plus`` argument - """ - quote = urllib.parse.quote_plus if plus else urllib.parse.quote - return quote(utf8(value)) - - -@typing.overload -def url_unescape(value: Union[str, bytes], encoding: None, plus: bool = True) -> bytes: - pass - - -@typing.overload # noqa: F811 -def url_unescape( - value: Union[str, bytes], encoding: str = "utf-8", plus: bool = True -) -> str: - pass - - -def url_unescape( # noqa: F811 - value: Union[str, bytes], encoding: Optional[str] = "utf-8", plus: bool = True -) -> Union[str, bytes]: - """Decodes the given value from a URL. - - The argument may be either a byte or unicode string. - - If encoding is None, the result will be a byte string. Otherwise, - the result is a unicode string in the specified encoding. - - If ``plus`` is true (the default), plus signs will be interpreted - as spaces (literal plus signs must be represented as "%2B"). This - is appropriate for query strings and form-encoded values but not - for the path component of a URL. Note that this default is the - reverse of Python's urllib module. - - .. versionadded:: 3.1 - The ``plus`` argument - """ - if encoding is None: - if plus: - # unquote_to_bytes doesn't have a _plus variant - value = to_basestring(value).replace("+", " ") - return urllib.parse.unquote_to_bytes(value) - else: - unquote = urllib.parse.unquote_plus if plus else urllib.parse.unquote - return unquote(to_basestring(value), encoding=encoding) - - -def parse_qs_bytes( - qs: str, keep_blank_values: bool = False, strict_parsing: bool = False -) -> Dict[str, List[bytes]]: - """Parses a query string like urlparse.parse_qs, but returns the - values as byte strings. - - Keys still become type str (interpreted as latin1 in python3!) - because it's too painful to keep them as byte strings in - python3 and in practice they're nearly always ascii anyway. - """ - # This is gross, but python3 doesn't give us another way. - # Latin1 is the universal donor of character encodings. - result = urllib.parse.parse_qs( - qs, keep_blank_values, strict_parsing, encoding="latin1", errors="strict" - ) - encoded = {} - for k, v in result.items(): - encoded[k] = [i.encode("latin1") for i in v] - return encoded - - -_UTF8_TYPES = (bytes, type(None)) - - -@typing.overload -def utf8(value: bytes) -> bytes: - pass - - -@typing.overload # noqa: F811 -def utf8(value: str) -> bytes: - pass - - -@typing.overload # noqa: F811 -def utf8(value: None) -> None: - pass - - -def utf8(value: Union[None, str, bytes]) -> Optional[bytes]: # noqa: F811 - """Converts a string argument to a byte string. - - If the argument is already a byte string or None, it is returned unchanged. - Otherwise it must be a unicode string and is encoded as utf8. - """ - if isinstance(value, _UTF8_TYPES): - return value - if not isinstance(value, unicode_type): - raise TypeError("Expected bytes, unicode, or None; got %r" % type(value)) - return value.encode("utf-8") - - -_TO_UNICODE_TYPES = (unicode_type, type(None)) - - -@typing.overload -def to_unicode(value: str) -> str: - pass - - -@typing.overload # noqa: F811 -def to_unicode(value: bytes) -> str: - pass - - -@typing.overload # noqa: F811 -def to_unicode(value: None) -> None: - pass - - -def to_unicode(value: Union[None, str, bytes]) -> Optional[str]: # noqa: F811 - """Converts a string argument to a unicode string. - - If the argument is already a unicode string or None, it is returned - unchanged. Otherwise it must be a byte string and is decoded as utf8. - """ - if isinstance(value, _TO_UNICODE_TYPES): - return value - if not isinstance(value, bytes): - raise TypeError("Expected bytes, unicode, or None; got %r" % type(value)) - return value.decode("utf-8") - - -# to_unicode was previously named _unicode not because it was private, -# but to avoid conflicts with the built-in unicode() function/type -_unicode = to_unicode - -# When dealing with the standard library across python 2 and 3 it is -# sometimes useful to have a direct conversion to the native string type -native_str = to_unicode -to_basestring = to_unicode - - -def recursive_unicode(obj: Any) -> Any: - """Walks a simple data structure, converting byte strings to unicode. - - Supports lists, tuples, and dictionaries. - """ - if isinstance(obj, dict): - return dict( - (recursive_unicode(k), recursive_unicode(v)) for (k, v) in obj.items() - ) - elif isinstance(obj, list): - return list(recursive_unicode(i) for i in obj) - elif isinstance(obj, tuple): - return tuple(recursive_unicode(i) for i in obj) - elif isinstance(obj, bytes): - return to_unicode(obj) - else: - return obj - - -# I originally used the regex from -# http://daringfireball.net/2010/07/improved_regex_for_matching_urls -# but it gets all exponential on certain patterns (such as too many trailing -# dots), causing the regex matcher to never return. -# This regex should avoid those problems. -# Use to_unicode instead of tornado.util.u - we don't want backslashes getting -# processed as escapes. -_URL_RE = re.compile( - to_unicode( - r"""\b((?:([\w-]+):(/{1,3})|www[.])(?:(?:(?:[^\s&()]|&|")*(?:[^!"#$%&'()*+,.:;<=>?@\[\]^`{|}~\s]))|(?:\((?:[^\s&()]|&|")*\)))+)""" # noqa: E501 - ) -) - - -def linkify( - text: Union[str, bytes], - shorten: bool = False, - extra_params: Union[str, Callable[[str], str]] = "", - require_protocol: bool = False, - permitted_protocols: List[str] = ["http", "https"], -) -> str: - """Converts plain text into HTML with links. - - For example: ``linkify("Hello http://tornadoweb.org!")`` would return - ``Hello http://tornadoweb.org!`` - - Parameters: - - * ``shorten``: Long urls will be shortened for display. - - * ``extra_params``: Extra text to include in the link tag, or a callable - taking the link as an argument and returning the extra text - e.g. ``linkify(text, extra_params='rel="nofollow" class="external"')``, - or:: - - def extra_params_cb(url): - if url.startswith("http://example.com"): - return 'class="internal"' - else: - return 'class="external" rel="nofollow"' - linkify(text, extra_params=extra_params_cb) - - * ``require_protocol``: Only linkify urls which include a protocol. If - this is False, urls such as www.facebook.com will also be linkified. - - * ``permitted_protocols``: List (or set) of protocols which should be - linkified, e.g. ``linkify(text, permitted_protocols=["http", "ftp", - "mailto"])``. It is very unsafe to include protocols such as - ``javascript``. - """ - if extra_params and not callable(extra_params): - extra_params = " " + extra_params.strip() - - def make_link(m: typing.Match) -> str: - url = m.group(1) - proto = m.group(2) - if require_protocol and not proto: - return url # not protocol, no linkify - - if proto and proto not in permitted_protocols: - return url # bad protocol, no linkify - - href = m.group(1) - if not proto: - href = "http://" + href # no proto specified, use http - - if callable(extra_params): - params = " " + extra_params(href).strip() - else: - params = extra_params - - # clip long urls. max_len is just an approximation - max_len = 30 - if shorten and len(url) > max_len: - before_clip = url - if proto: - proto_len = len(proto) + 1 + len(m.group(3) or "") # +1 for : - else: - proto_len = 0 - - parts = url[proto_len:].split("/") - if len(parts) > 1: - # Grab the whole host part plus the first bit of the path - # The path is usually not that interesting once shortened - # (no more slug, etc), so it really just provides a little - # extra indication of shortening. - url = ( - url[:proto_len] - + parts[0] - + "/" - + parts[1][:8].split("?")[0].split(".")[0] - ) - - if len(url) > max_len * 1.5: # still too long - url = url[:max_len] - - if url != before_clip: - amp = url.rfind("&") - # avoid splitting html char entities - if amp > max_len - 5: - url = url[:amp] - url += "..." - - if len(url) >= len(before_clip): - url = before_clip - else: - # full url is visible on mouse-over (for those who don't - # have a status bar, such as Safari by default) - params += ' title="%s"' % href - - return u'%s' % (href, params, url) - - # First HTML-escape so that our strings are all safe. - # The regex is modified to avoid character entites other than & so - # that we won't pick up ", etc. - text = _unicode(xhtml_escape(text)) - return _URL_RE.sub(make_link, text) - - -def _convert_entity(m: typing.Match) -> str: - if m.group(1) == "#": - try: - if m.group(2)[:1].lower() == "x": - return chr(int(m.group(2)[1:], 16)) - else: - return chr(int(m.group(2))) - except ValueError: - return "&#%s;" % m.group(2) - try: - return _HTML_UNICODE_MAP[m.group(2)] - except KeyError: - return "&%s;" % m.group(2) - - -def _build_unicode_map() -> Dict[str, str]: - unicode_map = {} - for name, value in html.entities.name2codepoint.items(): - unicode_map[name] = chr(value) - return unicode_map - - -_HTML_UNICODE_MAP = _build_unicode_map() +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Escaping/unescaping methods for HTML, JSON, URLs, and others. + +Also includes a few other miscellaneous string manipulation functions that +have crept in over time. +""" + +import html.entities +import json +import re +import urllib.parse + +from tornado.util import unicode_type + +import typing +from typing import Union, Any, Optional, Dict, List, Callable + + +_XHTML_ESCAPE_RE = re.compile("[&<>\"']") +_XHTML_ESCAPE_DICT = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", +} + + +def xhtml_escape(value: Union[str, bytes]) -> str: + """Escapes a string so it is valid within HTML or XML. + + Escapes the characters ``<``, ``>``, ``"``, ``'``, and ``&``. + When used in attribute values the escaped strings must be enclosed + in quotes. + + .. versionchanged:: 3.2 + + Added the single quote to the list of escaped characters. + """ + return _XHTML_ESCAPE_RE.sub( + lambda match: _XHTML_ESCAPE_DICT[match.group(0)], to_basestring(value) + ) + + +def xhtml_unescape(value: Union[str, bytes]) -> str: + """Un-escapes an XML-escaped string.""" + return re.sub(r"&(#?)(\w+?);", _convert_entity, _unicode(value)) + + +# The fact that json_encode wraps json.dumps is an implementation detail. +# Please see https://github.com/tornadoweb/tornado/pull/706 +# before sending a pull request that adds **kwargs to this function. +def json_encode(value: Any) -> str: + """JSON-encodes the given Python object.""" + # JSON permits but does not require forward slashes to be escaped. + # This is useful when json data is emitted in a tags from prematurely terminating + # the javascript. Some json libraries do this escaping by default, + # although python's standard library does not, so we do it here. + # http://stackoverflow.com/questions/1580647/json-why-are-forward-slashes-escaped + return json.dumps(value).replace(" Any: + """Returns Python objects for the given JSON string. + + Supports both `str` and `bytes` inputs. + """ + return json.loads(to_basestring(value)) + + +def squeeze(value: str) -> str: + """Replace all sequences of whitespace chars with a single space.""" + return re.sub(r"[\x00-\x20]+", " ", value).strip() + + +def url_escape(value: Union[str, bytes], plus: bool = True) -> str: + """Returns a URL-encoded version of the given value. + + If ``plus`` is true (the default), spaces will be represented + as "+" instead of "%20". This is appropriate for query strings + but not for the path component of a URL. Note that this default + is the reverse of Python's urllib module. + + .. versionadded:: 3.1 + The ``plus`` argument + """ + quote = urllib.parse.quote_plus if plus else urllib.parse.quote + return quote(utf8(value)) + + +@typing.overload +def url_unescape(value: Union[str, bytes], encoding: None, plus: bool = True) -> bytes: + pass + + +@typing.overload # noqa: F811 +def url_unescape( + value: Union[str, bytes], encoding: str = "utf-8", plus: bool = True +) -> str: + pass + + +def url_unescape( # noqa: F811 + value: Union[str, bytes], encoding: Optional[str] = "utf-8", plus: bool = True +) -> Union[str, bytes]: + """Decodes the given value from a URL. + + The argument may be either a byte or unicode string. + + If encoding is None, the result will be a byte string. Otherwise, + the result is a unicode string in the specified encoding. + + If ``plus`` is true (the default), plus signs will be interpreted + as spaces (literal plus signs must be represented as "%2B"). This + is appropriate for query strings and form-encoded values but not + for the path component of a URL. Note that this default is the + reverse of Python's urllib module. + + .. versionadded:: 3.1 + The ``plus`` argument + """ + if encoding is None: + if plus: + # unquote_to_bytes doesn't have a _plus variant + value = to_basestring(value).replace("+", " ") + return urllib.parse.unquote_to_bytes(value) + else: + unquote = urllib.parse.unquote_plus if plus else urllib.parse.unquote + return unquote(to_basestring(value), encoding=encoding) + + +def parse_qs_bytes( + qs: str, keep_blank_values: bool = False, strict_parsing: bool = False +) -> Dict[str, List[bytes]]: + """Parses a query string like urlparse.parse_qs, but returns the + values as byte strings. + + Keys still become type str (interpreted as latin1 in python3!) + because it's too painful to keep them as byte strings in + python3 and in practice they're nearly always ascii anyway. + """ + # This is gross, but python3 doesn't give us another way. + # Latin1 is the universal donor of character encodings. + result = urllib.parse.parse_qs( + qs, keep_blank_values, strict_parsing, encoding="latin1", errors="strict" + ) + encoded = {} + for k, v in result.items(): + encoded[k] = [i.encode("latin1") for i in v] + return encoded + + +_UTF8_TYPES = (bytes, type(None)) + + +@typing.overload +def utf8(value: bytes) -> bytes: + pass + + +@typing.overload # noqa: F811 +def utf8(value: str) -> bytes: + pass + + +@typing.overload # noqa: F811 +def utf8(value: None) -> None: + pass + + +def utf8(value: Union[None, str, bytes]) -> Optional[bytes]: # noqa: F811 + """Converts a string argument to a byte string. + + If the argument is already a byte string or None, it is returned unchanged. + Otherwise it must be a unicode string and is encoded as utf8. + """ + if isinstance(value, _UTF8_TYPES): + return value + if not isinstance(value, unicode_type): + raise TypeError("Expected bytes, unicode, or None; got %r" % type(value)) + return value.encode("utf-8") + + +_TO_UNICODE_TYPES = (unicode_type, type(None)) + + +@typing.overload +def to_unicode(value: str) -> str: + pass + + +@typing.overload # noqa: F811 +def to_unicode(value: bytes) -> str: + pass + + +@typing.overload # noqa: F811 +def to_unicode(value: None) -> None: + pass + + +def to_unicode(value: Union[None, str, bytes]) -> Optional[str]: # noqa: F811 + """Converts a string argument to a unicode string. + + If the argument is already a unicode string or None, it is returned + unchanged. Otherwise it must be a byte string and is decoded as utf8. + """ + if isinstance(value, _TO_UNICODE_TYPES): + return value + if not isinstance(value, bytes): + raise TypeError("Expected bytes, unicode, or None; got %r" % type(value)) + return value.decode("utf-8") + + +# to_unicode was previously named _unicode not because it was private, +# but to avoid conflicts with the built-in unicode() function/type +_unicode = to_unicode + +# When dealing with the standard library across python 2 and 3 it is +# sometimes useful to have a direct conversion to the native string type +native_str = to_unicode +to_basestring = to_unicode + + +def recursive_unicode(obj: Any) -> Any: + """Walks a simple data structure, converting byte strings to unicode. + + Supports lists, tuples, and dictionaries. + """ + if isinstance(obj, dict): + return dict( + (recursive_unicode(k), recursive_unicode(v)) for (k, v) in obj.items() + ) + elif isinstance(obj, list): + return list(recursive_unicode(i) for i in obj) + elif isinstance(obj, tuple): + return tuple(recursive_unicode(i) for i in obj) + elif isinstance(obj, bytes): + return to_unicode(obj) + else: + return obj + + +# I originally used the regex from +# http://daringfireball.net/2010/07/improved_regex_for_matching_urls +# but it gets all exponential on certain patterns (such as too many trailing +# dots), causing the regex matcher to never return. +# This regex should avoid those problems. +# Use to_unicode instead of tornado.util.u - we don't want backslashes getting +# processed as escapes. +_URL_RE = re.compile( + to_unicode( + r"""\b((?:([\w-]+):(/{1,3})|www[.])(?:(?:(?:[^\s&()]|&|")*(?:[^!"#$%&'()*+,.:;<=>?@\[\]^`{|}~\s]))|(?:\((?:[^\s&()]|&|")*\)))+)""" # noqa: E501 + ) +) + + +def linkify( + text: Union[str, bytes], + shorten: bool = False, + extra_params: Union[str, Callable[[str], str]] = "", + require_protocol: bool = False, + permitted_protocols: List[str] = ["http", "https"], +) -> str: + """Converts plain text into HTML with links. + + For example: ``linkify("Hello http://tornadoweb.org!")`` would return + ``Hello http://tornadoweb.org!`` + + Parameters: + + * ``shorten``: Long urls will be shortened for display. + + * ``extra_params``: Extra text to include in the link tag, or a callable + taking the link as an argument and returning the extra text + e.g. ``linkify(text, extra_params='rel="nofollow" class="external"')``, + or:: + + def extra_params_cb(url): + if url.startswith("http://example.com"): + return 'class="internal"' + else: + return 'class="external" rel="nofollow"' + linkify(text, extra_params=extra_params_cb) + + * ``require_protocol``: Only linkify urls which include a protocol. If + this is False, urls such as www.facebook.com will also be linkified. + + * ``permitted_protocols``: List (or set) of protocols which should be + linkified, e.g. ``linkify(text, permitted_protocols=["http", "ftp", + "mailto"])``. It is very unsafe to include protocols such as + ``javascript``. + """ + if extra_params and not callable(extra_params): + extra_params = " " + extra_params.strip() + + def make_link(m: typing.Match) -> str: + url = m.group(1) + proto = m.group(2) + if require_protocol and not proto: + return url # not protocol, no linkify + + if proto and proto not in permitted_protocols: + return url # bad protocol, no linkify + + href = m.group(1) + if not proto: + href = "http://" + href # no proto specified, use http + + if callable(extra_params): + params = " " + extra_params(href).strip() + else: + params = extra_params + + # clip long urls. max_len is just an approximation + max_len = 30 + if shorten and len(url) > max_len: + before_clip = url + if proto: + proto_len = len(proto) + 1 + len(m.group(3) or "") # +1 for : + else: + proto_len = 0 + + parts = url[proto_len:].split("/") + if len(parts) > 1: + # Grab the whole host part plus the first bit of the path + # The path is usually not that interesting once shortened + # (no more slug, etc), so it really just provides a little + # extra indication of shortening. + url = ( + url[:proto_len] + + parts[0] + + "/" + + parts[1][:8].split("?")[0].split(".")[0] + ) + + if len(url) > max_len * 1.5: # still too long + url = url[:max_len] + + if url != before_clip: + amp = url.rfind("&") + # avoid splitting html char entities + if amp > max_len - 5: + url = url[:amp] + url += "..." + + if len(url) >= len(before_clip): + url = before_clip + else: + # full url is visible on mouse-over (for those who don't + # have a status bar, such as Safari by default) + params += ' title="%s"' % href + + return u'%s' % (href, params, url) + + # First HTML-escape so that our strings are all safe. + # The regex is modified to avoid character entites other than & so + # that we won't pick up ", etc. + text = _unicode(xhtml_escape(text)) + return _URL_RE.sub(make_link, text) + + +def _convert_entity(m: typing.Match) -> str: + if m.group(1) == "#": + try: + if m.group(2)[:1].lower() == "x": + return chr(int(m.group(2)[1:], 16)) + else: + return chr(int(m.group(2))) + except ValueError: + return "&#%s;" % m.group(2) + try: + return _HTML_UNICODE_MAP[m.group(2)] + except KeyError: + return "&%s;" % m.group(2) + + +def _build_unicode_map() -> Dict[str, str]: + unicode_map = {} + for name, value in html.entities.name2codepoint.items(): + unicode_map[name] = chr(value) + return unicode_map + + +_HTML_UNICODE_MAP = _build_unicode_map() diff --git a/server/www/packages/packages-linux/x64/tornado/gen.py b/server/www/packages/packages-linux/x64/tornado/gen.py index 7cc7ec7..6c1e394 100644 --- a/server/www/packages/packages-linux/x64/tornado/gen.py +++ b/server/www/packages/packages-linux/x64/tornado/gen.py @@ -1,845 +1,845 @@ -"""``tornado.gen`` implements generator-based coroutines. - -.. note:: - - The "decorator and generator" approach in this module is a - precursor to native coroutines (using ``async def`` and ``await``) - which were introduced in Python 3.5. Applications that do not - require compatibility with older versions of Python should use - native coroutines instead. Some parts of this module are still - useful with native coroutines, notably `multi`, `sleep`, - `WaitIterator`, and `with_timeout`. Some of these functions have - counterparts in the `asyncio` module which may be used as well, - although the two may not necessarily be 100% compatible. - -Coroutines provide an easier way to work in an asynchronous -environment than chaining callbacks. Code using coroutines is -technically asynchronous, but it is written as a single generator -instead of a collection of separate functions. - -For example, here's a coroutine-based handler: - -.. testcode:: - - class GenAsyncHandler(RequestHandler): - @gen.coroutine - def get(self): - http_client = AsyncHTTPClient() - response = yield http_client.fetch("http://example.com") - do_something_with_response(response) - self.render("template.html") - -.. testoutput:: - :hide: - -Asynchronous functions in Tornado return an ``Awaitable`` or `.Future`; -yielding this object returns its result. - -You can also yield a list or dict of other yieldable objects, which -will be started at the same time and run in parallel; a list or dict -of results will be returned when they are all finished: - -.. testcode:: - - @gen.coroutine - def get(self): - http_client = AsyncHTTPClient() - response1, response2 = yield [http_client.fetch(url1), - http_client.fetch(url2)] - response_dict = yield dict(response3=http_client.fetch(url3), - response4=http_client.fetch(url4)) - response3 = response_dict['response3'] - response4 = response_dict['response4'] - -.. testoutput:: - :hide: - -If ``tornado.platform.twisted`` is imported, it is also possible to -yield Twisted's ``Deferred`` objects. See the `convert_yielded` -function to extend this mechanism. - -.. versionchanged:: 3.2 - Dict support added. - -.. versionchanged:: 4.1 - Support added for yielding ``asyncio`` Futures and Twisted Deferreds - via ``singledispatch``. - -""" -import asyncio -import builtins -import collections -from collections.abc import Generator -import concurrent.futures -import datetime -import functools -from functools import singledispatch -from inspect import isawaitable -import sys -import types - -from tornado.concurrent import ( - Future, - is_future, - chain_future, - future_set_exc_info, - future_add_done_callback, - future_set_result_unless_cancelled, -) -from tornado.ioloop import IOLoop -from tornado.log import app_log -from tornado.util import TimeoutError - -import typing -from typing import Union, Any, Callable, List, Type, Tuple, Awaitable, Dict - -if typing.TYPE_CHECKING: - from typing import Sequence, Deque, Optional, Set, Iterable # noqa: F401 - -_T = typing.TypeVar("_T") - -_Yieldable = Union[ - None, Awaitable, List[Awaitable], Dict[Any, Awaitable], concurrent.futures.Future -] - - -class KeyReuseError(Exception): - pass - - -class UnknownKeyError(Exception): - pass - - -class LeakedCallbackError(Exception): - pass - - -class BadYieldError(Exception): - pass - - -class ReturnValueIgnoredError(Exception): - pass - - -def _value_from_stopiteration(e: Union[StopIteration, "Return"]) -> Any: - try: - # StopIteration has a value attribute beginning in py33. - # So does our Return class. - return e.value - except AttributeError: - pass - try: - # Cython backports coroutine functionality by putting the value in - # e.args[0]. - return e.args[0] - except (AttributeError, IndexError): - return None - - -def _create_future() -> Future: - future = Future() # type: Future - # Fixup asyncio debug info by removing extraneous stack entries - source_traceback = getattr(future, "_source_traceback", ()) - while source_traceback: - # Each traceback entry is equivalent to a - # (filename, self.lineno, self.name, self.line) tuple - filename = source_traceback[-1][0] - if filename == __file__: - del source_traceback[-1] - else: - break - return future - - -def coroutine( - func: Callable[..., "Generator[Any, Any, _T]"] -) -> Callable[..., "Future[_T]"]: - """Decorator for asynchronous generators. - - For compatibility with older versions of Python, coroutines may - also "return" by raising the special exception `Return(value) - `. - - Functions with this decorator return a `.Future`. - - .. warning:: - - When exceptions occur inside a coroutine, the exception - information will be stored in the `.Future` object. You must - examine the result of the `.Future` object, or the exception - may go unnoticed by your code. This means yielding the function - if called from another coroutine, using something like - `.IOLoop.run_sync` for top-level calls, or passing the `.Future` - to `.IOLoop.add_future`. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - awaitable object instead. - - """ - - @functools.wraps(func) - def wrapper(*args, **kwargs): - # type: (*Any, **Any) -> Future[_T] - # This function is type-annotated with a comment to work around - # https://bitbucket.org/pypy/pypy/issues/2868/segfault-with-args-type-annotation-in - future = _create_future() - try: - result = func(*args, **kwargs) - except (Return, StopIteration) as e: - result = _value_from_stopiteration(e) - except Exception: - future_set_exc_info(future, sys.exc_info()) - try: - return future - finally: - # Avoid circular references - future = None # type: ignore - else: - if isinstance(result, Generator): - # Inline the first iteration of Runner.run. This lets us - # avoid the cost of creating a Runner when the coroutine - # never actually yields, which in turn allows us to - # use "optional" coroutines in critical path code without - # performance penalty for the synchronous case. - try: - yielded = next(result) - except (StopIteration, Return) as e: - future_set_result_unless_cancelled( - future, _value_from_stopiteration(e) - ) - except Exception: - future_set_exc_info(future, sys.exc_info()) - else: - # Provide strong references to Runner objects as long - # as their result future objects also have strong - # references (typically from the parent coroutine's - # Runner). This keeps the coroutine's Runner alive. - # We do this by exploiting the public API - # add_done_callback() instead of putting a private - # attribute on the Future. - # (Github issues #1769, #2229). - runner = Runner(result, future, yielded) - future.add_done_callback(lambda _: runner) - yielded = None - try: - return future - finally: - # Subtle memory optimization: if next() raised an exception, - # the future's exc_info contains a traceback which - # includes this stack frame. This creates a cycle, - # which will be collected at the next full GC but has - # been shown to greatly increase memory usage of - # benchmarks (relative to the refcount-based scheme - # used in the absence of cycles). We can avoid the - # cycle by clearing the local variable after we return it. - future = None # type: ignore - future_set_result_unless_cancelled(future, result) - return future - - wrapper.__wrapped__ = func # type: ignore - wrapper.__tornado_coroutine__ = True # type: ignore - return wrapper - - -def is_coroutine_function(func: Any) -> bool: - """Return whether *func* is a coroutine function, i.e. a function - wrapped with `~.gen.coroutine`. - - .. versionadded:: 4.5 - """ - return getattr(func, "__tornado_coroutine__", False) - - -class Return(Exception): - """Special exception to return a value from a `coroutine`. - - If this exception is raised, its value argument is used as the - result of the coroutine:: - - @gen.coroutine - def fetch_json(url): - response = yield AsyncHTTPClient().fetch(url) - raise gen.Return(json_decode(response.body)) - - In Python 3.3, this exception is no longer necessary: the ``return`` - statement can be used directly to return a value (previously - ``yield`` and ``return`` with a value could not be combined in the - same function). - - By analogy with the return statement, the value argument is optional, - but it is never necessary to ``raise gen.Return()``. The ``return`` - statement can be used with no arguments instead. - """ - - def __init__(self, value: Any = None) -> None: - super(Return, self).__init__() - self.value = value - # Cython recognizes subclasses of StopIteration with a .args tuple. - self.args = (value,) - - -class WaitIterator(object): - """Provides an iterator to yield the results of awaitables as they finish. - - Yielding a set of awaitables like this: - - ``results = yield [awaitable1, awaitable2]`` - - pauses the coroutine until both ``awaitable1`` and ``awaitable2`` - return, and then restarts the coroutine with the results of both - awaitables. If either awaitable raises an exception, the - expression will raise that exception and all the results will be - lost. - - If you need to get the result of each awaitable as soon as possible, - or if you need the result of some awaitables even if others produce - errors, you can use ``WaitIterator``:: - - wait_iterator = gen.WaitIterator(awaitable1, awaitable2) - while not wait_iterator.done(): - try: - result = yield wait_iterator.next() - except Exception as e: - print("Error {} from {}".format(e, wait_iterator.current_future)) - else: - print("Result {} received from {} at {}".format( - result, wait_iterator.current_future, - wait_iterator.current_index)) - - Because results are returned as soon as they are available the - output from the iterator *will not be in the same order as the - input arguments*. If you need to know which future produced the - current result, you can use the attributes - ``WaitIterator.current_future``, or ``WaitIterator.current_index`` - to get the index of the awaitable from the input list. (if keyword - arguments were used in the construction of the `WaitIterator`, - ``current_index`` will use the corresponding keyword). - - On Python 3.5, `WaitIterator` implements the async iterator - protocol, so it can be used with the ``async for`` statement (note - that in this version the entire iteration is aborted if any value - raises an exception, while the previous example can continue past - individual errors):: - - async for result in gen.WaitIterator(future1, future2): - print("Result {} received from {} at {}".format( - result, wait_iterator.current_future, - wait_iterator.current_index)) - - .. versionadded:: 4.1 - - .. versionchanged:: 4.3 - Added ``async for`` support in Python 3.5. - - """ - - _unfinished = {} # type: Dict[Future, Union[int, str]] - - def __init__(self, *args: Future, **kwargs: Future) -> None: - if args and kwargs: - raise ValueError("You must provide args or kwargs, not both") - - if kwargs: - self._unfinished = dict((f, k) for (k, f) in kwargs.items()) - futures = list(kwargs.values()) # type: Sequence[Future] - else: - self._unfinished = dict((f, i) for (i, f) in enumerate(args)) - futures = args - - self._finished = collections.deque() # type: Deque[Future] - self.current_index = None # type: Optional[Union[str, int]] - self.current_future = None # type: Optional[Future] - self._running_future = None # type: Optional[Future] - - for future in futures: - future_add_done_callback(future, self._done_callback) - - def done(self) -> bool: - """Returns True if this iterator has no more results.""" - if self._finished or self._unfinished: - return False - # Clear the 'current' values when iteration is done. - self.current_index = self.current_future = None - return True - - def next(self) -> Future: - """Returns a `.Future` that will yield the next available result. - - Note that this `.Future` will not be the same object as any of - the inputs. - """ - self._running_future = Future() - - if self._finished: - self._return_result(self._finished.popleft()) - - return self._running_future - - def _done_callback(self, done: Future) -> None: - if self._running_future and not self._running_future.done(): - self._return_result(done) - else: - self._finished.append(done) - - def _return_result(self, done: Future) -> None: - """Called set the returned future's state that of the future - we yielded, and set the current future for the iterator. - """ - if self._running_future is None: - raise Exception("no future is running") - chain_future(done, self._running_future) - - self.current_future = done - self.current_index = self._unfinished.pop(done) - - def __aiter__(self) -> typing.AsyncIterator: - return self - - def __anext__(self) -> Future: - if self.done(): - # Lookup by name to silence pyflakes on older versions. - raise getattr(builtins, "StopAsyncIteration")() - return self.next() - - -def multi( - children: Union[List[_Yieldable], Dict[Any, _Yieldable]], - quiet_exceptions: "Union[Type[Exception], Tuple[Type[Exception], ...]]" = (), -) -> "Union[Future[List], Future[Dict]]": - """Runs multiple asynchronous operations in parallel. - - ``children`` may either be a list or a dict whose values are - yieldable objects. ``multi()`` returns a new yieldable - object that resolves to a parallel structure containing their - results. If ``children`` is a list, the result is a list of - results in the same order; if it is a dict, the result is a dict - with the same keys. - - That is, ``results = yield multi(list_of_futures)`` is equivalent - to:: - - results = [] - for future in list_of_futures: - results.append(yield future) - - If any children raise exceptions, ``multi()`` will raise the first - one. All others will be logged, unless they are of types - contained in the ``quiet_exceptions`` argument. - - In a ``yield``-based coroutine, it is not normally necessary to - call this function directly, since the coroutine runner will - do it automatically when a list or dict is yielded. However, - it is necessary in ``await``-based coroutines, or to pass - the ``quiet_exceptions`` argument. - - This function is available under the names ``multi()`` and ``Multi()`` - for historical reasons. - - Cancelling a `.Future` returned by ``multi()`` does not cancel its - children. `asyncio.gather` is similar to ``multi()``, but it does - cancel its children. - - .. versionchanged:: 4.2 - If multiple yieldables fail, any exceptions after the first - (which is raised) will be logged. Added the ``quiet_exceptions`` - argument to suppress this logging for selected exception types. - - .. versionchanged:: 4.3 - Replaced the class ``Multi`` and the function ``multi_future`` - with a unified function ``multi``. Added support for yieldables - other than ``YieldPoint`` and `.Future`. - - """ - return multi_future(children, quiet_exceptions=quiet_exceptions) - - -Multi = multi - - -def multi_future( - children: Union[List[_Yieldable], Dict[Any, _Yieldable]], - quiet_exceptions: "Union[Type[Exception], Tuple[Type[Exception], ...]]" = (), -) -> "Union[Future[List], Future[Dict]]": - """Wait for multiple asynchronous futures in parallel. - - Since Tornado 6.0, this function is exactly the same as `multi`. - - .. versionadded:: 4.0 - - .. versionchanged:: 4.2 - If multiple ``Futures`` fail, any exceptions after the first (which is - raised) will be logged. Added the ``quiet_exceptions`` - argument to suppress this logging for selected exception types. - - .. deprecated:: 4.3 - Use `multi` instead. - """ - if isinstance(children, dict): - keys = list(children.keys()) # type: Optional[List] - children_seq = children.values() # type: Iterable - else: - keys = None - children_seq = children - children_futs = list(map(convert_yielded, children_seq)) - assert all(is_future(i) or isinstance(i, _NullFuture) for i in children_futs) - unfinished_children = set(children_futs) - - future = _create_future() - if not children_futs: - future_set_result_unless_cancelled(future, {} if keys is not None else []) - - def callback(fut: Future) -> None: - unfinished_children.remove(fut) - if not unfinished_children: - result_list = [] - for f in children_futs: - try: - result_list.append(f.result()) - except Exception as e: - if future.done(): - if not isinstance(e, quiet_exceptions): - app_log.error( - "Multiple exceptions in yield list", exc_info=True - ) - else: - future_set_exc_info(future, sys.exc_info()) - if not future.done(): - if keys is not None: - future_set_result_unless_cancelled( - future, dict(zip(keys, result_list)) - ) - else: - future_set_result_unless_cancelled(future, result_list) - - listening = set() # type: Set[Future] - for f in children_futs: - if f not in listening: - listening.add(f) - future_add_done_callback(f, callback) - return future - - -def maybe_future(x: Any) -> Future: - """Converts ``x`` into a `.Future`. - - If ``x`` is already a `.Future`, it is simply returned; otherwise - it is wrapped in a new `.Future`. This is suitable for use as - ``result = yield gen.maybe_future(f())`` when you don't know whether - ``f()`` returns a `.Future` or not. - - .. deprecated:: 4.3 - This function only handles ``Futures``, not other yieldable objects. - Instead of `maybe_future`, check for the non-future result types - you expect (often just ``None``), and ``yield`` anything unknown. - """ - if is_future(x): - return x - else: - fut = _create_future() - fut.set_result(x) - return fut - - -def with_timeout( - timeout: Union[float, datetime.timedelta], - future: _Yieldable, - quiet_exceptions: "Union[Type[Exception], Tuple[Type[Exception], ...]]" = (), -) -> Future: - """Wraps a `.Future` (or other yieldable object) in a timeout. - - Raises `tornado.util.TimeoutError` if the input future does not - complete before ``timeout``, which may be specified in any form - allowed by `.IOLoop.add_timeout` (i.e. a `datetime.timedelta` or - an absolute time relative to `.IOLoop.time`) - - If the wrapped `.Future` fails after it has timed out, the exception - will be logged unless it is either of a type contained in - ``quiet_exceptions`` (which may be an exception type or a sequence of - types), or an ``asyncio.CancelledError``. - - The wrapped `.Future` is not canceled when the timeout expires, - permitting it to be reused. `asyncio.wait_for` is similar to this - function but it does cancel the wrapped `.Future` on timeout. - - .. versionadded:: 4.0 - - .. versionchanged:: 4.1 - Added the ``quiet_exceptions`` argument and the logging of unhandled - exceptions. - - .. versionchanged:: 4.4 - Added support for yieldable objects other than `.Future`. - - .. versionchanged:: 6.0.3 - ``asyncio.CancelledError`` is now always considered "quiet". - - """ - # It's tempting to optimize this by cancelling the input future on timeout - # instead of creating a new one, but A) we can't know if we are the only - # one waiting on the input future, so cancelling it might disrupt other - # callers and B) concurrent futures can only be cancelled while they are - # in the queue, so cancellation cannot reliably bound our waiting time. - future_converted = convert_yielded(future) - result = _create_future() - chain_future(future_converted, result) - io_loop = IOLoop.current() - - def error_callback(future: Future) -> None: - try: - future.result() - except asyncio.CancelledError: - pass - except Exception as e: - if not isinstance(e, quiet_exceptions): - app_log.error( - "Exception in Future %r after timeout", future, exc_info=True - ) - - def timeout_callback() -> None: - if not result.done(): - result.set_exception(TimeoutError("Timeout")) - # In case the wrapped future goes on to fail, log it. - future_add_done_callback(future_converted, error_callback) - - timeout_handle = io_loop.add_timeout(timeout, timeout_callback) - if isinstance(future_converted, Future): - # We know this future will resolve on the IOLoop, so we don't - # need the extra thread-safety of IOLoop.add_future (and we also - # don't care about StackContext here. - future_add_done_callback( - future_converted, lambda future: io_loop.remove_timeout(timeout_handle) - ) - else: - # concurrent.futures.Futures may resolve on any thread, so we - # need to route them back to the IOLoop. - io_loop.add_future( - future_converted, lambda future: io_loop.remove_timeout(timeout_handle) - ) - return result - - -def sleep(duration: float) -> "Future[None]": - """Return a `.Future` that resolves after the given number of seconds. - - When used with ``yield`` in a coroutine, this is a non-blocking - analogue to `time.sleep` (which should not be used in coroutines - because it is blocking):: - - yield gen.sleep(0.5) - - Note that calling this function on its own does nothing; you must - wait on the `.Future` it returns (usually by yielding it). - - .. versionadded:: 4.1 - """ - f = _create_future() - IOLoop.current().call_later( - duration, lambda: future_set_result_unless_cancelled(f, None) - ) - return f - - -class _NullFuture(object): - """_NullFuture resembles a Future that finished with a result of None. - - It's not actually a `Future` to avoid depending on a particular event loop. - Handled as a special case in the coroutine runner. - - We lie and tell the type checker that a _NullFuture is a Future so - we don't have to leak _NullFuture into lots of public APIs. But - this means that the type checker can't warn us when we're passing - a _NullFuture into a code path that doesn't understand what to do - with it. - """ - - def result(self) -> None: - return None - - def done(self) -> bool: - return True - - -# _null_future is used as a dummy value in the coroutine runner. It differs -# from moment in that moment always adds a delay of one IOLoop iteration -# while _null_future is processed as soon as possible. -_null_future = typing.cast(Future, _NullFuture()) - -moment = typing.cast(Future, _NullFuture()) -moment.__doc__ = """A special object which may be yielded to allow the IOLoop to run for -one iteration. - -This is not needed in normal use but it can be helpful in long-running -coroutines that are likely to yield Futures that are ready instantly. - -Usage: ``yield gen.moment`` - -In native coroutines, the equivalent of ``yield gen.moment`` is -``await asyncio.sleep(0)``. - -.. versionadded:: 4.0 - -.. deprecated:: 4.5 - ``yield None`` (or ``yield`` with no argument) is now equivalent to - ``yield gen.moment``. -""" - - -class Runner(object): - """Internal implementation of `tornado.gen.coroutine`. - - Maintains information about pending callbacks and their results. - - The results of the generator are stored in ``result_future`` (a - `.Future`) - """ - - def __init__( - self, - gen: "Generator[_Yieldable, Any, _T]", - result_future: "Future[_T]", - first_yielded: _Yieldable, - ) -> None: - self.gen = gen - self.result_future = result_future - self.future = _null_future # type: Union[None, Future] - self.running = False - self.finished = False - self.io_loop = IOLoop.current() - if self.handle_yield(first_yielded): - gen = result_future = first_yielded = None # type: ignore - self.run() - - def run(self) -> None: - """Starts or resumes the generator, running until it reaches a - yield point that is not ready. - """ - if self.running or self.finished: - return - try: - self.running = True - while True: - future = self.future - if future is None: - raise Exception("No pending future") - if not future.done(): - return - self.future = None - try: - exc_info = None - - try: - value = future.result() - except Exception: - exc_info = sys.exc_info() - future = None - - if exc_info is not None: - try: - yielded = self.gen.throw(*exc_info) # type: ignore - finally: - # Break up a reference to itself - # for faster GC on CPython. - exc_info = None - else: - yielded = self.gen.send(value) - - except (StopIteration, Return) as e: - self.finished = True - self.future = _null_future - future_set_result_unless_cancelled( - self.result_future, _value_from_stopiteration(e) - ) - self.result_future = None # type: ignore - return - except Exception: - self.finished = True - self.future = _null_future - future_set_exc_info(self.result_future, sys.exc_info()) - self.result_future = None # type: ignore - return - if not self.handle_yield(yielded): - return - yielded = None - finally: - self.running = False - - def handle_yield(self, yielded: _Yieldable) -> bool: - try: - self.future = convert_yielded(yielded) - except BadYieldError: - self.future = Future() - future_set_exc_info(self.future, sys.exc_info()) - - if self.future is moment: - self.io_loop.add_callback(self.run) - return False - elif self.future is None: - raise Exception("no pending future") - elif not self.future.done(): - - def inner(f: Any) -> None: - # Break a reference cycle to speed GC. - f = None # noqa: F841 - self.run() - - self.io_loop.add_future(self.future, inner) - return False - return True - - def handle_exception( - self, typ: Type[Exception], value: Exception, tb: types.TracebackType - ) -> bool: - if not self.running and not self.finished: - self.future = Future() - future_set_exc_info(self.future, (typ, value, tb)) - self.run() - return True - else: - return False - - -# Convert Awaitables into Futures. -try: - _wrap_awaitable = asyncio.ensure_future -except AttributeError: - # asyncio.ensure_future was introduced in Python 3.4.4, but - # Debian jessie still ships with 3.4.2 so try the old name. - _wrap_awaitable = getattr(asyncio, "async") - - -def convert_yielded(yielded: _Yieldable) -> Future: - """Convert a yielded object into a `.Future`. - - The default implementation accepts lists, dictionaries, and - Futures. This has the side effect of starting any coroutines that - did not start themselves, similar to `asyncio.ensure_future`. - - If the `~functools.singledispatch` library is available, this function - may be extended to support additional types. For example:: - - @convert_yielded.register(asyncio.Future) - def _(asyncio_future): - return tornado.platform.asyncio.to_tornado_future(asyncio_future) - - .. versionadded:: 4.1 - - """ - if yielded is None or yielded is moment: - return moment - elif yielded is _null_future: - return _null_future - elif isinstance(yielded, (list, dict)): - return multi(yielded) # type: ignore - elif is_future(yielded): - return typing.cast(Future, yielded) - elif isawaitable(yielded): - return _wrap_awaitable(yielded) # type: ignore - else: - raise BadYieldError("yielded unknown object %r" % (yielded,)) - - -convert_yielded = singledispatch(convert_yielded) +"""``tornado.gen`` implements generator-based coroutines. + +.. note:: + + The "decorator and generator" approach in this module is a + precursor to native coroutines (using ``async def`` and ``await``) + which were introduced in Python 3.5. Applications that do not + require compatibility with older versions of Python should use + native coroutines instead. Some parts of this module are still + useful with native coroutines, notably `multi`, `sleep`, + `WaitIterator`, and `with_timeout`. Some of these functions have + counterparts in the `asyncio` module which may be used as well, + although the two may not necessarily be 100% compatible. + +Coroutines provide an easier way to work in an asynchronous +environment than chaining callbacks. Code using coroutines is +technically asynchronous, but it is written as a single generator +instead of a collection of separate functions. + +For example, here's a coroutine-based handler: + +.. testcode:: + + class GenAsyncHandler(RequestHandler): + @gen.coroutine + def get(self): + http_client = AsyncHTTPClient() + response = yield http_client.fetch("http://example.com") + do_something_with_response(response) + self.render("template.html") + +.. testoutput:: + :hide: + +Asynchronous functions in Tornado return an ``Awaitable`` or `.Future`; +yielding this object returns its result. + +You can also yield a list or dict of other yieldable objects, which +will be started at the same time and run in parallel; a list or dict +of results will be returned when they are all finished: + +.. testcode:: + + @gen.coroutine + def get(self): + http_client = AsyncHTTPClient() + response1, response2 = yield [http_client.fetch(url1), + http_client.fetch(url2)] + response_dict = yield dict(response3=http_client.fetch(url3), + response4=http_client.fetch(url4)) + response3 = response_dict['response3'] + response4 = response_dict['response4'] + +.. testoutput:: + :hide: + +If ``tornado.platform.twisted`` is imported, it is also possible to +yield Twisted's ``Deferred`` objects. See the `convert_yielded` +function to extend this mechanism. + +.. versionchanged:: 3.2 + Dict support added. + +.. versionchanged:: 4.1 + Support added for yielding ``asyncio`` Futures and Twisted Deferreds + via ``singledispatch``. + +""" +import asyncio +import builtins +import collections +from collections.abc import Generator +import concurrent.futures +import datetime +import functools +from functools import singledispatch +from inspect import isawaitable +import sys +import types + +from tornado.concurrent import ( + Future, + is_future, + chain_future, + future_set_exc_info, + future_add_done_callback, + future_set_result_unless_cancelled, +) +from tornado.ioloop import IOLoop +from tornado.log import app_log +from tornado.util import TimeoutError + +import typing +from typing import Union, Any, Callable, List, Type, Tuple, Awaitable, Dict + +if typing.TYPE_CHECKING: + from typing import Sequence, Deque, Optional, Set, Iterable # noqa: F401 + +_T = typing.TypeVar("_T") + +_Yieldable = Union[ + None, Awaitable, List[Awaitable], Dict[Any, Awaitable], concurrent.futures.Future +] + + +class KeyReuseError(Exception): + pass + + +class UnknownKeyError(Exception): + pass + + +class LeakedCallbackError(Exception): + pass + + +class BadYieldError(Exception): + pass + + +class ReturnValueIgnoredError(Exception): + pass + + +def _value_from_stopiteration(e: Union[StopIteration, "Return"]) -> Any: + try: + # StopIteration has a value attribute beginning in py33. + # So does our Return class. + return e.value + except AttributeError: + pass + try: + # Cython backports coroutine functionality by putting the value in + # e.args[0]. + return e.args[0] + except (AttributeError, IndexError): + return None + + +def _create_future() -> Future: + future = Future() # type: Future + # Fixup asyncio debug info by removing extraneous stack entries + source_traceback = getattr(future, "_source_traceback", ()) + while source_traceback: + # Each traceback entry is equivalent to a + # (filename, self.lineno, self.name, self.line) tuple + filename = source_traceback[-1][0] + if filename == __file__: + del source_traceback[-1] + else: + break + return future + + +def coroutine( + func: Callable[..., "Generator[Any, Any, _T]"] +) -> Callable[..., "Future[_T]"]: + """Decorator for asynchronous generators. + + For compatibility with older versions of Python, coroutines may + also "return" by raising the special exception `Return(value) + `. + + Functions with this decorator return a `.Future`. + + .. warning:: + + When exceptions occur inside a coroutine, the exception + information will be stored in the `.Future` object. You must + examine the result of the `.Future` object, or the exception + may go unnoticed by your code. This means yielding the function + if called from another coroutine, using something like + `.IOLoop.run_sync` for top-level calls, or passing the `.Future` + to `.IOLoop.add_future`. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + awaitable object instead. + + """ + + @functools.wraps(func) + def wrapper(*args, **kwargs): + # type: (*Any, **Any) -> Future[_T] + # This function is type-annotated with a comment to work around + # https://bitbucket.org/pypy/pypy/issues/2868/segfault-with-args-type-annotation-in + future = _create_future() + try: + result = func(*args, **kwargs) + except (Return, StopIteration) as e: + result = _value_from_stopiteration(e) + except Exception: + future_set_exc_info(future, sys.exc_info()) + try: + return future + finally: + # Avoid circular references + future = None # type: ignore + else: + if isinstance(result, Generator): + # Inline the first iteration of Runner.run. This lets us + # avoid the cost of creating a Runner when the coroutine + # never actually yields, which in turn allows us to + # use "optional" coroutines in critical path code without + # performance penalty for the synchronous case. + try: + yielded = next(result) + except (StopIteration, Return) as e: + future_set_result_unless_cancelled( + future, _value_from_stopiteration(e) + ) + except Exception: + future_set_exc_info(future, sys.exc_info()) + else: + # Provide strong references to Runner objects as long + # as their result future objects also have strong + # references (typically from the parent coroutine's + # Runner). This keeps the coroutine's Runner alive. + # We do this by exploiting the public API + # add_done_callback() instead of putting a private + # attribute on the Future. + # (Github issues #1769, #2229). + runner = Runner(result, future, yielded) + future.add_done_callback(lambda _: runner) + yielded = None + try: + return future + finally: + # Subtle memory optimization: if next() raised an exception, + # the future's exc_info contains a traceback which + # includes this stack frame. This creates a cycle, + # which will be collected at the next full GC but has + # been shown to greatly increase memory usage of + # benchmarks (relative to the refcount-based scheme + # used in the absence of cycles). We can avoid the + # cycle by clearing the local variable after we return it. + future = None # type: ignore + future_set_result_unless_cancelled(future, result) + return future + + wrapper.__wrapped__ = func # type: ignore + wrapper.__tornado_coroutine__ = True # type: ignore + return wrapper + + +def is_coroutine_function(func: Any) -> bool: + """Return whether *func* is a coroutine function, i.e. a function + wrapped with `~.gen.coroutine`. + + .. versionadded:: 4.5 + """ + return getattr(func, "__tornado_coroutine__", False) + + +class Return(Exception): + """Special exception to return a value from a `coroutine`. + + If this exception is raised, its value argument is used as the + result of the coroutine:: + + @gen.coroutine + def fetch_json(url): + response = yield AsyncHTTPClient().fetch(url) + raise gen.Return(json_decode(response.body)) + + In Python 3.3, this exception is no longer necessary: the ``return`` + statement can be used directly to return a value (previously + ``yield`` and ``return`` with a value could not be combined in the + same function). + + By analogy with the return statement, the value argument is optional, + but it is never necessary to ``raise gen.Return()``. The ``return`` + statement can be used with no arguments instead. + """ + + def __init__(self, value: Any = None) -> None: + super(Return, self).__init__() + self.value = value + # Cython recognizes subclasses of StopIteration with a .args tuple. + self.args = (value,) + + +class WaitIterator(object): + """Provides an iterator to yield the results of awaitables as they finish. + + Yielding a set of awaitables like this: + + ``results = yield [awaitable1, awaitable2]`` + + pauses the coroutine until both ``awaitable1`` and ``awaitable2`` + return, and then restarts the coroutine with the results of both + awaitables. If either awaitable raises an exception, the + expression will raise that exception and all the results will be + lost. + + If you need to get the result of each awaitable as soon as possible, + or if you need the result of some awaitables even if others produce + errors, you can use ``WaitIterator``:: + + wait_iterator = gen.WaitIterator(awaitable1, awaitable2) + while not wait_iterator.done(): + try: + result = yield wait_iterator.next() + except Exception as e: + print("Error {} from {}".format(e, wait_iterator.current_future)) + else: + print("Result {} received from {} at {}".format( + result, wait_iterator.current_future, + wait_iterator.current_index)) + + Because results are returned as soon as they are available the + output from the iterator *will not be in the same order as the + input arguments*. If you need to know which future produced the + current result, you can use the attributes + ``WaitIterator.current_future``, or ``WaitIterator.current_index`` + to get the index of the awaitable from the input list. (if keyword + arguments were used in the construction of the `WaitIterator`, + ``current_index`` will use the corresponding keyword). + + On Python 3.5, `WaitIterator` implements the async iterator + protocol, so it can be used with the ``async for`` statement (note + that in this version the entire iteration is aborted if any value + raises an exception, while the previous example can continue past + individual errors):: + + async for result in gen.WaitIterator(future1, future2): + print("Result {} received from {} at {}".format( + result, wait_iterator.current_future, + wait_iterator.current_index)) + + .. versionadded:: 4.1 + + .. versionchanged:: 4.3 + Added ``async for`` support in Python 3.5. + + """ + + _unfinished = {} # type: Dict[Future, Union[int, str]] + + def __init__(self, *args: Future, **kwargs: Future) -> None: + if args and kwargs: + raise ValueError("You must provide args or kwargs, not both") + + if kwargs: + self._unfinished = dict((f, k) for (k, f) in kwargs.items()) + futures = list(kwargs.values()) # type: Sequence[Future] + else: + self._unfinished = dict((f, i) for (i, f) in enumerate(args)) + futures = args + + self._finished = collections.deque() # type: Deque[Future] + self.current_index = None # type: Optional[Union[str, int]] + self.current_future = None # type: Optional[Future] + self._running_future = None # type: Optional[Future] + + for future in futures: + future_add_done_callback(future, self._done_callback) + + def done(self) -> bool: + """Returns True if this iterator has no more results.""" + if self._finished or self._unfinished: + return False + # Clear the 'current' values when iteration is done. + self.current_index = self.current_future = None + return True + + def next(self) -> Future: + """Returns a `.Future` that will yield the next available result. + + Note that this `.Future` will not be the same object as any of + the inputs. + """ + self._running_future = Future() + + if self._finished: + self._return_result(self._finished.popleft()) + + return self._running_future + + def _done_callback(self, done: Future) -> None: + if self._running_future and not self._running_future.done(): + self._return_result(done) + else: + self._finished.append(done) + + def _return_result(self, done: Future) -> None: + """Called set the returned future's state that of the future + we yielded, and set the current future for the iterator. + """ + if self._running_future is None: + raise Exception("no future is running") + chain_future(done, self._running_future) + + self.current_future = done + self.current_index = self._unfinished.pop(done) + + def __aiter__(self) -> typing.AsyncIterator: + return self + + def __anext__(self) -> Future: + if self.done(): + # Lookup by name to silence pyflakes on older versions. + raise getattr(builtins, "StopAsyncIteration")() + return self.next() + + +def multi( + children: Union[List[_Yieldable], Dict[Any, _Yieldable]], + quiet_exceptions: "Union[Type[Exception], Tuple[Type[Exception], ...]]" = (), +) -> "Union[Future[List], Future[Dict]]": + """Runs multiple asynchronous operations in parallel. + + ``children`` may either be a list or a dict whose values are + yieldable objects. ``multi()`` returns a new yieldable + object that resolves to a parallel structure containing their + results. If ``children`` is a list, the result is a list of + results in the same order; if it is a dict, the result is a dict + with the same keys. + + That is, ``results = yield multi(list_of_futures)`` is equivalent + to:: + + results = [] + for future in list_of_futures: + results.append(yield future) + + If any children raise exceptions, ``multi()`` will raise the first + one. All others will be logged, unless they are of types + contained in the ``quiet_exceptions`` argument. + + In a ``yield``-based coroutine, it is not normally necessary to + call this function directly, since the coroutine runner will + do it automatically when a list or dict is yielded. However, + it is necessary in ``await``-based coroutines, or to pass + the ``quiet_exceptions`` argument. + + This function is available under the names ``multi()`` and ``Multi()`` + for historical reasons. + + Cancelling a `.Future` returned by ``multi()`` does not cancel its + children. `asyncio.gather` is similar to ``multi()``, but it does + cancel its children. + + .. versionchanged:: 4.2 + If multiple yieldables fail, any exceptions after the first + (which is raised) will be logged. Added the ``quiet_exceptions`` + argument to suppress this logging for selected exception types. + + .. versionchanged:: 4.3 + Replaced the class ``Multi`` and the function ``multi_future`` + with a unified function ``multi``. Added support for yieldables + other than ``YieldPoint`` and `.Future`. + + """ + return multi_future(children, quiet_exceptions=quiet_exceptions) + + +Multi = multi + + +def multi_future( + children: Union[List[_Yieldable], Dict[Any, _Yieldable]], + quiet_exceptions: "Union[Type[Exception], Tuple[Type[Exception], ...]]" = (), +) -> "Union[Future[List], Future[Dict]]": + """Wait for multiple asynchronous futures in parallel. + + Since Tornado 6.0, this function is exactly the same as `multi`. + + .. versionadded:: 4.0 + + .. versionchanged:: 4.2 + If multiple ``Futures`` fail, any exceptions after the first (which is + raised) will be logged. Added the ``quiet_exceptions`` + argument to suppress this logging for selected exception types. + + .. deprecated:: 4.3 + Use `multi` instead. + """ + if isinstance(children, dict): + keys = list(children.keys()) # type: Optional[List] + children_seq = children.values() # type: Iterable + else: + keys = None + children_seq = children + children_futs = list(map(convert_yielded, children_seq)) + assert all(is_future(i) or isinstance(i, _NullFuture) for i in children_futs) + unfinished_children = set(children_futs) + + future = _create_future() + if not children_futs: + future_set_result_unless_cancelled(future, {} if keys is not None else []) + + def callback(fut: Future) -> None: + unfinished_children.remove(fut) + if not unfinished_children: + result_list = [] + for f in children_futs: + try: + result_list.append(f.result()) + except Exception as e: + if future.done(): + if not isinstance(e, quiet_exceptions): + app_log.error( + "Multiple exceptions in yield list", exc_info=True + ) + else: + future_set_exc_info(future, sys.exc_info()) + if not future.done(): + if keys is not None: + future_set_result_unless_cancelled( + future, dict(zip(keys, result_list)) + ) + else: + future_set_result_unless_cancelled(future, result_list) + + listening = set() # type: Set[Future] + for f in children_futs: + if f not in listening: + listening.add(f) + future_add_done_callback(f, callback) + return future + + +def maybe_future(x: Any) -> Future: + """Converts ``x`` into a `.Future`. + + If ``x`` is already a `.Future`, it is simply returned; otherwise + it is wrapped in a new `.Future`. This is suitable for use as + ``result = yield gen.maybe_future(f())`` when you don't know whether + ``f()`` returns a `.Future` or not. + + .. deprecated:: 4.3 + This function only handles ``Futures``, not other yieldable objects. + Instead of `maybe_future`, check for the non-future result types + you expect (often just ``None``), and ``yield`` anything unknown. + """ + if is_future(x): + return x + else: + fut = _create_future() + fut.set_result(x) + return fut + + +def with_timeout( + timeout: Union[float, datetime.timedelta], + future: _Yieldable, + quiet_exceptions: "Union[Type[Exception], Tuple[Type[Exception], ...]]" = (), +) -> Future: + """Wraps a `.Future` (or other yieldable object) in a timeout. + + Raises `tornado.util.TimeoutError` if the input future does not + complete before ``timeout``, which may be specified in any form + allowed by `.IOLoop.add_timeout` (i.e. a `datetime.timedelta` or + an absolute time relative to `.IOLoop.time`) + + If the wrapped `.Future` fails after it has timed out, the exception + will be logged unless it is either of a type contained in + ``quiet_exceptions`` (which may be an exception type or a sequence of + types), or an ``asyncio.CancelledError``. + + The wrapped `.Future` is not canceled when the timeout expires, + permitting it to be reused. `asyncio.wait_for` is similar to this + function but it does cancel the wrapped `.Future` on timeout. + + .. versionadded:: 4.0 + + .. versionchanged:: 4.1 + Added the ``quiet_exceptions`` argument and the logging of unhandled + exceptions. + + .. versionchanged:: 4.4 + Added support for yieldable objects other than `.Future`. + + .. versionchanged:: 6.0.3 + ``asyncio.CancelledError`` is now always considered "quiet". + + """ + # It's tempting to optimize this by cancelling the input future on timeout + # instead of creating a new one, but A) we can't know if we are the only + # one waiting on the input future, so cancelling it might disrupt other + # callers and B) concurrent futures can only be cancelled while they are + # in the queue, so cancellation cannot reliably bound our waiting time. + future_converted = convert_yielded(future) + result = _create_future() + chain_future(future_converted, result) + io_loop = IOLoop.current() + + def error_callback(future: Future) -> None: + try: + future.result() + except asyncio.CancelledError: + pass + except Exception as e: + if not isinstance(e, quiet_exceptions): + app_log.error( + "Exception in Future %r after timeout", future, exc_info=True + ) + + def timeout_callback() -> None: + if not result.done(): + result.set_exception(TimeoutError("Timeout")) + # In case the wrapped future goes on to fail, log it. + future_add_done_callback(future_converted, error_callback) + + timeout_handle = io_loop.add_timeout(timeout, timeout_callback) + if isinstance(future_converted, Future): + # We know this future will resolve on the IOLoop, so we don't + # need the extra thread-safety of IOLoop.add_future (and we also + # don't care about StackContext here. + future_add_done_callback( + future_converted, lambda future: io_loop.remove_timeout(timeout_handle) + ) + else: + # concurrent.futures.Futures may resolve on any thread, so we + # need to route them back to the IOLoop. + io_loop.add_future( + future_converted, lambda future: io_loop.remove_timeout(timeout_handle) + ) + return result + + +def sleep(duration: float) -> "Future[None]": + """Return a `.Future` that resolves after the given number of seconds. + + When used with ``yield`` in a coroutine, this is a non-blocking + analogue to `time.sleep` (which should not be used in coroutines + because it is blocking):: + + yield gen.sleep(0.5) + + Note that calling this function on its own does nothing; you must + wait on the `.Future` it returns (usually by yielding it). + + .. versionadded:: 4.1 + """ + f = _create_future() + IOLoop.current().call_later( + duration, lambda: future_set_result_unless_cancelled(f, None) + ) + return f + + +class _NullFuture(object): + """_NullFuture resembles a Future that finished with a result of None. + + It's not actually a `Future` to avoid depending on a particular event loop. + Handled as a special case in the coroutine runner. + + We lie and tell the type checker that a _NullFuture is a Future so + we don't have to leak _NullFuture into lots of public APIs. But + this means that the type checker can't warn us when we're passing + a _NullFuture into a code path that doesn't understand what to do + with it. + """ + + def result(self) -> None: + return None + + def done(self) -> bool: + return True + + +# _null_future is used as a dummy value in the coroutine runner. It differs +# from moment in that moment always adds a delay of one IOLoop iteration +# while _null_future is processed as soon as possible. +_null_future = typing.cast(Future, _NullFuture()) + +moment = typing.cast(Future, _NullFuture()) +moment.__doc__ = """A special object which may be yielded to allow the IOLoop to run for +one iteration. + +This is not needed in normal use but it can be helpful in long-running +coroutines that are likely to yield Futures that are ready instantly. + +Usage: ``yield gen.moment`` + +In native coroutines, the equivalent of ``yield gen.moment`` is +``await asyncio.sleep(0)``. + +.. versionadded:: 4.0 + +.. deprecated:: 4.5 + ``yield None`` (or ``yield`` with no argument) is now equivalent to + ``yield gen.moment``. +""" + + +class Runner(object): + """Internal implementation of `tornado.gen.coroutine`. + + Maintains information about pending callbacks and their results. + + The results of the generator are stored in ``result_future`` (a + `.Future`) + """ + + def __init__( + self, + gen: "Generator[_Yieldable, Any, _T]", + result_future: "Future[_T]", + first_yielded: _Yieldable, + ) -> None: + self.gen = gen + self.result_future = result_future + self.future = _null_future # type: Union[None, Future] + self.running = False + self.finished = False + self.io_loop = IOLoop.current() + if self.handle_yield(first_yielded): + gen = result_future = first_yielded = None # type: ignore + self.run() + + def run(self) -> None: + """Starts or resumes the generator, running until it reaches a + yield point that is not ready. + """ + if self.running or self.finished: + return + try: + self.running = True + while True: + future = self.future + if future is None: + raise Exception("No pending future") + if not future.done(): + return + self.future = None + try: + exc_info = None + + try: + value = future.result() + except Exception: + exc_info = sys.exc_info() + future = None + + if exc_info is not None: + try: + yielded = self.gen.throw(*exc_info) # type: ignore + finally: + # Break up a reference to itself + # for faster GC on CPython. + exc_info = None + else: + yielded = self.gen.send(value) + + except (StopIteration, Return) as e: + self.finished = True + self.future = _null_future + future_set_result_unless_cancelled( + self.result_future, _value_from_stopiteration(e) + ) + self.result_future = None # type: ignore + return + except Exception: + self.finished = True + self.future = _null_future + future_set_exc_info(self.result_future, sys.exc_info()) + self.result_future = None # type: ignore + return + if not self.handle_yield(yielded): + return + yielded = None + finally: + self.running = False + + def handle_yield(self, yielded: _Yieldable) -> bool: + try: + self.future = convert_yielded(yielded) + except BadYieldError: + self.future = Future() + future_set_exc_info(self.future, sys.exc_info()) + + if self.future is moment: + self.io_loop.add_callback(self.run) + return False + elif self.future is None: + raise Exception("no pending future") + elif not self.future.done(): + + def inner(f: Any) -> None: + # Break a reference cycle to speed GC. + f = None # noqa: F841 + self.run() + + self.io_loop.add_future(self.future, inner) + return False + return True + + def handle_exception( + self, typ: Type[Exception], value: Exception, tb: types.TracebackType + ) -> bool: + if not self.running and not self.finished: + self.future = Future() + future_set_exc_info(self.future, (typ, value, tb)) + self.run() + return True + else: + return False + + +# Convert Awaitables into Futures. +try: + _wrap_awaitable = asyncio.ensure_future +except AttributeError: + # asyncio.ensure_future was introduced in Python 3.4.4, but + # Debian jessie still ships with 3.4.2 so try the old name. + _wrap_awaitable = getattr(asyncio, "async") + + +def convert_yielded(yielded: _Yieldable) -> Future: + """Convert a yielded object into a `.Future`. + + The default implementation accepts lists, dictionaries, and + Futures. This has the side effect of starting any coroutines that + did not start themselves, similar to `asyncio.ensure_future`. + + If the `~functools.singledispatch` library is available, this function + may be extended to support additional types. For example:: + + @convert_yielded.register(asyncio.Future) + def _(asyncio_future): + return tornado.platform.asyncio.to_tornado_future(asyncio_future) + + .. versionadded:: 4.1 + + """ + if yielded is None or yielded is moment: + return moment + elif yielded is _null_future: + return _null_future + elif isinstance(yielded, (list, dict)): + return multi(yielded) # type: ignore + elif is_future(yielded): + return typing.cast(Future, yielded) + elif isawaitable(yielded): + return _wrap_awaitable(yielded) # type: ignore + else: + raise BadYieldError("yielded unknown object %r" % (yielded,)) + + +convert_yielded = singledispatch(convert_yielded) diff --git a/server/www/packages/packages-linux/x64/tornado/http1connection.py b/server/www/packages/packages-linux/x64/tornado/http1connection.py index 434f16a..6ea1d36 100644 --- a/server/www/packages/packages-linux/x64/tornado/http1connection.py +++ b/server/www/packages/packages-linux/x64/tornado/http1connection.py @@ -1,836 +1,836 @@ -# -# Copyright 2014 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Client and server implementations of HTTP/1.x. - -.. versionadded:: 4.0 -""" - -import asyncio -import logging -import re -import types - -from tornado.concurrent import ( - Future, - future_add_done_callback, - future_set_result_unless_cancelled, -) -from tornado.escape import native_str, utf8 -from tornado import gen -from tornado import httputil -from tornado import iostream -from tornado.log import gen_log, app_log -from tornado.util import GzipDecompressor - - -from typing import cast, Optional, Type, Awaitable, Callable, Union, Tuple - - -class _QuietException(Exception): - def __init__(self) -> None: - pass - - -class _ExceptionLoggingContext(object): - """Used with the ``with`` statement when calling delegate methods to - log any exceptions with the given logger. Any exceptions caught are - converted to _QuietException - """ - - def __init__(self, logger: logging.Logger) -> None: - self.logger = logger - - def __enter__(self) -> None: - pass - - def __exit__( - self, - typ: "Optional[Type[BaseException]]", - value: Optional[BaseException], - tb: types.TracebackType, - ) -> None: - if value is not None: - assert typ is not None - self.logger.error("Uncaught exception", exc_info=(typ, value, tb)) - raise _QuietException - - -class HTTP1ConnectionParameters(object): - """Parameters for `.HTTP1Connection` and `.HTTP1ServerConnection`. - """ - - def __init__( - self, - no_keep_alive: bool = False, - chunk_size: int = None, - max_header_size: int = None, - header_timeout: float = None, - max_body_size: int = None, - body_timeout: float = None, - decompress: bool = False, - ) -> None: - """ - :arg bool no_keep_alive: If true, always close the connection after - one request. - :arg int chunk_size: how much data to read into memory at once - :arg int max_header_size: maximum amount of data for HTTP headers - :arg float header_timeout: how long to wait for all headers (seconds) - :arg int max_body_size: maximum amount of data for body - :arg float body_timeout: how long to wait while reading body (seconds) - :arg bool decompress: if true, decode incoming - ``Content-Encoding: gzip`` - """ - self.no_keep_alive = no_keep_alive - self.chunk_size = chunk_size or 65536 - self.max_header_size = max_header_size or 65536 - self.header_timeout = header_timeout - self.max_body_size = max_body_size - self.body_timeout = body_timeout - self.decompress = decompress - - -class HTTP1Connection(httputil.HTTPConnection): - """Implements the HTTP/1.x protocol. - - This class can be on its own for clients, or via `HTTP1ServerConnection` - for servers. - """ - - def __init__( - self, - stream: iostream.IOStream, - is_client: bool, - params: HTTP1ConnectionParameters = None, - context: object = None, - ) -> None: - """ - :arg stream: an `.IOStream` - :arg bool is_client: client or server - :arg params: a `.HTTP1ConnectionParameters` instance or ``None`` - :arg context: an opaque application-defined object that can be accessed - as ``connection.context``. - """ - self.is_client = is_client - self.stream = stream - if params is None: - params = HTTP1ConnectionParameters() - self.params = params - self.context = context - self.no_keep_alive = params.no_keep_alive - # The body limits can be altered by the delegate, so save them - # here instead of just referencing self.params later. - self._max_body_size = self.params.max_body_size or self.stream.max_buffer_size - self._body_timeout = self.params.body_timeout - # _write_finished is set to True when finish() has been called, - # i.e. there will be no more data sent. Data may still be in the - # stream's write buffer. - self._write_finished = False - # True when we have read the entire incoming body. - self._read_finished = False - # _finish_future resolves when all data has been written and flushed - # to the IOStream. - self._finish_future = Future() # type: Future[None] - # If true, the connection should be closed after this request - # (after the response has been written in the server side, - # and after it has been read in the client) - self._disconnect_on_finish = False - self._clear_callbacks() - # Save the start lines after we read or write them; they - # affect later processing (e.g. 304 responses and HEAD methods - # have content-length but no bodies) - self._request_start_line = None # type: Optional[httputil.RequestStartLine] - self._response_start_line = None # type: Optional[httputil.ResponseStartLine] - self._request_headers = None # type: Optional[httputil.HTTPHeaders] - # True if we are writing output with chunked encoding. - self._chunking_output = False - # While reading a body with a content-length, this is the - # amount left to read. - self._expected_content_remaining = None # type: Optional[int] - # A Future for our outgoing writes, returned by IOStream.write. - self._pending_write = None # type: Optional[Future[None]] - - def read_response(self, delegate: httputil.HTTPMessageDelegate) -> Awaitable[bool]: - """Read a single HTTP response. - - Typical client-mode usage is to write a request using `write_headers`, - `write`, and `finish`, and then call ``read_response``. - - :arg delegate: a `.HTTPMessageDelegate` - - Returns a `.Future` that resolves to a bool after the full response has - been read. The result is true if the stream is still open. - """ - if self.params.decompress: - delegate = _GzipMessageDelegate(delegate, self.params.chunk_size) - return self._read_message(delegate) - - async def _read_message(self, delegate: httputil.HTTPMessageDelegate) -> bool: - need_delegate_close = False - try: - header_future = self.stream.read_until_regex( - b"\r?\n\r?\n", max_bytes=self.params.max_header_size - ) - if self.params.header_timeout is None: - header_data = await header_future - else: - try: - header_data = await gen.with_timeout( - self.stream.io_loop.time() + self.params.header_timeout, - header_future, - quiet_exceptions=iostream.StreamClosedError, - ) - except gen.TimeoutError: - self.close() - return False - start_line_str, headers = self._parse_headers(header_data) - if self.is_client: - resp_start_line = httputil.parse_response_start_line(start_line_str) - self._response_start_line = resp_start_line - start_line = ( - resp_start_line - ) # type: Union[httputil.RequestStartLine, httputil.ResponseStartLine] - # TODO: this will need to change to support client-side keepalive - self._disconnect_on_finish = False - else: - req_start_line = httputil.parse_request_start_line(start_line_str) - self._request_start_line = req_start_line - self._request_headers = headers - start_line = req_start_line - self._disconnect_on_finish = not self._can_keep_alive( - req_start_line, headers - ) - need_delegate_close = True - with _ExceptionLoggingContext(app_log): - header_recv_future = delegate.headers_received(start_line, headers) - if header_recv_future is not None: - await header_recv_future - if self.stream is None: - # We've been detached. - need_delegate_close = False - return False - skip_body = False - if self.is_client: - assert isinstance(start_line, httputil.ResponseStartLine) - if ( - self._request_start_line is not None - and self._request_start_line.method == "HEAD" - ): - skip_body = True - code = start_line.code - if code == 304: - # 304 responses may include the content-length header - # but do not actually have a body. - # http://tools.ietf.org/html/rfc7230#section-3.3 - skip_body = True - if code >= 100 and code < 200: - # 1xx responses should never indicate the presence of - # a body. - if "Content-Length" in headers or "Transfer-Encoding" in headers: - raise httputil.HTTPInputError( - "Response code %d cannot have body" % code - ) - # TODO: client delegates will get headers_received twice - # in the case of a 100-continue. Document or change? - await self._read_message(delegate) - else: - if headers.get("Expect") == "100-continue" and not self._write_finished: - self.stream.write(b"HTTP/1.1 100 (Continue)\r\n\r\n") - if not skip_body: - body_future = self._read_body( - resp_start_line.code if self.is_client else 0, headers, delegate - ) - if body_future is not None: - if self._body_timeout is None: - await body_future - else: - try: - await gen.with_timeout( - self.stream.io_loop.time() + self._body_timeout, - body_future, - quiet_exceptions=iostream.StreamClosedError, - ) - except gen.TimeoutError: - gen_log.info("Timeout reading body from %s", self.context) - self.stream.close() - return False - self._read_finished = True - if not self._write_finished or self.is_client: - need_delegate_close = False - with _ExceptionLoggingContext(app_log): - delegate.finish() - # If we're waiting for the application to produce an asynchronous - # response, and we're not detached, register a close callback - # on the stream (we didn't need one while we were reading) - if ( - not self._finish_future.done() - and self.stream is not None - and not self.stream.closed() - ): - self.stream.set_close_callback(self._on_connection_close) - await self._finish_future - if self.is_client and self._disconnect_on_finish: - self.close() - if self.stream is None: - return False - except httputil.HTTPInputError as e: - gen_log.info("Malformed HTTP message from %s: %s", self.context, e) - if not self.is_client: - await self.stream.write(b"HTTP/1.1 400 Bad Request\r\n\r\n") - self.close() - return False - finally: - if need_delegate_close: - with _ExceptionLoggingContext(app_log): - delegate.on_connection_close() - header_future = None # type: ignore - self._clear_callbacks() - return True - - def _clear_callbacks(self) -> None: - """Clears the callback attributes. - - This allows the request handler to be garbage collected more - quickly in CPython by breaking up reference cycles. - """ - self._write_callback = None - self._write_future = None # type: Optional[Future[None]] - self._close_callback = None # type: Optional[Callable[[], None]] - if self.stream is not None: - self.stream.set_close_callback(None) - - def set_close_callback(self, callback: Optional[Callable[[], None]]) -> None: - """Sets a callback that will be run when the connection is closed. - - Note that this callback is slightly different from - `.HTTPMessageDelegate.on_connection_close`: The - `.HTTPMessageDelegate` method is called when the connection is - closed while recieving a message. This callback is used when - there is not an active delegate (for example, on the server - side this callback is used if the client closes the connection - after sending its request but before receiving all the - response. - """ - self._close_callback = callback - - def _on_connection_close(self) -> None: - # Note that this callback is only registered on the IOStream - # when we have finished reading the request and are waiting for - # the application to produce its response. - if self._close_callback is not None: - callback = self._close_callback - self._close_callback = None - callback() - if not self._finish_future.done(): - future_set_result_unless_cancelled(self._finish_future, None) - self._clear_callbacks() - - def close(self) -> None: - if self.stream is not None: - self.stream.close() - self._clear_callbacks() - if not self._finish_future.done(): - future_set_result_unless_cancelled(self._finish_future, None) - - def detach(self) -> iostream.IOStream: - """Take control of the underlying stream. - - Returns the underlying `.IOStream` object and stops all further - HTTP processing. May only be called during - `.HTTPMessageDelegate.headers_received`. Intended for implementing - protocols like websockets that tunnel over an HTTP handshake. - """ - self._clear_callbacks() - stream = self.stream - self.stream = None # type: ignore - if not self._finish_future.done(): - future_set_result_unless_cancelled(self._finish_future, None) - return stream - - def set_body_timeout(self, timeout: float) -> None: - """Sets the body timeout for a single request. - - Overrides the value from `.HTTP1ConnectionParameters`. - """ - self._body_timeout = timeout - - def set_max_body_size(self, max_body_size: int) -> None: - """Sets the body size limit for a single request. - - Overrides the value from `.HTTP1ConnectionParameters`. - """ - self._max_body_size = max_body_size - - def write_headers( - self, - start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], - headers: httputil.HTTPHeaders, - chunk: bytes = None, - ) -> "Future[None]": - """Implements `.HTTPConnection.write_headers`.""" - lines = [] - if self.is_client: - assert isinstance(start_line, httputil.RequestStartLine) - self._request_start_line = start_line - lines.append(utf8("%s %s HTTP/1.1" % (start_line[0], start_line[1]))) - # Client requests with a non-empty body must have either a - # Content-Length or a Transfer-Encoding. - self._chunking_output = ( - start_line.method in ("POST", "PUT", "PATCH") - and "Content-Length" not in headers - and ( - "Transfer-Encoding" not in headers - or headers["Transfer-Encoding"] == "chunked" - ) - ) - else: - assert isinstance(start_line, httputil.ResponseStartLine) - assert self._request_start_line is not None - assert self._request_headers is not None - self._response_start_line = start_line - lines.append(utf8("HTTP/1.1 %d %s" % (start_line[1], start_line[2]))) - self._chunking_output = ( - # TODO: should this use - # self._request_start_line.version or - # start_line.version? - self._request_start_line.version == "HTTP/1.1" - # 1xx, 204 and 304 responses have no body (not even a zero-length - # body), and so should not have either Content-Length or - # Transfer-Encoding headers. - and start_line.code not in (204, 304) - and (start_line.code < 100 or start_line.code >= 200) - # No need to chunk the output if a Content-Length is specified. - and "Content-Length" not in headers - # Applications are discouraged from touching Transfer-Encoding, - # but if they do, leave it alone. - and "Transfer-Encoding" not in headers - ) - # If connection to a 1.1 client will be closed, inform client - if ( - self._request_start_line.version == "HTTP/1.1" - and self._disconnect_on_finish - ): - headers["Connection"] = "close" - # If a 1.0 client asked for keep-alive, add the header. - if ( - self._request_start_line.version == "HTTP/1.0" - and self._request_headers.get("Connection", "").lower() == "keep-alive" - ): - headers["Connection"] = "Keep-Alive" - if self._chunking_output: - headers["Transfer-Encoding"] = "chunked" - if not self.is_client and ( - self._request_start_line.method == "HEAD" - or cast(httputil.ResponseStartLine, start_line).code == 304 - ): - self._expected_content_remaining = 0 - elif "Content-Length" in headers: - self._expected_content_remaining = int(headers["Content-Length"]) - else: - self._expected_content_remaining = None - # TODO: headers are supposed to be of type str, but we still have some - # cases that let bytes slip through. Remove these native_str calls when those - # are fixed. - header_lines = ( - native_str(n) + ": " + native_str(v) for n, v in headers.get_all() - ) - lines.extend(l.encode("latin1") for l in header_lines) - for line in lines: - if b"\n" in line: - raise ValueError("Newline in header: " + repr(line)) - future = None - if self.stream.closed(): - future = self._write_future = Future() - future.set_exception(iostream.StreamClosedError()) - future.exception() - else: - future = self._write_future = Future() - data = b"\r\n".join(lines) + b"\r\n\r\n" - if chunk: - data += self._format_chunk(chunk) - self._pending_write = self.stream.write(data) - future_add_done_callback(self._pending_write, self._on_write_complete) - return future - - def _format_chunk(self, chunk: bytes) -> bytes: - if self._expected_content_remaining is not None: - self._expected_content_remaining -= len(chunk) - if self._expected_content_remaining < 0: - # Close the stream now to stop further framing errors. - self.stream.close() - raise httputil.HTTPOutputError( - "Tried to write more data than Content-Length" - ) - if self._chunking_output and chunk: - # Don't write out empty chunks because that means END-OF-STREAM - # with chunked encoding - return utf8("%x" % len(chunk)) + b"\r\n" + chunk + b"\r\n" - else: - return chunk - - def write(self, chunk: bytes) -> "Future[None]": - """Implements `.HTTPConnection.write`. - - For backwards compatibility it is allowed but deprecated to - skip `write_headers` and instead call `write()` with a - pre-encoded header block. - """ - future = None - if self.stream.closed(): - future = self._write_future = Future() - self._write_future.set_exception(iostream.StreamClosedError()) - self._write_future.exception() - else: - future = self._write_future = Future() - self._pending_write = self.stream.write(self._format_chunk(chunk)) - future_add_done_callback(self._pending_write, self._on_write_complete) - return future - - def finish(self) -> None: - """Implements `.HTTPConnection.finish`.""" - if ( - self._expected_content_remaining is not None - and self._expected_content_remaining != 0 - and not self.stream.closed() - ): - self.stream.close() - raise httputil.HTTPOutputError( - "Tried to write %d bytes less than Content-Length" - % self._expected_content_remaining - ) - if self._chunking_output: - if not self.stream.closed(): - self._pending_write = self.stream.write(b"0\r\n\r\n") - self._pending_write.add_done_callback(self._on_write_complete) - self._write_finished = True - # If the app finished the request while we're still reading, - # divert any remaining data away from the delegate and - # close the connection when we're done sending our response. - # Closing the connection is the only way to avoid reading the - # whole input body. - if not self._read_finished: - self._disconnect_on_finish = True - # No more data is coming, so instruct TCP to send any remaining - # data immediately instead of waiting for a full packet or ack. - self.stream.set_nodelay(True) - if self._pending_write is None: - self._finish_request(None) - else: - future_add_done_callback(self._pending_write, self._finish_request) - - def _on_write_complete(self, future: "Future[None]") -> None: - exc = future.exception() - if exc is not None and not isinstance(exc, iostream.StreamClosedError): - future.result() - if self._write_callback is not None: - callback = self._write_callback - self._write_callback = None - self.stream.io_loop.add_callback(callback) - if self._write_future is not None: - future = self._write_future - self._write_future = None - future_set_result_unless_cancelled(future, None) - - def _can_keep_alive( - self, start_line: httputil.RequestStartLine, headers: httputil.HTTPHeaders - ) -> bool: - if self.params.no_keep_alive: - return False - connection_header = headers.get("Connection") - if connection_header is not None: - connection_header = connection_header.lower() - if start_line.version == "HTTP/1.1": - return connection_header != "close" - elif ( - "Content-Length" in headers - or headers.get("Transfer-Encoding", "").lower() == "chunked" - or getattr(start_line, "method", None) in ("HEAD", "GET") - ): - # start_line may be a request or response start line; only - # the former has a method attribute. - return connection_header == "keep-alive" - return False - - def _finish_request(self, future: "Optional[Future[None]]") -> None: - self._clear_callbacks() - if not self.is_client and self._disconnect_on_finish: - self.close() - return - # Turn Nagle's algorithm back on, leaving the stream in its - # default state for the next request. - self.stream.set_nodelay(False) - if not self._finish_future.done(): - future_set_result_unless_cancelled(self._finish_future, None) - - def _parse_headers(self, data: bytes) -> Tuple[str, httputil.HTTPHeaders]: - # The lstrip removes newlines that some implementations sometimes - # insert between messages of a reused connection. Per RFC 7230, - # we SHOULD ignore at least one empty line before the request. - # http://tools.ietf.org/html/rfc7230#section-3.5 - data_str = native_str(data.decode("latin1")).lstrip("\r\n") - # RFC 7230 section allows for both CRLF and bare LF. - eol = data_str.find("\n") - start_line = data_str[:eol].rstrip("\r") - headers = httputil.HTTPHeaders.parse(data_str[eol:]) - return start_line, headers - - def _read_body( - self, - code: int, - headers: httputil.HTTPHeaders, - delegate: httputil.HTTPMessageDelegate, - ) -> Optional[Awaitable[None]]: - if "Content-Length" in headers: - if "Transfer-Encoding" in headers: - # Response cannot contain both Content-Length and - # Transfer-Encoding headers. - # http://tools.ietf.org/html/rfc7230#section-3.3.3 - raise httputil.HTTPInputError( - "Response with both Transfer-Encoding and Content-Length" - ) - if "," in headers["Content-Length"]: - # Proxies sometimes cause Content-Length headers to get - # duplicated. If all the values are identical then we can - # use them but if they differ it's an error. - pieces = re.split(r",\s*", headers["Content-Length"]) - if any(i != pieces[0] for i in pieces): - raise httputil.HTTPInputError( - "Multiple unequal Content-Lengths: %r" - % headers["Content-Length"] - ) - headers["Content-Length"] = pieces[0] - - try: - content_length = int(headers["Content-Length"]) # type: Optional[int] - except ValueError: - # Handles non-integer Content-Length value. - raise httputil.HTTPInputError( - "Only integer Content-Length is allowed: %s" - % headers["Content-Length"] - ) - - if cast(int, content_length) > self._max_body_size: - raise httputil.HTTPInputError("Content-Length too long") - else: - content_length = None - - if code == 204: - # This response code is not allowed to have a non-empty body, - # and has an implicit length of zero instead of read-until-close. - # http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3 - if "Transfer-Encoding" in headers or content_length not in (None, 0): - raise httputil.HTTPInputError( - "Response with code %d should not have body" % code - ) - content_length = 0 - - if content_length is not None: - return self._read_fixed_body(content_length, delegate) - if headers.get("Transfer-Encoding", "").lower() == "chunked": - return self._read_chunked_body(delegate) - if self.is_client: - return self._read_body_until_close(delegate) - return None - - async def _read_fixed_body( - self, content_length: int, delegate: httputil.HTTPMessageDelegate - ) -> None: - while content_length > 0: - body = await self.stream.read_bytes( - min(self.params.chunk_size, content_length), partial=True - ) - content_length -= len(body) - if not self._write_finished or self.is_client: - with _ExceptionLoggingContext(app_log): - ret = delegate.data_received(body) - if ret is not None: - await ret - - async def _read_chunked_body(self, delegate: httputil.HTTPMessageDelegate) -> None: - # TODO: "chunk extensions" http://tools.ietf.org/html/rfc2616#section-3.6.1 - total_size = 0 - while True: - chunk_len_str = await self.stream.read_until(b"\r\n", max_bytes=64) - chunk_len = int(chunk_len_str.strip(), 16) - if chunk_len == 0: - crlf = await self.stream.read_bytes(2) - if crlf != b"\r\n": - raise httputil.HTTPInputError( - "improperly terminated chunked request" - ) - return - total_size += chunk_len - if total_size > self._max_body_size: - raise httputil.HTTPInputError("chunked body too large") - bytes_to_read = chunk_len - while bytes_to_read: - chunk = await self.stream.read_bytes( - min(bytes_to_read, self.params.chunk_size), partial=True - ) - bytes_to_read -= len(chunk) - if not self._write_finished or self.is_client: - with _ExceptionLoggingContext(app_log): - ret = delegate.data_received(chunk) - if ret is not None: - await ret - # chunk ends with \r\n - crlf = await self.stream.read_bytes(2) - assert crlf == b"\r\n" - - async def _read_body_until_close( - self, delegate: httputil.HTTPMessageDelegate - ) -> None: - body = await self.stream.read_until_close() - if not self._write_finished or self.is_client: - with _ExceptionLoggingContext(app_log): - ret = delegate.data_received(body) - if ret is not None: - await ret - - -class _GzipMessageDelegate(httputil.HTTPMessageDelegate): - """Wraps an `HTTPMessageDelegate` to decode ``Content-Encoding: gzip``. - """ - - def __init__(self, delegate: httputil.HTTPMessageDelegate, chunk_size: int) -> None: - self._delegate = delegate - self._chunk_size = chunk_size - self._decompressor = None # type: Optional[GzipDecompressor] - - def headers_received( - self, - start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], - headers: httputil.HTTPHeaders, - ) -> Optional[Awaitable[None]]: - if headers.get("Content-Encoding") == "gzip": - self._decompressor = GzipDecompressor() - # Downstream delegates will only see uncompressed data, - # so rename the content-encoding header. - # (but note that curl_httpclient doesn't do this). - headers.add("X-Consumed-Content-Encoding", headers["Content-Encoding"]) - del headers["Content-Encoding"] - return self._delegate.headers_received(start_line, headers) - - async def data_received(self, chunk: bytes) -> None: - if self._decompressor: - compressed_data = chunk - while compressed_data: - decompressed = self._decompressor.decompress( - compressed_data, self._chunk_size - ) - if decompressed: - ret = self._delegate.data_received(decompressed) - if ret is not None: - await ret - compressed_data = self._decompressor.unconsumed_tail - else: - ret = self._delegate.data_received(chunk) - if ret is not None: - await ret - - def finish(self) -> None: - if self._decompressor is not None: - tail = self._decompressor.flush() - if tail: - # The tail should always be empty: decompress returned - # all that it can in data_received and the only - # purpose of the flush call is to detect errors such - # as truncated input. If we did legitimately get a new - # chunk at this point we'd need to change the - # interface to make finish() a coroutine. - raise ValueError( - "decompressor.flush returned data; possile truncated input" - ) - return self._delegate.finish() - - def on_connection_close(self) -> None: - return self._delegate.on_connection_close() - - -class HTTP1ServerConnection(object): - """An HTTP/1.x server.""" - - def __init__( - self, - stream: iostream.IOStream, - params: HTTP1ConnectionParameters = None, - context: object = None, - ) -> None: - """ - :arg stream: an `.IOStream` - :arg params: a `.HTTP1ConnectionParameters` or None - :arg context: an opaque application-defined object that is accessible - as ``connection.context`` - """ - self.stream = stream - if params is None: - params = HTTP1ConnectionParameters() - self.params = params - self.context = context - self._serving_future = None # type: Optional[Future[None]] - - async def close(self) -> None: - """Closes the connection. - - Returns a `.Future` that resolves after the serving loop has exited. - """ - self.stream.close() - # Block until the serving loop is done, but ignore any exceptions - # (start_serving is already responsible for logging them). - assert self._serving_future is not None - try: - await self._serving_future - except Exception: - pass - - def start_serving(self, delegate: httputil.HTTPServerConnectionDelegate) -> None: - """Starts serving requests on this connection. - - :arg delegate: a `.HTTPServerConnectionDelegate` - """ - assert isinstance(delegate, httputil.HTTPServerConnectionDelegate) - fut = gen.convert_yielded(self._server_request_loop(delegate)) - self._serving_future = fut - # Register the future on the IOLoop so its errors get logged. - self.stream.io_loop.add_future(fut, lambda f: f.result()) - - async def _server_request_loop( - self, delegate: httputil.HTTPServerConnectionDelegate - ) -> None: - try: - while True: - conn = HTTP1Connection(self.stream, False, self.params, self.context) - request_delegate = delegate.start_request(self, conn) - try: - ret = await conn.read_response(request_delegate) - except ( - iostream.StreamClosedError, - iostream.UnsatisfiableReadError, - asyncio.CancelledError, - ): - return - except _QuietException: - # This exception was already logged. - conn.close() - return - except Exception: - gen_log.error("Uncaught exception", exc_info=True) - conn.close() - return - if not ret: - return - await asyncio.sleep(0) - finally: - delegate.on_close(self) +# +# Copyright 2014 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Client and server implementations of HTTP/1.x. + +.. versionadded:: 4.0 +""" + +import asyncio +import logging +import re +import types + +from tornado.concurrent import ( + Future, + future_add_done_callback, + future_set_result_unless_cancelled, +) +from tornado.escape import native_str, utf8 +from tornado import gen +from tornado import httputil +from tornado import iostream +from tornado.log import gen_log, app_log +from tornado.util import GzipDecompressor + + +from typing import cast, Optional, Type, Awaitable, Callable, Union, Tuple + + +class _QuietException(Exception): + def __init__(self) -> None: + pass + + +class _ExceptionLoggingContext(object): + """Used with the ``with`` statement when calling delegate methods to + log any exceptions with the given logger. Any exceptions caught are + converted to _QuietException + """ + + def __init__(self, logger: logging.Logger) -> None: + self.logger = logger + + def __enter__(self) -> None: + pass + + def __exit__( + self, + typ: "Optional[Type[BaseException]]", + value: Optional[BaseException], + tb: types.TracebackType, + ) -> None: + if value is not None: + assert typ is not None + self.logger.error("Uncaught exception", exc_info=(typ, value, tb)) + raise _QuietException + + +class HTTP1ConnectionParameters(object): + """Parameters for `.HTTP1Connection` and `.HTTP1ServerConnection`. + """ + + def __init__( + self, + no_keep_alive: bool = False, + chunk_size: int = None, + max_header_size: int = None, + header_timeout: float = None, + max_body_size: int = None, + body_timeout: float = None, + decompress: bool = False, + ) -> None: + """ + :arg bool no_keep_alive: If true, always close the connection after + one request. + :arg int chunk_size: how much data to read into memory at once + :arg int max_header_size: maximum amount of data for HTTP headers + :arg float header_timeout: how long to wait for all headers (seconds) + :arg int max_body_size: maximum amount of data for body + :arg float body_timeout: how long to wait while reading body (seconds) + :arg bool decompress: if true, decode incoming + ``Content-Encoding: gzip`` + """ + self.no_keep_alive = no_keep_alive + self.chunk_size = chunk_size or 65536 + self.max_header_size = max_header_size or 65536 + self.header_timeout = header_timeout + self.max_body_size = max_body_size + self.body_timeout = body_timeout + self.decompress = decompress + + +class HTTP1Connection(httputil.HTTPConnection): + """Implements the HTTP/1.x protocol. + + This class can be on its own for clients, or via `HTTP1ServerConnection` + for servers. + """ + + def __init__( + self, + stream: iostream.IOStream, + is_client: bool, + params: HTTP1ConnectionParameters = None, + context: object = None, + ) -> None: + """ + :arg stream: an `.IOStream` + :arg bool is_client: client or server + :arg params: a `.HTTP1ConnectionParameters` instance or ``None`` + :arg context: an opaque application-defined object that can be accessed + as ``connection.context``. + """ + self.is_client = is_client + self.stream = stream + if params is None: + params = HTTP1ConnectionParameters() + self.params = params + self.context = context + self.no_keep_alive = params.no_keep_alive + # The body limits can be altered by the delegate, so save them + # here instead of just referencing self.params later. + self._max_body_size = self.params.max_body_size or self.stream.max_buffer_size + self._body_timeout = self.params.body_timeout + # _write_finished is set to True when finish() has been called, + # i.e. there will be no more data sent. Data may still be in the + # stream's write buffer. + self._write_finished = False + # True when we have read the entire incoming body. + self._read_finished = False + # _finish_future resolves when all data has been written and flushed + # to the IOStream. + self._finish_future = Future() # type: Future[None] + # If true, the connection should be closed after this request + # (after the response has been written in the server side, + # and after it has been read in the client) + self._disconnect_on_finish = False + self._clear_callbacks() + # Save the start lines after we read or write them; they + # affect later processing (e.g. 304 responses and HEAD methods + # have content-length but no bodies) + self._request_start_line = None # type: Optional[httputil.RequestStartLine] + self._response_start_line = None # type: Optional[httputil.ResponseStartLine] + self._request_headers = None # type: Optional[httputil.HTTPHeaders] + # True if we are writing output with chunked encoding. + self._chunking_output = False + # While reading a body with a content-length, this is the + # amount left to read. + self._expected_content_remaining = None # type: Optional[int] + # A Future for our outgoing writes, returned by IOStream.write. + self._pending_write = None # type: Optional[Future[None]] + + def read_response(self, delegate: httputil.HTTPMessageDelegate) -> Awaitable[bool]: + """Read a single HTTP response. + + Typical client-mode usage is to write a request using `write_headers`, + `write`, and `finish`, and then call ``read_response``. + + :arg delegate: a `.HTTPMessageDelegate` + + Returns a `.Future` that resolves to a bool after the full response has + been read. The result is true if the stream is still open. + """ + if self.params.decompress: + delegate = _GzipMessageDelegate(delegate, self.params.chunk_size) + return self._read_message(delegate) + + async def _read_message(self, delegate: httputil.HTTPMessageDelegate) -> bool: + need_delegate_close = False + try: + header_future = self.stream.read_until_regex( + b"\r?\n\r?\n", max_bytes=self.params.max_header_size + ) + if self.params.header_timeout is None: + header_data = await header_future + else: + try: + header_data = await gen.with_timeout( + self.stream.io_loop.time() + self.params.header_timeout, + header_future, + quiet_exceptions=iostream.StreamClosedError, + ) + except gen.TimeoutError: + self.close() + return False + start_line_str, headers = self._parse_headers(header_data) + if self.is_client: + resp_start_line = httputil.parse_response_start_line(start_line_str) + self._response_start_line = resp_start_line + start_line = ( + resp_start_line + ) # type: Union[httputil.RequestStartLine, httputil.ResponseStartLine] + # TODO: this will need to change to support client-side keepalive + self._disconnect_on_finish = False + else: + req_start_line = httputil.parse_request_start_line(start_line_str) + self._request_start_line = req_start_line + self._request_headers = headers + start_line = req_start_line + self._disconnect_on_finish = not self._can_keep_alive( + req_start_line, headers + ) + need_delegate_close = True + with _ExceptionLoggingContext(app_log): + header_recv_future = delegate.headers_received(start_line, headers) + if header_recv_future is not None: + await header_recv_future + if self.stream is None: + # We've been detached. + need_delegate_close = False + return False + skip_body = False + if self.is_client: + assert isinstance(start_line, httputil.ResponseStartLine) + if ( + self._request_start_line is not None + and self._request_start_line.method == "HEAD" + ): + skip_body = True + code = start_line.code + if code == 304: + # 304 responses may include the content-length header + # but do not actually have a body. + # http://tools.ietf.org/html/rfc7230#section-3.3 + skip_body = True + if code >= 100 and code < 200: + # 1xx responses should never indicate the presence of + # a body. + if "Content-Length" in headers or "Transfer-Encoding" in headers: + raise httputil.HTTPInputError( + "Response code %d cannot have body" % code + ) + # TODO: client delegates will get headers_received twice + # in the case of a 100-continue. Document or change? + await self._read_message(delegate) + else: + if headers.get("Expect") == "100-continue" and not self._write_finished: + self.stream.write(b"HTTP/1.1 100 (Continue)\r\n\r\n") + if not skip_body: + body_future = self._read_body( + resp_start_line.code if self.is_client else 0, headers, delegate + ) + if body_future is not None: + if self._body_timeout is None: + await body_future + else: + try: + await gen.with_timeout( + self.stream.io_loop.time() + self._body_timeout, + body_future, + quiet_exceptions=iostream.StreamClosedError, + ) + except gen.TimeoutError: + gen_log.info("Timeout reading body from %s", self.context) + self.stream.close() + return False + self._read_finished = True + if not self._write_finished or self.is_client: + need_delegate_close = False + with _ExceptionLoggingContext(app_log): + delegate.finish() + # If we're waiting for the application to produce an asynchronous + # response, and we're not detached, register a close callback + # on the stream (we didn't need one while we were reading) + if ( + not self._finish_future.done() + and self.stream is not None + and not self.stream.closed() + ): + self.stream.set_close_callback(self._on_connection_close) + await self._finish_future + if self.is_client and self._disconnect_on_finish: + self.close() + if self.stream is None: + return False + except httputil.HTTPInputError as e: + gen_log.info("Malformed HTTP message from %s: %s", self.context, e) + if not self.is_client: + await self.stream.write(b"HTTP/1.1 400 Bad Request\r\n\r\n") + self.close() + return False + finally: + if need_delegate_close: + with _ExceptionLoggingContext(app_log): + delegate.on_connection_close() + header_future = None # type: ignore + self._clear_callbacks() + return True + + def _clear_callbacks(self) -> None: + """Clears the callback attributes. + + This allows the request handler to be garbage collected more + quickly in CPython by breaking up reference cycles. + """ + self._write_callback = None + self._write_future = None # type: Optional[Future[None]] + self._close_callback = None # type: Optional[Callable[[], None]] + if self.stream is not None: + self.stream.set_close_callback(None) + + def set_close_callback(self, callback: Optional[Callable[[], None]]) -> None: + """Sets a callback that will be run when the connection is closed. + + Note that this callback is slightly different from + `.HTTPMessageDelegate.on_connection_close`: The + `.HTTPMessageDelegate` method is called when the connection is + closed while recieving a message. This callback is used when + there is not an active delegate (for example, on the server + side this callback is used if the client closes the connection + after sending its request but before receiving all the + response. + """ + self._close_callback = callback + + def _on_connection_close(self) -> None: + # Note that this callback is only registered on the IOStream + # when we have finished reading the request and are waiting for + # the application to produce its response. + if self._close_callback is not None: + callback = self._close_callback + self._close_callback = None + callback() + if not self._finish_future.done(): + future_set_result_unless_cancelled(self._finish_future, None) + self._clear_callbacks() + + def close(self) -> None: + if self.stream is not None: + self.stream.close() + self._clear_callbacks() + if not self._finish_future.done(): + future_set_result_unless_cancelled(self._finish_future, None) + + def detach(self) -> iostream.IOStream: + """Take control of the underlying stream. + + Returns the underlying `.IOStream` object and stops all further + HTTP processing. May only be called during + `.HTTPMessageDelegate.headers_received`. Intended for implementing + protocols like websockets that tunnel over an HTTP handshake. + """ + self._clear_callbacks() + stream = self.stream + self.stream = None # type: ignore + if not self._finish_future.done(): + future_set_result_unless_cancelled(self._finish_future, None) + return stream + + def set_body_timeout(self, timeout: float) -> None: + """Sets the body timeout for a single request. + + Overrides the value from `.HTTP1ConnectionParameters`. + """ + self._body_timeout = timeout + + def set_max_body_size(self, max_body_size: int) -> None: + """Sets the body size limit for a single request. + + Overrides the value from `.HTTP1ConnectionParameters`. + """ + self._max_body_size = max_body_size + + def write_headers( + self, + start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], + headers: httputil.HTTPHeaders, + chunk: bytes = None, + ) -> "Future[None]": + """Implements `.HTTPConnection.write_headers`.""" + lines = [] + if self.is_client: + assert isinstance(start_line, httputil.RequestStartLine) + self._request_start_line = start_line + lines.append(utf8("%s %s HTTP/1.1" % (start_line[0], start_line[1]))) + # Client requests with a non-empty body must have either a + # Content-Length or a Transfer-Encoding. + self._chunking_output = ( + start_line.method in ("POST", "PUT", "PATCH") + and "Content-Length" not in headers + and ( + "Transfer-Encoding" not in headers + or headers["Transfer-Encoding"] == "chunked" + ) + ) + else: + assert isinstance(start_line, httputil.ResponseStartLine) + assert self._request_start_line is not None + assert self._request_headers is not None + self._response_start_line = start_line + lines.append(utf8("HTTP/1.1 %d %s" % (start_line[1], start_line[2]))) + self._chunking_output = ( + # TODO: should this use + # self._request_start_line.version or + # start_line.version? + self._request_start_line.version == "HTTP/1.1" + # 1xx, 204 and 304 responses have no body (not even a zero-length + # body), and so should not have either Content-Length or + # Transfer-Encoding headers. + and start_line.code not in (204, 304) + and (start_line.code < 100 or start_line.code >= 200) + # No need to chunk the output if a Content-Length is specified. + and "Content-Length" not in headers + # Applications are discouraged from touching Transfer-Encoding, + # but if they do, leave it alone. + and "Transfer-Encoding" not in headers + ) + # If connection to a 1.1 client will be closed, inform client + if ( + self._request_start_line.version == "HTTP/1.1" + and self._disconnect_on_finish + ): + headers["Connection"] = "close" + # If a 1.0 client asked for keep-alive, add the header. + if ( + self._request_start_line.version == "HTTP/1.0" + and self._request_headers.get("Connection", "").lower() == "keep-alive" + ): + headers["Connection"] = "Keep-Alive" + if self._chunking_output: + headers["Transfer-Encoding"] = "chunked" + if not self.is_client and ( + self._request_start_line.method == "HEAD" + or cast(httputil.ResponseStartLine, start_line).code == 304 + ): + self._expected_content_remaining = 0 + elif "Content-Length" in headers: + self._expected_content_remaining = int(headers["Content-Length"]) + else: + self._expected_content_remaining = None + # TODO: headers are supposed to be of type str, but we still have some + # cases that let bytes slip through. Remove these native_str calls when those + # are fixed. + header_lines = ( + native_str(n) + ": " + native_str(v) for n, v in headers.get_all() + ) + lines.extend(l.encode("latin1") for l in header_lines) + for line in lines: + if b"\n" in line: + raise ValueError("Newline in header: " + repr(line)) + future = None + if self.stream.closed(): + future = self._write_future = Future() + future.set_exception(iostream.StreamClosedError()) + future.exception() + else: + future = self._write_future = Future() + data = b"\r\n".join(lines) + b"\r\n\r\n" + if chunk: + data += self._format_chunk(chunk) + self._pending_write = self.stream.write(data) + future_add_done_callback(self._pending_write, self._on_write_complete) + return future + + def _format_chunk(self, chunk: bytes) -> bytes: + if self._expected_content_remaining is not None: + self._expected_content_remaining -= len(chunk) + if self._expected_content_remaining < 0: + # Close the stream now to stop further framing errors. + self.stream.close() + raise httputil.HTTPOutputError( + "Tried to write more data than Content-Length" + ) + if self._chunking_output and chunk: + # Don't write out empty chunks because that means END-OF-STREAM + # with chunked encoding + return utf8("%x" % len(chunk)) + b"\r\n" + chunk + b"\r\n" + else: + return chunk + + def write(self, chunk: bytes) -> "Future[None]": + """Implements `.HTTPConnection.write`. + + For backwards compatibility it is allowed but deprecated to + skip `write_headers` and instead call `write()` with a + pre-encoded header block. + """ + future = None + if self.stream.closed(): + future = self._write_future = Future() + self._write_future.set_exception(iostream.StreamClosedError()) + self._write_future.exception() + else: + future = self._write_future = Future() + self._pending_write = self.stream.write(self._format_chunk(chunk)) + future_add_done_callback(self._pending_write, self._on_write_complete) + return future + + def finish(self) -> None: + """Implements `.HTTPConnection.finish`.""" + if ( + self._expected_content_remaining is not None + and self._expected_content_remaining != 0 + and not self.stream.closed() + ): + self.stream.close() + raise httputil.HTTPOutputError( + "Tried to write %d bytes less than Content-Length" + % self._expected_content_remaining + ) + if self._chunking_output: + if not self.stream.closed(): + self._pending_write = self.stream.write(b"0\r\n\r\n") + self._pending_write.add_done_callback(self._on_write_complete) + self._write_finished = True + # If the app finished the request while we're still reading, + # divert any remaining data away from the delegate and + # close the connection when we're done sending our response. + # Closing the connection is the only way to avoid reading the + # whole input body. + if not self._read_finished: + self._disconnect_on_finish = True + # No more data is coming, so instruct TCP to send any remaining + # data immediately instead of waiting for a full packet or ack. + self.stream.set_nodelay(True) + if self._pending_write is None: + self._finish_request(None) + else: + future_add_done_callback(self._pending_write, self._finish_request) + + def _on_write_complete(self, future: "Future[None]") -> None: + exc = future.exception() + if exc is not None and not isinstance(exc, iostream.StreamClosedError): + future.result() + if self._write_callback is not None: + callback = self._write_callback + self._write_callback = None + self.stream.io_loop.add_callback(callback) + if self._write_future is not None: + future = self._write_future + self._write_future = None + future_set_result_unless_cancelled(future, None) + + def _can_keep_alive( + self, start_line: httputil.RequestStartLine, headers: httputil.HTTPHeaders + ) -> bool: + if self.params.no_keep_alive: + return False + connection_header = headers.get("Connection") + if connection_header is not None: + connection_header = connection_header.lower() + if start_line.version == "HTTP/1.1": + return connection_header != "close" + elif ( + "Content-Length" in headers + or headers.get("Transfer-Encoding", "").lower() == "chunked" + or getattr(start_line, "method", None) in ("HEAD", "GET") + ): + # start_line may be a request or response start line; only + # the former has a method attribute. + return connection_header == "keep-alive" + return False + + def _finish_request(self, future: "Optional[Future[None]]") -> None: + self._clear_callbacks() + if not self.is_client and self._disconnect_on_finish: + self.close() + return + # Turn Nagle's algorithm back on, leaving the stream in its + # default state for the next request. + self.stream.set_nodelay(False) + if not self._finish_future.done(): + future_set_result_unless_cancelled(self._finish_future, None) + + def _parse_headers(self, data: bytes) -> Tuple[str, httputil.HTTPHeaders]: + # The lstrip removes newlines that some implementations sometimes + # insert between messages of a reused connection. Per RFC 7230, + # we SHOULD ignore at least one empty line before the request. + # http://tools.ietf.org/html/rfc7230#section-3.5 + data_str = native_str(data.decode("latin1")).lstrip("\r\n") + # RFC 7230 section allows for both CRLF and bare LF. + eol = data_str.find("\n") + start_line = data_str[:eol].rstrip("\r") + headers = httputil.HTTPHeaders.parse(data_str[eol:]) + return start_line, headers + + def _read_body( + self, + code: int, + headers: httputil.HTTPHeaders, + delegate: httputil.HTTPMessageDelegate, + ) -> Optional[Awaitable[None]]: + if "Content-Length" in headers: + if "Transfer-Encoding" in headers: + # Response cannot contain both Content-Length and + # Transfer-Encoding headers. + # http://tools.ietf.org/html/rfc7230#section-3.3.3 + raise httputil.HTTPInputError( + "Response with both Transfer-Encoding and Content-Length" + ) + if "," in headers["Content-Length"]: + # Proxies sometimes cause Content-Length headers to get + # duplicated. If all the values are identical then we can + # use them but if they differ it's an error. + pieces = re.split(r",\s*", headers["Content-Length"]) + if any(i != pieces[0] for i in pieces): + raise httputil.HTTPInputError( + "Multiple unequal Content-Lengths: %r" + % headers["Content-Length"] + ) + headers["Content-Length"] = pieces[0] + + try: + content_length = int(headers["Content-Length"]) # type: Optional[int] + except ValueError: + # Handles non-integer Content-Length value. + raise httputil.HTTPInputError( + "Only integer Content-Length is allowed: %s" + % headers["Content-Length"] + ) + + if cast(int, content_length) > self._max_body_size: + raise httputil.HTTPInputError("Content-Length too long") + else: + content_length = None + + if code == 204: + # This response code is not allowed to have a non-empty body, + # and has an implicit length of zero instead of read-until-close. + # http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3 + if "Transfer-Encoding" in headers or content_length not in (None, 0): + raise httputil.HTTPInputError( + "Response with code %d should not have body" % code + ) + content_length = 0 + + if content_length is not None: + return self._read_fixed_body(content_length, delegate) + if headers.get("Transfer-Encoding", "").lower() == "chunked": + return self._read_chunked_body(delegate) + if self.is_client: + return self._read_body_until_close(delegate) + return None + + async def _read_fixed_body( + self, content_length: int, delegate: httputil.HTTPMessageDelegate + ) -> None: + while content_length > 0: + body = await self.stream.read_bytes( + min(self.params.chunk_size, content_length), partial=True + ) + content_length -= len(body) + if not self._write_finished or self.is_client: + with _ExceptionLoggingContext(app_log): + ret = delegate.data_received(body) + if ret is not None: + await ret + + async def _read_chunked_body(self, delegate: httputil.HTTPMessageDelegate) -> None: + # TODO: "chunk extensions" http://tools.ietf.org/html/rfc2616#section-3.6.1 + total_size = 0 + while True: + chunk_len_str = await self.stream.read_until(b"\r\n", max_bytes=64) + chunk_len = int(chunk_len_str.strip(), 16) + if chunk_len == 0: + crlf = await self.stream.read_bytes(2) + if crlf != b"\r\n": + raise httputil.HTTPInputError( + "improperly terminated chunked request" + ) + return + total_size += chunk_len + if total_size > self._max_body_size: + raise httputil.HTTPInputError("chunked body too large") + bytes_to_read = chunk_len + while bytes_to_read: + chunk = await self.stream.read_bytes( + min(bytes_to_read, self.params.chunk_size), partial=True + ) + bytes_to_read -= len(chunk) + if not self._write_finished or self.is_client: + with _ExceptionLoggingContext(app_log): + ret = delegate.data_received(chunk) + if ret is not None: + await ret + # chunk ends with \r\n + crlf = await self.stream.read_bytes(2) + assert crlf == b"\r\n" + + async def _read_body_until_close( + self, delegate: httputil.HTTPMessageDelegate + ) -> None: + body = await self.stream.read_until_close() + if not self._write_finished or self.is_client: + with _ExceptionLoggingContext(app_log): + ret = delegate.data_received(body) + if ret is not None: + await ret + + +class _GzipMessageDelegate(httputil.HTTPMessageDelegate): + """Wraps an `HTTPMessageDelegate` to decode ``Content-Encoding: gzip``. + """ + + def __init__(self, delegate: httputil.HTTPMessageDelegate, chunk_size: int) -> None: + self._delegate = delegate + self._chunk_size = chunk_size + self._decompressor = None # type: Optional[GzipDecompressor] + + def headers_received( + self, + start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], + headers: httputil.HTTPHeaders, + ) -> Optional[Awaitable[None]]: + if headers.get("Content-Encoding") == "gzip": + self._decompressor = GzipDecompressor() + # Downstream delegates will only see uncompressed data, + # so rename the content-encoding header. + # (but note that curl_httpclient doesn't do this). + headers.add("X-Consumed-Content-Encoding", headers["Content-Encoding"]) + del headers["Content-Encoding"] + return self._delegate.headers_received(start_line, headers) + + async def data_received(self, chunk: bytes) -> None: + if self._decompressor: + compressed_data = chunk + while compressed_data: + decompressed = self._decompressor.decompress( + compressed_data, self._chunk_size + ) + if decompressed: + ret = self._delegate.data_received(decompressed) + if ret is not None: + await ret + compressed_data = self._decompressor.unconsumed_tail + else: + ret = self._delegate.data_received(chunk) + if ret is not None: + await ret + + def finish(self) -> None: + if self._decompressor is not None: + tail = self._decompressor.flush() + if tail: + # The tail should always be empty: decompress returned + # all that it can in data_received and the only + # purpose of the flush call is to detect errors such + # as truncated input. If we did legitimately get a new + # chunk at this point we'd need to change the + # interface to make finish() a coroutine. + raise ValueError( + "decompressor.flush returned data; possile truncated input" + ) + return self._delegate.finish() + + def on_connection_close(self) -> None: + return self._delegate.on_connection_close() + + +class HTTP1ServerConnection(object): + """An HTTP/1.x server.""" + + def __init__( + self, + stream: iostream.IOStream, + params: HTTP1ConnectionParameters = None, + context: object = None, + ) -> None: + """ + :arg stream: an `.IOStream` + :arg params: a `.HTTP1ConnectionParameters` or None + :arg context: an opaque application-defined object that is accessible + as ``connection.context`` + """ + self.stream = stream + if params is None: + params = HTTP1ConnectionParameters() + self.params = params + self.context = context + self._serving_future = None # type: Optional[Future[None]] + + async def close(self) -> None: + """Closes the connection. + + Returns a `.Future` that resolves after the serving loop has exited. + """ + self.stream.close() + # Block until the serving loop is done, but ignore any exceptions + # (start_serving is already responsible for logging them). + assert self._serving_future is not None + try: + await self._serving_future + except Exception: + pass + + def start_serving(self, delegate: httputil.HTTPServerConnectionDelegate) -> None: + """Starts serving requests on this connection. + + :arg delegate: a `.HTTPServerConnectionDelegate` + """ + assert isinstance(delegate, httputil.HTTPServerConnectionDelegate) + fut = gen.convert_yielded(self._server_request_loop(delegate)) + self._serving_future = fut + # Register the future on the IOLoop so its errors get logged. + self.stream.io_loop.add_future(fut, lambda f: f.result()) + + async def _server_request_loop( + self, delegate: httputil.HTTPServerConnectionDelegate + ) -> None: + try: + while True: + conn = HTTP1Connection(self.stream, False, self.params, self.context) + request_delegate = delegate.start_request(self, conn) + try: + ret = await conn.read_response(request_delegate) + except ( + iostream.StreamClosedError, + iostream.UnsatisfiableReadError, + asyncio.CancelledError, + ): + return + except _QuietException: + # This exception was already logged. + conn.close() + return + except Exception: + gen_log.error("Uncaught exception", exc_info=True) + conn.close() + return + if not ret: + return + await asyncio.sleep(0) + finally: + delegate.on_close(self) diff --git a/server/www/packages/packages-linux/x64/tornado/httpclient.py b/server/www/packages/packages-linux/x64/tornado/httpclient.py index 882600a..5dc1edd 100644 --- a/server/www/packages/packages-linux/x64/tornado/httpclient.py +++ b/server/www/packages/packages-linux/x64/tornado/httpclient.py @@ -1,781 +1,781 @@ -"""Blocking and non-blocking HTTP client interfaces. - -This module defines a common interface shared by two implementations, -``simple_httpclient`` and ``curl_httpclient``. Applications may either -instantiate their chosen implementation class directly or use the -`AsyncHTTPClient` class from this module, which selects an implementation -that can be overridden with the `AsyncHTTPClient.configure` method. - -The default implementation is ``simple_httpclient``, and this is expected -to be suitable for most users' needs. However, some applications may wish -to switch to ``curl_httpclient`` for reasons such as the following: - -* ``curl_httpclient`` has some features not found in ``simple_httpclient``, - including support for HTTP proxies and the ability to use a specified - network interface. - -* ``curl_httpclient`` is more likely to be compatible with sites that are - not-quite-compliant with the HTTP spec, or sites that use little-exercised - features of HTTP. - -* ``curl_httpclient`` is faster. - -Note that if you are using ``curl_httpclient``, it is highly -recommended that you use a recent version of ``libcurl`` and -``pycurl``. Currently the minimum supported version of libcurl is -7.22.0, and the minimum version of pycurl is 7.18.2. It is highly -recommended that your ``libcurl`` installation is built with -asynchronous DNS resolver (threaded or c-ares), otherwise you may -encounter various problems with request timeouts (for more -information, see -http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTCONNECTTIMEOUTMS -and comments in curl_httpclient.py). - -To select ``curl_httpclient``, call `AsyncHTTPClient.configure` at startup:: - - AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient") -""" - -import datetime -import functools -from io import BytesIO -import ssl -import time -import weakref - -from tornado.concurrent import ( - Future, - future_set_result_unless_cancelled, - future_set_exception_unless_cancelled, -) -from tornado.escape import utf8, native_str -from tornado import gen, httputil -from tornado.ioloop import IOLoop -from tornado.util import Configurable - -from typing import Type, Any, Union, Dict, Callable, Optional, cast, Awaitable - - -class HTTPClient(object): - """A blocking HTTP client. - - This interface is provided to make it easier to share code between - synchronous and asynchronous applications. Applications that are - running an `.IOLoop` must use `AsyncHTTPClient` instead. - - Typical usage looks like this:: - - http_client = httpclient.HTTPClient() - try: - response = http_client.fetch("http://www.google.com/") - print(response.body) - except httpclient.HTTPError as e: - # HTTPError is raised for non-200 responses; the response - # can be found in e.response. - print("Error: " + str(e)) - except Exception as e: - # Other errors are possible, such as IOError. - print("Error: " + str(e)) - http_client.close() - - .. versionchanged:: 5.0 - - Due to limitations in `asyncio`, it is no longer possible to - use the synchronous ``HTTPClient`` while an `.IOLoop` is running. - Use `AsyncHTTPClient` instead. - - """ - - def __init__( - self, async_client_class: Type["AsyncHTTPClient"] = None, **kwargs: Any - ) -> None: - # Initialize self._closed at the beginning of the constructor - # so that an exception raised here doesn't lead to confusing - # failures in __del__. - self._closed = True - self._io_loop = IOLoop(make_current=False) - if async_client_class is None: - async_client_class = AsyncHTTPClient - - # Create the client while our IOLoop is "current", without - # clobbering the thread's real current IOLoop (if any). - async def make_client() -> "AsyncHTTPClient": - await gen.sleep(0) - assert async_client_class is not None - return async_client_class(**kwargs) - - self._async_client = self._io_loop.run_sync(make_client) - self._closed = False - - def __del__(self) -> None: - self.close() - - def close(self) -> None: - """Closes the HTTPClient, freeing any resources used.""" - if not self._closed: - self._async_client.close() - self._io_loop.close() - self._closed = True - - def fetch( - self, request: Union["HTTPRequest", str], **kwargs: Any - ) -> "HTTPResponse": - """Executes a request, returning an `HTTPResponse`. - - The request may be either a string URL or an `HTTPRequest` object. - If it is a string, we construct an `HTTPRequest` using any additional - kwargs: ``HTTPRequest(request, **kwargs)`` - - If an error occurs during the fetch, we raise an `HTTPError` unless - the ``raise_error`` keyword argument is set to False. - """ - response = self._io_loop.run_sync( - functools.partial(self._async_client.fetch, request, **kwargs) - ) - return response - - -class AsyncHTTPClient(Configurable): - """An non-blocking HTTP client. - - Example usage:: - - async def f(): - http_client = AsyncHTTPClient() - try: - response = await http_client.fetch("http://www.google.com") - except Exception as e: - print("Error: %s" % e) - else: - print(response.body) - - The constructor for this class is magic in several respects: It - actually creates an instance of an implementation-specific - subclass, and instances are reused as a kind of pseudo-singleton - (one per `.IOLoop`). The keyword argument ``force_instance=True`` - can be used to suppress this singleton behavior. Unless - ``force_instance=True`` is used, no arguments should be passed to - the `AsyncHTTPClient` constructor. The implementation subclass as - well as arguments to its constructor can be set with the static - method `configure()` - - All `AsyncHTTPClient` implementations support a ``defaults`` - keyword argument, which can be used to set default values for - `HTTPRequest` attributes. For example:: - - AsyncHTTPClient.configure( - None, defaults=dict(user_agent="MyUserAgent")) - # or with force_instance: - client = AsyncHTTPClient(force_instance=True, - defaults=dict(user_agent="MyUserAgent")) - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been removed. - - """ - - _instance_cache = None # type: Dict[IOLoop, AsyncHTTPClient] - - @classmethod - def configurable_base(cls) -> Type[Configurable]: - return AsyncHTTPClient - - @classmethod - def configurable_default(cls) -> Type[Configurable]: - from tornado.simple_httpclient import SimpleAsyncHTTPClient - - return SimpleAsyncHTTPClient - - @classmethod - def _async_clients(cls) -> Dict[IOLoop, "AsyncHTTPClient"]: - attr_name = "_async_client_dict_" + cls.__name__ - if not hasattr(cls, attr_name): - setattr(cls, attr_name, weakref.WeakKeyDictionary()) - return getattr(cls, attr_name) - - def __new__(cls, force_instance: bool = False, **kwargs: Any) -> "AsyncHTTPClient": - io_loop = IOLoop.current() - if force_instance: - instance_cache = None - else: - instance_cache = cls._async_clients() - if instance_cache is not None and io_loop in instance_cache: - return instance_cache[io_loop] - instance = super(AsyncHTTPClient, cls).__new__(cls, **kwargs) # type: ignore - # Make sure the instance knows which cache to remove itself from. - # It can't simply call _async_clients() because we may be in - # __new__(AsyncHTTPClient) but instance.__class__ may be - # SimpleAsyncHTTPClient. - instance._instance_cache = instance_cache - if instance_cache is not None: - instance_cache[instance.io_loop] = instance - return instance - - def initialize(self, defaults: Dict[str, Any] = None) -> None: - self.io_loop = IOLoop.current() - self.defaults = dict(HTTPRequest._DEFAULTS) - if defaults is not None: - self.defaults.update(defaults) - self._closed = False - - def close(self) -> None: - """Destroys this HTTP client, freeing any file descriptors used. - - This method is **not needed in normal use** due to the way - that `AsyncHTTPClient` objects are transparently reused. - ``close()`` is generally only necessary when either the - `.IOLoop` is also being closed, or the ``force_instance=True`` - argument was used when creating the `AsyncHTTPClient`. - - No other methods may be called on the `AsyncHTTPClient` after - ``close()``. - - """ - if self._closed: - return - self._closed = True - if self._instance_cache is not None: - cached_val = self._instance_cache.pop(self.io_loop, None) - # If there's an object other than self in the instance - # cache for our IOLoop, something has gotten mixed up. A - # value of None appears to be possible when this is called - # from a destructor (HTTPClient.__del__) as the weakref - # gets cleared before the destructor runs. - if cached_val is not None and cached_val is not self: - raise RuntimeError("inconsistent AsyncHTTPClient cache") - - def fetch( - self, - request: Union[str, "HTTPRequest"], - raise_error: bool = True, - **kwargs: Any - ) -> Awaitable["HTTPResponse"]: - """Executes a request, asynchronously returning an `HTTPResponse`. - - The request may be either a string URL or an `HTTPRequest` object. - If it is a string, we construct an `HTTPRequest` using any additional - kwargs: ``HTTPRequest(request, **kwargs)`` - - This method returns a `.Future` whose result is an - `HTTPResponse`. By default, the ``Future`` will raise an - `HTTPError` if the request returned a non-200 response code - (other errors may also be raised if the server could not be - contacted). Instead, if ``raise_error`` is set to False, the - response will always be returned regardless of the response - code. - - If a ``callback`` is given, it will be invoked with the `HTTPResponse`. - In the callback interface, `HTTPError` is not automatically raised. - Instead, you must check the response's ``error`` attribute or - call its `~HTTPResponse.rethrow` method. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - `.Future` instead. - - The ``raise_error=False`` argument only affects the - `HTTPError` raised when a non-200 response code is used, - instead of suppressing all errors. - """ - if self._closed: - raise RuntimeError("fetch() called on closed AsyncHTTPClient") - if not isinstance(request, HTTPRequest): - request = HTTPRequest(url=request, **kwargs) - else: - if kwargs: - raise ValueError( - "kwargs can't be used if request is an HTTPRequest object" - ) - # We may modify this (to add Host, Accept-Encoding, etc), - # so make sure we don't modify the caller's object. This is also - # where normal dicts get converted to HTTPHeaders objects. - request.headers = httputil.HTTPHeaders(request.headers) - request_proxy = _RequestProxy(request, self.defaults) - future = Future() # type: Future[HTTPResponse] - - def handle_response(response: "HTTPResponse") -> None: - if response.error: - if raise_error or not response._error_is_response_code: - future_set_exception_unless_cancelled(future, response.error) - return - future_set_result_unless_cancelled(future, response) - - self.fetch_impl(cast(HTTPRequest, request_proxy), handle_response) - return future - - def fetch_impl( - self, request: "HTTPRequest", callback: Callable[["HTTPResponse"], None] - ) -> None: - raise NotImplementedError() - - @classmethod - def configure( - cls, impl: "Union[None, str, Type[Configurable]]", **kwargs: Any - ) -> None: - """Configures the `AsyncHTTPClient` subclass to use. - - ``AsyncHTTPClient()`` actually creates an instance of a subclass. - This method may be called with either a class object or the - fully-qualified name of such a class (or ``None`` to use the default, - ``SimpleAsyncHTTPClient``) - - If additional keyword arguments are given, they will be passed - to the constructor of each subclass instance created. The - keyword argument ``max_clients`` determines the maximum number - of simultaneous `~AsyncHTTPClient.fetch()` operations that can - execute in parallel on each `.IOLoop`. Additional arguments - may be supported depending on the implementation class in use. - - Example:: - - AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient") - """ - super(AsyncHTTPClient, cls).configure(impl, **kwargs) - - -class HTTPRequest(object): - """HTTP client request object.""" - - _headers = None # type: Union[Dict[str, str], httputil.HTTPHeaders] - - # Default values for HTTPRequest parameters. - # Merged with the values on the request object by AsyncHTTPClient - # implementations. - _DEFAULTS = dict( - connect_timeout=20.0, - request_timeout=20.0, - follow_redirects=True, - max_redirects=5, - decompress_response=True, - proxy_password="", - allow_nonstandard_methods=False, - validate_cert=True, - ) - - def __init__( - self, - url: str, - method: str = "GET", - headers: Union[Dict[str, str], httputil.HTTPHeaders] = None, - body: Union[bytes, str] = None, - auth_username: str = None, - auth_password: str = None, - auth_mode: str = None, - connect_timeout: float = None, - request_timeout: float = None, - if_modified_since: Union[float, datetime.datetime] = None, - follow_redirects: bool = None, - max_redirects: int = None, - user_agent: str = None, - use_gzip: bool = None, - network_interface: str = None, - streaming_callback: Callable[[bytes], None] = None, - header_callback: Callable[[str], None] = None, - prepare_curl_callback: Callable[[Any], None] = None, - proxy_host: str = None, - proxy_port: int = None, - proxy_username: str = None, - proxy_password: str = None, - proxy_auth_mode: str = None, - allow_nonstandard_methods: bool = None, - validate_cert: bool = None, - ca_certs: str = None, - allow_ipv6: bool = None, - client_key: str = None, - client_cert: str = None, - body_producer: Callable[[Callable[[bytes], None]], "Future[None]"] = None, - expect_100_continue: bool = False, - decompress_response: bool = None, - ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, - ) -> None: - r"""All parameters except ``url`` are optional. - - :arg str url: URL to fetch - :arg str method: HTTP method, e.g. "GET" or "POST" - :arg headers: Additional HTTP headers to pass on the request - :type headers: `~tornado.httputil.HTTPHeaders` or `dict` - :arg body: HTTP request body as a string (byte or unicode; if unicode - the utf-8 encoding will be used) - :arg body_producer: Callable used for lazy/asynchronous request bodies. - It is called with one argument, a ``write`` function, and should - return a `.Future`. It should call the write function with new - data as it becomes available. The write function returns a - `.Future` which can be used for flow control. - Only one of ``body`` and ``body_producer`` may - be specified. ``body_producer`` is not supported on - ``curl_httpclient``. When using ``body_producer`` it is recommended - to pass a ``Content-Length`` in the headers as otherwise chunked - encoding will be used, and many servers do not support chunked - encoding on requests. New in Tornado 4.0 - :arg str auth_username: Username for HTTP authentication - :arg str auth_password: Password for HTTP authentication - :arg str auth_mode: Authentication mode; default is "basic". - Allowed values are implementation-defined; ``curl_httpclient`` - supports "basic" and "digest"; ``simple_httpclient`` only supports - "basic" - :arg float connect_timeout: Timeout for initial connection in seconds, - default 20 seconds - :arg float request_timeout: Timeout for entire request in seconds, - default 20 seconds - :arg if_modified_since: Timestamp for ``If-Modified-Since`` header - :type if_modified_since: `datetime` or `float` - :arg bool follow_redirects: Should redirects be followed automatically - or return the 3xx response? Default True. - :arg int max_redirects: Limit for ``follow_redirects``, default 5. - :arg str user_agent: String to send as ``User-Agent`` header - :arg bool decompress_response: Request a compressed response from - the server and decompress it after downloading. Default is True. - New in Tornado 4.0. - :arg bool use_gzip: Deprecated alias for ``decompress_response`` - since Tornado 4.0. - :arg str network_interface: Network interface or source IP to use for request. - See ``curl_httpclient`` note below. - :arg collections.abc.Callable streaming_callback: If set, ``streaming_callback`` will - be run with each chunk of data as it is received, and - ``HTTPResponse.body`` and ``HTTPResponse.buffer`` will be empty in - the final response. - :arg collections.abc.Callable header_callback: If set, ``header_callback`` will - be run with each header line as it is received (including the - first line, e.g. ``HTTP/1.0 200 OK\r\n``, and a final line - containing only ``\r\n``. All lines include the trailing newline - characters). ``HTTPResponse.headers`` will be empty in the final - response. This is most useful in conjunction with - ``streaming_callback``, because it's the only way to get access to - header data while the request is in progress. - :arg collections.abc.Callable prepare_curl_callback: If set, will be called with - a ``pycurl.Curl`` object to allow the application to make additional - ``setopt`` calls. - :arg str proxy_host: HTTP proxy hostname. To use proxies, - ``proxy_host`` and ``proxy_port`` must be set; ``proxy_username``, - ``proxy_pass`` and ``proxy_auth_mode`` are optional. Proxies are - currently only supported with ``curl_httpclient``. - :arg int proxy_port: HTTP proxy port - :arg str proxy_username: HTTP proxy username - :arg str proxy_password: HTTP proxy password - :arg str proxy_auth_mode: HTTP proxy Authentication mode; - default is "basic". supports "basic" and "digest" - :arg bool allow_nonstandard_methods: Allow unknown values for ``method`` - argument? Default is False. - :arg bool validate_cert: For HTTPS requests, validate the server's - certificate? Default is True. - :arg str ca_certs: filename of CA certificates in PEM format, - or None to use defaults. See note below when used with - ``curl_httpclient``. - :arg str client_key: Filename for client SSL key, if any. See - note below when used with ``curl_httpclient``. - :arg str client_cert: Filename for client SSL certificate, if any. - See note below when used with ``curl_httpclient``. - :arg ssl.SSLContext ssl_options: `ssl.SSLContext` object for use in - ``simple_httpclient`` (unsupported by ``curl_httpclient``). - Overrides ``validate_cert``, ``ca_certs``, ``client_key``, - and ``client_cert``. - :arg bool allow_ipv6: Use IPv6 when available? Default is True. - :arg bool expect_100_continue: If true, send the - ``Expect: 100-continue`` header and wait for a continue response - before sending the request body. Only supported with - ``simple_httpclient``. - - .. note:: - - When using ``curl_httpclient`` certain options may be - inherited by subsequent fetches because ``pycurl`` does - not allow them to be cleanly reset. This applies to the - ``ca_certs``, ``client_key``, ``client_cert``, and - ``network_interface`` arguments. If you use these - options, you should pass them on every request (you don't - have to always use the same values, but it's not possible - to mix requests that specify these options with ones that - use the defaults). - - .. versionadded:: 3.1 - The ``auth_mode`` argument. - - .. versionadded:: 4.0 - The ``body_producer`` and ``expect_100_continue`` arguments. - - .. versionadded:: 4.2 - The ``ssl_options`` argument. - - .. versionadded:: 4.5 - The ``proxy_auth_mode`` argument. - """ - # Note that some of these attributes go through property setters - # defined below. - self.headers = headers - if if_modified_since: - self.headers["If-Modified-Since"] = httputil.format_timestamp( - if_modified_since - ) - self.proxy_host = proxy_host - self.proxy_port = proxy_port - self.proxy_username = proxy_username - self.proxy_password = proxy_password - self.proxy_auth_mode = proxy_auth_mode - self.url = url - self.method = method - self.body = body - self.body_producer = body_producer - self.auth_username = auth_username - self.auth_password = auth_password - self.auth_mode = auth_mode - self.connect_timeout = connect_timeout - self.request_timeout = request_timeout - self.follow_redirects = follow_redirects - self.max_redirects = max_redirects - self.user_agent = user_agent - if decompress_response is not None: - self.decompress_response = decompress_response # type: Optional[bool] - else: - self.decompress_response = use_gzip - self.network_interface = network_interface - self.streaming_callback = streaming_callback - self.header_callback = header_callback - self.prepare_curl_callback = prepare_curl_callback - self.allow_nonstandard_methods = allow_nonstandard_methods - self.validate_cert = validate_cert - self.ca_certs = ca_certs - self.allow_ipv6 = allow_ipv6 - self.client_key = client_key - self.client_cert = client_cert - self.ssl_options = ssl_options - self.expect_100_continue = expect_100_continue - self.start_time = time.time() - - @property - def headers(self) -> httputil.HTTPHeaders: - # TODO: headers may actually be a plain dict until fairly late in - # the process (AsyncHTTPClient.fetch), but practically speaking, - # whenever the property is used they're already HTTPHeaders. - return self._headers # type: ignore - - @headers.setter - def headers(self, value: Union[Dict[str, str], httputil.HTTPHeaders]) -> None: - if value is None: - self._headers = httputil.HTTPHeaders() - else: - self._headers = value # type: ignore - - @property - def body(self) -> bytes: - return self._body - - @body.setter - def body(self, value: Union[bytes, str]) -> None: - self._body = utf8(value) - - -class HTTPResponse(object): - """HTTP Response object. - - Attributes: - - * ``request``: HTTPRequest object - - * ``code``: numeric HTTP status code, e.g. 200 or 404 - - * ``reason``: human-readable reason phrase describing the status code - - * ``headers``: `tornado.httputil.HTTPHeaders` object - - * ``effective_url``: final location of the resource after following any - redirects - - * ``buffer``: ``cStringIO`` object for response body - - * ``body``: response body as bytes (created on demand from ``self.buffer``) - - * ``error``: Exception object, if any - - * ``request_time``: seconds from request start to finish. Includes all - network operations from DNS resolution to receiving the last byte of - data. Does not include time spent in the queue (due to the - ``max_clients`` option). If redirects were followed, only includes - the final request. - - * ``start_time``: Time at which the HTTP operation started, based on - `time.time` (not the monotonic clock used by `.IOLoop.time`). May - be ``None`` if the request timed out while in the queue. - - * ``time_info``: dictionary of diagnostic timing information from the - request. Available data are subject to change, but currently uses timings - available from http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html, - plus ``queue``, which is the delay (if any) introduced by waiting for - a slot under `AsyncHTTPClient`'s ``max_clients`` setting. - - .. versionadded:: 5.1 - - Added the ``start_time`` attribute. - - .. versionchanged:: 5.1 - - The ``request_time`` attribute previously included time spent in the queue - for ``simple_httpclient``, but not in ``curl_httpclient``. Now queueing time - is excluded in both implementations. ``request_time`` is now more accurate for - ``curl_httpclient`` because it uses a monotonic clock when available. - """ - - # I'm not sure why these don't get type-inferred from the references in __init__. - error = None # type: Optional[BaseException] - _error_is_response_code = False - request = None # type: HTTPRequest - - def __init__( - self, - request: HTTPRequest, - code: int, - headers: httputil.HTTPHeaders = None, - buffer: BytesIO = None, - effective_url: str = None, - error: BaseException = None, - request_time: float = None, - time_info: Dict[str, float] = None, - reason: str = None, - start_time: float = None, - ) -> None: - if isinstance(request, _RequestProxy): - self.request = request.request - else: - self.request = request - self.code = code - self.reason = reason or httputil.responses.get(code, "Unknown") - if headers is not None: - self.headers = headers - else: - self.headers = httputil.HTTPHeaders() - self.buffer = buffer - self._body = None # type: Optional[bytes] - if effective_url is None: - self.effective_url = request.url - else: - self.effective_url = effective_url - self._error_is_response_code = False - if error is None: - if self.code < 200 or self.code >= 300: - self._error_is_response_code = True - self.error = HTTPError(self.code, message=self.reason, response=self) - else: - self.error = None - else: - self.error = error - self.start_time = start_time - self.request_time = request_time - self.time_info = time_info or {} - - @property - def body(self) -> bytes: - if self.buffer is None: - return b"" - elif self._body is None: - self._body = self.buffer.getvalue() - - return self._body - - def rethrow(self) -> None: - """If there was an error on the request, raise an `HTTPError`.""" - if self.error: - raise self.error - - def __repr__(self) -> str: - args = ",".join("%s=%r" % i for i in sorted(self.__dict__.items())) - return "%s(%s)" % (self.__class__.__name__, args) - - -class HTTPClientError(Exception): - """Exception thrown for an unsuccessful HTTP request. - - Attributes: - - * ``code`` - HTTP error integer error code, e.g. 404. Error code 599 is - used when no HTTP response was received, e.g. for a timeout. - - * ``response`` - `HTTPResponse` object, if any. - - Note that if ``follow_redirects`` is False, redirects become HTTPErrors, - and you can look at ``error.response.headers['Location']`` to see the - destination of the redirect. - - .. versionchanged:: 5.1 - - Renamed from ``HTTPError`` to ``HTTPClientError`` to avoid collisions with - `tornado.web.HTTPError`. The name ``tornado.httpclient.HTTPError`` remains - as an alias. - """ - - def __init__( - self, code: int, message: str = None, response: HTTPResponse = None - ) -> None: - self.code = code - self.message = message or httputil.responses.get(code, "Unknown") - self.response = response - super(HTTPClientError, self).__init__(code, message, response) - - def __str__(self) -> str: - return "HTTP %d: %s" % (self.code, self.message) - - # There is a cyclic reference between self and self.response, - # which breaks the default __repr__ implementation. - # (especially on pypy, which doesn't have the same recursion - # detection as cpython). - __repr__ = __str__ - - -HTTPError = HTTPClientError - - -class _RequestProxy(object): - """Combines an object with a dictionary of defaults. - - Used internally by AsyncHTTPClient implementations. - """ - - def __init__( - self, request: HTTPRequest, defaults: Optional[Dict[str, Any]] - ) -> None: - self.request = request - self.defaults = defaults - - def __getattr__(self, name: str) -> Any: - request_attr = getattr(self.request, name) - if request_attr is not None: - return request_attr - elif self.defaults is not None: - return self.defaults.get(name, None) - else: - return None - - -def main() -> None: - from tornado.options import define, options, parse_command_line - - define("print_headers", type=bool, default=False) - define("print_body", type=bool, default=True) - define("follow_redirects", type=bool, default=True) - define("validate_cert", type=bool, default=True) - define("proxy_host", type=str) - define("proxy_port", type=int) - args = parse_command_line() - client = HTTPClient() - for arg in args: - try: - response = client.fetch( - arg, - follow_redirects=options.follow_redirects, - validate_cert=options.validate_cert, - proxy_host=options.proxy_host, - proxy_port=options.proxy_port, - ) - except HTTPError as e: - if e.response is not None: - response = e.response - else: - raise - if options.print_headers: - print(response.headers) - if options.print_body: - print(native_str(response.body)) - client.close() - - -if __name__ == "__main__": - main() +"""Blocking and non-blocking HTTP client interfaces. + +This module defines a common interface shared by two implementations, +``simple_httpclient`` and ``curl_httpclient``. Applications may either +instantiate their chosen implementation class directly or use the +`AsyncHTTPClient` class from this module, which selects an implementation +that can be overridden with the `AsyncHTTPClient.configure` method. + +The default implementation is ``simple_httpclient``, and this is expected +to be suitable for most users' needs. However, some applications may wish +to switch to ``curl_httpclient`` for reasons such as the following: + +* ``curl_httpclient`` has some features not found in ``simple_httpclient``, + including support for HTTP proxies and the ability to use a specified + network interface. + +* ``curl_httpclient`` is more likely to be compatible with sites that are + not-quite-compliant with the HTTP spec, or sites that use little-exercised + features of HTTP. + +* ``curl_httpclient`` is faster. + +Note that if you are using ``curl_httpclient``, it is highly +recommended that you use a recent version of ``libcurl`` and +``pycurl``. Currently the minimum supported version of libcurl is +7.22.0, and the minimum version of pycurl is 7.18.2. It is highly +recommended that your ``libcurl`` installation is built with +asynchronous DNS resolver (threaded or c-ares), otherwise you may +encounter various problems with request timeouts (for more +information, see +http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTCONNECTTIMEOUTMS +and comments in curl_httpclient.py). + +To select ``curl_httpclient``, call `AsyncHTTPClient.configure` at startup:: + + AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient") +""" + +import datetime +import functools +from io import BytesIO +import ssl +import time +import weakref + +from tornado.concurrent import ( + Future, + future_set_result_unless_cancelled, + future_set_exception_unless_cancelled, +) +from tornado.escape import utf8, native_str +from tornado import gen, httputil +from tornado.ioloop import IOLoop +from tornado.util import Configurable + +from typing import Type, Any, Union, Dict, Callable, Optional, cast, Awaitable + + +class HTTPClient(object): + """A blocking HTTP client. + + This interface is provided to make it easier to share code between + synchronous and asynchronous applications. Applications that are + running an `.IOLoop` must use `AsyncHTTPClient` instead. + + Typical usage looks like this:: + + http_client = httpclient.HTTPClient() + try: + response = http_client.fetch("http://www.google.com/") + print(response.body) + except httpclient.HTTPError as e: + # HTTPError is raised for non-200 responses; the response + # can be found in e.response. + print("Error: " + str(e)) + except Exception as e: + # Other errors are possible, such as IOError. + print("Error: " + str(e)) + http_client.close() + + .. versionchanged:: 5.0 + + Due to limitations in `asyncio`, it is no longer possible to + use the synchronous ``HTTPClient`` while an `.IOLoop` is running. + Use `AsyncHTTPClient` instead. + + """ + + def __init__( + self, async_client_class: Type["AsyncHTTPClient"] = None, **kwargs: Any + ) -> None: + # Initialize self._closed at the beginning of the constructor + # so that an exception raised here doesn't lead to confusing + # failures in __del__. + self._closed = True + self._io_loop = IOLoop(make_current=False) + if async_client_class is None: + async_client_class = AsyncHTTPClient + + # Create the client while our IOLoop is "current", without + # clobbering the thread's real current IOLoop (if any). + async def make_client() -> "AsyncHTTPClient": + await gen.sleep(0) + assert async_client_class is not None + return async_client_class(**kwargs) + + self._async_client = self._io_loop.run_sync(make_client) + self._closed = False + + def __del__(self) -> None: + self.close() + + def close(self) -> None: + """Closes the HTTPClient, freeing any resources used.""" + if not self._closed: + self._async_client.close() + self._io_loop.close() + self._closed = True + + def fetch( + self, request: Union["HTTPRequest", str], **kwargs: Any + ) -> "HTTPResponse": + """Executes a request, returning an `HTTPResponse`. + + The request may be either a string URL or an `HTTPRequest` object. + If it is a string, we construct an `HTTPRequest` using any additional + kwargs: ``HTTPRequest(request, **kwargs)`` + + If an error occurs during the fetch, we raise an `HTTPError` unless + the ``raise_error`` keyword argument is set to False. + """ + response = self._io_loop.run_sync( + functools.partial(self._async_client.fetch, request, **kwargs) + ) + return response + + +class AsyncHTTPClient(Configurable): + """An non-blocking HTTP client. + + Example usage:: + + async def f(): + http_client = AsyncHTTPClient() + try: + response = await http_client.fetch("http://www.google.com") + except Exception as e: + print("Error: %s" % e) + else: + print(response.body) + + The constructor for this class is magic in several respects: It + actually creates an instance of an implementation-specific + subclass, and instances are reused as a kind of pseudo-singleton + (one per `.IOLoop`). The keyword argument ``force_instance=True`` + can be used to suppress this singleton behavior. Unless + ``force_instance=True`` is used, no arguments should be passed to + the `AsyncHTTPClient` constructor. The implementation subclass as + well as arguments to its constructor can be set with the static + method `configure()` + + All `AsyncHTTPClient` implementations support a ``defaults`` + keyword argument, which can be used to set default values for + `HTTPRequest` attributes. For example:: + + AsyncHTTPClient.configure( + None, defaults=dict(user_agent="MyUserAgent")) + # or with force_instance: + client = AsyncHTTPClient(force_instance=True, + defaults=dict(user_agent="MyUserAgent")) + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been removed. + + """ + + _instance_cache = None # type: Dict[IOLoop, AsyncHTTPClient] + + @classmethod + def configurable_base(cls) -> Type[Configurable]: + return AsyncHTTPClient + + @classmethod + def configurable_default(cls) -> Type[Configurable]: + from tornado.simple_httpclient import SimpleAsyncHTTPClient + + return SimpleAsyncHTTPClient + + @classmethod + def _async_clients(cls) -> Dict[IOLoop, "AsyncHTTPClient"]: + attr_name = "_async_client_dict_" + cls.__name__ + if not hasattr(cls, attr_name): + setattr(cls, attr_name, weakref.WeakKeyDictionary()) + return getattr(cls, attr_name) + + def __new__(cls, force_instance: bool = False, **kwargs: Any) -> "AsyncHTTPClient": + io_loop = IOLoop.current() + if force_instance: + instance_cache = None + else: + instance_cache = cls._async_clients() + if instance_cache is not None and io_loop in instance_cache: + return instance_cache[io_loop] + instance = super(AsyncHTTPClient, cls).__new__(cls, **kwargs) # type: ignore + # Make sure the instance knows which cache to remove itself from. + # It can't simply call _async_clients() because we may be in + # __new__(AsyncHTTPClient) but instance.__class__ may be + # SimpleAsyncHTTPClient. + instance._instance_cache = instance_cache + if instance_cache is not None: + instance_cache[instance.io_loop] = instance + return instance + + def initialize(self, defaults: Dict[str, Any] = None) -> None: + self.io_loop = IOLoop.current() + self.defaults = dict(HTTPRequest._DEFAULTS) + if defaults is not None: + self.defaults.update(defaults) + self._closed = False + + def close(self) -> None: + """Destroys this HTTP client, freeing any file descriptors used. + + This method is **not needed in normal use** due to the way + that `AsyncHTTPClient` objects are transparently reused. + ``close()`` is generally only necessary when either the + `.IOLoop` is also being closed, or the ``force_instance=True`` + argument was used when creating the `AsyncHTTPClient`. + + No other methods may be called on the `AsyncHTTPClient` after + ``close()``. + + """ + if self._closed: + return + self._closed = True + if self._instance_cache is not None: + cached_val = self._instance_cache.pop(self.io_loop, None) + # If there's an object other than self in the instance + # cache for our IOLoop, something has gotten mixed up. A + # value of None appears to be possible when this is called + # from a destructor (HTTPClient.__del__) as the weakref + # gets cleared before the destructor runs. + if cached_val is not None and cached_val is not self: + raise RuntimeError("inconsistent AsyncHTTPClient cache") + + def fetch( + self, + request: Union[str, "HTTPRequest"], + raise_error: bool = True, + **kwargs: Any + ) -> Awaitable["HTTPResponse"]: + """Executes a request, asynchronously returning an `HTTPResponse`. + + The request may be either a string URL or an `HTTPRequest` object. + If it is a string, we construct an `HTTPRequest` using any additional + kwargs: ``HTTPRequest(request, **kwargs)`` + + This method returns a `.Future` whose result is an + `HTTPResponse`. By default, the ``Future`` will raise an + `HTTPError` if the request returned a non-200 response code + (other errors may also be raised if the server could not be + contacted). Instead, if ``raise_error`` is set to False, the + response will always be returned regardless of the response + code. + + If a ``callback`` is given, it will be invoked with the `HTTPResponse`. + In the callback interface, `HTTPError` is not automatically raised. + Instead, you must check the response's ``error`` attribute or + call its `~HTTPResponse.rethrow` method. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + `.Future` instead. + + The ``raise_error=False`` argument only affects the + `HTTPError` raised when a non-200 response code is used, + instead of suppressing all errors. + """ + if self._closed: + raise RuntimeError("fetch() called on closed AsyncHTTPClient") + if not isinstance(request, HTTPRequest): + request = HTTPRequest(url=request, **kwargs) + else: + if kwargs: + raise ValueError( + "kwargs can't be used if request is an HTTPRequest object" + ) + # We may modify this (to add Host, Accept-Encoding, etc), + # so make sure we don't modify the caller's object. This is also + # where normal dicts get converted to HTTPHeaders objects. + request.headers = httputil.HTTPHeaders(request.headers) + request_proxy = _RequestProxy(request, self.defaults) + future = Future() # type: Future[HTTPResponse] + + def handle_response(response: "HTTPResponse") -> None: + if response.error: + if raise_error or not response._error_is_response_code: + future_set_exception_unless_cancelled(future, response.error) + return + future_set_result_unless_cancelled(future, response) + + self.fetch_impl(cast(HTTPRequest, request_proxy), handle_response) + return future + + def fetch_impl( + self, request: "HTTPRequest", callback: Callable[["HTTPResponse"], None] + ) -> None: + raise NotImplementedError() + + @classmethod + def configure( + cls, impl: "Union[None, str, Type[Configurable]]", **kwargs: Any + ) -> None: + """Configures the `AsyncHTTPClient` subclass to use. + + ``AsyncHTTPClient()`` actually creates an instance of a subclass. + This method may be called with either a class object or the + fully-qualified name of such a class (or ``None`` to use the default, + ``SimpleAsyncHTTPClient``) + + If additional keyword arguments are given, they will be passed + to the constructor of each subclass instance created. The + keyword argument ``max_clients`` determines the maximum number + of simultaneous `~AsyncHTTPClient.fetch()` operations that can + execute in parallel on each `.IOLoop`. Additional arguments + may be supported depending on the implementation class in use. + + Example:: + + AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient") + """ + super(AsyncHTTPClient, cls).configure(impl, **kwargs) + + +class HTTPRequest(object): + """HTTP client request object.""" + + _headers = None # type: Union[Dict[str, str], httputil.HTTPHeaders] + + # Default values for HTTPRequest parameters. + # Merged with the values on the request object by AsyncHTTPClient + # implementations. + _DEFAULTS = dict( + connect_timeout=20.0, + request_timeout=20.0, + follow_redirects=True, + max_redirects=5, + decompress_response=True, + proxy_password="", + allow_nonstandard_methods=False, + validate_cert=True, + ) + + def __init__( + self, + url: str, + method: str = "GET", + headers: Union[Dict[str, str], httputil.HTTPHeaders] = None, + body: Union[bytes, str] = None, + auth_username: str = None, + auth_password: str = None, + auth_mode: str = None, + connect_timeout: float = None, + request_timeout: float = None, + if_modified_since: Union[float, datetime.datetime] = None, + follow_redirects: bool = None, + max_redirects: int = None, + user_agent: str = None, + use_gzip: bool = None, + network_interface: str = None, + streaming_callback: Callable[[bytes], None] = None, + header_callback: Callable[[str], None] = None, + prepare_curl_callback: Callable[[Any], None] = None, + proxy_host: str = None, + proxy_port: int = None, + proxy_username: str = None, + proxy_password: str = None, + proxy_auth_mode: str = None, + allow_nonstandard_methods: bool = None, + validate_cert: bool = None, + ca_certs: str = None, + allow_ipv6: bool = None, + client_key: str = None, + client_cert: str = None, + body_producer: Callable[[Callable[[bytes], None]], "Future[None]"] = None, + expect_100_continue: bool = False, + decompress_response: bool = None, + ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, + ) -> None: + r"""All parameters except ``url`` are optional. + + :arg str url: URL to fetch + :arg str method: HTTP method, e.g. "GET" or "POST" + :arg headers: Additional HTTP headers to pass on the request + :type headers: `~tornado.httputil.HTTPHeaders` or `dict` + :arg body: HTTP request body as a string (byte or unicode; if unicode + the utf-8 encoding will be used) + :arg body_producer: Callable used for lazy/asynchronous request bodies. + It is called with one argument, a ``write`` function, and should + return a `.Future`. It should call the write function with new + data as it becomes available. The write function returns a + `.Future` which can be used for flow control. + Only one of ``body`` and ``body_producer`` may + be specified. ``body_producer`` is not supported on + ``curl_httpclient``. When using ``body_producer`` it is recommended + to pass a ``Content-Length`` in the headers as otherwise chunked + encoding will be used, and many servers do not support chunked + encoding on requests. New in Tornado 4.0 + :arg str auth_username: Username for HTTP authentication + :arg str auth_password: Password for HTTP authentication + :arg str auth_mode: Authentication mode; default is "basic". + Allowed values are implementation-defined; ``curl_httpclient`` + supports "basic" and "digest"; ``simple_httpclient`` only supports + "basic" + :arg float connect_timeout: Timeout for initial connection in seconds, + default 20 seconds + :arg float request_timeout: Timeout for entire request in seconds, + default 20 seconds + :arg if_modified_since: Timestamp for ``If-Modified-Since`` header + :type if_modified_since: `datetime` or `float` + :arg bool follow_redirects: Should redirects be followed automatically + or return the 3xx response? Default True. + :arg int max_redirects: Limit for ``follow_redirects``, default 5. + :arg str user_agent: String to send as ``User-Agent`` header + :arg bool decompress_response: Request a compressed response from + the server and decompress it after downloading. Default is True. + New in Tornado 4.0. + :arg bool use_gzip: Deprecated alias for ``decompress_response`` + since Tornado 4.0. + :arg str network_interface: Network interface or source IP to use for request. + See ``curl_httpclient`` note below. + :arg collections.abc.Callable streaming_callback: If set, ``streaming_callback`` will + be run with each chunk of data as it is received, and + ``HTTPResponse.body`` and ``HTTPResponse.buffer`` will be empty in + the final response. + :arg collections.abc.Callable header_callback: If set, ``header_callback`` will + be run with each header line as it is received (including the + first line, e.g. ``HTTP/1.0 200 OK\r\n``, and a final line + containing only ``\r\n``. All lines include the trailing newline + characters). ``HTTPResponse.headers`` will be empty in the final + response. This is most useful in conjunction with + ``streaming_callback``, because it's the only way to get access to + header data while the request is in progress. + :arg collections.abc.Callable prepare_curl_callback: If set, will be called with + a ``pycurl.Curl`` object to allow the application to make additional + ``setopt`` calls. + :arg str proxy_host: HTTP proxy hostname. To use proxies, + ``proxy_host`` and ``proxy_port`` must be set; ``proxy_username``, + ``proxy_pass`` and ``proxy_auth_mode`` are optional. Proxies are + currently only supported with ``curl_httpclient``. + :arg int proxy_port: HTTP proxy port + :arg str proxy_username: HTTP proxy username + :arg str proxy_password: HTTP proxy password + :arg str proxy_auth_mode: HTTP proxy Authentication mode; + default is "basic". supports "basic" and "digest" + :arg bool allow_nonstandard_methods: Allow unknown values for ``method`` + argument? Default is False. + :arg bool validate_cert: For HTTPS requests, validate the server's + certificate? Default is True. + :arg str ca_certs: filename of CA certificates in PEM format, + or None to use defaults. See note below when used with + ``curl_httpclient``. + :arg str client_key: Filename for client SSL key, if any. See + note below when used with ``curl_httpclient``. + :arg str client_cert: Filename for client SSL certificate, if any. + See note below when used with ``curl_httpclient``. + :arg ssl.SSLContext ssl_options: `ssl.SSLContext` object for use in + ``simple_httpclient`` (unsupported by ``curl_httpclient``). + Overrides ``validate_cert``, ``ca_certs``, ``client_key``, + and ``client_cert``. + :arg bool allow_ipv6: Use IPv6 when available? Default is True. + :arg bool expect_100_continue: If true, send the + ``Expect: 100-continue`` header and wait for a continue response + before sending the request body. Only supported with + ``simple_httpclient``. + + .. note:: + + When using ``curl_httpclient`` certain options may be + inherited by subsequent fetches because ``pycurl`` does + not allow them to be cleanly reset. This applies to the + ``ca_certs``, ``client_key``, ``client_cert``, and + ``network_interface`` arguments. If you use these + options, you should pass them on every request (you don't + have to always use the same values, but it's not possible + to mix requests that specify these options with ones that + use the defaults). + + .. versionadded:: 3.1 + The ``auth_mode`` argument. + + .. versionadded:: 4.0 + The ``body_producer`` and ``expect_100_continue`` arguments. + + .. versionadded:: 4.2 + The ``ssl_options`` argument. + + .. versionadded:: 4.5 + The ``proxy_auth_mode`` argument. + """ + # Note that some of these attributes go through property setters + # defined below. + self.headers = headers + if if_modified_since: + self.headers["If-Modified-Since"] = httputil.format_timestamp( + if_modified_since + ) + self.proxy_host = proxy_host + self.proxy_port = proxy_port + self.proxy_username = proxy_username + self.proxy_password = proxy_password + self.proxy_auth_mode = proxy_auth_mode + self.url = url + self.method = method + self.body = body + self.body_producer = body_producer + self.auth_username = auth_username + self.auth_password = auth_password + self.auth_mode = auth_mode + self.connect_timeout = connect_timeout + self.request_timeout = request_timeout + self.follow_redirects = follow_redirects + self.max_redirects = max_redirects + self.user_agent = user_agent + if decompress_response is not None: + self.decompress_response = decompress_response # type: Optional[bool] + else: + self.decompress_response = use_gzip + self.network_interface = network_interface + self.streaming_callback = streaming_callback + self.header_callback = header_callback + self.prepare_curl_callback = prepare_curl_callback + self.allow_nonstandard_methods = allow_nonstandard_methods + self.validate_cert = validate_cert + self.ca_certs = ca_certs + self.allow_ipv6 = allow_ipv6 + self.client_key = client_key + self.client_cert = client_cert + self.ssl_options = ssl_options + self.expect_100_continue = expect_100_continue + self.start_time = time.time() + + @property + def headers(self) -> httputil.HTTPHeaders: + # TODO: headers may actually be a plain dict until fairly late in + # the process (AsyncHTTPClient.fetch), but practically speaking, + # whenever the property is used they're already HTTPHeaders. + return self._headers # type: ignore + + @headers.setter + def headers(self, value: Union[Dict[str, str], httputil.HTTPHeaders]) -> None: + if value is None: + self._headers = httputil.HTTPHeaders() + else: + self._headers = value # type: ignore + + @property + def body(self) -> bytes: + return self._body + + @body.setter + def body(self, value: Union[bytes, str]) -> None: + self._body = utf8(value) + + +class HTTPResponse(object): + """HTTP Response object. + + Attributes: + + * ``request``: HTTPRequest object + + * ``code``: numeric HTTP status code, e.g. 200 or 404 + + * ``reason``: human-readable reason phrase describing the status code + + * ``headers``: `tornado.httputil.HTTPHeaders` object + + * ``effective_url``: final location of the resource after following any + redirects + + * ``buffer``: ``cStringIO`` object for response body + + * ``body``: response body as bytes (created on demand from ``self.buffer``) + + * ``error``: Exception object, if any + + * ``request_time``: seconds from request start to finish. Includes all + network operations from DNS resolution to receiving the last byte of + data. Does not include time spent in the queue (due to the + ``max_clients`` option). If redirects were followed, only includes + the final request. + + * ``start_time``: Time at which the HTTP operation started, based on + `time.time` (not the monotonic clock used by `.IOLoop.time`). May + be ``None`` if the request timed out while in the queue. + + * ``time_info``: dictionary of diagnostic timing information from the + request. Available data are subject to change, but currently uses timings + available from http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html, + plus ``queue``, which is the delay (if any) introduced by waiting for + a slot under `AsyncHTTPClient`'s ``max_clients`` setting. + + .. versionadded:: 5.1 + + Added the ``start_time`` attribute. + + .. versionchanged:: 5.1 + + The ``request_time`` attribute previously included time spent in the queue + for ``simple_httpclient``, but not in ``curl_httpclient``. Now queueing time + is excluded in both implementations. ``request_time`` is now more accurate for + ``curl_httpclient`` because it uses a monotonic clock when available. + """ + + # I'm not sure why these don't get type-inferred from the references in __init__. + error = None # type: Optional[BaseException] + _error_is_response_code = False + request = None # type: HTTPRequest + + def __init__( + self, + request: HTTPRequest, + code: int, + headers: httputil.HTTPHeaders = None, + buffer: BytesIO = None, + effective_url: str = None, + error: BaseException = None, + request_time: float = None, + time_info: Dict[str, float] = None, + reason: str = None, + start_time: float = None, + ) -> None: + if isinstance(request, _RequestProxy): + self.request = request.request + else: + self.request = request + self.code = code + self.reason = reason or httputil.responses.get(code, "Unknown") + if headers is not None: + self.headers = headers + else: + self.headers = httputil.HTTPHeaders() + self.buffer = buffer + self._body = None # type: Optional[bytes] + if effective_url is None: + self.effective_url = request.url + else: + self.effective_url = effective_url + self._error_is_response_code = False + if error is None: + if self.code < 200 or self.code >= 300: + self._error_is_response_code = True + self.error = HTTPError(self.code, message=self.reason, response=self) + else: + self.error = None + else: + self.error = error + self.start_time = start_time + self.request_time = request_time + self.time_info = time_info or {} + + @property + def body(self) -> bytes: + if self.buffer is None: + return b"" + elif self._body is None: + self._body = self.buffer.getvalue() + + return self._body + + def rethrow(self) -> None: + """If there was an error on the request, raise an `HTTPError`.""" + if self.error: + raise self.error + + def __repr__(self) -> str: + args = ",".join("%s=%r" % i for i in sorted(self.__dict__.items())) + return "%s(%s)" % (self.__class__.__name__, args) + + +class HTTPClientError(Exception): + """Exception thrown for an unsuccessful HTTP request. + + Attributes: + + * ``code`` - HTTP error integer error code, e.g. 404. Error code 599 is + used when no HTTP response was received, e.g. for a timeout. + + * ``response`` - `HTTPResponse` object, if any. + + Note that if ``follow_redirects`` is False, redirects become HTTPErrors, + and you can look at ``error.response.headers['Location']`` to see the + destination of the redirect. + + .. versionchanged:: 5.1 + + Renamed from ``HTTPError`` to ``HTTPClientError`` to avoid collisions with + `tornado.web.HTTPError`. The name ``tornado.httpclient.HTTPError`` remains + as an alias. + """ + + def __init__( + self, code: int, message: str = None, response: HTTPResponse = None + ) -> None: + self.code = code + self.message = message or httputil.responses.get(code, "Unknown") + self.response = response + super(HTTPClientError, self).__init__(code, message, response) + + def __str__(self) -> str: + return "HTTP %d: %s" % (self.code, self.message) + + # There is a cyclic reference between self and self.response, + # which breaks the default __repr__ implementation. + # (especially on pypy, which doesn't have the same recursion + # detection as cpython). + __repr__ = __str__ + + +HTTPError = HTTPClientError + + +class _RequestProxy(object): + """Combines an object with a dictionary of defaults. + + Used internally by AsyncHTTPClient implementations. + """ + + def __init__( + self, request: HTTPRequest, defaults: Optional[Dict[str, Any]] + ) -> None: + self.request = request + self.defaults = defaults + + def __getattr__(self, name: str) -> Any: + request_attr = getattr(self.request, name) + if request_attr is not None: + return request_attr + elif self.defaults is not None: + return self.defaults.get(name, None) + else: + return None + + +def main() -> None: + from tornado.options import define, options, parse_command_line + + define("print_headers", type=bool, default=False) + define("print_body", type=bool, default=True) + define("follow_redirects", type=bool, default=True) + define("validate_cert", type=bool, default=True) + define("proxy_host", type=str) + define("proxy_port", type=int) + args = parse_command_line() + client = HTTPClient() + for arg in args: + try: + response = client.fetch( + arg, + follow_redirects=options.follow_redirects, + validate_cert=options.validate_cert, + proxy_host=options.proxy_host, + proxy_port=options.proxy_port, + ) + except HTTPError as e: + if e.response is not None: + response = e.response + else: + raise + if options.print_headers: + print(response.headers) + if options.print_body: + print(native_str(response.body)) + client.close() + + +if __name__ == "__main__": + main() diff --git a/server/www/packages/packages-linux/x64/tornado/httpserver.py b/server/www/packages/packages-linux/x64/tornado/httpserver.py index 8044a4f..2fbfdee 100644 --- a/server/www/packages/packages-linux/x64/tornado/httpserver.py +++ b/server/www/packages/packages-linux/x64/tornado/httpserver.py @@ -1,398 +1,398 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""A non-blocking, single-threaded HTTP server. - -Typical applications have little direct interaction with the `HTTPServer` -class except to start a server at the beginning of the process -(and even that is often done indirectly via `tornado.web.Application.listen`). - -.. versionchanged:: 4.0 - - The ``HTTPRequest`` class that used to live in this module has been moved - to `tornado.httputil.HTTPServerRequest`. The old name remains as an alias. -""" - -import socket -import ssl - -from tornado.escape import native_str -from tornado.http1connection import HTTP1ServerConnection, HTTP1ConnectionParameters -from tornado import httputil -from tornado import iostream -from tornado import netutil -from tornado.tcpserver import TCPServer -from tornado.util import Configurable - -import typing -from typing import Union, Any, Dict, Callable, List, Type, Tuple, Optional, Awaitable - -if typing.TYPE_CHECKING: - from typing import Set # noqa: F401 - - -class HTTPServer(TCPServer, Configurable, httputil.HTTPServerConnectionDelegate): - r"""A non-blocking, single-threaded HTTP server. - - A server is defined by a subclass of `.HTTPServerConnectionDelegate`, - or, for backwards compatibility, a callback that takes an - `.HTTPServerRequest` as an argument. The delegate is usually a - `tornado.web.Application`. - - `HTTPServer` supports keep-alive connections by default - (automatically for HTTP/1.1, or for HTTP/1.0 when the client - requests ``Connection: keep-alive``). - - If ``xheaders`` is ``True``, we support the - ``X-Real-Ip``/``X-Forwarded-For`` and - ``X-Scheme``/``X-Forwarded-Proto`` headers, which override the - remote IP and URI scheme/protocol for all requests. These headers - are useful when running Tornado behind a reverse proxy or load - balancer. The ``protocol`` argument can also be set to ``https`` - if Tornado is run behind an SSL-decoding proxy that does not set one of - the supported ``xheaders``. - - By default, when parsing the ``X-Forwarded-For`` header, Tornado will - select the last (i.e., the closest) address on the list of hosts as the - remote host IP address. To select the next server in the chain, a list of - trusted downstream hosts may be passed as the ``trusted_downstream`` - argument. These hosts will be skipped when parsing the ``X-Forwarded-For`` - header. - - To make this server serve SSL traffic, send the ``ssl_options`` keyword - argument with an `ssl.SSLContext` object. For compatibility with older - versions of Python ``ssl_options`` may also be a dictionary of keyword - arguments for the `ssl.wrap_socket` method.:: - - ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) - ssl_ctx.load_cert_chain(os.path.join(data_dir, "mydomain.crt"), - os.path.join(data_dir, "mydomain.key")) - HTTPServer(application, ssl_options=ssl_ctx) - - `HTTPServer` initialization follows one of three patterns (the - initialization methods are defined on `tornado.tcpserver.TCPServer`): - - 1. `~tornado.tcpserver.TCPServer.listen`: simple single-process:: - - server = HTTPServer(app) - server.listen(8888) - IOLoop.current().start() - - In many cases, `tornado.web.Application.listen` can be used to avoid - the need to explicitly create the `HTTPServer`. - - 2. `~tornado.tcpserver.TCPServer.bind`/`~tornado.tcpserver.TCPServer.start`: - simple multi-process:: - - server = HTTPServer(app) - server.bind(8888) - server.start(0) # Forks multiple sub-processes - IOLoop.current().start() - - When using this interface, an `.IOLoop` must *not* be passed - to the `HTTPServer` constructor. `~.TCPServer.start` will always start - the server on the default singleton `.IOLoop`. - - 3. `~tornado.tcpserver.TCPServer.add_sockets`: advanced multi-process:: - - sockets = tornado.netutil.bind_sockets(8888) - tornado.process.fork_processes(0) - server = HTTPServer(app) - server.add_sockets(sockets) - IOLoop.current().start() - - The `~.TCPServer.add_sockets` interface is more complicated, - but it can be used with `tornado.process.fork_processes` to - give you more flexibility in when the fork happens. - `~.TCPServer.add_sockets` can also be used in single-process - servers if you want to create your listening sockets in some - way other than `tornado.netutil.bind_sockets`. - - .. versionchanged:: 4.0 - Added ``decompress_request``, ``chunk_size``, ``max_header_size``, - ``idle_connection_timeout``, ``body_timeout``, ``max_body_size`` - arguments. Added support for `.HTTPServerConnectionDelegate` - instances as ``request_callback``. - - .. versionchanged:: 4.1 - `.HTTPServerConnectionDelegate.start_request` is now called with - two arguments ``(server_conn, request_conn)`` (in accordance with the - documentation) instead of one ``(request_conn)``. - - .. versionchanged:: 4.2 - `HTTPServer` is now a subclass of `tornado.util.Configurable`. - - .. versionchanged:: 4.5 - Added the ``trusted_downstream`` argument. - - .. versionchanged:: 5.0 - The ``io_loop`` argument has been removed. - """ - - def __init__(self, *args: Any, **kwargs: Any) -> None: - # Ignore args to __init__; real initialization belongs in - # initialize since we're Configurable. (there's something - # weird in initialization order between this class, - # Configurable, and TCPServer so we can't leave __init__ out - # completely) - pass - - def initialize( - self, - request_callback: Union[ - httputil.HTTPServerConnectionDelegate, - Callable[[httputil.HTTPServerRequest], None], - ], - no_keep_alive: bool = False, - xheaders: bool = False, - ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, - protocol: str = None, - decompress_request: bool = False, - chunk_size: int = None, - max_header_size: int = None, - idle_connection_timeout: float = None, - body_timeout: float = None, - max_body_size: int = None, - max_buffer_size: int = None, - trusted_downstream: List[str] = None, - ) -> None: - # This method's signature is not extracted with autodoc - # because we want its arguments to appear on the class - # constructor. When changing this signature, also update the - # copy in httpserver.rst. - self.request_callback = request_callback - self.xheaders = xheaders - self.protocol = protocol - self.conn_params = HTTP1ConnectionParameters( - decompress=decompress_request, - chunk_size=chunk_size, - max_header_size=max_header_size, - header_timeout=idle_connection_timeout or 3600, - max_body_size=max_body_size, - body_timeout=body_timeout, - no_keep_alive=no_keep_alive, - ) - TCPServer.__init__( - self, - ssl_options=ssl_options, - max_buffer_size=max_buffer_size, - read_chunk_size=chunk_size, - ) - self._connections = set() # type: Set[HTTP1ServerConnection] - self.trusted_downstream = trusted_downstream - - @classmethod - def configurable_base(cls) -> Type[Configurable]: - return HTTPServer - - @classmethod - def configurable_default(cls) -> Type[Configurable]: - return HTTPServer - - async def close_all_connections(self) -> None: - """Close all open connections and asynchronously wait for them to finish. - - This method is used in combination with `~.TCPServer.stop` to - support clean shutdowns (especially for unittests). Typical - usage would call ``stop()`` first to stop accepting new - connections, then ``await close_all_connections()`` to wait for - existing connections to finish. - - This method does not currently close open websocket connections. - - Note that this method is a coroutine and must be caled with ``await``. - - """ - while self._connections: - # Peek at an arbitrary element of the set - conn = next(iter(self._connections)) - await conn.close() - - def handle_stream(self, stream: iostream.IOStream, address: Tuple) -> None: - context = _HTTPRequestContext( - stream, address, self.protocol, self.trusted_downstream - ) - conn = HTTP1ServerConnection(stream, self.conn_params, context) - self._connections.add(conn) - conn.start_serving(self) - - def start_request( - self, server_conn: object, request_conn: httputil.HTTPConnection - ) -> httputil.HTTPMessageDelegate: - if isinstance(self.request_callback, httputil.HTTPServerConnectionDelegate): - delegate = self.request_callback.start_request(server_conn, request_conn) - else: - delegate = _CallableAdapter(self.request_callback, request_conn) - - if self.xheaders: - delegate = _ProxyAdapter(delegate, request_conn) - - return delegate - - def on_close(self, server_conn: object) -> None: - self._connections.remove(typing.cast(HTTP1ServerConnection, server_conn)) - - -class _CallableAdapter(httputil.HTTPMessageDelegate): - def __init__( - self, - request_callback: Callable[[httputil.HTTPServerRequest], None], - request_conn: httputil.HTTPConnection, - ) -> None: - self.connection = request_conn - self.request_callback = request_callback - self.request = None # type: Optional[httputil.HTTPServerRequest] - self.delegate = None - self._chunks = [] # type: List[bytes] - - def headers_received( - self, - start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], - headers: httputil.HTTPHeaders, - ) -> Optional[Awaitable[None]]: - self.request = httputil.HTTPServerRequest( - connection=self.connection, - start_line=typing.cast(httputil.RequestStartLine, start_line), - headers=headers, - ) - return None - - def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]: - self._chunks.append(chunk) - return None - - def finish(self) -> None: - assert self.request is not None - self.request.body = b"".join(self._chunks) - self.request._parse_body() - self.request_callback(self.request) - - def on_connection_close(self) -> None: - del self._chunks - - -class _HTTPRequestContext(object): - def __init__( - self, - stream: iostream.IOStream, - address: Tuple, - protocol: Optional[str], - trusted_downstream: List[str] = None, - ) -> None: - self.address = address - # Save the socket's address family now so we know how to - # interpret self.address even after the stream is closed - # and its socket attribute replaced with None. - if stream.socket is not None: - self.address_family = stream.socket.family - else: - self.address_family = None - # In HTTPServerRequest we want an IP, not a full socket address. - if ( - self.address_family in (socket.AF_INET, socket.AF_INET6) - and address is not None - ): - self.remote_ip = address[0] - else: - # Unix (or other) socket; fake the remote address. - self.remote_ip = "0.0.0.0" - if protocol: - self.protocol = protocol - elif isinstance(stream, iostream.SSLIOStream): - self.protocol = "https" - else: - self.protocol = "http" - self._orig_remote_ip = self.remote_ip - self._orig_protocol = self.protocol - self.trusted_downstream = set(trusted_downstream or []) - - def __str__(self) -> str: - if self.address_family in (socket.AF_INET, socket.AF_INET6): - return self.remote_ip - elif isinstance(self.address, bytes): - # Python 3 with the -bb option warns about str(bytes), - # so convert it explicitly. - # Unix socket addresses are str on mac but bytes on linux. - return native_str(self.address) - else: - return str(self.address) - - def _apply_xheaders(self, headers: httputil.HTTPHeaders) -> None: - """Rewrite the ``remote_ip`` and ``protocol`` fields.""" - # Squid uses X-Forwarded-For, others use X-Real-Ip - ip = headers.get("X-Forwarded-For", self.remote_ip) - # Skip trusted downstream hosts in X-Forwarded-For list - for ip in (cand.strip() for cand in reversed(ip.split(","))): - if ip not in self.trusted_downstream: - break - ip = headers.get("X-Real-Ip", ip) - if netutil.is_valid_ip(ip): - self.remote_ip = ip - # AWS uses X-Forwarded-Proto - proto_header = headers.get( - "X-Scheme", headers.get("X-Forwarded-Proto", self.protocol) - ) - if proto_header: - # use only the last proto entry if there is more than one - # TODO: support trusting mutiple layers of proxied protocol - proto_header = proto_header.split(",")[-1].strip() - if proto_header in ("http", "https"): - self.protocol = proto_header - - def _unapply_xheaders(self) -> None: - """Undo changes from `_apply_xheaders`. - - Xheaders are per-request so they should not leak to the next - request on the same connection. - """ - self.remote_ip = self._orig_remote_ip - self.protocol = self._orig_protocol - - -class _ProxyAdapter(httputil.HTTPMessageDelegate): - def __init__( - self, - delegate: httputil.HTTPMessageDelegate, - request_conn: httputil.HTTPConnection, - ) -> None: - self.connection = request_conn - self.delegate = delegate - - def headers_received( - self, - start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], - headers: httputil.HTTPHeaders, - ) -> Optional[Awaitable[None]]: - # TODO: either make context an official part of the - # HTTPConnection interface or figure out some other way to do this. - self.connection.context._apply_xheaders(headers) # type: ignore - return self.delegate.headers_received(start_line, headers) - - def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]: - return self.delegate.data_received(chunk) - - def finish(self) -> None: - self.delegate.finish() - self._cleanup() - - def on_connection_close(self) -> None: - self.delegate.on_connection_close() - self._cleanup() - - def _cleanup(self) -> None: - self.connection.context._unapply_xheaders() # type: ignore - - -HTTPRequest = httputil.HTTPServerRequest +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""A non-blocking, single-threaded HTTP server. + +Typical applications have little direct interaction with the `HTTPServer` +class except to start a server at the beginning of the process +(and even that is often done indirectly via `tornado.web.Application.listen`). + +.. versionchanged:: 4.0 + + The ``HTTPRequest`` class that used to live in this module has been moved + to `tornado.httputil.HTTPServerRequest`. The old name remains as an alias. +""" + +import socket +import ssl + +from tornado.escape import native_str +from tornado.http1connection import HTTP1ServerConnection, HTTP1ConnectionParameters +from tornado import httputil +from tornado import iostream +from tornado import netutil +from tornado.tcpserver import TCPServer +from tornado.util import Configurable + +import typing +from typing import Union, Any, Dict, Callable, List, Type, Tuple, Optional, Awaitable + +if typing.TYPE_CHECKING: + from typing import Set # noqa: F401 + + +class HTTPServer(TCPServer, Configurable, httputil.HTTPServerConnectionDelegate): + r"""A non-blocking, single-threaded HTTP server. + + A server is defined by a subclass of `.HTTPServerConnectionDelegate`, + or, for backwards compatibility, a callback that takes an + `.HTTPServerRequest` as an argument. The delegate is usually a + `tornado.web.Application`. + + `HTTPServer` supports keep-alive connections by default + (automatically for HTTP/1.1, or for HTTP/1.0 when the client + requests ``Connection: keep-alive``). + + If ``xheaders`` is ``True``, we support the + ``X-Real-Ip``/``X-Forwarded-For`` and + ``X-Scheme``/``X-Forwarded-Proto`` headers, which override the + remote IP and URI scheme/protocol for all requests. These headers + are useful when running Tornado behind a reverse proxy or load + balancer. The ``protocol`` argument can also be set to ``https`` + if Tornado is run behind an SSL-decoding proxy that does not set one of + the supported ``xheaders``. + + By default, when parsing the ``X-Forwarded-For`` header, Tornado will + select the last (i.e., the closest) address on the list of hosts as the + remote host IP address. To select the next server in the chain, a list of + trusted downstream hosts may be passed as the ``trusted_downstream`` + argument. These hosts will be skipped when parsing the ``X-Forwarded-For`` + header. + + To make this server serve SSL traffic, send the ``ssl_options`` keyword + argument with an `ssl.SSLContext` object. For compatibility with older + versions of Python ``ssl_options`` may also be a dictionary of keyword + arguments for the `ssl.wrap_socket` method.:: + + ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) + ssl_ctx.load_cert_chain(os.path.join(data_dir, "mydomain.crt"), + os.path.join(data_dir, "mydomain.key")) + HTTPServer(application, ssl_options=ssl_ctx) + + `HTTPServer` initialization follows one of three patterns (the + initialization methods are defined on `tornado.tcpserver.TCPServer`): + + 1. `~tornado.tcpserver.TCPServer.listen`: simple single-process:: + + server = HTTPServer(app) + server.listen(8888) + IOLoop.current().start() + + In many cases, `tornado.web.Application.listen` can be used to avoid + the need to explicitly create the `HTTPServer`. + + 2. `~tornado.tcpserver.TCPServer.bind`/`~tornado.tcpserver.TCPServer.start`: + simple multi-process:: + + server = HTTPServer(app) + server.bind(8888) + server.start(0) # Forks multiple sub-processes + IOLoop.current().start() + + When using this interface, an `.IOLoop` must *not* be passed + to the `HTTPServer` constructor. `~.TCPServer.start` will always start + the server on the default singleton `.IOLoop`. + + 3. `~tornado.tcpserver.TCPServer.add_sockets`: advanced multi-process:: + + sockets = tornado.netutil.bind_sockets(8888) + tornado.process.fork_processes(0) + server = HTTPServer(app) + server.add_sockets(sockets) + IOLoop.current().start() + + The `~.TCPServer.add_sockets` interface is more complicated, + but it can be used with `tornado.process.fork_processes` to + give you more flexibility in when the fork happens. + `~.TCPServer.add_sockets` can also be used in single-process + servers if you want to create your listening sockets in some + way other than `tornado.netutil.bind_sockets`. + + .. versionchanged:: 4.0 + Added ``decompress_request``, ``chunk_size``, ``max_header_size``, + ``idle_connection_timeout``, ``body_timeout``, ``max_body_size`` + arguments. Added support for `.HTTPServerConnectionDelegate` + instances as ``request_callback``. + + .. versionchanged:: 4.1 + `.HTTPServerConnectionDelegate.start_request` is now called with + two arguments ``(server_conn, request_conn)`` (in accordance with the + documentation) instead of one ``(request_conn)``. + + .. versionchanged:: 4.2 + `HTTPServer` is now a subclass of `tornado.util.Configurable`. + + .. versionchanged:: 4.5 + Added the ``trusted_downstream`` argument. + + .. versionchanged:: 5.0 + The ``io_loop`` argument has been removed. + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + # Ignore args to __init__; real initialization belongs in + # initialize since we're Configurable. (there's something + # weird in initialization order between this class, + # Configurable, and TCPServer so we can't leave __init__ out + # completely) + pass + + def initialize( + self, + request_callback: Union[ + httputil.HTTPServerConnectionDelegate, + Callable[[httputil.HTTPServerRequest], None], + ], + no_keep_alive: bool = False, + xheaders: bool = False, + ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, + protocol: str = None, + decompress_request: bool = False, + chunk_size: int = None, + max_header_size: int = None, + idle_connection_timeout: float = None, + body_timeout: float = None, + max_body_size: int = None, + max_buffer_size: int = None, + trusted_downstream: List[str] = None, + ) -> None: + # This method's signature is not extracted with autodoc + # because we want its arguments to appear on the class + # constructor. When changing this signature, also update the + # copy in httpserver.rst. + self.request_callback = request_callback + self.xheaders = xheaders + self.protocol = protocol + self.conn_params = HTTP1ConnectionParameters( + decompress=decompress_request, + chunk_size=chunk_size, + max_header_size=max_header_size, + header_timeout=idle_connection_timeout or 3600, + max_body_size=max_body_size, + body_timeout=body_timeout, + no_keep_alive=no_keep_alive, + ) + TCPServer.__init__( + self, + ssl_options=ssl_options, + max_buffer_size=max_buffer_size, + read_chunk_size=chunk_size, + ) + self._connections = set() # type: Set[HTTP1ServerConnection] + self.trusted_downstream = trusted_downstream + + @classmethod + def configurable_base(cls) -> Type[Configurable]: + return HTTPServer + + @classmethod + def configurable_default(cls) -> Type[Configurable]: + return HTTPServer + + async def close_all_connections(self) -> None: + """Close all open connections and asynchronously wait for them to finish. + + This method is used in combination with `~.TCPServer.stop` to + support clean shutdowns (especially for unittests). Typical + usage would call ``stop()`` first to stop accepting new + connections, then ``await close_all_connections()`` to wait for + existing connections to finish. + + This method does not currently close open websocket connections. + + Note that this method is a coroutine and must be caled with ``await``. + + """ + while self._connections: + # Peek at an arbitrary element of the set + conn = next(iter(self._connections)) + await conn.close() + + def handle_stream(self, stream: iostream.IOStream, address: Tuple) -> None: + context = _HTTPRequestContext( + stream, address, self.protocol, self.trusted_downstream + ) + conn = HTTP1ServerConnection(stream, self.conn_params, context) + self._connections.add(conn) + conn.start_serving(self) + + def start_request( + self, server_conn: object, request_conn: httputil.HTTPConnection + ) -> httputil.HTTPMessageDelegate: + if isinstance(self.request_callback, httputil.HTTPServerConnectionDelegate): + delegate = self.request_callback.start_request(server_conn, request_conn) + else: + delegate = _CallableAdapter(self.request_callback, request_conn) + + if self.xheaders: + delegate = _ProxyAdapter(delegate, request_conn) + + return delegate + + def on_close(self, server_conn: object) -> None: + self._connections.remove(typing.cast(HTTP1ServerConnection, server_conn)) + + +class _CallableAdapter(httputil.HTTPMessageDelegate): + def __init__( + self, + request_callback: Callable[[httputil.HTTPServerRequest], None], + request_conn: httputil.HTTPConnection, + ) -> None: + self.connection = request_conn + self.request_callback = request_callback + self.request = None # type: Optional[httputil.HTTPServerRequest] + self.delegate = None + self._chunks = [] # type: List[bytes] + + def headers_received( + self, + start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], + headers: httputil.HTTPHeaders, + ) -> Optional[Awaitable[None]]: + self.request = httputil.HTTPServerRequest( + connection=self.connection, + start_line=typing.cast(httputil.RequestStartLine, start_line), + headers=headers, + ) + return None + + def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]: + self._chunks.append(chunk) + return None + + def finish(self) -> None: + assert self.request is not None + self.request.body = b"".join(self._chunks) + self.request._parse_body() + self.request_callback(self.request) + + def on_connection_close(self) -> None: + del self._chunks + + +class _HTTPRequestContext(object): + def __init__( + self, + stream: iostream.IOStream, + address: Tuple, + protocol: Optional[str], + trusted_downstream: List[str] = None, + ) -> None: + self.address = address + # Save the socket's address family now so we know how to + # interpret self.address even after the stream is closed + # and its socket attribute replaced with None. + if stream.socket is not None: + self.address_family = stream.socket.family + else: + self.address_family = None + # In HTTPServerRequest we want an IP, not a full socket address. + if ( + self.address_family in (socket.AF_INET, socket.AF_INET6) + and address is not None + ): + self.remote_ip = address[0] + else: + # Unix (or other) socket; fake the remote address. + self.remote_ip = "0.0.0.0" + if protocol: + self.protocol = protocol + elif isinstance(stream, iostream.SSLIOStream): + self.protocol = "https" + else: + self.protocol = "http" + self._orig_remote_ip = self.remote_ip + self._orig_protocol = self.protocol + self.trusted_downstream = set(trusted_downstream or []) + + def __str__(self) -> str: + if self.address_family in (socket.AF_INET, socket.AF_INET6): + return self.remote_ip + elif isinstance(self.address, bytes): + # Python 3 with the -bb option warns about str(bytes), + # so convert it explicitly. + # Unix socket addresses are str on mac but bytes on linux. + return native_str(self.address) + else: + return str(self.address) + + def _apply_xheaders(self, headers: httputil.HTTPHeaders) -> None: + """Rewrite the ``remote_ip`` and ``protocol`` fields.""" + # Squid uses X-Forwarded-For, others use X-Real-Ip + ip = headers.get("X-Forwarded-For", self.remote_ip) + # Skip trusted downstream hosts in X-Forwarded-For list + for ip in (cand.strip() for cand in reversed(ip.split(","))): + if ip not in self.trusted_downstream: + break + ip = headers.get("X-Real-Ip", ip) + if netutil.is_valid_ip(ip): + self.remote_ip = ip + # AWS uses X-Forwarded-Proto + proto_header = headers.get( + "X-Scheme", headers.get("X-Forwarded-Proto", self.protocol) + ) + if proto_header: + # use only the last proto entry if there is more than one + # TODO: support trusting mutiple layers of proxied protocol + proto_header = proto_header.split(",")[-1].strip() + if proto_header in ("http", "https"): + self.protocol = proto_header + + def _unapply_xheaders(self) -> None: + """Undo changes from `_apply_xheaders`. + + Xheaders are per-request so they should not leak to the next + request on the same connection. + """ + self.remote_ip = self._orig_remote_ip + self.protocol = self._orig_protocol + + +class _ProxyAdapter(httputil.HTTPMessageDelegate): + def __init__( + self, + delegate: httputil.HTTPMessageDelegate, + request_conn: httputil.HTTPConnection, + ) -> None: + self.connection = request_conn + self.delegate = delegate + + def headers_received( + self, + start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], + headers: httputil.HTTPHeaders, + ) -> Optional[Awaitable[None]]: + # TODO: either make context an official part of the + # HTTPConnection interface or figure out some other way to do this. + self.connection.context._apply_xheaders(headers) # type: ignore + return self.delegate.headers_received(start_line, headers) + + def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]: + return self.delegate.data_received(chunk) + + def finish(self) -> None: + self.delegate.finish() + self._cleanup() + + def on_connection_close(self) -> None: + self.delegate.on_connection_close() + self._cleanup() + + def _cleanup(self) -> None: + self.connection.context._unapply_xheaders() # type: ignore + + +HTTPRequest = httputil.HTTPServerRequest diff --git a/server/www/packages/packages-linux/x64/tornado/httputil.py b/server/www/packages/packages-linux/x64/tornado/httputil.py index 835327d..2f7f0f3 100644 --- a/server/www/packages/packages-linux/x64/tornado/httputil.py +++ b/server/www/packages/packages-linux/x64/tornado/httputil.py @@ -1,1144 +1,1144 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""HTTP utility code shared by clients and servers. - -This module also defines the `HTTPServerRequest` class which is exposed -via `tornado.web.RequestHandler.request`. -""" - -import calendar -import collections -import copy -import datetime -import email.utils -from http.client import responses -import http.cookies -import re -from ssl import SSLError -import time -import unicodedata -from urllib.parse import urlencode, urlparse, urlunparse, parse_qsl - -from tornado.escape import native_str, parse_qs_bytes, utf8 -from tornado.log import gen_log -from tornado.util import ObjectDict, unicode_type - - -# responses is unused in this file, but we re-export it to other files. -# Reference it so pyflakes doesn't complain. -responses - -import typing -from typing import ( - Tuple, - Iterable, - List, - Mapping, - Iterator, - Dict, - Union, - Optional, - Awaitable, - Generator, - AnyStr, -) - -if typing.TYPE_CHECKING: - from typing import Deque # noqa: F401 - from asyncio import Future # noqa: F401 - import unittest # noqa: F401 - - -# RFC 7230 section 3.5: a recipient MAY recognize a single LF as a line -# terminator and ignore any preceding CR. -_CRLF_RE = re.compile(r"\r?\n") - - -class _NormalizedHeaderCache(dict): - """Dynamic cached mapping of header names to Http-Header-Case. - - Implemented as a dict subclass so that cache hits are as fast as a - normal dict lookup, without the overhead of a python function - call. - - >>> normalized_headers = _NormalizedHeaderCache(10) - >>> normalized_headers["coNtent-TYPE"] - 'Content-Type' - """ - - def __init__(self, size: int) -> None: - super(_NormalizedHeaderCache, self).__init__() - self.size = size - self.queue = collections.deque() # type: Deque[str] - - def __missing__(self, key: str) -> str: - normalized = "-".join([w.capitalize() for w in key.split("-")]) - self[key] = normalized - self.queue.append(key) - if len(self.queue) > self.size: - # Limit the size of the cache. LRU would be better, but this - # simpler approach should be fine. In Python 2.7+ we could - # use OrderedDict (or in 3.2+, @functools.lru_cache). - old_key = self.queue.popleft() - del self[old_key] - return normalized - - -_normalized_headers = _NormalizedHeaderCache(1000) - - -class HTTPHeaders(collections.abc.MutableMapping): - """A dictionary that maintains ``Http-Header-Case`` for all keys. - - Supports multiple values per key via a pair of new methods, - `add()` and `get_list()`. The regular dictionary interface - returns a single value per key, with multiple values joined by a - comma. - - >>> h = HTTPHeaders({"content-type": "text/html"}) - >>> list(h.keys()) - ['Content-Type'] - >>> h["Content-Type"] - 'text/html' - - >>> h.add("Set-Cookie", "A=B") - >>> h.add("Set-Cookie", "C=D") - >>> h["set-cookie"] - 'A=B,C=D' - >>> h.get_list("set-cookie") - ['A=B', 'C=D'] - - >>> for (k,v) in sorted(h.get_all()): - ... print('%s: %s' % (k,v)) - ... - Content-Type: text/html - Set-Cookie: A=B - Set-Cookie: C=D - """ - - @typing.overload - def __init__(self, __arg: Mapping[str, List[str]]) -> None: - pass - - @typing.overload # noqa: F811 - def __init__(self, __arg: Mapping[str, str]) -> None: - pass - - @typing.overload # noqa: F811 - def __init__(self, *args: Tuple[str, str]) -> None: - pass - - @typing.overload # noqa: F811 - def __init__(self, **kwargs: str) -> None: - pass - - def __init__(self, *args: typing.Any, **kwargs: str) -> None: # noqa: F811 - self._dict = {} # type: typing.Dict[str, str] - self._as_list = {} # type: typing.Dict[str, typing.List[str]] - self._last_key = None - if len(args) == 1 and len(kwargs) == 0 and isinstance(args[0], HTTPHeaders): - # Copy constructor - for k, v in args[0].get_all(): - self.add(k, v) - else: - # Dict-style initialization - self.update(*args, **kwargs) - - # new public methods - - def add(self, name: str, value: str) -> None: - """Adds a new value for the given key.""" - norm_name = _normalized_headers[name] - self._last_key = norm_name - if norm_name in self: - self._dict[norm_name] = ( - native_str(self[norm_name]) + "," + native_str(value) - ) - self._as_list[norm_name].append(value) - else: - self[norm_name] = value - - def get_list(self, name: str) -> List[str]: - """Returns all values for the given header as a list.""" - norm_name = _normalized_headers[name] - return self._as_list.get(norm_name, []) - - def get_all(self) -> Iterable[Tuple[str, str]]: - """Returns an iterable of all (name, value) pairs. - - If a header has multiple values, multiple pairs will be - returned with the same name. - """ - for name, values in self._as_list.items(): - for value in values: - yield (name, value) - - def parse_line(self, line: str) -> None: - """Updates the dictionary with a single header line. - - >>> h = HTTPHeaders() - >>> h.parse_line("Content-Type: text/html") - >>> h.get('content-type') - 'text/html' - """ - if line[0].isspace(): - # continuation of a multi-line header - if self._last_key is None: - raise HTTPInputError("first header line cannot start with whitespace") - new_part = " " + line.lstrip() - self._as_list[self._last_key][-1] += new_part - self._dict[self._last_key] += new_part - else: - try: - name, value = line.split(":", 1) - except ValueError: - raise HTTPInputError("no colon in header line") - self.add(name, value.strip()) - - @classmethod - def parse(cls, headers: str) -> "HTTPHeaders": - """Returns a dictionary from HTTP header text. - - >>> h = HTTPHeaders.parse("Content-Type: text/html\\r\\nContent-Length: 42\\r\\n") - >>> sorted(h.items()) - [('Content-Length', '42'), ('Content-Type', 'text/html')] - - .. versionchanged:: 5.1 - - Raises `HTTPInputError` on malformed headers instead of a - mix of `KeyError`, and `ValueError`. - - """ - h = cls() - for line in _CRLF_RE.split(headers): - if line: - h.parse_line(line) - return h - - # MutableMapping abstract method implementations. - - def __setitem__(self, name: str, value: str) -> None: - norm_name = _normalized_headers[name] - self._dict[norm_name] = value - self._as_list[norm_name] = [value] - - def __getitem__(self, name: str) -> str: - return self._dict[_normalized_headers[name]] - - def __delitem__(self, name: str) -> None: - norm_name = _normalized_headers[name] - del self._dict[norm_name] - del self._as_list[norm_name] - - def __len__(self) -> int: - return len(self._dict) - - def __iter__(self) -> Iterator[typing.Any]: - return iter(self._dict) - - def copy(self) -> "HTTPHeaders": - # defined in dict but not in MutableMapping. - return HTTPHeaders(self) - - # Use our overridden copy method for the copy.copy module. - # This makes shallow copies one level deeper, but preserves - # the appearance that HTTPHeaders is a single container. - __copy__ = copy - - def __str__(self) -> str: - lines = [] - for name, value in self.get_all(): - lines.append("%s: %s\n" % (name, value)) - return "".join(lines) - - __unicode__ = __str__ - - -class HTTPServerRequest(object): - """A single HTTP request. - - All attributes are type `str` unless otherwise noted. - - .. attribute:: method - - HTTP request method, e.g. "GET" or "POST" - - .. attribute:: uri - - The requested uri. - - .. attribute:: path - - The path portion of `uri` - - .. attribute:: query - - The query portion of `uri` - - .. attribute:: version - - HTTP version specified in request, e.g. "HTTP/1.1" - - .. attribute:: headers - - `.HTTPHeaders` dictionary-like object for request headers. Acts like - a case-insensitive dictionary with additional methods for repeated - headers. - - .. attribute:: body - - Request body, if present, as a byte string. - - .. attribute:: remote_ip - - Client's IP address as a string. If ``HTTPServer.xheaders`` is set, - will pass along the real IP address provided by a load balancer - in the ``X-Real-Ip`` or ``X-Forwarded-For`` header. - - .. versionchanged:: 3.1 - The list format of ``X-Forwarded-For`` is now supported. - - .. attribute:: protocol - - The protocol used, either "http" or "https". If ``HTTPServer.xheaders`` - is set, will pass along the protocol used by a load balancer if - reported via an ``X-Scheme`` header. - - .. attribute:: host - - The requested hostname, usually taken from the ``Host`` header. - - .. attribute:: arguments - - GET/POST arguments are available in the arguments property, which - maps arguments names to lists of values (to support multiple values - for individual names). Names are of type `str`, while arguments - are byte strings. Note that this is different from - `.RequestHandler.get_argument`, which returns argument values as - unicode strings. - - .. attribute:: query_arguments - - Same format as ``arguments``, but contains only arguments extracted - from the query string. - - .. versionadded:: 3.2 - - .. attribute:: body_arguments - - Same format as ``arguments``, but contains only arguments extracted - from the request body. - - .. versionadded:: 3.2 - - .. attribute:: files - - File uploads are available in the files property, which maps file - names to lists of `.HTTPFile`. - - .. attribute:: connection - - An HTTP request is attached to a single HTTP connection, which can - be accessed through the "connection" attribute. Since connections - are typically kept open in HTTP/1.1, multiple requests can be handled - sequentially on a single connection. - - .. versionchanged:: 4.0 - Moved from ``tornado.httpserver.HTTPRequest``. - """ - - path = None # type: str - query = None # type: str - - # HACK: Used for stream_request_body - _body_future = None # type: Future[None] - - def __init__( - self, - method: str = None, - uri: str = None, - version: str = "HTTP/1.0", - headers: HTTPHeaders = None, - body: bytes = None, - host: str = None, - files: Dict[str, List["HTTPFile"]] = None, - connection: "HTTPConnection" = None, - start_line: "RequestStartLine" = None, - server_connection: object = None, - ) -> None: - if start_line is not None: - method, uri, version = start_line - self.method = method - self.uri = uri - self.version = version - self.headers = headers or HTTPHeaders() - self.body = body or b"" - - # set remote IP and protocol - context = getattr(connection, "context", None) - self.remote_ip = getattr(context, "remote_ip", None) - self.protocol = getattr(context, "protocol", "http") - - self.host = host or self.headers.get("Host") or "127.0.0.1" - self.host_name = split_host_and_port(self.host.lower())[0] - self.files = files or {} - self.connection = connection - self.server_connection = server_connection - self._start_time = time.time() - self._finish_time = None - - if uri is not None: - self.path, sep, self.query = uri.partition("?") - self.arguments = parse_qs_bytes(self.query, keep_blank_values=True) - self.query_arguments = copy.deepcopy(self.arguments) - self.body_arguments = {} # type: Dict[str, List[bytes]] - - @property - def cookies(self) -> Dict[str, http.cookies.Morsel]: - """A dictionary of ``http.cookies.Morsel`` objects.""" - if not hasattr(self, "_cookies"): - self._cookies = http.cookies.SimpleCookie() - if "Cookie" in self.headers: - try: - parsed = parse_cookie(self.headers["Cookie"]) - except Exception: - pass - else: - for k, v in parsed.items(): - try: - self._cookies[k] = v - except Exception: - # SimpleCookie imposes some restrictions on keys; - # parse_cookie does not. Discard any cookies - # with disallowed keys. - pass - return self._cookies - - def full_url(self) -> str: - """Reconstructs the full URL for this request.""" - return self.protocol + "://" + self.host + self.uri - - def request_time(self) -> float: - """Returns the amount of time it took for this request to execute.""" - if self._finish_time is None: - return time.time() - self._start_time - else: - return self._finish_time - self._start_time - - def get_ssl_certificate( - self, binary_form: bool = False - ) -> Union[None, Dict, bytes]: - """Returns the client's SSL certificate, if any. - - To use client certificates, the HTTPServer's - `ssl.SSLContext.verify_mode` field must be set, e.g.:: - - ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) - ssl_ctx.load_cert_chain("foo.crt", "foo.key") - ssl_ctx.load_verify_locations("cacerts.pem") - ssl_ctx.verify_mode = ssl.CERT_REQUIRED - server = HTTPServer(app, ssl_options=ssl_ctx) - - By default, the return value is a dictionary (or None, if no - client certificate is present). If ``binary_form`` is true, a - DER-encoded form of the certificate is returned instead. See - SSLSocket.getpeercert() in the standard library for more - details. - http://docs.python.org/library/ssl.html#sslsocket-objects - """ - try: - if self.connection is None: - return None - # TODO: add a method to HTTPConnection for this so it can work with HTTP/2 - return self.connection.stream.socket.getpeercert( # type: ignore - binary_form=binary_form - ) - except SSLError: - return None - - def _parse_body(self) -> None: - parse_body_arguments( - self.headers.get("Content-Type", ""), - self.body, - self.body_arguments, - self.files, - self.headers, - ) - - for k, v in self.body_arguments.items(): - self.arguments.setdefault(k, []).extend(v) - - def __repr__(self) -> str: - attrs = ("protocol", "host", "method", "uri", "version", "remote_ip") - args = ", ".join(["%s=%r" % (n, getattr(self, n)) for n in attrs]) - return "%s(%s)" % (self.__class__.__name__, args) - - -class HTTPInputError(Exception): - """Exception class for malformed HTTP requests or responses - from remote sources. - - .. versionadded:: 4.0 - """ - - pass - - -class HTTPOutputError(Exception): - """Exception class for errors in HTTP output. - - .. versionadded:: 4.0 - """ - - pass - - -class HTTPServerConnectionDelegate(object): - """Implement this interface to handle requests from `.HTTPServer`. - - .. versionadded:: 4.0 - """ - - def start_request( - self, server_conn: object, request_conn: "HTTPConnection" - ) -> "HTTPMessageDelegate": - """This method is called by the server when a new request has started. - - :arg server_conn: is an opaque object representing the long-lived - (e.g. tcp-level) connection. - :arg request_conn: is a `.HTTPConnection` object for a single - request/response exchange. - - This method should return a `.HTTPMessageDelegate`. - """ - raise NotImplementedError() - - def on_close(self, server_conn: object) -> None: - """This method is called when a connection has been closed. - - :arg server_conn: is a server connection that has previously been - passed to ``start_request``. - """ - pass - - -class HTTPMessageDelegate(object): - """Implement this interface to handle an HTTP request or response. - - .. versionadded:: 4.0 - """ - - # TODO: genericize this class to avoid exposing the Union. - def headers_received( - self, - start_line: Union["RequestStartLine", "ResponseStartLine"], - headers: HTTPHeaders, - ) -> Optional[Awaitable[None]]: - """Called when the HTTP headers have been received and parsed. - - :arg start_line: a `.RequestStartLine` or `.ResponseStartLine` - depending on whether this is a client or server message. - :arg headers: a `.HTTPHeaders` instance. - - Some `.HTTPConnection` methods can only be called during - ``headers_received``. - - May return a `.Future`; if it does the body will not be read - until it is done. - """ - pass - - def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]: - """Called when a chunk of data has been received. - - May return a `.Future` for flow control. - """ - pass - - def finish(self) -> None: - """Called after the last chunk of data has been received.""" - pass - - def on_connection_close(self) -> None: - """Called if the connection is closed without finishing the request. - - If ``headers_received`` is called, either ``finish`` or - ``on_connection_close`` will be called, but not both. - """ - pass - - -class HTTPConnection(object): - """Applications use this interface to write their responses. - - .. versionadded:: 4.0 - """ - - def write_headers( - self, - start_line: Union["RequestStartLine", "ResponseStartLine"], - headers: HTTPHeaders, - chunk: bytes = None, - ) -> "Future[None]": - """Write an HTTP header block. - - :arg start_line: a `.RequestStartLine` or `.ResponseStartLine`. - :arg headers: a `.HTTPHeaders` instance. - :arg chunk: the first (optional) chunk of data. This is an optimization - so that small responses can be written in the same call as their - headers. - - The ``version`` field of ``start_line`` is ignored. - - Returns a future for flow control. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. - """ - raise NotImplementedError() - - def write(self, chunk: bytes) -> "Future[None]": - """Writes a chunk of body data. - - Returns a future for flow control. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. - """ - raise NotImplementedError() - - def finish(self) -> None: - """Indicates that the last body data has been written. - """ - raise NotImplementedError() - - -def url_concat( - url: str, - args: Union[ - None, Dict[str, str], List[Tuple[str, str]], Tuple[Tuple[str, str], ...] - ], -) -> str: - """Concatenate url and arguments regardless of whether - url has existing query parameters. - - ``args`` may be either a dictionary or a list of key-value pairs - (the latter allows for multiple values with the same key. - - >>> url_concat("http://example.com/foo", dict(c="d")) - 'http://example.com/foo?c=d' - >>> url_concat("http://example.com/foo?a=b", dict(c="d")) - 'http://example.com/foo?a=b&c=d' - >>> url_concat("http://example.com/foo?a=b", [("c", "d"), ("c", "d2")]) - 'http://example.com/foo?a=b&c=d&c=d2' - """ - if args is None: - return url - parsed_url = urlparse(url) - if isinstance(args, dict): - parsed_query = parse_qsl(parsed_url.query, keep_blank_values=True) - parsed_query.extend(args.items()) - elif isinstance(args, list) or isinstance(args, tuple): - parsed_query = parse_qsl(parsed_url.query, keep_blank_values=True) - parsed_query.extend(args) - else: - err = "'args' parameter should be dict, list or tuple. Not {0}".format( - type(args) - ) - raise TypeError(err) - final_query = urlencode(parsed_query) - url = urlunparse( - ( - parsed_url[0], - parsed_url[1], - parsed_url[2], - parsed_url[3], - final_query, - parsed_url[5], - ) - ) - return url - - -class HTTPFile(ObjectDict): - """Represents a file uploaded via a form. - - For backwards compatibility, its instance attributes are also - accessible as dictionary keys. - - * ``filename`` - * ``body`` - * ``content_type`` - """ - - pass - - -def _parse_request_range( - range_header: str -) -> Optional[Tuple[Optional[int], Optional[int]]]: - """Parses a Range header. - - Returns either ``None`` or tuple ``(start, end)``. - Note that while the HTTP headers use inclusive byte positions, - this method returns indexes suitable for use in slices. - - >>> start, end = _parse_request_range("bytes=1-2") - >>> start, end - (1, 3) - >>> [0, 1, 2, 3, 4][start:end] - [1, 2] - >>> _parse_request_range("bytes=6-") - (6, None) - >>> _parse_request_range("bytes=-6") - (-6, None) - >>> _parse_request_range("bytes=-0") - (None, 0) - >>> _parse_request_range("bytes=") - (None, None) - >>> _parse_request_range("foo=42") - >>> _parse_request_range("bytes=1-2,6-10") - - Note: only supports one range (ex, ``bytes=1-2,6-10`` is not allowed). - - See [0] for the details of the range header. - - [0]: http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p5-range-latest.html#byte.ranges - """ - unit, _, value = range_header.partition("=") - unit, value = unit.strip(), value.strip() - if unit != "bytes": - return None - start_b, _, end_b = value.partition("-") - try: - start = _int_or_none(start_b) - end = _int_or_none(end_b) - except ValueError: - return None - if end is not None: - if start is None: - if end != 0: - start = -end - end = None - else: - end += 1 - return (start, end) - - -def _get_content_range(start: Optional[int], end: Optional[int], total: int) -> str: - """Returns a suitable Content-Range header: - - >>> print(_get_content_range(None, 1, 4)) - bytes 0-0/4 - >>> print(_get_content_range(1, 3, 4)) - bytes 1-2/4 - >>> print(_get_content_range(None, None, 4)) - bytes 0-3/4 - """ - start = start or 0 - end = (end or total) - 1 - return "bytes %s-%s/%s" % (start, end, total) - - -def _int_or_none(val: str) -> Optional[int]: - val = val.strip() - if val == "": - return None - return int(val) - - -def parse_body_arguments( - content_type: str, - body: bytes, - arguments: Dict[str, List[bytes]], - files: Dict[str, List[HTTPFile]], - headers: HTTPHeaders = None, -) -> None: - """Parses a form request body. - - Supports ``application/x-www-form-urlencoded`` and - ``multipart/form-data``. The ``content_type`` parameter should be - a string and ``body`` should be a byte string. The ``arguments`` - and ``files`` parameters are dictionaries that will be updated - with the parsed contents. - """ - if content_type.startswith("application/x-www-form-urlencoded"): - if headers and "Content-Encoding" in headers: - gen_log.warning( - "Unsupported Content-Encoding: %s", headers["Content-Encoding"] - ) - return - try: - uri_arguments = parse_qs_bytes(native_str(body), keep_blank_values=True) - except Exception as e: - gen_log.warning("Invalid x-www-form-urlencoded body: %s", e) - uri_arguments = {} - for name, values in uri_arguments.items(): - if values: - arguments.setdefault(name, []).extend(values) - elif content_type.startswith("multipart/form-data"): - if headers and "Content-Encoding" in headers: - gen_log.warning( - "Unsupported Content-Encoding: %s", headers["Content-Encoding"] - ) - return - try: - fields = content_type.split(";") - for field in fields: - k, sep, v = field.strip().partition("=") - if k == "boundary" and v: - parse_multipart_form_data(utf8(v), body, arguments, files) - break - else: - raise ValueError("multipart boundary not found") - except Exception as e: - gen_log.warning("Invalid multipart/form-data: %s", e) - - -def parse_multipart_form_data( - boundary: bytes, - data: bytes, - arguments: Dict[str, List[bytes]], - files: Dict[str, List[HTTPFile]], -) -> None: - """Parses a ``multipart/form-data`` body. - - The ``boundary`` and ``data`` parameters are both byte strings. - The dictionaries given in the arguments and files parameters - will be updated with the contents of the body. - - .. versionchanged:: 5.1 - - Now recognizes non-ASCII filenames in RFC 2231/5987 - (``filename*=``) format. - """ - # The standard allows for the boundary to be quoted in the header, - # although it's rare (it happens at least for google app engine - # xmpp). I think we're also supposed to handle backslash-escapes - # here but I'll save that until we see a client that uses them - # in the wild. - if boundary.startswith(b'"') and boundary.endswith(b'"'): - boundary = boundary[1:-1] - final_boundary_index = data.rfind(b"--" + boundary + b"--") - if final_boundary_index == -1: - gen_log.warning("Invalid multipart/form-data: no final boundary") - return - parts = data[:final_boundary_index].split(b"--" + boundary + b"\r\n") - for part in parts: - if not part: - continue - eoh = part.find(b"\r\n\r\n") - if eoh == -1: - gen_log.warning("multipart/form-data missing headers") - continue - headers = HTTPHeaders.parse(part[:eoh].decode("utf-8")) - disp_header = headers.get("Content-Disposition", "") - disposition, disp_params = _parse_header(disp_header) - if disposition != "form-data" or not part.endswith(b"\r\n"): - gen_log.warning("Invalid multipart/form-data") - continue - value = part[eoh + 4 : -2] - if not disp_params.get("name"): - gen_log.warning("multipart/form-data value missing name") - continue - name = disp_params["name"] - if disp_params.get("filename"): - ctype = headers.get("Content-Type", "application/unknown") - files.setdefault(name, []).append( - HTTPFile( - filename=disp_params["filename"], body=value, content_type=ctype - ) - ) - else: - arguments.setdefault(name, []).append(value) - - -def format_timestamp( - ts: Union[int, float, tuple, time.struct_time, datetime.datetime] -) -> str: - """Formats a timestamp in the format used by HTTP. - - The argument may be a numeric timestamp as returned by `time.time`, - a time tuple as returned by `time.gmtime`, or a `datetime.datetime` - object. - - >>> format_timestamp(1359312200) - 'Sun, 27 Jan 2013 18:43:20 GMT' - """ - if isinstance(ts, (int, float)): - time_num = ts - elif isinstance(ts, (tuple, time.struct_time)): - time_num = calendar.timegm(ts) - elif isinstance(ts, datetime.datetime): - time_num = calendar.timegm(ts.utctimetuple()) - else: - raise TypeError("unknown timestamp type: %r" % ts) - return email.utils.formatdate(time_num, usegmt=True) - - -RequestStartLine = collections.namedtuple( - "RequestStartLine", ["method", "path", "version"] -) - - -def parse_request_start_line(line: str) -> RequestStartLine: - """Returns a (method, path, version) tuple for an HTTP 1.x request line. - - The response is a `collections.namedtuple`. - - >>> parse_request_start_line("GET /foo HTTP/1.1") - RequestStartLine(method='GET', path='/foo', version='HTTP/1.1') - """ - try: - method, path, version = line.split(" ") - except ValueError: - # https://tools.ietf.org/html/rfc7230#section-3.1.1 - # invalid request-line SHOULD respond with a 400 (Bad Request) - raise HTTPInputError("Malformed HTTP request line") - if not re.match(r"^HTTP/1\.[0-9]$", version): - raise HTTPInputError( - "Malformed HTTP version in HTTP Request-Line: %r" % version - ) - return RequestStartLine(method, path, version) - - -ResponseStartLine = collections.namedtuple( - "ResponseStartLine", ["version", "code", "reason"] -) - - -def parse_response_start_line(line: str) -> ResponseStartLine: - """Returns a (version, code, reason) tuple for an HTTP 1.x response line. - - The response is a `collections.namedtuple`. - - >>> parse_response_start_line("HTTP/1.1 200 OK") - ResponseStartLine(version='HTTP/1.1', code=200, reason='OK') - """ - line = native_str(line) - match = re.match("(HTTP/1.[0-9]) ([0-9]+) ([^\r]*)", line) - if not match: - raise HTTPInputError("Error parsing response start line") - return ResponseStartLine(match.group(1), int(match.group(2)), match.group(3)) - - -# _parseparam and _parse_header are copied and modified from python2.7's cgi.py -# The original 2.7 version of this code did not correctly support some -# combinations of semicolons and double quotes. -# It has also been modified to support valueless parameters as seen in -# websocket extension negotiations, and to support non-ascii values in -# RFC 2231/5987 format. - - -def _parseparam(s: str) -> Generator[str, None, None]: - while s[:1] == ";": - s = s[1:] - end = s.find(";") - while end > 0 and (s.count('"', 0, end) - s.count('\\"', 0, end)) % 2: - end = s.find(";", end + 1) - if end < 0: - end = len(s) - f = s[:end] - yield f.strip() - s = s[end:] - - -def _parse_header(line: str) -> Tuple[str, Dict[str, str]]: - r"""Parse a Content-type like header. - - Return the main content-type and a dictionary of options. - - >>> d = "form-data; foo=\"b\\\\a\\\"r\"; file*=utf-8''T%C3%A4st" - >>> ct, d = _parse_header(d) - >>> ct - 'form-data' - >>> d['file'] == r'T\u00e4st'.encode('ascii').decode('unicode_escape') - True - >>> d['foo'] - 'b\\a"r' - """ - parts = _parseparam(";" + line) - key = next(parts) - # decode_params treats first argument special, but we already stripped key - params = [("Dummy", "value")] - for p in parts: - i = p.find("=") - if i >= 0: - name = p[:i].strip().lower() - value = p[i + 1 :].strip() - params.append((name, native_str(value))) - decoded_params = email.utils.decode_params(params) - decoded_params.pop(0) # get rid of the dummy again - pdict = {} - for name, decoded_value in decoded_params: - value = email.utils.collapse_rfc2231_value(decoded_value) - if len(value) >= 2 and value[0] == '"' and value[-1] == '"': - value = value[1:-1] - pdict[name] = value - return key, pdict - - -def _encode_header(key: str, pdict: Dict[str, str]) -> str: - """Inverse of _parse_header. - - >>> _encode_header('permessage-deflate', - ... {'client_max_window_bits': 15, 'client_no_context_takeover': None}) - 'permessage-deflate; client_max_window_bits=15; client_no_context_takeover' - """ - if not pdict: - return key - out = [key] - # Sort the parameters just to make it easy to test. - for k, v in sorted(pdict.items()): - if v is None: - out.append(k) - else: - # TODO: quote if necessary. - out.append("%s=%s" % (k, v)) - return "; ".join(out) - - -def encode_username_password( - username: Union[str, bytes], password: Union[str, bytes] -) -> bytes: - """Encodes a username/password pair in the format used by HTTP auth. - - The return value is a byte string in the form ``username:password``. - - .. versionadded:: 5.1 - """ - if isinstance(username, unicode_type): - username = unicodedata.normalize("NFC", username) - if isinstance(password, unicode_type): - password = unicodedata.normalize("NFC", password) - return utf8(username) + b":" + utf8(password) - - -def doctests(): - # type: () -> unittest.TestSuite - import doctest - - return doctest.DocTestSuite() - - -def split_host_and_port(netloc: str) -> Tuple[str, Optional[int]]: - """Returns ``(host, port)`` tuple from ``netloc``. - - Returned ``port`` will be ``None`` if not present. - - .. versionadded:: 4.1 - """ - match = re.match(r"^(.+):(\d+)$", netloc) - if match: - host = match.group(1) - port = int(match.group(2)) # type: Optional[int] - else: - host = netloc - port = None - return (host, port) - - -def qs_to_qsl(qs: Dict[str, List[AnyStr]]) -> Iterable[Tuple[str, AnyStr]]: - """Generator converting a result of ``parse_qs`` back to name-value pairs. - - .. versionadded:: 5.0 - """ - for k, vs in qs.items(): - for v in vs: - yield (k, v) - - -_OctalPatt = re.compile(r"\\[0-3][0-7][0-7]") -_QuotePatt = re.compile(r"[\\].") -_nulljoin = "".join - - -def _unquote_cookie(s: str) -> str: - """Handle double quotes and escaping in cookie values. - - This method is copied verbatim from the Python 3.5 standard - library (http.cookies._unquote) so we don't have to depend on - non-public interfaces. - """ - # If there aren't any doublequotes, - # then there can't be any special characters. See RFC 2109. - if s is None or len(s) < 2: - return s - if s[0] != '"' or s[-1] != '"': - return s - - # We have to assume that we must decode this string. - # Down to work. - - # Remove the "s - s = s[1:-1] - - # Check for special sequences. Examples: - # \012 --> \n - # \" --> " - # - i = 0 - n = len(s) - res = [] - while 0 <= i < n: - o_match = _OctalPatt.search(s, i) - q_match = _QuotePatt.search(s, i) - if not o_match and not q_match: # Neither matched - res.append(s[i:]) - break - # else: - j = k = -1 - if o_match: - j = o_match.start(0) - if q_match: - k = q_match.start(0) - if q_match and (not o_match or k < j): # QuotePatt matched - res.append(s[i:k]) - res.append(s[k + 1]) - i = k + 2 - else: # OctalPatt matched - res.append(s[i:j]) - res.append(chr(int(s[j + 1 : j + 4], 8))) - i = j + 4 - return _nulljoin(res) - - -def parse_cookie(cookie: str) -> Dict[str, str]: - """Parse a ``Cookie`` HTTP header into a dict of name/value pairs. - - This function attempts to mimic browser cookie parsing behavior; - it specifically does not follow any of the cookie-related RFCs - (because browsers don't either). - - The algorithm used is identical to that used by Django version 1.9.10. - - .. versionadded:: 4.4.2 - """ - cookiedict = {} - for chunk in cookie.split(str(";")): - if str("=") in chunk: - key, val = chunk.split(str("="), 1) - else: - # Assume an empty name per - # https://bugzilla.mozilla.org/show_bug.cgi?id=169091 - key, val = str(""), chunk - key, val = key.strip(), val.strip() - if key or val: - # unquote using Python's algorithm. - cookiedict[key] = _unquote_cookie(val) - return cookiedict +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""HTTP utility code shared by clients and servers. + +This module also defines the `HTTPServerRequest` class which is exposed +via `tornado.web.RequestHandler.request`. +""" + +import calendar +import collections +import copy +import datetime +import email.utils +from http.client import responses +import http.cookies +import re +from ssl import SSLError +import time +import unicodedata +from urllib.parse import urlencode, urlparse, urlunparse, parse_qsl + +from tornado.escape import native_str, parse_qs_bytes, utf8 +from tornado.log import gen_log +from tornado.util import ObjectDict, unicode_type + + +# responses is unused in this file, but we re-export it to other files. +# Reference it so pyflakes doesn't complain. +responses + +import typing +from typing import ( + Tuple, + Iterable, + List, + Mapping, + Iterator, + Dict, + Union, + Optional, + Awaitable, + Generator, + AnyStr, +) + +if typing.TYPE_CHECKING: + from typing import Deque # noqa: F401 + from asyncio import Future # noqa: F401 + import unittest # noqa: F401 + + +# RFC 7230 section 3.5: a recipient MAY recognize a single LF as a line +# terminator and ignore any preceding CR. +_CRLF_RE = re.compile(r"\r?\n") + + +class _NormalizedHeaderCache(dict): + """Dynamic cached mapping of header names to Http-Header-Case. + + Implemented as a dict subclass so that cache hits are as fast as a + normal dict lookup, without the overhead of a python function + call. + + >>> normalized_headers = _NormalizedHeaderCache(10) + >>> normalized_headers["coNtent-TYPE"] + 'Content-Type' + """ + + def __init__(self, size: int) -> None: + super(_NormalizedHeaderCache, self).__init__() + self.size = size + self.queue = collections.deque() # type: Deque[str] + + def __missing__(self, key: str) -> str: + normalized = "-".join([w.capitalize() for w in key.split("-")]) + self[key] = normalized + self.queue.append(key) + if len(self.queue) > self.size: + # Limit the size of the cache. LRU would be better, but this + # simpler approach should be fine. In Python 2.7+ we could + # use OrderedDict (or in 3.2+, @functools.lru_cache). + old_key = self.queue.popleft() + del self[old_key] + return normalized + + +_normalized_headers = _NormalizedHeaderCache(1000) + + +class HTTPHeaders(collections.abc.MutableMapping): + """A dictionary that maintains ``Http-Header-Case`` for all keys. + + Supports multiple values per key via a pair of new methods, + `add()` and `get_list()`. The regular dictionary interface + returns a single value per key, with multiple values joined by a + comma. + + >>> h = HTTPHeaders({"content-type": "text/html"}) + >>> list(h.keys()) + ['Content-Type'] + >>> h["Content-Type"] + 'text/html' + + >>> h.add("Set-Cookie", "A=B") + >>> h.add("Set-Cookie", "C=D") + >>> h["set-cookie"] + 'A=B,C=D' + >>> h.get_list("set-cookie") + ['A=B', 'C=D'] + + >>> for (k,v) in sorted(h.get_all()): + ... print('%s: %s' % (k,v)) + ... + Content-Type: text/html + Set-Cookie: A=B + Set-Cookie: C=D + """ + + @typing.overload + def __init__(self, __arg: Mapping[str, List[str]]) -> None: + pass + + @typing.overload # noqa: F811 + def __init__(self, __arg: Mapping[str, str]) -> None: + pass + + @typing.overload # noqa: F811 + def __init__(self, *args: Tuple[str, str]) -> None: + pass + + @typing.overload # noqa: F811 + def __init__(self, **kwargs: str) -> None: + pass + + def __init__(self, *args: typing.Any, **kwargs: str) -> None: # noqa: F811 + self._dict = {} # type: typing.Dict[str, str] + self._as_list = {} # type: typing.Dict[str, typing.List[str]] + self._last_key = None + if len(args) == 1 and len(kwargs) == 0 and isinstance(args[0], HTTPHeaders): + # Copy constructor + for k, v in args[0].get_all(): + self.add(k, v) + else: + # Dict-style initialization + self.update(*args, **kwargs) + + # new public methods + + def add(self, name: str, value: str) -> None: + """Adds a new value for the given key.""" + norm_name = _normalized_headers[name] + self._last_key = norm_name + if norm_name in self: + self._dict[norm_name] = ( + native_str(self[norm_name]) + "," + native_str(value) + ) + self._as_list[norm_name].append(value) + else: + self[norm_name] = value + + def get_list(self, name: str) -> List[str]: + """Returns all values for the given header as a list.""" + norm_name = _normalized_headers[name] + return self._as_list.get(norm_name, []) + + def get_all(self) -> Iterable[Tuple[str, str]]: + """Returns an iterable of all (name, value) pairs. + + If a header has multiple values, multiple pairs will be + returned with the same name. + """ + for name, values in self._as_list.items(): + for value in values: + yield (name, value) + + def parse_line(self, line: str) -> None: + """Updates the dictionary with a single header line. + + >>> h = HTTPHeaders() + >>> h.parse_line("Content-Type: text/html") + >>> h.get('content-type') + 'text/html' + """ + if line[0].isspace(): + # continuation of a multi-line header + if self._last_key is None: + raise HTTPInputError("first header line cannot start with whitespace") + new_part = " " + line.lstrip() + self._as_list[self._last_key][-1] += new_part + self._dict[self._last_key] += new_part + else: + try: + name, value = line.split(":", 1) + except ValueError: + raise HTTPInputError("no colon in header line") + self.add(name, value.strip()) + + @classmethod + def parse(cls, headers: str) -> "HTTPHeaders": + """Returns a dictionary from HTTP header text. + + >>> h = HTTPHeaders.parse("Content-Type: text/html\\r\\nContent-Length: 42\\r\\n") + >>> sorted(h.items()) + [('Content-Length', '42'), ('Content-Type', 'text/html')] + + .. versionchanged:: 5.1 + + Raises `HTTPInputError` on malformed headers instead of a + mix of `KeyError`, and `ValueError`. + + """ + h = cls() + for line in _CRLF_RE.split(headers): + if line: + h.parse_line(line) + return h + + # MutableMapping abstract method implementations. + + def __setitem__(self, name: str, value: str) -> None: + norm_name = _normalized_headers[name] + self._dict[norm_name] = value + self._as_list[norm_name] = [value] + + def __getitem__(self, name: str) -> str: + return self._dict[_normalized_headers[name]] + + def __delitem__(self, name: str) -> None: + norm_name = _normalized_headers[name] + del self._dict[norm_name] + del self._as_list[norm_name] + + def __len__(self) -> int: + return len(self._dict) + + def __iter__(self) -> Iterator[typing.Any]: + return iter(self._dict) + + def copy(self) -> "HTTPHeaders": + # defined in dict but not in MutableMapping. + return HTTPHeaders(self) + + # Use our overridden copy method for the copy.copy module. + # This makes shallow copies one level deeper, but preserves + # the appearance that HTTPHeaders is a single container. + __copy__ = copy + + def __str__(self) -> str: + lines = [] + for name, value in self.get_all(): + lines.append("%s: %s\n" % (name, value)) + return "".join(lines) + + __unicode__ = __str__ + + +class HTTPServerRequest(object): + """A single HTTP request. + + All attributes are type `str` unless otherwise noted. + + .. attribute:: method + + HTTP request method, e.g. "GET" or "POST" + + .. attribute:: uri + + The requested uri. + + .. attribute:: path + + The path portion of `uri` + + .. attribute:: query + + The query portion of `uri` + + .. attribute:: version + + HTTP version specified in request, e.g. "HTTP/1.1" + + .. attribute:: headers + + `.HTTPHeaders` dictionary-like object for request headers. Acts like + a case-insensitive dictionary with additional methods for repeated + headers. + + .. attribute:: body + + Request body, if present, as a byte string. + + .. attribute:: remote_ip + + Client's IP address as a string. If ``HTTPServer.xheaders`` is set, + will pass along the real IP address provided by a load balancer + in the ``X-Real-Ip`` or ``X-Forwarded-For`` header. + + .. versionchanged:: 3.1 + The list format of ``X-Forwarded-For`` is now supported. + + .. attribute:: protocol + + The protocol used, either "http" or "https". If ``HTTPServer.xheaders`` + is set, will pass along the protocol used by a load balancer if + reported via an ``X-Scheme`` header. + + .. attribute:: host + + The requested hostname, usually taken from the ``Host`` header. + + .. attribute:: arguments + + GET/POST arguments are available in the arguments property, which + maps arguments names to lists of values (to support multiple values + for individual names). Names are of type `str`, while arguments + are byte strings. Note that this is different from + `.RequestHandler.get_argument`, which returns argument values as + unicode strings. + + .. attribute:: query_arguments + + Same format as ``arguments``, but contains only arguments extracted + from the query string. + + .. versionadded:: 3.2 + + .. attribute:: body_arguments + + Same format as ``arguments``, but contains only arguments extracted + from the request body. + + .. versionadded:: 3.2 + + .. attribute:: files + + File uploads are available in the files property, which maps file + names to lists of `.HTTPFile`. + + .. attribute:: connection + + An HTTP request is attached to a single HTTP connection, which can + be accessed through the "connection" attribute. Since connections + are typically kept open in HTTP/1.1, multiple requests can be handled + sequentially on a single connection. + + .. versionchanged:: 4.0 + Moved from ``tornado.httpserver.HTTPRequest``. + """ + + path = None # type: str + query = None # type: str + + # HACK: Used for stream_request_body + _body_future = None # type: Future[None] + + def __init__( + self, + method: str = None, + uri: str = None, + version: str = "HTTP/1.0", + headers: HTTPHeaders = None, + body: bytes = None, + host: str = None, + files: Dict[str, List["HTTPFile"]] = None, + connection: "HTTPConnection" = None, + start_line: "RequestStartLine" = None, + server_connection: object = None, + ) -> None: + if start_line is not None: + method, uri, version = start_line + self.method = method + self.uri = uri + self.version = version + self.headers = headers or HTTPHeaders() + self.body = body or b"" + + # set remote IP and protocol + context = getattr(connection, "context", None) + self.remote_ip = getattr(context, "remote_ip", None) + self.protocol = getattr(context, "protocol", "http") + + self.host = host or self.headers.get("Host") or "127.0.0.1" + self.host_name = split_host_and_port(self.host.lower())[0] + self.files = files or {} + self.connection = connection + self.server_connection = server_connection + self._start_time = time.time() + self._finish_time = None + + if uri is not None: + self.path, sep, self.query = uri.partition("?") + self.arguments = parse_qs_bytes(self.query, keep_blank_values=True) + self.query_arguments = copy.deepcopy(self.arguments) + self.body_arguments = {} # type: Dict[str, List[bytes]] + + @property + def cookies(self) -> Dict[str, http.cookies.Morsel]: + """A dictionary of ``http.cookies.Morsel`` objects.""" + if not hasattr(self, "_cookies"): + self._cookies = http.cookies.SimpleCookie() + if "Cookie" in self.headers: + try: + parsed = parse_cookie(self.headers["Cookie"]) + except Exception: + pass + else: + for k, v in parsed.items(): + try: + self._cookies[k] = v + except Exception: + # SimpleCookie imposes some restrictions on keys; + # parse_cookie does not. Discard any cookies + # with disallowed keys. + pass + return self._cookies + + def full_url(self) -> str: + """Reconstructs the full URL for this request.""" + return self.protocol + "://" + self.host + self.uri + + def request_time(self) -> float: + """Returns the amount of time it took for this request to execute.""" + if self._finish_time is None: + return time.time() - self._start_time + else: + return self._finish_time - self._start_time + + def get_ssl_certificate( + self, binary_form: bool = False + ) -> Union[None, Dict, bytes]: + """Returns the client's SSL certificate, if any. + + To use client certificates, the HTTPServer's + `ssl.SSLContext.verify_mode` field must be set, e.g.:: + + ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) + ssl_ctx.load_cert_chain("foo.crt", "foo.key") + ssl_ctx.load_verify_locations("cacerts.pem") + ssl_ctx.verify_mode = ssl.CERT_REQUIRED + server = HTTPServer(app, ssl_options=ssl_ctx) + + By default, the return value is a dictionary (or None, if no + client certificate is present). If ``binary_form`` is true, a + DER-encoded form of the certificate is returned instead. See + SSLSocket.getpeercert() in the standard library for more + details. + http://docs.python.org/library/ssl.html#sslsocket-objects + """ + try: + if self.connection is None: + return None + # TODO: add a method to HTTPConnection for this so it can work with HTTP/2 + return self.connection.stream.socket.getpeercert( # type: ignore + binary_form=binary_form + ) + except SSLError: + return None + + def _parse_body(self) -> None: + parse_body_arguments( + self.headers.get("Content-Type", ""), + self.body, + self.body_arguments, + self.files, + self.headers, + ) + + for k, v in self.body_arguments.items(): + self.arguments.setdefault(k, []).extend(v) + + def __repr__(self) -> str: + attrs = ("protocol", "host", "method", "uri", "version", "remote_ip") + args = ", ".join(["%s=%r" % (n, getattr(self, n)) for n in attrs]) + return "%s(%s)" % (self.__class__.__name__, args) + + +class HTTPInputError(Exception): + """Exception class for malformed HTTP requests or responses + from remote sources. + + .. versionadded:: 4.0 + """ + + pass + + +class HTTPOutputError(Exception): + """Exception class for errors in HTTP output. + + .. versionadded:: 4.0 + """ + + pass + + +class HTTPServerConnectionDelegate(object): + """Implement this interface to handle requests from `.HTTPServer`. + + .. versionadded:: 4.0 + """ + + def start_request( + self, server_conn: object, request_conn: "HTTPConnection" + ) -> "HTTPMessageDelegate": + """This method is called by the server when a new request has started. + + :arg server_conn: is an opaque object representing the long-lived + (e.g. tcp-level) connection. + :arg request_conn: is a `.HTTPConnection` object for a single + request/response exchange. + + This method should return a `.HTTPMessageDelegate`. + """ + raise NotImplementedError() + + def on_close(self, server_conn: object) -> None: + """This method is called when a connection has been closed. + + :arg server_conn: is a server connection that has previously been + passed to ``start_request``. + """ + pass + + +class HTTPMessageDelegate(object): + """Implement this interface to handle an HTTP request or response. + + .. versionadded:: 4.0 + """ + + # TODO: genericize this class to avoid exposing the Union. + def headers_received( + self, + start_line: Union["RequestStartLine", "ResponseStartLine"], + headers: HTTPHeaders, + ) -> Optional[Awaitable[None]]: + """Called when the HTTP headers have been received and parsed. + + :arg start_line: a `.RequestStartLine` or `.ResponseStartLine` + depending on whether this is a client or server message. + :arg headers: a `.HTTPHeaders` instance. + + Some `.HTTPConnection` methods can only be called during + ``headers_received``. + + May return a `.Future`; if it does the body will not be read + until it is done. + """ + pass + + def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]: + """Called when a chunk of data has been received. + + May return a `.Future` for flow control. + """ + pass + + def finish(self) -> None: + """Called after the last chunk of data has been received.""" + pass + + def on_connection_close(self) -> None: + """Called if the connection is closed without finishing the request. + + If ``headers_received`` is called, either ``finish`` or + ``on_connection_close`` will be called, but not both. + """ + pass + + +class HTTPConnection(object): + """Applications use this interface to write their responses. + + .. versionadded:: 4.0 + """ + + def write_headers( + self, + start_line: Union["RequestStartLine", "ResponseStartLine"], + headers: HTTPHeaders, + chunk: bytes = None, + ) -> "Future[None]": + """Write an HTTP header block. + + :arg start_line: a `.RequestStartLine` or `.ResponseStartLine`. + :arg headers: a `.HTTPHeaders` instance. + :arg chunk: the first (optional) chunk of data. This is an optimization + so that small responses can be written in the same call as their + headers. + + The ``version`` field of ``start_line`` is ignored. + + Returns a future for flow control. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. + """ + raise NotImplementedError() + + def write(self, chunk: bytes) -> "Future[None]": + """Writes a chunk of body data. + + Returns a future for flow control. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. + """ + raise NotImplementedError() + + def finish(self) -> None: + """Indicates that the last body data has been written. + """ + raise NotImplementedError() + + +def url_concat( + url: str, + args: Union[ + None, Dict[str, str], List[Tuple[str, str]], Tuple[Tuple[str, str], ...] + ], +) -> str: + """Concatenate url and arguments regardless of whether + url has existing query parameters. + + ``args`` may be either a dictionary or a list of key-value pairs + (the latter allows for multiple values with the same key. + + >>> url_concat("http://example.com/foo", dict(c="d")) + 'http://example.com/foo?c=d' + >>> url_concat("http://example.com/foo?a=b", dict(c="d")) + 'http://example.com/foo?a=b&c=d' + >>> url_concat("http://example.com/foo?a=b", [("c", "d"), ("c", "d2")]) + 'http://example.com/foo?a=b&c=d&c=d2' + """ + if args is None: + return url + parsed_url = urlparse(url) + if isinstance(args, dict): + parsed_query = parse_qsl(parsed_url.query, keep_blank_values=True) + parsed_query.extend(args.items()) + elif isinstance(args, list) or isinstance(args, tuple): + parsed_query = parse_qsl(parsed_url.query, keep_blank_values=True) + parsed_query.extend(args) + else: + err = "'args' parameter should be dict, list or tuple. Not {0}".format( + type(args) + ) + raise TypeError(err) + final_query = urlencode(parsed_query) + url = urlunparse( + ( + parsed_url[0], + parsed_url[1], + parsed_url[2], + parsed_url[3], + final_query, + parsed_url[5], + ) + ) + return url + + +class HTTPFile(ObjectDict): + """Represents a file uploaded via a form. + + For backwards compatibility, its instance attributes are also + accessible as dictionary keys. + + * ``filename`` + * ``body`` + * ``content_type`` + """ + + pass + + +def _parse_request_range( + range_header: str, +) -> Optional[Tuple[Optional[int], Optional[int]]]: + """Parses a Range header. + + Returns either ``None`` or tuple ``(start, end)``. + Note that while the HTTP headers use inclusive byte positions, + this method returns indexes suitable for use in slices. + + >>> start, end = _parse_request_range("bytes=1-2") + >>> start, end + (1, 3) + >>> [0, 1, 2, 3, 4][start:end] + [1, 2] + >>> _parse_request_range("bytes=6-") + (6, None) + >>> _parse_request_range("bytes=-6") + (-6, None) + >>> _parse_request_range("bytes=-0") + (None, 0) + >>> _parse_request_range("bytes=") + (None, None) + >>> _parse_request_range("foo=42") + >>> _parse_request_range("bytes=1-2,6-10") + + Note: only supports one range (ex, ``bytes=1-2,6-10`` is not allowed). + + See [0] for the details of the range header. + + [0]: http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p5-range-latest.html#byte.ranges + """ + unit, _, value = range_header.partition("=") + unit, value = unit.strip(), value.strip() + if unit != "bytes": + return None + start_b, _, end_b = value.partition("-") + try: + start = _int_or_none(start_b) + end = _int_or_none(end_b) + except ValueError: + return None + if end is not None: + if start is None: + if end != 0: + start = -end + end = None + else: + end += 1 + return (start, end) + + +def _get_content_range(start: Optional[int], end: Optional[int], total: int) -> str: + """Returns a suitable Content-Range header: + + >>> print(_get_content_range(None, 1, 4)) + bytes 0-0/4 + >>> print(_get_content_range(1, 3, 4)) + bytes 1-2/4 + >>> print(_get_content_range(None, None, 4)) + bytes 0-3/4 + """ + start = start or 0 + end = (end or total) - 1 + return "bytes %s-%s/%s" % (start, end, total) + + +def _int_or_none(val: str) -> Optional[int]: + val = val.strip() + if val == "": + return None + return int(val) + + +def parse_body_arguments( + content_type: str, + body: bytes, + arguments: Dict[str, List[bytes]], + files: Dict[str, List[HTTPFile]], + headers: HTTPHeaders = None, +) -> None: + """Parses a form request body. + + Supports ``application/x-www-form-urlencoded`` and + ``multipart/form-data``. The ``content_type`` parameter should be + a string and ``body`` should be a byte string. The ``arguments`` + and ``files`` parameters are dictionaries that will be updated + with the parsed contents. + """ + if content_type.startswith("application/x-www-form-urlencoded"): + if headers and "Content-Encoding" in headers: + gen_log.warning( + "Unsupported Content-Encoding: %s", headers["Content-Encoding"] + ) + return + try: + uri_arguments = parse_qs_bytes(native_str(body), keep_blank_values=True) + except Exception as e: + gen_log.warning("Invalid x-www-form-urlencoded body: %s", e) + uri_arguments = {} + for name, values in uri_arguments.items(): + if values: + arguments.setdefault(name, []).extend(values) + elif content_type.startswith("multipart/form-data"): + if headers and "Content-Encoding" in headers: + gen_log.warning( + "Unsupported Content-Encoding: %s", headers["Content-Encoding"] + ) + return + try: + fields = content_type.split(";") + for field in fields: + k, sep, v = field.strip().partition("=") + if k == "boundary" and v: + parse_multipart_form_data(utf8(v), body, arguments, files) + break + else: + raise ValueError("multipart boundary not found") + except Exception as e: + gen_log.warning("Invalid multipart/form-data: %s", e) + + +def parse_multipart_form_data( + boundary: bytes, + data: bytes, + arguments: Dict[str, List[bytes]], + files: Dict[str, List[HTTPFile]], +) -> None: + """Parses a ``multipart/form-data`` body. + + The ``boundary`` and ``data`` parameters are both byte strings. + The dictionaries given in the arguments and files parameters + will be updated with the contents of the body. + + .. versionchanged:: 5.1 + + Now recognizes non-ASCII filenames in RFC 2231/5987 + (``filename*=``) format. + """ + # The standard allows for the boundary to be quoted in the header, + # although it's rare (it happens at least for google app engine + # xmpp). I think we're also supposed to handle backslash-escapes + # here but I'll save that until we see a client that uses them + # in the wild. + if boundary.startswith(b'"') and boundary.endswith(b'"'): + boundary = boundary[1:-1] + final_boundary_index = data.rfind(b"--" + boundary + b"--") + if final_boundary_index == -1: + gen_log.warning("Invalid multipart/form-data: no final boundary") + return + parts = data[:final_boundary_index].split(b"--" + boundary + b"\r\n") + for part in parts: + if not part: + continue + eoh = part.find(b"\r\n\r\n") + if eoh == -1: + gen_log.warning("multipart/form-data missing headers") + continue + headers = HTTPHeaders.parse(part[:eoh].decode("utf-8")) + disp_header = headers.get("Content-Disposition", "") + disposition, disp_params = _parse_header(disp_header) + if disposition != "form-data" or not part.endswith(b"\r\n"): + gen_log.warning("Invalid multipart/form-data") + continue + value = part[eoh + 4 : -2] + if not disp_params.get("name"): + gen_log.warning("multipart/form-data value missing name") + continue + name = disp_params["name"] + if disp_params.get("filename"): + ctype = headers.get("Content-Type", "application/unknown") + files.setdefault(name, []).append( + HTTPFile( + filename=disp_params["filename"], body=value, content_type=ctype + ) + ) + else: + arguments.setdefault(name, []).append(value) + + +def format_timestamp( + ts: Union[int, float, tuple, time.struct_time, datetime.datetime] +) -> str: + """Formats a timestamp in the format used by HTTP. + + The argument may be a numeric timestamp as returned by `time.time`, + a time tuple as returned by `time.gmtime`, or a `datetime.datetime` + object. + + >>> format_timestamp(1359312200) + 'Sun, 27 Jan 2013 18:43:20 GMT' + """ + if isinstance(ts, (int, float)): + time_num = ts + elif isinstance(ts, (tuple, time.struct_time)): + time_num = calendar.timegm(ts) + elif isinstance(ts, datetime.datetime): + time_num = calendar.timegm(ts.utctimetuple()) + else: + raise TypeError("unknown timestamp type: %r" % ts) + return email.utils.formatdate(time_num, usegmt=True) + + +RequestStartLine = collections.namedtuple( + "RequestStartLine", ["method", "path", "version"] +) + + +def parse_request_start_line(line: str) -> RequestStartLine: + """Returns a (method, path, version) tuple for an HTTP 1.x request line. + + The response is a `collections.namedtuple`. + + >>> parse_request_start_line("GET /foo HTTP/1.1") + RequestStartLine(method='GET', path='/foo', version='HTTP/1.1') + """ + try: + method, path, version = line.split(" ") + except ValueError: + # https://tools.ietf.org/html/rfc7230#section-3.1.1 + # invalid request-line SHOULD respond with a 400 (Bad Request) + raise HTTPInputError("Malformed HTTP request line") + if not re.match(r"^HTTP/1\.[0-9]$", version): + raise HTTPInputError( + "Malformed HTTP version in HTTP Request-Line: %r" % version + ) + return RequestStartLine(method, path, version) + + +ResponseStartLine = collections.namedtuple( + "ResponseStartLine", ["version", "code", "reason"] +) + + +def parse_response_start_line(line: str) -> ResponseStartLine: + """Returns a (version, code, reason) tuple for an HTTP 1.x response line. + + The response is a `collections.namedtuple`. + + >>> parse_response_start_line("HTTP/1.1 200 OK") + ResponseStartLine(version='HTTP/1.1', code=200, reason='OK') + """ + line = native_str(line) + match = re.match("(HTTP/1.[0-9]) ([0-9]+) ([^\r]*)", line) + if not match: + raise HTTPInputError("Error parsing response start line") + return ResponseStartLine(match.group(1), int(match.group(2)), match.group(3)) + + +# _parseparam and _parse_header are copied and modified from python2.7's cgi.py +# The original 2.7 version of this code did not correctly support some +# combinations of semicolons and double quotes. +# It has also been modified to support valueless parameters as seen in +# websocket extension negotiations, and to support non-ascii values in +# RFC 2231/5987 format. + + +def _parseparam(s: str) -> Generator[str, None, None]: + while s[:1] == ";": + s = s[1:] + end = s.find(";") + while end > 0 and (s.count('"', 0, end) - s.count('\\"', 0, end)) % 2: + end = s.find(";", end + 1) + if end < 0: + end = len(s) + f = s[:end] + yield f.strip() + s = s[end:] + + +def _parse_header(line: str) -> Tuple[str, Dict[str, str]]: + r"""Parse a Content-type like header. + + Return the main content-type and a dictionary of options. + + >>> d = "form-data; foo=\"b\\\\a\\\"r\"; file*=utf-8''T%C3%A4st" + >>> ct, d = _parse_header(d) + >>> ct + 'form-data' + >>> d['file'] == r'T\u00e4st'.encode('ascii').decode('unicode_escape') + True + >>> d['foo'] + 'b\\a"r' + """ + parts = _parseparam(";" + line) + key = next(parts) + # decode_params treats first argument special, but we already stripped key + params = [("Dummy", "value")] + for p in parts: + i = p.find("=") + if i >= 0: + name = p[:i].strip().lower() + value = p[i + 1 :].strip() + params.append((name, native_str(value))) + decoded_params = email.utils.decode_params(params) + decoded_params.pop(0) # get rid of the dummy again + pdict = {} + for name, decoded_value in decoded_params: + value = email.utils.collapse_rfc2231_value(decoded_value) + if len(value) >= 2 and value[0] == '"' and value[-1] == '"': + value = value[1:-1] + pdict[name] = value + return key, pdict + + +def _encode_header(key: str, pdict: Dict[str, str]) -> str: + """Inverse of _parse_header. + + >>> _encode_header('permessage-deflate', + ... {'client_max_window_bits': 15, 'client_no_context_takeover': None}) + 'permessage-deflate; client_max_window_bits=15; client_no_context_takeover' + """ + if not pdict: + return key + out = [key] + # Sort the parameters just to make it easy to test. + for k, v in sorted(pdict.items()): + if v is None: + out.append(k) + else: + # TODO: quote if necessary. + out.append("%s=%s" % (k, v)) + return "; ".join(out) + + +def encode_username_password( + username: Union[str, bytes], password: Union[str, bytes] +) -> bytes: + """Encodes a username/password pair in the format used by HTTP auth. + + The return value is a byte string in the form ``username:password``. + + .. versionadded:: 5.1 + """ + if isinstance(username, unicode_type): + username = unicodedata.normalize("NFC", username) + if isinstance(password, unicode_type): + password = unicodedata.normalize("NFC", password) + return utf8(username) + b":" + utf8(password) + + +def doctests(): + # type: () -> unittest.TestSuite + import doctest + + return doctest.DocTestSuite() + + +def split_host_and_port(netloc: str) -> Tuple[str, Optional[int]]: + """Returns ``(host, port)`` tuple from ``netloc``. + + Returned ``port`` will be ``None`` if not present. + + .. versionadded:: 4.1 + """ + match = re.match(r"^(.+):(\d+)$", netloc) + if match: + host = match.group(1) + port = int(match.group(2)) # type: Optional[int] + else: + host = netloc + port = None + return (host, port) + + +def qs_to_qsl(qs: Dict[str, List[AnyStr]]) -> Iterable[Tuple[str, AnyStr]]: + """Generator converting a result of ``parse_qs`` back to name-value pairs. + + .. versionadded:: 5.0 + """ + for k, vs in qs.items(): + for v in vs: + yield (k, v) + + +_OctalPatt = re.compile(r"\\[0-3][0-7][0-7]") +_QuotePatt = re.compile(r"[\\].") +_nulljoin = "".join + + +def _unquote_cookie(s: str) -> str: + """Handle double quotes and escaping in cookie values. + + This method is copied verbatim from the Python 3.5 standard + library (http.cookies._unquote) so we don't have to depend on + non-public interfaces. + """ + # If there aren't any doublequotes, + # then there can't be any special characters. See RFC 2109. + if s is None or len(s) < 2: + return s + if s[0] != '"' or s[-1] != '"': + return s + + # We have to assume that we must decode this string. + # Down to work. + + # Remove the "s + s = s[1:-1] + + # Check for special sequences. Examples: + # \012 --> \n + # \" --> " + # + i = 0 + n = len(s) + res = [] + while 0 <= i < n: + o_match = _OctalPatt.search(s, i) + q_match = _QuotePatt.search(s, i) + if not o_match and not q_match: # Neither matched + res.append(s[i:]) + break + # else: + j = k = -1 + if o_match: + j = o_match.start(0) + if q_match: + k = q_match.start(0) + if q_match and (not o_match or k < j): # QuotePatt matched + res.append(s[i:k]) + res.append(s[k + 1]) + i = k + 2 + else: # OctalPatt matched + res.append(s[i:j]) + res.append(chr(int(s[j + 1 : j + 4], 8))) + i = j + 4 + return _nulljoin(res) + + +def parse_cookie(cookie: str) -> Dict[str, str]: + """Parse a ``Cookie`` HTTP header into a dict of name/value pairs. + + This function attempts to mimic browser cookie parsing behavior; + it specifically does not follow any of the cookie-related RFCs + (because browsers don't either). + + The algorithm used is identical to that used by Django version 1.9.10. + + .. versionadded:: 4.4.2 + """ + cookiedict = {} + for chunk in cookie.split(str(";")): + if str("=") in chunk: + key, val = chunk.split(str("="), 1) + else: + # Assume an empty name per + # https://bugzilla.mozilla.org/show_bug.cgi?id=169091 + key, val = str(""), chunk + key, val = key.strip(), val.strip() + if key or val: + # unquote using Python's algorithm. + cookiedict[key] = _unquote_cookie(val) + return cookiedict diff --git a/server/www/packages/packages-linux/x64/tornado/ioloop.py b/server/www/packages/packages-linux/x64/tornado/ioloop.py index 02794cb..a691fe8 100644 --- a/server/www/packages/packages-linux/x64/tornado/ioloop.py +++ b/server/www/packages/packages-linux/x64/tornado/ioloop.py @@ -1,946 +1,946 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""An I/O event loop for non-blocking sockets. - -In Tornado 6.0, `.IOLoop` is a wrapper around the `asyncio` event -loop, with a slightly different interface for historical reasons. -Applications can use either the `.IOLoop` interface or the underlying -`asyncio` event loop directly (unless compatibility with older -versions of Tornado is desired, in which case `.IOLoop` must be used). - -Typical applications will use a single `IOLoop` object, accessed via -`IOLoop.current` class method. The `IOLoop.start` method (or -equivalently, `asyncio.AbstractEventLoop.run_forever`) should usually -be called at the end of the ``main()`` function. Atypical applications -may use more than one `IOLoop`, such as one `IOLoop` per thread, or -per `unittest` case. - -""" - -import asyncio -import concurrent.futures -import datetime -import functools -import logging -import numbers -import os -import sys -import time -import math -import random - -from tornado.concurrent import ( - Future, - is_future, - chain_future, - future_set_exc_info, - future_add_done_callback, -) -from tornado.log import app_log -from tornado.util import Configurable, TimeoutError, import_object - -import typing -from typing import Union, Any, Type, Optional, Callable, TypeVar, Tuple, Awaitable - -if typing.TYPE_CHECKING: - from typing import Dict, List # noqa: F401 - - from typing_extensions import Protocol -else: - Protocol = object - - -class _Selectable(Protocol): - def fileno(self) -> int: - pass - - def close(self) -> None: - pass - - -_T = TypeVar("_T") -_S = TypeVar("_S", bound=_Selectable) - - -class IOLoop(Configurable): - """An I/O event loop. - - As of Tornado 6.0, `IOLoop` is a wrapper around the `asyncio` event - loop. - - Example usage for a simple TCP server: - - .. testcode:: - - import errno - import functools - import socket - - import tornado.ioloop - from tornado.iostream import IOStream - - async def handle_connection(connection, address): - stream = IOStream(connection) - message = await stream.read_until_close() - print("message from client:", message.decode().strip()) - - def connection_ready(sock, fd, events): - while True: - try: - connection, address = sock.accept() - except socket.error as e: - if e.args[0] not in (errno.EWOULDBLOCK, errno.EAGAIN): - raise - return - connection.setblocking(0) - io_loop = tornado.ioloop.IOLoop.current() - io_loop.spawn_callback(handle_connection, connection, address) - - if __name__ == '__main__': - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - sock.setblocking(0) - sock.bind(("", 8888)) - sock.listen(128) - - io_loop = tornado.ioloop.IOLoop.current() - callback = functools.partial(connection_ready, sock) - io_loop.add_handler(sock.fileno(), callback, io_loop.READ) - io_loop.start() - - .. testoutput:: - :hide: - - By default, a newly-constructed `IOLoop` becomes the thread's current - `IOLoop`, unless there already is a current `IOLoop`. This behavior - can be controlled with the ``make_current`` argument to the `IOLoop` - constructor: if ``make_current=True``, the new `IOLoop` will always - try to become current and it raises an error if there is already a - current instance. If ``make_current=False``, the new `IOLoop` will - not try to become current. - - In general, an `IOLoop` cannot survive a fork or be shared across - processes in any way. When multiple processes are being used, each - process should create its own `IOLoop`, which also implies that - any objects which depend on the `IOLoop` (such as - `.AsyncHTTPClient`) must also be created in the child processes. - As a guideline, anything that starts processes (including the - `tornado.process` and `multiprocessing` modules) should do so as - early as possible, ideally the first thing the application does - after loading its configuration in ``main()``. - - .. versionchanged:: 4.2 - Added the ``make_current`` keyword argument to the `IOLoop` - constructor. - - .. versionchanged:: 5.0 - - Uses the `asyncio` event loop by default. The - ``IOLoop.configure`` method cannot be used on Python 3 except - to redundantly specify the `asyncio` event loop. - - """ - - # These constants were originally based on constants from the epoll module. - NONE = 0 - READ = 0x001 - WRITE = 0x004 - ERROR = 0x018 - - # In Python 3, _ioloop_for_asyncio maps from asyncio loops to IOLoops. - _ioloop_for_asyncio = dict() # type: Dict[asyncio.AbstractEventLoop, IOLoop] - - @classmethod - def configure( - cls, impl: "Union[None, str, Type[Configurable]]", **kwargs: Any - ) -> None: - if asyncio is not None: - from tornado.platform.asyncio import BaseAsyncIOLoop - - if isinstance(impl, str): - impl = import_object(impl) - if isinstance(impl, type) and not issubclass(impl, BaseAsyncIOLoop): - raise RuntimeError( - "only AsyncIOLoop is allowed when asyncio is available" - ) - super(IOLoop, cls).configure(impl, **kwargs) - - @staticmethod - def instance() -> "IOLoop": - """Deprecated alias for `IOLoop.current()`. - - .. versionchanged:: 5.0 - - Previously, this method returned a global singleton - `IOLoop`, in contrast with the per-thread `IOLoop` returned - by `current()`. In nearly all cases the two were the same - (when they differed, it was generally used from non-Tornado - threads to communicate back to the main thread's `IOLoop`). - This distinction is not present in `asyncio`, so in order - to facilitate integration with that package `instance()` - was changed to be an alias to `current()`. Applications - using the cross-thread communications aspect of - `instance()` should instead set their own global variable - to point to the `IOLoop` they want to use. - - .. deprecated:: 5.0 - """ - return IOLoop.current() - - def install(self) -> None: - """Deprecated alias for `make_current()`. - - .. versionchanged:: 5.0 - - Previously, this method would set this `IOLoop` as the - global singleton used by `IOLoop.instance()`. Now that - `instance()` is an alias for `current()`, `install()` - is an alias for `make_current()`. - - .. deprecated:: 5.0 - """ - self.make_current() - - @staticmethod - def clear_instance() -> None: - """Deprecated alias for `clear_current()`. - - .. versionchanged:: 5.0 - - Previously, this method would clear the `IOLoop` used as - the global singleton by `IOLoop.instance()`. Now that - `instance()` is an alias for `current()`, - `clear_instance()` is an alias for `clear_current()`. - - .. deprecated:: 5.0 - - """ - IOLoop.clear_current() - - @typing.overload - @staticmethod - def current() -> "IOLoop": - pass - - @typing.overload # noqa: F811 - @staticmethod - def current(instance: bool = True) -> Optional["IOLoop"]: - pass - - @staticmethod # noqa: F811 - def current(instance: bool = True) -> Optional["IOLoop"]: - """Returns the current thread's `IOLoop`. - - If an `IOLoop` is currently running or has been marked as - current by `make_current`, returns that instance. If there is - no current `IOLoop` and ``instance`` is true, creates one. - - .. versionchanged:: 4.1 - Added ``instance`` argument to control the fallback to - `IOLoop.instance()`. - .. versionchanged:: 5.0 - On Python 3, control of the current `IOLoop` is delegated - to `asyncio`, with this and other methods as pass-through accessors. - The ``instance`` argument now controls whether an `IOLoop` - is created automatically when there is none, instead of - whether we fall back to `IOLoop.instance()` (which is now - an alias for this method). ``instance=False`` is deprecated, - since even if we do not create an `IOLoop`, this method - may initialize the asyncio loop. - """ - try: - loop = asyncio.get_event_loop() - except (RuntimeError, AssertionError): - if not instance: - return None - raise - try: - return IOLoop._ioloop_for_asyncio[loop] - except KeyError: - if instance: - from tornado.platform.asyncio import AsyncIOMainLoop - - current = AsyncIOMainLoop(make_current=True) # type: Optional[IOLoop] - else: - current = None - return current - - def make_current(self) -> None: - """Makes this the `IOLoop` for the current thread. - - An `IOLoop` automatically becomes current for its thread - when it is started, but it is sometimes useful to call - `make_current` explicitly before starting the `IOLoop`, - so that code run at startup time can find the right - instance. - - .. versionchanged:: 4.1 - An `IOLoop` created while there is no current `IOLoop` - will automatically become current. - - .. versionchanged:: 5.0 - This method also sets the current `asyncio` event loop. - """ - # The asyncio event loops override this method. - raise NotImplementedError() - - @staticmethod - def clear_current() -> None: - """Clears the `IOLoop` for the current thread. - - Intended primarily for use by test frameworks in between tests. - - .. versionchanged:: 5.0 - This method also clears the current `asyncio` event loop. - """ - old = IOLoop.current(instance=False) - if old is not None: - old._clear_current_hook() - if asyncio is None: - IOLoop._current.instance = None - - def _clear_current_hook(self) -> None: - """Instance method called when an IOLoop ceases to be current. - - May be overridden by subclasses as a counterpart to make_current. - """ - pass - - @classmethod - def configurable_base(cls) -> Type[Configurable]: - return IOLoop - - @classmethod - def configurable_default(cls) -> Type[Configurable]: - from tornado.platform.asyncio import AsyncIOLoop - - return AsyncIOLoop - - def initialize(self, make_current: bool = None) -> None: - if make_current is None: - if IOLoop.current(instance=False) is None: - self.make_current() - elif make_current: - current = IOLoop.current(instance=False) - # AsyncIO loops can already be current by this point. - if current is not None and current is not self: - raise RuntimeError("current IOLoop already exists") - self.make_current() - - def close(self, all_fds: bool = False) -> None: - """Closes the `IOLoop`, freeing any resources used. - - If ``all_fds`` is true, all file descriptors registered on the - IOLoop will be closed (not just the ones created by the - `IOLoop` itself). - - Many applications will only use a single `IOLoop` that runs for the - entire lifetime of the process. In that case closing the `IOLoop` - is not necessary since everything will be cleaned up when the - process exits. `IOLoop.close` is provided mainly for scenarios - such as unit tests, which create and destroy a large number of - ``IOLoops``. - - An `IOLoop` must be completely stopped before it can be closed. This - means that `IOLoop.stop()` must be called *and* `IOLoop.start()` must - be allowed to return before attempting to call `IOLoop.close()`. - Therefore the call to `close` will usually appear just after - the call to `start` rather than near the call to `stop`. - - .. versionchanged:: 3.1 - If the `IOLoop` implementation supports non-integer objects - for "file descriptors", those objects will have their - ``close`` method when ``all_fds`` is true. - """ - raise NotImplementedError() - - @typing.overload - def add_handler( - self, fd: int, handler: Callable[[int, int], None], events: int - ) -> None: - pass - - @typing.overload # noqa: F811 - def add_handler( - self, fd: _S, handler: Callable[[_S, int], None], events: int - ) -> None: - pass - - def add_handler( # noqa: F811 - self, fd: Union[int, _Selectable], handler: Callable[..., None], events: int - ) -> None: - """Registers the given handler to receive the given events for ``fd``. - - The ``fd`` argument may either be an integer file descriptor or - a file-like object with a ``fileno()`` and ``close()`` method. - - The ``events`` argument is a bitwise or of the constants - ``IOLoop.READ``, ``IOLoop.WRITE``, and ``IOLoop.ERROR``. - - When an event occurs, ``handler(fd, events)`` will be run. - - .. versionchanged:: 4.0 - Added the ability to pass file-like objects in addition to - raw file descriptors. - """ - raise NotImplementedError() - - def update_handler(self, fd: Union[int, _Selectable], events: int) -> None: - """Changes the events we listen for ``fd``. - - .. versionchanged:: 4.0 - Added the ability to pass file-like objects in addition to - raw file descriptors. - """ - raise NotImplementedError() - - def remove_handler(self, fd: Union[int, _Selectable]) -> None: - """Stop listening for events on ``fd``. - - .. versionchanged:: 4.0 - Added the ability to pass file-like objects in addition to - raw file descriptors. - """ - raise NotImplementedError() - - def start(self) -> None: - """Starts the I/O loop. - - The loop will run until one of the callbacks calls `stop()`, which - will make the loop stop after the current event iteration completes. - """ - raise NotImplementedError() - - def _setup_logging(self) -> None: - """The IOLoop catches and logs exceptions, so it's - important that log output be visible. However, python's - default behavior for non-root loggers (prior to python - 3.2) is to print an unhelpful "no handlers could be - found" message rather than the actual log entry, so we - must explicitly configure logging if we've made it this - far without anything. - - This method should be called from start() in subclasses. - """ - if not any( - [ - logging.getLogger().handlers, - logging.getLogger("tornado").handlers, - logging.getLogger("tornado.application").handlers, - ] - ): - logging.basicConfig() - - def stop(self) -> None: - """Stop the I/O loop. - - If the event loop is not currently running, the next call to `start()` - will return immediately. - - Note that even after `stop` has been called, the `IOLoop` is not - completely stopped until `IOLoop.start` has also returned. - Some work that was scheduled before the call to `stop` may still - be run before the `IOLoop` shuts down. - """ - raise NotImplementedError() - - def run_sync(self, func: Callable, timeout: float = None) -> Any: - """Starts the `IOLoop`, runs the given function, and stops the loop. - - The function must return either an awaitable object or - ``None``. If the function returns an awaitable object, the - `IOLoop` will run until the awaitable is resolved (and - `run_sync()` will return the awaitable's result). If it raises - an exception, the `IOLoop` will stop and the exception will be - re-raised to the caller. - - The keyword-only argument ``timeout`` may be used to set - a maximum duration for the function. If the timeout expires, - a `tornado.util.TimeoutError` is raised. - - This method is useful to allow asynchronous calls in a - ``main()`` function:: - - async def main(): - # do stuff... - - if __name__ == '__main__': - IOLoop.current().run_sync(main) - - .. versionchanged:: 4.3 - Returning a non-``None``, non-awaitable value is now an error. - - .. versionchanged:: 5.0 - If a timeout occurs, the ``func`` coroutine will be cancelled. - - """ - future_cell = [None] # type: List[Optional[Future]] - - def run() -> None: - try: - result = func() - if result is not None: - from tornado.gen import convert_yielded - - result = convert_yielded(result) - except Exception: - fut = Future() # type: Future[Any] - future_cell[0] = fut - future_set_exc_info(fut, sys.exc_info()) - else: - if is_future(result): - future_cell[0] = result - else: - fut = Future() - future_cell[0] = fut - fut.set_result(result) - assert future_cell[0] is not None - self.add_future(future_cell[0], lambda future: self.stop()) - - self.add_callback(run) - if timeout is not None: - - def timeout_callback() -> None: - # If we can cancel the future, do so and wait on it. If not, - # Just stop the loop and return with the task still pending. - # (If we neither cancel nor wait for the task, a warning - # will be logged). - assert future_cell[0] is not None - if not future_cell[0].cancel(): - self.stop() - - timeout_handle = self.add_timeout(self.time() + timeout, timeout_callback) - self.start() - if timeout is not None: - self.remove_timeout(timeout_handle) - assert future_cell[0] is not None - if future_cell[0].cancelled() or not future_cell[0].done(): - raise TimeoutError("Operation timed out after %s seconds" % timeout) - return future_cell[0].result() - - def time(self) -> float: - """Returns the current time according to the `IOLoop`'s clock. - - The return value is a floating-point number relative to an - unspecified time in the past. - - Historically, the IOLoop could be customized to use e.g. - `time.monotonic` instead of `time.time`, but this is not - currently supported and so this method is equivalent to - `time.time`. - - """ - return time.time() - - def add_timeout( - self, - deadline: Union[float, datetime.timedelta], - callback: Callable[..., None], - *args: Any, - **kwargs: Any - ) -> object: - """Runs the ``callback`` at the time ``deadline`` from the I/O loop. - - Returns an opaque handle that may be passed to - `remove_timeout` to cancel. - - ``deadline`` may be a number denoting a time (on the same - scale as `IOLoop.time`, normally `time.time`), or a - `datetime.timedelta` object for a deadline relative to the - current time. Since Tornado 4.0, `call_later` is a more - convenient alternative for the relative case since it does not - require a timedelta object. - - Note that it is not safe to call `add_timeout` from other threads. - Instead, you must use `add_callback` to transfer control to the - `IOLoop`'s thread, and then call `add_timeout` from there. - - Subclasses of IOLoop must implement either `add_timeout` or - `call_at`; the default implementations of each will call - the other. `call_at` is usually easier to implement, but - subclasses that wish to maintain compatibility with Tornado - versions prior to 4.0 must use `add_timeout` instead. - - .. versionchanged:: 4.0 - Now passes through ``*args`` and ``**kwargs`` to the callback. - """ - if isinstance(deadline, numbers.Real): - return self.call_at(deadline, callback, *args, **kwargs) - elif isinstance(deadline, datetime.timedelta): - return self.call_at( - self.time() + deadline.total_seconds(), callback, *args, **kwargs - ) - else: - raise TypeError("Unsupported deadline %r" % deadline) - - def call_later( - self, delay: float, callback: Callable[..., None], *args: Any, **kwargs: Any - ) -> object: - """Runs the ``callback`` after ``delay`` seconds have passed. - - Returns an opaque handle that may be passed to `remove_timeout` - to cancel. Note that unlike the `asyncio` method of the same - name, the returned object does not have a ``cancel()`` method. - - See `add_timeout` for comments on thread-safety and subclassing. - - .. versionadded:: 4.0 - """ - return self.call_at(self.time() + delay, callback, *args, **kwargs) - - def call_at( - self, when: float, callback: Callable[..., None], *args: Any, **kwargs: Any - ) -> object: - """Runs the ``callback`` at the absolute time designated by ``when``. - - ``when`` must be a number using the same reference point as - `IOLoop.time`. - - Returns an opaque handle that may be passed to `remove_timeout` - to cancel. Note that unlike the `asyncio` method of the same - name, the returned object does not have a ``cancel()`` method. - - See `add_timeout` for comments on thread-safety and subclassing. - - .. versionadded:: 4.0 - """ - return self.add_timeout(when, callback, *args, **kwargs) - - def remove_timeout(self, timeout: object) -> None: - """Cancels a pending timeout. - - The argument is a handle as returned by `add_timeout`. It is - safe to call `remove_timeout` even if the callback has already - been run. - """ - raise NotImplementedError() - - def add_callback(self, callback: Callable, *args: Any, **kwargs: Any) -> None: - """Calls the given callback on the next I/O loop iteration. - - It is safe to call this method from any thread at any time, - except from a signal handler. Note that this is the **only** - method in `IOLoop` that makes this thread-safety guarantee; all - other interaction with the `IOLoop` must be done from that - `IOLoop`'s thread. `add_callback()` may be used to transfer - control from other threads to the `IOLoop`'s thread. - - To add a callback from a signal handler, see - `add_callback_from_signal`. - """ - raise NotImplementedError() - - def add_callback_from_signal( - self, callback: Callable, *args: Any, **kwargs: Any - ) -> None: - """Calls the given callback on the next I/O loop iteration. - - Safe for use from a Python signal handler; should not be used - otherwise. - """ - raise NotImplementedError() - - def spawn_callback(self, callback: Callable, *args: Any, **kwargs: Any) -> None: - """Calls the given callback on the next IOLoop iteration. - - As of Tornado 6.0, this method is equivalent to `add_callback`. - - .. versionadded:: 4.0 - """ - self.add_callback(callback, *args, **kwargs) - - def add_future( - self, - future: "Union[Future[_T], concurrent.futures.Future[_T]]", - callback: Callable[["Future[_T]"], None], - ) -> None: - """Schedules a callback on the ``IOLoop`` when the given - `.Future` is finished. - - The callback is invoked with one argument, the - `.Future`. - - This method only accepts `.Future` objects and not other - awaitables (unlike most of Tornado where the two are - interchangeable). - """ - if isinstance(future, Future): - # Note that we specifically do not want the inline behavior of - # tornado.concurrent.future_add_done_callback. We always want - # this callback scheduled on the next IOLoop iteration (which - # asyncio.Future always does). - # - # Wrap the callback in self._run_callback so we control - # the error logging (i.e. it goes to tornado.log.app_log - # instead of asyncio's log). - future.add_done_callback( - lambda f: self._run_callback(functools.partial(callback, future)) - ) - else: - assert is_future(future) - # For concurrent futures, we use self.add_callback, so - # it's fine if future_add_done_callback inlines that call. - future_add_done_callback( - future, lambda f: self.add_callback(callback, future) - ) - - def run_in_executor( - self, - executor: Optional[concurrent.futures.Executor], - func: Callable[..., _T], - *args: Any - ) -> Awaitable[_T]: - """Runs a function in a ``concurrent.futures.Executor``. If - ``executor`` is ``None``, the IO loop's default executor will be used. - - Use `functools.partial` to pass keyword arguments to ``func``. - - .. versionadded:: 5.0 - """ - if executor is None: - if not hasattr(self, "_executor"): - from tornado.process import cpu_count - - self._executor = concurrent.futures.ThreadPoolExecutor( - max_workers=(cpu_count() * 5) - ) # type: concurrent.futures.Executor - executor = self._executor - c_future = executor.submit(func, *args) - # Concurrent Futures are not usable with await. Wrap this in a - # Tornado Future instead, using self.add_future for thread-safety. - t_future = Future() # type: Future[_T] - self.add_future(c_future, lambda f: chain_future(f, t_future)) - return t_future - - def set_default_executor(self, executor: concurrent.futures.Executor) -> None: - """Sets the default executor to use with :meth:`run_in_executor`. - - .. versionadded:: 5.0 - """ - self._executor = executor - - def _run_callback(self, callback: Callable[[], Any]) -> None: - """Runs a callback with error handling. - - .. versionchanged:: 6.0 - - CancelledErrors are no longer logged. - """ - try: - ret = callback() - if ret is not None: - from tornado import gen - - # Functions that return Futures typically swallow all - # exceptions and store them in the Future. If a Future - # makes it out to the IOLoop, ensure its exception (if any) - # gets logged too. - try: - ret = gen.convert_yielded(ret) - except gen.BadYieldError: - # It's not unusual for add_callback to be used with - # methods returning a non-None and non-yieldable - # result, which should just be ignored. - pass - else: - self.add_future(ret, self._discard_future_result) - except asyncio.CancelledError: - pass - except Exception: - app_log.error("Exception in callback %r", callback, exc_info=True) - - def _discard_future_result(self, future: Future) -> None: - """Avoid unhandled-exception warnings from spawned coroutines.""" - future.result() - - def split_fd( - self, fd: Union[int, _Selectable] - ) -> Tuple[int, Union[int, _Selectable]]: - # """Returns an (fd, obj) pair from an ``fd`` parameter. - - # We accept both raw file descriptors and file-like objects as - # input to `add_handler` and related methods. When a file-like - # object is passed, we must retain the object itself so we can - # close it correctly when the `IOLoop` shuts down, but the - # poller interfaces favor file descriptors (they will accept - # file-like objects and call ``fileno()`` for you, but they - # always return the descriptor itself). - - # This method is provided for use by `IOLoop` subclasses and should - # not generally be used by application code. - - # .. versionadded:: 4.0 - # """ - if isinstance(fd, int): - return fd, fd - return fd.fileno(), fd - - def close_fd(self, fd: Union[int, _Selectable]) -> None: - # """Utility method to close an ``fd``. - - # If ``fd`` is a file-like object, we close it directly; otherwise - # we use `os.close`. - - # This method is provided for use by `IOLoop` subclasses (in - # implementations of ``IOLoop.close(all_fds=True)`` and should - # not generally be used by application code. - - # .. versionadded:: 4.0 - # """ - try: - if isinstance(fd, int): - os.close(fd) - else: - fd.close() - except OSError: - pass - - -class _Timeout(object): - """An IOLoop timeout, a UNIX timestamp and a callback""" - - # Reduce memory overhead when there are lots of pending callbacks - __slots__ = ["deadline", "callback", "tdeadline"] - - def __init__( - self, deadline: float, callback: Callable[[], None], io_loop: IOLoop - ) -> None: - if not isinstance(deadline, numbers.Real): - raise TypeError("Unsupported deadline %r" % deadline) - self.deadline = deadline - self.callback = callback - self.tdeadline = ( - deadline, - next(io_loop._timeout_counter), - ) # type: Tuple[float, int] - - # Comparison methods to sort by deadline, with object id as a tiebreaker - # to guarantee a consistent ordering. The heapq module uses __le__ - # in python2.5, and __lt__ in 2.6+ (sort() and most other comparisons - # use __lt__). - def __lt__(self, other: "_Timeout") -> bool: - return self.tdeadline < other.tdeadline - - def __le__(self, other: "_Timeout") -> bool: - return self.tdeadline <= other.tdeadline - - -class PeriodicCallback(object): - """Schedules the given callback to be called periodically. - - The callback is called every ``callback_time`` milliseconds. - Note that the timeout is given in milliseconds, while most other - time-related functions in Tornado use seconds. - - If ``jitter`` is specified, each callback time will be randomly selected - within a window of ``jitter * callback_time`` milliseconds. - Jitter can be used to reduce alignment of events with similar periods. - A jitter of 0.1 means allowing a 10% variation in callback time. - The window is centered on ``callback_time`` so the total number of calls - within a given interval should not be significantly affected by adding - jitter. - - If the callback runs for longer than ``callback_time`` milliseconds, - subsequent invocations will be skipped to get back on schedule. - - `start` must be called after the `PeriodicCallback` is created. - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been removed. - - .. versionchanged:: 5.1 - The ``jitter`` argument is added. - """ - - def __init__( - self, callback: Callable[[], None], callback_time: float, jitter: float = 0 - ) -> None: - self.callback = callback - if callback_time <= 0: - raise ValueError("Periodic callback must have a positive callback_time") - self.callback_time = callback_time - self.jitter = jitter - self._running = False - self._timeout = None # type: object - - def start(self) -> None: - """Starts the timer.""" - # Looking up the IOLoop here allows to first instantiate the - # PeriodicCallback in another thread, then start it using - # IOLoop.add_callback(). - self.io_loop = IOLoop.current() - self._running = True - self._next_timeout = self.io_loop.time() - self._schedule_next() - - def stop(self) -> None: - """Stops the timer.""" - self._running = False - if self._timeout is not None: - self.io_loop.remove_timeout(self._timeout) - self._timeout = None - - def is_running(self) -> bool: - """Returns ``True`` if this `.PeriodicCallback` has been started. - - .. versionadded:: 4.1 - """ - return self._running - - def _run(self) -> None: - if not self._running: - return - try: - return self.callback() - except Exception: - app_log.error("Exception in callback %r", self.callback, exc_info=True) - finally: - self._schedule_next() - - def _schedule_next(self) -> None: - if self._running: - self._update_next(self.io_loop.time()) - self._timeout = self.io_loop.add_timeout(self._next_timeout, self._run) - - def _update_next(self, current_time: float) -> None: - callback_time_sec = self.callback_time / 1000.0 - if self.jitter: - # apply jitter fraction - callback_time_sec *= 1 + (self.jitter * (random.random() - 0.5)) - if self._next_timeout <= current_time: - # The period should be measured from the start of one call - # to the start of the next. If one call takes too long, - # skip cycles to get back to a multiple of the original - # schedule. - self._next_timeout += ( - math.floor((current_time - self._next_timeout) / callback_time_sec) + 1 - ) * callback_time_sec - else: - # If the clock moved backwards, ensure we advance the next - # timeout instead of recomputing the same value again. - # This may result in long gaps between callbacks if the - # clock jumps backwards by a lot, but the far more common - # scenario is a small NTP adjustment that should just be - # ignored. - # - # Note that on some systems if time.time() runs slower - # than time.monotonic() (most common on windows), we - # effectively experience a small backwards time jump on - # every iteration because PeriodicCallback uses - # time.time() while asyncio schedules callbacks using - # time.monotonic(). - # https://github.com/tornadoweb/tornado/issues/2333 - self._next_timeout += callback_time_sec +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""An I/O event loop for non-blocking sockets. + +In Tornado 6.0, `.IOLoop` is a wrapper around the `asyncio` event +loop, with a slightly different interface for historical reasons. +Applications can use either the `.IOLoop` interface or the underlying +`asyncio` event loop directly (unless compatibility with older +versions of Tornado is desired, in which case `.IOLoop` must be used). + +Typical applications will use a single `IOLoop` object, accessed via +`IOLoop.current` class method. The `IOLoop.start` method (or +equivalently, `asyncio.AbstractEventLoop.run_forever`) should usually +be called at the end of the ``main()`` function. Atypical applications +may use more than one `IOLoop`, such as one `IOLoop` per thread, or +per `unittest` case. + +""" + +import asyncio +import concurrent.futures +import datetime +import functools +import logging +import numbers +import os +import sys +import time +import math +import random + +from tornado.concurrent import ( + Future, + is_future, + chain_future, + future_set_exc_info, + future_add_done_callback, +) +from tornado.log import app_log +from tornado.util import Configurable, TimeoutError, import_object + +import typing +from typing import Union, Any, Type, Optional, Callable, TypeVar, Tuple, Awaitable + +if typing.TYPE_CHECKING: + from typing import Dict, List # noqa: F401 + + from typing_extensions import Protocol +else: + Protocol = object + + +class _Selectable(Protocol): + def fileno(self) -> int: + pass + + def close(self) -> None: + pass + + +_T = TypeVar("_T") +_S = TypeVar("_S", bound=_Selectable) + + +class IOLoop(Configurable): + """An I/O event loop. + + As of Tornado 6.0, `IOLoop` is a wrapper around the `asyncio` event + loop. + + Example usage for a simple TCP server: + + .. testcode:: + + import errno + import functools + import socket + + import tornado.ioloop + from tornado.iostream import IOStream + + async def handle_connection(connection, address): + stream = IOStream(connection) + message = await stream.read_until_close() + print("message from client:", message.decode().strip()) + + def connection_ready(sock, fd, events): + while True: + try: + connection, address = sock.accept() + except socket.error as e: + if e.args[0] not in (errno.EWOULDBLOCK, errno.EAGAIN): + raise + return + connection.setblocking(0) + io_loop = tornado.ioloop.IOLoop.current() + io_loop.spawn_callback(handle_connection, connection, address) + + if __name__ == '__main__': + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + sock.setblocking(0) + sock.bind(("", 8888)) + sock.listen(128) + + io_loop = tornado.ioloop.IOLoop.current() + callback = functools.partial(connection_ready, sock) + io_loop.add_handler(sock.fileno(), callback, io_loop.READ) + io_loop.start() + + .. testoutput:: + :hide: + + By default, a newly-constructed `IOLoop` becomes the thread's current + `IOLoop`, unless there already is a current `IOLoop`. This behavior + can be controlled with the ``make_current`` argument to the `IOLoop` + constructor: if ``make_current=True``, the new `IOLoop` will always + try to become current and it raises an error if there is already a + current instance. If ``make_current=False``, the new `IOLoop` will + not try to become current. + + In general, an `IOLoop` cannot survive a fork or be shared across + processes in any way. When multiple processes are being used, each + process should create its own `IOLoop`, which also implies that + any objects which depend on the `IOLoop` (such as + `.AsyncHTTPClient`) must also be created in the child processes. + As a guideline, anything that starts processes (including the + `tornado.process` and `multiprocessing` modules) should do so as + early as possible, ideally the first thing the application does + after loading its configuration in ``main()``. + + .. versionchanged:: 4.2 + Added the ``make_current`` keyword argument to the `IOLoop` + constructor. + + .. versionchanged:: 5.0 + + Uses the `asyncio` event loop by default. The + ``IOLoop.configure`` method cannot be used on Python 3 except + to redundantly specify the `asyncio` event loop. + + """ + + # These constants were originally based on constants from the epoll module. + NONE = 0 + READ = 0x001 + WRITE = 0x004 + ERROR = 0x018 + + # In Python 3, _ioloop_for_asyncio maps from asyncio loops to IOLoops. + _ioloop_for_asyncio = dict() # type: Dict[asyncio.AbstractEventLoop, IOLoop] + + @classmethod + def configure( + cls, impl: "Union[None, str, Type[Configurable]]", **kwargs: Any + ) -> None: + if asyncio is not None: + from tornado.platform.asyncio import BaseAsyncIOLoop + + if isinstance(impl, str): + impl = import_object(impl) + if isinstance(impl, type) and not issubclass(impl, BaseAsyncIOLoop): + raise RuntimeError( + "only AsyncIOLoop is allowed when asyncio is available" + ) + super(IOLoop, cls).configure(impl, **kwargs) + + @staticmethod + def instance() -> "IOLoop": + """Deprecated alias for `IOLoop.current()`. + + .. versionchanged:: 5.0 + + Previously, this method returned a global singleton + `IOLoop`, in contrast with the per-thread `IOLoop` returned + by `current()`. In nearly all cases the two were the same + (when they differed, it was generally used from non-Tornado + threads to communicate back to the main thread's `IOLoop`). + This distinction is not present in `asyncio`, so in order + to facilitate integration with that package `instance()` + was changed to be an alias to `current()`. Applications + using the cross-thread communications aspect of + `instance()` should instead set their own global variable + to point to the `IOLoop` they want to use. + + .. deprecated:: 5.0 + """ + return IOLoop.current() + + def install(self) -> None: + """Deprecated alias for `make_current()`. + + .. versionchanged:: 5.0 + + Previously, this method would set this `IOLoop` as the + global singleton used by `IOLoop.instance()`. Now that + `instance()` is an alias for `current()`, `install()` + is an alias for `make_current()`. + + .. deprecated:: 5.0 + """ + self.make_current() + + @staticmethod + def clear_instance() -> None: + """Deprecated alias for `clear_current()`. + + .. versionchanged:: 5.0 + + Previously, this method would clear the `IOLoop` used as + the global singleton by `IOLoop.instance()`. Now that + `instance()` is an alias for `current()`, + `clear_instance()` is an alias for `clear_current()`. + + .. deprecated:: 5.0 + + """ + IOLoop.clear_current() + + @typing.overload + @staticmethod + def current() -> "IOLoop": + pass + + @typing.overload # noqa: F811 + @staticmethod + def current(instance: bool = True) -> Optional["IOLoop"]: + pass + + @staticmethod # noqa: F811 + def current(instance: bool = True) -> Optional["IOLoop"]: + """Returns the current thread's `IOLoop`. + + If an `IOLoop` is currently running or has been marked as + current by `make_current`, returns that instance. If there is + no current `IOLoop` and ``instance`` is true, creates one. + + .. versionchanged:: 4.1 + Added ``instance`` argument to control the fallback to + `IOLoop.instance()`. + .. versionchanged:: 5.0 + On Python 3, control of the current `IOLoop` is delegated + to `asyncio`, with this and other methods as pass-through accessors. + The ``instance`` argument now controls whether an `IOLoop` + is created automatically when there is none, instead of + whether we fall back to `IOLoop.instance()` (which is now + an alias for this method). ``instance=False`` is deprecated, + since even if we do not create an `IOLoop`, this method + may initialize the asyncio loop. + """ + try: + loop = asyncio.get_event_loop() + except (RuntimeError, AssertionError): + if not instance: + return None + raise + try: + return IOLoop._ioloop_for_asyncio[loop] + except KeyError: + if instance: + from tornado.platform.asyncio import AsyncIOMainLoop + + current = AsyncIOMainLoop(make_current=True) # type: Optional[IOLoop] + else: + current = None + return current + + def make_current(self) -> None: + """Makes this the `IOLoop` for the current thread. + + An `IOLoop` automatically becomes current for its thread + when it is started, but it is sometimes useful to call + `make_current` explicitly before starting the `IOLoop`, + so that code run at startup time can find the right + instance. + + .. versionchanged:: 4.1 + An `IOLoop` created while there is no current `IOLoop` + will automatically become current. + + .. versionchanged:: 5.0 + This method also sets the current `asyncio` event loop. + """ + # The asyncio event loops override this method. + raise NotImplementedError() + + @staticmethod + def clear_current() -> None: + """Clears the `IOLoop` for the current thread. + + Intended primarily for use by test frameworks in between tests. + + .. versionchanged:: 5.0 + This method also clears the current `asyncio` event loop. + """ + old = IOLoop.current(instance=False) + if old is not None: + old._clear_current_hook() + if asyncio is None: + IOLoop._current.instance = None + + def _clear_current_hook(self) -> None: + """Instance method called when an IOLoop ceases to be current. + + May be overridden by subclasses as a counterpart to make_current. + """ + pass + + @classmethod + def configurable_base(cls) -> Type[Configurable]: + return IOLoop + + @classmethod + def configurable_default(cls) -> Type[Configurable]: + from tornado.platform.asyncio import AsyncIOLoop + + return AsyncIOLoop + + def initialize(self, make_current: bool = None) -> None: + if make_current is None: + if IOLoop.current(instance=False) is None: + self.make_current() + elif make_current: + current = IOLoop.current(instance=False) + # AsyncIO loops can already be current by this point. + if current is not None and current is not self: + raise RuntimeError("current IOLoop already exists") + self.make_current() + + def close(self, all_fds: bool = False) -> None: + """Closes the `IOLoop`, freeing any resources used. + + If ``all_fds`` is true, all file descriptors registered on the + IOLoop will be closed (not just the ones created by the + `IOLoop` itself). + + Many applications will only use a single `IOLoop` that runs for the + entire lifetime of the process. In that case closing the `IOLoop` + is not necessary since everything will be cleaned up when the + process exits. `IOLoop.close` is provided mainly for scenarios + such as unit tests, which create and destroy a large number of + ``IOLoops``. + + An `IOLoop` must be completely stopped before it can be closed. This + means that `IOLoop.stop()` must be called *and* `IOLoop.start()` must + be allowed to return before attempting to call `IOLoop.close()`. + Therefore the call to `close` will usually appear just after + the call to `start` rather than near the call to `stop`. + + .. versionchanged:: 3.1 + If the `IOLoop` implementation supports non-integer objects + for "file descriptors", those objects will have their + ``close`` method when ``all_fds`` is true. + """ + raise NotImplementedError() + + @typing.overload + def add_handler( + self, fd: int, handler: Callable[[int, int], None], events: int + ) -> None: + pass + + @typing.overload # noqa: F811 + def add_handler( + self, fd: _S, handler: Callable[[_S, int], None], events: int + ) -> None: + pass + + def add_handler( # noqa: F811 + self, fd: Union[int, _Selectable], handler: Callable[..., None], events: int + ) -> None: + """Registers the given handler to receive the given events for ``fd``. + + The ``fd`` argument may either be an integer file descriptor or + a file-like object with a ``fileno()`` and ``close()`` method. + + The ``events`` argument is a bitwise or of the constants + ``IOLoop.READ``, ``IOLoop.WRITE``, and ``IOLoop.ERROR``. + + When an event occurs, ``handler(fd, events)`` will be run. + + .. versionchanged:: 4.0 + Added the ability to pass file-like objects in addition to + raw file descriptors. + """ + raise NotImplementedError() + + def update_handler(self, fd: Union[int, _Selectable], events: int) -> None: + """Changes the events we listen for ``fd``. + + .. versionchanged:: 4.0 + Added the ability to pass file-like objects in addition to + raw file descriptors. + """ + raise NotImplementedError() + + def remove_handler(self, fd: Union[int, _Selectable]) -> None: + """Stop listening for events on ``fd``. + + .. versionchanged:: 4.0 + Added the ability to pass file-like objects in addition to + raw file descriptors. + """ + raise NotImplementedError() + + def start(self) -> None: + """Starts the I/O loop. + + The loop will run until one of the callbacks calls `stop()`, which + will make the loop stop after the current event iteration completes. + """ + raise NotImplementedError() + + def _setup_logging(self) -> None: + """The IOLoop catches and logs exceptions, so it's + important that log output be visible. However, python's + default behavior for non-root loggers (prior to python + 3.2) is to print an unhelpful "no handlers could be + found" message rather than the actual log entry, so we + must explicitly configure logging if we've made it this + far without anything. + + This method should be called from start() in subclasses. + """ + if not any( + [ + logging.getLogger().handlers, + logging.getLogger("tornado").handlers, + logging.getLogger("tornado.application").handlers, + ] + ): + logging.basicConfig() + + def stop(self) -> None: + """Stop the I/O loop. + + If the event loop is not currently running, the next call to `start()` + will return immediately. + + Note that even after `stop` has been called, the `IOLoop` is not + completely stopped until `IOLoop.start` has also returned. + Some work that was scheduled before the call to `stop` may still + be run before the `IOLoop` shuts down. + """ + raise NotImplementedError() + + def run_sync(self, func: Callable, timeout: float = None) -> Any: + """Starts the `IOLoop`, runs the given function, and stops the loop. + + The function must return either an awaitable object or + ``None``. If the function returns an awaitable object, the + `IOLoop` will run until the awaitable is resolved (and + `run_sync()` will return the awaitable's result). If it raises + an exception, the `IOLoop` will stop and the exception will be + re-raised to the caller. + + The keyword-only argument ``timeout`` may be used to set + a maximum duration for the function. If the timeout expires, + a `tornado.util.TimeoutError` is raised. + + This method is useful to allow asynchronous calls in a + ``main()`` function:: + + async def main(): + # do stuff... + + if __name__ == '__main__': + IOLoop.current().run_sync(main) + + .. versionchanged:: 4.3 + Returning a non-``None``, non-awaitable value is now an error. + + .. versionchanged:: 5.0 + If a timeout occurs, the ``func`` coroutine will be cancelled. + + """ + future_cell = [None] # type: List[Optional[Future]] + + def run() -> None: + try: + result = func() + if result is not None: + from tornado.gen import convert_yielded + + result = convert_yielded(result) + except Exception: + fut = Future() # type: Future[Any] + future_cell[0] = fut + future_set_exc_info(fut, sys.exc_info()) + else: + if is_future(result): + future_cell[0] = result + else: + fut = Future() + future_cell[0] = fut + fut.set_result(result) + assert future_cell[0] is not None + self.add_future(future_cell[0], lambda future: self.stop()) + + self.add_callback(run) + if timeout is not None: + + def timeout_callback() -> None: + # If we can cancel the future, do so and wait on it. If not, + # Just stop the loop and return with the task still pending. + # (If we neither cancel nor wait for the task, a warning + # will be logged). + assert future_cell[0] is not None + if not future_cell[0].cancel(): + self.stop() + + timeout_handle = self.add_timeout(self.time() + timeout, timeout_callback) + self.start() + if timeout is not None: + self.remove_timeout(timeout_handle) + assert future_cell[0] is not None + if future_cell[0].cancelled() or not future_cell[0].done(): + raise TimeoutError("Operation timed out after %s seconds" % timeout) + return future_cell[0].result() + + def time(self) -> float: + """Returns the current time according to the `IOLoop`'s clock. + + The return value is a floating-point number relative to an + unspecified time in the past. + + Historically, the IOLoop could be customized to use e.g. + `time.monotonic` instead of `time.time`, but this is not + currently supported and so this method is equivalent to + `time.time`. + + """ + return time.time() + + def add_timeout( + self, + deadline: Union[float, datetime.timedelta], + callback: Callable[..., None], + *args: Any, + **kwargs: Any + ) -> object: + """Runs the ``callback`` at the time ``deadline`` from the I/O loop. + + Returns an opaque handle that may be passed to + `remove_timeout` to cancel. + + ``deadline`` may be a number denoting a time (on the same + scale as `IOLoop.time`, normally `time.time`), or a + `datetime.timedelta` object for a deadline relative to the + current time. Since Tornado 4.0, `call_later` is a more + convenient alternative for the relative case since it does not + require a timedelta object. + + Note that it is not safe to call `add_timeout` from other threads. + Instead, you must use `add_callback` to transfer control to the + `IOLoop`'s thread, and then call `add_timeout` from there. + + Subclasses of IOLoop must implement either `add_timeout` or + `call_at`; the default implementations of each will call + the other. `call_at` is usually easier to implement, but + subclasses that wish to maintain compatibility with Tornado + versions prior to 4.0 must use `add_timeout` instead. + + .. versionchanged:: 4.0 + Now passes through ``*args`` and ``**kwargs`` to the callback. + """ + if isinstance(deadline, numbers.Real): + return self.call_at(deadline, callback, *args, **kwargs) + elif isinstance(deadline, datetime.timedelta): + return self.call_at( + self.time() + deadline.total_seconds(), callback, *args, **kwargs + ) + else: + raise TypeError("Unsupported deadline %r" % deadline) + + def call_later( + self, delay: float, callback: Callable[..., None], *args: Any, **kwargs: Any + ) -> object: + """Runs the ``callback`` after ``delay`` seconds have passed. + + Returns an opaque handle that may be passed to `remove_timeout` + to cancel. Note that unlike the `asyncio` method of the same + name, the returned object does not have a ``cancel()`` method. + + See `add_timeout` for comments on thread-safety and subclassing. + + .. versionadded:: 4.0 + """ + return self.call_at(self.time() + delay, callback, *args, **kwargs) + + def call_at( + self, when: float, callback: Callable[..., None], *args: Any, **kwargs: Any + ) -> object: + """Runs the ``callback`` at the absolute time designated by ``when``. + + ``when`` must be a number using the same reference point as + `IOLoop.time`. + + Returns an opaque handle that may be passed to `remove_timeout` + to cancel. Note that unlike the `asyncio` method of the same + name, the returned object does not have a ``cancel()`` method. + + See `add_timeout` for comments on thread-safety and subclassing. + + .. versionadded:: 4.0 + """ + return self.add_timeout(when, callback, *args, **kwargs) + + def remove_timeout(self, timeout: object) -> None: + """Cancels a pending timeout. + + The argument is a handle as returned by `add_timeout`. It is + safe to call `remove_timeout` even if the callback has already + been run. + """ + raise NotImplementedError() + + def add_callback(self, callback: Callable, *args: Any, **kwargs: Any) -> None: + """Calls the given callback on the next I/O loop iteration. + + It is safe to call this method from any thread at any time, + except from a signal handler. Note that this is the **only** + method in `IOLoop` that makes this thread-safety guarantee; all + other interaction with the `IOLoop` must be done from that + `IOLoop`'s thread. `add_callback()` may be used to transfer + control from other threads to the `IOLoop`'s thread. + + To add a callback from a signal handler, see + `add_callback_from_signal`. + """ + raise NotImplementedError() + + def add_callback_from_signal( + self, callback: Callable, *args: Any, **kwargs: Any + ) -> None: + """Calls the given callback on the next I/O loop iteration. + + Safe for use from a Python signal handler; should not be used + otherwise. + """ + raise NotImplementedError() + + def spawn_callback(self, callback: Callable, *args: Any, **kwargs: Any) -> None: + """Calls the given callback on the next IOLoop iteration. + + As of Tornado 6.0, this method is equivalent to `add_callback`. + + .. versionadded:: 4.0 + """ + self.add_callback(callback, *args, **kwargs) + + def add_future( + self, + future: "Union[Future[_T], concurrent.futures.Future[_T]]", + callback: Callable[["Future[_T]"], None], + ) -> None: + """Schedules a callback on the ``IOLoop`` when the given + `.Future` is finished. + + The callback is invoked with one argument, the + `.Future`. + + This method only accepts `.Future` objects and not other + awaitables (unlike most of Tornado where the two are + interchangeable). + """ + if isinstance(future, Future): + # Note that we specifically do not want the inline behavior of + # tornado.concurrent.future_add_done_callback. We always want + # this callback scheduled on the next IOLoop iteration (which + # asyncio.Future always does). + # + # Wrap the callback in self._run_callback so we control + # the error logging (i.e. it goes to tornado.log.app_log + # instead of asyncio's log). + future.add_done_callback( + lambda f: self._run_callback(functools.partial(callback, future)) + ) + else: + assert is_future(future) + # For concurrent futures, we use self.add_callback, so + # it's fine if future_add_done_callback inlines that call. + future_add_done_callback( + future, lambda f: self.add_callback(callback, future) + ) + + def run_in_executor( + self, + executor: Optional[concurrent.futures.Executor], + func: Callable[..., _T], + *args: Any + ) -> Awaitable[_T]: + """Runs a function in a ``concurrent.futures.Executor``. If + ``executor`` is ``None``, the IO loop's default executor will be used. + + Use `functools.partial` to pass keyword arguments to ``func``. + + .. versionadded:: 5.0 + """ + if executor is None: + if not hasattr(self, "_executor"): + from tornado.process import cpu_count + + self._executor = concurrent.futures.ThreadPoolExecutor( + max_workers=(cpu_count() * 5) + ) # type: concurrent.futures.Executor + executor = self._executor + c_future = executor.submit(func, *args) + # Concurrent Futures are not usable with await. Wrap this in a + # Tornado Future instead, using self.add_future for thread-safety. + t_future = Future() # type: Future[_T] + self.add_future(c_future, lambda f: chain_future(f, t_future)) + return t_future + + def set_default_executor(self, executor: concurrent.futures.Executor) -> None: + """Sets the default executor to use with :meth:`run_in_executor`. + + .. versionadded:: 5.0 + """ + self._executor = executor + + def _run_callback(self, callback: Callable[[], Any]) -> None: + """Runs a callback with error handling. + + .. versionchanged:: 6.0 + + CancelledErrors are no longer logged. + """ + try: + ret = callback() + if ret is not None: + from tornado import gen + + # Functions that return Futures typically swallow all + # exceptions and store them in the Future. If a Future + # makes it out to the IOLoop, ensure its exception (if any) + # gets logged too. + try: + ret = gen.convert_yielded(ret) + except gen.BadYieldError: + # It's not unusual for add_callback to be used with + # methods returning a non-None and non-yieldable + # result, which should just be ignored. + pass + else: + self.add_future(ret, self._discard_future_result) + except asyncio.CancelledError: + pass + except Exception: + app_log.error("Exception in callback %r", callback, exc_info=True) + + def _discard_future_result(self, future: Future) -> None: + """Avoid unhandled-exception warnings from spawned coroutines.""" + future.result() + + def split_fd( + self, fd: Union[int, _Selectable] + ) -> Tuple[int, Union[int, _Selectable]]: + # """Returns an (fd, obj) pair from an ``fd`` parameter. + + # We accept both raw file descriptors and file-like objects as + # input to `add_handler` and related methods. When a file-like + # object is passed, we must retain the object itself so we can + # close it correctly when the `IOLoop` shuts down, but the + # poller interfaces favor file descriptors (they will accept + # file-like objects and call ``fileno()`` for you, but they + # always return the descriptor itself). + + # This method is provided for use by `IOLoop` subclasses and should + # not generally be used by application code. + + # .. versionadded:: 4.0 + # """ + if isinstance(fd, int): + return fd, fd + return fd.fileno(), fd + + def close_fd(self, fd: Union[int, _Selectable]) -> None: + # """Utility method to close an ``fd``. + + # If ``fd`` is a file-like object, we close it directly; otherwise + # we use `os.close`. + + # This method is provided for use by `IOLoop` subclasses (in + # implementations of ``IOLoop.close(all_fds=True)`` and should + # not generally be used by application code. + + # .. versionadded:: 4.0 + # """ + try: + if isinstance(fd, int): + os.close(fd) + else: + fd.close() + except OSError: + pass + + +class _Timeout(object): + """An IOLoop timeout, a UNIX timestamp and a callback""" + + # Reduce memory overhead when there are lots of pending callbacks + __slots__ = ["deadline", "callback", "tdeadline"] + + def __init__( + self, deadline: float, callback: Callable[[], None], io_loop: IOLoop + ) -> None: + if not isinstance(deadline, numbers.Real): + raise TypeError("Unsupported deadline %r" % deadline) + self.deadline = deadline + self.callback = callback + self.tdeadline = ( + deadline, + next(io_loop._timeout_counter), + ) # type: Tuple[float, int] + + # Comparison methods to sort by deadline, with object id as a tiebreaker + # to guarantee a consistent ordering. The heapq module uses __le__ + # in python2.5, and __lt__ in 2.6+ (sort() and most other comparisons + # use __lt__). + def __lt__(self, other: "_Timeout") -> bool: + return self.tdeadline < other.tdeadline + + def __le__(self, other: "_Timeout") -> bool: + return self.tdeadline <= other.tdeadline + + +class PeriodicCallback(object): + """Schedules the given callback to be called periodically. + + The callback is called every ``callback_time`` milliseconds. + Note that the timeout is given in milliseconds, while most other + time-related functions in Tornado use seconds. + + If ``jitter`` is specified, each callback time will be randomly selected + within a window of ``jitter * callback_time`` milliseconds. + Jitter can be used to reduce alignment of events with similar periods. + A jitter of 0.1 means allowing a 10% variation in callback time. + The window is centered on ``callback_time`` so the total number of calls + within a given interval should not be significantly affected by adding + jitter. + + If the callback runs for longer than ``callback_time`` milliseconds, + subsequent invocations will be skipped to get back on schedule. + + `start` must be called after the `PeriodicCallback` is created. + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been removed. + + .. versionchanged:: 5.1 + The ``jitter`` argument is added. + """ + + def __init__( + self, callback: Callable[[], None], callback_time: float, jitter: float = 0 + ) -> None: + self.callback = callback + if callback_time <= 0: + raise ValueError("Periodic callback must have a positive callback_time") + self.callback_time = callback_time + self.jitter = jitter + self._running = False + self._timeout = None # type: object + + def start(self) -> None: + """Starts the timer.""" + # Looking up the IOLoop here allows to first instantiate the + # PeriodicCallback in another thread, then start it using + # IOLoop.add_callback(). + self.io_loop = IOLoop.current() + self._running = True + self._next_timeout = self.io_loop.time() + self._schedule_next() + + def stop(self) -> None: + """Stops the timer.""" + self._running = False + if self._timeout is not None: + self.io_loop.remove_timeout(self._timeout) + self._timeout = None + + def is_running(self) -> bool: + """Returns ``True`` if this `.PeriodicCallback` has been started. + + .. versionadded:: 4.1 + """ + return self._running + + def _run(self) -> None: + if not self._running: + return + try: + return self.callback() + except Exception: + app_log.error("Exception in callback %r", self.callback, exc_info=True) + finally: + self._schedule_next() + + def _schedule_next(self) -> None: + if self._running: + self._update_next(self.io_loop.time()) + self._timeout = self.io_loop.add_timeout(self._next_timeout, self._run) + + def _update_next(self, current_time: float) -> None: + callback_time_sec = self.callback_time / 1000.0 + if self.jitter: + # apply jitter fraction + callback_time_sec *= 1 + (self.jitter * (random.random() - 0.5)) + if self._next_timeout <= current_time: + # The period should be measured from the start of one call + # to the start of the next. If one call takes too long, + # skip cycles to get back to a multiple of the original + # schedule. + self._next_timeout += ( + math.floor((current_time - self._next_timeout) / callback_time_sec) + 1 + ) * callback_time_sec + else: + # If the clock moved backwards, ensure we advance the next + # timeout instead of recomputing the same value again. + # This may result in long gaps between callbacks if the + # clock jumps backwards by a lot, but the far more common + # scenario is a small NTP adjustment that should just be + # ignored. + # + # Note that on some systems if time.time() runs slower + # than time.monotonic() (most common on windows), we + # effectively experience a small backwards time jump on + # every iteration because PeriodicCallback uses + # time.time() while asyncio schedules callbacks using + # time.monotonic(). + # https://github.com/tornadoweb/tornado/issues/2333 + self._next_timeout += callback_time_sec diff --git a/server/www/packages/packages-linux/x64/tornado/iostream.py b/server/www/packages/packages-linux/x64/tornado/iostream.py index ee30592..6504f8e 100644 --- a/server/www/packages/packages-linux/x64/tornado/iostream.py +++ b/server/www/packages/packages-linux/x64/tornado/iostream.py @@ -1,1655 +1,1681 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Utility classes to write to and read from non-blocking files and sockets. - -Contents: - -* `BaseIOStream`: Generic interface for reading and writing. -* `IOStream`: Implementation of BaseIOStream using non-blocking sockets. -* `SSLIOStream`: SSL-aware version of IOStream. -* `PipeIOStream`: Pipe-based IOStream implementation. -""" - -import asyncio -import collections -import errno -import io -import numbers -import os -import socket -import ssl -import sys -import re - -from tornado.concurrent import Future, future_set_result_unless_cancelled -from tornado import ioloop -from tornado.log import gen_log -from tornado.netutil import ssl_wrap_socket, _client_ssl_defaults, _server_ssl_defaults -from tornado.util import errno_from_exception - -import typing -from typing import ( - Union, - Optional, - Awaitable, - Callable, - Pattern, - Any, - Dict, - TypeVar, - Tuple, -) -from types import TracebackType - -if typing.TYPE_CHECKING: - from typing import Deque, List, Type # noqa: F401 - -_IOStreamType = TypeVar("_IOStreamType", bound="IOStream") - -try: - from tornado.platform.posix import _set_nonblocking -except ImportError: - _set_nonblocking = None # type: ignore - -# These errnos indicate that a non-blocking operation must be retried -# at a later time. On most platforms they're the same value, but on -# some they differ. -_ERRNO_WOULDBLOCK = (errno.EWOULDBLOCK, errno.EAGAIN) - -if hasattr(errno, "WSAEWOULDBLOCK"): - _ERRNO_WOULDBLOCK += (errno.WSAEWOULDBLOCK,) # type: ignore - -# These errnos indicate that a connection has been abruptly terminated. -# They should be caught and handled less noisily than other errors. -_ERRNO_CONNRESET = (errno.ECONNRESET, errno.ECONNABORTED, errno.EPIPE, errno.ETIMEDOUT) - -if hasattr(errno, "WSAECONNRESET"): - _ERRNO_CONNRESET += ( # type: ignore - errno.WSAECONNRESET, # type: ignore - errno.WSAECONNABORTED, # type: ignore - errno.WSAETIMEDOUT, # type: ignore - ) - -if sys.platform == "darwin": - # OSX appears to have a race condition that causes send(2) to return - # EPROTOTYPE if called while a socket is being torn down: - # http://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ - # Since the socket is being closed anyway, treat this as an ECONNRESET - # instead of an unexpected error. - _ERRNO_CONNRESET += (errno.EPROTOTYPE,) # type: ignore - -# More non-portable errnos: -_ERRNO_INPROGRESS = (errno.EINPROGRESS,) - -if hasattr(errno, "WSAEINPROGRESS"): - _ERRNO_INPROGRESS += (errno.WSAEINPROGRESS,) # type: ignore - -_WINDOWS = sys.platform.startswith("win") - - -class StreamClosedError(IOError): - """Exception raised by `IOStream` methods when the stream is closed. - - Note that the close callback is scheduled to run *after* other - callbacks on the stream (to allow for buffered data to be processed), - so you may see this error before you see the close callback. - - The ``real_error`` attribute contains the underlying error that caused - the stream to close (if any). - - .. versionchanged:: 4.3 - Added the ``real_error`` attribute. - """ - - def __init__(self, real_error: BaseException = None) -> None: - super(StreamClosedError, self).__init__("Stream is closed") - self.real_error = real_error - - -class UnsatisfiableReadError(Exception): - """Exception raised when a read cannot be satisfied. - - Raised by ``read_until`` and ``read_until_regex`` with a ``max_bytes`` - argument. - """ - - pass - - -class StreamBufferFullError(Exception): - """Exception raised by `IOStream` methods when the buffer is full. - """ - - -class _StreamBuffer(object): - """ - A specialized buffer that tries to avoid copies when large pieces - of data are encountered. - """ - - def __init__(self) -> None: - # A sequence of (False, bytearray) and (True, memoryview) objects - self._buffers = ( - collections.deque() - ) # type: Deque[Tuple[bool, Union[bytearray, memoryview]]] - # Position in the first buffer - self._first_pos = 0 - self._size = 0 - - def __len__(self) -> int: - return self._size - - # Data above this size will be appended separately instead - # of extending an existing bytearray - _large_buf_threshold = 2048 - - def append(self, data: Union[bytes, bytearray, memoryview]) -> None: - """ - Append the given piece of data (should be a buffer-compatible object). - """ - size = len(data) - if size > self._large_buf_threshold: - if not isinstance(data, memoryview): - data = memoryview(data) - self._buffers.append((True, data)) - elif size > 0: - if self._buffers: - is_memview, b = self._buffers[-1] - new_buf = is_memview or len(b) >= self._large_buf_threshold - else: - new_buf = True - if new_buf: - self._buffers.append((False, bytearray(data))) - else: - b += data # type: ignore - - self._size += size - - def peek(self, size: int) -> memoryview: - """ - Get a view over at most ``size`` bytes (possibly fewer) at the - current buffer position. - """ - assert size > 0 - try: - is_memview, b = self._buffers[0] - except IndexError: - return memoryview(b"") - - pos = self._first_pos - if is_memview: - return typing.cast(memoryview, b[pos : pos + size]) - else: - return memoryview(b)[pos : pos + size] - - def advance(self, size: int) -> None: - """ - Advance the current buffer position by ``size`` bytes. - """ - assert 0 < size <= self._size - self._size -= size - pos = self._first_pos - - buffers = self._buffers - while buffers and size > 0: - is_large, b = buffers[0] - b_remain = len(b) - size - pos - if b_remain <= 0: - buffers.popleft() - size -= len(b) - pos - pos = 0 - elif is_large: - pos += size - size = 0 - else: - # Amortized O(1) shrink for Python 2 - pos += size - if len(b) <= 2 * pos: - del typing.cast(bytearray, b)[:pos] - pos = 0 - size = 0 - - assert size == 0 - self._first_pos = pos - - -class BaseIOStream(object): - """A utility class to write to and read from a non-blocking file or socket. - - We support a non-blocking ``write()`` and a family of ``read_*()`` - methods. When the operation completes, the ``Awaitable`` will resolve - with the data read (or ``None`` for ``write()``). All outstanding - ``Awaitables`` will resolve with a `StreamClosedError` when the - stream is closed; `.BaseIOStream.set_close_callback` can also be used - to be notified of a closed stream. - - When a stream is closed due to an error, the IOStream's ``error`` - attribute contains the exception object. - - Subclasses must implement `fileno`, `close_fd`, `write_to_fd`, - `read_from_fd`, and optionally `get_fd_error`. - - """ - - def __init__( - self, - max_buffer_size: int = None, - read_chunk_size: int = None, - max_write_buffer_size: int = None, - ) -> None: - """`BaseIOStream` constructor. - - :arg max_buffer_size: Maximum amount of incoming data to buffer; - defaults to 100MB. - :arg read_chunk_size: Amount of data to read at one time from the - underlying transport; defaults to 64KB. - :arg max_write_buffer_size: Amount of outgoing data to buffer; - defaults to unlimited. - - .. versionchanged:: 4.0 - Add the ``max_write_buffer_size`` parameter. Changed default - ``read_chunk_size`` to 64KB. - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been - removed. - """ - self.io_loop = ioloop.IOLoop.current() - self.max_buffer_size = max_buffer_size or 104857600 - # A chunk size that is too close to max_buffer_size can cause - # spurious failures. - self.read_chunk_size = min(read_chunk_size or 65536, self.max_buffer_size // 2) - self.max_write_buffer_size = max_write_buffer_size - self.error = None # type: Optional[BaseException] - self._read_buffer = bytearray() - self._read_buffer_pos = 0 - self._read_buffer_size = 0 - self._user_read_buffer = False - self._after_user_read_buffer = None # type: Optional[bytearray] - self._write_buffer = _StreamBuffer() - self._total_write_index = 0 - self._total_write_done_index = 0 - self._read_delimiter = None # type: Optional[bytes] - self._read_regex = None # type: Optional[Pattern] - self._read_max_bytes = None # type: Optional[int] - self._read_bytes = None # type: Optional[int] - self._read_partial = False - self._read_until_close = False - self._read_future = None # type: Optional[Future] - self._write_futures = ( - collections.deque() - ) # type: Deque[Tuple[int, Future[None]]] - self._close_callback = None # type: Optional[Callable[[], None]] - self._connect_future = None # type: Optional[Future[IOStream]] - # _ssl_connect_future should be defined in SSLIOStream - # but it's here so we can clean it up in _signal_closed - # TODO: refactor that so subclasses can add additional futures - # to be cancelled. - self._ssl_connect_future = None # type: Optional[Future[SSLIOStream]] - self._connecting = False - self._state = None # type: Optional[int] - self._closed = False - - def fileno(self) -> Union[int, ioloop._Selectable]: - """Returns the file descriptor for this stream.""" - raise NotImplementedError() - - def close_fd(self) -> None: - """Closes the file underlying this stream. - - ``close_fd`` is called by `BaseIOStream` and should not be called - elsewhere; other users should call `close` instead. - """ - raise NotImplementedError() - - def write_to_fd(self, data: memoryview) -> int: - """Attempts to write ``data`` to the underlying file. - - Returns the number of bytes written. - """ - raise NotImplementedError() - - def read_from_fd(self, buf: Union[bytearray, memoryview]) -> Optional[int]: - """Attempts to read from the underlying file. - - Reads up to ``len(buf)`` bytes, storing them in the buffer. - Returns the number of bytes read. Returns None if there was - nothing to read (the socket returned `~errno.EWOULDBLOCK` or - equivalent), and zero on EOF. - - .. versionchanged:: 5.0 - - Interface redesigned to take a buffer and return a number - of bytes instead of a freshly-allocated object. - """ - raise NotImplementedError() - - def get_fd_error(self) -> Optional[Exception]: - """Returns information about any error on the underlying file. - - This method is called after the `.IOLoop` has signaled an error on the - file descriptor, and should return an Exception (such as `socket.error` - with additional information, or None if no such information is - available. - """ - return None - - def read_until_regex(self, regex: bytes, max_bytes: int = None) -> Awaitable[bytes]: - """Asynchronously read until we have matched the given regex. - - The result includes the data that matches the regex and anything - that came before it. - - If ``max_bytes`` is not None, the connection will be closed - if more than ``max_bytes`` bytes have been read and the regex is - not satisfied. - - .. versionchanged:: 4.0 - Added the ``max_bytes`` argument. The ``callback`` argument is - now optional and a `.Future` will be returned if it is omitted. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - `.Future` instead. - - """ - future = self._start_read() - self._read_regex = re.compile(regex) - self._read_max_bytes = max_bytes - try: - self._try_inline_read() - except UnsatisfiableReadError as e: - # Handle this the same way as in _handle_events. - gen_log.info("Unsatisfiable read, closing connection: %s" % e) - self.close(exc_info=e) - return future - except: - # Ensure that the future doesn't log an error because its - # failure was never examined. - future.add_done_callback(lambda f: f.exception()) - raise - return future - - def read_until(self, delimiter: bytes, max_bytes: int = None) -> Awaitable[bytes]: - """Asynchronously read until we have found the given delimiter. - - The result includes all the data read including the delimiter. - - If ``max_bytes`` is not None, the connection will be closed - if more than ``max_bytes`` bytes have been read and the delimiter - is not found. - - .. versionchanged:: 4.0 - Added the ``max_bytes`` argument. The ``callback`` argument is - now optional and a `.Future` will be returned if it is omitted. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - `.Future` instead. - """ - future = self._start_read() - self._read_delimiter = delimiter - self._read_max_bytes = max_bytes - try: - self._try_inline_read() - except UnsatisfiableReadError as e: - # Handle this the same way as in _handle_events. - gen_log.info("Unsatisfiable read, closing connection: %s" % e) - self.close(exc_info=e) - return future - except: - future.add_done_callback(lambda f: f.exception()) - raise - return future - - def read_bytes(self, num_bytes: int, partial: bool = False) -> Awaitable[bytes]: - """Asynchronously read a number of bytes. - - If ``partial`` is true, data is returned as soon as we have - any bytes to return (but never more than ``num_bytes``) - - .. versionchanged:: 4.0 - Added the ``partial`` argument. The callback argument is now - optional and a `.Future` will be returned if it is omitted. - - .. versionchanged:: 6.0 - - The ``callback`` and ``streaming_callback`` arguments have - been removed. Use the returned `.Future` (and - ``partial=True`` for ``streaming_callback``) instead. - - """ - future = self._start_read() - assert isinstance(num_bytes, numbers.Integral) - self._read_bytes = num_bytes - self._read_partial = partial - try: - self._try_inline_read() - except: - future.add_done_callback(lambda f: f.exception()) - raise - return future - - def read_into(self, buf: bytearray, partial: bool = False) -> Awaitable[int]: - """Asynchronously read a number of bytes. - - ``buf`` must be a writable buffer into which data will be read. - - If ``partial`` is true, the callback is run as soon as any bytes - have been read. Otherwise, it is run when the ``buf`` has been - entirely filled with read data. - - .. versionadded:: 5.0 - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - `.Future` instead. - - """ - future = self._start_read() - - # First copy data already in read buffer - available_bytes = self._read_buffer_size - n = len(buf) - if available_bytes >= n: - end = self._read_buffer_pos + n - buf[:] = memoryview(self._read_buffer)[self._read_buffer_pos : end] - del self._read_buffer[:end] - self._after_user_read_buffer = self._read_buffer - elif available_bytes > 0: - buf[:available_bytes] = memoryview(self._read_buffer)[ - self._read_buffer_pos : - ] - - # Set up the supplied buffer as our temporary read buffer. - # The original (if it had any data remaining) has been - # saved for later. - self._user_read_buffer = True - self._read_buffer = buf - self._read_buffer_pos = 0 - self._read_buffer_size = available_bytes - self._read_bytes = n - self._read_partial = partial - - try: - self._try_inline_read() - except: - future.add_done_callback(lambda f: f.exception()) - raise - return future - - def read_until_close(self) -> Awaitable[bytes]: - """Asynchronously reads all data from the socket until it is closed. - - This will buffer all available data until ``max_buffer_size`` - is reached. If flow control or cancellation are desired, use a - loop with `read_bytes(partial=True) <.read_bytes>` instead. - - .. versionchanged:: 4.0 - The callback argument is now optional and a `.Future` will - be returned if it is omitted. - - .. versionchanged:: 6.0 - - The ``callback`` and ``streaming_callback`` arguments have - been removed. Use the returned `.Future` (and `read_bytes` - with ``partial=True`` for ``streaming_callback``) instead. - - """ - future = self._start_read() - if self.closed(): - self._finish_read(self._read_buffer_size, False) - return future - self._read_until_close = True - try: - self._try_inline_read() - except: - future.add_done_callback(lambda f: f.exception()) - raise - return future - - def write(self, data: Union[bytes, memoryview]) -> "Future[None]": - """Asynchronously write the given data to this stream. - - This method returns a `.Future` that resolves (with a result - of ``None``) when the write has been completed. - - The ``data`` argument may be of type `bytes` or `memoryview`. - - .. versionchanged:: 4.0 - Now returns a `.Future` if no callback is given. - - .. versionchanged:: 4.5 - Added support for `memoryview` arguments. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - `.Future` instead. - - """ - self._check_closed() - if data: - if ( - self.max_write_buffer_size is not None - and len(self._write_buffer) + len(data) > self.max_write_buffer_size - ): - raise StreamBufferFullError("Reached maximum write buffer size") - self._write_buffer.append(data) - self._total_write_index += len(data) - future = Future() # type: Future[None] - future.add_done_callback(lambda f: f.exception()) - self._write_futures.append((self._total_write_index, future)) - if not self._connecting: - self._handle_write() - if self._write_buffer: - self._add_io_state(self.io_loop.WRITE) - self._maybe_add_error_listener() - return future - - def set_close_callback(self, callback: Optional[Callable[[], None]]) -> None: - """Call the given callback when the stream is closed. - - This mostly is not necessary for applications that use the - `.Future` interface; all outstanding ``Futures`` will resolve - with a `StreamClosedError` when the stream is closed. However, - it is still useful as a way to signal that the stream has been - closed while no other read or write is in progress. - - Unlike other callback-based interfaces, ``set_close_callback`` - was not removed in Tornado 6.0. - """ - self._close_callback = callback - self._maybe_add_error_listener() - - def close( - self, - exc_info: Union[ - None, - bool, - BaseException, - Tuple[ - "Optional[Type[BaseException]]", - Optional[BaseException], - Optional[TracebackType], - ], - ] = False, - ) -> None: - """Close this stream. - - If ``exc_info`` is true, set the ``error`` attribute to the current - exception from `sys.exc_info` (or if ``exc_info`` is a tuple, - use that instead of `sys.exc_info`). - """ - if not self.closed(): - if exc_info: - if isinstance(exc_info, tuple): - self.error = exc_info[1] - elif isinstance(exc_info, BaseException): - self.error = exc_info - else: - exc_info = sys.exc_info() - if any(exc_info): - self.error = exc_info[1] - if self._read_until_close: - self._read_until_close = False - self._finish_read(self._read_buffer_size, False) - if self._state is not None: - self.io_loop.remove_handler(self.fileno()) - self._state = None - self.close_fd() - self._closed = True - self._signal_closed() - - def _signal_closed(self) -> None: - futures = [] # type: List[Future] - if self._read_future is not None: - futures.append(self._read_future) - self._read_future = None - futures += [future for _, future in self._write_futures] - self._write_futures.clear() - if self._connect_future is not None: - futures.append(self._connect_future) - self._connect_future = None - for future in futures: - if not future.done(): - future.set_exception(StreamClosedError(real_error=self.error)) - # Reference the exception to silence warnings. Annoyingly, - # this raises if the future was cancelled, but just - # returns any other error. - try: - future.exception() - except asyncio.CancelledError: - pass - if self._ssl_connect_future is not None: - # _ssl_connect_future expects to see the real exception (typically - # an ssl.SSLError), not just StreamClosedError. - if not self._ssl_connect_future.done(): - if self.error is not None: - self._ssl_connect_future.set_exception(self.error) - else: - self._ssl_connect_future.set_exception(StreamClosedError()) - self._ssl_connect_future.exception() - self._ssl_connect_future = None - if self._close_callback is not None: - cb = self._close_callback - self._close_callback = None - self.io_loop.add_callback(cb) - # Clear the buffers so they can be cleared immediately even - # if the IOStream object is kept alive by a reference cycle. - # TODO: Clear the read buffer too; it currently breaks some tests. - self._write_buffer = None # type: ignore - - def reading(self) -> bool: - """Returns ``True`` if we are currently reading from the stream.""" - return self._read_future is not None - - def writing(self) -> bool: - """Returns ``True`` if we are currently writing to the stream.""" - return bool(self._write_buffer) - - def closed(self) -> bool: - """Returns ``True`` if the stream has been closed.""" - return self._closed - - def set_nodelay(self, value: bool) -> None: - """Sets the no-delay flag for this stream. - - By default, data written to TCP streams may be held for a time - to make the most efficient use of bandwidth (according to - Nagle's algorithm). The no-delay flag requests that data be - written as soon as possible, even if doing so would consume - additional bandwidth. - - This flag is currently defined only for TCP-based ``IOStreams``. - - .. versionadded:: 3.1 - """ - pass - - def _handle_connect(self) -> None: - raise NotImplementedError() - - def _handle_events(self, fd: Union[int, ioloop._Selectable], events: int) -> None: - if self.closed(): - gen_log.warning("Got events for closed stream %s", fd) - return - try: - if self._connecting: - # Most IOLoops will report a write failed connect - # with the WRITE event, but SelectIOLoop reports a - # READ as well so we must check for connecting before - # either. - self._handle_connect() - if self.closed(): - return - if events & self.io_loop.READ: - self._handle_read() - if self.closed(): - return - if events & self.io_loop.WRITE: - self._handle_write() - if self.closed(): - return - if events & self.io_loop.ERROR: - self.error = self.get_fd_error() - # We may have queued up a user callback in _handle_read or - # _handle_write, so don't close the IOStream until those - # callbacks have had a chance to run. - self.io_loop.add_callback(self.close) - return - state = self.io_loop.ERROR - if self.reading(): - state |= self.io_loop.READ - if self.writing(): - state |= self.io_loop.WRITE - if state == self.io_loop.ERROR and self._read_buffer_size == 0: - # If the connection is idle, listen for reads too so - # we can tell if the connection is closed. If there is - # data in the read buffer we won't run the close callback - # yet anyway, so we don't need to listen in this case. - state |= self.io_loop.READ - if state != self._state: - assert ( - self._state is not None - ), "shouldn't happen: _handle_events without self._state" - self._state = state - self.io_loop.update_handler(self.fileno(), self._state) - except UnsatisfiableReadError as e: - gen_log.info("Unsatisfiable read, closing connection: %s" % e) - self.close(exc_info=e) - except Exception as e: - gen_log.error("Uncaught exception, closing connection.", exc_info=True) - self.close(exc_info=e) - raise - - def _read_to_buffer_loop(self) -> Optional[int]: - # This method is called from _handle_read and _try_inline_read. - if self._read_bytes is not None: - target_bytes = self._read_bytes # type: Optional[int] - elif self._read_max_bytes is not None: - target_bytes = self._read_max_bytes - elif self.reading(): - # For read_until without max_bytes, or - # read_until_close, read as much as we can before - # scanning for the delimiter. - target_bytes = None - else: - target_bytes = 0 - next_find_pos = 0 - while not self.closed(): - # Read from the socket until we get EWOULDBLOCK or equivalent. - # SSL sockets do some internal buffering, and if the data is - # sitting in the SSL object's buffer select() and friends - # can't see it; the only way to find out if it's there is to - # try to read it. - if self._read_to_buffer() == 0: - break - - # If we've read all the bytes we can use, break out of - # this loop. - - # If we've reached target_bytes, we know we're done. - if target_bytes is not None and self._read_buffer_size >= target_bytes: - break - - # Otherwise, we need to call the more expensive find_read_pos. - # It's inefficient to do this on every read, so instead - # do it on the first read and whenever the read buffer - # size has doubled. - if self._read_buffer_size >= next_find_pos: - pos = self._find_read_pos() - if pos is not None: - return pos - next_find_pos = self._read_buffer_size * 2 - return self._find_read_pos() - - def _handle_read(self) -> None: - try: - pos = self._read_to_buffer_loop() - except UnsatisfiableReadError: - raise - except asyncio.CancelledError: - raise - except Exception as e: - gen_log.warning("error on read: %s" % e) - self.close(exc_info=e) - return - if pos is not None: - self._read_from_buffer(pos) - - def _start_read(self) -> Future: - self._check_closed() # Before reading, check that stream is not closed. - assert self._read_future is None, "Already reading" - self._read_future = Future() - return self._read_future - - def _finish_read(self, size: int, streaming: bool) -> None: - if self._user_read_buffer: - self._read_buffer = self._after_user_read_buffer or bytearray() - self._after_user_read_buffer = None - self._read_buffer_pos = 0 - self._read_buffer_size = len(self._read_buffer) - self._user_read_buffer = False - result = size # type: Union[int, bytes] - else: - result = self._consume(size) - if self._read_future is not None: - future = self._read_future - self._read_future = None - future_set_result_unless_cancelled(future, result) - self._maybe_add_error_listener() - - def _try_inline_read(self) -> None: - """Attempt to complete the current read operation from buffered data. - - If the read can be completed without blocking, schedules the - read callback on the next IOLoop iteration; otherwise starts - listening for reads on the socket. - """ - # See if we've already got the data from a previous read - pos = self._find_read_pos() - if pos is not None: - self._read_from_buffer(pos) - return - self._check_closed() - pos = self._read_to_buffer_loop() - if pos is not None: - self._read_from_buffer(pos) - return - # We couldn't satisfy the read inline, so make sure we're - # listening for new data unless the stream is closed. - if not self.closed(): - self._add_io_state(ioloop.IOLoop.READ) - - def _read_to_buffer(self) -> Optional[int]: - """Reads from the socket and appends the result to the read buffer. - - Returns the number of bytes read. Returns 0 if there is nothing - to read (i.e. the read returns EWOULDBLOCK or equivalent). On - error closes the socket and raises an exception. - """ - try: - while True: - try: - if self._user_read_buffer: - buf = memoryview(self._read_buffer)[ - self._read_buffer_size : - ] # type: Union[memoryview, bytearray] - else: - buf = bytearray(self.read_chunk_size) - bytes_read = self.read_from_fd(buf) - except (socket.error, IOError, OSError) as e: - if errno_from_exception(e) == errno.EINTR: - continue - # ssl.SSLError is a subclass of socket.error - if self._is_connreset(e): - # Treat ECONNRESET as a connection close rather than - # an error to minimize log spam (the exception will - # be available on self.error for apps that care). - self.close(exc_info=e) - return None - self.close(exc_info=e) - raise - break - if bytes_read is None: - return 0 - elif bytes_read == 0: - self.close() - return 0 - if not self._user_read_buffer: - self._read_buffer += memoryview(buf)[:bytes_read] - self._read_buffer_size += bytes_read - finally: - # Break the reference to buf so we don't waste a chunk's worth of - # memory in case an exception hangs on to our stack frame. - del buf - if self._read_buffer_size > self.max_buffer_size: - gen_log.error("Reached maximum read buffer size") - self.close() - raise StreamBufferFullError("Reached maximum read buffer size") - return bytes_read - - def _read_from_buffer(self, pos: int) -> None: - """Attempts to complete the currently-pending read from the buffer. - - The argument is either a position in the read buffer or None, - as returned by _find_read_pos. - """ - self._read_bytes = self._read_delimiter = self._read_regex = None - self._read_partial = False - self._finish_read(pos, False) - - def _find_read_pos(self) -> Optional[int]: - """Attempts to find a position in the read buffer that satisfies - the currently-pending read. - - Returns a position in the buffer if the current read can be satisfied, - or None if it cannot. - """ - if self._read_bytes is not None and ( - self._read_buffer_size >= self._read_bytes - or (self._read_partial and self._read_buffer_size > 0) - ): - num_bytes = min(self._read_bytes, self._read_buffer_size) - return num_bytes - elif self._read_delimiter is not None: - # Multi-byte delimiters (e.g. '\r\n') may straddle two - # chunks in the read buffer, so we can't easily find them - # without collapsing the buffer. However, since protocols - # using delimited reads (as opposed to reads of a known - # length) tend to be "line" oriented, the delimiter is likely - # to be in the first few chunks. Merge the buffer gradually - # since large merges are relatively expensive and get undone in - # _consume(). - if self._read_buffer: - loc = self._read_buffer.find( - self._read_delimiter, self._read_buffer_pos - ) - if loc != -1: - loc -= self._read_buffer_pos - delimiter_len = len(self._read_delimiter) - self._check_max_bytes(self._read_delimiter, loc + delimiter_len) - return loc + delimiter_len - self._check_max_bytes(self._read_delimiter, self._read_buffer_size) - elif self._read_regex is not None: - if self._read_buffer: - m = self._read_regex.search(self._read_buffer, self._read_buffer_pos) - if m is not None: - loc = m.end() - self._read_buffer_pos - self._check_max_bytes(self._read_regex, loc) - return loc - self._check_max_bytes(self._read_regex, self._read_buffer_size) - return None - - def _check_max_bytes(self, delimiter: Union[bytes, Pattern], size: int) -> None: - if self._read_max_bytes is not None and size > self._read_max_bytes: - raise UnsatisfiableReadError( - "delimiter %r not found within %d bytes" - % (delimiter, self._read_max_bytes) - ) - - def _handle_write(self) -> None: - while True: - size = len(self._write_buffer) - if not size: - break - assert size > 0 - try: - if _WINDOWS: - # On windows, socket.send blows up if given a - # write buffer that's too large, instead of just - # returning the number of bytes it was able to - # process. Therefore we must not call socket.send - # with more than 128KB at a time. - size = 128 * 1024 - - num_bytes = self.write_to_fd(self._write_buffer.peek(size)) - if num_bytes == 0: - break - self._write_buffer.advance(num_bytes) - self._total_write_done_index += num_bytes - except (socket.error, IOError, OSError) as e: - if e.args[0] in _ERRNO_WOULDBLOCK: - break - else: - if not self._is_connreset(e): - # Broken pipe errors are usually caused by connection - # reset, and its better to not log EPIPE errors to - # minimize log spam - gen_log.warning("Write error on %s: %s", self.fileno(), e) - self.close(exc_info=e) - return - - while self._write_futures: - index, future = self._write_futures[0] - if index > self._total_write_done_index: - break - self._write_futures.popleft() - future_set_result_unless_cancelled(future, None) - - def _consume(self, loc: int) -> bytes: - # Consume loc bytes from the read buffer and return them - if loc == 0: - return b"" - assert loc <= self._read_buffer_size - # Slice the bytearray buffer into bytes, without intermediate copying - b = ( - memoryview(self._read_buffer)[ - self._read_buffer_pos : self._read_buffer_pos + loc - ] - ).tobytes() - self._read_buffer_pos += loc - self._read_buffer_size -= loc - # Amortized O(1) shrink - # (this heuristic is implemented natively in Python 3.4+ - # but is replicated here for Python 2) - if self._read_buffer_pos > self._read_buffer_size: - del self._read_buffer[: self._read_buffer_pos] - self._read_buffer_pos = 0 - return b - - def _check_closed(self) -> None: - if self.closed(): - raise StreamClosedError(real_error=self.error) - - def _maybe_add_error_listener(self) -> None: - # This method is part of an optimization: to detect a connection that - # is closed when we're not actively reading or writing, we must listen - # for read events. However, it is inefficient to do this when the - # connection is first established because we are going to read or write - # immediately anyway. Instead, we insert checks at various times to - # see if the connection is idle and add the read listener then. - if self._state is None or self._state == ioloop.IOLoop.ERROR: - if ( - not self.closed() - and self._read_buffer_size == 0 - and self._close_callback is not None - ): - self._add_io_state(ioloop.IOLoop.READ) - - def _add_io_state(self, state: int) -> None: - """Adds `state` (IOLoop.{READ,WRITE} flags) to our event handler. - - Implementation notes: Reads and writes have a fast path and a - slow path. The fast path reads synchronously from socket - buffers, while the slow path uses `_add_io_state` to schedule - an IOLoop callback. - - To detect closed connections, we must have called - `_add_io_state` at some point, but we want to delay this as - much as possible so we don't have to set an `IOLoop.ERROR` - listener that will be overwritten by the next slow-path - operation. If a sequence of fast-path ops do not end in a - slow-path op, (e.g. for an @asynchronous long-poll request), - we must add the error handler. - - TODO: reevaluate this now that callbacks are gone. - - """ - if self.closed(): - # connection has been closed, so there can be no future events - return - if self._state is None: - self._state = ioloop.IOLoop.ERROR | state - self.io_loop.add_handler(self.fileno(), self._handle_events, self._state) - elif not self._state & state: - self._state = self._state | state - self.io_loop.update_handler(self.fileno(), self._state) - - def _is_connreset(self, exc: BaseException) -> bool: - """Return ``True`` if exc is ECONNRESET or equivalent. - - May be overridden in subclasses. - """ - return ( - isinstance(exc, (socket.error, IOError)) - and errno_from_exception(exc) in _ERRNO_CONNRESET - ) - - -class IOStream(BaseIOStream): - r"""Socket-based `IOStream` implementation. - - This class supports the read and write methods from `BaseIOStream` - plus a `connect` method. - - The ``socket`` parameter may either be connected or unconnected. - For server operations the socket is the result of calling - `socket.accept `. For client operations the - socket is created with `socket.socket`, and may either be - connected before passing it to the `IOStream` or connected with - `IOStream.connect`. - - A very simple (and broken) HTTP client using this class: - - .. testcode:: - - import tornado.ioloop - import tornado.iostream - import socket - - async def main(): - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) - stream = tornado.iostream.IOStream(s) - await stream.connect(("friendfeed.com", 80)) - await stream.write(b"GET / HTTP/1.0\r\nHost: friendfeed.com\r\n\r\n") - header_data = await stream.read_until(b"\r\n\r\n") - headers = {} - for line in header_data.split(b"\r\n"): - parts = line.split(b":") - if len(parts) == 2: - headers[parts[0].strip()] = parts[1].strip() - body_data = await stream.read_bytes(int(headers[b"Content-Length"])) - print(body_data) - stream.close() - - if __name__ == '__main__': - tornado.ioloop.IOLoop.current().run_sync(main) - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) - stream = tornado.iostream.IOStream(s) - stream.connect(("friendfeed.com", 80), send_request) - tornado.ioloop.IOLoop.current().start() - - .. testoutput:: - :hide: - - """ - - def __init__(self, socket: socket.socket, *args: Any, **kwargs: Any) -> None: - self.socket = socket - self.socket.setblocking(False) - super(IOStream, self).__init__(*args, **kwargs) - - def fileno(self) -> Union[int, ioloop._Selectable]: - return self.socket - - def close_fd(self) -> None: - self.socket.close() - self.socket = None # type: ignore - - def get_fd_error(self) -> Optional[Exception]: - errno = self.socket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR) - return socket.error(errno, os.strerror(errno)) - - def read_from_fd(self, buf: Union[bytearray, memoryview]) -> Optional[int]: - try: - return self.socket.recv_into(buf, len(buf)) - except socket.error as e: - if e.args[0] in _ERRNO_WOULDBLOCK: - return None - else: - raise - finally: - del buf - - def write_to_fd(self, data: memoryview) -> int: - try: - return self.socket.send(data) # type: ignore - finally: - # Avoid keeping to data, which can be a memoryview. - # See https://github.com/tornadoweb/tornado/pull/2008 - del data - - def connect( - self: _IOStreamType, address: tuple, server_hostname: str = None - ) -> "Future[_IOStreamType]": - """Connects the socket to a remote address without blocking. - - May only be called if the socket passed to the constructor was - not previously connected. The address parameter is in the - same format as for `socket.connect ` for - the type of socket passed to the IOStream constructor, - e.g. an ``(ip, port)`` tuple. Hostnames are accepted here, - but will be resolved synchronously and block the IOLoop. - If you have a hostname instead of an IP address, the `.TCPClient` - class is recommended instead of calling this method directly. - `.TCPClient` will do asynchronous DNS resolution and handle - both IPv4 and IPv6. - - If ``callback`` is specified, it will be called with no - arguments when the connection is completed; if not this method - returns a `.Future` (whose result after a successful - connection will be the stream itself). - - In SSL mode, the ``server_hostname`` parameter will be used - for certificate validation (unless disabled in the - ``ssl_options``) and SNI (if supported; requires Python - 2.7.9+). - - Note that it is safe to call `IOStream.write - ` while the connection is pending, in - which case the data will be written as soon as the connection - is ready. Calling `IOStream` read methods before the socket is - connected works on some platforms but is non-portable. - - .. versionchanged:: 4.0 - If no callback is given, returns a `.Future`. - - .. versionchanged:: 4.2 - SSL certificates are validated by default; pass - ``ssl_options=dict(cert_reqs=ssl.CERT_NONE)`` or a - suitably-configured `ssl.SSLContext` to the - `SSLIOStream` constructor to disable. - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - `.Future` instead. - - """ - self._connecting = True - future = Future() # type: Future[_IOStreamType] - self._connect_future = typing.cast("Future[IOStream]", future) - try: - self.socket.connect(address) - except socket.error as e: - # In non-blocking mode we expect connect() to raise an - # exception with EINPROGRESS or EWOULDBLOCK. - # - # On freebsd, other errors such as ECONNREFUSED may be - # returned immediately when attempting to connect to - # localhost, so handle them the same way as an error - # reported later in _handle_connect. - if ( - errno_from_exception(e) not in _ERRNO_INPROGRESS - and errno_from_exception(e) not in _ERRNO_WOULDBLOCK - ): - if future is None: - gen_log.warning( - "Connect error on fd %s: %s", self.socket.fileno(), e - ) - self.close(exc_info=e) - return future - self._add_io_state(self.io_loop.WRITE) - return future - - def start_tls( - self, - server_side: bool, - ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, - server_hostname: str = None, - ) -> Awaitable["SSLIOStream"]: - """Convert this `IOStream` to an `SSLIOStream`. - - This enables protocols that begin in clear-text mode and - switch to SSL after some initial negotiation (such as the - ``STARTTLS`` extension to SMTP and IMAP). - - This method cannot be used if there are outstanding reads - or writes on the stream, or if there is any data in the - IOStream's buffer (data in the operating system's socket - buffer is allowed). This means it must generally be used - immediately after reading or writing the last clear-text - data. It can also be used immediately after connecting, - before any reads or writes. - - The ``ssl_options`` argument may be either an `ssl.SSLContext` - object or a dictionary of keyword arguments for the - `ssl.wrap_socket` function. The ``server_hostname`` argument - will be used for certificate validation unless disabled - in the ``ssl_options``. - - This method returns a `.Future` whose result is the new - `SSLIOStream`. After this method has been called, - any other operation on the original stream is undefined. - - If a close callback is defined on this stream, it will be - transferred to the new stream. - - .. versionadded:: 4.0 - - .. versionchanged:: 4.2 - SSL certificates are validated by default; pass - ``ssl_options=dict(cert_reqs=ssl.CERT_NONE)`` or a - suitably-configured `ssl.SSLContext` to disable. - """ - if ( - self._read_future - or self._write_futures - or self._connect_future - or self._closed - or self._read_buffer - or self._write_buffer - ): - raise ValueError("IOStream is not idle; cannot convert to SSL") - if ssl_options is None: - if server_side: - ssl_options = _server_ssl_defaults - else: - ssl_options = _client_ssl_defaults - - socket = self.socket - self.io_loop.remove_handler(socket) - self.socket = None # type: ignore - socket = ssl_wrap_socket( - socket, - ssl_options, - server_hostname=server_hostname, - server_side=server_side, - do_handshake_on_connect=False, - ) - orig_close_callback = self._close_callback - self._close_callback = None - - future = Future() # type: Future[SSLIOStream] - ssl_stream = SSLIOStream(socket, ssl_options=ssl_options) - ssl_stream.set_close_callback(orig_close_callback) - ssl_stream._ssl_connect_future = future - ssl_stream.max_buffer_size = self.max_buffer_size - ssl_stream.read_chunk_size = self.read_chunk_size - return future - - def _handle_connect(self) -> None: - try: - err = self.socket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR) - except socket.error as e: - # Hurd doesn't allow SO_ERROR for loopback sockets because all - # errors for such sockets are reported synchronously. - if errno_from_exception(e) == errno.ENOPROTOOPT: - err = 0 - if err != 0: - self.error = socket.error(err, os.strerror(err)) - # IOLoop implementations may vary: some of them return - # an error state before the socket becomes writable, so - # in that case a connection failure would be handled by the - # error path in _handle_events instead of here. - if self._connect_future is None: - gen_log.warning( - "Connect error on fd %s: %s", - self.socket.fileno(), - errno.errorcode[err], - ) - self.close() - return - if self._connect_future is not None: - future = self._connect_future - self._connect_future = None - future_set_result_unless_cancelled(future, self) - self._connecting = False - - def set_nodelay(self, value: bool) -> None: - if self.socket is not None and self.socket.family in ( - socket.AF_INET, - socket.AF_INET6, - ): - try: - self.socket.setsockopt( - socket.IPPROTO_TCP, socket.TCP_NODELAY, 1 if value else 0 - ) - except socket.error as e: - # Sometimes setsockopt will fail if the socket is closed - # at the wrong time. This can happen with HTTPServer - # resetting the value to ``False`` between requests. - if e.errno != errno.EINVAL and not self._is_connreset(e): - raise - - -class SSLIOStream(IOStream): - """A utility class to write to and read from a non-blocking SSL socket. - - If the socket passed to the constructor is already connected, - it should be wrapped with:: - - ssl.wrap_socket(sock, do_handshake_on_connect=False, **kwargs) - - before constructing the `SSLIOStream`. Unconnected sockets will be - wrapped when `IOStream.connect` is finished. - """ - - socket = None # type: ssl.SSLSocket - - def __init__(self, *args: Any, **kwargs: Any) -> None: - """The ``ssl_options`` keyword argument may either be an - `ssl.SSLContext` object or a dictionary of keywords arguments - for `ssl.wrap_socket` - """ - self._ssl_options = kwargs.pop("ssl_options", _client_ssl_defaults) - super(SSLIOStream, self).__init__(*args, **kwargs) - self._ssl_accepting = True - self._handshake_reading = False - self._handshake_writing = False - self._server_hostname = None # type: Optional[str] - - # If the socket is already connected, attempt to start the handshake. - try: - self.socket.getpeername() - except socket.error: - pass - else: - # Indirectly start the handshake, which will run on the next - # IOLoop iteration and then the real IO state will be set in - # _handle_events. - self._add_io_state(self.io_loop.WRITE) - - def reading(self) -> bool: - return self._handshake_reading or super(SSLIOStream, self).reading() - - def writing(self) -> bool: - return self._handshake_writing or super(SSLIOStream, self).writing() - - def _do_ssl_handshake(self) -> None: - # Based on code from test_ssl.py in the python stdlib - try: - self._handshake_reading = False - self._handshake_writing = False - self.socket.do_handshake() - except ssl.SSLError as err: - if err.args[0] == ssl.SSL_ERROR_WANT_READ: - self._handshake_reading = True - return - elif err.args[0] == ssl.SSL_ERROR_WANT_WRITE: - self._handshake_writing = True - return - elif err.args[0] in (ssl.SSL_ERROR_EOF, ssl.SSL_ERROR_ZERO_RETURN): - return self.close(exc_info=err) - elif err.args[0] == ssl.SSL_ERROR_SSL: - try: - peer = self.socket.getpeername() - except Exception: - peer = "(not connected)" - gen_log.warning( - "SSL Error on %s %s: %s", self.socket.fileno(), peer, err - ) - return self.close(exc_info=err) - raise - except socket.error as err: - # Some port scans (e.g. nmap in -sT mode) have been known - # to cause do_handshake to raise EBADF and ENOTCONN, so make - # those errors quiet as well. - # https://groups.google.com/forum/?fromgroups#!topic/python-tornado/ApucKJat1_0 - # Errno 0 is also possible in some cases (nc -z). - # https://github.com/tornadoweb/tornado/issues/2504 - if self._is_connreset(err) or err.args[0] in ( - 0, - errno.EBADF, - errno.ENOTCONN, - ): - return self.close(exc_info=err) - raise - except AttributeError as err: - # On Linux, if the connection was reset before the call to - # wrap_socket, do_handshake will fail with an - # AttributeError. - return self.close(exc_info=err) - else: - self._ssl_accepting = False - if not self._verify_cert(self.socket.getpeercert()): - self.close() - return - self._finish_ssl_connect() - - def _finish_ssl_connect(self) -> None: - if self._ssl_connect_future is not None: - future = self._ssl_connect_future - self._ssl_connect_future = None - future_set_result_unless_cancelled(future, self) - - def _verify_cert(self, peercert: Any) -> bool: - """Returns ``True`` if peercert is valid according to the configured - validation mode and hostname. - - The ssl handshake already tested the certificate for a valid - CA signature; the only thing that remains is to check - the hostname. - """ - if isinstance(self._ssl_options, dict): - verify_mode = self._ssl_options.get("cert_reqs", ssl.CERT_NONE) - elif isinstance(self._ssl_options, ssl.SSLContext): - verify_mode = self._ssl_options.verify_mode - assert verify_mode in (ssl.CERT_NONE, ssl.CERT_REQUIRED, ssl.CERT_OPTIONAL) - if verify_mode == ssl.CERT_NONE or self._server_hostname is None: - return True - cert = self.socket.getpeercert() - if cert is None and verify_mode == ssl.CERT_REQUIRED: - gen_log.warning("No SSL certificate given") - return False - try: - ssl.match_hostname(peercert, self._server_hostname) - except ssl.CertificateError as e: - gen_log.warning("Invalid SSL certificate: %s" % e) - return False - else: - return True - - def _handle_read(self) -> None: - if self._ssl_accepting: - self._do_ssl_handshake() - return - super(SSLIOStream, self)._handle_read() - - def _handle_write(self) -> None: - if self._ssl_accepting: - self._do_ssl_handshake() - return - super(SSLIOStream, self)._handle_write() - - def connect( - self, address: Tuple, server_hostname: str = None - ) -> "Future[SSLIOStream]": - self._server_hostname = server_hostname - # Ignore the result of connect(). If it fails, - # wait_for_handshake will raise an error too. This is - # necessary for the old semantics of the connect callback - # (which takes no arguments). In 6.0 this can be refactored to - # be a regular coroutine. - # TODO: This is trickier than it looks, since if write() - # is called with a connect() pending, we want the connect - # to resolve before the write. Or do we care about this? - # (There's a test for it, but I think in practice users - # either wait for the connect before performing a write or - # they don't care about the connect Future at all) - fut = super(SSLIOStream, self).connect(address) - fut.add_done_callback(lambda f: f.exception()) - return self.wait_for_handshake() - - def _handle_connect(self) -> None: - # Call the superclass method to check for errors. - super(SSLIOStream, self)._handle_connect() - if self.closed(): - return - # When the connection is complete, wrap the socket for SSL - # traffic. Note that we do this by overriding _handle_connect - # instead of by passing a callback to super().connect because - # user callbacks are enqueued asynchronously on the IOLoop, - # but since _handle_events calls _handle_connect immediately - # followed by _handle_write we need this to be synchronous. - # - # The IOLoop will get confused if we swap out self.socket while the - # fd is registered, so remove it now and re-register after - # wrap_socket(). - self.io_loop.remove_handler(self.socket) - old_state = self._state - assert old_state is not None - self._state = None - self.socket = ssl_wrap_socket( - self.socket, - self._ssl_options, - server_hostname=self._server_hostname, - do_handshake_on_connect=False, - ) - self._add_io_state(old_state) - - def wait_for_handshake(self) -> "Future[SSLIOStream]": - """Wait for the initial SSL handshake to complete. - - If a ``callback`` is given, it will be called with no - arguments once the handshake is complete; otherwise this - method returns a `.Future` which will resolve to the - stream itself after the handshake is complete. - - Once the handshake is complete, information such as - the peer's certificate and NPN/ALPN selections may be - accessed on ``self.socket``. - - This method is intended for use on server-side streams - or after using `IOStream.start_tls`; it should not be used - with `IOStream.connect` (which already waits for the - handshake to complete). It may only be called once per stream. - - .. versionadded:: 4.2 - - .. versionchanged:: 6.0 - - The ``callback`` argument was removed. Use the returned - `.Future` instead. - - """ - if self._ssl_connect_future is not None: - raise RuntimeError("Already waiting") - future = self._ssl_connect_future = Future() - if not self._ssl_accepting: - self._finish_ssl_connect() - return future - - def write_to_fd(self, data: memoryview) -> int: - try: - return self.socket.send(data) # type: ignore - except ssl.SSLError as e: - if e.args[0] == ssl.SSL_ERROR_WANT_WRITE: - # In Python 3.5+, SSLSocket.send raises a WANT_WRITE error if - # the socket is not writeable; we need to transform this into - # an EWOULDBLOCK socket.error or a zero return value, - # either of which will be recognized by the caller of this - # method. Prior to Python 3.5, an unwriteable socket would - # simply return 0 bytes written. - return 0 - raise - finally: - # Avoid keeping to data, which can be a memoryview. - # See https://github.com/tornadoweb/tornado/pull/2008 - del data - - def read_from_fd(self, buf: Union[bytearray, memoryview]) -> Optional[int]: - try: - if self._ssl_accepting: - # If the handshake hasn't finished yet, there can't be anything - # to read (attempting to read may or may not raise an exception - # depending on the SSL version) - return None - try: - return self.socket.recv_into(buf, len(buf)) - except ssl.SSLError as e: - # SSLError is a subclass of socket.error, so this except - # block must come first. - if e.args[0] == ssl.SSL_ERROR_WANT_READ: - return None - else: - raise - except socket.error as e: - if e.args[0] in _ERRNO_WOULDBLOCK: - return None - else: - raise - finally: - del buf - - def _is_connreset(self, e: BaseException) -> bool: - if isinstance(e, ssl.SSLError) and e.args[0] == ssl.SSL_ERROR_EOF: - return True - return super(SSLIOStream, self)._is_connreset(e) - - -class PipeIOStream(BaseIOStream): - """Pipe-based `IOStream` implementation. - - The constructor takes an integer file descriptor (such as one returned - by `os.pipe`) rather than an open file object. Pipes are generally - one-way, so a `PipeIOStream` can be used for reading or writing but not - both. - """ - - def __init__(self, fd: int, *args: Any, **kwargs: Any) -> None: - self.fd = fd - self._fio = io.FileIO(self.fd, "r+") - _set_nonblocking(fd) - super(PipeIOStream, self).__init__(*args, **kwargs) - - def fileno(self) -> int: - return self.fd - - def close_fd(self) -> None: - self._fio.close() - - def write_to_fd(self, data: memoryview) -> int: - try: - return os.write(self.fd, data) # type: ignore - finally: - # Avoid keeping to data, which can be a memoryview. - # See https://github.com/tornadoweb/tornado/pull/2008 - del data - - def read_from_fd(self, buf: Union[bytearray, memoryview]) -> Optional[int]: - try: - return self._fio.readinto(buf) # type: ignore - except (IOError, OSError) as e: - if errno_from_exception(e) == errno.EBADF: - # If the writing half of a pipe is closed, select will - # report it as readable but reads will fail with EBADF. - self.close(exc_info=e) - return None - else: - raise - finally: - del buf - - -def doctests() -> Any: - import doctest - - return doctest.DocTestSuite() +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Utility classes to write to and read from non-blocking files and sockets. + +Contents: + +* `BaseIOStream`: Generic interface for reading and writing. +* `IOStream`: Implementation of BaseIOStream using non-blocking sockets. +* `SSLIOStream`: SSL-aware version of IOStream. +* `PipeIOStream`: Pipe-based IOStream implementation. +""" + +import asyncio +import collections +import errno +import io +import numbers +import os +import socket +import ssl +import sys +import re + +from tornado.concurrent import Future, future_set_result_unless_cancelled +from tornado import ioloop +from tornado.log import gen_log +from tornado.netutil import ssl_wrap_socket, _client_ssl_defaults, _server_ssl_defaults +from tornado.util import errno_from_exception + +import typing +from typing import ( + Union, + Optional, + Awaitable, + Callable, + Pattern, + Any, + Dict, + TypeVar, + Tuple, +) +from types import TracebackType + +if typing.TYPE_CHECKING: + from typing import Deque, List, Type # noqa: F401 + +_IOStreamType = TypeVar("_IOStreamType", bound="IOStream") + +try: + from tornado.platform.posix import _set_nonblocking +except ImportError: + _set_nonblocking = None # type: ignore + +# These errnos indicate that a non-blocking operation must be retried +# at a later time. On most platforms they're the same value, but on +# some they differ. +_ERRNO_WOULDBLOCK = (errno.EWOULDBLOCK, errno.EAGAIN) + +if hasattr(errno, "WSAEWOULDBLOCK"): + _ERRNO_WOULDBLOCK += (errno.WSAEWOULDBLOCK,) # type: ignore + +# These errnos indicate that a connection has been abruptly terminated. +# They should be caught and handled less noisily than other errors. +_ERRNO_CONNRESET = (errno.ECONNRESET, errno.ECONNABORTED, errno.EPIPE, errno.ETIMEDOUT) + +if hasattr(errno, "WSAECONNRESET"): + _ERRNO_CONNRESET += ( # type: ignore + errno.WSAECONNRESET, # type: ignore + errno.WSAECONNABORTED, # type: ignore + errno.WSAETIMEDOUT, # type: ignore + ) + +if sys.platform == "darwin": + # OSX appears to have a race condition that causes send(2) to return + # EPROTOTYPE if called while a socket is being torn down: + # http://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/ + # Since the socket is being closed anyway, treat this as an ECONNRESET + # instead of an unexpected error. + _ERRNO_CONNRESET += (errno.EPROTOTYPE,) # type: ignore + +# More non-portable errnos: +_ERRNO_INPROGRESS = (errno.EINPROGRESS,) + +if hasattr(errno, "WSAEINPROGRESS"): + _ERRNO_INPROGRESS += (errno.WSAEINPROGRESS,) # type: ignore + +_WINDOWS = sys.platform.startswith("win") + + +class StreamClosedError(IOError): + """Exception raised by `IOStream` methods when the stream is closed. + + Note that the close callback is scheduled to run *after* other + callbacks on the stream (to allow for buffered data to be processed), + so you may see this error before you see the close callback. + + The ``real_error`` attribute contains the underlying error that caused + the stream to close (if any). + + .. versionchanged:: 4.3 + Added the ``real_error`` attribute. + """ + + def __init__(self, real_error: BaseException = None) -> None: + super(StreamClosedError, self).__init__("Stream is closed") + self.real_error = real_error + + +class UnsatisfiableReadError(Exception): + """Exception raised when a read cannot be satisfied. + + Raised by ``read_until`` and ``read_until_regex`` with a ``max_bytes`` + argument. + """ + + pass + + +class StreamBufferFullError(Exception): + """Exception raised by `IOStream` methods when the buffer is full. + """ + + +class _StreamBuffer(object): + """ + A specialized buffer that tries to avoid copies when large pieces + of data are encountered. + """ + + def __init__(self) -> None: + # A sequence of (False, bytearray) and (True, memoryview) objects + self._buffers = ( + collections.deque() + ) # type: Deque[Tuple[bool, Union[bytearray, memoryview]]] + # Position in the first buffer + self._first_pos = 0 + self._size = 0 + + def __len__(self) -> int: + return self._size + + # Data above this size will be appended separately instead + # of extending an existing bytearray + _large_buf_threshold = 2048 + + def append(self, data: Union[bytes, bytearray, memoryview]) -> None: + """ + Append the given piece of data (should be a buffer-compatible object). + """ + size = len(data) + if size > self._large_buf_threshold: + if not isinstance(data, memoryview): + data = memoryview(data) + self._buffers.append((True, data)) + elif size > 0: + if self._buffers: + is_memview, b = self._buffers[-1] + new_buf = is_memview or len(b) >= self._large_buf_threshold + else: + new_buf = True + if new_buf: + self._buffers.append((False, bytearray(data))) + else: + b += data # type: ignore + + self._size += size + + def peek(self, size: int) -> memoryview: + """ + Get a view over at most ``size`` bytes (possibly fewer) at the + current buffer position. + """ + assert size > 0 + try: + is_memview, b = self._buffers[0] + except IndexError: + return memoryview(b"") + + pos = self._first_pos + if is_memview: + return typing.cast(memoryview, b[pos : pos + size]) + else: + return memoryview(b)[pos : pos + size] + + def advance(self, size: int) -> None: + """ + Advance the current buffer position by ``size`` bytes. + """ + assert 0 < size <= self._size + self._size -= size + pos = self._first_pos + + buffers = self._buffers + while buffers and size > 0: + is_large, b = buffers[0] + b_remain = len(b) - size - pos + if b_remain <= 0: + buffers.popleft() + size -= len(b) - pos + pos = 0 + elif is_large: + pos += size + size = 0 + else: + # Amortized O(1) shrink for Python 2 + pos += size + if len(b) <= 2 * pos: + del typing.cast(bytearray, b)[:pos] + pos = 0 + size = 0 + + assert size == 0 + self._first_pos = pos + + +class BaseIOStream(object): + """A utility class to write to and read from a non-blocking file or socket. + + We support a non-blocking ``write()`` and a family of ``read_*()`` + methods. When the operation completes, the ``Awaitable`` will resolve + with the data read (or ``None`` for ``write()``). All outstanding + ``Awaitables`` will resolve with a `StreamClosedError` when the + stream is closed; `.BaseIOStream.set_close_callback` can also be used + to be notified of a closed stream. + + When a stream is closed due to an error, the IOStream's ``error`` + attribute contains the exception object. + + Subclasses must implement `fileno`, `close_fd`, `write_to_fd`, + `read_from_fd`, and optionally `get_fd_error`. + + """ + + def __init__( + self, + max_buffer_size: int = None, + read_chunk_size: int = None, + max_write_buffer_size: int = None, + ) -> None: + """`BaseIOStream` constructor. + + :arg max_buffer_size: Maximum amount of incoming data to buffer; + defaults to 100MB. + :arg read_chunk_size: Amount of data to read at one time from the + underlying transport; defaults to 64KB. + :arg max_write_buffer_size: Amount of outgoing data to buffer; + defaults to unlimited. + + .. versionchanged:: 4.0 + Add the ``max_write_buffer_size`` parameter. Changed default + ``read_chunk_size`` to 64KB. + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been + removed. + """ + self.io_loop = ioloop.IOLoop.current() + self.max_buffer_size = max_buffer_size or 104857600 + # A chunk size that is too close to max_buffer_size can cause + # spurious failures. + self.read_chunk_size = min(read_chunk_size or 65536, self.max_buffer_size // 2) + self.max_write_buffer_size = max_write_buffer_size + self.error = None # type: Optional[BaseException] + self._read_buffer = bytearray() + self._read_buffer_pos = 0 + self._read_buffer_size = 0 + self._user_read_buffer = False + self._after_user_read_buffer = None # type: Optional[bytearray] + self._write_buffer = _StreamBuffer() + self._total_write_index = 0 + self._total_write_done_index = 0 + self._read_delimiter = None # type: Optional[bytes] + self._read_regex = None # type: Optional[Pattern] + self._read_max_bytes = None # type: Optional[int] + self._read_bytes = None # type: Optional[int] + self._read_partial = False + self._read_until_close = False + self._read_future = None # type: Optional[Future] + self._write_futures = ( + collections.deque() + ) # type: Deque[Tuple[int, Future[None]]] + self._close_callback = None # type: Optional[Callable[[], None]] + self._connect_future = None # type: Optional[Future[IOStream]] + # _ssl_connect_future should be defined in SSLIOStream + # but it's here so we can clean it up in _signal_closed + # TODO: refactor that so subclasses can add additional futures + # to be cancelled. + self._ssl_connect_future = None # type: Optional[Future[SSLIOStream]] + self._connecting = False + self._state = None # type: Optional[int] + self._closed = False + + def fileno(self) -> Union[int, ioloop._Selectable]: + """Returns the file descriptor for this stream.""" + raise NotImplementedError() + + def close_fd(self) -> None: + """Closes the file underlying this stream. + + ``close_fd`` is called by `BaseIOStream` and should not be called + elsewhere; other users should call `close` instead. + """ + raise NotImplementedError() + + def write_to_fd(self, data: memoryview) -> int: + """Attempts to write ``data`` to the underlying file. + + Returns the number of bytes written. + """ + raise NotImplementedError() + + def read_from_fd(self, buf: Union[bytearray, memoryview]) -> Optional[int]: + """Attempts to read from the underlying file. + + Reads up to ``len(buf)`` bytes, storing them in the buffer. + Returns the number of bytes read. Returns None if there was + nothing to read (the socket returned `~errno.EWOULDBLOCK` or + equivalent), and zero on EOF. + + .. versionchanged:: 5.0 + + Interface redesigned to take a buffer and return a number + of bytes instead of a freshly-allocated object. + """ + raise NotImplementedError() + + def get_fd_error(self) -> Optional[Exception]: + """Returns information about any error on the underlying file. + + This method is called after the `.IOLoop` has signaled an error on the + file descriptor, and should return an Exception (such as `socket.error` + with additional information, or None if no such information is + available. + """ + return None + + def read_until_regex(self, regex: bytes, max_bytes: int = None) -> Awaitable[bytes]: + """Asynchronously read until we have matched the given regex. + + The result includes the data that matches the regex and anything + that came before it. + + If ``max_bytes`` is not None, the connection will be closed + if more than ``max_bytes`` bytes have been read and the regex is + not satisfied. + + .. versionchanged:: 4.0 + Added the ``max_bytes`` argument. The ``callback`` argument is + now optional and a `.Future` will be returned if it is omitted. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + `.Future` instead. + + """ + future = self._start_read() + self._read_regex = re.compile(regex) + self._read_max_bytes = max_bytes + try: + self._try_inline_read() + except UnsatisfiableReadError as e: + # Handle this the same way as in _handle_events. + gen_log.info("Unsatisfiable read, closing connection: %s" % e) + self.close(exc_info=e) + return future + except: + # Ensure that the future doesn't log an error because its + # failure was never examined. + future.add_done_callback(lambda f: f.exception()) + raise + return future + + def read_until(self, delimiter: bytes, max_bytes: int = None) -> Awaitable[bytes]: + """Asynchronously read until we have found the given delimiter. + + The result includes all the data read including the delimiter. + + If ``max_bytes`` is not None, the connection will be closed + if more than ``max_bytes`` bytes have been read and the delimiter + is not found. + + .. versionchanged:: 4.0 + Added the ``max_bytes`` argument. The ``callback`` argument is + now optional and a `.Future` will be returned if it is omitted. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + `.Future` instead. + """ + future = self._start_read() + self._read_delimiter = delimiter + self._read_max_bytes = max_bytes + try: + self._try_inline_read() + except UnsatisfiableReadError as e: + # Handle this the same way as in _handle_events. + gen_log.info("Unsatisfiable read, closing connection: %s" % e) + self.close(exc_info=e) + return future + except: + future.add_done_callback(lambda f: f.exception()) + raise + return future + + def read_bytes(self, num_bytes: int, partial: bool = False) -> Awaitable[bytes]: + """Asynchronously read a number of bytes. + + If ``partial`` is true, data is returned as soon as we have + any bytes to return (but never more than ``num_bytes``) + + .. versionchanged:: 4.0 + Added the ``partial`` argument. The callback argument is now + optional and a `.Future` will be returned if it is omitted. + + .. versionchanged:: 6.0 + + The ``callback`` and ``streaming_callback`` arguments have + been removed. Use the returned `.Future` (and + ``partial=True`` for ``streaming_callback``) instead. + + """ + future = self._start_read() + assert isinstance(num_bytes, numbers.Integral) + self._read_bytes = num_bytes + self._read_partial = partial + try: + self._try_inline_read() + except: + future.add_done_callback(lambda f: f.exception()) + raise + return future + + def read_into(self, buf: bytearray, partial: bool = False) -> Awaitable[int]: + """Asynchronously read a number of bytes. + + ``buf`` must be a writable buffer into which data will be read. + + If ``partial`` is true, the callback is run as soon as any bytes + have been read. Otherwise, it is run when the ``buf`` has been + entirely filled with read data. + + .. versionadded:: 5.0 + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + `.Future` instead. + + """ + future = self._start_read() + + # First copy data already in read buffer + available_bytes = self._read_buffer_size + n = len(buf) + if available_bytes >= n: + end = self._read_buffer_pos + n + buf[:] = memoryview(self._read_buffer)[self._read_buffer_pos : end] + del self._read_buffer[:end] + self._after_user_read_buffer = self._read_buffer + elif available_bytes > 0: + buf[:available_bytes] = memoryview(self._read_buffer)[ + self._read_buffer_pos : + ] + + # Set up the supplied buffer as our temporary read buffer. + # The original (if it had any data remaining) has been + # saved for later. + self._user_read_buffer = True + self._read_buffer = buf + self._read_buffer_pos = 0 + self._read_buffer_size = available_bytes + self._read_bytes = n + self._read_partial = partial + + try: + self._try_inline_read() + except: + future.add_done_callback(lambda f: f.exception()) + raise + return future + + def read_until_close(self) -> Awaitable[bytes]: + """Asynchronously reads all data from the socket until it is closed. + + This will buffer all available data until ``max_buffer_size`` + is reached. If flow control or cancellation are desired, use a + loop with `read_bytes(partial=True) <.read_bytes>` instead. + + .. versionchanged:: 4.0 + The callback argument is now optional and a `.Future` will + be returned if it is omitted. + + .. versionchanged:: 6.0 + + The ``callback`` and ``streaming_callback`` arguments have + been removed. Use the returned `.Future` (and `read_bytes` + with ``partial=True`` for ``streaming_callback``) instead. + + """ + future = self._start_read() + if self.closed(): + self._finish_read(self._read_buffer_size, False) + return future + self._read_until_close = True + try: + self._try_inline_read() + except: + future.add_done_callback(lambda f: f.exception()) + raise + return future + + def write(self, data: Union[bytes, memoryview]) -> "Future[None]": + """Asynchronously write the given data to this stream. + + This method returns a `.Future` that resolves (with a result + of ``None``) when the write has been completed. + + The ``data`` argument may be of type `bytes` or `memoryview`. + + .. versionchanged:: 4.0 + Now returns a `.Future` if no callback is given. + + .. versionchanged:: 4.5 + Added support for `memoryview` arguments. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + `.Future` instead. + + """ + self._check_closed() + if data: + if ( + self.max_write_buffer_size is not None + and len(self._write_buffer) + len(data) > self.max_write_buffer_size + ): + raise StreamBufferFullError("Reached maximum write buffer size") + self._write_buffer.append(data) + self._total_write_index += len(data) + future = Future() # type: Future[None] + future.add_done_callback(lambda f: f.exception()) + self._write_futures.append((self._total_write_index, future)) + if not self._connecting: + self._handle_write() + if self._write_buffer: + self._add_io_state(self.io_loop.WRITE) + self._maybe_add_error_listener() + return future + + def set_close_callback(self, callback: Optional[Callable[[], None]]) -> None: + """Call the given callback when the stream is closed. + + This mostly is not necessary for applications that use the + `.Future` interface; all outstanding ``Futures`` will resolve + with a `StreamClosedError` when the stream is closed. However, + it is still useful as a way to signal that the stream has been + closed while no other read or write is in progress. + + Unlike other callback-based interfaces, ``set_close_callback`` + was not removed in Tornado 6.0. + """ + self._close_callback = callback + self._maybe_add_error_listener() + + def close( + self, + exc_info: Union[ + None, + bool, + BaseException, + Tuple[ + "Optional[Type[BaseException]]", + Optional[BaseException], + Optional[TracebackType], + ], + ] = False, + ) -> None: + """Close this stream. + + If ``exc_info`` is true, set the ``error`` attribute to the current + exception from `sys.exc_info` (or if ``exc_info`` is a tuple, + use that instead of `sys.exc_info`). + """ + if not self.closed(): + if exc_info: + if isinstance(exc_info, tuple): + self.error = exc_info[1] + elif isinstance(exc_info, BaseException): + self.error = exc_info + else: + exc_info = sys.exc_info() + if any(exc_info): + self.error = exc_info[1] + if self._read_until_close: + self._read_until_close = False + self._finish_read(self._read_buffer_size, False) + elif self._read_future is not None: + # resolve reads that are pending and ready to complete + try: + pos = self._find_read_pos() + except UnsatisfiableReadError: + pass + else: + if pos is not None: + self._read_from_buffer(pos) + if self._state is not None: + self.io_loop.remove_handler(self.fileno()) + self._state = None + self.close_fd() + self._closed = True + self._signal_closed() + + def _signal_closed(self) -> None: + futures = [] # type: List[Future] + if self._read_future is not None: + futures.append(self._read_future) + self._read_future = None + futures += [future for _, future in self._write_futures] + self._write_futures.clear() + if self._connect_future is not None: + futures.append(self._connect_future) + self._connect_future = None + for future in futures: + if not future.done(): + future.set_exception(StreamClosedError(real_error=self.error)) + # Reference the exception to silence warnings. Annoyingly, + # this raises if the future was cancelled, but just + # returns any other error. + try: + future.exception() + except asyncio.CancelledError: + pass + if self._ssl_connect_future is not None: + # _ssl_connect_future expects to see the real exception (typically + # an ssl.SSLError), not just StreamClosedError. + if not self._ssl_connect_future.done(): + if self.error is not None: + self._ssl_connect_future.set_exception(self.error) + else: + self._ssl_connect_future.set_exception(StreamClosedError()) + self._ssl_connect_future.exception() + self._ssl_connect_future = None + if self._close_callback is not None: + cb = self._close_callback + self._close_callback = None + self.io_loop.add_callback(cb) + # Clear the buffers so they can be cleared immediately even + # if the IOStream object is kept alive by a reference cycle. + # TODO: Clear the read buffer too; it currently breaks some tests. + self._write_buffer = None # type: ignore + + def reading(self) -> bool: + """Returns ``True`` if we are currently reading from the stream.""" + return self._read_future is not None + + def writing(self) -> bool: + """Returns ``True`` if we are currently writing to the stream.""" + return bool(self._write_buffer) + + def closed(self) -> bool: + """Returns ``True`` if the stream has been closed.""" + return self._closed + + def set_nodelay(self, value: bool) -> None: + """Sets the no-delay flag for this stream. + + By default, data written to TCP streams may be held for a time + to make the most efficient use of bandwidth (according to + Nagle's algorithm). The no-delay flag requests that data be + written as soon as possible, even if doing so would consume + additional bandwidth. + + This flag is currently defined only for TCP-based ``IOStreams``. + + .. versionadded:: 3.1 + """ + pass + + def _handle_connect(self) -> None: + raise NotImplementedError() + + def _handle_events(self, fd: Union[int, ioloop._Selectable], events: int) -> None: + if self.closed(): + gen_log.warning("Got events for closed stream %s", fd) + return + try: + if self._connecting: + # Most IOLoops will report a write failed connect + # with the WRITE event, but SelectIOLoop reports a + # READ as well so we must check for connecting before + # either. + self._handle_connect() + if self.closed(): + return + if events & self.io_loop.READ: + self._handle_read() + if self.closed(): + return + if events & self.io_loop.WRITE: + self._handle_write() + if self.closed(): + return + if events & self.io_loop.ERROR: + self.error = self.get_fd_error() + # We may have queued up a user callback in _handle_read or + # _handle_write, so don't close the IOStream until those + # callbacks have had a chance to run. + self.io_loop.add_callback(self.close) + return + state = self.io_loop.ERROR + if self.reading(): + state |= self.io_loop.READ + if self.writing(): + state |= self.io_loop.WRITE + if state == self.io_loop.ERROR and self._read_buffer_size == 0: + # If the connection is idle, listen for reads too so + # we can tell if the connection is closed. If there is + # data in the read buffer we won't run the close callback + # yet anyway, so we don't need to listen in this case. + state |= self.io_loop.READ + if state != self._state: + assert ( + self._state is not None + ), "shouldn't happen: _handle_events without self._state" + self._state = state + self.io_loop.update_handler(self.fileno(), self._state) + except UnsatisfiableReadError as e: + gen_log.info("Unsatisfiable read, closing connection: %s" % e) + self.close(exc_info=e) + except Exception as e: + gen_log.error("Uncaught exception, closing connection.", exc_info=True) + self.close(exc_info=e) + raise + + def _read_to_buffer_loop(self) -> Optional[int]: + # This method is called from _handle_read and _try_inline_read. + if self._read_bytes is not None: + target_bytes = self._read_bytes # type: Optional[int] + elif self._read_max_bytes is not None: + target_bytes = self._read_max_bytes + elif self.reading(): + # For read_until without max_bytes, or + # read_until_close, read as much as we can before + # scanning for the delimiter. + target_bytes = None + else: + target_bytes = 0 + next_find_pos = 0 + while not self.closed(): + # Read from the socket until we get EWOULDBLOCK or equivalent. + # SSL sockets do some internal buffering, and if the data is + # sitting in the SSL object's buffer select() and friends + # can't see it; the only way to find out if it's there is to + # try to read it. + if self._read_to_buffer() == 0: + break + + # If we've read all the bytes we can use, break out of + # this loop. + + # If we've reached target_bytes, we know we're done. + if target_bytes is not None and self._read_buffer_size >= target_bytes: + break + + # Otherwise, we need to call the more expensive find_read_pos. + # It's inefficient to do this on every read, so instead + # do it on the first read and whenever the read buffer + # size has doubled. + if self._read_buffer_size >= next_find_pos: + pos = self._find_read_pos() + if pos is not None: + return pos + next_find_pos = self._read_buffer_size * 2 + return self._find_read_pos() + + def _handle_read(self) -> None: + try: + pos = self._read_to_buffer_loop() + except UnsatisfiableReadError: + raise + except asyncio.CancelledError: + raise + except Exception as e: + gen_log.warning("error on read: %s" % e) + self.close(exc_info=e) + return + if pos is not None: + self._read_from_buffer(pos) + + def _start_read(self) -> Future: + if self._read_future is not None: + # It is an error to start a read while a prior read is unresolved. + # However, if the prior read is unresolved because the stream was + # closed without satisfying it, it's better to raise + # StreamClosedError instead of AssertionError. In particular, this + # situation occurs in harmless situations in http1connection.py and + # an AssertionError would be logged noisily. + # + # On the other hand, it is legal to start a new read while the + # stream is closed, in case the read can be satisfied from the + # read buffer. So we only want to check the closed status of the + # stream if we need to decide what kind of error to raise for + # "already reading". + # + # These conditions have proven difficult to test; we have no + # unittests that reliably verify this behavior so be careful + # when making changes here. See #2651 and #2719. + self._check_closed() + assert self._read_future is None, "Already reading" + self._read_future = Future() + return self._read_future + + def _finish_read(self, size: int, streaming: bool) -> None: + if self._user_read_buffer: + self._read_buffer = self._after_user_read_buffer or bytearray() + self._after_user_read_buffer = None + self._read_buffer_pos = 0 + self._read_buffer_size = len(self._read_buffer) + self._user_read_buffer = False + result = size # type: Union[int, bytes] + else: + result = self._consume(size) + if self._read_future is not None: + future = self._read_future + self._read_future = None + future_set_result_unless_cancelled(future, result) + self._maybe_add_error_listener() + + def _try_inline_read(self) -> None: + """Attempt to complete the current read operation from buffered data. + + If the read can be completed without blocking, schedules the + read callback on the next IOLoop iteration; otherwise starts + listening for reads on the socket. + """ + # See if we've already got the data from a previous read + pos = self._find_read_pos() + if pos is not None: + self._read_from_buffer(pos) + return + self._check_closed() + pos = self._read_to_buffer_loop() + if pos is not None: + self._read_from_buffer(pos) + return + # We couldn't satisfy the read inline, so make sure we're + # listening for new data unless the stream is closed. + if not self.closed(): + self._add_io_state(ioloop.IOLoop.READ) + + def _read_to_buffer(self) -> Optional[int]: + """Reads from the socket and appends the result to the read buffer. + + Returns the number of bytes read. Returns 0 if there is nothing + to read (i.e. the read returns EWOULDBLOCK or equivalent). On + error closes the socket and raises an exception. + """ + try: + while True: + try: + if self._user_read_buffer: + buf = memoryview(self._read_buffer)[ + self._read_buffer_size : + ] # type: Union[memoryview, bytearray] + else: + buf = bytearray(self.read_chunk_size) + bytes_read = self.read_from_fd(buf) + except (socket.error, IOError, OSError) as e: + if errno_from_exception(e) == errno.EINTR: + continue + # ssl.SSLError is a subclass of socket.error + if self._is_connreset(e): + # Treat ECONNRESET as a connection close rather than + # an error to minimize log spam (the exception will + # be available on self.error for apps that care). + self.close(exc_info=e) + return None + self.close(exc_info=e) + raise + break + if bytes_read is None: + return 0 + elif bytes_read == 0: + self.close() + return 0 + if not self._user_read_buffer: + self._read_buffer += memoryview(buf)[:bytes_read] + self._read_buffer_size += bytes_read + finally: + # Break the reference to buf so we don't waste a chunk's worth of + # memory in case an exception hangs on to our stack frame. + del buf + if self._read_buffer_size > self.max_buffer_size: + gen_log.error("Reached maximum read buffer size") + self.close() + raise StreamBufferFullError("Reached maximum read buffer size") + return bytes_read + + def _read_from_buffer(self, pos: int) -> None: + """Attempts to complete the currently-pending read from the buffer. + + The argument is either a position in the read buffer or None, + as returned by _find_read_pos. + """ + self._read_bytes = self._read_delimiter = self._read_regex = None + self._read_partial = False + self._finish_read(pos, False) + + def _find_read_pos(self) -> Optional[int]: + """Attempts to find a position in the read buffer that satisfies + the currently-pending read. + + Returns a position in the buffer if the current read can be satisfied, + or None if it cannot. + """ + if self._read_bytes is not None and ( + self._read_buffer_size >= self._read_bytes + or (self._read_partial and self._read_buffer_size > 0) + ): + num_bytes = min(self._read_bytes, self._read_buffer_size) + return num_bytes + elif self._read_delimiter is not None: + # Multi-byte delimiters (e.g. '\r\n') may straddle two + # chunks in the read buffer, so we can't easily find them + # without collapsing the buffer. However, since protocols + # using delimited reads (as opposed to reads of a known + # length) tend to be "line" oriented, the delimiter is likely + # to be in the first few chunks. Merge the buffer gradually + # since large merges are relatively expensive and get undone in + # _consume(). + if self._read_buffer: + loc = self._read_buffer.find( + self._read_delimiter, self._read_buffer_pos + ) + if loc != -1: + loc -= self._read_buffer_pos + delimiter_len = len(self._read_delimiter) + self._check_max_bytes(self._read_delimiter, loc + delimiter_len) + return loc + delimiter_len + self._check_max_bytes(self._read_delimiter, self._read_buffer_size) + elif self._read_regex is not None: + if self._read_buffer: + m = self._read_regex.search(self._read_buffer, self._read_buffer_pos) + if m is not None: + loc = m.end() - self._read_buffer_pos + self._check_max_bytes(self._read_regex, loc) + return loc + self._check_max_bytes(self._read_regex, self._read_buffer_size) + return None + + def _check_max_bytes(self, delimiter: Union[bytes, Pattern], size: int) -> None: + if self._read_max_bytes is not None and size > self._read_max_bytes: + raise UnsatisfiableReadError( + "delimiter %r not found within %d bytes" + % (delimiter, self._read_max_bytes) + ) + + def _handle_write(self) -> None: + while True: + size = len(self._write_buffer) + if not size: + break + assert size > 0 + try: + if _WINDOWS: + # On windows, socket.send blows up if given a + # write buffer that's too large, instead of just + # returning the number of bytes it was able to + # process. Therefore we must not call socket.send + # with more than 128KB at a time. + size = 128 * 1024 + + num_bytes = self.write_to_fd(self._write_buffer.peek(size)) + if num_bytes == 0: + break + self._write_buffer.advance(num_bytes) + self._total_write_done_index += num_bytes + except (socket.error, IOError, OSError) as e: + if e.args[0] in _ERRNO_WOULDBLOCK: + break + else: + if not self._is_connreset(e): + # Broken pipe errors are usually caused by connection + # reset, and its better to not log EPIPE errors to + # minimize log spam + gen_log.warning("Write error on %s: %s", self.fileno(), e) + self.close(exc_info=e) + return + + while self._write_futures: + index, future = self._write_futures[0] + if index > self._total_write_done_index: + break + self._write_futures.popleft() + future_set_result_unless_cancelled(future, None) + + def _consume(self, loc: int) -> bytes: + # Consume loc bytes from the read buffer and return them + if loc == 0: + return b"" + assert loc <= self._read_buffer_size + # Slice the bytearray buffer into bytes, without intermediate copying + b = ( + memoryview(self._read_buffer)[ + self._read_buffer_pos : self._read_buffer_pos + loc + ] + ).tobytes() + self._read_buffer_pos += loc + self._read_buffer_size -= loc + # Amortized O(1) shrink + # (this heuristic is implemented natively in Python 3.4+ + # but is replicated here for Python 2) + if self._read_buffer_pos > self._read_buffer_size: + del self._read_buffer[: self._read_buffer_pos] + self._read_buffer_pos = 0 + return b + + def _check_closed(self) -> None: + if self.closed(): + raise StreamClosedError(real_error=self.error) + + def _maybe_add_error_listener(self) -> None: + # This method is part of an optimization: to detect a connection that + # is closed when we're not actively reading or writing, we must listen + # for read events. However, it is inefficient to do this when the + # connection is first established because we are going to read or write + # immediately anyway. Instead, we insert checks at various times to + # see if the connection is idle and add the read listener then. + if self._state is None or self._state == ioloop.IOLoop.ERROR: + if ( + not self.closed() + and self._read_buffer_size == 0 + and self._close_callback is not None + ): + self._add_io_state(ioloop.IOLoop.READ) + + def _add_io_state(self, state: int) -> None: + """Adds `state` (IOLoop.{READ,WRITE} flags) to our event handler. + + Implementation notes: Reads and writes have a fast path and a + slow path. The fast path reads synchronously from socket + buffers, while the slow path uses `_add_io_state` to schedule + an IOLoop callback. + + To detect closed connections, we must have called + `_add_io_state` at some point, but we want to delay this as + much as possible so we don't have to set an `IOLoop.ERROR` + listener that will be overwritten by the next slow-path + operation. If a sequence of fast-path ops do not end in a + slow-path op, (e.g. for an @asynchronous long-poll request), + we must add the error handler. + + TODO: reevaluate this now that callbacks are gone. + + """ + if self.closed(): + # connection has been closed, so there can be no future events + return + if self._state is None: + self._state = ioloop.IOLoop.ERROR | state + self.io_loop.add_handler(self.fileno(), self._handle_events, self._state) + elif not self._state & state: + self._state = self._state | state + self.io_loop.update_handler(self.fileno(), self._state) + + def _is_connreset(self, exc: BaseException) -> bool: + """Return ``True`` if exc is ECONNRESET or equivalent. + + May be overridden in subclasses. + """ + return ( + isinstance(exc, (socket.error, IOError)) + and errno_from_exception(exc) in _ERRNO_CONNRESET + ) + + +class IOStream(BaseIOStream): + r"""Socket-based `IOStream` implementation. + + This class supports the read and write methods from `BaseIOStream` + plus a `connect` method. + + The ``socket`` parameter may either be connected or unconnected. + For server operations the socket is the result of calling + `socket.accept `. For client operations the + socket is created with `socket.socket`, and may either be + connected before passing it to the `IOStream` or connected with + `IOStream.connect`. + + A very simple (and broken) HTTP client using this class: + + .. testcode:: + + import tornado.ioloop + import tornado.iostream + import socket + + async def main(): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) + stream = tornado.iostream.IOStream(s) + await stream.connect(("friendfeed.com", 80)) + await stream.write(b"GET / HTTP/1.0\r\nHost: friendfeed.com\r\n\r\n") + header_data = await stream.read_until(b"\r\n\r\n") + headers = {} + for line in header_data.split(b"\r\n"): + parts = line.split(b":") + if len(parts) == 2: + headers[parts[0].strip()] = parts[1].strip() + body_data = await stream.read_bytes(int(headers[b"Content-Length"])) + print(body_data) + stream.close() + + if __name__ == '__main__': + tornado.ioloop.IOLoop.current().run_sync(main) + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) + stream = tornado.iostream.IOStream(s) + stream.connect(("friendfeed.com", 80), send_request) + tornado.ioloop.IOLoop.current().start() + + .. testoutput:: + :hide: + + """ + + def __init__(self, socket: socket.socket, *args: Any, **kwargs: Any) -> None: + self.socket = socket + self.socket.setblocking(False) + super(IOStream, self).__init__(*args, **kwargs) + + def fileno(self) -> Union[int, ioloop._Selectable]: + return self.socket + + def close_fd(self) -> None: + self.socket.close() + self.socket = None # type: ignore + + def get_fd_error(self) -> Optional[Exception]: + errno = self.socket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR) + return socket.error(errno, os.strerror(errno)) + + def read_from_fd(self, buf: Union[bytearray, memoryview]) -> Optional[int]: + try: + return self.socket.recv_into(buf, len(buf)) + except socket.error as e: + if e.args[0] in _ERRNO_WOULDBLOCK: + return None + else: + raise + finally: + del buf + + def write_to_fd(self, data: memoryview) -> int: + try: + return self.socket.send(data) # type: ignore + finally: + # Avoid keeping to data, which can be a memoryview. + # See https://github.com/tornadoweb/tornado/pull/2008 + del data + + def connect( + self: _IOStreamType, address: tuple, server_hostname: str = None + ) -> "Future[_IOStreamType]": + """Connects the socket to a remote address without blocking. + + May only be called if the socket passed to the constructor was + not previously connected. The address parameter is in the + same format as for `socket.connect ` for + the type of socket passed to the IOStream constructor, + e.g. an ``(ip, port)`` tuple. Hostnames are accepted here, + but will be resolved synchronously and block the IOLoop. + If you have a hostname instead of an IP address, the `.TCPClient` + class is recommended instead of calling this method directly. + `.TCPClient` will do asynchronous DNS resolution and handle + both IPv4 and IPv6. + + If ``callback`` is specified, it will be called with no + arguments when the connection is completed; if not this method + returns a `.Future` (whose result after a successful + connection will be the stream itself). + + In SSL mode, the ``server_hostname`` parameter will be used + for certificate validation (unless disabled in the + ``ssl_options``) and SNI (if supported; requires Python + 2.7.9+). + + Note that it is safe to call `IOStream.write + ` while the connection is pending, in + which case the data will be written as soon as the connection + is ready. Calling `IOStream` read methods before the socket is + connected works on some platforms but is non-portable. + + .. versionchanged:: 4.0 + If no callback is given, returns a `.Future`. + + .. versionchanged:: 4.2 + SSL certificates are validated by default; pass + ``ssl_options=dict(cert_reqs=ssl.CERT_NONE)`` or a + suitably-configured `ssl.SSLContext` to the + `SSLIOStream` constructor to disable. + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + `.Future` instead. + + """ + self._connecting = True + future = Future() # type: Future[_IOStreamType] + self._connect_future = typing.cast("Future[IOStream]", future) + try: + self.socket.connect(address) + except socket.error as e: + # In non-blocking mode we expect connect() to raise an + # exception with EINPROGRESS or EWOULDBLOCK. + # + # On freebsd, other errors such as ECONNREFUSED may be + # returned immediately when attempting to connect to + # localhost, so handle them the same way as an error + # reported later in _handle_connect. + if ( + errno_from_exception(e) not in _ERRNO_INPROGRESS + and errno_from_exception(e) not in _ERRNO_WOULDBLOCK + ): + if future is None: + gen_log.warning( + "Connect error on fd %s: %s", self.socket.fileno(), e + ) + self.close(exc_info=e) + return future + self._add_io_state(self.io_loop.WRITE) + return future + + def start_tls( + self, + server_side: bool, + ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, + server_hostname: str = None, + ) -> Awaitable["SSLIOStream"]: + """Convert this `IOStream` to an `SSLIOStream`. + + This enables protocols that begin in clear-text mode and + switch to SSL after some initial negotiation (such as the + ``STARTTLS`` extension to SMTP and IMAP). + + This method cannot be used if there are outstanding reads + or writes on the stream, or if there is any data in the + IOStream's buffer (data in the operating system's socket + buffer is allowed). This means it must generally be used + immediately after reading or writing the last clear-text + data. It can also be used immediately after connecting, + before any reads or writes. + + The ``ssl_options`` argument may be either an `ssl.SSLContext` + object or a dictionary of keyword arguments for the + `ssl.wrap_socket` function. The ``server_hostname`` argument + will be used for certificate validation unless disabled + in the ``ssl_options``. + + This method returns a `.Future` whose result is the new + `SSLIOStream`. After this method has been called, + any other operation on the original stream is undefined. + + If a close callback is defined on this stream, it will be + transferred to the new stream. + + .. versionadded:: 4.0 + + .. versionchanged:: 4.2 + SSL certificates are validated by default; pass + ``ssl_options=dict(cert_reqs=ssl.CERT_NONE)`` or a + suitably-configured `ssl.SSLContext` to disable. + """ + if ( + self._read_future + or self._write_futures + or self._connect_future + or self._closed + or self._read_buffer + or self._write_buffer + ): + raise ValueError("IOStream is not idle; cannot convert to SSL") + if ssl_options is None: + if server_side: + ssl_options = _server_ssl_defaults + else: + ssl_options = _client_ssl_defaults + + socket = self.socket + self.io_loop.remove_handler(socket) + self.socket = None # type: ignore + socket = ssl_wrap_socket( + socket, + ssl_options, + server_hostname=server_hostname, + server_side=server_side, + do_handshake_on_connect=False, + ) + orig_close_callback = self._close_callback + self._close_callback = None + + future = Future() # type: Future[SSLIOStream] + ssl_stream = SSLIOStream(socket, ssl_options=ssl_options) + ssl_stream.set_close_callback(orig_close_callback) + ssl_stream._ssl_connect_future = future + ssl_stream.max_buffer_size = self.max_buffer_size + ssl_stream.read_chunk_size = self.read_chunk_size + return future + + def _handle_connect(self) -> None: + try: + err = self.socket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR) + except socket.error as e: + # Hurd doesn't allow SO_ERROR for loopback sockets because all + # errors for such sockets are reported synchronously. + if errno_from_exception(e) == errno.ENOPROTOOPT: + err = 0 + if err != 0: + self.error = socket.error(err, os.strerror(err)) + # IOLoop implementations may vary: some of them return + # an error state before the socket becomes writable, so + # in that case a connection failure would be handled by the + # error path in _handle_events instead of here. + if self._connect_future is None: + gen_log.warning( + "Connect error on fd %s: %s", + self.socket.fileno(), + errno.errorcode[err], + ) + self.close() + return + if self._connect_future is not None: + future = self._connect_future + self._connect_future = None + future_set_result_unless_cancelled(future, self) + self._connecting = False + + def set_nodelay(self, value: bool) -> None: + if self.socket is not None and self.socket.family in ( + socket.AF_INET, + socket.AF_INET6, + ): + try: + self.socket.setsockopt( + socket.IPPROTO_TCP, socket.TCP_NODELAY, 1 if value else 0 + ) + except socket.error as e: + # Sometimes setsockopt will fail if the socket is closed + # at the wrong time. This can happen with HTTPServer + # resetting the value to ``False`` between requests. + if e.errno != errno.EINVAL and not self._is_connreset(e): + raise + + +class SSLIOStream(IOStream): + """A utility class to write to and read from a non-blocking SSL socket. + + If the socket passed to the constructor is already connected, + it should be wrapped with:: + + ssl.wrap_socket(sock, do_handshake_on_connect=False, **kwargs) + + before constructing the `SSLIOStream`. Unconnected sockets will be + wrapped when `IOStream.connect` is finished. + """ + + socket = None # type: ssl.SSLSocket + + def __init__(self, *args: Any, **kwargs: Any) -> None: + """The ``ssl_options`` keyword argument may either be an + `ssl.SSLContext` object or a dictionary of keywords arguments + for `ssl.wrap_socket` + """ + self._ssl_options = kwargs.pop("ssl_options", _client_ssl_defaults) + super(SSLIOStream, self).__init__(*args, **kwargs) + self._ssl_accepting = True + self._handshake_reading = False + self._handshake_writing = False + self._server_hostname = None # type: Optional[str] + + # If the socket is already connected, attempt to start the handshake. + try: + self.socket.getpeername() + except socket.error: + pass + else: + # Indirectly start the handshake, which will run on the next + # IOLoop iteration and then the real IO state will be set in + # _handle_events. + self._add_io_state(self.io_loop.WRITE) + + def reading(self) -> bool: + return self._handshake_reading or super(SSLIOStream, self).reading() + + def writing(self) -> bool: + return self._handshake_writing or super(SSLIOStream, self).writing() + + def _do_ssl_handshake(self) -> None: + # Based on code from test_ssl.py in the python stdlib + try: + self._handshake_reading = False + self._handshake_writing = False + self.socket.do_handshake() + except ssl.SSLError as err: + if err.args[0] == ssl.SSL_ERROR_WANT_READ: + self._handshake_reading = True + return + elif err.args[0] == ssl.SSL_ERROR_WANT_WRITE: + self._handshake_writing = True + return + elif err.args[0] in (ssl.SSL_ERROR_EOF, ssl.SSL_ERROR_ZERO_RETURN): + return self.close(exc_info=err) + elif err.args[0] == ssl.SSL_ERROR_SSL: + try: + peer = self.socket.getpeername() + except Exception: + peer = "(not connected)" + gen_log.warning( + "SSL Error on %s %s: %s", self.socket.fileno(), peer, err + ) + return self.close(exc_info=err) + raise + except socket.error as err: + # Some port scans (e.g. nmap in -sT mode) have been known + # to cause do_handshake to raise EBADF and ENOTCONN, so make + # those errors quiet as well. + # https://groups.google.com/forum/?fromgroups#!topic/python-tornado/ApucKJat1_0 + # Errno 0 is also possible in some cases (nc -z). + # https://github.com/tornadoweb/tornado/issues/2504 + if self._is_connreset(err) or err.args[0] in ( + 0, + errno.EBADF, + errno.ENOTCONN, + ): + return self.close(exc_info=err) + raise + except AttributeError as err: + # On Linux, if the connection was reset before the call to + # wrap_socket, do_handshake will fail with an + # AttributeError. + return self.close(exc_info=err) + else: + self._ssl_accepting = False + if not self._verify_cert(self.socket.getpeercert()): + self.close() + return + self._finish_ssl_connect() + + def _finish_ssl_connect(self) -> None: + if self._ssl_connect_future is not None: + future = self._ssl_connect_future + self._ssl_connect_future = None + future_set_result_unless_cancelled(future, self) + + def _verify_cert(self, peercert: Any) -> bool: + """Returns ``True`` if peercert is valid according to the configured + validation mode and hostname. + + The ssl handshake already tested the certificate for a valid + CA signature; the only thing that remains is to check + the hostname. + """ + if isinstance(self._ssl_options, dict): + verify_mode = self._ssl_options.get("cert_reqs", ssl.CERT_NONE) + elif isinstance(self._ssl_options, ssl.SSLContext): + verify_mode = self._ssl_options.verify_mode + assert verify_mode in (ssl.CERT_NONE, ssl.CERT_REQUIRED, ssl.CERT_OPTIONAL) + if verify_mode == ssl.CERT_NONE or self._server_hostname is None: + return True + cert = self.socket.getpeercert() + if cert is None and verify_mode == ssl.CERT_REQUIRED: + gen_log.warning("No SSL certificate given") + return False + try: + ssl.match_hostname(peercert, self._server_hostname) + except ssl.CertificateError as e: + gen_log.warning("Invalid SSL certificate: %s" % e) + return False + else: + return True + + def _handle_read(self) -> None: + if self._ssl_accepting: + self._do_ssl_handshake() + return + super(SSLIOStream, self)._handle_read() + + def _handle_write(self) -> None: + if self._ssl_accepting: + self._do_ssl_handshake() + return + super(SSLIOStream, self)._handle_write() + + def connect( + self, address: Tuple, server_hostname: str = None + ) -> "Future[SSLIOStream]": + self._server_hostname = server_hostname + # Ignore the result of connect(). If it fails, + # wait_for_handshake will raise an error too. This is + # necessary for the old semantics of the connect callback + # (which takes no arguments). In 6.0 this can be refactored to + # be a regular coroutine. + # TODO: This is trickier than it looks, since if write() + # is called with a connect() pending, we want the connect + # to resolve before the write. Or do we care about this? + # (There's a test for it, but I think in practice users + # either wait for the connect before performing a write or + # they don't care about the connect Future at all) + fut = super(SSLIOStream, self).connect(address) + fut.add_done_callback(lambda f: f.exception()) + return self.wait_for_handshake() + + def _handle_connect(self) -> None: + # Call the superclass method to check for errors. + super(SSLIOStream, self)._handle_connect() + if self.closed(): + return + # When the connection is complete, wrap the socket for SSL + # traffic. Note that we do this by overriding _handle_connect + # instead of by passing a callback to super().connect because + # user callbacks are enqueued asynchronously on the IOLoop, + # but since _handle_events calls _handle_connect immediately + # followed by _handle_write we need this to be synchronous. + # + # The IOLoop will get confused if we swap out self.socket while the + # fd is registered, so remove it now and re-register after + # wrap_socket(). + self.io_loop.remove_handler(self.socket) + old_state = self._state + assert old_state is not None + self._state = None + self.socket = ssl_wrap_socket( + self.socket, + self._ssl_options, + server_hostname=self._server_hostname, + do_handshake_on_connect=False, + ) + self._add_io_state(old_state) + + def wait_for_handshake(self) -> "Future[SSLIOStream]": + """Wait for the initial SSL handshake to complete. + + If a ``callback`` is given, it will be called with no + arguments once the handshake is complete; otherwise this + method returns a `.Future` which will resolve to the + stream itself after the handshake is complete. + + Once the handshake is complete, information such as + the peer's certificate and NPN/ALPN selections may be + accessed on ``self.socket``. + + This method is intended for use on server-side streams + or after using `IOStream.start_tls`; it should not be used + with `IOStream.connect` (which already waits for the + handshake to complete). It may only be called once per stream. + + .. versionadded:: 4.2 + + .. versionchanged:: 6.0 + + The ``callback`` argument was removed. Use the returned + `.Future` instead. + + """ + if self._ssl_connect_future is not None: + raise RuntimeError("Already waiting") + future = self._ssl_connect_future = Future() + if not self._ssl_accepting: + self._finish_ssl_connect() + return future + + def write_to_fd(self, data: memoryview) -> int: + try: + return self.socket.send(data) # type: ignore + except ssl.SSLError as e: + if e.args[0] == ssl.SSL_ERROR_WANT_WRITE: + # In Python 3.5+, SSLSocket.send raises a WANT_WRITE error if + # the socket is not writeable; we need to transform this into + # an EWOULDBLOCK socket.error or a zero return value, + # either of which will be recognized by the caller of this + # method. Prior to Python 3.5, an unwriteable socket would + # simply return 0 bytes written. + return 0 + raise + finally: + # Avoid keeping to data, which can be a memoryview. + # See https://github.com/tornadoweb/tornado/pull/2008 + del data + + def read_from_fd(self, buf: Union[bytearray, memoryview]) -> Optional[int]: + try: + if self._ssl_accepting: + # If the handshake hasn't finished yet, there can't be anything + # to read (attempting to read may or may not raise an exception + # depending on the SSL version) + return None + try: + return self.socket.recv_into(buf, len(buf)) + except ssl.SSLError as e: + # SSLError is a subclass of socket.error, so this except + # block must come first. + if e.args[0] == ssl.SSL_ERROR_WANT_READ: + return None + else: + raise + except socket.error as e: + if e.args[0] in _ERRNO_WOULDBLOCK: + return None + else: + raise + finally: + del buf + + def _is_connreset(self, e: BaseException) -> bool: + if isinstance(e, ssl.SSLError) and e.args[0] == ssl.SSL_ERROR_EOF: + return True + return super(SSLIOStream, self)._is_connreset(e) + + +class PipeIOStream(BaseIOStream): + """Pipe-based `IOStream` implementation. + + The constructor takes an integer file descriptor (such as one returned + by `os.pipe`) rather than an open file object. Pipes are generally + one-way, so a `PipeIOStream` can be used for reading or writing but not + both. + """ + + def __init__(self, fd: int, *args: Any, **kwargs: Any) -> None: + self.fd = fd + self._fio = io.FileIO(self.fd, "r+") + _set_nonblocking(fd) + super(PipeIOStream, self).__init__(*args, **kwargs) + + def fileno(self) -> int: + return self.fd + + def close_fd(self) -> None: + self._fio.close() + + def write_to_fd(self, data: memoryview) -> int: + try: + return os.write(self.fd, data) # type: ignore + finally: + # Avoid keeping to data, which can be a memoryview. + # See https://github.com/tornadoweb/tornado/pull/2008 + del data + + def read_from_fd(self, buf: Union[bytearray, memoryview]) -> Optional[int]: + try: + return self._fio.readinto(buf) # type: ignore + except (IOError, OSError) as e: + if errno_from_exception(e) == errno.EBADF: + # If the writing half of a pipe is closed, select will + # report it as readable but reads will fail with EBADF. + self.close(exc_info=e) + return None + else: + raise + finally: + del buf + + +def doctests() -> Any: + import doctest + + return doctest.DocTestSuite() diff --git a/server/www/packages/packages-linux/x64/tornado/locale.py b/server/www/packages/packages-linux/x64/tornado/locale.py index b72d81b..2a1b738 100644 --- a/server/www/packages/packages-linux/x64/tornado/locale.py +++ b/server/www/packages/packages-linux/x64/tornado/locale.py @@ -1,564 +1,564 @@ -# -*- coding: utf-8 -*- -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Translation methods for generating localized strings. - -To load a locale and generate a translated string:: - - user_locale = tornado.locale.get("es_LA") - print(user_locale.translate("Sign out")) - -`tornado.locale.get()` returns the closest matching locale, not necessarily the -specific locale you requested. You can support pluralization with -additional arguments to `~Locale.translate()`, e.g.:: - - people = [...] - message = user_locale.translate( - "%(list)s is online", "%(list)s are online", len(people)) - print(message % {"list": user_locale.list(people)}) - -The first string is chosen if ``len(people) == 1``, otherwise the second -string is chosen. - -Applications should call one of `load_translations` (which uses a simple -CSV format) or `load_gettext_translations` (which uses the ``.mo`` format -supported by `gettext` and related tools). If neither method is called, -the `Locale.translate` method will simply return the original string. -""" - -import codecs -import csv -import datetime -import gettext -import os -import re - -from tornado import escape -from tornado.log import gen_log - -from tornado._locale_data import LOCALE_NAMES - -from typing import Iterable, Any, Union, Dict - -_default_locale = "en_US" -_translations = {} # type: Dict[str, Any] -_supported_locales = frozenset([_default_locale]) -_use_gettext = False -CONTEXT_SEPARATOR = "\x04" - - -def get(*locale_codes: str) -> "Locale": - """Returns the closest match for the given locale codes. - - We iterate over all given locale codes in order. If we have a tight - or a loose match for the code (e.g., "en" for "en_US"), we return - the locale. Otherwise we move to the next code in the list. - - By default we return ``en_US`` if no translations are found for any of - the specified locales. You can change the default locale with - `set_default_locale()`. - """ - return Locale.get_closest(*locale_codes) - - -def set_default_locale(code: str) -> None: - """Sets the default locale. - - The default locale is assumed to be the language used for all strings - in the system. The translations loaded from disk are mappings from - the default locale to the destination locale. Consequently, you don't - need to create a translation file for the default locale. - """ - global _default_locale - global _supported_locales - _default_locale = code - _supported_locales = frozenset(list(_translations.keys()) + [_default_locale]) - - -def load_translations(directory: str, encoding: str = None) -> None: - """Loads translations from CSV files in a directory. - - Translations are strings with optional Python-style named placeholders - (e.g., ``My name is %(name)s``) and their associated translations. - - The directory should have translation files of the form ``LOCALE.csv``, - e.g. ``es_GT.csv``. The CSV files should have two or three columns: string, - translation, and an optional plural indicator. Plural indicators should - be one of "plural" or "singular". A given string can have both singular - and plural forms. For example ``%(name)s liked this`` may have a - different verb conjugation depending on whether %(name)s is one - name or a list of names. There should be two rows in the CSV file for - that string, one with plural indicator "singular", and one "plural". - For strings with no verbs that would change on translation, simply - use "unknown" or the empty string (or don't include the column at all). - - The file is read using the `csv` module in the default "excel" dialect. - In this format there should not be spaces after the commas. - - If no ``encoding`` parameter is given, the encoding will be - detected automatically (among UTF-8 and UTF-16) if the file - contains a byte-order marker (BOM), defaulting to UTF-8 if no BOM - is present. - - Example translation ``es_LA.csv``:: - - "I love you","Te amo" - "%(name)s liked this","A %(name)s les gustó esto","plural" - "%(name)s liked this","A %(name)s le gustó esto","singular" - - .. versionchanged:: 4.3 - Added ``encoding`` parameter. Added support for BOM-based encoding - detection, UTF-16, and UTF-8-with-BOM. - """ - global _translations - global _supported_locales - _translations = {} - for path in os.listdir(directory): - if not path.endswith(".csv"): - continue - locale, extension = path.split(".") - if not re.match("[a-z]+(_[A-Z]+)?$", locale): - gen_log.error( - "Unrecognized locale %r (path: %s)", - locale, - os.path.join(directory, path), - ) - continue - full_path = os.path.join(directory, path) - if encoding is None: - # Try to autodetect encoding based on the BOM. - with open(full_path, "rb") as bf: - data = bf.read(len(codecs.BOM_UTF16_LE)) - if data in (codecs.BOM_UTF16_LE, codecs.BOM_UTF16_BE): - encoding = "utf-16" - else: - # utf-8-sig is "utf-8 with optional BOM". It's discouraged - # in most cases but is common with CSV files because Excel - # cannot read utf-8 files without a BOM. - encoding = "utf-8-sig" - # python 3: csv.reader requires a file open in text mode. - # Specify an encoding to avoid dependence on $LANG environment variable. - with open(full_path, encoding=encoding) as f: - _translations[locale] = {} - for i, row in enumerate(csv.reader(f)): - if not row or len(row) < 2: - continue - row = [escape.to_unicode(c).strip() for c in row] - english, translation = row[:2] - if len(row) > 2: - plural = row[2] or "unknown" - else: - plural = "unknown" - if plural not in ("plural", "singular", "unknown"): - gen_log.error( - "Unrecognized plural indicator %r in %s line %d", - plural, - path, - i + 1, - ) - continue - _translations[locale].setdefault(plural, {})[english] = translation - _supported_locales = frozenset(list(_translations.keys()) + [_default_locale]) - gen_log.debug("Supported locales: %s", sorted(_supported_locales)) - - -def load_gettext_translations(directory: str, domain: str) -> None: - """Loads translations from `gettext`'s locale tree - - Locale tree is similar to system's ``/usr/share/locale``, like:: - - {directory}/{lang}/LC_MESSAGES/{domain}.mo - - Three steps are required to have your app translated: - - 1. Generate POT translation file:: - - xgettext --language=Python --keyword=_:1,2 -d mydomain file1.py file2.html etc - - 2. Merge against existing POT file:: - - msgmerge old.po mydomain.po > new.po - - 3. Compile:: - - msgfmt mydomain.po -o {directory}/pt_BR/LC_MESSAGES/mydomain.mo - """ - import gettext - - global _translations - global _supported_locales - global _use_gettext - _translations = {} - for lang in os.listdir(directory): - if lang.startswith("."): - continue # skip .svn, etc - if os.path.isfile(os.path.join(directory, lang)): - continue - try: - os.stat(os.path.join(directory, lang, "LC_MESSAGES", domain + ".mo")) - _translations[lang] = gettext.translation( - domain, directory, languages=[lang] - ) - except Exception as e: - gen_log.error("Cannot load translation for '%s': %s", lang, str(e)) - continue - _supported_locales = frozenset(list(_translations.keys()) + [_default_locale]) - _use_gettext = True - gen_log.debug("Supported locales: %s", sorted(_supported_locales)) - - -def get_supported_locales() -> Iterable[str]: - """Returns a list of all the supported locale codes.""" - return _supported_locales - - -class Locale(object): - """Object representing a locale. - - After calling one of `load_translations` or `load_gettext_translations`, - call `get` or `get_closest` to get a Locale object. - """ - - _cache = {} # type: Dict[str, Locale] - - @classmethod - def get_closest(cls, *locale_codes: str) -> "Locale": - """Returns the closest match for the given locale code.""" - for code in locale_codes: - if not code: - continue - code = code.replace("-", "_") - parts = code.split("_") - if len(parts) > 2: - continue - elif len(parts) == 2: - code = parts[0].lower() + "_" + parts[1].upper() - if code in _supported_locales: - return cls.get(code) - if parts[0].lower() in _supported_locales: - return cls.get(parts[0].lower()) - return cls.get(_default_locale) - - @classmethod - def get(cls, code: str) -> "Locale": - """Returns the Locale for the given locale code. - - If it is not supported, we raise an exception. - """ - if code not in cls._cache: - assert code in _supported_locales - translations = _translations.get(code, None) - if translations is None: - locale = CSVLocale(code, {}) # type: Locale - elif _use_gettext: - locale = GettextLocale(code, translations) - else: - locale = CSVLocale(code, translations) - cls._cache[code] = locale - return cls._cache[code] - - def __init__(self, code: str) -> None: - self.code = code - self.name = LOCALE_NAMES.get(code, {}).get("name", u"Unknown") - self.rtl = False - for prefix in ["fa", "ar", "he"]: - if self.code.startswith(prefix): - self.rtl = True - break - - # Initialize strings for date formatting - _ = self.translate - self._months = [ - _("January"), - _("February"), - _("March"), - _("April"), - _("May"), - _("June"), - _("July"), - _("August"), - _("September"), - _("October"), - _("November"), - _("December"), - ] - self._weekdays = [ - _("Monday"), - _("Tuesday"), - _("Wednesday"), - _("Thursday"), - _("Friday"), - _("Saturday"), - _("Sunday"), - ] - - def translate( - self, message: str, plural_message: str = None, count: int = None - ) -> str: - """Returns the translation for the given message for this locale. - - If ``plural_message`` is given, you must also provide - ``count``. We return ``plural_message`` when ``count != 1``, - and we return the singular form for the given message when - ``count == 1``. - """ - raise NotImplementedError() - - def pgettext( - self, context: str, message: str, plural_message: str = None, count: int = None - ) -> str: - raise NotImplementedError() - - def format_date( - self, - date: Union[int, float, datetime.datetime], - gmt_offset: int = 0, - relative: bool = True, - shorter: bool = False, - full_format: bool = False, - ) -> str: - """Formats the given date (which should be GMT). - - By default, we return a relative time (e.g., "2 minutes ago"). You - can return an absolute date string with ``relative=False``. - - You can force a full format date ("July 10, 1980") with - ``full_format=True``. - - This method is primarily intended for dates in the past. - For dates in the future, we fall back to full format. - """ - if isinstance(date, (int, float)): - date = datetime.datetime.utcfromtimestamp(date) - now = datetime.datetime.utcnow() - if date > now: - if relative and (date - now).seconds < 60: - # Due to click skew, things are some things slightly - # in the future. Round timestamps in the immediate - # future down to now in relative mode. - date = now - else: - # Otherwise, future dates always use the full format. - full_format = True - local_date = date - datetime.timedelta(minutes=gmt_offset) - local_now = now - datetime.timedelta(minutes=gmt_offset) - local_yesterday = local_now - datetime.timedelta(hours=24) - difference = now - date - seconds = difference.seconds - days = difference.days - - _ = self.translate - format = None - if not full_format: - if relative and days == 0: - if seconds < 50: - return _("1 second ago", "%(seconds)d seconds ago", seconds) % { - "seconds": seconds - } - - if seconds < 50 * 60: - minutes = round(seconds / 60.0) - return _("1 minute ago", "%(minutes)d minutes ago", minutes) % { - "minutes": minutes - } - - hours = round(seconds / (60.0 * 60)) - return _("1 hour ago", "%(hours)d hours ago", hours) % {"hours": hours} - - if days == 0: - format = _("%(time)s") - elif days == 1 and local_date.day == local_yesterday.day and relative: - format = _("yesterday") if shorter else _("yesterday at %(time)s") - elif days < 5: - format = _("%(weekday)s") if shorter else _("%(weekday)s at %(time)s") - elif days < 334: # 11mo, since confusing for same month last year - format = ( - _("%(month_name)s %(day)s") - if shorter - else _("%(month_name)s %(day)s at %(time)s") - ) - - if format is None: - format = ( - _("%(month_name)s %(day)s, %(year)s") - if shorter - else _("%(month_name)s %(day)s, %(year)s at %(time)s") - ) - - tfhour_clock = self.code not in ("en", "en_US", "zh_CN") - if tfhour_clock: - str_time = "%d:%02d" % (local_date.hour, local_date.minute) - elif self.code == "zh_CN": - str_time = "%s%d:%02d" % ( - (u"\u4e0a\u5348", u"\u4e0b\u5348")[local_date.hour >= 12], - local_date.hour % 12 or 12, - local_date.minute, - ) - else: - str_time = "%d:%02d %s" % ( - local_date.hour % 12 or 12, - local_date.minute, - ("am", "pm")[local_date.hour >= 12], - ) - - return format % { - "month_name": self._months[local_date.month - 1], - "weekday": self._weekdays[local_date.weekday()], - "day": str(local_date.day), - "year": str(local_date.year), - "time": str_time, - } - - def format_day( - self, date: datetime.datetime, gmt_offset: int = 0, dow: bool = True - ) -> bool: - """Formats the given date as a day of week. - - Example: "Monday, January 22". You can remove the day of week with - ``dow=False``. - """ - local_date = date - datetime.timedelta(minutes=gmt_offset) - _ = self.translate - if dow: - return _("%(weekday)s, %(month_name)s %(day)s") % { - "month_name": self._months[local_date.month - 1], - "weekday": self._weekdays[local_date.weekday()], - "day": str(local_date.day), - } - else: - return _("%(month_name)s %(day)s") % { - "month_name": self._months[local_date.month - 1], - "day": str(local_date.day), - } - - def list(self, parts: Any) -> str: - """Returns a comma-separated list for the given list of parts. - - The format is, e.g., "A, B and C", "A and B" or just "A" for lists - of size 1. - """ - _ = self.translate - if len(parts) == 0: - return "" - if len(parts) == 1: - return parts[0] - comma = u" \u0648 " if self.code.startswith("fa") else u", " - return _("%(commas)s and %(last)s") % { - "commas": comma.join(parts[:-1]), - "last": parts[len(parts) - 1], - } - - def friendly_number(self, value: int) -> str: - """Returns a comma-separated number for the given integer.""" - if self.code not in ("en", "en_US"): - return str(value) - s = str(value) - parts = [] - while s: - parts.append(s[-3:]) - s = s[:-3] - return ",".join(reversed(parts)) - - -class CSVLocale(Locale): - """Locale implementation using tornado's CSV translation format.""" - - def __init__(self, code: str, translations: Dict[str, Dict[str, str]]) -> None: - self.translations = translations - super(CSVLocale, self).__init__(code) - - def translate( - self, message: str, plural_message: str = None, count: int = None - ) -> str: - if plural_message is not None: - assert count is not None - if count != 1: - message = plural_message - message_dict = self.translations.get("plural", {}) - else: - message_dict = self.translations.get("singular", {}) - else: - message_dict = self.translations.get("unknown", {}) - return message_dict.get(message, message) - - def pgettext( - self, context: str, message: str, plural_message: str = None, count: int = None - ) -> str: - if self.translations: - gen_log.warning("pgettext is not supported by CSVLocale") - return self.translate(message, plural_message, count) - - -class GettextLocale(Locale): - """Locale implementation using the `gettext` module.""" - - def __init__(self, code: str, translations: gettext.NullTranslations) -> None: - self.ngettext = translations.ngettext - self.gettext = translations.gettext - # self.gettext must exist before __init__ is called, since it - # calls into self.translate - super(GettextLocale, self).__init__(code) - - def translate( - self, message: str, plural_message: str = None, count: int = None - ) -> str: - if plural_message is not None: - assert count is not None - return self.ngettext(message, plural_message, count) - else: - return self.gettext(message) - - def pgettext( - self, context: str, message: str, plural_message: str = None, count: int = None - ) -> str: - """Allows to set context for translation, accepts plural forms. - - Usage example:: - - pgettext("law", "right") - pgettext("good", "right") - - Plural message example:: - - pgettext("organization", "club", "clubs", len(clubs)) - pgettext("stick", "club", "clubs", len(clubs)) - - To generate POT file with context, add following options to step 1 - of `load_gettext_translations` sequence:: - - xgettext [basic options] --keyword=pgettext:1c,2 --keyword=pgettext:1c,2,3 - - .. versionadded:: 4.2 - """ - if plural_message is not None: - assert count is not None - msgs_with_ctxt = ( - "%s%s%s" % (context, CONTEXT_SEPARATOR, message), - "%s%s%s" % (context, CONTEXT_SEPARATOR, plural_message), - count, - ) - result = self.ngettext(*msgs_with_ctxt) - if CONTEXT_SEPARATOR in result: - # Translation not found - result = self.ngettext(message, plural_message, count) - return result - else: - msg_with_ctxt = "%s%s%s" % (context, CONTEXT_SEPARATOR, message) - result = self.gettext(msg_with_ctxt) - if CONTEXT_SEPARATOR in result: - # Translation not found - result = message - return result +# -*- coding: utf-8 -*- +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Translation methods for generating localized strings. + +To load a locale and generate a translated string:: + + user_locale = tornado.locale.get("es_LA") + print(user_locale.translate("Sign out")) + +`tornado.locale.get()` returns the closest matching locale, not necessarily the +specific locale you requested. You can support pluralization with +additional arguments to `~Locale.translate()`, e.g.:: + + people = [...] + message = user_locale.translate( + "%(list)s is online", "%(list)s are online", len(people)) + print(message % {"list": user_locale.list(people)}) + +The first string is chosen if ``len(people) == 1``, otherwise the second +string is chosen. + +Applications should call one of `load_translations` (which uses a simple +CSV format) or `load_gettext_translations` (which uses the ``.mo`` format +supported by `gettext` and related tools). If neither method is called, +the `Locale.translate` method will simply return the original string. +""" + +import codecs +import csv +import datetime +import gettext +import os +import re + +from tornado import escape +from tornado.log import gen_log + +from tornado._locale_data import LOCALE_NAMES + +from typing import Iterable, Any, Union, Dict + +_default_locale = "en_US" +_translations = {} # type: Dict[str, Any] +_supported_locales = frozenset([_default_locale]) +_use_gettext = False +CONTEXT_SEPARATOR = "\x04" + + +def get(*locale_codes: str) -> "Locale": + """Returns the closest match for the given locale codes. + + We iterate over all given locale codes in order. If we have a tight + or a loose match for the code (e.g., "en" for "en_US"), we return + the locale. Otherwise we move to the next code in the list. + + By default we return ``en_US`` if no translations are found for any of + the specified locales. You can change the default locale with + `set_default_locale()`. + """ + return Locale.get_closest(*locale_codes) + + +def set_default_locale(code: str) -> None: + """Sets the default locale. + + The default locale is assumed to be the language used for all strings + in the system. The translations loaded from disk are mappings from + the default locale to the destination locale. Consequently, you don't + need to create a translation file for the default locale. + """ + global _default_locale + global _supported_locales + _default_locale = code + _supported_locales = frozenset(list(_translations.keys()) + [_default_locale]) + + +def load_translations(directory: str, encoding: str = None) -> None: + """Loads translations from CSV files in a directory. + + Translations are strings with optional Python-style named placeholders + (e.g., ``My name is %(name)s``) and their associated translations. + + The directory should have translation files of the form ``LOCALE.csv``, + e.g. ``es_GT.csv``. The CSV files should have two or three columns: string, + translation, and an optional plural indicator. Plural indicators should + be one of "plural" or "singular". A given string can have both singular + and plural forms. For example ``%(name)s liked this`` may have a + different verb conjugation depending on whether %(name)s is one + name or a list of names. There should be two rows in the CSV file for + that string, one with plural indicator "singular", and one "plural". + For strings with no verbs that would change on translation, simply + use "unknown" or the empty string (or don't include the column at all). + + The file is read using the `csv` module in the default "excel" dialect. + In this format there should not be spaces after the commas. + + If no ``encoding`` parameter is given, the encoding will be + detected automatically (among UTF-8 and UTF-16) if the file + contains a byte-order marker (BOM), defaulting to UTF-8 if no BOM + is present. + + Example translation ``es_LA.csv``:: + + "I love you","Te amo" + "%(name)s liked this","A %(name)s les gustó esto","plural" + "%(name)s liked this","A %(name)s le gustó esto","singular" + + .. versionchanged:: 4.3 + Added ``encoding`` parameter. Added support for BOM-based encoding + detection, UTF-16, and UTF-8-with-BOM. + """ + global _translations + global _supported_locales + _translations = {} + for path in os.listdir(directory): + if not path.endswith(".csv"): + continue + locale, extension = path.split(".") + if not re.match("[a-z]+(_[A-Z]+)?$", locale): + gen_log.error( + "Unrecognized locale %r (path: %s)", + locale, + os.path.join(directory, path), + ) + continue + full_path = os.path.join(directory, path) + if encoding is None: + # Try to autodetect encoding based on the BOM. + with open(full_path, "rb") as bf: + data = bf.read(len(codecs.BOM_UTF16_LE)) + if data in (codecs.BOM_UTF16_LE, codecs.BOM_UTF16_BE): + encoding = "utf-16" + else: + # utf-8-sig is "utf-8 with optional BOM". It's discouraged + # in most cases but is common with CSV files because Excel + # cannot read utf-8 files without a BOM. + encoding = "utf-8-sig" + # python 3: csv.reader requires a file open in text mode. + # Specify an encoding to avoid dependence on $LANG environment variable. + with open(full_path, encoding=encoding) as f: + _translations[locale] = {} + for i, row in enumerate(csv.reader(f)): + if not row or len(row) < 2: + continue + row = [escape.to_unicode(c).strip() for c in row] + english, translation = row[:2] + if len(row) > 2: + plural = row[2] or "unknown" + else: + plural = "unknown" + if plural not in ("plural", "singular", "unknown"): + gen_log.error( + "Unrecognized plural indicator %r in %s line %d", + plural, + path, + i + 1, + ) + continue + _translations[locale].setdefault(plural, {})[english] = translation + _supported_locales = frozenset(list(_translations.keys()) + [_default_locale]) + gen_log.debug("Supported locales: %s", sorted(_supported_locales)) + + +def load_gettext_translations(directory: str, domain: str) -> None: + """Loads translations from `gettext`'s locale tree + + Locale tree is similar to system's ``/usr/share/locale``, like:: + + {directory}/{lang}/LC_MESSAGES/{domain}.mo + + Three steps are required to have your app translated: + + 1. Generate POT translation file:: + + xgettext --language=Python --keyword=_:1,2 -d mydomain file1.py file2.html etc + + 2. Merge against existing POT file:: + + msgmerge old.po mydomain.po > new.po + + 3. Compile:: + + msgfmt mydomain.po -o {directory}/pt_BR/LC_MESSAGES/mydomain.mo + """ + import gettext + + global _translations + global _supported_locales + global _use_gettext + _translations = {} + for lang in os.listdir(directory): + if lang.startswith("."): + continue # skip .svn, etc + if os.path.isfile(os.path.join(directory, lang)): + continue + try: + os.stat(os.path.join(directory, lang, "LC_MESSAGES", domain + ".mo")) + _translations[lang] = gettext.translation( + domain, directory, languages=[lang] + ) + except Exception as e: + gen_log.error("Cannot load translation for '%s': %s", lang, str(e)) + continue + _supported_locales = frozenset(list(_translations.keys()) + [_default_locale]) + _use_gettext = True + gen_log.debug("Supported locales: %s", sorted(_supported_locales)) + + +def get_supported_locales() -> Iterable[str]: + """Returns a list of all the supported locale codes.""" + return _supported_locales + + +class Locale(object): + """Object representing a locale. + + After calling one of `load_translations` or `load_gettext_translations`, + call `get` or `get_closest` to get a Locale object. + """ + + _cache = {} # type: Dict[str, Locale] + + @classmethod + def get_closest(cls, *locale_codes: str) -> "Locale": + """Returns the closest match for the given locale code.""" + for code in locale_codes: + if not code: + continue + code = code.replace("-", "_") + parts = code.split("_") + if len(parts) > 2: + continue + elif len(parts) == 2: + code = parts[0].lower() + "_" + parts[1].upper() + if code in _supported_locales: + return cls.get(code) + if parts[0].lower() in _supported_locales: + return cls.get(parts[0].lower()) + return cls.get(_default_locale) + + @classmethod + def get(cls, code: str) -> "Locale": + """Returns the Locale for the given locale code. + + If it is not supported, we raise an exception. + """ + if code not in cls._cache: + assert code in _supported_locales + translations = _translations.get(code, None) + if translations is None: + locale = CSVLocale(code, {}) # type: Locale + elif _use_gettext: + locale = GettextLocale(code, translations) + else: + locale = CSVLocale(code, translations) + cls._cache[code] = locale + return cls._cache[code] + + def __init__(self, code: str) -> None: + self.code = code + self.name = LOCALE_NAMES.get(code, {}).get("name", u"Unknown") + self.rtl = False + for prefix in ["fa", "ar", "he"]: + if self.code.startswith(prefix): + self.rtl = True + break + + # Initialize strings for date formatting + _ = self.translate + self._months = [ + _("January"), + _("February"), + _("March"), + _("April"), + _("May"), + _("June"), + _("July"), + _("August"), + _("September"), + _("October"), + _("November"), + _("December"), + ] + self._weekdays = [ + _("Monday"), + _("Tuesday"), + _("Wednesday"), + _("Thursday"), + _("Friday"), + _("Saturday"), + _("Sunday"), + ] + + def translate( + self, message: str, plural_message: str = None, count: int = None + ) -> str: + """Returns the translation for the given message for this locale. + + If ``plural_message`` is given, you must also provide + ``count``. We return ``plural_message`` when ``count != 1``, + and we return the singular form for the given message when + ``count == 1``. + """ + raise NotImplementedError() + + def pgettext( + self, context: str, message: str, plural_message: str = None, count: int = None + ) -> str: + raise NotImplementedError() + + def format_date( + self, + date: Union[int, float, datetime.datetime], + gmt_offset: int = 0, + relative: bool = True, + shorter: bool = False, + full_format: bool = False, + ) -> str: + """Formats the given date (which should be GMT). + + By default, we return a relative time (e.g., "2 minutes ago"). You + can return an absolute date string with ``relative=False``. + + You can force a full format date ("July 10, 1980") with + ``full_format=True``. + + This method is primarily intended for dates in the past. + For dates in the future, we fall back to full format. + """ + if isinstance(date, (int, float)): + date = datetime.datetime.utcfromtimestamp(date) + now = datetime.datetime.utcnow() + if date > now: + if relative and (date - now).seconds < 60: + # Due to click skew, things are some things slightly + # in the future. Round timestamps in the immediate + # future down to now in relative mode. + date = now + else: + # Otherwise, future dates always use the full format. + full_format = True + local_date = date - datetime.timedelta(minutes=gmt_offset) + local_now = now - datetime.timedelta(minutes=gmt_offset) + local_yesterday = local_now - datetime.timedelta(hours=24) + difference = now - date + seconds = difference.seconds + days = difference.days + + _ = self.translate + format = None + if not full_format: + if relative and days == 0: + if seconds < 50: + return _("1 second ago", "%(seconds)d seconds ago", seconds) % { + "seconds": seconds + } + + if seconds < 50 * 60: + minutes = round(seconds / 60.0) + return _("1 minute ago", "%(minutes)d minutes ago", minutes) % { + "minutes": minutes + } + + hours = round(seconds / (60.0 * 60)) + return _("1 hour ago", "%(hours)d hours ago", hours) % {"hours": hours} + + if days == 0: + format = _("%(time)s") + elif days == 1 and local_date.day == local_yesterday.day and relative: + format = _("yesterday") if shorter else _("yesterday at %(time)s") + elif days < 5: + format = _("%(weekday)s") if shorter else _("%(weekday)s at %(time)s") + elif days < 334: # 11mo, since confusing for same month last year + format = ( + _("%(month_name)s %(day)s") + if shorter + else _("%(month_name)s %(day)s at %(time)s") + ) + + if format is None: + format = ( + _("%(month_name)s %(day)s, %(year)s") + if shorter + else _("%(month_name)s %(day)s, %(year)s at %(time)s") + ) + + tfhour_clock = self.code not in ("en", "en_US", "zh_CN") + if tfhour_clock: + str_time = "%d:%02d" % (local_date.hour, local_date.minute) + elif self.code == "zh_CN": + str_time = "%s%d:%02d" % ( + (u"\u4e0a\u5348", u"\u4e0b\u5348")[local_date.hour >= 12], + local_date.hour % 12 or 12, + local_date.minute, + ) + else: + str_time = "%d:%02d %s" % ( + local_date.hour % 12 or 12, + local_date.minute, + ("am", "pm")[local_date.hour >= 12], + ) + + return format % { + "month_name": self._months[local_date.month - 1], + "weekday": self._weekdays[local_date.weekday()], + "day": str(local_date.day), + "year": str(local_date.year), + "time": str_time, + } + + def format_day( + self, date: datetime.datetime, gmt_offset: int = 0, dow: bool = True + ) -> bool: + """Formats the given date as a day of week. + + Example: "Monday, January 22". You can remove the day of week with + ``dow=False``. + """ + local_date = date - datetime.timedelta(minutes=gmt_offset) + _ = self.translate + if dow: + return _("%(weekday)s, %(month_name)s %(day)s") % { + "month_name": self._months[local_date.month - 1], + "weekday": self._weekdays[local_date.weekday()], + "day": str(local_date.day), + } + else: + return _("%(month_name)s %(day)s") % { + "month_name": self._months[local_date.month - 1], + "day": str(local_date.day), + } + + def list(self, parts: Any) -> str: + """Returns a comma-separated list for the given list of parts. + + The format is, e.g., "A, B and C", "A and B" or just "A" for lists + of size 1. + """ + _ = self.translate + if len(parts) == 0: + return "" + if len(parts) == 1: + return parts[0] + comma = u" \u0648 " if self.code.startswith("fa") else u", " + return _("%(commas)s and %(last)s") % { + "commas": comma.join(parts[:-1]), + "last": parts[len(parts) - 1], + } + + def friendly_number(self, value: int) -> str: + """Returns a comma-separated number for the given integer.""" + if self.code not in ("en", "en_US"): + return str(value) + s = str(value) + parts = [] + while s: + parts.append(s[-3:]) + s = s[:-3] + return ",".join(reversed(parts)) + + +class CSVLocale(Locale): + """Locale implementation using tornado's CSV translation format.""" + + def __init__(self, code: str, translations: Dict[str, Dict[str, str]]) -> None: + self.translations = translations + super(CSVLocale, self).__init__(code) + + def translate( + self, message: str, plural_message: str = None, count: int = None + ) -> str: + if plural_message is not None: + assert count is not None + if count != 1: + message = plural_message + message_dict = self.translations.get("plural", {}) + else: + message_dict = self.translations.get("singular", {}) + else: + message_dict = self.translations.get("unknown", {}) + return message_dict.get(message, message) + + def pgettext( + self, context: str, message: str, plural_message: str = None, count: int = None + ) -> str: + if self.translations: + gen_log.warning("pgettext is not supported by CSVLocale") + return self.translate(message, plural_message, count) + + +class GettextLocale(Locale): + """Locale implementation using the `gettext` module.""" + + def __init__(self, code: str, translations: gettext.NullTranslations) -> None: + self.ngettext = translations.ngettext + self.gettext = translations.gettext + # self.gettext must exist before __init__ is called, since it + # calls into self.translate + super(GettextLocale, self).__init__(code) + + def translate( + self, message: str, plural_message: str = None, count: int = None + ) -> str: + if plural_message is not None: + assert count is not None + return self.ngettext(message, plural_message, count) + else: + return self.gettext(message) + + def pgettext( + self, context: str, message: str, plural_message: str = None, count: int = None + ) -> str: + """Allows to set context for translation, accepts plural forms. + + Usage example:: + + pgettext("law", "right") + pgettext("good", "right") + + Plural message example:: + + pgettext("organization", "club", "clubs", len(clubs)) + pgettext("stick", "club", "clubs", len(clubs)) + + To generate POT file with context, add following options to step 1 + of `load_gettext_translations` sequence:: + + xgettext [basic options] --keyword=pgettext:1c,2 --keyword=pgettext:1c,2,3 + + .. versionadded:: 4.2 + """ + if plural_message is not None: + assert count is not None + msgs_with_ctxt = ( + "%s%s%s" % (context, CONTEXT_SEPARATOR, message), + "%s%s%s" % (context, CONTEXT_SEPARATOR, plural_message), + count, + ) + result = self.ngettext(*msgs_with_ctxt) + if CONTEXT_SEPARATOR in result: + # Translation not found + result = self.ngettext(message, plural_message, count) + return result + else: + msg_with_ctxt = "%s%s%s" % (context, CONTEXT_SEPARATOR, message) + result = self.gettext(msg_with_ctxt) + if CONTEXT_SEPARATOR in result: + # Translation not found + result = message + return result diff --git a/server/www/packages/packages-linux/x64/tornado/locks.py b/server/www/packages/packages-linux/x64/tornado/locks.py index 699bb30..a90b3e3 100644 --- a/server/www/packages/packages-linux/x64/tornado/locks.py +++ b/server/www/packages/packages-linux/x64/tornado/locks.py @@ -1,570 +1,570 @@ -# Copyright 2015 The Tornado Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import collections -from concurrent.futures import CancelledError -import datetime -import types - -from tornado import gen, ioloop -from tornado.concurrent import Future, future_set_result_unless_cancelled - -from typing import Union, Optional, Type, Any, Awaitable -import typing - -if typing.TYPE_CHECKING: - from typing import Deque, Set # noqa: F401 - -__all__ = ["Condition", "Event", "Semaphore", "BoundedSemaphore", "Lock"] - - -class _TimeoutGarbageCollector(object): - """Base class for objects that periodically clean up timed-out waiters. - - Avoids memory leak in a common pattern like: - - while True: - yield condition.wait(short_timeout) - print('looping....') - """ - - def __init__(self) -> None: - self._waiters = collections.deque() # type: Deque[Future] - self._timeouts = 0 - - def _garbage_collect(self) -> None: - # Occasionally clear timed-out waiters. - self._timeouts += 1 - if self._timeouts > 100: - self._timeouts = 0 - self._waiters = collections.deque(w for w in self._waiters if not w.done()) - - -class Condition(_TimeoutGarbageCollector): - """A condition allows one or more coroutines to wait until notified. - - Like a standard `threading.Condition`, but does not need an underlying lock - that is acquired and released. - - With a `Condition`, coroutines can wait to be notified by other coroutines: - - .. testcode:: - - from tornado import gen - from tornado.ioloop import IOLoop - from tornado.locks import Condition - - condition = Condition() - - async def waiter(): - print("I'll wait right here") - await condition.wait() - print("I'm done waiting") - - async def notifier(): - print("About to notify") - condition.notify() - print("Done notifying") - - async def runner(): - # Wait for waiter() and notifier() in parallel - await gen.multi([waiter(), notifier()]) - - IOLoop.current().run_sync(runner) - - .. testoutput:: - - I'll wait right here - About to notify - Done notifying - I'm done waiting - - `wait` takes an optional ``timeout`` argument, which is either an absolute - timestamp:: - - io_loop = IOLoop.current() - - # Wait up to 1 second for a notification. - await condition.wait(timeout=io_loop.time() + 1) - - ...or a `datetime.timedelta` for a timeout relative to the current time:: - - # Wait up to 1 second. - await condition.wait(timeout=datetime.timedelta(seconds=1)) - - The method returns False if there's no notification before the deadline. - - .. versionchanged:: 5.0 - Previously, waiters could be notified synchronously from within - `notify`. Now, the notification will always be received on the - next iteration of the `.IOLoop`. - """ - - def __init__(self) -> None: - super(Condition, self).__init__() - self.io_loop = ioloop.IOLoop.current() - - def __repr__(self) -> str: - result = "<%s" % (self.__class__.__name__,) - if self._waiters: - result += " waiters[%s]" % len(self._waiters) - return result + ">" - - def wait(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[bool]: - """Wait for `.notify`. - - Returns a `.Future` that resolves ``True`` if the condition is notified, - or ``False`` after a timeout. - """ - waiter = Future() # type: Future[bool] - self._waiters.append(waiter) - if timeout: - - def on_timeout() -> None: - if not waiter.done(): - future_set_result_unless_cancelled(waiter, False) - self._garbage_collect() - - io_loop = ioloop.IOLoop.current() - timeout_handle = io_loop.add_timeout(timeout, on_timeout) - waiter.add_done_callback(lambda _: io_loop.remove_timeout(timeout_handle)) - return waiter - - def notify(self, n: int = 1) -> None: - """Wake ``n`` waiters.""" - waiters = [] # Waiters we plan to run right now. - while n and self._waiters: - waiter = self._waiters.popleft() - if not waiter.done(): # Might have timed out. - n -= 1 - waiters.append(waiter) - - for waiter in waiters: - future_set_result_unless_cancelled(waiter, True) - - def notify_all(self) -> None: - """Wake all waiters.""" - self.notify(len(self._waiters)) - - -class Event(object): - """An event blocks coroutines until its internal flag is set to True. - - Similar to `threading.Event`. - - A coroutine can wait for an event to be set. Once it is set, calls to - ``yield event.wait()`` will not block unless the event has been cleared: - - .. testcode:: - - from tornado import gen - from tornado.ioloop import IOLoop - from tornado.locks import Event - - event = Event() - - async def waiter(): - print("Waiting for event") - await event.wait() - print("Not waiting this time") - await event.wait() - print("Done") - - async def setter(): - print("About to set the event") - event.set() - - async def runner(): - await gen.multi([waiter(), setter()]) - - IOLoop.current().run_sync(runner) - - .. testoutput:: - - Waiting for event - About to set the event - Not waiting this time - Done - """ - - def __init__(self) -> None: - self._value = False - self._waiters = set() # type: Set[Future[None]] - - def __repr__(self) -> str: - return "<%s %s>" % ( - self.__class__.__name__, - "set" if self.is_set() else "clear", - ) - - def is_set(self) -> bool: - """Return ``True`` if the internal flag is true.""" - return self._value - - def set(self) -> None: - """Set the internal flag to ``True``. All waiters are awakened. - - Calling `.wait` once the flag is set will not block. - """ - if not self._value: - self._value = True - - for fut in self._waiters: - if not fut.done(): - fut.set_result(None) - - def clear(self) -> None: - """Reset the internal flag to ``False``. - - Calls to `.wait` will block until `.set` is called. - """ - self._value = False - - def wait(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[None]: - """Block until the internal flag is true. - - Returns an awaitable, which raises `tornado.util.TimeoutError` after a - timeout. - """ - fut = Future() # type: Future[None] - if self._value: - fut.set_result(None) - return fut - self._waiters.add(fut) - fut.add_done_callback(lambda fut: self._waiters.remove(fut)) - if timeout is None: - return fut - else: - timeout_fut = gen.with_timeout( - timeout, fut, quiet_exceptions=(CancelledError,) - ) - # This is a slightly clumsy workaround for the fact that - # gen.with_timeout doesn't cancel its futures. Cancelling - # fut will remove it from the waiters list. - timeout_fut.add_done_callback( - lambda tf: fut.cancel() if not fut.done() else None - ) - return timeout_fut - - -class _ReleasingContextManager(object): - """Releases a Lock or Semaphore at the end of a "with" statement. - - with (yield semaphore.acquire()): - pass - - # Now semaphore.release() has been called. - """ - - def __init__(self, obj: Any) -> None: - self._obj = obj - - def __enter__(self) -> None: - pass - - def __exit__( - self, - exc_type: "Optional[Type[BaseException]]", - exc_val: Optional[BaseException], - exc_tb: Optional[types.TracebackType], - ) -> None: - self._obj.release() - - -class Semaphore(_TimeoutGarbageCollector): - """A lock that can be acquired a fixed number of times before blocking. - - A Semaphore manages a counter representing the number of `.release` calls - minus the number of `.acquire` calls, plus an initial value. The `.acquire` - method blocks if necessary until it can return without making the counter - negative. - - Semaphores limit access to a shared resource. To allow access for two - workers at a time: - - .. testsetup:: semaphore - - from collections import deque - - from tornado import gen - from tornado.ioloop import IOLoop - from tornado.concurrent import Future - - # Ensure reliable doctest output: resolve Futures one at a time. - futures_q = deque([Future() for _ in range(3)]) - - async def simulator(futures): - for f in futures: - # simulate the asynchronous passage of time - await gen.sleep(0) - await gen.sleep(0) - f.set_result(None) - - IOLoop.current().add_callback(simulator, list(futures_q)) - - def use_some_resource(): - return futures_q.popleft() - - .. testcode:: semaphore - - from tornado import gen - from tornado.ioloop import IOLoop - from tornado.locks import Semaphore - - sem = Semaphore(2) - - async def worker(worker_id): - await sem.acquire() - try: - print("Worker %d is working" % worker_id) - await use_some_resource() - finally: - print("Worker %d is done" % worker_id) - sem.release() - - async def runner(): - # Join all workers. - await gen.multi([worker(i) for i in range(3)]) - - IOLoop.current().run_sync(runner) - - .. testoutput:: semaphore - - Worker 0 is working - Worker 1 is working - Worker 0 is done - Worker 2 is working - Worker 1 is done - Worker 2 is done - - Workers 0 and 1 are allowed to run concurrently, but worker 2 waits until - the semaphore has been released once, by worker 0. - - The semaphore can be used as an async context manager:: - - async def worker(worker_id): - async with sem: - print("Worker %d is working" % worker_id) - await use_some_resource() - - # Now the semaphore has been released. - print("Worker %d is done" % worker_id) - - For compatibility with older versions of Python, `.acquire` is a - context manager, so ``worker`` could also be written as:: - - @gen.coroutine - def worker(worker_id): - with (yield sem.acquire()): - print("Worker %d is working" % worker_id) - yield use_some_resource() - - # Now the semaphore has been released. - print("Worker %d is done" % worker_id) - - .. versionchanged:: 4.3 - Added ``async with`` support in Python 3.5. - - """ - - def __init__(self, value: int = 1) -> None: - super(Semaphore, self).__init__() - if value < 0: - raise ValueError("semaphore initial value must be >= 0") - - self._value = value - - def __repr__(self) -> str: - res = super(Semaphore, self).__repr__() - extra = ( - "locked" if self._value == 0 else "unlocked,value:{0}".format(self._value) - ) - if self._waiters: - extra = "{0},waiters:{1}".format(extra, len(self._waiters)) - return "<{0} [{1}]>".format(res[1:-1], extra) - - def release(self) -> None: - """Increment the counter and wake one waiter.""" - self._value += 1 - while self._waiters: - waiter = self._waiters.popleft() - if not waiter.done(): - self._value -= 1 - - # If the waiter is a coroutine paused at - # - # with (yield semaphore.acquire()): - # - # then the context manager's __exit__ calls release() at the end - # of the "with" block. - waiter.set_result(_ReleasingContextManager(self)) - break - - def acquire( - self, timeout: Union[float, datetime.timedelta] = None - ) -> Awaitable[_ReleasingContextManager]: - """Decrement the counter. Returns an awaitable. - - Block if the counter is zero and wait for a `.release`. The awaitable - raises `.TimeoutError` after the deadline. - """ - waiter = Future() # type: Future[_ReleasingContextManager] - if self._value > 0: - self._value -= 1 - waiter.set_result(_ReleasingContextManager(self)) - else: - self._waiters.append(waiter) - if timeout: - - def on_timeout() -> None: - if not waiter.done(): - waiter.set_exception(gen.TimeoutError()) - self._garbage_collect() - - io_loop = ioloop.IOLoop.current() - timeout_handle = io_loop.add_timeout(timeout, on_timeout) - waiter.add_done_callback( - lambda _: io_loop.remove_timeout(timeout_handle) - ) - return waiter - - def __enter__(self) -> None: - raise RuntimeError("Use 'async with' instead of 'with' for Semaphore") - - def __exit__( - self, - typ: "Optional[Type[BaseException]]", - value: Optional[BaseException], - traceback: Optional[types.TracebackType], - ) -> None: - self.__enter__() - - async def __aenter__(self) -> None: - await self.acquire() - - async def __aexit__( - self, - typ: "Optional[Type[BaseException]]", - value: Optional[BaseException], - tb: Optional[types.TracebackType], - ) -> None: - self.release() - - -class BoundedSemaphore(Semaphore): - """A semaphore that prevents release() being called too many times. - - If `.release` would increment the semaphore's value past the initial - value, it raises `ValueError`. Semaphores are mostly used to guard - resources with limited capacity, so a semaphore released too many times - is a sign of a bug. - """ - - def __init__(self, value: int = 1) -> None: - super(BoundedSemaphore, self).__init__(value=value) - self._initial_value = value - - def release(self) -> None: - """Increment the counter and wake one waiter.""" - if self._value >= self._initial_value: - raise ValueError("Semaphore released too many times") - super(BoundedSemaphore, self).release() - - -class Lock(object): - """A lock for coroutines. - - A Lock begins unlocked, and `acquire` locks it immediately. While it is - locked, a coroutine that yields `acquire` waits until another coroutine - calls `release`. - - Releasing an unlocked lock raises `RuntimeError`. - - A Lock can be used as an async context manager with the ``async - with`` statement: - - >>> from tornado import locks - >>> lock = locks.Lock() - >>> - >>> async def f(): - ... async with lock: - ... # Do something holding the lock. - ... pass - ... - ... # Now the lock is released. - - For compatibility with older versions of Python, the `.acquire` - method asynchronously returns a regular context manager: - - >>> async def f2(): - ... with (yield lock.acquire()): - ... # Do something holding the lock. - ... pass - ... - ... # Now the lock is released. - - .. versionchanged:: 4.3 - Added ``async with`` support in Python 3.5. - - """ - - def __init__(self) -> None: - self._block = BoundedSemaphore(value=1) - - def __repr__(self) -> str: - return "<%s _block=%s>" % (self.__class__.__name__, self._block) - - def acquire( - self, timeout: Union[float, datetime.timedelta] = None - ) -> Awaitable[_ReleasingContextManager]: - """Attempt to lock. Returns an awaitable. - - Returns an awaitable, which raises `tornado.util.TimeoutError` after a - timeout. - """ - return self._block.acquire(timeout) - - def release(self) -> None: - """Unlock. - - The first coroutine in line waiting for `acquire` gets the lock. - - If not locked, raise a `RuntimeError`. - """ - try: - self._block.release() - except ValueError: - raise RuntimeError("release unlocked lock") - - def __enter__(self) -> None: - raise RuntimeError("Use `async with` instead of `with` for Lock") - - def __exit__( - self, - typ: "Optional[Type[BaseException]]", - value: Optional[BaseException], - tb: Optional[types.TracebackType], - ) -> None: - self.__enter__() - - async def __aenter__(self) -> None: - await self.acquire() - - async def __aexit__( - self, - typ: "Optional[Type[BaseException]]", - value: Optional[BaseException], - tb: Optional[types.TracebackType], - ) -> None: - self.release() +# Copyright 2015 The Tornado Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import collections +from concurrent.futures import CancelledError +import datetime +import types + +from tornado import gen, ioloop +from tornado.concurrent import Future, future_set_result_unless_cancelled + +from typing import Union, Optional, Type, Any, Awaitable +import typing + +if typing.TYPE_CHECKING: + from typing import Deque, Set # noqa: F401 + +__all__ = ["Condition", "Event", "Semaphore", "BoundedSemaphore", "Lock"] + + +class _TimeoutGarbageCollector(object): + """Base class for objects that periodically clean up timed-out waiters. + + Avoids memory leak in a common pattern like: + + while True: + yield condition.wait(short_timeout) + print('looping....') + """ + + def __init__(self) -> None: + self._waiters = collections.deque() # type: Deque[Future] + self._timeouts = 0 + + def _garbage_collect(self) -> None: + # Occasionally clear timed-out waiters. + self._timeouts += 1 + if self._timeouts > 100: + self._timeouts = 0 + self._waiters = collections.deque(w for w in self._waiters if not w.done()) + + +class Condition(_TimeoutGarbageCollector): + """A condition allows one or more coroutines to wait until notified. + + Like a standard `threading.Condition`, but does not need an underlying lock + that is acquired and released. + + With a `Condition`, coroutines can wait to be notified by other coroutines: + + .. testcode:: + + from tornado import gen + from tornado.ioloop import IOLoop + from tornado.locks import Condition + + condition = Condition() + + async def waiter(): + print("I'll wait right here") + await condition.wait() + print("I'm done waiting") + + async def notifier(): + print("About to notify") + condition.notify() + print("Done notifying") + + async def runner(): + # Wait for waiter() and notifier() in parallel + await gen.multi([waiter(), notifier()]) + + IOLoop.current().run_sync(runner) + + .. testoutput:: + + I'll wait right here + About to notify + Done notifying + I'm done waiting + + `wait` takes an optional ``timeout`` argument, which is either an absolute + timestamp:: + + io_loop = IOLoop.current() + + # Wait up to 1 second for a notification. + await condition.wait(timeout=io_loop.time() + 1) + + ...or a `datetime.timedelta` for a timeout relative to the current time:: + + # Wait up to 1 second. + await condition.wait(timeout=datetime.timedelta(seconds=1)) + + The method returns False if there's no notification before the deadline. + + .. versionchanged:: 5.0 + Previously, waiters could be notified synchronously from within + `notify`. Now, the notification will always be received on the + next iteration of the `.IOLoop`. + """ + + def __init__(self) -> None: + super(Condition, self).__init__() + self.io_loop = ioloop.IOLoop.current() + + def __repr__(self) -> str: + result = "<%s" % (self.__class__.__name__,) + if self._waiters: + result += " waiters[%s]" % len(self._waiters) + return result + ">" + + def wait(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[bool]: + """Wait for `.notify`. + + Returns a `.Future` that resolves ``True`` if the condition is notified, + or ``False`` after a timeout. + """ + waiter = Future() # type: Future[bool] + self._waiters.append(waiter) + if timeout: + + def on_timeout() -> None: + if not waiter.done(): + future_set_result_unless_cancelled(waiter, False) + self._garbage_collect() + + io_loop = ioloop.IOLoop.current() + timeout_handle = io_loop.add_timeout(timeout, on_timeout) + waiter.add_done_callback(lambda _: io_loop.remove_timeout(timeout_handle)) + return waiter + + def notify(self, n: int = 1) -> None: + """Wake ``n`` waiters.""" + waiters = [] # Waiters we plan to run right now. + while n and self._waiters: + waiter = self._waiters.popleft() + if not waiter.done(): # Might have timed out. + n -= 1 + waiters.append(waiter) + + for waiter in waiters: + future_set_result_unless_cancelled(waiter, True) + + def notify_all(self) -> None: + """Wake all waiters.""" + self.notify(len(self._waiters)) + + +class Event(object): + """An event blocks coroutines until its internal flag is set to True. + + Similar to `threading.Event`. + + A coroutine can wait for an event to be set. Once it is set, calls to + ``yield event.wait()`` will not block unless the event has been cleared: + + .. testcode:: + + from tornado import gen + from tornado.ioloop import IOLoop + from tornado.locks import Event + + event = Event() + + async def waiter(): + print("Waiting for event") + await event.wait() + print("Not waiting this time") + await event.wait() + print("Done") + + async def setter(): + print("About to set the event") + event.set() + + async def runner(): + await gen.multi([waiter(), setter()]) + + IOLoop.current().run_sync(runner) + + .. testoutput:: + + Waiting for event + About to set the event + Not waiting this time + Done + """ + + def __init__(self) -> None: + self._value = False + self._waiters = set() # type: Set[Future[None]] + + def __repr__(self) -> str: + return "<%s %s>" % ( + self.__class__.__name__, + "set" if self.is_set() else "clear", + ) + + def is_set(self) -> bool: + """Return ``True`` if the internal flag is true.""" + return self._value + + def set(self) -> None: + """Set the internal flag to ``True``. All waiters are awakened. + + Calling `.wait` once the flag is set will not block. + """ + if not self._value: + self._value = True + + for fut in self._waiters: + if not fut.done(): + fut.set_result(None) + + def clear(self) -> None: + """Reset the internal flag to ``False``. + + Calls to `.wait` will block until `.set` is called. + """ + self._value = False + + def wait(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[None]: + """Block until the internal flag is true. + + Returns an awaitable, which raises `tornado.util.TimeoutError` after a + timeout. + """ + fut = Future() # type: Future[None] + if self._value: + fut.set_result(None) + return fut + self._waiters.add(fut) + fut.add_done_callback(lambda fut: self._waiters.remove(fut)) + if timeout is None: + return fut + else: + timeout_fut = gen.with_timeout( + timeout, fut, quiet_exceptions=(CancelledError,) + ) + # This is a slightly clumsy workaround for the fact that + # gen.with_timeout doesn't cancel its futures. Cancelling + # fut will remove it from the waiters list. + timeout_fut.add_done_callback( + lambda tf: fut.cancel() if not fut.done() else None + ) + return timeout_fut + + +class _ReleasingContextManager(object): + """Releases a Lock or Semaphore at the end of a "with" statement. + + with (yield semaphore.acquire()): + pass + + # Now semaphore.release() has been called. + """ + + def __init__(self, obj: Any) -> None: + self._obj = obj + + def __enter__(self) -> None: + pass + + def __exit__( + self, + exc_type: "Optional[Type[BaseException]]", + exc_val: Optional[BaseException], + exc_tb: Optional[types.TracebackType], + ) -> None: + self._obj.release() + + +class Semaphore(_TimeoutGarbageCollector): + """A lock that can be acquired a fixed number of times before blocking. + + A Semaphore manages a counter representing the number of `.release` calls + minus the number of `.acquire` calls, plus an initial value. The `.acquire` + method blocks if necessary until it can return without making the counter + negative. + + Semaphores limit access to a shared resource. To allow access for two + workers at a time: + + .. testsetup:: semaphore + + from collections import deque + + from tornado import gen + from tornado.ioloop import IOLoop + from tornado.concurrent import Future + + # Ensure reliable doctest output: resolve Futures one at a time. + futures_q = deque([Future() for _ in range(3)]) + + async def simulator(futures): + for f in futures: + # simulate the asynchronous passage of time + await gen.sleep(0) + await gen.sleep(0) + f.set_result(None) + + IOLoop.current().add_callback(simulator, list(futures_q)) + + def use_some_resource(): + return futures_q.popleft() + + .. testcode:: semaphore + + from tornado import gen + from tornado.ioloop import IOLoop + from tornado.locks import Semaphore + + sem = Semaphore(2) + + async def worker(worker_id): + await sem.acquire() + try: + print("Worker %d is working" % worker_id) + await use_some_resource() + finally: + print("Worker %d is done" % worker_id) + sem.release() + + async def runner(): + # Join all workers. + await gen.multi([worker(i) for i in range(3)]) + + IOLoop.current().run_sync(runner) + + .. testoutput:: semaphore + + Worker 0 is working + Worker 1 is working + Worker 0 is done + Worker 2 is working + Worker 1 is done + Worker 2 is done + + Workers 0 and 1 are allowed to run concurrently, but worker 2 waits until + the semaphore has been released once, by worker 0. + + The semaphore can be used as an async context manager:: + + async def worker(worker_id): + async with sem: + print("Worker %d is working" % worker_id) + await use_some_resource() + + # Now the semaphore has been released. + print("Worker %d is done" % worker_id) + + For compatibility with older versions of Python, `.acquire` is a + context manager, so ``worker`` could also be written as:: + + @gen.coroutine + def worker(worker_id): + with (yield sem.acquire()): + print("Worker %d is working" % worker_id) + yield use_some_resource() + + # Now the semaphore has been released. + print("Worker %d is done" % worker_id) + + .. versionchanged:: 4.3 + Added ``async with`` support in Python 3.5. + + """ + + def __init__(self, value: int = 1) -> None: + super(Semaphore, self).__init__() + if value < 0: + raise ValueError("semaphore initial value must be >= 0") + + self._value = value + + def __repr__(self) -> str: + res = super(Semaphore, self).__repr__() + extra = ( + "locked" if self._value == 0 else "unlocked,value:{0}".format(self._value) + ) + if self._waiters: + extra = "{0},waiters:{1}".format(extra, len(self._waiters)) + return "<{0} [{1}]>".format(res[1:-1], extra) + + def release(self) -> None: + """Increment the counter and wake one waiter.""" + self._value += 1 + while self._waiters: + waiter = self._waiters.popleft() + if not waiter.done(): + self._value -= 1 + + # If the waiter is a coroutine paused at + # + # with (yield semaphore.acquire()): + # + # then the context manager's __exit__ calls release() at the end + # of the "with" block. + waiter.set_result(_ReleasingContextManager(self)) + break + + def acquire( + self, timeout: Union[float, datetime.timedelta] = None + ) -> Awaitable[_ReleasingContextManager]: + """Decrement the counter. Returns an awaitable. + + Block if the counter is zero and wait for a `.release`. The awaitable + raises `.TimeoutError` after the deadline. + """ + waiter = Future() # type: Future[_ReleasingContextManager] + if self._value > 0: + self._value -= 1 + waiter.set_result(_ReleasingContextManager(self)) + else: + self._waiters.append(waiter) + if timeout: + + def on_timeout() -> None: + if not waiter.done(): + waiter.set_exception(gen.TimeoutError()) + self._garbage_collect() + + io_loop = ioloop.IOLoop.current() + timeout_handle = io_loop.add_timeout(timeout, on_timeout) + waiter.add_done_callback( + lambda _: io_loop.remove_timeout(timeout_handle) + ) + return waiter + + def __enter__(self) -> None: + raise RuntimeError("Use 'async with' instead of 'with' for Semaphore") + + def __exit__( + self, + typ: "Optional[Type[BaseException]]", + value: Optional[BaseException], + traceback: Optional[types.TracebackType], + ) -> None: + self.__enter__() + + async def __aenter__(self) -> None: + await self.acquire() + + async def __aexit__( + self, + typ: "Optional[Type[BaseException]]", + value: Optional[BaseException], + tb: Optional[types.TracebackType], + ) -> None: + self.release() + + +class BoundedSemaphore(Semaphore): + """A semaphore that prevents release() being called too many times. + + If `.release` would increment the semaphore's value past the initial + value, it raises `ValueError`. Semaphores are mostly used to guard + resources with limited capacity, so a semaphore released too many times + is a sign of a bug. + """ + + def __init__(self, value: int = 1) -> None: + super(BoundedSemaphore, self).__init__(value=value) + self._initial_value = value + + def release(self) -> None: + """Increment the counter and wake one waiter.""" + if self._value >= self._initial_value: + raise ValueError("Semaphore released too many times") + super(BoundedSemaphore, self).release() + + +class Lock(object): + """A lock for coroutines. + + A Lock begins unlocked, and `acquire` locks it immediately. While it is + locked, a coroutine that yields `acquire` waits until another coroutine + calls `release`. + + Releasing an unlocked lock raises `RuntimeError`. + + A Lock can be used as an async context manager with the ``async + with`` statement: + + >>> from tornado import locks + >>> lock = locks.Lock() + >>> + >>> async def f(): + ... async with lock: + ... # Do something holding the lock. + ... pass + ... + ... # Now the lock is released. + + For compatibility with older versions of Python, the `.acquire` + method asynchronously returns a regular context manager: + + >>> async def f2(): + ... with (yield lock.acquire()): + ... # Do something holding the lock. + ... pass + ... + ... # Now the lock is released. + + .. versionchanged:: 4.3 + Added ``async with`` support in Python 3.5. + + """ + + def __init__(self) -> None: + self._block = BoundedSemaphore(value=1) + + def __repr__(self) -> str: + return "<%s _block=%s>" % (self.__class__.__name__, self._block) + + def acquire( + self, timeout: Union[float, datetime.timedelta] = None + ) -> Awaitable[_ReleasingContextManager]: + """Attempt to lock. Returns an awaitable. + + Returns an awaitable, which raises `tornado.util.TimeoutError` after a + timeout. + """ + return self._block.acquire(timeout) + + def release(self) -> None: + """Unlock. + + The first coroutine in line waiting for `acquire` gets the lock. + + If not locked, raise a `RuntimeError`. + """ + try: + self._block.release() + except ValueError: + raise RuntimeError("release unlocked lock") + + def __enter__(self) -> None: + raise RuntimeError("Use `async with` instead of `with` for Lock") + + def __exit__( + self, + typ: "Optional[Type[BaseException]]", + value: Optional[BaseException], + tb: Optional[types.TracebackType], + ) -> None: + self.__enter__() + + async def __aenter__(self) -> None: + await self.acquire() + + async def __aexit__( + self, + typ: "Optional[Type[BaseException]]", + value: Optional[BaseException], + tb: Optional[types.TracebackType], + ) -> None: + self.release() diff --git a/server/www/packages/packages-linux/x64/tornado/log.py b/server/www/packages/packages-linux/x64/tornado/log.py index 435cd71..31c2ab9 100644 --- a/server/www/packages/packages-linux/x64/tornado/log.py +++ b/server/www/packages/packages-linux/x64/tornado/log.py @@ -1,336 +1,336 @@ -# -# Copyright 2012 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -"""Logging support for Tornado. - -Tornado uses three logger streams: - -* ``tornado.access``: Per-request logging for Tornado's HTTP servers (and - potentially other servers in the future) -* ``tornado.application``: Logging of errors from application code (i.e. - uncaught exceptions from callbacks) -* ``tornado.general``: General-purpose logging, including any errors - or warnings from Tornado itself. - -These streams may be configured independently using the standard library's -`logging` module. For example, you may wish to send ``tornado.access`` logs -to a separate file for analysis. -""" -import logging -import logging.handlers -import sys - -from tornado.escape import _unicode -from tornado.util import unicode_type, basestring_type - -try: - import colorama # type: ignore -except ImportError: - colorama = None - -try: - import curses -except ImportError: - curses = None # type: ignore - -from typing import Dict, Any, cast - -# Logger objects for internal tornado use -access_log = logging.getLogger("tornado.access") -app_log = logging.getLogger("tornado.application") -gen_log = logging.getLogger("tornado.general") - - -def _stderr_supports_color() -> bool: - try: - if hasattr(sys.stderr, "isatty") and sys.stderr.isatty(): - if curses: - curses.setupterm() - if curses.tigetnum("colors") > 0: - return True - elif colorama: - if sys.stderr is getattr( - colorama.initialise, "wrapped_stderr", object() - ): - return True - except Exception: - # Very broad exception handling because it's always better to - # fall back to non-colored logs than to break at startup. - pass - return False - - -def _safe_unicode(s: Any) -> str: - try: - return _unicode(s) - except UnicodeDecodeError: - return repr(s) - - -class LogFormatter(logging.Formatter): - """Log formatter used in Tornado. - - Key features of this formatter are: - - * Color support when logging to a terminal that supports it. - * Timestamps on every log line. - * Robust against str/bytes encoding problems. - - This formatter is enabled automatically by - `tornado.options.parse_command_line` or `tornado.options.parse_config_file` - (unless ``--logging=none`` is used). - - Color support on Windows versions that do not support ANSI color codes is - enabled by use of the colorama__ library. Applications that wish to use - this must first initialize colorama with a call to ``colorama.init``. - See the colorama documentation for details. - - __ https://pypi.python.org/pypi/colorama - - .. versionchanged:: 4.5 - Added support for ``colorama``. Changed the constructor - signature to be compatible with `logging.config.dictConfig`. - """ - - DEFAULT_FORMAT = "%(color)s[%(levelname)1.1s %(asctime)s %(module)s:%(lineno)d]%(end_color)s %(message)s" # noqa: E501 - DEFAULT_DATE_FORMAT = "%y%m%d %H:%M:%S" - DEFAULT_COLORS = { - logging.DEBUG: 4, # Blue - logging.INFO: 2, # Green - logging.WARNING: 3, # Yellow - logging.ERROR: 1, # Red - } - - def __init__( - self, - fmt: str = DEFAULT_FORMAT, - datefmt: str = DEFAULT_DATE_FORMAT, - style: str = "%", - color: bool = True, - colors: Dict[int, int] = DEFAULT_COLORS, - ) -> None: - r""" - :arg bool color: Enables color support. - :arg str fmt: Log message format. - It will be applied to the attributes dict of log records. The - text between ``%(color)s`` and ``%(end_color)s`` will be colored - depending on the level if color support is on. - :arg dict colors: color mappings from logging level to terminal color - code - :arg str datefmt: Datetime format. - Used for formatting ``(asctime)`` placeholder in ``prefix_fmt``. - - .. versionchanged:: 3.2 - - Added ``fmt`` and ``datefmt`` arguments. - """ - logging.Formatter.__init__(self, datefmt=datefmt) - self._fmt = fmt - - self._colors = {} # type: Dict[int, str] - if color and _stderr_supports_color(): - if curses is not None: - fg_color = curses.tigetstr("setaf") or curses.tigetstr("setf") or b"" - - for levelno, code in colors.items(): - # Convert the terminal control characters from - # bytes to unicode strings for easier use with the - # logging module. - self._colors[levelno] = unicode_type( - curses.tparm(fg_color, code), "ascii" - ) - self._normal = unicode_type(curses.tigetstr("sgr0"), "ascii") - else: - # If curses is not present (currently we'll only get here for - # colorama on windows), assume hard-coded ANSI color codes. - for levelno, code in colors.items(): - self._colors[levelno] = "\033[2;3%dm" % code - self._normal = "\033[0m" - else: - self._normal = "" - - def format(self, record: Any) -> str: - try: - message = record.getMessage() - assert isinstance(message, basestring_type) # guaranteed by logging - # Encoding notes: The logging module prefers to work with character - # strings, but only enforces that log messages are instances of - # basestring. In python 2, non-ascii bytestrings will make - # their way through the logging framework until they blow up with - # an unhelpful decoding error (with this formatter it happens - # when we attach the prefix, but there are other opportunities for - # exceptions further along in the framework). - # - # If a byte string makes it this far, convert it to unicode to - # ensure it will make it out to the logs. Use repr() as a fallback - # to ensure that all byte strings can be converted successfully, - # but don't do it by default so we don't add extra quotes to ascii - # bytestrings. This is a bit of a hacky place to do this, but - # it's worth it since the encoding errors that would otherwise - # result are so useless (and tornado is fond of using utf8-encoded - # byte strings wherever possible). - record.message = _safe_unicode(message) - except Exception as e: - record.message = "Bad message (%r): %r" % (e, record.__dict__) - - record.asctime = self.formatTime(record, cast(str, self.datefmt)) - - if record.levelno in self._colors: - record.color = self._colors[record.levelno] - record.end_color = self._normal - else: - record.color = record.end_color = "" - - formatted = self._fmt % record.__dict__ - - if record.exc_info: - if not record.exc_text: - record.exc_text = self.formatException(record.exc_info) - if record.exc_text: - # exc_text contains multiple lines. We need to _safe_unicode - # each line separately so that non-utf8 bytes don't cause - # all the newlines to turn into '\n'. - lines = [formatted.rstrip()] - lines.extend(_safe_unicode(ln) for ln in record.exc_text.split("\n")) - formatted = "\n".join(lines) - return formatted.replace("\n", "\n ") - - -def enable_pretty_logging(options: Any = None, logger: logging.Logger = None) -> None: - """Turns on formatted logging output as configured. - - This is called automatically by `tornado.options.parse_command_line` - and `tornado.options.parse_config_file`. - """ - if options is None: - import tornado.options - - options = tornado.options.options - if options.logging is None or options.logging.lower() == "none": - return - if logger is None: - logger = logging.getLogger() - logger.setLevel(getattr(logging, options.logging.upper())) - if options.log_file_prefix: - rotate_mode = options.log_rotate_mode - if rotate_mode == "size": - channel = logging.handlers.RotatingFileHandler( - filename=options.log_file_prefix, - maxBytes=options.log_file_max_size, - backupCount=options.log_file_num_backups, - encoding="utf-8", - ) # type: logging.Handler - elif rotate_mode == "time": - channel = logging.handlers.TimedRotatingFileHandler( - filename=options.log_file_prefix, - when=options.log_rotate_when, - interval=options.log_rotate_interval, - backupCount=options.log_file_num_backups, - encoding="utf-8", - ) - else: - error_message = ( - "The value of log_rotate_mode option should be " - + '"size" or "time", not "%s".' % rotate_mode - ) - raise ValueError(error_message) - channel.setFormatter(LogFormatter(color=False)) - logger.addHandler(channel) - - if options.log_to_stderr or (options.log_to_stderr is None and not logger.handlers): - # Set up color if we are in a tty and curses is installed - channel = logging.StreamHandler() - channel.setFormatter(LogFormatter()) - logger.addHandler(channel) - - -def define_logging_options(options: Any = None) -> None: - """Add logging-related flags to ``options``. - - These options are present automatically on the default options instance; - this method is only necessary if you have created your own `.OptionParser`. - - .. versionadded:: 4.2 - This function existed in prior versions but was broken and undocumented until 4.2. - """ - if options is None: - # late import to prevent cycle - import tornado.options - - options = tornado.options.options - options.define( - "logging", - default="info", - help=( - "Set the Python log level. If 'none', tornado won't touch the " - "logging configuration." - ), - metavar="debug|info|warning|error|none", - ) - options.define( - "log_to_stderr", - type=bool, - default=None, - help=( - "Send log output to stderr (colorized if possible). " - "By default use stderr if --log_file_prefix is not set and " - "no other logging is configured." - ), - ) - options.define( - "log_file_prefix", - type=str, - default=None, - metavar="PATH", - help=( - "Path prefix for log files. " - "Note that if you are running multiple tornado processes, " - "log_file_prefix must be different for each of them (e.g. " - "include the port number)" - ), - ) - options.define( - "log_file_max_size", - type=int, - default=100 * 1000 * 1000, - help="max size of log files before rollover", - ) - options.define( - "log_file_num_backups", type=int, default=10, help="number of log files to keep" - ) - - options.define( - "log_rotate_when", - type=str, - default="midnight", - help=( - "specify the type of TimedRotatingFileHandler interval " - "other options:('S', 'M', 'H', 'D', 'W0'-'W6')" - ), - ) - options.define( - "log_rotate_interval", - type=int, - default=1, - help="The interval value of timed rotating", - ) - - options.define( - "log_rotate_mode", - type=str, - default="size", - help="The mode of rotating files(time or size)", - ) - - options.add_parse_callback(lambda: enable_pretty_logging(options)) +# +# Copyright 2012 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +"""Logging support for Tornado. + +Tornado uses three logger streams: + +* ``tornado.access``: Per-request logging for Tornado's HTTP servers (and + potentially other servers in the future) +* ``tornado.application``: Logging of errors from application code (i.e. + uncaught exceptions from callbacks) +* ``tornado.general``: General-purpose logging, including any errors + or warnings from Tornado itself. + +These streams may be configured independently using the standard library's +`logging` module. For example, you may wish to send ``tornado.access`` logs +to a separate file for analysis. +""" +import logging +import logging.handlers +import sys + +from tornado.escape import _unicode +from tornado.util import unicode_type, basestring_type + +try: + import colorama # type: ignore +except ImportError: + colorama = None + +try: + import curses +except ImportError: + curses = None # type: ignore + +from typing import Dict, Any, cast + +# Logger objects for internal tornado use +access_log = logging.getLogger("tornado.access") +app_log = logging.getLogger("tornado.application") +gen_log = logging.getLogger("tornado.general") + + +def _stderr_supports_color() -> bool: + try: + if hasattr(sys.stderr, "isatty") and sys.stderr.isatty(): + if curses: + curses.setupterm() + if curses.tigetnum("colors") > 0: + return True + elif colorama: + if sys.stderr is getattr( + colorama.initialise, "wrapped_stderr", object() + ): + return True + except Exception: + # Very broad exception handling because it's always better to + # fall back to non-colored logs than to break at startup. + pass + return False + + +def _safe_unicode(s: Any) -> str: + try: + return _unicode(s) + except UnicodeDecodeError: + return repr(s) + + +class LogFormatter(logging.Formatter): + """Log formatter used in Tornado. + + Key features of this formatter are: + + * Color support when logging to a terminal that supports it. + * Timestamps on every log line. + * Robust against str/bytes encoding problems. + + This formatter is enabled automatically by + `tornado.options.parse_command_line` or `tornado.options.parse_config_file` + (unless ``--logging=none`` is used). + + Color support on Windows versions that do not support ANSI color codes is + enabled by use of the colorama__ library. Applications that wish to use + this must first initialize colorama with a call to ``colorama.init``. + See the colorama documentation for details. + + __ https://pypi.python.org/pypi/colorama + + .. versionchanged:: 4.5 + Added support for ``colorama``. Changed the constructor + signature to be compatible with `logging.config.dictConfig`. + """ + + DEFAULT_FORMAT = "%(color)s[%(levelname)1.1s %(asctime)s %(module)s:%(lineno)d]%(end_color)s %(message)s" # noqa: E501 + DEFAULT_DATE_FORMAT = "%y%m%d %H:%M:%S" + DEFAULT_COLORS = { + logging.DEBUG: 4, # Blue + logging.INFO: 2, # Green + logging.WARNING: 3, # Yellow + logging.ERROR: 1, # Red + } + + def __init__( + self, + fmt: str = DEFAULT_FORMAT, + datefmt: str = DEFAULT_DATE_FORMAT, + style: str = "%", + color: bool = True, + colors: Dict[int, int] = DEFAULT_COLORS, + ) -> None: + r""" + :arg bool color: Enables color support. + :arg str fmt: Log message format. + It will be applied to the attributes dict of log records. The + text between ``%(color)s`` and ``%(end_color)s`` will be colored + depending on the level if color support is on. + :arg dict colors: color mappings from logging level to terminal color + code + :arg str datefmt: Datetime format. + Used for formatting ``(asctime)`` placeholder in ``prefix_fmt``. + + .. versionchanged:: 3.2 + + Added ``fmt`` and ``datefmt`` arguments. + """ + logging.Formatter.__init__(self, datefmt=datefmt) + self._fmt = fmt + + self._colors = {} # type: Dict[int, str] + if color and _stderr_supports_color(): + if curses is not None: + fg_color = curses.tigetstr("setaf") or curses.tigetstr("setf") or b"" + + for levelno, code in colors.items(): + # Convert the terminal control characters from + # bytes to unicode strings for easier use with the + # logging module. + self._colors[levelno] = unicode_type( + curses.tparm(fg_color, code), "ascii" + ) + self._normal = unicode_type(curses.tigetstr("sgr0"), "ascii") + else: + # If curses is not present (currently we'll only get here for + # colorama on windows), assume hard-coded ANSI color codes. + for levelno, code in colors.items(): + self._colors[levelno] = "\033[2;3%dm" % code + self._normal = "\033[0m" + else: + self._normal = "" + + def format(self, record: Any) -> str: + try: + message = record.getMessage() + assert isinstance(message, basestring_type) # guaranteed by logging + # Encoding notes: The logging module prefers to work with character + # strings, but only enforces that log messages are instances of + # basestring. In python 2, non-ascii bytestrings will make + # their way through the logging framework until they blow up with + # an unhelpful decoding error (with this formatter it happens + # when we attach the prefix, but there are other opportunities for + # exceptions further along in the framework). + # + # If a byte string makes it this far, convert it to unicode to + # ensure it will make it out to the logs. Use repr() as a fallback + # to ensure that all byte strings can be converted successfully, + # but don't do it by default so we don't add extra quotes to ascii + # bytestrings. This is a bit of a hacky place to do this, but + # it's worth it since the encoding errors that would otherwise + # result are so useless (and tornado is fond of using utf8-encoded + # byte strings wherever possible). + record.message = _safe_unicode(message) + except Exception as e: + record.message = "Bad message (%r): %r" % (e, record.__dict__) + + record.asctime = self.formatTime(record, cast(str, self.datefmt)) + + if record.levelno in self._colors: + record.color = self._colors[record.levelno] + record.end_color = self._normal + else: + record.color = record.end_color = "" + + formatted = self._fmt % record.__dict__ + + if record.exc_info: + if not record.exc_text: + record.exc_text = self.formatException(record.exc_info) + if record.exc_text: + # exc_text contains multiple lines. We need to _safe_unicode + # each line separately so that non-utf8 bytes don't cause + # all the newlines to turn into '\n'. + lines = [formatted.rstrip()] + lines.extend(_safe_unicode(ln) for ln in record.exc_text.split("\n")) + formatted = "\n".join(lines) + return formatted.replace("\n", "\n ") + + +def enable_pretty_logging(options: Any = None, logger: logging.Logger = None) -> None: + """Turns on formatted logging output as configured. + + This is called automatically by `tornado.options.parse_command_line` + and `tornado.options.parse_config_file`. + """ + if options is None: + import tornado.options + + options = tornado.options.options + if options.logging is None or options.logging.lower() == "none": + return + if logger is None: + logger = logging.getLogger() + logger.setLevel(getattr(logging, options.logging.upper())) + if options.log_file_prefix: + rotate_mode = options.log_rotate_mode + if rotate_mode == "size": + channel = logging.handlers.RotatingFileHandler( + filename=options.log_file_prefix, + maxBytes=options.log_file_max_size, + backupCount=options.log_file_num_backups, + encoding="utf-8", + ) # type: logging.Handler + elif rotate_mode == "time": + channel = logging.handlers.TimedRotatingFileHandler( + filename=options.log_file_prefix, + when=options.log_rotate_when, + interval=options.log_rotate_interval, + backupCount=options.log_file_num_backups, + encoding="utf-8", + ) + else: + error_message = ( + "The value of log_rotate_mode option should be " + + '"size" or "time", not "%s".' % rotate_mode + ) + raise ValueError(error_message) + channel.setFormatter(LogFormatter(color=False)) + logger.addHandler(channel) + + if options.log_to_stderr or (options.log_to_stderr is None and not logger.handlers): + # Set up color if we are in a tty and curses is installed + channel = logging.StreamHandler() + channel.setFormatter(LogFormatter()) + logger.addHandler(channel) + + +def define_logging_options(options: Any = None) -> None: + """Add logging-related flags to ``options``. + + These options are present automatically on the default options instance; + this method is only necessary if you have created your own `.OptionParser`. + + .. versionadded:: 4.2 + This function existed in prior versions but was broken and undocumented until 4.2. + """ + if options is None: + # late import to prevent cycle + import tornado.options + + options = tornado.options.options + options.define( + "logging", + default="info", + help=( + "Set the Python log level. If 'none', tornado won't touch the " + "logging configuration." + ), + metavar="debug|info|warning|error|none", + ) + options.define( + "log_to_stderr", + type=bool, + default=None, + help=( + "Send log output to stderr (colorized if possible). " + "By default use stderr if --log_file_prefix is not set and " + "no other logging is configured." + ), + ) + options.define( + "log_file_prefix", + type=str, + default=None, + metavar="PATH", + help=( + "Path prefix for log files. " + "Note that if you are running multiple tornado processes, " + "log_file_prefix must be different for each of them (e.g. " + "include the port number)" + ), + ) + options.define( + "log_file_max_size", + type=int, + default=100 * 1000 * 1000, + help="max size of log files before rollover", + ) + options.define( + "log_file_num_backups", type=int, default=10, help="number of log files to keep" + ) + + options.define( + "log_rotate_when", + type=str, + default="midnight", + help=( + "specify the type of TimedRotatingFileHandler interval " + "other options:('S', 'M', 'H', 'D', 'W0'-'W6')" + ), + ) + options.define( + "log_rotate_interval", + type=int, + default=1, + help="The interval value of timed rotating", + ) + + options.define( + "log_rotate_mode", + type=str, + default="size", + help="The mode of rotating files(time or size)", + ) + + options.add_parse_callback(lambda: enable_pretty_logging(options)) diff --git a/server/www/packages/packages-linux/x64/tornado/netutil.py b/server/www/packages/packages-linux/x64/tornado/netutil.py index 9338ced..5bc8478 100644 --- a/server/www/packages/packages-linux/x64/tornado/netutil.py +++ b/server/www/packages/packages-linux/x64/tornado/netutil.py @@ -1,614 +1,614 @@ -# -# Copyright 2011 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Miscellaneous network utility code.""" - -import concurrent.futures -import errno -import os -import sys -import socket -import ssl -import stat - -from tornado.concurrent import dummy_executor, run_on_executor -from tornado.ioloop import IOLoop -from tornado.platform.auto import set_close_exec -from tornado.util import Configurable, errno_from_exception - -import typing -from typing import List, Callable, Any, Type, Dict, Union, Tuple, Awaitable - -if typing.TYPE_CHECKING: - from asyncio import Future # noqa: F401 - -# Note that the naming of ssl.Purpose is confusing; the purpose -# of a context is to authentiate the opposite side of the connection. -_client_ssl_defaults = ssl.create_default_context(ssl.Purpose.SERVER_AUTH) -_server_ssl_defaults = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) -if hasattr(ssl, "OP_NO_COMPRESSION"): - # See netutil.ssl_options_to_context - _client_ssl_defaults.options |= ssl.OP_NO_COMPRESSION - _server_ssl_defaults.options |= ssl.OP_NO_COMPRESSION - -# ThreadedResolver runs getaddrinfo on a thread. If the hostname is unicode, -# getaddrinfo attempts to import encodings.idna. If this is done at -# module-import time, the import lock is already held by the main thread, -# leading to deadlock. Avoid it by caching the idna encoder on the main -# thread now. -u"foo".encode("idna") - -# For undiagnosed reasons, 'latin1' codec may also need to be preloaded. -u"foo".encode("latin1") - -# These errnos indicate that a non-blocking operation must be retried -# at a later time. On most platforms they're the same value, but on -# some they differ. -_ERRNO_WOULDBLOCK = (errno.EWOULDBLOCK, errno.EAGAIN) - -if hasattr(errno, "WSAEWOULDBLOCK"): - _ERRNO_WOULDBLOCK += (errno.WSAEWOULDBLOCK,) # type: ignore - -# Default backlog used when calling sock.listen() -_DEFAULT_BACKLOG = 128 - - -def bind_sockets( - port: int, - address: str = None, - family: socket.AddressFamily = socket.AF_UNSPEC, - backlog: int = _DEFAULT_BACKLOG, - flags: int = None, - reuse_port: bool = False, -) -> List[socket.socket]: - """Creates listening sockets bound to the given port and address. - - Returns a list of socket objects (multiple sockets are returned if - the given address maps to multiple IP addresses, which is most common - for mixed IPv4 and IPv6 use). - - Address may be either an IP address or hostname. If it's a hostname, - the server will listen on all IP addresses associated with the - name. Address may be an empty string or None to listen on all - available interfaces. Family may be set to either `socket.AF_INET` - or `socket.AF_INET6` to restrict to IPv4 or IPv6 addresses, otherwise - both will be used if available. - - The ``backlog`` argument has the same meaning as for - `socket.listen() `. - - ``flags`` is a bitmask of AI_* flags to `~socket.getaddrinfo`, like - ``socket.AI_PASSIVE | socket.AI_NUMERICHOST``. - - ``reuse_port`` option sets ``SO_REUSEPORT`` option for every socket - in the list. If your platform doesn't support this option ValueError will - be raised. - """ - if reuse_port and not hasattr(socket, "SO_REUSEPORT"): - raise ValueError("the platform doesn't support SO_REUSEPORT") - - sockets = [] - if address == "": - address = None - if not socket.has_ipv6 and family == socket.AF_UNSPEC: - # Python can be compiled with --disable-ipv6, which causes - # operations on AF_INET6 sockets to fail, but does not - # automatically exclude those results from getaddrinfo - # results. - # http://bugs.python.org/issue16208 - family = socket.AF_INET - if flags is None: - flags = socket.AI_PASSIVE - bound_port = None - unique_addresses = set() # type: set - for res in sorted( - socket.getaddrinfo(address, port, family, socket.SOCK_STREAM, 0, flags), - key=lambda x: x[0], - ): - if res in unique_addresses: - continue - - unique_addresses.add(res) - - af, socktype, proto, canonname, sockaddr = res - if ( - sys.platform == "darwin" - and address == "localhost" - and af == socket.AF_INET6 - and sockaddr[3] != 0 - ): - # Mac OS X includes a link-local address fe80::1%lo0 in the - # getaddrinfo results for 'localhost'. However, the firewall - # doesn't understand that this is a local address and will - # prompt for access (often repeatedly, due to an apparent - # bug in its ability to remember granting access to an - # application). Skip these addresses. - continue - try: - sock = socket.socket(af, socktype, proto) - except socket.error as e: - if errno_from_exception(e) == errno.EAFNOSUPPORT: - continue - raise - set_close_exec(sock.fileno()) - if os.name != "nt": - try: - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - except socket.error as e: - if errno_from_exception(e) != errno.ENOPROTOOPT: - # Hurd doesn't support SO_REUSEADDR. - raise - if reuse_port: - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) - if af == socket.AF_INET6: - # On linux, ipv6 sockets accept ipv4 too by default, - # but this makes it impossible to bind to both - # 0.0.0.0 in ipv4 and :: in ipv6. On other systems, - # separate sockets *must* be used to listen for both ipv4 - # and ipv6. For consistency, always disable ipv4 on our - # ipv6 sockets and use a separate ipv4 socket when needed. - # - # Python 2.x on windows doesn't have IPPROTO_IPV6. - if hasattr(socket, "IPPROTO_IPV6"): - sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1) - - # automatic port allocation with port=None - # should bind on the same port on IPv4 and IPv6 - host, requested_port = sockaddr[:2] - if requested_port == 0 and bound_port is not None: - sockaddr = tuple([host, bound_port] + list(sockaddr[2:])) - - sock.setblocking(False) - sock.bind(sockaddr) - bound_port = sock.getsockname()[1] - sock.listen(backlog) - sockets.append(sock) - return sockets - - -if hasattr(socket, "AF_UNIX"): - - def bind_unix_socket( - file: str, mode: int = 0o600, backlog: int = _DEFAULT_BACKLOG - ) -> socket.socket: - """Creates a listening unix socket. - - If a socket with the given name already exists, it will be deleted. - If any other file with that name exists, an exception will be - raised. - - Returns a socket object (not a list of socket objects like - `bind_sockets`) - """ - sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - set_close_exec(sock.fileno()) - try: - sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - except socket.error as e: - if errno_from_exception(e) != errno.ENOPROTOOPT: - # Hurd doesn't support SO_REUSEADDR - raise - sock.setblocking(False) - try: - st = os.stat(file) - except OSError as err: - if errno_from_exception(err) != errno.ENOENT: - raise - else: - if stat.S_ISSOCK(st.st_mode): - os.remove(file) - else: - raise ValueError("File %s exists and is not a socket", file) - sock.bind(file) - os.chmod(file, mode) - sock.listen(backlog) - return sock - - -def add_accept_handler( - sock: socket.socket, callback: Callable[[socket.socket, Any], None] -) -> Callable[[], None]: - """Adds an `.IOLoop` event handler to accept new connections on ``sock``. - - When a connection is accepted, ``callback(connection, address)`` will - be run (``connection`` is a socket object, and ``address`` is the - address of the other end of the connection). Note that this signature - is different from the ``callback(fd, events)`` signature used for - `.IOLoop` handlers. - - A callable is returned which, when called, will remove the `.IOLoop` - event handler and stop processing further incoming connections. - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been removed. - - .. versionchanged:: 5.0 - A callable is returned (``None`` was returned before). - """ - io_loop = IOLoop.current() - removed = [False] - - def accept_handler(fd: socket.socket, events: int) -> None: - # More connections may come in while we're handling callbacks; - # to prevent starvation of other tasks we must limit the number - # of connections we accept at a time. Ideally we would accept - # up to the number of connections that were waiting when we - # entered this method, but this information is not available - # (and rearranging this method to call accept() as many times - # as possible before running any callbacks would have adverse - # effects on load balancing in multiprocess configurations). - # Instead, we use the (default) listen backlog as a rough - # heuristic for the number of connections we can reasonably - # accept at once. - for i in range(_DEFAULT_BACKLOG): - if removed[0]: - # The socket was probably closed - return - try: - connection, address = sock.accept() - except socket.error as e: - # _ERRNO_WOULDBLOCK indicate we have accepted every - # connection that is available. - if errno_from_exception(e) in _ERRNO_WOULDBLOCK: - return - # ECONNABORTED indicates that there was a connection - # but it was closed while still in the accept queue. - # (observed on FreeBSD). - if errno_from_exception(e) == errno.ECONNABORTED: - continue - raise - set_close_exec(connection.fileno()) - callback(connection, address) - - def remove_handler() -> None: - io_loop.remove_handler(sock) - removed[0] = True - - io_loop.add_handler(sock, accept_handler, IOLoop.READ) - return remove_handler - - -def is_valid_ip(ip: str) -> bool: - """Returns ``True`` if the given string is a well-formed IP address. - - Supports IPv4 and IPv6. - """ - if not ip or "\x00" in ip: - # getaddrinfo resolves empty strings to localhost, and truncates - # on zero bytes. - return False - try: - res = socket.getaddrinfo( - ip, 0, socket.AF_UNSPEC, socket.SOCK_STREAM, 0, socket.AI_NUMERICHOST - ) - return bool(res) - except socket.gaierror as e: - if e.args[0] == socket.EAI_NONAME: - return False - raise - return True - - -class Resolver(Configurable): - """Configurable asynchronous DNS resolver interface. - - By default, a blocking implementation is used (which simply calls - `socket.getaddrinfo`). An alternative implementation can be - chosen with the `Resolver.configure <.Configurable.configure>` - class method:: - - Resolver.configure('tornado.netutil.ThreadedResolver') - - The implementations of this interface included with Tornado are - - * `tornado.netutil.DefaultExecutorResolver` - * `tornado.netutil.BlockingResolver` (deprecated) - * `tornado.netutil.ThreadedResolver` (deprecated) - * `tornado.netutil.OverrideResolver` - * `tornado.platform.twisted.TwistedResolver` - * `tornado.platform.caresresolver.CaresResolver` - - .. versionchanged:: 5.0 - The default implementation has changed from `BlockingResolver` to - `DefaultExecutorResolver`. - """ - - @classmethod - def configurable_base(cls) -> Type["Resolver"]: - return Resolver - - @classmethod - def configurable_default(cls) -> Type["Resolver"]: - return DefaultExecutorResolver - - def resolve( - self, host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC - ) -> Awaitable[List[Tuple[int, Any]]]: - """Resolves an address. - - The ``host`` argument is a string which may be a hostname or a - literal IP address. - - Returns a `.Future` whose result is a list of (family, - address) pairs, where address is a tuple suitable to pass to - `socket.connect ` (i.e. a ``(host, - port)`` pair for IPv4; additional fields may be present for - IPv6). If a ``callback`` is passed, it will be run with the - result as an argument when it is complete. - - :raises IOError: if the address cannot be resolved. - - .. versionchanged:: 4.4 - Standardized all implementations to raise `IOError`. - - .. versionchanged:: 6.0 The ``callback`` argument was removed. - Use the returned awaitable object instead. - - """ - raise NotImplementedError() - - def close(self) -> None: - """Closes the `Resolver`, freeing any resources used. - - .. versionadded:: 3.1 - - """ - pass - - -def _resolve_addr( - host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC -) -> List[Tuple[int, Any]]: - # On Solaris, getaddrinfo fails if the given port is not found - # in /etc/services and no socket type is given, so we must pass - # one here. The socket type used here doesn't seem to actually - # matter (we discard the one we get back in the results), - # so the addresses we return should still be usable with SOCK_DGRAM. - addrinfo = socket.getaddrinfo(host, port, family, socket.SOCK_STREAM) - results = [] - for fam, socktype, proto, canonname, address in addrinfo: - results.append((fam, address)) - return results - - -class DefaultExecutorResolver(Resolver): - """Resolver implementation using `.IOLoop.run_in_executor`. - - .. versionadded:: 5.0 - """ - - async def resolve( - self, host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC - ) -> List[Tuple[int, Any]]: - result = await IOLoop.current().run_in_executor( - None, _resolve_addr, host, port, family - ) - return result - - -class ExecutorResolver(Resolver): - """Resolver implementation using a `concurrent.futures.Executor`. - - Use this instead of `ThreadedResolver` when you require additional - control over the executor being used. - - The executor will be shut down when the resolver is closed unless - ``close_resolver=False``; use this if you want to reuse the same - executor elsewhere. - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been removed. - - .. deprecated:: 5.0 - The default `Resolver` now uses `.IOLoop.run_in_executor`; use that instead - of this class. - """ - - def initialize( - self, executor: concurrent.futures.Executor = None, close_executor: bool = True - ) -> None: - self.io_loop = IOLoop.current() - if executor is not None: - self.executor = executor - self.close_executor = close_executor - else: - self.executor = dummy_executor - self.close_executor = False - - def close(self) -> None: - if self.close_executor: - self.executor.shutdown() - self.executor = None # type: ignore - - @run_on_executor - def resolve( - self, host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC - ) -> List[Tuple[int, Any]]: - return _resolve_addr(host, port, family) - - -class BlockingResolver(ExecutorResolver): - """Default `Resolver` implementation, using `socket.getaddrinfo`. - - The `.IOLoop` will be blocked during the resolution, although the - callback will not be run until the next `.IOLoop` iteration. - - .. deprecated:: 5.0 - The default `Resolver` now uses `.IOLoop.run_in_executor`; use that instead - of this class. - """ - - def initialize(self) -> None: # type: ignore - super(BlockingResolver, self).initialize() - - -class ThreadedResolver(ExecutorResolver): - """Multithreaded non-blocking `Resolver` implementation. - - Requires the `concurrent.futures` package to be installed - (available in the standard library since Python 3.2, - installable with ``pip install futures`` in older versions). - - The thread pool size can be configured with:: - - Resolver.configure('tornado.netutil.ThreadedResolver', - num_threads=10) - - .. versionchanged:: 3.1 - All ``ThreadedResolvers`` share a single thread pool, whose - size is set by the first one to be created. - - .. deprecated:: 5.0 - The default `Resolver` now uses `.IOLoop.run_in_executor`; use that instead - of this class. - """ - - _threadpool = None # type: ignore - _threadpool_pid = None # type: int - - def initialize(self, num_threads: int = 10) -> None: # type: ignore - threadpool = ThreadedResolver._create_threadpool(num_threads) - super(ThreadedResolver, self).initialize( - executor=threadpool, close_executor=False - ) - - @classmethod - def _create_threadpool( - cls, num_threads: int - ) -> concurrent.futures.ThreadPoolExecutor: - pid = os.getpid() - if cls._threadpool_pid != pid: - # Threads cannot survive after a fork, so if our pid isn't what it - # was when we created the pool then delete it. - cls._threadpool = None - if cls._threadpool is None: - cls._threadpool = concurrent.futures.ThreadPoolExecutor(num_threads) - cls._threadpool_pid = pid - return cls._threadpool - - -class OverrideResolver(Resolver): - """Wraps a resolver with a mapping of overrides. - - This can be used to make local DNS changes (e.g. for testing) - without modifying system-wide settings. - - The mapping can be in three formats:: - - { - # Hostname to host or ip - "example.com": "127.0.1.1", - - # Host+port to host+port - ("login.example.com", 443): ("localhost", 1443), - - # Host+port+address family to host+port - ("login.example.com", 443, socket.AF_INET6): ("::1", 1443), - } - - .. versionchanged:: 5.0 - Added support for host-port-family triplets. - """ - - def initialize(self, resolver: Resolver, mapping: dict) -> None: - self.resolver = resolver - self.mapping = mapping - - def close(self) -> None: - self.resolver.close() - - def resolve( - self, host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC - ) -> Awaitable[List[Tuple[int, Any]]]: - if (host, port, family) in self.mapping: - host, port = self.mapping[(host, port, family)] - elif (host, port) in self.mapping: - host, port = self.mapping[(host, port)] - elif host in self.mapping: - host = self.mapping[host] - return self.resolver.resolve(host, port, family) - - -# These are the keyword arguments to ssl.wrap_socket that must be translated -# to their SSLContext equivalents (the other arguments are still passed -# to SSLContext.wrap_socket). -_SSL_CONTEXT_KEYWORDS = frozenset( - ["ssl_version", "certfile", "keyfile", "cert_reqs", "ca_certs", "ciphers"] -) - - -def ssl_options_to_context( - ssl_options: Union[Dict[str, Any], ssl.SSLContext] -) -> ssl.SSLContext: - """Try to convert an ``ssl_options`` dictionary to an - `~ssl.SSLContext` object. - - The ``ssl_options`` dictionary contains keywords to be passed to - `ssl.wrap_socket`. In Python 2.7.9+, `ssl.SSLContext` objects can - be used instead. This function converts the dict form to its - `~ssl.SSLContext` equivalent, and may be used when a component which - accepts both forms needs to upgrade to the `~ssl.SSLContext` version - to use features like SNI or NPN. - """ - if isinstance(ssl_options, ssl.SSLContext): - return ssl_options - assert isinstance(ssl_options, dict) - assert all(k in _SSL_CONTEXT_KEYWORDS for k in ssl_options), ssl_options - # Can't use create_default_context since this interface doesn't - # tell us client vs server. - context = ssl.SSLContext(ssl_options.get("ssl_version", ssl.PROTOCOL_SSLv23)) - if "certfile" in ssl_options: - context.load_cert_chain( - ssl_options["certfile"], ssl_options.get("keyfile", None) - ) - if "cert_reqs" in ssl_options: - context.verify_mode = ssl_options["cert_reqs"] - if "ca_certs" in ssl_options: - context.load_verify_locations(ssl_options["ca_certs"]) - if "ciphers" in ssl_options: - context.set_ciphers(ssl_options["ciphers"]) - if hasattr(ssl, "OP_NO_COMPRESSION"): - # Disable TLS compression to avoid CRIME and related attacks. - # This constant depends on openssl version 1.0. - # TODO: Do we need to do this ourselves or can we trust - # the defaults? - context.options |= ssl.OP_NO_COMPRESSION - return context - - -def ssl_wrap_socket( - socket: socket.socket, - ssl_options: Union[Dict[str, Any], ssl.SSLContext], - server_hostname: str = None, - **kwargs: Any -) -> ssl.SSLSocket: - """Returns an ``ssl.SSLSocket`` wrapping the given socket. - - ``ssl_options`` may be either an `ssl.SSLContext` object or a - dictionary (as accepted by `ssl_options_to_context`). Additional - keyword arguments are passed to ``wrap_socket`` (either the - `~ssl.SSLContext` method or the `ssl` module function as - appropriate). - """ - context = ssl_options_to_context(ssl_options) - if ssl.HAS_SNI: - # In python 3.4, wrap_socket only accepts the server_hostname - # argument if HAS_SNI is true. - # TODO: add a unittest (python added server-side SNI support in 3.4) - # In the meantime it can be manually tested with - # python3 -m tornado.httpclient https://sni.velox.ch - return context.wrap_socket(socket, server_hostname=server_hostname, **kwargs) - else: - return context.wrap_socket(socket, **kwargs) +# +# Copyright 2011 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Miscellaneous network utility code.""" + +import concurrent.futures +import errno +import os +import sys +import socket +import ssl +import stat + +from tornado.concurrent import dummy_executor, run_on_executor +from tornado.ioloop import IOLoop +from tornado.platform.auto import set_close_exec +from tornado.util import Configurable, errno_from_exception + +import typing +from typing import List, Callable, Any, Type, Dict, Union, Tuple, Awaitable + +if typing.TYPE_CHECKING: + from asyncio import Future # noqa: F401 + +# Note that the naming of ssl.Purpose is confusing; the purpose +# of a context is to authentiate the opposite side of the connection. +_client_ssl_defaults = ssl.create_default_context(ssl.Purpose.SERVER_AUTH) +_server_ssl_defaults = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) +if hasattr(ssl, "OP_NO_COMPRESSION"): + # See netutil.ssl_options_to_context + _client_ssl_defaults.options |= ssl.OP_NO_COMPRESSION + _server_ssl_defaults.options |= ssl.OP_NO_COMPRESSION + +# ThreadedResolver runs getaddrinfo on a thread. If the hostname is unicode, +# getaddrinfo attempts to import encodings.idna. If this is done at +# module-import time, the import lock is already held by the main thread, +# leading to deadlock. Avoid it by caching the idna encoder on the main +# thread now. +u"foo".encode("idna") + +# For undiagnosed reasons, 'latin1' codec may also need to be preloaded. +u"foo".encode("latin1") + +# These errnos indicate that a non-blocking operation must be retried +# at a later time. On most platforms they're the same value, but on +# some they differ. +_ERRNO_WOULDBLOCK = (errno.EWOULDBLOCK, errno.EAGAIN) + +if hasattr(errno, "WSAEWOULDBLOCK"): + _ERRNO_WOULDBLOCK += (errno.WSAEWOULDBLOCK,) # type: ignore + +# Default backlog used when calling sock.listen() +_DEFAULT_BACKLOG = 128 + + +def bind_sockets( + port: int, + address: str = None, + family: socket.AddressFamily = socket.AF_UNSPEC, + backlog: int = _DEFAULT_BACKLOG, + flags: int = None, + reuse_port: bool = False, +) -> List[socket.socket]: + """Creates listening sockets bound to the given port and address. + + Returns a list of socket objects (multiple sockets are returned if + the given address maps to multiple IP addresses, which is most common + for mixed IPv4 and IPv6 use). + + Address may be either an IP address or hostname. If it's a hostname, + the server will listen on all IP addresses associated with the + name. Address may be an empty string or None to listen on all + available interfaces. Family may be set to either `socket.AF_INET` + or `socket.AF_INET6` to restrict to IPv4 or IPv6 addresses, otherwise + both will be used if available. + + The ``backlog`` argument has the same meaning as for + `socket.listen() `. + + ``flags`` is a bitmask of AI_* flags to `~socket.getaddrinfo`, like + ``socket.AI_PASSIVE | socket.AI_NUMERICHOST``. + + ``reuse_port`` option sets ``SO_REUSEPORT`` option for every socket + in the list. If your platform doesn't support this option ValueError will + be raised. + """ + if reuse_port and not hasattr(socket, "SO_REUSEPORT"): + raise ValueError("the platform doesn't support SO_REUSEPORT") + + sockets = [] + if address == "": + address = None + if not socket.has_ipv6 and family == socket.AF_UNSPEC: + # Python can be compiled with --disable-ipv6, which causes + # operations on AF_INET6 sockets to fail, but does not + # automatically exclude those results from getaddrinfo + # results. + # http://bugs.python.org/issue16208 + family = socket.AF_INET + if flags is None: + flags = socket.AI_PASSIVE + bound_port = None + unique_addresses = set() # type: set + for res in sorted( + socket.getaddrinfo(address, port, family, socket.SOCK_STREAM, 0, flags), + key=lambda x: x[0], + ): + if res in unique_addresses: + continue + + unique_addresses.add(res) + + af, socktype, proto, canonname, sockaddr = res + if ( + sys.platform == "darwin" + and address == "localhost" + and af == socket.AF_INET6 + and sockaddr[3] != 0 + ): + # Mac OS X includes a link-local address fe80::1%lo0 in the + # getaddrinfo results for 'localhost'. However, the firewall + # doesn't understand that this is a local address and will + # prompt for access (often repeatedly, due to an apparent + # bug in its ability to remember granting access to an + # application). Skip these addresses. + continue + try: + sock = socket.socket(af, socktype, proto) + except socket.error as e: + if errno_from_exception(e) == errno.EAFNOSUPPORT: + continue + raise + set_close_exec(sock.fileno()) + if os.name != "nt": + try: + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + except socket.error as e: + if errno_from_exception(e) != errno.ENOPROTOOPT: + # Hurd doesn't support SO_REUSEADDR. + raise + if reuse_port: + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1) + if af == socket.AF_INET6: + # On linux, ipv6 sockets accept ipv4 too by default, + # but this makes it impossible to bind to both + # 0.0.0.0 in ipv4 and :: in ipv6. On other systems, + # separate sockets *must* be used to listen for both ipv4 + # and ipv6. For consistency, always disable ipv4 on our + # ipv6 sockets and use a separate ipv4 socket when needed. + # + # Python 2.x on windows doesn't have IPPROTO_IPV6. + if hasattr(socket, "IPPROTO_IPV6"): + sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1) + + # automatic port allocation with port=None + # should bind on the same port on IPv4 and IPv6 + host, requested_port = sockaddr[:2] + if requested_port == 0 and bound_port is not None: + sockaddr = tuple([host, bound_port] + list(sockaddr[2:])) + + sock.setblocking(False) + sock.bind(sockaddr) + bound_port = sock.getsockname()[1] + sock.listen(backlog) + sockets.append(sock) + return sockets + + +if hasattr(socket, "AF_UNIX"): + + def bind_unix_socket( + file: str, mode: int = 0o600, backlog: int = _DEFAULT_BACKLOG + ) -> socket.socket: + """Creates a listening unix socket. + + If a socket with the given name already exists, it will be deleted. + If any other file with that name exists, an exception will be + raised. + + Returns a socket object (not a list of socket objects like + `bind_sockets`) + """ + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + set_close_exec(sock.fileno()) + try: + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + except socket.error as e: + if errno_from_exception(e) != errno.ENOPROTOOPT: + # Hurd doesn't support SO_REUSEADDR + raise + sock.setblocking(False) + try: + st = os.stat(file) + except OSError as err: + if errno_from_exception(err) != errno.ENOENT: + raise + else: + if stat.S_ISSOCK(st.st_mode): + os.remove(file) + else: + raise ValueError("File %s exists and is not a socket", file) + sock.bind(file) + os.chmod(file, mode) + sock.listen(backlog) + return sock + + +def add_accept_handler( + sock: socket.socket, callback: Callable[[socket.socket, Any], None] +) -> Callable[[], None]: + """Adds an `.IOLoop` event handler to accept new connections on ``sock``. + + When a connection is accepted, ``callback(connection, address)`` will + be run (``connection`` is a socket object, and ``address`` is the + address of the other end of the connection). Note that this signature + is different from the ``callback(fd, events)`` signature used for + `.IOLoop` handlers. + + A callable is returned which, when called, will remove the `.IOLoop` + event handler and stop processing further incoming connections. + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been removed. + + .. versionchanged:: 5.0 + A callable is returned (``None`` was returned before). + """ + io_loop = IOLoop.current() + removed = [False] + + def accept_handler(fd: socket.socket, events: int) -> None: + # More connections may come in while we're handling callbacks; + # to prevent starvation of other tasks we must limit the number + # of connections we accept at a time. Ideally we would accept + # up to the number of connections that were waiting when we + # entered this method, but this information is not available + # (and rearranging this method to call accept() as many times + # as possible before running any callbacks would have adverse + # effects on load balancing in multiprocess configurations). + # Instead, we use the (default) listen backlog as a rough + # heuristic for the number of connections we can reasonably + # accept at once. + for i in range(_DEFAULT_BACKLOG): + if removed[0]: + # The socket was probably closed + return + try: + connection, address = sock.accept() + except socket.error as e: + # _ERRNO_WOULDBLOCK indicate we have accepted every + # connection that is available. + if errno_from_exception(e) in _ERRNO_WOULDBLOCK: + return + # ECONNABORTED indicates that there was a connection + # but it was closed while still in the accept queue. + # (observed on FreeBSD). + if errno_from_exception(e) == errno.ECONNABORTED: + continue + raise + set_close_exec(connection.fileno()) + callback(connection, address) + + def remove_handler() -> None: + io_loop.remove_handler(sock) + removed[0] = True + + io_loop.add_handler(sock, accept_handler, IOLoop.READ) + return remove_handler + + +def is_valid_ip(ip: str) -> bool: + """Returns ``True`` if the given string is a well-formed IP address. + + Supports IPv4 and IPv6. + """ + if not ip or "\x00" in ip: + # getaddrinfo resolves empty strings to localhost, and truncates + # on zero bytes. + return False + try: + res = socket.getaddrinfo( + ip, 0, socket.AF_UNSPEC, socket.SOCK_STREAM, 0, socket.AI_NUMERICHOST + ) + return bool(res) + except socket.gaierror as e: + if e.args[0] == socket.EAI_NONAME: + return False + raise + return True + + +class Resolver(Configurable): + """Configurable asynchronous DNS resolver interface. + + By default, a blocking implementation is used (which simply calls + `socket.getaddrinfo`). An alternative implementation can be + chosen with the `Resolver.configure <.Configurable.configure>` + class method:: + + Resolver.configure('tornado.netutil.ThreadedResolver') + + The implementations of this interface included with Tornado are + + * `tornado.netutil.DefaultExecutorResolver` + * `tornado.netutil.BlockingResolver` (deprecated) + * `tornado.netutil.ThreadedResolver` (deprecated) + * `tornado.netutil.OverrideResolver` + * `tornado.platform.twisted.TwistedResolver` + * `tornado.platform.caresresolver.CaresResolver` + + .. versionchanged:: 5.0 + The default implementation has changed from `BlockingResolver` to + `DefaultExecutorResolver`. + """ + + @classmethod + def configurable_base(cls) -> Type["Resolver"]: + return Resolver + + @classmethod + def configurable_default(cls) -> Type["Resolver"]: + return DefaultExecutorResolver + + def resolve( + self, host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC + ) -> Awaitable[List[Tuple[int, Any]]]: + """Resolves an address. + + The ``host`` argument is a string which may be a hostname or a + literal IP address. + + Returns a `.Future` whose result is a list of (family, + address) pairs, where address is a tuple suitable to pass to + `socket.connect ` (i.e. a ``(host, + port)`` pair for IPv4; additional fields may be present for + IPv6). If a ``callback`` is passed, it will be run with the + result as an argument when it is complete. + + :raises IOError: if the address cannot be resolved. + + .. versionchanged:: 4.4 + Standardized all implementations to raise `IOError`. + + .. versionchanged:: 6.0 The ``callback`` argument was removed. + Use the returned awaitable object instead. + + """ + raise NotImplementedError() + + def close(self) -> None: + """Closes the `Resolver`, freeing any resources used. + + .. versionadded:: 3.1 + + """ + pass + + +def _resolve_addr( + host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC +) -> List[Tuple[int, Any]]: + # On Solaris, getaddrinfo fails if the given port is not found + # in /etc/services and no socket type is given, so we must pass + # one here. The socket type used here doesn't seem to actually + # matter (we discard the one we get back in the results), + # so the addresses we return should still be usable with SOCK_DGRAM. + addrinfo = socket.getaddrinfo(host, port, family, socket.SOCK_STREAM) + results = [] + for fam, socktype, proto, canonname, address in addrinfo: + results.append((fam, address)) + return results + + +class DefaultExecutorResolver(Resolver): + """Resolver implementation using `.IOLoop.run_in_executor`. + + .. versionadded:: 5.0 + """ + + async def resolve( + self, host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC + ) -> List[Tuple[int, Any]]: + result = await IOLoop.current().run_in_executor( + None, _resolve_addr, host, port, family + ) + return result + + +class ExecutorResolver(Resolver): + """Resolver implementation using a `concurrent.futures.Executor`. + + Use this instead of `ThreadedResolver` when you require additional + control over the executor being used. + + The executor will be shut down when the resolver is closed unless + ``close_resolver=False``; use this if you want to reuse the same + executor elsewhere. + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been removed. + + .. deprecated:: 5.0 + The default `Resolver` now uses `.IOLoop.run_in_executor`; use that instead + of this class. + """ + + def initialize( + self, executor: concurrent.futures.Executor = None, close_executor: bool = True + ) -> None: + self.io_loop = IOLoop.current() + if executor is not None: + self.executor = executor + self.close_executor = close_executor + else: + self.executor = dummy_executor + self.close_executor = False + + def close(self) -> None: + if self.close_executor: + self.executor.shutdown() + self.executor = None # type: ignore + + @run_on_executor + def resolve( + self, host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC + ) -> List[Tuple[int, Any]]: + return _resolve_addr(host, port, family) + + +class BlockingResolver(ExecutorResolver): + """Default `Resolver` implementation, using `socket.getaddrinfo`. + + The `.IOLoop` will be blocked during the resolution, although the + callback will not be run until the next `.IOLoop` iteration. + + .. deprecated:: 5.0 + The default `Resolver` now uses `.IOLoop.run_in_executor`; use that instead + of this class. + """ + + def initialize(self) -> None: # type: ignore + super(BlockingResolver, self).initialize() + + +class ThreadedResolver(ExecutorResolver): + """Multithreaded non-blocking `Resolver` implementation. + + Requires the `concurrent.futures` package to be installed + (available in the standard library since Python 3.2, + installable with ``pip install futures`` in older versions). + + The thread pool size can be configured with:: + + Resolver.configure('tornado.netutil.ThreadedResolver', + num_threads=10) + + .. versionchanged:: 3.1 + All ``ThreadedResolvers`` share a single thread pool, whose + size is set by the first one to be created. + + .. deprecated:: 5.0 + The default `Resolver` now uses `.IOLoop.run_in_executor`; use that instead + of this class. + """ + + _threadpool = None # type: ignore + _threadpool_pid = None # type: int + + def initialize(self, num_threads: int = 10) -> None: # type: ignore + threadpool = ThreadedResolver._create_threadpool(num_threads) + super(ThreadedResolver, self).initialize( + executor=threadpool, close_executor=False + ) + + @classmethod + def _create_threadpool( + cls, num_threads: int + ) -> concurrent.futures.ThreadPoolExecutor: + pid = os.getpid() + if cls._threadpool_pid != pid: + # Threads cannot survive after a fork, so if our pid isn't what it + # was when we created the pool then delete it. + cls._threadpool = None + if cls._threadpool is None: + cls._threadpool = concurrent.futures.ThreadPoolExecutor(num_threads) + cls._threadpool_pid = pid + return cls._threadpool + + +class OverrideResolver(Resolver): + """Wraps a resolver with a mapping of overrides. + + This can be used to make local DNS changes (e.g. for testing) + without modifying system-wide settings. + + The mapping can be in three formats:: + + { + # Hostname to host or ip + "example.com": "127.0.1.1", + + # Host+port to host+port + ("login.example.com", 443): ("localhost", 1443), + + # Host+port+address family to host+port + ("login.example.com", 443, socket.AF_INET6): ("::1", 1443), + } + + .. versionchanged:: 5.0 + Added support for host-port-family triplets. + """ + + def initialize(self, resolver: Resolver, mapping: dict) -> None: + self.resolver = resolver + self.mapping = mapping + + def close(self) -> None: + self.resolver.close() + + def resolve( + self, host: str, port: int, family: socket.AddressFamily = socket.AF_UNSPEC + ) -> Awaitable[List[Tuple[int, Any]]]: + if (host, port, family) in self.mapping: + host, port = self.mapping[(host, port, family)] + elif (host, port) in self.mapping: + host, port = self.mapping[(host, port)] + elif host in self.mapping: + host = self.mapping[host] + return self.resolver.resolve(host, port, family) + + +# These are the keyword arguments to ssl.wrap_socket that must be translated +# to their SSLContext equivalents (the other arguments are still passed +# to SSLContext.wrap_socket). +_SSL_CONTEXT_KEYWORDS = frozenset( + ["ssl_version", "certfile", "keyfile", "cert_reqs", "ca_certs", "ciphers"] +) + + +def ssl_options_to_context( + ssl_options: Union[Dict[str, Any], ssl.SSLContext] +) -> ssl.SSLContext: + """Try to convert an ``ssl_options`` dictionary to an + `~ssl.SSLContext` object. + + The ``ssl_options`` dictionary contains keywords to be passed to + `ssl.wrap_socket`. In Python 2.7.9+, `ssl.SSLContext` objects can + be used instead. This function converts the dict form to its + `~ssl.SSLContext` equivalent, and may be used when a component which + accepts both forms needs to upgrade to the `~ssl.SSLContext` version + to use features like SNI or NPN. + """ + if isinstance(ssl_options, ssl.SSLContext): + return ssl_options + assert isinstance(ssl_options, dict) + assert all(k in _SSL_CONTEXT_KEYWORDS for k in ssl_options), ssl_options + # Can't use create_default_context since this interface doesn't + # tell us client vs server. + context = ssl.SSLContext(ssl_options.get("ssl_version", ssl.PROTOCOL_SSLv23)) + if "certfile" in ssl_options: + context.load_cert_chain( + ssl_options["certfile"], ssl_options.get("keyfile", None) + ) + if "cert_reqs" in ssl_options: + context.verify_mode = ssl_options["cert_reqs"] + if "ca_certs" in ssl_options: + context.load_verify_locations(ssl_options["ca_certs"]) + if "ciphers" in ssl_options: + context.set_ciphers(ssl_options["ciphers"]) + if hasattr(ssl, "OP_NO_COMPRESSION"): + # Disable TLS compression to avoid CRIME and related attacks. + # This constant depends on openssl version 1.0. + # TODO: Do we need to do this ourselves or can we trust + # the defaults? + context.options |= ssl.OP_NO_COMPRESSION + return context + + +def ssl_wrap_socket( + socket: socket.socket, + ssl_options: Union[Dict[str, Any], ssl.SSLContext], + server_hostname: str = None, + **kwargs: Any +) -> ssl.SSLSocket: + """Returns an ``ssl.SSLSocket`` wrapping the given socket. + + ``ssl_options`` may be either an `ssl.SSLContext` object or a + dictionary (as accepted by `ssl_options_to_context`). Additional + keyword arguments are passed to ``wrap_socket`` (either the + `~ssl.SSLContext` method or the `ssl` module function as + appropriate). + """ + context = ssl_options_to_context(ssl_options) + if ssl.HAS_SNI: + # In python 3.4, wrap_socket only accepts the server_hostname + # argument if HAS_SNI is true. + # TODO: add a unittest (python added server-side SNI support in 3.4) + # In the meantime it can be manually tested with + # python3 -m tornado.httpclient https://sni.velox.ch + return context.wrap_socket(socket, server_hostname=server_hostname, **kwargs) + else: + return context.wrap_socket(socket, **kwargs) diff --git a/server/www/packages/packages-linux/x64/tornado/options.py b/server/www/packages/packages-linux/x64/tornado/options.py index 4449ffa..0f06a58 100644 --- a/server/www/packages/packages-linux/x64/tornado/options.py +++ b/server/www/packages/packages-linux/x64/tornado/options.py @@ -1,726 +1,726 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""A command line parsing module that lets modules define their own options. - -This module is inspired by Google's `gflags -`_. The primary difference -with libraries such as `argparse` is that a global registry is used so -that options may be defined in any module (it also enables -`tornado.log` by default). The rest of Tornado does not depend on this -module, so feel free to use `argparse` or other configuration -libraries if you prefer them. - -Options must be defined with `tornado.options.define` before use, -generally at the top level of a module. The options are then -accessible as attributes of `tornado.options.options`:: - - # myapp/db.py - from tornado.options import define, options - - define("mysql_host", default="127.0.0.1:3306", help="Main user DB") - define("memcache_hosts", default="127.0.0.1:11011", multiple=True, - help="Main user memcache servers") - - def connect(): - db = database.Connection(options.mysql_host) - ... - - # myapp/server.py - from tornado.options import define, options - - define("port", default=8080, help="port to listen on") - - def start_server(): - app = make_app() - app.listen(options.port) - -The ``main()`` method of your application does not need to be aware of all of -the options used throughout your program; they are all automatically loaded -when the modules are loaded. However, all modules that define options -must have been imported before the command line is parsed. - -Your ``main()`` method can parse the command line or parse a config file with -either `parse_command_line` or `parse_config_file`:: - - import myapp.db, myapp.server - import tornado.options - - if __name__ == '__main__': - tornado.options.parse_command_line() - # or - tornado.options.parse_config_file("/etc/server.conf") - -.. note:: - - When using multiple ``parse_*`` functions, pass ``final=False`` to all - but the last one, or side effects may occur twice (in particular, - this can result in log messages being doubled). - -`tornado.options.options` is a singleton instance of `OptionParser`, and -the top-level functions in this module (`define`, `parse_command_line`, etc) -simply call methods on it. You may create additional `OptionParser` -instances to define isolated sets of options, such as for subcommands. - -.. note:: - - By default, several options are defined that will configure the - standard `logging` module when `parse_command_line` or `parse_config_file` - are called. If you want Tornado to leave the logging configuration - alone so you can manage it yourself, either pass ``--logging=none`` - on the command line or do the following to disable it in code:: - - from tornado.options import options, parse_command_line - options.logging = None - parse_command_line() - -.. versionchanged:: 4.3 - Dashes and underscores are fully interchangeable in option names; - options can be defined, set, and read with any mix of the two. - Dashes are typical for command-line usage while config files require - underscores. -""" - -import datetime -import numbers -import re -import sys -import os -import textwrap - -from tornado.escape import _unicode, native_str -from tornado.log import define_logging_options -from tornado.util import basestring_type, exec_in - -import typing -from typing import Any, Iterator, Iterable, Tuple, Set, Dict, Callable, List, TextIO - -if typing.TYPE_CHECKING: - from typing import Optional # noqa: F401 - - -class Error(Exception): - """Exception raised by errors in the options module.""" - - pass - - -class OptionParser(object): - """A collection of options, a dictionary with object-like access. - - Normally accessed via static functions in the `tornado.options` module, - which reference a global instance. - """ - - def __init__(self) -> None: - # we have to use self.__dict__ because we override setattr. - self.__dict__["_options"] = {} - self.__dict__["_parse_callbacks"] = [] - self.define( - "help", - type=bool, - help="show this help information", - callback=self._help_callback, - ) - - def _normalize_name(self, name: str) -> str: - return name.replace("_", "-") - - def __getattr__(self, name: str) -> Any: - name = self._normalize_name(name) - if isinstance(self._options.get(name), _Option): - return self._options[name].value() - raise AttributeError("Unrecognized option %r" % name) - - def __setattr__(self, name: str, value: Any) -> None: - name = self._normalize_name(name) - if isinstance(self._options.get(name), _Option): - return self._options[name].set(value) - raise AttributeError("Unrecognized option %r" % name) - - def __iter__(self) -> Iterator: - return (opt.name for opt in self._options.values()) - - def __contains__(self, name: str) -> bool: - name = self._normalize_name(name) - return name in self._options - - def __getitem__(self, name: str) -> Any: - return self.__getattr__(name) - - def __setitem__(self, name: str, value: Any) -> None: - return self.__setattr__(name, value) - - def items(self) -> Iterable[Tuple[str, Any]]: - """An iterable of (name, value) pairs. - - .. versionadded:: 3.1 - """ - return [(opt.name, opt.value()) for name, opt in self._options.items()] - - def groups(self) -> Set[str]: - """The set of option-groups created by ``define``. - - .. versionadded:: 3.1 - """ - return set(opt.group_name for opt in self._options.values()) - - def group_dict(self, group: str) -> Dict[str, Any]: - """The names and values of options in a group. - - Useful for copying options into Application settings:: - - from tornado.options import define, parse_command_line, options - - define('template_path', group='application') - define('static_path', group='application') - - parse_command_line() - - application = Application( - handlers, **options.group_dict('application')) - - .. versionadded:: 3.1 - """ - return dict( - (opt.name, opt.value()) - for name, opt in self._options.items() - if not group or group == opt.group_name - ) - - def as_dict(self) -> Dict[str, Any]: - """The names and values of all options. - - .. versionadded:: 3.1 - """ - return dict((opt.name, opt.value()) for name, opt in self._options.items()) - - def define( - self, - name: str, - default: Any = None, - type: type = None, - help: str = None, - metavar: str = None, - multiple: bool = False, - group: str = None, - callback: Callable[[Any], None] = None, - ) -> None: - """Defines a new command line option. - - ``type`` can be any of `str`, `int`, `float`, `bool`, - `~datetime.datetime`, or `~datetime.timedelta`. If no ``type`` - is given but a ``default`` is, ``type`` is the type of - ``default``. Otherwise, ``type`` defaults to `str`. - - If ``multiple`` is True, the option value is a list of ``type`` - instead of an instance of ``type``. - - ``help`` and ``metavar`` are used to construct the - automatically generated command line help string. The help - message is formatted like:: - - --name=METAVAR help string - - ``group`` is used to group the defined options in logical - groups. By default, command line options are grouped by the - file in which they are defined. - - Command line option names must be unique globally. - - If a ``callback`` is given, it will be run with the new value whenever - the option is changed. This can be used to combine command-line - and file-based options:: - - define("config", type=str, help="path to config file", - callback=lambda path: parse_config_file(path, final=False)) - - With this definition, options in the file specified by ``--config`` will - override options set earlier on the command line, but can be overridden - by later flags. - - """ - normalized = self._normalize_name(name) - if normalized in self._options: - raise Error( - "Option %r already defined in %s" - % (normalized, self._options[normalized].file_name) - ) - frame = sys._getframe(0) - options_file = frame.f_code.co_filename - - # Can be called directly, or through top level define() fn, in which - # case, step up above that frame to look for real caller. - if ( - frame.f_back.f_code.co_filename == options_file - and frame.f_back.f_code.co_name == "define" - ): - frame = frame.f_back - - file_name = frame.f_back.f_code.co_filename - if file_name == options_file: - file_name = "" - if type is None: - if not multiple and default is not None: - type = default.__class__ - else: - type = str - if group: - group_name = group # type: Optional[str] - else: - group_name = file_name - option = _Option( - name, - file_name=file_name, - default=default, - type=type, - help=help, - metavar=metavar, - multiple=multiple, - group_name=group_name, - callback=callback, - ) - self._options[normalized] = option - - def parse_command_line( - self, args: List[str] = None, final: bool = True - ) -> List[str]: - """Parses all options given on the command line (defaults to - `sys.argv`). - - Options look like ``--option=value`` and are parsed according - to their ``type``. For boolean options, ``--option`` is - equivalent to ``--option=true`` - - If the option has ``multiple=True``, comma-separated values - are accepted. For multi-value integer options, the syntax - ``x:y`` is also accepted and equivalent to ``range(x, y)``. - - Note that ``args[0]`` is ignored since it is the program name - in `sys.argv`. - - We return a list of all arguments that are not parsed as options. - - If ``final`` is ``False``, parse callbacks will not be run. - This is useful for applications that wish to combine configurations - from multiple sources. - - """ - if args is None: - args = sys.argv - remaining = [] # type: List[str] - for i in range(1, len(args)): - # All things after the last option are command line arguments - if not args[i].startswith("-"): - remaining = args[i:] - break - if args[i] == "--": - remaining = args[i + 1 :] - break - arg = args[i].lstrip("-") - name, equals, value = arg.partition("=") - name = self._normalize_name(name) - if name not in self._options: - self.print_help() - raise Error("Unrecognized command line option: %r" % name) - option = self._options[name] - if not equals: - if option.type == bool: - value = "true" - else: - raise Error("Option %r requires a value" % name) - option.parse(value) - - if final: - self.run_parse_callbacks() - - return remaining - - def parse_config_file(self, path: str, final: bool = True) -> None: - """Parses and loads the config file at the given path. - - The config file contains Python code that will be executed (so - it is **not safe** to use untrusted config files). Anything in - the global namespace that matches a defined option will be - used to set that option's value. - - Options may either be the specified type for the option or - strings (in which case they will be parsed the same way as in - `.parse_command_line`) - - Example (using the options defined in the top-level docs of - this module):: - - port = 80 - mysql_host = 'mydb.example.com:3306' - # Both lists and comma-separated strings are allowed for - # multiple=True. - memcache_hosts = ['cache1.example.com:11011', - 'cache2.example.com:11011'] - memcache_hosts = 'cache1.example.com:11011,cache2.example.com:11011' - - If ``final`` is ``False``, parse callbacks will not be run. - This is useful for applications that wish to combine configurations - from multiple sources. - - .. note:: - - `tornado.options` is primarily a command-line library. - Config file support is provided for applications that wish - to use it, but applications that prefer config files may - wish to look at other libraries instead. - - .. versionchanged:: 4.1 - Config files are now always interpreted as utf-8 instead of - the system default encoding. - - .. versionchanged:: 4.4 - The special variable ``__file__`` is available inside config - files, specifying the absolute path to the config file itself. - - .. versionchanged:: 5.1 - Added the ability to set options via strings in config files. - - """ - config = {"__file__": os.path.abspath(path)} - with open(path, "rb") as f: - exec_in(native_str(f.read()), config, config) - for name in config: - normalized = self._normalize_name(name) - if normalized in self._options: - option = self._options[normalized] - if option.multiple: - if not isinstance(config[name], (list, str)): - raise Error( - "Option %r is required to be a list of %s " - "or a comma-separated string" - % (option.name, option.type.__name__) - ) - - if type(config[name]) == str and option.type != str: - option.parse(config[name]) - else: - option.set(config[name]) - - if final: - self.run_parse_callbacks() - - def print_help(self, file: TextIO = None) -> None: - """Prints all the command line options to stderr (or another file).""" - if file is None: - file = sys.stderr - print("Usage: %s [OPTIONS]" % sys.argv[0], file=file) - print("\nOptions:\n", file=file) - by_group = {} # type: Dict[str, List[_Option]] - for option in self._options.values(): - by_group.setdefault(option.group_name, []).append(option) - - for filename, o in sorted(by_group.items()): - if filename: - print("\n%s options:\n" % os.path.normpath(filename), file=file) - o.sort(key=lambda option: option.name) - for option in o: - # Always print names with dashes in a CLI context. - prefix = self._normalize_name(option.name) - if option.metavar: - prefix += "=" + option.metavar - description = option.help or "" - if option.default is not None and option.default != "": - description += " (default %s)" % option.default - lines = textwrap.wrap(description, 79 - 35) - if len(prefix) > 30 or len(lines) == 0: - lines.insert(0, "") - print(" --%-30s %s" % (prefix, lines[0]), file=file) - for line in lines[1:]: - print("%-34s %s" % (" ", line), file=file) - print(file=file) - - def _help_callback(self, value: bool) -> None: - if value: - self.print_help() - sys.exit(0) - - def add_parse_callback(self, callback: Callable[[], None]) -> None: - """Adds a parse callback, to be invoked when option parsing is done.""" - self._parse_callbacks.append(callback) - - def run_parse_callbacks(self) -> None: - for callback in self._parse_callbacks: - callback() - - def mockable(self) -> "_Mockable": - """Returns a wrapper around self that is compatible with - `mock.patch `. - - The `mock.patch ` function (included in - the standard library `unittest.mock` package since Python 3.3, - or in the third-party ``mock`` package for older versions of - Python) is incompatible with objects like ``options`` that - override ``__getattr__`` and ``__setattr__``. This function - returns an object that can be used with `mock.patch.object - ` to modify option values:: - - with mock.patch.object(options.mockable(), 'name', value): - assert options.name == value - """ - return _Mockable(self) - - -class _Mockable(object): - """`mock.patch` compatible wrapper for `OptionParser`. - - As of ``mock`` version 1.0.1, when an object uses ``__getattr__`` - hooks instead of ``__dict__``, ``patch.__exit__`` tries to delete - the attribute it set instead of setting a new one (assuming that - the object does not catpure ``__setattr__``, so the patch - created a new attribute in ``__dict__``). - - _Mockable's getattr and setattr pass through to the underlying - OptionParser, and delattr undoes the effect of a previous setattr. - """ - - def __init__(self, options: OptionParser) -> None: - # Modify __dict__ directly to bypass __setattr__ - self.__dict__["_options"] = options - self.__dict__["_originals"] = {} - - def __getattr__(self, name: str) -> Any: - return getattr(self._options, name) - - def __setattr__(self, name: str, value: Any) -> None: - assert name not in self._originals, "don't reuse mockable objects" - self._originals[name] = getattr(self._options, name) - setattr(self._options, name, value) - - def __delattr__(self, name: str) -> None: - setattr(self._options, name, self._originals.pop(name)) - - -class _Option(object): - # This class could almost be made generic, but the way the types - # interact with the multiple argument makes this tricky. (default - # and the callback use List[T], but type is still Type[T]). - UNSET = object() - - def __init__( - self, - name: str, - default: Any = None, - type: type = None, - help: str = None, - metavar: str = None, - multiple: bool = False, - file_name: str = None, - group_name: str = None, - callback: Callable[[Any], None] = None, - ) -> None: - if default is None and multiple: - default = [] - self.name = name - if type is None: - raise ValueError("type must not be None") - self.type = type - self.help = help - self.metavar = metavar - self.multiple = multiple - self.file_name = file_name - self.group_name = group_name - self.callback = callback - self.default = default - self._value = _Option.UNSET # type: Any - - def value(self) -> Any: - return self.default if self._value is _Option.UNSET else self._value - - def parse(self, value: str) -> Any: - _parse = { - datetime.datetime: self._parse_datetime, - datetime.timedelta: self._parse_timedelta, - bool: self._parse_bool, - basestring_type: self._parse_string, - }.get( - self.type, self.type - ) # type: Callable[[str], Any] - if self.multiple: - self._value = [] - for part in value.split(","): - if issubclass(self.type, numbers.Integral): - # allow ranges of the form X:Y (inclusive at both ends) - lo_str, _, hi_str = part.partition(":") - lo = _parse(lo_str) - hi = _parse(hi_str) if hi_str else lo - self._value.extend(range(lo, hi + 1)) - else: - self._value.append(_parse(part)) - else: - self._value = _parse(value) - if self.callback is not None: - self.callback(self._value) - return self.value() - - def set(self, value: Any) -> None: - if self.multiple: - if not isinstance(value, list): - raise Error( - "Option %r is required to be a list of %s" - % (self.name, self.type.__name__) - ) - for item in value: - if item is not None and not isinstance(item, self.type): - raise Error( - "Option %r is required to be a list of %s" - % (self.name, self.type.__name__) - ) - else: - if value is not None and not isinstance(value, self.type): - raise Error( - "Option %r is required to be a %s (%s given)" - % (self.name, self.type.__name__, type(value)) - ) - self._value = value - if self.callback is not None: - self.callback(self._value) - - # Supported date/time formats in our options - _DATETIME_FORMATS = [ - "%a %b %d %H:%M:%S %Y", - "%Y-%m-%d %H:%M:%S", - "%Y-%m-%d %H:%M", - "%Y-%m-%dT%H:%M", - "%Y%m%d %H:%M:%S", - "%Y%m%d %H:%M", - "%Y-%m-%d", - "%Y%m%d", - "%H:%M:%S", - "%H:%M", - ] - - def _parse_datetime(self, value: str) -> datetime.datetime: - for format in self._DATETIME_FORMATS: - try: - return datetime.datetime.strptime(value, format) - except ValueError: - pass - raise Error("Unrecognized date/time format: %r" % value) - - _TIMEDELTA_ABBREV_DICT = { - "h": "hours", - "m": "minutes", - "min": "minutes", - "s": "seconds", - "sec": "seconds", - "ms": "milliseconds", - "us": "microseconds", - "d": "days", - "w": "weeks", - } - - _FLOAT_PATTERN = r"[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?" - - _TIMEDELTA_PATTERN = re.compile( - r"\s*(%s)\s*(\w*)\s*" % _FLOAT_PATTERN, re.IGNORECASE - ) - - def _parse_timedelta(self, value: str) -> datetime.timedelta: - try: - sum = datetime.timedelta() - start = 0 - while start < len(value): - m = self._TIMEDELTA_PATTERN.match(value, start) - if not m: - raise Exception() - num = float(m.group(1)) - units = m.group(2) or "seconds" - units = self._TIMEDELTA_ABBREV_DICT.get(units, units) - sum += datetime.timedelta(**{units: num}) - start = m.end() - return sum - except Exception: - raise - - def _parse_bool(self, value: str) -> bool: - return value.lower() not in ("false", "0", "f") - - def _parse_string(self, value: str) -> str: - return _unicode(value) - - -options = OptionParser() -"""Global options object. - -All defined options are available as attributes on this object. -""" - - -def define( - name: str, - default: Any = None, - type: type = None, - help: str = None, - metavar: str = None, - multiple: bool = False, - group: str = None, - callback: Callable[[Any], None] = None, -) -> None: - """Defines an option in the global namespace. - - See `OptionParser.define`. - """ - return options.define( - name, - default=default, - type=type, - help=help, - metavar=metavar, - multiple=multiple, - group=group, - callback=callback, - ) - - -def parse_command_line(args: List[str] = None, final: bool = True) -> List[str]: - """Parses global options from the command line. - - See `OptionParser.parse_command_line`. - """ - return options.parse_command_line(args, final=final) - - -def parse_config_file(path: str, final: bool = True) -> None: - """Parses global options from a config file. - - See `OptionParser.parse_config_file`. - """ - return options.parse_config_file(path, final=final) - - -def print_help(file: TextIO = None) -> None: - """Prints all the command line options to stderr (or another file). - - See `OptionParser.print_help`. - """ - return options.print_help(file) - - -def add_parse_callback(callback: Callable[[], None]) -> None: - """Adds a parse callback, to be invoked when option parsing is done. - - See `OptionParser.add_parse_callback` - """ - options.add_parse_callback(callback) - - -# Default options -define_logging_options(options) +# +# Copyright 2009 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""A command line parsing module that lets modules define their own options. + +This module is inspired by Google's `gflags +`_. The primary difference +with libraries such as `argparse` is that a global registry is used so +that options may be defined in any module (it also enables +`tornado.log` by default). The rest of Tornado does not depend on this +module, so feel free to use `argparse` or other configuration +libraries if you prefer them. + +Options must be defined with `tornado.options.define` before use, +generally at the top level of a module. The options are then +accessible as attributes of `tornado.options.options`:: + + # myapp/db.py + from tornado.options import define, options + + define("mysql_host", default="127.0.0.1:3306", help="Main user DB") + define("memcache_hosts", default="127.0.0.1:11011", multiple=True, + help="Main user memcache servers") + + def connect(): + db = database.Connection(options.mysql_host) + ... + + # myapp/server.py + from tornado.options import define, options + + define("port", default=8080, help="port to listen on") + + def start_server(): + app = make_app() + app.listen(options.port) + +The ``main()`` method of your application does not need to be aware of all of +the options used throughout your program; they are all automatically loaded +when the modules are loaded. However, all modules that define options +must have been imported before the command line is parsed. + +Your ``main()`` method can parse the command line or parse a config file with +either `parse_command_line` or `parse_config_file`:: + + import myapp.db, myapp.server + import tornado.options + + if __name__ == '__main__': + tornado.options.parse_command_line() + # or + tornado.options.parse_config_file("/etc/server.conf") + +.. note:: + + When using multiple ``parse_*`` functions, pass ``final=False`` to all + but the last one, or side effects may occur twice (in particular, + this can result in log messages being doubled). + +`tornado.options.options` is a singleton instance of `OptionParser`, and +the top-level functions in this module (`define`, `parse_command_line`, etc) +simply call methods on it. You may create additional `OptionParser` +instances to define isolated sets of options, such as for subcommands. + +.. note:: + + By default, several options are defined that will configure the + standard `logging` module when `parse_command_line` or `parse_config_file` + are called. If you want Tornado to leave the logging configuration + alone so you can manage it yourself, either pass ``--logging=none`` + on the command line or do the following to disable it in code:: + + from tornado.options import options, parse_command_line + options.logging = None + parse_command_line() + +.. versionchanged:: 4.3 + Dashes and underscores are fully interchangeable in option names; + options can be defined, set, and read with any mix of the two. + Dashes are typical for command-line usage while config files require + underscores. +""" + +import datetime +import numbers +import re +import sys +import os +import textwrap + +from tornado.escape import _unicode, native_str +from tornado.log import define_logging_options +from tornado.util import basestring_type, exec_in + +import typing +from typing import Any, Iterator, Iterable, Tuple, Set, Dict, Callable, List, TextIO + +if typing.TYPE_CHECKING: + from typing import Optional # noqa: F401 + + +class Error(Exception): + """Exception raised by errors in the options module.""" + + pass + + +class OptionParser(object): + """A collection of options, a dictionary with object-like access. + + Normally accessed via static functions in the `tornado.options` module, + which reference a global instance. + """ + + def __init__(self) -> None: + # we have to use self.__dict__ because we override setattr. + self.__dict__["_options"] = {} + self.__dict__["_parse_callbacks"] = [] + self.define( + "help", + type=bool, + help="show this help information", + callback=self._help_callback, + ) + + def _normalize_name(self, name: str) -> str: + return name.replace("_", "-") + + def __getattr__(self, name: str) -> Any: + name = self._normalize_name(name) + if isinstance(self._options.get(name), _Option): + return self._options[name].value() + raise AttributeError("Unrecognized option %r" % name) + + def __setattr__(self, name: str, value: Any) -> None: + name = self._normalize_name(name) + if isinstance(self._options.get(name), _Option): + return self._options[name].set(value) + raise AttributeError("Unrecognized option %r" % name) + + def __iter__(self) -> Iterator: + return (opt.name for opt in self._options.values()) + + def __contains__(self, name: str) -> bool: + name = self._normalize_name(name) + return name in self._options + + def __getitem__(self, name: str) -> Any: + return self.__getattr__(name) + + def __setitem__(self, name: str, value: Any) -> None: + return self.__setattr__(name, value) + + def items(self) -> Iterable[Tuple[str, Any]]: + """An iterable of (name, value) pairs. + + .. versionadded:: 3.1 + """ + return [(opt.name, opt.value()) for name, opt in self._options.items()] + + def groups(self) -> Set[str]: + """The set of option-groups created by ``define``. + + .. versionadded:: 3.1 + """ + return set(opt.group_name for opt in self._options.values()) + + def group_dict(self, group: str) -> Dict[str, Any]: + """The names and values of options in a group. + + Useful for copying options into Application settings:: + + from tornado.options import define, parse_command_line, options + + define('template_path', group='application') + define('static_path', group='application') + + parse_command_line() + + application = Application( + handlers, **options.group_dict('application')) + + .. versionadded:: 3.1 + """ + return dict( + (opt.name, opt.value()) + for name, opt in self._options.items() + if not group or group == opt.group_name + ) + + def as_dict(self) -> Dict[str, Any]: + """The names and values of all options. + + .. versionadded:: 3.1 + """ + return dict((opt.name, opt.value()) for name, opt in self._options.items()) + + def define( + self, + name: str, + default: Any = None, + type: type = None, + help: str = None, + metavar: str = None, + multiple: bool = False, + group: str = None, + callback: Callable[[Any], None] = None, + ) -> None: + """Defines a new command line option. + + ``type`` can be any of `str`, `int`, `float`, `bool`, + `~datetime.datetime`, or `~datetime.timedelta`. If no ``type`` + is given but a ``default`` is, ``type`` is the type of + ``default``. Otherwise, ``type`` defaults to `str`. + + If ``multiple`` is True, the option value is a list of ``type`` + instead of an instance of ``type``. + + ``help`` and ``metavar`` are used to construct the + automatically generated command line help string. The help + message is formatted like:: + + --name=METAVAR help string + + ``group`` is used to group the defined options in logical + groups. By default, command line options are grouped by the + file in which they are defined. + + Command line option names must be unique globally. + + If a ``callback`` is given, it will be run with the new value whenever + the option is changed. This can be used to combine command-line + and file-based options:: + + define("config", type=str, help="path to config file", + callback=lambda path: parse_config_file(path, final=False)) + + With this definition, options in the file specified by ``--config`` will + override options set earlier on the command line, but can be overridden + by later flags. + + """ + normalized = self._normalize_name(name) + if normalized in self._options: + raise Error( + "Option %r already defined in %s" + % (normalized, self._options[normalized].file_name) + ) + frame = sys._getframe(0) + options_file = frame.f_code.co_filename + + # Can be called directly, or through top level define() fn, in which + # case, step up above that frame to look for real caller. + if ( + frame.f_back.f_code.co_filename == options_file + and frame.f_back.f_code.co_name == "define" + ): + frame = frame.f_back + + file_name = frame.f_back.f_code.co_filename + if file_name == options_file: + file_name = "" + if type is None: + if not multiple and default is not None: + type = default.__class__ + else: + type = str + if group: + group_name = group # type: Optional[str] + else: + group_name = file_name + option = _Option( + name, + file_name=file_name, + default=default, + type=type, + help=help, + metavar=metavar, + multiple=multiple, + group_name=group_name, + callback=callback, + ) + self._options[normalized] = option + + def parse_command_line( + self, args: List[str] = None, final: bool = True + ) -> List[str]: + """Parses all options given on the command line (defaults to + `sys.argv`). + + Options look like ``--option=value`` and are parsed according + to their ``type``. For boolean options, ``--option`` is + equivalent to ``--option=true`` + + If the option has ``multiple=True``, comma-separated values + are accepted. For multi-value integer options, the syntax + ``x:y`` is also accepted and equivalent to ``range(x, y)``. + + Note that ``args[0]`` is ignored since it is the program name + in `sys.argv`. + + We return a list of all arguments that are not parsed as options. + + If ``final`` is ``False``, parse callbacks will not be run. + This is useful for applications that wish to combine configurations + from multiple sources. + + """ + if args is None: + args = sys.argv + remaining = [] # type: List[str] + for i in range(1, len(args)): + # All things after the last option are command line arguments + if not args[i].startswith("-"): + remaining = args[i:] + break + if args[i] == "--": + remaining = args[i + 1 :] + break + arg = args[i].lstrip("-") + name, equals, value = arg.partition("=") + name = self._normalize_name(name) + if name not in self._options: + self.print_help() + raise Error("Unrecognized command line option: %r" % name) + option = self._options[name] + if not equals: + if option.type == bool: + value = "true" + else: + raise Error("Option %r requires a value" % name) + option.parse(value) + + if final: + self.run_parse_callbacks() + + return remaining + + def parse_config_file(self, path: str, final: bool = True) -> None: + """Parses and loads the config file at the given path. + + The config file contains Python code that will be executed (so + it is **not safe** to use untrusted config files). Anything in + the global namespace that matches a defined option will be + used to set that option's value. + + Options may either be the specified type for the option or + strings (in which case they will be parsed the same way as in + `.parse_command_line`) + + Example (using the options defined in the top-level docs of + this module):: + + port = 80 + mysql_host = 'mydb.example.com:3306' + # Both lists and comma-separated strings are allowed for + # multiple=True. + memcache_hosts = ['cache1.example.com:11011', + 'cache2.example.com:11011'] + memcache_hosts = 'cache1.example.com:11011,cache2.example.com:11011' + + If ``final`` is ``False``, parse callbacks will not be run. + This is useful for applications that wish to combine configurations + from multiple sources. + + .. note:: + + `tornado.options` is primarily a command-line library. + Config file support is provided for applications that wish + to use it, but applications that prefer config files may + wish to look at other libraries instead. + + .. versionchanged:: 4.1 + Config files are now always interpreted as utf-8 instead of + the system default encoding. + + .. versionchanged:: 4.4 + The special variable ``__file__`` is available inside config + files, specifying the absolute path to the config file itself. + + .. versionchanged:: 5.1 + Added the ability to set options via strings in config files. + + """ + config = {"__file__": os.path.abspath(path)} + with open(path, "rb") as f: + exec_in(native_str(f.read()), config, config) + for name in config: + normalized = self._normalize_name(name) + if normalized in self._options: + option = self._options[normalized] + if option.multiple: + if not isinstance(config[name], (list, str)): + raise Error( + "Option %r is required to be a list of %s " + "or a comma-separated string" + % (option.name, option.type.__name__) + ) + + if type(config[name]) == str and option.type != str: + option.parse(config[name]) + else: + option.set(config[name]) + + if final: + self.run_parse_callbacks() + + def print_help(self, file: TextIO = None) -> None: + """Prints all the command line options to stderr (or another file).""" + if file is None: + file = sys.stderr + print("Usage: %s [OPTIONS]" % sys.argv[0], file=file) + print("\nOptions:\n", file=file) + by_group = {} # type: Dict[str, List[_Option]] + for option in self._options.values(): + by_group.setdefault(option.group_name, []).append(option) + + for filename, o in sorted(by_group.items()): + if filename: + print("\n%s options:\n" % os.path.normpath(filename), file=file) + o.sort(key=lambda option: option.name) + for option in o: + # Always print names with dashes in a CLI context. + prefix = self._normalize_name(option.name) + if option.metavar: + prefix += "=" + option.metavar + description = option.help or "" + if option.default is not None and option.default != "": + description += " (default %s)" % option.default + lines = textwrap.wrap(description, 79 - 35) + if len(prefix) > 30 or len(lines) == 0: + lines.insert(0, "") + print(" --%-30s %s" % (prefix, lines[0]), file=file) + for line in lines[1:]: + print("%-34s %s" % (" ", line), file=file) + print(file=file) + + def _help_callback(self, value: bool) -> None: + if value: + self.print_help() + sys.exit(0) + + def add_parse_callback(self, callback: Callable[[], None]) -> None: + """Adds a parse callback, to be invoked when option parsing is done.""" + self._parse_callbacks.append(callback) + + def run_parse_callbacks(self) -> None: + for callback in self._parse_callbacks: + callback() + + def mockable(self) -> "_Mockable": + """Returns a wrapper around self that is compatible with + `mock.patch `. + + The `mock.patch ` function (included in + the standard library `unittest.mock` package since Python 3.3, + or in the third-party ``mock`` package for older versions of + Python) is incompatible with objects like ``options`` that + override ``__getattr__`` and ``__setattr__``. This function + returns an object that can be used with `mock.patch.object + ` to modify option values:: + + with mock.patch.object(options.mockable(), 'name', value): + assert options.name == value + """ + return _Mockable(self) + + +class _Mockable(object): + """`mock.patch` compatible wrapper for `OptionParser`. + + As of ``mock`` version 1.0.1, when an object uses ``__getattr__`` + hooks instead of ``__dict__``, ``patch.__exit__`` tries to delete + the attribute it set instead of setting a new one (assuming that + the object does not catpure ``__setattr__``, so the patch + created a new attribute in ``__dict__``). + + _Mockable's getattr and setattr pass through to the underlying + OptionParser, and delattr undoes the effect of a previous setattr. + """ + + def __init__(self, options: OptionParser) -> None: + # Modify __dict__ directly to bypass __setattr__ + self.__dict__["_options"] = options + self.__dict__["_originals"] = {} + + def __getattr__(self, name: str) -> Any: + return getattr(self._options, name) + + def __setattr__(self, name: str, value: Any) -> None: + assert name not in self._originals, "don't reuse mockable objects" + self._originals[name] = getattr(self._options, name) + setattr(self._options, name, value) + + def __delattr__(self, name: str) -> None: + setattr(self._options, name, self._originals.pop(name)) + + +class _Option(object): + # This class could almost be made generic, but the way the types + # interact with the multiple argument makes this tricky. (default + # and the callback use List[T], but type is still Type[T]). + UNSET = object() + + def __init__( + self, + name: str, + default: Any = None, + type: type = None, + help: str = None, + metavar: str = None, + multiple: bool = False, + file_name: str = None, + group_name: str = None, + callback: Callable[[Any], None] = None, + ) -> None: + if default is None and multiple: + default = [] + self.name = name + if type is None: + raise ValueError("type must not be None") + self.type = type + self.help = help + self.metavar = metavar + self.multiple = multiple + self.file_name = file_name + self.group_name = group_name + self.callback = callback + self.default = default + self._value = _Option.UNSET # type: Any + + def value(self) -> Any: + return self.default if self._value is _Option.UNSET else self._value + + def parse(self, value: str) -> Any: + _parse = { + datetime.datetime: self._parse_datetime, + datetime.timedelta: self._parse_timedelta, + bool: self._parse_bool, + basestring_type: self._parse_string, + }.get( + self.type, self.type + ) # type: Callable[[str], Any] + if self.multiple: + self._value = [] + for part in value.split(","): + if issubclass(self.type, numbers.Integral): + # allow ranges of the form X:Y (inclusive at both ends) + lo_str, _, hi_str = part.partition(":") + lo = _parse(lo_str) + hi = _parse(hi_str) if hi_str else lo + self._value.extend(range(lo, hi + 1)) + else: + self._value.append(_parse(part)) + else: + self._value = _parse(value) + if self.callback is not None: + self.callback(self._value) + return self.value() + + def set(self, value: Any) -> None: + if self.multiple: + if not isinstance(value, list): + raise Error( + "Option %r is required to be a list of %s" + % (self.name, self.type.__name__) + ) + for item in value: + if item is not None and not isinstance(item, self.type): + raise Error( + "Option %r is required to be a list of %s" + % (self.name, self.type.__name__) + ) + else: + if value is not None and not isinstance(value, self.type): + raise Error( + "Option %r is required to be a %s (%s given)" + % (self.name, self.type.__name__, type(value)) + ) + self._value = value + if self.callback is not None: + self.callback(self._value) + + # Supported date/time formats in our options + _DATETIME_FORMATS = [ + "%a %b %d %H:%M:%S %Y", + "%Y-%m-%d %H:%M:%S", + "%Y-%m-%d %H:%M", + "%Y-%m-%dT%H:%M", + "%Y%m%d %H:%M:%S", + "%Y%m%d %H:%M", + "%Y-%m-%d", + "%Y%m%d", + "%H:%M:%S", + "%H:%M", + ] + + def _parse_datetime(self, value: str) -> datetime.datetime: + for format in self._DATETIME_FORMATS: + try: + return datetime.datetime.strptime(value, format) + except ValueError: + pass + raise Error("Unrecognized date/time format: %r" % value) + + _TIMEDELTA_ABBREV_DICT = { + "h": "hours", + "m": "minutes", + "min": "minutes", + "s": "seconds", + "sec": "seconds", + "ms": "milliseconds", + "us": "microseconds", + "d": "days", + "w": "weeks", + } + + _FLOAT_PATTERN = r"[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?" + + _TIMEDELTA_PATTERN = re.compile( + r"\s*(%s)\s*(\w*)\s*" % _FLOAT_PATTERN, re.IGNORECASE + ) + + def _parse_timedelta(self, value: str) -> datetime.timedelta: + try: + sum = datetime.timedelta() + start = 0 + while start < len(value): + m = self._TIMEDELTA_PATTERN.match(value, start) + if not m: + raise Exception() + num = float(m.group(1)) + units = m.group(2) or "seconds" + units = self._TIMEDELTA_ABBREV_DICT.get(units, units) + sum += datetime.timedelta(**{units: num}) + start = m.end() + return sum + except Exception: + raise + + def _parse_bool(self, value: str) -> bool: + return value.lower() not in ("false", "0", "f") + + def _parse_string(self, value: str) -> str: + return _unicode(value) + + +options = OptionParser() +"""Global options object. + +All defined options are available as attributes on this object. +""" + + +def define( + name: str, + default: Any = None, + type: type = None, + help: str = None, + metavar: str = None, + multiple: bool = False, + group: str = None, + callback: Callable[[Any], None] = None, +) -> None: + """Defines an option in the global namespace. + + See `OptionParser.define`. + """ + return options.define( + name, + default=default, + type=type, + help=help, + metavar=metavar, + multiple=multiple, + group=group, + callback=callback, + ) + + +def parse_command_line(args: List[str] = None, final: bool = True) -> List[str]: + """Parses global options from the command line. + + See `OptionParser.parse_command_line`. + """ + return options.parse_command_line(args, final=final) + + +def parse_config_file(path: str, final: bool = True) -> None: + """Parses global options from a config file. + + See `OptionParser.parse_config_file`. + """ + return options.parse_config_file(path, final=final) + + +def print_help(file: TextIO = None) -> None: + """Prints all the command line options to stderr (or another file). + + See `OptionParser.print_help`. + """ + return options.print_help(file) + + +def add_parse_callback(callback: Callable[[], None]) -> None: + """Adds a parse callback, to be invoked when option parsing is done. + + See `OptionParser.add_parse_callback` + """ + options.add_parse_callback(callback) + + +# Default options +define_logging_options(options) diff --git a/server/www/packages/packages-linux/x64/tornado/platform/asyncio.py b/server/www/packages/packages-linux/x64/tornado/platform/asyncio.py index 0b79f82..325a6fe 100644 --- a/server/www/packages/packages-linux/x64/tornado/platform/asyncio.py +++ b/server/www/packages/packages-linux/x64/tornado/platform/asyncio.py @@ -1,337 +1,346 @@ -"""Bridges between the `asyncio` module and Tornado IOLoop. - -.. versionadded:: 3.2 - -This module integrates Tornado with the ``asyncio`` module introduced -in Python 3.4. This makes it possible to combine the two libraries on -the same event loop. - -.. deprecated:: 5.0 - - While the code in this module is still used, it is now enabled - automatically when `asyncio` is available, so applications should - no longer need to refer to this module directly. - -.. note:: - - Tornado requires the `~asyncio.AbstractEventLoop.add_reader` family of - methods, so it is not compatible with the `~asyncio.ProactorEventLoop` on - Windows. Use the `~asyncio.SelectorEventLoop` instead. -""" - -import concurrent.futures -import functools - -from threading import get_ident -from tornado.gen import convert_yielded -from tornado.ioloop import IOLoop, _Selectable - -import asyncio - -import typing -from typing import Any, TypeVar, Awaitable, Callable, Union, Optional - -if typing.TYPE_CHECKING: - from typing import Set, Dict, Tuple # noqa: F401 - -_T = TypeVar("_T") - - -class BaseAsyncIOLoop(IOLoop): - def initialize( # type: ignore - self, asyncio_loop: asyncio.AbstractEventLoop, **kwargs: Any - ) -> None: - self.asyncio_loop = asyncio_loop - # Maps fd to (fileobj, handler function) pair (as in IOLoop.add_handler) - self.handlers = {} # type: Dict[int, Tuple[Union[int, _Selectable], Callable]] - # Set of fds listening for reads/writes - self.readers = set() # type: Set[int] - self.writers = set() # type: Set[int] - self.closing = False - # If an asyncio loop was closed through an asyncio interface - # instead of IOLoop.close(), we'd never hear about it and may - # have left a dangling reference in our map. In case an - # application (or, more likely, a test suite) creates and - # destroys a lot of event loops in this way, check here to - # ensure that we don't have a lot of dead loops building up in - # the map. - # - # TODO(bdarnell): consider making self.asyncio_loop a weakref - # for AsyncIOMainLoop and make _ioloop_for_asyncio a - # WeakKeyDictionary. - for loop in list(IOLoop._ioloop_for_asyncio): - if loop.is_closed(): - del IOLoop._ioloop_for_asyncio[loop] - IOLoop._ioloop_for_asyncio[asyncio_loop] = self - - self._thread_identity = 0 - - super(BaseAsyncIOLoop, self).initialize(**kwargs) - - def assign_thread_identity() -> None: - self._thread_identity = get_ident() - - self.add_callback(assign_thread_identity) - - def close(self, all_fds: bool = False) -> None: - self.closing = True - for fd in list(self.handlers): - fileobj, handler_func = self.handlers[fd] - self.remove_handler(fd) - if all_fds: - self.close_fd(fileobj) - # Remove the mapping before closing the asyncio loop. If this - # happened in the other order, we could race against another - # initialize() call which would see the closed asyncio loop, - # assume it was closed from the asyncio side, and do this - # cleanup for us, leading to a KeyError. - del IOLoop._ioloop_for_asyncio[self.asyncio_loop] - self.asyncio_loop.close() - - def add_handler( - self, fd: Union[int, _Selectable], handler: Callable[..., None], events: int - ) -> None: - fd, fileobj = self.split_fd(fd) - if fd in self.handlers: - raise ValueError("fd %s added twice" % fd) - self.handlers[fd] = (fileobj, handler) - if events & IOLoop.READ: - self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ) - self.readers.add(fd) - if events & IOLoop.WRITE: - self.asyncio_loop.add_writer(fd, self._handle_events, fd, IOLoop.WRITE) - self.writers.add(fd) - - def update_handler(self, fd: Union[int, _Selectable], events: int) -> None: - fd, fileobj = self.split_fd(fd) - if events & IOLoop.READ: - if fd not in self.readers: - self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ) - self.readers.add(fd) - else: - if fd in self.readers: - self.asyncio_loop.remove_reader(fd) - self.readers.remove(fd) - if events & IOLoop.WRITE: - if fd not in self.writers: - self.asyncio_loop.add_writer(fd, self._handle_events, fd, IOLoop.WRITE) - self.writers.add(fd) - else: - if fd in self.writers: - self.asyncio_loop.remove_writer(fd) - self.writers.remove(fd) - - def remove_handler(self, fd: Union[int, _Selectable]) -> None: - fd, fileobj = self.split_fd(fd) - if fd not in self.handlers: - return - if fd in self.readers: - self.asyncio_loop.remove_reader(fd) - self.readers.remove(fd) - if fd in self.writers: - self.asyncio_loop.remove_writer(fd) - self.writers.remove(fd) - del self.handlers[fd] - - def _handle_events(self, fd: int, events: int) -> None: - fileobj, handler_func = self.handlers[fd] - handler_func(fileobj, events) - - def start(self) -> None: - try: - old_loop = asyncio.get_event_loop() - except (RuntimeError, AssertionError): - old_loop = None # type: ignore - try: - self._setup_logging() - asyncio.set_event_loop(self.asyncio_loop) - self.asyncio_loop.run_forever() - finally: - asyncio.set_event_loop(old_loop) - - def stop(self) -> None: - self.asyncio_loop.stop() - - def call_at( - self, when: float, callback: Callable[..., None], *args: Any, **kwargs: Any - ) -> object: - # asyncio.call_at supports *args but not **kwargs, so bind them here. - # We do not synchronize self.time and asyncio_loop.time, so - # convert from absolute to relative. - return self.asyncio_loop.call_later( - max(0, when - self.time()), - self._run_callback, - functools.partial(callback, *args, **kwargs), - ) - - def remove_timeout(self, timeout: object) -> None: - timeout.cancel() # type: ignore - - def add_callback(self, callback: Callable, *args: Any, **kwargs: Any) -> None: - if get_ident() == self._thread_identity: - call_soon = self.asyncio_loop.call_soon - else: - call_soon = self.asyncio_loop.call_soon_threadsafe - try: - call_soon(self._run_callback, functools.partial(callback, *args, **kwargs)) - except RuntimeError: - # "Event loop is closed". Swallow the exception for - # consistency with PollIOLoop (and logical consistency - # with the fact that we can't guarantee that an - # add_callback that completes without error will - # eventually execute). - pass - - def add_callback_from_signal( - self, callback: Callable, *args: Any, **kwargs: Any - ) -> None: - try: - self.asyncio_loop.call_soon_threadsafe( - self._run_callback, functools.partial(callback, *args, **kwargs) - ) - except RuntimeError: - pass - - def run_in_executor( - self, - executor: Optional[concurrent.futures.Executor], - func: Callable[..., _T], - *args: Any - ) -> Awaitable[_T]: - return self.asyncio_loop.run_in_executor(executor, func, *args) - - def set_default_executor(self, executor: concurrent.futures.Executor) -> None: - return self.asyncio_loop.set_default_executor(executor) - - -class AsyncIOMainLoop(BaseAsyncIOLoop): - """``AsyncIOMainLoop`` creates an `.IOLoop` that corresponds to the - current ``asyncio`` event loop (i.e. the one returned by - ``asyncio.get_event_loop()``). - - .. deprecated:: 5.0 - - Now used automatically when appropriate; it is no longer necessary - to refer to this class directly. - - .. versionchanged:: 5.0 - - Closing an `AsyncIOMainLoop` now closes the underlying asyncio loop. - """ - - def initialize(self, **kwargs: Any) -> None: # type: ignore - super(AsyncIOMainLoop, self).initialize(asyncio.get_event_loop(), **kwargs) - - def make_current(self) -> None: - # AsyncIOMainLoop already refers to the current asyncio loop so - # nothing to do here. - pass - - -class AsyncIOLoop(BaseAsyncIOLoop): - """``AsyncIOLoop`` is an `.IOLoop` that runs on an ``asyncio`` event loop. - This class follows the usual Tornado semantics for creating new - ``IOLoops``; these loops are not necessarily related to the - ``asyncio`` default event loop. - - Each ``AsyncIOLoop`` creates a new ``asyncio.EventLoop``; this object - can be accessed with the ``asyncio_loop`` attribute. - - .. versionchanged:: 5.0 - - When an ``AsyncIOLoop`` becomes the current `.IOLoop`, it also sets - the current `asyncio` event loop. - - .. deprecated:: 5.0 - - Now used automatically when appropriate; it is no longer necessary - to refer to this class directly. - """ - - def initialize(self, **kwargs: Any) -> None: # type: ignore - self.is_current = False - loop = asyncio.new_event_loop() - try: - super(AsyncIOLoop, self).initialize(loop, **kwargs) - except Exception: - # If initialize() does not succeed (taking ownership of the loop), - # we have to close it. - loop.close() - raise - - def close(self, all_fds: bool = False) -> None: - if self.is_current: - self.clear_current() - super(AsyncIOLoop, self).close(all_fds=all_fds) - - def make_current(self) -> None: - if not self.is_current: - try: - self.old_asyncio = asyncio.get_event_loop() - except (RuntimeError, AssertionError): - self.old_asyncio = None # type: ignore - self.is_current = True - asyncio.set_event_loop(self.asyncio_loop) - - def _clear_current_hook(self) -> None: - if self.is_current: - asyncio.set_event_loop(self.old_asyncio) - self.is_current = False - - -def to_tornado_future(asyncio_future: asyncio.Future) -> asyncio.Future: - """Convert an `asyncio.Future` to a `tornado.concurrent.Future`. - - .. versionadded:: 4.1 - - .. deprecated:: 5.0 - Tornado ``Futures`` have been merged with `asyncio.Future`, - so this method is now a no-op. - """ - return asyncio_future - - -def to_asyncio_future(tornado_future: asyncio.Future) -> asyncio.Future: - """Convert a Tornado yieldable object to an `asyncio.Future`. - - .. versionadded:: 4.1 - - .. versionchanged:: 4.3 - Now accepts any yieldable object, not just - `tornado.concurrent.Future`. - - .. deprecated:: 5.0 - Tornado ``Futures`` have been merged with `asyncio.Future`, - so this method is now equivalent to `tornado.gen.convert_yielded`. - """ - return convert_yielded(tornado_future) - - -class AnyThreadEventLoopPolicy(asyncio.DefaultEventLoopPolicy): # type: ignore - """Event loop policy that allows loop creation on any thread. - - The default `asyncio` event loop policy only automatically creates - event loops in the main threads. Other threads must create event - loops explicitly or `asyncio.get_event_loop` (and therefore - `.IOLoop.current`) will fail. Installing this policy allows event - loops to be created automatically on any thread, matching the - behavior of Tornado versions prior to 5.0 (or 5.0 on Python 2). - - Usage:: - - asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy()) - - .. versionadded:: 5.0 - - """ - - def get_event_loop(self) -> asyncio.AbstractEventLoop: - try: - return super().get_event_loop() - except (RuntimeError, AssertionError): - # This was an AssertionError in python 3.4.2 (which ships with debian jessie) - # and changed to a RuntimeError in 3.4.3. - # "There is no current event loop in thread %r" - loop = self.new_event_loop() - self.set_event_loop(loop) - return loop +"""Bridges between the `asyncio` module and Tornado IOLoop. + +.. versionadded:: 3.2 + +This module integrates Tornado with the ``asyncio`` module introduced +in Python 3.4. This makes it possible to combine the two libraries on +the same event loop. + +.. deprecated:: 5.0 + + While the code in this module is still used, it is now enabled + automatically when `asyncio` is available, so applications should + no longer need to refer to this module directly. + +.. note:: + + Tornado requires the `~asyncio.AbstractEventLoop.add_reader` family of + methods, so it is not compatible with the `~asyncio.ProactorEventLoop` on + Windows. Use the `~asyncio.SelectorEventLoop` instead. +""" + +import concurrent.futures +import functools +import sys + +from threading import get_ident +from tornado.gen import convert_yielded +from tornado.ioloop import IOLoop, _Selectable + +import asyncio + +import typing +from typing import Any, TypeVar, Awaitable, Callable, Union, Optional + +if typing.TYPE_CHECKING: + from typing import Set, Dict, Tuple # noqa: F401 + +_T = TypeVar("_T") + + +class BaseAsyncIOLoop(IOLoop): + def initialize( # type: ignore + self, asyncio_loop: asyncio.AbstractEventLoop, **kwargs: Any + ) -> None: + self.asyncio_loop = asyncio_loop + # Maps fd to (fileobj, handler function) pair (as in IOLoop.add_handler) + self.handlers = {} # type: Dict[int, Tuple[Union[int, _Selectable], Callable]] + # Set of fds listening for reads/writes + self.readers = set() # type: Set[int] + self.writers = set() # type: Set[int] + self.closing = False + # If an asyncio loop was closed through an asyncio interface + # instead of IOLoop.close(), we'd never hear about it and may + # have left a dangling reference in our map. In case an + # application (or, more likely, a test suite) creates and + # destroys a lot of event loops in this way, check here to + # ensure that we don't have a lot of dead loops building up in + # the map. + # + # TODO(bdarnell): consider making self.asyncio_loop a weakref + # for AsyncIOMainLoop and make _ioloop_for_asyncio a + # WeakKeyDictionary. + for loop in list(IOLoop._ioloop_for_asyncio): + if loop.is_closed(): + del IOLoop._ioloop_for_asyncio[loop] + IOLoop._ioloop_for_asyncio[asyncio_loop] = self + + self._thread_identity = 0 + + super(BaseAsyncIOLoop, self).initialize(**kwargs) + + def assign_thread_identity() -> None: + self._thread_identity = get_ident() + + self.add_callback(assign_thread_identity) + + def close(self, all_fds: bool = False) -> None: + self.closing = True + for fd in list(self.handlers): + fileobj, handler_func = self.handlers[fd] + self.remove_handler(fd) + if all_fds: + self.close_fd(fileobj) + # Remove the mapping before closing the asyncio loop. If this + # happened in the other order, we could race against another + # initialize() call which would see the closed asyncio loop, + # assume it was closed from the asyncio side, and do this + # cleanup for us, leading to a KeyError. + del IOLoop._ioloop_for_asyncio[self.asyncio_loop] + self.asyncio_loop.close() + + def add_handler( + self, fd: Union[int, _Selectable], handler: Callable[..., None], events: int + ) -> None: + fd, fileobj = self.split_fd(fd) + if fd in self.handlers: + raise ValueError("fd %s added twice" % fd) + self.handlers[fd] = (fileobj, handler) + if events & IOLoop.READ: + self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ) + self.readers.add(fd) + if events & IOLoop.WRITE: + self.asyncio_loop.add_writer(fd, self._handle_events, fd, IOLoop.WRITE) + self.writers.add(fd) + + def update_handler(self, fd: Union[int, _Selectable], events: int) -> None: + fd, fileobj = self.split_fd(fd) + if events & IOLoop.READ: + if fd not in self.readers: + self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ) + self.readers.add(fd) + else: + if fd in self.readers: + self.asyncio_loop.remove_reader(fd) + self.readers.remove(fd) + if events & IOLoop.WRITE: + if fd not in self.writers: + self.asyncio_loop.add_writer(fd, self._handle_events, fd, IOLoop.WRITE) + self.writers.add(fd) + else: + if fd in self.writers: + self.asyncio_loop.remove_writer(fd) + self.writers.remove(fd) + + def remove_handler(self, fd: Union[int, _Selectable]) -> None: + fd, fileobj = self.split_fd(fd) + if fd not in self.handlers: + return + if fd in self.readers: + self.asyncio_loop.remove_reader(fd) + self.readers.remove(fd) + if fd in self.writers: + self.asyncio_loop.remove_writer(fd) + self.writers.remove(fd) + del self.handlers[fd] + + def _handle_events(self, fd: int, events: int) -> None: + fileobj, handler_func = self.handlers[fd] + handler_func(fileobj, events) + + def start(self) -> None: + try: + old_loop = asyncio.get_event_loop() + except (RuntimeError, AssertionError): + old_loop = None # type: ignore + try: + self._setup_logging() + asyncio.set_event_loop(self.asyncio_loop) + self.asyncio_loop.run_forever() + finally: + asyncio.set_event_loop(old_loop) + + def stop(self) -> None: + self.asyncio_loop.stop() + + def call_at( + self, when: float, callback: Callable[..., None], *args: Any, **kwargs: Any + ) -> object: + # asyncio.call_at supports *args but not **kwargs, so bind them here. + # We do not synchronize self.time and asyncio_loop.time, so + # convert from absolute to relative. + return self.asyncio_loop.call_later( + max(0, when - self.time()), + self._run_callback, + functools.partial(callback, *args, **kwargs), + ) + + def remove_timeout(self, timeout: object) -> None: + timeout.cancel() # type: ignore + + def add_callback(self, callback: Callable, *args: Any, **kwargs: Any) -> None: + if get_ident() == self._thread_identity: + call_soon = self.asyncio_loop.call_soon + else: + call_soon = self.asyncio_loop.call_soon_threadsafe + try: + call_soon(self._run_callback, functools.partial(callback, *args, **kwargs)) + except RuntimeError: + # "Event loop is closed". Swallow the exception for + # consistency with PollIOLoop (and logical consistency + # with the fact that we can't guarantee that an + # add_callback that completes without error will + # eventually execute). + pass + + def add_callback_from_signal( + self, callback: Callable, *args: Any, **kwargs: Any + ) -> None: + try: + self.asyncio_loop.call_soon_threadsafe( + self._run_callback, functools.partial(callback, *args, **kwargs) + ) + except RuntimeError: + pass + + def run_in_executor( + self, + executor: Optional[concurrent.futures.Executor], + func: Callable[..., _T], + *args: Any + ) -> Awaitable[_T]: + return self.asyncio_loop.run_in_executor(executor, func, *args) + + def set_default_executor(self, executor: concurrent.futures.Executor) -> None: + return self.asyncio_loop.set_default_executor(executor) + + +class AsyncIOMainLoop(BaseAsyncIOLoop): + """``AsyncIOMainLoop`` creates an `.IOLoop` that corresponds to the + current ``asyncio`` event loop (i.e. the one returned by + ``asyncio.get_event_loop()``). + + .. deprecated:: 5.0 + + Now used automatically when appropriate; it is no longer necessary + to refer to this class directly. + + .. versionchanged:: 5.0 + + Closing an `AsyncIOMainLoop` now closes the underlying asyncio loop. + """ + + def initialize(self, **kwargs: Any) -> None: # type: ignore + super(AsyncIOMainLoop, self).initialize(asyncio.get_event_loop(), **kwargs) + + def make_current(self) -> None: + # AsyncIOMainLoop already refers to the current asyncio loop so + # nothing to do here. + pass + + +class AsyncIOLoop(BaseAsyncIOLoop): + """``AsyncIOLoop`` is an `.IOLoop` that runs on an ``asyncio`` event loop. + This class follows the usual Tornado semantics for creating new + ``IOLoops``; these loops are not necessarily related to the + ``asyncio`` default event loop. + + Each ``AsyncIOLoop`` creates a new ``asyncio.EventLoop``; this object + can be accessed with the ``asyncio_loop`` attribute. + + .. versionchanged:: 5.0 + + When an ``AsyncIOLoop`` becomes the current `.IOLoop`, it also sets + the current `asyncio` event loop. + + .. deprecated:: 5.0 + + Now used automatically when appropriate; it is no longer necessary + to refer to this class directly. + """ + + def initialize(self, **kwargs: Any) -> None: # type: ignore + self.is_current = False + loop = asyncio.new_event_loop() + try: + super(AsyncIOLoop, self).initialize(loop, **kwargs) + except Exception: + # If initialize() does not succeed (taking ownership of the loop), + # we have to close it. + loop.close() + raise + + def close(self, all_fds: bool = False) -> None: + if self.is_current: + self.clear_current() + super(AsyncIOLoop, self).close(all_fds=all_fds) + + def make_current(self) -> None: + if not self.is_current: + try: + self.old_asyncio = asyncio.get_event_loop() + except (RuntimeError, AssertionError): + self.old_asyncio = None # type: ignore + self.is_current = True + asyncio.set_event_loop(self.asyncio_loop) + + def _clear_current_hook(self) -> None: + if self.is_current: + asyncio.set_event_loop(self.old_asyncio) + self.is_current = False + + +def to_tornado_future(asyncio_future: asyncio.Future) -> asyncio.Future: + """Convert an `asyncio.Future` to a `tornado.concurrent.Future`. + + .. versionadded:: 4.1 + + .. deprecated:: 5.0 + Tornado ``Futures`` have been merged with `asyncio.Future`, + so this method is now a no-op. + """ + return asyncio_future + + +def to_asyncio_future(tornado_future: asyncio.Future) -> asyncio.Future: + """Convert a Tornado yieldable object to an `asyncio.Future`. + + .. versionadded:: 4.1 + + .. versionchanged:: 4.3 + Now accepts any yieldable object, not just + `tornado.concurrent.Future`. + + .. deprecated:: 5.0 + Tornado ``Futures`` have been merged with `asyncio.Future`, + so this method is now equivalent to `tornado.gen.convert_yielded`. + """ + return convert_yielded(tornado_future) + + +if sys.platform == "win32" and hasattr(asyncio, "WindowsSelectorEventLoopPolicy"): + # "Any thread" and "selector" should be orthogonal, but there's not a clean + # interface for composing policies so pick the right base. + _BasePolicy = asyncio.WindowsSelectorEventLoopPolicy # type: ignore +else: + _BasePolicy = asyncio.DefaultEventLoopPolicy + + +class AnyThreadEventLoopPolicy(_BasePolicy): # type: ignore + """Event loop policy that allows loop creation on any thread. + + The default `asyncio` event loop policy only automatically creates + event loops in the main threads. Other threads must create event + loops explicitly or `asyncio.get_event_loop` (and therefore + `.IOLoop.current`) will fail. Installing this policy allows event + loops to be created automatically on any thread, matching the + behavior of Tornado versions prior to 5.0 (or 5.0 on Python 2). + + Usage:: + + asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy()) + + .. versionadded:: 5.0 + + """ + + def get_event_loop(self) -> asyncio.AbstractEventLoop: + try: + return super().get_event_loop() + except (RuntimeError, AssertionError): + # This was an AssertionError in python 3.4.2 (which ships with debian jessie) + # and changed to a RuntimeError in 3.4.3. + # "There is no current event loop in thread %r" + loop = self.new_event_loop() + self.set_event_loop(loop) + return loop diff --git a/server/www/packages/packages-linux/x64/tornado/platform/auto.py b/server/www/packages/packages-linux/x64/tornado/platform/auto.py index 4f1b6ac..c85be11 100644 --- a/server/www/packages/packages-linux/x64/tornado/platform/auto.py +++ b/server/www/packages/packages-linux/x64/tornado/platform/auto.py @@ -1,32 +1,32 @@ -# -# Copyright 2011 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Implementation of platform-specific functionality. - -For each function or class described in `tornado.platform.interface`, -the appropriate platform-specific implementation exists in this module. -Most code that needs access to this functionality should do e.g.:: - - from tornado.platform.auto import set_close_exec -""" - -import os - -if os.name == "nt": - from tornado.platform.windows import set_close_exec -else: - from tornado.platform.posix import set_close_exec - -__all__ = ["set_close_exec"] +# +# Copyright 2011 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Implementation of platform-specific functionality. + +For each function or class described in `tornado.platform.interface`, +the appropriate platform-specific implementation exists in this module. +Most code that needs access to this functionality should do e.g.:: + + from tornado.platform.auto import set_close_exec +""" + +import os + +if os.name == "nt": + from tornado.platform.windows import set_close_exec +else: + from tornado.platform.posix import set_close_exec + +__all__ = ["set_close_exec"] diff --git a/server/www/packages/packages-linux/x64/tornado/platform/caresresolver.py b/server/www/packages/packages-linux/x64/tornado/platform/caresresolver.py index e2c5009..97dd794 100644 --- a/server/www/packages/packages-linux/x64/tornado/platform/caresresolver.py +++ b/server/www/packages/packages-linux/x64/tornado/platform/caresresolver.py @@ -1,89 +1,89 @@ -import pycares # type: ignore -import socket - -from tornado.concurrent import Future -from tornado import gen -from tornado.ioloop import IOLoop -from tornado.netutil import Resolver, is_valid_ip - -import typing - -if typing.TYPE_CHECKING: - from typing import Generator, Any, List, Tuple, Dict # noqa: F401 - - -class CaresResolver(Resolver): - """Name resolver based on the c-ares library. - - This is a non-blocking and non-threaded resolver. It may not produce - the same results as the system resolver, but can be used for non-blocking - resolution when threads cannot be used. - - c-ares fails to resolve some names when ``family`` is ``AF_UNSPEC``, - so it is only recommended for use in ``AF_INET`` (i.e. IPv4). This is - the default for ``tornado.simple_httpclient``, but other libraries - may default to ``AF_UNSPEC``. - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been removed. - """ - - def initialize(self) -> None: - self.io_loop = IOLoop.current() - self.channel = pycares.Channel(sock_state_cb=self._sock_state_cb) - self.fds = {} # type: Dict[int, int] - - def _sock_state_cb(self, fd: int, readable: bool, writable: bool) -> None: - state = (IOLoop.READ if readable else 0) | (IOLoop.WRITE if writable else 0) - if not state: - self.io_loop.remove_handler(fd) - del self.fds[fd] - elif fd in self.fds: - self.io_loop.update_handler(fd, state) - self.fds[fd] = state - else: - self.io_loop.add_handler(fd, self._handle_events, state) - self.fds[fd] = state - - def _handle_events(self, fd: int, events: int) -> None: - read_fd = pycares.ARES_SOCKET_BAD - write_fd = pycares.ARES_SOCKET_BAD - if events & IOLoop.READ: - read_fd = fd - if events & IOLoop.WRITE: - write_fd = fd - self.channel.process_fd(read_fd, write_fd) - - @gen.coroutine - def resolve( - self, host: str, port: int, family: int = 0 - ) -> "Generator[Any, Any, List[Tuple[int, Any]]]": - if is_valid_ip(host): - addresses = [host] - else: - # gethostbyname doesn't take callback as a kwarg - fut = Future() # type: Future[Tuple[Any, Any]] - self.channel.gethostbyname( - host, family, lambda result, error: fut.set_result((result, error)) - ) - result, error = yield fut - if error: - raise IOError( - "C-Ares returned error %s: %s while resolving %s" - % (error, pycares.errno.strerror(error), host) - ) - addresses = result.addresses - addrinfo = [] - for address in addresses: - if "." in address: - address_family = socket.AF_INET - elif ":" in address: - address_family = socket.AF_INET6 - else: - address_family = socket.AF_UNSPEC - if family != socket.AF_UNSPEC and family != address_family: - raise IOError( - "Requested socket family %d but got %d" % (family, address_family) - ) - addrinfo.append((typing.cast(int, address_family), (address, port))) - return addrinfo +import pycares # type: ignore +import socket + +from tornado.concurrent import Future +from tornado import gen +from tornado.ioloop import IOLoop +from tornado.netutil import Resolver, is_valid_ip + +import typing + +if typing.TYPE_CHECKING: + from typing import Generator, Any, List, Tuple, Dict # noqa: F401 + + +class CaresResolver(Resolver): + """Name resolver based on the c-ares library. + + This is a non-blocking and non-threaded resolver. It may not produce + the same results as the system resolver, but can be used for non-blocking + resolution when threads cannot be used. + + c-ares fails to resolve some names when ``family`` is ``AF_UNSPEC``, + so it is only recommended for use in ``AF_INET`` (i.e. IPv4). This is + the default for ``tornado.simple_httpclient``, but other libraries + may default to ``AF_UNSPEC``. + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been removed. + """ + + def initialize(self) -> None: + self.io_loop = IOLoop.current() + self.channel = pycares.Channel(sock_state_cb=self._sock_state_cb) + self.fds = {} # type: Dict[int, int] + + def _sock_state_cb(self, fd: int, readable: bool, writable: bool) -> None: + state = (IOLoop.READ if readable else 0) | (IOLoop.WRITE if writable else 0) + if not state: + self.io_loop.remove_handler(fd) + del self.fds[fd] + elif fd in self.fds: + self.io_loop.update_handler(fd, state) + self.fds[fd] = state + else: + self.io_loop.add_handler(fd, self._handle_events, state) + self.fds[fd] = state + + def _handle_events(self, fd: int, events: int) -> None: + read_fd = pycares.ARES_SOCKET_BAD + write_fd = pycares.ARES_SOCKET_BAD + if events & IOLoop.READ: + read_fd = fd + if events & IOLoop.WRITE: + write_fd = fd + self.channel.process_fd(read_fd, write_fd) + + @gen.coroutine + def resolve( + self, host: str, port: int, family: int = 0 + ) -> "Generator[Any, Any, List[Tuple[int, Any]]]": + if is_valid_ip(host): + addresses = [host] + else: + # gethostbyname doesn't take callback as a kwarg + fut = Future() # type: Future[Tuple[Any, Any]] + self.channel.gethostbyname( + host, family, lambda result, error: fut.set_result((result, error)) + ) + result, error = yield fut + if error: + raise IOError( + "C-Ares returned error %s: %s while resolving %s" + % (error, pycares.errno.strerror(error), host) + ) + addresses = result.addresses + addrinfo = [] + for address in addresses: + if "." in address: + address_family = socket.AF_INET + elif ":" in address: + address_family = socket.AF_INET6 + else: + address_family = socket.AF_UNSPEC + if family != socket.AF_UNSPEC and family != address_family: + raise IOError( + "Requested socket family %d but got %d" % (family, address_family) + ) + addrinfo.append((typing.cast(int, address_family), (address, port))) + return addrinfo diff --git a/server/www/packages/packages-linux/x64/tornado/platform/interface.py b/server/www/packages/packages-linux/x64/tornado/platform/interface.py index 11afdb1..cc48536 100644 --- a/server/www/packages/packages-linux/x64/tornado/platform/interface.py +++ b/server/www/packages/packages-linux/x64/tornado/platform/interface.py @@ -1,26 +1,26 @@ -# -# Copyright 2011 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Interfaces for platform-specific functionality. - -This module exists primarily for documentation purposes and as base classes -for other tornado.platform modules. Most code should import the appropriate -implementation from `tornado.platform.auto`. -""" - - -def set_close_exec(fd: int) -> None: - """Sets the close-on-exec bit (``FD_CLOEXEC``)for a file descriptor.""" - raise NotImplementedError() +# +# Copyright 2011 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Interfaces for platform-specific functionality. + +This module exists primarily for documentation purposes and as base classes +for other tornado.platform modules. Most code should import the appropriate +implementation from `tornado.platform.auto`. +""" + + +def set_close_exec(fd: int) -> None: + """Sets the close-on-exec bit (``FD_CLOEXEC``)for a file descriptor.""" + raise NotImplementedError() diff --git a/server/www/packages/packages-linux/x64/tornado/platform/posix.py b/server/www/packages/packages-linux/x64/tornado/platform/posix.py index 0ab27ca..6e66f4e 100644 --- a/server/www/packages/packages-linux/x64/tornado/platform/posix.py +++ b/server/www/packages/packages-linux/x64/tornado/platform/posix.py @@ -1,29 +1,29 @@ -# -# Copyright 2011 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Posix implementations of platform-specific functionality.""" - -import fcntl -import os - - -def set_close_exec(fd: int) -> None: - flags = fcntl.fcntl(fd, fcntl.F_GETFD) - fcntl.fcntl(fd, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC) - - -def _set_nonblocking(fd: int) -> None: - flags = fcntl.fcntl(fd, fcntl.F_GETFL) - fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK) +# +# Copyright 2011 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Posix implementations of platform-specific functionality.""" + +import fcntl +import os + + +def set_close_exec(fd: int) -> None: + flags = fcntl.fcntl(fd, fcntl.F_GETFD) + fcntl.fcntl(fd, fcntl.F_SETFD, flags | fcntl.FD_CLOEXEC) + + +def _set_nonblocking(fd: int) -> None: + flags = fcntl.fcntl(fd, fcntl.F_GETFL) + fcntl.fcntl(fd, fcntl.F_SETFL, flags | os.O_NONBLOCK) diff --git a/server/www/packages/packages-linux/x64/tornado/platform/twisted.py b/server/www/packages/packages-linux/x64/tornado/platform/twisted.py index 3881631..2be54cf 100644 --- a/server/www/packages/packages-linux/x64/tornado/platform/twisted.py +++ b/server/www/packages/packages-linux/x64/tornado/platform/twisted.py @@ -1,131 +1,131 @@ -# Author: Ovidiu Predescu -# Date: July 2011 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -"""Bridges between the Twisted reactor and Tornado IOLoop. - -This module lets you run applications and libraries written for -Twisted in a Tornado application. It can be used in two modes, -depending on which library's underlying event loop you want to use. - -This module has been tested with Twisted versions 11.0.0 and newer. -""" - -import socket -import sys - -import twisted.internet.abstract # type: ignore -import twisted.internet.asyncioreactor # type: ignore -from twisted.internet.defer import Deferred # type: ignore -from twisted.python import failure # type: ignore -import twisted.names.cache # type: ignore -import twisted.names.client # type: ignore -import twisted.names.hosts # type: ignore -import twisted.names.resolve # type: ignore - - -from tornado.concurrent import Future, future_set_exc_info -from tornado.escape import utf8 -from tornado import gen -from tornado.netutil import Resolver - -import typing - -if typing.TYPE_CHECKING: - from typing import Generator, Any, List, Tuple # noqa: F401 - - -class TwistedResolver(Resolver): - """Twisted-based asynchronous resolver. - - This is a non-blocking and non-threaded resolver. It is - recommended only when threads cannot be used, since it has - limitations compared to the standard ``getaddrinfo``-based - `~tornado.netutil.Resolver` and - `~tornado.netutil.DefaultExecutorResolver`. Specifically, it returns at - most one result, and arguments other than ``host`` and ``family`` - are ignored. It may fail to resolve when ``family`` is not - ``socket.AF_UNSPEC``. - - Requires Twisted 12.1 or newer. - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been removed. - """ - - def initialize(self) -> None: - # partial copy of twisted.names.client.createResolver, which doesn't - # allow for a reactor to be passed in. - self.reactor = twisted.internet.asyncioreactor.AsyncioSelectorReactor() - - host_resolver = twisted.names.hosts.Resolver("/etc/hosts") - cache_resolver = twisted.names.cache.CacheResolver(reactor=self.reactor) - real_resolver = twisted.names.client.Resolver( - "/etc/resolv.conf", reactor=self.reactor - ) - self.resolver = twisted.names.resolve.ResolverChain( - [host_resolver, cache_resolver, real_resolver] - ) - - @gen.coroutine - def resolve( - self, host: str, port: int, family: int = 0 - ) -> "Generator[Any, Any, List[Tuple[int, Any]]]": - # getHostByName doesn't accept IP addresses, so if the input - # looks like an IP address just return it immediately. - if twisted.internet.abstract.isIPAddress(host): - resolved = host - resolved_family = socket.AF_INET - elif twisted.internet.abstract.isIPv6Address(host): - resolved = host - resolved_family = socket.AF_INET6 - else: - deferred = self.resolver.getHostByName(utf8(host)) - fut = Future() # type: Future[Any] - deferred.addBoth(fut.set_result) - resolved = yield fut - if isinstance(resolved, failure.Failure): - try: - resolved.raiseException() - except twisted.names.error.DomainError as e: - raise IOError(e) - elif twisted.internet.abstract.isIPAddress(resolved): - resolved_family = socket.AF_INET - elif twisted.internet.abstract.isIPv6Address(resolved): - resolved_family = socket.AF_INET6 - else: - resolved_family = socket.AF_UNSPEC - if family != socket.AF_UNSPEC and family != resolved_family: - raise Exception( - "Requested socket family %d but got %d" % (family, resolved_family) - ) - result = [(typing.cast(int, resolved_family), (resolved, port))] - return result - - -if hasattr(gen.convert_yielded, "register"): - - @gen.convert_yielded.register(Deferred) # type: ignore - def _(d: Deferred) -> Future: - f = Future() # type: Future[Any] - - def errback(failure: failure.Failure) -> None: - try: - failure.raiseException() - # Should never happen, but just in case - raise Exception("errback called without error") - except: - future_set_exc_info(f, sys.exc_info()) - - d.addCallbacks(f.set_result, errback) - return f +# Author: Ovidiu Predescu +# Date: July 2011 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +"""Bridges between the Twisted reactor and Tornado IOLoop. + +This module lets you run applications and libraries written for +Twisted in a Tornado application. It can be used in two modes, +depending on which library's underlying event loop you want to use. + +This module has been tested with Twisted versions 11.0.0 and newer. +""" + +import socket +import sys + +import twisted.internet.abstract # type: ignore +import twisted.internet.asyncioreactor # type: ignore +from twisted.internet.defer import Deferred # type: ignore +from twisted.python import failure # type: ignore +import twisted.names.cache # type: ignore +import twisted.names.client # type: ignore +import twisted.names.hosts # type: ignore +import twisted.names.resolve # type: ignore + + +from tornado.concurrent import Future, future_set_exc_info +from tornado.escape import utf8 +from tornado import gen +from tornado.netutil import Resolver + +import typing + +if typing.TYPE_CHECKING: + from typing import Generator, Any, List, Tuple # noqa: F401 + + +class TwistedResolver(Resolver): + """Twisted-based asynchronous resolver. + + This is a non-blocking and non-threaded resolver. It is + recommended only when threads cannot be used, since it has + limitations compared to the standard ``getaddrinfo``-based + `~tornado.netutil.Resolver` and + `~tornado.netutil.DefaultExecutorResolver`. Specifically, it returns at + most one result, and arguments other than ``host`` and ``family`` + are ignored. It may fail to resolve when ``family`` is not + ``socket.AF_UNSPEC``. + + Requires Twisted 12.1 or newer. + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been removed. + """ + + def initialize(self) -> None: + # partial copy of twisted.names.client.createResolver, which doesn't + # allow for a reactor to be passed in. + self.reactor = twisted.internet.asyncioreactor.AsyncioSelectorReactor() + + host_resolver = twisted.names.hosts.Resolver("/etc/hosts") + cache_resolver = twisted.names.cache.CacheResolver(reactor=self.reactor) + real_resolver = twisted.names.client.Resolver( + "/etc/resolv.conf", reactor=self.reactor + ) + self.resolver = twisted.names.resolve.ResolverChain( + [host_resolver, cache_resolver, real_resolver] + ) + + @gen.coroutine + def resolve( + self, host: str, port: int, family: int = 0 + ) -> "Generator[Any, Any, List[Tuple[int, Any]]]": + # getHostByName doesn't accept IP addresses, so if the input + # looks like an IP address just return it immediately. + if twisted.internet.abstract.isIPAddress(host): + resolved = host + resolved_family = socket.AF_INET + elif twisted.internet.abstract.isIPv6Address(host): + resolved = host + resolved_family = socket.AF_INET6 + else: + deferred = self.resolver.getHostByName(utf8(host)) + fut = Future() # type: Future[Any] + deferred.addBoth(fut.set_result) + resolved = yield fut + if isinstance(resolved, failure.Failure): + try: + resolved.raiseException() + except twisted.names.error.DomainError as e: + raise IOError(e) + elif twisted.internet.abstract.isIPAddress(resolved): + resolved_family = socket.AF_INET + elif twisted.internet.abstract.isIPv6Address(resolved): + resolved_family = socket.AF_INET6 + else: + resolved_family = socket.AF_UNSPEC + if family != socket.AF_UNSPEC and family != resolved_family: + raise Exception( + "Requested socket family %d but got %d" % (family, resolved_family) + ) + result = [(typing.cast(int, resolved_family), (resolved, port))] + return result + + +if hasattr(gen.convert_yielded, "register"): + + @gen.convert_yielded.register(Deferred) # type: ignore + def _(d: Deferred) -> Future: + f = Future() # type: Future[Any] + + def errback(failure: failure.Failure) -> None: + try: + failure.raiseException() + # Should never happen, but just in case + raise Exception("errback called without error") + except: + future_set_exc_info(f, sys.exc_info()) + + d.addCallbacks(f.set_result, errback) + return f diff --git a/server/www/packages/packages-linux/x64/tornado/platform/windows.py b/server/www/packages/packages-linux/x64/tornado/platform/windows.py index ddbde20..9e859e6 100644 --- a/server/www/packages/packages-linux/x64/tornado/platform/windows.py +++ b/server/www/packages/packages-linux/x64/tornado/platform/windows.py @@ -1,22 +1,22 @@ -# NOTE: win32 support is currently experimental, and not recommended -# for production use. - -import ctypes -import ctypes.wintypes - -# See: http://msdn.microsoft.com/en-us/library/ms724935(VS.85).aspx -SetHandleInformation = ctypes.windll.kernel32.SetHandleInformation # type: ignore -SetHandleInformation.argtypes = ( - ctypes.wintypes.HANDLE, - ctypes.wintypes.DWORD, - ctypes.wintypes.DWORD, -) -SetHandleInformation.restype = ctypes.wintypes.BOOL - -HANDLE_FLAG_INHERIT = 0x00000001 - - -def set_close_exec(fd: int) -> None: - success = SetHandleInformation(fd, HANDLE_FLAG_INHERIT, 0) - if not success: - raise ctypes.WinError() # type: ignore +# NOTE: win32 support is currently experimental, and not recommended +# for production use. + +import ctypes +import ctypes.wintypes + +# See: http://msdn.microsoft.com/en-us/library/ms724935(VS.85).aspx +SetHandleInformation = ctypes.windll.kernel32.SetHandleInformation # type: ignore +SetHandleInformation.argtypes = ( + ctypes.wintypes.HANDLE, + ctypes.wintypes.DWORD, + ctypes.wintypes.DWORD, +) +SetHandleInformation.restype = ctypes.wintypes.BOOL + +HANDLE_FLAG_INHERIT = 0x00000001 + + +def set_close_exec(fd: int) -> None: + success = SetHandleInformation(fd, HANDLE_FLAG_INHERIT, 0) + if not success: + raise ctypes.WinError() # type: ignore diff --git a/server/www/packages/packages-linux/x64/tornado/process.py b/server/www/packages/packages-linux/x64/tornado/process.py index c1a5fce..6ed42a0 100644 --- a/server/www/packages/packages-linux/x64/tornado/process.py +++ b/server/www/packages/packages-linux/x64/tornado/process.py @@ -1,373 +1,373 @@ -# -# Copyright 2011 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Utilities for working with multiple processes, including both forking -the server into multiple processes and managing subprocesses. -""" - -import errno -import os -import multiprocessing -import signal -import subprocess -import sys -import time - -from binascii import hexlify - -from tornado.concurrent import ( - Future, - future_set_result_unless_cancelled, - future_set_exception_unless_cancelled, -) -from tornado import ioloop -from tornado.iostream import PipeIOStream -from tornado.log import gen_log -from tornado.platform.auto import set_close_exec -from tornado.util import errno_from_exception - -import typing -from typing import Tuple, Optional, Any, Callable - -if typing.TYPE_CHECKING: - from typing import List # noqa: F401 - -# Re-export this exception for convenience. -CalledProcessError = subprocess.CalledProcessError - - -def cpu_count() -> int: - """Returns the number of processors on this machine.""" - if multiprocessing is None: - return 1 - try: - return multiprocessing.cpu_count() - except NotImplementedError: - pass - try: - return os.sysconf("SC_NPROCESSORS_CONF") - except (AttributeError, ValueError): - pass - gen_log.error("Could not detect number of processors; assuming 1") - return 1 - - -def _reseed_random() -> None: - if "random" not in sys.modules: - return - import random - - # If os.urandom is available, this method does the same thing as - # random.seed (at least as of python 2.6). If os.urandom is not - # available, we mix in the pid in addition to a timestamp. - try: - seed = int(hexlify(os.urandom(16)), 16) - except NotImplementedError: - seed = int(time.time() * 1000) ^ os.getpid() - random.seed(seed) - - -def _pipe_cloexec() -> Tuple[int, int]: - r, w = os.pipe() - set_close_exec(r) - set_close_exec(w) - return r, w - - -_task_id = None - - -def fork_processes(num_processes: Optional[int], max_restarts: int = None) -> int: - """Starts multiple worker processes. - - If ``num_processes`` is None or <= 0, we detect the number of cores - available on this machine and fork that number of child - processes. If ``num_processes`` is given and > 0, we fork that - specific number of sub-processes. - - Since we use processes and not threads, there is no shared memory - between any server code. - - Note that multiple processes are not compatible with the autoreload - module (or the ``autoreload=True`` option to `tornado.web.Application` - which defaults to True when ``debug=True``). - When using multiple processes, no IOLoops can be created or - referenced until after the call to ``fork_processes``. - - In each child process, ``fork_processes`` returns its *task id*, a - number between 0 and ``num_processes``. Processes that exit - abnormally (due to a signal or non-zero exit status) are restarted - with the same id (up to ``max_restarts`` times). In the parent - process, ``fork_processes`` returns None if all child processes - have exited normally, but will otherwise only exit by throwing an - exception. - - max_restarts defaults to 100. - """ - if max_restarts is None: - max_restarts = 100 - - global _task_id - assert _task_id is None - if num_processes is None or num_processes <= 0: - num_processes = cpu_count() - gen_log.info("Starting %d processes", num_processes) - children = {} - - def start_child(i: int) -> Optional[int]: - pid = os.fork() - if pid == 0: - # child process - _reseed_random() - global _task_id - _task_id = i - return i - else: - children[pid] = i - return None - - for i in range(num_processes): - id = start_child(i) - if id is not None: - return id - num_restarts = 0 - while children: - try: - pid, status = os.wait() - except OSError as e: - if errno_from_exception(e) == errno.EINTR: - continue - raise - if pid not in children: - continue - id = children.pop(pid) - if os.WIFSIGNALED(status): - gen_log.warning( - "child %d (pid %d) killed by signal %d, restarting", - id, - pid, - os.WTERMSIG(status), - ) - elif os.WEXITSTATUS(status) != 0: - gen_log.warning( - "child %d (pid %d) exited with status %d, restarting", - id, - pid, - os.WEXITSTATUS(status), - ) - else: - gen_log.info("child %d (pid %d) exited normally", id, pid) - continue - num_restarts += 1 - if num_restarts > max_restarts: - raise RuntimeError("Too many child restarts, giving up") - new_id = start_child(id) - if new_id is not None: - return new_id - # All child processes exited cleanly, so exit the master process - # instead of just returning to right after the call to - # fork_processes (which will probably just start up another IOLoop - # unless the caller checks the return value). - sys.exit(0) - - -def task_id() -> Optional[int]: - """Returns the current task id, if any. - - Returns None if this process was not created by `fork_processes`. - """ - global _task_id - return _task_id - - -class Subprocess(object): - """Wraps ``subprocess.Popen`` with IOStream support. - - The constructor is the same as ``subprocess.Popen`` with the following - additions: - - * ``stdin``, ``stdout``, and ``stderr`` may have the value - ``tornado.process.Subprocess.STREAM``, which will make the corresponding - attribute of the resulting Subprocess a `.PipeIOStream`. If this option - is used, the caller is responsible for closing the streams when done - with them. - - The ``Subprocess.STREAM`` option and the ``set_exit_callback`` and - ``wait_for_exit`` methods do not work on Windows. There is - therefore no reason to use this class instead of - ``subprocess.Popen`` on that platform. - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been removed. - - """ - - STREAM = object() - - _initialized = False - _waiting = {} # type: ignore - _old_sigchld = None - - def __init__(self, *args: Any, **kwargs: Any) -> None: - self.io_loop = ioloop.IOLoop.current() - # All FDs we create should be closed on error; those in to_close - # should be closed in the parent process on success. - pipe_fds = [] # type: List[int] - to_close = [] # type: List[int] - if kwargs.get("stdin") is Subprocess.STREAM: - in_r, in_w = _pipe_cloexec() - kwargs["stdin"] = in_r - pipe_fds.extend((in_r, in_w)) - to_close.append(in_r) - self.stdin = PipeIOStream(in_w) - if kwargs.get("stdout") is Subprocess.STREAM: - out_r, out_w = _pipe_cloexec() - kwargs["stdout"] = out_w - pipe_fds.extend((out_r, out_w)) - to_close.append(out_w) - self.stdout = PipeIOStream(out_r) - if kwargs.get("stderr") is Subprocess.STREAM: - err_r, err_w = _pipe_cloexec() - kwargs["stderr"] = err_w - pipe_fds.extend((err_r, err_w)) - to_close.append(err_w) - self.stderr = PipeIOStream(err_r) - try: - self.proc = subprocess.Popen(*args, **kwargs) - except: - for fd in pipe_fds: - os.close(fd) - raise - for fd in to_close: - os.close(fd) - self.pid = self.proc.pid - for attr in ["stdin", "stdout", "stderr"]: - if not hasattr(self, attr): # don't clobber streams set above - setattr(self, attr, getattr(self.proc, attr)) - self._exit_callback = None # type: Optional[Callable[[int], None]] - self.returncode = None # type: Optional[int] - - def set_exit_callback(self, callback: Callable[[int], None]) -> None: - """Runs ``callback`` when this process exits. - - The callback takes one argument, the return code of the process. - - This method uses a ``SIGCHLD`` handler, which is a global setting - and may conflict if you have other libraries trying to handle the - same signal. If you are using more than one ``IOLoop`` it may - be necessary to call `Subprocess.initialize` first to designate - one ``IOLoop`` to run the signal handlers. - - In many cases a close callback on the stdout or stderr streams - can be used as an alternative to an exit callback if the - signal handler is causing a problem. - """ - self._exit_callback = callback - Subprocess.initialize() - Subprocess._waiting[self.pid] = self - Subprocess._try_cleanup_process(self.pid) - - def wait_for_exit(self, raise_error: bool = True) -> "Future[int]": - """Returns a `.Future` which resolves when the process exits. - - Usage:: - - ret = yield proc.wait_for_exit() - - This is a coroutine-friendly alternative to `set_exit_callback` - (and a replacement for the blocking `subprocess.Popen.wait`). - - By default, raises `subprocess.CalledProcessError` if the process - has a non-zero exit status. Use ``wait_for_exit(raise_error=False)`` - to suppress this behavior and return the exit status without raising. - - .. versionadded:: 4.2 - """ - future = Future() # type: Future[int] - - def callback(ret: int) -> None: - if ret != 0 and raise_error: - # Unfortunately we don't have the original args any more. - future_set_exception_unless_cancelled( - future, CalledProcessError(ret, "unknown") - ) - else: - future_set_result_unless_cancelled(future, ret) - - self.set_exit_callback(callback) - return future - - @classmethod - def initialize(cls) -> None: - """Initializes the ``SIGCHLD`` handler. - - The signal handler is run on an `.IOLoop` to avoid locking issues. - Note that the `.IOLoop` used for signal handling need not be the - same one used by individual Subprocess objects (as long as the - ``IOLoops`` are each running in separate threads). - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been - removed. - """ - if cls._initialized: - return - io_loop = ioloop.IOLoop.current() - cls._old_sigchld = signal.signal( - signal.SIGCHLD, - lambda sig, frame: io_loop.add_callback_from_signal(cls._cleanup), - ) - cls._initialized = True - - @classmethod - def uninitialize(cls) -> None: - """Removes the ``SIGCHLD`` handler.""" - if not cls._initialized: - return - signal.signal(signal.SIGCHLD, cls._old_sigchld) - cls._initialized = False - - @classmethod - def _cleanup(cls) -> None: - for pid in list(cls._waiting.keys()): # make a copy - cls._try_cleanup_process(pid) - - @classmethod - def _try_cleanup_process(cls, pid: int) -> None: - try: - ret_pid, status = os.waitpid(pid, os.WNOHANG) - except OSError as e: - if errno_from_exception(e) == errno.ECHILD: - return - if ret_pid == 0: - return - assert ret_pid == pid - subproc = cls._waiting.pop(pid) - subproc.io_loop.add_callback_from_signal(subproc._set_returncode, status) - - def _set_returncode(self, status: int) -> None: - if os.WIFSIGNALED(status): - self.returncode = -os.WTERMSIG(status) - else: - assert os.WIFEXITED(status) - self.returncode = os.WEXITSTATUS(status) - # We've taken over wait() duty from the subprocess.Popen - # object. If we don't inform it of the process's return code, - # it will log a warning at destruction in python 3.6+. - self.proc.returncode = self.returncode - if self._exit_callback: - callback = self._exit_callback - self._exit_callback = None - callback(self.returncode) +# +# Copyright 2011 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Utilities for working with multiple processes, including both forking +the server into multiple processes and managing subprocesses. +""" + +import errno +import os +import multiprocessing +import signal +import subprocess +import sys +import time + +from binascii import hexlify + +from tornado.concurrent import ( + Future, + future_set_result_unless_cancelled, + future_set_exception_unless_cancelled, +) +from tornado import ioloop +from tornado.iostream import PipeIOStream +from tornado.log import gen_log +from tornado.platform.auto import set_close_exec +from tornado.util import errno_from_exception + +import typing +from typing import Tuple, Optional, Any, Callable + +if typing.TYPE_CHECKING: + from typing import List # noqa: F401 + +# Re-export this exception for convenience. +CalledProcessError = subprocess.CalledProcessError + + +def cpu_count() -> int: + """Returns the number of processors on this machine.""" + if multiprocessing is None: + return 1 + try: + return multiprocessing.cpu_count() + except NotImplementedError: + pass + try: + return os.sysconf("SC_NPROCESSORS_CONF") + except (AttributeError, ValueError): + pass + gen_log.error("Could not detect number of processors; assuming 1") + return 1 + + +def _reseed_random() -> None: + if "random" not in sys.modules: + return + import random + + # If os.urandom is available, this method does the same thing as + # random.seed (at least as of python 2.6). If os.urandom is not + # available, we mix in the pid in addition to a timestamp. + try: + seed = int(hexlify(os.urandom(16)), 16) + except NotImplementedError: + seed = int(time.time() * 1000) ^ os.getpid() + random.seed(seed) + + +def _pipe_cloexec() -> Tuple[int, int]: + r, w = os.pipe() + set_close_exec(r) + set_close_exec(w) + return r, w + + +_task_id = None + + +def fork_processes(num_processes: Optional[int], max_restarts: int = None) -> int: + """Starts multiple worker processes. + + If ``num_processes`` is None or <= 0, we detect the number of cores + available on this machine and fork that number of child + processes. If ``num_processes`` is given and > 0, we fork that + specific number of sub-processes. + + Since we use processes and not threads, there is no shared memory + between any server code. + + Note that multiple processes are not compatible with the autoreload + module (or the ``autoreload=True`` option to `tornado.web.Application` + which defaults to True when ``debug=True``). + When using multiple processes, no IOLoops can be created or + referenced until after the call to ``fork_processes``. + + In each child process, ``fork_processes`` returns its *task id*, a + number between 0 and ``num_processes``. Processes that exit + abnormally (due to a signal or non-zero exit status) are restarted + with the same id (up to ``max_restarts`` times). In the parent + process, ``fork_processes`` returns None if all child processes + have exited normally, but will otherwise only exit by throwing an + exception. + + max_restarts defaults to 100. + """ + if max_restarts is None: + max_restarts = 100 + + global _task_id + assert _task_id is None + if num_processes is None or num_processes <= 0: + num_processes = cpu_count() + gen_log.info("Starting %d processes", num_processes) + children = {} + + def start_child(i: int) -> Optional[int]: + pid = os.fork() + if pid == 0: + # child process + _reseed_random() + global _task_id + _task_id = i + return i + else: + children[pid] = i + return None + + for i in range(num_processes): + id = start_child(i) + if id is not None: + return id + num_restarts = 0 + while children: + try: + pid, status = os.wait() + except OSError as e: + if errno_from_exception(e) == errno.EINTR: + continue + raise + if pid not in children: + continue + id = children.pop(pid) + if os.WIFSIGNALED(status): + gen_log.warning( + "child %d (pid %d) killed by signal %d, restarting", + id, + pid, + os.WTERMSIG(status), + ) + elif os.WEXITSTATUS(status) != 0: + gen_log.warning( + "child %d (pid %d) exited with status %d, restarting", + id, + pid, + os.WEXITSTATUS(status), + ) + else: + gen_log.info("child %d (pid %d) exited normally", id, pid) + continue + num_restarts += 1 + if num_restarts > max_restarts: + raise RuntimeError("Too many child restarts, giving up") + new_id = start_child(id) + if new_id is not None: + return new_id + # All child processes exited cleanly, so exit the master process + # instead of just returning to right after the call to + # fork_processes (which will probably just start up another IOLoop + # unless the caller checks the return value). + sys.exit(0) + + +def task_id() -> Optional[int]: + """Returns the current task id, if any. + + Returns None if this process was not created by `fork_processes`. + """ + global _task_id + return _task_id + + +class Subprocess(object): + """Wraps ``subprocess.Popen`` with IOStream support. + + The constructor is the same as ``subprocess.Popen`` with the following + additions: + + * ``stdin``, ``stdout``, and ``stderr`` may have the value + ``tornado.process.Subprocess.STREAM``, which will make the corresponding + attribute of the resulting Subprocess a `.PipeIOStream`. If this option + is used, the caller is responsible for closing the streams when done + with them. + + The ``Subprocess.STREAM`` option and the ``set_exit_callback`` and + ``wait_for_exit`` methods do not work on Windows. There is + therefore no reason to use this class instead of + ``subprocess.Popen`` on that platform. + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been removed. + + """ + + STREAM = object() + + _initialized = False + _waiting = {} # type: ignore + _old_sigchld = None + + def __init__(self, *args: Any, **kwargs: Any) -> None: + self.io_loop = ioloop.IOLoop.current() + # All FDs we create should be closed on error; those in to_close + # should be closed in the parent process on success. + pipe_fds = [] # type: List[int] + to_close = [] # type: List[int] + if kwargs.get("stdin") is Subprocess.STREAM: + in_r, in_w = _pipe_cloexec() + kwargs["stdin"] = in_r + pipe_fds.extend((in_r, in_w)) + to_close.append(in_r) + self.stdin = PipeIOStream(in_w) + if kwargs.get("stdout") is Subprocess.STREAM: + out_r, out_w = _pipe_cloexec() + kwargs["stdout"] = out_w + pipe_fds.extend((out_r, out_w)) + to_close.append(out_w) + self.stdout = PipeIOStream(out_r) + if kwargs.get("stderr") is Subprocess.STREAM: + err_r, err_w = _pipe_cloexec() + kwargs["stderr"] = err_w + pipe_fds.extend((err_r, err_w)) + to_close.append(err_w) + self.stderr = PipeIOStream(err_r) + try: + self.proc = subprocess.Popen(*args, **kwargs) + except: + for fd in pipe_fds: + os.close(fd) + raise + for fd in to_close: + os.close(fd) + self.pid = self.proc.pid + for attr in ["stdin", "stdout", "stderr"]: + if not hasattr(self, attr): # don't clobber streams set above + setattr(self, attr, getattr(self.proc, attr)) + self._exit_callback = None # type: Optional[Callable[[int], None]] + self.returncode = None # type: Optional[int] + + def set_exit_callback(self, callback: Callable[[int], None]) -> None: + """Runs ``callback`` when this process exits. + + The callback takes one argument, the return code of the process. + + This method uses a ``SIGCHLD`` handler, which is a global setting + and may conflict if you have other libraries trying to handle the + same signal. If you are using more than one ``IOLoop`` it may + be necessary to call `Subprocess.initialize` first to designate + one ``IOLoop`` to run the signal handlers. + + In many cases a close callback on the stdout or stderr streams + can be used as an alternative to an exit callback if the + signal handler is causing a problem. + """ + self._exit_callback = callback + Subprocess.initialize() + Subprocess._waiting[self.pid] = self + Subprocess._try_cleanup_process(self.pid) + + def wait_for_exit(self, raise_error: bool = True) -> "Future[int]": + """Returns a `.Future` which resolves when the process exits. + + Usage:: + + ret = yield proc.wait_for_exit() + + This is a coroutine-friendly alternative to `set_exit_callback` + (and a replacement for the blocking `subprocess.Popen.wait`). + + By default, raises `subprocess.CalledProcessError` if the process + has a non-zero exit status. Use ``wait_for_exit(raise_error=False)`` + to suppress this behavior and return the exit status without raising. + + .. versionadded:: 4.2 + """ + future = Future() # type: Future[int] + + def callback(ret: int) -> None: + if ret != 0 and raise_error: + # Unfortunately we don't have the original args any more. + future_set_exception_unless_cancelled( + future, CalledProcessError(ret, "unknown") + ) + else: + future_set_result_unless_cancelled(future, ret) + + self.set_exit_callback(callback) + return future + + @classmethod + def initialize(cls) -> None: + """Initializes the ``SIGCHLD`` handler. + + The signal handler is run on an `.IOLoop` to avoid locking issues. + Note that the `.IOLoop` used for signal handling need not be the + same one used by individual Subprocess objects (as long as the + ``IOLoops`` are each running in separate threads). + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been + removed. + """ + if cls._initialized: + return + io_loop = ioloop.IOLoop.current() + cls._old_sigchld = signal.signal( + signal.SIGCHLD, + lambda sig, frame: io_loop.add_callback_from_signal(cls._cleanup), + ) + cls._initialized = True + + @classmethod + def uninitialize(cls) -> None: + """Removes the ``SIGCHLD`` handler.""" + if not cls._initialized: + return + signal.signal(signal.SIGCHLD, cls._old_sigchld) + cls._initialized = False + + @classmethod + def _cleanup(cls) -> None: + for pid in list(cls._waiting.keys()): # make a copy + cls._try_cleanup_process(pid) + + @classmethod + def _try_cleanup_process(cls, pid: int) -> None: + try: + ret_pid, status = os.waitpid(pid, os.WNOHANG) + except OSError as e: + if errno_from_exception(e) == errno.ECHILD: + return + if ret_pid == 0: + return + assert ret_pid == pid + subproc = cls._waiting.pop(pid) + subproc.io_loop.add_callback_from_signal(subproc._set_returncode, status) + + def _set_returncode(self, status: int) -> None: + if os.WIFSIGNALED(status): + self.returncode = -os.WTERMSIG(status) + else: + assert os.WIFEXITED(status) + self.returncode = os.WEXITSTATUS(status) + # We've taken over wait() duty from the subprocess.Popen + # object. If we don't inform it of the process's return code, + # it will log a warning at destruction in python 3.6+. + self.proc.returncode = self.returncode + if self._exit_callback: + callback = self._exit_callback + self._exit_callback = None + callback(self.returncode) diff --git a/server/www/packages/packages-linux/x64/tornado/queues.py b/server/www/packages/packages-linux/x64/tornado/queues.py index 19ff6c6..28dcebb 100644 --- a/server/www/packages/packages-linux/x64/tornado/queues.py +++ b/server/www/packages/packages-linux/x64/tornado/queues.py @@ -1,410 +1,410 @@ -# Copyright 2015 The Tornado Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Asynchronous queues for coroutines. These classes are very similar -to those provided in the standard library's `asyncio package -`_. - -.. warning:: - - Unlike the standard library's `queue` module, the classes defined here - are *not* thread-safe. To use these queues from another thread, - use `.IOLoop.add_callback` to transfer control to the `.IOLoop` thread - before calling any queue methods. - -""" - -import collections -import datetime -import heapq - -from tornado import gen, ioloop -from tornado.concurrent import Future, future_set_result_unless_cancelled -from tornado.locks import Event - -from typing import Union, TypeVar, Generic, Awaitable -import typing - -if typing.TYPE_CHECKING: - from typing import Deque, Tuple, List, Any # noqa: F401 - -_T = TypeVar("_T") - -__all__ = ["Queue", "PriorityQueue", "LifoQueue", "QueueFull", "QueueEmpty"] - - -class QueueEmpty(Exception): - """Raised by `.Queue.get_nowait` when the queue has no items.""" - - pass - - -class QueueFull(Exception): - """Raised by `.Queue.put_nowait` when a queue is at its maximum size.""" - - pass - - -def _set_timeout( - future: Future, timeout: Union[None, float, datetime.timedelta] -) -> None: - if timeout: - - def on_timeout() -> None: - if not future.done(): - future.set_exception(gen.TimeoutError()) - - io_loop = ioloop.IOLoop.current() - timeout_handle = io_loop.add_timeout(timeout, on_timeout) - future.add_done_callback(lambda _: io_loop.remove_timeout(timeout_handle)) - - -class _QueueIterator(Generic[_T]): - def __init__(self, q: "Queue[_T]") -> None: - self.q = q - - def __anext__(self) -> Awaitable[_T]: - return self.q.get() - - -class Queue(Generic[_T]): - """Coordinate producer and consumer coroutines. - - If maxsize is 0 (the default) the queue size is unbounded. - - .. testcode:: - - from tornado import gen - from tornado.ioloop import IOLoop - from tornado.queues import Queue - - q = Queue(maxsize=2) - - async def consumer(): - async for item in q: - try: - print('Doing work on %s' % item) - await gen.sleep(0.01) - finally: - q.task_done() - - async def producer(): - for item in range(5): - await q.put(item) - print('Put %s' % item) - - async def main(): - # Start consumer without waiting (since it never finishes). - IOLoop.current().spawn_callback(consumer) - await producer() # Wait for producer to put all tasks. - await q.join() # Wait for consumer to finish all tasks. - print('Done') - - IOLoop.current().run_sync(main) - - .. testoutput:: - - Put 0 - Put 1 - Doing work on 0 - Put 2 - Doing work on 1 - Put 3 - Doing work on 2 - Put 4 - Doing work on 3 - Doing work on 4 - Done - - - In versions of Python without native coroutines (before 3.5), - ``consumer()`` could be written as:: - - @gen.coroutine - def consumer(): - while True: - item = yield q.get() - try: - print('Doing work on %s' % item) - yield gen.sleep(0.01) - finally: - q.task_done() - - .. versionchanged:: 4.3 - Added ``async for`` support in Python 3.5. - - """ - - # Exact type depends on subclass. Could be another generic - # parameter and use protocols to be more precise here. - _queue = None # type: Any - - def __init__(self, maxsize: int = 0) -> None: - if maxsize is None: - raise TypeError("maxsize can't be None") - - if maxsize < 0: - raise ValueError("maxsize can't be negative") - - self._maxsize = maxsize - self._init() - self._getters = collections.deque([]) # type: Deque[Future[_T]] - self._putters = collections.deque([]) # type: Deque[Tuple[_T, Future[None]]] - self._unfinished_tasks = 0 - self._finished = Event() - self._finished.set() - - @property - def maxsize(self) -> int: - """Number of items allowed in the queue.""" - return self._maxsize - - def qsize(self) -> int: - """Number of items in the queue.""" - return len(self._queue) - - def empty(self) -> bool: - return not self._queue - - def full(self) -> bool: - if self.maxsize == 0: - return False - else: - return self.qsize() >= self.maxsize - - def put( - self, item: _T, timeout: Union[float, datetime.timedelta] = None - ) -> "Future[None]": - """Put an item into the queue, perhaps waiting until there is room. - - Returns a Future, which raises `tornado.util.TimeoutError` after a - timeout. - - ``timeout`` may be a number denoting a time (on the same - scale as `tornado.ioloop.IOLoop.time`, normally `time.time`), or a - `datetime.timedelta` object for a deadline relative to the - current time. - """ - future = Future() # type: Future[None] - try: - self.put_nowait(item) - except QueueFull: - self._putters.append((item, future)) - _set_timeout(future, timeout) - else: - future.set_result(None) - return future - - def put_nowait(self, item: _T) -> None: - """Put an item into the queue without blocking. - - If no free slot is immediately available, raise `QueueFull`. - """ - self._consume_expired() - if self._getters: - assert self.empty(), "queue non-empty, why are getters waiting?" - getter = self._getters.popleft() - self.__put_internal(item) - future_set_result_unless_cancelled(getter, self._get()) - elif self.full(): - raise QueueFull - else: - self.__put_internal(item) - - def get(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[_T]: - """Remove and return an item from the queue. - - Returns an awaitable which resolves once an item is available, or raises - `tornado.util.TimeoutError` after a timeout. - - ``timeout`` may be a number denoting a time (on the same - scale as `tornado.ioloop.IOLoop.time`, normally `time.time`), or a - `datetime.timedelta` object for a deadline relative to the - current time. - - .. note:: - - The ``timeout`` argument of this method differs from that - of the standard library's `queue.Queue.get`. That method - interprets numeric values as relative timeouts; this one - interprets them as absolute deadlines and requires - ``timedelta`` objects for relative timeouts (consistent - with other timeouts in Tornado). - - """ - future = Future() # type: Future[_T] - try: - future.set_result(self.get_nowait()) - except QueueEmpty: - self._getters.append(future) - _set_timeout(future, timeout) - return future - - def get_nowait(self) -> _T: - """Remove and return an item from the queue without blocking. - - Return an item if one is immediately available, else raise - `QueueEmpty`. - """ - self._consume_expired() - if self._putters: - assert self.full(), "queue not full, why are putters waiting?" - item, putter = self._putters.popleft() - self.__put_internal(item) - future_set_result_unless_cancelled(putter, None) - return self._get() - elif self.qsize(): - return self._get() - else: - raise QueueEmpty - - def task_done(self) -> None: - """Indicate that a formerly enqueued task is complete. - - Used by queue consumers. For each `.get` used to fetch a task, a - subsequent call to `.task_done` tells the queue that the processing - on the task is complete. - - If a `.join` is blocking, it resumes when all items have been - processed; that is, when every `.put` is matched by a `.task_done`. - - Raises `ValueError` if called more times than `.put`. - """ - if self._unfinished_tasks <= 0: - raise ValueError("task_done() called too many times") - self._unfinished_tasks -= 1 - if self._unfinished_tasks == 0: - self._finished.set() - - def join(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[None]: - """Block until all items in the queue are processed. - - Returns an awaitable, which raises `tornado.util.TimeoutError` after a - timeout. - """ - return self._finished.wait(timeout) - - def __aiter__(self) -> _QueueIterator[_T]: - return _QueueIterator(self) - - # These three are overridable in subclasses. - def _init(self) -> None: - self._queue = collections.deque() - - def _get(self) -> _T: - return self._queue.popleft() - - def _put(self, item: _T) -> None: - self._queue.append(item) - - # End of the overridable methods. - - def __put_internal(self, item: _T) -> None: - self._unfinished_tasks += 1 - self._finished.clear() - self._put(item) - - def _consume_expired(self) -> None: - # Remove timed-out waiters. - while self._putters and self._putters[0][1].done(): - self._putters.popleft() - - while self._getters and self._getters[0].done(): - self._getters.popleft() - - def __repr__(self) -> str: - return "<%s at %s %s>" % (type(self).__name__, hex(id(self)), self._format()) - - def __str__(self) -> str: - return "<%s %s>" % (type(self).__name__, self._format()) - - def _format(self) -> str: - result = "maxsize=%r" % (self.maxsize,) - if getattr(self, "_queue", None): - result += " queue=%r" % self._queue - if self._getters: - result += " getters[%s]" % len(self._getters) - if self._putters: - result += " putters[%s]" % len(self._putters) - if self._unfinished_tasks: - result += " tasks=%s" % self._unfinished_tasks - return result - - -class PriorityQueue(Queue): - """A `.Queue` that retrieves entries in priority order, lowest first. - - Entries are typically tuples like ``(priority number, data)``. - - .. testcode:: - - from tornado.queues import PriorityQueue - - q = PriorityQueue() - q.put((1, 'medium-priority item')) - q.put((0, 'high-priority item')) - q.put((10, 'low-priority item')) - - print(q.get_nowait()) - print(q.get_nowait()) - print(q.get_nowait()) - - .. testoutput:: - - (0, 'high-priority item') - (1, 'medium-priority item') - (10, 'low-priority item') - """ - - def _init(self) -> None: - self._queue = [] - - def _put(self, item: _T) -> None: - heapq.heappush(self._queue, item) - - def _get(self) -> _T: - return heapq.heappop(self._queue) - - -class LifoQueue(Queue): - """A `.Queue` that retrieves the most recently put items first. - - .. testcode:: - - from tornado.queues import LifoQueue - - q = LifoQueue() - q.put(3) - q.put(2) - q.put(1) - - print(q.get_nowait()) - print(q.get_nowait()) - print(q.get_nowait()) - - .. testoutput:: - - 1 - 2 - 3 - """ - - def _init(self) -> None: - self._queue = [] - - def _put(self, item: _T) -> None: - self._queue.append(item) - - def _get(self) -> _T: - return self._queue.pop() +# Copyright 2015 The Tornado Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Asynchronous queues for coroutines. These classes are very similar +to those provided in the standard library's `asyncio package +`_. + +.. warning:: + + Unlike the standard library's `queue` module, the classes defined here + are *not* thread-safe. To use these queues from another thread, + use `.IOLoop.add_callback` to transfer control to the `.IOLoop` thread + before calling any queue methods. + +""" + +import collections +import datetime +import heapq + +from tornado import gen, ioloop +from tornado.concurrent import Future, future_set_result_unless_cancelled +from tornado.locks import Event + +from typing import Union, TypeVar, Generic, Awaitable +import typing + +if typing.TYPE_CHECKING: + from typing import Deque, Tuple, List, Any # noqa: F401 + +_T = TypeVar("_T") + +__all__ = ["Queue", "PriorityQueue", "LifoQueue", "QueueFull", "QueueEmpty"] + + +class QueueEmpty(Exception): + """Raised by `.Queue.get_nowait` when the queue has no items.""" + + pass + + +class QueueFull(Exception): + """Raised by `.Queue.put_nowait` when a queue is at its maximum size.""" + + pass + + +def _set_timeout( + future: Future, timeout: Union[None, float, datetime.timedelta] +) -> None: + if timeout: + + def on_timeout() -> None: + if not future.done(): + future.set_exception(gen.TimeoutError()) + + io_loop = ioloop.IOLoop.current() + timeout_handle = io_loop.add_timeout(timeout, on_timeout) + future.add_done_callback(lambda _: io_loop.remove_timeout(timeout_handle)) + + +class _QueueIterator(Generic[_T]): + def __init__(self, q: "Queue[_T]") -> None: + self.q = q + + def __anext__(self) -> Awaitable[_T]: + return self.q.get() + + +class Queue(Generic[_T]): + """Coordinate producer and consumer coroutines. + + If maxsize is 0 (the default) the queue size is unbounded. + + .. testcode:: + + from tornado import gen + from tornado.ioloop import IOLoop + from tornado.queues import Queue + + q = Queue(maxsize=2) + + async def consumer(): + async for item in q: + try: + print('Doing work on %s' % item) + await gen.sleep(0.01) + finally: + q.task_done() + + async def producer(): + for item in range(5): + await q.put(item) + print('Put %s' % item) + + async def main(): + # Start consumer without waiting (since it never finishes). + IOLoop.current().spawn_callback(consumer) + await producer() # Wait for producer to put all tasks. + await q.join() # Wait for consumer to finish all tasks. + print('Done') + + IOLoop.current().run_sync(main) + + .. testoutput:: + + Put 0 + Put 1 + Doing work on 0 + Put 2 + Doing work on 1 + Put 3 + Doing work on 2 + Put 4 + Doing work on 3 + Doing work on 4 + Done + + + In versions of Python without native coroutines (before 3.5), + ``consumer()`` could be written as:: + + @gen.coroutine + def consumer(): + while True: + item = yield q.get() + try: + print('Doing work on %s' % item) + yield gen.sleep(0.01) + finally: + q.task_done() + + .. versionchanged:: 4.3 + Added ``async for`` support in Python 3.5. + + """ + + # Exact type depends on subclass. Could be another generic + # parameter and use protocols to be more precise here. + _queue = None # type: Any + + def __init__(self, maxsize: int = 0) -> None: + if maxsize is None: + raise TypeError("maxsize can't be None") + + if maxsize < 0: + raise ValueError("maxsize can't be negative") + + self._maxsize = maxsize + self._init() + self._getters = collections.deque([]) # type: Deque[Future[_T]] + self._putters = collections.deque([]) # type: Deque[Tuple[_T, Future[None]]] + self._unfinished_tasks = 0 + self._finished = Event() + self._finished.set() + + @property + def maxsize(self) -> int: + """Number of items allowed in the queue.""" + return self._maxsize + + def qsize(self) -> int: + """Number of items in the queue.""" + return len(self._queue) + + def empty(self) -> bool: + return not self._queue + + def full(self) -> bool: + if self.maxsize == 0: + return False + else: + return self.qsize() >= self.maxsize + + def put( + self, item: _T, timeout: Union[float, datetime.timedelta] = None + ) -> "Future[None]": + """Put an item into the queue, perhaps waiting until there is room. + + Returns a Future, which raises `tornado.util.TimeoutError` after a + timeout. + + ``timeout`` may be a number denoting a time (on the same + scale as `tornado.ioloop.IOLoop.time`, normally `time.time`), or a + `datetime.timedelta` object for a deadline relative to the + current time. + """ + future = Future() # type: Future[None] + try: + self.put_nowait(item) + except QueueFull: + self._putters.append((item, future)) + _set_timeout(future, timeout) + else: + future.set_result(None) + return future + + def put_nowait(self, item: _T) -> None: + """Put an item into the queue without blocking. + + If no free slot is immediately available, raise `QueueFull`. + """ + self._consume_expired() + if self._getters: + assert self.empty(), "queue non-empty, why are getters waiting?" + getter = self._getters.popleft() + self.__put_internal(item) + future_set_result_unless_cancelled(getter, self._get()) + elif self.full(): + raise QueueFull + else: + self.__put_internal(item) + + def get(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[_T]: + """Remove and return an item from the queue. + + Returns an awaitable which resolves once an item is available, or raises + `tornado.util.TimeoutError` after a timeout. + + ``timeout`` may be a number denoting a time (on the same + scale as `tornado.ioloop.IOLoop.time`, normally `time.time`), or a + `datetime.timedelta` object for a deadline relative to the + current time. + + .. note:: + + The ``timeout`` argument of this method differs from that + of the standard library's `queue.Queue.get`. That method + interprets numeric values as relative timeouts; this one + interprets them as absolute deadlines and requires + ``timedelta`` objects for relative timeouts (consistent + with other timeouts in Tornado). + + """ + future = Future() # type: Future[_T] + try: + future.set_result(self.get_nowait()) + except QueueEmpty: + self._getters.append(future) + _set_timeout(future, timeout) + return future + + def get_nowait(self) -> _T: + """Remove and return an item from the queue without blocking. + + Return an item if one is immediately available, else raise + `QueueEmpty`. + """ + self._consume_expired() + if self._putters: + assert self.full(), "queue not full, why are putters waiting?" + item, putter = self._putters.popleft() + self.__put_internal(item) + future_set_result_unless_cancelled(putter, None) + return self._get() + elif self.qsize(): + return self._get() + else: + raise QueueEmpty + + def task_done(self) -> None: + """Indicate that a formerly enqueued task is complete. + + Used by queue consumers. For each `.get` used to fetch a task, a + subsequent call to `.task_done` tells the queue that the processing + on the task is complete. + + If a `.join` is blocking, it resumes when all items have been + processed; that is, when every `.put` is matched by a `.task_done`. + + Raises `ValueError` if called more times than `.put`. + """ + if self._unfinished_tasks <= 0: + raise ValueError("task_done() called too many times") + self._unfinished_tasks -= 1 + if self._unfinished_tasks == 0: + self._finished.set() + + def join(self, timeout: Union[float, datetime.timedelta] = None) -> Awaitable[None]: + """Block until all items in the queue are processed. + + Returns an awaitable, which raises `tornado.util.TimeoutError` after a + timeout. + """ + return self._finished.wait(timeout) + + def __aiter__(self) -> _QueueIterator[_T]: + return _QueueIterator(self) + + # These three are overridable in subclasses. + def _init(self) -> None: + self._queue = collections.deque() + + def _get(self) -> _T: + return self._queue.popleft() + + def _put(self, item: _T) -> None: + self._queue.append(item) + + # End of the overridable methods. + + def __put_internal(self, item: _T) -> None: + self._unfinished_tasks += 1 + self._finished.clear() + self._put(item) + + def _consume_expired(self) -> None: + # Remove timed-out waiters. + while self._putters and self._putters[0][1].done(): + self._putters.popleft() + + while self._getters and self._getters[0].done(): + self._getters.popleft() + + def __repr__(self) -> str: + return "<%s at %s %s>" % (type(self).__name__, hex(id(self)), self._format()) + + def __str__(self) -> str: + return "<%s %s>" % (type(self).__name__, self._format()) + + def _format(self) -> str: + result = "maxsize=%r" % (self.maxsize,) + if getattr(self, "_queue", None): + result += " queue=%r" % self._queue + if self._getters: + result += " getters[%s]" % len(self._getters) + if self._putters: + result += " putters[%s]" % len(self._putters) + if self._unfinished_tasks: + result += " tasks=%s" % self._unfinished_tasks + return result + + +class PriorityQueue(Queue): + """A `.Queue` that retrieves entries in priority order, lowest first. + + Entries are typically tuples like ``(priority number, data)``. + + .. testcode:: + + from tornado.queues import PriorityQueue + + q = PriorityQueue() + q.put((1, 'medium-priority item')) + q.put((0, 'high-priority item')) + q.put((10, 'low-priority item')) + + print(q.get_nowait()) + print(q.get_nowait()) + print(q.get_nowait()) + + .. testoutput:: + + (0, 'high-priority item') + (1, 'medium-priority item') + (10, 'low-priority item') + """ + + def _init(self) -> None: + self._queue = [] + + def _put(self, item: _T) -> None: + heapq.heappush(self._queue, item) + + def _get(self) -> _T: + return heapq.heappop(self._queue) + + +class LifoQueue(Queue): + """A `.Queue` that retrieves the most recently put items first. + + .. testcode:: + + from tornado.queues import LifoQueue + + q = LifoQueue() + q.put(3) + q.put(2) + q.put(1) + + print(q.get_nowait()) + print(q.get_nowait()) + print(q.get_nowait()) + + .. testoutput:: + + 1 + 2 + 3 + """ + + def _init(self) -> None: + self._queue = [] + + def _put(self, item: _T) -> None: + self._queue.append(item) + + def _get(self) -> _T: + return self._queue.pop() diff --git a/server/www/packages/packages-linux/x64/tornado/routing.py b/server/www/packages/packages-linux/x64/tornado/routing.py index ae7abcd..7a131ac 100644 --- a/server/www/packages/packages-linux/x64/tornado/routing.py +++ b/server/www/packages/packages-linux/x64/tornado/routing.py @@ -1,711 +1,711 @@ -# Copyright 2015 The Tornado Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""Flexible routing implementation. - -Tornado routes HTTP requests to appropriate handlers using `Router` -class implementations. The `tornado.web.Application` class is a -`Router` implementation and may be used directly, or the classes in -this module may be used for additional flexibility. The `RuleRouter` -class can match on more criteria than `.Application`, or the `Router` -interface can be subclassed for maximum customization. - -`Router` interface extends `~.httputil.HTTPServerConnectionDelegate` -to provide additional routing capabilities. This also means that any -`Router` implementation can be used directly as a ``request_callback`` -for `~.httpserver.HTTPServer` constructor. - -`Router` subclass must implement a ``find_handler`` method to provide -a suitable `~.httputil.HTTPMessageDelegate` instance to handle the -request: - -.. code-block:: python - - class CustomRouter(Router): - def find_handler(self, request, **kwargs): - # some routing logic providing a suitable HTTPMessageDelegate instance - return MessageDelegate(request.connection) - - class MessageDelegate(HTTPMessageDelegate): - def __init__(self, connection): - self.connection = connection - - def finish(self): - self.connection.write_headers( - ResponseStartLine("HTTP/1.1", 200, "OK"), - HTTPHeaders({"Content-Length": "2"}), - b"OK") - self.connection.finish() - - router = CustomRouter() - server = HTTPServer(router) - -The main responsibility of `Router` implementation is to provide a -mapping from a request to `~.httputil.HTTPMessageDelegate` instance -that will handle this request. In the example above we can see that -routing is possible even without instantiating an `~.web.Application`. - -For routing to `~.web.RequestHandler` implementations we need an -`~.web.Application` instance. `~.web.Application.get_handler_delegate` -provides a convenient way to create `~.httputil.HTTPMessageDelegate` -for a given request and `~.web.RequestHandler`. - -Here is a simple example of how we can we route to -`~.web.RequestHandler` subclasses by HTTP method: - -.. code-block:: python - - resources = {} - - class GetResource(RequestHandler): - def get(self, path): - if path not in resources: - raise HTTPError(404) - - self.finish(resources[path]) - - class PostResource(RequestHandler): - def post(self, path): - resources[path] = self.request.body - - class HTTPMethodRouter(Router): - def __init__(self, app): - self.app = app - - def find_handler(self, request, **kwargs): - handler = GetResource if request.method == "GET" else PostResource - return self.app.get_handler_delegate(request, handler, path_args=[request.path]) - - router = HTTPMethodRouter(Application()) - server = HTTPServer(router) - -`ReversibleRouter` interface adds the ability to distinguish between -the routes and reverse them to the original urls using route's name -and additional arguments. `~.web.Application` is itself an -implementation of `ReversibleRouter` class. - -`RuleRouter` and `ReversibleRuleRouter` are implementations of -`Router` and `ReversibleRouter` interfaces and can be used for -creating rule-based routing configurations. - -Rules are instances of `Rule` class. They contain a `Matcher`, which -provides the logic for determining whether the rule is a match for a -particular request and a target, which can be one of the following. - -1) An instance of `~.httputil.HTTPServerConnectionDelegate`: - -.. code-block:: python - - router = RuleRouter([ - Rule(PathMatches("/handler"), ConnectionDelegate()), - # ... more rules - ]) - - class ConnectionDelegate(HTTPServerConnectionDelegate): - def start_request(self, server_conn, request_conn): - return MessageDelegate(request_conn) - -2) A callable accepting a single argument of `~.httputil.HTTPServerRequest` type: - -.. code-block:: python - - router = RuleRouter([ - Rule(PathMatches("/callable"), request_callable) - ]) - - def request_callable(request): - request.write(b"HTTP/1.1 200 OK\\r\\nContent-Length: 2\\r\\n\\r\\nOK") - request.finish() - -3) Another `Router` instance: - -.. code-block:: python - - router = RuleRouter([ - Rule(PathMatches("/router.*"), CustomRouter()) - ]) - -Of course a nested `RuleRouter` or a `~.web.Application` is allowed: - -.. code-block:: python - - router = RuleRouter([ - Rule(HostMatches("example.com"), RuleRouter([ - Rule(PathMatches("/app1/.*"), Application([(r"/app1/handler", Handler)]))), - ])) - ]) - - server = HTTPServer(router) - -In the example below `RuleRouter` is used to route between applications: - -.. code-block:: python - - app1 = Application([ - (r"/app1/handler", Handler1), - # other handlers ... - ]) - - app2 = Application([ - (r"/app2/handler", Handler2), - # other handlers ... - ]) - - router = RuleRouter([ - Rule(PathMatches("/app1.*"), app1), - Rule(PathMatches("/app2.*"), app2) - ]) - - server = HTTPServer(router) - -For more information on application-level routing see docs for `~.web.Application`. - -.. versionadded:: 4.5 - -""" - -import re -from functools import partial - -from tornado import httputil -from tornado.httpserver import _CallableAdapter -from tornado.escape import url_escape, url_unescape, utf8 -from tornado.log import app_log -from tornado.util import basestring_type, import_object, re_unescape, unicode_type - -from typing import Any, Union, Optional, Awaitable, List, Dict, Pattern, Tuple, overload - - -class Router(httputil.HTTPServerConnectionDelegate): - """Abstract router interface.""" - - def find_handler( - self, request: httputil.HTTPServerRequest, **kwargs: Any - ) -> Optional[httputil.HTTPMessageDelegate]: - """Must be implemented to return an appropriate instance of `~.httputil.HTTPMessageDelegate` - that can serve the request. - Routing implementations may pass additional kwargs to extend the routing logic. - - :arg httputil.HTTPServerRequest request: current HTTP request. - :arg kwargs: additional keyword arguments passed by routing implementation. - :returns: an instance of `~.httputil.HTTPMessageDelegate` that will be used to - process the request. - """ - raise NotImplementedError() - - def start_request( - self, server_conn: object, request_conn: httputil.HTTPConnection - ) -> httputil.HTTPMessageDelegate: - return _RoutingDelegate(self, server_conn, request_conn) - - -class ReversibleRouter(Router): - """Abstract router interface for routers that can handle named routes - and support reversing them to original urls. - """ - - def reverse_url(self, name: str, *args: Any) -> Optional[str]: - """Returns url string for a given route name and arguments - or ``None`` if no match is found. - - :arg str name: route name. - :arg args: url parameters. - :returns: parametrized url string for a given route name (or ``None``). - """ - raise NotImplementedError() - - -class _RoutingDelegate(httputil.HTTPMessageDelegate): - def __init__( - self, router: Router, server_conn: object, request_conn: httputil.HTTPConnection - ) -> None: - self.server_conn = server_conn - self.request_conn = request_conn - self.delegate = None # type: Optional[httputil.HTTPMessageDelegate] - self.router = router # type: Router - - def headers_received( - self, - start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], - headers: httputil.HTTPHeaders, - ) -> Optional[Awaitable[None]]: - assert isinstance(start_line, httputil.RequestStartLine) - request = httputil.HTTPServerRequest( - connection=self.request_conn, - server_connection=self.server_conn, - start_line=start_line, - headers=headers, - ) - - self.delegate = self.router.find_handler(request) - if self.delegate is None: - app_log.debug( - "Delegate for %s %s request not found", - start_line.method, - start_line.path, - ) - self.delegate = _DefaultMessageDelegate(self.request_conn) - - return self.delegate.headers_received(start_line, headers) - - def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]: - assert self.delegate is not None - return self.delegate.data_received(chunk) - - def finish(self) -> None: - assert self.delegate is not None - self.delegate.finish() - - def on_connection_close(self) -> None: - assert self.delegate is not None - self.delegate.on_connection_close() - - -class _DefaultMessageDelegate(httputil.HTTPMessageDelegate): - def __init__(self, connection: httputil.HTTPConnection) -> None: - self.connection = connection - - def finish(self) -> None: - self.connection.write_headers( - httputil.ResponseStartLine("HTTP/1.1", 404, "Not Found"), - httputil.HTTPHeaders(), - ) - self.connection.finish() - - -# _RuleList can either contain pre-constructed Rules or a sequence of -# arguments to be passed to the Rule constructor. -_RuleList = List[ - Union[ - "Rule", - List[Any], # Can't do detailed typechecking of lists. - Tuple[Union[str, "Matcher"], Any], - Tuple[Union[str, "Matcher"], Any, Dict[str, Any]], - Tuple[Union[str, "Matcher"], Any, Dict[str, Any], str], - ] -] - - -class RuleRouter(Router): - """Rule-based router implementation.""" - - def __init__(self, rules: _RuleList = None) -> None: - """Constructs a router from an ordered list of rules:: - - RuleRouter([ - Rule(PathMatches("/handler"), Target), - # ... more rules - ]) - - You can also omit explicit `Rule` constructor and use tuples of arguments:: - - RuleRouter([ - (PathMatches("/handler"), Target), - ]) - - `PathMatches` is a default matcher, so the example above can be simplified:: - - RuleRouter([ - ("/handler", Target), - ]) - - In the examples above, ``Target`` can be a nested `Router` instance, an instance of - `~.httputil.HTTPServerConnectionDelegate` or an old-style callable, - accepting a request argument. - - :arg rules: a list of `Rule` instances or tuples of `Rule` - constructor arguments. - """ - self.rules = [] # type: List[Rule] - if rules: - self.add_rules(rules) - - def add_rules(self, rules: _RuleList) -> None: - """Appends new rules to the router. - - :arg rules: a list of Rule instances (or tuples of arguments, which are - passed to Rule constructor). - """ - for rule in rules: - if isinstance(rule, (tuple, list)): - assert len(rule) in (2, 3, 4) - if isinstance(rule[0], basestring_type): - rule = Rule(PathMatches(rule[0]), *rule[1:]) - else: - rule = Rule(*rule) - - self.rules.append(self.process_rule(rule)) - - def process_rule(self, rule: "Rule") -> "Rule": - """Override this method for additional preprocessing of each rule. - - :arg Rule rule: a rule to be processed. - :returns: the same or modified Rule instance. - """ - return rule - - def find_handler( - self, request: httputil.HTTPServerRequest, **kwargs: Any - ) -> Optional[httputil.HTTPMessageDelegate]: - for rule in self.rules: - target_params = rule.matcher.match(request) - if target_params is not None: - if rule.target_kwargs: - target_params["target_kwargs"] = rule.target_kwargs - - delegate = self.get_target_delegate( - rule.target, request, **target_params - ) - - if delegate is not None: - return delegate - - return None - - def get_target_delegate( - self, target: Any, request: httputil.HTTPServerRequest, **target_params: Any - ) -> Optional[httputil.HTTPMessageDelegate]: - """Returns an instance of `~.httputil.HTTPMessageDelegate` for a - Rule's target. This method is called by `~.find_handler` and can be - extended to provide additional target types. - - :arg target: a Rule's target. - :arg httputil.HTTPServerRequest request: current request. - :arg target_params: additional parameters that can be useful - for `~.httputil.HTTPMessageDelegate` creation. - """ - if isinstance(target, Router): - return target.find_handler(request, **target_params) - - elif isinstance(target, httputil.HTTPServerConnectionDelegate): - assert request.connection is not None - return target.start_request(request.server_connection, request.connection) - - elif callable(target): - assert request.connection is not None - return _CallableAdapter( - partial(target, **target_params), request.connection - ) - - return None - - -class ReversibleRuleRouter(ReversibleRouter, RuleRouter): - """A rule-based router that implements ``reverse_url`` method. - - Each rule added to this router may have a ``name`` attribute that can be - used to reconstruct an original uri. The actual reconstruction takes place - in a rule's matcher (see `Matcher.reverse`). - """ - - def __init__(self, rules: _RuleList = None) -> None: - self.named_rules = {} # type: Dict[str, Any] - super(ReversibleRuleRouter, self).__init__(rules) - - def process_rule(self, rule: "Rule") -> "Rule": - rule = super(ReversibleRuleRouter, self).process_rule(rule) - - if rule.name: - if rule.name in self.named_rules: - app_log.warning( - "Multiple handlers named %s; replacing previous value", rule.name - ) - self.named_rules[rule.name] = rule - - return rule - - def reverse_url(self, name: str, *args: Any) -> Optional[str]: - if name in self.named_rules: - return self.named_rules[name].matcher.reverse(*args) - - for rule in self.rules: - if isinstance(rule.target, ReversibleRouter): - reversed_url = rule.target.reverse_url(name, *args) - if reversed_url is not None: - return reversed_url - - return None - - -class Rule(object): - """A routing rule.""" - - def __init__( - self, - matcher: "Matcher", - target: Any, - target_kwargs: Dict[str, Any] = None, - name: str = None, - ) -> None: - """Constructs a Rule instance. - - :arg Matcher matcher: a `Matcher` instance used for determining - whether the rule should be considered a match for a specific - request. - :arg target: a Rule's target (typically a ``RequestHandler`` or - `~.httputil.HTTPServerConnectionDelegate` subclass or even a nested `Router`, - depending on routing implementation). - :arg dict target_kwargs: a dict of parameters that can be useful - at the moment of target instantiation (for example, ``status_code`` - for a ``RequestHandler`` subclass). They end up in - ``target_params['target_kwargs']`` of `RuleRouter.get_target_delegate` - method. - :arg str name: the name of the rule that can be used to find it - in `ReversibleRouter.reverse_url` implementation. - """ - if isinstance(target, str): - # import the Module and instantiate the class - # Must be a fully qualified name (module.ClassName) - target = import_object(target) - - self.matcher = matcher # type: Matcher - self.target = target - self.target_kwargs = target_kwargs if target_kwargs else {} - self.name = name - - def reverse(self, *args: Any) -> Optional[str]: - return self.matcher.reverse(*args) - - def __repr__(self) -> str: - return "%s(%r, %s, kwargs=%r, name=%r)" % ( - self.__class__.__name__, - self.matcher, - self.target, - self.target_kwargs, - self.name, - ) - - -class Matcher(object): - """Represents a matcher for request features.""" - - def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: - """Matches current instance against the request. - - :arg httputil.HTTPServerRequest request: current HTTP request - :returns: a dict of parameters to be passed to the target handler - (for example, ``handler_kwargs``, ``path_args``, ``path_kwargs`` - can be passed for proper `~.web.RequestHandler` instantiation). - An empty dict is a valid (and common) return value to indicate a match - when the argument-passing features are not used. - ``None`` must be returned to indicate that there is no match.""" - raise NotImplementedError() - - def reverse(self, *args: Any) -> Optional[str]: - """Reconstructs full url from matcher instance and additional arguments.""" - return None - - -class AnyMatches(Matcher): - """Matches any request.""" - - def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: - return {} - - -class HostMatches(Matcher): - """Matches requests from hosts specified by ``host_pattern`` regex.""" - - def __init__(self, host_pattern: Union[str, Pattern]) -> None: - if isinstance(host_pattern, basestring_type): - if not host_pattern.endswith("$"): - host_pattern += "$" - self.host_pattern = re.compile(host_pattern) - else: - self.host_pattern = host_pattern - - def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: - if self.host_pattern.match(request.host_name): - return {} - - return None - - -class DefaultHostMatches(Matcher): - """Matches requests from host that is equal to application's default_host. - Always returns no match if ``X-Real-Ip`` header is present. - """ - - def __init__(self, application: Any, host_pattern: Pattern) -> None: - self.application = application - self.host_pattern = host_pattern - - def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: - # Look for default host if not behind load balancer (for debugging) - if "X-Real-Ip" not in request.headers: - if self.host_pattern.match(self.application.default_host): - return {} - return None - - -class PathMatches(Matcher): - """Matches requests with paths specified by ``path_pattern`` regex.""" - - def __init__(self, path_pattern: Union[str, Pattern]) -> None: - if isinstance(path_pattern, basestring_type): - if not path_pattern.endswith("$"): - path_pattern += "$" - self.regex = re.compile(path_pattern) - else: - self.regex = path_pattern - - assert len(self.regex.groupindex) in (0, self.regex.groups), ( - "groups in url regexes must either be all named or all " - "positional: %r" % self.regex.pattern - ) - - self._path, self._group_count = self._find_groups() - - def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: - match = self.regex.match(request.path) - if match is None: - return None - if not self.regex.groups: - return {} - - path_args = [] # type: List[bytes] - path_kwargs = {} # type: Dict[str, bytes] - - # Pass matched groups to the handler. Since - # match.groups() includes both named and - # unnamed groups, we want to use either groups - # or groupdict but not both. - if self.regex.groupindex: - path_kwargs = dict( - (str(k), _unquote_or_none(v)) for (k, v) in match.groupdict().items() - ) - else: - path_args = [_unquote_or_none(s) for s in match.groups()] - - return dict(path_args=path_args, path_kwargs=path_kwargs) - - def reverse(self, *args: Any) -> Optional[str]: - if self._path is None: - raise ValueError("Cannot reverse url regex " + self.regex.pattern) - assert len(args) == self._group_count, ( - "required number of arguments " "not found" - ) - if not len(args): - return self._path - converted_args = [] - for a in args: - if not isinstance(a, (unicode_type, bytes)): - a = str(a) - converted_args.append(url_escape(utf8(a), plus=False)) - return self._path % tuple(converted_args) - - def _find_groups(self) -> Tuple[Optional[str], Optional[int]]: - """Returns a tuple (reverse string, group count) for a url. - - For example: Given the url pattern /([0-9]{4})/([a-z-]+)/, this method - would return ('/%s/%s/', 2). - """ - pattern = self.regex.pattern - if pattern.startswith("^"): - pattern = pattern[1:] - if pattern.endswith("$"): - pattern = pattern[:-1] - - if self.regex.groups != pattern.count("("): - # The pattern is too complicated for our simplistic matching, - # so we can't support reversing it. - return None, None - - pieces = [] - for fragment in pattern.split("("): - if ")" in fragment: - paren_loc = fragment.index(")") - if paren_loc >= 0: - pieces.append("%s" + fragment[paren_loc + 1 :]) - else: - try: - unescaped_fragment = re_unescape(fragment) - except ValueError: - # If we can't unescape part of it, we can't - # reverse this url. - return (None, None) - pieces.append(unescaped_fragment) - - return "".join(pieces), self.regex.groups - - -class URLSpec(Rule): - """Specifies mappings between URLs and handlers. - - .. versionchanged: 4.5 - `URLSpec` is now a subclass of a `Rule` with `PathMatches` matcher and is preserved for - backwards compatibility. - """ - - def __init__( - self, - pattern: Union[str, Pattern], - handler: Any, - kwargs: Dict[str, Any] = None, - name: str = None, - ) -> None: - """Parameters: - - * ``pattern``: Regular expression to be matched. Any capturing - groups in the regex will be passed in to the handler's - get/post/etc methods as arguments (by keyword if named, by - position if unnamed. Named and unnamed capturing groups - may not be mixed in the same rule). - - * ``handler``: `~.web.RequestHandler` subclass to be invoked. - - * ``kwargs`` (optional): A dictionary of additional arguments - to be passed to the handler's constructor. - - * ``name`` (optional): A name for this handler. Used by - `~.web.Application.reverse_url`. - - """ - matcher = PathMatches(pattern) - super(URLSpec, self).__init__(matcher, handler, kwargs, name) - - self.regex = matcher.regex - self.handler_class = self.target - self.kwargs = kwargs - - def __repr__(self) -> str: - return "%s(%r, %s, kwargs=%r, name=%r)" % ( - self.__class__.__name__, - self.regex.pattern, - self.handler_class, - self.kwargs, - self.name, - ) - - -@overload -def _unquote_or_none(s: str) -> bytes: - pass - - -@overload # noqa: F811 -def _unquote_or_none(s: None) -> None: - pass - - -def _unquote_or_none(s: Optional[str]) -> Optional[bytes]: # noqa: F811 - """None-safe wrapper around url_unescape to handle unmatched optional - groups correctly. - - Note that args are passed as bytes so the handler can decide what - encoding to use. - """ - if s is None: - return s - return url_unescape(s, encoding=None, plus=False) +# Copyright 2015 The Tornado Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Flexible routing implementation. + +Tornado routes HTTP requests to appropriate handlers using `Router` +class implementations. The `tornado.web.Application` class is a +`Router` implementation and may be used directly, or the classes in +this module may be used for additional flexibility. The `RuleRouter` +class can match on more criteria than `.Application`, or the `Router` +interface can be subclassed for maximum customization. + +`Router` interface extends `~.httputil.HTTPServerConnectionDelegate` +to provide additional routing capabilities. This also means that any +`Router` implementation can be used directly as a ``request_callback`` +for `~.httpserver.HTTPServer` constructor. + +`Router` subclass must implement a ``find_handler`` method to provide +a suitable `~.httputil.HTTPMessageDelegate` instance to handle the +request: + +.. code-block:: python + + class CustomRouter(Router): + def find_handler(self, request, **kwargs): + # some routing logic providing a suitable HTTPMessageDelegate instance + return MessageDelegate(request.connection) + + class MessageDelegate(HTTPMessageDelegate): + def __init__(self, connection): + self.connection = connection + + def finish(self): + self.connection.write_headers( + ResponseStartLine("HTTP/1.1", 200, "OK"), + HTTPHeaders({"Content-Length": "2"}), + b"OK") + self.connection.finish() + + router = CustomRouter() + server = HTTPServer(router) + +The main responsibility of `Router` implementation is to provide a +mapping from a request to `~.httputil.HTTPMessageDelegate` instance +that will handle this request. In the example above we can see that +routing is possible even without instantiating an `~.web.Application`. + +For routing to `~.web.RequestHandler` implementations we need an +`~.web.Application` instance. `~.web.Application.get_handler_delegate` +provides a convenient way to create `~.httputil.HTTPMessageDelegate` +for a given request and `~.web.RequestHandler`. + +Here is a simple example of how we can we route to +`~.web.RequestHandler` subclasses by HTTP method: + +.. code-block:: python + + resources = {} + + class GetResource(RequestHandler): + def get(self, path): + if path not in resources: + raise HTTPError(404) + + self.finish(resources[path]) + + class PostResource(RequestHandler): + def post(self, path): + resources[path] = self.request.body + + class HTTPMethodRouter(Router): + def __init__(self, app): + self.app = app + + def find_handler(self, request, **kwargs): + handler = GetResource if request.method == "GET" else PostResource + return self.app.get_handler_delegate(request, handler, path_args=[request.path]) + + router = HTTPMethodRouter(Application()) + server = HTTPServer(router) + +`ReversibleRouter` interface adds the ability to distinguish between +the routes and reverse them to the original urls using route's name +and additional arguments. `~.web.Application` is itself an +implementation of `ReversibleRouter` class. + +`RuleRouter` and `ReversibleRuleRouter` are implementations of +`Router` and `ReversibleRouter` interfaces and can be used for +creating rule-based routing configurations. + +Rules are instances of `Rule` class. They contain a `Matcher`, which +provides the logic for determining whether the rule is a match for a +particular request and a target, which can be one of the following. + +1) An instance of `~.httputil.HTTPServerConnectionDelegate`: + +.. code-block:: python + + router = RuleRouter([ + Rule(PathMatches("/handler"), ConnectionDelegate()), + # ... more rules + ]) + + class ConnectionDelegate(HTTPServerConnectionDelegate): + def start_request(self, server_conn, request_conn): + return MessageDelegate(request_conn) + +2) A callable accepting a single argument of `~.httputil.HTTPServerRequest` type: + +.. code-block:: python + + router = RuleRouter([ + Rule(PathMatches("/callable"), request_callable) + ]) + + def request_callable(request): + request.write(b"HTTP/1.1 200 OK\\r\\nContent-Length: 2\\r\\n\\r\\nOK") + request.finish() + +3) Another `Router` instance: + +.. code-block:: python + + router = RuleRouter([ + Rule(PathMatches("/router.*"), CustomRouter()) + ]) + +Of course a nested `RuleRouter` or a `~.web.Application` is allowed: + +.. code-block:: python + + router = RuleRouter([ + Rule(HostMatches("example.com"), RuleRouter([ + Rule(PathMatches("/app1/.*"), Application([(r"/app1/handler", Handler)]))), + ])) + ]) + + server = HTTPServer(router) + +In the example below `RuleRouter` is used to route between applications: + +.. code-block:: python + + app1 = Application([ + (r"/app1/handler", Handler1), + # other handlers ... + ]) + + app2 = Application([ + (r"/app2/handler", Handler2), + # other handlers ... + ]) + + router = RuleRouter([ + Rule(PathMatches("/app1.*"), app1), + Rule(PathMatches("/app2.*"), app2) + ]) + + server = HTTPServer(router) + +For more information on application-level routing see docs for `~.web.Application`. + +.. versionadded:: 4.5 + +""" + +import re +from functools import partial + +from tornado import httputil +from tornado.httpserver import _CallableAdapter +from tornado.escape import url_escape, url_unescape, utf8 +from tornado.log import app_log +from tornado.util import basestring_type, import_object, re_unescape, unicode_type + +from typing import Any, Union, Optional, Awaitable, List, Dict, Pattern, Tuple, overload + + +class Router(httputil.HTTPServerConnectionDelegate): + """Abstract router interface.""" + + def find_handler( + self, request: httputil.HTTPServerRequest, **kwargs: Any + ) -> Optional[httputil.HTTPMessageDelegate]: + """Must be implemented to return an appropriate instance of `~.httputil.HTTPMessageDelegate` + that can serve the request. + Routing implementations may pass additional kwargs to extend the routing logic. + + :arg httputil.HTTPServerRequest request: current HTTP request. + :arg kwargs: additional keyword arguments passed by routing implementation. + :returns: an instance of `~.httputil.HTTPMessageDelegate` that will be used to + process the request. + """ + raise NotImplementedError() + + def start_request( + self, server_conn: object, request_conn: httputil.HTTPConnection + ) -> httputil.HTTPMessageDelegate: + return _RoutingDelegate(self, server_conn, request_conn) + + +class ReversibleRouter(Router): + """Abstract router interface for routers that can handle named routes + and support reversing them to original urls. + """ + + def reverse_url(self, name: str, *args: Any) -> Optional[str]: + """Returns url string for a given route name and arguments + or ``None`` if no match is found. + + :arg str name: route name. + :arg args: url parameters. + :returns: parametrized url string for a given route name (or ``None``). + """ + raise NotImplementedError() + + +class _RoutingDelegate(httputil.HTTPMessageDelegate): + def __init__( + self, router: Router, server_conn: object, request_conn: httputil.HTTPConnection + ) -> None: + self.server_conn = server_conn + self.request_conn = request_conn + self.delegate = None # type: Optional[httputil.HTTPMessageDelegate] + self.router = router # type: Router + + def headers_received( + self, + start_line: Union[httputil.RequestStartLine, httputil.ResponseStartLine], + headers: httputil.HTTPHeaders, + ) -> Optional[Awaitable[None]]: + assert isinstance(start_line, httputil.RequestStartLine) + request = httputil.HTTPServerRequest( + connection=self.request_conn, + server_connection=self.server_conn, + start_line=start_line, + headers=headers, + ) + + self.delegate = self.router.find_handler(request) + if self.delegate is None: + app_log.debug( + "Delegate for %s %s request not found", + start_line.method, + start_line.path, + ) + self.delegate = _DefaultMessageDelegate(self.request_conn) + + return self.delegate.headers_received(start_line, headers) + + def data_received(self, chunk: bytes) -> Optional[Awaitable[None]]: + assert self.delegate is not None + return self.delegate.data_received(chunk) + + def finish(self) -> None: + assert self.delegate is not None + self.delegate.finish() + + def on_connection_close(self) -> None: + assert self.delegate is not None + self.delegate.on_connection_close() + + +class _DefaultMessageDelegate(httputil.HTTPMessageDelegate): + def __init__(self, connection: httputil.HTTPConnection) -> None: + self.connection = connection + + def finish(self) -> None: + self.connection.write_headers( + httputil.ResponseStartLine("HTTP/1.1", 404, "Not Found"), + httputil.HTTPHeaders(), + ) + self.connection.finish() + + +# _RuleList can either contain pre-constructed Rules or a sequence of +# arguments to be passed to the Rule constructor. +_RuleList = List[ + Union[ + "Rule", + List[Any], # Can't do detailed typechecking of lists. + Tuple[Union[str, "Matcher"], Any], + Tuple[Union[str, "Matcher"], Any, Dict[str, Any]], + Tuple[Union[str, "Matcher"], Any, Dict[str, Any], str], + ] +] + + +class RuleRouter(Router): + """Rule-based router implementation.""" + + def __init__(self, rules: _RuleList = None) -> None: + """Constructs a router from an ordered list of rules:: + + RuleRouter([ + Rule(PathMatches("/handler"), Target), + # ... more rules + ]) + + You can also omit explicit `Rule` constructor and use tuples of arguments:: + + RuleRouter([ + (PathMatches("/handler"), Target), + ]) + + `PathMatches` is a default matcher, so the example above can be simplified:: + + RuleRouter([ + ("/handler", Target), + ]) + + In the examples above, ``Target`` can be a nested `Router` instance, an instance of + `~.httputil.HTTPServerConnectionDelegate` or an old-style callable, + accepting a request argument. + + :arg rules: a list of `Rule` instances or tuples of `Rule` + constructor arguments. + """ + self.rules = [] # type: List[Rule] + if rules: + self.add_rules(rules) + + def add_rules(self, rules: _RuleList) -> None: + """Appends new rules to the router. + + :arg rules: a list of Rule instances (or tuples of arguments, which are + passed to Rule constructor). + """ + for rule in rules: + if isinstance(rule, (tuple, list)): + assert len(rule) in (2, 3, 4) + if isinstance(rule[0], basestring_type): + rule = Rule(PathMatches(rule[0]), *rule[1:]) + else: + rule = Rule(*rule) + + self.rules.append(self.process_rule(rule)) + + def process_rule(self, rule: "Rule") -> "Rule": + """Override this method for additional preprocessing of each rule. + + :arg Rule rule: a rule to be processed. + :returns: the same or modified Rule instance. + """ + return rule + + def find_handler( + self, request: httputil.HTTPServerRequest, **kwargs: Any + ) -> Optional[httputil.HTTPMessageDelegate]: + for rule in self.rules: + target_params = rule.matcher.match(request) + if target_params is not None: + if rule.target_kwargs: + target_params["target_kwargs"] = rule.target_kwargs + + delegate = self.get_target_delegate( + rule.target, request, **target_params + ) + + if delegate is not None: + return delegate + + return None + + def get_target_delegate( + self, target: Any, request: httputil.HTTPServerRequest, **target_params: Any + ) -> Optional[httputil.HTTPMessageDelegate]: + """Returns an instance of `~.httputil.HTTPMessageDelegate` for a + Rule's target. This method is called by `~.find_handler` and can be + extended to provide additional target types. + + :arg target: a Rule's target. + :arg httputil.HTTPServerRequest request: current request. + :arg target_params: additional parameters that can be useful + for `~.httputil.HTTPMessageDelegate` creation. + """ + if isinstance(target, Router): + return target.find_handler(request, **target_params) + + elif isinstance(target, httputil.HTTPServerConnectionDelegate): + assert request.connection is not None + return target.start_request(request.server_connection, request.connection) + + elif callable(target): + assert request.connection is not None + return _CallableAdapter( + partial(target, **target_params), request.connection + ) + + return None + + +class ReversibleRuleRouter(ReversibleRouter, RuleRouter): + """A rule-based router that implements ``reverse_url`` method. + + Each rule added to this router may have a ``name`` attribute that can be + used to reconstruct an original uri. The actual reconstruction takes place + in a rule's matcher (see `Matcher.reverse`). + """ + + def __init__(self, rules: _RuleList = None) -> None: + self.named_rules = {} # type: Dict[str, Any] + super(ReversibleRuleRouter, self).__init__(rules) + + def process_rule(self, rule: "Rule") -> "Rule": + rule = super(ReversibleRuleRouter, self).process_rule(rule) + + if rule.name: + if rule.name in self.named_rules: + app_log.warning( + "Multiple handlers named %s; replacing previous value", rule.name + ) + self.named_rules[rule.name] = rule + + return rule + + def reverse_url(self, name: str, *args: Any) -> Optional[str]: + if name in self.named_rules: + return self.named_rules[name].matcher.reverse(*args) + + for rule in self.rules: + if isinstance(rule.target, ReversibleRouter): + reversed_url = rule.target.reverse_url(name, *args) + if reversed_url is not None: + return reversed_url + + return None + + +class Rule(object): + """A routing rule.""" + + def __init__( + self, + matcher: "Matcher", + target: Any, + target_kwargs: Dict[str, Any] = None, + name: str = None, + ) -> None: + """Constructs a Rule instance. + + :arg Matcher matcher: a `Matcher` instance used for determining + whether the rule should be considered a match for a specific + request. + :arg target: a Rule's target (typically a ``RequestHandler`` or + `~.httputil.HTTPServerConnectionDelegate` subclass or even a nested `Router`, + depending on routing implementation). + :arg dict target_kwargs: a dict of parameters that can be useful + at the moment of target instantiation (for example, ``status_code`` + for a ``RequestHandler`` subclass). They end up in + ``target_params['target_kwargs']`` of `RuleRouter.get_target_delegate` + method. + :arg str name: the name of the rule that can be used to find it + in `ReversibleRouter.reverse_url` implementation. + """ + if isinstance(target, str): + # import the Module and instantiate the class + # Must be a fully qualified name (module.ClassName) + target = import_object(target) + + self.matcher = matcher # type: Matcher + self.target = target + self.target_kwargs = target_kwargs if target_kwargs else {} + self.name = name + + def reverse(self, *args: Any) -> Optional[str]: + return self.matcher.reverse(*args) + + def __repr__(self) -> str: + return "%s(%r, %s, kwargs=%r, name=%r)" % ( + self.__class__.__name__, + self.matcher, + self.target, + self.target_kwargs, + self.name, + ) + + +class Matcher(object): + """Represents a matcher for request features.""" + + def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: + """Matches current instance against the request. + + :arg httputil.HTTPServerRequest request: current HTTP request + :returns: a dict of parameters to be passed to the target handler + (for example, ``handler_kwargs``, ``path_args``, ``path_kwargs`` + can be passed for proper `~.web.RequestHandler` instantiation). + An empty dict is a valid (and common) return value to indicate a match + when the argument-passing features are not used. + ``None`` must be returned to indicate that there is no match.""" + raise NotImplementedError() + + def reverse(self, *args: Any) -> Optional[str]: + """Reconstructs full url from matcher instance and additional arguments.""" + return None + + +class AnyMatches(Matcher): + """Matches any request.""" + + def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: + return {} + + +class HostMatches(Matcher): + """Matches requests from hosts specified by ``host_pattern`` regex.""" + + def __init__(self, host_pattern: Union[str, Pattern]) -> None: + if isinstance(host_pattern, basestring_type): + if not host_pattern.endswith("$"): + host_pattern += "$" + self.host_pattern = re.compile(host_pattern) + else: + self.host_pattern = host_pattern + + def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: + if self.host_pattern.match(request.host_name): + return {} + + return None + + +class DefaultHostMatches(Matcher): + """Matches requests from host that is equal to application's default_host. + Always returns no match if ``X-Real-Ip`` header is present. + """ + + def __init__(self, application: Any, host_pattern: Pattern) -> None: + self.application = application + self.host_pattern = host_pattern + + def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: + # Look for default host if not behind load balancer (for debugging) + if "X-Real-Ip" not in request.headers: + if self.host_pattern.match(self.application.default_host): + return {} + return None + + +class PathMatches(Matcher): + """Matches requests with paths specified by ``path_pattern`` regex.""" + + def __init__(self, path_pattern: Union[str, Pattern]) -> None: + if isinstance(path_pattern, basestring_type): + if not path_pattern.endswith("$"): + path_pattern += "$" + self.regex = re.compile(path_pattern) + else: + self.regex = path_pattern + + assert len(self.regex.groupindex) in (0, self.regex.groups), ( + "groups in url regexes must either be all named or all " + "positional: %r" % self.regex.pattern + ) + + self._path, self._group_count = self._find_groups() + + def match(self, request: httputil.HTTPServerRequest) -> Optional[Dict[str, Any]]: + match = self.regex.match(request.path) + if match is None: + return None + if not self.regex.groups: + return {} + + path_args = [] # type: List[bytes] + path_kwargs = {} # type: Dict[str, bytes] + + # Pass matched groups to the handler. Since + # match.groups() includes both named and + # unnamed groups, we want to use either groups + # or groupdict but not both. + if self.regex.groupindex: + path_kwargs = dict( + (str(k), _unquote_or_none(v)) for (k, v) in match.groupdict().items() + ) + else: + path_args = [_unquote_or_none(s) for s in match.groups()] + + return dict(path_args=path_args, path_kwargs=path_kwargs) + + def reverse(self, *args: Any) -> Optional[str]: + if self._path is None: + raise ValueError("Cannot reverse url regex " + self.regex.pattern) + assert len(args) == self._group_count, ( + "required number of arguments " "not found" + ) + if not len(args): + return self._path + converted_args = [] + for a in args: + if not isinstance(a, (unicode_type, bytes)): + a = str(a) + converted_args.append(url_escape(utf8(a), plus=False)) + return self._path % tuple(converted_args) + + def _find_groups(self) -> Tuple[Optional[str], Optional[int]]: + """Returns a tuple (reverse string, group count) for a url. + + For example: Given the url pattern /([0-9]{4})/([a-z-]+)/, this method + would return ('/%s/%s/', 2). + """ + pattern = self.regex.pattern + if pattern.startswith("^"): + pattern = pattern[1:] + if pattern.endswith("$"): + pattern = pattern[:-1] + + if self.regex.groups != pattern.count("("): + # The pattern is too complicated for our simplistic matching, + # so we can't support reversing it. + return None, None + + pieces = [] + for fragment in pattern.split("("): + if ")" in fragment: + paren_loc = fragment.index(")") + if paren_loc >= 0: + pieces.append("%s" + fragment[paren_loc + 1 :]) + else: + try: + unescaped_fragment = re_unescape(fragment) + except ValueError: + # If we can't unescape part of it, we can't + # reverse this url. + return (None, None) + pieces.append(unescaped_fragment) + + return "".join(pieces), self.regex.groups + + +class URLSpec(Rule): + """Specifies mappings between URLs and handlers. + + .. versionchanged: 4.5 + `URLSpec` is now a subclass of a `Rule` with `PathMatches` matcher and is preserved for + backwards compatibility. + """ + + def __init__( + self, + pattern: Union[str, Pattern], + handler: Any, + kwargs: Dict[str, Any] = None, + name: str = None, + ) -> None: + """Parameters: + + * ``pattern``: Regular expression to be matched. Any capturing + groups in the regex will be passed in to the handler's + get/post/etc methods as arguments (by keyword if named, by + position if unnamed. Named and unnamed capturing groups + may not be mixed in the same rule). + + * ``handler``: `~.web.RequestHandler` subclass to be invoked. + + * ``kwargs`` (optional): A dictionary of additional arguments + to be passed to the handler's constructor. + + * ``name`` (optional): A name for this handler. Used by + `~.web.Application.reverse_url`. + + """ + matcher = PathMatches(pattern) + super(URLSpec, self).__init__(matcher, handler, kwargs, name) + + self.regex = matcher.regex + self.handler_class = self.target + self.kwargs = kwargs + + def __repr__(self) -> str: + return "%s(%r, %s, kwargs=%r, name=%r)" % ( + self.__class__.__name__, + self.regex.pattern, + self.handler_class, + self.kwargs, + self.name, + ) + + +@overload +def _unquote_or_none(s: str) -> bytes: + pass + + +@overload # noqa: F811 +def _unquote_or_none(s: None) -> None: + pass + + +def _unquote_or_none(s: Optional[str]) -> Optional[bytes]: # noqa: F811 + """None-safe wrapper around url_unescape to handle unmatched optional + groups correctly. + + Note that args are passed as bytes so the handler can decide what + encoding to use. + """ + if s is None: + return s + return url_unescape(s, encoding=None, plus=False) diff --git a/server/www/packages/packages-linux/x64/tornado/simple_httpclient.py b/server/www/packages/packages-linux/x64/tornado/simple_httpclient.py index 1d82890..8b2ffe0 100644 --- a/server/www/packages/packages-linux/x64/tornado/simple_httpclient.py +++ b/server/www/packages/packages-linux/x64/tornado/simple_httpclient.py @@ -1,692 +1,692 @@ -from tornado.escape import _unicode -from tornado import gen -from tornado.httpclient import ( - HTTPResponse, - HTTPError, - AsyncHTTPClient, - main, - _RequestProxy, - HTTPRequest, -) -from tornado import httputil -from tornado.http1connection import HTTP1Connection, HTTP1ConnectionParameters -from tornado.ioloop import IOLoop -from tornado.iostream import StreamClosedError, IOStream -from tornado.netutil import ( - Resolver, - OverrideResolver, - _client_ssl_defaults, - is_valid_ip, -) -from tornado.log import gen_log -from tornado.tcpclient import TCPClient - -import base64 -import collections -import copy -import functools -import re -import socket -import ssl -import sys -import time -from io import BytesIO -import urllib.parse - -from typing import Dict, Any, Callable, Optional, Type, Union -from types import TracebackType -import typing - -if typing.TYPE_CHECKING: - from typing import Deque, Tuple, List # noqa: F401 - - -class HTTPTimeoutError(HTTPError): - """Error raised by SimpleAsyncHTTPClient on timeout. - - For historical reasons, this is a subclass of `.HTTPClientError` - which simulates a response code of 599. - - .. versionadded:: 5.1 - """ - - def __init__(self, message: str) -> None: - super(HTTPTimeoutError, self).__init__(599, message=message) - - def __str__(self) -> str: - return self.message or "Timeout" - - -class HTTPStreamClosedError(HTTPError): - """Error raised by SimpleAsyncHTTPClient when the underlying stream is closed. - - When a more specific exception is available (such as `ConnectionResetError`), - it may be raised instead of this one. - - For historical reasons, this is a subclass of `.HTTPClientError` - which simulates a response code of 599. - - .. versionadded:: 5.1 - """ - - def __init__(self, message: str) -> None: - super(HTTPStreamClosedError, self).__init__(599, message=message) - - def __str__(self) -> str: - return self.message or "Stream closed" - - -class SimpleAsyncHTTPClient(AsyncHTTPClient): - """Non-blocking HTTP client with no external dependencies. - - This class implements an HTTP 1.1 client on top of Tornado's IOStreams. - Some features found in the curl-based AsyncHTTPClient are not yet - supported. In particular, proxies are not supported, connections - are not reused, and callers cannot select the network interface to be - used. - """ - - def initialize( # type: ignore - self, - max_clients: int = 10, - hostname_mapping: Dict[str, str] = None, - max_buffer_size: int = 104857600, - resolver: Resolver = None, - defaults: Dict[str, Any] = None, - max_header_size: int = None, - max_body_size: int = None, - ) -> None: - """Creates a AsyncHTTPClient. - - Only a single AsyncHTTPClient instance exists per IOLoop - in order to provide limitations on the number of pending connections. - ``force_instance=True`` may be used to suppress this behavior. - - Note that because of this implicit reuse, unless ``force_instance`` - is used, only the first call to the constructor actually uses - its arguments. It is recommended to use the ``configure`` method - instead of the constructor to ensure that arguments take effect. - - ``max_clients`` is the number of concurrent requests that can be - in progress; when this limit is reached additional requests will be - queued. Note that time spent waiting in this queue still counts - against the ``request_timeout``. - - ``hostname_mapping`` is a dictionary mapping hostnames to IP addresses. - It can be used to make local DNS changes when modifying system-wide - settings like ``/etc/hosts`` is not possible or desirable (e.g. in - unittests). - - ``max_buffer_size`` (default 100MB) is the number of bytes - that can be read into memory at once. ``max_body_size`` - (defaults to ``max_buffer_size``) is the largest response body - that the client will accept. Without a - ``streaming_callback``, the smaller of these two limits - applies; with a ``streaming_callback`` only ``max_body_size`` - does. - - .. versionchanged:: 4.2 - Added the ``max_body_size`` argument. - """ - super(SimpleAsyncHTTPClient, self).initialize(defaults=defaults) - self.max_clients = max_clients - self.queue = ( - collections.deque() - ) # type: Deque[Tuple[object, HTTPRequest, Callable[[HTTPResponse], None]]] - self.active = ( - {} - ) # type: Dict[object, Tuple[HTTPRequest, Callable[[HTTPResponse], None]]] - self.waiting = ( - {} - ) # type: Dict[object, Tuple[HTTPRequest, Callable[[HTTPResponse], None], object]] - self.max_buffer_size = max_buffer_size - self.max_header_size = max_header_size - self.max_body_size = max_body_size - # TCPClient could create a Resolver for us, but we have to do it - # ourselves to support hostname_mapping. - if resolver: - self.resolver = resolver - self.own_resolver = False - else: - self.resolver = Resolver() - self.own_resolver = True - if hostname_mapping is not None: - self.resolver = OverrideResolver( - resolver=self.resolver, mapping=hostname_mapping - ) - self.tcp_client = TCPClient(resolver=self.resolver) - - def close(self) -> None: - super(SimpleAsyncHTTPClient, self).close() - if self.own_resolver: - self.resolver.close() - self.tcp_client.close() - - def fetch_impl( - self, request: HTTPRequest, callback: Callable[[HTTPResponse], None] - ) -> None: - key = object() - self.queue.append((key, request, callback)) - if not len(self.active) < self.max_clients: - assert request.connect_timeout is not None - assert request.request_timeout is not None - timeout_handle = self.io_loop.add_timeout( - self.io_loop.time() - + min(request.connect_timeout, request.request_timeout), - functools.partial(self._on_timeout, key, "in request queue"), - ) - else: - timeout_handle = None - self.waiting[key] = (request, callback, timeout_handle) - self._process_queue() - if self.queue: - gen_log.debug( - "max_clients limit reached, request queued. " - "%d active, %d queued requests." % (len(self.active), len(self.queue)) - ) - - def _process_queue(self) -> None: - while self.queue and len(self.active) < self.max_clients: - key, request, callback = self.queue.popleft() - if key not in self.waiting: - continue - self._remove_timeout(key) - self.active[key] = (request, callback) - release_callback = functools.partial(self._release_fetch, key) - self._handle_request(request, release_callback, callback) - - def _connection_class(self) -> type: - return _HTTPConnection - - def _handle_request( - self, - request: HTTPRequest, - release_callback: Callable[[], None], - final_callback: Callable[[HTTPResponse], None], - ) -> None: - self._connection_class()( - self, - request, - release_callback, - final_callback, - self.max_buffer_size, - self.tcp_client, - self.max_header_size, - self.max_body_size, - ) - - def _release_fetch(self, key: object) -> None: - del self.active[key] - self._process_queue() - - def _remove_timeout(self, key: object) -> None: - if key in self.waiting: - request, callback, timeout_handle = self.waiting[key] - if timeout_handle is not None: - self.io_loop.remove_timeout(timeout_handle) - del self.waiting[key] - - def _on_timeout(self, key: object, info: str = None) -> None: - """Timeout callback of request. - - Construct a timeout HTTPResponse when a timeout occurs. - - :arg object key: A simple object to mark the request. - :info string key: More detailed timeout information. - """ - request, callback, timeout_handle = self.waiting[key] - self.queue.remove((key, request, callback)) - - error_message = "Timeout {0}".format(info) if info else "Timeout" - timeout_response = HTTPResponse( - request, - 599, - error=HTTPTimeoutError(error_message), - request_time=self.io_loop.time() - request.start_time, - ) - self.io_loop.add_callback(callback, timeout_response) - del self.waiting[key] - - -class _HTTPConnection(httputil.HTTPMessageDelegate): - _SUPPORTED_METHODS = set( - ["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"] - ) - - def __init__( - self, - client: Optional[SimpleAsyncHTTPClient], - request: HTTPRequest, - release_callback: Callable[[], None], - final_callback: Callable[[HTTPResponse], None], - max_buffer_size: int, - tcp_client: TCPClient, - max_header_size: int, - max_body_size: int, - ) -> None: - self.io_loop = IOLoop.current() - self.start_time = self.io_loop.time() - self.start_wall_time = time.time() - self.client = client - self.request = request - self.release_callback = release_callback - self.final_callback = final_callback - self.max_buffer_size = max_buffer_size - self.tcp_client = tcp_client - self.max_header_size = max_header_size - self.max_body_size = max_body_size - self.code = None # type: Optional[int] - self.headers = None # type: Optional[httputil.HTTPHeaders] - self.chunks = [] # type: List[bytes] - self._decompressor = None - # Timeout handle returned by IOLoop.add_timeout - self._timeout = None # type: object - self._sockaddr = None - IOLoop.current().add_future( - gen.convert_yielded(self.run()), lambda f: f.result() - ) - - async def run(self) -> None: - try: - self.parsed = urllib.parse.urlsplit(_unicode(self.request.url)) - if self.parsed.scheme not in ("http", "https"): - raise ValueError("Unsupported url scheme: %s" % self.request.url) - # urlsplit results have hostname and port results, but they - # didn't support ipv6 literals until python 2.7. - netloc = self.parsed.netloc - if "@" in netloc: - userpass, _, netloc = netloc.rpartition("@") - host, port = httputil.split_host_and_port(netloc) - if port is None: - port = 443 if self.parsed.scheme == "https" else 80 - if re.match(r"^\[.*\]$", host): - # raw ipv6 addresses in urls are enclosed in brackets - host = host[1:-1] - self.parsed_hostname = host # save final host for _on_connect - - if self.request.allow_ipv6 is False: - af = socket.AF_INET - else: - af = socket.AF_UNSPEC - - ssl_options = self._get_ssl_options(self.parsed.scheme) - - source_ip = None - if self.request.network_interface: - if is_valid_ip(self.request.network_interface): - source_ip = self.request.network_interface - else: - raise ValueError( - "Unrecognized IPv4 or IPv6 address for network_interface, got %r" - % (self.request.network_interface,) - ) - - timeout = min(self.request.connect_timeout, self.request.request_timeout) - if timeout: - self._timeout = self.io_loop.add_timeout( - self.start_time + timeout, - functools.partial(self._on_timeout, "while connecting"), - ) - stream = await self.tcp_client.connect( - host, - port, - af=af, - ssl_options=ssl_options, - max_buffer_size=self.max_buffer_size, - source_ip=source_ip, - ) - - if self.final_callback is None: - # final_callback is cleared if we've hit our timeout. - stream.close() - return - self.stream = stream - self.stream.set_close_callback(self.on_connection_close) - self._remove_timeout() - if self.final_callback is None: - return - if self.request.request_timeout: - self._timeout = self.io_loop.add_timeout( - self.start_time + self.request.request_timeout, - functools.partial(self._on_timeout, "during request"), - ) - if ( - self.request.method not in self._SUPPORTED_METHODS - and not self.request.allow_nonstandard_methods - ): - raise KeyError("unknown method %s" % self.request.method) - for key in ( - "proxy_host", - "proxy_port", - "proxy_username", - "proxy_password", - "proxy_auth_mode", - ): - if getattr(self.request, key, None): - raise NotImplementedError("%s not supported" % key) - if "Connection" not in self.request.headers: - self.request.headers["Connection"] = "close" - if "Host" not in self.request.headers: - if "@" in self.parsed.netloc: - self.request.headers["Host"] = self.parsed.netloc.rpartition( - "@" - )[-1] - else: - self.request.headers["Host"] = self.parsed.netloc - username, password = None, None - if self.parsed.username is not None: - username, password = self.parsed.username, self.parsed.password - elif self.request.auth_username is not None: - username = self.request.auth_username - password = self.request.auth_password or "" - if username is not None: - assert password is not None - if self.request.auth_mode not in (None, "basic"): - raise ValueError( - "unsupported auth_mode %s", self.request.auth_mode - ) - self.request.headers["Authorization"] = "Basic " + _unicode( - base64.b64encode( - httputil.encode_username_password(username, password) - ) - ) - if self.request.user_agent: - self.request.headers["User-Agent"] = self.request.user_agent - if not self.request.allow_nonstandard_methods: - # Some HTTP methods nearly always have bodies while others - # almost never do. Fail in this case unless the user has - # opted out of sanity checks with allow_nonstandard_methods. - body_expected = self.request.method in ("POST", "PATCH", "PUT") - body_present = ( - self.request.body is not None - or self.request.body_producer is not None - ) - if (body_expected and not body_present) or ( - body_present and not body_expected - ): - raise ValueError( - "Body must %sbe None for method %s (unless " - "allow_nonstandard_methods is true)" - % ("not " if body_expected else "", self.request.method) - ) - if self.request.expect_100_continue: - self.request.headers["Expect"] = "100-continue" - if self.request.body is not None: - # When body_producer is used the caller is responsible for - # setting Content-Length (or else chunked encoding will be used). - self.request.headers["Content-Length"] = str(len(self.request.body)) - if ( - self.request.method == "POST" - and "Content-Type" not in self.request.headers - ): - self.request.headers[ - "Content-Type" - ] = "application/x-www-form-urlencoded" - if self.request.decompress_response: - self.request.headers["Accept-Encoding"] = "gzip" - req_path = (self.parsed.path or "/") + ( - ("?" + self.parsed.query) if self.parsed.query else "" - ) - self.connection = self._create_connection(stream) - start_line = httputil.RequestStartLine( - self.request.method, req_path, "" - ) - self.connection.write_headers(start_line, self.request.headers) - if self.request.expect_100_continue: - await self.connection.read_response(self) - else: - await self._write_body(True) - except Exception: - if not self._handle_exception(*sys.exc_info()): - raise - - def _get_ssl_options( - self, scheme: str - ) -> Union[None, Dict[str, Any], ssl.SSLContext]: - if scheme == "https": - if self.request.ssl_options is not None: - return self.request.ssl_options - # If we are using the defaults, don't construct a - # new SSLContext. - if ( - self.request.validate_cert - and self.request.ca_certs is None - and self.request.client_cert is None - and self.request.client_key is None - ): - return _client_ssl_defaults - ssl_ctx = ssl.create_default_context( - ssl.Purpose.SERVER_AUTH, cafile=self.request.ca_certs - ) - if not self.request.validate_cert: - ssl_ctx.check_hostname = False - ssl_ctx.verify_mode = ssl.CERT_NONE - if self.request.client_cert is not None: - ssl_ctx.load_cert_chain( - self.request.client_cert, self.request.client_key - ) - if hasattr(ssl, "OP_NO_COMPRESSION"): - # See netutil.ssl_options_to_context - ssl_ctx.options |= ssl.OP_NO_COMPRESSION - return ssl_ctx - return None - - def _on_timeout(self, info: str = None) -> None: - """Timeout callback of _HTTPConnection instance. - - Raise a `HTTPTimeoutError` when a timeout occurs. - - :info string key: More detailed timeout information. - """ - self._timeout = None - error_message = "Timeout {0}".format(info) if info else "Timeout" - if self.final_callback is not None: - self._handle_exception( - HTTPTimeoutError, HTTPTimeoutError(error_message), None - ) - - def _remove_timeout(self) -> None: - if self._timeout is not None: - self.io_loop.remove_timeout(self._timeout) - self._timeout = None - - def _create_connection(self, stream: IOStream) -> HTTP1Connection: - stream.set_nodelay(True) - connection = HTTP1Connection( - stream, - True, - HTTP1ConnectionParameters( - no_keep_alive=True, - max_header_size=self.max_header_size, - max_body_size=self.max_body_size, - decompress=bool(self.request.decompress_response), - ), - self._sockaddr, - ) - return connection - - async def _write_body(self, start_read: bool) -> None: - if self.request.body is not None: - self.connection.write(self.request.body) - elif self.request.body_producer is not None: - fut = self.request.body_producer(self.connection.write) - if fut is not None: - await fut - self.connection.finish() - if start_read: - try: - await self.connection.read_response(self) - except StreamClosedError: - if not self._handle_exception(*sys.exc_info()): - raise - - def _release(self) -> None: - if self.release_callback is not None: - release_callback = self.release_callback - self.release_callback = None # type: ignore - release_callback() - - def _run_callback(self, response: HTTPResponse) -> None: - self._release() - if self.final_callback is not None: - final_callback = self.final_callback - self.final_callback = None # type: ignore - self.io_loop.add_callback(final_callback, response) - - def _handle_exception( - self, - typ: "Optional[Type[BaseException]]", - value: Optional[BaseException], - tb: Optional[TracebackType], - ) -> bool: - if self.final_callback: - self._remove_timeout() - if isinstance(value, StreamClosedError): - if value.real_error is None: - value = HTTPStreamClosedError("Stream closed") - else: - value = value.real_error - self._run_callback( - HTTPResponse( - self.request, - 599, - error=value, - request_time=self.io_loop.time() - self.start_time, - start_time=self.start_wall_time, - ) - ) - - if hasattr(self, "stream"): - # TODO: this may cause a StreamClosedError to be raised - # by the connection's Future. Should we cancel the - # connection more gracefully? - self.stream.close() - return True - else: - # If our callback has already been called, we are probably - # catching an exception that is not caused by us but rather - # some child of our callback. Rather than drop it on the floor, - # pass it along, unless it's just the stream being closed. - return isinstance(value, StreamClosedError) - - def on_connection_close(self) -> None: - if self.final_callback is not None: - message = "Connection closed" - if self.stream.error: - raise self.stream.error - try: - raise HTTPStreamClosedError(message) - except HTTPStreamClosedError: - self._handle_exception(*sys.exc_info()) - - async def headers_received( - self, - first_line: Union[httputil.ResponseStartLine, httputil.RequestStartLine], - headers: httputil.HTTPHeaders, - ) -> None: - assert isinstance(first_line, httputil.ResponseStartLine) - if self.request.expect_100_continue and first_line.code == 100: - await self._write_body(False) - return - self.code = first_line.code - self.reason = first_line.reason - self.headers = headers - - if self._should_follow_redirect(): - return - - if self.request.header_callback is not None: - # Reassemble the start line. - self.request.header_callback("%s %s %s\r\n" % first_line) - for k, v in self.headers.get_all(): - self.request.header_callback("%s: %s\r\n" % (k, v)) - self.request.header_callback("\r\n") - - def _should_follow_redirect(self) -> bool: - if self.request.follow_redirects: - assert self.request.max_redirects is not None - return ( - self.code in (301, 302, 303, 307, 308) - and self.request.max_redirects > 0 - and self.headers is not None - and self.headers.get("Location") is not None - ) - return False - - def finish(self) -> None: - assert self.code is not None - data = b"".join(self.chunks) - self._remove_timeout() - original_request = getattr(self.request, "original_request", self.request) - if self._should_follow_redirect(): - assert isinstance(self.request, _RequestProxy) - new_request = copy.copy(self.request.request) - new_request.url = urllib.parse.urljoin( - self.request.url, self.headers["Location"] - ) - new_request.max_redirects = self.request.max_redirects - 1 - del new_request.headers["Host"] - # https://tools.ietf.org/html/rfc7231#section-6.4 - # - # The original HTTP spec said that after a 301 or 302 - # redirect, the request method should be preserved. - # However, browsers implemented this by changing the - # method to GET, and the behavior stuck. 303 redirects - # always specified this POST-to-GET behavior (arguably 303 - # redirects should change *all* requests to GET, but - # libcurl only does this for POST so we follow their - # example). - if self.code in (301, 302, 303) and self.request.method == "POST": - new_request.method = "GET" - new_request.body = None - for h in [ - "Content-Length", - "Content-Type", - "Content-Encoding", - "Transfer-Encoding", - ]: - try: - del self.request.headers[h] - except KeyError: - pass - new_request.original_request = original_request - final_callback = self.final_callback - self.final_callback = None - self._release() - fut = self.client.fetch(new_request, raise_error=False) - fut.add_done_callback(lambda f: final_callback(f.result())) - self._on_end_request() - return - if self.request.streaming_callback: - buffer = BytesIO() - else: - buffer = BytesIO(data) # TODO: don't require one big string? - response = HTTPResponse( - original_request, - self.code, - reason=getattr(self, "reason", None), - headers=self.headers, - request_time=self.io_loop.time() - self.start_time, - start_time=self.start_wall_time, - buffer=buffer, - effective_url=self.request.url, - ) - self._run_callback(response) - self._on_end_request() - - def _on_end_request(self) -> None: - self.stream.close() - - def data_received(self, chunk: bytes) -> None: - if self._should_follow_redirect(): - # We're going to follow a redirect so just discard the body. - return - if self.request.streaming_callback is not None: - self.request.streaming_callback(chunk) - else: - self.chunks.append(chunk) - - -if __name__ == "__main__": - AsyncHTTPClient.configure(SimpleAsyncHTTPClient) - main() +from tornado.escape import _unicode +from tornado import gen +from tornado.httpclient import ( + HTTPResponse, + HTTPError, + AsyncHTTPClient, + main, + _RequestProxy, + HTTPRequest, +) +from tornado import httputil +from tornado.http1connection import HTTP1Connection, HTTP1ConnectionParameters +from tornado.ioloop import IOLoop +from tornado.iostream import StreamClosedError, IOStream +from tornado.netutil import ( + Resolver, + OverrideResolver, + _client_ssl_defaults, + is_valid_ip, +) +from tornado.log import gen_log +from tornado.tcpclient import TCPClient + +import base64 +import collections +import copy +import functools +import re +import socket +import ssl +import sys +import time +from io import BytesIO +import urllib.parse + +from typing import Dict, Any, Callable, Optional, Type, Union +from types import TracebackType +import typing + +if typing.TYPE_CHECKING: + from typing import Deque, Tuple, List # noqa: F401 + + +class HTTPTimeoutError(HTTPError): + """Error raised by SimpleAsyncHTTPClient on timeout. + + For historical reasons, this is a subclass of `.HTTPClientError` + which simulates a response code of 599. + + .. versionadded:: 5.1 + """ + + def __init__(self, message: str) -> None: + super(HTTPTimeoutError, self).__init__(599, message=message) + + def __str__(self) -> str: + return self.message or "Timeout" + + +class HTTPStreamClosedError(HTTPError): + """Error raised by SimpleAsyncHTTPClient when the underlying stream is closed. + + When a more specific exception is available (such as `ConnectionResetError`), + it may be raised instead of this one. + + For historical reasons, this is a subclass of `.HTTPClientError` + which simulates a response code of 599. + + .. versionadded:: 5.1 + """ + + def __init__(self, message: str) -> None: + super(HTTPStreamClosedError, self).__init__(599, message=message) + + def __str__(self) -> str: + return self.message or "Stream closed" + + +class SimpleAsyncHTTPClient(AsyncHTTPClient): + """Non-blocking HTTP client with no external dependencies. + + This class implements an HTTP 1.1 client on top of Tornado's IOStreams. + Some features found in the curl-based AsyncHTTPClient are not yet + supported. In particular, proxies are not supported, connections + are not reused, and callers cannot select the network interface to be + used. + """ + + def initialize( # type: ignore + self, + max_clients: int = 10, + hostname_mapping: Dict[str, str] = None, + max_buffer_size: int = 104857600, + resolver: Resolver = None, + defaults: Dict[str, Any] = None, + max_header_size: int = None, + max_body_size: int = None, + ) -> None: + """Creates a AsyncHTTPClient. + + Only a single AsyncHTTPClient instance exists per IOLoop + in order to provide limitations on the number of pending connections. + ``force_instance=True`` may be used to suppress this behavior. + + Note that because of this implicit reuse, unless ``force_instance`` + is used, only the first call to the constructor actually uses + its arguments. It is recommended to use the ``configure`` method + instead of the constructor to ensure that arguments take effect. + + ``max_clients`` is the number of concurrent requests that can be + in progress; when this limit is reached additional requests will be + queued. Note that time spent waiting in this queue still counts + against the ``request_timeout``. + + ``hostname_mapping`` is a dictionary mapping hostnames to IP addresses. + It can be used to make local DNS changes when modifying system-wide + settings like ``/etc/hosts`` is not possible or desirable (e.g. in + unittests). + + ``max_buffer_size`` (default 100MB) is the number of bytes + that can be read into memory at once. ``max_body_size`` + (defaults to ``max_buffer_size``) is the largest response body + that the client will accept. Without a + ``streaming_callback``, the smaller of these two limits + applies; with a ``streaming_callback`` only ``max_body_size`` + does. + + .. versionchanged:: 4.2 + Added the ``max_body_size`` argument. + """ + super(SimpleAsyncHTTPClient, self).initialize(defaults=defaults) + self.max_clients = max_clients + self.queue = ( + collections.deque() + ) # type: Deque[Tuple[object, HTTPRequest, Callable[[HTTPResponse], None]]] + self.active = ( + {} + ) # type: Dict[object, Tuple[HTTPRequest, Callable[[HTTPResponse], None]]] + self.waiting = ( + {} + ) # type: Dict[object, Tuple[HTTPRequest, Callable[[HTTPResponse], None], object]] + self.max_buffer_size = max_buffer_size + self.max_header_size = max_header_size + self.max_body_size = max_body_size + # TCPClient could create a Resolver for us, but we have to do it + # ourselves to support hostname_mapping. + if resolver: + self.resolver = resolver + self.own_resolver = False + else: + self.resolver = Resolver() + self.own_resolver = True + if hostname_mapping is not None: + self.resolver = OverrideResolver( + resolver=self.resolver, mapping=hostname_mapping + ) + self.tcp_client = TCPClient(resolver=self.resolver) + + def close(self) -> None: + super(SimpleAsyncHTTPClient, self).close() + if self.own_resolver: + self.resolver.close() + self.tcp_client.close() + + def fetch_impl( + self, request: HTTPRequest, callback: Callable[[HTTPResponse], None] + ) -> None: + key = object() + self.queue.append((key, request, callback)) + if not len(self.active) < self.max_clients: + assert request.connect_timeout is not None + assert request.request_timeout is not None + timeout_handle = self.io_loop.add_timeout( + self.io_loop.time() + + min(request.connect_timeout, request.request_timeout), + functools.partial(self._on_timeout, key, "in request queue"), + ) + else: + timeout_handle = None + self.waiting[key] = (request, callback, timeout_handle) + self._process_queue() + if self.queue: + gen_log.debug( + "max_clients limit reached, request queued. " + "%d active, %d queued requests." % (len(self.active), len(self.queue)) + ) + + def _process_queue(self) -> None: + while self.queue and len(self.active) < self.max_clients: + key, request, callback = self.queue.popleft() + if key not in self.waiting: + continue + self._remove_timeout(key) + self.active[key] = (request, callback) + release_callback = functools.partial(self._release_fetch, key) + self._handle_request(request, release_callback, callback) + + def _connection_class(self) -> type: + return _HTTPConnection + + def _handle_request( + self, + request: HTTPRequest, + release_callback: Callable[[], None], + final_callback: Callable[[HTTPResponse], None], + ) -> None: + self._connection_class()( + self, + request, + release_callback, + final_callback, + self.max_buffer_size, + self.tcp_client, + self.max_header_size, + self.max_body_size, + ) + + def _release_fetch(self, key: object) -> None: + del self.active[key] + self._process_queue() + + def _remove_timeout(self, key: object) -> None: + if key in self.waiting: + request, callback, timeout_handle = self.waiting[key] + if timeout_handle is not None: + self.io_loop.remove_timeout(timeout_handle) + del self.waiting[key] + + def _on_timeout(self, key: object, info: str = None) -> None: + """Timeout callback of request. + + Construct a timeout HTTPResponse when a timeout occurs. + + :arg object key: A simple object to mark the request. + :info string key: More detailed timeout information. + """ + request, callback, timeout_handle = self.waiting[key] + self.queue.remove((key, request, callback)) + + error_message = "Timeout {0}".format(info) if info else "Timeout" + timeout_response = HTTPResponse( + request, + 599, + error=HTTPTimeoutError(error_message), + request_time=self.io_loop.time() - request.start_time, + ) + self.io_loop.add_callback(callback, timeout_response) + del self.waiting[key] + + +class _HTTPConnection(httputil.HTTPMessageDelegate): + _SUPPORTED_METHODS = set( + ["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"] + ) + + def __init__( + self, + client: Optional[SimpleAsyncHTTPClient], + request: HTTPRequest, + release_callback: Callable[[], None], + final_callback: Callable[[HTTPResponse], None], + max_buffer_size: int, + tcp_client: TCPClient, + max_header_size: int, + max_body_size: int, + ) -> None: + self.io_loop = IOLoop.current() + self.start_time = self.io_loop.time() + self.start_wall_time = time.time() + self.client = client + self.request = request + self.release_callback = release_callback + self.final_callback = final_callback + self.max_buffer_size = max_buffer_size + self.tcp_client = tcp_client + self.max_header_size = max_header_size + self.max_body_size = max_body_size + self.code = None # type: Optional[int] + self.headers = None # type: Optional[httputil.HTTPHeaders] + self.chunks = [] # type: List[bytes] + self._decompressor = None + # Timeout handle returned by IOLoop.add_timeout + self._timeout = None # type: object + self._sockaddr = None + IOLoop.current().add_future( + gen.convert_yielded(self.run()), lambda f: f.result() + ) + + async def run(self) -> None: + try: + self.parsed = urllib.parse.urlsplit(_unicode(self.request.url)) + if self.parsed.scheme not in ("http", "https"): + raise ValueError("Unsupported url scheme: %s" % self.request.url) + # urlsplit results have hostname and port results, but they + # didn't support ipv6 literals until python 2.7. + netloc = self.parsed.netloc + if "@" in netloc: + userpass, _, netloc = netloc.rpartition("@") + host, port = httputil.split_host_and_port(netloc) + if port is None: + port = 443 if self.parsed.scheme == "https" else 80 + if re.match(r"^\[.*\]$", host): + # raw ipv6 addresses in urls are enclosed in brackets + host = host[1:-1] + self.parsed_hostname = host # save final host for _on_connect + + if self.request.allow_ipv6 is False: + af = socket.AF_INET + else: + af = socket.AF_UNSPEC + + ssl_options = self._get_ssl_options(self.parsed.scheme) + + source_ip = None + if self.request.network_interface: + if is_valid_ip(self.request.network_interface): + source_ip = self.request.network_interface + else: + raise ValueError( + "Unrecognized IPv4 or IPv6 address for network_interface, got %r" + % (self.request.network_interface,) + ) + + timeout = min(self.request.connect_timeout, self.request.request_timeout) + if timeout: + self._timeout = self.io_loop.add_timeout( + self.start_time + timeout, + functools.partial(self._on_timeout, "while connecting"), + ) + stream = await self.tcp_client.connect( + host, + port, + af=af, + ssl_options=ssl_options, + max_buffer_size=self.max_buffer_size, + source_ip=source_ip, + ) + + if self.final_callback is None: + # final_callback is cleared if we've hit our timeout. + stream.close() + return + self.stream = stream + self.stream.set_close_callback(self.on_connection_close) + self._remove_timeout() + if self.final_callback is None: + return + if self.request.request_timeout: + self._timeout = self.io_loop.add_timeout( + self.start_time + self.request.request_timeout, + functools.partial(self._on_timeout, "during request"), + ) + if ( + self.request.method not in self._SUPPORTED_METHODS + and not self.request.allow_nonstandard_methods + ): + raise KeyError("unknown method %s" % self.request.method) + for key in ( + "proxy_host", + "proxy_port", + "proxy_username", + "proxy_password", + "proxy_auth_mode", + ): + if getattr(self.request, key, None): + raise NotImplementedError("%s not supported" % key) + if "Connection" not in self.request.headers: + self.request.headers["Connection"] = "close" + if "Host" not in self.request.headers: + if "@" in self.parsed.netloc: + self.request.headers["Host"] = self.parsed.netloc.rpartition( + "@" + )[-1] + else: + self.request.headers["Host"] = self.parsed.netloc + username, password = None, None + if self.parsed.username is not None: + username, password = self.parsed.username, self.parsed.password + elif self.request.auth_username is not None: + username = self.request.auth_username + password = self.request.auth_password or "" + if username is not None: + assert password is not None + if self.request.auth_mode not in (None, "basic"): + raise ValueError( + "unsupported auth_mode %s", self.request.auth_mode + ) + self.request.headers["Authorization"] = "Basic " + _unicode( + base64.b64encode( + httputil.encode_username_password(username, password) + ) + ) + if self.request.user_agent: + self.request.headers["User-Agent"] = self.request.user_agent + if not self.request.allow_nonstandard_methods: + # Some HTTP methods nearly always have bodies while others + # almost never do. Fail in this case unless the user has + # opted out of sanity checks with allow_nonstandard_methods. + body_expected = self.request.method in ("POST", "PATCH", "PUT") + body_present = ( + self.request.body is not None + or self.request.body_producer is not None + ) + if (body_expected and not body_present) or ( + body_present and not body_expected + ): + raise ValueError( + "Body must %sbe None for method %s (unless " + "allow_nonstandard_methods is true)" + % ("not " if body_expected else "", self.request.method) + ) + if self.request.expect_100_continue: + self.request.headers["Expect"] = "100-continue" + if self.request.body is not None: + # When body_producer is used the caller is responsible for + # setting Content-Length (or else chunked encoding will be used). + self.request.headers["Content-Length"] = str(len(self.request.body)) + if ( + self.request.method == "POST" + and "Content-Type" not in self.request.headers + ): + self.request.headers[ + "Content-Type" + ] = "application/x-www-form-urlencoded" + if self.request.decompress_response: + self.request.headers["Accept-Encoding"] = "gzip" + req_path = (self.parsed.path or "/") + ( + ("?" + self.parsed.query) if self.parsed.query else "" + ) + self.connection = self._create_connection(stream) + start_line = httputil.RequestStartLine( + self.request.method, req_path, "" + ) + self.connection.write_headers(start_line, self.request.headers) + if self.request.expect_100_continue: + await self.connection.read_response(self) + else: + await self._write_body(True) + except Exception: + if not self._handle_exception(*sys.exc_info()): + raise + + def _get_ssl_options( + self, scheme: str + ) -> Union[None, Dict[str, Any], ssl.SSLContext]: + if scheme == "https": + if self.request.ssl_options is not None: + return self.request.ssl_options + # If we are using the defaults, don't construct a + # new SSLContext. + if ( + self.request.validate_cert + and self.request.ca_certs is None + and self.request.client_cert is None + and self.request.client_key is None + ): + return _client_ssl_defaults + ssl_ctx = ssl.create_default_context( + ssl.Purpose.SERVER_AUTH, cafile=self.request.ca_certs + ) + if not self.request.validate_cert: + ssl_ctx.check_hostname = False + ssl_ctx.verify_mode = ssl.CERT_NONE + if self.request.client_cert is not None: + ssl_ctx.load_cert_chain( + self.request.client_cert, self.request.client_key + ) + if hasattr(ssl, "OP_NO_COMPRESSION"): + # See netutil.ssl_options_to_context + ssl_ctx.options |= ssl.OP_NO_COMPRESSION + return ssl_ctx + return None + + def _on_timeout(self, info: str = None) -> None: + """Timeout callback of _HTTPConnection instance. + + Raise a `HTTPTimeoutError` when a timeout occurs. + + :info string key: More detailed timeout information. + """ + self._timeout = None + error_message = "Timeout {0}".format(info) if info else "Timeout" + if self.final_callback is not None: + self._handle_exception( + HTTPTimeoutError, HTTPTimeoutError(error_message), None + ) + + def _remove_timeout(self) -> None: + if self._timeout is not None: + self.io_loop.remove_timeout(self._timeout) + self._timeout = None + + def _create_connection(self, stream: IOStream) -> HTTP1Connection: + stream.set_nodelay(True) + connection = HTTP1Connection( + stream, + True, + HTTP1ConnectionParameters( + no_keep_alive=True, + max_header_size=self.max_header_size, + max_body_size=self.max_body_size, + decompress=bool(self.request.decompress_response), + ), + self._sockaddr, + ) + return connection + + async def _write_body(self, start_read: bool) -> None: + if self.request.body is not None: + self.connection.write(self.request.body) + elif self.request.body_producer is not None: + fut = self.request.body_producer(self.connection.write) + if fut is not None: + await fut + self.connection.finish() + if start_read: + try: + await self.connection.read_response(self) + except StreamClosedError: + if not self._handle_exception(*sys.exc_info()): + raise + + def _release(self) -> None: + if self.release_callback is not None: + release_callback = self.release_callback + self.release_callback = None # type: ignore + release_callback() + + def _run_callback(self, response: HTTPResponse) -> None: + self._release() + if self.final_callback is not None: + final_callback = self.final_callback + self.final_callback = None # type: ignore + self.io_loop.add_callback(final_callback, response) + + def _handle_exception( + self, + typ: "Optional[Type[BaseException]]", + value: Optional[BaseException], + tb: Optional[TracebackType], + ) -> bool: + if self.final_callback: + self._remove_timeout() + if isinstance(value, StreamClosedError): + if value.real_error is None: + value = HTTPStreamClosedError("Stream closed") + else: + value = value.real_error + self._run_callback( + HTTPResponse( + self.request, + 599, + error=value, + request_time=self.io_loop.time() - self.start_time, + start_time=self.start_wall_time, + ) + ) + + if hasattr(self, "stream"): + # TODO: this may cause a StreamClosedError to be raised + # by the connection's Future. Should we cancel the + # connection more gracefully? + self.stream.close() + return True + else: + # If our callback has already been called, we are probably + # catching an exception that is not caused by us but rather + # some child of our callback. Rather than drop it on the floor, + # pass it along, unless it's just the stream being closed. + return isinstance(value, StreamClosedError) + + def on_connection_close(self) -> None: + if self.final_callback is not None: + message = "Connection closed" + if self.stream.error: + raise self.stream.error + try: + raise HTTPStreamClosedError(message) + except HTTPStreamClosedError: + self._handle_exception(*sys.exc_info()) + + async def headers_received( + self, + first_line: Union[httputil.ResponseStartLine, httputil.RequestStartLine], + headers: httputil.HTTPHeaders, + ) -> None: + assert isinstance(first_line, httputil.ResponseStartLine) + if self.request.expect_100_continue and first_line.code == 100: + await self._write_body(False) + return + self.code = first_line.code + self.reason = first_line.reason + self.headers = headers + + if self._should_follow_redirect(): + return + + if self.request.header_callback is not None: + # Reassemble the start line. + self.request.header_callback("%s %s %s\r\n" % first_line) + for k, v in self.headers.get_all(): + self.request.header_callback("%s: %s\r\n" % (k, v)) + self.request.header_callback("\r\n") + + def _should_follow_redirect(self) -> bool: + if self.request.follow_redirects: + assert self.request.max_redirects is not None + return ( + self.code in (301, 302, 303, 307, 308) + and self.request.max_redirects > 0 + and self.headers is not None + and self.headers.get("Location") is not None + ) + return False + + def finish(self) -> None: + assert self.code is not None + data = b"".join(self.chunks) + self._remove_timeout() + original_request = getattr(self.request, "original_request", self.request) + if self._should_follow_redirect(): + assert isinstance(self.request, _RequestProxy) + new_request = copy.copy(self.request.request) + new_request.url = urllib.parse.urljoin( + self.request.url, self.headers["Location"] + ) + new_request.max_redirects = self.request.max_redirects - 1 + del new_request.headers["Host"] + # https://tools.ietf.org/html/rfc7231#section-6.4 + # + # The original HTTP spec said that after a 301 or 302 + # redirect, the request method should be preserved. + # However, browsers implemented this by changing the + # method to GET, and the behavior stuck. 303 redirects + # always specified this POST-to-GET behavior (arguably 303 + # redirects should change *all* requests to GET, but + # libcurl only does this for POST so we follow their + # example). + if self.code in (301, 302, 303) and self.request.method == "POST": + new_request.method = "GET" + new_request.body = None + for h in [ + "Content-Length", + "Content-Type", + "Content-Encoding", + "Transfer-Encoding", + ]: + try: + del self.request.headers[h] + except KeyError: + pass + new_request.original_request = original_request + final_callback = self.final_callback + self.final_callback = None + self._release() + fut = self.client.fetch(new_request, raise_error=False) + fut.add_done_callback(lambda f: final_callback(f.result())) + self._on_end_request() + return + if self.request.streaming_callback: + buffer = BytesIO() + else: + buffer = BytesIO(data) # TODO: don't require one big string? + response = HTTPResponse( + original_request, + self.code, + reason=getattr(self, "reason", None), + headers=self.headers, + request_time=self.io_loop.time() - self.start_time, + start_time=self.start_wall_time, + buffer=buffer, + effective_url=self.request.url, + ) + self._run_callback(response) + self._on_end_request() + + def _on_end_request(self) -> None: + self.stream.close() + + def data_received(self, chunk: bytes) -> None: + if self._should_follow_redirect(): + # We're going to follow a redirect so just discard the body. + return + if self.request.streaming_callback is not None: + self.request.streaming_callback(chunk) + else: + self.chunks.append(chunk) + + +if __name__ == "__main__": + AsyncHTTPClient.configure(SimpleAsyncHTTPClient) + main() diff --git a/server/www/packages/packages-linux/x64/tornado/speedups.cpython-37m-x86_64-linux-gnu.so b/server/www/packages/packages-linux/x64/tornado/speedups.cpython-37m-x86_64-linux-gnu.so index ee240f0d91865b0e99b939f7ca8f28573c033028..53bd639ec4b4e5e6703d204a0561097be60141db 100755 GIT binary patch delta 4126 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 None: - self.io_loop = IOLoop.current() - self.connect = connect - - self.future = ( - Future() - ) # type: Future[Tuple[socket.AddressFamily, Any, IOStream]] - self.timeout = None # type: Optional[object] - self.connect_timeout = None # type: Optional[object] - self.last_error = None # type: Optional[Exception] - self.remaining = len(addrinfo) - self.primary_addrs, self.secondary_addrs = self.split(addrinfo) - self.streams = set() # type: Set[IOStream] - - @staticmethod - def split( - addrinfo: List[Tuple] - ) -> Tuple[ - List[Tuple[socket.AddressFamily, Tuple]], - List[Tuple[socket.AddressFamily, Tuple]], - ]: - """Partition the ``addrinfo`` list by address family. - - Returns two lists. The first list contains the first entry from - ``addrinfo`` and all others with the same family, and the - second list contains all other addresses (normally one list will - be AF_INET and the other AF_INET6, although non-standard resolvers - may return additional families). - """ - primary = [] - secondary = [] - primary_af = addrinfo[0][0] - for af, addr in addrinfo: - if af == primary_af: - primary.append((af, addr)) - else: - secondary.append((af, addr)) - return primary, secondary - - def start( - self, - timeout: float = _INITIAL_CONNECT_TIMEOUT, - connect_timeout: Union[float, datetime.timedelta] = None, - ) -> "Future[Tuple[socket.AddressFamily, Any, IOStream]]": - self.try_connect(iter(self.primary_addrs)) - self.set_timeout(timeout) - if connect_timeout is not None: - self.set_connect_timeout(connect_timeout) - return self.future - - def try_connect(self, addrs: Iterator[Tuple[socket.AddressFamily, Tuple]]) -> None: - try: - af, addr = next(addrs) - except StopIteration: - # We've reached the end of our queue, but the other queue - # might still be working. Send a final error on the future - # only when both queues are finished. - if self.remaining == 0 and not self.future.done(): - self.future.set_exception( - self.last_error or IOError("connection failed") - ) - return - stream, future = self.connect(af, addr) - self.streams.add(stream) - future_add_done_callback( - future, functools.partial(self.on_connect_done, addrs, af, addr) - ) - - def on_connect_done( - self, - addrs: Iterator[Tuple[socket.AddressFamily, Tuple]], - af: socket.AddressFamily, - addr: Tuple, - future: "Future[IOStream]", - ) -> None: - self.remaining -= 1 - try: - stream = future.result() - except Exception as e: - if self.future.done(): - return - # Error: try again (but remember what happened so we have an - # error to raise in the end) - self.last_error = e - self.try_connect(addrs) - if self.timeout is not None: - # If the first attempt failed, don't wait for the - # timeout to try an address from the secondary queue. - self.io_loop.remove_timeout(self.timeout) - self.on_timeout() - return - self.clear_timeouts() - if self.future.done(): - # This is a late arrival; just drop it. - stream.close() - else: - self.streams.discard(stream) - self.future.set_result((af, addr, stream)) - self.close_streams() - - def set_timeout(self, timeout: float) -> None: - self.timeout = self.io_loop.add_timeout( - self.io_loop.time() + timeout, self.on_timeout - ) - - def on_timeout(self) -> None: - self.timeout = None - if not self.future.done(): - self.try_connect(iter(self.secondary_addrs)) - - def clear_timeout(self) -> None: - if self.timeout is not None: - self.io_loop.remove_timeout(self.timeout) - - def set_connect_timeout( - self, connect_timeout: Union[float, datetime.timedelta] - ) -> None: - self.connect_timeout = self.io_loop.add_timeout( - connect_timeout, self.on_connect_timeout - ) - - def on_connect_timeout(self) -> None: - if not self.future.done(): - self.future.set_exception(TimeoutError()) - self.close_streams() - - def clear_timeouts(self) -> None: - if self.timeout is not None: - self.io_loop.remove_timeout(self.timeout) - if self.connect_timeout is not None: - self.io_loop.remove_timeout(self.connect_timeout) - - def close_streams(self) -> None: - for stream in self.streams: - stream.close() - - -class TCPClient(object): - """A non-blocking TCP connection factory. - - .. versionchanged:: 5.0 - The ``io_loop`` argument (deprecated since version 4.1) has been removed. - """ - - def __init__(self, resolver: Resolver = None) -> None: - if resolver is not None: - self.resolver = resolver - self._own_resolver = False - else: - self.resolver = Resolver() - self._own_resolver = True - - def close(self) -> None: - if self._own_resolver: - self.resolver.close() - - async def connect( - self, - host: str, - port: int, - af: socket.AddressFamily = socket.AF_UNSPEC, - ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, - max_buffer_size: int = None, - source_ip: str = None, - source_port: int = None, - timeout: Union[float, datetime.timedelta] = None, - ) -> IOStream: - """Connect to the given host and port. - - Asynchronously returns an `.IOStream` (or `.SSLIOStream` if - ``ssl_options`` is not None). - - Using the ``source_ip`` kwarg, one can specify the source - IP address to use when establishing the connection. - In case the user needs to resolve and - use a specific interface, it has to be handled outside - of Tornado as this depends very much on the platform. - - Raises `TimeoutError` if the input future does not complete before - ``timeout``, which may be specified in any form allowed by - `.IOLoop.add_timeout` (i.e. a `datetime.timedelta` or an absolute time - relative to `.IOLoop.time`) - - Similarly, when the user requires a certain source port, it can - be specified using the ``source_port`` arg. - - .. versionchanged:: 4.5 - Added the ``source_ip`` and ``source_port`` arguments. - - .. versionchanged:: 5.0 - Added the ``timeout`` argument. - """ - if timeout is not None: - if isinstance(timeout, numbers.Real): - timeout = IOLoop.current().time() + timeout - elif isinstance(timeout, datetime.timedelta): - timeout = IOLoop.current().time() + timeout.total_seconds() - else: - raise TypeError("Unsupported timeout %r" % timeout) - if timeout is not None: - addrinfo = await gen.with_timeout( - timeout, self.resolver.resolve(host, port, af) - ) - else: - addrinfo = await self.resolver.resolve(host, port, af) - connector = _Connector( - addrinfo, - functools.partial( - self._create_stream, - max_buffer_size, - source_ip=source_ip, - source_port=source_port, - ), - ) - af, addr, stream = await connector.start(connect_timeout=timeout) - # TODO: For better performance we could cache the (af, addr) - # information here and re-use it on subsequent connections to - # the same host. (http://tools.ietf.org/html/rfc6555#section-4.2) - if ssl_options is not None: - if timeout is not None: - stream = await gen.with_timeout( - timeout, - stream.start_tls( - False, ssl_options=ssl_options, server_hostname=host - ), - ) - else: - stream = await stream.start_tls( - False, ssl_options=ssl_options, server_hostname=host - ) - return stream - - def _create_stream( - self, - max_buffer_size: int, - af: socket.AddressFamily, - addr: Tuple, - source_ip: str = None, - source_port: int = None, - ) -> Tuple[IOStream, "Future[IOStream]"]: - # Always connect in plaintext; we'll convert to ssl if necessary - # after one connection has completed. - source_port_bind = source_port if isinstance(source_port, int) else 0 - source_ip_bind = source_ip - if source_port_bind and not source_ip: - # User required a specific port, but did not specify - # a certain source IP, will bind to the default loopback. - source_ip_bind = "::1" if af == socket.AF_INET6 else "127.0.0.1" - # Trying to use the same address family as the requested af socket: - # - 127.0.0.1 for IPv4 - # - ::1 for IPv6 - socket_obj = socket.socket(af) - set_close_exec(socket_obj.fileno()) - if source_port_bind or source_ip_bind: - # If the user requires binding also to a specific IP/port. - try: - socket_obj.bind((source_ip_bind, source_port_bind)) - except socket.error: - socket_obj.close() - # Fail loudly if unable to use the IP/port. - raise - try: - stream = IOStream(socket_obj, max_buffer_size=max_buffer_size) - except socket.error as e: - fu = Future() # type: Future[IOStream] - fu.set_exception(e) - return stream, fu - else: - return stream, stream.connect(addr) +# +# Copyright 2014 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""A non-blocking TCP connection factory. +""" + +import functools +import socket +import numbers +import datetime +import ssl + +from tornado.concurrent import Future, future_add_done_callback +from tornado.ioloop import IOLoop +from tornado.iostream import IOStream +from tornado import gen +from tornado.netutil import Resolver +from tornado.platform.auto import set_close_exec +from tornado.gen import TimeoutError + +import typing +from typing import Any, Union, Dict, Tuple, List, Callable, Iterator + +if typing.TYPE_CHECKING: + from typing import Optional, Set # noqa: F401 + +_INITIAL_CONNECT_TIMEOUT = 0.3 + + +class _Connector(object): + """A stateless implementation of the "Happy Eyeballs" algorithm. + + "Happy Eyeballs" is documented in RFC6555 as the recommended practice + for when both IPv4 and IPv6 addresses are available. + + In this implementation, we partition the addresses by family, and + make the first connection attempt to whichever address was + returned first by ``getaddrinfo``. If that connection fails or + times out, we begin a connection in parallel to the first address + of the other family. If there are additional failures we retry + with other addresses, keeping one connection attempt per family + in flight at a time. + + http://tools.ietf.org/html/rfc6555 + + """ + + def __init__( + self, + addrinfo: List[Tuple], + connect: Callable[ + [socket.AddressFamily, Tuple], Tuple[IOStream, "Future[IOStream]"] + ], + ) -> None: + self.io_loop = IOLoop.current() + self.connect = connect + + self.future = ( + Future() + ) # type: Future[Tuple[socket.AddressFamily, Any, IOStream]] + self.timeout = None # type: Optional[object] + self.connect_timeout = None # type: Optional[object] + self.last_error = None # type: Optional[Exception] + self.remaining = len(addrinfo) + self.primary_addrs, self.secondary_addrs = self.split(addrinfo) + self.streams = set() # type: Set[IOStream] + + @staticmethod + def split( + addrinfo: List[Tuple], + ) -> Tuple[ + List[Tuple[socket.AddressFamily, Tuple]], + List[Tuple[socket.AddressFamily, Tuple]], + ]: + """Partition the ``addrinfo`` list by address family. + + Returns two lists. The first list contains the first entry from + ``addrinfo`` and all others with the same family, and the + second list contains all other addresses (normally one list will + be AF_INET and the other AF_INET6, although non-standard resolvers + may return additional families). + """ + primary = [] + secondary = [] + primary_af = addrinfo[0][0] + for af, addr in addrinfo: + if af == primary_af: + primary.append((af, addr)) + else: + secondary.append((af, addr)) + return primary, secondary + + def start( + self, + timeout: float = _INITIAL_CONNECT_TIMEOUT, + connect_timeout: Union[float, datetime.timedelta] = None, + ) -> "Future[Tuple[socket.AddressFamily, Any, IOStream]]": + self.try_connect(iter(self.primary_addrs)) + self.set_timeout(timeout) + if connect_timeout is not None: + self.set_connect_timeout(connect_timeout) + return self.future + + def try_connect(self, addrs: Iterator[Tuple[socket.AddressFamily, Tuple]]) -> None: + try: + af, addr = next(addrs) + except StopIteration: + # We've reached the end of our queue, but the other queue + # might still be working. Send a final error on the future + # only when both queues are finished. + if self.remaining == 0 and not self.future.done(): + self.future.set_exception( + self.last_error or IOError("connection failed") + ) + return + stream, future = self.connect(af, addr) + self.streams.add(stream) + future_add_done_callback( + future, functools.partial(self.on_connect_done, addrs, af, addr) + ) + + def on_connect_done( + self, + addrs: Iterator[Tuple[socket.AddressFamily, Tuple]], + af: socket.AddressFamily, + addr: Tuple, + future: "Future[IOStream]", + ) -> None: + self.remaining -= 1 + try: + stream = future.result() + except Exception as e: + if self.future.done(): + return + # Error: try again (but remember what happened so we have an + # error to raise in the end) + self.last_error = e + self.try_connect(addrs) + if self.timeout is not None: + # If the first attempt failed, don't wait for the + # timeout to try an address from the secondary queue. + self.io_loop.remove_timeout(self.timeout) + self.on_timeout() + return + self.clear_timeouts() + if self.future.done(): + # This is a late arrival; just drop it. + stream.close() + else: + self.streams.discard(stream) + self.future.set_result((af, addr, stream)) + self.close_streams() + + def set_timeout(self, timeout: float) -> None: + self.timeout = self.io_loop.add_timeout( + self.io_loop.time() + timeout, self.on_timeout + ) + + def on_timeout(self) -> None: + self.timeout = None + if not self.future.done(): + self.try_connect(iter(self.secondary_addrs)) + + def clear_timeout(self) -> None: + if self.timeout is not None: + self.io_loop.remove_timeout(self.timeout) + + def set_connect_timeout( + self, connect_timeout: Union[float, datetime.timedelta] + ) -> None: + self.connect_timeout = self.io_loop.add_timeout( + connect_timeout, self.on_connect_timeout + ) + + def on_connect_timeout(self) -> None: + if not self.future.done(): + self.future.set_exception(TimeoutError()) + self.close_streams() + + def clear_timeouts(self) -> None: + if self.timeout is not None: + self.io_loop.remove_timeout(self.timeout) + if self.connect_timeout is not None: + self.io_loop.remove_timeout(self.connect_timeout) + + def close_streams(self) -> None: + for stream in self.streams: + stream.close() + + +class TCPClient(object): + """A non-blocking TCP connection factory. + + .. versionchanged:: 5.0 + The ``io_loop`` argument (deprecated since version 4.1) has been removed. + """ + + def __init__(self, resolver: Resolver = None) -> None: + if resolver is not None: + self.resolver = resolver + self._own_resolver = False + else: + self.resolver = Resolver() + self._own_resolver = True + + def close(self) -> None: + if self._own_resolver: + self.resolver.close() + + async def connect( + self, + host: str, + port: int, + af: socket.AddressFamily = socket.AF_UNSPEC, + ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, + max_buffer_size: int = None, + source_ip: str = None, + source_port: int = None, + timeout: Union[float, datetime.timedelta] = None, + ) -> IOStream: + """Connect to the given host and port. + + Asynchronously returns an `.IOStream` (or `.SSLIOStream` if + ``ssl_options`` is not None). + + Using the ``source_ip`` kwarg, one can specify the source + IP address to use when establishing the connection. + In case the user needs to resolve and + use a specific interface, it has to be handled outside + of Tornado as this depends very much on the platform. + + Raises `TimeoutError` if the input future does not complete before + ``timeout``, which may be specified in any form allowed by + `.IOLoop.add_timeout` (i.e. a `datetime.timedelta` or an absolute time + relative to `.IOLoop.time`) + + Similarly, when the user requires a certain source port, it can + be specified using the ``source_port`` arg. + + .. versionchanged:: 4.5 + Added the ``source_ip`` and ``source_port`` arguments. + + .. versionchanged:: 5.0 + Added the ``timeout`` argument. + """ + if timeout is not None: + if isinstance(timeout, numbers.Real): + timeout = IOLoop.current().time() + timeout + elif isinstance(timeout, datetime.timedelta): + timeout = IOLoop.current().time() + timeout.total_seconds() + else: + raise TypeError("Unsupported timeout %r" % timeout) + if timeout is not None: + addrinfo = await gen.with_timeout( + timeout, self.resolver.resolve(host, port, af) + ) + else: + addrinfo = await self.resolver.resolve(host, port, af) + connector = _Connector( + addrinfo, + functools.partial( + self._create_stream, + max_buffer_size, + source_ip=source_ip, + source_port=source_port, + ), + ) + af, addr, stream = await connector.start(connect_timeout=timeout) + # TODO: For better performance we could cache the (af, addr) + # information here and re-use it on subsequent connections to + # the same host. (http://tools.ietf.org/html/rfc6555#section-4.2) + if ssl_options is not None: + if timeout is not None: + stream = await gen.with_timeout( + timeout, + stream.start_tls( + False, ssl_options=ssl_options, server_hostname=host + ), + ) + else: + stream = await stream.start_tls( + False, ssl_options=ssl_options, server_hostname=host + ) + return stream + + def _create_stream( + self, + max_buffer_size: int, + af: socket.AddressFamily, + addr: Tuple, + source_ip: str = None, + source_port: int = None, + ) -> Tuple[IOStream, "Future[IOStream]"]: + # Always connect in plaintext; we'll convert to ssl if necessary + # after one connection has completed. + source_port_bind = source_port if isinstance(source_port, int) else 0 + source_ip_bind = source_ip + if source_port_bind and not source_ip: + # User required a specific port, but did not specify + # a certain source IP, will bind to the default loopback. + source_ip_bind = "::1" if af == socket.AF_INET6 else "127.0.0.1" + # Trying to use the same address family as the requested af socket: + # - 127.0.0.1 for IPv4 + # - ::1 for IPv6 + socket_obj = socket.socket(af) + set_close_exec(socket_obj.fileno()) + if source_port_bind or source_ip_bind: + # If the user requires binding also to a specific IP/port. + try: + socket_obj.bind((source_ip_bind, source_port_bind)) + except socket.error: + socket_obj.close() + # Fail loudly if unable to use the IP/port. + raise + try: + stream = IOStream(socket_obj, max_buffer_size=max_buffer_size) + except socket.error as e: + fu = Future() # type: Future[IOStream] + fu.set_exception(e) + return stream, fu + else: + return stream, stream.connect(addr) diff --git a/server/www/packages/packages-linux/x64/tornado/tcpserver.py b/server/www/packages/packages-linux/x64/tornado/tcpserver.py index eaf08b2..ff2b581 100644 --- a/server/www/packages/packages-linux/x64/tornado/tcpserver.py +++ b/server/www/packages/packages-linux/x64/tornado/tcpserver.py @@ -1,330 +1,330 @@ -# -# Copyright 2011 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""A non-blocking, single-threaded TCP server.""" - -import errno -import os -import socket -import ssl - -from tornado import gen -from tornado.log import app_log -from tornado.ioloop import IOLoop -from tornado.iostream import IOStream, SSLIOStream -from tornado.netutil import bind_sockets, add_accept_handler, ssl_wrap_socket -from tornado import process -from tornado.util import errno_from_exception - -import typing -from typing import Union, Dict, Any, Iterable, Optional, Awaitable - -if typing.TYPE_CHECKING: - from typing import Callable, List # noqa: F401 - - -class TCPServer(object): - r"""A non-blocking, single-threaded TCP server. - - To use `TCPServer`, define a subclass which overrides the `handle_stream` - method. For example, a simple echo server could be defined like this:: - - from tornado.tcpserver import TCPServer - from tornado.iostream import StreamClosedError - from tornado import gen - - class EchoServer(TCPServer): - async def handle_stream(self, stream, address): - while True: - try: - data = await stream.read_until(b"\n") - await stream.write(data) - except StreamClosedError: - break - - To make this server serve SSL traffic, send the ``ssl_options`` keyword - argument with an `ssl.SSLContext` object. For compatibility with older - versions of Python ``ssl_options`` may also be a dictionary of keyword - arguments for the `ssl.wrap_socket` method.:: - - ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) - ssl_ctx.load_cert_chain(os.path.join(data_dir, "mydomain.crt"), - os.path.join(data_dir, "mydomain.key")) - TCPServer(ssl_options=ssl_ctx) - - `TCPServer` initialization follows one of three patterns: - - 1. `listen`: simple single-process:: - - server = TCPServer() - server.listen(8888) - IOLoop.current().start() - - 2. `bind`/`start`: simple multi-process:: - - server = TCPServer() - server.bind(8888) - server.start(0) # Forks multiple sub-processes - IOLoop.current().start() - - When using this interface, an `.IOLoop` must *not* be passed - to the `TCPServer` constructor. `start` will always start - the server on the default singleton `.IOLoop`. - - 3. `add_sockets`: advanced multi-process:: - - sockets = bind_sockets(8888) - tornado.process.fork_processes(0) - server = TCPServer() - server.add_sockets(sockets) - IOLoop.current().start() - - The `add_sockets` interface is more complicated, but it can be - used with `tornado.process.fork_processes` to give you more - flexibility in when the fork happens. `add_sockets` can - also be used in single-process servers if you want to create - your listening sockets in some way other than - `~tornado.netutil.bind_sockets`. - - .. versionadded:: 3.1 - The ``max_buffer_size`` argument. - - .. versionchanged:: 5.0 - The ``io_loop`` argument has been removed. - """ - - def __init__( - self, - ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, - max_buffer_size: int = None, - read_chunk_size: int = None, - ) -> None: - self.ssl_options = ssl_options - self._sockets = {} # type: Dict[int, socket.socket] - self._handlers = {} # type: Dict[int, Callable[[], None]] - self._pending_sockets = [] # type: List[socket.socket] - self._started = False - self._stopped = False - self.max_buffer_size = max_buffer_size - self.read_chunk_size = read_chunk_size - - # Verify the SSL options. Otherwise we don't get errors until clients - # connect. This doesn't verify that the keys are legitimate, but - # the SSL module doesn't do that until there is a connected socket - # which seems like too much work - if self.ssl_options is not None and isinstance(self.ssl_options, dict): - # Only certfile is required: it can contain both keys - if "certfile" not in self.ssl_options: - raise KeyError('missing key "certfile" in ssl_options') - - if not os.path.exists(self.ssl_options["certfile"]): - raise ValueError( - 'certfile "%s" does not exist' % self.ssl_options["certfile"] - ) - if "keyfile" in self.ssl_options and not os.path.exists( - self.ssl_options["keyfile"] - ): - raise ValueError( - 'keyfile "%s" does not exist' % self.ssl_options["keyfile"] - ) - - def listen(self, port: int, address: str = "") -> None: - """Starts accepting connections on the given port. - - This method may be called more than once to listen on multiple ports. - `listen` takes effect immediately; it is not necessary to call - `TCPServer.start` afterwards. It is, however, necessary to start - the `.IOLoop`. - """ - sockets = bind_sockets(port, address=address) - self.add_sockets(sockets) - - def add_sockets(self, sockets: Iterable[socket.socket]) -> None: - """Makes this server start accepting connections on the given sockets. - - The ``sockets`` parameter is a list of socket objects such as - those returned by `~tornado.netutil.bind_sockets`. - `add_sockets` is typically used in combination with that - method and `tornado.process.fork_processes` to provide greater - control over the initialization of a multi-process server. - """ - for sock in sockets: - self._sockets[sock.fileno()] = sock - self._handlers[sock.fileno()] = add_accept_handler( - sock, self._handle_connection - ) - - def add_socket(self, socket: socket.socket) -> None: - """Singular version of `add_sockets`. Takes a single socket object.""" - self.add_sockets([socket]) - - def bind( - self, - port: int, - address: str = None, - family: socket.AddressFamily = socket.AF_UNSPEC, - backlog: int = 128, - reuse_port: bool = False, - ) -> None: - """Binds this server to the given port on the given address. - - To start the server, call `start`. If you want to run this server - in a single process, you can call `listen` as a shortcut to the - sequence of `bind` and `start` calls. - - Address may be either an IP address or hostname. If it's a hostname, - the server will listen on all IP addresses associated with the - name. Address may be an empty string or None to listen on all - available interfaces. Family may be set to either `socket.AF_INET` - or `socket.AF_INET6` to restrict to IPv4 or IPv6 addresses, otherwise - both will be used if available. - - The ``backlog`` argument has the same meaning as for - `socket.listen `. The ``reuse_port`` argument - has the same meaning as for `.bind_sockets`. - - This method may be called multiple times prior to `start` to listen - on multiple ports or interfaces. - - .. versionchanged:: 4.4 - Added the ``reuse_port`` argument. - """ - sockets = bind_sockets( - port, address=address, family=family, backlog=backlog, reuse_port=reuse_port - ) - if self._started: - self.add_sockets(sockets) - else: - self._pending_sockets.extend(sockets) - - def start(self, num_processes: Optional[int] = 1, max_restarts: int = None) -> None: - """Starts this server in the `.IOLoop`. - - By default, we run the server in this process and do not fork any - additional child process. - - If num_processes is ``None`` or <= 0, we detect the number of cores - available on this machine and fork that number of child - processes. If num_processes is given and > 1, we fork that - specific number of sub-processes. - - Since we use processes and not threads, there is no shared memory - between any server code. - - Note that multiple processes are not compatible with the autoreload - module (or the ``autoreload=True`` option to `tornado.web.Application` - which defaults to True when ``debug=True``). - When using multiple processes, no IOLoops can be created or - referenced until after the call to ``TCPServer.start(n)``. - - The ``max_restarts`` argument is passed to `.fork_processes`. - - .. versionchanged:: 6.0 - - Added ``max_restarts`` argument. - """ - assert not self._started - self._started = True - if num_processes != 1: - process.fork_processes(num_processes, max_restarts) - sockets = self._pending_sockets - self._pending_sockets = [] - self.add_sockets(sockets) - - def stop(self) -> None: - """Stops listening for new connections. - - Requests currently in progress may still continue after the - server is stopped. - """ - if self._stopped: - return - self._stopped = True - for fd, sock in self._sockets.items(): - assert sock.fileno() == fd - # Unregister socket from IOLoop - self._handlers.pop(fd)() - sock.close() - - def handle_stream( - self, stream: IOStream, address: tuple - ) -> Optional[Awaitable[None]]: - """Override to handle a new `.IOStream` from an incoming connection. - - This method may be a coroutine; if so any exceptions it raises - asynchronously will be logged. Accepting of incoming connections - will not be blocked by this coroutine. - - If this `TCPServer` is configured for SSL, ``handle_stream`` - may be called before the SSL handshake has completed. Use - `.SSLIOStream.wait_for_handshake` if you need to verify the client's - certificate or use NPN/ALPN. - - .. versionchanged:: 4.2 - Added the option for this method to be a coroutine. - """ - raise NotImplementedError() - - def _handle_connection(self, connection: socket.socket, address: Any) -> None: - if self.ssl_options is not None: - assert ssl, "Python 2.6+ and OpenSSL required for SSL" - try: - connection = ssl_wrap_socket( - connection, - self.ssl_options, - server_side=True, - do_handshake_on_connect=False, - ) - except ssl.SSLError as err: - if err.args[0] == ssl.SSL_ERROR_EOF: - return connection.close() - else: - raise - except socket.error as err: - # If the connection is closed immediately after it is created - # (as in a port scan), we can get one of several errors. - # wrap_socket makes an internal call to getpeername, - # which may return either EINVAL (Mac OS X) or ENOTCONN - # (Linux). If it returns ENOTCONN, this error is - # silently swallowed by the ssl module, so we need to - # catch another error later on (AttributeError in - # SSLIOStream._do_ssl_handshake). - # To test this behavior, try nmap with the -sT flag. - # https://github.com/tornadoweb/tornado/pull/750 - if errno_from_exception(err) in (errno.ECONNABORTED, errno.EINVAL): - return connection.close() - else: - raise - try: - if self.ssl_options is not None: - stream = SSLIOStream( - connection, - max_buffer_size=self.max_buffer_size, - read_chunk_size=self.read_chunk_size, - ) # type: IOStream - else: - stream = IOStream( - connection, - max_buffer_size=self.max_buffer_size, - read_chunk_size=self.read_chunk_size, - ) - - future = self.handle_stream(stream, address) - if future is not None: - IOLoop.current().add_future( - gen.convert_yielded(future), lambda f: f.result() - ) - except Exception: - app_log.error("Error in connection callback", exc_info=True) +# +# Copyright 2011 Facebook +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""A non-blocking, single-threaded TCP server.""" + +import errno +import os +import socket +import ssl + +from tornado import gen +from tornado.log import app_log +from tornado.ioloop import IOLoop +from tornado.iostream import IOStream, SSLIOStream +from tornado.netutil import bind_sockets, add_accept_handler, ssl_wrap_socket +from tornado import process +from tornado.util import errno_from_exception + +import typing +from typing import Union, Dict, Any, Iterable, Optional, Awaitable + +if typing.TYPE_CHECKING: + from typing import Callable, List # noqa: F401 + + +class TCPServer(object): + r"""A non-blocking, single-threaded TCP server. + + To use `TCPServer`, define a subclass which overrides the `handle_stream` + method. For example, a simple echo server could be defined like this:: + + from tornado.tcpserver import TCPServer + from tornado.iostream import StreamClosedError + from tornado import gen + + class EchoServer(TCPServer): + async def handle_stream(self, stream, address): + while True: + try: + data = await stream.read_until(b"\n") + await stream.write(data) + except StreamClosedError: + break + + To make this server serve SSL traffic, send the ``ssl_options`` keyword + argument with an `ssl.SSLContext` object. For compatibility with older + versions of Python ``ssl_options`` may also be a dictionary of keyword + arguments for the `ssl.wrap_socket` method.:: + + ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) + ssl_ctx.load_cert_chain(os.path.join(data_dir, "mydomain.crt"), + os.path.join(data_dir, "mydomain.key")) + TCPServer(ssl_options=ssl_ctx) + + `TCPServer` initialization follows one of three patterns: + + 1. `listen`: simple single-process:: + + server = TCPServer() + server.listen(8888) + IOLoop.current().start() + + 2. `bind`/`start`: simple multi-process:: + + server = TCPServer() + server.bind(8888) + server.start(0) # Forks multiple sub-processes + IOLoop.current().start() + + When using this interface, an `.IOLoop` must *not* be passed + to the `TCPServer` constructor. `start` will always start + the server on the default singleton `.IOLoop`. + + 3. `add_sockets`: advanced multi-process:: + + sockets = bind_sockets(8888) + tornado.process.fork_processes(0) + server = TCPServer() + server.add_sockets(sockets) + IOLoop.current().start() + + The `add_sockets` interface is more complicated, but it can be + used with `tornado.process.fork_processes` to give you more + flexibility in when the fork happens. `add_sockets` can + also be used in single-process servers if you want to create + your listening sockets in some way other than + `~tornado.netutil.bind_sockets`. + + .. versionadded:: 3.1 + The ``max_buffer_size`` argument. + + .. versionchanged:: 5.0 + The ``io_loop`` argument has been removed. + """ + + def __init__( + self, + ssl_options: Union[Dict[str, Any], ssl.SSLContext] = None, + max_buffer_size: int = None, + read_chunk_size: int = None, + ) -> None: + self.ssl_options = ssl_options + self._sockets = {} # type: Dict[int, socket.socket] + self._handlers = {} # type: Dict[int, Callable[[], None]] + self._pending_sockets = [] # type: List[socket.socket] + self._started = False + self._stopped = False + self.max_buffer_size = max_buffer_size + self.read_chunk_size = read_chunk_size + + # Verify the SSL options. Otherwise we don't get errors until clients + # connect. This doesn't verify that the keys are legitimate, but + # the SSL module doesn't do that until there is a connected socket + # which seems like too much work + if self.ssl_options is not None and isinstance(self.ssl_options, dict): + # Only certfile is required: it can contain both keys + if "certfile" not in self.ssl_options: + raise KeyError('missing key "certfile" in ssl_options') + + if not os.path.exists(self.ssl_options["certfile"]): + raise ValueError( + 'certfile "%s" does not exist' % self.ssl_options["certfile"] + ) + if "keyfile" in self.ssl_options and not os.path.exists( + self.ssl_options["keyfile"] + ): + raise ValueError( + 'keyfile "%s" does not exist' % self.ssl_options["keyfile"] + ) + + def listen(self, port: int, address: str = "") -> None: + """Starts accepting connections on the given port. + + This method may be called more than once to listen on multiple ports. + `listen` takes effect immediately; it is not necessary to call + `TCPServer.start` afterwards. It is, however, necessary to start + the `.IOLoop`. + """ + sockets = bind_sockets(port, address=address) + self.add_sockets(sockets) + + def add_sockets(self, sockets: Iterable[socket.socket]) -> None: + """Makes this server start accepting connections on the given sockets. + + The ``sockets`` parameter is a list of socket objects such as + those returned by `~tornado.netutil.bind_sockets`. + `add_sockets` is typically used in combination with that + method and `tornado.process.fork_processes` to provide greater + control over the initialization of a multi-process server. + """ + for sock in sockets: + self._sockets[sock.fileno()] = sock + self._handlers[sock.fileno()] = add_accept_handler( + sock, self._handle_connection + ) + + def add_socket(self, socket: socket.socket) -> None: + """Singular version of `add_sockets`. Takes a single socket object.""" + self.add_sockets([socket]) + + def bind( + self, + port: int, + address: str = None, + family: socket.AddressFamily = socket.AF_UNSPEC, + backlog: int = 128, + reuse_port: bool = False, + ) -> None: + """Binds this server to the given port on the given address. + + To start the server, call `start`. If you want to run this server + in a single process, you can call `listen` as a shortcut to the + sequence of `bind` and `start` calls. + + Address may be either an IP address or hostname. If it's a hostname, + the server will listen on all IP addresses associated with the + name. Address may be an empty string or None to listen on all + available interfaces. Family may be set to either `socket.AF_INET` + or `socket.AF_INET6` to restrict to IPv4 or IPv6 addresses, otherwise + both will be used if available. + + The ``backlog`` argument has the same meaning as for + `socket.listen `. The ``reuse_port`` argument + has the same meaning as for `.bind_sockets`. + + This method may be called multiple times prior to `start` to listen + on multiple ports or interfaces. + + .. versionchanged:: 4.4 + Added the ``reuse_port`` argument. + """ + sockets = bind_sockets( + port, address=address, family=family, backlog=backlog, reuse_port=reuse_port + ) + if self._started: + self.add_sockets(sockets) + else: + self._pending_sockets.extend(sockets) + + def start(self, num_processes: Optional[int] = 1, max_restarts: int = None) -> None: + """Starts this server in the `.IOLoop`. + + By default, we run the server in this process and do not fork any + additional child process. + + If num_processes is ``None`` or <= 0, we detect the number of cores + available on this machine and fork that number of child + processes. If num_processes is given and > 1, we fork that + specific number of sub-processes. + + Since we use processes and not threads, there is no shared memory + between any server code. + + Note that multiple processes are not compatible with the autoreload + module (or the ``autoreload=True`` option to `tornado.web.Application` + which defaults to True when ``debug=True``). + When using multiple processes, no IOLoops can be created or + referenced until after the call to ``TCPServer.start(n)``. + + The ``max_restarts`` argument is passed to `.fork_processes`. + + .. versionchanged:: 6.0 + + Added ``max_restarts`` argument. + """ + assert not self._started + self._started = True + if num_processes != 1: + process.fork_processes(num_processes, max_restarts) + sockets = self._pending_sockets + self._pending_sockets = [] + self.add_sockets(sockets) + + def stop(self) -> None: + """Stops listening for new connections. + + Requests currently in progress may still continue after the + server is stopped. + """ + if self._stopped: + return + self._stopped = True + for fd, sock in self._sockets.items(): + assert sock.fileno() == fd + # Unregister socket from IOLoop + self._handlers.pop(fd)() + sock.close() + + def handle_stream( + self, stream: IOStream, address: tuple + ) -> Optional[Awaitable[None]]: + """Override to handle a new `.IOStream` from an incoming connection. + + This method may be a coroutine; if so any exceptions it raises + asynchronously will be logged. Accepting of incoming connections + will not be blocked by this coroutine. + + If this `TCPServer` is configured for SSL, ``handle_stream`` + may be called before the SSL handshake has completed. Use + `.SSLIOStream.wait_for_handshake` if you need to verify the client's + certificate or use NPN/ALPN. + + .. versionchanged:: 4.2 + Added the option for this method to be a coroutine. + """ + raise NotImplementedError() + + def _handle_connection(self, connection: socket.socket, address: Any) -> None: + if self.ssl_options is not None: + assert ssl, "Python 2.6+ and OpenSSL required for SSL" + try: + connection = ssl_wrap_socket( + connection, + self.ssl_options, + server_side=True, + do_handshake_on_connect=False, + ) + except ssl.SSLError as err: + if err.args[0] == ssl.SSL_ERROR_EOF: + return connection.close() + else: + raise + except socket.error as err: + # If the connection is closed immediately after it is created + # (as in a port scan), we can get one of several errors. + # wrap_socket makes an internal call to getpeername, + # which may return either EINVAL (Mac OS X) or ENOTCONN + # (Linux). If it returns ENOTCONN, this error is + # silently swallowed by the ssl module, so we need to + # catch another error later on (AttributeError in + # SSLIOStream._do_ssl_handshake). + # To test this behavior, try nmap with the -sT flag. + # https://github.com/tornadoweb/tornado/pull/750 + if errno_from_exception(err) in (errno.ECONNABORTED, errno.EINVAL): + return connection.close() + else: + raise + try: + if self.ssl_options is not None: + stream = SSLIOStream( + connection, + max_buffer_size=self.max_buffer_size, + read_chunk_size=self.read_chunk_size, + ) # type: IOStream + else: + stream = IOStream( + connection, + max_buffer_size=self.max_buffer_size, + read_chunk_size=self.read_chunk_size, + ) + + future = self.handle_stream(stream, address) + if future is not None: + IOLoop.current().add_future( + gen.convert_yielded(future), lambda f: f.result() + ) + except Exception: + app_log.error("Error in connection callback", exc_info=True) diff --git a/server/www/packages/packages-linux/x64/tornado/template.py b/server/www/packages/packages-linux/x64/tornado/template.py index 1433dfa..f6093c4 100644 --- a/server/www/packages/packages-linux/x64/tornado/template.py +++ b/server/www/packages/packages-linux/x64/tornado/template.py @@ -1,1043 +1,1043 @@ -# -# Copyright 2009 Facebook -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -"""A simple template system that compiles templates to Python code. - -Basic usage looks like:: - - t = template.Template("{{ myvalue }}") - print(t.generate(myvalue="XXX")) - -`Loader` is a class that loads templates from a root directory and caches -the compiled templates:: - - loader = template.Loader("/home/btaylor") - print(loader.load("test.html").generate(myvalue="XXX")) - -We compile all templates to raw Python. Error-reporting is currently... uh, -interesting. Syntax for the templates:: - - ### base.html - - - {% block title %}Default title{% end %} - - -

        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

    2. EqK=l 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ÎL#$bRY0$zvYbf20TpRzHVW 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%0D+dG8h>bPJG)~T>aX^J=;&p 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%0D%u;&2=-@V4~^;@6ESn<-> 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

    GwT|J-H+zZjh)U0z3Yqnt}r3`^C#QR$ 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≷yF+^c2&0|X?I9h(LoA&eNGE(1 z=!#>|NZy z6`g$rZX-w{#G5-yKX7{=z}Dc21wovr!~j+~poakJWe??jXYe#}%suy)ZwvCoZ?Q3$ z>Yl_bJXptiYrN&JfRruQ7+_(Q~)-q*~eksHv7V7STH5k`ehge{W zBlz?{MA*b;V0+rbEh6xL`R=y{u(d_(t2$d(_K5}8Az(#~ne5e1rK0>A92?qQWOs*y z_m0I_RIdlvUw9Z#u&)9h%bV&76Fobb8bOn87_!XZ7aya$-}+WJ7{b~!CWCQ1E%=|W zp`E{phKVSaVL4ot%G~jO_6{5*36}#MVj2!U8qAG(T$}fm@VyDXpOb{XrZ8^}NM5p6 zPvvhc`Fv{k+xD6+lv3z>w0jjt5o9C>&cajchawE&0zGa=kuPeGa^^SoB#)RmkZmMl}`r9?sM-BUdzbXA#~Ek!k(DqEG?5lN8{0 zr^@~JAzK_J98=C9xzF{s`1@DMeTIR>-ybaZ|GC%wG`U~Z>pmt3cPuH3FXL+7do2Fm zHN1C!{Jjj`8y$ad2=Cp7dsX$wdVo9THPdJen?9L>{Sh}S1-Yb@;Lt%InQ-MXA2tG zDggk_%|W{04Od^{)0o(`Vl_j>a!f> zE8phFAR@{Nt&?8yai-ULrk{iKG*4+bkKIiF3exLqaPG~Js623L9NPl0pJDU(JRJKh zY!C4bBql#|Sw002$4`dE&-sgH`S+lFZrDo+;pKnu0r?t+RkM5M+`a~q3RszJ$P}|) zRjB)M#He#aXrfF7O57R7)0ks1Rv`|)L6#!*xlF_$_RKG`k?P~?8ogd%mN!& zovgy_XthrB$`uH%oXP40P5gt7?2c>0! z7{>N54Fp&09X9bPBE(k(kQ0ske^63z5|)^`U4#~Z=fH3iNn@~NJbhBE*C9*rIt00( z%fj2}Fr$AP+v_&jHjLwHgP+GULL?WdYkq)o@ldc3xs?I9+=kV;vQy|?KauqA!CMwt zQ@9SXLwjkzf0T4XZb3Q)1Fkiw_S=2_JUr61vI7%`?xp4cTQ4izyafbwhZsPwezS!W z`lw;39u%KMXqCxg_1BS><_n{uV^R+s55ocUcq5U6awtF|#8G8?ygZ=-m4#c4bitcr z6Y>4I?0K_9afVc|M?$b zmk%$EXD6qT5?07D39y^fC5^AD9zTn%2_uLa4%wmgJVf2KVGhApJSbA>v{Ajw0W}G1 z@y*8+#!;76mrCqK^LHs9m{yo-A(mP9>lw=hE ze;arAD&OS6yvwzfXt{%Zlhb&YHX?c#{HBlHwB$R{JL$g3SL4p~=$)&5ldr*@Nzpsk z_$FuI&Y0+(4BzA-xHA%Ws@6znk7^G=_n)a;f?+r0ms~6M7N{S_>Et-OJZwjo%y~I% z0;4H2yCYj?7r$l%Po6}tvaDn{4(vmZ+gUN`=M)bdl@#Q`~aN{ z8imS_RT)aaH{`9qqJ7cUqJ-7aCbk@lLyATLX`ugEk2K2OTd9!!d1MckS&4ZZh!;+)fDr{Eu94&`MOj5(AH(Tlhjx^3m>B>VNX zQnDN+^YlQBQmY!|bYW|7t@`tkl6c5`BwkgHYs8g&7hlSf-HoF>+SiG_`v;Zo0jAS> zrW?X^{~FU@X^+4bMVA<4u=!=T9>AdE(Udo z?Fr5sAi76h4mAg2{<53zw3RdV3f*IKc}#dY+)qv;h;W1MBF-f&xJ#>hM6rD@*=A=B zxkcH&bO!QBgWP~xx^dXgiIP`xAchH3*h;M3*pM^06AXuL0pu*d$b&Q@V95#y?^}iG z$Y{~OVbOmudi^5(qP|B))NYwgpKZk#!s@AkSY~iV8>cAv6RjGPM3|^R_y0T42_8mh z0YtT6wt9piSUyWAz%yWz?gQc$GjS)MGj|@n1UK-07QtjOj=mRsq>+=;GIhANnDc@-zs&0Jtaldoi>1YCl30`s)sue&i@uACCZv1-RpBAGPc z)fAE`*Z)SYVA&}^=J$plJ)P+|sEAAVW2U0tCuf)&n>V0~~3=SL(`iZeIrtXa(a zJ)bkX7!~U!&)}|~qZY4v?!~(7f^k|MZ8?;C7YbKR`}k@GNvNj1@1)VRgE13+ru`?4 z(p9?Tzx()Kz})0Zm~g4{;*PWq6uTR@F=Zqca|HWr_$#xS4~-m6UFjqEGq6-VvqR28 z9*k5~m*&~4x!Jbr(&G#57<+zdVS44gsrKp+?(tmODez>z{vMl5W3Uh_6IvZ1AkYKR zCrFe|5iJXoeC{7GNxi0MCN?p{Mc?VkYcBSUyN2$|kM^KM{V3ZJRQ^1Ul1uKdkt`18bCiB)G@T@gr0XOng>G5ajP+S>ndDD@K`k7Cbp2 z2;`*V5Hb8J)*alF2%Gn=$Zp7gy=mB|7|B20!J!E-SWJ}hRXFIs8dn~b9M@MMM{pdZ zO*odWY?per0)eym;C4I+6z48NHJ&O&&b?(IAjB*Y~fc3Fr1N&+5?%mnv&_A z=s>6oj1dlKXiQ84eq86AV=U3 zCaW<8!Br}6v>G8EjA7zat7}3E;NjsvL%y8$5B;+eiYi~Ldrdue@;RGZXc3-cTW;n; z*di>UK9Z)@{gr7(PrceRdg1_7#$NLP(zO2w?`~F^&%9w~mPqB8{*~qo)~l4(i|?O6 zp9c_!v)AcO_BS_R z>r-}zmforMQ*F;)TZ9GPbZo~u-??3Hs%o>jZS|VI9y=d3Zn*OM&)tTfh3Q>dHnuzM zs`yXe#1A!}r>hWC(TEmW151>NJw;Wg(zw~{)YVld)6&^|V51YZ?O{8ahW$-i zUaQ`OJnn4F(O$q-GEm!%3KZ%WJ9lf@xL;ogGS1C~dDyUC=%1~;e9c7r>;Eu8%h^Aql@zR%oEmag=Rehy;C{|UE~L9!ohKiQa^mH*Dl`mX=Q3N)lIcFKZ0LT~;< z?haXsyQ}BnT6Ntcj-JQ3{sV3&`!~dSpqXP+TlS95ru4mZ)?@l}S*PN5vdPH2stg~| zVqiVi9 zZo@Z!L6bKG#J!A_E49Gn%))-FR;Z zt6+cg;qJ=ws}?*^dH$`1H@JPNX`Zns7an%!t!?*N@|9QKyhSUcHU?LsV6&3X{t=bD z8kHn7CN8(Ouh#1BLn`s&R>!9IAiWe7-1Wiv?$B78E_JFG-MhG?w^~Vm$E4RvQbI$5 zmZI`gdlVM9mVCPI9z0#z{cFq>Ex2cCH{Mj1BF3@qZrryQu7R{5`KoT0x;xssTZyZb zx-s}bd}FkqaC;w0b$jp6@ZPA|H@Mkt`CURSRC018@OC= z()@?ACivd|)crqP|AhZwmOq$QsIPT9H)>88=k_d^qF42%iM|&{`Z9jH7UN=+p!wU< zFq2m6_SMZlJr_%IDCB4sZWcPR5%+MG=3MLh!I2~TpYasJ=q|Fe!66@NMTgJWSKKUfQR``+cw7`OBYX&vOQROTRVuJs-F4Heio9>xbR2U2Sl5T7|Wf#1!AcuxV=mB57Wg>CP?eT!QUYR-_pAGE0OxZV(OVcvQXFm@?V%h^dOKs;^Efacs=2)-L$%=oGF z22bX^i=JiBIH=Gc%0jX>@U3ss{0GuVjokX3Yc*fxvrr`f;Xi=7t#SKay!C~fZW^hB z$1E*xyC&7#r0*lOL#VL)-iZ;=oRAe z{oy233-ZoAZhbpSfSiK>Bjkb#Udp@Rgf^k}|FryBdbBq52VB~=2Kan=c_u6OXzxvZ`utns(j05{nJhgoy%~$7x z4pHD}ch1Xh=c&AHg}&DZ9nQafV%|n%_xJ{t{f;Le{`W0V2nxU?9Hfduif00hDE=5W zT5l<|zj??zY}tg-FRw_+NJ$y}@(U@cFnZ^3qm~=PG|YTV%Q?oXyX+?Bh zVzX|5(KNDdKy?}=MYPH&Ly1iZP1U(GS^(;dYIay6G6gT0(9pp4Aw|0>nhEzIWFrq6 zS|$V>F^Fyg26&XjTf}`zS2rR^oE!9E%nKx)x33M!Q5Mpm4=3GX|}U&*udD%($0z zMrNt@%dth^!8sH|s0jTzU40hvZg1*fh}rtg($+f*Z0lvSG$=OFn87Tn3}!X`T@l${ ztKw|6;CwAO2UmvVaGi(|G`r1^-Fl?o==Q!QqJuL1K%&#&pB(^<3bV6hl98sl4f!@3 z3Scp2c6}d+A~&jT^c@MaHeEhz9J4HEy^)^9Q_pVi>%uKMFCGBSTD$>4Jejju#PPDe zPeJBuIXHP@?lkmGp{%$_@-2 zOo?C*uV@P2LH@U;{cYzh+L(9Hp}m0|$S-WYfl?A@L?{g^6qm8i$_Ty^XN=EOob$HS z5}z~Pk*k-%(rfxVLVm_hl!s!V*&T^__-%Y~Wd3EvLt^SE{Po^hUNhKsvkkx2XU-M9 zbArAlso(aQ@zvfL!G)0#93{>Ok-QI)e2q1tpl50J8T-6%i<(f6<&es|_Mu@b=H19I z&Eo=HP~HGyFy5a9!A*ltTAZ^S8PTY=@eW+sL={8&cyYjM6{OW7(+q+h?e;NN_8>my zwAqJ#IwqJiX8uZh1b)D`euKkfjZ=fXw~3$qc$&8?!@fz=TfL8_+F@w6dau^(o9tVh z?S=Y&O+V&#?sMYtKD`ykqpY>R*~)&zAI_TOO|66}-{2mN*LlEJ;QLiJlL_AC(xlwZ zwYGhj!qB%N-v)F8wEvQC*bD3e+(!40Z}BuH8J&UKwgba!HtY)^Mk~X9V_Y5cjDB17 z-seWYsA!FTQ92OK2D>&PLvwC*>pR@uFQvJi7Ydynn)97PC+08w7!W|tUFeR$d=?60 z4?Mvr4F$Jo`Z>5E?$Ixb12Vz;wsggA=Qd66(tP8-py}t~f$Qf`m2IjEzC<5>5>$rl z+b5A9k%1}zzeU>m1Fp^p_hhYA(M6o6y!kAf?s z08uI`RBaRhwq@l_tyFm}H7G7dS4-xJzTpGSY#)K7d$gkIeRLFBbD?do z+xuuPT848|p%WwJ7PF`wu^bFrrZ|B2FUW>>3OQKZqmjM??r$;kehfCi{mo{!k3bRz zLMrWjbWEXb2ZZj%Aj|uue9C^K+quIm>LYMqac{`JKWu>e>plj_sO-lT+TMZqA^U<) zpzPg{y%N03!2Ksl_QjArgs#Nz`J~}~nk9QIGKtOkB+3437Vf8i0&)MOCHqpy9u~)W z;S*zX#Mr+BgEQOv=p4*u6*_nDj6ciXe}o>#vY41T-P?bA-=9v-`{;r~8@i`P^u6T< z?mtO=?epwt37IDJR?kBGaHH+(F{SN9-w7RHY=Hijo+zdTF=(Y9%B~K*EvJI$bm)`P ztZAVKGa&v?NlrK#F>8jySD=*fz9n-b=Zx{06WXj!&BC~;FOfDJadQ~Pa znz)_YxvY!Hao@1(w8u4PGaOI*2KzR*eyzSFm8&4p^#B=P41VRZz0R~+3Pn_&AJTe9t7#@A%oLme|qXUfmPuc)ulqGvi3w+{apJUxH#2Z^ zKaVsyo|lqx+HEhp(c`PmsRV=k@wkJZ-*WM@tdyUB;iFmhvZqV2tW~zStvv;+S#wjS z_*^bt44vXDl8c+C_`W0;w@>js=E9oaT0Zt*9c;$VS%vnwMZ8+Ws|mO&ND1)qq6U1< zSdY79d=%;A(%ClLE4#pt)A*RzF$kZnm+;YY1|KsvF!jb+_6k=eQb#&)Z*IwYe9mjW z1^XU5afRH4_I5u$<`!XTeO~7Xru>j;b_^h$4sx)C&nK+MqxM!7vWSJuXu{pHbxaht zm^sffPcge<<{~az$lQ!(rrru>Jj+NTgnM(RZ)VCUGv|@UU}Bx*d_+F5n2F#)nbbuwLrJxexf%PIdJC8-;Sywo%Z_tPoA4RK zOay5RW|}N!jxfz`VWy4D>_?)x6Pm~j#W{Bo3z^Zz;v4W0X|q%oM;X)*I2)9eyv5E)XCau|u`PS{Ci!YpJF3z<>R z;@9FMvd3bEYAGW|3}z^)7BV-3P$)wjKt*XinPCZYJ$sol%FIQiF_-~eLruGxW~VR% zaS^p-W-poffQ2k#A^iq0C2Ror-FRkV0F3aG%L4daGNS;@Li!EhHZr3C+!oJF41fWT z%L15%7yxD={RVIcnNa{f6wgcyfDc*BBnI#yGNS;@Li!8fEb^l88;s{A2ES;;hF}uo zH%ML-epyJr@ta9z6n>AzGZTZ~V-_=s@q3KSDEzXJe&g3cW|RTuXG~*?!7ps>W${Z@ z8~9}*{l;%TnNj!^8xU>TG59@WF_YK;pCL2K0JD&O8G3%$_p<4=wDfE6D-9R$C(t9X zgJh4u6!^)08}5X?j97t7f%Nbu=Iy#|mOX;-%L-RH`AUpulO^eXEmxv_3;AdT0rX;J zr7KwEI{YfhBoA!#W$YIf53I2G60MMU*-`Rvni=3kC>{`7S^*h@2QnBV8w18B5AgtQ z-$fqwfGRq#GM99Zh@A~jcaR6R^)l)}@xV??T!_{SNZgKJa3H_~dZI z!-IidlZSZRw(lnoouGOE#d^e(g0B}Y%_k4+qRQwmC>{>*Cp+iX^GHlH1it}1&_xnm zz`9pJo#27cjp4xnt;s_?T-y(m2jDae5R{d)u}JL02*X;$NtzHeNQ<7uJ?$WA03M*VNV9zd zs|M*~@uc4aX>m#{C$$IY@{t~(LlIC-*tLwLi9Ca}m>fEz4pN5608}l?Y!N`HK{*&t zc{eE6Gp*&3nou)9<|5@N$ZAPBA;>aG`bvVVw1lLiC|g0&2~j4szM?2ACFv;2>Pb2w z%JQ!`%F0PPin1n>PKYws6-QYmNk>uEM$(B;2F+Y)m@OmeD9k!YIw8zTuQ<$VN!o&0 zCMhRGSve_RQIxG9lJpg|Wkhrg${eh9LX<5d=__i>nn*f|vV4+Gh_YIe zzM{sAh>k&-i=-2xYz0YQQDfFY(iX}}N=P~(%<4({O2RCKl%pssCFO)DYa-<6lIkpoe*UmBz*w4ZVIClX<)kCQQ8H z=|*(CE%Y7XwW`4b{S>gnH1N>u6)F7Hfo$R#!Z||*jy5dM4dV->xa{D;MMea9a00@Z z$fGv~MojeK=~kA@K@D72HG(i0VH!A+7(Qf@POO`V9O6!yo*djZq`2%5qJ*3X65)7; zF^fm%44jx~#M3S0L?%Z;RmKqpCrlHD-&IlKAf1EA7b6q#u1v=cKthTm$Pk@@?BU9> z5h!4S{V=BR=&OMf6P$R;+0qscaOmyHXu{xxX~J;BDyHX?PD?x|;%%9J9-KO)xa@F( zZ9?G`?1x=V_*g?uOswK5$CxcLEefhKrZ6~RnlPYKQR*TcYBfeC;^CWqADld-NIa-8 z0Lvy41K2ij^6>%dDj}UD5xb0>L=j6n+z-T-l9MD6TT4zX#Abn!egL+dj3f!z6=Xy# zsQ@+;ob&^*mEQZUjFz&2e0z-E$@C}7LMNk0JFb_D?I zASY44R)Uj$0Jh@_05+eTL;<@DoP2!1rd(z| z0ayn)Nz%fW#sjtO=Yv`jRXko1)tHOU;CLZ(bKcCgl_qbd#{NXtZHDM??^ zVN)#yZVj7gH7v(e96mgidB$>5zM`Y16{H*;HD!{t>4}2$89wGbBNPMDS7y{?psb!{ zM`wVf)*J^JQ=HM+>}4cJ`OR zDeD@=RXwTp#ucbuQAiQKF_3B^)!vW-)hmjoN>YuYsf|?s_t8Yq#-OQ#RR0&z1Y$-k z7-oQEeod{a8eO2^$8>UJ{g)FlT+);|7(9-fYmvoUoZY(;(U&RrUV}v8`eOT(z`YNo zVoGN{F1OtKKpJ|xS-jqL?*kcFm-FLtKhDnmJnTVBGcII#uVo+2!)^vr-tXd*1N_~} z-w&1YH%E|>HYER(#989bNj$8$k+(y@!izwbHlQ2}3;=cmj# zftr`Wp`OF_^rsQcP`-^3ALZLBa9Mu~M1;@wOm)g)H13zLz;K)fByQr>>`Y!hk;&_F z2V?l&=Z$YutOY48y!~vxM6=>&J0CrRpNMJYW1L%4QJhl(^)fOOmu$lk`cydi9o1)- zhfA?1P4+Kr_NUkj*6%8mt3q7DY8CMPTv?t9d%*^VCV&P*Tq^K%!@GQn$<;E(pdua0 zE?bYhYgo!wma-;=rND6wA3^#PND$u7oQH)rl3PUgM2YUU7i|0hsWxJvIvhsoPUbtp zd|0ptu~;&jqhvNA%Q5Cdt;1)Knh|B;cIM;sF6~v6UTh_iL>Z)>nGS0%MR2X zx);&(Q($XiP|Dn@mXbSKOPGHo-V6&hI<7e|gMz1I*p0?q{$2_{k9-*kBenX>TA}|9XrOXK{6@g#)@4&NQ_!*184v;hWeaVsIifM(7S`a_~iaWZylS1|F|( zHSK-jU+^aCm`>xfy?c$Q{q^`m4!jC)-i@7p2Ras<7e2~L@gW^;;5<6ncDz=J=j8^T!#0Qp|8r^+ z1TSP0M8n$WMh>uX7evF_Z;!kVSC6^)(9;k&H)BnM_8hiAG#q>`CD5?;nURwlYz-5g zBOkz*mLBPB@Q3;!k3m8*+WXFLFuN}2tHcQf>LRH zATNSKpPS()r5zR}&t6hG6GLe)Qtn1Rgm1C5CP72sruGjSh={$462AIEL{ndgc$bu7 z5%KP25%I2~gs;93(bg9tfctnvFlFC}Xj7E%)fXZ<`a;AZQi?^yq01uTkfMaIJ`j=B z7a)Qp6bp#pWdRXXgz(iDATs*`#4%Ee1;nw-0^*pWgs;8;;phtxup9A!=(sE(Ius>* z^#zFhz5sEClwwW9nacv=jG~0Ez5wCs3lLqT6bp#1%L1ZHQNmXrfS6v=7b0L8;}LPO zFGK{+Ask-p#6?98UxWoc{_%;7MQIOga4axhS#}E=xHoxx4`krp1LG}w0kS2_0w=?p za525MPk59Q9!Qo(!=yS8W{SZEQ4wgK*L+*xWCY!e)q@01wo3;R2!(foM(K(^fl*0d zAX!N!iKxDVxnf{JK!C{h+XA7;_L$Bi5NemcBXA(R7erk3ePUu6F@a>$9VDW<4d#kL z1hD`jJ8lacpxw9njlh9+={5rU!UsUa)6^#%Y6%AXLl5ZQTKU|$6G z$?7r!``V?)2%HPA0g;lnK5fGa>L1Bma1G4Pg1Jbr)g7cm(&s81rkabRZ+lGAZH3G~#l%hYib2_&cEN)mwM7pvpa5>v@-B#@kvmyrNQ0CDZO)Kqc@ z2_&cFS`vWcAJ>q}4JBu?{N!}Jg5|^Ak88)3rjCU`aykY~dh2+Zsbfd-I&LC?o;t2I zb)28PjscV2I$mMw*p2eRCbS$yaU}`#vmK*Tc9@-Vew;@(wB;fmV2~~2eASMJs{S}|z9NPCm!UlR z{N~%xRbxyp&KMndJd7RK_jJo#acIDz}UdJRZgl z?0Y(BrEv~gUQ2{7Sv@e&YN|gEP6EBT^N8ssHcU!8h0H`ofk^w|V0zhDlo!CUwCxM8xM1Uym0}xHg03tIHAj2pYO$3PgJ^+#5 zFF?SNaG8z-Jf7Yjql?<7N72M?D!EYsJf7YjV+plRPoj+kk{cE*BY~bSV=0wQ2cm-n zl5-hrNua08SWX?oM{uzGX^Qv=-8FKjyp)8r;h0o%5+^x(n`)``8{<^M^JQJn!JvM zKu;ah{}UaTlR$Dh226VEm~NlwxRL~tYsdM$bZn@18Ou(t2?HTL)N5$AmSrc`d`o(% z*3jw-mYrP7EoIqpS~V0}&$5$KXgSM{YqW+gn^<;ox~yc`aqZR6WgE**PM6DAc3e|6 zblJhO`=?758QVHp5|&vx9>c`;*&b8pu`}kFEjMEL5V*ncJ$x~A4_}Ph!`FVS?2pE< zE?kd!d#vedv$_HsBAtP}mOX*&mR1nCF>q7M2e35=3mDoGhE+poKzd6j+7`kC(jzK7 z;QJLf2ELC_J$x{705N*_Fd_#kMoaVn11Z+DT0t7I!FgG@Z3gEdOX&X~+Jj;Jj0J~-XFIm|esvef(FZ0ly0aYSXg z_rYhao5OiTWgt>E*khbbiR*_PWWN#-nfURD3m=b{;^RLn5n&QoQZ}WuJyelf6R-pLUS{=)VyA-g`XKXN#5c3$%UTzt?l;f|DjfwS#f zg%1RXfRFX8(JX|0kPm#3kM%ZG0^tVW1DC?bHzTd!~B38*xwQaAEosT{-@E(CthC=Bp+z> z1|JJ@n!pDZ%q)2{1&&8{1@*A!4HMHxewUFW-~(Ue zqsbN+G6Nwc-~*S!$HK@q@NsHT;Bae4;Bd<^@G-ls!M`xFrD5Wbf)4V5rBs6tyaXA1 zAo9ZEV`t!OWJ};MLUC}htzp8Dl#_wO?e7U6j1rmq4C<3N@+&|O`M?+X*l9DNHXoP5 z$KpsM_&7NzaJ=<7+v4!3I|0EjIQBE=2-?j5ew5pmw_o(l)=X#fhogTzz4p_$Dt@paVdNxfaz0}eZw>eK4M`SybMec z5CcAf0#k&!kPm#3541wVBF@L9@R0zf^K1LY=`rvTi_>G5!70LJz{jx$;*_y4-~(Ue z<5(1@xD-AT;B;zz-#G06AF(*?xC~C=x`2-k!6_qUzz4p_2dsf6y#m6rncY?kqD-azF~S1e8j@^Vq%!0ho4?aHWnjP2h3a)tTF@#%;1a6T#RBB zm%wH&F#3J34@iebs$iORZJvcrNuDJ8ic+0kesnXg8?T+w%T+ObJ z@8OZuGv4UtrZ&%&5HUtY+(5{0R z>D>|63v>cQ!t>ie!|aEd$HEN}LmIn5V+f*~tgcua(yqE7XD$`@^8<*$F*o?46YG5ivp zpAFL=qU7M0QPrg=UsN50M*F4e$Ldi&M$w}0OJVvsvrA1imsg^EQS&iqvtMeS*@p5@ zqI~LlKLK1ZztU7O7E28sw?ma5OUI^q??mzO+MQZ!s&{%liceC#4wN6S-pA@q^_I4w z{3O-uLizFPo!MrpHy6bxsohc(AFtgzE#*2;d~(VytwixXlq7a`fcvf7*|jLY zhjv|-c1uxya@sAgNBKRpTWV@|W+lo`PP>St>#5z+N>jT})uR05)SHFkQBO zdK90edL1Y~UcKe@rh2Egq5LG(>q7bQ>gA$`vdy=k_$0MkisIw7n`J52f#Q=>?$k;Y zAK!FK9hP!kC_g#nK30qJduZ2XX}1*RC#T(+^(eoGc1um|mQpxDdM!HABPbr)JsdVV-X#@ND@F5a3@trxU{?#eO*&odmXRrD!lkFsaHoD^_6_hXMMr7te+%AxTy`}3#pA4B|rbBxAU^7dpZ^H-MkI1LH z!iXNa1oumnzdvkP?j;qFFXui?G6*K$)dJPg{i0unJTcQ9rXOa4V0I-{8xI0kVh}iz z0YQ0fZxoa!Mu96C6qMBWLcvp&iBV9R3<{>V^+Lh?+JrEmg!>NzM=umitxt#o3OETE zfKCq>Jl2*F1{5%7VokVVTfxV$1?8?@Ft|M-3MgMrw3=i-o-HUT?TrFQLKHZX0l{OH zy+Png3l_C`TzVidTNLBUh?y-+Z{GBFBDlR?4!wq7VGtxX66O1S?pxULrp zX4fY~0R_zIbQ5hKvqy0Bf3kI19Q9${Ad|N>004qXjmIlMup8g-C zsocNmbkLIY|LCB_`+tu?ifU+%h|**oK#X2{I)F1FJvB6+O$RMG2N1*8o(|wsrJ`HT zz|cWU&H=>mwU+}}DN2POfO&`hI)J8nb5VQ`@4nVlFQy%mR<8r)$E$aGy{TSIJ0z`M z7s~J9-?y3Sy%WVJsohc(AMf7hTFP~x_~ev}(Q7Z|IxOY7P=5csdsDd>z4p?s%hGNs z%1^HGV))uiyQQXfG4GJ9b}@X7)2^vlOgSX0*;`O@jABitVzMD=r8-b_%#h90C*~QF z)~5?a$Fx>cm02h`NllibP-K$fFZcKE+qeAWa(}!1Gd5oC zZ{Pr1%HXR8rCxJ&dYb*(AsIb?^B$iu4WCW*Ximq|3+F8O_FXgPl+Ap~v0&a4bLY=0 zoAAC6}W?s@#4F{2z4zx36TX%F46O_}PL@tkAa6XoUe%3NjT-<&&t{+!R2&HL6D zQ;hfby1he&UN=6)?HzQjd|iJHzO>Hz6ewcBm$c3`2-$JiYZhjvq-aYI<|3p=TY8>f z_UixoEPu2iL8i9!0KQy>>Fc$nUAQW-R}aiiNeQj~6cXO%N{KmdhHunW@lZv27v2u+ zDbi1Rst(l`>DxUz&dt%h`I`6H)I#s{v_fxbMxl3hX8YCA{F-;DeWT|6cB)%%(}(5g zC+%C@&b@yBpzN+mzSloPRcbceYV$Xa&}@N1?=xv`eXl+z2N^<|eXFyJX*(wQUb{o3 z-OTLkkhVedKAfRsKNxtQ` zsY9@?2GtT4EPdT4+{RSv;c=)I87M%#AOWLZn(vK!Bx$r_qetbiUej{M=_g0e0cr$@ zxN=0n2pFOWK(aXiIJ!qKAQ1QJ%o*aZ45=Wma-ygN9#NKN+pIOO129KV%SltfMBW4V zl__<_MQ$uSflT1jwyAjy017TL1fan3KKvM_REeum?ramLgs8K_wyil}Ya|Pq3aJ_T zIsVEr>W<6&C}4?Ilx5or-fZi@!!X5KCS))T7!!HnY7AjZ%PBS4qMBp#8ZeM0e4$l@ z@WWvVtpIIuBr~uQn^lu+7Ks74Y(PNz0TGlXvT?+)Wa&V?&8FE*u7F=@NyxhoKXaAD zhUE~*imRY)n`)xM6!gK?O~1^Yve@}rVUgB7|< z<$wZ>YC}}uVU%iFXf+|q$EY|=2*EA2h^aUQ1zfXzp&=Z=uL7wyE;3Q;ntyluc(f-CjBgDFDAh^h(9hMBS)h17X zI9nm|5$Q(bfVF`!Ry>=Qtys!b7|#%l8|?xt<@bs4 zVS;hACt@6pf))=~WBSB6z)g&!RS3o%7RJ#m`ocJ{Ef_~$Vm!yR3gh|$IT{5)K3qVa zYbbkEPG1;@28br)dS9diBcSk}N|4j*aXVX3F&H+8Df@zn_x)f7DBnvXiZWU#sq8KV z`!s@`S)CUoXG8Ov?9*m@e-|PeB>>CSFHl_B9SZvyguLWBExFc0k=gB5n{Od|`GT}j z`f2_sfMGNmK_;NDcx^{sTO(L?XTNVW{#NjYMuW6$#d&87@G2KAMdehY5urw9BYu%!6D7P)St{wkn6b&IoThZv#7GBBq0tbe zXrwLpm8F0Ko5rRibu@t!h>;9=LPrE%GxZDnFRh=trBb$=si0@@AS5I{^Y0B2ZIHCzDo_cgLXft&4R3DR} zY%N)WwY^(q=+VcRE}rx;nU)`w%Lbz|#B{Cf_ALL7eGGarqmLQIh9WhHcC4!3L(5`o zM$3{uCd=w$(6*M}Dp_JGt>lCbN!l^;vX2>V_Az7FG!$FWijym}1vcMd(#OENqoa-6 z1!xi~xm9h&)NpCFS*l}!>criKoZ#ENewWG-t+(RIp;{|i4;?A=V^Z^Ba1dVmwA3P| z;$#U;2D+vXHOlm%(1R_%S<=STSTU3< zTP2Rxm3-u*s_Y>OEJ(wZ>kHCjSV?i3&;nRNf(K2Y4?F|MQpaIACX%!IK(csa&?$YT zR1?O-6T+BPL$wUVk_V?%BW+;5HW1_Vff%O`#5jH6>`YD1*L2*{aZAT7eRgJ1)lqE6 zDRS9sCU$U!XF-k&JC!i6GZ*tZvoNnS7YEgT1E-sR`t;gm(NTW%3Wu!^o@Jl=5DpG6 zyY>GR@EG#4Ps^dXxR{H(NElM{S$@8=#@`&|Z;`#)Grx?@P_z z=7g-mA=_U6CaKLP=N^6CKy;KWEhIHZ{)%BawoBRXvABS9lUen$El$3-b$%Bsb6gKY z2wC`zBcDVHwo_!UDZA0Rmv@^+C?TLSA!n<;8&x09`=_KbLDU$jC$&)u=d$@0*YHti zK-J$~e(Ho%M7fKV3FzA(37E1ur=3SxdA^W#{yVAJdms_Kqg6=&s@drb>+hl7L_+wK zRGgK8AZ%UPTUnc}&StafWxJt#lyi=?`4Gy7Gl$=Zh&S~Q{&1Q#)XzGOP*Ol`P8k3g z#rqvno0F(AQa{)RFbE1jzr#d+qq7Z&c@R2H|t)$=Y;JvwQk!4EoV^M z#CDf+H=2NLFQm5xTFeAW!Bmsp2>x+zqwTD78<|?KFdwP6v9*Oa0>8t+)(O>u%bIQH zMNP0IXzI4304(0W3YmZxd7sbr5z=IxjcnWCYoo0hxEu~*<@G1P%vNcb&J$?DHrkBc zVA3HLW{zKP1*f>T!`9*4LuPJZtA&U*fNwC<1jcg!taaoWB3fg+B-NlX1KYL$n9T(@ zrv^CR)8&mjO(O`lQ_fb}C2-Ru9FHP58%_W^yQO70*MV6Z+k7i{%@-3fXQRFitm59g zw$skA=!<3t+-wKq;AS5<9|K@eyyRvRWsD2jQxP?|EdV#C2LJ_)$N`Os&2(;~jKR%5 z;dmUm*?z(hGUY3h1?9GZ89CC#=j_n;fK%K$Y&+=`@T^z1GqM(ZgPDV1Jk<~{nb~Q( zAk{#-&KFUGS)BSm@5}(_Ze3o`14Yr~IrmV;VCJB0FBr}sGiy&6LZ*C0u%H}*a5F{s za~kw8;b0G+plB(YW@Yyyn-!LWfW;UHpeH$eMJ<()2 z!-i!K3U~!In@@m2{XOt0C>G-c(xH=%f)-JJ4;gcfk z9GWV{YuQ#EGDiyND^pAoShUakZ~#pbd1@YkTI6Q06HDEG5{&D6fE1_!BHDEVihwZ^ zbdRE00_XZxRDk`Cb2pnGxVZqa=V#-W0`eTl9vFe864{f>2OVg4U~?V%9O&`9XkiR( zkg8Z2x*kaZO*&Y&OV9ycX*7UVhHP&C|G4`W_^8S=?->#xKyX4u8)~c*cht~=W_FM3Jv+@V?cTayFH3jruHCx3?snTEyTu925Kt}w zqJdEYzMvkF$4Nk0CrlCkLLUL- z4)_uP85Hh_Yf*TW1j!)M5*}XX6M$?RKu5h{yKH!UR zC|&0enWJ+>7(%lJH77fiOGs8=$9vvOxlc)-A%Dkvea1p=1jgL?}nP zbT$DEes_K%?#h*O@uV*eY#i(F;@HyHN+J;VO%Vi$c&+5i2(XPm|UZ#3*bJSIM`C&SM{lbQciKag#)kRCBs2f!lUvx1S5DSr06O9l+NuyyGQi@5J;nNfC zcoAMOQT^vwX9j^v`Vu-bV1`M`5NpIRTIAj^M$tME_mMR95<)8hr#r;}opl0iCT+Z! z9wPoNjJy0oE+#iGg z7^%=pbf?g39Or5O#0Ve*Pt@Ie>4$W~IOrF%3S zGKDWq)lPdff10+#qfJY9@ADvw&yF_#=jpC4W)=pC6FL{d#%OxwV5sifC3bEK@Nnw4OQt)yeLR<+9N0uX;5TKq z^K&nI`6U*<&mwvRAE$}7;JYzVzIEQ^!Uh2(wwOt_)>k-QJAmjSbY!ukDNXW3yiMnA z_uGzFf&;^EEIE*BKbzf%m$fy~RE8(CZg9L791Q7|JP}`TVV>xC<;1}73r3z8egh9F z)A~DJJ2BXOF#O9Um(uyxSCt~V!;V*W4dhFLcHxB>kGC}0Ptn%f@s5_!u$S!dkmI#o zgCXvcB=Q8(L&qyyBr~Mdcf7V`u=`}_$g_^-G?fejd3p=)Hi*hFJh0-hsl|8g8&&6G+8$e?`vXmN7jjSNOA{| z_uUrbB0%m+57$NYyiOr#fb41MAS;QW0kWs{f`ywCIRtV#3M&~Y$j$XQHl^Y9e;^+u zRi$z`gzFYL&5rIM1EC_VK@-JBfYtDMCBu@>r|LLfVD2VqoWVbpyy5nipe~jPc^k!$ zNd>tFz~{c;s87QSA@%%Cs~62WrE)h=b2ITFPZqashOd;gO#poZu`D2hh$6WlF7}VY zrx5tSA7#=XQNZZ2DSK3(#Vwm5Q(1IIN?Y6~$qoD4p}C74!8E)wQqS77M$wdJm9YVY zEi^Kp*Ws;uHkPp|BLGbm%49IHP|${(p{sy4hdztYGNn*3!s4_v0LC$NSOO!m2pz_` z&pPVT@M=jtVbgYqY#dU_8UT4q2e|GVt^18UO=)%6ZUuugM%nNoBxwkW^611x0+0+F z#Qa7JW1xxjNRAx^#MaC7%ZILUSK?Y)qqp0*FY?6a{fCi5XznYETlU3Y3(b zjFhCE(nZ3gDc(zdb^rj)WB?$1M?Pkd5ylG8Wf3BV`nqHyo~K++cZAYtZ2+XCWF#Gq z&ojmc5Ze?1W_E)BFL1XMd2-ogY71b`fLy2Wq+Y$Rd0xdoF&Bq_swU1H-B zFoMbeUl&{`UCP8L1i%tq!VOMH#-+#~PkD>M(K9b100ZjJ1 zF_YnufK4|ybjOM-Vs7GD1BM{i5@Vwy0FLOAZ?Hh}EJgQtl3NUso^KHW7^dCKw*cA} zMSqx()&?^Hrpy@@h>lnBLo84{Q=kRNu*Cl87=RhNN*Fwl>?%PYkY9yjmPxWK-AdCk z!KeT-SSDqqX_@roiogOk(=wShMp>ppSf(D#G%eE;uuR>|G;%8p^mfdYD0gHS6bOan zR`Iq3ut;{L3$AX1p?#8H=_0F}U&*k3iVO>q)#u0(up+~f_)^&y+#Ef^NgrioB({W9 zNIsw&7~S;&Vo9)c$<=K$AeIzMAT~(`h>>JT1glIkL@e48b8jko1u&9q>Bd60!Wdn0 zEL{wB1B}rn%j!li8=;>|!Au+wZuFLq{r*s)c`#+zfBbX$nu`cdO=L2an6#7XBAzTkrGxXLth= zGORf*O`*E6l3C4Z#n;m2wBp+zbE0pDSFHTLs}hy_p(6{CN1?m-Qt_loGrHRts+);7 z75!db1O*72&?yq4J<$_Jr!!md7CP1GOuRb*&GE4ROuf@J(&;lua?t7fso`z-^vI-E zynVB%wGEx_C5%W@w(;933dW+AHlw?u)>CZQ9`Y3F-36t)IY>az-N95mrg9P8Azt>i zcA&d`><%eJIND`&$Cq&G(D_;~uwiG&tgi>p(8K0y+0sy zcv^dB_BQwB7KeOQ)^dHWkNL&r){rNqqB3-NS^EVX)Y(sl=Dyh0bPI2fAdOw#8qD7B zwI6d6NTe2*;pIIkGpj>~{p}a+8`$`mG~P6TK5KbP&}%>Jj(SpxUJf0e-+npdSss1c zev0i5OS|>~*&BpuHdt`4{gAuUlQQS~p~I!^9roR9c1W7-9FTp=Yd_+?;7M7yCUm&C zJ!;>^t4HMO+XJ$9d+kTv7ejNGGc7sWy3Lc~dquFt!CUl%FSZ?(wje@XMeFA5ZC-nm z`!cXVd~g=|2he_1(2hqr8#!7<%Vt3th`uI>hCCI(A^}^$!YNoNjG+R+I1yO`M|_sI zHylHAE121wXx$5JHw(5n*iF6qd_3AvsMZD@cc6lJ;skU8xNjBQu78f6ya;4c6j|yuBeBn!Av>(b3jMu=Tj0jDz>$Sqodx zx?krnut4N-6gd!ZxAn+rG;e_ng55wgRS*q%o&gqdT+ZGmSQHBu;50B!>yf_(Ytw5- z4xpGA^6NfH{0@fZKEuokCJ939tW9@g_bA&L^6OT1ihTVDNVa2OD*=9OY9`wm;_DX4-2;5`YscNqD~5Wy zMKd>t=FVXv2CE0od4Uyng~2h*#1sm8K*|q@k$~+%#s&1)VGK3F3awirK&>zVAu*0R zRzRp&AYMa=<1vdN^>oj;gyzm<)&`RbtmXqN?4FOuOzbRKwHZh)D60Jz8^!_PNZYm{ zP3whsb+Ey}urdKJF~jZ+2Ft1i@E`&2kz>H^<(^Rr%`IX|2jdNneILkS7q3c&cX7tE zOzb)}k9=DLxRK0-k-YW7LB1^kc)pT=me_k;E`ipo0(TSP?vZa`*=yQ)cYRM-WnXAX zpJ%C53t8;{!l3&UjXyH0^TeB0pXeBp>fQ|mbmI>_MA>tSFXZ0M5+O19-Iy#^AJ}J8 z3pcx!X7b5AB)&U(B0)B>-|F6v1gbHC27-PzJxUYi2I}3dJ>j0+Y4rqiK5%cK8!%`= z`%ipgiV1vlHvlJ-O(zp^pCbBV{JZg9?7xBeagc*i2Os$)3A$l#AZ~MSONwu5GJLH* zp(qX6I2?k3J)HpYiK#8{(R~4AJew{x-MxY6iwEc?58?z2%$;C9@yRDXx&*{A-$2}@ zSl%nXImz&~I)<5J-23Sj3~tjM5TBU60zSG|fYB1>=PTxmFX$!#;tmYVy zY6DpAS1j+wZ3Evz_wJr>6_qaTNs7f*J>8T1x(`Br=XZnKFi3`d>&7UCKy?7MvL_(j zbQ{&Zg7|W;Ab!7B5ZCky;w!zv_G+)Nz1Ayi!Cqkt^$OeOUSZqXD{M`@!uCP0utj=> z?YIdWq_U{?mkhoOYTw`=Bh5<5P>YlEvB-wq$7J12YrtwHR^E?f1;=vG-j+E@0ASm=IT{H6Jz379Y)@LCwQK5&y@h-)TetQKoG2FF8 zy1kl_-U3{iBSG%FQ4eqlOG4OgiEB-}LT%lI!ZZWe#6Z>(!}dzkUP4#+#8j6)UxRE` zk6#H__e5h&uO=`tLXCm?YOi!n5|aWb%$Vv^N0=*ux*--#8inYAXHVi`gqumDuB(bN zE#H5UsVte*f;J-HOd4wF(Pd9!B+)ct%4-)&s`)l(D8fi1gaq4T(W4PL=`mwZk|i-R zBE_Vvxw-&R<^!P=2o4z-%FJMbVlXS`M4?EX%ofICLxhZ|*N9~Yu_;986e`$|wVP9k zg0L~UhWSKr5K*JdDjIC$Bk~0`njYi=7iQ`8#R|(6I7)8qTrJmI@pXV$lC?X*x zW+x-vEEt-W?9qK|j0l=W-!k ze(j`RYmD54Bzt|a9JfX`|7{A+|G{4sn(x;dX3z0F;hBS4!b)7Wp;t%s{g}G)%&JY@ z!!zzJ__Un17hjme@MmWFwLO5~A|OahnL08sE7S4AIt@EhpQyTE_iN2nf9UepHQ#D~ zOPiJHuL)Ls$zOH(e#iHIhn~FJk|+GNFJ}1#!pQU)A9ewTw6z$`rl9bA-SZ?ML55UV zTar~+`<;PE+^}IE&krrA>bl?Y-A=UreLgn+(P5lVb5#8Z2l?m1sg9bHJY935e1ymG z+f>)fgK>6%qvklyuHztuLW~0Y@yIj3!CG8xNf1@n!TKpr;F`@bVoH|BF~XO@jgy;P z4!iU=1um%Quls0Fgw`nC!0s%ufQ)zZJf8dAdu?v z*Um~KOR5fc__e_W0q+?6_1@FrAHB~%I_kH#`l~*~tE#%v952np{XB99{ekpBel2}~ zzbcsKpU_d(+B^Z*Rs)zw=GQ*#vOo7k^P5o&ivG319`tz$U0!M)NkAOG^Nxwm!*R4Z z701^3M4?0Ty#JIXV9?p~NMY@~EO7PmjKEi)@N1_xc?V@xVo-ZQZF;J|sw2J+{Ep3jZOS8&Gr#WY z(g|IteYid!H%9XRCdC#=actInw!oBB{!I-`N#ozNz?5|UO%F`Tn9ZFGp(iBOl+)V9 zY1#&VJ=tpW*Lz2F$WGNUQ1w*p$TZNpsuKiV2>h|{4r+BIq&D$}2@PeZn;*q#;nTW& z-amRnxx*dYlxl~h1?_$|(FF#I)EN0PfG^YzttAbbFN5l_{9Oww5bC}5ON5~L5-y`I zR|~p#&C?#SN1I#X+WYILj$}K()`_n^X5k6af$v5fz+mb`p4J-3{m~t@{$h8qt~uqj z|5uI?0|fc{$r){jc5U1k8~b|SV?DP&F#M+QS8RUAxO9- z>h|5rZH0kHyM4EEPhsHe-M(A-J`G7V){rMRsn6a)Slor<(EGfL{bBN-ptf zTt0qS@(!No*f)rKTlr)Mo=aUhzY>ShRvhje2D{bC^Ecp;%Y~IVy1>&nuzg6bVdp(I z7>HAio3J_XzO=&m%|?R;-h;zTvp|78*r(ddNJ-fg?Dv zgI92XD|kMMgSQhVKHS)P37aTK>*UU5Zo1IhqWOH#cacZ756E^#Y9awH5`f)`3I+l2 zjFe7*)wmkPLq~}OSR+Fl1lTA;qaOgO6CjKm4}2i4a2~(|HtgWB`WOL1Jk!Jts$+Bl z;OYDx2mrz+5TK2Bm;~T^0it|xT?lZNN9WP+qWOFXbCE~356E@~9=D5^0B}{8fL$D0 zBmmUc39tqoL{H!_K?3Nx%?XDq{pVPL#LFAlNyz>IJ_0ib@m1W-Sf1VCkV0tC@P zv;~I=1hB;sfbt*`P7PKB*nk@kylW5uMnyHCor$*r@1r3Nkxl?wk?sWOZUdn376QCS zltD!df}Qudp=2$Z&&T5zd1U*5Y-fy2Bmj*CRnsZ~v^UBKHsER$Ppc;qz$vKVv`9d` zfgd$k5ugq?9#C?E{$W%U0bp!m1P}@Mfa71}eIfz0BHanlT>?nSm;~%5%4ZD%$kX?H z^m)&lAKv7{TaUMoR5dg*} zMgWljI&9_CgaEW6-3icL0$_J71dw-OU~ol%FbPoaSM?F-e$jjVo_~ArFfACdj+!h0QSBn zdo!>%8*xp%S4bWml#(FKRg*^t@(pGq0_Z73kk2opuPccYYb_d}-&^`8* zOP~Uvz!Z?ofIt9M?0b%}F9s+neVvk;i#-^%o+P!B1H=)vA0<^N^1p3X1(F)1q~?R5 zy-4cnZbWSo&Vba4VY>Q%B1ts@G+k1WROyoXIwkcC4ihAmW5=edAn{64nPaIe?c-)@ zOi4{PQzPQov!wPgQ=^h)2*+c9*4q&njywce0ah=(qzA2*|9O6mvXXD>5K zZS1aRNu^g!m{Ef1S2mR|k&Eu5q@si9{L0s!r1ML^m6-Fc@b8ppf7$O!FTIq~>-bYClS9ud(Vh z67|y?tCmty+j^JO{BA_;M@j89RxKt`n=y2JT(uC;SW;D$B*La%S1YQJ)JhN)(%74z zPU}X~eiYPRW7Sg96r4_=X+?1yO|R!zwF_Tx_}NEYUHTVq$NtB|cy7;8a^HQNGzqGY z+os~gdG&$Yw0VwsZR#Vp>0n5dAG*b??bJ#nY6mu9@8LDv+m5|iLGJCv9%kFHcMzLs z5QltoI2NdJw1qb~dB{%@M0fG7d>+bN8apm2=3$gq*-5k+WoRp9v}ikbWw_{N?n>p_ zN~v61$;!2rQn|KLD%V!71V>ih2Rz14f7E8K?dl4sIy;moX83ED=JWKb{rtd+ zUYr-0kMF8HhVQC4Ph+xCf0vM@>dkz<(OTiR^RQ9lr;7PvrG7?@-`ItKAxVv2sHYmg zt*qS3PLs;L72m8p?O5^6HNbL32}ru4g!OtW26OW;>-AR5V!hsqCrQ1hKH%mAD%hT? z;|8T5CAZF=2{xmq?F=`Uv02c>4Zj$%u#KBeY)U`4h1(OdJty0)TY7xI3qQW$JdLj8 zlN|FixT`+Q!O7)3d{PD{raJ*ho^2x=FU#eM2+ux_J*@U*#fBwL91Fnz^Tpn z&8(EW_*&{{19tKHo@qWu-rL6kS}Uwo$p)VMj;oX>G2vQT$H`&bjh~gQw23BUHF3z+VS|QBEsHcRTX7eaHq_G?qayk$tbDF_ovH*ldF^lS~X; zFw%Y*=>SJ!kCu^wXtI^3WF!iXkSNHJ6hqM2aW*hULVeV|j`w0CfrDx!euF~_FYk5i z=SY|0M{2-G+su*R4%J9xcyu>$+KG|QT1SF^y4Uf3Y$VjTsF5U5`-9;0E=Nk>OcO>@ zoI!8G2EnO`Ba!COT^NZ}GI2sN5gEf%LOo;~YNU_h6Z}F?eB#%V`k7C*p7~_!e?DdO z%%_b0=aaK%J~{iJPq{twDYyUml;1O-^824p(|YF9w5#RQYHC5u6cw9HGBmb0o)1#82QgQ%p?7sN!XG(arn>UDgzHb=9jnI7$rs59^?@D*rcumzK!nyUg2b0UL*~9VNFu_K;0(KM%)npqU%`yaR{0X(tx)%?x-O?!&+E4;%{r z(1Um#dv9UDV839-5xBEQmr2uioSU;~@e~(yzIBp&tQP*(dG_?pO6)Fq57E`$d*(To zyq_i~*Wj?k$z43cgX=i$*!w($Xvsloz_r-D&le+nNkjPJBsBkcp5aS;*n;O@@T`)v zs&hcuXV2F;vAXW4X~CZs%*X37jWvETqLJHQKn+wy<{4jx{E&8#3c zPc~t57k(v9Y@W}@W@RznN-@5ou($Wm)s5zR`d(O+!wudeIQ{l7VEe-DDfaNrry`-l z(`|TPoTu!aL3nj#*_qFUJMkO>-Z>s^#Va$*-We9I!|U#N<)-jXJc)oqyaEpwMwu4| zhw4T(Zo=lk`|7H_tYLt%s-5<8MUO*qxZ^Ll**>)q2BjI-s90{*d z-8S58blWyG>~6h;H<(JNJR7!0FXM;z^1XmZ4Y>8B5}j|Q3O-X(;}O~|2%Q#$Rudth zxwve%iO^|5XpI6H7fggs10lSl9-9LnsH;QD_L&HsCqj7mb3*Hf;UTT3421RxLgy7i zhYq|K))YefOoYx4#S6_(het>Euv0;3Nc3!YNEGin0zzqmP?{i=rVvVtM`)KI)Gi3& zaoXv8f8ye@T_!^9f>6*vXqSmlI}jS(2$)A7IH0bMDBEiybWZ1xz4c&t1RizPIkZ<0 zIv3;64-`UsO@z)31xJsE-O+6(LL;Il!XwCGAe1f$r3*so3Ze9Pgmwx-rv#zbiO_K( zw9`cBlpxe(Ahgp&=oAogH&Ut&99CCHmF+PRI;(SNNbAw?sMbRULVENP20{%cLTx~3LL(l0pK#z^bu}B+BiMuLEiOBwb7(~Cd*STXcMXKz5rodfIP`Oc z&^snVXNH2K?}^?RB1e77jy4KH_;>*j8Yu{kR0xfXM`)iQbY2i@AVT;^!Q!%gCPL>0 zA*X@RJ`Xv8Y2Ut(>jMnf!d>6cNz%o7KBd6IP^<}&~6i<(?h}0 z-O!n{9FpCMK8=pz{bvxlOhG795Xw{tWyT}4R}eZU2sIHQylr%G*sfJNF$g!2({}R%5MDwtkxC-pt`OQ~BGf(<9Nh|?IbkA1 zeR4;42trwcP?jK+r4Y)BM`({AbXE{*BSLtS>f*9JCPHTgp<)A}JtjhDfzXJ?dTb6H zQ&%UTNFIA4a;J0-!FRxF)fouw6ogL2IP``>Xs3zLsiENLM(E5@6Cvu;1eC_F3iCNX z!OJOlIR!7g$d;<)jK|C3j^MbicW>kpd|ZN$OX1^+$H(f8U`VcaZzREjCr1#W!umq3hcl549C@&r%t2ZhpLf5x9l2UF#N=mr} zv5ELP_t)}8{J1+iKQ5`TdZ$t%*cb1_dB^*i9#~xzCm-*R_ft6a0NO1svp6f9d+`2# z_E<=-jMD7S7+GU%CLC8wSBH0^J{une*_#qRRkjzOpeQ>>M|*)spP^6XnH$hFzZf5L zXc($rYZ#$lYjdE7*6<;@qv1y5>~Lwv+a)OfG$m;y+8TU2suaOt*&dQ*56N=YAj=+u zEN6u*rTFwsk7U^rJ&&*HkdQr*1y`B7TAXX?YJ4PyuYylV^|nOu_Fr&BE|@{km8E(z z8p2-*f{^NMiMEB4r+Rx$1`dgyW2#4Kd7aXd+b3zMyeet2y6833z7xd$dQ2E8EkQ~P zBJVy(%j&C=7K@`VeVx*BhGdCLJ0UGihO~Urv{RQBGwn2_rT4TGpB2)Rno-eXOgkwp z4V0E?eUg?nS0ydha3M%(xo*P+N=p-^rMOSh^7>UtizVnNZJ@NYQ(EFuU`UJ8kd{xH z0_)OZroe`@^qvBrGo@v8bT882eUz3qN=s>0tEViqX6>IF`yzXO{dXWqOUX`?1W0z^yee6<7X=&?| zwB%ovv{+-8;_E$jnO_NM$?cP{OuH&!vBoZ?pN80l^_weB#_BiQ@37gVP9m)8B(~l6 zU>eFL_T2YiI{v&LzEE->mTrUidp^8n9t15Kg`=NZ8J=)p6Lzr3?mn;`J6LERePAzk zN}9si2M!`y;ujzWheu(d#2wwjrq1w)11Ax4?_%@(@Q?%NWT6_j6o>5xqR8Evu%^=- z{x%9Wk@mM^2i z8)J2v{2IKq=Arxil+-tP9>LpPAN9<_n;7|Z8B3jmlZUlqf9v8O;|+{CIO*OcZ)U_^ zVc^b$H!&V93@qyQCdLzmfu-Hv#CWzau%g?W7%vwFzM3C+$UkAHByJKgFUKW zR#+@#g~c9JSiFx4iyGA}DlGKzP+>716&813MHrp(Y3}qO=dJW!c&N7S&mSN~npbP_8uOSF>!Ni(# zb9b-|;|`Qz$kpL2!_cut83sO?7^<6uGK}FU!_cwj+}y%4%*_$&qbS3uRo$WtLmv-i z7?V(jF&1SQ2G+x|oIG5WVc<*2g0*amWIJ7IG8UzjZn0l+=)SC_kYBhj$kRZqf6KmFLjAgCHSk!9B)tgwWp<|6&4dL}b)N0&>S`8g* z)@m#)L#>9v>%UUnqE$E{e9*0JWy+QKpvbQrw;sp=L59r}1E=opR?gGpF`Hn6@G3)8o% zf{q0)q+5`1*%rxmx>R>8Qq>)k`3G2|$iu)IyWO#7@Ci*L);UBP^JWz+`p|(u(Fc&W z5dyhjBF&bfi)AA*{X$1sr#v=tD=EMISH~F;@RVb&H}8eLNI> z@E)qNfizY84psEAz$H~5`LZpN?R2RCS)?jJCi4%FMj?oSGx@K#d8oE>?Kqf{8U3@NQy_$xR5I1nWtxF_GIU zxNIl9hJS@gt~0RatQL$&jMu+cSfj>79}hJqV^L#5RW`7uicgBGF_BLlL%SiIaM-e) zE(IrxRKdw){sHo+J28;QZg=E4X{CGZ=PHT(b?&uYV$)<>B-`myma<5drA+1@V2$b& z18eMd$J*kxpIbw$uXC>r!wX)^wn($p# zR29r*{sGn~hB2_lZg;FLUi*tg`a1X8;{<8h7Rh$HRLU$;l`@n02S}q}#y}do-I2C< z?dP1t`a1X8QbLn2+alRcmvWj#s+?vr{{U-L)fiY~w>#Drul-y;vA)i|HmYmzw1qI- zEV(Jd-aWzvW8}_k`vnTr88hrN|^*Lu*pL2rsIlLD~pTSNi&)k5fQ}Xc%bQGefYpBmr*HE8> zm<*rFo{BiRp#eIR+i-VNm!b$N?0uMOsSK?g5sQnSqKOV_@jgc#W^r)^dna`3!w{( zISXM3OYgG~=S*Q4i{c#2LQq(WDJ;c(5fj+Vd#Q_i@pd=zlAPK)?DwQ%MykzD2?ocv`p!@(B(RxDS@UYpQ zKRg`uJ6t2hEydx1sNcC2^*cAAerE;icZQ>WX9eqbxTLy*^*bwAzq11MJ1bbfvx4J4vwKgc&DGV%YC=8VDFAU6YDhw1y;tF`K;LF+9 zN7EnO^QV)O{eIy6^5SH_9T$VYN%s52f!{PI`_10)=!9gyQzK42p6vI^OZWdU*>BI+ zvwoHA_oIIvyg%8`KD+8O$$sl=+^%H5jmy(#Ci|7oSzngy7yb8xmC1hpH0Zq_C;OG3 z`f**dU){4m{vg@!yHnSKcDPZ_`LtFWWV41_v_=5{eGREH6hvWfq&lrP_o~{ zZ~bI;vft^FyXPnSoqXxf%ai>|=Kf+?vfs#Mo2!%k(gxIjKiRLdYyIkEzm^5lUP<;l z{|^_|C;PQ8Tf8aRFJ*w;Hh9p$)L}!1q&aRFo}PHj*ns|@KAwJ@zMB4+K9_!#zLWlu zK9GKnzKs5gK8b#ZzJ>mSK7xLLwx0H!Hk)>twwLymHk5XfwvhIYHjQ?Rwu$zKHimYD zwu1J6I#0c(?ovOggVZzX67_{TLAj@FQ+_Fg9(v)TYmZNRD!YC{l3762o$J5&e zd9}A<7`Z#aA@GR^dF`a#NT2q;$E2NB@6!=#Btj!S?!8`xk;lH36rwN?BSkk}RxI*r zbuomz?hD`#xTJ<5-7kpVsJ8vfxoH%JjIm`;;(v?C;^E8flM+ozM;qJc@SO zZVNsa!5#2O4Md^K@@d;V7NOhcQ?lT73r1NU_d&0c1&=+1lWL%CL`j4W*A?Bg%~pgu zz#cG(9P$c>oXOPaX_vDf^~jZ6k6itxM>)y$D5oFwXiPFa8q;rjl$%_Sa{Et@#wF9E zas8%8dCB!Cuix}&Vsbs2c=dYJl4d+PYHftDE%%?>?bvp+5+($ii z$5U`}u+M$oQ+IMG&W`Z8kK@Rj^0dq4O>w!Piee}>q1iR^Xaq405P~cMAv~N%i^c=! zRRAjZa6tHSxS=D2fuS!1fY-zk57R~MFN5nS7--Q2_a*WUJYS?#U#{|9KZ;2T#+SABZLfPl32q22xSQ0 z7!ncGxI$ByP7oys>fIFfPY^^Pa{*(_T=&fsW)MQgPQ9AK{)n9j-8hmk$0T82P2ora zC{b7Mrm%maF2I-v5XYFR(l=9>NdP5S>&+DQORxs$CX#}=CU|`{g;@lUVO|nb*e_vT zV2ld@f)rO^31LJC-o)glupffM%H=7T4mom`t9Y34KtRY(CZ!Bcc``NS;j|RYbfjRW zBLy=ZDVXUnz+y!3T^ckzoH)Oic$_%jmw22w|Ce~2I3JjJoH#$2c$_$2n0TBxf0%fjIG>n! zoH*Z_cxV|&4t@g- zU)d>ngKur%mxgY^X3M{0v+EXo3Zw*I=)TwS7QO_spdps8;ik{yH!lO5MNWRMsu6oj z@nxG5PbEICf)76B**@g$_`1>C{8Uo#hSfaWfEuj6v+YFupO*OrXdO*pX$pHez#ZH%vj-|L7<;}6mJq~6$$wj0s* zh_&q{w!J8A0n^sgM#oMx4x#aJYvapod`TJux){v)XdFi4v)0DFfn0nAAg>}XuK?^- zYgGHbLcS`f+V>UsRZXgWUrD}-uc5yZ_?@bKZ}2PbMERYbRr#tZK-Wc$48R9$N;*`l zl2yg3#irF}6MxrRJa`MuqPw_3?aZA}3CcZ%|AL_g3n8xeI`*ZVcC3W1telmBPxGzr z*BSZ&^B~M6lU}_j3ONXh^bqyxQ72`;9(!NU#q7O?@BZ+_4zzs+lq|tQ1`hXurcF4i z$mbD09agfu7^j-?!v{^HP=J+;x$)sTe8?_CLj!z|&gn)k_=X)~lWTqh zGtAgKgPR6nq84APd?$sIq4pLxhL3V)cYxQ zK$!^zl}fuRalxBX$XNq0V@V?x8`v+v1R)NQ2t*o$z%4#I7*pCYO-(z43U7l@=RNid z2{rqoVB8RsJUxb?74!&!XIucSkP5cViOVAhoU zKa}dp4q;(}`xjHegbW|oc)%(p3s``_QUh*}lLg%DwSR>59t_HLivb=xKJ^D-uy%*AXO*kH;67a!d3kpsL1%SB|@QC~Jzsz|}J!@!A=WCTQq?UW>7jRK1i zY^l>i?gPEO_GT;x0T99rK%ndp1+V=AXIbr_vl0cbhTxsODN*3kMNAZA#`PT$1zbpZ z!jEy4v-pqoWFY_SL(un13J?c>T!0@oP3n}iEjYZ6?az$8%L0ZRXv z1Z2;>n}mHd-)$;s%w;Qgt$S*p zIB5l{#X);wzB#6Z$|aky>W)~!N{v(6reLMtRlQpDOL^OPKdXE!I~7oM*UC=eR>h<0 z&Q$qP_8Ie`aD&QqDzB+~OywFLw^LwRJYCGmnGQ~Tn+c`v(G--FTqU&%N=CG*OG`9sh-jR@>OUE!_vv>T zrAO(1869&iWYl8!`%Ok+#rs`GX_@<3MkijGjH(Gvtu1A+OmTkl3C`b~>dOQt^Svvr zFvAlRNs7$EFO&=%a-ypXe}`w|Z;Qim8@>W-`CiY3l1ZD7qd{lMAp9Q6z~)gWHeb&T z9e%-9kNozRA9Zzw4llOt2pxXbwl91k`iw1f_#3vy@F~90t~pwfA3hXaUL3xl@>%?q zd=`HtpT*yVd^U7sF_TrtYbSIc6*}?_WUM%GPIpz|EoJWvW&_wP)Vzf-C^Ffw?zHgs z-*-}w*zyL1@QvY}WoK?cYRemFYr}O+F_aSvUtj`@hPo?5&&W+UgMX0CZ@|}djw+|d zMnllmSysBiJn-^BTt?oi`#0Q+yhP7v(L(Me4C3j+bxZb*;7xi$3z$R7=dtGj;VrG_ z5xpwM$F``|sF-+i6 zNiFXfB#@ZyQ3giFOCXTe%Fw2xb=S zUb*Br=HnKCyj3}8b}Y=qvke3RiL4B4cyyEV%B{yZuhLibxI(o@l1jW) z1S^ccTD8~X29xzYt9^6yo&Hk$<|v9|4Ykh!>pTC4)E)zqQHI*n#_MXY2P7ozm8d;D z0oDA7;=iHy&pIwB{;OOy#(!P!4@FsAt7ocLs`s7!toJIyF`3_s-XDs-*I#;nC<@Kf z!}UBc|Kk6M-g8uo-XFp%K$PCA&`B77C3+vrOYI$9UF=$S`s_(}_xgbJ^f51Qaqt%3 zZuoWHt?RZ$tu3D1;>1k{Zt>l`U-@kguDfiD-kPr3;-xJf+TxsJ8p?TQb%BnFbIj7W z>4}l3>R`WZI$*ZYoiDHHewSx;<+}=ZtM^SGtM|=}Rqq=C1t*AODJz@MpITh0=|*|Y znzgbIu#wZhyrk!?JPUu3n7Fb9Yz60e*@Cn-Q&(Q&M2?xevIU(YCUtoYJ##{rXVJ68 z4_aKH#ruKO%JIdVp5gEGjyYkgcg!4C@0c#`lX^G3V|p~bdT9H@i!rSlp=-uik^anrGUE za~l~jxpw5|@M5lG;?a(w!DS}b?vuXStoyJkj3M@7#rH2=)c^)l!o2CDQFtHb(a@0> z+d7A#+dr9FJMwn)dv;i8^8EHg9)N;I?Ss(h7%u@7OwOUBeM1T35r8uC3+{U91IMR_ z^K1(MNyocLk#Eb|F_Qgy;DXrUB%0p~Hyz%FWIN^iu9pRntsJ8nFS|q1&D{%tWaJ-D ztxeBnyU^s)_9oH_9LVT8l4tF;Uz!< z?ueYsC3|pgH0-hTffL{kwjTkGk$8KpDJWP`1}bp%C((WaVhj=;+ViTw@eYT8z>1t; zw-bP*yTM>659H*j93>~X(yru$mjDQ25%jv9BOU@E)E)2!c{xiwAcem^jLQk+ z^w+?+oQUov9j(Tt^Z%D|(P4=h7dk3J*Ei#`9JzgW4?tqU2W8%fJGgI+Im~b)W(`1-%27Ko`Tdo@D<9$3ALL z9$4MF5$IrH$WS;4)O<{t5tNTcaU1jC@!mV;xY?_zS3I!#Yh9oiN+~Z5J}kgg0lNmT zH(EV&D9$UJ4w+pV`ojH>@xxrDOK*oY!0>z-~SMy;drb zbFEck%r#XBf8f96b&2wv(Q7WI{z;xSO7fVI|GtW8j_UuLf|SF3PHRN?t8MMJ9_~$< zlX0yTaOTKst$#(C*IfO4S=U!!S0*Pk& zwLLTZ+C{ubDlKKIGce2L_+g!fovHJyF4+BAbJZWZ{B_N@+TYS zQF9z;*O7FE+DX6GSYSUMsrk>Yu7cWl|1)Xb)`98nu+^)4W@Q`T&1bFwH-qqpY=g z0>e{HY_eO^MBmzqZs5XbMlW1{nL9Bod;F`f!CUpUr$ z3vRL;3tgI*{+f>jvC_)(NMY@~9B}#ajKEjt`?b@Xyn}Ko0ffDvHXW}I>&SC_Z$D_c zE)OL0kKUj)xVx%4!Gt3?t~v}JbmD4Fuzc7iyX{pFpD!cx2c|f61{@1~C9S78L2FSRDmzujz|B*&sY9!p zI;uLr$RVIR_T9U*omCss{My7DCTu7>-P{i93!QZo4B!p04S)?$4ImBh1fb?`p>zG2 z%um=)9D>cCi}klIpLmVlQ0{OCH>KL4c|p5>LPObU3;!Zh|GlfLP&*_t(A>#q-Awt? zHYn26dq-R%WtwfkSli$ZLLBi)^>#Fl`%<@OroVRJzNSgG0_`jf%%z#IF1uk}micRT z`L&~dhj+hUYmJ0DIV9}{j~>MnZhleb$b;w+r`DHZu*jcn8UTnx%lz7YWl%Os|Fb^6 z|No5Z{~V6={#)ovjQ;QL)_?QcxE@2F&)*GvITZ$2_n@V}hr9PD_Gg;1Ki?(YlnI)qo1k$tL8XrG)zAcyuJMJ~Lr$V0=8A2Eq80->U`PyXI++42rhgqw9;mc14=D!CyZJ_fmgv*7X+#cyzQj zJ=gHMFj@H)kr$IywVC$>rufxS5J!=TM~2elII3y?0#)x|Th#%R^#K4}`t7QYTu1e2 z>{fN;J8F1?Kae7K``A&M+D*f5hT6@*Zl>DJ#I95AIQ!)7eT;8L!e-3P(z2WXy|2$rUq z(V2VK41dbhe8gyuA8zmm9`^e+994B9IQu9drpRCQE@HHgCi(4e`L$UH(j3*l0SmMZ zYb)``Kf0lyw(usKe?r*t(pa)k2y~j40$=jizK|y2ismi|l&2z)DYrv)F3>QK-tM>8 zA^1bo`isKa@-I{(-ZGe7Uqxl+KSWKDK}|z#1y#|NOYbVw&Wb-Qpfy+Kz0p&3Y$f0u z9BFKXfQ&wifUT(JoTJ7GU}g&y^83$w2V$(7g%-8?jfjrF@i%1E)+o zS2v(MopDimbe>1^4v%WTB0SQW5qiSM=c_XtV+NgaT#1%KrMoB$zx`7F%WjBsHDf(= zS)PhetK1%Krpsr1=GS&aZu&Mtv>t|#c(9;$xrzs2bhIhcv`9hVk<^X??U8{U1*0!d zt}Pr3tWPRBHqQ_Nv<1GTxji8GB@A_``DYLjiTtKaL+F=|7fE@CUuw=lQ_!>dq==Z( z&*rxwrxy7Uel&mg;82?$@6rGM?%hQHyXtsEkhZ$uIy^TXbHPi*?=qf__{CecuHTPa zBE#N<3tknH+f6SVqo?@e!F?L<=W*ku#Kzl?3v|gc-jCNO9dB(0fU@v&EojqaIri6_ zD}T;2(;f6Yg2)3&O<~}hIYl)eln?S(-RpQhg9(ZrN{E~yMnwh$rxY3RxzixWhj`Q~ zau;?B=HhIlU)vNJwG4Spz0byx6Y`sl$kzt&ya*ly&Nd_RhnmhVNLTqC{=hN>iW~hk zUFB*1xw(^aRxe$dXy%U`uJ$5sL4Iy1^s+`)}N+pnF~GrEk(SPWI5h1@}s;MR45f_9RD`LA(5 zp!{s1HaAD0NADS=3;^;)B zhPKhtOpV9W|3w~Ku28Ql?(}PT?IP?5h+Bm>^JSEeV_WxuxQ3F0tlbFO)t0+Jy!uE> zH38k!f=APdr;wyjJ6DJ(bj@lZ$y)BaGC{c7<(cj+Zs^RW$eAw=vuPWf-Aa37{GyqD zN0B`6WRAaTBfM^7dTl2VAN~o6N*&4 z`7?4;J%#&sH=h=4zChY_{#m;m+zN2OF-ZT0^>?PiQ_N|;=cP^~PvS+wr=%&a|I12w z{-aKjs0g~JtKu8?P=#x6+IPWWiyXfDB1yacF`RoNS6x`o3tMQiw(4NTLkV}Kyh+;F zU;;$0{n|eFxphNvXJp6{*e_*8eij5xh}zuK_x3p@;bK{|z+Y;DqHb zun(*wzmmU=)Sxx$6wFk_H&RL5XP}Q%_nHx>G2ascN?*ZiReYJA|Ax-kIBArL<04KZ z73E-WW*+ut=3#G+AA58Bq?=c3qM~?6IS!pC<6t5wSl*-ypCNg3&I8@~#6W8`gsuSR zL<%DhvX#22_6un+b`?@);wl*6lv4lX}d6&>!V z9**0pqW1DU&?7^aBc>IrS4HU`EAS$<```#2)n{<8wl^~V&(107X!%Fo&T9{*wfx_C ztF?WR(euxNJS3l^`X=;?TO&0;;JGgfD9xo}gmrz?@O~BeA*kV>1=07qP1rzgK7Y;u zscen>WHe|UV4IpC9HFDSh1a$164%v7CY3@r0xxE)+p2E+@GSU~hkM`_GyK|fD#)*& z!cf)Ld|m>vO6&rtC7|gH&}T=aqvV)Erg<+K==cO?z<7;l4#_Q)|KH-Sbqlds&&`{7 z@jvB%DF>W&E9JlWM`$a+G|08_|A*Ipl>-For+|n6fD=Wkf6v-~!HIPXu!-yMPTn(E z_2)-_p0%6V&Xd?KdIs$pvt(SSz^Le{f+l~UB!}~^ljw&6%WaW?t3m(3@{DzVf{sAm zH+g#oKwCFXo%mOrAiXc$CE(`ZEd2>>C8XG5p9{2|g<9CJy+tdH>~|{2_!$4-lr5A~028V;L#1F}V5_G634D|WH`7?CZJ|?sc=RwN#`aNgfT5hK&2|h{2zdbG z#Mu|RG9y2^iM)Emm01WOz)-l*@^=>dHuEarDgHtNJpcCb@T7kXJbrC6a=eTJ?NlLc zYJFkAlS7KV)%+iy!E>{#F?X*|+>?IO6#Wo*Xy@?_vz*AB8MJ!!G;z02@9fgTm~)^W z)qou}Czeh32Oh*c#EcAo?GvtyBCSo$phvz0M}fKh&w!58lqoafG(W@OgA5qImM@kj z;ksunCv(@$L;vf`urcKNXYCM>m7i0$s6c|t0UJGQKSPzS9ljh5WX30Un*^K>;vNQ^ zaiCb_=M9hnQb0F59bL?zj8q-ZG##U(T0?_3hO<@eq{~7tkv*!?PSESQDJnp!}$onST@6m#9&?dM1ml@ad;OD^c}DI3Xk!THQ9vq!oO*_*t>NEho+R#DjSK97U!`3nBK}24A`x^m0;g z@Ws0vI={%1Q0}=6?qJQX6}gP4zwMuJW7&9rZJ{fxNQ)F|?Orua`y`xpO>jjz_><+= zQiKY?-f4;q@3SiIu=MYFLrT(hrm^ThA&n&-t zT>5A&n?-+0yAA)Q+wH+@_So$)yM68?RiH8A#kqod zpoBgVM7I1;pI_~be(P~x>2PEz{_=)Qq{WWv3}ckR*pXbYE8^O620G}d9)nYu z4s~xS(B3W7I>lbLMwYIjIyf~%tI})A;1mMgdA$TP?Ql!Y~&#BA5 z2LJSv?{ZOEi_$IsMhEz>L_ld|)%ZN8nj{F7oTGqhcyp7gS=mlt~)SR~?NR}QV zmu`d$f?Q|fq^)Hg+P7k79V|oqIAb}^4m580Yu#=fVmnV_yMb)?PiWWt9Ah!`w+Bs{ zUlbJ(dqd;U@-xrc4*vaX&)T8DtL3+beW!jD;QJMbJFq?`(H02uh$}7f!!nW!`EWS$ zy_c{Hpq=P~iyBHRDeMcu5-^KN^JJ(FWEraNsK(l?(v#nF2m0}gEVgTmEEHvGRLW5- z2cU&0#0ECSe1a3a@z*}$%8BGZey%I>+|!D}FhQFlCn08F?aMc#ZDhKB1r~2pB{XgotjWx>_kiA=H#g;EhuPYkzmE{(i##Jl*;mgZ^6n)!P0`Xy3Bk zl&`gq;8=vyv-U~s>ULad7C|#K>plz+c|QY^{Djqhul+x`NoK_a5u^2Rw*EJ^zMFDy z`fJau0_{9S8k2%WcpI1!>1BL44t4<2j8{KKephm?Ym?Vi0@3tB(mVbbItejflSv`P z1Su^26NU|@ou>8pwMe>1t~2tFv4fn*-^LDdBj1l5*hP861eRK)NP~ zl@|;5(D)0GJP)XX2hb>aF9P|3RnaIWJsjWbz`<8*Q_tcuI9%u|(HB2jy;=|{q!-9M zF|RHH4_)Y*_A>B`+>QR2ZBFw-K%aoLX!VZjY!VbdpoO%v)hjJiW#mU=Biqq}u~#+) z6ON#r0)22C;hP<6#psm-AZ~!zLvlr#D5Gf+cjY z)26G-ui&x@rFpMu$H$@VI%YAzV-=dvb*>)8K&mm)aWmzpH4@B~bYq!U>##T&qyKwU z|6ca*!Tx&oFMwbW02tXh9N_%ejC)kbHhd)8GjgPk<-<=+RQ+5!s`rCiV_ikQk52S8 zo=P+nF64q_pirctL|M~AlIO?BMtz|0ZISb2<(=PwwE&y*N!>hQGftE2$1!ojwm;R| z!jMSc<$B*W34Q-W?|Y%%K3{L|)!WZZXum*jKMCjQv@b27wO!!yiRtQ{ry*CKH>p?6M{s2Ft(a7=9sa}z;16d_IA3P6I&yp%`15N^du6|j6%92h zp^bD=r?IF9z2J;OX2g59*l{}EEuK!Y;AIcSE}Yx8ju|1OvgL?_{);YZRwe}#GgxrV zExbyO9p(;r3a2yDRit&OD2al%7VB+@yq=LWjgdDX#=Kz_ZV)>li*mc=YmDWqAU(5>9>-sR!JOL0#9=us8QPo&c9=L3) z@*uwXl{6lnj>e*wl=r7`PU-MZhC*q6W$_1Vf2!KQci5sIvGxnlzImBAoJur=KK%{0 zGJk-M-6z1gzsH@H5$@$3Uya3A|IYSeT+Ci^(?Z-7aj@wvasCMjoLWxiKg7hu*(LR878-6vX(S?9wUxM4=*twMa%5IOZ`B#M}OnF-dp zPf&QU-U#a)`31#R4Ff)HKx#mP)rD_XsDbvtEOQ_u3cy&^BnRsC3bd{0F3iqwDU2684+#ma}3Ok-r-^9Z$h2fQ8BZJoi7FOQH)O%DOVUBr$3E!;F{5tc zHbkbM0k@Fb!{@C#AVeBJ7+6L|-N@dRIYQn4B5`Q|W(@|#kSc5@Y2({~v_Hh1(ll}p+UcQPNcFmuy?W3gNRiNS#Lm`} zFob9AJM36;D|2vkJi+XE?;te&44SUy+FoSp{j!dOQld@GKOSwfS>{KePqFpC+t^Oj zMb`dgUHZkl;@XSSo&So_uDc2p%wLnuZ zq&D>_HXkASG!E6fWsog#r{%5=slQo!Cu+UE9GIGgdE@s2&!<8(&tSJH@cjQH?oHsM ztnU5)3`EIja6mzECpB77R7Q;w0nNaSPBgd_u?y~4+p2Y`6E|eBNve;-VA|4_w)ECk zdbO>$#apT|A|?cqum}NUS2hLC5FjkFiID&MbIvnKKzr}~{r<1}|NDAL=6Rm8e9!lM z_jAtop%`!ELy!bSDqj14TWG#t>_e5%Ia%16D5pPe_n)^a=yQ5( z!86{W+PW^`k2y1bQOv7TDH6liMK8Z2e;X?OvnWgN({u@JV`|VPY9_on8dzu1Q2RmG zz`BTcz~hd9x?t`65d8(C-W~Z2=vlllMfzdw_lh#nsFt^#Xc6;?I<5c#pS^AKN(KPja5{rbu8<>Wb4Z zFUfzMtieN5gD%o_RUgK@=190%10d<5*UaI&3lIR2+WB2+r?x&Ashu4}MiJ!XIa0eI z#CXDMX?KDkTjkZ!H;EJ&{q*pB3iJJw+PT5-eD7dwZ7x7f=4)!oN#E@e-V*iZM#H;o zg%6n7sY*&3J{%1%=JeqdGIMcPF8AR^1Iwb9-^Rq&)^g?Xsz_~P*YK`DISRc_}YbzdA}s)t>*IO2sOe>cpZv`R|6dn z-c}%sBHdr%V>C6X`>$@D4U`)xTssS_E~BB>V`1uT56_AO7JIA1fR@(0O%Bf!NqXR{ z>GEj)bWKw%&=d=AVCJIUEU374788dwpH({#Eb)Wh=zCVUNdqRjP9KbH0z?=R56lS9 zs%-@0vtr)LXkcG>7L?5-)Z_wS&Ct}OPM5y=VqrAAlWGA{lQ%^Jiz0yo-lFh2??5!% z6sV_sRbYAToSR=s}1kw_Y@{Kx3)eM-pRx3UPEntm&+5( zXG17l4-jE;u#-)jiLMW~3`v!raMyL+pMaTXNAWC0Im+(CWKXND>B802_7w?+bYV29 z*ynXsqOAGRz~*QYHVm%_917HV>okL0uq<}m01vKXdIi?B+C`!80TO1al~=+mfs9GB zPj84(YrCkYNtQPc)-Gb+R(bHEav?`7oc0cB z=BsSq%;+kBfoP+b-=ANptF=|ESsWWa;t7#F@4a^I^val?(k6@{s> zvozORBDHh608kWVh5|VlO_g801qqd*x)!wqx|K4n)+ea&CqT3|z?I|NLP7ANmi+uo zACnm4%Ioj}z~WC0AWephp?(2YY2T|f5Lth3MrE!&u(jz+qA|JJ6zD zqlMu0aAOo%;q4WNS%RY+#CrL2`AlnV2!Q6o`j+Y^g%^2gpo)cep~UDvX)N6?Z)a$sQ zJc6(}bg_n8(WR>p63hW0h%XRXivl8}#%N#(A`(OkCJ{VJ0a1y3tcgPR6qy#WlWBiX zvIQFu>yi+y;T1@6a0dN=6~wj`=IEkWYR1V=AhEdX9f`e_7JOMg1q4c=tfV#yb9P|4 z2VRhJsG1#+Ke{4tgifc6mMf9$WVcuMh;Yernsc&zg||BDeImx(PtqJlX?tj5GG7nx zQF?d;x+n#)D^|eN2`@*fg^eH#%!zqT5(r>qaU?bAw9SYw$#nAYgAik{S!OuRK*(Io zW{BYR191V;UKRyrMoIqUK$ABMm!3@VR=_h(4=p8*gt>A7A>6S*9d#M@89 zVv+^~{30+nA;L}F-VP86FwP2tF`L4>9Qj!bEQ<7GJmIF8H&4?G2O*Yc<;H@ILsJt@ z8}#AuZBcKz?4?&wo+1@+nYSmF*BA+|1R;&l@KWi}IlB3030>hw1I|(}O-{Cm=@AgvVAeoe9Dxn7##Z~* z*kqthP3ZZ|>#wZ@IKJhr4z8x5yw4*+$%faX;f*AzCQ6637!8A-_2GqiTLX*C1bq`VlhFu zmFd9+0n5JOm)980TOal6qv*r{EK-Lpu!t$H13Xj`%E+?bB$x@#G2HXzHDHK}y&FO@ z(>|9>+8S;^WnHx85C3+bu73)CfYx{gDK-_Jj^uqD4ek(KO~ca1c9k8=1t^HKz^+K3 z!8?N4hrsODJ?3rj_G>7ZE4Ufx3Ve=vPINRy^N^zmcU`ca5!SNitiGB|MlUClC5o+t zagUAG&XK-vk@101fl5i0U%PPV;5nFkK`V45HZWqNc`&^-C{VULqllPUSpQ4`w&NVY zf{=pI)D@>7(Y-zJ#sUef@J8fXrARTF_c>44M9aJtGV371!&X*8D~rO*yw5FIn&u`% zpA~ugefy&(HEHng5QG@fR`4)6d5b&@;1=Xfa6g1pMUMNxZfXWTqUQ-#v9?A62nne; zY&fQ55z}frd?n8yS0ubE+z<)u7rn($VF78R%2fIB1TN5-Sj(6fCHZe)_wqjX`c!#n8&VE440|gUh=q5c&tVVv_OnS;_3FvYZJYC_kQ2s@Qb zM}x?3L>;)*Q{Jwiti>i=H>gimlt_CW@W{TyM?(^)a!-yyERZ0MZPaVB1PJv(cM(hk zd7si`;SVK&S31(eP?u{gqJo8{B7l7s(Gd?!vz*6~dQ!w3+c#BeJ9WUIi&s*osf`Zpk znruL4AZgSwtb!8qL9PSjrM}Won4u0F01fl(fW}orKsQ+%un|zDJwRtwj1a?p2t%*Q zn-^RyWJdFL2bVK;ycVXcF@~77E(&oDZ(}U5i0Q+63haf1!OMcKk-!`Qxe|8cF!5FZ zyc)}o)k{du8LC$Hkyw){#sv;pv#Tb#JTm?+ob>sb2$>r_DhS z!iN?_C;JekI~itRFH(6bw;E#iNppZ2Op_zXXS{f;`4|^M4}z`7``L-shsSDiABg#3VXhWRHR=95es6C0qyFTw_J}FY@7u3jD-G7n6;uY65fXq zczg_(%gRF(H287CG;5>5#VA8Wh%{MRu1ak*Z?U!g@i=#43dRBoaWnt0cX)YVPhdWt zzQp9gK%Lj*}-uh@BE@j3bv<{~=2xUh$IjXewDl(5ZuLHcbCT9ye1rWoyJ2GB# zQN$gcnDi$D<#P$n40RypijgTDDX2OAWBPjR1zVXM@HYX>6( zWjF=p1yY_!Ro=3^{V-Tv&{K$@CK}vo%~v1{9}aw=TVM&lLz@bQ-~)dS<F(AsVa&Kp19nH1)<{{Nop7 zo^k;Y5i8g^54?S7bu#Q`Vu5Xl8Q4-(hFLAyC!GvGmf*<+W_brX3PESxO9*}eQZ1EL zW0=>enEL%*nKrY zn2@R69fczsCH|c7;{sQ#KLjHZpX&>cw)|vSGUJo5{VaFjVDdO!#znoPvp5L}?SMly zVt@!&)_YunXPKHY5O4RK+J-JDUfkKdSwsPGH{``3#byN|px|z`iFjQIiWU&(j^T|% zU&Q^xJEEz6xWYTpy&1)8N8>fvxfG2#b8xbwd0gNI;+C=rk7m)dq;D>Dr-72x^bmgT zAoRyn;DtAXEv#oCfv`UUdnNJmmRtA3j+VF@_Z`EmKn_zA=#rw{AnpWUvD_3#XW%1X z!i&8*TvII(w@_Y3G`v^SCyhJ9QCOvK@!`2)(bY5Mak_&SN@jfCRo)gYTJ#k*4b-@siWaTP#!B9dFxrM3m?LoI#Zr*oegoz(_MqXjJqLqJ6SHr zYHJ*OORWXP3qV0yr>38XgS&+jrP!TIm`25BqZpxiyTiMp!9AAEXNbt6d3DwrMXSP? z`=Mn*7#RY_Sv@x-t^@09p$hGV5U8S)<7j84*6~x>;$lz(VElHHBb+ zEIWs!%T3hq4GcA|+T9CD} zk4ARaG;eL50Zj|6HU)?P7F9g~r(--`*+5p8a#Aq+x>7Ur!|Q+pu(pqQ{ytid`So&ndD$x_}=N-QWXrnM_ZcLah1?YUp6 zN`2!lymDx2%H@jC$_5oFmCn|691=l2D0@)4stwSEX!te=h zlMUYrF+`ZP<95re%R{_Ms0~f^xQ1-`a%B+Ah%nw-VG7L=I9bT#5dlNSV&Mh1!hhuI z-yb6&m^aHtRu}^S5$sY#cI)-2=~pRk7qQGYS+YX`lknWYE?vu`rOu5}RwS68SHPz% zHi#Thr_w$igBDd~*#$n52qYGXg(&k9mknYDMnv-t!6&mHVB|QumfFqG#h=!Vmo@x(Kr}=&w9bX6StH@sd}d+|5#O-h<_<|sKT|O^ ztx0*!vEV0QI+8a(7F=o9nbDE4z{fF#oL4YiEH?)B6WOo`fJ6?%?343W%C45>cVtNF z3R20FRda*PeX$h52;Gnl5$q=ft=>fe(V&f*y`k%5Jaz^k-Pv;>8=z%qYWlefoyiUJ zRsl_*R;y#`c^^)X)-)khw9`RF9|-S()2J-UEfH^_rrdK*p2ExcCHr`*`SP@KhPxy> zL>aG*2AdQ!<6C{Mge4)O30EpWCaA;f5b1$ALsQuSHJ8fH(Un4A2or?BHt~l%uz=Y^ zo3B_;f{9bqx(4zhu+EAbqgP;NQjQC4eZXQ;OhFIG3B}@uKTQV8vSl6tT|Q!Q z0Pa2*3E-gOh;Bne%5Yxg2o$&b>fmi)Nq~;P$kZXJ87C?t1!W3?;D*`;`dURi zRP?(mmdBh}tWRg`k?>qXRV=p=yn>4(d8;CU?Zi*tu+NLcC^mxH*p=nX04^`Dm^P2# zF25GhIlo%8EQM(_BsJ+;7k{GQmKYIFjdFirxp?aUuPoi?VK%dT`W)gRNVhGq09#Df zSrZq+W?~O8y;1`;sUH2m6oS=aoDIOr-gzCwh7?Q!MK%UTe?dk-2z-M!V+2qFEKyhs z0~AE8b21|=Zw6(wkK3WyR&x^46TD4ezO~S49d6W6IIS=;8)X7DgoqUnuNPY`3~6>1 zL0XI;Vj-LW7wfR1a!Ib$XeTJQzamHx{1P;p{5#T)X6Fv}F3DjpmagvQXVwyvgvx3kZ?lAtlohxuQ&n^0b`46FWyjsx= zu?57lJoXL9pPq^k_`f*p`fcGap61IL&kP1FOp5^PrWb?JH1Gb_c&c1k(Gi_mdeMM#A;_J1Dnd| z!BE;zd7BsM!Ov~cuy&zEdhz?Sc-h1G2LfK?tT;~xyvIpnbD%X;F>V!mK+9at4?o$a z-Ou*_O}@`SnB$7<{D*<>|8Bm|^H=`g=KE}3p`E$r|Id7%jhFu4=liq= zNzxZE2!DU+{~*8TPIg6R@_Uk8j|87&NGtmpZ)+(W@@^O;XGChRXmj0@XRPDdXd%13zjvQ>L8bH~! zQnrzQq9&8?GN7YvS?Qg;CWC>Wd62YV>r}4&{1fN#GpQ~)>#bw2OWE_<+bq5OGxmCy z6n>I8#XmqFxzwJF@K(`mNnx}9zQy$Q-`Da!b>~TCbGlT2jh~_7k2zJa;2)u^+C!c3 z_0AkNicQP=&AiRpoNKd-+~=*fXEC;z(!usL&aEVN@mA|VUtov1*S#BTdY!8ppK#t> z=ixZIL~$AY9cwcp^ACD9j5am!jDb0p))7mQt|+BSixMhK^eg;`8;7B zxhQiuB=G=b!C`;$ZCK)H2(K|aIadXF+?sjKL8Hyu_`Wh~-xr!osqP<3=%;fjIhm3i zu4^!F+Ug{gfV$S0Pp;&=?(vma|6zNuXee-~u`{orjk4LCVQwQCw|U;3hX}7}-f-0U zi;noq7KYERQe>?I=$49yWwj_XoRn*~n`?uA+ zSO98soIc9Ws3n9`GqDRIb!c8uK!EH*;Js`1ep&Dy~z9oQ8}aBrbfg zb9~f66WC}ovFRwzsU~rTQa4F*aU$n5TI8U{jo~#6H*>yf*56>J-)&G9vlg@Lz=1Cb zAuIR4EPvd1br|NJ3zP^;`JQxO{>O*ZN#eIo#ia^1l%E8aTg-#@eW-jKszg}7kXn}T zZLJdj>%Dv>ov{z{4s)CTzL@vswbMHc<_16&8C`1IL+-9KzjBi8#j|W9>&$CNG`No5 zQ@03Dq2i|6&%x0W^YQ1dvhqwwS`rIqIz_UUjQT$-N7 z>q_RdJwd~sqR=FWUh`X&Q(rn;NyODSD#$|)As|2IGGRq*{<`0zLsv|!S7={=t zeIJ@w*S_JunZG>8{*B2b*#TlF0(pJ2b!xxV+tT#?i~ z?oNyJC-jcvO-SbbX4lF+BIvu#{g$(k!MOEiNYP*HEK z`HBD9bFaVWzkbxdPK=@U!~Ux~+$$8^;K%(}#qQO2dG)0K>Pq+O+q@d>zdDasgqq1A zl*qNocbq<{t5RAduFWk1^7n@f&KgOY<0f)eHaAA)V(RGaBAz8~U#IX)HLr&x z51y&MeZ+_n`?q?g_Q1J)XQi^g(bq&%k9Cfe9qF9tt+W28DkVlQ;=#@jGUZegVl6k0 zLV?JLtKj@7^0zS6l(Ln>~4(TO;+^{VdQA%nQ21ZBp(T0+E?iNym&h*F-5n zY(QzVIu=0Qw9CH_nMl@*t1Ot#Cs9H(sFzhQ{L$^j&W2h!a_o;r{y?jhB z`{^Y~Ypbi=%aOcHpTt^_dMCDPmi~E;RP`Jwp#2}0ZR#A?ImU6J7h;mN+$2yxn4UeV_tQKPa?!W_<27vyl^@T%1ZA zmt`JZ#-!ZAS9F5(LgB|_2E|7$DozXeECuN1rKkNv6zi zDC2VB)+A0RleF6J5Hj-5$ts1Gd0$l75L1WBIjxeJ)N#<+c)cb+=oOX*3KmZdaawu= z=eyt6G5_Il2fF#o3Q?>*;eCCv_o+3QwwU{Y$|jO|`rhinu7OG#kg{6!icY}WoLw<( z_Yo18Py11pja;-EBF|UsId`CD&rEJY8hEBc3Gp!)((CGXO>uR?){G9}DZA!`x{x+nEr5 zun*Wo#VYWvkWJIZWk$eXc67dLZmWSl+h0lu40G_0e--!#34XMexx6nHyiLTDDtLe| zn(lM;k-BY@lF2sP&i^B-Z5k-$=PS6BYQt?BH4V>nx2UlbGtA6BO+;mpUSi(14-VPa z=&}qFUiJn@S=`}6nzZd?u0Gqr_|YHToSpxB&6&%g)=wbWxpDHa+NSqO6-=WnxPNe& z1KO2PQnc4kp>K`x_xd3-s9O0wfp`p6Od%DT|LW75n@OHpgx83l z>95RN3Ad|IX0pMNEq&ULb!&!({ZTexXkt%F*nGlzc>r8yyxXa&3JqXQ7Li^cis1}t zg*b%%M{L%3l6H9)-j1j_%c|n;&VL$od#KznBbYbE$+0=6900jcAoU>V_;vm(>0`cJM{7R5}-?=s97DnFC9 zEv(#3AOrmA9P{26qIWy*q4EQ&r?Kce1LFJd+;_1p_YLt~OhNj}7Bdv3qnCA=O7XI% zxwWPIBIKZ$0(XIdr{$7~PxY#I+{?}<4_#s)42t>Ir}?%@*Vr$63ZwE667hGiw|oqgn&F0iG?EOE_W)!zKNYMZnpRj~2* zAhExYICqH%%pp-?#xYD$AHKmbK>ke-qGSjSMG}m>xE}Tx-g_7?agWI93r(M0y_`>w z=S#F}mjAXL>$`bBj1qa(D_x22Q$jw+o3;=amk5muY{NvBxa$Dir^tqzf+PNeRQ~!r zGJ|D{f1#)D1hO?lRMNnds89|T5$8zAPA(x)HV9viWi02nu#)F$TxVL}T+lP4D{L8lZ1`bSkjo^?yXw$a2_A>OI{=Ovu zYzML@K^|ok3vY)AN-t_IkbFivw3uI7!C^&Nck7mEgn6f10?30!ROUX)6wY~Wp$664 z5Hj;8Eir`b(KkZQ5UvA-F0w*>bMr&phurq{8h5(+w2JATljtqIA3b z^_`OrYK7S@?c01sMxLQ(aR`>3+)=@Nua|}V6e$?#;n(;I?JmVrmu$s-clbxXwgnHA zd{(+_rf}^YMwt<+JHJx(X}|QS_Pf~jL*=hgHq*yY*T*88B{Nk1l$t3U(+iY8?0yRS z_wqBt02`)c7@%=cI|FE`%Vz*f>@Wc7GZ5mrz#$!wthid;y&Uv3RIBx zx6Qb*nSa}`{?KnTSpUYt4Av7LxC^bgey#h^-l6WDB?Ed}AzF;ID`s68IpdIil&m?2 z#>|7iYRC99Fq`yyo2>cbH%`CDY$0FP=*kpHv~FfCDLwTIc{ax^w)s6D)`LIh(5cb< z95-N6%Gv0eM9taMPoL!YI`Yk7UW4-0Ef=SJkhx`tI|H~P1$(o^%gr}k=1JSa-n8-w zvt_e{uC_l2GcUG3_|#~Bv<^$26q+rlBB)+id6tI$S68eG{MTalJ3n<2ho z-bq}(^B#@S+J5t{p9ym5T*kybE{rjgbjZJ*aXclhjN6x3$XINUC%nD5@L=M7GltsD zRgy;v{WP0O`Nobv$b4>-WSMVgAI5O75R84ljUpGBKWMT@%%~~I0{hK>q@7~qgT?WA zv|N(Rg-#dIDG)a&rFY#UeWgVk8UNqfM@*0vyNd520Hq7HLYS}BJ3J6%(IN(oAX41g z>3LE$X~pDi-bmX3UFmIs^A$t0n;x2fbaeJL9++}sx#OHaRablMB)>s;3 zBe?9D_w&&%l&mvBzkEdIidNE)27jV_Mn`|!zK1f2fP^QDzOmyD|GBGb&XG$;4*G>cERKc^qB3f^w&}=b`hT zWd2RB?UD*LrB6UF$SW;fuxhkVbDg8PmN7C(WGzWxUJ@aBo8Ou2(9iWAZ~qc8(|JBH zQlP(i=X6(efcd+A!2^&{iMO+(P0_ZV8&Afu=)Pq$Q`yd}No-e;n6-4w>RTcnz-56- zKkDR)A8mJ&XRZrKZ;bt#0O*}rTKy^MS7nAX{r%HLwxJ^QJT0X!6s=qTpoAK|GL5&5 z*xp5Dzl$@zuyvjN*jB`^xKGWku?5BpSJf{FEvbT6e}NpAN;EGuW|mz-<^M@RYrptw z3k_xh7vZ9Yf+b#QR{C3fMut=;T^o1P2K}2}w2*$v_QBL&-z#3YGts5tdaHlq-c!Bm zI>b*c=ZZIVU4hF>R!1~-_#i(Y=>nJ;v9V%HX-Eq~x zJA06+ZPcE3q=T8>B)&-iBFDRvBb;ri&6uC~s6&}FckkO8TRNK> z)u6CwYhk2HI=niTwo@waX&}Qx!we`wMIDkHv{;BHAMFt-+&-o#^8Df32t$S@cA|CwXGjd#FbYOa>!`3quorBG^Z9O+bDVkodPn zc%3s8-XUJ`uZI1bpEK-5)dyPLg@86!zl~RnI-J4dQxu8Ug2$%?iXR*KJ8&dVOg|3D zmOi6>cNLG?0W9&GSC#7unbBo9<^7Kp5E-JuHD{^CeMwbX(zrR#AQ}4F|HrY;kxy#L_Crj zic}ks^A0FR?sLO%O`!Sg_WH$MQ%S0rko~Nj;==xkKHMz9#qxYp0&#oL1xi4`tOoEPi6l)Q5vU?y`AVmO)fmuS4^vRneV$?W`S>K3*u_Q+Rr zZAKOmYZnP1NJ?x(lsZmUi_{ zbWM>(yRNeDZlZ}!roE*qhlhQmza3L)(vBd^nmAD+>-KuO^ zZJ@cEZHEa8#0Mr;97z0;>v{|4m6Fbpn`WS&R(o#{3ku%ZKtnTvP*b7vvjIt5fcJghUY?3%us3fjx^=) z4Hc)JVm6`V?*}s!wX%{O1j{<^#}GVcLbY1==_x9-ggY;u%x?5f!(aT;`jz01k2C%!X8H7^_Ak$@UsOLWL76JpJ`rK{Gu`i{l?l6EoGMt! z%k&stTKH*uyqXzN9p+!@mQ=x8lo`MhnwI`Plol4E9f&*JYeyqb8oWDJrl z%_9(Lt$>E1T70LT&%-odt`|t%F+Hk_^dnVpJMCKm`E}c}^SiE#j~W42mBND!7Mt_B zKp$=GM5->MvQtCj`IS*aCuoS*{_{Yq%wp*?yIQN8Ak$Adq3Qbf^U2#$S>GQx7N%@u zT&#}s%i2cuEwpTYYH#OqOVZjivnLXI^mvV#zc<-I7mqrgLFW^KcY}^)22C>vkPbJx z!`IpGXAAOs_$MAJY0&uTmkYR&{Bn1)%qjQsV`5aVqlpf%XSsC>@Y@<(EzR< z_>eV%_GXNNZAsq<>Iw)Fz4u5Tql$e6)1Kco-mbsjww2J|RjTClcj^3pWe|9jHZ%Y8 zfUln&{XIf>wfVOl`JZrFYr2cY`FOz3!aNnS+T@SGzp>rRMh2~^s2O)!^M#r9oYoIv zHA@03$Mz(2gYLHTF8vE#tQ^-e63jz;>0QXRN*E7rXqR_tzjLxnos)&Ehw^+Tn)I~7 ztHz$W*H&vOag|SibRf=b6Lfqpm{A zav|Ed(|j$LxsN6Thh(19hkwaNJD;4&r}TvP6>Z$)KFv z;-S}@63XrHm=~x6)yBQ!MgTzu_DBZyj`Zc*D}(a22jglMl&dclR1#l8tip5b^P zYWLm{{DRqChDZ^4rZ1vO^@IH5vVr^KTKpm{toXae)w~$F5vl5Lo9B*X?{!fPhYp@(-ZJj_~6Tb+ahWtaIWY9rN7#m}hr^QG5CR$9#8} zgSUS#I_7)4<8$>GJDh^_3uwo?t9|X*K4Fm&c4vfJNOiVo^4!qOf#$qR_9{S7@huIm2VGKoFo0KYmE|5@uz=Q;xYaV$V&WxKSfytFU!Wnvl49aDCi-HnHv1~y%5~f z$610qDS6yoJgQOcyNXmzcbL8j(5fT+4zHP6${&ksGxTqEhhI+HjvnVHM5_MgYV}gB z#Id!y9$Sl{l%&oNQn;ubd-q!Szz*09y;$Q*oS%t{BWx&Z3!Twc=p0+9bR%D^UuwF# z7mGtPFDJf2Ha7E67U~?voSD{MJox8N4!);<0(>I3qek_^{}AP*;@KSfSK}k zD!ZRoj>}>={R94)*;b6|f2O+myGnao?bIO$5vzJzI1dY9G&Cc5oEbkK zyE7E;)Gr9klYBY5v8twjdFsU%yPVse&KdKZ76QPx^rea#=N!{2pF? zwveJ2GG(^^m~s93tu_>&q}x~<%vE1(vh**iYLmO`s?T$ks;C5Wb>hmu=8rWV^S#3= z&tiZ;KreTQzu50r9r>@nH~bghVgBfJ#aJU^;8=nfEF8>WY zzxvnxp}yzt-PFOJqdm4j{Au4YBj~8#`CfYPUwlu`=Sv5B88#~152iBkdOLT9IR3iR z>*TbUrH@oWfm0`!jAVif?QC?!Zin{LYxV=dY7V+C$$W9TrOqh5- z>h*U^Wkuc05>|kViTx6IA=WYlZYv&DU+v70f)v%`seaaPQh>M@Hm_O#pK1x=X=^+v z{=CHXc9)7%Vy0ihtx3cwK}>M$GsUdNupa+dHysi09WUI)sj6;~)Hhm-LO*XHTFamM zqMZHQU&n~cKF<#QT2WpP28i1XoXCsfb3KyS6j9t~ksPVd~jHh7jY0%S%5^{}AL>%Y0{ME*j$|dL#-o zt$mD+zH$3Fx^#0l1zVHZTC7a;L%c3mkPNa&{TW^0Z$`6mM%_<=f#UXMqd)YV&2vV6 zWzI7Y0I;FAUWHeUJF~qKa-`#KP0kxC66>)lT+foUd1R`lz=dcoWBTk2n_et1+Kau$ zekZ)fF8V1_>)^K~*l>|e8J#y!oMbtJ=wnx#x&Qi441gJ}_@&U`cCS>u?%tKR@D95- zT6n1R?f9rWw3$cJCOK%OnJq~4RO0npX_xj(yen1;d@Gkb1cMwLe$#hmnx5pEjufs- z{3!$DJ;Y|%_`q%nE#G%?kR|3=wnJdJ(dz4{HRiUoD?3?YBF8y(*1xlB{9L^bZJKid zl6$jXV>UDNVjBZv{JLhJ`Q&qdCf#cprX9r(R2C<%mHnS%e!dI!AE+xXYseW^ zc%*a-1#=NJsVlz4R&%p=xs`V8k+XOu2H4!g+6BdBb8_lC1!0?Eg*y^IDozfAIflTk zY-XFA*bsUvTvWcV^xWnZ8TjDHq8Bf7@42qln-xzL!T-;8DjI(zSh~KxlVx^Fm86Dr zesKt!xx;bqfErn9@Bf>1RF9<->#uJ;!R_Z$7+UD<%aK*n<8ihpOpX_>EG>?+Lm7R; zIf_Cyl7uQ&F+CEY_kPHjM3PKxyaNGhF@ZJhEhftiI?=@vT=Oq1`jIoO%{6T^(fm(Y z>Fx3(GvCGDXC3xTCA(+}yJ`xPBf6E0YA#7#@iCa>(FG+r*}=x5WcEr4jP7*a+Qbih zuvj;uj;y_JHs8o_-ka2Gi*b$nn_B({ukf#q)BgRX>O%LOAnA_j<(jYT<@}Dl%=iPm zOt18)j?G7~gkbufdQ1%u#8P7dg-zoovoDJUs?BD`7PlHd0|?yhX<#$w=o|BdA!5M2 z#gk}`5>J;L#|AVLnskjkMI%-qm6F%^QEl0_EJZ@~7_|AfVWU_CTQjV0OT6}z&Nrp{ z9d20pQ|E-LOg zpR^k){|R3*6KiMHc^Ts{q*`&CM#ZwcSty>TQG2VsCGoyZ0<*%Ty<>T z{k;%8rW+@dOSe|%izHG7YoA2Tcb9J9y5?#{Gk7^yFTaog1Wgu>2>@um(+v5h&i^Z4 z%M2-9>Ysj8_621~5MxUCsucnP+{2RnxGTJgZEB(NUr>`s>5{Q$`+Ug8s&yrWtv|ZE zq_E|w@A#onEGFAZq-;mPbfTr|0e}MDq`H0tBpfekEuExN<{z7-sXm7$lP6B|`NPzgvch1az6kKn2fcc^pdwa;4%@5~yv zIej-(>V}&KcW&YuE%U^-O>R-Iur6_e*Oc+2%$l_Q{NeUZ>}D&h8yWh=EU&49f0tzS zFl2R3Jb7}wu=`V;PVeYXWz4ZrrFcK%==+#>L>n1sgV*<=XuBb31u9#cmk{vFkna5? z=XJT$Ere{@b%=szw@|-Mp^6`>V5&SnixI}XN%_4r($vKpM|b5hn*S|RvIwE%I}x{2 z&j~25n@tVgl)y;$cUf~^@#S{^Yab?-$)3&0ul&c<1ku@O{w-D|=+`~^Rn(4OwTGZV zJDiM0EJW*tQbPok-rLon;I*kUnIUbCz8gc!I?NZ3Fx|UIilK7lQu30rrmAmw@%QZfd>jZb1EO z`j!s-9_t2D1jzu2qgyP3OSt3e9w6^#@(~U25yB~vUu51|&l8q}!UjO{bPs*P{vL~9 zv`s{lj{&QjI^eaHN9Q!3Q+d=l&Sf(meHHx=#xW`SrE%24Io}b=|EivV?CD}xV4 z=x|=-Xy}icAKx+0E{Stp2`heg0z_(<1XJiY!v~1721~1SpX;zH}JF@L#dkdjaud8RgZF z@sEz&QqDWN+(nebIW@zDqUUEzq#d<3%L2WLRCTt!cO6Du+n?=-JE<+Y%rEKcT?)S4 zPNL;_j*+T+sMg%jF+QhI6AL=kFIk`qzIYTJ*Go#7Q-mOI45wmDuTO7BA6Gl`3E z-HM=`fhG%(B2|x2-{I`n{IVEh7CLL-fB%KWeYI987*oq5ygN})(3pG;BAbz_`@XV% zoytC{`fX*crjmXlGl$|+avALzJeKWQwa;xn9{iPf+e2@~;Eo>#23?)VF0U!w&LPp# zZt}iGro-4cyM}UDlU+0p)VB6un@=~QE$YTxtOwk~O+1z)v65TOcQ&CQ3g?tABcf}Q z4z!vsa0l_OI$QHEw&rtVi|vNy^51GW@3{dV`5~;L^+6MRg;D!z?;~Cy8gdEX-*f<; z7@A}DA?M$jtxEDZ_gl=TdcIF}Gy1{I_V2`<@v_k@CEc!WbxOJS$IdoYZxKe_${;Jw zgm9`LOY6{eu=;(w$c&as@v>PTq_B31N2=bTbo0&FKpCpNP95K84LM7-4V*bK_fZkL z%Mk6?ROT9$DLck-j8wf(gN`Kb=U0X#c0NpvDL=PUdbF#lLv=pG%%>2tBiDTLZ#3xF;c}|! z7-SMNm-t2MZjSjK?3}m`gC}wN_^Y!-_v^fQBhwyH5tO|vAE|nUS~f`1-VYt0qQSlY zGp&o-xQ7{q{UWpSw?i2RTy))d*8OgE+qBRsKp&=EsHiDYb(@+LAI^M$e=_*0d59(- zZfnx@Z<^WvLVKmtoc-~y;3-q(OR3!a3e?`gK1v8&eKuma z&CZl#zWV~|l+hgij{drU%LZU2)j-Dsbq(f=2i<|X*?cTJ6i9rt>=0(*W}aj$w3rg& zo*72y1(`Z?rrvxw6dK0N125@T6=^ZMM$#AD?{8G~6SnzuOllTP#&2F9%4$AOe4J@# zf@=qaPp7R2Ua|Q#?Uj&Ic!`5x-X1ZOR)k9DnU8;ap!NLL5U?J2xO8NUqZPNCgFj_6 ztG6xv7|elu(&R9~;~zvd$itiYDF4_wvU`!uyh@a5l(J4fRXy#>-=gyO^E-17`n~S` z0KLbK!BhOSy(v?!R*qOI9nVMB;iS^&H%H~W^84uWx2gQX3{|(!@4uM8KUKK-8~pA6 zX8s2K;J==~+(lnKe^*4>=CAKYH-BN#%6~n7zlt3@f7^;|J00h56@=Dd{aaU&`UJ=KGoX6Jk5e-w7`tJ%0*6fcHw3?>K+Iaqpkj`^@~cHDzW`Ja+#6 z?8?VgJ~Myq?dwWbuEsvux6>8`21oH?CX+6w%zMs?9^}VY1OH`Z=@T6tDRol0m^-AWMuTWoV_p6 z-FhQKimb7Hd!%eO-VOWlSR!y=;@8?QgY*UcsmS1;Xn+%NZ^k$@l^>~EM<3NPGiFL^ zWdz#b?;(?Zn<5h<{(P!n@vl2Gubj`O?nszClLW`-qXue<{;6d7PW0c_nz@Z;n&(EU zK2T4Zj`nX=w;5oNVs z=>(^^nkzDTyEE-K|CRHE+>~dHpATjHfX0()!djgS!Tjz@QALaS1s*CnF9V^U*h9gb zDoXXdaER5Kb|L*UV-xhf(vfYkDmx!609DeTKrj=wZTZa<$zON1%8yE1z%Kk#{IKzwjkR(4jX{ByO1 zIF8tjsj<`dManjJE7~`QfY)9=@vBp)TsaH)Rg}1%f5(T)v{WY%AeuO;?^0GUdJsxNw9Tc~4^C}HnWDy;n`3&zIqOxB^A3bcXnDM*> z*c0^cOt@YH41_99s8ZAWAOSgpdmf5(6Sq8t7gfy(MUTcx0%kDpvO)QM;D)k=)0 ztN*+Y$pqKLL`5Ie_X6xg>_CoX^dY_H5=h_7-31VYfBFdDckI|D)JAKPN$F@-!`KD7ouz?Y9WIKnlGxupua3OjH5bq~^a`YhW~5t|Z7IM!;; z|Ik*uO4U*Yf1xV|hiF4EJ?pAX+)B$*zt4^k=$4-D-tGp!$p7?vec}k&K-7|fvSr#(Q-F9~=|DR%e|4=q>|il_E_E0k<@a?; zI~eB7&QuFcjPof&+7GKX^K;hiu3A67DU_+f_F2kr4#rJrb(7X-wdkzXOj`m{e}XAx z?G5eh;IKL;mbRGXU|1rukLJC%+Wqu6*)*YwA5c8K$krJTUNu{(o;$C$2#DX~U>M+o z{yN2I4RuiYaChV-G(n6rTh(Z)T<2lcSt0KS@;)?i#~~Ih6ZzSCJ6sf`9fVQkzq1Kl ztnNv2QU#$nbqKnJD5YS+o_272-@&owZU@J-OB^nGTR1Gnf7iUrrR@p5j7||aJp_)w za>b*f5m{DZM*A9@;Ah;)oF#3O*O9XAfy5aW>;7@wzudNm1jvEJrgRnHLrvzglk8MH z?z7$>G%8}HWd~1v>J+PE;!D^6Ijh?pS)qzo=#45ve2A~{t30AAz{cS+4Kh;LFz!6U z*V%#ee4mc(-WKz>Q-R%U5H@Gh61XF5t3#~I_+U5f5I0U{5l+NeXVqDarO%O|$oT8b z-erY$_I`7h!`ibKJC?f_`z}qcTXd!3&TxR*>Sn6ZFA7Qa8i>%FqwlGL9Rpn5vEOuc zi|8WFau)d^Q$3gHW2#`5-~Jh{{fRHBDwI`S7|co=cKAiA${2$UbhHazByx8un(`kb zf45QUSbG&AmA>A-A5U#EIAy|KX7N)_fBxXcf2BVkl?Q#S{`^hJvHJ5&fz^e7Wvt+{13*MiYa$NWJck{Pgo&i=l)RSXC!rVU})&A+X~bs3gDAVPRc6$09yI5 zfNoL+ojyi6gkp_!ce(|7?6Bh0b%Bz?EAkT~!H&JlW`AV=r?p!H(HC881Tr+R^GJ@oR>k!-lse zIWs(a@#Oedm>A0)&mekY;hJ~k^O76G5ld@R^NSh#wwTLX+|laHEE7;J+xD~sq~ zm=-Ch(jGwi^ie(m84{&8%^s^i9O|Wq9H5 zI8xhg&hE3P)hQb#hUwjWamGKw+BB8(vC-zvyv0IJkb9Q73B3Ah<~+OrnIj`9R5)kM zX|eLwQn@%czHF@y)0ywhZ_3}e7XU;oyKYrT1+@A?!ccY6~FZ%sY9X# z(d{7Cx*`_D+f}Fwh0?nyp!_5q{V!=VaUZy|yOH$=!)E58z~GeQ4rlx{o|RHd|XxnXJnG zwi4LAOVv{aFX~SyHV;yrpKn#b!1RyRS7jvi&A>ZX^RuvttpYhiLT~jLPQ$~t?(OhWtGT)Y{cRmtKkJpBCdc`Enmg-Bz9&yoQ&*v!AT}aOH_y_B z&=qst{~_Z@K6aaXf3bV-X{sxFQqke^c*1A$AfI}y&3k0fVDh?4E&c{k-Td@CI|VPV zg@pY8eUU#GPpW>ZVEH|YbXny+b(ov4v*bsTP0B7-EW++$5?}tCTIeLRveNl+>n?GA zTnmk)htt>jeqTRQ$(0t(Zv5~~56cK2Q%oa0^flMfKiUS9K1t%13!k>~U2gric3U^> z#Y!Ox3K6Ie)1#`NRqO_Jr8;`lb~K(6;!oEP`7vz4pZopX*w)YE$M&;xm+PlbhkmmC zex}D=KQkcqbeHyiv|ELZar@04h|mU`ohvOzdi+KVygUc*1b?^>yLKkd23|WuQ!lnN zwBZ{L%x!rN9aH)4JK-&6#aicwzO0w2g2z;av1cKW#8Xf6S|BicPA8rKadvdVTg;pd z2V2u;$}h^m`$-{%9e#6eQrIL^-k)}=Pj~Q+^a*ap^{$T|ejhX1t1TYpsvV@+%(N`) z=Rm7))n5K3j!k+c1v37JX=V*uz?RM3g>{IHYffi7fpstlHM9BdGpclu1?99@dP02v zDyaDdwj;pH9=DJ*3HDS$D+lvTRc|*pC#kcCY-f(HWlZ#u_ULUAf}71Ky|WTmTfFxZ zq^W|GKQ9T_#>9S9w@z@i_)}P3z1I?b`N{f13w^Re<>W7Rv$y#o+sd7OE0_4K*z;&$ zx=&jxlUyqmtb4bn8vrz8uUT1GKLGjX$6`s1FI@|4=g_KYo)ySSKS3>L&$vLQhGb(l zW(Fanj-GpqxsY6uV$!&Jx|5zPrg{!?koLQkHeWbbeo%|Kv>&e6acaBW-^G_-?-I`GvHfcT2|4sz{JYroB=-dLGj$?%O0q-+u55FeOw;h9ek8|OLoT2 zk6Dv<9iqMcXe9EF$9Dmzwe7g1v_gCTBb0I6J7i7H9JAwY*6KjuDYg~l+dAai$UD=w z(|}%8Ay`_q52S5A1oc3&0Qk|^9CITe$=<5i{G(3bz$&5(TmjF9zGrXiKngXP5b(1zn)v0?zto zWhL&mCoQeBFkTa5n%@`U*yZS%DA$hrVYI%GSv$J|QZaY`NU~&$d7IddEVwnM>kQTA z?51te`WtuhDf0qw6$$cpwZ?(XXKT|mzMgj)bdhh7L>(z z<7x@87W0>f?VPe@i1ja_A5X@f9UV^}h^sH*-zBSTTbQ;nckaq$Z^0f+zFyC7&gzD3 zQL#j|w<8iu&#PEddXu{P{r$WD#a@;y?EgQElE3ZtB53P5S8!Tey}>lFh#~>MpC-Mv z%*}sdR_2;+vv;%g#b%*BFH-h}LUFmFipdnhFct$enADB7W<@10BUN9c)#?a8XTHQg znW^~mO-#jyk7+7e&4N1X^qbEF%$I#sNaR{mbq^uERSvv}SA)&;WMKyM!~@C4vMqE! zq9s8DzW^jx!-z+;<%kt0Q*i^JlQy`-J7W4msopH>xG7oR2**nukIBFR+WS3_FLpkl zi%6ByC0euVsKI5=^W!OHq(G zkzbFqd70DgmKx8kf-Z4?eFF58VvPrPOwKNl9Mx9qb!LmLo0x4`qVxmymuVNBA1BAY zF!khFvPL(^fH@MynwxuFk7p|Z=F94~)Kh1qUPny(3F*ddcU z%GrO%=9Bsg{CfL!>baY#{f-lsCH58tmU(dQksv6?I`dt>Ywg3c!3H0<5(6%TJah%@ zi65wBLc^v-QL4R}{uXg($Gv31}Pk+3Zz4bpD z?>A#?SU|}xL^HY7HoI#tybsyZ!nkwH>G!*FyY;^<+&^35?XuQzz0rv@zrXvIGr$af z+fwU9sy@;9p3?XxbQoW@#&_utv9!Dn=g(jLWjADuc{_>7`-i2s|7N^h+s8ZPpZ}Bb zicd~dvXb=As^u?yg*?>vE=bAofcsVQ(yxEtSJt=sRaj%qgR$9z?PqwVZ2cj{=<~pp zDZFlXYoRG6Im}3#x!$rzroTv45pn=6@JTW2fQt8$Zz0JaOBm+xLw0)}M2rfNBv&Yj zscX-@?=3Zx*^kG4nu+hSVXN#=>vQl!3vNpUs{}@1D+lY7E#bL$5=6X1beg^%SpD&O zy3U8sX1Hslv^Nik1=HEpE<1E2@t(L{{*i_>?WhEM*!$>SDK8f~a4O3D1W#@7WCoT9 zRblvMb<~Hfe=k&ww!z#pZ?C22kMyt`SFTc4m{(L<`pW7!I^v9;fOs{-z6VvVFANgMT zAD!>z`uI`LsbliN9P>Ov-R_+UauC8cVx42m2La{DD}4fkTpvVEANud^j;H?F-%|Ly z`eOky*8>pf8IVkl2gr)KrI#dsVSgiar#s{8(z=C$;{ zH(pksWSX8%^KQ9!T@&3!+gdjJcyp5cVY(1X2a$> z!&GVedfT?88K6Jlgsl>*mkjhNG$k;Cfhoawa{;r!}x98d~ z-&Yfn>UstRY`&xRYD8ah&6(7J26XWgTl%n%bQekW6UVl{W(e)K-2dhFJKn#?juGv| zXRUaDZB|xiP(`-?YI?ncAvXg9i=vFE!Hfn5t5u1w zQFgF&YN$f@588G1KTC!BcNTDb519dDG=HNF9&_kJ^|{5{!MeY>>rJ12>&z(^_?W6V zXnR^`{Q(;u;+k-J)^gQaj0!}~B`j=+{6n_-I&PJC-MmV>_Kq?Jgt0Q+mJF3^U(o+U z*_pssSzLcVVUeJ~4Mj96YSgGvv4VmU5y_QAZZs6Cq9`sXE?8SdxhYr$LT@78UN7KM zm)5P?R;+8aN*XI7Td;Md?pnb8d5nmPvbd1<`#bYIcLVzG%jZMxGy9n{XU?2CbLLEX z%rZ_HBD0(LPW(`ucn!ilCh$rRsg%`WTVkf3iABfw=a31xh@q08;g7Lkwe*nk-_z!O z2VzVVi8LwA<&ry=EdPGPu6cR09#!X-_-mMsnf`}J>QodzF}A}tLD!%x3MTf{B?cj6Jz@Sb7s;=OVOE&5O5-F6n<=51Q!|tIG=+@Hw z3y5_1mcGV2@Bv}kPVD=0@uwf-2ZQAX&6bCazPy|F(|Q}a}=5Dn*LV`*MI!Awz2 zdSXZOJ2UpQ9qhVj;HLA+@}go^OSfOoxvgmBG|q4l zUziq}HGijHMPBI+{28CkTOQ;+MCZNAK>>J)O*7dmd85zWDzTvS{uhg!{*2N7w z!p7r!Ccfj*Yf;krRcY^tj^oozd6R!=dWoPofDD z0)}+}EQi~Ry`5B9Nhno1bmxlrE5VJ|n()f&5^mjs59!!=hFDTyi>^afgO@OVN8;N* z4*5weoqz4vp!G*(`0H5PVM*3a51xW~Vy?evkQQuT(cev?*;)=Icq;)`XzoAyAbQYq zX&SQYAND+ZYM!PCS5O@)?zb<*Puy!EJkge2Np9P8}};NGoKg#uiY1yniWexpgB;KhH=P?8gx$9G+abDHEn< zYTK1+%`e9e9cyeI)|jz=Z6z-Yk|2M%KK{r2XmhG7x5{tZP+H09Z%+LKl)qO^YGjvM zgrcqjY-@c}kUv8Gc9B1TCzJ;ab5x`B>YVnsl^)wxdZ9m8eE;U{|9KB1H+*vIJsMRh zamtuo`ws*vp z%)yq&U7U^739I{|e2;yz{eNj4bdAI9mYYL1mvstW9T~?|K zl(t`72RHHB|0KZV7|R=joT!axi)|g(d5cKm-0)Rx32yp>v|1Qn0(uKdQf~x_b?KWb z8flUvM2FEI?-2NV^D3sIwo3h@LfG^!lH|nPM+#~Em8pebuCr_z}Uj_p3jekY|q_9%*WP z6A*cPeKMZnX26`0kM43ia!x!l2fBe=*`gySH!gS3g>c+2lM&*AQyF(upliM9RGeEl z+R}BK#fGR@BgNWp(kNx&cgs?5Eld3j7va4ft!b;va@XY&e`d47HSEJP^dNZ)jbvhY zaYGODy&SBIA%DxHciMKkX{vMTV=rIU`bYX;E+81U88U6WnIY30>D>k@AZHH30yv{B zdc@A*>E;|fjii{ZCEjnwYLc)9wy%H=1?|aFYT3dZ93yXp=flBly|BaHZ2wZ7wQN@j zKNW8F8Op-KF1pqog3gIQK7aprLiB4SSV!GNI-qQazs=dPM*kpdX2c{`GT6TNuX#1EYs zYM5adRF>*N&PJ7^NGThsCtwH89zxpvHvE~|M*L#tnsRu}q_d-XMHL+*bC?Qv3j{L& z+cfk4ktE;otkJkVLFHjM%+-5j=vk?5a~P;Z0yyN?;Xd(Wcc&{FxF>^LOHAJt2qJy4 z-wMwm*Lm7h14LF1$GffpnqxSMc=A@h3g z3C7geB}j@T-5$$(ncDGh1y{S4iCg5Yf!m_!3&Q2h@}-o}fW1jo9LZ(izLl|K3x{0T1{Mz8kv*`Zw*MM>Cc2JW-cIo|v=$6w zEogY#xl9C6_-|1Y@fD!2rfPkBp}X24p(VbNJ|LK}@_Be?0ycNG z|7xP!bYm1+LyteH#QT(4Df+vCIL!{cEVx-GmoRt0(X#5b7o^s=)E+`{GF)Qu)ppxB9*>} z((Q}3)xQ>TqP+gmM5cc`7WD5|P^XhLf%fSia{4!!6ty&jmbTl!?|vKhFG_a9LfF3| z>)(`2|AgzXfA?WN=&h^&Fa2AL7ccr}{)kKh2BJo zYeU6nv`zoLHJty#Tmprgj3C8zk7o2W3!3+#0H>2M6djm%jMcc}F>^`@h5;(bd%1^b z&PSSM-!4QP21u;zUDSrHMCc`qMvnY4z#+`Zn)7Y~%gH62;y0AEU&Xp<3$f2NH7dx^{V4*ylS=I6~?sxHl$~CM`iwkOR{pd^l8L-NBle#^$;_2 z^cTv%F(?1F!V9qf4CEH%iM;(U@1K~@4Ve$p z3&+1hkDqa_EA#4-qDa$&ij-SRnP{5dW30FjJ@>#!5$EO1BH81PfKNwp?~p!FnH5_D zUm)RV68M!wGkS<@b~*TAifR8o_&Wq0dr-LPL85poR&OAed9!cD5JXp8Ij+}%cu7ra zKx#~v=&UV8*kVTJ{u+SmQ)5aJ-|oSirNd17&w#?5C(j>p|r40pww8eTp=eM+ZJ zwdrGakIw3FjZda#^-p>m9;K%BXnLv~F3WR!IZirVAJ$(Lcn5)Dd$D{w z{-x(>D`hqmT$k(c9((A^j#0_Y{*lU)*$>qWy}DvhBs~W-#X6r^F~k?c)IMm#^3IXw z8mn*JBE2M|ahowBn*OEw#+9%ph?PQk!)QE))5cy7>b9Djs;LWd9K!&8(Xbk1Rqs?& zQN#aOq79i<-bR z#?1h>r;#Sv|5EiJ<@G;D$d0z0z-Q|<{8x${Ml=;#%J2kRp5IIL3@0(tf*v&^nmPo|aTg z?uj7?#eiViKkQ60$yf9-tLc5ERdF@VMO4^g)$%JN|p*wpu)CVQ%rjQ87&1O zdUjqLMPqBK=2JkgR?t~*o4BNfdjp~zOYqT(-hCC(1P&!Zz4+Fp?Zy5lz8~^}i68jS zoMlUM?~pIr{&)@tA*R50DA##y%ie(2YS^10Aa@eT>7IYu7wp|N0_-h=I5p?BlFh3aASdT53vDzH8Xy>`F1llajz;Sm$2j5J3bvDOFQSH zNUb)w-uoET=`6yXOJb4IP%HEtLUeGRuiT0%BPy|}pYyvFZMlMIXP_eGX4v7s?L&tj zJ`MqrW8`&SQ*Q0-r=l%qtC;9|VQ#VMDmIm3Dl|H`kejd3mUAfrLQf&1nXO>InW?}V z7L@FpEg9-7FLdSlsaz@FdF8rN&fmZUcK$r6|Lbz{scU)p{)3Tc;I=H_AE~~#J#kD? zsuL7cS=AQbn}<)jwD->FuN17>6faSRhOdJ6`f^s#SgPykl+WxRV##53d12Y6?aFa; zNOua~QV{M|5MGcImih~In+z*$`yWdk>ivzkfuZghcGdg4=szT5qUX5OOs-dZw-S_n z>&b3H+)q$eZ*AT=uezyHn;25sP;K)o-Ln;6k-BrmjqMm~rad4Un^@`{ewp0}a96`~ z@Ug55%{FgnxIz2u(9R(<|F=FbqQ6Jw^v9j&4)CTBrxh}D2LlvBS5kO!-aEh>@ydTs z@3V57>CsaHtN$2g>1I$?%0;x-XVOQQa|wuao%J4{p_>vjFdjswXap6QMkE(`w}3G* zzLHiHtK=Vi-(Gn2T;fGeggepe%rvVmYJHF#{xuYEbee&G;*_zQ>YBXY?vM|3C1s@51uDSy?Oy&WHPG9TPvg#B|TP^q|KhHpFdn z(o2Ak_aD4oO_L7^uf#ic4r8p-R7S#BP3H!^`JrJA^xxhg$`b5~NpYIZ?0#XZ@uvMf zfY~|Q<*la%cW&eN8SoViZ+(7e{E-3o_q}VI{4q$6`JJ|z&ZG#8SF4VSm+KrC+!Oh(jaTcv(y%CU{vk!OtTSgC$X$-eM?+n_n_HX#F>0|sW?%5XnhA*A} zEMk-(_q)uBBxn8L!L7=98k3M8jT}-S-{7^S`-U zI|9wG)X4n(OloBQ{v)8jaT)qcjhqlmcFNFSdTV;^lIrG&wJS%p`2NQ9kFSzsacX3b zQSj9rqRApY6Kjf>%u61XJgrM|G{XPL9@L3_{;14-9W?v4-|(3$vh1U6f1UaW1l%IRM$p|D z89;$%e~;wjf1^lqN5ctRdFosa3DFr|EpL2NHSxVKC$P8bJN>v29&_-SZ9um~>K{b$ z(7envv*R5^C#@&mrImmIV?H&BH6j(hqQL2wZ|-<@O{Zi+up_?qNNlQ(_qh6rL+@s% zfO2r^1Fn)z?f0NR>^Lzp+nzT__nm}b$sx(aF0HZRmvvgM@lJRB5WiQTI-sv~*Tcw` z8{VNH{2%18-1J8a!n0UebJKrX5bj+Nerxai{51vjl@)|PMbyfze|bUpu7dFNf^f8; zz3v6!S77G3_3v9yK3S0d(}J*v1d>~RVL^EFp84s2F9^>n2-g*aiwnXd3hLjrAbeZD z{Px}|!2c5k;TsCV`xKOaZ;$-?t}h7xv>?1&LHMoR^UMFCAbfE__@jdH*{2}=z1<4x zD+r%k5T0I8-?)PCfP!#wLHSq8^4s$Z#=kSJAack5;ezyw3(5~H2!FY2e*LEwlpj(M zzO5ktxdq{U3c~O0l3)Lu1@!cIK{!3!KR%3p@L7b z==^W@#~@-ly72xx=fTJ}cK`j?0sJ%iK3eskhPSqc+sUggJ-)_O^RTL^F2QBjCwbLm*Dql;?|%Cw6xr7O_KC!^ zGOHSG5|}WJEN9!4|MKeFV>|UN`PKhaUq+j$eG`VwtoVC_IUS-VUy~X5snQWVIZH@f ziUMU?H>?~vdFo*jjdZp zd{S_A8|<(4Dw%#v%?i7^eYL~T*QnW`wX%#hC)mFPH@0i7Nc@FB8FZ=(E_6eRiiHc@ zf&Gl_i*8nJnSIfc`00|%bpM5B?f&*}?EZF>TFkk>4SxvQd(HC3F*W1tYqj^W3qo1E z^);5pGk&q7E%#>V;}<#f@jQ#Fci2F*6$g+#JO89wdm*#Qbyu&;yyN$De5MXTIV4=W zcWwUNAl_0z>ZE2yOLAd&@A_Z2W$#^Qb3kX;3oe1QkdvYe-3}65w+zs^V*3M{-we)w zy$_roi5|71l`8NERkPT&p6!p7=lE^lB76bdCHwjuVVU}qn?zmN{DD0LGtAu#V2|I< zn`!h1M`-K37pB=<{i(E1v%W$NBKsXQ(cV&a3LFbgwGhXG3Nxs>S$5F!%z@zNd@{t( zp*w7N$SWm}V+Rd)qXg)U_L4Se+S`ScXiEb-Z=2an$HNg?7HThG6WnV!Y*RFaFa~>iGaE~iBGd@q9+CRGSH4cU9IfCd!0!p4!z;}^u zICo7f>RPqACQ|P;ubkEe*K6O`H2zo}SO}sQArcqH3@1QDP z!Q&%P$tPEYyG`5+a-M}r#?-6mIF7;4A3d&fuTy9>rW&LFkQzI>P=93|IK-ZK6Nlgw zLf_-0g(_E8e*0Or02sohVX*-5Qhl@7qi9A_-@+en#2wtXM3ppUpu!N&jK~w)t9e-zBJN#wPKz96UlUuAG zOhk;mc8)Y3LLQ6+e@!l1&jfZ8*2#KrF7o8du~Z$f@7#OnDHZ*$SR8qBMNQRvk!C&c z2s=K7+UlwrN*n&l+riqRm)G&IgIC#T*Q0MwKHJg*xOhAj{CpAl^@S=`+aIk-bFMRED!$gPyGI?+rW(?H-vbIe;kF<~Y5)Go7y8=tbr5r8pz>3q4 zw+<;2t50=VOz;$GO$O`uzgp_aAzVq;h;f+Voq3Ax`$n1?sg(3n>d9X2e<+*>^wNbJ zozR&7vf`judy6js`p370a3;qw4$+p)8qp|q<&EeCNZj6I2ZtlNp2MtAo-tBOKJTAM zaW~$wuC`lK{_kngS&-Nb>q?#dZ>TOSZ8&JdHKLkMQqY~E)8#ErBcoY3kc;s{>>4C} zK3m`f0-48!P5 zirPO1IZoaPZ~y@mAI*5y_X&*xK|!n1w0f9ZDX|!=6(^QM*=& z`w6#FI8L}B@gCKe$M5wzkyXvS8kTRL3t!H-5Lm5sX-?Wa3q+bn0ANk(fi;wkKD)Lj zysy|ljJSF37~z>WNhpf{$oYv39w@T@rRIJ?iu7lxThuXhdHr;F@P>EAWt^YU__6rJ+Dsirpa^;i+*hiXnR)q?!1c}q%J!SH{Ks(G zJ}NW*v6SV*M0jySN5_UnVYeiHaPk4^@r|yyGSR}fqqc+jqCL8ye*YT+=cGHR!<$SE z+|7N^mskA&j%dqCJA_k85>zPf|L8|dsdEn8#A>_7Rc&H{JFP<=i?;lnatIQBZ{&I+ z)aiwp8oUaM`X}eM6C;27%{h4C%yfwLz}0^Ub!g@4Sd(l28`yg!?YeSklOytuY%OC3YmyHrlh4Q_!eFMm!TT1=$1J_o zBp)|QlAtf!4-VCm4~U)^88OGg z(IZ@Mwc~@q@k=`f(>UHp6^@Z%O6ToQ4e-c5?lo48-$c@R#Ng@|t%P?<5Ih{o>dhNO zT*|bH*=Zg22LWvWpK2d$wJ-BuAR4@S%RVMKJ^0Q{$v;xkt^%yEf+Nc1r0Fazzy%kl>Yw52n}r`Vyd}5eN~KEi(Sdg-hP4z_;WO|lxgvCe5UF{ z`1Veuw$zE$16PhpZbDR+Ks_H5B}o5OY$L~LtIi9^Cy$e#_;ubd9#>Li4yz$3oH8Ly zp5&7E`kPB;XOfv7B{>vx;k@`?=ql`_tyyHLf5A1zNYh^lh&-Ded4As3to8L+{&$Rp z!$z9*oQm7#Rd1_&a+~FcXUj`QXkWOU_Tv|1TOQcq+OE!&b&7&Q_viE@mU>!DiqY*f z8DaAnnh4~cF#glah(CYp_?5)Br?RdYD|JqVGay{PbvC&-f97b2mj3ctO>Is+b_w1&<6KgtQ0WWlM zXyxtu*_Y<1#AoXwGWx{uV*0u8)glaXr?Ms>Yw&1v`qGm5of>)$T#KDdc~PYKF@~94 zBCCw|$@|88qR)Q5w*)EqCuVQFGaHt8B+tE8wI++b4?BZBl&$IboUzU42UM50v?KW% z`LA-!c!74Lb6i7eWQsL1vn!1>{2o?!;guCZjaHpzQ+@JYO&!P9*;5p?pFJ;s%PoCS z9u#SE*+P-`&Wnnt5Z( zq1L|Vh-d5J4pM%74z*`ELvIYk9Ey4<s6$A0_&w@#5osf=})Zf6xQf)DA;=%EX%d(C!Z8X zGA0RG?Mfr@s%P5!uIk;Y-TqbEinR-XNHkJI6R~9f3SY~D^hd!q+_Yz=vpb1pLOHcR zh_ULHtdGp7(dK298LrhN?-dP1cIi?P>1`6D(UIF<*Cs!b$Pl^qOmLRz#pm8nE)nXN z*H?YR%h?9OI`51Sqy^Sc{|erItj8%9s|^5Oce-Tf$XqeBph@m>njY~h@{504;~DXy z8?g?OW|M6|Q1-qV`U~}WR~zI;azebBbpeZ_D??!=UzF@iMqxT!Sr92h{!*9xoX+M! z7C&)osE}0ysG5EzlmLb6rk`S-3IC1`;p+#J0iy9)CvE>4(C5cqZxY)7n8D`9UJ()g zx0KgwnWe6tD2_>R0&16PgZm6-1%!}$DI0q+=`)6H=`>r95E3V6ka4Qc zW3G$ct%a4QT{CmMb)#StM}23~&r_q4#|~VCR1)tgnWgut;C=?E%9T;+U3PxL>391! zSN<3q7G|B^pnCbMHsGGf%AI9?ZN($rD+e?oDa4*v=whGpx!!s^4~o1{qcFZ|t* zP>r49mr!{#ngr2A_^5Vp^N@DqXSy~cWXQG|KVI#vsj!Ln%ngh=!6 z`PJFil$d^@ktJTqBbtHcQ@cp|mL^7w#+ z^L5m;7d$liHq|HoSxq%H{|1I0UI|UrIXSL2^(XNk^|RC~7yK?hJ+32)x|FlacQJ33 zKHSotyw)<~D{HBD9v7cjKXzh=+M}H3{a`V0=^A9BSV}j1M;hLO`lw;$1?rU*J?de7 zno{O_KB;Bbx|G!|A)vce%=?Gnm)e3FykAouRn5b7soHWHsHsn#Ur~y#qO{@o_Mc|? zVQP9Q>(m9VF=6wc4~g7tiq3V7^$8kd4fJlmLcNGjlL0+Ny?$zC+0`xTRhNcK=JBdn zNwL4hZCQ{j=U2xEN!;4_a4ctRhdQ4P=JSe8S)=t}IwsX)DFasn zJQ#PCCz~oXJiM=!%*wlUsb@+k=hd))>5aSeRbVxUWaEd<>S$85J1iBl*4Bz#uPPPy z#qg@sKa<8y-X#(odEX-^>lVp}w4{vSdNWapAzd2Y)ddJJ?Nx$t#`JmV4v|nA=P9qK z_zgblQ~TAYDouu4LC|i=KEp>eaZCk@?tZjK5AbzPU?u_6P6$C0k~nAnTg7$c^?oTR zmP|k05)sPQdU0Zyd+n9MIOvWmu$@J8aM|pJ!)>qDbPu~nH`*oMk5$jIt5;e*(g*Ho z6<>W{P0F=||FGr7{sM+EQ!hM_JtFs^AGBVsa^ovyF&DTQmeh%5`_wZi^%eaP(rc0{ zHon}vIMVbuB-H(tSqyh0J%A4>wMP|Vd}Qt|q&1Avv?-Te@d)vQ{U92aK@CcoKB<3< zhG`r({-hx3%u9X3>3GVfZZdv{)@IJn>75%dn4Br6HMfU|WcjTYsqkCo>;AmUccvQU zX3;>%M7Kt!)g@Qe;dT6;3&oH&Yg5H8Y;`Qj-9g7nW69oPX_K`Fai0VDtWNg!jve9Z zn4}8Mr29FBZ`MWuf~Qp>#gT_R0Kp|LlX!ukrGY0`2|(fop!fccH|&Ny_=pBV38D)bD<--+#@O zx3cr3E_F@77~(s|5<_65?bHv689ttiG`%Z)Ji#B;2g|-2JfVKjpnJ8a8uicB`Dr#u zIlO~i(wyT+lH$|OrTcEMab~SX3P_Z6l4yT@wd&JYCM*3TY>HPGW%N-p_MfB^6wLI? zG-^jP$lz9-*zU_FoD$#Nvt>2zPvfYiYATLFT;vSQ)>MU=Jtm=W{G_jPTMufJ_i5pU z6KhS^scw7U-nIPJwKXfJ{)y*Oh1-a}dlqEn6$4)XNb++-YNIkeMKh9DCxxa_rfj`% zo~lp29Ri?+Ckd)=3@V!S_6Qp7!*3L7dsX#>xT^9ZP45#iY-S_9Z+eMRN!%L*-ENL( zwsLh3FB)T1CPr2XP8p$Zj3SgWP9NUfKZ&h;#&poDZY(EZgLJ1R+JTBmcLd9I0kG19 zIx)vGZ`?N>9jBiSzQ({+C>ZTDR zbJ^oU)F=blXMNw+_$al(te}hKFu0B}sL;R@%fy!x;71+ar~E(};pm99%Q0ybMQBac z`3y_CQ4{qN8yg#XDLo@iX9TPbB6ZZDsX8tsi8`cjJ`D_0m;ON zX!{*s(E=_m$GPxkIr0C`%_$T)+dhEC?5_-{R$^6Rd;X`N`>^ zzb}Ai_!0LA5Be-8oa-$@V;~K3Pw&(V?TzK82WVm7I|J9Y4-WU!Zhbjmyasl`%>%vR<6P`ZZw6PcO^Yt*R zo#8hBT{{aYtU6!+vwlq=e&Av*hqV{u7r)^hU7_14;9xfrAD+MjDrPi_oLgP27JpvY z;=XF}GFr^ru<5>WU6TE|9m6^=+2dlV*`E65X0UMCE?xW6G;>o zF2O(De6F18JaT@INYfFD=YBKyiJLD%OBYVtf$#8j3>70PpefL!Cf-GyJHa*PoMsK- zdP~NKCuA#VdVOa!QUh_-LJ6&>rR|Z7JU63MQ^VVjI-*reBWay`$$ys=XnPUK+Q?M% z)}L(4<4YzgqhIq@ocqc;hf zZy(|KakS+)YM}7t6b{ZE*XC66;5I4&z#?xyDq(ELWsb+)d0c?9rV8tYTfH_cZHzR3 zup`Yp>+xvk7scEJVHA$Bu6QTV4;vJt^8S4s+Di=KYAMouBh!=dD^HE7ob@e}ZFpqv z+U|IiJWjP#iow)?UoCZFrTxX60@?|bdaAxWSbxZ2Y}j7p6P@s;U)=ZpcpBJDE{zVI zEux7}11~+mERt^yN_-OJQQe1<(MsEUg!PG* zw6A;>6GtPbp-fLL@5H@KoH#lU6SG&rMc(3Q$7x_a{?Ash3Zb#;;E&!jVs8GlM5Z*K zw?AZXdkIyTTve0mUlG6!<^eo5BsIOU$7+asK_sXXY6|1IiEZ(%nOvL&JE`hF@FZINmi8WhPK}7X_0Pt%Y1dj`vw4%$9D=c9z;AiN!}$v8~lt)E@g^&WIzM6h73tuG?e2^H$gJHSM~?r zf?1u8kp}UUwx_i8fGg1b>LoP}Q#@()_fsR3|duf0D62$6@>%c0gUGURG>GfG!9QQe44X{}#F8i+w}UY=&a0VUa^bw8)P5Z|HKjR|@~-KUY!wXF zC@X132!w<>_IS;nj{D!a}*LU z;@R^>_BJTHwDE0Xhw*&{P)h)i2a||}Kvi{l7?nFEa{)UPzy#GJ8u2Vt5N-%n^E(WI z{|1V0Cyxd8>a1qX*FhP6XWMu(r!fl@6BywA^)_S7P3Hz|A?D4z+?KCMvkoNO`UYgj zh`N>%6YwYz@SML97BBi&mtZ;$T+7J$9Vou7{Qzyp1EAmEfNJ8CVf=u@hLUYjOEE>$00{ej~ja0X)&O+z~63Q5Po!?1Gbo#C9vvlU27Dgb6S#<*tM z+pb-n|Lr@v*W@JU|m9YaA z4w^lxO+B=RngSS{#3o;g5= zjgmJeXkQ9X<%*#f{CWNSsSG{&(2Fp2JKF4(378!+xVCl&`S)UtpamGyZ z_!8aPdr~?bUH22f)98Op3ZkE9T{ST{Fl%~frJ?BBt}r(2dzGH}OcID*5fM)pp52;r z1-%JJ`x+`{l==r@V~K;nm~Ek+04aXojT)0`v1=2+{2MnYf|dFV$x%_N%}SNXQJvc1 zBcqEla+Cy9|8XnR$S2U7G~o9$S&4e9D;f3SR9{JIwZDU9ttOvwr%bc`g7{#Bk+#m$ zaAy1y*tmGdvpI^ktYwn=DAok0#u;fRI7X~C91IYFd%Kf2gP2n)Vyt)}S{@mdnPmQV zh5(5Rz+(FYzaLxbfm#^@&JZpDP9iygeuNxKo-_mA?f(?KX5lp+TbH^^Lka&5T23yP zTR>#|GsGT;?IlyACD);vMg>ADj3LjAp1X=^X;77y~f-<6ieR4{fH<1SLg6QPu z8K`9P_ys#k?^))H*u`@{ryeIt%v=-H;(r{_kAve#II(rgsJV;<()2fAc8H+JVED?f zY^v5!p$@u={C>u|2y128a9mk=yqAb|c6El&1uJ)?xsj-F^^P?0h$tgq_R8gvX8EwQ z6@dqIpbphvWwOuAUdmK6bW(Ywsg4#0u4J8L>LE`=?po~iI?qmXcC`sonOkMk?u52a z47&q-NDNEXGqI2d=6(TAg5_SDoL#8F?_vN|v$$-JuJ+AV)!e~s@TX88#Nftb`{gvR z0uY-2qjEzjH&5I|CU?R5u)mPJ#pc-mRo`wo^^K$_emjFTFB}&zuJ!LOs|x&L$=BM2 z5)#a&{m#roVPmA4Y2Om^7NGjx3GO&$zN)#7KaSoddsn`xu?#l8=nkfR4$}jHjQ~J8 zogAZXT~1J=S?4UB>(b9iP?NebR_48Wv&flj&8@5^WE)_lSj*Z=6;5@DM++)&Le%+n zw!R|IUt4YkEE;@2y?{ywQ_t+ylwR)GE47R!4_ z5Z_F^3dB!T?pwywMV+{Tl_wYlDpBD@E;Cz2Z|o7SzK1^j7U0$;Hua1&9ZpW~AEO;a z=Z^z*IW!rFJ^|UpfIB4bZ@$1>7i9__xW;b$7bRCTqmDz-GgxS?KeOfMWucIAEN_rfefD*Dkq+6M@0bkAD~ zGfE7>YV;|ACU<5ecy|&jBi6SpG+~!wux%}NDX zACXH7i263Sf>p+8)gsMn*hY#>i$64G+vKlv;lE-4qMzz+@5HRH2oI(b#yzK zbpINHnfYvhF6f(i|3ocHbf5beQ=>24p{!G;rQPa`AC*Lt-QCh7B_jPNHf5q^|>h zDg-?G7BP=IIX3{1dPv@Uz^)e3FdZD~~CWVfaM`IMT+QqrIKiqz-UZ)-2wc6@&Zj0$Izqi>~H+wtXO z;<+pqYFiJyDbyb9fwM$we18OF=$&8CIBKoD#y^2Ngg+*CP&@?t;DVC76qJ03k~#80 z%Y>aE^mNa^zK8x!T{JO^%OFk(_}PYyG_VaN;6xwf5BxtJsLc^tlcIL5xp3H)gJ)PA+Fd%zpTA zt3!7PRQ{$>sO5j?+NvFBWb~)_w0eJauOjxv?DB_p`Ag(Ftt7fmfq)`Q`&WU5Yy9QX z`(5j~nKOpE!o%TE?^K_k zqn2}7!aHj@h&LDT&AU^(yDrl3n<$&;{>{%_Ig8vv2O7}zAFFfDZvS)a!nDXGpSIt~+Aqo-BXu=>X$=5gMSGbw3vj>)+Df7s_; z^wq|W7D@#8vFSI3>1O-G?m|Pl=a=s?Yc)s(Dbn4HF!fTmqkebgVid=WQTtD!RrbR5Yh)C0Pg=9(c zy0@}ipNNRdyf!{fFlqCSxmFX<=FpYoHQN&F^*Zkl&pMWqRJ`mp1M4mPufIUkdxmlF;M%v7En;r4}h5^qtfy?cWw!Rvi|oR$b@r6Hwl<_*3(_Hr^# ztp*uV>{+e~;F8O|l|j-fv$fuoo5Q`CM~Fkdl~5+EPW>*#1@RGH%j&CWp?nbcu(S89hSGs%Q@ymaPsDsnkc zxRnmQXQjT%+PPJ(`+(XzpErz=kZIam>X4$Ok~x!DJ9A;^IB=0URT5+|9XWql?G1~% zI=PIpD83(P(R#UpNHSpREYAfy63SigKV~=V=9x${oM(@{#XRfye53l~T|^PRaKgGC zZTSuPA?EAJ&^nV6Xb~1>N_x*zgk!uRoO6dPQFcQaeMz)suG;%G1+%57?l`qKm%@SH zjA+YE$~UVp-|otHk@DRZz;m1O>2Nx)zOUXS-*EEzmog~1?cbsNjfMFaD}O}!k1fbQ zU-=V-`EOAE)oaP$t04b9%HLF&|2*Y?MEO^V$7S%LS+S>G^pSVQK4xUl;T_KwOiRz% z}1<) zIF>TSH_N%YAY!sZhHN-x$89-b6Io=2(8IqgB_7-F))API)R;&QVT}@-dSLqS5b^RUhgJf@;*vRrO*+d zX4OpQbg5xka$H6Gq8dOc3qhGp0YI5{Tyc?qC1hgj)5H>+KRD)$;)JJR3nRuzHz0QNIaT?VfhDWxA`UyXu*?RXsJTXRx)|NFwugGWo5+ zY-`NBf4&A??yAfsYV;dlUTJdP^WiSpbKEg#Cf4XL`K1mr{Dv@$4N6&SimIR4L@OBl zT&W6g-st=fc83*|G1k?zKS%AuNQxHD;ZMkCP9VEjUx{}E4|$ll-~P{>_VG7(<%_U9 z-2BIqBdZCX0Gs7=8r4EyT=}wB-C|r~faUe%5kvPb9c@5-S78g<5&uyv@sy~nC_W)n zJccXOyB8^&yV~29xLcX{M?a>FV;!1t6m6w%T%#xq*xO7NSB7UKH+$#YN;lgQYZSvj zy*%Zeh$cM8o>0y2XRaqt0>7~6@vXnJfg3#L)m}w@&u;=hn)Ieobwp38Pv5tO4>=;$ zyYj3qqxruxUKlX;2<{BEjVvRJT^5S9jjXiq-rXc$2vV6vaVW z3%{hT2-5h}`lf$;8n)c0XK}22rl}3m*94JfX*I5xGO6RI#ZsqY8^}!~HzLg|8Lf90 z((6bq3l%PCQ^z~4m)_B~(M*lSv47V|$Z~K$%f@{IUN7XPtO~DwE-0KDTTLv56?@Pd znb=%#Njo-5}f>vuz$_EUq93bYs4k+^6}cZk5z`dmtdw0`zV zrp5!GK;}&D5kDYSu4I0cCSTS{DHaSp(}TbN4yd4Y|36GJ!gbo&rF*Vi!B3l^R>+Sf zdsILTD5BCmPcvampIv{hj<$`2cmwi~sw&;}o7b4Xy+;n9MAyxK8cOMrTr25%=Rb(% z#+fQ3x!P6eitNkCxiqU`$#1QO2|0?eM69%TEIrIy zT3X~CzcY!NjL2y_a@a5Iy{_J|flH04fQcW*ZBeF}n^$kl-Q3X%A`PQ&kuTcP4~+Wv z^BK&O)U@7go2#wnO(oPk z+G=+AuewqBM@%yl4*Vhk zNTI*q)X2#N`SafsNg3tPl_vTnsxXSq4c|?4CY&FN1pYWj$><5k4TORt%RQ( zC|Z7Ck)m{fx))jM691?$#_QhWau?C68_JBZ?E=qg?psC~NVriFc#dpB#p z<~7P~2O)a2GiBHC<~KI;?ioWw7iYa9^t9{Zq$Oh^a)GsYKPJIuQr&~Vm+qn`FV zRi8J)3a=LSlB_n%-EH8ky?@<*D*gM7xA`^}*w zae&JSvU4G77SHy(S?!G^v5WnP8#JYOw^>9emO4UL6L#g$%`q&!N-?F}Ofq!3d_kMDqYtx9CyHNhxP96^kqY;z*n?aK z@!o|~10`uZ;w|Pd%tyXqhqtc%OHXIz{@%t0t8?~;$o~=mGV`%js6;$k@h_y8(Vqp< zOLjlg+RvrWSNbzgeCx2BO^>DUMu9{6!+D~|KWxxPTc;n1mwCT$m?HV-JPa%?dL&sSaa^RP|dn);!nd~w@LuT*KAVS<{x3=mEqLHA?yg)l) ziNDkkZPAkKWP-c+3T1*uiU;!V>QMfDE=T?y+bU-`lB&{!Pa$t06|zLmzK9&e?Xb%t;6*((Z>7sM`q5G@ZVYCpEiBRaQ)QtUHRqv=Y_XgPuU;F5~IsH z1@clxN`@{(E4zBTA80()c!R_%Jxg5;29chHa22F!;AQmcq5A+nObvj zW)G)^&oXM0Bf?`0K0E$P^dVFu-T2SEVSLpkYbDmk5&nuEVOz$X9MfxZ1zWR<;r-K$Frqu?Ed&IxJ$op^5vy?Y&M*(1%Sze^8(m~$ENuw4!Y zji}a!s7OH<-Nl-aejBeoq{CH;hazQ855734z$( z^Kxx8TDhDlcKRoqT?y|QT2!tM z*rwHC8`(LY)U#80tC|GeDMe-$7Y{fi=9kQRspy5wBqtsso z9{)(AG<}G-J17ty$JsznA7azuBT6x)jNUXo0>?kqVE1!-hc~1*Z#?XTsmvtTa5P*O z4n^BiHxwt*jvbFUdB?^h#9jepA$UPo0=ID zat73=E{vh;udDh#-naD+S{l-Wj{y{K$%mVvstaPF^C-8coF_be9cJvKjK3q}_*h$Q zOyubN_~i0~vGwW8#)YjWMG-K|4e`r(OhXLeG!2Zd-*IBNbcv=D_oE-qj18Od>0?^A zSo+{UlI|TsbNE9ZW5cdl*##)aK?vccABQ(Rvr=@>N6d<)?YG0n(2BJ`uJwkDx%^ER zed?0m2V(ob4ZMwu;Q$@+t0B}rt1Yoa$N}RE?Sv5A zZx#dY)gM4MoKa55z`JW5mm?c>0bINf~Wmlos3RWMapbH9r?=K7;%QwTzBr8q)lxViMB_6h)d| zu+OWw{o1rY8xE*JGd0rW&M=%ivYp5~h77k^2IqrJaTAE+4pvdd<&pRZ?-2(cEi=VUux zMs>)IQbW=;)^MYLf$?M!tT%0=tGnEq27~Fr%^0tEUvM*!w%j5axRX18c{qtg^2}16 z{^epi#;YPtt7#}TqB>by%}M(>@PfWD+9bvQfq3T$%5AJbbG58~K<+;wI30U@ROr;`YsfPX(?sCDu$!{~3c z<5d?9NQVj2+=Fa>Z_8UP{$p;ma;Fd194P5O#h(m657o3Ksmn@}USdUYa%8D@AUTqk zm~R=UwaLzZ7?(Y}4xxMiEA^h|B35kT%diueD|aLDlEVIwe#3AOro8jGy<=h5KR@!_3sbcMv+^{Zx8y{Mr@s+D=v`JP4SdI@WV_kc3OwDFa#dhLos z&iP-Wqsz?wViTc0O&%%_7Uk>E@^i;Nb!>*xf|6*#);9J+& zC&!Y<;Fn_9BsB~g>1PjhY66hc&;DAXCR1sBx+`ylc9@L|^mi`pdHol|{S!+khwqV5 z%|28^zdJd=m6C%`TVT?I8>ok@8=8(O@-7w$w{`uPZv&mq=FlI&jL2?Eh6^~Do1RLW zRq-YI1KWq}vJa0x zww+$-@4L-(qet^-#g>w-_0Q>C`yM&xZEmx3QAT zAc08xFr!l^Me%)Wnv zDW@@=7PvQSSPs9@{K$O|MtYMHpyQ>Moq1*k#T>g^>f#AFzerFMki5x&*m!S+pU{3! zlEiEg1WyE}h9}p1kHJ#$;q%MpccxvTNA4Xa&fHm>J^5bnt|voVt&}w~%dJ`xuWEj$ z;hbpd(o&aomMWN3I%8iDIh{8stbI!Yx!y!l6O&4X<%Umr{^5)K^Jy;cjz5do@Zs5z zo-kw8fb37{)FgR4YQG_me~1d{$wvYzbal5uM4%T_0=mXa#9=u2!R^aB?|Ie|jPZK3 zjj)bjDTFQGO>Hd7)4J>O>YRJ2DS_&&=^j1?zJoTrxsoo+4u8zS(uc|{Jbrp|T&czn z`;>K_S8B^V!WgUY5{fYhxjK+sKgQ9P56I9O<9kn@cJ-VN$wjJd$c^;eT(~dyrLa+c&6{;zFN{8uwO#x(gnJv8=&7}t z_aSp01u7Mvm>4_?G+u(4oCLtP4zx#sN))rt-Xdt|sxXJb2$W>S^t;B=S$$)$FQ8;0!JKo#)$jblO>Jce(cfXIG-u#|_4{ z@goPmqdC8Ssw~R;r-(O`8S!;BRUbq~yFt|t9ef%XkSgUX8c2{T1dGs6CTnqyf0TJrY#+h!Gf;O^+~Jf4c2@4s`XrMiyJ9^XhqsdfI=TNB;vi zg!*SrS-k#&`B>M=4O9`ExC!3o^`)&5X&zS^?vkcj5+E({zI`b`%RBKCgymYp0o-3s z7E8Q$_WO!8T(%{^@13dL)RqUZ#)tz0+9p2@iJ(iwYJ~ozqI6TfWH^tI+UAiv$W!vmV>bL2WwzrP!(v!YK#{#bhSq*(eiT!&@LgT3^yQp))coYko)ho0%rl|@8& zPjy3`njSXj-$RPLy~8%M?dc&ZJlmv)Jx)LTIa|IkX=WSgH!A(oPGV-c@Mg+SQTpdU zY`6T$R=#+<7ReUUHI4gD!={qr*r~;y|&-}$x8ox`{j>N`lZ`%zmJvg*e-lizES_TU;bpJ{}=cl z|C;olY@__QJf#PHO}zYjDP?bGx$}?uPGD%B!#@K0o1*f)w%@-GRPfI2(}%Txsa3p9 z`n*x~f4=?l>(`V1<871=;J1E{Mk?NZ`nS6`uyo@;pg4i zUw3S?{(mds&TY^~0N=m=XyyB>nKw3X4d0DQID7l$Z*=9)R5M3yqx{KAIClH+pX|y% zDEw^Pv~~M^tpD4`@5wlDr2l6s+pgPae~A+A+vMeqwG?V zYOdBNDn>hUFzukLaLM-Ism+1sxy{>!=hz&0B!B!@cv{F1z_UW1+k~esxx${Pk@!&h z15@;!>b&(cH~oumNq=hl=>t9>{rCCl5=@N0t#3nCNDqFVAOExsTaW(|C9E>S&K>_u z`Nv)P>y&N5H(QraC}E)y<~GY8v7GI1dTpX=?-j5B59Sh%NKpU-o5(+x+F}w?qDY@9n_1W&7}T?t|2eJ<~$KIBFa4?N`qH z`Y-)k@*^vMHA)eG&asx%(6<+#XkZ!`?1}*Lbhch$8PhQie`0KIm;IPE|yODsb zm*RujDE#hTcF4)j-f=r}rsQnRFs_snpXFY!BGaty8>*((dG*(aS{d7l^Q61m7eG^Z zMAlt7ZIgCTUB;QhT$%kx%Iq^=`-{MZ@5NFan=HaPT&j9NqN8g=S3(Ut8Vh1WP|eN& z`;qkEWma*U*OTW}EK#*E*pe1qOZfXzyYjWzPWK7D>g*}&%( zx{IuVLDX-lGLSH@Ss;=zBiRv0e z;qGpXqW($bKleDn_In3%I3hdk&e_p^Z3IlD=8rc~-FRp%WTw{KzHJLCoXzFXfN zopnt5)O>xfci(Cddg}WMQEQ6nH4W!1c)?LYHC4NAY}M{gIqg1z2Auk>-N&ELwmUng z-K+B2z2jxtokY9--_UeIzj%Bo!+Io3S9(bA{e@=;Oa^A{DIzID8r_dH^`&)}V_cBq zUoOYp3M$9Hp*WZ0x**5>E{CvSIj$!MX6PzW6lt16h^H8b3|y-tmO}xJW37wLgOqoe z5agaH`Qxwc(>n%k!Rgbm(*Xn*P%6xU$#PN|oqeOTe$ae~+_V_?glF)EcFE#~o6OSKy_q>lu9e1|5%-qk8JB{vS-FYjS&3EkARAc8U z_%kKWuDvn^J8MWN$)dLBSXJV5Tz@4uqhlkkGpZ_RS?d0(@3sJJq={QTawuD$Y=AG| zwvw9CDgys{9h8ODd}?uR-dEkf)KLw_y51+nqN`uXVIx{pS7bd#oM`0xRV|;60l_*? zVZ+@rZ~iP}9&w_%%H6NnYs=)l`qd~7Yy4ecZ;p>b5B-2u8r&>RWQh@5y4*=HgT`Gp z$#~nMWu0Ppjc)83|L|?cFd++HQB6=1<-+S+I`^pel9r@n;|q%JptckV3P*oSg^xZ64r+E0dv-uK5!QX7Ex5 zUiQsT?^Bq*hVzLm-uzbxy7F+*Ih?|Gh}HJ>G2sj2SI!uuxb6Y#B-?F4w%z<|_zK`l z858xFS`7S9^-T^k_I73c354spFQqrQ=&Y~S=d5RoKmT-fdcWqv^;?fK!R7m&^*CJu$a3byT zq$lZbujW5^&O-@JX_yx3NPg~N|SHW!@4W{x9`L7;LV>A{`$)>-1B0E2W88j zu5eSfe4WDaZ22mM{}z@vcn(n1K7z;8!=@v3_Z{~34u-P8{*bm2p)F2eV(sKF?6)xA zbH|Q%A$?_!9bvd!e|RR^aw^2z8f8=#-p`+Bdh&;EA95@D>mMGp6JawL(?!C(=$BnE5tUTOe!4e|8sjr4uA=!0wJ+&Omut?3OSaR4QeCF7LXfD6r z`XW6RCZDNPUlX5I8h(%~j=V+3B)E9??p=U@_C?z*8{al;Od zvRl_s9Kh}%zrXs)t?pZKKT9$knO%F}KR=xAd2zew>8+3+`<||Fmruj+usVgm-W-Mp zS1CMbT^R1^OOqPUmVZm(rGAiZ^tpqI%sSlW%it?TtY3c~q$B^=rD7a59O=!&01gJo z!$OIrCEVOAUbJMMKmO}2x&8*|s`fYdrQG7?7x=g&FnUNGrlawC(S@EiyMEPr?J$2M zHiPWzy|Pi%J-w{;DiA`#L%)T9AH(wseb|SR2-%4DpjdfIGZx?H`{KH{A8y?$w zrm|t=gD#BnCx;|c;{BD;fI{5+u~JRJUP9?gx`B`h=ZM0vMwC@qZQ+@4p5?-%Mz7(xm6-jfkvO}%Z zrAHS>)29~45dOs<%k}bU^@g^_h8JChgB$?m%Iu9KP$Tmey}wp|ZEZ*UV`2TvYdgw$ zsXPN;9Wn-GhFC2l(p`3_2jL|(2W{e~+*`H(*GObUFc`0?M#{GN=K)k$U$kX39dq+X z+vJeHK6?HCBkfJ#qpYs~{{(^rBu-R7TtSTrbt9E15l}`FooH|aD=JzmxVMTrQBZ_n z5@j4mX^Xa2+q$5w)mGbD3{k@l?y|U33sow27!lmqRPuX&&V8Pl35xCi`{(r{^E~&t z%em*Cd(OG%o_j9ze*B}G6jkhK5FX|yfb;qJ_%C0lF!W=~1_pkNHp(bWUohne+{M3g z1wgGz%*B%P<29AWv^kFpJ7iR+UPj}E3sJbNocjx;H5RZIxd${JFjd19 z@N?Zj17`fLSuhUqV9YmuBTx1LSv@=2JQA4FFB?jbv&7Rj7)vHk3-;?iR-*v*4_%9A6sm=MJ&5eii$bCO5HQ#jYlQ?0LaT(y9?*rp2sxmj%g7 zNRH~h6*$&ds$g9(@%MhLYZ9yT=?BWq6?`Bd4UmS>K4|03Q0G$mb7%4K7{kxZzHKxEUdD9e_7p0#|fhk=t zeB~6FkM98CnJ01z%nA~uz`RXba0{hZPf`_g_%vJEtlNtb3gzEhO1PIN50d>=}q(VP#Ias&J%TS&T#O@-Sysz=OU2WbW|FI;1Uze~2BHrbEHKs`;`{9{Xhx^GKd~7_XXsTo8#Lt| zo;ai?(K9UrkPvkaqa#LeBJY{!3|l$<(9f59RzmVi57vCCJO=-G?{u`u+&kX`Z}eS` z;p^g{ZjgHimK#eP>OpGo3UfIBluf4?(3|T8OZ4pWWqyr^+ZOv+ zt!w>F9ZA@TEC2QNExmjXKAuWi=8ri& z-#hoWi>DZ>^Vv_qI553iHhaGPh^md9V!bUQaJuib{6#{I9IOBb-MkDP zS}gwI4_87I_%TYd!iuU3&P%)?_sc9lw*5P5`*MVPaHHS7n}{|~FfDk?K==F|+N_cv zX~X8tMx{xR5VRtTf<3D^e1zPl{b$TBD+PGuNopwL#8wAE7 zg&c7%pCiDc%|BEA==S+vSN`7Q&vzj;eMru_Emv=!|M$wj{yw}H2{&W;rYN7-X*)P> zP`<_FOUpm|l4&E@uZr(x@Uue|?~^-swiB$V)J-f1u0d3o3hI@7L8!a2q$6i-9p#>B zp>vlnG3cSf2om$*HZK_*fHW4^xDb-Vn)3 z9iT3CXMVXEWJ8j{q4P$bXr%d6{(3x)=P8^IN8Sn^C;!Hu=U`tBNuudHKg(yDPgXe@ z&|CA%ZEB+2NkO^ZRxY#1*4bw&zm02t{>93_2l+Gi82)v??Bq;?tEf>t@bhy6QE?f(8= zt?yO3ZX0tYtT+F>*9dn7ozM&dv*>M$T~|2;_~u22ir&EG0dgY^72uuB1J>(!9}6ss zo7=j!xBkh}K^LKeqvWUyhkWT%wIJnQNB!_B=6>!iN?NbwJ_1^g z^zEUqH@5{o?$KtQ)%Q&35fMRPVm-NG7vEub_phM9rJ~dS(%){|_4l9FwDq@~26xoo zH*fml|JvX8HhinUYvA2Mf4|lUT7UocRbGGhXP*21KA6|vb8iXz`^Y{2V}JKi{dx3z zN3Oq78r)HTANlzI+~2k9zt!Jg<@(z#+uwOmT6TQ1YuMI*-SH3)aX6FJbWKgsrRuThVK>q^giRA@V(^Sw|HMYFMRLuqTUDO z%Foh!S+4wJdLJ8>H+%IxN?N)%`mfhcL%))%KrtRA@%{Zsq#l0(kmWkjc#mNBy04eh z{u>NnwhYM}O>t+OprLtIq~My&edE~;d~#bp&_ey$&3Ya}U`L*{)^deU*t7N&+?!qO zS;tgdo%f z(Z2vf?+}qNpO3t#wLChXPYxY|SpRqw!1~9dU<@7wdhlq6YIr7tfDKXwYw#!-_0R1z z*zTvc!_Kn&=g!ySrXw7Ocy!&OIV27(;zQCS@oCoYArd#AVd;XzJ@+SjHY83%W|PN| z_{CrB*^v0c0(%aSc=Em!dj#V~h{S#<1sd9BL2HoZ(|@Yuu{R->_?#@g-K+PUePKvK z?@zA^zY_tO_b=WI-%HYO@ID|{{$0H{X6+M0UetR$SALe>pAO3#y*{d>{rA**ZOUTd zD?PnZTR}q=|J&Zj9_!!DU&^1V{8pqKY-2l_R$!AFw~biC@px=bUsNj%#x68p!y?OR z-Qv9`!V6du^J0gdRS@g990h1H-W@3O=mFg9(0)n9{I5wpFS4`Bwz*Takb$#x@f%!= zE}6zn74f}gV&9!cw8Yq@Cb(4D%YT;WnTPYvQ)JhYwx%%UtO<*>qLUHgNAtBdd4%+q z6InB8^=tYu7i~@ItvFJ9)g+%Q^8j(5Be@H82iH{DMZ_jO|BjxYJIBcp({m89w%LB? zVzN;S(I|NcYa+*ORHSO!NKOsz*kaYCD%?$&XE>;J*?qFW;75j9Ww?^I{2qC017jTP zP4_v1M6FEPKde}(hle00&IdoWI>x2N)6E4fvKhhx8fnA5{TnR~s!4$o29Pnwk`wbm zMx?Q~mHt^l-~ckTfUxIx>X314%vT|}m8$AFRh0*5ydpS0wZ@$hKp44eDHus#uXd&} zK4xeL*RupT`a55v&F>g|C97`?%*YKdx3&I?G*fupKkj5jbUPUr-&Ri|y<~qKv%)ly zV%J#emS2++2&k^HDf6bX z3b9NEl)1lK?g3?(uDY2lMSZU(I@C=J0}%^f2-f-8{2ev8$-MmXV^mv_rsI8)yM;dk zi4aub`2Fww2Sa)NzxjXYzdysD>;H=F`rk_(_6SAk*uMXkJFh?Lf3NT9Kg9Ka=zlC3 z4qKeSq@j}{v{1y(fl|y%H8;Pu%WqB&oY>xB{@fy3nNZg@xe2%>1q-?}r0gABn|wqA zC2km#Sx^}Jv6h+#AQs)pZs&Y?1D;>@ONp%Zp` zA^i{*V&dN)8rCc3he>ml;GT(tbYPGP;C3Unhp+C5%p2Mt&W=Z!!oE(Vq-H3#qfg(K z%r=^ii8CXt=TGxilkXg#!&H87Sf1;EpUSUbD9VCr2;d2S^V;u-&J6F(!b8Y3slZv+ zRzLp{sXFqkn6~4K)9-_`Z|Tp2jK>h7;j|+01zfXJ6;(XC-U3L0XPW^?~xoJ3$`^@XK{(jcdS6I4fbWFX0c>>(}6YeMc zwJzLG_zm!c`w6d5vpk1!wfwoDNUV(PO2YMXaDBlBFtiVxh93FaaRkMal32`DILgiV zfj$_mMH=5$+2laTC(`&K&r>EBb>Iiq%U^f-iVZYKp_tgD?Dde@9@#uMDo=Hgr;kkg za^pTn7=+RWTRWciB8|!mk+WDjjL6Bt1@)G?&To0gJLK}6MP_RqG6430Y;zO2%q!Z= zu^;ToCm8|vOYcgSkU!O+GDVvDlQKMUjO_bWl|RMVt?^K`q&cBWdY+*YZ8@M}VI7!7 zW?YvTvhd0PXz}SA@a0^~m-wG+l9Sn?+vpyA%{CPh%c&|%8@|LQ|2=HG0#ZwqKi)~} z0QEOj(lw3@A9b6|WSiUu!9YCJTLMtrY*>eCBJmBrxhM6$_#~tJbO!MrZN4B|EsAu( z?4a7eUq`itRGVH%F036{c`+rqihKoBVK+q{{t^#pb7#H9F^YT1iv{ekwz_xIW5K6? zelM>oQz~^2IOFevx}tN#eJy)n!ldi7Y*|x zd}JsO(+FNJnhVI_W774#g8W{EjWqrOc&CgHC`@j#3`#A*R}0_ubmk+v01@jhLDVk` z(PUU!`q{82KF(`qdbIg)GJbn3CS42CUTKo4w&FkaVXp?MjvJ^WhdH}#z>pJZdV(*g zRC2|&`4^}o&^5y*_s$qbrQ2Q+W^O7@EOMi%j(MB2BQrNfc>XfE*q!>xhPI6zi{kyX zZwna5@$P0V3%JbQzJD98fy+#v7OWq%gUtDi2FPO?88aH{s$86$D0=s18NswSMBwO1 z;~HwQy`9gA4IjdXbP^atK++A2Ty8rsdmeZbm>0{!P+CR8`g+dB&vyXTU16B1(_Fo zKUxN{%YA8z_*)XI2u%j^-z)##MFRso?HMl<;|H}-tdAZGe@bNj;Ilpjo^R%bV{ za`;1^c_pW}&P6}4P#T>!78KWYM1OCw3-3}D1FnXsXQ#gHA1N903;=|IV?7}g3B>&y z_@&150j5U)%}sk9oQm3NlKYggGCQs|b@+1!btQsJ4jzyx7pR8$ecTxv#CL9TI+Jh~ zMS0%f?jV135X-iSZ>nz1t#iF1j0AHrU7H(h9gb@kM5INKbZ zAUlN`qYbYYX$GC7+C%O}J{|`$4h0RXI>ZR!)N64e8SFBgYt2pwiQ?E48-pD;b#5PB z5`5=qCK$y^mC@G8$wBh4di6^>4%1ByTLnvD3QHF&rjN!uq?rVG)mKnZU2a;?MmP^D zOQzE_e;?sZ&Mha&t|L5|LLz%9IJ-C0+ z+xt}m_$aNW?WzBw%_=78U{OP9l^BrhJbkJ_!9e&M?+ipu!=gU!YB-c?hqf2M=Ru*S zpWFPo8eJ(^)*a7d!_AV&`$ZbpgEO_$u&NKS^y&^(S6?PgA#)q&*~7ZJK_=g$Q%>!r zxh{L#VB}gXSyu`nMH^N!LL0|-tsz8f<+iFw?KVl~rS|E4a#i;cee?NM=$p?jB=AU6 z6lS3A42FWC+-SoZqPP)QKhkszqXgsw`8ZJg_*mZ4<&3NBfo*lY+3nb%Ly$d1EJi68 z_X%(}QBwojj3W2kX+&KX;ofm76%cHB;{xJW-%Ael;sWbeRdO6?-dI;Fg`m7m5^Y?u z1lm!so=^)v#443XLam(RKJbl7xJ4UwDXK}FSn5{y4gmOE3{fl}l6SAY7)*jrR)e1e zFOtXtY2&ahMRoP88LP#@HWt7(7x+-3u<5u&c zo2SDx!*>hs#4ra-sJZ(AlGp(wP`B6=9=2|-r;CZ#ywE-k?o^YQ!*}+3&EvxQ2Q?D^ zXr(-BSyQQ##dLCLscWM~O;ptwY0{Z84mi2T;2Bx?Y{IcFdKyAc$8ZkG@{3q;rcvv4 zKXki8Knf$yEPqUJ0>T0tp`u7rua2V6f7%uKpD?9Tz~}ok|SZwrCd~fMQLHn0}O(DxoJzAWu~P2WDXU6(^fav%U*Qj zBa)|;a>pafUt7(^ixfk%My3^;8%qp9&Tn0)7mPp`^U8d$t-P?f?w{JB zx3%+;#*sd8m(pzlAJ4ZBu;o3783~R2y%t3Tli@&dQ089DeZq%yKTW)FJ!`B^L|8Rw zT=C5%A&^a1iWsbT<739~P3GW>95wD6OI`-Q|0z{IyU4V_J0G`PbQ)h~CP3fVm}oH} zojb)k7IMgEL*`&VzA#3*a}R~Y)&6o>pru9{=Tn}}i*a7YSKQ~`P))X?{%IKsGj(S6 z!=H~k$i+kCq2i91YmGPVr{VF154FOPl$?X)ld{S6v&IMqwulv>J7sUE6BaN0Xnpa5 zXA~%L$x`u&oyAN54@q&{9#7Mt&tmI7n*p*A^2>Ys~~-%o`-(@T(S;rRIZ5NUjlG{3=d zuGL(+u|voB2R12E6~~O#;%2c;ieG9{%)G@0~nR`M(Z+iTvQRm-H~}XP~c6W2BWz2%VJB@Ol~nU z>5Fj+)_P2GOz%bhU3A_z299IV=SePbdoM6h?z+(TOG=!Zt+A00zW6@_iT6@5;^$W} zZg$%#hL>FmW;f!0$8>*j}Z}?n!Pb6RErn7f9>;i})em8)AJCf8TVd zyH|I$)&mCjbNG6L@*ZDJtbQ}W7ORIUBM86hgFF9+y=}R6rtd6zl-C)v>laZZZiZt~T&jJnq2Kw|q_OjAFy&gy+ zdVv+9uSn>v>0t6ZT`eU?+A|wrRG97rB0~BEq!(wgzfv^I@2>=gg5Z{~u86~Azt|YW z&NV2BT&DRphwm=yFW9Kj^oRvm#&A7A~e1_t&|r+c}ig3+nKkVJvw)!?acM?A}HA`Xd!_T5MR=IbI$c zv->Rdu-{y}n7t-7vb1ga=E%&h)s3s`BAb@%|H9M`u`z?Ndt~mK)+P6Hi}dPbq39aV z*{tOiTL?B1;stSxkQD&?MNEQ*ZQPGHl}3<*xJ1ATQ$1Sx;SIt!wgC_S7dNe_O?*}pIrZ(x%x)YgoL^Wz2lgZ`@ftw^E6*>O{4O_AaC%@3 z*dIwvcmsaW+5MG|pz=GyA%ItHJ(fmhzQiKFMUqbQdm7Xy^4031eqvc~##bg{9{1z1 z+CT2gV=>(&bsrwT@u_?B*ybPi;_(arxF?Sr{bMg4GyZW89(Atz)|Tzg->S0RX!C1S5m&j- zcQTWj=k72l|8N+h#@ZpE-QZPIqpWx^x{(qjRM3PvTVf@JGGb1^ClH zgx~2!64CBi(F=>>f^@IoizZom=ir6a2l0r43WWUhr@@QZH1QI}Q-(a3?bL%JKn-gjJCHbTEgNu;bny0A|+h{nmd;P>7oCBN?Ygk(tt)JMv zu&wTAiKR`;CakG^ZSs||F^d@gPHKE`QR1cYt@T?Y*z_rW!y)xsiA$rcwieJ1yUewyUF|bq) zc*n3_iN0gW{%!~oL|NYFodw9V_53osPSA0-QkDp057^Hdw`-8s$N8u(P9hWZ{{g9tTGJ{IrqFq^7Z0COVS>CNwRxz4W0( z!;cnkuKSU!*k>d=N`mPu`zD$_Q&=0~v8I@`0MyMlh{`gI?vKL;!%}ViEP0kV951)O zkSB~YmmNP3Kc(C}a?=Ky$#un<=5YM~$MG|62sk%eCAsnI1036rpYn?Do)P5zzm1=- zMdLSX&VL!dph2PQee@w4KLOT${FKW*@4x@=?~hdZDTE(kNMC zOYI}=bTgsp2_vhFUC++aVkMH=Nb^Q_|Qrn6KRzFK|WVQ zhmZM>1n~{3!%eD|kjFoOw_p{2R1)k*8W&TyNTsmTWL74N@6G&FyX^Kh%u zdI&`L^`DtSn9FbZKtFT z8(e?0r1i-prbb|DnOBqgX;GU`l(K4aJ3n!dC4SRBr!Lr2xOA3#4Qq=cjVm+&?dmGB zVqdjSTu-*th^_4t<;a&Bv88>YwmefKHn&fdp(izBQ~SjGEOBG|#9J-#%lyQ;y3~j- z+9ixljrhD>!idy}&)OxNfI?GNPkCTbbKnuZo zw_$E!V##vXw4v@xBTbQIZI>k~GQ4nowElSXF2xf|4P#K33{Oq$(dHAiXh;o18Ou+6 z%MuyX{KUB=Cf;dqjOQjn-tOZJE5Uf?m$=Ik8PEJg`G};3F`oH}7h59ZnV)F%HjMGi zPc(WP#(3r@ir!Mg7|;B~T`iF@%}@Lq$Wy}@*ZjmaBsOGriH(^LVmbwgd4t3#gx@wi zvEG)Ek*2xoHU>fs_9yPaUun!DjlDDvlT0;POt)hnv1Cyh8ygz@?_k-?Zw zV0S|nPUhw(Zq+@$17};F6FuRzdcr%MP1zhcHE=?d@Z)O|bG6qndGO@;&%9nHy4$ea zCFbqFwQ@<_r!8WO{a#|0)OLA6rP72zYD>JA?oJz~Q>QQCDLY}#4?uVW=xopXJJ29E zRx6r$9QlO&c?@|l@)x0e=&|LGyw7+jd>@k5`}Dts?-lRr{f$3_?kQ?;_4Y;^lRBXyweMG;KaiVV)Q;9q!Ze`MOYIco=5h; zo|me4@>C278+K;p&2pzL z{nq+O(~o(evPD#;L0(m1^%Z+1@*=VeoF<(`^CpD@2GeRwkPFj;+Kgd~FxRdR{u1nU z;jRIf(c$+`-1{WbgKj{c>1nN4$j6GN5wb$LBj`ai*;x}k>6@#&iimhHD6?P1lEv=X zk4@?P0dO{->){+|5S&zOGA76vD|SD(oOL}!d)q0r@E82tJOFOXfX{OFQvs^&I(J|I z{vBGy=GNcAE0qP5>qEh74EX6Wgoe(TUkQ)l`@gJ%r)@J^*c#>wNg>5o*AtDkIF z`D{{?FCeE(z(W}y#{YQgiQKk7f3Xi_?=N3i>#Hp%bGnw=%+9E#L#pJ~9`;S7Qqe#@ z_evKsy$#C>=-rkWsgeuw@{Lfw8Orx$E?-UZv~U#Mz>J0<()ciKX>_PNfFW4&cF!(( zWn?->Rm}+CBJWKeUcMZ!FTbIYcKsh5^yeo>@pYnsVB^&_NUu@)*j##1kY29z+Fbg= zQ#@YwRJtPA2rsn%K#*Rjbe#{(Uk`ZuvwKsPY!n!Rz>I>V@j6=(@0Y}*cSJFBAigI& z;~*1&;uCfQpc$a4-}nXwX;B<24ZZKZSd0`sHFriRyZ&~`r^K&Vywlp^Sn~Yh%+h># z^6wivi&OEi>pt!n4_$E7Kq8QNrxCf6W|E~a@+NIx89S}J*}a4D&3oX+$2EKdLyaV`hZXx6b%YRNSaHgzN_-~KdKSA{09bCzI`M`t9uW%`FC(B@ z!-78Tw1GT(mA>UB-~4IZ1s`eBkz_XYuWAI#oJc6?*#= z5MRz#gCH&h;&hD)=dI@?*@oj<1lN7#tPzRN4PTuxk{Et$KS_crz*lP)UkgHfMVcPt z(am^FIP*@oI$OfN3jPuH;PG}KQb$nS^n2m0I*Ye)#m^V{{PAw(>l(i5fI(;B-2ZTE z`5LX(K5^$VdknSgxLzaUEU6#4)$|wy_YV+^e;qR>K=66rf#58@z6-y{8Ggqpv}dI0 zXS|ri^Ku4XnvdMA?964R*?cg3U&8wi@x3MJ>Cb-$zIWXY-y_(vi2tyB1sfK1eV#Ql z9ul;>$UY*$*|n;2{^U*##}{7TqkM&qX$O4gSs^L2d|FKL{NGBviHGQ_qs zp*V@%V_Y$JC$bU5PRScC{ufhJ`j9mK@z|6Fsyw7TAH3A_^YM4$QMfV>zEoq`1LVbc zUB(Y)ndi#t`IT`8lfO2y!Ej&q#vc$E2g^YEtH2A>AbY0yhQQlgay4;0Af$ zLNx`?3#9^vc$C#^&Gz|hgtu9YLtCV3UZnb6TIyqt0g7wpy}!68riOjRPgQEz zR(@~`+rm$6YM8>Uot_%DiJy_FVH^1w#rlPx(Wzly@N*$+6n@60hJD7*WvOAG^7B)f z!Nv(w#o75U(Ej+Sji#IRuPz(xHMp;nW0o$FZbwL zFQHCH>L`OOX^aN`r{XSCgRej2t5RU_HZ#XPVTQ!SUhUGixlum-t`3&2J$dC{?}i5H zYmp($p8gG+q1E?!VKo+++1Oo(OvT!!-eFITETK{GpoYOF{ux_LUN{ppO zmyNTDg$M4xxJJ~SvBpoTucUpbd7?|Nbc1~Jcm0P{Qx+_>&NrEOom7)MI6svYrZ@2F z*V!f{pOs#;81@B&Do76mu4$%6_`rkdI&z2h!f%3&h`#<%gVw4`Db3mnf4K5>&%(v% z%o_I!q8_%^bQn{{PO>)e5MA8#6fN}QKTLpVCyC$6-=QY)XK~hO+gStQ8r{VW&my;9 z+g!JjHRA7nB^0f3MeGfeN$tfAHwu!M|OE{ddd#w1)n3hDUZxz8Vz%xM-aO9Txt zxay8Em~Ntq?P01;{9^|&y`n0T&s$BBhW7#^YS6NOF`6sfS8S?g_RR86sWuE^r19^R z3Kr|50ENZ+wSKXFt^ww&lS|WLciC?Qs-@tPdaS+^t`ZgZZ_@5X5;G0#1vyk65u$R( zVD~Vv!G^rU+#4us!qpusjEUxY^9ePTub}?Ao@x1`W$|cPB+BolsCGyekTV4HU+$Nt zuby6<+>M)rmzvA$8uz<UQQPj-{`QM*7h(Bo6j*WC{e^F zHwgVVt-~N$JVKNoF<&%fUz1KI_On)#BHB#Kfw$?;K3${xtYw|}ZhDF8Kp!OJo0~~u zZSsL&^2p6@l=pKiUy<$!7YoQhhYdxkbMgrO}z9gnDk$klGW;V(Vc=@6EVQ$Bu&s$wax6Y3}hx&rErQpCFT(nl|I zf|tITt{!jl))H4Kb$|M;X3FA7>Y6}NbSdVnNNbbVYE{aq zeM&$Svr4Jmv`14FW09(*ra{6iTf`?L)$f@iiTVgU`yd0fFaAWCc%*xrhR_G)xiyim zD16caQTU_^nR zFz&U$@sdUVV6I7pUl>WnV2-wtS(UoE&^^Hi`cEF=uD`pVcc#ET*}YK{bN%&kpnGza zmrz$zMVP5?p!N-PKM%g1VGNutOW_;c@dJ0mLncD+Iwtr+88$Q5yB`PXy)E6ODe0fM zlYDxjGwBUq!IFC_!CmK4I)QeIexgK9D7RX8?P)8ls;8}(pS%q*F20oKXG$@Z)9umGC`^m-?*P4 z0R23=qZvM_RET^c`*B%a?_3_u7?O~}h^o+3FNKiRXx~`seq#bQcXaX!4*!`u=Y7qp z_`cSvovt{^H+<(w6b#_P!Z>Atm|xzaS#l3Wl(`x#gZsGi-&0)^&dJWsSn9bl`A;bi z@w)$QP5mvFoNlS!q2ZlhhdjUy|GC5nC)C{Enaz3{=pN%K{fvP!)YlVMicR5uK4zZC zt=FTH-38AwUnP?FF~w5~ZPuQW91YJ-Rm9(KvZaOgN_ooPA6veye5QQk+ zC6tDF_2Za41S#FJuxAd=Btf ztLJ~bpomd_uJ{A$iV@T|I@2(v7h*Rs}j>0r66ecTr9 zvQy)Gz@x=SYNQ>9mBIWo6j5NmqY9+R@1EjqcD_ll_M}@qx+()_u%&8+lU#eo$GEG%Z&b7H(luwjG zgyQDBnUte1+f++HYj!qaUl=7?I_eyU>sWN=isc7>e2G6<% zguT=$vAy)c3|Myk5Y)dLU)=-CJfV%JUfTGSv>gzd&0a3pKH|5Eiae4t52y^0)~*`0 zPK;XJKC#rvwr-8ImZLhx*k*0m)+PRF!?r&0kB4ZBHgemateG3}Smmfm{jtYJn!X_= z(t1K+!)8^pxl7%?vD672tUr-fG^@pO&=k#l3eChnZkZ|KRB1)SuL7}02~89BHmXl| z0vFSCjt;?JTh>3g)6hnG?y8RN7tUsO<4#o467l2o`B9$CA3cNE(c1Ez78_Fw&52pH z$XB(ta0^cVezUs#{-E=IXS;G~q_K_;)E`?AY5J-9rdDlY+5Vl)t$nT0y1Q(6R)@or zJ`*zZdZ7ft;Ao_^sI!pJ1tdh8M)I|MPVgNJL|SV*6bjX!X@aZ+{{~^N!g;YVFEJYi z=Ai85cK-EhSqBCdE~%UsX_OBH{ysp~3*V28#pweY43ITeQYyB+#+m%QaCksbDm zH2sx4oP6!jEJCwoNiC-GNYxVc4#a|Dci_FNVFNrd{qOp{n#p!Q;45c%gg4!VN^Sk$ z7WO}L*7o#x#}66E(j}fArG7wm@=QIB?yR(1$^SKVe~IkS zsD5A^PxIqh#pM@mYCGqG^b(WG@S)7_3_EXz*rDioYDsI)^yR*n(dKpG=k&>8(#mYo zF=5i@VG@<}%vMqse%=y(PIn5EikJ!3&9qLj1RcJYd@a|}KGnS5pOf=lLrJK$<_L4X zHb2PX%)XvZeH`?Eab&<&fe5hpJ}lpKj${^z9M^guw&!=v%)Z4-u&2b9!BFTu*#D92 zvi;P`P249Z5C|br9!OiojV9WUyB=^@=5|x{SJ-pBXFE@{Tz$mve^sNoUPJYlCX6Y& zsy%n$Tc(PTf_}??CUL9$U#<@QVR}r^``F3h`;g1^KJu>cz2Y3bPjB?^ zSv5^`B{s!Y6<7DEf84~!%^;|6QrX6e=P;ai;Ms()Ixu3f zs&-GE7XlSO_FDjT3;3(w2q!e9b$YRUU9|Zc;VM<~>ftb{DA~(bwBE>% zSDZ4$aM1XVu*TNA6%0(?)Wn-hM*-t|xNF-C(`hvRJpX`b^ZC?n@!QK+;Bk^FxrAo& z>Q7R?1qEoNNyJq1cn{6-S!mYf>7Uso3-Ysn9GG%seQG$4VZoK+hBFCqlIpRI zN@8P*Ziy8x(QR>})6{5L+9wsa6sR3cPse@X^v!lP zY~oK@pmsuC4+GDM*mEw#H>6=RjypG_H#BVK3~m(cI26E*kMMO?F~G~sqZW% zXn17|ou?0K!Q8nx;Kj>2a7wHt5ad zTRnbPx~&fr(aqN(wEk6f%na&a)1Er=&#U^JTna}va-Xi;Q-j<$`P_GyyphAB)tVY| z^wSY$|F~k;+mBY$nU*nqA#|eg3G*%HjFjcugdYK;+VlgTZ(trhh3!}R_TT#f?H32_ zeK`A}Z;I2L^o0ES@sg}6>u9tkslscwvTCiRI`FrutS}gs^`}FPN1#yP)pI#l zm!Er1y1S~GCSSO>EGW5LGIT8KO-@K;4h`4a-iW*i=HfS1VS;YF)GHYOfuNDP4Cn?VT56iKK8YrB~fXt*MGFPiub2Q*b>AnYr!c6%#yioBXN> zRF&#+0_b4&$L#Ewd`F6z_U-4p@QqJUFhAwztNGa||8LrQiZhy^;F8r$wwwkd2m0*& z3Kb9fJSQlRLNzfXkA84NTjn*R!&Jq(zE;Npe9yE{=ON@5{Bv9+ugLD4ZQQ;IogYb6 zY@@s?W6~N-|M2xKBcgR$_X-Dmt74T;Zy{Z9%Y#f_3E+u5vpWtb)*Vi!cDQ8j zJQ&3?SD}oR8KOO=DwcjyqW-#{l;EE=(`a`nM_f-SjLh7f&p)*4IYN0#NB#`!VDYij zXcKg7X!cYsdJz7Wb`S66D63p@039Y?9j@EczLI{`c#Bx;H;lgQv&fMvs5h~e(f)a? z@C9*q!=K%nmt=G*mrMBE)NG;iLFoPmauK0uU-%1?HXyD`ePDp-ujW8aqgUBxm zo`1Ve5qta3uSjzrjPM1mmL}DTeaF3WyGCO~aZPG6j<#6aV3zLe4U9F5HfZGpa}+yg zct0X7ubDLj&}+tU5VXgIz~g>jqLr?8s^Z50xDnT4*9G8PqSncZO0rR~Cb5%SX5q$h zJkvpnrXj&NMw?|#Zqez+)*1W>H@6B@|B=TaE#1YT22?qiFHAe&e&GbohLN(P*7{azVxaxFGr;L+a!YdBUC0gd`1^F%_k`(Ybx+kKZy@x_#`qs*nR<;)|Iku1kk74u7n|gZY%8-& zU+0g45kRXj{(!?R;hWiiIAxw#mc`vpnCl#evZVVVV_ zl>ZBWe zQ&?RqYsd130415tW;?eYs|pThku`TNG`Ui-_lM`BmSoEDMz7;b`**RN%AR zo7eia%JLvtU}xvjx%Bbi)zhop=jrJwASU*0EuJAk(N6`ukfN4N%u&>?0D`?Lb@-q^ z!Vn;=i_;nr`l0wqBC6@n8Ykcct*48SM^GLq`HStO}N$F=F=56WyZ-%_sEd>aV`~~hTD9;;2;umTvub#YTrrO|^sJF`y ze{q9|^TYTNX0>n+Q<~i!lQ#3*Bd}cNIDQbRiZ1k13gtQ%@!e#=@-LQ%Hvb~q4~g=S zgb!CgMjv7Q=%IcrV7yIlM8ofG(FzoCfWU1`uDYH+j=;WLL@t(xU2N&K8x+sycno`W zI~fbuE%@>bUqbzxd&~dGE4*Fa?AbUqav9g!(VyEVMzyc=W-FP;KeKMnRjDgF_$8D- zVUFDp3Ud=dq&#ir(J@QG0x{kr*B{%FbxF=4O@HD+t(L=p`nv&~x(}I*xks+HqnT4v8Vq*NNF;ucB~HE~if6a1 zmQOJW&FNd~BlGfJ@17t{bX6@^_W0$vv7?PqH%GyUjL1xv(oESn`S5Yv&s(^z4@yO> z)PZt-Z`3{jsBeE1Oy?Ohvw=5oi?>@}y*@!3TB|TgFem2pX=*Sk-A+zgn&RWw{q`(3 zVS8aP2qNhEpwel!(Sm)w8p-Th4ofSrm6Vl2aGWgGl0@dyhAqrkxkh?C_OUJt99#CZ zxwEb^d?qxzSte>up5T-2YPM2_;x+E@An{=(N?mzF58ka}>CG6@)bu-~$ur32$DyBo zCQ@mfuXhPD&DV*FbnXws97RS`fET+ZKjUw{Es^rD1v_J8qaDSr5EWOX*NRF4|Lmt!n^y|a-ihK3`#+BiFNsZpS=gL>= zeQd6LKfRC4mETkE(}VKa_~Lo=ikk!xBp*V_jIrO}M`)B9oy2*2xRWHSC@U)&KvvLZeyxv$m&dj^S7OEfj@BUj`T z6L-)lWB(u0Yg6Lj;O@~IgQ@Z#QiG|o(iME-r^*t`ic5f2Ux!WzvMM0ApD5nu@z537 zSPFI5S0@j)pt}1413T#!ngzqZaWmMOtFFW9VWvhLRxAQTEOC0VXYqa|3r^~~2_IaW zp~WL@ae*XE#q9|JYnbS7cel?^IS0iJ6IMr359H~SKFnqf>pPdZLG#9TqMEwp&znC3 zT1!;@eULw)(sXqXq{JZyZGt%KNtQpeu++!>GOjth(%sZxb9Nx%zVldQR^D2tU}S!@ z(^uADt1+C1+&`+1vMIlc@_gE4AD+U}so?Tpi~uq##&;aLE5 zF^~H@0FuMY-UrJ_mxjQPQSaM=K$Ga@YY=jY1;%1YgL7-$w9t+RL?d@ENdH;jW#vt@ z`61wge{I|y{v{_Qvgby`-G3kk6*Q=DJfhA2Aioc_z{IlQ@jU5(%WR6=c@Diu$E*b7 zPt7l04nKI~jF6x7n5Fl!i^BIIkLkVpwc&fky?P&cY4~1Jqxb2#@|AjD{gd$fkbZi9 zL09{_}Q;P(RG+Szi&_ zKl6$^Ma&pEkm#t9dB+{fOwz>;dV49B?C7KCn7Gb7XZKOI=f|=X9Rdo2Z9ujFqyhaI z#49+XKUWKUwW&){4PI4fE)At*iXe^O;BLp8&`+rN6~@ix@-5ia#S+UmZ^^8dpg142 z*b*QCFJs;h58i9p4_07V?bs>3=?dFE-&JTZ*!|q%elw&S%??&zEPy z-(B>WF%2CNj?}Kr(Ox}0lGzaNnjJmXPv{NL&^)*!#?^ZFtPd*nepcTUfZ4+S_4D)( zY;XfY_cC{wo~5QR$T~mg!xz^kkCi7J-QzEG<4z#5-P`q{$aCBBp#P~*fwGyHZ^tWaMhA*vdRbqE<{{Q645RQ zhc8hm;jE0$D^=%;PBF3OPh++rTr8gYS;CUk%N_=tuTRCiXjH}VsGZaqWDw2-2oIr- z=zK4PNo5EjG+^SBG}G$Fi!8>49ZL?w-;<8Ud=K*~M`6ziqU^qo3Lm8rRuPW3JudX* zBP~RfAAHaiY1#=S<0Yg;L{&QrgUvTaugm60<5z;0%HPTZK@EHt{^Ng56FJ4^mszOq z)byn6Z`zgJ@#txl7vM%Q$C-LfKM4jcBu@=q(=gTBFu1IMLG?{U8f7m3ADb!8HRF{v z_>!t!Avz1FJGgs+Ybg9ury67Lo2)vu))NC|50*97jhYQ!3O~e0@P>5lrbUmwtMafu zg%L?lw>~3BR9gN`40ojQ583qpIvo@bBWNOv%Cqy~RecJ8^uLX5(_rW!eF*sjI6Z$$ z_acSqj;mIHzi?dA1vD1LNh*GrQ1x>Ihno^MnwWacERd0=O`@_8^Vfm}sXpZ!Dd8UX zSsJBl2HSk?_6sCGo&-DF%a0#<`Ei=$#}A^-6TqPN$$pT`p?12oD_UD(FHCxY`3Qd+ z+I;zU{~@Qej>f&VuNDRDPZOX)94@106gdnn5mnG)lOTAU`B))m`YZ)oDywqGwWOrHUrp#dGc}@02;}C3rU}x*X5M071 zafmqO{p3t5J|OcwXuOk2>^im!4^{K2l07J9?&z%#(?`EJpVLd*OCPi1t1fPtmnvznp9=lBBiNuGbuLnrL&5Ingc;Y`q_5kAvMGG5*KfmufwhSZ zIgx;R0KbqUdKX;MecbBuWm)@|oj(|`hrWL@K_`@-(f^IypImd&K zcK1DU=NES3L+<=Sd=GPX|4g;4!!0{iab#sTK{kRh(cZ-=d;oK634VTX&x)hf;|- zsE%V6?p@MU(|Nw8-&#!z-Mj--k)q#g3f?YClSH4Q2bTFCp68bjG9^ZvFQTlUe%aw- zD9)rR*L4q8B=RA`2YZSC>B`tkwdoD-5LsZI)1`GI`H41Ps;Z*2k{fxd>a40}_oS*L zEZ6zu%DfY8KFxqGag27ZQ29DfFn1~cHUqG?&o@W; zIagiCO^l=lsm{fgONYZVw?v!eiwB5fRf)Qvj`2C*Comoq!b5@xVml|hHZvXtsD0gI z$+OYWr3rOO?p8hr*)@F*`a8J~ja6=nAFSQRa$JwT3>9bh6ljB0m1UV3^T(>oi?0*< z!-~A?EkAoA3RI*;Up1_N#lyh0R!_6vYp@S|NB+YJV*Y2>3pw!@u2{5M$*p&Vh41noo^DOVbN<5(VVj9O|Ka_7Q_N@KV;qzN z{=V0LSO|yJo;EE~VB3Z4?xaS`q&!l8-gAdxi?&^$#Cv4>(YCIfCt))zX1<%IT5bn_ zs-*Hf*0+r(gzMcN{q+9Enc@48J@vjIyS}dIqW7Xv{yQ<_QireqhD+e&h9+M*?TEXD z46XOR-H|o;j?(kR?jqO(YW6HlX0lL>00L>g*)3wvH>1s`08Psk z{As;}KjGXdEE0c0*>hVFGy%F`<*AaF3yf{QVm}r7F_vD7^4B&FCSNN5IX0F@ottTl zHXpCrjXUJm{%}XQ!-G_u*5#c!>XH3@cw#Y5-QMZ&%W|S?gU4@11aW2qoy2`v9C}Jc z8qZ*cT6iaUm=dswGcYtNk!YH#Z91-Z%U{9=%iGCpeQVd83r}0eO1P}#6b&k?>vl13 z*x6V$t&3mb4#x}#H$y8c}Ymhn+Jj4;vB-M!N6r7};xBwHg&M+YmqzNHIL zAuwL-K$rL17anbckiWqxy}>hM*@vRd8~GcK!!K0qhF#?`vzA(}eQxK1z}o|LnVq4p zwU4_lb8ARXTo)<@;1Ned+^cdl=rz6&ZT?!|r%Iw!Xahp|R<&m>x$ZQP9%8xcN%TzD zzDJwahPf!-LGY|8g(M7~i;j&HnBREVe)^{Bjs~E+Z2!JuyYJ7o|8Dy)iPu=) zYv&nvKNy-^N`iqm*~Z=>1A(syU0v*sJq^cr7Q^F5y2(EdM@#o#g`=bcA3<@puMd@- z#C2l4zz;$<-dlrpmP#@(?RTExY~?GW&3{yTh_u20b0F@v5G8I!MAL&!_{S_)#lM*l z?&!UR{*`Xq1^9seLF3D=I>18CZF`un7GwF0X3&_;PrC19n#pPkUKJhj;jDoYo>mbdYb(B!#&nN6Ean~?D#_I7=U{s9Yp^?UC zc@()m4ueFeHB0|ws*;>vGg|T>a_80d&K@M*KP%ft#H=XW0)z%jRa}(tna?G&*~#Q> zAk{mTx~^|x?eGLQ1a5IMRLeURqBMMOjPL8-ftN~pv`01~2EN}mqF3fa@XlItpho9N z+XL10Wo-lxUYOw$`+6W3nBsJWZs%bg1%G;wVTf|WMycG7YZ`9uUl8xiPv3&NmT2=; z6k-rhXe%jbnaVSRsBKD5{XKUHSP=^CsXpVL%6QB68P}DNaVSl-T*@b_A=)h8tZ=@5 zu&t!PEhZO}aMf0*fJ=CfiTF9o);hfLzzuy!xO7!7mZkfV!JA`ynKSz-@a0PiiZ=W6g=4ChXe3mW^n~Nj2Zl&z3E>_u)oeY$JWmi0P z<8Tu0lG!E4;dPx&q;*iMShH(Oeh!`0Wf)!ArwZJ*(N=56$ZeYABF~?8*xHsz*CgJ7 z4s?&?CbtzO)K6VJ$;g%OO@7HVbE-qq-};S^0whBtzgjr7{{4cXk=AwS!%ecv0Ys6H zN0Qk&Tu0`^b!h;X(eS4*I<2ABgiDU}D2)9fzmqv>bH~W7r$ZBA+g-!9L#Z6UlT4fj zkv$>w1X}xb0AO%tJJM9bS0L*YZDqn1q_5%?`}VrbtKuKgW*l-0TI%`J`fL7#ba5@! zxU+ZOgmwXnaJ6JePnn579ARJwKzE`M_jbQcZTV=*a0lE_OW5x+mEMsPB@->WqeMG4P`W86>9b-94TuQ@|% z5&4O(XqQDo`za`=Od9vn`C1&VcYphlw>jueRc~{6iWHSc=fu1eLpMCV*gekZ29o!> zXv1+G>hAW+CA*)=KJFX#*(Cf*GyOaq7CUB*dy`E+rXX*orS%jX@-!Gu<1&|&8i-;T zr!3R{++uth7Nn171j6|Zgng8`VY_Rd!tbQp+AO4oz!Nr>ie84*pWuxzq@R*3OGS}O z{`~>oC5HP**X%{N8NC(K%lywK5ZZm+W} zl$4K^I=}oySEFVcbj7>mU}7`7`Te!bWCc2u#r>T4&cwmgZ^yP(#8==@PjemIvt>E} zv})@H7I5C?5>Fa#Q0LH^Ms-7XRG&A@cW7JX>zk6T?@nLe&e{4hJGHNm^&UiWQeS{$ zn_y0S7lA7?y{A7Kt%9bq`=MGNhWUH_FZolQ(l-tQ>>G#?bW&ebq>*K-V#MX#V4KDp zbXeVK=a|IWvQ?2?Pb#(#tEv(aB|B1j<*m0R$6oa@y|r>oY|{WTA3l`2HkklIwF>Eq zzF~)iw=wBNF`g(i9zprwXzX_7kN4&64j(K3JHNA+SDth4TPEc7=X>E7@&^}4ga*wQv+29z6VEF;5^M|iAD$tssB8IafF_%CVkMr&~x zR!YbKwcB)A6;mj7qRA8i3+29^1*EBpA5lb0-Nbt+TE|n=9H(ZU0eebydWSq>*(I;@ zfT5egKA{7)BNfgtN^sqgD>GODli^sGOB%6^RTzlu+refcSr_q>}tOyx-9`D9Q5 z8(crCB@2|B+xe)=MO4c`GUf3D7F~HPm-T;DYC;DY09XUEqRBU-6lX?H^OEI9r;Cx6 zTt?k2!vR{hl~hGP8UffpKA~apu5b5WZbURBfce$8^hp*H_|VQ(T12jQGXH^139)sj z37He`)$-)q;s8!YtM{G^y^rl5+Jkx|^#1hF@O{Vxz0Wv3e6P4%@2jiB_mVyJUY0B0 zMep%k`7JfPkIj}Zxm@pG92u7HagN@ra`|iYJ|LUFqEheiTzlyl?@#B-zpMA6T=^IE z{spUOlMfuV)%$>4`OEbl&y_z%?+cC(^AD-f`_n=B=-Kic|54WaVw8AwFIUZC5mie| zQs&q|*K{gwO~jb7?Xx4g;(Rf>tcun7zuZ@~3@x8xMp4i3i5;;!_upBl@AS!ywqrSz z`CJfM1jySbbABjq>IV*GpN`M$Xki?9b)(rqtgekLQr!JepSEyBu3wW7OCY%vafXne ztMIB(`Z&@XipmO;MP)=Ds)~;mEs<%U``2)QYZzZjF%Ee>(3$cf?f;S&JME)sn;P<` zPfP5$i8sqdn&fm5)QPe%lo?+?RfU@>l3imJFhklCJoA zsuPO;A9ms^p#rYTPeEqiX)M4?**kgjOZu(+9|IPr1qt6;6vQX&N-IRNF2cWaC-5GJ z!O>Q!>p=P}g}Vg$&o?k>?ZR!w>#gi^&eoH)--xBW?M}E|_Qgn()_*k(lXQjC+nlv= zS4c*9)5=8_jVQ6m-FlMQpU<2vrtI8W4GP9>0k|9h-K|iMrf}fr^MhFOJi-I5bf28c zD#R9F926{EZ#x)G{Xu1ReGqN_+(0f_vz~QqlxHs1Y;EAzG-Ee-+eV{nam~|Nx0$kN z$aUAC?&o3u7pI7)R2*uVpa?fb37|GcWne=j*|1<#9<#FfVg`?j<+SelC(yTTL#^qr zMjF?Z)*m-C($s1%8c#)1y^*am6ExQS=hXdUY)NZVLkb>t8isSWq?UUwEnLYLD$+Pj z=shKG`8%0x0<5nBm7^bBR-CEL^78<{nT`xHSIr^bv@cZ4+A_Mhx~Ql61cvVz9$<`ns7{~f*RSBH)(Yl-(?XiA<%W4PQz@R6#&bhs zPGC+aO%whwz!I(+c^{sRk&yl;jD&gGdMsco@nMlF`tMb>{WgOK#r_);E+DV`sw?UM z1^}(48#Z_K_w>wSWQ4tzby60%J#-(nNq{JekJGTZbEN51df}N$YRIq1)_ynnY`)Ik zi%Q(144gU>%pVTfwzViaKp$h%=o!;ut{iwJYf){HJdQ4pfS6SeBfgUx${?= zH1#Cgc=vUW1~UiSH)QONVVfrXCkPRHJ+vec(h4sNK4!tN)v5QWryaCSXEMmM zf1D3(q)~B4IJD)@J601lw5D)nx{^fI2ftH&$L*yp^Sr(ErVgraKfY%ELcSnU6#bGB z6Dj?627Yh{pIe*w*>ttXM{Ob#ZC1dqmK0#nL=M}E#nhk552tcBeG8!3 zUiq-%w(D3bb5y?MvNh6Y*mF6X2YAzu`SCHPI%#Vi-c7Ks_3oV$w<+KhieK9_ccsLI zWK1z1h;d~UsB)om*=T{GOI?NFPJU=-Z$v}ZS)Z-L$7F}@mErO~KEI&dRsL@v2$ zqOs-aZ*W`lg9+uYHZ2v4k`?QmI9K=R*6_yp8WOwjPseMGh6H@E`{YxQN$?ddZ#kKT zgSR^m4=2EHIvG5tiFYVg&-l3I)zS;NxBkT9{QD(p8jhoZcbN$)4&FqczoOdoK_CM9 zH0vz5T%3j;ZWTQ+NC7?c-n>21!FA?8LOLbZ@&MBHj%t>oyr(eu)afGwCGQSZo? zD!Ekk1E|TL?2K~HZQ4k1OQuRT{{1`?UWED4A=QAA`{jTneZ${ z7(3J8DH-9x(vJsgOAl?frO&ka$aqAXpP}}az~KG5D=Em6hld5V*P`!xI-};ztAj3Y z;(;#f$JhN^>W+?zo|AqKY_iv{;Y*d=M4c_N3`o}I`nqHzeSO&|4SVH6zLWPfnV~|{|TnB8Q>jNf;t07lbZl{M? zc1=ENna6iSj0IMd?!V8EH_)a`Cz;y~cmGkv8XmI$lI(Us#l9@n7eu_iOwgA{H2sC| zxAo;V|3z~&o#acj`AQ{!t0%{i!9DUNFs3@~H;&q*z^1Q58HqMe@pbG?7OO9P8gnt) z{IO3iQgV`Kp*@GnbEqr5kCd5Ir&q5IE1ZG%41AH%d~7iK`PfRYuXDe4s-*wp8t=2% zo~}(EOpZ@KV%RZ2Uj6%Ub%bVc(P&#abtJD8gPr&ddbu=hM$x-}PVX?~=(m`|QiJ_kM2s z+0TA9HLU`at3ms#k{f^jh3J<>;0|LR*vS`TxFP&xqQ@=dzqE{iMjX{Ldk2?<635Iu zy97S7E&pQoSqifOeI)v@*?VI5W93rqIxRv8y9>kSiSZxFT6pz9$;I$i!q+RFz~`ML zWm?@ol2^w`OLO>uS1$&D;=Ru^ZwXULyS1UUaM?WTfYH7AJMyIU)lj^1v@H-Wh_-c% z5U*_;5_MX>JB71Iwa^yOH|9}cDcjej`Ml?t)NK0|=X2qMyRw#8oZq~QlH&PWDNzwU zM~Y4OM8h|+_p;M?ixF_{i=|q=WDYr+^H@-x`~$w?8zzy zBH^Di$VUz<$w_@b&F|AAiXHbZkmGarit`oLII<=FBky2xtNZKzR`sk2Ka}Wk{B!2aEX=^5*>B)|=pY^3>wl*soKx~r zAu}I|9((_!jItP*jK3tKJB&5E7dQKu&#_-t0x3u0pT=kf!8(x$mx0=&bfby(z14{8? zEJI1SCgfVPbLN9|yk^U-z%sOZOTmb7rC$|cFR5RwhFwZL(|~h^0EQ%-9Ol7uQA|lb$?9`z#}d=!)LB% ztR_WcegAKnbgiquja*fXDcbAsymE%jnE6`3udu4d5(*RsznDD`?3G6~H^yz2pqB>8 z+1 zZlgk<4>*R`#8!)`r!6K*Q0&m9eLQk=6BK-PaCA9qbR}UUDIl{|!*sTWy3t zv?k3Kx8zf$H5!I5uhL9(CK&m4_fGU%<4M-SHkf-qnMcHbP|<{~#|nW%sJL9FfTbp3 ztGnkcqjAsC$r8!LB=7vy0lCk4WM2mfIVD&-p6_)}@iYJT{P-J>9oB;mtGDfJOWh?t zIRaZ*P*#s>f=^T3F82c5BMg~rw&%}_sGR+kX7@pQr>t;y_)DU==S{Z#t~827lDy%p z{q&ri@RinmqwdLr8?R}h@hfPY;tO#pKnmM2a~n&*$wcujT$!dmy~1nqm!O&*88^aZ zDyiR~AGt>f|Ew`8{F>TiGkQXvb)#>hJ(jjtlEs%t6^SW$<+Zpkb3qclN}j+3so%lc z%gAcuAY~8Fre+{~HHC)Oi(1Cdwa2o&Q%GFWnB0$s2OPoLGbsxcgPu*dYCdsa3+TSL3H!a~{_ zW+Q~tQ=>T*`U%#0%(6>ji{Mv--D}PirTezXmsxemII9zwOjy$B#!xuL@znU-t(OQi zmO$ckk=GsBg)U+Oma3wAoy;y9_ZJacK}okM&sh5C7rIt?s1UVciF+=&+*=S?-fTJ5 zRi=tDT-~VuB!J6?+)y~!ixfq<0vW1)NEe9shXBNmbhT>7{39jri;b$QO#G6@6=lh7 zW{&(Vn7>eGD8cT>_K+^uGa{ml6Xruxh0?2IOMFwuajOo=T0U35NjbQpVRi1~445Q} z;tZM;hUGERj8_woj6(i|u$wJ$pJClpQ$KTYq(~ywKSGd0-87XkmPLpwGsRox?m)#y z(fVZw<2i-^d>7p9GA?Rqtq#sL9c*=<>!hJ>ao6iF`jW{blkXE}Ff>g}r^Zi)#C(`h zC`-bRpNj^RFCqi#wjI(qcr1px~wRYe?V`P)^ zLG|RS=twY5Z5zByOVRk!wtM9X7ya-IfB0<)ueu@ zdGR`5h723(&LP<#5QYvnPy`QH4Y|p2(x>NO?J;7ZK?Y#HltZ7b4Wv!CZ7W1qC%R4V zU#o2LPb7K$z(0pmsG0A8yJryeRd%>fZ-*uI{_qd{_hBFD-Pcz&A9`;b=zs5Vhu(8D zuWMgcrzgxUMpRqOCo*M3Voe*xD!80BU)VG7 zE8`?F)f-Q2uF?l@JY6=|=@YHf^G&>Y6T4M`J}k{NRmLY!#h2~`miUlPW8^d=k}X7k zTb|vUnqKO@T%)BeeK=8D7m<4fEpk1$hvy0N2gbsr=XcJz0YjV-F{&(+sy=bCmk_LlGXaaPF$Z|?4nC0nSe z+>ksRN^UZKPRU)O1?!AhzWbxBd?aEMt^!bv*Yl@BA1{B;r?0~v(|hjm{(FzEqMwH| z-}mVI=HvYD!;*Smb(;TP{E^;!_4nU<#PmKoQ~nOU{~=TUX1zb0DSw6DSDomWAJ$dx z;mr3vr||xA`g@P(_5O8FKmTEm>Afsde@ySEXUgB9_po0+wigz$Q|O%-*2bUYkv|P& z>krKTc{0zOE&mZzSTFee83e|1ot8aJ5&lM~sAI3Tb_p+{mQ6}-e?yV7&`4^94(7h> zw(wZhcUip4kj@b&<>P$r5oaES%sv#%&O!FS|_h;0j_uE(7 z^tfq(?;J@Y-D@Y!kD~|jrXGbMYB2T3z6ixG&#M@hJG(MaFBc@>ik%7AS^bS;M%Wq7 zjdhN5AxGZS!vL+HK=VOT?1Dw+P>z;#9Aoro0i8w;1*2IeCJ`aXI@W49Srp-Il*{h$ zU3v00>g^2R48hXVv0OQmNXAQqZRl2~XGe4X!bf%dfq<$?^~W8K5-lTU0#F@d0w>_x z6|=;sbsWB4BN?;`=o~rpSU|mCD^`JNcGr+*q^iyU zz>cN9R6i~8A~!;(`hF@D<8E^QMo#Y4nLmmYI4yeJ2sE4<+jOx1yH2TwDoE zSwYJy5*KyAwD?7AVa~#eXmdyR<3R)>AMk0N^v)!G3GF|05pZ2cm z%mZ?NtFa5glX{1`x{;6EBIU(J{k``3K=FW+pvTP_e$z+qg@>l;xvSp8$NKNX_6+3x zhEwc&dcMVwFY2>7#IpF2PCcHtQ9xmL5;_q z38%rS$NtXY<@rueEf-GxGn68XP*5?=YsI*4UX#}cRQ%QvN5%4-I(-dO*B~W)q2cz`u94)%}tJB#b7T^r0>8ZmT{AYbUF| zZ}n!N>KjRY#_6@4K6>*2@ag4lK7Ji`h2C@1_Ksl{djC4De-@YM{q%lbeq*9O!yR3= zqpg-DlC@B0)el3BA0E#c*a7YYza?%-yZ4>La|4k>B-AZGtrPfk?6)h~CUNMMDV3?u zlR&I+hCTQIev*i%qh%~8J3(v2@F<^!=F2-)?IniY!6dtl12p?M7 zm{-#_?G~|LZ@mV`L>BD^o9g7QPd_V14PpKN76=XW-;?8RbX(Qf%y`hx=jYgdA}*TU z-yKIk;=_JL8eH{O^~x0R$4_s>iJ|j$JbBM^oBnJ%?_NtglGls_5<96g2}mg(Gwnss z;o3qCa_Ue!e$hn}qC>c^Lkq;20FGXq%7V{~_gH(Ov*gdEvHh`K;zfDx7vxs2?ykGm z_O)p_8mUGP@^i<1y4%ve=-?}7Qb%To;7&YU2zLnO^KeOl({oe-4`T;8J;w~+7N+9G7CFuES5uXd%gu5x*IH3D#ak{dKZU&HpJs{v;0p7WbTw z#oN7Gi9kW{C0Ki%@*Dce&fiV>op0w?PnnNS3FatKd>Y= z#w%;T#@8QuyV^{*d?{Qal0NNuO&WoYn%rIQV5!u$K^YRaPA~BbS>zzhi*y$~UgeP^ z+Ab+jX|!Jxqn^2_QtR&8E{JiHivQ3WPfN=hANGrUf4q<%Arqn+Npztg4$wHPhvR)@ z`jfkh6Ivr{*;d>{SbYt$%6*bIpp=xq<~fUKJD2VuwyW#KRU!oAGF8;2sXPailcQ<4 zOR%Ynp8erJI1Z?8{a%~ORs2S^7*UIBW)#^Lr`i_9&9|}E)(}PoF;a)e260N7~%k*jrIO=00mz1v?Z~Q zX0MMFUr*y_k0e@m)cu!K#ui04Ip7AniTeT(A{OlB&Tt(sIqBW>GP`9vF3g=>s8c2 z_|vO%!f3)R?q_|CdE5QoKxX?m!7aW}_aK>)y8F`d2{TAb+{cghhG7g*v&Ef`b`*cJzSbRA0t;kf(FC zTs~Xe2dF1#J`Cdn`g`C!=he{>03p+4TakYw$nk6~6tu*fAAcL3hT($+ z$*0>*Qbo*Vw9fg3w{@#3p9N3~+(Uun4F*H9)`vDkb47e;A;IAiJx-)~CiHz4ItXWn z+%`zFUithzKD&EB{`6g55H8r1K@vv5x$o6n1P>R>_BfLKoQv??qs?BVmcxJdt}H2q zIM0l8jcRWAklJEKC%QL3G9?rr5_h6|^8B=>gu6>pM`E(?Td*XMI@XgLWa*W2TCXn0^$JL}uU_fYyg}Yj$&$!sYgZ8y z{WiT<#!st^pEJLdycO|la8jCNi0auBHn*8XY`Rz(-Cyx8;U?w3AAXL6i*>4BLVv6z zA~^1e8!HF6p#dLcumTFX7WOl417}qvt||-^Epz7Oc5~*9?hzQg+};?Fn6@Bs zTR~}6+mVSo7dYoGNlZ2`&bh0V<85$B5SwF?Szw3aC|#2YJ$R_Dht*Z77&hYHi+8DH zpt`RkW+XMS9v54^LGX^dv|tEI&;#cg zux{@S)9LO0nW59L-AO&k0erE1Bi_Zhnwq#DXBL{#H5g)oyl@<%t!jGURHx>A^VESS zHdtYji#yt4h^Bx_sbIs2`Ec3^SSMiJ3LK_SuwV_ho2(F z)rmd9msiaMFo@!S5e50T9DRrD3l^X3(DDRyGo7-XwlP$cW zA5;xF#i`M;D@6v4AI_M}`4w*imSgS&Zx#zp!IaTGa)c_YXu3U~p0^`$u7{_~O9!uZ zY82bc?_8uI`LJ;fB)*}jJvm!Gd}h9BC~=aqj@zN}AMho93WuRd5Q^<5+5-!`>&(k{ z=9QEV-W$G9C|O237ClEUD09wRn7G`-&%MFHyPcZ#DrAt9b$rPew0xx6nyc}=maZnd z@k)OQA+jdfwy*vCEK;uFpki{1`I5!of|pk&X6ES>F$YYIkA)S3-*{2(Q+;fIqPtIx zTyM8MP5;pQBx2pW5wNJ5w;6fc>`s@wjpxTt3znQ-82Q-vk4A==BNvg=gVFsR!fa73 zG)DZVacN+&^2gvCT9&5%Ry&A42Qe+(KMhYP;!74!(EL+ZAj~~J72LX)mns9uYBGtb zoeiVk$*yn)4E(fkV~xCQ!FWLc2vPbO0K)gFYxmI~in=dQ5F7VvYPOwrV)#<>YD3PY zS>wn0HFhNH?QnWMUVMk%UryV5hYisC=*;&%dVkpa?w#+I*SI+iiX%&;!R*Aa%N8_3-7S8UOyV__)96 z{8sasOp5RQ{m+FcDds$iIgFw^T*S`Jxq&>virWPq^5oJsllQqs%45}?azNJ39{uU6 z{?HBjL!se&#>KkH4}!i&oq%Z|y{3!%d;h z{i)#_E$+Gc%l2veo4-v}taSeF%iY?Uf+f-8s|M^1#*CD%+{^3Ert;KNmTpX1>QCwU zvG3LCch5d3*=@Wdzs@W;pE99>-pJP+u^|7R=_pPiOWa-iH2!5yg;bJ~eg?Prz^ z*una0#u4AW7|AIQd}A-Hc&oQexh0b+S>OP%G- zmkw35xbpy5>!kS|Xnk7l;bx^C!Gjc(CvriX`;FlRPR$~afZZ>1-Kz=?qad+IISmqd zC8+=pme2o=Y<7OL==W07va$2JTj0rT%%84fI=T$Kx3+Gf*FoB@FC~#F#guDEn3Muz znIk2Swsj~+B-OB&Gj?j)sh%UM!qB_b-A1B%@^wHKPvfb0#REGKcnt3B%gJUCEPQfk z+?rt3-F@3~B3CEIAcfYZdKtcL6GMsf+9G9ORqW%MwULxY;JiLYj)o`IDS{np_V*UZ zL#yp|2{!kHRak?tsIdwFi zva&M+Lr)36O()JIy>aNt;d;xk()6SwS|wl3ycd^B4$x|OjcpBCfMpLj@v_)ik+{ro z(!p*H#{lYHw9OaV=ApB*06^s?Q!c5{t7hC@H(JS_^t|Imu#Fe*z6rbPVDV@eo?+s% zw)KXy*-+ZUoX@lX!wn=z2#O$)zRI2Xdu83P`5mKMq0q45TkJLmtYy_3u$JHQVg9fA zF?`ECy-7>vZSwh->p$m9*ig=SMJpjnw7m>}O%&^o-BNy*t>WMn!7I7WRbZ6Gb{`}^ zy>o`QyunQ{F?PB@pX%8t`azwg%F!Cn%2VHwW!+1jBg;WOi2NWFJqr%4vrpDz9&o;| z4m?gh$+P_NlfR8z6=3u6Q=N>zO=M1G{6OHp_j+sUAy1 ze$0-hZ-3T0!vFlYZ+)&Y_LIc4PVVT#xejt1fggn#ue~M6tV|8(bL{)Diz({9w8Ari zK5f9d6wo-?Gwv*N3uJUjC+(%=hXUCDjsW>NE|?8rw;c3&4o&JiCu>+KDs0@fqAEl@xI8!3O3RxsrH z1Xy2kh#zkD?eVI6f=1j|--8EC1|r>OI;|50e*TAUa#3^NcuhyUG>gWJA}vT<6Td&F zT0UBHjhjhb4mdCGq&aiR9$SKY^-ZP=FWN5LPV@F|oU*`9zz>bv=`Ny8b(fwRR5US; z$8i-0@~098iFH`g7D zqk<(;LF;QhO{TiLY>|ik>X_v$todSL8f!cjVz9&MQJ6sd^F%8Mb z7LuuaF=O4n{p90}pt*LH(wC4&!uC|Ju%SQFhxoM~o~~7F8bJH~hgyeIE32}Mew2N_ zp8JVl>4VL#excYZ}0@loq@3sY>WaGIU)@XChkZe?r_ zN{tkRaR@gt^|zo3qocRF%MZ0Wx=yc4M{jlCB}Euq&stDZG8PB+GWlsWf4Q%!d3TXvhp-3n6|yufXws?_K!&_GCq`cfL{>%N)(@emgOI3_h5WDIdSl{!lev0 zwVOpz0Jz;}UnHQ%`u)QmqkM$DMjC+?MAgIvs?r*?tHsAn!~u9B6PRy9LIX{2LBlo~ zf*sHVpMggw$9-6hX_xh|;xV6R^Z?}kUxns6YPz2%pXu-B*?oq+WKI=IlM2=j07k=F zGlNQ*iKq|m+WG7`FE_d5X<*k&>7ggr`O5W*a!Hd4)@p@E@~I@-Gj5ld5Iv9J~=qx`Aa{|mne=Y7tE?H?!;GGutxe1!5h_#j&se|M^Z?QQI za5|+VNE?5tgFE=4n?nsfj#YA^cq+it=HeG{xbL*G=g=MdKSxtx)<^7OEz z-ber2e;@Xd-pjiC`}xJo^j;nC-+SDl_eKtUd*yG|d#_CSEA*b5DPN&?)@mld9noRe z0i&1;Cdq>W>JB+iD9E*nF#_ET8>JrhH%W+5t-{!WZ14Xv%(VY-+W(-~w7)9HwwLyA zF^9FZZSp4L;d>HkL#t>lH;|A26HcUw;)wY(EiYA^)-MkOWh#vmOU6mssd>Sq5-hCA zy%K52^qj9%BP^@iAzCp`zubD3_TcR`v&dqJ$V5_8rkcpp#x&jJ9$~78yaE2f^>oOh z7$DW#%7YGWpo>q(RJ55t5b`I%+DibW?h&E2tO>piVbDJrwx_r%CG}$3E>NkQ+LCUU zvokr3isDWtyQrH{HgR~*<2)kRQfB@X>yM#d^&%aIxA`MO#4_ClYfIHY@ZbiXm4D0+io)`tCrmhZiE2Lv5X;g-KmYd{T?-+-3Q_x;Xz>0 zJ*~>dQOhB9a4=3KR_PdX76$*67;mBFruujnaXnAg+jcT!d zorGy#>O9d;T1IVRd)V`1+l6URd((sZNitlT=OwqgeMw*|7_8A|^adjYwz`i|5*x)U zcJgL5s=%cV2Xr z6z94)P&X~9?NspBsNHOr&%^`wC4`P$$5{+}Qtu}2A41!y{z3yI6~N`eyBD<77R-OBX9brT^vM!G*=p_^AmYV6<>JHXCC5qWS zm&zyd{Ud|)UF2Je#(5Rx4L})a0P~d>A(Pfu4+hF8zpv>qUZO{x`BSVv7O3k03K2Sq z?xyVvgx**EL4MlRf2rz!fci~z*pC0t#f00ri zn=do~PcN-mJEMo8NA>RkzFRO4%YYd^$p`VD9*EEV0uW!ddZkaOaGxq*pgXs5=3uK^ ztvnBDeObJf1H?-DIY~*mk{GzWd{-$EuNe|edCSEz^bS9Yz2|KRXU;44m!l_4aF^S? zM&!&wt;t>SytoTaw5WUT!@R&G2{+{K`N*Tp+du>Qk~d=9HhF=<&X7-^6+yNj!ZQHx z{%w;=;T(Z|>L29hsL>!p)LIc^nTKt)E%*0rdz$Ki!(7n2*C<^(e=1ZjJ`&+z?*$Px z4ZhZ(&Bbh~X;Dzo0Tf`*U%F+iweB7@d_p~|W4V8$Q{k~Qz+JT)NTQAX%i3QvIJa$7 z0RSeiG{cD44Ypm@JGDA9UO-$blfpSgD}8ul+?H{`l2 zSxO}@_3NdcQKsh|DMg@aY0^MvM*vn-Q?JYX=p6x?3rwME`k`}f+xcotxyG(HizPU| z4RVAH&Dx*C)~ZuoPrfN6jA%*BDS#M8(E_5eBMqVsnbgo=M<5qLfh+v9=<|@Ps*v`!A2} z<6ubE&0~yeHf|#gPfJp8(m2=s4NcIy)Cp$3Oh^K-^CX+qU3ZT$u*}&8Y(Y*CN?N&X z`*lX&Nwkt^PWQLDn@NK(w4ZUjp@eNWS%zhryO%S@ZV?T^tL8kVZt5(2@lx`*Kb!?Q zkc<5ir;o^w`*@X@baa9x%_m6*~L8!8?m{3+!SJP_B7=K|qE*~y>lz}X43$IS+}ihmC; z9-Dmib@>%nk(86++cSIDZLpc{Ad~wLc~E`|>NeWM8yBWH( zs_n>Ic7IIi+;*kc$9B_TATs2H(gLEF>L=V(t2`ukh|mbthwI|MR?RyXb_u^2Ti&q# zn1?(M*}+`rc6*z%nV1CeoA?VV`a z+qtkq1oS_)f6#o`dEMENHQl-4Q4HT@ znc-^>*^gpNcQynfGcqta)!KKla5Z#@a9L1vLteOBdcGo8X8B|D#T(k^3L-t9tBQ=^ z^if9Mnenkr7f@-|kks*-*8CbPW9vbi7n6a z?~l*fOwz7~bC4sEEweV%^A>qKl|CPBxtr<7%FywKmx!w2KIZwkKx9~K;jE3~QM2~y zH$1&gxoP>4qLt6(g&%B3jw^SqjBf0dyd$kY(4Vofh0%?H*m5&&b$n@?KZ6?J>h6IH z540JHji{R~=UlrTe?+C^T9fPC$+~wX-+r|)Dc3&qmO9~gvJWp-Klu)N?ioIZ5jx+{ zWO~}T#LJM1ne$9PJ?@o7j|b7uf8q-3#1qbnEzO$e#`HWdu=8A-ndcY2HP6Z1*ivzD zqqSt(=PbgktL%A^Ud9|VWEYA_v@tJQ-<7;MwO#3d7XRRY%1P0-yqQOY#!2NE)>r2k za%YAb*5`%-%NNZ}OvRcp>=dd@2B>MS!KbYK2IEd*E)B>_9Yg(0%JU4aA~(dR6%dbM z6S_*cr`C!;A-!bH%uinDuK~$Bj!>5E51Sa?#<|NWKSDi^4|{d2?a6WU1RMFMF)r-= zZR>t&oTmQJt-*_o9-I0)y0p#Uhv4A=iizr!=l+eBaBv9s!HZslV7R3$km>WGb|1_f zr<$K&XnYG?3Z7d5Zk0vy_ed+!QY}& zvD(^Mn#aXc!rQu6_(2)_J}qcDRCo8DwmQ3wRowQ3St=65u($g(>BPvbu zpC$+K-;HiM5R9Et9-ARS*_Ff1*fgSV5$EiD%>8ABqk^$(SdpFI-%1A5HGheU2etI= zX}#C*c2bukMJDsNw}{DYnLgj zIi1!xMktTst|e4bMm0MF$q77a-GzyjUOujDiQ+?5#hx#r@TN}plBEBHuo?X!-bGZO z!FL=+dS~m;yccA@$A{;(x6jMueqY$~)4spj)5a2`JCipsgblR2@uT2G+js)L)|mjk zto=0rTOKwi+AMnnqTWDJCFo{7uwH)<0i;0rq1dZyc;}^B>GU0Y)vG*ML)9gr_}L24 z##|j!5r4UGhs_eschBo7ucX>zNq}3Q9E$&p@B`b!N66Ch;aP&0MNyO6J=qGoh>YQT z9&CzmeSPh+#?vRQx#tHAVRUe=;Zs@|b>$%i8dps`pw`Z;O^{rw`F0 zGyKo7wS9qrHH%l@!Td3P-xzS5oSkidy};+*#pLk?qxk9$-@Bg`+cWE_DL8Ah+^?M) zSq0qrTe(bQSt#+)Akw^*THRK)964lGT=}c`CrMa1o-Tto_TDae%@r-1f4TjrC4O1C zhQykE-Ojj~55mmSC2Hz`Z*aA%955BLbJomUZIyBlSI*AXw)hCDkILr&8{Kq~?KCrQ zS*BQ!Vb%#7@-^sQE9TopnEBM z)24Rb0Ke6JVGa!40L>8q`ZfO%ucaHxGX3kX{zcc*&U5+rXYtm(DrVm0nqoTIsS~4H z@C{oKv8eD*b@$xT<^!9HT4t)(_KZ5xN!4q3yQ}VejF)rH?oRe}y54_+B|GILxleU{V>|V0ONk}aF={J!s;pFB2PKt+SH z?5Xfq@jp7#mfVGtvbOgS1Y2nzhp$r_zNVWZ5HpPw4$@eqG|eJ4j@X zm--_2ee>A-`Y{w1WIg!$?Qg*64M7qg> z+X$F25Z5`gZx;gUX9veRp}C%CqIM(LZFwu5CGMy^-DCb?N*L`Rxd= z40D(H_d>Q@Sx!!Ne(@<=KN@N}KYJc{KidMO?egdR$NaE)GbHWvFNcaXdPmuT3n>1E z(KfU2E!0#micF7ZHhgn4HknZ6yv-e!Lz32C7-%&PupDV6$GKyB5UKP z-rj3{_=n!*)2;6QTUkeOAu)n6Jk%`p@z_IQ_Cq<~kI

    cfEMA5Ilrr!|v55q9y$_1`m%8|0Zl@-;E zO?{h&4(U5&kR#=vMf1-IGWOZY7gUr*_OD|Grrx=|FzTr9(1IZ|`j-qVi|zI+=r<_Z z>Cj2z4jMOc?|!1F&)y~fKYdW|8Fl@BF{kh8es`SvA69>u+~~;l{a?LAn(O<&&XOBS zx%7SH21qWw`<;v^cIxFmQ!c(m z;>pE7Dfdls@h=7J&y;v_#d)0MEf??ZPvu)DW#HvwzkJJ7#-2Kc`R^0t%Q zfXd}}y+C_kkT`R->m9j~mdnmR#ZIpAGb*587>MU@a-%Jm{i_0Yt_$RCc_0rj2K-J6 z_+1$oKf46tIZehxuK1r1%$JHl{O)&VbJ=MMjGr$9aaIN5JUyVlJ}|C+7nm!_{zPD%-zYGCejCuw3*>W$K))XtSg)o9@^ewZ&XfRO9+(#i$wRJw`DI{zYm$D? zrSBD3&nE`PLzBdr%g*|N`O-g-|9=K}_xriI#?>8xd@c#(=i0!0Zw&bTr`XTcuG<6c zdNwdlP6_0#XCVK>1MS)`FpowD^7BfdA2*Znnd|!J=D_&*HW0t0Ey|bw{nrP9yd4_I z+nm6B**?%OABWblK%6Ck^y@sz-Ndu2d>eL%lK!0$tW z_3+g|znmDD7yAUp±0`%EBjy9MmDNd9x>bIpLA?*s9>pJC2r=iER(HxKX|2J$vB zpno)w|F302(Raw+{mA$sK|G>>jZ5 zRe--M5Ko`LdgXpUI@daIaUc(82I4$Z5}(V?Gs5TUuZn=*w*u`tKhTfw1==-K{N~I5 z{%b`b|F;C%+c&VDydRi%lf+>k->H-zkpFY#r(ah&_>6cu29vEoXa`Bt% z`s%y5y-5wi`U7nzk~Q>ybgE$9hd(H D5Dm@2 literal 853840 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≥36&cZ>yqx@rI0* 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 JO{g+z{||AgM85z4 diff --git a/server/www/packages/packages-linux/x64/PIL/.libs/liblcms2-a6801db4.so.2.0.8 b/server/www/packages/packages-linux/x64/Pillow.libs/liblcms2-a6801db4.so.2.0.8 similarity index 99% rename from server/www/packages/packages-linux/x64/PIL/.libs/liblcms2-a6801db4.so.2.0.8 rename to server/www/packages/packages-linux/x64/Pillow.libs/liblcms2-a6801db4.so.2.0.8 index 6f10af240e4d9df5cd24df327db58a1ffa8115e3..4b40543839825443ab88eca3aaf4b652e3656514 100755 GIT binary patch delta 41 xcmexxS^C3e>4p}@7N!>F7M2#)Eo^J=@#bVEltm|b&t)A8vt)r5KsUB delta 41 ncmexxS^C3e>4p}@7N!>F7M2#)Eo^J=@kStn?Yr)=nQ;REYo-uD diff --git a/server/www/packages/packages-linux/x64/PIL/.libs/liblzma-6cd627ed.so.5.2.4 b/server/www/packages/packages-linux/x64/Pillow.libs/liblzma-99449165.so.5.2.5 similarity index 57% rename from server/www/packages/packages-linux/x64/PIL/.libs/liblzma-6cd627ed.so.5.2.4 rename to server/www/packages/packages-linux/x64/Pillow.libs/liblzma-99449165.so.5.2.5 index b1dd0d3029dd4e7a6e5893036de404a2cb0f33e3..3bc2e7133a31e7f0117e02421680d0b88a88f62f 100755 GIT binary patch delta 39079 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 tL^PU+#A9j^|8Q*XY#`+jwpJiV`hq` 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 VtaV?WN`)JypS~?yIW*74^ACT0L2dv5 diff --git a/server/www/packages/packages-linux/x64/PIL/.libs/libopenjp2-b3d7668a.so.2.3.1 b/server/www/packages/packages-linux/x64/Pillow.libs/libopenjp2-b3d7668a.so.2.3.1 similarity index 99% rename from server/www/packages/packages-linux/x64/PIL/.libs/libopenjp2-b3d7668a.so.2.3.1 rename to server/www/packages/packages-linux/x64/Pillow.libs/libopenjp2-b3d7668a.so.2.3.1 index c6769152b9161250d4933148e13ec56ae2152e48..307cffb264d710d428f1733612c09211aceb9008 100755 GIT binary patch delta 45 zcmcccU-rU(*@hOz7N!>F7M2#)7Pc+ys^$DSnMwHtsd-riMta5hdgj|r%Gu{|005hI B5MuxU delta 45 ocmcccU-rU(*@hOz7N!>F7M2#)7Pc+ys^$CFEi5}j_;NCn3i8qo&Gd@%^$g9X9}i*i1ONiO4FdoG delta 37 hcmbQRN^rs|!G;#b7N!>FEi5}j_##li^y48co&W-Q4NCw3 diff --git a/server/www/packages/packages-linux/x64/Pillow.libs/libtiff-41910f6d.so.5.5.0 b/server/www/packages/packages-linux/x64/Pillow.libs/libtiff-41910f6d.so.5.5.0 new file mode 100755 index 0000000000000000000000000000000000000000..f2330c20d18ca1b16fcab9f8b2f9394003763abd GIT binary patch literal 661280 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