From 7bf872d78f632a220038e6417006a008476a75fa Mon Sep 17 00:00:00 2001 From: Ivan Maslov Date: Wed, 17 Apr 2019 22:49:55 +0300 Subject: [PATCH] #PythonPilInstalled --- README.md | 2 +- .../Lib/__pycache__/__future__.cpython-37.pyc | Bin 4157 -> 4157 bytes .../__pycache__/_bootlocale.cpython-37.pyc | Bin 1274 -> 1274 bytes .../_collections_abc.cpython-37.pyc | Bin 28967 -> 28967 bytes .../__pycache__/_compat_pickle.cpython-37.pyc | Bin 5833 -> 5833 bytes .../__pycache__/_compression.cpython-37.pyc | Bin 4149 -> 4149 bytes .../__pycache__/_markupbase.cpython-37.pyc | Bin 7810 -> 7810 bytes .../__pycache__/_sitebuiltins.cpython-37.pyc | Bin 3490 -> 3490 bytes .../Lib/__pycache__/_strptime.cpython-37.pyc | Bin 16129 -> 16129 bytes .../__pycache__/_weakrefset.cpython-37.pyc | Bin 7487 -> 7487 bytes .../Lib/__pycache__/abc.cpython-37.pyc | Bin 6476 -> 6476 bytes .../Lib/__pycache__/base64.cpython-37.pyc | Bin 17013 -> 17013 bytes .../Lib/__pycache__/bisect.cpython-37.pyc | Bin 2723 -> 2723 bytes .../Lib/__pycache__/bz2.cpython-37.pyc | Bin 11206 -> 11206 bytes .../Lib/__pycache__/calendar.cpython-37.pyc | Bin 27449 -> 27449 bytes .../Lib/__pycache__/cgi.cpython-37.pyc | Bin 27216 -> 27216 bytes .../Lib/__pycache__/codecs.cpython-37.pyc | Bin 33923 -> 33923 bytes .../Lib/__pycache__/compileall.cpython-37.pyc | Bin 9131 -> 9131 bytes .../__pycache__/configparser.cpython-37.pyc | Bin 45905 -> 45905 bytes .../Lib/__pycache__/contextlib.cpython-37.pyc | Bin 19925 -> 19925 bytes .../Lib/__pycache__/copy.cpython-37.pyc | Bin 7126 -> 7126 bytes .../Lib/__pycache__/copyreg.cpython-37.pyc | Bin 4269 -> 4269 bytes .../Lib/__pycache__/csv.cpython-37.pyc | Bin 11857 -> 11857 bytes .../Lib/__pycache__/datetime.cpython-37.pyc | Bin 57274 -> 57274 bytes .../Lib/__pycache__/decimal.cpython-37.pyc | Bin 398 -> 398 bytes .../Lib/__pycache__/dis.cpython-37.pyc | Bin 15230 -> 15230 bytes .../Lib/__pycache__/enum.cpython-37.pyc | Bin 24287 -> 24287 bytes .../Lib/__pycache__/fnmatch.cpython-37.pyc | Bin 3362 -> 3362 bytes .../Lib/__pycache__/functools.cpython-37.pyc | Bin 23974 -> 23974 bytes .../__pycache__/genericpath.cpython-37.pyc | Bin 3773 -> 3773 bytes .../Lib/__pycache__/getopt.cpython-37.pyc | Bin 6264 -> 6264 bytes .../Lib/__pycache__/getpass.cpython-37.pyc | Bin 4189 -> 4189 bytes .../Lib/__pycache__/gettext.cpython-37.pyc | Bin 14193 -> 14193 bytes .../Lib/__pycache__/glob.cpython-37.pyc | Bin 4284 -> 4284 bytes .../Lib/__pycache__/gzip.cpython-37.pyc | Bin 17210 -> 17210 bytes .../Lib/__pycache__/hashlib.cpython-37.pyc | Bin 6616 -> 6616 bytes .../Lib/__pycache__/heapq.cpython-37.pyc | Bin 14387 -> 14387 bytes .../Lib/__pycache__/hmac.cpython-37.pyc | Bin 6138 -> 6138 bytes .../Lib/__pycache__/inspect.cpython-37.pyc | Bin 80057 -> 80057 bytes .../Lib/__pycache__/io.cpython-37.pyc | Bin 3434 -> 3434 bytes .../Lib/__pycache__/ipaddress.cpython-37.pyc | Bin 63019 -> 63019 bytes .../Lib/__pycache__/keyword.cpython-37.pyc | Bin 1834 -> 1834 bytes .../Lib/__pycache__/linecache.cpython-37.pyc | Bin 3814 -> 3814 bytes .../Lib/__pycache__/locale.cpython-37.pyc | Bin 34580 -> 34580 bytes .../Lib/__pycache__/lzma.cpython-37.pyc | Bin 11964 -> 11964 bytes .../Lib/__pycache__/mimetypes.cpython-37.pyc | Bin 15503 -> 15503 bytes .../Lib/__pycache__/netrc.cpython-37.pyc | Bin 3788 -> 3788 bytes .../Lib/__pycache__/ntpath.cpython-37.pyc | Bin 13029 -> 13029 bytes .../Lib/__pycache__/nturl2path.cpython-37.pyc | Bin 1640 -> 1640 bytes .../Lib/__pycache__/numbers.cpython-37.pyc | Bin 12217 -> 12217 bytes .../Lib/__pycache__/opcode.cpython-37.pyc | Bin 5403 -> 5403 bytes .../Lib/__pycache__/operator.cpython-37.pyc | Bin 13925 -> 13925 bytes .../Lib/__pycache__/optparse.cpython-37.pyc | Bin 47918 -> 47918 bytes .../Lib/__pycache__/os.cpython-37.pyc | Bin 29718 -> 29718 bytes .../Lib/__pycache__/pickle.cpython-37.pyc | Bin 42991 -> 42991 bytes .../Lib/__pycache__/pkgutil.cpython-37.pyc | Bin 16385 -> 16385 bytes .../Lib/__pycache__/platform.cpython-37.pyc | Bin 28245 -> 28245 bytes .../Lib/__pycache__/plistlib.cpython-37.pyc | Bin 25120 -> 25120 bytes .../Lib/__pycache__/posixpath.cpython-37.pyc | Bin 10455 -> 10455 bytes .../Lib/__pycache__/pprint.cpython-37.pyc | Bin 15844 -> 15844 bytes .../Lib/__pycache__/py_compile.cpython-37.pyc | Bin 7216 -> 7216 bytes .../Lib/__pycache__/queue.cpython-37.pyc | Bin 11497 -> 11497 bytes .../Lib/__pycache__/quopri.cpython-37.pyc | Bin 5796 -> 5796 bytes .../Lib/__pycache__/random.cpython-37.pyc | Bin 19419 -> 19419 bytes .../Lib/__pycache__/re.cpython-37.pyc | Bin 13829 -> 13829 bytes .../Lib/__pycache__/reprlib.cpython-37.pyc | Bin 5375 -> 5375 bytes .../Lib/__pycache__/runpy.cpython-37.pyc | Bin 7970 -> 7970 bytes .../Lib/__pycache__/selectors.cpython-37.pyc | Bin 16973 -> 16973 bytes .../Lib/__pycache__/shlex.cpython-37.pyc | Bin 7015 -> 7015 bytes .../Lib/__pycache__/shutil.cpython-37.pyc | Bin 30889 -> 30889 bytes .../Lib/__pycache__/signal.cpython-37.pyc | Bin 2537 -> 2537 bytes .../Lib/__pycache__/site.cpython-37.pyc | Bin 16551 -> 16551 bytes .../Lib/__pycache__/socket.cpython-37.pyc | Bin 22046 -> 22046 bytes .../__pycache__/socketserver.cpython-37.pyc | Bin 24223 -> 24223 bytes .../__pycache__/sre_compile.cpython-37.pyc | Bin 15228 -> 15228 bytes .../__pycache__/sre_constants.cpython-37.pyc | Bin 6316 -> 6316 bytes .../Lib/__pycache__/sre_parse.cpython-37.pyc | Bin 21382 -> 21382 bytes .../Lib/__pycache__/ssl.cpython-37.pyc | Bin 39796 -> 39796 bytes .../Lib/__pycache__/stat.cpython-37.pyc | Bin 3898 -> 3898 bytes .../Lib/__pycache__/string.cpython-37.pyc | Bin 7860 -> 7860 bytes .../Lib/__pycache__/stringprep.cpython-37.pyc | Bin 10057 -> 10057 bytes .../Lib/__pycache__/struct.cpython-37.pyc | Bin 359 -> 359 bytes .../Lib/__pycache__/subprocess.cpython-37.pyc | Bin 38790 -> 38790 bytes .../Lib/__pycache__/sysconfig.cpython-37.pyc | Bin 15299 -> 15299 bytes .../Lib/__pycache__/tarfile.cpython-37.pyc | Bin 61866 -> 61866 bytes .../Lib/__pycache__/tempfile.cpython-37.pyc | Bin 22170 -> 22170 bytes .../Lib/__pycache__/textwrap.cpython-37.pyc | Bin 13637 -> 13637 bytes .../Lib/__pycache__/threading.cpython-37.pyc | Bin 37360 -> 37360 bytes .../Lib/__pycache__/token.cpython-37.pyc | Bin 3624 -> 3624 bytes .../Lib/__pycache__/tokenize.cpython-37.pyc | Bin 17856 -> 17856 bytes .../Lib/__pycache__/traceback.cpython-37.pyc | Bin 19648 -> 19648 bytes .../Lib/__pycache__/types.cpython-37.pyc | Bin 8999 -> 8999 bytes .../Lib/__pycache__/uu.cpython-37.pyc | Bin 3638 -> 3638 bytes .../Lib/__pycache__/warnings.cpython-37.pyc | Bin 13974 -> 13974 bytes .../Lib/__pycache__/weakref.cpython-37.pyc | Bin 19135 -> 19135 bytes .../Lib/__pycache__/zipfile.cpython-37.pyc | Bin 49897 -> 49897 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 46635 -> 46635 bytes .../__pycache__/abc.cpython-37.pyc | Bin 230 -> 230 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 16174 -> 16174 bytes .../ctypes/__pycache__/_endian.cpython-37.pyc | Bin 1981 -> 1981 bytes .../__pycache__/wintypes.cpython-37.pyc | Bin 5142 -> 5142 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 423 -> 423 bytes .../__pycache__/archive_util.cpython-37.pyc | Bin 6557 -> 6557 bytes .../distutils/__pycache__/cmd.cpython-37.pyc | Bin 13933 -> 13933 bytes .../__pycache__/config.cpython-37.pyc | Bin 3510 -> 3510 bytes .../distutils/__pycache__/core.cpython-37.pyc | Bin 6635 -> 6635 bytes .../__pycache__/debug.cpython-37.pyc | Bin 233 -> 233 bytes .../__pycache__/dep_util.cpython-37.pyc | Bin 2749 -> 2749 bytes .../__pycache__/dir_util.cpython-37.pyc | Bin 5843 -> 5843 bytes .../distutils/__pycache__/dist.cpython-37.pyc | Bin 34464 -> 34464 bytes .../__pycache__/errors.cpython-37.pyc | Bin 5519 -> 5519 bytes .../__pycache__/extension.cpython-37.pyc | Bin 6930 -> 6930 bytes .../__pycache__/fancy_getopt.cpython-37.pyc | Bin 10642 -> 10642 bytes .../__pycache__/file_util.cpython-37.pyc | Bin 5928 -> 5928 bytes .../distutils/__pycache__/log.cpython-37.pyc | Bin 2344 -> 2344 bytes .../__pycache__/spawn.cpython-37.pyc | Bin 5034 -> 5034 bytes .../__pycache__/sysconfig.cpython-37.pyc | Bin 11883 -> 11883 bytes .../distutils/__pycache__/util.cpython-37.pyc | Bin 15080 -> 15080 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 580 -> 580 bytes .../command/__pycache__/build.cpython-37.pyc | Bin 3860 -> 3860 bytes .../__pycache__/install.cpython-37.pyc | Bin 13544 -> 13544 bytes .../email/__pycache__/__init__.cpython-37.pyc | Bin 1716 -> 1716 bytes .../__pycache__/_encoded_words.cpython-37.pyc | Bin 5633 -> 5633 bytes .../__pycache__/_parseaddr.cpython-37.pyc | Bin 12373 -> 12373 bytes .../__pycache__/_policybase.cpython-37.pyc | Bin 14875 -> 14875 bytes .../__pycache__/base64mime.cpython-37.pyc | Bin 3260 -> 3260 bytes .../email/__pycache__/charset.cpython-37.pyc | Bin 11554 -> 11554 bytes .../email/__pycache__/encoders.cpython-37.pyc | Bin 1689 -> 1689 bytes .../email/__pycache__/errors.cpython-37.pyc | Bin 6216 -> 6216 bytes .../__pycache__/feedparser.cpython-37.pyc | Bin 10650 -> 10650 bytes .../email/__pycache__/header.cpython-37.pyc | Bin 16405 -> 16405 bytes .../__pycache__/iterators.cpython-37.pyc | Bin 1957 -> 1957 bytes .../email/__pycache__/message.cpython-37.pyc | Bin 37965 -> 37965 bytes .../email/__pycache__/parser.cpython-37.pyc | Bin 5772 -> 5772 bytes .../__pycache__/quoprimime.cpython-37.pyc | Bin 7689 -> 7689 bytes .../email/__pycache__/utils.cpython-37.pyc | Bin 9492 -> 9492 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 3972 -> 3972 bytes .../__pycache__/aliases.cpython-37.pyc | Bin 6321 -> 6321 bytes .../__pycache__/cp1251.cpython-37.pyc | Bin 2478 -> 2478 bytes .../__pycache__/cp437.cpython-37.pyc | Bin 7868 -> 7868 bytes .../encodings/__pycache__/idna.cpython-37.pyc | Bin 5749 -> 5749 bytes .../__pycache__/latin_1.cpython-37.pyc | Bin 1921 -> 1921 bytes .../__pycache__/utf_16_be.cpython-37.pyc | Bin 1659 -> 1659 bytes .../__pycache__/utf_16_le.cpython-37.pyc | Bin 1659 -> 1659 bytes .../__pycache__/utf_8.cpython-37.pyc | Bin 1639 -> 1639 bytes .../html/__pycache__/__init__.cpython-37.pyc | Bin 3422 -> 3422 bytes .../html/__pycache__/entities.cpython-37.pyc | Bin 50494 -> 50494 bytes .../html/__pycache__/parser.cpython-37.pyc | Bin 11132 -> 11132 bytes .../http/__pycache__/__init__.cpython-37.pyc | Bin 5947 -> 5947 bytes .../http/__pycache__/client.cpython-37.pyc | Bin 34073 -> 34073 bytes .../http/__pycache__/cookiejar.cpython-37.pyc | Bin 53432 -> 53432 bytes .../http/__pycache__/cookies.cpython-37.pyc | Bin 15269 -> 15269 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 3757 -> 3757 bytes .../importlib/__pycache__/abc.cpython-37.pyc | Bin 13512 -> 13512 bytes .../__pycache__/machinery.cpython-37.pyc | Bin 997 -> 997 bytes .../importlib/__pycache__/util.cpython-37.pyc | Bin 9381 -> 9381 bytes .../json/__pycache__/__init__.cpython-37.pyc | Bin 12363 -> 12363 bytes .../json/__pycache__/decoder.cpython-37.pyc | Bin 9849 -> 9849 bytes .../json/__pycache__/encoder.cpython-37.pyc | Bin 11331 -> 11331 bytes .../json/__pycache__/scanner.cpython-37.pyc | Bin 2021 -> 2021 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 62583 -> 62583 bytes .../logging/__pycache__/config.cpython-37.pyc | Bin 23040 -> 23040 bytes .../__pycache__/handlers.cpython-37.pyc | Bin 43008 -> 43008 bytes .../Lib/site-packages/PIL/BdfFontFile.py | 119 + .../Lib/site-packages/PIL/BlpImagePlugin.py | 435 +++ .../Lib/site-packages/PIL/BmpImagePlugin.py | 369 ++ .../site-packages/PIL/BufrStubImagePlugin.py | 72 + .../Lib/site-packages/PIL/ContainerIO.py | 118 + .../Lib/site-packages/PIL/CurImagePlugin.py | 80 + .../Lib/site-packages/PIL/DcxImagePlugin.py | 98 + .../Lib/site-packages/PIL/DdsImagePlugin.py | 182 + .../Lib/site-packages/PIL/EpsImagePlugin.py | 419 +++ .../Lib/site-packages/PIL/ExifTags.py | 315 ++ .../site-packages/PIL/FitsStubImagePlugin.py | 75 + .../Lib/site-packages/PIL/FliImagePlugin.py | 177 + .../Lib/site-packages/PIL/FontFile.py | 113 + .../Lib/site-packages/PIL/FpxImagePlugin.py | 227 ++ .../Lib/site-packages/PIL/FtexImagePlugin.py | 107 + .../Lib/site-packages/PIL/GbrImagePlugin.py | 96 + .../Lib/site-packages/PIL/GdImageFile.py | 87 + .../Lib/site-packages/PIL/GifImagePlugin.py | 856 +++++ .../Lib/site-packages/PIL/GimpGradientFile.py | 138 + .../Lib/site-packages/PIL/GimpPaletteFile.py | 57 + .../site-packages/PIL/GribStubImagePlugin.py | 73 + .../site-packages/PIL/Hdf5StubImagePlugin.py | 72 + .../Lib/site-packages/PIL/IcnsImagePlugin.py | 397 ++ .../Lib/site-packages/PIL/IcoImagePlugin.py | 299 ++ .../Lib/site-packages/PIL/ImImagePlugin.py | 358 ++ .../Lib/site-packages/PIL/Image.py | 3192 +++++++++++++++++ .../Lib/site-packages/PIL/ImageChops.py | 292 ++ .../Lib/site-packages/PIL/ImageCms.py | 954 +++++ .../Lib/site-packages/PIL/ImageColor.py | 315 ++ .../Lib/site-packages/PIL/ImageDraw.py | 447 +++ .../Lib/site-packages/PIL/ImageDraw2.py | 108 + .../Lib/site-packages/PIL/ImageEnhance.py | 101 + .../Lib/site-packages/PIL/ImageFile.py | 674 ++++ .../Lib/site-packages/PIL/ImageFilter.py | 483 +++ .../Lib/site-packages/PIL/ImageFont.py | 480 +++ .../Lib/site-packages/PIL/ImageGrab.py | 81 + .../Lib/site-packages/PIL/ImageMath.py | 271 ++ .../Lib/site-packages/PIL/ImageMode.py | 56 + .../Lib/site-packages/PIL/ImageMorph.py | 245 ++ .../Lib/site-packages/PIL/ImageOps.py | 551 +++ .../Lib/site-packages/PIL/ImagePalette.py | 216 ++ .../Lib/site-packages/PIL/ImagePath.py | 20 + .../Lib/site-packages/PIL/ImageQt.py | 229 ++ .../Lib/site-packages/PIL/ImageSequence.py | 56 + .../Lib/site-packages/PIL/ImageShow.py | 223 ++ .../Lib/site-packages/PIL/ImageStat.py | 148 + .../Lib/site-packages/PIL/ImageTk.py | 301 ++ .../Lib/site-packages/PIL/ImageTransform.py | 98 + .../Lib/site-packages/PIL/ImageWin.py | 228 ++ .../Lib/site-packages/PIL/ImtImagePlugin.py | 97 + .../Lib/site-packages/PIL/IptcImagePlugin.py | 231 ++ .../site-packages/PIL/Jpeg2KImagePlugin.py | 291 ++ .../Lib/site-packages/PIL/JpegImagePlugin.py | 809 +++++ .../Lib/site-packages/PIL/JpegPresets.py | 242 ++ .../site-packages/PIL/McIdasImagePlugin.py | 77 + .../Lib/site-packages/PIL/MicImagePlugin.py | 117 + .../Lib/site-packages/PIL/MpegImagePlugin.py | 87 + .../Lib/site-packages/PIL/MpoImagePlugin.py | 144 + .../Lib/site-packages/PIL/MspImagePlugin.py | 195 + .../Lib/site-packages/PIL/PSDraw.py | 237 ++ .../Lib/site-packages/PIL/PaletteFile.py | 55 + .../Lib/site-packages/PIL/PalmImagePlugin.py | 238 ++ .../Lib/site-packages/PIL/PcdImagePlugin.py | 68 + .../Lib/site-packages/PIL/PcfFontFile.py | 246 ++ .../Lib/site-packages/PIL/PcxImagePlugin.py | 184 + .../Lib/site-packages/PIL/PdfImagePlugin.py | 248 ++ .../Lib/site-packages/PIL/PdfParser.py | 968 +++++ .../Lib/site-packages/PIL/PixarImagePlugin.py | 73 + .../Lib/site-packages/PIL/PngImagePlugin.py | 943 +++++ .../Lib/site-packages/PIL/PpmImagePlugin.py | 169 + .../Lib/site-packages/PIL/PsdImagePlugin.py | 306 ++ .../Lib/site-packages/PIL/PyAccess.py | 336 ++ .../Lib/site-packages/PIL/SgiImagePlugin.py | 231 ++ .../site-packages/PIL/SpiderImagePlugin.py | 322 ++ .../Lib/site-packages/PIL/SunImagePlugin.py | 139 + .../Lib/site-packages/PIL/TarIO.py | 72 + .../Lib/site-packages/PIL/TgaImagePlugin.py | 231 ++ .../Lib/site-packages/PIL/TiffImagePlugin.py | 1859 ++++++++++ .../Lib/site-packages/PIL/TiffTags.py | 457 +++ .../Lib/site-packages/PIL/WalImageFile.py | 128 + .../Lib/site-packages/PIL/WebPImagePlugin.py | 353 ++ .../Lib/site-packages/PIL/WmfImagePlugin.py | 171 + .../site-packages/PIL/XVThumbImagePlugin.py | 82 + .../Lib/site-packages/PIL/XbmImagePlugin.py | 98 + .../Lib/site-packages/PIL/XpmImagePlugin.py | 131 + .../Lib/site-packages/PIL/__init__.py | 71 + .../__pycache__/BdfFontFile.cpython-37.pyc | Bin 0 -> 2381 bytes .../__pycache__/BlpImagePlugin.cpython-37.pyc | Bin 0 -> 10470 bytes .../__pycache__/BmpImagePlugin.cpython-37.pyc | Bin 0 -> 7102 bytes .../BufrStubImagePlugin.cpython-37.pyc | Bin 0 -> 1619 bytes .../__pycache__/ContainerIO.cpython-37.pyc | Bin 0 -> 2577 bytes .../__pycache__/CurImagePlugin.cpython-37.pyc | Bin 0 -> 1431 bytes .../__pycache__/DcxImagePlugin.cpython-37.pyc | Bin 0 -> 2051 bytes .../__pycache__/DdsImagePlugin.cpython-37.pyc | Bin 0 -> 4447 bytes .../__pycache__/EpsImagePlugin.cpython-37.pyc | Bin 0 -> 7699 bytes .../PIL/__pycache__/ExifTags.cpython-37.pyc | Bin 0 -> 7321 bytes .../FitsStubImagePlugin.cpython-37.pyc | Bin 0 -> 1607 bytes .../__pycache__/FliImagePlugin.cpython-37.pyc | Bin 0 -> 3975 bytes .../PIL/__pycache__/FontFile.cpython-37.pyc | Bin 0 -> 2249 bytes .../__pycache__/FpxImagePlugin.cpython-37.pyc | Bin 0 -> 3598 bytes .../FtexImagePlugin.cpython-37.pyc | Bin 0 -> 3456 bytes .../__pycache__/GbrImagePlugin.cpython-37.pyc | Bin 0 -> 1848 bytes .../__pycache__/GdImageFile.cpython-37.pyc | Bin 0 -> 1730 bytes .../__pycache__/GifImagePlugin.cpython-37.pyc | Bin 0 -> 16049 bytes .../GimpGradientFile.cpython-37.pyc | Bin 0 -> 3066 bytes .../GimpPaletteFile.cpython-37.pyc | Bin 0 -> 1321 bytes .../GribStubImagePlugin.cpython-37.pyc | Bin 0 -> 1661 bytes .../Hdf5StubImagePlugin.cpython-37.pyc | Bin 0 -> 1607 bytes .../IcnsImagePlugin.cpython-37.pyc | Bin 0 -> 9285 bytes .../__pycache__/IcoImagePlugin.cpython-37.pyc | Bin 0 -> 6570 bytes .../__pycache__/ImImagePlugin.cpython-37.pyc | Bin 0 -> 6576 bytes .../PIL/__pycache__/Image.cpython-37.pyc | Bin 0 -> 85870 bytes .../PIL/__pycache__/ImageChops.cpython-37.pyc | Bin 0 -> 7190 bytes .../PIL/__pycache__/ImageCms.cpython-37.pyc | Bin 0 -> 31484 bytes .../PIL/__pycache__/ImageColor.cpython-37.pyc | Bin 0 -> 6395 bytes .../PIL/__pycache__/ImageDraw.cpython-37.pyc | Bin 0 -> 11643 bytes .../PIL/__pycache__/ImageDraw2.cpython-37.pyc | Bin 0 -> 3763 bytes .../__pycache__/ImageEnhance.cpython-37.pyc | Bin 0 -> 3550 bytes .../PIL/__pycache__/ImageFile.cpython-37.pyc | Bin 0 -> 14036 bytes .../__pycache__/ImageFilter.cpython-37.pyc | Bin 0 -> 16563 bytes .../PIL/__pycache__/ImageFont.cpython-37.pyc | Bin 0 -> 18870 bytes .../PIL/__pycache__/ImageGrab.cpython-37.pyc | Bin 0 -> 1667 bytes .../PIL/__pycache__/ImageMath.cpython-37.pyc | Bin 0 -> 8300 bytes .../PIL/__pycache__/ImageMode.cpython-37.pyc | Bin 0 -> 1249 bytes .../PIL/__pycache__/ImageMorph.cpython-37.pyc | Bin 0 -> 7379 bytes .../PIL/__pycache__/ImageOps.cpython-37.pyc | Bin 0 -> 14403 bytes .../__pycache__/ImagePalette.cpython-37.pyc | Bin 0 -> 5500 bytes .../PIL/__pycache__/ImagePath.cpython-37.pyc | Bin 0 -> 222 bytes .../PIL/__pycache__/ImageQt.cpython-37.pyc | Bin 0 -> 4693 bytes .../__pycache__/ImageSequence.cpython-37.pyc | Bin 0 -> 1529 bytes .../PIL/__pycache__/ImageShow.cpython-37.pyc | Bin 0 -> 6097 bytes .../PIL/__pycache__/ImageStat.cpython-37.pyc | Bin 0 -> 3718 bytes .../PIL/__pycache__/ImageTk.cpython-37.pyc | Bin 0 -> 7692 bytes .../__pycache__/ImageTransform.cpython-37.pyc | Bin 0 -> 3473 bytes .../PIL/__pycache__/ImageWin.cpython-37.pyc | Bin 0 -> 8026 bytes .../__pycache__/ImtImagePlugin.cpython-37.pyc | Bin 0 -> 1248 bytes .../IptcImagePlugin.cpython-37.pyc | Bin 0 -> 4339 bytes .../Jpeg2KImagePlugin.cpython-37.pyc | Bin 0 -> 5611 bytes .../JpegImagePlugin.cpython-37.pyc | Bin 0 -> 16889 bytes .../__pycache__/JpegPresets.cpython-37.pyc | Bin 0 -> 5184 bytes .../McIdasImagePlugin.cpython-37.pyc | Bin 0 -> 1362 bytes .../__pycache__/MicImagePlugin.cpython-37.pyc | Bin 0 -> 2297 bytes .../MpegImagePlugin.cpython-37.pyc | Bin 0 -> 1940 bytes .../__pycache__/MpoImagePlugin.cpython-37.pyc | Bin 0 -> 3667 bytes .../__pycache__/MspImagePlugin.cpython-37.pyc | Bin 0 -> 3108 bytes .../PIL/__pycache__/PSDraw.cpython-37.pyc | Bin 0 -> 5816 bytes .../__pycache__/PaletteFile.cpython-37.pyc | Bin 0 -> 1285 bytes .../PalmImagePlugin.cpython-37.pyc | Bin 0 -> 7073 bytes .../__pycache__/PcdImagePlugin.cpython-37.pyc | Bin 0 -> 1212 bytes .../__pycache__/PcfFontFile.cpython-37.pyc | Bin 0 -> 4800 bytes .../__pycache__/PcxImagePlugin.cpython-37.pyc | Bin 0 -> 3561 bytes .../__pycache__/PdfImagePlugin.cpython-37.pyc | Bin 0 -> 3687 bytes .../PIL/__pycache__/PdfParser.cpython-37.pyc | Bin 0 -> 27143 bytes .../PixarImagePlugin.cpython-37.pyc | Bin 0 -> 1182 bytes .../__pycache__/PngImagePlugin.cpython-37.pyc | Bin 0 -> 20486 bytes .../__pycache__/PpmImagePlugin.cpython-37.pyc | Bin 0 -> 3044 bytes .../__pycache__/PsdImagePlugin.cpython-37.pyc | Bin 0 -> 4931 bytes .../PIL/__pycache__/PyAccess.cpython-37.pyc | Bin 0 -> 11081 bytes .../__pycache__/SgiImagePlugin.cpython-37.pyc | Bin 0 -> 4024 bytes .../SpiderImagePlugin.cpython-37.pyc | Bin 0 -> 6559 bytes .../__pycache__/SunImagePlugin.cpython-37.pyc | Bin 0 -> 1948 bytes .../PIL/__pycache__/TarIO.cpython-37.pyc | Bin 0 -> 1588 bytes .../__pycache__/TgaImagePlugin.cpython-37.pyc | Bin 0 -> 3728 bytes .../TiffImagePlugin.cpython-37.pyc | Bin 0 -> 45750 bytes .../PIL/__pycache__/TiffTags.cpython-37.pyc | Bin 0 -> 9298 bytes .../__pycache__/WalImageFile.cpython-37.pyc | Bin 0 -> 2159 bytes .../WebPImagePlugin.cpython-37.pyc | Bin 0 -> 7358 bytes .../__pycache__/WmfImagePlugin.cpython-37.pyc | Bin 0 -> 3179 bytes .../XVThumbImagePlugin.cpython-37.pyc | Bin 0 -> 1457 bytes .../__pycache__/XbmImagePlugin.cpython-37.pyc | Bin 0 -> 2042 bytes .../__pycache__/XpmImagePlugin.cpython-37.pyc | Bin 0 -> 2264 bytes .../PIL/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 1634 bytes .../PIL/__pycache__/_binary.cpython-37.pyc | Bin 0 -> 2571 bytes .../_tkinter_finder.cpython-37.pyc | Bin 0 -> 559 bytes .../PIL/__pycache__/_util.cpython-37.pyc | Bin 0 -> 1472 bytes .../PIL/__pycache__/_version.cpython-37.pyc | Bin 0 -> 184 bytes .../PIL/__pycache__/features.cpython-37.pyc | Bin 0 -> 2589 bytes .../Lib/site-packages/PIL/_binary.py | 94 + .../site-packages/PIL/_imaging.cp37-win32.pyd | Bin 0 -> 2152448 bytes .../PIL/_imagingcms.cp37-win32.pyd | Bin 0 -> 190976 bytes .../PIL/_imagingft.cp37-win32.pyd | Bin 0 -> 494592 bytes .../PIL/_imagingmath.cp37-win32.pyd | Bin 0 -> 17408 bytes .../PIL/_imagingmorph.cp37-win32.pyd | Bin 0 -> 10240 bytes .../PIL/_imagingtk.cp37-win32.pyd | Bin 0 -> 12800 bytes .../Lib/site-packages/PIL/_tkinter_finder.py | 20 + .../Lib/site-packages/PIL/_util.py | 37 + .../Lib/site-packages/PIL/_version.py | 2 + .../site-packages/PIL/_webp.cp37-win32.pyd | Bin 0 -> 439296 bytes .../Lib/site-packages/PIL/features.py | 86 + .../Pillow-6.0.0.dist-info/INSTALLER | 1 + .../Pillow-6.0.0.dist-info/LICENSE | 16 + .../Pillow-6.0.0.dist-info/METADATA | 116 + .../Pillow-6.0.0.dist-info/RECORD | 196 + .../Pillow-6.0.0.dist-info/WHEEL | 5 + .../Pillow-6.0.0.dist-info/top_level.txt | 1 + .../Pillow-6.0.0.dist-info/zip-safe | 1 + .../pip/__pycache__/__init__.cpython-37.pyc | Bin 200 -> 200 bytes .../pip/__pycache__/__main__.cpython-37.pyc | Bin 452 -> 452 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 1844 -> 1844 bytes .../__pycache__/build_env.cpython-37.pyc | Bin 7457 -> 7457 bytes .../__pycache__/cache.cpython-37.pyc | Bin 7052 -> 7052 bytes .../__pycache__/configuration.cpython-37.pyc | Bin 9837 -> 9837 bytes .../__pycache__/download.cpython-37.pyc | Bin 21173 -> 21173 bytes .../__pycache__/exceptions.cpython-37.pyc | Bin 11744 -> 11744 bytes .../__pycache__/index.cpython-37.pyc | Bin 25254 -> 25254 bytes .../__pycache__/locations.cpython-37.pyc | Bin 4431 -> 4431 bytes .../__pycache__/pep425tags.cpython-37.pyc | Bin 8163 -> 8163 bytes .../__pycache__/pyproject.cpython-37.pyc | Bin 3180 -> 3180 bytes .../__pycache__/resolve.cpython-37.pyc | Bin 9098 -> 9098 bytes .../__pycache__/wheel.cpython-37.pyc | Bin 25931 -> 25931 bytes .../cli/__pycache__/__init__.cpython-37.pyc | Bin 275 -> 275 bytes .../__pycache__/autocompletion.cpython-37.pyc | Bin 5088 -> 5088 bytes .../__pycache__/base_command.cpython-37.pyc | Bin 7816 -> 7816 bytes .../cli/__pycache__/cmdoptions.cpython-37.pyc | Bin 16891 -> 16891 bytes .../__pycache__/main_parser.cpython-37.pyc | Bin 2361 -> 2361 bytes .../cli/__pycache__/parser.cpython-37.pyc | Bin 8939 -> 8939 bytes .../__pycache__/status_codes.cpython-37.pyc | Bin 404 -> 404 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 2503 -> 2503 bytes .../commands/__pycache__/check.cpython-37.pyc | Bin 1328 -> 1328 bytes .../__pycache__/completion.cpython-37.pyc | Bin 3077 -> 3077 bytes .../__pycache__/configuration.cpython-37.pyc | Bin 6429 -> 6429 bytes .../__pycache__/download.cpython-37.pyc | Bin 4716 -> 4716 bytes .../__pycache__/freeze.cpython-37.pyc | Bin 2873 -> 2873 bytes .../commands/__pycache__/hash.cpython-37.pyc | Bin 2067 -> 2067 bytes .../commands/__pycache__/help.cpython-37.pyc | Bin 1243 -> 1243 bytes .../__pycache__/install.cpython-37.pyc | Bin 12460 -> 12460 bytes .../commands/__pycache__/list.cpython-37.pyc | Bin 8709 -> 8709 bytes .../__pycache__/search.cpython-37.pyc | Bin 4309 -> 4309 bytes .../commands/__pycache__/show.cpython-37.pyc | Bin 5890 -> 5890 bytes .../__pycache__/uninstall.cpython-37.pyc | Bin 2699 -> 2699 bytes .../commands/__pycache__/wheel.cpython-37.pyc | Bin 5002 -> 5002 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 263 -> 263 bytes .../__pycache__/candidate.cpython-37.pyc | Bin 1312 -> 1312 bytes .../__pycache__/format_control.cpython-37.pyc | Bin 2266 -> 2266 bytes .../models/__pycache__/index.cpython-37.pyc | Bin 1167 -> 1167 bytes .../models/__pycache__/link.cpython-37.pyc | Bin 5001 -> 5001 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 199 -> 199 bytes .../__pycache__/check.cpython-37.pyc | Bin 3629 -> 3629 bytes .../__pycache__/freeze.cpython-37.pyc | Bin 5614 -> 5614 bytes .../__pycache__/prepare.cpython-37.pyc | Bin 10275 -> 10275 bytes .../req/__pycache__/__init__.cpython-37.pyc | Bin 1696 -> 1696 bytes .../__pycache__/constructors.cpython-37.pyc | Bin 7616 -> 7616 bytes .../req/__pycache__/req_file.cpython-37.pyc | Bin 9194 -> 9194 bytes .../__pycache__/req_install.cpython-37.pyc | Bin 25031 -> 25031 bytes .../req/__pycache__/req_set.cpython-37.pyc | Bin 6031 -> 6031 bytes .../__pycache__/req_tracker.cpython-37.pyc | Bin 3145 -> 3145 bytes .../__pycache__/req_uninstall.cpython-37.pyc | Bin 16988 -> 16988 bytes .../utils/__pycache__/__init__.cpython-37.pyc | Bin 194 -> 194 bytes .../utils/__pycache__/appdirs.cpython-37.pyc | Bin 8041 -> 8041 bytes .../utils/__pycache__/compat.cpython-37.pyc | Bin 6142 -> 6142 bytes .../__pycache__/deprecation.cpython-37.pyc | Bin 2568 -> 2568 bytes .../utils/__pycache__/encoding.cpython-37.pyc | Bin 1271 -> 1271 bytes .../__pycache__/filesystem.cpython-37.pyc | Bin 663 -> 663 bytes .../utils/__pycache__/glibc.cpython-37.pyc | Bin 1682 -> 1682 bytes .../utils/__pycache__/hashes.cpython-37.pyc | Bin 3601 -> 3601 bytes .../utils/__pycache__/logging.cpython-37.pyc | Bin 7828 -> 7828 bytes .../utils/__pycache__/misc.cpython-37.pyc | Bin 25733 -> 25733 bytes .../utils/__pycache__/models.cpython-37.pyc | Bin 1943 -> 1943 bytes .../utils/__pycache__/outdated.cpython-37.pyc | Bin 4079 -> 4079 bytes .../__pycache__/packaging.cpython-37.pyc | Bin 2615 -> 2615 bytes .../setuptools_build.cpython-37.pyc | Bin 389 -> 389 bytes .../utils/__pycache__/temp_dir.cpython-37.pyc | Bin 4916 -> 4916 bytes .../utils/__pycache__/typing.cpython-37.pyc | Bin 1338 -> 1338 bytes .../utils/__pycache__/ui.cpython-37.pyc | Bin 12300 -> 12300 bytes .../vcs/__pycache__/__init__.cpython-37.pyc | Bin 15385 -> 15385 bytes .../vcs/__pycache__/bazaar.cpython-37.pyc | Bin 3802 -> 3802 bytes .../vcs/__pycache__/git.cpython-37.pyc | Bin 9444 -> 9444 bytes .../vcs/__pycache__/mercurial.cpython-37.pyc | Bin 3775 -> 3775 bytes .../vcs/__pycache__/subversion.cpython-37.pyc | Bin 5987 -> 5987 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 2882 -> 2882 bytes .../__pycache__/appdirs.cpython-37.pyc | Bin 20611 -> 20611 bytes .../__pycache__/pyparsing.cpython-37.pyc | Bin 220609 -> 220609 bytes .../__pycache__/retrying.cpython-37.pyc | Bin 8092 -> 8092 bytes .../_vendor/__pycache__/six.cpython-37.pyc | Bin 26416 -> 26416 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 552 -> 552 bytes .../__pycache__/adapter.cpython-37.pyc | Bin 3038 -> 3038 bytes .../__pycache__/cache.cpython-37.pyc | Bin 1768 -> 1768 bytes .../__pycache__/compat.cpython-37.pyc | Bin 759 -> 759 bytes .../__pycache__/controller.cpython-37.pyc | Bin 7638 -> 7638 bytes .../__pycache__/filewrapper.cpython-37.pyc | Bin 2156 -> 2156 bytes .../__pycache__/serialize.cpython-37.pyc | Bin 4240 -> 4240 bytes .../__pycache__/wrapper.cpython-37.pyc | Bin 660 -> 660 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 296 -> 296 bytes .../__pycache__/file_cache.cpython-37.pyc | Bin 3230 -> 3230 bytes .../__pycache__/redis_cache.cpython-37.pyc | Bin 1552 -> 1552 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 259 -> 259 bytes .../certifi/__pycache__/core.cpython-37.pyc | Bin 520 -> 520 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 846 -> 846 bytes .../__pycache__/big5freq.cpython-37.pyc | Bin 27181 -> 27181 bytes .../__pycache__/big5prober.cpython-37.pyc | Bin 1122 -> 1122 bytes .../chardistribution.cpython-37.pyc | Bin 6308 -> 6308 bytes .../charsetgroupprober.cpython-37.pyc | Bin 2229 -> 2229 bytes .../__pycache__/charsetprober.cpython-37.pyc | Bin 3439 -> 3439 bytes .../codingstatemachine.cpython-37.pyc | Bin 2886 -> 2886 bytes .../chardet/__pycache__/compat.cpython-37.pyc | Bin 357 -> 357 bytes .../__pycache__/cp949prober.cpython-37.pyc | Bin 1129 -> 1129 bytes .../chardet/__pycache__/enums.cpython-37.pyc | Bin 2620 -> 2620 bytes .../__pycache__/escprober.cpython-37.pyc | Bin 2607 -> 2607 bytes .../chardet/__pycache__/escsm.cpython-37.pyc | Bin 7068 -> 7068 bytes .../__pycache__/eucjpprober.cpython-37.pyc | Bin 2415 -> 2415 bytes .../__pycache__/euckrfreq.cpython-37.pyc | Bin 12065 -> 12065 bytes .../__pycache__/euckrprober.cpython-37.pyc | Bin 1130 -> 1130 bytes .../__pycache__/euctwfreq.cpython-37.pyc | Bin 27185 -> 27185 bytes .../__pycache__/euctwprober.cpython-37.pyc | Bin 1130 -> 1130 bytes .../__pycache__/gb2312freq.cpython-37.pyc | Bin 19109 -> 19109 bytes .../__pycache__/gb2312prober.cpython-37.pyc | Bin 1138 -> 1138 bytes .../__pycache__/hebrewprober.cpython-37.pyc | Bin 2972 -> 2972 bytes .../__pycache__/jisfreq.cpython-37.pyc | Bin 22137 -> 22137 bytes .../chardet/__pycache__/jpcntx.cpython-37.pyc | Bin 38016 -> 38016 bytes .../langbulgarianmodel.cpython-37.pyc | Bin 23630 -> 23630 bytes .../langcyrillicmodel.cpython-37.pyc | Bin 29086 -> 29086 bytes .../__pycache__/langgreekmodel.cpython-37.pyc | Bin 23588 -> 23588 bytes .../langhebrewmodel.cpython-37.pyc | Bin 22217 -> 22217 bytes .../__pycache__/langthaimodel.cpython-37.pyc | Bin 22196 -> 22196 bytes .../langturkishmodel.cpython-37.pyc | Bin 22219 -> 22219 bytes .../__pycache__/latin1prober.cpython-37.pyc | Bin 2929 -> 2929 bytes .../mbcharsetprober.cpython-37.pyc | Bin 2234 -> 2234 bytes .../mbcsgroupprober.cpython-37.pyc | Bin 1125 -> 1125 bytes .../chardet/__pycache__/mbcssm.cpython-37.pyc | Bin 15680 -> 15680 bytes .../sbcharsetprober.cpython-37.pyc | Bin 2987 -> 2987 bytes .../sbcsgroupprober.cpython-37.pyc | Bin 1615 -> 1615 bytes .../__pycache__/sjisprober.cpython-37.pyc | Bin 2441 -> 2441 bytes .../universaldetector.cpython-37.pyc | Bin 5831 -> 5831 bytes .../__pycache__/utf8prober.cpython-37.pyc | Bin 1972 -> 1972 bytes .../__pycache__/version.cpython-37.pyc | Bin 441 -> 441 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 446 -> 446 bytes .../colorama/__pycache__/ansi.cpython-37.pyc | Bin 3344 -> 3344 bytes .../__pycache__/ansitowin32.cpython-37.pyc | Bin 7600 -> 7600 bytes .../__pycache__/initialise.cpython-37.pyc | Bin 1665 -> 1665 bytes .../colorama/__pycache__/win32.cpython-37.pyc | Bin 3859 -> 3859 bytes .../__pycache__/winterm.cpython-37.pyc | Bin 4607 -> 4607 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 1044 -> 1044 bytes .../distlib/__pycache__/compat.cpython-37.pyc | Bin 32054 -> 32054 bytes .../__pycache__/resources.cpython-37.pyc | Bin 10888 -> 10888 bytes .../__pycache__/scripts.cpython-37.pyc | Bin 11099 -> 11099 bytes .../distlib/__pycache__/util.cpython-37.pyc | Bin 47956 -> 47956 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 1315 -> 1315 bytes .../__pycache__/_ihatexml.cpython-37.pyc | Bin 13762 -> 13762 bytes .../__pycache__/_inputstream.cpython-37.pyc | Bin 22653 -> 22653 bytes .../__pycache__/_tokenizer.cpython-37.pyc | Bin 41554 -> 41554 bytes .../__pycache__/_utils.cpython-37.pyc | Bin 3307 -> 3307 bytes .../__pycache__/constants.cpython-37.pyc | Bin 66219 -> 66219 bytes .../__pycache__/html5parser.cpython-37.pyc | Bin 97816 -> 97816 bytes .../__pycache__/serializer.cpython-37.pyc | Bin 10832 -> 10832 bytes .../_trie/__pycache__/__init__.cpython-37.pyc | Bin 428 -> 428 bytes .../_trie/__pycache__/_base.cpython-37.pyc | Bin 1511 -> 1511 bytes .../_trie/__pycache__/datrie.cpython-37.pyc | Bin 2030 -> 2030 bytes .../_trie/__pycache__/py.cpython-37.pyc | Bin 2233 -> 2233 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 3323 -> 3323 bytes .../__pycache__/base.cpython-37.pyc | Bin 11246 -> 11246 bytes .../__pycache__/etree.cpython-37.pyc | Bin 11855 -> 11855 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 4000 -> 4000 bytes .../idna/__pycache__/__init__.cpython-37.pyc | Bin 260 -> 260 bytes .../idna/__pycache__/core.cpython-37.pyc | Bin 9063 -> 9063 bytes .../idna/__pycache__/idnadata.cpython-37.pyc | Bin 21434 -> 21434 bytes .../idna/__pycache__/intranges.cpython-37.pyc | Bin 1800 -> 1800 bytes .../__pycache__/package_data.cpython-37.pyc | Bin 214 -> 214 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 9910 -> 9910 bytes .../__pycache__/linklockfile.cpython-37.pyc | Bin 2291 -> 2291 bytes .../__pycache__/mkdirlockfile.cpython-37.pyc | Bin 2653 -> 2653 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 2072 -> 2072 bytes .../__pycache__/_version.cpython-37.pyc | Bin 221 -> 221 bytes .../__pycache__/exceptions.cpython-37.pyc | Bin 2177 -> 2177 bytes .../__pycache__/fallback.cpython-37.pyc | Bin 24549 -> 24549 bytes .../__pycache__/__about__.cpython-37.pyc | Bin 734 -> 734 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 572 -> 572 bytes .../__pycache__/_compat.cpython-37.pyc | Bin 1012 -> 1012 bytes .../__pycache__/_structures.cpython-37.pyc | Bin 2864 -> 2864 bytes .../__pycache__/markers.cpython-37.pyc | Bin 8867 -> 8867 bytes .../__pycache__/requirements.cpython-37.pyc | Bin 3985 -> 3985 bytes .../__pycache__/specifiers.cpython-37.pyc | Bin 19762 -> 19762 bytes .../__pycache__/utils.cpython-37.pyc | Bin 1450 -> 1450 bytes .../__pycache__/version.cpython-37.pyc | Bin 11954 -> 11954 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 285 -> 285 bytes .../pep517/__pycache__/compat.cpython-37.pyc | Bin 1021 -> 1021 bytes .../__pycache__/wrappers.cpython-37.pyc | Bin 5486 -> 5486 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 96822 -> 96822 bytes .../__pycache__/py31compat.cpython-37.pyc | Bin 645 -> 645 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 3913 -> 3913 bytes .../progress/__pycache__/bar.cpython-37.pyc | Bin 2735 -> 2735 bytes .../__pycache__/helpers.cpython-37.pyc | Bin 3019 -> 3019 bytes .../__pycache__/spinner.cpython-37.pyc | Bin 1494 -> 1494 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 379 -> 379 bytes .../pytoml/__pycache__/core.cpython-37.pyc | Bin 942 -> 942 bytes .../pytoml/__pycache__/parser.cpython-37.pyc | Bin 10059 -> 10059 bytes .../pytoml/__pycache__/test.cpython-37.pyc | Bin 1242 -> 1242 bytes .../pytoml/__pycache__/utils.cpython-37.pyc | Bin 2141 -> 2141 bytes .../pytoml/__pycache__/writer.cpython-37.pyc | Bin 3576 -> 3576 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 3490 -> 3490 bytes .../__pycache__/__version__.cpython-37.pyc | Bin 553 -> 553 bytes .../_internal_utils.cpython-37.pyc | Bin 1311 -> 1311 bytes .../__pycache__/adapters.cpython-37.pyc | Bin 16888 -> 16888 bytes .../requests/__pycache__/api.cpython-37.pyc | Bin 6494 -> 6494 bytes .../requests/__pycache__/auth.cpython-37.pyc | Bin 8345 -> 8345 bytes .../requests/__pycache__/certs.cpython-37.pyc | Bin 636 -> 636 bytes .../__pycache__/compat.cpython-37.pyc | Bin 1615 -> 1615 bytes .../__pycache__/cookies.cpython-37.pyc | Bin 18790 -> 18790 bytes .../__pycache__/exceptions.cpython-37.pyc | Bin 5508 -> 5508 bytes .../requests/__pycache__/hooks.cpython-37.pyc | Bin 983 -> 983 bytes .../__pycache__/models.cpython-37.pyc | Bin 24111 -> 24111 bytes .../__pycache__/packages.cpython-37.pyc | Bin 513 -> 513 bytes .../__pycache__/sessions.cpython-37.pyc | Bin 19431 -> 19431 bytes .../__pycache__/status_codes.cpython-37.pyc | Bin 4169 -> 4169 bytes .../__pycache__/structures.cpython-37.pyc | Bin 4382 -> 4382 bytes .../requests/__pycache__/utils.cpython-37.pyc | Bin 22042 -> 22042 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 2118 -> 2118 bytes .../__pycache__/_collections.cpython-37.pyc | Bin 10682 -> 10682 bytes .../__pycache__/connection.cpython-37.pyc | Bin 10151 -> 10151 bytes .../__pycache__/connectionpool.cpython-37.pyc | Bin 23656 -> 23656 bytes .../__pycache__/exceptions.cpython-37.pyc | Bin 10403 -> 10403 bytes .../urllib3/__pycache__/fields.cpython-37.pyc | Bin 5871 -> 5871 bytes .../__pycache__/filepost.cpython-37.pyc | Bin 2763 -> 2763 bytes .../__pycache__/poolmanager.cpython-37.pyc | Bin 12723 -> 12723 bytes .../__pycache__/request.cpython-37.pyc | Bin 5585 -> 5585 bytes .../__pycache__/response.cpython-37.pyc | Bin 18750 -> 18750 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 202 -> 202 bytes .../_appengine_environ.cpython-37.pyc | Bin 1098 -> 1098 bytes .../contrib/__pycache__/socks.cpython-37.pyc | Bin 4908 -> 4908 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 316 -> 316 bytes .../packages/__pycache__/six.cpython-37.pyc | Bin 24404 -> 24404 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 557 -> 557 bytes .../util/__pycache__/__init__.cpython-37.pyc | Bin 994 -> 994 bytes .../__pycache__/connection.cpython-37.pyc | Bin 3169 -> 3169 bytes .../util/__pycache__/queue.cpython-37.pyc | Bin 1043 -> 1043 bytes .../util/__pycache__/request.cpython-37.pyc | Bin 3224 -> 3224 bytes .../util/__pycache__/response.cpython-37.pyc | Bin 1972 -> 1972 bytes .../util/__pycache__/retry.cpython-37.pyc | Bin 12658 -> 12658 bytes .../util/__pycache__/ssl_.cpython-37.pyc | Bin 9550 -> 9550 bytes .../util/__pycache__/timeout.cpython-37.pyc | Bin 8773 -> 8773 bytes .../util/__pycache__/url.cpython-37.pyc | Bin 5183 -> 5183 bytes .../util/__pycache__/wait.cpython-37.pyc | Bin 3135 -> 3135 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 9678 -> 9678 bytes .../__pycache__/labels.cpython-37.pyc | Bin 4092 -> 4092 bytes .../wheel/__pycache__/__init__.cpython-37.pyc | Bin 202 -> 202 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 167 -> 167 bytes .../urllib/__pycache__/error.cpython-37.pyc | Bin 2801 -> 2801 bytes .../urllib/__pycache__/parse.cpython-37.pyc | Bin 30044 -> 30044 bytes .../urllib/__pycache__/request.cpython-37.pyc | Bin 72329 -> 72329 bytes .../__pycache__/response.cpython-37.pyc | Bin 3274 -> 3274 bytes .../xml/__pycache__/__init__.cpython-37.pyc | Bin 731 -> 731 bytes .../__pycache__/ElementPath.cpython-37.pyc | Bin 6374 -> 6374 bytes .../__pycache__/ElementTree.cpython-37.pyc | Bin 44838 -> 44838 bytes .../etree/__pycache__/__init__.cpython-37.pyc | Bin 170 -> 170 bytes .../__pycache__/cElementTree.cpython-37.pyc | Bin 212 -> 212 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 344 -> 344 bytes .../parsers/__pycache__/expat.cpython-37.pyc | Bin 373 -> 373 bytes .../sax/__pycache__/__init__.cpython-37.pyc | Bin 3203 -> 3203 bytes .../__pycache__/_exceptions.cpython-37.pyc | Bin 5512 -> 5512 bytes .../sax/__pycache__/handler.cpython-37.pyc | Bin 12388 -> 12388 bytes .../sax/__pycache__/saxutils.cpython-37.pyc | Bin 12841 -> 12841 bytes .../sax/__pycache__/xmlreader.cpython-37.pyc | Bin 16949 -> 16949 bytes .../__pycache__/__init__.cpython-37.pyc | Bin 167 -> 167 bytes .../xmlrpc/__pycache__/client.cpython-37.pyc | Bin 34573 -> 34573 bytes 616 files changed, 26390 insertions(+), 1 deletion(-) create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BdfFontFile.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BlpImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BmpImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BufrStubImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ContainerIO.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/CurImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/DcxImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/DdsImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/EpsImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ExifTags.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FitsStubImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FliImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FontFile.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FpxImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FtexImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GbrImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GdImageFile.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GifImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GimpGradientFile.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GimpPaletteFile.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GribStubImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Hdf5StubImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IcnsImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IcoImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Image.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageChops.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageCms.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageColor.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageDraw.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageDraw2.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageEnhance.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFile.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFilter.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFont.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageGrab.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMath.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMode.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMorph.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageOps.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImagePalette.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImagePath.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageQt.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageSequence.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageShow.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageStat.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageTk.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageTransform.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageWin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImtImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IptcImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Jpeg2KImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/JpegImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/JpegPresets.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/McIdasImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MicImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MpegImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MpoImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MspImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PSDraw.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PaletteFile.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PalmImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcdImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcfFontFile.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcxImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PdfImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PdfParser.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PixarImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PngImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PpmImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PsdImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PyAccess.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SgiImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SpiderImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SunImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TarIO.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TgaImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TiffImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TiffTags.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WalImageFile.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WebPImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WmfImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XVThumbImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XbmImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XpmImagePlugin.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__init__.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/BdfFontFile.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/BlpImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/BmpImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/BufrStubImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ContainerIO.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/CurImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/DcxImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/DdsImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/EpsImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ExifTags.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/FitsStubImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/FliImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/FontFile.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/FpxImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/FtexImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GbrImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GdImageFile.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GifImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GimpGradientFile.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GimpPaletteFile.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GribStubImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/Hdf5StubImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/IcnsImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/IcoImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/Image.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageChops.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageCms.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageColor.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageDraw.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageDraw2.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageEnhance.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageFile.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageFilter.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageFont.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageGrab.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageMath.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageMode.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageMorph.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageOps.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImagePalette.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImagePath.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageQt.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageSequence.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageShow.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageStat.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageTk.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageTransform.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageWin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImtImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/IptcImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/Jpeg2KImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/JpegImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/JpegPresets.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/McIdasImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/MicImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/MpegImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/MpoImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/MspImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PSDraw.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PaletteFile.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PalmImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PcdImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PcfFontFile.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PcxImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PdfImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PdfParser.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PixarImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PngImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PpmImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PsdImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PyAccess.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/SgiImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/SpiderImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/SunImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/TarIO.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/TgaImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/TiffImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/TiffTags.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/WalImageFile.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/WebPImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/WmfImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/XVThumbImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/XbmImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/XpmImagePlugin.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/__init__.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/_binary.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/_tkinter_finder.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/_util.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/_version.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/features.cpython-37.pyc create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_binary.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imaging.cp37-win32.pyd create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingcms.cp37-win32.pyd create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingft.cp37-win32.pyd create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingmath.cp37-win32.pyd create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingmorph.cp37-win32.pyd create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingtk.cp37-win32.pyd create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_tkinter_finder.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_util.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_version.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_webp.cp37-win32.pyd create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/PIL/features.py create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/INSTALLER create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/LICENSE create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/METADATA create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/RECORD create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/WHEEL create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/top_level.txt create mode 100644 WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/zip-safe diff --git a/README.md b/README.md index 3fbe1eb7..2e24a81c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Open source RPA platform (Coming soon Q2 2019) for Windows. Dependencies -* Python 3 x32 [psutil, pywinauto, wmi] +* Python 3 x32 [psutil, pywinauto, wmi, PIL] * Python 3 x64 * pywinauto (Windows GUI automation) * Semantic UI CSS framework diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/__future__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/__future__.cpython-37.pyc index 8c0f48829b755d8f48a26468bd32026674e36cb3..6b118ecdb08f20c40a0ba28e37e461c9184a3906 100644 GIT binary patch delta 20 acmdn1uvdZGiIb8*wnOrBezT;08-cnx&QzG delta 22 ccmZ4fh;jKNMs6owUM>b8=quZ}kz1w^08w@Zga7~l diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/_compat_pickle.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/_compat_pickle.cpython-37.pyc index 29c74f38be2dc5ee6196d31e1161ae0e9a37c069..2ff5daac4b46a10c84cbb0724d716359b583e713 100644 GIT binary patch delta 20 acmX@9ds3I%iI(_4odo>= delta 20 acmdn0uvLNEiIKcj)?xz#nYavO84EhIH&P1kGG4|tzTy>MzPx8k zTc+ncUoBi-_WevRNfB$L8&3mB1R6RZ7XODNQp_4ho*&89JNgXWAVF0tRuUmq`d)*C x<_|(_sW)))+_3ndN022p5&+fM%%AKKY$T?h6=P2lx)bEd6wWp~SMz>-&AvFRHu(Sm delta 158 zcmZp&ZL;Nd;^pOH0D``(ME%AT2*oKu>TYR3#T_!etwUP@-# wEhZplNzExv-F%xzk5#5f0Vr3b2vWcXv?a5o@)k#4eo10UW`5pgRiRiO0N^S%zyJUM diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/_sitebuiltins.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/_sitebuiltins.cpython-37.pyc index 2c6b92c44f9d3d7dd7d3262389476e83faf4971f..0afbca8aaa08d132620c6ab15e32564ba8554c29 100644 GIT binary patch delta 20 acmZ1^y-1qdiIM#szNx delta 20 acmX?ObjFC=iIk diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/bisect.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/bisect.cpython-37.pyc index 60fd91b2295381fd2a5a61da0437c6584f963301..ad0c7a6e612f2408d9e7b44753abfc931bda7941 100644 GIT binary patch delta 20 acmZ21x>%IkiI%IkiI*#z|f diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/bz2.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/bz2.cpython-37.pyc index 88bcd1cf98da048af68c3f8c973f14d946919943..66dfb3d64c9862a2de96fbbdc7ce88d4ef6ab1bf 100644 GIT binary patch delta 20 acmX>Wek`2ZiIWek`2ZiIb8*wnOrBez~Q08|79(f|Me delta 22 ccmdmajdABSMs6owUM>b8=quZ}ky|et08*j`oB#j- diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/cgi.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/cgi.cpython-37.pyc index 0dca9b69d901cbe93824a3ba76437d8f27b1c239..e7f1eba79aeb118aff954152d375a423b4fd040c 100644 GIT binary patch delta 22 ccmca`h4I1_Ms6owUM>b8*wnOrBe!c709TR+5&!@I delta 22 ccmca`h4I1_Ms6owUM>b8=quZ}k=r#309G&t+yDRo diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/codecs.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/codecs.cpython-37.pyc index 7d568518f28932dabbb7d5327cf06b28fc535354..08b2b2d8ee59b22168f278e8e29a84e29a2acc87 100644 GIT binary patch delta 22 ccmZqfWNPkY;&$TYb8*wnOrBe&aT09xq>ga7~l delta 22 ccmcckjOpStCT=HQUM>b8=quZ}k=t!E09l6zP5=M^ diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/contextlib.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/contextlib.cpython-37.pyc index 166331c3525eb969d7af8f88e6651ba6498a25c2..8e7c2021961b40ff20316a96bd01a3cc3ea03daa 100644 GIT binary patch delta 22 ccmcaQoAK&wMs6owUM>b8*wnOrBljs^08pI=5&!@I delta 22 ccmcaQoAK&wMs6owUM>b8=quZ}k^7V{08cvx+yDRo diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/copy.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/copy.cpython-37.pyc index 583294305cc1d4fee3af09384fc95b0437a3db5b..c8112a9a24b841e398d404f2675b6ffab20daea1 100644 GIT binary patch delta 20 acmca+e$AZQiIb8*wnOrBlr6I08(rRp8x;= delta 22 ccmdnBpLy4QW^N~5UM>b8=quZ}k$e4p08t7DX#fBK diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/decimal.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/decimal.cpython-37.pyc index 574d530ad81f602e50946d717c88cdf50772c2a3..72dfdf0dcbbcecb9c43c880852a83dcb6c6c9135 100644 GIT binary patch delta 20 acmeBU?qlY5;^pOH0D?_T+c$DIGXelBVg$bc delta 20 ZcmeBU?qlY5;^pOH0D``b8*wnOrBlnd!09T3!g#Z8m delta 22 ccmcb=m+}5yMs6owUM>b8=r7y2k^4#<09G#tPyhe` diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/fnmatch.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/fnmatch.cpython-37.pyc index f271fbb544e237305de3cbe68d188ef0f39c5507..964905dbd1242a2c63a45f159a299513eff376cb 100644 GIT binary patch delta 20 acmZ1^wMdHFiIb8*wnOrBlqlB08OX{)c^nh delta 22 ccmZ3sn{nB0Ms6owUM>b8=r7y2k$ZM508C8=pa1{> diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/genericpath.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/genericpath.cpython-37.pyc index b73c4ff8379a9d3fca6dc7db8cef8ada0b2f871d..88174005dd8e9858489b613d4761ce8b85032361 100644 GIT binary patch delta 20 acmdlhyH}RmiIh)h0tLAM diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/getpass.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/getpass.cpython-37.pyc index a2eee9654354c166215f7e849a919c9211293bee..8a60920441e88b0b925992c988c7b1e4e2d2cdac 100644 GIT binary patch delta 20 acmcbsa94rbiIf(1YT diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/gettext.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/gettext.cpython-37.pyc index 56038a749b37d624efa0ecbd034a2b5ec0790526..a01c9050839b374937b684418c93b3a90840f992 100644 GIT binary patch delta 20 acmeyE_c4##iI*WG%~HIkOl<5R QA&$+V{9E8`exZ}>0H^H_aR2}S diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/heapq.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/heapq.cpython-37.pyc index fe6c72570921d79a01274d62296bdb117b072500..093e4e54211213b544421013702c11757d98fa2c 100644 GIT binary patch delta 20 acmdm7u(^QSiIb8*xab8=r7yY$i0=Dah(MKZ7K)1 diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/io.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/io.cpython-37.pyc index f13573a6d1ac16db5fb323ed889d38c7ebe3bfed..96eb22f9f32e9701f3f7bd00835a68a1f47773e1 100644 GIT binary patch delta 20 acmaDQ^-7A{iIb8*xa;zBe%jg09D`zWB>pF delta 22 ccmZ4ehI#cHW^N~5UM>b8=r7y2kz3[YlE&u=k diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/keyword.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/keyword.cpython-37.pyc index b1cc0a8a4afee365ca80dc2a2eac170938dc8cc3..159543f799e59c3422b52df0fa76493131f85580 100644 GIT binary patch delta 20 acmZ3*w~CM3iI0Z diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/linecache.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/linecache.cpython-37.pyc index f8e3915784f8bca26b99dbecf522773d52f925a3..a55e63123cfdb9f061193056addb2c04c7843826 100644 GIT binary patch delta 20 acmaDR`%ISGiInmx}=iHaBhG$j#Xf07D%G@&Et; delta 22 ccmbQz$26sniQ9>nmx}=iCX{X5$j#Xf071e9y#N3J diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/lzma.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/lzma.cpython-37.pyc index d0c145a1e58889299d65f458ae8fe3f26c60d708..d73a8aab316b9a82929b8caaf5c3fad98b3341bd 100644 GIT binary patch delta 20 acmdlJyC;_0iIjdq$SqiIjdq$SqiIiIiIb8*xa;zBe(Ky09S_xL;wH) delta 22 ccmZ4YjcMICCT=HQUM>b8m{7KHBe(Ky09Gsq4*&oF diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/os.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/os.cpython-37.pyc index d954297c1614175a37bd6bd3f9f47fc7f8b62325..fd7df383387363df875f98f92d6fd368ec79dc21 100644 GIT binary patch delta 22 ccmbRCf^pglMs6owUM>b8*xa;zBR6*m08sG;mjD0& delta 22 ccmbRCf^pglMs6owUM>b8m{7KHBR6*m08f?%VgLXD diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/pickle.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/pickle.cpython-37.pyc index 3c640fe4e6f8b355c12a982355ce451512066d09..c0e593c121569905cf2af7b5df386be5e69b8d17 100644 GIT binary patch delta 22 ccmaEVp6UI0CT=HQUM>b8*xa;zBlnZ#09|beB>(^b delta 22 ccmaEVp6UI0CT=HQUM>b8m{7KHBlnZ#09+CW@Bjb+ diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/pkgutil.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/pkgutil.cpython-37.pyc index 58cdbf9e1b6a0297c844a7a438a0060d056174fb..a345242a75525d424768b1f7aac549ca5ab28caa 100644 GIT binary patch delta 22 ccmZo{U~Ft)b8*xa;zBez!`09mXDHUIzs delta 22 ccmcb5hwb8m{7KHBez!`09a860RR91 diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/plistlib.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/plistlib.cpython-37.pyc index e96e1f6bb22c4dd62011e1d12724760f5dc3d852..23b2f64436fddcfed95c71ae89fb271e0ad05a9b 100644 GIT binary patch delta 22 ccmZ2*gmJ+UMs6owUM>b8*xa;zBe!T008J4FTL1t6 delta 22 ccmZ2*gmJ+UMs6owUM>b8m{7KHBe!T0086$8CIA2c diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/posixpath.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/posixpath.cpython-37.pyc index af1dfe84f4dd7f7832160c9e418bb3cb5d5e05e8..13c4b4115855d8b7a7e96c3a3bc50fc92bfcb9d2 100644 GIT binary patch delta 20 acmcZ}cs-EYiIZ`Ms6owUM>b8*xa;zBliVw08t1B8vpZ`Ms6owUM>b8m{7KHBliVw08gz3<^TWy diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/re.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/re.cpython-37.pyc index 1bb05bd0455879583672bd4532c14bbb6453ed76..3efa93ab0e48b0f4553a8b8e243d8c1fdf96f530 100644 GIT binary patch delta 20 acmZq8Y0cqw;^pOH0D{d;+c$FmG6euR`35Th delta 20 acmZq8Y0cqw;^pOH0D=i+8#i+QG6euQo(1** diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/reprlib.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/reprlib.cpython-37.pyc index 89118687f5275b3fa6a443cdb185563a4467b263..5b7f96d220a388cb566b233ca5fe7482508bc8e6 100644 GIT binary patch delta 20 acmeyb`CpUUiIb8*xa;zBlo-t09J(uW&i*H delta 22 ccmZ4ak#XfmMs6owUM>b8m{7KHBlo-t097gnF#rGn diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/signal.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/signal.cpython-37.pyc index d104be80583123f55f8a127283cac9d2acd4c0d7..b5b6d01ecbe67e187e8ba3017e4c7fcff6360bb8 100644 GIT binary patch delta 20 acmaDU{8E_PiI_=! delta 20 acmaDU{8E_PiI2n$UVma07JG082|tP diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/socket.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/socket.cpython-37.pyc index 25874589d39da82476150e08e2aa6e1f716339cf..dede2b84444b9e46c73187f908c3ac1fe94e43e8 100644 GIT binary patch delta 22 ccmbQYhH>5+Ms6owUM>b8*wwUsBe!rE07*CoAOHXW delta 22 ccmbQYhH>5+Ms6owUM>b8m{zuNBe!rE07upZ>Hq)$ diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/socketserver.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/socketserver.cpython-37.pyc index bc50f5eb1b1ed4c4813412a310e05cd145200ede..3abc4578122aeeaccc2f9732f9625e5d3cf25df8 100644 GIT binary patch delta 22 ccmbQgmvR1HMs6owUM>b8*wwUsBlnaz08Ii0%>V!Z delta 22 ccmbQgmvR1HMs6owUM>b8m{zuNBlnaz085|-mjD0& diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/sre_compile.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/sre_compile.cpython-37.pyc index 2c97379a6e92620df0fe6b1c9b01a8a491120fe6..297330baf63f7ac28b4c85e1dcc455eb431344d6 100644 GIT binary patch delta 20 acmexU_NR>7iI7iI delta 22 ccmZo$&e*n`k=u!vmx}=irj>2n$Xy)_07M7|6#xJL diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/ssl.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/ssl.cpython-37.pyc index a5e725de74199704d2e023baba58c3a5c524a7b6..4e0e3899c5de7e62a9543ca503b74f79a7fd9a76 100644 GIT binary patch delta 22 ccmeyejp@raCT=HQUM>b8*wwUsBX{O(09l#`eEb8m{zuNBX{O(09ZH&M*si- diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/stat.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/stat.cpython-37.pyc index 2c0ff957035e27871bf3b2d8549694dc33661362..51ad220b5b9d184c95650832c82fe015f99d02e5 100644 GIT binary patch delta 20 acmdlbw@Z%OiInmx}=ib~SC^$Xz`h07nZ3p#T5? delta 22 ccmZo$&(yY_iQ9>nmx}=irj>2n$Xz`h07a<=YXATM diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/sysconfig.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/sysconfig.cpython-37.pyc index 4efa9292ad7255b7887754fbc8267a348d27a0ba..7db0eeb18c8d5685a2438bdcfead2cee0e7e99ae 100644 GIT binary patch delta 20 acmX?Hez=_5iIW^N~5UM>b8*wwUsBlrA|09Aqq(EtDd delta 22 ccmZ4Wn0eJ>W^N~5UM>b8m{zuNBlrA|08}6cn*aa+ diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/tempfile.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/tempfile.cpython-37.pyc index 501fa3c5344eaa318e9be80752a98c7d6c952a4b..a4df2d564cbfc9a3859833dc4e818fe957258068 100644 GIT binary patch delta 22 ccmbQWmT}fvMs6owUM>b8*wwUsBX@ro07b8m{zuNBX@ro07y{=U;qFB diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/textwrap.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/textwrap.cpython-37.pyc index 011c930962038cf183e66fe7be24932944773432..934a5d08aa87c102a530568e70e8af10a608ac68 100644 GIT binary patch delta 20 acmX?_bu^3HiIb8*wwUsBlpvZ09OA8!2kdN delta 22 ccmeycnCZh}CT=HQUM>b8m{zuNBlpvZ09Bm_ivR!s diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/token.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/token.cpython-37.pyc index 22aba99c6b3dec5059ee18400b96bb21a3f082ad..655d98092448cf32032f67fdf250d4b4af6ceaac 100644 GIT binary patch delta 20 acmZ1>vqFa3iIvqFa3iId diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/tokenize.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/tokenize.cpython-37.pyc index d326dccfb0c703c298467f0616f65c4a5a540edc..2fd7c8e5c512516567b8fb0d898870dcaafaa5e4 100644 GIT binary patch delta 22 ccmX@m&3K@jk=u!vmx}=ib~SC^$i3AS07}*dvj6}9 delta 22 ccmX@m&3K@jk=u!vmx}=irj>2n$i3AS07-NPeEwlkvbzMs6owUM>b8*wwUsBllJx08IY|)&Kwi delta 22 ccmX>wlkvbzMs6owUM>b8m{zuNBllJx085<)pa1{> diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/types.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/types.cpython-37.pyc index 56007d541917c693ea931f68f1935ca8fad7c34d..6427597401b459bf77171d89f61fd436a3d66acd 100644 GIT binary patch delta 20 acmZ4Pw%m=|iIb8*wwUsBli|B08BOp$p8QV delta 22 ccmdl#m2v-6Ms6owUM>b8m{zuNBli|B07}#blK=n! diff --git a/WPy32-3720/python-3.7.2/Lib/__pycache__/zipfile.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/__pycache__/zipfile.cpython-37.pyc index d7478092f3befbdcc67d89206d68443d6f1d6ea5..151b45b6a658fed3e57634b8a1ddd4e8ea62bd59 100644 GIT binary patch delta 34 ocmaFa%KWmGncIn%mx}=ib~kO`$Q@qC=EcasP~^Eeqpr~f0J5qILjV8( delta 34 ocmaFa%KWmGncIn%mx}=irk8Ep$Q@qC=E=ywP~^2aqpr~f0Is_V4FCWD diff --git a/WPy32-3720/python-3.7.2/Lib/collections/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/collections/__pycache__/__init__.cpython-37.pyc index f665f18ff0d518f0e31ae5235a0dbb0a8ac13d4f..7bac93ce88357e673a10a31c74f61de16ca3f135 100644 GIT binary patch delta 22 ccmZ4ehH3R1CT=HQUM>b8*wnOrBe%jf09AAcApigX delta 22 ccmZ4ehH3R1CT=HQUM>b8=quZ}ky~LK08|nN>i_@% diff --git a/WPy32-3720/python-3.7.2/Lib/collections/__pycache__/abc.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/collections/__pycache__/abc.cpython-37.pyc index b184d6123c8b4b03c16c51dc148ba25042361ee6..52a6504b798e88f6b99b0147ab5e0ac88900bdd4 100644 GIT binary patch delta 19 ZcmaFH_>7U;iI7U;iI;=;R delta 20 acmZ2ix2}%ciI)U@ delta 20 acmbQHF-?QpiIz&^iIz&^iIuCjiIuCjiInmx}=iHZ^VE$UU_U07dc!k^lez delta 22 ccmZ3`%e0`EiQ9>nmx}=i`pY(Mt<8 diff --git a/WPy32-3720/python-3.7.2/Lib/distutils/__pycache__/errors.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/distutils/__pycache__/errors.cpython-37.pyc index acc10053d67b08e342ec1d85ecc62ad783382b2c..96d9ba799d68e6a424df41ea0b233aacf6870985 100644 GIT binary patch delta 20 acmeCz?$_pa;^pOH0D?_T+c$EzhynmHJ_RNK delta 20 ZcmeCz?$_pa;^pOH0D}IqjT^aJL;)}31n~d> diff --git a/WPy32-3720/python-3.7.2/Lib/distutils/__pycache__/extension.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/distutils/__pycache__/extension.cpython-37.pyc index 9108e62d5d49b5d81277d14ddcbf07459800e083..99f29aba0c280b6579d7e6591cc01eac98e1dbf4 100644 GIT binary patch delta 20 acmbPaHpz_JiIv_gp6iIv_gp6iI5k diff --git a/WPy32-3720/python-3.7.2/Lib/distutils/command/__pycache__/install.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/distutils/command/__pycache__/install.cpython-37.pyc index 67ca9f17e2577bea94364c4752e4638286995203..324018222b7340ad99dcdd3ab3871dcaa7a6eb3f 100644 GIT binary patch delta 20 acmaEn`683siIqAiIqAiIIGE* delta 20 acmZ1!wJ3_)iIy!ECj>= diff --git a/WPy32-3720/python-3.7.2/Lib/email/__pycache__/errors.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/email/__pycache__/errors.cpython-37.pyc index 2a7489b870d9272ff7b5cd6c7fbd249b5cd6e180..2ce72c1f6eb2308757a890c40c1f72c3568ef8c6 100644 GIT binary patch delta 20 acmX?MaKeDwiIh)Zf(0o6 diff --git a/WPy32-3720/python-3.7.2/Lib/email/__pycache__/feedparser.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/email/__pycache__/feedparser.cpython-37.pyc index 61de71310db4a0b20c0d9cbb242ad8a0b25cfa78..b2faeeed868cadfec923aff759fb82b186e05946 100644 GIT binary patch delta 20 acmbOgJS&*niI3RRrw- diff --git a/WPy32-3720/python-3.7.2/Lib/email/__pycache__/message.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/email/__pycache__/message.cpython-37.pyc index 971b71d99dd94e5104c8990da8f63b573c40dc8e..8494bef184b733348113c8af0035000df38d35b3 100644 GIT binary patch delta 22 ccmX@Rg6ZrECT=HQUM>b8*wnOrBe&BO08p$3-2eap delta 22 ccmX@Rg6ZrECT=HQUM>b8=r7y2k=tns08dc{r~m)} diff --git a/WPy32-3720/python-3.7.2/Lib/email/__pycache__/parser.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/email/__pycache__/parser.cpython-37.pyc index 71db5078825590d2b066d0f3a194c1e548f65271..52f638a11cedb8245ca0b69dfd5e1776aee234d3 100644 GIT binary patch delta 20 acmeCt?a}3S;^pOH0D?_T+c$DIiU9yI4+SCs delta 20 ZcmeCt?a}3S;^pOH0D}IqjT^Ze#Q-m~1nmF- diff --git a/WPy32-3720/python-3.7.2/Lib/email/__pycache__/quoprimime.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/email/__pycache__/quoprimime.cpython-37.pyc index 57b689be86f0fff718cc0c0fd55c0cce6f423750..273a086a4887a1e8ec68531e7bc58115cada0366 100644 GIT binary patch delta 20 acmeCQ>9pZ?;^pOH0D?_T+c$FmlLY`Xx&^)f delta 20 acmeCQ>9pZ?;^pOH0D}IqjT^cD$pQc}Uj>N( diff --git a/WPy32-3720/python-3.7.2/Lib/email/__pycache__/utils.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/email/__pycache__/utils.cpython-37.pyc index e905165f02d04a52d7d9cf1a96f45a9d86f77287..d3ffeadaff2698c883e923217fe3c90814b57787 100644 GIT binary patch delta 20 acmbQ@HN}hDiIkb delta 20 acmbQ@HN}hDiI? delta 20 acmZ1{yiSiIiI$}r5CpaW delta 20 ZcmZqVZ{+88;^pOH0D}IqjT^bk*a0cE1c3km diff --git a/WPy32-3720/python-3.7.2/Lib/encodings/__pycache__/utf_16_be.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/encodings/__pycache__/utf_16_be.cpython-37.pyc index 48f6730479e8bc28f98e17e6f55b3c09bbb3db8a..81796336daeaa2ebd83d7c8de7b63ba21667bf81 100644 GIT binary patch delta 20 acmey(^P7j;iIfxrvLx| delta 22 ccmdnj#k{YJncIn%mx}=i`pY(Mnmx}=iHZ^VE$j#RZ07Fj&_5c6? delta 22 ccmbQ)#Wb^viQ9>nmx}=i`pY(MKW^N~5UM>b8*xa;zBlp@108M-cPXGV_ delta 22 ccmdn7ka@>KW^N~5UM>b8=r7y2k$de008APO82|tP diff --git a/WPy32-3720/python-3.7.2/Lib/http/__pycache__/cookies.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/http/__pycache__/cookies.cpython-37.pyc index f9bf7ecdf89dde78d399b59e1008638d5a0e5a92..0940e8a331d08e27ba065d259f0afec0d24007c5 100644 GIT binary patch delta 20 acmZ2lzOcaX5n8iIcaX5n8iI delta 20 acmaFL|CFEGiIDRRyg8 diff --git a/WPy32-3720/python-3.7.2/Lib/logging/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/logging/__pycache__/__init__.cpython-37.pyc index 26b024e59eb3fe4166fcb1f7a979d4f7db9475c1..98d1bbed80a867c66533cec703779153844de0d0 100644 GIT binary patch delta 22 ccmezVg8BOkW^N~5UM>b8*xa;zBX`ah0AdCRJ^%m! delta 22 ccmezVg8BOkW^N~5UM>b8m{7KHBX`ah0AQ;K2><{9 diff --git a/WPy32-3720/python-3.7.2/Lib/logging/__pycache__/config.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/logging/__pycache__/config.cpython-37.pyc index abb3e16fd85fd7a964f8ac92c2d6d5ac015d4b8a..0f2637f86cab3ad980e1efbb781a4c5aa18b6425 100644 GIT binary patch delta 22 ccmZqJ!q~8dk=u!vmx}=iHaBhG$o(}E07p0m(f|Me delta 22 ccmZqJ!q~8dk=u!vmx}=iCX{X5$o(}E07cyfod5s; diff --git a/WPy32-3720/python-3.7.2/Lib/logging/__pycache__/handlers.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/logging/__pycache__/handlers.cpython-37.pyc index 919efd4eaa5a88dbfd6eb072462588a936a1561d..ce0bafbac6a502790601e6d5451c10ebd4809617 100644 GIT binary patch delta 22 ccmZp;z|?SoiQ9>nmx}=iHaBhG$o+LW088%&S^xk5 delta 22 ccmZp;z|?SoiQ9>nmx}=iCX{X5$o+LW07{exB>(^b diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BdfFontFile.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BdfFontFile.py new file mode 100644 index 00000000..eac19bde --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BdfFontFile.py @@ -0,0 +1,119 @@ +# +# The Python Imaging Library +# $Id$ +# +# bitmap distribution font (bdf) file parser +# +# history: +# 1996-05-16 fl created (as bdf2pil) +# 1997-08-25 fl converted to FontFile driver +# 2001-05-25 fl removed bogus __init__ call +# 2002-11-20 fl robustification (from Kevin Cazabon, Dmitry Vasiliev) +# 2003-04-22 fl more robustification (from Graham Dumpleton) +# +# Copyright (c) 1997-2003 by Secret Labs AB. +# Copyright (c) 1997-2003 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +from __future__ import print_function + +from . import Image, FontFile + + +# -------------------------------------------------------------------- +# parse X Bitmap Distribution Format (BDF) +# -------------------------------------------------------------------- + +bdf_slant = { + "R": "Roman", + "I": "Italic", + "O": "Oblique", + "RI": "Reverse Italic", + "RO": "Reverse Oblique", + "OT": "Other" +} + +bdf_spacing = { + "P": "Proportional", + "M": "Monospaced", + "C": "Cell" +} + + +def bdf_char(f): + # skip to STARTCHAR + while True: + s = f.readline() + if not s: + return None + if s[:9] == b"STARTCHAR": + break + id = s[9:].strip().decode('ascii') + + # load symbol properties + props = {} + while True: + s = f.readline() + if not s or s[:6] == b"BITMAP": + break + i = s.find(b" ") + props[s[:i].decode('ascii')] = s[i+1:-1].decode('ascii') + + # load bitmap + bitmap = [] + while True: + s = f.readline() + if not s or s[:7] == b"ENDCHAR": + break + bitmap.append(s[:-1]) + bitmap = b"".join(bitmap) + + [x, y, l, d] = [int(p) for p in props["BBX"].split()] + [dx, dy] = [int(p) for p in props["DWIDTH"].split()] + + bbox = (dx, dy), (l, -d-y, x+l, -d), (0, 0, x, y) + + try: + im = Image.frombytes("1", (x, y), bitmap, "hex", "1") + except ValueError: + # deal with zero-width characters + im = Image.new("1", (x, y)) + + return id, int(props["ENCODING"]), bbox, im + + +## +# Font file plugin for the X11 BDF format. + +class BdfFontFile(FontFile.FontFile): + + def __init__(self, fp): + + FontFile.FontFile.__init__(self) + + s = fp.readline() + if s[:13] != b"STARTFONT 2.1": + raise SyntaxError("not a valid BDF file") + + props = {} + comments = [] + + while True: + s = fp.readline() + if not s or s[:13] == b"ENDPROPERTIES": + break + i = s.find(b" ") + props[s[:i].decode('ascii')] = s[i+1:-1].decode('ascii') + if s[:i] in [b"COMMENT", b"COPYRIGHT"]: + if s.find(b"LogicalFontDescription") < 0: + comments.append(s[i+1:-1].decode('ascii')) + + while True: + c = bdf_char(fp) + if not c: + break + id, ch, (xy, dst, src), im = c + if 0 <= ch < len(self.glyph): + self.glyph[ch] = xy, dst, src, im diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BlpImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BlpImagePlugin.py new file mode 100644 index 00000000..398e0fa0 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BlpImagePlugin.py @@ -0,0 +1,435 @@ +""" +Blizzard Mipmap Format (.blp) +Jerome Leclanche + +The contents of this file are hereby released in the public domain (CC0) +Full text of the CC0 license: + https://creativecommons.org/publicdomain/zero/1.0/ + +BLP1 files, used mostly in Warcraft III, are not fully supported. +All types of BLP2 files used in World of Warcraft are supported. + +The BLP file structure consists of a header, up to 16 mipmaps of the +texture + +Texture sizes must be powers of two, though the two dimensions do +not have to be equal; 512x256 is valid, but 512x200 is not. +The first mipmap (mipmap #0) is the full size image; each subsequent +mipmap halves both dimensions. The final mipmap should be 1x1. + +BLP files come in many different flavours: +* JPEG-compressed (type == 0) - only supported for BLP1. +* RAW images (type == 1, encoding == 1). Each mipmap is stored as an + array of 8-bit values, one per pixel, left to right, top to bottom. + Each value is an index to the palette. +* DXT-compressed (type == 1, encoding == 2): +- DXT1 compression is used if alpha_encoding == 0. + - An additional alpha bit is used if alpha_depth == 1. + - DXT3 compression is used if alpha_encoding == 1. + - DXT5 compression is used if alpha_encoding == 7. +""" + +import struct +from io import BytesIO + +from . import Image, ImageFile + + +BLP_FORMAT_JPEG = 0 + +BLP_ENCODING_UNCOMPRESSED = 1 +BLP_ENCODING_DXT = 2 +BLP_ENCODING_UNCOMPRESSED_RAW_BGRA = 3 + +BLP_ALPHA_ENCODING_DXT1 = 0 +BLP_ALPHA_ENCODING_DXT3 = 1 +BLP_ALPHA_ENCODING_DXT5 = 7 + + +def unpack_565(i): + return ( + ((i >> 11) & 0x1f) << 3, + ((i >> 5) & 0x3f) << 2, + (i & 0x1f) << 3 + ) + + +def decode_dxt1(data, alpha=False): + """ + input: one "row" of data (i.e. will produce 4*width pixels) + """ + + blocks = len(data) // 8 # number of blocks in row + ret = (bytearray(), bytearray(), bytearray(), bytearray()) + + for block in range(blocks): + # Decode next 8-byte block. + idx = block * 8 + color0, color1, bits = struct.unpack_from("> 2 + + a = 0xFF + if control == 0: + r, g, b = r0, g0, b0 + elif control == 1: + r, g, b = r1, g1, b1 + elif control == 2: + if color0 > color1: + r = (2 * r0 + r1) // 3 + g = (2 * g0 + g1) // 3 + b = (2 * b0 + b1) // 3 + else: + r = (r0 + r1) // 2 + g = (g0 + g1) // 2 + b = (b0 + b1) // 2 + elif control == 3: + if color0 > color1: + r = (2 * r1 + r0) // 3 + g = (2 * g1 + g0) // 3 + b = (2 * b1 + b0) // 3 + else: + r, g, b, a = 0, 0, 0, 0 + + if alpha: + ret[j].extend([r, g, b, a]) + else: + ret[j].extend([r, g, b]) + + return ret + + +def decode_dxt3(data): + """ + input: one "row" of data (i.e. will produce 4*width pixels) + """ + + blocks = len(data) // 16 # number of blocks in row + ret = (bytearray(), bytearray(), bytearray(), bytearray()) + + for block in range(blocks): + idx = block * 16 + block = data[idx:idx + 16] + # Decode next 16-byte block. + bits = struct.unpack_from("<8B", block) + color0, color1 = struct.unpack_from(">= 4 + else: + high = True + a &= 0xf + a *= 17 # We get a value between 0 and 15 + + color_code = (code >> 2 * (4 * j + i)) & 0x03 + + if color_code == 0: + r, g, b = r0, g0, b0 + elif color_code == 1: + r, g, b = r1, g1, b1 + elif color_code == 2: + r = (2 * r0 + r1) // 3 + g = (2 * g0 + g1) // 3 + b = (2 * b0 + b1) // 3 + elif color_code == 3: + r = (2 * r1 + r0) // 3 + g = (2 * g1 + g0) // 3 + b = (2 * b1 + b0) // 3 + + ret[j].extend([r, g, b, a]) + + return ret + + +def decode_dxt5(data): + """ + input: one "row" of data (i.e. will produce 4 * width pixels) + """ + + blocks = len(data) // 16 # number of blocks in row + ret = (bytearray(), bytearray(), bytearray(), bytearray()) + + for block in range(blocks): + idx = block * 16 + block = data[idx:idx + 16] + # Decode next 16-byte block. + a0, a1 = struct.unpack_from("> alphacode_index) & 0x07 + elif alphacode_index == 15: + alphacode = (alphacode2 >> 15) | ((alphacode1 << 1) & 0x06) + else: # alphacode_index >= 18 and alphacode_index <= 45 + alphacode = (alphacode1 >> (alphacode_index - 16)) & 0x07 + + if alphacode == 0: + a = a0 + elif alphacode == 1: + a = a1 + elif a0 > a1: + a = ((8 - alphacode) * a0 + (alphacode - 1) * a1) // 7 + elif alphacode == 6: + a = 0 + elif alphacode == 7: + a = 255 + else: + a = ((6 - alphacode) * a0 + (alphacode - 1) * a1) // 5 + + color_code = (code >> 2 * (4 * j + i)) & 0x03 + + if color_code == 0: + r, g, b = r0, g0, b0 + elif color_code == 1: + r, g, b = r1, g1, b1 + elif color_code == 2: + r = (2 * r0 + r1) // 3 + g = (2 * g0 + g1) // 3 + b = (2 * b0 + b1) // 3 + elif color_code == 3: + r = (2 * r1 + r0) // 3 + g = (2 * g1 + g0) // 3 + b = (2 * b1 + b0) // 3 + + ret[j].extend([r, g, b, a]) + + return ret + + +class BLPFormatError(NotImplementedError): + pass + + +class BlpImageFile(ImageFile.ImageFile): + """ + Blizzard Mipmap Format + """ + format = "BLP" + format_description = "Blizzard Mipmap Format" + + def _open(self): + self.magic = self.fp.read(4) + self._read_blp_header() + + if self.magic == b"BLP1": + decoder = "BLP1" + self.mode = "RGB" + elif self.magic == b"BLP2": + decoder = "BLP2" + self.mode = "RGBA" if self._blp_alpha_depth else "RGB" + else: + raise BLPFormatError("Bad BLP magic %r" % (self.magic)) + + self.tile = [ + (decoder, (0, 0) + self.size, 0, (self.mode, 0, 1)) + ] + + def _read_blp_header(self): + self._blp_compression, = struct.unpack(" mode, rawmode + 1: ("P", "P;1"), + 4: ("P", "P;4"), + 8: ("P", "P"), + 16: ("RGB", "BGR;15"), + 24: ("RGB", "BGR"), + 32: ("RGB", "BGRX"), +} + + +def _accept(prefix): + return prefix[:2] == b"BM" + + +def _dib_accept(prefix): + return i32(prefix[:4]) in [12, 40, 64, 108, 124] + + +# ============================================================================= +# Image plugin for the Windows BMP format. +# ============================================================================= +class BmpImageFile(ImageFile.ImageFile): + """ Image plugin for the Windows Bitmap format (BMP) """ + + # ------------------------------------------------------------- Description + format_description = "Windows Bitmap" + format = "BMP" + + # -------------------------------------------------- BMP Compression values + COMPRESSIONS = { + 'RAW': 0, + 'RLE8': 1, + 'RLE4': 2, + 'BITFIELDS': 3, + 'JPEG': 4, + 'PNG': 5 + } + RAW, RLE8, RLE4, BITFIELDS, JPEG, PNG = 0, 1, 2, 3, 4, 5 + + def _bitmap(self, header=0, offset=0): + """ Read relevant info about the BMP """ + read, seek = self.fp.read, self.fp.seek + if header: + seek(header) + file_info = {} + # read bmp header size @offset 14 (this is part of the header size) + file_info['header_size'] = i32(read(4)) + file_info['direction'] = -1 + + # -------------------- If requested, read header at a specific position + # read the rest of the bmp header, without its size + header_data = ImageFile._safe_read(self.fp, + file_info['header_size'] - 4) + + # -------------------------------------------------- IBM OS/2 Bitmap v1 + # ----- This format has different offsets because of width/height types + if file_info['header_size'] == 12: + file_info['width'] = i16(header_data[0:2]) + file_info['height'] = i16(header_data[2:4]) + file_info['planes'] = i16(header_data[4:6]) + file_info['bits'] = i16(header_data[6:8]) + file_info['compression'] = self.RAW + file_info['palette_padding'] = 3 + + # --------------------------------------------- Windows Bitmap v2 to v5 + # v3, OS/2 v2, v4, v5 + elif file_info['header_size'] in (40, 64, 108, 124): + file_info['y_flip'] = i8(header_data[7]) == 0xff + file_info['direction'] = 1 if file_info['y_flip'] else -1 + file_info['width'] = i32(header_data[0:4]) + file_info['height'] = (i32(header_data[4:8]) + if not file_info['y_flip'] + else 2**32 - i32(header_data[4:8])) + file_info['planes'] = i16(header_data[8:10]) + file_info['bits'] = i16(header_data[10:12]) + file_info['compression'] = i32(header_data[12:16]) + # byte size of pixel data + file_info['data_size'] = i32(header_data[16:20]) + file_info['pixels_per_meter'] = (i32(header_data[20:24]), + i32(header_data[24:28])) + file_info['colors'] = i32(header_data[28:32]) + file_info['palette_padding'] = 4 + self.info["dpi"] = tuple( + int(x / 39.3701 + 0.5) for x in file_info['pixels_per_meter']) + if file_info['compression'] == self.BITFIELDS: + if len(header_data) >= 52: + for idx, mask in enumerate(['r_mask', + 'g_mask', + 'b_mask', + 'a_mask']): + file_info[mask] = i32( + header_data[36 + idx * 4:40 + idx * 4] + ) + else: + # 40 byte headers only have the three components in the + # bitfields masks, ref: + # https://msdn.microsoft.com/en-us/library/windows/desktop/dd183376(v=vs.85).aspx + # See also + # https://github.com/python-pillow/Pillow/issues/1293 + # There is a 4th component in the RGBQuad, in the alpha + # location, but it is listed as a reserved component, + # and it is not generally an alpha channel + file_info['a_mask'] = 0x0 + for mask in ['r_mask', 'g_mask', 'b_mask']: + file_info[mask] = i32(read(4)) + file_info['rgb_mask'] = (file_info['r_mask'], + file_info['g_mask'], + file_info['b_mask']) + file_info['rgba_mask'] = (file_info['r_mask'], + file_info['g_mask'], + file_info['b_mask'], + file_info['a_mask']) + else: + raise IOError("Unsupported BMP header type (%d)" % + file_info['header_size']) + + # ------------------ Special case : header is reported 40, which + # ---------------------- is shorter than real size for bpp >= 16 + self._size = file_info['width'], file_info['height'] + + # ------- If color count was not found in the header, compute from bits + file_info["colors"] = (file_info["colors"] + if file_info.get("colors", 0) + else (1 << file_info["bits"])) + + # ------------------------------- Check abnormal values for DOS attacks + if file_info['width'] * file_info['height'] > 2**31: + raise IOError("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']) + + # ---------------- Process BMP with Bitfields compression (not palette) + if file_info['compression'] == self.BITFIELDS: + SUPPORTED = { + 32: [(0xff0000, 0xff00, 0xff, 0x0), + (0xff0000, 0xff00, 0xff, 0xff000000), + (0xff, 0xff00, 0xff0000, 0xff000000), + (0x0, 0x0, 0x0, 0x0), + (0xff000000, 0xff0000, 0xff00, 0x0)], + 24: [(0xff0000, 0xff00, 0xff)], + 16: [(0xf800, 0x7e0, 0x1f), (0x7c00, 0x3e0, 0x1f)] + } + MASK_MODES = { + (32, (0xff0000, 0xff00, 0xff, 0x0)): "BGRX", + (32, (0xff000000, 0xff0000, 0xff00, 0x0)): "XBGR", + (32, (0xff, 0xff00, 0xff0000, 0xff000000)): "RGBA", + (32, (0xff0000, 0xff00, 0xff, 0xff000000)): "BGRA", + (32, (0x0, 0x0, 0x0, 0x0)): "BGRA", + (24, (0xff0000, 0xff00, 0xff)): "BGR", + (16, (0xf800, 0x7e0, 0x1f)): "BGR;16", + (16, (0x7c00, 0x3e0, 0x1f)): "BGR;15" + } + if file_info['bits'] in SUPPORTED: + if file_info['bits'] == 32 and \ + file_info['rgba_mask'] in SUPPORTED[file_info['bits']]: + raw_mode = MASK_MODES[ + (file_info["bits"], file_info["rgba_mask"]) + ] + self.mode = "RGBA" if "A" in raw_mode else self.mode + elif (file_info['bits'] in (24, 16) and + file_info['rgb_mask'] in SUPPORTED[file_info['bits']]): + raw_mode = MASK_MODES[ + (file_info['bits'], file_info['rgb_mask']) + ] + else: + raise IOError("Unsupported BMP bitfields layout") + else: + raise IOError("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']) + + # --------------- 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']) + else: + padding = file_info['palette_padding'] + palette = read(padding * file_info['colors']) + greyscale = True + indices = (0, 255) if file_info['colors'] == 2 else \ + list(range(file_info['colors'])) + + # ----------------- Check if greyscale and ignore palette if so + for ind, val in enumerate(indices): + rgb = palette[ind*padding:ind*padding + 3] + if rgb != o8(val) * 3: + greyscale = False + + # ------- If all colors are grey, white or black, ditch palette + if greyscale: + self.mode = "1" if file_info['colors'] == 2 else "L" + raw_mode = self.mode + else: + self.mode = "P" + self.palette = ImagePalette.raw( + "BGRX" if padding == 4 else "BGR", palette) + + # ---------------------------- Finally set the tile data for the plugin + self.info['compression'] = file_info['compression'] + self.tile = [ + ('raw', + (0, 0, file_info['width'], file_info['height']), + offset or self.fp.tell(), + (raw_mode, + ((file_info['width'] * file_info['bits'] + 31) >> 3) & (~3), + file_info['direction'])) + ] + + def _open(self): + """ Open file, check magic number and read header """ + # read 14 bytes: magic number, filesize, reserved, header final offset + head_data = self.fp.read(14) + # choke if the file does not have the required magic bytes + if head_data[0:2] != b"BM": + raise SyntaxError("Not a BMP file") + # read the start position of the BMP image data (u32) + offset = i32(head_data[10:14]) + # load bitmap information (offset=raster info) + self._bitmap(offset=offset) + + +# ============================================================================= +# Image plugin for the DIB format (BMP alias) +# ============================================================================= +class DibImageFile(BmpImageFile): + + format = "DIB" + format_description = "Windows Bitmap" + + def _open(self): + self._bitmap() + +# +# -------------------------------------------------------------------- +# Write BMP file + + +SAVE = { + "1": ("1", 1, 2), + "L": ("L", 8, 256), + "P": ("P", 8, 256), + "RGB": ("BGR", 24, 0), + "RGBA": ("BGRA", 32, 0), +} + + +def _dib_save(im, fp, filename): + _save(im, fp, filename, False) + + +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) + + info = im.encoderinfo + + dpi = info.get("dpi", (96, 96)) + + # 1 meter == 39.3701 inches + ppm = tuple(map(lambda x: int(x * 39.3701 + 0.5), dpi)) + + stride = ((im.size[0]*bits+7)//8+3) & (~3) + header = 40 # or 64 for OS/2 version 2 + image = stride * im.size[1] + + # bitmap header + if bitmap_header: + offset = 14 + header + colors * 4 + fp.write(b"BM" + # file type (magic) + o32(offset+image) + # file size + o32(0) + # reserved + o32(offset)) # image data offset + + # bitmap info header + fp.write(o32(header) + # info header size + o32(im.size[0]) + # width + o32(im.size[1]) + # height + o16(1) + # planes + o16(bits) + # depth + o32(0) + # compression (0=uncompressed) + o32(image) + # size of bitmap + o32(ppm[0]) + o32(ppm[1]) + # resolution + o32(colors) + # colors used + o32(colors)) # colors important + + fp.write(b"\0" * (header - 40)) # padding (for OS/2 format) + + if im.mode == "1": + for i in (0, 255): + fp.write(o8(i) * 4) + elif im.mode == "L": + for i in range(256): + fp.write(o8(i) * 4) + elif im.mode == "P": + fp.write(im.im.getpalette("RGB", "BGRX")) + + ImageFile._save(im, fp, [("raw", (0, 0)+im.size, 0, + (rawmode, stride, -1))]) + +# +# -------------------------------------------------------------------- +# Registry + + +Image.register_open(BmpImageFile.format, BmpImageFile, _accept) +Image.register_save(BmpImageFile.format, _save) + +Image.register_extension(BmpImageFile.format, ".bmp") + +Image.register_mime(BmpImageFile.format, "image/bmp") + +Image.register_open(DibImageFile.format, DibImageFile, _dib_accept) +Image.register_save(DibImageFile.format, _dib_save) + +Image.register_extension(DibImageFile.format, ".dib") + +Image.register_mime(DibImageFile.format, "image/bmp") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BufrStubImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BufrStubImagePlugin.py new file mode 100644 index 00000000..a1957b32 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/BufrStubImagePlugin.py @@ -0,0 +1,72 @@ +# +# The Python Imaging Library +# $Id$ +# +# BUFR stub adapter +# +# Copyright (c) 1996-2003 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image, ImageFile + +_handler = None + + +def register_handler(handler): + """ + Install application-specific BUFR image handler. + + :param handler: Handler object. + """ + global _handler + _handler = handler + + +# -------------------------------------------------------------------- +# Image adapter + +def _accept(prefix): + return prefix[:4] == b"BUFR" or prefix[:4] == b"ZCZC" + + +class BufrStubImageFile(ImageFile.StubImageFile): + + format = "BUFR" + format_description = "BUFR" + + def _open(self): + + offset = self.fp.tell() + + if not _accept(self.fp.read(4)): + raise SyntaxError("Not a BUFR file") + + self.fp.seek(offset) + + # make something up + self.mode = "F" + self._size = 1, 1 + + loader = self._load() + if loader: + loader.open(self) + + def _load(self): + return _handler + + +def _save(im, fp, filename): + if _handler is None or not hasattr("_handler", "save"): + raise IOError("BUFR save handler not installed") + _handler.save(im, fp, filename) + + +# -------------------------------------------------------------------- +# Registry + +Image.register_open(BufrStubImageFile.format, BufrStubImageFile, _accept) +Image.register_save(BufrStubImageFile.format, _save) + +Image.register_extension(BufrStubImageFile.format, ".bufr") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ContainerIO.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ContainerIO.py new file mode 100644 index 00000000..e6c288c8 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ContainerIO.py @@ -0,0 +1,118 @@ +# +# The Python Imaging Library. +# $Id$ +# +# a class to read from a container file +# +# History: +# 1995-06-18 fl Created +# 1995-09-07 fl Added readline(), readlines() +# +# Copyright (c) 1997-2001 by Secret Labs AB +# Copyright (c) 1995 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +## +# A file object that provides read access to a part of an existing +# file (for example a TAR file). + +import io + + +class ContainerIO(object): + + def __init__(self, file, offset, length): + """ + Create file object. + + :param file: Existing file. + :param offset: Start of region, in bytes. + :param length: Size of region, in bytes. + """ + self.fh = file + self.pos = 0 + self.offset = offset + self.length = length + self.fh.seek(offset) + + ## + # Always false. + + def isatty(self): + return False + + def seek(self, offset, mode=io.SEEK_SET): + """ + Move file pointer. + + :param offset: Offset in bytes. + :param mode: Starting position. Use 0 for beginning of region, 1 + for current offset, and 2 for end of region. You cannot move + the pointer outside the defined region. + """ + if mode == 1: + self.pos = self.pos + offset + elif mode == 2: + self.pos = self.length + offset + else: + self.pos = offset + # clamp + self.pos = max(0, min(self.pos, self.length)) + self.fh.seek(self.offset + self.pos) + + def tell(self): + """ + Get current file pointer. + + :returns: Offset from start of region, in bytes. + """ + return self.pos + + def read(self, n=0): + """ + Read data. + + :param n: Number of bytes to read. If omitted or zero, + read until end of region. + :returns: An 8-bit string. + """ + if n: + n = min(n, self.length - self.pos) + else: + n = self.length - self.pos + if not n: # EOF + return "" + self.pos = self.pos + n + return self.fh.read(n) + + def readline(self): + """ + Read a line of text. + + :returns: An 8-bit string. + """ + s = "" + while True: + c = self.read(1) + if not c: + break + s = s + c + if c == "\n": + break + return s + + def readlines(self): + """ + Read multiple lines of text. + + :returns: A list of 8-bit strings. + """ + lines = [] + while True: + s = self.readline() + if not s: + break + lines.append(s) + return lines diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/CurImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/CurImagePlugin.py new file mode 100644 index 00000000..e0a5fae6 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/CurImagePlugin.py @@ -0,0 +1,80 @@ +# +# The Python Imaging Library. +# $Id$ +# +# Windows Cursor support for PIL +# +# notes: +# uses BmpImagePlugin.py to read the bitmap data. +# +# history: +# 96-05-27 fl Created +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1996. +# +# See the README file for information on usage and redistribution. +# + +from __future__ import print_function + +from . import Image, BmpImagePlugin +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" + +# +# -------------------------------------------------------------------- + + +def _accept(prefix): + return prefix[:4] == b"\0\0\2\0" + + +## +# Image plugin for Windows Cursor files. + +class CurImageFile(BmpImagePlugin.BmpImageFile): + + format = "CUR" + format_description = "Windows Cursor" + + def _open(self): + + offset = self.fp.tell() + + # check magic + s = self.fp.read(6) + if not _accept(s): + raise SyntaxError("not a CUR file") + + # pick the largest cursor in the file + m = b"" + for i in range(i16(s[4:])): + s = self.fp.read(16) + if not m: + m = s + elif i8(s[0]) > i8(m[0]) and i8(s[1]) > i8(m[1]): + m = s + if not m: + raise TypeError("No cursors were found") + + # load as bitmap + self._bitmap(i32(m[12:]) + offset) + + # patch up the bitmap height + self._size = self.size[0], self.size[1]//2 + d, e, o, a = self.tile[0] + self.tile[0] = d, (0, 0)+self.size, o, a + + return + + +# +# -------------------------------------------------------------------- + +Image.register_open(CurImageFile.format, CurImageFile, _accept) + +Image.register_extension(CurImageFile.format, ".cur") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/DcxImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/DcxImagePlugin.py new file mode 100644 index 00000000..3c8c2bc8 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/DcxImagePlugin.py @@ -0,0 +1,98 @@ +# +# The Python Imaging Library. +# $Id$ +# +# DCX file handling +# +# DCX is a container file format defined by Intel, commonly used +# for fax applications. Each DCX file consists of a directory +# (a list of file offsets) followed by a set of (usually 1-bit) +# PCX files. +# +# History: +# 1995-09-09 fl Created +# 1996-03-20 fl Properly derived from PcxImageFile. +# 1998-07-15 fl Renamed offset attribute to avoid name clash +# 2002-07-30 fl Fixed file handling +# +# Copyright (c) 1997-98 by Secret Labs AB. +# Copyright (c) 1995-96 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +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? + + +def _accept(prefix): + return len(prefix) >= 4 and i32(prefix) == MAGIC + + +## +# Image plugin for the Intel DCX format. + +class DcxImageFile(PcxImageFile): + + format = "DCX" + format_description = "Intel DCX" + _close_exclusive_fp_after_loading = False + + def _open(self): + + # Header + s = self.fp.read(4) + if i32(s) != MAGIC: + raise SyntaxError("not a DCX file") + + # Component directory + self._offset = [] + for i in range(1024): + offset = i32(self.fp.read(4)) + if not offset: + break + self._offset.append(offset) + + self.__fp = self.fp + self.frame = None + self.seek(0) + + @property + def n_frames(self): + return len(self._offset) + + @property + def is_animated(self): + return len(self._offset) > 1 + + def seek(self, frame): + if not self._seek_check(frame): + return + self.frame = frame + self.fp = self.__fp + self.fp.seek(self._offset[frame]) + PcxImageFile._open(self) + + def tell(self): + return self.frame + + def _close__fp(self): + try: + if self.__fp != self.fp: + self.__fp.close() + except AttributeError: + pass + finally: + self.__fp = None + + +Image.register_open(DcxImageFile.format, DcxImageFile, _accept) + +Image.register_extension(DcxImageFile.format, ".dcx") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/DdsImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/DdsImagePlugin.py new file mode 100644 index 00000000..3954a1d6 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/DdsImagePlugin.py @@ -0,0 +1,182 @@ +""" +A Pillow loader for .dds files (S3TC-compressed aka DXTC) +Jerome Leclanche + +Documentation: + https://web.archive.org/web/20170802060935/http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt + +The contents of this file are hereby released in the public domain (CC0) +Full text of the CC0 license: + https://creativecommons.org/publicdomain/zero/1.0/ +""" + +import struct +from io import BytesIO +from . import Image, ImageFile + + +# Magic ("DDS ") +DDS_MAGIC = 0x20534444 + +# DDS flags +DDSD_CAPS = 0x1 +DDSD_HEIGHT = 0x2 +DDSD_WIDTH = 0x4 +DDSD_PITCH = 0x8 +DDSD_PIXELFORMAT = 0x1000 +DDSD_MIPMAPCOUNT = 0x20000 +DDSD_LINEARSIZE = 0x80000 +DDSD_DEPTH = 0x800000 + +# DDS caps +DDSCAPS_COMPLEX = 0x8 +DDSCAPS_TEXTURE = 0x1000 +DDSCAPS_MIPMAP = 0x400000 + +DDSCAPS2_CUBEMAP = 0x200 +DDSCAPS2_CUBEMAP_POSITIVEX = 0x400 +DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800 +DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000 +DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000 +DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000 +DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000 +DDSCAPS2_VOLUME = 0x200000 + +# Pixel Format +DDPF_ALPHAPIXELS = 0x1 +DDPF_ALPHA = 0x2 +DDPF_FOURCC = 0x4 +DDPF_PALETTEINDEXED8 = 0x20 +DDPF_RGB = 0x40 +DDPF_LUMINANCE = 0x20000 + + +# dds.h + +DDS_FOURCC = DDPF_FOURCC +DDS_RGB = DDPF_RGB +DDS_RGBA = DDPF_RGB | DDPF_ALPHAPIXELS +DDS_LUMINANCE = DDPF_LUMINANCE +DDS_LUMINANCEA = DDPF_LUMINANCE | DDPF_ALPHAPIXELS +DDS_ALPHA = DDPF_ALPHA +DDS_PAL8 = DDPF_PALETTEINDEXED8 + +DDS_HEADER_FLAGS_TEXTURE = (DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | + DDSD_PIXELFORMAT) +DDS_HEADER_FLAGS_MIPMAP = DDSD_MIPMAPCOUNT +DDS_HEADER_FLAGS_VOLUME = DDSD_DEPTH +DDS_HEADER_FLAGS_PITCH = DDSD_PITCH +DDS_HEADER_FLAGS_LINEARSIZE = DDSD_LINEARSIZE + +DDS_HEIGHT = DDSD_HEIGHT +DDS_WIDTH = DDSD_WIDTH + +DDS_SURFACE_FLAGS_TEXTURE = DDSCAPS_TEXTURE +DDS_SURFACE_FLAGS_MIPMAP = DDSCAPS_COMPLEX | DDSCAPS_MIPMAP +DDS_SURFACE_FLAGS_CUBEMAP = DDSCAPS_COMPLEX + +DDS_CUBEMAP_POSITIVEX = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEX +DDS_CUBEMAP_NEGATIVEX = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEX +DDS_CUBEMAP_POSITIVEY = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEY +DDS_CUBEMAP_NEGATIVEY = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEY +DDS_CUBEMAP_POSITIVEZ = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_POSITIVEZ +DDS_CUBEMAP_NEGATIVEZ = DDSCAPS2_CUBEMAP | DDSCAPS2_CUBEMAP_NEGATIVEZ + + +# DXT1 +DXT1_FOURCC = 0x31545844 + +# DXT3 +DXT3_FOURCC = 0x33545844 + +# DXT5 +DXT5_FOURCC = 0x35545844 + + +# dxgiformat.h + +DXGI_FORMAT_BC7_TYPELESS = 97 +DXGI_FORMAT_BC7_UNORM = 98 +DXGI_FORMAT_BC7_UNORM_SRGB = 99 + + +class DdsImageFile(ImageFile.ImageFile): + format = "DDS" + format_description = "DirectDraw Surface" + + def _open(self): + magic, header_size = struct.unpack(" 0: + s = fp.read(min(lengthfile, 100*1024)) + if not s: + break + lengthfile -= len(s) + f.write(s) + + # Build Ghostscript command + command = ["gs", + "-q", # quiet mode + "-g%dx%d" % size, # set output geometry (pixels) + "-r%fx%f" % res, # set input DPI (dots per inch) + "-dBATCH", # exit after processing + "-dNOPAUSE", # don't pause between pages + "-dSAFER", # safe mode + "-sDEVICE=ppmraw", # ppm driver + "-sOutputFile=%s" % outfile, # output file + # adjust for image origin + "-c", "%d %d translate" % (-bbox[0], -bbox[1]), + "-f", infile, # input file + # showpage (see https://bugs.ghostscript.com/show_bug.cgi?id=698272) + "-c", "showpage", + ] + + if gs_windows_binary is not None: + if not gs_windows_binary: + raise WindowsError('Unable to locate Ghostscript on paths') + command[0] = gs_windows_binary + + # push data through Ghostscript + try: + startupinfo = None + if sys.platform.startswith('win'): + startupinfo = subprocess.STARTUPINFO() + startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW + subprocess.check_call(command, startupinfo=startupinfo) + im = Image.open(outfile) + im.load() + finally: + try: + os.unlink(outfile) + if infile_temp: + os.unlink(infile_temp) + except OSError: + pass + + return im.im.copy() + + +class PSFile(object): + """ + Wrapper for bytesio object that treats either CR or LF as end of line. + """ + def __init__(self, fp): + self.fp = fp + self.char = None + + def seek(self, offset, whence=io.SEEK_SET): + self.char = None + self.fp.seek(offset, whence) + + def readline(self): + s = self.char or b"" + self.char = None + + c = self.fp.read(1) + while c not in b"\r\n": + s = s + c + c = self.fp.read(1) + + self.char = self.fp.read(1) + # line endings can be 1 or 2 of \r \n, in either order + if self.char in b"\r\n": + self.char = None + + return s.decode('latin-1') + + +def _accept(prefix): + return prefix[:4] == b"%!PS" or \ + (len(prefix) >= 4 and i32(prefix) == 0xC6D3D0C5) + +## +# Image plugin for Encapsulated Postscript. This plugin supports only +# a few variants of this format. + + +class EpsImageFile(ImageFile.ImageFile): + """EPS File Parser for the Python Imaging Library""" + + format = "EPS" + format_description = "Encapsulated Postscript" + + mode_map = {1: "L", 2: "LAB", 3: "RGB", 4: "CMYK"} + + def _open(self): + (length, offset) = self._find_offset(self.fp) + + # Rewrap the open file pointer in something that will + # convert line endings and decode to latin-1. + fp = PSFile(self.fp) + + # go to offset - start of "%!PS" + fp.seek(offset) + + box = None + + self.mode = "RGB" + self._size = 1, 1 # FIXME: huh? + + # + # Load EPS header + + s_raw = fp.readline() + s = s_raw.strip('\r\n') + + while s_raw: + if s: + if len(s) > 255: + raise SyntaxError("not an EPS file") + + try: + m = split.match(s) + except re.error: + raise SyntaxError("not an EPS file") + + if m: + k, v = m.group(1, 2) + self.info[k] = v + if k == "BoundingBox": + try: + # Note: The DSC spec says that BoundingBox + # fields should be integers, but some drivers + # put floating point values there anyway. + box = [int(float(i)) for i in v.split()] + self._size = box[2] - box[0], box[3] - box[1] + self.tile = [("eps", (0, 0) + self.size, offset, + (length, box))] + except Exception: + pass + + else: + m = field.match(s) + if m: + k = m.group(1) + + if k == "EndComments": + break + if k[:8] == "PS-Adobe": + self.info[k[:8]] = k[9:] + else: + self.info[k] = "" + elif s[0] == '%': + # handle non-DSC Postscript comments that some + # tools mistakenly put in the Comments section + pass + else: + raise IOError("bad EPS header") + + s_raw = fp.readline() + s = s_raw.strip('\r\n') + + if s and s[:1] != "%": + break + + # + # Scan for an "ImageData" descriptor + + while s[:1] == "%": + + if len(s) > 255: + raise SyntaxError("not an EPS file") + + if s[:11] == "%ImageData:": + # Encoded bitmapped image. + x, y, bi, mo = s[11:].split(None, 7)[:4] + + if int(bi) != 8: + break + try: + self.mode = self.mode_map[int(mo)] + except ValueError: + break + + self._size = int(x), int(y) + return + + s = fp.readline().strip('\r\n') + if not s: + break + + if not box: + raise IOError("cannot determine EPS bounding box") + + def _find_offset(self, fp): + + s = fp.read(160) + + if s[:4] == b"%!PS": + # for HEAD without binary preview + fp.seek(0, io.SEEK_END) + length = fp.tell() + offset = 0 + elif i32(s[0:4]) == 0xC6D3D0C5: + # FIX for: Some EPS file not handled correctly / issue #302 + # EPS can contain binary data + # or start directly with latin coding + # more info see: + # https://web.archive.org/web/20160528181353/http://partners.adobe.com/public/developer/en/ps/5002.EPSF_Spec.pdf + offset = i32(s[4:8]) + length = i32(s[8:12]) + else: + raise SyntaxError("not an EPS file") + + return (length, offset) + + def load(self, scale=1): + # Load EPS via Ghostscript + if not self.tile: + return + self.im = Ghostscript(self.tile, self.size, self.fp, scale) + self.mode = self.im.mode + self._size = self.im.size + self.tile = [] + + def load_seek(self, *args, **kwargs): + # we can't incrementally load, so force ImageFile.parser to + # use our custom load method by defining this method. + pass + + +# +# -------------------------------------------------------------------- + +def _save(im, fp, filename, eps=1): + """EPS Writer for the Python Imaging Library.""" + + # + # make sure image data is available + im.load() + + # + # determine postscript image mode + if im.mode == "L": + operator = (8, 1, "image") + elif im.mode == "RGB": + operator = (8, 3, "false 3 colorimage") + elif im.mode == "CMYK": + operator = (8, 4, "false 4 colorimage") + else: + raise ValueError("image mode is not supported") + + base_fp = fp + wrapped_fp = False + if fp != sys.stdout: + if sys.version_info.major > 2: + fp = io.TextIOWrapper(fp, encoding='latin-1') + wrapped_fp = True + + try: + if eps: + # + # write EPS header + fp.write("%!PS-Adobe-3.0 EPSF-3.0\n") + fp.write("%%Creator: PIL 0.1 EpsEncode\n") + # fp.write("%%CreationDate: %s"...) + fp.write("%%%%BoundingBox: 0 0 %d %d\n" % im.size) + fp.write("%%Pages: 1\n") + fp.write("%%EndComments\n") + fp.write("%%Page: 1 1\n") + fp.write("%%ImageData: %d %d " % im.size) + fp.write("%d %d 0 1 1 \"%s\"\n" % operator) + + # + # image header + fp.write("gsave\n") + fp.write("10 dict begin\n") + fp.write("/buf %d string def\n" % (im.size[0] * operator[1])) + fp.write("%d %d scale\n" % im.size) + fp.write("%d %d 8\n" % im.size) # <= bits + fp.write("[%d 0 0 -%d 0 %d]\n" % (im.size[0], im.size[1], im.size[1])) + fp.write("{ currentfile buf readhexstring pop } bind\n") + fp.write(operator[2] + "\n") + if hasattr(fp, "flush"): + fp.flush() + + ImageFile._save(im, base_fp, [("eps", (0, 0)+im.size, 0, None)]) + + fp.write("\n%%%%EndBinary\n") + fp.write("grestore end\n") + if hasattr(fp, "flush"): + fp.flush() + finally: + if wrapped_fp: + fp.detach() + +# +# -------------------------------------------------------------------- + + +Image.register_open(EpsImageFile.format, EpsImageFile, _accept) + +Image.register_save(EpsImageFile.format, _save) + +Image.register_extensions(EpsImageFile.format, [".ps", ".eps"]) + +Image.register_mime(EpsImageFile.format, "application/postscript") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ExifTags.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ExifTags.py new file mode 100644 index 00000000..a8ad26bc --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ExifTags.py @@ -0,0 +1,315 @@ +# +# The Python Imaging Library. +# $Id$ +# +# EXIF tags +# +# Copyright (c) 2003 by Secret Labs AB +# +# See the README file for information on usage and redistribution. +# + +## +# This module provides constants and clear-text names for various +# well-known EXIF tags. +## + +## +# Maps EXIF tags to tag names. + +TAGS = { + + # possibly incomplete + 0x000b: "ProcessingSoftware", + 0x00fe: "NewSubfileType", + 0x00ff: "SubfileType", + 0x0100: "ImageWidth", + 0x0101: "ImageLength", + 0x0102: "BitsPerSample", + 0x0103: "Compression", + 0x0106: "PhotometricInterpretation", + 0x0107: "Thresholding", + 0x0108: "CellWidth", + 0x0109: "CellLength", + 0x010a: "FillOrder", + 0x010d: "DocumentName", + 0x010e: "ImageDescription", + 0x010f: "Make", + 0x0110: "Model", + 0x0111: "StripOffsets", + 0x0112: "Orientation", + 0x0115: "SamplesPerPixel", + 0x0116: "RowsPerStrip", + 0x0117: "StripByteCounts", + 0x0118: "MinSampleValue", + 0x0119: "MaxSampleValue", + 0x011a: "XResolution", + 0x011b: "YResolution", + 0x011c: "PlanarConfiguration", + 0x011d: "PageName", + 0x0120: "FreeOffsets", + 0x0121: "FreeByteCounts", + 0x0122: "GrayResponseUnit", + 0x0123: "GrayResponseCurve", + 0x0124: "T4Options", + 0x0125: "T6Options", + 0x0128: "ResolutionUnit", + 0x0129: "PageNumber", + 0x012d: "TransferFunction", + 0x0131: "Software", + 0x0132: "DateTime", + 0x013b: "Artist", + 0x013c: "HostComputer", + 0x013d: "Predictor", + 0x013e: "WhitePoint", + 0x013f: "PrimaryChromaticities", + 0x0140: "ColorMap", + 0x0141: "HalftoneHints", + 0x0142: "TileWidth", + 0x0143: "TileLength", + 0x0144: "TileOffsets", + 0x0145: "TileByteCounts", + 0x014a: "SubIFDs", + 0x014c: "InkSet", + 0x014d: "InkNames", + 0x014e: "NumberOfInks", + 0x0150: "DotRange", + 0x0151: "TargetPrinter", + 0x0152: "ExtraSamples", + 0x0153: "SampleFormat", + 0x0154: "SMinSampleValue", + 0x0155: "SMaxSampleValue", + 0x0156: "TransferRange", + 0x0157: "ClipPath", + 0x0158: "XClipPathUnits", + 0x0159: "YClipPathUnits", + 0x015a: "Indexed", + 0x015b: "JPEGTables", + 0x015f: "OPIProxy", + 0x0200: "JPEGProc", + 0x0201: "JpegIFOffset", + 0x0202: "JpegIFByteCount", + 0x0203: "JpegRestartInterval", + 0x0205: "JpegLosslessPredictors", + 0x0206: "JpegPointTransforms", + 0x0207: "JpegQTables", + 0x0208: "JpegDCTables", + 0x0209: "JpegACTables", + 0x0211: "YCbCrCoefficients", + 0x0212: "YCbCrSubSampling", + 0x0213: "YCbCrPositioning", + 0x0214: "ReferenceBlackWhite", + 0x02bc: "XMLPacket", + 0x1000: "RelatedImageFileFormat", + 0x1001: "RelatedImageWidth", + 0x1002: "RelatedImageLength", + 0x4746: "Rating", + 0x4749: "RatingPercent", + 0x800d: "ImageID", + 0x828d: "CFARepeatPatternDim", + 0x828e: "CFAPattern", + 0x828f: "BatteryLevel", + 0x8298: "Copyright", + 0x829a: "ExposureTime", + 0x829d: "FNumber", + 0x83bb: "IPTCNAA", + 0x8649: "ImageResources", + 0x8769: "ExifOffset", + 0x8773: "InterColorProfile", + 0x8822: "ExposureProgram", + 0x8824: "SpectralSensitivity", + 0x8825: "GPSInfo", + 0x8827: "ISOSpeedRatings", + 0x8828: "OECF", + 0x8829: "Interlace", + 0x882a: "TimeZoneOffset", + 0x882b: "SelfTimerMode", + 0x9000: "ExifVersion", + 0x9003: "DateTimeOriginal", + 0x9004: "DateTimeDigitized", + 0x9101: "ComponentsConfiguration", + 0x9102: "CompressedBitsPerPixel", + 0x9201: "ShutterSpeedValue", + 0x9202: "ApertureValue", + 0x9203: "BrightnessValue", + 0x9204: "ExposureBiasValue", + 0x9205: "MaxApertureValue", + 0x9206: "SubjectDistance", + 0x9207: "MeteringMode", + 0x9208: "LightSource", + 0x9209: "Flash", + 0x920a: "FocalLength", + 0x920b: "FlashEnergy", + 0x920c: "SpatialFrequencyResponse", + 0x920d: "Noise", + 0x9211: "ImageNumber", + 0x9212: "SecurityClassification", + 0x9213: "ImageHistory", + 0x9214: "SubjectLocation", + 0x9215: "ExposureIndex", + 0x9216: "TIFF/EPStandardID", + 0x927c: "MakerNote", + 0x9286: "UserComment", + 0x9290: "SubsecTime", + 0x9291: "SubsecTimeOriginal", + 0x9292: "SubsecTimeDigitized", + 0x9c9b: "XPTitle", + 0x9c9c: "XPComment", + 0x9c9d: "XPAuthor", + 0x9c9e: "XPKeywords", + 0x9c9f: "XPSubject", + 0xa000: "FlashPixVersion", + 0xa001: "ColorSpace", + 0xa002: "ExifImageWidth", + 0xa003: "ExifImageHeight", + 0xa004: "RelatedSoundFile", + 0xa005: "ExifInteroperabilityOffset", + 0xa20b: "FlashEnergy", + 0xa20c: "SpatialFrequencyResponse", + 0xa20e: "FocalPlaneXResolution", + 0xa20f: "FocalPlaneYResolution", + 0xa210: "FocalPlaneResolutionUnit", + 0xa214: "SubjectLocation", + 0xa215: "ExposureIndex", + 0xa217: "SensingMethod", + 0xa300: "FileSource", + 0xa301: "SceneType", + 0xa302: "CFAPattern", + 0xa401: "CustomRendered", + 0xa402: "ExposureMode", + 0xa403: "WhiteBalance", + 0xa404: "DigitalZoomRatio", + 0xa405: "FocalLengthIn35mmFilm", + 0xa406: "SceneCaptureType", + 0xa407: "GainControl", + 0xa408: "Contrast", + 0xa409: "Saturation", + 0xa40a: "Sharpness", + 0xa40b: "DeviceSettingDescription", + 0xa40c: "SubjectDistanceRange", + 0xa420: "ImageUniqueID", + 0xa430: "CameraOwnerName", + 0xa431: "BodySerialNumber", + 0xa432: "LensSpecification", + 0xa433: "LensMake", + 0xa434: "LensModel", + 0xa435: "LensSerialNumber", + 0xa500: "Gamma", + 0xc4a5: "PrintImageMatching", + 0xc612: "DNGVersion", + 0xc613: "DNGBackwardVersion", + 0xc614: "UniqueCameraModel", + 0xc615: "LocalizedCameraModel", + 0xc616: "CFAPlaneColor", + 0xc617: "CFALayout", + 0xc618: "LinearizationTable", + 0xc619: "BlackLevelRepeatDim", + 0xc61a: "BlackLevel", + 0xc61b: "BlackLevelDeltaH", + 0xc61c: "BlackLevelDeltaV", + 0xc61d: "WhiteLevel", + 0xc61e: "DefaultScale", + 0xc61f: "DefaultCropOrigin", + 0xc620: "DefaultCropSize", + 0xc621: "ColorMatrix1", + 0xc622: "ColorMatrix2", + 0xc623: "CameraCalibration1", + 0xc624: "CameraCalibration2", + 0xc625: "ReductionMatrix1", + 0xc626: "ReductionMatrix2", + 0xc627: "AnalogBalance", + 0xc628: "AsShotNeutral", + 0xc629: "AsShotWhiteXY", + 0xc62a: "BaselineExposure", + 0xc62b: "BaselineNoise", + 0xc62c: "BaselineSharpness", + 0xc62d: "BayerGreenSplit", + 0xc62e: "LinearResponseLimit", + 0xc62f: "CameraSerialNumber", + 0xc630: "LensInfo", + 0xc631: "ChromaBlurRadius", + 0xc632: "AntiAliasStrength", + 0xc633: "ShadowScale", + 0xc634: "DNGPrivateData", + 0xc635: "MakerNoteSafety", + 0xc65a: "CalibrationIlluminant1", + 0xc65b: "CalibrationIlluminant2", + 0xc65c: "BestQualityScale", + 0xc65d: "RawDataUniqueID", + 0xc68b: "OriginalRawFileName", + 0xc68c: "OriginalRawFileData", + 0xc68d: "ActiveArea", + 0xc68e: "MaskedAreas", + 0xc68f: "AsShotICCProfile", + 0xc690: "AsShotPreProfileMatrix", + 0xc691: "CurrentICCProfile", + 0xc692: "CurrentPreProfileMatrix", + 0xc6bf: "ColorimetricReference", + 0xc6f3: "CameraCalibrationSignature", + 0xc6f4: "ProfileCalibrationSignature", + 0xc6f6: "AsShotProfileName", + 0xc6f7: "NoiseReductionApplied", + 0xc6f8: "ProfileName", + 0xc6f9: "ProfileHueSatMapDims", + 0xc6fa: "ProfileHueSatMapData1", + 0xc6fb: "ProfileHueSatMapData2", + 0xc6fc: "ProfileToneCurve", + 0xc6fd: "ProfileEmbedPolicy", + 0xc6fe: "ProfileCopyright", + 0xc714: "ForwardMatrix1", + 0xc715: "ForwardMatrix2", + 0xc716: "PreviewApplicationName", + 0xc717: "PreviewApplicationVersion", + 0xc718: "PreviewSettingsName", + 0xc719: "PreviewSettingsDigest", + 0xc71a: "PreviewColorSpace", + 0xc71b: "PreviewDateTime", + 0xc71c: "RawImageDigest", + 0xc71d: "OriginalRawFileDigest", + 0xc71e: "SubTileBlockSize", + 0xc71f: "RowInterleaveFactor", + 0xc725: "ProfileLookTableDims", + 0xc726: "ProfileLookTableData", + 0xc740: "OpcodeList1", + 0xc741: "OpcodeList2", + 0xc74e: "OpcodeList3", + 0xc761: "NoiseProfile" +} + +## +# Maps EXIF GPS tags to tag names. + +GPSTAGS = { + 0: "GPSVersionID", + 1: "GPSLatitudeRef", + 2: "GPSLatitude", + 3: "GPSLongitudeRef", + 4: "GPSLongitude", + 5: "GPSAltitudeRef", + 6: "GPSAltitude", + 7: "GPSTimeStamp", + 8: "GPSSatellites", + 9: "GPSStatus", + 10: "GPSMeasureMode", + 11: "GPSDOP", + 12: "GPSSpeedRef", + 13: "GPSSpeed", + 14: "GPSTrackRef", + 15: "GPSTrack", + 16: "GPSImgDirectionRef", + 17: "GPSImgDirection", + 18: "GPSMapDatum", + 19: "GPSDestLatitudeRef", + 20: "GPSDestLatitude", + 21: "GPSDestLongitudeRef", + 22: "GPSDestLongitude", + 23: "GPSDestBearingRef", + 24: "GPSDestBearing", + 25: "GPSDestDistanceRef", + 26: "GPSDestDistance", + 27: "GPSProcessingMethod", + 28: "GPSAreaInformation", + 29: "GPSDateStamp", + 30: "GPSDifferential", + 31: "GPSHPositioningError", +} diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FitsStubImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FitsStubImagePlugin.py new file mode 100644 index 00000000..63c195c4 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FitsStubImagePlugin.py @@ -0,0 +1,75 @@ +# +# The Python Imaging Library +# $Id$ +# +# FITS stub adapter +# +# Copyright (c) 1998-2003 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image, ImageFile + +_handler = None + + +def register_handler(handler): + """ + Install application-specific FITS image handler. + + :param handler: Handler object. + """ + global _handler + _handler = handler + +# -------------------------------------------------------------------- +# Image adapter + + +def _accept(prefix): + return prefix[:6] == b"SIMPLE" + + +class FITSStubImageFile(ImageFile.StubImageFile): + + format = "FITS" + format_description = "FITS" + + def _open(self): + + offset = self.fp.tell() + + if not _accept(self.fp.read(6)): + raise SyntaxError("Not a FITS file") + + # FIXME: add more sanity checks here; mandatory header items + # include SIMPLE, BITPIX, NAXIS, etc. + + self.fp.seek(offset) + + # make something up + self.mode = "F" + self._size = 1, 1 + + loader = self._load() + if loader: + loader.open(self) + + def _load(self): + return _handler + + +def _save(im, fp, filename): + if _handler is None or not hasattr("_handler", "save"): + raise IOError("FITS save handler not installed") + _handler.save(im, fp, filename) + + +# -------------------------------------------------------------------- +# Registry + +Image.register_open(FITSStubImageFile.format, FITSStubImageFile, _accept) +Image.register_save(FITSStubImageFile.format, _save) + +Image.register_extensions(FITSStubImageFile.format, [".fit", ".fits"]) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FliImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FliImagePlugin.py new file mode 100644 index 00000000..bbc1a134 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FliImagePlugin.py @@ -0,0 +1,177 @@ +# +# The Python Imaging Library. +# $Id$ +# +# FLI/FLC file handling. +# +# History: +# 95-09-01 fl Created +# 97-01-03 fl Fixed parser, setup decoder tile +# 98-07-15 fl Renamed offset attribute to avoid name clash +# +# Copyright (c) Secret Labs AB 1997-98. +# Copyright (c) Fredrik Lundh 1995-97. +# +# See the README file for information on usage and redistribution. +# + + +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 + +def _accept(prefix): + return len(prefix) >= 6 and i16(prefix[4:6]) in [0xAF11, 0xAF12] + + +## +# Image plugin for the FLI/FLC animation format. Use the seek +# method to load individual frames. + +class FliImageFile(ImageFile.ImageFile): + + format = "FLI" + format_description = "Autodesk FLI/FLC Animation" + _close_exclusive_fp_after_loading = False + + def _open(self): + + # HEAD + s = self.fp.read(128) + magic = i16(s[4:6]) + if not (magic in [0xAF11, 0xAF12] and + i16(s[14:16]) in [0, 3] and # flags + s[20:22] == b"\x00\x00"): # reserved + raise SyntaxError("not an FLI/FLC file") + + # frames + self.__framecount = i16(s[6:8]) + + # image characteristics + self.mode = "P" + self._size = i16(s[8:10]), i16(s[10:12]) + + # animation speed + duration = i32(s[16:20]) + if magic == 0xAF11: + duration = (duration * 1000) // 70 + self.info["duration"] = duration + + # look for palette + palette = [(a, a, a) for a in range(256)] + + s = self.fp.read(16) + + self.__offset = 128 + + if i16(s[4:6]) == 0xF100: + # prefix chunk; ignore it + self.__offset = self.__offset + i32(s) + s = self.fp.read(16) + + if i16(s[4:6]) == 0xF1FA: + # look for palette chunk + s = self.fp.read(6) + if i16(s[4:6]) == 11: + self._palette(palette, 2) + elif i16(s[4:6]) == 4: + self._palette(palette, 0) + + palette = [o8(r)+o8(g)+o8(b) for (r, g, b) in palette] + self.palette = ImagePalette.raw("RGB", b"".join(palette)) + + # set things up to decode first frame + self.__frame = -1 + self.__fp = self.fp + self.__rewind = self.fp.tell() + self.seek(0) + + def _palette(self, palette, shift): + # load palette + + i = 0 + for e in range(i16(self.fp.read(2))): + s = self.fp.read(2) + i = i + i8(s[0]) + n = i8(s[1]) + if n == 0: + n = 256 + s = self.fp.read(n * 3) + for n in range(0, len(s), 3): + r = i8(s[n]) << shift + g = i8(s[n+1]) << shift + b = i8(s[n+2]) << shift + palette[i] = (r, g, b) + i += 1 + + @property + def n_frames(self): + return self.__framecount + + @property + def is_animated(self): + return self.__framecount > 1 + + def seek(self, frame): + if not self._seek_check(frame): + return + if frame < self.__frame: + self._seek(0) + + for f in range(self.__frame + 1, frame + 1): + self._seek(f) + + def _seek(self, frame): + if frame == 0: + self.__frame = -1 + self.__fp.seek(self.__rewind) + self.__offset = 128 + else: + # ensure that the previous frame was loaded + self.load() + + if frame != self.__frame + 1: + raise ValueError("cannot seek to frame %d" % frame) + self.__frame = frame + + # move to next frame + self.fp = self.__fp + self.fp.seek(self.__offset) + + s = self.fp.read(4) + if not s: + raise EOFError + + framesize = i32(s) + + self.decodermaxblock = framesize + self.tile = [("fli", (0, 0)+self.size, self.__offset, None)] + + self.__offset += framesize + + def tell(self): + return self.__frame + + def _close__fp(self): + try: + if self.__fp != self.fp: + self.__fp.close() + except AttributeError: + pass + finally: + self.__fp = None + + +# +# registry + +Image.register_open(FliImageFile.format, FliImageFile, _accept) + +Image.register_extensions(FliImageFile.format, [".fli", ".flc"]) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FontFile.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FontFile.py new file mode 100644 index 00000000..b43f4476 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FontFile.py @@ -0,0 +1,113 @@ +# +# The Python Imaging Library +# $Id$ +# +# base class for raster font file parsers +# +# history: +# 1997-06-05 fl created +# 1997-08-19 fl restrict image width +# +# Copyright (c) 1997-1998 by Secret Labs AB +# Copyright (c) 1997-1998 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from __future__ import print_function + +import os +from . import Image, _binary + +WIDTH = 800 + + +def puti16(fp, values): + # write network order (big-endian) 16-bit sequence + for v in values: + if v < 0: + v += 65536 + fp.write(_binary.o16be(v)) + + +## +# Base class for raster font file handlers. + +class FontFile(object): + + bitmap = None + + def __init__(self): + + self.info = {} + self.glyph = [None] * 256 + + def __getitem__(self, ix): + return self.glyph[ix] + + def compile(self): + """Create metrics and bitmap""" + + if self.bitmap: + return + + # create bitmap large enough to hold all data + h = w = maxwidth = 0 + lines = 1 + for glyph in self: + if glyph: + d, dst, src, im = glyph + h = max(h, src[3] - src[1]) + w = w + (src[2] - src[0]) + if w > WIDTH: + lines += 1 + w = (src[2] - src[0]) + maxwidth = max(maxwidth, w) + + xsize = maxwidth + ysize = lines * h + + if xsize == 0 and ysize == 0: + return "" + + self.ysize = h + + # paste glyphs into bitmap + self.bitmap = Image.new("1", (xsize, ysize)) + self.metrics = [None] * 256 + x = y = 0 + for i in range(256): + glyph = self[i] + if glyph: + d, dst, src, im = glyph + xx = src[2] - src[0] + # yy = src[3] - src[1] + x0, y0 = x, y + x = x + xx + if x > WIDTH: + x, y = 0, y + h + x0, y0 = x, y + x = xx + s = src[0] + x0, src[1] + y0, src[2] + x0, src[3] + y0 + self.bitmap.paste(im.crop(src), s) + self.metrics[i] = d, dst, s + + def save(self, filename): + """Save font""" + + self.compile() + + # font data + self.bitmap.save(os.path.splitext(filename)[0] + ".pbm", "PNG") + + # font metrics + with open(os.path.splitext(filename)[0] + ".pil", "wb") as fp: + fp.write(b"PILfont\n") + fp.write((";;;;;;%d;\n" % self.ysize).encode('ascii')) # HACK!!! + fp.write(b"DATA\n") + for id in range(256): + m = self.metrics[id] + if not m: + puti16(fp, [0] * 10) + else: + puti16(fp, m[0] + m[1] + m[2]) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FpxImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FpxImagePlugin.py new file mode 100644 index 00000000..5e8a814f --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FpxImagePlugin.py @@ -0,0 +1,227 @@ +# +# THIS IS WORK IN PROGRESS +# +# The Python Imaging Library. +# $Id$ +# +# FlashPix support for PIL +# +# History: +# 97-01-25 fl Created (reads uncompressed RGB images only) +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1997. +# +# See the README file for information on usage and redistribution. +# + +from __future__ import print_function + +from . import Image, ImageFile +from ._binary import i32le as i32, i8 + +import olefile + +# __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 + (0x00007ffe): ("A", "L"), + # monochrome + (0x00010000,): ("L", "L"), + (0x00018000, 0x00017ffe): ("RGBA", "LA"), + # photo YCC + (0x00020000, 0x00020001, 0x00020002): ("RGB", "YCC;P"), + (0x00028000, 0x00028001, 0x00028002, 0x00027ffe): ("RGBA", "YCCA;P"), + # standard RGB (NIFRGB) + (0x00030000, 0x00030001, 0x00030002): ("RGB", "RGB"), + (0x00038000, 0x00038001, 0x00038002, 0x00037ffe): ("RGBA", "RGBA"), +} + + +# +# -------------------------------------------------------------------- + +def _accept(prefix): + return prefix[:8] == olefile.MAGIC + + +## +# Image plugin for the FlashPix images. + +class FpxImageFile(ImageFile.ImageFile): + + format = "FPX" + format_description = "FlashPix" + + def _open(self): + # + # read the OLE directory and see if this is a likely + # to be a FlashPix file + + try: + self.ole = olefile.OleFileIO(self.fp) + except IOError: + raise SyntaxError("not an FPX file; invalid OLE file") + + if self.ole.root.clsid != "56616700-C154-11CE-8553-00AA00A1F95B": + raise SyntaxError("not an FPX file; bad root CLSID") + + self._open_index(1) + + def _open_index(self, index=1): + # + # get the Image Contents Property Set + + prop = self.ole.getproperties([ + "Data Object Store %06d" % index, + "\005Image Contents" + ]) + + # size (highest resolution) + + self._size = prop[0x1000002], prop[0x1000003] + + size = max(self.size) + i = 1 + while size > 64: + size = size / 2 + i += 1 + self.maxid = i - 1 + + # mode. instead of using a single field for this, flashpix + # requires you to specify the mode for each channel in each + # resolution subimage, and leaves it to the decoder to make + # sure that they all match. for now, we'll cheat and assume + # that this is always the case. + + id = self.maxid << 16 + + s = prop[0x2000002 | id] + + colors = [] + for i in range(i32(s, 4)): + # note: for now, we ignore the "uncalibrated" flag + colors.append(i32(s, 8+i*4) & 0x7fffffff) + + self.mode, self.rawmode = MODES[tuple(colors)] + + # load JPEG tables, if any + self.jpeg = {} + for i in range(256): + id = 0x3000001 | (i << 16) + if id in prop: + self.jpeg[i] = prop[id] + + self._open_subimage(1, self.maxid) + + def _open_subimage(self, index=1, subimage=0): + # + # setup tile descriptors for a given subimage + + stream = [ + "Data Object Store %06d" % index, + "Resolution %04d" % subimage, + "Subimage 0000 Header" + ] + + fp = self.ole.openstream(stream) + + # skip prefix + fp.read(28) + + # header stream + s = fp.read(36) + + size = i32(s, 4), i32(s, 8) + # tilecount = i32(s, 12) + tilesize = i32(s, 16), i32(s, 20) + # channels = i32(s, 24) + offset = i32(s, 28) + length = i32(s, 32) + + if size != self.size: + raise IOError("subimage mismatch") + + # get tile descriptors + fp.seek(28 + offset) + s = fp.read(i32(s, 12) * length) + + x = y = 0 + xsize, ysize = size + xtile, ytile = tilesize + self.tile = [] + + for i in range(0, len(s), length): + + compression = i32(s, i+8) + + if compression == 0: + self.tile.append(("raw", (x, y, x+xtile, y+ytile), + i32(s, i) + 28, (self.rawmode))) + + elif compression == 1: + + # FIXME: the fill decoder is not implemented + self.tile.append(("fill", (x, y, x+xtile, y+ytile), + i32(s, i) + 28, (self.rawmode, s[12:16]))) + + elif compression == 2: + + internal_color_conversion = i8(s[14]) + jpeg_tables = i8(s[15]) + rawmode = self.rawmode + + if internal_color_conversion: + # The image is stored as usual (usually YCbCr). + if rawmode == "RGBA": + # For "RGBA", data is stored as YCbCrA based on + # negative RGB. The following trick works around + # this problem : + jpegmode, rawmode = "YCbCrK", "CMYK" + else: + jpegmode = None # let the decoder decide + + else: + # The image is stored as defined by rawmode + jpegmode = rawmode + + self.tile.append(("jpeg", (x, y, x+xtile, y+ytile), + i32(s, i) + 28, (rawmode, jpegmode))) + + # FIXME: jpeg tables are tile dependent; the prefix + # data must be placed in the tile descriptor itself! + + if jpeg_tables: + self.tile_prefix = self.jpeg[jpeg_tables] + + else: + raise IOError("unknown/invalid compression") + + x = x + xtile + if x >= xsize: + x, y = 0, y + ytile + if y >= ysize: + break # isn't really required + + self.stream = stream + self.fp = None + + def load(self): + + if not self.fp: + self.fp = self.ole.openstream(self.stream[:2] + + ["Subimage 0000 Data"]) + + return ImageFile.ImageFile.load(self) + +# +# -------------------------------------------------------------------- + + +Image.register_open(FpxImageFile.format, FpxImageFile, _accept) + +Image.register_extension(FpxImageFile.format, ".fpx") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FtexImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FtexImagePlugin.py new file mode 100644 index 00000000..f1b9acdc --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/FtexImagePlugin.py @@ -0,0 +1,107 @@ +""" +A Pillow loader for .ftc and .ftu files (FTEX) +Jerome Leclanche + +The contents of this file are hereby released in the public domain (CC0) +Full text of the CC0 license: + https://creativecommons.org/publicdomain/zero/1.0/ + +Independence War 2: Edge Of Chaos - Texture File Format - 16 October 2001 + +The textures used for 3D objects in Independence War 2: Edge Of Chaos are in a +packed custom format called FTEX. This file format uses file extensions FTC +and FTU. +* FTC files are compressed textures (using standard texture compression). +* FTU files are not compressed. +Texture File Format +The FTC and FTU texture files both use the same format. This +has the following structure: +{header} +{format_directory} +{data} +Where: +{header} = { + u32:magic, + u32:version, + u32:width, + u32:height, + u32:mipmap_count, + u32:format_count +} + +* The "magic" number is "FTEX". +* "width" and "height" are the dimensions of the texture. +* "mipmap_count" is the number of mipmaps in the texture. +* "format_count" is the number of texture formats (different versions of the +same texture) in this file. + +{format_directory} = format_count * { u32:format, u32:where } + +The format value is 0 for DXT1 compressed textures and 1 for 24-bit RGB +uncompressed textures. +The texture data for a format starts at the position "where" in the file. + +Each set of texture data in the file has the following structure: +{data} = format_count * { u32:mipmap_size, mipmap_size * { u8 } } +* "mipmap_size" is the number of bytes in that mip level. For compressed +textures this is the size of the texture data compressed with DXT1. For 24 bit +uncompressed textures, this is 3 * width * height. Following this are the image +bytes for that mipmap level. + +Note: All data is stored in little-Endian (Intel) byte order. +""" + +import struct +from io import BytesIO +from . import Image, ImageFile + + +MAGIC = b"FTEX" +FORMAT_DXT1 = 0 +FORMAT_UNCOMPRESSED = 1 + + +class FtexImageFile(ImageFile.ImageFile): + format = "FTEX" + format_description = "Texture File Format (IW2:EOC)" + + def _open(self): + struct.unpack("= 8 and \ + i32(prefix[:4]) >= 20 and i32(prefix[4:8]) in (1, 2) + + +## +# Image plugin for the GIMP brush format. + +class GbrImageFile(ImageFile.ImageFile): + + format = "GBR" + format_description = "GIMP brush file" + + def _open(self): + header_size = i32(self.fp.read(4)) + version = i32(self.fp.read(4)) + if header_size < 20: + raise SyntaxError("not a GIMP brush") + if version not in (1, 2): + raise SyntaxError("Unsupported GIMP brush version: %s" % version) + + width = i32(self.fp.read(4)) + height = i32(self.fp.read(4)) + color_depth = i32(self.fp.read(4)) + if width <= 0 or height <= 0: + raise SyntaxError("not a GIMP brush") + if color_depth not in (1, 4): + raise SyntaxError( + "Unsupported GIMP brush color depth: %s" % color_depth) + + if version == 1: + comment_length = header_size-20 + else: + comment_length = header_size-28 + magic_number = self.fp.read(4) + if magic_number != b'GIMP': + raise SyntaxError("not a GIMP brush, bad magic number") + self.info['spacing'] = i32(self.fp.read(4)) + + comment = self.fp.read(comment_length)[:-1] + + if color_depth == 1: + self.mode = "L" + else: + self.mode = 'RGBA' + + self._size = width, height + + self.info["comment"] = comment + + # Image might not be small + Image._decompression_bomb_check(self.size) + + # Data is an uncompressed block of w * h * bytes/pixel + self._data_size = width * height * color_depth + + def load(self): + self.im = Image.core.new(self.mode, self.size) + self.frombytes(self.fp.read(self._data_size)) + +# +# registry + + +Image.register_open(GbrImageFile.format, GbrImageFile, _accept) +Image.register_extension(GbrImageFile.format, ".gbr") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GdImageFile.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GdImageFile.py new file mode 100644 index 00000000..9f00b2fe --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GdImageFile.py @@ -0,0 +1,87 @@ +# +# The Python Imaging Library. +# $Id$ +# +# GD file handling +# +# History: +# 1996-04-12 fl Created +# +# Copyright (c) 1997 by Secret Labs AB. +# Copyright (c) 1996 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + + +# NOTE: This format cannot be automatically recognized, so the +# class is not registered for use with Image.open(). To open a +# gd file, use the GdImageFile.open() function instead. + +# THE GD FORMAT IS NOT DESIGNED FOR DATA INTERCHANGE. This +# implementation is provided for convenience and demonstrational +# purposes only. + + +from . import ImageFile, ImagePalette +from ._binary import i8, i16be as i16, i32be as i32 + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.1" + + +## +# Image plugin for the GD uncompressed format. Note that this format +# is not supported by the standard Image.open function. To use +# this plugin, you have to import the GdImageFile module and +# use the GdImageFile.open function. + +class GdImageFile(ImageFile.ImageFile): + + format = "GD" + format_description = "GD uncompressed images" + + def _open(self): + + # Header + s = self.fp.read(1037) + + if not i16(s[:2]) in [65534, 65535]: + raise SyntaxError("Not a valid GD 2.x .gd file") + + self.mode = "L" # FIXME: "P" + self._size = i16(s[2:4]), i16(s[4:6]) + + trueColor = i8(s[6]) + trueColorOffset = 2 if trueColor else 0 + + # transparency index + tindex = i32(s[7+trueColorOffset:7+trueColorOffset+4]) + if tindex < 256: + self.info["transparency"] = tindex + + self.palette = ImagePalette.raw( + "XBGR", s[7+trueColorOffset+4:7+trueColorOffset+4+256*4]) + + self.tile = [("raw", (0, 0)+self.size, 7+trueColorOffset+4+256*4, + ("L", 0, 1))] + + +def open(fp, mode="r"): + """ + Load texture from a GD image file. + + :param filename: GD file name, or an opened file handle. + :param mode: Optional mode. In this version, if the mode argument + is given, it must be "r". + :returns: An image instance. + :raises IOError: If the image could not be read. + """ + if mode != "r": + raise ValueError("bad mode") + + try: + return GdImageFile(fp) + except SyntaxError: + raise IOError("cannot identify this image file") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GifImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GifImagePlugin.py new file mode 100644 index 00000000..3dc13ac0 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GifImagePlugin.py @@ -0,0 +1,856 @@ +# +# The Python Imaging Library. +# $Id$ +# +# GIF file handling +# +# History: +# 1995-09-01 fl Created +# 1996-12-14 fl Added interlace support +# 1996-12-30 fl Added animation support +# 1997-01-05 fl Added write support, fixed local colour map bug +# 1997-02-23 fl Make sure to load raster data in getdata() +# 1997-07-05 fl Support external decoder (0.4) +# 1998-07-09 fl Handle all modes when saving (0.5) +# 1998-07-15 fl Renamed offset attribute to avoid name clash +# 2001-04-16 fl Added rewind support (seek to frame 0) (0.6) +# 2001-04-17 fl Added palette optimization (0.7) +# 2002-06-06 fl Added transparency support for save (0.8) +# 2004-02-24 fl Disable interlacing for small images +# +# Copyright (c) 1997-2004 by Secret Labs AB +# Copyright (c) 1995-2004 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image, ImageFile, ImagePalette, ImageChops, ImageSequence +from ._binary import i8, i16le as i16, o8, o16le as o16 + +import itertools + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.9" + + +# -------------------------------------------------------------------- +# Identify/read GIF files + +def _accept(prefix): + return prefix[:6] in [b"GIF87a", b"GIF89a"] + + +## +# Image plugin for GIF images. This plugin supports both GIF87 and +# GIF89 images. + +class GifImageFile(ImageFile.ImageFile): + + format = "GIF" + format_description = "Compuserve GIF" + _close_exclusive_fp_after_loading = False + + global_palette = None + + def data(self): + s = self.fp.read(1) + if s and i8(s): + return self.fp.read(i8(s)) + return None + + def _open(self): + + # Screen + s = self.fp.read(13) + if s[:6] not in [b"GIF87a", b"GIF89a"]: + raise SyntaxError("not a GIF file") + + self.info["version"] = s[:6] + self._size = i16(s[6:]), i16(s[8:]) + self.tile = [] + flags = i8(s[10]) + bits = (flags & 7) + 1 + + if flags & 128: + # get global palette + self.info["background"] = i8(s[11]) + # check if palette contains colour indices + p = self.fp.read(3 << bits) + for i in range(0, len(p), 3): + if not (i//3 == i8(p[i]) == i8(p[i+1]) == i8(p[i+2])): + p = ImagePalette.raw("RGB", p) + self.global_palette = self.palette = p + break + + self.__fp = self.fp # FIXME: hack + self.__rewind = self.fp.tell() + self._n_frames = None + self._is_animated = None + self._seek(0) # get ready to read first frame + + @property + def n_frames(self): + if self._n_frames is None: + current = self.tell() + try: + while True: + self.seek(self.tell() + 1) + except EOFError: + self._n_frames = self.tell() + 1 + self.seek(current) + return self._n_frames + + @property + def is_animated(self): + if self._is_animated is None: + if self._n_frames is not None: + self._is_animated = self._n_frames != 1 + else: + current = self.tell() + + try: + self.seek(1) + self._is_animated = True + except EOFError: + self._is_animated = False + + self.seek(current) + return self._is_animated + + def seek(self, frame): + if not self._seek_check(frame): + return + if frame < self.__frame: + if frame != 0: + self.im = None + self._seek(0) + + 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 GIF file") + + def _seek(self, frame): + + if frame == 0: + # rewind + self.__offset = 0 + self.dispose = None + self.dispose_extent = [0, 0, 0, 0] # x0, y0, x1, y1 + self.__frame = -1 + self.__fp.seek(self.__rewind) + self._prev_im = None + self.disposal_method = 0 + else: + # ensure that the previous frame was loaded + if not self.im: + self.load() + + if frame != self.__frame + 1: + raise ValueError("cannot seek to frame %d" % frame) + self.__frame = frame + + self.tile = [] + + self.fp = self.__fp + if self.__offset: + # backup to last frame + self.fp.seek(self.__offset) + while self.data(): + pass + self.__offset = 0 + + if self.dispose: + self.im.paste(self.dispose, self.dispose_extent) + + from copy import copy + self.palette = copy(self.global_palette) + + info = {} + while True: + + s = self.fp.read(1) + if not s or s == b";": + break + + elif s == b"!": + # + # extensions + # + s = self.fp.read(1) + block = self.data() + if i8(s) == 249: + # + # graphic control extension + # + flags = i8(block[0]) + if flags & 1: + info["transparency"] = i8(block[3]) + info["duration"] = i16(block[1:3]) * 10 + + # disposal method - find the value of bits 4 - 6 + dispose_bits = 0b00011100 & flags + dispose_bits = dispose_bits >> 2 + if dispose_bits: + # only set the dispose if it is not + # unspecified. I'm not sure if this is + # correct, but it seems to prevent the last + # frame from looking odd for some animations + self.disposal_method = dispose_bits + elif i8(s) == 254: + # + # comment extension + # + while block: + if "comment" in info: + info["comment"] += block + else: + info["comment"] = block + block = self.data() + continue + elif i8(s) == 255: + # + # application extension + # + info["extension"] = block, self.fp.tell() + if block[:11] == b"NETSCAPE2.0": + block = self.data() + if len(block) >= 3 and i8(block[0]) == 1: + info["loop"] = i16(block[1:3]) + while self.data(): + pass + + elif s == b",": + # + # local image + # + s = self.fp.read(9) + + # extent + x0, y0 = i16(s[0:]), i16(s[2:]) + x1, y1 = x0 + i16(s[4:]), y0 + i16(s[6:]) + self.dispose_extent = x0, y0, x1, y1 + flags = i8(s[8]) + + interlace = (flags & 64) != 0 + + if flags & 128: + bits = (flags & 7) + 1 + self.palette =\ + ImagePalette.raw("RGB", self.fp.read(3 << bits)) + + # image data + bits = i8(self.fp.read(1)) + self.__offset = self.fp.tell() + self.tile = [("gif", + (x0, y0, x1, y1), + self.__offset, + (bits, interlace))] + break + + else: + pass + # raise IOError, "illegal GIF tag `%x`" % i8(s) + + try: + if self.disposal_method < 2: + # do not dispose or none specified + self.dispose = None + elif self.disposal_method == 2: + # replace with background colour + self.dispose = Image.core.fill("P", self.size, + self.info["background"]) + else: + # replace with previous contents + if self.im: + self.dispose = self.im.copy() + + # only dispose the extent in this frame + if self.dispose: + self.dispose = self._crop(self.dispose, self.dispose_extent) + except (AttributeError, KeyError): + pass + + if not self.tile: + # self.__fp = None + raise EOFError + + for k in ["transparency", "duration", "comment", "extension", "loop"]: + if k in info: + self.info[k] = info[k] + elif k in self.info: + del self.info[k] + + self.mode = "L" + if self.palette: + self.mode = "P" + + def tell(self): + return self.__frame + + def load_end(self): + ImageFile.ImageFile.load_end(self) + + # if the disposal method is 'do not dispose', transparent + # pixels should show the content of the previous frame + if self._prev_im and self.disposal_method == 1: + # we do this by pasting the updated area onto the previous + # frame which we then use as the current image content + updated = self._crop(self.im, self.dispose_extent) + self._prev_im.paste(updated, self.dispose_extent, + updated.convert('RGBA')) + self.im = self._prev_im + self._prev_im = self.im.copy() + + def _close__fp(self): + try: + if self.__fp != self.fp: + self.__fp.close() + except AttributeError: + pass + finally: + self.__fp = None + +# -------------------------------------------------------------------- +# Write GIF files + + +RAWMODE = { + "1": "L", + "L": "L", + "P": "P" +} + + +def _normalize_mode(im, initial_call=False): + """ + Takes an image (or frame), returns an image in a mode that is appropriate + for saving in a Gif. + + It may return the original image, or it may return an image converted to + palette or 'L' mode. + + UNDONE: What is the point of mucking with the initial call palette, for + an image that shouldn't have a palette, or it would be a mode 'P' and + get returned in the RAWMODE clause. + + :param im: Image object + :param initial_call: Default false, set to true for a single frame. + :returns: Image object + """ + if im.mode in RAWMODE: + im.load() + return im + if Image.getmodebase(im.mode) == "RGB": + if initial_call: + palette_size = 256 + if im.palette: + palette_size = len(im.palette.getdata()[1]) // 3 + return im.convert("P", palette=Image.ADAPTIVE, colors=palette_size) + else: + return im.convert("P") + return im.convert("L") + + +def _normalize_palette(im, palette, info): + """ + Normalizes the palette for image. + - Sets the palette to the incoming palette, if provided. + - Ensures that there's a palette for L mode images + - Optimizes the palette if necessary/desired. + + :param im: Image object + :param palette: bytes object containing the source palette, or .... + :param info: encoderinfo + :returns: Image object + """ + source_palette = None + if palette: + # a bytes palette + if isinstance(palette, (bytes, bytearray, list)): + source_palette = bytearray(palette[:768]) + if isinstance(palette, ImagePalette.ImagePalette): + source_palette = bytearray(itertools.chain.from_iterable( + zip(palette.palette[:256], + palette.palette[256:512], + palette.palette[512:768]))) + + if im.mode == "P": + if not source_palette: + source_palette = im.im.getpalette("RGB")[:768] + else: # L-mode + if not source_palette: + source_palette = bytearray(i//3 for i in range(768)) + im.palette = ImagePalette.ImagePalette("RGB", + palette=source_palette) + + used_palette_colors = _get_optimize(im, info) + if used_palette_colors is not None: + return im.remap_palette(used_palette_colors, source_palette) + + im.palette.palette = source_palette + return im + + +def _write_single_frame(im, fp, palette): + im_out = _normalize_mode(im, True) + for k, v in im_out.info.items(): + im.encoderinfo.setdefault(k, v) + im_out = _normalize_palette(im_out, palette, im.encoderinfo) + + for s in _get_global_header(im_out, im.encoderinfo): + fp.write(s) + + # local image header + flags = 0 + if get_interlace(im): + flags = flags | 64 + _write_local_header(fp, im, (0, 0), flags) + + im_out.encoderconfig = (8, get_interlace(im)) + ImageFile._save(im_out, fp, [("gif", (0, 0)+im.size, 0, + RAWMODE[im_out.mode])]) + + fp.write(b"\0") # end of image data + + +def _write_multiple_frames(im, fp, palette): + + duration = im.encoderinfo.get("duration", im.info.get("duration")) + disposal = im.encoderinfo.get("disposal", im.info.get("disposal")) + + im_frames = [] + frame_count = 0 + for imSequence in itertools.chain([im], + im.encoderinfo.get("append_images", [])): + for im_frame in ImageSequence.Iterator(imSequence): + # a copy is required here since seek can still mutate the image + im_frame = _normalize_mode(im_frame.copy()) + if frame_count == 0: + for k, v in im_frame.info.items(): + im.encoderinfo.setdefault(k, v) + im_frame = _normalize_palette(im_frame, palette, im.encoderinfo) + + encoderinfo = im.encoderinfo.copy() + if isinstance(duration, (list, tuple)): + encoderinfo['duration'] = duration[frame_count] + if isinstance(disposal, (list, tuple)): + encoderinfo["disposal"] = disposal[frame_count] + frame_count += 1 + + if im_frames: + # delta frame + previous = im_frames[-1] + if _get_palette_bytes(im_frame) == \ + _get_palette_bytes(previous['im']): + delta = ImageChops.subtract_modulo(im_frame, + previous['im']) + else: + delta = ImageChops.subtract_modulo( + im_frame.convert('RGB'), previous['im'].convert('RGB')) + bbox = delta.getbbox() + if not bbox: + # This frame is identical to the previous frame + if duration: + previous['encoderinfo']['duration'] += \ + encoderinfo['duration'] + continue + else: + bbox = None + im_frames.append({ + 'im': im_frame, + 'bbox': bbox, + 'encoderinfo': encoderinfo + }) + + if len(im_frames) > 1: + for frame_data in im_frames: + im_frame = frame_data['im'] + if not frame_data['bbox']: + # global header + for s in _get_global_header(im_frame, + frame_data['encoderinfo']): + fp.write(s) + offset = (0, 0) + else: + # compress difference + frame_data['encoderinfo']['include_color_table'] = True + + im_frame = im_frame.crop(frame_data['bbox']) + offset = frame_data['bbox'][:2] + _write_frame_data(fp, im_frame, offset, frame_data['encoderinfo']) + return True + + +def _save_all(im, fp, filename): + _save(im, fp, filename, save_all=True) + + +def _save(im, fp, filename, save_all=False): + # header + if "palette" in im.encoderinfo or "palette" in im.info: + palette = im.encoderinfo.get("palette", im.info.get("palette")) + else: + palette = None + im.encoderinfo["optimize"] = im.encoderinfo.get("optimize", True) + + if not save_all or not _write_multiple_frames(im, fp, palette): + _write_single_frame(im, fp, palette) + + fp.write(b";") # end of file + + if hasattr(fp, "flush"): + fp.flush() + + +def get_interlace(im): + interlace = im.encoderinfo.get("interlace", 1) + + # workaround for @PIL153 + if min(im.size) < 16: + interlace = 0 + + return interlace + + +def _write_local_header(fp, im, offset, flags): + transparent_color_exists = False + try: + transparency = im.encoderinfo["transparency"] + except KeyError: + pass + else: + transparency = int(transparency) + # optimize the block away if transparent color is not used + transparent_color_exists = True + + used_palette_colors = _get_optimize(im, im.encoderinfo) + if used_palette_colors is not None: + # adjust the transparency index after optimize + try: + transparency = used_palette_colors.index(transparency) + except ValueError: + transparent_color_exists = False + + if "duration" in im.encoderinfo: + duration = int(im.encoderinfo["duration"] / 10) + else: + duration = 0 + + disposal = int(im.encoderinfo.get('disposal', 0)) + + if transparent_color_exists or duration != 0 or disposal: + packed_flag = 1 if transparent_color_exists else 0 + packed_flag |= disposal << 2 + if not transparent_color_exists: + transparency = 0 + + fp.write(b"!" + + o8(249) + # extension intro + o8(4) + # length + o8(packed_flag) + # packed fields + o16(duration) + # duration + o8(transparency) + # transparency index + o8(0)) + + 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] + fp.write(o8(len(subblock)) + + subblock) + fp.write(o8(0)) + if "loop" in im.encoderinfo: + number_of_loops = im.encoderinfo["loop"] + fp.write(b"!" + + o8(255) + # extension intro + o8(11) + + b"NETSCAPE2.0" + + o8(3) + + o8(1) + + o16(number_of_loops) + # number of loops + o8(0)) + include_color_table = im.encoderinfo.get('include_color_table') + if include_color_table: + palette_bytes = _get_palette_bytes(im) + color_table_size = _get_color_table_size(palette_bytes) + if color_table_size: + flags = flags | 128 # local color table flag + flags = flags | color_table_size + + fp.write(b"," + + o16(offset[0]) + # offset + o16(offset[1]) + + o16(im.size[0]) + # size + o16(im.size[1]) + + o8(flags)) # flags + if include_color_table and color_table_size: + fp.write(_get_header_palette(palette_bytes)) + fp.write(o8(8)) # bits + + +def _save_netpbm(im, fp, filename): + + # Unused by default. + # To use, uncomment the register_save call at the end of the file. + # + # 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) + + # Allow ppmquant to receive SIGPIPE if ppmtogif exits + quant_proc.stdout.close() + + retcode = quant_proc.wait() + if retcode: + raise CalledProcessError(retcode, quant_cmd) + + retcode = togif_proc.wait() + if retcode: + raise CalledProcessError(retcode, togif_cmd) + + try: + os.unlink(tempfile) + except OSError: + pass + + +# Force optimization so that we can test performance against +# cases where it took lots of memory and time previously. +_FORCE_OPTIMIZE = False + + +def _get_optimize(im, info): + """ + Palette optimization is a potentially expensive operation. + + This function determines if the palette should be optimized using + some heuristics, then returns the list of palette entries in use. + + :param im: Image object + :param info: encoderinfo + :returns: list of indexes of palette entries in use, or None + """ + if im.mode in ("P", "L") and info and info.get("optimize", 0): + # Potentially expensive operation. + + # The palette saves 3 bytes per color not used, but palette + # lengths are restricted to 3*(2**N) bytes. Max saving would + # be 768 -> 6 bytes if we went all the way down to 2 colors. + # * If we're over 128 colors, we can't save any space. + # * If there aren't any holes, it's not worth collapsing. + # * If we have a 'large' image, the palette is in the noise. + + # create the new palette if not every color is used + optimise = _FORCE_OPTIMIZE or im.mode == 'L' + if optimise or im.width * im.height < 512 * 512: + # check which colors are used + used_palette_colors = [] + for i, count in enumerate(im.histogram()): + if count: + used_palette_colors.append(i) + + if optimise or (len(used_palette_colors) <= 128 and + max(used_palette_colors) > len(used_palette_colors)): + return used_palette_colors + + +def _get_color_table_size(palette_bytes): + # calculate the palette size for the header + import math + color_table_size = int(math.ceil(math.log(len(palette_bytes)//3, 2)))-1 + if color_table_size < 0: + color_table_size = 0 + return color_table_size + + +def _get_header_palette(palette_bytes): + """ + Returns the palette, null padded to the next power of 2 (*3) bytes + suitable for direct inclusion in the GIF header + + :param palette_bytes: Unpadded palette bytes, in RGBRGB form + :returns: Null padded palette + """ + color_table_size = _get_color_table_size(palette_bytes) + + # add the missing amount of bytes + # the palette has to be 2< 0: + palette_bytes += o8(0) * 3 * actual_target_size_diff + return palette_bytes + + +def _get_palette_bytes(im): + """ + Gets the palette for inclusion in the gif header + + :param im: Image object + :returns: Bytes, len<=768 suitable for inclusion in gif header + """ + return im.palette.palette + + +def _get_global_header(im, info): + """Return a list of strings representing a GIF header""" + + # Header Block + # http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp + + version = b"87a" + for extensionKey in ["transparency", "duration", "loop", "comment"]: + if info and extensionKey in info: + if ((extensionKey == "duration" and info[extensionKey] == 0) or + (extensionKey == "comment" and + not (1 <= len(info[extensionKey]) <= 255))): + continue + version = b"89a" + break + else: + if im.info.get("version") == b"89a": + version = b"89a" + + background = 0 + if "background" in info: + background = info["background"] + if isinstance(background, tuple): + # WebPImagePlugin stores an RGBA value in info["background"] + # So it must be converted to the same format as GifImagePlugin's + # info["background"] - a global color table index + background = im.palette.getcolor(background) + + palette_bytes = _get_palette_bytes(im) + color_table_size = _get_color_table_size(palette_bytes) + + return [ + b"GIF"+version + # signature + version + o16(im.size[0]) + # canvas width + o16(im.size[1]), # canvas height + + # Logical Screen Descriptor + # size of global color table + global color table flag + o8(color_table_size + 128), # packed fields + # background + reserved/aspect + o8(background) + o8(0), + + # Global Color Table + _get_header_palette(palette_bytes) + ] + + +def _write_frame_data(fp, im_frame, offset, params): + try: + im_frame.encoderinfo = params + + # local image header + _write_local_header(fp, im_frame, offset, 0) + + ImageFile._save(im_frame, fp, [("gif", (0, 0)+im_frame.size, 0, + RAWMODE[im_frame.mode])]) + + fp.write(b"\0") # end of image data + finally: + del im_frame.encoderinfo + +# -------------------------------------------------------------------- +# Legacy GIF utilities + + +def getheader(im, palette=None, info=None): + """ + Legacy Method to get Gif data from image. + + Warning:: May modify image data. + + :param im: Image object + :param palette: bytes object containing the source palette, or .... + :param info: encoderinfo + :returns: tuple of(list of header items, optimized palette) + + """ + used_palette_colors = _get_optimize(im, info) + + if info is None: + info = {} + + if "background" not in info and "background" in im.info: + info["background"] = im.info["background"] + + im_mod = _normalize_palette(im, palette, info) + im.palette = im_mod.palette + im.im = im_mod.im + header = _get_global_header(im, info) + + return header, used_palette_colors + + +# To specify duration, add the time in milliseconds to getdata(), +# e.g. getdata(im_frame, duration=1000) +def getdata(im, offset=(0, 0), **params): + """ + Legacy Method + + Return a list of strings representing this image. + The first string is a local image header, the rest contains + encoded image data. + + :param im: Image object + :param offset: Tuple of (x, y) pixels. Defaults to (0,0) + :param \\**params: E.g. duration or other encoder info parameters + :returns: List of Bytes containing gif encoded frame data + + """ + class Collector(object): + data = [] + + def write(self, data): + self.data.append(data) + + im.load() # make sure raster data is available + + fp = Collector() + + _write_frame_data(fp, im, offset, params) + + return fp.data + + +# -------------------------------------------------------------------- +# Registry + +Image.register_open(GifImageFile.format, GifImageFile, _accept) +Image.register_save(GifImageFile.format, _save) +Image.register_save_all(GifImageFile.format, _save_all) +Image.register_extension(GifImageFile.format, ".gif") +Image.register_mime(GifImageFile.format, "image/gif") + +# +# Uncomment the following line if you wish to use NETPBM/PBMPLUS +# instead of the built-in "uncompressed" GIF encoder + +# Image.register_save(GifImageFile.format, _save_netpbm) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GimpGradientFile.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GimpGradientFile.py new file mode 100644 index 00000000..10593da2 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GimpGradientFile.py @@ -0,0 +1,138 @@ +# +# Python Imaging Library +# $Id$ +# +# stuff to read (and render) GIMP gradient files +# +# History: +# 97-08-23 fl Created +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1997. +# +# See the README file for information on usage and redistribution. +# + +from math import pi, log, sin, sqrt +from ._binary import o8 + +# -------------------------------------------------------------------- +# Stuff to translate curve segments to palette values (derived from +# the corresponding code in GIMP, written by Federico Mena Quintero. +# See the GIMP distribution for more information.) +# + +EPSILON = 1e-10 + + +def linear(middle, pos): + if pos <= middle: + if middle < EPSILON: + return 0.0 + else: + return 0.5 * pos / middle + else: + pos = pos - middle + middle = 1.0 - middle + if middle < EPSILON: + return 1.0 + else: + return 0.5 + 0.5 * pos / middle + + +def curved(middle, pos): + return pos ** (log(0.5) / log(max(middle, EPSILON))) + + +def sine(middle, pos): + return (sin((-pi / 2.0) + pi * linear(middle, pos)) + 1.0) / 2.0 + + +def sphere_increasing(middle, pos): + return sqrt(1.0 - (linear(middle, pos) - 1.0) ** 2) + + +def sphere_decreasing(middle, pos): + return 1.0 - sqrt(1.0 - linear(middle, pos) ** 2) + + +SEGMENTS = [linear, curved, sine, sphere_increasing, sphere_decreasing] + + +class GradientFile(object): + + gradient = None + + def getpalette(self, entries=256): + + palette = [] + + ix = 0 + x0, x1, xm, rgb0, rgb1, segment = self.gradient[ix] + + for i in range(entries): + + x = i / float(entries-1) + + while x1 < x: + ix += 1 + x0, x1, xm, rgb0, rgb1, segment = self.gradient[ix] + + w = x1 - x0 + + if w < EPSILON: + scale = segment(0.5, 0.5) + else: + scale = segment((xm - x0) / w, (x - x0) / w) + + # expand to RGBA + r = o8(int(255 * ((rgb1[0] - rgb0[0]) * scale + rgb0[0]) + 0.5)) + g = o8(int(255 * ((rgb1[1] - rgb0[1]) * scale + rgb0[1]) + 0.5)) + b = o8(int(255 * ((rgb1[2] - rgb0[2]) * scale + rgb0[2]) + 0.5)) + a = o8(int(255 * ((rgb1[3] - rgb0[3]) * scale + rgb0[3]) + 0.5)) + + # add to palette + palette.append(r + g + b + a) + + return b"".join(palette), "RGBA" + + +## +# File handler for GIMP's gradient format. + +class GimpGradientFile(GradientFile): + + def __init__(self, fp): + + if fp.readline()[:13] != b"GIMP Gradient": + raise SyntaxError("not a GIMP gradient file") + + line = fp.readline() + + # GIMP 1.2 gradient files don't contain a name, but GIMP 1.3 files do + if line.startswith(b"Name: "): + line = fp.readline().strip() + + count = int(line) + + gradient = [] + + for i in range(count): + + s = fp.readline().split() + w = [float(x) for x in s[:11]] + + x0, x1 = w[0], w[2] + xm = w[1] + rgb0 = w[3:7] + rgb1 = w[7:11] + + segment = SEGMENTS[int(s[11])] + cspace = int(s[12]) + + if cspace != 0: + raise IOError("cannot handle HSV colour space") + + gradient.append((x0, x1, xm, rgb0, rgb1, segment)) + + self.gradient = gradient diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GimpPaletteFile.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GimpPaletteFile.py new file mode 100644 index 00000000..0ee89998 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GimpPaletteFile.py @@ -0,0 +1,57 @@ +# +# Python Imaging Library +# $Id$ +# +# stuff to read GIMP palette files +# +# History: +# 1997-08-23 fl Created +# 2004-09-07 fl Support GIMP 2.0 palette files. +# +# Copyright (c) Secret Labs AB 1997-2004. All rights reserved. +# Copyright (c) Fredrik Lundh 1997-2004. +# +# See the README file for information on usage and redistribution. +# + +import re +from ._binary import o8 + + +## +# File handler for GIMP's palette format. + +class GimpPaletteFile(object): + + rawmode = "RGB" + + def __init__(self, fp): + + self.palette = [o8(i)*3 for i in range(256)] + + if fp.readline()[:12] != b"GIMP Palette": + raise SyntaxError("not a GIMP palette file") + + for i in range(256): + + s = fp.readline() + if not s: + break + + # skip fields and comment lines + if re.match(br"\w+:|#", s): + continue + if len(s) > 100: + raise SyntaxError("bad palette file") + + v = tuple(map(int, s.split()[:3])) + if len(v) != 3: + raise ValueError("bad palette entry") + + self.palette[i] = o8(v[0]) + o8(v[1]) + o8(v[2]) + + self.palette = b"".join(self.palette) + + def getpalette(self): + + return self.palette, self.rawmode diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GribStubImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GribStubImagePlugin.py new file mode 100644 index 00000000..243ea2a5 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/GribStubImagePlugin.py @@ -0,0 +1,73 @@ +# +# The Python Imaging Library +# $Id$ +# +# GRIB stub adapter +# +# Copyright (c) 1996-2003 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image, ImageFile +from ._binary import i8 + +_handler = None + + +def register_handler(handler): + """ + Install application-specific GRIB image handler. + + :param handler: Handler object. + """ + global _handler + _handler = handler + + +# -------------------------------------------------------------------- +# Image adapter + +def _accept(prefix): + return prefix[0:4] == b"GRIB" and i8(prefix[7]) == 1 + + +class GribStubImageFile(ImageFile.StubImageFile): + + format = "GRIB" + format_description = "GRIB" + + def _open(self): + + offset = self.fp.tell() + + if not _accept(self.fp.read(8)): + raise SyntaxError("Not a GRIB file") + + self.fp.seek(offset) + + # make something up + self.mode = "F" + self._size = 1, 1 + + loader = self._load() + if loader: + loader.open(self) + + def _load(self): + return _handler + + +def _save(im, fp, filename): + if _handler is None or not hasattr("_handler", "save"): + raise IOError("GRIB save handler not installed") + _handler.save(im, fp, filename) + + +# -------------------------------------------------------------------- +# Registry + +Image.register_open(GribStubImageFile.format, GribStubImageFile, _accept) +Image.register_save(GribStubImageFile.format, _save) + +Image.register_extension(GribStubImageFile.format, ".grib") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Hdf5StubImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Hdf5StubImagePlugin.py new file mode 100644 index 00000000..8783f804 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Hdf5StubImagePlugin.py @@ -0,0 +1,72 @@ +# +# The Python Imaging Library +# $Id$ +# +# HDF5 stub adapter +# +# Copyright (c) 2000-2003 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image, ImageFile + +_handler = None + + +def register_handler(handler): + """ + Install application-specific HDF5 image handler. + + :param handler: Handler object. + """ + global _handler + _handler = handler + + +# -------------------------------------------------------------------- +# Image adapter + +def _accept(prefix): + return prefix[:8] == b"\x89HDF\r\n\x1a\n" + + +class HDF5StubImageFile(ImageFile.StubImageFile): + + format = "HDF5" + format_description = "HDF5" + + def _open(self): + + offset = self.fp.tell() + + if not _accept(self.fp.read(8)): + raise SyntaxError("Not an HDF file") + + self.fp.seek(offset) + + # make something up + self.mode = "F" + self._size = 1, 1 + + loader = self._load() + if loader: + loader.open(self) + + def _load(self): + return _handler + + +def _save(im, fp, filename): + if _handler is None or not hasattr("_handler", "save"): + raise IOError("HDF5 save handler not installed") + _handler.save(im, fp, filename) + + +# -------------------------------------------------------------------- +# Registry + +Image.register_open(HDF5StubImageFile.format, HDF5StubImageFile, _accept) +Image.register_save(HDF5StubImageFile.format, _save) + +Image.register_extensions(HDF5StubImageFile.format, [".h5", ".hdf"]) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IcnsImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IcnsImagePlugin.py new file mode 100644 index 00000000..4a10b24b --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IcnsImagePlugin.py @@ -0,0 +1,397 @@ +# +# The Python Imaging Library. +# $Id$ +# +# macOS icns file decoder, based on icns.py by Bob Ippolito. +# +# history: +# 2004-10-09 fl Turned into a PIL plugin; removed 2.3 dependencies. +# +# Copyright (c) 2004 by Bob Ippolito. +# Copyright (c) 2004 by Secret Labs. +# Copyright (c) 2004 by Fredrik Lundh. +# Copyright (c) 2014 by Alastair Houghton. +# +# See the README file for information on usage and redistribution. +# + +from PIL import Image, ImageFile, PngImagePlugin +from PIL._binary import i8 +import io +import os +import shutil +import struct +import sys +import tempfile + +enable_jpeg2k = hasattr(Image.core, 'jp2klib_version') +if enable_jpeg2k: + from PIL import Jpeg2KImagePlugin + +HEADERSIZE = 8 + + +def nextheader(fobj): + return struct.unpack('>4sI', fobj.read(HEADERSIZE)) + + +def read_32t(fobj, start_length, size): + # The 128x128 icon seems to have an extra header for some reason. + (start, length) = start_length + fobj.seek(start) + sig = fobj.read(4) + if sig != b'\x00\x00\x00\x00': + raise SyntaxError('Unknown signature, expecting 0x00000000') + return read_32(fobj, (start + 4, length - 4), size) + + +def read_32(fobj, start_length, size): + """ + Read a 32bit RGB icon resource. Seems to be either uncompressed or + an RLE packbits-like scheme. + """ + (start, length) = start_length + fobj.seek(start) + pixel_size = (size[0] * size[2], size[1] * size[2]) + sizesq = pixel_size[0] * pixel_size[1] + if length == sizesq * 3: + # uncompressed ("RGBRGBGB") + indata = fobj.read(length) + im = Image.frombuffer("RGB", pixel_size, indata, "raw", "RGB", 0, 1) + else: + # decode image + im = Image.new("RGB", pixel_size, None) + for band_ix in range(3): + data = [] + bytesleft = sizesq + while bytesleft > 0: + byte = fobj.read(1) + if not byte: + break + byte = i8(byte) + if byte & 0x80: + blocksize = byte - 125 + byte = fobj.read(1) + for i in range(blocksize): + data.append(byte) + else: + blocksize = byte + 1 + data.append(fobj.read(blocksize)) + bytesleft -= blocksize + if bytesleft <= 0: + break + if bytesleft != 0: + raise SyntaxError( + "Error reading channel [%r left]" % bytesleft + ) + band = Image.frombuffer( + "L", pixel_size, b"".join(data), "raw", "L", 0, 1 + ) + im.im.putband(band.im, band_ix) + return {"RGB": im} + + +def read_mk(fobj, start_length, size): + # Alpha masks seem to be uncompressed + start = start_length[0] + fobj.seek(start) + pixel_size = (size[0] * size[2], size[1] * size[2]) + sizesq = pixel_size[0] * pixel_size[1] + band = Image.frombuffer( + "L", pixel_size, fobj.read(sizesq), "raw", "L", 0, 1 + ) + return {"A": band} + + +def read_png_or_jpeg2000(fobj, start_length, size): + (start, length) = start_length + fobj.seek(start) + sig = fobj.read(12) + if sig[:8] == b'\x89PNG\x0d\x0a\x1a\x0a': + fobj.seek(start) + im = PngImagePlugin.PngImageFile(fobj) + return {"RGBA": im} + elif sig[:4] == b'\xff\x4f\xff\x51' \ + or sig[:4] == b'\x0d\x0a\x87\x0a' \ + or sig == b'\x00\x00\x00\x0cjP \x0d\x0a\x87\x0a': + if not enable_jpeg2k: + raise ValueError('Unsupported icon subimage format (rebuild PIL ' + 'with JPEG 2000 support to fix this)') + # j2k, jpc or j2c + fobj.seek(start) + jp2kstream = fobj.read(length) + f = io.BytesIO(jp2kstream) + im = Jpeg2KImagePlugin.Jpeg2KImageFile(f) + if im.mode != 'RGBA': + im = im.convert('RGBA') + return {"RGBA": im} + else: + raise ValueError('Unsupported icon subimage format') + + +class IcnsFile(object): + + SIZES = { + (512, 512, 2): [ + (b'ic10', read_png_or_jpeg2000), + ], + (512, 512, 1): [ + (b'ic09', read_png_or_jpeg2000), + ], + (256, 256, 2): [ + (b'ic14', read_png_or_jpeg2000), + ], + (256, 256, 1): [ + (b'ic08', read_png_or_jpeg2000), + ], + (128, 128, 2): [ + (b'ic13', read_png_or_jpeg2000), + ], + (128, 128, 1): [ + (b'ic07', read_png_or_jpeg2000), + (b'it32', read_32t), + (b't8mk', read_mk), + ], + (64, 64, 1): [ + (b'icp6', read_png_or_jpeg2000), + ], + (32, 32, 2): [ + (b'ic12', read_png_or_jpeg2000), + ], + (48, 48, 1): [ + (b'ih32', read_32), + (b'h8mk', read_mk), + ], + (32, 32, 1): [ + (b'icp5', read_png_or_jpeg2000), + (b'il32', read_32), + (b'l8mk', read_mk), + ], + (16, 16, 2): [ + (b'ic11', read_png_or_jpeg2000), + ], + (16, 16, 1): [ + (b'icp4', read_png_or_jpeg2000), + (b'is32', read_32), + (b's8mk', read_mk), + ], + } + + def __init__(self, fobj): + """ + fobj is a file-like object as an icns resource + """ + # signature : (start, length) + self.dct = dct = {} + self.fobj = fobj + sig, filesize = nextheader(fobj) + if sig != b'icns': + raise SyntaxError('not an icns file') + i = HEADERSIZE + while i < filesize: + sig, blocksize = nextheader(fobj) + if blocksize <= 0: + raise SyntaxError('invalid block header') + i += HEADERSIZE + blocksize -= HEADERSIZE + dct[sig] = (i, blocksize) + fobj.seek(blocksize, io.SEEK_CUR) + i += blocksize + + def itersizes(self): + sizes = [] + for size, fmts in self.SIZES.items(): + for (fmt, reader) in fmts: + if fmt in self.dct: + sizes.append(size) + break + return sizes + + def bestsize(self): + sizes = self.itersizes() + if not sizes: + raise SyntaxError("No 32bit icon resources found") + return max(sizes) + + def dataforsize(self, size): + """ + Get an icon resource as {channel: array}. Note that + the arrays are bottom-up like windows bitmaps and will likely + need to be flipped or transposed in some way. + """ + dct = {} + for code, reader in self.SIZES[size]: + desc = self.dct.get(code) + if desc is not None: + dct.update(reader(self.fobj, desc, size)) + return dct + + def getimage(self, size=None): + if size is None: + size = self.bestsize() + if len(size) == 2: + size = (size[0], size[1], 1) + channels = self.dataforsize(size) + + im = channels.get('RGBA', None) + if im: + return im + + im = channels.get("RGB").copy() + try: + im.putalpha(channels["A"]) + except KeyError: + pass + return im + + +## +# Image plugin for Mac OS icons. + +class IcnsImageFile(ImageFile.ImageFile): + """ + PIL image support for Mac OS .icns files. + Chooses the best resolution, but will possibly load + a different size image if you mutate the size attribute + before calling 'load'. + + The info dictionary has a key 'sizes' that is a list + of sizes that the icns file has. + """ + + format = "ICNS" + format_description = "Mac OS icns resource" + + def _open(self): + self.icns = IcnsFile(self.fp) + self.mode = 'RGBA' + self.info['sizes'] = self.icns.itersizes() + self.best_size = self.icns.bestsize() + self.size = (self.best_size[0] * self.best_size[2], + self.best_size[1] * self.best_size[2]) + # Just use this to see if it's loaded or not yet. + self.tile = ('',) + + @property + def size(self): + return self._size + + @size.setter + def size(self, value): + info_size = value + if info_size not in self.info['sizes'] and len(info_size) == 2: + info_size = (info_size[0], info_size[1], 1) + if info_size not in self.info['sizes'] and len(info_size) == 3 and \ + info_size[2] == 1: + simple_sizes = [(size[0] * size[2], size[1] * size[2]) + for size in self.info['sizes']] + if value in simple_sizes: + info_size = self.info['sizes'][simple_sizes.index(value)] + if info_size not in self.info['sizes']: + raise ValueError( + "This is not one of the allowed sizes of this image") + self._size = value + + def load(self): + if len(self.size) == 3: + self.best_size = self.size + self.size = (self.best_size[0] * self.best_size[2], + self.best_size[1] * self.best_size[2]) + + Image.Image.load(self) + if not self.tile: + return + self.load_prepare() + # This is likely NOT the best way to do it, but whatever. + im = self.icns.getimage(self.best_size) + + # If this is a PNG or JPEG 2000, it won't be loaded yet + im.load() + + self.im = im.im + self.mode = im.mode + self.size = im.size + if self._exclusive_fp: + self.fp.close() + self.fp = None + self.icns = None + self.tile = () + self.load_end() + + +def _save(im, fp, filename): + """ + Saves the image as a series of PNG files, + that are then converted to a .icns file + using the macOS command line utility 'iconutil'. + + macOS only. + """ + if hasattr(fp, "flush"): + 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) + + 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 + + # iconutil -c icns -o {} {} + from subprocess import Popen, PIPE, CalledProcessError + + 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_proc.stdout.close() + + retcode = convert_proc.wait() + + # remove the temporary files + shutil.rmtree(iconset) + + if retcode: + raise CalledProcessError(retcode, convert_cmd) + + +Image.register_open(IcnsImageFile.format, IcnsImageFile, + lambda x: x[:4] == b'icns') +Image.register_extension(IcnsImageFile.format, '.icns') + +if sys.platform == 'darwin': + Image.register_save(IcnsImageFile.format, _save) + + Image.register_mime(IcnsImageFile.format, "image/icns") + + +if __name__ == '__main__': + + if len(sys.argv) < 2: + 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") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IcoImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IcoImagePlugin.py new file mode 100644 index 00000000..c1c0775d --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IcoImagePlugin.py @@ -0,0 +1,299 @@ +# +# The Python Imaging Library. +# $Id$ +# +# Windows Icon support for PIL +# +# History: +# 96-05-27 fl Created +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1996. +# +# See the README file for information on usage and redistribution. +# + +# This plugin is a refactored version of Win32IconImagePlugin by Bryan Davis +# . +# https://code.google.com/archive/p/casadebender/wikis/Win32IconImagePlugin.wiki +# +# Icon format references: +# * https://en.wikipedia.org/wiki/ICO_(file_format) +# * https://msdn.microsoft.com/en-us/library/ms997538.aspx + + +import struct +from io import BytesIO + +from . import Image, ImageFile, BmpImagePlugin, PngImagePlugin +from ._binary import i8, i16le as i16, i32le as i32 +from math import log, ceil + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.1" + +# +# -------------------------------------------------------------------- + +_MAGIC = b"\0\0\1\0" + + +def _save(im, fp, filename): + fp.write(_MAGIC) # (2+2) + sizes = im.encoderinfo.get("sizes", + [(16, 16), (24, 24), (32, 32), (48, 48), + (64, 64), (128, 128), (256, 256)]) + width, height = im.size + sizes = filter(lambda x: False if (x[0] > width or x[1] > height or + x[0] > 256 or x[1] > 256) else True, + sizes) + sizes = list(sizes) + fp.write(struct.pack("=8bpp) + 'reserved': i8(s[3]), + 'planes': i16(s[4:]), + 'bpp': i16(s[6:]), + 'size': i32(s[8:]), + 'offset': i32(s[12:]) + } + + # See Wikipedia + for j in ('width', 'height'): + if not icon_header[j]: + icon_header[j] = 256 + + # See Wikipedia notes about color depth. + # We need this just to differ images with equal sizes + icon_header['color_depth'] = (icon_header['bpp'] or + (icon_header['nb_color'] != 0 and + ceil(log(icon_header['nb_color'], + 2))) or 256) + + icon_header['dim'] = (icon_header['width'], icon_header['height']) + icon_header['square'] = (icon_header['width'] * + icon_header['height']) + + self.entry.append(icon_header) + + self.entry = sorted(self.entry, key=lambda x: x['color_depth']) + # ICO images are usually squares + # self.entry = sorted(self.entry, key=lambda x: x['width']) + self.entry = sorted(self.entry, key=lambda x: x['square']) + self.entry.reverse() + + def sizes(self): + """ + Get a list of all available icon sizes and color depths. + """ + return {(h['width'], h['height']) for h in self.entry} + + def getimage(self, size, bpp=False): + """ + Get an image from the icon + """ + for (i, h) in enumerate(self.entry): + if size == h['dim'] and (bpp is False or bpp == h['color_depth']): + return self.frame(i) + return self.frame(0) + + def frame(self, idx): + """ + Get an image from frame idx + """ + + header = self.entry[idx] + + self.buf.seek(header['offset']) + data = self.buf.read(8) + self.buf.seek(header['offset']) + + if data[:8] == PngImagePlugin._MAGIC: + # png frame + im = PngImagePlugin.PngImageFile(self.buf) + else: + # XOR + AND mask bmp frame + im = BmpImagePlugin.DibImageFile(self.buf) + + # change tile dimension to only encompass XOR image + im._size = (im.size[0], int(im.size[1] / 2)) + d, e, o, a = im.tile[0] + im.tile[0] = d, (0, 0) + im.size, o, a + + # figure out where AND mask image starts + mode = a[0] + bpp = 8 + for k, v in BmpImagePlugin.BIT2MODE.items(): + if mode == v[1]: + bpp = k + break + + if 32 == bpp: + # 32-bit color depth icon image allows semitransparent areas + # PIL's DIB format ignores transparency bits, recover them. + # The DIB is packed in BGRX byte order where X is the alpha + # channel. + + # Back up to start of bmp data + self.buf.seek(o) + # extract every 4th byte (eg. 3,7,11,15,...) + alpha_bytes = self.buf.read(im.size[0] * im.size[1] * 4)[3::4] + + # convert to an 8bpp grayscale image + mask = Image.frombuffer( + 'L', # 8bpp + im.size, # (w, h) + alpha_bytes, # source chars + 'raw', # raw decoder + ('L', 0, -1) # 8bpp inverted, unpadded, reversed + ) + else: + # get AND image from end of bitmap + w = im.size[0] + if (w % 32) > 0: + # bitmap row data is aligned to word boundaries + w += 32 - (im.size[0] % 32) + + # the total mask data is + # padded row size * height / bits per char + + and_mask_offset = o + int(im.size[0] * im.size[1] * + (bpp / 8.0)) + total_bytes = int((w * im.size[1]) / 8) + + self.buf.seek(and_mask_offset) + mask_data = self.buf.read(total_bytes) + + # convert raw data to image + mask = Image.frombuffer( + '1', # 1 bpp + im.size, # (w, h) + mask_data, # source chars + 'raw', # raw decoder + ('1;I', int(w/8), -1) # 1bpp inverted, padded, reversed + ) + + # now we have two images, im is XOR image and mask is AND image + + # apply mask image as alpha channel + im = im.convert('RGBA') + im.putalpha(mask) + + return im + + +## +# Image plugin for Windows Icon files. + +class IcoImageFile(ImageFile.ImageFile): + """ + PIL read-only image support for Microsoft Windows .ico files. + + By default the largest resolution image in the file will be loaded. This + can be changed by altering the 'size' attribute before calling 'load'. + + The info dictionary has a key 'sizes' that is a list of the sizes available + in the icon file. + + Handles classic, XP and Vista icon formats. + + This plugin is a refactored version of Win32IconImagePlugin by Bryan Davis + . + https://code.google.com/archive/p/casadebender/wikis/Win32IconImagePlugin.wiki + """ + format = "ICO" + format_description = "Windows Icon" + + def _open(self): + self.ico = IcoFile(self.fp) + self.info['sizes'] = self.ico.sizes() + self.size = self.ico.entry[0]['dim'] + self.load() + + @property + def size(self): + return self._size + + @size.setter + def size(self, value): + if value not in self.info['sizes']: + raise ValueError( + "This is not one of the allowed sizes of this image") + self._size = value + + def load(self): + im = self.ico.getimage(self.size) + # if tile is PNG, it won't really be loaded yet + im.load() + self.im = im.im + self.mode = im.mode + self.size = im.size + + def load_seek(self): + # Flag the ImageFile.Parser so that it + # just does all the decode at the end. + pass +# +# -------------------------------------------------------------------- + + +Image.register_open(IcoImageFile.format, IcoImageFile, _accept) +Image.register_save(IcoImageFile.format, _save) +Image.register_extension(IcoImageFile.format, ".ico") + +Image.register_mime(IcoImageFile.format, "image/x-icon") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImImagePlugin.py new file mode 100644 index 00000000..08250e95 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImImagePlugin.py @@ -0,0 +1,358 @@ +# +# The Python Imaging Library. +# $Id$ +# +# IFUNC IM file handling for PIL +# +# history: +# 1995-09-01 fl Created. +# 1997-01-03 fl Save palette images +# 1997-01-08 fl Added sequence support +# 1997-01-23 fl Added P and RGB save support +# 1997-05-31 fl Read floating point images +# 1997-06-22 fl Save floating point images +# 1997-08-27 fl Read and save 1-bit images +# 1998-06-25 fl Added support for RGB+LUT images +# 1998-07-02 fl Added support for YCC images +# 1998-07-15 fl Renamed offset attribute to avoid name clash +# 1998-12-29 fl Added I;16 support +# 2001-02-17 fl Use 're' instead of 'regex' (Python 2.1) (0.7) +# 2003-09-26 fl Added LA/PA support +# +# Copyright (c) 1997-2003 by Secret Labs AB. +# Copyright (c) 1995-2001 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + + +import re +from . import Image, ImageFile, ImagePalette +from ._binary import i8 + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.7" + + +# -------------------------------------------------------------------- +# Standard tags + +COMMENT = "Comment" +DATE = "Date" +EQUIPMENT = "Digitalization equipment" +FRAMES = "File size (no of images)" +LUT = "Lut" +NAME = "Name" +SCALE = "Scale (x,y)" +SIZE = "Image size (x*y)" +MODE = "Image type" + +TAGS = {COMMENT: 0, DATE: 0, EQUIPMENT: 0, FRAMES: 0, LUT: 0, NAME: 0, + SCALE: 0, SIZE: 0, MODE: 0} + +OPEN = { + # ifunc93/p3cfunc formats + "0 1 image": ("1", "1"), + "L 1 image": ("1", "1"), + "Greyscale image": ("L", "L"), + "Grayscale image": ("L", "L"), + "RGB image": ("RGB", "RGB;L"), + "RLB image": ("RGB", "RLB"), + "RYB image": ("RGB", "RLB"), + "B1 image": ("1", "1"), + "B2 image": ("P", "P;2"), + "B4 image": ("P", "P;4"), + "X 24 image": ("RGB", "RGB"), + "L 32 S image": ("I", "I;32"), + "L 32 F image": ("F", "F;32"), + # old p3cfunc formats + "RGB3 image": ("RGB", "RGB;T"), + "RYB3 image": ("RGB", "RYB;T"), + # extensions + "LA image": ("LA", "LA;L"), + "RGBA image": ("RGBA", "RGBA;L"), + "RGBX image": ("RGBX", "RGBX;L"), + "CMYK image": ("CMYK", "CMYK;L"), + "YCC image": ("YCbCr", "YCbCr;L"), +} + +# ifunc95 extensions +for i in ["8", "8S", "16", "16S", "32", "32F"]: + OPEN["L %s image" % i] = ("F", "F;%s" % i) + OPEN["L*%s image" % i] = ("F", "F;%s" % i) +for i in ["16", "16L", "16B"]: + OPEN["L %s image" % i] = ("I;%s" % i, "I;%s" % i) + OPEN["L*%s image" % i] = ("I;%s" % i, "I;%s" % i) +for i in ["32S"]: + OPEN["L %s image" % i] = ("I", "I;%s" % i) + OPEN["L*%s image" % i] = ("I", "I;%s" % i) +for i in range(2, 33): + OPEN["L*%s image" % i] = ("F", "F;%s" % i) + + +# -------------------------------------------------------------------- +# Read IM directory + +split = re.compile(br"^([A-Za-z][^:]*):[ \t]*(.*)[ \t]*$") + + +def number(s): + try: + return int(s) + except ValueError: + return float(s) + + +## +# Image plugin for the IFUNC IM file format. + +class ImImageFile(ImageFile.ImageFile): + + format = "IM" + format_description = "IFUNC Image Memory" + _close_exclusive_fp_after_loading = False + + def _open(self): + + # Quick rejection: if there's not an LF among the first + # 100 bytes, this is (probably) not a text header. + + if b"\n" not in self.fp.read(100): + raise SyntaxError("not an IM file") + self.fp.seek(0) + + n = 0 + + # Default values + self.info[MODE] = "L" + self.info[SIZE] = (512, 512) + self.info[FRAMES] = 1 + + self.rawmode = "L" + + while True: + + s = self.fp.read(1) + + # Some versions of IFUNC uses \n\r instead of \r\n... + if s == b"\r": + continue + + if not s or s == b'\0' or s == b'\x1A': + break + + # FIXME: this may read whole file if not a text file + s = s + self.fp.readline() + + if len(s) > 100: + raise SyntaxError("not an IM file") + + if s[-2:] == b'\r\n': + s = s[:-2] + elif s[-1:] == b'\n': + s = s[:-1] + + try: + m = split.match(s) + except re.error: + raise SyntaxError("not an IM file") + + if m: + + k, v = m.group(1, 2) + + # Don't know if this is the correct encoding, + # but a decent guess (I guess) + k = k.decode('latin-1', 'replace') + v = v.decode('latin-1', 'replace') + + # Convert value as appropriate + if k in [FRAMES, SCALE, SIZE]: + v = v.replace("*", ",") + v = tuple(map(number, v.split(","))) + if len(v) == 1: + v = v[0] + elif k == MODE and v in OPEN: + v, self.rawmode = OPEN[v] + + # Add to dictionary. Note that COMMENT tags are + # combined into a list of strings. + if k == COMMENT: + if k in self.info: + self.info[k].append(v) + else: + self.info[k] = [v] + else: + self.info[k] = v + + if k in TAGS: + n += 1 + + else: + + raise SyntaxError("Syntax error in IM header: " + + s.decode('ascii', 'replace')) + + if not n: + raise SyntaxError("Not an IM file") + + # Basic attributes + self._size = self.info[SIZE] + self.mode = self.info[MODE] + + # Skip forward to start of image data + while s and s[0:1] != b'\x1A': + s = self.fp.read(1) + if not s: + raise SyntaxError("File truncated") + + if LUT in self.info: + # convert lookup table to palette or lut attribute + palette = self.fp.read(768) + greyscale = 1 # greyscale palette + linear = 1 # linear greyscale palette + for i in range(256): + if palette[i] == palette[i+256] == palette[i+512]: + if i8(palette[i]) != i: + linear = 0 + else: + greyscale = 0 + if self.mode == "L" or self.mode == "LA": + if greyscale: + if not linear: + self.lut = [i8(c) for c in palette[:256]] + else: + if self.mode == "L": + self.mode = self.rawmode = "P" + elif self.mode == "LA": + self.mode = self.rawmode = "PA" + self.palette = ImagePalette.raw("RGB;L", palette) + elif self.mode == "RGB": + if not greyscale or not linear: + self.lut = [i8(c) for c in palette] + + self.frame = 0 + + self.__offset = offs = self.fp.tell() + + self.__fp = self.fp # FIXME: hack + + if self.rawmode[:2] == "F;": + + # ifunc95 formats + try: + # use bit decoder (if necessary) + bits = int(self.rawmode[2:]) + if bits not in [8, 16, 32]: + self.tile = [("bit", (0, 0)+self.size, offs, + (bits, 8, 3, 0, -1))] + return + except ValueError: + pass + + if self.rawmode in ["RGB;T", "RYB;T"]: + # Old LabEye/3PC files. Would be very surprised if anyone + # ever stumbled upon such a file ;-) + size = self.size[0] * self.size[1] + self.tile = [("raw", (0, 0)+self.size, offs, ("G", 0, -1)), + ("raw", (0, 0)+self.size, offs+size, ("R", 0, -1)), + ("raw", (0, 0)+self.size, offs+2*size, ("B", 0, -1))] + else: + # LabEye/IFUNC files + self.tile = [("raw", (0, 0)+self.size, offs, + (self.rawmode, 0, -1))] + + @property + def n_frames(self): + return self.info[FRAMES] + + @property + def is_animated(self): + return self.info[FRAMES] > 1 + + def seek(self, frame): + if not self._seek_check(frame): + return + + self.frame = frame + + if self.mode == "1": + bits = 1 + else: + bits = 8 * len(self.mode) + + size = ((self.size[0] * bits + 7) // 8) * self.size[1] + offs = self.__offset + frame * size + + self.fp = self.__fp + + self.tile = [("raw", (0, 0)+self.size, offs, (self.rawmode, 0, -1))] + + def tell(self): + return self.frame + + def _close__fp(self): + try: + if self.__fp != self.fp: + self.__fp.close() + except AttributeError: + pass + finally: + self.__fp = None + +# +# -------------------------------------------------------------------- +# Save IM files + + +SAVE = { + # mode: (im type, raw mode) + "1": ("0 1", "1"), + "L": ("Greyscale", "L"), + "LA": ("LA", "LA;L"), + "P": ("Greyscale", "P"), + "PA": ("LA", "PA;L"), + "I": ("L 32S", "I;32S"), + "I;16": ("L 16", "I;16"), + "I;16L": ("L 16L", "I;16L"), + "I;16B": ("L 16B", "I;16B"), + "F": ("L 32F", "F;32F"), + "RGB": ("RGB", "RGB;L"), + "RGBA": ("RGBA", "RGBA;L"), + "RGBX": ("RGBX", "RGBX;L"), + "CMYK": ("CMYK", "CMYK;L"), + "YCbCr": ("YCC", "YCbCr;L") +} + + +def _save(im, fp, filename): + + try: + image_type, rawmode = SAVE[im.mode] + except KeyError: + raise ValueError("Cannot save %s images as IM" % im.mode) + + frames = im.encoderinfo.get("frames", 1) + + fp.write(("Image type: %s image\r\n" % image_type).encode('ascii')) + if filename: + fp.write(("Name: %s\r\n" % filename).encode('ascii')) + fp.write(("Image size (x*y): %d*%d\r\n" % im.size).encode('ascii')) + fp.write(("File size (no of images): %d\r\n" % frames).encode('ascii')) + if im.mode == "P": + fp.write(b"Lut: 1\r\n") + fp.write(b"\000" * (511-fp.tell()) + b"\032") + if im.mode == "P": + fp.write(im.im.getpalette("RGB", "RGB;L")) # 768 bytes + ImageFile._save(im, fp, [("raw", (0, 0)+im.size, 0, (rawmode, 0, -1))]) + +# +# -------------------------------------------------------------------- +# Registry + + +Image.register_open(ImImageFile.format, ImImageFile) +Image.register_save(ImImageFile.format, _save) + +Image.register_extension(ImImageFile.format, ".im") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Image.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Image.py new file mode 100644 index 00000000..18121c6f --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Image.py @@ -0,0 +1,3192 @@ +# +# The Python Imaging Library. +# $Id$ +# +# the Image class wrapper +# +# partial release history: +# 1995-09-09 fl Created +# 1996-03-11 fl PIL release 0.0 (proof of concept) +# 1996-04-30 fl PIL release 0.1b1 +# 1999-07-28 fl PIL release 1.0 final +# 2000-06-07 fl PIL release 1.1 +# 2000-10-20 fl PIL release 1.1.1 +# 2001-05-07 fl PIL release 1.1.2 +# 2002-03-15 fl PIL release 1.1.3 +# 2003-05-10 fl PIL release 1.1.4 +# 2005-03-28 fl PIL release 1.1.5 +# 2006-12-02 fl PIL release 1.1.6 +# 2009-11-15 fl PIL release 1.1.7 +# +# Copyright (c) 1997-2009 by Secret Labs AB. All rights reserved. +# Copyright (c) 1995-2009 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +# VERSION was removed in Pillow 6.0.0. +# PILLOW_VERSION is deprecated and will be removed in Pillow 7.0.0. +# Use __version__ instead. +from . import PILLOW_VERSION, __version__, _plugins +from ._util import py3 + +import logging +import warnings +import math + +try: + import builtins +except ImportError: + import __builtin__ + builtins = __builtin__ + +from . import ImageMode, TiffTags +from ._binary import i8, i32le +from ._util import isPath, isStringType, deferred_error + +import os +import sys +import io +import struct +import atexit + +# type stuff +import numbers +try: + # Python 3 + from collections.abc import Callable, MutableMapping +except ImportError: + # Python 2.7 + from collections import Callable, MutableMapping + + +# Silence warning +assert PILLOW_VERSION + +logger = logging.getLogger(__name__) + + +class DecompressionBombWarning(RuntimeWarning): + pass + + +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) + + +try: + # If the _imaging C module is not present, Pillow will not load. + # Note that other modules should not refer to _imaging directly; + # import Image and use the Image.core variable instead. + # Also note that Image.core is not a publicly documented interface, + # and should be considered private and subject to change. + from . import _imaging as core + if __version__ != getattr(core, 'PILLOW_VERSION', None): + raise ImportError("The _imaging extension was built for another " + "version of Pillow or PIL:\n" + "Core version: %s\n" + "Pillow version: %s" % + (getattr(core, 'PILLOW_VERSION', None), + __version__)) + +except ImportError as v: + core = _imaging_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 + # the right version (windows only). Print a warning, if + # possible. + warnings.warn( + "The _imaging extension was built for another version " + "of Python.", + RuntimeWarning + ) + 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 + + +# works everywhere, win for pypy, not cpython +USE_CFFI_ACCESS = hasattr(sys, 'pypy_version_info') +try: + import cffi +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): + """ + Checks if an object is an image object. + + .. warning:: + + This function is for internal use only. + + :param t: object to check if it's an image + :returns: True if the object is an image + """ + return hasattr(t, "im") + + +# +# Constants + +NONE = 0 + +# transpose +FLIP_LEFT_RIGHT = 0 +FLIP_TOP_BOTTOM = 1 +ROTATE_90 = 2 +ROTATE_180 = 3 +ROTATE_270 = 4 +TRANSPOSE = 5 +TRANSVERSE = 6 + +# transforms (also defined in Imaging.h) +AFFINE = 0 +EXTENT = 1 +PERSPECTIVE = 2 +QUAD = 3 +MESH = 4 + +# resampling filters (also defined in Imaging.h) +NEAREST = NONE = 0 +BOX = 4 +BILINEAR = LINEAR = 2 +HAMMING = 5 +BICUBIC = CUBIC = 3 +LANCZOS = ANTIALIAS = 1 + +# dithers +NEAREST = NONE = 0 +ORDERED = 1 # Not yet implemented +RASTERIZE = 2 # Not yet implemented +FLOYDSTEINBERG = 3 # default + +# palettes/quantizers +WEB = 0 +ADAPTIVE = 1 + +MEDIANCUT = 0 +MAXCOVERAGE = 1 +FASTOCTREE = 2 +LIBIMAGEQUANT = 3 + +# categories +NORMAL = 0 +SEQUENCE = 1 +CONTAINER = 2 + +if hasattr(core, 'DEFAULT_STRATEGY'): + DEFAULT_STRATEGY = core.DEFAULT_STRATEGY + FILTERED = core.FILTERED + HUFFMAN_ONLY = core.HUFFMAN_ONLY + RLE = core.RLE + FIXED = core.FIXED + + +# -------------------------------------------------------------------- +# Registries + +ID = [] +OPEN = {} +MIME = {} +SAVE = {} +SAVE_ALL = {} +EXTENSION = {} +DECODERS = {} +ENCODERS = {} + +# -------------------------------------------------------------------- +# Modes supported by this version + +_MODEINFO = { + # NOTE: this table will be removed in future versions. use + # getmode* functions or ImageMode descriptors instead. + + # official modes + "1": ("L", "L", ("1",)), + "L": ("L", "L", ("L",)), + "I": ("L", "I", ("I",)), + "F": ("L", "F", ("F",)), + "P": ("P", "L", ("P",)), + "RGB": ("RGB", "L", ("R", "G", "B")), + "RGBX": ("RGB", "L", ("R", "G", "B", "X")), + "RGBA": ("RGB", "L", ("R", "G", "B", "A")), + "CMYK": ("RGB", "L", ("C", "M", "Y", "K")), + "YCbCr": ("RGB", "L", ("Y", "Cb", "Cr")), + "LAB": ("RGB", "L", ("L", "A", "B")), + "HSV": ("RGB", "L", ("H", "S", "V")), + + # Experimental modes include I;16, I;16L, I;16B, RGBa, BGR;15, and + # BGR;24. Use these modes only if you know exactly what you're + # doing... + +} + +if sys.byteorder == 'little': + _ENDIAN = '<' +else: + _ENDIAN = '>' + +_MODE_CONV = { + # official modes + "1": ('|b1', None), # Bits need to be extended to bytes + "L": ('|u1', None), + "LA": ('|u1', 2), + "I": (_ENDIAN + 'i4', None), + "F": (_ENDIAN + 'f4', None), + "P": ('|u1', None), + "RGB": ('|u1', 3), + "RGBX": ('|u1', 4), + "RGBA": ('|u1', 4), + "CMYK": ('|u1', 4), + "YCbCr": ('|u1', 3), + "LAB": ('|u1', 3), # UNDONE - unsigned |u1i1i1 + "HSV": ('|u1', 3), + # I;16 == I;16L, and I;32 == I;32L + "I;16": ('u2', None), + "I;16L": ('i2', None), + "I;16LS": ('u4', None), + "I;32L": ('i4', None), + "I;32LS": ('= 1: + return + + try: + from . import BmpImagePlugin + assert BmpImagePlugin + except ImportError: + pass + try: + from . import GifImagePlugin + assert GifImagePlugin + except ImportError: + pass + try: + from . import JpegImagePlugin + assert JpegImagePlugin + except ImportError: + pass + try: + from . import PpmImagePlugin + assert PpmImagePlugin + except ImportError: + pass + try: + from . import PngImagePlugin + assert PngImagePlugin + except ImportError: + pass +# try: +# import TiffImagePlugin +# assert TiffImagePlugin +# except ImportError: +# pass + + _initialized = 1 + + +def init(): + """ + Explicitly initializes the Python Imaging Library. This function + loads all available file format drivers. + """ + + global _initialized + if _initialized >= 2: + return 0 + + for plugin in _plugins: + try: + logger.debug("Importing %s", plugin) + __import__("PIL.%s" % plugin, globals(), locals(), []) + except ImportError as e: + logger.debug("Image: failed to import %s: %s", plugin, e) + + if OPEN or SAVE: + _initialized = 2 + return 1 + + +# -------------------------------------------------------------------- +# Codec factories (used by tobytes/frombytes and ImageFile.load) + +def _getdecoder(mode, decoder_name, args, extra=()): + + # tweak arguments + if args is None: + args = () + elif not isinstance(args, tuple): + args = (args,) + + try: + decoder = DECODERS[decoder_name] + return decoder(mode, *args + extra) + except KeyError: + pass + try: + # get decoder + decoder = getattr(core, decoder_name + "_decoder") + return decoder(mode, *args + extra) + except AttributeError: + raise IOError("decoder %s not available" % decoder_name) + + +def _getencoder(mode, encoder_name, args, extra=()): + + # tweak arguments + if args is None: + args = () + elif not isinstance(args, tuple): + args = (args,) + + try: + encoder = ENCODERS[encoder_name] + return encoder(mode, *args + extra) + except KeyError: + pass + try: + # get encoder + encoder = getattr(core, encoder_name + "_encoder") + return encoder(mode, *args + extra) + except AttributeError: + raise IOError("encoder %s not available" % encoder_name) + + +# -------------------------------------------------------------------- +# Simple expression analyzer + +def coerce_e(value): + return value if isinstance(value, _E) else _E(value) + + +class _E(object): + def __init__(self, data): + self.data = data + + def __add__(self, other): + return _E((self.data, "__add__", coerce_e(other).data)) + + def __mul__(self, other): + return _E((self.data, "__mul__", coerce_e(other).data)) + + +def _getscaleoffset(expr): + stub = ["stub"] + data = expr(_E(stub)).data + try: + (a, b, c) = data # simplified syntax + if (a is stub and b == "__mul__" and isinstance(c, numbers.Number)): + return c, 0.0 + if a is stub and b == "__add__" and isinstance(c, numbers.Number): + return 1.0, c + except TypeError: + pass + try: + ((a, b, c), d, e) = data # full syntax + if (a is stub and b == "__mul__" and isinstance(c, numbers.Number) and + d == "__add__" and isinstance(e, numbers.Number)): + return c, e + except TypeError: + pass + raise ValueError("illegal expression") + + +# -------------------------------------------------------------------- +# Implementation wrapper + +class Image(object): + """ + This class represents an image object. To create + :py:class:`~PIL.Image.Image` objects, use the appropriate factory + functions. There's hardly ever any reason to call the Image constructor + directly. + + * :py:func:`~PIL.Image.open` + * :py:func:`~PIL.Image.new` + * :py:func:`~PIL.Image.frombytes` + """ + format = None + format_description = None + _close_exclusive_fp_after_loading = True + + def __init__(self): + # FIXME: take "new" parameters / other image? + # FIXME: turn mode and size into delegating properties? + self.im = None + self.mode = "" + self._size = (0, 0) + self.palette = None + self.info = {} + self.category = NORMAL + self.readonly = 0 + self.pyaccess = None + + @property + def width(self): + return self.size[0] + + @property + def height(self): + return self.size[1] + + @property + def size(self): + return self._size + + def _new(self, im): + new = Image() + new.im = im + new.mode = im.mode + new._size = im.size + if im.mode in ('P', 'PA'): + if self.palette: + new.palette = self.palette.copy() + else: + from . import ImagePalette + new.palette = ImagePalette.ImagePalette() + new.info = self.info.copy() + return new + + # Context manager support + def __enter__(self): + return self + + def __exit__(self, *args): + if hasattr(self, 'fp') and getattr(self, '_exclusive_fp', False): + if hasattr(self, "_close__fp"): + self._close__fp() + if self.fp: + self.fp.close() + self.fp = None + + def close(self): + """ + Closes the file pointer, if possible. + + This operation will destroy the image core and release its memory. + The image data will be unusable afterward. + + This function is only required to close images that have not + had their file read and closed by the + :py:meth:`~PIL.Image.Image.load` method. See + :ref:`file-handling` for more information. + """ + try: + if hasattr(self, "_close__fp"): + self._close__fp() + self.fp.close() + self.fp = None + except Exception as msg: + logger.debug("Error closing: %s", msg) + + if getattr(self, 'map', None): + self.map = None + + # Instead of simply setting to None, we're setting up a + # deferred error that will better explain that the core image + # 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() + self.pyaccess = None + self.readonly = 0 + + def _ensure_mutable(self): + if self.readonly: + self._copy() + else: + self.load() + + def _dump(self, file=None, format=None, **options): + import tempfile + + suffix = '' + if format: + suffix = '.'+format + + if not file: + f, filename = tempfile.mkstemp(suffix) + os.close(f) + else: + filename = file + if not filename.endswith(suffix): + filename = filename + suffix + + self.load() + + if not format or format == "PPM": + self.im.save_ppm(filename) + else: + self.save(filename, format, **options) + + return filename + + def __eq__(self, other): + return (self.__class__ is other.__class__ and + self.mode == other.mode and + self.size == other.size and + self.info == other.info and + self.category == other.category and + self.readonly == other.readonly and + self.getpalette() == other.getpalette() 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__, self.__class__.__name__, + self.mode, self.size[0], self.size[1], + id(self) + ) + + def _repr_png_(self): + """ iPython display hook support + + :returns: png version of the image as bytes + """ + b = io.BytesIO() + self.save(b, 'PNG') + return b.getvalue() + + @property + def __array_interface__(self): + # numpy array interface support + new = {} + shape, typestr = _conv_type_shape(self) + new['shape'] = shape + new['typestr'] = typestr + new['version'] = 3 + if self.mode == '1': + # Binary images need to be extended from bits to bytes + # See: https://github.com/python-pillow/Pillow/issues/350 + new['data'] = self.tobytes('raw', 'L') + else: + new['data'] = self.tobytes() + return new + + def __getstate__(self): + return [ + self.info, + self.mode, + self.size, + self.getpalette(), + self.tobytes()] + + def __setstate__(self, state): + Image.__init__(self) + self.tile = [] + info, mode, size, palette, data = state + self.info = info + self.mode = mode + self._size = size + self.im = core.new(mode, size) + if mode in ("L", "P") and palette: + self.putpalette(palette) + self.frombytes(data) + + def tobytes(self, encoder_name="raw", *args): + """ + Return image as a bytes object. + + .. warning:: + + This method returns the raw image data from the internal + storage. For compressed image data (e.g. PNG, JPEG) use + :meth:`~.save`, with a BytesIO parameter for in-memory + data. + + :param encoder_name: What encoder to use. The default is to + use the standard "raw" encoder. + :param args: Extra arguments to the encoder. + :rtype: A bytes object. + """ + + # may pass tuple instead of argument list + if len(args) == 1 and isinstance(args[0], tuple): + args = args[0] + + if encoder_name == "raw" and args == (): + args = self.mode + + self.load() + + # unpack data + e = _getencoder(self.mode, encoder_name, args) + e.setimage(self.im) + + bufsize = max(65536, self.size[0] * 4) # see RawEncode.c + + data = [] + while True: + l, s, d = e.encode(bufsize) + data.append(d) + if s: + break + if s < 0: + raise RuntimeError("encoder error %d in tobytes" % s) + + return b"".join(data) + + def tostring(self, *args, **kw): + raise NotImplementedError("tostring() has been removed. " + "Please call tobytes() instead.") + + def tobitmap(self, name="image"): + """ + Returns the image converted to an X11 bitmap. + + .. note:: This method only works for mode "1" images. + + :param name: The name prefix to use for the bitmap variables. + :returns: A string containing an X11 bitmap. + :raises ValueError: If the mode is not "1" + """ + + self.load() + if self.mode != "1": + raise ValueError("not a bitmap") + data = self.tobytes("xbm") + return b"".join([ + ("#define %s_width %d\n" % (name, self.size[0])).encode('ascii'), + ("#define %s_height %d\n" % (name, self.size[1])).encode('ascii'), + ("static char %s_bits[] = {\n" % name).encode('ascii'), data, b"};" + ]) + + def frombytes(self, data, decoder_name="raw", *args): + """ + Loads this image with pixel data from a bytes object. + + This method is similar to the :py:func:`~PIL.Image.frombytes` function, + but loads data into this image instead of creating a new image object. + """ + + # may pass tuple instead of argument list + if len(args) == 1 and isinstance(args[0], tuple): + args = args[0] + + # default format + if decoder_name == "raw" and args == (): + args = self.mode + + # unpack data + d = _getdecoder(self.mode, decoder_name, args) + d.setimage(self.im) + s = d.decode(data) + + if s[0] >= 0: + raise ValueError("not enough image data") + if s[1] != 0: + raise ValueError("cannot decode image data") + + def fromstring(self, *args, **kw): + raise NotImplementedError("fromstring() has been removed. " + "Please call frombytes() instead.") + + def load(self): + """ + Allocates storage for the image and loads the pixel data. In + normal cases, you don't need to call this method, since the + Image class automatically loads an opened image when it is + accessed for the first time. + + If the file associated with the image was opened by Pillow, then this + method will close it. The exception to this is if the image has + multiple frames, in which case the file will be left open for seek + operations. See :ref:`file-handling` for more information. + + :returns: An image access object. + :rtype: :ref:`PixelAccess` or :py:class:`PIL.PyAccess` + """ + if self.im and self.palette and self.palette.dirty: + # realize palette + self.im.putpalette(*self.palette.getdata()) + self.palette.dirty = 0 + self.palette.mode = "RGB" + self.palette.rawmode = None + if "transparency" in self.info: + if isinstance(self.info["transparency"], int): + self.im.putpalettealpha(self.info["transparency"], 0) + else: + self.im.putpalettealphas(self.info["transparency"]) + self.palette.mode = "RGBA" + + if self.im: + if cffi and USE_CFFI_ACCESS: + if self.pyaccess: + return self.pyaccess + from . import PyAccess + self.pyaccess = PyAccess.new(self, self.readonly) + if self.pyaccess: + return self.pyaccess + return self.im.pixel_access(self.readonly) + + def verify(self): + """ + Verifies the contents of a file. For data read from a file, this + method attempts to determine if the file is broken, without + actually decoding the image data. If this method finds any + problems, it raises suitable exceptions. If you need to load + the image after using this method, you must reopen the image + file. + """ + pass + + def convert(self, mode=None, matrix=None, dither=None, + palette=WEB, colors=256): + """ + Returns a converted copy of this image. For the "P" mode, this + method translates pixels through the palette. If mode is + omitted, a mode is chosen so that all information in the image + and the palette can be represented without a palette. + + The current version supports all possible conversions between + "L", "RGB" and "CMYK." The **matrix** argument only supports "L" + and "RGB". + + When translating a color image to greyscale (mode "L"), + the library uses the ITU-R 601-2 luma transform:: + + L = R * 299/1000 + G * 587/1000 + B * 114/1000 + + The default method of converting a greyscale ("L") or "RGB" + image into a bilevel (mode "1") image uses Floyd-Steinberg + dither to approximate the original image luminosity levels. If + dither is NONE, all values larger than 128 are set to 255 (white), + all other values to 0 (black). To use other thresholds, use the + :py:meth:`~PIL.Image.Image.point` method. + + When converting from "RGBA" to "P" without a **matrix** argument, + this passes the operation to :py:meth:`~PIL.Image.Image.quantize`, + and **dither** and **palette** are ignored. + + :param mode: The requested mode. See: :ref:`concept-modes`. + :param matrix: An optional conversion matrix. If given, this + should be 4- or 12-tuple containing floating point values. + :param dither: Dithering method, used when converting from + mode "RGB" to "P" or from "RGB" or "L" to "1". + Available methods are NONE or FLOYDSTEINBERG (default). + Note that this is not used when **matrix** is supplied. + :param palette: Palette to use when converting from mode "RGB" + to "P". Available palettes are WEB or ADAPTIVE. + :param colors: Number of colors to use for the ADAPTIVE palette. + Defaults to 256. + :rtype: :py:class:`~PIL.Image.Image` + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + self.load() + + if not mode and self.mode == "P": + # determine default mode + if self.palette: + mode = self.palette.mode + else: + mode = "RGB" + if not mode or (mode == self.mode and not matrix): + return self.copy() + + has_transparency = self.info.get('transparency') is not None + if matrix: + # matrix conversion + if mode not in ("L", "RGB"): + raise ValueError("illegal conversion") + im = self.im.convert_matrix(mode, matrix) + new = self._new(im) + if has_transparency and self.im.bands == 3: + transparency = new.info['transparency'] + + def convert_transparency(m, v): + v = m[0]*v[0] + m[1]*v[1] + m[2]*v[2] + m[3]*0.5 + return max(0, min(255, int(v))) + if mode == "L": + transparency = convert_transparency(matrix, transparency) + elif len(mode) == 3: + transparency = tuple([ + convert_transparency(matrix[i*4:i*4+4], transparency) + for i in range(0, len(transparency)) + ]) + new.info['transparency'] = transparency + return new + + if mode == "P" and self.mode == "RGBA": + return self.quantize(colors) + + trns = None + delete_trns = False + # transparency handling + if has_transparency: + if self.mode in ('1', 'L', 'I', 'RGB') and mode == 'RGBA': + # Use transparent conversion to promote from transparent + # color to an alpha channel. + new_im = self._new(self.im.convert_transparent( + mode, self.info['transparency'])) + del new_im.info['transparency'] + return new_im + elif self.mode in ('L', 'RGB', 'P') and mode in ('L', 'RGB', 'P'): + t = self.info['transparency'] + if isinstance(t, bytes): + # Dragons. This can't be represented by a single color + warnings.warn('Palette images with Transparency ' + + ' expressed in bytes should be converted ' + + 'to RGBA images') + delete_trns = True + else: + # get the new transparency color. + # use existing conversions + trns_im = Image()._new(core.new(self.mode, (1, 1))) + if self.mode == 'P': + trns_im.putpalette(self.palette) + if isinstance(t, tuple): + try: + t = trns_im.palette.getcolor(t) + except Exception: + raise ValueError("Couldn't allocate a palette " + "color for transparency") + trns_im.putpixel((0, 0), t) + + if mode in ('L', 'RGB'): + trns_im = trns_im.convert(mode) + else: + # can't just retrieve the palette number, got to do it + # after quantization. + trns_im = trns_im.convert('RGB') + trns = trns_im.getpixel((0, 0)) + + elif self.mode == 'P' and mode == 'RGBA': + t = self.info['transparency'] + delete_trns = True + + if isinstance(t, bytes): + self.im.putpalettealphas(t) + elif isinstance(t, int): + self.im.putpalettealpha(t, 0) + else: + raise ValueError("Transparency for P mode should" + + " be bytes or int") + + if mode == "P" and palette == ADAPTIVE: + im = self.im.quantize(colors) + new = self._new(im) + from . import ImagePalette + new.palette = ImagePalette.raw("RGB", new.im.getpalette("RGB")) + if delete_trns: + # This could possibly happen if we requantize to fewer colors. + # The transparency would be totally off in that case. + del new.info['transparency'] + if trns is not None: + try: + new.info['transparency'] = new.palette.getcolor(trns) + except Exception: + # if we can't make a transparent color, don't leave the old + # transparency hanging around to mess us up. + del new.info['transparency'] + warnings.warn("Couldn't allocate palette entry " + + "for transparency") + return new + + # colorspace conversion + if dither is None: + dither = FLOYDSTEINBERG + + try: + im = self.im.convert(mode, dither) + except ValueError: + try: + # normalize source image and try again + im = self.im.convert(getmodebase(self.mode)) + im = im.convert(mode, dither) + except KeyError: + raise ValueError("illegal conversion") + + new_im = self._new(im) + if delete_trns: + # crash fail if we leave a bytes transparency in an rgb/l mode. + del new_im.info['transparency'] + if trns is not None: + if new_im.mode == 'P': + try: + new_im.info['transparency'] = new_im.palette.getcolor(trns) + except Exception: + del new_im.info['transparency'] + warnings.warn("Couldn't allocate palette entry " + + "for transparency") + else: + new_im.info['transparency'] = trns + return new_im + + def quantize(self, colors=256, method=None, kmeans=0, palette=None, dither=1): + """ + Convert the image to 'P' mode with the specified number + of colors. + + :param colors: The desired number of colors, <= 256 + :param method: 0 = median cut + 1 = maximum coverage + 2 = fast octree + 3 = libimagequant + :param kmeans: Integer + :param palette: Quantize to the palette of given + :py:class:`PIL.Image.Image`. + :param dither: Dithering method, used when converting from + mode "RGB" to "P" or from "RGB" or "L" to "1". + Available methods are NONE or FLOYDSTEINBERG (default). + Default: 1 (legacy setting) + :returns: A new image + + """ + + self.load() + + if method is None: + # defaults: + method = 0 + if self.mode == 'RGBA': + method = 2 + + if self.mode == 'RGBA' and method not in (2, 3): + # Caller specified an invalid mode. + raise ValueError( + 'Fast Octree (method == 2) and libimagequant (method == 3) ' + + 'are the only valid methods for quantizing RGBA images') + + if palette: + # use palette from reference image + palette.load() + if palette.mode != "P": + raise ValueError("bad mode for palette image") + if self.mode != "RGB" and self.mode != "L": + raise ValueError( + "only RGB or L mode images can be quantized to a palette" + ) + im = self.im.convert("P", dither, palette.im) + return self._new(im) + + im = self._new(self.im.quantize(colors, method, kmeans)) + + from . import ImagePalette + mode = im.im.getpalettemode() + im.palette = ImagePalette.ImagePalette(mode, im.im.getpalette(mode, mode)) + + return im + + def copy(self): + """ + Copies this image. Use this method if you wish to paste things + into an image, but still retain the original. + + :rtype: :py:class:`~PIL.Image.Image` + :returns: An :py:class:`~PIL.Image.Image` object. + """ + self.load() + return self._new(self.im.copy()) + + __copy__ = copy + + def crop(self, box=None): + """ + Returns a rectangular region from this image. The box is a + 4-tuple defining the left, upper, right, and lower pixel + coordinate. See :ref:`coordinate-system`. + + Note: Prior to Pillow 3.4.0, this was a lazy operation. + + :param box: The crop rectangle, as a (left, upper, right, lower)-tuple. + :rtype: :py:class:`~PIL.Image.Image` + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + if box is None: + return self.copy() + + self.load() + return self._new(self._crop(self.im, box)) + + def _crop(self, im, box): + """ + Returns a rectangular region from the core image object im. + + This is equivalent to calling im.crop((x0, y0, x1, y1)), but + includes additional sanity checks. + + :param im: a core image object + :param box: The crop rectangle, as a (left, upper, right, lower)-tuple. + :returns: A core image object. + """ + + x0, y0, x1, y1 = map(int, map(round, box)) + + absolute_values = (abs(x1 - x0), abs(y1 - y0)) + + _decompression_bomb_check(absolute_values) + + return im.crop((x0, y0, x1, y1)) + + def draft(self, mode, size): + """ + 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. + + 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 + effect. + + Note: This method is not implemented for most images. It is + currently implemented only for JPEG and PCD images. + + :param mode: The requested mode. + :param size: The requested size. + """ + pass + + def _expand(self, xmargin, ymargin=None): + if ymargin is None: + ymargin = xmargin + self.load() + return self._new(self.im.expand(xmargin, ymargin, 0)) + + def filter(self, filter): + """ + Filters this image using the given filter. For a list of + available filters, see the :py:mod:`~PIL.ImageFilter` module. + + :param filter: Filter kernel. + :returns: An :py:class:`~PIL.Image.Image` object. """ + + from . import ImageFilter + + self.load() + + if isinstance(filter, Callable): + filter = filter() + if not hasattr(filter, "filter"): + raise TypeError("filter argument should be ImageFilter.Filter " + + "instance or class") + + multiband = isinstance(filter, ImageFilter.MultibandFilter) + if self.im.bands == 1 or multiband: + return self._new(filter.filter(self.im)) + + ims = [] + for c in range(self.im.bands): + ims.append(self._new(filter.filter(self.im.getband(c)))) + return merge(self.mode, ims) + + def getbands(self): + """ + Returns a tuple containing the name of each band in this image. + For example, **getbands** on an RGB image returns ("R", "G", "B"). + + :returns: A tuple containing band names. + :rtype: tuple + """ + return ImageMode.getmode(self.mode).bands + + def getbbox(self): + """ + Calculates the bounding box of the non-zero regions in the + image. + + :returns: The bounding box is returned as a 4-tuple defining the + left, upper, right, and lower pixel coordinate. See + :ref:`coordinate-system`. If the image is completely empty, this + method returns None. + + """ + + self.load() + return self.im.getbbox() + + def getcolors(self, maxcolors=256): + """ + Returns a list of colors used in this image. + + :param maxcolors: Maximum number of colors. If this number is + exceeded, this method returns None. The default limit is + 256 colors. + :returns: An unsorted list of (count, pixel) values. + """ + + self.load() + if self.mode in ("1", "L", "P"): + h = self.im.histogram() + out = [] + for i in range(256): + if h[i]: + out.append((h[i], i)) + if len(out) > maxcolors: + return None + return out + return self.im.getcolors(maxcolors) + + def getdata(self, band=None): + """ + Returns the contents of this image as a sequence object + containing pixel values. The sequence object is flattened, so + that values for line one follow directly after the values of + line zero, and so on. + + Note that the sequence object returned by this method is an + internal PIL data type, which only supports certain sequence + operations. To convert it to an ordinary sequence (e.g. for + printing), use **list(im.getdata())**. + + :param band: What band to return. The default is to return + all bands. To return a single band, pass in the index + value (e.g. 0 to get the "R" band from an "RGB" image). + :returns: A sequence-like object. + """ + + self.load() + if band is not None: + return self.im.getband(band) + return self.im # could be abused + + def getextrema(self): + """ + Gets the the minimum and maximum pixel values for each band in + the image. + + :returns: For a single-band image, a 2-tuple containing the + minimum and maximum pixel value. For a multi-band image, + a tuple containing one 2-tuple for each band. + """ + + self.load() + if self.im.bands > 1: + extrema = [] + for i in range(self.im.bands): + extrema.append(self.im.getband(i).getextrema()) + return tuple(extrema) + return self.im.getextrema() + + def getexif(self): + exif = Exif() + if "exif" in self.info: + exif.load(self.info["exif"]) + return exif + + def getim(self): + """ + Returns a capsule that points to the internal image memory. + + :returns: A capsule object. + """ + + self.load() + return self.im.ptr + + def getpalette(self): + """ + Returns the image palette as a list. + + :returns: A list of color values [r, g, b, ...], or None if the + image has no palette. + """ + + self.load() + try: + if py3: + return list(self.im.getpalette()) + else: + return [i8(c) for c in self.im.getpalette()] + except ValueError: + return None # no palette + + def getpixel(self, xy): + """ + Returns the pixel value at a given position. + + :param xy: The coordinate, given as (x, y). See + :ref:`coordinate-system`. + :returns: The pixel value. If the image is a multi-layer image, + this method returns a tuple. + """ + + self.load() + if self.pyaccess: + return self.pyaccess.getpixel(xy) + return self.im.getpixel(xy) + + def getprojection(self): + """ + Get projection to x and y axes + + :returns: Two sequences, indicating where there are non-zero + pixels along the X-axis and the Y-axis, respectively. + """ + + self.load() + x, y = self.im.getprojection() + return [i8(c) for c in x], [i8(c) for c in y] + + def histogram(self, mask=None, extrema=None): + """ + Returns a histogram for the image. The histogram is returned as + a list of pixel counts, one for each pixel value in the source + image. If the image has more than one band, the histograms for + all bands are concatenated (for example, the histogram for an + "RGB" image contains 768 values). + + A bilevel image (mode "1") is treated as a greyscale ("L") image + by this method. + + If a mask is provided, the method returns a histogram for those + parts of the image where the mask image is non-zero. The mask + image must have the same size as the image, and be either a + bi-level image (mode "1") or a greyscale image ("L"). + + :param mask: An optional mask. + :returns: A list containing pixel counts. + """ + self.load() + if mask: + mask.load() + return self.im.histogram((0, 0), mask.im) + if self.mode in ("I", "F"): + if extrema is None: + extrema = self.getextrema() + return self.im.histogram(extrema) + return self.im.histogram() + + def offset(self, xoffset, yoffset=None): + raise NotImplementedError("offset() has been removed. " + "Please call ImageChops.offset() instead.") + + def paste(self, im, box=None, mask=None): + """ + Pastes another image into this image. The box argument is either + a 2-tuple giving the upper left corner, a 4-tuple defining the + left, upper, right, and lower pixel coordinate, or None (same as + (0, 0)). See :ref:`coordinate-system`. If a 4-tuple is given, the size + of the pasted image must match the size of the region. + + If the modes don't match, the pasted image is converted to the mode of + this image (see the :py:meth:`~PIL.Image.Image.convert` method for + details). + + Instead of an image, the source can be a integer or tuple + containing pixel values. The method then fills the region + with the given color. When creating RGB images, you can + also use color strings as supported by the ImageColor module. + + If a mask is given, this method updates only the regions + indicated by the mask. You can use either "1", "L" or "RGBA" + images (in the latter case, the alpha band is used as mask). + Where the mask is 255, the given image is copied as is. Where + the mask is 0, the current value is preserved. Intermediate + values will mix the two images together, including their alpha + channels if they have them. + + See :py:meth:`~PIL.Image.Image.alpha_composite` if you want to + combine images with respect to their alpha channels. + + :param im: Source image or pixel value (integer or tuple). + :param box: An optional 4-tuple giving the region to paste into. + If a 2-tuple is used instead, it's treated as the upper left + corner. If omitted or None, the source is pasted into the + upper left corner. + + If an image is given as the second argument and there is no + third, the box defaults to (0, 0), and the second argument + is interpreted as a mask image. + :param mask: An optional mask image. + """ + + if isImageType(box) and mask is None: + # abbreviated paste(im, mask) syntax + mask = box + box = None + + if box is None: + box = (0, 0) + + if len(box) == 2: + # upper left corner given; get size from image or mask + if isImageType(im): + size = im.size + elif isImageType(mask): + size = mask.size + else: + # FIXME: use self.size here? + raise ValueError( + "cannot determine region size; use 4-item box" + ) + box += (box[0]+size[0], box[1]+size[1]) + + if isStringType(im): + from . import ImageColor + im = ImageColor.getcolor(im, self.mode) + + elif isImageType(im): + im.load() + if self.mode != im.mode: + if self.mode != "RGB" or im.mode not in ("RGBA", "RGBa"): + # should use an adapter for this! + im = im.convert(self.mode) + im = im.im + + self._ensure_mutable() + + if mask: + mask.load() + self.im.paste(im, box, mask.im) + else: + self.im.paste(im, box) + + def alpha_composite(self, im, dest=(0, 0), source=(0, 0)): + """ 'In-place' analog of Image.alpha_composite. Composites an image + onto this image. + + :param im: image to composite over this one + :param dest: Optional 2 tuple (left, top) specifying the upper + left corner in this (destination) image. + :param source: Optional 2 (left, top) tuple for the upper left + corner in the overlay source image, or 4 tuple (left, top, right, + bottom) for the bounds of the source rectangle + + Performance Note: Not currently implemented in-place in the core layer. + """ + + if not isinstance(source, (list, tuple)): + raise ValueError("Source must be a tuple") + if not isinstance(dest, (list, tuple)): + raise ValueError("Destination must be a tuple") + if not len(source) in (2, 4): + raise ValueError("Source must be a 2 or 4-tuple") + if not len(dest) == 2: + raise ValueError("Destination must be a 2-tuple") + if min(source) < 0: + raise ValueError("Source must be non-negative") + if min(dest) < 0: + raise ValueError("Destination must be non-negative") + + if len(source) == 2: + source = source + im.size + + # over image, crop if it's not the whole thing. + if source == (0, 0) + im.size: + overlay = im + else: + overlay = im.crop(source) + + # target for the paste + box = dest + (dest[0] + overlay.width, dest[1] + overlay.height) + + # destination image. don't copy if we're using the whole image. + if box == (0, 0) + self.size: + background = self + else: + background = self.crop(box) + + result = alpha_composite(background, overlay) + self.paste(result, box) + + def point(self, lut, mode=None): + """ + Maps this image through a lookup table or function. + + :param lut: A lookup table, containing 256 (or 65536 if + self.mode=="I" and mode == "L") values per band in the + image. A function can be used instead, it should take a + single argument. The function is called once for each + possible pixel value, and the resulting table is applied to + all bands of the image. + :param mode: Output mode (default is same as input). In the + current version, this can only be used if the source image + has mode "L" or "P", and the output has mode "1" or the + source image mode is "I" and the output mode is "L". + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + self.load() + + if isinstance(lut, ImagePointHandler): + return lut.point(self) + + if callable(lut): + # if it isn't a list, it should be a function + if self.mode in ("I", "I;16", "F"): + # check if the function can be used with point_transform + # UNDONE wiredfool -- I think this prevents us from ever doing + # a gamma function point transform on > 8bit images. + scale, offset = _getscaleoffset(lut) + return self._new(self.im.point_transform(scale, offset)) + # for other modes, convert the function to a table + lut = [lut(i) for i in range(256)] * self.im.bands + + if self.mode == "F": + # FIXME: _imaging returns a confusing error message for this case + raise ValueError("point operation not supported for this mode") + + return self._new(self.im.point(lut, mode)) + + def putalpha(self, alpha): + """ + Adds or replaces the alpha layer in this image. If the image + does not have an alpha layer, it's converted to "LA" or "RGBA". + The new layer must be either "L" or "1". + + :param alpha: The new alpha layer. This can either be an "L" or "1" + image having the same size as this image, or an integer or + other color value. + """ + + self._ensure_mutable() + + if self.mode not in ("LA", "PA", "RGBA"): + # attempt to promote self to a matching alpha mode + try: + mode = getmodebase(self.mode) + "A" + try: + self.im.setmode(mode) + except (AttributeError, ValueError): + # do things the hard way + im = self.im.convert(mode) + if im.mode not in ("LA", "PA", "RGBA"): + raise ValueError # sanity check + self.im = im + self.pyaccess = None + self.mode = self.im.mode + except (KeyError, ValueError): + raise ValueError("illegal image mode") + + if self.mode in ("LA", "PA"): + band = 1 + else: + band = 3 + + if isImageType(alpha): + # alpha layer + if alpha.mode not in ("1", "L"): + raise ValueError("illegal image mode") + alpha.load() + if alpha.mode == "1": + alpha = alpha.convert("L") + else: + # constant alpha + try: + self.im.fillband(band, alpha) + except (AttributeError, ValueError): + # do things the hard way + alpha = new("L", self.size, alpha) + else: + return + + self.im.putband(alpha.im, band) + + def putdata(self, data, scale=1.0, offset=0.0): + """ + Copies pixel data to this image. This method copies data from a + sequence object into the image, starting at the upper left + corner (0, 0), and continuing until either the image or the + sequence ends. The scale and offset values are used to adjust + the sequence values: **pixel = value*scale + offset**. + + :param data: A sequence object. + :param scale: An optional scale value. The default is 1.0. + :param offset: An optional offset value. The default is 0.0. + """ + + self._ensure_mutable() + + self.im.putdata(data, scale, offset) + + def putpalette(self, data, rawmode="RGB"): + """ + Attaches a palette to this image. The image must be a "P", + "PA", "L" or "LA" image, and the palette sequence must contain + 768 integer values, where each group of three values represent + the red, green, and blue values for the corresponding pixel + index. Instead of an integer sequence, you can use an 8-bit + string. + + :param data: A palette sequence (either a list or a string). + :param rawmode: The raw mode of the palette. + """ + from . import ImagePalette + + if self.mode not in ("L", "LA", "P", "PA"): + raise ValueError("illegal image mode") + self.load() + if isinstance(data, ImagePalette.ImagePalette): + 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) + palette = ImagePalette.raw(rawmode, data) + self.mode = "PA" if "A" in self.mode else "P" + self.palette = palette + self.palette.mode = "RGB" + self.load() # install new palette + + def putpixel(self, xy, value): + """ + Modifies the pixel at the given position. The color is given as + a single numerical value for single-band images, and a tuple for + multi-band images. In addition to this, RGB and RGBA tuples are + accepted for P images. + + Note that this method is relatively slow. For more extensive changes, + use :py:meth:`~PIL.Image.Image.paste` or the :py:mod:`~PIL.ImageDraw` + module instead. + + See: + + * :py:meth:`~PIL.Image.Image.paste` + * :py:meth:`~PIL.Image.Image.putdata` + * :py:mod:`~PIL.ImageDraw` + + :param xy: The pixel coordinate, given as (x, y). See + :ref:`coordinate-system`. + :param value: The pixel value. + """ + + if self.readonly: + self._copy() + self.load() + + if self.pyaccess: + return self.pyaccess.putpixel(xy, value) + + if self.mode == "P" and \ + isinstance(value, (list, tuple)) and len(value) in [3, 4]: + # RGB or RGBA value for a P image + value = self.palette.getcolor(value) + return self.im.putpixel(xy, value) + + def remap_palette(self, dest_map, source_palette=None): + """ + Rewrites the image to reorder the palette. + + :param dest_map: A list of indexes into the original palette. + e.g. [1,0] would swap a two item palette, and list(range(256)) + is the identity transform. + :param source_palette: Bytes or None. + :returns: An :py:class:`~PIL.Image.Image` object. + + """ + from . import ImagePalette + + if self.mode not in ("L", "P"): + raise ValueError("illegal image mode") + + if source_palette is None: + if self.mode == "P": + real_source_palette = self.im.getpalette("RGB")[:768] + else: # L-mode + real_source_palette = bytearray(i//3 for i in range(768)) + else: + real_source_palette = source_palette + + palette_bytes = b"" + new_positions = [0]*256 + + # pick only the used colors from the palette + for i, oldPosition in enumerate(dest_map): + palette_bytes += real_source_palette[oldPosition*3:oldPosition*3+3] + new_positions[oldPosition] = i + + # replace the palette color id of all pixel with the new id + + # Palette images are [0..255], mapped through a 1 or 3 + # byte/color map. We need to remap the whole image + # from palette 1 to palette 2. New_positions is + # an array of indexes into palette 1. Palette 2 is + # palette 1 with any holes removed. + + # We're going to leverage the convert mechanism to use the + # C code to remap the image from palette 1 to palette 2, + # by forcing the source image into 'L' mode and adding a + # mapping 'L' mode palette, then converting back to 'L' + # sans palette thus converting the image bytes, then + # assigning the optimized RGB palette. + + # perf reference, 9500x4000 gif, w/~135 colors + # 14 sec prepatch, 1 sec postpatch with optimization forced. + + mapping_palette = bytearray(new_positions) + + m_im = self.copy() + m_im.mode = 'P' + + m_im.palette = ImagePalette.ImagePalette("RGB", + palette=mapping_palette*3, + size=768) + # possibly set palette dirty, then + # m_im.putpalette(mapping_palette, 'L') # converts to 'P' + # or just force it. + # UNDONE -- this is part of the general issue with palettes + m_im.im.putpalette(*m_im.palette.getdata()) + + m_im = m_im.convert('L') + + # Internally, we require 768 bytes for a palette. + new_palette_bytes = (palette_bytes + + (768 - len(palette_bytes)) * b'\x00') + m_im.putpalette(new_palette_bytes) + m_im.palette = ImagePalette.ImagePalette("RGB", + palette=palette_bytes, + size=len(palette_bytes)) + + return m_im + + def resize(self, size, resample=NEAREST, box=None): + """ + Returns a resized copy of this image. + + :param size: The requested size in pixels, as a 2-tuple: + (width, height). + :param resample: An optional resampling filter. This can be + 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`. + 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. + If omitted or None, the entire source is used. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + if resample not in ( + NEAREST, BILINEAR, BICUBIC, LANCZOS, BOX, HAMMING, + ): + raise ValueError("unknown resampling filter") + + size = tuple(size) + + if box is None: + box = (0, 0) + self.size + else: + box = tuple(box) + + if self.size == size and box == (0, 0) + self.size: + return self.copy() + + if self.mode in ("1", "P"): + resample = NEAREST + + if self.mode in ['LA', 'RGBA']: + im = self.convert(self.mode[:-1]+'a') + im = im.resize(size, resample, box) + return im.convert(self.mode) + + self.load() + + return self._new(self.im.resize(size, resample, box)) + + def rotate(self, angle, resample=NEAREST, expand=0, center=None, + translate=None, fillcolor=None): + """ + Returns a rotated copy of this image. This method returns a + copy of this image, rotated the given number of degrees counter + clockwise around its centre. + + :param angle: In degrees counter clockwise. + :param resample: An optional resampling filter. This can be + one of :py:attr:`PIL.Image.NEAREST` (use nearest neighbour), + :py:attr:`PIL.Image.BILINEAR` (linear interpolation in a 2x2 + 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`. + :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 + input image. Note that the expand flag assumes rotation around + the center and no translation. + :param center: Optional center of rotation (a 2-tuple). Origin is + the upper left corner. Default is the center of the image. + :param translate: An optional post-rotate translation (a 2-tuple). + :param fillcolor: An optional color for area outside the rotated image. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + angle = angle % 360.0 + + # Fast paths regardless of filter, as long as we're not + # translating or changing the center. + if not (center or translate): + if angle == 0: + return self.copy() + if angle == 180: + return self.transpose(ROTATE_180) + if angle == 90 and expand: + return self.transpose(ROTATE_90) + if angle == 270 and expand: + return self.transpose(ROTATE_270) + + # Calculate the affine matrix. Note that this is the reverse + # transformation (from destination image to source) because we + # want to interpolate the (discrete) destination pixel from + # the local area around the (floating) source pixel. + + # The matrix we actually want (note that it operates from the right): + # (1, 0, tx) (1, 0, cx) ( cos a, sin a, 0) (1, 0, -cx) + # (0, 1, ty) * (0, 1, cy) * (-sin a, cos a, 0) * (0, 1, -cy) + # (0, 0, 1) (0, 0, 1) ( 0, 0, 1) (0, 0, 1) + + # The reverse matrix is thus: + # (1, 0, cx) ( cos -a, sin -a, 0) (1, 0, -cx) (1, 0, -tx) + # (0, 1, cy) * (-sin -a, cos -a, 0) * (0, 1, -cy) * (0, 1, -ty) + # (0, 0, 1) ( 0, 0, 1) (0, 0, 1) (0, 0, 1) + + # In any case, the final translation may be updated at the end to + # compensate for the expand flag. + + w, h = self.size + + if translate is None: + post_trans = (0, 0) + else: + post_trans = translate + if center is None: + # FIXME These should be rounded to ints? + rotn_center = (w / 2.0, h / 2.0) + else: + rotn_center = center + + angle = - math.radians(angle) + matrix = [ + round(math.cos(angle), 15), round(math.sin(angle), 15), 0.0, + round(-math.sin(angle), 15), round(math.cos(angle), 15), 0.0 + ] + + def transform(x, y, matrix): + (a, b, c, d, e, f) = matrix + return a*x + b*y + c, d*x + e*y + f + + matrix[2], matrix[5] = transform(-rotn_center[0] - post_trans[0], + -rotn_center[1] - post_trans[1], + matrix) + matrix[2] += rotn_center[0] + matrix[5] += rotn_center[1] + + if expand: + # calculate output size + xx = [] + yy = [] + for x, y in ((0, 0), (w, 0), (w, h), (0, h)): + 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))) + + # We multiply a translation matrix from the right. Because of its + # special form, this is the same as taking the image of the + # translation vector as new translation vector. + matrix[2], matrix[5] = transform(-(nw - w) / 2.0, + -(nh - h) / 2.0, + matrix) + w, h = nw, nh + + return self.transform((w, h), AFFINE, matrix, resample, + fillcolor=fillcolor) + + def save(self, fp, format=None, **params): + """ + Saves this image under the given filename. If no format is + specified, the format to use is determined from the filename + extension, if possible. + + Keyword options can be used to provide additional instructions + to the writer. If a writer doesn't recognise an option, it is + silently ignored. The available options are described in the + :doc:`image format documentation + <../handbook/image-file-formats>` for each writer. + + You can use a file object instead of a filename. In this case, + you must always specify the format. The file object must + implement the ``seek``, ``tell``, and ``write`` + methods, and be opened in binary mode. + + :param fp: A filename (string), pathlib.Path object or file object. + :param format: Optional format override. If omitted, the + format to use is determined from the filename extension. + If a file object was used instead of a filename, this + parameter should always be used. + :param params: Extra parameters to the image writer. + :returns: None + :exception ValueError: If the output format could not be determined + from the file name. Use the format option to solve this. + :exception IOError: If the file could not be written. The file + may have been created, and may contain partial data. + """ + + filename = "" + open_fp = False + if isPath(fp): + filename = fp + open_fp = True + elif HAS_PATHLIB and isinstance(fp, Path): + filename = str(fp) + open_fp = True + if not filename and hasattr(fp, "name") and isPath(fp.name): + # only set the name for metadata purposes + filename = fp.name + + # may mutate self! + self._ensure_mutable() + + save_all = params.pop('save_all', False) + self.encoderinfo = params + self.encoderconfig = () + + preinit() + + ext = os.path.splitext(filename)[1].lower() + + if not format: + if ext not in EXTENSION: + init() + try: + format = EXTENSION[ext] + except KeyError: + raise ValueError('unknown file extension: {}'.format(ext)) + + if format.upper() not in SAVE: + init() + if save_all: + save_handler = SAVE_ALL[format.upper()] + else: + save_handler = SAVE[format.upper()] + + if open_fp: + if params.get('append', False): + fp = builtins.open(filename, "r+b") + else: + # Open also for reading ("+"), because TIFF save_all + # writer needs to go back and edit the written data. + fp = builtins.open(filename, "w+b") + + try: + save_handler(self, fp, filename) + finally: + # do what we can to clean up + if open_fp: + fp.close() + + def seek(self, frame): + """ + Seeks to the given frame in this sequence file. If you seek + beyond the end of the sequence, the method raises an + **EOFError** exception. When a sequence file is opened, the + library automatically seeks to frame 0. + + See :py:meth:`~PIL.Image.Image.tell`. + + :param frame: Frame number, starting at 0. + :exception EOFError: If the call attempts to seek beyond the end + of the sequence. + """ + + # overridden by file handlers + if frame != 0: + raise EOFError + + def show(self, title=None, command=None): + """ + Displays this image. This method is mainly intended for + debugging purposes. + + On Unix platforms, this method saves the image to a temporary + PPM file, and calls the **display**, **eog** or **xv** + utility, depending on which one can be found. + + On macOS, this method saves the image to a temporary PNG file, and + opens it with the native Preview application. + + On Windows, it saves the image to a temporary BMP file, and uses + the standard BMP display utility to show it (usually Paint). + + :param title: Optional title to use for the image window, + where possible. + :param command: command used to show the image + """ + + _show(self, title=title, command=command) + + def split(self): + """ + Split this image into individual bands. This method returns a + tuple of individual image bands from an image. For example, + splitting an "RGB" image creates three new images each + containing a copy of one of the original bands (red, green, + blue). + + If you need only one band, :py:meth:`~PIL.Image.Image.getchannel` + method can be more convenient and faster. + + :returns: A tuple containing bands. + """ + + self.load() + if self.im.bands == 1: + ims = [self.copy()] + else: + ims = map(self._new, self.im.split()) + return tuple(ims) + + def getchannel(self, channel): + """ + Returns an image containing a single channel of the source image. + + :param channel: What channel to return. Could be index + (0 for "R" channel of "RGB") or channel name + ("A" for alpha channel of "RGBA"). + :returns: An image in "L" mode. + + .. versionadded:: 4.3.0 + """ + self.load() + + if isStringType(channel): + try: + channel = self.getbands().index(channel) + except ValueError: + raise ValueError( + 'The image has no channel "{}"'.format(channel)) + + return self._new(self.im.getband(channel)) + + def tell(self): + """ + Returns the current frame number. See :py:meth:`~PIL.Image.Image.seek`. + + :returns: Frame number, starting with 0. + """ + return 0 + + def thumbnail(self, size, resample=BICUBIC): + """ + Make this image into a thumbnail. This method modifies the + image to contain a thumbnail version of itself, no larger than + the given size. This method calculates an appropriate thumbnail + size to preserve the aspect of the image, calls the + :py:meth:`~PIL.Image.Image.draft` method to configure the file reader + (where applicable), and finally resizes the image. + + Note that this function modifies the :py:class:`~PIL.Image.Image` + object in place. If you need to use the full resolution image as well, + apply this method to a :py:meth:`~PIL.Image.Image.copy` of the original + image. + + :param size: Requested size. + :param resample: Optional resampling filter. This can be one + 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) + :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: + return + + self.draft(None, size) + + if self.size != size: + im = self.resize(size, resample) + + self.im = im.im + self._size = size + self.mode = self.im.mode + + self.readonly = 0 + self.pyaccess = None + + # FIXME: the different transform methods need further explanation + # instead of bloating the method docs, add a separate chapter. + def transform(self, size, method, data=None, resample=NEAREST, + fill=1, fillcolor=None): + """ + Transforms this image. This method creates a new image with the + given size, and the same mode as the original, and copies data + to the new image using the given transform. + + :param size: The output size. + :param method: The transformation method. This is one of + :py:attr:`PIL.Image.EXTENT` (cut out a rectangular subregion), + :py:attr:`PIL.Image.AFFINE` (affine transform), + :py:attr:`PIL.Image.PERSPECTIVE` (perspective transform), + :py:attr:`PIL.Image.QUAD` (map a quadrilateral to a rectangle), or + :py:attr:`PIL.Image.MESH` (map a number of source quadrilaterals + in one operation). + + 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 + data = (0, 0, 100, 100) + return method, data + :param data: Extra data to the transformation method. + :param resample: Optional resampling filter. It can be one of + :py:attr:`PIL.Image.NEAREST` (use nearest neighbour), + :py:attr:`PIL.Image.BILINEAR` (linear interpolation in a 2x2 + 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 to :py:attr:`PIL.Image.NEAREST`. + :param fill: If **method** is an + :py:class:`~PIL.Image.ImageTransformHandler` object, this is one of + the arguments passed to it. Otherwise, it is unused. + :param fillcolor: Optional fill color for the area outside the + transform in the output image. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + if self.mode == 'LA': + return self.convert('La').transform( + size, method, data, resample, fill, fillcolor).convert('LA') + + if self.mode == 'RGBA': + return self.convert('RGBa').transform( + size, method, data, resample, fill, fillcolor).convert('RGBA') + + if isinstance(method, ImageTransformHandler): + return method.transform(size, self, resample=resample, fill=fill) + + if hasattr(method, "getdata"): + # compatibility w. old-style transform objects + method, data = method.getdata() + + if data is None: + raise ValueError("missing method data") + + im = new(self.mode, size, fillcolor) + if method == MESH: + # list of quads + for box, quad in data: + im.__transformer(box, self, QUAD, quad, resample, + fillcolor is None) + else: + im.__transformer((0, 0)+size, self, method, data, + resample, fillcolor is None) + + return im + + def __transformer(self, box, image, method, data, + resample=NEAREST, fill=1): + w = box[2] - box[0] + h = box[3] - box[1] + + if method == AFFINE: + data = data[0:6] + + elif method == EXTENT: + # convert extent to an affine transform + x0, y0, x1, y1 = data + xs = float(x1 - x0) / w + ys = float(y1 - y0) / h + method = AFFINE + data = (xs, 0, x0, 0, ys, y0) + + elif method == PERSPECTIVE: + data = data[0:8] + + elif method == QUAD: + # quadrilateral warp. data specifies the four corners + # given as NW, SW, SE, and NE. + nw = data[0:2] + sw = data[2:4] + se = data[4:6] + ne = data[6:8] + x0, y0 = nw + As = 1.0 / w + At = 1.0 / h + data = (x0, (ne[0]-x0)*As, (sw[0]-x0)*At, + (se[0]-sw[0]-ne[0]+x0)*As*At, + y0, (ne[1]-y0)*As, (sw[1]-y0)*At, + (se[1]-sw[1]-ne[1]+y0)*As*At) + + else: + raise ValueError("unknown transformation method") + + if resample not in (NEAREST, BILINEAR, BICUBIC): + raise ValueError("unknown resampling filter") + + image.load() + + self.load() + + if image.mode in ("1", "P"): + resample = NEAREST + + self.im.transform2(box, image.im, method, data, resample, fill) + + def transpose(self, method): + """ + Transpose image (flip or rotate in 90 degree steps) + + :param method: One of :py:attr:`PIL.Image.FLIP_LEFT_RIGHT`, + :py:attr:`PIL.Image.FLIP_TOP_BOTTOM`, :py:attr:`PIL.Image.ROTATE_90`, + :py:attr:`PIL.Image.ROTATE_180`, :py:attr:`PIL.Image.ROTATE_270`, + :py:attr:`PIL.Image.TRANSPOSE` or :py:attr:`PIL.Image.TRANSVERSE`. + :returns: Returns a flipped or rotated copy of this image. + """ + + self.load() + return self._new(self.im.transpose(method)) + + def effect_spread(self, distance): + """ + Randomly spread pixels in an image. + + :param distance: Distance to spread pixels. + """ + self.load() + return self._new(self.im.effect_spread(distance)) + + def toqimage(self): + """Returns a QImage copy of this image""" + from . import ImageQt + if not ImageQt.qt_is_installed: + raise ImportError("Qt bindings are not installed") + return ImageQt.toqimage(self) + + def toqpixmap(self): + """Returns a QPixmap copy of this image""" + from . import ImageQt + if not ImageQt.qt_is_installed: + raise ImportError("Qt bindings are not installed") + return ImageQt.toqpixmap(self) + + +# -------------------------------------------------------------------- +# Abstract handlers. + +class ImagePointHandler(object): + # used as a mixin by point transforms (for use with im.point) + pass + + +class ImageTransformHandler(object): + # used as a mixin by geometry transforms (for use with im.transform) + pass + + +# -------------------------------------------------------------------- +# Factories + +# +# Debugging + +def _wedge(): + """Create greyscale wedge (for debugging only)""" + + return Image()._new(core.wedge("L")) + + +def _check_size(size): + """ + Common check to enforce type and sanity check on size tuples + + :param size: Should be a 2 tuple of (width, height) + :returns: True, or raises a ValueError + """ + + if not isinstance(size, (list, tuple)): + raise ValueError("Size must be a tuple") + if len(size) != 2: + raise ValueError("Size must be a tuple of length 2") + if size[0] < 0 or size[1] < 0: + raise ValueError("Width and height must be >= 0") + + return True + + +def new(mode, size, color=0): + """ + Creates a new image with the given mode and size. + + :param mode: The mode to use for the new image. See: + :ref:`concept-modes`. + :param size: A 2-tuple, containing (width, height) in pixels. + :param color: What color to use for the image. Default is black. + If given, this should be a single integer or floating point value + for single-band modes, and a tuple for multi-band modes (one value + per band). When creating RGB images, you can also use color + strings as supported by the ImageColor module. If the color is + None, the image is not initialised. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + _check_size(size) + + if color is None: + # don't initialize + return Image()._new(core.new(mode, size)) + + if isStringType(color): + # css3-style specifier + + from . import ImageColor + color = ImageColor.getcolor(color, mode) + + im = Image() + if mode == "P" and \ + isinstance(color, (list, tuple)) and len(color) in [3, 4]: + # RGB or RGBA value for a P image + from . import ImagePalette + im.palette = ImagePalette.ImagePalette() + color = im.palette.getcolor(color) + return im._new(core.fill(mode, size, color)) + + +def frombytes(mode, size, data, decoder_name="raw", *args): + """ + Creates a copy of an image memory from pixel data in a buffer. + + In its simplest form, this function takes three arguments + (mode, size, and unpacked pixel data). + + You can also use any pixel decoder supported by PIL. For more + information on available decoders, see the section + :ref:`Writing Your Own File Decoder `. + + Note that this function decodes pixel data only, not entire images. + If you have an entire image in a string, wrap it in a + :py:class:`~io.BytesIO` object, and use :py:func:`~PIL.Image.open` to load + it. + + :param mode: The image mode. See: :ref:`concept-modes`. + :param size: The image size. + :param data: A byte buffer containing raw data for the given mode. + :param decoder_name: What decoder to use. + :param args: Additional parameters for the given decoder. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + _check_size(size) + + # may pass tuple instead of argument list + if len(args) == 1 and isinstance(args[0], tuple): + args = args[0] + + if decoder_name == "raw" and args == (): + args = mode + + im = new(mode, size) + im.frombytes(data, decoder_name, args) + return im + + +def fromstring(*args, **kw): + raise NotImplementedError("fromstring() has been removed. " + + "Please call frombytes() instead.") + + +def frombuffer(mode, size, data, decoder_name="raw", *args): + """ + Creates an image memory referencing pixel data in a byte buffer. + + This function is similar to :py:func:`~PIL.Image.frombytes`, but uses data + in the byte buffer, where possible. This means that changes to the + original buffer object are reflected in this image). Not all modes can + share memory; supported modes include "L", "RGBX", "RGBA", and "CMYK". + + Note that this function decodes pixel data only, not entire images. + If you have an entire image file in a string, wrap it in a + **BytesIO** object, and use :py:func:`~PIL.Image.open` to load it. + + In the current version, the default parameters used for the "raw" decoder + differs from that used for :py:func:`~PIL.Image.frombytes`. This is a + bug, and will probably be fixed in a future release. The current release + issues a warning if you do this; to disable the warning, you should provide + the full set of parameters. See below for details. + + :param mode: The image mode. See: :ref:`concept-modes`. + :param size: The image size. + :param data: A bytes or other buffer object containing raw + data for the given mode. + :param decoder_name: What decoder to use. + :param args: Additional parameters for the given decoder. For the + default encoder ("raw"), it's recommended that you provide the + full set of parameters:: + + frombuffer(mode, size, data, "raw", mode, 0, 1) + + :returns: An :py:class:`~PIL.Image.Image` object. + + .. versionadded:: 1.1.4 + """ + + _check_size(size) + + # may pass tuple instead of argument list + if len(args) == 1 and isinstance(args[0], tuple): + args = args[0] + + if decoder_name == "raw": + if args == (): + warnings.warn( + "the frombuffer defaults may change in a future release; " + "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 + if args[0] in _MAPMODES: + im = new(mode, (1, 1)) + im = im._new( + core.map_buffer(data, size, decoder_name, None, 0, args) + ) + im.readonly = 1 + return im + + return frombytes(mode, size, data, decoder_name, args) + + +def fromarray(obj, mode=None): + """ + Creates an image memory from an object exporting the array interface + (using the buffer protocol). + + If **obj** is not contiguous, then the tobytes method is called + and :py:func:`~PIL.Image.frombuffer` is used. + + If you have an image in NumPy:: + + from PIL import Image + import numpy as np + im = Image.open('hopper.jpg') + a = np.asarray(im) + + Then this can be used to convert it to a Pillow image:: + + im = Image.fromarray(a) + + :param obj: Object with array interface + :param mode: Mode to use (will be determined from type if None) + See: :ref:`concept-modes`. + :returns: An image object. + + .. versionadded:: 1.1.6 + """ + arr = obj.__array_interface__ + shape = arr['shape'] + ndim = len(shape) + strides = arr.get('strides', 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") + else: + rawmode = mode + if mode in ["1", "L", "I", "P", "F"]: + ndmax = 2 + elif mode == "RGB": + ndmax = 3 + else: + ndmax = 4 + if ndim > ndmax: + raise ValueError("Too many dimensions: %d > %d." % (ndim, ndmax)) + + size = shape[1], shape[0] + if strides is not None: + if hasattr(obj, 'tobytes'): + obj = obj.tobytes() + else: + obj = obj.tostring() + + return frombuffer(mode, size, obj, "raw", rawmode, 0, 1) + + +def fromqimage(im): + """Creates an image instance from a QImage image""" + from . import ImageQt + if not ImageQt.qt_is_installed: + raise ImportError("Qt bindings are not installed") + return ImageQt.fromqimage(im) + + +def fromqpixmap(im): + """Creates an image instance from a QPixmap image""" + from . import ImageQt + if not ImageQt.qt_is_installed: + raise ImportError("Qt bindings are not installed") + return ImageQt.fromqpixmap(im) + + +_fromarray_typemap = { + # (shape, typestr) => mode, rawmode + # first two members of shape are set to one + ((1, 1), "|b1"): ("1", "1;8"), + ((1, 1), "|u1"): ("L", "L"), + ((1, 1), "|i1"): ("I", "I;8"), + ((1, 1), "u2"): ("I", "I;16B"), + ((1, 1), "i2"): ("I", "I;16BS"), + ((1, 1), "u4"): ("I", "I;32B"), + ((1, 1), "i4"): ("I", "I;32BS"), + ((1, 1), "f4"): ("F", "F;32BF"), + ((1, 1), "f8"): ("F", "F;64BF"), + ((1, 1, 2), "|u1"): ("LA", "LA"), + ((1, 1, 3), "|u1"): ("RGB", "RGB"), + ((1, 1, 4), "|u1"): ("RGBA", "RGBA"), + } + +# shortcuts +_fromarray_typemap[((1, 1), _ENDIAN + "i4")] = ("I", "I") +_fromarray_typemap[((1, 1), _ENDIAN + "f4")] = ("F", "F") + + +def _decompression_bomb_check(size): + if MAX_IMAGE_PIXELS is None: + return + + pixels = size[0] * size[1] + + if pixels > 2 * MAX_IMAGE_PIXELS: + raise DecompressionBombError( + "Image size (%d pixels) exceeds limit of %d pixels, " + "could be decompression bomb DOS attack." % + (pixels, 2 * MAX_IMAGE_PIXELS)) + + if pixels > MAX_IMAGE_PIXELS: + warnings.warn( + "Image size (%d pixels) exceeds limit of %d pixels, " + "could be decompression bomb DOS attack." % + (pixels, MAX_IMAGE_PIXELS), + DecompressionBombWarning) + + +def open(fp, mode="r"): + """ + Opens and identifies the given image file. + + This is a lazy operation; this function identifies the file, but + the file remains open and the actual image data is not read from + the file until you try to process the data (or call the + :py:meth:`~PIL.Image.Image.load` method). See + :py:func:`~PIL.Image.new`. See :ref:`file-handling`. + + :param fp: A filename (string), pathlib.Path object or a file object. + The file object must implement :py:meth:`~file.read`, + :py:meth:`~file.seek`, and :py:meth:`~file.tell` methods, + 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. + """ + + if mode != "r": + raise ValueError("bad mode %r" % mode) + + exclusive_fp = False + filename = "" + if isPath(fp): + filename = fp + elif HAS_PATHLIB and isinstance(fp, Path): + filename = str(fp.resolve()) + + if filename: + fp = builtins.open(filename, "rb") + exclusive_fp = True + + try: + fp.seek(0) + except (AttributeError, io.UnsupportedOperation): + fp = io.BytesIO(fp.read()) + exclusive_fp = True + + prefix = fp.read(16) + + preinit() + + accept_warnings = [] + + def _open_core(fp, filename, prefix): + for i in ID: + try: + factory, accept = OPEN[i] + result = not accept or accept(prefix) + if type(result) in [str, bytes]: + accept_warnings.append(result) + elif result: + fp.seek(0) + im = factory(fp, filename) + _decompression_bomb_check(im.size) + return im + except (SyntaxError, IndexError, TypeError, struct.error): + # Leave disabled by default, spams the logs with image + # opening failures that are entirely expected. + # logger.debug("", exc_info=True) + continue + except BaseException: + if exclusive_fp: + fp.close() + raise + return None + + im = _open_core(fp, filename, prefix) + + if im is None: + if init(): + im = _open_core(fp, filename, prefix) + + if im: + im._exclusive_fp = exclusive_fp + return im + + if exclusive_fp: + fp.close() + for message in accept_warnings: + warnings.warn(message) + raise IOError("cannot identify image file %r" + % (filename if filename else fp)) + +# +# Image processing. + + +def alpha_composite(im1, im2): + """ + Alpha composite im2 over im1. + + :param im1: The first image. Must have mode RGBA. + :param im2: The second image. Must have mode RGBA, and the same size as + the first image. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + im1.load() + im2.load() + return im1._new(core.alpha_composite(im1.im, im2.im)) + + +def blend(im1, im2, alpha): + """ + Creates a new image by interpolating between two input images, using + a constant alpha.:: + + out = image1 * (1.0 - alpha) + image2 * alpha + + :param im1: The first image. + :param im2: The second image. Must have the same mode and size as + the first image. + :param alpha: The interpolation alpha factor. If alpha is 0.0, a + copy of the first image is returned. If alpha is 1.0, a copy of + the second image is returned. There are no restrictions on the + alpha value. If necessary, the result is clipped to fit into + the allowed output range. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + im1.load() + im2.load() + return im1._new(core.blend(im1.im, im2.im, alpha)) + + +def composite(image1, image2, mask): + """ + Create composite image by blending images using a transparency mask. + + :param image1: The first image. + :param image2: The second image. Must have the same mode and + size as the first image. + :param mask: A mask image. This image can have mode + "1", "L", or "RGBA", and must have the same size as the + other two images. + """ + + image = image2.copy() + image.paste(image1, None, mask) + return image + + +def eval(image, *args): + """ + Applies the function (which should take one argument) to each pixel + in the given image. If the image has more than one band, the same + function is applied to each band. Note that the function is + evaluated once for each possible pixel value, so you cannot use + random components or other generators. + + :param image: The input image. + :param function: A function object, taking one integer argument. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + return image.point(args[0]) + + +def merge(mode, bands): + """ + Merge a set of single band images into a new multiband image. + + :param mode: The mode to use for the output image. See: + :ref:`concept-modes`. + :param bands: A sequence containing one single-band image for + each band in the output image. All bands must have the + same size. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + + if getmodebands(mode) != len(bands) or "*" in mode: + raise ValueError("wrong number of bands") + for band in bands[1:]: + if band.mode != getmodetype(mode): + raise ValueError("mode mismatch") + if band.size != bands[0].size: + raise ValueError("size mismatch") + for band in bands: + band.load() + return bands[0]._new(core.merge(mode, *[b.im for b in bands])) + + +# -------------------------------------------------------------------- +# Plugin registry + +def register_open(id, factory, accept=None): + """ + Register an image file plugin. This function should not be used + in application code. + + :param id: An image format identifier. + :param factory: An image file factory method. + :param accept: An optional function that can be used to quickly + reject images having another format. + """ + id = id.upper() + ID.append(id) + OPEN[id] = factory, accept + + +def register_mime(id, mimetype): + """ + Registers an image MIME type. This function should not be used + in application code. + + :param id: An image format identifier. + :param mimetype: The image MIME type for this format. + """ + MIME[id.upper()] = mimetype + + +def register_save(id, driver): + """ + Registers an image save function. This function should not be + used in application code. + + :param id: An image format identifier. + :param driver: A function to save images in this format. + """ + SAVE[id.upper()] = driver + + +def register_save_all(id, driver): + """ + Registers an image function to save all the frames + of a multiframe format. This function should not be + used in application code. + + :param id: An image format identifier. + :param driver: A function to save images in this format. + """ + SAVE_ALL[id.upper()] = driver + + +def register_extension(id, extension): + """ + Registers an image extension. This function should not be + used in application code. + + :param id: An image format identifier. + :param extension: An extension used for this format. + """ + EXTENSION[extension.lower()] = id.upper() + + +def register_extensions(id, extensions): + """ + Registers image extensions. This function should not be + used in application code. + + :param id: An image format identifier. + :param extensions: A list of extensions used for this format. + """ + for extension in extensions: + register_extension(id, extension) + + +def registered_extensions(): + """ + Returns a dictionary containing all file extensions belonging + to registered plugins + """ + if not EXTENSION: + init() + return EXTENSION + + +def register_decoder(name, decoder): + """ + Registers an image decoder. This function should not be + used in application code. + + :param name: The name of the decoder + :param decoder: A callable(mode, args) that returns an + ImageFile.PyDecoder object + + .. versionadded:: 4.1.0 + """ + DECODERS[name] = decoder + + +def register_encoder(name, encoder): + """ + Registers an image encoder. This function should not be + used in application code. + + :param name: The name of the encoder + :param encoder: A callable(mode, args) that returns an + ImageFile.PyEncoder object + + .. versionadded:: 4.1.0 + """ + ENCODERS[name] = encoder + + +# -------------------------------------------------------------------- +# Simple display support. User code may override this. + +def _show(image, **options): + # override me, as necessary + _showxv(image, **options) + + +def _showxv(image, title=None, **options): + from . import ImageShow + ImageShow.show(image, title, **options) + + +# -------------------------------------------------------------------- +# Effects + +def effect_mandelbrot(size, extent, quality): + """ + Generate a Mandelbrot set covering the given extent. + + :param size: The requested size in pixels, as a 2-tuple: + (width, height). + :param extent: The extent to cover, as a 4-tuple: + (x0, y0, x1, y2). + :param quality: Quality. + """ + return Image()._new(core.effect_mandelbrot(size, extent, quality)) + + +def effect_noise(size, sigma): + """ + Generate Gaussian noise centered around 128. + + :param size: The requested size in pixels, as a 2-tuple: + (width, height). + :param sigma: Standard deviation of noise. + """ + return Image()._new(core.effect_noise(size, sigma)) + + +def linear_gradient(mode): + """ + Generate 256x256 linear gradient from black to white, top to bottom. + + :param mode: Input mode. + """ + return Image()._new(core.linear_gradient(mode)) + + +def radial_gradient(mode): + """ + Generate 256x256 radial gradient from black to white, centre to edge. + + :param mode: Input mode. + """ + return Image()._new(core.radial_gradient(mode)) + + +# -------------------------------------------------------------------- +# Resources + +def _apply_env_variables(env=None): + if env is None: + env = os.environ + + for var_name, setter in [ + ('PILLOW_ALIGNMENT', core.set_alignment), + ('PILLOW_BLOCK_SIZE', core.set_block_size), + ('PILLOW_BLOCKS_MAX', core.set_blocks_max), + ]: + if var_name not in env: + continue + + var = env[var_name].lower() + + units = 1 + for postfix, mul in [('k', 1024), ('m', 1024*1024)]: + if var.endswith(postfix): + units = mul + var = var[:-len(postfix)] + + try: + var = int(var) * units + except ValueError: + warnings.warn("{0} is not int".format(var_name)) + continue + + try: + setter(var) + except ValueError as e: + warnings.warn("{0}: {1}".format(var_name, e)) + + +_apply_env_variables() +atexit.register(core.clear_cache) + + +class Exif(MutableMapping): + endian = "<" + + def __init__(self): + self._data = {} + self._ifds = {} + + def _fixup_dict(self, src_dict): + # Helper function for _getexif() + # returns a dict with any single item tuples/lists as individual values + def _fixup(value): + try: + if len(value) == 1 and not isinstance(value, dict): + return value[0] + except Exception: + pass + return value + + return {k: _fixup(v) for k, v in src_dict.items()} + + def _get_ifd_dict(self, tag): + try: + # an offset pointer to the location of the nested embedded IFD. + # It should be a long, but may be corrupted. + self.fp.seek(self._data[tag]) + except (KeyError, TypeError): + pass + else: + from . import TiffImagePlugin + info = TiffImagePlugin.ImageFileDirectory_v1(self.head) + info.load(self.fp) + return self._fixup_dict(info) + + def load(self, data): + # Extract EXIF information. This is highly experimental, + # and is likely to be replaced with something better in a future + # version. + + # The EXIF record consists of a TIFF file embedded in a JPEG + # application marker (!). + self.fp = io.BytesIO(data[6:]) + self.head = self.fp.read(8) + # process dictionary + from . import TiffImagePlugin + info = TiffImagePlugin.ImageFileDirectory_v1(self.head) + self.endian = info._endian + self.fp.seek(info.next) + info.load(self.fp) + self._data = dict(self._fixup_dict(info)) + + # get EXIF extension + ifd = self._get_ifd_dict(0x8769) + if ifd: + self._data.update(ifd) + self._ifds[0x8769] = ifd + + # get gpsinfo extension + ifd = self._get_ifd_dict(0x8825) + if ifd: + self._data[0x8825] = ifd + self._ifds[0x8825] = ifd + + def tobytes(self, offset=0): + from . import TiffImagePlugin + if self.endian == "<": + head = b"II\x2A\x00\x08\x00\x00\x00" + else: + head = b"MM\x00\x2A\x00\x00\x00\x08" + ifd = TiffImagePlugin.ImageFileDirectory_v2(ifh=head) + for tag, value in self._data.items(): + ifd[tag] = value + return b"Exif\x00\x00"+head+ifd.tobytes(offset) + + def get_ifd(self, tag): + if tag not in self._ifds and tag in self._data: + if tag == 0xa005: # interop + self._ifds[tag] = self._get_ifd_dict(tag) + elif tag == 0x927c: # makernote + from . import TiffImagePlugin + if self._data[0x927c][:8] == b"FUJIFILM": + exif_data = self._data[0x927c] + ifd_offset = i32le(exif_data[8:12]) + ifd_data = exif_data[ifd_offset:] + + makernote = {} + for i in range(0, struct.unpack(" 4: + offset, = struct.unpack("H", ifd_data[:2])[0]): + ifd_tag, typ, count, data = struct.unpack( + ">HHL4s", ifd_data[i*12 + 2:(i+1)*12 + 2]) + if ifd_tag == 0x1101: + # CameraInfo + offset, = struct.unpack(">L", data) + self.fp.seek(offset) + + camerainfo = {'ModelID': self.fp.read(4)} + + self.fp.read(4) + # Seconds since 2000 + camerainfo['TimeStamp'] = i32le(self.fp.read(12)) + + self.fp.read(4) + camerainfo['InternalSerialNumber'] = self.fp.read(4) + + self.fp.read(12) + parallax = self.fp.read(4) + handler =\ + TiffImagePlugin.ImageFileDirectory_v2._load_dispatch[ + TiffTags.FLOAT + ][1] + camerainfo['Parallax'] = handler( + TiffImagePlugin.ImageFileDirectory_v2(), + parallax, False) + + self.fp.read(4) + camerainfo['Category'] = self.fp.read(2) + + makernote = {0x1101: dict(self._fixup_dict(camerainfo))} + self._ifds[0x927c] = makernote + return self._ifds.get(tag, {}) + + def __str__(self): + return str(self._data) + + def __len__(self): + return len(self._data) + + def __getitem__(self, tag): + return self._data[tag] + + def __contains__(self, tag): + return tag in self._data + + if not py3: + def has_key(self, tag): + return tag in self + + def __setitem__(self, tag, value): + self._data[tag] = value + + def __delitem__(self, tag): + del self._data[tag] + + def __iter__(self): + return iter(set(self._data)) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageChops.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageChops.py new file mode 100644 index 00000000..b1f71b5e --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageChops.py @@ -0,0 +1,292 @@ +# +# The Python Imaging Library. +# $Id$ +# +# standard channel operations +# +# History: +# 1996-03-24 fl Created +# 1996-08-13 fl Added logical operations (for "1" images) +# 2000-10-12 fl Added offset method (from Image.py) +# +# Copyright (c) 1997-2000 by Secret Labs AB +# Copyright (c) 1996-2000 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image + + +def constant(image, value): + """Fill a channel with a given grey level. + + :rtype: :py:class:`~PIL.Image.Image` + """ + + return Image.new("L", image.size, value) + + +def duplicate(image): + """Copy a channel. Alias for :py:meth:`PIL.Image.Image.copy`. + + :rtype: :py:class:`~PIL.Image.Image` + """ + + return image.copy() + + +def invert(image): + """ + Invert an image (channel). + + .. code-block:: python + + out = MAX - image + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image.load() + return image._new(image.im.chop_invert()) + + +def lighter(image1, image2): + """ + Compares the two images, pixel by pixel, and returns a new image containing + the lighter values. At least one of the images must have mode "1". + + .. code-block:: python + + out = max(image1, image2) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_lighter(image2.im)) + + +def darker(image1, image2): + """ + Compares the two images, pixel by pixel, and returns a new image containing + the darker values. At least one of the images must have mode "1". + + .. code-block:: python + + out = min(image1, image2) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_darker(image2.im)) + + +def difference(image1, image2): + """ + Returns the absolute value of the pixel-by-pixel difference between the two + images. At least one of the images must have mode "1". + + .. code-block:: python + + out = abs(image1 - image2) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_difference(image2.im)) + + +def multiply(image1, image2): + """ + Superimposes two images on top of each other. + + If you multiply an image with a solid black image, the result is black. If + you multiply with a solid white image, the image is unaffected. At least + one of the images must have mode "1". + + .. code-block:: python + + out = image1 * image2 / MAX + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_multiply(image2.im)) + + +def screen(image1, image2): + """ + Superimposes two inverted images on top of each other. At least one of the + images must have mode "1". + + .. code-block:: python + + out = MAX - ((MAX - image1) * (MAX - image2) / MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_screen(image2.im)) + + +def add(image1, image2, scale=1.0, offset=0): + """ + Adds two images, dividing the result by scale and adding the + offset. If omitted, scale defaults to 1.0, and offset to 0.0. + At least one of the images must have mode "1". + + .. code-block:: python + + out = ((image1 + image2) / scale + offset) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_add(image2.im, scale, offset)) + + +def subtract(image1, image2, scale=1.0, offset=0): + """ + Subtracts two images, dividing the result by scale and adding the offset. + If omitted, scale defaults to 1.0, and offset to 0.0. At least one of the + images must have mode "1". + + .. code-block:: python + + out = ((image1 - image2) / scale + offset) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_subtract(image2.im, scale, offset)) + + +def add_modulo(image1, image2): + """Add two images, without clipping the result. At least one of the images + must have mode "1". + + .. code-block:: python + + out = ((image1 + image2) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_add_modulo(image2.im)) + + +def subtract_modulo(image1, image2): + """Subtract two images, without clipping the result. At least one of the + images must have mode "1". + + .. code-block:: python + + out = ((image1 - image2) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_subtract_modulo(image2.im)) + + +def logical_and(image1, image2): + """Logical AND between two images. At least one of the images must have + mode "1". + + .. code-block:: python + + out = ((image1 and image2) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_and(image2.im)) + + +def logical_or(image1, image2): + """Logical OR between two images. At least one of the images must have + mode "1". + + .. code-block:: python + + out = ((image1 or image2) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_or(image2.im)) + + +def logical_xor(image1, image2): + """Logical XOR between two images. At least one of the images must have + mode "1". + + .. code-block:: python + + out = ((bool(image1) != bool(image2)) % MAX) + + :rtype: :py:class:`~PIL.Image.Image` + """ + + image1.load() + image2.load() + return image1._new(image1.im.chop_xor(image2.im)) + + +def blend(image1, image2, alpha): + """Blend images using constant transparency weight. Alias for + :py:meth:`PIL.Image.Image.blend`. + + :rtype: :py:class:`~PIL.Image.Image` + """ + + return Image.blend(image1, image2, alpha) + + +def composite(image1, image2, mask): + """Create composite using transparency mask. Alias for + :py:meth:`PIL.Image.Image.composite`. + + :rtype: :py:class:`~PIL.Image.Image` + """ + + return Image.composite(image1, image2, mask) + + +def offset(image, xoffset, yoffset=None): + """Returns a copy of the image where data has been offset by the given + distances. Data wraps around the edges. If **yoffset** is omitted, it + is assumed to be equal to **xoffset**. + + :param xoffset: The horizontal distance. + :param yoffset: The vertical distance. If omitted, both + distances are set to the same value. + :rtype: :py:class:`~PIL.Image.Image` + """ + + if yoffset is None: + yoffset = xoffset + image.load() + return image._new(image.im.offset(xoffset, yoffset)) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageCms.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageCms.py new file mode 100644 index 00000000..c75ad6a6 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageCms.py @@ -0,0 +1,954 @@ +# The Python Imaging Library. +# $Id$ + +# Optional color management support, based on Kevin Cazabon's PyCMS +# library. + +# History: + +# 2009-03-08 fl Added to PIL. + +# Copyright (C) 2002-2003 Kevin Cazabon +# Copyright (c) 2009 by Fredrik Lundh +# Copyright (c) 2013 by Eric Soroos + +# 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 +try: + from PIL import _imagingcms +except ImportError as ex: + # Allow error import for doc purposes, but error out when accessing + # anything in core. + from _util import deferred_error + _imagingcms = deferred_error(ex) +from PIL._util import isStringType + +DESCRIPTION = """ +pyCMS + + a Python / PIL interface to the littleCMS ICC Color Management System + Copyright (C) 2002-2003 Kevin Cazabon + kevin@cazabon.com + http://www.cazabon.com + + pyCMS home page: http://www.cazabon.com/pyCMS + littleCMS home page: http://www.littlecms.com + (littleCMS is Copyright (C) 1998-2001 Marti Maria) + + Originally released under LGPL. Graciously donated to PIL in + March 2009, for distribution under the standard PIL license + + The pyCMS.py module provides a "clean" interface between Python/PIL and + pyCMSdll, taking care of some of the more complex handling of the direct + pyCMSdll functions, as well as error-checking and making sure that all + relevant data is kept together. + + While it is possible to call pyCMSdll functions directly, it's not highly + recommended. + + Version History: + + 1.0.0 pil Oct 2013 Port to LCMS 2. + + 0.1.0 pil mod March 10, 2009 + + Renamed display profile to proof profile. The proof + profile is the profile of the device that is being + simulated, not the profile of the device which is + actually used to display/print the final simulation + (that'd be the output profile) - also see LCMSAPI.txt + input colorspace -> using 'renderingIntent' -> proof + colorspace -> using 'proofRenderingIntent' -> output + colorspace + + Added LCMS FLAGS support. + Added FLAGS["SOFTPROOFING"] as default flag for + buildProofTransform (otherwise the proof profile/intent + would be ignored). + + 0.1.0 pil March 2009 - added to PIL, as PIL.ImageCms + + 0.0.2 alpha Jan 6, 2002 + + Added try/except statements around type() checks of + potential CObjects... Python won't let you use type() + on them, and raises a TypeError (stupid, if you ask + me!) + + Added buildProofTransformFromOpenProfiles() function. + Additional fixes in DLL, see DLL code for details. + + 0.0.1 alpha first public release, Dec. 26, 2002 + + Known to-do list with current version (of Python interface, not pyCMSdll): + + none + +""" + +VERSION = "1.0.0 pil" + +# --------------------------------------------------------------------. + +core = _imagingcms + +# +# intent/direction values + +INTENT_PERCEPTUAL = 0 +INTENT_RELATIVE_COLORIMETRIC = 1 +INTENT_SATURATION = 2 +INTENT_ABSOLUTE_COLORIMETRIC = 3 + +DIRECTION_INPUT = 0 +DIRECTION_OUTPUT = 1 +DIRECTION_PROOF = 2 + +# +# flags + +FLAGS = { + "MATRIXINPUT": 1, + "MATRIXOUTPUT": 2, + "MATRIXONLY": (1 | 2), + "NOWHITEONWHITEFIXUP": 4, # Don't hot fix scum dot + # Don't create prelinearization tables on precalculated transforms + # (internal use): + "NOPRELINEARIZATION": 16, + "GUESSDEVICECLASS": 32, # Guess device class (for transform2devicelink) + "NOTCACHE": 64, # Inhibit 1-pixel cache + "NOTPRECALC": 256, + "NULLTRANSFORM": 512, # Don't transform anyway + "HIGHRESPRECALC": 1024, # Use more memory to give better accuracy + "LOWRESPRECALC": 2048, # Use less memory to minimize resources + "WHITEBLACKCOMPENSATION": 8192, + "BLACKPOINTCOMPENSATION": 8192, + "GAMUTCHECK": 4096, # Out of Gamut alarm + "SOFTPROOFING": 16384, # Do softproofing + "PRESERVEBLACK": 32768, # Black preservation + "NODEFAULTRESOURCEDEF": 16777216, # CRD special + "GRIDPOINTS": lambda n: ((n) & 0xFF) << 16 # Gridpoints +} + +_MAX_FLAG = 0 +for flag in FLAGS.values(): + if isinstance(flag, int): + _MAX_FLAG = _MAX_FLAG | flag + + +# --------------------------------------------------------------------. +# Experimental PIL-level API +# --------------------------------------------------------------------. + +## +# Profile. + +class ImageCmsProfile(object): + + def __init__(self, profile): + """ + :param profile: Either a string representing a filename, + a file like object containing a profile or a + low-level profile object + + """ + + if isStringType(profile): + self._set(core.profile_open(profile), profile) + elif hasattr(profile, "read"): + self._set(core.profile_frombytes(profile.read())) + elif isinstance(profile, _imagingcms.CmsProfile): + self._set(profile) + else: + raise TypeError("Invalid type for Profile") + + def _set(self, profile, filename=None): + self.profile = profile + self.filename = filename + if profile: + self.product_name = None # profile.product_name + self.product_info = None # profile.product_info + else: + self.product_name = None + self.product_info = None + + def tobytes(self): + """ + Returns the profile in a format suitable for embedding in + saved images. + + :returns: a bytes object containing the ICC profile. + """ + + return core.profile_tobytes(self.profile) + + +class ImageCmsTransform(Image.ImagePointHandler): + + """ + Transform. This can be used with the procedural API, or with the standard + Image.point() method. + + Will return the output profile in the output.info['icc_profile']. + """ + + def __init__(self, input, output, input_mode, output_mode, + intent=INTENT_PERCEPTUAL, proof=None, + proof_intent=INTENT_ABSOLUTE_COLORIMETRIC, flags=0): + if proof is None: + self.transform = core.buildTransform( + input.profile, output.profile, + input_mode, output_mode, + intent, + flags + ) + else: + self.transform = core.buildProofTransform( + input.profile, output.profile, proof.profile, + input_mode, output_mode, + intent, proof_intent, + flags + ) + # Note: inputMode and outputMode are for pyCMS compatibility only + self.input_mode = self.inputMode = input_mode + self.output_mode = self.outputMode = output_mode + + self.output_profile = output + + def point(self, im): + return self.apply(im) + + def apply(self, im, imOut=None): + im.load() + if imOut is None: + imOut = Image.new(self.output_mode, im.size, None) + self.transform.apply(im.im.id, imOut.im.id) + imOut.info['icc_profile'] = self.output_profile.tobytes() + return imOut + + def apply_in_place(self, im): + im.load() + if im.mode != self.output_mode: + raise ValueError("mode mismatch") # wrong output mode + self.transform.apply(im.im.id, im.im.id) + im.info['icc_profile'] = self.output_profile.tobytes() + return im + + +def get_display_profile(handle=None): + """ (experimental) Fetches the profile for the current display device. + :returns: None if the profile is not known. + """ + + if sys.platform == "win32": + from PIL import ImageWin + if isinstance(handle, ImageWin.HDC): + profile = core.get_display_profile_win32(handle, 1) + else: + profile = core.get_display_profile_win32(handle or 0) + else: + try: + get = _imagingcms.get_display_profile + except AttributeError: + return None + else: + profile = get() + return ImageCmsProfile(profile) + + +# --------------------------------------------------------------------. +# pyCMS compatible layer +# --------------------------------------------------------------------. + +class PyCMSError(Exception): + + """ (pyCMS) Exception class. + This is used for all errors in the pyCMS API. """ + pass + + +def profileToProfile( + im, inputProfile, outputProfile, renderingIntent=INTENT_PERCEPTUAL, + outputMode=None, inPlace=False, flags=0): + """ + (pyCMS) Applies an ICC transformation to a given image, mapping from + inputProfile to outputProfile. + + If the input or output profiles specified are not valid filenames, a + PyCMSError will be raised. If inPlace is True and outputMode != im.mode, + a PyCMSError will be raised. If an error occurs during application of + the profiles, a PyCMSError will be raised. If outputMode is not a mode + supported by the outputProfile (or by pyCMS), a PyCMSError will be + raised. + + This function applies an ICC transformation to im from inputProfile's + color space to outputProfile's color space using the specified rendering + intent to decide how to handle out-of-gamut colors. + + OutputMode can be used to specify that a color mode conversion is to + be done using these profiles, but the specified profiles must be able + to handle that mode. I.e., if converting im from RGB to CMYK using + profiles, the input profile must handle RGB data, and the output + profile must handle CMYK data. + + :param im: An open PIL image object (i.e. Image.new(...) or + Image.open(...), etc.) + :param inputProfile: String, as a valid filename path to the ICC input + profile you wish to use for this image, or a profile object + :param outputProfile: String, as a valid filename path to the ICC output + profile you wish to use for this image, or a profile object + :param renderingIntent: Integer (0-3) specifying the rendering intent you + wish to use for the transform + + ImageCms.INTENT_PERCEPTUAL = 0 (DEFAULT) + ImageCms.INTENT_RELATIVE_COLORIMETRIC = 1 + ImageCms.INTENT_SATURATION = 2 + ImageCms.INTENT_ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param outputMode: A valid PIL mode for the output image (i.e. "RGB", + "CMYK", etc.). Note: if rendering the image "inPlace", outputMode + MUST be the same mode as the input, or omitted completely. If + omitted, the outputMode will be the same as the mode of the input + image (im.mode) + :param inPlace: Boolean. If True, the original image is modified in-place, + and None is returned. If False (default), a new Image object is + returned with the transform applied. + :param flags: Integer (0-...) specifying additional flags + :returns: Either None or a new PIL image object, depending on value of + inPlace + :exception PyCMSError: + """ + + if outputMode is None: + outputMode = im.mode + + if not isinstance(renderingIntent, int) or not (0 <= renderingIntent <= 3): + raise PyCMSError("renderingIntent must be an integer between 0 and 3") + + if not isinstance(flags, int) or not (0 <= flags <= _MAX_FLAG): + raise PyCMSError( + "flags must be an integer between 0 and %s" + _MAX_FLAG) + + try: + if not isinstance(inputProfile, ImageCmsProfile): + inputProfile = ImageCmsProfile(inputProfile) + if not isinstance(outputProfile, ImageCmsProfile): + outputProfile = ImageCmsProfile(outputProfile) + transform = ImageCmsTransform( + inputProfile, outputProfile, im.mode, outputMode, + renderingIntent, flags=flags + ) + if inPlace: + transform.apply_in_place(im) + imOut = None + else: + imOut = transform.apply(im) + except (IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + return imOut + + +def getOpenProfile(profileFilename): + """ + (pyCMS) Opens an ICC profile file. + + The PyCMSProfile object can be passed back into pyCMS for use in creating + transforms and such (as in ImageCms.buildTransformFromOpenProfiles()). + + If profileFilename is not a valid filename for an ICC profile, a PyCMSError + will be raised. + + :param profileFilename: String, as a valid filename path to the ICC profile + you wish to open, or a file-like object. + :returns: A CmsProfile class object. + :exception PyCMSError: + """ + + try: + return ImageCmsProfile(profileFilename) + except (IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def buildTransform( + inputProfile, outputProfile, inMode, outMode, + renderingIntent=INTENT_PERCEPTUAL, flags=0): + """ + (pyCMS) Builds an ICC transform mapping from the inputProfile to the + outputProfile. Use applyTransform to apply the transform to a given + image. + + If the input or output profiles specified are not valid filenames, a + PyCMSError will be raised. If an error occurs during creation of the + transform, a PyCMSError will be raised. + + If inMode or outMode are not a mode supported by the outputProfile (or + by pyCMS), a PyCMSError will be raised. + + This function builds and returns an ICC transform from the inputProfile + to the outputProfile using the renderingIntent to determine what to do + with out-of-gamut colors. It will ONLY work for converting images that + are in inMode to images that are in outMode color format (PIL mode, + i.e. "RGB", "RGBA", "CMYK", etc.). + + Building the transform is a fair part of the overhead in + ImageCms.profileToProfile(), so if you're planning on converting multiple + images using the same input/output settings, this can save you time. + Once you have a transform object, it can be used with + ImageCms.applyProfile() to convert images without the need to re-compute + the lookup table for the transform. + + The reason pyCMS returns a class object rather than a handle directly + to the transform is that it needs to keep track of the PIL input/output + modes that the transform is meant for. These attributes are stored in + the "inMode" and "outMode" attributes of the object (which can be + manually overridden if you really want to, but I don't know of any + time that would be of use, or would even work). + + :param inputProfile: String, as a valid filename path to the ICC input + profile you wish to use for this transform, or a profile object + :param outputProfile: String, as a valid filename path to the ICC output + profile you wish to use for this transform, or a profile object + :param inMode: String, as a valid PIL mode that the appropriate profile + also supports (i.e. "RGB", "RGBA", "CMYK", etc.) + :param outMode: String, as a valid PIL mode that the appropriate profile + also supports (i.e. "RGB", "RGBA", "CMYK", etc.) + :param renderingIntent: Integer (0-3) specifying the rendering intent you + wish to use for the transform + + ImageCms.INTENT_PERCEPTUAL = 0 (DEFAULT) + ImageCms.INTENT_RELATIVE_COLORIMETRIC = 1 + ImageCms.INTENT_SATURATION = 2 + ImageCms.INTENT_ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param flags: Integer (0-...) specifying additional flags + :returns: A CmsTransform class object. + :exception PyCMSError: + """ + + if not isinstance(renderingIntent, int) or not (0 <= renderingIntent <= 3): + raise PyCMSError("renderingIntent must be an integer between 0 and 3") + + if not isinstance(flags, int) or not (0 <= flags <= _MAX_FLAG): + raise PyCMSError( + "flags must be an integer between 0 and %s" + _MAX_FLAG) + + try: + if not isinstance(inputProfile, ImageCmsProfile): + inputProfile = ImageCmsProfile(inputProfile) + if not isinstance(outputProfile, ImageCmsProfile): + outputProfile = ImageCmsProfile(outputProfile) + return ImageCmsTransform( + inputProfile, outputProfile, inMode, outMode, + renderingIntent, flags=flags) + except (IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def buildProofTransform( + inputProfile, outputProfile, proofProfile, inMode, outMode, + renderingIntent=INTENT_PERCEPTUAL, + proofRenderingIntent=INTENT_ABSOLUTE_COLORIMETRIC, + flags=FLAGS["SOFTPROOFING"]): + """ + (pyCMS) Builds an ICC transform mapping from the inputProfile to the + outputProfile, but tries to simulate the result that would be + obtained on the proofProfile device. + + If the input, output, or proof profiles specified are not valid + filenames, a PyCMSError will be raised. + + If an error occurs during creation of the transform, a PyCMSError will + be raised. + + If inMode or outMode are not a mode supported by the outputProfile + (or by pyCMS), a PyCMSError will be raised. + + This function builds and returns an ICC transform from the inputProfile + to the outputProfile, but tries to simulate the result that would be + obtained on the proofProfile device using renderingIntent and + proofRenderingIntent to determine what to do with out-of-gamut + colors. This is known as "soft-proofing". It will ONLY work for + converting images that are in inMode to images that are in outMode + color format (PIL mode, i.e. "RGB", "RGBA", "CMYK", etc.). + + Usage of the resulting transform object is exactly the same as with + ImageCms.buildTransform(). + + Proof profiling is generally used when using an output device to get a + good idea of what the final printed/displayed image would look like on + the proofProfile device when it's quicker and easier to use the + output device for judging color. Generally, this means that the + output device is a monitor, or a dye-sub printer (etc.), and the simulated + device is something more expensive, complicated, or time consuming + (making it difficult to make a real print for color judgement purposes). + + Soft-proofing basically functions by adjusting the colors on the + output device to match the colors of the device being simulated. However, + when the simulated device has a much wider gamut than the output + device, you may obtain marginal results. + + :param inputProfile: String, as a valid filename path to the ICC input + profile you wish to use for this transform, or a profile object + :param outputProfile: String, as a valid filename path to the ICC output + (monitor, usually) profile you wish to use for this transform, or a + profile object + :param proofProfile: String, as a valid filename path to the ICC proof + profile you wish to use for this transform, or a profile object + :param inMode: String, as a valid PIL mode that the appropriate profile + also supports (i.e. "RGB", "RGBA", "CMYK", etc.) + :param outMode: String, as a valid PIL mode that the appropriate profile + also supports (i.e. "RGB", "RGBA", "CMYK", etc.) + :param renderingIntent: Integer (0-3) specifying the rendering intent you + wish to use for the input->proof (simulated) transform + + ImageCms.INTENT_PERCEPTUAL = 0 (DEFAULT) + ImageCms.INTENT_RELATIVE_COLORIMETRIC = 1 + ImageCms.INTENT_SATURATION = 2 + ImageCms.INTENT_ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param proofRenderingIntent: Integer (0-3) specifying the rendering intent + you wish to use for proof->output transform + + ImageCms.INTENT_PERCEPTUAL = 0 (DEFAULT) + ImageCms.INTENT_RELATIVE_COLORIMETRIC = 1 + ImageCms.INTENT_SATURATION = 2 + ImageCms.INTENT_ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param flags: Integer (0-...) specifying additional flags + :returns: A CmsTransform class object. + :exception PyCMSError: + """ + + if not isinstance(renderingIntent, int) or not (0 <= renderingIntent <= 3): + raise PyCMSError("renderingIntent must be an integer between 0 and 3") + + if not isinstance(flags, int) or not (0 <= flags <= _MAX_FLAG): + raise PyCMSError( + "flags must be an integer between 0 and %s" + _MAX_FLAG) + + try: + if not isinstance(inputProfile, ImageCmsProfile): + inputProfile = ImageCmsProfile(inputProfile) + if not isinstance(outputProfile, ImageCmsProfile): + outputProfile = ImageCmsProfile(outputProfile) + if not isinstance(proofProfile, ImageCmsProfile): + proofProfile = ImageCmsProfile(proofProfile) + return ImageCmsTransform( + inputProfile, outputProfile, inMode, outMode, renderingIntent, + proofProfile, proofRenderingIntent, flags) + except (IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +buildTransformFromOpenProfiles = buildTransform +buildProofTransformFromOpenProfiles = buildProofTransform + + +def applyTransform(im, transform, inPlace=False): + """ + (pyCMS) Applies a transform to a given image. + + If im.mode != transform.inMode, a PyCMSError is raised. + + If inPlace is True and transform.inMode != transform.outMode, a + PyCMSError is raised. + + If im.mode, transfer.inMode, or transfer.outMode is not supported by + pyCMSdll or the profiles you used for the transform, a PyCMSError is + raised. + + If an error occurs while the transform is being applied, a PyCMSError + is raised. + + This function applies a pre-calculated transform (from + ImageCms.buildTransform() or ImageCms.buildTransformFromOpenProfiles()) + to an image. The transform can be used for multiple images, saving + considerable calculation time if doing the same conversion multiple times. + + If you want to modify im in-place instead of receiving a new image as + the return value, set inPlace to True. This can only be done if + transform.inMode and transform.outMode are the same, because we can't + change the mode in-place (the buffer sizes for some modes are + different). The default behavior is to return a new Image object of + the same dimensions in mode transform.outMode. + + :param im: A PIL Image object, and im.mode must be the same as the inMode + supported by the transform. + :param transform: A valid CmsTransform class object + :param inPlace: Bool. If True, im is modified in place and None is + returned, if False, a new Image object with the transform applied is + returned (and im is not changed). The default is False. + :returns: Either None, or a new PIL Image object, depending on the value of + inPlace. The profile will be returned in the image's + info['icc_profile']. + :exception PyCMSError: + """ + + try: + if inPlace: + transform.apply_in_place(im) + imOut = None + else: + imOut = transform.apply(im) + except (TypeError, ValueError) as v: + raise PyCMSError(v) + + return imOut + + +def createProfile(colorSpace, colorTemp=-1): + """ + (pyCMS) Creates a profile. + + If colorSpace not in ["LAB", "XYZ", "sRGB"], a PyCMSError is raised + + If using LAB and colorTemp != a positive integer, a PyCMSError is raised. + + If an error occurs while creating the profile, a PyCMSError is raised. + + Use this function to create common profiles on-the-fly instead of + having to supply a profile on disk and knowing the path to it. It + returns a normal CmsProfile object that can be passed to + ImageCms.buildTransformFromOpenProfiles() to create a transform to apply + to images. + + :param colorSpace: String, the color space of the profile you wish to + create. + Currently only "LAB", "XYZ", and "sRGB" are supported. + :param colorTemp: Positive integer for the white point for the profile, in + degrees Kelvin (i.e. 5000, 6500, 9600, etc.). The default is for D50 + illuminant if omitted (5000k). colorTemp is ONLY applied to LAB + profiles, and is ignored for XYZ and sRGB. + :returns: A CmsProfile class object + :exception PyCMSError: + """ + + if colorSpace not in ["LAB", "XYZ", "sRGB"]: + raise PyCMSError( + "Color space not supported for on-the-fly profile creation (%s)" + % colorSpace) + + if colorSpace == "LAB": + try: + colorTemp = float(colorTemp) + except (TypeError, ValueError): + raise PyCMSError( + "Color temperature must be numeric, \"%s\" not valid" + % colorTemp) + + try: + return core.createProfile(colorSpace, colorTemp) + except (TypeError, ValueError) as v: + raise PyCMSError(v) + + +def getProfileName(profile): + """ + + (pyCMS) Gets the internal product name for the given profile. + + If profile isn't a valid CmsProfile object or filename to a profile, + a PyCMSError is raised If an error occurs while trying to obtain the + name tag, a PyCMSError is raised. + + Use this function to obtain the INTERNAL name of the profile (stored + in an ICC tag in the profile itself), usually the one used when the + profile was originally created. Sometimes this tag also contains + additional information supplied by the creator. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal name of the profile as stored + in an ICC tag. + :exception PyCMSError: + """ + + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + # do it in python, not c. + # // name was "%s - %s" (model, manufacturer) || Description , + # // but if the Model and Manufacturer were the same or the model + # // was long, Just the model, in 1.x + model = profile.profile.model + manufacturer = profile.profile.manufacturer + + if not (model or manufacturer): + return (profile.profile.profile_description or "") + "\n" + if not manufacturer or len(model) > 30: + return model + "\n" + return "%s - %s\n" % (model, manufacturer) + + except (AttributeError, IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def getProfileInfo(profile): + """ + (pyCMS) Gets the internal product information for the given profile. + + If profile isn't a valid CmsProfile object or filename to a profile, + a PyCMSError is raised. + + If an error occurs while trying to obtain the info tag, a PyCMSError + is raised + + Use this function to obtain the information stored in the profile's + info tag. This often contains details about the profile, and how it + was created, as supplied by the creator. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in + an ICC tag. + :exception PyCMSError: + """ + + try: + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + # add an extra newline to preserve pyCMS compatibility + # Python, not C. the white point bits weren't working well, + # so skipping. + # info was description \r\n\r\n copyright \r\n\r\n K007 tag \r\n\r\n whitepoint + description = profile.profile.profile_description + cpright = profile.profile.copyright + arr = [] + for elt in (description, cpright): + if elt: + arr.append(elt) + return "\r\n\r\n".join(arr) + "\r\n\r\n" + + except (AttributeError, IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def getProfileCopyright(profile): + """ + (pyCMS) Gets the copyright for the given profile. + + If profile isn't a valid CmsProfile object or filename to a profile, + a PyCMSError is raised. + + If an error occurs while trying to obtain the copyright tag, a PyCMSError + is raised + + Use this function to obtain the information stored in the profile's + copyright tag. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in + an ICC tag. + :exception PyCMSError: + """ + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return (profile.profile.copyright or "") + "\n" + except (AttributeError, IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def getProfileManufacturer(profile): + """ + (pyCMS) Gets the manufacturer for the given profile. + + If profile isn't a valid CmsProfile object or filename to a profile, + a PyCMSError is raised. + + If an error occurs while trying to obtain the manufacturer tag, a + PyCMSError is raised + + Use this function to obtain the information stored in the profile's + manufacturer tag. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in + an ICC tag. + :exception PyCMSError: + """ + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return (profile.profile.manufacturer or "") + "\n" + except (AttributeError, IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def getProfileModel(profile): + """ + (pyCMS) Gets the model for the given profile. + + If profile isn't a valid CmsProfile object or filename to a profile, + a PyCMSError is raised. + + If an error occurs while trying to obtain the model tag, a PyCMSError + is raised + + Use this function to obtain the information stored in the profile's + model tag. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in + an ICC tag. + :exception PyCMSError: + """ + + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return (profile.profile.model or "") + "\n" + except (AttributeError, IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def getProfileDescription(profile): + """ + (pyCMS) Gets the description for the given profile. + + If profile isn't a valid CmsProfile object or filename to a profile, + a PyCMSError is raised. + + If an error occurs while trying to obtain the description tag, a PyCMSError + is raised + + Use this function to obtain the information stored in the profile's + description tag. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: A string containing the internal profile information stored in an + ICC tag. + :exception PyCMSError: + """ + + try: + # add an extra newline to preserve pyCMS compatibility + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return (profile.profile.profile_description or "") + "\n" + except (AttributeError, IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def getDefaultIntent(profile): + """ + (pyCMS) Gets the default intent name for the given profile. + + If profile isn't a valid CmsProfile object or filename to a profile, + a PyCMSError is raised. + + If an error occurs while trying to obtain the default intent, a + PyCMSError is raised. + + Use this function to determine the default (and usually best optimized) + rendering intent for this profile. Most profiles support multiple + rendering intents, but are intended mostly for one type of conversion. + If you wish to use a different intent than returned, use + ImageCms.isIntentSupported() to verify it will work first. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :returns: Integer 0-3 specifying the default rendering intent for this + profile. + + ImageCms.INTENT_PERCEPTUAL = 0 (DEFAULT) + ImageCms.INTENT_RELATIVE_COLORIMETRIC = 1 + ImageCms.INTENT_SATURATION = 2 + ImageCms.INTENT_ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :exception PyCMSError: + """ + + try: + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + return profile.profile.rendering_intent + except (AttributeError, IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def isIntentSupported(profile, intent, direction): + """ + (pyCMS) Checks if a given intent is supported. + + Use this function to verify that you can use your desired + renderingIntent with profile, and that profile can be used for the + input/output/proof profile as you desire. + + Some profiles are created specifically for one "direction", can cannot + be used for others. Some profiles can only be used for certain + rendering intents... so it's best to either verify this before trying + to create a transform with them (using this function), or catch the + potential PyCMSError that will occur if they don't support the modes + you select. + + :param profile: EITHER a valid CmsProfile object, OR a string of the + filename of an ICC profile. + :param intent: Integer (0-3) specifying the rendering intent you wish to + use with this profile + + ImageCms.INTENT_PERCEPTUAL = 0 (DEFAULT) + ImageCms.INTENT_RELATIVE_COLORIMETRIC = 1 + ImageCms.INTENT_SATURATION = 2 + ImageCms.INTENT_ABSOLUTE_COLORIMETRIC = 3 + + see the pyCMS documentation for details on rendering intents and what + they do. + :param direction: Integer specifying if the profile is to be used for + input, output, or proof + + INPUT = 0 (or use ImageCms.DIRECTION_INPUT) + OUTPUT = 1 (or use ImageCms.DIRECTION_OUTPUT) + PROOF = 2 (or use ImageCms.DIRECTION_PROOF) + + :returns: 1 if the intent/direction are supported, -1 if they are not. + :exception PyCMSError: + """ + + try: + if not isinstance(profile, ImageCmsProfile): + profile = ImageCmsProfile(profile) + # FIXME: I get different results for the same data w. different + # compilers. Bug in LittleCMS or in the binding? + if profile.profile.is_intent_supported(intent, direction): + return 1 + else: + return -1 + except (AttributeError, IOError, TypeError, ValueError) as v: + raise PyCMSError(v) + + +def versions(): + """ + (pyCMS) Fetches versions. + """ + + return ( + VERSION, core.littlecms_version, + sys.version.split()[0], Image.__version__ + ) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageColor.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageColor.py new file mode 100644 index 00000000..d3b3b00a --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageColor.py @@ -0,0 +1,315 @@ +# +# The Python Imaging Library +# $Id$ +# +# map CSS3-style colour description strings to RGB +# +# History: +# 2002-10-24 fl Added support for CSS-style color strings +# 2002-12-15 fl Added RGBA support +# 2004-03-27 fl Fixed remaining int() problems for Python 1.5.2 +# 2004-07-19 fl Fixed gray/grey spelling issues +# 2009-03-05 fl Fixed rounding error in grayscale calculation +# +# Copyright (c) 2002-2004 by Secret Labs AB +# Copyright (c) 2002-2004 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image +import re + + +def getrgb(color): + """ + Convert a color string to an RGB tuple. If the string cannot be parsed, + this function raises a :py:exc:`ValueError` exception. + + .. versionadded:: 1.1.4 + + :param color: A color string + :return: ``(red, green, blue[, alpha])`` + """ + color = color.lower() + + rgb = colormap.get(color, None) + if rgb: + if isinstance(rgb, tuple): + return rgb + colormap[color] = rgb = getrgb(rgb) + return rgb + + # check for known string formats + if re.match('#[a-f0-9]{3}$', color): + return ( + int(color[1]*2, 16), + int(color[2]*2, 16), + int(color[3]*2, 16), + ) + + if re.match('#[a-f0-9]{4}$', color): + return ( + int(color[1]*2, 16), + int(color[2]*2, 16), + int(color[3]*2, 16), + int(color[4]*2, 16), + ) + + if re.match('#[a-f0-9]{6}$', color): + return ( + int(color[1:3], 16), + int(color[3:5], 16), + int(color[5:7], 16), + ) + + if re.match('#[a-f0-9]{8}$', color): + return ( + int(color[1:3], 16), + int(color[3:5], 16), + int(color[5:7], 16), + int(color[7:9], 16), + ) + + m = re.match(r"rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$", color) + if m: + return ( + int(m.group(1)), + int(m.group(2)), + int(m.group(3)) + ) + + m = re.match(r"rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)$", color) + if m: + return ( + int((int(m.group(1)) * 255) / 100.0 + 0.5), + int((int(m.group(2)) * 255) / 100.0 + 0.5), + int((int(m.group(3)) * 255) / 100.0 + 0.5) + ) + + m = re.match( + r"hsl\(\s*(\d+\.?\d*)\s*,\s*(\d+\.?\d*)%\s*,\s*(\d+\.?\d*)%\s*\)$", + color, + ) + if m: + from colorsys import hls_to_rgb + rgb = hls_to_rgb( + float(m.group(1)) / 360.0, + float(m.group(3)) / 100.0, + float(m.group(2)) / 100.0, + ) + return ( + int(rgb[0] * 255 + 0.5), + int(rgb[1] * 255 + 0.5), + int(rgb[2] * 255 + 0.5) + ) + + m = re.match( + r"hs[bv]\(\s*(\d+\.?\d*)\s*,\s*(\d+\.?\d*)%\s*,\s*(\d+\.?\d*)%\s*\)$", + color, + ) + if m: + from colorsys import hsv_to_rgb + rgb = hsv_to_rgb( + float(m.group(1)) / 360.0, + float(m.group(2)) / 100.0, + float(m.group(3)) / 100.0, + ) + return ( + int(rgb[0] * 255 + 0.5), + int(rgb[1] * 255 + 0.5), + int(rgb[2] * 255 + 0.5) + ) + + m = re.match(r"rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$", + color) + if m: + return ( + int(m.group(1)), + int(m.group(2)), + int(m.group(3)), + int(m.group(4)) + ) + raise ValueError("unknown color specifier: %r" % color) + + +def getcolor(color, mode): + """ + Same as :py:func:`~PIL.ImageColor.getrgb`, but converts the RGB value to a + greyscale value if the mode is not color or a palette image. If the string + cannot be parsed, this function raises a :py:exc:`ValueError` exception. + + .. versionadded:: 1.1.4 + + :param color: A color string + :return: ``(graylevel [, alpha]) or (red, green, blue[, alpha])`` + """ + # same as getrgb, but converts the result to the given mode + color, alpha = getrgb(color), 255 + if len(color) == 4: + color, alpha = color[0:3], color[3] + + if Image.getmodebase(mode) == "L": + r, g, b = color + color = (r*299 + g*587 + b*114)//1000 + if mode[-1] == 'A': + return (color, alpha) + else: + if mode[-1] == 'A': + return color + (alpha,) + return color + + +colormap = { + # X11 colour table from https://drafts.csswg.org/css-color-4/, with + # gray/grey spelling issues fixed. This is a superset of HTML 4.0 + # colour names used in CSS 1. + "aliceblue": "#f0f8ff", + "antiquewhite": "#faebd7", + "aqua": "#00ffff", + "aquamarine": "#7fffd4", + "azure": "#f0ffff", + "beige": "#f5f5dc", + "bisque": "#ffe4c4", + "black": "#000000", + "blanchedalmond": "#ffebcd", + "blue": "#0000ff", + "blueviolet": "#8a2be2", + "brown": "#a52a2a", + "burlywood": "#deb887", + "cadetblue": "#5f9ea0", + "chartreuse": "#7fff00", + "chocolate": "#d2691e", + "coral": "#ff7f50", + "cornflowerblue": "#6495ed", + "cornsilk": "#fff8dc", + "crimson": "#dc143c", + "cyan": "#00ffff", + "darkblue": "#00008b", + "darkcyan": "#008b8b", + "darkgoldenrod": "#b8860b", + "darkgray": "#a9a9a9", + "darkgrey": "#a9a9a9", + "darkgreen": "#006400", + "darkkhaki": "#bdb76b", + "darkmagenta": "#8b008b", + "darkolivegreen": "#556b2f", + "darkorange": "#ff8c00", + "darkorchid": "#9932cc", + "darkred": "#8b0000", + "darksalmon": "#e9967a", + "darkseagreen": "#8fbc8f", + "darkslateblue": "#483d8b", + "darkslategray": "#2f4f4f", + "darkslategrey": "#2f4f4f", + "darkturquoise": "#00ced1", + "darkviolet": "#9400d3", + "deeppink": "#ff1493", + "deepskyblue": "#00bfff", + "dimgray": "#696969", + "dimgrey": "#696969", + "dodgerblue": "#1e90ff", + "firebrick": "#b22222", + "floralwhite": "#fffaf0", + "forestgreen": "#228b22", + "fuchsia": "#ff00ff", + "gainsboro": "#dcdcdc", + "ghostwhite": "#f8f8ff", + "gold": "#ffd700", + "goldenrod": "#daa520", + "gray": "#808080", + "grey": "#808080", + "green": "#008000", + "greenyellow": "#adff2f", + "honeydew": "#f0fff0", + "hotpink": "#ff69b4", + "indianred": "#cd5c5c", + "indigo": "#4b0082", + "ivory": "#fffff0", + "khaki": "#f0e68c", + "lavender": "#e6e6fa", + "lavenderblush": "#fff0f5", + "lawngreen": "#7cfc00", + "lemonchiffon": "#fffacd", + "lightblue": "#add8e6", + "lightcoral": "#f08080", + "lightcyan": "#e0ffff", + "lightgoldenrodyellow": "#fafad2", + "lightgreen": "#90ee90", + "lightgray": "#d3d3d3", + "lightgrey": "#d3d3d3", + "lightpink": "#ffb6c1", + "lightsalmon": "#ffa07a", + "lightseagreen": "#20b2aa", + "lightskyblue": "#87cefa", + "lightslategray": "#778899", + "lightslategrey": "#778899", + "lightsteelblue": "#b0c4de", + "lightyellow": "#ffffe0", + "lime": "#00ff00", + "limegreen": "#32cd32", + "linen": "#faf0e6", + "magenta": "#ff00ff", + "maroon": "#800000", + "mediumaquamarine": "#66cdaa", + "mediumblue": "#0000cd", + "mediumorchid": "#ba55d3", + "mediumpurple": "#9370db", + "mediumseagreen": "#3cb371", + "mediumslateblue": "#7b68ee", + "mediumspringgreen": "#00fa9a", + "mediumturquoise": "#48d1cc", + "mediumvioletred": "#c71585", + "midnightblue": "#191970", + "mintcream": "#f5fffa", + "mistyrose": "#ffe4e1", + "moccasin": "#ffe4b5", + "navajowhite": "#ffdead", + "navy": "#000080", + "oldlace": "#fdf5e6", + "olive": "#808000", + "olivedrab": "#6b8e23", + "orange": "#ffa500", + "orangered": "#ff4500", + "orchid": "#da70d6", + "palegoldenrod": "#eee8aa", + "palegreen": "#98fb98", + "paleturquoise": "#afeeee", + "palevioletred": "#db7093", + "papayawhip": "#ffefd5", + "peachpuff": "#ffdab9", + "peru": "#cd853f", + "pink": "#ffc0cb", + "plum": "#dda0dd", + "powderblue": "#b0e0e6", + "purple": "#800080", + "rebeccapurple": "#663399", + "red": "#ff0000", + "rosybrown": "#bc8f8f", + "royalblue": "#4169e1", + "saddlebrown": "#8b4513", + "salmon": "#fa8072", + "sandybrown": "#f4a460", + "seagreen": "#2e8b57", + "seashell": "#fff5ee", + "sienna": "#a0522d", + "silver": "#c0c0c0", + "skyblue": "#87ceeb", + "slateblue": "#6a5acd", + "slategray": "#708090", + "slategrey": "#708090", + "snow": "#fffafa", + "springgreen": "#00ff7f", + "steelblue": "#4682b4", + "tan": "#d2b48c", + "teal": "#008080", + "thistle": "#d8bfd8", + "tomato": "#ff6347", + "turquoise": "#40e0d0", + "violet": "#ee82ee", + "wheat": "#f5deb3", + "white": "#ffffff", + "whitesmoke": "#f5f5f5", + "yellow": "#ffff00", + "yellowgreen": "#9acd32", +} diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageDraw.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageDraw.py new file mode 100644 index 00000000..86512bb8 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageDraw.py @@ -0,0 +1,447 @@ +# +# The Python Imaging Library +# $Id$ +# +# drawing interface operations +# +# History: +# 1996-04-13 fl Created (experimental) +# 1996-08-07 fl Filled polygons, ellipses. +# 1996-08-13 fl Added text support +# 1998-06-28 fl Handle I and F images +# 1998-12-29 fl Added arc; use arc primitive to draw ellipses +# 1999-01-10 fl Added shape stuff (experimental) +# 1999-02-06 fl Added bitmap support +# 1999-02-11 fl Changed all primitives to take options +# 1999-02-20 fl Fixed backwards compatibility +# 2000-10-12 fl Copy on write, when necessary +# 2001-02-18 fl Use default ink for bitmap/text also in fill mode +# 2002-10-24 fl Added support for CSS-style color strings +# 2002-12-10 fl Added experimental support for RGBA-on-RGB drawing +# 2002-12-11 fl Refactored low-level drawing API (work in progress) +# 2004-08-26 fl Made Draw() a factory function, added getdraw() support +# 2004-09-04 fl Added width support to line primitive +# 2004-09-10 fl Added font mode handling +# 2006-06-19 fl Added font bearing support (getmask2) +# +# Copyright (c) 1997-2006 by Secret Labs AB +# Copyright (c) 1996-2006 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +import math +import numbers + +from . import Image, ImageColor +from ._util import isStringType + +""" +A simple 2D drawing interface for PIL images. +

+Application code should use the Draw factory, instead of +directly. +""" + + +class ImageDraw(object): + + def __init__(self, im, mode=None): + """ + Create a drawing instance. + + :param im: The image to draw in. + :param mode: Optional mode to use for color values. For RGB + images, this argument can be RGB or RGBA (to blend the + drawing into the image). For all other modes, this argument + must be the same as the image mode. If omitted, the mode + defaults to the mode of the image. + """ + im.load() + if im.readonly: + im._copy() # make it writeable + blend = 0 + if mode is None: + mode = im.mode + if mode != im.mode: + if mode == "RGBA" and im.mode == "RGB": + blend = 1 + else: + raise ValueError("mode mismatch") + if mode == "P": + self.palette = im.palette + else: + self.palette = None + self.im = im.im + self.draw = Image.core.draw(self.im, blend) + self.mode = mode + if mode in ("I", "F"): + self.ink = self.draw.draw_ink(1, mode) + else: + self.ink = self.draw.draw_ink(-1, mode) + if mode in ("1", "P", "I", "F"): + # FIXME: fix Fill2 to properly support matte for I+F images + self.fontmode = "1" + else: + self.fontmode = "L" # aliasing is okay for other modes + self.fill = 0 + self.font = None + + def getfont(self): + """ + Get the current default font. + + :returns: An image font.""" + if not self.font: + # FIXME: should add a font repository + from . import ImageFont + self.font = ImageFont.load_default() + return self.font + + def _getink(self, ink, fill=None): + if ink is None and fill is None: + if self.fill: + fill = self.ink + else: + ink = self.ink + else: + if ink is not None: + if isStringType(ink): + 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, self.mode) + if fill is not None: + if isStringType(fill): + fill = ImageColor.getcolor(fill, self.mode) + if self.palette and not isinstance(fill, numbers.Number): + fill = self.palette.getcolor(fill) + fill = self.draw.draw_ink(fill, self.mode) + return ink, fill + + def arc(self, xy, start, end, fill=None, width=0): + """Draw an arc.""" + ink, fill = self._getink(fill) + if ink is not None: + self.draw.draw_arc(xy, start, end, ink, width) + + def bitmap(self, xy, bitmap, fill=None): + """Draw a bitmap.""" + bitmap.load() + ink, fill = self._getink(fill) + if ink is None: + ink = fill + 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): + """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: + self.draw.draw_chord(xy, start, end, ink, 0, width) + + def ellipse(self, xy, fill=None, outline=None, width=0): + """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: + self.draw.draw_ellipse(xy, ink, 0, width) + + def line(self, xy, fill=None, width=0, joint=None): + """Draw a line, or a connected sequence of line segments.""" + ink = self._getink(fill)[0] + if ink is not None: + self.draw.draw_lines(xy, ink, width) + if joint == "curve" and width > 4: + for i in range(1, len(xy)-1): + point = xy[i] + angles = [ + math.degrees(math.atan2( + end[0] - start[0], start[1] - end[1] + )) % 360 + for start, end in ((xy[i-1], point), (point, xy[i+1])) + ] + if angles[0] == angles[1]: + # This is a straight line, so no joint is required + continue + + def coord_at_angle(coord, angle): + x, y = coord + angle -= 90 + distance = width/2 - 1 + return tuple([ + p + + (math.floor(p_d) if p_d > 0 else math.ceil(p_d)) + for p, p_d in + ((x, distance * math.cos(math.radians(angle))), + (y, distance * math.sin(math.radians(angle)))) + ]) + flipped = ((angles[1] > angles[0] and + angles[1] - 180 > angles[0]) or + (angles[1] < angles[0] and + angles[1] + 180 > angles[0])) + coords = [ + (point[0] - width/2 + 1, point[1] - width/2 + 1), + (point[0] + width/2 - 1, point[1] + width/2 - 1) + ] + if flipped: + start, end = (angles[1] + 90, angles[0] + 90) + else: + start, end = (angles[0] - 90, angles[1] - 90) + self.pieslice(coords, start - 90, end - 90, fill) + + if width > 8: + # Cover potential gaps between the line and the joint + if flipped: + gapCoords = [ + coord_at_angle(point, angles[0]+90), + point, + coord_at_angle(point, angles[1]+90) + ] + else: + gapCoords = [ + coord_at_angle(point, angles[0]-90), + point, + coord_at_angle(point, angles[1]-90) + ] + self.line(gapCoords, fill, width=3) + + def shape(self, shape, fill=None, outline=None): + """(Experimental) Draw a shape.""" + shape.close() + ink, fill = self._getink(outline, fill) + if fill is not None: + self.draw.draw_outline(shape, fill, 1) + 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): + """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: + self.draw.draw_pieslice(xy, start, end, ink, 0, width) + + def point(self, xy, fill=None): + """Draw one or more individual pixels.""" + ink, fill = self._getink(fill) + if ink is not None: + self.draw.draw_points(xy, ink) + + def polygon(self, xy, fill=None, outline=None): + """Draw a polygon.""" + ink, fill = self._getink(outline, fill) + if fill is not None: + self.draw.draw_polygon(xy, fill, 1) + 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): + """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: + self.draw.draw_rectangle(xy, ink, 0, width) + + def _multiline_check(self, text): + """Draw text.""" + split_character = "\n" if isinstance(text, str) else b"\n" + + return split_character in text + + def _multiline_split(self, text): + split_character = "\n" if isinstance(text, str) else b"\n" + + return text.split(split_character) + + def text(self, xy, text, fill=None, font=None, anchor=None, + *args, **kwargs): + if self._multiline_check(text): + return self.multiline_text(xy, text, fill, font, anchor, + *args, **kwargs) + ink, fill = self._getink(fill) + if font is None: + font = self.getfont() + if ink is None: + ink = fill + if ink is not None: + try: + mask, offset = font.getmask2(text, self.fontmode, + *args, **kwargs) + xy = xy[0] + offset[0], xy[1] + offset[1] + except AttributeError: + try: + mask = font.getmask(text, self.fontmode, *args, **kwargs) + except TypeError: + mask = font.getmask(text) + self.draw.draw_bitmap(xy, mask, ink) + + def multiline_text(self, xy, text, fill=None, font=None, anchor=None, + spacing=4, align="left", direction=None, features=None, + language=None): + widths = [] + max_width = 0 + lines = self._multiline_split(text) + line_spacing = self.textsize('A', font=font)[1] + spacing + for line in lines: + line_width, line_height = self.textsize(line, font, + direction=direction, + features=features, + language=language) + widths.append(line_width) + max_width = max(max_width, line_width) + left, top = xy + for idx, line in enumerate(lines): + if align == "left": + pass # left = x + elif align == "center": + left += (max_width - widths[idx]) / 2.0 + elif align == "right": + left += (max_width - widths[idx]) + else: + raise ValueError('align must be "left", "center" or "right"') + self.text((left, top), line, fill, font, anchor, + direction=direction, features=features, language=language) + top += line_spacing + left = xy[0] + + def textsize(self, text, font=None, spacing=4, direction=None, + features=None, language=None): + """Get the size of a given string, in pixels.""" + if self._multiline_check(text): + return self.multiline_textsize(text, font, spacing, + direction, features, language) + + if font is None: + font = self.getfont() + return font.getsize(text, direction, features, language) + + def multiline_textsize(self, text, font=None, spacing=4, direction=None, + features=None, language=None): + max_width = 0 + lines = self._multiline_split(text) + line_spacing = self.textsize('A', font=font)[1] + spacing + for line in lines: + line_width, line_height = self.textsize(line, font, spacing, + direction, features, + language) + max_width = max(max_width, line_width) + return max_width, len(lines)*line_spacing - spacing + + +def Draw(im, mode=None): + """ + A simple 2D drawing interface for PIL images. + + :param im: The image to draw in. + :param mode: Optional mode to use for color values. For RGB + images, this argument can be RGB or RGBA (to blend the + drawing into the image). For all other modes, this argument + must be the same as the image mode. If omitted, the mode + defaults to the mode of the image. + """ + try: + return im.getdraw(mode) + except AttributeError: + return ImageDraw(im, mode) + + +# experimental access to the outline API +try: + Outline = Image.core.outline +except AttributeError: + Outline = None + + +def getdraw(im=None, hints=None): + """ + (Experimental) A more advanced 2D drawing interface for PIL images, + based on the WCK interface. + + :param im: The image to draw in. + :param hints: An optional list of hints. + :returns: A (drawing context, drawing resource factory) tuple. + """ + # FIXME: this needs more work! + # FIXME: come up with a better 'hints' scheme. + handler = None + if not hints or "nicest" in hints: + try: + from . import _imagingagg as handler + except ImportError: + pass + if handler is None: + from . import ImageDraw2 as handler + if im: + im = handler.Draw(im) + return im, handler + + +def floodfill(image, xy, value, border=None, thresh=0): + """ + (experimental) Fills a bounded region with a given color. + + :param image: Target image. + :param xy: Seed position (a 2-item coordinate tuple). See + :ref:`coordinate-system`. + :param value: Fill color. + :param border: Optional border value. If given, the region consists of + pixels with a color different from the border color. If not given, + the region consists of pixels having the same color as the seed + pixel. + :param thresh: Optional threshold value which specifies a maximum + tolerable difference of a pixel value from the 'background' in + order for it to be replaced. Useful for filling regions of + non-homogeneous, but similar, colors. + """ + # based on an implementation by Eric S. Raymond + # amended by yo1995 @20180806 + pixel = image.load() + x, y = xy + try: + background = pixel[x, y] + if _color_diff(value, background) <= thresh: + return # seed point already has fill color + pixel[x, y] = value + except (ValueError, IndexError): + return # seed point outside image + edge = {(x, y)} + # use a set to keep record of current and previous edge pixels + # to reduce memory consumption + full_edge = set() + while edge: + new_edge = set() + for (x, y) in edge: # 4 adjacent method + for (s, t) in ((x+1, y), (x-1, y), (x, y+1), (x, y-1)): + if (s, t) in full_edge: + continue # if already processed, skip + try: + p = pixel[s, t] + except (ValueError, IndexError): + pass + else: + full_edge.add((s, t)) + if border is None: + fill = _color_diff(p, background) <= thresh + else: + fill = p != value and p != border + if fill: + pixel[s, t] = value + new_edge.add((s, t)) + full_edge = edge # discard pixels processed + edge = new_edge + + +def _color_diff(color1, color2): + """ + Uses 1-norm distance to calculate difference between two values. + """ + if isinstance(color2, tuple): + return sum([abs(color1[i]-color2[i]) for i in range(0, len(color2))]) + else: + return abs(color1-color2) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageDraw2.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageDraw2.py new file mode 100644 index 00000000..f7902b03 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageDraw2.py @@ -0,0 +1,108 @@ +# +# The Python Imaging Library +# $Id$ +# +# WCK-style drawing interface operations +# +# History: +# 2003-12-07 fl created +# 2005-05-15 fl updated; added to PIL as ImageDraw2 +# 2005-05-15 fl added text support +# 2005-05-20 fl added arc/chord/pieslice support +# +# Copyright (c) 2003-2005 by Secret Labs AB +# Copyright (c) 2003-2005 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image, ImageColor, ImageDraw, ImageFont, ImagePath + + +class Pen(object): + def __init__(self, color, width=1, opacity=255): + self.color = ImageColor.getrgb(color) + self.width = width + + +class Brush(object): + def __init__(self, color, opacity=255): + self.color = ImageColor.getrgb(color) + + +class Font(object): + 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): + + def __init__(self, image, size=None, color=None): + if not hasattr(image, "im"): + image = Image.new(image, size, color) + self.draw = ImageDraw.Draw(image) + self.image = image + self.transform = None + + def flush(self): + return self.image + + def render(self, op, xy, pen, brush=None): + # handle color arguments + outline = fill = None + width = 1 + if isinstance(pen, Pen): + outline = pen.color + width = pen.width + elif isinstance(brush, Pen): + outline = brush.color + width = brush.width + if isinstance(brush, Brush): + fill = brush.color + elif isinstance(pen, Brush): + fill = pen.color + # handle transformation + if self.transform: + xy = ImagePath.Path(xy) + xy.transform(self.transform) + # render the item + if op == "line": + self.draw.line(xy, fill=outline, width=width) + else: + getattr(self.draw, op)(xy, fill=fill, outline=outline) + + def settransform(self, offset): + (xoffset, yoffset) = offset + self.transform = (1, 0, xoffset, 0, 1, yoffset) + + def arc(self, xy, start, end, *options): + self.render("arc", xy, start, end, *options) + + def chord(self, xy, start, end, *options): + self.render("chord", xy, start, end, *options) + + def ellipse(self, xy, *options): + self.render("ellipse", xy, *options) + + def line(self, xy, *options): + self.render("line", xy, *options) + + def pieslice(self, xy, start, end, *options): + self.render("pieslice", xy, start, end, *options) + + def polygon(self, xy, *options): + self.render("polygon", xy, *options) + + def rectangle(self, xy, *options): + self.render("rectangle", xy, *options) + + def text(self, xy, text, font): + if self.transform: + xy = ImagePath.Path(xy) + xy.transform(self.transform) + self.draw.text(xy, text, font=font.font, fill=font.color) + + def textsize(self, text, font): + return self.draw.textsize(text, font=font.font) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageEnhance.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageEnhance.py new file mode 100644 index 00000000..1b78bfd9 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageEnhance.py @@ -0,0 +1,101 @@ +# +# The Python Imaging Library. +# $Id$ +# +# image enhancement classes +# +# For a background, see "Image Processing By Interpolation and +# Extrapolation", Paul Haeberli and Douglas Voorhies. Available +# at http://www.graficaobscura.com/interp/index.html +# +# History: +# 1996-03-23 fl Created +# 2009-06-16 fl Fixed mean calculation +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1996. +# +# See the README file for information on usage and redistribution. +# + +from . import Image, ImageFilter, ImageStat + + +class _Enhance(object): + + def enhance(self, factor): + """ + Returns an enhanced image. + + :param factor: A floating point value controlling the enhancement. + Factor 1.0 always returns a copy of the original image, + lower factors mean less color (brightness, contrast, + etc), and higher values more. There are no restrictions + on this value. + :rtype: :py:class:`~PIL.Image.Image` + """ + return Image.blend(self.degenerate, self.image, factor) + + +class Color(_Enhance): + """Adjust image color balance. + + This class can be used to adjust the colour balance of an image, in + a manner similar to the controls on a colour TV set. An enhancement + factor of 0.0 gives a black and white image. A factor of 1.0 gives + the original image. + """ + def __init__(self, image): + self.image = image + self.intermediate_mode = 'L' + if 'A' in image.getbands(): + self.intermediate_mode = 'LA' + + self.degenerate = image.convert( + self.intermediate_mode).convert(image.mode) + + +class Contrast(_Enhance): + """Adjust image contrast. + + This class can be used to control the contrast of an image, similar + to the contrast control on a TV set. An enhancement factor of 0.0 + gives a solid grey image. A factor of 1.0 gives the original image. + """ + def __init__(self, image): + self.image = image + mean = int(ImageStat.Stat(image.convert("L")).mean[0] + 0.5) + self.degenerate = Image.new("L", image.size, mean).convert(image.mode) + + if 'A' in image.getbands(): + self.degenerate.putalpha(image.getchannel('A')) + + +class Brightness(_Enhance): + """Adjust image brightness. + + This class can be used to control the brightness of an image. An + enhancement factor of 0.0 gives a black image. A factor of 1.0 gives the + original image. + """ + def __init__(self, image): + self.image = image + self.degenerate = Image.new(image.mode, image.size, 0) + + if 'A' in image.getbands(): + self.degenerate.putalpha(image.getchannel('A')) + + +class Sharpness(_Enhance): + """Adjust image sharpness. + + This class can be used to adjust the sharpness of an image. An + enhancement factor of 0.0 gives a blurred image, a factor of 1.0 gives the + original image, and a factor of 2.0 gives a sharpened image. + """ + def __init__(self, image): + self.image = image + self.degenerate = image.filter(ImageFilter.SMOOTH) + + if 'A' in image.getbands(): + self.degenerate.putalpha(image.getchannel('A')) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFile.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFile.py new file mode 100644 index 00000000..06e7b76b --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFile.py @@ -0,0 +1,674 @@ +# +# The Python Imaging Library. +# $Id$ +# +# base class for image file handlers +# +# history: +# 1995-09-09 fl Created +# 1996-03-11 fl Fixed load mechanism. +# 1996-04-15 fl Added pcx/xbm decoders. +# 1996-04-30 fl Added encoders. +# 1996-12-14 fl Added load helpers +# 1997-01-11 fl Use encode_to_file where possible +# 1997-08-27 fl Flush output in _save +# 1998-03-05 fl Use memory mapping for some modes +# 1999-02-04 fl Use memory mapping also for "I;16" and "I;16B" +# 1999-05-31 fl Added image parser +# 2000-10-12 fl Set readonly flag on memory-mapped images +# 2002-03-20 fl Use better messages for common decoder errors +# 2003-04-21 fl Fall back on mmap/map_buffer if map is not available +# 2003-10-30 fl Added StubImageFile class +# 2004-02-25 fl Made incremental parser more robust +# +# Copyright (c) 1997-2004 by Secret Labs AB +# Copyright (c) 1995-2004 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image +from ._util import isPath +import io +import sys +import struct + +MAXBLOCK = 65536 + +SAFEBLOCK = 1024*1024 + +LOAD_TRUNCATED_IMAGES = False + +ERRORS = { + -1: "image buffer overrun error", + -2: "decoding error", + -3: "unknown error", + -8: "bad configuration", + -9: "out of memory error" +} + + +def raise_ioerror(error): + try: + message = Image.core.getcodecstatus(error) + except AttributeError: + message = ERRORS.get(error) + if not message: + message = "decoder error %d" % error + raise IOError(message + " when reading image file") + + +# +# -------------------------------------------------------------------- +# Helpers + +def _tilesort(t): + # sort on offset + return t[2] + + +# +# -------------------------------------------------------------------- +# ImageFile base class + +class ImageFile(Image.Image): + "Base class for image file format handlers." + + def __init__(self, fp=None, filename=None): + Image.Image.__init__(self) + + self._min_frame = 0 + + self.custom_mimetype = None + + self.tile = None + self.readonly = 1 # until we know better + + self.decoderconfig = () + self.decodermaxblock = MAXBLOCK + + if isPath(fp): + # filename + self.fp = open(fp, "rb") + self.filename = fp + self._exclusive_fp = True + else: + # stream + self.fp = fp + self.filename = filename + # can be overridden + 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: + # 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 + + def get_format_mimetype(self): + if self.custom_mimetype: + return self.custom_mimetype + if self.format is not None: + return Image.MIME.get(self.format.upper()) + + def verify(self): + """Check file integrity""" + + # raise exception if something's wrong. must be called + # directly after open, and closes file when finished. + if self._exclusive_fp: + self.fp.close() + self.fp = None + + def load(self): + """Load image data based on tile list""" + + pixel = Image.Image.load(self) + + if self.tile is None: + raise IOError("cannot load this image") + if not self.tile: + return pixel + + self.map = None + use_mmap = self.filename and len(self.tile) == 1 + # As of pypy 2.1.0, memory mapping was failing here. + use_mmap = use_mmap and not hasattr(sys, 'pypy_version_info') + + readonly = 0 + + # look for read/seek overrides + try: + read = self.load_read + # don't use mmap if there are custom read/seek functions + use_mmap = False + except AttributeError: + read = self.fp.read + + try: + seek = self.load_seek + use_mmap = False + except AttributeError: + seek = self.fp.seek + + if use_mmap: + # try memory mapping + decoder_name, extents, offset, args = self.tile[0] + if decoder_name == "raw" and len(args) >= 3 and \ + args[0] == self.mode and \ + args[0] in Image._MAPMODES: + try: + if hasattr(Image.core, "map"): + # use built-in mapper WIN32 only + self.map = Image.core.map(self.filename) + self.map.seek(offset) + self.im = self.map.readimage( + self.mode, self.size, args[1], args[2] + ) + else: + # use mmap, if possible + import mmap + with open(self.filename, "r") as fp: + self.map = mmap.mmap(fp.fileno(), 0, + access=mmap.ACCESS_READ) + self.im = Image.core.map_buffer( + self.map, self.size, decoder_name, extents, + 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): + self.map = None + + self.load_prepare() + err_code = -3 # initialize to unknown error + if not self.map: + # sort tiles in file order + self.tile.sort(key=_tilesort) + + try: + # FIXME: This is a hack to handle TIFF's JpegTables tag. + prefix = self.tile_prefix + except AttributeError: + prefix = b"" + + for decoder_name, extents, offset, args in self.tile: + decoder = Image._getdecoder(self.mode, decoder_name, + args, self.decoderconfig) + try: + seek(offset) + decoder.setimage(self.im, extents) + if decoder.pulls_fd: + decoder.setfd(self.fp) + status, err_code = decoder.decode(b"") + else: + b = prefix + while True: + try: + s = read(self.decodermaxblock) + except (IndexError, struct.error): + # truncated png/gif + if LOAD_TRUNCATED_IMAGES: + break + else: + raise IOError("image file is truncated") + + if not s: # truncated jpeg + if LOAD_TRUNCATED_IMAGES: + break + else: + self.tile = [] + raise IOError("image file is truncated " + "(%d bytes not processed)" % + len(b)) + + b = b + s + n, err_code = decoder.decode(b) + if n < 0: + break + b = b[n:] + finally: + # Need to cleanup here to prevent leaks + decoder.cleanup() + + self.tile = [] + self.readonly = readonly + + self.load_end() + + if self._exclusive_fp and self._close_exclusive_fp_after_loading: + self.fp.close() + self.fp = None + + if not self.map and not LOAD_TRUNCATED_IMAGES and err_code < 0: + # still raised if decoder fails to return anything + raise_ioerror(err_code) + + return Image.Image.load(self) + + def load_prepare(self): + # create image memory if necessary + if not self.im or\ + self.im.mode != self.mode or self.im.size != self.size: + self.im = Image.core.new(self.mode, self.size) + # create palette (optional) + if self.mode == "P": + Image.Image.load(self) + + def load_end(self): + # may be overridden + pass + + # may be defined for contained formats + # def load_seek(self, pos): + # pass + + # may be defined for blocked formats (e.g. PNG) + # def load_read(self, bytes): + # pass + + def _seek_check(self, frame): + if (frame < self._min_frame or + # Only check upper limit on frames if additional seek operations + # are not required to do so + (not (hasattr(self, "_n_frames") and self._n_frames is None) and + frame >= self.n_frames+self._min_frame)): + raise EOFError("attempt to seek outside sequence") + + return self.tell() != frame + + +class StubImageFile(ImageFile): + """ + Base class for stub image loaders. + + A stub loader is an image loader that can identify files of a + certain format, but relies on external code to load the file. + """ + + def _open(self): + raise NotImplementedError( + "StubImageFile subclass must implement _open" + ) + + def load(self): + loader = self._load() + if loader is None: + raise IOError("cannot find loader for this %s file" % self.format) + image = loader.load(self) + assert image is not None + # become the other object (!) + self.__class__ = image.__class__ + self.__dict__ = image.__dict__ + + def _load(self): + """(Hook) Find actual image loader.""" + raise NotImplementedError( + "StubImageFile subclass must implement _load" + ) + + +class Parser(object): + """ + Incremental image parser. This class implements the standard + feed/close consumer interface. + """ + incremental = None + image = None + data = None + decoder = None + offset = 0 + finished = 0 + + def reset(self): + """ + (Consumer) Reset the parser. Note that you can only call this + method immediately after you've created a parser; parser + instances cannot be reused. + """ + assert self.data is None, "cannot reuse parsers" + + def feed(self, data): + """ + (Consumer) Feed data to the parser. + + :param data: A string buffer. + :exception IOError: If the parser failed to parse the image file. + """ + # collect data + + if self.finished: + return + + if self.data is None: + self.data = data + else: + self.data = self.data + data + + # parse what we have + if self.decoder: + + if self.offset > 0: + # skip header + skip = min(len(self.data), self.offset) + self.data = self.data[skip:] + self.offset = self.offset - skip + if self.offset > 0 or not self.data: + return + + n, e = self.decoder.decode(self.data) + + if n < 0: + # end of stream + self.data = None + self.finished = 1 + if e < 0: + # decoding error + self.image = None + raise_ioerror(e) + else: + # end of image + return + self.data = self.data[n:] + + elif self.image: + + # if we end up here with no decoder, this file cannot + # be incrementally parsed. wait until we've gotten all + # available data + pass + + else: + + # attempt to open this file + try: + with io.BytesIO(self.data) as fp: + im = Image.open(fp) + except IOError: + # traceback.print_exc() + pass # not enough data + else: + flag = hasattr(im, "load_seek") or hasattr(im, "load_read") + if flag or len(im.tile) != 1: + # custom load code, or multiple tiles + self.decode = None + else: + # initialize decoder + im.load_prepare() + d, e, o, a = im.tile[0] + im.tile = [] + self.decoder = Image._getdecoder( + im.mode, d, a, im.decoderconfig + ) + self.decoder.setimage(im.im, e) + + # calculate decoder offset + self.offset = o + if self.offset <= len(self.data): + self.data = self.data[self.offset:] + self.offset = 0 + + self.image = im + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + def close(self): + """ + (Consumer) Close the stream. + + :returns: An image object. + :exception IOError: If the parser failed to parse the image file either + because it cannot be identified or cannot be + decoded. + """ + # finish decoding + if self.decoder: + # get rid of what's left in the buffers + self.feed(b"") + self.data = self.decoder = None + if not self.finished: + raise IOError("image was incomplete") + if not self.image: + raise IOError("cannot parse this image") + if self.data: + # incremental parsing not possible; reopen the file + # not that we have all data + with io.BytesIO(self.data) as fp: + try: + self.image = Image.open(fp) + finally: + self.image.load() + return self.image + + +# -------------------------------------------------------------------- + +def _save(im, fp, tile, bufsize=0): + """Helper to save image based on tile list + + :param im: Image object. + :param fp: File object. + :param tile: Tile list. + :param bufsize: Optional buffer size + """ + + im.load() + if not hasattr(im, "encoderconfig"): + im.encoderconfig = () + tile.sort(key=_tilesort) + # FIXME: make MAXBLOCK a configuration parameter + # It would be great if we could have the encoder specify what it needs + # But, it would need at least the image size in most cases. RawEncode is + # a tricky case. + bufsize = max(MAXBLOCK, bufsize, im.size[0] * 4) # see RawEncode.c + if fp == sys.stdout: + fp.flush() + return + try: + fh = fp.fileno() + fp.flush() + except (AttributeError, io.UnsupportedOperation): + # compress to Python file-compatible object + for e, b, o, a in tile: + e = Image._getencoder(im.mode, e, a, im.encoderconfig) + if o > 0: + fp.seek(o) + e.setimage(im.im, b) + if e.pushes_fd: + e.setfd(fp) + l, s = e.encode_to_pyfd() + else: + while True: + l, s, d = e.encode(bufsize) + fp.write(d) + if s: + break + if s < 0: + raise IOError("encoder error %d when writing image file" % s) + e.cleanup() + else: + # slight speedup: compress to real file object + for e, b, o, a in tile: + e = Image._getencoder(im.mode, e, a, im.encoderconfig) + if o > 0: + fp.seek(o) + e.setimage(im.im, b) + if e.pushes_fd: + e.setfd(fp) + l, s = e.encode_to_pyfd() + else: + s = e.encode_to_file(fh, bufsize) + if s < 0: + raise IOError("encoder error %d when writing image file" % s) + e.cleanup() + if hasattr(fp, "flush"): + fp.flush() + + +def _safe_read(fp, size): + """ + Reads large blocks in a safe way. Unlike fp.read(n), this function + doesn't trust the user. If the requested size is larger than + SAFEBLOCK, the file is read block by block. + + :param fp: File handle. Must implement a read method. + :param size: Number of bytes to read. + :returns: A string containing up to size bytes of data. + """ + if size <= 0: + return b"" + if size <= SAFEBLOCK: + return fp.read(size) + data = [] + while size > 0: + block = fp.read(min(size, SAFEBLOCK)) + if not block: + break + data.append(block) + size -= len(block) + return b"".join(data) + + +class PyCodecState(object): + def __init__(self): + self.xsize = 0 + self.ysize = 0 + self.xoff = 0 + self.yoff = 0 + + def extents(self): + return (self.xoff, self.yoff, + self.xoff+self.xsize, self.yoff+self.ysize) + + +class PyDecoder(object): + """ + Python implementation of a format decoder. Override this class and + add the decoding logic in the `decode` method. + + See :ref:`Writing Your Own File Decoder in Python` + """ + + _pulls_fd = False + + def __init__(self, mode, *args): + self.im = None + self.state = PyCodecState() + self.fd = None + self.mode = mode + self.init(args) + + def init(self, args): + """ + Override to perform decoder specific initialization + + :param args: Array of args items from the tile entry + :returns: None + """ + self.args = args + + @property + def pulls_fd(self): + return self._pulls_fd + + def decode(self, buffer): + """ + Override to perform the decoding process. + + :param buffer: A bytes object with the data to be decoded. + :returns: A tuple of (bytes consumed, errcode). + If finished with decoding return <0 for the bytes consumed. + Err codes are from `ERRORS` + """ + raise NotImplementedError() + + def cleanup(self): + """ + Override to perform decoder specific cleanup + + :returns: None + """ + pass + + def setfd(self, fd): + """ + Called from ImageFile to set the python file-like object + + :param fd: A python file-like object + :returns: None + """ + self.fd = fd + + def setimage(self, im, extents=None): + """ + Called from ImageFile to set the core output image for the decoder + + :param im: A core image object + :param extents: a 4 tuple of (x0, y0, x1, y1) defining the rectangle + for this tile + :returns: None + """ + + # following c code + self.im = im + + if extents: + (x0, y0, x1, y1) = extents + else: + (x0, y0, x1, y1) = (0, 0, 0, 0) + + if x0 == 0 and x1 == 0: + self.state.xsize, self.state.ysize = self.im.size + else: + self.state.xoff = x0 + self.state.yoff = y0 + self.state.xsize = x1 - x0 + self.state.ysize = y1 - y0 + + if self.state.xsize <= 0 or self.state.ysize <= 0: + raise ValueError("Size cannot be negative") + + if (self.state.xsize + self.state.xoff > self.im.size[0] or + self.state.ysize + self.state.yoff > self.im.size[1]): + raise ValueError("Tile cannot extend outside image") + + def set_as_raw(self, data, rawmode=None): + """ + Convenience method to set the internal image from a stream of raw data + + :param data: Bytes to be set + :param rawmode: The rawmode to be used for the decoder. + If not specified, it will default to the mode of the image + :returns: None + """ + + if not rawmode: + rawmode = self.mode + d = Image._getdecoder(self.mode, 'raw', (rawmode)) + d.setimage(self.im, self.state.extents()) + s = d.decode(data) + + if s[0] >= 0: + raise ValueError("not enough image data") + if s[1] != 0: + raise ValueError("cannot decode image data") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFilter.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFilter.py new file mode 100644 index 00000000..271f93b0 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFilter.py @@ -0,0 +1,483 @@ +# +# The Python Imaging Library. +# $Id$ +# +# standard filters +# +# History: +# 1995-11-27 fl Created +# 2002-06-08 fl Added rank and mode filters +# 2003-09-15 fl Fixed rank calculation in rank filter; added expand call +# +# Copyright (c) 1997-2003 by Secret Labs AB. +# Copyright (c) 1995-2002 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +from __future__ import division + +import functools + +try: + import numpy +except ImportError: # pragma: no cover + numpy = None + + +class Filter(object): + pass + + +class MultibandFilter(Filter): + pass + + +class BuiltinFilter(MultibandFilter): + def filter(self, image): + if image.mode == "P": + raise ValueError("cannot filter palette images") + return image.filter(*self.filterargs) + + +class Kernel(BuiltinFilter): + """ + Create a convolution kernel. The current version only + supports 3x3 and 5x5 integer and floating point kernels. + + In the current version, kernels can only be applied to + "L" and "RGB" images. + + :param size: Kernel size, given as (width, height). In the current + version, this must be (3,3) or (5,5). + :param kernel: A sequence containing kernel weights. + :param scale: Scale factor. If given, the result for each pixel is + divided by this value. the default is the sum of the + kernel weights. + :param offset: Offset. If given, this value is added to the result, + after it has been divided by the scale factor. + """ + name = "Kernel" + + def __init__(self, size, kernel, scale=None, offset=0): + if scale is None: + # default scale is sum of kernel + scale = functools.reduce(lambda a, b: a+b, kernel) + if size[0] * size[1] != len(kernel): + raise ValueError("not enough coefficients in kernel") + self.filterargs = size, scale, offset, kernel + + +class RankFilter(Filter): + """ + Create a rank filter. The rank filter sorts all pixels in + a window of the given size, and returns the **rank**'th value. + + :param size: The kernel size, in pixels. + :param rank: What pixel value to pick. Use 0 for a min filter, + ``size * size / 2`` for a median filter, ``size * size - 1`` + for a max filter, etc. + """ + name = "Rank" + + def __init__(self, size, rank): + self.size = size + self.rank = rank + + def filter(self, image): + if image.mode == "P": + raise ValueError("cannot filter palette images") + image = image.expand(self.size//2, self.size//2) + return image.rankfilter(self.size, self.rank) + + +class MedianFilter(RankFilter): + """ + Create a median filter. Picks the median pixel value in a window with the + given size. + + :param size: The kernel size, in pixels. + """ + name = "Median" + + def __init__(self, size=3): + self.size = size + self.rank = size*size//2 + + +class MinFilter(RankFilter): + """ + Create a min filter. Picks the lowest pixel value in a window with the + given size. + + :param size: The kernel size, in pixels. + """ + name = "Min" + + def __init__(self, size=3): + self.size = size + self.rank = 0 + + +class MaxFilter(RankFilter): + """ + Create a max filter. Picks the largest pixel value in a window with the + given size. + + :param size: The kernel size, in pixels. + """ + name = "Max" + + def __init__(self, size=3): + self.size = size + self.rank = size*size-1 + + +class ModeFilter(Filter): + """ + Create a mode filter. Picks the most frequent pixel value in a box with the + given size. Pixel values that occur only once or twice are ignored; if no + pixel value occurs more than twice, the original pixel value is preserved. + + :param size: The kernel size, in pixels. + """ + name = "Mode" + + def __init__(self, size=3): + self.size = size + + def filter(self, image): + return image.modefilter(self.size) + + +class GaussianBlur(MultibandFilter): + """Gaussian blur filter. + + :param radius: Blur radius. + """ + name = "GaussianBlur" + + def __init__(self, radius=2): + self.radius = radius + + def filter(self, image): + return image.gaussian_blur(self.radius) + + +class BoxBlur(MultibandFilter): + """Blurs the image by setting each pixel to the average value of the pixels + in a square box extending radius pixels in each direction. + Supports float radius of arbitrary size. Uses an optimized implementation + which runs in linear time relative to the size of the image + for any radius value. + + :param radius: Size of the box in one direction. Radius 0 does not blur, + returns an identical image. Radius 1 takes 1 pixel + in each direction, i.e. 9 pixels in total. + """ + name = "BoxBlur" + + def __init__(self, radius): + self.radius = radius + + def filter(self, image): + return image.box_blur(self.radius) + + +class UnsharpMask(MultibandFilter): + """Unsharp mask filter. + + See Wikipedia's entry on `digital unsharp masking`_ for an explanation of + the parameters. + + :param radius: Blur Radius + :param percent: Unsharp strength, in percent + :param threshold: Threshold controls the minimum brightness change that + will be sharpened + + .. _digital unsharp masking: https://en.wikipedia.org/wiki/Unsharp_masking#Digital_unsharp_masking + + """ # noqa: E501 + name = "UnsharpMask" + + def __init__(self, radius=2, percent=150, threshold=3): + self.radius = radius + self.percent = percent + self.threshold = threshold + + def filter(self, image): + return image.unsharp_mask(self.radius, self.percent, self.threshold) + + +class BLUR(BuiltinFilter): + name = "Blur" + filterargs = (5, 5), 16, 0, ( + 1, 1, 1, 1, 1, + 1, 0, 0, 0, 1, + 1, 0, 0, 0, 1, + 1, 0, 0, 0, 1, + 1, 1, 1, 1, 1 + ) + + +class CONTOUR(BuiltinFilter): + name = "Contour" + filterargs = (3, 3), 1, 255, ( + -1, -1, -1, + -1, 8, -1, + -1, -1, -1 + ) + + +class DETAIL(BuiltinFilter): + name = "Detail" + filterargs = (3, 3), 6, 0, ( + 0, -1, 0, + -1, 10, -1, + 0, -1, 0 + ) + + +class EDGE_ENHANCE(BuiltinFilter): + name = "Edge-enhance" + filterargs = (3, 3), 2, 0, ( + -1, -1, -1, + -1, 10, -1, + -1, -1, -1 + ) + + +class EDGE_ENHANCE_MORE(BuiltinFilter): + name = "Edge-enhance More" + filterargs = (3, 3), 1, 0, ( + -1, -1, -1, + -1, 9, -1, + -1, -1, -1 + ) + + +class EMBOSS(BuiltinFilter): + name = "Emboss" + filterargs = (3, 3), 1, 128, ( + -1, 0, 0, + 0, 1, 0, + 0, 0, 0 + ) + + +class FIND_EDGES(BuiltinFilter): + name = "Find Edges" + filterargs = (3, 3), 1, 0, ( + -1, -1, -1, + -1, 8, -1, + -1, -1, -1 + ) + + +class SHARPEN(BuiltinFilter): + name = "Sharpen" + filterargs = (3, 3), 16, 0, ( + -2, -2, -2, + -2, 32, -2, + -2, -2, -2 + ) + + +class SMOOTH(BuiltinFilter): + name = "Smooth" + filterargs = (3, 3), 13, 0, ( + 1, 1, 1, + 1, 5, 1, + 1, 1, 1 + ) + + +class SMOOTH_MORE(BuiltinFilter): + name = "Smooth More" + filterargs = (5, 5), 100, 0, ( + 1, 1, 1, 1, 1, + 1, 5, 5, 5, 1, + 1, 5, 44, 5, 1, + 1, 5, 5, 5, 1, + 1, 1, 1, 1, 1 + ) + + +class Color3DLUT(MultibandFilter): + """Three-dimensional color lookup table. + + Transforms 3-channel pixels using the values of the channels as coordinates + in the 3D lookup table and interpolating the nearest elements. + + This method allows you to apply almost any color transformation + in constant time by using pre-calculated decimated tables. + + .. versionadded:: 5.2.0 + + :param size: Size of the table. One int or tuple of (int, int, int). + Minimal size in any dimension is 2, maximum is 65. + :param table: Flat lookup table. A list of ``channels * size**3`` + float elements or a list of ``size**3`` channels-sized + tuples with floats. Channels are changed first, + then first dimension, then second, then third. + Value 0.0 corresponds lowest value of output, 1.0 highest. + :param channels: Number of channels in the table. Could be 3 or 4. + Default is 3. + :param target_mode: A mode for the result image. Should have not less + than ``channels`` channels. Default is ``None``, + which means that mode wouldn't be changed. + """ + name = "Color 3D LUT" + + def __init__(self, size, table, channels=3, target_mode=None, **kwargs): + if channels not in (3, 4): + raise ValueError("Only 3 or 4 output channels are supported") + self.size = size = self._check_size(size) + self.channels = channels + self.mode = target_mode + + # Hidden flag `_copy_table=False` could be used to avoid extra copying + # of the table if the table is specially made for the constructor. + copy_table = kwargs.get('_copy_table', True) + items = size[0] * size[1] * size[2] + wrong_size = False + + if numpy and isinstance(table, numpy.ndarray): + if copy_table: + table = table.copy() + + if table.shape in [(items * channels,), (items, channels), + (size[2], size[1], size[0], channels)]: + table = table.reshape(items * channels) + else: + wrong_size = True + + else: + if copy_table: + table = list(table) + + # Convert to a flat list + if table and isinstance(table[0], (list, tuple)): + table, raw_table = [], table + for pixel in raw_table: + if len(pixel) != channels: + raise ValueError( + "The elements of the table should " + "have a length of {}.".format(channels)) + table.extend(pixel) + + if wrong_size or len(table) != items * channels: + raise ValueError( + "The table should have either channels * size**3 float items " + "or size**3 items of channels-sized tuples with floats. " + "Table should be: {}x{}x{}x{}. Actual length: {}".format( + channels, size[0], size[1], size[2], len(table))) + self.table = table + + @staticmethod + def _check_size(size): + try: + _, _, _ = size + except ValueError: + raise ValueError("Size should be either an integer or " + "a tuple of three integers.") + except TypeError: + size = (size, size, size) + size = [int(x) for x in size] + for size1D in size: + if not 2 <= size1D <= 65: + raise ValueError("Size should be in [2, 65] range.") + return size + + @classmethod + def generate(cls, size, callback, channels=3, target_mode=None): + """Generates new LUT using provided callback. + + :param size: Size of the table. Passed to the constructor. + :param callback: Function with three parameters which correspond + three color channels. Will be called ``size**3`` + times with values from 0.0 to 1.0 and should return + a tuple with ``channels`` elements. + :param channels: The number of channels which should return callback. + :param target_mode: Passed to the constructor of the resulting + lookup table. + """ + size1D, size2D, size3D = cls._check_size(size) + if channels not in (3, 4): + raise ValueError("Only 3 or 4 output channels are supported") + + table = [0] * (size1D * size2D * size3D * channels) + idx_out = 0 + for b in range(size3D): + for g in range(size2D): + for r in range(size1D): + table[idx_out:idx_out + channels] = callback( + r / (size1D-1), g / (size2D-1), b / (size3D-1)) + idx_out += channels + + return cls((size1D, size2D, size3D), table, channels=channels, + target_mode=target_mode, _copy_table=False) + + def transform(self, callback, with_normals=False, channels=None, + target_mode=None): + """Transforms the table values using provided callback and returns + a new LUT with altered values. + + :param callback: A function which takes old lookup table values + and returns a new set of values. The number + of arguments which function should take is + ``self.channels`` or ``3 + self.channels`` + if ``with_normals`` flag is set. + Should return a tuple of ``self.channels`` or + ``channels`` elements if it is set. + :param with_normals: If true, ``callback`` will be called with + coordinates in the color cube as the first + three arguments. Otherwise, ``callback`` + will be called only with actual color values. + :param channels: The number of channels in the resulting lookup table. + :param target_mode: Passed to the constructor of the resulting + lookup table. + """ + if channels not in (None, 3, 4): + raise ValueError("Only 3 or 4 output channels are supported") + ch_in = self.channels + ch_out = channels or ch_in + size1D, size2D, size3D = self.size + + table = [0] * (size1D * size2D * size3D * ch_out) + idx_in = 0 + idx_out = 0 + for b in range(size3D): + for g in range(size2D): + for r in range(size1D): + values = self.table[idx_in:idx_in + ch_in] + if with_normals: + values = callback(r / (size1D-1), g / (size2D-1), + b / (size3D-1), *values) + else: + values = callback(*values) + table[idx_out:idx_out + ch_out] = values + idx_in += ch_in + idx_out += ch_out + + return type(self)(self.size, table, channels=ch_out, + target_mode=target_mode or self.mode, + _copy_table=False) + + def __repr__(self): + r = [ + "{} from {}".format(self.__class__.__name__, + self.table.__class__.__name__), + "size={:d}x{:d}x{:d}".format(*self.size), + "channels={:d}".format(self.channels), + ] + if self.mode: + r.append("target_mode={}".format(self.mode)) + return "<{}>".format(" ".join(r)) + + def filter(self, image): + from . import Image + + return image.color_lut_3d( + self.mode or image.mode, Image.LINEAR, self.channels, + self.size[0], self.size[1], self.size[2], self.table) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFont.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFont.py new file mode 100644 index 00000000..580aa874 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageFont.py @@ -0,0 +1,480 @@ +# +# The Python Imaging Library. +# $Id$ +# +# PIL raster font management +# +# History: +# 1996-08-07 fl created (experimental) +# 1997-08-25 fl minor adjustments to handle fonts from pilfont 0.3 +# 1999-02-06 fl rewrote most font management stuff in C +# 1999-03-17 fl take pth files into account in load_path (from Richard Jones) +# 2001-02-17 fl added freetype support +# 2001-05-09 fl added TransposedFont wrapper class +# 2002-03-04 fl make sure we have a "L" or "1" font +# 2002-12-04 fl skip non-directory entries in the system path +# 2003-04-29 fl add embedded default font +# 2003-09-27 fl added support for truetype charmap encodings +# +# Todo: +# Adapt to PILFONT2 format (16-bit fonts, compressed, single file) +# +# Copyright (c) 1997-2003 by Secret Labs AB +# Copyright (c) 1996-2003 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image +from ._util import isDirectory, isPath, py3 +import os +import sys + +LAYOUT_BASIC = 0 +LAYOUT_RAQM = 1 + + +class _imagingft_not_installed(object): + # module placeholder + def __getattr__(self, id): + raise ImportError("The _imagingft C module is not installed") + + +try: + from . import _imagingft as core +except ImportError: + core = _imagingft_not_installed() + + +# FIXME: add support for pilfont2 format (see FontFile.py) + +# -------------------------------------------------------------------- +# Font metrics format: +# "PILfont" LF +# fontdescriptor LF +# (optional) key=value... LF +# "DATA" LF +# binary data: 256*10*2 bytes (dx, dy, dstbox, srcbox) +# +# To place a character, cut out srcbox and paste at dstbox, +# relative to the character position. Then move the character +# position according to dx, dy. +# -------------------------------------------------------------------- + + +class ImageFont(object): + "PIL font wrapper" + + def _load_pilfont(self, filename): + + with open(filename, "rb") as fp: + for ext in (".png", ".gif", ".pbm"): + try: + fullname = os.path.splitext(filename)[0] + ext + image = Image.open(fullname) + except Exception: + pass + else: + if image and image.mode in ("1", "L"): + break + else: + raise IOError("cannot find glyph data file") + + self.file = fullname + + return self._load_pilfont_data(fp, image) + + def _load_pilfont_data(self, file, image): + + # read PILfont header + if file.readline() != b"PILfont\n": + raise SyntaxError("Not a PILfont file") + file.readline().split(b";") + self.info = [] # FIXME: should be a dictionary + while True: + s = file.readline() + if not s or s == b"DATA\n": + break + self.info.append(s) + + # read PILfont metrics + data = file.read(256*20) + + # check image + if image.mode not in ("1", "L"): + raise TypeError("invalid font image mode") + + image.load() + + self.font = Image.core.font(image.im, data) + + def getsize(self, text, *args, **kwargs): + return self.font.getsize(text) + + def getmask(self, text, mode="", *args, **kwargs): + return self.font.getmask(text, mode) + + +## +# Wrapper for FreeType fonts. Application code should use the +# truetype factory function to create font objects. + +class FreeTypeFont(object): + "FreeType font wrapper (requires _imagingft service)" + + def __init__(self, font=None, size=10, index=0, encoding="", + layout_engine=None): + # FIXME: use service provider instead + + self.path = font + self.size = size + self.index = index + self.encoding = encoding + + if layout_engine not in (LAYOUT_BASIC, LAYOUT_RAQM): + layout_engine = LAYOUT_BASIC + if core.HAVE_RAQM: + layout_engine = LAYOUT_RAQM + if layout_engine == LAYOUT_RAQM and not core.HAVE_RAQM: + layout_engine = LAYOUT_BASIC + + self.layout_engine = layout_engine + + if isPath(font): + self.font = core.getfont(font, size, index, encoding, + layout_engine=layout_engine) + else: + self.font_bytes = font.read() + self.font = core.getfont( + "", size, index, encoding, self.font_bytes, layout_engine) + + def _multiline_split(self, text): + split_character = "\n" if isinstance(text, str) else b"\n" + return text.split(split_character) + + def getname(self): + return self.font.family, self.font.style + + def getmetrics(self): + return self.font.ascent, self.font.descent + + def getsize(self, text, direction=None, features=None, language=None): + size, offset = self.font.getsize(text, direction, features, language) + return (size[0] + offset[0], size[1] + offset[1]) + + def getsize_multiline(self, text, direction=None, spacing=4, + features=None, language=None): + max_width = 0 + lines = self._multiline_split(text) + line_spacing = self.getsize('A')[1] + spacing + for line in lines: + line_width, line_height = self.getsize(line, direction, features, language) + max_width = max(max_width, line_width) + + return max_width, len(lines)*line_spacing - spacing + + def getoffset(self, text): + return self.font.getsize(text)[1] + + def getmask(self, text, mode="", direction=None, features=None, language=None): + return self.getmask2(text, mode, direction=direction, features=features, + language=language)[0] + + def getmask2(self, text, mode="", fill=Image.core.fill, direction=None, + features=None, language=None, *args, **kwargs): + size, offset = self.font.getsize(text, direction, features, language) + im = fill("L", size, 0) + self.font.render(text, im.id, mode == "1", direction, features, language) + return im, offset + + def font_variant(self, font=None, size=None, index=None, encoding=None, + layout_engine=None): + """ + Create a copy of this FreeTypeFont object, + using any specified arguments to override the settings. + + Parameters are identical to the parameters used to initialize this + object. + + :return: A FreeTypeFont object. + """ + return FreeTypeFont( + font=self.path if font is None else font, + size=self.size if size is None else size, + index=self.index if index is None else index, + encoding=self.encoding if encoding is None else encoding, + layout_engine=layout_engine or self.layout_engine + ) + + +class TransposedFont(object): + "Wrapper for writing rotated or mirrored text" + + def __init__(self, font, orientation=None): + """ + Wrapper that creates a transposed font from any existing font + object. + + :param font: A font object. + :param orientation: An optional orientation. If given, this should + be one of Image.FLIP_LEFT_RIGHT, Image.FLIP_TOP_BOTTOM, + Image.ROTATE_90, Image.ROTATE_180, or Image.ROTATE_270. + """ + self.font = font + self.orientation = orientation # any 'transpose' argument, or None + + def getsize(self, text, *args, **kwargs): + w, h = self.font.getsize(text) + if self.orientation in (Image.ROTATE_90, Image.ROTATE_270): + return h, w + return w, h + + def getmask(self, text, mode="", *args, **kwargs): + im = self.font.getmask(text, mode, *args, **kwargs) + if self.orientation is not None: + return im.transpose(self.orientation) + return im + + +def load(filename): + """ + Load a font file. This function loads a font object from the given + bitmap font file, and returns the corresponding font object. + + :param filename: Name of font file. + :return: A font object. + :exception IOError: If the file could not be read. + """ + f = ImageFont() + f._load_pilfont(filename) + return f + + +def truetype(font=None, size=10, index=0, encoding="", + layout_engine=None): + """ + Load a TrueType or OpenType font from a file or file-like object, + and create a font object. + This function loads a font object from the given file or file-like + object, and creates a font object for a font of the given size. + + This function requires the _imagingft service. + + :param font: A filename or file-like object containing a TrueType font. + Under Windows, if the file is not found in this filename, + the loader also looks in Windows :file:`fonts/` directory. + :param size: The requested size, in points. + :param index: Which font face to load (default is first available face). + :param encoding: Which font encoding to use (default is Unicode). Common + encodings are "unic" (Unicode), "symb" (Microsoft + Symbol), "ADOB" (Adobe Standard), "ADBE" (Adobe Expert), + and "armn" (Apple Roman). See the FreeType documentation + for more information. + :param layout_engine: Which layout engine to use, if available: + `ImageFont.LAYOUT_BASIC` or `ImageFont.LAYOUT_RAQM`. + :return: A font object. + :exception IOError: If the file could not be read. + """ + + try: + return FreeTypeFont(font, size, index, encoding, layout_engine) + except IOError: + ttf_filename = os.path.basename(font) + + dirs = [] + if sys.platform == "win32": + # check the windows font repository + # NOTE: must use uppercase WINDIR, to work around bugs in + # 1.5.2's os.environ.get() + windir = os.environ.get("WINDIR") + if windir: + dirs.append(os.path.join(windir, "fonts")) + elif sys.platform in ('linux', 'linux2'): + lindirs = os.environ.get("XDG_DATA_DIRS", "") + if not lindirs: + # According to the freedesktop spec, XDG_DATA_DIRS should + # default to /usr/share + lindirs = '/usr/share' + dirs += [os.path.join(lindir, "fonts") + for lindir in lindirs.split(":")] + elif sys.platform == 'darwin': + dirs += ['/Library/Fonts', '/System/Library/Fonts', + os.path.expanduser('~/Library/Fonts')] + + ext = os.path.splitext(ttf_filename)[1] + first_font_with_a_different_extension = None + for directory in dirs: + for walkroot, walkdir, walkfilenames in os.walk(directory): + for walkfilename in walkfilenames: + if ext and walkfilename == ttf_filename: + fontpath = os.path.join(walkroot, walkfilename) + return FreeTypeFont(fontpath, size, index, + encoding, layout_engine) + elif (not ext and + os.path.splitext(walkfilename)[0] == ttf_filename): + fontpath = os.path.join(walkroot, walkfilename) + if os.path.splitext(fontpath)[1] == '.ttf': + return FreeTypeFont(fontpath, size, index, + encoding, layout_engine) + if not ext \ + and first_font_with_a_different_extension is None: + first_font_with_a_different_extension = fontpath + if first_font_with_a_different_extension: + return FreeTypeFont(first_font_with_a_different_extension, size, + index, encoding, layout_engine) + raise + + +def load_path(filename): + """ + Load font file. Same as :py:func:`~PIL.ImageFont.load`, but searches for a + bitmap font along the Python path. + + :param filename: Name of font file. + :return: A font object. + :exception IOError: If the file could not be read. + """ + 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") + try: + return load(os.path.join(directory, filename)) + except IOError: + pass + raise IOError("cannot find font file") + + +def load_default(): + """Load a "better than nothing" default font. + + .. versionadded:: 1.1.4 + + :return: A font object. + """ + from io import BytesIO + import base64 + f = ImageFont() + f._load_pilfont_data( + # courB08 + BytesIO(base64.b64decode(b''' +UElMZm9udAo7Ozs7OzsxMDsKREFUQQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAA//8AAQAAAAAAAAABAAEA +BgAAAAH/+gADAAAAAQAAAAMABgAGAAAAAf/6AAT//QADAAAABgADAAYAAAAA//kABQABAAYAAAAL +AAgABgAAAAD/+AAFAAEACwAAABAACQAGAAAAAP/5AAUAAAAQAAAAFQAHAAYAAP////oABQAAABUA +AAAbAAYABgAAAAH/+QAE//wAGwAAAB4AAwAGAAAAAf/5AAQAAQAeAAAAIQAIAAYAAAAB//kABAAB +ACEAAAAkAAgABgAAAAD/+QAE//0AJAAAACgABAAGAAAAAP/6AAX//wAoAAAALQAFAAYAAAAB//8A +BAACAC0AAAAwAAMABgAAAAD//AAF//0AMAAAADUAAQAGAAAAAf//AAMAAAA1AAAANwABAAYAAAAB +//kABQABADcAAAA7AAgABgAAAAD/+QAFAAAAOwAAAEAABwAGAAAAAP/5AAYAAABAAAAARgAHAAYA +AAAA//kABQAAAEYAAABLAAcABgAAAAD/+QAFAAAASwAAAFAABwAGAAAAAP/5AAYAAABQAAAAVgAH +AAYAAAAA//kABQAAAFYAAABbAAcABgAAAAD/+QAFAAAAWwAAAGAABwAGAAAAAP/5AAUAAABgAAAA +ZQAHAAYAAAAA//kABQAAAGUAAABqAAcABgAAAAD/+QAFAAAAagAAAG8ABwAGAAAAAf/8AAMAAABv +AAAAcQAEAAYAAAAA//wAAwACAHEAAAB0AAYABgAAAAD/+gAE//8AdAAAAHgABQAGAAAAAP/7AAT/ +/gB4AAAAfAADAAYAAAAB//oABf//AHwAAACAAAUABgAAAAD/+gAFAAAAgAAAAIUABgAGAAAAAP/5 +AAYAAQCFAAAAiwAIAAYAAP////oABgAAAIsAAACSAAYABgAA////+gAFAAAAkgAAAJgABgAGAAAA +AP/6AAUAAACYAAAAnQAGAAYAAP////oABQAAAJ0AAACjAAYABgAA////+gAFAAAAowAAAKkABgAG +AAD////6AAUAAACpAAAArwAGAAYAAAAA//oABQAAAK8AAAC0AAYABgAA////+gAGAAAAtAAAALsA +BgAGAAAAAP/6AAQAAAC7AAAAvwAGAAYAAP////oABQAAAL8AAADFAAYABgAA////+gAGAAAAxQAA +AMwABgAGAAD////6AAUAAADMAAAA0gAGAAYAAP////oABQAAANIAAADYAAYABgAA////+gAGAAAA +2AAAAN8ABgAGAAAAAP/6AAUAAADfAAAA5AAGAAYAAP////oABQAAAOQAAADqAAYABgAAAAD/+gAF +AAEA6gAAAO8ABwAGAAD////6AAYAAADvAAAA9gAGAAYAAAAA//oABQAAAPYAAAD7AAYABgAA//// ++gAFAAAA+wAAAQEABgAGAAD////6AAYAAAEBAAABCAAGAAYAAP////oABgAAAQgAAAEPAAYABgAA +////+gAGAAABDwAAARYABgAGAAAAAP/6AAYAAAEWAAABHAAGAAYAAP////oABgAAARwAAAEjAAYA +BgAAAAD/+gAFAAABIwAAASgABgAGAAAAAf/5AAQAAQEoAAABKwAIAAYAAAAA//kABAABASsAAAEv +AAgABgAAAAH/+QAEAAEBLwAAATIACAAGAAAAAP/5AAX//AEyAAABNwADAAYAAAAAAAEABgACATcA +AAE9AAEABgAAAAH/+QAE//wBPQAAAUAAAwAGAAAAAP/7AAYAAAFAAAABRgAFAAYAAP////kABQAA +AUYAAAFMAAcABgAAAAD/+wAFAAABTAAAAVEABQAGAAAAAP/5AAYAAAFRAAABVwAHAAYAAAAA//sA +BQAAAVcAAAFcAAUABgAAAAD/+QAFAAABXAAAAWEABwAGAAAAAP/7AAYAAgFhAAABZwAHAAYAAP// +//kABQAAAWcAAAFtAAcABgAAAAD/+QAGAAABbQAAAXMABwAGAAAAAP/5AAQAAgFzAAABdwAJAAYA +AP////kABgAAAXcAAAF+AAcABgAAAAD/+QAGAAABfgAAAYQABwAGAAD////7AAUAAAGEAAABigAF +AAYAAP////sABQAAAYoAAAGQAAUABgAAAAD/+wAFAAABkAAAAZUABQAGAAD////7AAUAAgGVAAAB +mwAHAAYAAAAA//sABgACAZsAAAGhAAcABgAAAAD/+wAGAAABoQAAAacABQAGAAAAAP/7AAYAAAGn +AAABrQAFAAYAAAAA//kABgAAAa0AAAGzAAcABgAA////+wAGAAABswAAAboABQAGAAD////7AAUA +AAG6AAABwAAFAAYAAP////sABgAAAcAAAAHHAAUABgAAAAD/+wAGAAABxwAAAc0ABQAGAAD////7 +AAYAAgHNAAAB1AAHAAYAAAAA//sABQAAAdQAAAHZAAUABgAAAAH/+QAFAAEB2QAAAd0ACAAGAAAA +Av/6AAMAAQHdAAAB3gAHAAYAAAAA//kABAABAd4AAAHiAAgABgAAAAD/+wAF//0B4gAAAecAAgAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAB +//sAAwACAecAAAHpAAcABgAAAAD/+QAFAAEB6QAAAe4ACAAGAAAAAP/5AAYAAAHuAAAB9AAHAAYA +AAAA//oABf//AfQAAAH5AAUABgAAAAD/+QAGAAAB+QAAAf8ABwAGAAAAAv/5AAMAAgH/AAACAAAJ +AAYAAAAA//kABQABAgAAAAIFAAgABgAAAAH/+gAE//sCBQAAAggAAQAGAAAAAP/5AAYAAAIIAAAC +DgAHAAYAAAAB//kABf/+Ag4AAAISAAUABgAA////+wAGAAACEgAAAhkABQAGAAAAAP/7AAX//gIZ +AAACHgADAAYAAAAA//wABf/9Ah4AAAIjAAEABgAAAAD/+QAHAAACIwAAAioABwAGAAAAAP/6AAT/ ++wIqAAACLgABAAYAAAAA//kABP/8Ai4AAAIyAAMABgAAAAD/+gAFAAACMgAAAjcABgAGAAAAAf/5 +AAT//QI3AAACOgAEAAYAAAAB//kABP/9AjoAAAI9AAQABgAAAAL/+QAE//sCPQAAAj8AAgAGAAD/ +///7AAYAAgI/AAACRgAHAAYAAAAA//kABgABAkYAAAJMAAgABgAAAAH//AAD//0CTAAAAk4AAQAG +AAAAAf//AAQAAgJOAAACUQADAAYAAAAB//kABP/9AlEAAAJUAAQABgAAAAH/+QAF//4CVAAAAlgA +BQAGAAD////7AAYAAAJYAAACXwAFAAYAAP////kABgAAAl8AAAJmAAcABgAA////+QAGAAACZgAA +Am0ABwAGAAD////5AAYAAAJtAAACdAAHAAYAAAAA//sABQACAnQAAAJ5AAcABgAA////9wAGAAAC +eQAAAoAACQAGAAD////3AAYAAAKAAAAChwAJAAYAAP////cABgAAAocAAAKOAAkABgAA////9wAG +AAACjgAAApUACQAGAAD////4AAYAAAKVAAACnAAIAAYAAP////cABgAAApwAAAKjAAkABgAA//// ++gAGAAACowAAAqoABgAGAAAAAP/6AAUAAgKqAAACrwAIAAYAAP////cABQAAAq8AAAK1AAkABgAA +////9wAFAAACtQAAArsACQAGAAD////3AAUAAAK7AAACwQAJAAYAAP////gABQAAAsEAAALHAAgA +BgAAAAD/9wAEAAACxwAAAssACQAGAAAAAP/3AAQAAALLAAACzwAJAAYAAAAA//cABAAAAs8AAALT +AAkABgAAAAD/+AAEAAAC0wAAAtcACAAGAAD////6AAUAAALXAAAC3QAGAAYAAP////cABgAAAt0A +AALkAAkABgAAAAD/9wAFAAAC5AAAAukACQAGAAAAAP/3AAUAAALpAAAC7gAJAAYAAAAA//cABQAA +Au4AAALzAAkABgAAAAD/9wAFAAAC8wAAAvgACQAGAAAAAP/4AAUAAAL4AAAC/QAIAAYAAAAA//oA +Bf//Av0AAAMCAAUABgAA////+gAGAAADAgAAAwkABgAGAAD////3AAYAAAMJAAADEAAJAAYAAP// +//cABgAAAxAAAAMXAAkABgAA////9wAGAAADFwAAAx4ACQAGAAD////4AAYAAAAAAAoABwASAAYA +AP////cABgAAAAcACgAOABMABgAA////+gAFAAAADgAKABQAEAAGAAD////6AAYAAAAUAAoAGwAQ +AAYAAAAA//gABgAAABsACgAhABIABgAAAAD/+AAGAAAAIQAKACcAEgAGAAAAAP/4AAYAAAAnAAoA +LQASAAYAAAAA//gABgAAAC0ACgAzABIABgAAAAD/+QAGAAAAMwAKADkAEQAGAAAAAP/3AAYAAAA5 +AAoAPwATAAYAAP////sABQAAAD8ACgBFAA8ABgAAAAD/+wAFAAIARQAKAEoAEQAGAAAAAP/4AAUA +AABKAAoATwASAAYAAAAA//gABQAAAE8ACgBUABIABgAAAAD/+AAFAAAAVAAKAFkAEgAGAAAAAP/5 +AAUAAABZAAoAXgARAAYAAAAA//gABgAAAF4ACgBkABIABgAAAAD/+AAGAAAAZAAKAGoAEgAGAAAA +AP/4AAYAAABqAAoAcAASAAYAAAAA//kABgAAAHAACgB2ABEABgAAAAD/+AAFAAAAdgAKAHsAEgAG +AAD////4AAYAAAB7AAoAggASAAYAAAAA//gABQAAAIIACgCHABIABgAAAAD/+AAFAAAAhwAKAIwA +EgAGAAAAAP/4AAUAAACMAAoAkQASAAYAAAAA//gABQAAAJEACgCWABIABgAAAAD/+QAFAAAAlgAK +AJsAEQAGAAAAAP/6AAX//wCbAAoAoAAPAAYAAAAA//oABQABAKAACgClABEABgAA////+AAGAAAA +pQAKAKwAEgAGAAD////4AAYAAACsAAoAswASAAYAAP////gABgAAALMACgC6ABIABgAA////+QAG +AAAAugAKAMEAEQAGAAD////4AAYAAgDBAAoAyAAUAAYAAP////kABQACAMgACgDOABMABgAA//// ++QAGAAIAzgAKANUAEw== +''')), Image.open(BytesIO(base64.b64decode(b''' +iVBORw0KGgoAAAANSUhEUgAAAx4AAAAUAQAAAAArMtZoAAAEwElEQVR4nABlAJr/AHVE4czCI/4u +Mc4b7vuds/xzjz5/3/7u/n9vMe7vnfH/9++vPn/xyf5zhxzjt8GHw8+2d83u8x27199/nxuQ6Od9 +M43/5z2I+9n9ZtmDBwMQECDRQw/eQIQohJXxpBCNVE6QCCAAAAD//wBlAJr/AgALyj1t/wINwq0g +LeNZUworuN1cjTPIzrTX6ofHWeo3v336qPzfEwRmBnHTtf95/fglZK5N0PDgfRTslpGBvz7LFc4F +IUXBWQGjQ5MGCx34EDFPwXiY4YbYxavpnhHFrk14CDAAAAD//wBlAJr/AgKqRooH2gAgPeggvUAA +Bu2WfgPoAwzRAABAAAAAAACQgLz/3Uv4Gv+gX7BJgDeeGP6AAAD1NMDzKHD7ANWr3loYbxsAD791 +NAADfcoIDyP44K/jv4Y63/Z+t98Ovt+ub4T48LAAAAD//wBlAJr/AuplMlADJAAAAGuAphWpqhMx +in0A/fRvAYBABPgBwBUgABBQ/sYAyv9g0bCHgOLoGAAAAAAAREAAwI7nr0ArYpow7aX8//9LaP/9 +SjdavWA8ePHeBIKB//81/83ndznOaXx379wAAAD//wBlAJr/AqDxW+D3AABAAbUh/QMnbQag/gAY +AYDAAACgtgD/gOqAAAB5IA/8AAAk+n9w0AAA8AAAmFRJuPo27ciC0cD5oeW4E7KA/wD3ECMAn2tt +y8PgwH8AfAxFzC0JzeAMtratAsC/ffwAAAD//wBlAJr/BGKAyCAA4AAAAvgeYTAwHd1kmQF5chkG +ABoMIHcL5xVpTfQbUqzlAAAErwAQBgAAEOClA5D9il08AEh/tUzdCBsXkbgACED+woQg8Si9VeqY +lODCn7lmF6NhnAEYgAAA/NMIAAAAAAD//2JgjLZgVGBg5Pv/Tvpc8hwGBjYGJADjHDrAwPzAjv/H +/Wf3PzCwtzcwHmBgYGcwbZz8wHaCAQMDOwMDQ8MCBgYOC3W7mp+f0w+wHOYxO3OG+e376hsMZjk3 +AAAAAP//YmCMY2A4wMAIN5e5gQETPD6AZisDAwMDgzSDAAPjByiHcQMDAwMDg1nOze1lByRu5/47 +c4859311AYNZzg0AAAAA//9iYGDBYihOIIMuwIjGL39/fwffA8b//xv/P2BPtzzHwCBjUQAAAAD/ +/yLFBrIBAAAA//9i1HhcwdhizX7u8NZNzyLbvT97bfrMf/QHI8evOwcSqGUJAAAA//9iYBB81iSw +pEE170Qrg5MIYydHqwdDQRMrAwcVrQAAAAD//2J4x7j9AAMDn8Q/BgYLBoaiAwwMjPdvMDBYM1Tv +oJodAAAAAP//Yqo/83+dxePWlxl3npsel9lvLfPcqlE9725C+acfVLMEAAAA//9i+s9gwCoaaGMR +evta/58PTEWzr21hufPjA8N+qlnBwAAAAAD//2JiWLci5v1+HmFXDqcnULE/MxgYGBj+f6CaJQAA +AAD//2Ji2FrkY3iYpYC5qDeGgeEMAwPDvwQBBoYvcTwOVLMEAAAA//9isDBgkP///0EOg9z35v// +Gc/eeW7BwPj5+QGZhANUswMAAAD//2JgqGBgYGBgqEMXlvhMPUsAAAAA//8iYDd1AAAAAP//AwDR +w7IkEbzhVQAAAABJRU5ErkJggg== +''')))) + return f diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageGrab.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageGrab.py new file mode 100644 index 00000000..d0fe76ef --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageGrab.py @@ -0,0 +1,81 @@ +# +# The Python Imaging Library +# $Id$ +# +# screen grabber (macOS and Windows only) +# +# History: +# 2001-04-26 fl created +# 2001-09-17 fl use builtin driver, if present +# 2002-11-19 fl added grabclipboard support +# +# Copyright (c) 2001-2002 by Secret Labs AB +# Copyright (c) 2001-2002 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image + +import sys +if sys.platform not in ["win32", "darwin"]: + raise ImportError("ImageGrab is macOS and Windows only") + +if sys.platform == "win32": + grabber = Image.core.grabscreen +elif sys.platform == "darwin": + import os + import tempfile + import subprocess + + +def grab(bbox=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) + else: + size, data = grabber() + 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: + im = im.crop(bbox) + return im + + +def grabclipboard(): + if sys.platform == "darwin": + fh, filepath = tempfile.mkstemp('.jpg') + os.close(fh) + commands = [ + "set theFile to (open for access POSIX file \"" + + filepath + "\" with write permission)", + "try", + " write (the clipboard as JPEG picture) to theFile", + "end try", + "close access theFile" + ] + script = ["osascript"] + for command in commands: + script += ["-e", command] + subprocess.call(script) + + im = None + if os.stat(filepath).st_size != 0: + im = Image.open(filepath) + im.load() + os.unlink(filepath) + return im + else: + data = Image.core.grabclipboard() + if isinstance(data, bytes): + from . import BmpImagePlugin + import io + return BmpImagePlugin.DibImageFile(io.BytesIO(data)) + return data diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMath.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMath.py new file mode 100644 index 00000000..68247c29 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMath.py @@ -0,0 +1,271 @@ +# +# The Python Imaging Library +# $Id$ +# +# a simple math add-on for the Python Imaging Library +# +# History: +# 1999-02-15 fl Original PIL Plus release +# 2005-05-05 fl Simplified and cleaned up for PIL 1.1.6 +# 2005-09-12 fl Fixed int() and float() for Python 2.4.1 +# +# Copyright (c) 1999-2005 by Secret Labs AB +# Copyright (c) 2005 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image, _imagingmath +from ._util import py3 + +try: + import builtins +except ImportError: + import __builtin__ + builtins = __builtin__ + +VERBOSE = 0 + + +def _isconstant(v): + return isinstance(v, (int, float)) + + +class _Operand(object): + """Wraps an image operand, providing standard operators""" + + def __init__(self, im): + self.im = im + + def __fixup(self, im1): + # convert image to suitable mode + if isinstance(im1, _Operand): + # argument was an image. + if im1.im.mode in ("1", "L"): + return im1.im.convert("I") + elif im1.im.mode in ("I", "F"): + return im1.im + else: + raise ValueError("unsupported mode: %s" % im1.im.mode) + else: + # argument was a constant + if _isconstant(im1) and self.im.mode in ("1", "L", "I"): + return Image.new("I", self.im.size, im1) + else: + return Image.new("F", self.im.size, im1) + + def apply(self, op, im1, im2=None, mode=None): + im1 = self.__fixup(im1) + if im2 is None: + # unary operation + out = Image.new(mode or im1.mode, im1.size, None) + im1.load() + try: + op = getattr(_imagingmath, op+"_"+im1.mode) + except AttributeError: + raise TypeError("bad operand type for '%s'" % op) + _imagingmath.unop(op, out.im.id, im1.im.id) + else: + # binary operation + im2 = self.__fixup(im2) + if im1.mode != im2.mode: + # convert both arguments to floating point + if im1.mode != "F": + im1 = im1.convert("F") + if im2.mode != "F": + im2 = im2.convert("F") + if im1.mode != im2.mode: + raise ValueError("mode mismatch") + if im1.size != im2.size: + # crop both arguments to a common size + size = (min(im1.size[0], im2.size[0]), + min(im1.size[1], im2.size[1])) + if im1.size != size: + im1 = im1.crop((0, 0) + size) + if im2.size != size: + im2 = im2.crop((0, 0) + size) + out = Image.new(mode or im1.mode, size, None) + else: + out = Image.new(mode or im1.mode, im1.size, None) + im1.load() + im2.load() + try: + op = getattr(_imagingmath, op+"_"+im1.mode) + except AttributeError: + raise TypeError("bad operand type for '%s'" % op) + _imagingmath.binop(op, out.im.id, im1.im.id, im2.im.id) + return _Operand(out) + + # unary operators + def __bool__(self): + # 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) + + def __pos__(self): + return self + + def __neg__(self): + return self.apply("neg", self) + + # binary operators + def __add__(self, other): + return self.apply("add", self, other) + + def __radd__(self, other): + return self.apply("add", other, self) + + def __sub__(self, other): + return self.apply("sub", self, other) + + def __rsub__(self, other): + return self.apply("sub", other, self) + + def __mul__(self, other): + return self.apply("mul", self, other) + + def __rmul__(self, other): + return self.apply("mul", other, self) + + def __truediv__(self, other): + return self.apply("div", self, other) + + def __rtruediv__(self, other): + return self.apply("div", other, self) + + def __mod__(self, other): + return self.apply("mod", self, other) + + def __rmod__(self, other): + return self.apply("mod", other, self) + + def __pow__(self, other): + return self.apply("pow", self, other) + + 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) + + def __and__(self, other): + return self.apply("and", self, other) + + def __rand__(self, other): + return self.apply("and", other, self) + + def __or__(self, other): + return self.apply("or", self, other) + + def __ror__(self, other): + return self.apply("or", other, self) + + def __xor__(self, other): + return self.apply("xor", self, other) + + def __rxor__(self, other): + return self.apply("xor", other, self) + + def __lshift__(self, other): + return self.apply("lshift", self, other) + + def __rshift__(self, other): + return self.apply("rshift", self, other) + + # logical + def __eq__(self, other): + return self.apply("eq", self, other) + + def __ne__(self, other): + return self.apply("ne", self, other) + + def __lt__(self, other): + return self.apply("lt", self, other) + + def __le__(self, other): + return self.apply("le", self, other) + + def __gt__(self, other): + return self.apply("gt", self, other) + + def __ge__(self, other): + return self.apply("ge", self, other) + + +# conversions +def imagemath_int(self): + return _Operand(self.im.convert("I")) + + +def imagemath_float(self): + return _Operand(self.im.convert("F")) + + +# logical +def imagemath_equal(self, other): + return self.apply("eq", self, other, mode="I") + + +def imagemath_notequal(self, other): + return self.apply("ne", self, other, mode="I") + + +def imagemath_min(self, other): + return self.apply("min", self, other) + + +def imagemath_max(self, other): + return self.apply("max", self, other) + + +def imagemath_convert(self, mode): + return _Operand(self.im.convert(mode)) + + +ops = {} +for k, v in list(globals().items()): + if k[:10] == "imagemath_": + ops[k[10:]] = v + + +def eval(expression, _dict={}, **kw): + """ + Evaluates an image expression. + + :param expression: A string containing a Python-style expression. + :param options: Values to add to the evaluation context. You + can either use a dictionary, or one or more keyword + arguments. + :return: The evaluated expression. This is usually an image object, but can + also be an integer, a floating point value, or a pixel tuple, + depending on the expression. + """ + + # build execution namespace + args = ops.copy() + args.update(_dict) + args.update(kw) + for k, v in list(args.items()): + if hasattr(v, "im"): + args[k] = _Operand(v) + + out = builtins.eval(expression, args) + try: + return out.im + except AttributeError: + return out diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMode.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMode.py new file mode 100644 index 00000000..2b3377a1 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMode.py @@ -0,0 +1,56 @@ +# +# The Python Imaging Library. +# $Id$ +# +# standard mode descriptors +# +# History: +# 2006-03-20 fl Added +# +# Copyright (c) 2006 by Secret Labs AB. +# Copyright (c) 2006 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +# mode descriptor cache +_modes = None + + +class ModeDescriptor(object): + """Wrapper for mode strings.""" + + def __init__(self, mode, bands, basemode, basetype): + self.mode = mode + self.bands = bands + self.basemode = basemode + self.basetype = basetype + + def __str__(self): + return self.mode + + +def getmode(mode): + """Gets a mode descriptor for the given mode.""" + global _modes + if not _modes: + # initialize mode cache + + from . import Image + modes = {} + # core modes + for m, (basemode, basetype, bands) in Image._MODEINFO.items(): + modes[m] = ModeDescriptor(m, bands, basemode, basetype) + # extra experimental modes + modes["RGBa"] = ModeDescriptor("RGBa", + ("R", "G", "B", "a"), "RGB", "L") + modes["LA"] = ModeDescriptor("LA", ("L", "A"), "L", "L") + modes["La"] = ModeDescriptor("La", ("L", "a"), "L", "L") + modes["PA"] = ModeDescriptor("PA", ("P", "A"), "RGB", "L") + # mapping modes + modes["I;16"] = ModeDescriptor("I;16", "I", "L", "L") + modes["I;16L"] = ModeDescriptor("I;16L", "I", "L", "L") + modes["I;16B"] = ModeDescriptor("I;16B", "I", "L", "L") + # set global mode cache atomically + _modes = modes + return _modes[mode] diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMorph.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMorph.py new file mode 100644 index 00000000..54ceb790 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageMorph.py @@ -0,0 +1,245 @@ +# A binary morphology add-on for the Python Imaging Library +# +# History: +# 2014-06-04 Initial version. +# +# Copyright (c) 2014 Dov Grobgeld + +from __future__ import print_function + +from . import Image, _imagingmorph +import re + +LUT_SIZE = 1 << 9 + + +class LutBuilder(object): + """A class for building a MorphLut from a descriptive language + + The input patterns is a list of a strings sequences like these:: + + 4:(... + .1. + 111)->1 + + (whitespaces including linebreaks are ignored). The option 4 + describes a series of symmetry operations (in this case a + 4-rotation), the pattern is described by: + + - . or X - Ignore + - 1 - Pixel is on + - 0 - Pixel is off + + The result of the operation is described after "->" string. + + The default is to return the current pixel value, which is + returned if no other match is found. + + Operations: + + - 4 - 4 way rotation + - N - Negate + - 1 - Dummy op for no other operation (an op must always be given) + - M - Mirroring + + Example:: + + lb = LutBuilder(patterns = ["4:(... .1. 111)->1"]) + lut = lb.build_lut() + + """ + def __init__(self, patterns=None, op_name=None): + if patterns is not None: + self.patterns = patterns + else: + self.patterns = [] + self.lut = None + if op_name is not None: + known_patterns = { + 'corner': ['1:(... ... ...)->0', + '4:(00. 01. ...)->1'], + 'dilation4': ['4:(... .0. .1.)->1'], + 'dilation8': ['4:(... .0. .1.)->1', + '4:(... .0. ..1)->1'], + 'erosion4': ['4:(... .1. .0.)->0'], + 'erosion8': ['4:(... .1. .0.)->0', + '4:(... .1. ..0)->0'], + 'edge': ['1:(... ... ...)->0', + '4:(.0. .1. ...)->1', + '4:(01. .1. ...)->1'] + } + if op_name not in known_patterns: + raise Exception('Unknown pattern '+op_name+'!') + + self.patterns = known_patterns[op_name] + + def add_patterns(self, patterns): + self.patterns += patterns + + def build_default_lut(self): + symbols = [0, 1] + m = 1 << 4 # pos of current pixel + self.lut = bytearray(symbols[(i & m) > 0] for i in range(LUT_SIZE)) + + def get_lut(self): + return self.lut + + def _string_permute(self, pattern, permutation): + """string_permute takes a pattern and a permutation and returns the + string permuted according to the permutation list. + """ + assert(len(permutation) == 9) + return ''.join(pattern[p] for p in permutation) + + def _pattern_permute(self, basic_pattern, options, basic_result): + """pattern_permute takes a basic pattern and its result and clones + the pattern according to the modifications described in the $options + parameter. It returns a list of all cloned patterns.""" + patterns = [(basic_pattern, basic_result)] + + # rotations + if '4' in options: + res = patterns[-1][1] + for i in range(4): + patterns.append( + (self._string_permute(patterns[-1][0], [6, 3, 0, + 7, 4, 1, + 8, 5, 2]), res)) + # mirror + if 'M' in options: + n = len(patterns) + for pattern, res in patterns[0:n]: + patterns.append( + (self._string_permute(pattern, [2, 1, 0, + 5, 4, 3, + 8, 7, 6]), res)) + + # negate + if 'N' in options: + n = len(patterns) + for pattern, res in patterns[0:n]: + # Swap 0 and 1 + pattern = (pattern + .replace('0', 'Z') + .replace('1', '0') + .replace('Z', '1')) + res = 1-int(res) + patterns.append((pattern, res)) + + return patterns + + def build_lut(self): + """Compile all patterns into a morphology lut. + + TBD :Build based on (file) morphlut:modify_lut + """ + self.build_default_lut() + patterns = [] + + # Parse and create symmetries of the patterns strings + for p in self.patterns: + m = re.search( + r'(\w*):?\s*\((.+?)\)\s*->\s*(\d)', p.replace('\n', '')) + if not m: + raise Exception('Syntax error in pattern "'+p+'"') + options = m.group(1) + pattern = m.group(2) + result = int(m.group(3)) + + # Get rid of spaces + pattern = pattern.replace(' ', '').replace('\n', '') + + patterns += self._pattern_permute(pattern, options, result) + + # compile the patterns into regular expressions for speed + for i, pattern in enumerate(patterns): + p = pattern[0].replace('.', 'X').replace('X', '[01]') + p = re.compile(p) + patterns[i] = (p, pattern[1]) + + # Step through table and find patterns that match. + # Note that all the patterns are searched. The last one + # caught overrides + for i in range(LUT_SIZE): + # Build the bit pattern + bitpattern = bin(i)[2:] + bitpattern = ('0'*(9-len(bitpattern)) + bitpattern)[::-1] + + for p, r in patterns: + if p.match(bitpattern): + self.lut[i] = [0, 1][r] + + return self.lut + + +class MorphOp(object): + """A class for binary morphological operators""" + + def __init__(self, + lut=None, + op_name=None, + patterns=None): + """Create a binary morphological operator""" + self.lut = lut + if op_name is not None: + self.lut = LutBuilder(op_name=op_name).build_lut() + elif patterns is not None: + self.lut = LutBuilder(patterns=patterns).build_lut() + + def apply(self, image): + """Run a single morphological operation on an image + + Returns a tuple of the number of changed pixels and the + morphed image""" + if self.lut is None: + raise Exception('No operator loaded') + + if image.mode != 'L': + raise Exception('Image must be binary, meaning it must use mode L') + outimage = Image.new(image.mode, image.size, None) + count = _imagingmorph.apply( + bytes(self.lut), image.im.id, outimage.im.id) + return count, outimage + + def match(self, image): + """Get a list of coordinates matching the morphological operation on + an image. + + Returns a list of tuples of (x,y) coordinates + of all matching pixels. See :ref:`coordinate-system`.""" + if self.lut is None: + raise Exception('No operator loaded') + + if image.mode != 'L': + raise Exception('Image must be binary, meaning it must use mode L') + return _imagingmorph.match(bytes(self.lut), image.im.id) + + def get_on_pixels(self, image): + """Get a list of all turned on pixels in a binary image + + Returns a list of tuples of (x,y) coordinates + of all matching pixels. See :ref:`coordinate-system`.""" + + if image.mode != 'L': + raise Exception('Image must be binary, meaning it must use mode L') + return _imagingmorph.get_on_pixels(image.im.id) + + def load_lut(self, filename): + """Load an operator from an mrl file""" + with open(filename, 'rb') as f: + self.lut = bytearray(f.read()) + + if len(self.lut) != LUT_SIZE: + self.lut = None + raise Exception('Wrong size operator file!') + + def save_lut(self, filename): + """Save an operator to an mrl file""" + if self.lut is None: + raise Exception('No operator loaded') + with open(filename, 'wb') as f: + f.write(self.lut) + + def set_lut(self, lut): + """Set the lut from an external source""" + self.lut = lut diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageOps.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageOps.py new file mode 100644 index 00000000..ab6a3d2c --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageOps.py @@ -0,0 +1,551 @@ +# +# The Python Imaging Library. +# $Id$ +# +# standard image operations +# +# History: +# 2001-10-20 fl Created +# 2001-10-23 fl Added autocontrast operator +# 2001-12-18 fl Added Kevin's fit operator +# 2004-03-14 fl Fixed potential division by zero in equalize +# 2005-05-05 fl Fixed equalize for low number of values +# +# Copyright (c) 2001-2004 by Secret Labs AB +# Copyright (c) 2001-2004 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image +from ._util import isStringType +import operator +import functools + + +# +# helpers + +def _border(border): + if isinstance(border, tuple): + if len(border) == 2: + left, top = right, bottom = border + elif len(border) == 4: + left, top, right, bottom = border + else: + left = top = right = bottom = border + return left, top, right, bottom + + +def _color(color, mode): + if isStringType(color): + from . import ImageColor + color = ImageColor.getcolor(color, mode) + return color + + +def _lut(image, lut): + if image.mode == "P": + # FIXME: apply to lookup table, not image data + raise NotImplementedError("mode P support coming soon") + elif image.mode in ("L", "RGB"): + if image.mode == "RGB" and len(lut) == 256: + lut = lut + lut + lut + return image.point(lut) + else: + raise IOError("not supported for this image mode") + +# +# actions + + +def autocontrast(image, cutoff=0, ignore=None): + """ + Maximize (normalize) image contrast. This function calculates a + histogram of the input image, removes **cutoff** percent of the + lightest and darkest pixels from the histogram, and remaps the image + so that the darkest pixel becomes black (0), and the lightest + becomes white (255). + + :param image: The image to process. + :param cutoff: How many percent to cut off from the histogram. + :param ignore: The background pixel value (use None for no background). + :return: An image. + """ + histogram = image.histogram() + lut = [] + for layer in range(0, len(histogram), 256): + h = histogram[layer:layer+256] + if ignore is not None: + # get rid of outliers + try: + h[ignore] = 0 + except TypeError: + # assume sequence + for ix in ignore: + h[ix] = 0 + if cutoff: + # cut off pixels from both ends of the histogram + # get number of pixels + n = 0 + for ix in range(256): + n = n + h[ix] + # remove cutoff% pixels from the low end + cut = n * cutoff // 100 + for lo in range(256): + if cut > h[lo]: + cut = cut - h[lo] + h[lo] = 0 + else: + h[lo] -= cut + cut = 0 + if cut <= 0: + break + # remove cutoff% samples from the hi end + cut = n * cutoff // 100 + for hi in range(255, -1, -1): + if cut > h[hi]: + cut = cut - h[hi] + h[hi] = 0 + else: + h[hi] -= cut + cut = 0 + if cut <= 0: + break + # find lowest/highest samples after preprocessing + for lo in range(256): + if h[lo]: + break + for hi in range(255, -1, -1): + if h[hi]: + break + if hi <= lo: + # don't bother + lut.extend(list(range(256))) + else: + scale = 255.0 / (hi - lo) + offset = -lo * scale + for ix in range(256): + ix = int(ix * scale + offset) + if ix < 0: + ix = 0 + elif ix > 255: + ix = 255 + lut.append(ix) + return _lut(image, lut) + + +def colorize(image, black, white, mid=None, blackpoint=0, + whitepoint=255, midpoint=127): + """ + Colorize grayscale image. + This function calculates a color wedge which maps all black pixels in + the source image to the first color and all white pixels to the + second color. If **mid** is specified, it uses three-color mapping. + The **black** and **white** arguments should be RGB tuples or color names; + optionally you can use three-color mapping by also specifying **mid**. + Mapping positions for any of the colors can be specified + (e.g. **blackpoint**), where these parameters are the integer + value corresponding to where the corresponding color should be mapped. + These parameters must have logical order, such that + **blackpoint** <= **midpoint** <= **whitepoint** (if **mid** is specified). + + :param image: The image to colorize. + :param black: The color to use for black input pixels. + :param white: The color to use for white input pixels. + :param mid: The color to use for midtone input pixels. + :param blackpoint: an int value [0, 255] for the black mapping. + :param whitepoint: an int value [0, 255] for the white mapping. + :param midpoint: an int value [0, 255] for the midtone mapping. + :return: An image. + """ + + # Initial asserts + assert image.mode == "L" + if mid is None: + assert 0 <= blackpoint <= whitepoint <= 255 + else: + assert 0 <= blackpoint <= midpoint <= whitepoint <= 255 + + # Define colors from arguments + black = _color(black, "RGB") + white = _color(white, "RGB") + if mid is not None: + mid = _color(mid, "RGB") + + # Empty lists for the mapping + red = [] + green = [] + blue = [] + + # Create the low-end values + for i in range(0, blackpoint): + red.append(black[0]) + green.append(black[1]) + blue.append(black[2]) + + # Create the mapping (2-color) + if mid is None: + + range_map = range(0, whitepoint - blackpoint) + + for i in range_map: + red.append(black[0] + i * (white[0] - black[0]) // len(range_map)) + green.append(black[1] + i * (white[1] - black[1]) // len(range_map)) + blue.append(black[2] + i * (white[2] - black[2]) // len(range_map)) + + # Create the mapping (3-color) + else: + + range_map1 = range(0, midpoint - blackpoint) + range_map2 = range(0, whitepoint - midpoint) + + for i in range_map1: + red.append(black[0] + i * (mid[0] - black[0]) // len(range_map1)) + green.append(black[1] + i * (mid[1] - black[1]) // len(range_map1)) + blue.append(black[2] + i * (mid[2] - black[2]) // len(range_map1)) + for i in range_map2: + red.append(mid[0] + i * (white[0] - mid[0]) // len(range_map2)) + green.append(mid[1] + i * (white[1] - mid[1]) // len(range_map2)) + blue.append(mid[2] + i * (white[2] - mid[2]) // len(range_map2)) + + # Create the high-end values + for i in range(0, 256 - whitepoint): + red.append(white[0]) + green.append(white[1]) + blue.append(white[2]) + + # Return converted image + image = image.convert("RGB") + return _lut(image, red + green + blue) + + +def pad(image, size, method=Image.NEAREST, 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. + + :param image: The image to size and crop. + :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`. + :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 + right + :return: An image. + """ + + im_ratio = image.width / image.height + dest_ratio = float(size[0]) / size[1] + + if im_ratio == dest_ratio: + out = image.resize(size, resample=method) + else: + out = Image.new(image.mode, size, color) + if im_ratio > dest_ratio: + new_height = int(image.height / image.width * size[0]) + if new_height != size[1]: + image = image.resize((size[0], new_height), resample=method) + + y = int((size[1] - new_height) * max(0, min(centering[1], 1))) + out.paste(image, (0, y)) + else: + new_width = int(image.width / image.height * size[1]) + if new_width != size[0]: + image = image.resize((new_width, size[1]), resample=method) + + x = int((size[0] - new_width) * max(0, min(centering[0], 1))) + out.paste(image, (x, 0)) + return out + + +def crop(image, border=0): + """ + Remove border from image. The same amount of pixels are removed + from all four sides. This function works on all image modes. + + .. seealso:: :py:meth:`~PIL.Image.Image.crop` + + :param image: The image to crop. + :param border: The number of pixels to remove. + :return: An image. + """ + left, top, right, bottom = _border(border) + return image.crop( + (left, top, image.size[0]-right, image.size[1]-bottom) + ) + + +def scale(image, factor, resample=Image.NEAREST): + """ + 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 + image. + + :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. + :returns: An :py:class:`~PIL.Image.Image` object. + """ + if factor == 1: + return image.copy() + elif factor <= 0: + raise ValueError("the factor must be greater than 0") + else: + size = (int(round(factor * image.width)), + int(round(factor * image.height))) + return image.resize(size, resample) + + +def deform(image, deformer, resample=Image.BILINEAR): + """ + Deform the image. + + :param image: The image to deform. + :param deformer: A deformer object. Any object that implements a + **getmesh** method can be used. + :param resample: An optional resampling filter. Same values possible as + in the PIL.Image.transform function. + :return: An image. + """ + return image.transform( + image.size, Image.MESH, deformer.getmesh(image), resample + ) + + +def equalize(image, mask=None): + """ + Equalize the image histogram. This function applies a non-linear + mapping to the input image, in order to create a uniform + distribution of grayscale values in the output image. + + :param image: The image to equalize. + :param mask: An optional mask. If given, only the pixels selected by + the mask are included in the analysis. + :return: An image. + """ + if image.mode == "P": + image = image.convert("RGB") + h = image.histogram(mask) + lut = [] + for b in range(0, len(h), 256): + histo = [_f for _f in h[b:b+256] if _f] + if len(histo) <= 1: + lut.extend(list(range(256))) + else: + step = (functools.reduce(operator.add, histo) - histo[-1]) // 255 + if not step: + lut.extend(list(range(256))) + else: + n = step // 2 + for i in range(256): + lut.append(n // step) + n = n + h[i+b] + return _lut(image, lut) + + +def expand(image, border=0, fill=0): + """ + Add border to the image + + :param image: The image to expand. + :param border: Border width, in pixels. + :param fill: Pixel fill value (a color value). Default is 0 (black). + :return: An image. + """ + left, top, right, bottom = _border(border) + width = left + image.size[0] + right + height = top + image.size[1] + bottom + out = Image.new(image.mode, (width, height), _color(fill, image.mode)) + out.paste(image, (left, top)) + return out + + +def fit(image, size, method=Image.NEAREST, 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. + + This function was contributed by Kevin Cazabon. + + :param image: The image to size and crop. + :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`. + :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). + Cannot be greater than or equal to 0.5. + :param centering: Control the cropping position. Use (0.5, 0.5) for + center cropping (e.g. if cropping the width, take 50% off + of the left side, and therefore 50% off the right side). + (0.0, 0.0) will crop from the top left corner (i.e. if + cropping the width, take all of the crop off of the right + side, and if cropping the height, take all of it off the + bottom). (1.0, 0.0) will crop from the bottom left + corner, etc. (i.e. if cropping the width, take all of the + crop off the left side, and if cropping the height take + none from the top, and therefore all off the bottom). + :return: An image. + """ + + # by Kevin Cazabon, Feb 17/2000 + # kevin@cazabon.com + # http://www.cazabon.com + + # ensure centering is mutable + centering = list(centering) + + if not 0.0 <= centering[0] <= 1.0: + centering[0] = 0.5 + if not 0.0 <= centering[1] <= 1.0: + centering[1] = 0.5 + + if not 0.0 <= bleed < 0.5: + bleed = 0.0 + + # calculate the area to use for resizing and cropping, subtracting + # the 'bleed' around the edges + + # number of pixels to trim off on Top and Bottom, Left and Right + bleed_pixels = (bleed * image.size[0], bleed * image.size[1]) + + live_size = (image.size[0] - bleed_pixels[0] * 2, + image.size[1] - bleed_pixels[1] * 2) + + # calculate the aspect ratio of the live_size + live_size_ratio = float(live_size[0]) / live_size[1] + + # calculate the aspect ratio of the output image + output_ratio = float(size[0]) / size[1] + + # figure out if the sides or top/bottom will be cropped off + if live_size_ratio >= output_ratio: + # live_size is wider than what's needed, crop the sides + crop_width = output_ratio * live_size[1] + crop_height = live_size[1] + else: + # live_size is taller than what's needed, crop the top and bottom + crop_width = live_size[0] + crop_height = live_size[0] / output_ratio + + # make the crop + crop_left = bleed_pixels[0] + (live_size[0]-crop_width) * centering[0] + crop_top = bleed_pixels[1] + (live_size[1]-crop_height) * centering[1] + + crop = ( + crop_left, crop_top, + crop_left + crop_width, crop_top + crop_height + ) + + # resize the image and return it + return image.resize(size, method, box=crop) + + +def flip(image): + """ + Flip the image vertically (top to bottom). + + :param image: The image to flip. + :return: An image. + """ + return image.transpose(Image.FLIP_TOP_BOTTOM) + + +def grayscale(image): + """ + Convert the image to grayscale. + + :param image: The image to convert. + :return: An image. + """ + return image.convert("L") + + +def invert(image): + """ + Invert (negate) the image. + + :param image: The image to invert. + :return: An image. + """ + lut = [] + for i in range(256): + lut.append(255-i) + return _lut(image, lut) + + +def mirror(image): + """ + Flip image horizontally (left to right). + + :param image: The image to mirror. + :return: An image. + """ + return image.transpose(Image.FLIP_LEFT_RIGHT) + + +def posterize(image, bits): + """ + Reduce the number of bits for each color channel. + + :param image: The image to posterize. + :param bits: The number of bits to keep for each channel (1-8). + :return: An image. + """ + lut = [] + mask = ~(2**(8-bits)-1) + for i in range(256): + lut.append(i & mask) + return _lut(image, lut) + + +def solarize(image, threshold=128): + """ + Invert all pixel values above a threshold. + + :param image: The image to solarize. + :param threshold: All pixels above this greyscale level are inverted. + :return: An image. + """ + lut = [] + for i in range(256): + if i < threshold: + lut.append(i) + else: + lut.append(255-i) + return _lut(image, lut) + + +def exif_transpose(image): + """ + If an image has an EXIF Orientation tag, return a new image that is + transposed accordingly. Otherwise, return a copy of the image. + + :param image: The image to transpose. + :return: An image. + """ + exif = image.getexif() + orientation = exif.get(0x0112) + method = { + 2: Image.FLIP_LEFT_RIGHT, + 3: Image.ROTATE_180, + 4: Image.FLIP_TOP_BOTTOM, + 5: Image.TRANSPOSE, + 6: Image.ROTATE_270, + 7: Image.TRANSVERSE, + 8: Image.ROTATE_90 + }.get(orientation) + if method is not None: + transposed_image = image.transpose(method) + del exif[0x0112] + transposed_image.info["exif"] = exif.tobytes() + return transposed_image + return image.copy() diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImagePalette.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImagePalette.py new file mode 100644 index 00000000..81e99abb --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImagePalette.py @@ -0,0 +1,216 @@ +# +# The Python Imaging Library. +# $Id$ +# +# image palette object +# +# History: +# 1996-03-11 fl Rewritten. +# 1997-01-03 fl Up and running. +# 1997-08-23 fl Added load hack +# 2001-04-16 fl Fixed randint shadow bug in random() +# +# Copyright (c) 1997-2001 by Secret Labs AB +# Copyright (c) 1996-1997 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +import array +from . import ImageColor, GimpPaletteFile, GimpGradientFile, PaletteFile + + +class ImagePalette(object): + """ + Color palette for palette mapped images + + :param mode: The mode to use for the Palette. See: + :ref:`concept-modes`. Defaults to "RGB" + :param palette: An optional palette. If given, it must be a bytearray, + an array or a list of ints between 0-255 and of length ``size`` + times the number of colors in ``mode``. The list must be aligned + by channel (All R values must be contiguous in the list before G + and B values.) Defaults to 0 through 255 per channel. + :param size: An optional palette size. If given, it cannot be equal to + or greater than 256. Defaults to 0. + """ + + def __init__(self, mode="RGB", palette=None, size=0): + self.mode = mode + self.rawmode = None # if set, palette contains raw data + self.palette = palette or bytearray(range(256))*len(self.mode) + self.colors = {} + self.dirty = None + if ((size == 0 and len(self.mode)*256 != len(self.palette)) or + (size != 0 and size != len(self.palette))): + raise ValueError("wrong palette size") + + def copy(self): + new = ImagePalette() + + new.mode = self.mode + new.rawmode = self.rawmode + if self.palette is not None: + new.palette = self.palette[:] + new.colors = self.colors.copy() + new.dirty = self.dirty + + return new + + def getdata(self): + """ + Get palette contents in format suitable for the low-level + ``im.putpalette`` primitive. + + .. warning:: This method is experimental. + """ + if self.rawmode: + return self.rawmode, self.palette + return self.mode + ";L", self.tobytes() + + def tobytes(self): + """Convert palette to bytes. + + .. warning:: This method is experimental. + """ + if self.rawmode: + raise ValueError("palette contains raw palette data") + if isinstance(self.palette, bytes): + return self.palette + arr = array.array("B", self.palette) + if hasattr(arr, 'tobytes'): + return arr.tobytes() + return arr.tostring() + + # Declare tostring as an alias for tobytes + tostring = tobytes + + def getcolor(self, color): + """Given an rgb tuple, allocate palette entry. + + .. warning:: This method is experimental. + """ + if self.rawmode: + raise ValueError("palette contains raw palette data") + if isinstance(color, tuple): + try: + return self.colors[color] + except KeyError: + # allocate new color slot + if isinstance(self.palette, bytes): + self.palette = bytearray(self.palette) + index = len(self.colors) + if index >= 256: + raise ValueError("cannot allocate more than 256 colors") + self.colors[color] = index + self.palette[index] = color[0] + self.palette[index+256] = color[1] + self.palette[index+512] = color[2] + self.dirty = 1 + return index + else: + raise ValueError("unknown color specifier: %r" % color) + + def save(self, fp): + """Save palette to text file. + + .. warning:: This method is experimental. + """ + if self.rawmode: + raise ValueError("palette contains raw palette data") + if isinstance(fp, str): + fp = open(fp, "w") + fp.write("# Palette\n") + fp.write("# Mode: %s\n" % self.mode) + for i in range(256): + fp.write("%d" % i) + for j in range(i*len(self.mode), (i+1)*len(self.mode)): + try: + fp.write(" %d" % self.palette[j]) + except IndexError: + fp.write(" 0") + fp.write("\n") + fp.close() + + +# -------------------------------------------------------------------- +# Internal + +def raw(rawmode, data): + palette = ImagePalette() + palette.rawmode = rawmode + palette.palette = data + palette.dirty = 1 + return palette + + +# -------------------------------------------------------------------- +# Factories + +def make_linear_lut(black, white): + lut = [] + if black == 0: + for i in range(256): + lut.append(white*i//255) + else: + raise NotImplementedError # FIXME + return lut + + +def make_gamma_lut(exp): + lut = [] + for i in range(256): + lut.append(int(((i / 255.0) ** exp) * 255.0 + 0.5)) + return lut + + +def negative(mode="RGB"): + palette = list(range(256)) + palette.reverse() + return ImagePalette(mode, palette * len(mode)) + + +def random(mode="RGB"): + from random import randint + palette = [] + for i in range(256*len(mode)): + palette.append(randint(0, 255)) + return ImagePalette(mode, palette) + + +def sepia(white="#fff0c0"): + r, g, b = ImageColor.getrgb(white) + r = make_linear_lut(0, r) + g = make_linear_lut(0, g) + b = make_linear_lut(0, b) + return ImagePalette("RGB", r + g + b) + + +def wedge(mode="RGB"): + return ImagePalette(mode, list(range(256)) * len(mode)) + + +def load(filename): + + # FIXME: supports GIMP gradients only + + with open(filename, "rb") as fp: + + for paletteHandler in [ + GimpPaletteFile.GimpPaletteFile, + GimpGradientFile.GimpGradientFile, + PaletteFile.PaletteFile + ]: + try: + fp.seek(0) + lut = paletteHandler(fp).getpalette() + if lut: + break + except (SyntaxError, ValueError): + # import traceback + # traceback.print_exc() + pass + else: + raise IOError("cannot load palette") + + return lut # data, rawmode diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImagePath.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImagePath.py new file mode 100644 index 00000000..8cbfec0d --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImagePath.py @@ -0,0 +1,20 @@ +# +# The Python Imaging Library +# $Id$ +# +# path interface +# +# History: +# 1996-11-04 fl Created +# 2002-04-14 fl Added documentation stub class +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1996. +# +# See the README file for information on usage and redistribution. +# + +from . import Image + + +Path = Image.core.path diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageQt.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageQt.py new file mode 100644 index 00000000..02ce6354 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageQt.py @@ -0,0 +1,229 @@ +# +# The Python Imaging Library. +# $Id$ +# +# a simple Qt image interface. +# +# history: +# 2006-06-03 fl: created +# 2006-06-04 fl: inherit from QImage instead of wrapping it +# 2006-06-05 fl: removed toimage helper; move string support to ImageQt +# 2013-11-13 fl: add support for Qt5 (aurelien.ballier@cyclonit.com) +# +# Copyright (c) 2006 by Secret Labs AB +# Copyright (c) 2006 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image +from ._util import isPath, py3 +from io import BytesIO +import sys +import warnings + +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." +) + +# 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) +for qt_version, qt_module in qt_versions: + try: + if qt_module == 'PyQt5': + from PyQt5.QtGui import QImage, qRgba, QPixmap + from PyQt5.QtCore import QBuffer, QIODevice + 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 + break +else: + qt_is_installed = False + qt_version = None + + +def rgb(r, g, b, a=255): + """(Internal) Turns an RGB color into a Qt compatible color integer.""" + # use qRgb to pack the colors, and then turn the resulting long + # into a negative integer with the same bitpattern. + return (qRgba(r, g, b, a) & 0xffffffff) + + +def fromqimage(im): + """ + :param im: A PIL Image object, or a file name + (given either as Python string or a PyQt string object) + """ + buffer = QBuffer() + buffer.open(QIODevice.ReadWrite) + # preserve alpha channel with png + # otherwise ppm is more friendly with Image.open + if im.hasAlphaChannel(): + im.save(buffer, 'png') + else: + im.save(buffer, 'ppm') + + b = BytesIO() + try: + b.write(buffer.data()) + except TypeError: + # workaround for Python 2 + b.write(str(buffer.data())) + buffer.close() + b.seek(0) + + return Image.open(b) + + +def fromqpixmap(im): + return fromqimage(im) + # buffer = QBuffer() + # buffer.open(QIODevice.ReadWrite) + # # im.save(buffer) + # # What if png doesn't support some image features like animation? + # im.save(buffer, 'ppm') + # bytes_io = BytesIO() + # bytes_io.write(buffer.data()) + # buffer.close() + # bytes_io.seek(0) + # return Image.open(bytes_io) + + +def align8to32(bytes, width, mode): + """ + converts each scanline of data from 8 bit to 32 bit aligned + """ + + bits_per_pixel = { + '1': 1, + 'L': 8, + 'P': 8, + }[mode] + + # calculate bytes per line and the extra padding if needed + bits_per_line = bits_per_pixel * width + full_bytes_per_line, remaining_bits_per_line = divmod(bits_per_line, 8) + bytes_per_line = full_bytes_per_line + (1 if remaining_bits_per_line else 0) + + extra_padding = -bytes_per_line % 4 + + # already 32 bit aligned by luck + if not extra_padding: + return bytes + + new_data = [] + for i in range(len(bytes) // bytes_per_line): + new_data.append(bytes[i*bytes_per_line:(i+1)*bytes_per_line] + + b'\x00' * extra_padding) + + return b''.join(new_data) + + +def _toqclass_helper(im): + data = None + colortable = None + + # 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 + if isPath(im): + im = Image.open(im) + + if im.mode == "1": + format = QImage.Format_Mono + elif im.mode == "L": + format = QImage.Format_Indexed8 + colortable = [] + for i in range(256): + colortable.append(rgb(i, i, i)) + elif im.mode == "P": + format = QImage.Format_Indexed8 + colortable = [] + palette = im.getpalette() + for i in range(0, len(palette), 3): + colortable.append(rgb(*palette[i:i+3])) + elif im.mode == "RGB": + data = im.tobytes("raw", "BGRX") + format = QImage.Format_RGB32 + elif im.mode == "RGBA": + try: + data = im.tobytes("raw", "BGRA") + except SystemError: + # workaround for earlier versions + r, g, b, a = im.split() + im = Image.merge("RGBA", (b, g, r, a)) + format = QImage.Format_ARGB32 + else: + raise ValueError("unsupported image mode %r" % im.mode) + + __data = data or align8to32(im.tobytes(), im.size[0], im.mode) + return { + 'data': __data, 'im': im, 'format': format, 'colortable': colortable + } + + +if qt_is_installed: + class ImageQt(QImage): + + def __init__(self, im): + """ + An PIL image wrapper for Qt. This is a subclass of PyQt's QImage + class. + + :param im: A PIL Image object, or a file name (given either as + Python string or a PyQt string object). + """ + im_data = _toqclass_helper(im) + # must keep a reference, or Qt will crash! + # All QImage constructors that take data operate on an existing + # 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, + self.__data, im_data['im'].size[0], + im_data['im'].size[1], im_data['format']) + if im_data['colortable']: + self.setColorTable(im_data['colortable']) + + +def toqimage(im): + return ImageQt(im) + + +def toqpixmap(im): + # # This doesn't work. For now using a dumb approach. + # im_data = _toqclass_helper(im) + # result = QPixmap(im_data['im'].size[0], im_data['im'].size[1]) + # result.loadFromData(im_data['data']) + # Fix some strange bug that causes + if im.mode == 'RGB': + im = im.convert('RGBA') + + qimage = toqimage(im) + return QPixmap.fromImage(qimage) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageSequence.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageSequence.py new file mode 100644 index 00000000..1fc6e5de --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageSequence.py @@ -0,0 +1,56 @@ +# +# The Python Imaging Library. +# $Id$ +# +# sequence support classes +# +# history: +# 1997-02-20 fl Created +# +# Copyright (c) 1997 by Secret Labs AB. +# Copyright (c) 1997 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +## + + +class Iterator(object): + """ + This class implements an iterator object that can be used to loop + over an image sequence. + + You can use the ``[]`` operator to access elements by index. This operator + will raise an :py:exc:`IndexError` if you try to access a nonexistent + frame. + + :param im: An image object. + """ + + def __init__(self, im): + if not hasattr(im, "seek"): + raise AttributeError("im must have seek method") + self.im = im + self.position = 0 + + def __getitem__(self, ix): + try: + self.im.seek(ix) + return self.im + except EOFError: + raise IndexError # end of sequence + + def __iter__(self): + return self + + def __next__(self): + try: + self.im.seek(self.position) + self.position += 1 + return self.im + except EOFError: + raise StopIteration + + def next(self): + return self.__next__() diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageShow.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageShow.py new file mode 100644 index 00000000..bbd841db --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageShow.py @@ -0,0 +1,223 @@ +# +# The Python Imaging Library. +# $Id$ +# +# im.show() drivers +# +# History: +# 2008-04-06 fl Created +# +# Copyright (c) Secret Labs AB 2008. +# +# See the README file for information on usage and redistribution. +# + +from __future__ import print_function + +from PIL import Image +import os +import sys +import subprocess +import tempfile + +if sys.version_info.major >= 3: + from shlex import quote +else: + from pipes import quote + +_viewers = [] + + +def register(viewer, order=1): + try: + if issubclass(viewer, Viewer): + viewer = viewer() + except TypeError: + pass # raised if viewer wasn't a class + if order > 0: + _viewers.append(viewer) + elif order < 0: + _viewers.insert(0, viewer) + + +def show(image, title=None, **options): + r""" + Display a given image. + + :param image: An image object. + :param title: Optional title. Not all viewers can display the title. + :param \**options: Additional viewer options. + :returns: True if a suitable viewer was found, false otherwise. + """ + for viewer in _viewers: + if viewer.show(image, title=title, **options): + return 1 + return 0 + + +class Viewer(object): + """Base class for viewers.""" + + # main api + + def show(self, image, **options): + + # save temporary image to disk + if image.mode[:4] == "I;16": + # @PIL88 @PIL101 + # "I;16" isn't an 'official' mode, but we still want to + # provide a simple way to show 16-bit images. + base = "L" + # FIXME: auto-contrast if max() > 255? + else: + base = Image.getmodebase(image.mode) + if base != image.mode and image.mode != "1" and image.mode != "RGBA": + image = image.convert(base) + + return self.show_image(image, **options) + + # hook methods + + format = None + options = {} + + def get_format(self, image): + """Return format name, or None to save as PGM/PPM""" + return self.format + + def get_command(self, file, **options): + raise NotImplementedError + + def save_image(self, image): + """Save to temporary file, and return filename""" + return image._dump(format=self.get_format(image), **self.options) + + def show_image(self, image, **options): + """Display given image""" + return self.show_file(self.save_image(image), **options) + + def show_file(self, file, **options): + """Display given file""" + os.system(self.get_command(file, **options)) + return 1 + +# -------------------------------------------------------------------- + + +if sys.platform == "win32": + + class WindowsViewer(Viewer): + format = "BMP" + + def get_command(self, file, **options): + return ('start "Pillow" /WAIT "%s" ' + '&& ping -n 2 127.0.0.1 >NUL ' + '&& del /f "%s"' % (file, file)) + + register(WindowsViewer) + +elif sys.platform == "darwin": + + class MacViewer(Viewer): + format = "PNG" + options = {'compress_level': 1} + + def get_command(self, file, **options): + # on darwin open returns immediately resulting in the temp + # file removal while app is opening + command = "open -a /Applications/Preview.app" + command = "(%s %s; sleep 20; rm -f %s)&" % (command, quote(file), + quote(file)) + return command + + def show_file(self, file, **options): + """Display given file""" + fd, path = tempfile.mkstemp() + with os.fdopen(fd, 'w') as f: + f.write(file) + with open(path, "r") as f: + subprocess.Popen([ + 'im=$(cat);' + 'open -a /Applications/Preview.app $im;' + 'sleep 20;' + 'rm -f $im' + ], shell=True, stdin=f) + os.remove(path) + return 1 + + register(MacViewer) + +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)) + + def show_file(self, file, **options): + """Display given file""" + fd, path = tempfile.mkstemp() + with os.fdopen(fd, 'w') as f: + f.write(file) + with open(path, "r") as f: + command = self.get_command_ex(file, **options)[0] + subprocess.Popen([ + 'im=$(cat);' + + command+' $im;' + 'rm -f $im' + ], shell=True, stdin=f) + os.remove(path) + return 1 + + # implementations + + class DisplayViewer(UnixViewer): + def get_command_ex(self, file, **options): + command = executable = "display" + return command, executable + + if which("display"): + register(DisplayViewer) + + class EogViewer(UnixViewer): + def get_command_ex(self, file, **options): + command = executable = "eog" + return command, executable + + if which("eog"): + register(EogViewer) + + class XVViewer(UnixViewer): + def get_command_ex(self, file, title=None, **options): + # note: xv is pretty outdated. most modern systems have + # imagemagick's display command instead. + command = executable = "xv" + if title: + command += " -name %s" % quote(title) + return command, executable + + if which("xv"): + register(XVViewer) + +if __name__ == "__main__": + + if len(sys.argv) < 2: + print("Syntax: python ImageShow.py imagefile [title]") + sys.exit() + + print(show(Image.open(sys.argv[1]), *sys.argv[2:])) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageStat.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageStat.py new file mode 100644 index 00000000..c926a741 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageStat.py @@ -0,0 +1,148 @@ +# +# The Python Imaging Library. +# $Id$ +# +# global image statistics +# +# History: +# 1996-04-05 fl Created +# 1997-05-21 fl Added mask; added rms, var, stddev attributes +# 1997-08-05 fl Added median +# 1998-07-05 hk Fixed integer overflow error +# +# Notes: +# This class shows how to implement delayed evaluation of attributes. +# To get a certain value, simply access the corresponding attribute. +# The __getattr__ dispatcher takes care of the rest. +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1996-97. +# +# See the README file for information on usage and redistribution. +# + +import math +import operator +import functools + + +class Stat(object): + + def __init__(self, image_or_list, mask=None): + try: + if mask: + self.h = image_or_list.histogram(mask) + else: + self.h = image_or_list.histogram() + except AttributeError: + self.h = image_or_list # assume it to be a histogram list + if not isinstance(self.h, list): + raise TypeError("first argument must be image or list") + self.bands = list(range(len(self.h) // 256)) + + def __getattr__(self, id): + """Calculate missing attribute""" + if id[:4] == "_get": + raise AttributeError(id) + # calculate missing attribute + v = getattr(self, "_get" + id)() + setattr(self, id, v) + return v + + def _getextrema(self): + """Get min/max values for each band in the image""" + + def minmax(histogram): + n = 255 + x = 0 + for i in range(256): + if histogram[i]: + n = min(n, i) + x = max(x, i) + return n, x # returns (255, 0) if there's no data in the histogram + + v = [] + for i in range(0, len(self.h), 256): + v.append(minmax(self.h[i:])) + return v + + def _getcount(self): + """Get total number of pixels in each layer""" + + v = [] + for i in range(0, len(self.h), 256): + v.append(functools.reduce(operator.add, self.h[i:i+256])) + return v + + def _getsum(self): + """Get sum of all pixels in each layer""" + + v = [] + for i in range(0, len(self.h), 256): + layerSum = 0.0 + for j in range(256): + layerSum += j * self.h[i + j] + v.append(layerSum) + return v + + def _getsum2(self): + """Get squared sum of all pixels in each layer""" + + v = [] + for i in range(0, len(self.h), 256): + sum2 = 0.0 + for j in range(256): + sum2 += (j ** 2) * float(self.h[i + j]) + v.append(sum2) + return v + + def _getmean(self): + """Get average pixel level for each layer""" + + v = [] + for i in self.bands: + v.append(self.sum[i] / self.count[i]) + return v + + def _getmedian(self): + """Get median pixel level for each layer""" + + v = [] + for i in self.bands: + s = 0 + half = self.count[i]//2 + b = i * 256 + for j in range(256): + s = s + self.h[b+j] + if s > half: + break + v.append(j) + return v + + def _getrms(self): + """Get RMS for each layer""" + + v = [] + for i in self.bands: + v.append(math.sqrt(self.sum2[i] / self.count[i])) + return v + + def _getvar(self): + """Get variance for each layer""" + + v = [] + for i in self.bands: + n = self.count[i] + v.append((self.sum2[i]-(self.sum[i]**2.0)/n)/n) + return v + + def _getstddev(self): + """Get standard deviation for each layer""" + + v = [] + for i in self.bands: + v.append(math.sqrt(self.var[i])) + return v + + +Global = Stat # compatibility diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageTk.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageTk.py new file mode 100644 index 00000000..cc0c5294 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageTk.py @@ -0,0 +1,301 @@ +# +# The Python Imaging Library. +# $Id$ +# +# a Tk display interface +# +# History: +# 96-04-08 fl Created +# 96-09-06 fl Added getimage method +# 96-11-01 fl Rewritten, removed image attribute and crop method +# 97-05-09 fl Use PyImagingPaste method instead of image type +# 97-05-12 fl Minor tweaks to match the IFUNC95 interface +# 97-05-17 fl Support the "pilbitmap" booster patch +# 97-06-05 fl Added file= and data= argument to image constructors +# 98-03-09 fl Added width and height methods to Image classes +# 98-07-02 fl Use default mode for "P" images without palette attribute +# 98-07-02 fl Explicitly destroy Tkinter image objects +# 99-07-24 fl Support multiple Tk interpreters (from Greg Couch) +# 99-07-26 fl Automatically hook into Tkinter (if possible) +# 99-08-15 fl Hook uses _imagingtk instead of _imaging +# +# Copyright (c) 1997-1999 by Secret Labs AB +# Copyright (c) 1996-1997 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +import sys +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 + +_pilbitmap_ok = None + + +def _pilbitmap_check(): + global _pilbitmap_ok + if _pilbitmap_ok is None: + try: + im = Image.new("1", (1, 1)) + tkinter.BitmapImage(data="PIL:%d" % im.im.id) + _pilbitmap_ok = 1 + except tkinter.TclError: + _pilbitmap_ok = 0 + return _pilbitmap_ok + + +def _get_image_from_kw(kw): + source = None + if "file" in kw: + source = kw.pop("file") + elif "data" in kw: + source = BytesIO(kw.pop("data")) + if source: + return Image.open(source) + + +# -------------------------------------------------------------------- +# PhotoImage + +class PhotoImage(object): + """ + A Tkinter-compatible photo image. This can be used + everywhere Tkinter expects an image object. If the image is an RGBA + image, pixels having alpha 0 are treated as transparent. + + The constructor takes either a PIL image, or a mode and a size. + Alternatively, you can use the **file** or **data** options to initialize + the photo image object. + + :param image: Either a PIL image, or a mode string. If a mode string is + used, a size must also be given. + :param size: If the first argument is a mode string, this defines the size + of the image. + :keyword file: A filename to load the image from (using + ``Image.open(file)``). + :keyword data: An 8-bit string containing image data (as loaded from an + image file). + """ + + def __init__(self, image=None, size=None, **kw): + + # Tk compatibility: file or data + if image is None: + image = _get_image_from_kw(kw) + + if hasattr(image, "mode") and hasattr(image, "size"): + # got an image instead of a mode + mode = image.mode + if mode == "P": + # palette mapped data + image.load() + try: + mode = image.palette.mode + except AttributeError: + mode = "RGB" # default + size = image.size + kw["width"], kw["height"] = size + else: + mode = image + image = None + + if mode not in ["1", "L", "RGB", "RGBA"]: + mode = Image.getmodebase(mode) + + self.__mode = mode + self.__size = size + self.__photo = tkinter.PhotoImage(**kw) + self.tk = self.__photo.tk + if image: + self.paste(image) + + def __del__(self): + name = self.__photo.name + self.__photo.name = None + try: + self.__photo.tk.call("image", "delete", name) + except Exception: + pass # ignore internal errors + + def __str__(self): + """ + Get the Tkinter photo image identifier. This method is automatically + called by Tkinter whenever a PhotoImage object is passed to a Tkinter + method. + + :return: A Tkinter photo image identifier (a string). + """ + return str(self.__photo) + + def width(self): + """ + Get the width of the image. + + :return: The width, in pixels. + """ + return self.__size[0] + + def height(self): + """ + Get the height of the image. + + :return: The height, in pixels. + """ + return self.__size[1] + + def paste(self, im, box=None): + """ + Paste a PIL image into the photo image. Note that this can + be very slow if the photo image is displayed. + + :param im: A PIL image. The size must match the target region. If the + mode does not match, the image is converted to the mode of + the bitmap image. + :param box: A 4-tuple defining the left, upper, right, and lower pixel + coordinate. See :ref:`coordinate-system`. If None is given + instead of a tuple, all of the image is assumed. + """ + + # convert to blittable + im.load() + image = im.im + if image.isblock() and im.mode == self.__mode: + block = image + else: + block = image.new_block(self.__mode, im.size) + image.convert2(block, image) # convert directly between buffers + + tk = self.__photo.tk + + try: + tk.call("PyImagingPhoto", self.__photo, block.id) + except tkinter.TclError: + # activate Tkinter hook + try: + from . import _imagingtk + try: + if hasattr(tk, 'interp'): + # Required for PyPy, which always has CFFI installed + from cffi import FFI + ffi = FFI() + + # PyPy is using an FFI CDATA element + # (Pdb) self.tk.interp + # + _imagingtk.tkinit( + int(ffi.cast("uintptr_t", tk.interp)), 1) + else: + _imagingtk.tkinit(tk.interpaddr(), 1) + except AttributeError: + _imagingtk.tkinit(id(tk), 0) + tk.call("PyImagingPhoto", self.__photo, block.id) + except (ImportError, AttributeError, tkinter.TclError): + raise # configuration problem; cannot attach to Tkinter + +# -------------------------------------------------------------------- +# BitmapImage + + +class BitmapImage(object): + """ + A Tkinter-compatible bitmap image. This can be used everywhere Tkinter + expects an image object. + + The given image must have mode "1". Pixels having value 0 are treated as + transparent. Options, if any, are passed on to Tkinter. The most commonly + used option is **foreground**, which is used to specify the color for the + non-transparent parts. See the Tkinter documentation for information on + how to specify colours. + + :param image: A PIL image. + """ + + def __init__(self, image=None, **kw): + + # Tk compatibility: file or data + if image is None: + image = _get_image_from_kw(kw) + + self.__mode = image.mode + self.__size = image.size + + if _pilbitmap_check(): + # fast way (requires the pilbitmap booster patch) + image.load() + kw["data"] = "PIL:%d" % image.im.id + self.__im = image # must keep a reference + else: + # slow but safe way + kw["data"] = image.tobitmap() + self.__photo = tkinter.BitmapImage(**kw) + + def __del__(self): + name = self.__photo.name + self.__photo.name = None + try: + self.__photo.tk.call("image", "delete", name) + except Exception: + pass # ignore internal errors + + def width(self): + """ + Get the width of the image. + + :return: The width, in pixels. + """ + return self.__size[0] + + def height(self): + """ + Get the height of the image. + + :return: The height, in pixels. + """ + return self.__size[1] + + def __str__(self): + """ + Get the Tkinter bitmap image identifier. This method is automatically + called by Tkinter whenever a BitmapImage object is passed to a Tkinter + method. + + :return: A Tkinter bitmap image identifier (a string). + """ + return str(self.__photo) + + +def getimage(photo): + """ This function is unimplemented """ + + """Copies the contents of a PhotoImage to a PIL image memory.""" + photo.tk.call("PyImagingPhotoGet", photo) + + +def _show(image, title): + """Helper for the Image.show method.""" + + class UI(tkinter.Label): + def __init__(self, master, im): + if im.mode == "1": + 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) + + if not tkinter._default_root: + raise IOError("tkinter not initialized") + top = tkinter.Toplevel() + if title: + top.title(title) + UI(top, image).pack() diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageTransform.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageTransform.py new file mode 100644 index 00000000..c3f6af8b --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageTransform.py @@ -0,0 +1,98 @@ +# +# The Python Imaging Library. +# $Id$ +# +# transform wrappers +# +# History: +# 2002-04-08 fl Created +# +# Copyright (c) 2002 by Secret Labs AB +# Copyright (c) 2002 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from . import Image + + +class Transform(Image.ImageTransformHandler): + def __init__(self, data): + self.data = data + + def getdata(self): + return self.method, self.data + + def transform(self, size, image, **options): + # can be overridden + method, data = self.getdata() + return image.transform(size, method, data, **options) + + +class AffineTransform(Transform): + """ + Define an affine image transform. + + This function takes a 6-tuple (a, b, c, d, e, f) which contain the first + two rows from an affine transform matrix. For each pixel (x, y) in the + output image, the new value is taken from a position (a x + b y + c, + d x + e y + f) in the input image, rounded to nearest pixel. + + This function can be used to scale, translate, rotate, and shear the + original image. + + See :py:meth:`~PIL.Image.Image.transform` + + :param matrix: A 6-tuple (a, b, c, d, e, f) containing the first two rows + from an affine transform matrix. + """ + method = Image.AFFINE + + +class ExtentTransform(Transform): + """ + Define a transform to extract a subregion from an image. + + Maps a rectangle (defined by two corners) from the image to a rectangle of + the given size. The resulting image will contain data sampled from between + the corners, such that (x0, y0) in the input image will end up at (0,0) in + the output image, and (x1, y1) at size. + + This method can be used to crop, stretch, shrink, or mirror an arbitrary + rectangle in the current image. It is slightly slower than crop, but about + as fast as a corresponding resize operation. + + See :py:meth:`~PIL.Image.Image.transform` + + :param bbox: A 4-tuple (x0, y0, x1, y1) which specifies two points in the + input image's coordinate system. See :ref:`coordinate-system`. + """ + method = Image.EXTENT + + +class QuadTransform(Transform): + """ + Define a quad image transform. + + Maps a quadrilateral (a region defined by four corners) from the image to a + rectangle of the given size. + + See :py:meth:`~PIL.Image.Image.transform` + + :param xy: An 8-tuple (x0, y0, x1, y1, x2, y2, x3, y3) which contain the + upper left, lower left, lower right, and upper right corner of the + source quadrilateral. + """ + method = Image.QUAD + + +class MeshTransform(Transform): + """ + Define a mesh image transform. A mesh transform consists of one or more + individual quad transforms. + + See :py:meth:`~PIL.Image.Image.transform` + + :param data: A list of (bbox, quad) tuples. + """ + method = Image.MESH diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageWin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageWin.py new file mode 100644 index 00000000..9b86270b --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImageWin.py @@ -0,0 +1,228 @@ +# +# The Python Imaging Library. +# $Id$ +# +# a Windows DIB display interface +# +# History: +# 1996-05-20 fl Created +# 1996-09-20 fl Fixed subregion exposure +# 1997-09-21 fl Added draw primitive (for tzPrint) +# 2003-05-21 fl Added experimental Window/ImageWindow classes +# 2003-09-05 fl Added fromstring/tostring methods +# +# Copyright (c) Secret Labs AB 1997-2003. +# Copyright (c) Fredrik Lundh 1996-2003. +# +# See the README file for information on usage and redistribution. +# + +from . import Image + + +class HDC(object): + """ + 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` + methods. + """ + def __init__(self, dc): + self.dc = dc + + def __int__(self): + return self.dc + + +class HWND(object): + """ + 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` + methods, instead of a DC. + """ + def __init__(self, wnd): + self.wnd = wnd + + def __int__(self): + return self.wnd + + +class Dib(object): + """ + A Windows bitmap with the given mode and size. The mode can be one of "1", + "L", "P", or "RGB". + + If the display requires a palette, this constructor creates a suitable + palette and associates it with the image. For an "L" image, 128 greylevels + are allocated. For an "RGB" image, a 6x6x6 colour cube is used, together + with 20 greylevels. + + To make sure that palettes work properly under Windows, you must call the + **palette** method upon certain events from Windows. + + :param image: Either a PIL image, or a mode string. If a mode string is + used, a size must also be given. The mode can be one of "1", + "L", "P", or "RGB". + :param size: If the first argument is a mode string, this + defines the size of the image. + """ + + def __init__(self, image, size=None): + if hasattr(image, "mode") and hasattr(image, "size"): + mode = image.mode + size = image.size + else: + mode = image + image = None + if mode not in ["1", "L", "P", "RGB"]: + mode = Image.getmodebase(mode) + self.image = Image.core.display(mode, size) + self.mode = mode + self.size = size + if image: + self.paste(image) + + def expose(self, handle): + """ + Copy the bitmap contents to a device context. + + :param handle: Device context (HDC), cast to a Python integer, or an + HDC or HWND instance. In PythonWin, you can use the + :py:meth:`CDC.GetHandleAttrib` to get a suitable handle. + """ + if isinstance(handle, HWND): + dc = self.image.getdc(handle) + try: + result = self.image.expose(dc) + finally: + self.image.releasedc(handle, dc) + else: + result = self.image.expose(handle) + return result + + def draw(self, handle, dst, src=None): + """ + Same as expose, but allows you to specify where to draw the image, and + what part of it to draw. + + The destination and source areas are given as 4-tuple rectangles. If + the source is omitted, the entire image is copied. If the source and + the destination have different sizes, the image is resized as + necessary. + """ + if not src: + src = (0, 0) + self.size + if isinstance(handle, HWND): + dc = self.image.getdc(handle) + try: + result = self.image.draw(dc, dst, src) + finally: + self.image.releasedc(handle, dc) + else: + result = self.image.draw(handle, dst, src) + return result + + def query_palette(self, handle): + """ + Installs the palette associated with the image in the given device + context. + + This method should be called upon **QUERYNEWPALETTE** and + **PALETTECHANGED** events from Windows. If this method returns a + non-zero value, one or more display palette entries were changed, and + the image should be redrawn. + + :param handle: Device context (HDC), cast to a Python integer, or an + HDC or HWND instance. + :return: A true value if one or more entries were changed (this + indicates that the image should be redrawn). + """ + if isinstance(handle, HWND): + handle = self.image.getdc(handle) + try: + result = self.image.query_palette(handle) + finally: + self.image.releasedc(handle, handle) + else: + result = self.image.query_palette(handle) + return result + + def paste(self, im, box=None): + """ + Paste a PIL image into the bitmap image. + + :param im: A PIL image. The size must match the target region. + If the mode does not match, the image is converted to the + mode of the bitmap image. + :param box: A 4-tuple defining the left, upper, right, and + lower pixel coordinate. See :ref:`coordinate-system`. If + None is given instead of a tuple, all of the image is + assumed. + """ + im.load() + if self.mode != im.mode: + im = im.convert(self.mode) + if box: + self.image.paste(im.im, box) + else: + self.image.paste(im.im) + + def frombytes(self, buffer): + """ + Load display memory contents from byte data. + + :param buffer: A buffer containing display data (usually + data returned from tobytes) + """ + return self.image.frombytes(buffer) + + def tobytes(self): + """ + Copy display memory contents to bytes object. + + :return: A bytes object containing display data. + """ + return self.image.tobytes() + + +class Window(object): + """Create a Window with the given title size.""" + + def __init__(self, title="PIL", width=None, height=None): + self.hwnd = Image.core.createwindow( + title, self.__dispatcher, width or 0, height or 0 + ) + + def __dispatcher(self, action, *args): + return getattr(self, "ui_handle_" + action)(*args) + + def ui_handle_clear(self, dc, x0, y0, x1, y1): + pass + + def ui_handle_damage(self, x0, y0, x1, y1): + pass + + def ui_handle_destroy(self): + pass + + def ui_handle_repair(self, dc, x0, y0, x1, y1): + pass + + def ui_handle_resize(self, width, height): + pass + + def mainloop(self): + Image.core.eventloop() + + +class ImageWindow(Window): + """Create an image window which displays the given image.""" + + def __init__(self, image, title="PIL"): + if not isinstance(image, Dib): + image = Dib(image) + self.image = image + width, height = image.size + Window.__init__(self, 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/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImtImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImtImagePlugin.py new file mode 100644 index 00000000..18b7dd83 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/ImtImagePlugin.py @@ -0,0 +1,97 @@ +# +# The Python Imaging Library. +# $Id$ +# +# IM Tools support for PIL +# +# history: +# 1996-05-27 fl Created (read 8-bit images only) +# 2001-02-17 fl Use 're' instead of 'regex' (Python 2.1) (0.2) +# +# Copyright (c) Secret Labs AB 1997-2001. +# Copyright (c) Fredrik Lundh 1996-2001. +# +# See the README file for information on usage and redistribution. +# + + +import re + +from . import Image, ImageFile + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.2" + + +# +# -------------------------------------------------------------------- + +field = re.compile(br"([a-z]*) ([^ \r\n]*)") + + +## +# Image plugin for IM Tools images. + +class ImtImageFile(ImageFile.ImageFile): + + format = "IMT" + format_description = "IM Tools" + + def _open(self): + + # Quick rejection: if there's not a LF among the first + # 100 bytes, this is (probably) not a text header. + + if b"\n" not in self.fp.read(100): + raise SyntaxError("not an IM file") + self.fp.seek(0) + + xsize = ysize = 0 + + while True: + + s = self.fp.read(1) + if not s: + break + + if s == b'\x0C': + + # image data begins + self.tile = [("raw", (0, 0)+self.size, + self.fp.tell(), + (self.mode, 0, 1))] + + break + + else: + + # read key/value pair + # FIXME: dangerous, may read whole file + s = s + self.fp.readline() + if len(s) == 1 or len(s) > 100: + break + if s[0] == ord(b"*"): + continue # comment + + m = field.match(s) + if not m: + break + k, v = m.group(1, 2) + if k == "width": + xsize = int(v) + self._size = xsize, ysize + elif k == "height": + ysize = int(v) + self._size = xsize, ysize + elif k == "pixel" and v == "n8": + self.mode = "L" + + +# +# -------------------------------------------------------------------- + +Image.register_open(ImtImageFile.format, ImtImageFile) + +# +# no extension registered (".im" is simply too common) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IptcImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IptcImagePlugin.py new file mode 100644 index 00000000..371bb3ac --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/IptcImagePlugin.py @@ -0,0 +1,231 @@ +# +# The Python Imaging Library. +# $Id$ +# +# IPTC/NAA file handling +# +# history: +# 1995-10-01 fl Created +# 1998-03-09 fl Cleaned up and added to PIL +# 2002-06-18 fl Added getiptcinfo helper +# +# Copyright (c) Secret Labs AB 1997-2002. +# Copyright (c) Fredrik Lundh 1995. +# +# See the README file for information on usage and redistribution. +# + +from __future__ import print_function + +from . import Image, ImageFile +from ._binary import i8, i16be as i16, i32be as i32, o8 +import os +import tempfile + +# __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 + + +# +# Helpers + +def i(c): + return i32((PAD + c)[-4:]) + + +def dump(c): + for i in c: + print("%02x" % i8(i), end=' ') + print() + + +## +# Image plugin for IPTC/NAA datastreams. To read IPTC/NAA fields +# from TIFF and JPEG files, use the getiptcinfo function. + +class IptcImageFile(ImageFile.ImageFile): + + format = "IPTC" + format_description = "IPTC/NAA" + + def getint(self, key): + return i(self.info[key]) + + def field(self): + # + # get a IPTC field header + s = self.fp.read(5) + if not len(s): + return None, 0 + + tag = i8(s[1]), i8(s[2]) + + # syntax + if i8(s[0]) != 0x1C or tag[0] < 1 or tag[0] > 9: + raise SyntaxError("invalid IPTC/NAA file") + + # field size + size = i8(s[3]) + if size > 132: + raise IOError("illegal field length in IPTC/NAA file") + elif size == 128: + size = 0 + elif size > 128: + size = i(self.fp.read(size-128)) + else: + size = i16(s[3:]) + + return tag, size + + def _open(self): + + # load descriptive fields + while True: + offset = self.fp.tell() + tag, size = self.field() + if not tag or tag == (8, 10): + break + if size: + tagdata = self.fp.read(size) + else: + tagdata = None + if tag in self.info: + if isinstance(self.info[tag], list): + self.info[tag].append(tagdata) + else: + self.info[tag] = [self.info[tag], tagdata] + else: + self.info[tag] = tagdata + + # mode + layers = i8(self.info[(3, 60)][0]) + component = i8(self.info[(3, 60)][1]) + if (3, 65) in self.info: + id = i8(self.info[(3, 65)][0])-1 + else: + id = 0 + if layers == 1 and not component: + self.mode = "L" + elif layers == 3 and component: + self.mode = "RGB"[id] + elif layers == 4 and component: + self.mode = "CMYK"[id] + + # size + self._size = self.getint((3, 20)), self.getint((3, 30)) + + # compression + try: + compression = COMPRESSION[self.getint((3, 120))] + except KeyError: + raise IOError("Unknown IPTC image compression") + + # tile + if tag == (8, 10): + self.tile = [("iptc", (compression, offset), + (0, 0, self.size[0], self.size[1]))] + + def load(self): + + if len(self.tile) != 1 or self.tile[0][0] != "iptc": + return ImageFile.ImageFile.load(self) + + type, tile, box = self.tile[0] + + encoding, offset = tile + + self.fp.seek(offset) + + # Copy image data to temporary file + o_fd, outfile = tempfile.mkstemp(text=False) + o = os.fdopen(o_fd) + if encoding == "raw": + # To simplify access to the extracted file, + # prepend a PPM header + o.write("P5\n%d %d\n255\n" % self.size) + while True: + type, size = self.field() + if type != (8, 10): + break + while size > 0: + s = self.fp.read(min(size, 8192)) + if not s: + break + o.write(s) + size -= len(s) + o.close() + + try: + _im = Image.open(outfile) + _im.load() + self.im = _im.im + finally: + try: + os.unlink(outfile) + except OSError: + pass + + +Image.register_open(IptcImageFile.format, IptcImageFile) + +Image.register_extension(IptcImageFile.format, ".iim") + + +def getiptcinfo(im): + """ + Get IPTC information from TIFF, JPEG, or IPTC file. + + :param im: An image containing IPTC data. + :returns: A dictionary containing IPTC information, or None if + no IPTC information block was found. + """ + from . import TiffImagePlugin, JpegImagePlugin + import io + + data = None + + if isinstance(im, IptcImageFile): + # return info dictionary right away + return im.info + + elif isinstance(im, JpegImagePlugin.JpegImageFile): + # extract the IPTC/NAA resource + photoshop = im.info.get("photoshop") + if photoshop: + data = photoshop.get(0x0404) + + elif isinstance(im, TiffImagePlugin.TiffImageFile): + # get raw data from the IPTC/NAA tag (PhotoShop tags the data + # as 4-byte integers, so we cannot use the get method...) + try: + data = im.tag.tagdata[TiffImagePlugin.IPTC_NAA_CHUNK] + except (AttributeError, KeyError): + pass + + if data is None: + return None # no properties + + # create an IptcImagePlugin object without initializing it + class FakeImage(object): + pass + im = FakeImage() + im.__class__ = IptcImageFile + + # parse the IPTC information chunk + im.info = {} + im.fp = io.BytesIO(data) + + try: + im._open() + except (IndexError, KeyError): + pass # expected failure + + return im.info diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Jpeg2KImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Jpeg2KImagePlugin.py new file mode 100644 index 00000000..9645f8ef --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/Jpeg2KImagePlugin.py @@ -0,0 +1,291 @@ +# +# The Python Imaging Library +# $Id$ +# +# JPEG2000 file handling +# +# History: +# 2014-03-12 ajh Created +# +# Copyright (c) 2014 Coriolis Systems Limited +# Copyright (c) 2014 Alastair Houghton +# +# See the README file for information on usage and redistribution. +# +from . import Image, ImageFile +import struct +import os +import io + +# __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 + count from the SIZ marker segment, returning a PIL (size, mode) tuple.""" + + hdr = fp.read(2) + lsiz = struct.unpack('>H', hdr)[0] + siz = hdr + fp.read(lsiz - 2) + lsiz, rsiz, xsiz, ysiz, xosiz, yosiz, xtsiz, ytsiz, \ + xtosiz, ytosiz, csiz \ + = struct.unpack_from('>HHIIIIIIIIH', siz) + ssiz = [None]*csiz + xrsiz = [None]*csiz + yrsiz = [None]*csiz + for i in range(csiz): + ssiz[i], xrsiz[i], yrsiz[i] \ + = struct.unpack_from('>BBB', siz, 36 + 3 * i) + + size = (xsiz - xosiz, ysiz - yosiz) + if csiz == 1: + if (yrsiz[0] & 0x7f) > 8: + mode = 'I;16' + else: + mode = 'L' + elif csiz == 2: + mode = 'LA' + elif csiz == 3: + mode = 'RGB' + elif csiz == 4: + mode = 'RGBA' + else: + mode = None + + return (size, mode) + + +def _parse_jp2_header(fp): + """Parse the JP2 header box to extract size, component count and + color space information, returning a (size, mode, mimetype) tuple.""" + + # Find the JP2 header box + header = None + mimetype = None + while True: + lbox, tbox = struct.unpack('>I4s', fp.read(8)) + if lbox == 1: + lbox = struct.unpack('>Q', fp.read(8))[0] + hlen = 16 + else: + hlen = 8 + + if lbox < hlen: + raise SyntaxError('Invalid JP2 header length') + + if tbox == b'jp2h': + header = fp.read(lbox - hlen) + break + elif tbox == b'ftyp': + if fp.read(4) == b'jpx ': + mimetype = 'image/jpx' + fp.seek(lbox - hlen - 4, os.SEEK_CUR) + else: + fp.seek(lbox - hlen, os.SEEK_CUR) + + if header is None: + raise SyntaxError('could not find JP2 header') + + size = None + mode = None + bpc = None + nc = None + + hio = io.BytesIO(header) + while True: + lbox, tbox = struct.unpack('>I4s', hio.read(8)) + if lbox == 1: + lbox = struct.unpack('>Q', hio.read(8))[0] + hlen = 16 + else: + hlen = 8 + + content = hio.read(lbox - hlen) + + if tbox == b'ihdr': + height, width, nc, bpc, c, unkc, ipr \ + = struct.unpack('>IIHBBBB', content) + size = (width, height) + if unkc: + if nc == 1 and (bpc & 0x7f) > 8: + mode = 'I;16' + elif nc == 1: + mode = 'L' + elif nc == 2: + mode = 'LA' + elif nc == 3: + mode = 'RGB' + elif nc == 4: + mode = 'RGBA' + break + elif tbox == b'colr': + meth, prec, approx = struct.unpack_from('>BBB', content) + if meth == 1: + cs = struct.unpack_from('>I', content, 3)[0] + if cs == 16: # sRGB + if nc == 1 and (bpc & 0x7f) > 8: + mode = 'I;16' + elif nc == 1: + mode = 'L' + elif nc == 3: + mode = 'RGB' + elif nc == 4: + mode = 'RGBA' + break + elif cs == 17: # grayscale + if nc == 1 and (bpc & 0x7f) > 8: + mode = 'I;16' + elif nc == 1: + mode = 'L' + elif nc == 2: + mode = 'LA' + break + elif cs == 18: # sYCC + if nc == 3: + mode = 'RGB' + elif nc == 4: + mode = 'RGBA' + break + + if size is None or mode is None: + raise SyntaxError("Malformed jp2 header") + + return (size, mode, mimetype) + +## +# Image plugin for JPEG2000 images. + + +class Jpeg2KImageFile(ImageFile.ImageFile): + format = "JPEG2000" + format_description = "JPEG 2000 (ISO 15444)" + + def _open(self): + sig = self.fp.read(4) + if sig == b'\xff\x4f\xff\x51': + self.codec = "j2k" + self._size, self.mode = _parse_codestream(self.fp) + else: + sig = sig + self.fp.read(8) + + if sig == b'\x00\x00\x00\x0cjP \x0d\x0a\x87\x0a': + self.codec = "jp2" + header = _parse_jp2_header(self.fp) + self._size, self.mode, self.custom_mimetype = header + else: + raise SyntaxError('not a JPEG 2000 file') + + if self.size is None or self.mode is None: + raise SyntaxError('unable to determine size/mode') + + self.reduce = 0 + self.layers = 0 + + fd = -1 + length = -1 + + try: + fd = self.fp.fileno() + length = os.fstat(fd).st_size + except Exception: + fd = -1 + try: + pos = self.fp.tell() + self.fp.seek(0, io.SEEK_END) + length = self.fp.tell() + self.fp.seek(pos) + except Exception: + length = -1 + + self.tile = [('jpeg2k', (0, 0) + self.size, 0, + (self.codec, self.reduce, self.layers, fd, length))] + + def load(self): + if 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]) + self.tile = [(t[0], (0, 0) + self.size, t[2], t3)] + + return ImageFile.ImageFile.load(self) + + +def _accept(prefix): + return (prefix[:4] == b'\xff\x4f\xff\x51' or + prefix[:12] == b'\x00\x00\x00\x0cjP \x0d\x0a\x87\x0a') + + +# ------------------------------------------------------------ +# Save support + +def _save(im, fp, filename): + if filename.endswith('.j2k'): + kind = 'j2k' + else: + kind = 'jp2' + + # Get the keyword arguments + info = im.encoderinfo + + offset = info.get('offset', None) + tile_offset = info.get('tile_offset', None) + tile_size = info.get('tile_size', None) + quality_mode = info.get('quality_mode', 'rates') + quality_layers = info.get('quality_layers', None) + if quality_layers is not None and not ( + isinstance(quality_layers, (list, tuple)) and + all([isinstance(quality_layer, (int, float)) + for quality_layer in quality_layers]) + ): + raise ValueError('quality_layers must be a sequence of numbers') + + num_resolutions = info.get('num_resolutions', 0) + cblk_size = info.get('codeblock_size', None) + precinct_size = info.get('precinct_size', None) + irreversible = info.get('irreversible', False) + progression = info.get('progression', 'LRCP') + cinema_mode = info.get('cinema_mode', 'no') + fd = -1 + + if hasattr(fp, "fileno"): + try: + fd = fp.fileno() + except Exception: + fd = -1 + + im.encoderconfig = ( + offset, + tile_offset, + tile_size, + quality_mode, + quality_layers, + num_resolutions, + cblk_size, + precinct_size, + irreversible, + progression, + cinema_mode, + fd + ) + + ImageFile._save(im, fp, [('jpeg2k', (0, 0)+im.size, 0, kind)]) + +# ------------------------------------------------------------ +# Registry stuff + + +Image.register_open(Jpeg2KImageFile.format, Jpeg2KImageFile, _accept) +Image.register_save(Jpeg2KImageFile.format, _save) + +Image.register_extensions(Jpeg2KImageFile.format, + [".jp2", ".j2k", ".jpc", ".jpf", ".jpx", ".j2c"]) + +Image.register_mime(Jpeg2KImageFile.format, 'image/jp2') diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/JpegImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/JpegImagePlugin.py new file mode 100644 index 00000000..3caedbd9 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/JpegImagePlugin.py @@ -0,0 +1,809 @@ +# +# The Python Imaging Library. +# $Id$ +# +# JPEG (JFIF) file handling +# +# See "Digital Compression and Coding of Continuous-Tone Still Images, +# Part 1, Requirements and Guidelines" (CCITT T.81 / ISO 10918-1) +# +# History: +# 1995-09-09 fl Created +# 1995-09-13 fl Added full parser +# 1996-03-25 fl Added hack to use the IJG command line utilities +# 1996-05-05 fl Workaround Photoshop 2.5 CMYK polarity bug +# 1996-05-28 fl Added draft support, JFIF version (0.1) +# 1996-12-30 fl Added encoder options, added progression property (0.2) +# 1997-08-27 fl Save mode 1 images as BW (0.3) +# 1998-07-12 fl Added YCbCr to draft and save methods (0.4) +# 1998-10-19 fl Don't hang on files using 16-bit DQT's (0.4.1) +# 2001-04-16 fl Extract DPI settings from JFIF files (0.4.2) +# 2002-07-01 fl Skip pad bytes before markers; identify Exif files (0.4.3) +# 2003-04-25 fl Added experimental EXIF decoder (0.5) +# 2003-06-06 fl Added experimental EXIF GPSinfo decoder +# 2003-09-13 fl Extract COM markers +# 2009-09-06 fl Added icc_profile support (from Florian Hoech) +# 2009-03-06 fl Changed CMYK handling; always use Adobe polarity (0.6) +# 2009-03-08 fl Added subsampling support (from Justin Huff). +# +# Copyright (c) 1997-2003 by Secret Labs AB. +# Copyright (c) 1995-1996 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +from __future__ import print_function + +import array +import struct +import io +import warnings +from . import Image, ImageFile, TiffImagePlugin +from ._binary import i8, o8, i16be as i16, i32be as i32 +from .JpegPresets import presets +from ._util import isStringType + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.6" + + +# +# Parser + +def Skip(self, marker): + n = i16(self.fp.read(2))-2 + ImageFile._safe_read(self.fp, n) + + +def APP(self, marker): + # + # Application marker. Store these in the APP dictionary. + # Also look for well-known application markers. + + n = i16(self.fp.read(2))-2 + s = ImageFile._safe_read(self.fp, n) + + app = "APP%d" % (marker & 15) + + self.app[app] = s # compatibility + self.applist.append((app, s)) + + if marker == 0xFFE0 and s[:4] == b"JFIF": + # extract JFIF information + self.info["jfif"] = version = i16(s, 5) # version + self.info["jfif_version"] = divmod(version, 256) + # extract JFIF properties + try: + jfif_unit = i8(s[7]) + jfif_density = i16(s, 8), i16(s, 10) + except Exception: + pass + else: + if jfif_unit == 1: + self.info["dpi"] = jfif_density + self.info["jfif_unit"] = jfif_unit + self.info["jfif_density"] = jfif_density + elif marker == 0xFFE1 and s[:5] == b"Exif\0": + if "exif" not in self.info: + # extract EXIF information (incomplete) + self.info["exif"] = s # FIXME: value will change + elif marker == 0xFFE2 and s[:5] == b"FPXR\0": + # extract FlashPix information (incomplete) + self.info["flashpix"] = s # FIXME: value will change + elif marker == 0xFFE2 and s[:12] == b"ICC_PROFILE\0": + # Since an ICC profile can be larger than the maximum size of + # a JPEG marker (64K), we need provisions to split it into + # multiple markers. The format defined by the ICC specifies + # one or more APP2 markers containing the following data: + # Identifying string ASCII "ICC_PROFILE\0" (12 bytes) + # Marker sequence number 1, 2, etc (1 byte) + # Number of markers Total of APP2's used (1 byte) + # Profile data (remainder of APP2 data) + # Decoders should use the marker sequence numbers to + # 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": + offset += 4 + # resource code + code = i16(blocks, 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 + # resource data block + size = i32(blocks, offset) + offset += 4 + data = blocks[offset:offset+size] + if code == 0x03ED: # ResolutionInfo + data = { + 'XResolution': i32(data[:4]) / 65536, + 'DisplayedUnitsX': i16(data[4:8]), + 'YResolution': i32(data[8:12]) / 65536, + 'DisplayedUnitsY': i16(data[12:]), + } + photoshop[code] = data + offset = offset + size + if offset & 1: + offset += 1 + self.info["photoshop"] = photoshop + elif marker == 0xFFEE and s[:5] == b"Adobe": + self.info["adobe"] = i16(s, 5) + # extract Adobe custom properties + try: + adobe_transform = i8(s[1]) + except Exception: + pass + else: + self.info["adobe_transform"] = adobe_transform + elif marker == 0xFFE2 and s[:4] == b"MPF\0": + # extract MPO information + self.info["mp"] = s[4:] + # offset is current location minus buffer size + # plus constant header size + self.info["mpoffset"] = self.fp.tell() - n + 4 + + # If DPI isn't in JPEG header, fetch from EXIF + if "dpi" not in self.info and "exif" in self.info: + try: + exif = self._getexif() + resolution_unit = exif[0x0128] + x_resolution = exif[0x011A] + try: + dpi = float(x_resolution[0]) / x_resolution[1] + except TypeError: + dpi = x_resolution + if resolution_unit == 3: # cm + # 1 dpcm = 2.54 dpi + dpi *= 2.54 + self.info["dpi"] = int(dpi + 0.5), int(dpi + 0.5) + except (KeyError, SyntaxError, ZeroDivisionError): + # SyntaxError for invalid/unreadable EXIF + # KeyError for dpi not included + # ZeroDivisionError for invalid dpi rational value + self.info["dpi"] = 72, 72 + + +def COM(self, marker): + # + # Comment marker. Store these in the APP dictionary. + n = i16(self.fp.read(2))-2 + s = ImageFile._safe_read(self.fp, n) + + self.app["COM"] = s # compatibility + self.applist.append(("COM", s)) + + +def SOF(self, marker): + # + # Start of frame marker. Defines the size and mode of the + # image. JPEG is colour blind, so we use some simple + # heuristics to map the number of layers to an appropriate + # mode. Note that this could be made a bit brighter, by + # looking for JFIF and Adobe APP markers. + + n = i16(self.fp.read(2))-2 + s = ImageFile._safe_read(self.fp, n) + self._size = i16(s[3:]), i16(s[1:]) + + self.bits = i8(s[0]) + if self.bits != 8: + raise SyntaxError("cannot handle %d-bit layers" % self.bits) + + self.layers = i8(s[5]) + if self.layers == 1: + self.mode = "L" + elif self.layers == 3: + self.mode = "RGB" + elif self.layers == 4: + self.mode = "CMYK" + else: + raise SyntaxError("cannot handle %d-layer images" % self.layers) + + if marker in [0xFFC2, 0xFFC6, 0xFFCA, 0xFFCE]: + self.info["progressive"] = self.info["progression"] = 1 + + if self.icclist: + # fixup icc profile + self.icclist.sort() # sort by sequence number + if i8(self.icclist[0][13]) == len(self.icclist): + profile = [] + for p in self.icclist: + profile.append(p[14:]) + icc_profile = b"".join(profile) + else: + icc_profile = None # wrong number of fragments + self.info["icc_profile"] = icc_profile + self.icclist = None + + for i in range(6, len(s), 3): + t = s[i:i+3] + # 4-tuples: id, vsamp, hsamp, qtable + self.layer.append((t[0], i8(t[1])//16, i8(t[1]) & 15, i8(t[2]))) + + +def DQT(self, marker): + # + # Define quantization table. Support baseline 8-bit tables + # only. Note that there might be more than one table in + # each marker. + + # FIXME: The quantization tables can be used to estimate the + # compression quality. + + n = i16(self.fp.read(2))-2 + s = ImageFile._safe_read(self.fp, n) + while len(s): + if len(s) < 65: + raise SyntaxError("bad quantization table marker") + v = i8(s[0]) + if v//16 == 0: + self.quantization[v & 15] = array.array("B", s[1:65]) + s = s[65:] + else: + return # FIXME: add code to read 16-bit tables! + # raise SyntaxError, "bad quantization table element size" + + +# +# JPEG marker table + +MARKER = { + 0xFFC0: ("SOF0", "Baseline DCT", SOF), + 0xFFC1: ("SOF1", "Extended Sequential DCT", SOF), + 0xFFC2: ("SOF2", "Progressive DCT", SOF), + 0xFFC3: ("SOF3", "Spatial lossless", SOF), + 0xFFC4: ("DHT", "Define Huffman table", Skip), + 0xFFC5: ("SOF5", "Differential sequential DCT", SOF), + 0xFFC6: ("SOF6", "Differential progressive DCT", SOF), + 0xFFC7: ("SOF7", "Differential spatial", SOF), + 0xFFC8: ("JPG", "Extension", None), + 0xFFC9: ("SOF9", "Extended sequential DCT (AC)", SOF), + 0xFFCA: ("SOF10", "Progressive DCT (AC)", SOF), + 0xFFCB: ("SOF11", "Spatial lossless DCT (AC)", SOF), + 0xFFCC: ("DAC", "Define arithmetic coding conditioning", Skip), + 0xFFCD: ("SOF13", "Differential sequential DCT (AC)", SOF), + 0xFFCE: ("SOF14", "Differential progressive DCT (AC)", SOF), + 0xFFCF: ("SOF15", "Differential spatial (AC)", SOF), + 0xFFD0: ("RST0", "Restart 0", None), + 0xFFD1: ("RST1", "Restart 1", None), + 0xFFD2: ("RST2", "Restart 2", None), + 0xFFD3: ("RST3", "Restart 3", None), + 0xFFD4: ("RST4", "Restart 4", None), + 0xFFD5: ("RST5", "Restart 5", None), + 0xFFD6: ("RST6", "Restart 6", None), + 0xFFD7: ("RST7", "Restart 7", None), + 0xFFD8: ("SOI", "Start of image", None), + 0xFFD9: ("EOI", "End of image", None), + 0xFFDA: ("SOS", "Start of scan", Skip), + 0xFFDB: ("DQT", "Define quantization table", DQT), + 0xFFDC: ("DNL", "Define number of lines", Skip), + 0xFFDD: ("DRI", "Define restart interval", Skip), + 0xFFDE: ("DHP", "Define hierarchical progression", SOF), + 0xFFDF: ("EXP", "Expand reference component", Skip), + 0xFFE0: ("APP0", "Application segment 0", APP), + 0xFFE1: ("APP1", "Application segment 1", APP), + 0xFFE2: ("APP2", "Application segment 2", APP), + 0xFFE3: ("APP3", "Application segment 3", APP), + 0xFFE4: ("APP4", "Application segment 4", APP), + 0xFFE5: ("APP5", "Application segment 5", APP), + 0xFFE6: ("APP6", "Application segment 6", APP), + 0xFFE7: ("APP7", "Application segment 7", APP), + 0xFFE8: ("APP8", "Application segment 8", APP), + 0xFFE9: ("APP9", "Application segment 9", APP), + 0xFFEA: ("APP10", "Application segment 10", APP), + 0xFFEB: ("APP11", "Application segment 11", APP), + 0xFFEC: ("APP12", "Application segment 12", APP), + 0xFFED: ("APP13", "Application segment 13", APP), + 0xFFEE: ("APP14", "Application segment 14", APP), + 0xFFEF: ("APP15", "Application segment 15", APP), + 0xFFF0: ("JPG0", "Extension 0", None), + 0xFFF1: ("JPG1", "Extension 1", None), + 0xFFF2: ("JPG2", "Extension 2", None), + 0xFFF3: ("JPG3", "Extension 3", None), + 0xFFF4: ("JPG4", "Extension 4", None), + 0xFFF5: ("JPG5", "Extension 5", None), + 0xFFF6: ("JPG6", "Extension 6", None), + 0xFFF7: ("JPG7", "Extension 7", None), + 0xFFF8: ("JPG8", "Extension 8", None), + 0xFFF9: ("JPG9", "Extension 9", None), + 0xFFFA: ("JPG10", "Extension 10", None), + 0xFFFB: ("JPG11", "Extension 11", None), + 0xFFFC: ("JPG12", "Extension 12", None), + 0xFFFD: ("JPG13", "Extension 13", None), + 0xFFFE: ("COM", "Comment", COM) +} + + +def _accept(prefix): + return prefix[0:1] == b"\377" + + +## +# Image plugin for JPEG and JFIF images. + +class JpegImageFile(ImageFile.ImageFile): + + format = "JPEG" + format_description = "JPEG (ISO 10918)" + + def _open(self): + + s = self.fp.read(1) + + if i8(s) != 255: + raise SyntaxError("not a JPEG file") + + # Create attributes + self.bits = self.layers = 0 + + # JPEG specifics (internal) + self.layer = [] + self.huffman_dc = {} + self.huffman_ac = {} + self.quantization = {} + self.app = {} # compatibility + self.applist = [] + self.icclist = [] + + while True: + + i = i8(s) + if i == 0xFF: + s = s + self.fp.read(1) + i = i16(s) + else: + # Skip non-0xFF junk + s = self.fp.read(1) + continue + + if i in MARKER: + name, description, handler = MARKER[i] + if handler is not None: + handler(self, i) + if i == 0xFFDA: # start of scan + rawmode = self.mode + if self.mode == "CMYK": + rawmode = "CMYK;I" # assume adobe conventions + self.tile = [("jpeg", (0, 0) + self.size, 0, + (rawmode, ""))] + # self.__offset = self.fp.tell() + break + s = self.fp.read(1) + elif i == 0 or i == 0xFFFF: + # padded marker or junk; move on + s = b"\xff" + elif i == 0xFF00: # Skip extraneous data (escaped 0xFF) + s = self.fp.read(1) + else: + raise SyntaxError("no marker found") + + def load_read(self, read_bytes): + """ + internal: read more image data + For premature EOF and LOAD_TRUNCATED_IMAGES adds EOI marker + so libjpeg can finish decoding + """ + s = self.fp.read(read_bytes) + + if not s and ImageFile.LOAD_TRUNCATED_IMAGES: + # Premature EOF. + # Pretend file is finished adding EOI marker + return b"\xFF\xD9" + + return s + + def draft(self, mode, size): + + if len(self.tile) != 1: + return + + # Protect from second call + if self.decoderconfig: + return + + d, e, o, a = self.tile[0] + scale = 0 + + if a[0] == "RGB" and mode in ["L", "YCbCr"]: + self.mode = mode + a = mode, "" + + if size: + scale = min(self.size[0] // size[0], self.size[1] // size[1]) + for s in [8, 4, 2, 1]: + if scale >= s: + break + e = e[0], e[1], (e[2]-e[0]+s-1)//s+e[0], (e[3]-e[1]+s-1)//s+e[1] + self._size = ((self.size[0]+s-1)//s, (self.size[1]+s-1)//s) + scale = s + + self.tile = [(d, e, o, a)] + self.decoderconfig = (scale, 0) + + return self + + 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): + subprocess.check_call(["djpeg", "-outfile", path, self.filename]) + else: + raise ValueError("Invalid Filename") + + try: + _im = Image.open(path) + _im.load() + self.im = _im.im + finally: + try: + os.unlink(path) + except OSError: + pass + + self.mode = self.im.mode + self._size = self.im.size + + self.tile = [] + + def _getexif(self): + return _getexif(self) + + def _getmp(self): + return _getmp(self) + + +def _fixup_dict(src_dict): + # Helper function for _getexif() + # returns a dict with any single item tuples/lists as individual values + exif = Image.Exif() + return exif._fixup_dict(src_dict) + + +def _getexif(self): + # Use the cached version if possible + try: + return self.info["parsed_exif"] + except KeyError: + pass + + if "exif" not in self.info: + return None + exif = dict(self.getexif()) + + # Cache the result for future use + self.info["parsed_exif"] = exif + return exif + + +def _getmp(self): + # Extract MP information. This method was inspired by the "highly + # experimental" _getexif version that's been in use for years now, + # itself based on the ImageFileDirectory class in the TIFF plug-in. + + # The MP record essentially consists of a TIFF file embedded in a JPEG + # application marker. + try: + data = self.info["mp"] + except KeyError: + return None + file_contents = io.BytesIO(data) + head = file_contents.read(8) + endianness = '>' if head[:4] == b'\x4d\x4d\x00\x2a' else '<' + # process dictionary + try: + info = TiffImagePlugin.ImageFileDirectory_v2(head) + file_contents.seek(info.next) + info.load(file_contents) + mp = dict(info) + except Exception: + raise SyntaxError("malformed MP Index (unreadable directory)") + # it's an error not to have a number of images + try: + quant = mp[0xB001] + except KeyError: + raise SyntaxError("malformed MP Index (no number of images)") + # get MP entries + mpentries = [] + try: + rawmpentries = mp[0xB002] + for entrynum in range(0, quant): + unpackedentry = struct.unpack_from( + '{}LLLHH'.format(endianness), rawmpentries, entrynum * 16) + labels = ('Attribute', 'Size', 'DataOffset', 'EntryNo1', + 'EntryNo2') + mpentry = dict(zip(labels, unpackedentry)) + mpentryattr = { + 'DependentParentImageFlag': bool(mpentry['Attribute'] & + (1 << 31)), + 'DependentChildImageFlag': bool(mpentry['Attribute'] & + (1 << 30)), + 'RepresentativeImageFlag': bool(mpentry['Attribute'] & + (1 << 29)), + 'Reserved': (mpentry['Attribute'] & (3 << 27)) >> 27, + 'ImageDataFormat': (mpentry['Attribute'] & (7 << 24)) >> 24, + 'MPType': mpentry['Attribute'] & 0x00FFFFFF + } + if mpentryattr['ImageDataFormat'] == 0: + mpentryattr['ImageDataFormat'] = 'JPEG' + else: + raise SyntaxError("unsupported picture format in MPO") + mptypemap = { + 0x000000: 'Undefined', + 0x010001: 'Large Thumbnail (VGA Equivalent)', + 0x010002: 'Large Thumbnail (Full HD Equivalent)', + 0x020001: 'Multi-Frame Image (Panorama)', + 0x020002: 'Multi-Frame Image: (Disparity)', + 0x020003: 'Multi-Frame Image: (Multi-Angle)', + 0x030000: 'Baseline MP Primary Image' + } + mpentryattr['MPType'] = mptypemap.get(mpentryattr['MPType'], + 'Unknown') + mpentry['Attribute'] = mpentryattr + mpentries.append(mpentry) + mp[0xB002] = mpentries + except KeyError: + raise SyntaxError("malformed MP Index (bad MP Entry)") + # Next we should try and parse the individual image unique ID list; + # we don't because I've never seen this actually used in a real MPO + # file and so can't test it. + return mp + + +# -------------------------------------------------------------------- +# stuff to save JPEG files + +RAWMODE = { + "1": "L", + "L": "L", + "RGB": "RGB", + "RGBX": "RGB", + "CMYK": "CMYK;I", # assume adobe conventions + "YCbCr": "YCbCr", +} + +zigzag_index = (0, 1, 5, 6, 14, 15, 27, 28, # noqa: E128 + 2, 4, 7, 13, 16, 26, 29, 42, + 3, 8, 12, 17, 25, 30, 41, 43, + 9, 11, 18, 24, 31, 40, 44, 53, + 10, 19, 23, 32, 39, 45, 52, 54, + 20, 22, 33, 38, 46, 51, 55, 60, + 21, 34, 37, 47, 50, 56, 59, 61, + 35, 36, 48, 49, 57, 58, 62, 63) + +samplings = {(1, 1, 1, 1, 1, 1): 0, + (2, 1, 1, 1, 1, 1): 1, + (2, 2, 1, 1, 1, 1): 2, + } + + +def convert_dict_qtables(qtables): + qtables = [qtables[key] for key in range(len(qtables)) if key in qtables] + for idx, table in enumerate(qtables): + qtables[idx] = [table[i] for i in zigzag_index] + return qtables + + +def get_sampling(im): + # There's no subsampling when image have only 1 layer + # (grayscale images) or when they are CMYK (4 layers), + # so set subsampling to default value. + # + # NOTE: currently Pillow can't encode JPEG to YCCK format. + # If YCCK support is added in the future, subsampling code will have + # to be updated (here and in JpegEncode.c) to deal with 4 layers. + if not hasattr(im, 'layers') or im.layers in (1, 4): + return -1 + sampling = im.layer[0][1:3] + im.layer[1][1:3] + im.layer[2][1:3] + return samplings.get(sampling, -1) + + +def _save(im, fp, filename): + + try: + rawmode = RAWMODE[im.mode] + except KeyError: + raise IOError("cannot write mode %s as JPEG" % im.mode) + + info = im.encoderinfo + + dpi = [int(round(x)) for x in info.get("dpi", (0, 0))] + + quality = info.get("quality", 0) + subsampling = info.get("subsampling", -1) + qtables = info.get("qtables") + + if quality == "keep": + quality = 0 + subsampling = "keep" + qtables = "keep" + elif quality in presets: + preset = presets[quality] + quality = 0 + subsampling = preset.get('subsampling', -1) + qtables = preset.get('quantization') + elif not isinstance(quality, int): + raise ValueError("Invalid quality setting") + else: + if subsampling in presets: + subsampling = presets[subsampling].get('subsampling', -1) + if isStringType(qtables) and qtables in presets: + qtables = presets[qtables].get('quantization') + + if subsampling == "4:4:4": + subsampling = 0 + elif subsampling == "4:2:2": + subsampling = 1 + elif subsampling == "4:2:0": + subsampling = 2 + elif subsampling == "4:1:1": + # For compatibility. Before Pillow 4.3, 4:1:1 actually meant 4:2:0. + # Set 4:2:0 if someone is still using that value. + subsampling = 2 + elif subsampling == "keep": + if im.format != "JPEG": + raise ValueError( + "Cannot use 'keep' when original image is not a JPEG") + subsampling = get_sampling(im) + + def validate_qtables(qtables): + if qtables is None: + return qtables + if isStringType(qtables): + try: + lines = [int(num) for line in qtables.splitlines() + for num in line.split('#', 1)[0].split()] + except ValueError: + raise ValueError("Invalid quantization table") + else: + qtables = [lines[s:s+64] for s in range(0, len(lines), 64)] + if isinstance(qtables, (tuple, list, dict)): + if isinstance(qtables, dict): + qtables = convert_dict_qtables(qtables) + elif isinstance(qtables, tuple): + qtables = list(qtables) + if not (0 < len(qtables) < 5): + raise ValueError("None or too many quantization tables") + for idx, table in enumerate(qtables): + try: + if len(table) != 64: + raise TypeError + table = array.array('B', table) + except TypeError: + raise ValueError("Invalid quantization table") + else: + qtables[idx] = list(table) + return qtables + + if qtables == "keep": + if im.format != "JPEG": + raise ValueError( + "Cannot use 'keep' when original image is not a JPEG") + qtables = getattr(im, "quantization", None) + qtables = validate_qtables(qtables) + + extra = b"" + + icc_profile = info.get("icc_profile") + if icc_profile: + ICC_OVERHEAD_LEN = 14 + MAX_BYTES_IN_MARKER = 65533 + MAX_DATA_BYTES_IN_MARKER = MAX_BYTES_IN_MARKER - ICC_OVERHEAD_LEN + markers = [] + while icc_profile: + markers.append(icc_profile[:MAX_DATA_BYTES_IN_MARKER]) + icc_profile = icc_profile[MAX_DATA_BYTES_IN_MARKER:] + i = 1 + for marker in markers: + size = struct.pack(">H", 2 + ICC_OVERHEAD_LEN + len(marker)) + extra += (b"\xFF\xE2" + size + b"ICC_PROFILE\0" + o8(i) + + o8(len(markers)) + marker) + i += 1 + + # "progressive" is the official name, but older documentation + # says "progression" + # FIXME: issue a warning if the wrong form is used (post-1.1.7) + progressive = (info.get("progressive", False) or + info.get("progression", False)) + + optimize = info.get("optimize", False) + + exif = info.get("exif", b"") + if isinstance(exif, Image.Exif): + exif = exif.tobytes() + + # get keyword arguments + im.encoderconfig = ( + quality, + progressive, + info.get("smooth", 0), + optimize, + info.get("streamtype", 0), + dpi[0], dpi[1], + subsampling, + qtables, + extra, + exif + ) + + # if we optimize, libjpeg needs a buffer big enough to hold the whole image + # in a shot. Guessing on the size, at im.size bytes. (raw pixel size is + # channels*size, this is a value that's been used in a django patch. + # https://github.com/matthewwithanm/django-imagekit/issues/50 + bufsize = 0 + if optimize or progressive: + # 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: + bufsize = 2 * im.size[0] * im.size[1] + else: + bufsize = im.size[0] * im.size[1] + + # The EXIF info needs to be written as one block, + APP1, + one spare byte. + # Ensure that our buffer is big enough. Same with the icc_profile block. + bufsize = max(ImageFile.MAXBLOCK, bufsize, len(exif) + 5, + len(extra) + 1) + + ImageFile._save(im, fp, [("jpeg", (0, 0)+im.size, 0, rawmode)], bufsize) + + +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: + os.unlink(tempfile) + except OSError: + pass + + +## +# Factory for making JPEG and MPO instances +def jpeg_factory(fp=None, filename=None): + im = JpegImageFile(fp, filename) + try: + mpheader = im._getmp() + if mpheader[45057] > 1: + # It's actually an MPO + from .MpoImagePlugin import MpoImageFile + # Don't reload everything, just convert it. + im = MpoImageFile.adopt(im, mpheader) + except (TypeError, IndexError): + # It is really a JPEG + pass + except SyntaxError: + warnings.warn("Image appears to be a malformed MPO file, it will be " + "interpreted as a base JPEG file") + return im + + +# --------------------------------------------------------------------- +# Registry stuff + +Image.register_open(JpegImageFile.format, jpeg_factory, _accept) +Image.register_save(JpegImageFile.format, _save) + +Image.register_extensions(JpegImageFile.format, + [".jfif", ".jpe", ".jpg", ".jpeg"]) + +Image.register_mime(JpegImageFile.format, "image/jpeg") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/JpegPresets.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/JpegPresets.py new file mode 100644 index 00000000..f7a533c1 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/JpegPresets.py @@ -0,0 +1,242 @@ +""" +JPEG quality settings equivalent to the Photoshop settings. + +More presets can be added to the presets dict if needed. + +Can be use when saving JPEG file. + +To apply the preset, specify:: + + quality="preset_name" + +To apply only the quantization table:: + + qtables="preset_name" + +To apply only the subsampling setting:: + + subsampling="preset_name" + +Example:: + + im.save("image_name.jpg", quality="web_high") + + +Subsampling +----------- + +Subsampling is the practice of encoding images by implementing less resolution +for chroma information than for luma information. +(ref.: https://en.wikipedia.org/wiki/Chroma_subsampling) + +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. + + +Quantization tables +------------------- + +They are values use by the DCT (Discrete cosine transform) to remove +*unnecessary* information from the image (the lossy part of the compression). +(ref.: https://en.wikipedia.org/wiki/Quantization_matrix#Quantization_matrices, +https://en.wikipedia.org/wiki/JPEG#Quantization) + +You can get the quantization tables of a JPEG with:: + + im.quantization + +This will return a dict with a number of arrays. You can pass this dict +directly as the qtables argument when saving a JPEG. + +The tables format between im.quantization and quantization in presets differ in +3 ways: + +1. The base container of the preset is a list with sublists instead of dict. + dict[0] -> list[0], dict[1] -> list[1], ... +2. Each table in a preset is a list instead of an array. +3. The zigzag order is remove in the preset (needed by libjpeg >= 6a). + +You can convert the dict format to the preset format with the +`JpegImagePlugin.convert_dict_qtables(dict_qtables)` function. + +Libjpeg ref.: +https://web.archive.org/web/20120328125543/http://www.jpegcameras.com/libjpeg/libjpeg-3.html + +""" + +presets = { # noqa: E128 + 'web_low': {'subsampling': 2, # "4:2:0" + 'quantization': [ + [20, 16, 25, 39, 50, 46, 62, 68, + 16, 18, 23, 38, 38, 53, 65, 68, + 25, 23, 31, 38, 53, 65, 68, 68, + 39, 38, 38, 53, 65, 68, 68, 68, + 50, 38, 53, 65, 68, 68, 68, 68, + 46, 53, 65, 68, 68, 68, 68, 68, + 62, 65, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68], + [21, 25, 32, 38, 54, 68, 68, 68, + 25, 28, 24, 38, 54, 68, 68, 68, + 32, 24, 32, 43, 66, 68, 68, 68, + 38, 38, 43, 53, 68, 68, 68, 68, + 54, 54, 66, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68] + ]}, + 'web_medium': {'subsampling': 2, # "4:2:0" + 'quantization': [ + [16, 11, 11, 16, 23, 27, 31, 30, + 11, 12, 12, 15, 20, 23, 23, 30, + 11, 12, 13, 16, 23, 26, 35, 47, + 16, 15, 16, 23, 26, 37, 47, 64, + 23, 20, 23, 26, 39, 51, 64, 64, + 27, 23, 26, 37, 51, 64, 64, 64, + 31, 23, 35, 47, 64, 64, 64, 64, + 30, 30, 47, 64, 64, 64, 64, 64], + [17, 15, 17, 21, 20, 26, 38, 48, + 15, 19, 18, 17, 20, 26, 35, 43, + 17, 18, 20, 22, 26, 30, 46, 53, + 21, 17, 22, 28, 30, 39, 53, 64, + 20, 20, 26, 30, 39, 48, 64, 64, + 26, 26, 30, 39, 48, 63, 64, 64, + 38, 35, 46, 53, 64, 64, 64, 64, + 48, 43, 53, 64, 64, 64, 64, 64] + ]}, + 'web_high': {'subsampling': 0, # "4:4:4" + 'quantization': [ + [6, 4, 4, 6, 9, 11, 12, 16, + 4, 5, 5, 6, 8, 10, 12, 12, + 4, 5, 5, 6, 10, 12, 14, 19, + 6, 6, 6, 11, 12, 15, 19, 28, + 9, 8, 10, 12, 16, 20, 27, 31, + 11, 10, 12, 15, 20, 27, 31, 31, + 12, 12, 14, 19, 27, 31, 31, 31, + 16, 12, 19, 28, 31, 31, 31, 31], + [7, 7, 13, 24, 26, 31, 31, 31, + 7, 12, 16, 21, 31, 31, 31, 31, + 13, 16, 17, 31, 31, 31, 31, 31, + 24, 21, 31, 31, 31, 31, 31, 31, + 26, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31] + ]}, + 'web_very_high': {'subsampling': 0, # "4:4:4" + 'quantization': [ + [2, 2, 2, 2, 3, 4, 5, 6, + 2, 2, 2, 2, 3, 4, 5, 6, + 2, 2, 2, 2, 4, 5, 7, 9, + 2, 2, 2, 4, 5, 7, 9, 12, + 3, 3, 4, 5, 8, 10, 12, 12, + 4, 4, 5, 7, 10, 12, 12, 12, + 5, 5, 7, 9, 12, 12, 12, 12, + 6, 6, 9, 12, 12, 12, 12, 12], + [3, 3, 5, 9, 13, 15, 15, 15, + 3, 4, 6, 11, 14, 12, 12, 12, + 5, 6, 9, 14, 12, 12, 12, 12, + 9, 11, 14, 12, 12, 12, 12, 12, + 13, 14, 12, 12, 12, 12, 12, 12, + 15, 12, 12, 12, 12, 12, 12, 12, + 15, 12, 12, 12, 12, 12, 12, 12, + 15, 12, 12, 12, 12, 12, 12, 12] + ]}, + 'web_maximum': {'subsampling': 0, # "4:4:4" + 'quantization': [ + [1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 2, 2, 3, + 1, 1, 1, 1, 2, 2, 3, 3, + 1, 1, 1, 2, 2, 3, 3, 3, + 1, 1, 2, 2, 3, 3, 3, 3], + [1, 1, 1, 2, 2, 3, 3, 3, + 1, 1, 1, 2, 3, 3, 3, 3, + 1, 1, 1, 3, 3, 3, 3, 3, + 2, 2, 3, 3, 3, 3, 3, 3, + 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3] + ]}, + 'low': {'subsampling': 2, # "4:2:0" + 'quantization': [ + [18, 14, 14, 21, 30, 35, 34, 17, + 14, 16, 16, 19, 26, 23, 12, 12, + 14, 16, 17, 21, 23, 12, 12, 12, + 21, 19, 21, 23, 12, 12, 12, 12, + 30, 26, 23, 12, 12, 12, 12, 12, + 35, 23, 12, 12, 12, 12, 12, 12, + 34, 12, 12, 12, 12, 12, 12, 12, + 17, 12, 12, 12, 12, 12, 12, 12], + [20, 19, 22, 27, 20, 20, 17, 17, + 19, 25, 23, 14, 14, 12, 12, 12, + 22, 23, 14, 14, 12, 12, 12, 12, + 27, 14, 14, 12, 12, 12, 12, 12, + 20, 14, 12, 12, 12, 12, 12, 12, + 20, 12, 12, 12, 12, 12, 12, 12, + 17, 12, 12, 12, 12, 12, 12, 12, + 17, 12, 12, 12, 12, 12, 12, 12] + ]}, + 'medium': {'subsampling': 2, # "4:2:0" + 'quantization': [ + [12, 8, 8, 12, 17, 21, 24, 17, + 8, 9, 9, 11, 15, 19, 12, 12, + 8, 9, 10, 12, 19, 12, 12, 12, + 12, 11, 12, 21, 12, 12, 12, 12, + 17, 15, 19, 12, 12, 12, 12, 12, + 21, 19, 12, 12, 12, 12, 12, 12, + 24, 12, 12, 12, 12, 12, 12, 12, + 17, 12, 12, 12, 12, 12, 12, 12], + [13, 11, 13, 16, 20, 20, 17, 17, + 11, 14, 14, 14, 14, 12, 12, 12, + 13, 14, 14, 14, 12, 12, 12, 12, + 16, 14, 14, 12, 12, 12, 12, 12, + 20, 14, 12, 12, 12, 12, 12, 12, + 20, 12, 12, 12, 12, 12, 12, 12, + 17, 12, 12, 12, 12, 12, 12, 12, + 17, 12, 12, 12, 12, 12, 12, 12] + ]}, + 'high': {'subsampling': 0, # "4:4:4" + 'quantization': [ + [6, 4, 4, 6, 9, 11, 12, 16, + 4, 5, 5, 6, 8, 10, 12, 12, + 4, 5, 5, 6, 10, 12, 12, 12, + 6, 6, 6, 11, 12, 12, 12, 12, + 9, 8, 10, 12, 12, 12, 12, 12, + 11, 10, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, + 16, 12, 12, 12, 12, 12, 12, 12], + [7, 7, 13, 24, 20, 20, 17, 17, + 7, 12, 16, 14, 14, 12, 12, 12, + 13, 16, 14, 14, 12, 12, 12, 12, + 24, 14, 14, 12, 12, 12, 12, 12, + 20, 14, 12, 12, 12, 12, 12, 12, + 20, 12, 12, 12, 12, 12, 12, 12, + 17, 12, 12, 12, 12, 12, 12, 12, + 17, 12, 12, 12, 12, 12, 12, 12] + ]}, + 'maximum': {'subsampling': 0, # "4:4:4" + 'quantization': [ + [2, 2, 2, 2, 3, 4, 5, 6, + 2, 2, 2, 2, 3, 4, 5, 6, + 2, 2, 2, 2, 4, 5, 7, 9, + 2, 2, 2, 4, 5, 7, 9, 12, + 3, 3, 4, 5, 8, 10, 12, 12, + 4, 4, 5, 7, 10, 12, 12, 12, + 5, 5, 7, 9, 12, 12, 12, 12, + 6, 6, 9, 12, 12, 12, 12, 12], + [3, 3, 5, 9, 13, 15, 15, 15, + 3, 4, 6, 10, 14, 12, 12, 12, + 5, 6, 9, 14, 12, 12, 12, 12, + 9, 10, 14, 12, 12, 12, 12, 12, + 13, 14, 12, 12, 12, 12, 12, 12, + 15, 12, 12, 12, 12, 12, 12, 12, + 15, 12, 12, 12, 12, 12, 12, 12, + 15, 12, 12, 12, 12, 12, 12, 12] + ]}, +} diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/McIdasImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/McIdasImagePlugin.py new file mode 100644 index 00000000..2cdb6f82 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/McIdasImagePlugin.py @@ -0,0 +1,77 @@ +# +# The Python Imaging Library. +# $Id$ +# +# Basic McIdas support for PIL +# +# History: +# 1997-05-05 fl Created (8-bit images only) +# 2009-03-08 fl Added 16/32-bit support. +# +# Thanks to Richard Jones and Craig Swank for specs and samples. +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1997. +# +# See the README file for information on usage and redistribution. +# + +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" + + +## +# Image plugin for McIdas area images. + +class McIdasImageFile(ImageFile.ImageFile): + + format = "MCIDAS" + format_description = "McIdas area file" + + def _open(self): + + # parse area file directory + s = self.fp.read(256) + if not _accept(s) or len(s) != 256: + raise SyntaxError("not an McIdas area file") + + self.area_descriptor_raw = s + self.area_descriptor = w = [0] + list(struct.unpack("!64i", s)) + + # get mode + if w[11] == 1: + mode = rawmode = "L" + elif w[11] == 2: + # FIXME: add memory map support + mode = "I" + rawmode = "I;16B" + elif w[11] == 4: + # FIXME: add memory map support + mode = "I" + rawmode = "I;32B" + else: + raise SyntaxError("unsupported McIdas format") + + self.mode = mode + self._size = w[10], w[9] + + offset = w[34] + w[15] + stride = w[15] + w[10]*w[11]*w[14] + + self.tile = [("raw", (0, 0) + self.size, offset, (rawmode, stride, 1))] + + +# -------------------------------------------------------------------- +# registry + +Image.register_open(McIdasImageFile.format, McIdasImageFile, _accept) + +# no default extension diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MicImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MicImagePlugin.py new file mode 100644 index 00000000..8c7707da --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MicImagePlugin.py @@ -0,0 +1,117 @@ +# +# The Python Imaging Library. +# $Id$ +# +# Microsoft Image Composer support for PIL +# +# Notes: +# uses TiffImagePlugin.py to read the actual image streams +# +# History: +# 97-01-20 fl Created +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1997. +# +# See the README file for information on usage and redistribution. +# + + +from . import Image, TiffImagePlugin + +import olefile + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.1" + + +# +# -------------------------------------------------------------------- + + +def _accept(prefix): + return prefix[:8] == olefile.MAGIC + + +## +# Image plugin for Microsoft's Image Composer file format. + +class MicImageFile(TiffImagePlugin.TiffImageFile): + + format = "MIC" + format_description = "Microsoft Image Composer" + _close_exclusive_fp_after_loading = False + + def _open(self): + + # read the OLE directory and see if this is a likely + # to be a Microsoft Image Composer file + + try: + self.ole = olefile.OleFileIO(self.fp) + except IOError: + raise SyntaxError("not an MIC file; invalid OLE file") + + # find ACI subfiles with Image members (maybe not the + # best way to identify MIC files, but what the... ;-) + + self.images = [] + for path in self.ole.listdir(): + if path[1:] and path[0][-4:] == ".ACI" and path[1] == "Image": + self.images.append(path) + + # if we didn't find any images, this is probably not + # an MIC file. + if not self.images: + raise SyntaxError("not an MIC file; no image entries") + + self.__fp = self.fp + self.frame = None + + if len(self.images) > 1: + self.category = Image.CONTAINER + + self.seek(0) + + @property + def n_frames(self): + return len(self.images) + + @property + def is_animated(self): + return len(self.images) > 1 + + def seek(self, frame): + if not self._seek_check(frame): + return + try: + filename = self.images[frame] + except IndexError: + raise EOFError("no such frame") + + self.fp = self.ole.openstream(filename) + + TiffImagePlugin.TiffImageFile._open(self) + + self.frame = frame + + def tell(self): + return self.frame + + def _close__fp(self): + try: + if self.__fp != self.fp: + self.__fp.close() + except AttributeError: + pass + finally: + self.__fp = None + + +# +# -------------------------------------------------------------------- + +Image.register_open(MicImageFile.format, MicImageFile, _accept) + +Image.register_extension(MicImageFile.format, ".mic") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MpegImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MpegImagePlugin.py new file mode 100644 index 00000000..7f419c5d --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MpegImagePlugin.py @@ -0,0 +1,87 @@ +# +# The Python Imaging Library. +# $Id$ +# +# MPEG file handling +# +# History: +# 95-09-09 fl Created +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1995. +# +# See the README file for information on usage and redistribution. +# + + +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): + + def __init__(self, fp): + self.fp = fp + self.bits = 0 + self.bitbuffer = 0 + + def next(self): + return i8(self.fp.read(1)) + + def peek(self, bits): + while self.bits < bits: + c = self.next() + if c < 0: + self.bits = 0 + continue + self.bitbuffer = (self.bitbuffer << 8) + c + self.bits += 8 + return self.bitbuffer >> (self.bits - bits) & (1 << bits) - 1 + + def skip(self, bits): + while self.bits < bits: + self.bitbuffer = (self.bitbuffer << 8) + i8(self.fp.read(1)) + self.bits += 8 + self.bits = self.bits - bits + + def read(self, bits): + v = self.peek(bits) + self.bits = self.bits - bits + return v + + +## +# Image plugin for MPEG streams. This plugin can identify a stream, +# but it cannot read it. + +class MpegImageFile(ImageFile.ImageFile): + + format = "MPEG" + format_description = "MPEG" + + def _open(self): + + s = BitStream(self.fp) + + if s.read(32) != 0x1B3: + raise SyntaxError("not an MPEG file") + + self.mode = "RGB" + self._size = s.read(12), s.read(12) + + +# -------------------------------------------------------------------- +# Registry stuff + +Image.register_open(MpegImageFile.format, MpegImageFile) + +Image.register_extensions(MpegImageFile.format, [".mpg", ".mpeg"]) + +Image.register_mime(MpegImageFile.format, "video/mpeg") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MpoImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MpoImagePlugin.py new file mode 100644 index 00000000..ead2f1ff --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MpoImagePlugin.py @@ -0,0 +1,144 @@ +# +# The Python Imaging Library. +# $Id$ +# +# MPO file handling +# +# See "Multi-Picture Format" (CIPA DC-007-Translation 2009, Standard of the +# Camera & Imaging Products Association) +# +# The multi-picture object combines multiple JPEG images (with a modified EXIF +# data format) into a single file. While it can theoretically be used much like +# a GIF animation, it is commonly used to represent 3D photographs and is (as +# of this writing) the most commonly used format by 3D cameras. +# +# History: +# 2014-03-13 Feneric Created +# +# See the README file for information on usage and redistribution. +# + +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) + + +def _save(im, fp, filename): + # Note that we can only save the current frame at present + return JpegImagePlugin._save(im, fp, filename) + + +## +# Image plugin for MPO images. + +class MpoImageFile(JpegImagePlugin.JpegImageFile): + + format = "MPO" + format_description = "MPO (CIPA DC-007)" + _close_exclusive_fp_after_loading = False + + def _open(self): + self.fp.seek(0) # prep the fp in order to pass the JPEG test + JpegImagePlugin.JpegImageFile._open(self) + self._after_jpeg_open() + + def _after_jpeg_open(self, mpheader=None): + self.mpinfo = mpheader if mpheader is not None else self._getmp() + self.__framecount = self.mpinfo[0xB001] + self.__mpoffsets = [mpent['DataOffset'] + self.info['mpoffset'] + for mpent in self.mpinfo[0xB002]] + self.__mpoffsets[0] = 0 + # Note that the following assertion will only be invalid if something + # gets broken within JpegImagePlugin. + assert self.__framecount == len(self.__mpoffsets) + del self.info['mpoffset'] # no longer needed + self.__fp = self.fp # FIXME: hack + self.__fp.seek(self.__mpoffsets[0]) # get ready to read first frame + self.__frame = 0 + self.offset = 0 + # for now we can only handle reading and individual frame extraction + self.readonly = 1 + + def load_seek(self, pos): + self.__fp.seek(pos) + + @property + def n_frames(self): + return self.__framecount + + @property + def is_animated(self): + return self.__framecount > 1 + + def seek(self, frame): + if not self._seek_check(frame): + return + self.fp = self.__fp + self.offset = self.__mpoffsets[frame] + + self.fp.seek(self.offset + 2) # skip SOI marker + if "parsed_exif" in self.info: + del self.info["parsed_exif"] + if i16(self.fp.read(2)) == 0xFFE1: # APP1 + n = i16(self.fp.read(2))-2 + self.info["exif"] = ImageFile._safe_read(self.fp, n) + + exif = self._getexif() + if 40962 in exif and 40963 in exif: + self._size = (exif[40962], exif[40963]) + elif "exif" in self.info: + del self.info["exif"] + + self.tile = [ + ("jpeg", (0, 0) + self.size, self.offset, (self.mode, "")) + ] + self.__frame = frame + + def tell(self): + return self.__frame + + def _close__fp(self): + try: + if self.__fp != self.fp: + self.__fp.close() + except AttributeError: + pass + finally: + self.__fp = None + + @staticmethod + def adopt(jpeg_instance, mpheader=None): + """ + Transform the instance of JpegImageFile into + an instance of MpoImageFile. + After the call, the JpegImageFile is extended + to be an MpoImageFile. + + This is essentially useful when opening a JPEG + file that reveals itself as an MPO, to avoid + double call to _open. + """ + jpeg_instance.__class__ = MpoImageFile + jpeg_instance._after_jpeg_open(mpheader) + return jpeg_instance + + +# --------------------------------------------------------------------- +# Registry stuff + +# Note that since MPO shares a factory with JPEG, we do not need to do a +# separate registration for it here. +# Image.register_open(MpoImageFile.format, +# JpegImagePlugin.jpeg_factory, _accept) +Image.register_save(MpoImageFile.format, _save) + +Image.register_extension(MpoImageFile.format, ".mpo") + +Image.register_mime(MpoImageFile.format, "image/mpo") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MspImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MspImagePlugin.py new file mode 100644 index 00000000..711f8f09 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/MspImagePlugin.py @@ -0,0 +1,195 @@ +# +# The Python Imaging Library. +# +# MSP file handling +# +# This is the format used by the Paint program in Windows 1 and 2. +# +# History: +# 95-09-05 fl Created +# 97-01-03 fl Read/write MSP images +# 17-02-21 es Fixed RLE interpretation +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1995-97. +# Copyright (c) Eric Soroos 2017. +# +# See the README file for information on usage and redistribution. +# +# More info on this format: https://archive.org/details/gg243631 +# Page 313: +# Figure 205. Windows Paint Version 1: "DanM" Format +# Figure 206. Windows Paint Version 2: "LinS" Format. Used in Windows V2.03 +# +# See also: http://www.fileformat.info/format/mspaint/egff.htm + +from . import Image, ImageFile +from ._binary import i16le as i16, o16le as o16, i8 +import struct +import io + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.1" + + +# +# read MSP files + + +def _accept(prefix): + return prefix[:4] in [b"DanM", b"LinS"] + + +## +# Image plugin for Windows MSP images. This plugin supports both +# uncompressed (Windows 1.0). + +class MspImageFile(ImageFile.ImageFile): + + format = "MSP" + format_description = "Windows Paint" + + def _open(self): + + # Header + s = self.fp.read(32) + if s[:4] not in [b"DanM", b"LinS"]: + raise SyntaxError("not an MSP file") + + # Header checksum + checksum = 0 + for i in range(0, 32, 2): + checksum = checksum ^ i16(s[i:i+2]) + if checksum != 0: + raise SyntaxError("bad MSP checksum") + + self.mode = "1" + self._size = i16(s[4:]), i16(s[6:]) + + if s[:4] == b"DanM": + self.tile = [("raw", (0, 0)+self.size, 32, ("1", 0, 1))] + else: + self.tile = [("MSP", (0, 0)+self.size, 32, None)] + + +class MspDecoder(ImageFile.PyDecoder): + # The algo for the MSP decoder is from + # http://www.fileformat.info/format/mspaint/egff.htm + # cc-by-attribution -- That page references is taken from the + # Encyclopedia of Graphics File Formats and is licensed by + # O'Reilly under the Creative Common/Attribution license + # + # For RLE encoded files, the 32byte header is followed by a scan + # line map, encoded as one 16bit word of encoded byte length per + # line. + # + # NOTE: the encoded length of the line can be 0. This was not + # handled in the previous version of this encoder, and there's no + # mention of how to handle it in the documentation. From the few + # examples I've seen, I've assumed that it is a fill of the + # background color, in this case, white. + # + # + # Pseudocode of the decoder: + # Read a BYTE value as the RunType + # If the RunType value is zero + # Read next byte as the RunCount + # Read the next byte as the RunValue + # Write the RunValue byte RunCount times + # If the RunType value is non-zero + # Use this value as the RunCount + # Read and write the next RunCount bytes literally + # + # e.g.: + # 0x00 03 ff 05 00 01 02 03 04 + # would yield the bytes: + # 0xff ff ff 00 01 02 03 04 + # + # which are then interpreted as a bit packed mode '1' image + + _pulls_fd = True + + def decode(self, buffer): + + img = io.BytesIO() + blank_line = bytearray((0xff,)*((self.state.xsize+7)//8)) + try: + self.fd.seek(32) + rowmap = struct.unpack_from("<%dH" % (self.state.ysize), + self.fd.read(self.state.ysize*2)) + except struct.error: + raise IOError("Truncated MSP file in row map") + + for x, rowlen in enumerate(rowmap): + try: + if rowlen == 0: + img.write(blank_line) + continue + row = self.fd.read(rowlen) + if len(row) != rowlen: + raise IOError( + "Truncated MSP file, expected %d bytes on row %s", + (rowlen, x)) + idx = 0 + while idx < rowlen: + runtype = i8(row[idx]) + idx += 1 + if runtype == 0: + (runcount, runval) = struct.unpack_from("Bc", row, idx) + img.write(runval * runcount) + idx += 2 + else: + runcount = runtype + img.write(row[idx:idx+runcount]) + idx += runcount + + except struct.error: + raise IOError("Corrupted MSP file in row %d" % x) + + self.set_as_raw(img.getvalue(), ("1", 0, 1)) + + return 0, 0 + + +Image.register_decoder('MSP', MspDecoder) + + +# +# write MSP files (uncompressed only) + + +def _save(im, fp, filename): + + if im.mode != "1": + raise IOError("cannot write mode %s as MSP" % im.mode) + + # create MSP header + header = [0] * 16 + + header[0], header[1] = i16(b"Da"), i16(b"nM") # version 1 + header[2], header[3] = im.size + header[4], header[5] = 1, 1 + header[6], header[7] = 1, 1 + header[8], header[9] = im.size + + checksum = 0 + for h in header: + checksum = checksum ^ h + header[12] = checksum # FIXME: is this the right field? + + # header + for h in header: + fp.write(o16(h)) + + # image body + ImageFile._save(im, fp, [("raw", (0, 0)+im.size, 32, ("1", 0, 1))]) + + +# +# registry + +Image.register_open(MspImageFile.format, MspImageFile, _accept) +Image.register_save(MspImageFile.format, _save) + +Image.register_extension(MspImageFile.format, ".msp") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PSDraw.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PSDraw.py new file mode 100644 index 00000000..d2ded6fe --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PSDraw.py @@ -0,0 +1,237 @@ +# +# The Python Imaging Library +# $Id$ +# +# simple postscript graphics interface +# +# History: +# 1996-04-20 fl Created +# 1999-01-10 fl Added gsave/grestore to image method +# 2005-05-04 fl Fixed floating point issue in image (from Eric Etheridge) +# +# Copyright (c) 1997-2005 by Secret Labs AB. All rights reserved. +# Copyright (c) 1996 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +from . import EpsImagePlugin +from ._util import py3 +import sys + +## +# Simple Postscript graphics interface. + + +class PSDraw(object): + """ + Sets up printing to the given file. If **fp** is omitted, + :py:attr:`sys.stdout` is assumed. + """ + + def __init__(self, fp=None): + if not fp: + fp = sys.stdout + self.fp = fp + + def _fp_write(self, to_write): + if not py3 or self.fp == sys.stdout: + self.fp.write(to_write) + else: + self.fp.write(bytes(to_write, 'UTF-8')) + + def begin_document(self, id=None): + """Set up printing of a document. (Write Postscript DSC header.)""" + # FIXME: incomplete + self._fp_write("%!PS-Adobe-3.0\n" + "save\n" + "/showpage { } def\n" + "%%EndComments\n" + "%%BeginDocument\n") + # self._fp_write(ERROR_PS) # debugging! + self._fp_write(EDROFF_PS) + self._fp_write(VDI_PS) + self._fp_write("%%EndProlog\n") + self.isofont = {} + + def end_document(self): + """Ends printing. (Write Postscript DSC footer.)""" + self._fp_write("%%EndDocument\n" + "restore showpage\n" + "%%End\n") + if hasattr(self.fp, "flush"): + self.fp.flush() + + def setfont(self, font, size): + """ + Selects which font to use. + + :param font: A Postscript font name + :param size: Size in points. + """ + if font not in self.isofont: + # reencode font + self._fp_write("/PSDraw-%s ISOLatin1Encoding /%s E\n" % + (font, font)) + self.isofont[font] = 1 + # rough + self._fp_write("/F0 %d /PSDraw-%s F\n" % (size, font)) + + def line(self, xy0, xy1): + """ + Draws a line between the two points. Coordinates are given in + Postscript point coordinates (72 points per inch, (0, 0) is the lower + left corner of the page). + """ + xy = xy0 + xy1 + self._fp_write("%d %d %d %d Vl\n" % xy) + + def rectangle(self, box): + """ + Draws a rectangle. + + :param box: A 4-tuple of integers whose order and function is currently + undocumented. + + Hint: the tuple is passed into this format string: + + .. code-block:: python + + %d %d M %d %d 0 Vr\n + """ + self._fp_write("%d %d M %d %d 0 Vr\n" % box) + + def text(self, xy, text): + """ + Draws text at the given position. You must use + :py:meth:`~PIL.PSDraw.PSDraw.setfont` before calling this method. + """ + text = "\\(".join(text.split("(")) + text = "\\)".join(text.split(")")) + xy = xy + (text,) + self._fp_write("%d %d M (%s) S\n" % xy) + + def image(self, box, im, dpi=None): + """Draw a PIL image, centered in the given box.""" + # default resolution depends on mode + if not dpi: + if im.mode == "1": + dpi = 200 # fax + else: + dpi = 100 # greyscale + # image size (on paper) + x = float(im.size[0] * 72) / dpi + y = float(im.size[1] * 72) / dpi + # max allowed size + xmax = float(box[2] - box[0]) + ymax = float(box[3] - box[1]) + if x > xmax: + y = y * xmax / x + x = xmax + if y > ymax: + x = x * ymax / y + 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)) + 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)) + EpsImagePlugin._save(im, self.fp, None, 0) + self._fp_write("\ngrestore\n") + +# -------------------------------------------------------------------- +# Postscript driver + +# +# EDROFF.PS -- Postscript driver for Edroff 2 +# +# History: +# 94-01-25 fl: created (edroff 2.04) +# +# Copyright (c) Fredrik Lundh 1994. +# + + +EDROFF_PS = """\ +/S { show } bind def +/P { moveto show } bind def +/M { moveto } bind def +/X { 0 rmoveto } bind def +/Y { 0 exch rmoveto } bind def +/E { findfont + dup maxlength dict begin + { + 1 index /FID ne { def } { pop pop } ifelse + } forall + /Encoding exch def + dup /FontName exch def + currentdict end definefont pop +} bind def +/F { findfont exch scalefont dup setfont + [ exch /setfont cvx ] cvx bind def +} bind def +""" + +# +# VDI.PS -- Postscript driver for VDI meta commands +# +# History: +# 94-01-25 fl: created (edroff 2.04) +# +# Copyright (c) Fredrik Lundh 1994. +# + +VDI_PS = """\ +/Vm { moveto } bind def +/Va { newpath arcn stroke } bind def +/Vl { moveto lineto stroke } bind def +/Vc { newpath 0 360 arc closepath } bind def +/Vr { exch dup 0 rlineto + exch dup neg 0 exch rlineto + exch neg 0 rlineto + 0 exch rlineto + 100 div setgray fill 0 setgray } bind def +/Tm matrix def +/Ve { Tm currentmatrix pop + translate scale newpath 0 0 .5 0 360 arc closepath + Tm setmatrix +} bind def +/Vf { currentgray exch setgray fill setgray } bind def +""" + +# +# ERROR.PS -- Error handler +# +# History: +# 89-11-21 fl: created (pslist 1.10) +# + +ERROR_PS = """\ +/landscape false def +/errorBUF 200 string def +/errorNL { currentpoint 10 sub exch pop 72 exch moveto } def +errordict begin /handleerror { + initmatrix /Courier findfont 10 scalefont setfont + newpath 72 720 moveto $error begin /newerror false def + (PostScript Error) show errorNL errorNL + (Error: ) show + /errorname load errorBUF cvs show errorNL errorNL + (Command: ) show + /command load dup type /stringtype ne { errorBUF cvs } if show + errorNL errorNL + (VMstatus: ) show + vmstatus errorBUF cvs show ( bytes available, ) show + errorBUF cvs show ( bytes used at level ) show + errorBUF cvs show errorNL errorNL + (Operand stargck: ) show errorNL /ostargck load { + dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL + } forall errorNL + (Execution stargck: ) show errorNL /estargck load { + dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL + } forall + end showpage +} def end +""" diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PaletteFile.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PaletteFile.py new file mode 100644 index 00000000..9ed69d68 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PaletteFile.py @@ -0,0 +1,55 @@ +# +# Python Imaging Library +# $Id$ +# +# stuff to read simple, teragon-style palette files +# +# History: +# 97-08-23 fl Created +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1997. +# +# See the README file for information on usage and redistribution. +# + +from ._binary import o8 + + +## +# File handler for Teragon-style palette files. + +class PaletteFile(object): + + rawmode = "RGB" + + def __init__(self, fp): + + self.palette = [(i, i, i) for i in range(256)] + + while True: + + s = fp.readline() + + if not s: + break + if s[0:1] == b"#": + continue + if len(s) > 100: + raise SyntaxError("bad palette file") + + v = [int(x) for x in s.split()] + try: + [i, r, g, b] = v + except ValueError: + [i, r] = v + g = b = r + + if 0 <= i <= 255: + self.palette[i] = o8(r) + o8(g) + o8(b) + + self.palette = b"".join(self.palette) + + def getpalette(self): + + return self.palette, self.rawmode diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PalmImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PalmImagePlugin.py new file mode 100644 index 00000000..09686720 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PalmImagePlugin.py @@ -0,0 +1,238 @@ +# +# The Python Imaging Library. +# $Id$ +# + +## +# Image plugin for Palm pixmap images (output only). +## + +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" + +_Palm8BitColormapValues = ( # noqa: E131 + (255, 255, 255), (255, 204, 255), (255, 153, 255), (255, 102, 255), + (255, 51, 255), (255, 0, 255), (255, 255, 204), (255, 204, 204), + (255, 153, 204), (255, 102, 204), (255, 51, 204), (255, 0, 204), + (255, 255, 153), (255, 204, 153), (255, 153, 153), (255, 102, 153), + (255, 51, 153), (255, 0, 153), (204, 255, 255), (204, 204, 255), + (204, 153, 255), (204, 102, 255), (204, 51, 255), (204, 0, 255), + (204, 255, 204), (204, 204, 204), (204, 153, 204), (204, 102, 204), + (204, 51, 204), (204, 0, 204), (204, 255, 153), (204, 204, 153), + (204, 153, 153), (204, 102, 153), (204, 51, 153), (204, 0, 153), + (153, 255, 255), (153, 204, 255), (153, 153, 255), (153, 102, 255), + (153, 51, 255), (153, 0, 255), (153, 255, 204), (153, 204, 204), + (153, 153, 204), (153, 102, 204), (153, 51, 204), (153, 0, 204), + (153, 255, 153), (153, 204, 153), (153, 153, 153), (153, 102, 153), + (153, 51, 153), (153, 0, 153), (102, 255, 255), (102, 204, 255), + (102, 153, 255), (102, 102, 255), (102, 51, 255), (102, 0, 255), + (102, 255, 204), (102, 204, 204), (102, 153, 204), (102, 102, 204), + (102, 51, 204), (102, 0, 204), (102, 255, 153), (102, 204, 153), + (102, 153, 153), (102, 102, 153), (102, 51, 153), (102, 0, 153), + (51, 255, 255), (51, 204, 255), (51, 153, 255), (51, 102, 255), + (51, 51, 255), (51, 0, 255), (51, 255, 204), (51, 204, 204), + (51, 153, 204), (51, 102, 204), (51, 51, 204), (51, 0, 204), + (51, 255, 153), (51, 204, 153), (51, 153, 153), (51, 102, 153), + (51, 51, 153), (51, 0, 153), (0, 255, 255), (0, 204, 255), + (0, 153, 255), (0, 102, 255), (0, 51, 255), (0, 0, 255), + (0, 255, 204), (0, 204, 204), (0, 153, 204), (0, 102, 204), + (0, 51, 204), (0, 0, 204), (0, 255, 153), (0, 204, 153), + (0, 153, 153), (0, 102, 153), (0, 51, 153), (0, 0, 153), + (255, 255, 102), (255, 204, 102), (255, 153, 102), (255, 102, 102), + (255, 51, 102), (255, 0, 102), (255, 255, 51), (255, 204, 51), + (255, 153, 51), (255, 102, 51), (255, 51, 51), (255, 0, 51), + (255, 255, 0), (255, 204, 0), (255, 153, 0), (255, 102, 0), + (255, 51, 0), (255, 0, 0), (204, 255, 102), (204, 204, 102), + (204, 153, 102), (204, 102, 102), (204, 51, 102), (204, 0, 102), + (204, 255, 51), (204, 204, 51), (204, 153, 51), (204, 102, 51), + (204, 51, 51), (204, 0, 51), (204, 255, 0), (204, 204, 0), + (204, 153, 0), (204, 102, 0), (204, 51, 0), (204, 0, 0), + (153, 255, 102), (153, 204, 102), (153, 153, 102), (153, 102, 102), + (153, 51, 102), (153, 0, 102), (153, 255, 51), (153, 204, 51), + (153, 153, 51), (153, 102, 51), (153, 51, 51), (153, 0, 51), + (153, 255, 0), (153, 204, 0), (153, 153, 0), (153, 102, 0), + (153, 51, 0), (153, 0, 0), (102, 255, 102), (102, 204, 102), + (102, 153, 102), (102, 102, 102), (102, 51, 102), (102, 0, 102), + (102, 255, 51), (102, 204, 51), (102, 153, 51), (102, 102, 51), + (102, 51, 51), (102, 0, 51), (102, 255, 0), (102, 204, 0), + (102, 153, 0), (102, 102, 0), (102, 51, 0), (102, 0, 0), + (51, 255, 102), (51, 204, 102), (51, 153, 102), (51, 102, 102), + (51, 51, 102), (51, 0, 102), (51, 255, 51), (51, 204, 51), + (51, 153, 51), (51, 102, 51), (51, 51, 51), (51, 0, 51), + (51, 255, 0), (51, 204, 0), (51, 153, 0), (51, 102, 0), + (51, 51, 0), (51, 0, 0), (0, 255, 102), (0, 204, 102), + (0, 153, 102), (0, 102, 102), (0, 51, 102), (0, 0, 102), + (0, 255, 51), (0, 204, 51), (0, 153, 51), (0, 102, 51), + (0, 51, 51), (0, 0, 51), (0, 255, 0), (0, 204, 0), + (0, 153, 0), (0, 102, 0), (0, 51, 0), (17, 17, 17), + (34, 34, 34), (68, 68, 68), (85, 85, 85), (119, 119, 119), + (136, 136, 136), (170, 170, 170), (187, 187, 187), (221, 221, 221), + (238, 238, 238), (192, 192, 192), (128, 0, 0), (128, 0, 128), + (0, 128, 0), (0, 128, 128), (0, 0, 0), (0, 0, 0), + (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), + (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), + (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), + (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), + (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), + (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0)) + + +# so build a prototype image to be used for palette resampling +def build_prototype_image(): + image = Image.new("L", (1, len(_Palm8BitColormapValues))) + image.putdata(list(range(len(_Palm8BitColormapValues)))) + palettedata = () + for colormapValue in _Palm8BitColormapValues: + palettedata += colormapValue + palettedata += (0, 0, 0)*(256 - len(_Palm8BitColormapValues)) + image.putpalette(palettedata) + return image + + +Palm8BitColormapImage = build_prototype_image() + +# OK, we now have in Palm8BitColormapImage, +# a "P"-mode image with the right palette +# +# -------------------------------------------------------------------- + +_FLAGS = { + "custom-colormap": 0x4000, + "is-compressed": 0x8000, + "has-transparent": 0x2000, + } + +_COMPRESSION_TYPES = { + "none": 0xFF, + "rle": 0x01, + "scanline": 0x00, + } + + +# +# -------------------------------------------------------------------- + +## +# (Internal) Image save plugin for the Palm format. + +def _save(im, fp, filename): + + if im.mode == "P": + + # we assume this is a color Palm image with the standard colormap, + # unless the "info" dict has a "custom-colormap" field + + rawmode = "P" + bpp = 8 + version = 1 + + elif (im.mode == "L" and + "bpp" in im.encoderinfo and + im.encoderinfo["bpp"] in (1, 2, 4)): + + # this is 8-bit grayscale, so we shift it to get the high-order bits, + # and invert it because + # Palm does greyscale from white (0) to black (1) + bpp = im.encoderinfo["bpp"] + im = im.point( + lambda x, shift=8-bpp, maxval=(1 << bpp)-1: maxval - (x >> shift)) + # we ignore the palette here + im.mode = "P" + rawmode = "P;" + str(bpp) + version = 1 + + elif im.mode == "L" and "bpp" in im.info and im.info["bpp"] in (1, 2, 4): + + # here we assume that even though the inherent mode is 8-bit grayscale, + # only the lower bpp bits are significant. + # We invert them to match the Palm. + bpp = im.info["bpp"] + im = im.point(lambda x, maxval=(1 << bpp)-1: maxval - (x & maxval)) + # we ignore the palette here + im.mode = "P" + rawmode = "P;" + str(bpp) + version = 1 + + elif im.mode == "1": + + # monochrome -- write it inverted, as is the Palm standard + rawmode = "1;I" + bpp = 1 + version = 0 + + else: + + raise IOError("cannot write mode %s as Palm" % im.mode) + + # + # make sure image data is available + im.load() + + # write header + + cols = im.size[0] + rows = im.size[1] + + rowbytes = int((cols + (16//bpp - 1)) / (16 // bpp)) * 2 + transparent_index = 0 + compression_type = _COMPRESSION_TYPES["none"] + + flags = 0 + if im.mode == "P" and "custom-colormap" in im.info: + flags = flags & _FLAGS["custom-colormap"] + colormapsize = 4 * 256 + 2 + colormapmode = im.palette.mode + colormap = im.getdata().getpalette() + else: + colormapsize = 0 + + if "offset" in im.info: + offset = (rowbytes * rows + 16 + 3 + colormapsize) // 4 + else: + offset = 0 + + fp.write(o16b(cols) + o16b(rows) + o16b(rowbytes) + o16b(flags)) + fp.write(o8(bpp)) + fp.write(o8(version)) + fp.write(o16b(offset)) + fp.write(o8(transparent_index)) + fp.write(o8(compression_type)) + fp.write(o16b(0)) # reserved by Palm + + # now write colormap if necessary + + if colormapsize > 0: + fp.write(o16b(256)) + for i in range(256): + fp.write(o8(i)) + if colormapmode == 'RGB': + fp.write( + o8(colormap[3 * i]) + + o8(colormap[3 * i + 1]) + + o8(colormap[3 * i + 2])) + elif colormapmode == 'RGBA': + fp.write( + o8(colormap[4 * i]) + + o8(colormap[4 * i + 1]) + + o8(colormap[4 * i + 2])) + + # now convert data to raw form + ImageFile._save( + im, fp, [("raw", (0, 0)+im.size, 0, (rawmode, rowbytes, 1))]) + + if hasattr(fp, "flush"): + fp.flush() + + +# +# -------------------------------------------------------------------- + +Image.register_save("Palm", _save) + +Image.register_extension("Palm", ".palm") + +Image.register_mime("Palm", "image/palm") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcdImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcdImagePlugin.py new file mode 100644 index 00000000..7e8fa312 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcdImagePlugin.py @@ -0,0 +1,68 @@ +# +# The Python Imaging Library. +# $Id$ +# +# PCD file handling +# +# History: +# 96-05-10 fl Created +# 96-05-27 fl Added draft mode (128x192, 256x384) +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1996. +# +# See the README file for information on usage and redistribution. +# + + +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 +# encoding. + +class PcdImageFile(ImageFile.ImageFile): + + format = "PCD" + format_description = "Kodak PhotoCD" + + def _open(self): + + # rough + self.fp.seek(2048) + s = self.fp.read(2048) + + if s[:4] != b"PCD_": + raise SyntaxError("not a PCD file") + + orientation = i8(s[1538]) & 3 + self.tile_post_rotate = None + if orientation == 1: + self.tile_post_rotate = 90 + elif orientation == 3: + self.tile_post_rotate = -90 + + self.mode = "RGB" + self._size = 768, 512 # FIXME: not correct for rotated images! + self.tile = [("pcd", (0, 0)+self.size, 96*2048, None)] + + def load_end(self): + if self.tile_post_rotate: + # Handle rotated PCDs + self.im = self.im.rotate(self.tile_post_rotate) + self._size = self.im.size + + +# +# registry + +Image.register_open(PcdImageFile.format, PcdImageFile) + +Image.register_extension(PcdImageFile.format, ".pcd") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcfFontFile.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcfFontFile.py new file mode 100644 index 00000000..b50fe72d --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcfFontFile.py @@ -0,0 +1,246 @@ +# +# THIS IS WORK IN PROGRESS +# +# The Python Imaging Library +# $Id$ +# +# portable compiled font file parser +# +# history: +# 1997-08-19 fl created +# 2003-09-13 fl fixed loading of unicode fonts +# +# Copyright (c) 1997-2003 by Secret Labs AB. +# Copyright (c) 1997-2003 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +import io +from . import Image, FontFile +from ._binary import i8, i16le as l16, i32le as l32, i16be as b16, i32be as b32 + +# -------------------------------------------------------------------- +# declarations + +PCF_MAGIC = 0x70636601 # "\x01fcp" + +PCF_PROPERTIES = (1 << 0) +PCF_ACCELERATORS = (1 << 1) +PCF_METRICS = (1 << 2) +PCF_BITMAPS = (1 << 3) +PCF_INK_METRICS = (1 << 4) +PCF_BDF_ENCODINGS = (1 << 5) +PCF_SWIDTHS = (1 << 6) +PCF_GLYPH_NAMES = (1 << 7) +PCF_BDF_ACCELERATORS = (1 << 8) + +BYTES_PER_ROW = [ + lambda bits: ((bits+7) >> 3), + lambda bits: ((bits+15) >> 3) & ~1, + lambda bits: ((bits+31) >> 3) & ~3, + lambda bits: ((bits+63) >> 3) & ~7, +] + + +def sz(s, o): + return s[o:s.index(b"\0", o)] + + +## +# Font file plugin for the X11 PCF format. + +class PcfFontFile(FontFile.FontFile): + + name = "name" + + def __init__(self, fp): + + magic = l32(fp.read(4)) + if magic != PCF_MAGIC: + raise SyntaxError("not a PCF file") + + FontFile.FontFile.__init__(self) + + count = l32(fp.read(4)) + self.toc = {} + for i in range(count): + type = l32(fp.read(4)) + self.toc[type] = l32(fp.read(4)), l32(fp.read(4)), l32(fp.read(4)) + + self.fp = fp + + self.info = self._load_properties() + + metrics = self._load_metrics() + bitmaps = self._load_bitmaps(metrics) + encoding = self._load_encoding() + + # + # create glyph structure + + for ch in range(256): + ix = encoding[ch] + if ix is not None: + x, y, l, r, w, a, d, f = metrics[ix] + glyph = (w, 0), (l, d-y, x+l, d), (0, 0, x, y), bitmaps[ix] + self.glyph[ch] = glyph + + def _getformat(self, tag): + + format, size, offset = self.toc[tag] + + fp = self.fp + fp.seek(offset) + + format = l32(fp.read(4)) + + if format & 4: + i16, i32 = b16, b32 + else: + i16, i32 = l16, l32 + + return fp, format, i16, i32 + + def _load_properties(self): + + # + # font properties + + properties = {} + + fp, format, i16, i32 = self._getformat(PCF_PROPERTIES) + + nprops = i32(fp.read(4)) + + # read property description + p = [] + for i in range(nprops): + p.append((i32(fp.read(4)), i8(fp.read(1)), i32(fp.read(4)))) + if nprops & 3: + fp.seek(4 - (nprops & 3), io.SEEK_CUR) # pad + + data = fp.read(i32(fp.read(4))) + + for k, s, v in p: + k = sz(data, k) + if s: + v = sz(data, v) + properties[k] = v + + return properties + + def _load_metrics(self): + + # + # font metrics + + metrics = [] + + fp, format, i16, i32 = self._getformat(PCF_METRICS) + + append = metrics.append + + if (format & 0xff00) == 0x100: + + # "compressed" metrics + for i in range(i16(fp.read(2))): + left = i8(fp.read(1)) - 128 + right = i8(fp.read(1)) - 128 + width = i8(fp.read(1)) - 128 + ascent = i8(fp.read(1)) - 128 + descent = i8(fp.read(1)) - 128 + xsize = right - left + ysize = ascent + descent + append( + (xsize, ysize, left, right, width, + ascent, descent, 0) + ) + + else: + + # "jumbo" metrics + for i in range(i32(fp.read(4))): + left = i16(fp.read(2)) + right = i16(fp.read(2)) + width = i16(fp.read(2)) + ascent = i16(fp.read(2)) + descent = i16(fp.read(2)) + attributes = i16(fp.read(2)) + xsize = right - left + ysize = ascent + descent + append( + (xsize, ysize, left, right, width, + ascent, descent, attributes) + ) + + return metrics + + def _load_bitmaps(self, metrics): + + # + # bitmap data + + bitmaps = [] + + fp, format, i16, i32 = self._getformat(PCF_BITMAPS) + + nbitmaps = i32(fp.read(4)) + + if nbitmaps != len(metrics): + raise IOError("Wrong number of bitmaps") + + offsets = [] + for i in range(nbitmaps): + offsets.append(i32(fp.read(4))) + + bitmapSizes = [] + for i in range(4): + bitmapSizes.append(i32(fp.read(4))) + + # byteorder = format & 4 # non-zero => MSB + bitorder = format & 8 # non-zero => MSB + padindex = format & 3 + + bitmapsize = bitmapSizes[padindex] + offsets.append(bitmapsize) + + data = fp.read(bitmapsize) + + pad = BYTES_PER_ROW[padindex] + mode = "1;R" + if bitorder: + mode = "1" + + for i in range(nbitmaps): + x, y, l, r, w, a, d, f = metrics[i] + b, e = offsets[i], offsets[i+1] + bitmaps.append( + Image.frombytes("1", (x, y), data[b:e], "raw", mode, pad(x)) + ) + + return bitmaps + + def _load_encoding(self): + + # map character code to bitmap index + encoding = [None] * 256 + + fp, format, i16, i32 = self._getformat(PCF_BDF_ENCODINGS) + + firstCol, lastCol = i16(fp.read(2)), i16(fp.read(2)) + firstRow, lastRow = i16(fp.read(2)), i16(fp.read(2)) + + i16(fp.read(2)) # default + + 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 + + return encoding diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcxImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcxImagePlugin.py new file mode 100644 index 00000000..02dbe26e --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PcxImagePlugin.py @@ -0,0 +1,184 @@ +# +# The Python Imaging Library. +# $Id$ +# +# PCX file handling +# +# This format was originally used by ZSoft's popular PaintBrush +# program for the IBM PC. It is also supported by many MS-DOS and +# Windows applications, including the Windows PaintBrush program in +# Windows 3. +# +# history: +# 1995-09-01 fl Created +# 1996-05-20 fl Fixed RGB support +# 1997-01-03 fl Fixed 2-bit and 4-bit support +# 1999-02-03 fl Fixed 8-bit support (broken in 1.0b1) +# 1999-02-07 fl Added write support +# 2002-06-09 fl Made 2-bit and 4-bit support a bit more robust +# 2002-07-30 fl Seek from to current position, not beginning of file +# 2003-06-03 fl Extract DPI settings (info["dpi"]) +# +# Copyright (c) 1997-2003 by Secret Labs AB. +# Copyright (c) 1995-2003 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +import io +import logging +from . import Image, ImageFile, ImagePalette +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] + + +## +# Image plugin for Paintbrush images. + +class PcxImageFile(ImageFile.ImageFile): + + format = "PCX" + format_description = "Paintbrush" + + def _open(self): + + # header + s = self.fp.read(128) + if not _accept(s): + raise SyntaxError("not a PCX file") + + # image + bbox = i16(s, 4), i16(s, 6), i16(s, 8)+1, i16(s, 10)+1 + if bbox[2] <= bbox[0] or bbox[3] <= bbox[1]: + raise SyntaxError("bad PCX image size") + logger.debug("BBox: %s %s %s %s", *bbox) + + # format + version = i8(s[1]) + bits = i8(s[3]) + planes = i8(s[65]) + stride = i16(s, 66) + logger.debug("PCX version %s, bits %s, planes %s, stride %s", + version, bits, planes, stride) + + self.info["dpi"] = i16(s, 12), i16(s, 14) + + if bits == 1 and planes == 1: + mode = rawmode = "1" + + elif bits == 1 and planes in (2, 4): + mode = "P" + rawmode = "P;%dL" % planes + self.palette = ImagePalette.raw("RGB", s[16:64]) + + elif version == 5 and bits == 8 and planes == 1: + mode = rawmode = "L" + # FIXME: hey, this doesn't work with the incremental loader !!! + self.fp.seek(-769, io.SEEK_END) + s = self.fp.read(769) + if len(s) == 769 and i8(s[0]) == 12: + # check if the palette is linear greyscale + for i in range(256): + if s[i*3+1:i*3+4] != o8(i)*3: + mode = rawmode = "P" + break + if mode == "P": + self.palette = ImagePalette.raw("RGB", s[1:]) + self.fp.seek(128) + + elif version == 5 and bits == 8 and planes == 3: + mode = "RGB" + rawmode = "RGB;L" + + else: + raise IOError("unknown PCX mode") + + self.mode = mode + self._size = bbox[2]-bbox[0], bbox[3]-bbox[1] + + bbox = (0, 0) + self.size + logger.debug("size: %sx%s", *self.size) + + self.tile = [("pcx", bbox, self.fp.tell(), (rawmode, planes * stride))] + +# -------------------------------------------------------------------- +# save PCX files + + +SAVE = { + # mode: (version, bits, planes, raw mode) + "1": (2, 1, 1, "1"), + "L": (5, 8, 1, "L"), + "P": (5, 8, 1, "P"), + "RGB": (5, 8, 3, "RGB;L"), +} + + +def _save(im, fp, filename): + + try: + version, bits, planes, rawmode = SAVE[im.mode] + except KeyError: + raise ValueError("Cannot save %s images as PCX" % im.mode) + + # bytes per plane + stride = (im.size[0] * bits + 7) // 8 + # stride should be even + stride += stride % 2 + # Stride needs to be kept in sync with the PcxEncode.c version. + # Ideally it should be passed in in the state, but the bytes value + # gets overwritten. + + logger.debug("PcxImagePlugin._save: xwidth: %d, bits: %d, stride: %d", + im.size[0], bits, stride) + + # under windows, we could determine the current screen size with + # "Image.core.display_mode()[1]", but I think that's overkill... + + screen = im.size + + dpi = 100, 100 + + # PCX header + fp.write( + o8(10) + o8(version) + o8(1) + o8(bits) + o16(0) + + o16(0) + o16(im.size[0]-1) + o16(im.size[1]-1) + o16(dpi[0]) + + o16(dpi[1]) + b"\0"*24 + b"\xFF"*24 + b"\0" + o8(planes) + + o16(stride) + o16(1) + o16(screen[0]) + o16(screen[1]) + + b"\0"*54 + ) + + assert fp.tell() == 128 + + ImageFile._save(im, fp, [("pcx", (0, 0)+im.size, 0, + (rawmode, bits*planes))]) + + if im.mode == "P": + # colour palette + fp.write(o8(12)) + fp.write(im.im.getpalette("RGB", "RGB")) # 768 bytes + elif im.mode == "L": + # greyscale palette + fp.write(o8(12)) + for i in range(256): + fp.write(o8(i)*3) + +# -------------------------------------------------------------------- +# registry + + +Image.register_open(PcxImageFile.format, PcxImageFile, _accept) +Image.register_save(PcxImageFile.format, _save) + +Image.register_extension(PcxImageFile.format, ".pcx") + +Image.register_mime(PcxImageFile.format, "image/x-pcx") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PdfImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PdfImagePlugin.py new file mode 100644 index 00000000..702aaa39 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PdfImagePlugin.py @@ -0,0 +1,248 @@ +# +# The Python Imaging Library. +# $Id$ +# +# PDF (Acrobat) file handling +# +# History: +# 1996-07-16 fl Created +# 1997-01-18 fl Fixed header +# 2004-02-21 fl Fixes for 1/L/CMYK images, etc. +# 2004-02-24 fl Fixes for 1 and P images. +# +# Copyright (c) 1997-2004 by Secret Labs AB. All rights reserved. +# Copyright (c) 1996-1997 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +## +# Image plugin for PDF images (output only). +## + +from . import Image, ImageFile, ImageSequence, PdfParser +import io +import os +import time + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.5" + + +# +# -------------------------------------------------------------------- + +# object ids: +# 1. catalogue +# 2. pages +# 3. image +# 4. page +# 5. page contents + + +def _save_all(im, fp, filename): + _save(im, fp, filename, save_all=True) + + +## +# (Internal) Image save plugin for the PDF format. + +def _save(im, fp, filename, save_all=False): + is_appending = im.encoderinfo.get("append", False) + if is_appending: + existing_pdf = PdfParser.PdfParser(f=fp, filename=filename, mode="r+b") + else: + existing_pdf = PdfParser.PdfParser(f=fp, filename=filename, mode="w+b") + + resolution = im.encoderinfo.get("resolution", 72.0) + + info = { + "title": None if is_appending else os.path.splitext( + os.path.basename(filename) + )[0], + "author": None, + "subject": None, + "keywords": None, + "creator": None, + "producer": None, + "creationDate": None if is_appending else time.gmtime(), + "modDate": None if is_appending else time.gmtime() + } + for k, default in info.items(): + v = im.encoderinfo.get(k) if k in im.encoderinfo else default + if v: + existing_pdf.info[k[0].upper() + k[1:]] = v + + # + # make sure image data is available + im.load() + + existing_pdf.start_writing() + existing_pdf.write_header() + existing_pdf.write_comment("created by PIL PDF driver " + __version__) + + # + # pages + ims = [im] + if save_all: + append_images = im.encoderinfo.get("append_images", []) + for append_im in append_images: + append_im.encoderinfo = im.encoderinfo.copy() + ims.append(append_im) + numberOfPages = 0 + image_refs = [] + page_refs = [] + contents_refs = [] + for im in ims: + im_numberOfPages = 1 + if save_all: + try: + im_numberOfPages = im.n_frames + except AttributeError: + # Image format does not have n_frames. + # It is a single frame image + pass + numberOfPages += im_numberOfPages + for i in range(im_numberOfPages): + image_refs.append(existing_pdf.next_object_id(0)) + page_refs.append(existing_pdf.next_object_id(0)) + contents_refs.append(existing_pdf.next_object_id(0)) + existing_pdf.pages.append(page_refs[-1]) + + # + # catalog and list of pages + existing_pdf.write_catalog() + + pageNumber = 0 + for imSequence in ims: + im_pages = ImageSequence.Iterator(imSequence) if save_all else [imSequence] + for im in im_pages: + # FIXME: Should replace ASCIIHexDecode with RunLengthDecode + # (packbits) or LZWDecode (tiff/lzw compression). Note that + # PDF 1.2 also supports Flatedecode (zip compression). + + bits = 8 + params = None + + if im.mode == "1": + filter = "ASCIIHexDecode" + colorspace = PdfParser.PdfName("DeviceGray") + procset = "ImageB" # grayscale + bits = 1 + elif im.mode == "L": + filter = "DCTDecode" + # params = "<< /Predictor 15 /Columns %d >>" % (width-2) + colorspace = PdfParser.PdfName("DeviceGray") + procset = "ImageB" # grayscale + elif im.mode == "P": + filter = "ASCIIHexDecode" + palette = im.im.getpalette("RGB") + colorspace = [ + PdfParser.PdfName("Indexed"), + PdfParser.PdfName("DeviceRGB"), + 255, + PdfParser.PdfBinary(palette) + ] + procset = "ImageI" # indexed color + elif im.mode == "RGB": + filter = "DCTDecode" + colorspace = PdfParser.PdfName("DeviceRGB") + procset = "ImageC" # color images + elif im.mode == "CMYK": + filter = "DCTDecode" + colorspace = PdfParser.PdfName("DeviceCMYK") + procset = "ImageC" # color images + else: + raise ValueError("cannot save mode %s" % im.mode) + + # + # image + + op = io.BytesIO() + + if filter == "ASCIIHexDecode": + if bits == 1: + # FIXME: the hex encoder doesn't support packed 1-bit + # images; do things the hard way... + data = im.tobytes("raw", "1") + im = Image.new("L", (len(data), 1), None) + im.putdata(data) + ImageFile._save(im, op, [("hex", (0, 0)+im.size, 0, im.mode)]) + elif filter == "DCTDecode": + Image.SAVE["JPEG"](im, op, filename) + elif filter == "FlateDecode": + ImageFile._save(im, op, [("zip", (0, 0)+im.size, 0, im.mode)]) + elif filter == "RunLengthDecode": + ImageFile._save(im, op, + [("packbits", (0, 0)+im.size, 0, im.mode)]) + else: + raise ValueError("unsupported PDF filter (%s)" % filter) + + # + # Get image characteristics + + width, height = im.size + + existing_pdf.write_obj(image_refs[pageNumber], + stream=op.getvalue(), + Type=PdfParser.PdfName("XObject"), + Subtype=PdfParser.PdfName("Image"), + Width=width, # * 72.0 / resolution, + Height=height, # * 72.0 / resolution, + Filter=PdfParser.PdfName(filter), + BitsPerComponent=bits, + DecodeParams=params, + ColorSpace=colorspace) + + # + # page + + existing_pdf.write_page(page_refs[pageNumber], + Resources=PdfParser.PdfDict( + ProcSet=[ + PdfParser.PdfName("PDF"), + PdfParser.PdfName(procset) + ], + XObject=PdfParser.PdfDict( + image=image_refs[pageNumber] + ) + ), + MediaBox=[ + 0, + 0, + int(width * 72.0 / resolution), + int(height * 72.0 / resolution) + ], + Contents=contents_refs[pageNumber]) + + # + # 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))) + + existing_pdf.write_obj(contents_refs[pageNumber], + stream=page_contents) + + pageNumber += 1 + + # + # trailer + existing_pdf.write_xref_and_trailer() + if hasattr(fp, "flush"): + fp.flush() + existing_pdf.close() + +# +# -------------------------------------------------------------------- + + +Image.register_save("PDF", _save) +Image.register_save_all("PDF", _save_all) + +Image.register_extension("PDF", ".pdf") + +Image.register_mime("PDF", "application/pdf") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PdfParser.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PdfParser.py new file mode 100644 index 00000000..8f90b668 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PdfParser.py @@ -0,0 +1,968 @@ +import calendar +import codecs +import collections +import mmap +import os +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 +def encode_text(s): + return codecs.BOM_UTF16_BE + s.encode("utf_16_be") + + +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", +} + + +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 + 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): + """An error that probably indicates a syntactic or semantic error in the + PDF file structure""" + pass + + +def check_format_condition(condition, error_message): + if not condition: + raise PdfFormatError(error_message) + + +class IndirectReference(collections.namedtuple("IndirectReferenceTuple", + ["object_id", "generation"])): + def __str__(self): + return "%s %s R" % self + + def __bytes__(self): + return self.__str__().encode("us-ascii") + + def __eq__(self, other): + return other.__class__ is self.__class__ and \ + other.object_id == self.object_id and \ + other.generation == self.generation + + def __ne__(self, other): + return not (self == other) + + def __hash__(self): + return hash((self.object_id, self.generation)) + + +class IndirectObjectDef(IndirectReference): + def __str__(self): + return "%s %s obj" % self + + +class XrefTable: + def __init__(self): + self.existing_entries = {} # object ID => (offset, generation) + self.new_entries = {} # object ID => (offset, generation) + self.deleted_entries = {0: 65536} # object ID => generation + self.reading_finished = False + + def __setitem__(self, key, value): + if self.reading_finished: + self.new_entries[key] = value + else: + self.existing_entries[key] = value + if key in self.deleted_entries: + del self.deleted_entries[key] + + def __getitem__(self, key): + try: + return self.new_entries[key] + except KeyError: + return self.existing_entries[key] + + def __delitem__(self, key): + if key in self.new_entries: + generation = self.new_entries[key][1] + 1 + del self.new_entries[key] + self.deleted_entries[key] = generation + elif key in self.existing_entries: + generation = self.existing_entries[key][1] + 1 + self.deleted_entries[key] = generation + elif key in self.deleted_entries: + generation = self.deleted_entries[key] + else: + raise IndexError("object ID " + str(key) + + " cannot be deleted because it doesn't exist") + + def __contains__(self, key): + return key in self.existing_entries or key in self.new_entries + + def __len__(self): + return len(set(self.existing_entries.keys()) | + set(self.new_entries.keys()) | + set(self.deleted_entries.keys())) + + def keys(self): + return ( + set(self.existing_entries.keys()) - + set(self.deleted_entries.keys()) + ) | set(self.new_entries.keys()) + + def write(self, f): + keys = sorted(set(self.new_entries.keys()) | + set(self.deleted_entries.keys())) + deleted_keys = sorted(set(self.deleted_entries.keys())) + startxref = f.tell() + f.write(b"xref\n") + while keys: + # find a contiguous sequence of object IDs + prev = None + for index, key in enumerate(keys): + if prev is None or prev+1 == key: + prev = key + else: + contiguous_keys = keys[:index] + keys = keys[index:] + break + else: + contiguous_keys = keys + keys = None + f.write(make_bytes("%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])) + else: + this_deleted_object_id = deleted_keys.pop(0) + check_format_condition(object_id == this_deleted_object_id, + "expected the next deleted object " + "ID to be %s, instead found %s" % + (object_id, this_deleted_object_id)) + try: + next_in_linked_list = deleted_keys[0] + except IndexError: + next_in_linked_list = 0 + f.write(make_bytes("%010d %05d f \n" % + (next_in_linked_list, + self.deleted_entries[object_id]))) + return startxref + + +class PdfName: + def __init__(self, name): + if isinstance(name, PdfName): + self.name = name.name + elif isinstance(name, bytes): + self.name = name + else: + self.name = name.encode("us-ascii") + + def name_as_str(self): + return self.name.decode("us-ascii") + + def __eq__(self, other): + return (isinstance(other, PdfName) and other.name == self.name) or \ + other == self.name + + def __hash__(self): + return hash(self.name) + + def __repr__(self): + return "PdfName(%s)" % repr(self.name) + + @classmethod + def from_pdf_stream(cls, data): + return cls(PdfParser.interpret_name(data)) + + allowed_chars = set(range(33, 127)) - set(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)) + 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): + def __setattr__(self, key, value): + if key == "data": + if hasattr(UserDict, "__setattr__"): + UserDict.__setattr__(self, key, value) + else: + self.__dict__[key] = value + else: + self[key.encode("us-ascii")] = value + + def __getattr__(self, key): + try: + value = self[key.encode("us-ascii")] + except KeyError: + raise AttributeError(key) + if isinstance(value, bytes): + value = decode_text(value) + if key.endswith("Date"): + if value.startswith("D:"): + value = value[2:] + + relationship = 'Z' + if len(value) > 17: + relationship = value[14] + offset = int(value[15:17]) * 60 + if len(value) > 20: + offset += int(value[18:20]) + + format = '%Y%m%d%H%M%S'[:len(value) - 2] + value = time.strptime(value[:len(format)+2], format) + if relationship in ['+', '-']: + offset *= 60 + if relationship == '+': + offset *= -1 + value = time.gmtime(calendar.timegm(value) + offset) + return value + + def __bytes__(self): + out = bytearray(b"<<") + for key, value in self.items(): + if value is None: + continue + value = pdf_repr(value) + out.extend(b"\n") + out.extend(bytes(PdfName(key))) + out.extend(b" ") + out.extend(value) + 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) + + +class PdfStream: + def __init__(self, dictionary, buf): + self.dictionary = dictionary + self.buf = buf + + def decode(self): + try: + filter = self.dictionary.Filter + except AttributeError: + return self.buf + if filter == b"FlateDecode": + try: + expected_length = self.dictionary.DL + except AttributeError: + expected_length = self.dictionary.Length + return zlib.decompress(self.buf, bufsize=int(expected_length)) + else: + raise NotImplementedError( + "stream filter %s unknown/unsupported" % + repr(self.dictionary.Filter)) + + +def pdf_repr(x): + if x is True: + return b"true" + elif x is False: + return b"false" + elif x is None: + return b"null" + elif isinstance(x, (PdfName, PdfDict, PdfArray, PdfBinary)): + return bytes(x) + elif isinstance(x, int): + return str(x).encode("us-ascii") + elif isinstance(x, time.struct_time): + return b'(D:'+time.strftime('%Y%m%d%H%M%SZ', x).encode("us-ascii")+b')' + elif isinstance(x, dict): + 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 + return pdf_repr(encode_text(x)) + elif isinstance(x, bytes): + # XXX escape more chars? handle binary garbage + x = x.replace(b"\\", b"\\\\") + x = x.replace(b"(", b"\\(") + x = x.replace(b")", b"\\)") + return b"(" + x + b")" + else: + return bytes(x) + + +class PdfParser: + """Based on + https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf + Supports PDF up to 1.4 + """ + + def __init__(self, filename=None, f=None, + buf=None, start_offset=0, mode="rb"): + if buf and f: + raise RuntimeError( + "specify buf or f or filename, but not both buf and f") + self.filename = filename + self.buf = buf + self.f = f + self.start_offset = start_offset + self.should_close_buf = False + self.should_close_file = False + if filename is not None and f is None: + self.f = f = open(filename, mode) + self.should_close_file = True + if f is not None: + self.buf = buf = self.get_buf_from_file(f) + self.should_close_buf = True + if not filename and hasattr(f, "name"): + self.filename = f.name + self.cached_objects = {} + if buf: + self.read_pdf_info() + else: + self.file_size_total = self.file_size_this = 0 + self.root = PdfDict() + self.root_ref = None + self.info = PdfDict() + self.info_ref = None + self.page_tree_root = {} + self.pages = [] + self.orig_pages = [] + self.pages_ref = None + self.last_xref_section_offset = None + self.trailer_dict = {} + self.xref_table = XrefTable() + self.xref_table.reading_finished = True + if f: + self.seek_end() + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + self.close() + return False # do not suppress exceptions + + def start_writing(self): + self.close_buf() + self.seek_end() + + def close_buf(self): + try: + self.buf.close() + except AttributeError: + pass + self.buf = None + + def close(self): + if self.should_close_buf: + self.close_buf() + if self.f is not None and self.should_close_file: + self.f.close() + self.f = None + + def seek_end(self): + self.f.seek(0, os.SEEK_END) + + def write_header(self): + self.f.write(b"%PDF-1.4\n") + + def write_comment(self, s): + self.f.write(("%% %s\n" % (s,)).encode("utf-8")) + + def write_catalog(self): + self.del_root() + self.root_ref = self.next_object_id(self.f.tell()) + self.pages_ref = self.next_object_id(0) + self.rewrite_pages() + self.write_obj(self.root_ref, + Type=PdfName(b"Catalog"), + Pages=self.pages_ref) + self.write_obj(self.pages_ref, + Type=PdfName(b"Pages"), + Count=len(self.pages), + Kids=self.pages) + return self.root_ref + + def rewrite_pages(self): + pages_tree_nodes_to_delete = [] + for i, page_ref in enumerate(self.orig_pages): + page_info = self.cached_objects[page_ref] + del self.xref_table[page_ref.object_id] + pages_tree_nodes_to_delete.append(page_info[PdfName(b"Parent")]) + if page_ref not in self.pages: + # the page has been deleted + continue + # make dict keys into strings for passing to write_page + stringified_page_info = {} + for key, value in page_info.items(): + # key should be a PdfName + stringified_page_info[key.name_as_str()] = value + stringified_page_info["Parent"] = self.pages_ref + new_page_ref = self.write_page(None, **stringified_page_info) + for j, cur_page_ref in enumerate(self.pages): + if cur_page_ref == page_ref: + # replace the page reference with the new one + self.pages[j] = new_page_ref + # delete redundant Pages tree nodes from xref table + for pages_tree_node_ref in pages_tree_nodes_to_delete: + while pages_tree_node_ref: + pages_tree_node = self.cached_objects[pages_tree_node_ref] + if pages_tree_node_ref.object_id in self.xref_table: + del self.xref_table[pages_tree_node_ref.object_id] + pages_tree_node_ref = pages_tree_node.get(b"Parent", None) + self.orig_pages = [] + + def write_xref_and_trailer(self, new_root_ref=None): + if new_root_ref: + self.del_root() + self.root_ref = new_root_ref + if self.info: + self.info_ref = self.write_obj(None, self.info) + start_xref = self.xref_table.write(self.f) + num_entries = len(self.xref_table) + trailer_dict = {b"Root": self.root_ref, b"Size": num_entries} + if self.last_xref_section_offset is not None: + trailer_dict[b"Prev"] = self.last_xref_section_offset + if self.info: + trailer_dict[b"Info"] = self.info_ref + self.last_xref_section_offset = start_xref + self.f.write(b"trailer\n" + bytes(PdfDict(trailer_dict)) + + make_bytes("\nstartxref\n%d\n%%%%EOF" % start_xref)) + + def write_page(self, ref, *objs, **dict_obj): + if isinstance(ref, int): + ref = self.pages[ref] + if "Type" not in dict_obj: + dict_obj["Type"] = PdfName(b"Page") + if "Parent" not in dict_obj: + dict_obj["Parent"] = self.pages_ref + return self.write_obj(ref, *objs, **dict_obj) + + def write_obj(self, ref, *objs, **dict_obj): + f = self.f + if ref is None: + ref = self.next_object_id(f.tell()) + else: + self.xref_table[ref.object_id] = (f.tell(), ref.generation) + f.write(bytes(IndirectObjectDef(*ref))) + stream = dict_obj.pop("stream", None) + if stream is not None: + dict_obj["Length"] = len(stream) + if dict_obj: + f.write(pdf_repr(dict_obj)) + for obj in objs: + f.write(pdf_repr(obj)) + if stream is not None: + f.write(b"stream\n") + f.write(stream) + f.write(b"\nendstream\n") + f.write(b"endobj\n") + return ref + + def del_root(self): + if self.root_ref is None: + return + del self.xref_table[self.root_ref.object_id] + del self.xref_table[self.root[b"Pages"].object_id] + + @staticmethod + def get_buf_from_file(f): + if hasattr(f, "getbuffer"): + return f.getbuffer() + elif hasattr(f, "getvalue"): + return f.getvalue() + else: + try: + return mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) + except ValueError: # cannot mmap an empty file + return b"" + + def read_pdf_info(self): + self.file_size_total = len(self.buf) + self.file_size_this = self.file_size_total - self.start_offset + self.read_trailer() + self.root_ref = self.trailer_dict[b"Root"] + self.info_ref = self.trailer_dict.get(b"Info", None) + self.root = PdfDict(self.read_indirect(self.root_ref)) + if self.info_ref is None: + self.info = PdfDict() + else: + self.info = PdfDict(self.read_indirect(self.info_ref)) + check_format_condition(b"Type" in self.root, "/Type missing in Root") + check_format_condition(self.root[b"Type"] == b"Catalog", + "/Type in Root is not /Catalog") + check_format_condition(b"Pages" in self.root, "/Pages missing in Root") + check_format_condition(isinstance(self.root[b"Pages"], + IndirectReference), + "/Pages in Root is not an indirect reference") + self.pages_ref = self.root[b"Pages"] + self.page_tree_root = self.read_indirect(self.pages_ref) + self.pages = self.linearize_page_tree(self.page_tree_root) + # save the original list of page references + # in case the user modifies, adds or deletes some pages + # and we need to rewrite the pages and their list + self.orig_pages = self.pages[:] + + def next_object_id(self, offset=None): + try: + # TODO: support reuse of deleted objects + reference = IndirectReference(max(self.xref_table.keys()) + 1, 0) + except ValueError: + reference = IndirectReference(1, 0) + if offset is not None: + self.xref_table[reference.object_id] = (offset, 0) + return reference + + delimiter = br"[][()<>{}/%]" + delimiter_or_ws = br"[][()<>{}/%\000\011\012\014\015\040]" + whitespace = br"[\000\011\012\014\015\040]" + whitespace_or_hex = br"[\000\011\012\014\015\0400-9a-fA-F]" + whitespace_optional = whitespace + b"*" + whitespace_mandatory = whitespace + b"+" + newline_only = br"[\r\n]+" + newline = whitespace_optional + newline_only + whitespace_optional + re_trailer_end = re.compile( + whitespace_mandatory + br"trailer" + whitespace_optional + + br"\<\<(.*\>\>)" + newline + br"startxref" + newline + br"([0-9]+)" + + newline + br"%%EOF" + whitespace_optional + br"$", re.DOTALL) + re_trailer_prev = re.compile( + whitespace_optional + br"trailer" + whitespace_optional + + br"\<\<(.*?\>\>)" + newline + br"startxref" + newline + br"([0-9]+)" + + newline + br"%%EOF" + whitespace_optional, re.DOTALL) + + def read_trailer(self): + search_start_offset = len(self.buf) - 16384 + if search_start_offset < self.start_offset: + search_start_offset = self.start_offset + m = self.re_trailer_end.search(self.buf, search_start_offset) + check_format_condition(m, "trailer end not found") + # make sure we found the LAST trailer + last_match = m + while m: + last_match = m + m = self.re_trailer_end.search(self.buf, m.start()+16) + if not m: + m = last_match + trailer_data = m.group(1) + self.last_xref_section_offset = int(m.group(2)) + self.trailer_dict = self.interpret_trailer(trailer_data) + self.xref_table = XrefTable() + self.read_xref_table(xref_section_offset=self.last_xref_section_offset) + if b"Prev" in self.trailer_dict: + self.read_prev_trailer(self.trailer_dict[b"Prev"]) + + def read_prev_trailer(self, xref_section_offset): + trailer_offset = self.read_xref_table( + xref_section_offset=xref_section_offset) + m = self.re_trailer_prev.search( + self.buf[trailer_offset:trailer_offset+16384]) + check_format_condition(m, "previous trailer not found") + trailer_data = m.group(1) + check_format_condition(int(m.group(2)) == xref_section_offset, + "xref section offset in previous trailer " + "doesn't match what was expected") + trailer_dict = self.interpret_trailer(trailer_data) + if b"Prev" in trailer_dict: + self.read_prev_trailer(trailer_dict[b"Prev"]) + + re_whitespace_optional = re.compile(whitespace_optional) + re_name = re.compile( + whitespace_optional + br"/([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=" + + delimiter_or_ws + br")") + re_dict_start = re.compile(whitespace_optional + br"\<\<") + re_dict_end = re.compile( + whitespace_optional + br"\>\>" + whitespace_optional) + + @classmethod + def interpret_trailer(cls, trailer_data): + trailer = {} + offset = 0 + while True: + m = cls.re_name.match(trailer_data, offset) + if not m: + m = cls.re_dict_end.match(trailer_data, offset) + check_format_condition( + m and m.end() == len(trailer_data), + "name not found in trailer, remaining data: " + + repr(trailer_data[offset:])) + break + key = cls.interpret_name(m.group(1)) + value, offset = cls.get_value(trailer_data, m.end()) + trailer[key] = value + check_format_condition( + b"Size" in trailer and isinstance(trailer[b"Size"], int), + "/Size not in trailer or not an integer") + check_format_condition( + b"Root" in trailer and + isinstance(trailer[b"Root"], IndirectReference), + "/Root not in trailer or not an indirect reference") + return trailer + + re_hashes_in_name = re.compile(br"([^#]*)(#([0-9a-fA-F]{2}))?") + + @classmethod + def interpret_name(cls, raw, as_text=False): + name = b"" + for m in cls.re_hashes_in_name.finditer(raw): + if m.group(3): + name += m.group(1) + \ + bytearray.fromhex(m.group(3).decode("us-ascii")) + else: + name += m.group(1) + if as_text: + return name.decode("utf-8") + else: + return bytes(name) + + re_null = re.compile( + whitespace_optional + br"null(?=" + delimiter_or_ws + br")") + re_true = re.compile( + whitespace_optional + br"true(?=" + delimiter_or_ws + br")") + re_false = re.compile( + whitespace_optional + br"false(?=" + delimiter_or_ws + br")") + re_int = re.compile( + whitespace_optional + br"([-+]?[0-9]+)(?=" + delimiter_or_ws + br")") + re_real = re.compile( + whitespace_optional + br"([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=" + + delimiter_or_ws + br")") + re_array_start = re.compile(whitespace_optional + br"\[") + re_array_end = re.compile(whitespace_optional + br"]") + re_string_hex = re.compile( + whitespace_optional + br"\<(" + whitespace_or_hex + br"*)\>") + re_string_lit = re.compile(whitespace_optional + br"\(") + re_indirect_reference = re.compile( + whitespace_optional + br"([-+]?[0-9]+)" + whitespace_mandatory + + br"([-+]?[0-9]+)" + whitespace_mandatory + br"R(?=" + delimiter_or_ws + + br")") + re_indirect_def_start = re.compile( + whitespace_optional + br"([-+]?[0-9]+)" + whitespace_mandatory + + br"([-+]?[0-9]+)" + whitespace_mandatory + br"obj(?=" + + delimiter_or_ws + br")") + re_indirect_def_end = re.compile( + whitespace_optional + br"endobj(?=" + delimiter_or_ws + br")") + re_comment = re.compile( + br"(" + whitespace_optional + br"%[^\r\n]*" + newline + br")*") + re_stream_start = re.compile(whitespace_optional + br"stream\r?\n") + re_stream_end = re.compile( + whitespace_optional + br"endstream(?=" + delimiter_or_ws + br")") + + @classmethod + def get_value(cls, data, offset, expect_indirect=None, max_nesting=-1): + if max_nesting == 0: + return None, None + m = cls.re_comment.match(data, offset) + if m: + offset = m.end() + m = cls.re_indirect_def_start.match(data, offset) + if m: + check_format_condition( + int(m.group(1)) > 0, + "indirect object definition: object ID must be greater than 0") + check_format_condition( + int(m.group(2)) >= 0, + "indirect object definition: generation must be non-negative") + check_format_condition( + expect_indirect is None or expect_indirect == + IndirectReference(int(m.group(1)), int(m.group(2))), + "indirect object definition different than expected") + object, offset = cls.get_value( + data, m.end(), max_nesting=max_nesting-1) + if offset is None: + return object, None + m = cls.re_indirect_def_end.match(data, offset) + check_format_condition( + m, "indirect object definition end not found") + return object, m.end() + check_format_condition( + not expect_indirect, "indirect object definition not found") + m = cls.re_indirect_reference.match(data, offset) + if m: + check_format_condition( + int(m.group(1)) > 0, + "indirect object reference: object ID must be greater than 0") + check_format_condition( + int(m.group(2)) >= 0, + "indirect object reference: generation must be non-negative") + return IndirectReference(int(m.group(1)), int(m.group(2))), m.end() + m = cls.re_dict_start.match(data, offset) + if m: + offset = m.end() + result = {} + m = cls.re_dict_end.match(data, offset) + while not m: + key, offset = cls.get_value( + data, offset, max_nesting=max_nesting-1) + if offset is None: + return result, None + value, offset = cls.get_value( + data, offset, max_nesting=max_nesting-1) + result[key] = value + if offset is None: + return result, None + m = cls.re_dict_end.match(data, offset) + offset = m.end() + m = cls.re_stream_start.match(data, offset) + if m: + try: + stream_len = int(result[b"Length"]) + except (TypeError, KeyError, ValueError): + raise PdfFormatError( + "bad or missing Length in stream dict (%r)" % + result.get(b"Length", None)) + stream_data = data[m.end():m.end() + stream_len] + m = cls.re_stream_end.match(data, m.end() + stream_len) + check_format_condition(m, "stream end not found") + offset = m.end() + result = PdfStream(PdfDict(result), stream_data) + else: + result = PdfDict(result) + return result, offset + m = cls.re_array_start.match(data, offset) + if m: + offset = m.end() + result = [] + m = cls.re_array_end.match(data, offset) + while not m: + value, offset = cls.get_value( + data, offset, max_nesting=max_nesting-1) + result.append(value) + if offset is None: + return result, None + m = cls.re_array_end.match(data, offset) + return result, m.end() + m = cls.re_null.match(data, offset) + if m: + return None, m.end() + m = cls.re_true.match(data, offset) + if m: + return True, m.end() + m = cls.re_false.match(data, offset) + if m: + return False, m.end() + m = cls.re_name.match(data, offset) + if m: + return PdfName(cls.interpret_name(m.group(1))), m.end() + m = cls.re_int.match(data, offset) + if m: + return int(m.group(1)), m.end() + m = cls.re_real.match(data, offset) + if m: + # XXX Decimal instead of float??? + return float(m.group(1)), m.end() + m = cls.re_string_hex.match(data, offset) + if m: + # filter out whitespace + hex_string = bytearray([ + b for b in m.group(1) + if b in b"0123456789abcdefABCDEF" + ]) + if len(hex_string) % 2 == 1: + # append a 0 if the length is not even - yes, at the end + hex_string.append(ord(b"0")) + return bytearray.fromhex(hex_string.decode("us-ascii")), m.end() + m = cls.re_string_lit.match(data, offset) + if m: + return cls.get_literal_string(data, m.end()) + # return None, offset # fallback (only for debugging) + raise PdfFormatError( + "unrecognized object: " + repr(data[offset:offset+32])) + + re_lit_str_token = re.compile( + br"(\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))") + escaped_chars = { + b"n": b"\n", + b"r": b"\r", + b"t": b"\t", + b"b": b"\b", + b"f": b"\f", + b"(": b"(", + b")": b")", + b"\\": b"\\", + ord(b"n"): b"\n", + ord(b"r"): b"\r", + ord(b"t"): b"\t", + ord(b"b"): b"\b", + ord(b"f"): b"\f", + ord(b"("): b"(", + ord(b")"): b")", + ord(b"\\"): b"\\", + } + + @classmethod + def get_literal_string(cls, data, offset): + nesting_depth = 0 + result = bytearray() + for m in cls.re_lit_str_token.finditer(data, offset): + result.extend(data[offset:m.start()]) + if m.group(1): + result.extend(cls.escaped_chars[m.group(1)[1]]) + elif m.group(2): + result.append(int(m.group(2)[1:], 8)) + elif m.group(3): + pass + elif m.group(5): + result.extend(b"\n") + elif m.group(6): + result.extend(b"(") + nesting_depth += 1 + elif m.group(7): + if nesting_depth == 0: + return bytes(result), m.end() + result.extend(b")") + nesting_depth -= 1 + offset = m.end() + raise PdfFormatError("unfinished literal string") + + re_xref_section_start = re.compile( + whitespace_optional + br"xref" + newline) + re_xref_subsection_start = re.compile( + whitespace_optional + br"([0-9]+)" + whitespace_mandatory + + br"([0-9]+)" + whitespace_optional + newline_only) + re_xref_entry = re.compile(br"([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)") + + def read_xref_table(self, xref_section_offset): + subsection_found = False + m = self.re_xref_section_start.match( + self.buf, xref_section_offset + self.start_offset) + check_format_condition(m, "xref section start not found") + offset = m.end() + while True: + m = self.re_xref_subsection_start.match(self.buf, offset) + if not m: + check_format_condition( + subsection_found, "xref subsection start not found") + break + subsection_found = True + offset = m.end() + first_object = int(m.group(1)) + num_objects = int(m.group(2)) + for i in range(first_object, first_object+num_objects): + m = self.re_xref_entry.match(self.buf, offset) + check_format_condition(m, "xref entry not found") + offset = m.end() + is_free = m.group(3) == b"f" + generation = int(m.group(2)) + if not is_free: + new_entry = (int(m.group(1)), generation) + check_format_condition( + i not in self.xref_table or + self.xref_table[i] == new_entry, + "xref entry duplicated (and not identical)") + self.xref_table[i] = new_entry + return offset + + def read_indirect(self, ref, max_nesting=-1): + offset, generation = self.xref_table[ref[0]] + check_format_condition( + generation == ref[1], + "expected to find generation %s for object ID %s in xref table, " + "instead found generation %s at offset %s" + % (ref[1], ref[0], generation, offset)) + value = self.get_value(self.buf, offset + self.start_offset, + expect_indirect=IndirectReference(*ref), + max_nesting=max_nesting)[0] + self.cached_objects[ref] = value + return value + + def linearize_page_tree(self, node=None): + if node is None: + node = self.page_tree_root + check_format_condition( + node[b"Type"] == b"Pages", "/Type of page tree node is not /Pages") + pages = [] + for kid in node[b"Kids"]: + kid_object = self.read_indirect(kid) + if kid_object[b"Type"] == b"Page": + pages.append(kid) + else: + pages.extend(self.linearize_page_tree(node=kid_object)) + return pages diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PixarImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PixarImagePlugin.py new file mode 100644 index 00000000..b4f19a96 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PixarImagePlugin.py @@ -0,0 +1,73 @@ +# +# The Python Imaging Library. +# $Id$ +# +# PIXAR raster support for PIL +# +# history: +# 97-01-29 fl Created +# +# notes: +# This is incomplete; it is based on a few samples created with +# Photoshop 2.5 and 3.0, and a summary description provided by +# Greg Coats . Hopefully, "L" and +# "RGBA" support will be added in future versions. +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1997. +# +# See the README file for information on usage and redistribution. +# + +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 + +def _accept(prefix): + return prefix[:4] == b"\200\350\000\000" + + +## +# Image plugin for PIXAR raster images. + +class PixarImageFile(ImageFile.ImageFile): + + format = "PIXAR" + format_description = "PIXAR raster image" + + def _open(self): + + # assuming a 4-byte magic label + s = self.fp.read(4) + if s != b"\200\350\000\000": + raise SyntaxError("not a PIXAR file") + + # read rest of header + s = s + self.fp.read(508) + + self._size = i16(s[418:420]), i16(s[416:418]) + + # get channel/depth descriptions + mode = i16(s[424:426]), i16(s[426:428]) + + if mode == (14, 2): + self.mode = "RGB" + # FIXME: to be continued... + + # create tile descriptor (assuming "dumped") + self.tile = [("raw", (0, 0)+self.size, 1024, (self.mode, 0, 1))] + + +# +# -------------------------------------------------------------------- + +Image.register_open(PixarImageFile.format, PixarImageFile, _accept) + +Image.register_extension(PixarImageFile.format, ".pxr") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PngImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PngImagePlugin.py new file mode 100644 index 00000000..4e192ecd --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PngImagePlugin.py @@ -0,0 +1,943 @@ +# +# The Python Imaging Library. +# $Id$ +# +# PNG support code +# +# See "PNG (Portable Network Graphics) Specification, version 1.0; +# W3C Recommendation", 1996-10-01, Thomas Boutell (ed.). +# +# history: +# 1996-05-06 fl Created (couldn't resist it) +# 1996-12-14 fl Upgraded, added read and verify support (0.2) +# 1996-12-15 fl Separate PNG stream parser +# 1996-12-29 fl Added write support, added getchunks +# 1996-12-30 fl Eliminated circular references in decoder (0.3) +# 1998-07-12 fl Read/write 16-bit images as mode I (0.4) +# 2001-02-08 fl Added transparency support (from Zircon) (0.5) +# 2001-04-16 fl Don't close data source in "open" method (0.6) +# 2004-02-24 fl Don't even pretend to support interlaced files (0.7) +# 2004-08-31 fl Do basic sanity check on chunk identifiers (0.8) +# 2004-09-20 fl Added PngInfo chunk container +# 2004-12-18 fl Added DPI read support (based on code by Niki Spahiev) +# 2008-08-13 fl Added tRNS support for RGB images +# 2009-03-06 fl Support for preserving ICC profiles (by Florian Hoech) +# 2009-03-08 fl Added zTXT support (from Lowell Alleman) +# 2009-03-29 fl Read interlaced PNG files (from Conrado Porto Lopes Gouvua) +# +# Copyright (c) 1997-2009 by Secret Labs AB +# Copyright (c) 1996 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +import logging +import re +import zlib +import struct + +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" + +logger = logging.getLogger(__name__) + +is_cid = re.compile(br"\w\w\w\w").match + + +_MAGIC = b"\211PNG\r\n\032\n" + + +_MODES = { + # supported bits/color combinations, and corresponding modes/rawmodes + # Greyscale + (1, 0): ("1", "1"), + (2, 0): ("L", "L;2"), + (4, 0): ("L", "L;4"), + (8, 0): ("L", "L"), + (16, 0): ("I", "I;16B"), + # Truecolour + (8, 2): ("RGB", "RGB"), + (16, 2): ("RGB", "RGB;16B"), + # Indexed-colour + (1, 3): ("P", "P;1"), + (2, 3): ("P", "P;2"), + (4, 3): ("P", "P;4"), + (8, 3): ("P", "P"), + # Greyscale with alpha + (8, 4): ("LA", "LA"), + (16, 4): ("RGBA", "LA;16B"), # LA;16B->LA not yet available + # Truecolour with alpha + (8, 6): ("RGBA", "RGBA"), + (16, 6): ("RGBA", "RGBA;16B"), +} + + +_simple_palette = re.compile(b'^\xff*\x00\xff*$') + +# Maximum decompressed size for a iTXt or zTXt chunk. +# Eliminates decompression bombs where compressed chunks can expand 1000x +MAX_TEXT_CHUNK = ImageFile.SAFEBLOCK +# Set the maximum total text chunk size. +MAX_TEXT_MEMORY = 64 * MAX_TEXT_CHUNK + + +def _safe_zlib_decompress(s): + dobj = zlib.decompressobj() + plaintext = dobj.decompress(s, MAX_TEXT_CHUNK) + if dobj.unconsumed_tail: + raise ValueError("Decompressed Data Too Large") + return plaintext + + +def _crc32(data, seed=0): + return zlib.crc32(data, seed) & 0xffffffff + + +# -------------------------------------------------------------------- +# Support classes. Suitable for PNG and related formats like MNG etc. + +class ChunkStream(object): + + def __init__(self, fp): + + self.fp = fp + self.queue = [] + + def read(self): + """Fetch a new chunk. Returns header information.""" + cid = None + + if self.queue: + cid, pos, length = self.queue.pop() + self.fp.seek(pos) + else: + s = self.fp.read(8) + cid = s[4:] + pos = self.fp.tell() + length = i32(s) + + if not is_cid(cid): + if not ImageFile.LOAD_TRUNCATED_IMAGES: + raise SyntaxError("broken PNG file (chunk %s)" % repr(cid)) + + return cid, pos, length + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + def close(self): + self.queue = self.crc = self.fp = None + + def push(self, cid, pos, length): + + self.queue.append((cid, pos, length)) + + def call(self, cid, pos, length): + """Call the appropriate chunk handler""" + + logger.debug("STREAM %r %s %s", cid, pos, length) + return getattr(self, "chunk_" + cid.decode('ascii'))(pos, length) + + def crc(self, cid, data): + """Read and verify checksum""" + + # Skip CRC checks for ancillary chunks if allowed to load truncated + # images + # 5th byte of first char is 1 [specs, section 5.4] + if ImageFile.LOAD_TRUNCATED_IMAGES and (i8(cid[0]) >> 5 & 1): + self.crc_skip(cid, data) + return + + try: + crc1 = _crc32(data, _crc32(cid)) + crc2 = i32(self.fp.read(4)) + if crc1 != crc2: + raise SyntaxError("broken PNG file (bad header checksum in %r)" + % cid) + except struct.error: + raise SyntaxError("broken PNG file (incomplete checksum in %r)" + % cid) + + def crc_skip(self, cid, data): + """Read checksum. Used if the C module is not present""" + + self.fp.read(4) + + def verify(self, endchunk=b"IEND"): + + # Simple approach; just calculate checksum for all remaining + # blocks. Must be called directly after open. + + cids = [] + + while True: + try: + cid, pos, length = self.read() + except struct.error: + raise IOError("truncated PNG file") + + if cid == endchunk: + break + self.crc(cid, ImageFile._safe_read(self.fp, length)) + cids.append(cid) + + return cids + + +class iTXt(str): + """ + Subclass of string to allow iTXt chunks to look like strings while + keeping their extra information + + """ + @staticmethod + def __new__(cls, text, lang=None, tkey=None): + """ + :param cls: the class to use when creating the instance + :param text: value for this key + :param lang: language code + :param tkey: UTF-8 version of the key name + """ + + self = str.__new__(cls, text) + self.lang = lang + self.tkey = tkey + return self + + +class PngInfo(object): + """ + PNG chunk container (for use with save(pnginfo=)) + + """ + + def __init__(self): + self.chunks = [] + + def add(self, cid, data): + """Appends an arbitrary chunk. Use with caution. + + :param cid: a byte string, 4 bytes long. + :param data: a byte string of the encoded data + + """ + + self.chunks.append((cid, data)) + + def add_itxt(self, key, value, lang="", tkey="", zip=False): + """Appends an iTXt chunk. + + :param key: latin-1 encodable text key name + :param value: value for this key + :param lang: language code + :param tkey: UTF-8 version of the key name + :param zip: compression flag + + """ + + if not isinstance(key, bytes): + key = key.encode("latin-1", "strict") + if not isinstance(value, bytes): + value = value.encode("utf-8", "strict") + if not isinstance(lang, bytes): + lang = lang.encode("utf-8", "strict") + if not isinstance(tkey, bytes): + tkey = tkey.encode("utf-8", "strict") + + if zip: + self.add(b"iTXt", key + b"\0\x01\0" + lang + b"\0" + tkey + b"\0" + + zlib.compress(value)) + else: + self.add(b"iTXt", key + b"\0\0\0" + lang + b"\0" + tkey + b"\0" + + value) + + def add_text(self, key, value, zip=False): + """Appends a text chunk. + + :param key: latin-1 encodable text key name + :param value: value for this key, text or an + :py:class:`PIL.PngImagePlugin.iTXt` instance + :param zip: compression flag + + """ + if isinstance(value, iTXt): + return self.add_itxt(key, value, value.lang, value.tkey, zip=zip) + + # The tEXt chunk stores latin-1 text + if not isinstance(value, bytes): + try: + value = value.encode('latin-1', 'strict') + except UnicodeError: + return self.add_itxt(key, value, zip=zip) + + if not isinstance(key, bytes): + key = key.encode('latin-1', 'strict') + + if zip: + self.add(b"zTXt", key + b"\0\0" + zlib.compress(value)) + else: + self.add(b"tEXt", key + b"\0" + value) + + +# -------------------------------------------------------------------- +# PNG image stream (IHDR/IEND) + +class PngStream(ChunkStream): + + def __init__(self, fp): + + ChunkStream.__init__(self, fp) + + # local copies of Image attributes + self.im_info = {} + self.im_text = {} + self.im_size = (0, 0) + self.im_mode = None + self.im_tile = None + self.im_palette = None + self.im_custom_mimetype = None + + self.text_memory = 0 + + def check_text_memory(self, chunklen): + self.text_memory += chunklen + if self.text_memory > MAX_TEXT_MEMORY: + raise ValueError("Too much memory used in text chunks: " + "%s>MAX_TEXT_MEMORY" % self.text_memory) + + def chunk_iCCP(self, pos, length): + + # ICC profile + s = ImageFile._safe_read(self.fp, length) + # according to PNG spec, the iCCP chunk contains: + # Profile name 1-79 bytes (character string) + # Null separator 1 byte (null character) + # Compression method 1 byte (0) + # Compressed profile n bytes (zlib with deflate compression) + i = s.find(b"\0") + logger.debug("iCCP profile name %r", s[:i]) + logger.debug("Compression method %s", i8(s[i])) + comp_method = i8(s[i]) + if comp_method != 0: + raise SyntaxError("Unknown compression method %s in iCCP chunk" % + comp_method) + try: + icc_profile = _safe_zlib_decompress(s[i+2:]) + except ValueError: + if ImageFile.LOAD_TRUNCATED_IMAGES: + icc_profile = None + else: + raise + except zlib.error: + icc_profile = None # FIXME + self.im_info["icc_profile"] = icc_profile + return s + + def chunk_IHDR(self, pos, length): + + # image header + s = ImageFile._safe_read(self.fp, length) + self.im_size = i32(s), i32(s[4:]) + try: + self.im_mode, self.im_rawmode = _MODES[(i8(s[8]), i8(s[9]))] + except Exception: + pass + if i8(s[12]): + self.im_info["interlace"] = 1 + if i8(s[11]): + raise SyntaxError("unknown filter category") + return s + + def chunk_IDAT(self, pos, length): + + # image data + self.im_tile = [("zip", (0, 0)+self.im_size, pos, self.im_rawmode)] + self.im_idat = length + raise EOFError + + def chunk_IEND(self, pos, length): + + # end of PNG image + raise EOFError + + def chunk_PLTE(self, pos, length): + + # palette + s = ImageFile._safe_read(self.fp, length) + if self.im_mode == "P": + self.im_palette = "RGB", s + return s + + def chunk_tRNS(self, pos, length): + + # transparency + s = ImageFile._safe_read(self.fp, length) + if self.im_mode == "P": + if _simple_palette.match(s): + # tRNS contains only one full-transparent entry, + # other entries are full opaque + i = s.find(b"\0") + if i >= 0: + self.im_info["transparency"] = i + else: + # otherwise, we have a byte string with one alpha value + # for each palette entry + self.im_info["transparency"] = s + elif self.im_mode in ("1", "L", "I"): + self.im_info["transparency"] = i16(s) + elif self.im_mode == "RGB": + self.im_info["transparency"] = i16(s), i16(s[2:]), i16(s[4:]) + return s + + def chunk_gAMA(self, pos, length): + # gamma setting + s = ImageFile._safe_read(self.fp, length) + self.im_info["gamma"] = i32(s) / 100000.0 + return s + + def chunk_cHRM(self, pos, length): + # chromaticity, 8 unsigned ints, actual value is scaled by 100,000 + # WP x,y, Red x,y, Green x,y Blue x,y + + s = ImageFile._safe_read(self.fp, length) + raw_vals = struct.unpack('>%dI' % (len(s) // 4), s) + self.im_info['chromaticity'] = tuple(elt/100000.0 for elt in raw_vals) + return s + + def chunk_sRGB(self, pos, length): + # srgb rendering intent, 1 byte + # 0 perceptual + # 1 relative colorimetric + # 2 saturation + # 3 absolute colorimetric + + s = ImageFile._safe_read(self.fp, length) + self.im_info['srgb'] = i8(s) + return s + + def chunk_pHYs(self, pos, length): + + # pixels per unit + s = ImageFile._safe_read(self.fp, length) + px, py = i32(s), i32(s[4:]) + unit = i8(s[8]) + if unit == 1: # meter + dpi = int(px * 0.0254 + 0.5), int(py * 0.0254 + 0.5) + self.im_info["dpi"] = dpi + elif unit == 0: + self.im_info["aspect"] = px, py + return s + + def chunk_tEXt(self, pos, length): + + # text + s = ImageFile._safe_read(self.fp, length) + try: + k, v = s.split(b"\0", 1) + except ValueError: + # fallback for broken tEXt tags + k = s + v = b"" + if k: + if py3: + 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)) + + return s + + def chunk_zTXt(self, pos, length): + + # compressed text + s = ImageFile._safe_read(self.fp, length) + try: + k, v = s.split(b"\0", 1) + except ValueError: + k = s + v = b"" + if v: + comp_method = i8(v[0]) + else: + comp_method = 0 + if comp_method != 0: + raise SyntaxError("Unknown compression method %s in zTXt chunk" % + comp_method) + try: + v = _safe_zlib_decompress(v[1:]) + except ValueError: + if ImageFile.LOAD_TRUNCATED_IMAGES: + v = b"" + else: + raise + except zlib.error: + v = b"" + + if k: + if py3: + 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)) + + return s + + def chunk_iTXt(self, pos, length): + + # international text + r = s = ImageFile._safe_read(self.fp, length) + try: + k, r = r.split(b"\0", 1) + except ValueError: + return s + if len(r) < 2: + return s + cf, cm, r = i8(r[0]), i8(r[1]), r[2:] + try: + lang, tk, v = r.split(b"\0", 2) + except ValueError: + return s + if cf != 0: + if cm == 0: + try: + v = _safe_zlib_decompress(v) + except ValueError: + if ImageFile.LOAD_TRUNCATED_IMAGES: + return s + else: + raise + except zlib.error: + 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 + + self.im_info[k] = self.im_text[k] = iTXt(v, lang, tk) + self.check_text_memory(len(v)) + + return s + + def chunk_eXIf(self, pos, length): + s = ImageFile._safe_read(self.fp, length) + self.im_info["exif"] = b"Exif\x00\x00"+s + return s + + # APNG chunks + def chunk_acTL(self, pos, length): + s = ImageFile._safe_read(self.fp, length) + self.im_custom_mimetype = 'image/apng' + return s + + +# -------------------------------------------------------------------- +# PNG reader + +def _accept(prefix): + return prefix[:8] == _MAGIC + + +## +# Image plugin for PNG images. + +class PngImageFile(ImageFile.ImageFile): + + format = "PNG" + format_description = "Portable network graphics" + + def _open(self): + + if self.fp.read(8) != _MAGIC: + raise SyntaxError("not a PNG file") + + # + # Parse headers up to the first IDAT chunk + + self.png = PngStream(self.fp) + + while True: + + # + # get next chunk + + cid, pos, length = self.png.read() + + try: + s = self.png.call(cid, pos, length) + except EOFError: + break + except AttributeError: + logger.debug("%r %s %s (unknown)", cid, pos, length) + s = ImageFile._safe_read(self.fp, length) + + self.png.crc(cid, s) + + # + # Copy relevant attributes from the PngStream. An alternative + # would be to let the PngStream class modify these attributes + # directly, but that introduces circular references which are + # difficult to break if things go wrong in the decoder... + # (believe me, I've tried ;-) + + self.mode = self.png.im_mode + self._size = self.png.im_size + self.info = self.png.im_info + self._text = None + self.tile = self.png.im_tile + self.custom_mimetype = self.png.im_custom_mimetype + + if self.png.im_palette: + rawmode, data = self.png.im_palette + self.palette = ImagePalette.raw(rawmode, data) + + self.__idat = length # used by load_read() + + @property + def text(self): + # experimental + 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 + self.load() + return self._text + + def verify(self): + """Verify PNG file""" + + if self.fp is None: + raise RuntimeError("verify must be called directly after open") + + # back up to beginning of IDAT block + self.fp.seek(self.tile[0][2] - 8) + + self.png.verify() + self.png.close() + + if self._exclusive_fp: + self.fp.close() + self.fp = None + + def load_prepare(self): + """internal: prepare to read PNG file""" + + if self.info.get("interlace"): + self.decoderconfig = self.decoderconfig + (1,) + + ImageFile.ImageFile.load_prepare(self) + + def load_read(self, read_bytes): + """internal: read more image data""" + + while self.__idat == 0: + # end of chunk, skip forward to next one + + self.fp.read(4) # CRC + + cid, pos, length = self.png.read() + + if cid not in [b"IDAT", b"DDAT"]: + self.png.push(cid, pos, length) + return b"" + + self.__idat = length # empty chunks are allowed + + # read more data from this chunk + if read_bytes <= 0: + read_bytes = self.__idat + else: + read_bytes = min(read_bytes, self.__idat) + + self.__idat = self.__idat - read_bytes + + return self.fp.read(read_bytes) + + def load_end(self): + """internal: finished reading image data""" + while True: + self.fp.read(4) # CRC + + try: + cid, pos, length = self.png.read() + except (struct.error, SyntaxError): + break + + if cid == b"IEND": + break + + try: + self.png.call(cid, pos, length) + except UnicodeDecodeError: + break + except EOFError: + 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 + + def _getexif(self): + if "exif" not in self.info: + self.load() + if "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) + + +# -------------------------------------------------------------------- +# PNG writer + +_OUTMODES = { + # supported PIL modes, and corresponding rawmodes/bits/color combinations + "1": ("1", b'\x01\x00'), + "L;1": ("L;1", b'\x01\x00'), + "L;2": ("L;2", b'\x02\x00'), + "L;4": ("L;4", b'\x04\x00'), + "L": ("L", b'\x08\x00'), + "LA": ("LA", b'\x08\x04'), + "I": ("I;16B", b'\x10\x00'), + "I;16": ("I;16B", b'\x10\x00'), + "P;1": ("P;1", b'\x01\x03'), + "P;2": ("P;2", b'\x02\x03'), + "P;4": ("P;4", b'\x04\x03'), + "P": ("P", b'\x08\x03'), + "RGB": ("RGB", b'\x08\x02'), + "RGBA": ("RGBA", b'\x08\x06'), +} + + +def putchunk(fp, cid, *data): + """Write a PNG chunk (including CRC field)""" + + data = b"".join(data) + + fp.write(o32(len(data)) + cid) + fp.write(data) + crc = _crc32(data, _crc32(cid)) + fp.write(o32(crc)) + + +class _idat(object): + # wrap output from the encoder in IDAT chunks + + def __init__(self, fp, chunk): + self.fp = fp + self.chunk = chunk + + def write(self, data): + self.chunk(self.fp, b"IDAT", data) + + +def _save(im, fp, filename, chunk=putchunk): + # save an image to disk (called by the save method) + + mode = im.mode + + if mode == "P": + + # + # attempt to minimize storage requirements for palette images + if "bits" in im.encoderinfo: + # number of bits specified by user + colors = 1 << im.encoderinfo["bits"] + else: + # check palette contents + if im.palette: + colors = max(min(len(im.palette.getdata()[1])//3, 256), 2) + else: + colors = 256 + + if colors <= 2: + bits = 1 + elif colors <= 4: + bits = 2 + elif colors <= 16: + bits = 4 + else: + bits = 8 + if bits != 8: + mode = "%s;%d" % (mode, bits) + + # encoder options + im.encoderconfig = (im.encoderinfo.get("optimize", False), + im.encoderinfo.get("compress_level", -1), + im.encoderinfo.get("compress_type", -1), + im.encoderinfo.get("dictionary", b"")) + + # get the corresponding PNG mode + try: + rawmode, mode = _OUTMODES[mode] + except KeyError: + raise IOError("cannot write mode %s as PNG" % mode) + + # + # write minimal PNG file + + fp.write(_MAGIC) + + chunk(fp, b"IHDR", + o32(im.size[0]), o32(im.size[1]), # 0: size + mode, # 8: depth/type + b'\0', # 10: compression + b'\0', # 11: filter category + b'\0') # 12: interlace flag + + chunks = [b"cHRM", b"gAMA", b"sBIT", b"sRGB", b"tIME"] + + icc = im.encoderinfo.get("icc_profile", im.info.get("icc_profile")) + if icc: + # ICC profile + # according to PNG spec, the iCCP chunk contains: + # Profile name 1-79 bytes (character string) + # Null separator 1 byte (null character) + # Compression method 1 byte (0) + # Compressed profile n bytes (zlib with deflate compression) + name = b"ICC Profile" + data = name + b"\0\0" + zlib.compress(icc) + chunk(fp, b"iCCP", data) + + # You must either have sRGB or iCCP. + # Disallow sRGB chunks when an iCCP-chunk has been emitted. + chunks.remove(b"sRGB") + + info = im.encoderinfo.get("pnginfo") + if info: + chunks_multiple_allowed = [b"sPLT", b"iTXt", b"tEXt", b"zTXt"] + for cid, data in info.chunks: + if cid in chunks: + chunks.remove(cid) + chunk(fp, cid, data) + elif cid in chunks_multiple_allowed: + chunk(fp, cid, data) + + if im.mode == "P": + palette_byte_number = (2 ** bits) * 3 + palette_bytes = im.im.getpalette("RGB")[:palette_byte_number] + while len(palette_bytes) < palette_byte_number: + palette_bytes += b'\0' + chunk(fp, b"PLTE", palette_bytes) + + transparency = im.encoderinfo.get('transparency', + im.info.get('transparency', None)) + + if transparency or transparency == 0: + if im.mode == "P": + # limit to actual palette size + alpha_bytes = 2**bits + if isinstance(transparency, bytes): + chunk(fp, b"tRNS", transparency[:alpha_bytes]) + else: + transparency = max(0, min(255, transparency)) + alpha = b'\xFF' * transparency + b'\0' + chunk(fp, b"tRNS", alpha[:alpha_bytes]) + elif im.mode in ("1", "L", "I"): + transparency = max(0, min(65535, transparency)) + chunk(fp, b"tRNS", o16(transparency)) + elif im.mode == "RGB": + red, green, blue = transparency + chunk(fp, b"tRNS", o16(red) + o16(green) + o16(blue)) + else: + 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") + else: + if im.mode == "P" and im.im.getpalettemode() == "RGBA": + alpha = im.im.getpalette("RGBA", "A") + alpha_bytes = 2**bits + chunk(fp, b"tRNS", alpha[:alpha_bytes]) + + dpi = im.encoderinfo.get("dpi") + if dpi: + chunk(fp, b"pHYs", + o32(int(dpi[0] / 0.0254 + 0.5)), + o32(int(dpi[1] / 0.0254 + 0.5)), + b'\x01') + + info = im.encoderinfo.get("pnginfo") + if info: + chunks = [b"bKGD", b"hIST"] + for cid, data in info.chunks: + if cid in chunks: + chunks.remove(cid) + chunk(fp, cid, data) + + exif = im.encoderinfo.get("exif", im.info.get("exif")) + if exif: + if isinstance(exif, Image.Exif): + exif = exif.tobytes(8) + if exif.startswith(b"Exif\x00\x00"): + exif = exif[6:] + chunk(fp, b"eXIf", exif) + + ImageFile._save(im, _idat(fp, chunk), + [("zip", (0, 0)+im.size, 0, rawmode)]) + + chunk(fp, b"IEND", b"") + + if hasattr(fp, "flush"): + fp.flush() + + +# -------------------------------------------------------------------- +# PNG chunk converter + +def getchunks(im, **params): + """Return a list of PNG chunks representing this image.""" + + class collector(object): + data = [] + + def write(self, data): + pass + + def append(self, chunk): + self.data.append(chunk) + + def append(fp, cid, *data): + data = b"".join(data) + crc = o32(_crc32(data, _crc32(cid))) + fp.append((cid, data, crc)) + + fp = collector() + + try: + im.encoderinfo = params + _save(im, fp, None, append) + finally: + del im.encoderinfo + + return fp.data + + +# -------------------------------------------------------------------- +# Registry + +Image.register_open(PngImageFile.format, PngImageFile, _accept) +Image.register_save(PngImageFile.format, _save) + +Image.register_extensions(PngImageFile.format, [".png", ".apng"]) + +Image.register_mime(PngImageFile.format, "image/png") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PpmImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PpmImagePlugin.py new file mode 100644 index 00000000..a1ac8d69 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PpmImagePlugin.py @@ -0,0 +1,169 @@ +# +# The Python Imaging Library. +# $Id$ +# +# PPM support for PIL +# +# History: +# 96-03-24 fl Created +# 98-03-06 fl Write RGBA images (as RGB, that is) +# +# Copyright (c) Secret Labs AB 1997-98. +# Copyright (c) Fredrik Lundh 1996. +# +# See the README file for information on usage and redistribution. +# + + +from . import Image, ImageFile + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.2" + +# +# -------------------------------------------------------------------- + +b_whitespace = b'\x20\x09\x0a\x0b\x0c\x0d' + +MODES = { + # standard + b"P4": "1", + b"P5": "L", + b"P6": "RGB", + # extensions + b"P0CMYK": "CMYK", + # PIL extensions (for test purposes only) + b"PyP": "P", + b"PyRGBA": "RGBA", + b"PyCMYK": "CMYK" +} + + +def _accept(prefix): + return prefix[0:1] == b"P" and prefix[1] in b"0456y" + + +## +# Image plugin for PBM, PGM, and PPM images. + +class PpmImageFile(ImageFile.ImageFile): + + format = "PPM" + format_description = "Pbmplus image" + + def _token(self, s=b""): + while True: # read until next whitespace + c = self.fp.read(1) + if not c or c in b_whitespace: + break + if c > b'\x79': + raise ValueError("Expected ASCII value, found binary") + s = s + c + if (len(s) > 9): + raise ValueError("Expected int, got > 9 digits") + return s + + def _open(self): + + # check magic + s = self.fp.read(1) + if s != b"P": + raise SyntaxError("not a PPM file") + magic_number = self._token(s) + mode = MODES[magic_number] + + self.custom_mimetype = { + b"P4": "image/x-portable-bitmap", + b"P5": "image/x-portable-graymap", + b"P6": "image/x-portable-pixmap", + }.get(magic_number) + + if mode == "1": + self.mode = "1" + rawmode = "1;I" + else: + self.mode = rawmode = mode + + for ix in range(3): + while True: + while True: + s = self.fp.read(1) + if s not in b_whitespace: + break + if s == b"": + raise ValueError( + "File does not extend beyond magic number") + if s != b"#": + break + s = self.fp.readline() + s = int(self._token(s)) + if ix == 0: + xsize = s + elif ix == 1: + ysize = s + if mode == "1": + break + elif ix == 2: + # maxgrey + if s > 255: + if not mode == 'L': + raise ValueError("Too many colors for band: %s" % s) + if s < 2**16: + self.mode = 'I' + rawmode = 'I;16B' + else: + self.mode = 'I' + rawmode = 'I;32B' + + self._size = xsize, ysize + self.tile = [("raw", + (0, 0, xsize, ysize), + self.fp.tell(), + (rawmode, 0, 1))] + + +# +# -------------------------------------------------------------------- + +def _save(im, fp, filename): + if im.mode == "1": + rawmode, head = "1;I", b"P4" + elif im.mode == "L": + rawmode, head = "L", b"P5" + elif im.mode == "I": + if im.getextrema()[1] < 2**16: + rawmode, head = "I;16B", b"P5" + else: + rawmode, head = "I;32B", b"P5" + elif im.mode == "RGB": + rawmode, head = "RGB", b"P6" + elif im.mode == "RGBA": + rawmode, head = "RGB", b"P6" + else: + raise IOError("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") + if head == b"P5": + if rawmode == "L": + fp.write(b"255\n") + elif rawmode == "I;16B": + fp.write(b"65535\n") + elif rawmode == "I;32B": + fp.write(b"2147483648\n") + ImageFile._save(im, fp, [("raw", (0, 0)+im.size, 0, (rawmode, 0, 1))]) + + # ALTERNATIVE: save via builtin debug function + # im._dump(filename) + +# +# -------------------------------------------------------------------- + + +Image.register_open(PpmImageFile.format, PpmImageFile, _accept) +Image.register_save(PpmImageFile.format, _save) + +Image.register_extensions(PpmImageFile.format, [".pbm", ".pgm", ".ppm", ".pnm"]) + +Image.register_mime(PpmImageFile.format, "image/x-portable-anymap") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PsdImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PsdImagePlugin.py new file mode 100644 index 00000000..6623f8f8 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PsdImagePlugin.py @@ -0,0 +1,306 @@ +# +# The Python Imaging Library +# $Id$ +# +# Adobe PSD 2.5/3.0 file handling +# +# History: +# 1995-09-01 fl Created +# 1997-01-03 fl Read most PSD images +# 1997-01-18 fl Fixed P and CMYK support +# 2001-10-21 fl Added seek/tell support (for layers) +# +# Copyright (c) 1997-2001 by Secret Labs AB. +# Copyright (c) 1995-2001 by Fredrik Lundh +# +# 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 +from ._binary import i8, i16be as i16, i32be as i32 + +MODES = { + # (photoshop mode, bits) -> (pil mode, required channels) + (0, 1): ("1", 1), + (0, 8): ("L", 1), + (1, 8): ("L", 1), + (2, 8): ("P", 1), + (3, 8): ("RGB", 3), + (4, 8): ("CMYK", 4), + (7, 8): ("L", 1), # FIXME: multilayer + (8, 8): ("L", 1), # duotone + (9, 8): ("LAB", 3) +} + + +# --------------------------------------------------------------------. +# read PSD images + +def _accept(prefix): + return prefix[:4] == b"8BPS" + + +## +# Image plugin for Photoshop images. + +class PsdImageFile(ImageFile.ImageFile): + + format = "PSD" + format_description = "Adobe Photoshop" + + def _open(self): + + read = self.fp.read + + # + # header + + s = read(26) + if s[:4] != b"8BPS" or i16(s[4:]) != 1: + raise SyntaxError("not a PSD file") + + psd_bits = i16(s[22:]) + psd_channels = i16(s[12:]) + psd_mode = i16(s[24:]) + + mode, channels = MODES[(psd_mode, psd_bits)] + + if channels > psd_channels: + raise IOError("not enough channels") + + self.mode = mode + self._size = i32(s[18:]), i32(s[14:]) + + # + # color mode data + + size = i32(read(4)) + if size: + data = read(size) + if mode == "P" and size == 768: + self.palette = ImagePalette.raw("RGB;L", data) + + # + # image resources + + self.resources = [] + + size = i32(read(4)) + if size: + # load resources + end = self.fp.tell() + size + while self.fp.tell() < end: + read(4) # signature + id = i16(read(2)) + name = read(i8(read(1))) + if not (len(name) & 1): + read(1) # padding + data = read(i32(read(4))) + if (len(data) & 1): + read(1) # padding + self.resources.append((id, name, data)) + if id == 1039: # ICC profile + self.info["icc_profile"] = data + + # + # layer and mask information + + self.layers = [] + + size = i32(read(4)) + if size: + end = self.fp.tell() + size + size = i32(read(4)) + if size: + self.layers = _layerinfo(self.fp) + self.fp.seek(end) + + # + # image descriptor + + self.tile = _maketile(self.fp, mode, (0, 0) + self.size, channels) + + # keep the file open + self._fp = self.fp + self.frame = 1 + self._min_frame = 1 + + @property + def n_frames(self): + return len(self.layers) + + @property + def is_animated(self): + return len(self.layers) > 1 + + def seek(self, layer): + if not self._seek_check(layer): + return + + # seek to given layer (1..max) + try: + name, mode, bbox, tile = self.layers[layer-1] + self.mode = mode + self.tile = tile + self.frame = layer + self.fp = self._fp + return name, bbox + except IndexError: + raise EOFError("no such layer") + + def tell(self): + # return layer number (0=image, 1..max=layers) + return self.frame + + def load_prepare(self): + # create image memory if necessary + if not self.im or\ + self.im.mode != self.mode or self.im.size != self.size: + self.im = Image.core.fill(self.mode, self.size, 0) + # create palette (optional) + if self.mode == "P": + Image.Image.load(self) + + +def _layerinfo(file): + # read layerinfo block + layers = [] + read = file.read + for i in range(abs(i16(read(2)))): + + # bounding box + y0 = i32(read(4)) + x0 = i32(read(4)) + y1 = i32(read(4)) + x1 = i32(read(4)) + + # image info + info = [] + mode = [] + types = list(range(i16(read(2)))) + if len(types) > 4: + continue + + for i in types: + type = i16(read(2)) + + if type == 65535: + m = "A" + else: + m = "RGBA"[type] + + mode.append(m) + size = i32(read(4)) + info.append((m, size)) + + # figure out the image mode + mode.sort() + if mode == ["R"]: + mode = "L" + elif mode == ["B", "G", "R"]: + mode = "RGB" + elif mode == ["A", "B", "G", "R"]: + mode = "RGBA" + else: + mode = None # unknown + + # skip over blend flags and extra information + read(12) # filler + name = "" + size = i32(read(4)) + combined = 0 + if size: + length = i32(read(4)) + if length: + file.seek(length - 16, io.SEEK_CUR) + combined += length + 4 + + length = i32(read(4)) + if length: + file.seek(length, io.SEEK_CUR) + combined += length + 4 + + length = i8(read(1)) + if length: + # Don't know the proper encoding, + # Latin-1 should be a good guess + name = read(length).decode('latin-1', 'replace') + combined += length + 1 + + file.seek(size - combined, io.SEEK_CUR) + layers.append((name, mode, (x0, y0, x1, y1))) + + # get tiles + i = 0 + for name, mode, bbox in layers: + tile = [] + for m in mode: + t = _maketile(file, m, bbox, 1) + if t: + tile.extend(t) + layers[i] = name, mode, bbox, tile + i += 1 + + return layers + + +def _maketile(file, mode, bbox, channels): + + tile = None + read = file.read + + compression = i16(read(2)) + + xsize = bbox[2] - bbox[0] + ysize = bbox[3] - bbox[1] + + offset = file.tell() + + if compression == 0: + # + # raw compression + tile = [] + for channel in range(channels): + layer = mode[channel] + if mode == "CMYK": + layer += ";I" + tile.append(("raw", bbox, offset, layer)) + offset = offset + xsize*ysize + + elif compression == 1: + # + # packbits compression + i = 0 + tile = [] + bytecount = read(channels * ysize * 2) + offset = file.tell() + for channel in range(channels): + layer = mode[channel] + if mode == "CMYK": + layer += ";I" + tile.append( + ("packbits", bbox, offset, layer) + ) + for y in range(ysize): + offset = offset + i16(bytecount[i:i+2]) + i += 2 + + file.seek(offset) + + if offset & 1: + read(1) # padding + + return tile + +# -------------------------------------------------------------------- +# registry + + +Image.register_open(PsdImageFile.format, PsdImageFile, _accept) + +Image.register_extension(PsdImageFile.format, ".psd") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PyAccess.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PyAccess.py new file mode 100644 index 00000000..5df1d400 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/PyAccess.py @@ -0,0 +1,336 @@ +# +# The Python Imaging Library +# Pillow fork +# +# Python implementation of the PixelAccess Object +# +# Copyright (c) 1997-2009 by Secret Labs AB. All rights reserved. +# Copyright (c) 1995-2009 by Fredrik Lundh. +# Copyright (c) 2013 Eric Soroos +# +# See the README file for information on usage and redistribution +# + +# Notes: +# +# * Implements the pixel access object following Access. +# * Does not implement the line functions, as they don't appear to be used +# * Taking only the tuple form, which is used from python. +# * Fill.c uses the integer form, but it's still going to use the old +# Access.c implementation. +# + +import logging +import sys + +from cffi import FFI + + +logger = logging.getLogger(__name__) + + +defs = """ +struct Pixel_RGBA { + unsigned char r,g,b,a; +}; +struct Pixel_I16 { + unsigned char l,r; +}; +""" +ffi = FFI() +ffi.cdef(defs) + + +class PyAccess(object): + + def __init__(self, img, readonly=False): + vals = dict(img.im.unsafe_ptrs) + self.readonly = readonly + self.image8 = ffi.cast('unsigned char **', vals['image8']) + self.image32 = ffi.cast('int **', vals['image32']) + self.image = ffi.cast('unsigned char **', vals['image']) + self.xsize, self.ysize = img.im.size + + # Keep pointer to im object to prevent dereferencing. + self._im = img.im + if self._im.mode == "P": + self._palette = img.palette + + # Debugging is polluting test traces, only useful here + # when hacking on PyAccess + # logger.debug("%s", vals) + self._post_init() + + def _post_init(self): + pass + + def __setitem__(self, xy, color): + """ + Modifies the pixel at x,y. The color is given as a single + numerical value for single band images, and a tuple for + multi-band images + + :param xy: The pixel coordinate, given as (x, y). See + :ref:`coordinate-system`. + :param color: The pixel value. + """ + if self.readonly: + raise ValueError('Attempt to putpixel a read only image') + (x, y) = xy + if x < 0: + x = self.xsize + x + if y < 0: + y = self.ysize + y + (x, y) = self.check_xy((x, y)) + + if self._im.mode == "P" and \ + isinstance(color, (list, tuple)) and len(color) in [3, 4]: + # RGB or RGBA value for a P image + color = self._palette.getcolor(color) + + return self.set_pixel(x, y, color) + + def __getitem__(self, xy): + """ + Returns the pixel at x,y. The pixel is returned as a single + value for single band images or a tuple for multiple band + images + + :param xy: The pixel coordinate, given as (x, y). See + :ref:`coordinate-system`. + :returns: a pixel value for single band images, a tuple of + pixel values for multiband images. + """ + (x, y) = xy + if x < 0: + x = self.xsize + x + if y < 0: + y = self.ysize + y + (x, y) = self.check_xy((x, y)) + return self.get_pixel(x, y) + + putpixel = __setitem__ + getpixel = __getitem__ + + def check_xy(self, xy): + (x, y) = xy + if not (0 <= x < self.xsize and 0 <= y < self.ysize): + raise ValueError('pixel location out of range') + return xy + + +class _PyAccess32_2(PyAccess): + """ PA, LA, stored in first and last bytes of a 32 bit word """ + def _post_init(self, *args, **kwargs): + self.pixels = ffi.cast("struct Pixel_RGBA **", self.image32) + + def get_pixel(self, x, y): + pixel = self.pixels[y][x] + return (pixel.r, pixel.a) + + def set_pixel(self, x, y, color): + pixel = self.pixels[y][x] + # tuple + pixel.r = min(color[0], 255) + pixel.a = min(color[1], 255) + + +class _PyAccess32_3(PyAccess): + """ RGB and friends, stored in the first three bytes of a 32 bit word """ + + def _post_init(self, *args, **kwargs): + self.pixels = ffi.cast("struct Pixel_RGBA **", self.image32) + + def get_pixel(self, x, y): + pixel = self.pixels[y][x] + return (pixel.r, pixel.g, pixel.b) + + def set_pixel(self, x, y, color): + pixel = self.pixels[y][x] + # tuple + pixel.r = min(color[0], 255) + pixel.g = min(color[1], 255) + pixel.b = min(color[2], 255) + pixel.a = 255 + + +class _PyAccess32_4(PyAccess): + """ RGBA etc, all 4 bytes of a 32 bit word """ + def _post_init(self, *args, **kwargs): + self.pixels = ffi.cast("struct Pixel_RGBA **", self.image32) + + def get_pixel(self, x, y): + pixel = self.pixels[y][x] + return (pixel.r, pixel.g, pixel.b, pixel.a) + + def set_pixel(self, x, y, color): + pixel = self.pixels[y][x] + # tuple + pixel.r = min(color[0], 255) + pixel.g = min(color[1], 255) + pixel.b = min(color[2], 255) + pixel.a = min(color[3], 255) + + +class _PyAccess8(PyAccess): + """ 1, L, P, 8 bit images stored as uint8 """ + def _post_init(self, *args, **kwargs): + self.pixels = self.image8 + + def get_pixel(self, x, y): + return self.pixels[y][x] + + def set_pixel(self, x, y, color): + try: + # integer + self.pixels[y][x] = min(color, 255) + except TypeError: + # tuple + self.pixels[y][x] = min(color[0], 255) + + +class _PyAccessI16_N(PyAccess): + """ I;16 access, native bitendian without conversion """ + def _post_init(self, *args, **kwargs): + self.pixels = ffi.cast('unsigned short **', self.image) + + def get_pixel(self, x, y): + return self.pixels[y][x] + + def set_pixel(self, x, y, color): + try: + # integer + self.pixels[y][x] = min(color, 65535) + except TypeError: + # tuple + self.pixels[y][x] = min(color[0], 65535) + + +class _PyAccessI16_L(PyAccess): + """ I;16L access, with conversion """ + def _post_init(self, *args, **kwargs): + self.pixels = ffi.cast('struct Pixel_I16 **', self.image) + + def get_pixel(self, x, y): + pixel = self.pixels[y][x] + return pixel.l + pixel.r * 256 + + def set_pixel(self, x, y, color): + pixel = self.pixels[y][x] + try: + color = min(color, 65535) + except TypeError: + color = min(color[0], 65535) + + pixel.l = color & 0xFF # noqa: E741 + pixel.r = color >> 8 + + +class _PyAccessI16_B(PyAccess): + """ I;16B access, with conversion """ + def _post_init(self, *args, **kwargs): + self.pixels = ffi.cast('struct Pixel_I16 **', self.image) + + def get_pixel(self, x, y): + pixel = self.pixels[y][x] + return pixel.l * 256 + pixel.r + + def set_pixel(self, x, y, color): + pixel = self.pixels[y][x] + try: + color = min(color, 65535) + except Exception: + color = min(color[0], 65535) + + pixel.l = color >> 8 # noqa: E741 + pixel.r = color & 0xFF + + +class _PyAccessI32_N(PyAccess): + """ Signed Int32 access, native endian """ + def _post_init(self, *args, **kwargs): + self.pixels = self.image32 + + def get_pixel(self, x, y): + return self.pixels[y][x] + + def set_pixel(self, x, y, color): + self.pixels[y][x] = color + + +class _PyAccessI32_Swap(PyAccess): + """ I;32L/B access, with byteswapping conversion """ + def _post_init(self, *args, **kwargs): + self.pixels = self.image32 + + def reverse(self, i): + orig = ffi.new('int *', i) + chars = ffi.cast('unsigned char *', orig) + chars[0], chars[1], chars[2], chars[3] = chars[3], chars[2], \ + chars[1], chars[0] + return ffi.cast('int *', chars)[0] + + def get_pixel(self, x, y): + return self.reverse(self.pixels[y][x]) + + def set_pixel(self, x, y, color): + self.pixels[y][x] = self.reverse(color) + + +class _PyAccessF(PyAccess): + """ 32 bit float access """ + def _post_init(self, *args, **kwargs): + self.pixels = ffi.cast('float **', self.image32) + + def get_pixel(self, x, y): + return self.pixels[y][x] + + def set_pixel(self, x, y, color): + try: + # not a tuple + self.pixels[y][x] = color + except TypeError: + # tuple + self.pixels[y][x] = color[0] + + +mode_map = {'1': _PyAccess8, + 'L': _PyAccess8, + 'P': _PyAccess8, + 'LA': _PyAccess32_2, + 'La': _PyAccess32_2, + 'PA': _PyAccess32_2, + 'RGB': _PyAccess32_3, + 'LAB': _PyAccess32_3, + 'HSV': _PyAccess32_3, + 'YCbCr': _PyAccess32_3, + 'RGBA': _PyAccess32_4, + 'RGBa': _PyAccess32_4, + 'RGBX': _PyAccess32_4, + 'CMYK': _PyAccess32_4, + 'F': _PyAccessF, + 'I': _PyAccessI32_N, + } + +if sys.byteorder == 'little': + mode_map['I;16'] = _PyAccessI16_N + mode_map['I;16L'] = _PyAccessI16_N + mode_map['I;16B'] = _PyAccessI16_B + + mode_map['I;32L'] = _PyAccessI32_N + mode_map['I;32B'] = _PyAccessI32_Swap +else: + mode_map['I;16'] = _PyAccessI16_L + mode_map['I;16L'] = _PyAccessI16_L + mode_map['I;16B'] = _PyAccessI16_N + + mode_map['I;32L'] = _PyAccessI32_Swap + mode_map['I;32B'] = _PyAccessI32_N + + +def new(img, readonly=False): + access_type = mode_map.get(img.mode, None) + if not access_type: + logger.debug("PyAccess Not Implemented: %s", img.mode) + return None + return access_type(img, readonly) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SgiImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SgiImagePlugin.py new file mode 100644 index 00000000..37867bdb --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SgiImagePlugin.py @@ -0,0 +1,231 @@ +# +# The Python Imaging Library. +# $Id$ +# +# SGI image file handling +# +# See "The SGI Image File Format (Draft version 0.97)", Paul Haeberli. +# +# +# +# History: +# 2017-22-07 mb Add RLE decompression +# 2016-16-10 mb Add save method without compression +# 1995-09-10 fl Created +# +# Copyright (c) 2016 by Mickael Bonfill. +# Copyright (c) 2008 by Karsten Hiddemann. +# Copyright (c) 1997 by Secret Labs AB. +# Copyright (c) 1995 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + + +from . import Image, ImageFile +from ._binary import i8, o8, i16be as i16 +from ._util import py3 +import struct +import os + + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.3" + + +def _accept(prefix): + return len(prefix) >= 2 and i16(prefix) == 474 + + +MODES = { + (1, 1, 1): "L", + (1, 2, 1): "L", + (2, 1, 1): "L;16B", + (2, 2, 1): "L;16B", + (1, 3, 3): "RGB", + (2, 3, 3): "RGB;16B", + (1, 3, 4): "RGBA", + (2, 3, 4): "RGBA;16B" +} + + +## +# Image plugin for SGI images. +class SgiImageFile(ImageFile.ImageFile): + + format = "SGI" + format_description = "SGI Image File Format" + + def _open(self): + + # HEAD + headlen = 512 + s = self.fp.read(headlen) + + # magic number : 474 + if i16(s) != 474: + raise ValueError("Not an SGI image file") + + # compression : verbatim or RLE + compression = i8(s[2]) + + # bpc : 1 or 2 bytes (8bits or 16bits) + bpc = i8(s[3]) + + # dimension : 1, 2 or 3 (depending on xsize, ysize and zsize) + dimension = i16(s[4:]) + + # xsize : width + xsize = i16(s[6:]) + + # ysize : height + ysize = i16(s[8:]) + + # zsize : channels count + zsize = i16(s[10:]) + + # layout + layout = bpc, dimension, zsize + + # determine mode from bits/zsize + rawmode = "" + try: + rawmode = MODES[layout] + except KeyError: + pass + + if rawmode == "": + raise ValueError("Unsupported SGI image mode") + + self._size = xsize, ysize + self.mode = rawmode.split(";")[0] + if self.mode == 'RGB': + self.custom_mimetype = 'image/rgb' + + # orientation -1 : scanlines begins at the bottom-left corner + orientation = -1 + + # decoder info + if compression == 0: + pagesize = xsize * ysize * bpc + if bpc == 2: + self.tile = [("SGI16", (0, 0) + self.size, + headlen, (self.mode, 0, orientation))] + else: + self.tile = [] + offset = headlen + for layer in self.mode: + self.tile.append( + ("raw", (0, 0) + self.size, + offset, (layer, 0, orientation))) + offset += pagesize + elif compression == 1: + self.tile = [("sgi_rle", (0, 0) + self.size, + headlen, (rawmode, orientation, bpc))] + + +def _save(im, fp, filename): + if im.mode != "RGB" and im.mode != "RGBA" and im.mode != "L": + raise ValueError("Unsupported SGI image mode") + + # Get the keyword arguments + info = im.encoderinfo + + # Byte-per-pixel precision, 1 = 8bits per pixel + bpc = info.get("bpc", 1) + + if bpc not in (1, 2): + raise ValueError("Unsupported number of bytes per pixel") + + # Flip the image, since the origin of SGI file is the bottom-left corner + orientation = -1 + # Define the file as SGI File Format + magicNumber = 474 + # Run-Length Encoding Compression - Unsupported at this time + rle = 0 + + # Number of dimensions (x,y,z) + dim = 3 + # X Dimension = width / Y Dimension = height + x, y = im.size + if im.mode == "L" and y == 1: + dim = 1 + elif im.mode == "L": + dim = 2 + # Z Dimension: Number of channels + z = len(im.mode) + + if dim == 1 or dim == 2: + z = 1 + + # 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()))) + + # Minimum Byte value + pinmin = 0 + # Maximum Byte value (255 = 8bits per pixel) + 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') + # Standard representation of pixel in the file + colormap = 0 + fp.write(struct.pack('>h', magicNumber)) + fp.write(o8(rle)) + fp.write(o8(bpc)) + fp.write(struct.pack('>H', dim)) + fp.write(struct.pack('>H', x)) + fp.write(struct.pack('>H', y)) + fp.write(struct.pack('>H', z)) + fp.write(struct.pack('>l', pinmin)) + fp.write(struct.pack('>l', pinmax)) + fp.write(struct.pack('4s', b'')) # dummy + fp.write(struct.pack('79s', imgName)) # truncates to 79 chars + fp.write(struct.pack('s', b'')) # force null byte after imgname + fp.write(struct.pack('>l', colormap)) + fp.write(struct.pack('404s', b'')) # dummy + + rawmode = 'L' + if bpc == 2: + rawmode = 'L;16B' + + for channel in im.split(): + fp.write(channel.tobytes('raw', rawmode, 0, orientation)) + + fp.close() + + +class SGI16Decoder(ImageFile.PyDecoder): + _pulls_fd = True + + def decode(self, buffer): + rawmode, stride, orientation = self.args + pagesize = self.state.xsize * self.state.ysize + zsize = len(self.mode) + self.fd.seek(512) + + for band in range(zsize): + channel = Image.new('L', (self.state.xsize, self.state.ysize)) + channel.frombytes(self.fd.read(2 * pagesize), 'raw', + 'L;16B', stride, orientation) + self.im.putband(channel.im, band) + + return -1, 0 + +# +# registry + + +Image.register_decoder("SGI16", SGI16Decoder) +Image.register_open(SgiImageFile.format, SgiImageFile, _accept) +Image.register_save(SgiImageFile.format, _save) +Image.register_mime(SgiImageFile.format, "image/sgi") + +Image.register_extensions(SgiImageFile.format, + [".bw", ".rgb", ".rgba", ".sgi"]) + +# End of file diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SpiderImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SpiderImagePlugin.py new file mode 100644 index 00000000..b601847c --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SpiderImagePlugin.py @@ -0,0 +1,322 @@ +# +# The Python Imaging Library. +# +# SPIDER image file handling +# +# History: +# 2004-08-02 Created BB +# 2006-03-02 added save method +# 2006-03-13 added support for stack images +# +# Copyright (c) 2004 by Health Research Inc. (HRI) RENSSELAER, NY 12144. +# Copyright (c) 2004 by William Baxter. +# Copyright (c) 2004 by Secret Labs AB. +# Copyright (c) 2004 by Fredrik Lundh. +# + +## +# Image plugin for the Spider image format. This format is is used +# by the SPIDER software, in processing image data from electron +# microscopy and tomography. +## + +# +# SpiderImagePlugin.py +# +# The Spider image format is used by SPIDER software, in processing +# image data from electron microscopy and tomography. +# +# Spider home page: +# https://spider.wadsworth.org/spider_doc/spider/docs/spider.html +# +# Details about the Spider image format: +# https://spider.wadsworth.org/spider_doc/spider/docs/image_doc.html +# + +from __future__ import print_function + +from PIL import Image, ImageFile +import os +import struct +import sys + + +def isInt(f): + try: + i = int(f) + if f-i == 0: + return 1 + else: + return 0 + except (ValueError, OverflowError): + return 0 + + +iforms = [1, 3, -11, -12, -21, -22] + + +# There is no magic number to identify Spider files, so just check a +# series of header locations to see if they have reasonable values. +# Returns no. of bytes in the header, if it is a valid Spider header, +# otherwise returns 0 + +def isSpiderHeader(t): + h = (99,) + t # add 1 value so can use spider header index start=1 + # header values 1,2,5,12,13,22,23 should be integers + for i in [1, 2, 5, 12, 13, 22, 23]: + if not isInt(h[i]): + return 0 + # check iform + iform = int(h[5]) + if iform not in iforms: + return 0 + # check other header values + labrec = int(h[13]) # no. records in file header + labbyt = int(h[22]) # total no. of bytes in header + lenbyt = int(h[23]) # record length in bytes + if labbyt != (labrec * lenbyt): + return 0 + # looks like a valid header + return labbyt + + +def isSpiderImage(filename): + with open(filename, 'rb') as fp: + f = fp.read(92) # read 23 * 4 bytes + t = struct.unpack('>23f', f) # try big-endian first + hdrlen = isSpiderHeader(t) + if hdrlen == 0: + t = struct.unpack('<23f', f) # little-endian + hdrlen = isSpiderHeader(t) + return hdrlen + + +class SpiderImageFile(ImageFile.ImageFile): + + format = "SPIDER" + format_description = "Spider 2D image" + _close_exclusive_fp_after_loading = False + + def _open(self): + # check header + n = 27 * 4 # read 27 float values + f = self.fp.read(n) + + try: + self.bigendian = 1 + t = struct.unpack('>27f', f) # try big-endian first + hdrlen = isSpiderHeader(t) + if hdrlen == 0: + self.bigendian = 0 + t = struct.unpack('<27f', f) # little-endian + hdrlen = isSpiderHeader(t) + if hdrlen == 0: + raise SyntaxError("not a valid Spider file") + except struct.error: + raise SyntaxError("not a valid Spider file") + + h = (99,) + t # add 1 value : spider header index starts at 1 + iform = int(h[5]) + if iform != 1: + raise SyntaxError("not a Spider 2D image") + + self._size = int(h[12]), int(h[2]) # size in pixels (width, height) + self.istack = int(h[24]) + self.imgnumber = int(h[27]) + + if self.istack == 0 and self.imgnumber == 0: + # stk=0, img=0: a regular 2D image + offset = hdrlen + self._nimages = 1 + elif self.istack > 0 and self.imgnumber == 0: + # stk>0, img=0: Opening the stack for the first time + self.imgbytes = int(h[12]) * int(h[2]) * 4 + self.hdrlen = hdrlen + self._nimages = int(h[26]) + # Point to the first image in the stack + offset = hdrlen * 2 + self.imgnumber = 1 + elif self.istack == 0 and self.imgnumber > 0: + # stk=0, img>0: an image within the stack + offset = hdrlen + self.stkoffset + self.istack = 2 # So Image knows it's still a stack + else: + raise SyntaxError("inconsistent stack header values") + + if self.bigendian: + self.rawmode = "F;32BF" + else: + self.rawmode = "F;32F" + self.mode = "F" + + self.tile = [ + ("raw", (0, 0) + self.size, offset, + (self.rawmode, 0, 1))] + self.__fp = self.fp # FIXME: hack + + @property + def n_frames(self): + return self._nimages + + @property + def is_animated(self): + return self._nimages > 1 + + # 1st image index is zero (although SPIDER imgnumber starts at 1) + def tell(self): + if self.imgnumber < 1: + return 0 + else: + return self.imgnumber - 1 + + def seek(self, frame): + if self.istack == 0: + raise EOFError("attempt to seek in a non-stack file") + if not self._seek_check(frame): + return + self.stkoffset = self.hdrlen + frame * (self.hdrlen + self.imgbytes) + self.fp = self.__fp + self.fp.seek(self.stkoffset) + self._open() + + # returns a byte image after rescaling to 0..255 + def convert2byte(self, depth=255): + (minimum, maximum) = self.getextrema() + m = 1 + if maximum != minimum: + m = depth / (maximum-minimum) + b = -m * minimum + return self.point(lambda i, m=m, b=b: i * m + b).convert("L") + + # returns a ImageTk.PhotoImage object, after rescaling to 0..255 + def tkPhotoImage(self): + from PIL import ImageTk + return ImageTk.PhotoImage(self.convert2byte(), palette=256) + + def _close__fp(self): + try: + if self.__fp != self.fp: + self.__fp.close() + except AttributeError: + pass + finally: + self.__fp = None + + +# -------------------------------------------------------------------- +# Image series + +# given a list of filenames, return a list of images +def loadImageSeries(filelist=None): + """create a list of :py:class:`~PIL.Image.Image` objects for use in a montage""" + if filelist is None or len(filelist) < 1: + return + + imglist = [] + for img in filelist: + if not os.path.exists(img): + print("unable to find %s" % img) + continue + try: + im = Image.open(img).convert2byte() + except Exception: + if not isSpiderImage(img): + print(img + " is not a Spider image file") + continue + im.info['filename'] = img + imglist.append(im) + return imglist + + +# -------------------------------------------------------------------- +# For saving images in Spider format + +def makeSpiderHeader(im): + nsam, nrow = im.size + lenbyt = nsam * 4 # There are labrec records in the header + labrec = 1024 / lenbyt + if 1024 % lenbyt != 0: + labrec += 1 + labbyt = labrec * lenbyt + hdr = [] + nvalues = int(labbyt / 4) + for i in range(nvalues): + hdr.append(0.0) + + if len(hdr) < 23: + return [] + + # NB these are Fortran indices + hdr[1] = 1.0 # nslice (=1 for an image) + hdr[2] = float(nrow) # number of rows per slice + hdr[5] = 1.0 # iform for 2D image + hdr[12] = float(nsam) # number of pixels per line + hdr[13] = float(labrec) # number of records in file header + hdr[22] = float(labbyt) # total number of bytes in header + hdr[23] = float(lenbyt) # record length in bytes + + # adjust for Fortran indexing + hdr = hdr[1:] + hdr.append(0.0) + # pack binary data into a string + hdrstr = [] + for v in hdr: + hdrstr.append(struct.pack('f', v)) + return hdrstr + + +def _save(im, fp, filename): + if im.mode[0] != "F": + im = im.convert('F') + + hdr = makeSpiderHeader(im) + if len(hdr) < 256: + raise IOError("Error creating Spider header") + + # write the SPIDER header + fp.writelines(hdr) + + rawmode = "F;32NF" # 32-bit native floating point + ImageFile._save(im, fp, [("raw", (0, 0)+im.size, 0, (rawmode, 0, 1))]) + + +def _save_spider(im, fp, filename): + # get the filename extension and register it with Image + ext = os.path.splitext(filename)[1] + Image.register_extension(SpiderImageFile.format, ext) + _save(im, fp, filename) + +# -------------------------------------------------------------------- + + +Image.register_open(SpiderImageFile.format, SpiderImageFile) +Image.register_save(SpiderImageFile.format, _save_spider) + +if __name__ == "__main__": + + if len(sys.argv) < 2: + print("Syntax: python SpiderImagePlugin.py [infile] [outfile]") + sys.exit() + + filename = sys.argv[1] + if not isSpiderImage(filename): + 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()) + + 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) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SunImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SunImagePlugin.py new file mode 100644 index 00000000..485099fd --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/SunImagePlugin.py @@ -0,0 +1,139 @@ +# +# The Python Imaging Library. +# $Id$ +# +# Sun image file handling +# +# History: +# 1995-09-10 fl Created +# 1996-05-28 fl Fixed 32-bit alignment +# 1998-12-29 fl Import ImagePalette module +# 2001-12-18 fl Fixed palette loading (from Jean-Claude Rimbault) +# +# Copyright (c) 1997-2001 by Secret Labs AB +# Copyright (c) 1995-1996 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + + +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 + + +## +# Image plugin for Sun raster files. + +class SunImageFile(ImageFile.ImageFile): + + format = "SUN" + format_description = "Sun Raster File" + + def _open(self): + + # The Sun Raster file header is 32 bytes in length + # and has the following format: + + # typedef struct _SunRaster + # { + # DWORD MagicNumber; /* Magic (identification) number */ + # DWORD Width; /* Width of image in pixels */ + # DWORD Height; /* Height of image in pixels */ + # DWORD Depth; /* Number of bits per pixel */ + # DWORD Length; /* Size of image data in bytes */ + # DWORD Type; /* Type of raster file */ + # DWORD ColorMapType; /* Type of color map */ + # DWORD ColorMapLength; /* Size of the color map in bytes */ + # } SUNRASTER; + + # HEAD + s = self.fp.read(32) + if i32(s) != 0x59a66a95: + raise SyntaxError("not an SUN raster file") + + offset = 32 + + self._size = i32(s[4:8]), i32(s[8:12]) + + depth = i32(s[12:16]) + # data_length = i32(s[16:20]) # unreliable, ignore. + file_type = i32(s[20:24]) + palette_type = i32(s[24:28]) # 0: None, 1: RGB, 2: Raw/arbitrary + palette_length = i32(s[28:32]) + + if depth == 1: + self.mode, rawmode = "1", "1;I" + elif depth == 4: + self.mode, rawmode = "L", "L;4" + elif depth == 8: + self.mode = rawmode = "L" + elif depth == 24: + if file_type == 3: + self.mode, rawmode = "RGB", "RGB" + else: + self.mode, rawmode = "RGB", "BGR" + elif depth == 32: + if file_type == 3: + self.mode, rawmode = 'RGB', 'RGBX' + else: + self.mode, rawmode = 'RGB', 'BGRX' + else: + raise SyntaxError("Unsupported Mode/Bit Depth") + + if palette_length: + if palette_length > 1024: + raise SyntaxError("Unsupported Color Palette Length") + + if palette_type != 1: + raise SyntaxError("Unsupported Palette Type") + + offset = offset + palette_length + self.palette = ImagePalette.raw("RGB;L", + self.fp.read(palette_length)) + if self.mode == "L": + self.mode = "P" + rawmode = rawmode.replace('L', 'P') + + # 16 bit boundaries on stride + stride = ((self.size[0] * depth + 15) // 16) * 2 + + # file type: Type is the version (or flavor) of the bitmap + # file. The following values are typically found in the Type + # field: + # 0000h Old + # 0001h Standard + # 0002h Byte-encoded + # 0003h RGB format + # 0004h TIFF format + # 0005h IFF format + # FFFFh Experimental + + # Old and standard are the same, except for the length tag. + # byte-encoded is run-length-encoded + # RGB looks similar to standard, but RGB byte order + # TIFF and IFF mean that they were converted from T/IFF + # Experimental means that it's something else. + # (https://www.fileformat.info/format/sunraster/egff.htm) + + if file_type in (0, 1, 3, 4, 5): + self.tile = [("raw", (0, 0)+self.size, offset, (rawmode, stride))] + elif file_type == 2: + self.tile = [("sun_rle", (0, 0)+self.size, offset, rawmode)] + else: + raise SyntaxError('Unsupported Sun Raster file type') + +# +# registry + + +Image.register_open(SunImageFile.format, SunImageFile, _accept) + +Image.register_extension(SunImageFile.format, ".ras") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TarIO.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TarIO.py new file mode 100644 index 00000000..a421b12a --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TarIO.py @@ -0,0 +1,72 @@ +# +# The Python Imaging Library. +# $Id$ +# +# read files from within a tar file +# +# History: +# 95-06-18 fl Created +# 96-05-28 fl Open files in binary mode +# +# Copyright (c) Secret Labs AB 1997. +# Copyright (c) Fredrik Lundh 1995-96. +# +# See the README file for information on usage and redistribution. +# + +import io +import sys +from . import ContainerIO + + +## +# A file object that provides read access to a given member of a TAR +# file. + +class TarIO(ContainerIO.ContainerIO): + + def __init__(self, tarfile, file): + """ + Create file object. + + :param tarfile: Name of TAR file. + :param file: Name of member file. + """ + self.fh = open(tarfile, "rb") + + while True: + + s = self.fh.read(512) + if len(s) != 512: + raise IOError("unexpected end of tar file") + + name = s[:100].decode('utf-8') + i = name.find('\0') + if i == 0: + raise IOError("cannot find subfile") + if i > 0: + name = name[:i] + + size = int(s[124:135], 8) + + if file == name: + break + + self.fh.seek((size + 511) & (~511), io.SEEK_CUR) + + # Open region + ContainerIO.ContainerIO.__init__(self, self.fh, self.fh.tell(), size) + + # Context manager support + def __enter__(self): + return self + + 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/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TgaImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TgaImagePlugin.py new file mode 100644 index 00000000..ae9697b2 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TgaImagePlugin.py @@ -0,0 +1,231 @@ +# +# The Python Imaging Library. +# $Id$ +# +# TGA file handling +# +# History: +# 95-09-01 fl created (reads 24-bit files only) +# 97-01-04 fl support more TGA versions, including compressed images +# 98-07-04 fl fixed orientation and alpha layer bugs +# 98-09-11 fl fixed orientation for runlength decoder +# +# Copyright (c) Secret Labs AB 1997-98. +# Copyright (c) Fredrik Lundh 1995-97. +# +# See the README file for information on usage and redistribution. +# + + +from . import Image, ImageFile, ImagePalette +from ._binary import i8, i16le as i16, o8, o16le as o16 + +import warnings + +# __version__ is deprecated and will be removed in a future version. Use +# PIL.__version__ instead. +__version__ = "0.3" + + +# +# -------------------------------------------------------------------- +# Read RGA file + + +MODES = { + # map imagetype/depth to rawmode + (1, 8): "P", + (3, 1): "1", + (3, 8): "L", + (3, 16): "LA", + (2, 16): "BGR;5", + (2, 24): "BGR", + (2, 32): "BGRA", +} + + +## +# Image plugin for Targa files. + +class TgaImageFile(ImageFile.ImageFile): + + format = "TGA" + format_description = "Targa" + + def _open(self): + + # process header + s = self.fp.read(18) + + id_len = i8(s[0]) + + colormaptype = i8(s[1]) + imagetype = i8(s[2]) + + depth = i8(s[16]) + + flags = i8(s[17]) + + self._size = i16(s[12:]), i16(s[14:]) + + # validate header fields + if colormaptype not in (0, 1) or\ + self.size[0] <= 0 or self.size[1] <= 0 or\ + depth not in (1, 8, 16, 24, 32): + raise SyntaxError("not a TGA file") + + # image mode + if imagetype in (3, 11): + self.mode = "L" + if depth == 1: + self.mode = "1" # ??? + elif depth == 16: + self.mode = "LA" + elif imagetype in (1, 9): + self.mode = "P" + elif imagetype in (2, 10): + self.mode = "RGB" + if depth == 32: + self.mode = "RGBA" + else: + raise SyntaxError("unknown TGA mode") + + # orientation + orientation = flags & 0x30 + if orientation == 0x20: + orientation = 1 + elif not orientation: + orientation = -1 + else: + raise SyntaxError("unknown TGA orientation") + + self.info["orientation"] = orientation + + if imagetype & 8: + self.info["compression"] = "tga_rle" + + if id_len: + self.info["id_section"] = self.fp.read(id_len) + + if colormaptype: + # read palette + start, size, mapdepth = i16(s[3:]), i16(s[5:]), i16(s[7:]) + if mapdepth == 16: + self.palette = ImagePalette.raw( + "BGR;16", b"\0"*2*start + self.fp.read(2*size)) + elif mapdepth == 24: + self.palette = ImagePalette.raw( + "BGR", b"\0"*3*start + self.fp.read(3*size)) + elif mapdepth == 32: + self.palette = ImagePalette.raw( + "BGRA", b"\0"*4*start + self.fp.read(4*size)) + + # setup tile descriptor + try: + rawmode = MODES[(imagetype & 7, depth)] + if imagetype & 8: + # compressed + self.tile = [("tga_rle", (0, 0)+self.size, + self.fp.tell(), (rawmode, orientation, depth))] + else: + self.tile = [("raw", (0, 0)+self.size, + self.fp.tell(), (rawmode, 0, orientation))] + except KeyError: + pass # cannot decode + +# +# -------------------------------------------------------------------- +# Write TGA file + + +SAVE = { + "1": ("1", 1, 0, 3), + "L": ("L", 8, 0, 3), + "LA": ("LA", 16, 0, 3), + "P": ("P", 8, 1, 1), + "RGB": ("BGR", 24, 0, 2), + "RGBA": ("BGRA", 32, 0, 2), +} + + +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) + + if "rle" in im.encoderinfo: + rle = im.encoderinfo["rle"] + else: + compression = im.encoderinfo.get("compression", + im.info.get("compression")) + rle = compression == "tga_rle" + if rle: + imagetype += 8 + + id_section = im.encoderinfo.get("id_section", + im.info.get("id_section", "")) + id_len = len(id_section) + if id_len > 255: + id_len = 255 + id_section = id_section[:255] + warnings.warn("id_section has been trimmed to 255 characters") + + if colormaptype: + colormapfirst, colormaplength, colormapentry = 0, 256, 24 + else: + colormapfirst, colormaplength, colormapentry = 0, 0, 0 + + if im.mode in ("LA", "RGBA"): + flags = 8 + else: + flags = 0 + + orientation = im.encoderinfo.get("orientation", + im.info.get("orientation", -1)) + if orientation > 0: + flags = flags | 0x20 + + fp.write(o8(id_len) + + o8(colormaptype) + + o8(imagetype) + + o16(colormapfirst) + + o16(colormaplength) + + o8(colormapentry) + + o16(0) + + o16(0) + + o16(im.size[0]) + + o16(im.size[1]) + + o8(bits) + + o8(flags)) + + if id_section: + fp.write(id_section) + + if colormaptype: + fp.write(im.im.getpalette("RGB", "BGR")) + + if rle: + ImageFile._save( + im, + fp, + [("tga_rle", (0, 0) + im.size, 0, (rawmode, orientation))]) + else: + ImageFile._save( + im, fp, [("raw", (0, 0) + im.size, 0, (rawmode, 0, orientation))]) + + # write targa version 2 footer + fp.write(b"\000" * 8 + b"TRUEVISION-XFILE." + b"\000") + +# +# -------------------------------------------------------------------- +# Registry + + +Image.register_open(TgaImageFile.format, TgaImageFile) +Image.register_save(TgaImageFile.format, _save) + +Image.register_extensions(TgaImageFile.format, [".tga", ".icb", ".vda", ".vst"]) + +Image.register_mime(TgaImageFile.format, "image/x-tga") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TiffImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TiffImagePlugin.py new file mode 100644 index 00000000..44dde199 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TiffImagePlugin.py @@ -0,0 +1,1859 @@ +# +# The Python Imaging Library. +# $Id$ +# +# TIFF file handling +# +# TIFF is a flexible, if somewhat aged, image file format originally +# defined by Aldus. Although TIFF supports a wide variety of pixel +# layouts and compression methods, the name doesn't really stand for +# "thousands of incompatible file formats," it just feels that way. +# +# To read TIFF data from a stream, the stream must be seekable. For +# progressive decoding, make sure to use TIFF files where the tag +# directory is placed first in the file. +# +# History: +# 1995-09-01 fl Created +# 1996-05-04 fl Handle JPEGTABLES tag +# 1996-05-18 fl Fixed COLORMAP support +# 1997-01-05 fl Fixed PREDICTOR support +# 1997-08-27 fl Added support for rational tags (from Perry Stoll) +# 1998-01-10 fl Fixed seek/tell (from Jan Blom) +# 1998-07-15 fl Use private names for internal variables +# 1999-06-13 fl Rewritten for PIL 1.0 (1.0) +# 2000-10-11 fl Additional fixes for Python 2.0 (1.1) +# 2001-04-17 fl Fixed rewind support (seek to frame 0) (1.2) +# 2001-05-12 fl Added write support for more tags (from Greg Couch) (1.3) +# 2001-12-18 fl Added workaround for broken Matrox library +# 2002-01-18 fl Don't mess up if photometric tag is missing (D. Alan Stewart) +# 2003-05-19 fl Check FILLORDER tag +# 2003-09-26 fl Added RGBa support +# 2004-02-24 fl Added DPI support; fixed rational write support +# 2005-02-07 fl Added workaround for broken Corel Draw 10 files +# 2006-01-09 fl Added support for float/double tags (from Russell Nelson) +# +# Copyright (c) 1997-2006 by Secret Labs AB. All rights reserved. +# Copyright (c) 1995-1997 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +from __future__ import division, print_function + +from . import Image, ImageFile, ImagePalette, TiffTags +from ._binary import i8, o8 +from ._util import py3 + +from fractions import Fraction +from numbers import Number, Rational + +import io +import itertools +import os +import struct +import sys +import warnings +import distutils.version + +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. +READ_LIBTIFF = False +WRITE_LIBTIFF = False +IFD_LEGACY_API = True + +II = b"II" # little-endian (Intel style) +MM = b"MM" # big-endian (Motorola style) + +# +# -------------------------------------------------------------------- +# Read TIFF files + +# a few tag names, just to make the code below a bit more readable +IMAGEWIDTH = 256 +IMAGELENGTH = 257 +BITSPERSAMPLE = 258 +COMPRESSION = 259 +PHOTOMETRIC_INTERPRETATION = 262 +FILLORDER = 266 +IMAGEDESCRIPTION = 270 +STRIPOFFSETS = 273 +SAMPLESPERPIXEL = 277 +ROWSPERSTRIP = 278 +STRIPBYTECOUNTS = 279 +X_RESOLUTION = 282 +Y_RESOLUTION = 283 +PLANAR_CONFIGURATION = 284 +RESOLUTION_UNIT = 296 +SOFTWARE = 305 +DATE_TIME = 306 +ARTIST = 315 +PREDICTOR = 317 +COLORMAP = 320 +TILEOFFSETS = 324 +EXTRASAMPLES = 338 +SAMPLEFORMAT = 339 +JPEGTABLES = 347 +COPYRIGHT = 33432 +IPTC_NAA_CHUNK = 33723 # newsphoto properties +PHOTOSHOP_CHUNK = 34377 # photoshop properties +ICCPROFILE = 34675 +EXIFIFD = 34665 +XMP = 700 + +# https://github.com/imagej/ImageJA/blob/master/src/main/java/ij/io/TiffDecoder.java +IMAGEJ_META_DATA_BYTE_COUNTS = 50838 +IMAGEJ_META_DATA = 50839 + +COMPRESSION_INFO = { + # Compression => pil compression name + 1: "raw", + 2: "tiff_ccitt", + 3: "group3", + 4: "group4", + 5: "tiff_lzw", + 6: "tiff_jpeg", # obsolete + 7: "jpeg", + 8: "tiff_adobe_deflate", + 32771: "tiff_raw_16", # 16-bit padding + 32773: "packbits", + 32809: "tiff_thunderscan", + 32946: "tiff_deflate", + 34676: "tiff_sgilog", + 34677: "tiff_sgilog24", + 34925: "lzma", + 50000: "zstd", + 50001: "webp", +} + +COMPRESSION_INFO_REV = {v: k for k, v in COMPRESSION_INFO.items()} + +OPEN_INFO = { + # (ByteOrder, PhotoInterpretation, SampleFormat, FillOrder, BitsPerSample, + # ExtraSamples) => mode, rawmode + (II, 0, (1,), 1, (1,), ()): ("1", "1;I"), + (MM, 0, (1,), 1, (1,), ()): ("1", "1;I"), + (II, 0, (1,), 2, (1,), ()): ("1", "1;IR"), + (MM, 0, (1,), 2, (1,), ()): ("1", "1;IR"), + (II, 1, (1,), 1, (1,), ()): ("1", "1"), + (MM, 1, (1,), 1, (1,), ()): ("1", "1"), + (II, 1, (1,), 2, (1,), ()): ("1", "1;R"), + (MM, 1, (1,), 2, (1,), ()): ("1", "1;R"), + + (II, 0, (1,), 1, (2,), ()): ("L", "L;2I"), + (MM, 0, (1,), 1, (2,), ()): ("L", "L;2I"), + (II, 0, (1,), 2, (2,), ()): ("L", "L;2IR"), + (MM, 0, (1,), 2, (2,), ()): ("L", "L;2IR"), + (II, 1, (1,), 1, (2,), ()): ("L", "L;2"), + (MM, 1, (1,), 1, (2,), ()): ("L", "L;2"), + (II, 1, (1,), 2, (2,), ()): ("L", "L;2R"), + (MM, 1, (1,), 2, (2,), ()): ("L", "L;2R"), + + (II, 0, (1,), 1, (4,), ()): ("L", "L;4I"), + (MM, 0, (1,), 1, (4,), ()): ("L", "L;4I"), + (II, 0, (1,), 2, (4,), ()): ("L", "L;4IR"), + (MM, 0, (1,), 2, (4,), ()): ("L", "L;4IR"), + (II, 1, (1,), 1, (4,), ()): ("L", "L;4"), + (MM, 1, (1,), 1, (4,), ()): ("L", "L;4"), + (II, 1, (1,), 2, (4,), ()): ("L", "L;4R"), + (MM, 1, (1,), 2, (4,), ()): ("L", "L;4R"), + + (II, 0, (1,), 1, (8,), ()): ("L", "L;I"), + (MM, 0, (1,), 1, (8,), ()): ("L", "L;I"), + (II, 0, (1,), 2, (8,), ()): ("L", "L;IR"), + (MM, 0, (1,), 2, (8,), ()): ("L", "L;IR"), + (II, 1, (1,), 1, (8,), ()): ("L", "L"), + (MM, 1, (1,), 1, (8,), ()): ("L", "L"), + (II, 1, (1,), 2, (8,), ()): ("L", "L;R"), + (MM, 1, (1,), 2, (8,), ()): ("L", "L;R"), + + (II, 1, (1,), 1, (12,), ()): ("I;16", "I;12"), + + (II, 1, (1,), 1, (16,), ()): ("I;16", "I;16"), + (MM, 1, (1,), 1, (16,), ()): ("I;16B", "I;16B"), + (II, 1, (2,), 1, (16,), ()): ("I", "I;16S"), + (MM, 1, (2,), 1, (16,), ()): ("I", "I;16BS"), + + (II, 0, (3,), 1, (32,), ()): ("F", "F;32F"), + (MM, 0, (3,), 1, (32,), ()): ("F", "F;32BF"), + (II, 1, (1,), 1, (32,), ()): ("I", "I;32N"), + (II, 1, (2,), 1, (32,), ()): ("I", "I;32S"), + (MM, 1, (2,), 1, (32,), ()): ("I", "I;32BS"), + (II, 1, (3,), 1, (32,), ()): ("F", "F;32F"), + (MM, 1, (3,), 1, (32,), ()): ("F", "F;32BF"), + + (II, 1, (1,), 1, (8, 8), (2,)): ("LA", "LA"), + (MM, 1, (1,), 1, (8, 8), (2,)): ("LA", "LA"), + + (II, 2, (1,), 1, (8, 8, 8), ()): ("RGB", "RGB"), + (MM, 2, (1,), 1, (8, 8, 8), ()): ("RGB", "RGB"), + (II, 2, (1,), 2, (8, 8, 8), ()): ("RGB", "RGB;R"), + (MM, 2, (1,), 2, (8, 8, 8), ()): ("RGB", "RGB;R"), + (II, 2, (1,), 1, (8, 8, 8, 8), ()): ("RGBA", "RGBA"), # missing ExtraSamples + (MM, 2, (1,), 1, (8, 8, 8, 8), ()): ("RGBA", "RGBA"), # missing ExtraSamples + (II, 2, (1,), 1, (8, 8, 8, 8), (0,)): ("RGBX", "RGBX"), + (MM, 2, (1,), 1, (8, 8, 8, 8), (0,)): ("RGBX", "RGBX"), + (II, 2, (1,), 1, (8, 8, 8, 8, 8), (0, 0)): ("RGBX", "RGBXX"), + (MM, 2, (1,), 1, (8, 8, 8, 8, 8), (0, 0)): ("RGBX", "RGBXX"), + (II, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0, 0)): ("RGBX", "RGBXXX"), + (MM, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0, 0)): ("RGBX", "RGBXXX"), + (II, 2, (1,), 1, (8, 8, 8, 8), (1,)): ("RGBA", "RGBa"), + (MM, 2, (1,), 1, (8, 8, 8, 8), (1,)): ("RGBA", "RGBa"), + (II, 2, (1,), 1, (8, 8, 8, 8, 8), (1, 0)): ("RGBA", "RGBaX"), + (MM, 2, (1,), 1, (8, 8, 8, 8, 8), (1, 0)): ("RGBA", "RGBaX"), + (II, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (1, 0, 0)): ("RGBA", "RGBaXX"), + (MM, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (1, 0, 0)): ("RGBA", "RGBaXX"), + (II, 2, (1,), 1, (8, 8, 8, 8), (2,)): ("RGBA", "RGBA"), + (MM, 2, (1,), 1, (8, 8, 8, 8), (2,)): ("RGBA", "RGBA"), + (II, 2, (1,), 1, (8, 8, 8, 8, 8), (2, 0)): ("RGBA", "RGBAX"), + (MM, 2, (1,), 1, (8, 8, 8, 8, 8), (2, 0)): ("RGBA", "RGBAX"), + (II, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (2, 0, 0)): ("RGBA", "RGBAXX"), + (MM, 2, (1,), 1, (8, 8, 8, 8, 8, 8), (2, 0, 0)): ("RGBA", "RGBAXX"), + (II, 2, (1,), 1, (8, 8, 8, 8), (999,)): ("RGBA", "RGBA"), # Corel Draw 10 + (MM, 2, (1,), 1, (8, 8, 8, 8), (999,)): ("RGBA", "RGBA"), # Corel Draw 10 + + (II, 2, (1,), 1, (16, 16, 16), ()): ("RGB", "RGB;16L"), + (MM, 2, (1,), 1, (16, 16, 16), ()): ("RGB", "RGB;16B"), + (II, 2, (1,), 1, (16, 16, 16, 16), ()): ("RGBA", "RGBA;16L"), + (MM, 2, (1,), 1, (16, 16, 16, 16), ()): ("RGBA", "RGBA;16B"), + (II, 2, (1,), 1, (16, 16, 16, 16), (0,)): ("RGBX", "RGBX;16L"), + (MM, 2, (1,), 1, (16, 16, 16, 16), (0,)): ("RGBX", "RGBX;16B"), + (II, 2, (1,), 1, (16, 16, 16, 16), (1,)): ("RGBA", "RGBa;16L"), + (MM, 2, (1,), 1, (16, 16, 16, 16), (1,)): ("RGBA", "RGBa;16B"), + (II, 2, (1,), 1, (16, 16, 16, 16), (2,)): ("RGBA", "RGBA;16L"), + (MM, 2, (1,), 1, (16, 16, 16, 16), (2,)): ("RGBA", "RGBA;16B"), + + (II, 3, (1,), 1, (1,), ()): ("P", "P;1"), + (MM, 3, (1,), 1, (1,), ()): ("P", "P;1"), + (II, 3, (1,), 2, (1,), ()): ("P", "P;1R"), + (MM, 3, (1,), 2, (1,), ()): ("P", "P;1R"), + (II, 3, (1,), 1, (2,), ()): ("P", "P;2"), + (MM, 3, (1,), 1, (2,), ()): ("P", "P;2"), + (II, 3, (1,), 2, (2,), ()): ("P", "P;2R"), + (MM, 3, (1,), 2, (2,), ()): ("P", "P;2R"), + (II, 3, (1,), 1, (4,), ()): ("P", "P;4"), + (MM, 3, (1,), 1, (4,), ()): ("P", "P;4"), + (II, 3, (1,), 2, (4,), ()): ("P", "P;4R"), + (MM, 3, (1,), 2, (4,), ()): ("P", "P;4R"), + (II, 3, (1,), 1, (8,), ()): ("P", "P"), + (MM, 3, (1,), 1, (8,), ()): ("P", "P"), + (II, 3, (1,), 1, (8, 8), (2,)): ("PA", "PA"), + (MM, 3, (1,), 1, (8, 8), (2,)): ("PA", "PA"), + (II, 3, (1,), 2, (8,), ()): ("P", "P;R"), + (MM, 3, (1,), 2, (8,), ()): ("P", "P;R"), + + (II, 5, (1,), 1, (8, 8, 8, 8), ()): ("CMYK", "CMYK"), + (MM, 5, (1,), 1, (8, 8, 8, 8), ()): ("CMYK", "CMYK"), + (II, 5, (1,), 1, (8, 8, 8, 8, 8), (0,)): ("CMYK", "CMYKX"), + (MM, 5, (1,), 1, (8, 8, 8, 8, 8), (0,)): ("CMYK", "CMYKX"), + (II, 5, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0)): ("CMYK", "CMYKXX"), + (MM, 5, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0)): ("CMYK", "CMYKXX"), + + # JPEG compressed images handled by LibTiff and auto-converted to RGBX + # Minimal Baseline TIFF requires YCbCr images to have 3 SamplesPerPixel + (II, 6, (1,), 1, (8, 8, 8), ()): ("RGB", "RGBX"), + (MM, 6, (1,), 1, (8, 8, 8), ()): ("RGB", "RGBX"), + + (II, 8, (1,), 1, (8, 8, 8), ()): ("LAB", "LAB"), + (MM, 8, (1,), 1, (8, 8, 8), ()): ("LAB", "LAB"), +} + +PREFIXES = [ + b"MM\x00\x2A", # Valid TIFF header with big-endian byte order + b"II\x2A\x00", # Valid TIFF header with little-endian byte order + b"MM\x2A\x00", # Invalid TIFF header, assume big-endian + b"II\x00\x2A", # Invalid TIFF header, assume little-endian +] + + +def _accept(prefix): + return prefix[:4] in PREFIXES + + +def _limit_rational(val, max_val): + inv = abs(val) > 1 + n_d = IFDRational(1 / val if inv else val).limit_rational(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] + + +## +# Wrapper for TIFF IFDs. + +_load_dispatch = {} +_write_dispatch = {} + + +class IFDRational(Rational): + """ Implements a rational class where 0/0 is a legal value to match + the in the wild use of exif rationals. + + e.g., DigitalZoomRatio - 0.00/0.00 indicates that no digital zoom was used + """ + + """ If the denominator is 0, store this as a float('nan'), otherwise store + as a fractions.Fraction(). Delegate as appropriate + + """ + + __slots__ = ('_numerator', '_denominator', '_val') + + def __init__(self, value, denominator=1): + """ + :param value: either an integer numerator, a + 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, 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 + + if denominator == 0: + self._val = float('nan') + return + + elif denominator == 1: + self._val = Fraction(value) + else: + self._val = Fraction(value, denominator) + + @property + def numerator(a): + return a._numerator + + @property + def denominator(a): + return a._denominator + + def limit_rational(self, max_denominator): + """ + + :param max_denominator: Integer, the maximum denominator value + :returns: Tuple of (numerator, denominator) + """ + + if self.denominator == 0: + return (self.numerator, self.denominator) + + f = self._val.limit_denominator(max_denominator) + return (f.numerator, f.denominator) + + def __repr__(self): + return str(float(self._val)) + + def __hash__(self): + return self._val.__hash__() + + def __eq__(self, other): + return self._val == other + + def _delegate(op): + def delegate(self, *args): + return getattr(self._val, op)(*args) + 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', + 'ceil', 'floor', 'round'] + print("\n".join("__%s__ = _delegate('__%s__')" % (s,s) for s in a)) + """ + + __add__ = _delegate('__add__') + __radd__ = _delegate('__radd__') + __sub__ = _delegate('__sub__') + __rsub__ = _delegate('__rsub__') + __div__ = _delegate('__div__') + __rdiv__ = _delegate('__rdiv__') + __mul__ = _delegate('__mul__') + __rmul__ = _delegate('__rmul__') + __truediv__ = _delegate('__truediv__') + __rtruediv__ = _delegate('__rtruediv__') + __floordiv__ = _delegate('__floordiv__') + __rfloordiv__ = _delegate('__rfloordiv__') + __mod__ = _delegate('__mod__') + __rmod__ = _delegate('__rmod__') + __pow__ = _delegate('__pow__') + __rpow__ = _delegate('__rpow__') + __pos__ = _delegate('__pos__') + __neg__ = _delegate('__neg__') + __abs__ = _delegate('__abs__') + __trunc__ = _delegate('__trunc__') + __lt__ = _delegate('__lt__') + __gt__ = _delegate('__gt__') + __le__ = _delegate('__le__') + __ge__ = _delegate('__ge__') + __nonzero__ = _delegate('__nonzero__') + __ceil__ = _delegate('__ceil__') + __floor__ = _delegate('__floor__') + __round__ = _delegate('__round__') + + +class ImageFileDirectory_v2(MutableMapping): + """This class represents a TIFF tag directory. To speed things up, we + don't decode tags unless they're asked for. + + Exposes a dictionary interface of the tags in the directory:: + + ifd = ImageFileDirectory_v2() + ifd[key] = 'Some Data' + ifd.tagtype[key] = TiffTags.ASCII + print(ifd[key]) + 'Some Data' + + Individual values are returned as the strings or numbers, sequences are + returned as tuples of the values. + + The tiff metadata type of each item is stored in a dictionary of + tag types in + `~PIL.TiffImagePlugin.ImageFileDirectory_v2.tagtype`. The types + are read from a tiff file, guessed from the type added, or added + manually. + + Data Structures: + + * self.tagtype = {} + + * Key: numerical tiff tag number + * Value: integer corresponding to the data type from + ~PIL.TiffTags.TYPES` + + .. versionadded:: 3.0.0 + """ + """ + Documentation: + + 'internal' data structures: + * self._tags_v2 = {} Key: numerical tiff tag number + Value: decoded data, as tuple for multiple values + * self._tagdata = {} Key: numerical tiff tag number + Value: undecoded byte string from file + * self._tags_v1 = {} Key: numerical tiff tag number + Value: decoded data in the v1 format + + Tags will be found in the private attributes self._tagdata, and in + self._tags_v2 once decoded. + + Self.legacy_api is a value for internal use, and shouldn't be + changed from outside code. In cooperation with the + ImageFileDirectory_v1 class, if legacy_api is true, then decoded + tags will be populated into both _tags_v1 and _tags_v2. _Tags_v2 + will be used if this IFD is used in the TIFF save routine. Tags + should be read from tags_v1 if legacy_api == true. + + """ + + def __init__(self, ifh=b"II\052\0\0\0\0\0", prefix=None): + """Initialize an ImageFileDirectory. + + To construct an ImageFileDirectory from a real file, pass the 8-byte + magic header to the constructor. To only set the endianness, pass it + as the 'prefix' keyword argument. + + :param ifh: One of the accepted magic headers (cf. PREFIXES); also sets + endianness. + :param prefix: Override the endianness of the file. + """ + if ifh[:4] not in PREFIXES: + raise SyntaxError("not a TIFF file (header %r not valid)" % ifh) + self._prefix = prefix if prefix is not None else ifh[:2] + if self._prefix == MM: + self._endian = ">" + elif self._prefix == II: + self._endian = "<" + else: + raise SyntaxError("not a TIFF IFD") + self.reset() + self.next, = self._unpack("L", ifh[4:]) + self._legacy_api = False + + prefix = property(lambda self: self._prefix) + offset = property(lambda self: self._offset) + legacy_api = property(lambda self: self._legacy_api) + + @legacy_api.setter + def legacy_api(self, value): + raise Exception("Not allowing setting of legacy api") + + def reset(self): + self._tags_v1 = {} # will remain empty if legacy_api is false + self._tags_v2 = {} # main tag storage + self._tagdata = {} + self.tagtype = {} # added 2008-06-05 by Florian Hoech + self._next = None + self._offset = None + + def __str__(self): + return str(dict(self)) + + def named(self): + """ + :returns: dict of name|key: value + + Returns the complete tag dictionary, with named tags where possible. + """ + return dict((TiffTags.lookup(code).name, value) + for code, value in self.items()) + + def __len__(self): + return len(set(self._tagdata) | set(self._tags_v2)) + + def __getitem__(self, tag): + if tag not in self._tags_v2: # unpack on the fly + data = self._tagdata[tag] + typ = self.tagtype[tag] + size, handler = self._load_dispatch[typ] + self[tag] = handler(self, data, self.legacy_api) # check type + val = self._tags_v2[tag] + if self.legacy_api and not isinstance(val, (tuple, bytes)): + val = val, + return val + + 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 + + if tag not in self.tagtype: + if info.type: + self.tagtype[tag] = info.type + else: + self.tagtype[tag] = TiffTags.UNDEFINED + if all(isinstance(v, IFDRational) for v in values): + self.tagtype[tag] = TiffTags.RATIONAL + elif all(isinstance(v, int) for v in values): + if all(v < 2 ** 16 for v in values): + self.tagtype[tag] = TiffTags.SHORT + else: + self.tagtype[tag] = TiffTags.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. + self.tagtype[tag] = TiffTags.ASCII + + if self.tagtype[tag] == TiffTags.UNDEFINED and py3: + values = [value.encode("ascii", 'replace') if isinstance( + value, str) else value] + elif self.tagtype[tag] == TiffTags.RATIONAL: + values = [float(v) if isinstance(v, int) else v + for v in values] + + values = tuple(info.cvt_enum(value) for value in values) + + dest = self._tags_v1 if legacy_api else self._tags_v2 + + # Three branches: + # Spec'd length == 1, Actual length 1, store as element + # Spec'd length == 1, Actual > 1, Warn and truncate. Formerly barfed. + # No Spec, Actual length 1, Formerly (<4.2) returned a 1 element tuple. + # Don't mess with the legacy api, since it's frozen. + if (info.length == 1) or \ + (info.length is None and len(values) == 1 and not legacy_api): + # Don't mess with the legacy api, since it's frozen. + if legacy_api and self.tagtype[tag] in [ + TiffTags.RATIONAL, + TiffTags.SIGNED_RATIONAL + ]: # rationals + values = values, + try: + dest[tag], = values + except ValueError: + # We've got a builtin tag with 1 expected entry + warnings.warn( + "Metadata Warning, tag %s had too many entries: " + "%s, expected 1" % ( + tag, len(values))) + dest[tag] = values[0] + + else: + # Spec'd length > 1 or undefined + # Unspec'd, and length > 1 + dest[tag] = values + + def __delitem__(self, tag): + self._tags_v2.pop(tag, None) + self._tags_v1.pop(tag, None) + self._tagdata.pop(tag, None) + + def __iter__(self): + return iter(set(self._tagdata) | set(self._tags_v2)) + + def _unpack(self, fmt, data): + return struct.unpack(self._endian + fmt, data) + + def _pack(self, fmt, *values): + return struct.pack(self._endian + fmt, *values) + + def _register_loader(idx, size): + def decorator(func): + from .TiffTags import TYPES + if func.__name__.startswith("load_"): + TYPES[idx] = func.__name__[5:].replace("_", " ") + _load_dispatch[idx] = size, func # noqa: F821 + return func + return decorator + + def _register_writer(idx): + def decorator(func): + _write_dispatch[idx] = func # noqa: F821 + return func + return decorator + + def _register_basic(idx_fmt_name): + from .TiffTags import TYPES + idx, fmt, name = idx_fmt_name + TYPES[idx] = name + size = struct.calcsize("=" + fmt) + _load_dispatch[idx] = size, lambda self, data, legacy_api=True: ( # noqa: F821 + self._unpack("{}{}".format(len(data) // size, fmt), data)) + _write_dispatch[idx] = lambda self, *values: ( # noqa: F821 + b"".join(self._pack(fmt, value) for value in values)) + + list(map(_register_basic, + [(TiffTags.SHORT, "H", "short"), + (TiffTags.LONG, "L", "long"), + (TiffTags.SIGNED_BYTE, "b", "signed byte"), + (TiffTags.SIGNED_SHORT, "h", "signed short"), + (TiffTags.SIGNED_LONG, "l", "signed long"), + (TiffTags.FLOAT, "f", "float"), + (TiffTags.DOUBLE, "d", "double")])) + + @_register_loader(1, 1) # Basic type, except for the legacy API. + def load_byte(self, data, legacy_api=True): + return data + + @_register_writer(1) # Basic type, except for the legacy API. + def write_byte(self, data): + return data + + @_register_loader(2, 1) + def load_string(self, data, legacy_api=True): + if data.endswith(b"\0"): + data = data[:-1] + return data.decode("latin-1", "replace") + + @_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) + def load_rational(self, data, legacy_api=True): + vals = self._unpack("{}L".format(len(data) // 4), data) + + def combine(a, b): return (a, b) if legacy_api else IFDRational(a, b) + return tuple(combine(num, denom) + for num, denom in zip(vals[::2], vals[1::2])) + + @_register_writer(5) + def write_rational(self, *values): + return b"".join(self._pack("2L", *_limit_rational(frac, 2 ** 31)) + for frac in values) + + @_register_loader(7, 1) + def load_undefined(self, data, legacy_api=True): + return data + + @_register_writer(7) + def write_undefined(self, value): + return value + + @_register_loader(10, 8) + def load_signed_rational(self, data, legacy_api=True): + vals = self._unpack("{}l".format(len(data) // 4), data) + + def combine(a, b): return (a, b) if legacy_api else IFDRational(a, b) + return tuple(combine(num, denom) + for num, denom in zip(vals[::2], vals[1::2])) + + @_register_writer(10) + def write_signed_rational(self, *values): + return b"".join(self._pack("2L", *_limit_rational(frac, 2 ** 30)) + for frac in values) + + def _ensure_read(self, fp, size): + ret = fp.read(size) + if len(ret) != size: + raise IOError("Corrupt EXIF data. " + + "Expecting to read %d bytes but only got %d. " % + (size, len(ret))) + return ret + + def load(self, fp): + + self.reset() + self._offset = fp.tell() + + try: + for i in range(self._unpack("H", self._ensure_read(fp, 2))[0]): + tag, typ, count, data = self._unpack("HHL4s", + self._ensure_read(fp, 12)) + if DEBUG: + tagname = TiffTags.lookup(tag).name + typname = TYPES.get(typ, "unknown") + print("tag: %s (%d) - type: %s (%d)" % + (tagname, tag, typname, typ), end=" ") + + try: + unit_size, handler = self._load_dispatch[typ] + except KeyError: + if DEBUG: + print("- unsupported type", typ) + continue # ignore unsupported type + size = count * unit_size + if size > 4: + here = fp.tell() + offset, = self._unpack("L", data) + if DEBUG: + print("Tag Location: %s - Data Location: %s" % + (here, offset), end=" ") + fp.seek(offset) + data = ImageFile._safe_read(fp, size) + fp.seek(here) + else: + data = data[:size] + + if len(data) != size: + warnings.warn("Possibly corrupt EXIF data. " + "Expecting to read %d bytes but only got %d." + " Skipping tag %s" % (size, len(data), tag)) + continue + + if not data: + continue + + self._tagdata[tag] = data + self.tagtype[tag] = typ + + if DEBUG: + if size > 32: + print("- value: " % size) + else: + print("- value:", self[tag]) + + self.next, = self._unpack("L", self._ensure_read(fp, 4)) + except IOError as msg: + warnings.warn(str(msg)) + return + + def tobytes(self, offset=0): + # FIXME What about tagdata? + result = self._pack("H", len(self._tags_v2)) + + entries = [] + offset = offset + len(result) + len(self._tags_v2) * 12 + 4 + stripoffsets = None + + # pass 1: convert tags to binary format + # always write tags in ascending order + for tag, value in sorted(self._tags_v2.items()): + if tag == STRIPOFFSETS: + stripoffsets = len(entries) + typ = self.tagtype.get(tag) + if DEBUG: + print("Tag %s, Type: %s, Value: %s" % (tag, typ, value)) + values = value if isinstance(value, tuple) else (value,) + data = self._write_dispatch[typ](self, *values) + if DEBUG: + tagname = TiffTags.lookup(tag).name + typname = TYPES.get(typ, "unknown") + print("save: %s (%d) - type: %s (%d)" % + (tagname, tag, typname, typ), end=" ") + if len(data) >= 16: + print("- value: " % len(data)) + else: + print("- value:", values) + + # count is sum of lengths for string and arbitrary data + if typ in [TiffTags.BYTE, TiffTags.ASCII, TiffTags.UNDEFINED]: + count = len(data) + else: + count = len(values) + # figure out if data fits into the entry + if len(data) <= 4: + entries.append((tag, typ, count, data.ljust(4, b"\0"), b"")) + else: + entries.append((tag, typ, count, self._pack("L", offset), + data)) + offset += (len(data) + 1) // 2 * 2 # pad to word + + # update strip offset data to point beyond auxiliary data + if stripoffsets is not None: + tag, typ, count, value, data = entries[stripoffsets] + if data: + raise NotImplementedError( + "multistrip support not yet implemented") + value = self._pack("L", self._unpack("L", value)[0] + offset) + entries[stripoffsets] = tag, typ, count, value, data + + # pass 2: write entries to file + for tag, typ, count, value, data in entries: + if DEBUG > 1: + print(tag, typ, count, repr(value), repr(data)) + result += self._pack("HHL4s", tag, typ, count, value) + + # -- overwrite here for multi-page -- + result += b"\0\0\0\0" # end of entries + + # pass 3: write auxiliary data to file + for tag, typ, count, value, data in entries: + result += data + if len(data) & 1: + result += b"\0" + + return result + + def save(self, fp): + + if fp.tell() == 0: # skip TIFF header on subsequent pages + # tiff header -- PIL always starts the first IFD at offset 8 + fp.write(self._prefix + self._pack("HL", 42, 8)) + + offset = fp.tell() + result = self.tobytes(offset) + fp.write(result) + return offset + len(result) + + +ImageFileDirectory_v2._load_dispatch = _load_dispatch +ImageFileDirectory_v2._write_dispatch = _write_dispatch +for idx, name in TYPES.items(): + name = name.replace(" ", "_") + setattr(ImageFileDirectory_v2, "load_" + name, _load_dispatch[idx][1]) + setattr(ImageFileDirectory_v2, "write_" + name, _write_dispatch[idx]) +del _load_dispatch, _write_dispatch, idx, name + + +# Legacy ImageFileDirectory support. +class ImageFileDirectory_v1(ImageFileDirectory_v2): + """This class represents the **legacy** interface to a TIFF tag directory. + + Exposes a dictionary interface of the tags in the directory:: + + ifd = ImageFileDirectory_v1() + ifd[key] = 'Some Data' + ifd.tagtype[key] = TiffTags.ASCII + print(ifd[key]) + ('Some Data',) + + Also contains a dictionary of tag types as read from the tiff image file, + `~PIL.TiffImagePlugin.ImageFileDirectory_v1.tagtype`. + + Values are returned as a tuple. + + .. deprecated:: 3.0.0 + """ + def __init__(self, *args, **kwargs): + ImageFileDirectory_v2.__init__(self, *args, **kwargs) + self._legacy_api = True + + tags = property(lambda self: self._tags_v1) + tagdata = property(lambda self: self._tagdata) + + @classmethod + def from_v2(cls, original): + """ Returns an + :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1` + instance with the same data as is contained in the original + :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2` + instance. + + :returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1` + + """ + + ifd = cls(prefix=original.prefix) + ifd._tagdata = original._tagdata + ifd.tagtype = original.tagtype + ifd.next = original.next # an indicator for multipage tiffs + return ifd + + def to_v2(self): + """ Returns an + :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2` + instance with the same data as is contained in the original + :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v1` + instance. + + :returns: :py:class:`~PIL.TiffImagePlugin.ImageFileDirectory_v2` + + """ + + ifd = ImageFileDirectory_v2(prefix=self.prefix) + ifd._tagdata = dict(self._tagdata) + ifd.tagtype = dict(self.tagtype) + ifd._tags_v2 = dict(self._tags_v2) + return ifd + + def __contains__(self, tag): + return tag in self._tags_v1 or tag in self._tagdata + + def __len__(self): + return len(set(self._tagdata) | set(self._tags_v1)) + + def __iter__(self): + return iter(set(self._tagdata) | set(self._tags_v1)) + + def __setitem__(self, tag, value): + for legacy_api in (False, True): + self._setitem(tag, value, legacy_api) + + def __getitem__(self, tag): + if tag not in self._tags_v1: # unpack on the fly + data = self._tagdata[tag] + typ = self.tagtype[tag] + size, handler = self._load_dispatch[typ] + for legacy in (False, True): + self._setitem(tag, handler(self, data, legacy), legacy) + val = self._tags_v1[tag] + if not isinstance(val, (tuple, bytes)): + val = val, + return val + + +# undone -- switch this pointer when IFD_LEGACY_API == False +ImageFileDirectory = ImageFileDirectory_v1 + + +## +# Image plugin for TIFF files. + +class TiffImageFile(ImageFile.ImageFile): + + format = "TIFF" + format_description = "Adobe TIFF" + _close_exclusive_fp_after_loading = False + + def _open(self): + """Open the first image in a TIFF file""" + + # Header + ifh = self.fp.read(8) + + # image file directory (tag dictionary) + self.tag_v2 = ImageFileDirectory_v2(ifh) + + # legacy tag/ifd entries will be filled in later + self.tag = self.ifd = None + + # setup frame pointers + self.__first = self.__next = self.tag_v2.next + self.__frame = -1 + self.__fp = self.fp + self._frame_pos = [] + self._n_frames = None + + if DEBUG: + print("*** TiffImageFile._open ***") + print("- __first:", self.__first) + print("- ifh: ", ifh) + + # and load the first frame + self._seek(0) + + @property + def n_frames(self): + if self._n_frames is None: + current = self.tell() + self._seek(len(self._frame_pos)) + while self._n_frames is None: + self._seek(self.tell() + 1) + self.seek(current) + return self._n_frames + + @property + def is_animated(self): + return self._is_animated + + def seek(self, frame): + """Select a given frame as current image""" + if not self._seek_check(frame): + return + self._seek(frame) + # Create a new core image object on second and + # subsequent frames in the image. Image may be + # different size/mode. + Image._decompression_bomb_check(self.size) + self.im = Image.core.new(self.mode, self.size) + + def _seek(self, frame): + self.fp = self.__fp + while len(self._frame_pos) <= frame: + if not self.__next: + raise EOFError("no more images in TIFF file") + if DEBUG: + print("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 + # was passed to libtiff, invalidating the buffer + self.fp.tell() + self.fp.seek(self.__next) + self._frame_pos.append(self.__next) + if DEBUG: + print("Loading tags, location: %s" % self.fp.tell()) + self.tag_v2.load(self.fp) + self.__next = self.tag_v2.next + if self.__next == 0: + self._n_frames = frame + 1 + if len(self._frame_pos) == 1: + self._is_animated = self.__next != 0 + self.__frame += 1 + self.fp.seek(self._frame_pos[frame]) + self.tag_v2.load(self.fp) + # fill the legacy tag/ifd entries + self.tag = self.ifd = ImageFileDirectory_v1.from_v2(self.tag_v2) + self.__frame = frame + self._setup() + + def tell(self): + """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() + + def load_end(self): + # allow closing if we're on the first frame, there's no next + # This is the ImageFile.load path only, libtiff specific below. + if not self._is_animated: + self._close_exclusive_fp_after_loading = True + + def _load_libtiff(self): + """ Overload method triggered when we detect a compressed tiff + Calls out to libtiff """ + + pixel = Image.Image.load(self) + + if self.tile is None: + raise IOError("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") + + # (self._compression, (extents tuple), + # 0, (rawmode, self._compression, fp)) + extents = self.tile[0][1] + args = list(self.tile[0][3]) + [self.tag_v2.offset] + + # To be nice on memory footprint, if there's a + # file descriptor, use that instead of reading + # into a string in python. + # libtiff closes the file descriptor, so pass in a dup. + 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 + # in _seek + if hasattr(self.fp, "flush"): + self.fp.flush() + except IOError: + # io.BytesIO have a fileno, but returns an IOError if + # it doesn't use a file descriptor. + fp = False + + if fp: + args[2] = fp + + decoder = Image._getdecoder(self.mode, 'libtiff', tuple(args), + self.decoderconfig) + try: + decoder.setimage(self.im, extents) + except ValueError: + raise IOError("Couldn't set the image") + + if hasattr(self.fp, "getvalue"): + # We've got a stringio like thing passed in. Yay for all in memory. + # The decoder needs the entire file in one shot, so there's not + # a lot we can do here other than give it the entire file. + # unless we could do something like get the address of the + # underlying string for stringio. + # + # Rearranging for supporting byteio items, since they have a fileno + # that returns an IOError if there's no underlying fp. Easier to + # deal with here by reordering. + if DEBUG: + print("have getvalue. just sending in a string from getvalue") + n, err = decoder.decode(self.fp.getvalue()) + elif hasattr(self.fp, "fileno"): + # we've got a actual file on disk, pass in the fp. + if DEBUG: + print("have fileno, calling fileno version of the decoder.") + self.fp.seek(0) + # 4 bytes, otherwise the trace might error out + n, err = decoder.decode(b"fpfp") + else: + # we have something else. + if DEBUG: + print("don't have fileno or getvalue. just reading") + # UNDONE -- so much for that buffer size thing. + n, err = decoder.decode(self.fp.read()) + + self.tile = [] + self.readonly = 0 + # libtiff closed the fp in a, we need to close self.fp, if possible + if self._exclusive_fp and not self._is_animated: + self.fp.close() + self.fp = None # might be shared + + if err < 0: + raise IOError(err) + + return Image.Image.load(self) + + def _setup(self): + """Setup this image object based on current tags""" + + if 0xBC01 in self.tag_v2: + raise IOError("Windows Media Photo files not yet supported") + + # extract relevant tags + self._compression = COMPRESSION_INFO[self.tag_v2.get(COMPRESSION, 1)] + self._planar_configuration = self.tag_v2.get(PLANAR_CONFIGURATION, 1) + + # photometric is a required tag, but not everyone is reading + # the specification + photo = self.tag_v2.get(PHOTOMETRIC_INTERPRETATION, 0) + + # old style jpeg compression images most certainly are YCbCr + if self._compression == "tiff_jpeg": + photo = 6 + + fillorder = self.tag_v2.get(FILLORDER, 1) + + if DEBUG: + print("*** Summary ***") + print("- compression:", self._compression) + print("- photometric_interpretation:", photo) + print("- planar_configuration:", self._planar_configuration) + print("- fill_order:", fillorder) + print("- YCbCr subsampling:", self.tag.get(530)) + + # size + xsize = self.tag_v2.get(IMAGEWIDTH) + ysize = self.tag_v2.get(IMAGELENGTH) + self._size = xsize, ysize + + if DEBUG: + print("- size:", self.size) + + sampleFormat = self.tag_v2.get(SAMPLEFORMAT, (1,)) + if (len(sampleFormat) > 1 + and max(sampleFormat) == min(sampleFormat) == 1): + # SAMPLEFORMAT is properly per band, so an RGB image will + # be (1,1,1). But, we don't support per band pixel types, + # and anything more than one band is a uint8. So, just + # take the first element. Revisit this if adding support + # for more exotic images. + sampleFormat = (1,) + + bps_tuple = self.tag_v2.get(BITSPERSAMPLE, (1,)) + extra_tuple = self.tag_v2.get(EXTRASAMPLES, ()) + if photo in (2, 6, 8): # RGB, YCbCr, LAB + bps_count = 3 + elif photo == 5: # CMYK + bps_count = 4 + else: + bps_count = 1 + bps_count += len(extra_tuple) + # Some files have only one value in bps_tuple, + # while should have more. Fix it + if bps_count > len(bps_tuple) and len(bps_tuple) == 1: + bps_tuple = bps_tuple * bps_count + + # mode: check photometric interpretation and bits per pixel + key = (self.tag_v2.prefix, photo, sampleFormat, fillorder, + bps_tuple, extra_tuple) + if DEBUG: + print("format key:", key) + try: + self.mode, rawmode = OPEN_INFO[key] + except KeyError: + if DEBUG: + print("- unsupported format") + raise SyntaxError("unknown pixel mode") + + if DEBUG: + print("- raw mode:", rawmode) + print("- pil mode:", self.mode) + + self.info["compression"] = self._compression + + xres = self.tag_v2.get(X_RESOLUTION, 1) + yres = self.tag_v2.get(Y_RESOLUTION, 1) + + if xres and yres: + resunit = self.tag_v2.get(RESOLUTION_UNIT) + if resunit == 2: # dots per inch + self.info["dpi"] = int(xres + 0.5), int(yres + 0.5) + elif resunit == 3: # dots per centimeter. convert to dpi + self.info["dpi"] = int(xres * 2.54 + 0.5), int(yres * 2.54 + 0.5) + elif resunit is None: # used to default to 1, but now 2) + self.info["dpi"] = int(xres + 0.5), int(yres + 0.5) + # For backward compatibility, + # we also preserve the old behavior + self.info["resolution"] = xres, yres + else: # No absolute unit of measurement + self.info["resolution"] = xres, yres + + # build tile descriptors + x = y = layer = 0 + self.tile = [] + self.use_load_libtiff = READ_LIBTIFF or self._compression != 'raw' + if self.use_load_libtiff: + # Decoder expects entire file as one tile. + # There's a buffer size limit in load (64k) + # so large g4 images will fail if we use that + # function. + # + # Setup the one tile for the whole image, then + # use the _load_libtiff function. + + # libtiff handles the fillmode for us, so 1;IR should + # actually be 1;I. Including the R double reverses the + # bits, so stripes of the image are reversed. See + # https://github.com/python-pillow/Pillow/issues/279 + if fillorder == 2: + # Replace fillorder with fillorder=1 + key = key[:3] + (1,) + key[4:] + if DEBUG: + print("format key:", key) + # this should always work, since all the + # fillorder==2 modes have a corresponding + # fillorder=1 mode + self.mode, rawmode = OPEN_INFO[key] + # libtiff always returns the bytes in native order. + # we're expecting image byte order. So, if the rawmode + # contains I;16, we need to convert from native to image + # byte order. + if rawmode == 'I;16': + rawmode = 'I;16N' + if ';16B' in rawmode: + rawmode = rawmode.replace(';16B', ';16N') + if ';16L' in rawmode: + rawmode = rawmode.replace(';16L', ';16N') + + # Offset in the tile tuple is 0, we go from 0,0 to + # w,h, and we only do this once -- eds + a = (rawmode, self._compression, False) + self.tile.append( + (self._compression, + (0, 0, xsize, ysize), + 0, a)) + + elif STRIPOFFSETS in self.tag_v2 or TILEOFFSETS in self.tag_v2: + # striped image + if STRIPOFFSETS in self.tag_v2: + offsets = self.tag_v2[STRIPOFFSETS] + h = self.tag_v2.get(ROWSPERSTRIP, ysize) + w = self.size[0] + else: + # tiled image + offsets = self.tag_v2[TILEOFFSETS] + w = self.tag_v2.get(322) + h = self.tag_v2.get(323) + + for offset in offsets: + if x + w > xsize: + stride = w * sum(bps_tuple) / 8 # bytes per line + else: + stride = 0 + + tile_rawmode = rawmode + if self._planar_configuration == 2: + # each band on it's own layer + tile_rawmode = rawmode[layer] + # adjust stride width accordingly + stride /= bps_count + + a = (tile_rawmode, int(stride), 1) + self.tile.append( + (self._compression, + (x, y, min(x+w, xsize), min(y+h, ysize)), + offset, a)) + x = x + w + if x >= self.size[0]: + x, y = 0, y + h + if y >= self.size[1]: + x = y = 0 + layer += 1 + else: + if DEBUG: + print("- unsupported data organization") + raise SyntaxError("unknown data organization") + + # Fix up info. + if ICCPROFILE in self.tag_v2: + self.info['icc_profile'] = self.tag_v2[ICCPROFILE] + + # fixup palette descriptor + + if self.mode == "P": + palette = [o8(b // 256) for b in self.tag_v2[COLORMAP]] + self.palette = ImagePalette.raw("RGB;L", b"".join(palette)) + + def _close__fp(self): + try: + if self.__fp != self.fp: + self.__fp.close() + except AttributeError: + pass + finally: + self.__fp = None + + +# +# -------------------------------------------------------------------- +# Write TIFF files + +# little endian is default except for image modes with +# explicit big endian byte-order + +SAVE_INFO = { + # mode => rawmode, byteorder, photometrics, + # sampleformat, bitspersample, extra + "1": ("1", II, 1, 1, (1,), None), + "L": ("L", II, 1, 1, (8,), None), + "LA": ("LA", II, 1, 1, (8, 8), 2), + "P": ("P", II, 3, 1, (8,), None), + "PA": ("PA", II, 3, 1, (8, 8), 2), + "I": ("I;32S", II, 1, 2, (32,), None), + "I;16": ("I;16", II, 1, 1, (16,), None), + "I;16S": ("I;16S", II, 1, 2, (16,), None), + "F": ("F;32F", II, 1, 3, (32,), None), + "RGB": ("RGB", II, 2, 1, (8, 8, 8), None), + "RGBX": ("RGBX", II, 2, 1, (8, 8, 8, 8), 0), + "RGBA": ("RGBA", II, 2, 1, (8, 8, 8, 8), 2), + "CMYK": ("CMYK", II, 5, 1, (8, 8, 8, 8), None), + "YCbCr": ("YCbCr", II, 6, 1, (8, 8, 8), None), + "LAB": ("LAB", II, 8, 1, (8, 8, 8), None), + + "I;32BS": ("I;32BS", MM, 1, 2, (32,), None), + "I;16B": ("I;16B", MM, 1, 1, (16,), None), + "I;16BS": ("I;16BS", MM, 1, 2, (16,), None), + "F;32BF": ("F;32BF", MM, 1, 3, (32,), None), +} + + +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) + + ifd = ImageFileDirectory_v2(prefix=prefix) + + compression = im.encoderinfo.get('compression', im.info.get('compression')) + if compression is None: + compression = 'raw' + + libtiff = WRITE_LIBTIFF or compression != 'raw' + + # required for color libtiff images + ifd[PLANAR_CONFIGURATION] = getattr(im, '_planar_configuration', 1) + + ifd[IMAGEWIDTH] = im.size[0] + ifd[IMAGELENGTH] = im.size[1] + + # write any arbitrary tags passed in as an ImageFileDirectory + info = im.encoderinfo.get("tiffinfo", {}) + if DEBUG: + print("Tiffinfo Keys: %s" % list(info)) + if isinstance(info, ImageFileDirectory_v1): + info = info.to_v2() + for key in info: + ifd[key] = info.get(key) + try: + ifd.tagtype[key] = info.tagtype[key] + except Exception: + pass # might not be an IFD. Might not have populated type + + # additions written by Greg Couch, gregc@cgl.ucsf.edu + # inspired by image-sig posting from Kevin Cazabon, kcazabon@home.com + if hasattr(im, 'tag_v2'): + # preserve tags from original TIFF image file + for key in (RESOLUTION_UNIT, X_RESOLUTION, Y_RESOLUTION, + IPTC_NAA_CHUNK, PHOTOSHOP_CHUNK, XMP): + if key in im.tag_v2: + ifd[key] = im.tag_v2[key] + ifd.tagtype[key] = im.tag_v2.tagtype[key] + + # preserve ICC profile (should also work when saving other formats + # which support profiles as TIFF) -- 2008-06-06 Florian Hoech + if "icc_profile" in im.info: + ifd[ICCPROFILE] = im.info["icc_profile"] + + for key, name in [(IMAGEDESCRIPTION, "description"), + (X_RESOLUTION, "resolution"), + (Y_RESOLUTION, "resolution"), + (X_RESOLUTION, "x_resolution"), + (Y_RESOLUTION, "y_resolution"), + (RESOLUTION_UNIT, "resolution_unit"), + (SOFTWARE, "software"), + (DATE_TIME, "date_time"), + (ARTIST, "artist"), + (COPYRIGHT, "copyright")]: + if name in im.encoderinfo: + ifd[key] = im.encoderinfo[name] + + dpi = im.encoderinfo.get("dpi") + if dpi: + ifd[RESOLUTION_UNIT] = 2 + ifd[X_RESOLUTION] = int(dpi[0] + 0.5) + ifd[Y_RESOLUTION] = int(dpi[1] + 0.5) + + if bits != (1,): + ifd[BITSPERSAMPLE] = bits + if len(bits) != 1: + ifd[SAMPLESPERPIXEL] = len(bits) + if extra is not None: + ifd[EXTRASAMPLES] = extra + if format != 1: + ifd[SAMPLEFORMAT] = format + + ifd[PHOTOMETRIC_INTERPRETATION] = photo + + if im.mode == "P": + lut = im.im.getpalette("RGB", "RGB;L") + ifd[COLORMAP] = tuple(i8(v) * 256 for v in lut) + # data orientation + stride = len(bits) * ((im.size[0]*bits[0]+7)//8) + ifd[ROWSPERSTRIP] = im.size[1] + ifd[STRIPBYTECOUNTS] = stride * im.size[1] + ifd[STRIPOFFSETS] = 0 # this is adjusted by IFD writer + # no compression by default: + ifd[COMPRESSION] = COMPRESSION_INFO_REV.get(compression, 1) + + if libtiff: + if DEBUG: + print("Saving using libtiff encoder") + print("Items: %s" % sorted(ifd.items())) + _fp = 0 + if hasattr(fp, "fileno"): + try: + fp.seek(0) + _fp = os.dup(fp.fileno()) + except io.UnsupportedOperation: + pass + + # STRIPOFFSETS and STRIPBYTECOUNTS are added by the library + # based on the data in the strip. + blocklist = [STRIPOFFSETS, STRIPBYTECOUNTS] + atts = {} + # bits per sample is a single short in the tiff directory, not a list. + atts[BITSPERSAMPLE] = bits[0] + # Merge the ones that we have with (optional) more bits from + # the original file, e.g x,y resolution so that we can + # save(load('')) == original file. + legacy_ifd = {} + if hasattr(im, 'tag'): + legacy_ifd = im.tag.to_v2() + for tag, value in itertools.chain(ifd.items(), + getattr(im, 'tag_v2', {}).items(), + legacy_ifd.items()): + # Libtiff can only process certain core items without adding + # them to the custom dictionary. + # Support for custom items has only been been added + # for int, float, unicode, string and byte values + 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")) \ + or not (isinstance(value, (int, float, str, bytes)) or + (not py3 and isinstance(value, unicode))): # noqa: F821 + continue + if tag not in atts and tag not in blocklist: + if isinstance(value, str if py3 else unicode): # noqa: F821 + atts[tag] = value.encode('ascii', 'replace') + b"\0" + elif isinstance(value, IFDRational): + atts[tag] = float(value) + else: + atts[tag] = value + + if DEBUG: + print("Converted items: %s" % sorted(atts.items())) + + # libtiff always expects the bytes in native order. + # we're storing image byte order. So, if the rawmode + # contains I;16, we need to convert from native to image + # byte order. + if im.mode in ('I;16B', 'I;16'): + rawmode = 'I;16N' + + a = (rawmode, compression, _fp, filename, atts) + e = Image._getencoder(im.mode, 'libtiff', a, im.encoderconfig) + e.setimage(im.im, (0, 0)+im.size) + while True: + # undone, change to self.decodermaxblock: + l, s, d = e.encode(16*1024) + if not _fp: + fp.write(d) + if s: + break + if s < 0: + raise IOError("encoder error %d when writing image file" % s) + + else: + offset = ifd.save(fp) + + ImageFile._save(im, fp, [ + ("raw", (0, 0)+im.size, offset, (rawmode, stride, 1)) + ]) + + # -- helper for multi-page save -- + if "_debug_multipage" in im.encoderinfo: + # just to access o32 and o16 (using correct byte order) + im._debug_multipage = ifd + + +class AppendingTiffWriter: + fieldSizes = [ + 0, # None + 1, # byte + 1, # ascii + 2, # short + 4, # long + 8, # rational + 1, # sbyte + 1, # undefined + 2, # sshort + 4, # slong + 8, # srational + 4, # float + 8, # double + ] + + # StripOffsets = 273 + # FreeOffsets = 288 + # TileOffsets = 324 + # JPEGQTables = 519 + # JPEGDCTables = 520 + # JPEGACTables = 521 + Tags = {273, 288, 324, 519, 520, 521} + + def __init__(self, fn, new=False): + if hasattr(fn, 'read'): + self.f = fn + self.close_fp = False + else: + 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.beginning = self.f.tell() + self.setup() + + def setup(self): + # Reset everything. + self.f.seek(self.beginning, os.SEEK_SET) + + self.whereToWriteNewIFDOffset = None + self.offsetOfNewPage = 0 + + self.IIMM = IIMM = self.f.read(4) + if not IIMM: + # empty file - first page + self.isFirst = True + return + + self.isFirst = False + if IIMM == b"II\x2a\x00": + self.setEndian("<") + elif IIMM == b"MM\x00\x2a": + self.setEndian(">") + else: + raise RuntimeError("Invalid TIFF file header") + + self.skipIFDs() + self.goToEnd() + + def finalize(self): + if self.isFirst: + return + + # fix offsets + self.f.seek(self.offsetOfNewPage) + + IIMM = self.f.read(4) + if not IIMM: + # raise RuntimeError("nothing written into new page") + # Make it easy to finish a frame without committing to a new one. + return + + if IIMM != self.IIMM: + raise RuntimeError("IIMM of new page doesn't match IIMM of " + "first page") + + IFDoffset = self.readLong() + IFDoffset += self.offsetOfNewPage + self.f.seek(self.whereToWriteNewIFDOffset) + self.writeLong(IFDoffset) + self.f.seek(IFDoffset) + self.fixIFD() + + def newFrame(self): + # Call this to finish a frame. + self.finalize() + self.setup() + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if self.close_fp: + self.close() + return False + + def tell(self): + return self.f.tell() - self.offsetOfNewPage + + def seek(self, offset, whence=io.SEEK_SET): + if whence == os.SEEK_SET: + offset += self.offsetOfNewPage + + self.f.seek(offset, whence) + return self.tell() + + def goToEnd(self): + self.f.seek(0, os.SEEK_END) + pos = self.f.tell() + + # pad to 16 byte boundary + padBytes = 16 - pos % 16 + if 0 < padBytes < 16: + self.f.write(bytes(bytearray(padBytes))) + self.offsetOfNewPage = self.f.tell() + + def setEndian(self, endian): + self.endian = endian + self.longFmt = self.endian + "L" + self.shortFmt = self.endian + "H" + self.tagFormat = self.endian + "HHL" + + def skipIFDs(self): + while True: + IFDoffset = self.readLong() + if IFDoffset == 0: + self.whereToWriteNewIFDOffset = self.f.tell() - 4 + break + + self.f.seek(IFDoffset) + numTags = self.readShort() + self.f.seek(numTags * 12, os.SEEK_CUR) + + def write(self, data): + return self.f.write(data) + + def readShort(self): + value, = struct.unpack(self.shortFmt, self.f.read(2)) + return value + + def readLong(self): + value, = struct.unpack(self.longFmt, self.f.read(4)) + return value + + def rewriteLastShortToLong(self, value): + self.f.seek(-2, os.SEEK_CUR) + bytesWritten = self.f.write(struct.pack(self.longFmt, value)) + if bytesWritten is not None and bytesWritten != 4: + raise RuntimeError("wrote only %u bytes but wanted 4" % + bytesWritten) + + def rewriteLastShort(self, value): + self.f.seek(-2, os.SEEK_CUR) + bytesWritten = self.f.write(struct.pack(self.shortFmt, value)) + if bytesWritten is not None and bytesWritten != 2: + raise RuntimeError("wrote only %u bytes but wanted 2" % + bytesWritten) + + def rewriteLastLong(self, value): + self.f.seek(-4, os.SEEK_CUR) + bytesWritten = self.f.write(struct.pack(self.longFmt, value)) + if bytesWritten is not None and bytesWritten != 4: + raise RuntimeError("wrote only %u bytes but wanted 4" % + bytesWritten) + + def writeShort(self, value): + bytesWritten = self.f.write(struct.pack(self.shortFmt, value)) + if bytesWritten is not None and bytesWritten != 2: + raise RuntimeError("wrote only %u bytes but wanted 2" % + bytesWritten) + + def writeLong(self, value): + bytesWritten = self.f.write(struct.pack(self.longFmt, value)) + if bytesWritten is not None and bytesWritten != 4: + raise RuntimeError("wrote only %u bytes but wanted 4" % + bytesWritten) + + def close(self): + self.finalize() + self.f.close() + + def fixIFD(self): + numTags = self.readShort() + + for i in range(numTags): + tag, fieldType, count = struct.unpack(self.tagFormat, + self.f.read(8)) + + fieldSize = self.fieldSizes[fieldType] + totalSize = fieldSize * count + isLocal = (totalSize <= 4) + if not isLocal: + offset = self.readLong() + offset += self.offsetOfNewPage + self.rewriteLastLong(offset) + + if tag in self.Tags: + curPos = self.f.tell() + + if isLocal: + self.fixOffsets(count, isShort=(fieldSize == 2), + isLong=(fieldSize == 4)) + self.f.seek(curPos + 4) + else: + self.f.seek(offset) + self.fixOffsets(count, isShort=(fieldSize == 2), + isLong=(fieldSize == 4)) + self.f.seek(curPos) + + offset = curPos = None + + elif isLocal: + # skip the locally stored value that is not an offset + self.f.seek(4, os.SEEK_CUR) + + def fixOffsets(self, count, isShort=False, isLong=False): + if not isShort and not isLong: + raise RuntimeError("offset is neither short nor long") + + for i in range(count): + offset = self.readShort() if isShort else self.readLong() + offset += self.offsetOfNewPage + if isShort and offset >= 65536: + # offset is now too large - we must convert shorts to longs + if count != 1: + raise RuntimeError("not implemented") # XXX TODO + + # simple case - the offset is just one and therefore it is + # local (not referenced with another offset) + self.rewriteLastShortToLong(offset) + self.f.seek(-10, os.SEEK_CUR) + self.writeShort(TiffTags.LONG) # rewrite the type to LONG + self.f.seek(8, os.SEEK_CUR) + elif isShort: + self.rewriteLastShort(offset) + else: + self.rewriteLastLong(offset) + + +def _save_all(im, fp, filename): + encoderinfo = im.encoderinfo.copy() + encoderconfig = im.encoderconfig + append_images = list(encoderinfo.get("append_images", [])) + if not hasattr(im, "n_frames") and not append_images: + return _save(im, fp, filename) + + cur_idx = im.tell() + try: + with AppendingTiffWriter(fp) as tf: + for ims in [im]+append_images: + ims.encoderinfo = encoderinfo + ims.encoderconfig = encoderconfig + if not hasattr(ims, "n_frames"): + nfr = 1 + else: + nfr = ims.n_frames + + for idx in range(nfr): + ims.seek(idx) + ims.load() + _save(ims, tf, filename) + tf.newFrame() + finally: + im.seek(cur_idx) + + +# +# -------------------------------------------------------------------- +# Register + +Image.register_open(TiffImageFile.format, TiffImageFile, _accept) +Image.register_save(TiffImageFile.format, _save) +Image.register_save_all(TiffImageFile.format, _save_all) + +Image.register_extensions(TiffImageFile.format, [".tif", ".tiff"]) + +Image.register_mime(TiffImageFile.format, "image/tiff") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TiffTags.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TiffTags.py new file mode 100644 index 00000000..3e029151 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/TiffTags.py @@ -0,0 +1,457 @@ +# +# The Python Imaging Library. +# $Id$ +# +# TIFF tags +# +# This module provides clear-text names for various well-known +# TIFF tags. the TIFF codec works just fine without it. +# +# Copyright (c) Secret Labs AB 1999. +# +# See the README file for information on usage and redistribution. +# + +## +# This module provides constants and clear-text names for various +# well-known TIFF tags. +## + +from collections import namedtuple + + +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 {}) + + def cvt_enum(self, value): + # Using get will call hash(value), which can be expensive + # for some types (e.g. Fraction). Since self.enum is rarely + # used, it's usually better to test it first. + return self.enum.get(value, value) if self.enum else value + + +def lookup(tag): + """ + :param tag: Integer tag number + :returns: Taginfo namedtuple, From the TAGS_V2 info if possible, + otherwise just populating the value and name from TAGS. + If the tag is not recognized, "unknown" is returned for the name + + """ + + return TAGS_V2.get(tag, TagInfo(tag, TAGS.get(tag, 'unknown'))) + + +## +# Map tag numbers to tag info. +# +# id: (Name, Type, Length, enum_values) +# +# The length here differs from the length in the tiff spec. For +# numbers, the tiff spec is for the number of fields returned. We +# agree here. For string-like types, the tiff spec uses the length of +# field in bytes. In Pillow, we are using the number of expected +# fields, in general 1 for string-like types. + + +BYTE = 1 +ASCII = 2 +SHORT = 3 +LONG = 4 +RATIONAL = 5 +SIGNED_BYTE = 6 +UNDEFINED = 7 +SIGNED_SHORT = 8 +SIGNED_LONG = 9 +SIGNED_RATIONAL = 10 +FLOAT = 11 +DOUBLE = 12 + +TAGS_V2 = { + + 254: ("NewSubfileType", LONG, 1), + 255: ("SubfileType", SHORT, 1), + 256: ("ImageWidth", LONG, 1), + 257: ("ImageLength", LONG, 1), + 258: ("BitsPerSample", SHORT, 0), + 259: ("Compression", SHORT, 1, + {"Uncompressed": 1, "CCITT 1d": 2, "Group 3 Fax": 3, + "Group 4 Fax": 4, "LZW": 5, "JPEG": 6, "PackBits": 32773}), + + 262: ("PhotometricInterpretation", SHORT, 1, + {"WhiteIsZero": 0, "BlackIsZero": 1, "RGB": 2, "RGB Palette": 3, + "Transparency Mask": 4, "CMYK": 5, "YCbCr": 6, "CieLAB": 8, + "CFA": 32803, # TIFF/EP, Adobe DNG + "LinearRaw": 32892}), # Adobe DNG + 263: ("Threshholding", SHORT, 1), + 264: ("CellWidth", SHORT, 1), + 265: ("CellLength", SHORT, 1), + 266: ("FillOrder", SHORT, 1), + 269: ("DocumentName", ASCII, 1), + + 270: ("ImageDescription", ASCII, 1), + 271: ("Make", ASCII, 1), + 272: ("Model", ASCII, 1), + 273: ("StripOffsets", LONG, 0), + 274: ("Orientation", SHORT, 1), + 277: ("SamplesPerPixel", SHORT, 1), + 278: ("RowsPerStrip", LONG, 1), + 279: ("StripByteCounts", LONG, 0), + + 280: ("MinSampleValue", LONG, 0), + 281: ("MaxSampleValue", SHORT, 0), + 282: ("XResolution", RATIONAL, 1), + 283: ("YResolution", RATIONAL, 1), + 284: ("PlanarConfiguration", SHORT, 1, {"Contiguous": 1, "Separate": 2}), + 285: ("PageName", ASCII, 1), + 286: ("XPosition", RATIONAL, 1), + 287: ("YPosition", RATIONAL, 1), + 288: ("FreeOffsets", LONG, 1), + 289: ("FreeByteCounts", LONG, 1), + + 290: ("GrayResponseUnit", SHORT, 1), + 291: ("GrayResponseCurve", SHORT, 0), + 292: ("T4Options", LONG, 1), + 293: ("T6Options", LONG, 1), + 296: ("ResolutionUnit", SHORT, 1, {"none": 1, "inch": 2, "cm": 3}), + 297: ("PageNumber", SHORT, 2), + + 301: ("TransferFunction", SHORT, 0), + 305: ("Software", ASCII, 1), + 306: ("DateTime", ASCII, 1), + + 315: ("Artist", ASCII, 1), + 316: ("HostComputer", ASCII, 1), + 317: ("Predictor", SHORT, 1, {"none": 1, "Horizontal Differencing": 2}), + 318: ("WhitePoint", RATIONAL, 2), + 319: ("PrimaryChromaticities", RATIONAL, 6), + + 320: ("ColorMap", SHORT, 0), + 321: ("HalftoneHints", SHORT, 2), + 322: ("TileWidth", LONG, 1), + 323: ("TileLength", LONG, 1), + 324: ("TileOffsets", LONG, 0), + 325: ("TileByteCounts", LONG, 0), + + 332: ("InkSet", SHORT, 1), + 333: ("InkNames", ASCII, 1), + 334: ("NumberOfInks", SHORT, 1), + 336: ("DotRange", SHORT, 0), + 337: ("TargetPrinter", ASCII, 1), + 338: ("ExtraSamples", SHORT, 0), + 339: ("SampleFormat", SHORT, 0), + + 340: ("SMinSampleValue", DOUBLE, 0), + 341: ("SMaxSampleValue", DOUBLE, 0), + 342: ("TransferRange", SHORT, 6), + + 347: ("JPEGTables", UNDEFINED, 1), + + # obsolete JPEG tags + 512: ("JPEGProc", SHORT, 1), + 513: ("JPEGInterchangeFormat", LONG, 1), + 514: ("JPEGInterchangeFormatLength", LONG, 1), + 515: ("JPEGRestartInterval", SHORT, 1), + 517: ("JPEGLosslessPredictors", SHORT, 0), + 518: ("JPEGPointTransforms", SHORT, 0), + 519: ("JPEGQTables", LONG, 0), + 520: ("JPEGDCTables", LONG, 0), + 521: ("JPEGACTables", LONG, 0), + + 529: ("YCbCrCoefficients", RATIONAL, 3), + 530: ("YCbCrSubSampling", SHORT, 2), + 531: ("YCbCrPositioning", SHORT, 1), + 532: ("ReferenceBlackWhite", RATIONAL, 6), + + 700: ('XMP', BYTE, 1), + + 33432: ("Copyright", ASCII, 1), + 34377: ('PhotoshopInfo', BYTE, 1), + + # FIXME add more tags here + 34665: ("ExifIFD", SHORT, 1), + 34675: ('ICCProfile', UNDEFINED, 1), + 34853: ('GPSInfoIFD', BYTE, 1), + + # MPInfo + 45056: ("MPFVersion", UNDEFINED, 1), + 45057: ("NumberOfImages", LONG, 1), + 45058: ("MPEntry", UNDEFINED, 1), + 45059: ("ImageUIDList", UNDEFINED, 0), # UNDONE, check + 45060: ("TotalFrames", LONG, 1), + 45313: ("MPIndividualNum", LONG, 1), + 45569: ("PanOrientation", LONG, 1), + 45570: ("PanOverlap_H", RATIONAL, 1), + 45571: ("PanOverlap_V", RATIONAL, 1), + 45572: ("BaseViewpointNum", LONG, 1), + 45573: ("ConvergenceAngle", SIGNED_RATIONAL, 1), + 45574: ("BaselineLength", RATIONAL, 1), + 45575: ("VerticalDivergence", SIGNED_RATIONAL, 1), + 45576: ("AxisDistance_X", SIGNED_RATIONAL, 1), + 45577: ("AxisDistance_Y", SIGNED_RATIONAL, 1), + 45578: ("AxisDistance_Z", SIGNED_RATIONAL, 1), + 45579: ("YawAngle", SIGNED_RATIONAL, 1), + 45580: ("PitchAngle", SIGNED_RATIONAL, 1), + 45581: ("RollAngle", SIGNED_RATIONAL, 1), + + 50741: ("MakerNoteSafety", SHORT, 1, {"Unsafe": 0, "Safe": 1}), + 50780: ("BestQualityScale", RATIONAL, 1), + 50838: ("ImageJMetaDataByteCounts", LONG, 0), # Can be more than one + 50839: ("ImageJMetaData", UNDEFINED, 1) # see Issue #2006 +} + +# Legacy Tags structure +# these tags aren't included above, but were in the previous versions +TAGS = {347: 'JPEGTables', + 700: 'XMP', + + # Additional Exif Info + 32932: 'Wang Annotation', + 33434: 'ExposureTime', + 33437: 'FNumber', + 33445: 'MD FileTag', + 33446: 'MD ScalePixel', + 33447: 'MD ColorTable', + 33448: 'MD LabName', + 33449: 'MD SampleInfo', + 33450: 'MD PrepDate', + 33451: 'MD PrepTime', + 33452: 'MD FileUnits', + 33550: 'ModelPixelScaleTag', + 33723: 'IptcNaaInfo', + 33918: 'INGR Packet Data Tag', + 33919: 'INGR Flag Registers', + 33920: 'IrasB Transformation Matrix', + 33922: 'ModelTiepointTag', + 34264: 'ModelTransformationTag', + 34377: 'PhotoshopInfo', + 34735: 'GeoKeyDirectoryTag', + 34736: 'GeoDoubleParamsTag', + 34737: 'GeoAsciiParamsTag', + 34850: 'ExposureProgram', + 34852: 'SpectralSensitivity', + 34855: 'ISOSpeedRatings', + 34856: 'OECF', + 34864: 'SensitivityType', + 34865: 'StandardOutputSensitivity', + 34866: 'RecommendedExposureIndex', + 34867: 'ISOSpeed', + 34868: 'ISOSpeedLatitudeyyy', + 34869: 'ISOSpeedLatitudezzz', + 34908: 'HylaFAX FaxRecvParams', + 34909: 'HylaFAX FaxSubAddress', + 34910: 'HylaFAX FaxRecvTime', + 36864: 'ExifVersion', + 36867: 'DateTimeOriginal', + 36868: 'DateTImeDigitized', + 37121: 'ComponentsConfiguration', + 37122: 'CompressedBitsPerPixel', + 37724: 'ImageSourceData', + 37377: 'ShutterSpeedValue', + 37378: 'ApertureValue', + 37379: 'BrightnessValue', + 37380: 'ExposureBiasValue', + 37381: 'MaxApertureValue', + 37382: 'SubjectDistance', + 37383: 'MeteringMode', + 37384: 'LightSource', + 37385: 'Flash', + 37386: 'FocalLength', + 37396: 'SubjectArea', + 37500: 'MakerNote', + 37510: 'UserComment', + 37520: 'SubSec', + 37521: 'SubSecTimeOriginal', + 37522: 'SubsecTimeDigitized', + 40960: 'FlashPixVersion', + 40961: 'ColorSpace', + 40962: 'PixelXDimension', + 40963: 'PixelYDimension', + 40964: 'RelatedSoundFile', + 40965: 'InteroperabilityIFD', + 41483: 'FlashEnergy', + 41484: 'SpatialFrequencyResponse', + 41486: 'FocalPlaneXResolution', + 41487: 'FocalPlaneYResolution', + 41488: 'FocalPlaneResolutionUnit', + 41492: 'SubjectLocation', + 41493: 'ExposureIndex', + 41495: 'SensingMethod', + 41728: 'FileSource', + 41729: 'SceneType', + 41730: 'CFAPattern', + 41985: 'CustomRendered', + 41986: 'ExposureMode', + 41987: 'WhiteBalance', + 41988: 'DigitalZoomRatio', + 41989: 'FocalLengthIn35mmFilm', + 41990: 'SceneCaptureType', + 41991: 'GainControl', + 41992: 'Contrast', + 41993: 'Saturation', + 41994: 'Sharpness', + 41995: 'DeviceSettingDescription', + 41996: 'SubjectDistanceRange', + 42016: 'ImageUniqueID', + 42032: 'CameraOwnerName', + 42033: 'BodySerialNumber', + 42034: 'LensSpecification', + 42035: 'LensMake', + 42036: 'LensModel', + 42037: 'LensSerialNumber', + 42112: 'GDAL_METADATA', + 42113: 'GDAL_NODATA', + 42240: 'Gamma', + 50215: 'Oce Scanjob Description', + 50216: 'Oce Application Selector', + 50217: 'Oce Identification Number', + 50218: 'Oce ImageLogic Characteristics', + + # Adobe DNG + 50706: 'DNGVersion', + 50707: 'DNGBackwardVersion', + 50708: 'UniqueCameraModel', + 50709: 'LocalizedCameraModel', + 50710: 'CFAPlaneColor', + 50711: 'CFALayout', + 50712: 'LinearizationTable', + 50713: 'BlackLevelRepeatDim', + 50714: 'BlackLevel', + 50715: 'BlackLevelDeltaH', + 50716: 'BlackLevelDeltaV', + 50717: 'WhiteLevel', + 50718: 'DefaultScale', + 50719: 'DefaultCropOrigin', + 50720: 'DefaultCropSize', + 50721: 'ColorMatrix1', + 50722: 'ColorMatrix2', + 50723: 'CameraCalibration1', + 50724: 'CameraCalibration2', + 50725: 'ReductionMatrix1', + 50726: 'ReductionMatrix2', + 50727: 'AnalogBalance', + 50728: 'AsShotNeutral', + 50729: 'AsShotWhiteXY', + 50730: 'BaselineExposure', + 50731: 'BaselineNoise', + 50732: 'BaselineSharpness', + 50733: 'BayerGreenSplit', + 50734: 'LinearResponseLimit', + 50735: 'CameraSerialNumber', + 50736: 'LensInfo', + 50737: 'ChromaBlurRadius', + 50738: 'AntiAliasStrength', + 50740: 'DNGPrivateData', + 50778: 'CalibrationIlluminant1', + 50779: 'CalibrationIlluminant2', + 50784: 'Alias Layer Metadata' + } + + +def _populate(): + for k, v in TAGS_V2.items(): + # Populate legacy structure. + TAGS[k] = v[0] + if len(v) == 4: + for sk, sv in v[3].items(): + TAGS[(k, sv)] = sk + + TAGS_V2[k] = TagInfo(k, *v) + + +_populate() +## +# Map type numbers to type names -- defined in ImageFileDirectory. + +TYPES = {} + +# was: +# TYPES = { +# 1: "byte", +# 2: "ascii", +# 3: "short", +# 4: "long", +# 5: "rational", +# 6: "signed byte", +# 7: "undefined", +# 8: "signed short", +# 9: "signed long", +# 10: "signed rational", +# 11: "float", +# 12: "double", +# } + +# +# These tags are handled by default in libtiff, without +# adding to the custom dictionary. From tif_dir.c, searching for +# case TIFFTAG in the _TIFFVSetField function: +# Line: item. +# 148: case TIFFTAG_SUBFILETYPE: +# 151: case TIFFTAG_IMAGEWIDTH: +# 154: case TIFFTAG_IMAGELENGTH: +# 157: case TIFFTAG_BITSPERSAMPLE: +# 181: case TIFFTAG_COMPRESSION: +# 202: case TIFFTAG_PHOTOMETRIC: +# 205: case TIFFTAG_THRESHHOLDING: +# 208: case TIFFTAG_FILLORDER: +# 214: case TIFFTAG_ORIENTATION: +# 221: case TIFFTAG_SAMPLESPERPIXEL: +# 228: case TIFFTAG_ROWSPERSTRIP: +# 238: case TIFFTAG_MINSAMPLEVALUE: +# 241: case TIFFTAG_MAXSAMPLEVALUE: +# 244: case TIFFTAG_SMINSAMPLEVALUE: +# 247: case TIFFTAG_SMAXSAMPLEVALUE: +# 250: case TIFFTAG_XRESOLUTION: +# 256: case TIFFTAG_YRESOLUTION: +# 262: case TIFFTAG_PLANARCONFIG: +# 268: case TIFFTAG_XPOSITION: +# 271: case TIFFTAG_YPOSITION: +# 274: case TIFFTAG_RESOLUTIONUNIT: +# 280: case TIFFTAG_PAGENUMBER: +# 284: case TIFFTAG_HALFTONEHINTS: +# 288: case TIFFTAG_COLORMAP: +# 294: case TIFFTAG_EXTRASAMPLES: +# 298: case TIFFTAG_MATTEING: +# 305: case TIFFTAG_TILEWIDTH: +# 316: case TIFFTAG_TILELENGTH: +# 327: case TIFFTAG_TILEDEPTH: +# 333: case TIFFTAG_DATATYPE: +# 344: case TIFFTAG_SAMPLEFORMAT: +# 361: case TIFFTAG_IMAGEDEPTH: +# 364: case TIFFTAG_SUBIFD: +# 376: case TIFFTAG_YCBCRPOSITIONING: +# 379: case TIFFTAG_YCBCRSUBSAMPLING: +# 383: case TIFFTAG_TRANSFERFUNCTION: +# 389: case TIFFTAG_REFERENCEBLACKWHITE: +# 393: case TIFFTAG_INKNAMES: + +# some of these are not in our TAGS_V2 dict and were included from tiff.h + +# This list also exists in encode.c +LIBTIFF_CORE = {255, 256, 257, 258, 259, 262, 263, 266, 274, 277, + 278, 280, 281, 340, 341, 282, 283, 284, 286, 287, + 296, 297, 321, 320, 338, 32995, 322, 323, 32998, + 32996, 339, 32997, 330, 531, 530, 301, 532, 333, + # as above + 269 # this has been in our tests forever, and works + } + +LIBTIFF_CORE.remove(320) # Array of short, crashes +LIBTIFF_CORE.remove(301) # Array of short, crashes +LIBTIFF_CORE.remove(532) # Array of long, crashes + +LIBTIFF_CORE.remove(255) # We don't have support for subfiletypes +LIBTIFF_CORE.remove(322) # We don't have support for writing tiled images with libtiff +LIBTIFF_CORE.remove(323) # Tiled images +LIBTIFF_CORE.remove(333) # Ink Names either + +# Note to advanced users: There may be combinations of these +# parameters and values that when added properly, will work and +# produce valid tiff images that may work in your application. +# It is safe to add and remove tags from this set from Pillow's point +# of view so long as you test against libtiff. diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WalImageFile.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WalImageFile.py new file mode 100644 index 00000000..6602cc86 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WalImageFile.py @@ -0,0 +1,128 @@ +# encoding: utf-8 +# +# The Python Imaging Library. +# $Id$ +# +# WAL file handling +# +# History: +# 2003-04-23 fl created +# +# Copyright (c) 2003 by Fredrik Lundh. +# +# See the README file for information on usage and redistribution. +# + +# NOTE: This format cannot be automatically recognized, so the reader +# is not registered for use with Image.open(). To open a WAL file, use +# the WalImageFile.open() function instead. + +# This reader is based on the specification available from: +# https://www.flipcode.com/archives/Quake_2_BSP_File_Format.shtml +# and has been tested with a few sample files found using google. + +from . import Image +from ._binary import i32le as i32 + +try: + import builtins +except ImportError: + import __builtin__ + builtins = __builtin__ + + +def open(filename): + """ + Load texture from a Quake2 WAL texture file. + + By default, a Quake2 standard palette is attached to the texture. + To override the palette, use the putpalette method. + + :param filename: WAL file name, or an opened file handle. + :returns: An image instance. + """ + # FIXME: modify to return a WalImageFile instance instead of + # plain Image object ? + + def imopen(fp): + # read header fields + header = fp.read(32+24+32+12) + size = i32(header, 32), i32(header, 36) + offset = i32(header, 40) + + # load pixel data + fp.seek(offset) + + Image._decompression_bomb_check(size) + im = Image.frombytes("P", size, fp.read(size[0] * size[1])) + im.putpalette(quake2palette) + + im.format = "WAL" + im.format_description = "Quake2 Texture" + + # strings are null-terminated + im.info["name"] = header[:32].split(b"\0", 1)[0] + next_name = header[56:56+32].split(b"\0", 1)[0] + if next_name: + im.info["next_name"] = next_name + + return im + + if hasattr(filename, "read"): + return imopen(filename) + else: + with builtins.open(filename, "rb") as fp: + return imopen(fp) + + +quake2palette = ( + # default palette taken from piffo 0.93 by Hans Häggström + b"\x01\x01\x01\x0b\x0b\x0b\x12\x12\x12\x17\x17\x17\x1b\x1b\x1b\x1e" + b"\x1e\x1e\x22\x22\x22\x26\x26\x26\x29\x29\x29\x2c\x2c\x2c\x2f\x2f" + b"\x2f\x32\x32\x32\x35\x35\x35\x37\x37\x37\x3a\x3a\x3a\x3c\x3c\x3c" + b"\x24\x1e\x13\x22\x1c\x12\x20\x1b\x12\x1f\x1a\x10\x1d\x19\x10\x1b" + b"\x17\x0f\x1a\x16\x0f\x18\x14\x0d\x17\x13\x0d\x16\x12\x0d\x14\x10" + b"\x0b\x13\x0f\x0b\x10\x0d\x0a\x0f\x0b\x0a\x0d\x0b\x07\x0b\x0a\x07" + b"\x23\x23\x26\x22\x22\x25\x22\x20\x23\x21\x1f\x22\x20\x1e\x20\x1f" + b"\x1d\x1e\x1d\x1b\x1c\x1b\x1a\x1a\x1a\x19\x19\x18\x17\x17\x17\x16" + b"\x16\x14\x14\x14\x13\x13\x13\x10\x10\x10\x0f\x0f\x0f\x0d\x0d\x0d" + b"\x2d\x28\x20\x29\x24\x1c\x27\x22\x1a\x25\x1f\x17\x38\x2e\x1e\x31" + b"\x29\x1a\x2c\x25\x17\x26\x20\x14\x3c\x30\x14\x37\x2c\x13\x33\x28" + b"\x12\x2d\x24\x10\x28\x1f\x0f\x22\x1a\x0b\x1b\x14\x0a\x13\x0f\x07" + b"\x31\x1a\x16\x30\x17\x13\x2e\x16\x10\x2c\x14\x0d\x2a\x12\x0b\x27" + b"\x0f\x0a\x25\x0f\x07\x21\x0d\x01\x1e\x0b\x01\x1c\x0b\x01\x1a\x0b" + b"\x01\x18\x0a\x01\x16\x0a\x01\x13\x0a\x01\x10\x07\x01\x0d\x07\x01" + b"\x29\x23\x1e\x27\x21\x1c\x26\x20\x1b\x25\x1f\x1a\x23\x1d\x19\x21" + b"\x1c\x18\x20\x1b\x17\x1e\x19\x16\x1c\x18\x14\x1b\x17\x13\x19\x14" + b"\x10\x17\x13\x0f\x14\x10\x0d\x12\x0f\x0b\x0f\x0b\x0a\x0b\x0a\x07" + b"\x26\x1a\x0f\x23\x19\x0f\x20\x17\x0f\x1c\x16\x0f\x19\x13\x0d\x14" + b"\x10\x0b\x10\x0d\x0a\x0b\x0a\x07\x33\x22\x1f\x35\x29\x26\x37\x2f" + b"\x2d\x39\x35\x34\x37\x39\x3a\x33\x37\x39\x30\x34\x36\x2b\x31\x34" + b"\x27\x2e\x31\x22\x2b\x2f\x1d\x28\x2c\x17\x25\x2a\x0f\x20\x26\x0d" + b"\x1e\x25\x0b\x1c\x22\x0a\x1b\x20\x07\x19\x1e\x07\x17\x1b\x07\x14" + b"\x18\x01\x12\x16\x01\x0f\x12\x01\x0b\x0d\x01\x07\x0a\x01\x01\x01" + b"\x2c\x21\x21\x2a\x1f\x1f\x29\x1d\x1d\x27\x1c\x1c\x26\x1a\x1a\x24" + b"\x18\x18\x22\x17\x17\x21\x16\x16\x1e\x13\x13\x1b\x12\x12\x18\x10" + b"\x10\x16\x0d\x0d\x12\x0b\x0b\x0d\x0a\x0a\x0a\x07\x07\x01\x01\x01" + b"\x2e\x30\x29\x2d\x2e\x27\x2b\x2c\x26\x2a\x2a\x24\x28\x29\x23\x27" + b"\x27\x21\x26\x26\x1f\x24\x24\x1d\x22\x22\x1c\x1f\x1f\x1a\x1c\x1c" + b"\x18\x19\x19\x16\x17\x17\x13\x13\x13\x10\x0f\x0f\x0d\x0b\x0b\x0a" + b"\x30\x1e\x1b\x2d\x1c\x19\x2c\x1a\x17\x2a\x19\x14\x28\x17\x13\x26" + b"\x16\x10\x24\x13\x0f\x21\x12\x0d\x1f\x10\x0b\x1c\x0f\x0a\x19\x0d" + b"\x0a\x16\x0b\x07\x12\x0a\x07\x0f\x07\x01\x0a\x01\x01\x01\x01\x01" + b"\x28\x29\x38\x26\x27\x36\x25\x26\x34\x24\x24\x31\x22\x22\x2f\x20" + b"\x21\x2d\x1e\x1f\x2a\x1d\x1d\x27\x1b\x1b\x25\x19\x19\x21\x17\x17" + b"\x1e\x14\x14\x1b\x13\x12\x17\x10\x0f\x13\x0d\x0b\x0f\x0a\x07\x07" + b"\x2f\x32\x29\x2d\x30\x26\x2b\x2e\x24\x29\x2c\x21\x27\x2a\x1e\x25" + b"\x28\x1c\x23\x26\x1a\x21\x25\x18\x1e\x22\x14\x1b\x1f\x10\x19\x1c" + b"\x0d\x17\x1a\x0a\x13\x17\x07\x10\x13\x01\x0d\x0f\x01\x0a\x0b\x01" + b"\x01\x3f\x01\x13\x3c\x0b\x1b\x39\x10\x20\x35\x14\x23\x31\x17\x23" + b"\x2d\x18\x23\x29\x18\x3f\x3f\x3f\x3f\x3f\x39\x3f\x3f\x31\x3f\x3f" + b"\x2a\x3f\x3f\x20\x3f\x3f\x14\x3f\x3c\x12\x3f\x39\x0f\x3f\x35\x0b" + b"\x3f\x32\x07\x3f\x2d\x01\x3d\x2a\x01\x3b\x26\x01\x39\x21\x01\x37" + b"\x1d\x01\x34\x1a\x01\x32\x16\x01\x2f\x12\x01\x2d\x0f\x01\x2a\x0b" + b"\x01\x27\x07\x01\x23\x01\x01\x1d\x01\x01\x17\x01\x01\x10\x01\x01" + b"\x3d\x01\x01\x19\x19\x3f\x3f\x01\x01\x01\x01\x3f\x16\x16\x13\x10" + b"\x10\x0f\x0d\x0d\x0b\x3c\x2e\x2a\x36\x27\x20\x30\x21\x18\x29\x1b" + b"\x10\x3c\x39\x37\x37\x32\x2f\x31\x2c\x28\x2b\x26\x21\x30\x22\x20" +) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WebPImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WebPImagePlugin.py new file mode 100644 index 00000000..f2a99bb9 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WebPImagePlugin.py @@ -0,0 +1,353 @@ +from . import Image, ImageFile +try: + from . import _webp + SUPPORTED = True +except ImportError: + SUPPORTED = False +from io import BytesIO + + +_VALID_WEBP_MODES = { + "RGBX": True, + "RGBA": True, + "RGB": True, + } + +_VALID_WEBP_LEGACY_MODES = { + "RGB": True, + "RGBA": True, + } + +_VP8_MODES_BY_IDENTIFIER = { + b"VP8 ": "RGB", + b"VP8X": "RGBA", + b"VP8L": "RGBA", # lossless + } + + +def _accept(prefix): + is_riff_file_format = prefix[:4] == b"RIFF" + is_webp_file = prefix[8:12] == b"WEBP" + is_valid_vp8_mode = prefix[12:16] in _VP8_MODES_BY_IDENTIFIER + + if is_riff_file_format and is_webp_file and is_valid_vp8_mode: + if not SUPPORTED: + return "image file could not be identified " \ + "because WEBP support not installed" + return True + + +class WebPImageFile(ImageFile.ImageFile): + + format = "WEBP" + format_description = "WebP image" + + def _open(self): + if not _webp.HAVE_WEBPANIM: + # Legacy mode + data, width, height, self.mode, icc_profile, exif = \ + _webp.WebPDecode(self.fp.read()) + if icc_profile: + self.info["icc_profile"] = icc_profile + if exif: + self.info["exif"] = exif + self._size = width, height + self.fp = BytesIO(data) + self.tile = [("raw", (0, 0) + self.size, 0, self.mode)] + self._n_frames = 1 + return + + # Use the newer AnimDecoder API to parse the (possibly) animated file, + # and access muxed chunks like ICC/EXIF/XMP. + self._decoder = _webp.WebPAnimDecoder(self.fp.read()) + + # Get info from decoder + width, height, loop_count, bgcolor, frame_count, mode = \ + self._decoder.get_info() + self._size = width, height + self.info["loop"] = loop_count + bg_a, bg_r, bg_g, bg_b = \ + (bgcolor >> 24) & 0xFF, \ + (bgcolor >> 16) & 0xFF, \ + (bgcolor >> 8) & 0xFF, \ + bgcolor & 0xFF + self.info["background"] = (bg_r, bg_g, bg_b, bg_a) + self._n_frames = frame_count + self.mode = 'RGB' if mode == 'RGBX' else mode + self.rawmode = mode + self.tile = [] + + # Attempt to read ICC / EXIF / XMP chunks from file + icc_profile = self._decoder.get_chunk("ICCP") + exif = self._decoder.get_chunk("EXIF") + xmp = self._decoder.get_chunk("XMP ") + if icc_profile: + self.info["icc_profile"] = icc_profile + if exif: + self.info["exif"] = exif + if xmp: + self.info["xmp"] = xmp + + # Initialize seek state + self._reset(reset=False) + self.seek(0) + + def _getexif(self): + if "exif" not in self.info: + return None + return dict(self.getexif()) + + @property + def n_frames(self): + return self._n_frames + + @property + def is_animated(self): + return self._n_frames > 1 + + def seek(self, frame): + if not _webp.HAVE_WEBPANIM: + return super(WebPImageFile, self).seek(frame) + + # Perform some simple checks first + if frame >= self._n_frames: + raise EOFError("attempted to seek beyond end of sequence") + if frame < 0: + raise EOFError("negative frame index is not valid") + + # Set logical frame to requested position + self.__logical_frame = frame + + def _reset(self, reset=True): + if reset: + self._decoder.reset() + self.__physical_frame = 0 + self.__loaded = -1 + self.__timestamp = 0 + + def _get_next(self): + # Get next frame + ret = self._decoder.get_next() + self.__physical_frame += 1 + + # Check if an error occurred + if ret is None: + self._reset() # Reset just to be safe + self.seek(0) + raise EOFError("failed to decode next frame in WebP file") + + # Compute duration + data, timestamp = ret + duration = timestamp - self.__timestamp + self.__timestamp = timestamp + + # libwebp gives frame end, adjust to start of frame + timestamp -= duration + return data, timestamp, duration + + def _seek(self, frame): + if self.__physical_frame == frame: + return # Nothing to do + if frame < self.__physical_frame: + self._reset() # Rewind to beginning + while self.__physical_frame < frame: + self._get_next() # Advance to the requested frame + + def load(self): + if _webp.HAVE_WEBPANIM: + if self.__loaded != self.__logical_frame: + self._seek(self.__logical_frame) + + # We need to load the image data for this frame + data, timestamp, duration = self._get_next() + self.info["timestamp"] = timestamp + self.info["duration"] = duration + self.__loaded = self.__logical_frame + + # Set tile + if self.fp and self._exclusive_fp: + self.fp.close() + self.fp = BytesIO(data) + self.tile = [("raw", (0, 0) + self.size, 0, self.rawmode)] + + return super(WebPImageFile, self).load() + + def tell(self): + if not _webp.HAVE_WEBPANIM: + return super(WebPImageFile, self).tell() + + return self.__logical_frame + + +def _save_all(im, fp, filename): + encoderinfo = im.encoderinfo.copy() + append_images = list(encoderinfo.get("append_images", [])) + + # If total frame count is 1, then save using the legacy API, which + # will preserve non-alpha modes + total = 0 + for ims in [im]+append_images: + total += getattr(ims, "n_frames", 1) + if total == 1: + _save(im, fp, filename) + return + + background = (0, 0, 0, 0) + if "background" in encoderinfo: + background = encoderinfo["background"] + elif "background" in im.info: + background = im.info["background"] + if isinstance(background, int): + # GifImagePlugin stores a global color table index in + # info["background"]. So it must be converted to an RGBA value + palette = im.getpalette() + if palette: + r, g, b = palette[background*3:(background+1)*3] + background = (r, g, b, 0) + + duration = im.encoderinfo.get("duration", 0) + loop = im.encoderinfo.get("loop", 0) + minimize_size = im.encoderinfo.get("minimize_size", False) + kmin = im.encoderinfo.get("kmin", None) + kmax = im.encoderinfo.get("kmax", None) + allow_mixed = im.encoderinfo.get("allow_mixed", False) + verbose = False + lossless = im.encoderinfo.get("lossless", False) + quality = im.encoderinfo.get("quality", 80) + method = im.encoderinfo.get("method", 0) + icc_profile = im.encoderinfo.get("icc_profile", "") + exif = im.encoderinfo.get("exif", "") + if isinstance(exif, Image.Exif): + exif = exif.tobytes() + xmp = im.encoderinfo.get("xmp", "") + if allow_mixed: + lossless = False + + # Sensible keyframe defaults are from gif2webp.c script + if kmin is None: + kmin = 9 if lossless else 3 + if kmax is None: + kmax = 17 if lossless else 5 + + # Validate background color + if (not isinstance(background, (list, tuple)) or len(background) != 4 or + not all(v >= 0 and v < 256 for v in background)): + raise IOError("Background color is not an RGBA tuple clamped " + "to (0-255): %s" % str(background)) + + # Convert to packed uint + bg_r, bg_g, bg_b, bg_a = background + background = (bg_a << 24) | (bg_r << 16) | (bg_g << 8) | (bg_b << 0) + + # Setup the WebP animation encoder + enc = _webp.WebPAnimEncoder( + im.size[0], im.size[1], + background, + loop, + minimize_size, + kmin, kmax, + allow_mixed, + verbose + ) + + # Add each frame + frame_idx = 0 + timestamp = 0 + cur_idx = im.tell() + try: + for ims in [im]+append_images: + # Get # of frames in this image + nfr = getattr(ims, "n_frames", 1) + + for idx in range(nfr): + ims.seek(idx) + ims.load() + + # Make sure image mode is supported + frame = ims + rawmode = ims.mode + if ims.mode not in _VALID_WEBP_MODES: + alpha = 'A' in ims.mode or 'a' in ims.mode \ + or (ims.mode == 'P' and + 'A' in ims.im.getpalettemode()) + rawmode = 'RGBA' if alpha else 'RGB' + frame = ims.convert(rawmode) + + if rawmode == 'RGB': + # For faster conversion, use RGBX + rawmode = 'RGBX' + + # Append the frame to the animation encoder + enc.add( + frame.tobytes('raw', rawmode), + timestamp, + frame.size[0], frame.size[1], + rawmode, + lossless, + quality, + method + ) + + # Update timestamp and frame index + if isinstance(duration, (list, tuple)): + timestamp += duration[frame_idx] + else: + timestamp += duration + frame_idx += 1 + + finally: + im.seek(cur_idx) + + # Force encoder to flush frames + enc.add( + None, + timestamp, + 0, 0, "", lossless, quality, 0 + ) + + # 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)") + + fp.write(data) + + +def _save(im, fp, filename): + lossless = im.encoderinfo.get("lossless", False) + quality = im.encoderinfo.get("quality", 80) + icc_profile = im.encoderinfo.get("icc_profile", "") + exif = im.encoderinfo.get("exif", "") + if isinstance(exif, Image.Exif): + exif = exif.tobytes() + xmp = im.encoderinfo.get("xmp", "") + + if im.mode not in _VALID_WEBP_LEGACY_MODES: + alpha = 'A' in im.mode or 'a' in im.mode \ + or (im.mode == 'P' and 'A' in im.im.getpalettemode()) + im = im.convert('RGBA' if alpha else 'RGB') + + data = _webp.WebPEncode( + im.tobytes(), + im.size[0], + im.size[1], + lossless, + float(quality), + im.mode, + icc_profile, + exif, + xmp + ) + if data is None: + raise IOError("cannot write file as WebP (encoder returned None)") + + fp.write(data) + + +Image.register_open(WebPImageFile.format, WebPImageFile, _accept) +if SUPPORTED: + Image.register_save(WebPImageFile.format, _save) + if _webp.HAVE_WEBPANIM: + Image.register_save_all(WebPImageFile.format, _save_all) + Image.register_extension(WebPImageFile.format, ".webp") + Image.register_mime(WebPImageFile.format, "image/webp") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WmfImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WmfImagePlugin.py new file mode 100644 index 00000000..413bd184 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/WmfImagePlugin.py @@ -0,0 +1,171 @@ +# +# The Python Imaging Library +# $Id$ +# +# WMF stub codec +# +# history: +# 1996-12-14 fl Created +# 2004-02-22 fl Turned into a stub driver +# 2004-02-23 fl Added EMF support +# +# Copyright (c) Secret Labs AB 1997-2004. All rights reserved. +# Copyright (c) Fredrik Lundh 1996. +# +# See the README file for information on usage and redistribution. +# +# WMF/EMF reference documentation: +# https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/[MS-WMF].pdf +# 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, si16le as short, \ + i32le as dword, 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): + """ + Install application-specific WMF image handler. + + :param handler: Handler object. + """ + global _handler + _handler = handler + + +if hasattr(Image.core, "drawwmf"): + # install default handler (windows only) + + class WmfHandler(object): + + def open(self, im): + im.mode = "RGB" + self.bbox = im.info["wmf_bbox"] + + def load(self, im): + im.fp.seek(0) # rewind + return Image.frombytes( + "RGB", im.size, + Image.core.drawwmf(im.fp.read(), im.size, self.bbox), + "raw", "BGR", (im.size[0]*3 + 3) & -4, -1 + ) + + register_handler(WmfHandler()) + +# +# -------------------------------------------------------------------- +# Read WMF file + + +def _accept(prefix): + return ( + prefix[:6] == b"\xd7\xcd\xc6\x9a\x00\x00" or + prefix[:4] == b"\x01\x00\x00\x00" + ) + + +## +# Image plugin for Windows metafiles. + +class WmfStubImageFile(ImageFile.StubImageFile): + + format = "WMF" + format_description = "Windows Metafile" + + def _open(self): + + # check placable header + s = self.fp.read(80) + + if s[:6] == b"\xd7\xcd\xc6\x9a\x00\x00": + + # placeable windows metafile + + # get units per inch + inch = word(s, 14) + + # get bounding box + x0 = short(s, 6) + y0 = short(s, 8) + x1 = short(s, 10) + y1 = short(s, 12) + + # normalize size to 72 dots per inch + size = (x1 - x0) * 72 // inch, (y1 - y0) * 72 // 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") + + elif dword(s) == 1 and s[40:44] == b" EMF": + # enhanced metafile + + # get bounding box + x0 = _long(s, 8) + y0 = _long(s, 12) + x1 = _long(s, 16) + y1 = _long(s, 20) + + # 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 + xdpi = int(2540.0 * (x1 - y0) / (frame[2] - frame[0]) + 0.5) + ydpi = int(2540.0 * (y1 - y0) / (frame[3] - frame[1]) + 0.5) + + self.info["wmf_bbox"] = x0, y0, x1, y1 + + if xdpi == ydpi: + self.info["dpi"] = xdpi + else: + self.info["dpi"] = xdpi, ydpi + + else: + raise SyntaxError("Unsupported file format") + + self.mode = "RGB" + self._size = size + + loader = self._load() + if loader: + loader.open(self) + + def _load(self): + return _handler + + +def _save(im, fp, filename): + if _handler is None or not hasattr(_handler, "save"): + raise IOError("WMF save handler not installed") + _handler.save(im, fp, filename) + +# +# -------------------------------------------------------------------- +# Registry stuff + + +Image.register_open(WmfStubImageFile.format, WmfStubImageFile, _accept) +Image.register_save(WmfStubImageFile.format, _save) + +Image.register_extensions(WmfStubImageFile.format, [".wmf", ".emf"]) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XVThumbImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XVThumbImagePlugin.py new file mode 100644 index 00000000..ad913b2a --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XVThumbImagePlugin.py @@ -0,0 +1,82 @@ +# +# The Python Imaging Library. +# $Id$ +# +# XV Thumbnail file handler by Charles E. "Gene" Cash +# (gcash@magicnet.net) +# +# see xvcolor.c and xvbrowse.c in the sources to John Bradley's XV, +# available from ftp://ftp.cis.upenn.edu/pub/xv/ +# +# history: +# 98-08-15 cec created (b/w only) +# 98-12-09 cec added color palette +# 98-12-28 fl added to PIL (with only a few very minor modifications) +# +# To do: +# FIXME: make save work (this requires quantization support) +# + +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) +PALETTE = b"" +for r in range(8): + for g in range(8): + for b in range(4): + PALETTE = PALETTE + (o8((r*255)//7)+o8((g*255)//7)+o8((b*255)//3)) + + +def _accept(prefix): + return prefix[:6] == _MAGIC + + +## +# Image plugin for XV thumbnail images. + +class XVThumbImageFile(ImageFile.ImageFile): + + format = "XVThumb" + format_description = "XV thumbnail image" + + def _open(self): + + # check magic + if not _accept(self.fp.read(6)): + raise SyntaxError("not an XV thumbnail file") + + # Skip to beginning of next line + self.fp.readline() + + # skip info comments + while True: + s = self.fp.readline() + if not s: + raise SyntaxError("Unexpected EOF reading XV thumbnail file") + if i8(s[0]) != 35: # ie. when not a comment: '#' + break + + # parse header line (already read) + s = s.strip().split() + + self.mode = "P" + self._size = int(s[0]), int(s[1]) + + self.palette = ImagePalette.raw("RGB", PALETTE) + + self.tile = [ + ("raw", (0, 0)+self.size, + self.fp.tell(), (self.mode, 0, 1) + )] + + +# -------------------------------------------------------------------- + +Image.register_open(XVThumbImageFile.format, XVThumbImageFile, _accept) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XbmImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XbmImagePlugin.py new file mode 100644 index 00000000..af5adccd --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XbmImagePlugin.py @@ -0,0 +1,98 @@ +# +# The Python Imaging Library. +# $Id$ +# +# XBM File handling +# +# History: +# 1995-09-08 fl Created +# 1996-11-01 fl Added save support +# 1997-07-07 fl Made header parser more tolerant +# 1997-07-22 fl Fixed yet another parser bug +# 2001-02-17 fl Use 're' instead of 'regex' (Python 2.1) (0.4) +# 2001-05-13 fl Added hotspot handling (based on code from Bernhard Herzog) +# 2004-02-24 fl Allow some whitespace before first #define +# +# Copyright (c) 1997-2004 by Secret Labs AB +# Copyright (c) 1996-1997 by Fredrik Lundh +# +# See the README file for information on usage and redistribution. +# + +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]+" + b"#define[ \t]+.*_height[ \t]+(?P[0-9]+)[\r\n]+" + b"(?P" + b"#define[ \t]+[^_]*_x_hot[ \t]+(?P[0-9]+)[\r\n]+" + b"#define[ \t]+[^_]*_y_hot[ \t]+(?P[0-9]+)[\r\n]+" + b")?" + b"[\\000-\\377]*_bits\\[\\]" +) + + +def _accept(prefix): + return prefix.lstrip()[:7] == b"#define" + + +## +# Image plugin for X11 bitmaps. + +class XbmImageFile(ImageFile.ImageFile): + + format = "XBM" + format_description = "X11 Bitmap" + + def _open(self): + + m = xbm_head.match(self.fp.read(512)) + + if m: + + xsize = int(m.group("width")) + ysize = int(m.group("height")) + + if m.group("hotspot"): + self.info["hotspot"] = ( + int(m.group("xhot")), int(m.group("yhot")) + ) + + self.mode = "1" + self._size = xsize, ysize + + self.tile = [("xbm", (0, 0)+self.size, m.end(), None)] + + +def _save(im, fp, filename): + + if im.mode != "1": + raise IOError("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')) + + hotspot = im.encoderinfo.get("hotspot") + if hotspot: + fp.write(("#define im_x_hot %d\n" % hotspot[0]).encode('ascii')) + fp.write(("#define im_y_hot %d\n" % hotspot[1]).encode('ascii')) + + fp.write(b"static char im_bits[] = {\n") + + ImageFile._save(im, fp, [("xbm", (0, 0)+im.size, 0, None)]) + + fp.write(b"};\n") + + +Image.register_open(XbmImageFile.format, XbmImageFile, _accept) +Image.register_save(XbmImageFile.format, _save) + +Image.register_extension(XbmImageFile.format, ".xbm") + +Image.register_mime(XbmImageFile.format, "image/xbm") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XpmImagePlugin.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XpmImagePlugin.py new file mode 100644 index 00000000..9cecdbca --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/XpmImagePlugin.py @@ -0,0 +1,131 @@ +# +# The Python Imaging Library. +# $Id$ +# +# XPM File handling +# +# History: +# 1996-12-29 fl Created +# 2001-02-17 fl Use 're' instead of 'regex' (Python 2.1) (0.7) +# +# Copyright (c) Secret Labs AB 1997-2001. +# Copyright (c) Fredrik Lundh 1996-2001. +# +# See the README file for information on usage and redistribution. +# + + +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]*)") + + +def _accept(prefix): + return prefix[:9] == b"/* XPM */" + + +## +# Image plugin for X11 pixel maps. + +class XpmImageFile(ImageFile.ImageFile): + + format = "XPM" + format_description = "X11 Pixel Map" + + def _open(self): + + if not _accept(self.fp.read(9)): + raise SyntaxError("not an XPM file") + + # skip forward to next string + while True: + s = self.fp.readline() + if not s: + raise SyntaxError("broken XPM file") + m = xpm_head.match(s) + if m: + break + + self._size = int(m.group(1)), int(m.group(2)) + + pal = int(m.group(3)) + bpp = int(m.group(4)) + + if pal > 256 or bpp != 1: + raise ValueError("cannot read this XPM file") + + # + # load palette description + + palette = [b"\0\0\0"] * 256 + + for i in range(pal): + + s = self.fp.readline() + if s[-2:] == b'\r\n': + s = s[:-2] + elif s[-1:] in b'\r\n': + s = s[:-1] + + c = i8(s[1]) + s = s[2:-2].split() + + for i in range(0, len(s), 2): + + if s[i] == b"c": + + # process colour key + rgb = s[i+1] + if rgb == b"None": + self.info["transparency"] = c + elif rgb[0:1] == b"#": + # FIXME: handle colour names (see ImagePalette.py) + rgb = int(rgb[1:], 16) + palette[c] = (o8((rgb >> 16) & 255) + + o8((rgb >> 8) & 255) + + o8(rgb & 255)) + else: + # unknown colour + raise ValueError("cannot read this XPM file") + break + + else: + + # missing colour key + raise ValueError("cannot read this XPM file") + + self.mode = "P" + self.palette = ImagePalette.raw("RGB", b"".join(palette)) + + self.tile = [("raw", (0, 0)+self.size, self.fp.tell(), ("P", 0, 1))] + + def load_read(self, bytes): + + # + # load all image data in one chunk + + xsize, ysize = self.size + + s = [None] * ysize + + for i in range(ysize): + s[i] = self.fp.readline()[1:xsize+1].ljust(xsize) + + return b"".join(s) + +# +# Registry + + +Image.register_open(XpmImageFile.format, XpmImageFile, _accept) + +Image.register_extension(XpmImageFile.format, ".xpm") + +Image.register_mime(XpmImageFile.format, "image/xpm") diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__init__.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__init__.py new file mode 100644 index 00000000..ec0611b6 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__init__.py @@ -0,0 +1,71 @@ +"""Pillow (Fork of the Python Imaging Library) + +Pillow is the friendly PIL fork by Alex Clark and Contributors. + https://github.com/python-pillow/Pillow/ + +Pillow is forked from PIL 1.1.7. + +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. + +;-) +""" + +from . import _version + +# VERSION was removed in Pillow 6.0.0. +# PILLOW_VERSION is deprecated and will be removed in Pillow 7.0.0. +# Use __version__ instead. +PILLOW_VERSION = __version__ = _version.__version__ + +del _version + + +_plugins = ['BlpImagePlugin', + 'BmpImagePlugin', + 'BufrStubImagePlugin', + 'CurImagePlugin', + 'DcxImagePlugin', + 'DdsImagePlugin', + 'EpsImagePlugin', + 'FitsStubImagePlugin', + 'FliImagePlugin', + 'FpxImagePlugin', + 'FtexImagePlugin', + 'GbrImagePlugin', + 'GifImagePlugin', + 'GribStubImagePlugin', + 'Hdf5StubImagePlugin', + 'IcnsImagePlugin', + 'IcoImagePlugin', + 'ImImagePlugin', + 'ImtImagePlugin', + 'IptcImagePlugin', + 'JpegImagePlugin', + 'Jpeg2KImagePlugin', + 'McIdasImagePlugin', + 'MicImagePlugin', + 'MpegImagePlugin', + 'MpoImagePlugin', + 'MspImagePlugin', + 'PalmImagePlugin', + 'PcdImagePlugin', + 'PcxImagePlugin', + 'PdfImagePlugin', + 'PixarImagePlugin', + 'PngImagePlugin', + 'PpmImagePlugin', + 'PsdImagePlugin', + 'SgiImagePlugin', + 'SpiderImagePlugin', + 'SunImagePlugin', + 'TgaImagePlugin', + 'TiffImagePlugin', + 'WebPImagePlugin', + 'WmfImagePlugin', + 'XbmImagePlugin', + 'XpmImagePlugin', + 'XVThumbImagePlugin'] diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/BdfFontFile.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/BdfFontFile.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6986b4e14d40540ee52b1ecc7283fdc8af4ce97f GIT binary patch literal 2381 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 j1C)fFFjFIEvWZkQS^P?SP{LC_C literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/BufrStubImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/BufrStubImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7331979eded5920a7f0f4738c9ddf866d5285dd1 GIT binary patch literal 1619 zcmZuxPjA~c6elTJk{!Es3=G9`=!9axU|=yYY=-|KY%3WQ{ET86Cy#Mm>`#8tj;~#k`3aLgN zcWSTZiqCEq_u_9?yK!}TE;BQ7Hsc|+QMx_{a<~?MBPxJM{`%oyZ}L)0r6Pel~yZI`spVX-KxpC`vh&nNrysX8(9Q)*#a(n?oL(a*PUXx#_VNQnYujv)l zj|@1uqHm~MZ8fk8Q1cp+2Eqp#He?yWIo2?B+^}W4AtN$^?u1)DO!I5uJr&2VI9_|5$k#Z4Om2dx_I!P+Kt?qP3`Wq z4;Im2t`v~1Py_Y=*n5uE2e9@S=K7ug*A0d|hUbgYwB$3HrnZx&kny}gxtpf1=Db+% z1k*~*xUqv3PleQ(%4=*@wS)fA;jJLByA+~Mb%8vB=~_QxKJ{6&?N&2{1rFr+i#d3F z3W9+axQO(?P(c9>Oz#*#9>T(qC4ix!4a5IQU@82uD+D|U|4A-Ba{mR2H$OvM0vy&Y zEXB}YS;J4DxiQLyN8h<8S1~vqdI`&C>K=$TLhNArx6*Qb1bBe!pMZ_VGzlHhh$`%t zMQd~l|G}_liNZ!wn3?nEdfuTe>21CX>=aiCcR1;7{tN_-!Zy9NhCY+Q#zbBkS!yi5 hEA_v`g%~|qz2lcyeccDrXTBHpB7d+GwfpoQ`v=vOdQSiV literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ContainerIO.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ContainerIO.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a2f27edb199bbc7f16347f6ab42fe2ce45ed02b6 GIT binary patch literal 2577 zcmai$&u`l{6vs(PR#eBynl$}^p#!)}QDdpmZaWOdFf>cEB3qXhO^0EI0Z%dMRIV(! z6uqT}b6NU_B!?X~VCVfWy6)6}VY}@6C|h;Xw3Wd}ijN}s-uv*;UoS0H8J_=s`@8)o zTK~|??D5dJi;`W3kWBKJwb*?o9qGPg(pCJ(Z8?(fvby&QBiK%tOdC6L?bft&dQ|vNyhnRkClM;)`gErQh{|=CE$3Udf%_)7%}VS?(9h<$f_q?qy0nt9w+( zz1$;fbOj%2AL0+DDd_(`+-$ag$du078(pQ_8^htf(1h&=X*Z19Pt;)89!A4kQIeT3 zj&Fq>`PrS%y9qkuIQ_N#X!}8XE)0#~i#+Ibq9ih%&WD&jvtR{2FMi{-`N6Y+U9yB8 zs;SuEQ6w!_&dxV>t97me^x1YH7V(<ijB&x=T>dLp3?UuJJP( z6Y%)V(N_qF3BSq+m*hHn9rUiFmzTYM0h0my#sWmzBj<>)!gqb|xB}^;u&d01%NnUXb3qr@ovCR#IW9$I|f4$B~wY6=%22nHepycz-l6}Lq%)nX68B?)Qg zV7gOo2E5a#?nrBu5TV5Dx(E{~KD8Q!R{3Q^h@aAt=!Qv>8Zm$&^Ank;3R|!yiF9PL zNGd^nQuT01<&^!`#J{3YzoL*$QC`p#b4zFL4#ES7DA5!!y+DG(R(A^ssGWP{fHOSU zp$%xWWe9d5;L9Av@trGtd~qHOIvwYuN9Tirh~V+@Ya8z?Q+mp#hI0a_l^N+IYl>;? zdO95loSpX_f51(~zlCwns5st$z98H`Z3ro?3%izo45ON+vyk6IW5V?{V{;*JW_{-x zJ8}+rQbT+CehAF7bvkgQpCS*i`!2F1KcNKgjDIiV{aA%kNMwpP=}nqqXEfMTn!vGH zPM8$Y4`oAa_e45~i~$b7Zme{=UQS85mqv+EVxm}_Ca)aTEIquDh%avKMF#HG0Q@yr zInJD3fz=kJ0xF^?_h|aMV+qQ6a+aLS7_*I1kP~=(&8cw@zuFmcXqu87nwg6A^=&jH zKja5DChQpZ$_YPoCQf$c5&7P^%HU-r4B8-H7x_m~_IiWnz`+-KCm zsjKJx#_Kg~K@$Ks6QEZ|iE?wGB_HGAYOlI%Yc?jk% zRK%HXpxh6KL$EaSLB&q3uR(Rz6BlNNWqoK13al#v>xyMQzC52l%F#P;Gv%^+jV`|= z9H>qwuXZ}fPNSIGwNB^xD2xk@uF=v<5V;ejd9b^+^<8Io>q(L0E|HRAW;d@tq88nu zbAoO?O(&deu)7SLU?p&uF9kt$CAesHF!y7q@t?r{eX)IWbJ!{E^%;CwZ1XEx)TWof F{U2CVN~-_> literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/CurImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/CurImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb519d50e7905969303139eb54233183ecde5a36 GIT binary patch literal 1431 zcmZuxOK;mo5Z)IlN}^O(X_4CPL5HG&(AtROpeTxD*g;=?oRQK6HVdnVrYZ?8g~C==C}T)<5t5nC!L)`4bPD z<$!PqyDEW5B56u88c<3klRRY^4|pa5(VRugik}jCxHM^kIS4K$S@2KPpeij?YxHXeP z5(M&sUeJf+)p#L3L^>E*^D3y>g1p-Uz+cx32V!g!*;VO9D6iW<2R( z-kMytO$Vaeo18VhNtV!_kP}*Od(Ghv+1Vj6t4ZjCrH7V@SU3xJ(OP)5BfIE-lhm!+ zi?LqtxCbqPEjV5wAoG4+m|-*o@P;wK_!sDiMz~hkKN>qqb0G6i$Hj2kpjr)2l~%*J znB{Wiqbq*35nDTB#HepsTv}mNnp&Y%B%3d7yU)&Z6P^92b)l`Jqa2!?Lpy6M#kQZH zm#VP^t?+eXvZw^>!5u5AWDX4mR6Q#mL`@;OO>UCrO|)= ztg%YCpeR-T4T#m3KnUw_pL*2eg6>eC3hL6^a2BB1;X8CdKV$R3^&Z=6E*L}Wd107G znF>SO3B#wbsq>CD@4R& zf(q8?=3)=PACCr@FrJy2hJ+e%w?yMGYy6|ZjJ;0sNS`-=YWV39y^X{}@;Q2R!|)fF zYbXNZar^>*^OwOfYLW##t&Wq*DBV0*e~oT~E1fzsD#siC?*-Pox5nd#8xU3DdwjM< NKM}(9T7z3#>|YkZS=;~s literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/DcxImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/DcxImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..70558d1123d48d8579d2519df5c1f8d9ca1732bb GIT binary patch literal 2051 zcmah~TW{Mo6edMVmSx#Zvh}iJmuv$HctC?JE%s0pL(^mpvUNeQY-=WXAXJe~mB_M6 zDVbw9FLi%N^0>!6?Z5D0FMG;g*j{!Hotujmv%$k7@{s4#$L~;&o6Ug0@84H{c5c@R z`5Pb3e=azWpp{)Pl1Q479*rnP-^rXFi@5b!=JveE1D{7V=|;ZvWbHMH>T5*$vi_RL zy7I;>3KTtVs9-l#fvTS{O5nMP&oVf1V0B}Qw8K*h$=cMo>%DkKp_ATQ%FqcnlYt$4 zl4fei78jP%KVJOxAi)Lr!`^|m0RQ?&`-V;cG3TgJh!%Rn|@K9HeoLf?=r zc@6qd&Hx3oCOpT5bVh7-WqVj(&nuP9gZt!yRU`_9U|Br?XGC_%F|c|fJ#9gc!(<3%w<+q!-lY3knu@jKg%f)AQXISe? z+@U@q$ARQHCkX&{H#EW+w(@>8A0x*3E&xvn06c{W(ry^1TNtiYEOiYAv=7EKwhr?u z9(<#9Ujy;|ZnspGadn*UDC5ONp>ktGO2Jq6@aCG>rN~4etWSzyRH7 zJKBRWJqM;uHER4#5PmK!@Y0@_)s{27K9%u2;_XRWSCT^Ma9b|g7UlnEZ=|J&^RyRN zO0L016LCAkTT=k81SJ+BL}HIpv#=k61IJHBAhNQB$3KGd70`A;NP?`590bo=zfTI@AJC2Y;4Q5*qe|9yzkppL^a-hs@ zj>q5(?;qaAJkTgqrS*@U6Sy3ok^Fs5pjHFDNa2~1Ur6q3!#G^$5HHB~q|yK%zog2z zN!BlwX)RZkPM_~r%9heQum{3MV+H+;Z!qDDLm{-_A2`FCQ+!=UZ?v1n7b1t66T$>S z^!jo?Lq8Pa<$j!<&3N6u26>seNiU=-6P*@S+Rvj;&$d&8B-=030|h8V+^v)rSwEI( zzGDyC_=Sc_)zzW?2r%l8(O5xzg5GCnF3;b3Sl_w{<_l;g>c)3Ch=4o(dm#_G@B7To z5BY*j1{>{`AsQtOH_r1kkM*Hu@MN#0sCE7wn|u(g0!>4R1Ng|mYY1U4F8e{Sdqz#I xcG41G11}hT2X>0)F2>ZLQaLVs8))M{oDlgnYP*~PgSS%1xx<-XoB3+S`47m?#9ROX literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/DdsImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/DdsImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6479124c2c8101984bb55f858bd3c5254e2748b8 GIT binary patch literal 4447 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ExifTags.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ExifTags.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8e81118b3b09782f2f3d4b8376fdef2639ffdfa3 GIT binary patch literal 7321 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/FitsStubImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/FitsStubImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f3d21b38c3695e8a3f7fc2d95d585ca5017366bd GIT binary patch literal 1607 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GifImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GifImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1b46b226e75f74eca291cd4632d18667448e2cf8 GIT binary patch literal 16049 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 k{p$=3{YgB%B9N_oLW6w;q3liO`SFfvHRsFi& z`@O1Ll}eG}`PcJ5bQUU%{hdB$PY%irl=wM>WRiz$z}tKv+G1d}t%2RPIg>(KVQ%2G z9q4vDFLTm)!P>6OOBZ!P7Gx21QI=#GbxBra6?NHn{eoZgOMbbZYghJ|tjYQdChLB6 zY_)6nUXY9UUi54DuFItsYb;NIgEed|MuE1%VP9Ku5NSI;P|1W-7uRC=qy8WN^q0T> zE&cSzJwf((sJ2kvLy13vNO{VhaP?-&6840tWyxFkk(4j9lx?sUi{2)SRhDsSnHufJ za$8ztd1ku;Yl+gZn|(}do>S$som1u24uIu%@3rpS{jk{(+8G2=hQ78&!}#}1l`!b@ z`|n-r{4DlW+_~BFRp;htblXe3&fQ_p3p@Ay!KgC|Mwf#qPP{O@>~-ZkSAW=x&=`ip zr=5Fu?soQq!Dvr;GVr71{UG$WM$fbp29fWnH?TsyNZ7cG*A`VlHE9Y?XBRfgL4(<- zbtoxM;P)|Pf(=Q;Sd94wTcRHpvmgF!r(r4DUTqD$BjrMC2vtC(D7MW1O+}fEoZg}O zg)hGcJvI*Fss{awF}#HyTDt@k8>kbJ0@GM5vlTYxQmmMEps{9X*p0JYx0H?XidHfI z`QKpK2qpjfu$+OaL%#ru=rG?H+7{Xp0wehM7p?oc=o)HiJX%y8!2cp8)1Opi?lb9Y*8WMJWA zmRf79<79T0%bYBqxmn>8e)Lm#0ReiOeZn7H&x&agA%eglUu>|fbaW}rr6q9uacW8N zF8i{X4sLzSU}=N%<+Pkw81d`00OZzKWR++=Eu;?hrsWNmmS!6DC3cdNcIryL#?m}V zSXGcojK0E_nY1Wa$2_afZH2LgoZCXbU|XBp=8P@m+!p!;+xpzrF}9F%Tj&>T7gBNJ zq}8;x!qPg*!U}uIIXk%YF_Za|d@5dY>Fx`7s?b!FR22o6Y}^!P*~gk zXz$j|hO6EFY5vhURg{6YRsZ1?Bd_Xw?Dq#4p?RSBk>*d^xfrR^*Ia4d*ZiU8 z-s_pC*!Ppuxo-hXOv!}_TiE=oVo}sZ5gBn^xX6uVv2MN1&1OFz0Yl?pKr+)iT63N=zxs1uD~W zfnt5E+oTms>xXjk|*N=fYwJ6C_Qa053CzO<*u$Sgs{}qByiYJzOBf)_; z=FdSX>dORzMM(Q4SJ$R3Cl<9Pc8YT#vp`P!=yypj#hBad!EdwNsg(mOXL=Jz9o!u9 zw8CwWAj^Xmt_jk@8qQ@RFoUM1m$fd~LHwq@ah~LC$KS7?<>MOL$PukcufI{YD(vt*NgOCmS%r z(J!{Hs0P$?Awb^$ym&nf;-ohmjJAJC)6v`xJHGt7H@CVt9)hIX-MSvq)ga!6G8;KD z(PTJF1U1A}E6^syy$LOJ{Pms}(N8||B3wZ>f71H-W^Wh{57lNo@_K%wq+J|7lI{(< z)Or>r-qEg7L#2zjd8j0Q8YGW&E(TLa=31dB-J@X?28niCyL%t(Ht)A|{?3PHnED#J zP2@Lf>KkM#_D9+_)8~4_Lr~t(;=9zvV|9tl-z4!(5^s_C7Kv|@_zpzd=^3Q2?I1C5 zx-$WcVw#VMWezf1MbMcDRTX6-I!IndOPyNL4|=bC=`J@Lwz`6u)KwBcAhAorZ1kBh z1g689(xma7D-?Y<8w=VVc*&#b9mJxs6f)*Qp!3~_LFB1tCN)lzB!#584k@~RC^`<+ t5{VrM?F=72_IruR3}*f>0;1jP(*(3lQ<%V9Ow_{0H7-cMbpm literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GimpPaletteFile.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/GimpPaletteFile.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..067dda3048a616771d5b67247195fc6afd79d5b5 GIT binary patch literal 1321 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/IcnsImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/IcnsImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1d667e2be2f1f8b5663f8c93cd8f90ff746d5fd2 GIT binary patch literal 9285 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 BX5jz; literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/IcoImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/IcoImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..198b1d9f802527f6b0e639b8753103e1cac5d26e GIT binary patch literal 6570 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 V4PCRoXX)*~Q|!*oHYKp?{{m9l=Y{|P literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..afe41ee6e3359ac943a24d520a42e59e756c2dbc GIT binary patch literal 6576 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/Image.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/Image.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..daa2fe0394ddf04531918e2c4d10a08d4ceb3217 GIT binary patch literal 85870 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 J2)Z=;e*x5q=av8f literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageChops.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageChops.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4306b96a5bf8c6c5a9dbd831eff21187daa8c23 GIT binary patch literal 7190 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

QdX*H$> z#UsNGk~*fq2Jl?W*?XOfM`OSyZVzo;_xGv}`A}=8>VHHp5JOR!C%QGMGY6C? z=nX!ZhQ6NE*G)F?f=VM|S$L4YOIGh2*6^#aWh}?AFSSPaLkP0^OyEeir_@mJrBksS! z3D6cMGR$M!&CtIr=JE4x7H031n7wfMhc&?zIyBg7q-qg?KqntL6-yktW zd6>uBbQ8fCW;+?Va== z`FtcM9+ZLU`)@I%9^!eIDJn7b#K_%a;wHjVgH9``Qc({Jg2cHAnxSd6ziE^%J}pw0R(7>iB<%h>wv~t2wu;~(Ka@z9?#2D?rMp-q=&>}#45wbC4So4(%z9jg$*e-rAZKCtk=V#EZkT*((|hZtc;MJ`AsauL^spY6SE10(hC|s z3`uH^oOV~)m!e9bq9b-J6ci?!z=^Sn)CYU773_-M*kdO$-U!sux+tLtUh6jnrf5U( zMm->&6Wl~oa#z{mV4VzbP8rQqDNSP2DMi%g*E|%;UPV-aR0zaa9x)P-PlMk%egKON ziH=(LYr(eOMkpQK6Bx!4K{L=;vQ9w{LjoRjT(D9k(b-Vvni9wd)}=;|+``C5wyD&n zM;cq{N(B{-;GCK!WC%r+RB*qDIY<%5u&prc2wq~vXjc)0mrL8c=Op%#X2(nmJrYvv z9gq;TMi;~kF%P=eWgr13uF_=>l z95OfrY?N@0(YZ&8fEG}i&Tb6bG5!;i>#CYmNF6u8c@$3t2FzaKtc46)4?RNm@~)Xz zQAcS#XgEt<4bZnP-P38-*?>Ne1i@ASj<_lQ6edTA%NmG-`DPw1fTHn)r4mY&7Na`kG*tpA(J=6l^9MRnscnEB6Seo)tEi=XI!ko=Aft|M zeGb%Vs`Ovti2_QTZ-~3lg;WGtauAVD(iCzvs?2xo=!j=fs~(!bGy)4abe9xmXjJ`r zYL6-^l~L<4ZKSoI9`DOn@06PBfxR(oN=*SV1GE;jkOYjhO4En9Pb!aBCA5Y;=JjB% z)(074-1ppzKBJ|_l>E{6L%fTn$isr0-?i`OFKzdWF|Zjci4r0Es^);i9lt{}eg(N3 z3|t29@$f4in5mF5-h1tm@@TNa`>QxGt%GFN9o0NNSmP~v2L_ob!7I3NkG2VOJFL0E zMmLS`GZ}d{IE}|@V#we}PioD7#s!!Y${eBDV$6}jX3J=7wv0Z)Y+3$FW(zVf#E|(d z3>g*YQ-+L6?18CrIQj)5a_|Errp$kYDO1#@Oi`OM1-Edo_<1olWe^K5k2t@J+&|%F z#t-oAnld`>5il+Yoxm*f09Qu1%?p|TFN%YakfV%A|;4^FyP8(i(jn%wBs$uubW)FiF0ewUcOH11ueBHwie#Rcmz|J`;`P zaS-z>SvzVTQTnfywewen0@{k|6MWSB1P+1$>n6tWaPvxeX#w-tw2~^+8XM6)p^W0c zq;4?aG#R$Gq8VudcETiG#Dgp_T?=D{I$9T7VaCYPQx4h~Zh{HdM;_t_~&VeNIzmRDt2)!d8UjC3p$0K3($bB*Z}Ig z<25~`PohTXc?^g^>s96#Xh{*RCTsEt_?L8u{!R-^+Yriis8=gv7(G&}w`4V!=bqC^ zFEj!q*r*r@?IE4xtxU)vY((`%R_}e<@oT$GCr1bXMv_kpsKpKw3^MZGp3;@L({Z_a z7DgM^bO8yjnSpAvxbE# zELYr+K;{BVSgYubEU#ojQ!_-m#k2~~Fv)(FblOkih*9e5d(J9bJhoP_;`*vOV& z6UN-)dP-Whw0l&Cv|oWMc{zBskhk3luw2p$4GL_ei32X-5RG&8P0|1s1MVZ9v4gNT z`^&jeq^24E06<|XB;~H>VTH>Y1hT#`7BGm~TyO2cz6z9|LU2y-*(@|P7`F{_#vITA zy$4(iY?UG))-MaFS(h%UmZrt#Z(!}Dl2hndAWL|)Kr>n0e-muEsTg-Vp%~3&BXb2v zN2AC<)IRf0Ae*)e6(5qziPJrn{{zh|Bf^iw{e?pxY2io9Q?X~o)(HE*jQ!gufWK|a zQyg;jNm9w*49CLP_9%=c9tFKJWKD(rgPXAOgZFu$W1(_-5E%@2H=IS8 z|3G)cBz{<{gWL^qoS!ZSJ|C~$;JS@CNXjnkPabB2GhDV1XYJ;YwVUChG-T~Evwar! zKBN9wzRV;^#JKoW*@ zizuV>x>cwq)nYoSmcTQ?IBoDEg6CjMA7zKoDxnfCaV*n+rXY#Uf+&oO)pg2Z5W`eO z%VblPxLQ7Hba1$9L-z}A}F0 znwlV795|(-VwjD|jy4dX|AoI5dCOR+_oYd>m#%bLj7qkQJCx*FBAaH@%t22iRO&W8 zRWq&93;{7pFo&R13FAI0P?E5L%92q?5b$YTO!@X2eTooF^ET)sgEa@=aFJ;Pk#7Og|!^z^6jCh5P?+74L~T|(QGS39xDrgb=?$a z9{Ot>QDkpY4;@eq_%aMou)R)m23S6`1ty+|2!SM-BV`bx83-8Tehf;wui%f|m0{CY zY-E*Lj^Ib+9EyW$3PfpaLe$`1J@G~knhj!PNVw7BQ|DLer6xj~%$e_%-ABc9YJ}+o z6?9%wPh>zi5ppy_Q**oo9TJ}l316;bF#(wzq$V#JYEPMaF`H8GRcwcpzM%HP0o+7F z_F@=0nZh!a-k~D$+(3;*(;Xv1&0%}AUStws#~wkwVwj(6@#AYTlB9NHaJ@T$2Xc7N zt7BGmDb}}3 zF`JMA3QMk**7P_{pqIEJ-BpI9$lD=L)mBx~B8X8glN$Tk`Ow@@1;F9Vw4Cea(1S`2 zwO8`2`rw@f*|Aa0bg#C|fu|_M%)g>ZP{9;Zw}X$s5DzY>O0bm`7T7x2009b%UhdSy zN{Ya*fv>z0PKxM~RXo^gLZx?Ot$xdiQjDE@Ty&2qgj!RIc{x`p2~>q|RmNfn4`TJf z$EaY7{9S^=KVjZAl2)_)p1|^Qo*hS4_5?OUk!R!lYc2)lwnq#2g#QqS{oj+=EfQJ7 z(_rgh^!LF0cd|QJt1RDntgp|6Zyjdw;q^lMb?&?KBsM;QZMV#|nqOdxo83G%ztPvp z{tvTT*)wURJ9z8PCmqp6g@ye~#fPMr=6#H4mO2 z(uBklxE&Uzi+iltjC#h@p_XRqnM|0knOZ+&l9NfOKFX_r5V04Q+{N$&<$mv3#Rzm( z0)tA_VCIf}&@_+LK6dn9Fj%@AId{GZr%$S~=^I>MnO{~Q=;LD8(2QAS(jIsMddMYY zXp|x`&F=h&d+Za4y!xf{fCar0#>_ zDf<+m8~g@4Jww49KP+f|gT0*Z6+SP-{D%92q$c)PG1#RX#CSwk!ex14sZm-R1r2e>;QJ1>{*C4 z!!WGV#g)py#m~M{G|6%_pTRv47`4_P9JkQGk%@@;UQhNfkuc%ak7N}G`D3MH1DHeL zfXKQ~B=io>-4W<$h@^D$JJ2SF^MVn@TEq))^eX4Eo&DH0snWB(*$a?PKm&Upalu-;5-(x-z^E<7)nBEedGs6MLnHY zge3BDP}t_%6_x!h|42(JrJ9>JDZTWY(9)TNmTsi<-?X#2lh}`y=I~C`Zh?Z$debr6`A!`Fu<=r&AKB{{4~6uZEILN_+jm5l*`A-zoX@ zHT**+B3MwduSa{m9%)HERF$JO^^H`yClVsMk~n03F_4rRLrIBB;{G$k>>=@cr0pPt z;*Qus-2EFNi1J(88| zboCgxNVwW~OmBPG`m6=b@I^T$ z2Sj??Uk!pO+=ET6d`G=}ok;`LAQGj*8J@fegE6fntwbR|fR_qw$)W&966GaKe` z^dN=9AI5z61@2wM?U`XzbNAjjtFb3$MvH!bdN3d6Ya?!;3-KB-6)lQkt$?JKm1!DKep#tQUooM5ROK3FOE^Y)FN$+`7#ztIf&Z30 zP>pH^!O)R;K=QkcyI0e#S$!ihTkMdawsJsp11TLG3O6IuMP+II-9X>v`~y)RVjqDdmfhnUGCWWJgw_hbA)yIyGL1V_ov* zq#}YIAwRrP>3iYLDuc}zjL9Cr`xGI@(S?$&^wE|x?^!4 z2L^Ke@Bs1J zr?J9+2k{za@*lh;Xkmh`X2W{$Q^~(ouu=QU7rUeHFRpK3+SOk1kH;@Bt?I{vchOpR zRG)PVcr&CQsdqb!SItA!YHBAqjz+&o$TayU93}g2jbQ8d4!-%?fy`BG;m9c{zs9%5 zY;_oGM^$h@Ski28g}+eNlJ^;P$Cnxu$g*)`H|yQ46smZWX+7W?iOLvub(vM?jEh&s zuPkmXtS_w*r-M&f2LtN?H%P3QcNh%ZPPSrRdXQ`z8~l=`9_yo#%8BHHe#=7_ z)eafl2U7ObQ`=OWWiOw9c-mj(CAq&w%^}Wf?avLAbXLi7l7s_^DN0l%pf5L|cPgM= zElQnWs!Zx&BzOxl60ePY=OhY*zmEf6PLZ8JIu+6y@ZywbG84bdXY=`dfv-}*KWuf0 ze86CqR#c=Q^#+x%!yy4mR#wz(rodk#i`=6 M`1c(Coh@Ga{}A+nvH$=8 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageColor.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageColor.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..622b438b4f69d300848a37f701cbcb023f43ef7e GIT binary patch literal 6395 zcmeHL-IpUp74Od1B$>?Y0_!fYi$nq4f!#5a$wy~IVOda7L}eAF2{P4vtCMCr-J!ZO zLxvee7X1D|#dCb{VfWF$!2iKNAy1y;i~BF=1O9GxCzFMP9FIQuVAo04ty{P5y>;tX zx2y8R+FI4X^N%w(>6_ma+D8pc8&^Ee9N%& zRH7Bs1u9d8sykjNgfSoNItzndlb-!LW*ciuacse5}MFH9nfnur9*n1j_8=aN8hJ6=m+#B zU8lED-liYYkLbtr6Z$FrjDAkPpkLCj=pFhs{f2(~hj;BF<*ykV@7_XejSX{Fe0n4X z@)jD#vo7=aDdM++-&OqLBySi;#tq}9acm^!jocAdJ8DsPJ7*sf8Q1NeHjp)MFFdMc8ovAQYS8klw6@SV_i3Fq z9_NnOuirx|ccVi2n}}yd7nbM}(+gitEk@=PV!Aw*P9xHHoHyvsa|UZ#*7YHMTKDaJ z3rlw`S$c4k!C{2l z&S8u!I16viExgIAkHee0;mz7{0p1io#G8fn_j~tW@aCQ+Z)kZ9mSdjLIw~1m)@#Wq zSf_iBjI&s$H%-FM**Jgr_iCM=t5LWwRZMRD0{T<*Q}`u6dIigVMg9KTNU z3rWdX7HJ(nc&qR}UI#o*Ww$t&Eel)ds4(vlHE{YD`|-mU`}D{L>PsI&_ctCq+`LWr zp=Ie0G$4QLJy;mvhv$XIGvY6g9X>XUgN4oh=3{+&c-eBsS=PA3f?mZ_N9L{$gZSkn zdKq4&%HP<3{P2lk{Gzk}(tn~~tB&_G)rS`Ji-o>rPyZFo@j5>V_rmBPoFic@UElMi z+NnRJHcrioL3AM1tgJCT660BZAd^|ukNq%CMCi&{QR8}60v}Gyatf@GNZjEp?}y2( zI8f1KY^Mt1X{>4p%&h1Ikx0}U)729&Zxm-mZOP8FE_0-%wb&mGbpg_UfA;E5|64Ke z-M`{W)xR!61X{xXQ?~QJI%8n$}gEHS_|~#v`;SYB7REvF_^C67r%>Ff)D+5B%d5U^~X8> zjH8v?%c%x`xT(M&El^0unMCde4gfbzDnjP)$mr*f^T&nb;t`H!XOMtw|#Y-jg- z2>a$z*i)$NBB@Lg;7;ewSZ77fllz?8bl%kJkbkBz7FT8+ewsf=5y?7|Bxlbw;Ueb> zWYIt-33~Xz^uA=P)qNo0!tVbL*#YjwyX~5>~4Kh2rd~la6A*%*F8aUzV2h8G6w4S{}`?KEM7)!9l$@ETgNuK0ICXLS50*hJ%=j~cn#0;JSK#6 zs0*Ue@bG}>qM}wRlXASa*Cv-ao@}|?)zDAMaa_tcdblN;j%

+D*|EATS-vViRqz zCq)AUn`kgW%}#Gig7Cbq*Je(q)oV*u2oXygC3mZ}&DPnbQ zv}T8#Zil-pCmYpncbul4vS+zkrq|nUx~!RHG)MM&oi6)qd5&wbaLd{zZL8_EP{3(4 zTuECXday*>AUtoY)nlU3aMFl%dR)NSl0C!~gwy0l3wy%jnKqjin3}_}2Z37+3UjRa z>Uh*m10@hn9%VJSfWWL$p9OhdIxk*9?()1&&*5cqsqMB|VT*&1SGcGVH>wzl5e z?ly=4uh)wX!MUFVk7bmcugG z9#YIPuh+sOubnxTElS6+WHSwdXlqwJuay!c;1~x}N@;25dq7*y0!Mh@v4;R}Ln8{- zJ<5yNvMVtHVKPO3P{U&P6QR+A+~+H=Aq=woyP>SW3xmbVNHvOBW!~NZ<(S7&5-Q z>~pJQH8nB`m4+X~Si6c{<`D-0=-qCy(H5pdYyxp=YU@Zt(n+HV-8u+JO&YY^))VZ( ziS6dbyLLqczAO2_Y}Z7X_^(dn!O%~nT@bHMgk9zLNZ@uL?V>oGC{&L02huJ%ehgtW z1L5x3>!?C^C`kmPD5P0ItE}>S-;eN}gP_9E&8|2T6-*DJi0q0hNG7SEI}|EWauQ3h zhY_;0fD<@iDG}J~s6w2=aJtjdIH0L8_Jcip#Z~?&jzYWOPDN;!NvOS4gelEiV`>lu zgwF?zY7zc`%_%vxD_Vr_4k@`e6nnnC%3S_5hl#M)xe*2azSMUNyQZla$cQ8xL2iGvw)UK%JJ9__uwh0 zcyFrpt&l&`no|Ej4&mXhYyV4;ZKf{$QBlNs}ph zQntpz8O>h!oq1PHx#{|6H1Ls*<2hwy8fz_(E$mv_n6GRtZDtFxp0;?Qb$D)TLuuAd zqzv@Jt!nwqr$XS5uod{7PPG_d4~F*29FQgK$_SG_J(A>4Moas&nsT(xT1rPsgEMQ5 zCknTFdp+%2;PO<~ULf<1j4|dv2U0IGnG--}j1-c*n6;5l;bI*sBiyT8CB?`F87ET} z0mbD};#$qbqz!-z1aEIfG=h=m^R1>^;cNNCLWMo&z(E-4yqgu)$ zxQ4AHF_W}8%dcDhiH9t*T-pfiko~bUV5dc i@<(xYp9J#rJRsi0O`v9$^W|~*{v58P|1TdEfqw#%iS=6m literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageDraw.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageDraw.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0be67b6a1ed2a3ddcd1b098c0f78b33d0bcfb273 GIT binary patch literal 11643 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 S`I;W!Y?viu(O$F`o&Nw*+^3iT literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageEnhance.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageEnhance.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..147ed1ad095b40898085c379bc77d142a7eb3012 GIT binary patch literal 3550 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageFont.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageFont.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..83e3ff044b7202e9deed2a10844db6dd32e9b206 GIT binary patch literal 18870 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 DnS}1u literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageGrab.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageGrab.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..95f9339550372933d8f96ad03feb265983d322b3 GIT binary patch literal 1667 zcmYk6&u<(x6vu7P&z;>((>DDj3L3Qtx)QAlt%Ot|)TSv>P-&wER5V&t&5oVTY~~lX zLz>m>rR{+e2M(M!NB#o-3yvIo<&=K`kivW3G^$7MJL6x^&wd}zYQG;5DF43tWB5}@ z$lq9bTO9bf52hptC!7|fqzR>jGwu{DVS-H@?(PQiBjIxIHGM^Gi@(d{JwYel#7~0i znr#c9ZD{9(Noe1lq+{Pv67e1ndFKsHx;*0DHzetCXNwH_M-&zwP~&Zs=~x^=g*+KB z$Z1YrlUAlahYaMx8k(o@$&fB zVCq*8O(v96h;vi3xx?8Z9kLmnG40O1mL9^swLcFy?6_rP$JWDnr-gAdr*-DhA%PL@ zyo)WARJV2SH31Lq%+uk#&%M@dJ?`_Mb$NJ&@XiX@CBmcogm(`E@ImA+;Ag2N3y*LD zy(c#2se7xb#z|jgQiv)`8@(sRl-+!3oM-E+#*yiM;;gPelbEq1EB_rIA0L4o56&1z z9VinvMXI-JS(;Fbvf0iHVS;j3Va2do880hpB}}CDMvbg9p_Fm6v?wG4r^c-tQ5mrKd6O7@^M?xl@ZCRJ211(hIX0mPue&UWs^-IIHcT9*&HL2b)EH90#@~JQ` zPj&h`kypX>Ki@pOH~dZssfG_SA%_o|W(|6Wk847GXE+E8vVed* z1XF*3obvG7J3NpXwLCzM;2t+q;`$Lw=5 zbADWVZYgRlKb!y??mR@gCLP}0b>z=F0)n7E^IC7-J7KE7;IH+zh>j*p^D~EJ=IiCw z*Jocd`6t|;esQimKMNqHE+@sxENp}Mg*KdDZ2d#kBV?H?mDkn4I9eV| z@5WFTeK){ooE3R9s#D41RK;I!K3b2PJVSN|xYWt2(?Gyw#px@Sz_$yZbSIr!r2u~3 zXdqr##O29VU*F3B$BP4-awC`%}3P?k~7qMQQ(40Wnap!5sm(IPI- zWA6&e1v@0Gr7(S@>2x0^%9RDN%7pPO@rKA4hqJs+dTaT}#)GG6f>pc`8&3xvc?rE< z#$jPrmnHn2l<^mvGQmlUyn=(?Ly1vtpdi8vc^|(%1i1^QZiAel?L?H>$7lWmbbxz- zJHQUWN3;j%FH<{vK%Wfy@?)62*!1avneIl})KWi^vX=5X3`io}`{JJ?FX9Y)lJ;Qj pN#gafPTvXB28^+q@QbqMdxiKC4_x8=9t-gn+K})z!sA3M{{sUtr^o;R literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageMath.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageMath.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..02e71b01b8dc33097bc271da393539887c8fbf0f GIT binary patch literal 8300 zcmb7JZ)hCH72nz2`=ireOR^<9jO9&TLlK zZJp7*9vF4gHkr0IzzuE&1-o!v3oTRgiYpcID%0psa!Pi|E7^tjwNQT#Eq0j~c=3*A z_r0R=5-;D;c-gCL73w@{ArNBLotd--Ghag_V`5&i_q34W9xLpccze&dbV`@M1d zzz1U=jPoi#j`oN6lY9#0L4JZyqkNb@#h*rbh@a%AP(H#>^D`(d{tSN><)i#Leir3n z{yd*S`51qJpF{aLf04h0@(BMDKacVWet};^d6d7*FQGifFY_xXtGtMzel;sQZ^WK( zL%x3Ix^Uyfazl$E$g`rneaebObkpYuDU0HPyMpJuG!jWojuFO!O1flFQFJs}Q*$u; z@_=HQ?$;5eX5s}4f`U$lP)_=B3q>41^i#(Ne^Tt%#53!NVCejZqV>93lRx9GX!}(GeYkc zoa?W9fE|`Ce*NS&AKN9zS@2gI@i7P_gsbTleSpzlQ6DwN*{HrgqPScN&(_Gz^ef?_ zwN|?PbIiS_c2{e{wYT-A!L^mLxRbKGdee*#H8B9VOs;Jjw+l`EZebJa&e~*JOiNA1 z*#w?jHYT(U{Wi}PHrd{E6zEYCi$?ASXU_Y_)yXG+J#P&!j`#q#(evCS=VO<6|b~(qX#ih5Z_} zQMsYF+KR0A(xJs1MzSIRS&1(t#Jq5UP%)3HXEsmpGT_D3^2s+O96=2n3$?V1A zbKP4k`~HCf++lH!Oq&q>sC?jdQS{|Yc-!Rr@4FTHR-t!w$N3>TZ100(N_@5XyV|V! z8sA=R;C$b>@9IsvMu-6VkpivyS~7RVRif(xI_d&f?ivLAi2~f=>+X;hi}gr!0bF#P zNI1@q71(=knfPoZUN7ce>dsua8DC(I^HT*@b+csdimMoFtafEBa3Sb8pYDJwnY-dD z!~05i_R{dmzJI0wcMNZL$cn|qAX)MkkW$LuC?62hm{GZ`kc&Z9OttgK#A8AXwc0#!_ok& z=5KcZC0=i!U0NEzn&0gN+N-6DU0S*bYkt22DDir-bg@fI7h%mGb^-+tp9!vMDLmw*8R|q?o>~z4IA~asLljaxmrSmyulKY!ms({Ckd)hR7mPQX@~PQtAV9 zdzc!w%peQ0L7CL0Ljk;;q<=(H>%BxcsP~2|^ORlU4sYSg1B5>-$R852%uAp`Wf7N5 z22gI2(jJt3K)MiV{qN9WhdC=|!I9Zg*tr+=E|xMy1&`wQFL$Ug-xPwNQ0&5RWz3NY`&805iCM^M}2y7hiQgT6hu_iVYhl_vkEg1vzH7c?F0iXzvJyLM8W zmWN~&B$dfFq>~M#vY`+|;ukffxtX>)ol?8mI=DMDr{6Yj7t%tr!0F`SI8G0cG;JD9 z6UTMOugh}+M6j`mqz% zPdSe9R%78Mi64d26)7_lyTYwoTkSK}1)R_bI;epcQWwW5sJhmhYw1!Ho=DQQz*EGh z)n1}FMbF8MB~KR;D~&9qfT%!b%JOn`AR&A9R?}(AdOvE&9!OvHSHlUC=Tkzo>0=A(b;7wp5?S+56bD~n>MeR=3QEhxiu@NxXtl@z zo>bqpVt>^Oth5ma-c)B-+>54cEM?+ejqn^ z5uzdMzgnl0Et!j_Ex)BJ-WN*mUViK18`mz&bE>Qu$x+CsHElZLLn5>S3t9k0jR-9i zf@Z8(BC-O4lYk(a$1sV2ni3+?DzZSaO4=tkyYjjGo#iFkN0KR!5oG6enTdy;x{2L- Vw%R0HdkZv5 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 K+gkjg!T$${XenC& literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageOps.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageOps.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f979009a1f8ea6d266a7b3c4120ad38c2c47d656 GIT binary patch literal 14403 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImagePalette.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImagePalette.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5c9343eb37e3fd33805e39ed695935c078ac8561 GIT binary patch literal 5500 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageQt.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageQt.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b7a3d60fca2095d3e06681177434cd46f651b85f GIT binary patch literal 4693 zcmb7H%WoUU8QCDN){=7S(+wUfRcc)2q-> z)f$$yhLbPQ@bZ7taL-6j+J-nKURgCCl(CW>X3%d_{?tg#`>;$HEEpT|p23fY0e8X* zKgTEeiBDMgDxc!hpBUk3{t`cl{5AeEKZX2t{t6F}pAiA{{o$6uU*)G^PZni6f%oD=}fSYh$s_5uiKIl7lG;o zdMN=E4_7hMq|c#;aue@$yjcxNA7Gv`l(EhpxcG2$Ug|G5b1U1w(zLJt=51~`g> zf(iPpZ}zQSo3pD18DVGk{9LMpOrxY8EcIlXVK;(1x2^@vP6D&WDU2KiiwgC2H&XFR zBA#@KmXI@v1>IkN^z}y;kRoZKx}7tbvsTVlau#U|7D*MIxg}dGdQG%DhAm%0dbn$( z%g3t)9-*L&U1PxdY>z2(-P#8c^^HAy-;n2#JAKBPcE`%FW>QVL7-Mc9?VEcZM*8~( zjf2CTwGCBzP?p$v`cc0s7ZSUSWD3_q%gBDwU*URARo#Q(_8ClO?_}iw&y{W@qjnIt zuLQFJb~w;G6?9hCMN_>=kOY2XSSyX%LXSA#iXVzJ5V2Yl=*@sxwbn_4OvyNH6(b1G zhYea)U5^c|ZrXxNcH5Hnv|f|r$a1^W6{$RqVpzH(B7RTCN`#|pQ8t@&*P`odQJRV* zx3dU{a%qIKNg}z;f#1BewA~dqrR+#Jfs(n?Ogb4lGa(*G+8#jAjN7@pqOm5Y(DeLv zmRDt`y%7_6{0Q9{4iwCHaHsv|=9`5!tK1$n85Zxs!vw2{N zWRaag_WZ0Pde*M?29EwrgNe!WC^rd2^o-#3@Mw znAYazuDNUuoPpbS`mX#IXQ|2UNn_yky%B>u6UM;r``His@SBz~C~du?07+VI-k%kC>eDpcX|8}oR>Q?N?Rhg5|QR^)CHb+Zm)OZv_6tMD@6OiOw4g0*bou8<8_UnF7muuh8&kFEBSq@l-YA>B9$R*&KoC~rI~U3*TjDz=o28r_I<2#01mCeP9q?^*i@es;})k=B&`bX_?F0Qs(R!8F*~0miQT+(IA{ zs?vISU_D~#v~IJ}_Di&l3@pIM+&Zl)+|jU^7}#KWaePiHkeE|)g8tX#~_jfG-@YJCuhct12QbX^v0(4(M<7ZkU0wn|pE;JpX@NC~4 zFz7!zu+mibS9JgC_SjION)i}-1^jtT2P?}%1~vA^_l;$H;10ZjKPbTt$9bji_r1Q` zFRj`bH{?|4pMd_Fn&dT_V*+;j7`*<7bswn{G|xWSZi;(T+J?IpoT&^~f~)e;&uwtR z*nIA)&IfAs@{ZF}t8ZPFZ(#rAH;_CATO0CCsuDduCI-kY9Ah|bqRr60cI(dl+(vy? zmuGjTdTCaKB@}BAc?E>-;Eb%>G9W#~I=PFOr5&lftWQG~;qudbDlXk+PKg=G0BQPL|2 zUpoVsKHd@ak%D3ant7IztCUHGLkG8U0+e*Vu_+$%nrNtb(79*JNXm9)kz_X3achN;+kl zr0n1!>c5INqa#rmA-p&=iRuyLTHK;DJNNYIyr`P`oPZo{(P5x*9~HPg+hqe2a6_2b zHyU7f&E*If(FO)zx4DI$gR-s5&Xlq5P$Mn74@;g= zMGOAl!jze3#y#;N?U4FpDquwbo3Fci8^c;-xGzH_k(1!^% z`Qw3ZgULmd4|Nlm3CPz;fNm3DP@G*jFUA2xcmSP9MUVo9w-9h3$^|5?dHH=v%O4=A zJDQ(zZy0^(8RRkage8hNw6*GHVQ;rs&{I~>A$Tkl1LO$W=F@TvP3n1Gm;c7WZ}q@yI2-h?#k-0WqiwoMW-07t%ZWr7fj^cab z3|^q`lY;B>K!?LRz}4KX9Y{m1*fFy6Q~Pp=PFyz&)4W4_nk^xzz!ivGeG8!yer4N+ sgZK#3O{C+rtV!Sg7Y<@_WB>pF literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageSequence.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageSequence.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..825b981860f3d4003a57d1dad38167d3b201abc4 GIT binary patch literal 1529 zcmZ`(&2HQ_5GEygSC+kQo92*PhyXooP`fQ!AjKjG?B=I15Ns1T0UB2Ymlo-)Y)Mo| zZsIleWamMWW1pa}Qs|mfULn17hT7fOK|_JVpBc{2H#7RB*GmYDf6x9-|A`2Bhlj<0 zGueh|uLAj%NFwQLn2MZ-`&0&dq#tI$S&jg9+c53VKokKPvL8sgAId<6ugQKSBe??W zitNZPtQ{H4Ram<+k!!HVavgN`nt0bKBb+v3lM<3J7*EEzWmzGtWqDZ_s#KM;OjInN zi!yz1q%z0cSU8pe<3O>ARgyW)3ax9eMZZ+WKPts@#jJWUQB|h463=|5C;lP40xgP- zMt}S{8ZlkBzMvwJWePk{3;PFCmRC}pY_Lj-gLiCyrjVKpR4r&1>z+k|3Ab1}~8~K)(%`gWza1CMJ zg=ud9ab!j%JrC>^2e~_^XLLqqghOV4hLQmC(XffEQpcy)@{*Mk>)2SlM4Z$yE0r5- z`5qL3T+QG2`AErIuk|uM3r?~=k;b@Stp8OQ*im?4?krUTo#3Xl|I^inC@cKdyC}N z(nUN#%25@;xDZ%|7iHHl1 z6LXUi{9JfOpOGr~9eM%qqQidVV>5_$6W{;sL5o82G0XkHpb-G(#K+$f?73!*^XJMz z0hgSA0~gkJA`R#|c)meTuU_zdDVRY=_<<`=_wtaZs7=u>a?Q;P@`^b6*C1fE$Hkd;eU4kqazDK9~D<5$)UAQpo zK$_m3({&p)md|H{fc}7Ne+N%2z9WFy27Dg1iy3d_E`@_Zd&n@Z8F@qA&NE5P*KqS0 zn-OZd1^fkQy=88YGwiQo5mwNroHq&QrIwQd_v@U$n22J|>2fZ0#<^JoRptvMUm`)v z27j^_5{AuUup$fsh7vy3IEjL|6L;e(L#r2XvAD04SAZ Ay8r+H literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageShow.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageShow.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cd9749d0305fc7d2d8a4a00f27d8de33811c6a20 GIT binary patch literal 6097 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 CJ{f@k literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageStat.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageStat.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b3d1dba8a52d02f7ccdc861fdbf8e14796d2c93 GIT binary patch literal 3718 zcmbVOU31&U72O3u3Zy7mmR;+^u8X>=Y9_JLDr(a4cszFO)Xhw+@kD9kaF{_?Tu_1p zg4ANE$Q<&;bf5YstjGR>{ujLVNq-@IXwO}ckVvcbOn|}NUF}gPX|ln=kO1Ege~S!)lH!${Cae>B+)wPEAob1LOEylv64DFTIlTtElwAeE}kcNk_hIN*SFO5 zK7Y&l)+z5ZpT}itoieI_%i>jsY3s18?sGI+#A#ty z#4@Scsgndzvo>ee^4rQclbn`F4*$Uv6u^Fb{^WlB&q<(?`r}5R>W@2}r$USRSM7#~ z>fZ#dPQ4R$?wMty=$`Q9C%@Zj#CRD+?H}qdzWl2GB>^GQH#)CU*Z0FX)V}`<;(HN> zaf>^A-kRt0yn@^1y*V>_JhEZYC|u+!QlW9xA5iIY2}=KFtw3*wmRi<$V<-o~((dym zHnfIpU}>vQZnB0p++~p(dpDnmsL_pt4!l;FfVMqPjLFud!E}jbSEsPN6gBtL!xoGJbJO<=b zR0!f5HsE^za6u{RiTQgxJ}pT{Xb zNqIO;Z4m=8>@!SC=3yAr1N}fZW!RpVF$-dY6Rm=l*mw|;R+EPt*~Igux3Ltht!Bv- zVA7)Kbb?r-gPf~Kq-u%GZ88)P6HY!~WeZ)IlWn);@MV50ck=n5oK*r&D;p>O5fwO> zpF9AgJa;bC3U1d27Lt#xowo&DJfJi}yjs#)V&vviq$s#~nHZ*Y(z{D;)@>~!FYdN> z1Ld`wUMD;WqJ$i5yd8;GfjXz5>Q1qsJnSefHM?;`x7$&Y7F8g-$SH2S6DXmPX>1|o zC<6XBKP8HRM!Os9FYv*HvMjTSn|0os&)sAOI&%KC(w092^{Q9#af{mwS~T%Ivh;h z)~5OmCQcLQj)>cQ`7U#Jh`G_}k*c5a(E%Tg%f3U85A zSJ+KvsHlwMi}%)v3UQ1uz~OA-%8P>IAUe;b#^+E-1xsX+WCKfDFgky4%oud707p2c z=OI(!w=d!{{o@0Jq9w<5Fvj)Q5w5>L2AuNq0WvVoN&J9728f*NY*0WBM{ShDi-;XU zUFa7na+VM`6itVY+Iqo`woC*${o({4PVd*mM=Ow_i2n~AS+c1TBjg5X!LYMIFN`WE z>@y|IOa)QOlbW+HqGrl>FV#bt^pNe~5MN1dz)+g0j827lzKFA-NXod9$5b|cLK}Hl z(VvCU#>R-lwM-kD4q0{p_KZFXV|`38!h1J}k*}ZcOe>;zK@s@F()-Z(kRQFMZzXepHRWN;h`9k$~sjALjXmQbIN zp+A7s#$Mj*N2Az8OMLt9m~_FFs~0tzji~bN>OB26$D$SZep>eZR$F!>s#km;Njb`T z)K%KWGMQhJStoOs%tvHCCPQgY{hrLHWJu{3C^zKO@2jGO{c}7fm|Uw|aZB!1*L7!c zyY3Y{B{Qa4%&@P~q&qNavAuf`G_>ih6`w`zT@hWjMCv}sU_7K98wy;6scSF%@L%b$ BA3Xp7 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageTk.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageTk.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..752813a75bf325ac1a1e2c0a83ac5f0450ab2ca7 GIT binary patch literal 7692 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageTransform.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageTransform.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5c56870269f57294ced4e5f8be6d3f6a5cb9c671 GIT binary patch literal 3473 zcmbtXO>Y}T7~b`F(nL+asKf!y0f|^RQA;a?B7_>+lt#1>C8-3FrOkL}Y;U^WU1nx$ zJ4z9Pp7{-M>5iV_di6 zD#i`5fboJI*Dzib7cjnH$91u^>ok}Da>1zSPO94j-jhBC#aBY_4vKysm2~!9;p~@$ zD@re%{jw;F3R*}YYG|vX4r-0b!k*%h?#621({cK!rE(WVljg_nvExBG9B_BQx+1vY z&C;ZzW!P0@f!`ceL-WtqcQ@Kkv{bsi=}Xn#Op<%p+I|@OJZ$gDLDEiwWG#ra;bFMO zJ#p*iZ9l?f7{`a{TEJ#2@F__ZLehB`MH7FgwB#OLnaNoY-)Yv!lo20D&zmfI-XIofNc|%XK{X4;{j#haR`+Xyd{LfU z-0XIPNEY()U3hMh;kzekf$@lOyMFr zti#5r{gx#p?3A=q5I>hWh~}uPIE{o9%)~5`TuE&*vCcG+4~uprOLcZY1DP<4)iC4+ zT@@SK@<=e<2R)KL(@6!rAmU-BRZe|ZO16=VHwaN12j2t3>lVX#U6}45^Vdeg6(8hw z++drpa#il6AnMKh#HK#75>cT1pRer3on~EKL?EgasxG0L)ICqczUL{*75lZ#`}enZ zwlb92P@h#c=r3azL$N4ptW;b@Gj9^|TO%VQvo}RO|NC^v&w`v>Do3!PZxGcw?I_u! zIG^flF_Ams5l<-emGljddKCP^LP)UA*jmkxRfN>s%uZ9}=a7m|9E-cwVzk~1o*_yp z8?CcFj1gLCXviPg$szJ~0VPV7O!EP7Co&ctX@*ip1-V>+78C(;OrIM7=LV2-I86s8e7gY`{q#eQ>Ea~929IDJzQD zu#g~GD0b6zfnId~nL-j}p8u)?oF`hD% zRAQA~r2!!RED(5hWieKq(r<-w%E5&45PXU4D#5;GSu~k_5`jMX@|6IrJlfiQaK4%8 zLHBK8<_646GduX1$N_xKJ^%{)JwQx^QrRb>y)-Rct#9nfv)-7K#;4i)^fS7!?O(`J O`SSA0)s<^2EB^s>RhCu& literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageWin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/ImageWin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..69e621004d64e1c53cb71cce7e9b411619588e2d GIT binary patch literal 8026 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/IptcImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/IptcImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..121359c968a013096fb58420d4616c1571d0aa6d GIT binary patch literal 4339 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/Jpeg2KImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/Jpeg2KImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3fb280397c8aa0dea8d5804ada6119715997f062 GIT binary patch literal 5611 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 C!$Y9} literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/MicImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/MicImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e77f19b7bcaf2b123b1d1dc97fa78f6d314cf38f GIT binary patch literal 2297 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 X52((`iNq>z*tX@`uDjA{iI(^;Baczo literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/MspImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/MspImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cd191f5c39f4c6115313356f94a9f71d6d32c2e0 GIT binary patch literal 3108 zcmZuz&2JmW6`z^?;BrYy6fG-`q8iMHim*u37)jHjP=nZ3KMdHiP`gmFV6j+nhVn|} zlA2vw6tN5nE4}p8KcEMxr}Q6aFFEy;W6ygkkQ4g{^w1vK-y2%80-MCVnfK<+o0+%o z_uky8)qIBEf1mxWEmj!&mY9p5gTbe0=~p0h1SekftiByMeK#oey}*Oa zl6J2gluhpkzI1|$bY%%ID*C)NiWw>q?re$-oNchS;1NN#Tbd+|E%eCT2iYkOux-V!Nw zTT$}B4DQFtqrb2gFWjM4-FU3am^I`-zrOp^_HR<9)AsF-((T*B;Z~GI?fZjH)N4Oh z{b73;58scIG>dw@_oGmLc_`Wfa*OK49^|dUdhlpxQrnFa zIXF(6J5iiumoB1fm(Yxh{((Wx4%iu&{G3mDjy?y?R``khQj`;5X)NE-sjNrk`=jdMb0kdlEE8`+p{L_r9F^Wedozy zGRT@y(u9|qUHD6rKW60aNqsMpM&5a%I)~|~U+`Nq7c-aPQdl}VZV9u-kd~#FpfDFu z0O|#hR=E(}VPR_($)fV;B*~)j&$S-t!qHKJ;Icjn8akP- zfqa0LlJh)ab6XhMt0Vjdl)f9`(n56GlG1`x_&EHQ>cCg}amT;~`h*wS&jj-C;P?z- ze2(x#$RS7$tOHvLgpIYzmJyg!>*OOyoikV3=bW>wbmmFN=#^Ip1kRa1=cK#L&iT2R z+Pf^dX+!g%a_DQ#kzTN_IuGd2St34T<9}zh91sB@{?!&!XX>7Oox9RQ=>91eXA8MS zdmVrA+`bEtm9oVgkjP!YYUOlXc9lnj2I|8xfGd=2LMP-x>qt0R2)q{TEoRF5jjuRD*GJr4LdpJjaStX;s(lAyy$2vx5 z^;Dt>A%UN&ER50+$))i2RrWOMjZ~|uDfbud-l*GE8aboCANYH{C^-y!aiRhjeuLWz zJ~l&GLwXt5aUabjVDD|D5t5i3+p#dBpUE-kO)B^&27nvt1psyCJt=h9wgQwvGLIpv`4DHjYC%-SSc0!8X*3yeJ@DR1JjWB7{UtCxJu@C#Q~EE-82 z8rIYvFXvPzt5YYpa|d&CL6Ds*#>6$nVmT~PD6k^`f8VD?pY~ksDur9 zjZT9kwk)qxjiYCjsc|dYrsz!G=tK!sGZRitswU0#v>ByT!wi^aggW!Y*osV-JTP!E zXq=G)fdW&t3?a? zc*AMhnkrxPRJGhd#C^R?5|1(h6`sO!7XS9^&neh37<%?Am zzB>L51fx&EY5BZiY0{n88~t?HS}B;O3Nqin6z;`Iq)#-xisr{Om#087xYSg`^bbIa zN*F%HD-cyL49#QB)U%+xbMm}2nZOL{TJ6VarZnoLsaR(Bpmr&yiml&)#Va!MLeRKW tQR7S{w9}PK8*CV~dYkh?{Rx%)lzdy~%T(=cyX1L|wZ_A0$-7CY{Xdp$$s+&& literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PSDraw.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PSDraw.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3e80ef641996af91c9d86621839b65da875708dd GIT binary patch literal 5816 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PalmImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PalmImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c80169c7634e2b2d3b7229a064c0b171daefb64d GIT binary patch literal 7073 zcmeI1%a0sa6~^n;kLkyB&v@Q(!eGE;1a@LM3Q=r1@hicSu}2w)h|-`|&D`p7$NfrG zjb}WnMp4EK!~%H>V&U0Df)zqYEZFb|@E4TCiVd@2!4f3koUiNNK0PehvS6YvA^yicF_M--H$?5@?beY@xQj?H7I>-Id~ z>lOSWja|Q_Jin|8s`%XUXTq6d%de=CDytb)`GxCORh8z{RGspgnpF*|s)zQ=S=9{d zC)APhhH9$0Ja1Ay&$&9cWo;~++O!iJPFA?r3--cn245d^x*;)V@J?13TzPvZJaVsG ze)DyUYB$`|f6CfOO1E*XIWS zR5<9ShH4-k!$#>CfOHH%I%fJ|5xOZT2MwfS*a#I_AssU-*JqH~$ti$Fxu>Ww^GFuC zbPPZ`W~#Mg0Mao4sN@y`n6fDqSs@)mwRFr(*Ny=|CHDis&?yyJAssUd)drcPI0c}R zJBA9VNMIU~EOP0X*{B@@kd6UBCHDgWDiWA^Q!27TI%cZ1V-uC!kBN!|rff66ZYLQFF0HkB4S~~^+ z71={Nh6+=r_f$HDjnXjy>6n?W9m90#7=UR+DgX%i@=dNC1CWjZNXG!AV*qCFrd0Cf zqe40c02Nsw9h;~y)lJQkH9(oHkd94MWCc`mfNJR&fOHH1jW{D&024Hjj$tEIvIeMDzXA9a&gkJiHfW+jkGM*A}gSh18kIz0Z7LHq+K;XxmqcaBrzhW@21A*UjeohAhf8u;W2LgZP zd{GAif8cyc2LhjSjsKa zHig7`X)9YfiIcd;cH22|MpkOQ^pZkS9J6El*gmoOozBQUTu9tI)(>kVC$&@OJJ!hl z?5$6%)K;D&Ya>EO*wLCbLRHLgUs!Q z{cO3l8FYK^-0CE^2i-x`3x?khy8B`5mxlX^3X&l6x}7-53Q^GC3;hbwVbBeeB;0Vb zLWkcB`PH0oxnJLveWF#8L-_mF?RU37j>9P4zPTGl+c$^9J5;}Yf3O>Lw;zSQ;r6gI zywvH(Nzm#wmA7{L1iRhA!S?38``f&ycnP)H-QVleQg4M$ zm(;sKam8vo{NnF9oeU%DpIR+T%_Ow-*j~0shc%uXjSLzdb3$L2tF(f@sTveLRVUTiq@ZSb+mdx`f5E40@q|uAA|+K{wMIo`E@h>poEB9h_13VW zWow+jLi1E}!5WpR-%K*2=BTzpc@>J}&bnZHgs! zmA=dQca^{S@n39L9V(mmPGdIJ>4o#zqfe}4{^hxpZ)I!h6>`2r9@kShEi1R}w!J<3#I>ztfwrGNc3!yA z+oZY3XN%(7+pBbY+dRcD3BJcgD-<$!XE>y1D1%eJwVm=SbaVOfWyqf``o#Q$B6V2) zJ!^#<+7EDNqHEYb%nI@2PCLnpz2NX^(4E}3qOa1ltbDy2^mbHmtUEx3ep56hv0#f_^=^b#Q4XTU2#lhS#Asl_1*w5($&CI?+ zuiLNP!_R=D^K`T650dqRsFQ^2y@3kXzY(to@jBlpPw~^|o80kh6#nBD*Kx?GtT<@5 z<1jhpU5sAmutp(sKl<>N?@_p!xlwSi;Y@zfWQBHjKYqNilzFV^SHu1;eMg;sd*By_ zgHAum+&GCck4aX#_wa5M4QSXM1S<35&QX}TTr}Uh{qTF6AKl&By7%xw>(LK3?`~zq z)(7`*ez--?p7A5bFYSeR2>BICa+npc;LPKHeu(&RM_=KnsT4eV zcom%rJ-TKK70S;$MS7GKoeMNt%kzqhDsR>+dsOMHQ(f8d>=mk{%${{Tr$*JDbJ3oi z{71Fp5%qO0*lVQ0->*@(b*hheUwn_xrK7@S^1gRe!Nc_p&L3>dWfp!*jD0V)b~^na zdNw{D1)3V&ppaEtt=!sHD|(gj1#Y{@ZRL*+Jl3P@TyTv8#OqPGN54J72nW@lH^cBS z3HyA!{7Ff#(+h>2xQy~km%QKahBx>*9KS}PX*WI3^=_A|#j;~NcG*L$l!rB^=KLE% C`#Zn@ literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PcdImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PcdImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b84f2fe0aa616bd8cdbbd78963d6896e33dad9a1 GIT binary patch literal 1212 zcmZuw&2Ah;5bo~jnH}4^j#&~SBOz8ImpQ~rL=F)`k&`t<5s|fW2#3~4tzoOz^m_i% zGbZuMxx~qZr?4+bJOS_0S5Es1a4=P~*a(SU)z?)$^~1%Jy=F)oM?VjC+z3f#RGBcJhiyp{MR+-7GSqFwe@09xtrR6y@YxE~-U zsoX?4LK$FFH~1wtiBDGA6`KJ&a$ z8r<0;;Hr(e1e>h^C|;vN_dD;g9BuYN0{#7)_)Sb(%MgYKGwR-3Zu1O*BYCD zj04fWul1|rEdS?AG^<>ZwSKs|HJE1VY)$=lw=ss>Cipj(j-!NJi10a5gZsu}A-NRs z&F*y}cW`a?aZQ+`zoMfa`JVpKmYF+Qt;dGeKjTO-jMklz8aQ)ko7T9l$L=$BG75x`HHkq^Fd-O6AC_%ZY)ME;DV`E+jkagyvG>b8 zV=Sp=s!~ys%3qM;z(G24=D;<@DF;p*I81S%ij&S_jLEX z_j|v7tNCKlQSkZ4N59=FRuttg)aic=G-gr4&mp+NSyOQpu5zu(TB@tIG*@HP*PD9F zaE+GfS}ohnwH!C!D!4_A8E%QI?g%&CGPm4OZo6YV=U(8BJI?d&MP6_xc+s8YB|h@8 z!pl;QN;yVyM|Ugy0w4caai{Jo{34>O;LxtQ~0XCC=8B>f|xbrYs*b$f}weOD%85 zPwhLMc629b`c)%UgSS&7n7PsPQN4LxRx>xYv);BJutvRmtm5%worF!IOk$eEEQt?E zDA=M-+t7z{I3@;UdWSH znYc*W!O_J8b!qMIpvay6w@toA&&y5z`4u*){(qai+utPk+gI4+>R=OcDSfCmQKWn6 z-D4$Yv2q9}$LvV`M4cj&smp(rcz}bApw0bV0FZ?#>zp!Is)qa5ut+GEXW~_~>nMW{ z>1RKrfOSR-kE2py^3 z_F8^jZjIIHWpXI;&93735#H>OadyNGSfa*iq(0Hal?YoOu#Z@zKh_V8SUF719n^a*=(YpSj!mh{ik+Ai@3te0XZvm^x!8_#Q%d5*4p*M!#22v{J5$P*o#c~3QcOz8NK#Hlld*V& z>kTz7#-nkeqQv>QIH|;=4KlBeUZJ7K7CqU}lMC?$oU9b*aI!Bp!G18Tu`Kd1-F~Uv ziKe~j)rC9L4RDMYg;Ed_V0x|j=Jiw;zQ@xXCe$9x-CbHp^Xq%<$lF~Mq9X*+OlsF^ zK|6?QwN#5b_0$kv8@#19x@o!A?0CG^6`igxqQDPRJ!m&NX))8c{73}#u-^r-w7hPZ zmaUgS$ezPIIOM4pN#sGWOJI~rt%7Rpn_PTy*^_R5zi`j!^ z)cPY3=x)mJx0kYJ%0$YZr_4(kPgz6E(5s&!2O@?ap@h^>)Dp9qtrk$5tc34%)l?nT zW)8CrImRmNb+$h~gxPC-;|ySHVpp7Rt;_a zC9FA{Rm6N`M5YQrC05&stVqk+u@S3)jMdO(P)jFQZ9&|V84fn|pNQ9}|4oQg+n%`r z0Z(hqnH!jTU1}q5Cp8-#(efggJ=phCv(spVaF{f|hD#{ba0Q(*SnAYv{3v_wAr=aW zpB1&Nn#@s4uv7u|+MhUKpTPqI@-5<-L16y@oj^$>Wkm?>Ej_amStwQy!7Vb}%^fAN zc5g*mY|0S6p4hQZ}cnx1(BJ&L#mEg zMmsH0sI9K8tS+u?EG@1}FA1Xc)bzStzs&{ZGU7IA)S#2v>x+x;)fV1glU!UaN(Z{m z%b1fM6HD~aeG(5KT(eCRK=57h16oPvxU^IDM9`gsNaPKJw7&w`bLHU{t0}jf81J83Zd#r*rH3B_XpQz%?-Cx1U zI-H?%IPL&nIN;O7lI{ijk&YV`FzXpj?u^DcqsgDq6yQ=D>lKMtCzYgx04v5NV(J)f zjtksu*arlmo104em%E?id;~R}TZ8j`2)-XWGr&3A%bn;sCwlo4y~2s!$bUOoJkmSa zpL(#fmjmSmKp=UZ%%1^}oFQpHBMdWxVqUWT;>Oz2!n#vQ;gD;4hslelyS&>vtbWPvBzO3y}oyBSI`WSHaD_EXVVhPfB zGLWjcxRo9gfvpn*@B}~yOk~Ai;}{@B^6_@0XUPY^ZSTGYXju}j6}spTPdq0%=*}jE zfkQKS25g$?oHMfvhav!Gl>`9cI_d(zSU~Dflq(l$Jvvp4R#HN0Lt`V{NXlTQ-*Yo5 z?>-uwXA8S9N<5HgAh}2`B;(1&WFnbNDp^88l3SC?6!OVrD!D`q8QF(9ZXy90Ln2a& zr{YVLOmaIe$0PCR0XssPgP`~$PO5_Oa=nyea#M8LJJaoFt!-aScN){Zt6GquB^B;# zGe2HS*^InIR{KJjK^%_{Twzje< zH0a!1Lv&i(djM4Rl_BI3h|YtrYq$GZgq2->p(IN;pQ+aY*3h-l=?Lx%*Y0}ASCBiq zPVYHP5F2zF4MVBk>R{SU+U+MKZjq4b{VcWSNX(NUw54o2W&UXz{vJktgA%?4(W7Ct zfSiP=xRObYaunnwGBeRZ$~y9u3Y$Rd>baor9d^LXXRcqa>>#TiKcAn8$5ftOszdEw zIx?h@%+;HTQ5%pO8UOlu5!47o7%g;~uGRFihAmZVo#&Z~8o72qNzL$8>UUSN zly`- z&zjUO)M`(kdChD@d;?nu%6_F~WF8=heg#2M&{2jkDi11uRev1=MEqe10`OGrX}fG+ zwy)W52pU5G{uEWJ$jHooM_9G(pzVphEWx4Qtl};S`u{_gu~O7Ks%I zw@hA}TUc1UzqmHHv9h)If`y>V|nn{xO5!_|AW z<+%ro>+X0T1t-?@Xw6qi(0iQs^7s!%X3Sgkzk!f)Z5tlBjI2q9BZXxDtC{#If#g`X Gt$zc|$ubWB literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PcxImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PcxImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd860f924c91ec5dbff889cf54d337419161e6c6 GIT binary patch literal 3561 zcmai1-ESMm5#Qb0`{0qHD2k#!YCEiB1!Zc>ahp1U?52`z#WkWTgx$vJLB-+3J;^7L zM`rI7QN*z*%=ESJQy+|?5MK)PFKCfJBoFu6CqB0ig-`QDVxCeuV;VRS(+o{Z`e5dbYRw?M1KV$h@dUvWHoiDU_xuLw&rMU?(nwm=#+qr zw~V&wm~G3+wQa|4=bZv2K0TfCizDhx3*9LRLzrI?XXXJBmdJfYM9$|2e5g5PVT-&d zh$&J019xV{v?xKpim#o{`Q?MEU-oB48jPl$&Z~B1#8hhmTViI?T2!qvwgi1l>a%0; zo@|dP(7KlD58K|ppXOBcanSP9f?^w9%a3Ef&QlhAnCii;+n{0{U^~e6wf9zTH*pO7 zu-2g5gA&z%#3X^)7ReCea>zPYR9jPRerSLf`nE))F-BW5Aa$MzkRRh%V+?nlN<&qt z(UtyQ(EBry(;#^H=-%qiFCt$?JL^qf?yPsa_r2KL+3GaC*3QrUc6X;6bZ-P<6nm}K z4bK%ny!C!F1YxVyIo@eJ+}de0d)Y!;NBcpz(mhE{*K0QYZu~u%AVNO~l`}w_$ew*D zUxN}|0^$?cc;YZY9ZfKY3r%p?B3mgG06m6upeY_~fai*zQoOEaDh}De zi1kxLOeb2x6Fo6TaO#z=H1TX^$o3el#}ehcB;mq1Wbz-0p4DQOlYu#~p3`t6(>!rgJ%n3@waS|j9^qZ50+M5MD*vh02@wNHDUvPn&gCC zAsF!qr_B@eDV|AkU2e1v_cBz*6D zT`TA7!r0hqg)3qnV)NF(3az*-YPgGu2@#pSxaSMF_vbslKyWAAiuf+fGdE8LEXI9b z##XlT;_U?YikwzQB(ZQmD`2z7_bJ%T3j&Awo$c{&;HdVCVJEJ6H8|3>JviKB4#F{B z)v*Oc-Ds)qb{?B})nx%lzr5=SWfdUo)S{s8znt0F==4@=%hCDYcpdtVH_+e)PVpsN z^q>=h{(5aUh_U1KTDRqee#S6Z>y10hVk^}i zJ=hqRu=5%aIi<8)!K;72dKFNBpD|)uUx!|Iw)&-`@G$HghsyDGNBA(PS`w0%d0Yg# z-&>ASt=sGYXw8EHs%uy+q-?L7a_M_Q!AY8bd=kc9Z&S*SOf^8()M$0~_kEe_!rwjG zSCE(TAl&On1i@63-mznLGek~#e35g6x@K+eE4ZL zK1Y93-9;zCRMFUPwHzM9zSV6UuCoE7Et- z26|O#5#*d2n#BxymD#k!`sItDx}v7r2CTJQH}u-R>!!Brf^$bLi|j6|a^`7bzUUlPady14y?!e4q{Z zKpz-SNO+Z#m>t^kLkedZU|ADzjSpxQfbALmB?;N*XvGBpSHc0#0K^1e0zd{JF$I9` z2f!%|#sI`a3P}haFwo~&2ffYQqM?@46h@-VQ z4=J^9I+cJNA6V!KjL#BCCW(FqfB4J-4HYvAzJEVib$O_u8e5<(o=%HdF*{-kzSmU$ zit7K(xBK_5K{}aJ>11JGXS&3O#8Is%48n0ZCo^6t@Vxr5kCc>5*dhQTz0RKud}hhfgT_^f0soI z(0tRUl&{|K{Tk0T1UR(C3+;^Me=@VrE5$c!+-A&f#O0ejny zz3;~pM3z4QT|F-wP|0_&pM^OQK}W8l><*H?1z~2FPOChi0Cwq q_nN4zW8KXV|09g1`UeCPNQEvin{&-F%Rglle-^iXRDz^ZWd8viM=e(X literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PdfImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PdfImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0ebd122a2d3f09fcb899d74ab6c5b8b4bc39b5b6 GIT binary patch literal 3687 zcmaJ^%WoUU8K2n)xm=MHCCic}`9V8&V#cv-=g}5HP{fj=M5*JbmK!Gn1;mOoqE;ez z>Di$z3A<9zZufX14wtVGv9pk zz32O8W|u1!pWylLCx6=dYn_mP=)tqc0q`ciirirycX{Dc!b-ftJzn~hGGEZa1owqMv?u{w23#7$74GwiF))-bm> zNu&Cd!hnX8yX)PcE%K7-*20d+D+b&Y_xmDhVP=ExYy>h9@+mmT?IZj8(rYbS!+3OG zz_)@gnL(pSN>Z9yoO0{2_Ju&3efw^M=3Wv!5Y3>|0qi#Qpke1$*v+k-UheHccNBER zZ;32J&VTN#yuS4_Xic_mwuIce+3T$aD%iRew}Q^rUD54r^}^oOFiI38UJaW3l^d_N zA|N}R_~F*Z`mHS(Zd}>u^xI*y)H}>eMyodAC2g;ThEQ2WyVlYxqn``-G{$)3y9EC1 zkpb2I46V#b9eGh%dzSIh=FVd~bEDcZ#vNhCJOy3^PXRpdauUrdd(RoTrY)q_kPa#L z=5-c~U(iX=6;yHH4GBiS_|41_;9L3NVp@hZr?ZN|PeDheNz#eIbXw7zPw4%N_Xzj0YMW$} z_-gp34n9vO!1Y;1xSvfMxxYU2A>l+eeGidxh??2=q3u@`wo&pCiL4JvT1}^aNV4j| z9d$CDencT*Ejy7;LYF(3N{h1Zw{Cmugn|YVBr_{w4Dsma0jQf_po>7 ziFNQVZRHc|Y!rUNaS;_wko+=Y^ox6A@oKvgMU+ z?B8@pPGGmpoo>vcJ51&#GSqhWhmGXawYEe;z&e_l}GAvGYGl~^H<_dEH`0_ z$Ze?BC%lPz!(zn^8MiitlKNzA*sOF1>Cu-hkudK)!NXuVK49KT94W|6j?Ue$U*h%a zc*k9jbce^k>pJ+Cbb_w#d+030*+&h$$u!MP0a|clpNnX9Flnl4~O1vc{(%+Rq z)E2B7!MJ8@)~6YA=Js^H9*f7drxUlOzM$mZI+jD1hn&))i@4+5hG<#RBOlK9f{swA z5`Ar34x>OG=Kcpkr$5$cg>hb7K2#!Ee?Kp(cw2)eCvrOy$U|JhSh3ev99pHm-APk1 zP7)po=4{^l;4M}fxea@B4;mk6>C7J?wdKaD)eu!}hsYGa8|;gwQN(6PR0mS*G=qpY zl?-t0!#=PZBmrV0FKZ{=RwqtGdUm*V`Nb~Sq_utsIJX|h=VZEOVjM}9XYK@ zZ)g#8KQD5z6ZAVOrw^DNb`v?L*-OWJ0;@#*?zWKc<9e&Z?VBWP!nA~yv>zj|(i&&x zXjluo&2RDLG-SRezip&xG0*PK%mcBWLTc#>%?mwKE_q>8napqLvPpE=Am}KQL?{5G zB}4}Ia!0R2?mpC2nHP3VRkDh)?wMWYx;$zs+JC)Xui#6*L_=tmI&|8qSyj7A%Yd!p zw@PQMX}SR11;?{I>d~rGpapRFpsWEudVTZ-aQU=m7c>>-^m`gy4o0)I>VneJ(nqv_ zEFU}?Q#O(<^rP`JJbJ6@dZ6>|GGzGl0=}7X@6iRT?D|HEwoF?+Ze8erOkeAEG#>VV zR(l3pz~NaljtAWyHL;M-BMe8*5)$NS606?{TY)~Ct^v`YYmLdAm;xAOyRI^`fymc2 z^rCK-bn~ii^pAlN$|_Q{k$FOzUkWz$t)c$IVAIDaRJVxqzVHpMF7}^qtepPkk$U-Z i?+qLb{f_vtPS<1>%_(?-*Kw*|(f>KQSw<|&*8c#Y|M8pv literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PdfParser.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PdfParser.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b175de8f68c714d99a4000786412e12ac1da648d GIT binary patch literal 27143 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 AGXMYp literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PpmImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PpmImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5c98e7a8cca42a4e28485d00a23b457da22641e2 GIT binary patch literal 3044 zcmZuzPjB4D6`vXY6}7ukBw4Z@9ay^#vaRJxvZT045yY0=K&>q=;?zNjEeMJ;+EB~o zQbWq#U2qFDa)BOt$f3s^q)UN*g7yRS1LV*XuK|MUoLhQm-y5!Er3s1o_uiYCH*enW zM?R?69RkmPKKpxnb&im)aB%+E(D?vL_7|u);WQ>a>d_wa7$ux}8rM9X>)hZbx46xx zpmx5nJcCd3+AHFj9}-^YjaP&>1Uq2InrHDDJ_{OK(32@)9XP@g=BY*rjHlJuK83Ym zRKpQ}gU|7KzR=Mp(z=pf!4Y44Mw&}!6kKbv(%9(*9Z^oH=9f_{M%wC~^~?mVJLOE* z>Lpz(>ElxS=)(t|zWwC4zbHt;_n?VT^sfYl7>>?irX6iL<`Js+Ac~uWoE^4gW@( zv@}yG_M?HEMk}no{b>8$_HQyFv-bT^$oBm-eHi3H`*A-E;`Ya)m$uU=U5Sz`58`+w z@cG@fjW7XW9QR+gTRV^2t+b~i)QXQfQF138mX;rcp-A(e!UpQ(gvti=Lns#yp6UZA z*;`Nv;!#dK#wjEKg9Mnu6nI79+93__+PMwqbIRKJZg?M_)@nT&)mwYLG(O7Q2(RlK zSdD}je0*>dEZb1B7F2^@736@NP)<+jm=#Q3FIdjHrd)23f^pW>_HcCL(I6FJF1UOD+4jzk`yz;s#BF!Kf0S@{ zFG>PAJevYHM#~q5QIg+wJN?{!-~GAEqfV4(O`~M{X{k#Q@Uph&zx*`HMV1DkD4plH z;v*^hveaUcG__LCM7&?ptfb-VdzE$Ar8ND#-xbL_c=`pX2xYVeFQc}4u|Jx>9MU`0 zjEnq3xMISq0CGsFOW}h6LBKS*oU=*5$ca{{z(U9%E63V7kiXDQjDnrgg7{{kal6ap zb8f@P;!|TiaSBa`m3?ch55CN8?i|yH7hWkJX0;Q@>&jQ$NHYvS40Eu!Qz zAU}XLXW`-xK=($MeNM9m>^N7@MN*{*pYM{-sr)ftP^Y;v)(;OR{YC79S7u@DGtk!g z5^wN^8tcl##wjUukkNf@U+-XaW;lVQx>_ZbL>e765=f4~g;aO$R8Vx|v)P9hrq>lS)YwzuxA$a604&O$^xx6nj7abCV zTwqR%VILYmUKF~?QEyL3MLahpruiA-@a(_12J+Bo`Qv^cY?GlI_T#?H02tEU3ljdW zdn=2O?Mk{cGIriu+j@Y_-Sr2hCWDvFSvil3U=Ekl&xT1J3={_BnEsYy{IShVJb?!*XN=%WRP@(yn?GN;v5^n6-S9EH9%l#_*pap<6OkCr{{3g zrY*0c^);xxnmV9g9Z=rF1uXDOEzP2VXAE$T{X|7uuD}s49Z`KskZt4) zRO?VOBn_MCRA)|2NkdE{d@u_zsZ}s;Oz1=baDlTn8*4xY1B3>C+~nI_pUAk986bNO zP^PDZoAA-Ix9F!LV;Jpme+NajHDEzkmb`mfiTKZpIGQd9=MF!V*6&{;RA#ws(g{LM{O(oitE(BJ6j1-c< zz5>!jU5x=z=jKT3umU!fXiMV7jou7{1QGsH!dJ(|6bEp+L52)8vYcDoy~Ul<2(mDW zCKEFxjP=b;XR`MB&bap0=H}f^XM*Movt@m4LFfDk%Zu&#QZ`G2QNg^@L1GSd{Np+n3&fRe??0DQ^5SC z)Kyt~4>W&(lC45T07d8TEOh`^lNXSA9q@%1vlTuOqYjlgd!*k<_j*`&RGq3i>HPrh z0`&py?lv1Gk;sjeac C-OHB% literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PsdImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/PsdImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..49bbb28010b135069c0c01d5ab9709960eb1ecd7 GIT binary patch literal 4931 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 YXjFxMy!V~eaI%eV73U}5!ndsUf2E6kKL7v# literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/SgiImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/SgiImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e8c1a299c2e891ad6c3d80c090bc53b3ea9b7eeb GIT binary patch literal 4024 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/SpiderImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/SpiderImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bccff85babaf26011691b63cf7d703a5a6f663ce GIT binary patch literal 6559 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 z z;32ZZkNqF@hf3E*SL0+bR1@Is4T1Gr8onohT)5Z~;1WoF(;s<718Od1n^aQniL!z? z?lm7#-A(^9<|AgZfVrb<*aq26Y}Qwcvrl6 guS`jH#Uv+0m!O&pY0FhX4Qo literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/SunImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/SunImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f33edfa7fc0f0a2f68289ec6126ad7c6ff3503e1 GIT binary patch literal 1948 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 Q>NoG8Kl}&9&h*`X0QZ|{LI3~& literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/TgaImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/TgaImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fbc8a2c25c983a931e311af70b862ab1c32da2d6 GIT binary patch literal 3728 zcmZWr&65+y6`$_u8I49CD;BZK#~K6%5;?FjHeeDv&MvS}8*diEV&Y7xN;RlQLaa1W zdWMfxjV|EaIXM?sYWI?=+;Ypse?iKB!BlRkN|pYD6gecn*CT;&W@=u)_xkng?l=8@ zudkO%u7T%2FaFl39W{)9k}!K5Fl+dt??9v>S1dJ^(u)c7oBy_Q?Ej z_2ZP?P1&WCZKZr`ePms~eecsNsfi{PAnWy9ohzDbLeZ=9iHSxlpg%->Me8*`$@mE; z{bHs+jAnvAfw4;SHSjHbZyvH}4Q*uvG=n*zcTG+Oo7VmfbH+%KW z`?uFU>%Ol#ev8&fPZ1w2^#;D^&+wfXkBxmM*#R4~m?uo~W5!E1=9)J(Z)#p>UTEIZ zyrp?t^LA`vY)%?~(Brk_%%nC?jHXCTncvMt-(W_IW|4fCO(o1Tl`QG*=G32JTNYlj z7c3F7xNEELWeFZ~i6zZluD+9HlEN}%3-aIPf|jqsx&rHe$U|B_4|x&tYk7D&x(e%m z%Okqi!5m9^4qGm-8RJ}%ljwiN)NyH!b73{fy<*XMc@#X^9@Dlttlp8wKQrL_#F_!? zExDp~??FeSWfswdA26*y3BCD>tMfW0r)DwHQtch-^h`1hZj7CAe(WYL?GRqSkMsMk zJR{#voa*eKi6mb&4%o7BK=Cbv9<0x5>(|=)oIF2ged-6+7hp~MrInHIAITrjS=ZmS z-ji_=J3hT;Bvu>$Zd{n|pR2Z9ksn~E)^fJ4(t(i_68x*S*%lqdpji&j$e;YbjpRx0 zt<7(Za7h^P!mf)I?K6Yk-x(qQ3b2E-ePMe-8Kd$<=rHSS(OER1Je$zLo|Hk5NNq;ow=QJ@*GPn0yGc$$#;TmgoBhsvCr{A9n{~T9^|wWTd&c<2Myxsn8nq zhbo97vU9t#83ipGlR=6_zH=ZWo3QE9)rjx{tJfQ)ctoaF7;1q8kqO3xm|3W3W2ve9 zXZ1?T+rw0-z?X_#rzWs5wVF|P6r@7a!p z`t_Zg8#}3pgI>=QF#)jiMX;yG){Af$^x7$lQXAXq1z}oj4SECB_lNP`5U|}P^wz8; zgJJwAwc0(u6R9(_GAoLG6{}U6(7}+*B8Oejn*L&_&(ZVx-i@C(zKjADHP%~!YOD{3 zH~rXeYz)<4;#bo@M1TFvtI9_-;^I;y4(t(?DYoE8h1Ch8Z$_}+k4XKhO5Ip zgkvxa!cX8n3PB9B$ni2w`5Dt;E6iaITASLrSIeAwT=e1P4tKfBTyC>PZu85~3s#$> zCr!>O=y%z1d@JBbi?an$JzLdF*#`7G&1UHLgJv^zn@vRENsstqv-$fces9`i<1h97 zI9<%zrVOH%>JIg3TEj+k$mYl|Nw);@5x&Rrv~LAv^sfo#?5Of zk+Kw=*HQ-Q^Pc4?`GN;Jw%GyJwp16PrSq#3Ez57MwX-$oDfJB6;YqSQ1=5DfMQb;h_fY>#20J|M*!Q$0%hec zwN%JZAWjm$kMe}pruKjx@UfFPQtWanEozk5()z?0+fz$w$rAUa0}k7KoJ;a3yaf5q zu0WAj81xiab!F}wy0ZX>;#)ZUv$v~}_C@g4g-4+v+W5~s%IMtUjS^l8K zEG1c@D}lBq>CjX{$(W8UQ>%B9$Nb;WyvcNDkpHS><8gU^f$oS{E$tb_Sfz1gAEg}^ z4I!&E)3Sk!ftf6{IhC3N+)=}`Z)}dt+rVxiD>h_BGsq?KtBcF>_UJ^*52+wLQ{6bI z5rWjtMKwPn6bCf+0(BNgN4-x(pY3ztQouTz(Z#o@TziBu4}&1A#j4xy2eK9qY9C#> zQfoc(mEVeiM0Hai;0X#`cFL!U>{!!@2QKTwOh-7=65^@TM5uOU$)Zm=rOG^vYXFXp zLpyu!-}`do!RF59o$ZTX-P+vRST*X4sn}V6u%W0hsmmZ~Zu5=?Wv>u~Eo@#9qNgU% zS6!lhlhE0D=Buz9cA``ems&blimFd);^M5a7&q#^=VIWr1}I8Fsv!Q;pk7h;AgK>X zkf$S`pfMrCE7scU2U7<(UXSo%qq)Zj@EEr#_`| zI&f48GFa1ywgd5x_@W0O2Ip*vm01<|TI3Em2N>*tt7zmFtO)!C)ktk~p?h3d2=^hh zwnpzNTERHp71-8HMRSbADvCI0xAhS8sU-es6psqJu>JJ;MReDf)NR-*V3MI@rR!*# zYd-9TK6XJ>SP}H93q&Z`iZ1Z#H$=8U(n7QO6z2+ef@V_@RBL=zzaoy-;gwX-=|(tv zx>~54@9OB!c!%GZ1kd9jBxljwxPBM^>1`M_N3l$u&$3$cIo&rRT4I$Q<&F?81!ML) Sxy8ne=gbk#7iCuFOZbASuO?6qPB$r$& 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/TiffTags.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/TiffTags.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d69180c34c3fa124b7196ea0f5b260c4ad5a4dd8 GIT binary patch literal 9298 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 O$H;S8=k(&vMgIq6rfL!Z literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/WalImageFile.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/WalImageFile.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..78bca2e87b3fa04487349b278ddd046e9bbbc40d GIT binary patch literal 2159 zcmZ8hTW{OQ73NSE%A{!$Buk1HQ6oyCL|GSKqgd5O&F;29fFQ^=X|oj!2((GBwb894 z-CYOrOS66MU$7th2ev?e3Sax==f1TsJtI2}&>`l`@Z9E{GvApnd7h4chmxBsWAVZjlM<{ z`8E<}%!JH1_Xlc0e@g|qApa9JE(FYYE6Bc~yuv*K=N?LPFXsMtA=yk14`$&#aH&`4 zL`X&k<`&GaV8#O=0Sf4!s2h|}YdGd39T{u1raq!KRDy14;AQXVzp^(paB0H*hWaf< zj)x=jz6EYs4CCd}4{#Fxm|R66zKE7{?Bj2){P*Dje)s(4XUTLHcG-=^m)AH5FZ`=n z(*CR)C;lSvqX4h`S(qdtp2pZu694=%1oumvT!x=~bvIt#F7fhDVH8aR5P{xJD%<7I^X1zxVg1q86+ zUqXZ=36k|73L)V|JiyNvcuLBSrwfw9`J=-B%AS8L`x{dBe*jriw@~^!1cgUyxPp)L zW`zs5pl=@b*^l&12K4B4<_;k$$=qhw^y4lUT*V)^A z!Vt}%u+B~j!4}XhI0ex57h0!o*?u1Zm?8-1>)|M+Cfmz{S5d7)-OIviDDk-M7SUYXRa3 zVS3wXHVXY9%>Z)KY#fH~Bbs>ACqa0=oUfuVj;G7T{6JAbxm*58n}SY4<2>6}2V2i{`~2t~6< zL2QPF6(g3;qkP6jMU;j82ZgA1hcj|q{H*(68VO*P($U!~FOxEtehl3crG>Mr=`4Xr z(kw9oQQ;HfqY@ZI8X+X92SUz{DnJ~V@#bCQ3q=+c=pD4-$K)MB2yq-INs^{%rfJ%? z?KqC>x}N8?+wESjcW`iUe0<#R_XmT)a5${lvSUful*)!!(nV7f3{@y9ye9Li#492v z3!KQa0>|N-x{!PQFH!8R_J?2>7jhGFP>5sp+eV#AaD=49-+oSzz`Jbx)JKs@PWemc%s#wk|Lg z9@!kSIAm}LGFDk6vq)qR&mgaAH!7Bk&3f6Wmh_5M#HMEJs#R1>P1Y4rlLbZOC4qw! zAb!^ns=9zR!BPcXCJ91zz&~`#$DZ5obxw|t`X__K{>k3alimHJMt9%Y?UkBst=y_z<+4{QH7v_Dj9RhiXj(;8ZCN%YsVIsn z&r2M~vnh_vRjkQEMdHgMX9=v%vnt0(EF&<8M1xS%d+Iix)ZL?6ZQpTvxYDu9Er`xE z>$+aiG+R+jS<*y7<~adE>K%BUJ$JWT^V*e0%dR)As%up0McYx#vZ!0UX0Woxh%({@ z#BvCYkUZqf6A>RP)qSnnDOSDWh>VlbXn!Yy)L=$9@! zsi1xd9U16AMLh|11k~bCgF#h0&Nh~nq2+w4f|rG?>q8C=c6XGQpniN9^MP19%_?Vtj@2Zio`0jWH_-T(jq literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/WebPImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/WebPImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..615107a67aa5fb68ecf86398a58edf457afb5e04 GIT binary patch literal 7358 zcmbVROK==XTCR6hKh=`jdiWu?pW|K_Gc&t8V+P|L*^*`y;gQAIV|xk>MXR$~ZuQey zC0iC%?8eH=a$!P2aGXPn-~cCX5J7O@ut!cD>qNi>5gQxC9*4v7{eN}0WX-~XuBg8< z|H{hD|Ih#3cMFBAg5Q7t`0qCgzo97qPMy)uLE|Ib!OsDNBGk6hQC+p8xtglHDg&bd zqr1AQ2;DWFDBU?j@y%9N-c}X5gy9-rC|&KTB1~bmt&Z*5G?p*>Yu$CY<$SHV8IciL zTsdH~A}>B8p<-wIU{bZCl&d-MlD?NxUhDDKU*_(N_l(etx^;=l$Fv_Td}y zKY*KLT=5Y5^!4p2`Om;jGp@imbx@|BC=YvQxOawnV&zyRX$ z`mM^S@pROqAecfN2n*uch`?f=>zN!Q}{eDk|JgnIb!dkoSi$~z)oCk`%PaiBT zKlJW?;jJz$uRU5_SzZ1t$vpggef_~_kCvCJMq>4)-)Qc-)6Kw>%|^qcrM*T^c50!U z2a>qYNOuyw7qxa%crW_5yiQN}f1}7r?E0IB_deYCJn&_(u~_%z#$vy}R10ex_j~nP zd*hMc>2LI#{kMnPd%Na|@4oxJdKbucyZ3Tqef9pv6Mu7^Pkp_;v(@b0?7vEEuU4=7 z{qQ_-sR*E`CAze{YN&=Lr-7*xdi0~?qhIjH0KVd?LUA>ry1LL@gANZOY?5l=Y5BIW zh4Wh3S6v5fr~|h%KUEs4$cg-G2Z}Mr3Zc5Wp(5mmicsKDWpM_hirk(NvuIEJ6msO2 zaNzSvVN4PUGV~RvwU;Gih0k~_c@x;Jg_|YsPa%(?vaJR$LS+CM+tvrhp>n8hSg{&w zkTS(HVrL%tUocy9^ywi220qsZi*hMpGb4Seg_p%bb5kX(;!0FBPf!ZzS(HjFL8 zXN3irBN@eddAu2}2W$bo!k~DlU~Q}%Td^HGaprjT2;X9T8!Lj9KTt&GBWh*Gt=zbU zHw|OMh_i7n&c}r)7v-Zulx?IG4;)ii!#8O3@5grk6xB{R1y=1 zYD`}i1|?BKn<%38B-+Ku!1rq>d4v8RoZwCo{ccp`y-#6fWqVRgi}IhTD%yi7VIHEz zT6<Kz1ZC+Pz-?Xb#PzU(xFVfgHWbZr19p zE!o@Y3TYFT43%rF-n+N%8p}^tSN4pjpRQLDeYewJA*(0-zz?g_lFUX@_+;_%vPTlM zxVHMK%Tl!D*P(%l*61gO^lKt9NFx)Y*=_V-G=t`zFG;KtgPMsE5(OEr>osJp;|J~p ziQ;0n*-0moiQ@^L60I#i^mrZ{w9>S0hEVlqJKa`ddAv8w>-(+h1U=i0#1PQ<#C+Kl z;j_eg<~O&Vh4KthIzyCZi8CH7S~qm<&8>Q`-IH#Pw~}JzCEn}imRCy*K*?~6;ie=T zz@{bzQ#97}dVRn9Hk!c-fTCLZ0xUz8?<}5ks-+snlre*LRwGPSox)|QW!#pYSLw2V z9p1p~O~0YGH+hY*s?s5om0?vqi-v#_Z7VHX7FmVR8)%2HDX;+A8dF}?eOSx6s$qJ`9S@ zYHqCU-Kd2j+!Xdx340Y1YBq#94l@vMgm!CKtRn2=}~pZ>tH{nW`#m z4arJk@>;MB8PBV?YeC?7$J)U2wlQqzDJ`|6XH|zTeQ)ZG>2DHwkKW+u_%yF#1_Ux> z9F>83NI@mJ2~ChY(Yb9f&-69s#L=(ttD5pHqUr+ea^W;B{b#R&V`7q-)9>58n(#$3 ze;OY)VWq-ar$3~hr$41I@;g}a74Cq;YSw&cwz^k-lj783jRly_kOYVYm?VEhE=75U zvaJdA14x>uL1>hgBR_;%>%6*bp73MEKU{LKSzO8o0;pfO{OvO2Q�p32gP)LI0< zF|eHI(hnt>#UwN4Vd97#35o4>PjL{!M3$W<{t-S2$XF||l|`Lo2NHxQ>?7db>?xj( zzWeo(bQ|*!TO+llrPh&kQh^Ruz($s>-I?JCMZTX}PE~n+`AO=0VY>7av@T=5ktERE zr|E#lgINCs-UNAo)NYan{2H51Bgeu(4wi1VC|{vL7DfIDJLB-HrBfSr1)&igJlZBg zB7GQ+(U>#@V*wBv2NWa%^u|Wup=>)0?Lme_D9jE+GJ6=3<%S_yei)J!!eThVwybnW zCfr(+B&TwTz%0PGVvp+Nv8|CG(XihkKu%E-+t>lgi)gt8&)==LcLJC$4}pVOZ}$+k zlf#f#2~-JOBklTl=C(s_LWaBw{143q$XDN!FvxX9qcwm*hR~`A)4pd}F0aQ!BB<4Gv z)D7IscSoZH$$8H)^9HU$)^^H{lb`1EtP^ADM>d;Og`_L^7hu6uR?JurVYLP@_gl)L zwvSj_XtB9_IZ}`_7_-Wf@?|-;A~Q51I8$Nl>mMkw`TRRikcS8Z>h6Y!$f542A*7MC zFk>5;hTgJdKhlLYuf%ru5#=7+7H~hKXNnE&2wBU%MmSQK*ohpp9pn{unX(J4Pc6#3 zp@bRAD3Bp!qnywhMr<<;x^Q5nwV3i5SZ*YD)T4ZcdZ>D!m%2C|wGYr3L*e*cfqSK4 zugD`OMJ}EiVkQ_fJ?v4&p~dB4Z;DqrGwdOwz&kc@Sn~|`Wu4JAuf%Lu6E^l*8sh(n@&731fS->`%sVYCG&G+7 zmtiro_f>JWr5~ulFT)9OPMm)Y9xfq3-B%B^KnqLaLO4mIW`IMGWFtqLkI%;E;`7mY zv2aI;=EcQ3%3UQoD=PdvCp3D-b~rU4K9mJcf}aMSHnO^6gdIkc(bQokz5vNtz7TuQixsFKoqE zB5Qj-zDh7W+p-UIWQ>=n*Rl?@{x1Z+8nvkEcnfc}=wftbNHaZ&=Bv?kRF2LZIxy~b zl!u{8Pe7M{h|&3IVP1iLTEoJT5u} zX~xQ?hvRf3MVPPwCtBywJt8}idL6RmNukq3$c|K!Q_GdaXaPa6wwvTob?UwJI?Y`~ zat?e-(Ds8MvB^3%!&gV^G=bIe!)HCgNnw(vg`C$NQ7U{y7VU_)L808(8;s)p0LXxX z=}7r<24NZnW@fL9r`l2;!>>LEqu>#Ars4<)WsThuDq-5qcM|o*ses{|%GY=74F&y zThrj~#yfAn_xnF;UTp1uAzxQsv)}_kdOW6#E<-l5y zMuj(!hae@F6~uWvvWs=rdR@O-y_DpJZ#Z=~>OB97)9i(8y6i zl5GZDmP2Zj=uIT&S&Zt}+CK6jNjyo6Wh#2uVQ-V_u8GMcCVJcNCOX)Z*sBlHEJhDP z$t9TnVGWI-SSh9$1d&?tug66UcA4$#1)RTWSMBqPEtJH3)eR6dasL( zgPxiYu7ecF?`)!~VKSGhZ^@U$VG48-hYB|2m}P@-zehMT?4dmB>dj6dNy1%wNNA$U zMBPf%&0}$w59zZ<1U@J57$C8+_$CERPYCstfJ3O`N*-8d~tI3~W_v4_1l%EP_ z9F+VQ8tfdQ<$ZJ0#6+-*q{RJHo_&8OKrHs42qnTRQ?+ra%pI?OHpQQvM1MAyjD{A z`T{IS^;SlNJyx$%n)RCA zatcE3;zZifLKpvnDFG>)!cs_*m?ybLHd{t5a0(h>q3@6kLwZRDEl8xJN&0%vy!jIU zbnIo>PyQCQ*Qzs;xz0>rcSsaTD%dBv)eimdlA1oP*-MkC7xey52+$uE{1-)9_8}qX zb=-pVw_uZf$)!d4DPEkwv1KMd=T45tjg;M;8l#Y|``rNP{E1IHD43kE6wDzmlsdQ5 sjO7kVMesfVX(jUpI+{0#6AmEV1fBfU50we$hl=f7EP+#G8Hk(z1KB{Z=Kufz literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/WmfImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/WmfImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f3c18d56f9c0a0e9545ccaa219eca95c39afaa4 GIT binary patch literal 3179 zcmZuz-ESO85$~^=on5c(jqSu=Io}+Fj|E~S7e1sA4kve)T#m$q$OEzu35mae|A04mKuDl|LgH!u1waZ_y1fG9?`iG6?B|`p*gYn}4vj(mBD-cN}O-M=uN{M8WCoJUwPemZ?SR_vB294AU znrSPTNZY}rl{?8)Ivq>{?*<*&h%TvV{Y1?Kv(l5z&qy$*E-Su$MYe`a|Kb6W6SDmo zk!>|Uz<*L*THp*9kk+h;AspvMWu?R5_nItfquN(gK!9C-F0paH6V86?aNC#3G5oi5@5mv^G zC{)rnEKY5tMq~<>HDZvf?0di!0tlflJ)C}J&nkYsU{n*7tWl4E0dvSPmGlHqU9w{? z8AwFQww+_weruedj;P4CcVgYfk)(@6I&;wG;UujAdQT9)-nvFy=@}q~LrepH@4?fW z!?6C(%a<=}XfL}>!}>Y8qjoe}95nlSkZvB7ssL$x2#)s#TImk1BD9L6#_)BSo`+5^ zAVIL44?!}Bwo!dlZ)GF$V}urxEq@9F;7^@h4Y0z+aUYER5o4x68^emJ1k$ZV{XS{he6<+_1Xo! z0?FV0^v7RAyl`o|zKtjv0LR76wd%+Fue;v}qh3$t<%i=rgmtL?28?>p&K^YL8nogX zkXMKXG&4Z*2+@voqzlM)Z9?))2axov+}%7&IRS_Bf7p2*XL7Jt_>WZ?^&u0TIp2o0 z(GBbTU%+@k&MCr<-~d40X4Y}O!}RY;K${dpcEm~!90QJ9&H+wX&IQh~Tmv|_aw@(+ zq&G(@wnQqo60b&mcGReNB|yjRBVvVY-T__9weA3pF`wJrCwI91qIBfckbX)(rv=b_>pHLZ^I*6O@rb*3-qwEoxks#&$H z{l5YZ;{j2~rcl~vXJZfIu!3=rZ$eUPRt=!7iX2azkfVue0^;%KYT~$E5zG-bW%=v% z6ZpmYYe3Fp7SmCU1*OJgSR)kb4}j=dAON#GuJI(-OF&Ms-6V(0A7{mGo)2`Xq%AIp zC%-??X;f-FM>Qtw`di~k{`-&b*O(mYIV6}5YRu8Kj|8#31&xru|8}iL$lIJW5|MxW zP%ne%aQ^(B=l8?Z)t%HUIPXh9jMy7!X`JE(*rzX}Wa8ODRz~~pYdz4$k)!WnGRU?J zhpMg7D&vGUlQ|%V{DtYH+qU`3&?11u-g^v1o9Cyd$aMFpn`dKt+a<= z!Uuc2OVyR@1jo?g_bnH1J zbcT9V{{+T|Vihh7KvmlBzJ;Z%zgzBVC}kQ!Z-}j}8r?LFa5K&#eV{Qh>mML#AVJ({ zJg<5U30@5JT_AxI?v`<)@f4ehF#H5AWDs~*8vnJvhhl+%x7R1Vj>5N4=#K7swjA2} z6HHzx9`-j_^MlE=TN%Pw{|Kg^lcCqa?3s$%FI9#n6z2kT_REcTXH>@D!R%7tu?2L~ c1=e;1gO>{Kwc5Nh)oOUHnGd~IhfcBo0=hWa2mk;8 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/XVThumbImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/XVThumbImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..76c6634495003fea044ef43c87cf722c6a833dfc GIT binary patch literal 1457 zcmZWp-ESL35Z{mc^0#B6Can;%pnO=g5g|xK5kg6mGz6u=qG?i{j7}Ht+P(CAzU*zN zW2G-m`9I=EUU}hP;BVMhp8U)kJiyGkX$!2iznz(#-I@8_tnXDSMFQim7r%DO9wEP@ zay>vN>oBw500a>wT`EfCNvxn9KG1+qZ=!s+1=IsFFa z+7S^YQGQAM>JAYVQGH27Rk9Oy$^Dw7S9MuCnUghHonXGThon`XQYfdzjlDYv`_dHh z<$e@PQ_jV97)z~Xiy0QJ8a7-V^Us!+GY3w!zih6oeEtVWWQy!eErh=jTm%l##p`k4 ziiS;?SsmaaC-EnClW6jkK`Ly2inq3?ae@aMJG+}GrAqdq(a%KTkv|VN*E)|fsj|*S zSE|lNnr?+U?CcG@Vca>8gS3-I>D?&FbQs5X!$7Pof6-0A7{|kBo%Zft=kejele59` zthD&7A0T|(-OK@QU?Y6L? z635ivj)QFa?kmf<@%XT*F^43K;%0=bza|MoAO|@~zkr~DrW1MvVJ7sFW{VnvUD6jc zw^|cmb#&)ieoilFwgw&?J+ys6g>@5pMA%Qcy4@zHw~xpLy>cex%AJtsR5%wT@O0tY zFPB_A(POYv)TJxvJYAWfRuu(Ngh;i8Sw{5f^15^d}t zi^fu67pq0|blV$y+Xn~RzMIZofw9oTSX#!hZ)qq7-i4LPxMygVx9AM!@;JdTmB})Q z*?Rzl*Qv*goY5k+s7LG6;brE~Tdc~9bbRB#9kY}l--l-Mf*=V8G6+mD2q4|F80B&h zoSud8s~x8|RD)2P#%v9Q%(_sej)sZ)7=pi*9KIxl8LD>x?!e4nv&SrIvD~)bY8axh z85KuBM&OMcM@gv8a}pJHsVN1)kMI~FMi8hfdcKclTZIYyl~849-_Yay+vNB96(##o srlrbjQ=j6IJe@a?Q|Em(EAwmo#Mupid0MwDW^s#F^WQr6+{Q=$0M3eH-~a#s literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/XbmImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/XbmImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2a7672fb734588303d33ec36711673b3159098c7 GIT binary patch literal 2042 zcmZuyTaVjB6rLG7w&Pq{meOtus;r_)q}49FDo_EXS1wwqEEN~2a=f)%&m{5IH^$y} zH>5A!f_UhUNFMnGyz?{Wm8VMl0(jw^NxDr7j^@mq>&%(+&B@J9$0hLn^W^tn4OV|5 z^Wtm3;yR4#7a*K)ni8LI#*LI_%x9V58>SQ9qDzS!&%7oa|*P_ zRAVcPhC(&<^ktHYv9YoKQS}#SgX+S&Tnv(2^u3_oxww8Ie3bBdH0R#CcIS#_ul6_A zKHj<5>jyH(cP<{eG_}V_B*RhN_kcr>IeX;NaTnsEuF9gmy6oJ)7w%jL_rp=~(tRJ8 zSDgRraPW%5!RrpaYyDtjV`DA2bonxbzn|1q&<}QEybkQJnxXAyYEb#rv6^ zhT=V7aEZqDa~lniERN8l%1WzRCMB*)2^Y8j8<7rJ{Qd2%Pl6vRA*axKZLI!e>EDCCzmKZtV>rfKmgxU+RTxO+d-6}pq|4U>GmJWzHR z#jz;s9-e~%Aygs~V_d%YP<|ao^$rk0e9DQ>IQ0$Ae3Kj81V91sAR|k)U+jS>@Qu4S zzaG1HH#fbTNu5RI(FK_h33072=ou_(GNlu;%ccgWGx$BG6DohL%?Slevl%_4kJ*AV zG-qgyIivF4LJr73q>HtM>j8s^7B{aDZcj*PPuRpjS?J)a0A2GGfhaB(W?&9s|FFdg zq~UHS1d>(_4NYau@uqBm0Rqf75kbC*uuybU8Tl&ddnSlPI#4w88~dpA8wWUP zP|Qgab_V~V6#0j+tX6;!w!%!-rCsK-bB0A-HeOk-&AK+6qM#u^k75>YGjIpm^>0i<Bn?7LW}Xl?B9MCN-Is#rQPv zLlmI7M!_GjfSN#md0@!ZnsTfjIY|!b6Tre0`W^59w$mV+n%L)Nlw$oDx3tE7O+$7Y zQ;R!*C1Ya9XWFtk`Tqzm$Y1xz$SvHXwx`YncH(W`!JSS)x1A#fJExA@MLUh1W83l= zWHNp`j`F;yy+<;sg@+aP&R1SkdH5twES|fUWbF{p$29Vv!M1u5yrAkTqzNroBtD@P_`zZN-0T{6iM n$VVgoCBb}@b7lULu3|nqDTf|6O~a&?>)0!&ofF3)#V-37*Ea=D literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/XpmImagePlugin.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/XpmImagePlugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6bb0540587aaf94cbf9faa8cab61eac89907c4e3 GIT binary patch literal 2264 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 a9TXprOY4rn1UMoIUXp~w0l_1>P5uIYIHKSH literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/_util.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/_util.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..172446eb8eeba110b36ff68632e02a449bd8bf9b GIT binary patch literal 1472 zcmbVM&2H2%5VqrFo9<8l_^DbU1QM4$v=S=ffDmeFB~+=ZDz#jq2rFHCOO|Ys+AgrD zr?y;p3OMovyo;}#`U-Gi#_4w1Qh|gek0+k7zi&Jwz)e?i2wm^mY2MmA1a)D(1=v}ezO57|BkzU15k z(e@NB=QR)=3IYeN=&=q{V~~a%6GKluxPflBJzGz8nroBf9ch_1s!c65Ux^CA_s8b? zllY~UO2=y*sp7S=+(=9kZxx*+i}z%|jLWoKa_6&bDdA$};iFCtn^{)8i+47+Vt!=O zY`GlRW~z6MO7nxgK`HTajbsT`ND4sxoy5EzqaA?3(VhXNqHR3Gx@<_^SLkAc{eh8M zVc4nx0wd@;{*{1G^ezfGf?oK z*)jQo#}sOCX9TNmfZl<5Ij~MvVQTb} zB%*>uo}j{m)?k7OA68!kz@cWRgzQSCq~IV6)p0cj$8g2z(u);$OpghNHm;ac>&f@f z48E3GSKR{pm8{y3^E6Kl=l8*Qk=hUQ<7mr6pD|eMz!5CzkrN2u0@gu6-`)lv%VcJ* z!ZtWRkR~xkasJ>p2nrg^;ED xt}|VIxCGl;vEPH-yIZd#V8f>s?`Qaada+{RHR+t^0~?<24 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/_version.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/_version.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a5d27c36717d93200f59dddd0a174c19596aa2f6 GIT binary patch literal 184 zcmZ?b<>g`kg5OQsV~l|GV-N=h7=a82ATH(r5-AK(3@MDk44O<;tY&%!dIo-)jJLSs zv@#XzYT$K=$a7{`JFm&B697@z#)#GIIr)ZBuY zg3JQl%)H`~#GD-6#P}3rLzCn@pkPi;etArQr%w#bV7-FMTO2mI`6;D2sdgX>ih-B` E05KpjXaE2J literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/features.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/__pycache__/features.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1bff95f49b6083f958cdce6eaaec409e285ed88 GIT binary patch literal 2589 zcmcgtO>-MH7?yU|>$PL&t4W%aLetXDunaXJaDq$*Ck-@AYC=9r*)g-Tv1GIH+TLoF zN#k)i)V(qc_a5NLFW|rIl@ouVT>8FRuVZH#xOI0Vz0xbak{&&Jv{5YP34H%P|Ev0I zmXN=(l71!_UqXt0hKvzL1Ja@nrG#lrX9mkKlVx9K9F18l_kuV&%d-h64OU=9Hp!;g z^h?9Zuo*TBttPw1=Ag{7dA7i=vqiSVZop`Zy~A!odyc)!-h(pFZn0%3C)jOv2g(9_ zf1lWQ|Dmu5o5q>#me=6j!tVA?$@RhZ+l}ruRg+D>ExB;(ew%U8ogD2_m))t+daV_8 zbE@H#ABA?t(L+Covx5*$t}Zy2XCYs8@_{d9z+u3uV_@eRt^_{~k_BlKQnUeCk4VzY ziaALc?U4o2r_ZT`)+KUI&k9oO(Y``&pBO~y&AeEn1b?RQlP7>M?9-@pXAaxVcIULc z-0HBCfG^*R4!*LDIGa?XIRDrSPWYA(9TDeUz#!}h>ALa6wz8DN*5YiPd-6o^*h~ig zNdzACtDViytA`O6QMFv-qFN5a2cGn*JDr*rR1bJ7tcHGg-)~3K3xfNe%Rc?&vsxP( zgP?O-1<0y{z)>kYiwm`%c&+IsQxp)0X~+n*XhE|y4N8MfQh}ZtI?@lZQ@Bln!6?&S z0Co=mF~C5tj6rNbk9|ndB4iDK^T+9PgcZOPMvwlcJvH`|z1hh`uz9Vt64SccaFR{H z*jM?rz>j3D(+bybU_e}iNxF7}OE)?R5l7Ajdx=VG0YVb3gOQGc32-$daS>91!Q=Ti zMp*)vnukz<$T-Gv$QzD{`D!!PyM7pF1OG_+^}201`f=EBEXdr|m6es)=z>ek!niR+ zbZAiEmB9Ef()9q?>qKf&KQ{WbX)18L(<#Af9mZ?Guh?>V8!N)j#HMPELuX9G4N%6Nfil9)zfi{6l(+*00_r+CC=xsiR$X*jcu#@BRw_`6 z!vdeNI1A_FNht(8a-gz`#v+FvqaJt-XDX4=;q|{nnz)#7dl2~x7&szy1rWMPnn$6# z1)jIUa-8V@SiX(R9EjY9;{;71x`O97VdMw|7d&5hbC`$eOu+PIu!qdRw{ocUD^O9) zFvYZl7qU;o64bS(DVBi&Y29d=os!I89R!P3Y%@_^d_;u0fq2D*TBCx2Cda8(d9l=t zI#3cr$52upoBWyN zZKgJy+;1A|g3A%$lr9#>FvIIHP)3s$;1_qHrD7LjqLg-IulQh$Y#1fvV%N#ExE&Q> mWYP-=thMA}UdN3_A3;{oHJbdEVHK^+(9WecyxHh6Eb}!1Sv5ld literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_binary.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_binary.py new file mode 100644 index 00000000..767c13b9 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_binary.py @@ -0,0 +1,94 @@ +# +# The Python Imaging Library. +# $Id$ +# +# Binary input/output support routines. +# +# Copyright (c) 1997-2003 by Secret Labs AB +# Copyright (c) 1995-2003 by Fredrik Lundh +# Copyright (c) 2012 by Brian Crowell +# +# See the README file for information on usage and redistribution. +# + +from struct import unpack_from, pack +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,)) +else: + def i8(c): + return ord(c) + + def o8(i): + return chr(i & 255) + + +# Input, le = little endian, be = big endian +def i16le(c, o=0): + """ + Converts a 2-bytes (16 bits) string to an unsigned integer. + + c: string containing bytes to convert + o: offset of bytes to convert in string + """ + return unpack_from("H", c, o)[0] + + +def i32be(c, o=0): + return unpack_from(">I", c, o)[0] + + +# Output, le = little endian, be = big endian +def o16le(i): + return pack("H", i) + + +def o32be(i): + return pack(">I", i) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imaging.cp37-win32.pyd b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imaging.cp37-win32.pyd new file mode 100644 index 0000000000000000000000000000000000000000..74ee6b139df94fd935b078fe970687345dc45212 GIT binary patch literal 2152448 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�XN~H)lz8FDn5nuR` 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

kiGGTDEsLv9vw~bq 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≥=-C0q@Mvth|5@3eAs1g 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⁣4CANXj_1AL> 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%0Aw5~4`w-|G2veI#!puS&>Py1p?>f~3rK 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

Ov%4wZR^K`UAWQKmES=eUBC7o5N4Pi-gh~e!3Zd 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 z

UWemOE63RGLH|$Dp6!dCNV31DSXQqAH^n2 zxrJ)HQVpdi4R=(+rhVBh)d-w_AyXjpD1?sA7lgWHtBKdTH@qi=7_KAjD!^L%1VRgA zf8V%RHvfCrIfliw$t2G%eGew@xAdj}wMrnyr!em%sNc$OVPqWzN0Kj~OH-B$(ztY* z`pl=wpkKNeD;O)Jgw{;YRZgQ4We0mz$+VZoCi*hY`+O=GEwLR!C0L6oeFFKv^_D*} z_Gr;#Ss2W6C1h1CUD~631l@XE zVSD0xLiCBgY#dE|oy+`pP``FFG_g!o+dPw2*H#|(wcR$#H)Ye(VMft6`<#aRG4RVX zWs_dXb|0JjxVuYxT=T*lZ-&o1UbO5i$4UvBt;T3+5Y}O-EQ7 zIT$N?+}Ipz{3eghhh3W3T++SARQHSyEk3ZFy1 z6@C2;5KH#vDt5Okti#}Ct+v^V6U#sOU@pp{Mfp!Pm=l3=S zva+Ov&A$@Z7L3?u@@tDECb<~P`{360!*s!N`GijscnkNqNM2w$r7;^fU<_F0zE!LM zt2{kd%a19ttTIVxl_|2^ZHg>)*6iqhJEr_3;>xO&xboN2lMbU=BJY}iKu zxY}=Jn=H7WoOJaKw%k$aocwF!xobHHTn4D>lS@zlSdz!86(fy*$TH>;8!_^`MMQEE z#z4B>-guj&HLD?CbF3oE%65`u8)$He8f$x8yCJ+~$%Q+6r(%BC=S!Bk`tsx2((uM5 zW8>}!J5AQl<-f#Zmw^l2(PN_s&{al45VByf8g?XRL+5GdelkwN%`W|fDNlq${rR_m zlCdKRU!x^L8KsuJ0hW4-Wz@*{{Q4@lEHo7>&*a+G+GZngILu`)NZlpOvXv!I?vrU5 z^SIYkDm!>G*{{5o!Qald=XUQiy6-?O@OyD5)z_;hcWle5`&;(o_WT1BNZirBgR1lQ z^Pw;O!#j@4XKE3VOnvu0KDc9-e3|;>c>dAwk;w1`Vi3z|X#vNj`NcPPs`bc5gMlh* z5+gI8vb}1PK>K`qRO*l?VEg{v@7}RRno%v>u}$>^NaS}=P3j*#Q}k|1N94*mm=wJt z>$=Z1Wp~6!E!Z~l0^$74@R^AH+CzM-!uoGCugquZ^-0L+4xEYkcpp${r}aD9r5ok| zspgKYsw*4wJNOR$7E6r1MQ#7e&&$n9@eh%E%LjbTKH`@z)n@fd0m zI=A7w>Klbm=V(9Oc-w|=olirJ1sfhcpYr=jjm#85D%R=Ic>pL-55VRmYymh$uw8tJxv`_WkvY%rXTc%WQJSLr^Ai)8=B6m{3l3V zE5djjJVnPj2Gk}5tRROYpGJ%^co(0-S|Z1OCqN68vA?2toj^2 zi1b(=^nLE>+vs-N=u}$2nO0iAEh@@vdRjl}G>v;P^Pa7`0?cz&cj#JXhbl(PUP6cZ zMntzK;n5C%Ti{eDh(*FZnD%drUm3TBvhN}A(H~N&ZSNu^n^)#wJg2ruR$>OqB3Ueq zKe=1Q=*-1jWS$tpd7BH6Tq)2JJLO{*KP-U4P1pTsn;3!+e74lkNj3aODOeWvHSMY+ zWw^-pR336fd+dF8!BtPk^=<@?M#UobLn-prtoRq4tq5t$zv>`pp!{Z&?*@q}n>OBt zUv>6nyOX7@!^ut5!#6%NQ0j8OgiRFr`NWk>MV7LUO0on+uy+vkT`&t#+I0W7Z()!z z$G2|fr?mvVBb^ek@LR}ujZPbP6lz6JCnFOU`Y79vUxD`|@AIbF2}7z>~zkh)!VHX=Sd}a7x7qxZJh-U86d% z`w!+_wVRE%I(PS5)~z<`AaO}g$irajp-VkHDGzgYzhzVxj5-+it~cB}S&qJ#`|Bdc zd_=ghw5>~ZX|`k#c-1(z2$KcV?Au6%aKORaRB;gS`ka?x@N@1gjfI&|rzkKGaq|xBU z9wPC(Gv5t28oVS0Pjp+a=uLm6eWQr7i&6ho?OTRtwN^T!T{%(g5ykvwDrq{_t=0_!XdNL%ir; zL|DZroG0Q%$F22qcJKxic<;5q`-`8EbI06D=7OXe%&D1*qX~s)WVpZy;05#*K zKk@hWOCdKFn5EvHKKE7aSMB2XBSK`38@o)boJkzR9I$U@3QtEX4h<*V-FvMfu2DVU zJm0{%88dTI&o%WN4o*D}?%vCNB|6l9jQP94TYXIeA}r8lUBZl&X5)IW*vUc2tap~1 zLnq?Gcm=N2-`0q{F#_C znxzQ(WbvOT>#AMMuL*t9t;rd{s7c{Ujm%k1YR+mhFrp?kZ8cd6Q#hFjrqnQVMoqz} zp1AiPCl&29DvwSo-{~?cPhL{K(`^jrhFDA*H(qkLa_2)7&Yj<=^l%s8l*?T(x+O=^ zi0`IwEG-!t7!ZB?UP$(jgRQJo;}y=3PX@mtm%j|Im7jxT)G9c*5J4jyINgLgK3=Qi6qYUgo->@8Zx-qgn(aB15aRtxWtue|E3Ag}M@D^bDanP17JxJWheRUX$t@!G0&grxJdeJ@JXiSBm@W?|*6bf>|Ct~9;l|46g zdnSB9vs}hB_n293W17b?%VSLQj+x~(ruiIXb(`iNGs|yG z3pi#4jA_9!vw~$*Sxo)6gotcrX6}gr3zMRiBBP*mN7PHx|j}hxeS*H$8>xQ-C38EMe zm)aSZSRBN+V`wFoHV5&*nXf7xMuVS}dx=GZyvrtmHE5HVX}w#ZC?x4Msk72a zS|;23Ce4!798bORg*=XghlwpXwSeMP#&he_fwPC;y zb6DoMoIQ;#E+@6cX|k21$l@%wY-eRod6=8A#i>W>8(dQBj=Q_D)qc!T;+j8ZHk7!` z!L?`1Y^Z8kHkZCJv)Q7{q(tE6F|#u!pCNtt`(bMLjmz$fep&4j#5ZcVd^-JWcA~ci z4E2uPe=?@$?*5~>iAAoUXE5n#;mBhD>s? z>A@J`^2*5cTju2t+r=_ZZLBP>Up-z{fG`tT8<`e6`^`a3*_(;BssE#I=fE;^@Z%iO zfT$V5JNcI2jHiG3tBIaxzrlZEi=kH>l}%8zBao%sCju<&UyN6xUD+tI*N<1{p(^V<1bYCt0HwA02c{n8!D8lwTM(xf zd6-%g!Yc6axI9ep2?hU{)G+g@I{uiW{D5oB+ykIj)d{)raKi$qIw?0kZdd|Ur{pHU zO;B+NlI<2!JcEvkY{r*d<~K-a-%U>C%R+$INmKHjwuQsW!P0mrQXn=jAE0%>JM&50o8vX!Asu71b75wPx6M% z!Dp1_#kG~{M6$SGcH%WddB>ydHfioX;`@?gl3j}D8r$m4*?Xs3vhY~A8o#d z{exJXD+Py)7tltbv^eoguV2d~`)!T)V>DVx|wMR#X$$#0#F46B!@p z)+Q2dawt=lOwP>$2!I&mRlvEWHt`%UQ6W`FH~IQpUBZp>kCz_K`ErKK<(ZPiazB@j zBOvgi@v7%w26E;mzu-4!dy`-A8B;xpF((CXA__tOqPGl_u^}}xx))_NB)kWie$;L1 zt9#srCwY%6d5@O(C2$jySxmO^N2YOg`ZS({VNC4Bf=0Q#GC}IZ$wKgD&_S%3nS_@`62Qk5QDG33E%aX;-w3MdHM%dT0(G>JdTHXM3Ppi^9|U2_Pa}-$d6%UU1Jj z$_xA%@`8Q$r)}G0QkE^&k{9e4y>>xQI!rMFOX2MA}^3(%Mbxc z0j7V#jtOw&O0448AMJrDj6wA?#Awq7pl_TcyR4*kb4vdyk5#{ z6$QY>7X;(Y_`;M&MEm1_*!nx{&oD7#cZ0Bd>l+~3K6GRxgWqBLw0uD`9GK?E{cG9& zCc-6(RrPFJNA`&oZUQ$5dmKjb`lhWVQz|5uZzplEo)5P~hhL>J<=(Pf@S9P5Du5#*4(Gp3nw3QXz+h zpb;Fy(sH8NWOa|StVEz&op?~!#v+|^iyIC z?5Q`d5rYlvGuGB6m%5TmwT8slH~9K$HXO8%`^v%#w8gK2*;W?b6#Mr)XT|j6-}4~T zBA=`%i{FLg(Wtl(yScmFvH2b>fCK}(Y->w%!!?cT;9s=ZXy^mPL^0FcTUqidQ!4$B zN0mw+g9at6Mh=EEfHDBB6SI#}8Q45+X@0#WFV((oY=bA5VDm2-_NGQ1v3bkF^R&gk zHg?XxL3!`qY`SnQFf%%F^353Ee@ptP3=B$R{8&Z?u5{`+(7s?Ywt9ov7aV|b1LEn_ z@%iVIU(l3!L1H&=IlY?1!h@A>{T%#kjD2D>k?Ci1$p9alMm^J4s}rv*=to7CB69;& z4i=g;V#%8CXtVOA+w0J>Q zcz;vb{hYUw6PJZ0YDR_{V-oh`#J-!Iyk<_~XDbdRlh@d5&=Z>&TV``9D(@mH3|o)^ zJ_se;$Jgq&Qx1LHIz^WUHks&uD34T1(RhX-Q0Gmbs#&IsGL5gu1civCu|i z&(0Icg2#+m?z)ELPGN1@n|0o4kHxf~>^x23$V;1gYHp-UNKe%{S)l5F(9mRIf+fx z{7aPUxsO_lNpkw8|1;OCN-&FL+ZWF*##JbwuNenQs{OYT!K^VKmc4nJ+@sK+(n>sZ z{AE@d?bwkyqwS8JM|oV>T1K2#TzOYHyD>jZe-ppi*;h9e4_9S&QqbyFd#&n)#LB7Izs52O$#YI!)Q80 zg{h6cE!J(qGs$5s*Z5QP7+F{+0nvE9yKP=pTPKW^C)i%p9x2E6USBhTS1W&a{nANR z=GAeMHMJrw^J*s!;C&-NHx{Qden%IfOqSzcJc&d-oARxG#|9xI$?WKkBu{X(arQbT zGK}A7&Vx_O3wP;j{z;%Z(`R%&cI23`2QMjDAa=#F@G<~Tw>>M!*Kmgufrh->M-)4Q6D6AYpsDN0@BKL znYmj5rsM+w!lnZjiWC9zrvM7y<_VDEuZy?`n1#rZZCYS@Izx8_bNlZ&kwm+b=<+-Y z?3RAiC*bxqM4Pp&$k=GJFRM8cZT4q1e;$5924z&{{#?uhqernTtJBN3aZ2H`(x-m~ z2hEPSSKQXK#L9)^%wy5FM#SCO9mkvih*R6gc}Hyi>S*_A$r+FXHi-AUil2vy2+M%R z@nRlusPFFTCMAYIT;?^nC=Qj0vjVJv>^u zwY_yzs#=;zf`QVnSiLtk+Ugaa3iNBWWVVogIU*l1>b>_LZ>Ja}45$?ot!Yh++t#tP z5TFHRsZPkAaH6U4j5g#Gv9mF{jT6Sse1a)vhxQSNdt3BPr}NcAKLS)pD1jI4dH?xV=(@>y<3z{;5q?O{kC7Jz*hqKCm`Q~uLuZEVwg zt=gm#st9judX?e<2|*YL&-XR`hXm=g_e;)%%5WH&>0u*h@?u|eHL4%d;@Ia0lqy9} z(74L(;eP_->8;I|rRPI)7aB9-SuuCCm=D7pP485O7yFvJBw{_|<4dN+HWulrTv>IRWI!y9@u`N z-F~In{^b7lCug=l*=k=JJkYdFHTYwRkdRKBW#3cnGmA*3nBSbq3w+Jfj9Ii_rP`Ni z1+t9)QN}-MK>L%-_GN^V%=VLfOM|b#U;3JUF-U`Edp17h2p$z;aR?gW)MKKNiWjWf z8y{jLb&nvuMroUy#*&o8_NlK-(BuULKk}Q%-g4leJ_bs~|A@dFL|D9x3D}UpfasjV z!DFMj_q@s%Z1~Ojl-F1P4jcjFjqQk>miiKea3!lY>kMfT4h(wB9(iBsf_CaHLcG+) zFChsNnD8&%5DS%slFsNd8dkX6z{Ku^8ci@jPwZiJ?%dd0;7!|SIn$;w)| ziH`P4Br>ZDuc`;bknYh&lwj~=w=NbLs3+N- zG?RS%R^h|uzB>nuw)wLIMrzt8rVTb|4mMW?Ysw=SDgze9sNI}IpH- z)`c^zVC)iK;-L$eI;8385{e>I8)?N zwR4n=0nf`6us6%<7oaewJ%2ym^K1TI=kNFYrStO~x8h&IKgKu!QZE%s?**aUkK^#S zL-FrdxWBe^M5)ftvSWg34$9IUX)~U zh^sznF&48uv*E_w51aevCB}Z^g~|S>mXpDq{j`$HrsHA%!`A&&F1bIj;v&QQ6q{{K zd#W<#eRyj4K(i#s^%+}8DqO?L4!=wr9=+xTqc`q;gai!VGqgu=xt@2E>Yt%KD3?R^ z$GO9j54EZO6#B1QV)cj1#mA@kCtLSZxm>LJ)22;s^Iq4gU02!aoqU%5jFF~on@TYthsUdDeYFK4Q} zeIBH_@rtCJxa+<6ScJMmJ+o2j{XHyZ25G;OZzQ3g-XbY*Q9KYTSb4}o|261;p3wh` zq+*n5%BUwW8E*U`@u)ez`tPlb*WabdCAzv zWdA_5OMC45!jE!{@EY#cHf^G^a2C-toswaP8TOiSkQy=B350>knzvzBEnz}$7u&pS znMXl}xw5yxhDz|IOz4u|2oMh+5z7N6vt6u7YoFI(!2%Sh2?!T57`A(7qYdzFf)} zWYY71Zy*D{eg)rsY4H6V5JLE(uU02EIRCh&R*Vf`kyo=URXp_ufo8i*)8r~p_oLjd zh4r`#-2FVb>*Stn=U}d29Z4ITE9``juhUgOXX^~u5_jSWV0+_T7Hn52)U{wslZ;7? z!Z?Njc(OUd*F|d~v+f7jOd#$nWn~Lt{}AXq#%x02JCPBHbpe+`<=<#p%Opz(q=2MY zbGOP%LRE>*mrFJCGW;;ZUn8;#(7OS)7rMo^x=m9O-?9C#Bd8NNPhJ>g) z**8oH)Hq|RUt7!|vLTLjU{K^Dqe4T_bgT2I^)j?4JU@>>3vBSFoCKb@UsBRw3j>e@ zc!g#)=Y{6yIV!BJ3w#qMWxqyEcA*sL~@S#m+RqImj8z} zpm{gXx5j44R5;De@3iFgc&^?nc_#?Odefrf+C-h~KdeoOJTfo&>EJlH#5y;qb&@p! zk}=VjCokTQ@t}IVFbhOV>`lEJP0527%4(i3ZjWH1{Fs<_8(5UNvznffCR?Ly!3yyl z_F7x*F$it*i1`-EB0LlM((3jV7fKWZOG(-{YW5BN1`(CH^v?dG0Y9VUXP71LO3TMN(fG`8)_7gv$&B(?e-&Z^+`tE1F#WBEUDUl_oT#ZvwFgC~_^X+n#?HvsvHJRUR~5$&1xAwaNE|S%%VSG=4FEEBcfI5^_2; z1*!0`9GY34|7}@L*m>!-^~O;X^nitJ{6aM?7t0jI3bw_Xw$U?r)W^w%$fj05fry*d z#lYB&XW4GC&vBjDvb#^pybn$IN<7kD6qZqZPf7sACA%&{|z(mkrTQ#SlZvVT~ z=L6s?{$!XlXk~2{Z$dp zcxBG1_n%-zPHc89xY?xZVmj!x;cQhExnREiT6Re9hTwFT#eA>P6}#KV7AE69_xw|O zS7iZk%Zkk}?9FC#+Yq2OqwAdWSAA@QpAW1`x+*-WE_Yl)mUgJ zRqX^rHavM={SmAetnC%`=Y}7Dux~GsZ@;U)J$L$+YWX#q-|!6!0Oz+}RnPxfzW>Vk ze&2ZOhPCH2+Qz&MYtE;9g!St&r&);)tZ9Ny_FZQkfz8dTky`st7ZP)TU8FOvUCI}r zh8V(0HGD{gLIRBKp&e}_;wv1j<&%>w1a4gYj^fJ~;S;hMDTOiw$5PG}o0)^DoY!g% zPDg6CjwO|1QgIn_>*kB2N43b~@l zSfkc&aa}Jbu-zOlt({PBc|c0clw;Aw>Bl0@3BsxN-7H20=XNf#KgmfQjPM~n^GK9B z5iNjU(bU0cdm=zDbn>s3h$M0pV!r83&VqlHFH|w} zi}{`PX{R&w77p!+e$P4d9K!E>Z@<`#!SAH{Pshn5u2{fx>A!7P1XCpS)!Fs+W6t1L zB4u!iLKB5hb2ap1n#0%^-Iz@_!id(gHB!{p5nR!D1*a>YGug8Bi(_s#h>V$idu+7x zh?a~T=+k*%-@O;F)26R}ZN<+`<&)UwC|IOvfiv1Gk!ssU8v9D^=B`%FO`@T(*8V!O zwAF0t&wUq?{JAdMx;-ilNekky-`^1aZIasVs*XRnl;e1|ec@CWu`37IUnyH5*u_A8 zJEx6npHLEt!bRD&3$=!TXW_|u$U~%vqrC`+NhBa9^4=(+H6#kyY@^txka1Dg!uQOQ zl-SRb@1~yUCJ&w?!=-2?K5JIdcr*)M7O0C)S5As=rv;AZkqc!ccp{kwHdHHm^^C3z z)rI7e98O(6qoyd~`WCC7jKLsybh$SbQql}ZxcmZwidDxdJlHc;h_pY;q7W-QldHV? z!;jOTh*KZ_Di`9rpbn?Tr-iO{RTK!)8PMAaG#M4zqaICDX<}eP+&h7g8F%qz* z<1OXyQj%?7IF0E(b&Y{|%-fp8pRUXoE%R&PGH=snED)^P;#yp4F=c55~@RQ5(!?NVm4h=Pp7mh#}(tk$`~i^N8Mjhq4Ly1y-wwes}J$kJ#M zJ1?;$)Ys2*phCw|&~2KJRu;4tIAAa1(@*t%mV_btnr!*D-d%?IUt3LfT$>Q?YWB2s zw$2ESHQorldU+=iI4;uHcg(59Zpyi_HnDHcp=8_K;76Voj)Mi9NAKg+$NR=+Hez%} zw~F3W(JtDuq6F17FkLjC9>bo()2~B z^z&D5U2%mmKTlu3G2BTQULyAd$C`cYs!dc{eWYub?-nrieu=4|vq6DZ{6(Q{Xd)Jb z63Tw?Cb1q2nAU@MS(_sB^z%OcE%aG(1_0(9iA3sE(({iFE%3Kx{b)*!Pf6C?H8%li ztQg~!d22ylUz-H(^aI_oE$w=2HNcElI8danxl&DB6Y#HhNB_8@N?&)1u=C-{JpEx2 ziweenL`Y79JtH^XfMkg72{LXD{kE@JX?}9!C9+5Ya=xllMLV69?%Kphq%=E)^S6{o zS@SzSl}wNY>f2IM^r{xCRA0U)b9@nlM#D8FJe-SMh_CcDt^Ma`_qX2_dIJLDFLriM zM>ky{kaA3s4b;dEk7$}fTRCT$d2>$?sf{V~Hxp0Zo3E@urLQIo5#Iqs0c`w#Go2yy zXH1-mvFR0)YvxNj1PNorx_Of$Z+MaZD+7L?%Q}pKiRQtt5L&X?Em7A~rR;+e(~MN}Y|8Y^T%W zy-eF)(SGDaS72=V(dY`L7^*@sRF$q6s`3(-l1XK^5@mBP`X$Ikp0X`1$nH4p6rs4G zi*X?$_0>1YZgdJ<`Zq2l0Kw-aRk1hxQskp-cMbykR(WEx+|GHlUudmffs?sFbR5W{dNA4|NI_nbpQW&sse-#mOqSkR#;|N>J0r>G%fx z83zJ#9n3sn+Islv=`nuVa}saX97=}Xb-oUgFgJOVBzuLY_hx*7LSS!KmFc4*BvkET zwCR%reIH>ixk~@6+o~FK_k#eal~x>W|g`K}x6B zFUhOT@tXY~w7A3z%ikrFK>Xb1MY5`utt+;1=6Yg#IUS$sVsj$cXvq+_r?d#Mh z?MuDVzO*ClOS{s(^h4U0eo6b%Pif!vA+`V489xwb0z?7el3DOZPiy*`-H?bmL=`>R z@u%$gJXclR`zxL({~CQg*-xxkXavVB4_?MFv-uT9z{&4KEIi<6vAruJutkZ+BZ5nm z46}+3w~CI)Ec!M@WRj(*1e=yxM_NTkWftAfE4NkjLaXR#tEe9BkiMn$;XRe=u2Qz( zo5L?JzXrtOdr(R`MhFZwWf$`+Q#OuYnX>U}3>YGgkrD!;Uz@{UQ$%xB}FZGrImhP zc#Y>1L2-eTz)RpJ@Dh_v_5X(mFTsTW!7prAG`R(4w0?icX5Z z;DUM3$y%Y4VqYoqAuF8Uq`Bf{Q3?UTy+CNF_(^#ML_>5?`zIlwPtUhxnuF5MbHVQ+ z>1PH?*;~$#Bs8P6jo(93(TvhIe!m|f&G_K`@q0*Os_OV~@q0+%*_bgfjr>6T9ul5s ztH8$ZAwg_cFa-Lf@caFsezrQ!j^8pFg5Myv;J0jS7Jf_QjsFV#9+CuQpp=c@QhHF9 zDxi$8hR0%;mcA`G#hoiN0g z=>rM~7H1wK1{4s)6+T&N7!mD|={TbjlNR4?^BPy${$z5VnJUfq?{L(v7JLSW@oS62 z7NgX6DTC4=8Zv_y-gibo>L#oX7b2@~<#{S)As1 zZoulb$NxX;-==>9rp}&!0g$=p4=7;Ie+K;(A1^ z_3zg|Q{F5AlEnkbEiiP8Za4+6_0^{d9)Qx538_B8FNCT3B)_nx)u;F!&lcp3xs@Dq zXPRW!)X@I-sUMbF^-1>tM|&^9S9a>_ zUAK3Y%AZav zujY%@RU!?@$70!o{a!zPo~Gz?_3`)(L~5UQa^-=Qt<|Imn|6w;Eybsj#9Wc_yll3Q zk(`8XIgA6WROu1PB&-*%kBtv@(38=|zGS zbf(pJeX73V^msb8*=BvIYEl)SQuSH2y)3nXKmGmduP?KIGT!uVeMt40y`kb%eP)l( zsef7;{1~r`YL41qJ8WOPckbgI_Cf1Yi8kC5+1cFoVMoMjFUxf|#|USqF-jp$Y<{l}909|`b`rB<1|e`^-!X=^0I)o-s@7wGGU=aUpt3LiOu zE2)R=~kGX#y-J(^IFJw)aE~Y^>ZM-kjm$dO#TJr9h*)raLeHQ4Ji2b(#+|GygVu>Z%#Ya;Xe&hJp`R~uyg zq68m+&!^MZZ~D^v;3!STF`Ei}5R`U(!1YV6^)uEl8(3v_#sW6!m8{=^i*pcSl{OLu zjzQM1_F)Y6%=uOHANwRCehKT~7SarxI~tNtj+oPGhwJ|@=8YDIyPDo0PLE}0IP~|R zKz*|RQ){mr_#&%O{`wSu277zE09vv4UN*uuUBSD-5nln=I^bjhm$Rp>qkXTI-C=BNtvue* ztMNGP$qBMXOTm3^>tSo<$+nI1!N%6gQzFv93dz!n_Ve3z`!{E_PZkV^>H&^aV%P8N z*;08b*|sgSMXL|wWp3+O`IfHw)>?TY)#yoS^vTRdt@iYX#A@ASU=&AKmEz|k3>sXk z$cq1iIEOg*Z>b`e@0RG^iFb6%F8p+v>!U44dYwBvj%$*ddZKeuRN<3@R&hdlyHf1;(oJTE>aU~x~ z{wnC6(O-*y(;xa*2CX0B@`J$pL&EQKh4;`XJ^?Q951_POV4pbsW@S`ID)NrAD`Mq1qXnyE;pD*gf`<;vB}$`E)oPJ)TjY zbzD7T{~4k_XXg3z-0M?=#8(fR<56SBNSwp!rFMP9J>KGkF~WCENsKl&y%X+So(Fld z>-*^*3x}*@yQ`Xb)=HJ@6kn>Q#q& z;>zx6aeqYrYP)(9*m;Gkc{R$ooyjkiO5#RKVK5`Eu!zwe!FRt9t z)59fz=+Ex@`FM}iK7xj_+y9cQ_QZ(jyDoYooBlrwq>w!{P<;)5W&BO%?+X4t&flf{ z*&LIChqB-Amw)2+dP8=ryHKRxL(5D1<*}vj^8sKGdE-YxA$(F{2}R!M9!|*PHbre( ztCh5|&vuiQ^5nhQr9bpta6x?`&~rzR7cX8sCtjM2e$#Wp^qtU$If;%+B9|3BR2u-X0P1j zMLX=0`@_#Qb99_9OxuPT0H8n!Jemv;eSca_sqPCv)eOlW#scIV)4XoX) zdvj*p(turm>45r;9p~5WZC2HGeb)_I-??>jds;Wuh@n5rGU*2?rj70W;4PERDrz!T z0L^x@_0FwzfK*76Nl?!E$RsdSd}n*z;U1IF{8K-nvGC3A&*$H_Ki5is{#O1Qlh&Uz zdNag>^q!dgfWlaZ3cLNgGut=m@m~uJ#6q;sGd?roxf}OyMjM^zEk5-{adeeyS=EqsJnO6PG?B;-)QG>Ine$eKJElPol+Qh6!DBu-a@gqZ!xHJL*RaO` z5}l&@ezritg%*K_zs`hVS83MuWIjX z>#+AKDWl>|wnyJC&~r8((r;>){O!g8(!&qCm7I@~Uo#g+@qoC_1%rpotPsO)q(fRd>`4&nbAVfAxK0M{h=K3buSA@G?ulp9eBwE79dIZ zTtXITtrX3fyo5m7ed3?q9TH5>Yx5KN3==2~al{E@M~GBokL7O+Z46hqo39`OvFquH ztNUgj>Ft+?I=d7uHw|04HQ6^>u&$d1XKw4uZWG<61n|gZ)fTk6^D3F$yzmll(__6$ zXft{r(P7Gh#QVshcV_p3bWDF}9&h7ca)x^1ge&1&ef@${V()4k3hgH!o!y~4eO<)r z(7S0J>a;twE!j6R|FFKkM>_PfzW!DEQ_y-7b`*Yw=lDx&Qx>9^(6_(1U(}S{dJ`v> ziGOLI1mY~3)|;}61@QPh$utu=M_=<4&QeT3kW*nm(y|7_;K-WaNH$84hR|kq;t@L% zs;nQ`uiTPjuuNh+ySvKzLu5l){rI~R3|PW(2RH=jx367!-Mx*&XURe4&l33fSIjHl zFr8T{X3BqX(T0Skw5RBTr4!<%-z*xoY}m?u4Sl2IrO%qz*YssywX1DrcD%$aQ=-bm zOMXb15>+N%vXwIJ#`FR?PLUql-RgBDNrqYG4wvOMeUjmL$u9DL+4~mwsH$u4NoIf$ zqBBU8s8NqP(O?1w5;2eflLtw_5C-y8kuW3^W?(Xj^MGIx&>>1VM(MqLR(t(gZN075 z-eP+#Rohy^D~Lrwd|NBEwhjg>S|4b|eE+r2+4IN)@V4Kt_g>dY)|}UVto`3>uf6u; z?5$pdg=6ycz2{2Asxw%#39c-?CEBVeCFwVhM|YB*sL=aHvGn(miJGd>R{#DOOQ**4 z=~s&ej#!!kYqZm<=K3-eSZ~m{J-Whqc}|~EEzbdZ*bNWMgO?}Kk~Y|T1yxwNw!}A8 zM%bbro0i3_@4ZTFS{7MUqMUYgQ|G5u&>vOPP)y6V3VsFu|P|29GLwiQ_j|$B)uNkvvWOCUx+5#b= z9Z3cCX=@(p7mHvNH0GGQTfl1;afhUXW5nv!>z4tMQ_O0Qh_y;|h@stAGy5=IU0^<1 z13(tgPH4{$t+g8h>D^^%_VDT_-^Zdvkat?j8`Vi~nH^GT5KFh?`~FN4`Mg?nBE7Do zHLbAmbH2IrAl#^xEz5h$Wpc>>@|-~!FB0a3pV4j=uax?u5_$IkI?rX|^$U>aKt2#@tO0jj4c$$BZ%wr@noIS#t#+ue(Go!Lm0wSv^n}IdDpy;$_CY2agz%H5Y4t4@n_0HE)=M z#j!%)zzQ!yCf7p{0U~Oz47n~(CRy`aai`@^xyLvXffO2dsMVI`36Z@q$u!6EJSAA3 z=K#VYHHvVICL!AtWNhZcKFP$s6vhKEHZludT=VdeDq%Whi!B&qH4FJH=rP|xTf2mg zBimn~Jgc|EV~%OaVDYj=7g$pCUP)3}os#JR9U%YQIJ8NS0DqU}PF{Z=je zJGG#u)u4_(M`V7EKR{f^W

UMOQ1N2Z2-lVuJ`ILjmnM@4BuNpVyV7J5 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

!ed%eU1C}juS5`D!&u#)!uuJj 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 z zd5<69A1R}zz{lN778eLh0^YC;*ZTX1^M3td#6fm?islRy#yytoSD77}VABVcJ$S1= z*sH{m{$!azSpKBK+yS;-Q9{~=kO30KmGlemGe{N}9RbrU*tiWfbfxQ*^d7 z7JTod_*j3TGP(h-eBOF06~3oZ;lnOE#=}28lw|ve3}rc_4gCkt+s9TItsx9= z$c9A3QJoZ;gm6u)5A0ecMr@oV^QqiB%R-#~~! z8GkBVcTOm8d_0bLmg!!yB(mHt&j`kQ!wiI)7@t@C6NP*5kT6-IQ#7^~4?zo~_@PT| zSdw>iYy=rO;RER~8vo^*6G|%9pL23{9K`P_jtoR;MD+@bq-%_$y2AF|hRi`>fuYog zxq5gxQ5<|96Bimy6{)w6t1~KrP({GIIyp%_Vxy@apx@{P~3NYE+{UDxC;VML-?7-XrZuLGW1K93?+s-88e?^1 zbb5|X!lT6v`^0JABlC~a>9e$5k&LYy9)FPfFAIk{=u))V`Yh~}<9nhyVF!2bY!o*u z*X$;Ri3Co-UQ^RDkcPr7p6NL3M0qIeEt#E>LL?GS#71TCLWJVzP`DvvA6+ue z62M=PmW>-rFCs&$H>7sb0)I)=;Ui4(*euyomyK>t;{vxcPBma4?47hG9c=}~+kOTU z2%gF$yY)1rnaDx5$B)n&GqLfG=%kZ2S7+=(q#cibnV zXg^(siI2XhCu5GC^x4Kf+T^rsN>+%#Ch`bQVJ&oEFT~;pgG-EPGucs}Z+KeoQ(?Z+{ui6|+h?8eb6pfQ;NUa|3w7riF zRW@!c;|Mgy7+nO;XHXeTqjbsiw@Jb;dZ63^sZOj7dKq<+8*f6?Kih~pW?2Q6-0lmk zlrLg3l67OTAFhiY+nn{RE9=lRO*9ZlSupm8{%bBpq=5vE9_&>HLbTK|2ck0x)F0*c ziPF(FP>F9+!%Lkop?%9ZCTuW%06_sl1K$lPg+&jg0Y#=Gd93U#B`mw6K&fCoLVTt! ziAXXY^nkH(4EmK26CVd>U2-3Egp5>^fD8>fJ%vk4!v4iEd{1)#A7)m;cjFd;bE{V5>k^su3J@5>UTN+}RgekWP>pRGd(Vg5OsEjD9 zglZu^NteNA0MtkE!bo}_>{rGf`eX}z%WcFssfFDN42xR*AOj*%&gOdYHjBw<)h0b1 znWa-1D4$4eCee~Cui!O}3{Ym4(Vz!S!qk$aiLhFP;#DDjXy(IFx-n@CpVLP7{9jc_cuS2 zYBi-|G6VQ2-?rNfFYxlWVsN|wZ{PZjrF2QIVJY@c%Nl{gFgN)7Ay@9F*RweZSRE0M z9EWz}+iY8B;fr%uY-hJlTPlYlE{Ti0&Nhw_8OafPy&;KjZRcgAAoBKixy&p9MY_tZ z@DwIK3-yr#$!9V6K5G6>j@AC_WQR>qQ=)!V)c)>f(nfH;FCV|bBF2!SHtsWj*62lr zQ0z6Q3BQSEujXy&L?SlzGD&;ud7XIhe^x2$Iu(r{%9H3_c}9r4je%4mZ-h_8IRfAo z2MKtiSmPzZfY*y@jwV;A=+MnYCT5}E)5!wfl*&3|*ZPChl8u*U5~C-COzG&;ls2g= zENKa>ZHR7*Xc}u;w8huoQxU65uqby4Mt&BoHDjkKs1*sf7JS(RlaVVEZ=u-wyE@B} z`S@Uc*29P%2i&6!k<$4Ua*>XDq+r@F-gnr;HmppNIH$$KQ+}2MAB^Aj1H)y^k@J~| zj@p%XVi2JuD` zN3+-|6`Yf?38!Z>m-_>vt>|o)3lMkxLuUxC)- zu0-lH-Z4=m;;@t`?~`53y&#${4-+xHOWss8 z`Ysj}T<=m)Fku3>GW&km+1}$q+FiPbfDq|t68-(azcG`d8G(t2fb7IkO`=YlGy=^; zJdE%J-Jn&I-QHfh`Xem5RQmfz%16i?|U$1^7-r48)?JMyTEr*xC!^?|&N>7Gq! zId5A(?k*Dy%M*P{=C4`F!S|mQ7*sg?B!)Tt>S7LFyDK%Gb7W-~EHedTf~ zl2y7zW2TfFVZ`D9!b)|sa>J=T+{S=0(}s~DIPjcgxyO(3HJJgyFHVxGle1}Rj>{a_ zs85}UF-S|goI6=!n){S=e}m2N#*d?N`YTTK0}L;ejetOHAU<@sCV#x|hDdmaE!)+zjBoLNV+KI?6Z zKbx=?9?PV>WHY12DOLkJH4LT-kyIXs_;||ho1n1|V=BMiM1<0VWPh$rAX-huz|7P> zxOKshk(*8zXcQUS-1bDbe0>d~2(AucP0G=X0T|1L5F=%h$Nd}fX?He@Bp1tTyu&lN}lrHQ?X`Z@lvZX4n)@~tp5jF`-CxuTLJF;cORMoK^!eue={&4~$8 zS`w0ww^mOm#EYRchbCnaiRPnpxUL~N8@goXBr>)jEqVnepit7^R8N*kQTfoY#^sL( z%F4phSZ)@plwl0@7GeMxPH`ALNheBrLN1gt^wR*!PPUL%V}pgX_QUVDVR8O>v-8nL(dxL&0J?mx@l@2L&{DLA1PAc}W0`bs zjNA@9qFHHLbUkDiY#V`B0GYO8N!of-2eK+rW~M%u+M@XMK%i23I8zRbVp*OEx&cP6 zt3)!&`)AnYC(30}G1;Iq(Jc@d|B^<~sd2h=N1pXG7qR4nyDm^1bl(8mv`nHhDSmL= z!b{{XAm1BBqeqqw8fqg+${9L5n9Ooxia2)sp2Pz&s4X>xS)ya|8`Xg>u)s%Sr9u+5 zpbk8a57W|h2No)?$5{?0Hd=jBHdMG&A2un)sGkbakuGD9+q;t?6+DXHm{3R(Y+#}I zbol?Dq}ShQK zU>L@=bu<@-2w@}iCTD|^47fuD43OrMY&`-bg2i6;C**}9%Ro$&)fjz&ayJ)+-=l3S zr*a91O0Q5?w`|6B*;p4amzTE=!%v}cNL#}c;K>hBw&r4I+`vU-4t9&0C!%iyg}}9R z*T}H=gg!B`(ZeG8^obZatVhIvVSS?GV+KVJi;U~rGXdd7<50! zD=Lg6{Kyy2P-B}v-}dG|B|QP`OkW_G`^{#aCSP1U{G#vdUWZ$(&%EI=t?S4BD@REN z`Pz)1YA<}^eAv$Me>pu9vAgaP?WJ;adLIeeF#4wFb1|PZUX^yO+N%Rkci5JD$8}2d zUcY6!Zz{dq_e7h`*}wSA=rlJi^HS#gH~*BP$YSv2fI_%7&5 z?ShrsN27V12`8RITv{^v&z!pI*TeWV} zwq5%U!66+(!@@NYog$;6J9p_C)2(}KkDhV8diRM>=-aRVfPsSs4;lKzu;JRoBy`-= z5osew>C-a|nWK%Stn4v4V{^wn`P9?nC*(adanj@|Q=gso-1O&Pm@#wK>^XB^eCg$R zugrh-wFR%gv2fAiC2zj9blLJ1D_5<4`<*pw*R9{Manrk--`lcv+xy#he6Vv@{_Z^= zezbSr{*OQT^uWQ-K0kE$$kAiRPkeFm)af&4&wY9R!o^EpeSP_xE8kwd_TBeC{P@%L z8#jNxb^DiJfBXH;-9P@k_g4W#SNx|52pf&SQHhb7dox?)BfSExgA?a5VHTPWePH(A zM-${hmS~aZ1GVJCyK)q;1>* zv$G{{zR)cDOE#Vs+lGdQqjY1_60xpN!UWrdNfUp5e--9+()Cu zppcX^XnZkhvFQry4cHr%ojL-hPL#(QN}r7}5wWpx{iCCX#YaZ;9M-dMk518j(5=U$ zL5`+j8ACd@T;bY0OgD&zM`r3$he3EsrH(x;-2e>}+d%VA(j|OZ>3FFSQiaWFvy1mk z!>}!q$%=h5D03Pw3!C3)v$G7CCb0pZ3B@VOn-aM=VhRy$gPBILYtyJaiu4s}6_QFb zpq42XD7);;ERhNifq}C)V415!AY-M0Q}b~;kUB`Q+0)(=Mxo zgGlHSX#xhp3$29ty`uEQ&oD=2VNCa@Z>9H%P{czeAYx!UX^~L}Ljv+k9!kx@C$NPi zUtIB}_`o}#_gM%)o^X&0>myRHi2;6TnsL?py^k(uWP*8YsHFpegru}xB_lib%> z*Burc(WguFFt||>hxLf=F^t^7T-n!0(lN7n5644}Asb6J()1lvok)G!s)s=jsmBIH zY$}kpc}UC!{3SWfL>&@q1x#_JO~eJJjIq$V7CVoC_5J4JKtnbt1PgRn*)$S0v;4s` zpuS^UPcd_lCMFPwm5iy_N)^hPn$b=EvxC~_N4xuofDOPFh)MiNwhg9bK!-49upzP)0nLKr0m{{m93EK073QZ>_ zB^m#v5Ji*;a|v0ATWA{c@_LHpkW!)HAfTkB@U__c%E}ade2+D8E1;+FI@yGiP*iN# zc)meZt1k|pQD7QUp0QRtlXy9>lhVm?y&04Z5v;c{#<~_`v7F96(yc{e zv$zQzlIjd0jV1y(453TK;KZX6(*Ti>?v#}P@=09JF75AQmQq3z?h2(fiB1&cFU0?Y z#EMHRUT^73JyB{pX(1IH(hLqpQcZxDo`$RdZGbe<;uW*`biH&`3@gW%3d`A4QTtb7i|hio(tsuAs!o zYRQNXPo%bn;6)y$QEY6M_AZ%a2;P>Kc#t2Axd_R^F>!@bVx&d2^h<^xm5FD`M{-KI zA8qwB3&E{g(mE29CD?C@u}iwknU)?Xtg;N8@EAeeUkHR1@`q`dQE&lfK92fch+t~S zg6lBz;sCqIAGd|&GefutlZD$Y*>__f9UJds2ldA}(WFtdE=hg~Sek~ALt={1Q#XLr zs%*R>6K8Y-Oj)@Yd-+Hc85xt1AohukhM)QG!2Z(TT`;N6WUGSQkK0=#EY6;Y-8#jP zXh3JU=n#Vtk!(nWCV*SujFjP~0~-e$bZdE@W^$q&Sp%whnOxW^c<_##P&Y{rnC zL3K@FOIn;^%WcTh!eRo`3D99YA~vc@bLzvz){WAn7rN+%Ja_1RT<}XbzIfm^2N&E_ zNcY;%yGSm0X~+$~W#Lb+8__FZ71;|&?zjuf6?QN9dmyYEV*22>HH*;(G2HONnlFBv z;zne5ylzz2|K7OIXbM?gQb{hPi74q;qU&zPrs~`kVynd%~a|5>X z@b>~C-^~l97TmqiY8w3d2zl<_C~ZD|D}a2wfo%Qkx8%exqu#tf=c6;Uf*)ZKX3TBpv3g1SQ+?N1wEEV>3s2974%pdKIIWM z6*ch!UMu2PkD7R)43+WgkFZ{Vs`#ZBQ@!zGV0HW+K%033_cihR8EWW_xV7<{h8lX~ zB|#CtqdLi?+MVOH`=5jeoulPy^*6oe$zpZ-e{91_&p1H^v0`Z z&G6e7^yrP(1e@cxKj_gLw9o>-I?$sxsInz~<3W$!NWC?F+kqavL4j@Y+Xyyqq~0FC z13-`7pv_?XHU&L;BlV8>9Rzyx#_NS)_)P^pmIjVA`1@nfqc>g%%*XFw(4#l<(BQW< z=+PT_*c4^GkKUJ5S6W$B}|V4YA{;FmX~;Pgj!QynQmPm@z{G5(!0b25eD$DnsW)O}Zr9zcNOr42FAAAnmp? zAKT{k))qURsUQ`On1hW;bf}P&fTTYrH5T-u*`hz5(aC0W*S>6zG%X-uvcsfM>!T=* z|0X`x)SzgAgeykJf%ghj6M2mj8y?xp1W_FFEwmtP3x`tDmCB_|w{zi9&2{K}zm67C zIY0Q2h?O@?!q{HOK(2N*tK@>1FfGj;0$W2~mFK=K=2tc?)vZ|XwRwJdt8Qbbr$%B{61wS6$*8B}Gx z5M~b7$|_vT04!ljH5M=~Q(Uwm4*DcZ=ij)7FqF>o>c>JyD2gCXk*G6R5R-^lQ3mMg zbRbaD`s1Dy+#!NlGnI{s!PWvnS6Fv27)=7w%NAL3lp2+vD3#J=^dC$!5$>*_{3620 z`byLl3!fsN_EA#B=q_z}y;Yl7t1Zp?P)owCic6a5&ur6|%VS+X_ za-=+0ruVkw@kw%%t@3?F456g+`(954pu zv=?N;4mH;eio%KaP*=LSP2sS;_K&yrM#0%ggTy5LA7ElmIcOkc&fwNeM?M?0hAVptl4 zKa_yiA4l`}qC7%Tu~<=wfm<4d5dKdBaXOSX%#db*(HlRpoRJ#LiO0NoRN4!GY;7~M zZGUTj(I4xAIP$5`mVn}{cmvgA1n%kJmBDs1F6Xk%EvO6TsO%#-cWWM(Jxdi4hUDDC zQW$rHp?3%5bec=)L?QVfq%a;ugn=H+>31oNXAxmKBaFv0ygbz53%l=+6k}DTFwRAU z>54E7q%bn=#z_l6%v79ZW_GKd0$m=3HTRZyZ1{-B=uAQh?t&pdsplyEW($rAyCnk3 z!rWONa*wj)A-k|Jl7;<^d&jbrcBqCKYl8-iXc4PTJY8Bi?F!Ht*>y%NZhzAHD;(uA zSchecQY`#^?&wB3ZF-b3t*|^0Px2pKXc;X2BZ~LOy>`W>A8(NGeP8+bl3;IUNVqH_ zOjHsNRCqmkIuTNsZrIDf7Gc?$am$@+g}TS`qX^{3%V84eZz(^fFDAQ`w%OhbuWh3_ zSXitv(ajqyON>|MF&w(&zg^d~>hG*_)|^;TE?Qb4b^ta?JjZ^sMhkKuu2W721vmdGda^ z!7ZD$9Ex3Z^0~uelSKX!o>}p%>ibXgS7t!{j>(}WQ7Y}jl|&Vu{sDgIHV5pa$-v4V z#4Mv+W_h;?q%Rsp8$WpA*~u$Nc}2A&2;AJQZ0PGgeB0DRndbd?{%_Ps*>2W!U_PB? zgJU|2WOb@f7G=%-)zZlnxPz=pJLHLKW6;YG`PuUiE)uEE;%$`&H=h0VTg&f=6F$kVz5xn!WHh{JE3_0uEqPu$8|0=J}Zfg z63EnyM__{kJH~6m?B2XTQ(C771LjjjjN4R;2aIboX?%b*_?|6ltACy^+rL#rcsdt} z`3>C&Bk%Aw*Oj+3kNqI|DSH>ETq>_j8@L{^&^D0nU=UfoviL43IgVmPXJZFTRgot7 z%OkrofHJ;3(kuP3&z+*;zDZfHN9VfGxU3MIfcsh+pJ{feE`wrvSxNn{npULv| zZoJM-+xF=I1!Nh_j!BweHME{m(#pIaBv6(X^M?=wdrzA+Z>xDG_S(r4O-OJ2mKMx2 zc}20&lT>6p8ME9fZBam1g6LBCc0B8ODk^9#wQ^j@`x}%EB)cgaNp_PPO13MfTCyAB zncGNqlO1Hcvf*SmW#jo2*>;vQAM~cJ^0TzBC5+s@avpMc*>2`Vv_k_kPaOG{?xbK` zCz-B}4rB}t5*NfC3Qw0Bv16M4%o{C}%=A$HbWRX|`C*d;w%DX)&?D(g$}(>m0-u(1 z#(fK!0bwRK`)jTpgDsT9uop)R6UjLXR5y$fn^a(gqwU$WA43w|w9u7VwxDwUiqhep z2~Z%BAuF}{TqhI=N<9|UPSSZ(`OW)WipGajE1H^XY4b7f12oxUdOH$nc#Y|-DLc43 z1|=rJS=M#RHAfyr60Ox-%N)T*0gE(O-#pqQ(f39;L(iX!G-T!#9MZh@>h1{q87%2x`LBi=$-llqC zt%cIg+zgXUqx0HlYK65EmP_WB&R@M#H7r=D=)%pOE~T244+|5fN#;Juba7oV&nGNG z=p>nwB=aNJsr}r;q6JqsZgz896yg*XBg~S_Q<7QNz1Q?#Lwg7#C3A~px_EH+-X4nv zd>h(FSSXn{B(sy}t}^FB`w1^e=68~*Db3yIm0ptfS?FNl2g&T>#qDo;>5uFQ9VXn9 z%pu;~zFjh_`*?r)ZfLTQE16$PW<(k8zO2l&UzUfa37%!SX_U;fk{RW@t=Fre8NwRL ztWl2JpOehr$}Ktje5gs#mFMOu$?RT%+jmx&-Ev}Rju2Fln=2)=P9<)iS841MBSW7O zd@6JEImvXb!tKvgS$?8d=rh7S$sAvm+Y2N!uNt>IRWHA@UFcL{qGWp1;P#o4S+VB+ zfQF&dh1VprK`m}yE1B(Uw?0)dbf&OJGJDnG_Vbdd7Xz0%ht3u5O6Ci7xxIEhZmzFa zZh+72-NB6F!wpLo;r#7|?w~{f;YzZIY>N&h4Ior?yn+xLVjC znS)z!yKB(hEeAr@2l+vO%cahMW7_tQ%Af_OWgE z&aN4y^-k;A0FBOip8@K9I@Ebx-`!c_T1kV#Hb~y9GvEW(4>JFdGoY7&L&>>j6 z`(B4cSCX+?u?MB#ka)~=L3WL~S3EMzx}giuu) z`{i{i%h>NE^m>`=wW}2qX1EkamJh7=c1B?`);S&ff}}m4mT`b>$Hz`l#aS6Tm%)|^ zXtXIr&ZC33G;Yfx9@}}DNms*Ri@4=pNG2&rvIk*FnmDrSr2I^{I*7@0T#{fjQ%N00 zf+%hpGV<|Wl2V`|qco^IkSB19H;ch53EdkGqgvHLuBYwjPr{2-B!1BiZt73XrrWBx zw9nIjurg(jAw0?FV{|ynjj~f=`}U&)V!YUxTPw9)nRw3tnnF611|b7$O_|E0JERMf zswU4Y(L5nc?jG1oq^$=6&g<-NI>%(4YbO3@DsW-yG}9J#Xc+*~ORLMo!b zRO;+8O7tO5IlNBR1{M=omXXY5D^fzDwfJDss$Herl~U5?Y10pVcl&w>)g51Wo}dv# zn3ZDvj<_BV4F99T`f#T|lESZdxcgV9<|!mcX*}N1OZKT;u3G#Ync~&~bHd+`@h;W$ z+2!FL@6;TW9I`IFy1vo}Q-A(6Joj3|Adhzr^6bg|=E&TN7(LRj<6W>+4hVD>>*Aqvv0oKG!8 z>B?Pbtw)g#x)zF`8?_C@(z1%jl~rtZk|VMS z4XGs%PD+pTZ%L%P<`A1E@ zn)0Jg*%_GJfE(hhMKa2ss2`WE@fV%PCj|u_-UOhqX7u$FSJwe$latW73JbtQ@=qBnGjC2S_KDc|KJe_(R1CS4>&a z0t;+K3WP!-p}#J%7l~oudu)jv@60easo|M7>m8E2`Qi`kQ9@LuM9JbQh|BCRr6v2z zG)4YO{S?`iG)3hTi=nH-i#T1?EhfxGDU8hfDGy4Q&JT&B`J+>2yB^#MYo(?@`Xg89 zl%0Z0({Un4zOEl<^s#%6>0M}_h*=-QH8GF{vD4AKJCN2bpb^GN9vptxLa0JgkRNe) z%<67grZ2K^T+Z8?L#837PN#v0ZlRH)f-?b$az@^C{E$^by0}2v$HfbQcU5rS3A7>0 zk!+Dw#Nl*N*F3d3{lWhe3&vl#GJylfOEO-8B0*QWn^8Vc1+gj-D=ntxVh>z&PL*vX z`XgpzN~JaXGorB+gv!W@C#7XBCA;a8#u8j*h$71Jt);%^ZqIAXIWwy??_+rLjURzx z{yLKRP*zkGH?>O7xF9qS%Y^!W5YB2`VBs@yEdzGcvV2)R>|c%l(n8sMqDqwN5uA*znDNUgE4ir#Btf)`r?WTF|vG3P-L zbU2zx% zTihNxzUur@f2yKfzXvV9+WcMYTz|I`-u^Bny#2ksc>i@rKc;@*?keDPBTU%wr{E6y z^p@N`VS2)z2OxhKf;;e6k=zkDPqJ4f6P{%xJH2gB;qjlD)ZfWYq(|{_K9t#6{;=1O z>@0t5`%0cHLb$RB}e&#yav=)@?MM2ySU{i$7WZ9bo?B`h(soQ@o<;5C7^?`mFsa zeK)yPCUQ2R4_mFT6=`XijO{V9HVijTmo{b8>prN`PIb{e3~^+$X) z?eE1pJ5P_{ADRBw`oF(af7btje~q&Jfe+jMPnY!m!60YfzR))&5kz+EV!*s{Ika z9^xzcAC~1=c^UtQf0&ehq4kG9#90geVecr}8U4fFL`u)x{z%ANfB1{!kHGko;UC+n z|9Sg^ejcd*Ba=Lv_HQWVmq+;{J=^}D_aE;6C^Gv9pAXgksIO!Ex2Au!uH~z2n|Bm@Tr$?|krq63E@i|%l z=a~O<{5%T&??vN3#?=3E|F<3g9rOQ3*Zz;A{@*eGe{}8d82=sX|Bsvg-!cDxbp4;k z|NO^H|F2Q%e+tq6IoAIlO#kPY{}&_wg1)Tw|6o3tXQTgXh(WZt^*_h@KgTar3~ZhO z^f42tb?pDcBu=^ii}wFG=Kq{N9P@wPKmP6ge|eAD`0tqi^ZxND^goXIzhnO&Mx6h& z{;v_055&&&zmUH)O8E=C%Xa^dWBvcZkk9g!^apx;+}Ho}QHRG# z|L>Up^Y$vK5%`9JUg`Qu-m|C9dTvHo8)|ATDw zzdrw$kAa=|u}uHXh(E(kKL6*~|IhKm(3ANZ*Y3Nr71f&JgU|HrZa|IzV($NB&N-u*w0`9G&` zS^r^s|Bqw;|D)^w((qrj{_8&=|CcoVe?ACbssFRR|0iF0{uS+`_WZA7{?GAUBIo~@ z+~+}N`!CD?{$Ns$`M*W~?>PU@>6Pg}K)WK*heQ9*);}Eg|2+Qp{|X@N;>Lek7$kp2 z|0Qtzcg+7EUHjAdzdXnKf6?*}#uvx>KObKUUH<`o>S6p<>i_=j`+xJ4^B>3fuWJ5> zreoiKS^js-|Iz<2&dd9M@|E;o0>}S+<@s;)|Nr&OyPviXl={CAB1#2*y;pU3_DpJV>d`!|}@asS`Hz5gHk{~YK4IlUFS{)6$wG5_cM z)iM8vo&)rdXLJ6yA^4P8|AGGMc>f3V0^!W@{vRK|9Pj^e{tC4Pn`ff?FcV#cjqi^4 z|2RI__yeT;Pv8He&Hay={@=0xpVJGQ|KdmO{vXHve~SKxNk_5ge;nh#~D z=%GHbP|!`DG@d!${{wzx`49LBCA?tpe^lc?C8Wgv|62bq*sMSJDcipg`ClW^OQH1# zo|N}L{?Fh4rSTsRWIs;&|2!rBfp6RUzaIDde;xb(IX%kyKga%m-~)Vut^d-bNjd(g zl>g-O{~nl>(fq>$KO|3*o#tsCU|Pt6*=2v?V`hJNl3u8|_|%R{f2;VY57>{D{{!WZ z#0e$J^ljr8n?J@U;=jek|GWAliDKgyn?I08@5DcJ{%Y$FQDXZq4P)mRkc5emxkbn&R=Ey>HHscpoh-?5wyQu`#(x z1NoD_`l0iG1no~G_|W;Qtv@<1>8T$&f3@vz=l+kXvrkR^9piuT^aB#LqA#WVQ=0Z) z+xXkcFCeiZ<9n#3f83+ z+uyGJAN6l$&-O?D4brhe|7Zl(Ek^Yzhe2nWBs4)w|!{-tCIhDfd7@~^?!{2`6XQcPxsY4 zH2q=xQ#Jkr|Mk@5uaf>tL;0CUb--pXd4Jaftv@=(e|7C|XZatb$3AfhX+?T`E$s>xp^|7ZOlbANlbzg_!3Xy2j#w{QE~ zwg032?K=Ml@zeR`hwgtW`#+uksj4Rb$9?{f`d3z2|Hpp(#{mA&^!Etb->&^1nLF11 z?c4s2@m~f0Rq}tw`F}f)|8}1L)B3mL{J)C+_y0iu?>PT&$M(nI=Q#hb0{<$Py3|8bZ9?L7ad^Edfw=ASC*pXvXQhCSzhc9s8uf4Vn7F zs)qj5j{mg&?>PT&zxKCt{|D)@PYwM$=Ksa>4|Gv0`a*YOcBtG1d$0e~_}|W^d|-!` z@}aO8;)^c-|AX;A+@^jHTK~s-{HO7+BF`#(Cb zWB&i~t4|L<7;cijK4hX1ORe@OrDIRCFs{!zvMfq%#Oe--#wN&k-X|LFhtO04{k z&P!Y1)zn{2|7Y)Ss>xq1{X_rPUQPawyZ#ULudTBFYTDoK@Bd-^De33`JJ_@Rfq#3R z|0n%_Tb1=!tN$et^r88$TK(KwJ!2cuQ|Bn6tD)6tC{?Y$itLcA_p#AOI|55)I zD(nAPkN>E@1{HW{{`&~p->&^1^>1d+_DB8=)a0+S|Fijr%KeXy@xS=~gC?@-Usn6S z9Q*%h`OykL548V4CH?;w-v6s<&-#P^bX1f7BjEq`9{>GS*8i~||G~gZ?D+3k|97na zm*D=7s zRnC9t{?B~K@M`MsnEw}#Kgayv8b7xBkCHzBuWs-D4+1T*{U7{SRD*xwoqrSmzuf;z z`uTra{|^0|_Cpg}^$#olrMCT%e-oSZ|Cjnt8viw@P>JpT=)8{gfBUw7i5~wUJeRe1 z|1Zh!e}MmnslmTm{%_~?KQGijA3V^W{NJwqAN6l;&-O?D4b|lT2gZLfi|5ebRO8(~o{Fn6e|M`yfe^uijSV*z)i`D-S^ZT3l z#p)ka(tl~>uThgf3g^)Ot7v~a%m0q^|8^e#?L7Z?-2Y#~@BgRCS4m#~NByg)9RE~} z|H$8Q{=fL~^WT(z9OwT*{3_{Rt^8M#=l^v6CSMKy)yn_0{)aS5to{%9ucHS4U{0#| zzn$fOTK_NU=l_H4+5W)4JdtN+0i=;8BMS%2F9-B?ZjkNf-|_0K~C z+Oz%bI{qVbUwgJcRbEa0D(T;`{_mLotD?V0!2j*q|Lr~ggZJ8V|G#7Xzl5*Px^=XltFr!&bN?^t=l^N{4Jo|T$UmyuANe;`Lw_p!KU@EE zod369``dZ_52VLFHT17m|68KRe|yjW!GGF;0_@rT_8$MkRn}h>|F?7hr}O``fMd`0 zw`>1L{R8dU{>Zp20zF7e--qnmj40& zCH?$ADd0-%_>a0f*8lC>{&toBOZfQT%cx6EOUg1B<8@itnSx-pM`t7%l647bdYupo z{g@N}(f%;{NPkbz3EnIUY2=P4uiFHFoWNT@ID4n_O zP?jj*pPu+-<+LpjmEGT_5K}u2sMYHYNxZ#) zro`MVotULd&lD50i3I4LHKb=Qw}cW)xfL`gie^Fy77;JQkf9?JWh<1f;3cG3(@LgH z+7u7P@ozEKZ){`m`yM)DDv^{q2a(W~6ky8KC8edLC5c(uRFjyZ1??wOx(P9zJDbDC zWTX*cT^%6$wjU@m+NUtq-;Ia@_R-D``pm)dnAL2*_#wAnjO6AGGH(d^FxeE%M?n}uM zM(tm69^B--MNX5KUA7f&TH^CM6H=T3P^GZFG<2SmbUG6N1q29CfB*#uP=F>WK!5@S zC_sP$1fbd$AV2{E6d*tW0u&%X0RkW|0w;hoz#UK)PzMkWKnjocqq-;o+j7x9yna+i zYI01uSzXceZ0{}UPiPD!RSwN%Xg*7nXQn#*ZLd#R7y7%f`cR!9#y?n{oJu*nxVpJ} zc$W6^_9;`=*SB1`^5rX3sEDr;zRJ>9Mf$4Re1dKKa^)*jtW>#5)oRsi)T~vzjwsfx zTd!XI`VH{;;cF;;jik@t=4)*8HTj!Q5K&+cO*4DU=5Hp5)ed4 z0~`ke*8rviMgn31L4Ya%BA9C+oa2Cez#6~;z;r+^U?gBLAQlh?2m&+!Q~`JasAJtm zqg?}>2OI}{3dje%2Ur7G3RnP`3z!a=2*?E(0V4s4fWd%xKrA2{5C&)m2m&+#Gyv2F zQ~{I&cmZ4iL@;+jIJW`U0oMSR0p|gy0mlJ{0G|T(0`dXd0q+4e0@eUl0+s?60TuvW z0n7!=1WX4^1xy5t2jl{>0Y*RuU?d;~kO+7JFc{Du5D(}Dhy}y|q5+)%VSo@oJ3wnd z5TH4r37`?60iZ6RHlRA73ZNpO9H0!q3*Z581(X61Gq?xiF5ox7ZNN>yb-)jRYk(_& z%YaLO^MG@J(}0tJhi0MrB21=Io52GDzs^rk~KKotP# z7b*g1h%N^pzFY=CyqfrSX@Jzl86R|ky%d0&fA-s6z66De<%Aept5=csEkw&H_4>G$xj|<$PU)TKKh&LSr$Nbl;hz~ z_ID-8op3;YU|r0lx{_ac35xQgd?_r&Ba_$@#UpnDvXdX-uP8slGx--5kIGE(Wk0G5 zg(WxHPi{*JQJdz*bjp9`WP&`V9{HOu3e8gy7rgvLE>I(!E*X)M|qwrGL?QrpJb|&L|B1O=-$NcEY#P zkJ^O%sf^@DVd!r;j?zzV$HM#wcT^XppB%n0Kbe*a^P@JRxP|#C<54)ukJ_G0TN+gQ z$@L?=Q#hp`IDzGe0zv ztsmKo@*|mm{A3y=K1O(u>5TFunjnz*Tw!!(>qmH_&o-VdoyqaYlxaeyGo>GuQT8WO z=_k7rzNoxPKU;cH`cZg_tBgl=qcFC#L~gPl;Zu%B=_~!@a>}%%^rJZBFON-1Ke=s1 z_)~dgKgv_4Gfg3W=6088Nf}R0vjyT&nU#KWnt6rzDbuu#M`fcrP{S7KC()oXKMKp@ z72+q;yi9{cGctZDE43e`rv#!ena1SyB79K2seV*eDpQHmbD++ICmA=?21G*-f*azu zB+HWAMs!Z|6A|DKAUf0l@&M+Hor`(r#1^;z_jtG>3W`aE|~5zK2G< zhsL{y&TF{OKY8UmwT zgh*`$RX@q7(_)cH5i`YTNT(W(!E#)(Wg#&NZJd_DF~e7*C=W~S@x~;Pt);;=4NITE zR1!6i1)o4^&%Uv-M7K66Q5`ugre!4S#>xqs>mQLJ#stPm?TdvwY6h%#j?iTQ+gc*e zK$A{4ipZ3G)Zd%|V4qCBA-)q1Am&#roZwQZxfVx0bH<+nF6uIRifjpQolKW1$(>U1-3EH~TxJhdncEa$gL0l5w7q+`or=ci6)qlt#f^D7p6lF_QagxRbd_a^DU29^a-+_SIQaMF|;}s=E z@=kCm>n7yE5X!g-8Zv#{5C}d_PE-zjlHuk;^pBaCE6MkW=SuQCq-R%>->KbrKzEm? z$yxArCD|X^9{5wus=%ZOuCBGnS@3YV$ILRWG&g`G4u6VJiqV;`AgANyO7jS4R^U$= zSB6OuTwJN0e9h_jxY9fW8cz6A1ScsSx!k2)X-hb^OMZR%q-;=$V_K9lJ`*@HEq@slIiV6b0laQ+-SZ8t%DoQoz#AmqY}_W4mk!mko8dv3?1CS6m+K|g=62a#u3u(dYj?Sxz3N%J%k|ByZ|yGE`>>6> zTz{bv%Gt22uLzThc(2{K0fS%;q#t~8JrB1j>w5#hU3q)>b|~vB*Ec_+tnWp@Y=9ik zw^LbPxgA^7w8T9OcM7u}rdsXYWGu4gC~{WIVGsUhfjO= z%^JGX_}7N>c`Mw`Ey%jLVE68{1(&CG*?E268@tOMT;kop(Ck{k>d9H%&aGNMKXUx>w|9@nveKt;;bw~(z3A?$9_E7 zqtyNv?iTEv{k^`|(%;^?v-9V%qxVVZG8=@q!ejxW6PXrRU>9^%#Xl!>NQoAiX)AA0 zJIQUu;y>gMm4krjPNqFdis+0$_9r*`Z0+PWuZ4R~Gi{ll-tX=CYPFBj-Dlk%nb~Gp z(zUlX{V3A(lqux&kvs3Fy1|2>$h`i?V6qJyQS98;`)(Y zM{m1zK4RzOr;neh{{7`I(|d0|etZ9vW0U&L*H_42IVySFoy2=Te4?8kH^iypX}w!g zQfS$`zxa5}_*l#cdBQg>_HxAV6UNc0Zyveq+_B4Xm+tqb_#7Rzx%9HTD>t{%&)?YT zi%+(n)!fvg@Z zZ7KiV)}7BkHEr9U7ixW(7!z=&(ygbCy`YOd{>K3A#vY&d-W;4I?0D;|7Tb?UEW6O{ zq#>+mzC0GFt5YB{$W7F&AtCr|l&*>SXM zuhkKy8u|Kq?VKulf8w`!ME^}w45H`plx>SHYdrk1?ZxndG*l4X#dc#8Zr=wmhd*kR^9?y>W*{Swld)(57 z_D}rnK&mcpbX$G3Z{0>^jHz+_uZvBOJvV6F8Q+85zDzY-*mmd6^_?>#cW$Y2V&?kc zSKs>Li}5cWS@O}IQ|h>e4{dX+?(rt5i_qH3mo@wfHDz--Hb-#9VZaaLO zOT>rQhhOM>A$8^TnHfR3JJUM9ut|HM`lOT{i;o)o+I}^n&&xU92c5fkZQoY8RK384 zu6=igyua7q>w}GR2ff?WW#pzID+*5T2|9Fm^YaT&H>kj^F%!)0ZPMCY`DCS>>J23~spX*GoC;4LM!5RJ}6DV_N3OvIU=p zxTOs7aw=D_P&X@WZQ}383Px$859uq9{i^ihpN{&ROqk@-bI&H{4%&vPD}Jjy{BVyh zX)$MWGQzrzJhJxOpf66RcwNxk2sza*e(jD`dlzm$KjF~EF4qb+x2XB^2Omt|^ZutT zUfdMF{H=EzxVAm~{)=uWKWp6oe8R5O)AgH=OWCxwoA#qpHAW15si~n!yPaO|E}7~5 zVT}u}gJxVW6+rzzBB(~SiHU7nei$Fn)Mc+eIr?_a(^FRr>bHMhM4ZR;(;vrd-*aU8 z)$4Z;oWA|FciiT8dW>JYd1k<*g@7ikpN>D4d3)^Ki0j(EC)YNwcx7|D zlbh$)oHu!r>%jRnCRSY~EI4~NVEtHLSfjeF0mUORN?_lr75`5zo*NV}IgX6>k;4%Y`Y z5u16sd!@IpS^ier&KEYi58XF9A@j!;x>2`(yVYd-dwYW3%$`&8xz>x_XaBKdQI+>+ zOfHjqewAPQ>l-^33-+bZl~dfNNatji~X7*PacC+q17`!da*3m0r?p zFEeA()%wf#oNm9%XYbCflQsNg9a9MU!DWc2ficQZbXzm$_Obo=|2 z^o!s6B7DZQSIW$r(`)|8^W|0@+<)}$r5|2AaQBxXCligeuH=q7zd1p(XmZ@Z0p-h7 zu2#QN*)y5#8!U*ZAG%`HJ>8W-SDy0oJkUS6{o$T(t)1ia)uQQD>mFRuYWTe!P1ap% zu;!=3;qL}aD!)j-(R1qC4Z42vU8VTLjXRJ3V?>Vbt6y`&1GjW-&^D`vXRS6(%Deo$ zBfk5l8D0Bip4a6DT^~REuUl8X-L>c5Ur)_Bd?Ix5frEG3PM@^hea>rR6LxIqpj)xB z`}|2ErB}_b_sQMOp3@Gj^^F^PeOMX&?arTtpH6?F%$}^s@`G-bsvq&)?o9peyoj7r zT~4-r#qCPK%)Oh1Ws@h@*in6Y#OT4>2aTA2H7D})Y5kzuaRHTvjc@DydO(dvU)B`D z$_w+i#RpAVJUemi^GD)0&#k=o_Lu!{U;pT(6??9qn0NZuYdhT6uAEVG%c%1~uQ$2g zWXg}ZqdtA7YvwUSjiJ9cZ_@eFrMBl&7Q64Akd$yWp`Pwmk8f^mEVXpcsv4m ze&e}_?UOqXt?%rvZ(seR@Jc~b%9Qc%G(RrYc~!#r{JXh*pE-~iTW4?kXP&rSfBqXQ z%4|9}uhQxoLc%wLg5v&sH8JtzsrcN_tHfQ3={Npvua^T(K6$+6!NdyFX9V=wKCkth ztJ~`wKE2rOhg;*HShGjhC1XxkecL2y|Kcf+ z(g6!ghjtm_mHAe~nq5A*T&s4@n{^u38eaPyufQ4$v_DqgbK&i(zidvc_VLec$`{Q4 zt-|t#8_LazHThN?)Ui_i7JpS7H*;&{9+$^ex!Ac!`;*OPb(lH#laOt{dj)s=DJtA+ z^3 zR?J%E_gB#MMxP80Xc*fgvHp{d7T2ry>J_oltp;`d-yPee&iVJ7b{_s`^XPKpx9+!&hIh*wU0WlyW!U5*Pfc_-3=y2 zMYa4a!Ze_)rpc9EBG49kKojzK4CwuLX-@9HDZcUi9=jVo@ zlW&yk-}&ZC5uUf-YI@+8yD!i9?X!ZoUxyDJd%AzS_fM61?$0wFz79LPG%CR z79CnMe&M_d?O$J#d-sh7hRyRUxaPdtZF|syr;prvtwo#XX1EXQ{=yTNd}gLSe`wYZ zZ{$rs`&*~yC&suux4HhlY15Klo3yLUfQeVu*Umd~=G-$02Vb0=w7mC};Hp)g^)a59 zy7=%{t6q6uT=}_6%IZ5AOW%HK?DuQCmv6kT{5ysK#zW3ByZ@jYe&BLaTHh){q?cJR#H19q4*~Bg0XFuB*vZ3sz#Ii9P z`s$uvKce2r?ZdiOdf)BW_^m;&&)N3w^z%C=U99=RnI{JA`my!=oz(wzsXMkl|FP%l zpVnjv7x~^D{rfweKF)vg!kQKPQzJc$*$oY!f0j96&C8XlmJ9e} z%hK?LhpRr@=<1>Boo1Qdd`H~3{*x}_Ji^wsTs-*WnN>HZhLk=mJi9TieXl_8VL!a` z)s2Buo_*z;&?C=I)xCQ$_{%|Yvkry(x5}C7d-=Psa|ZPBIrXDv#ID}IFZsRcjgJ<+ z(zQv8dV}KnFZ}9PL(GI1J$~8$^a{<1s`-DW_dL9)P17y)XY8#yZ_(ljO&V3}a_{}8 z#E4RJXWjPw?P}MRp#v%|7!ba){(G})1s(fs$#WwQjj336<)`mla-Xns^6(Gcj%F@? zVoQ~pR|alfb-Uw*O0iSE-E-t(-uSdKfd`%()ivkCH_Q4Q*gs-}squanZS3N$r+=Am zh?-q+?9cJNQhut@?o7WPjkcBX*SNm7@A~?sZ%y;AS$+N4XC|CX?J#HT(WbZSWW4D7 zTf>l)*{@BS79Kd~#{n-kP8c5bZjk%$-WOK(sQvz-o6CQ=F!!(Lwl?paT4g~(smw+{ zZ0~ww^!dQpPg>;NIotQ!=%m*dhmX3mf6}okBiimZmYtq^pxw~RYkOT9qA5t|={NuC zucm3wudRH&UFF|36J6eD6t<&5oojU?#`b-6-N}p3f4Y81tC05w{`ka^Z~Cqu->b`s zYCja{>xLwHc7FEEx7S*JJaOjC%;O7x^xtr&_v~T)E>8>&8W23mbJmJ08LjGg?4IhA zzC3vI(o32Tc2E7&HL!6^m2N$MS$Atpy_WOJEu21fXVdw$PQM~{|K#@A=4-p==R4gy zx-2DPWX&h${g&IIN!%;*77hLRX8mtmtBvY0eEi8@W*$lW_WSqF59>42b5FZ#o5!8* zER5JucgNxHf-X#()i0@q_RbgeTo#Ue?SthXxS!hXw5x5#yKCY-Ju1D{(^#vZ@#o9R zO?`4p)}{SrKRfL^cjeA^nshE#t$qD5%kr{Q_MP%|8aMo}wTFxgJ~4e-@8;6}UFKE2 zzN*8Tdk3E=7wz^_k1DstBYscrof~+kb?p};&TMEHzw3+FzQ4Bb&ZZZZ zM0+KcxlzqMEq2My-U~XOZQE#an^)(~>-AUj=C5u`X!z&(s|(AI9{NH~wB}V+eCeoHthK7&!69SXjQxM?IR|9 zF|^@_8JnIP^VAnVefp8%i&_IqZ&-5aa_x$@p2=O={bbsK3LDGhygg*eo^2iWjd#lX zYt`%DyjrP&SKGyHGkVvYxuSB))IFomgf%;FXcn{W*h@E_aq)cl%GM1}#`wHdyZMG1 zUBiw>1`N#jkp3m+&k+f?Y5MgZm#F4|F3U6Jal+`{A7I(>C zp7%@UtcxEn{zWs(_nf$KclXQ|qZ567mQ-Eetz6LI9H$>|?A`Fu?BBIJTkJaWO0S6% zU%5EE<<7jJUwtH2@AIRkQKz8cFaKOsSXnP|@%6dg^N&WJo89ZyFE`Tb&+66W#pNxk zOd99AtW|vG{I44yz7Q|`AA5HhR#n&UkDhMn?hfe=K|)%(5m0HQI|L-81q4J|NkKwE zNeSr&6(j_t5m7ot^8E1TexAM0xz0W>_I0lRi{~Et;WyS?V~#Z$i{%1bYkn&hP!tO5`lM)b`iI-+HTJaZT@3noJ}hHf(F{v2s8vS;AV$Fdq$e7NkOBa3S@k)H0DB;Je%5mec z&p)Gx9@>dXEb6bw+#oc%$Hc2#jr{B|%QA<3x&3?E$Nb6uk3?er%O0quS)b*osw;!A z?>!l8klEdGkkGB2A`*J?acTn%!j`B*vhjbb4@9`9MaGG5N_+3bnyk{kMZsL~a^}Y{n+jBm& zsGJ!>ivMthQSt$^9OCQS3yQQpq5eq~%WoLdBVu8eo~nPpM07_Zj?Y^lkcu zgiR>(ttU!iP?zp+y~yvI=zKnj`i;w;E1aO-fW-hSNWsB4Xg~Ug!P6>nF5%s1RQ(U> z6J7xvTO_i-W2(_q@<*?w35CC7r}-9kXsgh!tif_-l!U6b(qQc-*4il&wekXcwtIx# zWuuCuIhj}ougTMe&RlQ0Tv=!?NFcfBBh_98ZEOMg>lYm?4`!__J{+LjnYqfm?u;z| z>Al}lDy~*oiJ6v=^17d%mlX1zK-|@2yk`ehP2961!KW`gyVYZfkFu!beYpgf6;71H zkkrhVq)nST;?|N2DkL{he#LfM^<6yvUwk(0$Ik6hf9;+eK`NJ+S(!MfMYCu;R>y}* z;}oj9)}xKbX2X=3+rHIp@88nqGeh*e(bXJFV)U)Sb|%so^7WyZo`if_4PjTg@HiQz zH1;P{x)Jk_N0|gZ(;fteZ|dq!FrPB0=Nat~+?#77_EaEHZeF$gDy~rxyd#2IhW=!1 zYe1^NN;S<#EQDT3Dl0tM+>mp5e<)tKn9?NjeDzE(pI(bqv~Yjl!AZT-*>#0fph3~9 zP-?OE=-?IleH4rl){ljSZ&i@JHbNT|R^XVP8ABYnp5@v*m zQP_(GCWh=-9PO{mkFu@F`Z9dqQgl^PJLm|%tHV9}g%OXVGd0|OQmiOze4jFAUX?CY zKK+L2&(-lsO|eG=88Opy(#9d2iJT;_gbr0~Vtds5IjHa}BJYKXFxG!Ly@j`jasKsX zyY_2Ig}uPL@oMVUPkuZXH&R-AHM1bSO(Ggsw3KxFm{*d^r8xau(1PKkNKhEHebrUx zGl9oVdB0n)Fk)NHJZR}F`>E&>R1-I@S()ITwQ2Ho!++XOijB1FvDFlXd7$aII{B-H+vp^A+Dee>|PuFT8*1FYBroP^< zh^@#{_1pW>{qXQd;7JzVex!6yf<^eWF?c!GM{KOX{u%0FuAq-2TS@`n+6DnN#mzRE z;cpcqdNP(#*@wDup=QBDD!V%h9}O5NP#!+f+-H>`x*jDES;sv;m zQl@M9sw-YZeUzVCQidM9MKYW+znx{NZ4%NIimqz6^<-d>=_5LMV){XoT&ENfpLRpd z;uTli&lpan2zrI6?k)5=xml}Kv?~MzgH@Bw&Ge>}jsdB8rhYN#k6C1kPv3Oo@T}uZ zWHp=yXnq$Nmh!0Z+2Hm6ICIs;{)+djj-Ulj^RoAIywukTV?J6;FgG3C32`n-7QbB{ zofWq$Cva}tk;-)qPwu(X*>`n*VHN2Ym1}Fief7ScSa0LyyuK4C#D4VJZZVWfo|LVJ zd^);5)`aWcr-WqV(K!B?XvOS9nidI8S?tYpvLjX1oBT^+v$e9T4+DNrMVOmnOqT52 z*WfZNCj3r8kwnti_hE*x?v_!l1KJZj6Xf`ks5=TMNB!-&9H|(dnXSKvl%EL%Nnln@ z{?HGyn9#E5#=1fa8EJOo_wDdWm`*0%o1<<$S%-# zubQ3F2$4zu>@m&GwQHo|&kAvz$_UXZv5tLoPBa5pZVlTEI@mbX53cCaV3-=&ziyQa z&Gu5+7uR`V`EvO+F|L2riS)3hMj-{xNh;UwR zTa~bWY)baZvjj+^#>c`yC`_89y=WXS3qqPM{HrWLzhL$wOO8)Wu6j{w6w+l~j#|+x%yp zX!I10&N8E zLt!o(cj|jMSKlz3ZTo~^OVj_ZTGzA{D{wPo6_(GL&`+=l)&t_C$vkHl=p>M7u{S2>8 zBvq#IRukF{^4Pb^E>}&&*uHKGYTb9|sJq$4_;FpC+K&B%j4s~%%CF{8v|tM7&!tL} zU%t*OwF!ON?Y-e0_-m=M_v8tQ-m*XQ+&WGu<}-QErWC?VKA;h8uUbIN7=NQ+_z#Z^FKL*7s^`i80G!Q(r;>xxI87qw0zyp{e8-3eF4z zw%9uhT*tqIM2LF&rL3G8)w$AA6iu#Un^xjA8+H`)-?MZKw;=8#_dPi-^LS)NR+xjF z|7!fj^;+rVm_}s*l+evz713$h+)rHZrl+BIxvpsPbu5ad82|oMw7ye>XgPq;G2ZQC zp*o$ddp5SRKOynJ%84JdZHse$SDrpazmJwb;Q@)F$RgfrbVHPh-1nY|hFC$%+o{&L zElkdSHm|g1@+nM;QNv_qh4@rOk}e+q&k;%n0?}FI7SSKaAK|KoS>etpM`F5kQDAmr zRa1TY%t@t5*F)WsXh3amrb$w6I7EV)DL@!QQbtHW!O7ncP|Z(JVIcDSdXI?E&XDx> zp{BHnP?^|By@1#Q@8?%&an9nnfZ~m~jst-O9URbqnKhk21S~fpTa@wdNIK zPR*h(0*V&HWr{ttnzBj>L$d3p>ut|CJlaIRC3My~;C2!gkqwN$iXI3wx9{KC-0L@D zGMex`>Y5l9VVN}kZhQ#ev%SYN*Z`_Q2 zYu-urwjVPgQL79$@#yY)ir0om$}FROHYNLBcEu7|nzVg%+S5XonChU07`jTMxCE)L zIEn4qu=8WtFn!Uyhm-FlAG&%?hF{Z_4^PZ43Z*3w53QP}f8;j){?QbbS*+gE_SiFH zm*+FV+s{4K2-A<-V$-#8pC%-uU?*JfSxJ4P=$%Rxvt1R;>r!=fF}CuB6JaG@E_Qui z>C^hVw%$#fKUSI)SmevCPbSMh@`=Bcd0+JMr~CU{USIm$@T&GgED5v1oP*f!>LrBV zzuRoj*{!(DwK04DK<8Qc@oE8kgVFKnMpTaY$xFYY6QpYS+$85jacNR{~c9i+w z?{_!T?>l)EjU9}MkC{?V4t-9RAM!IY`_ib>{)O~8{cJk^`&q%Sgo8w=v4ih=UHU|n zw)?Ukt+X45c(?DWKkW!;$L<)z6ICj_U#x^vqbl=IY($1*Z%}3JOjkuwphBa!kw?SQ zHPrM*F}3Lr>vI#ERdbU8HeVe~?q!|)c~pHamrVVLd}?nRv{3KbK65uQ`E$3VsAXTn zP+#9ujm#kT7Sy0GIK@tfqoPha6eIT2sjBuqCc2hywFfQ9pYd3w5>;49&6=}(dU(!q zUz3_~zcrNc&Xr8g40KdZzW!ydW(8j^lIW4^!dj}=v$KlD@d-u6>t}fQf<`L%M#*(W zZ>0>1ZrxHPb~qm)ZWRqtuxi z12GR3vEyYXqO+AR+WgODw41CKkN=D2a;FISy&6xYNsi1*Ly@pOq4V#hKkk<(3EqBu z9@hTJ-xQJkMB?#TkKNfv!_WJAkI{4O^qk(^m$Yf5J;#j9{e`*s?xeQ=vAh)ZZNuAd zSdevY{MMU0#jem_NJNN}cZ-#15 zc(P8!di4jwE|1?XsdUkS=_5x&Q~VP5#Ts8XTHHhfL*;zGi-%DL9$Dv$wmW>zd0yiS6_3 z5+1fZ&OS(Jmb}@`^DFNZP0{D2n^x`(RlAO?_*$$IzP5+EL-?4)0c(6yCHlL{i)9g2 z`#W0)<)OmCSR^KNqwMaR`frVL)6rU2_9k%#=mSn8O9S!T9d$G+^)d=FNe?lg`Os%2i2IF+x=Z`JR_a8pFS zH+-kog7>^gg8Wi8WzsgX z1r1r^%{CN{uf%T5BdI7V$mW@ip1xi$yM{qopNF|Y=)+pvglt|P^uhG$uxZ!3)=+oW z<$MN0_QNmc(I*iEDOCrh5jVYf<$w-ql`Jm6&%*nR1&T<@3al$Nd%em2(BmeOzvj6GA^ zbh|r4of!4~k!Ayl#|PdeVdSTUO8h;VU;U)#*_~a~EQASkc;QDNyjTZknS>mwH!TX& zo-RriM)jK+RD5%l%LlC-a(I#BPYoS=xwYs=IH~0BQ{*`%uisp|&dHdy7#Bn|5!}D5 z(uc41;GtKEtsmJs={PwNje_snHzS321P|2I4T3aT(%&!G?X` zq8S(EG+N?U;AU_GDdx(3N-5th5wD*^yGp~g##hyc)v-@dZa-p)pnn@7#y=7o{`~Ca zBUDan9-lCz0ejCj?%p1*pik}dUf)Pe1e&uHy-ke0LLOP>PQPWE?OKvVo569}_F8=A z9AiHANF}zdH+nYX#ZjFU52MH&UemZmG(%Jw18z;wdCXeUQRf7`QMAs?i1+$zGh;)+ z1OCupat72Dt08B`7+4u@BP3E_fH~@euW!TK_VqtCULr`GC?5X05F^?fK+OY#WW) zuBqRVW6`^WMGxx=9>0sB3R{elm%I}&`6_mNQF@+lkG75-B^g8Yw(+=6ergSx>(5VP z{q0lDSYyr6jxE-^%+`;*A34NE$1^T*aM=lT<|Kv--D)>D_P_Ph;k0F?R{zILGNl9J z;Q8w}{Y`ewAwx7Z_M?)+VxCz&_q zcC(Sg~fVi)pa29=vU<8$8Y>jtz`;m;D?+rM31vJmmbxRK#L7G+wb?OPD483pvZ zJ?_zGLZ9mU*uK2XTv+)$?|#BU!dL zr(s~tK=EgzG|NzJTbbgWS)AzutFv!k9kBzR^F1*w)Usj{7v#o|TGaYFlh$F+SRnn- zFY`Vt4%zMJczm?v<6rq(Ukc{v{dPgUu9>F7qswk@zLNRNA~4gbCHP~;6nYU-HroJm zDhIL1-4@%y^@qB~(zaF}xv%E_Jo&?iE8Cw;ll*?@Q7+`ZW8NJuCL?nDRugmW^v$ID zR|}QE)<(`}!CQREPfNwttQG6a?FxG(#Yfr|CBK(GCEJi<#Q%9q;bwq*zx=6+(CfYr zTkp2&mUfJ4Db@|#zVyd>-Wf6p#z>{TQWLKB#LxX@WSp<8MKO=WnHARuLr&hW{_^zg zg~uKmNUuCcs$)_Pqf(+L7Z9I!52z{Uy7{Tv+NE1Hqjgo;?l~DL zMjaA0$H{v!0Yw`=<}1!tIns}<1Zn9)NUN*TuWx>w4jV8VOk>?$(!!(Kemc%n*XF(R zBD6!t%=4tz=&^7p;&M1WPFA_W?Ydu4GKse%kgmp?6Gy23`ksYy>&K%;wg%k5$|i0v zs?f>z`yupU{WHql)T5%Q_1DhS+1Mp)>}?%|J_Puqw5u5Om1ueI6OnXO-as*5w%BqP z_x@8=-S|AWo!n@&|GOoTm{G(MV~<}} zxk59>v|4w?Cg#nCYh9k01bGiSbNL&U+1GNC6L~V}4<)aS#-T*Ns9!mJ@&?n_Yx#c2 z{cp4mD98iYvgAY=BX@4Qzf=>u^QzHxlORO+b>Q4W%Hb$u6Ar2#bvrw++E?Q)>#G6L z;d6Hh3ms*`JozMpXTyn~*vd|b=)eE*JS8!_fXlFHc2BJI`LJN(FzU)LoYKk8PSSM3 zdWLzip6@Ce>_!-l&OBZ|Cz%>rma{K7ofnEwJO@TTe6h>=?I(qjq)OoR>Hs6+Nm;Uf z?(uJfkJr~5_t$>1U5&Dh#F(f0i>jgPlg@ySZlbTwN-)$rMIV{&#QSm5m z(-)cRGtcKyh`vnJ+VeK0*z?B~Y#lH3kf*m6BXYjKW$ya)J>e~rwbh$;m5VXx50dgE zFQ5Jq$fs;9#MrOs;q{P3#^;F?BZ+rUQBTdD-Y{|AXJu&^(kOXfTxF^gZv5_}8q(N3 zUp-|y{DksguALAj4td8e{Bze`uQ3u{`4!91guB_q@4hAJ4D2kQuG<%V8YH%yp0_nX zNQ|Hqs&-Xy^W;mwQx2@kWzYMuOg$C&jKKS94*giHy84o?if3!K{ z%;`8Bg~_Aa=i9-jPb2KuNMEFGELqOH;x@{l6OvXN>A;a3!$3THz`(gg$P>t zi!cv^B?gii8G+wU6kJQV)H%Un>M`5`ES@*o+#xyO5&}(hUZ?_`uDz+Odw57u?hziJtj>l<=FT(1Jl6C14ZL#w9#DHYb>Jv-e;L)( z!~cj&Fv^^b5nA(Ip-psST}bk4-N&x$ZweKJ*WwFOv$GnsTOR5wwd1zcB_}J2u+}L* zyq8|PeE%xHy_EEW$s1=oT!;dXvFIEhb?UQZ`5#Rpp1ovuDlJs@B|9lH;wXB3D!Nrt z{QFokY^I>8K8iL5_nUFWO(QvSADkEdm-$E5U9R!?{8I163ZHZH{e6#%Mc+lP?T>6?VE8TVB^$3VUO9z?bmjSO9r4ElUEgB`9~ zlrN=}Xwnuqc26?n;s0lUR=1=CZJ!oAF-;C}3??U}u)P=iOiMoaZoCxo%V7nZZ?E}r zjgct!vXrbTR6S1QNCVP{8}f5LxjY?s>z|tHva!j5FMviVmWmdbjUGldL&)lu zbfBlC=J1gv{2NQ&(fr<*DB}GyyEK|up6TB1MiY|?CN7Fh9>%vzLeh2*(q2YWh<~VK z#2UJ*?psEH!^ewa?q$}hm1nRnY@tz6P5gDN$EEr1kBAr2S-sw-pLA^eaylYoV_WDF z_C6<{-t&H1iaBG=ExfcQXZH8=f4`G`qUt=hbjs8S2WBw?v|3m`R{v&cG}=$w1mfVX z#nhaLOwR4@J#&5fmnjk@&$sAW^NVe%>2I_wG_RDosSd{=SB=-t*DIf?;*Gk+ewwH% zMfu4k;cV{^MPB;d5apQR9#L|N0nwF_kMta7*Zi`c^KgK+VF^LL-@@G?n=(cF()N+SIie(O+aTpYne$)2D{-@19 zI!Mv$e%9VzIKKG?&DbvRtUmawV-I82emK`FR?3&zvO3>e)E+H7P<5*J-Vu{BGvIQg zN-OqhG$TTwe0(RA()o42&$kaf$JU7{ttNqFU;I9qmGQ5ciMwy!lx+3paP3_W)-L^S znbjKqU&oHL zQq;0^3`R8~%@_{asf85k5K@(0+sTZ7_a8CNM<3{P)gKF!1!$T3yQSQT5P4%S&qY5k z{3FR5^}G6`f_#raiG_w=0k6Gc-8jactuG}pC+w4E zPjXyFCwhl07IJ-=xLg)yIR*&d+Qk2u^Sob%`0mwyZZla|!mirc^WsPmtVmRaEQ_C} znS)Cj`O>Bf?1bGq3w!)g?~GWDr^ETOHD3kW-_%B6S;u<9{qiWSV_En^ zCaH?j_ajf#gMcqr(6(=O_-y_*T_s<{qYSqr#UlEuQ+92tmjmxvdaJhT!yc5pl@`TD zZ)Z_DrdM3tl8+_nA5bMdUo4|Hul7E~D^};cO@aP)nn@!&df5Jp+P(7Rn#W&l&TC?$ ze#yVVaXxW+*dts)m4?}0;dM6chI!*^gKECR$NDVHB5XUf7o1}&WkL^9^xx#=l8ICw zOVh8&P-CvBhddFrL{Mg;UquQG#rDx*IN6J07VAq_OR;Y26x{DPVjrVf=B>g@l~XcA zXMU8wjPZ0DCBfA0kp)WXw@gc6sjs!lU6G7uS~aXlY_T+twR1oH3Te)fm+Y5qx?7b^ z5#zOEapUF8@OL^(_PqRg;gaO;M?*7HXWeH8t$d?P`ED}bXo-4X*im2g)Z1yxprDZo z&DGmx8+J7$TCF}Jf86yWM<`|4SibZj{{x?Oo0ZAl#XV2sH%ztp?(d)K#6Li!X*I9W z_*m`eqs3{cu+`yow{T|LTOAJpOEeij&|RmdD(t49xnTO#3<=_}JaU z)Iz1sHIGuP>jqZo1{4x9vt}k8b4AhFC$f}yaf9TeG^#8QVkbA~8~oC$=PQEjZ@Cw( z7~&38`#CQ&Nm!Ykr&&+14v>fMJWozq&vhrR3(9^~K{iliYx;1_|9+tecT?17EdMtx zU#J?KTS=$1la4C1vvRB#)F;aD4F~Z&(8Y>)j~f+o#;P zQHXU+s6&qTZXA1Usp!2V3bjpy*ZLjNYqFojx^@5eOh82Ub=SIFYd8^jsOR5Fz5 zF;x^!@Wndt-b^Qr6>rU?e(?EMBw9rVb`-02RfGR8a|*|b<}g;-*^kX$jC9JoRE3Vu){HC}r=YN;uUU|`SpwrgG?$m}^P~o#m zi$pvFnPbi?LmFJFhI=qjs;);@pqpu@U|gq6QtmtK}AcT)U^{U3(6l#n}k&&IIU zepgW8ETp!EJYmpY|MBwg=l`#{T#UD4HfZW@7|S;jPhYcI@UmHWF39Q{`8LXzqu!^C z^?3(PWoT_-G6fv5ec<2qver2<OK<{LX3 z_q@%)ofxzzswX6O(+r9V#0RtE!vz$E?(iZuyV2D&}ceSZ`p@nltUa+8&w^i6e* z(2iW2<+vd``p9!j&3(+gAHDV%>sS^_#6C5}t?ZJ6NA|-vt2AbGd)07%ra1;ruxVdD z{Udboc;v`0$FUzq)-%?RsA?&<=(I+N3hq{+JbmBmqewEmj2*XG z`dxghF2r)DIrNN{QRHX7CDX8EKqJa~^wy$V&lyG2rtUuSZFxBn&Wp_fueM>nwp)Vw zV!ykO_44T-;pPw1d6my(GZH}3Hty|Pav zqD{LJMxLksR-j%N_n?_WOX=&IgwFK+ZHKc>O3twPX?x>Ma*n%6t9-`+F{2kT?0igO z`r0?9NiQ+BcM}N;VyoDQ*1nClHs;@`NAM>}I^x+kFy0)9W}tNKI_f^u_RZKIt=K8| zV8y5EDM+<@)>xF3?kghSyuck0Mm@qmfl#TL*WyKUd|N!XS%|h7Mfj^J;!5)qRtJN( z)UjsEGSNLD5?UvH7UOa*Z1U+>V%7JTz0<@PUK0gjIGjxC^=!{yQ>XX${aNlXszpVT z^6+`0uS9oMeQpa?3R}Lx$8N^(7l=W>7QY4H-K2I%V#Z#sYg4Zk#NenC;L`d$6sUQt zjLsX+Roe-Lb=%>XYB$NH9cPrSezt;NWufPWQOVfn@u7|E-w}IpX41QlvScaAe%9m} zN;!$C+%;+zoF%_qdghS6`9LUO-!nYyHmMG-VWzToXzc?oOoBp(WqoYb)yGfOCHC0t zs!{#5coOF#c;D_I?(hv1xQS6yrwqSqds4_Nq3ZE;Zjh^$?LE0D9sDjX-QpdU)ZvZc zFfY=Z@RuM-;V=red46rdh1Eb%*@=< z^{ZFKkl zrcDuJ)Li{hlcq*bnFn}Y>ThsYHgJBwoB5LXS1fMF#q^@m67z? zeWdZmpTk4jv~zir7-|dSZL;x)23EpB-nSJMCxAv>^@bvq)i0#E3X`(DVd%cv%e=mUQqtrxI?hadEQy+^r=1a=E1I9| zu@7=ys#xv_g^)LyGPYj1WAzO=_~AM);s!SDl6jiSqN|vgSWA^d)6p0U*9(tuHuXE6 zTPSym{JP)VOJ2U(nrR%WsjP&y*!kH}=Qr=&L|e(+9F};sO7R-aCRs=E(JA(T%x8ln zzryp9BBEaoQ_zu6jq78cU6ak;@8e&6WR{QEwYIKW6muR*RStGGRu*O^Mn(pDIyzb!8ft1PN=ga}a&j^<$h9IN zAtojwA|fOtARvGfjNswn;o{<6xpD;u2L~G(7Boy~aQYDpbZBVMP%j#sk^}|$q9Ofh zaEgSBlO#Zn778lr#h{D97du_FiwQ2;#bp1rUEIKbZE&0aV}rx`9~&I`|Ej?!|G#Rm ze*Z@s+=c%~8{vO=gU8W-bi2sQ`=|ZquE0fB;y>*_cLn~=$^57OvjYFDz<=Hf{GE^c zPyJ^F{#k+lycPJr#bW<+@t+m=X9fOQfqz!upB4CL1^xq8fa0I_&kFpr0{^VQKP&Lh z3jDJI|8XmTi~|4tkAwuT3_yYx10WzY6$$@|_4>O)q6aY&1u`wN0Ez(0O_W=xx6rIE zUbFajj=@Ey(7)S7dIkzYNy%Sn3+d^I2>SYn2uaKrGb19zFCrie3?Lxz)FZ$c1cc~k zkkbffK#7WitAh~`e0>oRy4@g?(E$O$#s&c)!W>fL;2jd!#*n?MkASeMjeyXh0a=JQ z5fGSF;Jhh{ki94m8Ao!kzYJvfTt`5Vl!V-42?T^iF~}qlML_rlVU7=lARie*$aeV= z5Zd_=5ON?u?GX>;N5a|H!?_R;o^ZnPTtz_W=RiQ%XNO#DV8MofPylCVSZ9GbK@u|p z!UhxM!Gan_$YKUb43NgpZ&Iga8vD3<$s)q_FgYLJ$TlfGnT~ z7r||F5Teuq^1wr21C#+LzymuF(lrhmKn{oijz9;90Xl#VHXzVz47>+LAOZLR3!nx> z06oA42M_=@4+cOTC;$l{0Neux;0E9Wv;YSjVIv@{fHBYsDnTAd0wKT^+yz=d2Jis} zKmd@yE*1j95*P#BpblK*eP)4p5DeUbH82FKKnm~yCO`_Xz$t{uY=b561q^@|Pz8#? zGmr=(fIn~rR^S%U1oA)}@B(H)3Gl#0u-`E}6t}^5FbzI~KF|Vc!7ESzGC(4T0ztqV zI01$P0dwFB7y`YZ71V=DPznmbGw>9| zgGdkz{D3=f09L>Z7y>Pz0&W0FAOd&+2Vex$fE3^XOn?kd(ctSDY=c$s4a|ZG@EHt( z9?%9FK@E5VN~|umEPj1Q-QFU=Z|z4$uM`K^>?9 z6`%~f1O*@mWPvo03=%*rhyvjt1Ox&<;0@e?GjIU5z!KaAroag318txIRDlw>0c3zA zfY)jwhyVe=3pfEgU;&JP7El3lKnw@~F2DvD;391EB9Qb9o_LPIA=n2yU=yr?A7B|Q zf;lh^E^>3n!3Y=vA3#6o0bQUSw16g159&ZQcniwGD^LQ8Kmo`D*&qvKfK-qSlE7mS z2Vy`Z2nV4c7z6@;;0wHg2XF(CQt^7Kpw~f zX&?oz0dXJ#gn$6x1KfZUZ~!*I0+;{;pas-`5|9H@Knw`MMKBjGzyVkQ1E7J6&`u

9)dr)(NG_NK;RGV17F|+ynrWg2X4RxI0HxE0PX=hU<0gy z6|ey2;10MAOo0iw1&n|p&4p31FV4WU>SS^OJET!fO#+nX2A@Y24BGxm;@8x3m6AuU=)mi&)_1jdkB02 zAHfGO2nIkuxX3T>1wEh}bb(IL0op+uXay~x8N3Hgpb<1&s)zax)PY)11FAt4s044p z8&Gkn9O`TE3Y39TaPcjFF?e~Y2x=jC0SZ7q$OE~Ta-e2|=inL00-2XGpr(T~kP1@3 z(@V)vpMWHgcqswuV-OGGK?(u1mdNe8O-B`v6$mo%WNUs8j5^O7o5l}pM{ zl`bhlRk$P%^~NPRs25~`%q3~4*DpyymArHf>IDfPen|}K1yLY!Nf@foB|)ec1OWdf zKByOX0na6Fs28{Z=cTJqFK}F9hst(|73u{RzIKG23{dGW(LudHdx-|>1!_Qb zi4y7sic92BFOUJ!OC(S)5MLsKdV%l~0n`il0Phkm)C*TG;Xu8BeF+Qd1-H0-O z%}4lGJ$(FEJuAQ5{z(SHST8bJ|K;!7{k#6P|J>!gf7iW#-Oiuu=Uo1p@9)}T1ebIE z+6DvYTQ;HJAqU<6$L~oDw8ZHD>-Ja4u?Q8Jv5^9OIVAqeyX zwD`<`3kU&NL=03UWHd~iD_H2*xOkd3;ok}`M@M>?SjC0j)!f6w+KS%O<>IoEwWqSR zxs|oM2Rp~b{Ce(Q&X(q$aJ}81%{;J8#o5xu-QC*KlitDF&&J){$r|RkD4wtz3{d>D z$=St|-s+x*tE0J}xrL)OY_~LbzSsz3Jz$S}mY!bj)|b;F$eCNwTe?_T)BCu%TfuEu zz-1WddC&8ni!;5WwX?0K-No_zw>dnlZJn&0J^!BLzg=f@&k+vi@2md%e*c=-13?20 z$o%5-p#SrUTzq=}T7P(V%inKp`PbW9{=CQKuMdB{)8+sDH- z)y>^s$3Y`aC*5 zF*Q9qzxeI@kJa_f?cM!fzmHFYF4h7OTzqQ-Kl1+nl4A|i{%gH2f7OG41V3OSBV!|w zU&O4!ANGqu7w;#6MnH&g@vb6Nd^B_nOe}1iE4X+F}YHpq?D{z#ZX1XNvK35 zSU8nYlvIeRg|8{9GIJRz+!T^THZ&%pF}TIVEw83;A}D2tWP6X0*2bQZN6++zy0wGA zbzejuKV35dIx9yx4e$F5yk7qN(w0s-w-G!8WHs^WEu8s00=4hRxIZv=(Q*sA>l%X{ ziye=hgq?w1g58IWg%gVtdnFbxmIwjy9O(=h1??2|v8I6Pll_|vTp-#DB8d7c4VH6r?cbyfWti}>#M z`R>KY;NZHHU*~Icf4b_Oo{u+Sz*R^or;NRVU zZ3_%)I`PyKB0v;_I`MX+(M6q)$(art{8cgAt!@pHI*IIh?wK_xZ{yTpb)7 z@Ob-t@#mi|lX~@W>*w=9xPbT!*7y6L-TdNK&*vBabh#}XkJ~5C=Pm{y9-oi?bqxK8 zhkvext&2@ZZ)esHon2s;G_^Lmb-e;)bMMf6)c9U1%6jnf-F>FxXTfV`@evz7Pm zuP>N?FY4aEyBq)Re)r`w_Hgq}b4{z1c~Iibqj;xW;jxy!j&i20m;_eoWD~)aGITJ4nAxn%Scl(1M!M-vz+OL#_3A!gfZW4$5CQ9sB%&!sTA^)J(Fd;{0TvJOz&?d)CVbj?}Mo4O8^d#jf4|m5Pr+KZH zJ}XnD6q|65AtedtN~sv5pq;x7jhQ+dwSK9@i(3{ljHI3)$QU^bRUAa`7%xndjXZiAZe18u8Tvt`ln9(H9rs6Ku6+${u$y=5disrYoCTA|Z5fbyL@`JZJTF zXTOTru|I@G;bg=~6I(dS!kHl@O`CaxTOM)9N(+NC15uDtDPBVZ|2&wnvy_7!)#h_8 z3gWb&0Kvc9rpGmP84_MQ zQLaf$5#i7UnOlm3>>Om2;v(X%b*LPyg`>2Ll;LTfSo9HWM8eaQ?({0>beOU~k?;_` zRc_Mb2)3N(a0(jHG2O7y7p>P9BO!CSHptD=BFd^5pkjl_Xc1^})yPiYt6b-fp0IJS zm76v9O-+AZK{&M(qBsGnl8v}92R|#r6+dwmN<@7QtQ#@v&bN5oJxGwSY|abG(5z|j zvGjwjJ1E5ov21Kc8HqW)i1C>7gXIw^ZKRY~7=`I}TNEUfSXF$eXISL9gBcNdvG+@_ z6A&pT>5E=hWZ`7Vu*%oZL6pWcjiQ#J@72GFhlwe3Ugv{vfJTifb53!HD27207JV-2 z87zTEtP?3t>Bn9mKo^}6PQf%OXv_8Rp+6nka|3pn$mBWh+F(*jf`?lfxQIjC_#`GW zGw6t&VkB&tk}+g9qq;a(L|V?}d8zd&_4R{;>61zcvC*XyN>NY_n5eLlUYFuf2EW&0 zvaHg2Ai}NxfY-1>kb{`s`eyJW??bN_1*wcEZ7whM9~C@Vz1bH#flZMyHxDGVSDTqJ65bL z6$McdM6egE*sx(m;GH$MD7yDK=R4Ep}GBXL2%p~-*>SkB2Tkkg6 z>ICmzUKhT6zD~bsm{wNztgRY@dd1K)od0Ut_vz;v_urwbA535K^NSV>bAMW26ciL$ zf4K__KmD}6$^W@nQ22AP@XOD|ykgd(O(Fh@miKEH#kWw9Ulj2hTKKWKpIa@qrT=L0 z<}XLq_jf4uIP!~c@4n^#*!!=o-T#$_ocv$QzmDSTuXTTI79GV;@%cYk;ivg$mi~-_ z7k=&R*S3CJ1Leby3H@~{ntpDz$nc-=Sl-WwFY(2Kt%xRS6RIJwV0RxDj<%Y5IS&fLaPg)3<`}MalS5@bzZ~|2hLc{aXB9@T-Cr z{4B&TzlsIb)1r+P=KWmy_-hemWYLZb^M3B^dok-Tf8ozP6n-tL^p42I*7&)FpT+uf z>whd1i&V_xxC0R}__GH1(*}-fhGY6Qu7N>amNLRdL=iKIx#-@7Atj`Yw2@KdOmZ$s zP!d8S7CFX7pn(x2Srjj5X!zhh?)bjBFTNMqx=|k0e+0TOcOMXjZj^ft9x%2izF!8fBU0E<_aS|U3>`7Xy-)av0b!wVoBPN5 zc{9@XH~^!!iMhTip|wpXUV6V4$v2Ob&nj_Yo<%v zF17l5#vRaoDVWx{N!;B=%RhYYGmC251w9>WeCzZ?`OYJJ#|iBhhm1%zHybJja=Q0_c&T^zRK?1$*W0QEpTB8u;jbUm=o_tT zANA*D^;i(5q|elnLa&34wTlGBn%J9EIkYXhyXSPmcIDG&|xIZKo*y zxaK4=cQ$hT@tg=*@HF|42|WyO1Q8*!vF%s_1v|5fu`%r!ZwB@Gq40oCqL0u!=>@cn z4x>Zqc60;Uo32P(Xw<)g!dvPwb%#o&&QW%1KedxuPpzUBP%|hS6-k9rp;ULO9o3R* zO!1UIko(oP;H50m@Jo#b|M z6S`b;pp(WXjY)m#FgGiqACu@=3 zWOcF%S&{T4%aHD53DQcMNIj_`Rp<yg3;w|x-ctK0 zi?~5#66r)LahbSCTp-R9351=9Cr%K@i6g`z;sCLa*h}n0VLP#f*hH)+))9XZtB4gu zG_jOeOe`ek6LW~!#0+8@F%^}VjhH};BgPPsL^v^$7)}f&!iYh{03wv=NAw|j5j}`* zL>Hnn(UE9}LK~tr(UNFJG$k4njfh~PJ`qF&5*5Z*)$qB>EPs6tdC zDiY-hPogYQn(!b>67GZ>;YwHuGhreOgr3k68Z`7qNyt&Hb0(Z{ku&&d5ImP5$bIBM zDuTL=%FRak)6?jKbUxjTiDu3*3Rc6^WjZs{nf=UNCXXr0`muf3DeP|cCd-IQiO~23 zR>_uOz1ik$S9T=w>|sx`>Fh)HJ1Z5H6jc)ih+2yJiNZw-L~BI{MQ25CLO5EjcYol%z^BC0UYZ zlDCpi5~Y*g$<3*>Q&p#$PW7Awrw&ftoI;(3IE{9i=rqG=p3`Qh9Zmb&T}TECaIgWoV2pEmb9KUSlUe5QyMBACXJ9zmd=naltxSUN)Jg-NfV@3q#4qC z(#O&-(gLYiCYPCHZnAQ+%CareozjESW72cdi_&Y-Thbh9t~6gt%M>!5%vI(g^Opt6 zn#fwoy2yIT2FZrYrpe~WmdaMiw#atM4$6+n(qz|V4`fee?_{54gj^)I$lc}T+%Qkr*c9nk}9Qosk^kSw5qhG zw2`!hw1c#pbbxfIbhLD$bh&hmbgOii^oaDN^t|+v^nvuL^o{hRl#q#JN||0(N#-T1 zBMXo_2mi3f{%f`u~WV2<uWjADxWY1;qWnW}6xkhf4my}nM zd&%p_1LQ|#@vXx-Q|7d!{ib2N%Cp( zmGX7+?eabHqw;upk~~HJME+8qEB_{E6;g#xVNq03cq{5Ef)vdaA&Rbw-iq;xDT+CY zMT)-^8x=bhv5Iqwi;8QCTZ$)&mx^4)H$`Pd4TZlVP|-}$M$tvlOA&!$OhYlEQH(7p zMuH+)k*>I@c&vD#_@MZzkSn!H7iB4BWn~SezcNtSQQ2MDUm2zxqnxCishqFesNAlM zRUT2EQ6?$Vl-HGSm7kP_N)~m#7*r)xWmJADPSsG=T-8z4UDaO|rh2M;rTnPOQ;JkF zm0o34RaMng)l&(o7OJ+YZmK@2396~8xvIsgHL6XjU8?=6^Qud#4ApJbQ`IZgM^&Cm zqc*8as>`Xp)V0(B>R@$ebx-v`^)U4~^h^5TG2t#QxU2dp%|^0 zteBx#t=OR0q1cE1>DpLx^GnIFg&y=rG&U{ynQjS$lRnAf_RjyKQQpPAxD$gn}DX%K; zDj%Vod9ReJ)GCY0T~$$4T~%Aft3p(rRJ~OLRHIa5QO?X#tygVT?NuF8*-_41K{@kW z^+xqYRiJWGD^bq4seRRT)eY25)$P??)&10i)i(8X^#b)W^?LPIlrx9a*{U4XXH~vR zqE@JlYFBl26oW@GTA>&{P>f0HY3ljvrRsI+E$Th$gX$!8iu$_xt~y(tqyDVUSL-wu zjfbYZ##>Wc6QpUR>8k0i8LSzhnV^}fnX6f>*{O-u9Mjk}7d2^`Tbc)&T+KHPt##7s zv=*(0w!C(OW}9Z8=CJ0pCQ*~B$<(~iyw!Zw6l$EcDy>;tLR(8)PaCXlrtP5ZrVZ5& z(N5OR&@R+QYd2`OY4>RlYcFflwRf}+wXd}wwBNOq&Y*MAmC;qy`RM$0^>s~jeRKnL zBXwhRQM%c>CAyWm-MRz16S_0H%er*k9o<9ScQvJvYSbDRO({)9O?6FuO%qLsrjw?x zW{_r-W~^q3W~FAMX1nHq=BVb3CP{Ng^HB3r^G@?!LusX2wboNxMeD1rt8J)lu5GXF zsvWM4)Y`PuwTraNwd=K8wei|>+7#_I?S1VNZH_iqE72)*MxCq9Q&&ajtE;O!q&==p z&?aj$w70d7wJ)>1}j{5HU(fWz{8Txtp75cUMZTj8% z)A~exsytN)}gudk}FrLU)Nq;H|`pzo$1fnrQXF&3j38&C|p{=EK*K12UN z|5X1*|55K`P#R1IH$!c>c(>2pAQ;sRuly9QV3bW4aYW6Vy zeg6M_{{Mac|NEZ*M|3B3=XIBK*L8PwPj#&v1mV@-W?eTcrRzPCP1 zKT1DAKUKe6zec}Rze|5ae-d38FX44foNNF~=Y_%8dr2i?N)sveC!rZ)|C7XY6k5YaC{bKv%|T#=ndkjXRC8#uMnu zcoAJ0pBP^nbB*7OtVxQlj22T3lbz%)X~(-)ZaATG{rQ>w8-?AX(PHa#+n`* zUl>0azZw~nvq@_*n<}Fi{wPK>6r&4@G0rsEG~2Y$wA!@6w8ON|lwe9WrJHV=9-Cg6 zKA66mRAz&@gt?5ln%T$9nd_T7n!B6(o5Rdw%#+MB&GXIM%)8Bp%_q!>=F8?x^BwbB z^CxqmnYE}a21^M`8Os{;Ci5=ye)CE5S@R|HRr6ExEAvNlo>^p(S@agG#oJQb5@cy) z39)pt^tKGJOt4I~%(X1Gtg&pe?6T~)T(DfR+_2oUJh!~De6bW*G**+fq_v#Y%Ua7C zU=6nRu=cYKwT4@5*6G#-)@9Zh>t1V|^_2C3^@{a|^`7;MslX&Q%grXUo4K61vN^yU zY;I|8XYOeZH4igKm=~Crnb(>(oA;UznNOJ$%s0&U%+JiP&0ov~X0b(XDQ&4>sbTT6 z2$sf{HkOW-A(oMr@s=r;d6p%XzbqRq$1SHV=>N}KZdZ1NbG5jZajod;?ONNlm1}#~9fhs^{vQAI_xPuO?f54z zlgdfV(p1qq2LJ5+0(h_D=8yLq1RlM;cA62fVu`bpltJ$m|FbdLBt_6g{o`opgk$hF zjNVqM)f%l%r`H<{Mx)7Wwpd+U-AcHZEag$UOqsIfJj++8SgCTADpjjh_p0Gt)5o`# zU+p^nb?b3_Kwywizd>-rMva>^ZQ87Pi7&ox67L(W_72e*Fgy4jVRN zRK(cv6KzwXrq7%`cfq2i%U7*oP?xm`^=6_@Jk+m=I)qRUrvmkJst7ge@zfINQ3C4! zG@@QmGl6dE2p7~V>PD16{i7v`QmCi2G*JfinU+I6r{#$Xs1LOgQ5p57Rwb&TepN5j zyXsBUME$J3L@m_gTAT1E>Y*OkKtdoI5DihkY*V5+>Z5Hfs$mj37p#KHssZ_t%E{fu|F*P*48?)IYoo^%Sor))E_t&BQih2eF%o zMZL;LiIc=>;vDL4zD%SM8N^N06P-moK|RxNP%rgYqJW^$2oyQ$#Ws>IKgXN+Hg4up z7L8yiDwiMK{luR)aew;%e5b)S42>-)Hvi}%FX|+AblCqE(CC-n0=)4i2-UdVdS6e18v#0UiOxXMO$O!?eb~hcf+s55MPzZJ1^9 z@4@L-nPKlfqv{9IQCwMJ zA&RLeEJXf4Qt%JE|1VbmBfP=zFl&v=Lr@#{AX2m1B91iDrh52z~s7P56Q zlH#-JWsIcw{JS?>H?H~bVeahT!|$<8FD1m6!s7F<>k&FpP!2hsUrC$_3Z12nzeF;* zLphcU3LQ$Jbd2hBgkMVzMUX}IKVSI@`eXWce{W2!H@nKwFDLX1T}IH?eg2E_kPP|) z1gk<{;6URB(HJlE@duGaBonDbI+01_BC?61ME`7T+TZPne{DO$@mJi@f^xK3|kA_ zN@_#2#qFeyL|4>G>W$h+15gWTC~6;t6Qhao#3W)08YwpujhUNIEJ7pbmjBT@+J{Em z#o^Y`c{CpH3ULj$jUEzDiI-^XUM_AMQKT4+?bD!fer{xGH1e-H=}Xo{;{h9^v4QQ# zE@Uq>VsHdGj+{)+A{UV>$@OS_;XX2s>=D*uaM(z6(RK6hgnl}qA3QngyJPIHV+^ok z{BK#*a@3)maz`ymHEMV2&~In7j$=d}gIY#zD7Unz9co26=kRFJZyAa$MavS@QiaLJ z)xc9a*A`D1Klp?LfA$amOYSm$|M?YX>^dr~zVS8ZxZeFZSMUpyDo2Z3Z$Pc>;*IT} zZS8+(YCGcNCOeL;*68#`lf~-l=3dgHblGy{D^#jnwVGFrnm)Ds>iE~={&D&(zDljt z8H{F&i)#t@QXXZ>dX}$PsY=!AUfwl*Yt^oU8utG<6_2k}X|#HS$!v9TD^apk=`!U! zD^#pprCRkG-afv5wf*bhzYJK{6w?#2lnzVd&N{NLmM_mf{N{{JZX z+=zruEqssDbGPx); zBO|CS>~*HIxPzhuEfX~ox1$!2QPc~n9?Odxuo-M$iW7gP!>HHPA*Kgafw8g9>_oN{ zb&<{`-%)DjFDiv;B~r7C*icqV%_hrJQVM;EOq4-46h$yoMAIY-s6AvPIhCz1PGIJV zhBC**YSDf)`uHQUQEZUxV7{=K^g(f)q$(9iKcRZlgP3dd1tx?R7!|#r8bmWxJiURM zNV_vz(YpPZ$J7zpM&>gsnO9^*(NxAq{G1IU#dKNbt>}~V8&jFy%yeNFP}$@~`Z4)T z^pbre>dbs5Y0)9}F_l9^pkCxSIG4YZK2BRTLSh>SPSFlN!v9k~oX|iQh7dnd+p78bXIKi`fOTMXV>|$=*V1 z+@WTONfLdBO%fdFGxH*_8LE4`Y!g}xpXM%NbwqLHHk>?f)j+e);a%Ar_M73w*|iJFVs zOBRzH(~{an&0_YD0&|l+%cilxj1T>oaA!Q24(wYhlg?&y*xU3cQ4UE_Ui2RN96g?H zENaS{m^P@M&ZJsU8s;l?pWemnVO`lH>`qkXT4poVh#tibVMZ|Xshy}EG-LWP59tA9 zO_Wb%*&*~|mq9e?0^jvE{^_gBz`7jO8dkJeqYuON{m6V`AFmR)^mSD@Vl~Gx)L)&Y?G-q2f`{`Cx8@4S|m3ob?9$)Ci)G{WYp34kH zpHTItTZbux@>L`|bhGn3f+%wRf< z2@$z531m&mjXEt#WE0shbOb$CIuYe5&*Za*>Bj6NI*`soCff zvsJ>QoLo=cWrC`-gPjq#mBws{*L_OulNQKBna+PXFX3{Uw*;5OJ zFsc^iD|SKq@MKJ=1Yb}bTZ5_2`Y<`@jfw^6Kf*>cp`uVx0G%Q+vH7Ttb%iRV8jJ6W zJ~8*0veZ>ksN@kjk2*{}VGp1;1I{pcnW2fulUo zxjk5Xm%SzPCHK*j#H;8fqETDYTWofr1Cs ziz&-gqNlJ&=uu1--Od#Dw$3$z`g^~xPl(C`G&7~#GE~+0}SyWrH z9@S+>-Kaq?rq84Jv)L8sy_(hRI`Rd2$D$uyz~o6ORFY!WnTjUw(H*IG^gHGq^MUzH zeWml6Bzi3>1s&R=jExcP7hNRAv3JlFr;xc$PNQcrP9g>Sf%-rVMPI4w#cp8ciHC{C zqrVuf#8x(%TuX|WLK?kI!Ior)ik`4$x*chwI8={rGWFS6Oau0g=pI{@DxfwneaXe5 zrEGO}fcPv^ioQwCL$#QuuTYnqmar?>tCRx89Z#$2G0a59LaSJX=rUcBNkv}(tip0^ z15uE?D!rF&ElQ#u6YJ@*=t{a%zE|{+u1m*>%CZD~jVguys@|t-Fy+`vY=6p+u8!(e zb9O3SLsUa_n@$jWvmeRIK`t*J`dGNw4TcKoDOZDwo@4fCi7s%!rdk)wtV?AaltalT3;H}FFXj>k68t}n%p)9ne)8XLs{5B^}nkM?~Ex8vQ_X1!F8xqf(h z3U=GmA3BF~#MbS3^JD$5K>K&#dWJ{4Lwk1SzXc|ZL67Ztyx$MO$bLQ$`-ouyQdlT- z0MbRndNm$#IC;99ANLtFkG?(@ko>;UaOe*>8V^y???Uti6x7Z{xl5Ah=ck>paqPbWvt|vjatof>>56C=2{egJ->U< z2DFWhyuo8L+RhgK#(}M9TibZ1R1DhQ4qiQcC)(yN{?n%2XuEs(pp$#iw)gSX<73hG z_oK8NK>IkzPl-B&_H&qbZ*m0fD~^9k97X#($~$d4hW2@!UsLY{+V4qzRnkec?^AqM z{dly0J74#R9i`zkAL@DrrQ-}Q8FLn;C4oPdoPg4Ej+biBqcol8$G1*I=}P3IW+kDt zUEmkTT|nteM){MB(s+??LtH}Xyu=?jUq)%Y%&(}Fg3_D9*YvxB(tL%#&84Drr}D{s z8cKT_ALxG-rT;2F-YXp)Lps0D;~F}SYrIC4fsQ4EPyL*Mjwh2h-_AtGbe%UJyN-_Q z2LE~K4RmZb`P+kTqT{>CXV<%hj`0>Bpty~W^ENNObsHV)9lqnnJLq`tqH?>7j`=RH zD}N6i_dWjLvwP^+@AJ(!-ABj&fdAV00m_31{AG0(%7-leK|&VFi-&xJ@P{Zr9`ZVm zM<`Do@!e7$p?rDFdq+M-dGnax;rayS&l5iF^b?dvPx&LgpQ3zv%7@X1$rr{WZ$h*Zi35*C=mu_}0U6Q2yrd>p$h7JbuFu8utd}^BewT z!5fs`R`EPzvr8deUI}0J>UQ1dsGG=cz);y zR1P2bo6kO=vdHD@bk9ZQk;@Ov$VFxHkssRlBPy4Ve6v#@QQ3UtWz|2S^7+K?+xQ8U z(I=kMen#c=nLjnOH{?JGaY=PN3^ul(2bUs3rX z?feau;Wyqe@*670Z~U2C-%wfR@iPMQPG zJ1XCNzK>5nD&u@!wIUytb3Xs}OFk;=0$$Xy0F`$E-!85Im3aaG$WVyNy^!BKst}cZ zA%7~Z5S9PW37?-x1sG2I1vq<-4yfz1CIFou0ZRYJ0dpQOfzH0BKvq{NFkmnrSl6d* z;Pn9m(Y47I82oj1px7-s@cN()fpZ@03iKKqht^F9jMS&1_3s3Bsh*AE2#I=?pjB&xzH*&#!r35bolHW1iA6XnaSTSDg6JW{y7Uq(wfhLQI`k8yk^O~*(F28~!-Iu=*TaP1 zufv47){(-5df|elSESHm`WT_*&T+!C)CofA&yxg3Iax?7HAT4NGgSy|5+!`?K20bb zHC+gqJwy1qZl>_^&@7?SrP;#KhjWCbU*`(PRP%+(o(qH*+(O|)`$a;7VT*-_GnWWS z8bEka`3twPh0+XU^R?Sgf0jL`S;4&m*~ohZL|3yJ0T2--$_g|+?n3H@ir z3d6VW7mg+!5V+?DQT`tmn2JY)z@~A+sUb&&hy}-lfw9Mh)#)b$@u!ohJmQ5#b?m~P zZl?v&lrzGLEoX&37ZQX4ug?kF)rqKll7zHQ7lh-Jl7+jQFA6@%mxQD@mxV?8D=1zn zDz7xbXXaJm_MUX%P{uXk{Pzq&R{FXyv&jv?Z{$r>ezyd_v$us=FYgF4-8~_}|Gu!d z?*rk={4Akl+(T5JkA&{hCqk2&Plf*7p9yiZvV}Sap9^p9y%4TBy+Y;tTJY|XBkZ2@ zM(A+lt>E?OolsBtK^RjfS9lWo5ta8Rq3P+*LW7(y!Z7PM;X=bap;g3pLA*I%c%4>& z%HQ#dI%-}K4EhoRi-L%PfF7#gAfbN`PW11=nfcFyl=;ttjQ!sQIs3m03emqdC`JF; zpc4Ok2etU$Ily0k+zU(5j)(b<+0h~KCx3p?@rVCE(tmbf6m6$y{r|2XMjQR-9U%YP z4wU~*{NKhp{WjF8Q|B&SyLIo;vsZ64-YK;IfPsSs4+%pbN*gh9RCq+>=rLo*jh`@a z(tnjd|JCvTFZW+`-wpKu{dU}47N36;*n#dD3yaUl=(tnD5G-P<=guV1}< z@jUz4(}cGP!-ozY*dM!Z@1EVecJ7GTzHRH4&6_rESif%Vn!i@BTDf9*^s=Q(7B5=3VE(+h zb7s$)Ib-^?sHsyX+a^t%Fn-+FF{2|R!bgo9F?`t2upxs74II!vv|ryoy?gcS(Y;&O zE}c7d?9jel+mJS`TeWP_yjjyGjTr>OahFA4!RjX94 zRIx&N&vIqUl=di9(!GS6tBciQHW>|iomQh(Ile*T_!f=hn>3DZ)BJIE{du`o>=ggfqf5E~f6=fBE_?&+*MD!uI#{cMklW1OJ*F_*b9& z|Kf|^AD>qHTmGE`f9Jseqa1)HB6?fl|Mv7}gX52D&Y$CP|NquS$NBHhKeGMbt(^;< zoBy`If4$ejq3<6S55@k62VQjibC2Q^8kqT8;QyG=CwzaK{=C1%H=e~#K1T;AdbtHX z|8$HD1v<3D?)X&{|LjN4E(^{);p#eH-!!c53(nzoOpd3f#e)ici?Vn?gZX|7#qN}U z+%f;C1QdEP!?{p_`eX}P6r50yJ6_`WVK1sGKc3a1^invD=!2cV1xVG~Nx$>UkHaqd zO0W{&d!v44Sgqh098VF^c*Gy^F&+DM=pv#w5CXuDi8qRL5&2;K=Xj)xh!)@C_`jI+ zqfa|2u-#uBue9`A$Q7~mx`5~Fo3D;9;`DXj?|N_A#uc&m!8sLzTONupq9N`;uWOSM zxFU)J1~dq&k{Msboc4X9x1JqSuZYz{XFr>Cqb*m&$mYj}?%Y3>D`Nb5=DK9iF0P34 z&rK;j8K1%x@r~cNg1{$|2UQ8+?vg5^K#EY;#F2_j)j>=9DMMR4|c!%K^ZMfXgqZ-F<{qj2F_Ru{`?h~eB=^L+lP6;5i>D~+$rE6Jpou4iD{oX0;NqQh@Rc zn6?*ZK_{OAz3V6@vFIRh^j@&{+=0nA+XAe!9@AcNHP9^@s9l62^riqzTf9H$d%oZ= z^a5R~3iyM|gMDaeO#6xwzyu4}Kj<-e4>jm^GVsq915Z=HZ~5^5#eBYE+D7JL@(134 z{o@Nvd#$IyiCJJzyn|^|-vE2pbkMs}z@L8s>@Cg#H`{@E$AKY7Fo}KpF?snOOxxfX zu%~PWd-e68m#+qYK{V+8i!tr#^S~Z33+%B`U@v6@Mvnu(EE1EC8i7d^3<3X`0pS1K z2N>A{6OA*$Bqp@Sv{P-sKD#;Cb&WA?>*|BOasa0Ngg@x!wZNZM1CxlX3U)y!pkF-LiQ|}j@?lKdvi)H1wFh+d z9pI<7g8kYCOd@6t*e9(7-F_LSt=b|?yL2AdpU(uH7=_7iw}GBL9vC(n(-txclkgvg z$(I=nRQ1QSfA0It}!z%b-okzy{|riHI}6 zZKp8pH;)13M=)(c2SAVAi^(6@3HI09faN!Xzu$V$TmAz5WCgI?GE8F7BG7y1Ve+45 zfxX^z&@-k0uTI3Yxs3xoI1=>nk)UP6KzAFAN$l?rc5z=!d)J=8LtVkH>;xRx4(#V! zW7pc{CBj;#W8t%ym?DF^)Kfyoba2Ytr{ z*usoyJF5r3p9b_k1?cip;3hGq-HieNY657^hyPQ#@++p@{0a15??IP%gK69R5_E-Z z(EA?)>tuob++EPEZUOIQf_-p0Cjb2kaNZ^Gm$(4>z&T*UGr)VNFo}rcn07@R=$M0; zHX#<1&)N-~v;*vJ+d#)}0`^=Fc4iGG5wjB0-aH!kaWUA}E&v@o7t{8BCg`=(z~6KV z=x-CjzhfNe&Z9ATML6iw!+{ZDm_+44;C~zndQBhjx9bU1cLRS)C(v`+W7-;r0G(Tb z{bDmretu)nt%89D0eFYUBsSN@v<H=@H>?T-gXE3 z9#>4;6bslp7%}ZtbU=|BcwY`Y>Ws-R6N4VkVA@)cV6Reu@56XS9`Ma)Oj}wm+@BqK z2YO`=_$R#td%tX8^Cv*xhu|-HAJZng1NN^sFzrt>z@KpycMRZ zViMErpvRpAJ@Oc)eb5oG_dSTo_lN~{*#qpj6a4MBW7^wo!6e#m1bc^dVDI!7=x!^) z-#Z%Y{g;4!=t4|Bavu0?vw^c`0GCApH%!Ll_e=zy7>8-QI2zM_I~^#D{PP9y z#|D5uqaOIb)&Z9A!?ZQIm?9xehMLxX+<&kby~zvFT4eC#Jod-->m=z0j+{VDj@ zJpg-&+rSMOz%r@8oynMdjdPg9$#}3gJO(=RAo%<41^cHM;H=GHcUy-^99oHKZ?+V4 z_I&V1&BC;miUOXQ2=+c>Fzw<|pm&FXKV$$fzc+AuH}JRZh-s%oFo}cB!QQVCXo~>; zEA_xW!w=KOdjs>T0OQJI5|O1r`<4KHH3LuTF!`xUOnYNzpq2&RE6l<7;XA)!5@SCC z8@~m*yafN7C!o(g0RD9w7@i6K7HOFFikE;+iJ1KJ)1Z@20Cyk3v@PC`NsQTz$@kn2 zY_bW{?z0yBrB?#AOEGQq0`PyF1$-Wb$={y@{>-t!E8&<#@-Xn99|TP3hiO0C6a448 zfKF@={!6VfZC9It|5iiLkAi?X^}wFzhsitD1e&X1+ACB9)-8)^Yh4m_e;3d;BPOv* zgUKI~gFj6I_O~=pRfyj6M$b{Ie*=bm#3aVN1+IIEX+QrI{BN_sZoP|X3%&siPY3&! z6kz5BOuOV9=(={$BaVaKaTxT&SkSJ!fgQJF+M+jM@)>I}?fO-~_RGM&dLi(^9I%(2 zfk_OVf@zDJ0Hnu&z2zuOe(g|9`|E+gdi}t@s3-7A7qHjv09@1t>@S)Fg~piZJ`nhw z$Fz6y2OjgqBwT8Mo>&F+qw<)xhGoFM*Bz5Lq5m)L$p0yh_w7;p{BhuQT|g+Jmmx2GgG295|sd(6a$1pAmpb zOsxy_@&o%rZ_rDt0fQ@H+VaYQj`aZcFM-LsTQTi74Zx)uU`qw~70#H%WfnM(1bg%R zmyYrz)L${}*K$FxdW&i6@d}go%m%)D1oq?iF^L(sG3{-xgD#bh$-heh`{`uhlJmfR zXTV?Q6lm2k;Il)(_*n3-+zonU46wx(V5JS1gmew)7b`Gr7ncHeF9iF-xtM(TOiZG4 z6xai7peu|Azjid}f|1~VJ`|Wa2<+!VG5LeNL2u~}{^-uYS?$3-u??neWDC#(n*e(S z13L#{@@+XxTgy6NZ{~|>Z(IY|sOk?^#N?Zl!?ZQ?0NtttCeh9c>|zA=)?(TQDKYJ% zq@X8>G5I+(a77{Rr{TBeVcHIThJKs#A3$G!1O68;!CvqTsC^79{{Z~_9ZY+N8=yyA z13fntxcw5Q?OYP@Q3BYh)0l+ENw5n?L5Cg!Jv$b-cQ+=V5d-|b1z36`_?xZ8v`4N2 z`=)5nR~Came?HhN&A}wP%mDw~slZc{!2W(5CSP_mrmgcR@Glw$_6vhSlLJ84>5EB3 z^aOisS4>+@M_{FPz(K8nJDX$LUo{3+3C1Kw1Yz=rIk4x|0UcNi^ek`CSF3@xR>rjT zE00O+F9Y_1lE9{J;9qUQAzN*dy+M{rU||yI%&_*Q8mOUC3cp9j15SxjP0 zJZRAgO#84nO#aS6&<$fTiNm`wZKZdBeaTi#p4kNU@O5B+wi@i6SAhM>Qm_k)Fp1;y z!0$C1{5z(D-(xEH*G>YO$7Ax#MgukBn6`z(fyyx8f`Q;yg#s7%2I_lY5-Yo4+Fd(h z+BUTXe}&fI-`^bUwVQxW2nO9;0DX(cJ;RRSh>0^64X z|I3m34fwac#I!fg2L0wS_?KpZz4kp|)-6n8_I1!+*MN6YF>Nz0gTF>H==^=7H8F_>UZA^F#k7yC1bR++On!4& z&?h~>f88DQdsj?CVa4Ptn1I20ushn$|7^XBu{ zI3M5Cus-e-$=N5Y%-Pn>iuI19@!UMO`t8!bRl%AHn#^T)TNWSQ$Q^6C zWE8iGtI?)+Yw&j{n9h~yyW-}#%gM+RSXcL1#BG}T*XXJrd8|#F7IUSWh|WknAidGbrQGX1ace7kSH=G0IP4AkNN4i0Jd`_+8?ykQ~487`${hvHna|UJ9 z{E{`ivF^O&FV1&vo_Isc7Fb8-ui+X#k8yg+_+afDx{focD?gF1gY7r(zn%*`IW}#a zrWy99yKLav_eg2JdRA?$%cpJNzRjJsQYr6_b*E_?xy_L`XEi_C0qd@Qo4DxE&x0ma zfa9(HdJ}he$Ae9kz3XBBz4e>9L5(t+K2L`A+lFl6y!bUY`rP5Lf46umS2{qiOurAu zlW}Y-_h?^_kO#5du>Z=CZQL4FqHedM5!M^rw{ws5;&(4Pw8mOU-_E5T?EcWRLTRky zr^Rr}R}D^2ZTzjSqrPZr?chGO%kKVof^q(fhhpvb zavwMT^>BWBHtfG=P%QVT<@W|*8^f?ae03}r67JjjReB$+hkc0UyAzK zbL%T*sRjkY_N#2#&m}gnjz4z1Blf@kwx8SEVsx$Ouc27~)%pO}bMmz4cdgy9uD0U< z_tgAmNWo_C?;{U#cQ!pOyNRN)-?igGu2J`(D%OpV-iUn%xzGW4r&Tw6q@a97^240``r08$SK#<9m~V~08A!G|LzB|?2&tvY9y9S<5Z13w9pP>d`>fNo z?}7CgeH`~Ftoo$XL|Fgrpg8W;xJ38d9=)-@<(W8cgEAxd!lEHqZ!#U_LelEQSUs9x zeJkuJcQ=2fZEku`tm$({xm}~k)h{PP{-~|TxTd5b^={?>>{kyz#?6YX7`3opFRZ_v zKgLx*x2)RHYLGvvF2}h_^7*Y+R_ucPOGX^$+qXo>xqNhi2xO+7MhA83xXkK0Mk%#R3jJ_7Y^;>eR+ zt5xHcZ=pl5|47nFuEyY*`-9RUeRo|?aWNw@^85ujzh90x#qB2MuFtIs`ST+26epe0 zrNt6gIQ}%3crHKjmFc@P=$PU0oSv(7?P%Agc>Dd&$8*jf?>y<=b0F4p<#w)Flh$!j z)1kiH^0jl(J^U&?89oa8-Fn%%+2QF+cU#6{-C?esTa)JBzQyWESkF3a=kjOAlzBcA zjxY9sovU#$Csi{7^8d2)X>LKOj*lA_LVB~jPjfZyj2#fL5%kM$r@8ej%Vv*l4A;X~ zGf#8TlMAvoPMv_a|9JmtF7nX1)?Ff?{-xbH&7E3FkKXbk68jH|&T!vjJALgoI0EYh z)y{BHJ#J^Tu00IvUY*Wx?>*H@t%SqnUV? z%Zsj3tCSDq*Ya&=Ip-IZDjYYA!RzbN&T<#kJ7#Zu3gt8N+gZ;2YyaewO`zX-Byg|4 zBqx>W0O@btEP?agmpgoDWw_q#h)CcX9Z&v{-viE{&+8Jn9ij6R+J1raquzxCZdTo- z(BNs{k9?oNz4QOJ`)axIc>g=C=eWYSn8=~eOJbcNoa4%oxB4xNgYzSI$T`kW#EEuR zAC3Le<>$C6eD3nXO;8`L_H$fm&DMdh^5Oh&e}0ZzJu+a^%6K>*%$oDu=T)LE)U0qE zUsmTl7cu#aJn`8`tUvWW&n={rv(GgRS@0Ulr_1C- zu5E>tRcm>}`BNB^$Sv*A?!B}&>~HziM6OSKkFwXJVEdkViQFya`uAT`+TiW)_DJFs z{YFll;sf=iV$&q9d$)xtb}7`y^`nxw7S@fG()rGKefgRsE~l*66YWL=s@FnaQ(L$E^yrnZe1DF9?rME^)7JSVBfj!UXVXq`(5B(R!*Aw zAp9NvdwFO61+LnJ9qN=fP@iN+E^yO2qHiGWf%5UXe}TKx-c_QV3+H2VaWXf~sb{?B zKBy19swQ&_npYDUH^ccmqOSOe z*DJ}~UsY%2)E)x)75q7wJ7Up%@I3+XJxg5V_GfgRzt;%ITiDj^BDZwtj;s-4sNZc)UE~s;^yvCP41TAl7rBg55iWlP!}aQj{1P{? zc4l&$2+*BtUg9F>+XuEk57(2=T`qCkMnxA+?g{mIPShptn&jflIZ2Se`dybe?eveE zvgX6}VtM){&Sha6MQS3{Cr#cZF1&h6-Pt&}UPhI=%&pc$4d}ze{&E^!=KL$3ZP;Ww z9AER{m${sGrIf*UV0$quE_1us5phA)^te8JiNDOH?dd$!=^>nd{Ikp4`YMV#u;k|M%^jiqA9qRNq*AZPTaQEj%A!&@V|0J%{{ot;qaD7_bOFupr^1IpB6mG$rqeEY%!TAv4euca3JJEHKJN*4@5qyQ4 zwzu)KJ&WP`RzK_t_tB-yvXO<)aeebzc7;2u9A5v*f&hFxh7(sfYq&r*bBE)9|L_Vo ze@({0UZ3E4{fJ5BO0L;w?0yx>udykW+tQ_BR3HQGp`8^|xk?wk64%Gr@b;XzRIa9| zQQGX7Sy=aOoytv`QlVYDNYF?7rgHs#FQ=ph!tpzgN#%yEUq*@!&%x_=oQvY8SFAm* z6I_ortV`wGFK_-7RBkr*Kii+m?JKkJ>(uU$-ty;Dxlvn7_L-JE1N-~kOy%-5Z>o7V zn~e4PS1A7bg~{{1;e5(0OyxZ0q=jFp3VyLRjZ0s%F8<6xC?B7)X`E!sFyh17MmTO*PiRgRgl=I+6nHE{Y$xLxHQ_db$% zoQCV2uKHE(LRRSKqqQLa#llr?P_@#J?LDXB^*^<{%6)v&TihwD4c1u$u5vpA+bYAn zp*)htU*(=;f3hF*n2!BB7hL7~m|MN*lQ{+JIUBEXS&a2MLEl4HxiV8LjO-#N+;=qNYMUr=9m6X~40@@lE79&o;e zYtuP-a)-fn`$Kv8l}+ca^fKxC4uSN4tCh}?pU%9|oPzQ=+$5dbdgQ|ZQ#j<`&~EA6 zqVLCpT7HG?mmZ$Z=_A(dUwIAcZ^qPgjw=78*@C;Uy{PDP?qP$8-$u@c>rIsy^j+|h zic0F%P@mF|r*qdkxlO&Z0q&2&Q_{JpDbKX3u8<$PtaL7R;Oj5thQjrI?}v15;80a_ ze+J60zUUfPf8MCEJv<u7|gGXK)smfunDph4a~B&*047C7nCI z@x}2&uA=m4Y4ytxsGsv5XK<-iPybcn6O`}iPZ?Z5gVDnN=kWLbog|Zs+#jWGJsawq zn>CXg?(H?wlY#vQSI*?Fj5}zXa02pU2$#vV+cr@=r4k(9f>xPaF1nw8b7>mh|DN8N z+yb{Rt~XvZ!1_XXCO0ip_Kv;_^(kvcCMPR#Vo0Th^|1fr%1my5!i8h2szZ5+c4cz< zCTIG!Vxj$_IhDyx8Qo&sgE~%^$LOY-O9_$41^a@Vsv)R>+Ee-Ax!Gr8yS zfxTppp}agq*SW5%gSQ|4asTmuDEkh8n&0pLySw+c_Z~ErG^E1iT~^2lh0LtT9vLY# zL?R^>T0)VC?Bw!PNLzc4TeSDOd;H(tkMHOE8~^e9-_PfIckX$f^PK05*E!Fd?psfz z9$_bnnAhr{JT>!rq;&VP-RCqReoHgz5#{{A_z11}n0)@~dgOcN{oSQY;Qsq|)+1yu zhuxo9A*tFJcAGV%VNj;*mG{8`^{1T93@mb4+t}+KKV&hwBlZ?J{b31LfYCw{24Vxuu!+7P-X+XA}t$nZV5BI}#X+UOa zTkVo*hIn$$vjLIMEa}XU!1$Scr~z@YU03mb3huWrpaChK`K{vhJ#S2(gqsb>n_yFW zwHBDat|<+Ot6+uh*)nK_F0@c!68JjTqSGWy`@Fo7{7B-YOjoyf~dwaTc7Q^*&v>Oqhs^xdp^x^%AwU&*D zVZ^+cA1?OTeAdE7M5E`;0$>93`-od3Qmeq{YiPmv;q7Wf>+9V-CsP=2mrgYz*^72> zcy%cZn@B6Q&@A{4>(k}9M#N~l+(5NA)Q6DXh-BhDBfmX@;{!f6BCh1)mY*I$ zyd5uYL>d?R_t<#C`1fu>*Yo*w@^c>S2kM3zk?uhMvqdHl4;M)qktJec7P}1Uo2k%* zG;LbH^RTfkrjOF}CZxh!Me^t^T>s4MCdA63Y!Te z8OHau8_kGg|JwFxVrY-_q-Lahrffs^YcFj4w-?PwVok^IYm1;iT0t{{dqO8`mqU7@ z0-YbS#ItY$+K1HHjLZ$+?{`TE^;MZ@M&f+G6zQ#m{+~u_L4wC{gK8Eq{>)WdkosGN zYxYG${IWJ_LAXDnu7^3me6w|EK?)O`qf)wHe%mf@K~}T9S<_8nyjgj+ATlHL6PYov z-gIQP$hih?bZ?|V|EU(8r zzjxL$=&u_st;i0dVvX(=XfLOsRwO#|{A5HFjNegFE0UDqbZKlGJpUxgwILoeznQBC zK>sY$Z$o~n?74ln3EE@Gstvh%dCl|RO3ShR+;VC|C^Kv~xS!sO(KhSa5dP%CSuf0B zepc*iL!!P+9zKDGw9m;l#OLny>-`KEZ-kIG#3n(->~1$aKgQi|L*^JgahS0K>T8zT zhBycLbbbQRU)gWlklr~*ZfvdGh^@EedmEx0?@Eg}2JK%~+lGveq_%uFgz`3Yw;`s1 z(?;hngLqZPM)${Z^U~P|^KYY6J9_^l`}UJ%hcJ0H>g~u*{a5yceJ~!^n6)FBDI<5I zcf^<|#-FoPsc`MoxPSIplcNw(jGtYLUkhjx()0K6YJgtN6h*Z(7eYhmp zkA|LaNBoKw_IPQ+{1^^zM?`)q>(l9bu<;ub+L4%~MTu9gL;rqw){e}7P-rZ4Ta5A5 zne9k;&D7C&9F%vev>h1%;qi7982{xh?T8+ea)0A}xL@O;c0_YVWuBZG%y&N#DnHf3 zSQ4@Ylh;LIAtr50?9+wu7%eN$LJrjUMJ0XPfYG+Nu47K%x z_3*qY3mG=KyJs;0#&3cZ3wc^NZmVIPfX!z*u#kXfo7`RB!T4%ISjgii_m@oALU|k) z7Lul0b4!i__p9v2LM(b8m^&h{-dJvCAyv9JY~H3PVe(wO(D~{CDZbGNM(;SlLXL<> zzpn|5#c1E-EJO)^@8S)4f2x$SqN)gTY0cxHpYJu#zO3@H>&#Q z!|@=Bg+$mr3h)jJ#rWlSSqNXSsp7di^jAv?3%M|{VVlm+TNuALorP2cO&Y#^eH)`E zvRH_((feO2A?Gn#l+8k7Yp4$g*1-ONl*d92Hf>q`Ln{vBOBb<_SLZT%T8~6yv_d5d zp`DJ>{kZNvMyoWk5C`u3^Yv*^KlKh4a#QLOZ^vz@k47I0saxT`VCP(De~mE~Qkfj_ zCSWGCpBj&aye(Oe&p8X%Q^t27qWl-8e)FJzcf!r@$zs=Df)+^8B9f*ljOf|j>;<@v=4uoJLH#2p)uDC$bvPKzx~q>_E2pkjj)pcVpx0?sOpB)~#MmuOWVY zxZinQZs*_RziS=4p)EvnnG`R*S&5NChywmtz|&jz6T zxqnT*cO}FZnI9cUkze81u||mBUF97})-0)+J4&FvzSN=XW$S*?&4c@iZRqNddzBs#%0prP;(TV6@Pat$Hf%cMG(ur8N z$MojTf$>@D+KI?`PK@!c9>vy++|Y^4c>Cx|Nk8=Wx~-jvR;t39pMTF&ihDW{=k8Yh zho_*t%7dNA{3ErBf!AUFMV{ZSiM6whkbxK2hFj^|O6CoB74sNM} z^&{_ECvs-t;;%J3Vf>!I)rsU+1-YmiL%!|3PQ+NYJ66>X+P^oY6WO|_)_K)dFHBxi zdM6Thc|C4M-vNwv%j!ge9+2A;EDuMWoOrd>_I?&0dd^NRa1`qKI);2$_8&%SdBqfHk#0ke$ECEJn$F}iAY z6PRBZ-}a;PI2>=(1e^rxHSs}LG1^MC38>wFIg}d%<#mvo0CnrNK6dL_j338t1nCQ2 zcuc-Hh0&{f8o`&R{xg@nJc`kjhDLDQX>74=5!Cl=Lt zGe++^(g+Ufx0S8@5QfoKI~qaYYc_GA7ThmxZ6iQP!S1vMH=XV1bY+L=@%q|k6TWTAC+`ee95z`YG{k5P0WS4m#o@Ek%(a%3L0M(b1 zl9$Jz{qLqXfQP)~%(k6y|5xrcfPrnlX}g3Mu<>WY8^AP|qs~ubpnZM(8^BX5+c}?$ z;C^==ZU8?eg(@zemtx~LZEpa9>vEnI&|y5RThjnKznu}*Jn+T%Ymf%unX<6v(+_CR z)z%GQ-ufVtkw!S=Pip|QQ@t!z=bIS4L8$?_FZo_1-0y_ZTZj#y_>GqnNz((PcTd)X zw2?PC`D4%?N4x5QzSUE;ptV*QKcKE2D7l}0Ie>%vx$&bOkPbq*d#|tygm9<`ye4{#;5unD5vf!4^RIhd6a0 zeFy3GXe(U*es3K(dOCO8;u|-x@pX-LK;N6!JMRe05BZWh5SDZV`E7duSiL$|H9-tFx{v5p0eZ&Hl7|;2dWobv3Xkt{kaufY&|ZtfYQaUq^f+fVn2)dhYC&}D zxZ}ZLxc>A*wLn!~R^z2T^k3|@T2Q*F_~h(RsE_oTTJY`45|&(+KW2{*q!u)psa>JKi;5800j$zxBfSwwr6f+RY=uzs^E`RII20oW(mHkH|uQ zoS0t&j1@=s{WgI4s$y9KGAF#Po1en?{-{?2y3cMiE7O4S?WIryo|K3BusaT8@@a$` zaBbw&im1C#{=124(6BD}S=Ig(7=L$HHJ~myy28>3#8IO|puN5qRs+B( zFFth*9 zg7S9-RfDM0w*-4_V7)LnRShoPw>=b60^_4|Z#5`XaFe|^8{*&Njn%+|v`9J672@UL z<<+2N6aA;kX&-DoyLr_hTQ2_0)^g}Su|+kAE!C*dJqq!*M7J7D^cd`P^M~@{<*UJ~ zc+D&Aa~!exhw#;)`Lj>G!cQn~;Y1Y(_~d22`~Zw^m98rAZHhTnRtNXjUsnY#k4k1Q zi-!LBURVVphsp8Z7Qy&T$*BU(eoD>(MKJy^J+A^B>05oJ2RC5r?M$u$lWJBgjCVr& zIY*&%oY-Y~JM^D%a1|JcvYx!_0P#r1w+f`i+Gd{qxD%T{xvvV`_FJ|uR|w^^HdO)f z`Xws~`f&Zy6;;3{-YCUyH{3sSeia}-EW7S!1Lb8}R)I35sYvf6=${ArRX}$5OJA{{ zGbaCzVimCbep6u{ALidpVinK{7u5CUzaLVO5r ztOPpxJq@Wjmoa(4C6&NJn($-oL%3e(=SncgL2P-K0Q2wK%Synf*_IF6!}yMRPzk2l z=S7y!gYxd(t^~oQL5gP*V1A{BRstYjof$j};>D}8l|Z<3`P-2T=dty2eJa6DSMd&E z1EedrR)Tq_>^Jjo!g~38btTBwS7>;A7RCb~sRY#tZ{puu!~H1QR)P?tn$Y7EsIR$E zCAeMpXzs&w=x-ObNn(a$0d#k>$J8XS zULJc=0Wv5Sug@hz`y}0~0P%x6?OnT}yt3;RKyvZ!T<{vk2kv48a3a_olN*KcFz0v$ zaQ$u9I&~S=%R{>>z=^ji@@{|QIn})am{rVc?T~{0X9;H84@ah&bHqX{=IO2 zwY@*VW&8L2kxaP%{bfJFHH{6jo`;}(@vEOeOQOAWM-IfFJ8?fjhmJ5cG#TQDz5h>; z6*1%4=SvU|8+QH#yHpKc>V?35_~MeEAhamOtn?1V!x=MvfMR3t;*>Lr!B9V^A7$XH5o51+tT#4)`tvd% zG>)4c76A37-6{iD4rk0UZG!b@;&d6P+p=@zkyTLsuPtRj#aKM8H4f%`4N?Yvu07ag z{uJ7)#0Z^VEqC;C3ykjqS{c}K<;Ab-*{~jdA1(#f2NX}H6d>681=Xcs{mhLjyS3o> zvg}gOVDDXYYbM06hNMz(=jXaBZ@+qB0zPT|j4%#=*sRXcY4SWb3g8nC%lz`t4ZRgIcmBQ9{kuCw<_n+3+hr|9W za{0|`^%9j!e#7xEXBGkH zJBF!!w_!Xml!`#QzkF!KItI3%GEO0o(K%Ll$sgK(cWWUK1t_KjRzZFF`Gp`dy1+L` z3hH+^y%0FmmhL@&X%05u@n#{I5jji0Y&x`W%c(-Jgnem-f7!DTY~~o1UoC_9 zV~rF7Lz8bgY9C;IZZ|3fIFhrxxhLe`rWb;=Lsxxm?4W&CjQ#*}i>*KMQlWoIbw7ag zA?f+8`!`_n^FRFnH_x{`*tZ+zOX!0i;G1*sqvt1JKDb`}0S@iG$_v^9?V)<)2k`MC zGfA6aK6kGF0SZ2OcrNUP`0?8D2ME%;5TpL)06Wa_?VZ5Z3dr!1&61^&Olz^{I8y z2AD57cfNzimLujM`c}^dbw_5lO;1AgPop}S-JK6aSNP8ZS;qQa?ODy~b z98!j66XwDEEPR2E_q*odgkOWr=f!*juO{+|tn9TIZQ=h7^dC*qjJpQq?cMba#JK7e zO23rH_(?9`K*+Z7F_*vRpH|Cn;F8Lrbxjp8e)Ltoff+g_bj=cIpS}FApfblxW>5vj z%L~?5^!&H-ZcZPhg#}-MrF~wh!(xb+u9;s!dcIugTVI$jDYw6Z0O3VxM+@i=j^9@h z)sb&g)C9+G@cIg7d|!|%?*i@fYS~v{E3{B!KZE_TvgKFcXO?33Ce;Gd|Ge^7K$QJ; zr}H|jXTNy)VEU@P4@6sGKe?8b4|27x$9$O&@iMm{AB?lI79j`m*nGRpd~kHx+Xmb_ z97aF8oev_vR%h6qgX2xl=Ywgay0#C9E5?89l@C^w&5y(vY{O_%mwe#0T!ZO3AL2)* zWj?4+5ypCZK)ke9$p;^1)}C3q80Nz_ejZr!|{&`?)UhMU^A2wq8c<#;v`-&M0 zk9>vtiI?YrME0&t%gdoX9$V!B#RE2EeLD2V2DLm8Bi3qJ5wQuIPZZ?>_vA90Vp*79 z?|$WiS}VHTzBMqO4;ANvk4=r6j{MCB<5#&rgpb&iwh7j^Uw3kWdD?=Xxrs0z9$m}@ zA2RF%F15h;_1TvTc#nro&XN~n>shbL1s?CRlub9l@j}~NaA%Pr*PgQu;}>b>0<()s zrZMLsKM|J;I_&Cbe$^0ff0qN`aA|t9bQiS$okRfawtcp6^;N*;uRaJs{lWKIf-|r_ z$~yuud`qj^cLR*CIx+y-*&V|Q?_vC;RDS{4*KgkWpb7E%%!4oB=GaE?eig)%b;rH{ z;+%I;RWe+rU#+_w4}cPQ+}unV64a1r#5~Dk1yy44Fy1XlE*Y z$z%f0`pxx;4`Khb&YuaAn1?Q$&4%%DZUqzkzO;PuDgyH>RhM+HM$gQF_TFms5i|t%oZI&R=EJBc8<1jdkXuhc``#?g21;`eMV}0U_-U7r4I1_0 zQ?qX_#q?|Q$p#DkiFSKWLH!~evq5Mw<%5|i%#Wo~*`ST|u9jH<`yX=M2f$Gh-QqMt zdl#pE03hs`%k@`K|J$cNfLS@(_2$}8-o8a2K<|Oi7K>&;{~?MWz>C4(R*dUVzCPTvy$uyQ(=WURWUZY#r0vlDNvmFiRd(&M3J;+@40K+D>1)Uu`I}%o zrw+UVVPSVCDHtUNn?vg7`q&U0a(W9)hEp zKz~#FGr@u@@Q?0?w8zg3@I2Ld@gQ*?ChzXC3;=?5?fW$IJO&Lv?*%C&!u505X`o@$%u)ZQ9k!o`chW%d#`f$l zPEh|i$24#+O4?!HkQT;|X-oy%b!bP_X2A86&!>XujUOn@wM#I5j&>?I?|8g>d@YRc zCgvkhwPXL$_EV6S-SG&Feqyh@HxBo+O7aklwSj&2Q(%7^oAMCsI(|@`69w1rcYX+h zoacXAx9;!$emwv-d-vuxH^Bbl-Q@=$=|;fW=Xc?FJCg@s3$eGJ_Yl_O_dilVScSaz zDyB51pQ}#_P?nAT;QN(<(F61pu#eF4d~?bcj5hGR4|2!1UtFD_g3*zQ$>34*^`0kB zpgdJp5*T|OaYxsj_4&`=x4tq=0yimFADTwP_}I5U5pZwsr|k-bw9T^wF#W#z^o|2G zOrG*cJXrg%Id|V>Ta1>O9S@}ISvGoPm=C&V?}7MvlG9b$ju_wL(_LUZH|$!og%U=` zNbZ0VvDOIPj)D{ho>T610oqwTf#gG!aE zUzMRyKC)pKaM#b+HQ!GT`ZO`S(kOy5w|>MYMuWZ&Dt@L#p{CZlE> z=`sub9$zW;tT|UU++${ZJYaLRW(;BMeTX}XPiE*g3a7gbjUm@R_!I87-(uF?*c~>X zGLFPtUKw=yM+76T<-)BM`s2t@T1?Evr@;)z-KUS9cN|Afl7GCvn01eVJbt~leBC&b zIyw2pBQKoM8qm3K>7j9?vCrw=?9aiBpgmI^?U%=q3$nOWEVdBQ3|e7P>Q2n)v&1Xw^7U@+ zR6p3z#gqx;cd$*>!O1HOn}$`w7EO|Q5;mL^!q@#Zk=${wI^ll&@d2wR`VUq4KB4U%7ocmpN%}*wf z&Z%8>_P3qU+ z#wMKZkn_PwUG1{u@N6jBiA{)O{PV6qZ$1pXw zuWbU8Nav!#mvkArG(k1Zlf6 z7|W++svhf^LVw>s(3MqJu9CM@c_%?$OJmvzyIjl{imx|kPon`!X1 z)Na{gHe!1%=`>^c4W{vQk6_2$Y-F~M=T+MK1m>xyt7<%g*vQ_6oFy+Dy%=TlFL@`Y zun~{Fua)gu6PTb$`m|Cm8sBxk~9iWA~b$ z_7j~PX66sWWm+y= zL{R4Z=yF{cb0~UALgN80lEbb^;1=9x-t!J`{1MJY=DiD;$d9?lXihO-)b*T;n7Cfq zIMx@(xUuA&n(a?6lJTq0c1P`Tru|vfdoRYg$l*J`9x9iHG72QOq_?W@5JTh5v;69k zm|fq?vK$HR`N@8w)W38O*$43hG zd@sIOlE45WKaWGne8fh?kt^ayG0vlZ_kHLqAE`LpQ*0L<$;_#0)7p0b=w!aMe^>0#l&6Hv8dh0U}j@*?LFdZst7Cu85PK0_4|`oKNj15}7VL z1mkBe36Ocu-7l`)e44qE^1wPPO@Pdr;VxG#OlDT)xkl-g3Xsdmmgg%L1T$!Q^;`4D z1<1+7LrAeGnVGmgv^7Cfh_o(uyS7guh;hC`vh$gf5TO@@upE{qFkCA)%^KS;MDuI8 zWOZ0H<6RFW=18OvS+Xr~IrI4mhELQ;i@^sW(!8RtvV?e=!T-A5L%LmvoJ$6s zUK`D5ib{R>GF6P+HcM1DOiX5u?Z0Wc{HGYXk*WB0;&vj_bjz+`ZN3=EdY^h_@<$Tm zPR=0*3u6hg_@*pKdvKfKwDjoKGj0+j{6T|dNA*31%9q4Uk-r3?&7o8%eM(|BL?s91 zJ&_=Kx6>vzEWgSaI}vG-UoAm;{PxB94(w*YM&Qr$kl-_gHjnEogrRRL`aX`nN5}LP zve7FOy*8j%2Kr7xe>Om`iRk-)w1EOn)xrr!Q_?n`<={lXlj&qK8NEnRC=~P}O(v24 zTu5YiA^qXe;1DVW8%ZTo{(ML!lPLro8J$K!AM8a(UwAxDnnt6c7a1y*ie41ZM~y*^ z-P{gjIJs>(h+DK}OL~f%I}VqY=H`}yzC1kK+_r4N;XE>M9)I2$8Bypf27RTXFSnSq zr*4br=1%Aj?&uHbw6s5y+}+dDotzFH#JQ!W;>cQB=tx{tR9c3LkB<5($N3h zQrygZ%zV&~mY^SbFF~2RjRDLOyHef>&v^fT;5B+AQE|GcTF*~ot$$wrkY5-D^t`T>=UelAZWQ|MHA zd7?Z@VHYxLX*!usm6ezIGyA{12vh=rN|lEf0zqD$LM5Qn|ImL33W4&6LVrYG=mkfj z$ttR9=}kAWu$t|_aPqyJ_3vk7|NE(d|9&pEwTD*Z9}KTk&dKkbhG@7-zrOQnB{dXDYR_vQag)aC!KmAm=Bc9)5X%KA^D z{$(h2jei-+)C?Nx-&*~%!T)aa|DaXsKcfDzx#`RQYV-e{sDIh~-?n=GkEqlCXqEO~ zwfeXF{%>agClb^{{}J^!68?7^{C6b$4XS@OnEFppo&G1N(*FN~>falr(*94uU^mC! z!Er7Y>PwfoEMI|zy2r*%n?3(%@*iLS&$z-w(f<*p^^d53z~Eov{zsyu{}HAAk0^`( ze^K&svNBMVzMifQ6lFEba^`;*g=t4b@tcG`84-OxBKpic^nX11d_?p@M!5v+Gbxn& z=h=y9ML<6%5dTn8RP-kTS`~0oQh0R!pSfi6A5Lj$SlIAz;b36lptw*RIEX78lmv=# zy}c5gWK@D1Rp8vj;ZBrOZ{QS8;cUup+@LDhczYkV?^Pd_zj-2YZbruF=$0*|vl)yG zkGQxkY2~L1l~>ue%#ZV7eD%KPML9|MO>$aeU}|4<_;$hE#69-63lc8|Y4nVimdYAeEDHr_@Gd! z=yK6i(f;Cw;uR&IN@kWOm&%s~mW`L~DX%SG_A~qEjEeXQnaT^5Bb8oNl~s$Y-&UK{ z+^M0~p06FK-CkFY{=)aG`socZ4dlkNjlGSYO(ji?<`>QSEm19m)>ExrtsC2Zw9ReL zXxCvyu*9t69UUDTI=^+!`Ss+N#_#aog5O8F+PcmBxyu$G;nlmbkA7L*wXP2<7N}_6Vj6blf#ocrz)ow zvEQ(bIdL2+*N@xJ-Nq~9A^a@+QDQhX0 zETX7*k7<8vG;PQbXe@zq?W06No}2)p&DDY zP&Holh$^D0sQOFgy-JwM78OesiE^cKs`44-<;q&hLrOsDmeO7&dnKw;lVYagCB=1$ zMv82OLWKl{BMOLuqQYTx zOET+ajAYo-MbZhFsJYZ=>Rzfnl}2rr z%9IL}S}$cJ#ikTd5-3L~P821|Z}JE7HS$)nB^gJqBBhefl2(wkNyEfkVl;6t(Sb-K zHWOYD0txF0Mg$JN2%msIig&^*;k$4jaMy5KakJ2ju9iHOoRh4S=txGydE(n*Z?U78 zE^ZaQ6a|Skh)hIWVX-htcueRlR2Fs%vIXIS?E)(SUQok-%shaXMDc338sgcS2$(Tv+ zNyka)$<~RN6TuVi6DAY9@sjbR@nhqQ##P3<$3Bi-AKN}=HAWb#8GStJH|jd7J32a& zKN2(IJu-JhdZcwYYdCn=eb{uEH&il|G<1Au(U8he&)~x0_|tp^E%H3Lru{03YH z^ae)z^ZR4^_xI23m+o)t%jyg6bMM39OmMDf4#eS@xDK2Y-V(nae-597|BCO$%Mt7d zo`g$;R6;RfgrG{CNAx0IAwDBk64^u@k~3*PDT4Hx)IbuE49UyMN69hdkK}eTiDFJ! zOF51DD3{Vrk(RQN+9(wu^-$`E)R2@C)secL8bWfd#%vbDD zlvT1-+N^X@>5)>A(y)?>@?7Pe%Av{`$`#5}%GxSUD&8tLR9>mns|Z!5tGb{$5v`i7 z+NMfWo1wNw%~$Q78c^#}qpMr1d!SjJqF#VzwxWiE#x{*$jVBsq8WS2CnhQ1eXkOEN zp;@EJ*VNZqs&!B+O6#3gvld?4M0=I?3GF-DOzlo>DIH6l4Lav^l6Ai7^y$dy+Uai5 zy`-C_TdX^(tEx9&Zh6Hgq)HVHjfg)bOX_q@k7(VzkdF+$hVa z&PZT1&3KvdVPm575WSwBM}J0-rC*}^&^OQ*&`s%zbOEi4_LKIJ_J|fiJ4@R|bEVCp z>7!?%32H0#2lW*-o_d*jl)9O^h&q$1M#WM4rD~+UNTo|fqrUc*a+8{eW~!VNm(oco zrM#!4P{Jv`lpU1i6kCc8dQcc8H<7=QUy$#TgUN@<8_7=O8DwR$h}1)>Bz+>Kks?Wc zq&=k7BnQ$ok~C?G*iI}Wz9A+NuM$rXw-T2Ut%#cFNn?mmPsk%YBgCRH>OFuMpdcb;K0$sHjQwP4q%^R}?Hd zEZQh?5}AusL}FpDuu8}jJ{Cp^&kOeo*9aYj(}glZwtyul7Q7WC3&I2^1=|G61l9sA z0ZA~-Z{X+gpYdb)m-s&X4g3XsQ@$c!!0Y1u%hq92*rQWTQ{SduOx>Ldo;p0Wams1Rd`e}?sQO}ceYH)^^_t%`3v1CQ64tub zrPWF5JnLWA%QSd5fCkORQ;lVfCQX4&O-**q5zRf#&MomRlPzmn(_8UvTif2X$+sV9 z&qpi!Y1U8HjE<0wmJa*QsLuY*#lMn%aele|&iGC0+R^o)OR@V<_xEnSo^w4_Jr=#8 zz3sho`=a{>`}*huHd{L$FakRc(z7{`^H#ualn^Ir30`1|;P zuPHbsC>59p1BH#k*`f$hkH|?JFP;>ykvu``{}$XEoGgAnJ`b-&@FkQJ%!on6X5t*u zO;Rsu5jl}OMP5sJN+C*ZlX@?uK=q-1rRt&?Q9(1OU#7Rw9i(qb4@fVONtWTtte1Tz zOP1Ry_fbws{;+(3yuN~;LbZaW;uS@f;yk4or6DC3YUY##G>bfU%OLUF(F6uSt+3Mdw zy9C7Gp24`ms%ej>;ih{|e=}XyaKB+Ln&G}iWk#mPLB`F-b|yDXdQBFYCYVl{t~EyczsOY$8t7xgnTBI$ah{lA?!UEwdVWRM= z@Pu%i&_!q~)D=nz#|5o|LctqB5}E_21Um#P1hWNt0-9iw-_9@MzvbWOhx1SKccPVa z4&Q(;&7b12cqP2|ya&ANyfbJPtl~NFrtxHW9BwDKjQfH6kQ>20$KAtS&2{7&a^<)@ z&M!_m=OZVT6Up)8?B%RQ^T3!R&*8JX*cI$g>@;>1+n?>tUdNu#HeoBWg;PCfkI0;Q zG8K(R&i<+OQwyfdrj(~dlf9GGlV2vEPTropIO#L#K8Z}um{ggRO!QCGPJoGwiP(w2 zi9-_}6HXHr6KWH?Cw~|*wL}g zV~fXTjcJaN#)d~5N574}9E~5nJbG+&%jnWk>rt&yGFs1@M+!!=MiNG@jGP$RHnMEQ zW<+O1YGi!4W%$SN>*1u~u;G)#+lQAA&mPtrrVdXGwG9;wy&Xy(x;ErHv~y_Xklm2} z5PfKBkTqC5_--%-t^H@vOmZExADlKQGsqt37$_b1Fz|5T#=zNu-29j6P>g>_dQU1MwU9RR?g|d}$loCXVp**4FP|7GBlu3$|l$MmGl#|p3wBnqXijYc?dLvaJ)hIP6g`+A{ zO{jCJtEfAvC#hGc_o&aQfLcZEqH?LyXdSbqEv0Ry9im;N-J+$@vS}r>Hrg1CL|3Pq z(-+d$(f88N(!=RV^ep-}v^w_FMRWyeLuq^ImD1a#k4uM0$4NhxW=j7=dlNR=o#@C| z$t;rbknxcTkcpIeDDzIHP^MXCM1~-%Dr+V?Uv`b`E?HmMFxdpz7qWS>HL^Xjd|5fU zX>xXQE^=Gsj>rYd#mGI8%aJRSW64d(QRFqz{@F=>gS@xApZpE^`|@v4ENPS8nzmQlFAYNkJKh6G}LeG0C8$N75;2MX{htQYI;s ze3g8bWJ}&iUZ9onktA7iPZA@Elw6ZsmRypYm-tGKNe)W(NxURmBpwnsiK}Fp#0jmO z_7WS(Oo@qP8rn^(OOzxs5-ABmA`)}OVC;&5@OI8f{_J|jLZK7{t-yTn_?8^!CytHds1XE8(UfYxD4v8i~vSXZne zRu;>OsbZp7EaHhKM8l#!(Qi?^s8LiS`iY+LzKeh;NAymVC3+@G6Qzg}L~){9qU)k7 zXlEZFIx9MXR`C6z-J)7j_9*!X{y@utHdZ;$5!rlkh!?de70?{{Y3lJHlw;4HN-`g%^b9geQeZga?Fs zggbI=1mszP}oT}T$1;zpcfwn+RpdgSIP|!1rkk96i@dx=m{7!xgzn)*k$KlwL0ZE6XPEsPt zmAsQYlcY#uCE=)-Poo~*DRGyqkRTE}$qb2}L|HD ztKtCh3GsgMHq=wg#Ph{AViU2pSV2q{3q+%$F0^9&M7@!NR*h8AJyE3SvdB+#RJ2Fr zDOw|1j9T0hwYG*xRzwhSghRqkVZE?am?!*zTJ?c2PIz4ygr3_E3B80KLRX=aaE{O% zwVWzyHHlzS&?jgY)Ch_MU(g!!6z#Nbqqez#+T{RxPFpW<5iAhc3QPq$0!4uoy8khL zH@}%*$uHo4LhlKr@e}w_{80XR{xP&u*ur1SU&5cux8fV|HTiOUBA>?_=KbO|pmz|y z^0IlEyobCyXm1vbc4voqyLp??+T_f$=gmaxlNx&V!|~YM0WOPM%Pr>Sa^Gs1v`~}kA0IJ!am17%HG4?%wEl2 z#CBv`vZu4v*)r%!lQT6q)iG5!RXUY7^?vHvRLWG`)b**rsnb&jr@W>-rdCcNQ#hOf z&I!f-KwJtg7so>HhZ&$JWG{RmJ_VnPXQ8*a3pKNM58sQVJ=T#3JFy252|$MGhpVkaNi_GLB+^p47c4f#?|^m%^gpqzq8R z_Cn9{DN?yoEEK5?s7_QbY9KWQJ?*ooIGO>?iRMKMq@~buX)GF!Za{aUd(i{wDfC=A zi;j~vkam*xk`9zkk+Pe=;Z3Kba1)`x=y-Yx`DbWy1BY6U7VhQo|B%JUZ7rzUalTX z52tUS@1*agAE=+ApR3Q($Kkrs%zq_`llY@(zEol%QIJfDo5VnzhGOwCvAcM#SRd{B z`b6cTH)!r&M6-4|ijT_ZeUVmSzA#-Ffuh_dAp^a&TJbE9cgq_8XMf*7~_ENSvTb@0Io@&5U>eRKVV^i)^bEovC zh*N!&<&$qF?@nHr+%vg+(sEL1k~7gdkw5Wd;>N^@iA@uXiD?rQw0o-@e?Oiu9yq>l z+;!Y~Ty>m3#v1!RmN6DN<~xS|6P+=mF&f&l)r@`|O&$#yJutdvboQvms0cle6pmz$ zM30^z3WTp3+&t1x3bTwPqmMao}Rw-KJAU{_3icSUD#{bOY0r(sqV?{N$Lsd zIncAZ$F@hKN7UWf{iFMNcXapJ?rq)9-6q{K-D6#KU7xyAx~_B`>T>Hs?`Y%XacVeS zoDq5+o{gJ_o{LxD+|cv!PMkOH2<|j402hM0j*CV+!w0x@+)Lbh+!x$;Tq&*w*Np4L z_2I^FT$}{Gb0mjX#p~jY@D^y#I1lfPUygUfZ^G}ud*hGbeewSI5PUfP7XBWJD^Kt* z@bB@T@&AjxcY%*;wXA3f}$vbI*KAFiXteAA}ER?swk@Yf1kD2p1qS+-`~%B-p~L4dH=uJ zeY&3Sx;|^IXRYn=^J5pzMTF>`g`dgr|-lm)z9hs z)3Y*$WMpR?moYkHe1<8*iTP@J#;lCFutmubp$X8JRyWzNc+ler)>n7Jr3juVOt zGnc`Ny)N@6oLJnOxgIAM&t$%Y6O3(`2fxVtHuEQ(jAh~m^wC+zW{tuLhm_^W@?}lS znweFewIHiH>#VGJRug8*OR}!ax;E>^tlP8JWj&Pj7*3vF%<9bAhO@NKv%batb6-|Q zzr%3ac?>M!+3QuN*dURll?Po!zgo-v#|H>9?ZaHT`bvx2E4c{T_mi z{B*y~{W|--)9*u^!hHj4c^~$$gZdxY{}{}`WBX6;Z}0EzU)Y~+XJ>$LgM+&U;Tqx6 zJ&`;Rg|`To;U>uO;2ECXJCa;vFpykiK=Bzem`$#cvE#_iW9%>FwkY{vfngH~BLkie z8I0w4fN%}M->Bq=45)m{U=(**8qXIQDCt?|bj5#wk`FToem&V_H)>p?~|JV22k1hGN-#?~3fASqQpAWls?%Vc%pYzkAw1J zPq^t!Jnee^{LYm@JfemC;wijVwH zUC>j&3NXV=Vfp;ZL+|==`S|5!UMA!6@XL+4$c4+vF9&llJ1!e8E59t5t<1Pg{F0c& zCgYmKuZhsH3Ap~kukma=8;2{GUt^(XC*wMaUt=)ujmC8%zeYjFjJQVf>jZWJbp3cX zf?vl$pO3|L48L+%4jYbZ7{7+Hp$v~{u%r2P6gvuI<46nz1Ljt`4#zbF*I<4f#tvhH za1G=a4o@)$_h-QdPN^t$guU~t9?fC`QUVi5^Ze&pAl9voue+Rd-;vD@p$^&PHn`SnfDH`xE}!ajhmuW)^dYbU?Hz`pQvT%Yl4 zN6(I)PjP+1uaB{B=)(08zdr2w5c|gudbacH{hs%G-oy1Szqa*k!_M*@>@xae4{=z} z5S*|ciTz=A&oG=d;oAZ|$M=lHu5mQZUQh1H?HP|<T&nTJwEI) zr}PxUN|}yb$*DavduCzpS%y8z+@AS8r}zA==M3yv0zK6|!Je9)TI^pUIMIssoZXYa zZe}s=@+|3T?m54wrRTz)i+V2Zxdi*!%X^mhtiXN1e`0@oEzZFH)pJA7jXgJG7j$dS z8r&IL+jBSeMECaG4;$&Bp7lNd#;*9Wo{c?E;>`GI?2@1Bd7dp_QYdrzb;y$3v?pLC;OlejCPw6Qe}N=*h#FDqvIDbgbT|;xuO# z*6=b`&gQat>~!4eIs@x@fK{;|R`ptT7F&e1J&OB239Rtvutv57>-_ncV=u&Ne=)lR zcgHSc%h?Lnij{vQyM|qd_5TKTBfE*Uv0K?1b_Z;MyVyPKURVSV-~@F&?1ByKG2BIZ z0_R6hvu9x=yudcImtZNp$~xKW>`nF-dxu?sQqDtJ=c2?WT#alo%5PvvND_xUF-TPp z*&?_WLC!FwT?m;&kh~i52UsO)Qo+tdjTWF@e?{%)qmFag9MpC;t}=ES>Ry5tn8}LK z7N?*^W}scB;hM?{`TUd5=N%uPZ#=1ahGrO=U1(l0@%dyD<`J4n{=#RFTt0K0#Al2X zQ!@q45hM8Aa15UlhVi+8W&)Z8Xa=CMKbVjCfqbmfNT*Rw<69ZqG^S}Z(^#f)yqAyP zANjc5&Bv=UR%x8l2&K_U=a$AA#HX$a|NMxVNE=TXDS!&3qmD`5LtJ z73k{A(AXDo%Ci~T`#f}b6Eyi5=yM0O`bnJpZ0va)*JC}8LfapK&OZ#zf2ij{jDdEH zg!^#aixcB}FgEVO2)PsE7Ulhqg}H}jEl8y_ooVzk`N zN6USDygY~z^DsutBkWO(na43^p2Y6^Y4!};gmLpc#?6a-OHa#4 z%S!8qdtn392Bi&78v>i%kai^QhiAifAC{Jrc1+rFX(M38kHjg!sI<|r=1)o+o0gk4 z4p#kyv`J}`(-ZWpDANKx~v;v$JPfMGgR)l+Qr>4zJn}r>~ zX}F(Uo;D|KE>4k8Py1`yo%`?Fe-G{|wBzh(J?^hPy8m&UBR#eM8Jq_`k29s0aM$g% z{jcME>1~`8zPEonP7FWBx#4H~zu5oP{$2aO-QSI~#2@$ny#JT|zwO_Tilz5t_Vm-O zD(ae|ttjexqOB&{TB5Eb+B%}HBH9|Ftsv_9p{*Y3+M%r+>bjw=8rqtnt{B>Sp{^F% zTA{5J>N=sV66zYEtq|J!pso(u+Muos+Pa{v3hJ7mtqAIRpsfb#TA-~2+B%@F0@@m& zt^nHnug(6--2W~#w?B+v)xM^=PjB0heN6ihl~jA3Y;Pj{kHYAu`s?#KRM;Qot)?G5 z(rBPOIo>ziV9?>pUxpiU`e38Ll%{geaKji~c>7Po4Y|5-!V`cgZ)$_e-NOwMu-YDZ z-NOx55l(fWaHj|-OyM%HDj(%nD6m?7u}H7xUoO%Urt}L$IOS*jcDNxZ!U=bNJ)E|G zeScnf_*+;WGctppiRZN8*L7R$17P}fk!!qf`o{uy3wN(@Szgyi_#J^v_%Bnq1M+ev z7MA}uYM{Ud;bsdrN4Q4e=EBVrJj3sF!B;A7OO4`oMTLJ1ZinC*eqDm^CO01>eg?sp z!o8q?vGoP41;myV0#8GoryF*kP?WR#rXs`cn@-8ueZr~mBU-Fv(Djt!b_*Aic?&4@ z8=&JA&onqh^dmPNM19oKhkAhZ#3QST;nJh(cqEYx0u2Ej1sVz(2Fd{)11bm20UZlE z4m1LE0%#;C7c>r(4=MwF3IRR`?EuXN{tWIZaF2$7M}hEIW3P)TzdXfJ`&Ia|?tI#> z;CBK4AFc>#>FuiRli4BSr5uWvxc}A#zjfE8_8X_V(lPcJ=Zj z{b#JZw;zwUrNkNxlIcqc}=mSjcY~{B-?eCBMqIA@5PCcy{t*-6NS1 zm6;^!YMf_e>qY}tB@#Tm#mJ0cD#{A;c}un$StanKcp_dsMlykAmGE1o`Ei-Zzwd89 zMhf|L3RlH9zBq{Mvx>L&37`1VABPWmd5~coi1Jm_Z_}m!?5#nDy&wvwAA-0H6VQ%n z!01*^Ilx9xE+}?xHtYO+C@TbC4x(AFB3u_(7_MJ9sXAtHOk5nUx0olznu4sfsi;1j ztWbklJlaqnM2ekgfAzQhosp~(<7MTWn%_U)9mxipa(F+f@g}{GaKtmbrHl9RNVd$J z!`N2M@9ik~aF_N{zZ==rdTliU#wp-_S_-7+oE&P`2{3Q5g!mnKCR|dZ= z$dBn{iNmiE@p5(XR>H3h@r*jZ$KbaLev-~_JN(vCeh2xrzc-R~fbIY-2Q`CgKxH5q zB!Nx<4FLUwcKZtSHt2cKW1zc1H-WxF_^+VBXvbqgo#5#we?F3xf`XtH(Dk5p(DR@! z&_2*nUyNkwa8HIi1yl)Y1g!+MgE~MTf_?&>fOuQbr%!^~L2E!OLFa?wpud95pkqPl zpxqdEJ3w!Po&h}wS_4`EY5~!>jDzU66!nOKDnVsbC#2s88nA67I|bMWl0Zh#;h=r+ z{|dAX^b%+T=nl|7LFa?wpeoQQAS>uZ&@d4F?uKry2R#XD18oLv1?>UR@5E0PcRTcr zewPVc1#ARO1I?l^_!~r64cs$9<3Z1Z)`8X{P8Zxl(4d`YV~_+o1=J5ZO1~C_nL)ci zdqGFRe++0Ps2NlV@_`~$9)8b*zZUT}!d(mc9R6>BHiJ4qD?mxmO$Zwgmwqzb2Z84c z+zxjG=vL%IziU54nIEBDL1xetP#I_`{A=MZ2RWfv&1jz({LTc;0+~TZP%Zoqhx_XX zs0U~@;{OC(2LC+J$)L5suOjS8(A}VH`0ejPT=3t*eH*j^bSr2j=zLH;XfCJ_WCfi7 z8U%U_dHsYkJ^^h7U4}f~fZukw9l-Zd7;q9e2s#C11&sk2K>M~sPS7^c^PqOnD$r%1 zb3j4RDIh!OSkM5_UetdF=vB~0&|1(6P!hBNbP8w*%B5dh)|~pfKx}R}w78^ZS~wEI zsX;+J6i9{$lp~qMv z^8(@Iv}k-bY8nZZRGo#=al)ds5RZh~tjH>lB=RE=m$6pjQQ^6PNJEHSMF`m`XgjsU z?50FAR994A6J@7PEt@s97>iUe0`uXMG=$Cz*9W7E%VE>aV>o-6S|2P8gh>(un-ap> zCeT;uWsp6P2o)Bv!_tfD&p~Zr9E8e9JT@u=MMCJ%LcY=|d9tqF`4@-k7ba^V{RHwa zh=fsLo;)wTI2s5RRY&Xd*<=wGtBMBV!9s3 zo(P*-k7AMmKJH3*oT4e=WP)AIH6;oCS93dsYOagUqp=UuOCy0Moj3a?ZF(>~Ez*#v zWjNDRdZi#*hZ=>eBBU-j<5zqOi>9Q;(pjQiRbiCe?eL92qf{BB1M)*WOdj;iC%7pQ z=w7jiQyRe7N`^3+l{{3uN*e>h3!^(84kcJ3V|FqgLc>EaYJ=~gA$$<4Nm*Qt!AqJ( zG9zw5G!l)M2T(i4rWY28u6Z%Nv}tze?1oT%b*O?*GecnqPKib%71QF;I?^6?M^;5? zQ^k~qa3shFD34dp*bix?P0EB-ksk~e)h7$0^@(Hv!>~3JDW=Bb6;m)mXjZBZL<#~l zddE@jP03KAB0qt8V7g$qf1yM!sjhB_$3rkVA4ASmG?!s^0y9(v+H5z)!w{~Rjrpv+ z7PD^<&&tBDvAUwD1jR+;>=AuRE`4Q2Y15qgaCI~oLYc+r;Cho<@>Im07KsLu2q}y< z@U|I$fP^$1(v1BYZ--gY`Vi7L&Ai(;-LRj?Hx;fmmgnPQ5uLRLP|}j`sM5%#OJ-D)Rvv4 z<%cq+G}P3D;*33^*QjZMM3UV~=`e@!24O#Gr78mqdn~tF1E_MaiQ!pjMI#C@dB<@- zp|pvn1FVcZi<{Ior3Pk?=*ugp4bj@TN!RB}8~t14I4e3cR2Pk-3=4b|O{5-Bnp^GZ zA=J~Nsi=^NkePac@=`j%Abg7IgP}&zFYj^vD33R!^ka$ELZ#4k^uZdnErdQWwpJ&r zCJC%(EiKo+5hO2f;|j5;F+2kVxoAX`g%U|DWMWXT(L%a1Ea2ffAu`q)RToK{+bJ!E zC>FrF03^FZ4dtqq!2J*<9DQiOf@QJ_8v2DL`{F|4XVRsc+kQ^h=3 zU)1}2UVBuupwjhOedLSF;K7xxK?pv$2cnTIoJ1xJQ#2;$CasH+OaE5sNYtodN7rjDgKxSeWF zGqcXG95KaUp;p4;SQ`zpSQDIji$k&6rm?zEU3CoOu7E|5{;awf?heB*f$qUwVsLfQ zb3(YAUI8D3;^gNfR#A~i1}kVrs|dpqtO!EQv!TUgpu9IdLTL672YJ94eBhD156h9*Wl zX;LR*U#Wya@M9Sk9G=B|7HSNm{0v3Da8wjqaZXK)MtKcROu6K`kc0?1EUhjYtf3Ol zhFz7!{c9MBSn-?naW8%Rzi&ocVf}7Rdp4KM95qbi!QE+ z#Y5F$lI2!b9SURhUZjtaI2(w+TK)%92{oH)V4)&*uo9qvJ=_=*tAQ#Ar-dHJMC zwG}nt2qIR{*5Me2j;gN-FKmd1D(VBU7Zz6p;tSEP&?L%H*$k;cXz_47T3^R^IQCvK zU;;n`Dw2vdHHJzJRX1R==@l>>%}s=+POJ?DViO~#iKdA{oBM=gkc6Z92nU4Igrtwa`oxGU3xz&PpBPvpYW2Z= zb7)A0BjIF|K1!b)bnSVFSm>d1La4K@x_$CNkA@O_cc_oVZp02=VuEFUPu_pP)sBINU$Nev8yiiCi46 ziU;DbiXxE&`>SpzKbs7#8Dtrs18ECGRSgRlhT^J}b96EL?D^SjeOMF=4XqDz1Mx6d z@=omV7okpl{a@q$`H{$hL99M&b|e&v9S~A58*hJ7O^ab2DhoNAr!T$t5ysR;w)tS^ z3-B+YepOloi)<9>n(#zP?>WRIX|qUwnnh|b1LN5fU99S8LW^^jJ|q#Y*FtEP{h#0e zH(P-2g``0=<7op7ZJI!ed%*VtFHIa|$XqmnKNC>-)2x8=Up|(kOYrU&2qj4eBCnSf6E}lGVrC(VpYFwkf9a)Y2YjG*6tBewhgQBZQ^5| zDxCFs-s99p^rQAtIOYEizrkS4GZ;GI=H(j<22d+#KJL{n09As5pjuD_6aytejiAb# zk2JKvT?$$TS`JdnQOm$O+dwO+u?}Xeu_|N?7!$%^Wz{f8f_$nql3}Mr!8(w{k)AQs z7^qH0nv71gE1Z~G_0H%8r3*_gM&0mezk#wu|BE>QeL8*gptR7D!dqoF=g8;HlCI~X+hq3zWm7J}3`sl!%{>?g+RLyHl{ zZ?3QejvOmuF;W+YrE`u889>Mh#0e)c3;4g@J=&HGL!Yz-n6J zRsSX7SjwMx)t`>`K^0Zv1T=^{Be>nbgiG4W=LbwTRYLU{@zvT58_ZL5FA*C)+}1+% zS%_||VV_Qu7cGiPh%zrPuETTFG+#hS+G#gH`GoFb=MfA=s^U=^L&C2<%J=Y;Pdzr^ z6(~ALcd;;E1+nAR@ZwOA>s1XYD1J28lZ%@oxJ$yAx|E=7Y+VCbB{1h<`=cWA=Z6l; zmYHN!#!rPZQc^g9;fM1EN~w=en2$FRKZQm7YB~+Bs1D%73cGP-V3AyV@jcqgRoR-& z@xw?%*L6Bfk^1~PF3mP{Ez34Uei~`${Cl=RADo0=dmq1M__g-&TMEBeAHQYrEA8XA z9Dc?=e){rM9`)ts1K|OvL(5fK9kPMDuhj4u;MV0Dwi3Qf!-c@@tr{)`?z%?93xEwe zTuXSR7M=t)UajG!z}+h}yb`$cS`DjpP+fzrzMU8LZeKMHxoyaYy{+Z54%qOlhBpA` z>FTwa!n?HaZG=D4a2Igor_W`$U*RWv^^4H-U;P&^ma3io$hjW1q?`q)^ z;jJ2$f!p5H@C-_?!==E|8(R2$;MP|)TnXI$iiTr^U(j$Puu+GXQu=4K@K)f?CpEkZ zxN?Jr*8sOXrr~zryhk*=0l4*H4R;V;ui-7gv4=Fg4cPFYhIay2wrjW>xZ^$z?*;C< zN5kw#^uI3tVBprrweW1<_IEUF1di#j1S~zLh0BzFlZK0dyL9?gN%3{%M}XPgTKs0< z&b1m|2HbY1hF1Z{?$GdBVB_r?UJu-Un}$1p^KR8}CvfFW8twv)-KgQcz@@inI1_V6 zWt)Zv)BJL?hI4>hwrMyQxJ%ccPD-!Cg}~hxY4OVmf3D$5!Wg@K_iyT$-Hh`Ha9FziZ(W zfGg9qa3^s4VHz$3Zu>=xUka?xZvk-L&sul{xGP&r-wa%uuHogtoyTZ+HKqSmOTP|S zI$R6i2+VZlcLKLFEqpt0w=Vro;Fcj;_#TS?la@c*i~Mxu4+fTW?J)wla<3MD0)_9_ zungQXT+6>07*DdN+IK#1UXF%?z-_;2>0=Z=SPO5a^kX&LLg8aHyd1dGq~Vpo9d-?` zq4YKlw*yz|!aIN^hZf!m95ZWpJ8+9G|DC|yy6|pFuhW0_3-s+DT79yCE0=0`46so* zKCHlU5z?HIwBfv(im+JUy1ny|j@KWGb9bQT4 zb$AW1q{Hhe{RLY3O~9o(yp__QuZ8abHtMiC?p0T@i?Qc}Emn_v7qD4sXs;A&z)5rk zXBpklHHK@9No=x>!jQ%}P7Ir?gfWTZ62vvu;GQy$fFd=MYH)y)c>`Bx;SpFrCKWunUbOnuf#^Z8BAC<=DzhqoK9mP%e8L_&=xu z-LDL)24yMYbqv(>Y(8+yAPrX%9-!eEa7-7!1-Kh!s(QH`xLt?)${@DTXqOP*XNx+_ z#KVwuLk7?P84Z;uYWb}K?ii)vY~a?B8t$9Fx;KGZ@xvAMyarD)#hWTp#~!o?3DO}} zTzL+V^Q3xJ^b8XGlTn2uKirPv_wAEWl{;{+uj;4R;<5StAopLCzEEYXgkM`9KQ&D6 zrp|-l*^T61c~nNqQjH4Z=-{@#7oH($b)1&HHS;_Zc8ErmKc zkVj{ph6eykQ#EV=uAHLbY{Dp0ZSTJ2@v?-cgmPjiyF34XEo0w&{s;e03;Z8#fz;oa z7bvq?5; zbjqp4GiQ~g{+Pw-fBoBnGtR8we+VX2v#>UN)}lyVeU$zVO0wac#f?o%&TT&L{0r!B zpe()kAD1k<^s>vBU$Np!*G&8-SOGyU+nzytFL!`^X+%t-|zlm&yPR-y!V%1f7|yvy_NMpzyCK|fL_uo z29aAN+-brsn?8m6!_9}6%FkE%f|;kEs`957R27gNqUJ?zF;bCB`I1Zdl1uptm**>Z zo-grgzQm{U6?ySI14`aJANZ^CQ5bk7AMmMsz^C#FC}~xh$R)YRrTm186e&NRpDMdP zF0~n#L3NQzmj}<6@RaFg9uwYzP4RY(H(M1RVZ2O=1L9>8uhxNhwGPD3m_3)`@iamX z&i86pMIP?2uNT!pO-p&{_yB_RSe1k4p_7GUojeCkC*)H4L&;a+ks4)kUdY9HAs6R` zT%6aH%duLn&R^e7eP!*Hrms$^c~NY+k@*%7e<*$#g#zhoGPepvLhaxWV?E{7xI{FPWu(V-@*zd4+1`acH_8(?w%NS;8 z1#Sb*LmVkH$PZx(gP_CM;my7Is;eb}2TK@xF zQ4iIh^5#4x)$wXLcXe&3_$xATUdYXP>IgLt@=(X(!Ca_SuW*tp6;GFTrj9>d$I~LC zj?;s>$gr0`1nPy6K?>{gDyY)@Y4Iw~$GW5v;t@}MLN3*p=7$ssJX^SP;nG}|A~7a7 z_E^jmPvvI;(3njT!u9+tfWGsL9+ND6=Ly0z;Pfsa$FutQt60s4Fm!^iQN3J@aE^sb zYZYN~(@o96N#U&`+^UOf)y1`H zaZ`B}i8N)x{ok3#%p^wdIn86${8C|Mx;c*KI~oCe{LmOuiF*o+88{Wrdsg+Q)q!~Q zLn>V_+d|kGh=X)W9%>(|d05f$A`cIJoJ08Yajo(sjNrMnB7Q24elFI{85m~;9-8xc zTHzjS-W9eQ4KIu@Ww0O(#|Lw%V7>o*c<69|^3mfy@dJJ1i{a8MjUt7X58AD7zWFql z>B>>tCM7owA~hW8Q8NvbzXy%4hI6b8+rEA@G*f<*j~?eEVK0mbdW=5Er%p(fqs!}m zvG!0JG{Y<{E!HFMq02+aP16R&Q*~m#E}q(My9LKHjj(2UYNqg7)XVSaiHdXfJ+{_{O1dOO2rf7MZ;RZ>iyLEazDtG3Zr(= zjVbQ08&@3b#+H&!C)1x@n<=BzT8#Z1)k}~66Ki)WKV+uzGj;swI{sAfskK_{DSKfw zbT15fdtt2gsWqI|a@6mCZyk4vb=yfxxZuU!fH1UBTib>0F8rq;Kw0x?MCtgHzr_si zlwF|ZV=%m>;LPQ|A1D6(>!0`gHADot?z=)^tCKcDx(Q|jxX#^@I9Mdx+3JqMOqRy?&= zKdz!@FGS+*@Bg^|t-l?Zms+Oc9=iS;M0)3cupRXE->9pH0nd*0maR9M@E??+cg}wf zl@=8jm&~h}JGE?fQ3)m_^;uawc%7gpz?ZYxgnKo@^{;Z0US;e#! zg@1AR)G{8#3a3uXpHp03F}u7hzkKR+9zG*~?$nCnqA918PMuypr))|I(wr4DFVbgE z&++Q99cM5S;x&ie`bRPGj53~)=Feyv6SdKXNRZy|SjZn}#ajz_C(kIcup4*9m8Uz! z)0}wrn$q!SJ$32Cv*ICoQNk*@Xkt5Pyg$xgJUz-->e*6V_IRyTc?l!A7;m#5JPv;} z!9+LVO=c(JD6*$=W9~i=vT9fkH&_UF#Zw%#m^=kgj9(+-OWE2nS<|gXLsYLnnX97?$?qZqbF8rZ;Msa_eg~NEJ z0e<3L8N8m&KbnB|D)2yu5l^1;*J$xEjVNBx;a}e9^G*)E9bv?M^iZIVqT~H#{=6_A zOTKPL}@9XlA4+@vC5+xPa(WBY{bJ`alE33XOf@`sr2gmdk0O8^6>7oT4&OaszA_) z_k!v}5v3cby=rPoAgiM9iuh;`$eJK9j$CSD^*2u7anM<%F7@>MnD&Sd-cR7)P%<7M zqtgA0!_<|Sw~S*;$5LA)n#0s(jDHM?i-kI)+tK)V)w-V6S>1}kR|7Mx26k+^`Ac{e z)mYR}r9|Ioe9^#ZBl-oe{uzslW=+j6Gb-ciyO; z&1iF)f6Hq_;>AC)wASK9B*jOQVmz;esnDn}W|grN8u6_M%z}86s4l_FRNIj9ruIg2 zYc8K?OZdJ6-mF-3QZc$pzo(djABB@cT(5UAQ=Nd%(%`!;N*8D^EvoOraDO}<7{&XO zc;k~kL&EqvVq9E{^+9W^% zJT5SO*;eC~`4um`@iC~LzbJ8_Z6ZF6Nu^(u-k^Di&q+#hK4$gd-2TE6R)-hkkT*sL zeUZi3P`{`?x)|#<&37~(Q69v@p)tng?OPVbHggB(0XB{XZP^i^&ixW zAjTEh=0>w5Nk-lxV(FrlB7#wdSs;o|fzc#76ED674v{87-+}QUQ4B^=O;X8|&*n7Y z<5OSNm?!vK(mW&7ryB2z)dj4JCgKK)!kZUOv^q5&{`5_#g3>bTdRAJXxMigU9G4Xr zkZQ5wGR5tq>m?;6iIO7vANor9sPSMr@Mkmmry=klY!aVr!$d$24CC`hWOCxu7s!`h zDntvAL7Mt{i(--11fW8gL9tef_qXW_XllX)3QR!JdXFS?V*%i7=RGUC-PGH ziT8e$;*>YDxtXDscVKuzvom%1&4P{xjF>CKLERhT2T482hz~Z3y;W5xxfn0d8cp0* zvC_nTsB)EgMX~Yp^9Qxhfpdp4aADKYYnf248u|*f()uUy$G18$byGfZKl`dTWt6~`q?>T|Iaj6<2! zkIIOrMHc2eK88h`PA-q`Y?82=Kerjsd1SuPiX^6KJZ`J3)B@ADtkk7jje{4$@rJUo z4j=MV7WJmlWPm91xVr*|3QE@NK`oyB9ZZGe*N$hQ74Facf9UzU1LaVzjl%siCG<@r z+5u1T)4VD^o`6WgUwPg4K!0ikT?^3{x3JIRvl*Z6`JoDSC;TIK9A|4Mw*{WOtzQUx$Qfy$7jR)Y|Vi3MDIDR}ohX~CJ*SnR|1sV?c5*zdf zWiFbf=!|LsDDPC`#3@i^RA+wDtXasnuxNH^asKI=jY|RWr#euZxYZW`!0SG%0b9aN z3y%7l09%BPpuXtcfBba-D=8&y=hB-HK=6k;R|<9a_Ivp`1UN z@gFAR$1ymNp$Iq);yi`o=<7WO&%&$c>;}9GMd1hgbs%0j=wM-r z-=XVWDbh|jWFCK<`@ur!9ResL{|sYlCoOi&i3xntKWP$dHqtHr9Tc2_;X4dGAhr8L z7|dp-wqbM7t$$U4@85C8s=m^|vCuob+>cKIDyuPnEua1~;=|DR^dJAc4n#ZP3paEg zKvd$Uw;~jtr#nbwI%Pu?etyVbtN>5C4H?x}EBM-9@1~Ye$Bg!E8||PA-zpI0lAGEV z_B}s9-t>$T-SbrMi>mirb@o{R(NcR0_$$w+z>oG5MYu;t8&Yz~@T4_S!P;`=a-A$j?sf9g>58BWs$89_bW)H2OQ8Y13A37I0DS`P(-Q(apAL@P{ zCnbqM9lph)>{yi#qfq{Rzwe`dE2J`}*ZXe2bhaLM`MdjscSQB!EU&Fzj|b$H9-=HN zlXSMPV*HUmwIR_Tg>xGc;Rkd3oR8o*TDcuyAxi`&Bh+{F+d0H&*ad3)9Phcn-2*ai z8*11KcOUU@p?-%O4Vj=y#2Em0u;8=d<_O*hcMQmgI1}JXpsvq`8k}%tP&@cMxP_pO z9YYN>;1+`_-x+EsgK_KHLSMR>Y}<8x(v5ZcOlvaGOEx?+!IAg}V&Y_Qp^{ zE8LZ!N~B!{cQx@Sw+-$ZkOcp=aMuZbJ=_g~?|{1r)Pg*>!0iOZkmokI+d!r2|fZh1~P0PYG{Pp zEcm5xmx1z7-&VLQLDJVl4Xfd{fs7vwHLQWV4n(rG!`%QP**3!61ZsPKs9`hQP7ukq z74CKr$<_sTC-I203+^6J_j^MP``~686nO^2%?6PSBjAn!kqi^yT0us{m*EzINQN13 zOF<+@JseKTZ%#(tH%r+aA zNmgp>jVa&7RZ3pO_q{i8Fq|@sXjep^l@{s5nYvIdJ`fQk?8~h%D+jk5z>;=D1;7VY26y`q=#Ww&C25$fj0Pg-| zm?0Z{j=*i(hZ#nIH-cz@c78m}kPCi-z-_=*@J@kaz%uwefhFJ>;EO@3e5K&aLFvek zp}hIv7l1MW+kh*<2SFqcm0t@!0;2LM{}}kBz?6S8_!dwO!aKW$8J2=y1~O87q;Cbk zQs5SZuLj=+qWGm~uQlM;if{?x?cmo7-1X5g!$$BOAc`ORaF}5;_$?rkFZMp(RROkw;6mVNUh&i@Y@BZ`gMWd38M0-{ky^M6`0zeWuq=c2&eWQ3_e?6 zs!tAhqrg<3G2kZ%O!bk#J3(rF^1#m!xDD}3!Os_%3sTFAfKLicEL$O%I0X4^;3KOTC$ItilII=+i99 zifUZUKVnOtq@^!?2aUL2Oj~_^But+k*Vlu~$nO`?;}xPDeLYK28LETMFVzNW7}ZUG zVt_Bc(s2pvo3FZ-D|>wH8D{=XR_z&+K4u_o*_GS#PJfl}%qmAZMz3F*>dRm!WdRK`*|BnaX zxGUa|p|+s&OmhF|Y=hdV7$vCo9`fh*A9oREBAR5LWCAk-x?2oNgJ0`2!wse2%LVRu zdbnXe_yq!YcMLaFf)5JJfFs~z0(U+&+>iv{2%`196u23Di@=>v4mT_Vzg!ImUI~7c zz#UHvH?)CY10s7M2D}#hI)RPA>%ngjxMSmRLkIXx0#^cW0pAIt`LpZx;fAf?w+U=~ ze7Ipd_%4CF9~%x62;&_@1GfXX8~h%DTY>k1XTz0nBl6D#KS1CvB#k8xfudz7V9!KLdQRz$9-e_;L`*OY+PI zzd&G;CkVb4#MgsI&_Cc~0(bm-xS>@EroTJUHC28T=N3J0C!QfZrx?C2$w`9RgGOUEsSx zM&#dt{@V+FpTLH@(Ed4S8xVyPHh|9-xV3$_VFd9Yk~a@H7yJYf-hDsX8@yA5vrTAk z@P#01Z{zaeh8f_C1@68a?G3(M;11yV;448?|90dT1Rntzfn&f)@XZ2~{7b%Gud@R`Rb`E{aw27}KQI0ifd{1}0${U(67f~Y=i>+$#P!50cFp+AbjmkZp5_FMoy z2%_>k)($tsz&8pU16~S#Imn3cmOD{j@T&zjB76<_bpm%Hd_DM$0(YQ4Hi6#)Qv0J5 z{5FB9KemJ4Au#pFPVn6Vw*v10zZXREkv_9ykr#+CwO2Oy5dxF^x!@&%Nq!l8A;^gM z)PKd`%LS(TEC3%AnCcS&pA?wt(+qwoNF9I6z_$ua<8KxCHW2kEjjy%f+eJ8yul3+J zf~Y@ed~E{1MPM2qTfuKv!!dq#fZwGH-vfRhNR>bHIGmS)RQ<~aKLSMMSE7Dnz)t{C ze9{Lico~!jOzkrRe5t_HJ`2DHK@^|HTLgR(q>i^{@JmHFjko3CSBh{NZ>zzt0jd4F z7JR$F)W7S&ZxopNw*&lUfvJDDfZqzD@~MBegWmyC>$eO19*|nUec&@kDDfrq&tUM` z0#kiQfFA==<;evv2~6@>!OH@ZJbB<}2u$)6gD)4j5_mrNN`WQdAoz&D3^)e9QQ*$Y zpfBK;f>eE34t}M;q%W(%uK}s`T?c->4sQhC0iyI>cR*jjZw9IL*#f>(V5-kn@Y@8Y z`fLZ^1yal30e+_lr}=Of_-=tI{T}dp1*Y`-z_a5u`7*%|Ac8y+`e!hBgTM?p2mA=~ zqyAe1{R5vXa0{>m-YRe&unay=UBeJht zh4uwMLSW-{XkYNT0=Ha)_62VhIBzA|7kr+;ZU033f-e@h@+!11`1t}$t!Q8HL4nzo zXkYL#fjh52`+{!<~xQP1Saz9ySnZ<|v*epaWm$Nww$HMM;azG#>TVUs5QUP`a`U6zF6cwR1vzr8`_ zsNYzu$BkO?XU6zFT0AU5M~M7hGr9lw|GMcf_TZ-3t!to` z-Zf2Qv_F#$;y(}@vl$4hY&Ej0dMDyY_BYl=jCeSYZbNy;nkGqOabSXnPjScJJ9bX_ zw298Kc+>-T+5`CWmLc!hrch$6-#28COvAXY3U31-gZhMbY(u=>oxqWBR+H7d01hJK|F69;!*4TLh z7IV}wcN6yck16^)czH5f7#1(fv?Aqvh z*7cI>byt?#?)JJ1-KVh*Y|-Zt-@ z-ut`{dpCN2^jT_#;6JtzGn{Vrvi z4l^BPDmA@s-p1=R(Bih_TV_~FEOE=jmW`HYEiYMKw`5uEROq3X#U-tWf@{|S+2BPXSvyO zr{#Xj_ZG?OwB}i7SWB%pTRZHV?Va{*_Dn~C<5b6N$KM>6I6iQE=J>|(qvLmn-+8|C zAI=rdYn?Yazj40de$V}h`z!Y_E@#M7=lPfCJI~La9#4Py2>CR*RbC~x$!q0yxkujZ z`_-53ALO_D8-%=%`dJ?SE;D33LK-fOl*USvrL(1WX@k@uZI(Kvk*1?8$68LbjJM3S zTw}S>a=YbT%e$7zR)^JZoo+3$US;jHZnJh-cUrrxe%qan`yG!so^pKcnCP@Qz0Rr5 zvz?vLoi682XSdVrO1hd|OI^!dD_x(urpqPrJh?)?Tz*AZ^EP^0yvw|; z-Z#A2z7f7Lz6n07?;;=Fpr!VFN_s(hO?pSlFikbhG|e%cVY<|`)6{L+YhvaB=2Ohe z%`2htYs~AQ?F(&D+hW@VwtH;f*nYJAZp*Tp?5*}y_BQ)kd%JzN-Rh7Xg^prJx#Kp+ zN3Jhi-?@Hvjdq9Jb?yfDdG5R113U&#j>qW9^_=Bd=UMOB=-K4i;yF&P@GbO3eT#j! z`9AY~s#Bn7=dsY#wb1S?VzU z&a>QQ8DPb+jMZq(wVq{NXI*dIXx(JpVm;3GnEh${R{Q(*U+m1$-!aKygPe~!pLT9_ zzVH0S$z1(ilUz2J?7Gr@Eu?IBzv_O=z1^MR8RR+AbG>|vyk34>epl|2zmO024)u=k zMt$e_F7>tg?(;qD+X#LA%J;pG#TZ+O_AHU+N?|D`t&pyfR!h%HFG;UUlg)N>k-5}d zZ*DL*n{PAUZGOPK(z=>U_=)u^>u&29+XS1{mhBkfpf;>>oaKl+);QKV);nrk^{#)o zR=Cz0aqg>3!)_X{hOV(@Cb2EE6qLEi)|%%ej_| zFxxy~dCu~j?G@W+(5<8G$Js~Q=h)A%hwLpFrz;%SI95Za9&|kF_!i?e-8s;S!%pYP z&WTQ=d#rns+vb+t1(+*Ocdu|?uF&ehZpUS)CU*t(%n|F%0 z$Xn{2=dJP9d5!+D{z-nDU-lRH%lxPNS75%m)qj`2-T#RHdH*YZ*2dTdv|)$o1=Fjh zw@lkjpPF`?et}7EGf&~YI?r5Vt}`30W37{{Hmhtcz&v@nb%pgB>#f$itnJoEtj}9t zv9{PRv9GXSV_$8*4KwDWd>u%440ISA!yP9(COY;)4+ppmt{j)qWyYFtK6?FH*G;ZF zT=%&;T$^3<(O3i~LXddig{7bNMHEzueDzxYy{-^=|NY_&57I{oDLq{@pb9 zw<~h{q-oH|Go>1-UTTq+NgK=^=FR3#%=lgA-R57-KFc)BLuXoQu!^-il?Kj!)u>afsr2TpOt60Bw+DX1#m*jG~@?2%Ezj6ux?RwJnyz5n0musgh zM>fj2vLrj@Jm}_M<(uR?+kGT&kT#QYVcO}7lP9Az0}nPAyu+hW^l+m4lX zmu1iE}7)BLMsaW#r`w>HC)2S{LlDb^1tEV;os$F zop_fLa*i=iFk8*CxzJo}J` zo_DD?%{Rbzgm0Mdc+AFk`0n+s_dV`=#`mI+bt&U@glUXvg2`%8mP=4teN>FxIZ?A`Cp@(uPK=R46i&v&M8kuUCR^0oM`^j+&?-HdHUonFK$ z^^WwR^qI6v`b|nVIWS|KYAQ3GZmKjzP3M^Ivb0+su{?j~DsSj|=! zR@)NmTx-}KvoE%vZ@(D*aD)9;`#bgz?O$Vkp!xR*$1q2ctJF2mb*3xiinz{o{oVBl z^yg*Q8?JYuLEmAH8z>v(;qnRcN$4Z8eHP2-V@>;~{4cD!_d}ar^mY2)!3_7AZx`%@ zbiV_dbSfXcmHw#z96voBz6|xa#dMeH0n?+Vr%f-K-p9BdYo2WOo2Q#g%=64)^V#Nr zEo?j6)?~X7R@)7>+iYLhzO(h%`rD7N54VrQ+BV8H&Si4BV4oGa{^qK7-RZjD^_1%c z*K4kKTwl7rcU>r7DqjVuZjtZ83h}Jm-+P32q<5@$ve$tb<}@$E-5k>8e5pt}O*&l) zU}ZQL78tF#A4y+G-$_4915HPoZo%61faOuk)0P*}o}XIAS|J=>awdE!XN zF^*A=aSjjcmrER1I&O9-mcfgT*Bx`*XQWoyE8W+*-*mt4{@VS6`!}p%Lp{fPe)Rs1 zJ|E&63XPlWbMV>ua^Kay8?fR&?0dq;jA`6nxyE#(>2}k-riV>Wm|iozV>;S=ocS-X zd_Cp@^BnUT<{z!UTeECKY(s6w+a}u_wuJ3m+vT>adD}f~d%|{&^G4_G&U>8?JD+gA z=6r{*7JqSBTpm|}YmVy-*N>jxJz4S)d8mB6JXvMi|JJnn6{hRkP?^WJa-kZJay^nie^1kkU+PB%)?fcoc-lTctr?{5>=E`s%?LN-!_bl~X6YIY5pVq$M{G2S*fC@aab$wNuNkxNqbB-KBJYJ3oVyhuD9H3x!dxob%br4 zO+vqy!s@4W>~8yWjxCNi9q&1QaQq6{1~}(B&u}htzU-`ZMP28(&ch0JqiYRjq;Fk6 zx{U5>%t$AC#(4@or+O~+w0b%{Ir2z(B320+EvI_}-V42#qR0Nl_00sR98QPdF%2_mhvOJ$(0PgTME7{N z+3j}QJwDGg&n(QIEuLkNd5dSOXS-*IN0R>`=XlTe-sOA1_o(k_-(CI({Ezyd*7P-& zM&=Ln)h|t#N~C#^_ZR7GjH(PX&E)TJi+`qdjx_|?Zm`~FecJk>^?U0t*5S61wvDz; zwl{5mv0JduI?W!ihwazdZ?-=HnZLnq>uASujtd=^I(~MBu$ncwT3pNApJTlL>Q3`S zJm1RadN220?Y+VKi?7z-=x>274MAGc7`?lEl=PY@X1>6DiTO(N3d?tv{g!^#!(p|w zTA#5->=PYsN4{f*Bj$Y0`35Y$E@zf&E-aAqJj3MC@_5-K|J8dx_L%N}S zx2G|BKeN_)1m@snzJL1u#p}Uc$>W!dE33LOQ}OZ3c#kg+x38J1IEV)h&5eF%05<(1BI;q=4U2-se5OmJsl&uYY4YLe~pRO}cU)-Ov{(V$NWja3_ z86XY8y7sxL(R`8la`V;Z8!!g%F~4TsiqnzZ=KdC=#%cTJFYq1E^J_WJhu zm_O4$0JFWpe>P_M&1iYPp2X5wEvj+?&P7~O9>(Y_=@`r=3r$JWWu}{9IXq-~%(Th$ zy=lKG+k7JC`$BUWPJr%({k#bl^cL9ATVX|ShaJ7c{IcyP*IqB$&zA|?Zm>_)!dmRX zl>Vx>&X*U!h7ZDuk6`Ue!jf;6AwX+7*Y8K9FQp%FCNl|ZhirM>G1{5yydUR7BV40k zxh`>UbAROCCKAM$KV=i|>LIi=$u z`*^-uonrpgMmyWjVH@mqf9(4bt&`=?fhEq`l|DaQTIE{pYQv1Z*0s*njy>lF>^ir4 zJ|w;9Q0g%Q_HwCQF6(Pkh;^HFrnBNS#%{w}_zG;_FJSu)w&Yljx0o#si`h2Sc8aaU zc7|=a?Vq+b+iSMBu+uyWXGtexml?1}vCp{E{;>UXScyN|`(Z!i!8}yvSO{BZt>bye zYmT3w11CEt;{>Dz>)v_JJJ32$IKRLd$X@3#*GShioS>b7J=2x0e`B1!0xPn|H3X+< ze)mlGIqnPGSGd=^cet${uZPZaR$|BcizgS>!)5Z7+=6J6Zt%c#E-vEced$F7Vdk}-t=z&(> zHQ0sU!fpEpeUJE_^gRo^<2Bz_-@CppSgl_{HxKvcVuvANkKx43kcWN74D2-KV|IGN z&$`mt9yECt##gy?hO`vtb+1S#n95B{P0yKLf^D`H_H38wGt(~U=TD~JaYotSe7N~& zbB=kWc?_%*3AJr*Z2`PTW?1=dPy&{}JaU`}wo95pv)4dIRj?AFrAFL(wOy`=;##zB-m`gsgOt=0GD`&)dwe?2p zoz@4ezglZ-F`Q0qhhB}hTmK*G-a9^uYXARVAV5M1Ap}Av^eW8k&g{(2?Ceq{QUiii zF?6JcA|N7$4k2Pdq=P|Giin{}krIl4h!~JwG$1GfLR17)%J+HB!WHkmpWo;6@9!_~ zCy8@oPHpE z#0Yh?I#x~QDNj>V)iiady3ahw9GS%=d74==n`!c@S(}NViLVvYWOrXb-(he!vDRF1 zdE}lGNNQ6i>alcx%RQg+d@gb-&JHdOzR!faozwA9@ObbHcxE2S=jBrJDJAJ>RWQwX zrKPf*H+w}*0U2CKtt_Hh+BB-;x7t0;tq-7U{FW0kk1@}0f zDith8ZRDA&-P9WxbIhB*2KF5PO{al)jtP0>xiLq%sW$M;`OmLN{9pb(>3{k6k1hABfTBxL{IY@bAxrodfs+rhW;%dyI~5a(mdAthi*&j z?*m87%Ht};x1ZHJbH0cEcW3Ra?Q(_5|9_#$Kcc7;XYw_@nZ0S~l~57c`@-R|iL(!JA%TyicvWV*X<00#hw% z#aVTzYSnBHDC$VMf8`%1E>qWXx-I0izU02iu5Y3>1GVa8K3n9<2y6fr`yy0dz>$vubq?5 z1?RH!JEvUkKm;dTY+!0&rmS@D2UZ0#WS#pwa5(S{-PXmx)xaN|y!nHX!Q#O(a?VoZ zoZf`L>G@#iperd%_Dk25lFYpoO}E*`9AnNl*VA`iGm{?oSz-3ic2z#xz`&bg4JC)U zI`W?iJkgGPk~zvJO03$O(>l%*paPX)myFQ2={>yhpdx=6wal&NO>?R5tgo*1yrtU1 z?bG%ZyA3SLS^qC|Of{X?K*rw+y3)dAZ|qg3FqOZd)^tw;+sM>j)k93i0ucD(W^=lX z#=fZ_a_4-bIgd+&Bu;deIP0B#&K;*TxOyOv5E#l|x-{@fATw|w@T^!r>0z?Z(!fR{ zn4Ew1E@m=5W4kiKWL=x7OjRp+CNp70f%^BL*SoHN>5Tz%{lQGPciD%Sm@D~*F%xAw zKCqf(p7XxIG0u^jfzrWRoF2~x+XZ_t!;S;B+)r(}63h|5H#1Duml{d~r7dU33{dFa z?(yz>?sCkgFL_46l&sgbXs4L!iZf$$1jAngioemj#e3G<+8AYgU_@FioMypM?3*y@ z=lV`L;BKJ}(W-&96)_xUr4Hsi7?Ve4AK&ZN0_!j*>;*f*Uy2pE*ni1i+wnPbou6QH z@&<#TXw!nrf)|2!IN!ot1Njq+(0Mmhx+o*SrOT=>sVmf8?&Y3y?C2rh6#kx1yobD3 zybrz8nSAq^f3n+Vfy>`#hHT{T>7VLf0RkH7Br@9<2G@8VOnwzJ!^1!Yrp7tJPr*X@ zB{^ZPvHYi@GDLX<_i|F*?6x>T`f2MmNAFKBvQIy&w}Bxz^i#+gRyY@I#8;m+uTA2vfb)U^cwQ0H5D-#pRW?-c&wR z$GN|CchK`28XeLQYq~!YywRoPm1{3r*`WsA{ozpF<}^Ry(Y3)~5FiED5v(eLDjB?5dyFB}%DV zDFXWTk^8DURa>bI_huP|O^?~ioNw;s9L?ve?R$gM^OW@rbzNmPawX)I`@5AgTUpOe zte|o)i2Hd^)jjkkJD67g@YDcjY{)ZQ0JkHaV0AMdETkc4@jN=#@>YWNvNevixYkd~BijiaAw(r3ux%@Hyl1vnF{wjVhQkC^; zh0@X8)tw0I-H-E%ADEt3o{=>ykLAh;ea#!nK+iF-(4K+ufq8)y%<6gN>{(u^tQ61= zf(ezNt`7vIS_m$^o3H%Q_ckb$D=V}Q8{Ys@xFg9ucxUD2umToZjr~(BJcoCj)0gKKZu|H%6MSsC@GL&ae(yIaUGN z6_-!`tT#Lz=sGuOd-VO@OWwLhBD~fbc6EO6Ntcq(C0fuHpqyRl7>>DzddARco@P=l zLHF8KJLSDaZD?b32VYBJ!We0#*ePHkZJ49;xnlU<#p>(snc7*feXxLpeDeL2R{Ob| zYV-9`#zFIhRl;8?(4F%*^!GGZXSt_qNA+IdeFMSEms+1&x%^)_CB=G83Vr_{O1!(K zHd>#8T3`$RdfhRDuH?|a)l@^1=T-Miu+!h1AI0~jh5pS{W2tXVz4MJlzN^+xepRfC z^n9`=l;QmE=tnrs&`b}SPdZr4_(10r=^u4W>W$JX#Y3+(vHA`Ck>`o4=Dl?y4 z6AP3lGjBe9ya-ax3O)BB;6SeI(D(0A537G@d2|nxS`gL3gkUPzNa*{wy7#(&gEy{V z)wB|w{=CKf@;N1=Nywn8g_#A-x4_dgg4=?wsQmJ|X2bhLc}sgoSg%pnLSO&8`&rL= zmxnGNRao4ntHr09@%O1|_FXS)gFYT`gBUTUe#er>V4lC9P9H1{J zg+O8ir?JAnmUp-v2H_ApTuhxm_yt$=mp``?;Y2yHur|fyy2vkk(MZ_T&y*Oo1SjJf zV;lQysCms-ifZzvRfpZN#fboS2>mUJ5(6Uhl6FG7ue-cq-f(XrZJ|4N?h$BW()6YJ8GWvIiPr>UZ3n;I*L;Qk`EB!(^NZNa8KJ-Rv=I)< zQ{JpfO>b>>F?*xRm~74hyEPq9;8*U3%yQ$ zxli)Zn|KU^c|YCxzwiN0uNW`T8F_Lk>abT?9rWyVS4oFN$PvS2=%`4R}n zAajEGrn!JKW1SfT=Uxegg2f5m7S^mksEkkvJ@S>cs?dWxXLYywSd*pc)PA&_g8aj)6Zr) zlL9I5fuFz+)w^nO zcMtG}m1su(8&-A|WGDyq)IIlo_bpFp=8o622{4)`Kj8r4dID|@|6`jCg zR3~w0b=IKP*~l5X-Jj_%A=aELT-JPngb19YBk0ivUpSb5eV*O-sDH}XRqZkM9{UUX zZ)C4WV7;ghsI*(~pD+|Mh0un@fV-4+$GQ81gJgM*b8ei6rM>J~sNL6GdYB%r7t#fG zoop}v$6w+Rdpa&$)|Rob^ONA`QV8J|zqE=QKKmZ1plqoib=g zp2osm3E{5Ae0d|~9$mFd4O7FxlB3iZwWjJ(5YKyjG?M`+#JKc`< zH*mT+y`5B)MswiY7BjD0ak`=ESrxbx_%Toz4&9X)?rNONpEXF8o80|-dSjmj#&fX>5KYH_#HGV3!J4+!9ZPDu=#;v;IvzVJLMS= z?&`(+J<250h|XBxc#&|9zj;(`w)QELduuq^G+3^s-nD3+vc0{HF<@+K`JCCN!VD8_ z*`UC+?S*LXiu+TXfy|N-!M<>yD}x^kWrNF=94=%puFJ~L=!FXNmi+2K(6MnK<0+^y zR#Hbl*0<<;nO6U#|Gj`N=o<>Cz});0e3YP_G%JyV=8K}In1@UgZBgjkrpob2bU7|F9s)# zdVB?jtuUO4j#i->%ykF4xq+Mxp%s(aJ#8bkxr6{|qenHXZi;|3LQR;FoGJ^DCfJX22h)A7~ti53~RQXcy=h z=o&~2^g_`%5KZG@SghlL(}D9m=gZ(CA!fpr9xnNZ74Yo_`!3R39P~TQSjfAo#42kE zzcJUh&G&cTzTM75FL&^%{yiHW@~VA9_VI7}Z~0YLOtV01PO`ix5=F(n1-2h9XYGPY z6D5&7w_M3lepgKP-7@t>(0 z)=&0t_9^E)&mnI>{EjK$9AAM$gmEfv1J#t=Q)am92J5D%T2dwB*FDiw0(7CWevz57 z1sKC5ILl{!&C#bM(W{I`qmqnDWg4t-8cLP<%+l%Ba%Q15Xz(^#TVTZg=QFLwf1F^6 zb}w`;1KB|%U~9+1*Uq;WQ<;|Ae?P+~lh4yn?w*{0!u;WMYf+CUp&@7sGW=Wphe0uZ zg)a}I53A>N2`oY-@V!tZ())%>Tx~oxI}SyX-&5by*pq;st|N-NL^O5%&~Y4KPB-){ z-DTuOb=nriX_#*qoop%FM0?ckA1q4JV@@a;Mc*_ueQEF#NBpliA8-;sSvB|m!Dl_a zqlEtDg7~|#!-e$ArMVZOJ7}hDh1YGZcha*_O8xI0U>D9flDI*XiJS)M=N4SE({NPxf+7 zxYQ_$y&SF-QodAT^FYZnB4=}2Smu#_ei(sh@VVpp+5K$=tyf$j|)aaUsDjlRMbmZperL;$L%-|$J*n;Wv_x=-m(9( zPk=T?I>nrM?9NUwbkjjiGXq~z6~f$tr^XcV?FkQ$~SPEJcg)of4%M zS4UBKKUUYn^!%mHb*}&odE0Xg1wm20gx*T;&TKP6AFa<}!dVQSwOmei8Tv*l^pj4% z7Yc$&XebYYT<7OxtHgO0;1uf&dzxa#SgK{vE6rvHe#qY2h6469b?}CDhpw>z{bG4E zyKZ}!{i;1qc0@;*Z`^*LKj5E$25Kgnxie^Rgz~1Y)6)@*bT=EE9nJxCH|OXD zZaIIT5G~Avr3E^JV{Slq6nge=qLs~r^DcnStdZIajC_&$9_QORwTAl{ca*0%HGB!U z*JV#G^t>&YG;W{~P4#|7#r)m-z?&CMS#1;?^^HWMAIR@|W0(1bS;$ucO-xT}dk5kqUM5$JiV+nxMV=~9NvnK44*O*!bW9x2_>?0xMnp!vNG(5$WSDyBgNUW6L|Bx;2) zE8Hq%31%?HDaDNSk~7u0jo!W}I=(gVd$Cf}I6gQt*!1C_Q#~_jrHu)hU?}7=AF`1 zI~5(@B72>^+b)bcuA;v-9lMyYpZCAWG&vM4)nt@V>-~9Pw$_1(Rt(e*td^YPLX?$X zh`%c#LSjQDlrqXAHOw9BuIheX3)AC`fu_!UF%LCo39F^u0bPCu6KO1r=R3}ECZDds z?!gb}-y$Rq*@X#iqN=O8D)(?|rD@pXemcE7{6rnaKH$tWEYg zl$>?YwzlJ$r@$oKVM_N0p5@%{%!xl3j%otc`e!sD9{d0ksC)PU(n7!YrqTixcsqAT z_nV#^?KW)1eJvFYSUPyZMt-hTm8d#BbJNu$t zowI5_n14D?691XZI>}Hss#};YGtpy+IUzIw-B)wD<4~gR_7nm`%%Jm6(HrCPI7K~} zWPDGZi!ui=;lF{iqcVzy&AuOeNt|atqKSRUPPL=hH&ft&BAo^(n$9@Y=;q8oH%_ko z=#V9MkQv&?C6zjgN3yfsl-}?N0#%r_v^cQ+ z_N=5eRAHeyO9RuNk818Zlg4u9fqm4LCBCg_p>Fv4z$47IwlYr{c92~@9-W!cz}ACP z=;E*GIMmY}PEV9fw*qoz%!+WG=h-w>CMfCZa&@J;hUxpC&qyc(&N6BL0^d^!b@!`u z!OKCizvDgs=6T@BuNBqGXjReS_)x631g99KO=k)}rTwJc)QX|-tgfrN4OY^cXksgtiVLjBKV~LcV$ONF0KK(^-an)R7@RFo=!lowp=0#8R#reqAV!^7gEd9-xz{3 zCI@zI4DUG|ykrZikSz0r*#W0i2EXrfwEt)QFL2`Xz;YslO~cg_OnZ`hCR&K)?)6ms zBH;S3Yt{7H`e4qMy|@rg(X(C$t$CzJupi5LtD^?Cy_3x8aChg;p78#6K~!qlZPTm>X=_KG?NreQmdnu^TXJ#a0}<_tfJMye9}sLo)` zS2%0C!D*GDQ)%Kf!QOiBzz1Gm5K}C?H$9jX_#@TdmPLe!^^; zYOP}hR%Z`%;N4UU)($r1tqgAAhC_KY@COV(1fIjGlrfx!(k{;moCuFZ&YVw{qXdp8TcO&jNRX967b zk6?y>p$#Y!C>5w2cm_RlgFy2@`@l=Eqmu*g%5%MdoI?u8o~kXF%3{{iF69e$>;-tG zUr@E@Rg0*l)XM5JYAN(l_0aCW%vn9(y~N#`H}aC_K0Blk%FJQfIlNd6K@5Aqwta>w z^IH@q%iv1ad5f9d%${hT*P_6^$|-cutb$^EG7P~n)O2fbpB(!i@wY~>(WCA5=)rbV zACJl@|+(xB30#9-Y>@~M98YSpt`v%zb{J?v7$O=fTw#x5KP@1n7XynA#ux79G+F^=iA`I z>5d2IQ|+SE)rNz?y$Itw3T$yMi1df-^NZ|n;dK&zm+|;>7I{DNZle!7#1krL6f^1= zy*NwWLWLpp_FKV@+M>H22Y2+2`57!`7MdW@q2&e9DUL7Z11kDaw4t|s_k9JKNNU5D z*;Z4yzL(LUrBLPHr@!87eF@X|9p{knX1t0rdxf3LAK@?RuZg04qJI&XbKyWVp0Wbc zKk$e05P#k@)$KMwGzL)(-{n1j;{FUBqVVxt1x?Kj22|JMMF-KEH$M=y)>u&K{jirO zVV+BZj~QAMILsH|PD48WIL@cRaL?29SD&Pv|olbj169{4`n&?J)0D_QbO_B@#og7}>O5BQ74;U5u{`d=blesB z^twA9-@ts-vTH$J4!TdF8M_JoS{MwWEwj!_R&oK9bLHvBH1P4xxIkuT2enA%z4Ceh zrE@oWvoSo6g?dvy-;1D&TUd>MndN=e@nyy1a~cG`HP830?;0M=f>v3)adWICAS(Od z2Tp^Dmx1kV=x>S|br2m!T`J58M+xZc<3V&{-+sQ;&Gp)A0n}Mio*QJ;8Ew z71ilS)5}il52iF8E5a53*$D7W`=5*`tCETe$yo;Z?~81#E(AM42L zaJiPIcvV~dmfl*RYn?b*#-l_lnhz*BK0CE!X*@=f%mq1i3QJFW@>(u7*m z8x%7cEMmU3j8i?6YLksSz-3>z^MG>c{&>2|!RQLI(T!h2L-^#3Iqp;d)vO7s^EXz9vA_M)rB^-U zsMRhlObh3PjnV@2pYe1i{cy#Ekc{Rig8O@4fpJ{SB)$?Hdm~kOH@jURJs054u7fxK z#dKE0C~1^4Dx()RjHc}UzA!<{sMH@D8>rU1P!4|u&VP=6^(VT-d!YN_W-)O6@?iRI zywuHb&zxoLgj2t(p+_;L?^0mGU-`ac=QPDpTFg#h^(?VJqE;NWd-LQ*GG*^aZ}$NA zWf7+wvy6{(xkF$q%CEhFg7}Kc;8=%|&nh4+eXi0E#aiKPu4!V?$|y0?q5&WHlF`VjYa zO;-N`D)>8iH&=mG@a<6rrPgDNy20~=6;i06CjOTCRMA5|z9#PR*WeH;;QiGs!2H$C zzT!MV?$5$jxs-yElY1Z6ep9@I9r0`>;@Wz$LZ{M6{h~LtUG)pPHu59)sBx&SYrvx^ zpx!2K(E7Lq;^|is+7GPoOJ!=D^ItIUC%nNyKT1b1pn{UO zzo}ZD!t9wBsh_zl{{O^+QbV)Nvs!m06_omi&M*_T$P0BP7nB}_6wk}dN5UUm4Q1*E z<4dEy`5gP_5&Net?0aue{X=vLEzv%xoTdS(aoFqs+Nps$uS*~mwdk`{*7@S^NGm9{ z5`S0DVdyqq<4jzKCjA_9Yi>_b&w5WMv>SKy0{EcX@eDVi-5JGN4>zOfM@uk=y@X<@ zv;B+x6YO;|oY^wxbC6vF>?5?6CZcxj?HpxdJJtZr9fv}z7d((FtDvhff95&uYa?Jzf+ z7q>AL;%9t>!q^p8NMdIXl{sn^PYsl2Pb#9|4dQXhB;foEVL~qP%##X*bW3X2$11Ff z|H8e?p*MS7XfTos$@dhCIv}6;9ciKO>1>CXrxBo0V?kOcF)^evZ%ck4BlJCOoq6op^Dis?y#t?cB5{%O*@ZZfBf3k8l+Wd+%HLK$QtB4QD0z)SMrkw<{mts+#601? zR@qP3$3nO}OTfi+gpFAdT!TN+l@RHQ<41HxdzR%c;;G>6#E#1G)k1@q%>?R7jFj)S zB>i1~^*QE@P3|B&{ws9QX+~%3nxAh@ij=zc1Dnn@=H&Mnl10!D-*n&?`^zV^Uw^~x^;64m<_hbgq*l(@8eZ8^9TPViX;)~jb z<8m+4{dF`lJd^ZDxwmI}mwPvOBmLE+OMQobHt7;iv)$c5Q>6beBlPvNlnqKlwHf`u zY;_@e{5xtar^gm|D|0N}+21UnD>G8!NIP-mw^O^QIc}9+O1MmVpgkIgdVIO(XT6ZO zHklnWP{-tBY8`;qVJ|9}qp(z$=^`H*I_iZ5c)R#}vqEdMJW3FqckFFOn0c zqRq$(xI-FarHI^@d6WWp#ob^VSCpW-T0O4kH`j7DX8HcKyE1L`!Y?)uCh%_#l;2f9 z^u2@V5nogGsXg4|z&V6>RwRRj9J6Wo;TNNy7a9%0DP#se2cs^U!M&gQ$%W+=F#iyR<3)RqsCo9 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 T?0>M}|6oC$rXN4w`6uuh3CSps literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingcms.cp37-win32.pyd b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingcms.cp37-win32.pyd new file mode 100644 index 0000000000000000000000000000000000000000..b00bcdad950f39930d672b5c957d53dd33af682e GIT binary patch literal 190976 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

}x_1y(aV?L&7zN7G8P7T$6x(S}5-A zMXp7?P`n$J^Xmw{B8}gX!WOL~`wY*QZlY|n&c}+M*;tWDM!E^b&bLiVUB`o6jZK-l zn4n>^(&kBBLHfp7G%}GHlTi-XJYTXx_1_MKR_d zc7COfwJ&yar_eOJ(c;?iYSEHeXA?B_vQEBosm^g!kmn`~b7#iJUQ#b%avx@nL${g{HfkH4|*k)P+H<3@Ns`xXLbGKagSK zOXf6C;dtGEuK8siSegSKMmtJJrJpLVIJ)sxCXby@vNG=BfRb$3Lot;-l5F@Tcz!m_ z3;}2OL(2@Q)R45k5rRj@isyziyi&2R&~Y5IN|(c9nd*Txv~k9s>@eqCN?8o%hQta( z?*4g+y9t)_$|Rl9WJ=qTVcT29W(ihv7G>*tOsUBHo(gC|_r-(}NWWq0S%oof1TZ&D z93hYS$&%HN6`(gA@*VHKHD>*E(50AdLoNNQ(_4kiqVyVdvv_@$J9_VF)PI~(yrd3x zrOF4I-+r1Mg3t59VU=sK?z0q%*E2cxEG77Y`IH?Y#U9`AKt*A!ZW8Lg7bj49(mZ6_ zFYfwzB|8+V?O}WAMMz{f{R)KY9t3mzLzBKzOkxh~j-y7jAiLQEi6l>Qj3i;_bEyKv zYl2?DfuvbG*Y>TYkCMu_6bdDg_Hw^;~`8V*_hfcwZSJ*5&l`Og;9_9*miBQP) zGygm!J8#_l#;`$iq7?s46XRy6rOjyb@6}E`I(0Rc2>jPysTDT3@R5Ytid@UxQQycLvp;trtnJ4wtM-E8; z0si!cNc&7Z8k6@=xgvhmUGsHHyD(%|;D_vY*nW>Kw|(PQ_Dm}6ypu|EB}~XNh;&5= z&iy909Ab?VEnnDdPGwKexQ`O2OYi+;!C9H=(6Hjh!LlpBcgO?Mzv?dEaXD(Jo8l=U zrRQvAiA68VsL*i-gaml&>RXUkWj~NyA3C$Zd=&x{Sj1t|@21>YkHXoy2COeEwtSTn zGj}Bfgj+u#fsYadM-Qf)Ce*=1PuT-R_Lu_Q}!+)ET*`lN#>n z8FfT1s-JlCXbHUq;Ij?Beab1>k;zh(<#&if3_1S$ti)s6Uu$l(<%kblX4_mV?3y__ z=moa94k~*nCw-h@Tk4?lr|F=_*hV_&$vNo$II*~Oc=d8IPbg_75>HDA3A?Gtl2R<# z>gl&#yu~{8 zg~(OAn_gAlXUjOt9{CM(fkBcQHkl(`QOD?Y3Ypn<*m@Y|S)QHYMMk16TV!}~OzfbH zR%hwoomVpJX6P<`(1b74!%W>zY;_HiQZ||MTtB;pOdU>HZ$IZj?CEm$$z=m_Vb`w z-p#}MODM%nv=G(Kxg9(uBioN21L!yyY$Bj(t7H!_j3$gtX-}AKs&W zMw{Q}G|Dd5+^6!OKLfI927AC}0CJ)iua{ooM!l4Y4lBB9`|O5b8#fV?riFDYYhP<$ zPQ8mX_^OC~$0bj*1l}Vz^1$yqMcV&8g18a6^ zMJvYs$kJbHYoG{wxJb^b@;lnA%I{uyQ=coOICzeN)9bHL9h6c)|MkqU?&2QoOMiu# zXM0rW0Z(hPl4j}0^_*fmt2(}~x@=x_nYQWVFDL(V|K*VMeI-XqgqX_d@ytDVv}DqJ z$H_qM<#ryK)1LVidlkA2xu1K+516gKgek;Iz4SMVNKn*3dR11LrpX7nt`1bQ@ey?6 z2-XyJ+19tMR`mp55mO2UyIJ|Fs9_+~9HYnC_Ym|jHf}lN=F4i(`UYJUebbg9ZKT?5 zuYgq%n>7T|)&G|_&?^q(HT)oNXb9vnM^Fi9q2RYtzh=-69TKFUu}CcSfMo#cb%0nD zT}2U?{Z?g0_HL=ZZ^6|ZbEj?_8olXYItnq@sm6|d)YqiXp` zYXwwQk!l{=*wOh%7%sL2Rc49WteppOH4XQ%Y&b6+#)^jAD6;q@fkixM11LjHe}?irG}f&5Qg_R{cRR_NvkZBND91K_CfUaH7!HFm2+)o zGfWVQolsa(=OpfZ?4~$C(+1{mcRNhp58^1;M9TFFsoPzQ@!aldfNB1bhwUV5O+uGAO&en0Yi zD{~ELaMwfrt%}^;!DCei;tE}TYZiT-*-|LW!Jd9}v;3#WE8uHai@{9dZg`bcoMX9_ zx=?Quu!P7Hi}`||2u9OH_7lB5;3ds1Ez`?9S?QXiO_B0|hXG{9$gXWo>O_bkf`e3u zC`z8UeUfjh5ExYT*mQdXJA~IXBv7zrI{20;h~6~SC5b$?8=AD_%{9J6?U!sTW_rM>%3n8?O2>J~QLaSX@`AER@fNNm4NDbX8og<&25-#tU=yv3 zJdjI|F`?xm)w$#qByW77^By8V-(_=YaYD0@-=v>|c%fttzWf76Ilm-eTeZOh?5?6u zdd5i1Y71!<_w!8b)8LL<^orN7u?khOEo9v55iBQl_yxA!6k2rZ8Z0~ zWU}%paXxFB6ODfX=X(016x<50BN$d)HI7$|Mf;@p;c^SNNaq=|WF1X#Rz3r>(`=51 zF=Hr0CfQP};_fFD#8-Cec9)xc{B={wigu-bA_dnZy0+HiR3p1@Hg$I5q`o8|^JuIK zp4gDMpfEON5|3HBU38hb+Hwl*q7VEWDLG5eGQ$nY)W|O3U&7pjOpO4wqMzu3mur&Z zIB0il-qd=HV?CC@^Tu-vo4YE}RU5TvMelEAdBm5bF7lR`tA5lyZX=FwoP!GWXnWL-1~O&E=jt^?P}WK59-MjNuALx zkNNDQT@PlttV$bQMF)HtyQ(YRZhQexG`58`G7n3NT|Rjot-r`_S+=oHDNtuLc0|30 zguxXQ1a|AS$O~>10WTr?1x5R$8~M&jbdt$n3vO3Z8jMM3423vz<6Vx-7em7U(IJ{^ zEGTtNa7~1HHYOIm-=LR1j^>xLapDD(JM$$iY94C|Ma*|H&zmwkrdy+z63giJe%JLumZz3> zHk%zD)E7{#JWs{zbr<+W^>WyB#-Vu=pR;4ujo#QA=WI6X)q=&~H%f?Jb$+kRr0|YD z(N!<9;2(u;oAbYieR}2a!qhd+Ha#(-;_1en(N&Bu)hDz$Nz};4l{P2$E@n(vL-Z2v z#lbfc&K&J9%+WSWS~>1}mga|B^RqYUX$fzk`aMHi)??6*)*x=Jt7@CsatxGeT}DWn z2s{{ccn{Llftj1R>Za_Isx(C@FUzKMtFSc;AMase0zK{jL@f#J^~&mk+DNcCk^VRw zz4?a)Gy+>df6Z%?8FPn2yA?{LF5P5?SWs$yFhA053W%z(#F_zO`iBSJ6;(xhtR)~% zI_%#HF!d#eq!QWeIfniXSMX65O(tu_L+@nbn0`{|v5%4DZ0)Y`FvsG0_75zVt?o;A z>}p=7o+d?8a^z3~Q!q1NZHy!`eX!kB-fl;z8m7L*40eHG!6B-2(;nOA+iF{xpVnw&C`;qyNue;?{W>3-C>SdYK@9XC=WcT&(6^Rx&33Xqe6v^DvG zLU7t>`a2d*AM16P;p9%(?hVmZQm!B*t(jt(t@W*!f!^$1grS}R;^YqefZHtE&Q@xa z#EBY|#A0z}=HFlkOwb{T<*|zDP}3Li&C_%+p?&wu9p*umO@x#3vKwYMthvAGo#olX zKMDE>yMBBn%rm@ILe4nx{oojL0}ROfxd&2?YRYghz~?}dN~1}jGBbc$`AC|z%So)o z*dP?XASN4wIM7!R%a}x)uhur|B6+9`nfJf1D6KD;vPYW-DN5MrFh^Rti8deMK(gfu zdr%)h(N%INS??k5OUlXG-nsIIppSSfb!v9M4=v(<%qREKTZcKp10=nTsra<&_ZybXtnQJ)YG_?B}0F9)xdX#yZb-p^1?5@Xp3SdZ1U*g^a_`uHrQMY{) z;2#!{S||jJ(whLUHojn2<(_W>OocznBSjqDwYf~xBx!-~DSYP^G&j&ZdVtEcgv7O#tu_YeyGRriJX`{cWdS$) z;&W5MemMDR>CVULS$1MHCm&TmM~9i9;YpwaFM?S=o`jNaf|&^`?Yx~yA4{yo26Ru? zj-X;kiZbM@w7q{i-B}QAmf;~@c2c7zHcY?WZWiao&41hEk~b4(%O$QS&2_&_0NMXgVS27P-}5*A9E zaI*cLZdOdQh))U!p*uAd5>VnO)P3nsc(B+XkS2p$l1Sa0nqT79@WB$jIg|kP>K~|= zWIO&=$B$n{kQehsq}^Sd>ZiNc4PkKDxrzv%_E?|xK?jnash%u{-oSdVddx2`KS8ECy7_&du%pzTa72m z{Y^Rfnrey6l^9*x_$(}1kB`TBC`B`!8|C2iDFAqDRN%Sz)gHb5_g8>xJ?$54II9F=xFa73@?Oz7RpkMwXZ}EO|zorHUdYc%+7e z2Wq=(f!GRn8#B2Lo_2ND%fZnWGuk(<7pbz=Wv!kV-lmz(_1hNnn=E|^ zrokugogTK4Afq4S2j!WUXPF2A?=7FaK3Lz=pZ?5V4ZN9$w7l_^PTa@Bb$ELauo6 zT=Y^?jrH1I+So*mCQf03HH0LjDj4J?L0)I1X{6NBm;mjA7QBfyJzPs??9{f-)Q;^u z_Fw10P91}^V-tc9P!Y8%N>zM6F{mh25H0zCfBT$s?@b73Tj%+AKA(R+pWJiKeqDR5 zwb$Nzt-aSaPtYb!TRzwLjgVIYoTvicA;T#xXV>5wjMiD#T`55ioE}TC`v{h}n80kr zq!&1Y#oq(4Y{(!;7vV4opU3dzoi@uD)lP6)>lx*-q=lR>>kaD~Mzuxeb+A#5^1@CY z5h@rt7N*d?FHxvhFD%EwVIm^T0^VR0k(j7q^<&%~(B%o<#~2MLNWmidm) zd(Cq7+`9g1c8DcM9`?QgGNQrvzTV_(EB9ZCj5T3BP>qouKg0nXkZb}&$!pn>A5Kk+ zXiFbo?EdE~-}yK5Rmc&h)U?EczVGwtsnwW1E-9f2PwINNx-J+-wyMWx!I@_$lbNke zot0uWaKB@j5H+q`s>tZ_6NwNLze8W8;Y55=5&0%UCwV02+=%1S%ROchH3Gowi-6Fm z0R%vOYNCeY0L>3R;cRB^OL4`7Xx&QJD`fKUr}y!e5q-JIjsBUw)F} z62$#YI*w}|q#n2>JsI!~*&e_6?M)S!#%gyAMxNLy&K0(4@F{BWLkhUe4H(V{mc{dK z`<|4uKk8jR5Ax-^cC>#mFo`D9XQ$BH-0!SThg_(Qf+rFz;;Fy6G%8H~5z-MX(z)$b zey>fp57#EQJyh>C2==8jg&0E6vOpm-9*V4n%X?NMM;z!V?P}}@%`ufM@UHeS zSYn~~BxYPYY4%&Z#px)`*c{l1qEZvTC(!K2ikPc+#4P$a&U|o<&BdsZJiKV|%PldQ zaP>I3(Sd>KM%lL#UUUH&VWQl^F%=_32gtc)+yAY5dkuo^pWz@6BrsySund zz@XB!mYqpj*D-Dv6tSK%#~f+9^ZlO-LCp5KL{m;_2W2uSLcC{?WKwuY^2hU;47|XH z!)CVyo^F!yD~s{Y(D_EYJFaVOMNBcw^d&Fod4ixt zF`L6%&P=|S-;%(|p1diAXEd$$XB$o*<0lACYYL@wV>S2>`DUTWQDm#_2P%k75LmK= zgqZWQL&^h#TWwz^PFNz66H1ECcN*VQH1>Y0O}>Q8+$m~Z&t<2&GzRL%>*RWRyz|fR zr_0GiCQKyunoQ(Ka%ziv+@7WEF>N5d1fM%~j?G-jtLixrMJxS8=733qNz|B0q=f@Q zG7er6m@z(qV(ApY44dKWRBtn!dbjCi{ilGcraOeGhhf^-{IIOqnKU7e}EV zu^**Vwlkl-Ptz}KAy$9DhPT_eL#y1`^DIO2eyHtZAtczin1IyyICu%Mbg?IuQjh9*D(W8s6i z^UOPgXN@Ls8-eNRBSnV$4vbCD=gjvLvGlj@Q`KC{nT$H9>E;Ew7!pyBd~dDr%oU)D zKTh$VlDbF(*74;fa>26*>G$@A@tbp_d~^4v`CibI>~il7^~VI{Fl2dW+OsRrJx)f#ge8%hWZ` z2jVR1peh`iXWv(}wYERk-fG=_yyteAu9RTL{fNE&z{4y9aaRr^t*SSL(A>ZTh;H;lyNBd&agVqOGUmy4;+}Dx+r)0WzLx|L2C3zuwr9J zOVeRlyyeRvbEAyxwKDJ;?FNH!q5ZUdUw417+X*FKux6LuXS;3rd4P#67ed|F?c^o* zd^~;z9W^BeTlI zL(s2zmsYkyCRg3{Z1(9e#g|$*YTZ53Te3EGjI!>o$w_}*l*=a`Og#st7lrr?dY^2F zYwWmaWX5I`XK=_xx!!Q< zEO-U}V0g1wG7axB$}=rKR)M32Y5$<|gtDU|RNxMVZ#aBrmv;>Mq-t=@b5W*&S?$Y) zKmdKH7G>qn@P|RjQQBiDmO)5X{;c{xJcY9If7tp#K&F22Hm<=Xaqm9a-qgK^TjYBi zkKf+d-4|}eA1`kmCs=pa=L{QXb$072dE#@A5g$rT3Hn>~v+Fxbp>Bo8Do_;$k6j_R zTJ|CpfJ`F4U5eUHmzITIKi<>CV2$zfa1KUdQR7jVHAy$)k^N@3Gm60n8T%@-IY)yK^R49bd5l6aMju9q^1%4_WI zl7-(){;bYkoVV|ks;Jwl5B=kjYaWN8}f zk6Bh{Y3kzK=`)<>XUzPRA?wTOAJ-q83f@ zmNEWt1zbS~i1N*V^)-8^+vIUxi)C`ppN+oNjLzwSt8*$2`PJZV8oZ4L7cfMlZ_NzR zQFjoFPYEssW$r+hVDRdst{4X6WLK^kZx_x_Rl093ANs%Q573+9!C8(v0d!{%Sta~9 zDa3Om&ylH0f5gsCe*hkFv*^vsWnSHk<~1v?>dekh!ES{rMD?j&)fXDRzI1v6SXPFd zqoo%dSq)M>$7s)y?Pm+!5Pi{L_=lE%tn>yDWf&fCk06=ymHrrr@zX;)S4MP>^!qFs z(|uO7HSvx1$VT;(uHjO7g^50XdMi_2IJ>-I`6X59Zvb}JPb^Zo5XjxGd`kGKnoeL1R}<#YpETT$I}Lo>d2UZib_ExvLR-@J z5Buvi+!C?pm*UM0PHYVri5A+e*wx3koXb``!b2yxn{22^U(*2955RvcYf1)WZ>dN; zj#4x6%1{%|r0&v!bP!zEyPnoF==A+{{YCi5AA*nY|22I4%b$dgWgh|`$>;LSWiH&Y zZ0p8TpMJ$?3gCg!vLQgq60Szt(%nC*+c_cmLJorp>zo3~NSPtD0N|a?PW9bR)IOZt zb9(n1!DQEa$yco8!Tc3mBCvYh)j83DMEeaqD0b{>itP_tg%7hT{JIvBz33r~W(cM% zedNHKZ2c)P#?+YIYgMs^(oHK?TR%%T@}G4BSLE4Scsordi*e#-KE}yzvF2rO(UGv~ z-(kcn^o&xlBS03XLOZPW+XXIfY5`Il7dmPs>bnI(_M)%e% z5keR)7{{iv%y0ed1cvXHgw=U&Ds+ujb9JdnxpmW>xlgc~t7hAu7IP~PD+_D<139L5 zk4D+TEm&UHL9q~Itv5HtPGUN7uA$j3a46h%+3%(f5 z@WL9G7fx!)iJr#)2l0Yf!W&O!VOYed7#%D5z#NR%QP>!_(+NhaZ<^i_D&5v!!rS)d zyn9SP`4s(Rv}a=+?b#S32|JX?^p;*4!OR;RxU=uduwcvxaPB9Z0UgF3Ii%L6TNc`wdB>*YYH_UScosd(!bGU$%4^t}mN@v%>J=T|6lI zw0)jzdJ1Fb(`eJ|UQD`l=>u=_e30VR!F6SE)pnFD*VtRvydsHXgpe3WX+7%-m6b>t znku%f^}VSAdmYjxCTX*yX!{qKLT~3gpBqf9s{5!qyx&@IKU&!1tinzEt$9pjx$=eL z3M)}5l_c+DXZM)U4dstBf0oq`D7dS)lqvZ+RDzuQPZZ1pbrcj#O%Bz8Cx-8dP8kl5 z3F8$>p|D@QPu2ui?r9ca@m`Ep1w|JVQ*$>YGV*LfQlT{_WZjRK=R|+b|A*%fymUz^ zF9x|4Zoud|ekhF!(lpA09E>1P2<*j_E(*;we0XEWvacKZH1VLs(<-v)bAhzVqEB^9 zM%`9TY*`7fn z;DG1T#DcFqVpT^fjXZw~L1Cz+ijeXN6$s_l^DRTmcq7x#({6@g$yVZA!)=F#Y$cFQ zxjfPxL&9&#Ncam^=0v~1{|C{Gf{k|`&avrew;IL_aKQ*6`9Qbfkh#ti2hzPD|G=9X z5`je*%!IZCkpc}P8c3~NO+3BmDIpWjyzyuW7@K;s$~t;Nl~hCd!`BnG1B0icS<=Gn zrytZlFgnu6@Ig&n===dCv)9qHnn>!<_4}##4>ZinHmHqCu!R}wG16o=ljO%ttD_q= zNP(kPIHa-H`)Yu+fD}DJ*XS;FJLyGj4x41?+U?PFvJ)J(!D*T<;L<)r=4?7<0<#+> z>Zmge${~7XLWY37B?I=+-~|yLoqUj|ICXCyl}0XYG7$K584{iiwxPw4co+Xe0*3%U z80TsI12S%9=)B$b0R-6VdG-^@m-D(`JpoNj@_92~h7`dTgv}dhXv%dBM9iw<8*`O( zGnfRb++oBhSney@By+$fR)6dP3r)JR*Id%q9SCqqUtfOvz_+`lW!@zni%vEa-0+FY zn)1h*H?dqb9(l@pQxng_z=c}nR8$xz!wHGh)B$!DOv{<>eDXn~Pr2a}N9zBx^humP z*`<6~-*GYj4uZ3+aBt)Ibe7qd1ou-7AV3Lx(n_q$+dFP5`%y8~cnlB;amn zmfaMx?*rIBLV&22T(4LL7L7G6CuM9i3_n4!38$NwT`aaAbP3~`XW%izbZL-j?hvX# zkoMQodOg~NB}%%z{F=s&lbD+%fZ8|DNW*2$#IZ=>B`ulU7xIRsQ?WX8uIv(1k1#y# zh{*l>)u;D5=0urwsS?~`9;b;UoqNrgomBv%1 z{A2N3mOeMre^FohEUGt;OUecAJ zyH&dHS^3QzXaj;~z)XXzP75<|vTyZ)=el2o`!@|{pc_V-q*mvpxqdPeVA5{Ca@(L$ z_=af^^U{!?aN)28*5qQ*%uIKT{V0-#2R{KP`1yy;J|)KkXxfJX=u+@GEe+7{1qM@7 zeA}D)$If+6j+)AEotyq>S15-jq z>oT6bZ(--(-#n}v?9@oKikKHr&hQmo$g8V-;Y+8Wq=g7CNN&!TTc{P}Vq5oMwTR*} z`r8P_JHAcOsZj=96&p(H2VQtdi*2uN*Cyj>1UwMDuh8`-4cDu>3NL9xTuY&wSK%D1 z_W+N0$!ese0CN9Rz7Ephrb5>bu_v-iR*wID1E#$&bfCvzshVa)os;(i{{2o#24u8& z#*CE4SbjFb;y%KB>&Oo0cW(`YGILFH7Bleb>%Tqx4T8z}4uyDt)d0_}FQ!rG!{fEr zMPV9eE(+sbq){k&kQprbDz(A6JQVu5YQjS(ex&VFE%EI+Xg#?ww%#myLA<>m4Xmp? zkJ#_A%6-F_`lOi6VPzj@MHx-Ll4JL<2{!)-1#R>@MnN0q0l=;?2aS+x9ngs-_n1|o zbK?u12FIvtx3R^QeeiHLF5g^@$h%V58viamYhDnAUF8AmVb6*OAVy&uJ7}#(m7bb- z&}h(6Dr_n0){48E?*eTQW(iw^`U3o1)w|z%c^mpD%o7|JENqFQUzf_(Dulrmf|eKL zjO<|6`|EmFRzMN2;iN-eC@~KqlZFaF@f}0$kQRnRXwXr|3huT%r zM#zuVE_`5;+lxn$%p+wG?QAN9rvPJr+mp(PzRLdx>1WgQ;=EiKdd)>i@fXvpcb%bE z7ms7p>zU`W=%r@E zjOpp}ZV^p-=zf_+ay_DjAli=vDaQ*@ew{S|4OPo$d>uPx5s3CFPU4!5Wr#*vuj2*j z69+2Ng!AoX>~A;^$|Viu*1_XHR{$ly~VJUW0+4yfCARB*kcQ&aI@*h?<2L3T8I*R{e z(aG;$z~I|=G?>&%gP&&<_;a#tSPPw#p7v0S)-r9wLViT2guLW3>@X@AW0pS@WBiFu z(H0{nTyuh3xr||dbreYPf zrCz3CV`NRN8LqL!g?fYA6s@K%7}``5&t4MaM4XSDV-z$A>($YVnG_w|x^B(ShuEuX zLq=0WF&-T=2B1rKryDjr4SfTUjCL73r$diQD?i0x`lLgTL6dCwnV;5%kb$n_)gv45 zdFRHb)BsR8l6(c)=Oj2ins7kd%;^V#Zo)LRpUVcLG1>g3B`Lf zuh^bt=6|`EQTAyx$Gr1Kkj=BNYu5x@hP7>?4|`7@Cs{b$qK#DAJ%Q?977-o7^Q`kN zKQO{=DGz`d8^)<+zrY$>z?*$h$oavO9@RAIv+pn6ZKizj@-0>sn;opSKT4cwK2fiw z&iUFt!t=CV(;cJZ-2EcavmCwwl+9jowk9v;Ts#6okf%Z?YU*L^_OAjwaK zYKbafo5rC1U2Nm2+SF)=og0^97&1FDMp=d1*>cg#hKv2y9Clym%zVQZcCQ>v@Av9y z&dcog+D!C)Al%&!lD*%HOVNPFamzSI-5FR(XytGNA zeRpdDLktGLA^W_p{^j7kJGnI`Cx(+-QnxskQx~IRN6McpMW64qN z)PSaigeRInBx2^(${bF+5alw|F;8E zs5Du0%kN2rK5u9?*?d8>+hO+q;QxbY_L0)-hJP{iTFpcBG8@;7=v7zFrq{=Q_W|^> zKN5NYL}U%(^O%&n{AVDc$Hf- zldtBqUb3;`OS#d~ZFXhoz|K!?DbH=OlHHNyrbzPLna!`3b}i_!E5i$V?pgQuqDCxm;JvUW-2Y2O)rc3f+AlW5QszlA8vtelD-HYxTQ1+<9tR%GEJv z{u8RUeW)qdJVq>!-}ys#H>~x2gMj4T2H(vWS5Pryd=m{Ohq@D==cL0tj;{|C zJ;Qd!9lk#!N{Zm`Cz|8nTvQ%b&a6y!hm(hbt6q|8cpMO|+Ua|H0GD;R==#J}bg<10 z8e7tL*pKqU@Esv>vCbMT`oD- zT? z%)P+7#*VioLAy5YMCldCc93{h$FcX#Z(e_0fnm?bj> zE1pBllF_c8>8!d4hQJdw^w1j~8Wt|-`x37{y%2C*v0%*JI0s)c&-sSZ9fV9=<06$` z4-QrEo;!OcO3gZF9;@B7OIQ-Wl2aPg=Rs=LANv8hyMG6}okS(cByI5NhUhQRz0%6&#+WuMUB) zs3gw{7#HUwIQF%!(`9^C;n>wk(iGl@9#1}hFzp|b>0#}`RE1_cjn>~WA$*xt`&G4j z8?6PKq{Pt*ZEgOL*nNXy<3nQqFetWgP;6GACCK6O?bdbQpmX_cDc@lw%`HwCBa#Pk z0Dc{yb4Oe%c2VluKWaZY=MCRaT^0sL_E5jv#pgR&8)X4CE9T&!n1ZaBLxW;u;xMHR z3QZ)tL*)-O-v}1VcU=8x-+x?Z=+a@6=TAa&{+#$ozDedGO$(e0&&B`aHoC@yi^I!X zXyjNe&aL|0ybfBI`|WRBr*+TT23IR3k8=>=oL%V^G~VWhTR}&~xtTK{at(Fqr1Fcy z&A+tW>m>aV4*6U0B^V=fB*f(}-E!!haVouR7i|4mr{*m6X|vmLj2-!v^D$1sA@*^M zb)fkTzc7`O_ABCdVN+gLa&OC;uZMIU^9*}V91(wYsO6NVUOCPQ4xHvCV)w0si#gnj3%@SArVLfvPSQZQhvC$jiCXj9 zWJ)l3o~}|@gP*U`%ZO*g!5NpCjCGle*_qI=skVtjGp#h48ivm_^67$v@+p%C-%W|t z@UzLZ$jSLhAn^3OL@f~3k<@wfR`XrQcZ0s4bH5w-Ui6k#yvhx|pHRMN6|w{@U6NQt z`+8i<&wUsXDp#7Bzysee%brD|g!E7@J;4Kcgg#0NdQY7V-NU!Jc@W(+ek? zQ3o_Itq`6KmiSodoWoSqfV`4+!jE3thQK%a1}666%Wq5pK3K*0{A?e%_LNlFaqBP} zrIzQ~$2Z!cy2{3msuK>EKe6i7Y>`vfbkLV07gkD+;L}Eq#$B1F^90>Y!Ajq$M_^4r z9v2in!F(c?mfr<`YjvK3FP-~-P`asT(*=QjfxtJ%G?qWz`f*JwxR@fB%L;ZeVKSA@ z)sW4Hx$2Yo-kQA{+%qF_8(*67$xD0u3+vPvm+av&x~|O zzE(Ddhpz3Hc8%i!jdpCMb4MOgyzX=UJ_pafom-TLI#F(8^+^b`vVfds82aC6=68}L+uz(=99jy7qYU0V@q+l$E3UHICX&c0;#*OzFAXeb1%Tt(xHIK5gt~Ka=769o?#l>q@hQybxmGqm-I7A1deNK$xyp%w7?4JFB=eHL6 ztlie_vNo!mI?6gsgt`xWPkR#7y(9n_1It6sKQh~a5Y%K?a54G3iwGWaR%FVPyFwSb z9Qb92v+7JWhc&jssh^j5X_^C{p2f-aY;odJQ zFzW@T)XAGex>6&yao^9lL%_N9G=XR&#eHOfvvuXgH$Fu*ItBEg^HpBSzVg#Nw05Zz zuc$ZbMrXT?+I`DNsIT;h|x2opm9!w2_%nRYl+S>h$8GTEfK9Aa()Wi_+mHicLpYz z+;8D3TO{be8q*n_(-~km{j2FnL&%I-Ou0rxjTy}K*vw!BUKp(MHL<$k`)26QXXK>^ zfncmM58=GP3823y-9~A<+bJu0zAR@Ob?};x3uHdy#4@krG>NzC^AGHT4Wd^4Yo~Sr zEZw0qayek^rhtb{F&Z@S9?dGHkbJU@q25}+UM}A_C!f;ucDC=n_KNKF7zQ-8#W4QjNz_@@(<5gQS_0QW`{`NJq28T6d!?evfasVdxfci0E>NPM$@Pxi1w(1v> zcuB4@@fQx>6M5GWOW55T!zUW+WP!6}f{_P?t;Io@*p@QftqUVJO1B|?3SheMi0~-9 z?8-@z3|-g&yX}45FNcrc2Y=xyC4k$N=MdobRPG1l-ZSTS=7YsB9%RT6b9xkjLWS@C z(a3oPTAhd8xBLw`s{^a8&I8u^=91Kna^`)Y4~)lx4|gB3@M741dhn^>Ggjw50=Y(L zS((X@l``K=d8qr1(}RbC6ziv?dr)*bWe@2NMpfwc?!ME5@>&=T>WSY=-8hzT*DVcLq`MQXSbBkJ&LQ`>;QL-{(4p#ze8_MlxiGdPpI zmyEmEhUIl6XjjzHg2K{w@T8433#g*_kuI}typ)QRm=g1elNe()nF>{sq?paoJPH`> zrWt~yjY9iS5z|aUH1@V6Y84ZyAtqtJNm#V#EyeJ!o5gGChm}R$ zeY$V7{Mi-L@#ZzOz-U&1@u1w7DU)0}x~x!3Lo4`)Kg*^S?JLr$)!M$#nF5s#*c+zUJd1E~~hrgNC;T7x-2YZ8b%{$f#5PM)Sp3a%JT$RJ}(p5~q_i zx#+N(>^Hcm#hitl1dI>&$!$pa(<>&IKigbRacY8raEIDL4i0)wyh!y3ML~sD03bvK zofp|}s;r{!{>#8vEl^cu7hy7&RRVP)6&gcKt=sO2f+-42)K5s9kcDx%6_R4=09An-ov&!7*z)LZeaiM#z z$4z&Owjj=G!^!te%a<1og`9mWi|MEAzJkqZvU?hv_ew#f5}9 zx{RoLYhyVmvJc|6&Z^#0Y41Zl_{{v|fJWWJ7^gNoNQnnt=zcX+erUz<| zogQ@;FLQc){b3p0ky*8rXjW5=DGt>kZmn=$a7|b}$KFo=D}&eLbh={at1oFrW3}gx zQ1Y0WSI+gqLJHe7E)Y09a6tgsW3|6Ur#!GpyGpF~mwC6hWXJwav0L2OUd3*A;-;w9 z3H7KXH(c}iDSR0K5k+Ga$~zOF(RvIQe< zW=bL*Eo^kMZ|}mQ-`2(+&p<`_lu+}V^{JZ@@AH*foA?b6=idux#X|XlFMUKiMOG8Y ze8ep2UA?4HQD*en=p);1(uDO$mE<=60t|QT|4*H+x0n7L)h%B#A?xO~(DGC5nN&3rFV@gtrD&i_M46(5AlO4rN;=Vf z^zE3G>JO^hppAw-pkbYJDT_mcN_$70QweJMP!T^P9n)!&YBoJb9J@=pwfvTU*MuX7HVwTUTep3*X6k&va!iZC;DXP5k?Ar|3OdzYCy&u}(pvYbJd z>9frmg5|>8F#^jhBEm$tt&R)9EMP`BYjtkp5?Zd0Z}MT9zDGjMi3@N9kdrrpml<)4 z&R~`WgWaHUGS1$h`Ogt^KkJK6&UPk2FAo7yK5e}9?wsg7%lNr>H9!5IUJ^j7uq5bw z{AHyxtFGTFomL-asd2BC8Z6f$vsrH3?@Sl3vcHFBCa;MMT5HHdy9Ve&k}Y{XUF|Z8 zgJ?}3HyN3O@!j!pZSPu}kjO**J*kc)sESk#>+jt|@v({yna0Og`S9?;C`v2kr+pNq zdrPr_d@5R-n5d$;rb_0`=Pq^2_olNCn7a>9fU`-?t?DG*DSE#h`wwT#Il3YjMtjW! zIXQgmvRVr2d;4t9;zlFg`xCIaEr~j#m1du?tSiW6Yr~4m)rHvA@HYMixzKLZ=q6L$ zou0tnrHf3ky#>4K?AS)sd+71=%f$Xmz=OxbA-;Y}`EuY7P1E z1=aGgb!qBc4P?6R^L3Xviv_4|5}wOTrb!QEleUDqqat{;XqPXK0U%Yu0nC}f0Xy=` znnpV^9oJlkMfMjdrsqTE@0=MtJZyerxW#c(eQ5co)jKuyjuc^_^X_w^!jS-=IxEZT zL(Ok2SU6}x;?EDXryw&wxLqA-YS^yMXNSePNYFS=&*~9S1@>{yoTuIKtw@6v*FhiW zOz}cKt`P3aRkzU10jD*tbB;gB8!)Z*Lr7icRKADmgFc5pdZQ0w@Q+CmwUd;tu88Y| zI*N$({WL#4gFd|c!8U03g+G2j2xOFGM-|$eWazB zQPpU)v&Yoz5mnpt)|N~vpB8HVgD$3ML8)8jEEAZs&EUCPQ;H5@i4lcJ%t!7ZTJ#Wa zzL`&mV*m|J_%jF3LMU38S=9I1dG5woE(tmEebcQ6Ib14zlJ z^lkq;kilSF82r2>)__FBX<}D9@@vjA9v;{l;y9LWR75WH6Jgv9tAIx7_wIKddcmdq zx7~&_kDY9R#+2H%ewRlC~--99+6>V{{W`g)8i>rN*m4KEusJ&hw@jy6?GA zEUIO+ue#Fsp)P@Z&$)TCQ0Z&^Bg!4?Qm1`4AG`V3WnH?f{SiJM z;bW(DDc+6Rt}0Uv%!(EoH^XfU{${QAHOdEb+wAd?oWO$l^2D4O>0E>-_ZHG&N8HX- zT3xt_=Zx7#qZYBBQjC;+7?bRGjm3+^QYD&MIT!XyPiMSz^*Z}sKRiHRA021czI9IT z@-l6KXEa5TM+WqCOqfjOLiCV@(nAK4Mh{7mm~*)XG~7R81AX?J)XEyTBh=}QZmYh_ zj3BwW&`>$Kcf6qL_2BKomS#$&Y!_C(LU?ZNGHS9awE=+DHgh?h+q8mGHcdp$Ep>jw zDqPssWw&gO4si53AE#v`my)KQeZ&hf5k^O7hwOf9J_<~LEy>6?>S7$7fud4(WCIdd5%>Mq$_&c4tx_?#RQ~8cH4xuG;ACU>^nMFIfYA;_Ao+ z8{=DY7!mZd=f0fiET;k~&tf3Uo>1)SH}(x@m1V}l{DosW8Wip0IM}>rrSt-`>$&5l z{R+(vP-z4R)%Og(o$vh4jBjlguE4n98A}`4)!Afzqz_mU zn(ch`fF>Y?jBkHO17gnUqaZ4p279Ly;}t-n6TX2F_vIYchv(UvIFvaT!HP6IrVr7v zB1F1~^D71+O=GmZlXKn?t6g?NvuUpy)4>qT|21)$VwWm$Ey;{oYM?cEfGOv=)k>B z8N1$BkEe94PQaMih4x1PrC#m_rCyE5*c(TCvjwYd7qP4;&S9DoVaTLKWpzt}srsPv zZ-)eWB*hIHtgM|#I?K=80t=iM!@hluGPhQ_Yk(<59tTA8rncGioq&EfXorgX_4z?7s z&_4d1yxf*EoTuT)dH_iH|1+FdS#r|?Nt`)7$q9kh(^yysrkhEPbDF_!ri;w!aehb< z_VLg=LE@H2@gWa0w1hPeF&6;+4c%JHd7Wd*XVd!W^;}vwayl2@Q41@%U$JRD6W#jU zy}P¥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 E18JBFNdN!< literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingft.cp37-win32.pyd b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingft.cp37-win32.pyd new file mode 100644 index 0000000000000000000000000000000000000000..ad1886c2d40848e0ca76a2161e67b9451dc3cad1 GIT binary patch literal 494592 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
}#hQ-+U62DX3^9r(3lI*GqqkO6N z+@?>hSYF>Pn2N}i`$rR)D!6_UmU?6PUqe)ZTvdH!XpKz|wr1E2 z2!RD!7l_=RHrsYfDiU0DQXU!=;RJ2Qa$qAZu0uX^$|hQoU|QtHe{w8?uAndaZKcS} z_2Lrj=)=DQA85M+sR8*$p99TeBCYdXgrtNEArbM5$Z(6e4c-<=<&$Yz`+o~6x-ADU z4&f-b?!y?A8ffKK4G$jkLzGBFHmJ?b}JoL3xI!ATG*?V9LDdg_%t+?)`+vx#O$5Z zF!zM`nK5S2H&stxiT`ydB&T{3cY~_-N@vB2O7mg`%RsKyejT+=$aMr2jTs-U%0+<) z<)tz!29<_7h3aVd2vyYNsmX9K6U-tvsq|o@U3FTu#mEgT$x*ct5GXmzMI5*{SStAE zNAgvlOC5?vKbkyTKFX4DIU|}OkmLyQaz>J8eS52vN9pGu{GO_)G(UwtrbS#VOpsH`Fos+gt%&Pl5Bw`r89QoaEN7~o zw3?0WgGdzqYaBCL{7v}eEtOc;y(#hq#gU*tg67B=TKa*dM)h5TqgoeNA;*nCg_V>G z#gm|v`$c}ky}IuJ0tYv)EK8y4>u^n4XJab*wXS`2`M#4IGgS4Hb@^q-o71`Lp{24@ z5k7Gl=j_z{nVY7duPvTbLm%i%>^dUM131xU+nK<9=&AhLxgl3Hpn5KpuEOyV-|-6Z z6>MyIngLbARG?Oi=;gKG#o8Wj`4Qn`mthFoe3Kb$(sDJO_aW zW@K9XMwNdmg7#Q<@VdnL8A1Hte3Xerke_X=JZhwY0sg?P5m&M)qW3FHy zkudxZ08=7MHs?Zph$zwg3<<_BEYzd{Gf=H-rg*yu%r$zsNUC{BP0vuB_hl_IhfO8x z3mkkP)XHeWy_;SGX9xGCwGA-d9YzL9+t|5it9~ruhYv-%Vj@pjQ z8p1Iz%@25euWy>i$eD}lyhnm_yuF(;ZNAsNL!nP?^E+o}-oktw3w~CgR-j)R_2@UxoIo?njr8!yFha7YbS^ zC;uwFD7P*Som)P~TRyu%n!h*Me4oEM<)(xXhW?;&WH|~^gxcb2&IH?j;)orAYc|f# zdSg~I1h4lkZTn0BhTAjvHXBFva%cFROc7xUhZjCe*jc0|64!h99y>V3U25~WVh^Ht zpI?|8njL=Fm9psyH58ZDrj!PKZVzl5EZ<}2rSB9h%?({!$9eQ*exW;br7E1KwH;Hr z;zrRTxgL9!7XU+S4lf6|Nr~GAM~(8e@RabhKkfC5+BV+OzHcK} z7WJj@?KX6D);qnc>$!OKx!N*A#i}`D+Thvt*Vf-`tgiPCHr^oZ;vy<8j$|e`w>Q}w zzP;kAH5zebCeUu(j;ooxZsdT!=U4vkA}!ArHJy}~0YYx0PtFr~&1IOzH{ZU*=ouNZ z9h@~VtIs~ro@^iUU*DVOaJ2~pJkI!|zas1|PDCrK2vi{iGPkvC?cwyh}UZtMl% z?B7>337oywF1I|?0k9%V;i^Bm`dI+%k^wQ7%ul<-XR1Jt2- zkEeg4c$N9YMAPCVhccA@Xt6bEnEOdbH*IOY+G=L6X8>+9`BkI{Urc^A^q?ATYB0bc zL-!m0rAB$h$Po2M-l!Cz!I6sPMikKjqz1mQN{CM=v+`1I+naX=uTzqPYbHq!Vl(4S z*orPylu1*ms&I9p0(Q5F5kdxTELCjWhBU%60n$!>LeUSTD2M0NuEV_mOo56W!T zCf1tRvHFrE#r+6m-k zT^1sLf<7*{S8^KVGL|j0k3KpiJ%Yub`tV$-&bC+{3$omNK;`m|a~ozBc23GLqLHER z(4~=cf-~`vG&pjEOS79{kI>rHb8Ihj2`$>GJ|`+tZX4E9oM-{r zfml-gbs0-mQBhEO(W=C)q)O#7!!(KW>utgZscLeaCmRuQPijzF7Gm_-R2-_KE`jn$ z(W<&|snZpkkw`hzdudtT=Y=1+I|a`K(!;y;CHLLbT^B7vNB_bLG=V>LPE;G;9z*!U zmDtv|`HZ$334G1i4sB1{w|Dbi`>Eef$TC0n3T@whG4XhlntND)FQfkpsVdE)o|B~Pf2^At|zrUuO>J+WI0&lZ1^&B zU8g_xR5t|{8y(UP$9|pu&5pg2R4>TykcQ&wDK;~_@vfBM)GBkuDd~$H=D;7{u4*O+ zsEhri@?R<9j@qcIC<9TqEp$}o*`k}dM_`{>Vq(L8T>`Bqfq`G<%49@_LRc3m|r?#A+39IZ8g~@Mdkw zGR`Zv&X>ie>6aSkxO>DkE|;%13ahfAA-ry>h2;B+4?%!MI2&6)Nh^nqOe=NpJj^h+ zk$v!3`Z|$T29STbQTMb3l(ceK?)6pDD(XxW6>((%+m{Q0Wn#R16DD__QJLenjp&tg z(aH*>+KOF8wn~@rsPo`xq&(HufAFkcIj6`5duLQC0cak&hNwL1x4Ha>YpJd`qTH!hURQANjBT%eo0}dL&n~d_92`Z_D>vyjlJVo5O_l)k z=_=8&6vx^D^uv@_NGkLo=C<@P(XASV z@VSIixMc6=`tSn6Cm@8+CX4V1IG=&=iLt~K5yGb!!sn=Z%*|h)8=3=O<;)K#x`(pR zJ$ob*+AEqYEw>ZUJakR#+RaHituQH;~w~$M5ymJs=!DdKdqxcqEk8;%EO29vS&gIO_ zF0N8{^DF;9OIn^;4|-N*G^{oHMuzJ2&EJ<6K(2cn+D~6W%)U*U#4H>qM?!w}VMe=I zUL`ih7o$YO3QaFz>6G&|F%h43>p+Xo{@X1zano{`}J3Tn>ND^nS8qf&i{JBNb_ zA}Pf3$`m{_Z{G`>)Yr7duXqO{YvT|{OW#+sF~GDW{0E4MfQv_Ci}b@5xMlF1Z7)RC z=|OGJE1vz^T%3ZJXRUNC-YTgn1&jMq@Z7m+#IZ`a>zdxHYg}1Jwu)V9;y$$ux4*42 z?$lOk@q#_X_*&rwxMjE8|3a8W%A9zQt2kZYP7P+6KVGK@qnci`ry-G=gl+`iFegqU zbCC#k8`4!k3!&gn`>B4>np8q5*IP{({Ssco>(2>Y&i%>5EJJxN2oWK|Ofk#O#AyZj zszw!`l50jME&(nKkfGK?OahGpSG34(XFOVGsU0uA={;`~!VD>T*5m<7dGXaOos4`b z%UfI0G)+v~N(hBT28V;zxjZe>h(%~2?pE(Sk1OEpfu47Hosm5hv1fS$CF=+tTmuW9 z;vHzrmdcq_re=6kY3hbKaQw5i&hpeq6JCNdR42U4DjKraxT?+H+-Mafh{Dl?gW}1P zXW=iVobgmKpvc-R29v>HGF3ZTr$6pFNaN?NW)C(Jfx=m(b(U16%A0X79}|sQ;|0J0 z+2uG;zJsG+0j|zF8!`eoG0yDyog@1_h8J0qg%n=vTpZ7Sqm`9QO=&D9sx?zoOnsR|0auFMVDvcKfioE9<-bO#V3{9Ck_30d5mKWv=`=iEZ zt(Pco{H^t}^z)QY6s#XzdCYrpNfQ%aX>OmZ=93v=#r@Wbldxu;gf(qOafzqT+rN(3 zby8c_tkSGZR^9F7UF6%6qjh#n<;S?Kgz$f!{n@Cvp&ZvSjd#4r9wn_M(>s6sqaXcf z+4XQulS#>nO`IOf2xZv|L8o3d8N(Hp+GU50*VyX+%R9XNnnMltb z;4wqN9EnT}sYxT>%tk=MtulJLi^o`LAmYPpq%*j_ko5UU>3DWO5)SYCR)-$4IwX!q znl$goIyLlFiI z)^-0yhKUrDm#a^d%9s1-(f~w>rlNxzlBwfv81>6gIaUii-?lQ*- zD+QDm{t$dn>LT($=g$;0eBFYER)L1Z+O#Stkj2wFTNM;Yy6F*|fk!SAci>v*qYkwn zBy?owk~EbjVT)8cRhomI#}Bj5@b|pHlO*CQk?(UhT(5Oj0>!tb%j&bqZ&P3(30%bs z7-S#x9%-7+=_R_JThTI+m?)6({hpT><9QLDUU@u+;XjwivhYdxWa54npFicGfbXaw z?wUNrcOBV73`-3$kyb;Lv;ZEWEP}?z8>Wm;UI8j-Z7&M!h}(s_aeYCp^9x$%GA5%| zLAsz8o)x6OM?yimB+|3r;BN-mDuL30lQdeL*)Ta&*)*o6aWT`yvz0zSDIL!~fnuPneG@V7{0ki0K*?|B@=`UNgOfbgs9Y4!8e>J z2R-8UKB~?a;^%qTN#aULV89+(2dEXLt6@qLYJ5dWv{jVE_C?bL=M-HeFhT-t9exFy z?FE}n3!iZ}AZkBJP=%<4(>C!DIfvNT8$Qccxu$N%M^B>L)Jarn-kvDRPP^bFO6&(9 zu1a>q>1uG6GxD$-Y&12AmZl{Wno4+&G$vt>B^~n|(K-VkCZ;H0om9Mut2f>^8mDQU z^J}%vrM0QDv)=niSQq(z8Oi~&Bjvnm0Cz5#%DII@A?u{#d74U-(87D&DxKV002O=7 z0xI^FBv@i&O888?@zz4)5GEqUn5ZCUR0rDCpM0QYhtI|vUFtOBZsRYWWr9FH3NJzy z{IB6foo#v*!(GB~i>4+fuV`8_p{Yb4GH<}L0y&k z)oUk1odt5Wa)1DGvN1mna)A#86R>Qu_0_UT0yQ2Ow3<_Z-Hh-VSHtvh&v4=Zl+$le zz>j#Yd=2oMw=bc!$hjq0LX^D6@dJALTIWK(42rnJt^nHVNm>HPi)_h6x^#dZT0Ozf z;a))z*+c3WEE)r+!jn_t!zn&T&;1Tbo}Wm@NqWx-aaU!2WsV$UqRkF*d9k;7be(!# zG5$KdksXsKx;-y@US*J(o}PT4Luj@t^RtwqCiM$({v~&fWt=4QC$s44B(eSg55(9( zb4XOZA7A}33YmPNhK2lWk*kb3Vyc`Ox(fMZtrWJaw_N_`K@D4>nM4;eK?i@)YH$+Y z`%(CVbpPMN-^bv`ISxP9f9C&B_~}+&tcg32kP?m`F+xDi1Or(Fl)wOphv&2eY(PL+ zKvMY01XT6_%Z82(RmQ=lZ~|-!C%~pqfz1&io~q2bR)0XGE^p14&`womuJuj1%2v)I~=AD9Ukxd1*iwdBr^@F#x(KJLByZ^Os#zX>1chx~8h zL;8c3P}HAGT@)UIDAR~5sp-or%tbTQ=7{?9Bo8nZcogOZ38lhkFfS9w8Sdo4JiM`v z(nO1Tc@EJ<##@-QnMl%}ID4DGZ$z(}z;D}UPl8X_ts+>q3-Fsg`Nbq}AovZB4}THG z4O=KKOHkbDo&RWD|NO|?lTh5J_#nst1P5V{+gGj4i^yIfHHbh#YLCzb*eV62LI@UF zKuSMI+tqoVp2Tn&;l0@^ZJ{(sddehE%p&W=LSW%X6 zkYLu*EM~3BTyE88d#_cafE+8PrQ56ls0EuCm13)o3unw|)G}OTRhIxm>N(AN7R-RC z5Gg)(Xujj)_~G5FRByu%5o>FQxC_IJ1y{MBfFB^ZqcT(#t5)H6iTFB=7gksfr8l44 zB`ROZGghI14>#9$5@BqK^DO#yvuT%u45XA{;?vy4rAHe-Yg9MBCAuOhKbelIn}i>=^9F#F5Erl!dp7sW-%#)*%!2eIa?8aiK;cQqiNNy-1&PTl#C0=M zZ7)~j&j+$5Nx6K4mcdz(S->P{of^?iIs>VYhSG^1I+_$Mz)edaG^k);>RWt@exbHt zq9>hxVP}d`ZM}5yRyC{2Z`V&nFtr*$TnF+Fq*F^R4~{|PV3Q$VD69&=p+j#A2?dQ6 z^@;X1#S*eAe4qDB!OfOj+oH?Ze9HC;Zn*s@_|AJR;=HLycZLhRhnsK=f)<>k$Y?%= z1*-Spy1In80FPSoc@YduhzgJ^U{ewM86jisx;tEeo*l|NC%yPe+R`L&D_}SsiCC&y zK_2<#F)jOG*f++I5Z{?68h{oYYj{^4Ul$PXTKE=Iow3}#5X;kZR_mM*X#)F~O9LW$ zDgRI<# zeWp<%kf`AV*xS?ar=8m=0%fQaPJ?Osbb@rSGtKwkKPSgGIpZHEq4w|G341GU&J;Dt zeO_)Q{zsy|<209I-hT2N=AEOc9ik(dIV=w+xgUUv5S6({flg5;tpCaEOvIS~_mA=^ zRDD&ZXeK~aEn0T_?aP9*6PkxO)Vl{#Wunvqs}%ltVs>%p>DFKqJvd4hI*i07vy=C)zgH8H$m=E#GqTX} zI$XnP;qUQSXeek;_GKF1GS0H0(-rmj;?< zw8qy5AF2;J)NfPh*6=a>`W&6N59kX1A%u_G{A_&v9g_R@XM)FFVV3tg=pjR!u?=<6!I{Dz+kL7RI(U+#@6eYl%f> zePIriu`L)sU+a28>Ka?56XN-QfY{y_DIh8p(={9%xQOcgr`mBSTIsUk&tQrXs2Ara z=-jD@WiF*Y>A=sVVwR0p#Ely#U%mOlA7pm98MNTc`aTAUpi84eeDv1echCLxRkBYo z77kq+>3Ev1RMe+@I+Ih%Y5pDlFy-PY0j7!i)mGieZiz@DS~c}+?|JCUl~=@m^Ks04oz9y2LvEUspQe8*kqP~9Z`gTjn<)#jUO zJmB!qih285zbH2~dU=Lko~4&h)5|Z?%V+52m(}UzS8TYcs{SRwzuJ6eyvmhz;f?Ns z#woiB7$b$;yUsz;*5#MGn(RD|&(g$>RQr)295{L{J6^rK(kRY_M3-B^ovY}jUYk>Y z|3mkDb#iYZePs{cOYe!i^JDW|yxJJ9zmMLtfyd0ttOZGwQtZ<*jJ_8~=63*I=*x%u zGL(;_VefF0b9L>`uhUm`rq+dTg=&`lPrE<=lT0c{lKPnV`w^*2rTHj(UF+hm5W>N! zFB1ds_CtwWt}zkL%-^o!WZ=Y=&zLVe#B~EUbL?By)W1>~LIe{STAO-&@>jN7S;jgy z-WDVF4z?`b)fZOPe^Ul$7RW|ihK$!~lh6=OTe%&7p%MZwOY6$u8s9hE#D!>`o`LI7 zZ^&%ut27_u15h~O?hL;67JWy(P9Y(u3`cc%4OGM_bC&8SGOT1jQ&ne}IdLyZ<$K?q z+|_rPCE|;6!@i7j=A_bYJT*_zTqSgnAo5d$?h@%ie)FK$gqAzU~< zBk{cY5MhW7IdfW7Fi8C_`b~E{!mUJ>h#vzW%NG4LqWy`@S2pLU~;TBcy;|vH&iYg-;)-b24 z{%)0V>v+Z`WTZD}RrMQG#x+*Pq_cKgy|Vrxy{vjuF#iu#?2`rrFlee|nDjll@qZFH$6S|yG~%8V_tQW1L#fG#lv zj8W15i8lf00Xt^Aex(A;K4XyyTl_m|Le*z;UPA$LqFbar`Db)JNQ!2c8e514K(p5V z8KdP-8>7U3s5IZRNvm?wqEmUxX*4Ego%*SKZeBdU+0ish`3tHtzl$qBI%a>t z+(D{NFL@!23IT7kqv0LomvoMO!y$cv+v3UdBl~AEJl%JH{k@an>1pZ7`1yF7!jO~C z$MDIy3Zk%c1){`*1U3X1H{4MFp# zi{kpz6o-)CvV%AA`8z62x5BQhlWOh9(wcu&rGl>H%Wuoezl^NAs;f?fmP)wjOYCQ@eLg@-?>9vb?wM4irzixa&EN zL64ng@EnTT&9_8h1p5+yKu-3=@a(G<0xqCq=sdpTln#V}=EZus$TW>c}7)~-^faDF>qQv<*u!7+3AyiBvO z5!TGykeFtbIhf2mYGsO3Seca{i#9O+)QO_nE2MFa3H=mVD>qRd;$Pxois~m#x9rO@ zb_KA2e`r{a9-9Qy2>nL1sqke@;FTV&>kw|+ekudP#gPr25KOs-nIjdaLTeKnUZeSB z#2%4;^Bwd(Lq{vBR#cnMscx7AfeB$)r9Sc}d&5OLj8tzLRCbS@25~yu_~-EXv0&-8 z)P-rG&xFr^7+kciFm+*3YUr}?`SZcK+X~Yb7Nv!zhR?@?v$hr578copm*bAJn8;1^ zkhPUg!Q3DB{-&V~-9dUy_tC!iO~?-CK-eeKs5u5d#BAYZxzZf_ka1&fs30F-<@I$B zKWHK0Jm}?x6Yp>G`-?5)%=@b+-sf5G;r1EU$PiKO(SH%!9pJAEzY(r{-_S-(9oHj% zQLaN2!7#6z5;A+;J;zW?bs8!tJ340wo0i!p9U6-Mz54=w)N#{mi4(+)4V2L#7!DIE zG|fWYeZE7u;yZv|_l@FGY;CIH>}@?$xArR!gfhrWjX7J-H1ec%zNVEND)2@({Kg1% z8#S1q9WXjtSheu_`6;2G*0o#lMcaihG7hSMMBc-VGj_BtlnDxD5R@w=RE8ri@8O0R zDiG1e%M|`^T_6)e{(AC1C)`uCA%^>&+=RYPYrae*`45vnHQeLEQBSPT_f|^G&fipv zVv==O|G>SCReiq0Ne)E&rY{PSl)lyXRxG2X`K=T}qG6X6C}BCS0ERg>!6ic=!*BWy zQ!s0RFB-g3)JG|V!XzeMLsA4oy*IV?r!pCqOr9V-`CReRqGBntU0xUjcBrhsy+mFe zBzmAU+Krsvj^eg-Go{Yx5M$U~!-6crrVCP3+v1ZpoBNUd1!mJyAWwZXz+og$*I9kc z!);4T^I;ZjD4|mu$mL^+?xE>I_d?5z=79?A2dh!SyUXghb=Su6Fz{~^h1 zqhLNAYrfb_nT2B3rvlNM~qGG7Db+-r*?hiEtLsMv9&G{D-Ej@lgORbYy z3Q4+oV4|^Xo@55^k_=zJs7D$Fxf7kF`&aRjiC`Wkb)NUmzK+>oC4i7zHJD4K5tbn^ z$C@2$1%u9=Lif^rA(T0ZS>nt@0V7bLCM$4@^|L^Jn9RsVl$JXjluyviE~uA?-<@!- z$oOb5U)hQTZ&xk^>)N+JNAaM)rTI`wD7QlH+IPzm0w&fvXzlCpEJY&{g}Gh!176g) z|N2Ow6%>j!SFE|D%G~&otS^w2zuHX`p<5T!97=peB0Eq1%JlKCgl4KQeBmPnhB<($ z*UYFgulPvDVKVYFLyKCP52WB$ea-YL^PEiSq#-;{t@~06c-0f`Pi3nS>6%ndxVamzxUIW|AK)S^C73={qz~xD?z4w?oAOq| zWm7b-Ww$Iek3Dqd<$~~T7qkYCL#I2eGx1!oNMYJ4^W`c<_OQe`LU(+n%G@>nCZqLL zj^~tmK^ax%KYa8($LU6FI^IgfBuxQKz5QS!;b`3!-j_P1+*xJzFJm|D6I{dris$6~^4S|7O6ni_ z=NPwa-Ia1}rc3Lpb?nHW86pwLB50;}Aoy7nd4iuti?a1h8zs<9?ZywwqAx%2)le{V z(Y+5n+!%8HN9xvw(_u1b^s~!0gM~xcxW={IbdAc{ z$#-*fKVb*7_EJ72B`T{cg`Ma&|1>gQ0x$EFxJCfR_pB(W9uTDUFSIGq7Y0x`LDL;a z{Y1_Lt$;)e9u%AowF6EMHHZ`8vgdk6GwQHx^}T46?bNzBKCzSDvk$XE9Lo^P`vI&)f-~E3ta%`K8IJk&+?@f= zB05D^Sc~QZa)3ihJX?&#=jK`@jghh;WO_fT#zmiu%soCb&V{LZ2m2uQ|{-NbOgtg2c&!Z<-R8Nd&cZdX=9= z`i)BZOO4SwWBW0A@buT&_CsSJ99V*}JRsYrn2&O@ZQ zPbA(8lbDcK$W@_2KK}bEji)RM$WaaWUxpenK%Bv;Ak=R0eG?BYyRQ>06xp4_Pw*O$ zV$fL~Z>l$+IilE?ardY4dAy*i`~FCWozmDY)|;&qi+2i#g{YxA+ToDa_!sSPj;9o! zQ}5h~cjk9LkZM9lMLVRj{G+z;Zt~B3gnR@EN_sCZIQHbINlI|}utW7PFWMm^mVb#E zk9HhLyoh!TBvQef>jP1$%;PSo#~lGWz3>NziA8eeTbEzg~@GZNZ0 z)n-J!`U%Z3n#2rMC-iX4wJP%^l_^E6R`1{~VdtV9k|F=1isF^jXv9HDK8VVTs=9Llq_fWJk3=wlh=C>vrzEK*!G4@&VD0^`t-~Np~dEC%ZE_Mn0 z$aF#?jn~|>gB;mZ-Hbk|Vjtef=0i}m4IHOij{)J!pMi>3ZSJd1+2R2y}YU0@w2Dwu1@}!--G<06gVk( zLDub17kvUX6&5pKad?rgVW2MIlQp{KR1yTY2+1V>qFdyAm468d37*4Lro4?cNJM3; zCDp2LoP)e&hqgJL z9O4PT%JKWSbX9O6JRbhJw6+tJ4WCKVIxgiK;WIX^{V;FDCgq1OQ=Z0=jA`vMpOxl; zUvk|ClW+EtfL-P4@059|yhKi5mLHJCbK!8kF-u5}loMa47H74184G6dm)0Lvug19D zBn)f#@8qcr7h~;$W(g;Z3i&8{UNl!}o_~e*OqRgB{a033#EF0VEmjMW$7L~=C#qId z>S{gADRe@5t%@q=S4dQe5~)^3bO+UZMz<_T;G5`{TM{YNJuzm~pO8$wOEOM;l^4iF zn2(<(=0mmIMRyI=15qyQ5>Qar|Ap%M9~}wQLAkz{L{fXBFdZM&N{=CtF=1JwiV9KF z-}*MN6K_3(s1~DTrg)K{`QQwBV@nB6TO@cgn5m{W_W4#gI&7on5LAnsQ9^-x`_1Q7aP4n%GTB=Sa40 za-&Y*caaZAI%Fv7SpLIn)=)aeH>cufWFS~B%eeWsI@u8Woy&hEUKXM2ufHpmUCG?U z{lEBQ2dm1&BPLr5D)tuVHZ~g0Rs$Xh=%^OjwTYDY;p(UbU=%3b#~ULoJ<~dG-->_n ztpLLm4Ax8auY}gBHr@NV_LO~_EeZ3V`(^jOAe6qi62SjWoj$KlZ%otnvGKYt)J|(4qjNg(GeyNmLeG_@bX^G5!mFdKd!z5d?LMgO?&qD=u3qI-&WPafr?Z`vKrh2HpcBhi^p69V(S<8)(y=RT{i+JH5mvK- zuQrM&#{4?h2s+*z5_xixCvu)AN3mEFv$2!8Nbb^)?~m}w`Ii2f#n=m|UQY$1ITvVc zx=BImr{o2}B6@qw8M9H$>_&o~$2A1ee&v?0%AD^5rtzSLLxhy@ZnZt17eyLlyX*>f zgkf*xAh%rG#5)Bxjn(y)=J(~uf%Jy((Axi<$_74pw#(KGcP~Y4#PA^j8!|c+zQw~- zhct~!hoLq!hX8j3!U%H3KZK$#8gwz*TpYApGXHTfZ1JrHqSigCv-*AKGFJWZdXl0Em2sWvXU@bO~xNbgQk zd|S!fn}PJLzTbG?SeNB_x#xr}zig~2{dvYB9wOR*Av1Ns^sZPTF6zXAvH3>1Ol^+r zRne}&$9PHwbe72AS~gvjskOIDZKf?pm|?k+`~AgZ1d)}e>Pj;!8!cv-ZZ`zEDj|66 z7kC{P;s}mOP0Kdl`$+Y-1};J&1_uXFlf!lRHi$RfZXV&Tkk+Mii*O}qor+`TUR96F z!M!T+mq2Ws{|aS9{Igcq^s;|N>IUWH^p0Ynw^OcVc@JBb$EqXt!^uvja;<~MSP<`k zI5I+xf~@x_6%|gkM(E5sxwQh8@QBn>fv=Nq#f*>G6*>UY7XKZu{wGS0syn#9Qt+LKz_ zA?fXQnGTB%(Aq`mq%z(q1E?^oxw;ajOrGQ)YX?&%L!I|#owoyqBc<{4gr6&sG0Q-- zu5uL{)t$q(r__Y-@*1`JJpO zos$XiB>S}|Str>sRY&?|)uBqCs(iuui#;_Ix*QdF2(k$E1Zxhp6uLCtR9|KO>WgZW zvbHZUD_l4k9XaeSplS|3yAfliR7ci3Q0R%+pM(q&rs6eXg3HBu@D8*>3RA%(bvw4D z7J|vocu=4#8x9t-XBMGznugC?bb~R1T&Ao5hqX?W&52Pe<{@2yY2NldvSH~&vc3QXcL9yYD+1ZQ=T&*smUBj zORDi^2$_g7uSFIHEKPXGb5W(-JevV}`x{q@4cKtw@(N>f9&b=r1~JDkIq+;c+lNtx zz7T#_3!k&CyCFXN2SfjcD-J3X-pHyy)R>d3*bBdAF8#ess8q`dN3*ct)!K_74;his z2OF)}rZSv&J8Gk%*aIA?kM^Pph%?2$LCACh-tIlGv$FY>qS$zSz?EdiiXnKb;+Acy!JDX`Y7C;y>p7TBWZx!RH?Eea3Gx3~LibtvOH+u@dOCQQ*2%g4 zaH_zxXiX>W8(~hwJ|^5358e=2j+QljT%t;$+C9l?T&Z?@qfJ@iy%}h(WAgnvmh7lZ z*rwp~9j3g@EI1ft4#Xacz{{J{04H^+$wp!_btM(!+|fHkD2Ae@zFTBslkPSJ2CVf3 zbgg(|&&vXdurbB>uB?NxS!8Rrx0JRr>M7hbi#Jggt<6a(=DRw>JE(2px`_F{gSAqd zdXmjkz=no;%`x#gf7~0@{G(8}ct>b|R(hqi{n(mUW?4<`;lDn$t>bw4YXf1&kgA z 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%0DmX&Uya?MaqtiKkM@uEPxMdq&-Bmr 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingtk.cp37-win32.pyd b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_imagingtk.cp37-win32.pyd new file mode 100644 index 0000000000000000000000000000000000000000..a6fbe3a94aeee601a49a13f0a9a8a3e2a0c8f412 GIT binary patch literal 12800 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 NT7do4^VeX3{{ml9q6q*1 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_tkinter_finder.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_tkinter_finder.py new file mode 100644 index 00000000..987d9621 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_tkinter_finder.py @@ -0,0 +1,20 @@ +""" 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 + +if hasattr(sys, 'pypy_find_executable'): + # Tested with packages at https://bitbucket.org/pypy/pypy/downloads. + # PyPies 1.6, 2.0 do not have tkinter built in. PyPy3-2.3.1 gives an + # OSError trying to import tkinter. Otherwise: + try: # PyPy 5.1, 4.0.0, 2.6.1, 2.6.0 + TKINTER_LIB = tk.tklib_cffi.__file__ + except AttributeError: + # PyPy3 2.4, 2.1-beta1; PyPy 2.5.1, 2.5.0, 2.4.0, 2.3, 2.2, 2.1 + TKINTER_LIB = tk.tkffi.verifier.modulefilename +else: + TKINTER_LIB = tk.__file__ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_util.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_util.py new file mode 100644 index 00000000..cb307050 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_util.py @@ -0,0 +1,37 @@ +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 + + def isPath(f): + return isinstance(f, (bytes, str, Path)) + else: + def isPath(f): + return isinstance(f, (bytes, str)) +else: + def isStringType(t): + return isinstance(t, basestring) # noqa: F821 + + def isPath(f): + return isinstance(f, basestring) # noqa: F821 + + +# Checks if an object is a string, and that it points to a directory. +def isDirectory(f): + return isPath(f) and os.path.isdir(f) + + +class deferred_error(object): + def __init__(self, ex): + self.ex = ex + + def __getattr__(self, elt): + raise self.ex diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_version.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_version.py new file mode 100644 index 00000000..0467cf18 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_version.py @@ -0,0 +1,2 @@ +# Master version for Pillow +__version__ = '6.0.0' diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_webp.cp37-win32.pyd b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/_webp.cp37-win32.pyd new file mode 100644 index 0000000000000000000000000000000000000000..320855c6e1db65c09b0dd448fe4ce802a6b1b65a GIT binary patch literal 439296 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 z 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%0A!Lj_# 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%0ARO>9N|5b;|&9 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

|uZ}vKn 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 literal 0 HcmV?d00001 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/features.py b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/features.py new file mode 100644 index 00000000..6530038b --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/PIL/features.py @@ -0,0 +1,86 @@ +from . import Image + +modules = { + "pil": "PIL._imaging", + "tkinter": "PIL._tkinter_finder", + "freetype2": "PIL._imagingft", + "littlecms2": "PIL._imagingcms", + "webp": "PIL._webp", +} + + +def check_module(feature): + if not (feature in modules): + raise ValueError("Unknown module %s" % feature) + + module = modules[feature] + + try: + __import__(module) + return True + except ImportError: + return False + + +def get_supported_modules(): + return [f for f in modules if check_module(f)] + + +codecs = { + "jpg": "jpeg", + "jpg_2000": "jpeg2k", + "zlib": "zip", + "libtiff": "libtiff" +} + + +def check_codec(feature): + if feature not in codecs: + raise ValueError("Unknown codec %s" % feature) + + codec = codecs[feature] + + return codec + "_encoder" in dir(Image.core) + + +def get_supported_codecs(): + return [f for f in codecs if check_codec(f)] + + +features = { + "webp_anim": ("PIL._webp", 'HAVE_WEBPANIM'), + "webp_mux": ("PIL._webp", 'HAVE_WEBPMUX'), + "transp_webp": ("PIL._webp", "HAVE_TRANSPARENCY"), + "raqm": ("PIL._imagingft", "HAVE_RAQM"), + "libjpeg_turbo": ("PIL._imaging", "HAVE_LIBJPEGTURBO"), +} + + +def check_feature(feature): + if feature not in features: + raise ValueError("Unknown feature %s" % feature) + + module, flag = features[feature] + + try: + imported_module = __import__(module, fromlist=['PIL']) + return getattr(imported_module, flag) + except ImportError: + return None + + +def get_supported_features(): + return [f for f in features if check_feature(f)] + + +def check(feature): + return (feature in modules and check_module(feature) or + feature in codecs and check_codec(feature) or + feature in features and check_feature(feature)) + + +def get_supported(): + ret = get_supported_modules() + ret.extend(get_supported_features()) + ret.extend(get_supported_codecs()) + return ret diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/INSTALLER b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/INSTALLER new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/LICENSE b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/LICENSE new file mode 100644 index 00000000..c106eeb1 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/LICENSE @@ -0,0 +1,16 @@ +The Python Imaging Library (PIL) is + + Copyright © 1997-2011 by Secret Labs AB + Copyright © 1995-2011 by Fredrik Lundh + +Pillow is the friendly PIL fork. It is + + Copyright © 2010-2019 by Alex Clark and contributors + +Like PIL, Pillow is licensed under the open source PIL Software License: + +By obtaining, using, and/or copying this software and/or its associated documentation, you agree that you have read, understood, and will comply with the following terms and conditions: + +Permission to use, copy, modify, and distribute this software and its associated documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Secret Labs AB or the author not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. + +SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/METADATA b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/METADATA new file mode 100644 index 00000000..270210d5 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/METADATA @@ -0,0 +1,116 @@ +Metadata-Version: 2.1 +Name: Pillow +Version: 6.0.0 +Summary: Python Imaging Library (Fork) +Home-page: http://python-pillow.org +Author: Alex Clark (Fork Author) +Author-email: aclark@aclark.net +License: UNKNOWN +Keywords: Imaging +Platform: UNKNOWN +Classifier: Development Status :: 6 - Mature +Classifier: License :: OSI Approved :: Historical Permission Notice and Disclaimer (HPND) +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Multimedia :: Graphics +Classifier: Topic :: Multimedia :: Graphics :: Capture :: Digital Camera +Classifier: Topic :: Multimedia :: Graphics :: Capture :: Screen Capture +Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion +Classifier: Topic :: Multimedia :: Graphics :: Viewers +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.* + +Pillow +====== + +Python Imaging Library (Fork) +----------------------------- + +Pillow is the friendly PIL fork by `Alex Clark and Contributors `_. PIL is the Python Imaging Library by Fredrik Lundh and Contributors. + +.. start-badges + +.. list-table:: + :stub-columns: 1 + + * - docs + - |docs| + * - tests + - |linux| |macos| |windows| |coverage| + * - package + - |zenodo| |tidelift| |version| |downloads| + * - social + - |gitter| |twitter| + +.. end-badges + +More Information +---------------- + +- `Documentation `_ + + - `Installation `_ + - `Handbook `_ + +- `Contribute `_ + + - `Issues `_ + - `Pull requests `_ + +- `Changelog `_ + + - `Pre-fork `_ + +Report a Vulnerability +---------------------- + +To report a security vulnerability, please follow the procedure described in the `Tidelift security policy `_. + +.. |docs| image:: https://readthedocs.org/projects/pillow/badge/?version=latest + :target: https://pillow.readthedocs.io/?badge=latest + :alt: Documentation Status + +.. |linux| image:: https://img.shields.io/travis/python-pillow/Pillow/master.svg?label=Linux%20build + :target: https://travis-ci.org/python-pillow/Pillow + :alt: Travis CI build status (Linux) + +.. |macos| image:: https://img.shields.io/travis/python-pillow/pillow-wheels/master.svg?label=macOS%20build + :target: https://travis-ci.org/python-pillow/pillow-wheels + :alt: Travis CI build status (macOS) + +.. |windows| image:: https://img.shields.io/appveyor/ci/python-pillow/Pillow/master.svg?label=Windows%20build + :target: https://ci.appveyor.com/project/python-pillow/Pillow + :alt: AppVeyor CI build status (Windows) + +.. |coverage| image:: https://codecov.io/gh/python-pillow/Pillow/branch/master/graph/badge.svg + :target: https://codecov.io/gh/python-pillow/Pillow + :alt: Code coverage + +.. |zenodo| image:: https://zenodo.org/badge/17549/python-pillow/Pillow.svg + :target: https://zenodo.org/badge/latestdoi/17549/python-pillow/Pillow + +.. |tidelift| image:: https://tidelift.com/badges/github/python-pillow/Pillow?style=flat + :target: https://tidelift.com/subscription/pkg/pypi-pillow?utm_source=pypi-pillow&utm_medium=referral&utm_campaign=readme + +.. |version| image:: https://img.shields.io/pypi/v/pillow.svg + :target: https://pypi.org/project/Pillow/ + :alt: Latest PyPI version + +.. |downloads| image:: https://img.shields.io/pypi/dm/pillow.svg + :target: https://pypi.org/project/Pillow/ + :alt: Number of PyPI downloads + +.. |gitter| image:: https://badges.gitter.im/python-pillow/Pillow.svg + :target: https://gitter.im/python-pillow/Pillow?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge + :alt: Join the chat at https://gitter.im/python-pillow/Pillow + +.. |twitter| image:: https://img.shields.io/badge/tweet-on%20Twitter-00aced.svg + :target: https://twitter.com/PythonPillow + :alt: Follow on https://twitter.com/PythonPillow + + diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/RECORD b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/RECORD new file mode 100644 index 00000000..b502484c --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/RECORD @@ -0,0 +1,196 @@ +PIL/BdfFontFile.py,sha256=lap8i0-KXX9TGbBfFkyEm3YMONHAKoD3ilhtfwl8xXo,3000 +PIL/BlpImagePlugin.py,sha256=8Qia6DFeu-tZn1VYF591-IGXJJdvgIYoLBpniKD4pSY,14416 +PIL/BmpImagePlugin.py,sha256=Vhm9N2V0HJJHLlZM5J_S2Z5C3JN8yJesKZQj3aC_cS8,14769 +PIL/BufrStubImagePlugin.py,sha256=gW5inS0a7X7HW2sv5a5r94P2v9nRVUSv2cdEgKo8VWI,1519 +PIL/ContainerIO.py,sha256=gnFEK1J6heqoo3R1-arEuDmD4NKpMPEU0g-G7ynvnMU,2730 +PIL/CurImagePlugin.py,sha256=EWodNLdL8F3shpWJ8-yVPPne_0w0d2AwKcxLuhm_woE,1837 +PIL/DcxImagePlugin.py,sha256=xawGYiRZBCogsv5pgxSer69eiYv0bGCIREtjyGa5IpM,2330 +PIL/DdsImagePlugin.py,sha256=yn_IKE8k16rudaEmeDQl_j2uEdFadIrGkfU-blcFJyw,5602 +PIL/EpsImagePlugin.py,sha256=2rHeGn2JuM19VyvlgRtIDGKmpR081XQOkwW-wWPPV7Q,12671 +PIL/ExifTags.py,sha256=-Auwh-hnhpOuBCo6SW5hEmToJYmbjat13TTG4OnF9Q4,8837 +PIL/FitsStubImagePlugin.py,sha256=rbIznhaRU63PAFVjp_czCG0js9kw7Uq6PDJ4TuQY_3E,1623 +PIL/FliImagePlugin.py,sha256=vcsNpqjIXjaEGEJUWGycwaHQ7DeMIMMQcFDhkJj7Wo0,4493 +PIL/FontFile.py,sha256=OnNeLij7e9AlDVRcJ69r-OMgNNiQ4gRVdXt9WBef4D8,2808 +PIL/FpxImagePlugin.py,sha256=1gqVryjXdUFHtpv-kqg5j68TEbZyic696rzqE8iHGiQ,6382 +PIL/FtexImagePlugin.py,sha256=fNyhDBvIEtNyqs1LJSc4XDKL_S9tDf7Xe0yCsgeJvf4,3322 +PIL/GbrImagePlugin.py,sha256=gnf5QYRPqVSPGshEg78Q_Bls0muXYwiw7YZKNaqg_Xg,2754 +PIL/GdImageFile.py,sha256=lzZc39PziWORZAV3GQ8d6Defn1-AuHLbCFj4IUMj3eY,2402 +PIL/GifImagePlugin.py,sha256=NUOi6JLiyXNUY9GoKgUSf9jawgZmC5pxgcITxztW0Eo,28243 +PIL/GimpGradientFile.py,sha256=zs7-vHAdVCInRQRDx2K5fBpofMlRR0GRKxGVmcUGMag,3345 +PIL/GimpPaletteFile.py,sha256=5YJ0tl3SAzlnuEBaMGHHCgg8ZVG4hezQzMEqdhfy8sg,1275 +PIL/GribStubImagePlugin.py,sha256=Ct8GRHzqlcD1uI093lsVirimGj8zSnJjs5QgBBGeFZA,1542 +PIL/Hdf5StubImagePlugin.py,sha256=7-DvTj34u1bRFGZOMsgtd7QadvhkbYgNzKSc2vx6PkM,1516 +PIL/IcnsImagePlugin.py,sha256=BH8_6SgTXEySuhoJ7E25o3G4OgCypzU1UTsy_0-0Q0c,11853 +PIL/IcoImagePlugin.py,sha256=hFaRHVBlUou-6PO6jD5Krde2LtrO0NKlqC8F6_eQMG8,9767 +PIL/ImImagePlugin.py,sha256=jCKfKUs0XQFu484Sts6WhjENson2kLBS17BjaTtkYDk,10463 +PIL/Image.py,sha256=3658OHLaDWeyefdjP5g2d2-dot-S5fOxnICFY7hiC4o,106716 +PIL/ImageChops.py,sha256=N7-3nfosVcIgffGirCSCZwWg0SWgwh8MdsKDpfvMch8,6782 +PIL/ImageCms.py,sha256=xdyMu7nbr_jdkze7L6dJgM_6N0zffSnNTWTF6PDrTtA,35956 +PIL/ImageColor.py,sha256=E8yGQhftPb4ab02SOvkp6rQizFTxsKtsTVKp-t6ocbs,8749 +PIL/ImageDraw.py,sha256=sdyiz1jyMBn5F39q2SPmVIl-XClNRksdX9rYJmCgJW8,16919 +PIL/ImageDraw2.py,sha256=kpFXgNEmf2Yn16zy9TpU4_z7ekN5sEhlKmmTXwnC3eg,3127 +PIL/ImageEnhance.py,sha256=wDIaAs_zjcE86416xlCCW6WmxbI1ua6iOjYOwm1-tkE,3208 +PIL/ImageFile.py,sha256=mPQOyHH4fF7_yR1uQHKzcR74h7BND-L6nGf9AOoPfcs,20767 +PIL/ImageFilter.py,sha256=tXBIi8BazNT-jXY83wMdyI74y2c3RBixZ_SXQm3rjpQ,15364 +PIL/ImageFont.py,sha256=g0hbMSSSwbd7uyrVbgWdiAvlmKsbcPANQlzqHG53uSw,21658 +PIL/ImageGrab.py,sha256=SrN9aiKf_0hfeGlJ4dKNQkMDZD48mCFl5WC75Asjjsg,2166 +PIL/ImageMath.py,sha256=t05lY-prCxP7_zlIi_H1DaLEJUiTF7yWo1Y333zod7A,7448 +PIL/ImageMode.py,sha256=7FRP65DI8LZejbFWUtefXn4b5ZnQinvlYwAbeP6SPBk,1597 +PIL/ImageMorph.py,sha256=MrDftUNiY7lSGDu5AGdrOpZsne3x9pFeiddg_KtpFyE,8271 +PIL/ImageOps.py,sha256=tjTY_9F3-HVw6yVNWyTv2rN4_shImePA7YdL_6b-KbA,17890 +PIL/ImagePalette.py,sha256=IDL9FgTwlBSfUdo_8BSpS9nHYGFrcNzgqJYqdA4Kyys,6319 +PIL/ImagePath.py,sha256=IPUmk_1SdD5NjpZWuwDEDMrRIq_izWrhiczq7zFgLl8,337 +PIL/ImageQt.py,sha256=Y1o181lNdzCG5xgNkge1QfIHBxw969AZSm5TCm-w6eU,6877 +PIL/ImageSequence.py,sha256=fp7ziB8L6zhEXz8bTrU5sYCdGnZ7OzADEOsvCd37Vc4,1240 +PIL/ImageShow.py,sha256=DCHHjLnnsJ3mUUOR-bR7POL2pku5DDsUIsOtlijZis4,6237 +PIL/ImageStat.py,sha256=V-7DCFAmD9agnXRXmNo4wYhr2jrBSVxDrItxM70IPss,3894 +PIL/ImageTk.py,sha256=_c762TFCB54pHwdbjbx-7aYAH79o15E7s_eTfRNwEkQ,9440 +PIL/ImageTransform.py,sha256=3tSnRn747qaNC-8BaOC0T1CyeMJoaKUzpLEwCPKyHFs,2839 +PIL/ImageWin.py,sha256=cH6bBrWyk42copvCfPILYhpTkdngxA1d8v1S7R9ol-Y,7217 +PIL/ImtImagePlugin.py,sha256=zX-lQbtBB3rjeM3eOEX_pSVS6FM0KY-LP8kUL32vZus,2342 +PIL/IptcImagePlugin.py,sha256=hqnGdZkxplnK-efcNfyityCR-6oAPU9JKIpSDYM90M8,5809 +PIL/Jpeg2KImagePlugin.py,sha256=UQ4IEDt1f9ID6vT5NzNeCCQlfprwwUYPctCNSvW4KdI,8370 +PIL/JpegImagePlugin.py,sha256=TFd06RHafll9s6diiKp3n1oj23oVyRTLmfj2N6i3PyY,28109 +PIL/JpegPresets.py,sha256=eA89Gs-xD8uKIqf2TZM5Nu2hhlVgW5jlIC1ffGEPiYM,12413 +PIL/McIdasImagePlugin.py,sha256=iZlwdesgJsUwXmz-ADKOD2LmUCbcuZ6RDx7FpNXAn38,1869 +PIL/MicImagePlugin.py,sha256=huqvoOSfcG-wgb2mONPJA7uQB0EyySbkpQE9jILan0Q,2764 +PIL/MpegImagePlugin.py,sha256=Vpxirhf2DzzzhrzooMPhn6zAcVCj0FMeJOgPTgf-U1U,1932 +PIL/MpoImagePlugin.py,sha256=V4vn_jEzZQ23Q8TwNMHxFiqUEwXC71MwUZGf3kRtYzw,4479 +PIL/MspImagePlugin.py,sha256=4u5O8BDZubg5SG3FCFuWcJsBa_ywIU_u7EfgAlLuuoo,5634 +PIL/PSDraw.py,sha256=hQuLYYkxbTOL6fw4eomK_Rop0U0JWZIlljBwtpj_jes,6870 +PIL/PaletteFile.py,sha256=xnAUCKhUxSIeqqn--4DFPRaNtVxeqoNvYgdzq_7kidQ,1110 +PIL/PalmImagePlugin.py,sha256=s5rH95Z4v7tiV0TdQrJ-xtj8XlmxQDjNOKFg7rqQYCg,9264 +PIL/PcdImagePlugin.py,sha256=JkLyaleWsfkGK1ZCHQh9i2gFsxmAnmCQb90kkHLpGLw,1621 +PIL/PcfFontFile.py,sha256=1rgihlxmUEhiCKdHGzVDDU2zmwPaAq_4jQEPEsznNZw,6157 +PIL/PcxImagePlugin.py,sha256=wan7TZ-ZvA3jzC2HsMSNH-NLNwbmKs3tlhGhxDWydeg,5402 +PIL/PdfImagePlugin.py,sha256=gy1ULSE8ZsfFqn9KF02A36_zKLkc-8mb2OYsP4WiB8I,8392 +PIL/PdfParser.py,sha256=K8DWvEras3Fdk-Mm-hHi6lJ5ZYQO28Xua9Xcj74Zs7c,35533 +PIL/PixarImagePlugin.py,sha256=_itiI5gxmxQlT6SiXnEVUUa5jEAb_QeK2ZZWA2f8KoQ,1775 +PIL/PngImagePlugin.py,sha256=cBJHXSg8TC9UFMuUi5zQmy4w8cIVzYMKvf8zLXxOXWs,27980 +PIL/PpmImagePlugin.py,sha256=5I5ClvRmM1yWjju1erMtSdtPvjRtv2zKNBRNfrmrgmI,4656 +PIL/PsdImagePlugin.py,sha256=UT1fswsbJsxA1rioqOu9t3zg7mUr2W4Xb5_I7RBNCQ0,7523 +PIL/PyAccess.py,sha256=s4VQKQt5r2Ksn-YbGIi4ttaabT_lmxNgWRseZ6yz5S8,9455 +PIL/SgiImagePlugin.py,sha256=VGu0vZN5dowztMwmPuh-sPLl7EXIdtEGL4gRwlDmgxA,6276 +PIL/SpiderImagePlugin.py,sha256=OPpSleKJDIjAI0DBXyceDjmj_nbH2jzxFyLKYs53_4k,9505 +PIL/SunImagePlugin.py,sha256=chn07IBP4ZXa_S0EWpJ4EyjfaPH5kVCji1HIzdw7zN8,4467 +PIL/TarIO.py,sha256=pgn8dJMZDD3Tpdd9g5-SMyKTMWHiXb-1aaUX_BbK9Pc,1559 +PIL/TgaImagePlugin.py,sha256=sY-Dlk6p2omSt19Uu7ATOvKjNJ_9bl9vo69bs6JRczM,6176 +PIL/TiffImagePlugin.py,sha256=Y1oJFfyL8DByidfdWYcxhS_UFsCymUpUdTsPbT4Nij0,66342 +PIL/TiffTags.py,sha256=JSd57jE9DNGzBsHbzGqVqh0Wc8WjiJ8eWSF7UHfdEoI,14779 +PIL/WalImageFile.py,sha256=rKggtH36cF0a7NaiwrxfWS1Lq2zSoI9bJfGvW5LIax8,5558 +PIL/WebPImagePlugin.py,sha256=1PslAp1enCHH53Y3EKruZ7LC6cLs7Su_1AuY81sxnFU,11021 +PIL/WmfImagePlugin.py,sha256=X_Hxl29I9MDAvU3J4FIeEqyyDkxm_W9K8tZ97f-T6Ew,4361 +PIL/XVThumbImagePlugin.py,sha256=i3M38ELu6rsnrkQvLpPy5JjEeZ9B6K0HUIRqkMspS24,2060 +PIL/XbmImagePlugin.py,sha256=ZYlpPjDWHPySNTrIfUwRtZ_Dw5o5HNG5tDJb95L_60s,2605 +PIL/XpmImagePlugin.py,sha256=8C0Z9vsxUOxXsr3bm8vf2Ivm6_pyWh1TUMc8zRS35t8,3203 +PIL/__init__.py,sha256=e3ue6eWIYj6JOA8jE5ArhDDAgg9ve9FJc0LTd5aYU28,2043 +PIL/__pycache__/BdfFontFile.cpython-37.pyc,, +PIL/__pycache__/BlpImagePlugin.cpython-37.pyc,, +PIL/__pycache__/BmpImagePlugin.cpython-37.pyc,, +PIL/__pycache__/BufrStubImagePlugin.cpython-37.pyc,, +PIL/__pycache__/ContainerIO.cpython-37.pyc,, +PIL/__pycache__/CurImagePlugin.cpython-37.pyc,, +PIL/__pycache__/DcxImagePlugin.cpython-37.pyc,, +PIL/__pycache__/DdsImagePlugin.cpython-37.pyc,, +PIL/__pycache__/EpsImagePlugin.cpython-37.pyc,, +PIL/__pycache__/ExifTags.cpython-37.pyc,, +PIL/__pycache__/FitsStubImagePlugin.cpython-37.pyc,, +PIL/__pycache__/FliImagePlugin.cpython-37.pyc,, +PIL/__pycache__/FontFile.cpython-37.pyc,, +PIL/__pycache__/FpxImagePlugin.cpython-37.pyc,, +PIL/__pycache__/FtexImagePlugin.cpython-37.pyc,, +PIL/__pycache__/GbrImagePlugin.cpython-37.pyc,, +PIL/__pycache__/GdImageFile.cpython-37.pyc,, +PIL/__pycache__/GifImagePlugin.cpython-37.pyc,, +PIL/__pycache__/GimpGradientFile.cpython-37.pyc,, +PIL/__pycache__/GimpPaletteFile.cpython-37.pyc,, +PIL/__pycache__/GribStubImagePlugin.cpython-37.pyc,, +PIL/__pycache__/Hdf5StubImagePlugin.cpython-37.pyc,, +PIL/__pycache__/IcnsImagePlugin.cpython-37.pyc,, +PIL/__pycache__/IcoImagePlugin.cpython-37.pyc,, +PIL/__pycache__/ImImagePlugin.cpython-37.pyc,, +PIL/__pycache__/Image.cpython-37.pyc,, +PIL/__pycache__/ImageChops.cpython-37.pyc,, +PIL/__pycache__/ImageCms.cpython-37.pyc,, +PIL/__pycache__/ImageColor.cpython-37.pyc,, +PIL/__pycache__/ImageDraw.cpython-37.pyc,, +PIL/__pycache__/ImageDraw2.cpython-37.pyc,, +PIL/__pycache__/ImageEnhance.cpython-37.pyc,, +PIL/__pycache__/ImageFile.cpython-37.pyc,, +PIL/__pycache__/ImageFilter.cpython-37.pyc,, +PIL/__pycache__/ImageFont.cpython-37.pyc,, +PIL/__pycache__/ImageGrab.cpython-37.pyc,, +PIL/__pycache__/ImageMath.cpython-37.pyc,, +PIL/__pycache__/ImageMode.cpython-37.pyc,, +PIL/__pycache__/ImageMorph.cpython-37.pyc,, +PIL/__pycache__/ImageOps.cpython-37.pyc,, +PIL/__pycache__/ImagePalette.cpython-37.pyc,, +PIL/__pycache__/ImagePath.cpython-37.pyc,, +PIL/__pycache__/ImageQt.cpython-37.pyc,, +PIL/__pycache__/ImageSequence.cpython-37.pyc,, +PIL/__pycache__/ImageShow.cpython-37.pyc,, +PIL/__pycache__/ImageStat.cpython-37.pyc,, +PIL/__pycache__/ImageTk.cpython-37.pyc,, +PIL/__pycache__/ImageTransform.cpython-37.pyc,, +PIL/__pycache__/ImageWin.cpython-37.pyc,, +PIL/__pycache__/ImtImagePlugin.cpython-37.pyc,, +PIL/__pycache__/IptcImagePlugin.cpython-37.pyc,, +PIL/__pycache__/Jpeg2KImagePlugin.cpython-37.pyc,, +PIL/__pycache__/JpegImagePlugin.cpython-37.pyc,, +PIL/__pycache__/JpegPresets.cpython-37.pyc,, +PIL/__pycache__/McIdasImagePlugin.cpython-37.pyc,, +PIL/__pycache__/MicImagePlugin.cpython-37.pyc,, +PIL/__pycache__/MpegImagePlugin.cpython-37.pyc,, +PIL/__pycache__/MpoImagePlugin.cpython-37.pyc,, +PIL/__pycache__/MspImagePlugin.cpython-37.pyc,, +PIL/__pycache__/PSDraw.cpython-37.pyc,, +PIL/__pycache__/PaletteFile.cpython-37.pyc,, +PIL/__pycache__/PalmImagePlugin.cpython-37.pyc,, +PIL/__pycache__/PcdImagePlugin.cpython-37.pyc,, +PIL/__pycache__/PcfFontFile.cpython-37.pyc,, +PIL/__pycache__/PcxImagePlugin.cpython-37.pyc,, +PIL/__pycache__/PdfImagePlugin.cpython-37.pyc,, +PIL/__pycache__/PdfParser.cpython-37.pyc,, +PIL/__pycache__/PixarImagePlugin.cpython-37.pyc,, +PIL/__pycache__/PngImagePlugin.cpython-37.pyc,, +PIL/__pycache__/PpmImagePlugin.cpython-37.pyc,, +PIL/__pycache__/PsdImagePlugin.cpython-37.pyc,, +PIL/__pycache__/PyAccess.cpython-37.pyc,, +PIL/__pycache__/SgiImagePlugin.cpython-37.pyc,, +PIL/__pycache__/SpiderImagePlugin.cpython-37.pyc,, +PIL/__pycache__/SunImagePlugin.cpython-37.pyc,, +PIL/__pycache__/TarIO.cpython-37.pyc,, +PIL/__pycache__/TgaImagePlugin.cpython-37.pyc,, +PIL/__pycache__/TiffImagePlugin.cpython-37.pyc,, +PIL/__pycache__/TiffTags.cpython-37.pyc,, +PIL/__pycache__/WalImageFile.cpython-37.pyc,, +PIL/__pycache__/WebPImagePlugin.cpython-37.pyc,, +PIL/__pycache__/WmfImagePlugin.cpython-37.pyc,, +PIL/__pycache__/XVThumbImagePlugin.cpython-37.pyc,, +PIL/__pycache__/XbmImagePlugin.cpython-37.pyc,, +PIL/__pycache__/XpmImagePlugin.cpython-37.pyc,, +PIL/__pycache__/__init__.cpython-37.pyc,, +PIL/__pycache__/_binary.cpython-37.pyc,, +PIL/__pycache__/_tkinter_finder.cpython-37.pyc,, +PIL/__pycache__/_util.cpython-37.pyc,, +PIL/__pycache__/_version.cpython-37.pyc,, +PIL/__pycache__/features.cpython-37.pyc,, +PIL/_binary.py,sha256=Wy_0dJYiAzbkg7rKBi2e9os-UsPqcgPFMaGUW1x7vNE,1822 +PIL/_imaging.cp37-win32.pyd,sha256=zj4470ODkCzpZH8MhA8PzMyecttYGREs-sm-N2_OPPQ,2152448 +PIL/_imagingcms.cp37-win32.pyd,sha256=RQz_rMfjjIHYsJY69v2dVHdCzXYhi6ck87rWNeO7cDg,190976 +PIL/_imagingft.cp37-win32.pyd,sha256=okvlQJVellQHgfSxPxXzllgaZDpbtXZ9Of4kb-YDK7Y,494592 +PIL/_imagingmath.cp37-win32.pyd,sha256=_aQCDCovtvJ_IRdQKK2p4hmQZazREKhVENg2GMibm7A,17408 +PIL/_imagingmorph.cp37-win32.pyd,sha256=od_6vqGMipfWWKzNer0Pdnp_x1xUN8ErIa7c_jv8_0g,10240 +PIL/_imagingtk.cp37-win32.pyd,sha256=tjxawN8OKJ2FVjgkL84BJ58Z702UpyWpv__-aiZWWqQ,12800 +PIL/_tkinter_finder.py,sha256=OxAeW-nXH-BLvlWO-YjwMtaTG33_UQ5kmR3IbtyMAH8,702 +PIL/_util.py,sha256=FMTCi2VCaCrFY9fGT3T9Ft_3nRY6mPm2ygS4GjWcH-A,798 +PIL/_version.py,sha256=gn53cUv8jajC4ZCRpTyv9inWj5GoqXT337xlSxerF3s,50 +PIL/_webp.cp37-win32.pyd,sha256=ZTp2Cwn51pBC7yQVh41BtsrP5ovwFppjL4rz-CWL7rE,439296 +PIL/features.py,sha256=0gdrWEVbv7oHwSslKN1mxeQcYuhLiJd7MH7CNj3Fn1E,1935 +Pillow-6.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +Pillow-6.0.0.dist-info/LICENSE,sha256=ZOpDKO1WOStCPvloUZqa1Cfj3puYWGLJXtLtTXk9Iu4,1452 +Pillow-6.0.0.dist-info/METADATA,sha256=teYjly7B0cZR8O0WKzlWT7sosmRMFvlwRiHt82qL6E8,4638 +Pillow-6.0.0.dist-info/RECORD,, +Pillow-6.0.0.dist-info/WHEEL,sha256=u4Efs1ohefs6i6rm-BSBkNuQzwmF2Y4Na3ETsbtk2VM,102 +Pillow-6.0.0.dist-info/top_level.txt,sha256=riZqrk-hyZqh5f1Z0Zwii3dKfxEsByhu9cU9IODF-NY,4 +Pillow-6.0.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/WHEEL b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/WHEEL new file mode 100644 index 00000000..bb93ff5e --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.33.1) +Root-Is-Purelib: false +Tag: cp37-cp37m-win32 + diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/top_level.txt b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/top_level.txt new file mode 100644 index 00000000..b338169c --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/top_level.txt @@ -0,0 +1 @@ +PIL diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/zip-safe b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/zip-safe new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/WPy32-3720/python-3.7.2/Lib/site-packages/Pillow-6.0.0.dist-info/zip-safe @@ -0,0 +1 @@ + diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/__pycache__/__init__.cpython-37.pyc index ab5bebcd1c53973a460757b393026eb4e1d8dba0..107c6ffaf5e1065e2c2d12d1632a27442ae697b4 100644 GIT binary patch delta 19 ZcmX@Xc!H7JiIZJ)@!7XU7E1xo+` delta 19 ZcmX@Xc!H7JiIZQsbflMw(j=LKW{ delta 20 acmX@Ye1w_XiIZQsbP$qoQ9`2^4a delta 20 acmdnOw}p?}iIZQsZ(CJO*HM+F4{ delta 20 acmZ2zwa|*&iI;%vN diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/__pycache__/cache.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/__pycache__/cache.cpython-37.pyc index 5b7ecfc454a716c7e605fdedc10df27caf10c799..6e9738568dcd8ab955c8b1cb69d382c7d9840591 100644 GIT binary patch delta 20 acmeA%?=k0g;^pOH0D`Se+c$DIN&^5gkp(^g delta 20 acmeA%?=k0g;^pOH0D?(n8#i({N&^5fHU$X) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-37.pyc index c86742c7ae42df26cb4bac73c4143d1b27465b1e..2bf5f5b96131e240f0cced275ed75fc9c1afcecf 100644 GIT binary patch delta 20 acmaFs^VWykiIZQsb9qy_*(xCRyg delta 20 acmaFs^VWykiIb8*xIyxBloHx08HHm&Hw-a delta 22 ccmdnGlyU1)Ms6owUM>b8m{hiLBloHx084@fnE(I) diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-37.pyc index e1c7f6eaef8fe2b9b7416420614e1f2f39851059..bee8cae93c594a8a0d2541a90d49d46cb60fcbc8 100644 GIT binary patch delta 20 acmaD5{UDm#iIZQsa!RTlt6(*~3P delta 20 acmaD5{UDm#iIlyTWnMs6owUM>b8*xIyxBljs@?jlnl=N3ywNlC%x2fW8Z0PSK7)c^nh delta 39 tcmZ2>lyTWnMs6owUM>b8m{hiLBljs@?prJwB_#z#ra+<14|tD-008l>44?o2 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/__pycache__/locations.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/__pycache__/locations.cpython-37.pyc index a8fd4023b1af2db9c8a38fd15a0823f4c41cbba3..23a52b845e9445660203de671787b59a36f81e3a 100644 GIT binary patch delta 20 acmX@FbY6+uiIZQsc4A_xFE3k6dE delta 20 acmX@FbY6+uiIZQsbP%EcxFWEV+nHsjhV$ZB|t$=G1?2kFnu0Q&U|9RL6T delta 43 wcmaEC|Ja_}iIZQsb9$O8a8CIyiI delta 20 acmaDO@kWB%iIb8*xIyxBez2;098c>?EnA( delta 22 ccmX?oit+R*Ms6owUM>b8m{hiLBez2;08{D)xBvhE diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-37.pyc index ddc17fd244487cf215b686c5eeb04225944dcec1..fbaa37fbdf48b87c3a710f0592df1eabf47694ed 100644 GIT binary patch delta 20 acmbQtG?|IpiIZQsbv!3Y2=8w5`P delta 20 acmbQtG?|IpiIZQsa!RTuz0X$BGi delta 20 acmaE${y?4EiI delta 22 ccmey}%=o*Rk=u!vmx}=iCY5d6$o;_)08#}9761SM diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-37.pyc index 719573c0f24e1790076302eba0116475d10e8a96..700822a88469cc5ee039d1aa02d6ab6f373ff424 100644 GIT binary patch delta 20 acmdlfv{Q)NiIZQsbP#|Z#4Qv~S% delta 20 acmdlfv{Q)NiIZQscKKnVatXa;@& delta 20 acmaFu`r4J-iIZQsb<$p`=}X9Uy$ delta 20 acmbQjJcXItiIud|a5@iIZQsbfhZ6ucrv;S& delta 20 acmX>ud|a5@iIZQsbP$_fB5#{{|n delta 20 acmdnMwSkM diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/commands/__pycache__/completion.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/commands/__pycache__/completion.cpython-37.pyc index 80dfed0fb6a4ebc9cbbcef06dfd1e6d23c769a1c..034550b7690827089dca01555540869f6d6ede89 100644 GIT binary patch delta 20 acmZpbXqDi0;^pOH0D`Se+c$Fm;syXN4Fy{O delta 20 acmZpbXqDi0;^pOH0D?(n8#i+Q;syXLvIQmp diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-37.pyc index a31fc109e846e8e878bb4fe0b0a8f8fec35990c7..3c12a6868b52bd22a25184a38c4e93231baff392 100644 GIT binary patch delta 20 acmbPhG}nmRiIZQsZ(BnbdBg9POO delta 20 acmbPhG}nmRiIZQsb9CZQsbP#|;28ZQsbv!2tj*8U%6x delta 20 acmbO%Fj;`xiIZQsa!fdv3KS_QZO delta 20 acmcc3d7G2liIZQsbf&;S5Ejs^z+ delta 20 acmZ3JxF(U?iIHB diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-37.pyc index 6d8fec23567442bbc694da0f96bf386bde19bdaa..fb77b9ff49faf699f933e4b60663f13abbb0e0ab 100644 GIT binary patch delta 20 acmZp5X?5Xt;^pOH0D`Se+c$FmQUm}rQw7NY delta 20 acmZp5X?5Xt;^pOH0D?(n8#i+QQUm}p_yv>z diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/commands/__pycache__/search.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/commands/__pycache__/search.cpython-37.pyc index 9509c8f020e26b1b83a83c12ab2ae91ca0096e10..265ce24c849263b1f8a5cd054364af1c6119f872 100644 GIT binary patch delta 20 acmcbrcvX?xiIZQsa!N&o;l)&=4K delta 20 acmcbrcvX?xiI;^pOH0D`Se+c$F83j+Wz`2`RF delta 20 acmeBD?^5S>;^pOH0D?(n8#i*-3j+Wyo&?(f diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-37.pyc index 0f55fc0acbfdc0e2bccfcc151dd5f90cb845ce02..fd0fdd07a0cde742e31581214e3981a797b2e28e 100644 GIT binary patch delta 19 ZcmZo?YG>kh;^pOH0D`Se+b44W0RSbi1quKF delta 19 ZcmZo?YG>kh;^pOH0D?(n8z*xA0RSY51l0fl diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/models/__pycache__/candidate.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/models/__pycache__/candidate.cpython-37.pyc index f95e44ef88a315bbffd76aefb4e1b8bb91f8fbeb..756f1c4d5f12493fe88d79a8a10872ab4c0a3236 100644 GIT binary patch delta 20 acmZ3$wSbG;iIZQsZ($_fB3M+Axh delta 20 acmZ3$wSbG;iI;zQ+ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-37.pyc index 15d4aad0aa5f79b8afb2f8bb85a47d0e2e9bfa1d..09e3ca18f4a4f1f1a8b57629864ff6af584b5a66 100644 GIT binary patch delta 20 acmca5cuSDmiIZQsa!o&x|mRt3ob delta 20 acmca5cuSDmiIZJ)@!2LLWk1xNq@ delta 19 ZcmX@kc$|^jiIZQsbP#0LN}-~`?P delta 20 acmZ20vsQ-NiIZQscKSQG$2D+WdY delta 20 acmaE-{Z5ZQsZ(p#cCmx&=Z2 delta 20 acmZ1+usDF*iIS diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/req/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/req/__pycache__/__init__.cpython-37.pyc index c9bfe7ea49a852a2bd1e895080b5edee941f1819..492376cb6c99b92962054174ae8ce16486fcc613 100644 GIT binary patch delta 20 acmZ3$yMUM5iIZQsZ}l??zdv;`3W delta 20 acmZ3$yMUM5iIZQsbfRTcm{Lj~jj delta 20 acmX?LeZZRAiIq)(iIZQsa!Ul{;Hi3WfG delta 20 acmaFm{>q)(iIb8*xIyxBe#$!8?&vg?JuUy%A!kr0J5kF@Bjb+ delta 34 ocmX?pnDO{wMs6owUM>b8m{hiLBe#$!8paZ-ZYiIZQsak#{&R1t_3In delta 20 acmX>paZ-ZYiI diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-37.pyc index ed3fc82dab005953a1a0c6d66c02ec174bc0c9ea..3f1219742ba31762e286b3da82d00821bdd8e75e 100644 GIT binary patch delta 22 ccmcc9!g!~Jk=u!vmx}=iwl;0w$Q|ee08LW{aR2}S delta 22 ccmcc9!g!~Jk=u!vmx}=iCY5d6$Q|ee0897=JOBUy diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-37.pyc index 0283b47472a90ba90efbbf197ce687eaa06ad32e..94977339afc838900016dcb31a9f238acd995c85 100644 GIT binary patch delta 19 ZcmX@ac!-hPiIZJ)@!9RMwr1vvl! delta 19 ZcmX@ac!-hPiIZQsZpCl3HY83pG6 delta 20 acmaE9_tK8riIZQscKSsVaEJqCaP delta 20 acmeyT|4*OWiIZQscKh6MmTx&{mY delta 20 acmey)`JI#7iIZQsb=Cg diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-37.pyc index e054bb58b8032e46b6f229b5c9ff457fb50014e9..b2f9685d88313c4b29c03d81f9c1597035b64a39 100644 GIT binary patch delta 20 acmbQlJBgRuiIZQsb<&ISN2gaqdR delta 20 acmbQlJBgRuiIZQsbv#s>f{fCP#F delta 20 acmbOzGf{@yiIf`B?MIf diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-37.pyc index 8602da0110f14e2ca384bd64b092b08488a0cab4..eeddc45d62f01c8a3a2f18eadb207d0c8768c560 100644 GIT binary patch delta 20 acmbPYJH?jUiIZQsbZQsbZQscKgdYGtodzoa delta 20 acmaDa|6ZQkiIZQsbP!vz2{Oa$lv delta 20 acmdlkvR#DRiIZQsbPDGUHLWd#fX delta 20 acmdm@wndHGiIZQsbP&k6uCR|MDq delta 20 acmdnRwTp|}iIZQsbvX9EB{-UWyN delta 20 acmbPPF|&f(iIZQsa!o(}*!3ZQsa!Qw0D*;s$d7 delta 20 acmaFj`NWgkiIuiIZQsbfg%1EW)CHCR delta 20 acmdllyI+>uiIZQsZpAr1gN;RUS# delta 20 acmaE?_gIhHiIkc1VodiIZQsak&J6%HO$81B delta 20 acmX>kc1VodiIb8*w(bYk-L?fv6Y)?D>w7DSOAx;2>1X1 delta 31 lcmX@OoA=;uUT!B|UM>b8m|V88k-L?fv6Y)?D>w7DSOAoD2*UsX diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/__pycache__/retrying.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/__pycache__/retrying.cpython-37.pyc index 0310975d1ab6d10f24060e36b7062bfa691c83bf..b659028f2c90a33717825a57893f7b1220d57efa 100644 GIT binary patch delta 20 acmbPZKgXWiiIb8*w(atBe!Zg08wEErvLx| delta 22 ccmdmRj&Z{|Ms6owUM>b8m|V7TBe!Zg08j=7asU7T diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-37.pyc index 3bce2cbeee0b8e6618810270d8da86b09cf2e046..b1896038124d83c1ae4fbce9ac41948a40e960ca 100644 GIT binary patch delta 20 acmZ3%vVw)%iI~T> diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-37.pyc index cff527de3329c10e1d010e9b7600b5abf7abb022..fb713a1b7c799eeb0b17b5daaf72e90ac04a15b9 100644 GIT binary patch delta 20 acmca+ea)KNiIO52?c%t delta 20 acmaDO@J4{!iIO3rv*p= diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-37.pyc index 0e090b2f0815aaa69c240eddfd21351fc7afa368..2b34f1f3028a897876e2ba94a6eaa5d44f90e821 100644 GIT binary patch delta 20 acmbQBI6;xyiIYG⪚^pOH0D^5z+b44W001Q-1pfd4 delta 19 ZcmZo>YG⪚^pOH0D?(n8z*xA001NQ1jzsZ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-37.pyc index 4f2640e63416614a6eaeb96d5ecbf1bde0c64d46..18a508db155f007497f91145727c3e065d3dff11 100644 GIT binary patch delta 20 acmeBR>0se@;^pOH0D^5z+c$FmWdr~#vIR2$ delta 20 acmeBR>0se@;^pOH0D?(n8#i+QWdr~!Pz3z| diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-37.pyc index 8cd9e340f843e240e1ee80953c18bd1e7d0b5899..0096622599052c79fb9761e191a02c8cbdc61ff6 100644 GIT binary patch delta 20 acmX@dc8-nPiI;($| delta 20 acmX@dc8-nPiImf_Ms6owUM>b8*w(atBezl(08z~btpET3 delta 22 ccmZ2`g>mf_Ms6owUM>b8m{hiLBezl(08ncNcK`qY diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-37.pyc index f4290e6fd403af7e0f8d22865bae55a569e75d61..9d923673c70e2ec4b73e26f44b817f627e4058c8 100644 GIT binary patch delta 20 acmaFF@rZ-liI delta 20 acmdlgxK)tbiImc1(=hiImc1(=hiI_j{ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-37.pyc index ed96f44e9f6e40de567ab29723472f40dfd3fde6..672ed42d200127fa1c2bb2ea6dff75bead8e2d7e 100644 GIT binary patch delta 20 acmbPZKF6HfiI7zJ+t delta 20 acmbPZKF6HfiImB*Ms6owUM>b8*w(atBez->08)7dxc~qF delta 22 ccmdmZg>mB*Ms6owUM>b8m{hiLBez->08tkPg8%>k diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-37.pyc index 8178793898779758290abb141cacd27d3d61b4e4..9397df8a6cb78e7183d6e44f765944e58adb5ec9 100644 GIT binary patch delta 20 acmaFG@rr}niIb8*w(atBlj#X07twAcK`qY delta 22 ccmZ2Fm2v4*Ms6owUM>b8m{hiLBlj#X07hB{K>z>% diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-37.pyc index c8146b0d7675fbe06e87e89b47297696ba55c688..816f6e7ddb47acef19960ad0bf85359b5e91e2a1 100644 GIT binary patch delta 20 acmeyw@ri@miIb8*w(atBX?dH09a)QEdT%j delta 22 ccmeylhVkbbMs6owUM>b8m{hiLBX?dH09OMB_W%F@ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-37.pyc index 4e735fc0af0efdbe2b19ed301b2912bceead6d3e..3ef6d7fcc36a380a2d372796aa6f23871f66c43b 100644 GIT binary patch delta 22 ccmZoz$<(ltiQ9>nmx}=iwl!_v$Xz-G07U=>d;kCd delta 22 ccmZoz$<(ltiQ9>nmx}=iCY5d6$Xz-G07ISzMgRZ+ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-37.pyc index 4882c1682714e2bc64bcc1e557ff8c43df525172..333ea7a419b966323c8242689f07d7a9d5132437 100644 GIT binary patch delta 22 ccmX@NgYn!BMs6owUM>b8*w(atBe!!508<7A$^ZZW delta 22 ccmX@NgYn!BMs6owUM>b8m{hiLBe!!508yj{lmGw# diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langcyrillicmodel.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langcyrillicmodel.cpython-37.pyc index f0b08ff8283b8b16393b31e81bc32006e2fa445c..3ab790832158bb762859909b3e161433101577be 100644 GIT binary patch delta 22 ccmbRDm~q}?Ms6owUM>b8*w(atBlqM&08*F-B>(^b delta 22 ccmbRDm~q}?Ms6owUM>b8m{hiLBlqM&08usu?*IS* diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-37.pyc index 8de6005734ba9d2ba65a1a398a2909805c6a8523..96bbc220d333d15becf88427a2a2ba944f81bacf 100644 GIT binary patch delta 22 ccmZ3ogK^0YMs6owUM>b8*w(atBe!G>0897=OaK4? delta 22 ccmZ3ogK^0YMs6owUM>b8m{hiLBe!G>07{ky761SM diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-37.pyc index fe516904a88b194faffc6c963eaf553ab0070745..bf9ca37d0f177c8fa301322fc1efb1975b5c7a91 100644 GIT binary patch delta 22 ccmX@Pmht3TMs6owUM>b8*w(atBlo^A08xAg9{>OV delta 22 ccmX@Pmht3TMs6owUM>b8m{hiLBlo^A08knR=>Px# diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-37.pyc index 6eb43cb4f3ab049dba1ef7697b7b9c40581b1fd2..634e0c1ea87c44c450d559cb53a1e40b7e3c8a18 100644 GIT binary patch delta 22 ccmdn8mT}8kMs6owUM>b8*w(atBlpTM08RA<-~a#s delta 22 ccmdn8mT}8kMs6owUM>b8m{hiLBlpTM08EnxssI20 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-37.pyc index a2f20520cf33498b153a98e17d1dc9df1b795d95..f9a81d970aeb3bd15a7010ee13ac8162e84b30b6 100644 GIT binary patch delta 22 ccmX@TmhtpjMs6owUM>b8*w(atBlm$Y08!EhB>(^b delta 22 ccmX@TmhtpjMs6owUM>b8m{hiLBlm$Y08nrS?*IS* diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-37.pyc index c5211ae2d26713f4cb989bd5c1969b7dc7fb1eae..c0395641850ecdfd81bee0fbb402d530c412ad00 100644 GIT binary patch delta 20 acmew;_EC)6iI`8e delta 20 acmaFL@sxwxiIiIiIiIiIk-o;{>$; delta 20 acmZqVZRF*4;^pOH0D?(n8#i*7u>k-nfdqd5 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-37.pyc index bddb85985c8b74088e11740c72d676c39908d04f..ea6a23573e89e257a62e53d4bbdb6514178caaff 100644 GIT binary patch delta 20 acmbO%H(8F`iIdiIdiI!vrh< diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-37.pyc index b4688841724a460be4ed68c0f2553250c4d64d2f..af2c1a007f4a1829d03d7f190813fb4479b321f8 100644 GIT binary patch delta 22 ccmdn?i*eg8Ms6owUM>b8*w(atBe!-f09h>uCjbBd delta 22 ccmdn?i*eg8Ms6owUM>b8m{hiLBe!-f09VTf@c;k- diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-37.pyc index 2d78fde1a4ddcf0a3df3e9586fd24841a9154c50..88ee0bd9f0414db724c7b2ea6a0edac1e4cf7e2d 100644 GIT binary patch delta 20 acmeAO?Fi*|;^pOH0D^5z+c$F8Y5@Q?KLvgO delta 20 acmeAO?Fi*|;^pOH0D?(n8#i*-Y5@Q=-33Sh diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-37.pyc index edbb9afb75bfed0131e204ef58011ad4d66687be..bc381dc6a14534eddff15bb5ab6a92a05a0366ca 100644 GIT binary patch delta 20 acmcZ|b~}vQiI*Tm||7 delta 20 acmcZ|b~}vQiI(`US)Q diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-37.pyc index 1acc1a098a0a0062e188d4d7061a5e01363e2c3f..9cfad63872a5998f1521ec38d8a09d0459ba06de 100644 GIT binary patch delta 22 ccmccejp@oaCT=HQUM>b8*w(atBe&;n0A2nExc~qF delta 22 ccmccejp@oaCT=HQUM>b8m{hiLBe&;n09>30g8%>k diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/__pycache__/__init__.cpython-37.pyc index 6f4dbd996ac3a145205c00b0b1b42748c1687e0e..fc050a7b7c7a1d5b8f39862576d88ef2ba0123c2 100644 GIT binary patch delta 20 acmZ3?wU~?BiIb8*w(atBX>~*09mgGLjV8( delta 22 ccmeynf${GKMs6owUM>b8m{hiLBX>~*09Z{24FCWD diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_tokenizer.cpython-37.pyc index 7e1df2e22f3164eb8e81936ec82f4b6934461c02..9f59957ab5cfde6202beca26a304e51a8fa08cec 100644 GIT binary patch delta 22 ccmca~gz3@|CT=HQUM>b8*w(atBe(k^09Ek^HUIzs delta 22 ccmca~gz3@|CT=HQUM>b8m{hiLBe(k^0920$00000 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/__pycache__/_utils.cpython-37.pyc index e1f845c143af1d967edd16d8f067d4d3ecc199b5..76cb4d4a061aba360bb3115bc5546e613a5d67e5 100644 GIT binary patch delta 20 acmaDY`C5|OiIb8*w(bYk$WpQBX1o5YFh_u delta 25 fcmbR7hjqpuR&FO=UM>b8m{hj0k$WpQBX1o5Xjca{ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/__pycache__/serializer.cpython-37.pyc index e989dbc864dae6cbbad768c855eb6c6ddb7426f3..c50cbc4a6a9add78cfea29a6b0986f0b70f765e7 100644 GIT binary patch delta 20 acmcZ*av_AmE-GzI|x delta 20 acmaFI|Bj#AiImE*(gn)^ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/_trie/__pycache__/py.cpython-37.pyc index b0405853c0f38bd21c3c0748057559795d5f06f6..3a01c8189099d005cd61d46b69bb310b437679d0 100644 GIT binary patch delta 20 acmdlfxKohZiIFTsRls+ delta 20 acmew@`CF3PiIFSM+OT3 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__pycache__/base.cpython-37.pyc index 241f710c5a49187be12b11331aa0722fbec89e00..4c79455e58a9444b07f70a16b20a540026fe7de1 100644 GIT binary patch delta 20 acmaDC{w|!`iIfb3TUKiIfb3TUKiIIDe^ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-37.pyc index 7c78b0dc99c8022b322c9d3636f808e170ae4225..e74ca20a8f7b6517fe08a1d213a26e7a6379bff3 100644 GIT binary patch delta 19 ZcmZo+YGLAb;^pOH0D^5z+b44W1OO#R1p)v7 delta 19 ZcmZo+YGLAb;^pOH0D?(n8z*xA1OOx(1k3;c diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/idna/__pycache__/core.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/idna/__pycache__/core.cpython-37.pyc index 23b2ee873342faa859beb625af601d17dce80265..deb9076c8165c1d66de2dd240c6e006cab0dbcb6 100644 GIT binary patch delta 20 acmaFv_S}uziIb8*w(atBlr4X08R=9;{X5v delta 22 ccmdnBoN?E3Ms6owUM>b8m{hiLBlr4X08FR`tpET3 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-37.pyc index 9266558abf611b9417f1508f19594edfb36cda6c..b5d57ba4fb9b1e61939ff36cc1c163913e1de9f2 100644 GIT binary patch delta 20 acmeC+>)_*d;^pOH0D^5z+c$FmWdi^$9|cSR delta 20 acmeC+>)_*d;^pOH0D?(n8#i+QWdi^!y#*Ek diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-37.pyc index d02a4494e12d2c18836931787579a712936fd290..f6383eed0ea8731ebaf9cf97c07c42b8bc36b3f2 100644 GIT binary patch delta 19 Zcmcb{c#V@(3 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/lockfile/__pycache__/linklockfile.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/lockfile/__pycache__/linklockfile.cpython-37.pyc index 12fee72f84df04d5c00f37fff5dd7cd5bde9bc78..4cd514687efb5a9433f76bbce92546379ac0ad9b 100644 GIT binary patch delta 20 acmew?_*szKiI&oR delta 20 acmbOsFhhXbiI>yI1&aUx delta 19 Zcmcc1c$bmeiI>uw1yuk5 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-37.pyc index e5718238016271b19c20966154d7a5bb3eb61360..a2297a232009bd36f05e59339570215837b0f9c8 100644 GIT binary patch delta 20 acmZn^Y!u{n;^pOH0D^5z+c$ETaR2}-bp*cv delta 20 acmZn^Y!u{n;^pOH0D?(n8#i*7aR2}+69kC> diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-37.pyc index 2edeccdf9e19d85bf9d5ac91da6348b3d5b924a5..0df38d8a9f44208383767b03a2b6479260577056 100644 GIT binary patch delta 22 ccmaF5pYiE_Ms6owUM>b8*w(atBloR%09f}2pa1{> delta 22 ccmaF5pYiE_Ms6owUM>b8m{hiLBloR%09TaBiIBiIb8*w(atBe%LQ07b8m|V7TBe%LQ07zB^_5c6? diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-37.pyc index 5f0e0c3a8d050f5d7569ffc913b24cfc1a937d18..46337fd7298746a76fb456c4f20af873bc88ea68 100644 GIT binary patch delta 20 acmZ3*y^5RLiI~B(R&FO=UM>b8*w(bYk$WpQqjnVlZmkEg delta 25 fcmdn?g>~B(R&FO=UM>b8m|V88k$WpQqjnVlY_kV^ diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/py31compat.cpython-37.pyc index 29f811b9c8a21fe7db156ab1b0085675f7ce3b14..f4859c60b30de8e7de0c558f5c151a9da7a5c3d0 100644 GIT binary patch delta 20 acmZo=ZDr+l;^pOH0D^5z+c$DoF#!N7Uj(fH delta 20 acmZo=ZDr+l;^pOH0D{S78#i)SF#!N61O#{h diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/progress/__pycache__/__init__.cpython-37.pyc index 0aca99b12e91d21cc5219b335e7ed254f63caf24..d7cf5c854cef3a7059ae61c82614f67f19e9da6c 100644 GIT binary patch delta 20 acmX>pcT$eqiIpcT$eqiItep;N{iItep;N{iIiIiIB>u5Cts& delta 20 acmZ3-zK)&SiIB>swFLM8 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/pytoml/__pycache__/parser.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/pytoml/__pycache__/parser.cpython-37.pyc index 07da5d6b5a2655d83aabd02d53c2cc45fc1b1243..a84c2f74adb429d2a68975fe3b895b94e914d545 100644 GIT binary patch delta 20 acmX@@ciNBJiIW_+XR;Y delta 20 acmZ3W^fCORy diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-37.pyc index 3de2d9d514daf5603697c77e1e197476a642bc4d..b95c654ddeafc476d44c7bdb3c8b3504479e4eeb 100644 GIT binary patch delta 20 acmbQwHJ^*yiIb8*w(atBX_hX08udpvj6}9 delta 22 ccmaDhiSgMaMs6owUM>b8m|V7TBX_hX08iEiegFUf diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-37.pyc index 4d3655f56e8e6ebe8f8990a849df2b1ffa4f3096..266dfa81db019187e255e9d0a415576453540783 100644 GIT binary patch delta 20 acmZqCZqep;;^pOH0D^5z+c$DoiUI&Hq6G;6 delta 20 acmZqCZqep;;^pOH0D{S78#i)SiUI&GM+DRW diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-37.pyc index fa946f5e57e422e62006b66810413ae4f65195b6..4af347f7e958492208e5dddb1ae3f11c203a8414 100644 GIT binary patch delta 20 acmcc4ex04$iIb8*w(atBezN%08VcPcK`qY delta 22 ccmZ3#hjINLMs6owUM>b8m|V7TBezN%08JDILI3~& diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-37.pyc index 098652e2a0bf5ee34509f59f48633270d162ae3a..a652e132d474342519a29ebfa6cd4d2f986f833f 100644 GIT binary patch delta 20 acmZoi}Ms6owUM>b8*w(atBljI|08=3cLI3~& delta 22 ccmaDpo$>i}Ms6owUM>b8m|V7TBljI|08z#V4FCWD diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-37.pyc index 93bac7f1e4dca0cd310c2302d0dfedd9f16928ba..46bb403510f274c4a3ddd3fa1cae2f4fcc86fae6 100644 GIT binary patch delta 20 acmX@9a8iNWiIKGY6QUm delta 20 acmbQIG*5}!iIKF4+M+= diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-37.pyc index 3cb633671582325a4b72e039e8a429f932a6a2e8..511965c0608858dd49fdea4ba00421c24c1d90ed 100644 GIT binary patch delta 22 ccmbQWhH=&!Ms6owUM>b8*w(atBR78-07!5K5C8xG delta 22 ccmbQWhH=&!Ms6owUM>b8m|V7TBR78-07n%C+W-In diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-37.pyc index d063008e94ab84e7e743af18a7f20b49e9085052..321ffa7139e6831c69206bbe1c6eade59cb36069 100644 GIT binary patch delta 20 acmX>ma7=*PiIe*483hag delta 20 acmX>ma7=*PiIe*2z693* diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-37.pyc index d6afbcac3bccbc6cf3b8087531fc8b6e4054ce09..d7241fe70ea45fa6feda3216c0676321b831d781 100644 GIT binary patch delta 20 acmdlLyepX7iI diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-37.pyc index 8e2ec8b93760a1588c27457c4cbec9c61ee3eb50..fde3f6c9d8dcfa2ebc019c8c0524f0738d9a8aa7 100644 GIT binary patch delta 20 acmZ4PzuceOiIb8*w(atBX?{J09RxO7ytkO delta 22 ccmaE{gYm@b8m|V7TBX?{J09FYG;{X5v diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-37.pyc index 9caa86753baa1708568bf56bdf0b414bb932b73d..a32473d4ebdc4ac71ff285cc3387b5b8f9dd8477 100644 GIT binary patch delta 20 acmZ1+xHyp8iItdRmm*iItdRmm*iI delta 20 acmcbpeNmg+iIb8*w(atBe$_907`iVI{*Lx delta 22 ccmdltiE-Z~Ms6owUM>b8m|V7TBe$_907)JO1^@s6 diff --git a/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-37.pyc index 4bf5a73f8abc46c395b0c7bb0d624815f14918ed..f4ec85c614b6b4d97b172ef691ddfce4a09cbfe7 100644 GIT binary patch delta 19 ZcmX@bc#4tRiIb8*w(atBe!Qf095q`>i_@% delta 22 ccmcbzkMYVrMs6owUM>b8m|V7TBe!Qf08^RvX+J0iIvX+J0iIiI$% delta 20 acmaDT@lb->iI#E delta 20 acmeyA^eKtkiI1s?za diff --git a/WPy32-3720/python-3.7.2/Lib/urllib/__pycache__/__init__.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/urllib/__pycache__/__init__.cpython-37.pyc index 31ddd97bddb9e7fc31e63f8a83171c9df39897a4..201805a6a88ab56b58f9715f8ea061b2b41e4513 100644 GIT binary patch delta 19 ZcmZ3^xSWyOiIb8*wwUsBX?ja09`W&bpQYW delta 22 ccmccfit)}XMs6owUM>b8m{zuNBX?ja09(-qKL7v# diff --git a/WPy32-3720/python-3.7.2/Lib/urllib/__pycache__/request.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/urllib/__pycache__/request.cpython-37.pyc index 9bbf0293298465c11a6f6cadde5a4792a2d40670..fd2d13d39e04eeeb561794cd20dc4d774e9b039c 100644 GIT binary patch delta 25 fcmeC&%F?-&h1-djmx}=ib~SBp1Mlc}kMoiIlc}kMoiIjkp_ delta 20 acmcc3dYhHoiI|do delta 20 acmaE6_{@;oiIk7?OGCT=HQUM>b8*wwUsBe(Q=08*?5_W%F@ delta 22 ccmZ2>k7?OGCT=HQUM>b8m|nJVBe(Q=08vo}!T diff --git a/WPy32-3720/python-3.7.2/Lib/xml/sax/__pycache__/saxutils.cpython-37.pyc b/WPy32-3720/python-3.7.2/Lib/xml/sax/__pycache__/saxutils.cpython-37.pyc index ba24bffca534683ab5e44c5a74b6e4cd5a9c34c0..3a819b4aadee4d794ebecefa6b83590d215f893a 100644 GIT binary patch delta 20 acmZ3PvNDC+iI17)?ax=9906@kCuK)l5

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